From c34352339fa94f30103e8ad23f024aa2d513730e Mon Sep 17 00:00:00 2001 From: Luke Hagar Date: Fri, 17 Nov 2023 22:05:45 -0600 Subject: [PATCH] Full Express backend implementation --- .gitignore | 2 + .npmrc | 1 - .prettierrc | 12 - .vscode/extensions.json | 3 - .vscode/settings.json | 6 - Electron-App/.gitignore | 92 + Electron-App/forge.config.js | 31 + Electron-App/package-lock.json | 5879 + Electron-App/package.json | 35 + Electron-App/src/index.js | 101 + Electron-App/src/preload.js | 2 + Sveltekit-App/.eslintignore | 13 + Sveltekit-App/.eslintrc.cjs | 30 + Sveltekit-App/.gitignore | 10 + Sveltekit-App/.npmrc | 1 + Sveltekit-App/.prettierignore | 13 + Sveltekit-App/.prettierrc | 8 + Sveltekit-App/.vscode/settings.json | 118 + Sveltekit-App/README.md | 38 + Sveltekit-App/package-lock.json | 5107 + Sveltekit-App/package.json | 57 + Sveltekit-App/postcss.config.cjs | 6 + Sveltekit-App/src/app.d.ts | 15 + {src => Sveltekit-App/src}/app.html | 0 {src => Sveltekit-App/src}/app.postcss | 3 +- {src => Sveltekit-App/src}/global.d.ts | 0 .../lib/Components/AnimatedCounter.svelte | 0 .../src}/lib/Components/CodeBlockModal.svelte | 0 .../src}/lib/Components/Progress.svelte | 0 .../src}/lib/Components/VACluster.svelte | 0 {src => Sveltekit-App/src}/lib/Errors.ts | 0 {src => Sveltekit-App/src}/lib/Types.ts | 0 {src => Sveltekit-App/src}/lib/Utils.ts | 0 .../src}/lib/sailpoint/sdk.ts | 0 .../src}/lib/sidebar/LeftSidebar.svelte | 0 .../src}/lib/sidebar/navigation.ts | 0 .../src}/lib/sidebar/reports.ts | 0 .../src}/lib/utils/hmr-stores.js | 0 {src => Sveltekit-App/src}/lib/utils/oauth.ts | 72 +- .../src}/routes/+error.svelte | 0 .../src}/routes/+layout.svelte | 0 .../src}/routes/+page.server.ts | 0 .../src}/routes/+page.svelte | 0 .../sailpoint/cluster/[clusterID]/+server.ts | 0 .../routes/api/sailpoint/search/+server.ts | 0 .../api/sailpoint/search/[limit]/+server.ts | 0 .../sailpoint/source/[sourceID]/+server.ts | 0 .../api/sailpoint/sourceAggEvents/+server.ts | 0 .../sourceAggEvents/[sourceID]/+server.ts | 0 .../routes/api/sailpoint/sources/+server.ts | 0 .../api/sailpoint/sources/[limit]/+server.ts | 0 .../src}/routes/callback/+page.server.ts | 0 .../src}/routes/callback/+page.svelte | 0 .../src}/routes/callback/loadinglist.ts | 0 .../src}/routes/home/+error.svelte | 0 .../src}/routes/home/+layout.svelte | 0 .../src}/routes/home/+page.svelte | 0 .../+page.svelte | 0 .../+page.svelte | 0 .../missing-cloud-life-cycle-state/+page.ts | 0 .../source-account-create-error/+page.svelte | 0 .../home/source-aggregations/+page.server.ts | 0 .../home/source-aggregations/+page.svelte | 0 .../home/source-delete-threshold/+page.svelte | 0 .../home/source-delete-threshold/+page.ts | 0 .../home/source-owner-configured/+page.svelte | 0 .../home/source-owner-configured/+page.ts | 0 .../src}/routes/home/sources/+page.svelte | 0 .../src}/routes/home/sources/+page.ts | 0 .../home/sources/[sourceID]/+page.svelte | 0 .../routes/home/sources/[sourceID]/+page.ts | 0 .../sailpoint/cluster/[clusterID]/+server.ts | 25 + .../src/routes/sailpoint/search/+server.ts | 23 + .../sailpoint/search/[limit]/+server.ts | 26 + .../sailpoint/source/[sourceID]/+server.ts | 22 + .../sailpoint/sourceAggEvents/+server.ts | 92 + .../sourceAggEvents/[sourceID]/+server.ts | 84 + .../src/routes/sailpoint/sources/+server.ts | 21 + .../sailpoint/sources/[limit]/+server.ts | 24 + .../SailPoint-Developer-Community-Lockup.png | Bin {static => Sveltekit-App/static}/logo.ico | Bin Sveltekit-App/svelte.config.js | 21 + .../tailwind.config.ts | 27 +- Sveltekit-App/tsconfig.json | 18 + Sveltekit-App/vite.config.ts | 14 + Sveltekit-Build/package.json | 8 + .../SailPoint-Developer-Community-Lockup.png | Bin 0 -> 44093 bytes .../_app/immutable/assets/0.f8980d8d.css | 1 + .../_app/immutable/assets/5.5d335b63.css | 1 + .../_app/immutable/assets/7.5326dc8c.css | 1 + .../immutable/assets/ProgressBar.4f1e9ba5.css | 1 + .../immutable/assets/_layout.f8980d8d.css | 1 + .../_app/immutable/assets/_page.5326dc8c.css | 1 + .../_app/immutable/assets/_page.5d335b63.css | 1 + .../immutable/chunks/CodeBlock.f9dc51ff.js | 3 + .../immutable/chunks/LightSwitch.9a354e21.js | 1 + .../immutable/chunks/Progress.f79dd2c2.js | 1 + ....svelte_svelte_type_style_lang.ae9fcbec.js | 1 + .../_app/immutable/chunks/Table.f5db4492.js | 3 + .../immutable/chunks/alasql.min.1f65b74d.js | 128 + .../_app/immutable/chunks/each.ac7da970.js | 1 + .../_app/immutable/chunks/index.09b1afef.js | 1 + .../_app/immutable/chunks/index.7b3d626a.js | 4 + .../immutable/chunks/navigation.ad74cec2.js | 1 + .../_app/immutable/chunks/parse.bee59afc.js | 1 + .../_app/immutable/chunks/reports.b2ca66e3.js | 1 + .../immutable/chunks/scheduler.10bc074a.js | 1 + .../immutable/chunks/singletons.47bc9baa.js | 1 + .../_app/immutable/chunks/spread.8a54911c.js | 1 + .../_app/immutable/chunks/stores.cca8a80c.js | 1 + .../_app/immutable/chunks/stores.dc566077.js | 1 + .../_app/immutable/entry/app.6c42c562.js | 1 + .../_app/immutable/entry/start.b81a31e7.js | 3 + .../client/_app/immutable/nodes/0.0dac9feb.js | 1 + .../client/_app/immutable/nodes/1.2c9d8424.js | 1 + .../_app/immutable/nodes/10.85c4084a.js | 1 + .../_app/immutable/nodes/11.7f869098.js | 1 + .../_app/immutable/nodes/12.9e147695.js | 1 + .../_app/immutable/nodes/13.dcd76235.js | 1 + .../_app/immutable/nodes/14.6d01e554.js | 3 + .../client/_app/immutable/nodes/2.6263d8aa.js | 1 + .../client/_app/immutable/nodes/3.5a4d9b31.js | 1 + .../client/_app/immutable/nodes/4.579169aa.js | 9 + .../client/_app/immutable/nodes/5.ff940f01.js | 3 + .../client/_app/immutable/nodes/6.5c6dd6a1.js | 1 + .../client/_app/immutable/nodes/7.907073c0.js | 1 + .../client/_app/immutable/nodes/8.c90b853f.js | 1 + .../client/_app/immutable/nodes/9.c8b00f6f.js | 1 + Sveltekit-Build/src/client/_app/version.json | 1 + Sveltekit-Build/src/client/logo.ico | Bin 0 -> 265118 bytes Sveltekit-Build/src/env.js | 37 + Sveltekit-Build/src/handler.js | 1307 + Sveltekit-Build/src/index.js | 225 + .../src/server/chunks/0-e9744a96.js | 9 + .../src/server/chunks/0-e9744a96.js.map | 1 + .../src/server/chunks/1-60dcc5a6.js | 9 + .../src/server/chunks/1-60dcc5a6.js.map | 1 + .../src/server/chunks/10-9374670e.js | 20 + .../src/server/chunks/10-9374670e.js.map | 1 + .../src/server/chunks/11-87a3e344.js | 25 + .../src/server/chunks/11-87a3e344.js.map | 1 + .../src/server/chunks/12-232a1e9d.js | 25 + .../src/server/chunks/12-232a1e9d.js.map | 1 + .../src/server/chunks/13-5321d69a.js | 20 + .../src/server/chunks/13-5321d69a.js.map | 1 + .../src/server/chunks/14-4e6f7e19.js | 20 + .../src/server/chunks/14-4e6f7e19.js.map | 1 + .../src/server/chunks/2-77089f36.js | 9 + .../src/server/chunks/2-77089f36.js.map | 1 + .../src/server/chunks/3-d9f1aacb.js | 9 + .../src/server/chunks/3-d9f1aacb.js.map | 1 + .../src/server/chunks/4-44e1ab29.js | 56 + .../src/server/chunks/4-44e1ab29.js.map | 1 + .../src/server/chunks/5-5a21d9d4.js | 320 + .../src/server/chunks/5-5a21d9d4.js.map | 1 + .../src/server/chunks/6-574c72b1.js | 9 + .../src/server/chunks/6-574c72b1.js.map | 1 + .../src/server/chunks/7-418cc4be.js | 9 + .../src/server/chunks/7-418cc4be.js.map | 1 + .../src/server/chunks/8-5a065195.js | 33 + .../src/server/chunks/8-5a065195.js.map | 1 + .../src/server/chunks/9-f099c85b.js | 9 + .../src/server/chunks/9-f099c85b.js.map | 1 + .../src/server/chunks/CodeBlock-8434d487.js | 126 + .../server/chunks/CodeBlock-8434d487.js.map | 1 + .../src/server/chunks/LightSwitch-68264f9f.js | 61 + .../server/chunks/LightSwitch-68264f9f.js.map | 1 + .../src/server/chunks/Progress-e5ba7d72.js | 25 + .../server/chunks/Progress-e5ba7d72.js.map | 1 + ....svelte_svelte_type_style_lang-7a3862c3.js | 46 + ...lte_svelte_type_style_lang-7a3862c3.js.map | 1 + .../server/chunks/ProgressRadial-14a0db91.js | 57 + .../chunks/ProgressRadial-14a0db91.js.map | 1 + .../chunks/_commonjsHelpers-2155838d.js | 33 + .../chunks/_commonjsHelpers-2155838d.js.map | 1 + .../server/chunks/_error.svelte-e8de01b5.js | 13 + .../chunks/_error.svelte-e8de01b5.js.map | 1 + .../server/chunks/_error.svelte-ef2a7f39.js | 13 + .../chunks/_error.svelte-ef2a7f39.js.map | 1 + .../server/chunks/_layout.svelte-da25be14.js | 316 + .../chunks/_layout.svelte-da25be14.js.map | 1 + .../server/chunks/_layout.svelte-fdd7864c.js | 281 + .../chunks/_layout.svelte-fdd7864c.js.map | 1 + .../server/chunks/_page.svelte-002168fb.js | 38 + .../chunks/_page.svelte-002168fb.js.map | 1 + .../server/chunks/_page.svelte-728c7b11.js | 16 + .../chunks/_page.svelte-728c7b11.js.map | 1 + .../server/chunks/_page.svelte-820b48f2.js | 26 + .../chunks/_page.svelte-820b48f2.js.map | 1 + .../server/chunks/_page.svelte-be321c56.js | 70 + .../chunks/_page.svelte-be321c56.js.map | 1 + .../server/chunks/_page.svelte-cc29554f.js | 11 + .../chunks/_page.svelte-cc29554f.js.map | 1 + .../server/chunks/_page.svelte-de10b13f.js | 46 + .../chunks/_page.svelte-de10b13f.js.map | 1 + .../server/chunks/_page.svelte-e557a7f2.js | 28 + .../chunks/_page.svelte-e557a7f2.js.map | 1 + .../server/chunks/_page.svelte-ed80e6a8.js | 19 + .../chunks/_page.svelte-ed80e6a8.js.map | 1 + .../server/chunks/_page.svelte-f644b717.js | 552 + .../chunks/_page.svelte-f644b717.js.map | 1 + .../server/chunks/_page.svelte-f74d708f.js | 28 + .../chunks/_page.svelte-f74d708f.js.map | 1 + .../server/chunks/_page.svelte-fa408311.js | 28 + .../chunks/_page.svelte-fa408311.js.map | 1 + .../src/server/chunks/_server.ts-0a1cc55c.js | 78 + .../server/chunks/_server.ts-0a1cc55c.js.map | 1 + .../src/server/chunks/_server.ts-2955f0bd.js | 72 + .../server/chunks/_server.ts-2955f0bd.js.map | 1 + .../src/server/chunks/_server.ts-4246c559.js | 38 + .../server/chunks/_server.ts-4246c559.js.map | 1 + .../src/server/chunks/_server.ts-463772b0.js | 36 + .../server/chunks/_server.ts-463772b0.js.map | 1 + .../src/server/chunks/_server.ts-4c27b61b.js | 36 + .../server/chunks/_server.ts-4c27b61b.js.map | 1 + .../src/server/chunks/_server.ts-55408b6b.js | 34 + .../server/chunks/_server.ts-55408b6b.js.map | 1 + .../src/server/chunks/_server.ts-61ca2e72.js | 34 + .../server/chunks/_server.ts-61ca2e72.js.map | 1 + .../src/server/chunks/_server.ts-6383650c.js | 36 + .../server/chunks/_server.ts-6383650c.js.map | 1 + .../src/server/chunks/_server.ts-6af7d2b0.js | 38 + .../server/chunks/_server.ts-6af7d2b0.js.map | 1 + .../src/server/chunks/_server.ts-6afa9b8d.js | 36 + .../server/chunks/_server.ts-6afa9b8d.js.map | 1 + .../src/server/chunks/_server.ts-97bad773.js | 34 + .../server/chunks/_server.ts-97bad773.js.map | 1 + .../src/server/chunks/_server.ts-98cb6889.js | 78 + .../server/chunks/_server.ts-98cb6889.js.map | 1 + .../src/server/chunks/_server.ts-9b776721.js | 34 + .../server/chunks/_server.ts-9b776721.js.map | 1 + .../src/server/chunks/_server.ts-b91d26ae.js | 34 + .../server/chunks/_server.ts-b91d26ae.js.map | 1 + .../src/server/chunks/_server.ts-bffb2e15.js | 72 + .../server/chunks/_server.ts-bffb2e15.js.map | 1 + .../src/server/chunks/_server.ts-daf2b664.js | 34 + .../server/chunks/_server.ts-daf2b664.js.map | 1 + .../src/server/chunks/alasql.fs-ab2a2e02.js | 126894 +++++++++++++++ .../server/chunks/alasql.fs-ab2a2e02.js.map | 1 + .../src/server/chunks/index-64aa7a5e.js | 84 + .../src/server/chunks/index-64aa7a5e.js.map | 1 + .../src/server/chunks/index2-f081c4d4.js | 52 + .../src/server/chunks/index2-f081c4d4.js.map | 1 + .../src/server/chunks/oauth-017ba109.js | 25451 +++ .../src/server/chunks/oauth-017ba109.js.map | 1 + .../src/server/chunks/prod-ssr-7cc47430.js | 5 + .../server/chunks/prod-ssr-7cc47430.js.map | 1 + .../src/server/chunks/reports-881f004a.js | 35 + .../src/server/chunks/reports-881f004a.js.map | 1 + .../src/server/chunks/sdk-9eeff2de.js | 95280 +++++++++++ .../src/server/chunks/sdk-9eeff2de.js.map | 1 + .../src/server/chunks/ssr-3eccf1b3.js | 288 + .../src/server/chunks/ssr-3eccf1b3.js.map | 1 + .../src/server/chunks/stores-45fd0783.js | 38 + .../src/server/chunks/stores-45fd0783.js.map | 1 + .../src/server/chunks/stores2-39445ea0.js | 26 + .../src/server/chunks/stores2-39445ea0.js.map | 1 + Sveltekit-Build/src/server/index.js | 4079 + Sveltekit-Build/src/server/index.js.map | 1 + Sveltekit-Build/src/server/manifest.js | 233 + Sveltekit-Build/src/server/manifest.js.map | 1 + Sveltekit-Build/src/shims.js | 20414 +++ assets/images/api-linter-output.png | Bin 442020 -> 0 bytes globals.d.ts | 2 - jsconfig.json | 11 - package-lock.json | 9553 -- package.json | 92 - postcss.config.cjs | 13 - screenshot.png | Bin 53678 -> 0 bytes src/app.d.ts | 11 - src/electron.cjs | 121 - src/preload.cjs | 13 - static/sveltekit-electron.svg | 16 - svelte.config.js | 20 - tsconfig.json | 35 - vite.config.js | 11 - 276 files changed, 289824 insertions(+), 9975 deletions(-) delete mode 100644 .npmrc delete mode 100644 .prettierrc delete mode 100644 .vscode/extensions.json delete mode 100644 .vscode/settings.json create mode 100644 Electron-App/.gitignore create mode 100644 Electron-App/forge.config.js create mode 100644 Electron-App/package-lock.json create mode 100644 Electron-App/package.json create mode 100644 Electron-App/src/index.js create mode 100644 Electron-App/src/preload.js create mode 100644 Sveltekit-App/.eslintignore create mode 100644 Sveltekit-App/.eslintrc.cjs create mode 100644 Sveltekit-App/.gitignore create mode 100644 Sveltekit-App/.npmrc create mode 100644 Sveltekit-App/.prettierignore create mode 100644 Sveltekit-App/.prettierrc create mode 100644 Sveltekit-App/.vscode/settings.json create mode 100644 Sveltekit-App/README.md create mode 100644 Sveltekit-App/package-lock.json create mode 100644 Sveltekit-App/package.json create mode 100644 Sveltekit-App/postcss.config.cjs create mode 100644 Sveltekit-App/src/app.d.ts rename {src => Sveltekit-App/src}/app.html (100%) rename {src => Sveltekit-App/src}/app.postcss (80%) rename {src => Sveltekit-App/src}/global.d.ts (100%) rename {src => Sveltekit-App/src}/lib/Components/AnimatedCounter.svelte (100%) rename {src => Sveltekit-App/src}/lib/Components/CodeBlockModal.svelte (100%) rename {src => Sveltekit-App/src}/lib/Components/Progress.svelte (100%) rename {src => Sveltekit-App/src}/lib/Components/VACluster.svelte (100%) rename {src => Sveltekit-App/src}/lib/Errors.ts (100%) rename {src => Sveltekit-App/src}/lib/Types.ts (100%) rename {src => Sveltekit-App/src}/lib/Utils.ts (100%) rename {src => Sveltekit-App/src}/lib/sailpoint/sdk.ts (100%) rename {src => Sveltekit-App/src}/lib/sidebar/LeftSidebar.svelte (100%) rename {src => Sveltekit-App/src}/lib/sidebar/navigation.ts (100%) rename {src => Sveltekit-App/src}/lib/sidebar/reports.ts (100%) rename {src => Sveltekit-App/src}/lib/utils/hmr-stores.js (100%) rename {src => Sveltekit-App/src}/lib/utils/oauth.ts (52%) rename {src => Sveltekit-App/src}/routes/+error.svelte (100%) rename {src => Sveltekit-App/src}/routes/+layout.svelte (100%) rename {src => Sveltekit-App/src}/routes/+page.server.ts (100%) rename {src => Sveltekit-App/src}/routes/+page.svelte (100%) rename {src => Sveltekit-App/src}/routes/api/sailpoint/cluster/[clusterID]/+server.ts (100%) rename {src => Sveltekit-App/src}/routes/api/sailpoint/search/+server.ts (100%) rename {src => Sveltekit-App/src}/routes/api/sailpoint/search/[limit]/+server.ts (100%) rename {src => Sveltekit-App/src}/routes/api/sailpoint/source/[sourceID]/+server.ts (100%) rename {src => Sveltekit-App/src}/routes/api/sailpoint/sourceAggEvents/+server.ts (100%) rename {src => Sveltekit-App/src}/routes/api/sailpoint/sourceAggEvents/[sourceID]/+server.ts (100%) rename {src => Sveltekit-App/src}/routes/api/sailpoint/sources/+server.ts (100%) rename {src => Sveltekit-App/src}/routes/api/sailpoint/sources/[limit]/+server.ts (100%) rename {src => Sveltekit-App/src}/routes/callback/+page.server.ts (100%) rename {src => Sveltekit-App/src}/routes/callback/+page.svelte (100%) rename {src => Sveltekit-App/src}/routes/callback/loadinglist.ts (100%) rename {src => Sveltekit-App/src}/routes/home/+error.svelte (100%) rename {src => Sveltekit-App/src}/routes/home/+layout.svelte (100%) rename {src => Sveltekit-App/src}/routes/home/+page.svelte (100%) rename {src => Sveltekit-App/src}/routes/home/identity-inactive-but-has-access/+page.svelte (100%) rename {src => Sveltekit-App/src}/routes/home/missing-cloud-life-cycle-state/+page.svelte (100%) rename {src => Sveltekit-App/src}/routes/home/missing-cloud-life-cycle-state/+page.ts (100%) rename {src => Sveltekit-App/src}/routes/home/source-account-create-error/+page.svelte (100%) rename {src => Sveltekit-App/src}/routes/home/source-aggregations/+page.server.ts (100%) rename {src => Sveltekit-App/src}/routes/home/source-aggregations/+page.svelte (100%) rename {src => Sveltekit-App/src}/routes/home/source-delete-threshold/+page.svelte (100%) rename {src => Sveltekit-App/src}/routes/home/source-delete-threshold/+page.ts (100%) rename {src => Sveltekit-App/src}/routes/home/source-owner-configured/+page.svelte (100%) rename {src => Sveltekit-App/src}/routes/home/source-owner-configured/+page.ts (100%) rename {src => Sveltekit-App/src}/routes/home/sources/+page.svelte (100%) rename {src => Sveltekit-App/src}/routes/home/sources/+page.ts (100%) rename {src => Sveltekit-App/src}/routes/home/sources/[sourceID]/+page.svelte (100%) rename {src => Sveltekit-App/src}/routes/home/sources/[sourceID]/+page.ts (100%) create mode 100644 Sveltekit-App/src/routes/sailpoint/cluster/[clusterID]/+server.ts create mode 100644 Sveltekit-App/src/routes/sailpoint/search/+server.ts create mode 100644 Sveltekit-App/src/routes/sailpoint/search/[limit]/+server.ts create mode 100644 Sveltekit-App/src/routes/sailpoint/source/[sourceID]/+server.ts create mode 100644 Sveltekit-App/src/routes/sailpoint/sourceAggEvents/+server.ts create mode 100644 Sveltekit-App/src/routes/sailpoint/sourceAggEvents/[sourceID]/+server.ts create mode 100644 Sveltekit-App/src/routes/sailpoint/sources/+server.ts create mode 100644 Sveltekit-App/src/routes/sailpoint/sources/[limit]/+server.ts rename {static => Sveltekit-App/static}/SailPoint-Developer-Community-Lockup.png (100%) rename {static => Sveltekit-App/static}/logo.ico (100%) create mode 100644 Sveltekit-App/svelte.config.js rename tailwind.config.ts => Sveltekit-App/tailwind.config.ts (53%) create mode 100644 Sveltekit-App/tsconfig.json create mode 100644 Sveltekit-App/vite.config.ts create mode 100644 Sveltekit-Build/package.json create mode 100644 Sveltekit-Build/src/client/SailPoint-Developer-Community-Lockup.png create mode 100644 Sveltekit-Build/src/client/_app/immutable/assets/0.f8980d8d.css create mode 100644 Sveltekit-Build/src/client/_app/immutable/assets/5.5d335b63.css create mode 100644 Sveltekit-Build/src/client/_app/immutable/assets/7.5326dc8c.css create mode 100644 Sveltekit-Build/src/client/_app/immutable/assets/ProgressBar.4f1e9ba5.css create mode 100644 Sveltekit-Build/src/client/_app/immutable/assets/_layout.f8980d8d.css create mode 100644 Sveltekit-Build/src/client/_app/immutable/assets/_page.5326dc8c.css create mode 100644 Sveltekit-Build/src/client/_app/immutable/assets/_page.5d335b63.css create mode 100644 Sveltekit-Build/src/client/_app/immutable/chunks/CodeBlock.f9dc51ff.js create mode 100644 Sveltekit-Build/src/client/_app/immutable/chunks/LightSwitch.9a354e21.js create mode 100644 Sveltekit-Build/src/client/_app/immutable/chunks/Progress.f79dd2c2.js create mode 100644 Sveltekit-Build/src/client/_app/immutable/chunks/ProgressBar.svelte_svelte_type_style_lang.ae9fcbec.js create mode 100644 Sveltekit-Build/src/client/_app/immutable/chunks/Table.f5db4492.js create mode 100644 Sveltekit-Build/src/client/_app/immutable/chunks/alasql.min.1f65b74d.js create mode 100644 Sveltekit-Build/src/client/_app/immutable/chunks/each.ac7da970.js create mode 100644 Sveltekit-Build/src/client/_app/immutable/chunks/index.09b1afef.js create mode 100644 Sveltekit-Build/src/client/_app/immutable/chunks/index.7b3d626a.js create mode 100644 Sveltekit-Build/src/client/_app/immutable/chunks/navigation.ad74cec2.js create mode 100644 Sveltekit-Build/src/client/_app/immutable/chunks/parse.bee59afc.js create mode 100644 Sveltekit-Build/src/client/_app/immutable/chunks/reports.b2ca66e3.js create mode 100644 Sveltekit-Build/src/client/_app/immutable/chunks/scheduler.10bc074a.js create mode 100644 Sveltekit-Build/src/client/_app/immutable/chunks/singletons.47bc9baa.js create mode 100644 Sveltekit-Build/src/client/_app/immutable/chunks/spread.8a54911c.js create mode 100644 Sveltekit-Build/src/client/_app/immutable/chunks/stores.cca8a80c.js create mode 100644 Sveltekit-Build/src/client/_app/immutable/chunks/stores.dc566077.js create mode 100644 Sveltekit-Build/src/client/_app/immutable/entry/app.6c42c562.js create mode 100644 Sveltekit-Build/src/client/_app/immutable/entry/start.b81a31e7.js create mode 100644 Sveltekit-Build/src/client/_app/immutable/nodes/0.0dac9feb.js create mode 100644 Sveltekit-Build/src/client/_app/immutable/nodes/1.2c9d8424.js create mode 100644 Sveltekit-Build/src/client/_app/immutable/nodes/10.85c4084a.js create mode 100644 Sveltekit-Build/src/client/_app/immutable/nodes/11.7f869098.js create mode 100644 Sveltekit-Build/src/client/_app/immutable/nodes/12.9e147695.js create mode 100644 Sveltekit-Build/src/client/_app/immutable/nodes/13.dcd76235.js create mode 100644 Sveltekit-Build/src/client/_app/immutable/nodes/14.6d01e554.js create mode 100644 Sveltekit-Build/src/client/_app/immutable/nodes/2.6263d8aa.js create mode 100644 Sveltekit-Build/src/client/_app/immutable/nodes/3.5a4d9b31.js create mode 100644 Sveltekit-Build/src/client/_app/immutable/nodes/4.579169aa.js create mode 100644 Sveltekit-Build/src/client/_app/immutable/nodes/5.ff940f01.js create mode 100644 Sveltekit-Build/src/client/_app/immutable/nodes/6.5c6dd6a1.js create mode 100644 Sveltekit-Build/src/client/_app/immutable/nodes/7.907073c0.js create mode 100644 Sveltekit-Build/src/client/_app/immutable/nodes/8.c90b853f.js create mode 100644 Sveltekit-Build/src/client/_app/immutable/nodes/9.c8b00f6f.js create mode 100644 Sveltekit-Build/src/client/_app/version.json create mode 100644 Sveltekit-Build/src/client/logo.ico create mode 100644 Sveltekit-Build/src/env.js create mode 100644 Sveltekit-Build/src/handler.js create mode 100644 Sveltekit-Build/src/index.js create mode 100644 Sveltekit-Build/src/server/chunks/0-e9744a96.js create mode 100644 Sveltekit-Build/src/server/chunks/0-e9744a96.js.map create mode 100644 Sveltekit-Build/src/server/chunks/1-60dcc5a6.js create mode 100644 Sveltekit-Build/src/server/chunks/1-60dcc5a6.js.map create mode 100644 Sveltekit-Build/src/server/chunks/10-9374670e.js create mode 100644 Sveltekit-Build/src/server/chunks/10-9374670e.js.map create mode 100644 Sveltekit-Build/src/server/chunks/11-87a3e344.js create mode 100644 Sveltekit-Build/src/server/chunks/11-87a3e344.js.map create mode 100644 Sveltekit-Build/src/server/chunks/12-232a1e9d.js create mode 100644 Sveltekit-Build/src/server/chunks/12-232a1e9d.js.map create mode 100644 Sveltekit-Build/src/server/chunks/13-5321d69a.js create mode 100644 Sveltekit-Build/src/server/chunks/13-5321d69a.js.map create mode 100644 Sveltekit-Build/src/server/chunks/14-4e6f7e19.js create mode 100644 Sveltekit-Build/src/server/chunks/14-4e6f7e19.js.map create mode 100644 Sveltekit-Build/src/server/chunks/2-77089f36.js create mode 100644 Sveltekit-Build/src/server/chunks/2-77089f36.js.map create mode 100644 Sveltekit-Build/src/server/chunks/3-d9f1aacb.js create mode 100644 Sveltekit-Build/src/server/chunks/3-d9f1aacb.js.map create mode 100644 Sveltekit-Build/src/server/chunks/4-44e1ab29.js create mode 100644 Sveltekit-Build/src/server/chunks/4-44e1ab29.js.map create mode 100644 Sveltekit-Build/src/server/chunks/5-5a21d9d4.js create mode 100644 Sveltekit-Build/src/server/chunks/5-5a21d9d4.js.map create mode 100644 Sveltekit-Build/src/server/chunks/6-574c72b1.js create mode 100644 Sveltekit-Build/src/server/chunks/6-574c72b1.js.map create mode 100644 Sveltekit-Build/src/server/chunks/7-418cc4be.js create mode 100644 Sveltekit-Build/src/server/chunks/7-418cc4be.js.map create mode 100644 Sveltekit-Build/src/server/chunks/8-5a065195.js create mode 100644 Sveltekit-Build/src/server/chunks/8-5a065195.js.map create mode 100644 Sveltekit-Build/src/server/chunks/9-f099c85b.js create mode 100644 Sveltekit-Build/src/server/chunks/9-f099c85b.js.map create mode 100644 Sveltekit-Build/src/server/chunks/CodeBlock-8434d487.js create mode 100644 Sveltekit-Build/src/server/chunks/CodeBlock-8434d487.js.map create mode 100644 Sveltekit-Build/src/server/chunks/LightSwitch-68264f9f.js create mode 100644 Sveltekit-Build/src/server/chunks/LightSwitch-68264f9f.js.map create mode 100644 Sveltekit-Build/src/server/chunks/Progress-e5ba7d72.js create mode 100644 Sveltekit-Build/src/server/chunks/Progress-e5ba7d72.js.map create mode 100644 Sveltekit-Build/src/server/chunks/ProgressBar.svelte_svelte_type_style_lang-7a3862c3.js create mode 100644 Sveltekit-Build/src/server/chunks/ProgressBar.svelte_svelte_type_style_lang-7a3862c3.js.map create mode 100644 Sveltekit-Build/src/server/chunks/ProgressRadial-14a0db91.js create mode 100644 Sveltekit-Build/src/server/chunks/ProgressRadial-14a0db91.js.map create mode 100644 Sveltekit-Build/src/server/chunks/_commonjsHelpers-2155838d.js create mode 100644 Sveltekit-Build/src/server/chunks/_commonjsHelpers-2155838d.js.map create mode 100644 Sveltekit-Build/src/server/chunks/_error.svelte-e8de01b5.js create mode 100644 Sveltekit-Build/src/server/chunks/_error.svelte-e8de01b5.js.map create mode 100644 Sveltekit-Build/src/server/chunks/_error.svelte-ef2a7f39.js create mode 100644 Sveltekit-Build/src/server/chunks/_error.svelte-ef2a7f39.js.map create mode 100644 Sveltekit-Build/src/server/chunks/_layout.svelte-da25be14.js create mode 100644 Sveltekit-Build/src/server/chunks/_layout.svelte-da25be14.js.map create mode 100644 Sveltekit-Build/src/server/chunks/_layout.svelte-fdd7864c.js create mode 100644 Sveltekit-Build/src/server/chunks/_layout.svelte-fdd7864c.js.map create mode 100644 Sveltekit-Build/src/server/chunks/_page.svelte-002168fb.js create mode 100644 Sveltekit-Build/src/server/chunks/_page.svelte-002168fb.js.map create mode 100644 Sveltekit-Build/src/server/chunks/_page.svelte-728c7b11.js create mode 100644 Sveltekit-Build/src/server/chunks/_page.svelte-728c7b11.js.map create mode 100644 Sveltekit-Build/src/server/chunks/_page.svelte-820b48f2.js create mode 100644 Sveltekit-Build/src/server/chunks/_page.svelte-820b48f2.js.map create mode 100644 Sveltekit-Build/src/server/chunks/_page.svelte-be321c56.js create mode 100644 Sveltekit-Build/src/server/chunks/_page.svelte-be321c56.js.map create mode 100644 Sveltekit-Build/src/server/chunks/_page.svelte-cc29554f.js create mode 100644 Sveltekit-Build/src/server/chunks/_page.svelte-cc29554f.js.map create mode 100644 Sveltekit-Build/src/server/chunks/_page.svelte-de10b13f.js create mode 100644 Sveltekit-Build/src/server/chunks/_page.svelte-de10b13f.js.map create mode 100644 Sveltekit-Build/src/server/chunks/_page.svelte-e557a7f2.js create mode 100644 Sveltekit-Build/src/server/chunks/_page.svelte-e557a7f2.js.map create mode 100644 Sveltekit-Build/src/server/chunks/_page.svelte-ed80e6a8.js create mode 100644 Sveltekit-Build/src/server/chunks/_page.svelte-ed80e6a8.js.map create mode 100644 Sveltekit-Build/src/server/chunks/_page.svelte-f644b717.js create mode 100644 Sveltekit-Build/src/server/chunks/_page.svelte-f644b717.js.map create mode 100644 Sveltekit-Build/src/server/chunks/_page.svelte-f74d708f.js create mode 100644 Sveltekit-Build/src/server/chunks/_page.svelte-f74d708f.js.map create mode 100644 Sveltekit-Build/src/server/chunks/_page.svelte-fa408311.js create mode 100644 Sveltekit-Build/src/server/chunks/_page.svelte-fa408311.js.map create mode 100644 Sveltekit-Build/src/server/chunks/_server.ts-0a1cc55c.js create mode 100644 Sveltekit-Build/src/server/chunks/_server.ts-0a1cc55c.js.map create mode 100644 Sveltekit-Build/src/server/chunks/_server.ts-2955f0bd.js create mode 100644 Sveltekit-Build/src/server/chunks/_server.ts-2955f0bd.js.map create mode 100644 Sveltekit-Build/src/server/chunks/_server.ts-4246c559.js create mode 100644 Sveltekit-Build/src/server/chunks/_server.ts-4246c559.js.map create mode 100644 Sveltekit-Build/src/server/chunks/_server.ts-463772b0.js create mode 100644 Sveltekit-Build/src/server/chunks/_server.ts-463772b0.js.map create mode 100644 Sveltekit-Build/src/server/chunks/_server.ts-4c27b61b.js create mode 100644 Sveltekit-Build/src/server/chunks/_server.ts-4c27b61b.js.map create mode 100644 Sveltekit-Build/src/server/chunks/_server.ts-55408b6b.js create mode 100644 Sveltekit-Build/src/server/chunks/_server.ts-55408b6b.js.map create mode 100644 Sveltekit-Build/src/server/chunks/_server.ts-61ca2e72.js create mode 100644 Sveltekit-Build/src/server/chunks/_server.ts-61ca2e72.js.map create mode 100644 Sveltekit-Build/src/server/chunks/_server.ts-6383650c.js create mode 100644 Sveltekit-Build/src/server/chunks/_server.ts-6383650c.js.map create mode 100644 Sveltekit-Build/src/server/chunks/_server.ts-6af7d2b0.js create mode 100644 Sveltekit-Build/src/server/chunks/_server.ts-6af7d2b0.js.map create mode 100644 Sveltekit-Build/src/server/chunks/_server.ts-6afa9b8d.js create mode 100644 Sveltekit-Build/src/server/chunks/_server.ts-6afa9b8d.js.map create mode 100644 Sveltekit-Build/src/server/chunks/_server.ts-97bad773.js create mode 100644 Sveltekit-Build/src/server/chunks/_server.ts-97bad773.js.map create mode 100644 Sveltekit-Build/src/server/chunks/_server.ts-98cb6889.js create mode 100644 Sveltekit-Build/src/server/chunks/_server.ts-98cb6889.js.map create mode 100644 Sveltekit-Build/src/server/chunks/_server.ts-9b776721.js create mode 100644 Sveltekit-Build/src/server/chunks/_server.ts-9b776721.js.map create mode 100644 Sveltekit-Build/src/server/chunks/_server.ts-b91d26ae.js create mode 100644 Sveltekit-Build/src/server/chunks/_server.ts-b91d26ae.js.map create mode 100644 Sveltekit-Build/src/server/chunks/_server.ts-bffb2e15.js create mode 100644 Sveltekit-Build/src/server/chunks/_server.ts-bffb2e15.js.map create mode 100644 Sveltekit-Build/src/server/chunks/_server.ts-daf2b664.js create mode 100644 Sveltekit-Build/src/server/chunks/_server.ts-daf2b664.js.map create mode 100644 Sveltekit-Build/src/server/chunks/alasql.fs-ab2a2e02.js create mode 100644 Sveltekit-Build/src/server/chunks/alasql.fs-ab2a2e02.js.map create mode 100644 Sveltekit-Build/src/server/chunks/index-64aa7a5e.js create mode 100644 Sveltekit-Build/src/server/chunks/index-64aa7a5e.js.map create mode 100644 Sveltekit-Build/src/server/chunks/index2-f081c4d4.js create mode 100644 Sveltekit-Build/src/server/chunks/index2-f081c4d4.js.map create mode 100644 Sveltekit-Build/src/server/chunks/oauth-017ba109.js create mode 100644 Sveltekit-Build/src/server/chunks/oauth-017ba109.js.map create mode 100644 Sveltekit-Build/src/server/chunks/prod-ssr-7cc47430.js create mode 100644 Sveltekit-Build/src/server/chunks/prod-ssr-7cc47430.js.map create mode 100644 Sveltekit-Build/src/server/chunks/reports-881f004a.js create mode 100644 Sveltekit-Build/src/server/chunks/reports-881f004a.js.map create mode 100644 Sveltekit-Build/src/server/chunks/sdk-9eeff2de.js create mode 100644 Sveltekit-Build/src/server/chunks/sdk-9eeff2de.js.map create mode 100644 Sveltekit-Build/src/server/chunks/ssr-3eccf1b3.js create mode 100644 Sveltekit-Build/src/server/chunks/ssr-3eccf1b3.js.map create mode 100644 Sveltekit-Build/src/server/chunks/stores-45fd0783.js create mode 100644 Sveltekit-Build/src/server/chunks/stores-45fd0783.js.map create mode 100644 Sveltekit-Build/src/server/chunks/stores2-39445ea0.js create mode 100644 Sveltekit-Build/src/server/chunks/stores2-39445ea0.js.map create mode 100644 Sveltekit-Build/src/server/index.js create mode 100644 Sveltekit-Build/src/server/index.js.map create mode 100644 Sveltekit-Build/src/server/manifest.js create mode 100644 Sveltekit-Build/src/server/manifest.js.map create mode 100644 Sveltekit-Build/src/shims.js delete mode 100644 assets/images/api-linter-output.png delete mode 100644 globals.d.ts delete mode 100644 jsconfig.json delete mode 100644 package-lock.json delete mode 100644 package.json delete mode 100644 postcss.config.cjs delete mode 100644 screenshot.png delete mode 100644 src/app.d.ts delete mode 100644 src/electron.cjs delete mode 100644 src/preload.cjs delete mode 100644 static/sveltekit-electron.svg delete mode 100644 svelte.config.js delete mode 100644 tsconfig.json delete mode 100644 vite.config.js diff --git a/.gitignore b/.gitignore index ae39d10..d5c71ef 100644 --- a/.gitignore +++ b/.gitignore @@ -14,3 +14,5 @@ yarn-error.log pnpm-lock.yaml .DS_Store + +out/ \ No newline at end of file diff --git a/.npmrc b/.npmrc deleted file mode 100644 index c42da84..0000000 --- a/.npmrc +++ /dev/null @@ -1 +0,0 @@ -engine-strict = true diff --git a/.prettierrc b/.prettierrc deleted file mode 100644 index 1032184..0000000 --- a/.prettierrc +++ /dev/null @@ -1,12 +0,0 @@ -{ - "svelteSortOrder": "scripts-markup-styles", - "htmlWhitespaceSensitivity": "ignore", - "trailingComma": "all", - "requirePragma": false, - "bracketSpacing": true, - "singleQuote": true, - "printWidth": 100, - "useTabs": true, - "tabWidth": 4, - "semi": true -} diff --git a/.vscode/extensions.json b/.vscode/extensions.json deleted file mode 100644 index bdef820..0000000 --- a/.vscode/extensions.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "recommendations": ["svelte.svelte-vscode"] -} diff --git a/.vscode/settings.json b/.vscode/settings.json deleted file mode 100644 index b797227..0000000 --- a/.vscode/settings.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "[svelte]": { - "editor.formatOnSave": true, - "editor.defaultFormatter": "svelte.svelte-vscode" - } -} diff --git a/Electron-App/.gitignore b/Electron-App/.gitignore new file mode 100644 index 0000000..8296128 --- /dev/null +++ b/Electron-App/.gitignore @@ -0,0 +1,92 @@ +# Logs +logs +*.log +npm-debug.log* +yarn-debug.log* +yarn-error.log* +lerna-debug.log* + +# Diagnostic reports (https://nodejs.org/api/report.html) +report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json + +# Runtime data +pids +*.pid +*.seed +*.pid.lock +.DS_Store + +# Directory for instrumented libs generated by jscoverage/JSCover +lib-cov + +# Coverage directory used by tools like istanbul +coverage +*.lcov + +# nyc test coverage +.nyc_output + +# node-waf configuration +.lock-wscript + +# Compiled binary addons (https://nodejs.org/api/addons.html) +build/Release + +# Dependency directories +node_modules/ +jspm_packages/ + +# TypeScript v1 declaration files +typings/ + +# TypeScript cache +*.tsbuildinfo + +# Optional npm cache directory +.npm + +# Optional eslint cache +.eslintcache + +# Optional REPL history +.node_repl_history + +# Output of 'npm pack' +*.tgz + +# Yarn Integrity file +.yarn-integrity + +# dotenv environment variables file +.env +.env.test + +# parcel-bundler cache (https://parceljs.org/) +.cache + +# next.js build output +.next + +# nuxt.js build output +.nuxt + +# vuepress build output +.vuepress/dist + +# Serverless directories +.serverless/ + +# FuseBox cache +.fusebox/ + +# DynamoDB Local files +.dynamodb/ + +# Webpack +.webpack/ + +# Vite +.vite/ + +# Electron-Forge +out/ diff --git a/Electron-App/forge.config.js b/Electron-App/forge.config.js new file mode 100644 index 0000000..19f5844 --- /dev/null +++ b/Electron-App/forge.config.js @@ -0,0 +1,31 @@ +module.exports = { + packagerConfig: { + asar: true, + extraResource: ["../Sveltekit-Build"], + }, + rebuildConfig: {}, + makers: [ + { + name: "@electron-forge/maker-squirrel", + config: {}, + }, + { + name: "@electron-forge/maker-zip", + platforms: ["darwin"], + }, + { + name: "@electron-forge/maker-deb", + config: {}, + }, + { + name: "@electron-forge/maker-rpm", + config: {}, + }, + ], + plugins: [ + { + name: "@electron-forge/plugin-auto-unpack-natives", + config: {}, + }, + ], +}; diff --git a/Electron-App/package-lock.json b/Electron-App/package-lock.json new file mode 100644 index 0000000..c1b7b83 --- /dev/null +++ b/Electron-App/package-lock.json @@ -0,0 +1,5879 @@ +{ + "name": "my-new-app", + "version": "1.0.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "my-new-app", + "version": "1.0.0", + "license": "MIT", + "dependencies": { + "@electron-toolkit/utils": "^2.0.1", + "electron-log": "^5.0.0", + "electron-squirrel-startup": "^1.0.0", + "express": "^4.18.2" + }, + "devDependencies": { + "@electron-forge/cli": "^7.0.0", + "@electron-forge/maker-deb": "^7.0.0", + "@electron-forge/maker-rpm": "^7.0.0", + "@electron-forge/maker-squirrel": "^7.0.0", + "@electron-forge/maker-zip": "^7.0.0", + "@electron-forge/plugin-auto-unpack-natives": "^7.0.0", + "electron": "27.1.0" + } + }, + "node_modules/@electron-forge/cli": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@electron-forge/cli/-/cli-7.0.0.tgz", + "integrity": "sha512-XI1F4ijteS2d3Yd97eOnwCiC1EASwkAMjGtAoIR1MmGphie4iKjmiKq1rKoBYypb2IaeHvb9+FtLc+TbT/v7bQ==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/malept" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/subscription/pkg/npm-.electron-forge-cli?utm_medium=referral&utm_source=npm_fund" + } + ], + "license": "MIT", + "dependencies": { + "@electron-forge/core": "7.0.0", + "@electron-forge/shared-types": "7.0.0", + "@electron/get": "^3.0.0", + "chalk": "^4.0.0", + "commander": "^4.1.1", + "debug": "^4.3.1", + "fs-extra": "^10.0.0", + "listr2": "^5.0.3", + "semver": "^7.2.1" + }, + "bin": { + "electron-forge": "dist/electron-forge.js", + "electron-forge-vscode-nix": "script/vscode.sh", + "electron-forge-vscode-win": "script/vscode.cmd" + }, + "engines": { + "node": ">= 16.4.0" + } + }, + "node_modules/@electron-forge/cli/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, + "license": "MIT", + "engines": { + "node": ">= 6" + } + }, + "node_modules/@electron-forge/core": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@electron-forge/core/-/core-7.0.0.tgz", + "integrity": "sha512-9LtyrRUodJCj3AhFbN9Wd0wekMZSWJynAcmarPiXUmxYeIg3V3KiFl2si6jVHTNA4LYb+t9qagfGQSV/TFGmKg==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/malept" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/subscription/pkg/npm-.electron-forge-core?utm_medium=referral&utm_source=npm_fund" + } + ], + "license": "MIT", + "dependencies": { + "@electron-forge/core-utils": "7.0.0", + "@electron-forge/maker-base": "7.0.0", + "@electron-forge/plugin-base": "7.0.0", + "@electron-forge/publisher-base": "7.0.0", + "@electron-forge/shared-types": "7.0.0", + "@electron-forge/template-base": "7.0.0", + "@electron-forge/template-vite": "7.0.0", + "@electron-forge/template-vite-typescript": "7.0.0", + "@electron-forge/template-webpack": "7.0.0", + "@electron-forge/template-webpack-typescript": "7.0.0", + "@electron-forge/tracer": "7.0.0", + "@electron/get": "^3.0.0", + "@electron/packager": "^18.0.0", + "@electron/rebuild": "^3.2.10", + "@malept/cross-spawn-promise": "^2.0.0", + "chalk": "^4.0.0", + "debug": "^4.3.1", + "fast-glob": "^3.2.7", + "filenamify": "^4.1.0", + "find-up": "^5.0.0", + "fs-extra": "^10.0.0", + "got": "^11.8.5", + "interpret": "^3.1.1", + "listr2": "^5.0.3", + "lodash": "^4.17.20", + "log-symbols": "^4.0.0", + "node-fetch": "^2.6.7", + "progress": "^2.0.3", + "rechoir": "^0.8.0", + "resolve-package": "^1.0.1", + "semver": "^7.2.1", + "source-map-support": "^0.5.13", + "sudo-prompt": "^9.1.1", + "username": "^5.1.0", + "yarn-or-npm": "^3.0.1" + }, + "engines": { + "node": ">= 16.4.0" + } + }, + "node_modules/@electron-forge/core-utils": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@electron-forge/core-utils/-/core-utils-7.0.0.tgz", + "integrity": "sha512-ybF8I+bET7zEFFD7mf72upiidiT90xMpyk6/cOutJ7q/NiB4Rd2B5/6+c0N6XwasIVu4/Afj7xVTvpLQJ0Ectg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@electron-forge/shared-types": "7.0.0", + "@electron/rebuild": "^3.2.10", + "@malept/cross-spawn-promise": "^2.0.0", + "chalk": "^4.0.0", + "debug": "^4.3.1", + "find-up": "^5.0.0", + "fs-extra": "^10.0.0", + "log-symbols": "^4.0.0", + "semver": "^7.2.1", + "yarn-or-npm": "^3.0.1" + }, + "engines": { + "node": ">= 16.4.0" + } + }, + "node_modules/@electron-forge/core-utils/node_modules/@malept/cross-spawn-promise": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@malept/cross-spawn-promise/-/cross-spawn-promise-2.0.0.tgz", + "integrity": "sha512-1DpKU0Z5ThltBwjNySMC14g0CkbyhCaz9FkhxqNsZI6uAPJXFS8cMXlBKo26FJ8ZuW6S9GCMcR9IO5k2X5/9Fg==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/malept" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/subscription/pkg/npm-.malept-cross-spawn-promise?utm_medium=referral&utm_source=npm_fund" + } + ], + "license": "Apache-2.0", + "dependencies": { + "cross-spawn": "^7.0.1" + }, + "engines": { + "node": ">= 12.13.0" + } + }, + "node_modules/@electron-forge/core-utils/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, + "license": "MIT", + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@electron-forge/core-utils/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, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/@electron-forge/core-utils/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, + "license": "MIT", + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@electron-forge/core-utils/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, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/@electron-forge/core/node_modules/@malept/cross-spawn-promise": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@malept/cross-spawn-promise/-/cross-spawn-promise-2.0.0.tgz", + "integrity": "sha512-1DpKU0Z5ThltBwjNySMC14g0CkbyhCaz9FkhxqNsZI6uAPJXFS8cMXlBKo26FJ8ZuW6S9GCMcR9IO5k2X5/9Fg==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/malept" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/subscription/pkg/npm-.malept-cross-spawn-promise?utm_medium=referral&utm_source=npm_fund" + } + ], + "license": "Apache-2.0", + "dependencies": { + "cross-spawn": "^7.0.1" + }, + "engines": { + "node": ">= 12.13.0" + } + }, + "node_modules/@electron-forge/core/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, + "license": "MIT", + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@electron-forge/core/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, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/@electron-forge/core/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, + "license": "MIT", + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@electron-forge/core/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, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/@electron-forge/maker-base": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@electron-forge/maker-base/-/maker-base-7.0.0.tgz", + "integrity": "sha512-bOKplbGpl33UjrXlfw/pfTFSGxhhzyWRhK/AQ6IN4HXFbUCWJ+d97QjlRwcIYLeXIn6Ri614qrd6yXODoj4CVw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@electron-forge/shared-types": "7.0.0", + "fs-extra": "^10.0.0", + "which": "^2.0.2" + }, + "engines": { + "node": ">= 16.4.0" + } + }, + "node_modules/@electron-forge/maker-deb": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@electron-forge/maker-deb/-/maker-deb-7.0.0.tgz", + "integrity": "sha512-Zp/3wN6bEIsrwiCIgT19BZgbpjZn0h/xITDayEEQELVRxJxFSIjpLgGrTMUrEsFgJAlN6Q/GOESM7vJzXRHWUw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@electron-forge/maker-base": "7.0.0", + "@electron-forge/shared-types": "7.0.0" + }, + "engines": { + "node": ">= 16.4.0" + }, + "optionalDependencies": { + "electron-installer-debian": "^3.2.0" + } + }, + "node_modules/@electron-forge/maker-rpm": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@electron-forge/maker-rpm/-/maker-rpm-7.0.0.tgz", + "integrity": "sha512-4/1CQUxhBXgTjubfX1sI0FB8WpceR2x3bpkUo85Q+shdnCGc581Nwkfx3PYlMdV+OZSHvf8zYswi7Fapt8qTSw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@electron-forge/maker-base": "7.0.0", + "@electron-forge/shared-types": "7.0.0" + }, + "engines": { + "node": ">= 16.4.0" + }, + "optionalDependencies": { + "electron-installer-redhat": "^3.2.0" + } + }, + "node_modules/@electron-forge/maker-squirrel": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@electron-forge/maker-squirrel/-/maker-squirrel-7.0.0.tgz", + "integrity": "sha512-VSYSR0K08MHhWtnbB1E1Tu8niic0w2ArR76Gil6b+8rAKZZOMSxAzhuKCmGDkiyTGk//jn7lm2Wx+BLr7EAHNQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@electron-forge/maker-base": "7.0.0", + "@electron-forge/shared-types": "7.0.0", + "fs-extra": "^10.0.0" + }, + "engines": { + "node": ">= 16.4.0" + }, + "optionalDependencies": { + "electron-winstaller": "^5.0.0" + } + }, + "node_modules/@electron-forge/maker-zip": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@electron-forge/maker-zip/-/maker-zip-7.0.0.tgz", + "integrity": "sha512-ThsTyXnZdD1zT3qC6G4WDLnqGRsTgaiwvk1afBc2K51W+/pdrvXcRLwwn1O0CSEWijNqf6vqz7097SzdUG1gWw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@electron-forge/maker-base": "7.0.0", + "@electron-forge/shared-types": "7.0.0", + "cross-zip": "^4.0.0", + "fs-extra": "^10.0.0", + "got": "^11.8.5" + }, + "engines": { + "node": ">= 16.4.0" + } + }, + "node_modules/@electron-forge/plugin-auto-unpack-natives": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@electron-forge/plugin-auto-unpack-natives/-/plugin-auto-unpack-natives-7.0.0.tgz", + "integrity": "sha512-P9geNsFPJ1v896uAx6CVQyyh6obd8+n5JQA2sTt03GULd6HstsAZcJHhldTXjWJmI4kMdH+kumX2g+SnM8huSw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@electron-forge/plugin-base": "7.0.0", + "@electron-forge/shared-types": "7.0.0" + }, + "engines": { + "node": ">= 16.4.0" + } + }, + "node_modules/@electron-forge/plugin-base": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@electron-forge/plugin-base/-/plugin-base-7.0.0.tgz", + "integrity": "sha512-dirXw/dV/AzQzhBpnEh/NqMPUG37Wtj5uc0jBFAPbI4Dn7Y9U8heAlmxPpAqRQejPWGnMCm1ylCCDMGbrvbAHg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@electron-forge/shared-types": "7.0.0" + }, + "engines": { + "node": ">= 16.4.0" + } + }, + "node_modules/@electron-forge/publisher-base": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@electron-forge/publisher-base/-/publisher-base-7.0.0.tgz", + "integrity": "sha512-orVGINrfYWw9ZsVDjZ/ORfDsvSYgIuYfzZKsGFXsnvd5u6GMqJRHnLu8c76dlOSFU/O+pHSUTdi2uMSE87Wjiw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@electron-forge/shared-types": "7.0.0" + }, + "engines": { + "node": ">= 16.4.0" + } + }, + "node_modules/@electron-forge/shared-types": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@electron-forge/shared-types/-/shared-types-7.0.0.tgz", + "integrity": "sha512-unGoAuBPsFTyry55clgRHpt2l/YmbAXcMfScJK6Apke8/3VBNo3hcWep+v+EZcpeK6i3FEpNutoFsuZWrVv65g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@electron-forge/tracer": "7.0.0", + "@electron/packager": "^18.0.0", + "@electron/rebuild": "^3.2.10", + "listr2": "^5.0.3" + }, + "engines": { + "node": ">= 16.4.0" + } + }, + "node_modules/@electron-forge/template-base": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@electron-forge/template-base/-/template-base-7.0.0.tgz", + "integrity": "sha512-AjiwEf5mn9wSK2ia+Hk84MCoNDPFOVnKpyybZ2+9bwGCG8mvyoJ9o5b9g/miiEsOAfr+xp+ZRnBV7sqHox18zA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@electron-forge/shared-types": "7.0.0", + "@malept/cross-spawn-promise": "^2.0.0", + "debug": "^4.3.1", + "fs-extra": "^10.0.0", + "username": "^5.1.0" + }, + "engines": { + "node": ">= 16.4.0" + } + }, + "node_modules/@electron-forge/template-base/node_modules/@malept/cross-spawn-promise": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@malept/cross-spawn-promise/-/cross-spawn-promise-2.0.0.tgz", + "integrity": "sha512-1DpKU0Z5ThltBwjNySMC14g0CkbyhCaz9FkhxqNsZI6uAPJXFS8cMXlBKo26FJ8ZuW6S9GCMcR9IO5k2X5/9Fg==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/malept" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/subscription/pkg/npm-.malept-cross-spawn-promise?utm_medium=referral&utm_source=npm_fund" + } + ], + "license": "Apache-2.0", + "dependencies": { + "cross-spawn": "^7.0.1" + }, + "engines": { + "node": ">= 12.13.0" + } + }, + "node_modules/@electron-forge/template-base/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, + "license": "MIT", + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@electron-forge/template-base/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, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/@electron-forge/template-base/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, + "license": "MIT", + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@electron-forge/template-base/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, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/@electron-forge/template-vite": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@electron-forge/template-vite/-/template-vite-7.0.0.tgz", + "integrity": "sha512-B1e2HkAnOlLf0aNk6wn90Osh4DD8T31BngHpopjfN5XjEWPNx8dSzZckaa3JwvBRbgBkDS8Yh5nTnTgj3czbxw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@electron-forge/shared-types": "7.0.0", + "@electron-forge/template-base": "7.0.0", + "fs-extra": "^10.0.0" + }, + "engines": { + "node": ">= 16.4.0" + } + }, + "node_modules/@electron-forge/template-vite-typescript": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@electron-forge/template-vite-typescript/-/template-vite-typescript-7.0.0.tgz", + "integrity": "sha512-1Y6t8Bn+5RUAKix5Ih9hbCyPjQexXLnU7zTnHVwG7CttRLoXI8PKRkTGB4A7rjw2QawJDBLa+twyu6U34ZNqhA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@electron-forge/shared-types": "7.0.0", + "@electron-forge/template-base": "7.0.0", + "fs-extra": "^10.0.0" + }, + "engines": { + "node": ">= 16.4.0" + } + }, + "node_modules/@electron-forge/template-webpack": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@electron-forge/template-webpack/-/template-webpack-7.0.0.tgz", + "integrity": "sha512-mpjNIVtJu0VmpgXsy9qGYxcnPNiV9R5yczVSArdvQHiStB0uq7IHzlsOz4ZOYYK61g1OaNPXxf4QqnbJ0zSo7A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@electron-forge/shared-types": "7.0.0", + "@electron-forge/template-base": "7.0.0", + "fs-extra": "^10.0.0" + }, + "engines": { + "node": ">= 16.4.0" + } + }, + "node_modules/@electron-forge/template-webpack-typescript": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@electron-forge/template-webpack-typescript/-/template-webpack-typescript-7.0.0.tgz", + "integrity": "sha512-wh0PpcbboZth64UgWLv+/ypTSQjmq4W/7TYMuckEtFezuy97q8xhpboc1Mx6/Rlt+NlyZf4Ypvm7Ki8kg7K6hg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@electron-forge/shared-types": "7.0.0", + "@electron-forge/template-base": "7.0.0", + "fs-extra": "^10.0.0" + }, + "engines": { + "node": ">= 16.4.0" + } + }, + "node_modules/@electron-forge/tracer": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@electron-forge/tracer/-/tracer-7.0.0.tgz", + "integrity": "sha512-28j4GC7I06r0TpTVWbenvPXqcvfUp+8FVizFxETuUjd24sp8UgZGI+v1AVSqmsrknoHsFuZuCMb9U08Fq/kcRQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "chrome-trace-event": "^1.0.3" + }, + "engines": { + "node": ">= 14.17.5" + } + }, + "node_modules/@electron-toolkit/utils": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@electron-toolkit/utils/-/utils-2.0.1.tgz", + "integrity": "sha512-3nnjd3D1NIjxdzNrvR5fkJ3kbJNbRkpHppv0/pSbMX6I0DaBzpPXeSfDYuJJKzZrAc3CmGcJa0MU4+AjEOlT4g==", + "peerDependencies": { + "electron": ">=13.0.0" + } + }, + "node_modules/@electron/asar": { + "version": "3.2.8", + "resolved": "https://registry.npmjs.org/@electron/asar/-/asar-3.2.8.tgz", + "integrity": "sha512-cmskk5M06ewHMZAplSiF4AlME3IrnnZhKnWbtwKVLRkdJkKyUVjMLhDIiPIx/+6zQWVlKX/LtmK9xDme7540Sg==", + "dev": true, + "license": "MIT", + "dependencies": { + "commander": "^5.0.0", + "glob": "^7.1.6", + "minimatch": "^3.0.4" + }, + "bin": { + "asar": "bin/asar.js" + }, + "engines": { + "node": ">=10.12.0" + } + }, + "node_modules/@electron/get": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@electron/get/-/get-3.0.0.tgz", + "integrity": "sha512-hLv4BYFiyrNRI+U0Mm2X7RxCCdJLkDUn8GCEp9QJzbLpZRko+UaLlCjOMkj6TEtirNLPyBA7y1SeGfnpOB21aQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "debug": "^4.1.1", + "env-paths": "^2.2.0", + "fs-extra": "^8.1.0", + "got": "^11.8.5", + "progress": "^2.0.3", + "semver": "^6.2.0", + "sumchecker": "^3.0.1" + }, + "engines": { + "node": ">=14" + }, + "optionalDependencies": { + "global-agent": "^3.0.0" + } + }, + "node_modules/@electron/get/node_modules/fs-extra": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", + "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", + "dev": true, + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + }, + "engines": { + "node": ">=6 <7 || >=8" + } + }, + "node_modules/@electron/get/node_modules/jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==", + "dev": true, + "license": "MIT", + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/@electron/get/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@electron/get/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==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/@electron/notarize": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@electron/notarize/-/notarize-2.2.0.tgz", + "integrity": "sha512-Sf7RG47rafeGuUm+kLEbTXMN8XZeYXN70dMBstrcgiykxCq3SLl1uqxFWndxSI1LfMqv4Eq9PTDHLPwiya31Kg==", + "dev": true, + "license": "MIT", + "dependencies": { + "debug": "^4.1.1", + "fs-extra": "^9.0.1", + "promise-retry": "^2.0.1" + }, + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/@electron/notarize/node_modules/fs-extra": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", + "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "at-least-node": "^1.0.0", + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@electron/osx-sign": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/@electron/osx-sign/-/osx-sign-1.0.5.tgz", + "integrity": "sha512-k9ZzUQtamSoweGQDV2jILiRIHUu7lYlJ3c6IEmjv1hC17rclE+eb9U+f6UFlOOETo0JzY1HNlXy4YOlCvl+Lww==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "compare-version": "^0.1.2", + "debug": "^4.3.4", + "fs-extra": "^10.0.0", + "isbinaryfile": "^4.0.8", + "minimist": "^1.2.6", + "plist": "^3.0.5" + }, + "bin": { + "electron-osx-flat": "bin/electron-osx-flat.js", + "electron-osx-sign": "bin/electron-osx-sign.js" + }, + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/@electron/packager": { + "version": "18.0.0", + "resolved": "https://registry.npmjs.org/@electron/packager/-/packager-18.0.0.tgz", + "integrity": "sha512-OihHRTSkMiAuiZISN8h6azFRXgWqLWY/S1OpGru3sBB9Q4lQ0gD3WbqP7MSpFKEFcOozDvIB4LZUyAsfJIRQBg==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "@electron/asar": "^3.2.1", + "@electron/get": "^3.0.0", + "@electron/notarize": "^2.1.0", + "@electron/osx-sign": "^1.0.5", + "@electron/universal": "^1.3.2", + "cross-spawn-windows-exe": "^1.2.0", + "debug": "^4.0.1", + "extract-zip": "^2.0.0", + "filenamify": "^4.1.0", + "fs-extra": "^11.1.0", + "galactus": "^1.0.0", + "get-package-info": "^1.0.0", + "junk": "^3.1.0", + "parse-author": "^2.0.0", + "plist": "^3.0.0", + "rcedit": "^4.0.0", + "resolve": "^1.1.6", + "semver": "^7.1.3", + "yargs-parser": "^21.1.1" + }, + "bin": { + "electron-packager": "bin/electron-packager.js" + }, + "engines": { + "node": ">= 16.4.0" + }, + "funding": { + "url": "https://github.com/electron/packager?sponsor=1" + } + }, + "node_modules/@electron/packager/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, + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=14.14" + } + }, + "node_modules/@electron/rebuild": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/@electron/rebuild/-/rebuild-3.3.0.tgz", + "integrity": "sha512-S1vgpzIOS1wCJmsYjdLz97MTUV6UTLcMk/HE3w90HYtVxvW+PQdwxLbgsrECX2bysqcnmM5a0K6mXj/gwVgYtQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@malept/cross-spawn-promise": "^2.0.0", + "chalk": "^4.0.0", + "debug": "^4.1.1", + "detect-libc": "^2.0.1", + "fs-extra": "^10.0.0", + "got": "^11.7.0", + "node-abi": "^3.45.0", + "node-api-version": "^0.1.4", + "node-gyp": "^9.0.0", + "ora": "^5.1.0", + "semver": "^7.3.5", + "tar": "^6.0.5", + "yargs": "^17.0.1" + }, + "bin": { + "electron-rebuild": "lib/cli.js" + }, + "engines": { + "node": ">=12.13.0" + } + }, + "node_modules/@electron/rebuild/node_modules/@malept/cross-spawn-promise": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@malept/cross-spawn-promise/-/cross-spawn-promise-2.0.0.tgz", + "integrity": "sha512-1DpKU0Z5ThltBwjNySMC14g0CkbyhCaz9FkhxqNsZI6uAPJXFS8cMXlBKo26FJ8ZuW6S9GCMcR9IO5k2X5/9Fg==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/malept" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/subscription/pkg/npm-.malept-cross-spawn-promise?utm_medium=referral&utm_source=npm_fund" + } + ], + "license": "Apache-2.0", + "dependencies": { + "cross-spawn": "^7.0.1" + }, + "engines": { + "node": ">= 12.13.0" + } + }, + "node_modules/@electron/rebuild/node_modules/cliui": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", + "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", + "dev": true, + "license": "ISC", + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.1", + "wrap-ansi": "^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@electron/rebuild/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, + "license": "MIT", + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@electron/rebuild/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, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/@electron/rebuild/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, + "license": "MIT", + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@electron/rebuild/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, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/@electron/rebuild/node_modules/yargs": { + "version": "17.7.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", + "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", + "dev": true, + "license": "MIT", + "dependencies": { + "cliui": "^8.0.1", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.3", + "y18n": "^5.0.5", + "yargs-parser": "^21.1.1" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@electron/universal": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/@electron/universal/-/universal-1.5.1.tgz", + "integrity": "sha512-kbgXxyEauPJiQQUNG2VgUeyfQNFk6hBF11ISN2PNI6agUgPl55pv4eQmaqHzTAzchBvqZ2tQuRVaPStGf0mxGw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@electron/asar": "^3.2.1", + "@malept/cross-spawn-promise": "^1.1.0", + "debug": "^4.3.1", + "dir-compare": "^3.0.0", + "fs-extra": "^9.0.1", + "minimatch": "^3.0.4", + "plist": "^3.0.4" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/@electron/universal/node_modules/fs-extra": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", + "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "at-least-node": "^1.0.0", + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@gar/promisify": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/@gar/promisify/-/promisify-1.1.3.tgz", + "integrity": "sha512-k2Ty1JcVojjJFwrg/ThKi2ujJ7XNLYaFGNB/bWT9wGR+oSMJHMa5w+CUq6p/pVrKeNNgA7pCqEcjSnHVoqJQFw==", + "dev": true, + "license": "MIT" + }, + "node_modules/@malept/cross-spawn-promise": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@malept/cross-spawn-promise/-/cross-spawn-promise-1.1.1.tgz", + "integrity": "sha512-RTBGWL5FWQcg9orDOCcp4LvItNzUPcyEU9bwaeJX0rJ1IQxzucC48Y0/sQLp/g6t99IQgAlGIaesJS+gTn7tVQ==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/malept" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/subscription/pkg/npm-.malept-cross-spawn-promise?utm_medium=referral&utm_source=npm_fund" + } + ], + "license": "Apache-2.0", + "dependencies": { + "cross-spawn": "^7.0.1" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/@malept/cross-spawn-promise/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, + "license": "MIT", + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@malept/cross-spawn-promise/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, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/@malept/cross-spawn-promise/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, + "license": "MIT", + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@malept/cross-spawn-promise/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, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@npmcli/fs": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/@npmcli/fs/-/fs-2.1.2.tgz", + "integrity": "sha512-yOJKRvohFOaLqipNtwYB9WugyZKhC/DZC4VYPmpaCzDBrA8YpK3qHZ8/HGscMnE4GqbkLNuVcCnxkeQEdGt6LQ==", + "dev": true, + "license": "ISC", + "dependencies": { + "@gar/promisify": "^1.1.3", + "semver": "^7.3.5" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/@npmcli/move-file": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@npmcli/move-file/-/move-file-2.0.1.tgz", + "integrity": "sha512-mJd2Z5TjYWq/ttPLLGqArdtnC74J6bOzg4rMDnN+p1xTacZ2yPRCk2y0oSWQtygLR9YVQXgOcONrwtnk3JupxQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "mkdirp": "^1.0.4", + "rimraf": "^3.0.2" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/@sindresorhus/is": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-4.6.0.tgz", + "integrity": "sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw==", + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sindresorhus/is?sponsor=1" + } + }, + "node_modules/@szmarczak/http-timer": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-4.0.6.tgz", + "integrity": "sha512-4BAffykYOgO+5nzBWYwE3W90sBgLJoUPRWWcL8wlyiM8IB8ipJz3UMJ9KXQd1RKQXpKp8Tutn80HZtWsu2u76w==", + "license": "MIT", + "dependencies": { + "defer-to-connect": "^2.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "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==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 10" + } + }, + "node_modules/@types/cacheable-request": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/@types/cacheable-request/-/cacheable-request-6.0.3.tgz", + "integrity": "sha512-IQ3EbTzGxIigb1I3qPZc1rWJnH0BmSKv5QYTalEwweFvyBDLSAe24zP0le/hyi7ecGfZVlIVAg4BZqb8WBwKqw==", + "license": "MIT", + "dependencies": { + "@types/http-cache-semantics": "*", + "@types/keyv": "^3.1.4", + "@types/node": "*", + "@types/responselike": "^1.0.0" + } + }, + "node_modules/@types/http-cache-semantics": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/@types/http-cache-semantics/-/http-cache-semantics-4.0.4.tgz", + "integrity": "sha512-1m0bIFVc7eJWyve9S0RnuRgcQqF/Xd5QsUZAZeQFr1Q3/p9JWoQQEqmVy+DPTNpGXwhgIetAoYF8JSc33q29QA==", + "license": "MIT" + }, + "node_modules/@types/keyv": { + "version": "3.1.4", + "resolved": "https://registry.npmjs.org/@types/keyv/-/keyv-3.1.4.tgz", + "integrity": "sha512-BQ5aZNSCpj7D6K2ksrRCTmKRLEpnPvWDiLPfoGyhZ++8YtiK9d/3DBKPJgry359X/P1PfruyYwvnvwFjuEiEIg==", + "license": "MIT", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/node": { + "version": "20.9.1", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.9.1.tgz", + "integrity": "sha512-HhmzZh5LSJNS5O8jQKpJ/3ZcrrlG6L70hpGqMIAoM9YVD0YBRNWYsfwcXq8VnSjlNpCpgLzMXdiPo+dxcvSmiA==", + "license": "MIT", + "dependencies": { + "undici-types": "~5.26.4" + } + }, + "node_modules/@types/responselike": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@types/responselike/-/responselike-1.0.3.tgz", + "integrity": "sha512-H/+L+UkTV33uf49PH5pCAUBVPNj2nDBXTN+qS1dOwyyg24l3CcicicCA7ca+HMvJBZcFgl5r8e+RR6elsb4Lyw==", + "license": "MIT", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/yauzl": { + "version": "2.10.3", + "resolved": "https://registry.npmjs.org/@types/yauzl/-/yauzl-2.10.3.tgz", + "integrity": "sha512-oJoftv0LSuaDZE3Le4DbKX+KS9G36NzOeSap90UIK0yMA/NhKJhqlSGtNDORNRaIbQfzjXDrQa0ytJ6mNRGz/Q==", + "license": "MIT", + "optional": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@xmldom/xmldom": { + "version": "0.8.10", + "resolved": "https://registry.npmjs.org/@xmldom/xmldom/-/xmldom-0.8.10.tgz", + "integrity": "sha512-2WALfTl4xo2SkGCYRt6rDTFfk9R1czmBvUQy12gK2KuRKIpWEhcbbzy8EZXtz/jkRqHX8bFEc6FC1HjX4TUWYw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10.0.0" + } + }, + "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, + "license": "ISC" + }, + "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==", + "dependencies": { + "mime-types": "~2.1.34", + "negotiator": "0.6.3" + }, + "engines": { + "node": ">= 0.6" + } + }, + "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==", + "dev": true, + "license": "MIT", + "dependencies": { + "debug": "4" + }, + "engines": { + "node": ">= 6.0.0" + } + }, + "node_modules/agentkeepalive": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/agentkeepalive/-/agentkeepalive-4.5.0.tgz", + "integrity": "sha512-5GG/5IbQQpC9FpkRGsSvZI5QYeSCzlJHdpBQntCsuTOxhKD8lqKhrleg2Yi7yvMIf82Ycmmqln9U8V9qwEiJew==", + "dev": true, + "license": "MIT", + "dependencies": { + "humanize-ms": "^1.2.1" + }, + "engines": { + "node": ">= 8.0.0" + } + }, + "node_modules/aggregate-error": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", + "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", + "dev": true, + "license": "MIT", + "dependencies": { + "clean-stack": "^2.0.0", + "indent-string": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-escapes": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", + "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "type-fest": "^0.21.3" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ansi-escapes/node_modules/type-fest": { + "version": "0.21.3", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", + "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", + "dev": true, + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/aproba": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/aproba/-/aproba-2.0.0.tgz", + "integrity": "sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/are-we-there-yet": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-3.0.1.tgz", + "integrity": "sha512-QZW4EDmGwlYur0Yyf/b2uGucHQMa8aFUP7eu9ddR73vvhFyt4V0Vl3QHPcTNJ8l6qYOBdxgXdnBXQrHilfRQBg==", + "dev": true, + "license": "ISC", + "dependencies": { + "delegates": "^1.0.0", + "readable-stream": "^3.6.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "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==" + }, + "node_modules/astral-regex": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz", + "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/at-least-node": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz", + "integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/author-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/author-regex/-/author-regex-1.0.0.tgz", + "integrity": "sha512-KbWgR8wOYRAPekEmMXrYYdc7BRyhn2Ftk7KWfMUnQ43hFdojWEFRxhhRUm3/OFEdPa1r0KAvTTg9YQK57xTe0g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.8" + } + }, + "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, + "license": "MIT" + }, + "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==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, + "node_modules/bl": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz", + "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==", + "dev": true, + "license": "MIT", + "dependencies": { + "buffer": "^5.5.0", + "inherits": "^2.0.4", + "readable-stream": "^3.4.0" + } + }, + "node_modules/bluebird": { + "version": "3.7.2", + "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", + "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==", + "dev": true, + "license": "MIT" + }, + "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==", + "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==", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/body-parser/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==", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3" + }, + "engines": { + "node": ">=0.10.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==" + }, + "node_modules/boolean": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/boolean/-/boolean-3.2.0.tgz", + "integrity": "sha512-d0II/GO9uf9lfUHH2BQsjxzRJZBdsjgsBiW4BvhWk/3qoKwQFjIDVN19PfX8F2D/r9PCMTtLWjYVCFrpeYUzsw==", + "license": "MIT", + "optional": true + }, + "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, + "license": "MIT", + "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, + "license": "MIT", + "dependencies": { + "fill-range": "^7.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/buffer": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", + "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT", + "dependencies": { + "base64-js": "^1.3.1", + "ieee754": "^1.1.13" + } + }, + "node_modules/buffer-crc32": { + "version": "0.2.13", + "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", + "integrity": "sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==", + "license": "MIT", + "engines": { + "node": "*" + } + }, + "node_modules/buffer-equal": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/buffer-equal/-/buffer-equal-1.0.1.tgz", + "integrity": "sha512-QoV3ptgEaQpvVwbXdSO39iqPQTCxSF7A5U99AxbHYqUdCizL/lH2Z0A2y6nbZucxMEOtNyZfG2s6gsVugGpKkg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/buffer-from": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/bytes": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", + "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/cacache": { + "version": "16.1.3", + "resolved": "https://registry.npmjs.org/cacache/-/cacache-16.1.3.tgz", + "integrity": "sha512-/+Emcj9DAXxX4cwlLmRI9c166RuL3w30zp4R7Joiv2cQTtTtA+jeuCAjH3ZlGnYS3tKENSrKhAzVVP9GVyzeYQ==", + "dev": true, + "license": "ISC", + "dependencies": { + "@npmcli/fs": "^2.1.0", + "@npmcli/move-file": "^2.0.0", + "chownr": "^2.0.0", + "fs-minipass": "^2.1.0", + "glob": "^8.0.1", + "infer-owner": "^1.0.4", + "lru-cache": "^7.7.1", + "minipass": "^3.1.6", + "minipass-collect": "^1.0.2", + "minipass-flush": "^1.0.5", + "minipass-pipeline": "^1.2.4", + "mkdirp": "^1.0.4", + "p-map": "^4.0.0", + "promise-inflight": "^1.0.1", + "rimraf": "^3.0.2", + "ssri": "^9.0.0", + "tar": "^6.1.11", + "unique-filename": "^2.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/cacache/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/cacache/node_modules/glob": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-8.1.0.tgz", + "integrity": "sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==", + "dev": true, + "license": "ISC", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^5.0.1", + "once": "^1.3.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/cacache/node_modules/minimatch": { + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", + "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/cacheable-lookup": { + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-5.0.4.tgz", + "integrity": "sha512-2/kNscPhpcxrOigMZzbiWF7dz8ilhb/nIHU3EyZiXWXpeq/au8qJ8VhdftMkty3n7Gj6HIGalQG8oiBNB3AJgA==", + "license": "MIT", + "engines": { + "node": ">=10.6.0" + } + }, + "node_modules/cacheable-request": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-7.0.4.tgz", + "integrity": "sha512-v+p6ongsrp0yTGbJXjgxPow2+DL93DASP4kXCDKb8/bwRtt9OEF3whggkkDkGNzgcWy2XaF4a8nZglC7uElscg==", + "license": "MIT", + "dependencies": { + "clone-response": "^1.0.2", + "get-stream": "^5.1.0", + "http-cache-semantics": "^4.0.0", + "keyv": "^4.0.0", + "lowercase-keys": "^2.0.0", + "normalize-url": "^6.0.1", + "responselike": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/call-bind": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.5.tgz", + "integrity": "sha512-C3nQxfFZxFRVoJoGKKI8y3MOEo129NQ+FgQ08iye+Mk4zNZZGdjfs06bVTr+DBSlA66Q2VEcMki/cUCP4SercQ==", + "dependencies": { + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.1", + "set-function-length": "^1.1.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/chownr": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", + "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=10" + } + }, + "node_modules/chrome-trace-event": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz", + "integrity": "sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.0" + } + }, + "node_modules/clean-stack": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", + "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/cli-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", + "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", + "dev": true, + "license": "MIT", + "dependencies": { + "restore-cursor": "^3.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cli-spinners": { + "version": "2.9.1", + "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.9.1.tgz", + "integrity": "sha512-jHgecW0pxkonBJdrKsqxgRX9AcG+u/5k0Q7WPDfi8AogLAdwxEkyYYNWwZ5GvVFoFx2uiY1eNcSK00fh+1+FyQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/cli-truncate": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/cli-truncate/-/cli-truncate-2.1.0.tgz", + "integrity": "sha512-n8fOixwDD6b/ObinzTrp1ZKFzbgvKZvuz/TvejnLn1aQfC6r52XEx85FmuC+3HI+JM7coBRXUvNqEU2PHVrHpg==", + "dev": true, + "license": "MIT", + "dependencies": { + "slice-ansi": "^3.0.0", + "string-width": "^4.2.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/clone": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", + "integrity": "sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.8" + } + }, + "node_modules/clone-response": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.3.tgz", + "integrity": "sha512-ROoL94jJH2dUVML2Y/5PEDNaSHgeOdSDicUyS7izcF63G6sTc/FTjLub4b8Il9S8S0beOfYt0TaA5qvFK+w0wA==", + "license": "MIT", + "dependencies": { + "mimic-response": "^1.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/clone-response/node_modules/mimic-response": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz", + "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==", + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true, + "license": "MIT" + }, + "node_modules/color-support": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-support/-/color-support-1.1.3.tgz", + "integrity": "sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==", + "dev": true, + "license": "ISC", + "bin": { + "color-support": "bin.js" + } + }, + "node_modules/colorette": { + "version": "2.0.20", + "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.20.tgz", + "integrity": "sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==", + "dev": true, + "license": "MIT" + }, + "node_modules/commander": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-5.1.0.tgz", + "integrity": "sha512-P0CysNDQ7rtVw4QIQtm+MRxV66vKFSvlsQvGYXZWR3qFU0jlMKHZZZgw8e+8DSah4UDKMqnknRDQz+xuQXQ/Zg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 6" + } + }, + "node_modules/compare-version": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/compare-version/-/compare-version-0.1.2.tgz", + "integrity": "sha512-pJDh5/4wrEnXX/VWRZvruAGHkzKdr46z11OlTPN+VrATlWWhSKewNCJ1futCO5C7eJB3nPMFZA1LeYtcFboZ2A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "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, + "license": "MIT" + }, + "node_modules/console-control-strings": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", + "integrity": "sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ==", + "dev": true, + "license": "ISC" + }, + "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==", + "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==", + "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==", + "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==" + }, + "node_modules/cross-spawn": { + "version": "6.0.5", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", + "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "nice-try": "^1.0.4", + "path-key": "^2.0.1", + "semver": "^5.5.0", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + }, + "engines": { + "node": ">=4.8" + } + }, + "node_modules/cross-spawn-windows-exe": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/cross-spawn-windows-exe/-/cross-spawn-windows-exe-1.2.0.tgz", + "integrity": "sha512-mkLtJJcYbDCxEG7Js6eUnUNndWjyUZwJ3H7bErmmtOYU/Zb99DyUkpamuIZE0b3bhmJyZ7D90uS6f+CGxRRjOw==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/malept" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/subscription/pkg/npm-cross-spawn-windows-exe?utm_medium=referral&utm_source=npm_fund" + } + ], + "license": "Apache-2.0", + "dependencies": { + "@malept/cross-spawn-promise": "^1.1.0", + "is-wsl": "^2.2.0", + "which": "^2.0.2" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/cross-spawn/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, + "license": "ISC", + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/cross-spawn/node_modules/which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "dev": true, + "license": "ISC", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "which": "bin/which" + } + }, + "node_modules/cross-zip": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/cross-zip/-/cross-zip-4.0.0.tgz", + "integrity": "sha512-MEzGfZo0rqE10O/B+AEcCSJLZsrWuRUvmqJTqHNqBtALhaJc3E3ixLGLJNTRzEA2K34wbmOHC4fwYs9sVsdcCA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT", + "engines": { + "node": ">=12.10" + } + }, + "node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "license": "MIT", + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/decompress-response": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz", + "integrity": "sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==", + "license": "MIT", + "dependencies": { + "mimic-response": "^3.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/defaults": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.4.tgz", + "integrity": "sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==", + "dev": true, + "license": "MIT", + "dependencies": { + "clone": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/defer-to-connect": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-2.0.1.tgz", + "integrity": "sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg==", + "license": "MIT", + "engines": { + "node": ">=10" + } + }, + "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==", + "license": "MIT", + "dependencies": { + "get-intrinsic": "^1.2.1", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "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==", + "license": "MIT", + "optional": 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/delegates": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", + "integrity": "sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ==", + "dev": true, + "license": "MIT" + }, + "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/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-libc": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.2.tgz", + "integrity": "sha512-UX6sGumvvqSaXgdKGUsgZWqcUyIXZ/vZTrlRT/iobiKhGL0zL4d3osHj3uqllWJK+i+sixDS/3COVEOFbupFyw==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=8" + } + }, + "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==", + "license": "MIT", + "optional": true + }, + "node_modules/dir-compare": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/dir-compare/-/dir-compare-3.3.0.tgz", + "integrity": "sha512-J7/et3WlGUCxjdnD3HAAzQ6nsnc0WL6DD7WcwJb7c39iH1+AWfg+9OqzJNaI6PkBwBvm1mhZNL9iY/nRiZXlPg==", + "dev": true, + "license": "MIT", + "dependencies": { + "buffer-equal": "^1.0.0", + "minimatch": "^3.0.4" + } + }, + "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/electron": { + "version": "27.1.0", + "resolved": "https://registry.npmjs.org/electron/-/electron-27.1.0.tgz", + "integrity": "sha512-XPdJiO475QJ8cx59/goWNNWnlV0vab+Ut3occymos7VDxkHV5mFrlW6tcGi+M3bW6gBfwpJocWMng8tw542vww==", + "hasInstallScript": true, + "license": "MIT", + "dependencies": { + "@electron/get": "^2.0.0", + "@types/node": "^18.11.18", + "extract-zip": "^2.0.1" + }, + "bin": { + "electron": "cli.js" + }, + "engines": { + "node": ">= 12.20.55" + } + }, + "node_modules/electron-log": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/electron-log/-/electron-log-5.0.0.tgz", + "integrity": "sha512-vB3akupmQvA8jAyNL9rULZtf6WoP8vsabjXsRtiqXS6/D37SwN/4LEyj4JD+9Bv6xoTcx/LrVnsIKEEWdq5ClQ==", + "engines": { + "electron": ">= 13", + "node": ">= 14" + } + }, + "node_modules/electron-squirrel-startup": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/electron-squirrel-startup/-/electron-squirrel-startup-1.0.0.tgz", + "integrity": "sha512-Oce8mvgGdFmwr+DsAcXBmFK8jFfN6yaFAP9IvyhTfupM3nFkBku/7VS/mdtJteWumImkC6P+BKGsxScoDDkv9Q==", + "license": "Apache-2.0", + "dependencies": { + "debug": "^2.2.0" + } + }, + "node_modules/electron-squirrel-startup/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "license": "MIT", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/electron-squirrel-startup/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "license": "MIT" + }, + "node_modules/electron-winstaller": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/electron-winstaller/-/electron-winstaller-5.2.1.tgz", + "integrity": "sha512-2UuvOGMLLGJioIBsqWANF1A19G7uJuIifae8/pR3FClI21aCJc5nutAOGnZI17kkxUc47UqByqKOl0XSVtwAlQ==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "optional": true, + "dependencies": { + "@electron/asar": "^3.2.1", + "debug": "^4.1.1", + "fs-extra": "^7.0.1", + "lodash.template": "^4.2.2", + "temp": "^0.9.0" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/electron-winstaller/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==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "graceful-fs": "^4.1.2", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + }, + "engines": { + "node": ">=6 <7 || >=8" + } + }, + "node_modules/electron-winstaller/node_modules/jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==", + "dev": true, + "license": "MIT", + "optional": true, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/electron-winstaller/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==", + "dev": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/electron/node_modules/@electron/get": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@electron/get/-/get-2.0.3.tgz", + "integrity": "sha512-Qkzpg2s9GnVV2I2BjRksUi43U5e6+zaQMcjoJy0C+C5oxaKl+fmckGDQFtRpZpZV0NQekuZZ+tGz7EA9TVnQtQ==", + "license": "MIT", + "dependencies": { + "debug": "^4.1.1", + "env-paths": "^2.2.0", + "fs-extra": "^8.1.0", + "got": "^11.8.5", + "progress": "^2.0.3", + "semver": "^6.2.0", + "sumchecker": "^3.0.1" + }, + "engines": { + "node": ">=12" + }, + "optionalDependencies": { + "global-agent": "^3.0.0" + } + }, + "node_modules/electron/node_modules/@types/node": { + "version": "18.18.9", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.18.9.tgz", + "integrity": "sha512-0f5klcuImLnG4Qreu9hPj/rEfFq6YRc5n2mAjSsH+ec/mJL+3voBH0+8T7o8RpFjH7ovc+TRsL/c7OYIQsPTfQ==", + "license": "MIT", + "dependencies": { + "undici-types": "~5.26.4" + } + }, + "node_modules/electron/node_modules/fs-extra": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", + "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + }, + "engines": { + "node": ">=6 <7 || >=8" + } + }, + "node_modules/electron/node_modules/jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==", + "license": "MIT", + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/electron/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/electron/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==", + "license": "MIT", + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true, + "license": "MIT" + }, + "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/encoding": { + "version": "0.1.13", + "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.13.tgz", + "integrity": "sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "iconv-lite": "^0.6.2" + } + }, + "node_modules/end-of-stream": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", + "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", + "license": "MIT", + "dependencies": { + "once": "^1.4.0" + } + }, + "node_modules/env-paths": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz", + "integrity": "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/err-code": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/err-code/-/err-code-2.0.3.tgz", + "integrity": "sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA==", + "dev": true, + "license": "MIT" + }, + "node_modules/error-ex": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-arrayish": "^0.2.1" + } + }, + "node_modules/es6-error": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/es6-error/-/es6-error-4.1.1.tgz", + "integrity": "sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg==", + "license": "MIT", + "optional": true + }, + "node_modules/escalade": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", + "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "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-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==", + "dev": true, + "license": "MIT", + "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/execa": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz", + "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==", + "dev": true, + "license": "MIT", + "dependencies": { + "cross-spawn": "^6.0.0", + "get-stream": "^4.0.0", + "is-stream": "^1.1.0", + "npm-run-path": "^2.0.0", + "p-finally": "^1.0.0", + "signal-exit": "^3.0.0", + "strip-eof": "^1.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/execa/node_modules/get-stream": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", + "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", + "dev": true, + "license": "MIT", + "dependencies": { + "pump": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/expand-tilde": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/expand-tilde/-/expand-tilde-2.0.2.tgz", + "integrity": "sha512-A5EmesHW6rfnZ9ysHQjPdJRni0SRar0tjtG5MNtm9n5TUvsYU8oozprtRD4AqHxcZWWlVuAmQo2nWKfN9oyjTw==", + "dev": true, + "license": "MIT", + "dependencies": { + "homedir-polyfill": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/exponential-backoff": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/exponential-backoff/-/exponential-backoff-3.1.1.tgz", + "integrity": "sha512-dX7e/LHVJ6W3DE1MHWi9S1EYzDESENfLrYohG2G++ovZrYOkm4Knwa0mc1cn84xJOR4KEU0WSchhLbd0UklbHw==", + "dev": true, + "license": "Apache-2.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==", + "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==", + "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==" + }, + "node_modules/extract-zip": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-2.0.1.tgz", + "integrity": "sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg==", + "license": "BSD-2-Clause", + "dependencies": { + "debug": "^4.1.1", + "get-stream": "^5.1.0", + "yauzl": "^2.10.0" + }, + "bin": { + "extract-zip": "cli.js" + }, + "engines": { + "node": ">= 10.17.0" + }, + "optionalDependencies": { + "@types/yauzl": "^2.9.1" + } + }, + "node_modules/fast-glob": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz", + "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==", + "dev": true, + "license": "MIT", + "dependencies": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" + }, + "engines": { + "node": ">=8.6.0" + } + }, + "node_modules/fastq": { + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.15.0.tgz", + "integrity": "sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==", + "dev": true, + "license": "ISC", + "dependencies": { + "reusify": "^1.0.4" + } + }, + "node_modules/fd-slicer": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz", + "integrity": "sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==", + "license": "MIT", + "dependencies": { + "pend": "~1.2.0" + } + }, + "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==", + "dev": true, + "license": "MIT", + "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==", + "dev": true, + "license": "MIT", + "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, + "license": "MIT", + "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==", + "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==", + "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==" + }, + "node_modules/find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "dev": true, + "license": "MIT", + "dependencies": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/flora-colossus": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/flora-colossus/-/flora-colossus-2.0.0.tgz", + "integrity": "sha512-dz4HxH6pOvbUzZpZ/yXhafjbR2I8cenK5xL0KtBFb7U2ADsR+OwXifnxZjij/pZWF775uSCMzWVd+jDik2H2IA==", + "dev": true, + "license": "MIT", + "dependencies": { + "debug": "^4.3.4", + "fs-extra": "^10.1.0" + }, + "engines": { + "node": ">= 12" + } + }, + "node_modules/forwarded": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", + "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", + "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": "10.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", + "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/fs-minipass": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", + "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", + "dev": true, + "license": "ISC", + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">= 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, + "license": "ISC" + }, + "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==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/galactus": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/galactus/-/galactus-1.0.0.tgz", + "integrity": "sha512-R1fam6D4CyKQGNlvJne4dkNF+PvUUl7TAJInvTGa9fti9qAv95quQz29GXapA4d8Ec266mJJxFVh82M4GIIGDQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "debug": "^4.3.4", + "flora-colossus": "^2.0.0", + "fs-extra": "^10.1.0" + }, + "engines": { + "node": ">= 12" + } + }, + "node_modules/gauge": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/gauge/-/gauge-4.0.4.tgz", + "integrity": "sha512-f9m+BEN5jkg6a0fZjleidjN51VE1X+mPFQ2DJ0uv1V39oCLCbsGe6yjbBnp7eK7z/+GAon99a3nHuqbuuthyPg==", + "dev": true, + "license": "ISC", + "dependencies": { + "aproba": "^1.0.3 || ^2.0.0", + "color-support": "^1.1.3", + "console-control-strings": "^1.1.0", + "has-unicode": "^2.0.1", + "signal-exit": "^3.0.7", + "string-width": "^4.2.3", + "strip-ansi": "^6.0.1", + "wide-align": "^1.1.5" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "dev": true, + "license": "ISC", + "engines": { + "node": "6.* || 8.* || >= 10.*" + } + }, + "node_modules/get-installed-path": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/get-installed-path/-/get-installed-path-2.1.1.tgz", + "integrity": "sha512-Qkn9eq6tW5/q9BDVdMpB8tOHljX9OSP0jRC5TRNVA4qRc839t4g8KQaR8t0Uv0EFVL0MlyG7m/ofjEgAROtYsA==", + "dev": true, + "license": "MIT", + "dependencies": { + "global-modules": "1.0.0" + } + }, + "node_modules/get-intrinsic": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.2.tgz", + "integrity": "sha512-0gSo4ml/0j98Y3lngkFEot/zhiCeWsbYIlZ+uZOVgzLyLaUw7wxUL+nCTP0XJvJg1AXulJRI3UJi8GsbDuxdGA==", + "license": "MIT", + "dependencies": { + "function-bind": "^1.1.2", + "has-proto": "^1.0.1", + "has-symbols": "^1.0.3", + "hasown": "^2.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-package-info": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/get-package-info/-/get-package-info-1.0.0.tgz", + "integrity": "sha512-SCbprXGAPdIhKAXiG+Mk6yeoFH61JlYunqdFQFHDtLjJlDjFf6x07dsS8acO+xWt52jpdVo49AlVDnUVK1sDNw==", + "dev": true, + "license": "MIT", + "dependencies": { + "bluebird": "^3.1.1", + "debug": "^2.2.0", + "lodash.get": "^4.0.0", + "read-pkg-up": "^2.0.0" + }, + "engines": { + "node": ">= 4.0" + } + }, + "node_modules/get-package-info/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, + "license": "MIT", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/get-package-info/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true, + "license": "MIT" + }, + "node_modules/get-stream": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", + "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", + "license": "MIT", + "dependencies": { + "pump": "^3.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "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, + "license": "ISC", + "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, + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/global-agent": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/global-agent/-/global-agent-3.0.0.tgz", + "integrity": "sha512-PT6XReJ+D07JvGoxQMkT6qji/jVNfX/h364XHZOWeRzy64sSFr+xJ5OX7LI3b4MPQzdL4H8Y8M0xzPpsVMwA8Q==", + "license": "BSD-3-Clause", + "optional": true, + "dependencies": { + "boolean": "^3.0.1", + "es6-error": "^4.1.1", + "matcher": "^3.0.0", + "roarr": "^2.15.3", + "semver": "^7.3.2", + "serialize-error": "^7.0.1" + }, + "engines": { + "node": ">=10.0" + } + }, + "node_modules/global-modules": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-1.0.0.tgz", + "integrity": "sha512-sKzpEkf11GpOFuw0Zzjzmt4B4UZwjOcG757PPvrfhxcLFbq0wpsgpOqxpxtxFiCG4DtG93M6XRVbF2oGdev7bg==", + "dev": true, + "license": "MIT", + "dependencies": { + "global-prefix": "^1.0.1", + "is-windows": "^1.0.1", + "resolve-dir": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/global-prefix": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-1.0.2.tgz", + "integrity": "sha512-5lsx1NUDHtSjfg0eHlmYvZKv8/nVqX4ckFbM+FrGcQ+04KWcWFo9P5MxPZYSzUvyzmdTbI7Eix8Q4IbELDqzKg==", + "dev": true, + "license": "MIT", + "dependencies": { + "expand-tilde": "^2.0.2", + "homedir-polyfill": "^1.0.1", + "ini": "^1.3.4", + "is-windows": "^1.0.1", + "which": "^1.2.14" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/global-prefix/node_modules/which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "dev": true, + "license": "ISC", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "which": "bin/which" + } + }, + "node_modules/globalthis": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.3.tgz", + "integrity": "sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==", + "license": "MIT", + "optional": 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==", + "license": "MIT", + "dependencies": { + "get-intrinsic": "^1.1.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/got": { + "version": "11.8.6", + "resolved": "https://registry.npmjs.org/got/-/got-11.8.6.tgz", + "integrity": "sha512-6tfZ91bOr7bOXnK7PRDCGBLa1H4U080YHNaAQ2KsMGlLEzRbk44nsZF2E1IeRc3vtJHPVbKCYgdFbaGO2ljd8g==", + "license": "MIT", + "dependencies": { + "@sindresorhus/is": "^4.0.0", + "@szmarczak/http-timer": "^4.0.5", + "@types/cacheable-request": "^6.0.1", + "@types/responselike": "^1.0.0", + "cacheable-lookup": "^5.0.3", + "cacheable-request": "^7.0.2", + "decompress-response": "^6.0.0", + "http2-wrapper": "^1.0.0-beta.5.2", + "lowercase-keys": "^2.0.0", + "p-cancelable": "^2.0.0", + "responselike": "^2.0.0" + }, + "engines": { + "node": ">=10.19.0" + }, + "funding": { + "url": "https://github.com/sindresorhus/got?sponsor=1" + } + }, + "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==", + "license": "ISC" + }, + "node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/has-property-descriptors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.1.tgz", + "integrity": "sha512-VsX8eaIewvas0xnvinAe9bw4WfIeODpGYikiWYLH+dma0Jw6KHYqWiWfhQlgOVK8D6PvjubK5Uc4P0iIhIcNVg==", + "license": "MIT", + "dependencies": { + "get-intrinsic": "^1.2.2" + }, + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-unicode": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", + "integrity": "sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/hasown": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.0.tgz", + "integrity": "sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA==", + "license": "MIT", + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/homedir-polyfill": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/homedir-polyfill/-/homedir-polyfill-1.0.3.tgz", + "integrity": "sha512-eSmmWE5bZTK2Nou4g0AI3zZ9rswp7GRKoKXS1BLUkvPviOqs4YTN1djQIqrXy9k5gEtdLPy86JjRwsNM9tnDcA==", + "dev": true, + "license": "MIT", + "dependencies": { + "parse-passwd": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/hosted-git-info": { + "version": "2.8.9", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", + "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", + "dev": true, + "license": "ISC" + }, + "node_modules/http-cache-semantics": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz", + "integrity": "sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==", + "license": "BSD-2-Clause" + }, + "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==", + "dev": true, + "license": "MIT", + "dependencies": { + "@tootallnate/once": "2", + "agent-base": "6", + "debug": "4" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/http2-wrapper": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/http2-wrapper/-/http2-wrapper-1.0.3.tgz", + "integrity": "sha512-V+23sDMr12Wnz7iTcDeJr3O6AIxlnvT/bmaAAAP/Xda35C90p9599p0F1eHR/N1KILWSoWVAiOMFjBBXaXSMxg==", + "license": "MIT", + "dependencies": { + "quick-lru": "^5.1.1", + "resolve-alpn": "^1.0.0" + }, + "engines": { + "node": ">=10.19.0" + } + }, + "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==", + "dev": true, + "license": "MIT", + "dependencies": { + "agent-base": "6", + "debug": "4" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/humanize-ms": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/humanize-ms/-/humanize-ms-1.2.1.tgz", + "integrity": "sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "^2.0.0" + } + }, + "node_modules/humanize-ms/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==", + "dev": true, + "license": "MIT" + }, + "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, + "license": "MIT", + "optional": true, + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + }, + "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==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "BSD-3-Clause" + }, + "node_modules/imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.8.19" + } + }, + "node_modules/indent-string": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", + "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/infer-owner": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/infer-owner/-/infer-owner-1.0.4.tgz", + "integrity": "sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A==", + "dev": true, + "license": "ISC" + }, + "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, + "license": "ISC", + "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==", + "license": "ISC" + }, + "node_modules/ini": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", + "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", + "dev": true, + "license": "ISC" + }, + "node_modules/interpret": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/interpret/-/interpret-3.1.1.tgz", + "integrity": "sha512-6xwYfHbajpoF0xLW+iwLkhwgvLoZDfjYfoFNu8ftMoXINzwuymNLd9u/KmwtdT2GbR+/Cz66otEGEVVUHX9QLQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/ip": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ip/-/ip-2.0.0.tgz", + "integrity": "sha512-WKa+XuLG1A1R0UWhl2+1XQSi+fZWMsYKffMZTTYsiZaUD8k2yDAj5atimTUD2TZkyCkNEeYE5NhFZmupOGtjYQ==", + "dev": true, + "license": "MIT" + }, + "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==", + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", + "dev": true, + "license": "MIT" + }, + "node_modules/is-core-module": { + "version": "2.13.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.1.tgz", + "integrity": "sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==", + "dev": true, + "license": "MIT", + "dependencies": { + "hasown": "^2.0.0" + }, + "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==", + "dev": true, + "license": "MIT", + "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, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "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, + "license": "MIT", + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-interactive": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-interactive/-/is-interactive-1.0.0.tgz", + "integrity": "sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/is-lambda": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-lambda/-/is-lambda-1.0.1.tgz", + "integrity": "sha512-z7CMFGNrENq5iFB9Bqo64Xk6Y9sg+epq1myIcdHaGnbMTYOxvzsEtdYqQUylB7LxfkvgrrjP32T6Ywciio9UIQ==", + "dev": true, + "license": "MIT" + }, + "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, + "license": "MIT", + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/is-stream": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", + "integrity": "sha512-uQPm8kcs47jx38atAcWTVxyltQYoPT68y9aWYdV6yWXSyW8mzSat0TL6CiWdZeCdF3KrAvpVtnHbTv4RN+rqdQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-unicode-supported": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", + "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-windows": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", + "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "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==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-docker": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/isbinaryfile": { + "version": "4.0.10", + "resolved": "https://registry.npmjs.org/isbinaryfile/-/isbinaryfile-4.0.10.tgz", + "integrity": "sha512-iHrqe5shvBUcFbmZq9zOQHBoeOhZJu6RQGrDpBgenUm/Am+F3JM2MgQj+rK3Z601fzrL5gLZWtAPH2OBaSVcyw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 8.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/gjtorikian/" + } + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "dev": true, + "license": "ISC" + }, + "node_modules/json-buffer": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", + "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", + "license": "MIT" + }, + "node_modules/json-stringify-safe": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", + "integrity": "sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==", + "license": "ISC", + "optional": true + }, + "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, + "license": "MIT", + "dependencies": { + "universalify": "^2.0.0" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/junk": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/junk/-/junk-3.1.0.tgz", + "integrity": "sha512-pBxcB3LFc8QVgdggvZWyeys+hnrNWg4OcZIU/1X59k5jQdLBlCsYGRQaz234SqoRLTCgMH00fY0xRJH+F9METQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/keyv": { + "version": "4.5.4", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", + "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", + "license": "MIT", + "dependencies": { + "json-buffer": "3.0.1" + } + }, + "node_modules/listr2": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/listr2/-/listr2-5.0.8.tgz", + "integrity": "sha512-mC73LitKHj9w6v30nLNGPetZIlfpUniNSsxxrbaPcWOjDb92SHPzJPi/t+v1YC/lxKz/AJ9egOjww0qUuFxBpA==", + "dev": true, + "license": "MIT", + "dependencies": { + "cli-truncate": "^2.1.0", + "colorette": "^2.0.19", + "log-update": "^4.0.0", + "p-map": "^4.0.0", + "rfdc": "^1.3.0", + "rxjs": "^7.8.0", + "through": "^2.3.8", + "wrap-ansi": "^7.0.0" + }, + "engines": { + "node": "^14.13.1 || >=16.0.0" + }, + "peerDependencies": { + "enquirer": ">= 2.3.0 < 3" + }, + "peerDependenciesMeta": { + "enquirer": { + "optional": true + } + } + }, + "node_modules/load-json-file": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-2.0.0.tgz", + "integrity": "sha512-3p6ZOGNbiX4CdvEd1VcE6yi78UrGNpjHO33noGwHCnT/o2fyllJDepsm8+mFFv/DvtwFHht5HIHSyOy5a+ChVQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.1.2", + "parse-json": "^2.2.0", + "pify": "^2.0.0", + "strip-bom": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-locate": "^5.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", + "dev": true, + "license": "MIT" + }, + "node_modules/lodash._reinterpolate": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz", + "integrity": "sha512-xYHt68QRoYGjeeM/XOE1uJtvXQAgvszfBhjV4yvsQH0u2i9I6cI6c6/eG4Hh3UAOVn0y/xAXwmTzEay49Q//HA==", + "dev": true, + "license": "MIT", + "optional": true + }, + "node_modules/lodash.get": { + "version": "4.4.2", + "resolved": "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz", + "integrity": "sha512-z+Uw/vLuy6gQe8cfaFWD7p0wVv8fJl3mbzXh33RS+0oW2wvUqiRXiQ69gLWSLpgB5/6sU+r6BlQR0MBILadqTQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/lodash.template": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.template/-/lodash.template-4.5.0.tgz", + "integrity": "sha512-84vYFxIkmidUiFxidA/KjjH9pAycqW+h980j7Fuz5qxRtO9pgB7MDFTdys1N7A5mcucRiDyEq4fusljItR1T/A==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "lodash._reinterpolate": "^3.0.0", + "lodash.templatesettings": "^4.0.0" + } + }, + "node_modules/lodash.templatesettings": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/lodash.templatesettings/-/lodash.templatesettings-4.2.0.tgz", + "integrity": "sha512-stgLz+i3Aa9mZgnjr/O+v9ruKZsPsndy7qPZOchbqk2cnTU1ZaldKK+v7m54WoKIyxiuMZTKT2H81F8BeAc3ZQ==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "lodash._reinterpolate": "^3.0.0" + } + }, + "node_modules/log-symbols": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", + "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==", + "dev": true, + "license": "MIT", + "dependencies": { + "chalk": "^4.1.0", + "is-unicode-supported": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/log-update": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/log-update/-/log-update-4.0.0.tgz", + "integrity": "sha512-9fkkDevMefjg0mmzWFBW8YkFP91OrizzkW3diF7CpG+S2EYdy4+TVfGwz1zeF8x7hCx1ovSPTOE9Ngib74qqUg==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-escapes": "^4.3.0", + "cli-cursor": "^3.1.0", + "slice-ansi": "^4.0.0", + "wrap-ansi": "^6.2.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/log-update/node_modules/slice-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz", + "integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.0.0", + "astral-regex": "^2.0.0", + "is-fullwidth-code-point": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/slice-ansi?sponsor=1" + } + }, + "node_modules/log-update/node_modules/wrap-ansi": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", + "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/lowercase-keys": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", + "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "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==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=12" + } + }, + "node_modules/make-fetch-happen": { + "version": "10.2.1", + "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-10.2.1.tgz", + "integrity": "sha512-NgOPbRiaQM10DYXvN3/hhGVI2M5MtITFryzBGxHM5p4wnFxsVCbxkrBrDsk+EZ5OB4jEOT7AjDxtdF+KVEFT7w==", + "dev": true, + "license": "ISC", + "dependencies": { + "agentkeepalive": "^4.2.1", + "cacache": "^16.1.0", + "http-cache-semantics": "^4.1.0", + "http-proxy-agent": "^5.0.0", + "https-proxy-agent": "^5.0.0", + "is-lambda": "^1.0.1", + "lru-cache": "^7.7.1", + "minipass": "^3.1.6", + "minipass-collect": "^1.0.2", + "minipass-fetch": "^2.0.3", + "minipass-flush": "^1.0.5", + "minipass-pipeline": "^1.2.4", + "negotiator": "^0.6.3", + "promise-retry": "^2.0.1", + "socks-proxy-agent": "^7.0.0", + "ssri": "^9.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/map-age-cleaner": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/map-age-cleaner/-/map-age-cleaner-0.1.3.tgz", + "integrity": "sha512-bJzx6nMoP6PDLPBFmg7+xRKeFZvFboMrGlxmNj9ClvX53KrmvM5bXFXEWjbz4cz1AFn+jWJ9z/DJSz7hrs0w3w==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-defer": "^1.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/matcher": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/matcher/-/matcher-3.0.0.tgz", + "integrity": "sha512-OkeDaAZ/bQCxeFAozM55PKcKU0yJMPGifLwV4Qgjitu+5MoAfSQN4lsLJeXZ1b8w0x+/Emda6MZgXS1jvsapng==", + "license": "MIT", + "optional": true, + "dependencies": { + "escape-string-regexp": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/matcher/node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "license": "MIT", + "optional": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "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==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mem": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/mem/-/mem-4.3.0.tgz", + "integrity": "sha512-qX2bG48pTqYRVmDB37rn/6PT7LcR8T7oAX3bf99u1Tt1nzxYfxkgqDwUwolPlXweM0XzBOBFzSx4kfp7KP1s/w==", + "dev": true, + "license": "MIT", + "dependencies": { + "map-age-cleaner": "^0.1.1", + "mimic-fn": "^2.0.0", + "p-is-promise": "^2.0.0" + }, + "engines": { + "node": ">=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==" + }, + "node_modules/merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 8" + } + }, + "node_modules/methods": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", + "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/micromatch": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", + "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", + "dev": true, + "license": "MIT", + "dependencies": { + "braces": "^3.0.2", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "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/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/mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/mimic-response": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-3.1.0.tgz", + "integrity": "sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==", + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "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, + "license": "ISC", + "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, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/minipass": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", + "dev": true, + "license": "ISC", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/minipass-collect": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/minipass-collect/-/minipass-collect-1.0.2.tgz", + "integrity": "sha512-6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA==", + "dev": true, + "license": "ISC", + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/minipass-fetch": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-2.1.2.tgz", + "integrity": "sha512-LT49Zi2/WMROHYoqGgdlQIZh8mLPZmOrN2NdJjMXxYe4nkN6FUyuPuOAOedNJDrx0IRGg9+4guZewtp8hE6TxA==", + "dev": true, + "license": "MIT", + "dependencies": { + "minipass": "^3.1.6", + "minipass-sized": "^1.0.3", + "minizlib": "^2.1.2" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + }, + "optionalDependencies": { + "encoding": "^0.1.13" + } + }, + "node_modules/minipass-flush": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/minipass-flush/-/minipass-flush-1.0.5.tgz", + "integrity": "sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw==", + "dev": true, + "license": "ISC", + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/minipass-pipeline": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/minipass-pipeline/-/minipass-pipeline-1.2.4.tgz", + "integrity": "sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A==", + "dev": true, + "license": "ISC", + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/minipass-sized": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/minipass-sized/-/minipass-sized-1.0.3.tgz", + "integrity": "sha512-MbkQQ2CTiBMlA2Dm/5cY+9SWFEN8pzzOXi6rlM5Xxq0Yqbda5ZQy9sU75a673FE9ZK0Zsbr6Y5iP6u9nktfg2g==", + "dev": true, + "license": "ISC", + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/minizlib": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz", + "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==", + "dev": true, + "license": "MIT", + "dependencies": { + "minipass": "^3.0.0", + "yallist": "^4.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "dev": true, + "license": "MIT", + "bin": { + "mkdirp": "bin/cmd.js" + }, + "engines": { + "node": ">=10" + } + }, + "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==", + "license": "MIT" + }, + "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==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/nice-try": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", + "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/node-abi": { + "version": "3.51.0", + "resolved": "https://registry.npmjs.org/node-abi/-/node-abi-3.51.0.tgz", + "integrity": "sha512-SQkEP4hmNWjlniS5zdnfIXTk1x7Ome85RDzHlTbBtzE97Gfwz/Ipw4v/Ryk20DWIy3yCNVLVlGKApCnmvYoJbA==", + "dev": true, + "license": "MIT", + "dependencies": { + "semver": "^7.3.5" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/node-api-version": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/node-api-version/-/node-api-version-0.1.4.tgz", + "integrity": "sha512-KGXihXdUChwJAOHO53bv9/vXcLmdUsZ6jIptbvYvkpKfth+r7jw44JkVxQFA3kX5nQjzjmGu1uAu/xNNLNlI5g==", + "dev": true, + "license": "MIT", + "dependencies": { + "semver": "^7.3.5" + } + }, + "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==", + "dev": true, + "license": "MIT", + "dependencies": { + "whatwg-url": "^5.0.0" + }, + "engines": { + "node": "4.x || >=6.0.0" + }, + "peerDependencies": { + "encoding": "^0.1.0" + }, + "peerDependenciesMeta": { + "encoding": { + "optional": true + } + } + }, + "node_modules/node-gyp": { + "version": "9.4.1", + "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-9.4.1.tgz", + "integrity": "sha512-OQkWKbjQKbGkMf/xqI1jjy3oCTgMKJac58G2+bjZb3fza6gW2YrCSdMQYaoTb70crvE//Gngr4f0AgVHmqHvBQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "env-paths": "^2.2.0", + "exponential-backoff": "^3.1.1", + "glob": "^7.1.4", + "graceful-fs": "^4.2.6", + "make-fetch-happen": "^10.0.3", + "nopt": "^6.0.0", + "npmlog": "^6.0.0", + "rimraf": "^3.0.2", + "semver": "^7.3.5", + "tar": "^6.1.2", + "which": "^2.0.2" + }, + "bin": { + "node-gyp": "bin/node-gyp.js" + }, + "engines": { + "node": "^12.13 || ^14.13 || >=16" + } + }, + "node_modules/nopt": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-6.0.0.tgz", + "integrity": "sha512-ZwLpbTgdhuZUnZzjd7nb1ZV+4DoiC6/sfiVKok72ym/4Tlf+DFdlHYmT2JPmcNNWV6Pi3SDf1kT+A4r9RTuT9g==", + "dev": true, + "license": "ISC", + "dependencies": { + "abbrev": "^1.0.0" + }, + "bin": { + "nopt": "bin/nopt.js" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/normalize-package-data": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", + "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "hosted-git-info": "^2.1.4", + "resolve": "^1.10.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" + } + }, + "node_modules/normalize-package-data/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, + "license": "ISC", + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/normalize-url": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-6.1.0.tgz", + "integrity": "sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==", + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/npm-run-path": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", + "integrity": "sha512-lJxZYlT4DW/bRUtFh1MQIWqmLwQfAxnqWG4HhEdjMlkrJYnJn0Jrr2u3mgxqaWsdiBc76TYkTG/mhrnYTuzfHw==", + "dev": true, + "license": "MIT", + "dependencies": { + "path-key": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/npmlog": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-6.0.2.tgz", + "integrity": "sha512-/vBvz5Jfr9dT/aFWd0FIRf+T/Q2WBsLENygUaFUqstqsycmZAP/t5BvFJTK0viFmSUxiUKTUplWy5vt+rvKIxg==", + "dev": true, + "license": "ISC", + "dependencies": { + "are-we-there-yet": "^3.0.0", + "console-control-strings": "^1.1.0", + "gauge": "^4.0.3", + "set-blocking": "^2.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/object-inspect": { + "version": "1.13.1", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.1.tgz", + "integrity": "sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==", + "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==", + "license": "MIT", + "optional": true, + "engines": { + "node": ">= 0.4" + } + }, + "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/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "license": "ISC", + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/onetime": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "dev": true, + "license": "MIT", + "dependencies": { + "mimic-fn": "^2.1.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ora": { + "version": "5.4.1", + "resolved": "https://registry.npmjs.org/ora/-/ora-5.4.1.tgz", + "integrity": "sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "bl": "^4.1.0", + "chalk": "^4.1.0", + "cli-cursor": "^3.1.0", + "cli-spinners": "^2.5.0", + "is-interactive": "^1.0.0", + "is-unicode-supported": "^0.1.0", + "log-symbols": "^4.1.0", + "strip-ansi": "^6.0.0", + "wcwidth": "^1.0.1" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-cancelable": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-2.1.1.tgz", + "integrity": "sha512-BZOr3nRQHOntUjTrH8+Lh54smKHoHyur8We1V8DSMVrl5A2malOOwuJRnKRDjSnkoeBh4at6BwEnb5I7Jl31wg==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/p-defer": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-defer/-/p-defer-1.0.0.tgz", + "integrity": "sha512-wB3wfAxZpk2AzOfUMJNL+d36xothRSyj8EXOa4f6GMqYDN9BJaaSISbsk+wS9abmnebVw95C2Kb5t85UmpCxuw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/p-finally": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", + "integrity": "sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/p-is-promise": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/p-is-promise/-/p-is-promise-2.1.0.tgz", + "integrity": "sha512-Y3W0wlRPK8ZMRbNq97l4M5otioeA5lm1z7bkNkxCka8HSPjR0xRWmpCmc9utiaLP9Jb1eD8BgeIxTW4AIF45Pg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "yocto-queue": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-limit": "^3.0.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-map": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz", + "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "aggregate-error": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/parse-author": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/parse-author/-/parse-author-2.0.0.tgz", + "integrity": "sha512-yx5DfvkN8JsHL2xk2Os9oTia467qnvRgey4ahSm2X8epehBLx/gWLcy5KI+Y36ful5DzGbCS6RazqZGgy1gHNw==", + "dev": true, + "license": "MIT", + "dependencies": { + "author-regex": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/parse-json": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", + "integrity": "sha512-QR/GGaKCkhwk1ePQNYDRKYZ3mwU9ypsKhB0XyFnLQdomyEqk3e8wpW3V5Jp88zbxK4n5ST1nqo+g9juTpownhQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "error-ex": "^1.2.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/parse-passwd": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/parse-passwd/-/parse-passwd-1.0.0.tgz", + "integrity": "sha512-1Y1A//QUXEZK7YKz+rD9WydcE1+EuPr6ZBgKecAB8tmoW6UFv0NREVJe1p+jRxtThkcbbKkfwIbWJe/IeE6m2Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/parseurl": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=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, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-key": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", + "integrity": "sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "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, + "license": "MIT" + }, + "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==" + }, + "node_modules/path-type": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-2.0.0.tgz", + "integrity": "sha512-dUnb5dXUf+kzhC/W/F4e5/SkluXIFf5VUHolW1Eg1irn1hGWjPGdsRcvYJ1nD6lhk8Ir7VM0bHJKsYTx8Jx9OQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "pify": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/pend": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", + "integrity": "sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==", + "license": "MIT" + }, + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/pkg-dir": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", + "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "find-up": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/pkg-dir/node_modules/find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "license": "MIT", + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/pkg-dir/node_modules/locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/pkg-dir/node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/pkg-dir/node_modules/p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/plist": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/plist/-/plist-3.1.0.tgz", + "integrity": "sha512-uysumyrvkUX0rX/dEVqt8gC3sTBzd4zoWfLeS29nb53imdaXVvLINYXTI2GNqzaMuvacNx4uJQ8+b3zXR0pkgQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@xmldom/xmldom": "^0.8.8", + "base64-js": "^1.5.1", + "xmlbuilder": "^15.1.1" + }, + "engines": { + "node": ">=10.4.0" + } + }, + "node_modules/progress": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", + "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", + "license": "MIT", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/promise-inflight": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz", + "integrity": "sha512-6zWPyEOFaQBJYcGMHBKTKJ3u6TBsnMFOIZSa6ce1e/ZrrsOlnHRHbabMjLiBYKp+n44X9eUI6VUPaukCXHuG4g==", + "dev": true, + "license": "ISC" + }, + "node_modules/promise-retry": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/promise-retry/-/promise-retry-2.0.1.tgz", + "integrity": "sha512-y+WKFlBR8BGXnsNlIHFGPZmyDf3DFMoLhaflAnyZgV6rG6xu+JwesTo2Q9R6XwYmtmwAFCkAk3e35jEdoeh/3g==", + "dev": true, + "license": "MIT", + "dependencies": { + "err-code": "^2.0.2", + "retry": "^0.12.0" + }, + "engines": { + "node": ">=10" + } + }, + "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==", + "dependencies": { + "forwarded": "0.2.0", + "ipaddr.js": "1.9.1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/pump": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", + "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", + "license": "MIT", + "dependencies": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "node_modules/qs": { + "version": "6.11.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz", + "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==", + "dependencies": { + "side-channel": "^1.0.4" + }, + "engines": { + "node": ">=0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, + "node_modules/quick-lru": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz", + "integrity": "sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==", + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "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==", + "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/raw-body/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==", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/rcedit": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/rcedit/-/rcedit-4.0.1.tgz", + "integrity": "sha512-bZdaQi34krFWhrDn+O53ccBDw0MkAT2Vhu75SqhtvhQu4OPyFM4RoVheyYiVQYdjhUi6EJMVWQ0tR6bCIYVkUg==", + "dev": true, + "license": "MIT", + "dependencies": { + "cross-spawn-windows-exe": "^1.1.0" + }, + "engines": { + "node": ">= 14.0.0" + } + }, + "node_modules/read-pkg": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-2.0.0.tgz", + "integrity": "sha512-eFIBOPW7FGjzBuk3hdXEuNSiTZS/xEMlH49HxMyzb0hyPfu4EhVjT2DH32K1hSSmVq4sebAWnZuuY5auISUTGA==", + "dev": true, + "license": "MIT", + "dependencies": { + "load-json-file": "^2.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/read-pkg-up": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-2.0.0.tgz", + "integrity": "sha512-1orxQfbWGUiTn9XsPlChs6rLie/AV9jwZTGmu2NZw/CUDJQchXJFYE0Fq5j7+n558T1JhDWLdhyd1Zj+wLY//w==", + "dev": true, + "license": "MIT", + "dependencies": { + "find-up": "^2.0.0", + "read-pkg": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/read-pkg-up/node_modules/find-up": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", + "integrity": "sha512-NWzkk0jSJtTt08+FBFMvXoeZnOJD+jTtsRmBYbAIzJdX6l7dLgR7CTubCM5/eDdPUBvLCeVasP1brfVR/9/EZQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "locate-path": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/read-pkg-up/node_modules/locate-path": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", + "integrity": "sha512-NCI2kiDkyR7VeEKm27Kda/iQHyKJe1Bu0FlTbYp3CqJu+9IFe9bLyAjMxf5ZDDbEg+iMPzB5zYyUTSm8wVTKmA==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-locate": "^2.0.0", + "path-exists": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/read-pkg-up/node_modules/p-limit": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", + "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-try": "^1.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/read-pkg-up/node_modules/p-locate": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", + "integrity": "sha512-nQja7m7gSKuewoVRen45CtVfODR3crN3goVQ0DDZ9N3yHxgpkuBhZqsaiotSQRrADUrne346peY7kT3TSACykg==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-limit": "^1.1.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/read-pkg-up/node_modules/p-try": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", + "integrity": "sha512-U1etNYuMJoIz3ZXSrrySFjsXQTWOx2/jdi86L+2pRvph/qMKL6sbcCYdH23fqsbm8TH2Gn0OybpT4eSFlCVHww==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/read-pkg-up/node_modules/path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "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, + "license": "MIT", + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/rechoir": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.8.0.tgz", + "integrity": "sha512-/vxpCXddiX8NGfGO/mTafwjq4aFa/71pvamip0++IQk3zG8cbCj0fifNPrjjF1XMXUne91jL9OoxmdykoEtifQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "resolve": "^1.20.0" + }, + "engines": { + "node": ">= 10.13.0" + } + }, + "node_modules/require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "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, + "license": "MIT", + "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/resolve-alpn": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/resolve-alpn/-/resolve-alpn-1.2.1.tgz", + "integrity": "sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g==", + "license": "MIT" + }, + "node_modules/resolve-dir": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/resolve-dir/-/resolve-dir-1.0.1.tgz", + "integrity": "sha512-R7uiTjECzvOsWSfdM0QKFNBVFcK27aHOUwdvK53BcW8zqnGdYp0Fbj82cy54+2A4P2tFM22J5kRfe1R+lM/1yg==", + "dev": true, + "license": "MIT", + "dependencies": { + "expand-tilde": "^2.0.0", + "global-modules": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/resolve-package": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/resolve-package/-/resolve-package-1.0.1.tgz", + "integrity": "sha512-rzB7NnQpOkPHBWFPP3prUMqOP6yg3HkRGgcvR+lDyvyHoY3fZLFLYDkPXh78SPVBAE6VTCk/V+j8we4djg6o4g==", + "dev": true, + "license": "MIT", + "dependencies": { + "get-installed-path": "^2.0.3" + }, + "engines": { + "node": ">=4", + "npm": ">=2" + } + }, + "node_modules/responselike": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/responselike/-/responselike-2.0.1.tgz", + "integrity": "sha512-4gl03wn3hj1HP3yzgdI7d3lCkF95F21Pz4BPGvKHinyQzALR5CapwC8yIi0Rh58DEMQ/SguC03wFj2k0M/mHhw==", + "license": "MIT", + "dependencies": { + "lowercase-keys": "^2.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/restore-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", + "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", + "dev": true, + "license": "MIT", + "dependencies": { + "onetime": "^5.1.0", + "signal-exit": "^3.0.2" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/retry": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz", + "integrity": "sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 4" + } + }, + "node_modules/reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "dev": true, + "license": "MIT", + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } + }, + "node_modules/rfdc": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/rfdc/-/rfdc-1.3.0.tgz", + "integrity": "sha512-V2hovdzFbOi77/WajaSMXk2OLm+xNIeQdMMuB7icj7bk6zi2F8GGAxigcnDFpJHbNyNcgyJDiP+8nOrY5cZGrA==", + "dev": true, + "license": "MIT" + }, + "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, + "license": "ISC", + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/roarr": { + "version": "2.15.4", + "resolved": "https://registry.npmjs.org/roarr/-/roarr-2.15.4.tgz", + "integrity": "sha512-CHhPh+UNHD2GTXNYhPWLnU8ONHdI+5DI+4EYIAOaiD63rHeYlZvyh8P+in5999TTSFgUYuKUAjzRI4mdh/p+2A==", + "license": "BSD-3-Clause", + "optional": true, + "dependencies": { + "boolean": "^3.0.1", + "detect-node": "^2.0.4", + "globalthis": "^1.0.1", + "json-stringify-safe": "^5.0.1", + "semver-compare": "^1.0.0", + "sprintf-js": "^1.1.2" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT", + "dependencies": { + "queue-microtask": "^1.2.2" + } + }, + "node_modules/rxjs": { + "version": "7.8.1", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.1.tgz", + "integrity": "sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "tslib": "^2.1.0" + } + }, + "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" + } + ], + "license": "MIT" + }, + "node_modules/safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "license": "MIT" + }, + "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==", + "devOptional": true, + "license": "ISC", + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/semver-compare": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/semver-compare/-/semver-compare-1.0.0.tgz", + "integrity": "sha512-YM3/ITh2MJ5MtzaM429anh+x2jiLVjqILF4m4oyQB18W7Ggea7BfqdH/wGMK7dDiMghv/6WG7znWMwUDzJiXow==", + "license": "MIT", + "optional": true + }, + "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==", + "devOptional": true, + "license": "ISC", + "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/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/serialize-error": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/serialize-error/-/serialize-error-7.0.1.tgz", + "integrity": "sha512-8I8TjW5KMOKsZQTvoxjuSIa7foAwPWGOts+6o7sgjz41/qMD9VQHEDxi6PBvK2l0MXUmqZyNpUK+T2tQaaElvw==", + "license": "MIT", + "optional": true, + "dependencies": { + "type-fest": "^0.13.1" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "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==", + "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-blocking": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", + "integrity": "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==", + "dev": true, + "license": "ISC" + }, + "node_modules/set-function-length": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.1.1.tgz", + "integrity": "sha512-VoaqjbBJKiWtg4yRcKBQ7g7wnGnLV3M8oLvVWwOk2PdYY6PEFegR1vezXR0tw6fZGF9csVakIRjrJiy2veSBFQ==", + "dependencies": { + "define-data-property": "^1.1.1", + "get-intrinsic": "^1.2.1", + "gopd": "^1.0.1", + "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": "1.2.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", + "integrity": "sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg==", + "dev": true, + "license": "MIT", + "dependencies": { + "shebang-regex": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/shebang-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", + "integrity": "sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "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/signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/slice-ansi": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-3.0.0.tgz", + "integrity": "sha512-pSyv7bSTC7ig9Dcgbw9AuRNUb5k5V6oDudjZoMBSr13qpLBG7tB+zgCkARjq7xIUgdz5P1Qe8u+rSGdouOOIyQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.0.0", + "astral-regex": "^2.0.0", + "is-fullwidth-code-point": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/smart-buffer": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz", + "integrity": "sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 6.0.0", + "npm": ">= 3.0.0" + } + }, + "node_modules/socks": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/socks/-/socks-2.7.1.tgz", + "integrity": "sha512-7maUZy1N7uo6+WVEX6psASxtNlKaNVMlGQKkG/63nEDdLOWNbiUMoLK7X4uYoLhQstau72mLgfEWcXcwsaHbYQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ip": "^2.0.0", + "smart-buffer": "^4.2.0" + }, + "engines": { + "node": ">= 10.13.0", + "npm": ">= 3.0.0" + } + }, + "node_modules/socks-proxy-agent": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-7.0.0.tgz", + "integrity": "sha512-Fgl0YPZ902wEsAyiQ+idGd1A7rSFx/ayC1CQVMw5P+EQx2V0SgpGtf6OKFhVjPflPUl9YMmEOnmfjCdMUsygww==", + "dev": true, + "license": "MIT", + "dependencies": { + "agent-base": "^6.0.2", + "debug": "^4.3.3", + "socks": "^2.6.2" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-support": { + "version": "0.5.21", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", + "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", + "dev": true, + "license": "MIT", + "dependencies": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "node_modules/spdx-correct": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.2.0.tgz", + "integrity": "sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" + } + }, + "node_modules/spdx-exceptions": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz", + "integrity": "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==", + "dev": true, + "license": "CC-BY-3.0" + }, + "node_modules/spdx-expression-parse": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", + "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" + } + }, + "node_modules/spdx-license-ids": { + "version": "3.0.16", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.16.tgz", + "integrity": "sha512-eWN+LnM3GR6gPu35WxNgbGl8rmY1AEmoMDvL/QD6zYmPWgywxWqJWNdLGT+ke8dKNWrcYgYjPpG5gbTfghP8rw==", + "dev": true, + "license": "CC0-1.0" + }, + "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==", + "license": "BSD-3-Clause", + "optional": true + }, + "node_modules/ssri": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/ssri/-/ssri-9.0.1.tgz", + "integrity": "sha512-o57Wcn66jMQvfHG1FlYbWeZWW/dHZhJXjpIcTfXldXEk5nz5lStPo3mK0OJQfGR3RbZUlbISexbljkJzuEj/8Q==", + "dev": true, + "license": "ISC", + "dependencies": { + "minipass": "^3.1.1" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "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/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==", + "dev": true, + "license": "MIT", + "dependencies": { + "safe-buffer": "~5.2.0" + } + }, + "node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/strip-eof": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", + "integrity": "sha512-7FCwGGmx8mD5xQd3RPUvnSpUXHM3BWuzjtpD4TXsfcZ9EL4azvVVUscFYwD9nx8Kh+uCBC00XBtAykoMHwTh8Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "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==", + "dev": true, + "license": "MIT", + "dependencies": { + "escape-string-regexp": "^1.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/sudo-prompt": { + "version": "9.2.1", + "resolved": "https://registry.npmjs.org/sudo-prompt/-/sudo-prompt-9.2.1.tgz", + "integrity": "sha512-Mu7R0g4ig9TUuGSxJavny5Rv0egCEtpZRNMrZaYS1vxkiIxGiGUwoezU3LazIQ+KE04hTrTfNPgxU5gzi7F5Pw==", + "dev": true, + "license": "MIT" + }, + "node_modules/sumchecker": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/sumchecker/-/sumchecker-3.0.1.tgz", + "integrity": "sha512-MvjXzkz/BOfyVDkG0oFOtBxHX2u3gKbMHIF/dXblZsgD3BWOFLmHovIpZY7BykJdAjcqRCBi1WYBNdEC9yI7vg==", + "license": "Apache-2.0", + "dependencies": { + "debug": "^4.1.0" + }, + "engines": { + "node": ">= 8.0" + } + }, + "node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "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, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/tar": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/tar/-/tar-6.2.0.tgz", + "integrity": "sha512-/Wo7DcT0u5HUV486xg675HtjNd3BXZ6xDbzsCUZPt5iw8bTQ63bP0Raut3mvro9u+CUyq7YQd8Cx55fsZXxqLQ==", + "dev": true, + "license": "ISC", + "dependencies": { + "chownr": "^2.0.0", + "fs-minipass": "^2.0.0", + "minipass": "^5.0.0", + "minizlib": "^2.1.1", + "mkdirp": "^1.0.3", + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/tar/node_modules/minipass": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-5.0.0.tgz", + "integrity": "sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=8" + } + }, + "node_modules/temp": { + "version": "0.9.4", + "resolved": "https://registry.npmjs.org/temp/-/temp-0.9.4.tgz", + "integrity": "sha512-yYrrsWnrXMcdsnu/7YMYAofM1ktpL5By7vZhf15CrXijWWrEYZks5AXBudalfSWJLlnen/QUJUB5aoB0kqZUGA==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "mkdirp": "^0.5.1", + "rimraf": "~2.6.2" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/temp/node_modules/mkdirp": { + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", + "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "minimist": "^1.2.6" + }, + "bin": { + "mkdirp": "bin/cmd.js" + } + }, + "node_modules/temp/node_modules/rimraf": { + "version": "2.6.3", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz", + "integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==", + "dev": true, + "license": "ISC", + "optional": true, + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + } + }, + "node_modules/through": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", + "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==", + "dev": true, + "license": "MIT" + }, + "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, + "license": "MIT", + "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/tr46": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", + "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==", + "dev": true, + "license": "MIT" + }, + "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==", + "dev": true, + "license": "MIT", + "dependencies": { + "escape-string-regexp": "^1.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/tslib": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", + "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==", + "dev": true, + "license": "0BSD" + }, + "node_modules/type-fest": { + "version": "0.13.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.13.1.tgz", + "integrity": "sha512-34R7HTnG0XIJcBSn5XhDd7nNFPRcXYRZrBB2O2jdKqYODldSzBAqzsWoZYYvduky73toYS/ESqxPvkDf/F0XMg==", + "license": "(MIT OR CC0-1.0)", + "optional": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "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==", + "dependencies": { + "media-typer": "0.3.0", + "mime-types": "~2.1.24" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/undici-types": { + "version": "5.26.5", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz", + "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==", + "license": "MIT" + }, + "node_modules/unique-filename": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-2.0.1.tgz", + "integrity": "sha512-ODWHtkkdx3IAR+veKxFV+VBkUMcN+FaqzUUd7IZzt+0zhDZFPFxhlqwPF3YQvMHx1TD0tdgYl+kuPnJ8E6ql7A==", + "dev": true, + "license": "ISC", + "dependencies": { + "unique-slug": "^3.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/unique-slug": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-3.0.0.tgz", + "integrity": "sha512-8EyMynh679x/0gqE9fT9oilG+qEt+ibFyqjuVTsZn1+CMxH+XLlpvr2UZx4nVcCwTpx81nICr2JQFkM+HPLq4w==", + "dev": true, + "license": "ISC", + "dependencies": { + "imurmurhash": "^0.1.4" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/universalify": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", + "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 10.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==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/username": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/username/-/username-5.1.0.tgz", + "integrity": "sha512-PCKbdWw85JsYMvmCv5GH3kXmM66rCd9m1hBEDutPNv94b/pqCMT4NtcKyeWYvLFiE8b+ha1Jdl8XAaUdPn5QTg==", + "dev": true, + "license": "MIT", + "dependencies": { + "execa": "^1.0.0", + "mem": "^4.3.0" + }, + "engines": { + "node": ">=8" + } + }, + "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==", + "dev": true, + "license": "MIT" + }, + "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==", + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/validate-npm-package-license": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", + "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" + } + }, + "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==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/wcwidth": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz", + "integrity": "sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==", + "dev": true, + "license": "MIT", + "dependencies": { + "defaults": "^1.0.3" + } + }, + "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==", + "dev": true, + "license": "BSD-2-Clause" + }, + "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==", + "dev": true, + "license": "MIT", + "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, + "license": "ISC", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/wide-align": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.5.tgz", + "integrity": "sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==", + "dev": true, + "license": "ISC", + "dependencies": { + "string-width": "^1.0.2 || 2 || 3 || 4" + } + }, + "node_modules/wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "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==", + "license": "ISC" + }, + "node_modules/xmlbuilder": { + "version": "15.1.1", + "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-15.1.1.tgz", + "integrity": "sha512-yMqGBqtXyeN1e3TGYvgNgDVZ3j84W4cwkOXQswghol6APgZWaff9lnbvN7MHYJOiXsvGPXtjTYJEiC9J2wv9Eg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8.0" + } + }, + "node_modules/y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=10" + } + }, + "node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "devOptional": true, + "license": "ISC" + }, + "node_modules/yargs-parser": { + "version": "21.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", + "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=12" + } + }, + "node_modules/yarn-or-npm": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/yarn-or-npm/-/yarn-or-npm-3.0.1.tgz", + "integrity": "sha512-fTiQP6WbDAh5QZAVdbMQkecZoahnbOjClTQhzv74WX5h2Uaidj1isf9FDes11TKtsZ0/ZVfZsqZ+O3x6aLERHQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "cross-spawn": "^6.0.5", + "pkg-dir": "^4.2.0" + }, + "bin": { + "yarn-or-npm": "bin/index.js", + "yon": "bin/index.js" + }, + "engines": { + "node": ">=8.6.0" + } + }, + "node_modules/yauzl": { + "version": "2.10.0", + "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz", + "integrity": "sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g==", + "license": "MIT", + "dependencies": { + "buffer-crc32": "~0.2.3", + "fd-slicer": "~1.1.0" + } + }, + "node_modules/yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + } + } +} diff --git a/Electron-App/package.json b/Electron-App/package.json new file mode 100644 index 0000000..a9c1d18 --- /dev/null +++ b/Electron-App/package.json @@ -0,0 +1,35 @@ +{ + "name": "idn-admin-console", + "productName": "IdentityNow Admin Console", + "version": "1.0.0", + "description": "A troubleshooting and administration app for IdentityNow", + "main": "src/index.js", + "scripts": { + "start": "electron-forge start", + "package": "electron-forge package", + "make": "electron-forge make", + "publish": "electron-forge publish", + "lint": "echo \"No linting configured\"" + }, + "keywords": [], + "author": { + "name": "Luke Hagar", + "email": "luke.hagar@sailpoint.com" + }, + "license": "MIT", + "dependencies": { + "@electron-toolkit/utils": "^2.0.1", + "electron-log": "^5.0.0", + "electron-squirrel-startup": "^1.0.0", + "express": "^4.18.2" + }, + "devDependencies": { + "@electron-forge/cli": "^7.0.0", + "@electron-forge/maker-deb": "^7.0.0", + "@electron-forge/maker-rpm": "^7.0.0", + "@electron-forge/maker-squirrel": "^7.0.0", + "@electron-forge/maker-zip": "^7.0.0", + "@electron-forge/plugin-auto-unpack-natives": "^7.0.0", + "electron": "27.1.0" + } +} diff --git a/Electron-App/src/index.js b/Electron-App/src/index.js new file mode 100644 index 0000000..3e7ee44 --- /dev/null +++ b/Electron-App/src/index.js @@ -0,0 +1,101 @@ +const { app, BrowserWindow } = require("electron"); +const path = require("path"); +const { is } = require("@electron-toolkit/utils"); +const handlerPkg = import( + is.dev + ? "../../Sveltekit-Build/src/handler.js" + : `file://${path.join( + process.resourcesPath, + "Sveltekit-Build", + "src", + "handler.js" + )}` +); +const express = require("express"); +const log = require("electron-log/main"); +log.info( + "==================================Log Start==================================" +); + +const port = 3000; +const origin = `http://localhost:${port}`; +log.info(`Starting server on ${origin}...`); + +const server = express(); + +const createServer = async () => { + try { + log.info("Starting server..."); + const { handler } = await handlerPkg; + // add a route that lives separately from the SvelteKit app + server.get("/healthcheck", (req, res) => { + log.info("Healthcheck route hit"); + res.end("ok"); + }); + + // let SvelteKit handle everything else, including serving prerendered pages and static assets + server.use(handler); + + server.listen(3000, () => { + console.log(`Server listening on ${origin}`); + }); + } catch (e) { + log.info(e); + } +}; + +createServer(); + +// Handle creating/removing shortcuts on Windows when installing/uninstalling. +if (require("electron-squirrel-startup")) { + app.quit(); +} + +const createWindow = () => { + log.info("Creating window..."); + // Create the browser window. + try { + const mainWindow = new BrowserWindow({ + width: 800, + height: 600, + webPreferences: { + preload: path.join(__dirname, "preload.js"), + }, + }); + + log.info("Opening server in window..."); + // and load the index.html of the app. + mainWindow.loadURL(origin); + + // Open the DevTools. + mainWindow.webContents.openDevTools(); + } catch (e) { + log.info("Error creating window"); + log.info(e); + } +}; + +// This method will be called when Electron has finished +// initialization and is ready to create browser windows. +// Some APIs can only be used after this event occurs. +app.on("ready", createWindow); + +// Quit when all windows are closed, except on macOS. There, it's common +// for applications and their menu bar to stay active until the user quits +// explicitly with Cmd + Q. +app.on("window-all-closed", () => { + if (process.platform !== "darwin") { + app.quit(); + } +}); + +app.on("activate", () => { + // On OS X it's common to re-create a window in the app when the + // dock icon is clicked and there are no other windows open. + if (BrowserWindow.getAllWindows().length === 0) { + createWindow(); + } +}); + +// In this file you can include the rest of your app's specific main process +// code. You can also put them in separate files and import them here. diff --git a/Electron-App/src/preload.js b/Electron-App/src/preload.js new file mode 100644 index 0000000..5e9d369 --- /dev/null +++ b/Electron-App/src/preload.js @@ -0,0 +1,2 @@ +// See the Electron documentation for details on how to use preload scripts: +// https://www.electronjs.org/docs/latest/tutorial/process-model#preload-scripts diff --git a/Sveltekit-App/.eslintignore b/Sveltekit-App/.eslintignore new file mode 100644 index 0000000..3897265 --- /dev/null +++ b/Sveltekit-App/.eslintignore @@ -0,0 +1,13 @@ +.DS_Store +node_modules +/build +/.svelte-kit +/package +.env +.env.* +!.env.example + +# Ignore files for PNPM, NPM and YARN +pnpm-lock.yaml +package-lock.json +yarn.lock diff --git a/Sveltekit-App/.eslintrc.cjs b/Sveltekit-App/.eslintrc.cjs new file mode 100644 index 0000000..ebc1958 --- /dev/null +++ b/Sveltekit-App/.eslintrc.cjs @@ -0,0 +1,30 @@ +module.exports = { + root: true, + extends: [ + 'eslint:recommended', + 'plugin:@typescript-eslint/recommended', + 'plugin:svelte/recommended', + 'prettier' + ], + parser: '@typescript-eslint/parser', + plugins: ['@typescript-eslint'], + parserOptions: { + sourceType: 'module', + ecmaVersion: 2020, + extraFileExtensions: ['.svelte'] + }, + env: { + browser: true, + es2017: true, + node: true + }, + overrides: [ + { + files: ['*.svelte'], + parser: 'svelte-eslint-parser', + parserOptions: { + parser: '@typescript-eslint/parser' + } + } + ] +}; diff --git a/Sveltekit-App/.gitignore b/Sveltekit-App/.gitignore new file mode 100644 index 0000000..6635cf5 --- /dev/null +++ b/Sveltekit-App/.gitignore @@ -0,0 +1,10 @@ +.DS_Store +node_modules +/build +/.svelte-kit +/package +.env +.env.* +!.env.example +vite.config.js.timestamp-* +vite.config.ts.timestamp-* diff --git a/Sveltekit-App/.npmrc b/Sveltekit-App/.npmrc new file mode 100644 index 0000000..b6f27f1 --- /dev/null +++ b/Sveltekit-App/.npmrc @@ -0,0 +1 @@ +engine-strict=true diff --git a/Sveltekit-App/.prettierignore b/Sveltekit-App/.prettierignore new file mode 100644 index 0000000..3897265 --- /dev/null +++ b/Sveltekit-App/.prettierignore @@ -0,0 +1,13 @@ +.DS_Store +node_modules +/build +/.svelte-kit +/package +.env +.env.* +!.env.example + +# Ignore files for PNPM, NPM and YARN +pnpm-lock.yaml +package-lock.json +yarn.lock diff --git a/Sveltekit-App/.prettierrc b/Sveltekit-App/.prettierrc new file mode 100644 index 0000000..9573023 --- /dev/null +++ b/Sveltekit-App/.prettierrc @@ -0,0 +1,8 @@ +{ + "useTabs": true, + "singleQuote": true, + "trailingComma": "none", + "printWidth": 100, + "plugins": ["prettier-plugin-svelte"], + "overrides": [{ "files": "*.svelte", "options": { "parser": "svelte" } }] +} diff --git a/Sveltekit-App/.vscode/settings.json b/Sveltekit-App/.vscode/settings.json new file mode 100644 index 0000000..9251b94 --- /dev/null +++ b/Sveltekit-App/.vscode/settings.json @@ -0,0 +1,118 @@ +{ + "prettier.documentSelectors": [ + "**/*.svelte" + ], + "tailwindCSS.classAttributes": [ + "class", + "accent", + "active", + "aspectRatio", + "background", + "badge", + "bgBackdrop", + "bgDark", + "bgDrawer", + "bgLight", + "blur", + "border", + "button", + "buttonAction", + "buttonBack", + "buttonClasses", + "buttonComplete", + "buttonDismiss", + "buttonNeutral", + "buttonNext", + "buttonPositive", + "buttonTextCancel", + "buttonTextConfirm", + "buttonTextFirst", + "buttonTextLast", + "buttonTextNext", + "buttonTextPrevious", + "buttonTextSubmit", + "caretClosed", + "caretOpen", + "chips", + "color", + "controlSeparator", + "controlVariant", + "cursor", + "display", + "element", + "fill", + "fillDark", + "fillLight", + "flex", + "gap", + "gridColumns", + "height", + "hover", + "inactive", + "indent", + "justify", + "meter", + "padding", + "position", + "regionAnchor", + "regionBackdrop", + "regionBody", + "regionCaption", + "regionCaret", + "regionCell", + "regionChildren", + "regionChipList", + "regionChipWrapper", + "regionCone", + "regionContent", + "regionControl", + "regionDefault", + "regionDrawer", + "regionFoot", + "regionFootCell", + "regionFooter", + "regionHead", + "regionHeadCell", + "regionHeader", + "regionIcon", + "regionInput", + "regionInterface", + "regionInterfaceText", + "regionLabel", + "regionLead", + "regionLegend", + "regionList", + "regionListItem", + "regionNavigation", + "regionPage", + "regionPanel", + "regionRowHeadline", + "regionRowMain", + "regionSummary", + "regionSymbol", + "regionTab", + "regionTrail", + "ring", + "rounded", + "select", + "shadow", + "slotDefault", + "slotFooter", + "slotHeader", + "slotLead", + "slotMessage", + "slotMeta", + "slotPageContent", + "slotPageFooter", + "slotPageHeader", + "slotSidebarLeft", + "slotSidebarRight", + "slotTrail", + "spacing", + "text", + "track", + "transition", + "width", + "zIndex" + ] +} \ No newline at end of file diff --git a/Sveltekit-App/README.md b/Sveltekit-App/README.md new file mode 100644 index 0000000..5c91169 --- /dev/null +++ b/Sveltekit-App/README.md @@ -0,0 +1,38 @@ +# create-svelte + +Everything you need to build a Svelte project, powered by [`create-svelte`](https://github.com/sveltejs/kit/tree/master/packages/create-svelte). + +## Creating a project + +If you're seeing this, you've probably already done this step. Congrats! + +```bash +# create a new project in the current directory +npm create svelte@latest + +# create a new project in my-app +npm create svelte@latest my-app +``` + +## Developing + +Once you've created a project and installed dependencies with `npm install` (or `pnpm install` or `yarn`), start a development server: + +```bash +npm run dev + +# or start the server and open the app in a new browser tab +npm run dev -- --open +``` + +## Building + +To create a production version of your app: + +```bash +npm run build +``` + +You can preview the production build with `npm run preview`. + +> To deploy your app, you may need to install an [adapter](https://kit.svelte.dev/docs/adapters) for your target environment. diff --git a/Sveltekit-App/package-lock.json b/Sveltekit-App/package-lock.json new file mode 100644 index 0000000..71fd27a --- /dev/null +++ b/Sveltekit-App/package-lock.json @@ -0,0 +1,5107 @@ +{ + "name": "idn-admin-console", + "version": "0.0.1", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "idn-admin-console", + "version": "0.0.1", + "dependencies": { + "@floating-ui/dom": "1.5.3" + }, + "devDependencies": { + "@skeletonlabs/skeleton": "2.5.0", + "@skeletonlabs/tw-plugin": "0.2.4", + "@sveltejs/adapter-auto": "^2.0.0", + "@sveltejs/adapter-node": "^1.3.1", + "@sveltejs/kit": "^1.27.4", + "@tailwindcss/forms": "0.5.7", + "@tailwindcss/typography": "0.5.10", + "@types/jsonwebtoken": "^9.0.5", + "@types/node": "20.9.1", + "@typescript-eslint/eslint-plugin": "^6.0.0", + "@typescript-eslint/parser": "^6.0.0", + "alasql": "^4.2.2", + "autoprefixer": "10.4.16", + "axios": "^1.6.2", + "cross-env": "^7.0.3", + "eslint": "^8.28.0", + "eslint-config-prettier": "^9.0.0", + "eslint-plugin-svelte": "^2.30.0", + "jsonwebtoken": "^9.0.2", + "postcss": "8.4.31", + "prettier": "^3.0.0", + "prettier-plugin-svelte": "^3.0.0", + "sailpoint-api-client": "^1.3.0", + "svelte": "^4.0.5", + "svelte-check": "^3.6.0", + "tailwindcss": "3.3.5", + "tslib": "^2.4.1", + "typescript": "^5.0.0", + "vite": "^4.4.2", + "vite-plugin-tailwind-purgecss": "0.1.3", + "vitest": "^0.34.6" + } + }, + "node_modules/@aashutoshrathi/word-wrap": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/@aashutoshrathi/word-wrap/-/word-wrap-1.2.6.tgz", + "integrity": "sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@alloc/quick-lru": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/@alloc/quick-lru/-/quick-lru-5.2.0.tgz", + "integrity": "sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@ampproject/remapping": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.1.tgz", + "integrity": "sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg==", + "dev": true, + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.0", + "@jridgewell/trace-mapping": "^0.3.9" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/runtime": { + "version": "7.23.2", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.23.2.tgz", + "integrity": "sha512-mM8eg4yl5D6i3lu2QKPuPH4FArvJ8KhTofbE7jwMUv9KX5mBvwPAqnV3MlyBNqdp9RyRKP6Yck8TrfYrPvX3bg==", + "dev": true, + "dependencies": { + "regenerator-runtime": "^0.14.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@esbuild/android-arm": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.18.20.tgz", + "integrity": "sha512-fyi7TDI/ijKKNZTUJAQqiG5T7YjJXgnzkURqmGj13C6dCqckZBLdl4h7bkhHt/t0WP+zO9/zwroDvANaOqO5Sw==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-arm64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.18.20.tgz", + "integrity": "sha512-Nz4rJcchGDtENV0eMKUNa6L12zz2zBDXuhj/Vjh18zGqB44Bi7MBMSXjgunJgjRhCmKOjnPuZp4Mb6OKqtMHLQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.18.20.tgz", + "integrity": "sha512-8GDdlePJA8D6zlZYJV/jnrRAi6rOiNaCC/JclcXpB+KIuvfBN4owLtgzY2bsxnx666XjJx2kDPUmnTtR8qKQUg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/darwin-arm64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.18.20.tgz", + "integrity": "sha512-bxRHW5kHU38zS2lPTPOyuyTm+S+eobPUnTNkdJEfAddYgEcll4xkT8DB9d2008DtTbl7uJag2HuE5NZAZgnNEA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/darwin-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.18.20.tgz", + "integrity": "sha512-pc5gxlMDxzm513qPGbCbDukOdsGtKhfxD1zJKXjCCcU7ju50O7MeAZ8c4krSJcOIJGFR+qx21yMMVYwiQvyTyQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/freebsd-arm64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.18.20.tgz", + "integrity": "sha512-yqDQHy4QHevpMAaxhhIwYPMv1NECwOvIpGCZkECn8w2WFHXjEwrBn3CeNIYsibZ/iZEUemj++M26W3cNR5h+Tw==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/freebsd-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.18.20.tgz", + "integrity": "sha512-tgWRPPuQsd3RmBZwarGVHZQvtzfEBOreNuxEMKFcd5DaDn2PbBxfwLcj4+aenoh7ctXcbXmOQIn8HI6mCSw5MQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-arm": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.18.20.tgz", + "integrity": "sha512-/5bHkMWnq1EgKr1V+Ybz3s1hWXok7mDFUMQ4cG10AfW3wL02PSZi5kFpYKrptDsgb2WAJIvRcDm+qIvXf/apvg==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-arm64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.18.20.tgz", + "integrity": "sha512-2YbscF+UL7SQAVIpnWvYwM+3LskyDmPhe31pE7/aoTMFKKzIc9lLbyGUpmmb8a8AixOL61sQ/mFh3jEjHYFvdA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-ia32": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.18.20.tgz", + "integrity": "sha512-P4etWwq6IsReT0E1KHU40bOnzMHoH73aXp96Fs8TIT6z9Hu8G6+0SHSw9i2isWrD2nbx2qo5yUqACgdfVGx7TA==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-loong64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.18.20.tgz", + "integrity": "sha512-nXW8nqBTrOpDLPgPY9uV+/1DjxoQ7DoB2N8eocyq8I9XuqJ7BiAMDMf9n1xZM9TgW0J8zrquIb/A7s3BJv7rjg==", + "cpu": [ + "loong64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-mips64el": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.18.20.tgz", + "integrity": "sha512-d5NeaXZcHp8PzYy5VnXV3VSd2D328Zb+9dEq5HE6bw6+N86JVPExrA6O68OPwobntbNJ0pzCpUFZTo3w0GyetQ==", + "cpu": [ + "mips64el" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-ppc64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.18.20.tgz", + "integrity": "sha512-WHPyeScRNcmANnLQkq6AfyXRFr5D6N2sKgkFo2FqguP44Nw2eyDlbTdZwd9GYk98DZG9QItIiTlFLHJHjxP3FA==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-riscv64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.18.20.tgz", + "integrity": "sha512-WSxo6h5ecI5XH34KC7w5veNnKkju3zBRLEQNY7mv5mtBmrP/MjNBCAlsM2u5hDBlS3NGcTQpoBvRzqBcRtpq1A==", + "cpu": [ + "riscv64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-s390x": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.18.20.tgz", + "integrity": "sha512-+8231GMs3mAEth6Ja1iK0a1sQ3ohfcpzpRLH8uuc5/KVDFneH6jtAJLFGafpzpMRO6DzJ6AvXKze9LfFMrIHVQ==", + "cpu": [ + "s390x" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.18.20.tgz", + "integrity": "sha512-UYqiqemphJcNsFEskc73jQ7B9jgwjWrSayxawS6UVFZGWrAAtkzjxSqnoclCXxWtfwLdzU+vTpcNYhpn43uP1w==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/netbsd-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.18.20.tgz", + "integrity": "sha512-iO1c++VP6xUBUmltHZoMtCUdPlnPGdBom6IrO4gyKPFFVBKioIImVooR5I83nTew5UOYrk3gIJhbZh8X44y06A==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/openbsd-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.18.20.tgz", + "integrity": "sha512-e5e4YSsuQfX4cxcygw/UCPIEP6wbIL+se3sxPdCiMbFLBWu0eiZOJ7WoD+ptCLrmjZBK1Wk7I6D/I3NglUGOxg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/sunos-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.18.20.tgz", + "integrity": "sha512-kDbFRFp0YpTQVVrqUd5FTYmWo45zGaXe0X8E1G/LKFC0v8x0vWrhOWSLITcCn63lmZIxfOMXtCfti/RxN/0wnQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-arm64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.18.20.tgz", + "integrity": "sha512-ddYFR6ItYgoaq4v4JmQQaAI5s7npztfV4Ag6NrhiaW0RrnOXqBkgwZLofVTlq1daVTQNhtI5oieTvkRPfZrePg==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-ia32": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.18.20.tgz", + "integrity": "sha512-Wv7QBi3ID/rROT08SABTS7eV4hX26sVduqDOTe1MvGMjNd3EjOz4b7zeexIR62GTIEKrfJXKL9LFxTYgkyeu7g==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.18.20.tgz", + "integrity": "sha512-kTdfRcSiDfQca/y9QIkng02avJ+NCaQvrMejlsB3RRv5sE9rRoeBPISaZpKxHELzRxZyLvNts1P27W3wV+8geQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@eslint-community/eslint-utils": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz", + "integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==", + "dev": true, + "dependencies": { + "eslint-visitor-keys": "^3.3.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" + } + }, + "node_modules/@eslint-community/regexpp": { + "version": "4.10.0", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.10.0.tgz", + "integrity": "sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA==", + "dev": true, + "engines": { + "node": "^12.0.0 || ^14.0.0 || >=16.0.0" + } + }, + "node_modules/@eslint/eslintrc": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.3.tgz", + "integrity": "sha512-yZzuIG+jnVu6hNSzFEN07e8BxF3uAzYtQb6uDkaYZLo6oYZDCq454c5kB8zxnzfCYyP4MIuyBn10L0DqwujTmA==", + "dev": true, + "dependencies": { + "ajv": "^6.12.4", + "debug": "^4.3.2", + "espree": "^9.6.0", + "globals": "^13.19.0", + "ignore": "^5.2.0", + "import-fresh": "^3.2.1", + "js-yaml": "^4.1.0", + "minimatch": "^3.1.2", + "strip-json-comments": "^3.1.1" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/@eslint/js": { + "version": "8.54.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.54.0.tgz", + "integrity": "sha512-ut5V+D+fOoWPgGGNj83GGjnntO39xDy6DWxO0wb7Jp3DcMX0TfIqdzHF85VTQkerdyGmuuMD9AKAo5KiNlf/AQ==", + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/@fastify/busboy": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@fastify/busboy/-/busboy-2.1.0.tgz", + "integrity": "sha512-+KpH+QxZU7O4675t3mnkQKcZZg56u+K/Ct2K+N2AZYNVK8kyeo/bI18tI8aPm3tvNNRyTWfj6s5tnGNlcbQRsA==", + "dev": true, + "engines": { + "node": ">=14" + } + }, + "node_modules/@floating-ui/core": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@floating-ui/core/-/core-1.5.0.tgz", + "integrity": "sha512-kK1h4m36DQ0UHGj5Ah4db7R0rHemTqqO0QLvUqi1/mUUp3LuAWbWxdxSIf/XsnH9VS6rRVPLJCncjRzUvyCLXg==", + "dependencies": { + "@floating-ui/utils": "^0.1.3" + } + }, + "node_modules/@floating-ui/dom": { + "version": "1.5.3", + "resolved": "https://registry.npmjs.org/@floating-ui/dom/-/dom-1.5.3.tgz", + "integrity": "sha512-ClAbQnEqJAKCJOEbbLo5IUlZHkNszqhuxS4fHAVxRPXPya6Ysf2G8KypnYcOTpx6I8xcgF9bbHb6g/2KpbV8qA==", + "dependencies": { + "@floating-ui/core": "^1.4.2", + "@floating-ui/utils": "^0.1.3" + } + }, + "node_modules/@floating-ui/utils": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/@floating-ui/utils/-/utils-0.1.6.tgz", + "integrity": "sha512-OfX7E2oUDYxtBvsuS4e/jSn4Q9Qb6DzgeYtsAdkPZ47znpoNsMgZw0+tVijiv3uGNR6dgNlty6r9rzIzHjtd/A==" + }, + "node_modules/@humanwhocodes/config-array": { + "version": "0.11.13", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.13.tgz", + "integrity": "sha512-JSBDMiDKSzQVngfRjOdFXgFfklaXI4K9nLF49Auh21lmBWRLIK3+xTErTWD4KU54pb6coM6ESE7Awz/FNU3zgQ==", + "dev": true, + "dependencies": { + "@humanwhocodes/object-schema": "^2.0.1", + "debug": "^4.1.1", + "minimatch": "^3.0.5" + }, + "engines": { + "node": ">=10.10.0" + } + }, + "node_modules/@humanwhocodes/module-importer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", + "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", + "dev": true, + "engines": { + "node": ">=12.22" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, + "node_modules/@humanwhocodes/object-schema": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.1.tgz", + "integrity": "sha512-dvuCeX5fC9dXgJn9t+X5atfmgQAzUOWqS1254Gh0m6i8wKd10ebXkfNKiRK+1GWi/yTvvLDHpoxLr0xxxeslWw==", + "dev": true + }, + "node_modules/@jest/schemas": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-29.6.3.tgz", + "integrity": "sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==", + "dev": true, + "dependencies": { + "@sinclair/typebox": "^0.27.8" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz", + "integrity": "sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==", + "dev": true, + "dependencies": { + "@jridgewell/set-array": "^1.0.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.9" + }, + "engines": { + "node": ">=6.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/set-array": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz", + "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==", + "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.20", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.20.tgz", + "integrity": "sha512-R8LcPeWZol2zR8mmH3JeKQ6QRCFb7XgUhV9ZlGhHLGyg4wpPiPZNQOOWhFZhxKw8u//yTbNGI42Bx/3paXEQ+Q==", + "dev": true, + "dependencies": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dev": true, + "dependencies": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "dev": true, + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@polka/url": { + "version": "1.0.0-next.23", + "resolved": "https://registry.npmjs.org/@polka/url/-/url-1.0.0-next.23.tgz", + "integrity": "sha512-C16M+IYz0rgRhWZdCmK+h58JMv8vijAA61gmz2rspCSwKwzBebpdcsiUmwrtJRdphuY30i6BSLEOP8ppbNLyLg==", + "dev": true + }, + "node_modules/@rollup/plugin-commonjs": { + "version": "25.0.7", + "resolved": "https://registry.npmjs.org/@rollup/plugin-commonjs/-/plugin-commonjs-25.0.7.tgz", + "integrity": "sha512-nEvcR+LRjEjsaSsc4x3XZfCCvZIaSMenZu/OiwOKGN2UhQpAYI7ru7czFvyWbErlpoGjnSX3D5Ch5FcMA3kRWQ==", + "dev": true, + "dependencies": { + "@rollup/pluginutils": "^5.0.1", + "commondir": "^1.0.1", + "estree-walker": "^2.0.2", + "glob": "^8.0.3", + "is-reference": "1.2.1", + "magic-string": "^0.30.3" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "rollup": "^2.68.0||^3.0.0||^4.0.0" + }, + "peerDependenciesMeta": { + "rollup": { + "optional": true + } + } + }, + "node_modules/@rollup/plugin-commonjs/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/@rollup/plugin-commonjs/node_modules/estree-walker": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", + "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==", + "dev": true + }, + "node_modules/@rollup/plugin-commonjs/node_modules/glob": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-8.1.0.tgz", + "integrity": "sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==", + "dev": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^5.0.1", + "once": "^1.3.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/@rollup/plugin-commonjs/node_modules/is-reference": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/is-reference/-/is-reference-1.2.1.tgz", + "integrity": "sha512-U82MsXXiFIrjCK4otLT+o2NA2Cd2g5MLoOVXUZjIOhLurrRxpEXzI8O0KZHr3IjLvlAH1kTPYSuqer5T9ZVBKQ==", + "dev": true, + "dependencies": { + "@types/estree": "*" + } + }, + "node_modules/@rollup/plugin-commonjs/node_modules/minimatch": { + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", + "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", + "dev": true, + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@rollup/plugin-json": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/@rollup/plugin-json/-/plugin-json-6.0.1.tgz", + "integrity": "sha512-RgVfl5hWMkxN1h/uZj8FVESvPuBJ/uf6ly6GTj0GONnkfoBN5KC0MSz+PN2OLDgYXMhtG0mWpTrkiOjoxAIevw==", + "dev": true, + "dependencies": { + "@rollup/pluginutils": "^5.0.1" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "rollup": "^1.20.0||^2.0.0||^3.0.0||^4.0.0" + }, + "peerDependenciesMeta": { + "rollup": { + "optional": true + } + } + }, + "node_modules/@rollup/plugin-node-resolve": { + "version": "15.2.3", + "resolved": "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-15.2.3.tgz", + "integrity": "sha512-j/lym8nf5E21LwBT4Df1VD6hRO2L2iwUeUmP7litikRsVp1H6NWx20NEp0Y7su+7XGc476GnXXc4kFeZNGmaSQ==", + "dev": true, + "dependencies": { + "@rollup/pluginutils": "^5.0.1", + "@types/resolve": "1.20.2", + "deepmerge": "^4.2.2", + "is-builtin-module": "^3.2.1", + "is-module": "^1.0.0", + "resolve": "^1.22.1" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "rollup": "^2.78.0||^3.0.0||^4.0.0" + }, + "peerDependenciesMeta": { + "rollup": { + "optional": true + } + } + }, + "node_modules/@rollup/pluginutils": { + "version": "5.0.5", + "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-5.0.5.tgz", + "integrity": "sha512-6aEYR910NyP73oHiJglti74iRyOwgFU4x3meH/H8OJx6Ry0j6cOVZ5X/wTvub7G7Ao6qaHBEaNsV3GLJkSsF+Q==", + "dev": true, + "dependencies": { + "@types/estree": "^1.0.0", + "estree-walker": "^2.0.2", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "rollup": "^1.20.0||^2.0.0||^3.0.0||^4.0.0" + }, + "peerDependenciesMeta": { + "rollup": { + "optional": true + } + } + }, + "node_modules/@rollup/pluginutils/node_modules/estree-walker": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", + "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==", + "dev": true + }, + "node_modules/@sinclair/typebox": { + "version": "0.27.8", + "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.27.8.tgz", + "integrity": "sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==", + "dev": true + }, + "node_modules/@skeletonlabs/skeleton": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/@skeletonlabs/skeleton/-/skeleton-2.5.0.tgz", + "integrity": "sha512-g9b59IkvByM9D/2RfwBXRP1dqTlaz85opqDHEWEDlJ/wPJ2SaUueBXDwuQfO5oLX8BBXQKIGnb/eUr03hnjgjg==", + "dev": true, + "dependencies": { + "esm-env": "1.0.0" + }, + "peerDependencies": { + "svelte": "^3.56.0 || ^4.0.0" + } + }, + "node_modules/@skeletonlabs/tw-plugin": { + "version": "0.2.4", + "resolved": "https://registry.npmjs.org/@skeletonlabs/tw-plugin/-/tw-plugin-0.2.4.tgz", + "integrity": "sha512-DmOFMV6jhhvnub/TANB62nJJqxfMBby5Kxwe/Mn3DTxHuJLZj8B47Ta2K5sl/or2B8MaMfny8ocvPAzd6lrMtQ==", + "dev": true, + "peerDependencies": { + "tailwindcss": ">=3.0.0" + } + }, + "node_modules/@sveltejs/adapter-auto": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/@sveltejs/adapter-auto/-/adapter-auto-2.1.1.tgz", + "integrity": "sha512-nzi6x/7/3Axh5VKQ8Eed3pYxastxoa06Y/bFhWb7h3Nu+nGRVxKAy3+hBJgmPCwWScy8n0TsstZjSVKfyrIHkg==", + "dev": true, + "dependencies": { + "import-meta-resolve": "^4.0.0" + }, + "peerDependencies": { + "@sveltejs/kit": "^1.0.0" + } + }, + "node_modules/@sveltejs/adapter-node": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/@sveltejs/adapter-node/-/adapter-node-1.3.1.tgz", + "integrity": "sha512-A0VgRQDCDPzdLNoiAbcOxGw4zT1Mc+n1LwT1OmO350R7WxrEqdMUChPPOd1iMfIDWlP4ie6E2d/WQf5es2d4Zw==", + "dev": true, + "dependencies": { + "@rollup/plugin-commonjs": "^25.0.0", + "@rollup/plugin-json": "^6.0.0", + "@rollup/plugin-node-resolve": "^15.0.1", + "rollup": "^3.7.0" + }, + "peerDependencies": { + "@sveltejs/kit": "^1.0.0" + } + }, + "node_modules/@sveltejs/kit": { + "version": "1.27.6", + "resolved": "https://registry.npmjs.org/@sveltejs/kit/-/kit-1.27.6.tgz", + "integrity": "sha512-GsjTkMbKzXdbeRg0tk8S7HNShQ4879ftRr0ZHaZfjbig1xQwG57Bvcm9U9/mpLJtCapLbLWUnygKrgcLISLC8A==", + "dev": true, + "hasInstallScript": true, + "dependencies": { + "@sveltejs/vite-plugin-svelte": "^2.5.0", + "@types/cookie": "^0.5.1", + "cookie": "^0.5.0", + "devalue": "^4.3.1", + "esm-env": "^1.0.0", + "kleur": "^4.1.5", + "magic-string": "^0.30.0", + "mrmime": "^1.0.1", + "sade": "^1.8.1", + "set-cookie-parser": "^2.6.0", + "sirv": "^2.0.2", + "tiny-glob": "^0.2.9", + "undici": "~5.26.2" + }, + "bin": { + "svelte-kit": "svelte-kit.js" + }, + "engines": { + "node": "^16.14 || >=18" + }, + "peerDependencies": { + "svelte": "^3.54.0 || ^4.0.0-next.0 || ^5.0.0-next.0", + "vite": "^4.0.0" + } + }, + "node_modules/@sveltejs/vite-plugin-svelte": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/@sveltejs/vite-plugin-svelte/-/vite-plugin-svelte-2.5.2.tgz", + "integrity": "sha512-Dfy0Rbl+IctOVfJvWGxrX/3m6vxPLH8o0x+8FA5QEyMUQMo4kGOVIojjryU7YomBAexOTAuYf1RT7809yDziaA==", + "dev": true, + "dependencies": { + "@sveltejs/vite-plugin-svelte-inspector": "^1.0.4", + "debug": "^4.3.4", + "deepmerge": "^4.3.1", + "kleur": "^4.1.5", + "magic-string": "^0.30.3", + "svelte-hmr": "^0.15.3", + "vitefu": "^0.2.4" + }, + "engines": { + "node": "^14.18.0 || >= 16" + }, + "peerDependencies": { + "svelte": "^3.54.0 || ^4.0.0 || ^5.0.0-next.0", + "vite": "^4.0.0" + } + }, + "node_modules/@sveltejs/vite-plugin-svelte-inspector": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@sveltejs/vite-plugin-svelte-inspector/-/vite-plugin-svelte-inspector-1.0.4.tgz", + "integrity": "sha512-zjiuZ3yydBtwpF3bj0kQNV0YXe+iKE545QGZVTaylW3eAzFr+pJ/cwK8lZEaRp4JtaJXhD5DyWAV4AxLh6DgaQ==", + "dev": true, + "dependencies": { + "debug": "^4.3.4" + }, + "engines": { + "node": "^14.18.0 || >= 16" + }, + "peerDependencies": { + "@sveltejs/vite-plugin-svelte": "^2.2.0", + "svelte": "^3.54.0 || ^4.0.0", + "vite": "^4.0.0" + } + }, + "node_modules/@tailwindcss/forms": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/@tailwindcss/forms/-/forms-0.5.7.tgz", + "integrity": "sha512-QE7X69iQI+ZXwldE+rzasvbJiyV/ju1FGHH0Qn2W3FKbuYtqp8LKcy6iSw79fVUT5/Vvf+0XgLCeYVG+UV6hOw==", + "dev": true, + "dependencies": { + "mini-svg-data-uri": "^1.2.3" + }, + "peerDependencies": { + "tailwindcss": ">=3.0.0 || >= 3.0.0-alpha.1" + } + }, + "node_modules/@tailwindcss/typography": { + "version": "0.5.10", + "resolved": "https://registry.npmjs.org/@tailwindcss/typography/-/typography-0.5.10.tgz", + "integrity": "sha512-Pe8BuPJQJd3FfRnm6H0ulKIGoMEQS+Vq01R6M5aCrFB/ccR/shT+0kXLjouGC1gFLm9hopTFN+DMP0pfwRWzPw==", + "dev": true, + "dependencies": { + "lodash.castarray": "^4.4.0", + "lodash.isplainobject": "^4.0.6", + "lodash.merge": "^4.6.2", + "postcss-selector-parser": "6.0.10" + }, + "peerDependencies": { + "tailwindcss": ">=3.0.0 || insiders" + } + }, + "node_modules/@types/chai": { + "version": "4.3.10", + "resolved": "https://registry.npmjs.org/@types/chai/-/chai-4.3.10.tgz", + "integrity": "sha512-of+ICnbqjmFCiixUnqRulbylyXQrPqIGf/B3Jax1wIF3DvSheysQxAWvqHhZiW3IQrycvokcLcFQlveGp+vyNg==", + "dev": true + }, + "node_modules/@types/chai-subset": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/@types/chai-subset/-/chai-subset-1.3.5.tgz", + "integrity": "sha512-c2mPnw+xHtXDoHmdtcCXGwyLMiauiAyxWMzhGpqHC4nqI/Y5G2XhTampslK2rb59kpcuHon03UH8W6iYUzw88A==", + "dev": true, + "dependencies": { + "@types/chai": "*" + } + }, + "node_modules/@types/cookie": { + "version": "0.5.4", + "resolved": "https://registry.npmjs.org/@types/cookie/-/cookie-0.5.4.tgz", + "integrity": "sha512-7z/eR6O859gyWIAjuvBWFzNURmf2oPBmJlfVWkwehU5nzIyjwBsTh7WMmEEV4JFnHuQ3ex4oyTvfKzcyJVDBNA==", + "dev": true + }, + "node_modules/@types/estree": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.5.tgz", + "integrity": "sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==", + "dev": true + }, + "node_modules/@types/json-schema": { + "version": "7.0.15", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", + "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==", + "dev": true + }, + "node_modules/@types/jsonwebtoken": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/@types/jsonwebtoken/-/jsonwebtoken-9.0.5.tgz", + "integrity": "sha512-VRLSGzik+Unrup6BsouBeHsf4d1hOEgYWTm/7Nmw1sXoN1+tRly/Gy/po3yeahnP4jfnQWWAhQAqcNfH7ngOkA==", + "dev": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/node": { + "version": "20.9.1", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.9.1.tgz", + "integrity": "sha512-HhmzZh5LSJNS5O8jQKpJ/3ZcrrlG6L70hpGqMIAoM9YVD0YBRNWYsfwcXq8VnSjlNpCpgLzMXdiPo+dxcvSmiA==", + "dev": true, + "dependencies": { + "undici-types": "~5.26.4" + } + }, + "node_modules/@types/pug": { + "version": "2.0.9", + "resolved": "https://registry.npmjs.org/@types/pug/-/pug-2.0.9.tgz", + "integrity": "sha512-Yg4LkgFYvn1faISbDNWmcAC1XoDT8IoMUFspp5mnagKk+UvD2N0IWt5A7GRdMubsNWqgCLmrkf8rXkzNqb4szA==", + "dev": true + }, + "node_modules/@types/resolve": { + "version": "1.20.2", + "resolved": "https://registry.npmjs.org/@types/resolve/-/resolve-1.20.2.tgz", + "integrity": "sha512-60BCwRFOZCQhDncwQdxxeOEEkbc5dIMccYLwbxsS4TUNeVECQ/pBJ0j09mrHOl/JJvpRPGwO9SvE4nR2Nb/a4Q==", + "dev": true + }, + "node_modules/@types/semver": { + "version": "7.5.5", + "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.5.5.tgz", + "integrity": "sha512-+d+WYC1BxJ6yVOgUgzK8gWvp5qF8ssV5r4nsDcZWKRWcDQLQ619tvWAxJQYGgBrO1MnLJC7a5GtiYsAoQ47dJg==", + "dev": true + }, + "node_modules/@typescript-eslint/eslint-plugin": { + "version": "6.11.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.11.0.tgz", + "integrity": "sha512-uXnpZDc4VRjY4iuypDBKzW1rz9T5YBBK0snMn8MaTSNd2kMlj50LnLBABELjJiOL5YHk7ZD8hbSpI9ubzqYI0w==", + "dev": true, + "dependencies": { + "@eslint-community/regexpp": "^4.5.1", + "@typescript-eslint/scope-manager": "6.11.0", + "@typescript-eslint/type-utils": "6.11.0", + "@typescript-eslint/utils": "6.11.0", + "@typescript-eslint/visitor-keys": "6.11.0", + "debug": "^4.3.4", + "graphemer": "^1.4.0", + "ignore": "^5.2.4", + "natural-compare": "^1.4.0", + "semver": "^7.5.4", + "ts-api-utils": "^1.0.1" + }, + "engines": { + "node": "^16.0.0 || >=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "@typescript-eslint/parser": "^6.0.0 || ^6.0.0-alpha", + "eslint": "^7.0.0 || ^8.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/parser": { + "version": "6.11.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-6.11.0.tgz", + "integrity": "sha512-+whEdjk+d5do5nxfxx73oanLL9ghKO3EwM9kBCkUtWMRwWuPaFv9ScuqlYfQ6pAD6ZiJhky7TZ2ZYhrMsfMxVQ==", + "dev": true, + "dependencies": { + "@typescript-eslint/scope-manager": "6.11.0", + "@typescript-eslint/types": "6.11.0", + "@typescript-eslint/typescript-estree": "6.11.0", + "@typescript-eslint/visitor-keys": "6.11.0", + "debug": "^4.3.4" + }, + "engines": { + "node": "^16.0.0 || >=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^7.0.0 || ^8.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/scope-manager": { + "version": "6.11.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-6.11.0.tgz", + "integrity": "sha512-0A8KoVvIURG4uhxAdjSaxy8RdRE//HztaZdG8KiHLP8WOXSk0vlF7Pvogv+vlJA5Rnjj/wDcFENvDaHb+gKd1A==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "6.11.0", + "@typescript-eslint/visitor-keys": "6.11.0" + }, + "engines": { + "node": "^16.0.0 || >=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/type-utils": { + "version": "6.11.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-6.11.0.tgz", + "integrity": "sha512-nA4IOXwZtqBjIoYrJcYxLRO+F9ri+leVGoJcMW1uqr4r1Hq7vW5cyWrA43lFbpRvQ9XgNrnfLpIkO3i1emDBIA==", + "dev": true, + "dependencies": { + "@typescript-eslint/typescript-estree": "6.11.0", + "@typescript-eslint/utils": "6.11.0", + "debug": "^4.3.4", + "ts-api-utils": "^1.0.1" + }, + "engines": { + "node": "^16.0.0 || >=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^7.0.0 || ^8.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/types": { + "version": "6.11.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-6.11.0.tgz", + "integrity": "sha512-ZbEzuD4DwEJxwPqhv3QULlRj8KYTAnNsXxmfuUXFCxZmO6CF2gM/y+ugBSAQhrqaJL3M+oe4owdWunaHM6beqA==", + "dev": true, + "engines": { + "node": "^16.0.0 || >=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/typescript-estree": { + "version": "6.11.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-6.11.0.tgz", + "integrity": "sha512-Aezzv1o2tWJwvZhedzvD5Yv7+Lpu1by/U1LZ5gLc4tCx8jUmuSCMioPFRjliN/6SJIvY6HpTtJIWubKuYYYesQ==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "6.11.0", + "@typescript-eslint/visitor-keys": "6.11.0", + "debug": "^4.3.4", + "globby": "^11.1.0", + "is-glob": "^4.0.3", + "semver": "^7.5.4", + "ts-api-utils": "^1.0.1" + }, + "engines": { + "node": "^16.0.0 || >=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/utils": { + "version": "6.11.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-6.11.0.tgz", + "integrity": "sha512-p23ibf68fxoZy605dc0dQAEoUsoiNoP3MD9WQGiHLDuTSOuqoTsa4oAy+h3KDkTcxbbfOtUjb9h3Ta0gT4ug2g==", + "dev": true, + "dependencies": { + "@eslint-community/eslint-utils": "^4.4.0", + "@types/json-schema": "^7.0.12", + "@types/semver": "^7.5.0", + "@typescript-eslint/scope-manager": "6.11.0", + "@typescript-eslint/types": "6.11.0", + "@typescript-eslint/typescript-estree": "6.11.0", + "semver": "^7.5.4" + }, + "engines": { + "node": "^16.0.0 || >=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^7.0.0 || ^8.0.0" + } + }, + "node_modules/@typescript-eslint/visitor-keys": { + "version": "6.11.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-6.11.0.tgz", + "integrity": "sha512-+SUN/W7WjBr05uRxPggJPSzyB8zUpaYo2hByKasWbqr3PM8AXfZt8UHdNpBS1v9SA62qnSSMF3380SwDqqprgQ==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "6.11.0", + "eslint-visitor-keys": "^3.4.1" + }, + "engines": { + "node": "^16.0.0 || >=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@ungap/structured-clone": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.0.tgz", + "integrity": "sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==", + "dev": true + }, + "node_modules/@vitest/expect": { + "version": "0.34.6", + "resolved": "https://registry.npmjs.org/@vitest/expect/-/expect-0.34.6.tgz", + "integrity": "sha512-QUzKpUQRc1qC7qdGo7rMK3AkETI7w18gTCUrsNnyjjJKYiuUB9+TQK3QnR1unhCnWRC0AbKv2omLGQDF/mIjOw==", + "dev": true, + "dependencies": { + "@vitest/spy": "0.34.6", + "@vitest/utils": "0.34.6", + "chai": "^4.3.10" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/@vitest/runner": { + "version": "0.34.6", + "resolved": "https://registry.npmjs.org/@vitest/runner/-/runner-0.34.6.tgz", + "integrity": "sha512-1CUQgtJSLF47NnhN+F9X2ycxUP0kLHQ/JWvNHbeBfwW8CzEGgeskzNnHDyv1ieKTltuR6sdIHV+nmR6kPxQqzQ==", + "dev": true, + "dependencies": { + "@vitest/utils": "0.34.6", + "p-limit": "^4.0.0", + "pathe": "^1.1.1" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/@vitest/runner/node_modules/p-limit": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-4.0.0.tgz", + "integrity": "sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==", + "dev": true, + "dependencies": { + "yocto-queue": "^1.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@vitest/runner/node_modules/yocto-queue": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-1.0.0.tgz", + "integrity": "sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g==", + "dev": true, + "engines": { + "node": ">=12.20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@vitest/snapshot": { + "version": "0.34.6", + "resolved": "https://registry.npmjs.org/@vitest/snapshot/-/snapshot-0.34.6.tgz", + "integrity": "sha512-B3OZqYn6k4VaN011D+ve+AA4whM4QkcwcrwaKwAbyyvS/NB1hCWjFIBQxAQQSQir9/RtyAAGuq+4RJmbn2dH4w==", + "dev": true, + "dependencies": { + "magic-string": "^0.30.1", + "pathe": "^1.1.1", + "pretty-format": "^29.5.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/@vitest/spy": { + "version": "0.34.6", + "resolved": "https://registry.npmjs.org/@vitest/spy/-/spy-0.34.6.tgz", + "integrity": "sha512-xaCvneSaeBw/cz8ySmF7ZwGvL0lBjfvqc1LpQ/vcdHEvpLn3Ff1vAvjw+CoGn0802l++5L/pxb7whwcWAw+DUQ==", + "dev": true, + "dependencies": { + "tinyspy": "^2.1.1" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/@vitest/utils": { + "version": "0.34.6", + "resolved": "https://registry.npmjs.org/@vitest/utils/-/utils-0.34.6.tgz", + "integrity": "sha512-IG5aDD8S6zlvloDsnzHw0Ut5xczlF+kv2BOTo+iXfPr54Yhi5qbVOgGB1hZaVq4iJ4C/MZ2J0y15IlsV/ZcI0A==", + "dev": true, + "dependencies": { + "diff-sequences": "^29.4.3", + "loupe": "^2.3.6", + "pretty-format": "^29.5.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/acorn": { + "version": "8.11.2", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.2.tgz", + "integrity": "sha512-nc0Axzp/0FILLEVsm4fNwLCwMttvhEI263QtVPQcbpfZZ3ts0hLsZGOpE6czNlid7CJ9MlyH8reXkpsf3YUY4w==", + "dev": true, + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-jsx": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", + "dev": true, + "peerDependencies": { + "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/acorn-walk": { + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.0.tgz", + "integrity": "sha512-FS7hV565M5l1R08MXqo8odwMTB02C2UqzB17RVgu9EyuYFBqJZ3/ZY97sQD5FewVu1UyDFc1yztUDrAwT0EypA==", + "dev": true, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/alasql": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/alasql/-/alasql-4.2.2.tgz", + "integrity": "sha512-GjKrHVmNVsDHIMtCZfENSXPAeD2R/iZdcLc2fjeKsb3cynOVm8O2LlgwsIAHP7otLSHd3BErcg0zrVVO162iAg==", + "dev": true, + "dependencies": { + "cross-fetch": "4", + "yargs": "16" + }, + "bin": { + "alasql": "bin/alasql-cli.js" + }, + "engines": { + "node": ">=15" + } + }, + "node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/any-promise": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz", + "integrity": "sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==", + "dev": true + }, + "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": "5.0.2", + "resolved": "https://registry.npmjs.org/arg/-/arg-5.0.2.tgz", + "integrity": "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==", + "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==", + "dev": true + }, + "node_modules/aria-query": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.3.0.tgz", + "integrity": "sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A==", + "dev": true, + "dependencies": { + "dequal": "^2.0.3" + } + }, + "node_modules/array-union": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/assertion-error": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz", + "integrity": "sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==", + "dev": true + }, + "node_modules/autoprefixer": { + "version": "10.4.16", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.16.tgz", + "integrity": "sha512-7vd3UC6xKp0HLfua5IjZlcXvGAGy7cBAXTg2lyQ/8WpNhd6SiZ8Be+xm3FyBSYJx5GKcpRCzBh7RH4/0dnY+uQ==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/autoprefixer" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "browserslist": "^4.21.10", + "caniuse-lite": "^1.0.30001538", + "fraction.js": "^4.3.6", + "normalize-range": "^0.1.2", + "picocolors": "^1.0.0", + "postcss-value-parser": "^4.2.0" + }, + "bin": { + "autoprefixer": "bin/autoprefixer" + }, + "engines": { + "node": "^10 || ^12 || >=14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/axios": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.6.2.tgz", + "integrity": "sha512-7i24Ri4pmDRfJTR7LDBhsOTtcm+9kjX5WiY1X3wIisx6G9So3pfMkEiU7emUBe46oceVImccTEM3k6C5dbVW8A==", + "dev": true, + "dependencies": { + "follow-redirects": "^1.15.0", + "form-data": "^4.0.0", + "proxy-from-env": "^1.1.0" + } + }, + "node_modules/axios-retry": { + "version": "3.9.1", + "resolved": "https://registry.npmjs.org/axios-retry/-/axios-retry-3.9.1.tgz", + "integrity": "sha512-8PJDLJv7qTTMMwdnbMvrLYuvB47M81wRtxQmEdV5w4rgbTXTt+vtPkXwajOfOdSyv/wZICJOC+/UhXH4aQ/R+w==", + "dev": true, + "dependencies": { + "@babel/runtime": "^7.15.4", + "is-retry-allowed": "^2.2.0" + } + }, + "node_modules/axobject-query": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-3.2.1.tgz", + "integrity": "sha512-jsyHu61e6N4Vbz/v18DHwWYKK0bSWLqn47eeDSKPB7m8tqMHF9YJ+mhIk2lVteyZrY8tnSj/jHOv4YiTCuCJgg==", + "dev": true, + "dependencies": { + "dequal": "^2.0.3" + } + }, + "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/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/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/browserslist": { + "version": "4.22.1", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.22.1.tgz", + "integrity": "sha512-FEVc202+2iuClEhZhrWy6ZiAcRLvNMyYcxZ8raemul1DYVOVdFsbqckWLdsixQZCpJlwe77Z3UTalE7jsjnKfQ==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "caniuse-lite": "^1.0.30001541", + "electron-to-chromium": "^1.4.535", + "node-releases": "^2.0.13", + "update-browserslist-db": "^1.0.13" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + } + }, + "node_modules/buffer-crc32": { + "version": "0.2.13", + "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", + "integrity": "sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==", + "dev": true, + "engines": { + "node": "*" + } + }, + "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==", + "dev": true + }, + "node_modules/builtin-modules": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-3.3.0.tgz", + "integrity": "sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==", + "dev": true, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/cac": { + "version": "6.7.14", + "resolved": "https://registry.npmjs.org/cac/-/cac-6.7.14.tgz", + "integrity": "sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/camelcase-css": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/camelcase-css/-/camelcase-css-2.0.1.tgz", + "integrity": "sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==", + "dev": true, + "engines": { + "node": ">= 6" + } + }, + "node_modules/caniuse-lite": { + "version": "1.0.30001563", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001563.tgz", + "integrity": "sha512-na2WUmOxnwIZtwnFI2CZ/3er0wdNzU7hN+cPYz/z2ajHThnkWjNBOpEPP4n+4r2WPM847JaMotaJE3bnfzjyKw==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ] + }, + "node_modules/chai": { + "version": "4.3.10", + "resolved": "https://registry.npmjs.org/chai/-/chai-4.3.10.tgz", + "integrity": "sha512-0UXG04VuVbruMUYbJ6JctvH0YnC/4q3/AkT18q4NaITo91CUm0liMS9VqzT9vZhVQ/1eqPanMWjBM+Juhfb/9g==", + "dev": true, + "dependencies": { + "assertion-error": "^1.1.0", + "check-error": "^1.0.3", + "deep-eql": "^4.1.3", + "get-func-name": "^2.0.2", + "loupe": "^2.3.6", + "pathval": "^1.1.1", + "type-detect": "^4.0.8" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/check-error": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/check-error/-/check-error-1.0.3.tgz", + "integrity": "sha512-iKEoDYaRmd1mxM90a2OEfWhjsjPpYPuQ+lMYsoxB126+t8fw7ySEO48nmDg5COTjxDI65/Y2OWpeEHk3ZOe8zg==", + "dev": true, + "dependencies": { + "get-func-name": "^2.0.2" + }, + "engines": { + "node": "*" + } + }, + "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/chokidar/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/cliui": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", + "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", + "dev": true, + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^7.0.0" + } + }, + "node_modules/code-red": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/code-red/-/code-red-1.0.4.tgz", + "integrity": "sha512-7qJWqItLA8/VPVlKJlFXU+NBlo/qyfs39aJcuMT/2ere32ZqvF5OSxgdM5xOfJJ7O429gg2HM47y8v9P+9wrNw==", + "dev": true, + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.4.15", + "@types/estree": "^1.0.1", + "acorn": "^8.10.0", + "estree-walker": "^3.0.3", + "periscopic": "^3.1.0" + } + }, + "node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "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==", + "dev": true, + "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/commondir": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", + "integrity": "sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==", + "dev": true + }, + "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/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/cross-env": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-env/-/cross-env-7.0.3.tgz", + "integrity": "sha512-+/HKd6EgcQCJGh2PSjZuUitQBQynKor4wrFbRg4DtAgS1aWO+gU52xpH7M9ScGgXSYmAVS9bIJ8EzuaGw0oNAw==", + "dev": true, + "dependencies": { + "cross-spawn": "^7.0.1" + }, + "bin": { + "cross-env": "src/bin/cross-env.js", + "cross-env-shell": "src/bin/cross-env-shell.js" + }, + "engines": { + "node": ">=10.14", + "npm": ">=6", + "yarn": ">=1" + } + }, + "node_modules/cross-fetch": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-4.0.0.tgz", + "integrity": "sha512-e4a5N8lVvuLgAWgnCrLr2PP0YyDOTHa9H/Rj54dirp61qXnNq46m82bRhNqIA5VccJtWBvPTFRV3TtvHUKPB1g==", + "dev": true, + "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/css-tree": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-2.3.1.tgz", + "integrity": "sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw==", + "dev": true, + "dependencies": { + "mdn-data": "2.0.30", + "source-map-js": "^1.0.1" + }, + "engines": { + "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0" + } + }, + "node_modules/cssesc": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", + "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", + "dev": true, + "bin": { + "cssesc": "bin/cssesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/deep-eql": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-4.1.3.tgz", + "integrity": "sha512-WaEtAOpRA1MQ0eohqZjpGD8zdI0Ovsm8mmFhaDN8dvDZzyoUMcYDnf5Y6iu7HTXxf8JDS23qWa4a+hKCDyOPzw==", + "dev": true, + "dependencies": { + "type-detect": "^4.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/deep-is": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", + "dev": true + }, + "node_modules/deepmerge": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz", + "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", + "dev": true, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/dequal": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/dequal/-/dequal-2.0.3.tgz", + "integrity": "sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/detect-indent": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-6.1.0.tgz", + "integrity": "sha512-reYkTUJAZb9gUuZ2RvVCNhVHdg62RHnJ7WJl8ftMi4diZ6NWlciOzQN88pUhSELEwflJht4oQDv0F0BMlwaYtA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/devalue": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/devalue/-/devalue-4.3.2.tgz", + "integrity": "sha512-KqFl6pOgOW+Y6wJgu80rHpo2/3H07vr8ntR9rkkFIRETewbf5GaYYcakYfiKz89K+sLsuPkQIZaXDMjUObZwWg==", + "dev": true + }, + "node_modules/didyoumean": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/didyoumean/-/didyoumean-1.2.2.tgz", + "integrity": "sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==", + "dev": true + }, + "node_modules/diff-sequences": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-29.6.3.tgz", + "integrity": "sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==", + "dev": true, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/dir-glob": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", + "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "dev": true, + "dependencies": { + "path-type": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/dlv": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/dlv/-/dlv-1.1.3.tgz", + "integrity": "sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==", + "dev": true + }, + "node_modules/doctrine": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", + "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", + "dev": true, + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=6.0.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==", + "dev": true, + "dependencies": { + "safe-buffer": "^5.0.1" + } + }, + "node_modules/electron-to-chromium": { + "version": "1.4.588", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.588.tgz", + "integrity": "sha512-soytjxwbgcCu7nh5Pf4S2/4wa6UIu+A3p03U2yVr53qGxi1/VTR3ENI+p50v+UxqqZAfl48j3z55ud7VHIOr9w==", + "dev": true + }, + "node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "node_modules/es6-promise": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-3.3.1.tgz", + "integrity": "sha512-SOp9Phqvqn7jtEUxPWdWfWoLmyt2VaJ6MpvP9Comy1MceMXqE6bxvaTu4iaxpYYPzhny28Lc+M87/c2cPK6lDg==", + "dev": true + }, + "node_modules/esbuild": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.18.20.tgz", + "integrity": "sha512-ceqxoedUrcayh7Y7ZX6NdbbDzGROiyVBgC4PriJThBKSVPWnnFHZAkfI1lJT8QFkOwH4qOS2SJkS4wvpGl8BpA==", + "dev": true, + "hasInstallScript": true, + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=12" + }, + "optionalDependencies": { + "@esbuild/android-arm": "0.18.20", + "@esbuild/android-arm64": "0.18.20", + "@esbuild/android-x64": "0.18.20", + "@esbuild/darwin-arm64": "0.18.20", + "@esbuild/darwin-x64": "0.18.20", + "@esbuild/freebsd-arm64": "0.18.20", + "@esbuild/freebsd-x64": "0.18.20", + "@esbuild/linux-arm": "0.18.20", + "@esbuild/linux-arm64": "0.18.20", + "@esbuild/linux-ia32": "0.18.20", + "@esbuild/linux-loong64": "0.18.20", + "@esbuild/linux-mips64el": "0.18.20", + "@esbuild/linux-ppc64": "0.18.20", + "@esbuild/linux-riscv64": "0.18.20", + "@esbuild/linux-s390x": "0.18.20", + "@esbuild/linux-x64": "0.18.20", + "@esbuild/netbsd-x64": "0.18.20", + "@esbuild/openbsd-x64": "0.18.20", + "@esbuild/sunos-x64": "0.18.20", + "@esbuild/win32-arm64": "0.18.20", + "@esbuild/win32-ia32": "0.18.20", + "@esbuild/win32-x64": "0.18.20" + } + }, + "node_modules/escalade": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", + "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint": { + "version": "8.54.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.54.0.tgz", + "integrity": "sha512-NY0DfAkM8BIZDVl6PgSa1ttZbx3xHgJzSNJKYcQglem6CppHyMhRIQkBVSSMaSRnLhig3jsDbEzOjwCVt4AmmA==", + "dev": true, + "dependencies": { + "@eslint-community/eslint-utils": "^4.2.0", + "@eslint-community/regexpp": "^4.6.1", + "@eslint/eslintrc": "^2.1.3", + "@eslint/js": "8.54.0", + "@humanwhocodes/config-array": "^0.11.13", + "@humanwhocodes/module-importer": "^1.0.1", + "@nodelib/fs.walk": "^1.2.8", + "@ungap/structured-clone": "^1.2.0", + "ajv": "^6.12.4", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.2", + "debug": "^4.3.2", + "doctrine": "^3.0.0", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^7.2.2", + "eslint-visitor-keys": "^3.4.3", + "espree": "^9.6.1", + "esquery": "^1.4.2", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^6.0.1", + "find-up": "^5.0.0", + "glob-parent": "^6.0.2", + "globals": "^13.19.0", + "graphemer": "^1.4.0", + "ignore": "^5.2.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "is-path-inside": "^3.0.3", + "js-yaml": "^4.1.0", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.4.1", + "lodash.merge": "^4.6.2", + "minimatch": "^3.1.2", + "natural-compare": "^1.4.0", + "optionator": "^0.9.3", + "strip-ansi": "^6.0.1", + "text-table": "^0.2.0" + }, + "bin": { + "eslint": "bin/eslint.js" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-compat-utils": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/eslint-compat-utils/-/eslint-compat-utils-0.1.2.tgz", + "integrity": "sha512-Jia4JDldWnFNIru1Ehx1H5s9/yxiRHY/TimCuUc0jNexew3cF1gI6CYZil1ociakfWO3rRqFjl1mskBblB3RYg==", + "dev": true, + "engines": { + "node": ">=12" + }, + "peerDependencies": { + "eslint": ">=6.0.0" + } + }, + "node_modules/eslint-config-prettier": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-9.0.0.tgz", + "integrity": "sha512-IcJsTkJae2S35pRsRAwoCE+925rJJStOdkKnLVgtE+tEpqU0EVVM7OqrwxqgptKdX29NUwC82I5pXsGFIgSevw==", + "dev": true, + "bin": { + "eslint-config-prettier": "bin/cli.js" + }, + "peerDependencies": { + "eslint": ">=7.0.0" + } + }, + "node_modules/eslint-plugin-svelte": { + "version": "2.35.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-svelte/-/eslint-plugin-svelte-2.35.0.tgz", + "integrity": "sha512-3WDFxNrkXaMlpqoNo3M1ZOQuoFLMO9+bdnN6oVVXaydXC7nzCJuGy9a0zqoNDHMSRPYt0Rqo6hIdHMEaI5sQnw==", + "dev": true, + "dependencies": { + "@eslint-community/eslint-utils": "^4.2.0", + "@jridgewell/sourcemap-codec": "^1.4.14", + "debug": "^4.3.1", + "eslint-compat-utils": "^0.1.2", + "esutils": "^2.0.3", + "known-css-properties": "^0.29.0", + "postcss": "^8.4.5", + "postcss-load-config": "^3.1.4", + "postcss-safe-parser": "^6.0.0", + "postcss-selector-parser": "^6.0.11", + "semver": "^7.5.3", + "svelte-eslint-parser": ">=0.33.0 <1.0.0" + }, + "engines": { + "node": "^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ota-meshi" + }, + "peerDependencies": { + "eslint": "^7.0.0 || ^8.0.0-0", + "svelte": "^3.37.0 || ^4.0.0" + }, + "peerDependenciesMeta": { + "svelte": { + "optional": true + } + } + }, + "node_modules/eslint-plugin-svelte/node_modules/postcss-selector-parser": { + "version": "6.0.13", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.13.tgz", + "integrity": "sha512-EaV1Gl4mUEV4ddhDnv/xtj7sxwrwxdetHdWUGnT4VJQf+4d05v6lHYZr8N573k5Z0BViss7BDhfWtKS3+sfAqQ==", + "dev": true, + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/eslint-scope": { + "version": "7.2.2", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz", + "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==", + "dev": true, + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-visitor-keys": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", + "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/esm-env": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/esm-env/-/esm-env-1.0.0.tgz", + "integrity": "sha512-Cf6VksWPsTuW01vU9Mk/3vRue91Zevka5SjyNf3nEpokFRuqt/KjUQoGAwq9qMmhpLTHmXzSIrFRw8zxWzmFBA==", + "dev": true + }, + "node_modules/espree": { + "version": "9.6.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz", + "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==", + "dev": true, + "dependencies": { + "acorn": "^8.9.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^3.4.1" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/esquery": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.5.0.tgz", + "integrity": "sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==", + "dev": true, + "dependencies": { + "estraverse": "^5.1.0" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "dev": true, + "dependencies": { + "estraverse": "^5.2.0" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estree-walker": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-3.0.3.tgz", + "integrity": "sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==", + "dev": true, + "dependencies": { + "@types/estree": "^1.0.0" + } + }, + "node_modules/esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "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==", + "dev": true + }, + "node_modules/fast-glob": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz", + "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==", + "dev": true, + "dependencies": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" + }, + "engines": { + "node": ">=8.6.0" + } + }, + "node_modules/fast-glob/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/fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true + }, + "node_modules/fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", + "dev": true + }, + "node_modules/fastq": { + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.15.0.tgz", + "integrity": "sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==", + "dev": true, + "dependencies": { + "reusify": "^1.0.4" + } + }, + "node_modules/file-entry-cache": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", + "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", + "dev": true, + "dependencies": { + "flat-cache": "^3.0.4" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "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/find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "dev": true, + "dependencies": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/flat-cache": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.2.0.tgz", + "integrity": "sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==", + "dev": true, + "dependencies": { + "flatted": "^3.2.9", + "keyv": "^4.5.3", + "rimraf": "^3.0.2" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/flatted": { + "version": "3.2.9", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.9.tgz", + "integrity": "sha512-36yxDn5H7OFZQla0/jFJmbIKTdZAQHngCedGxiMmpNfEZM0sdEeT+WczLQrjK6D7o2aiyLYDnkw0R3JK0Qv1RQ==", + "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==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/RubenVerborgh" + } + ], + "engines": { + "node": ">=4.0" + }, + "peerDependenciesMeta": { + "debug": { + "optional": true + } + } + }, + "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/fraction.js": { + "version": "4.3.7", + "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.3.7.tgz", + "integrity": "sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==", + "dev": true, + "engines": { + "node": "*" + }, + "funding": { + "type": "patreon", + "url": "https://github.com/sponsors/rawify" + } + }, + "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==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "dev": true, + "engines": { + "node": "6.* || 8.* || >= 10.*" + } + }, + "node_modules/get-func-name": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.2.tgz", + "integrity": "sha512-8vXOvuE167CtIc3OyItco7N/dpRtBbYOsPsXCz7X/PMnlGjYjSGuZJgM1Y7mmew7BKf9BqvLX2tnOVy1BBUsxQ==", + "dev": true, + "engines": { + "node": "*" + } + }, + "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": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.3" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/globals": { + "version": "13.23.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.23.0.tgz", + "integrity": "sha512-XAmF0RjlrjY23MA51q3HltdlGxUpXPvg0GioKiD9X6HD28iMjo2dKC8Vqwm7lne4GNr78+RHTfliktR6ZH09wA==", + "dev": true, + "dependencies": { + "type-fest": "^0.20.2" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/globalyzer": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/globalyzer/-/globalyzer-0.1.0.tgz", + "integrity": "sha512-40oNTM9UfG6aBmuKxk/giHn5nQ8RVz/SS4Ir6zgzOv9/qC3kKZ9v4etGTcJbEl/NyVQH7FGU7d+X1egr57Md2Q==", + "dev": true + }, + "node_modules/globby": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", + "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", + "dev": true, + "dependencies": { + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.2.9", + "ignore": "^5.2.0", + "merge2": "^1.4.1", + "slash": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/globrex": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/globrex/-/globrex-0.1.2.tgz", + "integrity": "sha512-uHJgbwAMwNFf5mLst7IWLNg14x1CkeqglJb/K3doi4dw6q2IvAAmM/Y81kevy83wP+Sst+nutFTYOGg3d1lsxg==", + "dev": true + }, + "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==", + "dev": true + }, + "node_modules/graphemer": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", + "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==", + "dev": true + }, + "node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/hasown": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.0.tgz", + "integrity": "sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA==", + "dev": true, + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/ignore": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.0.tgz", + "integrity": "sha512-g7dmpshy+gD7mh88OC9NwSGTKoc3kyLAZQRU1mt53Aw/vnvfXnbC+F/7F7QoYVKbV+KNvJx8wArewKy1vXMtlg==", + "dev": true, + "engines": { + "node": ">= 4" + } + }, + "node_modules/import-fresh": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", + "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", + "dev": true, + "dependencies": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/import-meta-resolve": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/import-meta-resolve/-/import-meta-resolve-4.0.0.tgz", + "integrity": "sha512-okYUR7ZQPH+efeuMJGlq4f8ubUgO50kByRPyt/Cy1Io4PSRsPjxME+YlVaCOx+NIToW7hCsZNFJyTPFFKepRSA==", + "dev": true, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", + "dev": true, + "engines": { + "node": ">=0.8.19" + } + }, + "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==", + "dev": true + }, + "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-builtin-module": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-3.2.1.tgz", + "integrity": "sha512-BSLE3HnV2syZ0FK0iMA/yUGplUeMmNz4AW5fnTunbCIqZi4vG3WjJT9FHMy5D69xmAYBHXQhJdALdpwVxV501A==", + "dev": true, + "dependencies": { + "builtin-modules": "^3.3.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-core-module": { + "version": "2.13.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.1.tgz", + "integrity": "sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==", + "dev": true, + "dependencies": { + "hasown": "^2.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "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-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "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-module": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-module/-/is-module-1.0.0.tgz", + "integrity": "sha512-51ypPSPCoTEIN9dy5Oy+h4pShgJmPCygKfyRCISBI+JoWT/2oJvK8QPxmwv7b/p239jXrm9M1mlQbyKJ5A152g==", + "dev": true + }, + "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-path-inside": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", + "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-reference": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/is-reference/-/is-reference-3.0.2.tgz", + "integrity": "sha512-v3rht/LgVcsdZa3O2Nqs+NMowLOxeOm7Ay9+/ARQ2F+qEoANRcqrjAZKGN0v8ymUetZGgkp26LTnGT7H0Qo9Pg==", + "dev": true, + "dependencies": { + "@types/estree": "*" + } + }, + "node_modules/is-retry-allowed": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/is-retry-allowed/-/is-retry-allowed-2.2.0.tgz", + "integrity": "sha512-XVm7LOeLpTW4jV19QSH38vkswxoLud8sQ57YwJVTPWdiaI9I8keEhGFpBlslyVsgdQy4Opg8QOLb8YRgsyZiQg==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "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/jiti": { + "version": "1.21.0", + "resolved": "https://registry.npmjs.org/jiti/-/jiti-1.21.0.tgz", + "integrity": "sha512-gFqAIbuKyyso/3G2qhiO2OM6shY6EPP/R0+mkDbyspxKazh8BXDC5FiFsUjlczgdNz/vfra0da2y+aHrusLG/Q==", + "dev": true, + "bin": { + "jiti": "bin/jiti.js" + } + }, + "node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dev": true, + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/json-buffer": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", + "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", + "dev": true + }, + "node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true + }, + "node_modules/json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", + "dev": true + }, + "node_modules/jsonc-parser": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.2.0.tgz", + "integrity": "sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w==", + "dev": true + }, + "node_modules/jsonwebtoken": { + "version": "9.0.2", + "resolved": "https://registry.npmjs.org/jsonwebtoken/-/jsonwebtoken-9.0.2.tgz", + "integrity": "sha512-PRp66vJ865SSqOlgqS8hujT5U4AOgMfhrwYIuIhfKaoSCZcirrmASQr8CX7cUg+RMih+hgznrjp99o+W4pJLHQ==", + "dev": true, + "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/jwa": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/jwa/-/jwa-1.4.1.tgz", + "integrity": "sha512-qiLX/xhEEFKUAJ6FiBMbes3w9ATzyk5W7Hvzpa/SLYdxNtng+gcurvrI7TbACjIXlsJyr05/S1oUhZrc63evQA==", + "dev": true, + "dependencies": { + "buffer-equal-constant-time": "1.0.1", + "ecdsa-sig-formatter": "1.0.11", + "safe-buffer": "^5.0.1" + } + }, + "node_modules/jws": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/jws/-/jws-3.2.2.tgz", + "integrity": "sha512-YHlZCB6lMTllWDtSPHz/ZXTsi8S00usEV6v1tjq8tOUZzw7DpSDWVXjXDre6ed1w/pd495ODpHZYSdkRTsa0HA==", + "dev": true, + "dependencies": { + "jwa": "^1.4.1", + "safe-buffer": "^5.0.1" + } + }, + "node_modules/keyv": { + "version": "4.5.4", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", + "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", + "dev": true, + "dependencies": { + "json-buffer": "3.0.1" + } + }, + "node_modules/kleur": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/kleur/-/kleur-4.1.5.tgz", + "integrity": "sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/known-css-properties": { + "version": "0.29.0", + "resolved": "https://registry.npmjs.org/known-css-properties/-/known-css-properties-0.29.0.tgz", + "integrity": "sha512-Ne7wqW7/9Cz54PDt4I3tcV+hAyat8ypyOGzYRJQfdxnnjeWsTxt1cy8pjvvKeI5kfXuyvULyeeAvwvvtAX3ayQ==", + "dev": true + }, + "node_modules/levn": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", + "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", + "dev": true, + "dependencies": { + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/lilconfig": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.1.0.tgz", + "integrity": "sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/lines-and-columns": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", + "dev": true + }, + "node_modules/local-pkg": { + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/local-pkg/-/local-pkg-0.4.3.tgz", + "integrity": "sha512-SFppqq5p42fe2qcZQqqEOiVRXl+WCP1MdT6k7BDEW1j++sp5fIY+/fdRQitvKgB5BrBcmrs5m/L0v2FrU5MY1g==", + "dev": true, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/locate-character": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/locate-character/-/locate-character-3.0.0.tgz", + "integrity": "sha512-SW13ws7BjaeJ6p7Q6CO2nchbYEc3X3J6WrmTTDto7yMPqVSZTUyY5Tjbid+Ab8gLnATtygYtiDIJGQRRn2ZOiA==", + "dev": true + }, + "node_modules/locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "dev": true, + "dependencies": { + "p-locate": "^5.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/lodash.castarray": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/lodash.castarray/-/lodash.castarray-4.4.0.tgz", + "integrity": "sha512-aVx8ztPv7/2ULbArGJ2Y42bG1mEQ5mGjpdvrbJcJFU3TbYybe+QlLS4pst9zV52ymy2in1KpFPiZnAOATxD4+Q==", + "dev": true + }, + "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==", + "dev": true + }, + "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==", + "dev": true + }, + "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==", + "dev": true + }, + "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==", + "dev": true + }, + "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==", + "dev": true + }, + "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==", + "dev": true + }, + "node_modules/lodash.merge": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", + "dev": true + }, + "node_modules/lodash.once": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/lodash.once/-/lodash.once-4.1.1.tgz", + "integrity": "sha512-Sb487aTOCr9drQVL8pIxOzVhafOjZN9UU54hiN8PU3uAiSV7lx1yYNpbNmex2PK6dSJoNTSJUUswT651yww3Mg==", + "dev": true + }, + "node_modules/loupe": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/loupe/-/loupe-2.3.7.tgz", + "integrity": "sha512-zSMINGVYkdpYSOBmLi0D1Uo7JU9nVdQKrHxC8eYlV+9YKK9WePqAlL7lSlorG/U2Fw1w0hTBmaa/jrQ3UbPHtA==", + "dev": true, + "dependencies": { + "get-func-name": "^2.0.1" + } + }, + "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==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/magic-string": { + "version": "0.30.5", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.5.tgz", + "integrity": "sha512-7xlpfBaQaP/T6Vh8MO/EqXSW5En6INHEvEXQiuff7Gku0PWjU3uf6w/j9o7O+SpB5fOAkrI5HeoNgwjEO0pFsA==", + "dev": true, + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.4.15" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/mdn-data": { + "version": "2.0.30", + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.30.tgz", + "integrity": "sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==", + "dev": true + }, + "node_modules/merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/micromatch": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", + "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", + "dev": true, + "dependencies": { + "braces": "^3.0.2", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "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==", + "dev": true, + "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==", + "dev": true, + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/min-indent": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/min-indent/-/min-indent-1.0.1.tgz", + "integrity": "sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/mini-svg-data-uri": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/mini-svg-data-uri/-/mini-svg-data-uri-1.4.4.tgz", + "integrity": "sha512-r9deDe9p5FJUPZAk3A59wGH7Ii9YrjjWw0jmw/liSbHl2CHiyXj6FcDXDu2K3TjVAXqiJdaw3xxwlZZr9E6nHg==", + "dev": true, + "bin": { + "mini-svg-data-uri": "cli.js" + } + }, + "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/mkdirp": { + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", + "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", + "dev": true, + "dependencies": { + "minimist": "^1.2.6" + }, + "bin": { + "mkdirp": "bin/cmd.js" + } + }, + "node_modules/mlly": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/mlly/-/mlly-1.4.2.tgz", + "integrity": "sha512-i/Ykufi2t1EZ6NaPLdfnZk2AX8cs0d+mTzVKuPfqPKPatxLApaBoxJQ9x1/uckXtrS/U5oisPMDkNs0yQTaBRg==", + "dev": true, + "dependencies": { + "acorn": "^8.10.0", + "pathe": "^1.1.1", + "pkg-types": "^1.0.3", + "ufo": "^1.3.0" + } + }, + "node_modules/mri": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/mri/-/mri-1.2.0.tgz", + "integrity": "sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/mrmime": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/mrmime/-/mrmime-1.0.1.tgz", + "integrity": "sha512-hzzEagAgDyoU1Q6yg5uI+AorQgdvMCur3FcKf7NhMKWsaYg+RnbTyHRa/9IlLF9rf455MOCtcqqrQQ83pPP7Uw==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "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==", + "dev": true + }, + "node_modules/mz": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz", + "integrity": "sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==", + "dev": true, + "dependencies": { + "any-promise": "^1.0.0", + "object-assign": "^4.0.1", + "thenify-all": "^1.0.0" + } + }, + "node_modules/nanoid": { + "version": "3.3.7", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz", + "integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", + "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==", + "dev": true, + "dependencies": { + "whatwg-url": "^5.0.0" + }, + "engines": { + "node": "4.x || >=6.0.0" + }, + "peerDependencies": { + "encoding": "^0.1.0" + }, + "peerDependenciesMeta": { + "encoding": { + "optional": true + } + } + }, + "node_modules/node-releases": { + "version": "2.0.13", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.13.tgz", + "integrity": "sha512-uYr7J37ae/ORWdZeQ1xxMJe3NtdmqMC/JZK+geofDrkLUApKRHPd18/TxtBOJ4A0/+uUIliorNrfYV6s1b02eQ==", + "dev": true + }, + "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/normalize-range": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", + "integrity": "sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==", + "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==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-hash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-3.0.0.tgz", + "integrity": "sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==", + "dev": true, + "engines": { + "node": ">= 6" + } + }, + "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==", + "dev": true, + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/optionator": { + "version": "0.9.3", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.3.tgz", + "integrity": "sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==", + "dev": true, + "dependencies": { + "@aashutoshrathi/word-wrap": "^1.2.3", + "deep-is": "^0.1.3", + "fast-levenshtein": "^2.0.6", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dev": true, + "dependencies": { + "yocto-queue": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "dev": true, + "dependencies": { + "p-limit": "^3.0.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "dev": true, + "dependencies": { + "callsites": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true, + "engines": { + "node": ">=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-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/pathe": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/pathe/-/pathe-1.1.1.tgz", + "integrity": "sha512-d+RQGp0MAYTIaDBIMmOfMwz3E+LOZnxx1HZd5R18mmCZY0QBlK0LDZfPc8FW8Ed2DlvsuE6PRjroDY+wg4+j/Q==", + "dev": true + }, + "node_modules/pathval": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/pathval/-/pathval-1.1.1.tgz", + "integrity": "sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/periscopic": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/periscopic/-/periscopic-3.1.0.tgz", + "integrity": "sha512-vKiQ8RRtkl9P+r/+oefh25C3fhybptkHKCZSPlcXiJux2tJF55GnEj3BVn4A5gKfq9NWWXXrxkHBwVPUfH0opw==", + "dev": true, + "dependencies": { + "@types/estree": "^1.0.0", + "estree-walker": "^3.0.0", + "is-reference": "^3.0.0" + } + }, + "node_modules/picocolors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", + "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", + "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/pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/pirates": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.6.tgz", + "integrity": "sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==", + "dev": true, + "engines": { + "node": ">= 6" + } + }, + "node_modules/pkg-types": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/pkg-types/-/pkg-types-1.0.3.tgz", + "integrity": "sha512-nN7pYi0AQqJnoLPC9eHFQ8AcyaixBUOwvqc5TDnIKCMEE6I0y8P7OKA7fPexsXGCGxQDl/cmrLAp26LhcwxZ4A==", + "dev": true, + "dependencies": { + "jsonc-parser": "^3.2.0", + "mlly": "^1.2.0", + "pathe": "^1.1.0" + } + }, + "node_modules/postcss": { + "version": "8.4.31", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.31.tgz", + "integrity": "sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "nanoid": "^3.3.6", + "picocolors": "^1.0.0", + "source-map-js": "^1.0.2" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/postcss-import": { + "version": "15.1.0", + "resolved": "https://registry.npmjs.org/postcss-import/-/postcss-import-15.1.0.tgz", + "integrity": "sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==", + "dev": true, + "dependencies": { + "postcss-value-parser": "^4.0.0", + "read-cache": "^1.0.0", + "resolve": "^1.1.7" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "postcss": "^8.0.0" + } + }, + "node_modules/postcss-js": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-js/-/postcss-js-4.0.1.tgz", + "integrity": "sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw==", + "dev": true, + "dependencies": { + "camelcase-css": "^2.0.1" + }, + "engines": { + "node": "^12 || ^14 || >= 16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + "peerDependencies": { + "postcss": "^8.4.21" + } + }, + "node_modules/postcss-load-config": { + "version": "3.1.4", + "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-3.1.4.tgz", + "integrity": "sha512-6DiM4E7v4coTE4uzA8U//WhtPwyhiim3eyjEMFCnUpzbrkK9wJHgKDT2mR+HbtSrd/NubVaYTOpSpjUl8NQeRg==", + "dev": true, + "dependencies": { + "lilconfig": "^2.0.5", + "yaml": "^1.10.2" + }, + "engines": { + "node": ">= 10" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + "peerDependencies": { + "postcss": ">=8.0.9", + "ts-node": ">=9.0.0" + }, + "peerDependenciesMeta": { + "postcss": { + "optional": true + }, + "ts-node": { + "optional": true + } + } + }, + "node_modules/postcss-nested": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/postcss-nested/-/postcss-nested-6.0.1.tgz", + "integrity": "sha512-mEp4xPMi5bSWiMbsgoPfcP74lsWLHkQbZc3sY+jWYd65CUwXrUaTp0fmNpa01ZcETKlIgUdFN/MpS2xZtqL9dQ==", + "dev": true, + "dependencies": { + "postcss-selector-parser": "^6.0.11" + }, + "engines": { + "node": ">=12.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + "peerDependencies": { + "postcss": "^8.2.14" + } + }, + "node_modules/postcss-nested/node_modules/postcss-selector-parser": { + "version": "6.0.13", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.13.tgz", + "integrity": "sha512-EaV1Gl4mUEV4ddhDnv/xtj7sxwrwxdetHdWUGnT4VJQf+4d05v6lHYZr8N573k5Z0BViss7BDhfWtKS3+sfAqQ==", + "dev": true, + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-safe-parser": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/postcss-safe-parser/-/postcss-safe-parser-6.0.0.tgz", + "integrity": "sha512-FARHN8pwH+WiS2OPCxJI8FuRJpTVnn6ZNFiqAM2aeW2LwTHWWmWgIyKC6cUo0L8aeKiF/14MNvnpls6R2PBeMQ==", + "dev": true, + "engines": { + "node": ">=12.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + "peerDependencies": { + "postcss": "^8.3.3" + } + }, + "node_modules/postcss-scss": { + "version": "4.0.9", + "resolved": "https://registry.npmjs.org/postcss-scss/-/postcss-scss-4.0.9.tgz", + "integrity": "sha512-AjKOeiwAitL/MXxQW2DliT28EKukvvbEWx3LBmJIRN8KfBGZbRTxNYW0kSqi1COiTZ57nZ9NW06S6ux//N1c9A==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss-scss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "engines": { + "node": ">=12.0" + }, + "peerDependencies": { + "postcss": "^8.4.29" + } + }, + "node_modules/postcss-selector-parser": { + "version": "6.0.10", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.10.tgz", + "integrity": "sha512-IQ7TZdoaqbT+LCpShg46jnZVlhWD2w6iQYAcYXfHARZ7X1t/UGhhceQDs5X0cGqKvYlHNOuv7Oa1xmb0oQuA3w==", + "dev": true, + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-value-parser": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", + "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==", + "dev": true + }, + "node_modules/prelude-ls": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", + "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", + "dev": true, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/prettier": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.1.0.tgz", + "integrity": "sha512-TQLvXjq5IAibjh8EpBIkNKxO749UEWABoiIZehEPiY4GNpVdhaFKqSTu+QrlU6D2dPAfubRmtJTi4K4YkQ5eXw==", + "dev": true, + "bin": { + "prettier": "bin/prettier.cjs" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/prettier/prettier?sponsor=1" + } + }, + "node_modules/prettier-plugin-svelte": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/prettier-plugin-svelte/-/prettier-plugin-svelte-3.1.0.tgz", + "integrity": "sha512-96+AZxs2ESqIFA9j+o+DHqY+BsUglezfl553LQd6VOtTyJq5GPuBEb3ElxF2cerFzKlYKttlH/VcVmRNj5oc3A==", + "dev": true, + "peerDependencies": { + "prettier": "^3.0.0", + "svelte": "^3.2.0 || ^4.0.0-next.0 || ^5.0.0-next.0" + } + }, + "node_modules/pretty-format": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz", + "integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==", + "dev": true, + "dependencies": { + "@jest/schemas": "^29.6.3", + "ansi-styles": "^5.0.0", + "react-is": "^18.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/pretty-format/node_modules/ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "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==", + "dev": true + }, + "node_modules/punycode": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", + "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/purgecss": { + "version": "6.0.0-alpha.0", + "resolved": "https://registry.npmjs.org/purgecss/-/purgecss-6.0.0-alpha.0.tgz", + "integrity": "sha512-UC7d7uIyZsky+srEsSXny9BkbTcVn3ZtBCNX3rW3DsqJKhvUXFRpufA4ktcHzWF0+JLZgmsqjUm/8R82x9bHpw==", + "dev": true, + "dependencies": { + "commander": "^10.0.0", + "glob": "^8.0.3", + "postcss": "^8.4.4", + "postcss-selector-parser": "^6.0.7" + }, + "bin": { + "purgecss": "bin/purgecss.js" + } + }, + "node_modules/purgecss/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/purgecss/node_modules/commander": { + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-10.0.1.tgz", + "integrity": "sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==", + "dev": true, + "engines": { + "node": ">=14" + } + }, + "node_modules/purgecss/node_modules/glob": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-8.1.0.tgz", + "integrity": "sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==", + "dev": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^5.0.1", + "once": "^1.3.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/purgecss/node_modules/minimatch": { + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", + "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", + "dev": true, + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "dev": true, + "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/react-is": { + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", + "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==", + "dev": true + }, + "node_modules/read-cache": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz", + "integrity": "sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==", + "dev": true, + "dependencies": { + "pify": "^2.3.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/regenerator-runtime": { + "version": "0.14.0", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.0.tgz", + "integrity": "sha512-srw17NI0TUWHuGa5CFGGmhfNIeja30WMBfbslPNhf6JrqQlLN5gcrvig1oqPxiVaXb0oW0XRKtH6Nngs5lKCIA==", + "dev": true + }, + "node_modules/require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "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/resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "dev": true, + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } + }, + "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/rollup": { + "version": "3.29.4", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-3.29.4.tgz", + "integrity": "sha512-oWzmBZwvYrU0iJHtDmhsm662rC15FRXmcjCk1xD771dFDx5jJ02ufAQQTn0etB2emNk4J9EZg/yWKpsn9BWGRw==", + "dev": true, + "bin": { + "rollup": "dist/bin/rollup" + }, + "engines": { + "node": ">=14.18.0", + "npm": ">=8.0.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "dev": true, + "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": { + "queue-microtask": "^1.2.2" + } + }, + "node_modules/sade": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/sade/-/sade-1.8.1.tgz", + "integrity": "sha512-xal3CZX1Xlo/k4ApwCFrHVACi9fBqJ7V+mwhBsuf/1IOKbBy098Fex+Wa/5QMubw09pSZ/u8EY8PWgevJsXp1A==", + "dev": true, + "dependencies": { + "mri": "^1.1.0" + }, + "engines": { + "node": ">=6" + } + }, + "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==", + "dev": true, + "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/sailpoint-api-client": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/sailpoint-api-client/-/sailpoint-api-client-1.3.0.tgz", + "integrity": "sha512-zK5raCM97VmYcuehj/yCGLlm+SWAsm9aGFgabveenQ6WVNqzQvPZZvG2h3wMV50wqmNKIGmpr4OwEKywOuXrtw==", + "dev": true, + "dependencies": { + "axios": "^1.5.1", + "axios-retry": "^3.4.0", + "js-yaml": "^4.1.0" + } + }, + "node_modules/sander": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/sander/-/sander-0.5.1.tgz", + "integrity": "sha512-3lVqBir7WuKDHGrKRDn/1Ye3kwpXaDOMsiRP1wd6wpZW56gJhsbp5RqQpA6JG/P+pkXizygnr1dKR8vzWaVsfA==", + "dev": true, + "dependencies": { + "es6-promise": "^3.1.2", + "graceful-fs": "^4.1.3", + "mkdirp": "^0.5.1", + "rimraf": "^2.5.2" + } + }, + "node_modules/sander/node_modules/rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "dev": true, + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + } + }, + "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==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/set-cookie-parser": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/set-cookie-parser/-/set-cookie-parser-2.6.0.tgz", + "integrity": "sha512-RVnVQxTXuerk653XfuliOxBP81Sf0+qfQE73LIYKcyMYHG94AuH0kgrQpRDuTZnSmjpysHmzxJXKNfa6PjFhyQ==", + "dev": true + }, + "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/siginfo": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/siginfo/-/siginfo-2.0.0.tgz", + "integrity": "sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==", + "dev": true + }, + "node_modules/sirv": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/sirv/-/sirv-2.0.3.tgz", + "integrity": "sha512-O9jm9BsID1P+0HOi81VpXPoDxYP374pkOLzACAoyUQ/3OUVndNpsz6wMnY2z+yOxzbllCKZrM+9QrWsv4THnyA==", + "dev": true, + "dependencies": { + "@polka/url": "^1.0.0-next.20", + "mrmime": "^1.0.0", + "totalist": "^3.0.0" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/sorcery": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/sorcery/-/sorcery-0.11.0.tgz", + "integrity": "sha512-J69LQ22xrQB1cIFJhPfgtLuI6BpWRiWu1Y3vSsIwK/eAScqJxd/+CJlUuHQRdX2C9NGFamq+KqNywGgaThwfHw==", + "dev": true, + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.4.14", + "buffer-crc32": "^0.2.5", + "minimist": "^1.2.0", + "sander": "^0.5.0" + }, + "bin": { + "sorcery": "bin/sorcery" + } + }, + "node_modules/source-map-js": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", + "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/stackback": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/stackback/-/stackback-0.0.2.tgz", + "integrity": "sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==", + "dev": true + }, + "node_modules/std-env": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/std-env/-/std-env-3.5.0.tgz", + "integrity": "sha512-JGUEaALvL0Mf6JCfYnJOTcobY+Nc7sG/TemDRBqCA0wEr4DER7zDchaaixTlmOxAjG1uRJmX82EQcxwTQTkqVA==", + "dev": true + }, + "node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-indent": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-3.0.0.tgz", + "integrity": "sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==", + "dev": true, + "dependencies": { + "min-indent": "^1.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/strip-literal": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/strip-literal/-/strip-literal-1.3.0.tgz", + "integrity": "sha512-PugKzOsyXpArk0yWmUwqOZecSO0GH0bPoctLcqNDH9J04pVW3lflYE0ujElBGTloevcxF5MofAOZ7C5l2b+wLg==", + "dev": true, + "dependencies": { + "acorn": "^8.10.0" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/sucrase": { + "version": "3.34.0", + "resolved": "https://registry.npmjs.org/sucrase/-/sucrase-3.34.0.tgz", + "integrity": "sha512-70/LQEZ07TEcxiU2dz51FKaE6hCTWC6vr7FOk3Gr0U60C3shtAN+H+BFr9XlYe5xqf3RA8nrc+VIwzCfnxuXJw==", + "dev": true, + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.2", + "commander": "^4.0.0", + "glob": "7.1.6", + "lines-and-columns": "^1.1.6", + "mz": "^2.7.0", + "pirates": "^4.0.1", + "ts-interface-checker": "^0.1.9" + }, + "bin": { + "sucrase": "bin/sucrase", + "sucrase-node": "bin/sucrase-node" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/sucrase/node_modules/glob": { + "version": "7.1.6", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", + "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", + "dev": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "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/svelte": { + "version": "4.2.5", + "resolved": "https://registry.npmjs.org/svelte/-/svelte-4.2.5.tgz", + "integrity": "sha512-P9YPKsGkNdw4OJbtpd1uzimQHPj7Ai2sPcOHmmD6VgkFhFDmcYevQi7vE4cQ1g8/Vs64aL2TwMoCNFAzv7TPaQ==", + "dev": true, + "dependencies": { + "@ampproject/remapping": "^2.2.1", + "@jridgewell/sourcemap-codec": "^1.4.15", + "@jridgewell/trace-mapping": "^0.3.18", + "acorn": "^8.9.0", + "aria-query": "^5.3.0", + "axobject-query": "^3.2.1", + "code-red": "^1.0.3", + "css-tree": "^2.3.1", + "estree-walker": "^3.0.3", + "is-reference": "^3.0.1", + "locate-character": "^3.0.0", + "magic-string": "^0.30.4", + "periscopic": "^3.1.0" + }, + "engines": { + "node": ">=16" + } + }, + "node_modules/svelte-check": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/svelte-check/-/svelte-check-3.6.0.tgz", + "integrity": "sha512-8VfqhfuRJ1sKW+o8isH2kPi0RhjXH1nNsIbCFGyoUHG+ZxVxHYRKcb+S8eaL/1tyj3VGvWYx3Y5+oCUsJgnzcw==", + "dev": true, + "dependencies": { + "@jridgewell/trace-mapping": "^0.3.17", + "chokidar": "^3.4.1", + "fast-glob": "^3.2.7", + "import-fresh": "^3.2.1", + "picocolors": "^1.0.0", + "sade": "^1.7.4", + "svelte-preprocess": "^5.1.0", + "typescript": "^5.0.3" + }, + "bin": { + "svelte-check": "bin/svelte-check" + }, + "peerDependencies": { + "svelte": "^3.55.0 || ^4.0.0-next.0 || ^4.0.0 || ^5.0.0-next.0" + } + }, + "node_modules/svelte-eslint-parser": { + "version": "0.33.1", + "resolved": "https://registry.npmjs.org/svelte-eslint-parser/-/svelte-eslint-parser-0.33.1.tgz", + "integrity": "sha512-vo7xPGTlKBGdLH8T5L64FipvTrqv3OQRx9d2z5X05KKZDlF4rQk8KViZO4flKERY+5BiVdOh7zZ7JGJWo5P0uA==", + "dev": true, + "dependencies": { + "eslint-scope": "^7.0.0", + "eslint-visitor-keys": "^3.0.0", + "espree": "^9.0.0", + "postcss": "^8.4.29", + "postcss-scss": "^4.0.8" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ota-meshi" + }, + "peerDependencies": { + "svelte": "^3.37.0 || ^4.0.0" + }, + "peerDependenciesMeta": { + "svelte": { + "optional": true + } + } + }, + "node_modules/svelte-hmr": { + "version": "0.15.3", + "resolved": "https://registry.npmjs.org/svelte-hmr/-/svelte-hmr-0.15.3.tgz", + "integrity": "sha512-41snaPswvSf8TJUhlkoJBekRrABDXDMdpNpT2tfHIv4JuhgvHqLMhEPGtaQn0BmbNSTkuz2Ed20DF2eHw0SmBQ==", + "dev": true, + "engines": { + "node": "^12.20 || ^14.13.1 || >= 16" + }, + "peerDependencies": { + "svelte": "^3.19.0 || ^4.0.0" + } + }, + "node_modules/svelte-preprocess": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/svelte-preprocess/-/svelte-preprocess-5.1.0.tgz", + "integrity": "sha512-EkErPiDzHAc0k2MF5m6vBNmRUh338h2myhinUw/xaqsLs7/ZvsgREiLGj03VrSzbY/TB5ZXgBOsKraFee5yceA==", + "dev": true, + "hasInstallScript": true, + "dependencies": { + "@types/pug": "^2.0.6", + "detect-indent": "^6.1.0", + "magic-string": "^0.27.0", + "sorcery": "^0.11.0", + "strip-indent": "^3.0.0" + }, + "engines": { + "node": ">= 14.10.0" + }, + "peerDependencies": { + "@babel/core": "^7.10.2", + "coffeescript": "^2.5.1", + "less": "^3.11.3 || ^4.0.0", + "postcss": "^7 || ^8", + "postcss-load-config": "^2.1.0 || ^3.0.0 || ^4.0.0", + "pug": "^3.0.0", + "sass": "^1.26.8", + "stylus": "^0.55.0", + "sugarss": "^2.0.0 || ^3.0.0 || ^4.0.0", + "svelte": "^3.23.0 || ^4.0.0-next.0 || ^4.0.0 || ^5.0.0-next.0", + "typescript": ">=3.9.5 || ^4.0.0 || ^5.0.0" + }, + "peerDependenciesMeta": { + "@babel/core": { + "optional": true + }, + "coffeescript": { + "optional": true + }, + "less": { + "optional": true + }, + "postcss": { + "optional": true + }, + "postcss-load-config": { + "optional": true + }, + "pug": { + "optional": true + }, + "sass": { + "optional": true + }, + "stylus": { + "optional": true + }, + "sugarss": { + "optional": true + }, + "typescript": { + "optional": true + } + } + }, + "node_modules/svelte-preprocess/node_modules/magic-string": { + "version": "0.27.0", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.27.0.tgz", + "integrity": "sha512-8UnnX2PeRAPZuN12svgR9j7M1uWMovg/CEnIwIG0LFkXSJJe4PdfUGiTGl8V9bsBHFUtfVINcSyYxd7q+kx9fA==", + "dev": true, + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.4.13" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/tailwindcss": { + "version": "3.3.5", + "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.3.5.tgz", + "integrity": "sha512-5SEZU4J7pxZgSkv7FP1zY8i2TIAOooNZ1e/OGtxIEv6GltpoiXUqWvLy89+a10qYTB1N5Ifkuw9lqQkN9sscvA==", + "dev": true, + "dependencies": { + "@alloc/quick-lru": "^5.2.0", + "arg": "^5.0.2", + "chokidar": "^3.5.3", + "didyoumean": "^1.2.2", + "dlv": "^1.1.3", + "fast-glob": "^3.3.0", + "glob-parent": "^6.0.2", + "is-glob": "^4.0.3", + "jiti": "^1.19.1", + "lilconfig": "^2.1.0", + "micromatch": "^4.0.5", + "normalize-path": "^3.0.0", + "object-hash": "^3.0.0", + "picocolors": "^1.0.0", + "postcss": "^8.4.23", + "postcss-import": "^15.1.0", + "postcss-js": "^4.0.1", + "postcss-load-config": "^4.0.1", + "postcss-nested": "^6.0.1", + "postcss-selector-parser": "^6.0.11", + "resolve": "^1.22.2", + "sucrase": "^3.32.0" + }, + "bin": { + "tailwind": "lib/cli.js", + "tailwindcss": "lib/cli.js" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/tailwindcss/node_modules/postcss-load-config": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-4.0.1.tgz", + "integrity": "sha512-vEJIc8RdiBRu3oRAI0ymerOn+7rPuMvRXslTvZUKZonDHFIczxztIyJ1urxM1x9JXEikvpWWTUUqal5j/8QgvA==", + "dev": true, + "dependencies": { + "lilconfig": "^2.0.5", + "yaml": "^2.1.1" + }, + "engines": { + "node": ">= 14" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + "peerDependencies": { + "postcss": ">=8.0.9", + "ts-node": ">=9.0.0" + }, + "peerDependenciesMeta": { + "postcss": { + "optional": true + }, + "ts-node": { + "optional": true + } + } + }, + "node_modules/tailwindcss/node_modules/postcss-selector-parser": { + "version": "6.0.13", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.13.tgz", + "integrity": "sha512-EaV1Gl4mUEV4ddhDnv/xtj7sxwrwxdetHdWUGnT4VJQf+4d05v6lHYZr8N573k5Z0BViss7BDhfWtKS3+sfAqQ==", + "dev": true, + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/tailwindcss/node_modules/yaml": { + "version": "2.3.4", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.3.4.tgz", + "integrity": "sha512-8aAvwVUSHpfEqTQ4w/KMlf3HcRdt50E5ODIQJBw1fQ5RL34xabzxtUlzTXVqc4rkZsPbvrXKWnABCD7kWSmocA==", + "dev": true, + "engines": { + "node": ">= 14" + } + }, + "node_modules/text-table": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", + "dev": true + }, + "node_modules/thenify": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/thenify/-/thenify-3.3.1.tgz", + "integrity": "sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==", + "dev": true, + "dependencies": { + "any-promise": "^1.0.0" + } + }, + "node_modules/thenify-all": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/thenify-all/-/thenify-all-1.6.0.tgz", + "integrity": "sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==", + "dev": true, + "dependencies": { + "thenify": ">= 3.1.0 < 4" + }, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/tiny-glob": { + "version": "0.2.9", + "resolved": "https://registry.npmjs.org/tiny-glob/-/tiny-glob-0.2.9.tgz", + "integrity": "sha512-g/55ssRPUjShh+xkfx9UPDXqhckHEsHr4Vd9zX55oSdGZc/MD0m3sferOkwWtp98bv+kcVfEHtRJgBVJzelrzg==", + "dev": true, + "dependencies": { + "globalyzer": "0.1.0", + "globrex": "^0.1.2" + } + }, + "node_modules/tinybench": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/tinybench/-/tinybench-2.5.1.tgz", + "integrity": "sha512-65NKvSuAVDP/n4CqH+a9w2kTlLReS9vhsAP06MWx+/89nMinJyB2icyl58RIcqCmIggpojIGeuJGhjU1aGMBSg==", + "dev": true + }, + "node_modules/tinypool": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/tinypool/-/tinypool-0.7.0.tgz", + "integrity": "sha512-zSYNUlYSMhJ6Zdou4cJwo/p7w5nmAH17GRfU/ui3ctvjXFErXXkruT4MWW6poDeXgCaIBlGLrfU6TbTXxyGMww==", + "dev": true, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/tinyspy": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/tinyspy/-/tinyspy-2.2.0.tgz", + "integrity": "sha512-d2eda04AN/cPOR89F7Xv5bK/jrQEhmcLFe6HFldoeO9AJtps+fqEnh486vnT/8y4bw38pSyxDcTCAq+Ks2aJTg==", + "dev": true, + "engines": { + "node": ">=14.0.0" + } + }, + "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/totalist": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/totalist/-/totalist-3.0.1.tgz", + "integrity": "sha512-sf4i37nQ2LBx4m3wB74y+ubopq6W/dIzXg0FDGjsYnZHVa1Da8FH853wlL2gtUhg+xJXjfk3kUZS3BRoQeoQBQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/tr46": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", + "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==", + "dev": true + }, + "node_modules/ts-api-utils": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-1.0.3.tgz", + "integrity": "sha512-wNMeqtMz5NtwpT/UZGY5alT+VoKdSsOOP/kqHFcUW1P/VRhH2wJ48+DN2WwUliNbQ976ETwDL0Ifd2VVvgonvg==", + "dev": true, + "engines": { + "node": ">=16.13.0" + }, + "peerDependencies": { + "typescript": ">=4.2.0" + } + }, + "node_modules/ts-interface-checker": { + "version": "0.1.13", + "resolved": "https://registry.npmjs.org/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz", + "integrity": "sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==", + "dev": 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==", + "dev": true + }, + "node_modules/type-check": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", + "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", + "dev": true, + "dependencies": { + "prelude-ls": "^1.2.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/type-detect": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", + "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/typescript": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.2.2.tgz", + "integrity": "sha512-mI4WrpHsbCIcwT9cF4FZvr80QUeKvsUsUvKDoR+X/7XHQH98xYD8YHZg7ANtz2GtZt/CBq2QJ0thkGJMHfqc1w==", + "dev": true, + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=14.17" + } + }, + "node_modules/ufo": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/ufo/-/ufo-1.3.2.tgz", + "integrity": "sha512-o+ORpgGwaYQXgqGDwd+hkS4PuZ3QnmqMMxRuajK/a38L6fTpcE5GPIfrf+L/KemFzfUpeUQc1rRS1iDBozvnFA==", + "dev": true + }, + "node_modules/undici": { + "version": "5.26.5", + "resolved": "https://registry.npmjs.org/undici/-/undici-5.26.5.tgz", + "integrity": "sha512-cSb4bPFd5qgR7qr2jYAi0hlX9n5YKK2ONKkLFkxl+v/9BvC0sOpZjBHDBSXc5lWAf5ty9oZdRXytBIHzgUcerw==", + "dev": true, + "dependencies": { + "@fastify/busboy": "^2.0.0" + }, + "engines": { + "node": ">=14.0" + } + }, + "node_modules/undici-types": { + "version": "5.26.5", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz", + "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==", + "dev": true + }, + "node_modules/update-browserslist-db": { + "version": "1.0.13", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.13.tgz", + "integrity": "sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "escalade": "^3.1.1", + "picocolors": "^1.0.0" + }, + "bin": { + "update-browserslist-db": "cli.js" + }, + "peerDependencies": { + "browserslist": ">= 4.21.0" + } + }, + "node_modules/uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "dev": true, + "dependencies": { + "punycode": "^2.1.0" + } + }, + "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==", + "dev": true + }, + "node_modules/vite": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/vite/-/vite-4.5.0.tgz", + "integrity": "sha512-ulr8rNLA6rkyFAlVWw2q5YJ91v098AFQ2R0PRFwPzREXOUJQPtFUG0t+/ZikhaOCDqFoDhN6/v8Sq0o4araFAw==", + "dev": true, + "dependencies": { + "esbuild": "^0.18.10", + "postcss": "^8.4.27", + "rollup": "^3.27.1" + }, + "bin": { + "vite": "bin/vite.js" + }, + "engines": { + "node": "^14.18.0 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/vitejs/vite?sponsor=1" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + }, + "peerDependencies": { + "@types/node": ">= 14", + "less": "*", + "lightningcss": "^1.21.0", + "sass": "*", + "stylus": "*", + "sugarss": "*", + "terser": "^5.4.0" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "less": { + "optional": true + }, + "lightningcss": { + "optional": true + }, + "sass": { + "optional": true + }, + "stylus": { + "optional": true + }, + "sugarss": { + "optional": true + }, + "terser": { + "optional": true + } + } + }, + "node_modules/vite-node": { + "version": "0.34.6", + "resolved": "https://registry.npmjs.org/vite-node/-/vite-node-0.34.6.tgz", + "integrity": "sha512-nlBMJ9x6n7/Amaz6F3zJ97EBwR2FkzhBRxF5e+jE6LA3yi6Wtc2lyTij1OnDMIr34v5g/tVQtsVAzhT0jc5ygA==", + "dev": true, + "dependencies": { + "cac": "^6.7.14", + "debug": "^4.3.4", + "mlly": "^1.4.0", + "pathe": "^1.1.1", + "picocolors": "^1.0.0", + "vite": "^3.0.0 || ^4.0.0 || ^5.0.0-0" + }, + "bin": { + "vite-node": "vite-node.mjs" + }, + "engines": { + "node": ">=v14.18.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/vite-plugin-tailwind-purgecss": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/vite-plugin-tailwind-purgecss/-/vite-plugin-tailwind-purgecss-0.1.3.tgz", + "integrity": "sha512-VVz9fwKBEEFSbj/rKxtwtczvoSrIqbzbo6S+MT7gH0CsmKNwlx947VMoV8B085ocxGCuFlddOPRDszNXLi2nTQ==", + "dev": true, + "dependencies": { + "estree-walker": "^3.0.3", + "purgecss": "6.0.0-alpha.0" + }, + "peerDependencies": { + "vite": "^4.1.1" + } + }, + "node_modules/vitefu": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/vitefu/-/vitefu-0.2.5.tgz", + "integrity": "sha512-SgHtMLoqaeeGnd2evZ849ZbACbnwQCIwRH57t18FxcXoZop0uQu0uzlIhJBlF/eWVzuce0sHeqPcDo+evVcg8Q==", + "dev": true, + "peerDependencies": { + "vite": "^3.0.0 || ^4.0.0 || ^5.0.0" + }, + "peerDependenciesMeta": { + "vite": { + "optional": true + } + } + }, + "node_modules/vitest": { + "version": "0.34.6", + "resolved": "https://registry.npmjs.org/vitest/-/vitest-0.34.6.tgz", + "integrity": "sha512-+5CALsOvbNKnS+ZHMXtuUC7nL8/7F1F2DnHGjSsszX8zCjWSSviphCb/NuS9Nzf4Q03KyyDRBAXhF/8lffME4Q==", + "dev": true, + "dependencies": { + "@types/chai": "^4.3.5", + "@types/chai-subset": "^1.3.3", + "@types/node": "*", + "@vitest/expect": "0.34.6", + "@vitest/runner": "0.34.6", + "@vitest/snapshot": "0.34.6", + "@vitest/spy": "0.34.6", + "@vitest/utils": "0.34.6", + "acorn": "^8.9.0", + "acorn-walk": "^8.2.0", + "cac": "^6.7.14", + "chai": "^4.3.10", + "debug": "^4.3.4", + "local-pkg": "^0.4.3", + "magic-string": "^0.30.1", + "pathe": "^1.1.1", + "picocolors": "^1.0.0", + "std-env": "^3.3.3", + "strip-literal": "^1.0.1", + "tinybench": "^2.5.0", + "tinypool": "^0.7.0", + "vite": "^3.1.0 || ^4.0.0 || ^5.0.0-0", + "vite-node": "0.34.6", + "why-is-node-running": "^2.2.2" + }, + "bin": { + "vitest": "vitest.mjs" + }, + "engines": { + "node": ">=v14.18.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + }, + "peerDependencies": { + "@edge-runtime/vm": "*", + "@vitest/browser": "*", + "@vitest/ui": "*", + "happy-dom": "*", + "jsdom": "*", + "playwright": "*", + "safaridriver": "*", + "webdriverio": "*" + }, + "peerDependenciesMeta": { + "@edge-runtime/vm": { + "optional": true + }, + "@vitest/browser": { + "optional": true + }, + "@vitest/ui": { + "optional": true + }, + "happy-dom": { + "optional": true + }, + "jsdom": { + "optional": true + }, + "playwright": { + "optional": true + }, + "safaridriver": { + "optional": true + }, + "webdriverio": { + "optional": true + } + } + }, + "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==", + "dev": true + }, + "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==", + "dev": true, + "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/why-is-node-running": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/why-is-node-running/-/why-is-node-running-2.2.2.tgz", + "integrity": "sha512-6tSwToZxTOcotxHeA+qGCq1mVzKR3CwcJGmVcY+QE8SHy6TnpFnh8PAvPNHYr7EcuVeG0QSMxtYCuO1ta/G/oA==", + "dev": true, + "dependencies": { + "siginfo": "^2.0.0", + "stackback": "0.0.2" + }, + "bin": { + "why-is-node-running": "cli.js" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "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==", + "dev": true + }, + "node_modules/y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, + "node_modules/yaml": { + "version": "1.10.2", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", + "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==", + "dev": true, + "engines": { + "node": ">= 6" + } + }, + "node_modules/yargs": { + "version": "16.2.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", + "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", + "dev": true, + "dependencies": { + "cliui": "^7.0.2", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.0", + "y18n": "^5.0.5", + "yargs-parser": "^20.2.2" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/yargs-parser": { + "version": "20.2.9", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", + "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + } + } +} diff --git a/Sveltekit-App/package.json b/Sveltekit-App/package.json new file mode 100644 index 0000000..e03eadf --- /dev/null +++ b/Sveltekit-App/package.json @@ -0,0 +1,57 @@ +{ + "name": "idn-admin-console", + "description": "A troubleshooting and administration app for IdentityNow", + "version": "0.0.1", + "private": true, + "author": { + "name": "Luke Hagar", + "email": "luke.hagar@sailpoint.com" + }, + "scripts": { + "dev": "vite dev", + "build": "cross-env ORIGIN=http://localhost:3000 vite build", + "preview": "vite preview", + "check": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json", + "check:watch": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json --watch", + "test": "vitest", + "lint": "prettier --check . && eslint .", + "format": "prettier --write ." + }, + "devDependencies": { + "@skeletonlabs/skeleton": "2.5.0", + "@skeletonlabs/tw-plugin": "0.2.4", + "@sveltejs/adapter-auto": "^2.0.0", + "@sveltejs/adapter-node": "^1.3.1", + "@sveltejs/kit": "^1.27.4", + "@tailwindcss/forms": "0.5.7", + "@tailwindcss/typography": "0.5.10", + "@types/jsonwebtoken": "^9.0.5", + "@types/node": "20.9.1", + "@typescript-eslint/eslint-plugin": "^6.0.0", + "@typescript-eslint/parser": "^6.0.0", + "alasql": "^4.2.2", + "autoprefixer": "10.4.16", + "axios": "^1.6.2", + "cross-env": "^7.0.3", + "eslint": "^8.28.0", + "eslint-config-prettier": "^9.0.0", + "eslint-plugin-svelte": "^2.30.0", + "jsonwebtoken": "^9.0.2", + "postcss": "8.4.31", + "prettier": "^3.0.0", + "prettier-plugin-svelte": "^3.0.0", + "sailpoint-api-client": "^1.3.0", + "svelte": "^4.0.5", + "svelte-check": "^3.6.0", + "tailwindcss": "3.3.5", + "tslib": "^2.4.1", + "typescript": "^5.0.0", + "vite": "^4.4.2", + "vite-plugin-tailwind-purgecss": "0.1.3", + "vitest": "^0.34.6" + }, + "type": "module", + "dependencies": { + "@floating-ui/dom": "1.5.3" + } +} diff --git a/Sveltekit-App/postcss.config.cjs b/Sveltekit-App/postcss.config.cjs new file mode 100644 index 0000000..16dce0b --- /dev/null +++ b/Sveltekit-App/postcss.config.cjs @@ -0,0 +1,6 @@ +module.exports = { + plugins: { + tailwindcss: {}, + autoprefixer: {}, + }, +} \ No newline at end of file diff --git a/Sveltekit-App/src/app.d.ts b/Sveltekit-App/src/app.d.ts new file mode 100644 index 0000000..aa7143f --- /dev/null +++ b/Sveltekit-App/src/app.d.ts @@ -0,0 +1,15 @@ +// See https://kit.svelte.dev/docs/types#app +// for information about these interfaces +// and what to do when importing types +import type { AxiosError } from 'axios'; + +declare namespace App { + // interface Locals {} + // interface PageData {} + interface Error { + message: string; + AxiosError?: AxiosError; + Error?: Any; + } + // interface Platform {} +} diff --git a/src/app.html b/Sveltekit-App/src/app.html similarity index 100% rename from src/app.html rename to Sveltekit-App/src/app.html diff --git a/src/app.postcss b/Sveltekit-App/src/app.postcss similarity index 80% rename from src/app.postcss rename to Sveltekit-App/src/app.postcss index 36b7396..10a2d9e 100644 --- a/src/app.postcss +++ b/Sveltekit-App/src/app.postcss @@ -1,7 +1,8 @@ -/* Write your global styles here, in PostCSS syntax */ @tailwind base; @tailwind components; @tailwind utilities; +@tailwind variants; + :root [data-theme='wintry'] { --theme-rounded-base: 5px; --theme-rounded-container: 4px; diff --git a/src/global.d.ts b/Sveltekit-App/src/global.d.ts similarity index 100% rename from src/global.d.ts rename to Sveltekit-App/src/global.d.ts diff --git a/src/lib/Components/AnimatedCounter.svelte b/Sveltekit-App/src/lib/Components/AnimatedCounter.svelte similarity index 100% rename from src/lib/Components/AnimatedCounter.svelte rename to Sveltekit-App/src/lib/Components/AnimatedCounter.svelte diff --git a/src/lib/Components/CodeBlockModal.svelte b/Sveltekit-App/src/lib/Components/CodeBlockModal.svelte similarity index 100% rename from src/lib/Components/CodeBlockModal.svelte rename to Sveltekit-App/src/lib/Components/CodeBlockModal.svelte diff --git a/src/lib/Components/Progress.svelte b/Sveltekit-App/src/lib/Components/Progress.svelte similarity index 100% rename from src/lib/Components/Progress.svelte rename to Sveltekit-App/src/lib/Components/Progress.svelte diff --git a/src/lib/Components/VACluster.svelte b/Sveltekit-App/src/lib/Components/VACluster.svelte similarity index 100% rename from src/lib/Components/VACluster.svelte rename to Sveltekit-App/src/lib/Components/VACluster.svelte diff --git a/src/lib/Errors.ts b/Sveltekit-App/src/lib/Errors.ts similarity index 100% rename from src/lib/Errors.ts rename to Sveltekit-App/src/lib/Errors.ts diff --git a/src/lib/Types.ts b/Sveltekit-App/src/lib/Types.ts similarity index 100% rename from src/lib/Types.ts rename to Sveltekit-App/src/lib/Types.ts diff --git a/src/lib/Utils.ts b/Sveltekit-App/src/lib/Utils.ts similarity index 100% rename from src/lib/Utils.ts rename to Sveltekit-App/src/lib/Utils.ts diff --git a/src/lib/sailpoint/sdk.ts b/Sveltekit-App/src/lib/sailpoint/sdk.ts similarity index 100% rename from src/lib/sailpoint/sdk.ts rename to Sveltekit-App/src/lib/sailpoint/sdk.ts diff --git a/src/lib/sidebar/LeftSidebar.svelte b/Sveltekit-App/src/lib/sidebar/LeftSidebar.svelte similarity index 100% rename from src/lib/sidebar/LeftSidebar.svelte rename to Sveltekit-App/src/lib/sidebar/LeftSidebar.svelte diff --git a/src/lib/sidebar/navigation.ts b/Sveltekit-App/src/lib/sidebar/navigation.ts similarity index 100% rename from src/lib/sidebar/navigation.ts rename to Sveltekit-App/src/lib/sidebar/navigation.ts diff --git a/src/lib/sidebar/reports.ts b/Sveltekit-App/src/lib/sidebar/reports.ts similarity index 100% rename from src/lib/sidebar/reports.ts rename to Sveltekit-App/src/lib/sidebar/reports.ts diff --git a/src/lib/utils/hmr-stores.js b/Sveltekit-App/src/lib/utils/hmr-stores.js similarity index 100% rename from src/lib/utils/hmr-stores.js rename to Sveltekit-App/src/lib/utils/hmr-stores.js diff --git a/src/lib/utils/oauth.ts b/Sveltekit-App/src/lib/utils/oauth.ts similarity index 52% rename from src/lib/utils/oauth.ts rename to Sveltekit-App/src/lib/utils/oauth.ts index 62737c7..013370a 100644 --- a/src/lib/utils/oauth.ts +++ b/Sveltekit-App/src/lib/utils/oauth.ts @@ -1,7 +1,7 @@ import type { Cookies } from '@sveltejs/kit'; import axios from 'axios'; -import jwt from 'jsonwebtoken' -import { error, redirect } from '@sveltejs/kit'; +import jwt from 'jsonwebtoken'; +import { redirect } from '@sveltejs/kit'; export function generateAuthLink(tenantUrl: string) { return `${tenantUrl}/oauth/authorize?client_id=sailpoint-cli&response_type=code&redirect_uri=http://localhost:3000/callback`; @@ -25,67 +25,61 @@ export type IdnSession = { }; export async function refreshToken(apiUrl: string, refreshToken: string): Promise { - let url = `${apiUrl}/oauth/token?grant_type=refresh_token&client_id=sailpoint-cli&refresh_token=${refreshToken}` - const response = await axios - .post( - url - ) - .catch(function (err) { + const url = `${apiUrl}/oauth/token?grant_type=refresh_token&client_id=sailpoint-cli&refresh_token=${refreshToken}`; + const response = await axios.post(url).catch(function (err) { if (err.response) { // Request made and server responded console.log(err.response.data); console.log(err.response.status); console.log(err.response.headers); } - return undefined + return undefined; }); // if (response) { // console.log(response.data) // } const idnSession: IdnSession = response!.data as IdnSession; - return idnSession + return idnSession; } export async function getToken(cookies: Cookies): Promise { - - const idnSession = JSON.parse(cookies.get('idnSession')!) - const session = JSON.parse(cookies.get('session')!) + const idnSession = JSON.parse(cookies.get('idnSession')!); + const session = JSON.parse(cookies.get('session')!); if (!idnSession && session) { - throw redirect(302, generateAuthLink(session.tenantUrl)) + throw redirect(302, generateAuthLink(session.tenantUrl)); } if (!idnSession && !session) { - throw redirect(302, "/") + throw redirect(302, '/'); } if (isJwtExpired(idnSession.access_token)) { - console.log("refreshing token") - const newSession = await refreshToken(session.baseUrl, idnSession.refresh_token) - cookies.set("idnSession", JSON.stringify(newSession)); - return Promise.resolve(newSession) + console.log('refreshing token'); + const newSession = await refreshToken(session.baseUrl, idnSession.refresh_token); + cookies.set('idnSession', JSON.stringify(newSession)); + return Promise.resolve(newSession); } else { - console.log("token is good") - return Promise.resolve(idnSession) + console.log('token is good'); + return Promise.resolve(idnSession); } - } function isJwtExpired(token: string): boolean { try { - const decodedToken: any = jwt.decode(token, { complete: true }); - if (!decodedToken || !decodedToken.payload || !decodedToken.payload.exp) { - // The token is missing the expiration claim ('exp') or is not a valid JWT. - return true; // Treat as expired for safety. - } - - // Get the expiration timestamp from the token. - const expirationTimestamp = decodedToken.payload.exp; - - // Get the current timestamp. - const currentTimestamp = Math.floor(Date.now() / 1000); - - // Check if the token has expired. - return currentTimestamp >= expirationTimestamp; + const decodedToken = jwt.decode(token, { complete: true }); + if (!decodedToken || !decodedToken.payload || !decodedToken.payload.exp) { + // The token is missing the expiration claim ('exp') or is not a valid JWT. + return true; // Treat as expired for safety. + } + + // Get the expiration timestamp from the token. + const expirationTimestamp = decodedToken.payload.exp; + + // Get the current timestamp. + const currentTimestamp = Math.floor(Date.now() / 1000); + + // Check if the token has expired. + return currentTimestamp >= expirationTimestamp; } catch (error) { - // An error occurred during decoding. - return true; // Treat as expired for safety. + // An error occurred during decoding. + return true; // Treat as expired for safety. } - } \ No newline at end of file +} diff --git a/src/routes/+error.svelte b/Sveltekit-App/src/routes/+error.svelte similarity index 100% rename from src/routes/+error.svelte rename to Sveltekit-App/src/routes/+error.svelte diff --git a/src/routes/+layout.svelte b/Sveltekit-App/src/routes/+layout.svelte similarity index 100% rename from src/routes/+layout.svelte rename to Sveltekit-App/src/routes/+layout.svelte diff --git a/src/routes/+page.server.ts b/Sveltekit-App/src/routes/+page.server.ts similarity index 100% rename from src/routes/+page.server.ts rename to Sveltekit-App/src/routes/+page.server.ts diff --git a/src/routes/+page.svelte b/Sveltekit-App/src/routes/+page.svelte similarity index 100% rename from src/routes/+page.svelte rename to Sveltekit-App/src/routes/+page.svelte diff --git a/src/routes/api/sailpoint/cluster/[clusterID]/+server.ts b/Sveltekit-App/src/routes/api/sailpoint/cluster/[clusterID]/+server.ts similarity index 100% rename from src/routes/api/sailpoint/cluster/[clusterID]/+server.ts rename to Sveltekit-App/src/routes/api/sailpoint/cluster/[clusterID]/+server.ts diff --git a/src/routes/api/sailpoint/search/+server.ts b/Sveltekit-App/src/routes/api/sailpoint/search/+server.ts similarity index 100% rename from src/routes/api/sailpoint/search/+server.ts rename to Sveltekit-App/src/routes/api/sailpoint/search/+server.ts diff --git a/src/routes/api/sailpoint/search/[limit]/+server.ts b/Sveltekit-App/src/routes/api/sailpoint/search/[limit]/+server.ts similarity index 100% rename from src/routes/api/sailpoint/search/[limit]/+server.ts rename to Sveltekit-App/src/routes/api/sailpoint/search/[limit]/+server.ts diff --git a/src/routes/api/sailpoint/source/[sourceID]/+server.ts b/Sveltekit-App/src/routes/api/sailpoint/source/[sourceID]/+server.ts similarity index 100% rename from src/routes/api/sailpoint/source/[sourceID]/+server.ts rename to Sveltekit-App/src/routes/api/sailpoint/source/[sourceID]/+server.ts diff --git a/src/routes/api/sailpoint/sourceAggEvents/+server.ts b/Sveltekit-App/src/routes/api/sailpoint/sourceAggEvents/+server.ts similarity index 100% rename from src/routes/api/sailpoint/sourceAggEvents/+server.ts rename to Sveltekit-App/src/routes/api/sailpoint/sourceAggEvents/+server.ts diff --git a/src/routes/api/sailpoint/sourceAggEvents/[sourceID]/+server.ts b/Sveltekit-App/src/routes/api/sailpoint/sourceAggEvents/[sourceID]/+server.ts similarity index 100% rename from src/routes/api/sailpoint/sourceAggEvents/[sourceID]/+server.ts rename to Sveltekit-App/src/routes/api/sailpoint/sourceAggEvents/[sourceID]/+server.ts diff --git a/src/routes/api/sailpoint/sources/+server.ts b/Sveltekit-App/src/routes/api/sailpoint/sources/+server.ts similarity index 100% rename from src/routes/api/sailpoint/sources/+server.ts rename to Sveltekit-App/src/routes/api/sailpoint/sources/+server.ts diff --git a/src/routes/api/sailpoint/sources/[limit]/+server.ts b/Sveltekit-App/src/routes/api/sailpoint/sources/[limit]/+server.ts similarity index 100% rename from src/routes/api/sailpoint/sources/[limit]/+server.ts rename to Sveltekit-App/src/routes/api/sailpoint/sources/[limit]/+server.ts diff --git a/src/routes/callback/+page.server.ts b/Sveltekit-App/src/routes/callback/+page.server.ts similarity index 100% rename from src/routes/callback/+page.server.ts rename to Sveltekit-App/src/routes/callback/+page.server.ts diff --git a/src/routes/callback/+page.svelte b/Sveltekit-App/src/routes/callback/+page.svelte similarity index 100% rename from src/routes/callback/+page.svelte rename to Sveltekit-App/src/routes/callback/+page.svelte diff --git a/src/routes/callback/loadinglist.ts b/Sveltekit-App/src/routes/callback/loadinglist.ts similarity index 100% rename from src/routes/callback/loadinglist.ts rename to Sveltekit-App/src/routes/callback/loadinglist.ts diff --git a/src/routes/home/+error.svelte b/Sveltekit-App/src/routes/home/+error.svelte similarity index 100% rename from src/routes/home/+error.svelte rename to Sveltekit-App/src/routes/home/+error.svelte diff --git a/src/routes/home/+layout.svelte b/Sveltekit-App/src/routes/home/+layout.svelte similarity index 100% rename from src/routes/home/+layout.svelte rename to Sveltekit-App/src/routes/home/+layout.svelte diff --git a/src/routes/home/+page.svelte b/Sveltekit-App/src/routes/home/+page.svelte similarity index 100% rename from src/routes/home/+page.svelte rename to Sveltekit-App/src/routes/home/+page.svelte diff --git a/src/routes/home/identity-inactive-but-has-access/+page.svelte b/Sveltekit-App/src/routes/home/identity-inactive-but-has-access/+page.svelte similarity index 100% rename from src/routes/home/identity-inactive-but-has-access/+page.svelte rename to Sveltekit-App/src/routes/home/identity-inactive-but-has-access/+page.svelte diff --git a/src/routes/home/missing-cloud-life-cycle-state/+page.svelte b/Sveltekit-App/src/routes/home/missing-cloud-life-cycle-state/+page.svelte similarity index 100% rename from src/routes/home/missing-cloud-life-cycle-state/+page.svelte rename to Sveltekit-App/src/routes/home/missing-cloud-life-cycle-state/+page.svelte diff --git a/src/routes/home/missing-cloud-life-cycle-state/+page.ts b/Sveltekit-App/src/routes/home/missing-cloud-life-cycle-state/+page.ts similarity index 100% rename from src/routes/home/missing-cloud-life-cycle-state/+page.ts rename to Sveltekit-App/src/routes/home/missing-cloud-life-cycle-state/+page.ts diff --git a/src/routes/home/source-account-create-error/+page.svelte b/Sveltekit-App/src/routes/home/source-account-create-error/+page.svelte similarity index 100% rename from src/routes/home/source-account-create-error/+page.svelte rename to Sveltekit-App/src/routes/home/source-account-create-error/+page.svelte diff --git a/src/routes/home/source-aggregations/+page.server.ts b/Sveltekit-App/src/routes/home/source-aggregations/+page.server.ts similarity index 100% rename from src/routes/home/source-aggregations/+page.server.ts rename to Sveltekit-App/src/routes/home/source-aggregations/+page.server.ts diff --git a/src/routes/home/source-aggregations/+page.svelte b/Sveltekit-App/src/routes/home/source-aggregations/+page.svelte similarity index 100% rename from src/routes/home/source-aggregations/+page.svelte rename to Sveltekit-App/src/routes/home/source-aggregations/+page.svelte diff --git a/src/routes/home/source-delete-threshold/+page.svelte b/Sveltekit-App/src/routes/home/source-delete-threshold/+page.svelte similarity index 100% rename from src/routes/home/source-delete-threshold/+page.svelte rename to Sveltekit-App/src/routes/home/source-delete-threshold/+page.svelte diff --git a/src/routes/home/source-delete-threshold/+page.ts b/Sveltekit-App/src/routes/home/source-delete-threshold/+page.ts similarity index 100% rename from src/routes/home/source-delete-threshold/+page.ts rename to Sveltekit-App/src/routes/home/source-delete-threshold/+page.ts diff --git a/src/routes/home/source-owner-configured/+page.svelte b/Sveltekit-App/src/routes/home/source-owner-configured/+page.svelte similarity index 100% rename from src/routes/home/source-owner-configured/+page.svelte rename to Sveltekit-App/src/routes/home/source-owner-configured/+page.svelte diff --git a/src/routes/home/source-owner-configured/+page.ts b/Sveltekit-App/src/routes/home/source-owner-configured/+page.ts similarity index 100% rename from src/routes/home/source-owner-configured/+page.ts rename to Sveltekit-App/src/routes/home/source-owner-configured/+page.ts diff --git a/src/routes/home/sources/+page.svelte b/Sveltekit-App/src/routes/home/sources/+page.svelte similarity index 100% rename from src/routes/home/sources/+page.svelte rename to Sveltekit-App/src/routes/home/sources/+page.svelte diff --git a/src/routes/home/sources/+page.ts b/Sveltekit-App/src/routes/home/sources/+page.ts similarity index 100% rename from src/routes/home/sources/+page.ts rename to Sveltekit-App/src/routes/home/sources/+page.ts diff --git a/src/routes/home/sources/[sourceID]/+page.svelte b/Sveltekit-App/src/routes/home/sources/[sourceID]/+page.svelte similarity index 100% rename from src/routes/home/sources/[sourceID]/+page.svelte rename to Sveltekit-App/src/routes/home/sources/[sourceID]/+page.svelte diff --git a/src/routes/home/sources/[sourceID]/+page.ts b/Sveltekit-App/src/routes/home/sources/[sourceID]/+page.ts similarity index 100% rename from src/routes/home/sources/[sourceID]/+page.ts rename to Sveltekit-App/src/routes/home/sources/[sourceID]/+page.ts diff --git a/Sveltekit-App/src/routes/sailpoint/cluster/[clusterID]/+server.ts b/Sveltekit-App/src/routes/sailpoint/cluster/[clusterID]/+server.ts new file mode 100644 index 0000000..7010aff --- /dev/null +++ b/Sveltekit-App/src/routes/sailpoint/cluster/[clusterID]/+server.ts @@ -0,0 +1,25 @@ +import { HandleError } from '$lib/Errors.js'; +import { createConfiguration } from '$lib/sailpoint/sdk'; +import { getToken } from '$lib/utils/oauth'; +import { json } from '@sveltejs/kit'; +import { ManagedClustersBetaApi } from 'sailpoint-api-client'; + +/** @type {import('./$types').RequestHandler} */ +export async function GET({ cookies, params }) { + try { + // Generic SDK setup + const session = JSON.parse(cookies.get('session')!); + const idnSession = await getToken(cookies); + + const config = createConfiguration(session.baseUrl, idnSession.access_token); + + // Route specific SDK call + let api = new ManagedClustersBetaApi(config); + + const val = await api.getManagedCluster({ id: params.clusterID }); + // console.log(val); + return json(val.data); + } catch (err) { + HandleError('issue arose during SDK source query', err); + } +} diff --git a/Sveltekit-App/src/routes/sailpoint/search/+server.ts b/Sveltekit-App/src/routes/sailpoint/search/+server.ts new file mode 100644 index 0000000..979f571 --- /dev/null +++ b/Sveltekit-App/src/routes/sailpoint/search/+server.ts @@ -0,0 +1,23 @@ +import { HandleError } from '$lib/Errors.js'; +import { createConfiguration } from '$lib/sailpoint/sdk'; +import { getToken } from '$lib/utils/oauth'; +import { json } from '@sveltejs/kit'; +import { Paginator, SearchApi, type Search } from 'sailpoint-api-client'; + +/** @type {import('./$types').RequestHandler} */ +export async function POST({ request, cookies }) { + try { + const session = JSON.parse(cookies.get('session')!); + const idnSession = await getToken(cookies); + const searchJson = await request.json(); + + const config = createConfiguration(session.baseUrl, idnSession.access_token); + let api = new SearchApi(config); + let search: Search = searchJson; + const val = (await Paginator.paginateSearchApi(api, search, 100, 20000)).data; + //console.log(val) + return json(val); + } catch (err) { + HandleError('issue arose during SDK search query', err); + } +} diff --git a/Sveltekit-App/src/routes/sailpoint/search/[limit]/+server.ts b/Sveltekit-App/src/routes/sailpoint/search/[limit]/+server.ts new file mode 100644 index 0000000..d1b287e --- /dev/null +++ b/Sveltekit-App/src/routes/sailpoint/search/[limit]/+server.ts @@ -0,0 +1,26 @@ +import { HandleError } from '$lib/Errors.js'; +import { createConfiguration } from '$lib/sailpoint/sdk'; +import { getToken } from '$lib/utils/oauth'; +import { json } from '@sveltejs/kit'; +import { Paginator, SearchApi, type Search } from 'sailpoint-api-client'; + +/** @type {import('./$types').RequestHandler} */ +export async function POST({ request, cookies, params }) { + try { + const session = JSON.parse(cookies.get('session')!); + const idnSession = await getToken(cookies); + const searchJson = await request.json(); + + const limit = Number(params.limit || 20000); + const increment = limit < 250 ? limit : 250; + + const config = createConfiguration(session.baseUrl, idnSession.access_token); + let api = new SearchApi(config); + let search: Search = searchJson; + const val = (await Paginator.paginateSearchApi(api, search, increment, limit)).data; + //console.log(val) + return json(val); + } catch (err) { + HandleError('issue arose during SDK search query', err); + } +} diff --git a/Sveltekit-App/src/routes/sailpoint/source/[sourceID]/+server.ts b/Sveltekit-App/src/routes/sailpoint/source/[sourceID]/+server.ts new file mode 100644 index 0000000..a00310e --- /dev/null +++ b/Sveltekit-App/src/routes/sailpoint/source/[sourceID]/+server.ts @@ -0,0 +1,22 @@ +import { HandleError } from '$lib/Errors.js'; +import { createConfiguration } from '$lib/sailpoint/sdk'; +import { getToken } from '$lib/utils/oauth'; +import { json } from '@sveltejs/kit'; +import { Paginator, SourcesApi, type SourcesApiGetSourceRequest } from 'sailpoint-api-client'; + +/** @type {import('./$types').RequestHandler} */ +export async function GET({ cookies, params }) { + try { + const session = JSON.parse(cookies.get('session')!); + const idnSession = await getToken(cookies); + + const config = createConfiguration(session.baseUrl, idnSession.access_token); + let api = new SourcesApi(config); + + const val = await api.getSource({ id: params.sourceID }); + // console.log(val); + return json(val.data); + } catch (err) { + HandleError('issue arose during SDK source query', err); + } +} diff --git a/Sveltekit-App/src/routes/sailpoint/sourceAggEvents/+server.ts b/Sveltekit-App/src/routes/sailpoint/sourceAggEvents/+server.ts new file mode 100644 index 0000000..02e4a1e --- /dev/null +++ b/Sveltekit-App/src/routes/sailpoint/sourceAggEvents/+server.ts @@ -0,0 +1,92 @@ +import type { Data, FetchResponse, SourceEvents } from '$lib/Types.js'; +import { json } from '@sveltejs/kit'; +import type { EventDocument, Search, SearchDocument } from 'sailpoint-api-client'; + +export const GET = async ({ fetch }) => { + const sources = await (await fetch('/api/sailpoint/sources')).json(); + + const eventNames: string[] = [ + 'Aggregate Source Account Passed', + 'Aggregate Source Account Started', + 'Aggregate Source Entitlement Passed', + 'Aggregate Source Entitlement Started', + ]; + + const promises = []; + const allEvents: EventDocument[] = []; + + for (const source of sources) { + for (const event of eventNames) { + const search: Search = { + indices: ['events'], + query: { + query: `target.name: "${source.name}" AND name:"${event}"`, + }, + sort: ['created'], + }; + + promises.push( + fetch('/api/sailpoint/search/1', { + method: 'POST', + body: JSON.stringify(search), + }) + .then((response: FetchResponse) => response.json()) + .then((data: Data) => { + return data; + }), + ); + } + } + + await Promise.allSettled(promises).then((results) => { + for (const event of results) { + if (event.status == 'fulfilled' && event.value.length > 0) { + allEvents.push(event.value[0]); + } + } + }); + + const events = []; + + for (const source of sources) { + const sourceEvents: SourceEvents = { + name: source.name, + accounts: { started: undefined, passed: undefined }, + entitlements: { started: undefined, passed: undefined }, + }; + + for (const event of allEvents) { + if (event.attributes!.sourceName === source.name) { + switch (event.technicalName) { + case 'SOURCE_ACCOUNT_AGGREGATE_STARTED': + if (!sourceEvents.accounts.started) { + sourceEvents.accounts.started = event || undefined; + } + break; + case 'SOURCE_ACCOUNT_AGGREGATE_PASSED': + if (!sourceEvents.accounts.passed) { + sourceEvents.accounts.passed = event || undefined; + } + break; + case 'SOURCE_ENTITLEMENT_AGGREGATE_STARTED': + if (!sourceEvents.entitlements.started) { + sourceEvents.entitlements.started = event || undefined; + } + break; + case 'SOURCE_ENTITLEMENT_AGGREGATE_PASSED': + if (!sourceEvents.entitlements.passed) { + sourceEvents.entitlements.passed = event || undefined; + } + break; + + default: + break; + } + } + } + + events.push(sourceEvents); + } + + return json({ sources, events }); +}; diff --git a/Sveltekit-App/src/routes/sailpoint/sourceAggEvents/[sourceID]/+server.ts b/Sveltekit-App/src/routes/sailpoint/sourceAggEvents/[sourceID]/+server.ts new file mode 100644 index 0000000..d9a6fb7 --- /dev/null +++ b/Sveltekit-App/src/routes/sailpoint/sourceAggEvents/[sourceID]/+server.ts @@ -0,0 +1,84 @@ +import type { Data, FetchResponse, SourceEvents } from '$lib/Types.js'; +import { json } from '@sveltejs/kit'; +import type { EventDocument, Search, SearchDocument } from 'sailpoint-api-client'; + +export const GET = async ({ fetch, params }) => { + const source = await (await fetch(`/api/sailpoint/source/${params.sourceID}`)).json(); + + const eventNames: string[] = [ + 'Aggregate Source Account Passed', + 'Aggregate Source Account Started', + 'Aggregate Source Entitlement Passed', + 'Aggregate Source Entitlement Started', + ]; + + const promises = []; + const allEvents: EventDocument[] = []; + + for (const event of eventNames) { + const search: Search = { + indices: ['events'], + query: { + query: `target.name: "${source.name}" AND name:"${event}"`, + }, + sort: ['created'], + }; + + promises.push( + fetch('/api/sailpoint/search/1', { + method: 'POST', + body: JSON.stringify(search), + }) + .then((response: FetchResponse) => response.json()) + .then((data: Data) => { + return data; + }), + ); + } + + await Promise.allSettled(promises).then((results) => { + for (const event of results) { + if (event.status == 'fulfilled' && event.value.length > 0) { + allEvents.push(event.value[0]); + } + } + }); + + const sourceEvents: SourceEvents = { + name: source.name, + accounts: { started: undefined, passed: undefined }, + entitlements: { started: undefined, passed: undefined }, + }; + + for (const event of allEvents) { + if (event.attributes!.sourceName === source.name) { + switch (event.technicalName) { + case 'SOURCE_ACCOUNT_AGGREGATE_STARTED': + if (!sourceEvents.accounts.started) { + sourceEvents.accounts.started = event || undefined; + } + break; + case 'SOURCE_ACCOUNT_AGGREGATE_PASSED': + if (!sourceEvents.accounts.passed) { + sourceEvents.accounts.passed = event || undefined; + } + break; + case 'SOURCE_ENTITLEMENT_AGGREGATE_STARTED': + if (!sourceEvents.entitlements.started) { + sourceEvents.entitlements.started = event || undefined; + } + break; + case 'SOURCE_ENTITLEMENT_AGGREGATE_PASSED': + if (!sourceEvents.entitlements.passed) { + sourceEvents.entitlements.passed = event || undefined; + } + break; + + default: + break; + } + } + } + + return json({ source, sourceEvents }); +}; diff --git a/Sveltekit-App/src/routes/sailpoint/sources/+server.ts b/Sveltekit-App/src/routes/sailpoint/sources/+server.ts new file mode 100644 index 0000000..2faa21e --- /dev/null +++ b/Sveltekit-App/src/routes/sailpoint/sources/+server.ts @@ -0,0 +1,21 @@ +import { HandleError } from '$lib/Errors.js'; +import { createConfiguration } from '$lib/sailpoint/sdk'; +import { getToken } from '$lib/utils/oauth'; +import { json } from '@sveltejs/kit'; +import { Paginator, SourcesApi } from 'sailpoint-api-client'; + +/** @type {import('./$types').RequestHandler} */ +export async function GET({ cookies }) { + try { + const session = JSON.parse(cookies.get('session')!); + const idnSession = await getToken(cookies); + + const config = createConfiguration(session.baseUrl, idnSession.access_token); + let api = new SourcesApi(config); + const val = (await Paginator.paginate(api, api.listSources, { limit: 100 }, 10)).data; + //console.log(val) + return json(val); + } catch (err) { + HandleError('issue arose during SDK source query', err); + } +} diff --git a/Sveltekit-App/src/routes/sailpoint/sources/[limit]/+server.ts b/Sveltekit-App/src/routes/sailpoint/sources/[limit]/+server.ts new file mode 100644 index 0000000..24f9b68 --- /dev/null +++ b/Sveltekit-App/src/routes/sailpoint/sources/[limit]/+server.ts @@ -0,0 +1,24 @@ +import { HandleError } from '$lib/Errors.js'; +import { createConfiguration } from '$lib/sailpoint/sdk'; +import { getToken } from '$lib/utils/oauth'; +import { json } from '@sveltejs/kit'; +import { Paginator, SourcesApi } from 'sailpoint-api-client'; + +/** @type {import('./$types').RequestHandler} */ +export async function GET({ cookies, params }) { + try { + const session = JSON.parse(cookies.get('session')!); + const idnSession = await getToken(cookies); + + const limit = Number(params.limit || 20000); + const increment = limit < 250 ? limit : 250; + + const config = createConfiguration(session.baseUrl, idnSession.access_token); + let api = new SourcesApi(config); + const val = (await Paginator.paginate(api, api.listSources, { limit }, increment)).data; + //console.log(val) + return json(val); + } catch (err) { + HandleError('issue arose during SDK source query', err); + } +} diff --git a/static/SailPoint-Developer-Community-Lockup.png b/Sveltekit-App/static/SailPoint-Developer-Community-Lockup.png similarity index 100% rename from static/SailPoint-Developer-Community-Lockup.png rename to Sveltekit-App/static/SailPoint-Developer-Community-Lockup.png diff --git a/static/logo.ico b/Sveltekit-App/static/logo.ico similarity index 100% rename from static/logo.ico rename to Sveltekit-App/static/logo.ico diff --git a/Sveltekit-App/svelte.config.js b/Sveltekit-App/svelte.config.js new file mode 100644 index 0000000..40633a0 --- /dev/null +++ b/Sveltekit-App/svelte.config.js @@ -0,0 +1,21 @@ +import adapter from '@sveltejs/adapter-node'; +import { vitePreprocess } from '@sveltejs/kit/vite'; + +/** @type {import('@sveltejs/kit').Config} */ +const config = { + extensions: ['.svelte'], + // Consult https://kit.svelte.dev/docs/integrations#preprocessors + // for more information about preprocessors + preprocess: [vitePreprocess()], + + kit: { + // adapter-auto only supports some environments, see https://kit.svelte.dev/docs/adapter-auto for a list. + // If your environment is not supported or you settled on a specific environment, switch out the adapter. + // See https://kit.svelte.dev/docs/adapters for more information about adapters. + adapter: adapter({ out: '../Sveltekit-Build/src' }), + csrf: { + checkOrigin: false + } + } +}; +export default config; diff --git a/tailwind.config.ts b/Sveltekit-App/tailwind.config.ts similarity index 53% rename from tailwind.config.ts rename to Sveltekit-App/tailwind.config.ts index 214c5e4..1adc748 100644 --- a/tailwind.config.ts +++ b/Sveltekit-App/tailwind.config.ts @@ -1,31 +1,28 @@ import { join } from 'path'; import type { Config } from 'tailwindcss'; - -// 1. Import the Skeleton plugin +import forms from '@tailwindcss/forms'; +import typography from '@tailwindcss/typography'; import { skeleton } from '@skeletonlabs/tw-plugin'; -const config = { - // 2. Opt for dark mode to be handled via the class method +export default { darkMode: 'class', content: [ './src/**/*.{html,js,svelte,ts}', - // 3. Append the path to the Skeleton package - join(require.resolve('@skeletonlabs/skeleton'), '../**/*.{html,js,svelte,ts}'), + join(require.resolve('@skeletonlabs/skeleton'), '../**/*.{html,js,svelte,ts}') ], theme: { - extend: {}, + extend: {} }, plugins: [ - // 4. Append the Skeleton plugin (after other plugins) + forms, + typography, skeleton({ themes: { preset: [ { name: 'wintry', enhancements: true }, - { name: 'skeleton', enhancements: true }, - ], - }, - }), - ], + { name: 'skeleton', enhancements: true } + ] + } + }) + ] } satisfies Config; - -export default config; diff --git a/Sveltekit-App/tsconfig.json b/Sveltekit-App/tsconfig.json new file mode 100644 index 0000000..82081ab --- /dev/null +++ b/Sveltekit-App/tsconfig.json @@ -0,0 +1,18 @@ +{ + "extends": "./.svelte-kit/tsconfig.json", + "compilerOptions": { + "allowJs": true, + "checkJs": true, + "esModuleInterop": true, + "forceConsistentCasingInFileNames": true, + "resolveJsonModule": true, + "skipLibCheck": true, + "sourceMap": true, + "strict": true, + "moduleResolution": "bundler" + } + // Path aliases are handled by https://kit.svelte.dev/docs/configuration#alias + // + // If you want to overwrite includes/excludes, make sure to copy over the relevant includes/excludes + // from the referenced tsconfig.json - TypeScript does not merge them in +} diff --git a/Sveltekit-App/vite.config.ts b/Sveltekit-App/vite.config.ts new file mode 100644 index 0000000..e817a7c --- /dev/null +++ b/Sveltekit-App/vite.config.ts @@ -0,0 +1,14 @@ +import { purgeCss } from 'vite-plugin-tailwind-purgecss'; +import { sveltekit } from '@sveltejs/kit/vite'; +import { defineConfig } from 'vitest/config'; + +export default defineConfig({ + plugins: [sveltekit(), purgeCss()], + test: { + include: ['src/**/*.{test,spec}.{js,ts}'] + }, + server: { + port: 3000, + origin: 'http://localhost:3000' + } +}); diff --git a/Sveltekit-Build/package.json b/Sveltekit-Build/package.json new file mode 100644 index 0000000..c6288c4 --- /dev/null +++ b/Sveltekit-Build/package.json @@ -0,0 +1,8 @@ +{ + "name": "built-app", + "version": "0.0.1", + "scripts": { + "start": "node ./src" + }, + "type": "module" +} diff --git a/Sveltekit-Build/src/client/SailPoint-Developer-Community-Lockup.png b/Sveltekit-Build/src/client/SailPoint-Developer-Community-Lockup.png new file mode 100644 index 0000000000000000000000000000000000000000..4418b7420b89a6c6902324ba8dc9f365951218a0 GIT binary patch literal 44093 zcmbTe2|U#M8$UX!C@P(-k)msF-q{8K_L}J@a4FNsxblr5xhwLbI31O!50EKvgo95b^5^5gPjVL=y}do8g@lkuq##mM(A~>HNJL6XN=W#s(ABE~V1)p} z-_6_FPrwav@vj|}?Gd(KP9EM)?rxmq9j$HLeZ1u^0AYWf!qww{+qxnC)D+N}ke{`O zkcgl#`BVoB?QH+I&cnyc<>29VwnFwU_OAAB-UzT(k5I z?d|TR@9ysM*InuSB{Jt#Q9&_IUQKITCpYpTF8}Q<_R7}Y_Hq}<_XciEKv+s&L{$3f zRq3k|0>Wa_!ot6nYP#Dw-SPj=rK0~>2aLwf+S~g7ywc8A`i{Got2H>RldH9Zy^x2S z!v)U&sZd(U-NoGtJQBzydhmQrO=&eZgtxVut-YGE+y!u6K_@3WX&Vt+o2z%AA_Afk zHg^QXZ0#iltnDT31tcVFM4)1#QletwVt>6~+1=KMe5-%G-|qk8`?bBCfMZ#^{QusE z>~3UpkXCgl7`D>^D-x~O}Ez;2* zZ2Et==wHha?svSA)?W749Dug|Uzm~*5MPMwg}+WB^zTC+{M+9=_OIn243NM5UkCy} z{4a>vyMf5%1wvF)>HZP~lDDp=d`;gkZGN}@(M97FeBj;}Q62}l??w$1V^6tyi73>N zQR`-kZ@5(yzm!G_jag{NX%(|0Z*nn5ZyQ1HZZYMAt08l<=T36HFmx7Ud-v=ROXMtN z!l;3%x!lO0R||bj>Bt{${Dan%A9^fRzuEf6Jx3{oUc{w6k~_<_@Qf`m9g%&d?MUzE z5cxe^!*)phuBF9x$Kiv>`;WiYEATRhtXOr^;`R)-LoCjrX;FBJf2<(?5E}5Jn!5at zCMWIgHr)Kk&Xp(FYDsB@rL;4@ErmG8O!M_#r_X0oyRBBU`2&4nCL}>@MaE%Z)yHTAW~32&|$ zmnXR0d|ndXbbt19(^r3-^nZy>2gFvP&zDmZlGxpC*!eM1E3>!$W8&vdBj0~5X9CN? z1)8h%xLT}A1QPat#D$=Eo%CfvZvXd7jIG^ZNf6wjT4c_ys|7K&J~d-xH6z{f92yyA zfArtWA)$G|lFqAgvAL77qqRrn)-rfxrvJm>o@Q24Tio!Je(GH_H@DAhA5w)^Km+q6 z`o_}yzUegBbX3{%Tk=|+Y7E&pg2xniZrJ>;xy&KQ;=4?`X}P-EAKwDfs^|Q~@T6&TjeLL={)N%#L!LQEOog3x0!K zeRDI|-m?4SgwemY1wT46reJhl@oKdsXcbME2d%h0v6QI?R%*=lA6D9~h+yEOYjU#e zM$A=(#FQzxEWsn!J%4|`j=Pv))){a*1HF4a3O9xn+?U`HK-d>o<7j`AAv6FOQEv3a znxemLU+~%G17{K6>0564x^?ZW)Nkt{nZdxf7{KZ5kM5_|6GO_zOBOX!5|gNYUpgB; z&6mg*)l-_&bM?_O*(O|<=g6L2pP=`<*ov`TX5rnxu5W(Q3~1wf@-21M-)|2BRYEYR zgD_;Mr`NZ<2drXnV&IWbT*poOssFH{0ANGY*^+WPqekVHeIg-)wOf-n#=j%PvZXnFiG^5<@)Yr0$(H>=6Tq=7L z{bDuUlkfM{FOR2StS&|MWaT)>$L-eEyGj&qe;pJ)`TNS=V_;wM`MN(2EQiz+g9nny z!Ha_>?>~;00*)7c!!v->iO&h=z`oBsvhyKM2yF(AXY^k#wS=0LIVAR8zdMV-72J@# zI~VfJ^)LpdW~+AbgZD34zEt0EtC`yuOr^ae@AdbKa-{GrzJ6XeO^Zuz86Cm3yFN-v zr4S17_4FPsZ~f)vnOx>-xRLF@zpF9MvG{!lh{oyx(=v~e8n%C!e;s*qiP8V}lV`Gn zrCQmN3w*Ed(XGJ};;8BU=LbhW z^1G@O2f^loc?qXbJf6uRF>ZTVRu55X7w_r+Yg_Q+X~`7K>m*(+o`m$xj!F3jT-#nB z=a*G*wQ<+Z{l5GNNOmq)4z3ov>i5Z#P~RXzoy6SqcP;#SmtrQ6K?NL8J;hIJQa5D% zbFI<~9c{t54w6dg?;D@yOu;O@B&QBd?gdi&56_10Z@vMYh>?@i>l4R*dq=1Ta3alH z+{O#X3<`i8l_!wAPIhNc|F#e^4(x_DYQp=%Oe8_JV)@b6b_M1Kfx+M^MPh#UvWp`0qz9H91-LNHkODx{`>My zpb%~4Kke83QtcMmkDi|P)w_P{_r-q72!_S0PxMvp>2U{FI@Eh6am_3N^DtAf`hD@{ zH3WnFnI@+TGlNL>8#@66lyTNga?mcj`+HEyG!Zi#zp0yciW|Mv@!`FKip0Lo^+A-{ zlQR>)TT(iX{~^T%F~e)Ete6cHkM&H6yg$;&X7dBEI?u@E-)%|fPzuHbyXPk6t35q2FI z&P{KE`_q5t`TMq3F+hsQ39)$Zd6`FiJ5Bk7VBN1-&EN*97})+JaI46#qag)!O*1;( z&k3>xE5xsw1`*$q#p1;ZXG0w;$X?_#qToB+d5JNhco--2X3NUyDgAHHJxOnGJS{_| z&l%NIoFjo@@`#YD!ZdUEaXX!ZEGat>-`4H(L_zB42e? z{#2Kmh0_R1Z(#N{Gg?H zLQZ8XYtfyAJM&&gT{@xqv0UrrBg}zGNr}+`jLR@6Tkw{63XnH}|~t#+OeE5BPmWDrALF;rN7Vw0Uc&*r%h6TN2XgPxxGR zGQ07_fIi<=t+P$OL#dEDSZOoF>7l`sh3oU9_fim=$+ir*LvPDguR`d7%l_@jp#muw zmIDh17aFuRyH5<+jM!ht?d=Nj$^IzM>0rWTSQz--I>Hsz6Su-f_kho0Y_1Jx?wsRW zivB9LpJ&wao3n80EKj#kG+E~(rwdFZ4M!bi>~AXdhQaN$?QkD0w*AjSqChPC+hZI1 z(+Nj(*emY_!dWp~GeYtxLwkV57x*oq90I_;grj<%=Wrx4?GBWes<$FSF3o5H?H~mY znY1%33EAU}xTiD^xtsNz9_x9PlbjIjf!~jZvryihEY==ZsL>72o@vle zy-C!N??qHja-F_wi*kIM^40F{<0^zb15q01W$_O@8wwC|LD=xA!@y6Ej3WarQZQUj z6LXEc8SnxYeq7UZ?rgnAU*1L%;Zu3eXKL387WD!bnEZ>!9ESofu(jDGg|z5s z`LkS-4~Lud@YFS=l71nN9Vjuz~vNaU>jbG(Z8IsB~=ue+G@B+;e*v-3|Wrc8a^ zw2dhTCROUKKloT&$CKc0C1s_~Q(xHr89BQY!M2^`;Kp@*1^G3$q;u<_Sm`OX2C3E! zXnZP`(RJ|EtO%(UDPjzO<2w3;Rr>jIV&zf<^w{q58!sZ*9Mz_NP~JOKRm9y$AuK5TBPJ*N?%`R>&omIXD4<31^ehqyRfZVAFH9ai5BBCk5$k0%^i6xMs@pJi?K zW)_*=vw0Oj$aKI5|LvvT)M2nLp^G&=!M+4a0*%hgw*dN~mBokNtZFWJ?pRp11g`hv z?sE#Ct1IY6wvJ7~tOw~gJ*6k#&>U969Ur#-Df3U)31v&cID_}ZJ5mgN!rhR-D$GSt zzp>)bB4ZGZuZ4~?x6XvGzl`P8lA$J^>ms5dukZ1+wuBWEly$U$Eiz1>swW9b{7ps( zMDg&Zo8-GVU^;36Gcu2Aj27$nzaUQ~98|PHJYgALH*lii#&xF1mh5-b>tBiJ#=`+v zI*9LE7OEO7-8F&rAfBaA5Jvv7D@5F}xZr%{o912wOZf^@29^{~IF|;lag#aLASv@5 zwa?epKR2QtWI72O)Eq!k(Ei-k`sXfI_ofR{Jll`o{(7t|so{}ZQ2y%`;2L!Vnd3hk z3k!Nnb0P^`p*OwBA^?p+j()WYH}^(?pLl?X|9A~%Ru=?cYE7ko9gbT#+GED8_5{F< z!#K6KY_U-mX#g)QqmL|wX0{ksBDi%N#Eh&>&GP@Le)XFOgIHxx=>#&csM&5GZO;XV zQc}AJHhB&&Oo>EW1^F>H&2%BpC~Eoy@j#ddlf`^&|Aiw$kz$5@$_MNO3a{%B!ZdP! z%|C<;N0-sc(VFy|r=TY#tOw3O9LtraG&}xr2nb{}yw~M!AP52RV!%BX>bHK3gsh=I z2+-k+__~2kQCP29CwlX7u?~WazbfM=xZ5;R#WJ2sX$E zXhRMhBoeNl=BIVIdJ=?P>=TIdopG5%jf2nO0sn}v5XjPl>4GIqE;f=@_VM6);wX|D zsTRc3bv4pa|HS82Uaea2=Ki{MbfZ$))>td@l;ZJA#am~q+R6z>*iU=8{X?oyfi5!! z;Yv)~bG#VKWQg+fJhWaTFRUYf@yhg5a1mQg% z^^hxS0#^z^m~lCxIRCM05%WfOPXh>}*Ub;~F)p1-n+HTyuMkRc_0$mOxWZMxfo@?F zH2;@ADKo42WFvEIacW|HA*3I>Km|*o!23=@H_#CAtKhG(TR}V?5#U#fH`1%~9IZyc zw@B6B&I_QlBB*CIq=B)$0KmJRK+k?~D=TQ_C$HfKMXv)H?w0=*^x{=r?9@viQd%3{%snNi3rxA}#n-j3> z==-9dr|yV~5-hjhBjJ|R#G zCnO4aGz9!2@zXx_e9_8>(e{uf^asjISUSg0kO#%r)VuLRL0v*GR%L;Cg71>os#hqB zyVij-s3v^B=K514Jbx%ic-1dROcB^Ds1p*}so2!ClL!xBRHW?4qm@;ZEBWlVnM)aD z{-z+vBH#co%;Z*B_U_*5{^I(LqLI$Gcm+5|>Fk@-Tedru+N1l!$WyG6SU?$}0LlCj zdBNvLMbC+Pr{$uR3nRu1REXFMyS!R~t*O#VBkz6yI4juHcI+C^@(W26-^}+Y+Fia> z+JvY_kq;0Vuk6~Abc0x;?jVMNe37+JtKHky%4DbNP5_}YK>@+0K1(0@$4bZOpF-*! z9bnSQ$(u6j*4HcX6NmU-LnQHlG|MeVMBilnBaMG_ z7(fY-%8OShF*>O-qy$EQ9=LXmJ_#8NSgjiX3HhWMO?XpjFX^Ur(C;n2Y7zTBAqceS zjh`xDDRe9(*Xmu~N^08F&CE>Ne|g&MX8}f+uS`q8Mnz~$4h7F|X=TRtv#^f6+kbd< zH+4-2yE@p29W1prM1d$Z_Nt`0APJOnt<(3gIfnA9eu|w)ibiQe{eAszpU8;nr)wH4 z7;wzjy|=N^HlH3~=@g%V>wCFVXO;(7v+OqdMTPy+N9fI%leTh?Cf?dI(>6W;`QPY& zd8XU#&-gpoMTUo+$TLuV@1*v!Bju}M{I^b(zT@j9(h5vtYt7Y4G>(M`z5)=e=Zwu^ zBoK^09B0)Bpv?QJjy4`XeBF+^9uIIm?vH;@NQz2T=9t1ci<`~M5SP&Df?4i_I26xU z-+dp#NIn)Z_|5zLvIQV3g%brDa^K+tKgNz4ock-~T6;W5aFl9^qWY(m`<`6Uj2Or8Ra6e_k9`G^0_of&M5U2LdJ$Si*DuX@&T; z*b4riA#)Z8V0d!AH^SVD!*WWNn!}Q?gd?Z1F7m3Ns(oRDpX!wQM@+TS7&&88#tR+0 zhV~`AD(BTAC8U!&4p;AQd?sa(I;=Iw5NGDkph^kQTGf=vly`0_c&t5rK3%v^+$=y` zez$;ACb~Dskcpcud~@m_*9PG|+it+{ z5U@#?m(wWw0Z|3=NkzGkQ(>JEJ?-44*4R@uwkTgfSIkq-(W3AZ0N6oXKA<`s7O7sM zUF4sscm@s+(!-3>c3GY(k9(EB$)SwEr)+Durw<7UQe zW3^SVdf)G=^c{-^=j$Iqx)_zFXla#d+(v+j&-roz2L#kLVBAg}{Q?Vl(oXe;6moFf z&;ZYNeN2Wq>nmT+`QTu)P*B%vpp1+>Ro?t6`P%`G+{(*V<5WHHijaUeOs#@)sVNWH z&Mi*)M$&wKd#V;zq(-lWNCIsB%b^SoNUw=FhZ#t9x{9`8JqB1kfa*e%x{8q%%eISd zKCYK7tx4+s?*{a`6Po$S2UTPvw-?@SA9q@=R8n(T1biRXU{4mM{(>w*sA;i5$L<${ z<06M-fwP>cp6KN>?0LtyH#b_Vy}vdsigR+A1MRh~C7=#ET;!42MkGb$Efmk|SQmLC z70+#x@wCbs6VrHBh)!f=PW=0T&>_G`fya))Xk>Q%6bLLOqkQgqmb{ksfx4a+WQia< z_f5roa+X*M*uAcRRF@2og&mI$Cxa5RHOw9|X#`v9%oLssS%{g3ASC4JwORiuT49-_)kBl5^qMz}rheFL!}n zsv@66;>DI8{^d_MNv(#S@3nn^BBsmoF#7F5Jg@WSK#}J73gA+=nS=5r^ZZ5WPA02Z!r*RP{nSc)+~@K(U`q&u#ima`cV}xA0SzhMkIW%BmXVeHt;O}Du*eDj^mZ!I4}K7FWkgc_s~jbq z+L-5`{;=8cf{Ya%*$s7QA&L_+VLq}CL3PJF@;t}#hG$L8g!e}`82JIA=D;HL15*mz zOrgfypbZzqLsoAl3rJH>+im&>5*|=`Lgqp5LJ4$I615XEFYPG+tYwLlq9+GNav2Ab znCdTZ+!(E-Cd4i9LXxe=?jWrU0`xw@tL4y&RC6=E-RJ6%zzEDEh=+WN%&T$?@Ygj@ zdl53$hnB{`4r1Y^{&-+0uh9n$-wrZd;BZB_A@SQvf#j#2eexW}!CQWps2C z#EolYG@BA7&<-b))c`r)3&R8C%m(f+-)xc_0`Vy)8wUh(w^V56JFga#Taz65N5!`4 z8uBCr7vEQ(|vXd^0EY!T>a-Zf$u>e2`hK23E7gnD&5bh4xZPgrJDvw zl_0#Xl6E5D)Cfqc&k1(qrHL&I%FvZGN^;R>0Q5ySMaS{7R6%8kW6zdxcNocjRE|8q zKpq7C3XUQmOGXksjdoG{zcvLf>ajQt%`RNv%R}pOniJwTsGzjueP=#8_KIug^SHke;%)JEb-&*3gXt z5ulUu{B)DJ**MCOgZeSjc_MZ~KS3}lMCeW{O@aeG*I~u#;d@g6=Oq-csPH{GdUjE= zQYc9x^~#lr!!R>Z18qIa?;(3c_xkBI*u2J6#{Tmacwsz1d+sCez_cNkb%0{CJ*oxgECj4#o6f zG5-tUT~>}L@dd9IPF+1QWFwiIy|U;5ymrypr0m$y*$$*=ybQs2&DuJycn4}Bha^@g zO)HRP%zO^wA%8{$W*dt@mF8wg$F{re(?}4@w@ZUzwUKXlwQk(|l|c8tnw4``p4rvk zGn@#EKNw@dB80_iej#n|8JRyg07@N?idORCb-Lp8L*nH9kDA@I2AY5Dxkj`iErI|^ zQ@$c10C14;*GAp6J2!0U*MMRJ7{i7G*U&c#DU5d6jwSNnS>#tp<{*8sZ>J-!1}*H! zyQ*Jw<-|`32{dbfrkM971=`t=#CEFq8)@ZpDWcJSGLlc%^vL0&lUuWJG~e}z2b=!W zveAKo)@Tq2KS2`(eK5jbpi(~T)>Q8briHb++lNn$Mo0Z>7rq4EprnQa&4xakc(ozo zGdDrcifxAh<%;cBv+3I|>%(C;G{~BQECJ$mL31hu?!io^p*n-`R*sfi#m=Y(CqJK8 zOV}5k*^=h3uLjl{RHc3p-iR|vi^Qwvf?@jEt%2|qyYAQOQSA}+^L zU0P`CF{zccu!fuCKzyCDC>BgHH%efJ9PS>JS?K|UWxslDVllr#A4?ZF6gM(_0Hq*H z03w~NR(s)qT~(AK4`D2!@0EfC$xh~-AS{I@AE5^AT&VmYrtq3U!_gxZAVdC;VuA#d zal#$l^+N+4lkSNUJkWPpD^%lR-8Kg`qJTjL;Uk@z0>A|uX;hFS=l}28xv#NAL%O%% zU4f-u5c#$hKl3>kZkv$Ho@Nl;u51~}v;oT%=U7V=GVwBA8Sij>P0kmPM%omN_!!It z4G28$Z7?R~fRkdDA&>izwBA1<^IOYB-;dIs^ufI1>m4~K4pIcD18899s7x@EGGS0d z1Gbmf@XHZ}65ZW);WvvGVC(!-85uSHi^WdTSh_=@WGV_U-49wzh!#oS&roW|iBHH6 z)=>auufCgYU-b&Q0LbWJFyVQt`i6#dYwG(}lh?{X?<(BQ2YQDfGplF+DDLve3t)U~ zt#lBKun69FfAVq#AZP*lnbl9_gZe7KuplWGOfyV!XasyXBHyKMjytaZ8Qnq$CCKhQ zHh9u^cLeImfozw)jq=6Rbe67k26Q4XKu$-2wC1G=%g_ige}5h(W8|ap@Bo_ghSf%- zKBeC?=>|Q~OpX;TgGV3+l&(1N+7D}#)Y;v1B%cOSa0Agdc_+KHV0rHjVK-y5BkKq$ z0Yu%UAHzrrRwHO3*F2+c2mm8wbM1A%lpF9F&)|rD%o6j|o)U>)4xh!zmSL2pYTwNFg8;A$1hj_!7d#MeN>Gu3`oEx?6!W#P+|^GRvkRjc5&3Tz{}aLgWCs$E|cr? zts^zbf*PQypZ{_5V1?Dmb^}@u{sD>HhbL$^e|f!50=Z}bl%XuZz*aO42~UAg&zXxd z0RO6+CYVUr{z~bP&3no*9AcKQe|y|#n}jXm<;|U`DvMq!*4oy znypK?*8!FjiDOL!NKSS3Q*h}SHR(Io#114XSbjw~a-AM>NZwyO!U z>K;J=4sHWD7)ekr0HyXpphjMs=w zQz`0MwHrLO&60VxyA3* zx}C}v_c=3YQRXUOh5OD72xFJf#~}AF0Va)Ci~BnzCKCSIgr&Lgs6cyWP26j1D--$?<4>GJYmwi-v!3vIR zNoSYm2>I;4;RdHkFm^Vu?Nk4J5*8_Mp_mEnXXKu_EHt)Iv)|h{+4%-WY}ebvnq5{v zB1TVrDhjNPBT02l;$Fz$aCvCLz;vSYw#ULy--nES*v?RIdmJHmttaqP_zL*rbeFxz zyvJvK+=8U|D1!^DtC9ev-Ei$RkUT`)jR$v;6~f6=wvrBEuJ6rHO2G?d}*!g4_;(4=OKc?`OgNNeYW9ct6lzNoxv8&Q~Gd z>*%_hh3_TCM(5n}P77^+k>mj|(SbJ*A z{Pzb^bC?z#R6OI^4Bvh;+`}>iH!OZFD7}zFC}_(qp~X*KlBL;jz4Be51qSG^La32| z9SI+Bu4#tMZaxsX_ZIf)d(RzBDq7Pu5%REG9Hbit232xAhZH-xnvfM zC)N6z%k@MMiOwyy`W^L#sHqU~T0y@0uNi=6zlDt9C^W4tnEyEYEoh;B9y91OqeOgM zvTn`pp*zN$gus)qE1lcLnx8QPBl0blb04Izz9HhYBAYQ10qQTAS250hD^;afZ8QAv)d4WOQ8xF0e{0kmh&MCd445c7v9)S zRh#+*P0RcNX{t`mE~7r>3*~1Cr8K5;etlN`xLQF9iwjGKUd2|m)CU8_EkFtx3T0Gf%>&h~9UG zrF>uRi0bs$uM~`}>u<@{CNeQ;HX$;K4A#=+@;=+%Fida2gqhKb#RXnk`XX$HVa34A z?ipBaM9VySA*q?Nfe*wyuFRihgqU(f4>0jR7cU)G-jXzaJ3X$!;OBD5Uj6%1vx zGhX7`I2%%QM<}@8U^$TKRinQZl@bHT3nUijMLeQZUHvjDttKNGo_bPjN*c-AIba5V zuyT8KyDWQBc0*3?ar>5H0#>(eR&BVPR6_m07^>Ib3cA_X$1hD5oI7{=8F~C401}30 zn_8JRbZP@&p6e^!RJdly!wE6ZduL;+n@vH{{>E{K;dl|C{Z;Q5;ynjZ;ale%c;Lit4b*0wVV{vta-R)%1NAz4P4Tc_y}m`-%$ylk zUg6A_Ix;;|E|r_SBAWlUhSI#|+l%6ebIzS3+FY%jPT0}5by7=a@wE|ut329)1%P&| zD=FPP2W&*A+Ii&Rc*E3_h0azo?1*dks_@!)mGK8Ep0jq2r!R^;)RjuXtl8d_J(?_l zJfI!)$H}8}KV%{csv^GwMy|jsFrj2lChL+19f#Pc{GtxD{xro>7`*t{t7G2w6>~IB zg?vX(!cI#i%s5FR-vqa;y4%1N%#E;;qKnG^Bu&s%>A(Flvo|^0k9c1EmrCt?`IP#3q|% zLqvM1@W94!btXnyQ1$B7{##q+M!dMTBvDk=-t49pW$a_-rXly9v^dfp1Nve^ z;apr}k$bTh(@ih~#d(^Hg8-1Fm;`_kOg-pxgJL2<5KJIsttTzP_+7na@%kEKFjs+I zFf+<}tg3p#YapUj43-o{iMgXj-*Jx}cglSH6l9DY)Km#0f=cBA$7=iZ8NPjJ(JW-w z(Yjuhhd3I+Slh`_VgK$tvccB#q=d*r>-TcK83pX^QAnxYi0oV}!S40*6ehxL7rn>e zvnQ>o1=r;Xh18)=1yA%R356exO8+1_ywR7#O@8wr9m536E)>24Cx`po8&>OJ&gX7%Y`xyXy^O`cM+bQ_h1b1++F#3Qy*hvS2Rm|D z`+mSkSq&xHK+1i3TAPV_KP@CLs`GHDP-Tbd`A66E(s8sgO1!O5qS45slfV?N0aN(M z`G5)NPH)tRVYW$tZ$n#mqZ5mG*@$(P9)dM~LQCDw(-Iwz%Fw}_#!xBS&?g+psJ73ihKkIaT$ zd?A@N$J(S8GcoT{R6RunwOvkEQftT_=MF0NaDKH-)>YZPa^gN1q^j_}WwoEDopG6 zzfsFQN$pcsLDyVa&{-V>XidK6sd9LibYFHMi}p6?dVDq!^+PZ6r1M(73^bd*)}JDQ zy}c>(rC8sW9TMa@AV||USI7Moa-5a!g`~ELm{!aQ8!k$bI!7NwQs8Ne4V(v+B`W4>PVlX4L-s9hP79& zeAD?6fEmy0IJ$+jF7)UxKAzI$$R>-FbMmoV6$ehCQp(cS$8WSiQGZoD&S9~C@vWwG zLwws{!j4cwV)5qUg!n=hn7W-IL zzMQ+Se;sv zCwJ`TwZE`K7U(JPi6@Q}wE7^))IK1_|;N0rpRzv*{9bl6ZJ15_1dnLNZb} z4P8ZgD6PT$%4yeVyu(lw zN=o4rv;APC^ub6|LM(28c58>wJQALQI%T;)IYLA~bYGON)v7fZX{n3+6pPS+PO_{$ zuN{zFLO-O1cV;OCS76Dxv28Uu74LLiRG|I7BR$b&GM6A5lg8Ju0UDA=)+bVeEY5}l zw>Uo3b>NH=MJ~l&JOl11eAv>?Iu9XaS|);;OcQf#Yi08_WB4RK(@imTDO9OF?q^J> zp|EYHgcRxCYc5!2gOxsewMXkV`%{XR7Vb1J6BfD<9Y_Tk{HQ8UGjyajFsTim_qrri zpeTy!jCM<T3B>!k{%h#=@f-Z||6hx7YNcvcpWUayooz{5$d#zt@hUWpa7>M^$k z`Yz@C)=m*~T%?h+8iG^w>pq~&i?M;Go9etT$ke9xK80{?c~`U8 z^`?j;ddbwxA^xTRzz`tnG^4QjZp+CM&i%-7qmy+TL0`T>HJ&ie8lf8=+&Emls@OB_ zpYES_@hCN7z>Wq=7;46@uqj7?*}Dahz0QgIFE*R+Gs?Nw6_L!Y&81-aVShk^Ck6ru zsC=Drau+X*z*R5-GuUfJvL6C|_<4(}vfCPmkWccYJ(HK-0|`|xEUM$!=4$m$we-c@ zggRZXbxY8R&h{+1RG46t2WC7VoZi3}ZRp+X=v!j=Q;c4s2c9{|!!CeYQ(63EV7{h+ zGa^GHnjw^jQlz2+7Sr1d|7!3Rj90N2O-2daamH;0m9uKuBB9?te)Ah$TkXhNnaGYO zC`UPa92&f20)=%MO|=j5cH}x^&y@4nPWoM(^b0SHt<@YYnw1B`<&{Vjk6vzytov}^ z^A+NnRWeg8>2aRmV&F?g)aZb-W@>=;)*g4d3HLAyxCMq}I z#s$(v0jDjT6MiQ(vc_bt!M;&Pe4*OQZn=(Z9>50i{s!ro3I7>j0`@Zp!rR$9OuP!w@aycy)}Nu zcti{<|5KYn#~q_m*!;lsDq?ClBM`?sESXAM9Ai`dz%=K_tDKV9-~_(akcWXqBQ}C~^uixVz>3bnBaRNUf)9U{l`x7KmH$k!pQFS)6?0dWNvDEzo`LSyUhWGz zb;JT#O`5o0v5)@J`heT{CKD1EkTvk)=@vi1!aGI`9BSCh_jR>e2cLqF-2!AuI6;}O z*HFf7>B>1iT+Nn0eSQfSH&EAVYJz~T^r0?FH!noaPMQT3K2`pi&%V3b^Uqec+JGMc zWCaL|q48OMRum9g@+b$=(tJ%Cp#Yk($LJOXE{6{F7U<;RVe6Rp%HlLUC;CGBmKTM^ z9xfNmUN`d1+az=T+)m26Uj8O}^VJ}1L`QYvEy{yr6%ecTAEeQ?%>2RGGqz3obp!Gz z>{s!@XW!SGnnRa6i>D?RUBNIf81i$X!_6^N-c~j(E+z?DG&EO*@ zlQ1WX0{K{jZeI!0NWaq@3F7m9ksCk3$Q;Dk=0fTSW}8xk+R6CPmpnf6$ibo?Zl!ZO zo;@&aU;cNd!z7Sr#Z^jo>N^rcDnSFWTUiV?@`{1KO(O>1;oMSo7#Hbsw{*fH_8k9k z&^leG)7!o--i|@uQ!JsLL<>^_#cihI<_QpF`Fy9FOQ@>hDHSLV81XC>maeqFJ3NIa zby&1UA+=%z;qDD`z1IM{E6Gj$BzEzxfT2V>b2uwY)A7%r4q`E~Xt25 zaYTUD_d^VPB*2n?B;d-i zT74|@`|I6(7aP7ClccT)yvQgBpu#ANAFWgxl08A)1Tuwv62hN7dJ4z4FW)Y{IZ~W+ zm^e_dDhu0t?P;{^$=Ysf+n0x5Jv^0B8CM{etP$+XRhTG4xTP-pv3!N-Hxta>oz$=z zotR+@BM_4!Cf)CsPUyz6@DFF-@-aD5C=vt9d^%W84VN9g=`PAnOw9Oz5>s`lrMbm+ z?o&ncMEOdoU-hC(I!#MVse~_kYf6FYdU@)adU?S?-#tnG7S% zD=QSew6`*J4f{si#byI;Yy*<4DF%@1ru*)Ec5^Wu3;jD86BMrs*M8baX?qF+bZrKrNd1 zX)O6TOu@%=ZbYHYOPgl%=L5qykg}Iaj{@W+PjhB|@&26B3(IK5XaMMAVka`E`P>R?dRqp} z+syA4jwlfg%u%X6EQOc&#N90ULpbuk%PV;iNP6&-x7^G?&#%Q`IR>=Bobc)J_sUHr zPNOxFZ(K|I28!KbA?EGK^`!l+MAWW7=pyzL;Ef4)OG;J){a*$yo`yPA2CVr-f0woS+iZl!fF6E85Ud}k=;$HDjX6ei6YRoJnW>bPc^K1-RT*eR5 z{8(Go$|2WziCE|AcV+oI7w%GGMha63E!0^0#wq$VWsQn+C^FIMFVD8$I$z!YK*AKz z1jMU9_@O(FAqU-*=IB7qG`)T-m@u1D6T}dW+ zeR;PeA9S5beMJ;iVq{e3h?vt7cEw-Xp9i8v>>5Jp~G*HZy$&}0e(P8wu?9TN4+ntoJDN}d%=!$ z{3WQ-LO^W5tDtwIABB_qs?t6|Wq3=FvzR&&e@mnox{9D2e^l4v@_u0_^~cTQ#1UiO z{VzlyWug?L#H$&*fli&1NUxL1Y4Q zgVHQaD1DaCpk%d@rI5(^I1#>O=JGOej`GrSHu~r)>Yx`7B3+ul-bOCG5qmiG{q@+K z5bMenExiw^n8c7nj!zr=_e5&8BK8v(cHbk}*~#NQ&eR?`@MA^4COY`K! zrZ_p}zNg5KY^{y+FWMRPG|}7PsD?Mjuc$oCY8B}4pNX1w;BImkBkm7SpNjjOGi_!M6t)u8Hc+i~T!e@Y}Xe}w_D^!-ZEhKc{ZkKMcT zZ|_-|R$W(#?zEpFLXTy@PiukTo4bN=dX-UWO6)S9!mnJ7M)543!}2aOpRa*o72WkV z!iJy87H0a9dd-zOb2u`LwR~gNO}5tYU%1{-RoSi$r+rnPGK*Niq)5Fu4PB^DTv_dZ zR7P`hUZQms2VAYdrqLqzbvU4^a zLw`*eUQQ+bz&cw*&lhJzcMNegi5|acn~E7esyD>no0awJljP0|lrZ(gl5_ohi9+4Xey&x z1H1T7*v85=3fD^3Z*Yc;4^q(+Zy9BZa4ihm#z9(i_n05?Ef3wYzu}McY!RrH-XkZdE|`BuwDou2T!?D-$2DVhvlIo1?z7F_2cBK5X4+MYbQyewkXD z{kS5I0mJ5!_vQ9{jyt`BGd&g5V5RupKr11uh5KXhV^&tfChWzeH>~5%JU_+JA3Bo; zV$2NuyUHgPl&8K#s&1`*DJGG=#nBudZ5M zytZERgv}9KFs5wpLCZq^KVH_?K@4;c!jF9=Ll7*1D+si7<8v(eGU`4o#&OqsN-Src zC23hvCAS)SZ2{ns4F-OJpOL!{0L2E5Ie<=}Es;c(pv8sC4Wgoe9BUV^g~hgN<=G{- zvf4KUkKxVM6)ZVw^6rRrnobQ|(&k28oV$*A4mOIk@P5v;d2y9K0z=uj=1 zbWCjLI-H)=bvsoZbJTZKUD}g4X~_K%_biq5CvOAxt+*#Zb=3cjLyAID#8Rq#TV2Oi-(sPw694iyaU}9(TewN8x$dmb@}hO z(mQo;sVqn~6y6#kHnTQIz5gZ-t4mrFOQk(Ej3|9hxbIv5_K=f{FCXFyWq+jc zu)Y+e_?m$DxRosz@Q}{C-j-nQ0f(>qRIsc(RhQfXrYev@cl=)kjXK((d&P&B1NrdA zKXUFrJMa75H_8!4Hg>?6_S~DV;Qvl22GhwUJN|h-Y@D6%bPX|t=`RjvxF7Xs z563MvDgh2VV$t6gy-tJOOCsR2`dKOwNvV&~0a}NlM8k|anVru4jpqchpcL?#yv{!- z<>jkfIci&}x@rg>KfY@qOJ{v1TOx3psCCZ0caYXyNki|OQ9`Ro1Rw_{5fPSP0rRsFGCuFOG`a?wG38 zpLTZ0*zYuYK{Q0Q3MfHvAcgLognOaL6u9UR36cE!c ze#66Y?elZ$?D;L(k07+*q+lwf#O}?TZ9uF$_^!fk5ReHI&+q5z$`~fq9fg|wKnA*w zR;hPK6roJpiqye}16t*4jTlyyySo{>x5=N&d|+`IcPRVqXFK9qj#{>&^a8Am8pQFz zSH>ruAI_}4-Z0^S!N~n{?_@RKO7-=e%rU^{kzW zhNzhPBIri9wAH(#kip?EoGJ|Xk<$6-<%|b|pw{JUO1mH&&XuMUfP>!Kb5R6@8)BViCy z(x5a53J6jINJnm3!^k>D8*F)Ya-5U)aGRvWfRxu2+9qN}`mq)}DjTBg0&5F9`<`{i@DY?6 z+e10)96g<0(GkCqmugjjs$y3XCW&dNypJq??6_d9wVY$tDJyccNAHIJn=O&$1;raE zgKI_H*LsmgT45tFS~aziUdW2oPFRrB#1&=-mY>ryR5aFceSpw)u9^${5cjzyjjWY@ zrh&mG@}`uIPutM-u?vsc`l5X2B%1^l#+R?Q-}kIbcJ+UU36@+WL^x}kDZ~;NmG!ri z$Qf}~Z!43SeW;DB_8Fjh^nk={goQ5*I1bI?6q$&PLSo=#Jc=sunzcE@mJ0h6+w#h=o!OXC%a&E^I=iz4I z?Jcl8kZNJr^GGfURkT()Jafoo4uc+I_qHssKlVF#snkB?$-VGZ?-G^Ze;pF+)GnAC zXCI>A#4&}&h4B~(^CT*I&~+P3vmSDnSf06|h&Pvk`3-TK`Il|Iy>12jY5gM^nINi6 z@VK-6quWWOfWv6{;Cbc(Yj9JxqQ8J&V_C18$fu!0G}%Xv0$PiaLC*u{fxI}YB}F-= zWWfP_#RLxRPcEc^hC$WW^_%c{;yM-CiWni^vH)L1F-PVn+D5Jf&S&{_UT<2s7G34Z zs5U5oQ;K;e|Az{@4%I)Szz4&EX={Q%Y3dbSm@nChwzEBr!3A;b@9g|nx;w%j*mEv8 z>r5fFMb?^I2S6HYuE|o_u2JRD`9pNZtkE>*&#Qt-$-XGnc{d*PE3{0+!drS)HS{Gn z29omCW68#yP7NV38J(NEU+m_ZYVDZXugyOr9sFpg($m4K%|5tqWIvf(i*AY9R1b`y zObop4GApF_fc@RkRvCtb`Y^U)@fYSK z5ufpPR^Dv?5$PBVBCC{NPIFM%ZNLcB*XA?jPS<)8NZXO>YwN7mTH_?iw8BO~Jt|6i zk~QD9mG-PL-5g}|aWx0c@ilT)lC+@rr}ttZBMVXT5Vgz23-B}F1<6FfLnS$GocYlA zUM8>kF!bGGnAbf8Cs^Q6C*8VQ{2py7Tu~pcjKkSG_6<%-^4;K>O<7!Si7UUZXtIp8 z?er+qz`{V(r8uFuia$o&#F#V<5UwF9Pw{L2rr~7l$y;-E{ZmfJM@7h|CdaaPM|WsV zm&4+s7+=J6_d+>^ow8Kb8zhhL0n)Hh)IGOLgygnh1Z9A5^~X0^IH7WV_63`|x7X`* z{nC_iiv|X@q7s4;K~LhEpCqQgZckPqFqX<~>95WmgaZ9%KNRR4(qM@MtnEdAkRy{v z6&qf=^W|rD=(jNXoM1{u8+v0b=(4=op2cGy6^zE#qN?t4bS_#IeB*MN! z($Ur5CovU&Vorn7`6!!)eV@O-*3YXQ4Tm1LZ@?4N<>B00gDf5E#k|$u|Kn3);NxqI zOR!W3E}-F*6c&z{Zs{&xI;$^W7)T=!NRydSu;|7ho_FBE729qilBVePN6eprg!4|@ z0$^?}7p}|8dJWlg_yIk%I@j3Xv618xjZzyIodZi(rV){_GrB01?kVm%X|ojnVRv)u zlLooVa_p$dcit(;Oj*6HNc))gS&Q~F{!B+Www16%(YQ&xxOq|RRY!-p#g`~TP7&=* zaOJp|7+e()&B+Bb=+d-qH?2X?fpX-YyYXH&2VfD$ts>7Qk!UfYxl>A-h8%u2tnT*b z*93;~(=9zex|kdNWg_0tth{_~R2mS5rO7iD;}6@o986XUNZI)U5GOTTBaqbqv6GpD{1^(fWfTc zA)mJQZ}ImS9O1Xjv`2LH(ycTrcXY9aml^q@3}ue{*##(9?PomkXvc}b>h+eA) zzgmpjhd|~{4-og>`qi>`(0TW%lXx{ilubS|NeX;(j{i}^ACNe1c z8~WK*yNSGYg4nL7I$9)kqn_pFFS`;uuWaZvnlv@8+0%y=OtR5%-VjE-HVRZ~qqbhr5F$Y&Bk&)qpdFJjH|Ijw9z1mqfv1qy#>1CWt<-JJX za4ILln@z1l*KNwB9k|lw*3#l9;*O+`EeY!Ib)Sx1JPLU1tlfCx;e`{Xg*?g!=cV!0 z1!gy(iePuRd%>yrNG$>5{QS{AOXH}#9UW+2s(Q(6PZf1%U!AjV>DyY;ym{jXKn(xo z<8GLuUEWf;pJeI&n#NQ03<9t}R*x)Ri()3iVk7yP75S7Z9E2|jj01Tp5gbE+Fip^8 z6)etwZcdSLQ-vo8lkn(bWUbJeK~-Fngb0y{aM)D0=vOa8PW1O5&)PDK*R#v72hv1P zlA#uK`K%`~WhqoJv{@VxwxnHU|Hq@^?Z{RX@^iMzyf>pehK+^MRKs+!3*$u`-jMdj z=6OP)J+Ro*K5N8Z zvTO_I7=4pj;FdeQ|CcsTKYI>#1{(=?8O%XY?G~|Xu-9C@_++c>V=yY?=!eQ-qFxjC zczn5$ZrQmKZL*nDMVjw|zgF3C1d-aT^XA{eQaW-APMlJ@Y{*#?Qo0;>^DE(ZemAvK zeyp6{7h(F&=53Rbv6~p{1JcQ}4fzG0ux?kO`29}Jge8pnlGN8yD1}-Uv+n%EpLI}o zj4i{x$#tVxrf@>fnl^Y^9^^*)%Mco2ai;QvnsP8Yc>GvHW4KSq^Y!j0=%Xg8Ut#jN zbyS}lF|mvkzjyaO3`g_wLxCp{7D(vqOhE;$zs7cv7G7AhdghR192(OsvHKZHAnvt; z%0*+JS@KVyD0jtcQla|5jO6%c9iCE*9SZ9kDSA2ip~|V^nh^{P|8T!VKq~)@*>8km zWbWqIpFi>zG}IOtpOaDcZry|GbNAI-osU=WEroHMze$ezW2XSKqOc{CpJb8gg_x2h z`g->64rT>Y@+m&pC6PQO??<*4JJ?n2FrH>8j6bXnGwsS*aXg~45&G+6)VzIon?J&W z;bVcRfLy9566)w=mWw2&FN-{=vjO-CT=ZBTXy(lq1#yM!6bwMJoB0nwp(qLcuW|@V zkhdP+$a*xK%|a#9tgCgU|NBs|V36MH?j}OMj*AchLH;l^EKu=f?A2EfRudEww$fEQ zj(DVk|2@3t9{t$uvorWG4%(kPz>+)#4coW9acK|{SQ>AiacCDEMWZQwC)!eb!#2Uz zHHZ#%I{u~ii9%J;w(bb?Mm(bc4UVsecVS;2l;I|=776{H;|J*)D1YmNEWx2!?&mpx zR}jCKf6uU_6Q%?c@+p~=5qsem$tRHJs>nX|3=x7$TS^kWcTtuKHiMB+%K1$`1=4RC zx*HdUtbX&{bN}>XIT4dH(s)3~2kf(EM!}>WSGqo%4*u*7UsR&PUMw*Ux#P}Q+8@Nb zYxuz-c3-uo1Lh1lXVEYPK8Pjc^Tz+DfC(?ma)nIaoMx&h0AT6=fccA1;SM;f?f%jc z&fWg0_Ra{Rs;d9Oxx~}8TanFDWiIc&@PoOYSh!+p`ia%!uIiUIdm%lbC~OMm`dTXmn!Z1FY>|lIDL+429JiDImj_-ZXbN0$ zB4Gl;VVdX60%D9tSdg^8aIL!WCedgr?N3!!Rd~IQ^(_A zY}yiMjg42|D()7|6AjUKbeSs7F`Ol(pd#w;U)k<2o4`!a0W{V+|t6>24T{I3m#?twr?I>MJq?;*PKlntW@nq;YDD{F@1Wni)u!p~o-= zM+(!gFn2Rk17l6hjryhi_fu&pFTHCZl+AL%r&+rOG?FtItFuLFs+HA=y)yD-S5kS~%xsLA(5%7jIU!#*sOF`^@gsG` z(5vnYGel{VxaZB&*Jsu)utv5o|802YUmI(ZL;ip}pvTs-BnC!0B4DjrBc}F*1wuRd zLQhdR4HRK+)j5@$k)K%tK^QGiFTQ0z23m*$pGt#c`m=Am_==m?AgvwR|;YZ2SY>6@fgX<}Bu!H?#f z?;0uX$!aO5>ZZW=$z0&Evw98dro?};VE$B&&Qw&yv<%n-)LRnbDqqvLa@=Rf45lRw zKxo)u`hPQ;5OkBefi=8#!WwpHR-tgWVyIF2xw15cY%u&n)cA+)w|dV4p}P&TASUGg)kWF<_sBQ!2aYg=@Avh2u7MC9Q6?vn%us2=ex3)ZNvaKGF-^*` z5tA|Qd8#O=R$$ozhkfGYFZX}(5H1ET$VoR^wuOI_)U@acvQ;0R+jY=?zd~UL^C7)( zVCz1=b(={}|4$%D7#hQbdDt)XD1w*;4xI3Cak@OiJy`SsSP}N`zc|$7@{FMfxC5xQ z!RwLY=f{GZM+ygA0EVJsWg=e7kQ6lmR)mVq#9k)tno3Qdb*GO}2Y~GLTkl$%*=tns zG&pMI%4t{pNClX|=$9GhrlWN$ug^J8WAzdaT644%zxTP5K4Z6r$XiIGN`A)bwX>q( zRLngr#3E4B*2qeWk-^9?LUAk3zz{!1s-_R`SjFJgmXSixS@^#@&xn~Gkjlbw(S(#w3K>GW)tOvE7H@P#rCbIEFg^ac2!xWT&>y!f-D&NA9!J^3`jPFW+tGQ=nm#ms(P1<@8n2_qpb-j*6}VtphohGyanD~aE|a}!Y)|7EugP7 zV3UYgYkzBjage&xc`J0&1t^;-!a#Brh$YPDKQ_Cg=0C31n3Gy!~ax~RSteuz9x_>ZV>R2tB_D=r%J_`P8^J76(cT&@2mSM{_(~0?`fUWiq z!BDgE{YViGutUQ*B-b3cefb?vcDq-vCdk!n;|imnWDcXXQ}wZWk8(YA)cY1h(xC$$*tqieH|86E z-7Ltj--Sd7pNK49Pmosp;NNheH3l50uF*-}(s22_ZFnziKNf;4UBf`E{&3z8_i@*u znZ7^}t2z939`i&*ZSHhNu29Ij|5HPrmDC-=Wuq!Ov)jb<7*@*eJna*GV+bx&YQpZF zS}p-J(nki${~PpUVM1v>J8TkkrLN7Io%(2G8y*Q?H$RP)3v78a6B}Hc;Ej%Og%k1) z+s)w7F95orGWmcuqF_wU>S&tg>Xrljaq?fue-D6P68sA3D>#>pOvb*q2ZO4lVNcxG z{sAkJ6$)<&vxa4e21<3O??`u)6Y>p?_VCaeMAHbDr#vSfyYT+I)!{NteP$PION;z+ zDw|ay{4BflDHVG^LJrHanlZo`VuVg%Kv()e2+cj)XE1Gl34|yJsr?Zcf1!uXjc|94 z)J8Gn`er>hx=-fr(dzGXQQyXj@7NG_JVGtDG%B%K2#M4h@5mabA&d2t^nC>33gPBB z4GfQTB@HE^acNP0DNj1bD6iv{n!sF077!!T!-TncxTCDHUc=V?LsPE{-xDkUy>A7p z(D4>58p!>Epx-S+(n$0Ih8R5%#Irr!K!d2ozLtpq)~H;crXGHa9UmlE^l0kK_(T19 zfj>hS;r~%niLakHRU#%MA|`EHCH~&wCZB{+;Y;zh^Vc(HI7Il8Lb-QO#sqp?`;xN7 z|A`V$lL6oWw7Pi%aM-Z(ogvYoiSKr$FU3pLn^;Q>;aee+wfdrr6z@Q@${v&v+?+fR z1CwtEz<^^>^eIM&PB7ZVBE}n9z#FQ55AvU3APw2G9ahaiHMu|<`G3+|MvJ0={aT3k ztt6&JPSoT7J0|gvcL9))V$JUt9^|-(ReXY;9-N=IO<|mPwign1GCzDCe5$JmL`9)c z|0TmcRc6PYR-t>HJB2D+YKU4VSoNYVtp@7d=tD_p@GnB)GI${y2!nXXMX?LxCDq~f zvIppwR^YMVJ1%xX9PgqH?oT?S=E#rnqu^Xq0^_~XK_B21K3>-75{dGSZ9R7mu-K+< za@Us2a7--h>srbby$6WoM!jD43ka(Wcz`sSh>|;*e?$QcKn_eOL!JqjyzB{(zGZU2 z_IC|)V;3{wV4W#nRG%p9=OuAT+TT;uv5rc5%2KKr&N?`v$IrN-_ zy%q1?`*-8uaTQMrc?;wC9z5TWe|htb8uN@CBxnyM14+HH20@K!_EvN8DQRqKZ_ zE^cDQZ$#ni!V_M$de0?&W2wMmTlI8*t*rNxQ^~4OMH$f6v*)CV*}K8H&H^3`yv?&r zv4U4X`?H}XD!?E5j;6j}3nILXaJaIMVd#ADoVk~J!k zww^Y7(lB{=Snr*s<*a|(tr(tAd$_{kpOa8oyRrBFGWFku>LahQr#;`lL5KB!7CGN% zKuUM1VNPo=uv5*QY|(D-VC2%X{>IvkH551roC3-bb$C$jB1NpI{6 z+qq_ZX3KRUHRXaz#`0}l?14-_Ym^aH1mF84oWubz$ndgX$uP#>fj7HZX^nk7*nR)m zWAZ?T$W62B*(-w0MVkrI(rBc2!57ur6#~1$#*HER$sgV9hk9-kGi@@WgFYHsOJ} zW<>xIMg~jY@bn9Bc<{Canz*o->XLZ(K?S#-)O5 z3Fk{bww{x7Po*&pL_U1bd+K~kp@K>hL=EW}2;czIYm!uv=bi~-*6ckkod6TX7cn-x}XVU8Gf7W-$?0Lq4^ zP0YXGaHi{K>aMXww&DLGX4nHTQkWKIoUwycca8~L(G!9LRI)A3B&A;P$~&3AdH`#} zZ{-~QZ|dZ+2pq!qE@1yB25$-cM`CQixn&qnN+YDRh;F6JuNf`5a!49Mao|91cAXGK zsMKXcCPwAXA<5`#JtyW*aFk*4!#RV*$esdw}XisT(h7YMIdr( zm&>Oi-NR?F-vc|BvD?W$!{}Q1*+SJwZQHTCWBAhLjL=j{%0+~lKm?_(Q{NA&=L-L9 zy)#n*HiPoAa@cwB8a-1bUi1o?;-~Vr(1i-liX&0AG`#&T_`(RZ17H-ZimtIA9v5Bz z+-N6Xio1J(gX_-8B!7=w6LX_YAk8`GG~9yZ?h{B8PebW_1X$??p=Yv@tUd|MU%zah z+)uF~Kk=*a(|bldP{Ds5*>LSeYCv8R&2KfE80aLtF8ew^bz1%iZz?_^7DA^4M`Q#F z87<+42T!bv_Fch1g%ZYxz(5F2v;WE!C6{qHy@(E7NDw+e(@6dc#OE;QEakOH-+ywq zL!|)(l7@tVIDbB}tjz8y9&G;m5_gnO=BW-}qMR3~&#%Ee1r_Vh9^JH7ZEwI%!heg)H?x6W`o{?;;UMLwxde z)UMmJZGYiB$EcHE)_x*LB}51|z%Tgu0X*^>{{_KbJHJpEzXcHAVfkZisfuao>dPJ) zH#~P?6@J>Ij}y~TVPVkreo#}tvTcPP>^w1BcE8k*w`&B8&@`|@AO%-jwG{k*5FFHR zZ(6~}Z#c~GnUOdld`k9rQz9`18btg=Scx}Se|v5oOhe(@s)<4464;xQuh4@7gaY{A zCs5R#meOOXcwI877nOs-kNbUPLo$%D*TKCyT;-}mGit)9g4(3Ms>{0FFh>{+m13qE zyc`7GQuD?d77#P*Shx|FI1?Dqy{}o?)ijqcib<0p*)3jmQcI0F6Vf1niT8S}y{RXD zGx28|TAY!7$r&Gr#lVyS;rE6sVsbNblKBB}QuuG?M+YWoS1E-+`t@Jw)TWa^xgr=~ z447*=#0ctu^7;K{PMFy#i+${$^!bs|xXHbLje-7w6UQx2$>SO=AJB@;6g!; z-ThZG7bDf4r-pL!B)#{!l1$W6xs$ZlmeP0$K#ryI*o7V~yiUlO+M~){@>GYdKzoyv zt<^W%v5hruZTxjICiAp-wCMLj`Aw55i7C_)-e44VM)4p0e@YL(6Z|L=nhf=Bs7Jx0 zp04$lz^52yfLnsD=qqkCfs%h9{m9GRKp^Z~@#iK|*JBJ_pDz6m>uQko*;pFvB;FT zF@s?+K166e&YVPfy-Z)(+a+#q0v8Py$H?m$gekzDXgej+G}LZ?sJi&M^&AZ6S7{U| zq~iyL8pY7tC!s#M3IK^T3O;$&@66bRmo<*X`iX(PLl8g7zh;Gr>?yZ?<~%10DHYaN zs26Anzb60_U_vzyc}V;FzCybUtxSoS^Xq8 z5DYu9!$Ux^U1GLFCynionvFe{||Cx5VeaQ4U_0+gTOg@sR zO7dmQ8A}e|H;sokg-wh6s8mX#@J?!NDdrF|&VDhYuza+-CBUbRNQnijE0m1$^zN(L z27h2_L|-UR(%~;cuqp>#?*SR$8L;Nyin6@yx zK2SsB!7P5Kbqa(zTTq;nW*)ZBnI%lQh`CpL{h~M9czma76u@?b-^`s86F5VNS%q`{ zv{a>EyN;eSYwbnoVvxdhelyz`HYArk>H1KI~(xNI~r&Fs<{y z1m=qQslbHYNT5|o4z>c857A0plfB3(2SvCefrY%zN@@N{8Io_o>r@SVSwSH*te?kG zcpnu^RJ3J|FXWBX-N}oHWAcJL!I(#C3ZSmX@E_JJTomzO^reS57=G>6lN>~VkPu!f z61WNx`rnU1XoLT80LT>;(7j@-ySfF8k;vzXa&y&{~A30khX!b8WM@BW27{3(z)xO zSl<;ZpwM62S$tUNa>U2c`S1nY9==@-X5c(eD@vt~`%D55vTuTp@dKCwb7nY&dU zayCV9jumLxNye^18%jS8D22zbWP_DDzyQ1jH#{h&$~Mf?7~|!s{J*bQ4HA1PmsWLo zAZU-lNtuhNF(3boumAUqiNFE!55DpOAY$tS<}}CNb%WNZl zH(>-A;(*k^#l>vdOT8$|kW1|xf_pTlH;O_fiS+akWQ(`Ch&?}RS_%?hd6l&1|n zQ~$J&y2MC@UTL=9;(p9oUAdMZ)8Q?stvIo0Rlxs#B&^j4^RxX6=fb|ACXGlC=qF#} zElkD!I|I*zC~AX@X@ego${lJ2Vcm6F@eTog=maAW`BOw8jS3S$0Qa_PE#Aqri6+F0 zSD#X3eB=o48;DD+oE5H)>)P&p&AidGZ@-*odi76ba z_jd5_zTkx6!#4S|gZ(uwz!jFyG6$jb*u{=(y7lMAHdR4264n;BEaO?{wYEPlD@2T*=cek_&U9;sF7 z5E|S<8Hen}T_PbhYvl@nFeMWY!-mu-gB4S&E4TPw1GVEc+*tc05ILpuFIttr2^R?c z?+YHb6=^_cpn7`c4bc_OGRucov+SI4<%W=PFORsQ!x~>au`ZHi9=|H+T07f1MBlX9j_v zodPLPqRi)VfbN;y0)0Nk->zDk)7Vg{%ourb&{xw(4x+`2@%ho)78?1cx z5PGaN3Fp)N=yQ7Aa_(%$|9l815B9KaSpu(WWUY#l5rduf>Q=^8qYV=qc%Mnj`TP6% z<9uU;6&njV;|oKBe*#8;c*fgL1c+Haioj{&byv_~SF*R1M_~?1(N_nW;Rk6s{no)* zn+5bO_O@46Vzw%aI@_tafDSalpJeRLJg^>n>_8r z&-IH&TBG$oR*F7)a!ZvJzzz6NqVg;RE+GE2k6GZUdW5WXPE_p(qmN$q>Cbm3gu1!h zJn>fal%spqRHWL1+NaLrJFo7#Lb`CRMd4)I2ysxKE=!PCC79QijH7)nr8@R;ys%7! zzqo^$P@F%GY2IP)pe~>(p2FKF78)+W01!?u%j7l4hFM-6sn&t^9*h-aaD<>IGPyyy zbE!`Ek{JOxmq>};l94NT1NF0On_-@G3QXn0G%zQuOfKDY$mlC zS8Rv5okVVP15xCsFF0&^(QC8+R@w7SUw^Y31V%$dN&BkFMDWOI>#u^GHZ2{>o7qec z3NaXY;-l?Gcf!%2Ufr}4Qs_CjCiaCi6TiaxcK5>t8J86wde1tA$ouyJNjCJ=q0X>UY?9lLyRk*$g;U}ayAmv@;$n_MApgSmSpX2Rbx|EY{i`RHlssMj9T3==9sKsYbFCV#XLy1g&(--z@n;Oe>?+k&V_e@BB=z z?lkxCQkgXb({PS=>bh+#wS!_6W6D1~xtw}=DnC!@O6q0Bc9O{m-0QVn=_Nbsa|n;| z87#Lfsf7U3l`!CJ5k;eS8y4&iz-CsQpSrhix&3LLTn_T0irN1k{O?5hW_ime+EhPE zu|J9a-!n?1?pzhp&W#19b4JL4tX0wdFTH3i`5sv>m5;ylHhq7O7H-!O{KNo{B;lB( zLx)0~W$8#bud~f^gfEBRY`|D!0=PF4l@=&XrZ6KADtus(@#bST+T^L;>Xx0ZtJhcW zf`l(pI=J-87^o`AN_9J3bysz}=_sNelA1<o_-deMFKu$cB6TPOebWKnSlN7oE1eWH zvA&F@9xvK$9Ldfj&Ntbd5HVNrS~uwh6=VgIh4GuDqYFTiUab8ViqmNwL*;=4tfl5 z)|UMGeS688`RC7`P&9pxXX4l=dAtipVXxZv`_u!7t3;ZVFVsYdJgbV%_tluWwtc2; z$l~5PDrUbDHNSQ=7#km*e%ns|w|>7TqoxHgMKyMNsaT=13!03-vo}jk|KP z#`+8~3<0^+!rab%*)agD%6=wYaA&+#D7Ic+&wde+%m8iWizCHKOPD=7l>7upNtRQlR;U} zwxHIIWmr{Sb3o-V#>DzW2axVFjn!=(Rx!5dbrauH-R8_V<(CG1M0(wX_Kz^O(&FI= zz}h`GEBhj80UmrIr1{WlL+j;Jt}(5B3i5j)fX%`zFMlmC$;mRw;lBa>%i(eNeGcu_ z47Oq@|cjQALAP+$<#D;6}Sdk#^m0`+m4&vdkBb=ah!bL%&= zQWVmmQnc@A735X<1Y5$H2u3!O+{j6SG0*E9!5;=^5eB#!%@)h96P4Af9>4o`CYlRj7S(f zJcFTtyA!4QK5tYm6&Ze#9Ah#8-delnmV1kkvG^>+St?jOWQY1=oCrhROkA{3sM*=W zp%&?ur{|to@pcJr2Gm(LssBMa&LqA)SuA^GZdV%pG27Tl5^jMR=E!js`iVmuHJa}qvz52_%dUDFMq2Y09B=D;7X}5pYyYw?1oXm3`RWP@CmdZQU-R`@){)8Jx?r zW5VW55w8|!Uu9c=RVIO2emJt=bP#5ty~?RyQ}G+CP>-!?Zb5d0=aI<;z7>nI$?~2Y zXAhkcVpD)zrx1e{)}TY;?$;2rm;B1J^+q}#)LAubr5>^q4U8+gyz|>q4rUtT#kq3M zxQnp+!hyN?0phzX?_zFL$nDHmW25F(n(X>Z;I9TZF6F1mO$YV7aEuhF+cM+|gPSm> zCRJFDWIV6BCxjK{DeGoEHNTRlbkNMCP@!ey_xGI6+iDkVe2y=bJH>p`t6&a9D?ItXt;HNRENFj?UCG1WuyU#TYTpk(yUW(Vh_3FX8}?vO{3M@iG%0HHdaCirc@yX zJVR%-ncj=iEY&x%!)#>Wh_<8N_v8%xTsw z$y;#o4{Kt)8(LD!cdclD;xwgnDkdP}OT%0CG4PTCEu)xyP_qb!rPFI)=Aa}f5XO3o zna3p9OS$Uv%w%+7Po)n1y$01rn2-DDbB<3%AVhT5o?1cP^Gr!g!_SI2&c>GpU$w!a z)GtIL`?7Z?&B+FIMjs1pCj2N-0_6Nvu_4k0j&B4dQ#?(RTsU-BbhkH_L!w3nElPhJ z)G)9HsYK z9cw~6T4Z#zO(?_eNSn|STUZB^I;Nr(uulL{ec>y-DfiYRTKtN644dRU&XKkwu^6ha zSnuM#IC%4FiH;LPG0 z72~<)LMRDAeG~{5%X4Y!T8z!!&EfaI;8;4PP6KD-c6_ec1l|SXM>IJL7X@ zsLl@F-codpga=D*(UEY?j=Lrlac{I=Ood(CConbSyj6z&R1 zw4NSP?i7^y0n45fXCEBQr#wMtpI+z?D(N1XVYdpI_vsG;GnN&=Wh+Lp%5AKc2_Ep1> zU4!x9?`8G7VmDLN|9X;!6&(~h%_!A4>KYgl%P_xspY1ry&*tqQ7a#S09beOj z%W;W-zWRXf%)UN%cQ5-nMPP5ggM+u_<8<{%Bq!Pb^q8zt5K^#7I=s&_PrgPkM$f5h-9g%?XOof2)Foyd4 zHi=mr`_nW##eLTIrqzaJn2c-0D_78!V|4*@06v*s!lJ#2d6Bmt%%@UjIv%@Ntuw4? zmsx+?Ux2_((w*S$wQBzW(1+{0*2$W{& zz+atlQtebipvZI^P9VnlMe#DyZ)_uFF$tB|HgSEbEU3(zs@Yxt+qP@MO6n=Zgws@* z>*dX=uOcZCo#;**RyvelwyvEnFX(VBF9*_KN4<>Bc^E$;7S!AFXh<1aBSpHNuEL7O9weV?ZvQy(=kr+ zx(}5lf6ZSJC-!6mhVsB>cAlTkzL&sLYKgAkfaT@r$4&m13fN+W*^e9 zU@Wzqjx>rdZy&Pu58#gz&~BsG7{|U>sau&p;;F0|t87Xwp4llR-b$-T_R{$7#Mq## ze%_3L0|^76?~~3|M^3u9GU2kuKY>aO32eb}O!jS^a|61?lh(JYIBp(hciOAFrjF#! zUbo!V;=oj1F^va z<%lsCxfpENTGrQYcGX)kQtuN#IH?+oz1czfPITxCS?$C_Gq?A928)J(s`+C296YsALxAjT_mec?WuWh*{k`T~O4pmC?c{kG=ljWwmc zUGZ;{e)>1eGRfMBPI*9S2VLbn3y~%#F8m$fv;1+EsMuG{FYMiiJX?+Bn1D$e#$t3t+FCofL#v5x7~WOH`%)acBT zA!b9y7$+oM0m2YA-keqoF*P>nKB|55w zH^gbDi@__!dpLoTbUDl&+uSscGxixV>-$n*o%Y-7PYh0$s=asgZ`S(G3ydA_j_*#d zZ+1@QypXN`C4_WYFgRh_xhA>Z?7NY2XtZGc@$qt^siO%apu0v$>9L6jX%(c}TmPhT?NMG(fBuIsaSS5T^zm@q(B3=q zu1&6$ec^JFy=!HxB*mgPeZyS9wXDpLm3$t7@g( zI(OA!s}G%h>)6IzJum)p_Wt)?rOAm;5OY6jV0NrfE4b%Vbq_qFTQ$1Yt2VkN#!%>N zL)woG91&m>->TJ$S?fO%kG|n{D9;CQo?p0`w3GFm&0h{9Yc$s+TY>BMN;~wbe3f`$bANU{@1!^PieVFZ zEV0?VwDZ@kZo}t}jZ~FewFlk0C<(%f%H0@$|0&T$clN&X+&+T03OlA+|C5;B(e3T~ zudg{z-Iw<@aS@mf^%;#+-5Q#fw0rXQ9_1yZJJa)@ZLG{cj?M;DP5; zK$z2Ra!VI^G3C8D!hIENZy<0~R zQFS1IrHURY+55jD3gW%R??U>7Q4)3Jk&1l zp}BPb4%~OSet|~oPpL@k3WYFkzA;-!Zu$k)`6iL8DjekoiQwvkP`m#yVh8Cl7;LJB zhzFaa>!q>@-&)(;4x)UEtFSSg`&Te8#NAL!r_R^uE3&CP&Czq3%}Ff#P?0+a#n4`I z_G~X3B~v^7&YtJA*qa(PF5^q?qyw5&@dT2(J~LERmv7QLA4+8-Wkk#x5}>^O`tK$* z^!h#pOsXEKf)!rA30|oXw1d&M_V9(|#wq z@R{sju=u|7c2jwp`ktU3(%dsT==kmHMvjncvE%q?19!mLPfaYS%1V))w)(H}K&dAi z0HsB+&5OVD{j)AH1LTipvkI`^f@oLlF;B`FYN=$I94oSn7P_F%F35ToQ+#u|X6 zs9>gcpsT(hMBI78rj@4~Gtr-@b)TxhO&2Y*yEecc>8||;Z?Ros>L@K!d7xLsx}$6{ zZt3|X<8zB*%|CFb8p6-bX5chco`D=KLe9RxV&>`M0}jzf&Y7sNR7|!%B-m~UD%kMmJnuB;+3{M@}Bl82=M0U)Bc^D&YGnEc_4>g}DWbH2Br zf1P+R$37P6HNA-*bARCjszMq6Lj=W!l1AxM@C9z53?XIlSrVgePYf1!*9=e$YO&mQ`aC%ZHK5**6NPEU~v5ry^d+Mw$bKC zFpE)I-Y~=+dTMk!1x!imuvw4s`~erO427!8Pos;U43tpq`%X8m!0m*)lWn){Xj_bx z=LJ(Bp9B<~-kNM2sv2~z8foZjj<<*Y_|51czDecc4d;AoD`T)pM)}&87pXzrcqS70M%N~P604T0 zC#aoUv^cTAgNDIG#A$`Vn49=F$r;wYJSfFe;%SJ#&h}vEs4aK0W?7<|ux6A~k#c7k;Yj_e(s++t?+1(`b61YY-SfKDz1#%! zg&IrBQy38BCB+N@@frti+;bm)c_DC*uM>+cS7CA*Ub3<@*fGSR^w|F&0vHP2u}mM% z7qRthH2Dxr&V#_2?wcr&kXm0 zy$oG%-H=`Y(R`YRTrB&qN_tuz<`ID!^|HyRS}W(5n?u&P;n;nL#LTBCV5@%ynio8XZ>}U#mY& zoEkAWeB*#-=UBvq`WsH*qc+8oz{$&&Zun@e6OBt--*67G%w$?(94MOQUzl3$a_0vE zc)qt*!1bHnm7JDc;@tvmsiAbQ3jP}w_2#Pm7h93L>X1YVdabsUrz2Ta;*xoA>#W2n zHzOOf8FDENUQCO9B-Ep{fI-Wf%|5E-)<*x~c#PI+$fOxC&V9EUT$fqfV%|&;!!l+j z1l~J7;5>4fUef_3OwH|cnLTOi2Sb;4q@UH+A57Wj)*I~vJqHiJ`jrjo{p-}5|Ds&i)o#?dQYQHf!Z z25ysy|2-O`SBaP^rfWr(Y5tG+gBJe9_tZ(kb_7z+Qo|m9B|CL3Y7Ac{h5C;*i&#Ha zFX8;Mud(H|YCTQg7jYg@TvVcGYRF2AD$(1@dN{%6$IaDyTy^kcg~xDW*6RP1b?xy? z?{9q4<)lvf#dK6ig>2#EdSd3JsO28p$n}&&a>?XAoJtN7k?Ug0HFLk!+*U`zqA8cT zj8%+sTWFYJzYo=~^!xs^y#^F}r?gGPkB zXg4(To48JO$$^X!?w%Jy8R?8Li zY?plA|(G=kbJq$26_GDd7}*C62BdTjWsa}AxkEi_pE<7m-aSHlwtX_XsFiEv8Q zc8>I$${BJI%_YC@^jY0jgB6CxP(Ahn3+G{yKnn?XMw{|vHdS&k<<~usxLe&m9Ul(2 zo{u$P(RYjDm|#QJ*)diFc+4g6hldOMmzKygv&JA#qatF|9PT>bE)j+oR$$>^q#Vmt zEDjE&ifp}j#ZIkc-uXAcbw1J+m&#=Nze|T&wOs_4*iTm-Y4T!LNA;O-DhjwVXvQtZ z-2yDYLe@wkw8_C z1c*MNTcfa4O1J@PTfI`37jB~nDjsQd&CX)04Fc=760)Tel454(3&vT&CMYN zB@NVHX#zf(un>w!(Wqn-05b_LOF+f#_2p5U2HM9=6gls-w1>3Z4z>q6%MUThNe4%@L{NwoI6(3hPmMRFGtK&=kXM~no5(hWkta%$YSFl%37z%Zf1!F;u3qn z>8RtQu11SNXEkq~dO6Kn?qqaQ!y8L<8Q6LkYM?Wgc4q5o5nPbmm2oenmCJqz$0cxVDc2jbmZK1u>G%o&l#Pv*9MVg)vyEJ^A||T z5$K1`b@Uki8PCK;ztO4`-uU&S2*lJr^|SS!Ca1V3vbs!C=&2;#!IYVY6upS1%Yd2i zJrW-AS3x%!{r2_iaJB`OCFXAf_t;33=i9ZNK_n_gAaBDxr{sV60Oz+RX!C1e@6#h* z+@_MJafg=|2Imtf{EN`*1;k4^x0y8;3J!Paa$%i%N1}57&Z$&v0%r`HwL z)3zni9!AsZNj~F})ub5qgO|ZnDwOC}^jlv9_SC|V| zKu&J_;p@EG9is(h1DxKxe&0RLDjFW`UEy2wwdaXDDy&|!FDEI>hj@C+V3$r!YxlKA z$4Ja~pjXl~+ntys1H7Muwl!}&&Q+Mv2wnC`2pJ5RDz14YU4RTx!T&*2+Lncd>(6T^ zw7n+J*Jlc|LzHskZ)FFXfX5G&V00>< zdF<0!ZXjWGF&^YOO38X=gsF7N-(YHR0)O}pxIZ!nPE23}oEdHh5@am*^IzGT7e_Mc zM`|}^Y-Q9wGvwHt3I8I5yO;MykW}pR`9XUPiC9!!-G1)42K_Ood~VRBPWF1**J_3( z_I|2%U1nnw7fn0ydLn=y*vH+LU{oiw0m500ZHeTvyxMKT-hlJ#9IxFb;0Qa~U7!0- zKQOKCjqr&J36~zH7U)yAR9CCfM8T=onOU%!z1fO4e&HUr@?eH`=0hV_6)o^IwNjQ; zKZD~wq6GvFS~{Wh)R#2KZ2g5-ioufp7|^Ea4ifF7h87GrL$kOCurRYKWZ(N(6hKiS>)l8KpA& z!Fmv~|K!xtAJ;UVoR}90XqceFQRc6vA^8AoK*=op`CavVc8yp%!W-#jgg%H5s$0UG zExxI`7GATe8F=!QmH)ZgGV&Yi0niK>f=x?dvea@fK@blz1)V%WB~o4nPunBm3Sb)k z+pA3_VkS*Nle&dcKW6TYCmOJ7Xn-C9aHXG7DS(cGbgTNnjFCRbK$5UlvW<9Skelcw zEC^%~?mfH0l!6u%J z2Ka)64hhH!2hPbiVCpGOAZCiWQU=X}-GX?MV;nxEjz@PJM>IfI_Q^Dhc2e(U=lKij zc|&}vaGRVwLN6w^-Yj}b7SOG`eztalzwl1~5Bh&n-S_W$o1K=W-A?~obV9RAFH*|r z?#ePmU>6?|^jF8JGSBo`*^kE(zaeDpZYn+GAGRHtA)kFEVDo95Uv~?kO~=|Aq&>Ea z4+&Xr)O-jfRkhbTcM(Dmy~9Tg{8G4Edxg+M9(CyQ*U^iF-0PMapjoO=p?+r37@3U5lL(+!*Q|4kY{*$(9e3fO^WIwfn(yi79+=_RwdA)Oz!LW{%*{<9*^(|v^ zw8Rf_>5)h2D9u-VTPYSy^8U!DiT&kHPD<9671c}ToG{NwwATBy4Q>LwBj|wb8>^0Z0k_9%kG>hWD#w^+2iU)e@f;5r_w`Vx;r0DfR}S?MnsK z63hZqd(qsEed!!!xD{t6Gzvo*a4asz%A6^^+|>5cXgA7uu#OFo=qEB+>MEse=jG}+ z^#TqCZBZq;dnE-OE-aM^uYMam3x?a_jTal6Wz%%Dy<+3ABjv>Y!tJ*Hd z4%Zm9eO`3R&XwY`xb|DF$$qoq)eopUSV|A&>2BU;T6F%>J+r{Oz0Zd7jv=&~3mm%) zW){G(v6#b{e-ycf-`5gL8dImTk~Fn%T@BkVR`U3xfP)06tWu_rrM{aSiZJ{~3nw>V zIf~##9yVXEDi5eyd$?moFKnNf0}iTHe7kS9RoJ-got09#8>a41OgATW4S&CDW~FNc z#9xc7vgt_kjzf@kUbB$Cu}K~~Z6%*Mcc=vwry73gM(Y`j+7283XqORpjHeofuvjPR z(@>)O;$q6234FLDqtSQ#=^gn@9~*r)r4|iT@adT{%p8r9d`GVo%jos77gxJLM;wAL!CU*m#&nXPmUU*yU4C7tX@+a8C=->Fs<`)t=e z(pv=}=h!`iNZnm{D&QYn6RF(+uky%F}cTB|=j3O9trn=bZI@?#rz&8cfc5Eek} zo|)E>%&Pb-qZ!&EdK8lXKF6kh)M>q-w2`k@>@X@UZ&gneSxC%Of0A44TuB^eqwe5N zy&ii^&{^W0Em(`O`ch)(fJ#B^v}?*74WN;wq@fMDLQuYJ5_kU)3g@Q|{FY}X2Ab-s zjY z-CK@_3RtVQX@u90RtsUc#SXuY6sMz%G3hriudnr6_XZ*HApi)v`N6LBHCXs3N6SBT z7`UwfQ?kffuZolgFqtw#-fp1E>Gi50Gd>z?qSDd-?7=o?DF5`$63~NQDo@71hfPz~ zYZ=r7ng)z?u0K_p{n}gZ#-SM4$!Gxb<}YLRH&8wW-}ur^@?snItWG1}pQlIweY#vDXew)A~GL=`+fuonA{(lb6;r0a0~ztV?Mwg3PC literal 0 HcmV?d00001 diff --git a/Sveltekit-Build/src/client/_app/immutable/assets/0.f8980d8d.css b/Sveltekit-Build/src/client/_app/immutable/assets/0.f8980d8d.css new file mode 100644 index 0000000..02f64a9 --- /dev/null +++ b/Sveltekit-Build/src/client/_app/immutable/assets/0.f8980d8d.css @@ -0,0 +1 @@ +*,:before,:after{box-sizing:border-box;border-width:0;border-style:solid;border-color:#e5e7eb}:before,:after{--tw-content: ""}html{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol,"Noto Color Emoji";font-feature-settings:normal;font-variation-settings:normal}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}h1,h2,h3,h4{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b{font-weight:bolder}code,pre{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:1em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,select{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,[type=button],[type=reset],[type=submit]{-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}h1,h2,h3,h4,hr,figure,p,pre{margin:0}ul{list-style:none;margin:0;padding:0}dialog{padding:0}input::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder{opacity:1;color:#9ca3af}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,iframe,object{display:block;vertical-align:middle}img{max-width:100%;height:auto}[hidden]{display:none}[type=text],input:where(:not([type])),[type=email],[type=url],[type=password],[type=number],[type=date],[type=datetime-local],[type=month],[type=search],[type=tel],[type=time],[type=week],[multiple],select{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:#fff;border-color:#6b7280;border-width:1px;border-radius:0;padding:.5rem .75rem;font-size:1rem;line-height:1.5rem;--tw-shadow: 0 0 #0000}[type=text]:focus,input:where(:not([type])):focus,[type=email]:focus,[type=url]:focus,[type=password]:focus,[type=number]:focus,[type=date]:focus,[type=datetime-local]:focus,[type=month]:focus,[type=search]:focus,[type=tel]:focus,[type=time]:focus,[type=week]:focus,[multiple]:focus,select:focus{outline:2px solid transparent;outline-offset:2px;--tw-ring-inset: var(--tw-empty, );--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: #2563eb;--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow);border-color:#2563eb}input::-moz-placeholder{color:#6b7280;opacity:1}input::placeholder{color:#6b7280;opacity:1}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-date-and-time-value{min-height:1.5em;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit,::-webkit-datetime-edit-year-field,::-webkit-datetime-edit-month-field,::-webkit-datetime-edit-day-field,::-webkit-datetime-edit-hour-field,::-webkit-datetime-edit-minute-field,::-webkit-datetime-edit-second-field,::-webkit-datetime-edit-millisecond-field,::-webkit-datetime-edit-meridiem-field{padding-top:0;padding-bottom:0}select{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 20 20'%3e%3cpath stroke='%236b7280' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M6 8l4 4 4-4'/%3e%3c/svg%3e");background-position:right .5rem center;background-repeat:no-repeat;background-size:1.5em 1.5em;padding-right:2.5rem;-webkit-print-color-adjust:exact;print-color-adjust:exact}[multiple],[size]:where(select:not([size="1"])){background-image:initial;background-position:initial;background-repeat:unset;background-size:initial;padding-right:.75rem;-webkit-print-color-adjust:unset;print-color-adjust:unset}[type=checkbox],[type=radio]{-webkit-appearance:none;-moz-appearance:none;appearance:none;padding:0;-webkit-print-color-adjust:exact;print-color-adjust:exact;display:inline-block;vertical-align:middle;background-origin:border-box;-webkit-user-select:none;-moz-user-select:none;user-select:none;flex-shrink:0;height:1rem;width:1rem;color:#2563eb;background-color:#fff;border-color:#6b7280;border-width:1px;--tw-shadow: 0 0 #0000}[type=checkbox]{border-radius:0}[type=radio]{border-radius:100%}[type=checkbox]:focus,[type=radio]:focus{outline:2px solid transparent;outline-offset:2px;--tw-ring-inset: var(--tw-empty, );--tw-ring-offset-width: 2px;--tw-ring-offset-color: #fff;--tw-ring-color: #2563eb;--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}[type=checkbox]:checked,[type=radio]:checked{border-color:transparent;background-color:currentColor;background-size:100% 100%;background-position:center;background-repeat:no-repeat}[type=checkbox]:checked{background-image:url("data:image/svg+xml,%3csvg viewBox='0 0 16 16' fill='white' xmlns='http://www.w3.org/2000/svg'%3e%3cpath d='M12.207 4.793a1 1 0 010 1.414l-5 5a1 1 0 01-1.414 0l-2-2a1 1 0 011.414-1.414L6.5 9.086l4.293-4.293a1 1 0 011.414 0z'/%3e%3c/svg%3e")}@media (forced-colors: active){[type=checkbox]:checked{-webkit-appearance:auto;-moz-appearance:auto;appearance:auto}}[type=radio]:checked{background-image:url("data:image/svg+xml,%3csvg viewBox='0 0 16 16' fill='white' xmlns='http://www.w3.org/2000/svg'%3e%3ccircle cx='8' cy='8' r='3'/%3e%3c/svg%3e")}@media (forced-colors: active){[type=radio]:checked{-webkit-appearance:auto;-moz-appearance:auto;appearance:auto}}[type=checkbox]:checked:hover,[type=checkbox]:checked:focus,[type=radio]:checked:hover,[type=radio]:checked:focus{border-color:transparent;background-color:currentColor}[type=checkbox]:indeterminate{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 16 16'%3e%3cpath stroke='white' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M4 8h8'/%3e%3c/svg%3e");border-color:transparent;background-color:currentColor;background-size:100% 100%;background-position:center;background-repeat:no-repeat}@media (forced-colors: active){[type=checkbox]:indeterminate{-webkit-appearance:auto;-moz-appearance:auto;appearance:auto}}[type=checkbox]:indeterminate:hover,[type=checkbox]:indeterminate:focus{border-color:transparent;background-color:currentColor}[type=file]{background:unset;border-color:inherit;border-width:0;border-radius:0;padding:0;font-size:unset;line-height:inherit}[type=file]:focus{outline:1px solid ButtonText;outline:1px auto -webkit-focus-ring-color}.dark .table-interactive tbody tr:hover:hover{background-color:rgb(var(--color-primary-500) / .1)}.dark .bg-primary-hover-token:hover{background-color:rgb(var(--color-primary-500) / .1)}body{background-color:rgb(var(--color-surface-50));font-size:1rem;line-height:1.5rem;font-family:var(--theme-font-family-base);color:rgba(var(--theme-font-color-base))}.dark body{background-color:rgb(var(--color-surface-900));color:rgba(var(--theme-font-color-dark))}::-moz-selection{background-color:rgb(var(--color-primary-500) / .3)}::selection{background-color:rgb(var(--color-primary-500) / .3)}html{-webkit-tap-highlight-color:rgba(128,128,128,.5);scrollbar-color:rgba(0,0,0,.2) rgba(255,255,255,.05)}::-webkit-scrollbar{width:.5rem;height:.5rem}::-webkit-scrollbar-track{padding-left:1px;padding-right:1px;background-color:rgb(var(--color-surface-50))!important}.dark ::-webkit-scrollbar-track{background-color:rgb(var(--color-surface-900))!important}::-webkit-scrollbar-thumb{background-color:rgb(var(--color-surface-400));border-radius:var(--theme-rounded-base)}.dark ::-webkit-scrollbar-thumb{background-color:rgb(var(--color-surface-500))}::-webkit-scrollbar-corner{background-color:rgb(var(--color-surface-50))!important}.dark ::-webkit-scrollbar-corner{background-color:rgb(var(--color-surface-900))!important}html.dark{scrollbar-color:rgba(255,255,255,.1) rgba(0,0,0,.05)}hr:not(.divider){display:block;border-top-width:1px;border-style:solid;border-color:rgb(var(--color-surface-300))}.dark hr:not(.divider){border-color:rgb(var(--color-surface-600))}label{display:block}::-moz-placeholder{color:rgb(var(--color-surface-500))}::placeholder{color:rgb(var(--color-surface-500))}.dark ::-moz-placeholder{color:rgb(var(--color-surface-400))}.dark ::placeholder{color:rgb(var(--color-surface-400))}:is(.dark input::-webkit-calendar-picker-indicator){--tw-invert: invert(100%);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}input[type=search]::-webkit-search-cancel-button{-webkit-appearance:none;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'%3E%3Cpath d='M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm121.6 313.1c4.7 4.7 4.7 12.3 0 17L338 377.6c-4.7 4.7-12.3 4.7-17 0L256 312l-65.1 65.6c-4.7 4.7-12.3 4.7-17 0L134.4 338c-4.7-4.7-4.7-12.3 0-17l65.6-65-65.6-65.1c-4.7-4.7-4.7-12.3 0-17l39.6-39.6c4.7-4.7 12.3-4.7 17 0l65 65.7 65.1-65.6c4.7-4.7 12.3-4.7 17 0l39.6 39.6c4.7 4.7 4.7 12.3 0 17L312 256l65.6 65.1z'/%3E%3C/svg%3E") no-repeat 50% 50%;pointer-events:none;height:1rem;width:1rem;border-radius:9999px;background-size:contain;opacity:0}input[type=search]:focus::-webkit-search-cancel-button{pointer-events:auto;opacity:1}:is(.dark input[type=search]::-webkit-search-cancel-button){--tw-invert: invert(100%);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}progress{webkit-appearance:none;-moz-appearance:none;-webkit-appearance:none;appearance:none;height:.5rem;width:100%;overflow:hidden;border-radius:var(--theme-rounded-base);background-color:rgb(var(--color-surface-400))}.dark progress{background-color:rgb(var(--color-surface-500))}progress::-webkit-progress-bar{background-color:rgb(var(--color-surface-400))}.dark progress::-webkit-progress-bar{background-color:rgb(var(--color-surface-500))}progress::-webkit-progress-value{background-color:rgb(var(--color-surface-900))}.dark progress::-webkit-progress-value{background-color:rgb(var(--color-surface-50))}::-moz-progress-bar{background-color:rgb(var(--color-surface-900))}.dark ::-moz-progress-bar{background-color:rgb(var(--color-surface-50))}:indeterminate::-moz-progress-bar{width:0}input[type=file]:not(.file-dropzone-input)::file-selector-button:disabled{cursor:not-allowed;opacity:.5}input[type=file]:not(.file-dropzone-input)::file-selector-button:disabled:hover{--tw-brightness: brightness(1);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}input[type=file]:not(.file-dropzone-input)::file-selector-button:disabled:active{--tw-scale-x: 1;--tw-scale-y: 1;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}input[type=file]:not(.file-dropzone-input)::file-selector-button{font-size:.875rem;line-height:1.25rem;padding:.375rem .75rem;white-space:nowrap;text-align:center;display:inline-flex;align-items:center;justify-content:center;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s;border-radius:var(--theme-rounded-base);background-color:rgb(var(--color-surface-900));color:rgb(var(--color-surface-50));margin-right:.5rem;border-width:0px}input[type=file]:not(.file-dropzone-input)::file-selector-button>:not([hidden])~:not([hidden]){--tw-space-x-reverse: 0;margin-right:calc(.5rem * var(--tw-space-x-reverse));margin-left:calc(.5rem * calc(1 - var(--tw-space-x-reverse)))}input[type=file]:not(.file-dropzone-input)::file-selector-button:hover{--tw-brightness: brightness(1.15);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}input[type=file]:not(.file-dropzone-input)::file-selector-button:active{--tw-scale-x: 95%;--tw-scale-y: 95%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));--tw-brightness: brightness(.9);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.dark input[type=file]:not(.file-dropzone-input)::file-selector-button{background-color:rgb(var(--color-surface-50));color:rgb(var(--color-surface-900))}[type=range]{width:100%;accent-color:rgb(var(--color-surface-900) / 1)}:is(.dark [type=range]){accent-color:rgb(var(--color-surface-50) / 1)}[data-sort]{cursor:pointer}[data-sort]:hover:hover,.dark [data-sort]:hover:hover{background-color:rgb(var(--color-primary-500) / .1)}[data-sort]:after{margin-left:.5rem!important;opacity:0;--tw-content: "↓" !important;content:var(--tw-content)!important}:root [data-theme=wintry]{--theme-font-family-heading: Inter, system-ui, sans-serif;--theme-font-family-base: system-ui;--theme-font-color-base: 23 37 84;--theme-font-color-dark: 255 255 255;--theme-rounded-base: 9999px;--theme-rounded-container: 6px;--theme-border-base: 1px;--on-primary: 0 0 0;--on-secondary: 0 0 0;--on-tertiary: 255 255 255;--on-success: 0 0 0;--on-warning: 0 0 0;--on-error: 255 255 255;--on-surface: 255 255 255;--color-primary-50: 239 246 255;--color-primary-100: 219 234 254;--color-primary-200: 191 219 254;--color-primary-300: 147 197 253;--color-primary-400: 96 165 250;--color-primary-500: 59 130 246;--color-primary-600: 37 99 235;--color-primary-700: 29 78 216;--color-primary-800: 30 64 175;--color-primary-900: 30 58 138;--color-secondary-50: 240 249 255;--color-secondary-100: 224 242 254;--color-secondary-200: 186 230 253;--color-secondary-300: 125 211 252;--color-secondary-400: 56 189 248;--color-secondary-500: 14 165 233;--color-secondary-600: 2 132 199;--color-secondary-700: 3 105 161;--color-secondary-800: 7 89 133;--color-secondary-900: 12 74 110;--color-tertiary-50: 238 242 255;--color-tertiary-100: 224 231 255;--color-tertiary-200: 199 210 254;--color-tertiary-300: 165 180 252;--color-tertiary-400: 129 140 248;--color-tertiary-500: 99 102 241;--color-tertiary-600: 79 70 229;--color-tertiary-700: 67 56 202;--color-tertiary-800: 55 48 163;--color-tertiary-900: 49 46 129;--color-success-50: 237 247 220;--color-success-100: 230 245 208;--color-success-200: 224 242 197;--color-success-300: 206 235 162;--color-success-400: 169 219 92;--color-success-500: 132 204 22;--color-success-600: 119 184 20;--color-success-700: 99 153 17;--color-success-800: 79 122 13;--color-success-900: 65 100 11;--color-warning-50: 252 244 218;--color-warning-100: 251 240 206;--color-warning-200: 250 236 193;--color-warning-300: 247 225 156;--color-warning-400: 240 202 82;--color-warning-500: 234 179 8;--color-warning-600: 211 161 7;--color-warning-700: 176 134 6;--color-warning-800: 140 107 5;--color-warning-900: 115 88 4;--color-error-50: 249 221 234;--color-error-100: 246 209 228;--color-error-200: 244 198 221;--color-error-300: 238 163 200;--color-error-400: 225 94 159;--color-error-500: 212 25 118;--color-error-600: 191 23 106;--color-error-700: 159 19 89;--color-error-800: 127 15 71;--color-error-900: 104 12 58;--color-surface-50: 249 250 251;--color-surface-100: 243 244 246;--color-surface-200: 229 231 235;--color-surface-300: 209 213 219;--color-surface-400: 156 163 175;--color-surface-500: 107 114 128;--color-surface-600: 75 85 99;--color-surface-700: 55 65 81;--color-surface-800: 31 41 55;--color-surface-900: 17 24 39}.dark [data-theme=wintry]{background-image:radial-gradient(at 50% 0%,rgba(var(--color-secondary-500) / .18) 0px,transparent 75%),radial-gradient(at 100% 0%,rgba(var(--color-tertiary-500) / .18) 0px,transparent 50%)}[data-theme=wintry] h1,[data-theme=wintry] h2,[data-theme=wintry] h3,[data-theme=wintry] h4,[data-theme=wintry] h5,[data-theme=wintry] h6{font-weight:700}[data-theme=wintry]{background-image:radial-gradient(at 50% 0%,rgba(var(--color-secondary-500) / .5) 0px,transparent 75%),radial-gradient(at 100% 0%,rgba(var(--color-tertiary-500) / .4) 0px,transparent 50%);background-attachment:fixed;background-position:center;background-repeat:no-repeat;background-size:cover}:root [data-theme=skeleton]{--theme-font-family-base: system-ui;--theme-font-family-heading: system-ui;--theme-font-color-base: 0 0 0;--theme-font-color-dark: 255 255 255;--theme-rounded-base: 9999px;--theme-rounded-container: 8px;--theme-border-base: 1px;--on-primary: 0 0 0;--on-secondary: 255 255 255;--on-tertiary: 0 0 0;--on-success: 0 0 0;--on-warning: 0 0 0;--on-error: 255 255 255;--on-surface: 255 255 255;--color-primary-50: 219 245 236;--color-primary-100: 207 241 230;--color-primary-200: 195 238 224;--color-primary-300: 159 227 205;--color-primary-400: 87 207 167;--color-primary-500: 15 186 129;--color-primary-600: 14 167 116;--color-primary-700: 11 140 97;--color-primary-800: 9 112 77;--color-primary-900: 7 91 63;--color-secondary-50: 229 227 251;--color-secondary-100: 220 218 250;--color-secondary-200: 211 209 249;--color-secondary-300: 185 181 245;--color-secondary-400: 132 126 237;--color-secondary-500: 79 70 229;--color-secondary-600: 71 63 206;--color-secondary-700: 59 53 172;--color-secondary-800: 47 42 137;--color-secondary-900: 39 34 112;--color-tertiary-50: 219 242 252;--color-tertiary-100: 207 237 251;--color-tertiary-200: 195 233 250;--color-tertiary-300: 159 219 246;--color-tertiary-400: 86 192 240;--color-tertiary-500: 14 165 233;--color-tertiary-600: 13 149 210;--color-tertiary-700: 11 124 175;--color-tertiary-800: 8 99 140;--color-tertiary-900: 7 81 114;--color-success-50: 237 247 220;--color-success-100: 230 245 208;--color-success-200: 224 242 197;--color-success-300: 206 235 162;--color-success-400: 169 219 92;--color-success-500: 132 204 22;--color-success-600: 119 184 20;--color-success-700: 99 153 17;--color-success-800: 79 122 13;--color-success-900: 65 100 11;--color-warning-50: 252 244 218;--color-warning-100: 251 240 206;--color-warning-200: 250 236 193;--color-warning-300: 247 225 156;--color-warning-400: 240 202 82;--color-warning-500: 234 179 8;--color-warning-600: 211 161 7;--color-warning-700: 176 134 6;--color-warning-800: 140 107 5;--color-warning-900: 115 88 4;--color-error-50: 249 221 234;--color-error-100: 246 209 228;--color-error-200: 244 198 221;--color-error-300: 238 163 200;--color-error-400: 225 94 159;--color-error-500: 212 25 118;--color-error-600: 191 23 106;--color-error-700: 159 19 89;--color-error-800: 127 15 71;--color-error-900: 104 12 58;--color-surface-50: 228 230 238;--color-surface-100: 219 222 233;--color-surface-200: 210 214 227;--color-surface-300: 182 189 210;--color-surface-400: 128 140 177;--color-surface-500: 73 90 143;--color-surface-600: 66 81 129;--color-surface-700: 55 68 107;--color-surface-800: 44 54 86;--color-surface-900: 36 44 70}[data-theme=skeleton] h1,[data-theme=skeleton] h2,[data-theme=skeleton] h3,[data-theme=skeleton] h4,[data-theme=skeleton] h5,[data-theme=skeleton] h6{font-weight:700}[data-theme=skeleton]{background-image:radial-gradient(at 0% 0%,rgba(var(--color-secondary-500) / .33) 0px,transparent 50%),radial-gradient(at 98% 1%,rgba(var(--color-error-500) / .33) 0px,transparent 50%);background-attachment:fixed;background-position:center;background-repeat:no-repeat;background-size:cover}*,:before,:after{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: }::backdrop{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: }.container{width:100%}@media (min-width: 640px){.container{max-width:640px}}@media (min-width: 768px){.container{max-width:768px}}@media (min-width: 1024px){.container{max-width:1024px}}@media (min-width: 1280px){.container{max-width:1280px}}@media (min-width: 1536px){.container{max-width:1536px}}.hide-scrollbar::-webkit-scrollbar{display:none}.hide-scrollbar{-ms-overflow-style:none;scrollbar-width:none}.h1{font-size:1.875rem;line-height:2.25rem;font-family:var(--theme-font-family-heading)}.h2{font-size:1.5rem;line-height:2rem;font-family:var(--theme-font-family-heading)}.h3{font-size:1.25rem;line-height:1.75rem;font-family:var(--theme-font-family-heading)}.h4{font-size:1.125rem;line-height:1.75rem;font-family:var(--theme-font-family-heading)}.anchor{--tw-text-opacity: 1;color:rgb(var(--color-primary-700) / var(--tw-text-opacity));text-decoration-line:underline}.anchor:hover{--tw-brightness: brightness(1.1);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}:is(.dark .anchor){--tw-text-opacity: 1;color:rgb(var(--color-primary-500) / var(--tw-text-opacity))}.pre{overflow-x:auto;white-space:pre-wrap;background-color:#171717e6;padding:1rem;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:1rem;line-height:1.5rem;--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity));border-radius:var(--theme-rounded-container)}.code{white-space:nowrap;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:.75rem;line-height:1rem;--tw-text-opacity: 1;color:rgb(var(--color-primary-700) / var(--tw-text-opacity));background-color:rgb(var(--color-primary-500) / .3);border-radius:.25rem;padding:.125rem .25rem}:is(.dark .code){--tw-text-opacity: 1;color:rgb(var(--color-primary-400) / var(--tw-text-opacity));background-color:rgb(var(--color-primary-500) / .2)}.alert{display:flex;flex-direction:column;align-items:flex-start;padding:1rem;color:rgb(var(--color-surface-900));border-radius:var(--theme-rounded-container)}.alert>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1rem * var(--tw-space-y-reverse))}.dark .alert{color:rgb(var(--color-surface-50))}.btn:disabled{cursor:not-allowed!important;opacity:.5!important}.btn:disabled:hover{--tw-brightness: brightness(1);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.btn:disabled:active{--tw-scale-x: 1;--tw-scale-y: 1;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.btn{font-size:1rem;line-height:1.5rem;padding-left:1.25rem;padding-right:1.25rem;padding-top:9px;padding-bottom:9px;white-space:nowrap;text-align:center;display:inline-flex;align-items:center;justify-content:center;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s;border-radius:var(--theme-rounded-base)}.btn>:not([hidden])~:not([hidden]){--tw-space-x-reverse: 0;margin-right:calc(.5rem * var(--tw-space-x-reverse));margin-left:calc(.5rem * calc(1 - var(--tw-space-x-reverse)))}.btn:hover{--tw-brightness: brightness(1.15);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.btn:active{--tw-scale-x: 95%;--tw-scale-y: 95%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));--tw-brightness: brightness(.9);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.btn-sm{padding:.375rem .75rem;font-size:.875rem;line-height:1.25rem}.card{background-color:rgb(var(--color-surface-100));--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000);--tw-ring-inset: inset;--tw-ring-color: rgb(23 23 23 / .05);border-radius:var(--theme-rounded-container)}.dark .card{background-color:rgb(var(--color-surface-800));--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000);--tw-ring-inset: inset;--tw-ring-color: rgb(250 250 250 / .05)}a.card{transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}a.card:hover{--tw-brightness: brightness(1.05);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.card-hover{transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.card-hover:hover{--tw-scale-x: 101%;--tw-scale-y: 101%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));--tw-shadow: 0 20px 25px -5px rgb(0 0 0 / .1), 0 8px 10px -6px rgb(0 0 0 / .1);--tw-shadow-colored: 0 20px 25px -5px var(--tw-shadow-color), 0 8px 10px -6px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.codeblock pre{counter-reset:line}.codeblock code.lineNumbers>span.line{counter-increment:line}.codeblock code.lineNumbers>span.line:before{content:counter(line) "";opacity:.5}.label>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.25rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.25rem * var(--tw-space-y-reverse))}.input,.select{width:100%;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter,-webkit-backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.2s;background-color:rgb(var(--color-surface-200));--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color) !important;--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(0px + var(--tw-ring-offset-width)) var(--tw-ring-color) !important;box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)!important;border-width:var(--theme-border-base);border-color:rgb(var(--color-surface-400))}.dark .input,.dark .select{background-color:rgb(var(--color-surface-700));border-color:rgb(var(--color-surface-500))}.input:hover,.select:hover{--tw-brightness: brightness(1.05);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.input:focus,.select:focus{--tw-brightness: brightness(1.05);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.input:focus-within,.select:focus-within{--tw-border-opacity: 1;border-color:rgb(var(--color-primary-500) / var(--tw-border-opacity))}.input{border-radius:var(--theme-rounded-base)}.select{border-radius:var(--theme-rounded-container)}.select>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.25rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.25rem * var(--tw-space-y-reverse))}.select{padding:.5rem 2rem .5rem .5rem}.select[size]{background-image:none}.select option{cursor:pointer;padding:.5rem 1rem;background-color:rgb(var(--color-surface-200));border-radius:var(--theme-rounded-base)}.dark .select option{background-color:rgb(var(--color-surface-700))}.select option:checked{background:rgb(var(--color-primary-500)) linear-gradient(0deg,rgb(var(--color-primary-500)) 0%,rgb(var(--color-primary-500)) 100%);color:rgb(var(--on-primary))}.radio{height:1.25rem;width:1.25rem;cursor:pointer;border-radius:.25rem;--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color) !important;--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(0px + var(--tw-ring-offset-width)) var(--tw-ring-color) !important;box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)!important;background-color:rgb(var(--color-surface-200));border-width:var(--theme-border-base);border-color:rgb(var(--color-surface-400))}.dark .radio{background-color:rgb(var(--color-surface-700));border-color:rgb(var(--color-surface-500))}.radio:hover{--tw-brightness: brightness(1.05);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.radio:focus{--tw-brightness: brightness(1.05);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);--tw-border-opacity: 1;border-color:rgb(var(--color-primary-500) / var(--tw-border-opacity))}.radio:checked{--tw-bg-opacity: 1;background-color:rgb(var(--color-primary-500) / var(--tw-bg-opacity))}.radio:checked:hover{--tw-bg-opacity: 1;background-color:rgb(var(--color-primary-500) / var(--tw-bg-opacity))}.radio:checked:focus{--tw-bg-opacity: 1;background-color:rgb(var(--color-primary-500) / var(--tw-bg-opacity));--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(0px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.radio{border-radius:var(--theme-rounded-base)}.input[type=file]{padding:.25rem}.input[type=color]{height:2.5rem;width:2.5rem;cursor:pointer;overflow:hidden;border-style:none;border-radius:var(--theme-rounded-base);-webkit-appearance:none}.input[type=color]::-webkit-color-swatch-wrapper{padding:0}.input[type=color]::-webkit-color-swatch{border-style:none}.input[type=color]::-webkit-color-swatch:hover{--tw-brightness: brightness(1.1);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.input[type=color]::-moz-color-swatch{border-style:none}.input:disabled,.select:disabled{cursor:not-allowed!important;opacity:.5!important}.input:disabled:hover,.select:disabled:hover{--tw-brightness: brightness(1) !important;filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)!important}.input[readonly],.select[readonly]{cursor:not-allowed!important;border-width:0px!important}.input[readonly]:hover,.select[readonly]:hover{--tw-brightness: brightness(1) !important;filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)!important}.list{list-style-type:none}.list>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.25rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.25rem * var(--tw-space-y-reverse))}.list li{display:flex;align-items:center;border-radius:var(--theme-rounded-base)}.list li>:not([hidden])~:not([hidden]){--tw-space-x-reverse: 0;margin-right:calc(1rem * var(--tw-space-x-reverse));margin-left:calc(1rem * calc(1 - var(--tw-space-x-reverse)))}.placeholder{height:1.25rem;background-color:rgb(var(--color-surface-300));border-radius:var(--theme-rounded-base)}.dark .placeholder{background-color:rgb(var(--color-surface-600))}.table-container{width:100%;overflow-x:auto;border-radius:var(--theme-rounded-container)}.table{width:100%;table-layout:auto;overflow:hidden;background-color:rgb(var(--color-surface-100));border-radius:var(--theme-rounded-container);display:table}.dark .table{background-color:rgb(var(--color-surface-800))}.table-interactive tbody tr{cursor:pointer}.table-interactive tbody tr:hover:hover,.dark .table-interactive tbody tr:hover:hover{background-color:rgb(var(--color-primary-500) / .1)}.table-interactive tbody tr:hover:nth-child(2n):hover{background-color:rgb(var(--color-primary-500) / .1)}.dark .table-interactive tbody tr:hover:nth-child(2n):hover{background-color:rgb(var(--color-primary-500) / .1)}.table-sort-asc:after{opacity:.5;--tw-content: "↑" !important;content:var(--tw-content)!important}.table-sort-dsc:after{opacity:.5;--tw-content: "↓" !important;content:var(--tw-content)!important}.table thead{border-bottom-width:1px;border-color:rgb(var(--color-surface-500) / .2);background-color:rgb(var(--color-surface-200))}.dark .table thead{background-color:rgb(var(--color-surface-700))}.table thead tr{text-align:left;text-transform:capitalize}.table thead th{padding:1rem;font-weight:700}.table tbody tr{border-bottom-width:1px;border-color:rgb(var(--color-surface-500) / .2)}.table tbody tr:nth-child(2n){background-color:rgb(var(--color-surface-500) / .05)}.table tbody td{white-space:nowrap;padding:1rem .75rem;vertical-align:top;font-size:.875rem;line-height:1.25rem}.table tfoot{background-color:rgb(var(--color-surface-100))}.dark .table tfoot{background-color:rgb(var(--color-surface-800))}.table tfoot tr{text-align:left;text-transform:capitalize}.table tfoot th,.table tfoot td{padding:1rem}.w-modal-slim{width:100%;max-width:400px}.w-modal{width:100%;max-width:640px}.modal *:focus:not([tabindex="-1"]):not(.input):not(.textarea):not(.select):not(.input-group){outline-style:auto;outline-color:-webkit-focus-ring-color}.variant-filled{background-color:rgb(var(--color-surface-900));color:rgb(var(--color-surface-50))}.dark .variant-filled{background-color:rgb(var(--color-surface-50));color:rgb(var(--color-surface-900))}.variant-filled-primary{--tw-bg-opacity: 1;background-color:rgb(var(--color-primary-500) / var(--tw-bg-opacity));color:rgb(var(--on-primary))}:is(.dark .variant-filled-primary){--tw-bg-opacity: 1;background-color:rgb(var(--color-primary-500) / var(--tw-bg-opacity));color:rgb(var(--on-primary))}.variant-ghost-surface{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000);--tw-ring-inset: inset;--tw-ring-opacity: 1;--tw-ring-color: rgb(var(--color-surface-500) / var(--tw-ring-opacity));background-color:rgb(var(--color-surface-500) / .2)}:is(.dark .variant-ghost-surface){--tw-ring-opacity: 1;--tw-ring-color: rgb(var(--color-surface-500) / var(--tw-ring-opacity));background-color:rgb(var(--color-surface-500) / .2)}.variant-soft{background-color:rgb(var(--color-surface-400) / .2);--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color) !important;--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(0px + var(--tw-ring-offset-width)) var(--tw-ring-color) !important;box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)!important;color:rgb(var(--color-surface-700))}.dark .variant-soft{color:rgb(var(--color-surface-200))}:is(.dark .variant-soft){background-color:rgb(var(--color-surface-500) / .2)}@media (min-width: 768px){.h1{font-size:3rem;line-height:1}.h2{font-size:2.25rem;line-height:2.5rem}.h3{font-size:1.5rem;line-height:2rem}.h4{font-size:1.25rem;line-height:1.75rem}}@media (min-width: 1024px){.alert{flex-direction:row;align-items:center}.alert>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(0px * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(0px * var(--tw-space-y-reverse));--tw-space-x-reverse: 0;margin-right:calc(1rem * var(--tw-space-x-reverse));margin-left:calc(1rem * calc(1 - var(--tw-space-x-reverse)))}.table tbody td{white-space:normal}}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.bottom-0{bottom:0}.left-0{left:0}.left-1\/2{left:50%}.right-0{right:0}.right-2{right:.5rem}.top-0{top:0}.top-1\/2{top:50%}.top-2{top:.5rem}.z-10{z-index:10}.z-50{z-index:50}.z-\[999\]{z-index:999}.mx-auto{margin-left:auto;margin-right:auto}.mt-2{margin-top:.5rem}.mt-4{margin-top:1rem}.box-border{box-sizing:border-box}.block{display:block}.flex{display:flex}.table{display:table}.grid{display:grid}.contents{display:contents}.hidden{display:none}.aspect-\[21\/9\]{aspect-ratio:21/9}.aspect-square{aspect-ratio:1 / 1}.aspect-video{aspect-ratio:16 / 9}.h-0{height:0px}.h-12{height:3rem}.h-6{height:1.5rem}.h-8{height:2rem}.h-auto{height:auto}.h-fit{height:-moz-fit-content;height:fit-content}.h-full{height:100%}.max-h-\[200px\]{max-height:200px}.min-h-full{min-height:100%}.w-0{width:0px}.w-12{width:3rem}.w-20{width:5rem}.w-3{width:.75rem}.w-36{width:9rem}.w-8{width:2rem}.w-\[70\%\]{width:70%}.w-\[85\%\]{width:85%}.w-auto{width:auto}.w-full{width:100%}.min-w-\[590px\]{min-width:590px}.flex-1{flex:1 1 0%}.flex-auto{flex:1 1 auto}.flex-none{flex:none}.origin-\[50\%_50\%\]{transform-origin:50% 50%}.-translate-x-1\/2{--tw-translate-x: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.-translate-y-1\/2{--tw-translate-y: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-x-\[100\%\]{--tw-translate-x: 100%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.-rotate-90{--tw-rotate: -90deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.rotate-180{--tw-rotate: 180deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.scale-\[0\.8\]{--tw-scale-x: .8;--tw-scale-y: .8;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}@keyframes spin{to{transform:rotate(360deg)}}.animate-spin{animation:spin 1s linear infinite}.cursor-pointer{cursor:pointer}.grid-cols-\[auto_1fr_auto\]{grid-template-columns:auto 1fr auto}.grid-rows-\[auto_1fr_auto\]{grid-template-rows:auto 1fr auto}.flex-row{flex-direction:row}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-center{align-items:center}.items-stretch{align-items:stretch}.justify-start{justify-content:flex-start}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-0{gap:0px}.gap-1{gap:.25rem}.gap-4{gap:1rem}.space-x-2>:not([hidden])~:not([hidden]){--tw-space-x-reverse: 0;margin-right:calc(.5rem * var(--tw-space-x-reverse));margin-left:calc(.5rem * calc(1 - var(--tw-space-x-reverse)))}.space-x-4>:not([hidden])~:not([hidden]){--tw-space-x-reverse: 0;margin-right:calc(1rem * var(--tw-space-x-reverse));margin-left:calc(1rem * calc(1 - var(--tw-space-x-reverse)))}.space-y-1>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.25rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.25rem * var(--tw-space-y-reverse))}.space-y-4>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1rem * var(--tw-space-y-reverse))}.space-y-5>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1.25rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1.25rem * var(--tw-space-y-reverse))}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.overflow-x-hidden{overflow-x:hidden}.whitespace-pre-wrap{white-space:pre-wrap}.break-all{word-break:break-all}.rounded{border-radius:.25rem}.rounded-full{border-radius:9999px}.border{border-width:1px}.\!border-t-2{border-top-width:2px!important}.border-b{border-bottom-width:1px}.border-b-2{border-bottom-width:2px}.bg-\[\#526bf8\]{--tw-bg-opacity: 1;background-color:rgb(82 107 248 / var(--tw-bg-opacity))}.bg-neutral-900\/90{background-color:#171717e6}.bg-surface-50{--tw-bg-opacity: 1;background-color:rgb(var(--color-surface-50) / var(--tw-bg-opacity))}.bg-surface-900{--tw-bg-opacity: 1;background-color:rgb(var(--color-surface-900) / var(--tw-bg-opacity))}.fill-current{fill:currentColor}.fill-surface-50{fill:rgb(var(--color-surface-50) / 1)}.fill-surface-900{fill:rgb(var(--color-surface-900) / 1)}.fill-transparent{fill:transparent}.stroke-primary-500{stroke:rgb(var(--color-primary-500) / 1)}.stroke-primary-500\/30{stroke:rgb(var(--color-primary-500) / .3)}.stroke-surface-500\/30{stroke:rgb(var(--color-surface-500) / .3)}.stroke-surface-900{stroke:rgb(var(--color-surface-900) / 1)}.p-2{padding:.5rem}.p-32{padding:8rem}.p-4{padding:1rem}.px-1{padding-left:.25rem;padding-right:.25rem}.px-2{padding-left:.5rem;padding-right:.5rem}.px-4{padding-left:1rem;padding-right:1rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.pl-4{padding-left:1rem}.pt-1{padding-top:.25rem}.text-center{text-align:center}.text-start{text-align:start}.align-middle{vertical-align:middle}.text-2xl{font-size:1.5rem;line-height:2rem}.text-\[24px\]{font-size:24px}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xl{font-size:1.25rem;line-height:1.75rem}.text-xs{font-size:.75rem;line-height:1rem}.font-bold{font-weight:700}.uppercase{text-transform:uppercase}.\!text-white{--tw-text-opacity: 1 !important;color:rgb(255 255 255 / var(--tw-text-opacity))!important}.text-gray-500{--tw-text-opacity: 1;color:rgb(107 114 128 / var(--tw-text-opacity))}.text-green-500{--tw-text-opacity: 1;color:rgb(34 197 94 / var(--tw-text-opacity))}.text-red-500{--tw-text-opacity: 1;color:rgb(239 68 68 / var(--tw-text-opacity))}.text-white{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity))}.text-white\/50{color:#ffffff80}.underline{text-decoration-line:underline}.opacity-50{opacity:.5}.shadow{--tw-shadow: 0 1px 3px 0 rgb(0 0 0 / .1), 0 1px 2px -1px rgb(0 0 0 / .1);--tw-shadow-colored: 0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-xl{--tw-shadow: 0 20px 25px -5px rgb(0 0 0 / .1), 0 8px 10px -6px rgb(0 0 0 / .1);--tw-shadow-colored: 0 20px 25px -5px var(--tw-shadow-color), 0 8px 10px -6px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.ring{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.ring-\[1px\]{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.ring-surface-500\/30{--tw-ring-color: rgb(var(--color-surface-500) / .3)}.blur{--tw-blur: blur(8px);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter,-webkit-backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-\[stroke-dashoffset\]{transition-property:stroke-dashoffset;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-all{transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-colors{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-transform{transition-property:transform;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.duration-100{transition-duration:.1s}.duration-\[200ms\]{transition-duration:.2s}.bg-primary-hover-token:hover,.dark .bg-primary-hover-token:hover{background-color:rgb(var(--color-primary-500) / .1)}.bg-primary-active-token{background-color:rgb(var(--color-primary-500))!important;color:rgb(var(--on-primary));fill:rgb(var(--on-primary))}.bg-primary-100-800-token{background-color:rgb(var(--color-primary-100))}.dark .bg-primary-100-800-token{background-color:rgb(var(--color-primary-800))}.bg-surface-backdrop-token{background-color:rgb(var(--color-surface-400) / .7)}.dark .bg-surface-backdrop-token{background-color:rgb(var(--color-surface-900) / .7)}.bg-surface-50-900-token{background-color:rgb(var(--color-surface-50))}.dark .bg-surface-50-900-token{background-color:rgb(var(--color-surface-900))}.bg-surface-100-800-token{background-color:rgb(var(--color-surface-100))}.dark .bg-surface-100-800-token{background-color:rgb(var(--color-surface-800))}.border-surface-400-500-token{border-color:rgb(var(--color-surface-400))}.dark .border-surface-400-500-token{border-color:rgb(var(--color-surface-500))}.border-surface-900-50-token{border-color:rgb(var(--color-surface-900))}.dark .border-surface-900-50-token{border-color:rgb(var(--color-surface-50))}.rounded-token{border-radius:var(--theme-rounded-base)}.rounded-container-token{border-radius:var(--theme-rounded-container)}.rounded-tl-container-token{border-top-left-radius:var(--theme-rounded-container)}.rounded-tr-container-token{border-top-right-radius:var(--theme-rounded-container)}.fill-token{fill:rgba(var(--theme-font-color-base))}.dark .fill-token{fill:rgba(var(--theme-font-color-dark))}.dark .hover\:bg-primary-hover-token:hover:hover{background-color:rgb(var(--color-primary-500) / .1)}.hover\:variant-soft:hover{background-color:rgb(var(--color-surface-400) / .2);--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color) !important;--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(0px + var(--tw-ring-offset-width)) var(--tw-ring-color) !important;box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)!important;color:rgb(var(--color-surface-700))}.dark .hover\:variant-soft:hover{color:rgb(var(--color-surface-200))}:is(.dark .hover\:variant-soft:hover){background-color:rgb(var(--color-surface-500) / .2)}.hover\:bg-primary-hover-token:hover:hover,.dark .hover\:bg-primary-hover-token:hover:hover{background-color:rgb(var(--color-primary-500) / .1)}:is(.dark .dark\:stroke-surface-50){stroke:rgb(var(--color-surface-50) / 1)}@media (min-width: 768px){.md\:p-0{padding:0}.md\:p-10{padding:2.5rem}}:root [data-theme=wintry]{--theme-rounded-base: 5px;--theme-rounded-container: 4px}html,body{height:100%;overflow:hidden}td{vertical-align:middle!important} \ No newline at end of file diff --git a/Sveltekit-Build/src/client/_app/immutable/assets/5.5d335b63.css b/Sveltekit-Build/src/client/_app/immutable/assets/5.5d335b63.css new file mode 100644 index 0000000..d074365 --- /dev/null +++ b/Sveltekit-Build/src/client/_app/immutable/assets/5.5d335b63.css @@ -0,0 +1 @@ +.sliding-text.svelte-1fdnh10.svelte-1fdnh10.svelte-1fdnh10{display:inline-block;position:relative;line-height:1em;height:1em}.sliding-text.svelte-1fdnh10>span.svelte-1fdnh10.svelte-1fdnh10{height:1em;display:inline-block;overflow-y:hidden}.sliding-text.svelte-1fdnh10>span.svelte-1fdnh10>span.svelte-1fdnh10{text-align:center;transition:all var(--interval) var(--ease);position:relative;height:100%;white-space:pre;top:calc(var(--index) * -2em)}.skills.svelte-1285lhc{display:flex;justify-items:start;align-items:center;flex-wrap:wrap}.custom-skill{display:inline-block;text-align:center} \ No newline at end of file diff --git a/Sveltekit-Build/src/client/_app/immutable/assets/7.5326dc8c.css b/Sveltekit-Build/src/client/_app/immutable/assets/7.5326dc8c.css new file mode 100644 index 0000000..640e562 --- /dev/null +++ b/Sveltekit-Build/src/client/_app/immutable/assets/7.5326dc8c.css @@ -0,0 +1 @@ +.progress-bar.svelte-sfm816{padding-top:calc(50vh - 4.5rem - 200px);padding-left:calc(50% - 4.5rem)} \ No newline at end of file diff --git a/Sveltekit-Build/src/client/_app/immutable/assets/ProgressBar.4f1e9ba5.css b/Sveltekit-Build/src/client/_app/immutable/assets/ProgressBar.4f1e9ba5.css new file mode 100644 index 0000000..908a2dc --- /dev/null +++ b/Sveltekit-Build/src/client/_app/immutable/assets/ProgressBar.4f1e9ba5.css @@ -0,0 +1 @@ +.animIndeterminate.svelte-meqa4r{transform-origin:0% 50%;animation:svelte-meqa4r-animIndeterminate 2s infinite linear}@keyframes svelte-meqa4r-animIndeterminate{0%{transform:translate(0) scaleX(0)}40%{transform:translate(0) scaleX(.4)}to{transform:translate(100%) scaleX(.5)}} \ No newline at end of file diff --git a/Sveltekit-Build/src/client/_app/immutable/assets/_layout.f8980d8d.css b/Sveltekit-Build/src/client/_app/immutable/assets/_layout.f8980d8d.css new file mode 100644 index 0000000..22b4a29 --- /dev/null +++ b/Sveltekit-Build/src/client/_app/immutable/assets/_layout.f8980d8d.css @@ -0,0 +1 @@ +*,:before,:after{box-sizing:border-box;border-width:0;border-style:solid;border-color:#e5e7eb}:before,:after{--tw-content: ""}html{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol,"Noto Color Emoji";font-feature-settings:normal;font-variation-settings:normal}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}h1,h2,h3{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b{font-weight:bolder}code,pre{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:1em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,select{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,[type=button],[type=reset],[type=submit]{-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}h1,h2,h3,hr,figure,p,pre{margin:0}ul{list-style:none;margin:0;padding:0}dialog{padding:0}input::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder{opacity:1;color:#9ca3af}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,iframe,object{display:block;vertical-align:middle}img{max-width:100%;height:auto}[hidden]{display:none}[type=text],input:where(:not([type])),[type=email],[type=url],[type=password],[type=number],[type=date],[type=datetime-local],[type=month],[type=search],[type=tel],[type=time],[type=week],[multiple],select{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:#fff;border-color:#6b7280;border-width:1px;border-radius:0;padding:.5rem .75rem;font-size:1rem;line-height:1.5rem;--tw-shadow: 0 0 #0000}[type=text]:focus,input:where(:not([type])):focus,[type=email]:focus,[type=url]:focus,[type=password]:focus,[type=number]:focus,[type=date]:focus,[type=datetime-local]:focus,[type=month]:focus,[type=search]:focus,[type=tel]:focus,[type=time]:focus,[type=week]:focus,[multiple]:focus,select:focus{outline:2px solid transparent;outline-offset:2px;--tw-ring-inset: var(--tw-empty, );--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: #2563eb;--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow);border-color:#2563eb}input::-moz-placeholder{color:#6b7280;opacity:1}input::placeholder{color:#6b7280;opacity:1}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-date-and-time-value{min-height:1.5em;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit,::-webkit-datetime-edit-year-field,::-webkit-datetime-edit-month-field,::-webkit-datetime-edit-day-field,::-webkit-datetime-edit-hour-field,::-webkit-datetime-edit-minute-field,::-webkit-datetime-edit-second-field,::-webkit-datetime-edit-millisecond-field,::-webkit-datetime-edit-meridiem-field{padding-top:0;padding-bottom:0}select{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 20 20'%3e%3cpath stroke='%236b7280' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M6 8l4 4 4-4'/%3e%3c/svg%3e");background-position:right .5rem center;background-repeat:no-repeat;background-size:1.5em 1.5em;padding-right:2.5rem;-webkit-print-color-adjust:exact;print-color-adjust:exact}[multiple],[size]:where(select:not([size="1"])){background-image:initial;background-position:initial;background-repeat:unset;background-size:initial;padding-right:.75rem;-webkit-print-color-adjust:unset;print-color-adjust:unset}[type=checkbox],[type=radio]{-webkit-appearance:none;-moz-appearance:none;appearance:none;padding:0;-webkit-print-color-adjust:exact;print-color-adjust:exact;display:inline-block;vertical-align:middle;background-origin:border-box;-webkit-user-select:none;-moz-user-select:none;user-select:none;flex-shrink:0;height:1rem;width:1rem;color:#2563eb;background-color:#fff;border-color:#6b7280;border-width:1px;--tw-shadow: 0 0 #0000}[type=checkbox]{border-radius:0}[type=radio]{border-radius:100%}[type=checkbox]:focus,[type=radio]:focus{outline:2px solid transparent;outline-offset:2px;--tw-ring-inset: var(--tw-empty, );--tw-ring-offset-width: 2px;--tw-ring-offset-color: #fff;--tw-ring-color: #2563eb;--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}[type=checkbox]:checked,[type=radio]:checked{border-color:transparent;background-color:currentColor;background-size:100% 100%;background-position:center;background-repeat:no-repeat}[type=checkbox]:checked{background-image:url("data:image/svg+xml,%3csvg viewBox='0 0 16 16' fill='white' xmlns='http://www.w3.org/2000/svg'%3e%3cpath d='M12.207 4.793a1 1 0 010 1.414l-5 5a1 1 0 01-1.414 0l-2-2a1 1 0 011.414-1.414L6.5 9.086l4.293-4.293a1 1 0 011.414 0z'/%3e%3c/svg%3e")}@media (forced-colors: active){[type=checkbox]:checked{-webkit-appearance:auto;-moz-appearance:auto;appearance:auto}}[type=radio]:checked{background-image:url("data:image/svg+xml,%3csvg viewBox='0 0 16 16' fill='white' xmlns='http://www.w3.org/2000/svg'%3e%3ccircle cx='8' cy='8' r='3'/%3e%3c/svg%3e")}@media (forced-colors: active){[type=radio]:checked{-webkit-appearance:auto;-moz-appearance:auto;appearance:auto}}[type=checkbox]:checked:hover,[type=checkbox]:checked:focus,[type=radio]:checked:hover,[type=radio]:checked:focus{border-color:transparent;background-color:currentColor}[type=checkbox]:indeterminate{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 16 16'%3e%3cpath stroke='white' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M4 8h8'/%3e%3c/svg%3e");border-color:transparent;background-color:currentColor;background-size:100% 100%;background-position:center;background-repeat:no-repeat}@media (forced-colors: active){[type=checkbox]:indeterminate{-webkit-appearance:auto;-moz-appearance:auto;appearance:auto}}[type=checkbox]:indeterminate:hover,[type=checkbox]:indeterminate:focus{border-color:transparent;background-color:currentColor}[type=file]{background:unset;border-color:inherit;border-width:0;border-radius:0;padding:0;font-size:unset;line-height:inherit}[type=file]:focus{outline:1px solid ButtonText;outline:1px auto -webkit-focus-ring-color}.dark .bg-primary-hover-token:hover{background-color:rgb(var(--color-primary-500) / .1)}body{background-color:rgb(var(--color-surface-50));font-size:1rem;line-height:1.5rem;font-family:var(--theme-font-family-base);color:rgba(var(--theme-font-color-base))}.dark body{background-color:rgb(var(--color-surface-900));color:rgba(var(--theme-font-color-dark))}::-moz-selection{background-color:rgb(var(--color-primary-500) / .3)}::selection{background-color:rgb(var(--color-primary-500) / .3)}html{-webkit-tap-highlight-color:rgba(128,128,128,.5);scrollbar-color:rgba(0,0,0,.2) rgba(255,255,255,.05)}::-webkit-scrollbar{width:.5rem;height:.5rem}::-webkit-scrollbar-track{padding-left:1px;padding-right:1px;background-color:rgb(var(--color-surface-50))!important}.dark ::-webkit-scrollbar-track{background-color:rgb(var(--color-surface-900))!important}::-webkit-scrollbar-thumb{background-color:rgb(var(--color-surface-400));border-radius:var(--theme-rounded-base)}.dark ::-webkit-scrollbar-thumb{background-color:rgb(var(--color-surface-500))}::-webkit-scrollbar-corner{background-color:rgb(var(--color-surface-50))!important}.dark ::-webkit-scrollbar-corner{background-color:rgb(var(--color-surface-900))!important}html.dark{scrollbar-color:rgba(255,255,255,.1) rgba(0,0,0,.05)}hr:not(.divider){display:block;border-top-width:1px;border-style:solid;border-color:rgb(var(--color-surface-300))}.dark hr:not(.divider){border-color:rgb(var(--color-surface-600))}label{display:block}::-moz-placeholder{color:rgb(var(--color-surface-500))}::placeholder{color:rgb(var(--color-surface-500))}.dark ::-moz-placeholder{color:rgb(var(--color-surface-400))}.dark ::placeholder{color:rgb(var(--color-surface-400))}:is(.dark input::-webkit-calendar-picker-indicator){--tw-invert: invert(100%);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}input[type=search]::-webkit-search-cancel-button{-webkit-appearance:none;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'%3E%3Cpath d='M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm121.6 313.1c4.7 4.7 4.7 12.3 0 17L338 377.6c-4.7 4.7-12.3 4.7-17 0L256 312l-65.1 65.6c-4.7 4.7-12.3 4.7-17 0L134.4 338c-4.7-4.7-4.7-12.3 0-17l65.6-65-65.6-65.1c-4.7-4.7-4.7-12.3 0-17l39.6-39.6c4.7-4.7 12.3-4.7 17 0l65 65.7 65.1-65.6c4.7-4.7 12.3-4.7 17 0l39.6 39.6c4.7 4.7 4.7 12.3 0 17L312 256l65.6 65.1z'/%3E%3C/svg%3E") no-repeat 50% 50%;pointer-events:none;height:1rem;width:1rem;border-radius:9999px;background-size:contain;opacity:0}input[type=search]:focus::-webkit-search-cancel-button{pointer-events:auto;opacity:1}:is(.dark input[type=search]::-webkit-search-cancel-button){--tw-invert: invert(100%);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}progress{webkit-appearance:none;-moz-appearance:none;-webkit-appearance:none;appearance:none;height:.5rem;width:100%;overflow:hidden;border-radius:var(--theme-rounded-base);background-color:rgb(var(--color-surface-400))}.dark progress{background-color:rgb(var(--color-surface-500))}progress::-webkit-progress-bar{background-color:rgb(var(--color-surface-400))}.dark progress::-webkit-progress-bar{background-color:rgb(var(--color-surface-500))}progress::-webkit-progress-value{background-color:rgb(var(--color-surface-900))}.dark progress::-webkit-progress-value{background-color:rgb(var(--color-surface-50))}::-moz-progress-bar{background-color:rgb(var(--color-surface-900))}.dark ::-moz-progress-bar{background-color:rgb(var(--color-surface-50))}:indeterminate::-moz-progress-bar{width:0}input[type=file]:not(.file-dropzone-input)::file-selector-button:disabled{cursor:not-allowed;opacity:.5}input[type=file]:not(.file-dropzone-input)::file-selector-button:disabled:hover{--tw-brightness: brightness(1);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}input[type=file]:not(.file-dropzone-input)::file-selector-button:disabled:active{--tw-scale-x: 1;--tw-scale-y: 1;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}input[type=file]:not(.file-dropzone-input)::file-selector-button{font-size:.875rem;line-height:1.25rem;padding:.375rem .75rem;white-space:nowrap;text-align:center;display:inline-flex;align-items:center;justify-content:center;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s;border-radius:var(--theme-rounded-base);background-color:rgb(var(--color-surface-900));color:rgb(var(--color-surface-50));margin-right:.5rem;border-width:0px}input[type=file]:not(.file-dropzone-input)::file-selector-button>:not([hidden])~:not([hidden]){--tw-space-x-reverse: 0;margin-right:calc(.5rem * var(--tw-space-x-reverse));margin-left:calc(.5rem * calc(1 - var(--tw-space-x-reverse)))}input[type=file]:not(.file-dropzone-input)::file-selector-button:hover{--tw-brightness: brightness(1.15);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}input[type=file]:not(.file-dropzone-input)::file-selector-button:active{--tw-scale-x: 95%;--tw-scale-y: 95%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));--tw-brightness: brightness(.9);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.dark input[type=file]:not(.file-dropzone-input)::file-selector-button{background-color:rgb(var(--color-surface-50));color:rgb(var(--color-surface-900))}[type=range]{width:100%;accent-color:rgb(var(--color-surface-900) / 1)}:is(.dark [type=range]){accent-color:rgb(var(--color-surface-50) / 1)}:root [data-theme=wintry]{--theme-font-family-heading: Inter, system-ui, sans-serif;--theme-font-family-base: system-ui;--theme-font-color-base: 23 37 84;--theme-font-color-dark: 255 255 255;--theme-rounded-base: 9999px;--theme-rounded-container: 6px;--theme-border-base: 1px;--on-primary: 0 0 0;--on-secondary: 0 0 0;--on-tertiary: 255 255 255;--on-success: 0 0 0;--on-warning: 0 0 0;--on-error: 255 255 255;--on-surface: 255 255 255;--color-primary-50: 239 246 255;--color-primary-100: 219 234 254;--color-primary-200: 191 219 254;--color-primary-300: 147 197 253;--color-primary-400: 96 165 250;--color-primary-500: 59 130 246;--color-primary-600: 37 99 235;--color-primary-700: 29 78 216;--color-primary-800: 30 64 175;--color-primary-900: 30 58 138;--color-secondary-50: 240 249 255;--color-secondary-100: 224 242 254;--color-secondary-200: 186 230 253;--color-secondary-300: 125 211 252;--color-secondary-400: 56 189 248;--color-secondary-500: 14 165 233;--color-secondary-600: 2 132 199;--color-secondary-700: 3 105 161;--color-secondary-800: 7 89 133;--color-secondary-900: 12 74 110;--color-tertiary-50: 238 242 255;--color-tertiary-100: 224 231 255;--color-tertiary-200: 199 210 254;--color-tertiary-300: 165 180 252;--color-tertiary-400: 129 140 248;--color-tertiary-500: 99 102 241;--color-tertiary-600: 79 70 229;--color-tertiary-700: 67 56 202;--color-tertiary-800: 55 48 163;--color-tertiary-900: 49 46 129;--color-success-50: 237 247 220;--color-success-100: 230 245 208;--color-success-200: 224 242 197;--color-success-300: 206 235 162;--color-success-400: 169 219 92;--color-success-500: 132 204 22;--color-success-600: 119 184 20;--color-success-700: 99 153 17;--color-success-800: 79 122 13;--color-success-900: 65 100 11;--color-warning-50: 252 244 218;--color-warning-100: 251 240 206;--color-warning-200: 250 236 193;--color-warning-300: 247 225 156;--color-warning-400: 240 202 82;--color-warning-500: 234 179 8;--color-warning-600: 211 161 7;--color-warning-700: 176 134 6;--color-warning-800: 140 107 5;--color-warning-900: 115 88 4;--color-error-50: 249 221 234;--color-error-100: 246 209 228;--color-error-200: 244 198 221;--color-error-300: 238 163 200;--color-error-400: 225 94 159;--color-error-500: 212 25 118;--color-error-600: 191 23 106;--color-error-700: 159 19 89;--color-error-800: 127 15 71;--color-error-900: 104 12 58;--color-surface-50: 249 250 251;--color-surface-100: 243 244 246;--color-surface-200: 229 231 235;--color-surface-300: 209 213 219;--color-surface-400: 156 163 175;--color-surface-500: 107 114 128;--color-surface-600: 75 85 99;--color-surface-700: 55 65 81;--color-surface-800: 31 41 55;--color-surface-900: 17 24 39}.dark [data-theme=wintry]{background-image:radial-gradient(at 50% 0%,rgba(var(--color-secondary-500) / .18) 0px,transparent 75%),radial-gradient(at 100% 0%,rgba(var(--color-tertiary-500) / .18) 0px,transparent 50%)}[data-theme=wintry] h1,[data-theme=wintry] h2,[data-theme=wintry] h3,[data-theme=wintry] h4,[data-theme=wintry] h5,[data-theme=wintry] h6{font-weight:700}[data-theme=wintry]{background-image:radial-gradient(at 50% 0%,rgba(var(--color-secondary-500) / .5) 0px,transparent 75%),radial-gradient(at 100% 0%,rgba(var(--color-tertiary-500) / .4) 0px,transparent 50%);background-attachment:fixed;background-position:center;background-repeat:no-repeat;background-size:cover}:root [data-theme=skeleton]{--theme-font-family-base: system-ui;--theme-font-family-heading: system-ui;--theme-font-color-base: 0 0 0;--theme-font-color-dark: 255 255 255;--theme-rounded-base: 9999px;--theme-rounded-container: 8px;--theme-border-base: 1px;--on-primary: 0 0 0;--on-secondary: 255 255 255;--on-tertiary: 0 0 0;--on-success: 0 0 0;--on-warning: 0 0 0;--on-error: 255 255 255;--on-surface: 255 255 255;--color-primary-50: 219 245 236;--color-primary-100: 207 241 230;--color-primary-200: 195 238 224;--color-primary-300: 159 227 205;--color-primary-400: 87 207 167;--color-primary-500: 15 186 129;--color-primary-600: 14 167 116;--color-primary-700: 11 140 97;--color-primary-800: 9 112 77;--color-primary-900: 7 91 63;--color-secondary-50: 229 227 251;--color-secondary-100: 220 218 250;--color-secondary-200: 211 209 249;--color-secondary-300: 185 181 245;--color-secondary-400: 132 126 237;--color-secondary-500: 79 70 229;--color-secondary-600: 71 63 206;--color-secondary-700: 59 53 172;--color-secondary-800: 47 42 137;--color-secondary-900: 39 34 112;--color-tertiary-50: 219 242 252;--color-tertiary-100: 207 237 251;--color-tertiary-200: 195 233 250;--color-tertiary-300: 159 219 246;--color-tertiary-400: 86 192 240;--color-tertiary-500: 14 165 233;--color-tertiary-600: 13 149 210;--color-tertiary-700: 11 124 175;--color-tertiary-800: 8 99 140;--color-tertiary-900: 7 81 114;--color-success-50: 237 247 220;--color-success-100: 230 245 208;--color-success-200: 224 242 197;--color-success-300: 206 235 162;--color-success-400: 169 219 92;--color-success-500: 132 204 22;--color-success-600: 119 184 20;--color-success-700: 99 153 17;--color-success-800: 79 122 13;--color-success-900: 65 100 11;--color-warning-50: 252 244 218;--color-warning-100: 251 240 206;--color-warning-200: 250 236 193;--color-warning-300: 247 225 156;--color-warning-400: 240 202 82;--color-warning-500: 234 179 8;--color-warning-600: 211 161 7;--color-warning-700: 176 134 6;--color-warning-800: 140 107 5;--color-warning-900: 115 88 4;--color-error-50: 249 221 234;--color-error-100: 246 209 228;--color-error-200: 244 198 221;--color-error-300: 238 163 200;--color-error-400: 225 94 159;--color-error-500: 212 25 118;--color-error-600: 191 23 106;--color-error-700: 159 19 89;--color-error-800: 127 15 71;--color-error-900: 104 12 58;--color-surface-50: 228 230 238;--color-surface-100: 219 222 233;--color-surface-200: 210 214 227;--color-surface-300: 182 189 210;--color-surface-400: 128 140 177;--color-surface-500: 73 90 143;--color-surface-600: 66 81 129;--color-surface-700: 55 68 107;--color-surface-800: 44 54 86;--color-surface-900: 36 44 70}[data-theme=skeleton] h1,[data-theme=skeleton] h2,[data-theme=skeleton] h3,[data-theme=skeleton] h4,[data-theme=skeleton] h5,[data-theme=skeleton] h6{font-weight:700}[data-theme=skeleton]{background-image:radial-gradient(at 0% 0%,rgba(var(--color-secondary-500) / .33) 0px,transparent 50%),radial-gradient(at 98% 1%,rgba(var(--color-error-500) / .33) 0px,transparent 50%);background-attachment:fixed;background-position:center;background-repeat:no-repeat;background-size:cover}*,:before,:after{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: }::backdrop{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: }.hide-scrollbar::-webkit-scrollbar{display:none}.hide-scrollbar{-ms-overflow-style:none;scrollbar-width:none}.h1{font-size:1.875rem;line-height:2.25rem;font-family:var(--theme-font-family-heading)}.h2{font-size:1.5rem;line-height:2rem;font-family:var(--theme-font-family-heading)}.h3{font-size:1.25rem;line-height:1.75rem;font-family:var(--theme-font-family-heading)}.anchor{--tw-text-opacity: 1;color:rgb(var(--color-primary-700) / var(--tw-text-opacity));text-decoration-line:underline}.anchor:hover{--tw-brightness: brightness(1.1);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}:is(.dark .anchor){--tw-text-opacity: 1;color:rgb(var(--color-primary-500) / var(--tw-text-opacity))}.time{font-size:.875rem;line-height:1.25rem;--tw-text-opacity: 1;color:rgb(var(--color-surface-500) / var(--tw-text-opacity))}:is(.dark .time){--tw-text-opacity: 1;color:rgb(var(--color-surface-400) / var(--tw-text-opacity))}.pre{overflow-x:auto;white-space:pre-wrap;background-color:#171717e6;padding:1rem;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:1rem;line-height:1.5rem;--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity));border-radius:var(--theme-rounded-container)}.code{white-space:nowrap;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:.75rem;line-height:1rem;--tw-text-opacity: 1;color:rgb(var(--color-primary-700) / var(--tw-text-opacity));background-color:rgb(var(--color-primary-500) / .3);border-radius:.25rem;padding:.125rem .25rem}:is(.dark .code){--tw-text-opacity: 1;color:rgb(var(--color-primary-400) / var(--tw-text-opacity));background-color:rgb(var(--color-primary-500) / .2)}.alert{display:flex;flex-direction:column;align-items:flex-start;padding:1rem;color:rgb(var(--color-surface-900));border-radius:var(--theme-rounded-container)}.alert>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1rem * var(--tw-space-y-reverse))}.dark .alert{color:rgb(var(--color-surface-50))}.btn:disabled{cursor:not-allowed!important;opacity:.5!important}.btn:disabled:hover{--tw-brightness: brightness(1);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.btn:disabled:active{--tw-scale-x: 1;--tw-scale-y: 1;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.btn{font-size:1rem;line-height:1.5rem;padding-left:1.25rem;padding-right:1.25rem;padding-top:9px;padding-bottom:9px;white-space:nowrap;text-align:center;display:inline-flex;align-items:center;justify-content:center;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s;border-radius:var(--theme-rounded-base)}.btn>:not([hidden])~:not([hidden]){--tw-space-x-reverse: 0;margin-right:calc(.5rem * var(--tw-space-x-reverse));margin-left:calc(.5rem * calc(1 - var(--tw-space-x-reverse)))}.btn:hover{--tw-brightness: brightness(1.15);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.btn:active{--tw-scale-x: 95%;--tw-scale-y: 95%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));--tw-brightness: brightness(.9);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.btn-sm{padding:.375rem .75rem;font-size:.875rem;line-height:1.25rem}.card{background-color:rgb(var(--color-surface-100));--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000);--tw-ring-inset: inset;--tw-ring-color: rgb(23 23 23 / .05);border-radius:var(--theme-rounded-container)}.dark .card{background-color:rgb(var(--color-surface-800));--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000);--tw-ring-inset: inset;--tw-ring-color: rgb(250 250 250 / .05)}a.card{transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}a.card:hover{--tw-brightness: brightness(1.05);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.card-hover{transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.card-hover:hover{--tw-scale-x: 101%;--tw-scale-y: 101%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));--tw-shadow: 0 20px 25px -5px rgb(0 0 0 / .1), 0 8px 10px -6px rgb(0 0 0 / .1);--tw-shadow-colored: 0 20px 25px -5px var(--tw-shadow-color), 0 8px 10px -6px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.codeblock pre{counter-reset:line}.codeblock code.lineNumbers>span.line{counter-increment:line}.codeblock code.lineNumbers>span.line:before{content:counter(line) "";opacity:.5}.label>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.25rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.25rem * var(--tw-space-y-reverse))}.input,.select{width:100%;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter,-webkit-backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.2s;background-color:rgb(var(--color-surface-200));--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color) !important;--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(0px + var(--tw-ring-offset-width)) var(--tw-ring-color) !important;box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)!important;border-width:var(--theme-border-base);border-color:rgb(var(--color-surface-400))}.dark .input,.dark .select{background-color:rgb(var(--color-surface-700));border-color:rgb(var(--color-surface-500))}.input:hover,.select:hover{--tw-brightness: brightness(1.05);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.input:focus,.select:focus{--tw-brightness: brightness(1.05);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.input:focus-within,.select:focus-within{--tw-border-opacity: 1;border-color:rgb(var(--color-primary-500) / var(--tw-border-opacity))}.input{border-radius:var(--theme-rounded-base)}.select{border-radius:var(--theme-rounded-container)}.select>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.25rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.25rem * var(--tw-space-y-reverse))}.select{padding:.5rem 2rem .5rem .5rem}.select[size]{background-image:none}.select option{cursor:pointer;padding:.5rem 1rem;background-color:rgb(var(--color-surface-200));border-radius:var(--theme-rounded-base)}.dark .select option{background-color:rgb(var(--color-surface-700))}.select option:checked{background:rgb(var(--color-primary-500)) linear-gradient(0deg,rgb(var(--color-primary-500)) 0%,rgb(var(--color-primary-500)) 100%);color:rgb(var(--on-primary))}.radio{height:1.25rem;width:1.25rem;cursor:pointer;border-radius:.25rem;--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color) !important;--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(0px + var(--tw-ring-offset-width)) var(--tw-ring-color) !important;box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)!important;background-color:rgb(var(--color-surface-200));border-width:var(--theme-border-base);border-color:rgb(var(--color-surface-400))}.dark .radio{background-color:rgb(var(--color-surface-700));border-color:rgb(var(--color-surface-500))}.radio:hover{--tw-brightness: brightness(1.05);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.radio:focus{--tw-brightness: brightness(1.05);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);--tw-border-opacity: 1;border-color:rgb(var(--color-primary-500) / var(--tw-border-opacity))}.radio:checked{--tw-bg-opacity: 1;background-color:rgb(var(--color-primary-500) / var(--tw-bg-opacity))}.radio:checked:hover{--tw-bg-opacity: 1;background-color:rgb(var(--color-primary-500) / var(--tw-bg-opacity))}.radio:checked:focus{--tw-bg-opacity: 1;background-color:rgb(var(--color-primary-500) / var(--tw-bg-opacity));--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(0px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.radio{border-radius:var(--theme-rounded-base)}.input[type=file]{padding:.25rem}.input[type=color]{height:2.5rem;width:2.5rem;cursor:pointer;overflow:hidden;border-style:none;border-radius:var(--theme-rounded-base);-webkit-appearance:none}.input[type=color]::-webkit-color-swatch-wrapper{padding:0}.input[type=color]::-webkit-color-swatch{border-style:none}.input[type=color]::-webkit-color-swatch:hover{--tw-brightness: brightness(1.1);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.input[type=color]::-moz-color-swatch{border-style:none}.input:disabled,.select:disabled{cursor:not-allowed!important;opacity:.5!important}.input:disabled:hover,.select:disabled:hover{--tw-brightness: brightness(1) !important;filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)!important}.input[readonly],.select[readonly]{cursor:not-allowed!important;border-width:0px!important}.input[readonly]:hover,.select[readonly]:hover{--tw-brightness: brightness(1) !important;filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)!important}.list{list-style-type:none}.list>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.25rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.25rem * var(--tw-space-y-reverse))}.list li{display:flex;align-items:center;border-radius:var(--theme-rounded-base)}.list li>:not([hidden])~:not([hidden]){--tw-space-x-reverse: 0;margin-right:calc(1rem * var(--tw-space-x-reverse));margin-left:calc(1rem * calc(1 - var(--tw-space-x-reverse)))}.placeholder{height:1.25rem;background-color:rgb(var(--color-surface-300));border-radius:var(--theme-rounded-base)}.dark .placeholder{background-color:rgb(var(--color-surface-600))}.table{width:100%;table-layout:auto;overflow:hidden;background-color:rgb(var(--color-surface-100));border-radius:var(--theme-rounded-container);display:table}.dark .table{background-color:rgb(var(--color-surface-800))}.table thead{border-bottom-width:1px;border-color:rgb(var(--color-surface-500) / .2);background-color:rgb(var(--color-surface-200))}.dark .table thead{background-color:rgb(var(--color-surface-700))}.table thead tr{text-align:left;text-transform:capitalize}.table thead th{padding:1rem;font-weight:700}.table tbody tr{border-bottom-width:1px;border-color:rgb(var(--color-surface-500) / .2)}.table tbody tr:nth-child(2n){background-color:rgb(var(--color-surface-500) / .05)}.table tbody td{white-space:nowrap;padding:1rem .75rem;vertical-align:top;font-size:.875rem;line-height:1.25rem}.w-modal-slim{width:100%;max-width:400px}.w-modal{width:100%;max-width:640px}.modal *:focus:not([tabindex="-1"]):not(.input):not(.textarea):not(.select):not(.input-group){outline-style:auto;outline-color:-webkit-focus-ring-color}.variant-filled{background-color:rgb(var(--color-surface-900));color:rgb(var(--color-surface-50))}.dark .variant-filled{background-color:rgb(var(--color-surface-50));color:rgb(var(--color-surface-900))}.variant-filled-primary{--tw-bg-opacity: 1;background-color:rgb(var(--color-primary-500) / var(--tw-bg-opacity));color:rgb(var(--on-primary))}:is(.dark .variant-filled-primary){--tw-bg-opacity: 1;background-color:rgb(var(--color-primary-500) / var(--tw-bg-opacity));color:rgb(var(--on-primary))}.variant-ghost-surface{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000);--tw-ring-inset: inset;--tw-ring-opacity: 1;--tw-ring-color: rgb(var(--color-surface-500) / var(--tw-ring-opacity));background-color:rgb(var(--color-surface-500) / .2)}:is(.dark .variant-ghost-surface){--tw-ring-opacity: 1;--tw-ring-color: rgb(var(--color-surface-500) / var(--tw-ring-opacity));background-color:rgb(var(--color-surface-500) / .2)}.variant-soft{background-color:rgb(var(--color-surface-400) / .2);--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color) !important;--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(0px + var(--tw-ring-offset-width)) var(--tw-ring-color) !important;box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)!important;color:rgb(var(--color-surface-700))}.dark .variant-soft{color:rgb(var(--color-surface-200))}:is(.dark .variant-soft){background-color:rgb(var(--color-surface-500) / .2)}@media (min-width: 768px){.h1{font-size:3rem;line-height:1}.h2{font-size:2.25rem;line-height:2.5rem}.h3{font-size:1.5rem;line-height:2rem}}@media (min-width: 1024px){.alert{flex-direction:row;align-items:center}.alert>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(0px * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(0px * var(--tw-space-y-reverse));--tw-space-x-reverse: 0;margin-right:calc(1rem * var(--tw-space-x-reverse));margin-left:calc(1rem * calc(1 - var(--tw-space-x-reverse)))}.table tbody td{white-space:normal}}.invisible{visibility:hidden}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.bottom-0{bottom:0}.left-0{left:0}.left-1\/2{left:50%}.right-0{right:0}.right-2{right:.5rem}.top-0{top:0}.top-1\/2{top:50%}.top-2{top:.5rem}.z-10{z-index:10}.z-50{z-index:50}.z-\[999\]{z-index:999}.mx-auto{margin-left:auto;margin-right:auto}.mt-2{margin-top:.5rem}.mt-4{margin-top:1rem}.box-border{box-sizing:border-box}.block{display:block}.flex{display:flex}.table{display:table}.grid{display:grid}.contents{display:contents}.hidden{display:none}.aspect-\[21\/9\]{aspect-ratio:21/9}.aspect-square{aspect-ratio:1 / 1}.aspect-video{aspect-ratio:16 / 9}.h-0{height:0px}.h-12{height:3rem}.h-6{height:1.5rem}.h-8{height:2rem}.h-auto{height:auto}.h-fit{height:-moz-fit-content;height:fit-content}.h-full{height:100%}.max-h-\[200px\]{max-height:200px}.min-h-full{min-height:100%}.w-0{width:0px}.w-12{width:3rem}.w-20{width:5rem}.w-3{width:.75rem}.w-36{width:9rem}.w-8{width:2rem}.w-\[70\%\]{width:70%}.w-\[85\%\]{width:85%}.w-auto{width:auto}.w-full{width:100%}.min-w-\[590px\]{min-width:590px}.flex-1{flex:1 1 0%}.flex-auto{flex:1 1 auto}.flex-none{flex:none}.origin-\[50\%_50\%\]{transform-origin:50% 50%}.-translate-x-1\/2{--tw-translate-x: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.-translate-y-1\/2{--tw-translate-y: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-x-\[100\%\]{--tw-translate-x: 100%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.-rotate-90{--tw-rotate: -90deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.rotate-180{--tw-rotate: 180deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.scale-\[0\.8\]{--tw-scale-x: .8;--tw-scale-y: .8;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}@keyframes spin{to{transform:rotate(360deg)}}.animate-spin{animation:spin 1s linear infinite}.cursor-pointer{cursor:pointer}.grid-cols-\[auto_1fr_auto\]{grid-template-columns:auto 1fr auto}.grid-rows-\[auto_1fr_auto\]{grid-template-rows:auto 1fr auto}.flex-row{flex-direction:row}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-center{align-items:center}.items-stretch{align-items:stretch}.justify-start{justify-content:flex-start}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-0{gap:0px}.gap-1{gap:.25rem}.gap-4{gap:1rem}.space-x-2>:not([hidden])~:not([hidden]){--tw-space-x-reverse: 0;margin-right:calc(.5rem * var(--tw-space-x-reverse));margin-left:calc(.5rem * calc(1 - var(--tw-space-x-reverse)))}.space-x-4>:not([hidden])~:not([hidden]){--tw-space-x-reverse: 0;margin-right:calc(1rem * var(--tw-space-x-reverse));margin-left:calc(1rem * calc(1 - var(--tw-space-x-reverse)))}.space-y-1>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.25rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.25rem * var(--tw-space-y-reverse))}.space-y-4>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1rem * var(--tw-space-y-reverse))}.space-y-5>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1.25rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1.25rem * var(--tw-space-y-reverse))}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.overflow-x-hidden{overflow-x:hidden}.whitespace-pre-wrap{white-space:pre-wrap}.break-all{word-break:break-all}.rounded{border-radius:.25rem}.rounded-full{border-radius:9999px}.border{border-width:1px}.\!border-t-2{border-top-width:2px!important}.border-b{border-bottom-width:1px}.border-b-2{border-bottom-width:2px}.bg-\[\#526bf8\]{--tw-bg-opacity: 1;background-color:rgb(82 107 248 / var(--tw-bg-opacity))}.bg-neutral-900\/90{background-color:#171717e6}.bg-surface-50{--tw-bg-opacity: 1;background-color:rgb(var(--color-surface-50) / var(--tw-bg-opacity))}.bg-surface-900{--tw-bg-opacity: 1;background-color:rgb(var(--color-surface-900) / var(--tw-bg-opacity))}.fill-current{fill:currentColor}.fill-surface-50{fill:rgb(var(--color-surface-50) / 1)}.fill-surface-900{fill:rgb(var(--color-surface-900) / 1)}.fill-transparent{fill:transparent}.stroke-primary-500{stroke:rgb(var(--color-primary-500) / 1)}.stroke-primary-500\/30{stroke:rgb(var(--color-primary-500) / .3)}.stroke-surface-500\/30{stroke:rgb(var(--color-surface-500) / .3)}.stroke-surface-900{stroke:rgb(var(--color-surface-900) / 1)}.p-2{padding:.5rem}.p-32{padding:8rem}.p-4{padding:1rem}.px-1{padding-left:.25rem;padding-right:.25rem}.px-2{padding-left:.5rem;padding-right:.5rem}.px-4{padding-left:1rem;padding-right:1rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.pl-4{padding-left:1rem}.pt-1{padding-top:.25rem}.text-center{text-align:center}.text-start{text-align:start}.align-middle{vertical-align:middle}.text-2xl{font-size:1.5rem;line-height:2rem}.text-\[24px\]{font-size:24px}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xl{font-size:1.25rem;line-height:1.75rem}.text-xs{font-size:.75rem;line-height:1rem}.font-bold{font-weight:700}.uppercase{text-transform:uppercase}.\!text-white{--tw-text-opacity: 1 !important;color:rgb(255 255 255 / var(--tw-text-opacity))!important}.text-gray-500{--tw-text-opacity: 1;color:rgb(107 114 128 / var(--tw-text-opacity))}.text-green-500{--tw-text-opacity: 1;color:rgb(34 197 94 / var(--tw-text-opacity))}.text-red-500{--tw-text-opacity: 1;color:rgb(239 68 68 / var(--tw-text-opacity))}.text-white{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity))}.text-white\/50{color:#ffffff80}.underline{text-decoration-line:underline}.opacity-50{opacity:.5}.shadow{--tw-shadow: 0 1px 3px 0 rgb(0 0 0 / .1), 0 1px 2px -1px rgb(0 0 0 / .1);--tw-shadow-colored: 0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-xl{--tw-shadow: 0 20px 25px -5px rgb(0 0 0 / .1), 0 8px 10px -6px rgb(0 0 0 / .1);--tw-shadow-colored: 0 20px 25px -5px var(--tw-shadow-color), 0 8px 10px -6px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.ring{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.ring-\[1px\]{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.ring-surface-500\/30{--tw-ring-color: rgb(var(--color-surface-500) / .3)}.blur{--tw-blur: blur(8px);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter,-webkit-backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-\[stroke-dashoffset\]{transition-property:stroke-dashoffset;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-all{transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-colors{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-transform{transition-property:transform;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.duration-100{transition-duration:.1s}.duration-\[200ms\]{transition-duration:.2s}.bg-primary-hover-token:hover,.dark .bg-primary-hover-token:hover{background-color:rgb(var(--color-primary-500) / .1)}.bg-primary-active-token{background-color:rgb(var(--color-primary-500))!important;color:rgb(var(--on-primary));fill:rgb(var(--on-primary))}.bg-primary-100-800-token{background-color:rgb(var(--color-primary-100))}.dark .bg-primary-100-800-token{background-color:rgb(var(--color-primary-800))}.bg-surface-backdrop-token{background-color:rgb(var(--color-surface-400) / .7)}.dark .bg-surface-backdrop-token{background-color:rgb(var(--color-surface-900) / .7)}.bg-surface-50-900-token{background-color:rgb(var(--color-surface-50))}.dark .bg-surface-50-900-token{background-color:rgb(var(--color-surface-900))}.bg-surface-100-800-token{background-color:rgb(var(--color-surface-100))}.dark .bg-surface-100-800-token{background-color:rgb(var(--color-surface-800))}.border-surface-400-500-token{border-color:rgb(var(--color-surface-400))}.dark .border-surface-400-500-token{border-color:rgb(var(--color-surface-500))}.border-surface-900-50-token{border-color:rgb(var(--color-surface-900))}.dark .border-surface-900-50-token{border-color:rgb(var(--color-surface-50))}.rounded-token{border-radius:var(--theme-rounded-base)}.rounded-container-token{border-radius:var(--theme-rounded-container)}.rounded-tl-container-token{border-top-left-radius:var(--theme-rounded-container)}.rounded-tr-container-token{border-top-right-radius:var(--theme-rounded-container)}.fill-token{fill:rgba(var(--theme-font-color-base))}.dark .fill-token{fill:rgba(var(--theme-font-color-dark))}.dark .hover\:bg-primary-hover-token:hover:hover{background-color:rgb(var(--color-primary-500) / .1)}.hover\:variant-soft:hover{background-color:rgb(var(--color-surface-400) / .2);--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color) !important;--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(0px + var(--tw-ring-offset-width)) var(--tw-ring-color) !important;box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)!important;color:rgb(var(--color-surface-700))}.dark .hover\:variant-soft:hover{color:rgb(var(--color-surface-200))}:is(.dark .hover\:variant-soft:hover){background-color:rgb(var(--color-surface-500) / .2)}.hover\:bg-primary-hover-token:hover:hover,.dark .hover\:bg-primary-hover-token:hover:hover{background-color:rgb(var(--color-primary-500) / .1)}:is(.dark .dark\:stroke-surface-50){stroke:rgb(var(--color-surface-50) / 1)}@media (min-width: 768px){.md\:p-0{padding:0}.md\:p-10{padding:2.5rem}}:root [data-theme=wintry]{--theme-rounded-base: 5px;--theme-rounded-container: 4px}html,body{height:100%;overflow:hidden}td{vertical-align:middle!important} \ No newline at end of file diff --git a/Sveltekit-Build/src/client/_app/immutable/assets/_page.5326dc8c.css b/Sveltekit-Build/src/client/_app/immutable/assets/_page.5326dc8c.css new file mode 100644 index 0000000..640e562 --- /dev/null +++ b/Sveltekit-Build/src/client/_app/immutable/assets/_page.5326dc8c.css @@ -0,0 +1 @@ +.progress-bar.svelte-sfm816{padding-top:calc(50vh - 4.5rem - 200px);padding-left:calc(50% - 4.5rem)} \ No newline at end of file diff --git a/Sveltekit-Build/src/client/_app/immutable/assets/_page.5d335b63.css b/Sveltekit-Build/src/client/_app/immutable/assets/_page.5d335b63.css new file mode 100644 index 0000000..d074365 --- /dev/null +++ b/Sveltekit-Build/src/client/_app/immutable/assets/_page.5d335b63.css @@ -0,0 +1 @@ +.sliding-text.svelte-1fdnh10.svelte-1fdnh10.svelte-1fdnh10{display:inline-block;position:relative;line-height:1em;height:1em}.sliding-text.svelte-1fdnh10>span.svelte-1fdnh10.svelte-1fdnh10{height:1em;display:inline-block;overflow-y:hidden}.sliding-text.svelte-1fdnh10>span.svelte-1fdnh10>span.svelte-1fdnh10{text-align:center;transition:all var(--interval) var(--ease);position:relative;height:100%;white-space:pre;top:calc(var(--index) * -2em)}.skills.svelte-1285lhc{display:flex;justify-items:start;align-items:center;flex-wrap:wrap}.custom-skill{display:inline-block;text-align:center} \ No newline at end of file diff --git a/Sveltekit-Build/src/client/_app/immutable/chunks/CodeBlock.f9dc51ff.js b/Sveltekit-Build/src/client/_app/immutable/chunks/CodeBlock.f9dc51ff.js new file mode 100644 index 0000000..5927f3e --- /dev/null +++ b/Sveltekit-Build/src/client/_app/immutable/chunks/CodeBlock.f9dc51ff.js @@ -0,0 +1,3 @@ +import{a3 as X,a4 as z,s as Y,e as x,i as B,z as O,d as v,v as Z,w as $,x as V,y as W,f as H,l as M,a as J,g as L,h as N,m as j,c as R,j as C,A as E,u as ee,B as te,n as P,a5 as ae,D as ne,H as oe,F as le}from"./scheduler.10bc074a.js";import{S as ie,i as re}from"./index.7b3d626a.js";import{w as se}from"./index.09b1afef.js";const ce=se(void 0);function ue(n,e){if(!window.isSecureContext){console.error("Clipboard action failed: app not running in secure context, see: https://developer.mozilla.org/en-US/docs/Web/API/Clipboard");return}const t=()=>{n.dispatchEvent(new CustomEvent("copyComplete"))},a=()=>{if(typeof e=="object"){if("element"in e){const l=document.querySelector(`[data-clipboard="${e.element}"]`);if(!l)throw new Error(`Missing HTMLElement with an attribute of [data-clipboard="${e.element}"]`);D(l.innerHTML,"text/html").then(t);return}if("input"in e){const l=document.querySelector(`[data-clipboard="${e.input}"]`);if(!l)throw new Error(`Missing HTMLInputElement with an attribute of [data-clipboard="${e.input}"]`);D(l.value).then(t);return}}D(e).then(t)};return n.addEventListener("click",a),{update(l){e=l},destroy(){n.removeEventListener("click",a)}}}async function D(n,e="text/plain"){navigator.clipboard.write?await navigator.clipboard.write([new ClipboardItem({[e]:new Blob([n],{type:e}),"text/plain":new Blob([n],{type:"text/plain"})})]):await new Promise(t=>{t(navigator.clipboard.writeText(String(n)))})}function Q(n){const e=n-1;return e*e*e+1}function Ce(n,{delay:e=0,duration:t=400,easing:a=X}={}){const l=+getComputedStyle(n).opacity;return{delay:e,duration:t,easing:a,css:r=>`opacity: ${r*l}`}}function ve(n,{delay:e=0,duration:t=400,easing:a=Q,x:l=0,y:r=0,opacity:y=0}={}){const i=getComputedStyle(n),b=+i.opacity,s=i.transform==="none"?"":i.transform,u=b*(1-y),[p,g]=z(l),[m,d]=z(r);return{delay:e,duration:t,easing:a,css:(_,k)=>` + transform: ${s} translate(${(1-_)*p}${g}, ${(1-_)*m}${d}); + opacity: ${b-u*k}`}}function Ee(n,{delay:e=0,duration:t=400,easing:a=Q,axis:l="y"}={}){const r=getComputedStyle(n),y=+r.opacity,i=l==="y"?"height":"width",b=parseFloat(r[i]),s=l==="y"?["top","bottom"]:["left","right"],u=s.map(c=>`${c[0].toUpperCase()}${c.slice(1)}`),p=parseFloat(r[`padding${u[0]}`]),g=parseFloat(r[`padding${u[1]}`]),m=parseFloat(r[`margin${u[0]}`]),d=parseFloat(r[`margin${u[1]}`]),_=parseFloat(r[`border${u[0]}Width`]),k=parseFloat(r[`border${u[1]}Width`]);return{delay:e,duration:t,easing:a,css:c=>`overflow: hidden;opacity: ${Math.min(c*20,1)*y};${i}: ${c*b}px;padding-${s[0]}: ${c*p}px;padding-${s[1]}: ${c*g}px;margin-${s[0]}: ${c*m}px;margin-${s[1]}: ${c*d}px;border-${s[0]}-width: ${c*_}px;border-${s[1]}-width: ${c*k}px;`}}function we(n,e){const{transition:t,params:a,enabled:l}=e;return l?t(n,a):"duration"in a?t(n,{duration:0}):{duration:0}}function G(n){let e,t,a,l=K(n[0])+"",r,y,i,b=(n[7]?n[4]:n[3])+"",s,u,p,g,m,d,_,k,c,F;function S(o,f){return o[6]?fe:de}let w=S(n),h=w(n);return{c(){e=H("div"),t=H("header"),a=H("span"),r=M(l),y=J(),i=H("button"),s=M(b),g=J(),m=H("pre"),d=H("code"),h.c(),this.h()},l(o){e=L(o,"DIV",{class:!0,"data-testid":!0});var f=N(e);t=L(f,"HEADER",{class:!0});var T=N(t);a=L(T,"SPAN",{class:!0});var U=N(a);r=j(U,l),U.forEach(v),y=R(T),i=L(T,"BUTTON",{class:!0});var A=N(i);s=j(A,b),A.forEach(v),T.forEach(v),g=R(f),m=L(f,"PRE",{class:!0});var I=N(m);d=L(I,"CODE",{class:!0});var q=N(d);h.l(q),q.forEach(v),I.forEach(v),f.forEach(v),this.h()},h(){C(a,"class","codeblock-language"),C(i,"class",u="codeblock-btn "+n[2]),C(t,"class","codeblock-header "+he),C(d,"class",_="codeblock-code language-"+n[0]+" lineNumbers"),C(m,"class","codeblock-pre "+pe),C(e,"class",k="codeblock "+n[8]),C(e,"data-testid","codeblock")},m(o,f){B(o,e,f),E(e,t),E(t,a),E(a,r),E(t,y),E(t,i),E(i,s),E(e,g),E(e,m),E(m,d),h.m(d,null),c||(F=[ee(i,"click",n[9]),te(p=ue.call(null,i,n[1]))],c=!0)},p(o,f){f&1&&l!==(l=K(o[0])+"")&&P(r,l),f&152&&b!==(b=(o[7]?o[4]:o[3])+"")&&P(s,b),f&4&&u!==(u="codeblock-btn "+o[2])&&C(i,"class",u),p&&ae(p.update)&&f&2&&p.update.call(null,o[1]),w===(w=S(o))&&h?h.p(o,f):(h.d(1),h=w(o),h&&(h.c(),h.m(d,null))),f&1&&_!==(_="codeblock-code language-"+o[0]+" lineNumbers")&&C(d,"class",_),f&256&&k!==(k="codeblock "+o[8])&&C(e,"class",k)},d(o){o&&v(e),h.d(),c=!1,ne(F)}}}function de(n){let e=n[1].trim()+"",t;return{c(){t=M(e)},l(a){t=j(a,e)},m(a,l){B(a,t,l)},p(a,l){l&2&&e!==(e=a[1].trim()+"")&&P(t,e)},d(a){a&&v(t)}}}function fe(n){let e,t;return{c(){e=new oe(!1),t=x(),this.h()},l(a){e=le(a,!1),t=x(),this.h()},h(){e.a=t},m(a,l){e.m(n[5],a,l),B(a,t,l)},p(a,l){l&32&&e.p(a[5])},d(a){a&&(v(t),e.d())}}}function be(n){let e,t=n[0]&&n[1]&&G(n);return{c(){t&&t.c(),e=x()},l(a){t&&t.l(a),e=x()},m(a,l){t&&t.m(a,l),B(a,e,l)},p(a,[l]){a[0]&&a[1]?t?t.p(a,l):(t=G(a),t.c(),t.m(e.parentNode,e)):t&&(t.d(1),t=null)},i:O,o:O,d(a){a&&v(e),t&&t.d(a)}}}const me="overflow-hidden shadow",he="text-xs text-white/50 uppercase flex justify-between items-center p-2 pl-4",pe="whitespace-pre-wrap break-all p-4 pt-1";function K(n){return n==="js"?"javascript":n==="ts"?"typescript":n==="shell"?"terminal":n}function _e(n,e,t){let a,l;Z(n,ce,o=>t(17,l=o));const r=$();let{language:y="plaintext"}=e,{code:i=""}=e,{lineNumbers:b=!1}=e,{background:s="bg-neutral-900/90"}=e,{blur:u=""}=e,{text:p="text-sm"}=e,{color:g="text-white"}=e,{rounded:m="rounded-container-token"}=e,{shadow:d="shadow"}=e,{button:_="btn btn-sm variant-soft !text-white"}=e,{buttonLabel:k="Copy"}=e,{buttonCopied:c="👍"}=e,F=!1,S=i,w=!1;function h(){t(7,w=!0),setTimeout(()=>{t(7,w=!1)},2e3),r("copy")}return n.$$set=o=>{t(19,e=V(V({},e),W(o))),"language"in o&&t(0,y=o.language),"code"in o&&t(1,i=o.code),"lineNumbers"in o&&t(10,b=o.lineNumbers),"background"in o&&t(11,s=o.background),"blur"in o&&t(12,u=o.blur),"text"in o&&t(13,p=o.text),"color"in o&&t(14,g=o.color),"rounded"in o&&t(15,m=o.rounded),"shadow"in o&&t(16,d=o.shadow),"button"in o&&t(2,_=o.button),"buttonLabel"in o&&t(3,k=o.buttonLabel),"buttonCopied"in o&&t(4,c=o.buttonCopied)},n.$$.update=()=>{n.$$.dirty&131075&&l!==void 0&&(t(5,S=l.highlight(i,{language:y}).value.trim()),t(6,F=!0)),n.$$.dirty&1056&&b&&(t(5,S=S.replace(/^/gm,()=>' ')),t(6,F=!0)),t(8,a=`${me} ${s} ${u} ${p} ${g} ${m} ${d} ${e.class??""}`)},e=W(e),[y,i,_,k,c,S,F,w,a,h,b,s,u,p,g,m,d,l]}class Se extends ie{constructor(e){super(),re(this,e,_e,be,Y,{language:0,code:1,lineNumbers:10,background:11,blur:12,text:13,color:14,rounded:15,shadow:16,button:2,buttonLabel:3,buttonCopied:4})}}export{Se as C,ve as a,we as d,Ce as f,Ee as s}; diff --git a/Sveltekit-Build/src/client/_app/immutable/chunks/LightSwitch.9a354e21.js b/Sveltekit-Build/src/client/_app/immutable/chunks/LightSwitch.9a354e21.js new file mode 100644 index 0000000..4e2e1fa --- /dev/null +++ b/Sveltekit-Build/src/client/_app/immutable/chunks/LightSwitch.9a354e21.js @@ -0,0 +1 @@ +import{s as N,H as Q,e as M,a as R,f as z,T as I,U as X,F as Y,d as k,c as Z,g as B,h as T,V as H,j as c,A as S,i as P,u as w,z as j,D as x,v as p,o as $,x as q,y as V,W as tt,E as C}from"./scheduler.10bc074a.js";import{S as et,i as it}from"./index.7b3d626a.js";import{s as st,m as F,a as U,g as at,b as lt}from"./ProgressBar.svelte_svelte_type_style_lang.ae9fcbec.js";function ct(t){let s,a=` + */ + /** @type {array} List of files from element */ + var files = path.target.files; + /** type {object} */ + var reader = new FileReader(); + /** type {string} */ + files[0].name; + reader.onload = function (e) { + var data = e.target.result; + success(cutbom(data)); + }; + reader.readAsText(files[0]); + } + } + }); + + let _fetch = typeof fetch !== 'undefined' ? fetch : null; + //*not-for-browser/* + _fetch = typeof fetch !== 'undefined' ? fetch : requireNodePonyfill(); + //*/ + + async function fetchData(path, success, error, async) { + if (async) { + return getData(path, success, error); + } + return await getData(path, success, error); + } + + function getData(path, success, error) { + return _fetch(path) + .then(response => response.arrayBuffer()) + .then(buf => { + var a = new Uint8Array(buf); + var b = [...a].map(e => String.fromCharCode(e)).join(''); + success(b); + }) + .catch(e => { + if (error) return error(e); + console.error(e); + throw e; + }); + } + + /** + @function Load binary file from anywhere + @param {string} path File path + @param {boolean} asy True - async call, false - sync call + @param {function} success Success function + @param {function} error Error function + @return 1 for Async, data - for sync version + + @todo merge functionality from loadFile and LoadBinaryFile + */ + + (utils.loadBinaryFile = function ( + path, + runAsync, + success, + error = x => { + throw x; + } + ) { + var fs; + if (utils.isNode || utils.isMeteorServer) { + //*not-for-browser/* + fs = require$$0$2; + + if (/^[a-z]+:\/\//i.test(path)) { + fetchData(path, success, error, runAsync); + } else { + if (runAsync) { + fs.readFile(path, function (err, data) { + if (err) { + return error(err); + } + var arr = []; + for (var i = 0; i < data.length; ++i) { + arr[i] = String.fromCharCode(data[i]); + } + success(arr.join('')); + }); + } else { + var data; + try { + data = fs.readFileSync(path); + } catch (e) { + return error(e); + } + var arr = []; + for (var i = 0; i < data.length; ++i) { + arr[i] = String.fromCharCode(data[i]); + } + success(arr.join('')); + } + } + } else if (utils.isReactNative) { + // If ReactNative + //var RNFS = require('react-native-fs'); + var RNFetchBlob = require$$5.default; + RNFetchBlob.fs.dirs; + //should use readStream instead if the file is large + RNFetchBlob.fs + .readFile(path, 'base64') + .then(function (data) { + success(data); + }) + .catch(error); + //*/ + } else { + if (typeof path === 'string') { + // For browser + var xhr = new XMLHttpRequest(); + xhr.open('GET', path, runAsync); // Async + xhr.responseType = 'arraybuffer'; + xhr.onload = function () { + var data = new Uint8Array(xhr.response); + var arr = []; + for (var i = 0; i < data.length; ++i) { + arr[i] = String.fromCharCode(data[i]); + } + success(arr.join('')); + }; + xhr.onerror = error; + xhr.send(); + } else if (path instanceof Event) { + + var files = path.target.files; + var reader = new FileReader(); + files[0].name; + reader.onload = function (e) { + var data = e.target.result; + success(data); + }; + reader.onerror = error; + reader.readAsArrayBuffer(files[0]); + } else if (path instanceof Blob) { + success(path); + } + } + }); + + (utils.removeFile = function (path, cb) { + if (utils.isNode) { + //*not-for-browser/* + var fs = require$$0$2; + fs.remove(path, cb); + } else if (utils.isCordova) { + utils.global.requestFileSystem(LocalFileSystem.PERSISTENT, 0, function (fileSystem) { + fileSystem.root.getFile( + path, + {create: false}, + function (fileEntry) { + fileEntry.remove(cb); + cb && cb(); // jshint ignore:line + }, + function () { + cb && cb(); // jshint ignore:line + } + ); + }); + } else if (utils.isReactNative) { + // If ReactNative + var RNFS = require$$3; + RNFS.unlink(path) + .then(function () { + cb && cb(); + }) + .catch(function (err) { + throw err; + }); + //*/ + } else { + throw new Error('You can remove files only in Node.js and Apache Cordova'); + } + }); + + // Todo: check if it makes sense to support cordova and Meteor server + (utils.deleteFile = function (path, cb) { + //*not-for-browser/* + if (utils.isNode) { + var fs = require$$0$2; + fs.unlink(path, cb); + } else if (utils.isReactNative) { + // If ReactNative + var RNFS = require$$3; + RNFS.unlink(path) + .then(function () { + cb && cb(); + }) + .catch(function (err) { + throw err; + }); + } + //*/ + }); + + utils.autoExtFilename = function (filename, ext, config) { + config = config || {}; + if ( + typeof filename !== 'string' || + filename.match(/^[A-z]+:\/\/|\n|\..{2,4}$/) || + config.autoExt === 0 || + config.autoExt === false + ) { + return filename; + } + return filename + '.' + ext; + }; + + (utils.fileExists = function (path, cb) { + if (utils.isNode) { + //*not-for-browser/* + var fs = require$$0$2; + fs.exists(path, cb); + } else if (utils.isCordova) { + utils.global.requestFileSystem(LocalFileSystem.PERSISTENT, 0, function (fileSystem) { + fileSystem.root.getFile( + path, + {create: false}, + function (fileEntry) { + cb(true); + }, + function () { + cb(false); + } + ); + }); + } else if (utils.isReactNative) { + // If ReactNative + var RNFS = require$$3; + RNFS.exists(path) + .then(function (yes) { + cb && cb(yes); + }) + .catch(function (err) { + throw err; + }); + //*/ + } else { + // TODO Cordova, etc. + throw new Error('You can use exists() only in Node.js or Apach Cordova'); + } + }); + + /** + Save text file from anywhere + @param {string} path File path + @param {array} data Data object + @param {function} cb Callback + @param {object=} opts + */ + + (utils.saveFile = function (path, data, cb, opts) { + var res = 1; + if (path === undefined) { + // + // Return data into result variable + // like: alasql('SELECT * INTO TXT() FROM ?',[data]); + // + res = data; + if (cb) { + res = cb(res); + } + } else { + if (utils.isNode) { + //*not-for-browser/* + var fs = require$$0$2; + data = fs.writeFileSync(path, data); + if (cb) { + res = cb(res); + } + } else if (utils.isReactNative) { + var RNFS = require$$3; + RNFS.writeFile(path, data) + .then(function (success) { + //, 'utf8' + if (cb) res = cb(res); + }) + .catch(function (err) { + console.error(err.message); + }); + } else if (utils.isCordova) { + utils.global.requestFileSystem(LocalFileSystem.PERSISTENT, 0, function (fileSystem) { + // alasql.utils.removeFile(path,function(){ + fileSystem.root.getFile(path, {create: true}, function (fileEntry) { + fileEntry.createWriter(function (fileWriter) { + fileWriter.onwriteend = function () { + if (cb) { + res = cb(res); + } + }; + fileWriter.write(data); + }); + }); + }); + //*/ + + // }); + // }); + // }); + } else { + var opt = { + disableAutoBom: false, + }; + alasql.utils.extend(opt, opts); + var blob = new Blob([data], {type: 'text/plain;charset=utf-8'}); + saveAs(blob, path, opt.disableAutoBom); + if (cb) { + res = cb(res); + } + } + } + + return res; + }); + + /** + @function Hash a string to signed integer + @param {string} source string + @return {integer} hash number + */ + + // FNV-1a inspired hashing + var hash = (utils.hash = function (str) { + var hash = 0x811c9dc5, + i = str.length; + while (i) { + hash ^= str.charCodeAt(--i); + hash += (hash << 1) + (hash << 4) + (hash << 7) + (hash << 8) + (hash << 24); + } + return hash; + }); + + /** + Union arrays + @function + @param {array} a + @param {array} b + @return {array} + */ + var arrayUnion = (utils.arrayUnion = function (a, b) { + var r = b.slice(0); + a.forEach(function (i) { + if (r.indexOf(i) < 0) { + r.push(i); + } + }); + return r; + }); + + /** + Array Difference + */ + var arrayDiff = (utils.arrayDiff = function (a, b) { + return a.filter(function (i) { + return b.indexOf(i) < 0; + }); + }); + + /** + Arrays deep intersect (with records) + */ + var arrayIntersect = (utils.arrayIntersect = function (a, b) { + var r = []; + a.forEach(function (ai) { + var found = false; + + b.forEach(function (bi) { + found = found || ai === bi; + }); + + if (found) { + r.push(ai); + } + }); + return r; + }); + + /** + Arrays deep union (with records) + */ + var arrayUnionDeep = (utils.arrayUnionDeep = function (a, b) { + var r = b.slice(0); + a.forEach(function (ai) { + var found = false; + + r.forEach(function (ri) { + // found = found || equalDeep(ai, ri, true); + found = found || deepEqual(ai, ri); + }); + + if (!found) { + r.push(ai); + } + }); + return r; + }); + + /** + Arrays deep union (with records) + */ + var arrayExceptDeep = (utils.arrayExceptDeep = function (a, b) { + var r = []; + a.forEach(function (ai) { + var found = false; + + b.forEach(function (bi) { + // found = found || equalDeep(ai, bi, true); + found = found || deepEqual(ai, bi); + }); + + if (!found) { + r.push(ai); + } + }); + return r; + }); + + /** + Arrays deep intersect (with records) + */ + var arrayIntersectDeep = (utils.arrayIntersectDeep = function (a, b) { + var r = []; + a.forEach(function (ai) { + var found = false; + + b.forEach(function (bi) { + // found = found || equalDeep(ai, bi, true); + found = found || deepEqual(ai, bi, true); + }); + + if (found) { + r.push(ai); + } + }); + return r; + }); + + /** + Deep clone objects + */ + var cloneDeep = (utils.cloneDeep = function cloneDeep(obj) { + if (null === obj || typeof obj !== 'object') { + return obj; + } + + if (obj instanceof Date) { + return new Date(obj); + } + + if (obj instanceof String) { + return obj.toString(); + } + + if (obj instanceof Number) { + return +obj; + } + + var temp = new obj.constructor(); // changed + + for (var key in obj) { + if (obj.hasOwnProperty(key)) { + temp[key] = cloneDeep(obj[key]); + } + } + return temp; + }); + + /** + Check equality of objects + */ + + /** + Compare two objects in deep + */ + var deepEqual = (utils.deepEqual = function (x, y) { + if (x === y) { + return true; + } + + if (typeof x === 'object' && null !== x && typeof y === 'object' && null !== y) { + if (Object.keys(x).length !== Object.keys(y).length) { + return false; + } + for (var prop in x) { + if (!deepEqual(x[prop], y[prop])) { + return false; + } + } + return true; + } + + return false; + }); + /** + Array with distinct records + @param {array} data + @return {array} + */ + var distinctArray = (utils.distinctArray = function (data) { + var uniq = {}; + // TODO: Speedup, because Object.keys is slow + for (var i = 0, ilen = data.length; i < ilen; i++) { + var uix; + if (typeof data[i] === 'object') { + uix = Object.keys(data[i]) + .sort() + .map(function (k) { + return k + '`' + data[i][k]; + }) + .join('`'); + } else { + uix = data[i]; + } + uniq[uix] = data[i]; + } + var res = []; + for (var key in uniq) { + res.push(uniq[key]); + } + return res; + }); + + /** + Extend object a with properties of b + @function + @param {object} a + @param {object} b + @return {object} + */ + var extend = (utils.extend = function extend(a, b) { + a = a || {}; + for (var key in b) { + if (b.hasOwnProperty(key)) { + a[key] = b[key]; + } + } + return a; + }); + + /** + * Extracts the primitive data + */ + var getValueOf = (utils.getValueOf = function (val) { + return typeof val === 'object' && (val instanceof String || val instanceof Number) + ? val.valueOf() + : val; + }); + + /** + Flat array by first row + */ + var flatArray = (utils.flatArray = function (a) { + + if (!a || 0 === a.length) { + return []; + } + + // For recordsets + if (typeof a === 'object' && a instanceof alasql.Recordset) { + return a.data.map(function (ai) { + return getValueOf(ai[a.columns[0].columnid]); + }); + } + // Else for other arrays + var key = Object.keys(a[0])[0]; + if (key === undefined) { + return []; + } + return a.map(function (ai) { + return ai[key]; + }); + }); + + /** + Convert array of objects to array of arrays + */ + (utils.arrayOfArrays = function (a) { + return a.map(function (aa) { + var ar = []; + for (var key in aa) { + ar.push(aa[key]); + } + return ar; + }); + }); + + if (!Array.isArray) { + Array.isArray = function (arg) { + return Object.prototype.toString.call(arg) === '[object Array]'; + }; + } + + /** + Excel:convert number to Excel column, like 1 => 'A' + @param {integer} i Column number, starting with 0 + @return {string} Column name, starting with 'A' + */ + + (utils.xlsnc = function (i) { + var first = ''; + if (i > 701) { + let x = (((i - 26) / (26 * 26)) | 0) - 1; + first = String.fromCharCode(65 + (x % 26)); + i = i % (26 * 26); + } + var addr = String.fromCharCode(65 + (i % 26)); + if (i >= 26) { + i = ((i / 26) | 0) - 1; + addr = String.fromCharCode(65 + (i % 26)) + addr; + if (i > 26) { + i = ((i / 26) | 0) - 1; + addr = String.fromCharCode(65 + (i % 26)) + addr; + } + } + return first + addr; + }); + + /** + Excel:conver Excel column name to number + @param {string} s Column number, like 'A' or 'BE' + @return {string} Column name, starting with 0 + */ + (utils.xlscn = function (s) { + var n = s.charCodeAt(0) - 65; + if (s.length > 1) { + n = (n + 1) * 26 + s.charCodeAt(1) - 65; + + if (s.length > 2) { + n = (n + 1) * 26 + s.charCodeAt(2) - 65; + } + } + return n; + }); + + (utils.domEmptyChildren = function (container) { + var len = container.childNodes.length; + while (len--) { + container.removeChild(container.lastChild); + } + }); + + /** + SQL LIKE emulation + @parameter {string} pattern Search pattern + @parameter {string} value Searched value + @parameter {string} escape Escape character (optional) + @return {boolean} If value LIKE pattern ESCAPE escape + */ + var patternCache = {}; + (utils.like = function (pattern, value, escape) { + if (!patternCache[pattern]) { + // Verify escape character + if (!escape) escape = ''; + + var i = 0; + var s = '^'; + + while (i < pattern.length) { + var c = pattern[i], + c1 = ''; + if (i < pattern.length - 1) c1 = pattern[i + 1]; + + if (c === escape) { + s += '\\' + c1; + i++; + } else if (c === '[' && c1 === '^') { + s += '[^'; + i++; + } else if (c === '[' || c === ']') { + s += c; + } else if (c === '%') { + s += '[\\s\\S]*'; + } else if (c === '_') { + s += '.'; + } else if ('/.*+?|(){}'.indexOf(c) > -1) { + s += '\\' + c; + } else { + s += c; + } + i++; + } + + s += '$'; + // if(value == undefined) return false; + + patternCache[pattern] = RegExp(s, 'i'); + } + return ('' + (value ?? '')).search(patternCache[pattern]) > -1; + }); + + utils.glob = function (value, pattern) { + var i = 0; + var s = '^'; + + while (i < pattern.length) { + var c = pattern[i], + c1 = ''; + if (i < pattern.length - 1) c1 = pattern[i + 1]; + + if (c === '[' && c1 === '^') { + s += '[^'; + i++; + } else if (c === '[' || c === ']') { + s += c; + } else if (c === '*') { + s += '.*'; + } else if (c === '?') { + s += '.'; + } else if ('/.*+?|(){}'.indexOf(c) > -1) { + s += '\\' + c; + } else { + s += c; + } + i++; + } + + s += '$'; + return ('' + (value || '')).toUpperCase().search(RegExp(s.toUpperCase())) > -1; + }; + + /** + Get path of alasql.js + @todo Rewrite and simplify the code. Review, is this function is required separately + */ + utils.findAlaSQLPath = function () { + /** type {string} Path to alasql library and plugins */ + + if (utils.isWebWorker) { + return ''; + /** @todo Check how to get path in worker */ + } else if (utils.isMeteorClient) { + return '/packages/dist/'; + } else if (utils.isMeteorServer) { + return 'assets/packages/dist/'; + } else if (utils.isNode) { + return __dirname; + } else if (utils.isBrowser) { + var sc = document.getElementsByTagName('script'); + + for (var i = 0; i < sc.length; i++) { + if (sc[i].src.substr(-16).toLowerCase() === 'alasql-worker.js') { + return sc[i].src.substr(0, sc[i].src.length - 16); + } else if (sc[i].src.substr(-20).toLowerCase() === 'alasql-worker.min.js') { + return sc[i].src.substr(0, sc[i].src.length - 20); + } else if (sc[i].src.substr(-9).toLowerCase() === 'alasql.js') { + return sc[i].src.substr(0, sc[i].src.length - 9); + } else if (sc[i].src.substr(-13).toLowerCase() === 'alasql.min.js') { + return sc[i].src.substr(0, sc[i].src.length - 13); + } + } + } + return ''; + }; + + var getXLSX = function () { + var XLSX = alasql.private.externalXlsxLib || utils.global.XLSX || null; + + if (XLSX) { + return XLSX; + } + + if (utils.isNode || utils.isBrowserify || utils.isMeteorServer) { + //*not-for-browser/* + XLSX = require$$6 || null; + alasql.private.externalXlsxLib = XLSX; + //*/ + } + + if (!XLSX) { + throw new Error('Please include the xlsx.js library'); + } + + return XLSX; + }; + + // set AlaSQl path + alasql.path = alasql.utils.findAlaSQLPath(); + /** + Strip all comments. + @function + @param {string} str + @return {string} + Based om the https://github.com/lehni/uncomment.js/blob/master/uncomment.js + I just replaced JavaScript's '//' to SQL's '--' and remove other stuff + + @todo Fixed [aaa/*bbb] for column names + @todo Bug if -- comments in the last line + @todo Check if it possible to model it with Jison parser + @todo Remove unused code + */ + + /* global alasql */ + + alasql.utils.uncomment = function (str) { + // Add some padding so we can always look ahead and behind by two chars + str = ('__' + str + '__').split(''); + var quote = false, + quoteSign, + // regularExpression = false, + // characterClass = false, + blockComment = false; + // preserveComment = false; + + for (var i = 0, l = str.length; i < l; i++) { + + // When checking for quote escaping, we also need to check that the + // escape sign itself is not escaped, as otherwise '\\' would cause + // the wrong impression of an unclosed string: + var unescaped = str[i - 1] !== '\\' || str[i - 2] === '\\'; + + if (quote) { + if (str[i] === quoteSign && unescaped) { + quote = false; + } + + } else if (blockComment) { + // Is the block comment closing? + if (str[i] === '*' && str[i + 1] === '/') { + // if (!preserveComment) + str[i] = str[i + 1] = ''; + blockComment /* = preserveComment*/ = false; + // Increase by 1 to skip closing '/', as it would be mistaken + // for a regexp otherwise + i++; + } else { + //if (!preserveComment) { + str[i] = ''; + } + } else { + if (str[i] === '"' || str[i] === "'") { + quote = true; + quoteSign = str[i]; + } else if (str[i] === '[' && str[i - 1] !== '@') { + quote = true; + quoteSign = ']'; + // } else if (str[i] === '-' && str[i + 1] === '-') { + // str[i] = ''; + // lineComment = true; + } else if (str[i] === '/' && str[i + 1] === '*') { + // Do not filter out conditional comments /*@ ... */ + // and comments marked as protected /*! ... */ + // preserveComment = /[@!]/.test(str[i + 2]); + // if (!preserveComment) + str[i] = ''; + blockComment = true; + + } + } + } + // Remove padding again. + str = str.join('').slice(2, -2); + + return str; + }; + /** + Database class for Alasql.js + */ + + // Initial parameters + + /** + Jison parser + */ + alasql.parser = alasqlparser; + + alasql.parser.parseError = function (str, hash) { + throw new Error('Have you used a reserved keyword without `escaping` it?\n' + str); + }; + + /** + Jison parser + @param {string} sql SQL statement + @return {object} AST (Abstract Syntax Tree) + + @todo Create class AST + @todo Add other parsers + + @example + alasql.parse = function(sql) { + // My own parser here + } + */ + alasql.parse = function (sql) { + return alasqlparser.parse(alasql.utils.uncomment(sql)); + }; + + /** + List of engines of external databases + @type {object} + @todo Create collection type + */ + alasql.engines = {}; + + /** + List of databases + @type {object} + */ + alasql.databases = {}; + + /** + Number of databases + @type {number} + */ + alasql.databasenum = 0; + + /** + Alasql options object + */ + alasql.options = { + /** Log or throw error */ + errorlog: false, + + /** Use valueof in orderfn */ + valueof: true, + + /** DROP database in any case */ + dropifnotexists: false, + + /** How to handle DATE and DATETIME types */ + datetimeformat: 'sql', + + /** Table and column names are case sensitive and converted to lower-case */ + casesensitive: true, + + /** target for log. Values: 'console', 'output', 'id' of html tag */ + logtarget: 'output', + + /** Print SQL at log */ + logprompt: true, + + /** Callback for async queries progress */ + progress: false, + + /** + * Default modifier + * values: RECORDSET, VALUE, ROW, COLUMN, MATRIX, TEXTSTRING, INDEX + * @type {'RECORDSET'|'VALUE'|'ROW'|'COLUMN'|'MATRIX'|'TEXTSTRING'|'INDEX'|undefined} + */ + modifier: undefined, + + /** How many rows to lookup to define columns */ + columnlookup: 10, + + /** Create vertex if not found */ + autovertex: true, + + /** Use dbo as current database (for partial T-SQL comaptibility) */ + usedbo: true, + + /** AUTOCOMMIT ON | OFF */ + autocommit: true, + + /** Use cache */ + cache: true, + + /** Compatibility flags */ + tsql: true, + + mysql: true, + + postgres: true, + + oracle: true, + + sqlite: true, + + orientdb: true, + + /** for SET NOCOUNT OFF */ + nocount: false, + + /** Check for NaN and convert it to undefined */ + nan: false, + + excel: {cellDates: true}, + + /** Option for SELECT * FROM a,b */ + joinstar: 'overwrite', + + loopbreak: 100000, + + /** Whether GETDATE() and NOW() return dates as string. If false, then a Date object is returned */ + dateAsString: true, + }; + + //alasql.options.worker = false; + + // Variables + alasql.vars = {}; + + alasql.declares = {}; + + alasql.prompthistory = []; + + alasql.plugins = {}; // If plugin already loaded + + alasql.from = {}; // FROM functions + + alasql.into = {}; // INTO functions + + alasql.fn = {}; + + alasql.aggr = {}; + + alasql.busy = 0; + + // Cache + alasql.MAXSQLCACHESIZE = 10000; + alasql.DEFAULTDATABASEID = 'alasql'; + + /* WebWorker */ + alasql.lastid = 0; + + alasql.buffer = {}; + + alasql.private = { + externalXlsxLib: null, + }; + + alasql.setXLSX = function (XLSX) { + alasql.private.externalXlsxLib = XLSX; + }; + + /** + Select current database + @param {string} databaseid Selected database identificator + */ + alasql.use = function (databaseid) { + if (!databaseid) { + databaseid = alasql.DEFAULTDATABASEID; + } + if (alasql.useid === databaseid) { + return; + } + if (alasql.databases[databaseid] !== undefined) { + alasql.useid = databaseid; + var db = alasql.databases[alasql.useid]; + alasql.tables = db.tables; + // alasql.fn = db.fn; + db.resetSqlCache(); + if (alasql.options.usedbo) { + alasql.databases.dbo = db; // Operator??? + } + } else { + throw Error('Database does not exist: ' + databaseid); + } + }; + + alasql.autoval = function (tablename, colname, getNext, databaseid) { + var db = databaseid ? alasql.databases[databaseid] : alasql.databases[alasql.useid]; + + if (!db.tables[tablename]) { + throw new Error('Tablename not found: ' + tablename); + } + + if (!db.tables[tablename].identities[colname]) { + throw new Error('Colname not found: ' + colname); + } + + if (getNext) { + return db.tables[tablename].identities[colname].value || null; + } + + return ( + db.tables[tablename].identities[colname].value - + db.tables[tablename].identities[colname].step || null + ); + }; + + /** + Run single SQL statement on current database + */ + alasql.exec = function (sql, params, cb, scope) { + // Avoid setting params if not needed even with callback + if (typeof params === 'function') { + scope = cb; + cb = params; + params = {}; + } + + delete alasql.error; + params = params || {}; + if (alasql.options.errorlog) { + try { + return alasql.dexec(alasql.useid, sql, params, cb, scope); + } catch (err) { + alasql.error = err; + if (cb) { + cb(null, alasql.error); + } + } + } else { + return alasql.dexec(alasql.useid, sql, params, cb, scope); + } + }; + + /** + Run SQL statement on specific database + */ + alasql.dexec = function (databaseid, sql, params, cb, scope) { + var db = alasql.databases[databaseid]; + // if(db.databaseid != databaseid) console.trace('got!'); + + var hh = hash(sql); + + // Create hash + if (alasql.options.cache) { + var statement = db.sqlCache[hh]; + // If database structure was not changed since last time return cache + if (statement && db.dbversion === statement.dbversion) { + return statement(params, cb); + } + } + + var ast = db.astCache[hh]; + if (alasql.options.cache && !ast) { + // Create AST cache + ast = alasql.parse(sql); + if (ast) { + // add to AST cache + db.astCache[hh] = ast; + } + } else { + ast = alasql.parse(sql); + } + if (!ast.statements) { + return; + } + if (0 === ast.statements.length) { + return 0; + } else if (1 === ast.statements.length) { + if (ast.statements[0].compile) { + // Compile and Execute + var statement = ast.statements[0].compile(databaseid, params); + if (!statement) { + return; + } + statement.sql = sql; + statement.dbversion = db.dbversion; + + if (alasql.options.cache) { + // Secure sqlCache size + if (db.sqlCacheSize > alasql.MAXSQLCACHESIZE) { + db.resetSqlCache(); + } + db.sqlCacheSize++; + db.sqlCache[hh] = statement; + } + var res = (alasql.res = statement(params, cb, scope)); + return res; + } else { + + alasql.precompile(ast.statements[0], alasql.useid, params); + var res = (alasql.res = ast.statements[0].execute(databaseid, params, cb, scope)); + return res; + } + } else { + // Multiple statements + if (cb) { + alasql.adrun(databaseid, ast, params, cb, scope); + } else { + return alasql.drun(databaseid, ast, params, cb, scope); + } + } + }; + + /** + Run multiple statements and return array of results sync + */ + alasql.drun = function (databaseid, ast, params, cb, scope) { + var useid = alasql.useid; + + if (useid !== databaseid) { + alasql.use(databaseid); + } + + var res = []; + for (var i = 0, ilen = ast.statements.length; i < ilen; i++) { + if (ast.statements[i]) { + if (ast.statements[i].compile) { + var statement = ast.statements[i].compile(alasql.useid); + res.push((alasql.res = statement(params, null, scope))); + } else { + alasql.precompile(ast.statements[i], alasql.useid, params); + res.push((alasql.res = ast.statements[i].execute(alasql.useid, params))); + } + } + } + if (useid !== databaseid) { + alasql.use(useid); + } + + if (cb) { + cb(res); + } + + alasql.res = res; + + return res; + }; + + /** + Run multiple statements and return array of results async + */ + alasql.adrun = function (databaseid, ast, params, cb, scope) { + var idx = 0; + var noqueries = ast.statements.length; + if (alasql.options.progress !== false) { + alasql.options.progress(noqueries, idx++); + } + + // alasql.busy++; + var useid = alasql.useid; + if (useid !== databaseid) { + alasql.use(databaseid); + } + var res = []; + + function adrunone(data) { + if (data !== undefined) { + res.push(data); + } + var astatement = ast.statements.shift(); + if (!astatement) { + if (useid !== databaseid) { + alasql.use(useid); + } + cb(res); + // alasql.busy--; + // if(alasql.busy<0) alasql.busy = 0; + } else { + if (astatement.compile) { + var statement = astatement.compile(alasql.useid); + statement(params, adrunone, scope); + if (alasql.options.progress !== false) { + alasql.options.progress(noqueries, idx++); + } + } else { + alasql.precompile(ast.statements[0], alasql.useid, params); + astatement.execute(alasql.useid, params, adrunone); + if (alasql.options.progress !== false) { + alasql.options.progress(noqueries, idx++); + } + } + } + } + + adrunone(); /** @todo Check, why data is empty here */ + }; + + /** + Compile statement to JavaScript function + @param {string} sql SQL statement + @param {string} databaseid Database identificator + @return {functions} Compiled statement functions + */ + alasql.compile = function (sql, databaseid) { + databaseid = databaseid || alasql.useid; + + var ast = alasql.parse(sql); // Create AST + + if (1 === ast.statements.length) { + var statement = ast.statements[0].compile(databaseid); + statement.promise = function (params) { + return new Promise(function (resolve, reject) { + statement(params, function (data, err) { + if (err) { + reject(err); + } else { + resolve(data); + } + }); + }); + }; + + return statement; + + } else { + throw new Error('Cannot compile, because number of statements in SQL is not equal to 1'); + } + }; + + // + // Promises for AlaSQL + // + + if (!utils.global.Promise) { + utils.global.Promise = Promise; + } + + var promiseExec = function (sql, params, counterStep, counterTotal) { + return new utils.global.Promise(function (resolve, reject) { + alasql(sql, params, function (data, err) { + if (err) { + reject(err); + } else { + if (counterStep && counterTotal && alasql.options.progress !== false) { + alasql.options.progress(counterStep, counterTotal); + } + resolve(data); + } + }); + }); + }; + + const sequentialPromiseResolver = (promiseData, Promise) => { + var startingPoint = Promise.resolve([]); + promiseData.forEach(p => { + startingPoint = startingPoint.then(previousResult => + promiseExec(p.sql, p.params, p.i, p.length).then(result => [...previousResult, result]) + ); + }); + + return startingPoint; + }; + + var promiseAll = function (sqlParamsArray) { + if (sqlParamsArray.length < 1) { + return; + } + + var active, sql, params; + + var execArray = []; + + for (var i = 0; i < sqlParamsArray.length; i++) { + active = sqlParamsArray[i]; + + if (typeof active === 'string') { + active = [active]; + } + + if (!utils.isArray(active) || active.length < 1 || 2 < active.length) { + throw new Error('Error in .promise parameter'); + } + + sql = active[0]; + params = active[1] || undefined; + + execArray.push({ + sql, + params, + i, + length: sqlParamsArray.length, + }); + } + + // in case of indexdb the version does not update + // if create table queries are run in parallel + // this causes certain DML queries to not execute + // running them sequentially fixes this issue + return sequentialPromiseResolver(execArray, utils.global.Promise); + }; + + alasql.promise = function (sql, params) { + if (typeof Promise === 'undefined') { + throw new Error('Please include a Promise/A+ library'); + } + + if (typeof sql === 'string') { + return promiseExec(sql, params); + } + + if (!utils.isArray(sql) || sql.length < 1 || typeof params !== 'undefined') { + throw new Error('Error in .promise parameters'); + } + return promiseAll(sql); + }; + /* + // + // Database class for Alasql.js + // Date: 03.11.2014 + // (c) 2014, Andrey Gershun + // + */ + + // Main Database class + + /** + @class Database + */ + + var Database = (alasql.Database = function (databaseid) { + var self = this; + + // self.prototype = this; + + if (self === alasql) { + if (databaseid) { + // if(alasql.databases[databaseid]) { + self = alasql.databases[databaseid]; + // } else { + alasql.databases[databaseid] = self; + // } + if (!self) { + throw new Error(`Database ${databaseid} not found`); + } + } else { + // Create new database (or get alasql?) + self = alasql.databases.alasql; + // For SQL Server examples, USE tempdb + if (alasql.options.tsql) { + alasql.databases.tempdb = alasql.databases.alasql; + } + // self = new Database(databaseid); // to call without new + } + } + if (!databaseid) { + databaseid = 'db' + alasql.databasenum++; // Random name + } + + // Step 1 + self.databaseid = databaseid; + alasql.databases[databaseid] = self; + self.dbversion = 0; + + //Steps 2-5 + self.tables = {}; + self.views = {}; + self.triggers = {}; + self.indices = {}; + + // Step 6: Objects storage + self.objects = {}; + self.counter = 0; + + self.resetSqlCache(); + return self; + }); + + /** + Reset SQL statements cache + */ + + Database.prototype.resetSqlCache = function () { + this.sqlCache = {}; // Cache for compiled SQL statements + this.sqlCacheSize = 0; + this.astCache = {}; // Cache for AST objects + }; + + // Main SQL function + + /** + Run SQL statement on database + @param {string} sql SQL statement + @param [object] params Parameters + @param {function} cb callback + */ + + Database.prototype.exec = function (sql, params, cb) { + return alasql.dexec(this.databaseid, sql, params, cb); + }; + + Database.prototype.autoval = function (tablename, colname, getNext) { + return alasql.autoval(tablename, colname, getNext, this.databaseid); + }; + + Database.prototype.transaction = function (cb) { + var tx = new alasql.Transaction(this.databaseid); + var res = cb(tx); + return res; + }; + + // Aliases like MS SQL + + /* + // + // Transaction class for Alasql.js + // Date: 03.11.2014 + // (c) 2014, Andrey Gershun + // + */ + + class Transaction { + transactionid = Date.now(); + + committed = false; + + /** @type {string | undefined} */ + bank; + + constructor(databaseid) { + this.databaseid = databaseid; + this.dbversion = alasql.databases[databaseid].dbversion; + // this.bank = structuredClone(alasql.databases[databaseid]); + this.bank = JSON.stringify(alasql.databases[databaseid]); + // TODO CLone Tables with insertfns + } + + /** Commit transaction */ + commit() { + this.committed = true; + alasql.databases[this.databaseid].dbversion = Date.now(); + delete this.bank; + } + + /** Rollback transaction */ + rollback() { + if (!this.committed) { + alasql.databases[this.databaseid] = JSON.parse(this.bank); + // alasql.databases[this.databaseid].tables = this.bank; + // alasql.databases[this.databaseid].dbversion = this.dbversion; + delete this.bank; + } else { + throw new Error('Transaction already commited'); + } + } + + /** + * Execute SQL statement + * @param {string} sql SQL statement + * @param {object} params Parameters + * @param {function} cb Callback function + * @return result + */ + exec(sql, params, cb) { + return alasql.dexec(this.databaseid, sql, params, cb); + } + + /* + queryArray (sql, params, cb) { + return flatArray(this.exec(sql, params, cb)); + } + + queryArrayOfArrays (sql, params, cb) { + return arrayOfArrays(this.exec(sql, params, cb)); + } + + querySingle (sql, params, cb) { + return this.exec(sql, params, cb)[0]; + } + + queryValue (sql, params, cb) { + var res = this.querySingle(sql, params, cb); + return res[Object.keys(res)[0]]; + } + */ + } + + Transaction.prototype.executeSQL = Transaction.prototype.exec; + + // Transaction.prototype.query = Database.prototype.exec; + // Transaction.prototype.run = Database.prototype.exec; + + alasql.Transaction = Transaction; + /* + // + // Table class for Alasql.js + // Date: 14.11.2014 + // (c) 2014, Andrey Gershun + // + */ + + // Table class + var Table = (alasql.Table = function (params) { + // Step 1: Data array + this.data = []; + + // Step 2: Columns + this.columns = []; + this.xcolumns = {}; + + // Step 3: indices + this.inddefs = {}; + this.indices = {}; + this.uniqs = {}; + this.uniqdefs = {}; + + // Step 4: identities + this.identities = {}; + + // Step 5: checkfn... + this.checks = []; + this.checkfns = []; // For restore... to be done... + + // Step 6: INSERT/DELETE/UPDATE + + // Step 7: Triggers... + // Create trigger hubs + this.beforeinsert = {}; + this.afterinsert = {}; + this.insteadofinsert = {}; + + this.beforedelete = {}; + this.afterdelete = {}; + this.insteadofdelete = {}; + + this.beforeupdate = {}; + this.afterupdate = {}; + this.insteadofupdate = {}; + + // Done + Object.assign(this, params); + }); + + Table.prototype.indexColumns = function () { + var self = this; + self.xcolumns = {}; + self.columns.forEach(function (col) { + self.xcolumns[col.columnid] = col; + }); + }; + /* + // + // View class for Alasql.js + // Date: 14.11.2014 + // (c) 2014, Andrey Gershun + // + */ + + // Table class + class View { + constructor(params) { + // Columns + this.columns = []; + this.xcolumns = {}; + // Data array + this.query = []; + + Object.assign(this, params); + } + } + + alasql.View = View; + + /* + // + // Query class for Alasql.js + // Date: 14.11.2014 + // (c) 2014, Andrey Gershun + // + */ + + // Table class + + /** + @class Query Main query class + */ + class Query { + constructor(params) { + this.alasql = alasql; + + // Columns + this.columns = []; + this.xcolumns = {}; + this.selectGroup = []; + this.groupColumns = {}; + // Data array + Object.assign(this, params); + } + } + + /** + @class Recordset data object + */ + class Recordset { + constructor(params) { + // Data array + Object.assign(this, params); + } + } + + alasql.Recordset = Recordset; + alasql.Query = Query; + + /* + // + // Parser helper for Alasql.js + // Date: 03.11.2014 + // (c) 2014, Andrey Gershun + // + */ + + // Base class for all yy classes + class Base { + constructor(params) { + Object.assign(this, params); + } + toString() {} + toType() {} + toJS() {} + exec() {} + compile() {} + } + + var yy = { + // Utility + /** @deprecated use `Object.assign` instead */ + extend: Object.assign, + + // Option for case sensitive + casesensitive: alasql.options.casesensitive, + Base, + }; + + alasqlparser.yy = alasql.yy = yy; + /* + // + // Statements class for Alasql.js + // Date: 03.11.2014 + // (c) 2014, Andrey Gershun + // + */ + + yy.Statements = class Statements { + constructor(params) { + Object.assign(this, params); + } + + toString() { + return this.statements.map(st => st.toString()).join('; '); + } + + // Compile array of statements into single statement + compile(db) { + const statements = this.statements.map(st => st.compile(db)); + return statements.length === 1 + ? statements[0] + : (params, cb) => { + const res = statements.map(st => st(params)); + if (cb) cb(res); + return res; + }; + } + }; + /* global alasql */ + /* global yy */ + /* + // + // SEARCH for Alasql.js + // Date: 04.05.2015 + // (c) 2015, Andrey Gershun + // + */ + + /** + Search class + @example + SEARCH SUM(/a) FROM ? -- search over parameter object + */ + + yy.Search = class Search { + constructor(params) { + Object.assign(this, params); + } + + toString() { + let s = 'SEARCH '; + if (this.selectors) s += this.selectors.toString(); + if (this.from) s += 'FROM ' + this.from.toString(); + return s; + } + + toJS(context) { + const s = `this.queriesfn[${this.queriesidx - 1}](this.params,null,${context})`; + return s; + } + + compile(databaseid) { + var dbid = databaseid; + + var statement = (params, cb) => { + var res; + this.#doSearch(dbid, params, function (data) { + res = modify(statement.query, data); + if (cb) res = cb(res); + }); + // if(cb) res = cb(res); + return res; + }; + statement.query = {}; + return statement; + } + + #doSearch(databaseid, params, cb) { + var res; + var stope = {}; + var fromdata; + var selectors = cloneDeep(this.selectors); + + function processSelector(selectors, sidx, value) { + // var val; + + var val, // temp values use many places + nest, // temp value used many places + r, // temp value used many places + sel = selectors[sidx]; + + var INFINITE_LOOP_BREAK = alasql.options.loopbreak || 100000; + + if (sel.selid) { + // TODO Process Selector + if (sel.selid === 'PATH') { + var queue = [{node: value, stack: []}]; + var visited = {}; + //var path = []; + var objects = alasql.databases[alasql.useid].objects; + while (queue.length > 0) { + var q = queue.shift(); + var node = q.node; + var stack = q.stack; + var r = processSelector(sel.args, 0, node); + if (r.length > 0) { + if (sidx + 1 + 1 > selectors.length) { + return stack; + } else { + var rv = []; + if (stack && stack.length > 0) { + stack.forEach(function (stv) { + rv = rv.concat(processSelector(selectors, sidx + 1, stv)); + }); + } + return rv; + // return processSelector(selectors,sidx+1,stack); + } + } else { + if (typeof visited[node.$id] !== 'undefined') { + continue; + } else { + + visited[node.$id] = true; + if (node.$out && node.$out.length > 0) { + node.$out.forEach(function (edgeid) { + var edge = objects[edgeid]; + var stack2 = stack.concat(edge); + stack2.push(objects[edge.$out[0]]); + queue.push({ + node: objects[edge.$out[0]], + stack: stack2, + }); + }); + } + } + } + } + // Else return fail + return []; + } + if (sel.selid === 'NOT') { + var nest = processSelector(sel.args, 0, value); + + if (nest.length > 0) { + return []; + } else { + if (sidx + 1 + 1 > selectors.length) { + return [value]; + } else { + return processSelector(selectors, sidx + 1, value); + } + } + } else if (sel.selid === 'DISTINCT') { + var nest; + if (typeof sel.args === 'undefined' || sel.args.length === 0) { + nest = distinctArray(value); + } else { + nest = processSelector(sel.args, 0, value); + } + if (nest.length === 0) { + return []; + } else { + var res = distinctArray(nest); + if (sidx + 1 + 1 > selectors.length) { + return res; + } else { + return processSelector(selectors, sidx + 1, res); + } + } + } else if (sel.selid === 'AND') { + var res = true; + sel.args.forEach(function (se) { + res = res && processSelector(se, 0, value).length > 0; + }); + if (!res) { + return []; + } else { + if (sidx + 1 + 1 > selectors.length) { + return [value]; + } else { + return processSelector(selectors, sidx + 1, value); + } + } + } else if (sel.selid === 'OR') { + var res = false; + sel.args.forEach(function (se) { + res = res || processSelector(se, 0, value).length > 0; + }); + if (!res) { + return []; + } else { + if (sidx + 1 + 1 > selectors.length) { + return [value]; + } else { + return processSelector(selectors, sidx + 1, value); + } + } + } else if (sel.selid === 'ALL') { + var nest = processSelector(sel.args[0], 0, value); + if (nest.length === 0) { + return []; + } else { + if (sidx + 1 + 1 > selectors.length) { + return nest; + } else { + return processSelector(selectors, sidx + 1, nest); + } + } + } else if (sel.selid === 'ANY') { + var nest = processSelector(sel.args[0], 0, value); + if (nest.length === 0) { + return []; + } else { + if (sidx + 1 + 1 > selectors.length) { + return [nest[0]]; + } else { + return processSelector(selectors, sidx + 1, [nest[0]]); + } + } + } else if (sel.selid === 'UNIONALL') { + var nest = []; + sel.args.forEach(function (se) { + nest = nest.concat(processSelector(se, 0, value)); + }); + if (nest.length === 0) { + return []; + } else { + if (sidx + 1 + 1 > selectors.length) { + return nest; + } else { + return processSelector(selectors, sidx + 1, nest); + } + } + } else if (sel.selid === 'UNION') { + var nest = []; + sel.args.forEach(function (se) { + nest = nest.concat(processSelector(se, 0, value)); + }); + var nest = distinctArray(nest); + if (nest.length === 0) { + return []; + } else { + if (sidx + 1 + 1 > selectors.length) { + return nest; + } else { + return processSelector(selectors, sidx + 1, nest); + } + } + } else if (sel.selid === 'IF') { + var nest = processSelector(sel.args, 0, value); + + if (nest.length === 0) { + return []; + } else { + if (sidx + 1 + 1 > selectors.length) { + return [value]; + } else { + return processSelector(selectors, sidx + 1, value); + } + } + } else if (sel.selid === 'REPEAT') { + + var lvar, + lmax, + lmin = sel.args[0].value; + if (!sel.args[1]) { + lmax = lmin; // Add security break + } else { + lmax = sel.args[1].value; + } + if (sel.args[2]) { + lvar = sel.args[2].variable; + } + //var lsel = sel.sels; + + var retval = []; + + if (lmin === 0) { + if (sidx + 1 + 1 > selectors.length) { + retval = [value]; + } else { + if (lvar) { + alasql.vars[lvar] = 0; + } + retval = retval.concat(processSelector(selectors, sidx + 1, value)); + } + } + + // var nests = processSelector(sel.sels,0,value).slice(); + if (lmax > 0) { + var nests = [{value: value, lvl: 1}]; + + var i = 0; + while (nests.length > 0) { + var nest = nests[0]; + + nests.shift(); + if (nest.lvl <= lmax) { + if (lvar) { + alasql.vars[lvar] = nest.lvl; + } + + var nest1 = processSelector(sel.sels, 0, nest.value); + + nest1.forEach(function (n) { + nests.push({value: n, lvl: nest.lvl + 1}); + }); + if (nest.lvl >= lmin) { + if (sidx + 1 + 1 > selectors.length) { + retval = retval.concat(nest1); + //return nests; + } else { + nest1.forEach(function (n) { + retval = retval.concat(processSelector(selectors, sidx + 1, n)); + }); + } + } + } + // Security brake + i++; + if (i > INFINITE_LOOP_BREAK) { + throw new Error('Infinite loop brake. Number of iterations = ' + i); + } + } + } + return retval; + } else if (sel.selid === 'OF') { + if (sidx + 1 + 1 > selectors.length) { + return [value]; + } else { + var r1 = []; + Object.keys(value).forEach(function (keyv) { + alasql.vars[sel.args[0].variable] = keyv; + r1 = r1.concat(processSelector(selectors, sidx + 1, value[keyv])); + }); + return r1; + } + } else if (sel.selid === 'TO') { + + var oldv = alasql.vars[sel.args[0]]; + var newv = []; + if (oldv !== undefined) { + + newv = oldv.slice(0); + + } else { + newv = []; + } + newv.push(value); + + if (sidx + 1 + 1 > selectors.length) { + return [value]; + } else { + alasql.vars[sel.args[0]] = newv; + var r1 = processSelector(selectors, sidx + 1, value); + + alasql.vars[sel.args[0]] = oldv; + return r1; + } + + } else if (sel.selid === 'ARRAY') { + var nest = processSelector(sel.args, 0, value); + if (nest.length > 0) { + val = nest; + } else { + return []; + } + if (sidx + 1 + 1 > selectors.length) { + return [val]; + } else { + return processSelector(selectors, sidx + 1, val); + } + } else if (sel.selid === 'SUM') { + var nest = processSelector(sel.args, 0, value); + if (nest.length > 0) { + var val = nest.reduce(function (sum, current) { + return sum + current; + }, 0); + } else { + return []; + } + if (sidx + 1 + 1 > selectors.length) { + return [val]; + } else { + return processSelector(selectors, sidx + 1, val); + } + } else if (sel.selid === 'AVG') { + nest = processSelector(sel.args, 0, value); + if (nest.length > 0) { + val = + nest.reduce(function (sum, current) { + return sum + current; + }, 0) / nest.length; + } else { + return []; + } + if (sidx + 1 + 1 > selectors.length) { + return [val]; + } else { + return processSelector(selectors, sidx + 1, val); + } + } else if (sel.selid === 'COUNT') { + nest = processSelector(sel.args, 0, value); + if (nest.length > 0) { + val = nest.length; + } else { + return []; + } + if (sidx + 1 + 1 > selectors.length) { + return [val]; + } else { + return processSelector(selectors, sidx + 1, val); + } + } else if (sel.selid === 'FIRST') { + nest = processSelector(sel.args, 0, value); + if (nest.length > 0) { + val = nest[0]; + } else { + return []; + } + + if (sidx + 1 + 1 > selectors.length) { + return [val]; + } else { + return processSelector(selectors, sidx + 1, val); + } + } else if (sel.selid === 'LAST') { + nest = processSelector(sel.args, 0, value); + if (nest.length > 0) { + val = nest[nest.length - 1]; + } else { + return []; + } + + if (sidx + 1 + 1 > selectors.length) { + return [val]; + } else { + return processSelector(selectors, sidx + 1, val); + } + } else if (sel.selid === 'MIN') { + nest = processSelector(sel.args, 0, value); + if (nest.length === 0) { + return []; + } + var val = nest.reduce(function (min, current) { + return Math.min(min, current); + }, Infinity); + if (sidx + 1 + 1 > selectors.length) { + return [val]; + } else { + return processSelector(selectors, sidx + 1, val); + } + } else if (sel.selid === 'MAX') { + var nest = processSelector(sel.args, 0, value); + if (nest.length === 0) { + return []; + } + var val = nest.reduce(function (max, current) { + return Math.max(max, current); + }, -Infinity); + if (sidx + 1 + 1 > selectors.length) { + return [val]; + } else { + return processSelector(selectors, sidx + 1, val); + } + } else if (sel.selid === 'PLUS') { + var retval = []; + // retval = retval.concat(processSelector(selectors,sidx+1,n)) + var nests = processSelector(sel.args, 0, value).slice(); + if (sidx + 1 + 1 > selectors.length) { + retval = retval.concat(nests); + } else { + nests.forEach(function (n) { + retval = retval.concat(processSelector(selectors, sidx + 1, n)); + }); + } + + var i = 0; + while (nests.length > 0) { + // nest = nests[0]; + // nests.shift(); + var nest = nests.shift(); + + nest = processSelector(sel.args, 0, nest); + + nests = nests.concat(nest); + + if (sidx + 1 + 1 > selectors.length) { + retval = retval.concat(nest); + //return retval; + } else { + nest.forEach(function (n) { + + var rn = processSelector(selectors, sidx + 1, n); + + retval = retval.concat(rn); + }); + } + + // Security brake + i++; + if (i > INFINITE_LOOP_BREAK) { + throw new Error('Infinite loop brake. Number of iterations = ' + i); + } + } + return retval; + + } else if (sel.selid === 'STAR') { + var retval = []; + retval = processSelector(selectors, sidx + 1, value); + var nests = processSelector(sel.args, 0, value).slice(); + if (sidx + 1 + 1 > selectors.length) { + retval = retval.concat(nests); + //return nests; + } else { + nests.forEach(function (n) { + retval = retval.concat(processSelector(selectors, sidx + 1, n)); + }); + } + var i = 0; + while (nests.length > 0) { + var nest = nests[0]; + nests.shift(); + + nest = processSelector(sel.args, 0, nest); + + nests = nests.concat(nest); + + if (sidx + 1 + 1 <= selectors.length) { + nest.forEach(function (n) { + retval = retval.concat(processSelector(selectors, sidx + 1, n)); + }); + } + + // Security brake + i++; + if (i > INFINITE_LOOP_BREAK) { + throw new Error('Infinite loop brake. Number of iterations = ' + i); + } + } + + return retval; + } else if (sel.selid === 'QUESTION') { + var retval = []; + retval = retval.concat(processSelector(selectors, sidx + 1, value)); + var nest = processSelector(sel.args, 0, value); + if (sidx + 1 + 1 <= selectors.length) { + nest.forEach(function (n) { + retval = retval.concat(processSelector(selectors, sidx + 1, n)); + }); + } + return retval; + } else if (sel.selid === 'WITH') { + var nest = processSelector(sel.args, 0, value); + + if (nest.length === 0) { + return []; + } else { + + var r = {status: 1, values: nest}; + } + } else if (sel.selid === 'ROOT') { + if (sidx + 1 + 1 > selectors.length) { + return [value]; + } else { + return processSelector(selectors, sidx + 1, fromdata); + } + } else { + throw new Error('Wrong selector ' + sel.selid); + } + } else if (sel.srchid) { + var r = alasql.srch[sel.srchid.toUpperCase()](value, sel.args, stope, params); + + } else { + throw new Error('Selector not found'); + } + + if (typeof r === 'undefined') { + r = {status: 1, values: [value]}; + } + + var res = []; + if (r.status === 1) { + var arr = r.values; + + if (sidx + 1 + 1 > selectors.length) { + // if(sidx+1+1 > selectors.length) { + res = arr; + + } else { + for (var i = 0; i < r.values.length; i++) { + res = res.concat(processSelector(selectors, sidx + 1, arr[i])); + } + } + } + return res; + } + + if (selectors !== undefined && selectors.length > 0) { + + if ( + selectors && + selectors[0] && + selectors[0].srchid === 'PROP' && + selectors[0].args && + selectors[0].args[0] + ) { + + if (selectors[0].args[0].toUpperCase() === 'XML') { + stope.mode = 'XML'; + selectors.shift(); + } else if (selectors[0].args[0].toUpperCase() === 'HTML') { + stope.mode = 'HTML'; + selectors.shift(); + } else if (selectors[0].args[0].toUpperCase() === 'JSON') { + stope.mode = 'JSON'; + selectors.shift(); + } + } + if (selectors.length > 0 && selectors[0].srchid === 'VALUE') { + stope.value = true; + selectors.shift(); + } + } + + if (this.from instanceof yy.Column) { + var dbid = this.from.databaseid || databaseid; + fromdata = alasql.databases[dbid].tables[this.from.columnid].data; + //selectors.unshift({srchid:'CHILD'}); + } else if (this.from instanceof yy.FuncValue && alasql.from[this.from.funcid.toUpperCase()]) { + var args = this.from.args.map(function (arg) { + var as = arg.toJS(); + + var fn = new Function('params,alasql', 'var y;return ' + as).bind(this); + return fn(params, alasql); + }); + + fromdata = alasql.from[this.from.funcid.toUpperCase()].apply(this, args); + + } else if (typeof this.from === 'undefined') { + fromdata = alasql.databases[databaseid].objects; + } else { + var fromfn = new Function('params,alasql', 'var y;return ' + this.from.toJS()); + fromdata = fromfn(params, alasql); + // Check for Mogo Collections + if ( + typeof Mongo === 'object' && + typeof Mongo.Collection !== 'object' && + fromdata instanceof Mongo.Collection + ) { + fromdata = fromdata.find().fetch(); + } + + // if(typeof fromdata == 'object' && Array.isArray(fromdata)) { + // selectors.unshift({srchid:'CHILD'}); + // } + } + + // If source data is array than first step is to run over array + // var selidx = 0; + // var selvalue = fromdata; + + if (selectors !== undefined && selectors.length > 0) { + + res = processSelector(selectors, 0, fromdata); + } else { + res = fromdata; + } + + if (this.into) { + var a1, a2; + if (typeof this.into.args[0] !== 'undefined') { + a1 = new Function('params,alasql', 'var y;return ' + this.into.args[0].toJS())( + params, + alasql + ); + } + if (typeof this.into.args[1] !== 'undefined') { + a2 = new Function('params,alasql', 'var y;return ' + this.into.args[1].toJS())( + params, + alasql + ); + } + res = alasql.into[this.into.funcid.toUpperCase()](a1, a2, res, [], cb); + } else { + if (stope.value && res.length > 0) { + res = res[0]; + } + if (cb) { + res = cb(res); + } + } + return res; + } + }; + + // List of search functions + alasql.srch = { + PROP(val, args, stope) { + + if (stope.mode === 'XML') { + const values = val.children.filter(v => v.name.toUpperCase() === args[0].toUpperCase()); + + return { + status: values.length ? 1 : -1, + values, + }; + } else { + if ( + typeof val !== 'object' || + val === null || + typeof args !== 'object' || + typeof val[args[0]] === 'undefined' + ) { + return {status: -1, values: []}; + } else { + return {status: 1, values: [val[args[0]]]}; + } + } + }, + + APROP(val, args) { + if ( + typeof val !== 'object' || + val === null || + typeof args !== 'object' || + typeof val[args[0]] === 'undefined' + ) { + return {status: 1, values: [undefined]}; + } else { + return {status: 1, values: [val[args[0]]]}; + } + }, + + EQ(val, args, stope, params) { + var exprs = args[0].toJS('x', ''); + var exprfn = new Function('x,alasql,params', 'return ' + exprs); + if (val === exprfn(val, alasql, params)) { + return {status: 1, values: [val]}; + } else { + return {status: -1, values: []}; + } + }, + + // Test expression + LIKE(val, args, stope, params) { + var exprs = args[0].toJS('x', ''); + var exprfn = new Function('x,alasql,params', 'return ' + exprs); + if ( + val + .toUpperCase() + .match( + new RegExp( + '^' + + exprfn(val, alasql, params).toUpperCase().replace(/%/g, '.*').replace(/\?|_/g, '.') + + '$' + ), + 'g' + ) + ) { + return {status: 1, values: [val]}; + } else { + return {status: -1, values: []}; + } + }, + + ATTR(val, args, stope) { + if (stope.mode === 'XML') { + if (typeof args === 'undefined') { + return {status: 1, values: [val.attributes]}; + } else { + if ( + typeof val === 'object' && + typeof val.attributes === 'object' && + typeof val.attributes[args[0]] !== 'undefined' + ) { + return {status: 1, values: [val.attributes[args[0]]]}; + } else { + return {status: -1, values: []}; + } + } + } else { + throw new Error('ATTR is not using in usual mode'); + } + }, + + CONTENT(val, args, stope) { + if (stope.mode !== 'XML') { + throw new Error('ATTR is not using in usual mode'); + } + return {status: 1, values: [val.content]}; + }, + + SHARP(val, args) { + const obj = alasql.databases[alasql.useid].objects[args[0]]; + if (val !== undefined && val === obj) { + return {status: 1, values: [val]}; + } else { + return {status: -1, values: []}; + } + }, + + PARENT(/*val,args,stope*/) { + // TODO: implement + console.error('PARENT not implemented', arguments); + + return {status: -1, values: []}; + }, + + CHILD(val, args, stope) { + + if (typeof val === 'object') { + if (Array.isArray(val)) { + return {status: 1, values: val}; + } else { + if (stope.mode === 'XML') { + return { + status: 1, + values: Object.keys(val.children).map(function (key) { + return val.children[key]; + }), + }; + } else { + return { + status: 1, + values: Object.keys(val).map(function (key) { + return val[key]; + }), + }; + } + } + } else { + // If primitive value + return {status: 1, values: []}; + } + }, + + // Return all keys + KEYS(val) { + if (typeof val === 'object' && val !== null) { + return {status: 1, values: Object.keys(val)}; + } else { + // If primitive value + return {status: 1, values: []}; + } + }, + + // Test expression + WHERE(val, args, stope, params) { + var exprs = args[0].toJS('x', ''); + var exprfn = new Function('x,alasql,params', 'return ' + exprs); + if (exprfn(val, alasql, params)) { + return {status: 1, values: [val]}; + } else { + return {status: -1, values: []}; + } + }, + + NAME(val, args) { + if (val.name === args[0]) { + return {status: 1, values: [val]}; + } else { + return {status: -1, values: []}; + } + }, + + CLASS(val, args) { + + // Please avoid `===` here + if (val.$class == args) { + // jshint ignore:line + return {status: 1, values: [val]}; + } else { + return {status: -1, values: []}; + } + }, + + // Transform expression + VERTEX(val) { + if (val.$node === 'VERTEX') { + return {status: 1, values: [val]}; + } else { + return {status: -1, values: []}; + } + }, + + // Transform expression + INSTANCEOF(val, args) { + if (val instanceof alasql.fn[args[0]]) { + return {status: 1, values: [val]}; + } else { + return {status: -1, values: []}; + } + }, + + // Transform expression + EDGE(val) { + if (val.$node === 'EDGE') { + return {status: 1, values: [val]}; + } else { + return {status: -1, values: []}; + } + }, + + // Transform expression + EX(val, args, stope, params) { + var exprs = args[0].toJS('x', ''); + var exprfn = new Function('x,alasql,params', 'return ' + exprs); + return {status: 1, values: [exprfn(val, alasql, params)]}; + }, + + // Transform expression + RETURN(val, args, stope, params) { + var res = {}; + if (args && args.length > 0) { + args.forEach(function (arg) { + var exprs = arg.toJS('x', ''); + var exprfn = new Function('x,alasql,params', 'return ' + exprs); + if (typeof arg.as === 'undefined') { + arg.as = arg.toString(); + } + res[arg.as] = exprfn(val, alasql, params); + }); + } + return {status: 1, values: [res]}; + }, + + // Transform expression + REF(val) { + return {status: 1, values: [alasql.databases[alasql.useid].objects[val]]}; + }, + + // Transform expression + OUT(val) { + if (val.$out && val.$out.length > 0) { + var res = val.$out.map(function (v) { + return alasql.databases[alasql.useid].objects[v]; + }); + return {status: 1, values: res}; + } else { + return {status: -1, values: []}; + } + }, + + OUTOUT(val) { + if (val.$out && val.$out.length > 0) { + var res = []; + val.$out.forEach(function (v) { + var av = alasql.databases[alasql.useid].objects[v]; + if (av && av.$out && av.$out.length > 0) { + av.$out.forEach(function (vv) { + res = res.concat(alasql.databases[alasql.useid].objects[vv]); + }); + } + }); + return {status: 1, values: res}; + } else { + return {status: -1, values: []}; + } + }, + + // Transform expression + IN(val) { + if (val.$in && val.$in.length > 0) { + var res = val.$in.map(function (v) { + return alasql.databases[alasql.useid].objects[v]; + }); + return {status: 1, values: res}; + } else { + return {status: -1, values: []}; + } + }, + + ININ(val) { + if (val.$in && val.$in.length > 0) { + var res = []; + val.$in.forEach(function (v) { + var av = alasql.databases[alasql.useid].objects[v]; + if (av && av.$in && av.$in.length > 0) { + av.$in.forEach(function (vv) { + res = res.concat(alasql.databases[alasql.useid].objects[vv]); + }); + } + }); + return {status: 1, values: res}; + } else { + return {status: -1, values: []}; + } + }, + + // Transform expression + AS(val, args) { + alasql.vars[args[0]] = val; + return {status: 1, values: [val]}; + }, + + // Transform expression + AT(val, args) { + var v = alasql.vars[args[0]]; + return {status: 1, values: [v]}; + }, + + // Transform expression + CLONEDEEP(val) { + // TODO something wrong + var z = cloneDeep(val); + return {status: 1, values: [z]}; + }, + + // // Transform expression + // DELETE (val,args) { + // // TODO something wrong + // delete val; + // return {status: 1, values: []}; + // }, + + // Transform expression + SET(val, args, stope, params) { + + var s = args + .map(function (st) { + if (st.method === '@') { + return `alasql.vars[${JSON.stringify(st.variable)}]=` + st.expression.toJS('x', ''); + } else if (st.method === '$') { + return `params[${JSON.stringify(st.variable)}]=` + st.expression.toJS('x', ''); + } else { + return `x[${JSON.stringify(st.column.columnid)}]=` + st.expression.toJS('x', ''); + } + }) + .join(';'); + var setfn = new Function('x,params,alasql', s); + + setfn(val, params, alasql); + + return {status: 1, values: [val]}; + }, + + ROW(val, args, stope, params) { + var s = 'var y;return ['; + s += args.map(arg => arg.toJS('x', '')).join(','); + s += ']'; + var setfn = new Function('x,params,alasql', s); + var rv = setfn(val, params, alasql); + + return {status: 1, values: [rv]}; + }, + + D3(val) { + if (val.$node !== 'VERTEX' && val.$node === 'EDGE') { + val.source = val.$in[0]; + val.target = val.$out[0]; + } + + return {status: 1, values: [val]}; + }, + + ORDERBY(val, args /*, stope */) { + var res = val.sort(compileSearchOrder(args)); + return {status: 1, values: res}; + }, + }; + + var compileSearchOrder = function (order) { + if (order) { + if (typeof order?.[0]?.expression === 'function') { + var func = order[0].expression; + return function (a, b) { + var ra = func(a), + rb = func(b); + if (ra > rb) { + return 1; + } + if (ra === rb) { + return 0; + } + return -1; + }; + } + + var s = ''; + var sk = ''; + order.forEach(function (ord) { + + // Date conversion + var dg = ''; + + if (ord.expression instanceof yy.NumValue) { + ord.expression = self.columns[ord.expression.value - 1]; + } + + if (ord.expression instanceof yy.Column) { + var columnid = ord.expression.columnid; + + if (alasql.options.valueof) { + dg = '.valueOf()'; // TODO Check + } + // COLLATE NOCASE + if (ord.nocase) { + dg += '.toUpperCase()'; + } + + if (columnid === '_') { + s += 'if(a' + dg + (ord.direction === 'ASC' ? '>' : '<') + 'b' + dg + ')return 1;'; + s += 'if(a' + dg + '==b' + dg + '){'; + } else { + s += `if ( + (a[${JSON.stringify(columnid)}]||'')${dg} + ${ord.direction === 'ASC' ? '>' : '<'} + (b[${JSON.stringify(columnid)}]||'')${dg} + ) return 1; + + if( + (a[${JSON.stringify(columnid)}]||'')${dg} + == + (b[${JSON.stringify(columnid)}]||'')${dg} + ){ + `; + } + } else { + dg = '.valueOf()'; + // COLLATE NOCASE + if (ord.nocase) { + dg += '.toUpperCase()'; + } + s += + 'if((' + + ord.toJS('a', '') + + "||'')" + + dg + + (ord.direction === 'ASC' ? '>(' : '<(') + + ord.toJS('b', '') + + "||'')" + + dg + + ')return 1;'; + s += + 'if((' + + ord.toJS('a', '') + + "||'')" + + dg + + '==(' + + ord.toJS('b', '') + + "||'')" + + dg + + '){'; + } + + // TODO Add date comparision + // s += 'if(a[\''+columnid+"']"+dg+(ord.direction == 'ASC'?'>':'<')+'b[\''+columnid+"']"+dg+')return 1;'; + // s += 'if(a[\''+columnid+"']"+dg+'==b[\''+columnid+"']"+dg+'){'; + // } + sk += '}'; + }); + s += 'return 0;'; + s += sk + 'return -1'; + + return new Function('a,b', s); + } + }; + // Main query procedure + function queryfn(query, oldscope, cb, A, B) { + query.sources.length; + query.sourceslen = query.sources.length; + var slen = query.sourceslen; + query.query = query; // TODO Remove to prevent memory leaks + query.A = A; + query.B = B; + query.cb = cb; + query.oldscope = oldscope; + + // Run all subqueries before main statement + if (query.queriesfn) { + query.sourceslen += query.queriesfn.length; + slen += query.queriesfn.length; + + query.queriesdata = []; + + query.queriesfn.forEach(function (q, idx) { + // if(query.explain) ms = Date.now(); + + // var res = flatArray(q(query.params,null,queryfn2,(-idx-1),query)); + + // var res = flatArray(queryfn(q.query,null,queryfn2,(-idx-1),query)); + + q.query.params = query.params; + // query.queriesdata[idx] = + + // if(false) { + // queryfn(q.query,query.oldscope,queryfn2,(-idx-1),query); + // } else { + queryfn2([], -idx - 1, query); + // } + + // query.explaination.push({explid: query.explid++, description:'Query '+idx,ms:Date.now()-ms}); + // query.queriesdata[idx] = res; + // return res; + }); + + } + + var scope; + if (!oldscope) scope = {}; + else scope = cloneDeep(oldscope); + query.scope = scope; + + // First - refresh data sources + + let result; + query.sources.forEach(function (source, idx) { + // source.data = query.database.tables[source.tableid].data; + + source.query = query; + var rs = source.datafn(query, query.params, queryfn2, idx, alasql); + + if (typeof rs !== 'undefined') { + // TODO - this is a hack: check if result is array - check all cases and + // make it more logical + if ((query.intofn || query.intoallfn) && Array.isArray(rs)) rs = rs.length; + result = rs; + } + // + // Ugly hack to use in query.wherefn and source.srcwherefns functions + // constructions like this.queriesdata['test']. + // I can elimite it with source.srcwherefn.bind(this)() + // but it may be slow. + // + source.queriesdata = query.queriesdata; + }); + if (query.sources.length == 0 || 0 === slen) { + try { + result = queryfn3(query); + } catch (e) { + if (cb) return cb(null, e); + else throw e; + } + } + + return result; + } + + function queryfn2(data, idx, query) { + + //console.trace(); + + if (idx >= 0) { + var source = query.sources[idx]; + source.data = data; + if (typeof source.data == 'function') { + source.getfn = source.data; + source.dontcache = source.getfn.dontcache; + + // var prevsource = query.sources[h-1]; + if (source.joinmode == 'OUTER' || source.joinmode == 'RIGHT' || source.joinmode == 'ANTI') { + source.dontcache = false; + } + source.data = {}; + } + } else { + // subqueries + + query.queriesdata[-idx - 1] = flatArray(data); + + } + + query.sourceslen--; + if (query.sourceslen > 0) return; + + return queryfn3(query); + } + + function queryfn3(query) { + var scope = query.scope, + jlen; + + // Preindexation of data sources + // if(!oldscope) { + preIndex(query); + // } + + // query.sources.forEach(function(source) { + + // }); + + // Prepare variables + query.data = []; + query.xgroups = {}; + query.groups = []; + + // Level of Joins + var h = 0; + + // Start walking over data + + doJoin(query, scope, h); + + // If grouping, then filter groups with HAVING function + + if (query.groupfn) { + query.data = []; + if (query.groups.length === 0 && query.allgroups.length === 0) { + var g = {}; + if (query.selectGroup.length > 0) { + + query.selectGroup.forEach(function (sg) { + if ( + sg.aggregatorid == 'COUNT' || + sg.aggregatorid == 'SUM' || + sg.aggregatorid == 'TOTAL' + ) { + g[sg.nick] = 0; + } else { + g[sg.nick] = undefined; + } + }); + } + query.groups = [g]; + + } + + // ****** + + if (query.aggrKeys.length > 0) { + var gfns = ''; + query.aggrKeys.forEach(function (col) { + gfns += `g[${JSON.stringify(col.nick)}] = alasql.aggr[${JSON.stringify( + col.funcid + )}](undefined,g[${JSON.stringify(col.nick)}],3);`; + + // gfns += 'return g[\''+col.nick+'\];'; + }); + + var gfn = new Function('g,params,alasql', 'var y;' + gfns); + } + + // ******* + + // debugger; + // if(false && (query.groups.length == 1) && (Object.keys(query.groups[0]).length == 0)) { + + // } else { + for (var i = 0, ilen = query.groups.length; i < ilen; i++) { + var g = query.groups[i]; + + if (gfn) gfn(g, query.params, alasql); + + if (!query.havingfn || query.havingfn(g, query.params, alasql)) { + + var d = query.selectgfn(g, query.params, alasql); + + for (const key in query.groupColumns) { + // ony remove columns where the alias is also not a column in the result + if (query.groupColumns[key] !== key && d[query.groupColumns[key]] && !query.groupColumns[query.groupColumns[key]]){ + delete d[query.groupColumns[key]]; + } + } + query.data.push(d); + } + } + // } + + // query.groups = query.groups.filter(); + } + // Remove distinct values + doDistinct(query); + + // UNION / UNION ALL + if (query.unionallfn) { + // TODO Simplify this part of program + var ud, nd; + if (query.corresponding) { + if (!query.unionallfn.query.modifier) query.unionallfn.query.modifier = undefined; + ud = query.unionallfn(query.params); + } else { + if (!query.unionallfn.query.modifier) query.unionallfn.query.modifier = 'RECORDSET'; + nd = query.unionallfn(query.params); + ud = []; + ilen = nd.data.length; + for (var i = 0; i < ilen; i++) { + var r = {}; + for (var j = Math.min(query.columns.length, nd.columns.length) - 1; 0 <= j; j--) { + r[query.columns[j].columnid] = nd.data[i][nd.columns[j].columnid]; + } + ud.push(r); + } + } + query.data = query.data.concat(ud); + } else if (query.unionfn) { + if (query.corresponding) { + if (!query.unionfn.query.modifier) query.unionfn.query.modifier = 'ARRAY'; + ud = query.unionfn(query.params); + } else { + if (!query.unionfn.query.modifier) query.unionfn.query.modifier = 'RECORDSET'; + nd = query.unionfn(query.params); + ud = []; + ilen = nd.data.length; + for (var i = 0; i < ilen; i++) { + r = {}; + if (query.columns.length) { + jlen = Math.min(query.columns.length, nd.columns.length); + for (var j = 0; j < jlen; j++) { + r[query.columns[j].columnid] = nd.data[i][nd.columns[j].columnid]; + } + } else { + jlen = nd.columns.length; + for (var j = 0; j < jlen; j++) { + r[nd.columns[j].columnid] = nd.data[i][nd.columns[j].columnid]; + } + } + ud.push(r); + } + } + + query.data = arrayUnionDeep(query.data, ud); + } else if (query.exceptfn) { + if (query.corresponding) { + if (!query.exceptfn.query.modifier) query.exceptfn.query.modifier = 'ARRAY'; + var ud = query.exceptfn(query.params); + } else { + if (!query.exceptfn.query.modifier) query.exceptfn.query.modifier = 'RECORDSET'; + var nd = query.exceptfn(query.params); + var ud = []; + for (var i = 0, ilen = nd.data.length; i < ilen; i++) { + var r = {}; + for (var j = Math.min(query.columns.length, nd.columns.length) - 1; 0 <= j; j--) { + r[query.columns[j].columnid] = nd.data[i][nd.columns[j].columnid]; + } + ud.push(r); + } + } + + query.data = arrayExceptDeep(query.data, ud); + } else if (query.intersectfn) { + if (query.corresponding) { + if (!query.intersectfn.query.modifier) query.intersectfn.query.modifier = undefined; + ud = query.intersectfn(query.params); + } else { + if (!query.intersectfn.query.modifier) query.intersectfn.query.modifier = 'RECORDSET'; + nd = query.intersectfn(query.params); + ud = []; + ilen = nd.data.length; + for (i = 0; i < ilen; i++) { + r = {}; + jlen = Math.min(query.columns.length, nd.columns.length); + for (j = 0; j < jlen; j++) { + r[query.columns[j].columnid] = nd.data[i][nd.columns[j].columnid]; + } + ud.push(r); + } + } + + query.data = arrayIntersectDeep(query.data, ud); + } + + // Ordering + if (query.orderfn) { + if (query.explain) var ms = Date.now(); + query.data = query.data.sort(query.orderfn); + if (query.explain) { + query.explaination.push({ + explid: query.explid++, + description: 'QUERY BY', + ms: Date.now() - ms, + }); + } + } + + // Reduce to limit and offset + doLimit(query); + + // Remove Angular.js artifacts and other unnecessary columns + // Issue #25 + + // TODO: Check what artefacts rest from Angular.js + if (typeof angular != 'undefined') { + query.removeKeys.push('$$hashKey'); + } + + if (query.removeKeys.length > 0) { + var removeKeys = query.removeKeys; + + // Remove from data + jlen = removeKeys.length; + if (jlen > 0) { + ilen = query.data.length; + for (i = 0; i < ilen; i++) { + for (j = 0; j < jlen; j++) { + delete query.data[i][removeKeys[j]]; + } + } + } + + // Remove from columns list + if (query.columns.length > 0) { + query.columns = query.columns.filter(function (column) { + var found = false; + removeKeys.forEach(function (key) { + if (column.columnid == key) found = true; + }); + return !found; + }); + } + } + + if (typeof query.removeLikeKeys != 'undefined' && query.removeLikeKeys.length > 0) { + var removeLikeKeys = query.removeLikeKeys; + + // Remove unused columns + // SELECT * REMOVE COLUMNS LIKE "%b" + for (var i = 0, ilen = query.data.length; i < ilen; i++) { + r = query.data[i]; + for (var k in r) { + for (j = 0; j < query.removeLikeKeys.length; j++) { + if (alasql.utils.like(query.removeLikeKeys[j], k)) { + // if(k.match(query.removeLikeKeys[j])) { + delete r[k]; + } + } + } + } + + if (query.columns.length > 0) { + query.columns = query.columns.filter(function (column) { + var found = false; + removeLikeKeys.forEach(function (key) { + // if(column.columnid.match(key)) found = true; + if (alasql.utils.like(key, column.columnid)) { + found = true; + } + }); + return !found; + }); + } + } + + if (query.pivotfn) query.pivotfn(); + if (query.unpivotfn) query.unpivotfn(); + + if (query.intoallfn) { + + // var res = query.intoallfn(query.columns,query.cb,query.A, query.B, alasql); + var res = query.intoallfn(query.columns, query.cb, query.params, query.alasql); + + // if(query.cb) res = query.cb(res,query.A, query.B); + + // debugger; + return res; + } else if (query.intofn) { + ilen = query.data.length; + for (i = 0; i < ilen; i++) { + query.intofn(query.data[i], i, query.params, query.alasql); + } + + if (query.cb) query.cb(query.data.length, query.A, query.B); + return query.data.length; + } else { + + res = query.data; + if (query.cb) res = query.cb(query.data, query.A, query.B); + return res; + } + } + + // Limiting + function doLimit(query) { + + if (query.limit) { + var offset = 0; + if (query.offset) { + offset = query.offset | 0 || 0; + offset = offset < 0 ? 0 : offset; + } + var limit; + if (query.percent) { + limit = (((query.data.length * query.limit) / 100) | 0) + offset; + } else { + limit = (query.limit | 0) + offset; + } + query.data = query.data.slice(offset, limit); + } + } + + // Distinct + function doDistinct(query) { + if (query.distinct) { + var uniq = {}; + // TODO: Speedup, because Object.keys is slow** + // TODO: Problem with DISTINCT on objects + var keys = Object.keys(query.data[0] || []); + for (var i = 0, ilen = query.data.length; i < ilen; i++) { + var uix = keys + .map(function (k) { + return query.data[i][k]; + }) + .join('`'); + uniq[uix] = query.data[i]; + } + query.data = []; + for (var key in uniq) { + query.data.push(uniq[key]); + } + } + } + + // Optimization: preliminary indexation of joins + var preIndex = function (query) { + + // Loop over all sources + // Todo: make this loop smaller and more graspable + for (var k = 0, klen = query.sources.length; k < klen; k++) { + var source = query.sources[k]; + delete source.ix; + // If there is indexation rule + + if (k > 0 && source.optimization == 'ix' && source.onleftfn && source.onrightfn) { + // If there is no table.indices - create it + if (source.databaseid && alasql.databases[source.databaseid].tables[source.tableid]) { + if (!alasql.databases[source.databaseid].tables[source.tableid].indices) + query.database.tables[source.tableid].indices = {}; + // Check if index already exists + var ixx = + alasql.databases[source.databaseid].tables[source.tableid].indices[ + hash(source.onrightfns + '`' + source.srcwherefns) + ]; + if (!alasql.databases[source.databaseid].tables[source.tableid].dirty && ixx) { + source.ix = ixx; + } + } + + if (!source.ix) { + source.ix = {}; + // Walking over source data + var scope = {}; + var i = 0; + var ilen = source.data.length; + var dataw; + // while(source.getfn i= query.sources.length) { + // Todo: check if this runs once too many + + // Then apply where and select + + if (query.wherefn(scope, query.params, alasql)) { + + // var res = query.selectfn(scope, query.params, alasql); + + // If there is a GROUP BY then pipe to grouping function + if (query.groupfn) { + query.groupfn(scope, query.params, alasql); + } else { + // query.qwerty = 999; + + query.data.push(query.selectfn(scope, query.params, alasql)); + } + } + } else if (query.sources[h].applyselect) { + + var source = query.sources[h]; + source.applyselect( + query.params, + function (data) { + if (data.length > 0) { + + for (var i = 0; i < data.length; i++) { + scope[source.alias] = data[i]; + doJoin(query, scope, h + 1); + } + } else { + if (source.applymode == 'OUTER') { + scope[source.alias] = {}; + doJoin(query, scope, h + 1); + } + } + }, + scope + ); + + } else { + // STEP 1 + + var source = query.sources[h]; + var nextsource = query.sources[h + 1]; + + // if(source.joinmode == "LEFT" || source.joinmode == "INNER" || source.joinmode == "RIGHT" + // || source.joinmode == "OUTER" || source.joinmode == "SEMI") { + // Todo: check if this is smart + { + //source.joinmode != "ANTI") { + + var tableid = source.alias || source.tableid; + var pass = false; // For LEFT JOIN + var data = source.data; + var opt = false; + + // Reduce data for looping if there is optimization hint + if (!source.getfn || (source.getfn && !source.dontcache)) { + if ( + source.joinmode != 'RIGHT' && + source.joinmode != 'OUTER' && + source.joinmode != 'ANTI' && + source.optimization == 'ix' + ) { + data = source.ix[source.onleftfn(scope, query.params, alasql)] || []; + opt = true; + + } + } + + // Main cycle + var i = 0; + if (typeof data == 'undefined') { + throw new Error('Data source number ' + h + ' in undefined'); + } + var ilen = data.length; + var dataw; + + while ((dataw = data[i]) || (!opt && source.getfn && (dataw = source.getfn(i))) || i < ilen) { + if (!opt && source.getfn && !source.dontcache) data[i] = dataw; + + scope[tableid] = dataw; + + // Reduce with ON and USING clause + var usingPassed = !source.onleftfn; + if (!usingPassed) { + var left = source.onleftfn(scope, query.params, alasql); + var right = source.onrightfn(scope, query.params, alasql); + if (left instanceof String || left instanceof Number) left = left.valueOf(); + if (right instanceof String || right instanceof Number) right = left.valueOf(); + usingPassed = left == right; + } + + if (usingPassed) { + // For all non-standard JOINs like a-b=0 + if (source.onmiddlefn(scope, query.params, alasql)) { + // Recursively call new join + // if(source.joinmode == "LEFT" || source.joinmode == "INNER" || source.joinmode == "OUTER" || source.joinmode == "RIGHT" ) { + if (source.joinmode != 'SEMI' && source.joinmode != 'ANTI') { + + doJoin(query, scope, h + 1); + } + + // if(source.data[i].f = 200) debugger; + + // if(source.joinmode == "RIGHT" || source.joinmode == "ANTI" || source.joinmode == "OUTER") { + if (source.joinmode != 'LEFT' && source.joinmode != 'INNER') { + dataw._rightjoin = true; + } + + // for LEFT JOIN + pass = true; + } + } + i++; + } + + // Additional join for LEFT JOINS + if ( + (source.joinmode == 'LEFT' || source.joinmode == 'OUTER' || source.joinmode == 'SEMI') && + !pass + ) { + // Clear the scope after the loop + scope[tableid] = {}; + doJoin(query, scope, h + 1); + } + } + + // When there is no records + // if(data.length == 0 && query.groupfn) { + // scope[tableid] = undefined; + // doJoin(query,scope,h+1); + // } + + // STEP 2 + + if (h == 0) { + for (var nh = h + 1; nh < query.sources.length; nh++) { + if ( + nextsource.joinmode == 'OUTER' || + nextsource.joinmode == 'RIGHT' || + nextsource.joinmode == 'ANTI' + ) { + scope[source.alias] = {}; + + var j = 0; + var jlen = nextsource.data.length; + var dataw; + + while ( + (dataw = nextsource.data[j]) || + (nextsource.getfn && (dataw = nextsource.getfn(j))) || + j < jlen + ) { + if (nextsource.getfn && !nextsource.dontcache) { + nextsource.data[j] = dataw; + } + + if (dataw._rightjoin) { + delete dataw._rightjoin; + } else { + // delete dataw._rightjoin; + + scope[nextsource.alias] = dataw; + doJoin(query, scope, nh + 1); + } + j++; + } + // debugger; + } + source = query.sources[nh]; + nextsource = query.sources[nh + 1]; + } + } + + scope[tableid] = undefined; + + } + } + /* + // + // Select run-time part for Alasql.js + // Date: 03.11.2014 + // (c) 2014, Andrey Gershun + // + */ + + // + // Main part of SELECT procedure + // + + /* global yy */ + + yy.Select = class Select { + constructor(params) { + Object.assign(this, params); + } + + toString() { + var s; + s = ''; + if (this.explain) { + s += 'EXPLAIN '; + } + s += 'SELECT '; + if (this.modifier) { + s += this.modifier + ' '; + } + if (this.distinct) { + s += 'DISTINCT '; + } + if (this.top) { + s += 'TOP ' + this.top.value + ' '; + if (this.percent) { + s += 'PERCENT '; + } + } + s += this.columns + .map(function (col) { + var s; + s = col.toString(); + if (typeof col.as !== 'undefined') { + s += ' AS ' + col.as; + } + return s; + }) + .join(', '); + if (this.from) { + s += + ' FROM ' + + this.from + .map(function (f) { + var ss; + ss = f.toString(); + if (f.as) { + ss += ' AS ' + f.as; + } + return ss; + }) + .join(','); + } + if (this.joins) { + s += this.joins + .map(function (jn) { + var ss; + ss = ' '; + if (jn.joinmode) { + ss += jn.joinmode + ' '; + } + if (jn.table) { + ss += 'JOIN ' + jn.table.toString(); + } else if (jn.select) { + ss += 'JOIN (' + jn.select.toString() + ')'; + } else if (jn instanceof alasql.yy.Apply) { + ss += jn.toString(); + } else { + throw new Error('Wrong type in JOIN mode'); + } + if (jn.as) { + ss += ' AS ' + jn.as; + } + if (jn.using) { + ss += ' USING ' + jn.using.toString(); + } + if (jn.on) { + ss += ' ON ' + jn.on.toString(); + } + return ss; + }) + .join(''); + } + if (this.where) { + s += ' WHERE ' + this.where.toString(); + } + if (this.group && this.group.length > 0) { + s += + ' GROUP BY ' + + this.group + .map(function (grp) { + return grp.toString(); + }) + .join(', '); + } + if (this.having) { + s += ' HAVING ' + this.having.toString(); + } + if (this.order && this.order.length > 0) { + s += + ' ORDER BY ' + + this.order + .map(function (ord) { + return ord.toString(); + }) + .join(', '); + } + if (this.limit) { + s += ' LIMIT ' + this.limit.value; + } + if (this.offset) { + s += ' OFFSET ' + this.offset.value; + } + if (this.union) { + s += ' UNION ' + (this.corresponding ? 'CORRESPONDING ' : '') + this.union.toString(); + } + if (this.unionall) { + s += ' UNION ALL ' + (this.corresponding ? 'CORRESPONDING ' : '') + this.unionall.toString(); + } + if (this.except) { + s += ' EXCEPT ' + (this.corresponding ? 'CORRESPONDING ' : '') + this.except.toString(); + } + if (this.intersect) { + s += ' INTERSECT ' + (this.corresponding ? 'CORRESPONDING ' : '') + this.intersect.toString(); + } + return s; + } + + /** + Select statement in expression + */ + toJS(context) { + + // if(this.expression.reduced) return 'true'; + // return this.expression.toJS(context, tableid, defcols); + + // var s = 'this.queriesdata['+(this.queriesidx-1)+'][0]'; + var s = + 'alasql.utils.flatArray(this.queriesfn[' + + (this.queriesidx - 1) + + '](this.params,null,' + + context + + '))[0]'; + + return s; + } + + // Compile SELECT statement + compile(databaseid, params) { + var db = alasql.databases[databaseid]; + // Create variable for query + var query = new Query(); + + // Array with columns to be removed + query.removeKeys = []; + query.aggrKeys = []; + + query.explain = this.explain; // Explain + query.explaination = []; + query.explid = 1; + + query.modifier = this.modifier; + + query.database = db; + // 0. Precompile whereexists + this.compileWhereExists(query); + + // 0. Precompile queries for IN, NOT IN, ANY and ALL operators + this.compileQueries(query); + + query.defcols = this.compileDefCols(query, databaseid); + + // 1. Compile FROM clause + query.fromfn = this.compileFrom(query); + + // 2. Compile JOIN clauses + if (this.joins) { + this.compileJoins(query); + } + + // todo?: 3. Compile SELECT clause + // For ROWNUM() + query.rownums = []; + + this.compileSelectGroup0(query); + + if (this.group || query.selectGroup.length > 0) { + query.selectgfns = this.compileSelectGroup1(query); + } else { + query.selectfns = this.compileSelect1(query, params); + } + + // Remove columns clause + this.compileRemoveColumns(query); + + // 5. Optimize WHERE and JOINS + if (this.where) { + this.compileWhereJoins(query); + } + + // 4. Compile WHERE clause + query.wherefn = this.compileWhere(query); + + // 6. Compile GROUP BY + if (this.group || query.selectGroup.length > 0) { + query.groupfn = this.compileGroup(query); + } + + // 6. Compile HAVING + if (this.having) { + query.havingfn = this.compileHaving(query); + } + + // 8. Compile ORDER BY clause + if (this.order) { + query.orderfn = this.compileOrder(query, params); + } + + if (this.group || query.selectGroup.length > 0) { + query.selectgfn = this.compileSelectGroup2(query); + } else { + query.selectfn = this.compileSelect2(query, params); + } + + // 7. Compile DISTINCT, LIMIT and OFFSET + query.distinct = this.distinct; + + // 9. Compile PIVOT clause + if (this.pivot) query.pivotfn = this.compilePivot(query); + if (this.unpivot) query.pivotfn = this.compileUnpivot(query); + + // 10. Compile TOP/LIMIT/OFFSET/FETCH clause + if (this.top) { + query.limit = this.top.value; + } else if (this.limit) { + query.limit = this.limit.value; + if (this.offset) { + query.offset = this.offset.value; + } + } + + query.percent = this.percent; + + // 9. Compile ordering function for UNION and UNIONALL + query.corresponding = this.corresponding; // If CORRESPONDING flag exists + if (this.union) { + query.unionfn = this.union.compile(databaseid); + if (this.union.order) { + query.orderfn = this.union.compileOrder(query, params); + } else { + query.orderfn = null; + } + } else if (this.unionall) { + query.unionallfn = this.unionall.compile(databaseid); + if (this.unionall.order) { + query.orderfn = this.unionall.compileOrder(query, params); + } else { + query.orderfn = null; + } + } else if (this.except) { + query.exceptfn = this.except.compile(databaseid); + if (this.except.order) { + query.orderfn = this.except.compileOrder(query, params); + } else { + query.orderfn = null; + } + } else if (this.intersect) { + query.intersectfn = this.intersect.compile(databaseid); + if (this.intersect.order) { + query.intersectfn = this.intersect.compileOrder(query, params); + } else { + query.orderfn = null; + } + } + + // SELECT INTO + if (this.into) { + if (this.into instanceof yy.Table) { + // + // Save into the table in database + // + if ( + alasql.options.autocommit && + alasql.databases[this.into.databaseid || databaseid].engineid + ) { + // For external database when AUTOCOMMIT is ONs + query.intoallfns = `return alasql + .engines[${JSON.stringify(alasql.databases[this.into.databaseid || databaseid].engineid)}] + .intoTable( + ${JSON.stringify(this.into.databaseid || databaseid)}, + ${JSON.stringify(this.into.tableid)}, + this.data, + columns, + cb + );`; + } else { + // Into AlaSQL tables + query.intofns = `alasql + .databases[${JSON.stringify(this.into.databaseid || databaseid)}] + .tables[${JSON.stringify(this.into.tableid)}] + .data.push(r); + `; + } + } else if (this.into instanceof yy.VarValue) { + // + // Save into local variable + // SELECT * INTO @VAR1 FROM ? + // + query.intoallfns = ` + alasql.vars[${JSON.stringify(this.into.variable)}]=this.data; + res=this.data.length; + if(cb) res = cb(res); + return res; + `; + } else if (this.into instanceof yy.FuncValue) { + // + // If this is INTO() function, then call it + // with one or two parameters + // + var qs = 'return alasql.into[' + JSON.stringify(this.into.funcid.toUpperCase()) + ']('; + if (this.into.args && this.into.args.length > 0) { + qs += this.into.args[0].toJS() + ','; + if (this.into.args.length > 1) { + qs += this.into.args[1].toJS() + ','; + } else { + qs += 'undefined,'; + } + } else { + qs += 'undefined, undefined,'; + } + query.intoallfns = qs + 'this.data,columns,cb)'; + + } else if (this.into instanceof yy.ParamValue) { + // + // Save data into parameters array + // like alasql('SELECT * INTO ? FROM ?',[outdata,srcdata]); + // + query.intofns = `params[${JSON.stringify(this.into.param)}].push(r)`; + } + + if (query.intofns) { + // Create intofn function + + query.intofn = new Function('r,i,params,alasql', 'var y;' + query.intofns); + } else if (query.intoallfns) { + // Create intoallfn function + + query.intoallfn = new Function('columns,cb,params,alasql', 'var y;' + query.intoallfns); + } + } + + // Now, compile all togeather into one function with query object in scope + var statement = function (params, cb, oldscope) { + query.params = params; + // Note the callback function has the data and error reversed due to existing code in promiseExec which has the + // err and data swapped. This trickles down into alasql.exec and further. Rather than risk breaking the whole thing, + // the (data, err) standard is maintained here. + var res1 = queryfn(query, oldscope, function (res, err) { + if (err) { + return cb(null, err); + } + if (query.rownums.length > 0) { + for (var i = 0, ilen = res.length; i < ilen; i++) { + for (var j = 0, jlen = query.rownums.length; j < jlen; j++) { + res[i][query.rownums[j]] = i + 1; + } + } + } + + var res2 = modify(query, res); + + if (cb) { + cb(res2); + } + + return res2; + }); + + // if(typeof res1 != 'undefined') res1 = modify(query,res1); + return res1; + }; + + // statement.dbversion = ; + + statement.query = query; + return statement; + } + + execute(databaseid, params, cb) { + return this.compile(databaseid)(params, cb); + // throw new Error('Insert statement is should be compiled') + } + + compileWhereExists(query) { + if (!this.exists) return; + query.existsfn = this.exists.map(function (ex) { + var nq = ex.compile(query.database.databaseid); + + // if(!nq.query.modifier) nq.query.modifier = 'RECORDSET'; + nq.query.modifier = 'RECORDSET'; + return nq; + }); + } + + compileQueries(query) { + if (!this.queries) return; + query.queriesfn = this.queries.map(function (q) { + var nq = q.compile(query.database.databaseid); + + // if(!nq.query) nq.query = {}; + nq.query.modifier = 'RECORDSET'; + // if(!nq.query.modifier) nq.query.modifier = 'RECORDSET'; + return nq; + }); + } + + // exec(databaseid) { + // throw new Error('Select statement should be precompiled'); + // } + }; + + /** + Modify res according modifier + @function + @param {object} query Query object + @param res {object|number|string|boolean} res Data to be converted + */ + function modify(query, res) { + // jshint ignore:line + + /* If source is a primitive value then return it */ + if ( + typeof res === 'undefined' || + typeof res === 'number' || + typeof res === 'string' || + typeof res === 'boolean' + ) { + return res; + } + + var modifier = query.modifier || alasql.options.modifier; + var columns = query.columns; + if (typeof columns === 'undefined' || columns.length == 0) { + // Try to create columns + if (res.length > 0) { + var allcol = {}; + for (var i = Math.min(res.length, alasql.options.columnlookup || 10) - 1; 0 <= i; i--) { + for (var key in res[i]) { + allcol[key] = true; + } + } + + columns = Object.keys(allcol).map(function (columnid) { + return {columnid: columnid}; + }); + } else { + // Cannot recognize columns + columns = []; + } + } + + if (modifier === 'VALUE') { + + if (res.length > 0) { + var key; + if (columns && columns.length > 0) { + key = columns[0].columnid; + } else { + key = Object.keys(res[0])[0]; + } + res = res[0][key]; + } else { + res = undefined; + } + } else if (modifier === 'ROW') { + if (res.length > 0) { + var key; + var a = []; + for (var key in res[0]) { + a.push(res[0][key]); + } + res = a; + } else { + res = undefined; + } + } else if (modifier === 'COLUMN') { + var ar = []; + if (res.length > 0) { + var key; + if (columns && columns.length > 0) { + key = columns[0].columnid; + } else { + key = Object.keys(res[0])[0]; + } + + for (var i = 0, ilen = res.length; i < ilen; i++) { + ar.push(res[i][key]); + } + } + res = ar; + } else if (modifier === 'MATRIX') { + // Returns square matrix of rows + var ar = []; + for (var i = 0; i < res.length; i++) { + var a = []; + var r = res[i]; + for (var j = 0; j < columns.length; j++) { + a.push(r[columns[j].columnid]); + } + ar.push(a); + } + res = ar; + } else if (modifier === 'INDEX') { + var ar = {}; + var key, val; + if (columns && columns.length > 0) { + key = columns[0].columnid; + val = columns[1].columnid; + } else { + var okeys = Object.keys(res[0]); + key = okeys[0]; + val = okeys[1]; + } + for (var i = 0, ilen = res.length; i < ilen; i++) { + ar[res[i][key]] = res[i][val]; + } + res = ar; + // res = arrayOfArrays(res); + } else if (modifier === 'RECORDSET') { + res = new alasql.Recordset({columns: columns, data: res}); + // res = arrayOfArrays(res); + } else if (modifier === 'TEXTSTRING') { + var key; + if (columns && columns.length > 0) { + key = columns[0].columnid; + } else { + key = Object.keys(res[0])[0]; + } + + for (var i = 0, ilen = res.length; i < ilen; i++) { + res[i] = res[i][key]; + } + res = res.join('\n'); + // res = arrayOfArrays(res); + } + return res; + } + /* + // + // EXISTS and other subqueries functions functions for Alasql.js + // Date: 03.11.2014 + // (c) 2014, Andrey Gershun + // + */ + + yy.ExistsValue = class ExistsValue { + constructor(params) { + Object.assign(this, params); + } + + toString() { + return 'EXISTS(' + this.value.toString() + ')'; + } + + toType() { + return 'boolean'; + } + + toJS(context, tableid, defcols) { + + return 'this.existsfn[' + this.existsidx + '](params,null,' + context + ').data.length'; + } + }; + + // + // Prepare subqueries and exists + // + alasql.precompile = function (statement, databaseid, params) { + + if (!statement) return; + statement.params = params; + if (statement.queries) { + + statement.queriesfn = statement.queries.map(function (q) { + var nq = q.compile(databaseid || statement.database.databaseid); + + // nq.query.modifier = undefined; + // if(!nq.query.modifier) nq.query.modifier = 'RECORDSET'; + nq.query.modifier = 'RECORDSET'; + return nq; + }); + } + if (statement.exists) { + + statement.existsfn = statement.exists.map(function (ex) { + var nq = ex.compile(databaseid || statement.database.databaseid); + + // if(!nq.query.modifier) nq.query.modifier = 'RECORDSET'; + // if(!nq.query.modifier) nq.query.modifier = 'ARRAY'; + nq.query.modifier = 'RECORDSET'; + return nq; + }); + } + }; + /* + // + // Select compiler part for Alasql.js + // Date: 03.11.2014 + // (c) 2014, Andrey Gershun + // + */ + + /* global yy, alasql, Mongo, returnTrue */ + + yy.Select.prototype.compileFrom = function (query) { + + var self = this; + query.sources = []; + // var tableid = this.from[0].tableid; + // var as = ''; + // if(self.from[0].as) as = this.from[0].as; + + query.aliases = {}; + if (!self.from) return; + + self.from.forEach(function (tq) { + + var ps = ''; + + var alias = tq.as || tq.tableid; + + if (tq instanceof yy.Table) { + + query.aliases[alias] = { + tableid: tq.tableid, + databaseid: tq.databaseid || query.database.databaseid, + type: 'table', + }; + } else if (tq instanceof yy.Select) { + query.aliases[alias] = {type: 'subquery'}; + } else if (tq instanceof yy.Search) { + query.aliases[alias] = {type: 'subsearch'}; + } else if (tq instanceof yy.ParamValue) { + query.aliases[alias] = {type: 'paramvalue'}; + } else if (tq instanceof yy.FuncValue) { + query.aliases[alias] = {type: 'funcvalue'}; + } else if (tq instanceof yy.VarValue) { + query.aliases[alias] = {type: 'varvalue'}; + } else if (tq instanceof yy.FromData) { + query.aliases[alias] = {type: 'fromdata'}; + } else if (tq instanceof yy.Json) { + query.aliases[alias] = {type: 'json'}; + } else if (tq.inserted) { + query.aliases[alias] = {type: 'inserted'}; + } else { + throw new Error('Wrong table at FROM'); + } + + var source = { + alias: alias, + databaseid: tq.databaseid || query.database.databaseid, + tableid: tq.tableid, + joinmode: 'INNER', + onmiddlefn: returnTrue, + srcwherefns: '', // for optimization + srcwherefn: returnTrue, + // columns: [] + }; + + if (tq instanceof yy.Table) { + // Get columns from table + source.columns = alasql.databases[source.databaseid].tables[source.tableid].columns; + + if ( + alasql.options.autocommit && + alasql.databases[source.databaseid].engineid && + !alasql.databases[source.databaseid].tables[source.tableid].view + ) { + + // TODO -- make view for external engine + source.datafn = function (query, params, cb, idx, alasql) { + return alasql.engines[alasql.databases[source.databaseid].engineid].fromTable( + source.databaseid, + source.tableid, + cb, + idx, + query + ); + }; + } else if (alasql.databases[source.databaseid].tables[source.tableid].view) { + source.datafn = function (query, params, cb, idx, alasql) { + var res = alasql.databases[source.databaseid].tables[source.tableid].select(params); + if (cb) res = cb(res, idx, query); + return res; + }; + } else { + + source.datafn = function (query, params, cb, idx, alasql) { + /* + + */ + var res = alasql.databases[source.databaseid].tables[source.tableid].data; + + if (cb) res = cb(res, idx, query); + + return res; + // return alasql.databases[source.databaseid].tables[source.tableid].data; + }; + } + } else if (tq instanceof yy.Select) { + source.subquery = tq.compile(query.database.databaseid); + if (typeof source.subquery.query.modifier === 'undefined') { + source.subquery.query.modifier = 'RECORDSET'; // Subqueries always return recordsets + } + source.columns = source.subquery.query.columns; + + // tq.columns; + + source.datafn = function (query, params, cb, idx, alasql) { + // return source.subquery(query.params, cb, idx, query); + var res; + source.subquery(query.params, function (data) { + res = data.data; + if (cb) res = cb(res, idx, query); + return res; + // return data.data; + }); + + return res; + }; + } else if (tq instanceof yy.Search) { + source.subsearch = tq; + source.columns = []; + + source.datafn = function (query, params, cb, idx, alasql) { + // return source.subquery(query.params, cb, idx, query); + var res; + source.subsearch.execute(query.database.databaseid, query.params, function (data) { + res = data; + if (cb) res = cb(res, idx, query); + return res; + // return data.data; + }); + + return res; + }; + } else if (tq instanceof yy.ParamValue) { + ps = "var res = alasql.prepareFromData(params['" + tq.param + "']"; + + if (tq.array) ps += ',true'; + ps += ');if(cb)res=cb(res,idx,query);return res'; + source.datafn = new Function('query,params,cb,idx,alasql', ps); + } else if (tq.inserted) { + ps = 'var res = alasql.prepareFromData(alasql.inserted'; + if (tq.array) ps += ',true'; + ps += ');if(cb)res=cb(res,idx,query);return res'; + source.datafn = new Function('query,params,cb,idx,alasql', ps); + } else if (tq instanceof yy.Json) { + ps = 'var res = alasql.prepareFromData(' + tq.toJS(); + + if (tq.array) ps += ',true'; + ps += ');if(cb)res=cb(res,idx,query);return res'; + source.datafn = new Function('query,params,cb,idx,alasql', ps); + } else if (tq instanceof yy.VarValue) { + ps = "var res = alasql.prepareFromData(alasql.vars['" + tq.variable + "']"; + + if (tq.array) ps += ',true'; + ps += ');if(cb)res=cb(res,idx,query);return res'; + source.datafn = new Function('query,params,cb,idx,alasql', ps); + } else if (tq instanceof yy.FuncValue) { + ps = 'var res=alasql.from[' + JSON.stringify(tq.funcid.toUpperCase()) + ']('; + + if (tq.args && tq.args.length > 0) { + if (tq.args[0]) { + ps += tq.args[0].toJS('query.oldscope') + ','; + } else { + ps += 'null,'; + } + if (tq.args[1]) { + ps += tq.args[1].toJS('query.oldscope') + ','; + } else { + ps += 'null,'; + } + } else { + ps += 'null,null,'; + } + ps += 'cb,idx,query'; + ps += ');/*if(cb)res=cb(res,idx,query);*/return res'; + + source.datafn = new Function('query, params, cb, idx, alasql', ps); + } else if (tq instanceof yy.FromData) { + source.datafn = function (query, params, cb, idx, alasql) { + var res = tq.data; + if (cb) res = cb(res, idx, query); + return res; + }; + } else { + throw new Error('Wrong table at FROM'); + } + // source.data = alasql.databases[source.databaseid].tables[source.tableid].data; + query.sources.push(source); + }); + // TODO Add joins + query.defaultTableid = query.sources[0].alias; + + }; + + alasql.prepareFromData = function (data, array) { + + var i, ilen; + var res = data; + if (typeof data === 'string') { + res = data.split(/\r?\n/); + if (array) { + for (i = 0, ilen = res.length; i < ilen; i++) { + res[i] = [res[i]]; + } + } + } else if (array) { + res = []; + for (i = 0, ilen = data.length; i < ilen; i++) { + res.push([data[i]]); + } + + } else if (typeof data === 'object' && !Array.isArray(data)) { + // } else if(typeof data == 'object' && !(typeof data.length == 'undefined')) { + if ( + typeof Mongo !== 'undefined' && + typeof Mongo.Collection !== 'undefined' && + data instanceof Mongo.Collection + ) { + res = data.find().fetch(); + } else { + res = []; + for (var key in data) { + if (data.hasOwnProperty(key)) res.push([key, data[key]]); + } + } + + } + + return res; + }; + /* + // + // Select compiler part for Alasql.js + // Date: 03.11.2014 + // (c) 2014, Andrey Gershun + // + */ + + // SELECT Compile functions + + /* global yy, alasql, returnTrue, arrayIntersect */ + + // Compile JOIN caluese + yy.Select.prototype.compileJoins = function (query) { + + this.joins.forEach(function (jn) { + // Test CROSS-JOIN + var tq, ps, source; + if (jn.joinmode === 'CROSS') { + if (jn.using || jn.on) { + throw new Error('CROSS JOIN cannot have USING or ON clauses'); + } else { + jn.joinmode = 'INNER'; + } + } + + if (jn instanceof yy.Apply) { + + source = { + alias: jn.as, + applymode: jn.applymode, + onmiddlefn: returnTrue, + srcwherefns: '', // for optimization + srcwherefn: returnTrue, + columns: [], // TODO check this + }; + source.applyselect = jn.select.compile(query.database.databaseid); + source.columns = source.applyselect.query.columns; + + source.datafn = function (query, params, cb, idx, alasql) { + var res; + if (cb) res = cb(res, idx, query); + return res; + }; + + query.sources.push(source); + + return; + } + + if (jn.table) { + tq = jn.table; + source = { + alias: jn.as || tq.tableid, + databaseid: tq.databaseid || query.database.databaseid, + tableid: tq.tableid, + joinmode: jn.joinmode, + onmiddlefn: returnTrue, + srcwherefns: '', // for optimization + srcwherefn: returnTrue, + columns: [], + }; + // + + if (!alasql.databases[source.databaseid].tables[source.tableid]) { + throw new Error( + "Table '" + source.tableid + "' is not exists in database '" + source.databaseid + "'" + ); + } + + source.columns = alasql.databases[source.databaseid].tables[source.tableid].columns; + + // source.data = query.database.tables[source.tableid].data; + if (alasql.options.autocommit && alasql.databases[source.databaseid].engineid) { + + source.datafn = function (query, params, cb, idx, alasql) { + + return alasql.engines[alasql.databases[source.databaseid].engineid].fromTable( + source.databaseid, + source.tableid, + cb, + idx, + query + ); + }; + } else if (alasql.databases[source.databaseid].tables[source.tableid].view) { + source.datafn = function (query, params, cb, idx, alasql) { + var res = alasql.databases[source.databaseid].tables[source.tableid].select(params); + if (cb) res = cb(res, idx, query); + return res; + }; + } else { + source.datafn = function (query, params, cb, idx, alasql) { + var res = alasql.databases[source.databaseid].tables[source.tableid].data; + if (cb) res = cb(res, idx, query); + return res; + }; + } + + // var alias = jn.as || tq.tableid; + // if(tq) { + query.aliases[source.alias] = { + tableid: tq.tableid, + databaseid: tq.databaseid || query.database.databaseid, + }; + // } + } else if (jn.select) { + tq = jn.select; + source = { + alias: jn.as, + // databaseid: jn.databaseid || query.database.databaseid, + // tableid: tq.tableid, + joinmode: jn.joinmode, + onmiddlefn: returnTrue, + srcwherefns: '', // for optimization + srcwherefn: returnTrue, + columns: [], + }; + + source.subquery = tq.compile(query.database.databaseid); + if (typeof source.subquery.query.modifier === 'undefined') { + source.subquery.query.modifier = 'RECORDSET'; // Subqueries always return recordsets + } + source.columns = source.subquery.query.columns; + + // if(jn instanceof yy.Apply) { + source.datafn = function (query, params, cb, idx, alasql) { + // return cb(null,idx,alasql); + source.data = source.subquery(query.params, null, cb, idx).data; + // var res = alasql.prepareFromData(params[idx]); + var res = source.data; + // Propogate subquery result + if (cb) res = cb(res, idx, query); + return res; + }; + // } else { + // source.datafn = function(query, params, cb, idx, alasql) { + // return source.subquery(query.params, null, cb, idx); + // } + // } + query.aliases[source.alias] = {type: 'subquery'}; + } else if (jn.param) { + source = { + alias: jn.as, + // databaseid: jn.databaseid || query.database.databaseid, + // tableid: tq.tableid, + joinmode: jn.joinmode, + onmiddlefn: returnTrue, + srcwherefns: '', // for optimization + srcwherefn: returnTrue, + }; + // source.data = ; + var jnparam = jn.param.param; + + ps = "var res=alasql.prepareFromData(params['" + jnparam + "']"; + if (jn.array) ps += ',true'; + ps += ');if(cb)res=cb(res, idx, query);return res'; + + source.datafn = new Function('query,params,cb,idx, alasql', ps); + query.aliases[source.alias] = {type: 'paramvalue'}; + } else if (jn.variable) { + source = { + alias: jn.as, + // databaseid: jn.databaseid || query.database.databaseid, + // tableid: tq.tableid, + joinmode: jn.joinmode, + onmiddlefn: returnTrue, + srcwherefns: '', // for optimization + srcwherefn: returnTrue, + }; + // source.data = ; + // var jnparam = jn.param.param; + + ps = "var res=alasql.prepareFromData(alasql.vars['" + jn.variable + "']"; + if (jn.array) ps += ',true'; + ps += ');if(cb)res=cb(res, idx, query);return res'; + + source.datafn = new Function('query,params,cb,idx, alasql', ps); + query.aliases[source.alias] = {type: 'varvalue'}; + } else if (jn.func) { + source = { + alias: jn.as, + // databaseid: jn.databaseid || query.database.databaseid, + // tableid: tq.tableid, + joinmode: jn.joinmode, + onmiddlefn: returnTrue, + srcwherefns: '', // for optimization + srcwherefn: returnTrue, + }; + // source.data = ; + + var s = 'var res=alasql.from[' + JSON.stringify(jn.func.funcid.toUpperCase()) + ']('; + + var args = jn.func.args; + if (args && args.length > 0) { + if (args[0]) { + s += args[0].toJS('query.oldscope') + ','; + } else { + s += 'null,'; + } + if (args[1]) { + s += args[1].toJS('query.oldscope') + ','; + } else { + s += 'null,'; + } + } else { + s += 'null,null,'; + } + s += 'cb,idx,query'; + s += ');/*if(cb)res=cb(res,idx,query);*/return res'; + + source.datafn = new Function('query, params, cb, idx, alasql', s); + + query.aliases[source.alias] = {type: 'funcvalue'}; + } + + var alias = source.alias; + + // Test NATURAL-JOIN + if (jn.natural) { + if (jn.using || jn.on) { + throw new Error('NATURAL JOIN cannot have USING or ON clauses'); + } else { + // source.joinmode == "INNER"; + if (query.sources.length > 0) { + var prevSource = query.sources[query.sources.length - 1]; + var prevTable = alasql.databases[prevSource.databaseid].tables[prevSource.tableid]; + var table = alasql.databases[source.databaseid].tables[source.tableid]; + + if (prevTable && table) { + var c1 = prevTable.columns.map(function (col) { + return col.columnid; + }); + var c2 = table.columns.map(function (col) { + return col.columnid; + }); + jn.using = arrayIntersect(c1, c2).map(function (colid) { + return {columnid: colid}; + }); + + } else { + throw new Error( + 'In this version of Alasql NATURAL JOIN ' + + 'works for tables with predefined columns only' + ); + } + } + } + } + + if (jn.using) { + prevSource = query.sources[query.sources.length - 1]; + + source.onleftfns = jn.using + .map(function (col) { + + return "p['" + (prevSource.alias || prevSource.tableid) + "']['" + col.columnid + "']"; + }) + .join('+"`"+'); + + source.onleftfn = new Function('p,params,alasql', 'var y;return ' + source.onleftfns); + + source.onrightfns = jn.using + .map(function (col) { + return "p['" + (source.alias || source.tableid) + "']['" + col.columnid + "']"; + }) + .join('+"`"+'); + source.onrightfn = new Function('p,params,alasql', 'var y;return ' + source.onrightfns); + source.optimization = 'ix'; + + } else if (jn.on) { + + if (jn.on instanceof yy.Op && jn.on.op === '=' && !jn.on.allsome) { + + source.optimization = 'ix'; + + var lefts = ''; + var rights = ''; + var middles = ''; + var middlef = false; + // Test right and left sides + var ls = jn.on.left.toJS('p', query.defaultTableid, query.defcols); + var rs = jn.on.right.toJS('p', query.defaultTableid, query.defcols); + + if (ls.indexOf("p['" + alias + "']") > -1 && !(rs.indexOf("p['" + alias + "']") > -1)) { + if ( + (ls.match(/p\['.*?'\]/g) || []).every(function (s) { + return s === "p['" + alias + "']"; + }) + ) { + rights = ls; + } else { + middlef = true; + } + } else if ( + !(ls.indexOf("p['" + alias + "']") > -1) && + rs.indexOf("p['" + alias + "']") > -1 + ) { + if ( + (rs.match(/p\['.*?'\]/g) || []).every(function (s) { + return s === "p['" + alias + "']"; + }) + ) { + lefts = ls; + } else { + middlef = true; + } + } else { + middlef = true; + } + + if (rs.indexOf("p['" + alias + "']") > -1 && !(ls.indexOf("p['" + alias + "']") > -1)) { + if ( + (rs.match(/p\['.*?'\]/g) || []).every(function (s) { + return s === "p['" + alias + "']"; + }) + ) { + rights = rs; + } else { + middlef = true; + } + } else if ( + !(rs.indexOf("p['" + alias + "']") > -1) && + ls.indexOf("p['" + alias + "']") > -1 + ) { + if ( + (ls.match(/p\['.*?'\]/g) || []).every(function (s) { + return s === "p['" + alias + "']"; + }) + ) { + lefts = rs; + } else { + middlef = true; + } + } else { + middlef = true; + } + + if (middlef) { + // middles = jn.on.toJS('p',query.defaultTableid); + // } else { + rights = ''; + lefts = ''; + middles = jn.on.toJS('p', query.defaultTableid, query.defcols); + source.optimization = 'no'; + // What to here? + } + + source.onleftfns = lefts; + source.onrightfns = rights; + source.onmiddlefns = middles || 'true'; + + source.onleftfn = new Function('p,params,alasql', 'var y;return ' + source.onleftfns); + source.onrightfn = new Function('p,params,alasql', 'var y;return ' + source.onrightfns); + source.onmiddlefn = new Function('p,params,alasql', 'var y;return ' + source.onmiddlefns); + + // } else if(jn.on instanceof yy.Op && jn.on.op == 'AND') { + + } else { + + source.optimization = 'no'; + // source.onleftfn = returnTrue; + // source.onleftfns = "true"; + source.onmiddlefns = jn.on.toJS('p', query.defaultTableid, query.defcols); + source.onmiddlefn = new Function( + 'p,params,alasql', + 'var y;return ' + jn.on.toJS('p', query.defaultTableid, query.defcols) + ); + } + + // Optimization function + } + + // source.data = alasql.databases[source.databaseid].tables[source.tableid].data; + + // TODO SubQueries + + query.sources.push(source); + }); + + }; + yy.Select.prototype.compileWhere = function (query) { + if (this.where) { + if (typeof this.where == 'function') { + return this.where; + } else { + var s = this.where.toJS('p', query.defaultTableid, query.defcols); + query.wherefns = s; + + return new Function('p,params,alasql', 'var y;return ' + s); + } + } else + return function () { + return true; + }; + }; + + yy.Select.prototype.compileWhereJoins = function (query) { + return; + }; + /* + // + // Select compiler part for Alasql.js + // Date: 03.11.2014 + // (c) 2014, Andrey Gershun + // + */ + + /** + Compile group of statements + */ + yy.Select.prototype.compileGroup = function (query) { + + if (query.sources.length > 0) { + var tableid = query.sources[0].alias; + } else { + // If SELECT contains group aggregators without source tables + var tableid = ''; + } + var defcols = query.defcols; + + var allgroup = [[]]; + if (this.group) { + allgroup = decartes(this.group, query); + } + + // Prepare groups + //var allgroup = [['a'], ['a','b'], ['a', 'b', 'c']]; + + // Union all arrays to get a maximum + var allgroups = []; + allgroup.forEach(function (a) { + allgroups = arrayUnion(allgroups, a); + }); + + query.allgroups = allgroups; + + query.ingroup = []; + var s = ''; + // s+= query.selectfns; + allgroup.forEach(function (agroup) { + // Start of group function + s += 'var g=this.xgroups['; + + // var gcols = this.group.map(function(col){return col.columnid}); // Group fields with r + // Array with group columns from record + var rg = agroup.map(function (col2) { + var columnid = col2.split('\t')[0]; + var coljs = col2.split('\t')[1]; + // Check, if aggregator exists but GROUP BY is not exists + if (columnid === '') { + return '1'; // Create fictive grouping column for fictive GROUP BY + } + // else return "r['"+columnid+"']"; + query.ingroup.push(columnid); + + return coljs; + }); + + if (rg.length === 0) { + rg = ["''"]; + } + + s += rg.join('+"`"+'); + s += '];if(!g) {this.groups.push((g=this.xgroups['; + s += rg.join('+"`"+'); + s += '] = {'; + // s += ']=r'; + s += agroup + .map(function (col2) { + var columnid = col2.split('\t')[0]; + var coljs = col2.split('\t')[1]; + + if (columnid === '') { + return ''; + } + return "'" + columnid + "':" + coljs + ','; + }) + .join(''); + + var neggroup = arrayDiff(allgroups, agroup); + + s += neggroup + .map(function (col2) { + var columnid = col2.split('\t')[0]; + // var coljs = col2.split('\t')[1] + return "'" + columnid + "':null,"; + }) + .join(''); + + var aft = '', + aft2 = ''; + + if (typeof query.groupStar !== 'undefined') { + aft2 += "for(var f in p['" + query.groupStar + "']) {g[f]=p['" + query.groupStar + "'][f];};"; + } + + /* + */ + // s += self.columns.map(function(col){ + + s += query.selectGroup + .map(function (col) { + + var colexp = col.expression.toJS('p', tableid, defcols); + var colas = col.nick; + // if(typeof colas == 'undefined') { + // if(col instanceof yy.Column) colas = col.columnid; + // else colas = col.toString(); + // }; + let colExpIfFunIdExists = expression => { + let colexpression = expression.args[0]; + return colexpression.toJS('p', tableid, defcols); + }; + if (col instanceof yy.AggrValue) { + if (col.distinct) { + aft += + ",g['$$_VALUES_" + colas + "']={},g['$$_VALUES_" + colas + "'][" + colexp + ']=true'; + } + if (col.aggregatorid === 'SUM') { + if ('funcid' in col.expression) { + let colexp1 = colExpIfFunIdExists(col.expression); + return `'${colas}':(${colexp1})|| typeof ${colexp1} == 'number' ? ${colexp} : null,`; + } + return `'${colas}':(${colexp})|| typeof ${colexp} == 'number' ? ${colexp} : null,`; + } else if (col.aggregatorid === 'TOTAL') { + if ('funcid' in col.expression) { + let colexp1 = colExpIfFunIdExists(col.expression); + return `'${colas}':(${colexp1}) || typeof ${colexp1} == 'number' ? + ${colexp1} : ${colexp1} == 'string' && typeof Number(${colexp1}) == 'number' ? Number(${colexp1}) : + typeof ${colexp1} == 'boolean' ? Number(${colexp1}) : 0,`; + } + return `'${colas}':(${colexp})|| typeof ${colexp} == 'number' ? + ${colexp} : ${colexp} == 'string' && typeof Number(${colexp}) == 'number' ? Number(${colexp}) : + typeof ${colexp} === 'boolean' ? Number(${colexp}) : 0,`; + } else if ( + col.aggregatorid === 'FIRST' || + col.aggregatorid === 'LAST' + // || col.aggregatorid == 'AVG' + // ) { return "'"+col.as+'\':r[\''+col.as+'\'],'; }//f.field.arguments[0].toJS(); + ) { + return "'" + colas + "':" + colexp + ','; //f.field.arguments[0].toJS(); + } else if (col.aggregatorid === 'MIN') { + if ('funcid' in col.expression) { + let colexp1 = colExpIfFunIdExists(col.expression); + + return `'${colas}': (typeof ${colexp1} == 'number' ? ${colexp} : typeof ${colexp1} == 'object' ? + typeof Number(${colexp1}) == 'number' && ${colexp1}!== null? ${colexp} : null : null),`; + } + return `'${colas}': (typeof ${colexp} == 'number' ? ${colexp} : typeof ${colexp} == 'object' ? + typeof Number(${colexp}) == 'number' && ${colexp}!== null? ${colexp} : null : null),`; + } else if (col.aggregatorid === 'MAX') { + if ('funcid' in col.expression) { + let colexp1 = colExpIfFunIdExists(col.expression); + return `'${colas}' : (typeof ${colexp1} == 'number' ? ${colexp} : typeof ${colexp1} == 'object' ? + typeof Number(${colexp1}) == 'number' ? ${colexp} : null : null),`; + } + return `'${colas}' : (typeof ${colexp} == 'number' ? ${colexp} : typeof ${colexp} == 'object' ? + typeof Number(${colexp}) == 'number' ? ${colexp} : null : null),`; + } else if (col.aggregatorid === 'ARRAY') { + return "'" + colas + "':[" + colexp + '],'; + } else if (col.aggregatorid === 'COUNT') { + if (col.expression.columnid === '*') { + return "'" + colas + "':1,"; + } else { + // return "'"+colas+'\':(typeof '+colexp+' != "undefined")?1:0,'; + // } else { + return ( + "'" + + colas + + "':(typeof " + + colexp + + ' == "undefined" || ' + + colexp + + ' === null) ? 0 : 1,' + ); + } + + // else if(col.aggregatorid == 'MIN') { return "'"+col.as+'\':r[\''+col.as+'\'],'; } + // else if(col.aggregatorid == 'MAX') { return "'"+col.as+'\':r[\''+col.as+'\'],'; } + } else if (col.aggregatorid === 'AVG') { + query.removeKeys.push('_SUM_' + colas); + query.removeKeys.push('_COUNT_' + colas); + + return ( + '' + + "'" + + colas + + "':" + + colexp + + ",'_SUM_" + + colas + + "':(" + + colexp + + ")||0,'_COUNT_" + + colas + + "':(typeof " + + colexp + + ' == "undefined" || ' + + colexp + + ' === null) ? 0 : 1,' + ); + } else if (col.aggregatorid === 'AGGR') { + aft += ",g['" + colas + "']=" + col.expression.toJS('g', -1); + return ''; + } else if (col.aggregatorid === 'REDUCE') { + // query.removeKeys.push('_REDUCE_'+colas); + query.aggrKeys.push(col); + + // return "'"+colas+'\':alasql.aggr[\''+col.funcid+'\']('+colexp+',undefined,(acc={}),1),' + // +'\'__REDUCE__'+colas+'\':acc,'; + return "'" + colas + "':alasql.aggr['" + col.funcid + "'](" + colexp + ',undefined,1),'; + } + return ''; + } + + return ''; + }) + .join(''); + + s += '}' + aft + ',g));' + aft2 + '} else {'; + + // s += self.columns.map(function(col){ + s += query.selectGroup + .map(function (col) { + var colas = col.nick; + + var colexp = col.expression.toJS('p', tableid, defcols); + let colExpIfFunIdExists = expression => { + let colexpression = expression.args[0]; + return colexpression.toJS('p', tableid, defcols); + }; + if (col instanceof yy.AggrValue) { + var pre = '', + post = ''; + if (col.distinct) { + var pre = + 'if(typeof ' + + colexp + + '!="undefined" && (!g[\'$$_VALUES_' + + colas + + "'][" + + colexp + + '])) {'; + var post = "g['$$_VALUES_" + colas + "'][" + colexp + ']=true;}'; + } + if (col.aggregatorid === 'SUM') { + if ('funcid' in col.expression) { + let colexp1 = colExpIfFunIdExists(col.expression); + return ( + pre + + `if(g['${colas}'] == null && ${colexp1} == null){g['${colas}'] = null} + else if(typeof g['${colas}']!== 'object' && typeof g['${colas}']!== 'number' && typeof ${colexp1}!== 'object' && typeof ${colexp1}!== 'number'){g['${colas}'] = null} + else if(typeof g['${colas}']!== 'object' && typeof g['${colas}']!== 'number' && typeof ${colexp1} == 'number'){g['${colas}'] = ${colexp}} + else if(typeof g['${colas}']!== 'number' && typeof ${colexp1}!== 'number' && typeof ${colexp1}!== 'object'){g['${colas}'] = g['${colas}']} + else if((g['${colas}'] == null || (typeof g['${colas}']!== 'number' && typeof g['${colas}']!== 'object')) && (${colexp1} == null || (typeof ${colexp1}!== 'number' && typeof ${colexp1}!== 'object'))){g['${colas}'] = null} + else if(typeof g['${colas}'] == 'number' && typeof ${colexp1} ==null){g['${colas}'] = g['${colas}']} + else if(typeof g['${colas}'] == null && typeof ${colexp1} =='number'){g['${colas}'] = ${colexp}} + else{g['${colas}'] += ${colexp}||0}` + + post + ); + } + return ( + pre + + `if(g['${colas}'] == null && ${colexp} == null){g['${colas}'] = null} + else if(typeof g['${colas}']!== 'object' && typeof g['${colas}']!== 'number'&& typeof ${colexp}!== 'object' && typeof ${colexp}!== 'number'){g['${colas}'] = null} + else if(typeof g['${colas}']!== 'object' && typeof g['${colas}']!== 'number' && typeof ${colexp} == 'number'){g['${colas}'] = ${colexp}} + else if(typeof g['${colas}']!== 'number' && typeof ${colexp}!== 'number' && typeof ${colexp}!== 'object'){g['${colas}'] = g['${colas}']} + else if((g['${colas}'] == null || (typeof g['${colas}']!== 'number' && typeof g['${colas}']!== 'object')) && (${colexp} == null || (typeof ${colexp}!== 'number' && typeof ${colexp}!== 'object'))){g['${colas}'] = null} + else if(typeof g['${colas}'] == 'number' && typeof ${colexp} ==null){g['${colas}'] = g['${colas}']} + else if(typeof g['${colas}'] == null && typeof ${colexp} =='number'){g['${colas}'] = ${colexp}} + else{g['${colas}'] += ${colexp}||0}` + + post + ); + } else if (col.aggregatorid === 'TOTAL') { + if ('funcid' in col.expression) { + let colexp1 = colExpIfFunIdExists(col.expression); + return ( + pre + + `if(typeof g['${colas}'] == 'string' && !isNaN(g['${colas}']) && typeof Number(g['${colas}']) == 'number' && + typeof ${colexp1} == 'string' && !isNaN(${colexp1}) && typeof Number(${colexp1}) == 'number'){g['${colas}'] = Number(g['${colas}']) + Number(${colexp1})} + else if(typeof g['${colas}'] == 'string' && typeof ${colexp1} == 'string'){g['${colas}'] = 0} + else if(typeof g['${colas}'] == 'string' && typeof ${colexp1} == 'number'){g['${colas}'] = ${colexp1}} + else if(typeof ${colexp1} == 'string' && typeof g['${colas}'] == 'number'){g['${colas}'] = g['${colas}']} + else{g['${colas}'] += ${colexp1}||0}` + + post + ); + } + return ( + pre + + `if(typeof g['${colas}'] == 'string' && !isNaN(g['${colas}']) && typeof Number(g['${colas}']) == 'number' && + typeof ${colexp} == 'string' && !isNaN(${colexp}) && typeof Number(${colexp}) == 'number'){g['${colas}'] = Number(g['${colas}']) + Number(${colexp})} + else if(typeof g['${colas}'] == 'string' && typeof ${colexp} == 'string'){g['${colas}'] = 0} + else if(typeof g['${colas}'] == 'string' && typeof ${colexp} == 'number'){g['${colas}'] = ${colexp}} + else if(typeof ${colexp} == 'string' && typeof g['${colas}'] == 'number'){g['${colas}'] = g['${colas}']} + else{g['${colas}'] += ${colexp}||0}` + + post + ); + } else if (col.aggregatorid === 'COUNT') { + + if (col.expression.columnid === '*') { + return pre + "g['" + colas + "']++;" + post; + } else { + return ( + pre + + 'if(typeof ' + + colexp + + '!="undefined" && ' + + colexp + + " !== null) g['" + + colas + + "']++;" + + post + ); + } + } else if (col.aggregatorid === 'ARRAY') { + return pre + "g['" + colas + "'].push(" + colexp + ');' + post; + } else if (col.aggregatorid === 'MIN') { + if ('funcid' in col.expression) { + let colexp1 = colExpIfFunIdExists(col.expression); + + return ( + pre + + `if((g['${colas}'] == null && ${colexp1}!== null) ? y = ${colexp} : (g['${colas}']!== null && + ${colexp1} == null) ? y = g['${colas}']:((y=${colexp}) < g['${colas}'])){ if(typeof y == 'number') + {g['${colas}'] = y;}else if(typeof y == 'object' && y instanceof Date){g['${colas}'] = y;} + else if(typeof y == 'object' && typeof Number(y) == 'number'){g['${colas}'] = Number(y);}} + else if(g['${colas}']!== null && typeof g['${colas}'] == 'object' && y instanceof Date){g['${colas}'] = g['${colas}']} + else if(g['${colas}']!== null && typeof g['${colas}'] == 'object'){g['${colas}'] = Number(g['${colas}'])}` + + post + ); + } + return ( + pre + + `if((g['${colas}'] == null && ${colexp}!== null) ? y = ${colexp} : (g['${colas}']!== null && + ${colexp} == null) ? y = g['${colas}']:((y=${colexp}) < g['${colas}'])){ if(typeof y == 'number') + {g['${colas}'] = y;}else if(typeof y == 'object' && y instanceof Date){g['${colas}'] = y;} + else if(typeof y == 'object' && typeof Number(y) == 'number'){g['${colas}'] = Number(y);}} + else if(g['${colas}']!== null && typeof g['${colas}'] == 'object' && y instanceof Date){g['${colas}'] = g['${colas}']} + else if(g['${colas}']!== null && typeof g['${colas}'] == 'object'){g['${colas}'] = Number(g['${colas}'])}` + + post + ); + } else if (col.aggregatorid === 'MAX') { + if ('funcid' in col.expression) { + let colexp1 = colExpIfFunIdExists(col.expression); + + return ( + pre + + `if((g['${colas}'] == null && ${colexp1}!== null) ? y = ${colexp} : (g['${colas}']!== null && + ${colexp1} == null) ? y = g['${colas}']:((y=${colexp}) > g['${colas}'])){ if(typeof y == 'number') + {g['${colas}'] = y;}else if(typeof y == 'object' && y instanceof Date){g['${colas}'] = y;} + else if(typeof y == 'object' && typeof Number(y) == 'number'){g['${colas}'] = Number(y);}} + else if(g['${colas}']!== null && typeof g['${colas}'] == 'object' && y instanceof Date){g['${colas}'] = g['${colas}']} + else if(g['${colas}']!== null && typeof g['${colas}'] == 'object'){g['${colas}'] = Number(g['${colas}'])}` + + post + ); + } + return ( + pre + + `if((g['${colas}'] == null && ${colexp}!== null) ? y = ${colexp} : (g['${colas}']!== null && + ${colexp} == null) ? y = g['${colas}']:((y=${colexp}) > g['${colas}'])){ if(typeof y == 'number') + {g['${colas}'] = y;}else if(typeof y == 'object' && y instanceof Date){g['${colas}'] = y;} + else if(typeof y == 'object' && typeof Number(y) == 'number'){g['${colas}'] = Number(y);}} + else if(g['${colas}']!== null && typeof g['${colas}'] == 'object' && y instanceof Date){g['${colas}'] = g['${colas}']} + else if(g['${colas}']!== null && typeof g['${colas}'] == 'object'){g['${colas}'] = Number(g['${colas}'])}` + + post + ); + } else if (col.aggregatorid === 'FIRST') { + return ''; + } else if (col.aggregatorid === 'LAST') { + return pre + "g['" + colas + "']=" + colexp + ';' + post; + } else if (col.aggregatorid === 'AVG') { + return ( + '' + + pre + + "g['_SUM_" + + colas + + "']+=(y=" + + colexp + + ')||0;' + + "g['_COUNT_" + + colas + + '\']+=(typeof y == "undefined" || y === null) ? 0 : 1;' + + "g['" + + colas + + "']=g['_SUM_" + + colas + + "']/g['_COUNT_" + + colas + + "'];" + + post + ); + // } + // else if(col.aggregatorid == 'AVG') { srg.push(colas+':0'); } + } else if (col.aggregatorid === 'AGGR') { + return '' + pre + "g['" + colas + "']=" + col.expression.toJS('g', -1) + ';' + post; + } else if (col.aggregatorid === 'REDUCE') { + return ( + '' + + pre + + "g['" + + colas + + "']=alasql.aggr." + + col.funcid + + '(' + + colexp + + ",g['" + + colas + + "'],2);" + + post + ); + } + + return ''; + } + + return ''; + }) + .join(''); + + // s += selectFields.map(function(f){ + + // if(f.constructor.name == 'LiteralValue') return ''; + // if (f.field instanceof SQLParser.nodes.FunctionValue + // && (f.field.name.toUpperCase() == 'SUM' || f.field.name.toUpperCase() == 'COUNT')) { + // return 'group.'+f.name.value+'=+(+group.'+f.name.value+'||0)+'+f.field.arguments[0].toJS('rec','')+';'; //f.field.arguments[0].toJS(); + // return 'group.'+f.name.value+'+='+f.field.arguments[0].toJS('rec','')+';'; //f.field.arguments[0].toJS(); + // return 'group.'+f.name.value+'+=rec.'+f.name.value+';'; //f.field.arguments[0].toJS(); + // }; + // return ''; + // }).join(''); + + // s += ' group.amt += rec.emplid;'; + // s += 'group.count++;'; + + s += '}'; + }); + + return new Function('p,params,alasql', 'var y;' + s); + }; + /* + // + // Select compiler part for Alasql.js + // Date: 03.11.2014 + // (c) 2014, Andrey Gershun + // + */ + + // yy.Select.prototype.compileSources = function(query) { + + // }; + + function compileSelectStar(query, aliases, joinstar) { + var sp = '', + ss = [], + columnIds = {}; + + aliases.forEach(function (alias) { + + // if(!alias) { + // sp += 'for(var k1 in p) var w=p[k1];for(var k2 in w){r[k2]=w[k2]};'; + // } else { + + // TODO move this out of this function + query.ixsources = {}; + query.sources.forEach(function (source) { + query.ixsources[source.alias] = source; + }); + + // Fixed + var columns; + if (query.ixsources[alias]) { + var columns = query.ixsources[alias].columns; + } + + // if(columns.length == 0 && query.aliases[alias].tableid) { + // var columns = alasql.databases[query.aliases[alias].databaseid].tables[query.aliases[alias].tableid].columns; + // }; + + // Check if this is a Table or other + if (joinstar && alasql.options.joinstar == 'json') { + sp += "r['" + alias + "']={};"; + } + + if (columns && columns.length > 0) { + columns.forEach(function (tcol) { + const escapedColumnId = escapeq(tcol.columnid); + if (joinstar && alasql.options.joinstar == 'underscore') { + ss.push( + "'" + alias + '_' + escapedColumnId + "':p['" + alias + "']['" + escapedColumnId + "']" + ); + } else if (joinstar && alasql.options.joinstar == 'json') { + // ss.push('\''+alias+'_'+tcol.columnid+'\':p[\''+alias+'\'][\''+tcol.columnid+'\']'); + sp += + "r['" + + alias + + "']['" + + escapedColumnId + + "']=p['" + + alias + + "']['" + + escapedColumnId + + "'];"; + } else { + var value = "p['" + alias + "']['" + escapedColumnId + "']"; + if (!columnIds[tcol.columnid]) { + var key = "'" + escapedColumnId + "':"; + ss.push(key + value); + columnIds[tcol.columnid] = { + id: ss.length - 1, + value: value, + key: key, + }; + } else { + var newValue = + value + ' !== undefined ? ' + value + ' : ' + columnIds[tcol.columnid].value; + ss[columnIds[tcol.columnid].id] = columnIds[tcol.columnid].key + newValue; + columnIds[tcol.columnid].value = newValue; + } + } + + query.selectColumns[escapedColumnId] = true; + + var coldef = { + columnid: tcol.columnid, + dbtypeid: tcol.dbtypeid, + dbsize: tcol.dbsize, + dbprecision: tcol.dbprecision, + dbenum: tcol.dbenum, + }; + query.columns.push(coldef); + query.xcolumns[coldef.columnid] = coldef; + }); + + } else { + + // if column not exist, then copy all + sp += 'var w=p["' + alias + '"];for(var k in w){r[k]=w[k]};'; + + query.dirtyColumns = true; + } + // } + + }); + + return {s: ss.join(','), sp: sp}; + } + + yy.Select.prototype.compileSelect1 = function (query, params) { + var self = this; + query.columns = []; + query.xcolumns = {}; + query.selectColumns = {}; + query.dirtyColumns = false; + var s = 'var r={'; + var sp = ''; + var ss = []; + + this.columns.forEach(function (col) { + if (col instanceof yy.Column) { + if (col.columnid === '*') { + if (col.func) { + sp += + "r=params['" + col.param + "'](p['" + query.sources[0].alias + "'],p,params,alasql);"; + } else if (col.tableid) { + //Copy all + var ret = compileSelectStar(query, [col.tableid], false); + if (ret.s) { + ss = ss.concat(ret.s); + } + sp += ret.sp; + } else { + + var ret = compileSelectStar(query, Object.keys(query.aliases), true); //query.aliases[alias].tableid); + if (ret.s) { + ss = ss.concat(ret.s); + } + sp += ret.sp; + + // TODO Remove these lines + // In case of no information + // sp += 'for(var k1 in p){var w=p[k1];'+ + // 'for(k2 in w) {r[k2]=w[k2]}}' + } + } else { + // If field, otherwise - expression + var tbid = col.tableid; + + var dbid = col.databaseid || query.sources[0].databaseid || query.database.databaseid; + if (!tbid) tbid = query.defcols[col.columnid]; + if (!tbid) tbid = query.defaultTableid; + if (col.columnid !== '_') { + { + // workaround for multisheet xlsx export with custom COLUMNS + var isMultisheetParam = + params && + params.length > 1 && + Array.isArray(params[0]) && + params[0].length >= 1 && + params[0][0].hasOwnProperty('sheetid'); + if (isMultisheetParam) { + sp = + 'var r={};var w=p["' + + tbid + + '"];' + + 'var cols=[' + + self.columns + .map(function (col) { + return "'" + col.columnid + "'"; + }) + .join(',') + + '];var colas=[' + + self.columns + .map(function (col) { + return "'" + (col.as || col.columnid) + "'"; + }) + .join(',') + + '];' + + "for (var i=0;i 0) { + + var tcol = xcolumns[col.columnid]; + + if (undefined === tcol) { + throw new Error('Column does not exist: ' + col.columnid); + } + + var coldef = { + columnid: col.as || col.columnid, + dbtypeid: tcol.dbtypeid, + dbsize: tcol.dbsize, + dbpecision: tcol.dbprecision, + dbenum: tcol.dbenum, + }; + + query.columns.push(coldef); + query.xcolumns[coldef.columnid] = coldef; + } else { + var coldef = { + columnid: col.as || col.columnid, + // dbtypeid:tcol.dbtypeid, + // dbsize:tcol.dbsize, + // dbpecision:tcol.dbprecision, + // dbenum: tcol.dbenum, + }; + + query.columns.push(coldef); + query.xcolumns[coldef.columnid] = coldef; + + query.dirtyColumns = true; + } + } else { + var coldef = { + columnid: col.as || col.columnid, + // dbtypeid:tcol.dbtypeid, + // dbsize:tcol.dbsize, + // dbpecision:tcol.dbprecision, + // dbenum: tcol.dbenum, + }; + + query.columns.push(coldef); + query.xcolumns[coldef.columnid] = coldef; + // This is a subquery? + // throw new Error('There is now such table \''+col.tableid+'\''); + } + } + } else if (col instanceof yy.AggrValue) { + if (!self.group) { + // self.group=[new yy.Column({columnid:'q',as:'q' })]; + self.group = ['']; + } + if (!col.as) { + col.as = escapeq(col.toString()); + } + + if ( + col.aggregatorid === 'SUM' || + col.aggregatorid === 'MAX' || + col.aggregatorid === 'MIN' || + col.aggregatorid === 'FIRST' || + col.aggregatorid === 'LAST' || + col.aggregatorid === 'AVG' || + col.aggregatorid === 'ARRAY' || + col.aggregatorid === 'REDUCE' || + col.aggregatorid === 'TOTAL' + ) { + ss.push( + "'" + + escapeq(col.as) + + "':" + + n2u(col.expression.toJS('p', query.defaultTableid, query.defcols)) + ); + } else if (col.aggregatorid === 'COUNT') { + ss.push("'" + escapeq(col.as) + "':1"); + // Nothing + } + // todo: confirm that no default action must be implemented + + // query.selectColumns[col.aggregatorid+'('+escapeq(col.expression.toString())+')'] = thtd; + + var coldef = { + columnid: col.as || col.columnid || col.toString(), + // dbtypeid:tcol.dbtypeid, + // dbsize:tcol.dbsize, + // dbpecision:tcol.dbprecision, + // dbenum: tcol.dbenum, + }; + + query.columns.push(coldef); + query.xcolumns[coldef.columnid] = coldef; + + // else if (col.aggregatorid == 'MAX') { + // ss.push((col.as || col.columnid)+':'+col.toJS("p.",query.defaultTableid)) + // } else if (col.aggregatorid == 'MIN') { + // ss.push((col.as || col.columnid)+':'+col.toJS("p.",query.defaultTableid)) + // } + } else { + + ss.push( + "'" + + escapeq(col.as || col.columnid || col.toString()) + + "':" + + n2u(col.toJS('p', query.defaultTableid, query.defcols)) + ); + // ss.push('\''+escapeq(col.toString())+'\':'+col.toJS("p",query.defaultTableid)); + //if(col instanceof yy.Expression) { + query.selectColumns[escapeq(col.as || col.columnid || col.toString())] = true; + + var coldef = { + columnid: col.as || col.columnid || col.toString(), + // dbtypeid:tcol.dbtypeid, + // dbsize:tcol.dbsize, + // dbpecision:tcol.dbprecision, + // dbenum: tcol.dbenum, + }; + + query.columns.push(coldef); + query.xcolumns[coldef.columnid] = coldef; + } + }); + s += ss.join(',') + '};' + sp; + return s; + + }; + yy.Select.prototype.compileSelect2 = function (query, params) { + var s = query.selectfns; + if (this.orderColumns && this.orderColumns.length > 0) { + this.orderColumns.forEach(function (v, idx) { + var key = '$$$' + idx; + if (v instanceof yy.Column && query.xcolumns[v.columnid]) { + s += "r['" + key + "']=r['" + v.columnid + "'];"; + } else if (v instanceof yy.ParamValue && query.xcolumns[params[v.param]]) { + s += "r['" + key + "']=r['" + params[v.param] + "'];"; + } else { + s += "r['" + key + "']=" + v.toJS('p', query.defaultTableid, query.defcols) + ';'; + } + query.removeKeys.push(key); + }); + } + return new Function('p,params,alasql', 'var y;' + s + 'return r'); + }; + + yy.Select.prototype.compileSelectGroup0 = function (query) { + var self = this; + self.columns.forEach(function (col, idx) { + if (!(col instanceof yy.Column && col.columnid === '*')) { + var colas; + // = col.as; + if (col instanceof yy.Column) { + colas = escapeq(col.columnid); + } else { + colas = escapeq(col.toString(true)); + + } + for (var i = 0; i < idx; i++) { + if (colas === self.columns[i].nick) { + colas = self.columns[i].nick + ':' + idx; + break; + } + } + // } + col.nick = colas; + + if (self.group) { + var groupIdx = self.group.findIndex(function (gp) { + return gp.columnid === col.columnid && gp.tableid === col.tableid; + }); + if (groupIdx > -1) { + self.group[groupIdx].nick = colas; + } + } + + if ( + col.funcid && + (col.funcid.toUpperCase() === 'ROWNUM' || col.funcid.toUpperCase() === 'ROW_NUMBER') + ) { + query.rownums.push(col.as); + } + + // } + } else { + query.groupStar = col.tableid || 'default'; + } + }); + + this.columns.forEach(function (col) { + if (col.findAggregator) { + col.findAggregator(query); + } + }); + + if (this.having) { + if (this.having.findAggregator) { + this.having.findAggregator(query); + } + } + }; + + yy.Select.prototype.compileSelectGroup1 = function (query) { + var self = this; + var s = 'var r = {};'; + + self.columns.forEach(function (col) { + + if (col instanceof yy.Column && col.columnid === '*') { + // s += 'for(var k in g){r[k]=g[k]};'; + // s += 'for(var k in this.query.groupColumns){r[k]=g[this.query.groupColumns[k]]};'; + + s += 'for(var k in g) {r[k]=g[k]};'; + return ''; + + } else { + // var colas = col.as; + var colas = col.as; + if (colas === undefined) { + if (col instanceof yy.Column) { + colas = escapeq(col.columnid); + } else { + colas = col.nick; + } + } + query.groupColumns[colas] = col.nick; + + // if(col.as) { + s += "r['" + colas + "']="; + // // } else { + // // s += 'r[\''+escapeq()+'\']='; + // // }; + // // s += ';'; + + s += n2u(col.toJS('g', '')) + ';'; + + for (var i = 0; i < query.removeKeys.length; i++) { + // THis part should be intellectual + if (query.removeKeys[i] === colas) { + query.removeKeys.splice(i, 1); + break; + } + } + } + }); + // return new Function('g,params,alasql',s+'return r'); + return s; + }; + + yy.Select.prototype.compileSelectGroup2 = function (query) { + var self = this; + var s = query.selectgfns; + self.columns.forEach(function (col) { + + if (query.ingroup.indexOf(col.nick) > -1) { + s += "r['" + (col.as || col.nick) + "']=g['" + col.nick + "'];"; + } + }); + + if (this.orderColumns && this.orderColumns.length > 0) { + this.orderColumns.forEach(function (v, idx) { + + var key = '$$$' + idx; + + if (v instanceof yy.Column && query.groupColumns[v.columnid]) { + s += "r['" + key + "']=r['" + v.columnid + "'];"; + } else { + s += "r['" + key + "']=" + v.toJS('g', '') + ';'; + } + query.removeKeys.push(key); + }); + } + + return new Function('g,params,alasql', 'var y;' + s + 'return r'); + }; + + // SELECY * REMOVE [COLUMNS] col-list, LIKE '' + yy.Select.prototype.compileRemoveColumns = function (query) { + if (typeof this.removecolumns !== 'undefined') { + query.removeKeys = query.removeKeys.concat( + this.removecolumns + .filter(function (column) { + return typeof column.like === 'undefined'; + }) + .map(function (column) { + return column.columnid; + }) + ); + + query.removeLikeKeys = this.removecolumns + .filter(function (column) { + return typeof column.like !== 'undefined'; + }) + .map(function (column) { + // return new RegExp((column.like.value||'').replace(/\%/g,'.*').replace(/\?|_/g,'.'),'g'); + return column.like.value; + }); + } + }; + /* global yy */ + + yy.Select.prototype.compileHaving = function (query) { + if (this.having) { + var s = this.having.toJS('g', -1); + query.havingfns = s; + + return new Function('g,params,alasql', 'var y;return ' + s); + } + + return function () { + return true; + }; + }; + yy.Select.prototype.compileOrder = function (query, params) { + var self = this; + self.orderColumns = []; + if (this.order) { + + if ( + this.order && + this.order.length == 1 && + this.order[0].expression && + typeof this.order[0].expression == 'function' + ) { + + var func = this.order[0].expression; + + var nullsOrder = + this.order[0].nullsOrder == 'FIRST' ? -1 : this.order[0].nullsOrder == 'LAST' ? +1 : 0; + return function (a, b) { + var ra = func(a), + rb = func(b); + if (nullsOrder) { + if (ra == null) return rb == null ? 0 : nullsOrder; + if (rb == null) return -nullsOrder; + } + if (ra > rb) return 1; + if (ra == rb) return 0; + return -1; + }; + } + + var s = ''; + var sk = ''; + this.order.forEach(function (ord, idx) { + + if (ord.expression instanceof yy.NumValue) { + if (ord.expression.value > self.columns.length) { + throw new Error( + `You are trying to order by column number ${ord.expression.value} but you have only selected ${self.columns.length} columns.` + ); + } + var v = self.columns[ord.expression.value - 1]; + } else { + var v = ord.expression; + } + self.orderColumns.push(v); + + var key = '$$$' + idx; + + // Date conversion + var dg = ''; + //if(alasql.options.valueof) + if (ord.expression instanceof yy.Column) { + var columnid = ord.expression.columnid; + if (alasql.options.valueof) { + dg = '.valueOf()'; + } else if (query.xcolumns[columnid]) { + var dbtypeid = query.xcolumns[columnid].dbtypeid; + if ( + dbtypeid == 'DATE' || + dbtypeid == 'DATETIME' || + dbtypeid == 'DATETIME2' || + dbtypeid == 'STRING' || + dbtypeid == 'NUMBER' + ) + dg = '.valueOf()'; + // TODO Add other types mapping + } + } + if (ord.expression instanceof yy.ParamValue) { + var columnid = params[ord.expression.param]; + if (alasql.options.valueof) { + dg = '.valueOf()'; + } else if (query.xcolumns[columnid]) { + var dbtypeid = query.xcolumns[columnid].dbtypeid; + if ( + dbtypeid == 'DATE' || + dbtypeid == 'DATETIME' || + dbtypeid == 'DATETIME2' || + dbtypeid == 'STRING' || + dbtypeid == 'NUMBER' + ) + dg = '.valueOf()'; + // TODO Add other types mapping + } + } + // COLLATE NOCASE + if (ord.nocase) dg += '.toUpperCase()'; + + if (ord.nullsOrder) { + if (ord.nullsOrder == 'FIRST') { + s += "if((a['" + key + "'] != null) && (b['" + key + "'] == null)) return 1;"; + } else if (ord.nullsOrder == 'LAST') { + s += "if((a['" + key + "'] == null) && (b['" + key + "'] != null)) return 1;"; + } + s += "if((a['" + key + "'] == null) == (b['" + key + "'] == null)) {"; + sk += '}'; + } + + s += + "if((a['" + + key + + "']||'')" + + dg + + (ord.direction == 'ASC' ? '>' : '<') + + "(b['" + + key + + "']||'')" + + dg + + ')return 1;'; + s += "if((a['" + key + "']||'')" + dg + "==(b['" + key + "']||'')" + dg + '){'; + + /* + if(false) { + + if(ord.expression instanceof yy.NumValue) { + ord.expression = self.columns[ord.expression.value-1]; + + ord.expression = new yy.Column({columnid:ord.expression.nick}); + }; + + if(ord.expression instanceof yy.Column) { + var columnid = ord.expression.columnid; + if(query.xcolumns[columnid]) { + var dbtypeid = query.xcolumns[columnid].dbtypeid; + if( dbtypeid == 'DATE' || dbtypeid == 'DATETIME' || dbtypeid == 'DATETIME2') dg = '.valueOf()'; + // TODO Add other types mapping + } else { + if(alasql.options.valueof) dg = '.valueOf()'; // TODO Check + } + // COLLATE NOCASE + if(ord.nocase) dg += '.toUpperCase()'; + + s += 'if((a[\''+columnid+"']||'')"+dg+(ord.direction == 'ASC'?'>':'<')+'(b[\''+columnid+"']||'')"+dg+')return 1;'; + s += 'if((a[\''+columnid+"']||'')"+dg+'==(b[\''+columnid+"']||'')"+dg+'){'; + + } else { + dg = '.valueOf()'; + // COLLATE NOCASE + if(ord.nocase) dg += '.toUpperCase()'; + s += 'if(('+ord.toJS('a','')+"||'')"+dg+(ord.direction == 'ASC'?'>(':'<(')+ord.toJS('b','')+"||'')"+dg+')return 1;'; + s += 'if(('+ord.toJS('a','')+"||'')"+dg+'==('+ord.toJS('b','')+"||'')"+dg+'){'; + } + + // TODO Add date comparision + + } + */ + sk += '}'; + }); + s += 'return 0;'; + s += sk + 'return -1'; + query.orderfns = s; + + return new Function('a,b', 'var y;' + s); + } + }; + // Pivot functions + /** + Compile Pivot functions + @param {object} query Source query + @return {function} Pivoting functions + */ + yy.Select.prototype.compilePivot = function (query) { + var self = this; + /** @type {string} Main pivoting column */ + + var columnid = self.pivot.columnid; + var aggr = self.pivot.expr.aggregatorid; + var inlist = self.pivot.inlist; + + var exprcolid = null; + + if (self.pivot.expr.expression.hasOwnProperty('columnid')) { + exprcolid = self.pivot.expr.expression.columnid; + } else { + exprcolid = self.pivot.expr.expression.expression.columnid; + } + + if (null == exprcolid) { + throw 'columnid not found'; + } + + if (inlist) { + inlist = inlist.map(function (l) { + return l.expr.columnid; + }); + } + + // Function for PIVOT post production + return function () { + var query = this; + var cols = query.columns + .filter(function (col) { + return col.columnid != columnid && col.columnid != exprcolid; + }) + .map(function (col) { + return col.columnid; + }); + + var newcols = []; + var gnewcols = {}; + var gr = {}; + var ga = {}; + var data = []; + query.data.forEach(function (d) { + if (!inlist || inlist.indexOf(d[columnid]) > -1) { + var gx = cols + .map(function (colid) { + return d[colid]; + }) + .join('`'); + var g = gr[gx]; + if (!g) { + g = {}; + gr[gx] = g; + data.push(g); + cols.forEach(function (colid) { + g[colid] = d[colid]; + }); + } + + if (!ga[gx]) { + ga[gx] = {}; + } + + if (ga[gx][d[columnid]]) { + ga[gx][d[columnid]]++; + } else { + ga[gx][d[columnid]] = 1; + } + + if (!gnewcols[d[columnid]]) { + gnewcols[d[columnid]] = true; + newcols.push(d[columnid]); + } + + if (aggr == 'SUM' || aggr == 'AVG' || aggr == 'TOTAL') { + if (typeof g[d[columnid]] == 'undefined') g[d[columnid]] = 0; + g[d[columnid]] += +d[exprcolid]; + } else if (aggr == 'COUNT') { + if (typeof g[d[columnid]] == 'undefined') g[d[columnid]] = 0; + g[d[columnid]]++; + } else if (aggr == 'MIN') { + if (typeof g[d[columnid]] == 'undefined') g[d[columnid]] = d[exprcolid]; + if (d[exprcolid] < g[d[columnid]]) g[d[columnid]] = d[exprcolid]; + } else if (aggr == 'MAX') { + if (typeof g[d[columnid]] == 'undefined') g[d[columnid]] = d[exprcolid]; + if (d[exprcolid] > g[d[columnid]]) g[d[columnid]] = d[exprcolid]; + } else if (aggr == 'FIRST') { + if (typeof g[d[columnid]] == 'undefined') g[d[columnid]] = d[exprcolid]; + } else if (aggr == 'LAST') { + g[d[columnid]] = d[exprcolid]; + } else if (alasql.aggr[aggr]) { + // Custom aggregator + alasql.aggr[aggr](g[d[columnid]], d[exprcolid]); + } else { + throw new Error('Wrong aggregator in PIVOT clause'); + } + } + }); + + if (aggr == 'AVG') { + for (var gx in gr) { + var d = gr[gx]; + for (var colid in d) { + if (cols.indexOf(colid) == -1 && colid != exprcolid) { + d[colid] = d[colid] / ga[gx][colid]; + } + } + } + } + + // columns + query.data = data; + + if (inlist) newcols = inlist; + + var ncol = query.columns.filter(function (col) { + return col.columnid == exprcolid; + })[0]; + query.columns = query.columns.filter(function (col) { + return !(col.columnid == columnid || col.columnid == exprcolid); + }); + newcols.forEach(function (colid) { + var nc = cloneDeep(ncol); + nc.columnid = colid; + query.columns.push(nc); + }); + }; + }; + + // var columnid = this.pivot.columnid; + + // return function(data){ + + // if(false) { + + // } + + // if(false) { + + // } + // }; + + /** + Compile UNPIVOT clause + @param {object} query Query object + @return {function} Function for unpivoting + */ + yy.Select.prototype.compileUnpivot = function (query) { + var self = this; + var tocolumnid = self.unpivot.tocolumnid; + var forcolumnid = self.unpivot.forcolumnid; + var inlist = self.unpivot.inlist.map(function (l) { + return l.columnid; + }); + + return function () { + var data = []; + + var xcols = query.columns + .map(function (col) { + return col.columnid; + }) + .filter(function (colid) { + return inlist.indexOf(colid) == -1 && colid != forcolumnid && colid != tocolumnid; + }); + + query.data.forEach(function (d) { + inlist.forEach(function (colid) { + var nd = {}; + xcols.forEach(function (xcolid) { + nd[xcolid] = d[xcolid]; + }); + nd[forcolumnid] = colid; + nd[tocolumnid] = d[colid]; + data.push(nd); + }); + }); + + query.data = data; + + // }); + }; + }; + /* + // + // ROLLUP(), CUBE(), GROUPING SETS() for Alasql.js + // Date: 03.11.2014 + // (c) 2014, Andrey Gershun + // + */ + + /** + Calculate ROLLUP() combination + */ + + var rollup = function (a, query) { + var rr = []; + var mask = 0; + var glen = a.length; + for (var g = 0; g < glen + 1; g++) { + var ss = []; + for (var i = 0; i < glen; i++) { + if (a[i] instanceof yy.Column) { + a[i].nick = escapeq(a[i].columnid); + + query.groupColumns[escapeq(a[i].columnid)] = a[i].nick; + var aaa = a[i].nick + '\t' + a[i].toJS('p', query.sources[0].alias, query.defcols); + } else { + query.groupColumns[escapeq(a[i].toString())] = escapeq(a[i].toString()); + var aaa = + escapeq(a[i].toString()) + '\t' + a[i].toJS('p', query.sources[0].alias, query.defcols); + } + + if (mask & (1 << i)) ss.push(aaa); + } + rr.push(ss); + mask = (mask << 1) + 1; + } + return rr; + }; + + /** + Calculate CUBE() + */ + var cube = function (a, query) { + var rr = []; + var glen = a.length; + var glenCube = 1 << glen; + for (var g = 0; g < glenCube; g++) { + var ss = []; + for (var i = 0; i < glen; i++) { + if (g & (1 << i)) + //ss.push(a[i]); + //ss = cartes(ss,decartes(a[i])); + + // var aaa = a[i].toString()+'\t' + // +a[i].toJS('p',query.sources[0].alias,query.defcols); + + ss = ss.concat(decartes(a[i], query)); + // + } + rr.push(ss); + } + return rr; + }; + + /** + GROUPING SETS() + */ + var groupingsets = function (a, query) { + return a.reduce(function (acc, d) { + acc = acc.concat(decartes(d, query)); + return acc; + }, []); + }; + + /** + Cartesian production + */ + var cartes = function (a1, a2) { + var rrr = []; + for (var i1 = 0; i1 < a1.length; i1++) { + for (var i2 = 0; i2 < a2.length; i2++) { + rrr.push(a1[i1].concat(a2[i2])); + } + } + return rrr; + }; + + /** + Prepare groups function + */ + function decartes(gv, query) { + + if (Array.isArray(gv)) { + var res = [[]]; + for (var t = 0; t < gv.length; t++) { + if (gv[t] instanceof yy.Column) { + + gv[t].nick = gv[t].nick ? escapeq(gv[t].nick) : escapeq(gv[t].columnid); + query.groupColumns[gv[t].nick] = gv[t].nick; + res = res.map(function (r) { + return r.concat( + gv[t].nick + '\t' + gv[t].toJS('p', query.sources[0].alias, query.defcols) + ); + }); + // res = res.map(function(r){return r.concat(gv[t].columnid)}); + } else if (gv[t] instanceof yy.FuncValue) { + query.groupColumns[escapeq(gv[t].toString())] = escapeq(gv[t].toString()); + res = res.map(function (r) { + return r.concat( + escapeq(gv[t].toString()) + + '\t' + + gv[t].toJS('p', query.sources[0].alias, query.defcols) + ); + }); + // to be defined + } else if (gv[t] instanceof yy.GroupExpression) { + if (gv[t].type == 'ROLLUP') res = cartes(res, rollup(gv[t].group, query)); + else if (gv[t].type == 'CUBE') res = cartes(res, cube(gv[t].group, query)); + else if (gv[t].type == 'GROUPING SETS') res = cartes(res, groupingsets(gv[t].group, query)); + else throw new Error('Unknown grouping function'); + } else if (gv[t] === '') { + + res = [['1\t1']]; + } else { + // if(gv[t]) + + res = res.map(function (r) { + query.groupColumns[escapeq(gv[t].toString())] = escapeq(gv[t].toString()); + return r.concat( + escapeq(gv[t].toString()) + + '\t' + + gv[t].toJS('p', query.sources[0].alias, query.defcols) + ); + }); + // res = res.concat(gv[t]); + } + + } + return res; + } else if (gv instanceof yy.FuncValue) { + + query.groupColumns[escapeq(gv.toString())] = escapeq(gv.toString()); + return [gv.toString() + '\t' + gv.toJS('p', query.sources[0].alias, query.defcols)]; + } else if (gv instanceof yy.Column) { + gv.nick = escapeq(gv.columnid); + query.groupColumns[gv.nick] = gv.nick; + return [gv.nick + '\t' + gv.toJS('p', query.sources[0].alias, query.defcols)]; // Is this ever happened? + // } else if(gv instanceof yy.Expression) { + // return [gv.columnid]; // Is this ever happened? + } else { + query.groupColumns[escapeq(gv.toString())] = escapeq(gv.toString()); + return [escapeq(gv.toString()) + '\t' + gv.toJS('p', query.sources[0].alias, query.defcols)]; + // throw new Error('Single argument in the group without array'); + } + + } + /* + // + // Select run-time part for Alasql.js + // Date: 03.11.2014 + // (c) 2014, Andrey Gershun + // + */ + + yy.Select.prototype.compileDefCols = function (query, databaseid) { + + var defcols = {'.': {}}; + if (this.from) { + this.from.forEach(function (fr) { + defcols['.'][fr.as || fr.tableid] = true; + if (fr instanceof yy.Table) { + var alias = fr.as || fr.tableid; + + var table = alasql.databases[fr.databaseid || databaseid].tables[fr.tableid]; + + if (undefined === table) { + throw new Error('Table does not exist: ' + fr.tableid); + } + + if (table.columns) { + table.columns.forEach(function (col) { + if (defcols[col.columnid]) { + defcols[col.columnid] = '-'; // Ambigous + } else { + defcols[col.columnid] = alias; + } + }); + } + } else if (fr instanceof yy.Select) ; else if (fr instanceof yy.Search) ; else if (fr instanceof yy.ParamValue) ; else if (fr instanceof yy.VarValue) ; else if (fr instanceof yy.FuncValue) ; else if (fr instanceof yy.FromData) ; else if (fr instanceof yy.Json) ; else if (fr.inserted) ; else { + + throw new Error('Unknown type of FROM clause'); + } + }); + } + + if (this.joins) { + this.joins.forEach(function (jn) { + defcols['.'][jn.as || jn.table.tableid] = true; + + if (jn.table) { + var alias = jn.table.tableid; + if (jn.as) alias = jn.as; + var alias = jn.as || jn.table.tableid; + var table = alasql.databases[jn.table.databaseid || databaseid].tables[jn.table.tableid]; + + if (table.columns) { + table.columns.forEach(function (col) { + if (defcols[col.columnid]) { + defcols[col.columnid] = '-'; // Ambigous + } else { + defcols[col.columnid] = alias; + } + }); + } + } else if (jn.select) ; else if (jn.param) ; else if (jn.func) ; else { + throw new Error('Unknown type of FROM clause'); + } + }); + } + // for(var k in defcols) { + // if(defcols[k] == '-') defcols[k] = undefined; + // } + + return defcols; + }; + /* + // + // UNION for Alasql.js + // Date: 03.11.2014 + // (c) 2014, Andrey Gershun + // + */ + + // SELECT UNION statement + + yy.Union = class Union { + constructor(params) { + Object.assign(this, params); + } + + toString() { + return 'UNION'; + } + + compile(tableid) { + return null; + } + }; + /* + // + // CROSS AND OUTER APPLY for Alasql.js + // Date: 03.11.2014 + // (c) 2014, Andrey Gershun + // + */ + + yy.Apply = class Apply { + constructor(params) { + Object.assign(this, params); + } + + toString() { + var s = this.applymode + ' APPLY (' + this.select.toString() + ')'; + + if (this.as) s += ' AS ' + this.as; + + return s; + } + }; + /* + // + // CROSS AND OUTER APPLY for Alasql.js + // Date: 03.11.2014 + // (c) 2014, Andrey Gershun + // + */ + + yy.Over = class Over { + constructor(params) { + Object.assign(this, params); + } + + toString() { + var s = 'OVER ('; + if (this.partition) { + s += 'PARTITION BY ' + this.partition.toString(); + if (this.order) s += ' '; + } + if (this.order) { + s += 'ORDER BY ' + this.order.toString(); + } + s += ')'; + return s; + } + }; + /* + // + // Expressions for Alasql.js + // Date: 03.11.2014 + // (c) 2014, Andrey Gershun + // + */ + + { + const assign = Object.assign; + + class ExpressionStatement { + /** @param {object} params Initial parameters */ + constructor(params) { + assign(this, params); + } + + /** + Convert AST to string + @return {string} + */ + toString() { + return this.expression.toString(); + } + + /** + Execute statement + @param {string} databaseid Database identificatro + @param {object} params Statement parameters + @param {statement-callback} cb Callback + @return {object} Result value + */ + execute(databaseid, params, cb) { + if (this.expression) { + + alasql.precompile(this, databaseid, params); // Precompile queries + var exprfn = new Function( + 'params,alasql,p', + 'var y;return ' + this.expression.toJS('({})', '', null) + ).bind(this); + var res = exprfn(params, alasql); + if (cb) { + res = cb(res); + } + return res; + } + } + } + + class Expression { + constructor(params) { + assign(this, params); + } + + /** + Convert AST to string + @return {string} + */ + toString() { + var s = this.expression.toString(); + if (this.order) { + s += ' ' + this.order.toString(); + } + if (this.nocase) { + s += ' COLLATE NOCASE'; + } + if (this.direction) { + s += ' ' + this.direction; + } + return s; + } + + /** + Find aggregator in AST subtree + @param {object} query Query object + */ + findAggregator(query) { + if (this.expression.findAggregator) { + this.expression.findAggregator(query); + } + } + + /** + Convert AST to JavaScript expression + @param {string} context Context string, e.g. 'p','g', or 'x' + @param {string} tableid Default table name + @param {object} defcols Default columns dictionary + @return {string} JavaScript expression + */ + toJS(context, tableid, defcols) { + + if (this.expression.reduced) { + return 'true'; + } + return this.expression.toJS(context, tableid, defcols); + } + + /** + Compile AST to JavaScript expression + @param {string} context Context string, e.g. 'p','g', or 'x' + @param {string} tableid Default table name + @param {object} defcols Default columns dictionary + @return {string} JavaScript expression + */ + compile(context, tableid, defcols) { + + if (this.reduced) { + return returnTrue(); + } + return new Function('p', 'var y;return ' + this.toJS(context, tableid, defcols)); + } + } + + class JavaScript { + constructor(params) { + assign(this, params); + } + + toString() { + var s = '``' + this.value + '``'; + return s; + } + + toJS() { + return '(' + this.value + ')'; + } + + execute(databaseid, params, cb) { + var res = 1; + var expr = new Function('params,alasql,p', this.value); + expr(params, alasql); + if (cb) { + res = cb(res); + } + return res; + } + } + + class Literal { + constructor(params) { + assign(this, params); + } + + toString() { + var s = this.value; + if (this.value1) { + s = this.value1 + '.' + s; + } + // else s = tableid+'.'+s; + return s; + } + } + + class Join { + constructor(params) { + assign(this, params); + } + + toString() { + var s = ' '; + if (this.joinmode) { + s += this.joinmode + ' '; + } + s += 'JOIN ' + this.table.toString(); + return s; + } + } + + class Table { + constructor(params) { + assign(this, params); + } + + toString() { + var s = this.tableid; + // if(this.joinmode) + if (this.databaseid) { + s = this.databaseid + '.' + s; + } + return s; + } + } + + class View { + constructor(params) { + assign(this, params); + } + + toString() { + var s = this.viewid; + // if(this.joinmode) + if (this.databaseid) { + s = this.databaseid + '.' + s; + } + return s; + } + } + + class Op { + constructor(params) { + assign(this, params); + } + + toString() { + if (this.op === 'IN' || this.op === 'NOT IN') { + return this.left.toString() + ' ' + this.op + ' (' + this.right.toString() + ')'; + } + if (this.allsome) { + return ( + this.left.toString() + + ' ' + + this.op + + ' ' + + this.allsome + + ' (' + + this.right.toString() + + ')' + ); + } + if (this.op === '->' || this.op === '!') { + var s = this.left.toString() + this.op; + + if (typeof this.right !== 'string' && typeof this.right !== 'number') { + s += '('; + } + + s += this.right.toString(); + + if (typeof this.right !== 'string' && typeof this.right !== 'number') { + s += ')'; + } + + return s; + } + if (this.op === 'BETWEEN' || this.op === 'NOT BETWEEN') { + var s = + this.left.toString() + + ' ' + + this.op + + ' ' + + this.right1.toString() + + ' AND ' + + this.right2.toString(); + + return s; + } + + return ( + this.left.toString() + + ' ' + + this.op + + ' ' + + (this.allsome ? this.allsome + ' ' : '') + + this.right.toString() + ); + } + + findAggregator(query) { + if (this.left && this.left.findAggregator) { + this.left.findAggregator(query); + } + // Do not go in > ALL + if (this.right && this.right.findAggregator && !this.allsome) { + this.right.findAggregator(query); + } + } + + toType(tableid) { + if (['-', '*', '/', '%', '^'].indexOf(this.op) > -1) { + return 'number'; + } + + if (['||'].indexOf(this.op) > -1) { + return 'string'; + } + + if (this.op === '+') { + if (this.left.toType(tableid) === 'string' || this.right.toType(tableid) === 'string') { + return 'string'; + } + if (this.left.toType(tableid) === 'number' || this.right.toType(tableid) === 'number') { + return 'number'; + } + } + + if ( + [ + 'AND', + 'OR', + 'NOT', + '=', + '==', + '===', + '!=', + '!==', + '!===', + '>', + '>=', + '<', + '<=', + 'IN', + 'NOT IN', + 'LIKE', + 'NOT LIKE', + 'REGEXP', + 'GLOB', + ].indexOf(this.op) > -1 + ) { + return 'boolean'; + } + + if ( + this.op === 'BETWEEN' || + this.op === 'NOT BETWEEN' || + this.op === 'IS NULL' || + this.op === 'IS NOT NULL' + ) { + return 'boolean'; + } + + if (this.allsome) { + return 'boolean'; + } + + if (!this.op) { + return this.left.toType(); + } + + return 'unknown'; + } + + toJS(context, tableid, defcols) { + + var s; + var refs = []; + var op = this.op; + var _this = this; + var ref = function (expr) { + if (expr.toJS) { + expr = expr.toJS(context, tableid, defcols); + } + var i = refs.push(expr) - 1; + return 'y[' + i + ']'; + }; + var leftJS = function () { + return ref(_this.left); + }; + var rightJS = function () { + return ref(_this.right); + }; + + if (this.op === '=') { + op = '==='; + } else if (this.op === '<>') { + op = '!='; + } else if (this.op === 'OR') { + op = '||'; + } + + // Arrow operator + if (this.op === '->') { + // Expression to prevent error if object is empty (#344) + var ljs = '(' + leftJS() + '||{})'; + + if (typeof this.right === 'string') { + s = ljs + '["' + escapeq(this.right) + '"]'; + } else if (typeof this.right === 'number') { + s = ljs + '[' + this.right + ']'; + } else if (this.right instanceof yy.FuncValue) { + var ss = []; + if (!(!this.right.args || 0 === this.right.args.length)) { + var ss = this.right.args.map(ref); + } + s = '' + ljs + '[' + JSON.stringify(this.right.funcid) + '](' + ss.join(',') + ')'; + } else { + s = '' + ljs + '[' + rightJS() + ']'; + } + } + + if (this.op === '!') { + if (typeof this.right === 'string') { + s = '' + 'alasql.databases[alasql.useid].objects[' + leftJS() + ']["' + this.right + '"]'; + } + // TODO - add other cases + } + + if (this.op === 'IS') { + const leftOperand = leftJS(); + const rightOperand = rightJS(); + if ( + this.right instanceof yy.NullValue || + (this.right.op === 'NOT' && this.right.right instanceof yy.NullValue) + ) { + s = `((${leftOperand} == null) === (${rightOperand} == null))`; // == null cant be === + } else { + s = `((${leftOperand} == ${rightOperand}) || (${leftOperand} < 0 && true == ${rightOperand}))`; + } + } + + if (this.op === '==') { + s = '' + 'alasql.utils.deepEqual(' + leftJS() + ',' + rightJS() + ')'; + } + + if (this.op === '===' || this.op === '!===') { + s = + '' + + '(' + + (this.op === '!===' ? '!' : '') + + '(' + + '(' + + leftJS() + + ').valueOf()' + + '===' + + '(' + + rightJS() + + ').valueOf()' + + ')' + + ')'; + } + + if (this.op === '!==') { + s = '' + '(!alasql.utils.deepEqual(' + leftJS() + ',' + rightJS() + '))'; + } + if (this.op === '||') { + s = '' + "(''+(" + leftJS() + "||'')+(" + rightJS() + '||""))'; + } + if (this.op === 'LIKE' || this.op === 'NOT LIKE') { + var s = + '(' + + (this.op === 'NOT LIKE' ? '!' : '') + + 'alasql.utils.like(' + + rightJS() + + ',' + + leftJS(); + if (this.escape) { + s += ',' + ref(this.escape); + } + s += '))'; + } + if (this.op === 'REGEXP') { + s = 'alasql.stdfn.REGEXP_LIKE(' + leftJS() + ',' + rightJS() + ')'; + } + if (this.op === 'GLOB') { + s = 'alasql.utils.glob(' + leftJS() + ',' + rightJS() + ')'; + } + + if (this.op === 'BETWEEN' || this.op === 'NOT BETWEEN') { + var left = leftJS(); + s = + '' + + '(' + + (this.op === 'NOT BETWEEN' ? '!' : '') + + '(' + + '(' + + ref(this.right1) + + '<=' + + left + + ') && (' + + left + + '<=' + + ref(this.right2) + + ')' + + ')' + + ')'; + } + + if (this.op === 'IN') { + if (this.right instanceof yy.Select) { + s = '('; + // s += 'this.query.queriesdata['+this.queriesidx+']'; + // s += 'alasql.utils.flatArray(this.query.queriesfn['+(this.queriesidx)+'](params,null,context))'; + s += + 'alasql.utils.flatArray(this.queriesfn[' + + this.queriesidx + + '](params,null,' + + context + + '))'; + s += '.indexOf('; + s += 'alasql.utils.getValueOf(' + leftJS() + '))>-1)'; + } else if (Array.isArray(this.right)) { + if (!alasql.options.cache || this.right.filter((value) => value instanceof yy.ParamValue).length > 0) { + // When not using cache, or when the array contains parameters, we need to re-create the Set + // leverage JS Set, which is faster for lookups than arrays + s = + '(new Set([' + + this.right.map(ref).join(',') + + ']).has(alasql.utils.getValueOf(' + + leftJS() + + ')))'; + } else { + // Use a cache to not re-create the Set on every identitical query + if (!alasql.sets) { + alasql.sets = {}; + } + const allValues = this.right.map((value) => value.value); + const allValuesStr = allValues.join(","); + if (!alasql.sets[allValuesStr]) { + // leverage JS Set, which is faster for lookups than arrays + alasql.sets[allValuesStr] = new Set(allValues); + } + s = 'alasql.sets["' + allValuesStr + '"].has(alasql.utils.getValueOf(' + leftJS() + '))'; + } + } else { + s = '(' + rightJS() + '.indexOf(' + leftJS() + ')>-1)'; + + // } else { + // throw new Error('Wrong IN operator without SELECT part'); + } + } + + if (this.op === 'NOT IN') { + if (this.right instanceof yy.Select) { + s = '('; + s += 'alasql.utils.flatArray(this.queriesfn[' + this.queriesidx + '](params,null,p))'; + s += '.indexOf('; + s += 'alasql.utils.getValueOf(' + leftJS() + '))<0)'; + } else if (Array.isArray(this.right)) { + if (!alasql.options.cache || this.right.filter((value) => value instanceof yy.ParamValue).length > 0) { + // When not using cache, or when the array contains parameters, we need to re-create the Set + // leverage JS Set, which is faster for lookups than arrays + s = + '(!(new Set([' + + this.right.map(ref).join(',') + + ']).has(alasql.utils.getValueOf(' + + leftJS() + + '))))'; + } else { + // Use a cache to not re-create the Set on every identitical query + if (!alasql.sets) { + alasql.sets = {}; + } + const allValues = this.right.map((value) => value.value); + const allValuesStr = allValues.join(","); + if (!alasql.sets[allValuesStr]) { + // leverage JS Set, which is faster for lookups than arrays + alasql.sets[allValuesStr] = new Set(allValues); + } + s = '!alasql.sets["' + allValuesStr + '"].has(alasql.utils.getValueOf(' + leftJS() + '))'; + } + } else { + s = '(' + rightJS() + '.indexOf('; + s += leftJS() + ')==-1)'; + + // throw new Error('Wrong NOT IN operator without SELECT part'); + } + } + + if (this.allsome === 'ALL') { + var s; + if (this.right instanceof yy.Select) { + s = + 'alasql.utils.flatArray(this.query.queriesfn[' + this.queriesidx + '](params,null,p))'; + + s += '.every(function(b){return ('; + s += leftJS() + ')' + op + 'b})'; + } else if (Array.isArray(this.right)) { + s = + '' + + (this.right.length == 1 + ? ref(this.right[0]) + : '[' + this.right.map(ref).join(',') + ']'); + s += '.every(function(b){return ('; + s += leftJS() + ')' + op + 'b})'; + } else { + throw new Error('NOT IN operator without SELECT'); + } + } + + if (this.allsome === 'SOME' || this.allsome === 'ANY') { + var s; + if (this.right instanceof yy.Select) { + s = + 'alasql.utils.flatArray(this.query.queriesfn[' + this.queriesidx + '](params,null,p))'; + s += '.some(function(b){return ('; + s += leftJS() + ')' + op + 'b})'; + } else if (Array.isArray(this.right)) { + s = + '' + + (this.right.length == 1 + ? ref(this.right[0]) + : '[' + this.right.map(ref).join(',') + ']'); + s += '.some(function(b){return ('; + s += leftJS() + ')' + op + 'b})'; + } else { + throw new Error('SOME/ANY operator without SELECT'); + } + } + + // Special case for AND optimization (if reduced) + if (this.op === 'AND') { + if (this.left.reduced) { + if (this.right.reduced) { + return 'true'; + } else { + s = rightJS(); + } + } else if (this.right.reduced) { + s = leftJS(); + } + + // Otherwise process as regular operation (see below) + op = '&&'; + } + + // if(this.op === '^') { + // // return 'Math.pow(' + // // + leftJS() + // // + ',' + // // + rightJS() + // // + ')'; + // } + var expr = s || '(' + leftJS() + op + rightJS() + ')'; + + var declareRefs = 'y=[(' + refs.join('), (') + ')]'; + if (op === '&&' || op === '||' || op === 'IS' || op === 'IS NULL' || op === 'IS NOT NULL') { + return '(' + declareRefs + ', ' + expr + ')'; + } + + return ( + '(' + declareRefs + ', ' + 'y.some(function(e){return e == null}) ? void 0 : ' + expr + ')' + ); + } + } + + class VarValue { + constructor(params) { + assign(this, params); + } + + toString() { + return '@' + this.variable; + } + + toType() { + return 'unknown'; + } + + toJS() { + return "alasql.vars['" + escapeq(this.variable) + "']"; + } + } + + class NumValue { + constructor(params) { + assign(this, params); + } + + toString() { + return this.value.toString(); + } + + toType() { + return 'number'; + } + + toJS() { + return '' + this.value; + } + } + + class StringValue { + constructor(params) { + assign(this, params); + } + + toString() { + return "'" + this.value.toString() + "'"; + } + + toType() { + return 'string'; + } + + toJS() { + return "'" + escapeq(this.value) + "'"; + } + } + + class DomainValueValue { + constructor(params) { + assign(this, params); + } + + toString() { + return 'VALUE'; + } + + toType() { + return 'object'; + } + + toJS(context, tableid, defcols) { + + // return "'"+doubleqq(this.value)+"'"; + return context; + } + } + + class ArrayValue { + constructor(params) { + assign(this, params); + } + + toString() { + return 'ARRAY[]'; + } + + toType() { + return 'object'; + } + + toJS(context, tableid, defcols) { + return ( + '[(' + + this.value + .map(function (el) { + return el.toJS(context, tableid, defcols); + }) + .join('), (') + + ')]' + ); + } + } + + class LogicValue { + constructor(params) { + assign(this, params); + } + + toString() { + return this.value ? 'TRUE' : 'FALSE'; + } + + toType() { + return 'boolean'; + } + + toJS() { + return this.value ? 'true' : 'false'; + } + } + + class NullValue { + constructor(params) { + assign(this, params); + } + + toString() { + return 'NULL'; + } + + toJS() { + return 'undefined'; + } + } + + class ParamValue { + constructor(params) { + assign(this, params); + } + + toString() { + return '$' + this.param; + } + + toJS() { + if (typeof this.param === 'string') { + return "params['" + this.param + "']"; + } + + return 'params[' + this.param + ']'; + } + } + + class UniOp { + constructor(params) { + assign(this, params); + } + + toString() { + var s; + const { op, right } = this; + const res = right.toString(); + + if (op === '~') { + s = op + res; + } + if (op === '-') { + s = op + res; + } + if (op === '+') { + s = op + res; + } + if (op === '#') { + s = op + res; + } + if (op === 'NOT') { + s = op + '(' + res + ')'; + } + if (op === null) { + s = '(' + res + ')'; + } + if (!s) { + s = '(' + res + ')'; + } + return s; + } + + findAggregator(query) { + if (this.right.findAggregator) { + this.right.findAggregator(query); + } + } + + toType() { + if (this.op === '-') { + return 'number'; + } + + if (this.op === '+') { + return 'number'; + } + + if (this.op === 'NOT') { + return 'boolean'; + } + + // Todo: implement default case + } + + toJS(context, tableid, defcols) { + if (this.op === '~') { + return '(~(' + this.right.toJS(context, tableid, defcols) + '))'; + } + + if (this.op === '-') { + return '(-(' + this.right.toJS(context, tableid, defcols) + '))'; + } + + if (this.op === '+') { + return '(' + this.right.toJS(context, tableid, defcols) + ')'; + } + + if (this.op === 'NOT') { + return '!(' + this.right.toJS(context, tableid, defcols) + ')'; + } + + if (this.op === '#') { + if (this.right instanceof Column) { + return "(alasql.databases[alasql.useid].objects['" + this.right.columnid + "'])"; + } else { + return ( + '(alasql.databases[alasql.useid].objects[' + + this.right.toJS(context, tableid, defcols) + + '])' + ); + } + } + + // Please avoid === here + if (this.op == null) { + // jshint ignore:line + return '(' + this.right.toJS(context, tableid, defcols) + ')'; + } + + // Todo: implement default case. + } + } + + class Column { + constructor(params) { + assign(this, params); + } + + toString() { + var s; + if (this.columnid == +this.columnid) { + s = '[' + this.columnid + ']'; + } else { + s = this.columnid; + } + if (this.tableid) { + if (+this.columnid === this.columnid) { + s = this.tableid + s; + } else { + s = this.tableid + '.' + s; + } + if (this.databaseid) { + s = this.databaseid + '.' + s; + } + } + return s; + } + + toJS(context, tableid, defcols) { + var s = ''; + if (!this.tableid && tableid === '' && !defcols) { + if (this.columnid !== '_') { + s = context + "['" + this.columnid + "']"; + } else { + if (context === 'g') { + s = "g['_']"; + } else { + s = context; + } + } + } else { + if (context === 'g') { + s = "g['" + this.nick + "']"; + } else if (this.tableid) { + if (this.columnid !== '_') { + s = context + "['" + this.tableid + "']['" + this.columnid + "']"; + } else { + if (context === 'g') { + s = "g['_']"; + } else { + s = context + "['" + this.tableid + "']"; + } + } + } else if (defcols) { + var tbid = defcols[this.columnid]; + if (tbid === '-') { + throw new Error( + 'Cannot resolve column "' + this.columnid + '" because it exists in two source tables' + ); + } else if (tbid) { + if (this.columnid !== '_') { + s = context + "['" + tbid + "']['" + this.columnid + "']"; + } else { + s = context + "['" + tbid + "']"; + } + + } else { + if (this.columnid !== '_') { + s = context + "['" + (this.tableid || tableid) + "']['" + this.columnid + "']"; + } else { + s = context + "['" + (this.tableid || tableid) + "']"; + } + } + } else if (tableid === -1) { + s = context + "['" + this.columnid + "']"; + } else { + if (this.columnid !== '_') { + s = context + "['" + (this.tableid || tableid) + "']['" + this.columnid + "']"; + } else { + s = context + "['" + (this.tableid || tableid) + "']"; + } + } + } + return s; + } + } + + class AggrValue { + constructor(params) { + assign(this, params); + } + + toString() { + var s = ''; + if (this.aggregatorid === 'REDUCE') { + s += this.funcid.replace(re_invalidFnNameChars, '') + '('; + } else { + s += this.aggregatorid + '('; + } + + if (this.distinct) { + s += 'DISTINCT '; + } + + if (this.expression) { + s += this.expression.toString(); + } + + s += ')'; + + if (this.over) { + s += ' ' + this.over.toString(); + } + return s; + } + + findAggregator(query) { + var colas = escapeq(this.toString()) + ':' + query.selectGroup.length; + var found = false; + if (!found) { + if (!this.nick) { + this.nick = colas; + var found = false; + for (var i = 0; i < query.removeKeys.length; i++) { + if (query.removeKeys[i] === colas) { + found = true; + break; + } + } + if (!found) { + query.removeKeys.push(colas); + } + } + query.selectGroup.push(this); + } + return; + } + + toType() { + if ( + ['SUM', 'COUNT', 'AVG', 'MIN', 'MAX', 'AGGR', 'VAR', 'STDDEV', 'TOTAL'].indexOf( + this.aggregatorid + ) > -1 + ) { + return 'number'; + } + + if (['ARRAY'].indexOf(this.aggregatorid) > -1) { + return 'array'; + } + + if (['FIRST', 'LAST'].indexOf(this.aggregatorid) > -1) { + return this.expression.toType(); + } + + return this.expression.toType(); + } + + toJS() { + var colas = this.nick; + if (colas === undefined) { + colas = escapeq(this.toString()); + } + return "g['" + colas + "']"; + } + } + + class OrderExpression { + constructor(params) { + assign(this, params); + } + } + + OrderExpression.prototype.toString = Expression.prototype.toString; + + class GroupExpression { + constructor(params) { + assign(this, params); + } + + toString() { + return this.type + '(' + this.group.toString() + ')'; + } + } + + assign(yy, { + AggrValue, + ArrayValue, + Column, + DomainValueValue, + Expression, + ExpressionStatement, + GroupExpression, + JavaScript, + Join, + Literal, + LogicValue, + NullValue, + NumValue, + Op, + OrderExpression, + ParamValue, + StringValue, + Table, + UniOp, + VarValue, + View, + }); + } + // Alasql Linq library + + yy.FromData = function (params) { + return yy.extend(this, params); + }; + yy.FromData.prototype.toString = function () { + if (this.data) return 'DATA(' + ((Math.random() * 10e15) | 0) + ')'; + else return '?'; + }; + yy.FromData.prototype.toJS = function () { + + }; + + yy.Select.prototype.exec = function (params, cb) { + if (this.preparams) params = this.preparams.concat(params); + + var databaseid = alasql.useid; + var db = alasql.databases[databaseid]; + var sql = this.toString(); + var hh = hash(sql); + + var statement = this.compile(databaseid); + if (!statement) return; + statement.sql = sql; + statement.dbversion = db.dbversion; + + // Secure sqlCache size + if (db.sqlCacheSize > alasql.MAXSQLCACHESIZE) { + db.resetSqlCache(); + } + db.sqlCacheSize++; + db.sqlCache[hh] = statement; + var res = (alasql.res = statement(params, cb)); + return res; + }; + + yy.Select.prototype.Select = function () { + var self = this; + var args = []; + if (arguments.length > 1) { + args = Array.prototype.slice.call(arguments); + } else if (arguments.length == 1) { + if (Array.isArray(arguments[0])) { + args = arguments[0]; + } else { + args = [arguments[0]]; + } + } else { + throw new Error('Wrong number of arguments of Select() function'); + } + + self.columns = []; + + args.forEach(function (arg) { + if (typeof arg == 'string') { + self.columns.push(new yy.Column({columnid: arg})); + } else if (typeof arg == 'function') { + var pari = 0; + if (self.preparams) { + pari = self.preparams.length; + } else { + self.preparams = []; + } + self.preparams.push(arg); + self.columns.push(new yy.Column({columnid: '*', func: arg, param: pari})); + } else ; + }); + + return self; + }; + + yy.Select.prototype.From = function (tableid) { + var self = this; + if (!self.from) self.from = []; + if (Array.isArray(tableid)) { + var pari = 0; + if (self.preparams) { + pari = self.preparams.length; + } else { + self.preparams = []; + } + self.preparams.push(tableid); + self.from.push(new yy.ParamValue({param: pari})); + } else if (typeof tableid == 'string') { + self.from.push(new yy.Table({tableid: tableid})); + } else { + throw new Error('Unknown arguments in From() function'); + } + return self; + }; + + yy.Select.prototype.OrderBy = function () { + var self = this; + var args = []; + + self.order = []; + + if (arguments.length == 0) { + // self.order.push(new yy.OrderExpression({expression: new yy.Column({columnid:"_"}), direction:'ASC'})); + args = ['_']; + } else if (arguments.length > 1) { + args = Array.prototype.slice.call(arguments); + } else if (arguments.length == 1) { + if (Array.isArray(arguments[0])) { + args = arguments[0]; + } else { + args = [arguments[0]]; + } + } else { + throw new Error('Wrong number of arguments of Select() function'); + } + + if (args.length > 0) { + args.forEach(function (arg) { + var expr = new yy.Column({columnid: arg}); + if (typeof arg == 'function') { + expr = arg; + } + self.order.push(new yy.OrderExpression({expression: expr, direction: 'ASC'})); + }); + } + return self; + }; + + yy.Select.prototype.Top = function (topnum) { + var self = this; + self.top = new yy.NumValue({value: topnum}); + return self; + }; + + yy.Select.prototype.GroupBy = function () { + var self = this; + var args = []; + + if (arguments.length > 1) { + args = Array.prototype.slice.call(arguments); + } else if (arguments.length == 1) { + if (Array.isArray(arguments[0])) { + args = arguments[0]; + } else { + args = [arguments[0]]; + } + } else { + throw new Error('Wrong number of arguments of Select() function'); + } + + self.group = []; + + args.forEach(function (arg) { + var expr = new yy.Column({columnid: arg}); + self.group.push(expr); + }); + + return self; + }; + + yy.Select.prototype.Where = function (expr) { + var self = this; + if (typeof expr == 'function') { + self.where = expr; + } + return self; + }; + /* + // + // Functions for Alasql.js + // Date: 03.11.2014 + // (c) 2014, Andrey Gershun + // + */ + + yy.FuncValue = function (params) { + return Object.assign(this, params); + }; + + let re_invalidFnNameChars = /[^0-9A-Z_$]+/i; + yy.FuncValue.prototype.toString = function () { + let s = ''; + + if (alasql.fn[this.funcid]) s += this.funcid; + else if (alasql.aggr[this.funcid]) s += this.funcid; + else if (alasql.stdlib[this.funcid.toUpperCase()] || alasql.stdfn[this.funcid.toUpperCase()]) + s += this.funcid.toUpperCase().replace(re_invalidFnNameChars, ''); + + if (this.funcid !== 'CURRENT_TIMESTAMP') { + s += '('; + if (this.args && this.args.length > 0) { + s += this.args + .map(function (arg) { + return arg.toString(); + }) + .join(','); + } + s += ')'; + } + return s; + }; + + yy.FuncValue.prototype.execute = function (databaseid, params, cb) { + let res = 1; + alasql.precompile(this, databaseid, params); // Precompile queries + + let expr = new Function('params,alasql', 'var y;return ' + this.toJS('', '', null)); + expr(params, alasql); + if (cb) res = cb(res); + return res; + }; + + yy.FuncValue.prototype.findAggregator = function (query) { + if (this.args && this.args.length > 0) { + this.args.forEach(function (arg) { + if (arg.findAggregator) arg.findAggregator(query); + }); + } + }; + + yy.FuncValue.prototype.toJS = function (context, tableid, defcols) { + var s = ''; + var funcid = this.funcid; + // IF this is standard compile functions + if (!alasql.fn[funcid] && alasql.stdlib[funcid.toUpperCase()]) { + if (this.args && this.args.length > 0) { + s += alasql.stdlib[funcid.toUpperCase()].apply( + this, + this.args.map(function (arg) { + return arg.toJS(context, tableid); + }) + ); + } else { + s += alasql.stdlib[funcid.toUpperCase()](); + } + } else if (!alasql.fn[funcid] && alasql.stdfn[funcid.toUpperCase()]) { + if (this.newid) s += 'new '; + s += 'alasql.stdfn[' + JSON.stringify(this.funcid.toUpperCase()) + ']('; + // if(this.args) s += this.args.toJS(context, tableid); + if (this.args && this.args.length > 0) { + s += this.args + .map(function (arg) { + return arg.toJS(context, tableid, defcols); + }) + .join(','); + } + s += ')'; + } else { + // This is user-defined run-time function + // TODO arguments!!! + // var s = ''; + if (this.newid) s += 'new '; + s += 'alasql.fn[' + JSON.stringify(this.funcid) + ']('; + // if(this.args) s += this.args.toJS(context, tableid); + if (this.args && this.args.length > 0) { + s += this.args + .map(function (arg) { + return arg.toJS(context, tableid, defcols); + }) + .join(','); + } + s += ')'; + } + + return s; + }; + + var stdlib = (alasql.stdlib = {}); + var stdfn = (alasql.stdfn = {}); + + stdlib.ABS = function (a) { + return 'Math.abs(' + a + ')'; + }; + stdlib.CLONEDEEP = function (a) { + return 'alasql.utils.cloneDeep(' + a + ')'; + }; + + stdfn.CONCAT = function () { + return Array.prototype.slice.call(arguments).join(''); + }; + stdlib.EXP = function (a) { + return 'Math.pow(Math.E,' + a + ')'; + }; + + stdlib.IIF = function (a, b, c) { + if (arguments.length === 3) { + return '((' + a + ')?(' + b + '):(' + c + '))'; + } else { + throw new Error('Number of arguments of IFF is not equals to 3'); + } + }; + stdlib.IFNULL = function (a, b) { + return '((typeof ' + a + ' ==="undefined" || null === ' + a + ')?' + b + ':' + a + ')'; + }; + stdlib.INSTR = function (s, p) { + return '((' + s + ').indexOf(' + p + ')+1)'; + }; + + //stdlib.LEN = stdlib.LENGTH = function(s) {return '('+s+'+"").length';}; + + stdlib.LEN = stdlib.LENGTH = function (s) { + return und(s, 'y.length'); + }; + //stdlib.LENGTH = function(s) {return '('+s+').length'}; + + stdlib.LOWER = stdlib.LCASE = function (s) { + return und(s, 'String(y).toLowerCase()'); + }; + //stdlib.LCASE = function(s) {return '('+s+').toLowerCase()';} + + // Returns a character expression after it removes leading blanks. + // see https://docs.microsoft.com/en-us/sql/t-sql/functions/ltrim-transact-sql + stdlib.LTRIM = function (s) { + return und(s, 'y.replace(/^[ ]+/,"")'); + }; + + // Returns a character string after truncating all trailing spaces. + // see https://docs.microsoft.com/en-us/sql/t-sql/functions/rtrim-transact-sql + stdlib.RTRIM = function (s) { + return und(s, 'y.replace(/[ ]+$/,"")'); + }; + + stdlib.MAX = stdlib.GREATEST = function () { + return ( + '[' + + Array.prototype.join.call(arguments, ',') + + '].reduce(function (a, b) { return a > b ? a : b; })' + ); + }; + + stdlib.MIN = stdlib.LEAST = function () { + return ( + '[' + + Array.prototype.join.call(arguments, ',') + + '].reduce(function (a, b) { return a < b ? a : b; })' + ); + }; + + stdlib.SUBSTRING = + stdlib.SUBSTR = + stdlib.MID = + function (a, b, c) { + if (arguments.length == 2) return und(a, 'y.substr(' + b + '-1)'); + else if (arguments.length == 3) return und(a, 'y.substr(' + b + '-1,' + c + ')'); + }; + + stdfn.REGEXP_LIKE = function (a, b, c) { + + return (a || '').search(RegExp(b, c)) > -1; + }; + + // Here we uses undefined instead of null + stdlib.ISNULL = stdlib.NULLIF = function (a, b) { + return '(' + a + '==' + b + '?undefined:' + a + ')'; + }; + + stdlib.POWER = function (a, b) { + return 'Math.pow(' + a + ',' + b + ')'; + }; + + stdlib.RANDOM = function (r) { + if (arguments.length == 0) { + return 'Math.random()'; + } else { + return '(Math.random()*(' + r + ')|0)'; + } + }; + stdlib.ROUND = function (s, d) { + if (arguments.length == 2) { + return 'Math.round((' + s + ')*Math.pow(10,(' + d + ')))/Math.pow(10,(' + d + '))'; + } else { + return 'Math.round(' + s + ')'; + } + }; + stdlib.CEIL = stdlib.CEILING = function (s) { + return 'Math.ceil(' + s + ')'; + }; + stdlib.FLOOR = function (s) { + return 'Math.floor(' + s + ')'; + }; + + stdlib.ROWNUM = function () { + return '1'; + }; + stdlib.ROW_NUMBER = function () { + return '1'; + }; + + stdlib.SQRT = function (s) { + return 'Math.sqrt(' + s + ')'; + }; + + stdlib.TRIM = function (s) { + return und(s, 'y.trim()'); + }; + + stdlib.UPPER = stdlib.UCASE = function (s) { + return und(s, 'String(y).toUpperCase()'); + }; + + // Concatination of strings + stdfn.CONCAT_WS = function () { + var args = Array.prototype.slice.call(arguments); + args = args.filter(x => !(x === null || typeof x === 'undefined')); + return args.slice(1, args.length).join(args[0] || ''); + }; + + //stdlib.UCASE = function(s) {return '('+s+').toUpperCase()';} + //REPLACE + // RTRIM + // SUBSTR + // TRIM + //REPLACE + // RTRIM + // SUBSTR + // TRIM + + // Aggregator for joining strings + alasql.aggr.GROUP_CONCAT = function (v, s, stage) { + if (stage === 1) { + return '' + v; + } else if (stage === 2) { + s += ',' + v; + return s; + } + return s; + }; + + alasql.aggr.median = alasql.aggr.MEDIAN = function (v, s, stage) { + if (stage === 2) { + if (v !== null) { + s.push(v); + } + return s; + } + + if (stage === 1) { + if (v === null) { + return []; + } + return [v]; + } + + if (!s.length) { + return null; + } + + var r = s.sort((a, b) => { + if (a > b) return 1; + if (a < b) return -1; + return 0; + }); + + var middle = (r.length + 1) / 2; + var middleFloor = middle | 0; + var el = r[middleFloor - 1]; + + if (middle === middleFloor || (typeof el !== 'number' && !(el instanceof Number))) { + return el; + } else { + return (el + r[middleFloor]) / 2; + } + }; + + alasql.aggr.QUART = function (v, s, stage, nth) { + //Quartile (first quartile per default or input param) + if (stage === 2) { + if (v !== null) { + s.push(v); + } + return s; + } else if (stage === 1) { + if (v === null) { + return []; + } + return [v]; + } else { + if (!s.length) { + return s; + } + + nth = !nth ? 1 : nth; + var r = s.sort(function (a, b) { + if (a === b) { + return 0; + } + if (a > b) { + return 1; + } + return -1; + }); + var p = (nth * (r.length + 1)) / 4; + if (Number.isInteger(p)) { + return r[p - 1]; //Integer value + } + return r[Math.floor(p)]; //Math.ceil -1 or Math.floor + } + }; + + alasql.aggr.QUART2 = function (v, s, stage) { + //Second Quartile + return alasql.aggr.QUART(v, s, stage, 2); + }; + alasql.aggr.QUART3 = function (v, s, stage) { + //Third Quartile + return alasql.aggr.QUART(v, s, stage, 3); + }; + + // Standard deviation + alasql.aggr.VAR = function (v, s, stage) { + if (stage === 1) { + if (v === null) { + return {arr: [], sum: 0}; + } + return {arr: [v], sum: v}; + } else if (stage === 2) { + if (v === null) { + return s; + } + s.arr.push(v); + s.sum += v; + return s; + } else { + var N = s.arr.length; + var avg = s.sum / N; + var std = 0; + for (var i = 0; i < N; i++) { + std += (s.arr[i] - avg) * (s.arr[i] - avg); + } + std = std / (N - 1); + return std; + } + }; + + alasql.aggr.STDEV = function (v, s, stage) { + if (stage === 1 || stage === 2) { + return alasql.aggr.VAR(v, s, stage); + } else { + return Math.sqrt(alasql.aggr.VAR(v, s, stage)); + } + }; + + // Standard deviation + // alasql.aggr.VARP = function(v,s,acc){ + + // }; + + alasql.aggr.VARP = function (v, s, stage) { + if (stage == 1) { + return {arr: [v], sum: v}; + } else if (stage == 2) { + s.arr.push(v); + s.sum += v; + return s; + } else { + var N = s.arr.length; + var avg = s.sum / N; + var std = 0; + for (var i = 0; i < N; i++) { + std += (s.arr[i] - avg) * (s.arr[i] - avg); + } + std = std / N; + return std; + } + }; + + alasql.aggr.STD = + alasql.aggr.STDDEV = + alasql.aggr.STDEVP = + function (v, s, stage) { + if (stage == 1 || stage == 2) { + return alasql.aggr.VARP(v, s, stage); + } else { + return Math.sqrt(alasql.aggr.VARP(v, s, stage)); + } + }; + + alasql._aggrOriginal = alasql.aggr; + alasql.aggr = {}; + Object.keys(alasql._aggrOriginal).forEach(function (k) { + alasql.aggr[k] = function (v, s, stage) { + if (stage === 3 && typeof s === 'undefined') return undefined; + return alasql._aggrOriginal[k].apply(null, arguments); + }; + }); + + // String functions + stdfn.REPLACE = function (target, pattern, replacement) { + return (target || '').split(pattern).join(replacement); + }; + + // This array is required for fast GUID generation + var lut = []; + for (var i = 0; i < 256; i++) { + lut[i] = (i < 16 ? '0' : '') + i.toString(16); + } + + stdfn.NEWID = + stdfn.UUID = + stdfn.GEN_RANDOM_UUID = + function () { + var d0 = (Math.random() * 0xffffffff) | 0; + var d1 = (Math.random() * 0xffffffff) | 0; + var d2 = (Math.random() * 0xffffffff) | 0; + var d3 = (Math.random() * 0xffffffff) | 0; + return ( + lut[d0 & 0xff] + + lut[(d0 >> 8) & 0xff] + + lut[(d0 >> 16) & 0xff] + + lut[(d0 >> 24) & 0xff] + + '-' + + lut[d1 & 0xff] + + lut[(d1 >> 8) & 0xff] + + '-' + + lut[((d1 >> 16) & 0x0f) | 0x40] + + lut[(d1 >> 24) & 0xff] + + '-' + + lut[(d2 & 0x3f) | 0x80] + + lut[(d2 >> 8) & 0xff] + + '-' + + lut[(d2 >> 16) & 0xff] + + lut[(d2 >> 24) & 0xff] + + lut[d3 & 0xff] + + lut[(d3 >> 8) & 0xff] + + lut[(d3 >> 16) & 0xff] + + lut[(d3 >> 24) & 0xff] + ); + }; + /* + // + // CASE for Alasql.js + // Date: 03.11.2014 + // (c) 2014, Andrey Gershun + // + */ + + yy.CaseValue = function (params) { + return Object.assign(this, params); + }; + yy.CaseValue.prototype.toString = function () { + var s = 'CASE '; + if (this.expression) s += this.expression.toString(); + if (this.whens) { + s += this.whens + .map(function (w) { + return ' WHEN ' + w.when.toString() + ' THEN ' + w.then.toString(); + }) + .join(); + } + s += ' END'; + return s; + }; + + yy.CaseValue.prototype.findAggregator = function (query) { + + if (this.expression && this.expression.findAggregator) this.expression.findAggregator(query); + if (this.whens && this.whens.length > 0) { + this.whens.forEach(function (w) { + if (w.when.findAggregator) w.when.findAggregator(query); + if (w.then.findAggregator) w.then.findAggregator(query); + }); + } + if (this.elses && this.elses.findAggregator) this.elses.findAggregator(query); + }; + + yy.CaseValue.prototype.toJS = function (context, tableid, defcols) { + var s = '((function(' + context + ',params,alasql){var y,r;'; + if (this.expression) { + // this.expression.toJS(context, tableid) + s += 'v=' + this.expression.toJS(context, tableid, defcols) + ';'; + s += (this.whens || []) + .map(function (w) { + return ( + ' if(v==' + + w.when.toJS(context, tableid, defcols) + + ') {r=' + + w.then.toJS(context, tableid, defcols) + + '}' + ); + }) + .join(' else '); + if (this.elses) s += ' else {r=' + this.elses.toJS(context, tableid, defcols) + '}'; + } else { + s += (this.whens || []) + .map(function (w) { + return ( + ' if(' + + w.when.toJS(context, tableid, defcols) + + ') {r=' + + w.then.toJS(context, tableid, defcols) + + '}' + ); + }) + .join(' else '); + if (this.elses) s += ' else {r=' + this.elses.toJS(context, tableid, defcols) + '}'; + } + // TODO remove bind from CASE + s += ';return r;}).bind(this))(' + context + ',params,alasql)'; + + return s; + }; + /* + // + // JSON for Alasql.js + // Date: 19.11.2014 + // (c) 2014, Andrey Gershun + // + */ + + yy.Json = function (params) { + return Object.assign(this, params); + }; + yy.Json.prototype.toString = function () { + var s = ''; // '@' + s += JSONtoString(this.value); + s += ''; + return s; + }; + + var JSONtoString = (alasql.utils.JSONtoString = function (obj) { + var s = ''; + if (typeof obj == 'string') s = '"' + obj + '"'; + else if (typeof obj == 'number') s = obj; + else if (typeof obj == 'boolean') s = obj; + else if (typeof obj == 'object') { + if (Array.isArray(obj)) { + s += + '[' + + obj + .map(function (b) { + return JSONtoString(b); + }) + .join(',') + + ']'; + } else if (!obj.toJS || obj instanceof yy.Json) { + // to prevent recursion + s = '{'; + var ss = []; + for (var k in obj) { + var s1 = ''; + if (typeof k == 'string') s1 += '"' + k + '"'; + else if (typeof k == 'number') s1 += k; + else if (typeof k == 'boolean') s1 += k; + else { + throw new Error('THis is not ES6... no expressions on left side yet'); + } + s1 += ':' + JSONtoString(obj[k]); + ss.push(s1); + } + s += ss.join(',') + '}'; + } else if (obj.toString) { + s = obj.toString(); + } else { + throw new Error('1Can not show JSON object ' + JSON.stringify(obj)); + } + } else { + throw new Error('2Can not show JSON object ' + JSON.stringify(obj)); + } + + return s; + }); + + function JSONtoJS(obj, context, tableid, defcols) { + var s = ''; + if (typeof obj == 'string') s = '"' + obj + '"'; + else if (typeof obj == 'number') s = '(' + obj + ')'; + else if (typeof obj == 'boolean') s = obj; + else if (typeof obj == 'object') { + if (Array.isArray(obj)) { + s += + '[' + + obj + .map(function (b) { + return JSONtoJS(b, context, tableid, defcols); + }) + .join(',') + + ']'; + } else if (!obj.toJS || obj instanceof yy.Json) { + // to prevent recursion + s = '{'; + var ss = []; + for (var k in obj) { + var s1 = ''; + if (typeof k == 'string') s1 += '"' + k + '"'; + else if (typeof k == 'number') s1 += k; + else if (typeof k == 'boolean') s1 += k; + else { + throw new Error('THis is not ES6... no expressions on left side yet'); + } + s1 += ':' + JSONtoJS(obj[k], context, tableid, defcols); + ss.push(s1); + } + s += ss.join(',') + '}'; + } else if (obj.toJS) { + s = obj.toJS(context, tableid, defcols); + } else { + throw new Error('1Can not parse JSON object ' + JSON.stringify(obj)); + } + } else { + throw new Error('2Can not parse JSON object ' + JSON.stringify(obj)); + } + + return s; + } + + yy.Json.prototype.toJS = function (context, tableid, defcols) { + // TODO redo + return JSONtoJS(this.value, context, tableid, defcols); + }; + /* + // + // CAST and CONVERT functions + // Date: 03.11.2014 + // (c) 2014, Andrey Gershun + // + */ + + yy.Convert = function (params) { + return Object.assign(this, params); + }; + yy.Convert.prototype.toString = function () { + var s = 'CONVERT('; + s += this.dbtypeid; + if (typeof this.dbsize != 'undefined') { + s += '(' + this.dbsize; + if (this.dbprecision) s += ',' + this.dbprecision; + s += ')'; + } + s += ',' + this.expression.toString(); + if (this.style) s += ',' + this.style; + s += ')'; + return s; + }; + yy.Convert.prototype.toJS = function (context, tableid, defcols) { + // if(this.style) { + return ( + 'alasql.stdfn.CONVERT(' + + this.expression.toJS(context, tableid, defcols) + + ',{dbtypeid:"' + + this.dbtypeid + + '",dbsize:' + + this.dbsize + + ',dbprecision:' + + this.dbprecision + + ',style:' + + this.style + + '})' + ); + }; + + function structuredDate(unFormattedDate) { + var month = unFormattedDate.getMonth() + 1; + var year = unFormattedDate.getYear(); + var fullYear = unFormattedDate.getFullYear(); + var date = unFormattedDate.getDate(); + var day = unFormattedDate.toString().substr(4, 3); + var formattedDate = ('0' + date).substr(-2); + var formattedMonth = ('0' + month).substr(-2); + var formattedYear = ('0' + year).substr(-2); + var formattedHour = ('0' + unFormattedDate.getHours()).substr(-2); + var formattedMinutes = ('0' + unFormattedDate.getMinutes()).substr(-2); + var formattedSeconds = ('0' + unFormattedDate.getSeconds()).substr(-2); + var formattedMilliseconds = ('00' + unFormattedDate.getMilliseconds()).substr(-3); + return { + month, + year, + fullYear, + date, + day, + formattedDate, + formattedMonth, + formattedYear, + formattedHour, + formattedMinutes, + formattedSeconds, + formattedMilliseconds, + }; + } + + /** + Convert one type to another + */ + alasql.stdfn.CONVERT = function (value, args) { + var val = value; + var udbtypeid = args.dbtypeid?.toUpperCase(); + + var t; + var s; + if ( + args.style || + args.dbtypeid == 'Date' || + ['DATE', 'DATETIME', 'DATETIME2'].indexOf(udbtypeid) > -1 + ) { + if (/\d{8}/.test(val)) { + t = new Date(+val.substr(0, 4), +val.substr(4, 2) - 1, +val.substr(6, 2)); + } else { + t = newDate(val); + } + s = structuredDate(t); + } + + if (args.style) { + // TODO 9,109, 20,120,21,121,126,130,131 conversions + switch (args.style) { + case 1: // mm/dd/yy + val = s.formattedMonth + '/' + s.formattedDate + '/' + s.formattedYear; + break; + case 2: // yy.mm.dd + val = s.formattedYear + '.' + s.formattedMonth + '.' + s.formattedDate; + break; + case 3: // dd/mm/yy + val = s.formattedDate + '/' + s.formattedMonth + '/' + s.formattedYear; + break; + case 4: // dd.mm.yy + val = s.formattedDate + '.' + s.formattedMonth + '.' + s.formattedYear; + break; + case 5: // dd-mm-yy + val = s.formattedDate + '-' + s.formattedMonth + '-' + s.formattedYear; + break; + case 6: // dd mon yy + val = s.formattedDate + ' ' + s.day.toLowerCase() + ' ' + s.formattedYear; + break; + case 7: // Mon dd,yy + val = s.day + ' ' + s.formattedDate + ',' + s.formattedYear; + break; + case 8: // hh:mm:ss + case 108: // hh:mm:ss + val = s.formattedHour + ':' + s.formattedMinutes + ':' + s.formattedSeconds; + break; + case 10: // mm-dd-yy + val = s.formattedMonth + '-' + s.formattedDate + '-' + s.formattedYear; + break; + case 11: // yy/mm/dd + val = s.formattedYear + '/' + s.formattedMonth + '/' + s.formattedDate; + break; + case 12: // yymmdd + val = s.formattedYear + s.formattedMonth + s.formattedDate; + break; + case 101: // mm/dd/yyyy + val = s.formattedMonth + '/' + s.formattedDate + '/' + s.fullYear; + break; + case 102: // yyyy.mm.dd + val = s.fullYear + '.' + s.formattedMonth + '.' + s.formattedDate; + break; + case 103: // dd/mm/yyyy + val = s.formattedDate + '/' + s.formattedMonth + '/' + s.fullYear; + break; + case 104: // dd.mm.yyyy + val = s.formattedDate + '.' + s.formattedMonth + '.' + s.fullYear; + break; + case 105: // dd-mm-yyyy + val = s.formattedDate + '-' + s.formattedMonth + '-' + s.fullYear; + break; + case 106: // dd mon yyyy + val = s.formattedDate + ' ' + s.day.toLowerCase() + ' ' + s.fullYear; + break; + case 107: // Mon dd,yyyy + val = s.day + ' ' + s.formattedDate + ',' + s.fullYear; + break; + case 110: // mm-dd-yyyy + val = s.formattedMonth + '-' + s.formattedDate + '-' + s.fullYear; + break; + case 111: // yyyy/mm/dd + val = s.fullYear + '/' + s.formattedMonth + '/' + s.formattedDate; + break; + + case 112: // yyyymmdd + val = s.fullYear + s.formattedMonth + s.formattedDate; + break; + default: + throw new Error('The CONVERT style ' + args.style + ' is not realized yet.'); + } + } + + if (args.dbtypeid == 'Date') { + return t; + } else if (udbtypeid == 'DATE') { + return s.formattedYear + '.' + s.formattedMonth + '.' + s.formattedDate; + } else if (udbtypeid == 'DATETIME' || udbtypeid == 'DATETIME2') { + var f = s.fullYear + '.' + s.formattedMonth + '.' + s.formattedDate; + f += ' ' + s.formattedHour + ':' + s.formattedMinutes + ':' + s.formattedSeconds; + f += '.' + s.formattedMilliseconds; + return f; + } else if (['MONEY'].indexOf(udbtypeid) > -1) { + var m = +val; + return (m | 0) + ((m * 100) % 100) / 100; + } else if (['BOOLEAN'].indexOf(udbtypeid) > -1) { + return !!val; + } else if ( + ['INT', 'INTEGER', 'SMALLINT', 'BIGINT', 'SERIAL', 'SMALLSERIAL', 'BIGSERIAL'].indexOf( + args.dbtypeid.toUpperCase() + ) > -1 + ) { + return val | 0; + } else if ( + ['STRING', 'VARCHAR', 'NVARCHAR', 'CHARACTER VARIABLE'].indexOf(args.dbtypeid.toUpperCase()) > + -1 + ) { + if (args.dbsize) return ('' + val).substr(0, args.dbsize); + else return '' + val; + } else if (['CHAR', 'CHARACTER', 'NCHAR'].indexOf(udbtypeid) > -1) { + return (val + new Array(args.dbsize + 1).join(' ')).substr(0, args.dbsize); + //else return ""+val.substr(0,1); + } else if (['NUMBER', 'FLOAT', 'DECIMAL', 'NUMERIC'].indexOf(udbtypeid) > -1) { + var m = +val; + //toPrecision sets the number of numbers total in the result + m = args.dbsize !== undefined ? parseFloat(m.toPrecision(args.dbsize)) : m; + //toFixed sets the number of numbers to the right of the decimal + m = args.dbprecision !== undefined ? parseFloat(m.toFixed(args.dbprecision)) : m; + return m; + } else if (['JSON'].indexOf(udbtypeid) > -1) { + if (typeof val == 'object') return val; + try { + return JSON.parse(val); + } catch (err) { + throw new Error('Cannot convert string to JSON'); + } + } + return val; + }; + /* + // + // CREATE TABLE for Alasql.js + // Date: 03.11.2014 + // (c) 2014, Andrey Gershun + // + */ + + /* global alasql, yy, hash */ + + yy.ColumnDef = function (params) { + return Object.assign(this, params); + }; + yy.ColumnDef.prototype.toString = function () { + var s = this.columnid; + if (this.dbtypeid) { + s += ' ' + this.dbtypeid; + } + + if (this.dbsize) { + s += '(' + this.dbsize; + if (this.dbprecision) { + s += ',' + this.dbprecision; + } + s += ')'; + } + + if (this.primarykey) { + s += ' PRIMARY KEY'; + } + + if (this.notnull) { + s += ' NOT NULL'; + } + + return s; + }; + + yy.CreateTable = function (params) { + return Object.assign(this, params); + }; + yy.CreateTable.prototype.toString = function () { + var s = 'CREATE'; + if (this.temporary) { + s += ' TEMPORARY'; + } + + if (this.view) { + s += ' VIEW'; + } else { + s += ' ' + (this.class ? 'CLASS' : 'TABLE'); + } + if (this.ifnotexists) { + s += ' IF NOT EXISTS'; + } + s += ' ' + this.table.toString(); + if (this.viewcolumns) { + s += + '(' + + this.viewcolumns + .map(function (vcol) { + return vcol.toString(); + }) + .join(',') + + ')'; + } + if (this.as) { + s += ' AS ' + this.as; + } else { + var ss = this.columns.map(function (col) { + return col.toString(); + }); + s += ' (' + ss.join(',') + ')'; + } + + if (this.view && this.select) { + s += ' AS ' + this.select.toString(); + } + + return s; + }; + + // CREATE TABLE + //yy.CreateTable.prototype.compile = returnUndefined; + yy.CreateTable.prototype.execute = function (databaseid, params, cb) { + // var self = this; + var db = alasql.databases[this.table.databaseid || databaseid]; + + var tableid = this.table.tableid; + if (!tableid) { + throw new Error('Table name is not defined'); + } + + // var ifnotexists = this.ifnotexists; + var columns = this.columns; + // if(false) { + // if(!columns) { + // throw new Error('Columns are not defined'); + // } + // } + var constraints = this.constraints || []; + + // IF NOT EXISTS + if (this.ifnotexists && db.tables[tableid]) { + return cb ? cb(0) : 0; + } + + if (db.tables[tableid]) { + throw new Error( + "Can not create table '" + + tableid + + "', because it already exists in the database '" + + db.databaseid + + "'" + ); + } + + var table = (db.tables[tableid] = new alasql.Table()); // TODO Can use special object? + // If this is a class + if (this.class) { + table.isclass = true; + } + + var ss = []; // DEFAULT function components + var uss = []; // ON UPDATE function components + if (columns) { + columns.forEach(function (col) { + var dbtypeid = col.dbtypeid; + if (!alasql.fn[dbtypeid]) { + dbtypeid = dbtypeid.toUpperCase(); + } + + // Process SERIAL data type like Postgress + if (['SERIAL', 'SMALLSERIAL', 'BIGSERIAL'].indexOf(dbtypeid) > -1) { + col.identity = {value: 1, step: 1}; + } + + var newcol = { + columnid: col.columnid, + dbtypeid: dbtypeid, + dbsize: col.dbsize, // Fixed issue #150 + dbprecision: col.dbprecision, // Fixed issue #150 + notnull: col.notnull, + identity: col.identity, + }; + if (col.identity) { + table.identities[col.columnid] = { + value: +col.identity.value, + step: +col.identity.step, + }; + // ss.push('\''+col.columnid+'\':(alasql.databases[\''+db.databaseid+'\'].tables[\'' + // +tableid+'\'].identities[\''+col.columnid+'\'].value)'); + } + if (col.check) { + table.checks.push({ + id: col.check.constrantid, + fn: new Function('r', 'var y;return ' + col.check.expression.toJS('r', '')), + }); + } + + if (col.default) { + ss.push(JSON.stringify('' + col.columnid) + ':' + col.default.toJS('r', '')); + } + + // Check for primary key + if (col.primarykey) { + var pk = (table.pk = {}); + pk.columns = [col.columnid]; + pk.onrightfns = `r[${JSON.stringify(col.columnid)}]`; + pk.onrightfn = new Function('r', 'var y;return ' + pk.onrightfns); + pk.hh = hash(pk.onrightfns); + table.uniqs[pk.hh] = {}; + } + + // UNIQUE clause + if (col.unique) { + var uk = {}; + table.uk = table.uk || []; + table.uk.push(uk); + uk.columns = [col.columnid]; + uk.onrightfns = `r[${JSON.stringify(col.columnid)}]`; + uk.onrightfn = new Function('r', 'var y;return ' + uk.onrightfns); + uk.hh = hash(uk.onrightfns); + table.uniqs[uk.hh] = {}; + } + + // UNIQUE clause + if (col.foreignkey) { + + var fk = col.foreignkey.table; + var fktable = alasql.databases[fk.databaseid || databaseid].tables[fk.tableid]; + if (typeof fk.columnid === 'undefined') { + if (fktable.pk.columns && fktable.pk.columns.length > 0) { + fk.columnid = fktable.pk.columns[0]; + } else { + throw new Error('FOREIGN KEY allowed only to tables with PRIMARY KEYs'); + } + } + + var fkfn = function (r) { + var rr = {}; + if (typeof r[col.columnid] === 'undefined') { + return true; + } + rr[fk.columnid] = r[col.columnid]; + var addr = fktable.pk.onrightfn(rr); + + if (!fktable.uniqs[fktable.pk.hh][addr]) { + throw new Error( + 'Foreign key violation' //changed error message + ); + } + return true; + }; + table.checks.push({fn: fkfn}); + + } + + if (col.onupdate) { + uss.push(`r[${JSON.stringify(col.columnid)}]=` + col.onupdate.toJS('r', '')); + } + + table.columns.push(newcol); + table.xcolumns[newcol.columnid] = newcol; + }); + } + table.defaultfns = ss.join(','); + table.onupdatefns = uss.join(';'); + + // if(constraints) { + constraints.forEach(function (con) { + + var checkfn; + + if (con.type === 'PRIMARY KEY') { + if (table.pk) { + throw new Error('Primary key already exists'); + } + var pk = (table.pk = {}); + pk.columns = con.columns; + pk.onrightfns = pk.columns + .map(function (columnid) { + return `r[${JSON.stringify(columnid)}]`; + }) + .join("+'`'+"); + pk.onrightfn = new Function('r', 'var y;return ' + pk.onrightfns); + pk.hh = hash(pk.onrightfns); + table.uniqs[pk.hh] = {}; + } else if (con.type === 'CHECK') { + + checkfn = new Function('r', 'var y;return ' + con.expression.toJS('r', '')); + } else if (con.type === 'UNIQUE') { + + var uk = {}; + table.uk = table.uk || []; + table.uk.push(uk); + uk.columns = con.columns; + uk.onrightfns = uk.columns + .map(function (columnid) { + return `r[${JSON.stringify(columnid)}]`; + }) + .join("+'`'+"); + uk.onrightfn = new Function('r', 'var y;return ' + uk.onrightfns); + uk.hh = hash(uk.onrightfns); + table.uniqs[uk.hh] = {}; + } else if (con.type === 'FOREIGN KEY') { + var fk = con.fktable; + if (con.fkcolumns && con.fkcolumns.length > 0) { + //Composite foreign keys + fk.fkcolumns = con.fkcolumns; + } + var fktable = alasql.databases[fk.databaseid || databaseid].tables[fk.tableid]; + if (typeof fk.fkcolumns === 'undefined') { + //Composite foreign keys + fk.fkcolumns = fktable.pk.columns; + } + fk.columns = con.columns; + + if (fk.fkcolumns.length > fk.columns.length) { + throw new Error('Invalid foreign key on table ' + table.tableid); + } + + checkfn = function (r) { + var rr = {}; + + //Composite foreign keys + fk.fkcolumns.forEach(function (colFk, i) { + if (r[fk.columns[i]] != null) { + rr[colFk] = r[fk.columns[i]]; + } + }); + + if (Object.keys(rr).length === 0) { + //all values of foreign key was null + return true; + } + if (Object.keys(rr).length !== fk.columns.length) { + throw new Error('Invalid foreign key on table ' + table.tableid); + } + //reset fkTable as we need an up to date uniqs + var fktable = alasql.databases[fk.databaseid || databaseid].tables[fk.tableid]; + var addr = fktable.pk.onrightfn(rr); + + if (!fktable.uniqs[fktable.pk.hh][addr]) { + throw new Error( + 'Foreign key violation' //changed error message + ); + } + return true; + }; + } + if (checkfn) { + table.checks.push({ + fn: checkfn, + id: con.constraintid, + fk: con.type === 'FOREIGN KEY', + }); + } + }); + + if (this.view && this.viewcolumns) { + var self = this; + this.viewcolumns.forEach(function (vcol, idx) { + self.select.columns[idx].as = vcol.columnid; + }); + } + + //Used in 420from queryfn when table.view = true! + if (this.view && this.select) { + table.view = true; + + table.select = this.select.compile(this.table.databaseid || databaseid); + } + + if (db.engineid) { + + return alasql.engines[db.engineid].createTable( + this.table.databaseid || databaseid, + tableid, + this.ifnotexists, + cb + ); + + // return res1; + } + + // } + // if(table.pk) { + + table.insert = function (r, orreplace) { + var oldinserted = alasql.inserted; + alasql.inserted = [r]; + + var table = this; + + var toreplace = false; // For INSERT OR REPLACE + + /* + // IDENTINY or AUTO_INCREMENT + // if(table.identities && table.identities.length>0) { + // table.identities.forEach(function(ident){ + // r[ident.columnid] = ident.value; + // }); + // } + */ + // Trigger prevent functionality + var prevent = false; + for (var tr in table.beforeinsert) { + var trigger = table.beforeinsert[tr]; + if (trigger) { + if (trigger.funcid) { + if (alasql.fn[trigger.funcid](r) === false) prevent = prevent || true; + } else if (trigger.statement) { + if (trigger.statement.execute(databaseid) === false) prevent = prevent || true; + } + } + } + if (prevent) return; + + // Trigger prevent functionality + var escape = false; + for (tr in table.insteadofinsert) { + escape = true; + trigger = table.insteadofinsert[tr]; + if (trigger) { + if (trigger.funcid) { + alasql.fn[trigger.funcid](r); + } else if (trigger.statement) { + trigger.statement.execute(databaseid); + } + } + } + if (escape) return; + + for (var columnid in table.identities) { + var ident = table.identities[columnid]; + + r[columnid] = ident.value; + + } + + if (table.checks && table.checks.length > 0) { + table.checks.forEach(function (check) { + if (!check.fn(r)) { + // if(orreplace) toreplace=true; else + throw new Error('Violation of CHECK constraint ' + (check.id || '')); + } + }); + } + + table.columns.forEach(function (column) { + if (column.notnull && typeof r[column.columnid] === 'undefined') { + throw new Error('Wrong NULL value in NOT NULL column ' + column.columnid); + } + }); + if (table.pk) { + var pk = table.pk; + var addr = pk.onrightfn(r); + + if (typeof table.uniqs[pk.hh][addr] !== 'undefined') { + + if (orreplace) toreplace = table.uniqs[pk.hh][addr]; + else + throw new Error('Cannot insert record, because it already exists in primary key index'); + } + // table.uniqs[pk.hh][addr]=r; + } + + if (table.uk && table.uk.length) { + table.uk.forEach(function (uk) { + var ukaddr = uk.onrightfn(r); + if (typeof table.uniqs[uk.hh][ukaddr] !== 'undefined') { + if (orreplace) toreplace = table.uniqs[uk.hh][ukaddr]; + else throw new Error('Cannot insert record, because it already exists in unique index'); + } + // table.uniqs[uk.hh][ukaddr]=r; + }); + } + + if (toreplace) { + // Do UPDATE!!! + + table.update( + function (t) { + for (var f in r) t[f] = r[f]; + }, + table.data.indexOf(toreplace), + params + ); + } else { + table.data.push(r); + + // Final change before insert + + // Update indices + + for (var columnid in table.identities) { + var ident = table.identities[columnid]; + + ident.value += ident.step; + + } + + if (table.pk) { + var pk = table.pk; + var addr = pk.onrightfn(r); + table.uniqs[pk.hh][addr] = r; + } + if (table.uk && table.uk.length) { + table.uk.forEach(function (uk) { + var ukaddr = uk.onrightfn(r); + table.uniqs[uk.hh][ukaddr] = r; + }); + } + } + + // Trigger prevent functionality + for (var tr in table.afterinsert) { + var trigger = table.afterinsert[tr]; + if (trigger) { + if (trigger.funcid) { + alasql.fn[trigger.funcid](r); + } else if (trigger.statement) { + trigger.statement.execute(databaseid); + } + } + } + alasql.inserted = oldinserted; + }; + + table.delete = function (index) { + var table = this; + var r = table.data[index]; + + // Prevent trigger + var prevent = false; + for (var tr in table.beforedelete) { + var trigger = table.beforedelete[tr]; + if (trigger) { + if (trigger.funcid) { + if (alasql.fn[trigger.funcid](r) === false) prevent = prevent || true; + } else if (trigger.statement) { + if (trigger.statement.execute(databaseid) === false) prevent = prevent || true; + } + } + } + if (prevent) return false; + + // Trigger prevent functionality + var escape = false; + for (var tr in table.insteadofdelete) { + escape = true; + var trigger = table.insteadofdelete[tr]; + if (trigger) { + if (trigger.funcid) { + alasql.fn[trigger.funcid](r); + } else if (trigger.statement) { + trigger.statement.execute(databaseid); + } + } + } + if (escape) return; + + if (this.pk) { + var pk = this.pk; + var addr = pk.onrightfn(r); + if (typeof this.uniqs[pk.hh][addr] === 'undefined') { + throw new Error('Something wrong with primary key index on table'); + } else { + this.uniqs[pk.hh][addr] = undefined; + } + } + if (table.uk && table.uk.length) { + table.uk.forEach(function (uk) { + var ukaddr = uk.onrightfn(r); + if (typeof table.uniqs[uk.hh][ukaddr] === 'undefined') { + throw new Error('Something wrong with unique index on table'); + } + table.uniqs[uk.hh][ukaddr] = undefined; + }); + } + }; + + table.deleteall = function () { + this.data.length = 0; + if (this.pk) { + // var r = this.data[i]; + this.uniqs[this.pk.hh] = {}; + } + if (table.uk && table.uk.length) { + table.uk.forEach(function (uk) { + table.uniqs[uk.hh] = {}; + }); + } + }; + + table.update = function (assignfn, i, params) { + // TODO: Analyze the speed + var r = cloneDeep(this.data[i]); + + var pk; + // PART 1 - PRECHECK + if (this.pk) { + pk = this.pk; + pk.pkaddr = pk.onrightfn(r, params); + if (typeof this.uniqs[pk.hh][pk.pkaddr] === 'undefined') { + throw new Error('Something wrong with index on table'); + } + } + if (table.uk && table.uk.length) { + table.uk.forEach(function (uk) { + uk.ukaddr = uk.onrightfn(r); + if (typeof table.uniqs[uk.hh][uk.ukaddr] === 'undefined') { + throw new Error('Something wrong with unique index on table'); + } + }); + } + + assignfn(r, params, alasql); + + // Prevent trigger + var prevent = false; + for (var tr in table.beforeupdate) { + var trigger = table.beforeupdate[tr]; + if (trigger) { + if (trigger.funcid) { + if (alasql.fn[trigger.funcid](this.data[i], r) === false) prevent = prevent || true; + } else if (trigger.statement) { + if (trigger.statement.execute(databaseid) === false) prevent = prevent || true; + } + } + } + if (prevent) return false; + + // Trigger prevent functionality + var escape = false; + for (var tr in table.insteadofupdate) { + escape = true; + var trigger = table.insteadofupdate[tr]; + if (trigger) { + if (trigger.funcid) { + alasql.fn[trigger.funcid](this.data[i], r); + } else if (trigger.statement) { + trigger.statement.execute(databaseid); + } + } + } + if (escape) return; + + // PART 2 - POST CHECK + if (table.checks && table.checks.length > 0) { + table.checks.forEach(function (check) { + if (!check.fn(r)) { + throw new Error('Violation of CHECK constraint ' + (check.id || '')); + } + }); + } + + table.columns.forEach(function (column) { + if (column.notnull && typeof r[column.columnid] === 'undefined') { + throw new Error('Wrong NULL value in NOT NULL column ' + column.columnid); + } + }); + if (this.pk) { + pk.newpkaddr = pk.onrightfn(r); + if (typeof this.uniqs[pk.hh][pk.newpkaddr] !== 'undefined' && pk.newpkaddr !== pk.pkaddr) { + throw new Error('Record already exists'); + } + } + + if (table.uk && table.uk.length) { + table.uk.forEach(function (uk) { + uk.newukaddr = uk.onrightfn(r); + if (typeof table.uniqs[uk.hh][uk.newukaddr] !== 'undefined' && uk.newukaddr !== uk.ukaddr) { + throw new Error('Record already exists'); + } + }); + } + + // PART 3 UPDATE + if (this.pk) { + this.uniqs[pk.hh][pk.pkaddr] = undefined; + this.uniqs[pk.hh][pk.newpkaddr] = r; + } + if (table.uk && table.uk.length) { + table.uk.forEach(function (uk) { + table.uniqs[uk.hh][uk.ukaddr] = undefined; + table.uniqs[uk.hh][uk.newukaddr] = r; + }); + } + + this.data[i] = r; + + // Trigger prevent functionality + for (var tr in table.afterupdate) { + var trigger = table.afterupdate[tr]; + if (trigger) { + if (trigger.funcid) { + alasql.fn[trigger.funcid](this.data[i], r); + } else if (trigger.statement) { + trigger.statement.execute(databaseid); + } + } + } + }; + + var res; + + if (!alasql.options.nocount) { + res = 1; + } + + if (cb) res = cb(res); + return res; + }; + // + // Date functions + // + // (c) 2014, Andrey Gershun + // + + /** Standard JavaScript data types */ + + alasql.fn.Date = Object; + alasql.fn.Date = Date; + alasql.fn.Number = Number; + alasql.fn.String = String; + alasql.fn.Boolean = Boolean; + + /** Extend Object with properties */ + stdfn.EXTEND = alasql.utils.extend; + + stdfn.CHAR = String.fromCharCode.bind(String); + stdfn.ASCII = function (a) { + return a.charCodeAt(0); + }; + + /** + Return first non-null argument + See https://msdn.microsoft.com/en-us/library/ms190349.aspx + */ + stdfn.COALESCE = function () { + for (var i = 0; i < arguments.length; i++) { + if (arguments[i] === null) continue; + if (typeof arguments[i] == 'undefined') continue; + if (typeof arguments[i] == 'number' && isNaN(arguments[i])) continue; + return arguments[i]; + } + return undefined; + }; + + stdfn.USER = function () { + return 'alasql'; + }; + + stdfn.OBJECT_ID = function (objid) { + return !!alasql.tables[objid]; + }; + + stdfn.DATE = function (d) { + if (!isNaN(d) && d.length === 8) + return new Date(+d.substr(0, 4), +d.substr(4, 2) - 1, +d.substr(6, 2)); + return newDate(d); + }; + + stdfn.NOW = function () { + if (alasql.options.dateAsString) { + var d = new Date(); + var s = + d.getFullYear() + + '-' + + ('0' + (d.getMonth() + 1)).substr(-2) + + '-' + + ('0' + d.getDate()).substr(-2); + s += + ' ' + + ('0' + d.getHours()).substr(-2) + + ':' + + ('0' + d.getMinutes()).substr(-2) + + ':' + + ('0' + d.getSeconds()).substr(-2); + s += '.' + ('00' + d.getMilliseconds()).substr(-3); + return s; + } + return new Date(); + }; + + stdfn.GETDATE = stdfn.NOW; + stdfn.CURRENT_TIMESTAMP = stdfn.NOW; + + stdfn.SECOND = function (d) { + var d = newDate(d); + return d.getSeconds(); + }; + + stdfn.MINUTE = function (d) { + var d = newDate(d); + return d.getMinutes(); + }; + + stdfn.HOUR = function (d) { + var d = newDate(d); + return d.getHours(); + }; + + stdfn.DAYOFWEEK = stdfn.WEEKDAY = function (d) { + var d = newDate(d); + return d.getDay(); + }; + + stdfn.DAY = stdfn.DAYOFMONTH = function (d) { + var d = newDate(d); + return d.getDate(); + }; + + stdfn.MONTH = function (d) { + var d = newDate(d); + return d.getMonth() + 1; + }; + + stdfn.YEAR = function (d) { + var d = newDate(d); + return d.getFullYear(); + }; + + var PERIODS = { + year: 1000 * 3600 * 24 * 365, + quarter: (1000 * 3600 * 24 * 365) / 4, + month: 1000 * 3600 * 24 * 30, + week: 1000 * 3600 * 24 * 7, + day: 1000 * 3600 * 24, + dayofyear: 1000 * 3600 * 24, + weekday: 1000 * 3600 * 24, + hour: 1000 * 3600, + minute: 1000 * 60, + second: 1000, + millisecond: 1, + microsecond: 0.001, + }; + + alasql.stdfn.DATEDIFF = function (period, d1, d2) { + var interval = newDate(d2).getTime() - newDate(d1).getTime(); + return (interval / PERIODS[period.toLowerCase()]) | 0; + }; + + alasql.stdfn.DATEADD = function (period, interval, d) { + var nd = newDate(d); + var period = period.toLowerCase(); + + switch (period) { + case 'year': + nd.setFullYear(nd.getFullYear() + interval); + break; + case 'quarter': + nd.setMonth(nd.getMonth() + interval * 3); + break; + case 'month': + nd.setMonth(nd.getMonth() + interval); + break; + default: + nd = new Date(nd.getTime() + interval * PERIODS[period]); + break; + } + + return nd; + }; + + alasql.stdfn.INTERVAL = function (interval, period) { + return interval * PERIODS[period.toLowerCase()]; + }; + + alasql.stdfn.DATE_ADD = alasql.stdfn.ADDDATE = function (d, interval) { + var nd = newDate(d).getTime() + interval; + return new Date(nd); + }; + + alasql.stdfn.DATE_SUB = alasql.stdfn.SUBDATE = function (d, interval) { + var nd = newDate(d).getTime() - interval; + return new Date(nd); + }; + + var dateRegexp = /^\d{4}\.\d{2}\.\d{2} \d{2}:\d{2}:\d{2}/; + function newDate(d) { + if (typeof d === 'string') { + if (dateRegexp.test(d)) { + d = d.replace('.', '-').replace('.', '-'); + } + } + return new Date(d); + } + /* + // + // DROP TABLE for Alasql.js + // Date: 03.11.2014 + // (c) 2014, Andrey Gershun + // + */ + + yy.DropTable = function (params) { + return Object.assign(this, params); + }; + yy.DropTable.prototype.toString = function () { + var s = 'DROP' + ' '; + if (this.view) s += 'VIEW'; + else s += 'TABLE'; + if (this.ifexists) s += ' IF EXISTS'; + s += ' ' + this.tables.toString(); + return s; + }; + + // DROP TABLE + /** + Drop tables + @param {string} databaseid Database id + @param {object} params Parameters + @param {callback} cb Callback function + @return Number of dropped tables + @example + DROP TABLE one; + DROP TABLE IF NOT EXISTS two, three; + */ + yy.DropTable.prototype.execute = function (databaseid, params, cb) { + var ifexists = this.ifexists; + var res = 0; // No tables removed + var count = 0; + var tlen = this.tables.length; + + // For each table in the list + this.tables.forEach(function (table) { + var db = alasql.databases[table.databaseid || databaseid]; + var tableid = table.tableid; + + /** @todo Test with AUTOCOMMIT flag is ON */ + /** @todo Test with IndexedDB and multiple tables */ + + if (!ifexists || (ifexists && db.tables[tableid])) { + if (!db.tables[tableid]) { + if (!alasql.options.dropifnotexists) { + throw new Error( + `Can not drop table ${JSON.stringify( + table.tableid + )} because it does not exist in the database.` + ); + } + } else { + if (db.engineid /*&& alasql.options.autocommit*/) { + alasql.engines[db.engineid].dropTable( + table.databaseid || databaseid, + tableid, + ifexists, + function (res1) { + delete db.tables[tableid]; + res += res1; + count++; + if (count == tlen && cb) cb(res); + } + ); + } else { + delete db.tables[tableid]; + res++; + count++; + if (count == tlen && cb) cb(res); + } + } + } else { + count++; + if (count == tlen && cb) cb(res); + } + }); + // if(cb) res = cb(res); + return res; + }; + + yy.TruncateTable = function (params) { + return Object.assign(this, params); + }; + yy.TruncateTable.prototype.toString = function () { + var s = 'TRUNCATE TABLE'; + s += ' ' + this.table.toString(); + return s; + }; + + yy.TruncateTable.prototype.execute = function (databaseid, params, cb) { + var db = alasql.databases[this.table.databaseid || databaseid]; + var tableid = this.table.tableid; + if (db.engineid) { + return alasql.engines[db.engineid].truncateTable( + this.table.databaseid || databaseid, + tableid, + this.ifexists, + cb + ); + } + if (db.tables[tableid]) { + db.tables[tableid].data = []; + } else { + throw new Error('Cannot truncate table becaues it does not exist'); + } + return cb ? cb(0) : 0; + }; + /* + // + // CREATE VERTEX for AlaSQL + // Date: 21.04.2015 + // (c) 2015, Andrey Gershun + // + */ + + yy.CreateVertex = function (params) { + return Object.assign(this, params); + }; + yy.CreateVertex.prototype.toString = function () { + var s = 'CREATE VERTEX '; + if (this.class) { + s += this.class + ' '; + } + if (this.sharp) { + s += '#' + this.sharp + ' '; + } + if (this.sets) { + s += this.sets.toString(); + } else if (this.content) { + s += this.content.toString(); + } else if (this.select) { + s += this.select.toString(); + } + + return s; + }; + + yy.CreateVertex.prototype.toJS = function (context) { + + var s = 'this.queriesfn[' + (this.queriesidx - 1) + '](this.params,null,' + context + ')'; + // var s = ''; + return s; + }; + + // CREATE TABLE + + yy.CreateVertex.prototype.compile = function (databaseid) { + var dbid = databaseid; + + // CREATE VERTEX #id + var sharp = this.sharp; + + // CREATE VERTEX "Name" + if (typeof this.name !== 'undefined') { + var s = 'x.name=' + this.name.toJS(); + var namefn = new Function('x', s); + } + + if (this.sets && this.sets.length > 0) { + var s = this.sets + .map(function (st) { + return `x[${JSON.stringify(st.column.columnid)}]=` + st.expression.toJS('x', ''); + }) + .join(';'); + var setfn = new Function('x,params,alasql', s); + } + + // Todo: check for content, select and default + + var statement = function (params, cb) { + var res; + + // CREATE VERTEX without parameters + var db = alasql.databases[dbid]; + var id; + if (typeof sharp !== 'undefined') { + id = sharp; + } else { + id = db.counter++; + } + var vertex = {$id: id, $node: 'VERTEX'}; + db.objects[vertex.$id] = vertex; + res = vertex; + if (namefn) { + namefn(vertex); + } + if (setfn) { + setfn(vertex, params, alasql); + } + + if (cb) { + res = cb(res); + } + return res; + }; + return statement; + }; + + yy.CreateEdge = function (params) { + return Object.assign(this, params); + }; + yy.CreateEdge.prototype.toString = function () { + + var s = 'CREATE EDGE' + ' '; + if (this.class) { + s += this.class + ' '; + } + // todo: SET + // todo: CONTENT + // todo: SELECT + return s; + }; + + yy.CreateEdge.prototype.toJS = function (context) { + var s = 'this.queriesfn[' + (this.queriesidx - 1) + '](this.params,null,' + context + ')'; + return s; + }; + + // CREATE TABLE + + yy.CreateEdge.prototype.compile = function (databaseid) { + var dbid = databaseid; + var fromfn = new Function('params,alasql', 'var y;return ' + this.from.toJS()); + var tofn = new Function('params,alasql', 'var y;return ' + this.to.toJS()); + + // CREATE VERTEX "Name" + if (typeof this.name !== 'undefined') { + var s = 'x.name=' + this.name.toJS(); + var namefn = new Function('x', s); + } + + if (this.sets && this.sets.length > 0) { + var s = this.sets + .map(function (st) { + return `x[${JSON.stringify(st.column.columnid)}]=` + st.expression.toJS('x', ''); + }) + .join(';'); + var setfn = new Function('x,params,alasql', 'var y;' + s); + } + + /* + todo: handle content, select and default + else if(this.content) { + + } else if(this.select) { + + } else { + } + */ + + var statement = function (params, cb) { + var res = 0; + // CREATE VERTEX without parameters + var db = alasql.databases[dbid]; + var edge = {$id: db.counter++, $node: 'EDGE'}; + var v1 = fromfn(params, alasql); + var v2 = tofn(params, alasql); + // Set link + edge.$in = [v1.$id]; + edge.$out = [v2.$id]; + // Set sides + if (v1.$out === undefined) { + v1.$out = []; + } + v1.$out.push(edge.$id); + + if (typeof v2.$in === undefined) { + v2.$in = []; + } + v2.$in.push(edge.$id); + + // Save in objects + db.objects[edge.$id] = edge; + res = edge; + if (namefn) { + namefn(edge); + } + + if (setfn) { + setfn(edge, params, alasql); + } + + if (cb) { + res = cb(res); + } + + return res; + }; + return statement; + }; + + yy.CreateGraph = function (params) { + return Object.assign(this, params); + }; + yy.CreateGraph.prototype.toString = function () { + var s = 'CREATE GRAPH' + ' '; + if (this.class) { + s += this.class + ' '; + } + return s; + }; + + yy.CreateGraph.prototype.execute = function (databaseid, params, cb) { + var res = []; + if (this.from) { + if (alasql.from[this.from.funcid]) { + this.graph = alasql.from[this.from.funcid.toUpperCase()]; + } + } + + // stop; + this.graph.forEach(function (g) { + if (g.source) { + // GREATE EDGE + var e = {}; + if (typeof g.as !== 'undefined') { + alasql.vars[g.as] = e; + } + + if (typeof g.prop !== 'undefined') { + // e[g.prop] = e; + // v.$id = g.prop; // We do not create $id for edge automatically + e.name = g.prop; + } + if (typeof g.sharp !== 'undefined') { + e.$id = g.sharp; + } + if (typeof g.name !== 'undefined') { + e.name = g.name; + } + if (typeof g.class !== 'undefined') { + e.$class = g.class; + } + + var db = alasql.databases[databaseid]; + if (typeof e.$id === 'undefined') { + e.$id = db.counter++; + } + e.$node = 'EDGE'; + if (typeof g.json !== 'undefined') { + extend(e, new Function('params,alasql', 'var y;return ' + g.json.toJS())(params, alasql)); + } + + var v1; + if (g.source.vars) { + var vo = alasql.vars[g.source.vars]; + if (typeof vo === 'object') { + v1 = vo; + } else { + v1 = db.objects[vo]; + } + } else { + var av1 = g.source.sharp; + if (typeof av1 === 'undefined') { + av1 = g.source.prop; + } + v1 = alasql.databases[databaseid].objects[av1]; + if ( + typeof v1 === 'undefined' && + alasql.options.autovertex && + (typeof g.source.prop !== 'undefined' || typeof g.source.name !== 'undefined') + ) { + v1 = findVertex(g.source.prop || g.source.name); + if (typeof v1 === 'undefined') { + v1 = createVertex(g.source); + } + } + } + + var v2; + if (g.source.vars) { + var vo = alasql.vars[g.target.vars]; + if (typeof vo === 'object') { + v2 = vo; + } else { + v2 = db.objects[vo]; + } + } else { + var av2 = g.target.sharp; + if (typeof av2 === 'undefined') { + av2 = g.target.prop; + } + v2 = alasql.databases[databaseid].objects[av2]; + if ( + typeof v2 === 'undefined' && + alasql.options.autovertex && + (typeof g.target.prop !== 'undefined' || typeof g.target.name !== 'undefined') + ) { + v2 = findVertex(g.target.prop || g.target.name); + if (typeof v2 === 'undefined') { + v2 = createVertex(g.target); + } + } + } + + // Set link + e.$in = [v1.$id]; + e.$out = [v2.$id]; + // Set sides + if (typeof v1.$out === 'undefined') { + v1.$out = []; + } + v1.$out.push(e.$id); + if (typeof v2.$in === 'undefined') { + v2.$in = []; + } + v2.$in.push(e.$id); + + db.objects[e.$id] = e; + if (typeof e.$class !== 'undefined') { + if (typeof alasql.databases[databaseid].tables[e.$class] === 'undefined') { + throw new Error('No such class. Pleace use CREATE CLASS'); + } else { + // TODO - add insert() + alasql.databases[databaseid].tables[e.$class].data.push(e); + } + } + + res.push(e.$id); + } else { + createVertex(g); + } + }); + + if (cb) { + res = cb(res); + } + return res; + + // Find vertex by name + function findVertex(name) { + var objects = alasql.databases[alasql.useid].objects; + for (var k in objects) { + if (objects[k].name === name) { + return objects[k]; + } + } + return undefined; + } + + function createVertex(g) { + // GREATE VERTEX + var v = {}; + if (typeof g.as !== 'undefined') { + alasql.vars[g.as] = v; + } + + if (typeof g.prop !== 'undefined') { + // v[g.prop] = true; + v.$id = g.prop; + v.name = g.prop; + } + + if (typeof g.sharp !== 'undefined') { + v.$id = g.sharp; + } + if (typeof g.name !== 'undefined') { + v.name = g.name; + } + if (typeof g.class !== 'undefined') { + v.$class = g.class; + } + + var db = alasql.databases[databaseid]; + if (typeof v.$id === 'undefined') { + v.$id = db.counter++; + } + v.$node = 'VERTEX'; + if (typeof g.json !== 'undefined') { + extend(v, new Function('params,alasql', 'var y;return ' + g.json.toJS())(params, alasql)); + } + db.objects[v.$id] = v; + if (typeof v.$class !== 'undefined') { + if (typeof alasql.databases[databaseid].tables[v.$class] === 'undefined') { + throw new Error('No such class. Pleace use CREATE CLASS'); + } else { + // TODO - add insert() + alasql.databases[databaseid].tables[v.$class].data.push(v); + } + } + + res.push(v.$id); + return v; + } + }; + + yy.CreateGraph.prototype.compile1 = function (databaseid) { + var dbid = databaseid; + var fromfn = new Function('params,alasql', 'var y;return ' + this.from.toJS()); + var tofn = new Function('params,alasql', 'var y;return ' + this.to.toJS()); + + // CREATE VERTEX "Name" + if (typeof this.name !== 'undefined') { + var s = 'x.name=' + this.name.toJS(); + var namefn = new Function('x', s); + } + + if (this.sets && this.sets.length > 0) { + var s = this.sets + .map(function (st) { + return `x[${JSON.stringify(st.column.columnid)}]=` + st.expression.toJS('x', ''); + }) + .join(';'); + var setfn = new Function('x,params,alasql', 'var y;' + s); + } + + // Todo: handle content, select and default + + var statement = function (params, cb) { + var res = 0; + // CREATE VERTEX without parameters + var db = alasql.databases[dbid]; + var edge = {$id: db.counter++, $node: 'EDGE'}; + var v1 = fromfn(params, alasql); + var v2 = tofn(params, alasql); + // Set link + edge.$in = [v1.$id]; + edge.$out = [v2.$id]; + // Set sides + if (typeof v1.$out === 'undefined') { + v1.$out = []; + } + v1.$out.push(edge.$id); + + if (typeof v2.$in === 'undefined') { + v2.$in = []; + } + v2.$in.push(edge.$id); + // Save in objects + db.objects[edge.$id] = edge; + res = edge; + if (namefn) { + namefn(edge); + } + if (setfn) { + setfn(edge, params, alasql); + } + + if (cb) { + res = cb(res); + } + return res; + }; + return statement; + }; + /* + // + // ALTER TABLE for Alasql.js + // Date: 03.11.2014 + // (c) 2014, Andrey Gershun + // + */ + /* global alasql yy */ + + // ALTER TABLE table1 RENAME TO table2 + yy.AlterTable = function (params) { + return Object.assign(this, params); + }; + yy.AlterTable.prototype.toString = function () { + var s = 'ALTER TABLE ' + this.table.toString(); + if (this.renameto) s += ' RENAME TO ' + this.renameto; + return s; + }; + + yy.AlterTable.prototype.execute = function (databaseid, params, cb) { + var db = alasql.databases[databaseid]; + db.dbversion = Date.now(); + + if (this.renameto) { + var oldtableid = this.table.tableid; + var newtableid = this.renameto; + var res = 1; + if (db.tables[newtableid]) { + throw new Error( + `Can not rename a table "${oldtableid}" to "${newtableid}" because the table with this name already exists` + ); + } else if (newtableid === oldtableid) { + throw new Error(`Can not rename a table "${oldtableid}" to itself`); + } else { + db.tables[newtableid] = db.tables[oldtableid]; + delete db.tables[oldtableid]; + res = 1; + } + if (cb) cb(res); + return res; + } else if (this.addcolumn) { + db = alasql.databases[this.table.databaseid || databaseid]; + db.dbversion++; + var tableid = this.table.tableid; + var table = db.tables[tableid]; + var columnid = this.addcolumn.columnid; + if (table.xcolumns[columnid]) { + throw new Error( + `Cannot add column "${columnid}" because it already exists in table "${tableid}"` + ); + } + + var col = { + columnid: columnid, + dbtypeid: this.addcolumn.dbtypeid, + dbsize: this.dbsize, + dbprecision: this.dbprecision, + dbenum: this.dbenum, + defaultfns: null, // TODO defaultfns!!! + }; + + var defaultfn = function () {}; + + table.columns.push(col); + table.xcolumns[columnid] = col; + + for (var i = 0, ilen = table.data.length; i < ilen; i++) { + + table.data[i][columnid] = defaultfn(); + } + + // TODO + return cb ? cb(1) : 1; + } else if (this.modifycolumn) { + var db = alasql.databases[this.table.databaseid || databaseid]; + db.dbversion++; + var tableid = this.table.tableid; + var table = db.tables[tableid]; + var columnid = this.modifycolumn.columnid; + + if (!table.xcolumns[columnid]) { + throw new Error( + `Cannot modify column "${columnid}" because it was not found in table "${tableid}"` + ); + } + + col = table.xcolumns[columnid]; + col.dbtypeid = this.dbtypeid; + col.dbsize = this.dbsize; + col.dbprecision = this.dbprecision; + col.dbenum = this.dbenum; + + // TODO + return cb ? cb(1) : 1; + } else if (this.renamecolumn) { + var db = alasql.databases[this.table.databaseid || databaseid]; + db.dbversion++; + + var tableid = this.table.tableid; + var table = db.tables[tableid]; + var columnid = this.renamecolumn; + var tocolumnid = this.to; + + var col; + if (!table.xcolumns[columnid]) { + throw new Error('Column "' + columnid + '" is not found in the table "' + tableid + '"'); + } + if (table.xcolumns[tocolumnid]) { + throw new Error('Column "' + tocolumnid + '" already exists in the table "' + tableid + '"'); + } + + if (columnid != tocolumnid) { + for (var j = 0; j < table.columns.length; j++) { + if (table.columns[j].columnid == columnid) { + table.columns[j].columnid = tocolumnid; + } + } + + table.xcolumns[tocolumnid] = table.xcolumns[columnid]; + delete table.xcolumns[columnid]; + + for (var i = 0, ilen = table.data.length; i < ilen; i++) { + + table.data[i][tocolumnid] = table.data[i][columnid]; + delete table.data[i][columnid]; + } + return table.data.length; + } else { + return cb ? cb(0) : 0; + } + } else if (this.dropcolumn) { + var db = alasql.databases[this.table.databaseid || databaseid]; + db.dbversion++; + var tableid = this.table.tableid; + var table = db.tables[tableid]; + var columnid = this.dropcolumn; + + var found = false; + for (var j = 0; j < table.columns.length; j++) { + if (table.columns[j].columnid == columnid) { + found = true; + table.columns.splice(j, 1); + break; + } + } + + if (!found) { + throw new Error( + `Cannot drop column "${columnid}" because it was not found in the table ${tableid}"` + ); + } + + delete table.xcolumns[columnid]; + + for (i = 0, ilen = table.data.length; i < ilen; i++) { + delete table.data[i][columnid]; + } + return cb ? cb(table.data.length) : table.data.length; + } else { + throw Error('Unknown ALTER TABLE method'); + } + }; + /* + // + // CREATE TABLE for Alasql.js + // Date: 03.11.2014 + // (c) 2014, Andrey Gershun + // + */ + + yy.CreateIndex = function (params) { + return Object.assign(this, params); + }; + yy.CreateIndex.prototype.toString = function () { + var s = 'CREATE'; + if (this.unique) s += ' UNIQUE'; + s += ' INDEX ' + this.indexid + ' ON ' + this.table.toString(); + s += '(' + this.columns.toString() + ')'; + return s; + }; + + // CREATE TABLE + yy.CreateIndex.prototype.execute = function (databaseid, params, cb) { + // var self = this; + var db = alasql.databases[databaseid]; + var tableid = this.table.tableid; + var table = db.tables[tableid]; + var indexid = this.indexid; + db.indices[indexid] = tableid; + + var rightfns = this.columns + .map(function (expr) { + return expr.expression.toJS('r', ''); + }) + .join("+'`'+"); + + var rightfn = new Function('r,params,alasql', 'return ' + rightfns); + + if (this.unique) { + table.uniqdefs[indexid] = { + rightfns: rightfns, + }; + var ux = (table.uniqs[indexid] = {}); + if (table.data.length > 0) { + for (var i = 0, ilen = table.data.length; i < ilen; i++) { + var addr = rightfns(table.data[i]); + if (!ux[addr]) { + ux[addr] = {num: 0}; + } + ux[addr].num++; + } + } + } else { + var hh = hash(rightfns); + table.inddefs[indexid] = {rightfns: rightfns, hh: hh}; + table.indices[hh] = {}; + + var ix = (table.indices[hh] = {}); + if (table.data.length > 0) { + for (var i = 0, ilen = table.data.length; i < ilen; i++) { + var addr = rightfn(table.data[i], params, alasql); + if (!ix[addr]) { + ix[addr] = []; + } + ix[addr].push(table.data[i]); + } + } + } + var res = 1; + if (cb) res = cb(res); + return res; + }; + + yy.Reindex = function (params) { + return Object.assign(this, params); + }; + yy.Reindex.prototype.toString = function () { + var s = 'REINDEX ' + this.indexid; + return s; + }; + + // CREATE TABLE + yy.Reindex.prototype.execute = function (databaseid, params, cb) { + // var self = this; + var db = alasql.databases[databaseid]; + var indexid = this.indexid; + + var tableid = db.indices[indexid]; + var table = db.tables[tableid]; + table.indexColumns(); + var res = 1; + if (cb) res = cb(res); + return res; + }; + /* + // + // DROP TABLE for Alasql.js + // Date: 03.11.2014 + // (c) 2014, Andrey Gershun + // + */ + + yy.DropIndex = function (params) { + return Object.assign(this, params); + }; + yy.DropIndex.prototype.toString = function () { + return 'DROP INDEX' + this.indexid; + }; + + // DROP TABLE + yy.DropIndex.prototype.compile = function (db) { + this.indexid; + return function () { + return 1; + }; + }; + /* + // + // WITH SELECT for Alasql.js + // Date: 11.01.2015 + // (c) 2015, Andrey Gershun + // + */ + + yy.WithSelect = function (params) { + return Object.assign(this, params); + }; + yy.WithSelect.prototype.toString = function () { + var s = 'WITH '; + s += + this.withs + .map(function (w) { + return w.name + ' AS (' + w.select.toString() + ')'; + }) + .join(',') + ' '; + s += this.select.toString(); + return s; + }; + + yy.WithSelect.prototype.execute = function (databaseid, params, cb) { + var self = this; + // Create temporary tables + var savedTables = []; + self.withs.forEach(function (w) { + savedTables.push(alasql.databases[databaseid].tables[w.name]); + var tb = (alasql.databases[databaseid].tables[w.name] = new Table({ + tableid: w.name, + })); + tb.data = w.select.execute(databaseid, params); + }); + + var res = 1; + res = this.select.execute(databaseid, params, function (data) { + // Clear temporary tables + // setTimeout(function(){ + self.withs.forEach(function (w, idx) { + if (savedTables[idx]) alasql.databases[databaseid].tables[w.name] = savedTables[idx]; + else delete alasql.databases[databaseid].tables[w.name]; + }); + // },0); + + if (cb) data = cb(data); + return data; + }); + return res; + }; + + /* + // + // IF for Alasql.js + // Date: 03.11.2014 + // (c) 2014, Andrey Gershun + // + */ + + yy.If = function (params) { + return Object.assign(this, params); + }; + yy.If.prototype.toString = function () { + var s = 'IF' + ' '; + s += this.expression.toString(); + s += ' ' + this.thenstat.toString(); + if (this.elsestat) s += ' ELSE ' + this.thenstat.toString(); + return s; + }; + + // CREATE TABLE + + yy.If.prototype.execute = function (databaseid, params, cb) { + var res; + + var fn = new Function( + 'params,alasql,p', + 'var y;return ' + this.expression.toJS('({})', '', null) + ).bind(this); + + if (fn(params, alasql)) res = this.thenstat.execute(databaseid, params, cb); + else { + if (this.elsestat) res = this.elsestat.execute(databaseid, params, cb); + else { + if (cb) res = cb(res); + } + } + // else res = this.elsestat.execute(databaseid,params,cb,scope); + return res; + }; + /* + // + // CREATE VIEW for Alasql.js + // Date: 03.11.2014 + // (c) 2014, Andrey Gershun + // + */ + + yy.While = function (params) { + return Object.assign(this, params); + }; + yy.While.prototype.toString = function () { + var s = 'WHILE '; + s += this.expression.toString(); + s += ' ' + this.loopstat.toString(); + return s; + }; + + yy.While.prototype.execute = function (databaseid, params, cb) { + var self = this; + var res = []; + + var fn = new Function('params,alasql,p', 'var y;return ' + this.expression.toJS()); + + if (cb) { + var first = false; + var loop = function (data) { + if (first) { + res.push(data); + } else { + first = true; + } + setTimeout(function () { + if (fn(params, alasql)) { + self.loopstat.execute(databaseid, params, loop); + } else { + res = cb(res); + } + }, 0); + }; + loop(); + } else { + while (fn(params, alasql)) { + var res1 = self.loopstat.execute(databaseid, params); + res.push(res1); + } + } + return res; + }; + + yy.Break = function (params) { + return Object.assign(this, params); + }; + yy.Break.prototype.toString = function () { + var s = 'BREAK'; + return s; + }; + + yy.Break.prototype.execute = function (databaseid, params, cb, scope) { + var res = 1; + if (cb) res = cb(res); + return res; + }; + + yy.Continue = function (params) { + return Object.assign(this, params); + }; + yy.Continue.prototype.toString = function () { + var s = 'CONTINUE'; + return s; + }; + + yy.Continue.prototype.execute = function (databaseid, params, cb, scope) { + var res = 1; + if (cb) res = cb(res); + return res; + }; + + yy.BeginEnd = function (params) { + return Object.assign(this, params); + }; + yy.BeginEnd.prototype.toString = function () { + var s = 'BEGIN ' + this.statements.toString() + ' END'; + return s; + }; + + yy.BeginEnd.prototype.execute = function (databaseid, params, cb, scope) { + var self = this; + var res = []; + + var idx = 0; + runone(); + function runone() { + self.statements[idx].execute(databaseid, params, function (data) { + res.push(data); + idx++; + if (idx < self.statements.length) return runone(); + if (cb) res = cb(res); + }); + } + return res; + }; + /* + // + // INSERT for Alasql.js + // Date: 03.11.2014 + // (c) 2014, Andrey Gershun + // + */ + + /* global yy alasql*/ + yy.Insert = function (params) { + return Object.assign(this, params); + }; + yy.Insert.prototype.toString = function () { + var s = 'INSERT '; + if (this.orreplace) s += 'OR REPLACE '; + if (this.replaceonly) s = 'REPLACE '; + s += 'INTO ' + this.into.toString(); + if (this.columns) s += '(' + this.columns.toString() + ')'; + if (this.values) { + var values = this.values.map(function (value) { + return '(' + value.toString() + ')'; + }); + s += ' VALUES ' + values.join(','); + } + if (this.select) s += ' ' + this.select.toString(); + return s; + }; + + yy.Insert.prototype.toJS = function (context, tableid, defcols) { + + // if(this.expression.reduced) return 'true'; + // return this.expression.toJS(context, tableid, defcols); + + // var s = 'this.queriesdata['+(this.queriesidx-1)+'][0]'; + + var s = 'this.queriesfn[' + (this.queriesidx - 1) + '](this.params,null,' + context + ')'; + + return s; + }; + + yy.Insert.prototype.compile = function (databaseid) { + var self = this; + databaseid = self.into.databaseid || databaseid; + var db = alasql.databases[databaseid]; + + var tableid = self.into.tableid; + var table = db.tables[tableid]; + + if (!table) { + throw "Table '" + tableid + "' could not be found"; + } + + // Check, if this dirty flag is required + var s = ''; + var sw = ''; + var s = "db.tables['" + tableid + "'].dirty=true;"; + var s3 = 'var a,aa=[],x;'; + + var s33; + + // INSERT INTO table VALUES + if (this.values) { + if (this.exists) { + this.existsfn = this.exists.map(function (ex) { + var nq = ex.compile(databaseid); + nq.query.modifier = 'RECORDSET'; + return nq; + }); + } + if (this.queries) { + this.queriesfn = this.queries.map(function (q) { + var nq = q.compile(databaseid); + nq.query.modifier = 'RECORDSET'; + return nq; + }); + } + + self.values.forEach(function (values) { + var ss = []; + + // s += 'db.tables[\''+tableid+'\'].data.push({'; + + // s += ''; + if (self.columns) { + self.columns.forEach(function (col, idx) { + + // ss.push(col.columnid +':'+ self.values[idx].value.toString()); + + // if(rec[f.name.value] == "NULL") rec[f.name.value] = undefined; + + // if(table.xflds[f.name.value].dbtypeid == "INT") rec[f.name.value] = +rec[f.name.value]|0; + // else if(table.xflds[f.name.value].dbtypeid == "FLOAT") rec[f.name.value] = +rec[f.name.value]; + var q = "'" + col.columnid + "':"; + if (table.xcolumns && table.xcolumns[col.columnid]) { + if ( + ['INT', 'FLOAT', 'NUMBER', 'MONEY'].indexOf(table.xcolumns[col.columnid].dbtypeid) >= + 0 + ) { + //q += '' + q += '(x=' + values[idx].toJS() + ',x==undefined?undefined:+x)'; + } else if (alasql.fn[table.xcolumns[col.columnid].dbtypeid]) { + q += '(new ' + table.xcolumns[col.columnid].dbtypeid + '('; + q += values[idx].toJS(); + q += '))'; + } else { + q += values[idx].toJS(); + } + } else { + q += values[idx].toJS(); + } + ss.push(q); + }); + } else { + // var table = db.tables[tableid]; + + if (Array.isArray(values) && table.columns && table.columns.length > 0) { + table.columns.forEach(function (col, idx) { + var q = "'" + col.columnid + "':"; + // var val = values[idx].toJS(); + + if (['INT', 'FLOAT', 'NUMBER', 'MONEY'].indexOf(col.dbtypeid) >= 0) { + q += '+' + values[idx].toJS(); + } else if (alasql.fn[col.dbtypeid]) { + q += '(new ' + col.dbtypeid + '('; + q += values[idx].toJS(); + q += '))'; + } else { + q += values[idx].toJS(); + } + + ss.push(q); + + }); + } else { + + // sw = 'var w='+JSONtoJS(values)+';for(var k in w){r[k]=w[k]};'; + sw = JSONtoJS(values); + } + } + + if (db.tables[tableid].defaultfns) { + ss.unshift(db.tables[tableid].defaultfns); + } + if (sw) { + s += 'a=' + sw + ';'; + } else { + s += 'a={' + ss.join(',') + '};'; + } + + // If this is a class + if (db.tables[tableid].isclass) { + s += "var db=alasql.databases['" + databaseid + "'];"; + s += 'a.$class="' + tableid + '";'; + s += 'a.$id=db.counter++;'; + s += 'db.objects[a.$id]=a;'; + } + // s += 'db.tables[\''+tableid+'\'].insert(r);'; + if (db.tables[tableid].insert) { + s += "var db=alasql.databases['" + databaseid + "'];"; + s += "db.tables['" + tableid + "'].insert(a," + (self.orreplace ? 'true' : 'false') + ');'; + } else { + s += 'aa.push(a);'; + } + }); + + s33 = s3 + s; + + if (db.tables[tableid].insert) ; else { + s += + "alasql.databases['" + + databaseid + + "'].tables['" + + tableid + + "'].data=" + + "alasql.databases['" + + databaseid + + "'].tables['" + + tableid + + "'].data.concat(aa);"; + } + + if (db.tables[tableid].insert) { + if (db.tables[tableid].isclass) { + s += 'return a.$id;'; + } else { + s += 'return ' + self.values.length; + } + } else { + s += 'return ' + self.values.length; + } + + var insertfn = new Function('db, params, alasql', 'var y;' + s3 + s).bind(this); + + // INSERT INTO table SELECT + } else if (this.select) { + this.select.modifier = 'RECORDSET'; + if (this.queries) { + this.select.queries = this.queries; + } + var selectfn = this.select.compile(databaseid); + if (db.engineid && alasql.engines[db.engineid].intoTable) { + var statement = function (params, cb) { + var aa = selectfn(params); + var res = alasql.engines[db.engineid].intoTable(db.databaseid, tableid, aa.data, null, cb); + return res; + }; + return statement; + } else { + + var defaultfns = 'return alasql.utils.extend(r,{' + table.defaultfns + '})'; + var defaultfn = new Function('r,db,params,alasql', defaultfns); + var insertfn = function (db, params, alasql) { + var res = selectfn(params).data; + if (db.tables[tableid].insert) { + // If insert() function exists (issue #92) + for (var i = 0, ilen = res.length; i < ilen; i++) { + var r = cloneDeep(res[i]); + defaultfn(r, db, params, alasql); + db.tables[tableid].insert(r, self.orreplace); + } + } else { + db.tables[tableid].data = db.tables[tableid].data.concat(res); + } + if (alasql.options.nocount) return; + else return res.length; + }; + } + } else if (this.default) { + var insertfns = "db.tables['" + tableid + "'].data.push({" + table.defaultfns + '});return 1;'; + var insertfn = new Function('db,params,alasql', insertfns); + } else { + throw new Error('Wrong INSERT parameters'); + } + + if (db.engineid && alasql.engines[db.engineid].intoTable && alasql.options.autocommit) { + var statement = function (params, cb) { + var aa = new Function('db,params', 'var y;' + s33 + 'return aa;')(db, params); + + var res = alasql.engines[db.engineid].intoTable(db.databaseid, tableid, aa, null, cb); + // if(cb) cb(res); + return res; + }; + } else { + var statement = function (params, cb) { + + var db = alasql.databases[databaseid]; + + if (alasql.options.autocommit && db.engineid) { + alasql.engines[db.engineid].loadTableData(databaseid, tableid); + } + + var res = insertfn(db, params, alasql); + + if (alasql.options.autocommit && db.engineid) { + alasql.engines[db.engineid].saveTableData(databaseid, tableid); + } + // var res = insertfn(db, params); + if (alasql.options.nocount) res = undefined; + if (cb) cb(res); + return res; + }; + } + + return statement; + }; + + yy.Insert.prototype.execute = function (databaseid, params, cb) { + return this.compile(databaseid)(params, cb); + // throw new Error('Insert statement is should be compiled') + }; + /* + // + // TRIGGER for Alasql.js + // Date: 29.12.2015 + // + */ + + yy.CreateTrigger = function (params) { + return Object.assign(this, params); + }; + yy.CreateTrigger.prototype.toString = function () { + var s = 'CREATE TRIGGER ' + this.trigger + ' '; + if (this.when) s += this.when + ' '; + s += this.action + ' ON '; + if (this.table.databaseid) s += this.table.databaseid + '.'; + s += this.table.tableid + ' '; + s += this.statement.toString(); + return s; + }; + + yy.CreateTrigger.prototype.execute = function (databaseid, params, cb) { + var res = 1; // No tables removed + var triggerid = this.trigger; + databaseid = this.table.databaseid || databaseid; + var db = alasql.databases[databaseid]; + var tableid = this.table.tableid; + + var trigger = { + action: this.action, + when: this.when, + statement: this.statement, + funcid: this.funcid, + tableid: this.table.tableid, + }; + + db.triggers[triggerid] = trigger; + if (trigger.action == 'INSERT' && trigger.when == 'BEFORE') { + db.tables[tableid].beforeinsert[triggerid] = trigger; + } else if (trigger.action == 'INSERT' && trigger.when == 'AFTER') { + db.tables[tableid].afterinsert[triggerid] = trigger; + } else if (trigger.action == 'INSERT' && trigger.when == 'INSTEADOF') { + db.tables[tableid].insteadofinsert[triggerid] = trigger; + } else if (trigger.action == 'DELETE' && trigger.when == 'BEFORE') { + db.tables[tableid].beforedelete[triggerid] = trigger; + } else if (trigger.action == 'DELETE' && trigger.when == 'AFTER') { + db.tables[tableid].afterdelete[triggerid] = trigger; + } else if (trigger.action == 'DELETE' && trigger.when == 'INSTEADOF') { + db.tables[tableid].insteadofdelete[triggerid] = trigger; + } else if (trigger.action == 'UPDATE' && trigger.when == 'BEFORE') { + db.tables[tableid].beforeupdate[triggerid] = trigger; + } else if (trigger.action == 'UPDATE' && trigger.when == 'AFTER') { + db.tables[tableid].afterupdate[triggerid] = trigger; + } else if (trigger.action == 'UPDATE' && trigger.when == 'INSTEADOF') { + db.tables[tableid].insteadofupdate[triggerid] = trigger; + } + + if (cb) res = cb(res); + return res; + }; + + yy.DropTrigger = function (params) { + return Object.assign(this, params); + }; + yy.DropTrigger.prototype.toString = function () { + var s = 'DROP TRIGGER ' + this.trigger; + return s; + }; + + /** + Drop trigger + @param {string} databaseid Database id + @param {object} params Parameters + @param {callback} cb Callback function + @return Number of dropped triggers + @example + DROP TRIGGER one; + */ + yy.DropTrigger.prototype.execute = function (databaseid, params, cb) { + var res = 0; // No tables removed + var db = alasql.databases[databaseid]; + var triggerid = this.trigger; + + // get the trigger + var trigger = db.triggers[triggerid]; + + // if the trigger exists + if (trigger) { + var tableid = db.triggers[triggerid].tableid; + + if (tableid) { + res = 1; + delete db.tables[tableid].beforeinsert[triggerid]; + delete db.tables[tableid].afterinsert[triggerid]; + delete db.tables[tableid].insteadofinsert[triggerid]; + delete db.tables[tableid].beforedelete[triggerid]; + delete db.tables[tableid].afterdelete[triggerid]; + delete db.tables[tableid].insteadofdelete[triggerid]; + delete db.tables[tableid].beforeupdate[triggerid]; + delete db.tables[tableid].afterupdate[triggerid]; + delete db.tables[tableid].insteadofupdate[triggerid]; + delete db.triggers[triggerid]; + } else { + throw new Error('Trigger Table not found'); + } + } else { + throw new Error('Trigger not found'); + } + if (cb) res = cb(res); + return res; + }; + /* + // + // DELETE for Alasql.js + // Date: 03.11.2014 + // (c) 2014, Andrey Gershun + // + */ + + yy.Delete = function (params) { + return Object.assign(this, params); + }; + yy.Delete.prototype.toString = function () { + var s = 'DELETE FROM ' + this.table.toString(); + if (this.where) s += ' WHERE ' + this.where.toString(); + return s; + }; + + yy.Delete.prototype.compile = function (databaseid) { + + databaseid = this.table.databaseid || databaseid; + var tableid = this.table.tableid; + var statement; + var db = alasql.databases[databaseid]; + + if (this.where) { + + // this.query = {}; + + if (this.exists) { + this.existsfn = this.exists.map(function (ex) { + var nq = ex.compile(databaseid); + nq.query.modifier = 'RECORDSET'; + return nq; + }); + } + if (this.queries) { + this.queriesfn = this.queries.map(function (q) { + var nq = q.compile(databaseid); + nq.query.modifier = 'RECORDSET'; + return nq; + }); + } + + // try { + + // var query = {}; + + var wherefn = new Function( + 'r,params,alasql', + 'var y;return (' + this.where.toJS('r', '') + ')' + ).bind(this); + + statement = function (params, cb) { + if (db.engineid && alasql.engines[db.engineid].deleteFromTable) { + return alasql.engines[db.engineid].deleteFromTable( + databaseid, + tableid, + wherefn, + params, + cb + ); + } + + if ( + alasql.options.autocommit && + db.engineid && + (db.engineid == 'LOCALSTORAGE' || db.engineid == 'FILESTORAGE') + ) { + alasql.engines[db.engineid].loadTableData(databaseid, tableid); + } + + var table = db.tables[tableid]; + // table.dirty = true; + var orignum = table.data.length; + + var newtable = []; + for (var i = 0, ilen = table.data.length; i < ilen; i++) { + if (wherefn(table.data[i], params, alasql)) { + // Check for transaction - if it is not possible then return all back + if (table.delete) { + table.delete(i, params, alasql); + } + } else newtable.push(table.data[i]); + } + // table.data = table.data.filter(function(r){return !;}); + table.data = newtable; + + // Trigger prevent functionality + for (var tr in table.afterdelete) { + var trigger = table.afterdelete[tr]; + if (trigger) { + if (trigger.funcid) { + alasql.fn[trigger.funcid](); + } else if (trigger.statement) { + trigger.statement.execute(databaseid); + } + } + } + + var res = orignum - table.data.length; + if ( + alasql.options.autocommit && + db.engineid && + (db.engineid == 'LOCALSTORAGE' || db.engineid == 'FILESTORAGE') + ) { + alasql.engines[db.engineid].saveTableData(databaseid, tableid); + } + + if (cb) cb(res); + return res; + }; + // .bind(query); + + // if(!this.queries) return; + // query.queriesfn = this.queries.map(function(q) { + // return q.compile(alasql.useid); + // }); + } else { + statement = function (params, cb) { + if (alasql.options.autocommit && db.engineid) { + alasql.engines[db.engineid].loadTableData(databaseid, tableid); + } + + var table = db.tables[tableid]; + table.dirty = true; + var orignum = db.tables[tableid].data.length; + //table.deleteall(); + // Delete all records from the array + db.tables[tableid].data.length = 0; + + // Reset PRIMARY KEY and indexes + for (var ix in db.tables[tableid].uniqs) { + db.tables[tableid].uniqs[ix] = {}; + } + + for (var ix in db.tables[tableid].indices) { + db.tables[tableid].indices[ix] = {}; + } + + if (alasql.options.autocommit && db.engineid) { + alasql.engines[db.engineid].saveTableData(databaseid, tableid); + } + + if (cb) cb(orignum); + return orignum; + }; + } + + return statement; + }; + + yy.Delete.prototype.execute = function (databaseid, params, cb) { + return this.compile(databaseid)(params, cb); + }; + /* + // + // UPDATE for Alasql.js + // Date: 03.11.2014 + // (c) 2014, Andrey Gershun + // + */ + + /* global yy alasql */ + + yy.Update = function (params) { + return Object.assign(this, params); + }; + yy.Update.prototype.toString = function () { + var s = 'UPDATE ' + this.table.toString(); + if (this.columns) s += ' SET ' + this.columns.toString(); + if (this.where) s += ' WHERE ' + this.where.toString(); + return s; + }; + + yy.SetColumn = function (params) { + return Object.assign(this, params); + }; + yy.SetColumn.prototype.toString = function () { + return this.column.toString() + '=' + this.expression.toString(); + }; + + yy.Update.prototype.compile = function (databaseid) { + + databaseid = this.table.databaseid || databaseid; + var tableid = this.table.tableid; + + if (this.where) { + if (this.exists) { + this.existsfn = this.exists.map(function (ex) { + var nq = ex.compile(databaseid); + nq.query.modifier = 'RECORDSET'; + return nq; + }); + } + if (this.queries) { + this.queriesfn = this.queries.map(function (q) { + var nq = q.compile(databaseid); + nq.query.modifier = 'RECORDSET'; + return nq; + }); + } + + var wherefn = new Function('r,params,alasql', 'var y;return ' + this.where.toJS('r', '')).bind( + this + ); + } + + // Construct update function + var s = alasql.databases[databaseid].tables[tableid].onupdatefns || ''; + s += ';'; + this.columns.forEach(function (col) { + s += "r['" + col.column.columnid + "']=" + col.expression.toJS('r', '') + ';'; + }); + + var assignfn = new Function('r,params,alasql', 'var y;' + s); + + var statement = function (params, cb) { + var db = alasql.databases[databaseid]; + + if (db.engineid && alasql.engines[db.engineid].updateTable) { + + return alasql.engines[db.engineid].updateTable( + databaseid, + tableid, + assignfn, + wherefn, + params, + cb + ); + } + + if (alasql.options.autocommit && db.engineid) { + alasql.engines[db.engineid].loadTableData(databaseid, tableid); + } + + var table = db.tables[tableid]; + if (!table) { + throw new Error("Table '" + tableid + "' not exists"); + } + // table.dirty = true; + var numrows = 0; + for (var i = 0, ilen = table.data.length; i < ilen; i++) { + if (!wherefn || wherefn(table.data[i], params, alasql)) { + if (table.update) { + table.update(assignfn, i, params); + } else { + assignfn(table.data[i], params, alasql); + } + numrows++; + } + } + + if (alasql.options.autocommit && db.engineid) { + alasql.engines[db.engineid].saveTableData(databaseid, tableid); + } + + if (cb) cb(numrows); + return numrows; + }; + return statement; + }; + + yy.Update.prototype.execute = function (databaseid, params, cb) { + return this.compile(databaseid)(params, cb); + }; + /* + // + // SET for Alasql.js + // Date: 01.12.2014 + // (c) 2014, Andrey Gershun + // + */ + + /* global alasql, yy */ + + yy.Merge = function (params) { + return Object.assign(this, params); + }; + yy.Merge.prototype.toString = function () { + var s = 'MERGE '; + s += this.into.tableid + ' '; + if (this.into.as) s += 'AS ' + this.into.as + ' '; + s += 'USING ' + this.using.tableid + ' '; + if (this.using.as) s += 'AS ' + this.using.as + ' '; + s += 'ON ' + this.on.toString() + ' '; + this.matches.forEach(function (m) { + s += 'WHEN '; + if (!m.matched) s += 'NOT '; + s += 'MATCHED '; + if (m.bytarget) s += 'BY TARGET '; + if (m.bysource) s += 'BY SOURCE '; + if (m.expr) s += 'AND' + ' ' + m.expr.toString() + ' '; + s += 'THEN '; + if (m.action.delete) s += 'DELETE '; + if (m.action.insert) { + s += 'INSERT '; + if (m.action.columns) s += '(' + m.action.columns.toString() + ') '; + if (m.action.values) s += 'VALUES (' + m.action.values.toString() + ') '; + if (m.action.defaultvalues) s += 'DEFAULT VALUES '; + } + if (m.action.update) { + s += 'UPDATE '; + s += + m.action.update + .map(function (u) { + return u.toString(); + }) + .join(',') + ' '; + } + }); + + return s; + }; + + yy.Merge.prototype.execute = function (databaseid, params, cb) { + var res = 1; + + if (cb) res = cb(res); + return res; + }; + /* + // + // UPDATE for Alasql.js + // Date: 03.11.2014 + // Modified: 16.11.2014 + // (c) 2014, Andrey Gershun + // + */ + + /* global yy alasql */ + + // CREATE DATABASE databaseid + yy.CreateDatabase = function (params) { + return Object.assign(this, params); + }; + yy.CreateDatabase.prototype.toString = function () { + var s = 'CREATE'; + if (this.engineid) s += ' ' + this.engineid; + s += ' DATABASE'; + if (this.ifnotexists) s += ' IF NOT EXISTS'; + s += ' ' + this.databaseid; + if (this.args && this.args.length > 0) { + s += + '(' + + this.args + .map(function (arg) { + return arg.toString(); + }) + .join(', ') + + ')'; + } + if (this.as) s += ' AS ' + this.as; + return s; + }; + //yy.CreateDatabase.prototype.compile = returnUndefined; + yy.CreateDatabase.prototype.execute = function (databaseid, params, cb) { + if (this.args && this.args.length > 0) { + this.args.map(function (arg) { + + return new Function('params,alasql', 'var y;return ' + arg.toJS())(params, alasql); + }); + } + if (this.engineid) { + var res = alasql.engines[this.engineid].createDatabase( + this.databaseid, + this.args, + this.ifnotexists, + this.as, + cb + ); + return res; + } else { + var dbid = this.databaseid; + if (alasql.databases[dbid]) { + throw new Error("Database '" + dbid + "' already exists"); + } + new alasql.Database(dbid); + var res = 1; + if (cb) return cb(res); + return res; + } + }; + + // CREATE DATABASE databaseid + yy.AttachDatabase = function (params) { + return Object.assign(this, params); + }; + yy.AttachDatabase.prototype.toString = function (args) { + var s = 'ATTACH'; + if (this.engineid) s += ' ' + this.engineid; + s += ' DATABASE' + ' ' + this.databaseid; + // TODO add params + if (args) { + s += '('; + if (args.length > 0) { + s += args + .map(function (arg) { + return arg.toString(); + }) + .join(', '); + } + s += ')'; + } + if (this.as) s += ' AS' + ' ' + this.as; + return s; + }; + //yy.CreateDatabase.prototype.compile = returnUndefined; + yy.AttachDatabase.prototype.execute = function (databaseid, params, cb) { + if (!alasql.engines[this.engineid]) { + throw new Error('Engine "' + this.engineid + '" is not defined.'); + } + var res = alasql.engines[this.engineid].attachDatabase( + this.databaseid, + this.as, + this.args, + params, + cb + ); + return res; + }; + + // CREATE DATABASE databaseid + yy.DetachDatabase = function (params) { + return Object.assign(this, params); + }; + yy.DetachDatabase.prototype.toString = function () { + var s = 'DETACH'; + s += ' DATABASE' + ' ' + this.databaseid; + return s; + }; + //yy.CreateDatabase.prototype.compile = returnUndefined; + yy.DetachDatabase.prototype.execute = function (databaseid, params, cb) { + if (!alasql.databases[this.databaseid].engineid) { + throw new Error('Cannot detach database "' + this.engineid + '", because it was not attached.'); + } + var res; + + var dbid = this.databaseid; + + if (dbid === alasql.DEFAULTDATABASEID) { + throw new Error('Drop of default database is prohibited'); + } + + if (!alasql.databases[dbid]) { + if (!this.ifexists) { + throw new Error("Database '" + dbid + "' does not exist"); + } else { + res = 0; + } + } else { + // Usually databases are detached and then dropped. Detaching will delete + // the database object from memory. While this is OK for in-memory and + // other persistent databases, for FileStorage DBs, we will + // not be able to delete the DB file (.json) since we would have lost + // the filename by deleting the in-memory database object here. + // For this reason, to delete the associated JSON file, + // keeping the name of the file alone as a property inside the db object + // until it gets DROPped subsequently (only for FileStorage DBs) + var isFS = alasql.databases[dbid].engineid && alasql.databases[dbid].engineid == 'FILESTORAGE', + filename = alasql.databases[dbid].filename || ''; + + delete alasql.databases[dbid]; + + if (isFS) { + // Create a detached FS database + alasql.databases[dbid] = {}; + alasql.databases[dbid].isDetached = true; + alasql.databases[dbid].filename = filename; + } + + if (dbid === alasql.useid) { + alasql.use(); + } + res = 1; + } + if (cb) cb(res); + return res; + // var res = alasql.engines[this.engineid].attachDatabase(this.databaseid, this.as, cb); + // return res; + }; + + // USE DATABSE databaseid + // USE databaseid + yy.UseDatabase = function (params) { + return Object.assign(this, params); + }; + yy.UseDatabase.prototype.toString = function () { + return 'USE' + ' ' + 'DATABASE' + ' ' + this.databaseid; + }; + //yy.UseDatabase.prototype.compile = returnUndefined; + yy.UseDatabase.prototype.execute = function (databaseid, params, cb) { + var dbid = this.databaseid; + if (!alasql.databases[dbid]) { + throw new Error("Database '" + dbid + "' does not exist"); + } + alasql.use(dbid); + var res = 1; + if (cb) cb(res); + return res; + }; + + // DROP DATABASE databaseid + yy.DropDatabase = function (params) { + return Object.assign(this, params); + }; + yy.DropDatabase.prototype.toString = function () { + var s = 'DROP'; + if (this.ifexists) s += ' IF EXISTS'; + s += ' DATABASE ' + this.databaseid; + return s; + }; + //yy.DropDatabase.prototype.compile = returnUndefined; + yy.DropDatabase.prototype.execute = function (databaseid, params, cb) { + if (this.engineid) { + return alasql.engines[this.engineid].dropDatabase(this.databaseid, this.ifexists, cb); + } + var res; + + var dbid = this.databaseid; + + if (dbid === alasql.DEFAULTDATABASEID) { + throw new Error('Drop of default database is prohibited'); + } + if (!alasql.databases[dbid]) { + if (!this.ifexists) { + throw new Error("Database '" + dbid + "' does not exist"); + } else { + res = 0; + } + } else { + if (alasql.databases[dbid].engineid) { + throw new Error("Cannot drop database '" + dbid + "', because it is attached. Detach it."); + } + + delete alasql.databases[dbid]; + if (dbid === alasql.useid) { + alasql.use(); + } + res = 1; + } + if (cb) cb(res); + return res; + }; + /* + // + // SET for Alasql.js + // Date: 01.12.2014 + // (c) 2014, Andrey Gershun + // + */ + + yy.Declare = function (params) { + return Object.assign(this, params); + }; + yy.Declare.prototype.toString = function () { + var s = 'DECLARE '; + if (this.declares && this.declares.length > 0) { + s = this.declares + .map(function (declare) { + var s = ''; + s += '@' + declare.variable + ' '; + s += declare.dbtypeid; + if (this.dbsize) { + s += '(' + this.dbsize; + if (this.dbprecision) { + s += ',' + this.dbprecision; + } + s += ')'; + } + if (declare.expression) { + s += ' = ' + declare.expression.toString(); + } + return s; + }) + .join(','); + } + return s; + }; + + yy.Declare.prototype.execute = function (databaseid, params, cb) { + var res = 1; + var that = this; // without this assigned to a variable, inside the forEach, the reference to `this` is lost. It is needed for the Function statement for binding + if (that.declares && that.declares.length > 0) { + that.declares.forEach(function (declare) { + var dbtypeid = declare.dbtypeid; + if (!alasql.fn[dbtypeid]) { + dbtypeid = dbtypeid.toUpperCase(); + } + alasql.declares[declare.variable] = { + dbtypeid: dbtypeid, + dbsize: declare.dbsize, + dbprecision: declare.dbprecision, + }; + + // Set value + if (declare.expression) { + + alasql.vars[declare.variable] = new Function( + 'params,alasql', + 'return ' + declare.expression.toJS('({})', '', null) + ).bind(that)(params, alasql); + if (alasql.declares[declare.variable]) { + alasql.vars[declare.variable] = alasql.stdfn.CONVERT( + alasql.vars[declare.variable], + alasql.declares[declare.variable] + ); + } + } + }); + } + if (cb) { + res = cb(res); + } + return res; + }; + /* + // + // SHOW for Alasql.js + // Date: 19.11.2014 + // (c) 2014, Andrey Gershun + // + */ + + yy.ShowDatabases = function (params) { + return Object.assign(this, params); + }; + yy.ShowDatabases.prototype.toString = function () { + var s = 'SHOW DATABASES'; + if (this.like) s += 'LIKE ' + this.like.toString(); + return s; + }; + yy.ShowDatabases.prototype.execute = function (databaseid, params, cb) { + if (this.engineid) { + return alasql.engines[this.engineid].showDatabases(this.like, cb); + } else { + var self = this; + var res = []; + for (var dbid in alasql.databases) { + res.push({databaseid: dbid}); + } + if (self.like && res && res.length > 0) { + res = res.filter(function (d) { + // return d.databaseid.match(new RegExp((self.like.value||'').replace(/\%/g,'.*').replace(/\?|_/g,'.'),'g')); + return alasql.utils.like(self.like.value, d.databaseid); + }); + } + if (cb) cb(res); + return res; + } + }; + + yy.ShowTables = function (params) { + return Object.assign(this, params); + }; + yy.ShowTables.prototype.toString = function () { + var s = 'SHOW TABLES'; + if (this.databaseid) s += ' FROM ' + this.databaseid; + if (this.like) s += ' LIKE ' + this.like.toString(); + return s; + }; + yy.ShowTables.prototype.execute = function (databaseid, params, cb) { + var db = alasql.databases[this.databaseid || databaseid]; + + var self = this; + var res = []; + for (var tableid in db.tables) { + res.push({tableid: tableid}); + } + if (self.like && res && res.length > 0) { + res = res.filter(function (d) { + //return d.tableid.match(new RegExp((self.like.value||'').replace(/\%/g,'.*').replace(/\?|_/g,'.'),'g')); + return alasql.utils.like(self.like.value, d.tableid); + }); + } + if (cb) cb(res); + return res; + }; + + yy.ShowColumns = function (params) { + return Object.assign(this, params); + }; + yy.ShowColumns.prototype.toString = function () { + var s = 'SHOW COLUMNS'; + if (this.table.tableid) s += ' FROM ' + this.table.tableid; + if (this.databaseid) s += ' FROM ' + this.databaseid; + return s; + }; + + yy.ShowColumns.prototype.execute = function (databaseid, params, cb) { + var db = alasql.databases[this.databaseid || databaseid]; + var table = db.tables[this.table.tableid]; + + if (table && table.columns) { + var res = table.columns.map(function (col) { + return { + columnid: col.columnid, + dbtypeid: col.dbtypeid, + dbsize: col.dbsize, + }; + }); + if (cb) cb(res); + return res; + } else { + if (cb) cb([]); + return []; + } + }; + + yy.ShowIndex = function (params) { + return Object.assign(this, params); + }; + yy.ShowIndex.prototype.toString = function () { + var s = 'SHOW INDEX'; + if (this.table.tableid) s += ' FROM ' + this.table.tableid; + if (this.databaseid) s += ' FROM ' + this.databaseid; + return s; + }; + yy.ShowIndex.prototype.execute = function (databaseid, params, cb) { + var db = alasql.databases[this.databaseid || databaseid]; + var table = db.tables[this.table.tableid]; + var res = []; + if (table && table.indices) { + for (var ind in table.indices) { + res.push({hh: ind, len: Object.keys(table.indices[ind]).length}); + } + } + + if (cb) cb(res); + return res; + }; + + yy.ShowCreateTable = function (params) { + return Object.assign(this, params); + }; + yy.ShowCreateTable.prototype.toString = function () { + var s = 'SHOW CREATE TABLE ' + this.table.tableid; + if (this.databaseid) s += ' FROM ' + this.databaseid; + return s; + }; + yy.ShowCreateTable.prototype.execute = function (databaseid) { + var db = alasql.databases[this.databaseid || databaseid]; + var table = db.tables[this.table.tableid]; + if (table) { + var s = 'CREATE TABLE ' + this.table.tableid + ' ('; + var ss = []; + if (table.columns) { + table.columns.forEach(function (col) { + var a = col.columnid + ' ' + col.dbtypeid; + if (col.dbsize) a += '(' + col.dbsize + ')'; + if (col.primarykey) a += ' PRIMARY KEY'; + // TODO extend + ss.push(a); + }); + s += ss.join(', '); + } + s += ')'; + return s; + } else { + throw new Error('There is no such table "' + this.table.tableid + '"'); + } + }; + /* + // + // SET for Alasql.js + // Date: 01.12.2014 + // (c) 2014, Andrey Gershun + // + */ + + yy.SetVariable = function (params) { + return Object.assign(this, params); + }; + yy.SetVariable.prototype.toString = function () { + var s = 'SET '; + if (typeof this.value != 'undefined') + s += this.variable.toUpperCase() + ' ' + (this.value ? 'ON' : 'OFF'); + if (this.expression) s += this.method + this.variable + ' = ' + this.expression.toString(); + return s; + }; + + yy.SetVariable.prototype.execute = function (databaseid, params, cb) { + + if (typeof this.value != 'undefined') { + var val = this.value; + if (val == 'ON') val = true; + else if (val == 'OFF') val = false; + // if(this.method == '@') { + alasql.options[this.variable] = val; + // } else { + // params[this.variable] = val; + // } + } else if (this.expression) { + if (this.exists) { + this.existsfn = this.exists.map(function (ex) { + var nq = ex.compile(databaseid); + if (nq.query && !nq.query.modifier) nq.query.modifier = 'RECORDSET'; + return nq; + // return ex.compile(databaseid); + // TODO Include modifier + }); + } + if (this.queries) { + this.queriesfn = this.queries.map(function (q) { + var nq = q.compile(databaseid); + if (nq.query && !nq.query.modifier) nq.query.modifier = 'RECORDSET'; + return nq; + // TODO Include modifier + }); + } + + var res = new Function( + 'params,alasql', + 'return ' + this.expression.toJS('({})', '', null) + ).bind(this)(params, alasql); + if (alasql.declares[this.variable]) { + res = alasql.stdfn.CONVERT(res, alasql.declares[this.variable]); + } + if (this.props && this.props.length > 0) { + if (this.method == '@') { + var fs = "alasql.vars['" + this.variable + "']"; + } else { + var fs = "params['" + this.variable + "']"; + } + fs += this.props + .map(function (prop) { + if (typeof prop == 'string') { + return "['" + prop + "']"; + } else if (typeof prop == 'number') { + return '[' + prop + ']'; + } else { + + return '[' + prop.toJS() + ']'; + // } else { + + // throw new Error('Wrong SET property'); + } + }) + .join(); + + new Function('value,params,alasql', 'var y;' + fs + '=value')(res, params, alasql); + } else { + if (this.method == '@') { + alasql.vars[this.variable] = res; + } else { + params[this.variable] = res; + } + } + } + var res = 1; + if (cb) res = cb(res); + return res; + }; + alasql.test = function (name, times, fn) { + if (arguments.length === 0) { + alasql.log(alasql.con.results); + return; + } + + var tm = Date.now(); + + if (arguments.length === 1) { + fn(); + alasql.con.log(Date.now() - tm); + return; + } + + if (arguments.length === 2) { + fn = times; + times = 1; + } + + for (var i = 0; i < times; i++) { + fn(); + } + alasql.con.results[name] = Date.now() - tm; + }; + + // Console + // alasql.log = function(sql, params) { + + // }; + + /* global alasql, yy, utils */ + + // Console + alasql.log = function (sql, params) { + var olduseid = alasql.useid; + var target = alasql.options.logtarget; + // For node other + if (utils.isNode) { + target = 'console'; + } + + var res; + if (typeof sql === 'string') { + res = alasql(sql, params); + } else { + res = sql; + } + + // For Node and console.output + if (target === 'console' || utils.isNode) { + if (typeof sql === 'string' && alasql.options.logprompt) { + console.log(olduseid + '>', sql); + } + + if (Array.isArray(res)) { + if (console.table) { + // For Chrome and other consoles + console.table(res); + } else { + // Add print procedure + console.log(JSONtoString(res)); + } + } else { + console.log(JSONtoString(res)); + } + } else { + var el; + if (target === 'output') { + el = document.getElementsByTagName('output')[0]; + } else { + if (typeof target === 'string') { + el = document.getElementById(target); + } else { + // in case of DOM + el = target; + } + } + + var s = ''; + + if (typeof sql === 'string' && alasql.options.logprompt) { + // s += '

'+olduseid+'> '+alasql.pretty(sql)+'

'; + s += '
' + alasql.pretty(sql) + '
'; + } + + if (Array.isArray(res)) { + if (res.length === 0) { + s += '

[ ]

'; + } else if (typeof res[0] !== 'object' || Array.isArray(res[0])) { + for (var i = 0, ilen = res.length; i < ilen; i++) { + s += '

' + loghtml(res[i]) + '

'; + } + } else { + s += loghtml(res); + } + } else { + s += loghtml(res); + } + el.innerHTML += s; + } + }; + + alasql.clear = function () { + var target = alasql.options.logtarget; + // For node other + + if (utils.isNode || utils.isMeteorServer) { + if (console.clear) { + console.clear(); + } + } else { + var el; + if (target === 'output') { + el = document.getElementsByTagName('output')[0]; + } else { + if (typeof target === 'string') { + el = document.getElementById(target); + } else { + // in case of DOM + el = target; + } + } + el.innerHTML = ''; + } + }; + + alasql.write = function (s) { + + var target = alasql.options.logtarget; + // For node other + if (utils.isNode || utils.isMeteorServer) { + if (console.log) { + console.log(s); + } + } else { + var el; + if (target === 'output') { + el = document.getElementsByTagName('output')[0]; + } else { + if (typeof target === 'string') { + el = document.getElementById(target); + } else { + // in case of DOM + el = target; + } + } + el.innerHTML += s; + } + }; + + function loghtml(res) { + + var s = ''; + if (res === undefined) { + s += 'undefined'; + } else if (Array.isArray(res)) { + s += ''; + s += ''; + var cols = []; + for (var colid in res[0]) { + cols.push(colid); + } + s += '
#'; + cols.forEach(function (colid) { + s += '' + colid; + }); + for (var i = 0, ilen = res.length; i < ilen; i++) { + s += '
' + (i + 1); + cols.forEach(function (colid) { + s += ' '; + if (res[i][colid] == +res[i][colid]) { + // jshint ignore:line + s += '
'; + if (typeof res[i][colid] === 'undefined') { + s += 'NULL'; + } else { + s += res[i][colid]; + } + s += '
'; + } else { + if (typeof res[i][colid] === 'undefined') { + s += 'NULL'; + } else if (typeof res[i][colid] === 'string') { + s += res[i][colid]; + } else { + s += JSONtoString(res[i][colid]); + } + // s += res[i][colid]; + } + }); + } + + s += '
'; + } else { + s += '

' + JSONtoString(res) + '

'; + } + // if() {} + + // if(typeof res == 'object') { + // s += '

'+JSON.stringify(res)+'

'; + // } else { + // } + return s; + } + + function scrollTo(element, to, duration) { + if (duration <= 0) { + return; + } + var difference = to - element.scrollTop; + var perTick = (difference / duration) * 10; + + setTimeout(function () { + if (element.scrollTop === to) { + return; + } + element.scrollTop = element.scrollTop + perTick; + scrollTo(element, to, duration - 10); + }, 10); + } + + alasql.prompt = function (el, useidel, firstsql) { + if (utils.isNode) { + throw new Error('The prompt not realized for Node.js'); + } + + var prompti = 0; + + if (typeof el === 'string') { + el = document.getElementById(el); + } + + if (typeof useidel === 'string') { + useidel = document.getElementById(useidel); + } + + useidel.textContent = alasql.useid; + + if (firstsql) { + alasql.prompthistory.push(firstsql); + prompti = alasql.prompthistory.length; + try { + var tm = Date.now(); + alasql.log(firstsql); + alasql.write('

' + (Date.now() - tm) + ' ms

'); + } catch (err) { + alasql.write('

' + alasql.useid + '> ' + firstsql + '

'); + alasql.write('

' + err + '

'); + } + } + + var y = el.getBoundingClientRect().top + document.getElementsByTagName('body')[0].scrollTop; + scrollTo(document.getElementsByTagName('body')[0], y, 500); + + el.onkeydown = function (event) { + if (event.which === 13) { + var sql = el.value; + var olduseid = alasql.useid; + el.value = ''; + alasql.prompthistory.push(sql); + prompti = alasql.prompthistory.length; + try { + var tm = Date.now(); + alasql.log(sql); + alasql.write('

' + (Date.now() - tm) + ' ms

'); + } catch (err) { + alasql.write('

' + olduseid + '> ' + alasql.pretty(sql, false) + '

'); + alasql.write('

' + err + '

'); + } + el.focus(); + + useidel.textContent = alasql.useid; + var y = el.getBoundingClientRect().top + document.getElementsByTagName('body')[0].scrollTop; + scrollTo(document.getElementsByTagName('body')[0], y, 500); + } else if (event.which === 38) { + prompti--; + if (prompti < 0) { + prompti = 0; + } + if (alasql.prompthistory[prompti]) { + el.value = alasql.prompthistory[prompti]; + event.preventDefault(); + } + } else if (event.which === 40) { + prompti++; + if (prompti >= alasql.prompthistory.length) { + prompti = alasql.prompthistory.length; + el.value = ''; + } else if (alasql.prompthistory[prompti]) { + el.value = alasql.prompthistory[prompti]; + event.preventDefault(); + } + } + }; + }; + /* + // + // Commit for Alasql.js + // Date: 01.12.2014 + // (c) 2014, Andrey Gershun + // + */ + yy.BeginTransaction = function (params) { + return Object.assign(this, params); + }; + yy.BeginTransaction.prototype.toString = function () { + return 'BEGIN TRANSACTION'; + }; + + yy.BeginTransaction.prototype.execute = function (databaseid, params, cb) { + var res = 1; + if (alasql.databases[databaseid].engineid) { + return alasql.engines[alasql.databases[alasql.useid].engineid].begin(databaseid, cb); + } + if (cb) cb(res); + return res; + }; + + yy.CommitTransaction = function (params) { + return Object.assign(this, params); + }; + yy.CommitTransaction.prototype.toString = function () { + return 'COMMIT TRANSACTION'; + }; + + yy.CommitTransaction.prototype.execute = function (databaseid, params, cb) { + var res = 1; + if (alasql.databases[databaseid].engineid) { + return alasql.engines[alasql.databases[alasql.useid].engineid].commit(databaseid, cb); + } + if (cb) cb(res); + return res; + }; + + yy.RollbackTransaction = function (params) { + return Object.assign(this, params); + }; + yy.RollbackTransaction.prototype.toString = function () { + return 'ROLLBACK TRANSACTION'; + }; + + yy.RollbackTransaction.prototype.execute = function (databaseid, params, cb) { + var res = 1; + if (alasql.databases[databaseid].engineid) { + return alasql.engines[alasql.databases[databaseid].engineid].rollback(databaseid, cb); + } + if (cb) cb(res); + return res; + }; + if (alasql.options.tsql) { + // + // Check tables and views + // IF OBJECT_ID('dbo.Employees') IS NOT NULL + // DROP TABLE dbo.Employees; + // IF OBJECT_ID('dbo.VSortedOrders', 'V') IS NOT NULL + // DROP VIEW dbo.VSortedOrders; + + alasql.stdfn.OBJECT_ID = function (name, type) { + if (typeof type == 'undefined') type = 'T'; + type = type.toUpperCase(); + + var sname = name.split('.'); + var dbid = alasql.useid; + var objname = sname[0]; + if (sname.length == 2) { + dbid = sname[0]; + objname = sname[1]; + } + + var tables = alasql.databases[dbid].tables; + dbid = alasql.databases[dbid].databaseid; + for (var tableid in tables) { + if (tableid == objname) { + // TODO: What OBJECT_ID actually returns + + if (tables[tableid].view && type == 'V') return dbid + '.' + tableid; + if (!tables[tableid].view && type == 'T') return dbid + '.' + tableid; + return undefined; + } + } + + return undefined; + }; + } + if (alasql.options.mysql) { + alasql.fn.TIMESTAMPDIFF = function (unit, date1, date2) { + return alasql.stdfn.DATEDIFF(unit, date1, date2); + }; + } + + if (alasql.options.mysql || alasql.options.sqlite) { + // Pseudo INFORMATION_SCHEMA function + alasql.from.INFORMATION_SCHEMA = function (filename, opts, cb, idx, query) { + if (filename == 'VIEWS' || filename == 'TABLES') { + var res = []; + for (var databaseid in alasql.databases) { + var tables = alasql.databases[databaseid].tables; + for (var tableid in tables) { + if ( + (tables[tableid].view && filename == 'VIEWS') || + (!tables[tableid].view && filename == 'TABLES') + ) { + res.push({TABLE_CATALOG: databaseid, TABLE_NAME: tableid}); + } + } + } + if (cb) res = cb(res, idx, query); + return res; + } + throw new Error('Unknown INFORMATION_SCHEMA table'); + }; + } + if (alasql.options.postgres) ; + if (alasql.options.oracle) ; + if (alasql.options.sqlite) ; + // + // into functions + // + // (c) 2014 Andrey Gershun + // + + alasql.into.SQL = function (filename, opts, data, columns, cb) { + var res; + if (typeof filename === 'object') { + opts = filename; + filename = undefined; + } + var opt = {}; + alasql.utils.extend(opt, opts); + if (typeof opt.tableid === 'undefined') { + throw new Error('Table for INSERT TO is not defined.'); + } + + var s = ''; + if (columns.length === 0) { + if (typeof data[0] === 'object') { + columns = Object.keys(data[0]).map(function (columnid) { + return {columnid: columnid}; + }); + } + } + + for (var i = 0, ilen = data.length; i < ilen; i++) { + s += 'INSERT INTO ' + opts.tableid + '('; + s += columns + .map(function (col) { + return col.columnid; + }) + .join(','); + s += ') VALUES ('; + s += columns.map(function (col) { + var val = data[i][col.columnid]; + if (col.typeid) { + if ( + col.typeid === 'STRING' || + col.typeid === 'VARCHAR' || + col.typeid === 'NVARCHAR' || + col.typeid === 'CHAR' || + col.typeid === 'NCHAR' + ) { + val = "'" + escapeqq(val) + "'"; + } + } else { + if (typeof val == 'string') { + val = "'" + escapeqq(val) + "'"; + } + } + return val; + }); + s += ');\n'; + } + // if(filename === '') { + // res = s; + // } else { + // res = data.length; + filename = alasql.utils.autoExtFilename(filename, 'sql', opts); + res = alasql.utils.saveFile(filename, s); + if (cb) { + res = cb(res); + } + return res; + }; + + alasql.into.HTML = function (selector, opts, data, columns, cb) { + var res = 1; + if (typeof document !== 'object') { + var opt = {headers: true}; + alasql.utils.extend(opt, opts); + + var sel = document.querySelector(selector); + if (!sel) { + throw new Error('Selected HTML element is not found'); + } + + if (columns.length === 0) { + if (typeof data[0] === 'object') { + columns = Object.keys(data[0]).map(function (columnid) { + return {columnid: columnid}; + }); + } + } + + var tbe = document.createElement('table'); + var thead = document.createElement('thead'); + tbe.appendChild(thead); + if (opt.headers) { + var tre = document.createElement('tr'); + for (var i = 0; i < columns.length; i++) { + var the = document.createElement('th'); + the.textContent = columns[i].columnid; + tre.appendChild(the); + } + thead.appendChild(tre); + } + + var tbody = document.createElement('tbody'); + tbe.appendChild(tbody); + for (var j = 0; j < data.length; j++) { + var tre = document.createElement('tr'); + for (var i = 0; i < columns.length; i++) { + var the = document.createElement('td'); + the.textContent = data[j][columns[i].columnid]; + tre.appendChild(the); + } + tbody.appendChild(tre); + } + alasql.utils.domEmptyChildren(sel); + + sel.appendChild(tbe); + } + if (cb) { + res = cb(res); + } + return res; + }; + + alasql.into.JSON = function (filename, opts, data, columns, cb) { + var res = 1; + if (typeof filename === 'object') { + opts = filename; + filename = undefined; + } + var s = JSON.stringify(data); + + filename = alasql.utils.autoExtFilename(filename, 'json', opts); + res = alasql.utils.saveFile(filename, s); + if (cb) { + res = cb(res); + } + return res; + }; + + alasql.into.TXT = function (filename, opts, data, columns, cb) { + // If columns is empty + if (columns.length === 0 && data.length > 0) { + columns = Object.keys(data[0]).map(function (columnid) { + return {columnid: columnid}; + }); + } + // If one parameter + if (typeof filename === 'object') { + opts = filename; + filename = undefined; + } + + var res = data.length; + var s = ''; + if (data.length > 0) { + var key = columns[0].columnid; + s += data + .map(function (d) { + return d[key]; + }) + .join('\n'); + } + + // } else { + // if(utils.isNode) { + // process.stdout.write(s); + // } else { + + // }; + // } + filename = alasql.utils.autoExtFilename(filename, 'txt', opts); + res = alasql.utils.saveFile(filename, s); + if (cb) { + res = cb(res); + } + return res; + }; + + alasql.into.TAB = alasql.into.TSV = function (filename, opts, data, columns, cb) { + var opt = {}; + alasql.utils.extend(opt, opts); + opt.separator = '\t'; + filename = alasql.utils.autoExtFilename(filename, 'tab', opts); + opt.autoExt = false; + return alasql.into.CSV(filename, opt, data, columns, cb); + }; + + alasql.into.CSV = function (filename, opts, data, columns, cb) { + if (columns.length === 0 && data.length > 0) { + columns = Object.keys(data[0]).map(function (columnid) { + return {columnid: columnid}; + }); + } + if (typeof filename === 'object') { + opts = filename; + filename = undefined; + } + + var opt = {headers: true}; + //opt.separator = ','; + opt.separator = ';'; + opt.quote = '"'; + + opt.utf8Bom = true; + if (opts && !opts.headers && typeof opts.headers !== 'undefined') { + opt.utf8Bom = false; + } + + alasql.utils.extend(opt, opts); + var res = data.length; + var s = opt.utf8Bom ? '\ufeff' : ''; + if (opt.headers) { + s += + opt.quote + + columns + .map(function (col) { + return col.columnid.trim(); + }) + .join(opt.quote + opt.separator + opt.quote) + + opt.quote + + '\r\n'; + } + + data.forEach(function (d) { + s += + columns + .map(function (col) { + var s = d[col.columnid]; + // escape the character wherever it appears in the field + if (opt.quote !== '') { + s = (s + '').replace(new RegExp('\\' + opt.quote, 'g'), opt.quote + opt.quote); + } + // if((s+"").indexOf(opt.separator) > -1 || (s+"").indexOf(opt.quote) > -1) s = opt.quote + s + opt.quote; + + //Excel 2013 needs quotes around strings - thanks for _not_ complying with RFC for CSV + if (+s != s) { + // jshint ignore:line + s = opt.quote + s + opt.quote; + } + + return s; + }) + .join(opt.separator) + '\r\n'; + }); + + filename = alasql.utils.autoExtFilename(filename, 'csv', opts); + res = alasql.utils.saveFile(filename, s, null, {disableAutoBom: true}); + if (cb) { + res = cb(res); + } + return res; + }; + // + // 831xl.js - Coloring Excel + // 18.04.2015 + // Generate XLS file with colors and styles + // with Excel + + alasql.into.XLS = function (filename, opts, data, columns, cb) { + // If filename is not defined then output to the result + if (typeof filename == 'object') { + opts = filename; + filename = undefined; + } + + // Set sheets + var sheets = {}; + if (opts && opts.sheets) { + sheets = opts.sheets; + } + + // Default sheet + var sheet = {headers: true}; + if (typeof sheets['Sheet1'] != 'undefined') { + sheet = sheets[0]; + } else { + if (typeof opts != 'undefined') { + sheet = opts; + } + } + + // Set sheet name and default is 'Sheet1' + if (typeof sheet.sheetid == 'undefined') { + sheet.sheetid = 'Sheet1'; + } + + var s = toHTML(); + + // File is ready to save + filename = alasql.utils.autoExtFilename(filename, 'xls', opts); + var res = alasql.utils.saveFile(filename, s); + if (cb) res = cb(res); + return res; + + function toHTML() { + // Generate prologue + var s = + ' \ + \ + '; + + // Generate body + s += ' 0) { + if (typeof data[0] == 'object') { + if (Array.isArray(data[0])) { + columns = data[0].map(function (d, columnidx) { + return {columnid: columnidx}; + }); + } else { + columns = Object.keys(data[0]).map(function (columnid) { + return {columnid: columnid}; + }); + } + } + } + } + + // Prepare columns + columns.forEach(function (column, columnidx) { + if (typeof sheet.column != 'undefined') { + extend(column, sheet.column); + } + + if (typeof column.width == 'undefined') { + if (sheet.column && sheet.column.width != 'undefined') { + column.width = sheet.column.width; + } else { + column.width = '120px'; + } + } + if (typeof column.width == 'number') column.width = column.width + 'px'; + if (typeof column.columnid == 'undefined') column.columnid = columnidx; + if (typeof column.title == 'undefined') column.title = '' + column.columnid.trim(); + if (sheet.headers && Array.isArray(sheet.headers)) column.title = sheet.headers[columnidx]; + }); + + // Set columns widths + s += ''; + columns.forEach(function (column) { + s += ''; + }); + s += ''; + + // Headers + if (sheet.headers) { + s += ''; + s += ''; + + // TODO: Skip columns to body + + // Headers + columns.forEach(function (column, columnidx) { + s += ' 0) { + // TODO: Skip columns to body + + // Loop over data rows + data.forEach(function (row, rowidx) { + // Limit number of rows on the sheet + if (rowidx > sheet.limit) return; + // Create row + s += ' \ + \ + \ + \ + \ + \ + \ + \ + 0 \ + \ + \ + '; + + var s2 = ''; // for styles + + var s3 = ' '; + + var styles = {}; // hash based storage for styles + var stylesn = 62; // First style + + // Generate style + function hstyle(st) { + // Prepare string + var s = ''; + for (var key in st) { + s += '<' + key; + for (var attr in st[key]) { + s += ' '; + if (attr.substr(0, 2) == 'x:') { + s += attr; + } else { + s += 'ss:'; + } + s += attr + '=' + JSON.stringify(st[key][attr]); + } + s += '/>'; + } + + var hh = hash(s); + // Store in hash + if (styles[hh]) ; else { + styles[hh] = {styleid: stylesn}; + s2 += `'; + stylesn++; + } + return 's' + styles[hh].styleid; + } + + function values(obj) { + try { + return Object.values(obj); + } catch (e) { + // support for older runtimes + return Object.keys(obj).map(function (e) { + return obj[e]; + }); + } + } + + var sheetidx = 0; + for (var sheetid in sheets) { + var sheet = sheets[sheetid]; + var idx = typeof sheet.dataidx != 'undefined' ? sheet.dataidx : sheetidx++; + var data = values(sheetsdata[idx]); + // If columns defined in sheet, then take them + var columns = undefined; + if (typeof sheet.columns != 'undefined') { + columns = sheet.columns; + } else { + // Autogenerate columns if they are passed as parameters + columns = sheetscolumns[idx]; + if (columns === undefined || (columns.length == 0 && data.length > 0)) { + if (typeof data[0] == 'object') { + if (Array.isArray(data[0])) { + columns = data[0].map(function (d, columnidx) { + return {columnid: columnidx}; + }); + } else { + columns = Object.keys(data[0]).map(function (columnid) { + return {columnid: columnid}; + }); + } + } + } + } + + // Prepare columns + columns.forEach(function (column, columnidx) { + if (typeof sheet.column != 'undefined') { + extend(column, sheet.column); + } + + if (typeof column.width == 'undefined') { + if (sheet.column && typeof sheet.column.width != 'undefined') { + column.width = sheet.column.width; + } else { + column.width = 120; + } + } + if (typeof column.width == 'number') column.width = column.width; + if (typeof column.columnid == 'undefined') column.columnid = columnidx; + if (typeof column.title == 'undefined') column.title = '' + column.columnid.trim(); + if (sheet.headers && Array.isArray(sheet.headers)) column.title = sheet.headers[columnidx]; + }); + + // Header + s3 += + ' \ + '; + + columns.forEach(function (column, columnidx) { + s3 += ` + `; + }); + + // Headers + if (sheet.headers) { + s3 += ''; + + // TODO: Skip columns to body + + // Headers + columns.forEach(function (column, columnidx) { + s3 += ' 0) { + // Loop over data rows + data.forEach(function (row, rowidx) { + // Limit number of rows on the sheet + if (rowidx > sheet.limit) return; + + // Extend row properties + var srow = {}; + extend(srow, sheet.row); + if (sheet.rows && sheet.rows[rowidx]) { + extend(srow, sheet.rows[rowidx]); + } + + s3 += '' + + // Data + columns.forEach(function (column, columnidx) { + // Parameters + var cell = {}; + extend(cell, sheet.cell); + extend(cell, srow.cell); + if (typeof sheet.column != 'undefined') { + extend(cell, sheet.column.cell); + } + extend(cell, column.cell); + if (sheet.cells && sheet.cells[rowidx] && sheet.cells[rowidx][columnidx]) { + extend(cell, sheet.cells[rowidx][columnidx]); + } + + // Create value + var value = row[column.columnid]; + if (typeof cell.value == 'function') { + value = cell.value(value, sheet, row, column, cell, rowidx, columnidx); + } + + // Define cell type + var typeid = cell.typeid; + if (typeof typeid == 'function') { + typeid = typeid(value, sheet, row, column, cell, rowidx, columnidx); + } + + if (typeof typeid == 'undefined') { + if (typeof value == 'number') typeid = 'number'; + else if (typeof value == 'string') typeid = 'string'; + else if (typeof value == 'boolean') typeid = 'boolean'; + else if (typeof value == 'object') { + if (value instanceof Date) typeid = 'date'; + } + } + + var Type = 'String'; + if (typeid == 'number') Type = 'Number'; + else if (typeid == 'date') Type = 'Date'; + + if (typeid == 'money') ; else if (typeid == 'number') ; else if (typeid == 'date') ; else { + // For other types is saved + if (opts.types && opts.types[typeid] && opts.types[typeid].typestyle) { + opts.types[typeid].typestyle; + } + } + + s3 += ''; + + // TODO Replace with extend... + var format = cell.format; + if (typeof value == 'undefined') { + s3 += ''; + } else if (typeof format != 'undefined') { + if (typeof format == 'function') { + s3 += format(value); + } else if (typeof format == 'string') { + s3 += value; // TODO - add string format + } else { + throw new Error('Unknown format type. Should be function or string'); + } + } else { + if (typeid == 'number' || typeid == 'date') { + s3 += value.toString(); + } else if (typeid == 'money') { + s3 += (+value).toFixed(2); + } else { + s3 += value; + } + } + + // s3 += row[column.columnid]; + s3 += ''; + }); + + s3 += ''; + }); + } + // Finish + s3 += '
'; + } + + s3 += '
'; + + return s1 + s2 + s3; + } + }; + /** + Export to XLSX function + @function + @param {string|object} filename Filename or options + @param {object|undefined} opts Options or undefined + @param {array} data Data + @param {array} columns Columns + @parab {callback} cb Callback function + @return {number} Number of files processed + */ + + alasql.into.XLSX = function (filename, opts, data, columns, cb) { + /** @type {number} result */ + var res = 1; + opts = opts || {}; + + if (deepEqual(columns, [{columnid: '_'}])) { + data = data.map(function (dat) { + return dat._; + }); + columns = undefined; + // res = [{_:1}]; + } + + filename = alasql.utils.autoExtFilename(filename, 'xlsx', opts); + + var XLSX = getXLSX(); + + /* If called without filename, use opts */ + if (typeof filename == 'object') { + // todo: check if data, clumns and cb also should be shifted. + opts = filename; + filename = undefined; + } + + /** @type {object} Workbook */ + var wb = {SheetNames: [], Sheets: {}}; + + // ToDo: check if cb must be treated differently here + if (opts.sourcefilename) { + alasql.utils.loadBinaryFile(opts.sourcefilename, !!cb, function (data) { + wb = XLSX.read(data, {type: 'binary', ...alasql.options.excel, ...opts}); + doExport(); + }); + } else { + doExport(); + } + + /* Return result */ + if (cb) res = cb(res); + return res; + + /** + Export workbook + @function + */ + function doExport() { + /* + If opts is array of arrays then this is a + multisheet workboook, else it is a singlesheet + */ + if (typeof opts == 'object' && Array.isArray(opts)) { + if (data && data.length > 0) { + data.forEach(function (dat, idx) { + prepareSheet(opts[idx], dat, undefined, idx + 1); + }); + } + } else { + prepareSheet(opts, data, columns, 1); + } + + saveWorkbook(); + } + + /** + Prepare sheet + @params {object} opts + @params {array|object} data + @params {array} columns Columns + */ + function prepareSheet(opts, data, columns, idx) { + /** Default options for sheet */ + var opt = {sheetid: 'Sheet ' + idx, headers: true}; + alasql.utils.extend(opt, opts); + + var dataLength = Object.keys(data).length; + + // Generate columns if they are not defined + if ((!columns || columns.length == 0) && dataLength > 0) { + columns = Object.keys(data[0]).map(function (columnid) { + return {columnid: columnid}; + }); + } + + var cells = {}; + + if (wb.SheetNames.indexOf(opt.sheetid) > -1) { + cells = wb.Sheets[opt.sheetid]; + } else { + wb.SheetNames.push(opt.sheetid); + wb.Sheets[opt.sheetid] = {}; + cells = wb.Sheets[opt.sheetid]; + } + + var range = 'A1'; + if (opt.range) range = opt.range; + + var col0 = alasql.utils.xlscn(range.match(/[A-Z]+/)[0]); + var row0 = +range.match(/[0-9]+/)[0] - 1; + + if (wb.Sheets[opt.sheetid]['!ref']) { + var rangem = wb.Sheets[opt.sheetid]['!ref']; + var colm = alasql.utils.xlscn(rangem.match(/[A-Z]+/)[0]); + var rowm = +rangem.match(/[0-9]+/)[0] - 1; + } else { + var colm = 1, + rowm = 1; + } + var zeroColumnFix = columns.length ? 0 : 1; + var colmax = Math.max(col0 + columns.length - 1 + zeroColumnFix, colm); + var rowmax = Math.max(row0 + dataLength + 2, rowm); + + var i = row0 + 1; + + wb.Sheets[opt.sheetid]['!ref'] = 'A1:' + alasql.utils.xlsnc(colmax) + rowmax; + // var i = 1; + + if (opt.headers) { + columns.forEach(function (col, idx) { + cells[alasql.utils.xlsnc(col0 + idx) + '' + i] = { + v: col.columnid.trim(), + }; + }); + i++; + } + + for (var j = 0; j < dataLength; j++) { + columns.forEach(function (col, idx) { + var cell = {v: data[j][col.columnid]}; + if (typeof data[j][col.columnid] == 'number') { + cell.t = 'n'; + } else if (typeof data[j][col.columnid] == 'string') { + cell.t = 's'; + } else if (typeof data[j][col.columnid] == 'boolean') { + cell.t = 'b'; + } else if (typeof data[j][col.columnid] == 'object') { + if (data[j][col.columnid] instanceof Date) { + cell.t = 'd'; + } + } + cells[alasql.utils.xlsnc(col0 + idx) + '' + i] = cell; + }); + i++; + } + } + + /** + Save Workbook + @params {array} wb Workbook + @params {callback} cb Callback + */ + function saveWorkbook(cb) { + + var XLSX; + + if (typeof filename == 'undefined') { + res = wb; + } else { + XLSX = getXLSX(); + + if (utils.isNode || utils.isMeteorServer) { + XLSX.writeFile(wb, filename); + } else { + var wopts = {bookType: 'xlsx', bookSST: false, type: 'binary'}; + var wbout = XLSX.write(wb, wopts); + + var s2ab = function (s) { + var buf = new ArrayBuffer(s.length); + var view = new Uint8Array(buf); + for (var i = 0; i != s.length; ++i) view[i] = s.charCodeAt(i) & 0xff; + return buf; + }; + + saveAs(new Blob([s2ab(wbout)], {type: 'application/octet-stream'}), filename); + } + } + + } + }; + /* + // + // FROM functions Alasql.js + // Date: 11.12.2014 + // (c) 2014, Andrey Gershun + // + */ + + /** + Meteor + */ + + /* global alasql Tabletop document Event */ + + alasql.from.METEOR = function (filename, opts, cb, idx, query) { + var res = filename.find(opts).fetch(); + if (cb) { + res = cb(res, idx, query); + } + return res; + }; + + /** + Google Spreadsheet reader + */ + alasql.from.TABLETOP = function (key, opts, cb, idx, query) { + var res = []; + + var opt = {headers: true, simpleSheet: true, key: key}; + alasql.utils.extend(opt, opts); + opt.callback = function (data) { + res = data; + if (cb) { + res = cb(res, idx, query); + } + }; + + Tabletop.init(opt); + return null; + }; + + alasql.from.HTML = function (selector, opts, cb, idx, query) { + var opt = {}; + alasql.utils.extend(opt, opts); + + var sel = document.querySelector(selector); + if (!sel && sel.tagName !== 'TABLE') { + throw new Error('Selected HTML element is not a TABLE'); + } + + var res = []; + var headers = opt.headers; + + if (headers && !Array.isArray(headers)) { + headers = []; + var ths = sel.querySelector('thead tr').children; + for (var i = 0; i < ths.length; i++) { + if (!(ths.item(i).style && ths.item(i).style.display === 'none' && opt.skipdisplaynone)) { + headers.push(ths.item(i).textContent); + } else { + headers.push(undefined); + } + } + } + + var trs = sel.querySelectorAll('tbody tr'); + + for (var j = 0; j < trs.length; j++) { + var tds = trs.item(j).children; + var r = {}; + for (i = 0; i < tds.length; i++) { + if (!(tds.item(i).style && tds.item(i).style.display === 'none' && opt.skipdisplaynone)) { + if (headers) { + r[headers[i]] = tds.item(i).textContent; + } else { + r[i] = tds.item(i).textContent; + + } + } + } + res.push(r); + } + + if (cb) { + res = cb(res, idx, query); + } + return res; + }; + + alasql.from.RANGE = function (start, finish, cb, idx, query) { + var res = []; + for (var i = start; i <= finish; i++) { + res.push(i); + } + // res = new alasql.Recordset({data:res,columns:{columnid:'_'}}); + if (cb) { + res = cb(res, idx, query); + } + return res; + }; + + // Read data from any file + alasql.from.FILE = function (filename, opts, cb, idx, query) { + var fname; + if (typeof filename === 'string') { + fname = filename; + } else if (filename instanceof Event) { + fname = filename.target.files[0].name; + } else { + throw new Error('Wrong usage of FILE() function'); + } + + var parts = fname.split('.'); + + var ext = parts[parts.length - 1].toUpperCase(); + + if (alasql.from[ext]) { + + return alasql.from[ext](filename, opts, cb, idx, query); + } else { + throw new Error('Cannot recognize file type for loading'); + } + }; + + // Read JSON file + + alasql.from.JSON = function (filename, opts, cb, idx, query) { + var res; + + filename = alasql.utils.autoExtFilename(filename, 'json', opts); + alasql.utils.loadFile(filename, !!cb, function (data) { + + // res = [{a:1}]; + res = JSON.parse(data); + if (cb) { + res = cb(res, idx, query); + } + }); + return res; + }; + + alasql.from.TXT = function (filename, opts, cb, idx, query) { + var res; + filename = alasql.utils.autoExtFilename(filename, 'txt', opts); + alasql.utils.loadFile(filename, !!cb, function (data) { + res = data.split(/\r?\n/); + + // Remove last line if empty + if (res[res.length - 1] === '') { + res.pop(); + } + for (var i = 0, ilen = res.length; i < ilen; i++) { + // Please avoid '===' here + if (res[i] == +res[i]) { + // eslint:ignore + // jshint ignore:line + res[i] = +res[i]; + } + res[i] = [res[i]]; + } + if (cb) { + res = cb(res, idx, query); + } + }); + return res; + }; + + alasql.from.TAB = alasql.from.TSV = function (filename, opts, cb, idx, query) { + opts = opts || {}; + opts.separator = '\t'; + filename = alasql.utils.autoExtFilename(filename, 'tab', opts); + opts.autoext = false; + return alasql.from.CSV(filename, opts, cb, idx, query); + }; + + alasql.from.CSV = function (contents, opts, cb, idx, query) { + contents = '' + contents; + var opt = { + separator: ',', + quote: '"', + headers: true, + raw: false, + }; + alasql.utils.extend(opt, opts); + var res; + var hs = []; + function parseText(text) { + var delimiterCode = opt.separator.charCodeAt(0); + var quoteCode = opt.quote.charCodeAt(0); + + var EOL = {}, + EOF = {}, + rows = [], + N = text.length, + I = 0, + n = 0, + t, + eol; + function token() { + if (I >= N) { + return EOF; + } + if (eol) { + return (eol = false), EOL; + } + var j = I; + if (text.charCodeAt(j) === quoteCode) { + var i = j; + while (i++ < N) { + if (text.charCodeAt(i) === quoteCode) { + if (text.charCodeAt(i + 1) !== quoteCode) { + break; + } + ++i; + } + } + I = i + 2; + var c = text.charCodeAt(i + 1); + if (c === 13) { + eol = true; + if (text.charCodeAt(i + 2) === 10) { + ++I; + } + } else if (c === 10) { + eol = true; + } + return text.substring(j + 1, i).replace(/""/g, '"'); + } + while (I < N) { + var c = text.charCodeAt(I++), + k = 1; + if (c === 10) { + eol = true; + } else if (c === 13) { + eol = true; + if (text.charCodeAt(I) === 10) { + ++I; + ++k; + } + } else if (c !== delimiterCode) { + continue; + } + return text.substring(j, I - k); + } + return text.substring(j); + } + + while ((t = token()) !== EOF) { + var a = []; + while (t !== EOL && t !== EOF) { + a.push(t.trim()); + t = token(); + } + + if (opt.headers) { + if (n === 0) { + if (typeof opt.headers === 'boolean') { + hs = a; + } else if (Array.isArray(opt.headers)) { + hs = opt.headers; + var r = {}; + hs.forEach(function (h, idx) { + r[h] = a[idx]; + // Please avoid === here + if ( + !opt.raw && + typeof r[h] !== 'undefined' && + r[h].length !== 0 && + r[h].trim() == +r[h] + ) { + // jshint ignore:line + r[h] = +r[h]; + } + }); + rows.push(r); + } + } else { + var r = {}; + hs.forEach(function (h, idx) { + r[h] = a[idx]; + if ( + !opt.raw && + typeof r[h] !== 'undefined' && + r[h].length !== 0 && + r[h].trim() == +r[h] + ) { + // jshint ignore:line + r[h] = +r[h]; + } + }); + rows.push(r); + } + n++; + } else { + var r = {}; + // different bug here, if headers are not defined, the numerical values will not be parsed + a.forEach(function (v, idx) { + r[idx] = a[idx]; + if ( + !opt.raw && + typeof r[idx] !== 'undefined' && + r[idx].length !== 0 && + r[idx].trim() == +r[idx] + ) { + // jshint ignore:line + r[idx] = +r[idx]; + } + }); + rows.push(r); + } + } + + res = rows; + + if (opt.headers) { + if (query && query.sources && query.sources[idx]) { + var columns = (query.sources[idx].columns = []); + hs.forEach(function (h) { + columns.push({columnid: h}); + }); + } + } + + if (cb) { + res = cb(res, idx, query); + } + } + if (new RegExp('\n').test(contents)) { + parseText(contents); + } else { + contents = alasql.utils.autoExtFilename(contents, 'csv', opts); + alasql.utils.loadFile(contents, !!cb, parseText, query.cb); + } + return res; + }; + + function XLSXLSX(X, filename, opts, cb, idx, query) { + var opt = {}; + opts = opts || {}; + alasql.utils.extend(opt, opts); + if (typeof opt.headers === 'undefined') { + opt.headers = true; + } + var res; + + /** + * see https://github.com/SheetJS/js-xlsx/blob/5ae6b1965bfe3764656a96f536b356cd1586fec7/README.md + * for example of using readAsArrayBuffer under `Parsing Workbooks` + */ + function fixdata(data) { + var o = '', + l = 0, + w = 10240; + for (; l < data.byteLength / w; ++l) + o += String.fromCharCode.apply(null, new Uint8Array(data.slice(l * w, l * w + w))); + o += String.fromCharCode.apply(null, new Uint8Array(data.slice(l * w))); + return o; + } + function getHeaderText(text) { + // if casesensitive option is set to false and there is a text value return lowercase value of text + if (text && alasql.options.casesensitive === false) { + return text.toLowerCase(); + } else { + return text; + } + } + filename = alasql.utils.autoExtFilename(filename, 'xls', opts); + alasql.utils.loadBinaryFile( + filename, + !!cb, + function (data) { + // function processData(data) { + if (data instanceof ArrayBuffer) { + var arr = fixdata(data); + var workbook = X.read(btoa(arr), { + type: 'base64', + ...alasql.options.excel, + ...opts, + }); + } else { + var workbook = X.read(data, { + type: 'binary', + ...alasql.options.excel, + ...opts, + }); + } + + var sheetid; + if (typeof opt.sheetid === 'undefined') { + sheetid = workbook.SheetNames[0]; + } else if (typeof opt.sheetid === 'number') { + sheetid = workbook.SheetNames[opt.sheetid]; + } else { + sheetid = opt.sheetid; + } + var range; + var res = []; + if (typeof opt.range === 'undefined') { + range = workbook.Sheets[sheetid]['!ref']; + } else { + range = opt.range; + if (workbook.Sheets[sheetid][range]) { + range = workbook.Sheets[sheetid][range]; + } + } + // if range has some value then data is present in the current sheet + // else current sheet is empty + if (range) { + var rg = range.split(':'); + var col0 = rg[0].match(/[A-Z]+/)[0]; + var row0 = +rg[0].match(/[0-9]+/)[0]; + var col1 = rg[1].match(/[A-Z]+/)[0]; + var row1 = +rg[1].match(/[0-9]+/)[0]; + + var hh = {}; + var xlscnCol0 = alasql.utils.xlscn(col0); + var xlscnCol1 = alasql.utils.xlscn(col1); + for (var j = xlscnCol0; j <= xlscnCol1; j++) { + var col = alasql.utils.xlsnc(j); + if (opt.headers) { + if (workbook.Sheets[sheetid][col + '' + row0]) { + hh[col] = getHeaderText(workbook.Sheets[sheetid][col + '' + row0].v); + } else { + hh[col] = getHeaderText(col); + } + } else { + hh[col] = col; + } + } + if (opt.headers) { + row0++; + } + for (var i = row0; i <= row1; i++) { + var row = {}; + for (var j = xlscnCol0; j <= xlscnCol1; j++) { + var col = alasql.utils.xlsnc(j); + if (workbook.Sheets[sheetid][col + '' + i]) { + row[hh[col]] = workbook.Sheets[sheetid][col + '' + i].v; + } + } + res.push(row); + } + } else { + res.push([]); + } + + // Remove last empty line (issue #548) + if (res.length > 0 && res[res.length - 1] && Object.keys(res[res.length - 1]).length == 0) { + res.pop(); + } + + if (cb) { + res = cb(res, idx, query); + } + }, + function (err) { + throw err; + } + ); + + return res; + } + + alasql.from.XLS = function (filename, opts, cb, idx, query) { + opts = opts || {}; + filename = alasql.utils.autoExtFilename(filename, 'xls', opts); + opts.autoExt = false; + return XLSXLSX(getXLSX(), filename, opts, cb, idx, query); + }; + + alasql.from.XLSX = function (filename, opts, cb, idx, query) { + opts = opts || {}; + filename = alasql.utils.autoExtFilename(filename, 'xlsx', opts); + opts.autoExt = false; + return XLSXLSX(getXLSX(), filename, opts, cb, idx, query); + }; + + alasql.from.ODS = function (filename, opts, cb, idx, query) { + opts = opts || {}; + filename = alasql.utils.autoExtFilename(filename, 'ods', opts); + opts.autoExt = false; + return XLSXLSX(getXLSX(), filename, opts, cb, idx, query); + }; + alasql.from.XML = function (filename, opts, cb, idx, query) { + var res; + + alasql.utils.loadFile(filename, !!cb, function (data) { + + // res = [{a:1}]; + + res = xmlparse(data).root; + + if (cb) res = cb(res, idx, query); + }); + return res; + }; + + /** + * Parse the given string of `xml`. + * + * @param {String} xml + * @return {Object} + * @api public + */ + + function xmlparse(xml) { + xml = xml.trim(); + + // strip comments + xml = xml.replace(//g, ''); + + return document(); + + /** + * XML document. + */ + + function document() { + return { + declaration: declaration(), + root: tag(), + }; + } + + /** + * Declaration. + */ + + function declaration() { + var m = match(/^<\?xml\s*/); + if (!m) return; + + // tag + var node = { + attributes: {}, + }; + + // attributes + while (!(eos() || is('?>'))) { + var attr = attribute(); + if (!attr) return node; + node.attributes[attr.name] = attr.value; + } + + match(/\?>\s*/); + + return node; + } + + /** + * Tag. + */ + + function tag() { + var m = match(/^<([\w-:.]+)\s*/); + if (!m) return; + + // name + var node = { + name: m[1], + attributes: {}, + children: [], + }; + + // attributes + while (!(eos() || is('>') || is('?>') || is('/>'))) { + var attr = attribute(); + if (!attr) return node; + node.attributes[attr.name] = attr.value; + } + + // self closing tag + if (match(/^\s*\/>\s*/)) { + return node; + } + + match(/\??>\s*/); + + // content + node.content = content(); + + // children + var child; + while ((child = tag())) { + node.children.push(child); + } + + // closing + match(/^<\/[\w-:.]+>\s*/); + + return node; + } + + /** + * Text content. + */ + + function content() { + var m = match(/^([^<]*)/); + if (m) return m[1]; + return ''; + } + + /** + * Attribute. + */ + + function attribute() { + var m = match(/([\w:-]+)\s*=\s*("[^"]*"|'[^']*'|\w+)\s*/); + if (!m) return; + return {name: m[1], value: strip(m[2])}; + } + + /** + * Strip quotes from `val`. + */ + + function strip(val) { + return val.replace(/^['"]|['"]$/g, ''); + } + + /** + * Match `re` and advance the string. + */ + + function match(re) { + var m = xml.match(re); + if (!m) return; + xml = xml.slice(m[0].length); + return m; + } + + /** + * End-of-source. + */ + + function eos() { + return 0 == xml.length; + } + + /** + * Check for `prefix`. + */ + + function is(prefix) { + return 0 == xml.indexOf(prefix); + } + } + alasql.from.GEXF = function (filename, opts, cb, idx, query) { + var res; + alasql('SEARCH FROM XML(' + filename + ')', [], function (data) { + res = data; + + if (cb) res = cb(res); + }); + return res; + }; + /* + // + // HELP for Alasql.js + // Date: 03.11.2014 + // (c) 2014, Andrey Gershun + // + */ + + /* globals: alasql, yy */ + + /** + Print statement + @class + @param {object} params Initial setup properties + */ + + /* global alasql, yy */ + + yy.Print = function (params) { + return Object.assign(this, params); + }; + + /** + Generate SQL string + @this Print statement object + */ + yy.Print.prototype.toString = function () { + var s = 'PRINT'; + if (this.statement) s += ' ' + this.statement.toString(); + return s; + }; + + /** + Print result of select statement or expression + @param {string} databaseid Database identificator + @param {object} params Query parameters + @param {statement-callback} cb Callback function + @this Print statement object + */ + yy.Print.prototype.execute = function (databaseid, params, cb) { + + var self = this; + var res = 1; + + alasql.precompile(this, databaseid, params); /** @todo Change from alasql to this */ + + if (this.exprs && this.exprs.length > 0) { + var rs = this.exprs.map(function (expr) { + + var exprfn = new Function( + 'params,alasql,p', + 'var y;return ' + expr.toJS('({})', '', null) + ).bind(self); + var r = exprfn(params, alasql); + return JSONtoString(r); + }); + console.log.apply(console, rs); + } else if (this.select) { + var r = this.select.execute(databaseid, params); + console.log(JSONtoString(r)); + } else { + console.log(); + } + + if (cb) res = cb(res); + return res; + }; + /* + // + // HELP for Alasql.js + // Date: 03.11.2014 + // (c) 2014, Andrey Gershun + // + */ + + yy.Source = function (params) { + return Object.assign(this, params); + }; + yy.Source.prototype.toString = function () { + var s = 'SOURCE'; + if (this.url) s += " '" + this.url + " '"; + return s; + }; + + // SOURCE FILE + yy.Source.prototype.execute = function (databaseid, params, cb) { + + var res; + loadFile( + this.url, + !!cb, + function (data) { + + // res = 1; + res = alasql(data); + if (cb) res = cb(res); + return res; + }, + function (err) { + throw err; + } + ); + return res; + }; + /* + // + // HELP for Alasql.js + // Date: 03.11.2014 + // (c) 2014, Andrey Gershun + // + */ + + /* global alasql, yy */ + + yy.Require = function (params) { + return Object.assign(this, params); + }; + yy.Require.prototype.toString = function () { + var s = 'REQUIRE'; + if (this.paths && this.paths.length > 0) { + s += this.paths + .map(function (path) { + return path.toString(); + }) + .join(','); + } + if (this.plugins && this.plugins.length > 0) { + s += this.plugins + .map(function (plugin) { + return plugin.toUpperCase(); + }) + .join(','); + } + return s; + }; + + /** + Attach plug-in for Alasql + */ + yy.Require.prototype.execute = function (databaseid, params, cb) { + var self = this; + var res = 0; + var ss = ''; + + if (this.paths && this.paths.length > 0) { + this.paths.forEach(function (path) { + loadFile(path.value, !!cb, function (data) { + res++; + + ss += data; + if (res < self.paths.length) return; + + new Function('params,alasql', ss)(params, alasql); + if (cb) res = cb(res); + }); + }); + } else if (this.plugins && this.plugins.length > 0) { + this.plugins.forEach(function (plugin) { + // If plugin is not loaded already + if (!alasql.plugins[plugin]) { + loadFile(alasql.path + '/alasql-' + plugin.toLowerCase() + '.js', !!cb, function (data) { + // Execute all plugins at the same time + res++; + ss += data; + if (res < self.plugins.length) return; + + new Function('params,alasql', ss)(params, alasql); + alasql.plugins[plugin] = true; // Plugin is loaded + if (cb) res = cb(res); + }); + } + }); + } else { + if (cb) res = cb(res); + } + return res; + }; + /* + // + // HELP for Alasql.js + // Date: 03.11.2014 + // (c) 2014, Andrey Gershun + // + */ + + yy.Assert = function (params) { + return Object.assign(this, params); + }; + yy.Source.prototype.toString = function () { + var s = 'ASSERT'; + if (this.value) s += ' ' + JSON.stringify(this.value); + return s; + }; + + // SOURCE FILE + yy.Assert.prototype.execute = function (databaseid) { + + if (!deepEqual(alasql.res, this.value)) { + // if(this.message) { + // throw this. + // } else { + throw new Error( + (this.message || 'Assert wrong') + + ': ' + + JSON.stringify(alasql.res) + + ' == ' + + JSON.stringify(this.value) + ); + // } + } + return 1; + }; + // + // 91indexeddb.js + // AlaSQL IndexedDB module + // Date: 18.04.2015 + // (c) Andrey Gershun + // + + /* global alasql, yy, utils*/ + + var IDB = (alasql.engines.INDEXEDDB = function () { + }); + + /** + * @param {string} name + * @returns {Promise<{name: string, version: number}|0>} + */ + async function _databaseExists(name) { + const indexedDB = globalThis.indexedDB; + + if (!indexedDB) { + throw new Error('IndexedDB is not supported in this browser'); + } + + if (indexedDB.databases) { + const dbs = await indexedDB.databases(); + const db = dbs.find(db => db.name === name); + // @ts-ignore + return db || 0; + } + + // Try if it exist + const req = indexedDB.open(name); + + return new Promise(function (resolve, reject) { + req.onsuccess = () => { + req.result.close(); + resolve({name, version: req.result.version}); + }; + + req.onupgradeneeded = evt => { + evt.target.transaction.abort(); + resolve(0); + }; + + req.onerror = () => { + reject(new Error('IndexedDB error')); + }; + + req.onblocked = () => { + resolve({name, version: req.result.version}); + }; + }); + } + + // + // SHOW DATABASES + // work only in chrome + // + IDB.showDatabases = function (like, cb) { + if (!indexedDB.databases) { + cb(null, new Error('SHOW DATABASE is not supported in this browser')); + return; + } + + indexedDB.databases().then(dblist => { + const res = []; + const relike = like && new RegExp(like.value.replace(/\%/g, '.*'), 'g'); + + for (var i = 0; i < dblist.length; i++) { + if (!like || dblist[i].name.match(relike)) { + res.push({databaseid: dblist[i].name}); + } + } + + cb(res); + }); + }; + + IDB.createDatabase = async function (ixdbid, args, ifnotexists, dbid, cb) { + const found = await _databaseExists(ixdbid).catch(err => { + if (cb) cb(null, err); + throw err; + }); + + if (found) { + if (ifnotexists) { + cb && cb(0); + } else { + const err = new Error( + `IndexedDB: Cannot create new database "${ixdbid}" because it already exists` + ); + if (cb) cb(null, err); + } + } else { + const request = indexedDB.open(ixdbid, 1); + request.onsuccess = () => { + request.result.close(); + cb(1); + }; + } + }; + + IDB.dropDatabase = async function (ixdbid, ifexists, cb) { + const found = await _databaseExists(ixdbid).catch(err => { + if (cb) cb(null, err); + throw err; + }); + + if (found) { + const request = indexedDB.deleteDatabase(ixdbid); + request.onsuccess = () => { + if (cb) cb(1); + }; + } else { + if (ifexists) { + cb && cb(0); + } else { + cb && + cb( + null, + new Error(`IndexedDB: Cannot drop new database "${ixdbid}" because it does not exist'`) + ); + } + } + }; + + IDB.attachDatabase = async function (ixdbid, dbid, args, params, cb) { + const found = await _databaseExists(ixdbid).catch(err => { + if (cb) cb(null, err); + throw err; + }); + + if (!found) { + const err = new Error( + `IndexedDB: Cannot attach database "${ixdbid}" because it does not exist` + ); + if (cb) cb(null, err); + throw err; + } + + const stores = await new Promise((resolve, reject) => { + const request = indexedDB.open(ixdbid); + request.onsuccess = () => { + resolve(request.result.objectStoreNames); + request.result.close(); + }; + }); + + const db = new alasql.Database(dbid || ixdbid); + db.engineid = 'INDEXEDDB'; + db.ixdbid = ixdbid; + db.tables = []; + + for (var i = 0; i < stores.length; i++) { + db.tables[stores[i]] = {}; + } + + if (cb) cb(1); + }; + + IDB.createTable = async function (databaseid, tableid, ifnotexists, cb) { + const ixdbid = alasql.databases[databaseid].ixdbid; + const found = await _databaseExists(ixdbid).catch(err => { + if (cb) cb(null, err); + throw err; + }); + + if (!found) { + const err = new Error( + 'IndexedDB: Cannot create table in database "' + ixdbid + '" because it does not exist' + ); + if (cb) cb(null, err); + throw err; + } + + const request = indexedDB.open(ixdbid, found.version + 1); + request.onupgradeneeded = function (event) { + request.result.createObjectStore(tableid, {autoIncrement: true}); + }; + request.onsuccess = function (event) { + request.result.close(); + if (cb) cb(1); + }; + request.onerror = evt => { + cb(null, evt); + }; + request.onblocked = function (event) { + cb( + null, + new Error(`Cannot create table "${tableid}" because database "${databaseid}" is blocked`) + ); + }; + }; + + IDB.dropTable = async function (databaseid, tableid, ifexists, cb) { + const ixdbid = alasql.databases[databaseid].ixdbid; + const found = await _databaseExists(ixdbid).catch(err => { + if (cb) cb(null, err); + throw err; + }); + + if (!found) { + const err = new Error( + 'IndexedDB: Cannot drop table in database "' + ixdbid + '" because it does not exist' + ); + if (cb) cb(null, err); + throw err; + } + + const request = indexedDB.open(ixdbid, found.version + 1); + + let err; + request.onupgradeneeded = function (evt) { + var ixdb = request.result; + if (ixdb.objectStoreNames.contains(tableid)) { + ixdb.deleteObjectStore(tableid); + delete alasql.databases[databaseid].tables[tableid]; + } else { + if (!ifexists) { + err = new Error(`IndexedDB: Cannot drop table "${tableid}" because it does not exist`); + evt.target.transaction.abort(); + } + } + }; + request.onsuccess = function (event) { + request.result.close(); + if (cb) cb(1); + }; + request.onerror = function (event) { + cb && cb(null, err || event); + }; + request.onblocked = function (event) { + cb( + null, + new Error(`Cannot drop table "${tableid}" because database "${databaseid}" is blocked`) + ); + }; + }; + + IDB.intoTable = function (databaseid, tableid, value, columns, cb) { + const ixdbid = alasql.databases[databaseid].ixdbid; + const request = indexedDB.open(ixdbid); + var db = alasql.databases[databaseid]; + var table = db.tables[tableid]; + + request.onupgradeneeded = evt => { + evt.target.transaction.abort(); + const err = new Error( + `Cannot insert into table "${tableid}" because database "${databaseid}" does not exist` + ); + if (cb) cb(null, err); + }; + + request.onsuccess = () => { + var ixdb = request.result; + var tx = ixdb.transaction([tableid], 'readwrite'); + var tb = tx.objectStore(tableid); + for (var i = 0, ilen = value.length; i < ilen; i++) { + tb.add(value[i]); + } + tx.oncomplete = function () { + ixdb.close(); + for (var tr in table.afterinsert) { + if (table.afterinsert[tr]) { + var trigger = table.afterinsert[tr]; + if (trigger.funcid) { + alasql.fn[trigger.funcid](value); + } else if (trigger.statement) { + trigger.statement.execute(databaseid); + } + } + } + if (cb) cb(ilen); + }; + }; + }; + + IDB.fromTable = function (databaseid, tableid, cb, idx, query) { + const ixdbid = alasql.databases[databaseid].ixdbid; + const request = indexedDB.open(ixdbid); + + request.onupgradeneeded = evt => { + evt.target.transaction.abort(); + const err = new Error( + `Cannot select from table "${tableid}" because database "${databaseid}" does not exist` + ); + if (cb) cb(null, err); + }; + + request.onsuccess = () => { + const res = []; + const ixdb = request.result; + const cur = ixdb.transaction([tableid]).objectStore(tableid).openCursor(); + + cur.onsuccess = () => { + const cursor = cur.result; + if (cursor) { + // if keyPath(columns) is not present then we take the key and value as object. + const cursorValue = typeof cursor === Object ? cursor.value : {[cursor.key]: cursor.value}; + res.push(cursorValue); + cursor.continue(); + } else { + ixdb.close(); + if (cb) cb(res, idx, query); + } + }; + }; + }; + + IDB.deleteFromTable = function (databaseid, tableid, wherefn, params, cb) { + const ixdbid = alasql.databases[databaseid].ixdbid; + const request = indexedDB.open(ixdbid); + + request.onsuccess = () => { + const ixdb = request.result; + const cur = ixdb.transaction([tableid], 'readwrite').objectStore(tableid).openCursor(); + + let num = 0; + cur.onsuccess = () => { + var cursor = cur.result; + if (cursor) { + if (!wherefn || wherefn(cursor.value, params, alasql)) { + cursor.delete(); + num++; + } + cursor.continue(); + } else { + ixdb.close(); + if (cb) cb(num); + } + }; + }; + }; + + IDB.updateTable = function (databaseid, tableid, assignfn, wherefn, params, cb) { + const ixdbid = alasql.databases[databaseid].ixdbid; + const request = indexedDB.open(ixdbid); + request.onsuccess = function () { + const ixdb = request.result; + const cur = ixdb.transaction([tableid], 'readwrite').objectStore(tableid).openCursor(); + + let num = 0; + cur.onsuccess = () => { + var cursor = cur.result; + if (cursor) { + if (!wherefn || wherefn(cursor.value, params)) { + var r = cursor.value; + assignfn(r, params); + cursor.update(r); + num++; + } + cursor.continue(); + } else { + ixdb.close(); + if (cb) cb(num); + } + }; + }; + }; + // + // 91localstorage.js + // localStorage and DOM-Storage engine + // Date: 09.12.2014 + // (c) Andrey Gershun + // + + /* global alasql, yy, localStorage*/ + + var LS = (alasql.engines.LOCALSTORAGE = function () {}); + + /** + Read data from localStorage with security breaks + @param key {string} Address in localStorage + @return {object} JSON object + */ + LS.get = function (key) { + var s = localStorage.getItem(key); + if (typeof s === 'undefined') return; + var v; + try { + v = JSON.parse(s); + } catch (err) { + throw new Error('Cannot parse JSON object from localStorage' + s); + } + return v; + }; + + /** + Store data into localStorage with security breaks + @param key {string} Address in localStorage + @return {object} JSON object + */ + LS.set = function (key, value) { + if (typeof value === 'undefined') localStorage.removeItem(key); + else localStorage.setItem(key, JSON.stringify(value)); + }; + + /** + Store table structure and data into localStorage + @param databaseid {string} AlaSQL database id (not external localStorage) + @param tableid {string} Table name + @return Nothing + */ + LS.storeTable = function (databaseid, tableid) { + var db = alasql.databases[databaseid]; + var table = db.tables[tableid]; + // Create empty structure for table + var tbl = {}; + tbl.columns = table.columns; + tbl.data = table.data; + tbl.identities = table.identities; + // TODO: May be add indexes, objects and other fields? + LS.set(db.lsdbid + '.' + tableid, tbl); + }; + + /** + Restore table structure and data + @param databaseid {string} AlaSQL database id (not external localStorage) + @param tableid {string} Table name + @return Nothing + */ + LS.restoreTable = function (databaseid, tableid) { + var db = alasql.databases[databaseid]; + var tbl = LS.get(db.lsdbid + '.' + tableid); + var table = new alasql.Table(); + for (var f in tbl) { + table[f] = tbl[f]; + } + db.tables[tableid] = table; + table.indexColumns(); + // We need to add other things here + return table; + }; + + /** + Remove table from localStorage + @param databaseid {string} AlaSQL database id (not external localStorage) + @param tableid {string} Table name + */ + + LS.removeTable = function (databaseid, tableid) { + var db = alasql.databases[databaseid]; + localStorage.removeItem(db.lsdbid + '.' + tableid); + }; + + /** + Create database in localStorage + @param lsdbid {string} localStorage database id + @param args {array} List of parameters (not used in localStorage) + @param ifnotexists {boolean} Check if database does not exist + @param databaseid {string} AlaSQL database id (not external localStorage) + @param cb {function} Callback + */ + + LS.createDatabase = function (lsdbid, args, ifnotexists, databaseid, cb) { + var res = 1; + var ls = LS.get('alasql'); // Read list of all databases + if (!(ifnotexists && ls && ls.databases && ls.databases[lsdbid])) { + if (!ls) ls = {databases: {}}; // Empty record + if (ls.databases && ls.databases[lsdbid]) { + throw new Error( + 'localStorage: Cannot create new database "' + lsdbid + '" because it already exists' + ); + } + ls.databases[lsdbid] = true; + LS.set('alasql', ls); + LS.set(lsdbid, {databaseid: lsdbid, tables: {}}); // Create database record + } else { + res = 0; + } + if (cb) res = cb(res); + return res; + }; + + /** + Drop external database + @param lsdbid {string} localStorage database id + @param ifexists {boolean} Check if database exists + @param cb {function} Callback + */ + LS.dropDatabase = function (lsdbid, ifexists, cb) { + var res = 1; + var ls = LS.get('alasql'); + if (!(ifexists && ls && ls.databases && !ls.databases[lsdbid])) { + // 1. Remove record from 'alasql' record + if (!ls) { + if (!ifexists) { + throw new Error('There is no any AlaSQL databases in localStorage'); + } else { + return cb ? cb(0) : 0; + } + } + + if (ls.databases && !ls.databases[lsdbid]) { + throw new Error( + 'localStorage: Cannot drop database "' + lsdbid + '" because there is no such database' + ); + } + delete ls.databases[lsdbid]; + LS.set('alasql', ls); + + // 2. Remove tables definitions + var db = LS.get(lsdbid); + for (var tableid in db.tables) { + localStorage.removeItem(lsdbid + '.' + tableid); + } + + // 3. Remove database definition + localStorage.removeItem(lsdbid); + } else { + res = 0; + } + if (cb) res = cb(res); + return res; + }; + + /** + Attach existing localStorage database to AlaSQL database + @param lsdibid {string} localStorage database id + @param + */ + + LS.attachDatabase = function (lsdbid, databaseid, args, params, cb) { + var res = 1; + if (alasql.databases[databaseid]) { + throw new Error('Unable to attach database as "' + databaseid + '" because it already exists'); + } + if (!databaseid) databaseid = lsdbid; + var db = new alasql.Database(databaseid); + db.engineid = 'LOCALSTORAGE'; + db.lsdbid = lsdbid; + db.tables = LS.get(lsdbid).tables; + // IF AUTOABORT IS OFF then copy data to memory + if (!alasql.options.autocommit) { + if (db.tables) { + for (var tbid in db.tables) { + LS.restoreTable(databaseid, tbid); + // db.tables[tbid].data = LS.get(db.lsdbid+'.'+tbid); + } + } + } + if (cb) res = cb(res); + return res; + }; + + /** + Show list of databases from localStorage + @param like {string} Mathing pattern + @param cb {function} Callback + */ + LS.showDatabases = function (like, cb) { + var res = []; + var ls = LS.get('alasql'); + if (like) { + // TODO: If we have a special function for LIKE patterns? + var relike = new RegExp(like.value.replace(/%/g, '.*'), 'g'); + } + if (ls && ls.databases) { + for (var dbid in ls.databases) { + res.push({databaseid: dbid}); + } + if (like && res && res.length > 0) { + res = res.filter(function (d) { + return d.databaseid.match(relike); + }); + } + } + if (cb) res = cb(res); + return res; + }; + + /** + Create table in localStorage database + @param databaseid {string} AlaSQL database id + @param tableid {string} Table id + @param ifnotexists {boolean} If not exists flag + @param cb {function} Callback + */ + + LS.createTable = function (databaseid, tableid, ifnotexists, cb) { + var res = 1; + var lsdbid = alasql.databases[databaseid].lsdbid; + var tb = LS.get(lsdbid + '.' + tableid); + // Check if such record exists + if (tb && !ifnotexists) { + throw new Error( + 'Table "' + tableid + '" alsready exists in localStorage database "' + lsdbid + '"' + ); + } + var lsdb = LS.get(lsdbid); + alasql.databases[databaseid].tables[tableid]; + + // TODO: Check if required + lsdb.tables[tableid] = true; + + LS.set(lsdbid, lsdb); + LS.storeTable(databaseid, tableid); + + if (cb) res = cb(res); + return res; + }; + + /** + Empty table and reset identities + @param databaseid {string} AlaSQL database id (not external localStorage) + @param tableid {string} Table name + @param ifexists {boolean} If exists flag + @param cb {function} Callback + @return 1 on success + */ + LS.truncateTable = function (databaseid, tableid, ifexists, cb) { + var res = 1; + var lsdbid = alasql.databases[databaseid].lsdbid; + var lsdb; + if (alasql.options.autocommit) { + lsdb = LS.get(lsdbid); + } else { + lsdb = alasql.databases[databaseid]; + } + + if (!ifexists && !lsdb.tables[tableid]) { + throw new Error( + 'Cannot truncate table "' + tableid + '" in localStorage, because it does not exist' + ); + } + + //load table + var tbl = LS.restoreTable(databaseid, tableid); + + //clear data from table + tbl.data = []; + //TODO reset all identities + //but identities are not working on LOCALSTORAGE + //See test 607 for details + + //store table + LS.storeTable(databaseid, tableid); + + if (cb) res = cb(res); + return res; + }; + + /** + Create table in localStorage database + @param databaseid {string} AlaSQL database id + @param tableid {string} Table id + @param ifexists {boolean} If exists flag + @param cb {function} Callback + */ + + LS.dropTable = function (databaseid, tableid, ifexists, cb) { + var res = 1; + var lsdbid = alasql.databases[databaseid].lsdbid; + var lsdb; + + if (alasql.options.autocommit) { + lsdb = LS.get(lsdbid); + } else { + lsdb = alasql.databases[databaseid]; + } + if (!ifexists && !lsdb.tables[tableid]) { + throw new Error( + 'Cannot drop table "' + tableid + '" in localStorage, because it does not exist' + ); + } + delete lsdb.tables[tableid]; + LS.set(lsdbid, lsdb); + // localStorage.removeItem(lsdbid+'.'+tableid); + LS.removeTable(databaseid, tableid); + if (cb) res = cb(res); + return res; + }; + + /** + Read all data from table + */ + + LS.fromTable = function (databaseid, tableid, cb, idx, query) { + + alasql.databases[databaseid].lsdbid; + // var res = LS.get(lsdbid+'.'+tableid); + + var res = LS.restoreTable(databaseid, tableid).data; + + if (cb) res = cb(res, idx, query); + return res; + }; + + /** + Insert data into the table + @param databaseid {string} Database id + @param tableid {string} Table id + @param value {array} Array of values + @param columns {array} Columns (not used) + @param cb {function} Callback + */ + + LS.intoTable = function (databaseid, tableid, value, columns, cb) { + + alasql.databases[databaseid].lsdbid; + var res = value.length; + // var tb = LS.get(lsdbid+'.'+tableid); + var tb = LS.restoreTable(databaseid, tableid); + for (var columnid in tb.identities) { + var ident = tb.identities[columnid]; + + for (var index in value) { + value[index][columnid] = ident.value; + ident.value += ident.step; + } + } + if (!tb.data) tb.data = []; + tb.data = tb.data.concat(value); + // LS.set(lsdbid+'.'+tableid, tb); + LS.storeTable(databaseid, tableid); + + if (cb) res = cb(res); + + return res; + }; + + /** + Laad data from table + */ + LS.loadTableData = function (databaseid, tableid) { + alasql.databases[databaseid]; + alasql.databases[databaseid].lsdbid; + LS.restoreTable(databaseid, tableid); + // db.tables[tableid].data = LS.get(lsdbid+'.'+tableid); + }; + + /** + Save data to the table + */ + + LS.saveTableData = function (databaseid, tableid) { + var db = alasql.databases[databaseid]; + var lsdbid = alasql.databases[databaseid].lsdbid; + LS.storeTable(lsdbid, tableid); + // LS.set(lsdbid+'.'+tableid,db.tables[tableid].data); + db.tables[tableid].data = undefined; + }; + + /** + Commit + */ + + LS.commit = function (databaseid, cb) { + + var db = alasql.databases[databaseid]; + var lsdbid = alasql.databases[databaseid].lsdbid; + var lsdb = {databaseid: lsdbid, tables: {}}; + if (db.tables) { + for (var tbid in db.tables) { + // TODO: Question - do we need this line + lsdb.tables[tbid] = true; + LS.storeTable(databaseid, tbid); + // LS.set(lsdbid+'.'+tbid, db.tables[tbid].data); + } + } + LS.set(lsdbid, lsdb); + return cb ? cb(1) : 1; + }; + + /** + Alias BEGIN = COMMIT + */ + LS.begin = LS.commit; + + /** + ROLLBACK + */ + + LS.rollback = function (databaseid, cb) { + // This does not work and should be fixed + // Plus test 151 and 231 + + return; + // } + + }; + // + // 93sqlite.js + // SQLite database support + // (c) 2014, Andrey Gershun + // + + var SQLITE = (alasql.engines.SQLITE = function () {}); + + SQLITE.createDatabase = function (wdbid, args, ifnotexists, dbid, cb) { + throw new Error('Connot create SQLITE database in memory. Attach it.'); + }; + + SQLITE.dropDatabase = function (databaseid) { + throw new Error('This is impossible to drop SQLite database. Detach it.'); + }; + + SQLITE.attachDatabase = function (sqldbid, dbid, args, params, cb) { + var res = 1; + if (alasql.databases[dbid]) { + throw new Error('Unable to attach database as "' + dbid + '" because it already exists'); + } + + if ((args[0] && args[0] instanceof yy.StringValue) || args[0] instanceof yy.ParamValue) { + if (args[0] instanceof yy.StringValue) { + var value = args[0].value; + } else if (args[0] instanceof yy.ParamValue) { + var value = params[args[0].param]; + } + alasql.utils.loadBinaryFile( + value, + true, + function (data) { + var db = new alasql.Database(dbid || sqldbid); + db.engineid = 'SQLITE'; + db.sqldbid = sqldbid; + var sqldb = (db.sqldb = new SQL.Database(data)); + db.tables = []; + var tables = sqldb.exec("SELECT * FROM sqlite_master WHERE type='table'")[0].values; + + tables.forEach(function (tbl) { + db.tables[tbl[1]] = {}; + var columns = (db.tables[tbl[1]].columns = []); + var ast = alasql.parse(tbl[4]); + + var coldefs = ast.statements[0].columns; + if (coldefs && coldefs.length > 0) { + coldefs.forEach(function (cd) { + columns.push(cd); + }); + } + }); + + cb(1); + }, + function (err) { + throw new Error('Cannot open SQLite database file "' + args[0].value + '"'); + } + ); + return res; + } else { + throw new Error('Cannot attach SQLite database without a file'); + } + }; + + SQLITE.fromTable = function (databaseid, tableid, cb, idx, query) { + var data = alasql.databases[databaseid].sqldb.exec('SELECT * FROM ' + tableid); + var columns = (query.sources[idx].columns = []); + if (data[0].columns.length > 0) { + data[0].columns.forEach(function (columnid) { + columns.push({columnid: columnid}); + }); + } + + var res = []; + if (data[0].values.length > 0) { + data[0].values.forEach(function (d) { + var r = {}; + columns.forEach(function (col, idx) { + r[col.columnid] = d[idx]; + }); + res.push(r); + }); + } + if (cb) cb(res, idx, query); + }; + + SQLITE.intoTable = function (databaseid, tableid, value, columns, cb) { + var sqldb = alasql.databases[databaseid].sqldb; + for (var i = 0, ilen = value.length; i < ilen; i++) { + var s = 'INSERT INTO ' + tableid + ' ('; + var d = value[i]; + var keys = Object.keys(d); + s += keys.join(','); + s += ') VALUES ('; + s += keys + .map(function (k) { + var v = d[k]; + if (typeof v == 'string') v = "'" + v + "'"; + return v; + }) + .join(','); + s += ')'; + sqldb.exec(s); + } + var res = ilen; + if (cb) cb(res); + return res; + }; + // + // 91localstorage.js + // localStorage and DOM-Storage engine + // Date: 09.12.2014 + // (c) Andrey Gershun + // + + var FS = (alasql.engines.FILESTORAGE = alasql.engines.FILE = function () {}); + + FS.createDatabase = function (fsdbid, args, ifnotexists, dbid, cb) { + + var res = 1; + var filename = args[0].value; + + alasql.utils.fileExists(filename, function (fex) { + + if (fex) { + if (ifnotexists) { + res = 0; + if (cb) res = cb(res); + return res; + } else { + throw new Error('Cannot create new database file, because it already exists'); + } + } else { + var data = {tables: {}}; + alasql.utils.saveFile(filename, JSON.stringify(data), function (data) { + if (cb) res = cb(res); + }); + } + }); + return res; + }; + + FS.dropDatabase = function (fsdbid, ifexists, cb) { + var res; + var filename = ''; + + if (typeof fsdbid === 'object' && fsdbid.value) { + // Existing tests (test225.js) had DROP directly without DETACH and + // without a database id / name. It instead used the filename directly. + // This block will handle that + filename = fsdbid.value; + } else { + // When a database id / name is specified in DROP, it will be handled by this block. + // Note: Both DETACH + DROP and direct DROP without DETACH will be handled by this block + // We will be deleting the database object and the file either way. + // However, in the future, if we would like to have a stricter implementation + // where we cannot DROP without DETACHing it first, we can handle that case using + // the 'isDetached' property of the database object. + // (i.e) alasql.databases[fsdbid].isDetached will be set if it is + // has been detached first + var db = alasql.databases[fsdbid] || {}; + + filename = db.filename || ''; + delete alasql.databases[fsdbid]; + } + alasql.utils.fileExists(filename, function (fex) { + if (fex) { + res = 1; + alasql.utils.deleteFile(filename, function () { + res = 1; + if (cb) res = cb(res); + }); + } else { + if (!ifexists) { + throw new Error('Cannot drop database file, because it does not exist'); + } + res = 0; + if (cb) res = cb(res); + } + }); + return res; + }; + + FS.attachDatabase = function (fsdbid, dbid, args, params, cb) { + + var res = 1; + if (alasql.databases[dbid]) { + throw new Error('Unable to attach database as "' + dbid + '" because it already exists'); + } + var db = new alasql.Database(dbid || fsdbid); + db.engineid = 'FILESTORAGE'; + // db.fsdbid = fsdbid; + db.filename = args[0].value; + loadFile(db.filename, !!cb, function (s) { + try { + db.data = JSON.parse(s); + } catch (err) { + throw new Error('Data in FileStorage database are corrupted'); + } + db.tables = db.data.tables; + // IF AUTOCOMMIT IS OFF then copy data to memory + if (!alasql.options.autocommit) { + if (db.tables) { + for (var tbid in db.tables) { + db.tables[tbid].data = db.data[tbid]; + } + } + } + if (cb) res = cb(res); + }); + return res; + }; + + FS.createTable = function (databaseid, tableid, ifnotexists, cb) { + var db = alasql.databases[databaseid]; + var tb = db.data[tableid]; + var res = 1; + + if (tb && !ifnotexists) { + throw new Error('Table "' + tableid + '" alsready exists in the database "' + fsdbid + '"'); + } + var table = alasql.databases[databaseid].tables[tableid]; + db.data.tables[tableid] = {columns: table.columns}; + db.data[tableid] = []; + + FS.updateFile(databaseid); + + if (cb) cb(res); + return res; + }; + + FS.updateFile = function (databaseid) { + + var db = alasql.databases[databaseid]; + if (db.issaving) { + db.postsave = true; + return; + } + db.issaving = true; + db.postsave = false; + alasql.utils.saveFile(db.filename, JSON.stringify(db.data), function () { + db.issaving = false; + + if (db.postsave) { + setTimeout(function () { + FS.updateFile(databaseid); + }, 50); // TODO Test with different timeout parameters + } + }); + }; + + FS.dropTable = function (databaseid, tableid, ifexists, cb) { + var res = 1; + var db = alasql.databases[databaseid]; + if (!ifexists && !db.tables[tableid]) { + throw new Error( + 'Cannot drop table "' + tableid + '" in fileStorage, because it does not exist' + ); + } + delete db.tables[tableid]; + delete db.data.tables[tableid]; + delete db.data[tableid]; + FS.updateFile(databaseid); + if (cb) cb(res); + return res; + }; + + FS.fromTable = function (databaseid, tableid, cb, idx, query) { + + var db = alasql.databases[databaseid]; + var res = db.data[tableid]; + if (cb) res = cb(res, idx, query); + return res; + }; + + FS.intoTable = function (databaseid, tableid, value, columns, cb) { + var db = alasql.databases[databaseid]; + var res = value.length; + var tb = db.data[tableid]; + if (!tb) tb = []; + db.data[tableid] = tb.concat(value); + FS.updateFile(databaseid); + if (cb) cb(res); + return res; + }; + + FS.loadTableData = function (databaseid, tableid) { + var db = alasql.databases[databaseid]; + db.tables[tableid].data = db.data[tableid]; + }; + + FS.saveTableData = function (databaseid, tableid) { + var db = alasql.databases[databaseid]; + db.data[tableid] = db.tables[tableid].data; + db.tables[tableid].data = null; + FS.updateFile(databaseid); + }; + + FS.commit = function (databaseid, cb) { + + var db = alasql.databases[databaseid]; + if (db.tables) { + for (var tbid in db.tables) { + db.data.tables[tbid] = {columns: db.tables[tbid].columns}; + db.data[tbid] = db.tables[tbid].data; + } + } + FS.updateFile(databaseid); + return cb ? cb(1) : 1; + }; + + FS.begin = FS.commit; + + FS.rollback = function (databaseid, cb) { + var res = 1; + var db = alasql.databases[databaseid]; + db.dbversion++; + + // var lsdbid = alasql.databases[databaseid].lsdbid; + // lsdb = LS.get(lsdbid); + wait(); + function wait() { + setTimeout(function () { + if (db.issaving) { + return wait(); + } else { + alasql.loadFile(db.filename, !!cb, function (data) { + db.data = data; + db.tables = {}; + for (var tbid in db.data.tables) { + var tb = new alasql.Table({columns: db.data.tables[tbid].columns}); + extend(tb, db.data.tables[tbid]); + db.tables[tbid] = tb; + if (!alasql.options.autocommit) { + db.tables[tbid].data = db.data[tbid]; + } + db.tables[tbid].indexColumns(); + + // index columns + // convert types + } + + delete alasql.databases[databaseid]; + alasql.databases[databaseid] = new alasql.Database(databaseid); + extend(alasql.databases[databaseid], db); + alasql.databases[databaseid].engineid = 'FILESTORAGE'; + alasql.databases[databaseid].filename = db.filename; + + if (cb) res = cb(res); + // Todo: check why no return + }); + } + }, 100); + } + + // if(!alasql.options.autocommit) { + + }; + if(utils.isBrowser && !utils.isWebWorker) { + alasql = alasql || false; + + if (!alasql) { + throw new Error('alasql was not found'); + } + + alasql.worker = function () { + throw new Error('Can find webworker in this enviroment'); + }; + + if (typeof Worker !== 'undefined') { + alasql.worker = function (path, paths, cb) { + // var path; + if (path === true) { + path = undefined; + } + + if (typeof path === 'undefined') { + var sc = document.getElementsByTagName('script'); + for (var i = 0; i < sc.length; i++) { + if (sc[i].src.substr(-16).toLowerCase() === 'alasql-worker.js') { + path = sc[i].src.substr(0, sc[i].src.length - 16) + 'alasql.js'; + break; + } else if (sc[i].src.substr(-20).toLowerCase() === 'alasql-worker.min.js') { + path = sc[i].src.substr(0, sc[i].src.length - 20) + 'alasql.min.js'; + break; + } else if (sc[i].src.substr(-9).toLowerCase() === 'alasql.js') { + path = sc[i].src; + break; + } else if (sc[i].src.substr(-13).toLowerCase() === 'alasql.min.js') { + path = sc[i].src.substr(0, sc[i].src.length - 13) + 'alasql.min.js'; + break; + } + } + } + + if (typeof path === 'undefined') { + throw new Error('Path to alasql.js is not specified'); + } else if (path !== false) { + var js = "importScripts('"; + js += path; + js += + "');self.onmessage = function(event) {" + + 'alasql(event.data.sql,event.data.params, function(data){' + + 'postMessage({id:event.data.id, data:data});});}'; + + var blob = new Blob([js], {type: 'text/plain'}); + alasql.webworker = new Worker(URL.createObjectURL(blob)); + + alasql.webworker.onmessage = function (event) { + var id = event.data.id; + + alasql.buffer[id](event.data.data); + delete alasql.buffer[id]; + }; + + alasql.webworker.onerror = function (e) { + throw e; + }; + + if (arguments.length > 1) { + var sql = + 'REQUIRE ' + + paths + .map(function (p) { + return '"' + p + '"'; + }) + .join(','); + alasql(sql, [], cb); + } + } else if (path === false) { + delete alasql.webworker; + return; + } + }; + } + /* FileSaver.js + * A saveAs() FileSaver implementation. + * 1.3.2 + * 2016-06-16 18:25:19 + * + * By Eli Grey, http://eligrey.com + * License: MIT + * See https://github.com/eligrey/FileSaver.js/blob/master/LICENSE.md + */ + + /*global self */ + /*jslint bitwise: true, indent: 4, laxbreak: true, laxcomma: true, smarttabs: true, plusplus: true */ + + /*! @source http://purl.eligrey.com/github/FileSaver.js/blob/master/FileSaver.js */ + + var saveAs = + saveAs || + (function (view) { + // IE <10 is explicitly unsupported + if ( + typeof view === 'undefined' || + (typeof navigator !== 'undefined' && /MSIE [1-9]\./.test(navigator.userAgent)) + ) { + return; + } + var doc = view.document, + // only get URL when necessary in case Blob.js hasn't overridden it yet + get_URL = function () { + return view.URL || view.webkitURL || view; + }, + save_link = doc.createElementNS('http://www.w3.org/1999/xhtml', 'a'), + can_use_save_link = 'download' in save_link, + click = function (node) { + var event = new MouseEvent('click'); + node.dispatchEvent(event); + }, + is_safari = /constructor/i.test(view.HTMLElement) || view.safari, + is_chrome_ios = /CriOS\/[\d]+/.test(navigator.userAgent), + throw_outside = function (ex) { + (view.setImmediate || view.setTimeout)(function () { + throw ex; + }, 0); + }, + force_saveable_type = 'application/octet-stream', + // the Blob API is fundamentally broken as there is no "downloadfinished" event to subscribe to + arbitrary_revoke_timeout = 1000 * 40, // in ms + revoke = function (file) { + var revoker = function () { + if (typeof file === 'string') { + // file is an object URL + get_URL().revokeObjectURL(file); + } else { + // file is a File + file.remove(); + } + }; + setTimeout(revoker, arbitrary_revoke_timeout); + }, + dispatch = function (filesaver, event_types, event) { + event_types = [].concat(event_types); + var i = event_types.length; + while (i--) { + var listener = filesaver['on' + event_types[i]]; + if (typeof listener === 'function') { + try { + listener.call(filesaver, event || filesaver); + } catch (ex) { + throw_outside(ex); + } + } + } + }, + auto_bom = function (blob) { + // prepend BOM for UTF-8 XML and text/* types (including HTML) + // note: your browser will automatically convert UTF-16 U+FEFF to EF BB BF + if ( + /^\s*(?:text\/\S*|application\/xml|\S*\/\S*\+xml)\s*;.*charset\s*=\s*utf-8/i.test( + blob.type + ) + ) { + return new Blob([String.fromCharCode(0xfeff), blob], { + type: blob.type, + }); + } + return blob; + }, + FileSaver = function (blob, name, no_auto_bom) { + if (!no_auto_bom) { + blob = auto_bom(blob); + } + // First try a.download, then web filesystem, then object URLs + var filesaver = this, + type = blob.type, + force = type === force_saveable_type, + object_url, + dispatch_all = function () { + dispatch(filesaver, 'writestart progress write writeend'.split(' ')); + }, + // on any filesys errors revert to saving with object URLs + fs_error = function () { + if ((is_chrome_ios || (force && is_safari)) && view.FileReader) { + // Safari doesn't allow downloading of blob urls + var reader = new FileReader(); + reader.onloadend = function () { + var url = is_chrome_ios + ? reader.result + : reader.result.replace(/^data:[^;]*;/, 'data:attachment/file;'); + var popup = view.open(url, '_blank'); + if (!popup) view.location.href = url; + url = undefined; // release reference before dispatching + filesaver.readyState = filesaver.DONE; + dispatch_all(); + }; + reader.readAsDataURL(blob); + filesaver.readyState = filesaver.INIT; + return; + } + // don't create more object URLs than needed + if (!object_url) { + object_url = get_URL().createObjectURL(blob); + } + if (force) { + view.location.href = object_url; + } else { + var opened = view.open(object_url, '_blank'); + if (!opened) { + // Apple does not allow window.open, see https://developer.apple.com/library/safari/documentation/Tools/Conceptual/SafariExtensionGuide/WorkingwithWindowsandTabs/WorkingwithWindowsandTabs.html + view.location.href = object_url; + } + } + filesaver.readyState = filesaver.DONE; + dispatch_all(); + revoke(object_url); + }; + filesaver.readyState = filesaver.INIT; + + if (can_use_save_link) { + object_url = get_URL().createObjectURL(blob); + setTimeout(function () { + save_link.href = object_url; + save_link.download = name; + click(save_link); + dispatch_all(); + revoke(object_url); + filesaver.readyState = filesaver.DONE; + }); + return; + } + + fs_error(); + }, + FS_proto = FileSaver.prototype, + saveAs = function (blob, name, no_auto_bom) { + return new FileSaver(blob, name || blob.name || 'download', no_auto_bom); + }; + // IE 10+ (native saveAs) + if (typeof navigator !== 'undefined' && navigator.msSaveOrOpenBlob) { + return function (blob, name, no_auto_bom) { + name = name || blob.name || 'download'; + + if (!no_auto_bom) { + blob = auto_bom(blob); + } + return navigator.msSaveOrOpenBlob(blob, name); + }; + } + + FS_proto.abort = function () {}; + FS_proto.readyState = FS_proto.INIT = 0; + FS_proto.WRITING = 1; + FS_proto.DONE = 2; + + FS_proto.error = + FS_proto.onwritestart = + FS_proto.onprogress = + FS_proto.onwrite = + FS_proto.onabort = + FS_proto.onerror = + FS_proto.onwriteend = + null; + + return saveAs; + })( + (typeof self !== 'undefined' && self) || + (typeof window !== 'undefined' && window) || + this.content + ); + // `self` is undefined in Firefox for Android content script context + // while `this` is nsIContentFrameMessageManager + // with an attribute `content` that corresponds to the window + + if (module.exports) { + module.exports.saveAs = saveAs; + } + /* eslint-disable */ + + /* + // + // Last part of Alasql.js + // Date: 03.11.2014 + // (c) 2014, Andrey Gershun + // + */ + + // This is a final part of Alasql + + /*only-for-browser/* + if(utils.isCordova || utils.isMeteorServer || utils.isNode ){ + console.log('It looks like you are using the browser version of AlaSQL. Please use the alasql.fs.js file instead.') + } + //*/ + + // FileSaveAs + alasql.utils.saveAs = saveAs; + + } + // Create default database + new Database("alasql"); + + // Set default database + alasql.use("alasql"); + + return alasql; + })); + } (alasql_fs, alasql_fs.exports)); + return alasql_fs.exports; +} + +requireAlasql_fs(); +//# sourceMappingURL=alasql.fs-ab2a2e02.js.map diff --git a/Sveltekit-Build/src/server/chunks/alasql.fs-ab2a2e02.js.map b/Sveltekit-Build/src/server/chunks/alasql.fs-ab2a2e02.js.map new file mode 100644 index 0000000..9f74076 --- /dev/null +++ b/Sveltekit-Build/src/server/chunks/alasql.fs-ab2a2e02.js.map @@ -0,0 +1 @@ +{"version":3,"file":"alasql.fs-ab2a2e02.js","sources":["../../../../Sveltekit-App/node_modules/webidl-conversions/lib/index.js","../../../../Sveltekit-App/node_modules/whatwg-url/lib/utils.js","../../../../Sveltekit-App/node_modules/tr46/index.js","../../../../Sveltekit-App/node_modules/whatwg-url/lib/url-state-machine.js","../../../../Sveltekit-App/node_modules/whatwg-url/lib/URL-impl.js","../../../../Sveltekit-App/node_modules/whatwg-url/lib/URL.js","../../../../Sveltekit-App/node_modules/whatwg-url/lib/public-api.js","../../../../Sveltekit-App/node_modules/node-fetch/lib/index.mjs","../../../../Sveltekit-App/node_modules/cross-fetch/dist/node-ponyfill.js","../../../../Sveltekit-App/node_modules/alasql/modules/xlsx/xlsx.mjs","../../../../Sveltekit-App/node_modules/alasql/dist/alasql.fs.js"],"sourcesContent":["\"use strict\";\n\nvar conversions = {};\nmodule.exports = conversions;\n\nfunction sign(x) {\n return x < 0 ? -1 : 1;\n}\n\nfunction evenRound(x) {\n // Round x to the nearest integer, choosing the even integer if it lies halfway between two.\n if ((x % 1) === 0.5 && (x & 1) === 0) { // [even number].5; round down (i.e. floor)\n return Math.floor(x);\n } else {\n return Math.round(x);\n }\n}\n\nfunction createNumberConversion(bitLength, typeOpts) {\n if (!typeOpts.unsigned) {\n --bitLength;\n }\n const lowerBound = typeOpts.unsigned ? 0 : -Math.pow(2, bitLength);\n const upperBound = Math.pow(2, bitLength) - 1;\n\n const moduloVal = typeOpts.moduloBitLength ? Math.pow(2, typeOpts.moduloBitLength) : Math.pow(2, bitLength);\n const moduloBound = typeOpts.moduloBitLength ? Math.pow(2, typeOpts.moduloBitLength - 1) : Math.pow(2, bitLength - 1);\n\n return function(V, opts) {\n if (!opts) opts = {};\n\n let x = +V;\n\n if (opts.enforceRange) {\n if (!Number.isFinite(x)) {\n throw new TypeError(\"Argument is not a finite number\");\n }\n\n x = sign(x) * Math.floor(Math.abs(x));\n if (x < lowerBound || x > upperBound) {\n throw new TypeError(\"Argument is not in byte range\");\n }\n\n return x;\n }\n\n if (!isNaN(x) && opts.clamp) {\n x = evenRound(x);\n\n if (x < lowerBound) x = lowerBound;\n if (x > upperBound) x = upperBound;\n return x;\n }\n\n if (!Number.isFinite(x) || x === 0) {\n return 0;\n }\n\n x = sign(x) * Math.floor(Math.abs(x));\n x = x % moduloVal;\n\n if (!typeOpts.unsigned && x >= moduloBound) {\n return x - moduloVal;\n } else if (typeOpts.unsigned) {\n if (x < 0) {\n x += moduloVal;\n } else if (x === -0) { // don't return negative zero\n return 0;\n }\n }\n\n return x;\n }\n}\n\nconversions[\"void\"] = function () {\n return undefined;\n};\n\nconversions[\"boolean\"] = function (val) {\n return !!val;\n};\n\nconversions[\"byte\"] = createNumberConversion(8, { unsigned: false });\nconversions[\"octet\"] = createNumberConversion(8, { unsigned: true });\n\nconversions[\"short\"] = createNumberConversion(16, { unsigned: false });\nconversions[\"unsigned short\"] = createNumberConversion(16, { unsigned: true });\n\nconversions[\"long\"] = createNumberConversion(32, { unsigned: false });\nconversions[\"unsigned long\"] = createNumberConversion(32, { unsigned: true });\n\nconversions[\"long long\"] = createNumberConversion(32, { unsigned: false, moduloBitLength: 64 });\nconversions[\"unsigned long long\"] = createNumberConversion(32, { unsigned: true, moduloBitLength: 64 });\n\nconversions[\"double\"] = function (V) {\n const x = +V;\n\n if (!Number.isFinite(x)) {\n throw new TypeError(\"Argument is not a finite floating-point value\");\n }\n\n return x;\n};\n\nconversions[\"unrestricted double\"] = function (V) {\n const x = +V;\n\n if (isNaN(x)) {\n throw new TypeError(\"Argument is NaN\");\n }\n\n return x;\n};\n\n// not quite valid, but good enough for JS\nconversions[\"float\"] = conversions[\"double\"];\nconversions[\"unrestricted float\"] = conversions[\"unrestricted double\"];\n\nconversions[\"DOMString\"] = function (V, opts) {\n if (!opts) opts = {};\n\n if (opts.treatNullAsEmptyString && V === null) {\n return \"\";\n }\n\n return String(V);\n};\n\nconversions[\"ByteString\"] = function (V, opts) {\n const x = String(V);\n let c = undefined;\n for (let i = 0; (c = x.codePointAt(i)) !== undefined; ++i) {\n if (c > 255) {\n throw new TypeError(\"Argument is not a valid bytestring\");\n }\n }\n\n return x;\n};\n\nconversions[\"USVString\"] = function (V) {\n const S = String(V);\n const n = S.length;\n const U = [];\n for (let i = 0; i < n; ++i) {\n const c = S.charCodeAt(i);\n if (c < 0xD800 || c > 0xDFFF) {\n U.push(String.fromCodePoint(c));\n } else if (0xDC00 <= c && c <= 0xDFFF) {\n U.push(String.fromCodePoint(0xFFFD));\n } else {\n if (i === n - 1) {\n U.push(String.fromCodePoint(0xFFFD));\n } else {\n const d = S.charCodeAt(i + 1);\n if (0xDC00 <= d && d <= 0xDFFF) {\n const a = c & 0x3FF;\n const b = d & 0x3FF;\n U.push(String.fromCodePoint((2 << 15) + (2 << 9) * a + b));\n ++i;\n } else {\n U.push(String.fromCodePoint(0xFFFD));\n }\n }\n }\n }\n\n return U.join('');\n};\n\nconversions[\"Date\"] = function (V, opts) {\n if (!(V instanceof Date)) {\n throw new TypeError(\"Argument is not a Date object\");\n }\n if (isNaN(V)) {\n return undefined;\n }\n\n return V;\n};\n\nconversions[\"RegExp\"] = function (V, opts) {\n if (!(V instanceof RegExp)) {\n V = new RegExp(V);\n }\n\n return V;\n};\n","\"use strict\";\n\nmodule.exports.mixin = function mixin(target, source) {\n const keys = Object.getOwnPropertyNames(source);\n for (let i = 0; i < keys.length; ++i) {\n Object.defineProperty(target, keys[i], Object.getOwnPropertyDescriptor(source, keys[i]));\n }\n};\n\nmodule.exports.wrapperSymbol = Symbol(\"wrapper\");\nmodule.exports.implSymbol = Symbol(\"impl\");\n\nmodule.exports.wrapperForImpl = function (impl) {\n return impl[module.exports.wrapperSymbol];\n};\n\nmodule.exports.implForWrapper = function (wrapper) {\n return wrapper[module.exports.implSymbol];\n};\n\n","\"use strict\";\n\nvar punycode = require(\"punycode\");\nvar mappingTable = require(\"./lib/mappingTable.json\");\n\nvar PROCESSING_OPTIONS = {\n TRANSITIONAL: 0,\n NONTRANSITIONAL: 1\n};\n\nfunction normalize(str) { // fix bug in v8\n return str.split('\\u0000').map(function (s) { return s.normalize('NFC'); }).join('\\u0000');\n}\n\nfunction findStatus(val) {\n var start = 0;\n var end = mappingTable.length - 1;\n\n while (start <= end) {\n var mid = Math.floor((start + end) / 2);\n\n var target = mappingTable[mid];\n if (target[0][0] <= val && target[0][1] >= val) {\n return target;\n } else if (target[0][0] > val) {\n end = mid - 1;\n } else {\n start = mid + 1;\n }\n }\n\n return null;\n}\n\nvar regexAstralSymbols = /[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]/g;\n\nfunction countSymbols(string) {\n return string\n // replace every surrogate pair with a BMP symbol\n .replace(regexAstralSymbols, '_')\n // then get the length\n .length;\n}\n\nfunction mapChars(domain_name, useSTD3, processing_option) {\n var hasError = false;\n var processed = \"\";\n\n var len = countSymbols(domain_name);\n for (var i = 0; i < len; ++i) {\n var codePoint = domain_name.codePointAt(i);\n var status = findStatus(codePoint);\n\n switch (status[1]) {\n case \"disallowed\":\n hasError = true;\n processed += String.fromCodePoint(codePoint);\n break;\n case \"ignored\":\n break;\n case \"mapped\":\n processed += String.fromCodePoint.apply(String, status[2]);\n break;\n case \"deviation\":\n if (processing_option === PROCESSING_OPTIONS.TRANSITIONAL) {\n processed += String.fromCodePoint.apply(String, status[2]);\n } else {\n processed += String.fromCodePoint(codePoint);\n }\n break;\n case \"valid\":\n processed += String.fromCodePoint(codePoint);\n break;\n case \"disallowed_STD3_mapped\":\n if (useSTD3) {\n hasError = true;\n processed += String.fromCodePoint(codePoint);\n } else {\n processed += String.fromCodePoint.apply(String, status[2]);\n }\n break;\n case \"disallowed_STD3_valid\":\n if (useSTD3) {\n hasError = true;\n }\n\n processed += String.fromCodePoint(codePoint);\n break;\n }\n }\n\n return {\n string: processed,\n error: hasError\n };\n}\n\nvar combiningMarksRegex = /[\\u0300-\\u036F\\u0483-\\u0489\\u0591-\\u05BD\\u05BF\\u05C1\\u05C2\\u05C4\\u05C5\\u05C7\\u0610-\\u061A\\u064B-\\u065F\\u0670\\u06D6-\\u06DC\\u06DF-\\u06E4\\u06E7\\u06E8\\u06EA-\\u06ED\\u0711\\u0730-\\u074A\\u07A6-\\u07B0\\u07EB-\\u07F3\\u0816-\\u0819\\u081B-\\u0823\\u0825-\\u0827\\u0829-\\u082D\\u0859-\\u085B\\u08E4-\\u0903\\u093A-\\u093C\\u093E-\\u094F\\u0951-\\u0957\\u0962\\u0963\\u0981-\\u0983\\u09BC\\u09BE-\\u09C4\\u09C7\\u09C8\\u09CB-\\u09CD\\u09D7\\u09E2\\u09E3\\u0A01-\\u0A03\\u0A3C\\u0A3E-\\u0A42\\u0A47\\u0A48\\u0A4B-\\u0A4D\\u0A51\\u0A70\\u0A71\\u0A75\\u0A81-\\u0A83\\u0ABC\\u0ABE-\\u0AC5\\u0AC7-\\u0AC9\\u0ACB-\\u0ACD\\u0AE2\\u0AE3\\u0B01-\\u0B03\\u0B3C\\u0B3E-\\u0B44\\u0B47\\u0B48\\u0B4B-\\u0B4D\\u0B56\\u0B57\\u0B62\\u0B63\\u0B82\\u0BBE-\\u0BC2\\u0BC6-\\u0BC8\\u0BCA-\\u0BCD\\u0BD7\\u0C00-\\u0C03\\u0C3E-\\u0C44\\u0C46-\\u0C48\\u0C4A-\\u0C4D\\u0C55\\u0C56\\u0C62\\u0C63\\u0C81-\\u0C83\\u0CBC\\u0CBE-\\u0CC4\\u0CC6-\\u0CC8\\u0CCA-\\u0CCD\\u0CD5\\u0CD6\\u0CE2\\u0CE3\\u0D01-\\u0D03\\u0D3E-\\u0D44\\u0D46-\\u0D48\\u0D4A-\\u0D4D\\u0D57\\u0D62\\u0D63\\u0D82\\u0D83\\u0DCA\\u0DCF-\\u0DD4\\u0DD6\\u0DD8-\\u0DDF\\u0DF2\\u0DF3\\u0E31\\u0E34-\\u0E3A\\u0E47-\\u0E4E\\u0EB1\\u0EB4-\\u0EB9\\u0EBB\\u0EBC\\u0EC8-\\u0ECD\\u0F18\\u0F19\\u0F35\\u0F37\\u0F39\\u0F3E\\u0F3F\\u0F71-\\u0F84\\u0F86\\u0F87\\u0F8D-\\u0F97\\u0F99-\\u0FBC\\u0FC6\\u102B-\\u103E\\u1056-\\u1059\\u105E-\\u1060\\u1062-\\u1064\\u1067-\\u106D\\u1071-\\u1074\\u1082-\\u108D\\u108F\\u109A-\\u109D\\u135D-\\u135F\\u1712-\\u1714\\u1732-\\u1734\\u1752\\u1753\\u1772\\u1773\\u17B4-\\u17D3\\u17DD\\u180B-\\u180D\\u18A9\\u1920-\\u192B\\u1930-\\u193B\\u19B0-\\u19C0\\u19C8\\u19C9\\u1A17-\\u1A1B\\u1A55-\\u1A5E\\u1A60-\\u1A7C\\u1A7F\\u1AB0-\\u1ABE\\u1B00-\\u1B04\\u1B34-\\u1B44\\u1B6B-\\u1B73\\u1B80-\\u1B82\\u1BA1-\\u1BAD\\u1BE6-\\u1BF3\\u1C24-\\u1C37\\u1CD0-\\u1CD2\\u1CD4-\\u1CE8\\u1CED\\u1CF2-\\u1CF4\\u1CF8\\u1CF9\\u1DC0-\\u1DF5\\u1DFC-\\u1DFF\\u20D0-\\u20F0\\u2CEF-\\u2CF1\\u2D7F\\u2DE0-\\u2DFF\\u302A-\\u302F\\u3099\\u309A\\uA66F-\\uA672\\uA674-\\uA67D\\uA69F\\uA6F0\\uA6F1\\uA802\\uA806\\uA80B\\uA823-\\uA827\\uA880\\uA881\\uA8B4-\\uA8C4\\uA8E0-\\uA8F1\\uA926-\\uA92D\\uA947-\\uA953\\uA980-\\uA983\\uA9B3-\\uA9C0\\uA9E5\\uAA29-\\uAA36\\uAA43\\uAA4C\\uAA4D\\uAA7B-\\uAA7D\\uAAB0\\uAAB2-\\uAAB4\\uAAB7\\uAAB8\\uAABE\\uAABF\\uAAC1\\uAAEB-\\uAAEF\\uAAF5\\uAAF6\\uABE3-\\uABEA\\uABEC\\uABED\\uFB1E\\uFE00-\\uFE0F\\uFE20-\\uFE2D]|\\uD800[\\uDDFD\\uDEE0\\uDF76-\\uDF7A]|\\uD802[\\uDE01-\\uDE03\\uDE05\\uDE06\\uDE0C-\\uDE0F\\uDE38-\\uDE3A\\uDE3F\\uDEE5\\uDEE6]|\\uD804[\\uDC00-\\uDC02\\uDC38-\\uDC46\\uDC7F-\\uDC82\\uDCB0-\\uDCBA\\uDD00-\\uDD02\\uDD27-\\uDD34\\uDD73\\uDD80-\\uDD82\\uDDB3-\\uDDC0\\uDE2C-\\uDE37\\uDEDF-\\uDEEA\\uDF01-\\uDF03\\uDF3C\\uDF3E-\\uDF44\\uDF47\\uDF48\\uDF4B-\\uDF4D\\uDF57\\uDF62\\uDF63\\uDF66-\\uDF6C\\uDF70-\\uDF74]|\\uD805[\\uDCB0-\\uDCC3\\uDDAF-\\uDDB5\\uDDB8-\\uDDC0\\uDE30-\\uDE40\\uDEAB-\\uDEB7]|\\uD81A[\\uDEF0-\\uDEF4\\uDF30-\\uDF36]|\\uD81B[\\uDF51-\\uDF7E\\uDF8F-\\uDF92]|\\uD82F[\\uDC9D\\uDC9E]|\\uD834[\\uDD65-\\uDD69\\uDD6D-\\uDD72\\uDD7B-\\uDD82\\uDD85-\\uDD8B\\uDDAA-\\uDDAD\\uDE42-\\uDE44]|\\uD83A[\\uDCD0-\\uDCD6]|\\uDB40[\\uDD00-\\uDDEF]/;\n\nfunction validateLabel(label, processing_option) {\n if (label.substr(0, 4) === \"xn--\") {\n label = punycode.toUnicode(label);\n processing_option = PROCESSING_OPTIONS.NONTRANSITIONAL;\n }\n\n var error = false;\n\n if (normalize(label) !== label ||\n (label[3] === \"-\" && label[4] === \"-\") ||\n label[0] === \"-\" || label[label.length - 1] === \"-\" ||\n label.indexOf(\".\") !== -1 ||\n label.search(combiningMarksRegex) === 0) {\n error = true;\n }\n\n var len = countSymbols(label);\n for (var i = 0; i < len; ++i) {\n var status = findStatus(label.codePointAt(i));\n if ((processing === PROCESSING_OPTIONS.TRANSITIONAL && status[1] !== \"valid\") ||\n (processing === PROCESSING_OPTIONS.NONTRANSITIONAL &&\n status[1] !== \"valid\" && status[1] !== \"deviation\")) {\n error = true;\n break;\n }\n }\n\n return {\n label: label,\n error: error\n };\n}\n\nfunction processing(domain_name, useSTD3, processing_option) {\n var result = mapChars(domain_name, useSTD3, processing_option);\n result.string = normalize(result.string);\n\n var labels = result.string.split(\".\");\n for (var i = 0; i < labels.length; ++i) {\n try {\n var validation = validateLabel(labels[i]);\n labels[i] = validation.label;\n result.error = result.error || validation.error;\n } catch(e) {\n result.error = true;\n }\n }\n\n return {\n string: labels.join(\".\"),\n error: result.error\n };\n}\n\nmodule.exports.toASCII = function(domain_name, useSTD3, processing_option, verifyDnsLength) {\n var result = processing(domain_name, useSTD3, processing_option);\n var labels = result.string.split(\".\");\n labels = labels.map(function(l) {\n try {\n return punycode.toASCII(l);\n } catch(e) {\n result.error = true;\n return l;\n }\n });\n\n if (verifyDnsLength) {\n var total = labels.slice(0, labels.length - 1).join(\".\").length;\n if (total.length > 253 || total.length === 0) {\n result.error = true;\n }\n\n for (var i=0; i < labels.length; ++i) {\n if (labels.length > 63 || labels.length === 0) {\n result.error = true;\n break;\n }\n }\n }\n\n if (result.error) return null;\n return labels.join(\".\");\n};\n\nmodule.exports.toUnicode = function(domain_name, useSTD3) {\n var result = processing(domain_name, useSTD3, PROCESSING_OPTIONS.NONTRANSITIONAL);\n\n return {\n domain: result.string,\n error: result.error\n };\n};\n\nmodule.exports.PROCESSING_OPTIONS = PROCESSING_OPTIONS;\n","\"use strict\";\r\nconst punycode = require(\"punycode\");\r\nconst tr46 = require(\"tr46\");\r\n\r\nconst specialSchemes = {\r\n ftp: 21,\r\n file: null,\r\n gopher: 70,\r\n http: 80,\r\n https: 443,\r\n ws: 80,\r\n wss: 443\r\n};\r\n\r\nconst failure = Symbol(\"failure\");\r\n\r\nfunction countSymbols(str) {\r\n return punycode.ucs2.decode(str).length;\r\n}\r\n\r\nfunction at(input, idx) {\r\n const c = input[idx];\r\n return isNaN(c) ? undefined : String.fromCodePoint(c);\r\n}\r\n\r\nfunction isASCIIDigit(c) {\r\n return c >= 0x30 && c <= 0x39;\r\n}\r\n\r\nfunction isASCIIAlpha(c) {\r\n return (c >= 0x41 && c <= 0x5A) || (c >= 0x61 && c <= 0x7A);\r\n}\r\n\r\nfunction isASCIIAlphanumeric(c) {\r\n return isASCIIAlpha(c) || isASCIIDigit(c);\r\n}\r\n\r\nfunction isASCIIHex(c) {\r\n return isASCIIDigit(c) || (c >= 0x41 && c <= 0x46) || (c >= 0x61 && c <= 0x66);\r\n}\r\n\r\nfunction isSingleDot(buffer) {\r\n return buffer === \".\" || buffer.toLowerCase() === \"%2e\";\r\n}\r\n\r\nfunction isDoubleDot(buffer) {\r\n buffer = buffer.toLowerCase();\r\n return buffer === \"..\" || buffer === \"%2e.\" || buffer === \".%2e\" || buffer === \"%2e%2e\";\r\n}\r\n\r\nfunction isWindowsDriveLetterCodePoints(cp1, cp2) {\r\n return isASCIIAlpha(cp1) && (cp2 === 58 || cp2 === 124);\r\n}\r\n\r\nfunction isWindowsDriveLetterString(string) {\r\n return string.length === 2 && isASCIIAlpha(string.codePointAt(0)) && (string[1] === \":\" || string[1] === \"|\");\r\n}\r\n\r\nfunction isNormalizedWindowsDriveLetterString(string) {\r\n return string.length === 2 && isASCIIAlpha(string.codePointAt(0)) && string[1] === \":\";\r\n}\r\n\r\nfunction containsForbiddenHostCodePoint(string) {\r\n return string.search(/\\u0000|\\u0009|\\u000A|\\u000D|\\u0020|#|%|\\/|:|\\?|@|\\[|\\\\|\\]/) !== -1;\r\n}\r\n\r\nfunction containsForbiddenHostCodePointExcludingPercent(string) {\r\n return string.search(/\\u0000|\\u0009|\\u000A|\\u000D|\\u0020|#|\\/|:|\\?|@|\\[|\\\\|\\]/) !== -1;\r\n}\r\n\r\nfunction isSpecialScheme(scheme) {\r\n return specialSchemes[scheme] !== undefined;\r\n}\r\n\r\nfunction isSpecial(url) {\r\n return isSpecialScheme(url.scheme);\r\n}\r\n\r\nfunction defaultPort(scheme) {\r\n return specialSchemes[scheme];\r\n}\r\n\r\nfunction percentEncode(c) {\r\n let hex = c.toString(16).toUpperCase();\r\n if (hex.length === 1) {\r\n hex = \"0\" + hex;\r\n }\r\n\r\n return \"%\" + hex;\r\n}\r\n\r\nfunction utf8PercentEncode(c) {\r\n const buf = new Buffer(c);\r\n\r\n let str = \"\";\r\n\r\n for (let i = 0; i < buf.length; ++i) {\r\n str += percentEncode(buf[i]);\r\n }\r\n\r\n return str;\r\n}\r\n\r\nfunction utf8PercentDecode(str) {\r\n const input = new Buffer(str);\r\n const output = [];\r\n for (let i = 0; i < input.length; ++i) {\r\n if (input[i] !== 37) {\r\n output.push(input[i]);\r\n } else if (input[i] === 37 && isASCIIHex(input[i + 1]) && isASCIIHex(input[i + 2])) {\r\n output.push(parseInt(input.slice(i + 1, i + 3).toString(), 16));\r\n i += 2;\r\n } else {\r\n output.push(input[i]);\r\n }\r\n }\r\n return new Buffer(output).toString();\r\n}\r\n\r\nfunction isC0ControlPercentEncode(c) {\r\n return c <= 0x1F || c > 0x7E;\r\n}\r\n\r\nconst extraPathPercentEncodeSet = new Set([32, 34, 35, 60, 62, 63, 96, 123, 125]);\r\nfunction isPathPercentEncode(c) {\r\n return isC0ControlPercentEncode(c) || extraPathPercentEncodeSet.has(c);\r\n}\r\n\r\nconst extraUserinfoPercentEncodeSet =\r\n new Set([47, 58, 59, 61, 64, 91, 92, 93, 94, 124]);\r\nfunction isUserinfoPercentEncode(c) {\r\n return isPathPercentEncode(c) || extraUserinfoPercentEncodeSet.has(c);\r\n}\r\n\r\nfunction percentEncodeChar(c, encodeSetPredicate) {\r\n const cStr = String.fromCodePoint(c);\r\n\r\n if (encodeSetPredicate(c)) {\r\n return utf8PercentEncode(cStr);\r\n }\r\n\r\n return cStr;\r\n}\r\n\r\nfunction parseIPv4Number(input) {\r\n let R = 10;\r\n\r\n if (input.length >= 2 && input.charAt(0) === \"0\" && input.charAt(1).toLowerCase() === \"x\") {\r\n input = input.substring(2);\r\n R = 16;\r\n } else if (input.length >= 2 && input.charAt(0) === \"0\") {\r\n input = input.substring(1);\r\n R = 8;\r\n }\r\n\r\n if (input === \"\") {\r\n return 0;\r\n }\r\n\r\n const regex = R === 10 ? /[^0-9]/ : (R === 16 ? /[^0-9A-Fa-f]/ : /[^0-7]/);\r\n if (regex.test(input)) {\r\n return failure;\r\n }\r\n\r\n return parseInt(input, R);\r\n}\r\n\r\nfunction parseIPv4(input) {\r\n const parts = input.split(\".\");\r\n if (parts[parts.length - 1] === \"\") {\r\n if (parts.length > 1) {\r\n parts.pop();\r\n }\r\n }\r\n\r\n if (parts.length > 4) {\r\n return input;\r\n }\r\n\r\n const numbers = [];\r\n for (const part of parts) {\r\n if (part === \"\") {\r\n return input;\r\n }\r\n const n = parseIPv4Number(part);\r\n if (n === failure) {\r\n return input;\r\n }\r\n\r\n numbers.push(n);\r\n }\r\n\r\n for (let i = 0; i < numbers.length - 1; ++i) {\r\n if (numbers[i] > 255) {\r\n return failure;\r\n }\r\n }\r\n if (numbers[numbers.length - 1] >= Math.pow(256, 5 - numbers.length)) {\r\n return failure;\r\n }\r\n\r\n let ipv4 = numbers.pop();\r\n let counter = 0;\r\n\r\n for (const n of numbers) {\r\n ipv4 += n * Math.pow(256, 3 - counter);\r\n ++counter;\r\n }\r\n\r\n return ipv4;\r\n}\r\n\r\nfunction serializeIPv4(address) {\r\n let output = \"\";\r\n let n = address;\r\n\r\n for (let i = 1; i <= 4; ++i) {\r\n output = String(n % 256) + output;\r\n if (i !== 4) {\r\n output = \".\" + output;\r\n }\r\n n = Math.floor(n / 256);\r\n }\r\n\r\n return output;\r\n}\r\n\r\nfunction parseIPv6(input) {\r\n const address = [0, 0, 0, 0, 0, 0, 0, 0];\r\n let pieceIndex = 0;\r\n let compress = null;\r\n let pointer = 0;\r\n\r\n input = punycode.ucs2.decode(input);\r\n\r\n if (input[pointer] === 58) {\r\n if (input[pointer + 1] !== 58) {\r\n return failure;\r\n }\r\n\r\n pointer += 2;\r\n ++pieceIndex;\r\n compress = pieceIndex;\r\n }\r\n\r\n while (pointer < input.length) {\r\n if (pieceIndex === 8) {\r\n return failure;\r\n }\r\n\r\n if (input[pointer] === 58) {\r\n if (compress !== null) {\r\n return failure;\r\n }\r\n ++pointer;\r\n ++pieceIndex;\r\n compress = pieceIndex;\r\n continue;\r\n }\r\n\r\n let value = 0;\r\n let length = 0;\r\n\r\n while (length < 4 && isASCIIHex(input[pointer])) {\r\n value = value * 0x10 + parseInt(at(input, pointer), 16);\r\n ++pointer;\r\n ++length;\r\n }\r\n\r\n if (input[pointer] === 46) {\r\n if (length === 0) {\r\n return failure;\r\n }\r\n\r\n pointer -= length;\r\n\r\n if (pieceIndex > 6) {\r\n return failure;\r\n }\r\n\r\n let numbersSeen = 0;\r\n\r\n while (input[pointer] !== undefined) {\r\n let ipv4Piece = null;\r\n\r\n if (numbersSeen > 0) {\r\n if (input[pointer] === 46 && numbersSeen < 4) {\r\n ++pointer;\r\n } else {\r\n return failure;\r\n }\r\n }\r\n\r\n if (!isASCIIDigit(input[pointer])) {\r\n return failure;\r\n }\r\n\r\n while (isASCIIDigit(input[pointer])) {\r\n const number = parseInt(at(input, pointer));\r\n if (ipv4Piece === null) {\r\n ipv4Piece = number;\r\n } else if (ipv4Piece === 0) {\r\n return failure;\r\n } else {\r\n ipv4Piece = ipv4Piece * 10 + number;\r\n }\r\n if (ipv4Piece > 255) {\r\n return failure;\r\n }\r\n ++pointer;\r\n }\r\n\r\n address[pieceIndex] = address[pieceIndex] * 0x100 + ipv4Piece;\r\n\r\n ++numbersSeen;\r\n\r\n if (numbersSeen === 2 || numbersSeen === 4) {\r\n ++pieceIndex;\r\n }\r\n }\r\n\r\n if (numbersSeen !== 4) {\r\n return failure;\r\n }\r\n\r\n break;\r\n } else if (input[pointer] === 58) {\r\n ++pointer;\r\n if (input[pointer] === undefined) {\r\n return failure;\r\n }\r\n } else if (input[pointer] !== undefined) {\r\n return failure;\r\n }\r\n\r\n address[pieceIndex] = value;\r\n ++pieceIndex;\r\n }\r\n\r\n if (compress !== null) {\r\n let swaps = pieceIndex - compress;\r\n pieceIndex = 7;\r\n while (pieceIndex !== 0 && swaps > 0) {\r\n const temp = address[compress + swaps - 1];\r\n address[compress + swaps - 1] = address[pieceIndex];\r\n address[pieceIndex] = temp;\r\n --pieceIndex;\r\n --swaps;\r\n }\r\n } else if (compress === null && pieceIndex !== 8) {\r\n return failure;\r\n }\r\n\r\n return address;\r\n}\r\n\r\nfunction serializeIPv6(address) {\r\n let output = \"\";\r\n const seqResult = findLongestZeroSequence(address);\r\n const compress = seqResult.idx;\r\n let ignore0 = false;\r\n\r\n for (let pieceIndex = 0; pieceIndex <= 7; ++pieceIndex) {\r\n if (ignore0 && address[pieceIndex] === 0) {\r\n continue;\r\n } else if (ignore0) {\r\n ignore0 = false;\r\n }\r\n\r\n if (compress === pieceIndex) {\r\n const separator = pieceIndex === 0 ? \"::\" : \":\";\r\n output += separator;\r\n ignore0 = true;\r\n continue;\r\n }\r\n\r\n output += address[pieceIndex].toString(16);\r\n\r\n if (pieceIndex !== 7) {\r\n output += \":\";\r\n }\r\n }\r\n\r\n return output;\r\n}\r\n\r\nfunction parseHost(input, isSpecialArg) {\r\n if (input[0] === \"[\") {\r\n if (input[input.length - 1] !== \"]\") {\r\n return failure;\r\n }\r\n\r\n return parseIPv6(input.substring(1, input.length - 1));\r\n }\r\n\r\n if (!isSpecialArg) {\r\n return parseOpaqueHost(input);\r\n }\r\n\r\n const domain = utf8PercentDecode(input);\r\n const asciiDomain = tr46.toASCII(domain, false, tr46.PROCESSING_OPTIONS.NONTRANSITIONAL, false);\r\n if (asciiDomain === null) {\r\n return failure;\r\n }\r\n\r\n if (containsForbiddenHostCodePoint(asciiDomain)) {\r\n return failure;\r\n }\r\n\r\n const ipv4Host = parseIPv4(asciiDomain);\r\n if (typeof ipv4Host === \"number\" || ipv4Host === failure) {\r\n return ipv4Host;\r\n }\r\n\r\n return asciiDomain;\r\n}\r\n\r\nfunction parseOpaqueHost(input) {\r\n if (containsForbiddenHostCodePointExcludingPercent(input)) {\r\n return failure;\r\n }\r\n\r\n let output = \"\";\r\n const decoded = punycode.ucs2.decode(input);\r\n for (let i = 0; i < decoded.length; ++i) {\r\n output += percentEncodeChar(decoded[i], isC0ControlPercentEncode);\r\n }\r\n return output;\r\n}\r\n\r\nfunction findLongestZeroSequence(arr) {\r\n let maxIdx = null;\r\n let maxLen = 1; // only find elements > 1\r\n let currStart = null;\r\n let currLen = 0;\r\n\r\n for (let i = 0; i < arr.length; ++i) {\r\n if (arr[i] !== 0) {\r\n if (currLen > maxLen) {\r\n maxIdx = currStart;\r\n maxLen = currLen;\r\n }\r\n\r\n currStart = null;\r\n currLen = 0;\r\n } else {\r\n if (currStart === null) {\r\n currStart = i;\r\n }\r\n ++currLen;\r\n }\r\n }\r\n\r\n // if trailing zeros\r\n if (currLen > maxLen) {\r\n maxIdx = currStart;\r\n maxLen = currLen;\r\n }\r\n\r\n return {\r\n idx: maxIdx,\r\n len: maxLen\r\n };\r\n}\r\n\r\nfunction serializeHost(host) {\r\n if (typeof host === \"number\") {\r\n return serializeIPv4(host);\r\n }\r\n\r\n // IPv6 serializer\r\n if (host instanceof Array) {\r\n return \"[\" + serializeIPv6(host) + \"]\";\r\n }\r\n\r\n return host;\r\n}\r\n\r\nfunction trimControlChars(url) {\r\n return url.replace(/^[\\u0000-\\u001F\\u0020]+|[\\u0000-\\u001F\\u0020]+$/g, \"\");\r\n}\r\n\r\nfunction trimTabAndNewline(url) {\r\n return url.replace(/\\u0009|\\u000A|\\u000D/g, \"\");\r\n}\r\n\r\nfunction shortenPath(url) {\r\n const path = url.path;\r\n if (path.length === 0) {\r\n return;\r\n }\r\n if (url.scheme === \"file\" && path.length === 1 && isNormalizedWindowsDriveLetter(path[0])) {\r\n return;\r\n }\r\n\r\n path.pop();\r\n}\r\n\r\nfunction includesCredentials(url) {\r\n return url.username !== \"\" || url.password !== \"\";\r\n}\r\n\r\nfunction cannotHaveAUsernamePasswordPort(url) {\r\n return url.host === null || url.host === \"\" || url.cannotBeABaseURL || url.scheme === \"file\";\r\n}\r\n\r\nfunction isNormalizedWindowsDriveLetter(string) {\r\n return /^[A-Za-z]:$/.test(string);\r\n}\r\n\r\nfunction URLStateMachine(input, base, encodingOverride, url, stateOverride) {\r\n this.pointer = 0;\r\n this.input = input;\r\n this.base = base || null;\r\n this.encodingOverride = encodingOverride || \"utf-8\";\r\n this.stateOverride = stateOverride;\r\n this.url = url;\r\n this.failure = false;\r\n this.parseError = false;\r\n\r\n if (!this.url) {\r\n this.url = {\r\n scheme: \"\",\r\n username: \"\",\r\n password: \"\",\r\n host: null,\r\n port: null,\r\n path: [],\r\n query: null,\r\n fragment: null,\r\n\r\n cannotBeABaseURL: false\r\n };\r\n\r\n const res = trimControlChars(this.input);\r\n if (res !== this.input) {\r\n this.parseError = true;\r\n }\r\n this.input = res;\r\n }\r\n\r\n const res = trimTabAndNewline(this.input);\r\n if (res !== this.input) {\r\n this.parseError = true;\r\n }\r\n this.input = res;\r\n\r\n this.state = stateOverride || \"scheme start\";\r\n\r\n this.buffer = \"\";\r\n this.atFlag = false;\r\n this.arrFlag = false;\r\n this.passwordTokenSeenFlag = false;\r\n\r\n this.input = punycode.ucs2.decode(this.input);\r\n\r\n for (; this.pointer <= this.input.length; ++this.pointer) {\r\n const c = this.input[this.pointer];\r\n const cStr = isNaN(c) ? undefined : String.fromCodePoint(c);\r\n\r\n // exec state machine\r\n const ret = this[\"parse \" + this.state](c, cStr);\r\n if (!ret) {\r\n break; // terminate algorithm\r\n } else if (ret === failure) {\r\n this.failure = true;\r\n break;\r\n }\r\n }\r\n}\r\n\r\nURLStateMachine.prototype[\"parse scheme start\"] = function parseSchemeStart(c, cStr) {\r\n if (isASCIIAlpha(c)) {\r\n this.buffer += cStr.toLowerCase();\r\n this.state = \"scheme\";\r\n } else if (!this.stateOverride) {\r\n this.state = \"no scheme\";\r\n --this.pointer;\r\n } else {\r\n this.parseError = true;\r\n return failure;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse scheme\"] = function parseScheme(c, cStr) {\r\n if (isASCIIAlphanumeric(c) || c === 43 || c === 45 || c === 46) {\r\n this.buffer += cStr.toLowerCase();\r\n } else if (c === 58) {\r\n if (this.stateOverride) {\r\n if (isSpecial(this.url) && !isSpecialScheme(this.buffer)) {\r\n return false;\r\n }\r\n\r\n if (!isSpecial(this.url) && isSpecialScheme(this.buffer)) {\r\n return false;\r\n }\r\n\r\n if ((includesCredentials(this.url) || this.url.port !== null) && this.buffer === \"file\") {\r\n return false;\r\n }\r\n\r\n if (this.url.scheme === \"file\" && (this.url.host === \"\" || this.url.host === null)) {\r\n return false;\r\n }\r\n }\r\n this.url.scheme = this.buffer;\r\n this.buffer = \"\";\r\n if (this.stateOverride) {\r\n return false;\r\n }\r\n if (this.url.scheme === \"file\") {\r\n if (this.input[this.pointer + 1] !== 47 || this.input[this.pointer + 2] !== 47) {\r\n this.parseError = true;\r\n }\r\n this.state = \"file\";\r\n } else if (isSpecial(this.url) && this.base !== null && this.base.scheme === this.url.scheme) {\r\n this.state = \"special relative or authority\";\r\n } else if (isSpecial(this.url)) {\r\n this.state = \"special authority slashes\";\r\n } else if (this.input[this.pointer + 1] === 47) {\r\n this.state = \"path or authority\";\r\n ++this.pointer;\r\n } else {\r\n this.url.cannotBeABaseURL = true;\r\n this.url.path.push(\"\");\r\n this.state = \"cannot-be-a-base-URL path\";\r\n }\r\n } else if (!this.stateOverride) {\r\n this.buffer = \"\";\r\n this.state = \"no scheme\";\r\n this.pointer = -1;\r\n } else {\r\n this.parseError = true;\r\n return failure;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse no scheme\"] = function parseNoScheme(c) {\r\n if (this.base === null || (this.base.cannotBeABaseURL && c !== 35)) {\r\n return failure;\r\n } else if (this.base.cannotBeABaseURL && c === 35) {\r\n this.url.scheme = this.base.scheme;\r\n this.url.path = this.base.path.slice();\r\n this.url.query = this.base.query;\r\n this.url.fragment = \"\";\r\n this.url.cannotBeABaseURL = true;\r\n this.state = \"fragment\";\r\n } else if (this.base.scheme === \"file\") {\r\n this.state = \"file\";\r\n --this.pointer;\r\n } else {\r\n this.state = \"relative\";\r\n --this.pointer;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse special relative or authority\"] = function parseSpecialRelativeOrAuthority(c) {\r\n if (c === 47 && this.input[this.pointer + 1] === 47) {\r\n this.state = \"special authority ignore slashes\";\r\n ++this.pointer;\r\n } else {\r\n this.parseError = true;\r\n this.state = \"relative\";\r\n --this.pointer;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse path or authority\"] = function parsePathOrAuthority(c) {\r\n if (c === 47) {\r\n this.state = \"authority\";\r\n } else {\r\n this.state = \"path\";\r\n --this.pointer;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse relative\"] = function parseRelative(c) {\r\n this.url.scheme = this.base.scheme;\r\n if (isNaN(c)) {\r\n this.url.username = this.base.username;\r\n this.url.password = this.base.password;\r\n this.url.host = this.base.host;\r\n this.url.port = this.base.port;\r\n this.url.path = this.base.path.slice();\r\n this.url.query = this.base.query;\r\n } else if (c === 47) {\r\n this.state = \"relative slash\";\r\n } else if (c === 63) {\r\n this.url.username = this.base.username;\r\n this.url.password = this.base.password;\r\n this.url.host = this.base.host;\r\n this.url.port = this.base.port;\r\n this.url.path = this.base.path.slice();\r\n this.url.query = \"\";\r\n this.state = \"query\";\r\n } else if (c === 35) {\r\n this.url.username = this.base.username;\r\n this.url.password = this.base.password;\r\n this.url.host = this.base.host;\r\n this.url.port = this.base.port;\r\n this.url.path = this.base.path.slice();\r\n this.url.query = this.base.query;\r\n this.url.fragment = \"\";\r\n this.state = \"fragment\";\r\n } else if (isSpecial(this.url) && c === 92) {\r\n this.parseError = true;\r\n this.state = \"relative slash\";\r\n } else {\r\n this.url.username = this.base.username;\r\n this.url.password = this.base.password;\r\n this.url.host = this.base.host;\r\n this.url.port = this.base.port;\r\n this.url.path = this.base.path.slice(0, this.base.path.length - 1);\r\n\r\n this.state = \"path\";\r\n --this.pointer;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse relative slash\"] = function parseRelativeSlash(c) {\r\n if (isSpecial(this.url) && (c === 47 || c === 92)) {\r\n if (c === 92) {\r\n this.parseError = true;\r\n }\r\n this.state = \"special authority ignore slashes\";\r\n } else if (c === 47) {\r\n this.state = \"authority\";\r\n } else {\r\n this.url.username = this.base.username;\r\n this.url.password = this.base.password;\r\n this.url.host = this.base.host;\r\n this.url.port = this.base.port;\r\n this.state = \"path\";\r\n --this.pointer;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse special authority slashes\"] = function parseSpecialAuthoritySlashes(c) {\r\n if (c === 47 && this.input[this.pointer + 1] === 47) {\r\n this.state = \"special authority ignore slashes\";\r\n ++this.pointer;\r\n } else {\r\n this.parseError = true;\r\n this.state = \"special authority ignore slashes\";\r\n --this.pointer;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse special authority ignore slashes\"] = function parseSpecialAuthorityIgnoreSlashes(c) {\r\n if (c !== 47 && c !== 92) {\r\n this.state = \"authority\";\r\n --this.pointer;\r\n } else {\r\n this.parseError = true;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse authority\"] = function parseAuthority(c, cStr) {\r\n if (c === 64) {\r\n this.parseError = true;\r\n if (this.atFlag) {\r\n this.buffer = \"%40\" + this.buffer;\r\n }\r\n this.atFlag = true;\r\n\r\n // careful, this is based on buffer and has its own pointer (this.pointer != pointer) and inner chars\r\n const len = countSymbols(this.buffer);\r\n for (let pointer = 0; pointer < len; ++pointer) {\r\n const codePoint = this.buffer.codePointAt(pointer);\r\n\r\n if (codePoint === 58 && !this.passwordTokenSeenFlag) {\r\n this.passwordTokenSeenFlag = true;\r\n continue;\r\n }\r\n const encodedCodePoints = percentEncodeChar(codePoint, isUserinfoPercentEncode);\r\n if (this.passwordTokenSeenFlag) {\r\n this.url.password += encodedCodePoints;\r\n } else {\r\n this.url.username += encodedCodePoints;\r\n }\r\n }\r\n this.buffer = \"\";\r\n } else if (isNaN(c) || c === 47 || c === 63 || c === 35 ||\r\n (isSpecial(this.url) && c === 92)) {\r\n if (this.atFlag && this.buffer === \"\") {\r\n this.parseError = true;\r\n return failure;\r\n }\r\n this.pointer -= countSymbols(this.buffer) + 1;\r\n this.buffer = \"\";\r\n this.state = \"host\";\r\n } else {\r\n this.buffer += cStr;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse hostname\"] =\r\nURLStateMachine.prototype[\"parse host\"] = function parseHostName(c, cStr) {\r\n if (this.stateOverride && this.url.scheme === \"file\") {\r\n --this.pointer;\r\n this.state = \"file host\";\r\n } else if (c === 58 && !this.arrFlag) {\r\n if (this.buffer === \"\") {\r\n this.parseError = true;\r\n return failure;\r\n }\r\n\r\n const host = parseHost(this.buffer, isSpecial(this.url));\r\n if (host === failure) {\r\n return failure;\r\n }\r\n\r\n this.url.host = host;\r\n this.buffer = \"\";\r\n this.state = \"port\";\r\n if (this.stateOverride === \"hostname\") {\r\n return false;\r\n }\r\n } else if (isNaN(c) || c === 47 || c === 63 || c === 35 ||\r\n (isSpecial(this.url) && c === 92)) {\r\n --this.pointer;\r\n if (isSpecial(this.url) && this.buffer === \"\") {\r\n this.parseError = true;\r\n return failure;\r\n } else if (this.stateOverride && this.buffer === \"\" &&\r\n (includesCredentials(this.url) || this.url.port !== null)) {\r\n this.parseError = true;\r\n return false;\r\n }\r\n\r\n const host = parseHost(this.buffer, isSpecial(this.url));\r\n if (host === failure) {\r\n return failure;\r\n }\r\n\r\n this.url.host = host;\r\n this.buffer = \"\";\r\n this.state = \"path start\";\r\n if (this.stateOverride) {\r\n return false;\r\n }\r\n } else {\r\n if (c === 91) {\r\n this.arrFlag = true;\r\n } else if (c === 93) {\r\n this.arrFlag = false;\r\n }\r\n this.buffer += cStr;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse port\"] = function parsePort(c, cStr) {\r\n if (isASCIIDigit(c)) {\r\n this.buffer += cStr;\r\n } else if (isNaN(c) || c === 47 || c === 63 || c === 35 ||\r\n (isSpecial(this.url) && c === 92) ||\r\n this.stateOverride) {\r\n if (this.buffer !== \"\") {\r\n const port = parseInt(this.buffer);\r\n if (port > Math.pow(2, 16) - 1) {\r\n this.parseError = true;\r\n return failure;\r\n }\r\n this.url.port = port === defaultPort(this.url.scheme) ? null : port;\r\n this.buffer = \"\";\r\n }\r\n if (this.stateOverride) {\r\n return false;\r\n }\r\n this.state = \"path start\";\r\n --this.pointer;\r\n } else {\r\n this.parseError = true;\r\n return failure;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nconst fileOtherwiseCodePoints = new Set([47, 92, 63, 35]);\r\n\r\nURLStateMachine.prototype[\"parse file\"] = function parseFile(c) {\r\n this.url.scheme = \"file\";\r\n\r\n if (c === 47 || c === 92) {\r\n if (c === 92) {\r\n this.parseError = true;\r\n }\r\n this.state = \"file slash\";\r\n } else if (this.base !== null && this.base.scheme === \"file\") {\r\n if (isNaN(c)) {\r\n this.url.host = this.base.host;\r\n this.url.path = this.base.path.slice();\r\n this.url.query = this.base.query;\r\n } else if (c === 63) {\r\n this.url.host = this.base.host;\r\n this.url.path = this.base.path.slice();\r\n this.url.query = \"\";\r\n this.state = \"query\";\r\n } else if (c === 35) {\r\n this.url.host = this.base.host;\r\n this.url.path = this.base.path.slice();\r\n this.url.query = this.base.query;\r\n this.url.fragment = \"\";\r\n this.state = \"fragment\";\r\n } else {\r\n if (this.input.length - this.pointer - 1 === 0 || // remaining consists of 0 code points\r\n !isWindowsDriveLetterCodePoints(c, this.input[this.pointer + 1]) ||\r\n (this.input.length - this.pointer - 1 >= 2 && // remaining has at least 2 code points\r\n !fileOtherwiseCodePoints.has(this.input[this.pointer + 2]))) {\r\n this.url.host = this.base.host;\r\n this.url.path = this.base.path.slice();\r\n shortenPath(this.url);\r\n } else {\r\n this.parseError = true;\r\n }\r\n\r\n this.state = \"path\";\r\n --this.pointer;\r\n }\r\n } else {\r\n this.state = \"path\";\r\n --this.pointer;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse file slash\"] = function parseFileSlash(c) {\r\n if (c === 47 || c === 92) {\r\n if (c === 92) {\r\n this.parseError = true;\r\n }\r\n this.state = \"file host\";\r\n } else {\r\n if (this.base !== null && this.base.scheme === \"file\") {\r\n if (isNormalizedWindowsDriveLetterString(this.base.path[0])) {\r\n this.url.path.push(this.base.path[0]);\r\n } else {\r\n this.url.host = this.base.host;\r\n }\r\n }\r\n this.state = \"path\";\r\n --this.pointer;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse file host\"] = function parseFileHost(c, cStr) {\r\n if (isNaN(c) || c === 47 || c === 92 || c === 63 || c === 35) {\r\n --this.pointer;\r\n if (!this.stateOverride && isWindowsDriveLetterString(this.buffer)) {\r\n this.parseError = true;\r\n this.state = \"path\";\r\n } else if (this.buffer === \"\") {\r\n this.url.host = \"\";\r\n if (this.stateOverride) {\r\n return false;\r\n }\r\n this.state = \"path start\";\r\n } else {\r\n let host = parseHost(this.buffer, isSpecial(this.url));\r\n if (host === failure) {\r\n return failure;\r\n }\r\n if (host === \"localhost\") {\r\n host = \"\";\r\n }\r\n this.url.host = host;\r\n\r\n if (this.stateOverride) {\r\n return false;\r\n }\r\n\r\n this.buffer = \"\";\r\n this.state = \"path start\";\r\n }\r\n } else {\r\n this.buffer += cStr;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse path start\"] = function parsePathStart(c) {\r\n if (isSpecial(this.url)) {\r\n if (c === 92) {\r\n this.parseError = true;\r\n }\r\n this.state = \"path\";\r\n\r\n if (c !== 47 && c !== 92) {\r\n --this.pointer;\r\n }\r\n } else if (!this.stateOverride && c === 63) {\r\n this.url.query = \"\";\r\n this.state = \"query\";\r\n } else if (!this.stateOverride && c === 35) {\r\n this.url.fragment = \"\";\r\n this.state = \"fragment\";\r\n } else if (c !== undefined) {\r\n this.state = \"path\";\r\n if (c !== 47) {\r\n --this.pointer;\r\n }\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse path\"] = function parsePath(c) {\r\n if (isNaN(c) || c === 47 || (isSpecial(this.url) && c === 92) ||\r\n (!this.stateOverride && (c === 63 || c === 35))) {\r\n if (isSpecial(this.url) && c === 92) {\r\n this.parseError = true;\r\n }\r\n\r\n if (isDoubleDot(this.buffer)) {\r\n shortenPath(this.url);\r\n if (c !== 47 && !(isSpecial(this.url) && c === 92)) {\r\n this.url.path.push(\"\");\r\n }\r\n } else if (isSingleDot(this.buffer) && c !== 47 &&\r\n !(isSpecial(this.url) && c === 92)) {\r\n this.url.path.push(\"\");\r\n } else if (!isSingleDot(this.buffer)) {\r\n if (this.url.scheme === \"file\" && this.url.path.length === 0 && isWindowsDriveLetterString(this.buffer)) {\r\n if (this.url.host !== \"\" && this.url.host !== null) {\r\n this.parseError = true;\r\n this.url.host = \"\";\r\n }\r\n this.buffer = this.buffer[0] + \":\";\r\n }\r\n this.url.path.push(this.buffer);\r\n }\r\n this.buffer = \"\";\r\n if (this.url.scheme === \"file\" && (c === undefined || c === 63 || c === 35)) {\r\n while (this.url.path.length > 1 && this.url.path[0] === \"\") {\r\n this.parseError = true;\r\n this.url.path.shift();\r\n }\r\n }\r\n if (c === 63) {\r\n this.url.query = \"\";\r\n this.state = \"query\";\r\n }\r\n if (c === 35) {\r\n this.url.fragment = \"\";\r\n this.state = \"fragment\";\r\n }\r\n } else {\r\n // TODO: If c is not a URL code point and not \"%\", parse error.\r\n\r\n if (c === 37 &&\r\n (!isASCIIHex(this.input[this.pointer + 1]) ||\r\n !isASCIIHex(this.input[this.pointer + 2]))) {\r\n this.parseError = true;\r\n }\r\n\r\n this.buffer += percentEncodeChar(c, isPathPercentEncode);\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse cannot-be-a-base-URL path\"] = function parseCannotBeABaseURLPath(c) {\r\n if (c === 63) {\r\n this.url.query = \"\";\r\n this.state = \"query\";\r\n } else if (c === 35) {\r\n this.url.fragment = \"\";\r\n this.state = \"fragment\";\r\n } else {\r\n // TODO: Add: not a URL code point\r\n if (!isNaN(c) && c !== 37) {\r\n this.parseError = true;\r\n }\r\n\r\n if (c === 37 &&\r\n (!isASCIIHex(this.input[this.pointer + 1]) ||\r\n !isASCIIHex(this.input[this.pointer + 2]))) {\r\n this.parseError = true;\r\n }\r\n\r\n if (!isNaN(c)) {\r\n this.url.path[0] = this.url.path[0] + percentEncodeChar(c, isC0ControlPercentEncode);\r\n }\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse query\"] = function parseQuery(c, cStr) {\r\n if (isNaN(c) || (!this.stateOverride && c === 35)) {\r\n if (!isSpecial(this.url) || this.url.scheme === \"ws\" || this.url.scheme === \"wss\") {\r\n this.encodingOverride = \"utf-8\";\r\n }\r\n\r\n const buffer = new Buffer(this.buffer); // TODO: Use encoding override instead\r\n for (let i = 0; i < buffer.length; ++i) {\r\n if (buffer[i] < 0x21 || buffer[i] > 0x7E || buffer[i] === 0x22 || buffer[i] === 0x23 ||\r\n buffer[i] === 0x3C || buffer[i] === 0x3E) {\r\n this.url.query += percentEncode(buffer[i]);\r\n } else {\r\n this.url.query += String.fromCodePoint(buffer[i]);\r\n }\r\n }\r\n\r\n this.buffer = \"\";\r\n if (c === 35) {\r\n this.url.fragment = \"\";\r\n this.state = \"fragment\";\r\n }\r\n } else {\r\n // TODO: If c is not a URL code point and not \"%\", parse error.\r\n if (c === 37 &&\r\n (!isASCIIHex(this.input[this.pointer + 1]) ||\r\n !isASCIIHex(this.input[this.pointer + 2]))) {\r\n this.parseError = true;\r\n }\r\n\r\n this.buffer += cStr;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse fragment\"] = function parseFragment(c) {\r\n if (isNaN(c)) { // do nothing\r\n } else if (c === 0x0) {\r\n this.parseError = true;\r\n } else {\r\n // TODO: If c is not a URL code point and not \"%\", parse error.\r\n if (c === 37 &&\r\n (!isASCIIHex(this.input[this.pointer + 1]) ||\r\n !isASCIIHex(this.input[this.pointer + 2]))) {\r\n this.parseError = true;\r\n }\r\n\r\n this.url.fragment += percentEncodeChar(c, isC0ControlPercentEncode);\r\n }\r\n\r\n return true;\r\n};\r\n\r\nfunction serializeURL(url, excludeFragment) {\r\n let output = url.scheme + \":\";\r\n if (url.host !== null) {\r\n output += \"//\";\r\n\r\n if (url.username !== \"\" || url.password !== \"\") {\r\n output += url.username;\r\n if (url.password !== \"\") {\r\n output += \":\" + url.password;\r\n }\r\n output += \"@\";\r\n }\r\n\r\n output += serializeHost(url.host);\r\n\r\n if (url.port !== null) {\r\n output += \":\" + url.port;\r\n }\r\n } else if (url.host === null && url.scheme === \"file\") {\r\n output += \"//\";\r\n }\r\n\r\n if (url.cannotBeABaseURL) {\r\n output += url.path[0];\r\n } else {\r\n for (const string of url.path) {\r\n output += \"/\" + string;\r\n }\r\n }\r\n\r\n if (url.query !== null) {\r\n output += \"?\" + url.query;\r\n }\r\n\r\n if (!excludeFragment && url.fragment !== null) {\r\n output += \"#\" + url.fragment;\r\n }\r\n\r\n return output;\r\n}\r\n\r\nfunction serializeOrigin(tuple) {\r\n let result = tuple.scheme + \"://\";\r\n result += serializeHost(tuple.host);\r\n\r\n if (tuple.port !== null) {\r\n result += \":\" + tuple.port;\r\n }\r\n\r\n return result;\r\n}\r\n\r\nmodule.exports.serializeURL = serializeURL;\r\n\r\nmodule.exports.serializeURLOrigin = function (url) {\r\n // https://url.spec.whatwg.org/#concept-url-origin\r\n switch (url.scheme) {\r\n case \"blob\":\r\n try {\r\n return module.exports.serializeURLOrigin(module.exports.parseURL(url.path[0]));\r\n } catch (e) {\r\n // serializing an opaque origin returns \"null\"\r\n return \"null\";\r\n }\r\n case \"ftp\":\r\n case \"gopher\":\r\n case \"http\":\r\n case \"https\":\r\n case \"ws\":\r\n case \"wss\":\r\n return serializeOrigin({\r\n scheme: url.scheme,\r\n host: url.host,\r\n port: url.port\r\n });\r\n case \"file\":\r\n // spec says \"exercise to the reader\", chrome says \"file://\"\r\n return \"file://\";\r\n default:\r\n // serializing an opaque origin returns \"null\"\r\n return \"null\";\r\n }\r\n};\r\n\r\nmodule.exports.basicURLParse = function (input, options) {\r\n if (options === undefined) {\r\n options = {};\r\n }\r\n\r\n const usm = new URLStateMachine(input, options.baseURL, options.encodingOverride, options.url, options.stateOverride);\r\n if (usm.failure) {\r\n return \"failure\";\r\n }\r\n\r\n return usm.url;\r\n};\r\n\r\nmodule.exports.setTheUsername = function (url, username) {\r\n url.username = \"\";\r\n const decoded = punycode.ucs2.decode(username);\r\n for (let i = 0; i < decoded.length; ++i) {\r\n url.username += percentEncodeChar(decoded[i], isUserinfoPercentEncode);\r\n }\r\n};\r\n\r\nmodule.exports.setThePassword = function (url, password) {\r\n url.password = \"\";\r\n const decoded = punycode.ucs2.decode(password);\r\n for (let i = 0; i < decoded.length; ++i) {\r\n url.password += percentEncodeChar(decoded[i], isUserinfoPercentEncode);\r\n }\r\n};\r\n\r\nmodule.exports.serializeHost = serializeHost;\r\n\r\nmodule.exports.cannotHaveAUsernamePasswordPort = cannotHaveAUsernamePasswordPort;\r\n\r\nmodule.exports.serializeInteger = function (integer) {\r\n return String(integer);\r\n};\r\n\r\nmodule.exports.parseURL = function (input, options) {\r\n if (options === undefined) {\r\n options = {};\r\n }\r\n\r\n // We don't handle blobs, so this just delegates:\r\n return module.exports.basicURLParse(input, { baseURL: options.baseURL, encodingOverride: options.encodingOverride });\r\n};\r\n","\"use strict\";\nconst usm = require(\"./url-state-machine\");\n\nexports.implementation = class URLImpl {\n constructor(constructorArgs) {\n const url = constructorArgs[0];\n const base = constructorArgs[1];\n\n let parsedBase = null;\n if (base !== undefined) {\n parsedBase = usm.basicURLParse(base);\n if (parsedBase === \"failure\") {\n throw new TypeError(\"Invalid base URL\");\n }\n }\n\n const parsedURL = usm.basicURLParse(url, { baseURL: parsedBase });\n if (parsedURL === \"failure\") {\n throw new TypeError(\"Invalid URL\");\n }\n\n this._url = parsedURL;\n\n // TODO: query stuff\n }\n\n get href() {\n return usm.serializeURL(this._url);\n }\n\n set href(v) {\n const parsedURL = usm.basicURLParse(v);\n if (parsedURL === \"failure\") {\n throw new TypeError(\"Invalid URL\");\n }\n\n this._url = parsedURL;\n }\n\n get origin() {\n return usm.serializeURLOrigin(this._url);\n }\n\n get protocol() {\n return this._url.scheme + \":\";\n }\n\n set protocol(v) {\n usm.basicURLParse(v + \":\", { url: this._url, stateOverride: \"scheme start\" });\n }\n\n get username() {\n return this._url.username;\n }\n\n set username(v) {\n if (usm.cannotHaveAUsernamePasswordPort(this._url)) {\n return;\n }\n\n usm.setTheUsername(this._url, v);\n }\n\n get password() {\n return this._url.password;\n }\n\n set password(v) {\n if (usm.cannotHaveAUsernamePasswordPort(this._url)) {\n return;\n }\n\n usm.setThePassword(this._url, v);\n }\n\n get host() {\n const url = this._url;\n\n if (url.host === null) {\n return \"\";\n }\n\n if (url.port === null) {\n return usm.serializeHost(url.host);\n }\n\n return usm.serializeHost(url.host) + \":\" + usm.serializeInteger(url.port);\n }\n\n set host(v) {\n if (this._url.cannotBeABaseURL) {\n return;\n }\n\n usm.basicURLParse(v, { url: this._url, stateOverride: \"host\" });\n }\n\n get hostname() {\n if (this._url.host === null) {\n return \"\";\n }\n\n return usm.serializeHost(this._url.host);\n }\n\n set hostname(v) {\n if (this._url.cannotBeABaseURL) {\n return;\n }\n\n usm.basicURLParse(v, { url: this._url, stateOverride: \"hostname\" });\n }\n\n get port() {\n if (this._url.port === null) {\n return \"\";\n }\n\n return usm.serializeInteger(this._url.port);\n }\n\n set port(v) {\n if (usm.cannotHaveAUsernamePasswordPort(this._url)) {\n return;\n }\n\n if (v === \"\") {\n this._url.port = null;\n } else {\n usm.basicURLParse(v, { url: this._url, stateOverride: \"port\" });\n }\n }\n\n get pathname() {\n if (this._url.cannotBeABaseURL) {\n return this._url.path[0];\n }\n\n if (this._url.path.length === 0) {\n return \"\";\n }\n\n return \"/\" + this._url.path.join(\"/\");\n }\n\n set pathname(v) {\n if (this._url.cannotBeABaseURL) {\n return;\n }\n\n this._url.path = [];\n usm.basicURLParse(v, { url: this._url, stateOverride: \"path start\" });\n }\n\n get search() {\n if (this._url.query === null || this._url.query === \"\") {\n return \"\";\n }\n\n return \"?\" + this._url.query;\n }\n\n set search(v) {\n // TODO: query stuff\n\n const url = this._url;\n\n if (v === \"\") {\n url.query = null;\n return;\n }\n\n const input = v[0] === \"?\" ? v.substring(1) : v;\n url.query = \"\";\n usm.basicURLParse(input, { url, stateOverride: \"query\" });\n }\n\n get hash() {\n if (this._url.fragment === null || this._url.fragment === \"\") {\n return \"\";\n }\n\n return \"#\" + this._url.fragment;\n }\n\n set hash(v) {\n if (v === \"\") {\n this._url.fragment = null;\n return;\n }\n\n const input = v[0] === \"#\" ? v.substring(1) : v;\n this._url.fragment = \"\";\n usm.basicURLParse(input, { url: this._url, stateOverride: \"fragment\" });\n }\n\n toJSON() {\n return this.href;\n }\n};\n","\"use strict\";\n\nconst conversions = require(\"webidl-conversions\");\nconst utils = require(\"./utils.js\");\nconst Impl = require(\".//URL-impl.js\");\n\nconst impl = utils.implSymbol;\n\nfunction URL(url) {\n if (!this || this[impl] || !(this instanceof URL)) {\n throw new TypeError(\"Failed to construct 'URL': Please use the 'new' operator, this DOM object constructor cannot be called as a function.\");\n }\n if (arguments.length < 1) {\n throw new TypeError(\"Failed to construct 'URL': 1 argument required, but only \" + arguments.length + \" present.\");\n }\n const args = [];\n for (let i = 0; i < arguments.length && i < 2; ++i) {\n args[i] = arguments[i];\n }\n args[0] = conversions[\"USVString\"](args[0]);\n if (args[1] !== undefined) {\n args[1] = conversions[\"USVString\"](args[1]);\n }\n\n module.exports.setup(this, args);\n}\n\nURL.prototype.toJSON = function toJSON() {\n if (!this || !module.exports.is(this)) {\n throw new TypeError(\"Illegal invocation\");\n }\n const args = [];\n for (let i = 0; i < arguments.length && i < 0; ++i) {\n args[i] = arguments[i];\n }\n return this[impl].toJSON.apply(this[impl], args);\n};\nObject.defineProperty(URL.prototype, \"href\", {\n get() {\n return this[impl].href;\n },\n set(V) {\n V = conversions[\"USVString\"](V);\n this[impl].href = V;\n },\n enumerable: true,\n configurable: true\n});\n\nURL.prototype.toString = function () {\n if (!this || !module.exports.is(this)) {\n throw new TypeError(\"Illegal invocation\");\n }\n return this.href;\n};\n\nObject.defineProperty(URL.prototype, \"origin\", {\n get() {\n return this[impl].origin;\n },\n enumerable: true,\n configurable: true\n});\n\nObject.defineProperty(URL.prototype, \"protocol\", {\n get() {\n return this[impl].protocol;\n },\n set(V) {\n V = conversions[\"USVString\"](V);\n this[impl].protocol = V;\n },\n enumerable: true,\n configurable: true\n});\n\nObject.defineProperty(URL.prototype, \"username\", {\n get() {\n return this[impl].username;\n },\n set(V) {\n V = conversions[\"USVString\"](V);\n this[impl].username = V;\n },\n enumerable: true,\n configurable: true\n});\n\nObject.defineProperty(URL.prototype, \"password\", {\n get() {\n return this[impl].password;\n },\n set(V) {\n V = conversions[\"USVString\"](V);\n this[impl].password = V;\n },\n enumerable: true,\n configurable: true\n});\n\nObject.defineProperty(URL.prototype, \"host\", {\n get() {\n return this[impl].host;\n },\n set(V) {\n V = conversions[\"USVString\"](V);\n this[impl].host = V;\n },\n enumerable: true,\n configurable: true\n});\n\nObject.defineProperty(URL.prototype, \"hostname\", {\n get() {\n return this[impl].hostname;\n },\n set(V) {\n V = conversions[\"USVString\"](V);\n this[impl].hostname = V;\n },\n enumerable: true,\n configurable: true\n});\n\nObject.defineProperty(URL.prototype, \"port\", {\n get() {\n return this[impl].port;\n },\n set(V) {\n V = conversions[\"USVString\"](V);\n this[impl].port = V;\n },\n enumerable: true,\n configurable: true\n});\n\nObject.defineProperty(URL.prototype, \"pathname\", {\n get() {\n return this[impl].pathname;\n },\n set(V) {\n V = conversions[\"USVString\"](V);\n this[impl].pathname = V;\n },\n enumerable: true,\n configurable: true\n});\n\nObject.defineProperty(URL.prototype, \"search\", {\n get() {\n return this[impl].search;\n },\n set(V) {\n V = conversions[\"USVString\"](V);\n this[impl].search = V;\n },\n enumerable: true,\n configurable: true\n});\n\nObject.defineProperty(URL.prototype, \"hash\", {\n get() {\n return this[impl].hash;\n },\n set(V) {\n V = conversions[\"USVString\"](V);\n this[impl].hash = V;\n },\n enumerable: true,\n configurable: true\n});\n\n\nmodule.exports = {\n is(obj) {\n return !!obj && obj[impl] instanceof Impl.implementation;\n },\n create(constructorArgs, privateData) {\n let obj = Object.create(URL.prototype);\n this.setup(obj, constructorArgs, privateData);\n return obj;\n },\n setup(obj, constructorArgs, privateData) {\n if (!privateData) privateData = {};\n privateData.wrapper = obj;\n\n obj[impl] = new Impl.implementation(constructorArgs, privateData);\n obj[impl][utils.wrapperSymbol] = obj;\n },\n interface: URL,\n expose: {\n Window: { URL: URL },\n Worker: { URL: URL }\n }\n};\n\n","\"use strict\";\n\nexports.URL = require(\"./URL\").interface;\nexports.serializeURL = require(\"./url-state-machine\").serializeURL;\nexports.serializeURLOrigin = require(\"./url-state-machine\").serializeURLOrigin;\nexports.basicURLParse = require(\"./url-state-machine\").basicURLParse;\nexports.setTheUsername = require(\"./url-state-machine\").setTheUsername;\nexports.setThePassword = require(\"./url-state-machine\").setThePassword;\nexports.serializeHost = require(\"./url-state-machine\").serializeHost;\nexports.serializeInteger = require(\"./url-state-machine\").serializeInteger;\nexports.parseURL = require(\"./url-state-machine\").parseURL;\n","import Stream from 'stream';\nimport http from 'http';\nimport Url from 'url';\nimport whatwgUrl from 'whatwg-url';\nimport https from 'https';\nimport zlib from 'zlib';\n\n// Based on https://github.com/tmpvar/jsdom/blob/aa85b2abf07766ff7bf5c1f6daafb3726f2f2db5/lib/jsdom/living/blob.js\n\n// fix for \"Readable\" isn't a named export issue\nconst Readable = Stream.Readable;\n\nconst BUFFER = Symbol('buffer');\nconst TYPE = Symbol('type');\n\nclass Blob {\n\tconstructor() {\n\t\tthis[TYPE] = '';\n\n\t\tconst blobParts = arguments[0];\n\t\tconst options = arguments[1];\n\n\t\tconst buffers = [];\n\t\tlet size = 0;\n\n\t\tif (blobParts) {\n\t\t\tconst a = blobParts;\n\t\t\tconst length = Number(a.length);\n\t\t\tfor (let i = 0; i < length; i++) {\n\t\t\t\tconst element = a[i];\n\t\t\t\tlet buffer;\n\t\t\t\tif (element instanceof Buffer) {\n\t\t\t\t\tbuffer = element;\n\t\t\t\t} else if (ArrayBuffer.isView(element)) {\n\t\t\t\t\tbuffer = Buffer.from(element.buffer, element.byteOffset, element.byteLength);\n\t\t\t\t} else if (element instanceof ArrayBuffer) {\n\t\t\t\t\tbuffer = Buffer.from(element);\n\t\t\t\t} else if (element instanceof Blob) {\n\t\t\t\t\tbuffer = element[BUFFER];\n\t\t\t\t} else {\n\t\t\t\t\tbuffer = Buffer.from(typeof element === 'string' ? element : String(element));\n\t\t\t\t}\n\t\t\t\tsize += buffer.length;\n\t\t\t\tbuffers.push(buffer);\n\t\t\t}\n\t\t}\n\n\t\tthis[BUFFER] = Buffer.concat(buffers);\n\n\t\tlet type = options && options.type !== undefined && String(options.type).toLowerCase();\n\t\tif (type && !/[^\\u0020-\\u007E]/.test(type)) {\n\t\t\tthis[TYPE] = type;\n\t\t}\n\t}\n\tget size() {\n\t\treturn this[BUFFER].length;\n\t}\n\tget type() {\n\t\treturn this[TYPE];\n\t}\n\ttext() {\n\t\treturn Promise.resolve(this[BUFFER].toString());\n\t}\n\tarrayBuffer() {\n\t\tconst buf = this[BUFFER];\n\t\tconst ab = buf.buffer.slice(buf.byteOffset, buf.byteOffset + buf.byteLength);\n\t\treturn Promise.resolve(ab);\n\t}\n\tstream() {\n\t\tconst readable = new Readable();\n\t\treadable._read = function () {};\n\t\treadable.push(this[BUFFER]);\n\t\treadable.push(null);\n\t\treturn readable;\n\t}\n\ttoString() {\n\t\treturn '[object Blob]';\n\t}\n\tslice() {\n\t\tconst size = this.size;\n\n\t\tconst start = arguments[0];\n\t\tconst end = arguments[1];\n\t\tlet relativeStart, relativeEnd;\n\t\tif (start === undefined) {\n\t\t\trelativeStart = 0;\n\t\t} else if (start < 0) {\n\t\t\trelativeStart = Math.max(size + start, 0);\n\t\t} else {\n\t\t\trelativeStart = Math.min(start, size);\n\t\t}\n\t\tif (end === undefined) {\n\t\t\trelativeEnd = size;\n\t\t} else if (end < 0) {\n\t\t\trelativeEnd = Math.max(size + end, 0);\n\t\t} else {\n\t\t\trelativeEnd = Math.min(end, size);\n\t\t}\n\t\tconst span = Math.max(relativeEnd - relativeStart, 0);\n\n\t\tconst buffer = this[BUFFER];\n\t\tconst slicedBuffer = buffer.slice(relativeStart, relativeStart + span);\n\t\tconst blob = new Blob([], { type: arguments[2] });\n\t\tblob[BUFFER] = slicedBuffer;\n\t\treturn blob;\n\t}\n}\n\nObject.defineProperties(Blob.prototype, {\n\tsize: { enumerable: true },\n\ttype: { enumerable: true },\n\tslice: { enumerable: true }\n});\n\nObject.defineProperty(Blob.prototype, Symbol.toStringTag, {\n\tvalue: 'Blob',\n\twritable: false,\n\tenumerable: false,\n\tconfigurable: true\n});\n\n/**\n * fetch-error.js\n *\n * FetchError interface for operational errors\n */\n\n/**\n * Create FetchError instance\n *\n * @param String message Error message for human\n * @param String type Error type for machine\n * @param String systemError For Node.js system error\n * @return FetchError\n */\nfunction FetchError(message, type, systemError) {\n Error.call(this, message);\n\n this.message = message;\n this.type = type;\n\n // when err.type is `system`, err.code contains system error code\n if (systemError) {\n this.code = this.errno = systemError.code;\n }\n\n // hide custom error implementation details from end-users\n Error.captureStackTrace(this, this.constructor);\n}\n\nFetchError.prototype = Object.create(Error.prototype);\nFetchError.prototype.constructor = FetchError;\nFetchError.prototype.name = 'FetchError';\n\nlet convert;\ntry {\n\tconvert = require('encoding').convert;\n} catch (e) {}\n\nconst INTERNALS = Symbol('Body internals');\n\n// fix an issue where \"PassThrough\" isn't a named export for node <10\nconst PassThrough = Stream.PassThrough;\n\n/**\n * Body mixin\n *\n * Ref: https://fetch.spec.whatwg.org/#body\n *\n * @param Stream body Readable stream\n * @param Object opts Response options\n * @return Void\n */\nfunction Body(body) {\n\tvar _this = this;\n\n\tvar _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},\n\t _ref$size = _ref.size;\n\n\tlet size = _ref$size === undefined ? 0 : _ref$size;\n\tvar _ref$timeout = _ref.timeout;\n\tlet timeout = _ref$timeout === undefined ? 0 : _ref$timeout;\n\n\tif (body == null) {\n\t\t// body is undefined or null\n\t\tbody = null;\n\t} else if (isURLSearchParams(body)) {\n\t\t// body is a URLSearchParams\n\t\tbody = Buffer.from(body.toString());\n\t} else if (isBlob(body)) ; else if (Buffer.isBuffer(body)) ; else if (Object.prototype.toString.call(body) === '[object ArrayBuffer]') {\n\t\t// body is ArrayBuffer\n\t\tbody = Buffer.from(body);\n\t} else if (ArrayBuffer.isView(body)) {\n\t\t// body is ArrayBufferView\n\t\tbody = Buffer.from(body.buffer, body.byteOffset, body.byteLength);\n\t} else if (body instanceof Stream) ; else {\n\t\t// none of the above\n\t\t// coerce to string then buffer\n\t\tbody = Buffer.from(String(body));\n\t}\n\tthis[INTERNALS] = {\n\t\tbody,\n\t\tdisturbed: false,\n\t\terror: null\n\t};\n\tthis.size = size;\n\tthis.timeout = timeout;\n\n\tif (body instanceof Stream) {\n\t\tbody.on('error', function (err) {\n\t\t\tconst error = err.name === 'AbortError' ? err : new FetchError(`Invalid response body while trying to fetch ${_this.url}: ${err.message}`, 'system', err);\n\t\t\t_this[INTERNALS].error = error;\n\t\t});\n\t}\n}\n\nBody.prototype = {\n\tget body() {\n\t\treturn this[INTERNALS].body;\n\t},\n\n\tget bodyUsed() {\n\t\treturn this[INTERNALS].disturbed;\n\t},\n\n\t/**\n * Decode response as ArrayBuffer\n *\n * @return Promise\n */\n\tarrayBuffer() {\n\t\treturn consumeBody.call(this).then(function (buf) {\n\t\t\treturn buf.buffer.slice(buf.byteOffset, buf.byteOffset + buf.byteLength);\n\t\t});\n\t},\n\n\t/**\n * Return raw response as Blob\n *\n * @return Promise\n */\n\tblob() {\n\t\tlet ct = this.headers && this.headers.get('content-type') || '';\n\t\treturn consumeBody.call(this).then(function (buf) {\n\t\t\treturn Object.assign(\n\t\t\t// Prevent copying\n\t\t\tnew Blob([], {\n\t\t\t\ttype: ct.toLowerCase()\n\t\t\t}), {\n\t\t\t\t[BUFFER]: buf\n\t\t\t});\n\t\t});\n\t},\n\n\t/**\n * Decode response as json\n *\n * @return Promise\n */\n\tjson() {\n\t\tvar _this2 = this;\n\n\t\treturn consumeBody.call(this).then(function (buffer) {\n\t\t\ttry {\n\t\t\t\treturn JSON.parse(buffer.toString());\n\t\t\t} catch (err) {\n\t\t\t\treturn Body.Promise.reject(new FetchError(`invalid json response body at ${_this2.url} reason: ${err.message}`, 'invalid-json'));\n\t\t\t}\n\t\t});\n\t},\n\n\t/**\n * Decode response as text\n *\n * @return Promise\n */\n\ttext() {\n\t\treturn consumeBody.call(this).then(function (buffer) {\n\t\t\treturn buffer.toString();\n\t\t});\n\t},\n\n\t/**\n * Decode response as buffer (non-spec api)\n *\n * @return Promise\n */\n\tbuffer() {\n\t\treturn consumeBody.call(this);\n\t},\n\n\t/**\n * Decode response as text, while automatically detecting the encoding and\n * trying to decode to UTF-8 (non-spec api)\n *\n * @return Promise\n */\n\ttextConverted() {\n\t\tvar _this3 = this;\n\n\t\treturn consumeBody.call(this).then(function (buffer) {\n\t\t\treturn convertBody(buffer, _this3.headers);\n\t\t});\n\t}\n};\n\n// In browsers, all properties are enumerable.\nObject.defineProperties(Body.prototype, {\n\tbody: { enumerable: true },\n\tbodyUsed: { enumerable: true },\n\tarrayBuffer: { enumerable: true },\n\tblob: { enumerable: true },\n\tjson: { enumerable: true },\n\ttext: { enumerable: true }\n});\n\nBody.mixIn = function (proto) {\n\tfor (const name of Object.getOwnPropertyNames(Body.prototype)) {\n\t\t// istanbul ignore else: future proof\n\t\tif (!(name in proto)) {\n\t\t\tconst desc = Object.getOwnPropertyDescriptor(Body.prototype, name);\n\t\t\tObject.defineProperty(proto, name, desc);\n\t\t}\n\t}\n};\n\n/**\n * Consume and convert an entire Body to a Buffer.\n *\n * Ref: https://fetch.spec.whatwg.org/#concept-body-consume-body\n *\n * @return Promise\n */\nfunction consumeBody() {\n\tvar _this4 = this;\n\n\tif (this[INTERNALS].disturbed) {\n\t\treturn Body.Promise.reject(new TypeError(`body used already for: ${this.url}`));\n\t}\n\n\tthis[INTERNALS].disturbed = true;\n\n\tif (this[INTERNALS].error) {\n\t\treturn Body.Promise.reject(this[INTERNALS].error);\n\t}\n\n\tlet body = this.body;\n\n\t// body is null\n\tif (body === null) {\n\t\treturn Body.Promise.resolve(Buffer.alloc(0));\n\t}\n\n\t// body is blob\n\tif (isBlob(body)) {\n\t\tbody = body.stream();\n\t}\n\n\t// body is buffer\n\tif (Buffer.isBuffer(body)) {\n\t\treturn Body.Promise.resolve(body);\n\t}\n\n\t// istanbul ignore if: should never happen\n\tif (!(body instanceof Stream)) {\n\t\treturn Body.Promise.resolve(Buffer.alloc(0));\n\t}\n\n\t// body is stream\n\t// get ready to actually consume the body\n\tlet accum = [];\n\tlet accumBytes = 0;\n\tlet abort = false;\n\n\treturn new Body.Promise(function (resolve, reject) {\n\t\tlet resTimeout;\n\n\t\t// allow timeout on slow response body\n\t\tif (_this4.timeout) {\n\t\t\tresTimeout = setTimeout(function () {\n\t\t\t\tabort = true;\n\t\t\t\treject(new FetchError(`Response timeout while trying to fetch ${_this4.url} (over ${_this4.timeout}ms)`, 'body-timeout'));\n\t\t\t}, _this4.timeout);\n\t\t}\n\n\t\t// handle stream errors\n\t\tbody.on('error', function (err) {\n\t\t\tif (err.name === 'AbortError') {\n\t\t\t\t// if the request was aborted, reject with this Error\n\t\t\t\tabort = true;\n\t\t\t\treject(err);\n\t\t\t} else {\n\t\t\t\t// other errors, such as incorrect content-encoding\n\t\t\t\treject(new FetchError(`Invalid response body while trying to fetch ${_this4.url}: ${err.message}`, 'system', err));\n\t\t\t}\n\t\t});\n\n\t\tbody.on('data', function (chunk) {\n\t\t\tif (abort || chunk === null) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (_this4.size && accumBytes + chunk.length > _this4.size) {\n\t\t\t\tabort = true;\n\t\t\t\treject(new FetchError(`content size at ${_this4.url} over limit: ${_this4.size}`, 'max-size'));\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\taccumBytes += chunk.length;\n\t\t\taccum.push(chunk);\n\t\t});\n\n\t\tbody.on('end', function () {\n\t\t\tif (abort) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tclearTimeout(resTimeout);\n\n\t\t\ttry {\n\t\t\t\tresolve(Buffer.concat(accum, accumBytes));\n\t\t\t} catch (err) {\n\t\t\t\t// handle streams that have accumulated too much data (issue #414)\n\t\t\t\treject(new FetchError(`Could not create Buffer from response body for ${_this4.url}: ${err.message}`, 'system', err));\n\t\t\t}\n\t\t});\n\t});\n}\n\n/**\n * Detect buffer encoding and convert to target encoding\n * ref: http://www.w3.org/TR/2011/WD-html5-20110113/parsing.html#determining-the-character-encoding\n *\n * @param Buffer buffer Incoming buffer\n * @param String encoding Target encoding\n * @return String\n */\nfunction convertBody(buffer, headers) {\n\tif (typeof convert !== 'function') {\n\t\tthrow new Error('The package `encoding` must be installed to use the textConverted() function');\n\t}\n\n\tconst ct = headers.get('content-type');\n\tlet charset = 'utf-8';\n\tlet res, str;\n\n\t// header\n\tif (ct) {\n\t\tres = /charset=([^;]*)/i.exec(ct);\n\t}\n\n\t// no charset in content type, peek at response body for at most 1024 bytes\n\tstr = buffer.slice(0, 1024).toString();\n\n\t// html5\n\tif (!res && str) {\n\t\tres = / 0 && arguments[0] !== undefined ? arguments[0] : undefined;\n\n\t\tthis[MAP] = Object.create(null);\n\n\t\tif (init instanceof Headers) {\n\t\t\tconst rawHeaders = init.raw();\n\t\t\tconst headerNames = Object.keys(rawHeaders);\n\n\t\t\tfor (const headerName of headerNames) {\n\t\t\t\tfor (const value of rawHeaders[headerName]) {\n\t\t\t\t\tthis.append(headerName, value);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn;\n\t\t}\n\n\t\t// We don't worry about converting prop to ByteString here as append()\n\t\t// will handle it.\n\t\tif (init == null) ; else if (typeof init === 'object') {\n\t\t\tconst method = init[Symbol.iterator];\n\t\t\tif (method != null) {\n\t\t\t\tif (typeof method !== 'function') {\n\t\t\t\t\tthrow new TypeError('Header pairs must be iterable');\n\t\t\t\t}\n\n\t\t\t\t// sequence>\n\t\t\t\t// Note: per spec we have to first exhaust the lists then process them\n\t\t\t\tconst pairs = [];\n\t\t\t\tfor (const pair of init) {\n\t\t\t\t\tif (typeof pair !== 'object' || typeof pair[Symbol.iterator] !== 'function') {\n\t\t\t\t\t\tthrow new TypeError('Each header pair must be iterable');\n\t\t\t\t\t}\n\t\t\t\t\tpairs.push(Array.from(pair));\n\t\t\t\t}\n\n\t\t\t\tfor (const pair of pairs) {\n\t\t\t\t\tif (pair.length !== 2) {\n\t\t\t\t\t\tthrow new TypeError('Each header pair must be a name/value tuple');\n\t\t\t\t\t}\n\t\t\t\t\tthis.append(pair[0], pair[1]);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t// record\n\t\t\t\tfor (const key of Object.keys(init)) {\n\t\t\t\t\tconst value = init[key];\n\t\t\t\t\tthis.append(key, value);\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tthrow new TypeError('Provided initializer must be an object');\n\t\t}\n\t}\n\n\t/**\n * Return combined header value given name\n *\n * @param String name Header name\n * @return Mixed\n */\n\tget(name) {\n\t\tname = `${name}`;\n\t\tvalidateName(name);\n\t\tconst key = find(this[MAP], name);\n\t\tif (key === undefined) {\n\t\t\treturn null;\n\t\t}\n\n\t\treturn this[MAP][key].join(', ');\n\t}\n\n\t/**\n * Iterate over all headers\n *\n * @param Function callback Executed for each item with parameters (value, name, thisArg)\n * @param Boolean thisArg `this` context for callback function\n * @return Void\n */\n\tforEach(callback) {\n\t\tlet thisArg = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : undefined;\n\n\t\tlet pairs = getHeaders(this);\n\t\tlet i = 0;\n\t\twhile (i < pairs.length) {\n\t\t\tvar _pairs$i = pairs[i];\n\t\t\tconst name = _pairs$i[0],\n\t\t\t value = _pairs$i[1];\n\n\t\t\tcallback.call(thisArg, value, name, this);\n\t\t\tpairs = getHeaders(this);\n\t\t\ti++;\n\t\t}\n\t}\n\n\t/**\n * Overwrite header values given name\n *\n * @param String name Header name\n * @param String value Header value\n * @return Void\n */\n\tset(name, value) {\n\t\tname = `${name}`;\n\t\tvalue = `${value}`;\n\t\tvalidateName(name);\n\t\tvalidateValue(value);\n\t\tconst key = find(this[MAP], name);\n\t\tthis[MAP][key !== undefined ? key : name] = [value];\n\t}\n\n\t/**\n * Append a value onto existing header\n *\n * @param String name Header name\n * @param String value Header value\n * @return Void\n */\n\tappend(name, value) {\n\t\tname = `${name}`;\n\t\tvalue = `${value}`;\n\t\tvalidateName(name);\n\t\tvalidateValue(value);\n\t\tconst key = find(this[MAP], name);\n\t\tif (key !== undefined) {\n\t\t\tthis[MAP][key].push(value);\n\t\t} else {\n\t\t\tthis[MAP][name] = [value];\n\t\t}\n\t}\n\n\t/**\n * Check for header name existence\n *\n * @param String name Header name\n * @return Boolean\n */\n\thas(name) {\n\t\tname = `${name}`;\n\t\tvalidateName(name);\n\t\treturn find(this[MAP], name) !== undefined;\n\t}\n\n\t/**\n * Delete all header values given name\n *\n * @param String name Header name\n * @return Void\n */\n\tdelete(name) {\n\t\tname = `${name}`;\n\t\tvalidateName(name);\n\t\tconst key = find(this[MAP], name);\n\t\tif (key !== undefined) {\n\t\t\tdelete this[MAP][key];\n\t\t}\n\t}\n\n\t/**\n * Return raw headers (non-spec api)\n *\n * @return Object\n */\n\traw() {\n\t\treturn this[MAP];\n\t}\n\n\t/**\n * Get an iterator on keys.\n *\n * @return Iterator\n */\n\tkeys() {\n\t\treturn createHeadersIterator(this, 'key');\n\t}\n\n\t/**\n * Get an iterator on values.\n *\n * @return Iterator\n */\n\tvalues() {\n\t\treturn createHeadersIterator(this, 'value');\n\t}\n\n\t/**\n * Get an iterator on entries.\n *\n * This is the default iterator of the Headers object.\n *\n * @return Iterator\n */\n\t[Symbol.iterator]() {\n\t\treturn createHeadersIterator(this, 'key+value');\n\t}\n}\nHeaders.prototype.entries = Headers.prototype[Symbol.iterator];\n\nObject.defineProperty(Headers.prototype, Symbol.toStringTag, {\n\tvalue: 'Headers',\n\twritable: false,\n\tenumerable: false,\n\tconfigurable: true\n});\n\nObject.defineProperties(Headers.prototype, {\n\tget: { enumerable: true },\n\tforEach: { enumerable: true },\n\tset: { enumerable: true },\n\tappend: { enumerable: true },\n\thas: { enumerable: true },\n\tdelete: { enumerable: true },\n\tkeys: { enumerable: true },\n\tvalues: { enumerable: true },\n\tentries: { enumerable: true }\n});\n\nfunction getHeaders(headers) {\n\tlet kind = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'key+value';\n\n\tconst keys = Object.keys(headers[MAP]).sort();\n\treturn keys.map(kind === 'key' ? function (k) {\n\t\treturn k.toLowerCase();\n\t} : kind === 'value' ? function (k) {\n\t\treturn headers[MAP][k].join(', ');\n\t} : function (k) {\n\t\treturn [k.toLowerCase(), headers[MAP][k].join(', ')];\n\t});\n}\n\nconst INTERNAL = Symbol('internal');\n\nfunction createHeadersIterator(target, kind) {\n\tconst iterator = Object.create(HeadersIteratorPrototype);\n\titerator[INTERNAL] = {\n\t\ttarget,\n\t\tkind,\n\t\tindex: 0\n\t};\n\treturn iterator;\n}\n\nconst HeadersIteratorPrototype = Object.setPrototypeOf({\n\tnext() {\n\t\t// istanbul ignore if\n\t\tif (!this || Object.getPrototypeOf(this) !== HeadersIteratorPrototype) {\n\t\t\tthrow new TypeError('Value of `this` is not a HeadersIterator');\n\t\t}\n\n\t\tvar _INTERNAL = this[INTERNAL];\n\t\tconst target = _INTERNAL.target,\n\t\t kind = _INTERNAL.kind,\n\t\t index = _INTERNAL.index;\n\n\t\tconst values = getHeaders(target, kind);\n\t\tconst len = values.length;\n\t\tif (index >= len) {\n\t\t\treturn {\n\t\t\t\tvalue: undefined,\n\t\t\t\tdone: true\n\t\t\t};\n\t\t}\n\n\t\tthis[INTERNAL].index = index + 1;\n\n\t\treturn {\n\t\t\tvalue: values[index],\n\t\t\tdone: false\n\t\t};\n\t}\n}, Object.getPrototypeOf(Object.getPrototypeOf([][Symbol.iterator]())));\n\nObject.defineProperty(HeadersIteratorPrototype, Symbol.toStringTag, {\n\tvalue: 'HeadersIterator',\n\twritable: false,\n\tenumerable: false,\n\tconfigurable: true\n});\n\n/**\n * Export the Headers object in a form that Node.js can consume.\n *\n * @param Headers headers\n * @return Object\n */\nfunction exportNodeCompatibleHeaders(headers) {\n\tconst obj = Object.assign({ __proto__: null }, headers[MAP]);\n\n\t// http.request() only supports string as Host header. This hack makes\n\t// specifying custom Host header possible.\n\tconst hostHeaderKey = find(headers[MAP], 'Host');\n\tif (hostHeaderKey !== undefined) {\n\t\tobj[hostHeaderKey] = obj[hostHeaderKey][0];\n\t}\n\n\treturn obj;\n}\n\n/**\n * Create a Headers object from an object of headers, ignoring those that do\n * not conform to HTTP grammar productions.\n *\n * @param Object obj Object of headers\n * @return Headers\n */\nfunction createHeadersLenient(obj) {\n\tconst headers = new Headers();\n\tfor (const name of Object.keys(obj)) {\n\t\tif (invalidTokenRegex.test(name)) {\n\t\t\tcontinue;\n\t\t}\n\t\tif (Array.isArray(obj[name])) {\n\t\t\tfor (const val of obj[name]) {\n\t\t\t\tif (invalidHeaderCharRegex.test(val)) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tif (headers[MAP][name] === undefined) {\n\t\t\t\t\theaders[MAP][name] = [val];\n\t\t\t\t} else {\n\t\t\t\t\theaders[MAP][name].push(val);\n\t\t\t\t}\n\t\t\t}\n\t\t} else if (!invalidHeaderCharRegex.test(obj[name])) {\n\t\t\theaders[MAP][name] = [obj[name]];\n\t\t}\n\t}\n\treturn headers;\n}\n\nconst INTERNALS$1 = Symbol('Response internals');\n\n// fix an issue where \"STATUS_CODES\" aren't a named export for node <10\nconst STATUS_CODES = http.STATUS_CODES;\n\n/**\n * Response class\n *\n * @param Stream body Readable stream\n * @param Object opts Response options\n * @return Void\n */\nclass Response {\n\tconstructor() {\n\t\tlet body = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;\n\t\tlet opts = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n\t\tBody.call(this, body, opts);\n\n\t\tconst status = opts.status || 200;\n\t\tconst headers = new Headers(opts.headers);\n\n\t\tif (body != null && !headers.has('Content-Type')) {\n\t\t\tconst contentType = extractContentType(body);\n\t\t\tif (contentType) {\n\t\t\t\theaders.append('Content-Type', contentType);\n\t\t\t}\n\t\t}\n\n\t\tthis[INTERNALS$1] = {\n\t\t\turl: opts.url,\n\t\t\tstatus,\n\t\t\tstatusText: opts.statusText || STATUS_CODES[status],\n\t\t\theaders,\n\t\t\tcounter: opts.counter\n\t\t};\n\t}\n\n\tget url() {\n\t\treturn this[INTERNALS$1].url || '';\n\t}\n\n\tget status() {\n\t\treturn this[INTERNALS$1].status;\n\t}\n\n\t/**\n * Convenience property representing if the request ended normally\n */\n\tget ok() {\n\t\treturn this[INTERNALS$1].status >= 200 && this[INTERNALS$1].status < 300;\n\t}\n\n\tget redirected() {\n\t\treturn this[INTERNALS$1].counter > 0;\n\t}\n\n\tget statusText() {\n\t\treturn this[INTERNALS$1].statusText;\n\t}\n\n\tget headers() {\n\t\treturn this[INTERNALS$1].headers;\n\t}\n\n\t/**\n * Clone this response\n *\n * @return Response\n */\n\tclone() {\n\t\treturn new Response(clone(this), {\n\t\t\turl: this.url,\n\t\t\tstatus: this.status,\n\t\t\tstatusText: this.statusText,\n\t\t\theaders: this.headers,\n\t\t\tok: this.ok,\n\t\t\tredirected: this.redirected\n\t\t});\n\t}\n}\n\nBody.mixIn(Response.prototype);\n\nObject.defineProperties(Response.prototype, {\n\turl: { enumerable: true },\n\tstatus: { enumerable: true },\n\tok: { enumerable: true },\n\tredirected: { enumerable: true },\n\tstatusText: { enumerable: true },\n\theaders: { enumerable: true },\n\tclone: { enumerable: true }\n});\n\nObject.defineProperty(Response.prototype, Symbol.toStringTag, {\n\tvalue: 'Response',\n\twritable: false,\n\tenumerable: false,\n\tconfigurable: true\n});\n\nconst INTERNALS$2 = Symbol('Request internals');\nconst URL = Url.URL || whatwgUrl.URL;\n\n// fix an issue where \"format\", \"parse\" aren't a named export for node <10\nconst parse_url = Url.parse;\nconst format_url = Url.format;\n\n/**\n * Wrapper around `new URL` to handle arbitrary URLs\n *\n * @param {string} urlStr\n * @return {void}\n */\nfunction parseURL(urlStr) {\n\t/*\n \tCheck whether the URL is absolute or not\n \t\tScheme: https://tools.ietf.org/html/rfc3986#section-3.1\n \tAbsolute URL: https://tools.ietf.org/html/rfc3986#section-4.3\n */\n\tif (/^[a-zA-Z][a-zA-Z\\d+\\-.]*:/.exec(urlStr)) {\n\t\turlStr = new URL(urlStr).toString();\n\t}\n\n\t// Fallback to old implementation for arbitrary URLs\n\treturn parse_url(urlStr);\n}\n\nconst streamDestructionSupported = 'destroy' in Stream.Readable.prototype;\n\n/**\n * Check if a value is an instance of Request.\n *\n * @param Mixed input\n * @return Boolean\n */\nfunction isRequest(input) {\n\treturn typeof input === 'object' && typeof input[INTERNALS$2] === 'object';\n}\n\nfunction isAbortSignal(signal) {\n\tconst proto = signal && typeof signal === 'object' && Object.getPrototypeOf(signal);\n\treturn !!(proto && proto.constructor.name === 'AbortSignal');\n}\n\n/**\n * Request class\n *\n * @param Mixed input Url or Request instance\n * @param Object init Custom options\n * @return Void\n */\nclass Request {\n\tconstructor(input) {\n\t\tlet init = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n\t\tlet parsedURL;\n\n\t\t// normalize input\n\t\tif (!isRequest(input)) {\n\t\t\tif (input && input.href) {\n\t\t\t\t// in order to support Node.js' Url objects; though WHATWG's URL objects\n\t\t\t\t// will fall into this branch also (since their `toString()` will return\n\t\t\t\t// `href` property anyway)\n\t\t\t\tparsedURL = parseURL(input.href);\n\t\t\t} else {\n\t\t\t\t// coerce input to a string before attempting to parse\n\t\t\t\tparsedURL = parseURL(`${input}`);\n\t\t\t}\n\t\t\tinput = {};\n\t\t} else {\n\t\t\tparsedURL = parseURL(input.url);\n\t\t}\n\n\t\tlet method = init.method || input.method || 'GET';\n\t\tmethod = method.toUpperCase();\n\n\t\tif ((init.body != null || isRequest(input) && input.body !== null) && (method === 'GET' || method === 'HEAD')) {\n\t\t\tthrow new TypeError('Request with GET/HEAD method cannot have body');\n\t\t}\n\n\t\tlet inputBody = init.body != null ? init.body : isRequest(input) && input.body !== null ? clone(input) : null;\n\n\t\tBody.call(this, inputBody, {\n\t\t\ttimeout: init.timeout || input.timeout || 0,\n\t\t\tsize: init.size || input.size || 0\n\t\t});\n\n\t\tconst headers = new Headers(init.headers || input.headers || {});\n\n\t\tif (inputBody != null && !headers.has('Content-Type')) {\n\t\t\tconst contentType = extractContentType(inputBody);\n\t\t\tif (contentType) {\n\t\t\t\theaders.append('Content-Type', contentType);\n\t\t\t}\n\t\t}\n\n\t\tlet signal = isRequest(input) ? input.signal : null;\n\t\tif ('signal' in init) signal = init.signal;\n\n\t\tif (signal != null && !isAbortSignal(signal)) {\n\t\t\tthrow new TypeError('Expected signal to be an instanceof AbortSignal');\n\t\t}\n\n\t\tthis[INTERNALS$2] = {\n\t\t\tmethod,\n\t\t\tredirect: init.redirect || input.redirect || 'follow',\n\t\t\theaders,\n\t\t\tparsedURL,\n\t\t\tsignal\n\t\t};\n\n\t\t// node-fetch-only options\n\t\tthis.follow = init.follow !== undefined ? init.follow : input.follow !== undefined ? input.follow : 20;\n\t\tthis.compress = init.compress !== undefined ? init.compress : input.compress !== undefined ? input.compress : true;\n\t\tthis.counter = init.counter || input.counter || 0;\n\t\tthis.agent = init.agent || input.agent;\n\t}\n\n\tget method() {\n\t\treturn this[INTERNALS$2].method;\n\t}\n\n\tget url() {\n\t\treturn format_url(this[INTERNALS$2].parsedURL);\n\t}\n\n\tget headers() {\n\t\treturn this[INTERNALS$2].headers;\n\t}\n\n\tget redirect() {\n\t\treturn this[INTERNALS$2].redirect;\n\t}\n\n\tget signal() {\n\t\treturn this[INTERNALS$2].signal;\n\t}\n\n\t/**\n * Clone this request\n *\n * @return Request\n */\n\tclone() {\n\t\treturn new Request(this);\n\t}\n}\n\nBody.mixIn(Request.prototype);\n\nObject.defineProperty(Request.prototype, Symbol.toStringTag, {\n\tvalue: 'Request',\n\twritable: false,\n\tenumerable: false,\n\tconfigurable: true\n});\n\nObject.defineProperties(Request.prototype, {\n\tmethod: { enumerable: true },\n\turl: { enumerable: true },\n\theaders: { enumerable: true },\n\tredirect: { enumerable: true },\n\tclone: { enumerable: true },\n\tsignal: { enumerable: true }\n});\n\n/**\n * Convert a Request to Node.js http request options.\n *\n * @param Request A Request instance\n * @return Object The options object to be passed to http.request\n */\nfunction getNodeRequestOptions(request) {\n\tconst parsedURL = request[INTERNALS$2].parsedURL;\n\tconst headers = new Headers(request[INTERNALS$2].headers);\n\n\t// fetch step 1.3\n\tif (!headers.has('Accept')) {\n\t\theaders.set('Accept', '*/*');\n\t}\n\n\t// Basic fetch\n\tif (!parsedURL.protocol || !parsedURL.hostname) {\n\t\tthrow new TypeError('Only absolute URLs are supported');\n\t}\n\n\tif (!/^https?:$/.test(parsedURL.protocol)) {\n\t\tthrow new TypeError('Only HTTP(S) protocols are supported');\n\t}\n\n\tif (request.signal && request.body instanceof Stream.Readable && !streamDestructionSupported) {\n\t\tthrow new Error('Cancellation of streamed requests with AbortSignal is not supported in node < 8');\n\t}\n\n\t// HTTP-network-or-cache fetch steps 2.4-2.7\n\tlet contentLengthValue = null;\n\tif (request.body == null && /^(POST|PUT)$/i.test(request.method)) {\n\t\tcontentLengthValue = '0';\n\t}\n\tif (request.body != null) {\n\t\tconst totalBytes = getTotalBytes(request);\n\t\tif (typeof totalBytes === 'number') {\n\t\t\tcontentLengthValue = String(totalBytes);\n\t\t}\n\t}\n\tif (contentLengthValue) {\n\t\theaders.set('Content-Length', contentLengthValue);\n\t}\n\n\t// HTTP-network-or-cache fetch step 2.11\n\tif (!headers.has('User-Agent')) {\n\t\theaders.set('User-Agent', 'node-fetch/1.0 (+https://github.com/bitinn/node-fetch)');\n\t}\n\n\t// HTTP-network-or-cache fetch step 2.15\n\tif (request.compress && !headers.has('Accept-Encoding')) {\n\t\theaders.set('Accept-Encoding', 'gzip,deflate');\n\t}\n\n\tlet agent = request.agent;\n\tif (typeof agent === 'function') {\n\t\tagent = agent(parsedURL);\n\t}\n\n\t// HTTP-network fetch step 4.2\n\t// chunked encoding is handled by Node.js\n\n\treturn Object.assign({}, parsedURL, {\n\t\tmethod: request.method,\n\t\theaders: exportNodeCompatibleHeaders(headers),\n\t\tagent\n\t});\n}\n\n/**\n * abort-error.js\n *\n * AbortError interface for cancelled requests\n */\n\n/**\n * Create AbortError instance\n *\n * @param String message Error message for human\n * @return AbortError\n */\nfunction AbortError(message) {\n Error.call(this, message);\n\n this.type = 'aborted';\n this.message = message;\n\n // hide custom error implementation details from end-users\n Error.captureStackTrace(this, this.constructor);\n}\n\nAbortError.prototype = Object.create(Error.prototype);\nAbortError.prototype.constructor = AbortError;\nAbortError.prototype.name = 'AbortError';\n\nconst URL$1 = Url.URL || whatwgUrl.URL;\n\n// fix an issue where \"PassThrough\", \"resolve\" aren't a named export for node <10\nconst PassThrough$1 = Stream.PassThrough;\n\nconst isDomainOrSubdomain = function isDomainOrSubdomain(destination, original) {\n\tconst orig = new URL$1(original).hostname;\n\tconst dest = new URL$1(destination).hostname;\n\n\treturn orig === dest || orig[orig.length - dest.length - 1] === '.' && orig.endsWith(dest);\n};\n\n/**\n * isSameProtocol reports whether the two provided URLs use the same protocol.\n *\n * Both domains must already be in canonical form.\n * @param {string|URL} original\n * @param {string|URL} destination\n */\nconst isSameProtocol = function isSameProtocol(destination, original) {\n\tconst orig = new URL$1(original).protocol;\n\tconst dest = new URL$1(destination).protocol;\n\n\treturn orig === dest;\n};\n\n/**\n * Fetch function\n *\n * @param Mixed url Absolute url or Request instance\n * @param Object opts Fetch options\n * @return Promise\n */\nfunction fetch(url, opts) {\n\n\t// allow custom promise\n\tif (!fetch.Promise) {\n\t\tthrow new Error('native promise missing, set fetch.Promise to your favorite alternative');\n\t}\n\n\tBody.Promise = fetch.Promise;\n\n\t// wrap http.request into fetch\n\treturn new fetch.Promise(function (resolve, reject) {\n\t\t// build request object\n\t\tconst request = new Request(url, opts);\n\t\tconst options = getNodeRequestOptions(request);\n\n\t\tconst send = (options.protocol === 'https:' ? https : http).request;\n\t\tconst signal = request.signal;\n\n\t\tlet response = null;\n\n\t\tconst abort = function abort() {\n\t\t\tlet error = new AbortError('The user aborted a request.');\n\t\t\treject(error);\n\t\t\tif (request.body && request.body instanceof Stream.Readable) {\n\t\t\t\tdestroyStream(request.body, error);\n\t\t\t}\n\t\t\tif (!response || !response.body) return;\n\t\t\tresponse.body.emit('error', error);\n\t\t};\n\n\t\tif (signal && signal.aborted) {\n\t\t\tabort();\n\t\t\treturn;\n\t\t}\n\n\t\tconst abortAndFinalize = function abortAndFinalize() {\n\t\t\tabort();\n\t\t\tfinalize();\n\t\t};\n\n\t\t// send request\n\t\tconst req = send(options);\n\t\tlet reqTimeout;\n\n\t\tif (signal) {\n\t\t\tsignal.addEventListener('abort', abortAndFinalize);\n\t\t}\n\n\t\tfunction finalize() {\n\t\t\treq.abort();\n\t\t\tif (signal) signal.removeEventListener('abort', abortAndFinalize);\n\t\t\tclearTimeout(reqTimeout);\n\t\t}\n\n\t\tif (request.timeout) {\n\t\t\treq.once('socket', function (socket) {\n\t\t\t\treqTimeout = setTimeout(function () {\n\t\t\t\t\treject(new FetchError(`network timeout at: ${request.url}`, 'request-timeout'));\n\t\t\t\t\tfinalize();\n\t\t\t\t}, request.timeout);\n\t\t\t});\n\t\t}\n\n\t\treq.on('error', function (err) {\n\t\t\treject(new FetchError(`request to ${request.url} failed, reason: ${err.message}`, 'system', err));\n\n\t\t\tif (response && response.body) {\n\t\t\t\tdestroyStream(response.body, err);\n\t\t\t}\n\n\t\t\tfinalize();\n\t\t});\n\n\t\tfixResponseChunkedTransferBadEnding(req, function (err) {\n\t\t\tif (signal && signal.aborted) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (response && response.body) {\n\t\t\t\tdestroyStream(response.body, err);\n\t\t\t}\n\t\t});\n\n\t\t/* c8 ignore next 18 */\n\t\tif (parseInt(process.version.substring(1)) < 14) {\n\t\t\t// Before Node.js 14, pipeline() does not fully support async iterators and does not always\n\t\t\t// properly handle when the socket close/end events are out of order.\n\t\t\treq.on('socket', function (s) {\n\t\t\t\ts.addListener('close', function (hadError) {\n\t\t\t\t\t// if a data listener is still present we didn't end cleanly\n\t\t\t\t\tconst hasDataListener = s.listenerCount('data') > 0;\n\n\t\t\t\t\t// if end happened before close but the socket didn't emit an error, do it now\n\t\t\t\t\tif (response && hasDataListener && !hadError && !(signal && signal.aborted)) {\n\t\t\t\t\t\tconst err = new Error('Premature close');\n\t\t\t\t\t\terr.code = 'ERR_STREAM_PREMATURE_CLOSE';\n\t\t\t\t\t\tresponse.body.emit('error', err);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t});\n\t\t}\n\n\t\treq.on('response', function (res) {\n\t\t\tclearTimeout(reqTimeout);\n\n\t\t\tconst headers = createHeadersLenient(res.headers);\n\n\t\t\t// HTTP fetch step 5\n\t\t\tif (fetch.isRedirect(res.statusCode)) {\n\t\t\t\t// HTTP fetch step 5.2\n\t\t\t\tconst location = headers.get('Location');\n\n\t\t\t\t// HTTP fetch step 5.3\n\t\t\t\tlet locationURL = null;\n\t\t\t\ttry {\n\t\t\t\t\tlocationURL = location === null ? null : new URL$1(location, request.url).toString();\n\t\t\t\t} catch (err) {\n\t\t\t\t\t// error here can only be invalid URL in Location: header\n\t\t\t\t\t// do not throw when options.redirect == manual\n\t\t\t\t\t// let the user extract the errorneous redirect URL\n\t\t\t\t\tif (request.redirect !== 'manual') {\n\t\t\t\t\t\treject(new FetchError(`uri requested responds with an invalid redirect URL: ${location}`, 'invalid-redirect'));\n\t\t\t\t\t\tfinalize();\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// HTTP fetch step 5.5\n\t\t\t\tswitch (request.redirect) {\n\t\t\t\t\tcase 'error':\n\t\t\t\t\t\treject(new FetchError(`uri requested responds with a redirect, redirect mode is set to error: ${request.url}`, 'no-redirect'));\n\t\t\t\t\t\tfinalize();\n\t\t\t\t\t\treturn;\n\t\t\t\t\tcase 'manual':\n\t\t\t\t\t\t// node-fetch-specific step: make manual redirect a bit easier to use by setting the Location header value to the resolved URL.\n\t\t\t\t\t\tif (locationURL !== null) {\n\t\t\t\t\t\t\t// handle corrupted header\n\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\theaders.set('Location', locationURL);\n\t\t\t\t\t\t\t} catch (err) {\n\t\t\t\t\t\t\t\t// istanbul ignore next: nodejs server prevent invalid response headers, we can't test this through normal request\n\t\t\t\t\t\t\t\treject(err);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'follow':\n\t\t\t\t\t\t// HTTP-redirect fetch step 2\n\t\t\t\t\t\tif (locationURL === null) {\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// HTTP-redirect fetch step 5\n\t\t\t\t\t\tif (request.counter >= request.follow) {\n\t\t\t\t\t\t\treject(new FetchError(`maximum redirect reached at: ${request.url}`, 'max-redirect'));\n\t\t\t\t\t\t\tfinalize();\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// HTTP-redirect fetch step 6 (counter increment)\n\t\t\t\t\t\t// Create a new Request object.\n\t\t\t\t\t\tconst requestOpts = {\n\t\t\t\t\t\t\theaders: new Headers(request.headers),\n\t\t\t\t\t\t\tfollow: request.follow,\n\t\t\t\t\t\t\tcounter: request.counter + 1,\n\t\t\t\t\t\t\tagent: request.agent,\n\t\t\t\t\t\t\tcompress: request.compress,\n\t\t\t\t\t\t\tmethod: request.method,\n\t\t\t\t\t\t\tbody: request.body,\n\t\t\t\t\t\t\tsignal: request.signal,\n\t\t\t\t\t\t\ttimeout: request.timeout,\n\t\t\t\t\t\t\tsize: request.size\n\t\t\t\t\t\t};\n\n\t\t\t\t\t\tif (!isDomainOrSubdomain(request.url, locationURL) || !isSameProtocol(request.url, locationURL)) {\n\t\t\t\t\t\t\tfor (const name of ['authorization', 'www-authenticate', 'cookie', 'cookie2']) {\n\t\t\t\t\t\t\t\trequestOpts.headers.delete(name);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// HTTP-redirect fetch step 9\n\t\t\t\t\t\tif (res.statusCode !== 303 && request.body && getTotalBytes(request) === null) {\n\t\t\t\t\t\t\treject(new FetchError('Cannot follow redirect with body being a readable stream', 'unsupported-redirect'));\n\t\t\t\t\t\t\tfinalize();\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// HTTP-redirect fetch step 11\n\t\t\t\t\t\tif (res.statusCode === 303 || (res.statusCode === 301 || res.statusCode === 302) && request.method === 'POST') {\n\t\t\t\t\t\t\trequestOpts.method = 'GET';\n\t\t\t\t\t\t\trequestOpts.body = undefined;\n\t\t\t\t\t\t\trequestOpts.headers.delete('content-length');\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// HTTP-redirect fetch step 15\n\t\t\t\t\t\tresolve(fetch(new Request(locationURL, requestOpts)));\n\t\t\t\t\t\tfinalize();\n\t\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// prepare response\n\t\t\tres.once('end', function () {\n\t\t\t\tif (signal) signal.removeEventListener('abort', abortAndFinalize);\n\t\t\t});\n\t\t\tlet body = res.pipe(new PassThrough$1());\n\n\t\t\tconst response_options = {\n\t\t\t\turl: request.url,\n\t\t\t\tstatus: res.statusCode,\n\t\t\t\tstatusText: res.statusMessage,\n\t\t\t\theaders: headers,\n\t\t\t\tsize: request.size,\n\t\t\t\ttimeout: request.timeout,\n\t\t\t\tcounter: request.counter\n\t\t\t};\n\n\t\t\t// HTTP-network fetch step 12.1.1.3\n\t\t\tconst codings = headers.get('Content-Encoding');\n\n\t\t\t// HTTP-network fetch step 12.1.1.4: handle content codings\n\n\t\t\t// in following scenarios we ignore compression support\n\t\t\t// 1. compression support is disabled\n\t\t\t// 2. HEAD request\n\t\t\t// 3. no Content-Encoding header\n\t\t\t// 4. no content response (204)\n\t\t\t// 5. content not modified response (304)\n\t\t\tif (!request.compress || request.method === 'HEAD' || codings === null || res.statusCode === 204 || res.statusCode === 304) {\n\t\t\t\tresponse = new Response(body, response_options);\n\t\t\t\tresolve(response);\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// For Node v6+\n\t\t\t// Be less strict when decoding compressed responses, since sometimes\n\t\t\t// servers send slightly invalid responses that are still accepted\n\t\t\t// by common browsers.\n\t\t\t// Always using Z_SYNC_FLUSH is what cURL does.\n\t\t\tconst zlibOptions = {\n\t\t\t\tflush: zlib.Z_SYNC_FLUSH,\n\t\t\t\tfinishFlush: zlib.Z_SYNC_FLUSH\n\t\t\t};\n\n\t\t\t// for gzip\n\t\t\tif (codings == 'gzip' || codings == 'x-gzip') {\n\t\t\t\tbody = body.pipe(zlib.createGunzip(zlibOptions));\n\t\t\t\tresponse = new Response(body, response_options);\n\t\t\t\tresolve(response);\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// for deflate\n\t\t\tif (codings == 'deflate' || codings == 'x-deflate') {\n\t\t\t\t// handle the infamous raw deflate response from old servers\n\t\t\t\t// a hack for old IIS and Apache servers\n\t\t\t\tconst raw = res.pipe(new PassThrough$1());\n\t\t\t\traw.once('data', function (chunk) {\n\t\t\t\t\t// see http://stackoverflow.com/questions/37519828\n\t\t\t\t\tif ((chunk[0] & 0x0F) === 0x08) {\n\t\t\t\t\t\tbody = body.pipe(zlib.createInflate());\n\t\t\t\t\t} else {\n\t\t\t\t\t\tbody = body.pipe(zlib.createInflateRaw());\n\t\t\t\t\t}\n\t\t\t\t\tresponse = new Response(body, response_options);\n\t\t\t\t\tresolve(response);\n\t\t\t\t});\n\t\t\t\traw.on('end', function () {\n\t\t\t\t\t// some old IIS servers return zero-length OK deflate responses, so 'data' is never emitted.\n\t\t\t\t\tif (!response) {\n\t\t\t\t\t\tresponse = new Response(body, response_options);\n\t\t\t\t\t\tresolve(response);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// for br\n\t\t\tif (codings == 'br' && typeof zlib.createBrotliDecompress === 'function') {\n\t\t\t\tbody = body.pipe(zlib.createBrotliDecompress());\n\t\t\t\tresponse = new Response(body, response_options);\n\t\t\t\tresolve(response);\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// otherwise, use response as-is\n\t\t\tresponse = new Response(body, response_options);\n\t\t\tresolve(response);\n\t\t});\n\n\t\twriteToStream(req, request);\n\t});\n}\nfunction fixResponseChunkedTransferBadEnding(request, errorCallback) {\n\tlet socket;\n\n\trequest.on('socket', function (s) {\n\t\tsocket = s;\n\t});\n\n\trequest.on('response', function (response) {\n\t\tconst headers = response.headers;\n\n\t\tif (headers['transfer-encoding'] === 'chunked' && !headers['content-length']) {\n\t\t\tresponse.once('close', function (hadError) {\n\t\t\t\t// tests for socket presence, as in some situations the\n\t\t\t\t// the 'socket' event is not triggered for the request\n\t\t\t\t// (happens in deno), avoids `TypeError`\n\t\t\t\t// if a data listener is still present we didn't end cleanly\n\t\t\t\tconst hasDataListener = socket && socket.listenerCount('data') > 0;\n\n\t\t\t\tif (hasDataListener && !hadError) {\n\t\t\t\t\tconst err = new Error('Premature close');\n\t\t\t\t\terr.code = 'ERR_STREAM_PREMATURE_CLOSE';\n\t\t\t\t\terrorCallback(err);\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t});\n}\n\nfunction destroyStream(stream, err) {\n\tif (stream.destroy) {\n\t\tstream.destroy(err);\n\t} else {\n\t\t// node < 8\n\t\tstream.emit('error', err);\n\t\tstream.end();\n\t}\n}\n\n/**\n * Redirect code matching\n *\n * @param Number code Status code\n * @return Boolean\n */\nfetch.isRedirect = function (code) {\n\treturn code === 301 || code === 302 || code === 303 || code === 307 || code === 308;\n};\n\n// expose Promise\nfetch.Promise = global.Promise;\n\nexport default fetch;\nexport { Headers, Request, Response, FetchError, AbortError };\n","const nodeFetch = require('node-fetch')\nconst realFetch = nodeFetch.default || nodeFetch\n\nconst fetch = function (url, options) {\n // Support schemaless URIs on the server for parity with the browser.\n // Ex: //github.com/ -> https://github.com/\n if (/^\\/\\//.test(url)) {\n url = 'https:' + url\n }\n return realFetch.call(this, url, options)\n}\n\nfetch.ponyfill = true\n\nmodule.exports = exports = fetch\nexports.fetch = fetch\nexports.Headers = nodeFetch.Headers\nexports.Request = nodeFetch.Request\nexports.Response = nodeFetch.Response\n\n// Needed for TypeScript consumers without esModuleInterop.\nexports.default = fetch\n","/*! xlsx.js (C) 2013-present SheetJS -- http://sheetjs.com */\n/* vim: set ts=2: */\n/*exported XLSX */\n/*global process:false, Buffer:false, ArrayBuffer:false, DataView:false, Deno:false */\nvar XLSX = {};\nXLSX.version = '0.19.3';\nvar current_codepage = 1200, current_ansi = 1252;\n/*:: declare var cptable:any; */\n/*global cptable:true, window */\nvar $cptable;\n\nvar VALID_ANSI = [ 874, 932, 936, 949, 950, 1250, 1251, 1252, 1253, 1254, 1255, 1256, 1257, 1258, 10000 ];\n/* ECMA-376 Part I 18.4.1 charset to codepage mapping */\nvar CS2CP = ({\n\t/*::[*/0/*::]*/: 1252, /* ANSI */\n\t/*::[*/1/*::]*/: 65001, /* DEFAULT */\n\t/*::[*/2/*::]*/: 65001, /* SYMBOL */\n\t/*::[*/77/*::]*/: 10000, /* MAC */\n\t/*::[*/128/*::]*/: 932, /* SHIFTJIS */\n\t/*::[*/129/*::]*/: 949, /* HANGUL */\n\t/*::[*/130/*::]*/: 1361, /* JOHAB */\n\t/*::[*/134/*::]*/: 936, /* GB2312 */\n\t/*::[*/136/*::]*/: 950, /* CHINESEBIG5 */\n\t/*::[*/161/*::]*/: 1253, /* GREEK */\n\t/*::[*/162/*::]*/: 1254, /* TURKISH */\n\t/*::[*/163/*::]*/: 1258, /* VIETNAMESE */\n\t/*::[*/177/*::]*/: 1255, /* HEBREW */\n\t/*::[*/178/*::]*/: 1256, /* ARABIC */\n\t/*::[*/186/*::]*/: 1257, /* BALTIC */\n\t/*::[*/204/*::]*/: 1251, /* RUSSIAN */\n\t/*::[*/222/*::]*/: 874, /* THAI */\n\t/*::[*/238/*::]*/: 1250, /* EASTEUROPE */\n\t/*::[*/255/*::]*/: 1252, /* OEM */\n\t/*::[*/69/*::]*/: 6969 /* MISC */\n}/*:any*/);\n\nvar set_ansi = function(cp/*:number*/) { if(VALID_ANSI.indexOf(cp) == -1) return; current_ansi = CS2CP[0] = cp; };\nfunction reset_ansi() { set_ansi(1252); }\n\nvar set_cp = function(cp/*:number*/) { current_codepage = cp; set_ansi(cp); };\nfunction reset_cp() { set_cp(1200); reset_ansi(); }\n\nfunction char_codes(data/*:string*/)/*:Array*/ { var o/*:Array*/ = []; for(var i = 0, len = data.length; i < len; ++i) o[i] = data.charCodeAt(i); return o; }\n\nfunction utf16leread(data/*:string*/)/*:string*/ {\n\tvar o/*:Array*/ = [];\n\tfor(var i = 0; i < (data.length>>1); ++i) o[i] = String.fromCharCode(data.charCodeAt(2*i) + (data.charCodeAt(2*i+1)<<8));\n\treturn o.join(\"\");\n}\nfunction utf16lereadu(data/*:Uint8Array*/)/*:string*/ {\n\tvar o/*:Array*/ = [];\n\tfor(var i = 0; i < (data.length>>1); ++i) o[i] = String.fromCharCode(data[2*i] + (data[2*i+1]<<8));\n\treturn o.join(\"\");\n}\nfunction utf16beread(data/*:string*/)/*:string*/ {\n\tvar o/*:Array*/ = [];\n\tfor(var i = 0; i < (data.length>>1); ++i) o[i] = String.fromCharCode(data.charCodeAt(2*i+1) + (data.charCodeAt(2*i)<<8));\n\treturn o.join(\"\");\n}\n\nvar debom = function(data/*:string*/)/*:string*/ {\n\tvar c1 = data.charCodeAt(0), c2 = data.charCodeAt(1);\n\tif(c1 == 0xFF && c2 == 0xFE) return utf16leread(data.slice(2));\n\tif(c1 == 0xFE && c2 == 0xFF) return utf16beread(data.slice(2));\n\tif(c1 == 0xFEFF) return data.slice(1);\n\treturn data;\n};\n\nvar _getchar = function _gc1(x/*:number*/)/*:string*/ { return String.fromCharCode(x); };\nvar _getansi = function _ga1(x/*:number*/)/*:string*/ { return String.fromCharCode(x); };\n\nfunction set_cptable(cptable) {\n\t$cptable = cptable;\n\tset_cp = function(cp/*:number*/) { current_codepage = cp; set_ansi(cp); };\n\tdebom = function(data/*:string*/) {\n\t\tif(data.charCodeAt(0) === 0xFF && data.charCodeAt(1) === 0xFE) { return $cptable.utils.decode(1200, char_codes(data.slice(2))); }\n\t\treturn data;\n\t};\n\t_getchar = function _gc2(x/*:number*/)/*:string*/ {\n\t\tif(current_codepage === 1200) return String.fromCharCode(x);\n\t\treturn $cptable.utils.decode(current_codepage, [x&255,x>>8])[0];\n\t};\n\t_getansi = function _ga2(x/*:number*/)/*:string*/ {\n\t\treturn $cptable.utils.decode(current_ansi, [x])[0];\n\t};\n\tcpdoit();\n}\nvar DENSE = null;\nvar DIF_XL = true;\nvar Base64_map = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\";\nfunction Base64_encode(input) {\n var o = \"\";\n var c1 = 0, c2 = 0, c3 = 0, e1 = 0, e2 = 0, e3 = 0, e4 = 0;\n for (var i = 0; i < input.length; ) {\n c1 = input.charCodeAt(i++);\n e1 = c1 >> 2;\n c2 = input.charCodeAt(i++);\n e2 = (c1 & 3) << 4 | c2 >> 4;\n c3 = input.charCodeAt(i++);\n e3 = (c2 & 15) << 2 | c3 >> 6;\n e4 = c3 & 63;\n if (isNaN(c2)) {\n e3 = e4 = 64;\n } else if (isNaN(c3)) {\n e4 = 64;\n }\n o += Base64_map.charAt(e1) + Base64_map.charAt(e2) + Base64_map.charAt(e3) + Base64_map.charAt(e4);\n }\n return o;\n}\nfunction Base64_encode_pass(input) {\n var o = \"\";\n var c1 = 0, c2 = 0, c3 = 0, e1 = 0, e2 = 0, e3 = 0, e4 = 0;\n for (var i = 0; i < input.length; ) {\n c1 = input.charCodeAt(i++);\n if (c1 > 255)\n c1 = 95;\n e1 = c1 >> 2;\n c2 = input.charCodeAt(i++);\n if (c2 > 255)\n c2 = 95;\n e2 = (c1 & 3) << 4 | c2 >> 4;\n c3 = input.charCodeAt(i++);\n if (c3 > 255)\n c3 = 95;\n e3 = (c2 & 15) << 2 | c3 >> 6;\n e4 = c3 & 63;\n if (isNaN(c2)) {\n e3 = e4 = 64;\n } else if (isNaN(c3)) {\n e4 = 64;\n }\n o += Base64_map.charAt(e1) + Base64_map.charAt(e2) + Base64_map.charAt(e3) + Base64_map.charAt(e4);\n }\n return o;\n}\nfunction Base64_decode(input) {\n var o = \"\";\n var c1 = 0, c2 = 0, c3 = 0, e1 = 0, e2 = 0, e3 = 0, e4 = 0;\n input = input.replace(/^data:([^\\/]+\\/[^\\/]+)?;base64\\,/, \"\").replace(/[^\\w\\+\\/\\=]/g, \"\");\n for (var i = 0; i < input.length; ) {\n e1 = Base64_map.indexOf(input.charAt(i++));\n e2 = Base64_map.indexOf(input.charAt(i++));\n c1 = e1 << 2 | e2 >> 4;\n o += String.fromCharCode(c1);\n e3 = Base64_map.indexOf(input.charAt(i++));\n c2 = (e2 & 15) << 4 | e3 >> 2;\n if (e3 !== 64) {\n o += String.fromCharCode(c2);\n }\n e4 = Base64_map.indexOf(input.charAt(i++));\n c3 = (e3 & 3) << 6 | e4;\n if (e4 !== 64) {\n o += String.fromCharCode(c3);\n }\n }\n return o;\n}\nvar has_buf = /*#__PURE__*/(function() { return typeof Buffer !== 'undefined' && typeof process !== 'undefined' && typeof process.versions !== 'undefined' && !!process.versions.node; })();\n\nvar Buffer_from = /*#__PURE__*/(function() {\n\tif(typeof Buffer !== 'undefined') {\n\t\tvar nbfs = !Buffer.from;\n\t\tif(!nbfs) try { Buffer.from(\"foo\", \"utf8\"); } catch(e) { nbfs = true; }\n\t\treturn nbfs ? function(buf, enc) { return (enc) ? new Buffer(buf, enc) : new Buffer(buf); } : Buffer.from.bind(Buffer);\n\t}\n\treturn function() {};\n})();\nvar buf_utf16le = /*#__PURE__*/(function() {\n\tif(typeof Buffer === 'undefined') return false;\n\tvar x = Buffer_from([65,0]);\n\tif(!x) return false;\n\tvar o = x.toString(\"utf16le\");\n\treturn o.length == 1;\n})();\n\n\nfunction new_raw_buf(len/*:number*/) {\n\t/* jshint -W056 */\n\tif(has_buf) return Buffer.alloc ? Buffer.alloc(len) : new Buffer(len);\n\treturn typeof Uint8Array != \"undefined\" ? new Uint8Array(len) : new Array(len);\n\t/* jshint +W056 */\n}\n\nfunction new_unsafe_buf(len/*:number*/) {\n\t/* jshint -W056 */\n\tif(has_buf) return Buffer.allocUnsafe ? Buffer.allocUnsafe(len) : new Buffer(len);\n\treturn typeof Uint8Array != \"undefined\" ? new Uint8Array(len) : new Array(len);\n\t/* jshint +W056 */\n}\n\nvar s2a = function s2a(s/*:string*/)/*:any*/ {\n\tif(has_buf) return Buffer_from(s, \"binary\");\n\treturn s.split(\"\").map(function(x/*:string*/)/*:number*/{ return x.charCodeAt(0) & 0xff; });\n};\n\nfunction s2ab(s/*:string*/)/*:any*/ {\n\tif(typeof ArrayBuffer === 'undefined') return s2a(s);\n\tvar buf = new ArrayBuffer(s.length), view = new Uint8Array(buf);\n\tfor (var i=0; i!=s.length; ++i) view[i] = s.charCodeAt(i) & 0xFF;\n\treturn buf;\n}\n\nfunction a2s(data/*:any*/)/*:string*/ {\n\tif(Array.isArray(data)) return data.map(function(c) { return String.fromCharCode(c); }).join(\"\");\n\tvar o/*:Array*/ = []; for(var i = 0; i < data.length; ++i) o[i] = String.fromCharCode(data[i]); return o.join(\"\");\n}\n\nfunction a2u(data/*:Array*/)/*:Uint8Array*/ {\n\tif(typeof Uint8Array === 'undefined') throw new Error(\"Unsupported\");\n\treturn new Uint8Array(data);\n}\n\nfunction ab2a(data/*:ArrayBuffer|Uint8Array*/)/*:Array*/ {\n\tif(typeof ArrayBuffer == 'undefined') throw new Error(\"Unsupported\");\n\tif(data instanceof ArrayBuffer) return ab2a(new Uint8Array(data));\n\t/*:: if(data instanceof ArrayBuffer) throw new Error(\"unreachable\"); */\n\tvar o = new Array(data.length);\n\tfor(var i = 0; i < data.length; ++i) o[i] = data[i];\n\treturn o;\n}\n\nvar bconcat = has_buf ? function(bufs) { return Buffer.concat(bufs.map(function(buf) { return Buffer.isBuffer(buf) ? buf : Buffer_from(buf); })); } : function(bufs) {\n\tif(typeof Uint8Array !== \"undefined\") {\n\t\tvar i = 0, maxlen = 0;\n\t\tfor(i = 0; i < bufs.length; ++i) maxlen += bufs[i].length;\n\t\tvar o = new Uint8Array(maxlen);\n\t\tvar len = 0;\n\t\tfor(i = 0, maxlen = 0; i < bufs.length; maxlen += len, ++i) {\n\t\t\tlen = bufs[i].length;\n\t\t\tif(bufs[i] instanceof Uint8Array) o.set(bufs[i], maxlen);\n\t\t\telse if(typeof bufs[i] == \"string\") o.set(new Uint8Array(s2a(bufs[i])), maxlen);\n\t\t\telse o.set(new Uint8Array(bufs[i]), maxlen);\n\t\t}\n\t\treturn o;\n\t}\n\treturn [].concat.apply([], bufs.map(function(buf) { return Array.isArray(buf) ? buf : [].slice.call(buf); }));\n};\n\nfunction utf8decode(content/*:string*/) {\n\tvar out = [], widx = 0, L = content.length + 250;\n\tvar o = new_raw_buf(content.length + 255);\n\tfor(var ridx = 0; ridx < content.length; ++ridx) {\n\t\tvar c = content.charCodeAt(ridx);\n\t\tif(c < 0x80) o[widx++] = c;\n\t\telse if(c < 0x800) {\n\t\t\to[widx++] = (192|((c>>6)&31));\n\t\t\to[widx++] = (128|(c&63));\n\t\t} else if(c >= 0xD800 && c < 0xE000) {\n\t\t\tc = (c&1023)+64;\n\t\t\tvar d = content.charCodeAt(++ridx)&1023;\n\t\t\to[widx++] = (240|((c>>8)&7));\n\t\t\to[widx++] = (128|((c>>2)&63));\n\t\t\to[widx++] = (128|((d>>6)&15)|((c&3)<<4));\n\t\t\to[widx++] = (128|(d&63));\n\t\t} else {\n\t\t\to[widx++] = (224|((c>>12)&15));\n\t\t\to[widx++] = (128|((c>>6)&63));\n\t\t\to[widx++] = (128|(c&63));\n\t\t}\n\t\tif(widx > L) {\n\t\t\tout.push(o.slice(0, widx));\n\t\t\twidx = 0;\n\t\t\to = new_raw_buf(65535);\n\t\t\tL = 65530;\n\t\t}\n\t}\n\tout.push(o.slice(0, widx));\n\treturn bconcat(out);\n}\n\nvar chr0 = /\\u0000/g, chr1 = /[\\u0001-\\u0006]/g;\n/*::\ndeclare type Block = any;\ndeclare type BufArray = {\n\tnewblk(sz:number):Block;\n\tnext(sz:number):Block;\n\tend():any;\n\tpush(buf:Block):void;\n};\n\ntype RecordHopperCB = {(d:any, Rn:string, RT:number):?boolean;};\n\ntype EvertType = {[string]:string};\ntype EvertNumType = {[string]:number};\ntype EvertArrType = {[string]:Array};\n\ntype StringConv = {(string):string};\n\n*/\n/* ssf.js (C) 2013-present SheetJS -- http://sheetjs.com */\n/*jshint -W041 */\nfunction _strrev(x/*:string*/)/*:string*/ { var o = \"\", i = x.length-1; while(i>=0) o += x.charAt(i--); return o; }\nfunction pad0(v/*:any*/,d/*:number*/)/*:string*/{var t=\"\"+v; return t.length>=d?t:fill('0',d-t.length)+t;}\nfunction pad_(v/*:any*/,d/*:number*/)/*:string*/{var t=\"\"+v;return t.length>=d?t:fill(' ',d-t.length)+t;}\nfunction rpad_(v/*:any*/,d/*:number*/)/*:string*/{var t=\"\"+v; return t.length>=d?t:t+fill(' ',d-t.length);}\nfunction pad0r1(v/*:any*/,d/*:number*/)/*:string*/{var t=\"\"+Math.round(v); return t.length>=d?t:fill('0',d-t.length)+t;}\nfunction pad0r2(v/*:any*/,d/*:number*/)/*:string*/{var t=\"\"+v; return t.length>=d?t:fill('0',d-t.length)+t;}\nvar p2_32 = /*#__PURE__*/Math.pow(2,32);\nfunction pad0r(v/*:any*/,d/*:number*/)/*:string*/{if(v>p2_32||v<-p2_32) return pad0r1(v,d); var i = Math.round(v); return pad0r2(i,d); }\n/* yes, in 2022 this is still faster than string compare */\nfunction SSF_isgeneral(s/*:string*/, i/*:?number*/)/*:boolean*/ { i = i || 0; return s.length >= 7 + i && (s.charCodeAt(i)|32) === 103 && (s.charCodeAt(i+1)|32) === 101 && (s.charCodeAt(i+2)|32) === 110 && (s.charCodeAt(i+3)|32) === 101 && (s.charCodeAt(i+4)|32) === 114 && (s.charCodeAt(i+5)|32) === 97 && (s.charCodeAt(i+6)|32) === 108; }\nvar days/*:Array >*/ = [\n\t['Sun', 'Sunday'],\n\t['Mon', 'Monday'],\n\t['Tue', 'Tuesday'],\n\t['Wed', 'Wednesday'],\n\t['Thu', 'Thursday'],\n\t['Fri', 'Friday'],\n\t['Sat', 'Saturday']\n];\nvar months/*:Array >*/ = [\n\t['J', 'Jan', 'January'],\n\t['F', 'Feb', 'February'],\n\t['M', 'Mar', 'March'],\n\t['A', 'Apr', 'April'],\n\t['M', 'May', 'May'],\n\t['J', 'Jun', 'June'],\n\t['J', 'Jul', 'July'],\n\t['A', 'Aug', 'August'],\n\t['S', 'Sep', 'September'],\n\t['O', 'Oct', 'October'],\n\t['N', 'Nov', 'November'],\n\t['D', 'Dec', 'December']\n];\nfunction SSF_init_table(t/*:any*/) {\n\tif(!t) t = {};\n\tt[0]= 'General';\n\tt[1]= '0';\n\tt[2]= '0.00';\n\tt[3]= '#,##0';\n\tt[4]= '#,##0.00';\n\tt[9]= '0%';\n\tt[10]= '0.00%';\n\tt[11]= '0.00E+00';\n\tt[12]= '# ?/?';\n\tt[13]= '# ??/??';\n\tt[14]= 'm/d/yy';\n\tt[15]= 'd-mmm-yy';\n\tt[16]= 'd-mmm';\n\tt[17]= 'mmm-yy';\n\tt[18]= 'h:mm AM/PM';\n\tt[19]= 'h:mm:ss AM/PM';\n\tt[20]= 'h:mm';\n\tt[21]= 'h:mm:ss';\n\tt[22]= 'm/d/yy h:mm';\n\tt[37]= '#,##0 ;(#,##0)';\n\tt[38]= '#,##0 ;[Red](#,##0)';\n\tt[39]= '#,##0.00;(#,##0.00)';\n\tt[40]= '#,##0.00;[Red](#,##0.00)';\n\tt[45]= 'mm:ss';\n\tt[46]= '[h]:mm:ss';\n\tt[47]= 'mmss.0';\n\tt[48]= '##0.0E+0';\n\tt[49]= '@';\n\tt[56]= '\"上午/下午 \"hh\"時\"mm\"分\"ss\"秒 \"';\n\treturn t;\n}\n/* repeated to satiate webpack */\nvar table_fmt = {\n\t0: 'General',\n\t1: '0',\n\t2: '0.00',\n\t3: '#,##0',\n\t4: '#,##0.00',\n\t9: '0%',\n\t10: '0.00%',\n\t11: '0.00E+00',\n\t12: '# ?/?',\n\t13: '# ??/??',\n\t14: 'm/d/yy',\n\t15: 'd-mmm-yy',\n\t16: 'd-mmm',\n\t17: 'mmm-yy',\n\t18: 'h:mm AM/PM',\n\t19: 'h:mm:ss AM/PM',\n\t20: 'h:mm',\n\t21: 'h:mm:ss',\n\t22: 'm/d/yy h:mm',\n\t37: '#,##0 ;(#,##0)',\n\t38: '#,##0 ;[Red](#,##0)',\n\t39: '#,##0.00;(#,##0.00)',\n\t40: '#,##0.00;[Red](#,##0.00)',\n\t45: 'mm:ss',\n\t46: '[h]:mm:ss',\n\t47: 'mmss.0',\n\t48: '##0.0E+0',\n\t49: '@',\n\t56: '\"上午/下午 \"hh\"時\"mm\"分\"ss\"秒 \"'\n};\n\n/* Defaults determined by systematically testing in Excel 2019 */\n\n/* These formats appear to default to other formats in the table */\nvar SSF_default_map = {\n\t5: 37, 6: 38, 7: 39, 8: 40, // 5 -> 37 ... 8 -> 40\n\n\t23: 0, 24: 0, 25: 0, 26: 0, // 23 -> 0 ... 26 -> 0\n\n\t27: 14, 28: 14, 29: 14, 30: 14, 31: 14, // 27 -> 14 ... 31 -> 14\n\n\t50: 14, 51: 14, 52: 14, 53: 14, 54: 14, // 50 -> 14 ... 58 -> 14\n\t55: 14, 56: 14, 57: 14, 58: 14,\n\t59: 1, 60: 2, 61: 3, 62: 4, // 59 -> 1 ... 62 -> 4\n\n\t67: 9, 68: 10, // 67 -> 9 ... 68 -> 10\n\t69: 12, 70: 13, 71: 14, // 69 -> 12 ... 71 -> 14\n\t72: 14, 73: 15, 74: 16, 75: 17, // 72 -> 14 ... 75 -> 17\n\t76: 20, 77: 21, 78: 22, // 76 -> 20 ... 78 -> 22\n\t79: 45, 80: 46, 81: 47, // 79 -> 45 ... 81 -> 47\n\t82: 0 // 82 -> 0 ... 65536 -> 0 (omitted)\n};\n\n\n/* These formats technically refer to Accounting formats with no equivalent */\nvar SSF_default_str = {\n\t// 5 -- Currency, 0 decimal, black negative\n\t5: '\"$\"#,##0_);\\\\(\"$\"#,##0\\\\)',\n\t63: '\"$\"#,##0_);\\\\(\"$\"#,##0\\\\)',\n\n\t// 6 -- Currency, 0 decimal, red negative\n\t6: '\"$\"#,##0_);[Red]\\\\(\"$\"#,##0\\\\)',\n\t64: '\"$\"#,##0_);[Red]\\\\(\"$\"#,##0\\\\)',\n\n\t// 7 -- Currency, 2 decimal, black negative\n\t7: '\"$\"#,##0.00_);\\\\(\"$\"#,##0.00\\\\)',\n\t65: '\"$\"#,##0.00_);\\\\(\"$\"#,##0.00\\\\)',\n\n\t// 8 -- Currency, 2 decimal, red negative\n\t8: '\"$\"#,##0.00_);[Red]\\\\(\"$\"#,##0.00\\\\)',\n\t66: '\"$\"#,##0.00_);[Red]\\\\(\"$\"#,##0.00\\\\)',\n\n\t// 41 -- Accounting, 0 decimal, No Symbol\n\t41: '_(* #,##0_);_(* \\\\(#,##0\\\\);_(* \"-\"_);_(@_)',\n\n\t// 42 -- Accounting, 0 decimal, $ Symbol\n\t42: '_(\"$\"* #,##0_);_(\"$\"* \\\\(#,##0\\\\);_(\"$\"* \"-\"_);_(@_)',\n\n\t// 43 -- Accounting, 2 decimal, No Symbol\n\t43: '_(* #,##0.00_);_(* \\\\(#,##0.00\\\\);_(* \"-\"??_);_(@_)',\n\n\t// 44 -- Accounting, 2 decimal, $ Symbol\n\t44: '_(\"$\"* #,##0.00_);_(\"$\"* \\\\(#,##0.00\\\\);_(\"$\"* \"-\"??_);_(@_)'\n};\n\nfunction SSF_frac(x/*:number*/, D/*:number*/, mixed/*:?boolean*/)/*:Array*/ {\n\tvar sgn = x < 0 ? -1 : 1;\n\tvar B = x * sgn;\n\tvar P_2 = 0, P_1 = 1, P = 0;\n\tvar Q_2 = 1, Q_1 = 0, Q = 0;\n\tvar A = Math.floor(B);\n\twhile(Q_1 < D) {\n\t\tA = Math.floor(B);\n\t\tP = A * P_1 + P_2;\n\t\tQ = A * Q_1 + Q_2;\n\t\tif((B - A) < 0.00000005) break;\n\t\tB = 1 / (B - A);\n\t\tP_2 = P_1; P_1 = P;\n\t\tQ_2 = Q_1; Q_1 = Q;\n\t}\n\tif(Q > D) { if(Q_1 > D) { Q = Q_2; P = P_2; } else { Q = Q_1; P = P_1; } }\n\tif(!mixed) return [0, sgn * P, Q];\n\tvar q = Math.floor(sgn * P/Q);\n\treturn [q, sgn*P - q*Q, Q];\n}\nfunction SSF_parse_date_code(v/*:number*/,opts/*:?any*/,b2/*:?boolean*/) {\n\tif(v > 2958465 || v < 0) return null;\n\tvar date = (v|0), time = Math.floor(86400 * (v - date)), dow=0;\n\tvar dout=[];\n\tvar out={D:date, T:time, u:86400*(v-date)-time,y:0,m:0,d:0,H:0,M:0,S:0,q:0};\n\tif(Math.abs(out.u) < 1e-6) out.u = 0;\n\tif(opts && opts.date1904) date += 1462;\n\tif(out.u > 0.9999) {\n\t\tout.u = 0;\n\t\tif(++time == 86400) { out.T = time = 0; ++date; ++out.D; }\n\t}\n\tif(date === 60) {dout = b2 ? [1317,10,29] : [1900,2,29]; dow=3;}\n\telse if(date === 0) {dout = b2 ? [1317,8,29] : [1900,1,0]; dow=6;}\n\telse {\n\t\tif(date > 60) --date;\n\t\t/* 1 = Jan 1 1900 in Gregorian */\n\t\tvar d = new Date(1900, 0, 1);\n\t\td.setDate(d.getDate() + date - 1);\n\t\tdout = [d.getFullYear(), d.getMonth()+1,d.getDate()];\n\t\tdow = d.getDay();\n\t\tif(date < 60) dow = (dow + 6) % 7;\n\t\tif(b2) dow = SSF_fix_hijri(d, dout);\n\t}\n\tout.y = dout[0]; out.m = dout[1]; out.d = dout[2];\n\tout.S = time % 60; time = Math.floor(time / 60);\n\tout.M = time % 60; time = Math.floor(time / 60);\n\tout.H = time;\n\tout.q = dow;\n\treturn out;\n}\nvar SSFbasedate = /*#__PURE__*/new Date(1899, 11, 31, 0, 0, 0);\nvar SSFdnthresh = /*#__PURE__*/SSFbasedate.getTime();\nvar SSFbase1904 = /*#__PURE__*/new Date(1900, 2, 1, 0, 0, 0);\nfunction datenum_local(v/*:Date*/, date1904/*:?boolean*/)/*:number*/ {\n\tvar epoch = /*#__PURE__*/v.getTime();\n\tif(date1904) epoch -= 1461*24*60*60*1000;\n\telse if(v >= SSFbase1904) epoch += 24*60*60*1000;\n\treturn (epoch - (SSFdnthresh + (/*#__PURE__*/v.getTimezoneOffset() - /*#__PURE__*/SSFbasedate.getTimezoneOffset()) * 60000)) / (24 * 60 * 60 * 1000);\n}\n/* ECMA-376 18.8.30 numFmt*/\n/* Note: `toPrecision` uses standard form when prec > E and E >= -6 */\n/* exponent >= -9 and <= 9 */\nfunction SSF_strip_decimal(o/*:string*/)/*:string*/ {\n\treturn (o.indexOf(\".\") == -1) ? o : o.replace(/(?:\\.0*|(\\.\\d*[1-9])0+)$/, \"$1\");\n}\n\n/* General Exponential always shows 2 digits exp and trims the mantissa */\nfunction SSF_normalize_exp(o/*:string*/)/*:string*/ {\n\tif(o.indexOf(\"E\") == -1) return o;\n\treturn o.replace(/(?:\\.0*|(\\.\\d*[1-9])0+)[Ee]/,\"$1E\").replace(/(E[+-])(\\d)$/,\"$10$2\");\n}\n\n/* exponent >= -9 and <= 9 */\nfunction SSF_small_exp(v/*:number*/)/*:string*/ {\n\tvar w = (v<0?12:11);\n\tvar o = SSF_strip_decimal(v.toFixed(12)); if(o.length <= w) return o;\n\to = v.toPrecision(10); if(o.length <= w) return o;\n\treturn v.toExponential(5);\n}\n\n/* exponent >= 11 or <= -10 likely exponential */\nfunction SSF_large_exp(v/*:number*/)/*:string*/ {\n\tvar o = SSF_strip_decimal(v.toFixed(11));\n\treturn (o.length > (v<0?12:11) || o === \"0\" || o === \"-0\") ? v.toPrecision(6) : o;\n}\n\nfunction SSF_general_num(v/*:number*/)/*:string*/ {\n\tvar V = Math.floor(Math.log(Math.abs(v))*Math.LOG10E), o;\n\n\tif(V >= -4 && V <= -1) o = v.toPrecision(10+V);\n\telse if(Math.abs(V) <= 9) o = SSF_small_exp(v);\n\telse if(V === 10) o = v.toFixed(10).substr(0,12);\n\telse o = SSF_large_exp(v);\n\n\treturn SSF_strip_decimal(SSF_normalize_exp(o.toUpperCase()));\n}\n\n\n/*\n\t\"General\" rules:\n\t- text is passed through (\"@\")\n\t- booleans are rendered as TRUE/FALSE\n\t- \"up to 11 characters\" displayed for numbers\n\t- Default date format (code 14) used for Dates\n\n\tThe longest 32-bit integer text is \"-2147483648\", exactly 11 chars\n\tTODO: technically the display depends on the width of the cell\n*/\nfunction SSF_general(v/*:any*/, opts/*:any*/) {\n\tswitch(typeof v) {\n\t\tcase 'string': return v;\n\t\tcase 'boolean': return v ? \"TRUE\" : \"FALSE\";\n\t\tcase 'number': return (v|0) === v ? v.toString(10) : SSF_general_num(v);\n\t\tcase 'undefined': return \"\";\n\t\tcase 'object':\n\t\t\tif(v == null) return \"\";\n\t\t\tif(v instanceof Date) return SSF_format(14, datenum_local(v, opts && opts.date1904), opts);\n\t}\n\tthrow new Error(\"unsupported value in General format: \" + v);\n}\n\nfunction SSF_fix_hijri(date/*:Date*/, o/*:[number, number, number]*/) {\n /* TODO: properly adjust y/m/d and */\n o[0] -= 581;\n var dow = date.getDay();\n if(date < 60) dow = (dow + 6) % 7;\n return dow;\n}\n//var THAI_DIGITS = \"\\u0E50\\u0E51\\u0E52\\u0E53\\u0E54\\u0E55\\u0E56\\u0E57\\u0E58\\u0E59\".split(\"\");\nfunction SSF_write_date(type/*:number*/, fmt/*:string*/, val, ss0/*:?number*/)/*:string*/ {\n\tvar o=\"\", ss=0, tt=0, y = val.y, out, outl = 0;\n\tswitch(type) {\n\t\tcase 98: /* 'b' buddhist year */\n\t\t\ty = val.y + 543;\n\t\t\t/* falls through */\n\t\tcase 121: /* 'y' year */\n\t\tswitch(fmt.length) {\n\t\t\tcase 1: case 2: out = y % 100; outl = 2; break;\n\t\t\tdefault: out = y % 10000; outl = 4; break;\n\t\t} break;\n\t\tcase 109: /* 'm' month */\n\t\tswitch(fmt.length) {\n\t\t\tcase 1: case 2: out = val.m; outl = fmt.length; break;\n\t\t\tcase 3: return months[val.m-1][1];\n\t\t\tcase 5: return months[val.m-1][0];\n\t\t\tdefault: return months[val.m-1][2];\n\t\t} break;\n\t\tcase 100: /* 'd' day */\n\t\tswitch(fmt.length) {\n\t\t\tcase 1: case 2: out = val.d; outl = fmt.length; break;\n\t\t\tcase 3: return days[val.q][0];\n\t\t\tdefault: return days[val.q][1];\n\t\t} break;\n\t\tcase 104: /* 'h' 12-hour */\n\t\tswitch(fmt.length) {\n\t\t\tcase 1: case 2: out = 1+(val.H+11)%12; outl = fmt.length; break;\n\t\t\tdefault: throw 'bad hour format: ' + fmt;\n\t\t} break;\n\t\tcase 72: /* 'H' 24-hour */\n\t\tswitch(fmt.length) {\n\t\t\tcase 1: case 2: out = val.H; outl = fmt.length; break;\n\t\t\tdefault: throw 'bad hour format: ' + fmt;\n\t\t} break;\n\t\tcase 77: /* 'M' minutes */\n\t\tswitch(fmt.length) {\n\t\t\tcase 1: case 2: out = val.M; outl = fmt.length; break;\n\t\t\tdefault: throw 'bad minute format: ' + fmt;\n\t\t} break;\n\t\tcase 115: /* 's' seconds */\n\t\t\tif(fmt != 's' && fmt != 'ss' && fmt != '.0' && fmt != '.00' && fmt != '.000') throw 'bad second format: ' + fmt;\n\t\t\tif(val.u === 0 && (fmt == \"s\" || fmt == \"ss\")) return pad0(val.S, fmt.length);\n\t\t\t/*::if(!ss0) ss0 = 0; */\n\t\t\tif(ss0 >= 2) tt = ss0 === 3 ? 1000 : 100;\n\t\t\telse tt = ss0 === 1 ? 10 : 1;\n\t\t\tss = Math.round((tt)*(val.S + val.u));\n\t\t\tif(ss >= 60*tt) ss = 0;\n\t\t\tif(fmt === 's') return ss === 0 ? \"0\" : \"\"+ss/tt;\n\t\t\to = pad0(ss,2 + ss0);\n\t\t\tif(fmt === 'ss') return o.substr(0,2);\n\t\t\treturn \".\" + o.substr(2,fmt.length-1);\n\t\tcase 90: /* 'Z' absolute time */\n\t\tswitch(fmt) {\n\t\t\tcase '[h]': case '[hh]': out = val.D*24+val.H; break;\n\t\t\tcase '[m]': case '[mm]': out = (val.D*24+val.H)*60+val.M; break;\n\t\t\tcase '[s]': case '[ss]': out = ((val.D*24+val.H)*60+val.M)*60+Math.round(val.S+val.u); break;\n\t\t\tdefault: throw 'bad abstime format: ' + fmt;\n\t\t} outl = fmt.length === 3 ? 1 : 2; break;\n\t\tcase 101: /* 'e' era */\n\t\t\tout = y; outl = 1; break;\n\t}\n\tvar outstr = outl > 0 ? pad0(out, outl) : \"\";\n\treturn outstr;\n}\n\n\n/*jshint -W086 */\n/*jshint +W086 */\nfunction commaify(s/*:string*/)/*:string*/ {\n\tvar w = 3;\n\tif(s.length <= w) return s;\n\tvar j = (s.length % w), o = s.substr(0,j);\n\tfor(; j!=s.length; j+=w) o+=(o.length > 0 ? \",\" : \"\") + s.substr(j,w);\n\treturn o;\n}\nvar pct1 = /%/g;\nfunction write_num_pct(type/*:string*/, fmt/*:string*/, val/*:number*/)/*:string*/{\n\tvar sfmt = fmt.replace(pct1,\"\"), mul = fmt.length - sfmt.length;\n\treturn write_num(type, sfmt, val * Math.pow(10,2*mul)) + fill(\"%\",mul);\n}\n\nfunction write_num_cm(type/*:string*/, fmt/*:string*/, val/*:number*/)/*:string*/{\n\tvar idx = fmt.length - 1;\n\twhile(fmt.charCodeAt(idx-1) === 44) --idx;\n\treturn write_num(type, fmt.substr(0,idx), val / Math.pow(10,3*(fmt.length-idx)));\n}\n\nfunction write_num_exp(fmt/*:string*/, val/*:number*/)/*:string*/{\n\tvar o/*:string*/;\n\tvar idx = fmt.indexOf(\"E\") - fmt.indexOf(\".\") - 1;\n\tif(fmt.match(/^#+0.0E\\+0$/)) {\n\t\tif(val == 0) return \"0.0E+0\";\n\t\telse if(val < 0) return \"-\" + write_num_exp(fmt, -val);\n\t\tvar period = fmt.indexOf(\".\"); if(period === -1) period=fmt.indexOf('E');\n\t\tvar ee = Math.floor(Math.log(val)*Math.LOG10E)%period;\n\t\tif(ee < 0) ee += period;\n\t\to = (val/Math.pow(10,ee)).toPrecision(idx+1+(period+ee)%period);\n\t\tif(o.indexOf(\"e\") === -1) {\n\t\t\tvar fakee = Math.floor(Math.log(val)*Math.LOG10E);\n\t\t\tif(o.indexOf(\".\") === -1) o = o.charAt(0) + \".\" + o.substr(1) + \"E+\" + (fakee - o.length+ee);\n\t\t\telse o += \"E+\" + (fakee - ee);\n\t\t\twhile(o.substr(0,2) === \"0.\") {\n\t\t\t\to = o.charAt(0) + o.substr(2,period) + \".\" + o.substr(2+period);\n\t\t\t\to = o.replace(/^0+([1-9])/,\"$1\").replace(/^0+\\./,\"0.\");\n\t\t\t}\n\t\t\to = o.replace(/\\+-/,\"-\");\n\t\t}\n\t\to = o.replace(/^([+-]?)(\\d*)\\.(\\d*)[Ee]/,function($$,$1,$2,$3) { return $1 + $2 + $3.substr(0,(period+ee)%period) + \".\" + $3.substr(ee) + \"E\"; });\n\t} else o = val.toExponential(idx);\n\tif(fmt.match(/E\\+00$/) && o.match(/e[+-]\\d$/)) o = o.substr(0,o.length-1) + \"0\" + o.charAt(o.length-1);\n\tif(fmt.match(/E\\-/) && o.match(/e\\+/)) o = o.replace(/e\\+/,\"e\");\n\treturn o.replace(\"e\",\"E\");\n}\nvar frac1 = /# (\\?+)( ?)\\/( ?)(\\d+)/;\nfunction write_num_f1(r/*:Array*/, aval/*:number*/, sign/*:string*/)/*:string*/ {\n\tvar den = parseInt(r[4],10), rr = Math.round(aval * den), base = Math.floor(rr/den);\n\tvar myn = (rr - base*den), myd = den;\n\treturn sign + (base === 0 ? \"\" : \"\"+base) + \" \" + (myn === 0 ? fill(\" \", r[1].length + 1 + r[4].length) : pad_(myn,r[1].length) + r[2] + \"/\" + r[3] + pad0(myd,r[4].length));\n}\nfunction write_num_f2(r/*:Array*/, aval/*:number*/, sign/*:string*/)/*:string*/ {\n\treturn sign + (aval === 0 ? \"\" : \"\"+aval) + fill(\" \", r[1].length + 2 + r[4].length);\n}\nvar dec1 = /^#*0*\\.([0#]+)/;\nvar closeparen = /\\).*[0#]/;\nvar phone = /\\(###\\) ###\\\\?-####/;\nfunction hashq(str/*:string*/)/*:string*/ {\n\tvar o = \"\", cc;\n\tfor(var i = 0; i != str.length; ++i) switch((cc=str.charCodeAt(i))) {\n\t\tcase 35: break;\n\t\tcase 63: o+= \" \"; break;\n\t\tcase 48: o+= \"0\"; break;\n\t\tdefault: o+= String.fromCharCode(cc);\n\t}\n\treturn o;\n}\nfunction rnd(val/*:number*/, d/*:number*/)/*:string*/ { var dd = Math.pow(10,d); return \"\"+(Math.round(val * dd)/dd); }\nfunction dec(val/*:number*/, d/*:number*/)/*:number*/ {\n\tvar _frac = val - Math.floor(val), dd = Math.pow(10,d);\n\tif (d < ('' + Math.round(_frac * dd)).length) return 0;\n\treturn Math.round(_frac * dd);\n}\nfunction carry(val/*:number*/, d/*:number*/)/*:number*/ {\n\tif (d < ('' + Math.round((val-Math.floor(val))*Math.pow(10,d))).length) {\n\t\treturn 1;\n\t}\n\treturn 0;\n}\nfunction flr(val/*:number*/)/*:string*/ {\n\tif(val < 2147483647 && val > -2147483648) return \"\"+(val >= 0 ? (val|0) : (val-1|0));\n\treturn \"\"+Math.floor(val);\n}\nfunction write_num_flt(type/*:string*/, fmt/*:string*/, val/*:number*/)/*:string*/ {\n\tif(type.charCodeAt(0) === 40 && !fmt.match(closeparen)) {\n\t\tvar ffmt = fmt.replace(/\\( */,\"\").replace(/ \\)/,\"\").replace(/\\)/,\"\");\n\t\tif(val >= 0) return write_num_flt('n', ffmt, val);\n\t\treturn '(' + write_num_flt('n', ffmt, -val) + ')';\n\t}\n\tif(fmt.charCodeAt(fmt.length - 1) === 44) return write_num_cm(type, fmt, val);\n\tif(fmt.indexOf('%') !== -1) return write_num_pct(type, fmt, val);\n\tif(fmt.indexOf('E') !== -1) return write_num_exp(fmt, val);\n\tif(fmt.charCodeAt(0) === 36) return \"$\"+write_num_flt(type,fmt.substr(fmt.charAt(1)==' '?2:1),val);\n\tvar o;\n\tvar r/*:?Array*/, ri, ff, aval = Math.abs(val), sign = val < 0 ? \"-\" : \"\";\n\tif(fmt.match(/^00+$/)) return sign + pad0r(aval,fmt.length);\n\tif(fmt.match(/^[#?]+$/)) {\n\t\to = pad0r(val,0); if(o === \"0\") o = \"\";\n\t\treturn o.length > fmt.length ? o : hashq(fmt.substr(0,fmt.length-o.length)) + o;\n\t}\n\tif((r = fmt.match(frac1))) return write_num_f1(r, aval, sign);\n\tif(fmt.match(/^#+0+$/)) return sign + pad0r(aval,fmt.length - fmt.indexOf(\"0\"));\n\tif((r = fmt.match(dec1))) {\n\t\to = rnd(val, r[1].length).replace(/^([^\\.]+)$/,\"$1.\"+hashq(r[1])).replace(/\\.$/,\".\"+hashq(r[1])).replace(/\\.(\\d*)$/,function($$, $1) { return \".\" + $1 + fill(\"0\", hashq(/*::(*/r/*::||[\"\"])*/[1]).length-$1.length); });\n\t\treturn fmt.indexOf(\"0.\") !== -1 ? o : o.replace(/^0\\./,\".\");\n\t}\n\tfmt = fmt.replace(/^#+([0.])/, \"$1\");\n\tif((r = fmt.match(/^(0*)\\.(#*)$/))) {\n\t\treturn sign + rnd(aval, r[2].length).replace(/\\.(\\d*[1-9])0*$/,\".$1\").replace(/^(-?\\d*)$/,\"$1.\").replace(/^0\\./,r[1].length?\"0.\":\".\");\n\t}\n\tif((r = fmt.match(/^#{1,3},##0(\\.?)$/))) return sign + commaify(pad0r(aval,0));\n\tif((r = fmt.match(/^#,##0\\.([#0]*0)$/))) {\n\t\treturn val < 0 ? \"-\" + write_num_flt(type, fmt, -val) : commaify(\"\"+(Math.floor(val) + carry(val, r[1].length))) + \".\" + pad0(dec(val, r[1].length),r[1].length);\n\t}\n\tif((r = fmt.match(/^#,#*,#0/))) return write_num_flt(type,fmt.replace(/^#,#*,/,\"\"),val);\n\tif((r = fmt.match(/^([0#]+)(\\\\?-([0#]+))+$/))) {\n\t\to = _strrev(write_num_flt(type, fmt.replace(/[\\\\-]/g,\"\"), val));\n\t\tri = 0;\n\t\treturn _strrev(_strrev(fmt.replace(/\\\\/g,\"\")).replace(/[0#]/g,function(x){return ri= 0) return write_num_int('n', ffmt, val);\n\t\treturn '(' + write_num_int('n', ffmt, -val) + ')';\n\t}\n\tif(fmt.charCodeAt(fmt.length - 1) === 44) return write_num_cm2(type, fmt, val);\n\tif(fmt.indexOf('%') !== -1) return write_num_pct2(type, fmt, val);\n\tif(fmt.indexOf('E') !== -1) return write_num_exp2(fmt, val);\n\tif(fmt.charCodeAt(0) === 36) return \"$\"+write_num_int(type,fmt.substr(fmt.charAt(1)==' '?2:1),val);\n\tvar o;\n\tvar r/*:?Array*/, ri, ff, aval = Math.abs(val), sign = val < 0 ? \"-\" : \"\";\n\tif(fmt.match(/^00+$/)) return sign + pad0(aval,fmt.length);\n\tif(fmt.match(/^[#?]+$/)) {\n\t\to = (\"\"+val); if(val === 0) o = \"\";\n\t\treturn o.length > fmt.length ? o : hashq(fmt.substr(0,fmt.length-o.length)) + o;\n\t}\n\tif((r = fmt.match(frac1))) return write_num_f2(r, aval, sign);\n\tif(fmt.match(/^#+0+$/)) return sign + pad0(aval,fmt.length - fmt.indexOf(\"0\"));\n\tif((r = fmt.match(dec1))) {\n\t\t/*:: if(!Array.isArray(r)) throw new Error(\"unreachable\"); */\n\t\to = (\"\"+val).replace(/^([^\\.]+)$/,\"$1.\"+hashq(r[1])).replace(/\\.$/,\".\"+hashq(r[1]));\n\t\to = o.replace(/\\.(\\d*)$/,function($$, $1) {\n\t\t/*:: if(!Array.isArray(r)) throw new Error(\"unreachable\"); */\n\t\t\treturn \".\" + $1 + fill(\"0\", hashq(r[1]).length-$1.length); });\n\t\treturn fmt.indexOf(\"0.\") !== -1 ? o : o.replace(/^0\\./,\".\");\n\t}\n\tfmt = fmt.replace(/^#+([0.])/, \"$1\");\n\tif((r = fmt.match(/^(0*)\\.(#*)$/))) {\n\t\treturn sign + (\"\"+aval).replace(/\\.(\\d*[1-9])0*$/,\".$1\").replace(/^(-?\\d*)$/,\"$1.\").replace(/^0\\./,r[1].length?\"0.\":\".\");\n\t}\n\tif((r = fmt.match(/^#{1,3},##0(\\.?)$/))) return sign + commaify((\"\"+aval));\n\tif((r = fmt.match(/^#,##0\\.([#0]*0)$/))) {\n\t\treturn val < 0 ? \"-\" + write_num_int(type, fmt, -val) : commaify((\"\"+val)) + \".\" + fill('0',r[1].length);\n\t}\n\tif((r = fmt.match(/^#,#*,#0/))) return write_num_int(type,fmt.replace(/^#,#*,/,\"\"),val);\n\tif((r = fmt.match(/^([0#]+)(\\\\?-([0#]+))+$/))) {\n\t\to = _strrev(write_num_int(type, fmt.replace(/[\\\\-]/g,\"\"), val));\n\t\tri = 0;\n\t\treturn _strrev(_strrev(fmt.replace(/\\\\/g,\"\")).replace(/[0#]/g,function(x){return ri*/ {\n\tvar out/*:Array*/ = [];\n\tvar in_str = false/*, cc*/;\n\tfor(var i = 0, j = 0; i < fmt.length; ++i) switch((/*cc=*/fmt.charCodeAt(i))) {\n\t\tcase 34: /* '\"' */\n\t\t\tin_str = !in_str; break;\n\t\tcase 95: case 42: case 92: /* '_' '*' '\\\\' */\n\t\t\t++i; break;\n\t\tcase 59: /* ';' */\n\t\t\tout[out.length] = fmt.substr(j,i-j);\n\t\t\tj = i+1;\n\t}\n\tout[out.length] = fmt.substr(j);\n\tif(in_str === true) throw new Error(\"Format |\" + fmt + \"| unterminated string \");\n\treturn out;\n}\n\nvar SSF_abstime = /\\[[HhMmSs\\u0E0A\\u0E19\\u0E17]*\\]/;\nfunction fmt_is_date(fmt/*:string*/)/*:boolean*/ {\n\tvar i = 0, /*cc = 0,*/ c = \"\", o = \"\";\n\twhile(i < fmt.length) {\n\t\tswitch((c = fmt.charAt(i))) {\n\t\t\tcase 'G': if(SSF_isgeneral(fmt, i)) i+= 6; i++; break;\n\t\t\tcase '\"': for(;(/*cc=*/fmt.charCodeAt(++i)) !== 34 && i < fmt.length;){/*empty*/} ++i; break;\n\t\t\tcase '\\\\': i+=2; break;\n\t\t\tcase '_': i+=2; break;\n\t\t\tcase '@': ++i; break;\n\t\t\tcase 'B': case 'b':\n\t\t\t\tif(fmt.charAt(i+1) === \"1\" || fmt.charAt(i+1) === \"2\") return true;\n\t\t\t\t/* falls through */\n\t\t\tcase 'M': case 'D': case 'Y': case 'H': case 'S': case 'E':\n\t\t\t\t/* falls through */\n\t\t\tcase 'm': case 'd': case 'y': case 'h': case 's': case 'e': case 'g': return true;\n\t\t\tcase 'A': case 'a': case '上':\n\t\t\t\tif(fmt.substr(i, 3).toUpperCase() === \"A/P\") return true;\n\t\t\t\tif(fmt.substr(i, 5).toUpperCase() === \"AM/PM\") return true;\n\t\t\t\tif(fmt.substr(i, 5).toUpperCase() === \"上午/下午\") return true;\n\t\t\t\t++i; break;\n\t\t\tcase '[':\n\t\t\t\to = c;\n\t\t\t\twhile(fmt.charAt(i++) !== ']' && i < fmt.length) o += fmt.charAt(i);\n\t\t\t\tif(o.match(SSF_abstime)) return true;\n\t\t\t\tbreak;\n\t\t\tcase '.':\n\t\t\t\t/* falls through */\n\t\t\tcase '0': case '#':\n\t\t\t\twhile(i < fmt.length && (\"0#?.,E+-%\".indexOf(c=fmt.charAt(++i)) > -1 || (c=='\\\\' && fmt.charAt(i+1) == \"-\" && \"0#\".indexOf(fmt.charAt(i+2))>-1))){/* empty */}\n\t\t\t\tbreak;\n\t\t\tcase '?': while(fmt.charAt(++i) === c){/* empty */} break;\n\t\t\tcase '*': ++i; if(fmt.charAt(i) == ' ' || fmt.charAt(i) == '*') ++i; break;\n\t\t\tcase '(': case ')': ++i; break;\n\t\t\tcase '1': case '2': case '3': case '4': case '5': case '6': case '7': case '8': case '9':\n\t\t\t\twhile(i < fmt.length && \"0123456789\".indexOf(fmt.charAt(++i)) > -1){/* empty */} break;\n\t\t\tcase ' ': ++i; break;\n\t\t\tdefault: ++i; break;\n\t\t}\n\t}\n\treturn false;\n}\n\nfunction eval_fmt(fmt/*:string*/, v/*:any*/, opts/*:any*/, flen/*:number*/) {\n\tvar out = [], o = \"\", i = 0, c = \"\", lst='t', dt, j, cc;\n\tvar hr='H';\n\t/* Tokenize */\n\twhile(i < fmt.length) {\n\t\tswitch((c = fmt.charAt(i))) {\n\t\t\tcase 'G': /* General */\n\t\t\t\tif(!SSF_isgeneral(fmt, i)) throw new Error('unrecognized character ' + c + ' in ' +fmt);\n\t\t\t\tout[out.length] = {t:'G', v:'General'}; i+=7; break;\n\t\t\tcase '\"': /* Literal text */\n\t\t\t\tfor(o=\"\";(cc=fmt.charCodeAt(++i)) !== 34 && i < fmt.length;) o += String.fromCharCode(cc);\n\t\t\t\tout[out.length] = {t:'t', v:o}; ++i; break;\n\t\t\tcase '\\\\': var w = fmt.charAt(++i), t = (w === \"(\" || w === \")\") ? w : 't';\n\t\t\t\tout[out.length] = {t:t, v:w}; ++i; break;\n\t\t\tcase '_': out[out.length] = {t:'t', v:\" \"}; i+=2; break;\n\t\t\tcase '@': /* Text Placeholder */\n\t\t\t\tout[out.length] = {t:'T', v:v}; ++i; break;\n\t\t\tcase 'B': case 'b':\n\t\t\t\tif(fmt.charAt(i+1) === \"1\" || fmt.charAt(i+1) === \"2\") {\n\t\t\t\t\tif(dt==null) { dt=SSF_parse_date_code(v, opts, fmt.charAt(i+1) === \"2\"); if(dt==null) return \"\"; }\n\t\t\t\t\tout[out.length] = {t:'X', v:fmt.substr(i,2)}; lst = c; i+=2; break;\n\t\t\t\t}\n\t\t\t\t/* falls through */\n\t\t\tcase 'M': case 'D': case 'Y': case 'H': case 'S': case 'E':\n\t\t\t\tc = c.toLowerCase();\n\t\t\t\t/* falls through */\n\t\t\tcase 'm': case 'd': case 'y': case 'h': case 's': case 'e': case 'g':\n\t\t\t\tif(v < 0) return \"\";\n\t\t\t\tif(dt==null) { dt=SSF_parse_date_code(v, opts); if(dt==null) return \"\"; }\n\t\t\t\to = c; while(++i < fmt.length && fmt.charAt(i).toLowerCase() === c) o+=c;\n\t\t\t\tif(c === 'm' && lst.toLowerCase() === 'h') c = 'M';\n\t\t\t\tif(c === 'h') c = hr;\n\t\t\t\tout[out.length] = {t:c, v:o}; lst = c; break;\n\t\t\tcase 'A': case 'a': case '上':\n\t\t\t\tvar q={t:c, v:c};\n\t\t\t\tif(dt==null) dt=SSF_parse_date_code(v, opts);\n\t\t\t\tif(fmt.substr(i, 3).toUpperCase() === \"A/P\") { if(dt!=null) q.v = dt.H >= 12 ? fmt.charAt(i+2) : c; q.t = 'T'; hr='h';i+=3;}\n\t\t\t\telse if(fmt.substr(i,5).toUpperCase() === \"AM/PM\") { if(dt!=null) q.v = dt.H >= 12 ? \"PM\" : \"AM\"; q.t = 'T'; i+=5; hr='h'; }\n\t\t\t\telse if(fmt.substr(i,5).toUpperCase() === \"上午/下午\") { if(dt!=null) q.v = dt.H >= 12 ? \"下午\" : \"上午\"; q.t = 'T'; i+=5; hr='h'; }\n\t\t\t\telse { q.t = \"t\"; ++i; }\n\t\t\t\tif(dt==null && q.t === 'T') return \"\";\n\t\t\t\tout[out.length] = q; lst = c; break;\n\t\t\tcase '[':\n\t\t\t\to = c;\n\t\t\t\twhile(fmt.charAt(i++) !== ']' && i < fmt.length) o += fmt.charAt(i);\n\t\t\t\tif(o.slice(-1) !== ']') throw 'unterminated \"[\" block: |' + o + '|';\n\t\t\t\tif(o.match(SSF_abstime)) {\n\t\t\t\t\tif(dt==null) { dt=SSF_parse_date_code(v, opts); if(dt==null) return \"\"; }\n\t\t\t\t\tout[out.length] = {t:'Z', v:o.toLowerCase()};\n\t\t\t\t\tlst = o.charAt(1);\n\t\t\t\t} else if(o.indexOf(\"$\") > -1) {\n\t\t\t\t\to = (o.match(/\\$([^-\\[\\]]*)/)||[])[1]||\"$\";\n\t\t\t\t\tif(!fmt_is_date(fmt)) out[out.length] = {t:'t',v:o};\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\t/* Numbers */\n\t\t\tcase '.':\n\t\t\t\tif(dt != null) {\n\t\t\t\t\to = c; while(++i < fmt.length && (c=fmt.charAt(i)) === \"0\") o += c;\n\t\t\t\t\tout[out.length] = {t:'s', v:o}; break;\n\t\t\t\t}\n\t\t\t\t/* falls through */\n\t\t\tcase '0': case '#':\n\t\t\t\to = c; while(++i < fmt.length && \"0#?.,E+-%\".indexOf(c=fmt.charAt(i)) > -1) o += c;\n\t\t\t\tout[out.length] = {t:'n', v:o}; break;\n\t\t\tcase '?':\n\t\t\t\to = c; while(fmt.charAt(++i) === c) o+=c;\n\t\t\t\tout[out.length] = {t:c, v:o}; lst = c; break;\n\t\t\tcase '*': ++i; if(fmt.charAt(i) == ' ' || fmt.charAt(i) == '*') ++i; break; // **\n\t\t\tcase '(': case ')': out[out.length] = {t:(flen===1?'t':c), v:c}; ++i; break;\n\t\t\tcase '1': case '2': case '3': case '4': case '5': case '6': case '7': case '8': case '9':\n\t\t\t\to = c; while(i < fmt.length && \"0123456789\".indexOf(fmt.charAt(++i)) > -1) o+=fmt.charAt(i);\n\t\t\t\tout[out.length] = {t:'D', v:o}; break;\n\t\t\tcase ' ': out[out.length] = {t:c, v:c}; ++i; break;\n\t\t\tcase '$': out[out.length] = {t:'t', v:'$'}; ++i; break;\n\t\t\tdefault:\n\t\t\t\tif(\",$-+/():!^&'~{}<>=€acfijklopqrtuvwxzP\".indexOf(c) === -1) throw new Error('unrecognized character ' + c + ' in ' + fmt);\n\t\t\t\tout[out.length] = {t:'t', v:c}; ++i; break;\n\t\t}\n\t}\n\n\t/* Scan for date/time parts */\n\tvar bt = 0, ss0 = 0, ssm;\n\tfor(i=out.length-1, lst='t'; i >= 0; --i) {\n\t\tswitch(out[i].t) {\n\t\t\tcase 'h': case 'H': out[i].t = hr; lst='h'; if(bt < 1) bt = 1; break;\n\t\t\tcase 's':\n\t\t\t\tif((ssm=out[i].v.match(/\\.0+$/))) ss0=Math.max(ss0,ssm[0].length-1);\n\t\t\t\tif(bt < 3) bt = 3;\n\t\t\t/* falls through */\n\t\t\tcase 'd': case 'y': case 'M': case 'e': lst=out[i].t; break;\n\t\t\tcase 'm': if(lst === 's') { out[i].t = 'M'; if(bt < 2) bt = 2; } break;\n\t\t\tcase 'X': /*if(out[i].v === \"B2\");*/\n\t\t\t\tbreak;\n\t\t\tcase 'Z':\n\t\t\t\tif(bt < 1 && out[i].v.match(/[Hh]/)) bt = 1;\n\t\t\t\tif(bt < 2 && out[i].v.match(/[Mm]/)) bt = 2;\n\t\t\t\tif(bt < 3 && out[i].v.match(/[Ss]/)) bt = 3;\n\t\t}\n\t}\n\t/* time rounding depends on presence of minute / second / usec fields */\n\tswitch(bt) {\n\t\tcase 0: break;\n\t\tcase 1:\n\t\t\t/*::if(!dt) break;*/\n\t\t\tif(dt.u >= 0.5) { dt.u = 0; ++dt.S; }\n\t\t\tif(dt.S >= 60) { dt.S = 0; ++dt.M; }\n\t\t\tif(dt.M >= 60) { dt.M = 0; ++dt.H; }\n\t\t\tbreak;\n\t\tcase 2:\n\t\t\t/*::if(!dt) break;*/\n\t\t\tif(dt.u >= 0.5) { dt.u = 0; ++dt.S; }\n\t\t\tif(dt.S >= 60) { dt.S = 0; ++dt.M; }\n\t\t\tbreak;\n\t}\n\n\t/* replace fields */\n\tvar nstr = \"\", jj;\n\tfor(i=0; i < out.length; ++i) {\n\t\tswitch(out[i].t) {\n\t\t\tcase 't': case 'T': case ' ': case 'D': break;\n\t\t\tcase 'X': out[i].v = \"\"; out[i].t = \";\"; break;\n\t\t\tcase 'd': case 'm': case 'y': case 'h': case 'H': case 'M': case 's': case 'e': case 'b': case 'Z':\n\t\t\t\t/*::if(!dt) throw \"unreachable\"; */\n\t\t\t\tout[i].v = SSF_write_date(out[i].t.charCodeAt(0), out[i].v, dt, ss0);\n\t\t\t\tout[i].t = 't'; break;\n\t\t\tcase 'n': case '?':\n\t\t\t\tjj = i+1;\n\t\t\t\twhile(out[jj] != null && (\n\t\t\t\t\t(c=out[jj].t) === \"?\" || c === \"D\" ||\n\t\t\t\t\t((c === \" \" || c === \"t\") && out[jj+1] != null && (out[jj+1].t === '?' || out[jj+1].t === \"t\" && out[jj+1].v === '/')) ||\n\t\t\t\t\t(out[i].t === '(' && (c === ' ' || c === 'n' || c === ')')) ||\n\t\t\t\t\t(c === 't' && (out[jj].v === '/' || out[jj].v === ' ' && out[jj+1] != null && out[jj+1].t == '?'))\n\t\t\t\t)) {\n\t\t\t\t\tout[i].v += out[jj].v;\n\t\t\t\t\tout[jj] = {v:\"\", t:\";\"}; ++jj;\n\t\t\t\t}\n\t\t\t\tnstr += out[i].v;\n\t\t\t\ti = jj-1; break;\n\t\t\tcase 'G': out[i].t = 't'; out[i].v = SSF_general(v,opts); break;\n\t\t}\n\t}\n\tvar vv = \"\", myv, ostr;\n\tif(nstr.length > 0) {\n\t\tif(nstr.charCodeAt(0) == 40) /* '(' */ {\n\t\t\tmyv = (v<0&&nstr.charCodeAt(0) === 45 ? -v : v);\n\t\t\tostr = write_num('n', nstr, myv);\n\t\t} else {\n\t\t\tmyv = (v<0 && flen > 1 ? -v : v);\n\t\t\tostr = write_num('n', nstr, myv);\n\t\t\tif(myv < 0 && out[0] && out[0].t == 't') {\n\t\t\t\tostr = ostr.substr(1);\n\t\t\t\tout[0].v = \"-\" + out[0].v;\n\t\t\t}\n\t\t}\n\t\tjj=ostr.length-1;\n\t\tvar decpt = out.length;\n\t\tfor(i=0; i < out.length; ++i) if(out[i] != null && out[i].t != 't' && out[i].v.indexOf(\".\") > -1) { decpt = i; break; }\n\t\tvar lasti=out.length;\n\t\tif(decpt === out.length && ostr.indexOf(\"E\") === -1) {\n\t\t\tfor(i=out.length-1; i>= 0;--i) {\n\t\t\t\tif(out[i] == null || 'n?'.indexOf(out[i].t) === -1) continue;\n\t\t\t\tif(jj>=out[i].v.length-1) { jj -= out[i].v.length; out[i].v = ostr.substr(jj+1, out[i].v.length); }\n\t\t\t\telse if(jj < 0) out[i].v = \"\";\n\t\t\t\telse { out[i].v = ostr.substr(0, jj+1); jj = -1; }\n\t\t\t\tout[i].t = 't';\n\t\t\t\tlasti = i;\n\t\t\t}\n\t\t\tif(jj>=0 && lasti= 0; --i) {\n\t\t\t\tif(out[i] == null || 'n?'.indexOf(out[i].t) === -1) continue;\n\t\t\t\tj=out[i].v.indexOf(\".\")>-1&&i===decpt?out[i].v.indexOf(\".\")-1:out[i].v.length-1;\n\t\t\t\tvv = out[i].v.substr(j+1);\n\t\t\t\tfor(; j>=0; --j) {\n\t\t\t\t\tif(jj>=0 && (out[i].v.charAt(j) === \"0\" || out[i].v.charAt(j) === \"#\")) vv = ostr.charAt(jj--) + vv;\n\t\t\t\t}\n\t\t\t\tout[i].v = vv;\n\t\t\t\tout[i].t = 't';\n\t\t\t\tlasti = i;\n\t\t\t}\n\t\t\tif(jj>=0 && lasti-1&&i===decpt?out[i].v.indexOf(\".\")+1:0;\n\t\t\t\tvv = out[i].v.substr(0,j);\n\t\t\t\tfor(; j-1) {\n\t\tmyv = (flen >1 && v < 0 && i>0 && out[i-1].v === \"-\" ? -v:v);\n\t\tout[i].v = write_num(out[i].t, out[i].v, myv);\n\t\tout[i].t = 't';\n\t}\n\tvar retval = \"\";\n\tfor(i=0; i !== out.length; ++i) if(out[i] != null) retval += out[i].v;\n\treturn retval;\n}\n\nvar cfregex2 = /\\[(=|>[=]?|<[>=]?)(-?\\d+(?:\\.\\d*)?)\\]/;\nfunction chkcond(v, rr) {\n\tif(rr == null) return false;\n\tvar thresh = parseFloat(rr[2]);\n\tswitch(rr[1]) {\n\t\tcase \"=\": if(v == thresh) return true; break;\n\t\tcase \">\": if(v > thresh) return true; break;\n\t\tcase \"<\": if(v < thresh) return true; break;\n\t\tcase \"<>\": if(v != thresh) return true; break;\n\t\tcase \">=\": if(v >= thresh) return true; break;\n\t\tcase \"<=\": if(v <= thresh) return true; break;\n\t}\n\treturn false;\n}\nfunction choose_fmt(f/*:string*/, v/*:any*/) {\n\tvar fmt = SSF_split_fmt(f);\n\tvar l = fmt.length, lat = fmt[l-1].indexOf(\"@\");\n\tif(l<4 && lat>-1) --l;\n\tif(fmt.length > 4) throw new Error(\"cannot find right format for |\" + fmt.join(\"|\") + \"|\");\n\tif(typeof v !== \"number\") return [4, fmt.length === 4 || lat>-1?fmt[fmt.length-1]:\"@\"];\n\tswitch(fmt.length) {\n\t\tcase 1: fmt = lat>-1 ? [\"General\", \"General\", \"General\", fmt[0]] : [fmt[0], fmt[0], fmt[0], \"@\"]; break;\n\t\tcase 2: fmt = lat>-1 ? [fmt[0], fmt[0], fmt[0], fmt[1]] : [fmt[0], fmt[1], fmt[0], \"@\"]; break;\n\t\tcase 3: fmt = lat>-1 ? [fmt[0], fmt[1], fmt[0], fmt[2]] : [fmt[0], fmt[1], fmt[2], \"@\"]; break;\n\t\tcase 4: break;\n\t}\n\tvar ff = v > 0 ? fmt[0] : v < 0 ? fmt[1] : fmt[2];\n\tif(fmt[0].indexOf(\"[\") === -1 && fmt[1].indexOf(\"[\") === -1) return [l, ff];\n\tif(fmt[0].match(/\\[[=<>]/) != null || fmt[1].match(/\\[[=<>]/) != null) {\n\t\tvar m1 = fmt[0].match(cfregex2);\n\t\tvar m2 = fmt[1].match(cfregex2);\n\t\treturn chkcond(v, m1) ? [l, fmt[0]] : chkcond(v, m2) ? [l, fmt[1]] : [l, fmt[m1 != null && m2 != null ? 2 : 1]];\n\t}\n\treturn [l, ff];\n}\nfunction SSF_format(fmt/*:string|number*/,v/*:any*/,o/*:?any*/) {\n\tif(o == null) o = {};\n\tvar sfmt = \"\";\n\tswitch(typeof fmt) {\n\t\tcase \"string\":\n\t\t\tif(fmt == \"m/d/yy\" && o.dateNF) sfmt = o.dateNF;\n\t\t\telse sfmt = fmt;\n\t\t\tbreak;\n\t\tcase \"number\":\n\t\t\tif(fmt == 14 && o.dateNF) sfmt = o.dateNF;\n\t\t\telse sfmt = (o.table != null ? (o.table/*:any*/) : table_fmt)[fmt];\n\t\t\tif(sfmt == null) sfmt = (o.table && o.table[SSF_default_map[fmt]]) || table_fmt[SSF_default_map[fmt]];\n\t\t\tif(sfmt == null) sfmt = SSF_default_str[fmt] || \"General\";\n\t\t\tbreak;\n\t}\n\tif(SSF_isgeneral(sfmt,0)) return SSF_general(v, o);\n\tif(v instanceof Date) v = datenum_local(v, o.date1904);\n\tvar f = choose_fmt(sfmt, v);\n\tif(SSF_isgeneral(f[1])) return SSF_general(v, o);\n\tif(v === true) v = \"TRUE\"; else if(v === false) v = \"FALSE\";\n\telse if(v === \"\" || v == null) return \"\";\n\treturn eval_fmt(f[1], v, o, f[0]);\n}\nfunction SSF_load(fmt/*:string*/, idx/*:?number*/)/*:number*/ {\n\tif(typeof idx != 'number') {\n\t\tidx = +idx || -1;\n/*::if(typeof idx != 'number') return 0x188; */\n\t\tfor(var i = 0; i < 0x0188; ++i) {\n/*::if(typeof idx != 'number') return 0x188; */\n\t\t\tif(table_fmt[i] == undefined) { if(idx < 0) idx = i; continue; }\n\t\t\tif(table_fmt[i] == fmt) { idx = i; break; }\n\t\t}\n/*::if(typeof idx != 'number') return 0x188; */\n\t\tif(idx < 0) idx = 0x187;\n\t}\n/*::if(typeof idx != 'number') return 0x188; */\n\ttable_fmt[idx] = fmt;\n\treturn idx;\n}\nfunction SSF_load_table(tbl/*:SSFTable*/)/*:void*/ {\n\tfor(var i=0; i!=0x0188; ++i)\n\t\tif(tbl[i] !== undefined) SSF_load(tbl[i], i);\n}\n\nfunction make_ssf() {\n\ttable_fmt = SSF_init_table();\n}\n\nvar SSF = {\n\tformat: SSF_format,\n\tload: SSF_load,\n\t_table: table_fmt,\n\tload_table: SSF_load_table,\n\tparse_date_code: SSF_parse_date_code,\n\tis_date: fmt_is_date,\n\tget_table: function get_table() { return SSF._table = table_fmt; }\n};\n\nvar SSFImplicit/*{[number]:string}*/ = ({\n\t\"5\": '\"$\"#,##0_);\\\\(\"$\"#,##0\\\\)',\n\t\"6\": '\"$\"#,##0_);[Red]\\\\(\"$\"#,##0\\\\)',\n\t\"7\": '\"$\"#,##0.00_);\\\\(\"$\"#,##0.00\\\\)',\n\t\"8\": '\"$\"#,##0.00_);[Red]\\\\(\"$\"#,##0.00\\\\)',\n\t\"23\": 'General', \"24\": 'General', \"25\": 'General', \"26\": 'General',\n\t\"27\": 'm/d/yy', \"28\": 'm/d/yy', \"29\": 'm/d/yy', \"30\": 'm/d/yy', \"31\": 'm/d/yy',\n\t\"32\": 'h:mm:ss', \"33\": 'h:mm:ss', \"34\": 'h:mm:ss', \"35\": 'h:mm:ss',\n\t\"36\": 'm/d/yy',\n\t\"41\": '_(* #,##0_);_(* \\(#,##0\\);_(* \"-\"_);_(@_)',\n\t\"42\": '_(\"$\"* #,##0_);_(\"$\"* \\(#,##0\\);_(\"$\"* \"-\"_);_(@_)',\n\t\"43\": '_(* #,##0.00_);_(* \\(#,##0.00\\);_(* \"-\"??_);_(@_)',\n\t\"44\": '_(\"$\"* #,##0.00_);_(\"$\"* \\(#,##0.00\\);_(\"$\"* \"-\"??_);_(@_)',\n\t\"50\": 'm/d/yy', \"51\": 'm/d/yy', \"52\": 'm/d/yy', \"53\": 'm/d/yy', \"54\": 'm/d/yy',\n\t\"55\": 'm/d/yy', \"56\": 'm/d/yy', \"57\": 'm/d/yy', \"58\": 'm/d/yy',\n\t\"59\": '0',\n\t\"60\": '0.00',\n\t\"61\": '#,##0',\n\t\"62\": '#,##0.00',\n\t\"63\": '\"$\"#,##0_);\\\\(\"$\"#,##0\\\\)',\n\t\"64\": '\"$\"#,##0_);[Red]\\\\(\"$\"#,##0\\\\)',\n\t\"65\": '\"$\"#,##0.00_);\\\\(\"$\"#,##0.00\\\\)',\n\t\"66\": '\"$\"#,##0.00_);[Red]\\\\(\"$\"#,##0.00\\\\)',\n\t\"67\": '0%',\n\t\"68\": '0.00%',\n\t\"69\": '# ?/?',\n\t\"70\": '# ??/??',\n\t\"71\": 'm/d/yy',\n\t\"72\": 'm/d/yy',\n\t\"73\": 'd-mmm-yy',\n\t\"74\": 'd-mmm',\n\t\"75\": 'mmm-yy',\n\t\"76\": 'h:mm',\n\t\"77\": 'h:mm:ss',\n\t\"78\": 'm/d/yy h:mm',\n\t\"79\": 'mm:ss',\n\t\"80\": '[h]:mm:ss',\n\t\"81\": 'mmss.0'\n}/*:any*/);\n\n/* dateNF parse TODO: move to SSF */\nvar dateNFregex = /[dD]+|[mM]+|[yYeE]+|[Hh]+|[Ss]+/g;\nfunction dateNF_regex(dateNF/*:string|number*/)/*:RegExp*/ {\n\tvar fmt = typeof dateNF == \"number\" ? table_fmt[dateNF] : dateNF;\n\tfmt = fmt.replace(dateNFregex, \"(\\\\d+)\");\n\treturn new RegExp(\"^\" + fmt + \"$\");\n}\nfunction dateNF_fix(str/*:string*/, dateNF/*:string*/, match/*:Array*/)/*:string*/ {\n\tvar Y = -1, m = -1, d = -1, H = -1, M = -1, S = -1;\n\t(dateNF.match(dateNFregex)||[]).forEach(function(n, i) {\n\t\tvar v = parseInt(match[i+1], 10);\n\t\tswitch(n.toLowerCase().charAt(0)) {\n\t\t\tcase 'y': Y = v; break; case 'd': d = v; break;\n\t\t\tcase 'h': H = v; break; case 's': S = v; break;\n\t\t\tcase 'm': if(H >= 0) M = v; else m = v; break;\n\t\t}\n\t});\n\tif(S >= 0 && M == -1 && m >= 0) { M = m; m = -1; }\n\tvar datestr = ((\"\" + (Y>=0?Y: new Date().getFullYear())).slice(-4) + \"-\" + (\"00\" + (m>=1?m:1)).slice(-2) + \"-\" + (\"00\" + (d>=1?d:1)).slice(-2));\n\tif(datestr.length == 7) datestr = \"0\" + datestr;\n\tif(datestr.length == 8) datestr = \"20\" + datestr;\n\tvar timestr = ((\"00\" + (H>=0?H:0)).slice(-2) + \":\" + (\"00\" + (M>=0?M:0)).slice(-2) + \":\" + (\"00\" + (S>=0?S:0)).slice(-2));\n\tif(H == -1 && M == -1 && S == -1) return datestr;\n\tif(Y == -1 && m == -1 && d == -1) return timestr;\n\treturn datestr + \"T\" + timestr;\n}\n\n/* table of bad formats written by third-party tools */\nvar bad_formats = {\n\t\"d.m\": \"d\\\\.m\" // Issue #2571 Google Sheets writes invalid format 'd.m', correct format is 'd\".\"m' or 'd\\\\.m'\n};\n\nfunction SSF__load(fmt, idx) {\n\treturn SSF_load(bad_formats[fmt] || fmt, idx);\n}\n\n/*::\ndeclare var ReadShift:any;\ndeclare var CheckField:any;\ndeclare var prep_blob:any;\ndeclare var __readUInt32LE:any;\ndeclare var __readInt32LE:any;\ndeclare var __toBuffer:any;\ndeclare var __utf16le:any;\ndeclare var bconcat:any;\ndeclare var s2a:any;\ndeclare var chr0:any;\ndeclare var chr1:any;\ndeclare var has_buf:boolean;\ndeclare var new_buf:any;\ndeclare var new_raw_buf:any;\ndeclare var new_unsafe_buf:any;\ndeclare var Buffer_from:any;\n*/\n/* cfb.js (C) 2013-present SheetJS -- http://sheetjs.com */\n/* vim: set ts=2: */\n/*jshint eqnull:true */\n/*exported CFB */\n/*global Uint8Array:false, Uint16Array:false */\n\n/*::\ntype SectorEntry = {\n\tname?:string;\n\tnodes?:Array;\n\tdata:RawBytes;\n};\ntype SectorList = {\n\t[k:string|number]:SectorEntry;\n\tname:?string;\n\tfat_addrs:Array;\n\tssz:number;\n}\ntype CFBFiles = {[n:string]:CFBEntry};\n*/\n/* crc32.js (C) 2014-present SheetJS -- http://sheetjs.com */\n/* vim: set ts=2: */\n/*exported CRC32 */\nvar CRC32 = /*#__PURE__*/(function() {\nvar CRC32 = {};\nCRC32.version = '1.2.0';\n/* see perf/crc32table.js */\n/*global Int32Array */\nfunction signed_crc_table()/*:any*/ {\n\tvar c = 0, table/*:Array*/ = new Array(256);\n\n\tfor(var n =0; n != 256; ++n){\n\t\tc = n;\n\t\tc = ((c&1) ? (-306674912 ^ (c >>> 1)) : (c >>> 1));\n\t\tc = ((c&1) ? (-306674912 ^ (c >>> 1)) : (c >>> 1));\n\t\tc = ((c&1) ? (-306674912 ^ (c >>> 1)) : (c >>> 1));\n\t\tc = ((c&1) ? (-306674912 ^ (c >>> 1)) : (c >>> 1));\n\t\tc = ((c&1) ? (-306674912 ^ (c >>> 1)) : (c >>> 1));\n\t\tc = ((c&1) ? (-306674912 ^ (c >>> 1)) : (c >>> 1));\n\t\tc = ((c&1) ? (-306674912 ^ (c >>> 1)) : (c >>> 1));\n\t\tc = ((c&1) ? (-306674912 ^ (c >>> 1)) : (c >>> 1));\n\t\ttable[n] = c;\n\t}\n\n\treturn typeof Int32Array !== 'undefined' ? new Int32Array(table) : table;\n}\n\nvar T0 = signed_crc_table();\nfunction slice_by_16_tables(T) {\n\tvar c = 0, v = 0, n = 0, table/*:Array*/ = typeof Int32Array !== 'undefined' ? new Int32Array(4096) : new Array(4096) ;\n\n\tfor(n = 0; n != 256; ++n) table[n] = T[n];\n\tfor(n = 0; n != 256; ++n) {\n\t\tv = T[n];\n\t\tfor(c = 256 + n; c < 4096; c += 256) v = table[c] = (v >>> 8) ^ T[v & 0xFF];\n\t}\n\tvar out = [];\n\tfor(n = 1; n != 16; ++n) out[n - 1] = typeof Int32Array !== 'undefined' && typeof table.subarray == \"function\" ? table.subarray(n * 256, n * 256 + 256) : table.slice(n * 256, n * 256 + 256);\n\treturn out;\n}\nvar TT = slice_by_16_tables(T0);\nvar T1 = TT[0], T2 = TT[1], T3 = TT[2], T4 = TT[3], T5 = TT[4];\nvar T6 = TT[5], T7 = TT[6], T8 = TT[7], T9 = TT[8], Ta = TT[9];\nvar Tb = TT[10], Tc = TT[11], Td = TT[12], Te = TT[13], Tf = TT[14];\nfunction crc32_bstr(bstr/*:string*/, seed/*:number*/)/*:number*/ {\n\tvar C = seed/*:: ? 0 : 0 */ ^ -1;\n\tfor(var i = 0, L = bstr.length; i < L;) C = (C>>>8) ^ T0[(C^bstr.charCodeAt(i++))&0xFF];\n\treturn ~C;\n}\n\nfunction crc32_buf(B/*:Uint8Array|Array*/, seed/*:number*/)/*:number*/ {\n\tvar C = seed/*:: ? 0 : 0 */ ^ -1, L = B.length - 15, i = 0;\n\tfor(; i < L;) C =\n\t\tTf[B[i++] ^ (C & 255)] ^\n\t\tTe[B[i++] ^ ((C >> 8) & 255)] ^\n\t\tTd[B[i++] ^ ((C >> 16) & 255)] ^\n\t\tTc[B[i++] ^ (C >>> 24)] ^\n\t\tTb[B[i++]] ^ Ta[B[i++]] ^ T9[B[i++]] ^ T8[B[i++]] ^\n\t\tT7[B[i++]] ^ T6[B[i++]] ^ T5[B[i++]] ^ T4[B[i++]] ^\n\t\tT3[B[i++]] ^ T2[B[i++]] ^ T1[B[i++]] ^ T0[B[i++]];\n\tL += 15;\n\twhile(i < L) C = (C>>>8) ^ T0[(C^B[i++])&0xFF];\n\treturn ~C;\n}\n\nfunction crc32_str(str/*:string*/, seed/*:number*/)/*:number*/ {\n\tvar C = seed ^ -1;\n\tfor(var i = 0, L = str.length, c = 0, d = 0; i < L;) {\n\t\tc = str.charCodeAt(i++);\n\t\tif(c < 0x80) {\n\t\t\tC = (C>>>8) ^ T0[(C^c)&0xFF];\n\t\t} else if(c < 0x800) {\n\t\t\tC = (C>>>8) ^ T0[(C ^ (192|((c>>6)&31)))&0xFF];\n\t\t\tC = (C>>>8) ^ T0[(C ^ (128|(c&63)))&0xFF];\n\t\t} else if(c >= 0xD800 && c < 0xE000) {\n\t\t\tc = (c&1023)+64; d = str.charCodeAt(i++)&1023;\n\t\t\tC = (C>>>8) ^ T0[(C ^ (240|((c>>8)&7)))&0xFF];\n\t\t\tC = (C>>>8) ^ T0[(C ^ (128|((c>>2)&63)))&0xFF];\n\t\t\tC = (C>>>8) ^ T0[(C ^ (128|((d>>6)&15)|((c&3)<<4)))&0xFF];\n\t\t\tC = (C>>>8) ^ T0[(C ^ (128|(d&63)))&0xFF];\n\t\t} else {\n\t\t\tC = (C>>>8) ^ T0[(C ^ (224|((c>>12)&15)))&0xFF];\n\t\t\tC = (C>>>8) ^ T0[(C ^ (128|((c>>6)&63)))&0xFF];\n\t\t\tC = (C>>>8) ^ T0[(C ^ (128|(c&63)))&0xFF];\n\t\t}\n\t}\n\treturn ~C;\n}\nCRC32.table = T0;\nCRC32.bstr = crc32_bstr;\nCRC32.buf = crc32_buf;\nCRC32.str = crc32_str;\nreturn CRC32;\n})();\n/* [MS-CFB] v20171201 */\nvar CFB = /*#__PURE__*/(function _CFB(){\nvar exports/*:CFBModule*/ = /*::(*/{}/*:: :any)*/;\nexports.version = '1.2.2';\n/* [MS-CFB] 2.6.4 */\nfunction namecmp(l/*:string*/, r/*:string*/)/*:number*/ {\n\tvar L = l.split(\"/\"), R = r.split(\"/\");\n\tfor(var i = 0, c = 0, Z = Math.min(L.length, R.length); i < Z; ++i) {\n\t\tif((c = L[i].length - R[i].length)) return c;\n\t\tif(L[i] != R[i]) return L[i] < R[i] ? -1 : 1;\n\t}\n\treturn L.length - R.length;\n}\nfunction dirname(p/*:string*/)/*:string*/ {\n\tif(p.charAt(p.length - 1) == \"/\") return (p.slice(0,-1).indexOf(\"/\") === -1) ? p : dirname(p.slice(0, -1));\n\tvar c = p.lastIndexOf(\"/\");\n\treturn (c === -1) ? p : p.slice(0, c+1);\n}\n\nfunction filename(p/*:string*/)/*:string*/ {\n\tif(p.charAt(p.length - 1) == \"/\") return filename(p.slice(0, -1));\n\tvar c = p.lastIndexOf(\"/\");\n\treturn (c === -1) ? p : p.slice(c+1);\n}\n/* -------------------------------------------------------------------------- */\n/* DOS Date format:\n high|YYYYYYYm.mmmddddd.HHHHHMMM.MMMSSSSS|low\n add 1980 to stored year\n stored second should be doubled\n*/\n\n/* write JS date to buf as a DOS date */\nfunction write_dos_date(buf/*:CFBlob*/, date/*:Date|string*/) {\n\tif(typeof date === \"string\") date = new Date(date);\n\tvar hms/*:number*/ = date.getHours();\n\thms = hms << 6 | date.getMinutes();\n\thms = hms << 5 | (date.getSeconds()>>>1);\n\tbuf.write_shift(2, hms);\n\tvar ymd/*:number*/ = (date.getFullYear() - 1980);\n\tymd = ymd << 4 | (date.getMonth()+1);\n\tymd = ymd << 5 | date.getDate();\n\tbuf.write_shift(2, ymd);\n}\n\n/* read four bytes from buf and interpret as a DOS date */\nfunction parse_dos_date(buf/*:CFBlob*/)/*:Date*/ {\n\tvar hms = buf.read_shift(2) & 0xFFFF;\n\tvar ymd = buf.read_shift(2) & 0xFFFF;\n\tvar val = new Date();\n\tvar d = ymd & 0x1F; ymd >>>= 5;\n\tvar m = ymd & 0x0F; ymd >>>= 4;\n\tval.setMilliseconds(0);\n\tval.setFullYear(ymd + 1980);\n\tval.setMonth(m-1);\n\tval.setDate(d);\n\tvar S = hms & 0x1F; hms >>>= 5;\n\tvar M = hms & 0x3F; hms >>>= 6;\n\tval.setHours(hms);\n\tval.setMinutes(M);\n\tval.setSeconds(S<<1);\n\treturn val;\n}\nfunction parse_extra_field(blob/*:CFBlob*/)/*:any*/ {\n\tprep_blob(blob, 0);\n\tvar o = /*::(*/{}/*:: :any)*/;\n\tvar flags = 0;\n\twhile(blob.l <= blob.length - 4) {\n\t\tvar type = blob.read_shift(2);\n\t\tvar sz = blob.read_shift(2), tgt = blob.l + sz;\n\t\tvar p = {};\n\t\tswitch(type) {\n\t\t\t/* UNIX-style Timestamps */\n\t\t\tcase 0x5455: {\n\t\t\t\tflags = blob.read_shift(1);\n\t\t\t\tif(flags & 1) p.mtime = blob.read_shift(4);\n\t\t\t\t/* for some reason, CD flag corresponds to LFH */\n\t\t\t\tif(sz > 5) {\n\t\t\t\t\tif(flags & 2) p.atime = blob.read_shift(4);\n\t\t\t\t\tif(flags & 4) p.ctime = blob.read_shift(4);\n\t\t\t\t}\n\t\t\t\tif(p.mtime) p.mt = new Date(p.mtime*1000);\n\t\t\t} break;\n\t\t\t/* ZIP64 Extended Information Field */\n\t\t\tcase 0x0001: {\n\t\t\t\tvar sz1 = blob.read_shift(4), sz2 = blob.read_shift(4);\n\t\t\t\tp.usz = (sz2 * Math.pow(2,32) + sz1);\n\t\t\t\tsz1 = blob.read_shift(4); sz2 = blob.read_shift(4);\n\t\t\t\tp.csz = (sz2 * Math.pow(2,32) + sz1);\n\t\t\t\t// NOTE: volume fields are skipped\n\t\t\t} break;\n\t\t}\n\t\tblob.l = tgt;\n\t\to[type] = p;\n\t}\n\treturn o;\n}\nvar fs/*:: = require('fs'); */;\nfunction get_fs() { return fs || (fs = _fs); }\nfunction parse(file/*:RawBytes*/, options/*:CFBReadOpts*/)/*:CFBContainer*/ {\nif(file[0] == 0x50 && file[1] == 0x4b) return parse_zip(file, options);\nif((file[0] | 0x20) == 0x6d && (file[1]|0x20) == 0x69) return parse_mad(file, options);\nif(file.length < 512) throw new Error(\"CFB file size \" + file.length + \" < 512\");\nvar mver = 3;\nvar ssz = 512;\nvar nmfs = 0; // number of mini FAT sectors\nvar difat_sec_cnt = 0;\nvar dir_start = 0;\nvar minifat_start = 0;\nvar difat_start = 0;\n\nvar fat_addrs/*:Array*/ = []; // locations of FAT sectors\n\n/* [MS-CFB] 2.2 Compound File Header */\nvar blob/*:CFBlob*/ = /*::(*/file.slice(0,512)/*:: :any)*/;\nprep_blob(blob, 0);\n\n/* major version */\nvar mv = check_get_mver(blob);\nmver = mv[0];\nswitch(mver) {\n\tcase 3: ssz = 512; break; case 4: ssz = 4096; break;\n\tcase 0: if(mv[1] == 0) return parse_zip(file, options);\n\t/* falls through */\n\tdefault: throw new Error(\"Major Version: Expected 3 or 4 saw \" + mver);\n}\n\n/* reprocess header */\nif(ssz !== 512) { blob = /*::(*/file.slice(0,ssz)/*:: :any)*/; prep_blob(blob, 28 /* blob.l */); }\n/* Save header for final object */\nvar header/*:RawBytes*/ = file.slice(0,ssz);\n\ncheck_shifts(blob, mver);\n\n// Number of Directory Sectors\nvar dir_cnt/*:number*/ = blob.read_shift(4, 'i');\nif(mver === 3 && dir_cnt !== 0) throw new Error('# Directory Sectors: Expected 0 saw ' + dir_cnt);\n\n// Number of FAT Sectors\nblob.l += 4;\n\n// First Directory Sector Location\ndir_start = blob.read_shift(4, 'i');\n\n// Transaction Signature\nblob.l += 4;\n\n// Mini Stream Cutoff Size\nblob.chk('00100000', 'Mini Stream Cutoff Size: ');\n\n// First Mini FAT Sector Location\nminifat_start = blob.read_shift(4, 'i');\n\n// Number of Mini FAT Sectors\nnmfs = blob.read_shift(4, 'i');\n\n// First DIFAT sector location\ndifat_start = blob.read_shift(4, 'i');\n\n// Number of DIFAT Sectors\ndifat_sec_cnt = blob.read_shift(4, 'i');\n\n// Grab FAT Sector Locations\nfor(var q = -1, j = 0; j < 109; ++j) { /* 109 = (512 - blob.l)>>>2; */\n\tq = blob.read_shift(4, 'i');\n\tif(q<0) break;\n\tfat_addrs[j] = q;\n}\n\n/** Break the file up into sectors */\nvar sectors/*:Array*/ = sectorify(file, ssz);\n\nsleuth_fat(difat_start, difat_sec_cnt, sectors, ssz, fat_addrs);\n\n/** Chains */\nvar sector_list/*:SectorList*/ = make_sector_list(sectors, dir_start, fat_addrs, ssz);\n\nif(dir_start < sector_list.length) sector_list[dir_start].name = \"!Directory\";\nif(nmfs > 0 && minifat_start !== ENDOFCHAIN) sector_list[minifat_start].name = \"!MiniFAT\";\nsector_list[fat_addrs[0]].name = \"!FAT\";\nsector_list.fat_addrs = fat_addrs;\nsector_list.ssz = ssz;\n\n/* [MS-CFB] 2.6.1 Compound File Directory Entry */\nvar files/*:CFBFiles*/ = {}, Paths/*:Array*/ = [], FileIndex/*:CFBFileIndex*/ = [], FullPaths/*:Array*/ = [];\nread_directory(dir_start, sector_list, sectors, Paths, nmfs, files, FileIndex, minifat_start);\n\nbuild_full_paths(FileIndex, FullPaths, Paths);\nPaths.shift();\n\nvar o = {\n\tFileIndex: FileIndex,\n\tFullPaths: FullPaths\n};\n\n// $FlowIgnore\nif(options && options.raw) o.raw = {header: header, sectors: sectors};\nreturn o;\n} // parse\n\n/* [MS-CFB] 2.2 Compound File Header -- read up to major version */\nfunction check_get_mver(blob/*:CFBlob*/)/*:[number, number]*/ {\n\tif(blob[blob.l] == 0x50 && blob[blob.l + 1] == 0x4b) return [0, 0];\n\t// header signature 8\n\tblob.chk(HEADER_SIGNATURE, 'Header Signature: ');\n\n\t// clsid 16\n\t//blob.chk(HEADER_CLSID, 'CLSID: ');\n\tblob.l += 16;\n\n\t// minor version 2\n\tvar mver/*:number*/ = blob.read_shift(2, 'u');\n\n\treturn [blob.read_shift(2,'u'), mver];\n}\nfunction check_shifts(blob/*:CFBlob*/, mver/*:number*/)/*:void*/ {\n\tvar shift = 0x09;\n\n\t// Byte Order\n\t//blob.chk('feff', 'Byte Order: '); // note: some writers put 0xffff\n\tblob.l += 2;\n\n\t// Sector Shift\n\tswitch((shift = blob.read_shift(2))) {\n\t\tcase 0x09: if(mver != 3) throw new Error('Sector Shift: Expected 9 saw ' + shift); break;\n\t\tcase 0x0c: if(mver != 4) throw new Error('Sector Shift: Expected 12 saw ' + shift); break;\n\t\tdefault: throw new Error('Sector Shift: Expected 9 or 12 saw ' + shift);\n\t}\n\n\t// Mini Sector Shift\n\tblob.chk('0600', 'Mini Sector Shift: ');\n\n\t// Reserved\n\tblob.chk('000000000000', 'Reserved: ');\n}\n\n/** Break the file up into sectors */\nfunction sectorify(file/*:RawBytes*/, ssz/*:number*/)/*:Array*/ {\n\tvar nsectors = Math.ceil(file.length/ssz)-1;\n\tvar sectors/*:Array*/ = [];\n\tfor(var i=1; i < nsectors; ++i) sectors[i-1] = file.slice(i*ssz,(i+1)*ssz);\n\tsectors[nsectors-1] = file.slice(nsectors*ssz);\n\treturn sectors;\n}\n\n/* [MS-CFB] 2.6.4 Red-Black Tree */\nfunction build_full_paths(FI/*:CFBFileIndex*/, FP/*:Array*/, Paths/*:Array*/)/*:void*/ {\n\tvar i = 0, L = 0, R = 0, C = 0, j = 0, pl = Paths.length;\n\tvar dad/*:Array*/ = [], q/*:Array*/ = [];\n\n\tfor(; i < pl; ++i) { dad[i]=q[i]=i; FP[i]=Paths[i]; }\n\n\tfor(; j < q.length; ++j) {\n\t\ti = q[j];\n\t\tL = FI[i].L; R = FI[i].R; C = FI[i].C;\n\t\tif(dad[i] === i) {\n\t\t\tif(L !== -1 /*NOSTREAM*/ && dad[L] !== L) dad[i] = dad[L];\n\t\t\tif(R !== -1 && dad[R] !== R) dad[i] = dad[R];\n\t\t}\n\t\tif(C !== -1 /*NOSTREAM*/) dad[C] = i;\n\t\tif(L !== -1 && i != dad[i]) { dad[L] = dad[i]; if(q.lastIndexOf(L) < j) q.push(L); }\n\t\tif(R !== -1 && i != dad[i]) { dad[R] = dad[i]; if(q.lastIndexOf(R) < j) q.push(R); }\n\t}\n\tfor(i=1; i < pl; ++i) if(dad[i] === i) {\n\t\tif(R !== -1 /*NOSTREAM*/ && dad[R] !== R) dad[i] = dad[R];\n\t\telse if(L !== -1 && dad[L] !== L) dad[i] = dad[L];\n\t}\n\n\tfor(i=1; i < pl; ++i) {\n\t\tif(FI[i].type === 0 /* unknown */) continue;\n\t\tj = i;\n\t\tif(j != dad[j]) do {\n\t\t\tj = dad[j];\n\t\t\tFP[i] = FP[j] + \"/\" + FP[i];\n\t\t} while (j !== 0 && -1 !== dad[j] && j != dad[j]);\n\t\tdad[i] = -1;\n\t}\n\n\tFP[0] += \"/\";\n\tfor(i=1; i < pl; ++i) {\n\t\tif(FI[i].type !== 2 /* stream */) FP[i] += \"/\";\n\t}\n}\n\nfunction get_mfat_entry(entry/*:CFBEntry*/, payload/*:RawBytes*/, mini/*:?RawBytes*/)/*:CFBlob*/ {\n\tvar start = entry.start, size = entry.size;\n\t//return (payload.slice(start*MSSZ, start*MSSZ + size)/*:any*/);\n\tvar o = [];\n\tvar idx = start;\n\twhile(mini && size > 0 && idx >= 0) {\n\t\to.push(payload.slice(idx * MSSZ, idx * MSSZ + MSSZ));\n\t\tsize -= MSSZ;\n\t\tidx = __readInt32LE(mini, idx * 4);\n\t}\n\tif(o.length === 0) return (new_buf(0)/*:any*/);\n\treturn (bconcat(o).slice(0, entry.size)/*:any*/);\n}\n\n/** Chase down the rest of the DIFAT chain to build a comprehensive list\n DIFAT chains by storing the next sector number as the last 32 bits */\nfunction sleuth_fat(idx/*:number*/, cnt/*:number*/, sectors/*:Array*/, ssz/*:number*/, fat_addrs)/*:void*/ {\n\tvar q/*:number*/ = ENDOFCHAIN;\n\tif(idx === ENDOFCHAIN) {\n\t\tif(cnt !== 0) throw new Error(\"DIFAT chain shorter than expected\");\n\t} else if(idx !== -1 /*FREESECT*/) {\n\t\tvar sector = sectors[idx], m = (ssz>>>2)-1;\n\t\tif(!sector) return;\n\t\tfor(var i = 0; i < m; ++i) {\n\t\t\tif((q = __readInt32LE(sector,i*4)) === ENDOFCHAIN) break;\n\t\t\tfat_addrs.push(q);\n\t\t}\n\t\tif(cnt >= 1) sleuth_fat(__readInt32LE(sector,ssz-4),cnt - 1, sectors, ssz, fat_addrs);\n\t}\n}\n\n/** Follow the linked list of sectors for a given starting point */\nfunction get_sector_list(sectors/*:Array*/, start/*:number*/, fat_addrs/*:Array*/, ssz/*:number*/, chkd/*:?Array*/)/*:SectorEntry*/ {\n\tvar buf/*:Array*/ = [], buf_chain/*:Array*/ = [];\n\tif(!chkd) chkd = [];\n\tvar modulus = ssz - 1, j = 0, jj = 0;\n\tfor(j=start; j>=0;) {\n\t\tchkd[j] = true;\n\t\tbuf[buf.length] = j;\n\t\tbuf_chain.push(sectors[j]);\n\t\tvar addr = fat_addrs[Math.floor(j*4/ssz)];\n\t\tjj = ((j*4) & modulus);\n\t\tif(ssz < 4 + jj) throw new Error(\"FAT boundary crossed: \" + j + \" 4 \"+ssz);\n\t\tif(!sectors[addr]) break;\n\t\tj = __readInt32LE(sectors[addr], jj);\n\t}\n\treturn {nodes: buf, data:__toBuffer([buf_chain])};\n}\n\n/** Chase down the sector linked lists */\nfunction make_sector_list(sectors/*:Array*/, dir_start/*:number*/, fat_addrs/*:Array*/, ssz/*:number*/)/*:SectorList*/ {\n\tvar sl = sectors.length, sector_list/*:SectorList*/ = ([]/*:any*/);\n\tvar chkd/*:Array*/ = [], buf/*:Array*/ = [], buf_chain/*:Array*/ = [];\n\tvar modulus = ssz - 1, i=0, j=0, k=0, jj=0;\n\tfor(i=0; i < sl; ++i) {\n\t\tbuf = ([]/*:Array*/);\n\t\tk = (i + dir_start); if(k >= sl) k-=sl;\n\t\tif(chkd[k]) continue;\n\t\tbuf_chain = [];\n\t\tvar seen = [];\n\t\tfor(j=k; j>=0;) {\n\t\t\tseen[j] = true;\n\t\t\tchkd[j] = true;\n\t\t\tbuf[buf.length] = j;\n\t\t\tbuf_chain.push(sectors[j]);\n\t\t\tvar addr/*:number*/ = fat_addrs[Math.floor(j*4/ssz)];\n\t\t\tjj = ((j*4) & modulus);\n\t\t\tif(ssz < 4 + jj) throw new Error(\"FAT boundary crossed: \" + j + \" 4 \"+ssz);\n\t\t\tif(!sectors[addr]) break;\n\t\t\tj = __readInt32LE(sectors[addr], jj);\n\t\t\tif(seen[j]) break;\n\t\t}\n\t\tsector_list[k] = ({nodes: buf, data:__toBuffer([buf_chain])}/*:SectorEntry*/);\n\t}\n\treturn sector_list;\n}\n\n/* [MS-CFB] 2.6.1 Compound File Directory Entry */\nfunction read_directory(dir_start/*:number*/, sector_list/*:SectorList*/, sectors/*:Array*/, Paths/*:Array*/, nmfs, files, FileIndex, mini) {\n\tvar minifat_store = 0, pl = (Paths.length?2:0);\n\tvar sector = sector_list[dir_start].data;\n\tvar i = 0, namelen = 0, name;\n\tfor(; i < sector.length; i+= 128) {\n\t\tvar blob/*:CFBlob*/ = /*::(*/sector.slice(i, i+128)/*:: :any)*/;\n\t\tprep_blob(blob, 64);\n\t\tnamelen = blob.read_shift(2);\n\t\tname = __utf16le(blob,0,namelen-pl);\n\t\tPaths.push(name);\n\t\tvar o/*:CFBEntry*/ = ({\n\t\t\tname: name,\n\t\t\ttype: blob.read_shift(1),\n\t\t\tcolor: blob.read_shift(1),\n\t\t\tL: blob.read_shift(4, 'i'),\n\t\t\tR: blob.read_shift(4, 'i'),\n\t\t\tC: blob.read_shift(4, 'i'),\n\t\t\tclsid: blob.read_shift(16),\n\t\t\tstate: blob.read_shift(4, 'i'),\n\t\t\tstart: 0,\n\t\t\tsize: 0\n\t\t});\n\t\tvar ctime/*:number*/ = blob.read_shift(2) + blob.read_shift(2) + blob.read_shift(2) + blob.read_shift(2);\n\t\tif(ctime !== 0) o.ct = read_date(blob, blob.l-8);\n\t\tvar mtime/*:number*/ = blob.read_shift(2) + blob.read_shift(2) + blob.read_shift(2) + blob.read_shift(2);\n\t\tif(mtime !== 0) o.mt = read_date(blob, blob.l-8);\n\t\to.start = blob.read_shift(4, 'i');\n\t\to.size = blob.read_shift(4, 'i');\n\t\tif(o.size < 0 && o.start < 0) { o.size = o.type = 0; o.start = ENDOFCHAIN; o.name = \"\"; }\n\t\tif(o.type === 5) { /* root */\n\t\t\tminifat_store = o.start;\n\t\t\tif(nmfs > 0 && minifat_store !== ENDOFCHAIN) sector_list[minifat_store].name = \"!StreamData\";\n\t\t\t/*minifat_size = o.size;*/\n\t\t} else if(o.size >= 4096 /* MSCSZ */) {\n\t\t\to.storage = 'fat';\n\t\t\tif(sector_list[o.start] === undefined) sector_list[o.start] = get_sector_list(sectors, o.start, sector_list.fat_addrs, sector_list.ssz);\n\t\t\tsector_list[o.start].name = o.name;\n\t\t\to.content = (sector_list[o.start].data.slice(0,o.size)/*:any*/);\n\t\t} else {\n\t\t\to.storage = 'minifat';\n\t\t\tif(o.size < 0) o.size = 0;\n\t\t\telse if(minifat_store !== ENDOFCHAIN && o.start !== ENDOFCHAIN && sector_list[minifat_store]) {\n\t\t\t\to.content = get_mfat_entry(o, sector_list[minifat_store].data, (sector_list[mini]||{}).data);\n\t\t\t}\n\t\t}\n\t\tif(o.content) prep_blob(o.content, 0);\n\t\tfiles[name] = o;\n\t\tFileIndex.push(o);\n\t}\n}\n\nfunction read_date(blob/*:RawBytes|CFBlob*/, offset/*:number*/)/*:Date*/ {\n\treturn new Date(( ( (__readUInt32LE(blob,offset+4)/1e7)*Math.pow(2,32)+__readUInt32LE(blob,offset)/1e7 ) - 11644473600)*1000);\n}\n\nfunction read_file(filename/*:string*/, options/*:CFBReadOpts*/) {\n\tget_fs();\n\treturn parse(fs.readFileSync(filename), options);\n}\n\nfunction read(blob/*:RawBytes|string*/, options/*:CFBReadOpts*/) {\n\tvar type = options && options.type;\n\tif(!type) {\n\t\tif(has_buf && Buffer.isBuffer(blob)) type = \"buffer\";\n\t}\n\tswitch(type || \"base64\") {\n\t\tcase \"file\": /*:: if(typeof blob !== 'string') throw \"Must pass a filename when type='file'\"; */return read_file(blob, options);\n\t\tcase \"base64\": /*:: if(typeof blob !== 'string') throw \"Must pass a base64-encoded binary string when type='file'\"; */return parse(s2a(Base64_decode(blob)), options);\n\t\tcase \"binary\": /*:: if(typeof blob !== 'string') throw \"Must pass a binary string when type='file'\"; */return parse(s2a(blob), options);\n\t}\n\treturn parse(/*::typeof blob == 'string' ? new Buffer(blob, 'utf-8') : */blob, options);\n}\n\nfunction init_cfb(cfb/*:CFBContainer*/, opts/*:?any*/)/*:void*/ {\n\tvar o = opts || {}, root = o.root || \"Root Entry\";\n\tif(!cfb.FullPaths) cfb.FullPaths = [];\n\tif(!cfb.FileIndex) cfb.FileIndex = [];\n\tif(cfb.FullPaths.length !== cfb.FileIndex.length) throw new Error(\"inconsistent CFB structure\");\n\tif(cfb.FullPaths.length === 0) {\n\t\tcfb.FullPaths[0] = root + \"/\";\n\t\tcfb.FileIndex[0] = ({ name: root, type: 5 }/*:any*/);\n\t}\n\tif(o.CLSID) cfb.FileIndex[0].clsid = o.CLSID;\n\tseed_cfb(cfb);\n}\nfunction seed_cfb(cfb/*:CFBContainer*/)/*:void*/ {\n\tvar nm = \"\\u0001Sh33tJ5\";\n\tif(CFB.find(cfb, \"/\" + nm)) return;\n\tvar p = new_buf(4); p[0] = 55; p[1] = p[3] = 50; p[2] = 54;\n\tcfb.FileIndex.push(({ name: nm, type: 2, content:p, size:4, L:69, R:69, C:69 }/*:any*/));\n\tcfb.FullPaths.push(cfb.FullPaths[0] + nm);\n\trebuild_cfb(cfb);\n}\nfunction rebuild_cfb(cfb/*:CFBContainer*/, f/*:?boolean*/)/*:void*/ {\n\tinit_cfb(cfb);\n\tvar gc = false, s = false;\n\tfor(var i = cfb.FullPaths.length - 1; i >= 0; --i) {\n\t\tvar _file = cfb.FileIndex[i];\n\t\tswitch(_file.type) {\n\t\t\tcase 0:\n\t\t\t\tif(s) gc = true;\n\t\t\t\telse { cfb.FileIndex.pop(); cfb.FullPaths.pop(); }\n\t\t\t\tbreak;\n\t\t\tcase 1: case 2: case 5:\n\t\t\t\ts = true;\n\t\t\t\tif(isNaN(_file.R * _file.L * _file.C)) gc = true;\n\t\t\t\tif(_file.R > -1 && _file.L > -1 && _file.R == _file.L) gc = true;\n\t\t\t\tbreak;\n\t\t\tdefault: gc = true; break;\n\t\t}\n\t}\n\tif(!gc && !f) return;\n\n\tvar now = new Date(1987, 1, 19), j = 0;\n\t// Track which names exist\n\tvar fullPaths = Object.create ? Object.create(null) : {};\n\tvar data/*:Array<[string, CFBEntry]>*/ = [];\n\tfor(i = 0; i < cfb.FullPaths.length; ++i) {\n\t\tfullPaths[cfb.FullPaths[i]] = true;\n\t\tif(cfb.FileIndex[i].type === 0) continue;\n\t\tdata.push([cfb.FullPaths[i], cfb.FileIndex[i]]);\n\t}\n\tfor(i = 0; i < data.length; ++i) {\n\t\tvar dad = dirname(data[i][0]);\n\t\ts = fullPaths[dad];\n\t\twhile(!s) {\n\t\t\twhile(dirname(dad) && !fullPaths[dirname(dad)]) dad = dirname(dad);\n\n\t\t\tdata.push([dad, ({\n\t\t\t\tname: filename(dad).replace(\"/\",\"\"),\n\t\t\t\ttype: 1,\n\t\t\t\tclsid: HEADER_CLSID,\n\t\t\t\tct: now, mt: now,\n\t\t\t\tcontent: null\n\t\t\t}/*:any*/)]);\n\n\t\t\t// Add name to set\n\t\t\tfullPaths[dad] = true;\n\n\t\t\tdad = dirname(data[i][0]);\n\t\t\ts = fullPaths[dad];\n\t\t}\n\t}\n\n\tdata.sort(function(x,y) { return namecmp(x[0], y[0]); });\n\tcfb.FullPaths = []; cfb.FileIndex = [];\n\tfor(i = 0; i < data.length; ++i) { cfb.FullPaths[i] = data[i][0]; cfb.FileIndex[i] = data[i][1]; }\n\tfor(i = 0; i < data.length; ++i) {\n\t\tvar elt = cfb.FileIndex[i];\n\t\tvar nm = cfb.FullPaths[i];\n\n\t\telt.name = filename(nm).replace(\"/\",\"\");\n\t\telt.L = elt.R = elt.C = -(elt.color = 1);\n\t\telt.size = elt.content ? elt.content.length : 0;\n\t\telt.start = 0;\n\t\telt.clsid = (elt.clsid || HEADER_CLSID);\n\t\tif(i === 0) {\n\t\t\telt.C = data.length > 1 ? 1 : -1;\n\t\t\telt.size = 0;\n\t\t\telt.type = 5;\n\t\t} else if(nm.slice(-1) == \"/\") {\n\t\t\tfor(j=i+1;j < data.length; ++j) if(dirname(cfb.FullPaths[j])==nm) break;\n\t\t\telt.C = j >= data.length ? -1 : j;\n\t\t\tfor(j=i+1;j < data.length; ++j) if(dirname(cfb.FullPaths[j])==dirname(nm)) break;\n\t\t\telt.R = j >= data.length ? -1 : j;\n\t\t\telt.type = 1;\n\t\t} else {\n\t\t\tif(dirname(cfb.FullPaths[i+1]||\"\") == dirname(nm)) elt.R = i + 1;\n\t\t\telt.type = 2;\n\t\t}\n\t}\n\n}\n\nfunction _write(cfb/*:CFBContainer*/, options/*:CFBWriteOpts*/)/*:RawBytes|string*/ {\n\tvar _opts = options || {};\n\t/* MAD is order-sensitive, skip rebuild and sort */\n\tif(_opts.fileType == 'mad') return write_mad(cfb, _opts);\n\trebuild_cfb(cfb);\n\tswitch(_opts.fileType) {\n\t\tcase 'zip': return write_zip(cfb, _opts);\n\t\t//case 'mad': return write_mad(cfb, _opts);\n\t}\n\tvar L = (function(cfb/*:CFBContainer*/)/*:Array*/{\n\t\tvar mini_size = 0, fat_size = 0;\n\t\tfor(var i = 0; i < cfb.FileIndex.length; ++i) {\n\t\t\tvar file = cfb.FileIndex[i];\n\t\t\tif(!file.content) continue;\n\t\t\tvar flen = file.content.length;\n\t\t\tif(flen > 0){\n\t\t\t\tif(flen < 0x1000) mini_size += (flen + 0x3F) >> 6;\n\t\t\t\telse fat_size += (flen + 0x01FF) >> 9;\n\t\t\t}\n\t\t}\n\t\tvar dir_cnt = (cfb.FullPaths.length +3) >> 2;\n\t\tvar mini_cnt = (mini_size + 7) >> 3;\n\t\tvar mfat_cnt = (mini_size + 0x7F) >> 7;\n\t\tvar fat_base = mini_cnt + fat_size + dir_cnt + mfat_cnt;\n\t\tvar fat_cnt = (fat_base + 0x7F) >> 7;\n\t\tvar difat_cnt = fat_cnt <= 109 ? 0 : Math.ceil((fat_cnt-109)/0x7F);\n\t\twhile(((fat_base + fat_cnt + difat_cnt + 0x7F) >> 7) > fat_cnt) difat_cnt = ++fat_cnt <= 109 ? 0 : Math.ceil((fat_cnt-109)/0x7F);\n\t\tvar L = [1, difat_cnt, fat_cnt, mfat_cnt, dir_cnt, fat_size, mini_size, 0];\n\t\tcfb.FileIndex[0].size = mini_size << 6;\n\t\tL[7] = (cfb.FileIndex[0].start=L[0]+L[1]+L[2]+L[3]+L[4]+L[5])+((L[6]+7) >> 3);\n\t\treturn L;\n\t})(cfb);\n\tvar o = new_buf(L[7] << 9);\n\tvar i = 0, T = 0;\n\t{\n\t\tfor(i = 0; i < 8; ++i) o.write_shift(1, HEADER_SIG[i]);\n\t\tfor(i = 0; i < 8; ++i) o.write_shift(2, 0);\n\t\to.write_shift(2, 0x003E);\n\t\to.write_shift(2, 0x0003);\n\t\to.write_shift(2, 0xFFFE);\n\t\to.write_shift(2, 0x0009);\n\t\to.write_shift(2, 0x0006);\n\t\tfor(i = 0; i < 3; ++i) o.write_shift(2, 0);\n\t\to.write_shift(4, 0);\n\t\to.write_shift(4, L[2]);\n\t\to.write_shift(4, L[0] + L[1] + L[2] + L[3] - 1);\n\t\to.write_shift(4, 0);\n\t\to.write_shift(4, 1<<12);\n\t\to.write_shift(4, L[3] ? L[0] + L[1] + L[2] - 1: ENDOFCHAIN);\n\t\to.write_shift(4, L[3]);\n\t\to.write_shift(-4, L[1] ? L[0] - 1: ENDOFCHAIN);\n\t\to.write_shift(4, L[1]);\n\t\tfor(i = 0; i < 109; ++i) o.write_shift(-4, i < L[2] ? L[1] + i : -1);\n\t}\n\tif(L[1]) {\n\t\tfor(T = 0; T < L[1]; ++T) {\n\t\t\tfor(; i < 236 + T * 127; ++i) o.write_shift(-4, i < L[2] ? L[1] + i : -1);\n\t\t\to.write_shift(-4, T === L[1] - 1 ? ENDOFCHAIN : T + 1);\n\t\t}\n\t}\n\tvar chainit = function(w/*:number*/)/*:void*/ {\n\t\tfor(T += w; i> 9);\n\t}\n\tchainit((L[6] + 7) >> 3);\n\twhile(o.l & 0x1FF) o.write_shift(-4, consts.ENDOFCHAIN);\n\tT = i = 0;\n\tfor(j = 0; j < cfb.FileIndex.length; ++j) {\n\t\tfile = cfb.FileIndex[j];\n\t\tif(!file.content) continue;\n\t\t/*:: if(file.content == null) throw new Error(\"unreachable\"); */\n\t\tflen = file.content.length;\n\t\tif(!flen || flen >= 0x1000) continue;\n\t\tfile.start = T;\n\t\tchainit((flen + 0x3F) >> 6);\n\t}\n\twhile(o.l & 0x1FF) o.write_shift(-4, consts.ENDOFCHAIN);\n\tfor(i = 0; i < L[4]<<2; ++i) {\n\t\tvar nm = cfb.FullPaths[i];\n\t\tif(!nm || nm.length === 0) {\n\t\t\tfor(j = 0; j < 17; ++j) o.write_shift(4, 0);\n\t\t\tfor(j = 0; j < 3; ++j) o.write_shift(4, -1);\n\t\t\tfor(j = 0; j < 12; ++j) o.write_shift(4, 0);\n\t\t\tcontinue;\n\t\t}\n\t\tfile = cfb.FileIndex[i];\n\t\tif(i === 0) file.start = file.size ? file.start - 1 : ENDOFCHAIN;\n\t\tvar _nm/*:string*/ = (i === 0 && _opts.root) || file.name;\n\t\tif(_nm.length > 32) {\n\t\t\tconsole.error(\"Name \" + _nm + \" will be truncated to \" + _nm.slice(0,32));\n\t\t\t_nm = _nm.slice(0, 32);\n\t\t}\n\t\tflen = 2*(_nm.length+1);\n\t\to.write_shift(64, _nm, \"utf16le\");\n\t\to.write_shift(2, flen);\n\t\to.write_shift(1, file.type);\n\t\to.write_shift(1, file.color);\n\t\to.write_shift(-4, file.L);\n\t\to.write_shift(-4, file.R);\n\t\to.write_shift(-4, file.C);\n\t\tif(!file.clsid) for(j = 0; j < 4; ++j) o.write_shift(4, 0);\n\t\telse o.write_shift(16, file.clsid, \"hex\");\n\t\to.write_shift(4, file.state || 0);\n\t\to.write_shift(4, 0); o.write_shift(4, 0);\n\t\to.write_shift(4, 0); o.write_shift(4, 0);\n\t\to.write_shift(4, file.start);\n\t\to.write_shift(4, file.size); o.write_shift(4, 0);\n\t}\n\tfor(i = 1; i < cfb.FileIndex.length; ++i) {\n\t\tfile = cfb.FileIndex[i];\n\t\t/*:: if(!file.content) throw new Error(\"unreachable\"); */\n\t\tif(file.size >= 0x1000) {\n\t\t\to.l = (file.start+1) << 9;\n\t\t\tif (has_buf && Buffer.isBuffer(file.content)) {\n\t\t\t\tfile.content.copy(o, o.l, 0, file.size);\n\t\t\t\t// o is a 0-filled Buffer so just set next offset\n\t\t\t\to.l += (file.size + 511) & -512;\n\t\t\t} else {\n\t\t\t\tfor(j = 0; j < file.size; ++j) o.write_shift(1, file.content[j]);\n\t\t\t\tfor(; j & 0x1FF; ++j) o.write_shift(1, 0);\n\t\t\t}\n\t\t}\n\t}\n\tfor(i = 1; i < cfb.FileIndex.length; ++i) {\n\t\tfile = cfb.FileIndex[i];\n\t\t/*:: if(!file.content) throw new Error(\"unreachable\"); */\n\t\tif(file.size > 0 && file.size < 0x1000) {\n\t\t\tif (has_buf && Buffer.isBuffer(file.content)) {\n\t\t\t\tfile.content.copy(o, o.l, 0, file.size);\n\t\t\t\t// o is a 0-filled Buffer so just set next offset\n\t\t\t\to.l += (file.size + 63) & -64;\n\t\t\t} else {\n\t\t\t\tfor(j = 0; j < file.size; ++j) o.write_shift(1, file.content[j]);\n\t\t\t\tfor(; j & 0x3F; ++j) o.write_shift(1, 0);\n\t\t\t}\n\t\t}\n\t}\n\tif (has_buf) {\n\t\to.l = o.length;\n\t} else {\n\t\t// When using Buffer, already 0-filled\n\t\twhile(o.l < o.length) o.write_shift(1, 0);\n\t}\n\treturn o;\n}\n/* [MS-CFB] 2.6.4 (Unicode 3.0.1 case conversion) */\nfunction find(cfb/*:CFBContainer*/, path/*:string*/)/*:?CFBEntry*/ {\n\tvar UCFullPaths/*:Array*/ = cfb.FullPaths.map(function(x) { return x.toUpperCase(); });\n\tvar UCPaths/*:Array*/ = UCFullPaths.map(function(x) { var y = x.split(\"/\"); return y[y.length - (x.slice(-1) == \"/\" ? 2 : 1)]; });\n\tvar k/*:boolean*/ = false;\n\tif(path.charCodeAt(0) === 47 /* \"/\" */) { k = true; path = UCFullPaths[0].slice(0, -1) + path; }\n\telse k = path.indexOf(\"/\") !== -1;\n\tvar UCPath/*:string*/ = path.toUpperCase();\n\tvar w/*:number*/ = k === true ? UCFullPaths.indexOf(UCPath) : UCPaths.indexOf(UCPath);\n\tif(w !== -1) return cfb.FileIndex[w];\n\n\tvar m = !UCPath.match(chr1);\n\tUCPath = UCPath.replace(chr0,'');\n\tif(m) UCPath = UCPath.replace(chr1,'!');\n\tfor(w = 0; w < UCFullPaths.length; ++w) {\n\t\tif((m ? UCFullPaths[w].replace(chr1,'!') : UCFullPaths[w]).replace(chr0,'') == UCPath) return cfb.FileIndex[w];\n\t\tif((m ? UCPaths[w].replace(chr1,'!') : UCPaths[w]).replace(chr0,'') == UCPath) return cfb.FileIndex[w];\n\t}\n\treturn null;\n}\n/** CFB Constants */\nvar MSSZ = 64; /* Mini Sector Size = 1<<6 */\n//var MSCSZ = 4096; /* Mini Stream Cutoff Size */\n/* 2.1 Compound File Sector Numbers and Types */\nvar ENDOFCHAIN = -2;\n/* 2.2 Compound File Header */\nvar HEADER_SIGNATURE = 'd0cf11e0a1b11ae1';\nvar HEADER_SIG = [0xD0, 0xCF, 0x11, 0xE0, 0xA1, 0xB1, 0x1A, 0xE1];\nvar HEADER_CLSID = '00000000000000000000000000000000';\nvar consts = {\n\t/* 2.1 Compund File Sector Numbers and Types */\n\tMAXREGSECT: -6,\n\tDIFSECT: -4,\n\tFATSECT: -3,\n\tENDOFCHAIN: ENDOFCHAIN,\n\tFREESECT: -1,\n\t/* 2.2 Compound File Header */\n\tHEADER_SIGNATURE: HEADER_SIGNATURE,\n\tHEADER_MINOR_VERSION: '3e00',\n\tMAXREGSID: -6,\n\tNOSTREAM: -1,\n\tHEADER_CLSID: HEADER_CLSID,\n\t/* 2.6.1 Compound File Directory Entry */\n\tEntryTypes: ['unknown','storage','stream','lockbytes','property','root']\n};\n\nfunction write_file(cfb/*:CFBContainer*/, filename/*:string*/, options/*:CFBWriteOpts*/)/*:void*/ {\n\tget_fs();\n\tvar o = _write(cfb, options);\n\t/*:: if(typeof Buffer == 'undefined' || !Buffer.isBuffer(o) || !(o instanceof Buffer)) throw new Error(\"unreachable\"); */\n\tfs.writeFileSync(filename, o);\n}\n\nfunction a2s(o/*:RawBytes*/)/*:string*/ {\n\tvar out = new Array(o.length);\n\tfor(var i = 0; i < o.length; ++i) out[i] = String.fromCharCode(o[i]);\n\treturn out.join(\"\");\n}\n\nfunction write(cfb/*:CFBContainer*/, options/*:CFBWriteOpts*/)/*:RawBytes|string*/ {\n\tvar o = _write(cfb, options);\n\tswitch(options && options.type || \"buffer\") {\n\t\tcase \"file\": get_fs(); fs.writeFileSync(options.filename, (o/*:any*/)); return o;\n\t\tcase \"binary\": return typeof o == \"string\" ? o : a2s(o);\n\t\tcase \"base64\": return Base64_encode(typeof o == \"string\" ? o : a2s(o));\n\t\tcase \"buffer\": if(has_buf) return Buffer.isBuffer(o) ? o : Buffer_from(o);\n\t\t\t/* falls through */\n\t\tcase \"array\": return typeof o == \"string\" ? s2a(o) : o;\n\t}\n\treturn o;\n}\n/* node < 8.1 zlib does not expose bytesRead, so default to pure JS */\nvar _zlib;\nfunction use_zlib(zlib) { try {\n\tvar InflateRaw = zlib.InflateRaw;\n\tvar InflRaw = new InflateRaw();\n\tInflRaw._processChunk(new Uint8Array([3, 0]), InflRaw._finishFlushFlag);\n\tif(InflRaw.bytesRead) _zlib = zlib;\n\telse throw new Error(\"zlib does not expose bytesRead\");\n} catch(e) {console.error(\"cannot use native zlib: \" + (e.message || e)); } }\n\nfunction _inflateRawSync(payload, usz) {\n\tif(!_zlib) return _inflate(payload, usz);\n\tvar InflateRaw = _zlib.InflateRaw;\n\tvar InflRaw = new InflateRaw();\n\tvar out = InflRaw._processChunk(payload.slice(payload.l), InflRaw._finishFlushFlag);\n\tpayload.l += InflRaw.bytesRead;\n\treturn out;\n}\n\nfunction _deflateRawSync(payload) {\n\treturn _zlib ? _zlib.deflateRawSync(payload) : _deflate(payload);\n}\nvar CLEN_ORDER = [ 16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15 ];\n\n/* LEN_ID = [ 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285 ]; */\nvar LEN_LN = [ 3, 4, 5, 6, 7, 8, 9, 10, 11, 13 , 15, 17, 19, 23, 27, 31, 35, 43, 51, 59, 67, 83, 99, 115, 131, 163, 195, 227, 258 ];\n\n/* DST_ID = [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29 ]; */\nvar DST_LN = [ 1, 2, 3, 4, 5, 7, 9, 13, 17, 25, 33, 49, 65, 97, 129, 193, 257, 385, 513, 769, 1025, 1537, 2049, 3073, 4097, 6145, 8193, 12289, 16385, 24577 ];\n\nfunction bit_swap_8(n) { var t = (((((n<<1)|(n<<11)) & 0x22110) | (((n<<5)|(n<<15)) & 0x88440))); return ((t>>16) | (t>>8) |t)&0xFF; }\n\nvar use_typed_arrays = typeof Uint8Array !== 'undefined';\n\nvar bitswap8 = use_typed_arrays ? new Uint8Array(1<<8) : [];\nfor(var q = 0; q < (1<<8); ++q) bitswap8[q] = bit_swap_8(q);\n\nfunction bit_swap_n(n, b) {\n\tvar rev = bitswap8[n & 0xFF];\n\tif(b <= 8) return rev >>> (8-b);\n\trev = (rev << 8) | bitswap8[(n>>8)&0xFF];\n\tif(b <= 16) return rev >>> (16-b);\n\trev = (rev << 8) | bitswap8[(n>>16)&0xFF];\n\treturn rev >>> (24-b);\n}\n\n/* helpers for unaligned bit reads */\nfunction read_bits_2(buf, bl) { var w = (bl&7), h = (bl>>>3); return ((buf[h]|(w <= 6 ? 0 : buf[h+1]<<8))>>>w)& 0x03; }\nfunction read_bits_3(buf, bl) { var w = (bl&7), h = (bl>>>3); return ((buf[h]|(w <= 5 ? 0 : buf[h+1]<<8))>>>w)& 0x07; }\nfunction read_bits_4(buf, bl) { var w = (bl&7), h = (bl>>>3); return ((buf[h]|(w <= 4 ? 0 : buf[h+1]<<8))>>>w)& 0x0F; }\nfunction read_bits_5(buf, bl) { var w = (bl&7), h = (bl>>>3); return ((buf[h]|(w <= 3 ? 0 : buf[h+1]<<8))>>>w)& 0x1F; }\nfunction read_bits_7(buf, bl) { var w = (bl&7), h = (bl>>>3); return ((buf[h]|(w <= 1 ? 0 : buf[h+1]<<8))>>>w)& 0x7F; }\n\n/* works up to n = 3 * 8 + 1 = 25 */\nfunction read_bits_n(buf, bl, n) {\n\tvar w = (bl&7), h = (bl>>>3), f = ((1<>> w;\n\tif(n < 8 - w) return v & f;\n\tv |= buf[h+1]<<(8-w);\n\tif(n < 16 - w) return v & f;\n\tv |= buf[h+2]<<(16-w);\n\tif(n < 24 - w) return v & f;\n\tv |= buf[h+3]<<(24-w);\n\treturn v & f;\n}\n\n/* helpers for unaligned bit writes */\nfunction write_bits_3(buf, bl, v) { var w = bl & 7, h = bl >>> 3;\n\tif(w <= 5) buf[h] |= (v & 7) << w;\n\telse {\n\t\tbuf[h] |= (v << w) & 0xFF;\n\t\tbuf[h+1] = (v&7) >> (8-w);\n\t}\n\treturn bl + 3;\n}\n\nfunction write_bits_1(buf, bl, v) {\n\tvar w = bl & 7, h = bl >>> 3;\n\tv = (v&1) << w;\n\tbuf[h] |= v;\n\treturn bl + 1;\n}\nfunction write_bits_8(buf, bl, v) {\n\tvar w = bl & 7, h = bl >>> 3;\n\tv <<= w;\n\tbuf[h] |= v & 0xFF; v >>>= 8;\n\tbuf[h+1] = v;\n\treturn bl + 8;\n}\nfunction write_bits_16(buf, bl, v) {\n\tvar w = bl & 7, h = bl >>> 3;\n\tv <<= w;\n\tbuf[h] |= v & 0xFF; v >>>= 8;\n\tbuf[h+1] = v & 0xFF;\n\tbuf[h+2] = v >>> 8;\n\treturn bl + 16;\n}\n\n/* until ArrayBuffer#realloc is a thing, fake a realloc */\nfunction realloc(b, sz/*:number*/) {\n\tvar L = b.length, M = 2*L > sz ? 2*L : sz + 5, i = 0;\n\tif(L >= sz) return b;\n\tif(has_buf) {\n\t\tvar o = new_unsafe_buf(M);\n\t\t// $FlowIgnore\n\t\tif(b.copy) b.copy(o);\n\t\telse for(; i < b.length; ++i) o[i] = b[i];\n\t\treturn o;\n\t} else if(use_typed_arrays) {\n\t\tvar a = new Uint8Array(M);\n\t\tif(a.set) a.set(b);\n\t\telse for(; i < L; ++i) a[i] = b[i];\n\t\treturn a;\n\t}\n\tb.length = M;\n\treturn b;\n}\n\n/* zero-filled arrays for older browsers */\nfunction zero_fill_array(n) {\n\tvar o = new Array(n);\n\tfor(var i = 0; i < n; ++i) o[i] = 0;\n\treturn o;\n}\n\n/* build tree (used for literals and lengths) */\nfunction build_tree(clens, cmap, MAX/*:number*/)/*:number*/ {\n\tvar maxlen = 1, w = 0, i = 0, j = 0, ccode = 0, L = clens.length;\n\n\tvar bl_count = use_typed_arrays ? new Uint16Array(32) : zero_fill_array(32);\n\tfor(i = 0; i < 32; ++i) bl_count[i] = 0;\n\n\tfor(i = L; i < MAX; ++i) clens[i] = 0;\n\tL = clens.length;\n\n\tvar ctree = use_typed_arrays ? new Uint16Array(L) : zero_fill_array(L); // []\n\n\t/* build code tree */\n\tfor(i = 0; i < L; ++i) {\n\t\tbl_count[(w = clens[i])]++;\n\t\tif(maxlen < w) maxlen = w;\n\t\tctree[i] = 0;\n\t}\n\tbl_count[0] = 0;\n\tfor(i = 1; i <= maxlen; ++i) bl_count[i+16] = (ccode = (ccode + bl_count[i-1])<<1);\n\tfor(i = 0; i < L; ++i) {\n\t\tccode = clens[i];\n\t\tif(ccode != 0) ctree[i] = bl_count[ccode+16]++;\n\t}\n\n\t/* cmap[maxlen + 4 bits] = (off&15) + (lit<<4) reverse mapping */\n\tvar cleni = 0;\n\tfor(i = 0; i < L; ++i) {\n\t\tcleni = clens[i];\n\t\tif(cleni != 0) {\n\t\t\tccode = bit_swap_n(ctree[i], maxlen)>>(maxlen-cleni);\n\t\t\tfor(j = (1<<(maxlen + 4 - cleni)) - 1; j>=0; --j)\n\t\t\t\tcmap[ccode|(j<*/ = [];\n\tvar i = 0;\n\tfor(;i<32; i++) dlens.push(5);\n\tbuild_tree(dlens, fix_dmap, 32);\n\n\tvar clens/*:Array*/ = [];\n\ti = 0;\n\tfor(; i<=143; i++) clens.push(8);\n\tfor(; i<=255; i++) clens.push(9);\n\tfor(; i<=279; i++) clens.push(7);\n\tfor(; i<=287; i++) clens.push(8);\n\tbuild_tree(clens, fix_lmap, 288);\n})();var _deflateRaw = /*#__PURE__*/(function _deflateRawIIFE() {\n\tvar DST_LN_RE = use_typed_arrays ? new Uint8Array(0x8000) : [];\n\tvar j = 0, k = 0;\n\tfor(; j < DST_LN.length - 1; ++j) {\n\t\tfor(; k < DST_LN[j+1]; ++k) DST_LN_RE[k] = j;\n\t}\n\tfor(;k < 32768; ++k) DST_LN_RE[k] = 29;\n\n\tvar LEN_LN_RE = use_typed_arrays ? new Uint8Array(0x103) : [];\n\tfor(j = 0, k = 0; j < LEN_LN.length - 1; ++j) {\n\t\tfor(; k < LEN_LN[j+1]; ++k) LEN_LN_RE[k] = j;\n\t}\n\n\tfunction write_stored(data, out) {\n\t\tvar boff = 0;\n\t\twhile(boff < data.length) {\n\t\t\tvar L = Math.min(0xFFFF, data.length - boff);\n\t\t\tvar h = boff + L == data.length;\n\t\t\tout.write_shift(1, +h);\n\t\t\tout.write_shift(2, L);\n\t\t\tout.write_shift(2, (~L) & 0xFFFF);\n\t\t\twhile(L-- > 0) out[out.l++] = data[boff++];\n\t\t}\n\t\treturn out.l;\n\t}\n\n\t/* Fixed Huffman */\n\tfunction write_huff_fixed(data, out) {\n\t\tvar bl = 0;\n\t\tvar boff = 0;\n\t\tvar addrs = use_typed_arrays ? new Uint16Array(0x8000) : [];\n\t\twhile(boff < data.length) {\n\t\t\tvar L = /* data.length - boff; */ Math.min(0xFFFF, data.length - boff);\n\n\t\t\t/* write a stored block for short data */\n\t\t\tif(L < 10) {\n\t\t\t\tbl = write_bits_3(out, bl, +!!(boff + L == data.length)); // jshint ignore:line\n\t\t\t\tif(bl & 7) bl += 8 - (bl & 7);\n\t\t\t\tout.l = (bl / 8) | 0;\n\t\t\t\tout.write_shift(2, L);\n\t\t\t\tout.write_shift(2, (~L) & 0xFFFF);\n\t\t\t\twhile(L-- > 0) out[out.l++] = data[boff++];\n\t\t\t\tbl = out.l * 8;\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tbl = write_bits_3(out, bl, +!!(boff + L == data.length) + 2); // jshint ignore:line\n\t\t\tvar hash = 0;\n\t\t\twhile(L-- > 0) {\n\t\t\t\tvar d = data[boff];\n\t\t\t\thash = ((hash << 5) ^ d) & 0x7FFF;\n\n\t\t\t\tvar match = -1, mlen = 0;\n\n\t\t\t\tif((match = addrs[hash])) {\n\t\t\t\t\tmatch |= boff & ~0x7FFF;\n\t\t\t\t\tif(match > boff) match -= 0x8000;\n\t\t\t\t\tif(match < boff) while(data[match + mlen] == data[boff + mlen] && mlen < 250) ++mlen;\n\t\t\t\t}\n\n\t\t\t\tif(mlen > 2) {\n\t\t\t\t\t/* Copy Token */\n\t\t\t\t\td = LEN_LN_RE[mlen];\n\t\t\t\t\tif(d <= 22) bl = write_bits_8(out, bl, bitswap8[d+1]>>1) - 1;\n\t\t\t\t\telse {\n\t\t\t\t\t\twrite_bits_8(out, bl, 3);\n\t\t\t\t\t\tbl += 5;\n\t\t\t\t\t\twrite_bits_8(out, bl, bitswap8[d-23]>>5);\n\t\t\t\t\t\tbl += 3;\n\t\t\t\t\t}\n\t\t\t\t\tvar len_eb = (d < 8) ? 0 : ((d - 4)>>2);\n\t\t\t\t\tif(len_eb > 0) {\n\t\t\t\t\t\twrite_bits_16(out, bl, mlen - LEN_LN[d]);\n\t\t\t\t\t\tbl += len_eb;\n\t\t\t\t\t}\n\n\t\t\t\t\td = DST_LN_RE[boff - match];\n\t\t\t\t\tbl = write_bits_8(out, bl, bitswap8[d]>>3);\n\t\t\t\t\tbl -= 3;\n\n\t\t\t\t\tvar dst_eb = d < 4 ? 0 : (d-2)>>1;\n\t\t\t\t\tif(dst_eb > 0) {\n\t\t\t\t\t\twrite_bits_16(out, bl, boff - match - DST_LN[d]);\n\t\t\t\t\t\tbl += dst_eb;\n\t\t\t\t\t}\n\t\t\t\t\tfor(var q = 0; q < mlen; ++q) {\n\t\t\t\t\t\taddrs[hash] = boff & 0x7FFF;\n\t\t\t\t\t\thash = ((hash << 5) ^ data[boff]) & 0x7FFF;\n\t\t\t\t\t\t++boff;\n\t\t\t\t\t}\n\t\t\t\t\tL-= mlen - 1;\n\t\t\t\t} else {\n\t\t\t\t\t/* Literal Token */\n\t\t\t\t\tif(d <= 143) d = d + 48;\n\t\t\t\t\telse bl = write_bits_1(out, bl, 1);\n\t\t\t\t\tbl = write_bits_8(out, bl, bitswap8[d]);\n\t\t\t\t\taddrs[hash] = boff & 0x7FFF;\n\t\t\t\t\t++boff;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tbl = write_bits_8(out, bl, 0) - 1;\n\t\t}\n\t\tout.l = ((bl + 7)/8)|0;\n\t\treturn out.l;\n\t}\n\treturn function _deflateRaw(data, out) {\n\t\tif(data.length < 8) return write_stored(data, out);\n\t\treturn write_huff_fixed(data, out);\n\t};\n})();\n\nfunction _deflate(data) {\n\tvar buf = new_buf(50+Math.floor(data.length*1.1));\n\tvar off = _deflateRaw(data, buf);\n\treturn buf.slice(0, off);\n}\n/* modified inflate function also moves original read head */\n\nvar dyn_lmap = use_typed_arrays ? new Uint16Array(32768) : zero_fill_array(32768);\nvar dyn_dmap = use_typed_arrays ? new Uint16Array(32768) : zero_fill_array(32768);\nvar dyn_cmap = use_typed_arrays ? new Uint16Array(128) : zero_fill_array(128);\nvar dyn_len_1 = 1, dyn_len_2 = 1;\n\n/* 5.5.3 Expanding Huffman Codes */\nfunction dyn(data, boff/*:number*/) {\n\t/* nomenclature from RFC1951 refers to bit values; these are offset by the implicit constant */\n\tvar _HLIT = read_bits_5(data, boff) + 257; boff += 5;\n\tvar _HDIST = read_bits_5(data, boff) + 1; boff += 5;\n\tvar _HCLEN = read_bits_4(data, boff) + 4; boff += 4;\n\tvar w = 0;\n\n\t/* grab and store code lengths */\n\tvar clens = use_typed_arrays ? new Uint8Array(19) : zero_fill_array(19);\n\tvar ctree = [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ];\n\tvar maxlen = 1;\n\tvar bl_count = use_typed_arrays ? new Uint8Array(8) : zero_fill_array(8);\n\tvar next_code = use_typed_arrays ? new Uint8Array(8) : zero_fill_array(8);\n\tvar L = clens.length; /* 19 */\n\tfor(var i = 0; i < _HCLEN; ++i) {\n\t\tclens[CLEN_ORDER[i]] = w = read_bits_3(data, boff);\n\t\tif(maxlen < w) maxlen = w;\n\t\tbl_count[w]++;\n\t\tboff += 3;\n\t}\n\n\t/* build code tree */\n\tvar ccode = 0;\n\tbl_count[0] = 0;\n\tfor(i = 1; i <= maxlen; ++i) next_code[i] = ccode = (ccode + bl_count[i-1])<<1;\n\tfor(i = 0; i < L; ++i) if((ccode = clens[i]) != 0) ctree[i] = next_code[ccode]++;\n\t/* cmap[7 bits from stream] = (off&7) + (lit<<3) */\n\tvar cleni = 0;\n\tfor(i = 0; i < L; ++i) {\n\t\tcleni = clens[i];\n\t\tif(cleni != 0) {\n\t\t\tccode = bitswap8[ctree[i]]>>(8-cleni);\n\t\t\tfor(var j = (1<<(7-cleni))-1; j>=0; --j) dyn_cmap[ccode|(j<*/ = [];\n\tmaxlen = 1;\n\tfor(; hcodes.length < _HLIT + _HDIST;) {\n\t\tccode = dyn_cmap[read_bits_7(data, boff)];\n\t\tboff += ccode & 7;\n\t\tswitch((ccode >>>= 3)) {\n\t\t\tcase 16:\n\t\t\t\tw = 3 + read_bits_2(data, boff); boff += 2;\n\t\t\t\tccode = hcodes[hcodes.length - 1];\n\t\t\t\twhile(w-- > 0) hcodes.push(ccode);\n\t\t\t\tbreak;\n\t\t\tcase 17:\n\t\t\t\tw = 3 + read_bits_3(data, boff); boff += 3;\n\t\t\t\twhile(w-- > 0) hcodes.push(0);\n\t\t\t\tbreak;\n\t\t\tcase 18:\n\t\t\t\tw = 11 + read_bits_7(data, boff); boff += 7;\n\t\t\t\twhile(w -- > 0) hcodes.push(0);\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\thcodes.push(ccode);\n\t\t\t\tif(maxlen < ccode) maxlen = ccode;\n\t\t\t\tbreak;\n\t\t}\n\t}\n\n\t/* build literal / length trees */\n\tvar h1 = hcodes.slice(0, _HLIT), h2 = hcodes.slice(_HLIT);\n\tfor(i = _HLIT; i < 286; ++i) h1[i] = 0;\n\tfor(i = _HDIST; i < 30; ++i) h2[i] = 0;\n\tdyn_len_1 = build_tree(h1, dyn_lmap, 286);\n\tdyn_len_2 = build_tree(h2, dyn_dmap, 30);\n\treturn boff;\n}\n\n/* return [ data, bytesRead ] */\nfunction inflate(data, usz/*:number*/) {\n\t/* shortcircuit for empty buffer [0x03, 0x00] */\n\tif(data[0] == 3 && !(data[1] & 0x3)) { return [new_raw_buf(usz), 2]; }\n\n\t/* bit offset */\n\tvar boff = 0;\n\n\t/* header includes final bit and type bits */\n\tvar header = 0;\n\n\tvar outbuf = new_unsafe_buf(usz ? usz : (1<<18));\n\tvar woff = 0;\n\tvar OL = outbuf.length>>>0;\n\tvar max_len_1 = 0, max_len_2 = 0;\n\n\twhile((header&1) == 0) {\n\t\theader = read_bits_3(data, boff); boff += 3;\n\t\tif((header >>> 1) == 0) {\n\t\t\t/* Stored block */\n\t\t\tif(boff & 7) boff += 8 - (boff&7);\n\t\t\t/* 2 bytes sz, 2 bytes bit inverse */\n\t\t\tvar sz = data[boff>>>3] | data[(boff>>>3)+1]<<8;\n\t\t\tboff += 32;\n\t\t\t/* push sz bytes */\n\t\t\tif(sz > 0) {\n\t\t\t\tif(!usz && OL < woff + sz) { outbuf = realloc(outbuf, woff + sz); OL = outbuf.length; }\n\t\t\t\twhile(sz-- > 0) { outbuf[woff++] = data[boff>>>3]; boff += 8; }\n\t\t\t}\n\t\t\tcontinue;\n\t\t} else if((header >> 1) == 1) {\n\t\t\t/* Fixed Huffman */\n\t\t\tmax_len_1 = 9; max_len_2 = 5;\n\t\t} else {\n\t\t\t/* Dynamic Huffman */\n\t\t\tboff = dyn(data, boff);\n\t\t\tmax_len_1 = dyn_len_1; max_len_2 = dyn_len_2;\n\t\t}\n\t\tfor(;;) { // while(true) is apparently out of vogue in modern JS circles\n\t\t\tif(!usz && (OL < woff + 32767)) { outbuf = realloc(outbuf, woff + 32767); OL = outbuf.length; }\n\t\t\t/* ingest code and move read head */\n\t\t\tvar bits = read_bits_n(data, boff, max_len_1);\n\t\t\tvar code = (header>>>1) == 1 ? fix_lmap[bits] : dyn_lmap[bits];\n\t\t\tboff += code & 15; code >>>= 4;\n\t\t\t/* 0-255 are literals, 256 is end of block token, 257+ are copy tokens */\n\t\t\tif(((code>>>8)&0xFF) === 0) outbuf[woff++] = code;\n\t\t\telse if(code == 256) break;\n\t\t\telse {\n\t\t\t\tcode -= 257;\n\t\t\t\tvar len_eb = (code < 8) ? 0 : ((code-4)>>2); if(len_eb > 5) len_eb = 0;\n\t\t\t\tvar tgt = woff + LEN_LN[code];\n\t\t\t\t/* length extra bits */\n\t\t\t\tif(len_eb > 0) {\n\t\t\t\t\ttgt += read_bits_n(data, boff, len_eb);\n\t\t\t\t\tboff += len_eb;\n\t\t\t\t}\n\n\t\t\t\t/* dist code */\n\t\t\t\tbits = read_bits_n(data, boff, max_len_2);\n\t\t\t\tcode = (header>>>1) == 1 ? fix_dmap[bits] : dyn_dmap[bits];\n\t\t\t\tboff += code & 15; code >>>= 4;\n\t\t\t\tvar dst_eb = (code < 4 ? 0 : (code-2)>>1);\n\t\t\t\tvar dst = DST_LN[code];\n\t\t\t\t/* dist extra bits */\n\t\t\t\tif(dst_eb > 0) {\n\t\t\t\t\tdst += read_bits_n(data, boff, dst_eb);\n\t\t\t\t\tboff += dst_eb;\n\t\t\t\t}\n\n\t\t\t\t/* in the common case, manual byte copy is faster than TA set / Buffer copy */\n\t\t\t\tif(!usz && OL < tgt) { outbuf = realloc(outbuf, tgt + 100); OL = outbuf.length; }\n\t\t\t\twhile(woff < tgt) { outbuf[woff] = outbuf[woff - dst]; ++woff; }\n\t\t\t}\n\t\t}\n\t}\n\tif(usz) return [outbuf, (boff+7)>>>3];\n\treturn [outbuf.slice(0, woff), (boff+7)>>>3];\n}\n\nfunction _inflate(payload, usz) {\n\tvar data = payload.slice(payload.l||0);\n\tvar out = inflate(data, usz);\n\tpayload.l += out[1];\n\treturn out[0];\n}\n\nfunction warn_or_throw(wrn, msg) {\n\tif(wrn) { if(typeof console !== 'undefined') console.error(msg); }\n\telse throw new Error(msg);\n}\n\nfunction parse_zip(file/*:RawBytes*/, options/*:CFBReadOpts*/)/*:CFBContainer*/ {\n\tvar blob/*:CFBlob*/ = /*::(*/file/*:: :any)*/;\n\tprep_blob(blob, 0);\n\n\tvar FileIndex/*:CFBFileIndex*/ = [], FullPaths/*:Array*/ = [];\n\tvar o = {\n\t\tFileIndex: FileIndex,\n\t\tFullPaths: FullPaths\n\t};\n\tinit_cfb(o, { root: options.root });\n\n\t/* find end of central directory, start just after signature */\n\tvar i = blob.length - 4;\n\twhile((blob[i] != 0x50 || blob[i+1] != 0x4b || blob[i+2] != 0x05 || blob[i+3] != 0x06) && i >= 0) --i;\n\tblob.l = i + 4;\n\n\t/* parse end of central directory */\n\tblob.l += 4;\n\tvar fcnt = blob.read_shift(2);\n\tblob.l += 6;\n\tvar start_cd = blob.read_shift(4);\n\n\t/* parse central directory */\n\tblob.l = start_cd;\n\n\tfor(i = 0; i < fcnt; ++i) {\n\t\t/* trust local file header instead of CD entry */\n\t\tblob.l += 20;\n\t\tvar csz = blob.read_shift(4);\n\t\tvar usz = blob.read_shift(4);\n\t\tvar namelen = blob.read_shift(2);\n\t\tvar efsz = blob.read_shift(2);\n\t\tvar fcsz = blob.read_shift(2);\n\t\tblob.l += 8;\n\t\tvar offset = blob.read_shift(4);\n\t\tvar EF = parse_extra_field(/*::(*/blob.slice(blob.l+namelen, blob.l+namelen+efsz)/*:: :any)*/);\n\t\tblob.l += namelen + efsz + fcsz;\n\n\t\tvar L = blob.l;\n\t\tblob.l = offset + 4;\n\t\t/* ZIP64 lengths */\n\t\tif(EF && EF[0x0001]) {\n\t\t\tif((EF[0x0001]||{}).usz) usz = EF[0x0001].usz;\n\t\t\tif((EF[0x0001]||{}).csz) csz = EF[0x0001].csz;\n\t\t}\n\t\tparse_local_file(blob, csz, usz, o, EF);\n\t\tblob.l = L;\n\t}\n\n\treturn o;\n}\n\n\n/* head starts just after local file header signature */\nfunction parse_local_file(blob/*:CFBlob*/, csz/*:number*/, usz/*:number*/, o/*:CFBContainer*/, EF) {\n\t/* [local file header] */\n\tblob.l += 2;\n\tvar flags = blob.read_shift(2);\n\tvar meth = blob.read_shift(2);\n\tvar date = parse_dos_date(blob);\n\n\tif(flags & 0x2041) throw new Error(\"Unsupported ZIP encryption\");\n\tvar crc32 = blob.read_shift(4);\n\tvar _csz = blob.read_shift(4);\n\tvar _usz = blob.read_shift(4);\n\n\tvar namelen = blob.read_shift(2);\n\tvar efsz = blob.read_shift(2);\n\n\t// TODO: flags & (1<<11) // UTF8\n\tvar name = \"\"; for(var i = 0; i < namelen; ++i) name += String.fromCharCode(blob[blob.l++]);\n\tif(efsz) {\n\t\tvar ef = parse_extra_field(/*::(*/blob.slice(blob.l, blob.l + efsz)/*:: :any)*/);\n\t\tif((ef[0x5455]||{}).mt) date = ef[0x5455].mt;\n\t\tif((ef[0x0001]||{}).usz) _usz = ef[0x0001].usz;\n\t\tif((ef[0x0001]||{}).csz) _csz = ef[0x0001].csz;\n\t\tif(EF) {\n\t\t\tif((EF[0x5455]||{}).mt) date = EF[0x5455].mt;\n\t\t\tif((EF[0x0001]||{}).usz) _usz = ef[0x0001].usz;\n\t\t\tif((EF[0x0001]||{}).csz) _csz = ef[0x0001].csz;\n\t\t}\n\t}\n\tblob.l += efsz;\n\n\t/* [encryption header] */\n\n\t/* [file data] */\n\tvar data = blob.slice(blob.l, blob.l + _csz);\n\tswitch(meth) {\n\t\tcase 8: data = _inflateRawSync(blob, _usz); break;\n\t\tcase 0: break; // TODO: scan for magic number\n\t\tdefault: throw new Error(\"Unsupported ZIP Compression method \" + meth);\n\t}\n\n\t/* [data descriptor] */\n\tvar wrn = false;\n\tif(flags & 8) {\n\t\tcrc32 = blob.read_shift(4);\n\t\tif(crc32 == 0x08074b50) { crc32 = blob.read_shift(4); wrn = true; }\n\t\t_csz = blob.read_shift(4);\n\t\t_usz = blob.read_shift(4);\n\t}\n\n\tif(_csz != csz) warn_or_throw(wrn, \"Bad compressed size: \" + csz + \" != \" + _csz);\n\tif(_usz != usz) warn_or_throw(wrn, \"Bad uncompressed size: \" + usz + \" != \" + _usz);\n\t//var _crc32 = CRC32.buf(data, 0);\n\t//if((crc32>>0) != (_crc32>>0)) warn_or_throw(wrn, \"Bad CRC32 checksum: \" + crc32 + \" != \" + _crc32);\n\tcfb_add(o, name, data, {unsafe: true, mt: date});\n}\nfunction write_zip(cfb/*:CFBContainer*/, options/*:CFBWriteOpts*/)/*:RawBytes*/ {\n\tvar _opts = options || {};\n\tvar out = [], cdirs = [];\n\tvar o/*:CFBlob*/ = new_buf(1);\n\tvar method = (_opts.compression ? 8 : 0), flags = 0;\n\tvar desc = false;\n\tif(desc) flags |= 8;\n\tvar i = 0, j = 0;\n\n\tvar start_cd = 0, fcnt = 0;\n\tvar root = cfb.FullPaths[0], fp = root, fi = cfb.FileIndex[0];\n\tvar crcs = [];\n\tvar sz_cd = 0;\n\n\tfor(i = 1; i < cfb.FullPaths.length; ++i) {\n\t\tfp = cfb.FullPaths[i].slice(root.length); fi = cfb.FileIndex[i];\n\t\tif(!fi.size || !fi.content || fp == \"\\u0001Sh33tJ5\") continue;\n\t\tvar start = start_cd;\n\n\t\t/* TODO: CP437 filename */\n\t\tvar namebuf = new_buf(fp.length);\n\t\tfor(j = 0; j < fp.length; ++j) namebuf.write_shift(1, fp.charCodeAt(j) & 0x7F);\n\t\tnamebuf = namebuf.slice(0, namebuf.l);\n\t\tcrcs[fcnt] = typeof fi.content == \"string\" ? CRC32.bstr(fi.content, 0) : CRC32.buf(/*::((*/fi.content/*::||[]):any)*/, 0);\n\n\t\tvar outbuf = typeof fi.content == \"string\" ? s2a(fi.content) : fi.content/*::||[]*/;\n\t\tif(method == 8) outbuf = _deflateRawSync(outbuf);\n\n\t\t/* local file header */\n\t\to = new_buf(30);\n\t\to.write_shift(4, 0x04034b50);\n\t\to.write_shift(2, 20);\n\t\to.write_shift(2, flags);\n\t\to.write_shift(2, method);\n\t\t/* TODO: last mod file time/date */\n\t\tif(fi.mt) write_dos_date(o, fi.mt);\n\t\telse o.write_shift(4, 0);\n\t\to.write_shift(-4, (flags & 8) ? 0 : crcs[fcnt]);\n\t\to.write_shift(4, (flags & 8) ? 0 : outbuf.length);\n\t\to.write_shift(4, (flags & 8) ? 0 : /*::(*/fi.content/*::||[])*/.length);\n\t\to.write_shift(2, namebuf.length);\n\t\to.write_shift(2, 0);\n\n\t\tstart_cd += o.length;\n\t\tout.push(o);\n\t\tstart_cd += namebuf.length;\n\t\tout.push(namebuf);\n\n\t\t/* TODO: extra fields? */\n\n\t\t/* TODO: encryption header ? */\n\n\t\tstart_cd += outbuf.length;\n\t\tout.push(outbuf);\n\n\t\t/* data descriptor */\n\t\tif(flags & 8) {\n\t\t\to = new_buf(12);\n\t\t\to.write_shift(-4, crcs[fcnt]);\n\t\t\to.write_shift(4, outbuf.length);\n\t\t\to.write_shift(4, /*::(*/fi.content/*::||[])*/.length);\n\t\t\tstart_cd += o.l;\n\t\t\tout.push(o);\n\t\t}\n\n\t\t/* central directory */\n\t\to = new_buf(46);\n\t\to.write_shift(4, 0x02014b50);\n\t\to.write_shift(2, 0);\n\t\to.write_shift(2, 20);\n\t\to.write_shift(2, flags);\n\t\to.write_shift(2, method);\n\t\to.write_shift(4, 0); /* TODO: last mod file time/date */\n\t\to.write_shift(-4, crcs[fcnt]);\n\n\t\to.write_shift(4, outbuf.length);\n\t\to.write_shift(4, /*::(*/fi.content/*::||[])*/.length);\n\t\to.write_shift(2, namebuf.length);\n\t\to.write_shift(2, 0);\n\t\to.write_shift(2, 0);\n\t\to.write_shift(2, 0);\n\t\to.write_shift(2, 0);\n\t\to.write_shift(4, 0);\n\t\to.write_shift(4, start);\n\n\t\tsz_cd += o.l;\n\t\tcdirs.push(o);\n\t\tsz_cd += namebuf.length;\n\t\tcdirs.push(namebuf);\n\t\t++fcnt;\n\t}\n\n\t/* end of central directory */\n\to = new_buf(22);\n\to.write_shift(4, 0x06054b50);\n\to.write_shift(2, 0);\n\to.write_shift(2, 0);\n\to.write_shift(2, fcnt);\n\to.write_shift(2, fcnt);\n\to.write_shift(4, sz_cd);\n\to.write_shift(4, start_cd);\n\to.write_shift(2, 0);\n\n\treturn bconcat(([bconcat((out/*:any*/)), bconcat(cdirs), o]/*:any*/));\n}\nvar ContentTypeMap = ({\n\t\"htm\": \"text/html\",\n\t\"xml\": \"text/xml\",\n\n\t\"gif\": \"image/gif\",\n\t\"jpg\": \"image/jpeg\",\n\t\"png\": \"image/png\",\n\n\t\"mso\": \"application/x-mso\",\n\t\"thmx\": \"application/vnd.ms-officetheme\",\n\t\"sh33tj5\": \"application/octet-stream\"\n}/*:any*/);\n\nfunction get_content_type(fi/*:CFBEntry*/, fp/*:string*/)/*:string*/ {\n\tif(fi.ctype) return fi.ctype;\n\n\tvar ext = fi.name || \"\", m = ext.match(/\\.([^\\.]+)$/);\n\tif(m && ContentTypeMap[m[1]]) return ContentTypeMap[m[1]];\n\n\tif(fp) {\n\t\tm = (ext = fp).match(/[\\.\\\\]([^\\.\\\\])+$/);\n\t\tif(m && ContentTypeMap[m[1]]) return ContentTypeMap[m[1]];\n\t}\n\n\treturn \"application/octet-stream\";\n}\n\n/* 76 character chunks TODO: intertwine encoding */\nfunction write_base64_76(bstr/*:string*/)/*:string*/ {\n\tvar data = Base64_encode(bstr);\n\tvar o = [];\n\tfor(var i = 0; i < data.length; i+= 76) o.push(data.slice(i, i+76));\n\treturn o.join(\"\\r\\n\") + \"\\r\\n\";\n}\n\n/*\nRules for QP:\n\t- escape =## applies for all non-display characters and literal \"=\"\n\t- space or tab at end of line must be encoded\n\t- \\r\\n newlines can be preserved, but bare \\r and \\n must be escaped\n\t- lines must not exceed 76 characters, use soft breaks =\\r\\n\n\nTODO: Some files from word appear to write line extensions with bare equals:\n\n```\n*/ = [], split = encoded.split(\"\\r\\n\");\n\tfor(var si = 0; si < split.length; ++si) {\n\t\tvar str = split[si];\n\t\tif(str.length == 0) { o.push(\"\"); continue; }\n\t\tfor(var i = 0; i < str.length;) {\n\t\t\tvar end = 76;\n\t\t\tvar tmp = str.slice(i, i + end);\n\t\t\tif(tmp.charAt(end - 1) == \"=\") end --;\n\t\t\telse if(tmp.charAt(end - 2) == \"=\") end -= 2;\n\t\t\telse if(tmp.charAt(end - 3) == \"=\") end -= 3;\n\t\t\ttmp = str.slice(i, i + end);\n\t\t\ti += end;\n\t\t\tif(i < str.length) tmp += \"=\";\n\t\t\to.push(tmp);\n\t\t}\n\t}\n\n\treturn o.join(\"\\r\\n\");\n}\nfunction parse_quoted_printable(data/*:Array*/)/*:RawBytes*/ {\n\tvar o = [];\n\n\t/* unify long lines */\n\tfor(var di = 0; di < data.length; ++di) {\n\t\tvar line = data[di];\n\t\twhile(di <= data.length && line.charAt(line.length - 1) == \"=\") line = line.slice(0, line.length - 1) + data[++di];\n\t\to.push(line);\n\t}\n\n\t/* decode */\n\tfor(var oi = 0; oi < o.length; ++oi) o[oi] = o[oi].replace(/[=][0-9A-Fa-f]{2}/g, function($$) { return String.fromCharCode(parseInt($$.slice(1), 16)); });\n\treturn s2a(o.join(\"\\r\\n\"));\n}\n\n\nfunction parse_mime(cfb/*:CFBContainer*/, data/*:Array*/, root/*:string*/)/*:void*/ {\n\tvar fname = \"\", cte = \"\", ctype = \"\", fdata;\n\tvar di = 0;\n\tfor(;di < 10; ++di) {\n\t\tvar line = data[di];\n\t\tif(!line || line.match(/^\\s*$/)) break;\n\t\tvar m = line.match(/^(.*?):\\s*([^\\s].*)$/);\n\t\tif(m) switch(m[1].toLowerCase()) {\n\t\t\tcase \"content-location\": fname = m[2].trim(); break;\n\t\t\tcase \"content-type\": ctype = m[2].trim(); break;\n\t\t\tcase \"content-transfer-encoding\": cte = m[2].trim(); break;\n\t\t}\n\t}\n\t++di;\n\tswitch(cte.toLowerCase()) {\n\t\tcase 'base64': fdata = s2a(Base64_decode(data.slice(di).join(\"\"))); break;\n\t\tcase 'quoted-printable': fdata = parse_quoted_printable(data.slice(di)); break;\n\t\tdefault: throw new Error(\"Unsupported Content-Transfer-Encoding \" + cte);\n\t}\n\tvar file = cfb_add(cfb, fname.slice(root.length), fdata, {unsafe: true});\n\tif(ctype) file.ctype = ctype;\n}\n\nfunction parse_mad(file/*:RawBytes*/, options/*:CFBReadOpts*/)/*:CFBContainer*/ {\n\tif(a2s(file.slice(0,13)).toLowerCase() != \"mime-version:\") throw new Error(\"Unsupported MAD header\");\n\tvar root = (options && options.root || \"\");\n\t// $FlowIgnore\n\tvar data = (has_buf && Buffer.isBuffer(file) ? file.toString(\"binary\") : a2s(file)).split(\"\\r\\n\");\n\tvar di = 0, row = \"\";\n\n\t/* if root is not specified, scan for the common prefix */\n\tfor(di = 0; di < data.length; ++di) {\n\t\trow = data[di];\n\t\tif(!/^Content-Location:/i.test(row)) continue;\n\t\trow = row.slice(row.indexOf(\"file\"));\n\t\tif(!root) root = row.slice(0, row.lastIndexOf(\"/\") + 1);\n\t\tif(row.slice(0, root.length) == root) continue;\n\t\twhile(root.length > 0) {\n\t\t\troot = root.slice(0, root.length - 1);\n\t\t\troot = root.slice(0, root.lastIndexOf(\"/\") + 1);\n\t\t\tif(row.slice(0,root.length) == root) break;\n\t\t}\n\t}\n\n\tvar mboundary = (data[1] || \"\").match(/boundary=\"(.*?)\"/);\n\tif(!mboundary) throw new Error(\"MAD cannot find boundary\");\n\tvar boundary = \"--\" + (mboundary[1] || \"\");\n\n\tvar FileIndex/*:CFBFileIndex*/ = [], FullPaths/*:Array*/ = [];\n\tvar o = {\n\t\tFileIndex: FileIndex,\n\t\tFullPaths: FullPaths\n\t};\n\tinit_cfb(o);\n\tvar start_di, fcnt = 0;\n\tfor(di = 0; di < data.length; ++di) {\n\t\tvar line = data[di];\n\t\tif(line !== boundary && line !== boundary + \"--\") continue;\n\t\tif(fcnt++) parse_mime(o, data.slice(start_di, di), root);\n\t\tstart_di = di;\n\t}\n\treturn o;\n}\n\nfunction write_mad(cfb/*:CFBContainer*/, options/*:CFBWriteOpts*/)/*:string*/ {\n\tvar opts = options || {};\n\tvar boundary = opts.boundary || \"SheetJS\";\n\tboundary = '------=' + boundary;\n\n\tvar out = [\n\t\t'MIME-Version: 1.0',\n\t\t'Content-Type: multipart/related; boundary=\"' + boundary.slice(2) + '\"',\n\t\t'',\n\t\t'',\n\t\t''\n\t];\n\n\tvar root = cfb.FullPaths[0], fp = root, fi = cfb.FileIndex[0];\n\tfor(var i = 1; i < cfb.FullPaths.length; ++i) {\n\t\tfp = cfb.FullPaths[i].slice(root.length);\n\t\tfi = cfb.FileIndex[i];\n\t\tif(!fi.size || !fi.content || fp == \"\\u0001Sh33tJ5\") continue;\n\n\t\t/* Normalize filename */\n\t\tfp = fp.replace(/[\\x00-\\x08\\x0B\\x0C\\x0E-\\x1F\\x7E-\\xFF]/g, function(c) {\n\t\t\treturn \"_x\" + c.charCodeAt(0).toString(16) + \"_\";\n\t\t}).replace(/[\\u0080-\\uFFFF]/g, function(u) {\n\t\t\treturn \"_u\" + u.charCodeAt(0).toString(16) + \"_\";\n\t\t});\n\n\t\t/* Extract content as binary string */\n\t\tvar ca = fi.content;\n\t\t// $FlowIgnore\n\t\tvar cstr = has_buf && Buffer.isBuffer(ca) ? ca.toString(\"binary\") : a2s(ca);\n\n\t\t/* 4/5 of first 1024 chars ascii -> quoted printable, else base64 */\n\t\tvar dispcnt = 0, L = Math.min(1024, cstr.length), cc = 0;\n\t\tfor(var csl = 0; csl <= L; ++csl) if((cc=cstr.charCodeAt(csl)) >= 0x20 && cc < 0x80) ++dispcnt;\n\t\tvar qp = dispcnt >= L * 4 / 5;\n\n\t\tout.push(boundary);\n\t\tout.push('Content-Location: ' + (opts.root || 'file:///C:/SheetJS/') + fp);\n\t\tout.push('Content-Transfer-Encoding: ' + (qp ? 'quoted-printable' : 'base64'));\n\t\tout.push('Content-Type: ' + get_content_type(fi, fp));\n\t\tout.push('');\n\n\t\tout.push(qp ? write_quoted_printable(cstr) : write_base64_76(cstr));\n\t}\n\tout.push(boundary + '--\\r\\n');\n\treturn out.join(\"\\r\\n\");\n}\nfunction cfb_new(opts/*:?any*/)/*:CFBContainer*/ {\n\tvar o/*:CFBContainer*/ = ({}/*:any*/);\n\tinit_cfb(o, opts);\n\treturn o;\n}\n\nfunction cfb_add(cfb/*:CFBContainer*/, name/*:string*/, content/*:?RawBytes*/, opts/*:?any*/)/*:CFBEntry*/ {\n\tvar unsafe = opts && opts.unsafe;\n\tif(!unsafe) init_cfb(cfb);\n\tvar file = !unsafe && CFB.find(cfb, name);\n\tif(!file) {\n\t\tvar fpath/*:string*/ = cfb.FullPaths[0];\n\t\tif(name.slice(0, fpath.length) == fpath) fpath = name;\n\t\telse {\n\t\t\tif(fpath.slice(-1) != \"/\") fpath += \"/\";\n\t\t\tfpath = (fpath + name).replace(\"//\",\"/\");\n\t\t}\n\t\tfile = ({name: filename(name), type: 2}/*:any*/);\n\t\tcfb.FileIndex.push(file);\n\t\tcfb.FullPaths.push(fpath);\n\t\tif(!unsafe) CFB.utils.cfb_gc(cfb);\n\t}\n\t/*:: if(!file) throw new Error(\"unreachable\"); */\n\tfile.content = (content/*:any*/);\n\tfile.size = content ? content.length : 0;\n\tif(opts) {\n\t\tif(opts.CLSID) file.clsid = opts.CLSID;\n\t\tif(opts.mt) file.mt = opts.mt;\n\t\tif(opts.ct) file.ct = opts.ct;\n\t}\n\treturn file;\n}\n\nfunction cfb_del(cfb/*:CFBContainer*/, name/*:string*/)/*:boolean*/ {\n\tinit_cfb(cfb);\n\tvar file = CFB.find(cfb, name);\n\tif(file) for(var j = 0; j < cfb.FileIndex.length; ++j) if(cfb.FileIndex[j] == file) {\n\t\tcfb.FileIndex.splice(j, 1);\n\t\tcfb.FullPaths.splice(j, 1);\n\t\treturn true;\n\t}\n\treturn false;\n}\n\nfunction cfb_mov(cfb/*:CFBContainer*/, old_name/*:string*/, new_name/*:string*/)/*:boolean*/ {\n\tinit_cfb(cfb);\n\tvar file = CFB.find(cfb, old_name);\n\tif(file) for(var j = 0; j < cfb.FileIndex.length; ++j) if(cfb.FileIndex[j] == file) {\n\t\tcfb.FileIndex[j].name = filename(new_name);\n\t\tcfb.FullPaths[j] = new_name;\n\t\treturn true;\n\t}\n\treturn false;\n}\n\nfunction cfb_gc(cfb/*:CFBContainer*/)/*:void*/ { rebuild_cfb(cfb, true); }\n\nexports.find = find;\nexports.read = read;\nexports.parse = parse;\nexports.write = write;\nexports.writeFile = write_file;\nexports.utils = {\n\tcfb_new: cfb_new,\n\tcfb_add: cfb_add,\n\tcfb_del: cfb_del,\n\tcfb_mov: cfb_mov,\n\tcfb_gc: cfb_gc,\n\tReadShift: ReadShift,\n\tCheckField: CheckField,\n\tprep_blob: prep_blob,\n\tbconcat: bconcat,\n\tuse_zlib: use_zlib,\n\t_deflateRaw: _deflate,\n\t_inflateRaw: _inflate,\n\tconsts: consts\n};\n\nreturn exports;\n})();\n\nvar _fs;\nfunction set_fs(fs) { _fs = fs; }\n\n/* normalize data for blob ctor */\nfunction blobify(data) {\n\tif(typeof data === \"string\") return s2ab(data);\n\tif(Array.isArray(data)) return a2u(data);\n\treturn data;\n}\n/* write or download file */\nfunction write_dl(fname/*:string*/, payload/*:any*/, enc/*:?string*/) {\n\t/*global IE_SaveFile, Blob, navigator, saveAs, document, File, chrome */\n\tif(typeof _fs !== 'undefined' && _fs.writeFileSync) return enc ? _fs.writeFileSync(fname, payload, enc) : _fs.writeFileSync(fname, payload);\n\tif(typeof Deno !== 'undefined') {\n\t\t/* in this spot, it's safe to assume typed arrays and TextEncoder/TextDecoder exist */\n\t\tif(enc && typeof payload == \"string\") switch(enc) {\n\t\t\tcase \"utf8\": payload = new TextEncoder(enc).encode(payload); break;\n\t\t\tcase \"binary\": payload = s2ab(payload); break;\n\t\t\t/* TODO: binary equivalent */\n\t\t\tdefault: throw new Error(\"Unsupported encoding \" + enc);\n\t\t}\n\t\treturn Deno.writeFileSync(fname, payload);\n\t}\n\tvar data = (enc == \"utf8\") ? utf8write(payload) : payload;\n\t/*:: declare var IE_SaveFile: any; */\n\tif(typeof IE_SaveFile !== 'undefined') return IE_SaveFile(data, fname);\n\tif(typeof Blob !== 'undefined') {\n\t\tvar blob = new Blob([blobify(data)], {type:\"application/octet-stream\"});\n\t\t/*:: declare var navigator: any; */\n\t\tif(typeof navigator !== 'undefined' && navigator.msSaveBlob) return navigator.msSaveBlob(blob, fname);\n\t\t/*:: declare var saveAs: any; */\n\t\tif(typeof saveAs !== 'undefined') return saveAs(blob, fname);\n\t\tif(typeof URL !== 'undefined' && typeof document !== 'undefined' && document.createElement && URL.createObjectURL) {\n\t\t\tvar url = URL.createObjectURL(blob);\n\t\t\t/*:: declare var chrome: any; */\n\t\t\tif(typeof chrome === 'object' && typeof (chrome.downloads||{}).download == \"function\") {\n\t\t\t\tif(URL.revokeObjectURL && typeof setTimeout !== 'undefined') setTimeout(function() { URL.revokeObjectURL(url); }, 60000);\n\t\t\t\treturn chrome.downloads.download({ url: url, filename: fname, saveAs: true});\n\t\t\t}\n\t\t\tvar a = document.createElement(\"a\");\n\t\t\tif(a.download != null) {\n\t\t\t\t/*:: if(document.body == null) throw new Error(\"unreachable\"); */\n\t\t\t\ta.download = fname; a.href = url; document.body.appendChild(a); a.click();\n\t\t\t\t/*:: if(document.body == null) throw new Error(\"unreachable\"); */ document.body.removeChild(a);\n\t\t\t\tif(URL.revokeObjectURL && typeof setTimeout !== 'undefined') setTimeout(function() { URL.revokeObjectURL(url); }, 60000);\n\t\t\t\treturn url;\n\t\t\t}\n\t\t}\n\t}\n\t// $FlowIgnore\n\tif(typeof $ !== 'undefined' && typeof File !== 'undefined' && typeof Folder !== 'undefined') try { // extendscript\n\t\t// $FlowIgnore\n\t\tvar out = File(fname); out.open(\"w\"); out.encoding = \"binary\";\n\t\tif(Array.isArray(payload)) payload = a2s(payload);\n\t\tout.write(payload); out.close(); return payload;\n\t} catch(e) { if(!e.message || !e.message.match(/onstruct/)) throw e; }\n\tthrow new Error(\"cannot save file \" + fname);\n}\n\n/* read binary data from file */\nfunction read_binary(path/*:string*/) {\n\tif(typeof _fs !== 'undefined') return _fs.readFileSync(path);\n\tif(typeof Deno !== 'undefined') return Deno.readFileSync(path);\n\t// $FlowIgnore\n\tif(typeof $ !== 'undefined' && typeof File !== 'undefined' && typeof Folder !== 'undefined') try { // extendscript\n\t\t// $FlowIgnore\n\t\tvar infile = File(path); infile.open(\"r\"); infile.encoding = \"binary\";\n\t\tvar data = infile.read(); infile.close();\n\t\treturn data;\n\t} catch(e) { if(!e.message || !e.message.match(/onstruct/)) throw e; }\n\tthrow new Error(\"Cannot access file \" + path);\n}\nfunction keys(o/*:any*/)/*:Array*/ {\n\tvar ks = Object.keys(o), o2 = [];\n\tfor(var i = 0; i < ks.length; ++i) if(Object.prototype.hasOwnProperty.call(o, ks[i])) o2.push(ks[i]);\n\treturn o2;\n}\n\nfunction evert_key(obj/*:any*/, key/*:string*/)/*:EvertType*/ {\n\tvar o = ([]/*:any*/), K = keys(obj);\n\tfor(var i = 0; i !== K.length; ++i) if(o[obj[K[i]][key]] == null) o[obj[K[i]][key]] = K[i];\n\treturn o;\n}\n\nfunction evert(obj/*:any*/)/*:EvertType*/ {\n\tvar o = ([]/*:any*/), K = keys(obj);\n\tfor(var i = 0; i !== K.length; ++i) o[obj[K[i]]] = K[i];\n\treturn o;\n}\n\nfunction evert_num(obj/*:any*/)/*:EvertNumType*/ {\n\tvar o = ([]/*:any*/), K = keys(obj);\n\tfor(var i = 0; i !== K.length; ++i) o[obj[K[i]]] = parseInt(K[i],10);\n\treturn o;\n}\n\nfunction evert_arr(obj/*:any*/)/*:EvertArrType*/ {\n\tvar o/*:EvertArrType*/ = ([]/*:any*/), K = keys(obj);\n\tfor(var i = 0; i !== K.length; ++i) {\n\t\tif(o[obj[K[i]]] == null) o[obj[K[i]]] = [];\n\t\to[obj[K[i]]].push(K[i]);\n\t}\n\treturn o;\n}\n\nvar basedate = /*#__PURE__*/new Date(1899, 11, 30, 0, 0, 0); // 2209161600000\nfunction datenum(v/*:Date*/, date1904/*:?boolean*/)/*:number*/ {\n\tvar epoch = /*#__PURE__*/v.getTime();\n\tif(date1904) epoch -= 1462*24*60*60*1000;\n\tvar dnthresh = /*#__PURE__*/basedate.getTime() + (/*#__PURE__*/v.getTimezoneOffset() - /*#__PURE__*/basedate.getTimezoneOffset()) * 60000;\n\treturn (epoch - dnthresh) / (24 * 60 * 60 * 1000);\n}\nvar refdate = /*#__PURE__*/new Date();\nvar dnthresh = /*#__PURE__*/basedate.getTime() + (/*#__PURE__*/refdate.getTimezoneOffset() - /*#__PURE__*/basedate.getTimezoneOffset()) * 60000;\nvar refoffset = /*#__PURE__*/refdate.getTimezoneOffset();\nfunction numdate(v/*:number*/)/*:Date*/ {\n\tvar out = new Date();\n\tout.setTime(v * 24 * 60 * 60 * 1000 + dnthresh);\n\tif (out.getTimezoneOffset() !== refoffset) {\n\t\tout.setTime(out.getTime() + (out.getTimezoneOffset() - refoffset) * 60000);\n\t}\n\treturn out;\n}\n\n/* ISO 8601 Duration */\nfunction parse_isodur(s) {\n\tvar sec = 0, mt = 0, time = false;\n\tvar m = s.match(/P([0-9\\.]+Y)?([0-9\\.]+M)?([0-9\\.]+D)?T([0-9\\.]+H)?([0-9\\.]+M)?([0-9\\.]+S)?/);\n\tif(!m) throw new Error(\"|\" + s + \"| is not an ISO8601 Duration\");\n\tfor(var i = 1; i != m.length; ++i) {\n\t\tif(!m[i]) continue;\n\t\tmt = 1;\n\t\tif(i > 3) time = true;\n\t\tswitch(m[i].slice(m[i].length-1)) {\n\t\t\tcase 'Y':\n\t\t\t\tthrow new Error(\"Unsupported ISO Duration Field: \" + m[i].slice(m[i].length-1));\n\t\t\tcase 'D': mt *= 24;\n\t\t\t\t/* falls through */\n\t\t\tcase 'H': mt *= 60;\n\t\t\t\t/* falls through */\n\t\t\tcase 'M':\n\t\t\t\tif(!time) throw new Error(\"Unsupported ISO Duration Field: M\");\n\t\t\t\telse mt *= 60;\n\t\t\t\t/* falls through */\n\t\t\tcase 'S': break;\n\t\t}\n\t\tsec += mt * parseInt(m[i], 10);\n\t}\n\treturn sec;\n}\n\nvar good_pd_date_1 = /*#__PURE__*/new Date('2017-02-19T19:06:09.000Z');\nvar good_pd_date = /*#__PURE__*/isNaN(/*#__PURE__*/good_pd_date_1.getFullYear()) ? /*#__PURE__*/new Date('2/19/17') : good_pd_date_1;\nvar good_pd = /*#__PURE__*/good_pd_date.getFullYear() == 2017;\n/* parses a date as a local date */\nfunction parseDate(str/*:string|Date*/, fixdate/*:?number*/)/*:Date*/ {\n\tvar d = new Date(str);\n\tif(good_pd) {\n\t\t/*:: if(fixdate == null) fixdate = 0; */\n\t\tif(fixdate > 0) d.setTime(d.getTime() + d.getTimezoneOffset() * 60 * 1000);\n\t\telse if(fixdate < 0) d.setTime(d.getTime() - d.getTimezoneOffset() * 60 * 1000);\n\t\treturn d;\n\t}\n\tif(str instanceof Date) return str;\n\tif(good_pd_date.getFullYear() == 1917 && !isNaN(d.getFullYear())) {\n\t\tvar s = d.getFullYear();\n\t\tif(str.indexOf(\"\" + s) > -1) return d;\n\t\td.setFullYear(d.getFullYear() + 100); return d;\n\t}\n\tvar n = str.match(/\\d+/g)||[\"2017\",\"2\",\"19\",\"0\",\"0\",\"0\"];\n\tvar out = new Date(+n[0], +n[1] - 1, +n[2], (+n[3]||0), (+n[4]||0), (+n[5]||0));\n\tif(str.indexOf(\"Z\") > -1) out = new Date(out.getTime() - out.getTimezoneOffset() * 60 * 1000);\n\treturn out;\n}\n\nfunction cc2str(arr/*:Array*/, debomit)/*:string*/ {\n\tif(has_buf && Buffer.isBuffer(arr)) {\n\t\tif(debomit && buf_utf16le) {\n\t\t\t// TODO: temporary patch\n\t\t\tif(arr[0] == 0xFF && arr[1] == 0xFE) return utf8write(arr.slice(2).toString(\"utf16le\"));\n\t\t\tif(arr[1] == 0xFE && arr[2] == 0xFF) return utf8write(utf16beread(arr.slice(2).toString(\"binary\")));\n\t\t}\n\t\treturn arr.toString(\"binary\");\n\t}\n\n\tif(typeof TextDecoder !== \"undefined\") try {\n\t\tif(debomit) {\n\t\t\tif(arr[0] == 0xFF && arr[1] == 0xFE) return utf8write(new TextDecoder(\"utf-16le\").decode(arr.slice(2)));\n\t\t\tif(arr[0] == 0xFE && arr[1] == 0xFF) return utf8write(new TextDecoder(\"utf-16be\").decode(arr.slice(2)));\n\t\t}\n\t\tvar rev = {\n\t\t\t\"\\u20ac\": \"\\x80\", \"\\u201a\": \"\\x82\", \"\\u0192\": \"\\x83\", \"\\u201e\": \"\\x84\",\n\t\t\t\"\\u2026\": \"\\x85\", \"\\u2020\": \"\\x86\", \"\\u2021\": \"\\x87\", \"\\u02c6\": \"\\x88\",\n\t\t\t\"\\u2030\": \"\\x89\", \"\\u0160\": \"\\x8a\", \"\\u2039\": \"\\x8b\", \"\\u0152\": \"\\x8c\",\n\t\t\t\"\\u017d\": \"\\x8e\", \"\\u2018\": \"\\x91\", \"\\u2019\": \"\\x92\", \"\\u201c\": \"\\x93\",\n\t\t\t\"\\u201d\": \"\\x94\", \"\\u2022\": \"\\x95\", \"\\u2013\": \"\\x96\", \"\\u2014\": \"\\x97\",\n\t\t\t\"\\u02dc\": \"\\x98\", \"\\u2122\": \"\\x99\", \"\\u0161\": \"\\x9a\", \"\\u203a\": \"\\x9b\",\n\t\t\t\"\\u0153\": \"\\x9c\", \"\\u017e\": \"\\x9e\", \"\\u0178\": \"\\x9f\"\n\t\t};\n\t\tif(Array.isArray(arr)) arr = new Uint8Array(arr);\n\t\treturn new TextDecoder(\"latin1\").decode(arr).replace(/[€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ]/g, function(c) { return rev[c] || c; });\n\t} catch(e) {}\n\n\tvar o = [];\n\tfor(var i = 0; i != arr.length; ++i) o.push(String.fromCharCode(arr[i]));\n\treturn o.join(\"\");\n}\n\nfunction dup(o/*:any*/)/*:any*/ {\n\tif(typeof JSON != 'undefined' && !Array.isArray(o)) return JSON.parse(JSON.stringify(o));\n\tif(typeof o != 'object' || o == null) return o;\n\tif(o instanceof Date) return new Date(o.getTime());\n\tvar out = {};\n\tfor(var k in o) if(Object.prototype.hasOwnProperty.call(o, k)) out[k] = dup(o[k]);\n\treturn out;\n}\n\nfunction fill(c/*:string*/,l/*:number*/)/*:string*/ { var o = \"\"; while(o.length < l) o+=c; return o; }\n\n/* TODO: stress test */\nfunction fuzzynum(s/*:string*/)/*:number*/ {\n\tvar v/*:number*/ = Number(s);\n\tif(!isNaN(v)) return isFinite(v) ? v : NaN;\n\tif(!/\\d/.test(s)) return v;\n\tvar wt = 1;\n\tvar ss = s.replace(/([\\d]),([\\d])/g,\"$1$2\").replace(/[$]/g,\"\").replace(/[%]/g, function() { wt *= 100; return \"\";});\n\tif(!isNaN(v = Number(ss))) return v / wt;\n\tss = ss.replace(/[(](.*)[)]/,function($$, $1) { wt = -wt; return $1;});\n\tif(!isNaN(v = Number(ss))) return v / wt;\n\treturn v;\n}\n\n/* NOTE: Chrome rejects bare times like 1:23 PM */\nvar FDRE1 = /^(0?\\d|1[0-2])(?:|:([0-5]?\\d)(?:|(\\.\\d+)(?:|:([0-5]?\\d))|:([0-5]?\\d)(|\\.\\d+)))\\s+([ap])m?$/;\n\nfunction fuzzytime1(M) /*:Date*/ {\n /* TODO: 1904 adjustment, keep in sync with base date */\n if(!M[2]) return new Date(1899,11,30,(+M[1]%12) + (M[7] == \"p\" ? 12 : 0), 0, 0, 0);\n if(M[3]) {\n if(M[4]) return new Date(1899,11,30,(+M[1]%12) + (M[7] == \"p\" ? 12 : 0), +M[2], +M[4], parseFloat(M[3])*1000);\n else return new Date(1899,11,30,(M[7] == \"p\" ? 12 : 0), +M[1], +M[2], parseFloat(M[3])*1000);\n }\n else if(M[5]) return new Date(1899,11,30, (+M[1]%12) + (M[7] == \"p\" ? 12 : 0), +M[2], +M[5], M[6] ? parseFloat(M[6]) * 1000 : 0);\n else return new Date(1899,11,30,(+M[1]%12) + (M[7] == \"p\" ? 12 : 0), +M[2], 0, 0);\n}\nvar lower_months = ['january', 'february', 'march', 'april', 'may', 'june', 'july', 'august', 'september', 'october', 'november', 'december'];\nfunction fuzzydate(s/*:string*/)/*:Date*/ {\n\tvar lower = s.toLowerCase();\n\tvar lnos = lower.replace(/\\s+/g, \" \").trim();\n\tvar M = lnos.match(FDRE1);\n\tif(M) return fuzzytime1(M);\n\n\tvar o = new Date(s), n = new Date(NaN);\n\tvar y = o.getYear(), m = o.getMonth(), d = o.getDate();\n\tif(isNaN(d)) return n;\n\tif(lower.match(/jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec/)) {\n\t\tlower = lower.replace(/[^a-z]/g,\"\").replace(/([^a-z]|^)[ap]m?([^a-z]|$)/,\"\");\n\t\tif(lower.length > 3 && lower_months.indexOf(lower) == -1) return n;\n\t} else if(lower.replace(/[ap]m?/, \"\").match(/[a-z]/)) return n;\n\tif(y < 0 || y > 8099 || s.match(/[^-0-9:,\\/\\\\]/)) return n;\n\treturn o;\n}\n\nvar split_regex = /*#__PURE__*/(function() {\n\tvar safe_split_regex = \"abacaba\".split(/(:?b)/i).length == 5;\n\treturn function split_regex(str/*:string*/, re, def/*:string*/)/*:Array*/ {\n\t\tif(safe_split_regex || typeof re == \"string\") return str.split(re);\n\t\tvar p = str.split(re), o = [p[0]];\n\t\tfor(var i = 1; i < p.length; ++i) { o.push(def); o.push(p[i]); }\n\t\treturn o;\n\t};\n})();\nfunction getdatastr(data)/*:?string*/ {\n\tif(!data) return null;\n\tif(data.content && data.type) return cc2str(data.content, true);\n\tif(data.data) return debom(data.data);\n\tif(data.asNodeBuffer && has_buf) return debom(data.asNodeBuffer().toString('binary'));\n\tif(data.asBinary) return debom(data.asBinary());\n\tif(data._data && data._data.getContent) return debom(cc2str(Array.prototype.slice.call(data._data.getContent(),0)));\n\treturn null;\n}\n\nfunction getdatabin(data) {\n\tif(!data) return null;\n\tif(data.data) return char_codes(data.data);\n\tif(data.asNodeBuffer && has_buf) return data.asNodeBuffer();\n\tif(data._data && data._data.getContent) {\n\t\tvar o = data._data.getContent();\n\t\tif(typeof o == \"string\") return char_codes(o);\n\t\treturn Array.prototype.slice.call(o);\n\t}\n\tif(data.content && data.type) return data.content;\n\treturn null;\n}\n\nfunction getdata(data) { return (data && data.name.slice(-4) === \".bin\") ? getdatabin(data) : getdatastr(data); }\n\n/* Part 2 Section 10.1.2 \"Mapping Content Types\" Names are case-insensitive */\n/* OASIS does not comment on filename case sensitivity */\nfunction safegetzipfile(zip, file/*:string*/) {\n\tvar k = zip.FullPaths || keys(zip.files);\n\tvar f = file.toLowerCase().replace(/[\\/]/g, '\\\\'), g = f.replace(/\\\\/g,'\\/');\n\tfor(var i=0; i\\/]+)\\s*=\\s*((?:\")([^\"]*)(?:\")|(?:')([^']*)(?:')|([^'\">\\s]+))/g;\nvar tagregex1=/<[\\/\\?]?[a-zA-Z0-9:_-]+(?:\\s+[^\"\\s?>\\/]+\\s*=\\s*(?:\"[^\"]*\"|'[^']*'|[^'\">\\s=]+))*\\s*[\\/\\?]?>/mg, tagregex2 = /<[^>]*>/g;\nvar tagregex = /*#__PURE__*/XML_HEADER.match(tagregex1) ? tagregex1 : tagregex2;\nvar nsregex=/<\\w*:/, nsregex2 = /<(\\/?)\\w+:/;\nfunction parsexmltag(tag/*:string*/, skip_root/*:?boolean*/, skip_LC/*:?boolean*/)/*:any*/ {\n\tvar z = ({}/*:any*/);\n\tvar eq = 0, c = 0;\n\tfor(; eq !== tag.length; ++eq) if((c = tag.charCodeAt(eq)) === 32 || c === 10 || c === 13) break;\n\tif(!skip_root) z[0] = tag.slice(0, eq);\n\tif(eq === tag.length) return z;\n\tvar m = tag.match(attregexg), j=0, v=\"\", i=0, q=\"\", cc=\"\", quot = 1;\n\tif(m) for(i = 0; i != m.length; ++i) {\n\t\tcc = m[i];\n\t\tfor(c=0; c != cc.length; ++c) if(cc.charCodeAt(c) === 61) break;\n\t\tq = cc.slice(0,c).trim();\n\t\twhile(cc.charCodeAt(c+1) == 32) ++c;\n\t\tquot = ((eq=cc.charCodeAt(c+1)) == 34 || eq == 39) ? 1 : 0;\n\t\tv = cc.slice(c+1+quot, cc.length-quot);\n\t\tfor(j=0;j!=q.length;++j) if(q.charCodeAt(j) === 58) break;\n\t\tif(j===q.length) {\n\t\t\tif(q.indexOf(\"_\") > 0) q = q.slice(0, q.indexOf(\"_\")); // from ods\n\t\t\tz[q] = v;\n\t\t\tif(!skip_LC) z[q.toLowerCase()] = v;\n\t\t}\n\t\telse {\n\t\t\tvar k = (j===5 && q.slice(0,5)===\"xmlns\"?\"xmlns\":\"\")+q.slice(j+1);\n\t\t\tif(z[k] && q.slice(j-3,j) == \"ext\") continue; // from ods\n\t\t\tz[k] = v;\n\t\t\tif(!skip_LC) z[k.toLowerCase()] = v;\n\t\t}\n\t}\n\treturn z;\n}\nfunction strip_ns(x/*:string*/)/*:string*/ { return x.replace(nsregex2, \"<$1\"); }\n\nvar encodings = {\n\t'"': '\"',\n\t''': \"'\",\n\t'>': '>',\n\t'<': '<',\n\t'&': '&'\n};\nvar rencoding = /*#__PURE__*/evert(encodings);\n//var rencstr = \"&<>'\\\"\".split(\"\");\n\n// TODO: CP remap (need to read file version to determine OS)\nvar unescapexml/*:StringConv*/ = /*#__PURE__*/(function() {\n\t/* 22.4.2.4 bstr (Basic String) */\n\tvar encregex = /&(?:quot|apos|gt|lt|amp|#x?([\\da-fA-F]+));/ig, coderegex = /_x([\\da-fA-F]{4})_/ig;\n\tfunction raw_unescapexml(text/*:string*/)/*:string*/ {\n\t\tvar s = text + '', i = s.indexOf(\"-1?16:10))||$$; }).replace(coderegex,function(m,c) {return String.fromCharCode(parseInt(c,16));});\n\t\tvar j = s.indexOf(\"]]>\");\n\t\treturn raw_unescapexml(s.slice(0, i)) + s.slice(i+9,j) + raw_unescapexml(s.slice(j+3));\n\t}\n\treturn function unescapexml(text/*:string*/, xlsx/*:boolean*/) {\n\t\tvar out = raw_unescapexml(text);\n\t\treturn xlsx ? out.replace(/\\r\\n/g, \"\\n\") : out;\n\t};\n})();\n\nvar decregex=/[&<>'\"]/g, charegex = /[\\u0000-\\u0008\\u000b-\\u001f\\uFFFE-\\uFFFF]/g;\nfunction escapexml(text/*:string*/)/*:string*/{\n\tvar s = text + '';\n\treturn s.replace(decregex, function(y) { return rencoding[y]; }).replace(charegex,function(s) { return \"_x\" + (\"000\"+s.charCodeAt(0).toString(16)).slice(-4) + \"_\";});\n}\nfunction escapexmltag(text/*:string*/)/*:string*/{ return escapexml(text).replace(/ /g,\"_x0020_\"); }\n\nvar htmlcharegex = /[\\u0000-\\u001f]/g;\nfunction escapehtml(text/*:string*/)/*:string*/{\n\tvar s = text + '';\n\treturn s.replace(decregex, function(y) { return rencoding[y]; }).replace(/\\n/g, \"
\").replace(htmlcharegex,function(s) { return \"&#x\" + (\"000\"+s.charCodeAt(0).toString(16)).slice(-4) + \";\"; });\n}\n\nfunction escapexlml(text/*:string*/)/*:string*/{\n\tvar s = text + '';\n\treturn s.replace(decregex, function(y) { return rencoding[y]; }).replace(htmlcharegex,function(s) { return \"&#x\" + (s.charCodeAt(0).toString(16)).toUpperCase() + \";\"; });\n}\n\n/* TODO: handle codepages */\nvar xlml_fixstr/*:StringConv*/ = /*#__PURE__*/(function() {\n\tvar entregex = /&#(\\d+);/g;\n\tfunction entrepl($$/*:string*/,$1/*:string*/)/*:string*/ { return String.fromCharCode(parseInt($1,10)); }\n\treturn function xlml_fixstr(str/*:string*/)/*:string*/ { return str.replace(entregex,entrepl); };\n})();\nfunction xlml_unfixstr(str/*:string*/)/*:string*/ { return str.replace(/(\\r\\n|[\\r\\n])/g,\"\\ \"); }\n\n/* note: xsd:boolean valid values: true / 1 / false / 0 */\nfunction parsexmlbool(value/*:any*/)/*:boolean*/ {\n\tswitch(value) {\n\t\tcase 1: case true: case '1': case 'true': return true;\n\t\tcase 0: case false: case '0': case 'false': return false;\n\t\t//default: throw new Error(\"Invalid xsd:boolean \" + value);\n\t}\n\treturn false;\n}\n\nfunction utf8reada(orig/*:string*/)/*:string*/ {\n\tvar out = \"\", i = 0, c = 0, d = 0, e = 0, f = 0, w = 0;\n\twhile (i < orig.length) {\n\t\tc = orig.charCodeAt(i++);\n\t\tif (c < 128) { out += String.fromCharCode(c); continue; }\n\t\td = orig.charCodeAt(i++);\n\t\tif (c>191 && c<224) { f = ((c & 31) << 6); f |= (d & 63); out += String.fromCharCode(f); continue; }\n\t\te = orig.charCodeAt(i++);\n\t\tif (c < 240) { out += String.fromCharCode(((c & 15) << 12) | ((d & 63) << 6) | (e & 63)); continue; }\n\t\tf = orig.charCodeAt(i++);\n\t\tw = (((c & 7) << 18) | ((d & 63) << 12) | ((e & 63) << 6) | (f & 63))-65536;\n\t\tout += String.fromCharCode(0xD800 + ((w>>>10)&1023));\n\t\tout += String.fromCharCode(0xDC00 + (w&1023));\n\t}\n\treturn out;\n}\n\nfunction utf8readb(data) {\n\tvar out = new_raw_buf(2*data.length), w, i, j = 1, k = 0, ww=0, c;\n\tfor(i = 0; i < data.length; i+=j) {\n\t\tj = 1;\n\t\tif((c=data.charCodeAt(i)) < 128) w = c;\n\t\telse if(c < 224) { w = (c&31)*64+(data.charCodeAt(i+1)&63); j=2; }\n\t\telse if(c < 240) { w=(c&15)*4096+(data.charCodeAt(i+1)&63)*64+(data.charCodeAt(i+2)&63); j=3; }\n\t\telse { j = 4;\n\t\t\tw = (c & 7)*262144+(data.charCodeAt(i+1)&63)*4096+(data.charCodeAt(i+2)&63)*64+(data.charCodeAt(i+3)&63);\n\t\t\tw -= 65536; ww = 0xD800 + ((w>>>10)&1023); w = 0xDC00 + (w&1023);\n\t\t}\n\t\tif(ww !== 0) { out[k++] = ww&255; out[k++] = ww>>>8; ww = 0; }\n\t\tout[k++] = w%256; out[k++] = w>>>8;\n\t}\n\treturn out.slice(0,k).toString('ucs2');\n}\n\nfunction utf8readc(data) { return Buffer_from(data, 'binary').toString('utf8'); }\n\nvar utf8corpus = \"foo bar baz\\u00e2\\u0098\\u0083\\u00f0\\u009f\\u008d\\u00a3\";\nvar utf8read = has_buf && (/*#__PURE__*/utf8readc(utf8corpus) == /*#__PURE__*/utf8reada(utf8corpus) && utf8readc || /*#__PURE__*/utf8readb(utf8corpus) == /*#__PURE__*/utf8reada(utf8corpus) && utf8readb) || utf8reada;\n\nvar utf8write/*:StringConv*/ = has_buf ? function(data) { return Buffer_from(data, 'utf8').toString(\"binary\"); } : function(orig/*:string*/)/*:string*/ {\n\tvar out/*:Array*/ = [], i = 0, c = 0, d = 0;\n\twhile(i < orig.length) {\n\t\tc = orig.charCodeAt(i++);\n\t\tswitch(true) {\n\t\t\tcase c < 128: out.push(String.fromCharCode(c)); break;\n\t\t\tcase c < 2048:\n\t\t\t\tout.push(String.fromCharCode(192 + (c >> 6)));\n\t\t\t\tout.push(String.fromCharCode(128 + (c & 63)));\n\t\t\t\tbreak;\n\t\t\tcase c >= 55296 && c < 57344:\n\t\t\t\tc -= 55296; d = orig.charCodeAt(i++) - 56320 + (c<<10);\n\t\t\t\tout.push(String.fromCharCode(240 + ((d >>18) & 7)));\n\t\t\t\tout.push(String.fromCharCode(144 + ((d >>12) & 63)));\n\t\t\t\tout.push(String.fromCharCode(128 + ((d >> 6) & 63)));\n\t\t\t\tout.push(String.fromCharCode(128 + (d & 63)));\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\tout.push(String.fromCharCode(224 + (c >> 12)));\n\t\t\t\tout.push(String.fromCharCode(128 + ((c >> 6) & 63)));\n\t\t\t\tout.push(String.fromCharCode(128 + (c & 63)));\n\t\t}\n\t}\n\treturn out.join(\"\");\n};\n\n// matches ... extracts content\nvar matchtag = /*#__PURE__*/(function() {\n\tvar mtcache/*:{[k:string]:RegExp}*/ = ({}/*:any*/);\n\treturn function matchtag(f/*:string*/,g/*:?string*/)/*:RegExp*/ {\n\t\tvar t = f+\"|\"+(g||\"\");\n\t\tif(mtcache[t]) return mtcache[t];\n\t\treturn (mtcache[t] = new RegExp('<(?:\\\\w+:)?'+f+'(?: xml:space=\"preserve\")?(?:[^>]*)>([\\\\s\\\\S]*?)',((g||\"\")/*:any*/)));\n\t};\n})();\n\nvar htmldecode/*:{(s:string):string}*/ = /*#__PURE__*/(function() {\n\tvar entities/*:Array<[RegExp, string]>*/ = [\n\t\t['nbsp', ' '], ['middot', '·'],\n\t\t['quot', '\"'], ['apos', \"'\"], ['gt', '>'], ['lt', '<'], ['amp', '&']\n\t].map(function(x/*:[string, string]*/) { return [new RegExp('&' + x[0] + ';', \"ig\"), x[1]]; });\n\treturn function htmldecode(str/*:string*/)/*:string*/ {\n\t\tvar o = str\n\t\t\t\t// Remove new lines and spaces from start of content\n\t\t\t\t.replace(/^[\\t\\n\\r ]+/, \"\")\n\t\t\t\t// Remove new lines and spaces from end of content\n\t\t\t\t.replace(/[\\t\\n\\r ]+$/,\"\")\n\t\t\t\t// Added line which removes any white space characters after and before html tags\n\t\t\t\t.replace(/>\\s+/g,\">\").replace(/\\s+ tags with new lines\n\t\t\t\t.replace(/<\\s*[bB][rR]\\s*\\/?>/g,\"\\n\")\n\t\t\t\t// Strip HTML elements\n\t\t\t\t.replace(/<[^>]*>/g,\"\");\n\t\tfor(var i = 0; i < entities.length; ++i) o = o.replace(entities[i][0], entities[i][1]);\n\t\treturn o;\n\t};\n})();\n\nvar vtregex = /*#__PURE__*/(function(){ var vt_cache = {};\n\treturn function vt_regex(bt) {\n\t\tif(vt_cache[bt] !== undefined) return vt_cache[bt];\n\t\treturn (vt_cache[bt] = new RegExp(\"<(?:vt:)?\" + bt + \">([\\\\s\\\\S]*?)\", 'g') );\n};})();\nvar vtvregex = /<\\/?(?:vt:)?variant>/g, vtmregex = /<(?:vt:)([^>]*)>([\\s\\S]*)*/ {\n\tvar h = parsexmltag(data);\n\n\tvar matches/*:Array*/ = data.match(vtregex(h.baseType))||[];\n\tvar res/*:Array*/ = [];\n\tif(matches.length != h.size) {\n\t\tif(opts.WTF) throw new Error(\"unexpected vector length \" + matches.length + \" != \" + h.size);\n\t\treturn res;\n\t}\n\tmatches.forEach(function(x/*:string*/) {\n\t\tvar v = x.replace(vtvregex,\"\").match(vtmregex);\n\t\tif(v) res.push({v:utf8read(v[2]), t:v[1]});\n\t});\n\treturn res;\n}\n\nvar wtregex = /(^\\s|\\s$|\\n)/;\nfunction writetag(f/*:string*/,g/*:string*/)/*:string*/ { return '<' + f + (g.match(wtregex)?' xml:space=\"preserve\"' : \"\") + '>' + g + ''; }\n\nfunction wxt_helper(h)/*:string*/ { return keys(h).map(function(k) { return \" \" + k + '=\"' + h[k] + '\"';}).join(\"\"); }\nfunction writextag(f/*:string*/,g/*:?string*/,h) { return '<' + f + ((h != null) ? wxt_helper(h) : \"\") + ((g != null) ? (g.match(wtregex)?' xml:space=\"preserve\"' : \"\") + '>' + g + '';}\n\nfunction write_w3cdtf(d/*:Date*/, t/*:?boolean*/)/*:string*/ { try { return d.toISOString().replace(/\\.\\d*/,\"\"); } catch(e) { if(t) throw e; } return \"\"; }\n\nfunction write_vt(s, xlsx/*:?boolean*/)/*:string*/ {\n\tswitch(typeof s) {\n\t\tcase 'string':\n\t\t\tvar o = writextag('vt:lpwstr', escapexml(s));\n\t\t\tif(xlsx) o = o.replace(/"/g, \"_x0022_\");\n\t\t\treturn o;\n\t\tcase 'number': return writextag((s|0)==s?'vt:i4':'vt:r8', escapexml(String(s)));\n\t\tcase 'boolean': return writextag('vt:bool',s?'true':'false');\n\t}\n\tif(s instanceof Date) return writextag('vt:filetime', write_w3cdtf(s));\n\tthrow new Error(\"Unable to serialize \" + s);\n}\n\nfunction xlml_normalize(d)/*:string*/ {\n\tif(has_buf &&/*::typeof Buffer !== \"undefined\" && d != null && d instanceof Buffer &&*/ Buffer.isBuffer(d)) return d.toString('utf8');\n\tif(typeof d === 'string') return d;\n\t/* duktape */\n\tif(typeof Uint8Array !== 'undefined' && d instanceof Uint8Array) return utf8read(a2s(ab2a(d)));\n\tthrow new Error(\"Bad input format: expected Buffer or string\");\n}\n/* UOS uses CJK in tags */\nvar xlmlregex = /<(\\/?)([^\\s?>:\\/]+)(?:[\\s?:\\/](?:[^>=]|=\"[^\"]*?\")*)?>/mg;\n//var xlmlregex = /<(\\/?)([a-z0-9]*:|)(\\w+)[^>]*>/mg;\n\nvar XMLNS = ({\n\tCORE_PROPS: 'http://schemas.openxmlformats.org/package/2006/metadata/core-properties',\n\tCUST_PROPS: \"http://schemas.openxmlformats.org/officeDocument/2006/custom-properties\",\n\tEXT_PROPS: \"http://schemas.openxmlformats.org/officeDocument/2006/extended-properties\",\n\tCT: 'http://schemas.openxmlformats.org/package/2006/content-types',\n\tRELS: 'http://schemas.openxmlformats.org/package/2006/relationships',\n\tTCMNT: 'http://schemas.microsoft.com/office/spreadsheetml/2018/threadedcomments',\n\t'dc': 'http://purl.org/dc/elements/1.1/',\n\t'dcterms': 'http://purl.org/dc/terms/',\n\t'dcmitype': 'http://purl.org/dc/dcmitype/',\n\t'mx': 'http://schemas.microsoft.com/office/mac/excel/2008/main',\n\t'r': 'http://schemas.openxmlformats.org/officeDocument/2006/relationships',\n\t'sjs': 'http://schemas.openxmlformats.org/package/2006/sheetjs/core-properties',\n\t'vt': 'http://schemas.openxmlformats.org/officeDocument/2006/docPropsVTypes',\n\t'xsi': 'http://www.w3.org/2001/XMLSchema-instance',\n\t'xsd': 'http://www.w3.org/2001/XMLSchema'\n}/*:any*/);\n\nvar XMLNS_main = [\n\t'http://schemas.openxmlformats.org/spreadsheetml/2006/main',\n\t'http://purl.oclc.org/ooxml/spreadsheetml/main',\n\t'http://schemas.microsoft.com/office/excel/2006/main',\n\t'http://schemas.microsoft.com/office/excel/2006/2'\n];\n\nvar XLMLNS = ({\n\t'o': 'urn:schemas-microsoft-com:office:office',\n\t'x': 'urn:schemas-microsoft-com:office:excel',\n\t'ss': 'urn:schemas-microsoft-com:office:spreadsheet',\n\t'dt': 'uuid:C2F41010-65B3-11d1-A29F-00AA00C14882',\n\t'mv': 'http://macVmlSchemaUri',\n\t'v': 'urn:schemas-microsoft-com:vml',\n\t'html': 'http://www.w3.org/TR/REC-html40'\n}/*:any*/);\nfunction read_double_le(b/*:RawBytes|CFBlob*/, idx/*:number*/)/*:number*/ {\n\tvar s = 1 - 2 * (b[idx + 7] >>> 7);\n\tvar e = ((b[idx + 7] & 0x7f) << 4) + ((b[idx + 6] >>> 4) & 0x0f);\n\tvar m = (b[idx+6]&0x0f);\n\tfor(var i = 5; i >= 0; --i) m = m * 256 + b[idx + i];\n\tif(e == 0x7ff) return m == 0 ? (s * Infinity) : NaN;\n\tif(e == 0) e = -1022;\n\telse { e -= 1023; m += Math.pow(2,52); }\n\treturn s * Math.pow(2, e - 52) * m;\n}\n\nfunction write_double_le(b/*:RawBytes|CFBlob*/, v/*:number*/, idx/*:number*/) {\n\tvar bs = ((((v < 0) || (1/v == -Infinity)) ? 1 : 0) << 7), e = 0, m = 0;\n\tvar av = bs ? (-v) : v;\n\tif(!isFinite(av)) { e = 0x7ff; m = isNaN(v) ? 0x6969 : 0; }\n\telse if(av == 0) e = m = 0;\n\telse {\n\t\te = Math.floor(Math.log(av) / Math.LN2);\n\t\tm = av * Math.pow(2, 52 - e);\n\t\tif((e <= -1023) && (!isFinite(m) || (m < Math.pow(2,52)))) { e = -1022; }\n\t\telse { m -= Math.pow(2,52); e+=1023; }\n\t}\n\tfor(var i = 0; i <= 5; ++i, m/=256) b[idx + i] = m & 0xff;\n\tb[idx + 6] = ((e & 0x0f) << 4) | (m & 0xf);\n\tb[idx + 7] = (e >> 4) | bs;\n}\n\nvar ___toBuffer = function(bufs/*:Array >*/)/*:RawBytes*/ { var x=[],w=10240; for(var i=0;i 0 && Buffer.isBuffer(bufs[0][0])) ? Buffer.concat(bufs[0].map(function(x) { return Buffer.isBuffer(x) ? x : Buffer_from(x); })) : ___toBuffer(bufs);} : ___toBuffer;\n\nvar ___utf16le = function(b/*:RawBytes|CFBlob*/,s/*:number*/,e/*:number*/)/*:string*/ { var ss/*:Array*/=[]; for(var i=s; i*/=[]; for(var i=s; i 0 ? __utf8(b, i+4,i+4+len-1) : \"\";};\nvar __lpstr = ___lpstr;\n\nvar ___cpstr = function(b/*:RawBytes|CFBlob*/,i/*:number*/) { var len = __readUInt32LE(b,i); return len > 0 ? __utf8(b, i+4,i+4+len-1) : \"\";};\nvar __cpstr = ___cpstr;\n\nvar ___lpwstr = function(b/*:RawBytes|CFBlob*/,i/*:number*/) { var len = 2*__readUInt32LE(b,i); return len > 0 ? __utf8(b, i+4,i+4+len-1) : \"\";};\nvar __lpwstr = ___lpwstr;\n\nvar ___lpp4 = function lpp4_(b/*:RawBytes|CFBlob*/,i/*:number*/) { var len = __readUInt32LE(b,i); return len > 0 ? __utf16le(b, i+4,i+4+len) : \"\";};\nvar __lpp4 = ___lpp4;\n\nvar ___8lpp4 = function(b/*:RawBytes|CFBlob*/,i/*:number*/) { var len = __readUInt32LE(b,i); return len > 0 ? __utf8(b, i+4,i+4+len) : \"\";};\nvar __8lpp4 = ___8lpp4;\n\nvar ___double = function(b/*:RawBytes|CFBlob*/, idx/*:number*/) { return read_double_le(b, idx);};\nvar __double = ___double;\n\nvar is_buf = function is_buf_a(a) { return Array.isArray(a) || (typeof Uint8Array !== \"undefined\" && a instanceof Uint8Array); };\n\nif(has_buf/*:: && typeof Buffer !== 'undefined'*/) {\n\t__lpstr = function lpstr_b(b/*:RawBytes|CFBlob*/, i/*:number*/) { if(!Buffer.isBuffer(b)/*:: || !(b instanceof Buffer)*/) return ___lpstr(b, i); var len = b.readUInt32LE(i); return len > 0 ? b.toString('utf8',i+4,i+4+len-1) : \"\";};\n\t__cpstr = function cpstr_b(b/*:RawBytes|CFBlob*/, i/*:number*/) { if(!Buffer.isBuffer(b)/*:: || !(b instanceof Buffer)*/) return ___cpstr(b, i); var len = b.readUInt32LE(i); return len > 0 ? b.toString('utf8',i+4,i+4+len-1) : \"\";};\n\t__lpwstr = function lpwstr_b(b/*:RawBytes|CFBlob*/, i/*:number*/) { if(!Buffer.isBuffer(b)/*:: || !(b instanceof Buffer)*/ || !buf_utf16le) return ___lpwstr(b, i); var len = 2*b.readUInt32LE(i); return b.toString('utf16le',i+4,i+4+len-1);};\n\t__lpp4 = function lpp4_b(b/*:RawBytes|CFBlob*/, i/*:number*/) { if(!Buffer.isBuffer(b)/*:: || !(b instanceof Buffer)*/ || !buf_utf16le) return ___lpp4(b, i); var len = b.readUInt32LE(i); return b.toString('utf16le',i+4,i+4+len);};\n\t__8lpp4 = function lpp4_8b(b/*:RawBytes|CFBlob*/, i/*:number*/) { if(!Buffer.isBuffer(b)/*:: || !(b instanceof Buffer)*/) return ___8lpp4(b, i); var len = b.readUInt32LE(i); return b.toString('utf8',i+4,i+4+len);};\n\t__double = function double_(b/*:RawBytes|CFBlob*/, i/*:number*/) { if(Buffer.isBuffer(b)/*::&& b instanceof Buffer*/) return b.readDoubleLE(i); return ___double(b,i); };\n\tis_buf = function is_buf_b(a) { return Buffer.isBuffer(a) || Array.isArray(a) || (typeof Uint8Array !== \"undefined\" && a instanceof Uint8Array); };\n}\n\n/* from js-xls */\nfunction cpdoit() {\n\t__utf16le = function(b/*:RawBytes|CFBlob*/,s/*:number*/,e/*:number*/) { return $cptable.utils.decode(1200, b.slice(s,e)).replace(chr0, ''); };\n\t__utf8 = function(b/*:RawBytes|CFBlob*/,s/*:number*/,e/*:number*/) { return $cptable.utils.decode(65001, b.slice(s,e)); };\n\t__lpstr = function(b/*:RawBytes|CFBlob*/,i/*:number*/) { var len = __readUInt32LE(b,i); return len > 0 ? $cptable.utils.decode(current_ansi, b.slice(i+4, i+4+len-1)) : \"\";};\n\t__cpstr = function(b/*:RawBytes|CFBlob*/,i/*:number*/) { var len = __readUInt32LE(b,i); return len > 0 ? $cptable.utils.decode(current_codepage, b.slice(i+4, i+4+len-1)) : \"\";};\n\t__lpwstr = function(b/*:RawBytes|CFBlob*/,i/*:number*/) { var len = 2*__readUInt32LE(b,i); return len > 0 ? $cptable.utils.decode(1200, b.slice(i+4,i+4+len-1)) : \"\";};\n\t__lpp4 = function(b/*:RawBytes|CFBlob*/,i/*:number*/) { var len = __readUInt32LE(b,i); return len > 0 ? $cptable.utils.decode(1200, b.slice(i+4,i+4+len)) : \"\";};\n\t__8lpp4 = function(b/*:RawBytes|CFBlob*/,i/*:number*/) { var len = __readUInt32LE(b,i); return len > 0 ? $cptable.utils.decode(65001, b.slice(i+4,i+4+len)) : \"\";};\n}\nif(typeof $cptable !== 'undefined') cpdoit();\n\nvar __readUInt8 = function(b/*:RawBytes|CFBlob*/, idx/*:number*/)/*:number*/ { return b[idx]; };\nvar __readUInt16LE = function(b/*:RawBytes|CFBlob*/, idx/*:number*/)/*:number*/ { return (b[idx+1]*(1<<8))+b[idx]; };\nvar __readInt16LE = function(b/*:RawBytes|CFBlob*/, idx/*:number*/)/*:number*/ { var u = (b[idx+1]*(1<<8))+b[idx]; return (u < 0x8000) ? u : ((0xffff - u + 1) * -1); };\nvar __readUInt32LE = function(b/*:RawBytes|CFBlob*/, idx/*:number*/)/*:number*/ { return b[idx+3]*(1<<24)+(b[idx+2]<<16)+(b[idx+1]<<8)+b[idx]; };\nvar __readInt32LE = function(b/*:RawBytes|CFBlob*/, idx/*:number*/)/*:number*/ { return (b[idx+3]<<24)|(b[idx+2]<<16)|(b[idx+1]<<8)|b[idx]; };\nvar __readInt32BE = function(b/*:RawBytes|CFBlob*/, idx/*:number*/)/*:number*/ { return (b[idx]<<24)|(b[idx+1]<<16)|(b[idx+2]<<8)|b[idx+3]; };\n\nfunction ReadShift(size/*:number*/, t/*:?string*/)/*:number|string*/ {\n\tvar o=\"\", oI/*:: :number = 0*/, oR, oo=[], w, vv, i, loc;\n\tswitch(t) {\n\t\tcase 'dbcs':\n\t\t\tloc = this.l;\n\t\t\tif(has_buf && Buffer.isBuffer(this) && buf_utf16le) o = this.slice(this.l, this.l+2*size).toString(\"utf16le\");\n\t\t\telse for(i = 0; i < size; ++i) { o+=String.fromCharCode(__readUInt16LE(this, loc)); loc+=2; }\n\t\t\tsize *= 2;\n\t\t\tbreak;\n\n\t\tcase 'utf8': o = __utf8(this, this.l, this.l + size); break;\n\t\tcase 'utf16le': size *= 2; o = __utf16le(this, this.l, this.l + size); break;\n\n\t\tcase 'wstr':\n\t\t\tif(typeof $cptable !== 'undefined') o = $cptable.utils.decode(current_codepage, this.slice(this.l, this.l+2*size));\n\t\t\telse return ReadShift.call(this, size, 'dbcs');\n\t\t\tsize = 2 * size; break;\n\n\t\t/* [MS-OLEDS] 2.1.4 LengthPrefixedAnsiString */\n\t\tcase 'lpstr-ansi': o = __lpstr(this, this.l); size = 4 + __readUInt32LE(this, this.l); break;\n\t\tcase 'lpstr-cp': o = __cpstr(this, this.l); size = 4 + __readUInt32LE(this, this.l); break;\n\t\t/* [MS-OLEDS] 2.1.5 LengthPrefixedUnicodeString */\n\t\tcase 'lpwstr': o = __lpwstr(this, this.l); size = 4 + 2 * __readUInt32LE(this, this.l); break;\n\t\t/* [MS-OFFCRYPTO] 2.1.2 Length-Prefixed Padded Unicode String (UNICODE-LP-P4) */\n\t\tcase 'lpp4': size = 4 + __readUInt32LE(this, this.l); o = __lpp4(this, this.l); if(size & 0x02) size += 2; break;\n\t\t/* [MS-OFFCRYPTO] 2.1.3 Length-Prefixed UTF-8 String (UTF-8-LP-P4) */\n\t\tcase '8lpp4': size = 4 + __readUInt32LE(this, this.l); o = __8lpp4(this, this.l); if(size & 0x03) size += 4 - (size & 0x03); break;\n\n\t\tcase 'cstr': size = 0; o = \"\";\n\t\t\twhile((w=__readUInt8(this, this.l + size++))!==0) oo.push(_getchar(w));\n\t\t\to = oo.join(\"\"); break;\n\t\tcase '_wstr': size = 0; o = \"\";\n\t\t\twhile((w=__readUInt16LE(this,this.l +size))!==0){oo.push(_getchar(w));size+=2;}\n\t\t\tsize+=2; o = oo.join(\"\"); break;\n\n\t\t/* sbcs and dbcs support continue records in the SST way TODO codepages */\n\t\tcase 'dbcs-cont': o = \"\"; loc = this.l;\n\t\t\tfor(i = 0; i < size; ++i) {\n\t\t\t\tif(this.lens && this.lens.indexOf(loc) !== -1) {\n\t\t\t\t\tw = __readUInt8(this, loc);\n\t\t\t\t\tthis.l = loc + 1;\n\t\t\t\t\tvv = ReadShift.call(this, size-i, w ? 'dbcs-cont' : 'sbcs-cont');\n\t\t\t\t\treturn oo.join(\"\") + vv;\n\t\t\t\t}\n\t\t\t\too.push(_getchar(__readUInt16LE(this, loc)));\n\t\t\t\tloc+=2;\n\t\t\t} o = oo.join(\"\"); size *= 2; break;\n\n\t\tcase 'cpstr':\n\t\t\tif(typeof $cptable !== 'undefined') {\n\t\t\t\to = $cptable.utils.decode(current_codepage, this.slice(this.l, this.l + size));\n\t\t\t\tbreak;\n\t\t\t}\n\t\t/* falls through */\n\t\tcase 'sbcs-cont': o = \"\"; loc = this.l;\n\t\t\tfor(i = 0; i != size; ++i) {\n\t\t\t\tif(this.lens && this.lens.indexOf(loc) !== -1) {\n\t\t\t\t\tw = __readUInt8(this, loc);\n\t\t\t\t\tthis.l = loc + 1;\n\t\t\t\t\tvv = ReadShift.call(this, size-i, w ? 'dbcs-cont' : 'sbcs-cont');\n\t\t\t\t\treturn oo.join(\"\") + vv;\n\t\t\t\t}\n\t\t\t\too.push(_getchar(__readUInt8(this, loc)));\n\t\t\t\tloc+=1;\n\t\t\t} o = oo.join(\"\"); break;\n\n\t\tdefault:\n\tswitch(size) {\n\t\tcase 1: oI = __readUInt8(this, this.l); this.l++; return oI;\n\t\tcase 2: oI = (t === 'i' ? __readInt16LE : __readUInt16LE)(this, this.l); this.l += 2; return oI;\n\t\tcase 4: case -4:\n\t\t\tif(t === 'i' || ((this[this.l+3] & 0x80)===0)) { oI = ((size > 0) ? __readInt32LE : __readInt32BE)(this, this.l); this.l += 4; return oI; }\n\t\t\telse { oR = __readUInt32LE(this, this.l); this.l += 4; } return oR;\n\t\tcase 8: case -8:\n\t\t\tif(t === 'f') {\n\t\t\t\tif(size == 8) oR = __double(this, this.l);\n\t\t\t\telse oR = __double([this[this.l+7],this[this.l+6],this[this.l+5],this[this.l+4],this[this.l+3],this[this.l+2],this[this.l+1],this[this.l+0]], 0);\n\t\t\t\tthis.l += 8; return oR;\n\t\t\t} else size = 8;\n\t\t/* falls through */\n\t\tcase 16: o = __hexlify(this, this.l, size); break;\n\t}}\n\tthis.l+=size; return o;\n}\n\nvar __writeUInt32LE = function(b/*:RawBytes|CFBlob*/, val/*:number*/, idx/*:number*/)/*:void*/ { b[idx] = (val & 0xFF); b[idx+1] = ((val >>> 8) & 0xFF); b[idx+2] = ((val >>> 16) & 0xFF); b[idx+3] = ((val >>> 24) & 0xFF); };\nvar __writeInt32LE = function(b/*:RawBytes|CFBlob*/, val/*:number*/, idx/*:number*/)/*:void*/ { b[idx] = (val & 0xFF); b[idx+1] = ((val >> 8) & 0xFF); b[idx+2] = ((val >> 16) & 0xFF); b[idx+3] = ((val >> 24) & 0xFF); };\nvar __writeUInt16LE = function(b/*:RawBytes|CFBlob*/, val/*:number*/, idx/*:number*/)/*:void*/ { b[idx] = (val & 0xFF); b[idx+1] = ((val >>> 8) & 0xFF); };\n\nfunction WriteShift(t/*:number*/, val/*:string|number*/, f/*:?string*/)/*:any*/ {\n\tvar size = 0, i = 0;\n\tif(f === 'dbcs') {\n\t\t/*:: if(typeof val !== 'string') throw new Error(\"unreachable\"); */\n\t\tfor(i = 0; i != val.length; ++i) __writeUInt16LE(this, val.charCodeAt(i), this.l + 2 * i);\n\t\tsize = 2 * val.length;\n\t} else if(f === 'sbcs' || f == 'cpstr') {\n\t\tif(typeof $cptable !== 'undefined' && current_ansi == 874) {\n\t\t\t/* TODO: use tables directly, don't encode */\n\t\t\t/*:: if(typeof val !== \"string\") throw new Error(\"unreachable\"); */\n\t\t\tfor(i = 0; i != val.length; ++i) {\n\t\t\t\tvar cpp = $cptable.utils.encode(current_ansi, val.charAt(i));\n\t\t\t\tthis[this.l + i] = cpp[0];\n\t\t\t}\n\t\t\tsize = val.length;\n\t\t} else if(typeof $cptable !== 'undefined' && f == 'cpstr') {\n\t\t\tcpp = $cptable.utils.encode(current_codepage, val);\n\t\t\t/* replace null bytes with _ when relevant */\n if(cpp.length == val.length) for(i = 0; i < val.length; ++i) if(cpp[i] == 0 && val.charCodeAt(i) != 0) cpp[i] = 0x5F;\n if(cpp.length == 2 * val.length) for(i = 0; i < val.length; ++i) if(cpp[2*i] == 0 && cpp[2*i+1] == 0 && val.charCodeAt(i) != 0) cpp[2*i] = 0x5F;\n\t\t\tfor(i = 0; i < cpp.length; ++i) this[this.l + i] = cpp[i];\n\t\t\tsize = cpp.length;\n\t\t} else {\n\t\t\t/*:: if(typeof val !== 'string') throw new Error(\"unreachable\"); */\n\t\t\tval = val.replace(/[^\\x00-\\x7F]/g, \"_\");\n\t\t\t/*:: if(typeof val !== 'string') throw new Error(\"unreachable\"); */\n\t\t\tfor(i = 0; i != val.length; ++i) this[this.l + i] = (val.charCodeAt(i) & 0xFF);\n\t\t\tsize = val.length;\n\t\t}\n\t} else if(f === 'hex') {\n\t\tfor(; i < t; ++i) {\n\t\t\t/*:: if(typeof val !== \"string\") throw new Error(\"unreachable\"); */\n\t\t\tthis[this.l++] = (parseInt(val.slice(2*i, 2*i+2), 16)||0);\n\t\t} return this;\n\t} else if(f === 'utf16le') {\n\t\t\t/*:: if(typeof val !== \"string\") throw new Error(\"unreachable\"); */\n\t\t\tvar end/*:number*/ = Math.min(this.l + t, this.length);\n\t\t\tfor(i = 0; i < Math.min(val.length, t); ++i) {\n\t\t\t\tvar cc = val.charCodeAt(i);\n\t\t\t\tthis[this.l++] = (cc & 0xff);\n\t\t\t\tthis[this.l++] = (cc >> 8);\n\t\t\t}\n\t\t\twhile(this.l < end) this[this.l++] = 0;\n\t\t\treturn this;\n\t} else /*:: if(typeof val === 'number') */ switch(t) {\n\t\tcase 1: size = 1; this[this.l] = val&0xFF; break;\n\t\tcase 2: size = 2; this[this.l] = val&0xFF; val >>>= 8; this[this.l+1] = val&0xFF; break;\n\t\tcase 3: size = 3; this[this.l] = val&0xFF; val >>>= 8; this[this.l+1] = val&0xFF; val >>>= 8; this[this.l+2] = val&0xFF; break;\n\t\tcase 4: size = 4; __writeUInt32LE(this, val, this.l); break;\n\t\tcase 8: size = 8; if(f === 'f') { write_double_le(this, val, this.l); break; }\n\t\t/* falls through */\n\t\tcase 16: break;\n\t\tcase -4: size = 4; __writeInt32LE(this, val, this.l); break;\n\t}\n\tthis.l += size; return this;\n}\n\nfunction CheckField(hexstr/*:string*/, fld/*:string*/)/*:void*/ {\n\tvar m = __hexlify(this,this.l,hexstr.length>>1);\n\tif(m !== hexstr) throw new Error(fld + 'Expected ' + hexstr + ' saw ' + m);\n\tthis.l += hexstr.length>>1;\n}\n\nfunction prep_blob(blob, pos/*:number*/)/*:void*/ {\n\tblob.l = pos;\n\tblob.read_shift = /*::(*/ReadShift/*:: :any)*/;\n\tblob.chk = CheckField;\n\tblob.write_shift = WriteShift;\n}\n\nfunction parsenoop(blob, length/*:: :number, opts?:any */) { blob.l += length; }\n\nfunction new_buf(sz/*:number*/)/*:Block*/ {\n\tvar o = new_raw_buf(sz);\n\tprep_blob(o, 0);\n\treturn o;\n}\n\n/* [MS-XLSB] 2.1.4 Record */\nfunction recordhopper(data, cb/*:RecordHopperCB*/, opts/*:?any*/) {\n\tif(!data) return;\n\tvar tmpbyte, cntbyte, length;\n\tprep_blob(data, data.l || 0);\n\tvar L = data.length, RT = 0, tgt = 0;\n\twhile(data.l < L) {\n\t\tRT = data.read_shift(1);\n\t\tif(RT & 0x80) RT = (RT & 0x7F) + ((data.read_shift(1) & 0x7F)<<7);\n\t\tvar R = XLSBRecordEnum[RT] || XLSBRecordEnum[0xFFFF];\n\t\ttmpbyte = data.read_shift(1);\n\t\tlength = tmpbyte & 0x7F;\n\t\tfor(cntbyte = 1; cntbyte <4 && (tmpbyte & 0x80); ++cntbyte) length += ((tmpbyte = data.read_shift(1)) & 0x7F)<<(7*cntbyte);\n\t\ttgt = data.l + length;\n\t\tvar d = R.f && R.f(data, length, opts);\n\t\tdata.l = tgt;\n\t\tif(cb(d, R, RT)) return;\n\t}\n}\n\n/* control buffer usage for fixed-length buffers */\nfunction buf_array()/*:BufArray*/ {\n\tvar bufs/*:Array*/ = [], blksz = has_buf ? 256 : 2048;\n\tvar newblk = function ba_newblk(sz/*:number*/)/*:Block*/ {\n\t\tvar o/*:Block*/ = (new_buf(sz)/*:any*/);\n\t\tprep_blob(o, 0);\n\t\treturn o;\n\t};\n\n\tvar curbuf/*:Block*/ = newblk(blksz);\n\n\tvar endbuf = function ba_endbuf() {\n\t\tif(!curbuf) return;\n\t\t// workaround for new Buffer(3).slice(0,0) bug in bun 0.1.3\n\t\tif(curbuf.l) {\n\t\t\tif(curbuf.length > curbuf.l) { curbuf = curbuf.slice(0, curbuf.l); curbuf.l = curbuf.length; }\n\t\t\tif(curbuf.length > 0) bufs.push(curbuf);\n\t\t}\n\t\tcurbuf = null;\n\t};\n\n\tvar next = function ba_next(sz/*:number*/)/*:Block*/ {\n\t\tif(curbuf && (sz < (curbuf.length - curbuf.l))) return curbuf;\n\t\tendbuf();\n\t\treturn (curbuf = newblk(Math.max(sz+1, blksz)));\n\t};\n\n\tvar end = function ba_end() {\n\t\tendbuf();\n\t\treturn bconcat(bufs);\n\t};\n\n\tvar push = function ba_push(buf) { endbuf(); curbuf = buf; if(curbuf.l == null) curbuf.l = curbuf.length; next(blksz); };\n\n\treturn ({ next:next, push:push, end:end, _bufs:bufs }/*:any*/);\n}\n\nfunction write_record(ba/*:BufArray*/, type/*:number*/, payload, length/*:?number*/) {\n\tvar t/*:number*/ = +type, l;\n\tif(isNaN(t)) return; // TODO: throw something here?\n\tif(!length) length = XLSBRecordEnum[t].p || (payload||[]).length || 0;\n\tl = 1 + (t >= 0x80 ? 1 : 0) + 1/* + length*/;\n\tif(length >= 0x80) ++l; if(length >= 0x4000) ++l; if(length >= 0x200000) ++l;\n\tvar o = ba.next(l);\n\tif(t <= 0x7F) o.write_shift(1, t);\n\telse {\n\t\to.write_shift(1, (t & 0x7F) + 0x80);\n\t\to.write_shift(1, (t >> 7));\n\t}\n\tfor(var i = 0; i != 4; ++i) {\n\t\tif(length >= 0x80) { o.write_shift(1, (length & 0x7F)+0x80); length >>= 7; }\n\t\telse { o.write_shift(1, length); break; }\n\t}\n\tif(/*:: length != null &&*/length > 0 && is_buf(payload)) ba.push(payload);\n}\n/* XLS ranges enforced */\nfunction shift_cell_xls(cell/*:CellAddress*/, tgt/*:any*/, opts/*:?any*/)/*:CellAddress*/ {\n\tvar out = dup(cell);\n\tif(tgt.s) {\n\t\tif(out.cRel) out.c += tgt.s.c;\n\t\tif(out.rRel) out.r += tgt.s.r;\n\t} else {\n\t\tif(out.cRel) out.c += tgt.c;\n\t\tif(out.rRel) out.r += tgt.r;\n\t}\n\tif(!opts || opts.biff < 12) {\n\t\twhile(out.c >= 0x100) out.c -= 0x100;\n\t\twhile(out.r >= 0x10000) out.r -= 0x10000;\n\t}\n\treturn out;\n}\n\nfunction shift_range_xls(cell, range, opts) {\n\tvar out = dup(cell);\n\tout.s = shift_cell_xls(out.s, range.s, opts);\n\tout.e = shift_cell_xls(out.e, range.s, opts);\n\treturn out;\n}\n\nfunction encode_cell_xls(c/*:CellAddress*/, biff/*:number*/)/*:string*/ {\n\tif(c.cRel && c.c < 0) { c = dup(c); while(c.c < 0) c.c += (biff > 8) ? 0x4000 : 0x100; }\n\tif(c.rRel && c.r < 0) { c = dup(c); while(c.r < 0) c.r += (biff > 8) ? 0x100000 : ((biff > 5) ? 0x10000 : 0x4000); }\n\tvar s = encode_cell(c);\n\tif(!c.cRel && c.cRel != null) s = fix_col(s);\n\tif(!c.rRel && c.rRel != null) s = fix_row(s);\n\treturn s;\n}\n\nfunction encode_range_xls(r, opts)/*:string*/ {\n\tif(r.s.r == 0 && !r.s.rRel) {\n\t\tif(r.e.r == (opts.biff >= 12 ? 0xFFFFF : (opts.biff >= 8 ? 0x10000 : 0x4000)) && !r.e.rRel) {\n\t\t\treturn (r.s.cRel ? \"\" : \"$\") + encode_col(r.s.c) + \":\" + (r.e.cRel ? \"\" : \"$\") + encode_col(r.e.c);\n\t\t}\n\t}\n\tif(r.s.c == 0 && !r.s.cRel) {\n\t\tif(r.e.c == (opts.biff >= 12 ? 0x3FFF : 0xFF) && !r.e.cRel) {\n\t\t\treturn (r.s.rRel ? \"\" : \"$\") + encode_row(r.s.r) + \":\" + (r.e.rRel ? \"\" : \"$\") + encode_row(r.e.r);\n\t\t}\n\t}\n\treturn encode_cell_xls(r.s, opts.biff) + \":\" + encode_cell_xls(r.e, opts.biff);\n}\nfunction decode_row(rowstr/*:string*/)/*:number*/ { return parseInt(unfix_row(rowstr),10) - 1; }\nfunction encode_row(row/*:number*/)/*:string*/ { return \"\" + (row + 1); }\nfunction fix_row(cstr/*:string*/)/*:string*/ { return cstr.replace(/([A-Z]|^)(\\d+)$/,\"$1$$$2\"); }\nfunction unfix_row(cstr/*:string*/)/*:string*/ { return cstr.replace(/\\$(\\d+)$/,\"$1\"); }\n\nfunction decode_col(colstr/*:string*/)/*:number*/ { var c = unfix_col(colstr), d = 0, i = 0; for(; i !== c.length; ++i) d = 26*d + c.charCodeAt(i) - 64; return d - 1; }\nfunction encode_col(col/*:number*/)/*:string*/ { if(col < 0) throw new Error(\"invalid column \" + col); var s=\"\"; for(++col; col; col=Math.floor((col-1)/26)) s = String.fromCharCode(((col-1)%26) + 65) + s; return s; }\nfunction fix_col(cstr/*:string*/)/*:string*/ { return cstr.replace(/^([A-Z])/,\"$$$1\"); }\nfunction unfix_col(cstr/*:string*/)/*:string*/ { return cstr.replace(/^\\$([A-Z])/,\"$1\"); }\n\nfunction split_cell(cstr/*:string*/)/*:Array*/ { return cstr.replace(/(\\$?[A-Z]*)(\\$?\\d*)/,\"$1,$2\").split(\",\"); }\nfunction decode_cell(cstr/*:string*/)/*:CellAddress*/ {\n\tvar R = 0, C = 0;\n\tfor(var i = 0; i < cstr.length; ++i) {\n\t\tvar cc = cstr.charCodeAt(i);\n\t\tif(cc >= 48 && cc <= 57) R = 10 * R + (cc - 48);\n\t\telse if(cc >= 65 && cc <= 90) C = 26 * C + (cc - 64);\n\t}\n\treturn { c: C - 1, r:R - 1 };\n}\nfunction encode_cell(cell/*:CellAddress*/)/*:string*/ {\n\tvar col = cell.c + 1;\n\tvar s=\"\";\n\tfor(; col; col=((col-1)/26)|0) s = String.fromCharCode(((col-1)%26) + 65) + s;\n\treturn s + (cell.r + 1);\n}\nfunction decode_range(range/*:string*/)/*:Range*/ {\n\tvar idx = range.indexOf(\":\");\n\tif(idx == -1) return { s: decode_cell(range), e: decode_cell(range) };\n\treturn { s: decode_cell(range.slice(0, idx)), e: decode_cell(range.slice(idx + 1)) };\n}\n/*# if only one arg, it is assumed to be a Range. If 2 args, both are cell addresses */\nfunction encode_range(cs/*:CellAddrSpec|Range*/,ce/*:?CellAddrSpec*/)/*:string*/ {\n\tif(typeof ce === 'undefined' || typeof ce === 'number') {\n/*:: if(!(cs instanceof Range)) throw \"unreachable\"; */\n\t\treturn encode_range(cs.s, cs.e);\n\t}\n/*:: if((cs instanceof Range)) throw \"unreachable\"; */\n\tif(typeof cs !== 'string') cs = encode_cell((cs/*:any*/));\n\tif(typeof ce !== 'string') ce = encode_cell((ce/*:any*/));\n/*:: if(typeof cs !== 'string') throw \"unreachable\"; */\n/*:: if(typeof ce !== 'string') throw \"unreachable\"; */\n\treturn cs == ce ? cs : cs + \":\" + ce;\n}\nfunction fix_range(a1/*:string*/)/*:string*/ {\n\tvar s = decode_range(a1);\n\treturn \"$\" + encode_col(s.s.c) + \"$\" + encode_row(s.s.r) + \":$\" + encode_col(s.e.c) + \"$\" + encode_row(s.e.r);\n}\n\n// List of invalid characters needs to be tested further\nfunction formula_quote_sheet_name(sname/*:string*/, opts)/*:string*/ {\n\tif(!sname && !(opts && opts.biff <= 5 && opts.biff >= 2)) throw new Error(\"empty sheet name\");\n\tif (/[^\\w\\u4E00-\\u9FFF\\u3040-\\u30FF]/.test(sname)) return \"'\" + sname.replace(/'/g, \"''\") + \"'\";\n\treturn sname;\n}\n\nfunction safe_decode_range(range/*:string*/)/*:Range*/ {\n\tvar o = {s:{c:0,r:0},e:{c:0,r:0}};\n\tvar idx = 0, i = 0, cc = 0;\n\tvar len = range.length;\n\tfor(idx = 0; i < len; ++i) {\n\t\tif((cc=range.charCodeAt(i)-64) < 1 || cc > 26) break;\n\t\tidx = 26*idx + cc;\n\t}\n\to.s.c = --idx;\n\n\tfor(idx = 0; i < len; ++i) {\n\t\tif((cc=range.charCodeAt(i)-48) < 0 || cc > 9) break;\n\t\tidx = 10*idx + cc;\n\t}\n\to.s.r = --idx;\n\n\tif(i === len || cc != 10) { o.e.c=o.s.c; o.e.r=o.s.r; return o; }\n\t++i;\n\n\tfor(idx = 0; i != len; ++i) {\n\t\tif((cc=range.charCodeAt(i)-64) < 1 || cc > 26) break;\n\t\tidx = 26*idx + cc;\n\t}\n\to.e.c = --idx;\n\n\tfor(idx = 0; i != len; ++i) {\n\t\tif((cc=range.charCodeAt(i)-48) < 0 || cc > 9) break;\n\t\tidx = 10*idx + cc;\n\t}\n\to.e.r = --idx;\n\treturn o;\n}\n\nfunction safe_format_cell(cell/*:Cell*/, v/*:any*/) {\n\tvar q = (cell.t == 'd' && v instanceof Date);\n\tif(cell.z != null) try { return (cell.w = SSF_format(cell.z, q ? datenum(v) : v)); } catch(e) { }\n\ttry { return (cell.w = SSF_format((cell.XF||{}).numFmtId||(q ? 14 : 0), q ? datenum(v) : v)); } catch(e) { return ''+v; }\n}\n\nfunction format_cell(cell/*:Cell*/, v/*:any*/, o/*:any*/) {\n\tif(cell == null || cell.t == null || cell.t == 'z') return \"\";\n\tif(cell.w !== undefined) return cell.w;\n\tif(cell.t == 'd' && !cell.z && o && o.dateNF) cell.z = o.dateNF;\n\tif(cell.t == \"e\") return BErr[cell.v] || cell.v;\n\tif(v == undefined) return safe_format_cell(cell, cell.v);\n\treturn safe_format_cell(cell, v);\n}\n\nfunction sheet_to_workbook(sheet/*:Worksheet*/, opts)/*:Workbook*/ {\n\tvar n = opts && opts.sheet ? opts.sheet : \"Sheet1\";\n\tvar sheets = {}; sheets[n] = sheet;\n\treturn { SheetNames: [n], Sheets: sheets };\n}\n\nfunction sheet_add_aoa(_ws/*:?Worksheet*/, data/*:AOA*/, opts/*:?any*/)/*:Worksheet*/ {\n\tvar o = opts || {};\n\tvar dense = _ws ? (_ws[\"!data\"] != null) : o.dense;\n\tif(DENSE != null && dense == null) dense = DENSE;\n\tvar ws/*:Worksheet*/ = _ws || ({}/*:any*/);\n\tif(dense && !ws[\"!data\"]) ws[\"!data\"] = [];\n\tvar _R = 0, _C = 0;\n\tif(ws && o.origin != null) {\n\t\tif(typeof o.origin == 'number') _R = o.origin;\n\t\telse {\n\t\t\tvar _origin/*:CellAddress*/ = typeof o.origin == \"string\" ? decode_cell(o.origin) : o.origin;\n\t\t\t_R = _origin.r; _C = _origin.c;\n\t\t}\n\t\tif(!ws[\"!ref\"]) ws[\"!ref\"] = \"A1:A1\";\n\t}\n\tvar range/*:Range*/ = ({s: {c:10000000, r:10000000}, e: {c:0, r:0}}/*:any*/);\n\tif(ws['!ref']) {\n\t\tvar _range = safe_decode_range(ws['!ref']);\n\t\trange.s.c = _range.s.c;\n\t\trange.s.r = _range.s.r;\n\t\trange.e.c = Math.max(range.e.c, _range.e.c);\n\t\trange.e.r = Math.max(range.e.r, _range.e.r);\n\t\tif(_R == -1) range.e.r = _R = _range.e.r + 1;\n\t}\n\tvar row = [];\n\tfor(var R = 0; R != data.length; ++R) {\n\t\tif(!data[R]) continue;\n\t\tif(!Array.isArray(data[R])) throw new Error(\"aoa_to_sheet expects an array of arrays\");\n\t\tvar __R = _R + R, __Rstr = \"\" + (__R + 1);\n\t\tif(dense) {\n\t\t\tif(!ws[\"!data\"][__R]) ws[\"!data\"][__R] = [];\n\t\t\trow = ws[\"!data\"][__R];\n\t\t}\n\t\tfor(var C = 0; C != data[R].length; ++C) {\n\t\t\tif(typeof data[R][C] === 'undefined') continue;\n\t\t\tvar cell/*:Cell*/ = ({v: data[R][C] }/*:any*/);\n\t\t\tvar __C = _C + C;\n\t\t\tif(range.s.r > __R) range.s.r = __R;\n\t\t\tif(range.s.c > __C) range.s.c = __C;\n\t\t\tif(range.e.r < __R) range.e.r = __R;\n\t\t\tif(range.e.c < __C) range.e.c = __C;\n\t\t\tif(data[R][C] && typeof data[R][C] === 'object' && !Array.isArray(data[R][C]) && !(data[R][C] instanceof Date)) cell = data[R][C];\n\t\t\telse {\n\t\t\t\tif(Array.isArray(cell.v)) { cell.f = data[R][C][1]; cell.v = cell.v[0]; }\n\t\t\t\tif(cell.v === null) {\n\t\t\t\t\tif(cell.f) cell.t = 'n';\n\t\t\t\t\telse if(o.nullError) { cell.t = 'e'; cell.v = 0; }\n\t\t\t\t\telse if(!o.sheetStubs) continue;\n\t\t\t\t\telse cell.t = 'z';\n\t\t\t\t}\n\t\t\t\telse if(typeof cell.v === 'number') cell.t = 'n';\n\t\t\t\telse if(typeof cell.v === 'boolean') cell.t = 'b';\n\t\t\t\telse if(cell.v instanceof Date) {\n\t\t\t\t\tcell.z = o.dateNF || table_fmt[14];\n\t\t\t\t\tif(o.cellDates) { cell.t = 'd'; cell.w = SSF_format(cell.z, datenum(cell.v, o.date1904)); }\n\t\t\t\t\telse { cell.t = 'n'; cell.v = datenum(cell.v, o.date1904); cell.w = SSF_format(cell.z, cell.v); }\n\t\t\t\t}\n\t\t\t\telse cell.t = 's';\n\t\t\t}\n\t\t\tif(dense) {\n\t\t\t\tif(row[__C] && row[__C].z) cell.z = row[__C].z;\n\t\t\t\trow[__C] = cell;\n\t\t\t} else {\n\t\t\t\tvar cell_ref = encode_col(__C) + __Rstr/*:any*/;\n\t\t\t\tif(ws[cell_ref] && ws[cell_ref].z) cell.z = ws[cell_ref].z;\n\t\t\t\tws[cell_ref] = cell;\n\t\t\t}\n\t\t}\n\t}\n\tif(range.s.c < 10000000) ws['!ref'] = encode_range(range);\n\treturn ws;\n}\nfunction aoa_to_sheet(data/*:AOA*/, opts/*:?any*/)/*:Worksheet*/ { return sheet_add_aoa(null, data, opts); }\n\nfunction parse_Int32LE(data) {\n\treturn data.read_shift(4, 'i');\n}\nfunction write_UInt32LE(x/*:number*/, o) {\n\tif (!o) o = new_buf(4);\n\to.write_shift(4, x);\n\treturn o;\n}\n\n/* [MS-XLSB] 2.5.168 */\nfunction parse_XLWideString(data/*::, length*/)/*:string*/ {\n\tvar cchCharacters = data.read_shift(4);\n\treturn cchCharacters === 0 ? \"\" : data.read_shift(cchCharacters, 'dbcs');\n}\nfunction write_XLWideString(data/*:string*/, o) {\n\tvar _null = false; if (o == null) { _null = true; o = new_buf(4 + 2 * data.length); }\n\to.write_shift(4, data.length);\n\tif (data.length > 0) o.write_shift(0, data, 'dbcs');\n\treturn _null ? o.slice(0, o.l) : o;\n}\n\n/* [MS-XLSB] 2.5.91 */\n//function parse_LPWideString(data/*::, length*/)/*:string*/ {\n//\tvar cchCharacters = data.read_shift(2);\n//\treturn cchCharacters === 0 ? \"\" : data.read_shift(cchCharacters, \"utf16le\");\n//}\n\n/* [MS-XLSB] 2.5.143 */\nfunction parse_StrRun(data) {\n\treturn { ich: data.read_shift(2), ifnt: data.read_shift(2) };\n}\nfunction write_StrRun(run, o) {\n\tif (!o) o = new_buf(4);\n\to.write_shift(2, run.ich || 0);\n\to.write_shift(2, run.ifnt || 0);\n\treturn o;\n}\n\n/* [MS-XLSB] 2.5.121 */\nfunction parse_RichStr(data, length/*:number*/)/*:XLString*/ {\n\tvar start = data.l;\n\tvar flags = data.read_shift(1);\n\tvar str = parse_XLWideString(data);\n\tvar rgsStrRun = [];\n\tvar z = ({ t: str, h: str }/*:any*/);\n\tif ((flags & 1) !== 0) { /* fRichStr */\n\t\t/* TODO: formatted string */\n\t\tvar dwSizeStrRun = data.read_shift(4);\n\t\tfor (var i = 0; i != dwSizeStrRun; ++i) rgsStrRun.push(parse_StrRun(data));\n\t\tz.r = rgsStrRun;\n\t}\n\telse z.r = [{ ich: 0, ifnt: 0 }];\n\t//if((flags & 2) !== 0) { /* fExtStr */\n\t//\t/* TODO: phonetic string */\n\t//}\n\tdata.l = start + length;\n\treturn z;\n}\nfunction write_RichStr(str/*:XLString*/, o/*:?Block*/)/*:Block*/ {\n\t/* TODO: formatted string */\n\tvar _null = false; if (o == null) { _null = true; o = new_buf(15 + 4 * str.t.length); }\n\to.write_shift(1, 0);\n\twrite_XLWideString(str.t, o);\n\treturn _null ? o.slice(0, o.l) : o;\n}\n/* [MS-XLSB] 2.4.328 BrtCommentText (RichStr w/1 run) */\nvar parse_BrtCommentText = parse_RichStr;\nfunction write_BrtCommentText(str/*:XLString*/, o/*:?Block*/)/*:Block*/ {\n\t/* TODO: formatted string */\n\tvar _null = false; if (o == null) { _null = true; o = new_buf(23 + 4 * str.t.length); }\n\to.write_shift(1, 1);\n\twrite_XLWideString(str.t, o);\n\to.write_shift(4, 1);\n\twrite_StrRun({ ich: 0, ifnt: 0 }, o);\n\treturn _null ? o.slice(0, o.l) : o;\n}\n\n/* [MS-XLSB] 2.5.9 */\nfunction parse_XLSBCell(data)/*:any*/ {\n\tvar col = data.read_shift(4);\n\tvar iStyleRef = data.read_shift(2);\n\tiStyleRef += data.read_shift(1) << 16;\n\tdata.l++; //var fPhShow = data.read_shift(1);\n\treturn { c: col, iStyleRef: iStyleRef };\n}\nfunction write_XLSBCell(cell/*:any*/, o/*:?Block*/) {\n\tif (o == null) o = new_buf(8);\n\to.write_shift(-4, cell.c);\n\to.write_shift(3, cell.iStyleRef || cell.s);\n\to.write_shift(1, 0); /* fPhShow */\n\treturn o;\n}\n\n/* Short XLSB Cell does not include column */\nfunction parse_XLSBShortCell(data)/*:any*/ {\n\tvar iStyleRef = data.read_shift(2);\n\tiStyleRef += data.read_shift(1) <<16;\n\tdata.l++; //var fPhShow = data.read_shift(1);\n\treturn { c:-1, iStyleRef: iStyleRef };\n}\nfunction write_XLSBShortCell(cell/*:any*/, o/*:?Block*/) {\n\tif(o == null) o = new_buf(4);\n\to.write_shift(3, cell.iStyleRef || cell.s);\n\to.write_shift(1, 0); /* fPhShow */\n\treturn o;\n}\n\n/* [MS-XLSB] 2.5.21 */\nvar parse_XLSBCodeName = parse_XLWideString;\nvar write_XLSBCodeName = write_XLWideString;\n\n/* [MS-XLSB] 2.5.166 */\nfunction parse_XLNullableWideString(data/*::, length*/)/*:string*/ {\n\tvar cchCharacters = data.read_shift(4);\n\treturn cchCharacters === 0 || cchCharacters === 0xFFFFFFFF ? \"\" : data.read_shift(cchCharacters, 'dbcs');\n}\nfunction write_XLNullableWideString(data/*:string*/, o) {\n\tvar _null = false; if (o == null) { _null = true; o = new_buf(127); }\n\to.write_shift(4, data.length > 0 ? data.length : 0xFFFFFFFF);\n\tif (data.length > 0) o.write_shift(0, data, 'dbcs');\n\treturn _null ? o.slice(0, o.l) : o;\n}\n\n/* [MS-XLSB] 2.5.165 */\nvar parse_XLNameWideString = parse_XLWideString;\n//var write_XLNameWideString = write_XLWideString;\n\n/* [MS-XLSB] 2.5.114 */\nvar parse_RelID = parse_XLNullableWideString;\nvar write_RelID = write_XLNullableWideString;\n\n\n/* [MS-XLS] 2.5.217 ; [MS-XLSB] 2.5.122 */\nfunction parse_RkNumber(data)/*:number*/ {\n\tvar b = data.slice(data.l, data.l + 4);\n\tvar fX100 = (b[0] & 1), fInt = (b[0] & 2);\n\tdata.l += 4;\n\tvar RK = fInt === 0 ? __double([0, 0, 0, 0, (b[0] & 0xFC), b[1], b[2], b[3]], 0) : __readInt32LE(b, 0) >> 2;\n\treturn fX100 ? (RK / 100) : RK;\n}\nfunction write_RkNumber(data/*:number*/, o) {\n\tif (o == null) o = new_buf(4);\n\tvar fX100 = 0, fInt = 0, d100 = data * 100;\n\tif ((data == (data | 0)) && (data >= -(1 << 29)) && (data < (1 << 29))) { fInt = 1; }\n\telse if ((d100 == (d100 | 0)) && (d100 >= -(1 << 29)) && (d100 < (1 << 29))) { fInt = 1; fX100 = 1; }\n\tif (fInt) o.write_shift(-4, ((fX100 ? d100 : data) << 2) + (fX100 + 2));\n\telse throw new Error(\"unsupported RkNumber \" + data); // TODO\n}\n\n\n/* [MS-XLSB] 2.5.117 RfX */\nfunction parse_RfX(data /*::, length*/)/*:Range*/ {\n\tvar cell/*:Range*/ = ({ s: {}, e: {} }/*:any*/);\n\tcell.s.r = data.read_shift(4);\n\tcell.e.r = data.read_shift(4);\n\tcell.s.c = data.read_shift(4);\n\tcell.e.c = data.read_shift(4);\n\treturn cell;\n}\nfunction write_RfX(r/*:Range*/, o) {\n\tif (!o) o = new_buf(16);\n\to.write_shift(4, r.s.r);\n\to.write_shift(4, r.e.r);\n\to.write_shift(4, r.s.c);\n\to.write_shift(4, r.e.c);\n\treturn o;\n}\n\n/* [MS-XLSB] 2.5.153 UncheckedRfX */\nvar parse_UncheckedRfX = parse_RfX;\nvar write_UncheckedRfX = write_RfX;\n\n/* [MS-XLSB] 2.5.155 UncheckedSqRfX */\n//function parse_UncheckedSqRfX(data) {\n//\tvar cnt = data.read_shift(4);\n//\tvar out = [];\n//\tfor(var i = 0; i < cnt; ++i) {\n//\t\tvar rng = parse_UncheckedRfX(data);\n//\t\tout.push(encode_range(rng));\n//\t}\n//\treturn out.join(\",\");\n//}\n//function write_UncheckedSqRfX(sqrfx/*:string*/) {\n//\tvar parts = sqrfx.split(/\\s*,\\s*/);\n//\tvar o = new_buf(4); o.write_shift(4, parts.length);\n//\tvar out = [o];\n//\tparts.forEach(function(rng) {\n//\t\tout.push(write_UncheckedRfX(safe_decode_range(rng)));\n//\t});\n//\treturn bconcat(out);\n//}\n\n/* [MS-XLS] 2.5.342 ; [MS-XLSB] 2.5.171 */\n/* TODO: error checking, NaN and Infinity values are not valid Xnum */\nfunction parse_Xnum(data/*::, length*/) {\n\tif(data.length - data.l < 8) throw \"XLS Xnum Buffer underflow\";\n\treturn data.read_shift(8, 'f');\n}\nfunction write_Xnum(data, o) { return (o || new_buf(8)).write_shift(8, data, 'f'); }\n\n/* [MS-XLSB] 2.4.324 BrtColor */\nfunction parse_BrtColor(data/*::, length*/) {\n\tvar out = {};\n\tvar d = data.read_shift(1);\n\n\t//var fValidRGB = d & 1;\n\tvar xColorType = d >>> 1;\n\n\tvar index = data.read_shift(1);\n\tvar nTS = data.read_shift(2, 'i');\n\tvar bR = data.read_shift(1);\n\tvar bG = data.read_shift(1);\n\tvar bB = data.read_shift(1);\n\tdata.l++; //var bAlpha = data.read_shift(1);\n\n\tswitch (xColorType) {\n\t\tcase 0: out.auto = 1; break;\n\t\tcase 1:\n\t\t\tout.index = index;\n\t\t\tvar icv = XLSIcv[index];\n\t\t\t/* automatic pseudo index 81 */\n\t\t\tif (icv) out.rgb = rgb2Hex(icv);\n\t\t\tbreak;\n\t\tcase 2:\n\t\t\t/* if(!fValidRGB) throw new Error(\"invalid\"); */\n\t\t\tout.rgb = rgb2Hex([bR, bG, bB]);\n\t\t\tbreak;\n\t\tcase 3: out.theme = index; break;\n\t}\n\tif (nTS != 0) out.tint = nTS > 0 ? nTS / 32767 : nTS / 32768;\n\n\treturn out;\n}\nfunction write_BrtColor(color, o) {\n\tif (!o) o = new_buf(8);\n\tif (!color || color.auto) { o.write_shift(4, 0); o.write_shift(4, 0); return o; }\n\tif (color.index != null) {\n\t\to.write_shift(1, 0x02);\n\t\to.write_shift(1, color.index);\n\t} else if (color.theme != null) {\n\t\to.write_shift(1, 0x06);\n\t\to.write_shift(1, color.theme);\n\t} else {\n\t\to.write_shift(1, 0x05);\n\t\to.write_shift(1, 0);\n\t}\n\tvar nTS = color.tint || 0;\n\tif (nTS > 0) nTS *= 32767;\n\telse if (nTS < 0) nTS *= 32768;\n\to.write_shift(2, nTS);\n\tif (!color.rgb || color.theme != null) {\n\t\to.write_shift(2, 0);\n\t\to.write_shift(1, 0);\n\t\to.write_shift(1, 0);\n\t} else {\n\t\tvar rgb = (color.rgb || 'FFFFFF');\n\t\tif (typeof rgb == 'number') rgb = (\"000000\" + rgb.toString(16)).slice(-6);\n\t\to.write_shift(1, parseInt(rgb.slice(0, 2), 16));\n\t\to.write_shift(1, parseInt(rgb.slice(2, 4), 16));\n\t\to.write_shift(1, parseInt(rgb.slice(4, 6), 16));\n\t\to.write_shift(1, 0xFF);\n\t}\n\treturn o;\n}\n\n/* [MS-XLSB] 2.5.52 */\nfunction parse_FontFlags(data/*::, length, opts*/) {\n\tvar d = data.read_shift(1);\n\tdata.l++;\n\tvar out = {\n\t\tfBold: d & 0x01,\n\t\tfItalic: d & 0x02,\n\t\tfUnderline: d & 0x04,\n\t\tfStrikeout: d & 0x08,\n\t\tfOutline: d & 0x10,\n\t\tfShadow: d & 0x20,\n\t\tfCondense: d & 0x40,\n\t\tfExtend: d & 0x80\n\t};\n\treturn out;\n}\nfunction write_FontFlags(font, o) {\n\tif (!o) o = new_buf(2);\n\tvar grbit =\n\t\t(font.italic ? 0x02 : 0) |\n\t\t(font.strike ? 0x08 : 0) |\n\t\t(font.outline ? 0x10 : 0) |\n\t\t(font.shadow ? 0x20 : 0) |\n\t\t(font.condense ? 0x40 : 0) |\n\t\t(font.extend ? 0x80 : 0);\n\to.write_shift(1, grbit);\n\to.write_shift(1, 0);\n\treturn o;\n}\n\n/* [MS-OLEDS] 2.3.1 and 2.3.2 */\nfunction parse_ClipboardFormatOrString(o, w/*:number*/)/*:string*/ {\n\t// $FlowIgnore\n\tvar ClipFmt = { 2: \"BITMAP\", 3: \"METAFILEPICT\", 8: \"DIB\", 14: \"ENHMETAFILE\" };\n\tvar m/*:number*/ = o.read_shift(4);\n\tswitch (m) {\n\t\tcase 0x00000000: return \"\";\n\t\tcase 0xffffffff: case 0xfffffffe: return ClipFmt[o.read_shift(4)] || \"\";\n\t}\n\tif (m > 0x190) throw new Error(\"Unsupported Clipboard: \" + m.toString(16));\n\to.l -= 4;\n\treturn o.read_shift(0, w == 1 ? \"lpstr\" : \"lpwstr\");\n}\nfunction parse_ClipboardFormatOrAnsiString(o) { return parse_ClipboardFormatOrString(o, 1); }\nfunction parse_ClipboardFormatOrUnicodeString(o) { return parse_ClipboardFormatOrString(o, 2); }\n\n/* [MS-OLEPS] 2.2 PropertyType */\n// Note: some tree shakers cannot handle VT_VECTOR | $CONST, hence extra vars\n//var VT_EMPTY = 0x0000;\n//var VT_NULL = 0x0001;\nvar VT_I2 = 0x0002;\nvar VT_I4 = 0x0003;\n//var VT_R4 = 0x0004;\n//var VT_R8 = 0x0005;\n//var VT_CY = 0x0006;\n//var VT_DATE = 0x0007;\n//var VT_BSTR = 0x0008;\n//var VT_ERROR = 0x000A;\nvar VT_BOOL = 0x000B;\nvar VT_VARIANT = 0x000C;\n//var VT_DECIMAL = 0x000E;\n//var VT_I1 = 0x0010;\n//var VT_UI1 = 0x0011;\n//var VT_UI2 = 0x0012;\nvar VT_UI4 = 0x0013;\n//var VT_I8 = 0x0014;\n//var VT_UI8 = 0x0015;\n//var VT_INT = 0x0016;\n//var VT_UINT = 0x0017;\n//var VT_LPSTR = 0x001E;\n//var VT_LPWSTR = 0x001F;\nvar VT_FILETIME = 0x0040;\nvar VT_BLOB = 0x0041;\n//var VT_STREAM = 0x0042;\n//var VT_STORAGE = 0x0043;\n//var VT_STREAMED_Object = 0x0044;\n//var VT_STORED_Object = 0x0045;\n//var VT_BLOB_Object = 0x0046;\nvar VT_CF = 0x0047;\n//var VT_CLSID = 0x0048;\n//var VT_VERSIONED_STREAM = 0x0049;\n//var VT_VECTOR = 0x1000;\nvar VT_VECTOR_VARIANT = 0x100C;\nvar VT_VECTOR_LPSTR = 0x101E;\n//var VT_ARRAY = 0x2000;\n\nvar VT_STRING = 0x0050; // 2.3.3.1.11 VtString\nvar VT_USTR = 0x0051; // 2.3.3.1.12 VtUnalignedString\nvar VT_CUSTOM = [VT_STRING, VT_USTR];\n\n/* [MS-OSHARED] 2.3.3.2.2.1 Document Summary Information PIDDSI */\nvar DocSummaryPIDDSI = {\n\t/*::[*/0x01/*::]*/: { n: 'CodePage', t: VT_I2 },\n\t/*::[*/0x02/*::]*/: { n: 'Category', t: VT_STRING },\n\t/*::[*/0x03/*::]*/: { n: 'PresentationFormat', t: VT_STRING },\n\t/*::[*/0x04/*::]*/: { n: 'ByteCount', t: VT_I4 },\n\t/*::[*/0x05/*::]*/: { n: 'LineCount', t: VT_I4 },\n\t/*::[*/0x06/*::]*/: { n: 'ParagraphCount', t: VT_I4 },\n\t/*::[*/0x07/*::]*/: { n: 'SlideCount', t: VT_I4 },\n\t/*::[*/0x08/*::]*/: { n: 'NoteCount', t: VT_I4 },\n\t/*::[*/0x09/*::]*/: { n: 'HiddenCount', t: VT_I4 },\n\t/*::[*/0x0a/*::]*/: { n: 'MultimediaClipCount', t: VT_I4 },\n\t/*::[*/0x0b/*::]*/: { n: 'ScaleCrop', t: VT_BOOL },\n\t/*::[*/0x0c/*::]*/: { n: 'HeadingPairs', t: VT_VECTOR_VARIANT /* VT_VECTOR | VT_VARIANT */ },\n\t/*::[*/0x0d/*::]*/: { n: 'TitlesOfParts', t: VT_VECTOR_LPSTR /* VT_VECTOR | VT_LPSTR */ },\n\t/*::[*/0x0e/*::]*/: { n: 'Manager', t: VT_STRING },\n\t/*::[*/0x0f/*::]*/: { n: 'Company', t: VT_STRING },\n\t/*::[*/0x10/*::]*/: { n: 'LinksUpToDate', t: VT_BOOL },\n\t/*::[*/0x11/*::]*/: { n: 'CharacterCount', t: VT_I4 },\n\t/*::[*/0x13/*::]*/: { n: 'SharedDoc', t: VT_BOOL },\n\t/*::[*/0x16/*::]*/: { n: 'HyperlinksChanged', t: VT_BOOL },\n\t/*::[*/0x17/*::]*/: { n: 'AppVersion', t: VT_I4, p: 'version' },\n\t/*::[*/0x18/*::]*/: { n: 'DigSig', t: VT_BLOB },\n\t/*::[*/0x1A/*::]*/: { n: 'ContentType', t: VT_STRING },\n\t/*::[*/0x1B/*::]*/: { n: 'ContentStatus', t: VT_STRING },\n\t/*::[*/0x1C/*::]*/: { n: 'Language', t: VT_STRING },\n\t/*::[*/0x1D/*::]*/: { n: 'Version', t: VT_STRING },\n\t/*::[*/0xFF/*::]*/: {},\n\t/* [MS-OLEPS] 2.18 */\n\t/*::[*/0x80000000/*::]*/: { n: 'Locale', t: VT_UI4 },\n\t/*::[*/0x80000003/*::]*/: { n: 'Behavior', t: VT_UI4 },\n\t/*::[*/0x72627262/*::]*/: {}\n};\n\n/* [MS-OSHARED] 2.3.3.2.1.1 Summary Information Property Set PIDSI */\nvar SummaryPIDSI = {\n\t/*::[*/0x01/*::]*/: { n: 'CodePage', t: VT_I2 },\n\t/*::[*/0x02/*::]*/: { n: 'Title', t: VT_STRING },\n\t/*::[*/0x03/*::]*/: { n: 'Subject', t: VT_STRING },\n\t/*::[*/0x04/*::]*/: { n: 'Author', t: VT_STRING },\n\t/*::[*/0x05/*::]*/: { n: 'Keywords', t: VT_STRING },\n\t/*::[*/0x06/*::]*/: { n: 'Comments', t: VT_STRING },\n\t/*::[*/0x07/*::]*/: { n: 'Template', t: VT_STRING },\n\t/*::[*/0x08/*::]*/: { n: 'LastAuthor', t: VT_STRING },\n\t/*::[*/0x09/*::]*/: { n: 'RevNumber', t: VT_STRING },\n\t/*::[*/0x0A/*::]*/: { n: 'EditTime', t: VT_FILETIME },\n\t/*::[*/0x0B/*::]*/: { n: 'LastPrinted', t: VT_FILETIME },\n\t/*::[*/0x0C/*::]*/: { n: 'CreatedDate', t: VT_FILETIME },\n\t/*::[*/0x0D/*::]*/: { n: 'ModifiedDate', t: VT_FILETIME },\n\t/*::[*/0x0E/*::]*/: { n: 'PageCount', t: VT_I4 },\n\t/*::[*/0x0F/*::]*/: { n: 'WordCount', t: VT_I4 },\n\t/*::[*/0x10/*::]*/: { n: 'CharCount', t: VT_I4 },\n\t/*::[*/0x11/*::]*/: { n: 'Thumbnail', t: VT_CF },\n\t/*::[*/0x12/*::]*/: { n: 'Application', t: VT_STRING },\n\t/*::[*/0x13/*::]*/: { n: 'DocSecurity', t: VT_I4 },\n\t/*::[*/0xFF/*::]*/: {},\n\t/* [MS-OLEPS] 2.18 */\n\t/*::[*/0x80000000/*::]*/: { n: 'Locale', t: VT_UI4 },\n\t/*::[*/0x80000003/*::]*/: { n: 'Behavior', t: VT_UI4 },\n\t/*::[*/0x72627262/*::]*/: {}\n};\n\n/* [MS-XLS] 2.4.63 Country/Region codes */\nvar CountryEnum = {\n\t/*::[*/0x0001/*::]*/: \"US\", // United States\n\t/*::[*/0x0002/*::]*/: \"CA\", // Canada\n\t/*::[*/0x0003/*::]*/: \"\", // Latin America (except Brazil)\n\t/*::[*/0x0007/*::]*/: \"RU\", // Russia\n\t/*::[*/0x0014/*::]*/: \"EG\", // Egypt\n\t/*::[*/0x001E/*::]*/: \"GR\", // Greece\n\t/*::[*/0x001F/*::]*/: \"NL\", // Netherlands\n\t/*::[*/0x0020/*::]*/: \"BE\", // Belgium\n\t/*::[*/0x0021/*::]*/: \"FR\", // France\n\t/*::[*/0x0022/*::]*/: \"ES\", // Spain\n\t/*::[*/0x0024/*::]*/: \"HU\", // Hungary\n\t/*::[*/0x0027/*::]*/: \"IT\", // Italy\n\t/*::[*/0x0029/*::]*/: \"CH\", // Switzerland\n\t/*::[*/0x002B/*::]*/: \"AT\", // Austria\n\t/*::[*/0x002C/*::]*/: \"GB\", // United Kingdom\n\t/*::[*/0x002D/*::]*/: \"DK\", // Denmark\n\t/*::[*/0x002E/*::]*/: \"SE\", // Sweden\n\t/*::[*/0x002F/*::]*/: \"NO\", // Norway\n\t/*::[*/0x0030/*::]*/: \"PL\", // Poland\n\t/*::[*/0x0031/*::]*/: \"DE\", // Germany\n\t/*::[*/0x0034/*::]*/: \"MX\", // Mexico\n\t/*::[*/0x0037/*::]*/: \"BR\", // Brazil\n\t/*::[*/0x003d/*::]*/: \"AU\", // Australia\n\t/*::[*/0x0040/*::]*/: \"NZ\", // New Zealand\n\t/*::[*/0x0042/*::]*/: \"TH\", // Thailand\n\t/*::[*/0x0051/*::]*/: \"JP\", // Japan\n\t/*::[*/0x0052/*::]*/: \"KR\", // Korea\n\t/*::[*/0x0054/*::]*/: \"VN\", // Viet Nam\n\t/*::[*/0x0056/*::]*/: \"CN\", // China\n\t/*::[*/0x005A/*::]*/: \"TR\", // Turkey\n\t/*::[*/0x0069/*::]*/: \"JS\", // Ramastan\n\t/*::[*/0x00D5/*::]*/: \"DZ\", // Algeria\n\t/*::[*/0x00D8/*::]*/: \"MA\", // Morocco\n\t/*::[*/0x00DA/*::]*/: \"LY\", // Libya\n\t/*::[*/0x015F/*::]*/: \"PT\", // Portugal\n\t/*::[*/0x0162/*::]*/: \"IS\", // Iceland\n\t/*::[*/0x0166/*::]*/: \"FI\", // Finland\n\t/*::[*/0x01A4/*::]*/: \"CZ\", // Czech Republic\n\t/*::[*/0x0376/*::]*/: \"TW\", // Taiwan\n\t/*::[*/0x03C1/*::]*/: \"LB\", // Lebanon\n\t/*::[*/0x03C2/*::]*/: \"JO\", // Jordan\n\t/*::[*/0x03C3/*::]*/: \"SY\", // Syria\n\t/*::[*/0x03C4/*::]*/: \"IQ\", // Iraq\n\t/*::[*/0x03C5/*::]*/: \"KW\", // Kuwait\n\t/*::[*/0x03C6/*::]*/: \"SA\", // Saudi Arabia\n\t/*::[*/0x03CB/*::]*/: \"AE\", // United Arab Emirates\n\t/*::[*/0x03CC/*::]*/: \"IL\", // Israel\n\t/*::[*/0x03CE/*::]*/: \"QA\", // Qatar\n\t/*::[*/0x03D5/*::]*/: \"IR\", // Iran\n\t/*::[*/0xFFFF/*::]*/: \"US\" // United States\n};\n\n/* [MS-XLS] 2.5.127 */\nvar XLSFillPattern = [\n\tnull,\n\t'solid',\n\t'mediumGray',\n\t'darkGray',\n\t'lightGray',\n\t'darkHorizontal',\n\t'darkVertical',\n\t'darkDown',\n\t'darkUp',\n\t'darkGrid',\n\t'darkTrellis',\n\t'lightHorizontal',\n\t'lightVertical',\n\t'lightDown',\n\t'lightUp',\n\t'lightGrid',\n\t'lightTrellis',\n\t'gray125',\n\t'gray0625'\n];\n\nfunction rgbify(arr/*:Array*/)/*:Array<[number, number, number]>*/ { return arr.map(function(x) { return [(x>>16)&255,(x>>8)&255,x&255]; }); }\n\n/* [MS-XLS] 2.5.161 */\n/* [MS-XLSB] 2.5.75 Icv */\nvar _XLSIcv = /*#__PURE__*/ rgbify([\n\t/* Color Constants */\n\t0x000000,\n\t0xFFFFFF,\n\t0xFF0000,\n\t0x00FF00,\n\t0x0000FF,\n\t0xFFFF00,\n\t0xFF00FF,\n\t0x00FFFF,\n\n\t/* Overridable Defaults */\n\t0x000000,\n\t0xFFFFFF,\n\t0xFF0000,\n\t0x00FF00,\n\t0x0000FF,\n\t0xFFFF00,\n\t0xFF00FF,\n\t0x00FFFF,\n\n\t0x800000,\n\t0x008000,\n\t0x000080,\n\t0x808000,\n\t0x800080,\n\t0x008080,\n\t0xC0C0C0,\n\t0x808080,\n\t0x9999FF,\n\t0x993366,\n\t0xFFFFCC,\n\t0xCCFFFF,\n\t0x660066,\n\t0xFF8080,\n\t0x0066CC,\n\t0xCCCCFF,\n\n\t0x000080,\n\t0xFF00FF,\n\t0xFFFF00,\n\t0x00FFFF,\n\t0x800080,\n\t0x800000,\n\t0x008080,\n\t0x0000FF,\n\t0x00CCFF,\n\t0xCCFFFF,\n\t0xCCFFCC,\n\t0xFFFF99,\n\t0x99CCFF,\n\t0xFF99CC,\n\t0xCC99FF,\n\t0xFFCC99,\n\n\t0x3366FF,\n\t0x33CCCC,\n\t0x99CC00,\n\t0xFFCC00,\n\t0xFF9900,\n\t0xFF6600,\n\t0x666699,\n\t0x969696,\n\t0x003366,\n\t0x339966,\n\t0x003300,\n\t0x333300,\n\t0x993300,\n\t0x993366,\n\t0x333399,\n\t0x333333,\n\n\t/* Other entries to appease BIFF8/12 */\n\t0x000000, /* 0x40 icvForeground ?? */\n\t0xFFFFFF, /* 0x41 icvBackground ?? */\n\t0x000000, /* 0x42 icvFrame ?? */\n\t0x000000, /* 0x43 icv3D ?? */\n\t0x000000, /* 0x44 icv3DText ?? */\n\t0x000000, /* 0x45 icv3DHilite ?? */\n\t0x000000, /* 0x46 icv3DShadow ?? */\n\t0x000000, /* 0x47 icvHilite ?? */\n\t0x000000, /* 0x48 icvCtlText ?? */\n\t0x000000, /* 0x49 icvCtlScrl ?? */\n\t0x000000, /* 0x4A icvCtlInv ?? */\n\t0x000000, /* 0x4B icvCtlBody ?? */\n\t0x000000, /* 0x4C icvCtlFrame ?? */\n\t0x000000, /* 0x4D icvCtlFore ?? */\n\t0x000000, /* 0x4E icvCtlBack ?? */\n\t0x000000, /* 0x4F icvCtlNeutral */\n\t0x000000, /* 0x50 icvInfoBk ?? */\n\t0x000000 /* 0x51 icvInfoText ?? */\n]);\nvar XLSIcv = /*#__PURE__*/dup(_XLSIcv);\n\n/* [MS-XLSB] 2.5.97.2 */\nvar BErr = {\n\t/*::[*/0x00/*::]*/: \"#NULL!\",\n\t/*::[*/0x07/*::]*/: \"#DIV/0!\",\n\t/*::[*/0x0F/*::]*/: \"#VALUE!\",\n\t/*::[*/0x17/*::]*/: \"#REF!\",\n\t/*::[*/0x1D/*::]*/: \"#NAME?\",\n\t/*::[*/0x24/*::]*/: \"#NUM!\",\n\t/*::[*/0x2A/*::]*/: \"#N/A\",\n\t/*::[*/0x2B/*::]*/: \"#GETTING_DATA\",\n\t/*::[*/0xFF/*::]*/: \"#WTF?\"\n};\n//var RBErr = evert_num(BErr);\nvar RBErr = {\n\t\"#NULL!\": 0x00,\n\t\"#DIV/0!\": 0x07,\n\t\"#VALUE!\": 0x0F,\n\t\"#REF!\": 0x17,\n\t\"#NAME?\": 0x1D,\n\t\"#NUM!\": 0x24,\n\t\"#N/A\": 0x2A,\n\t\"#GETTING_DATA\": 0x2B,\n\t\"#WTF?\": 0xFF\n};\n\nvar XLSLblBuiltIn = [\n\t\"_xlnm.Consolidate_Area\",\n\t\"_xlnm.Auto_Open\",\n\t\"_xlnm.Auto_Close\",\n\t\"_xlnm.Extract\",\n\t\"_xlnm.Database\",\n\t\"_xlnm.Criteria\",\n\t\"_xlnm.Print_Area\",\n\t\"_xlnm.Print_Titles\",\n\t\"_xlnm.Recorder\",\n\t\"_xlnm.Data_Form\",\n\t\"_xlnm.Auto_Activate\",\n\t\"_xlnm.Auto_Deactivate\",\n\t\"_xlnm.Sheet_Title\",\n\t\"_xlnm._FilterDatabase\"\n];\n\n/* Parts enumerated in OPC spec, MS-XLSB and MS-XLSX */\n/* 12.3 Part Summary */\n/* 14.2 Part Summary */\n/* [MS-XLSX] 2.1 Part Enumerations ; [MS-XLSB] 2.1.7 Part Enumeration */\nvar ct2type/*{[string]:string}*/ = ({\n\t/* Workbook */\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet.main+xml\": \"workbooks\",\n\t\"application/vnd.ms-excel.sheet.macroEnabled.main+xml\": \"workbooks\",\n\t\"application/vnd.ms-excel.sheet.binary.macroEnabled.main\": \"workbooks\",\n\t\"application/vnd.ms-excel.addin.macroEnabled.main+xml\": \"workbooks\",\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.template.main+xml\": \"workbooks\",\n\n\t/* Worksheet */\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.worksheet+xml\": \"sheets\",\n\t\"application/vnd.ms-excel.worksheet\": \"sheets\",\n\t\"application/vnd.ms-excel.binIndexWs\": \"TODO\", /* Binary Index */\n\n\t/* Chartsheet */\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.chartsheet+xml\": \"charts\",\n\t\"application/vnd.ms-excel.chartsheet\": \"charts\",\n\n\t/* Macrosheet */\n\t\"application/vnd.ms-excel.macrosheet+xml\": \"macros\",\n\t\"application/vnd.ms-excel.macrosheet\": \"macros\",\n\t\"application/vnd.ms-excel.intlmacrosheet\": \"TODO\",\n\t\"application/vnd.ms-excel.binIndexMs\": \"TODO\", /* Binary Index */\n\n\t/* Dialogsheet */\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.dialogsheet+xml\": \"dialogs\",\n\t\"application/vnd.ms-excel.dialogsheet\": \"dialogs\",\n\n\t/* Shared Strings */\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.sharedStrings+xml\": \"strs\",\n\t\"application/vnd.ms-excel.sharedStrings\": \"strs\",\n\n\t/* Styles */\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.styles+xml\": \"styles\",\n\t\"application/vnd.ms-excel.styles\": \"styles\",\n\n\t/* File Properties */\n\t\"application/vnd.openxmlformats-package.core-properties+xml\": \"coreprops\",\n\t\"application/vnd.openxmlformats-officedocument.custom-properties+xml\": \"custprops\",\n\t\"application/vnd.openxmlformats-officedocument.extended-properties+xml\": \"extprops\",\n\n\t/* Custom Data Properties */\n\t\"application/vnd.openxmlformats-officedocument.customXmlProperties+xml\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.customProperty\": \"TODO\",\n\n\t/* Comments */\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.comments+xml\": \"comments\",\n\t\"application/vnd.ms-excel.comments\": \"comments\",\n\t\"application/vnd.ms-excel.threadedcomments+xml\": \"threadedcomments\",\n\t\"application/vnd.ms-excel.person+xml\": \"people\",\n\n\t/* Metadata (Stock/Geography and Dynamic Array) */\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.sheetMetadata+xml\": \"metadata\",\n\t\"application/vnd.ms-excel.sheetMetadata\": \"metadata\",\n\n\t/* PivotTable */\n\t\"application/vnd.ms-excel.pivotTable\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.pivotTable+xml\": \"TODO\",\n\n\t/* Chart Objects */\n\t\"application/vnd.openxmlformats-officedocument.drawingml.chart+xml\": \"TODO\",\n\n\t/* Chart Colors */\n\t\"application/vnd.ms-office.chartcolorstyle+xml\": \"TODO\",\n\n\t/* Chart Style */\n\t\"application/vnd.ms-office.chartstyle+xml\": \"TODO\",\n\n\t/* Chart Advanced */\n\t\"application/vnd.ms-office.chartex+xml\": \"TODO\",\n\n\t/* Calculation Chain */\n\t\"application/vnd.ms-excel.calcChain\": \"calcchains\",\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.calcChain+xml\": \"calcchains\",\n\n\t/* Printer Settings */\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.printerSettings\": \"TODO\",\n\n\t/* ActiveX */\n\t\"application/vnd.ms-office.activeX\": \"TODO\",\n\t\"application/vnd.ms-office.activeX+xml\": \"TODO\",\n\n\t/* Custom Toolbars */\n\t\"application/vnd.ms-excel.attachedToolbars\": \"TODO\",\n\n\t/* External Data Connections */\n\t\"application/vnd.ms-excel.connections\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.connections+xml\": \"TODO\",\n\n\t/* External Links */\n\t\"application/vnd.ms-excel.externalLink\": \"links\",\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.externalLink+xml\": \"links\",\n\n\t/* PivotCache */\n\t\"application/vnd.ms-excel.pivotCacheDefinition\": \"TODO\",\n\t\"application/vnd.ms-excel.pivotCacheRecords\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.pivotCacheDefinition+xml\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.pivotCacheRecords+xml\": \"TODO\",\n\n\t/* Query Table */\n\t\"application/vnd.ms-excel.queryTable\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.queryTable+xml\": \"TODO\",\n\n\t/* Shared Workbook */\n\t\"application/vnd.ms-excel.userNames\": \"TODO\",\n\t\"application/vnd.ms-excel.revisionHeaders\": \"TODO\",\n\t\"application/vnd.ms-excel.revisionLog\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.revisionHeaders+xml\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.revisionLog+xml\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.userNames+xml\": \"TODO\",\n\n\t/* Single Cell Table */\n\t\"application/vnd.ms-excel.tableSingleCells\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.tableSingleCells+xml\": \"TODO\",\n\n\t/* Slicer */\n\t\"application/vnd.ms-excel.slicer\": \"TODO\",\n\t\"application/vnd.ms-excel.slicerCache\": \"TODO\",\n\t\"application/vnd.ms-excel.slicer+xml\": \"TODO\",\n\t\"application/vnd.ms-excel.slicerCache+xml\": \"TODO\",\n\n\t/* Sort Map */\n\t\"application/vnd.ms-excel.wsSortMap\": \"TODO\",\n\n\t/* Table */\n\t\"application/vnd.ms-excel.table\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.table+xml\": \"TODO\",\n\n\t/* Themes */\n\t\"application/vnd.openxmlformats-officedocument.theme+xml\": \"themes\",\n\n\t/* Theme Override */\n\t\"application/vnd.openxmlformats-officedocument.themeOverride+xml\": \"TODO\",\n\n\t/* Timeline */\n\t\"application/vnd.ms-excel.Timeline+xml\": \"TODO\", /* verify */\n\t\"application/vnd.ms-excel.TimelineCache+xml\": \"TODO\", /* verify */\n\n\t/* VBA */\n\t\"application/vnd.ms-office.vbaProject\": \"vba\",\n\t\"application/vnd.ms-office.vbaProjectSignature\": \"TODO\",\n\n\t/* Volatile Dependencies */\n\t\"application/vnd.ms-office.volatileDependencies\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.volatileDependencies+xml\": \"TODO\",\n\n\t/* Control Properties */\n\t\"application/vnd.ms-excel.controlproperties+xml\": \"TODO\",\n\n\t/* Data Model */\n\t\"application/vnd.openxmlformats-officedocument.model+data\": \"TODO\",\n\n\t/* Survey */\n\t\"application/vnd.ms-excel.Survey+xml\": \"TODO\",\n\n\t/* Drawing */\n\t\"application/vnd.openxmlformats-officedocument.drawing+xml\": \"drawings\",\n\t\"application/vnd.openxmlformats-officedocument.drawingml.chartshapes+xml\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.drawingml.diagramColors+xml\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.drawingml.diagramData+xml\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.drawingml.diagramLayout+xml\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.drawingml.diagramStyle+xml\": \"TODO\",\n\n\t/* VML */\n\t\"application/vnd.openxmlformats-officedocument.vmlDrawing\": \"TODO\",\n\n\t\"application/vnd.openxmlformats-package.relationships+xml\": \"rels\",\n\t\"application/vnd.openxmlformats-officedocument.oleObject\": \"TODO\",\n\n\t/* Image */\n\t\"image/png\": \"TODO\",\n\n\t\"sheet\": \"js\"\n}/*:any*/);\n\nvar CT_LIST = {\n\tworkbooks: {\n\t\txlsx: \"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet.main+xml\",\n\t\txlsm: \"application/vnd.ms-excel.sheet.macroEnabled.main+xml\",\n\t\txlsb: \"application/vnd.ms-excel.sheet.binary.macroEnabled.main\",\n\t\txlam: \"application/vnd.ms-excel.addin.macroEnabled.main+xml\",\n\t\txltx: \"application/vnd.openxmlformats-officedocument.spreadsheetml.template.main+xml\"\n\t},\n\tstrs: { /* Shared Strings */\n\t\txlsx: \"application/vnd.openxmlformats-officedocument.spreadsheetml.sharedStrings+xml\",\n\t\txlsb: \"application/vnd.ms-excel.sharedStrings\"\n\t},\n\tcomments: { /* Comments */\n\t\txlsx: \"application/vnd.openxmlformats-officedocument.spreadsheetml.comments+xml\",\n\t\txlsb: \"application/vnd.ms-excel.comments\"\n\t},\n\tsheets: { /* Worksheet */\n\t\txlsx: \"application/vnd.openxmlformats-officedocument.spreadsheetml.worksheet+xml\",\n\t\txlsb: \"application/vnd.ms-excel.worksheet\"\n\t},\n\tcharts: { /* Chartsheet */\n\t\txlsx: \"application/vnd.openxmlformats-officedocument.spreadsheetml.chartsheet+xml\",\n\t\txlsb: \"application/vnd.ms-excel.chartsheet\"\n\t},\n\tdialogs: { /* Dialogsheet */\n\t\txlsx: \"application/vnd.openxmlformats-officedocument.spreadsheetml.dialogsheet+xml\",\n\t\txlsb: \"application/vnd.ms-excel.dialogsheet\"\n\t},\n\tmacros: { /* Macrosheet (Excel 4.0 Macros) */\n\t\txlsx: \"application/vnd.ms-excel.macrosheet+xml\",\n\t\txlsb: \"application/vnd.ms-excel.macrosheet\"\n\t},\n\tmetadata: { /* Metadata (Stock/Geography and Dynamic Array) */\n\t\txlsx: \"application/vnd.openxmlformats-officedocument.spreadsheetml.sheetMetadata+xml\",\n\t\txlsb: \"application/vnd.ms-excel.sheetMetadata\"\n\t},\n\tstyles: { /* Styles */\n\t\txlsx: \"application/vnd.openxmlformats-officedocument.spreadsheetml.styles+xml\",\n\t\txlsb: \"application/vnd.ms-excel.styles\"\n\t}\n};\n\nfunction new_ct()/*:any*/ {\n\treturn ({\n\t\tworkbooks:[], sheets:[], charts:[], dialogs:[], macros:[],\n\t\trels:[], strs:[], comments:[], threadedcomments:[], links:[],\n\t\tcoreprops:[], extprops:[], custprops:[], themes:[], styles:[],\n\t\tcalcchains:[], vba: [], drawings: [], metadata: [], people:[],\n\t\tTODO:[], xmlns: \"\" }/*:any*/);\n}\n\nfunction parse_ct(data/*:?string*/) {\n\tvar ct = new_ct();\n\tif(!data || !data.match) return ct;\n\tvar ctext = {};\n\t(data.match(tagregex)||[]).forEach(function(x) {\n\t\tvar y = parsexmltag(x);\n\t\tswitch(y[0].replace(nsregex,\"<\")) {\n\t\t\tcase ' 0 ? ct.calcchains[0] : \"\";\n\tct.sst = ct.strs.length > 0 ? ct.strs[0] : \"\";\n\tct.style = ct.styles.length > 0 ? ct.styles[0] : \"\";\n\tct.defaults = ctext;\n\tdelete ct.calcchains;\n\treturn ct;\n}\n\nfunction write_ct(ct, opts, raw)/*:string*/ {\n\tvar type2ct/*{[string]:Array}*/ = evert_arr(ct2type);\n\n\tvar o/*:Array*/ = [], v;\n\n\tif(!raw) {\n\t\to[o.length] = (XML_HEADER);\n\t\to[o.length] = writextag('Types', null, {\n\t\t\t'xmlns': XMLNS.CT,\n\t\t\t'xmlns:xsd': XMLNS.xsd,\n\t\t\t'xmlns:xsi': XMLNS.xsi\n\t\t});\n\t\to = o.concat([\n\t\t\t['xml', 'application/xml'],\n\t\t\t['bin', 'application/vnd.ms-excel.sheet.binary.macroEnabled.main'],\n\t\t\t['vml', 'application/vnd.openxmlformats-officedocument.vmlDrawing'],\n\t\t\t['data', 'application/vnd.openxmlformats-officedocument.model+data'],\n\t\t\t/* from test files */\n\t\t\t['bmp', 'image/bmp'],\n\t\t\t['png', 'image/png'],\n\t\t\t['gif', 'image/gif'],\n\t\t\t['emf', 'image/x-emf'],\n\t\t\t['wmf', 'image/x-wmf'],\n\t\t\t['jpg', 'image/jpeg'], ['jpeg', 'image/jpeg'],\n\t\t\t['tif', 'image/tiff'], ['tiff', 'image/tiff'],\n\t\t\t['pdf', 'application/pdf'],\n\t\t\t['rels', 'application/vnd.openxmlformats-package.relationships+xml']\n\t\t].map(function(x) {\n\t\t\treturn writextag('Default', null, {'Extension':x[0], 'ContentType': x[1]});\n\t\t}));\n\t}\n\n\t/* only write first instance */\n\tvar f1 = function(w) {\n\t\tif(ct[w] && ct[w].length > 0) {\n\t\t\tv = ct[w][0];\n\t\t\to[o.length] = (writextag('Override', null, {\n\t\t\t\t'PartName': (v[0] == '/' ? \"\":\"/\") + v,\n\t\t\t\t'ContentType': CT_LIST[w][opts.bookType] || CT_LIST[w]['xlsx']\n\t\t\t}));\n\t\t}\n\t};\n\n\t/* book type-specific */\n\tvar f2 = function(w) {\n\t\t(ct[w]||[]).forEach(function(v) {\n\t\t\to[o.length] = (writextag('Override', null, {\n\t\t\t\t'PartName': (v[0] == '/' ? \"\":\"/\") + v,\n\t\t\t\t'ContentType': CT_LIST[w][opts.bookType] || CT_LIST[w]['xlsx']\n\t\t\t}));\n\t\t});\n\t};\n\n\t/* standard type */\n\tvar f3 = function(t) {\n\t\t(ct[t]||[]).forEach(function(v) {\n\t\t\to[o.length] = (writextag('Override', null, {\n\t\t\t\t'PartName': (v[0] == '/' ? \"\":\"/\") + v,\n\t\t\t\t'ContentType': type2ct[t][0]\n\t\t\t}));\n\t\t});\n\t};\n\n\tf1('workbooks');\n\tf2('sheets');\n\tf2('charts');\n\tf3('themes');\n\t['strs', 'styles'].forEach(f1);\n\t['coreprops', 'extprops', 'custprops'].forEach(f3);\n\tf3('vba');\n\tf3('comments');\n\tf3('threadedcomments');\n\tf3('drawings');\n\tf2('metadata');\n\tf3('people');\n\tif(!raw && o.length>2){ o[o.length] = (''); o[1]=o[1].replace(\"/>\",\">\"); }\n\treturn o.join(\"\");\n}\n/* 9.3 Relationships */\nvar RELS = ({\n\tWB: \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/officeDocument\",\n\tSHEET: \"http://sheetjs.openxmlformats.org/officeDocument/2006/relationships/officeDocument\",\n\tHLINK: \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/hyperlink\",\n\tVML: \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/vmlDrawing\",\n\tXPATH: \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/externalLinkPath\",\n\tXMISS: \"http://schemas.microsoft.com/office/2006/relationships/xlExternalLinkPath/xlPathMissing\",\n\tXLINK: \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/externalLink\",\n\tCXML: \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/customXml\",\n\tCXMLP: \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/customXmlProps\",\n\tCMNT: \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/comments\",\n\tCORE_PROPS: \"http://schemas.openxmlformats.org/package/2006/relationships/metadata/core-properties\",\n\tEXT_PROPS: 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/extended-properties',\n\tCUST_PROPS: 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/custom-properties',\n\tSST: \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/sharedStrings\",\n\tSTY: \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/styles\",\n\tTHEME: \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/theme\",\n\tCHART: \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/chart\",\n\tCHARTEX: \"http://schemas.microsoft.com/office/2014/relationships/chartEx\",\n\tCS: \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/chartsheet\",\n\tWS: [\n\t\t\"http://schemas.openxmlformats.org/officeDocument/2006/relationships/worksheet\",\n\t\t\"http://purl.oclc.org/ooxml/officeDocument/relationships/worksheet\"\n\t],\n\tDS: \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/dialogsheet\",\n\tMS: \"http://schemas.microsoft.com/office/2006/relationships/xlMacrosheet\",\n\tIMG: \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/image\",\n\tDRAW: \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/drawing\",\n\tXLMETA: \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/sheetMetadata\",\n\tTCMNT: \"http://schemas.microsoft.com/office/2017/10/relationships/threadedComment\",\n\tPEOPLE: \"http://schemas.microsoft.com/office/2017/10/relationships/person\",\n\tCONN: \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/connections\",\n\tVBA: \"http://schemas.microsoft.com/office/2006/relationships/vbaProject\"\n}/*:any*/);\n\n/* 9.3.3 Representing Relationships */\nfunction get_rels_path(file/*:string*/)/*:string*/ {\n\tvar n = file.lastIndexOf(\"/\");\n\treturn file.slice(0,n+1) + '_rels/' + file.slice(n+1) + \".rels\";\n}\n\nfunction parse_rels(data/*:?string*/, currentFilePath/*:string*/) {\n\tvar rels = {\"!id\":{}};\n\tif (!data) return rels;\n\tif (currentFilePath.charAt(0) !== '/') {\n\t\tcurrentFilePath = '/'+currentFilePath;\n\t}\n\tvar hash = {};\n\n\t(data.match(tagregex)||[]).forEach(function(x) {\n\t\tvar y = parsexmltag(x);\n\t\t/* 9.3.2.2 OPC_Relationships */\n\t\tif (y[0] === '2){ o[o.length] = (''); o[1]=o[1].replace(\"/>\",\">\"); }\n\treturn o.join(\"\");\n}\n\nfunction add_rels(rels, rId/*:number*/, f, type, relobj, targetmode/*:?string*/)/*:number*/ {\n\tif(!relobj) relobj = {};\n\tif(!rels['!id']) rels['!id'] = {};\n\tif(!rels['!idx']) rels['!idx'] = 1;\n\tif(rId < 0) for(rId = rels['!idx']; rels['!id']['rId' + rId]; ++rId){/* empty */}\n\trels['!idx'] = rId + 1;\n\trelobj.Id = 'rId' + rId;\n\trelobj.Type = type;\n\trelobj.Target = f;\n\tif(targetmode) relobj.TargetMode = targetmode;\n\telse if([RELS.HLINK, RELS.XPATH, RELS.XMISS].indexOf(relobj.Type) > -1) relobj.TargetMode = \"External\";\n\tif(rels['!id'][relobj.Id]) throw new Error(\"Cannot rewrite rId \" + rId);\n\trels['!id'][relobj.Id] = relobj;\n\trels[('/' + relobj.Target).replace(\"//\",\"/\")] = relobj;\n\treturn rId;\n}\nvar CT_ODS = \"application/vnd.oasis.opendocument.spreadsheet\";\nfunction parse_manifest(d, opts) {\n var str = xlml_normalize(d);\n var Rn;\n var FEtag;\n while (Rn = xlmlregex.exec(str))\n switch (Rn[3]) {\n case \"manifest\":\n break;\n case \"file-entry\":\n FEtag = parsexmltag(Rn[0], false);\n if (FEtag.path == \"/\" && FEtag.type !== CT_ODS)\n throw new Error(\"This OpenDocument is not a spreadsheet\");\n break;\n case \"encryption-data\":\n case \"algorithm\":\n case \"start-key-generation\":\n case \"key-derivation\":\n throw new Error(\"Unsupported ODS Encryption\");\n default:\n if (opts && opts.WTF)\n throw Rn;\n }\n}\nfunction write_manifest(manifest) {\n var o = [XML_HEADER];\n o.push('\\n');\n o.push(' \\n');\n for (var i = 0; i < manifest.length; ++i)\n o.push(' \\n');\n o.push(\"\");\n return o.join(\"\");\n}\nfunction write_rdf_type(file, res, tag) {\n return [\n ' \\n',\n ' \\n',\n \" \\n\"\n ].join(\"\");\n}\nfunction write_rdf_has(base, file) {\n return [\n ' \\n',\n ' \\n',\n \" \\n\"\n ].join(\"\");\n}\nfunction write_rdf(rdf) {\n var o = [XML_HEADER];\n o.push('\\n');\n for (var i = 0; i != rdf.length; ++i) {\n o.push(write_rdf_type(rdf[i][0], rdf[i][1]));\n o.push(write_rdf_has(\"\", rdf[i][0]));\n }\n o.push(write_rdf_type(\"\", \"Document\", \"pkg\"));\n o.push(\"\");\n return o.join(\"\");\n}\nfunction write_meta_ods(wb, opts) {\n return 'SheetJS ' + XLSX.version + \"\";\n}\n/* ECMA-376 Part II 11.1 Core Properties Part */\n/* [MS-OSHARED] 2.3.3.2.[1-2].1 (PIDSI/PIDDSI) */\nvar CORE_PROPS/*:Array >*/ = [\n\t[\"cp:category\", \"Category\"],\n\t[\"cp:contentStatus\", \"ContentStatus\"],\n\t[\"cp:keywords\", \"Keywords\"],\n\t[\"cp:lastModifiedBy\", \"LastAuthor\"],\n\t[\"cp:lastPrinted\", \"LastPrinted\"],\n\t[\"cp:revision\", \"RevNumber\"],\n\t[\"cp:version\", \"Version\"],\n\t[\"dc:creator\", \"Author\"],\n\t[\"dc:description\", \"Comments\"],\n\t[\"dc:identifier\", \"Identifier\"],\n\t[\"dc:language\", \"Language\"],\n\t[\"dc:subject\", \"Subject\"],\n\t[\"dc:title\", \"Title\"],\n\t[\"dcterms:created\", \"CreatedDate\", 'date'],\n\t[\"dcterms:modified\", \"ModifiedDate\", 'date']\n];\n\nvar CORE_PROPS_REGEX/*:Array*/ = /*#__PURE__*/(function() {\n\tvar r = new Array(CORE_PROPS.length);\n\tfor(var i = 0; i < CORE_PROPS.length; ++i) {\n\t\tvar f = CORE_PROPS[i];\n\t\tvar g = \"(?:\"+ f[0].slice(0,f[0].indexOf(\":\")) +\":)\"+ f[0].slice(f[0].indexOf(\":\")+1);\n\t\tr[i] = new RegExp(\"<\" + g + \"[^>]*>([\\\\s\\\\S]*?)<\\/\" + g + \">\");\n\t}\n\treturn r;\n})();\n\nfunction parse_core_props(data) {\n\tvar p = {};\n\tdata = utf8read(data);\n\n\tfor(var i = 0; i < CORE_PROPS.length; ++i) {\n\t\tvar f = CORE_PROPS[i], cur = data.match(CORE_PROPS_REGEX[i]);\n\t\tif(cur != null && cur.length > 0) p[f[1]] = unescapexml(cur[1]);\n\t\tif(f[2] === 'date' && p[f[1]]) p[f[1]] = parseDate(p[f[1]]);\n\t}\n\n\treturn p;\n}\n\nfunction cp_doit(f, g, h, o, p) {\n\tif(p[f] != null || g == null || g === \"\") return;\n\tp[f] = g;\n\tg = escapexml(g);\n\to[o.length] = (h ? writextag(f,g,h) : writetag(f,g));\n}\n\nfunction write_core_props(cp, _opts) {\n\tvar opts = _opts || {};\n\tvar o = [XML_HEADER, writextag('cp:coreProperties', null, {\n\t\t//'xmlns': XMLNS.CORE_PROPS,\n\t\t'xmlns:cp': XMLNS.CORE_PROPS,\n\t\t'xmlns:dc': XMLNS.dc,\n\t\t'xmlns:dcterms': XMLNS.dcterms,\n\t\t'xmlns:dcmitype': XMLNS.dcmitype,\n\t\t'xmlns:xsi': XMLNS.xsi\n\t})], p = {};\n\tif(!cp && !opts.Props) return o.join(\"\");\n\n\tif(cp) {\n\t\tif(cp.CreatedDate != null) cp_doit(\"dcterms:created\", typeof cp.CreatedDate === \"string\" ? cp.CreatedDate : write_w3cdtf(cp.CreatedDate, opts.WTF), {\"xsi:type\":\"dcterms:W3CDTF\"}, o, p);\n\t\tif(cp.ModifiedDate != null) cp_doit(\"dcterms:modified\", typeof cp.ModifiedDate === \"string\" ? cp.ModifiedDate : write_w3cdtf(cp.ModifiedDate, opts.WTF), {\"xsi:type\":\"dcterms:W3CDTF\"}, o, p);\n\t}\n\n\tfor(var i = 0; i != CORE_PROPS.length; ++i) {\n\t\tvar f = CORE_PROPS[i];\n\t\tvar v = opts.Props && opts.Props[f[1]] != null ? opts.Props[f[1]] : cp ? cp[f[1]] : null;\n\t\tif(v === true) v = \"1\";\n\t\telse if(v === false) v = \"0\";\n\t\telse if(typeof v == \"number\") v = String(v);\n\t\tif(v != null) cp_doit(f[0], v, null, o, p);\n\t}\n\tif(o.length>2){ o[o.length] = (''); o[1]=o[1].replace(\"/>\",\">\"); }\n\treturn o.join(\"\");\n}\n/* 15.2.12.3 Extended File Properties Part */\n/* [MS-OSHARED] 2.3.3.2.[1-2].1 (PIDSI/PIDDSI) */\nvar EXT_PROPS/*:Array >*/ = [\n\t[\"Application\", \"Application\", \"string\"],\n\t[\"AppVersion\", \"AppVersion\", \"string\"],\n\t[\"Company\", \"Company\", \"string\"],\n\t[\"DocSecurity\", \"DocSecurity\", \"string\"],\n\t[\"Manager\", \"Manager\", \"string\"],\n\t[\"HyperlinksChanged\", \"HyperlinksChanged\", \"bool\"],\n\t[\"SharedDoc\", \"SharedDoc\", \"bool\"],\n\t[\"LinksUpToDate\", \"LinksUpToDate\", \"bool\"],\n\t[\"ScaleCrop\", \"ScaleCrop\", \"bool\"],\n\t[\"HeadingPairs\", \"HeadingPairs\", \"raw\"],\n\t[\"TitlesOfParts\", \"TitlesOfParts\", \"raw\"]\n];\n\nvar PseudoPropsPairs = [\n\t\"Worksheets\", \"SheetNames\",\n\t\"NamedRanges\", \"DefinedNames\",\n\t\"Chartsheets\", \"ChartNames\"\n];\nfunction load_props_pairs(HP/*:string|Array>*/, TOP, props, opts) {\n\tvar v = [];\n\tif(typeof HP == \"string\") v = parseVector(HP, opts);\n\telse for(var j = 0; j < HP.length; ++j) v = v.concat(HP[j].map(function(hp) { return {v:hp}; }));\n\tvar parts = (typeof TOP == \"string\") ? parseVector(TOP, opts).map(function (x) { return x.v; }) : TOP;\n\tvar idx = 0, len = 0;\n\tif(parts.length > 0) for(var i = 0; i !== v.length; i += 2) {\n\t\tlen = +(v[i+1].v);\n\t\tswitch(v[i].v) {\n\t\t\tcase \"Worksheets\":\n\t\t\tcase \"工作表\":\n\t\t\tcase \"Листы\":\n\t\t\tcase \"أوراق العمل\":\n\t\t\tcase \"ワークシート\":\n\t\t\tcase \"גליונות עבודה\":\n\t\t\tcase \"Arbeitsblätter\":\n\t\t\tcase \"Çalışma Sayfaları\":\n\t\t\tcase \"Feuilles de calcul\":\n\t\t\tcase \"Fogli di lavoro\":\n\t\t\tcase \"Folhas de cálculo\":\n\t\t\tcase \"Planilhas\":\n\t\t\tcase \"Regneark\":\n\t\t\tcase \"Hojas de cálculo\":\n\t\t\tcase \"Werkbladen\":\n\t\t\t\tprops.Worksheets = len;\n\t\t\t\tprops.SheetNames = parts.slice(idx, idx + len);\n\t\t\t\tbreak;\n\n\t\t\tcase \"Named Ranges\":\n\t\t\tcase \"Rangos con nombre\":\n\t\t\tcase \"名前付き一覧\":\n\t\t\tcase \"Benannte Bereiche\":\n\t\t\tcase \"Navngivne områder\":\n\t\t\t\tprops.NamedRanges = len;\n\t\t\t\tprops.DefinedNames = parts.slice(idx, idx + len);\n\t\t\t\tbreak;\n\n\t\t\tcase \"Charts\":\n\t\t\tcase \"Diagramme\":\n\t\t\t\tprops.Chartsheets = len;\n\t\t\t\tprops.ChartNames = parts.slice(idx, idx + len);\n\t\t\t\tbreak;\n\t\t}\n\t\tidx += len;\n\t}\n}\n\nfunction parse_ext_props(data, p, opts) {\n\tvar q = {}; if(!p) p = {};\n\tdata = utf8read(data);\n\n\tEXT_PROPS.forEach(function(f) {\n\t\tvar xml = (data.match(matchtag(f[0]))||[])[1];\n\t\tswitch(f[2]) {\n\t\t\tcase \"string\": if(xml) p[f[1]] = unescapexml(xml); break;\n\t\t\tcase \"bool\": p[f[1]] = xml === \"true\"; break;\n\t\t\tcase \"raw\":\n\t\t\t\tvar cur = data.match(new RegExp(\"<\" + f[0] + \"[^>]*>([\\\\s\\\\S]*?)<\\/\" + f[0] + \">\"));\n\t\t\t\tif(cur && cur.length > 0) q[f[1]] = cur[1];\n\t\t\t\tbreak;\n\t\t}\n\t});\n\n\tif(q.HeadingPairs && q.TitlesOfParts) load_props_pairs(q.HeadingPairs, q.TitlesOfParts, p, opts);\n\n\treturn p;\n}\n\nfunction write_ext_props(cp/*::, opts*/)/*:string*/ {\n\tvar o/*:Array*/ = [], W = writextag;\n\tif(!cp) cp = {};\n\tcp.Application = \"SheetJS\";\n\to[o.length] = (XML_HEADER);\n\to[o.length] = (writextag('Properties', null, {\n\t\t'xmlns': XMLNS.EXT_PROPS,\n\t\t'xmlns:vt': XMLNS.vt\n\t}));\n\n\tEXT_PROPS.forEach(function(f) {\n\t\tif(cp[f[1]] === undefined) return;\n\t\tvar v;\n\t\tswitch(f[2]) {\n\t\t\tcase 'string': v = escapexml(String(cp[f[1]])); break;\n\t\t\tcase 'bool': v = cp[f[1]] ? 'true' : 'false'; break;\n\t\t}\n\t\tif(v !== undefined) o[o.length] = (W(f[0], v));\n\t});\n\n\t/* TODO: HeadingPairs, TitlesOfParts */\n\to[o.length] = (W('HeadingPairs', W('vt:vector', W('vt:variant', 'Worksheets')+W('vt:variant', W('vt:i4', String(cp.Worksheets))), {size:2, baseType:\"variant\"})));\n\to[o.length] = (W('TitlesOfParts', W('vt:vector', cp.SheetNames.map(function(s) { return \"\" + escapexml(s) + \"\"; }).join(\"\"), {size: cp.Worksheets, baseType:\"lpstr\"})));\n\tif(o.length>2){ o[o.length] = (''); o[1]=o[1].replace(\"/>\",\">\"); }\n\treturn o.join(\"\");\n}\n/* 15.2.12.2 Custom File Properties Part */\nvar custregex = /<[^>]+>[^<]*/g;\nfunction parse_cust_props(data/*:string*/, opts) {\n\tvar p = {}, name = \"\";\n\tvar m = data.match(custregex);\n\tif(m) for(var i = 0; i != m.length; ++i) {\n\t\tvar x = m[i], y = parsexmltag(x);\n\t\tswitch(strip_ns(y[0])) {\n\t\t\tcase '': name = null; break;\n\t\t\tdefault: if (x.indexOf('');\n\t\t\t\tvar type = toks[0].slice(4), text = toks[1];\n\t\t\t\t/* 22.4.2.32 (CT_Variant). Omit the binary types from 22.4 (Variant Types) */\n\t\t\t\tswitch(type) {\n\t\t\t\t\tcase 'lpstr': case 'bstr': case 'lpwstr':\n\t\t\t\t\t\tp[name] = unescapexml(text);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'bool':\n\t\t\t\t\t\tp[name] = parsexmlbool(text);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'i1': case 'i2': case 'i4': case 'i8': case 'int': case 'uint':\n\t\t\t\t\t\tp[name] = parseInt(text, 10);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'r4': case 'r8': case 'decimal':\n\t\t\t\t\t\tp[name] = parseFloat(text);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'filetime': case 'date':\n\t\t\t\t\t\tp[name] = parseDate(text);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'cy': case 'error':\n\t\t\t\t\t\tp[name] = unescapexml(text);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tif(type.slice(-1) == '/') break;\n\t\t\t\t\t\tif(opts.WTF && typeof console !== 'undefined') console.warn('Unexpected', x, type, toks);\n\t\t\t\t}\n\t\t\t} else if(x.slice(0,2) === \"2){ o[o.length] = ''; o[1]=o[1].replace(\"/>\",\">\"); }\n\treturn o.join(\"\");\n}\n/* Common Name -> XLML Name */\nvar XLMLDocPropsMap = {\n\tTitle: 'Title',\n\tSubject: 'Subject',\n\tAuthor: 'Author',\n\tKeywords: 'Keywords',\n\tComments: 'Description',\n\tLastAuthor: 'LastAuthor',\n\tRevNumber: 'Revision',\n\tApplication: 'AppName',\n\t/* TotalTime: 'TotalTime', */\n\tLastPrinted: 'LastPrinted',\n\tCreatedDate: 'Created',\n\tModifiedDate: 'LastSaved',\n\t/* Pages */\n\t/* Words */\n\t/* Characters */\n\tCategory: 'Category',\n\t/* PresentationFormat */\n\tManager: 'Manager',\n\tCompany: 'Company',\n\t/* Guid */\n\t/* HyperlinkBase */\n\t/* Bytes */\n\t/* Lines */\n\t/* Paragraphs */\n\t/* CharactersWithSpaces */\n\tAppVersion: 'Version',\n\n\tContentStatus: 'ContentStatus', /* NOTE: missing from schema */\n\tIdentifier: 'Identifier', /* NOTE: missing from schema */\n\tLanguage: 'Language' /* NOTE: missing from schema */\n};\nvar evert_XLMLDPM;\n\nfunction xlml_set_prop(Props, tag/*:string*/, val) {\n\tif(!evert_XLMLDPM) evert_XLMLDPM = evert(XLMLDocPropsMap);\n\ttag = evert_XLMLDPM[tag] || tag;\n\tProps[tag] = val;\n}\n\nfunction xlml_write_docprops(Props, opts) {\n\tvar o/*:Array*/ = [];\n\tkeys(XLMLDocPropsMap).map(function(m) {\n\t\tfor(var i = 0; i < CORE_PROPS.length; ++i) if(CORE_PROPS[i][1] == m) return CORE_PROPS[i];\n\t\tfor(i = 0; i < EXT_PROPS.length; ++i) if(EXT_PROPS[i][1] == m) return EXT_PROPS[i];\n\t\tthrow m;\n\t}).forEach(function(p) {\n\t\tif(Props[p[1]] == null) return;\n\t\tvar m = opts && opts.Props && opts.Props[p[1]] != null ? opts.Props[p[1]] : Props[p[1]];\n\t\tswitch(p[2]) {\n\t\t\tcase 'date': m = new Date(m).toISOString().replace(/\\.\\d*Z/,\"Z\"); break;\n\t\t}\n\t\tif(typeof m == 'number') m = String(m);\n\t\telse if(m === true || m === false) { m = m ? \"1\" : \"0\"; }\n\t\telse if(m instanceof Date) m = new Date(m).toISOString().replace(/\\.\\d*Z/,\"\");\n\t\to.push(writetag(XLMLDocPropsMap[p[1]] || p[1], m));\n\t});\n\treturn writextag('DocumentProperties', o.join(\"\"), {xmlns:XLMLNS.o });\n}\nfunction xlml_write_custprops(Props, Custprops/*::, opts*/) {\n\tvar BLACKLIST = [\"Worksheets\",\"SheetNames\"];\n\tvar T = 'CustomDocumentProperties';\n\tvar o/*:Array*/ = [];\n\tif(Props) keys(Props).forEach(function(k) {\n\t\t/*:: if(!Props) return; */\n\t\tif(!Object.prototype.hasOwnProperty.call(Props, k)) return;\n\t\tfor(var i = 0; i < CORE_PROPS.length; ++i) if(k == CORE_PROPS[i][1]) return;\n\t\tfor(i = 0; i < EXT_PROPS.length; ++i) if(k == EXT_PROPS[i][1]) return;\n\t\tfor(i = 0; i < BLACKLIST.length; ++i) if(k == BLACKLIST[i]) return;\n\n\t\tvar m = Props[k];\n\t\tvar t = \"string\";\n\t\tif(typeof m == 'number') { t = \"float\"; m = String(m); }\n\t\telse if(m === true || m === false) { t = \"boolean\"; m = m ? \"1\" : \"0\"; }\n\t\telse m = String(m);\n\t\to.push(writextag(escapexmltag(k), m, {\"dt:dt\":t}));\n\t});\n\tif(Custprops) keys(Custprops).forEach(function(k) {\n\t\t/*:: if(!Custprops) return; */\n\t\tif(!Object.prototype.hasOwnProperty.call(Custprops, k)) return;\n\t\tif(Props && Object.prototype.hasOwnProperty.call(Props, k)) return;\n\t\tvar m = Custprops[k];\n\t\tvar t = \"string\";\n\t\tif(typeof m == 'number') { t = \"float\"; m = String(m); }\n\t\telse if(m === true || m === false) { t = \"boolean\"; m = m ? \"1\" : \"0\"; }\n\t\telse if(m instanceof Date) { t = \"dateTime.tz\"; m = m.toISOString(); }\n\t\telse m = String(m);\n\t\to.push(writextag(escapexmltag(k), m, {\"dt:dt\":t}));\n\t});\n\treturn '<' + T + ' xmlns=\"' + XLMLNS.o + '\">' + o.join(\"\") + '';\n}\n/* [MS-DTYP] 2.3.3 FILETIME */\n/* [MS-OLEDS] 2.1.3 FILETIME (Packet Version) */\n/* [MS-OLEPS] 2.8 FILETIME (Packet Version) */\nfunction parse_FILETIME(blob) {\n\tvar dwLowDateTime = blob.read_shift(4), dwHighDateTime = blob.read_shift(4);\n\treturn new Date(((dwHighDateTime/1e7*Math.pow(2,32) + dwLowDateTime/1e7) - 11644473600)*1000).toISOString().replace(/\\.000/,\"\");\n}\nfunction write_FILETIME(time/*:string|Date*/) {\n\tvar date = (typeof time == \"string\") ? new Date(Date.parse(time)) : time;\n\tvar t = date.getTime() / 1000 + 11644473600;\n\tvar l = t % Math.pow(2,32), h = (t - l) / Math.pow(2,32);\n\tl *= 1e7; h *= 1e7;\n\tvar w = (l / Math.pow(2,32)) | 0;\n\tif(w > 0) { l = l % Math.pow(2,32); h += w; }\n\tvar o = new_buf(8); o.write_shift(4, l); o.write_shift(4, h); return o;\n}\n\n/* [MS-OSHARED] 2.3.3.1.4 Lpstr */\nfunction parse_lpstr(blob, type, pad/*:?number*/) {\n\tvar start = blob.l;\n\tvar str = blob.read_shift(0, 'lpstr-cp');\n\tif(pad) while((blob.l - start) & 3) ++blob.l;\n\treturn str;\n}\n\n/* [MS-OSHARED] 2.3.3.1.6 Lpwstr */\nfunction parse_lpwstr(blob, type, pad) {\n\tvar str = blob.read_shift(0, 'lpwstr');\n\tif(pad) blob.l += (4 - ((str.length+1) & 3)) & 3;\n\treturn str;\n}\n\n\n/* [MS-OSHARED] 2.3.3.1.11 VtString */\n/* [MS-OSHARED] 2.3.3.1.12 VtUnalignedString */\nfunction parse_VtStringBase(blob, stringType, pad) {\n\tif(stringType === 0x1F /*VT_LPWSTR*/) return parse_lpwstr(blob);\n\treturn parse_lpstr(blob, stringType, pad);\n}\n\nfunction parse_VtString(blob, t/*:number*/, pad/*:?boolean*/) { return parse_VtStringBase(blob, t, pad === false ? 0: 4); }\nfunction parse_VtUnalignedString(blob, t/*:number*/) { if(!t) throw new Error(\"VtUnalignedString must have positive length\"); return parse_VtStringBase(blob, t, 0); }\n\n/* [MS-OSHARED] 2.3.3.1.7 VtVecLpwstrValue */\nfunction parse_VtVecLpwstrValue(blob)/*:Array*/ {\n\tvar length = blob.read_shift(4);\n\tvar ret/*:Array*/ = [];\n\tfor(var i = 0; i != length; ++i) {\n\t\tvar start = blob.l;\n\t\tret[i] = blob.read_shift(0, 'lpwstr').replace(chr0,'');\n\t\tif((blob.l - start) & 0x02) blob.l += 2;\n\t}\n\treturn ret;\n}\n\n/* [MS-OSHARED] 2.3.3.1.9 VtVecUnalignedLpstrValue */\nfunction parse_VtVecUnalignedLpstrValue(blob)/*:Array*/ {\n\tvar length = blob.read_shift(4);\n\tvar ret/*:Array*/ = [];\n\tfor(var i = 0; i != length; ++i) ret[i] = blob.read_shift(0, 'lpstr-cp').replace(chr0,'');\n\treturn ret;\n}\n\n\n/* [MS-OSHARED] 2.3.3.1.13 VtHeadingPair */\nfunction parse_VtHeadingPair(blob) {\n\tvar start = blob.l;\n\tvar headingString = parse_TypedPropertyValue(blob, VT_USTR);\n\tif(blob[blob.l] == 0x00 && blob[blob.l+1] == 0x00 && ((blob.l - start) & 0x02)) blob.l += 2;\n\tvar headerParts = parse_TypedPropertyValue(blob, VT_I4);\n\treturn [headingString, headerParts];\n}\n\n/* [MS-OSHARED] 2.3.3.1.14 VtVecHeadingPairValue */\nfunction parse_VtVecHeadingPairValue(blob) {\n\tvar cElements = blob.read_shift(4);\n\tvar out = [];\n\tfor(var i = 0; i < cElements / 2; ++i) out.push(parse_VtHeadingPair(blob));\n\treturn out;\n}\n\n/* [MS-OLEPS] 2.18.1 Dictionary (uses 2.17, 2.16) */\nfunction parse_dictionary(blob,CodePage) {\n\tvar cnt = blob.read_shift(4);\n\tvar dict/*:{[number]:string}*/ = ({}/*:any*/);\n\tfor(var j = 0; j != cnt; ++j) {\n\t\tvar pid = blob.read_shift(4);\n\t\tvar len = blob.read_shift(4);\n\t\tdict[pid] = blob.read_shift(len, (CodePage === 0x4B0 ?'utf16le':'utf8')).replace(chr0,'').replace(chr1,'!');\n\t\tif(CodePage === 0x4B0 && (len % 2)) blob.l += 2;\n\t}\n\tif(blob.l & 3) blob.l = (blob.l>>2+1)<<2;\n\treturn dict;\n}\n\n/* [MS-OLEPS] 2.9 BLOB */\nfunction parse_BLOB(blob) {\n\tvar size = blob.read_shift(4);\n\tvar bytes = blob.slice(blob.l,blob.l+size);\n\tblob.l += size;\n\tif((size & 3) > 0) blob.l += (4 - (size & 3)) & 3;\n\treturn bytes;\n}\n\n/* [MS-OLEPS] 2.11 ClipboardData */\nfunction parse_ClipboardData(blob) {\n\t// TODO\n\tvar o = {};\n\to.Size = blob.read_shift(4);\n\t//o.Format = blob.read_shift(4);\n\tblob.l += o.Size + 3 - (o.Size - 1) % 4;\n\treturn o;\n}\n\n/* [MS-OLEPS] 2.15 TypedPropertyValue */\nfunction parse_TypedPropertyValue(blob, type/*:number*/, _opts)/*:any*/ {\n\tvar t = blob.read_shift(2), ret, opts = _opts||{};\n\tblob.l += 2;\n\tif(type !== VT_VARIANT)\n\tif(t !== type && VT_CUSTOM.indexOf(type)===-1 && !((type & 0xFFFE) == 0x101E && (t & 0xFFFE) == 0x101E)) throw new Error('Expected type ' + type + ' saw ' + t);\n\tswitch(type === VT_VARIANT ? t : type) {\n\t\tcase 0x02 /*VT_I2*/: ret = blob.read_shift(2, 'i'); if(!opts.raw) blob.l += 2; return ret;\n\t\tcase 0x03 /*VT_I4*/: ret = blob.read_shift(4, 'i'); return ret;\n\t\tcase 0x0B /*VT_BOOL*/: return blob.read_shift(4) !== 0x0;\n\t\tcase 0x13 /*VT_UI4*/: ret = blob.read_shift(4); return ret;\n\t\tcase 0x1E /*VT_LPSTR*/: return parse_lpstr(blob, t, 4).replace(chr0,'');\n\t\tcase 0x1F /*VT_LPWSTR*/: return parse_lpwstr(blob);\n\t\tcase 0x40 /*VT_FILETIME*/: return parse_FILETIME(blob);\n\t\tcase 0x41 /*VT_BLOB*/: return parse_BLOB(blob);\n\t\tcase 0x47 /*VT_CF*/: return parse_ClipboardData(blob);\n\t\tcase 0x50 /*VT_STRING*/: return parse_VtString(blob, t, !opts.raw).replace(chr0,'');\n\t\tcase 0x51 /*VT_USTR*/: return parse_VtUnalignedString(blob, t/*, 4*/).replace(chr0,'');\n\t\tcase 0x100C /*VT_VECTOR|VT_VARIANT*/: return parse_VtVecHeadingPairValue(blob);\n\t\tcase 0x101E /*VT_VECTOR|VT_LPSTR*/:\n\t\tcase 0x101F /*VT_VECTOR|VT_LPWSTR*/:\n\t\t\treturn t == 0x101F ? parse_VtVecLpwstrValue(blob) : parse_VtVecUnalignedLpstrValue(blob);\n\t\tdefault: throw new Error(\"TypedPropertyValue unrecognized type \" + type + \" \" + t);\n\t}\n}\nfunction write_TypedPropertyValue(type/*:number*/, value) {\n\tvar o = new_buf(4), p = new_buf(4);\n\to.write_shift(4, type == 0x50 ? 0x1F : type);\n\tswitch(type) {\n\t\tcase 0x03 /*VT_I4*/: p.write_shift(-4, value); break;\n\t\tcase 0x05 /*VT_I4*/: p = new_buf(8); p.write_shift(8, value, 'f'); break;\n\t\tcase 0x0B /*VT_BOOL*/: p.write_shift(4, value ? 0x01 : 0x00); break;\n\t\tcase 0x40 /*VT_FILETIME*/: /*:: if(typeof value !== \"string\" && !(value instanceof Date)) throw \"unreachable\"; */ p = write_FILETIME(value); break;\n\t\tcase 0x1F /*VT_LPWSTR*/:\n\t\tcase 0x50 /*VT_STRING*/:\n\t\t\t/*:: if(typeof value !== \"string\") throw \"unreachable\"; */\n\t\t\tp = new_buf(4 + 2 * (value.length + 1) + (value.length % 2 ? 0 : 2));\n\t\t\tp.write_shift(4, value.length + 1);\n\t\t\tp.write_shift(0, value, \"dbcs\");\n\t\t\twhile(p.l != p.length) p.write_shift(1, 0);\n\t\t\tbreak;\n\t\tdefault: throw new Error(\"TypedPropertyValue unrecognized type \" + type + \" \" + value);\n\t}\n\treturn bconcat([o, p]);\n}\n\n/* [MS-OLEPS] 2.20 PropertySet */\nfunction parse_PropertySet(blob, PIDSI) {\n\tvar start_addr = blob.l;\n\tvar size = blob.read_shift(4);\n\tvar NumProps = blob.read_shift(4);\n\tvar Props = [], i = 0;\n\tvar CodePage = 0;\n\tvar Dictionary = -1, DictObj/*:{[number]:string}*/ = ({}/*:any*/);\n\tfor(i = 0; i != NumProps; ++i) {\n\t\tvar PropID = blob.read_shift(4);\n\t\tvar Offset = blob.read_shift(4);\n\t\tProps[i] = [PropID, Offset + start_addr];\n\t}\n\tProps.sort(function(x,y) { return x[1] - y[1]; });\n\tvar PropH = {};\n\tfor(i = 0; i != NumProps; ++i) {\n\t\tif(blob.l !== Props[i][1]) {\n\t\t\tvar fail = true;\n\t\t\tif(i>0 && PIDSI) switch(PIDSI[Props[i-1][0]].t) {\n\t\t\t\tcase 0x02 /*VT_I2*/: if(blob.l+2 === Props[i][1]) { blob.l+=2; fail = false; } break;\n\t\t\t\tcase 0x50 /*VT_STRING*/: if(blob.l <= Props[i][1]) { blob.l=Props[i][1]; fail = false; } break;\n\t\t\t\tcase 0x100C /*VT_VECTOR|VT_VARIANT*/: if(blob.l <= Props[i][1]) { blob.l=Props[i][1]; fail = false; } break;\n\t\t\t}\n\t\t\tif((!PIDSI||i==0) && blob.l <= Props[i][1]) { fail=false; blob.l = Props[i][1]; }\n\t\t\tif(fail) throw new Error(\"Read Error: Expected address \" + Props[i][1] + ' at ' + blob.l + ' :' + i);\n\t\t}\n\t\tif(PIDSI) {\n\t\t\tif(Props[i][0] == 0 && Props.length > i+1 && Props[i][1] == Props[i+1][1]) continue; // R9\n\t\t\tvar piddsi = PIDSI[Props[i][0]];\n\t\t\tPropH[piddsi.n] = parse_TypedPropertyValue(blob, piddsi.t, {raw:true});\n\t\t\tif(piddsi.p === 'version') PropH[piddsi.n] = String(PropH[piddsi.n] >> 16) + \".\" + (\"0000\" + String(PropH[piddsi.n] & 0xFFFF)).slice(-4);\n\t\t\tif(piddsi.n == \"CodePage\") switch(PropH[piddsi.n]) {\n\t\t\t\tcase 0: PropH[piddsi.n] = 1252;\n\t\t\t\t\t/* falls through */\n\t\t\t\tcase 874:\n\t\t\t\tcase 932:\n\t\t\t\tcase 936:\n\t\t\t\tcase 949:\n\t\t\t\tcase 950:\n\t\t\t\tcase 1250:\n\t\t\t\tcase 1251:\n\t\t\t\tcase 1253:\n\t\t\t\tcase 1254:\n\t\t\t\tcase 1255:\n\t\t\t\tcase 1256:\n\t\t\t\tcase 1257:\n\t\t\t\tcase 1258:\n\t\t\t\tcase 10000:\n\t\t\t\tcase 1200:\n\t\t\t\tcase 1201:\n\t\t\t\tcase 1252:\n\t\t\t\tcase 65000: case -536:\n\t\t\t\tcase 65001: case -535:\n\t\t\t\t\tset_cp(CodePage = (PropH[piddsi.n]>>>0) & 0xFFFF); break;\n\t\t\t\tdefault: throw new Error(\"Unsupported CodePage: \" + PropH[piddsi.n]);\n\t\t\t}\n\t\t} else {\n\t\t\tif(Props[i][0] === 0x1) {\n\t\t\t\tCodePage = PropH.CodePage = (parse_TypedPropertyValue(blob, VT_I2)/*:number*/);\n\t\t\t\tset_cp(CodePage);\n\t\t\t\tif(Dictionary !== -1) {\n\t\t\t\t\tvar oldpos = blob.l;\n\t\t\t\t\tblob.l = Props[Dictionary][1];\n\t\t\t\t\tDictObj = parse_dictionary(blob,CodePage);\n\t\t\t\t\tblob.l = oldpos;\n\t\t\t\t}\n\t\t\t} else if(Props[i][0] === 0) {\n\t\t\t\tif(CodePage === 0) { Dictionary = i; blob.l = Props[i+1][1]; continue; }\n\t\t\t\tDictObj = parse_dictionary(blob,CodePage);\n\t\t\t} else {\n\t\t\t\tvar name = DictObj[Props[i][0]];\n\t\t\t\tvar val;\n\t\t\t\t/* [MS-OSHARED] 2.3.3.2.3.1.2 + PROPVARIANT */\n\t\t\t\tswitch(blob[blob.l]) {\n\t\t\t\t\tcase 0x41 /*VT_BLOB*/: blob.l += 4; val = parse_BLOB(blob); break;\n\t\t\t\t\tcase 0x1E /*VT_LPSTR*/: blob.l += 4; val = parse_VtString(blob, blob[blob.l-4]).replace(/\\u0000+$/,\"\"); break;\n\t\t\t\t\tcase 0x1F /*VT_LPWSTR*/: blob.l += 4; val = parse_VtString(blob, blob[blob.l-4]).replace(/\\u0000+$/,\"\"); break;\n\t\t\t\t\tcase 0x03 /*VT_I4*/: blob.l += 4; val = blob.read_shift(4, 'i'); break;\n\t\t\t\t\tcase 0x13 /*VT_UI4*/: blob.l += 4; val = blob.read_shift(4); break;\n\t\t\t\t\tcase 0x05 /*VT_R8*/: blob.l += 4; val = blob.read_shift(8, 'f'); break;\n\t\t\t\t\tcase 0x0B /*VT_BOOL*/: blob.l += 4; val = parsebool(blob, 4); break;\n\t\t\t\t\tcase 0x40 /*VT_FILETIME*/: blob.l += 4; val = parseDate(parse_FILETIME(blob)); break;\n\t\t\t\t\tdefault: throw new Error(\"unparsed value: \" + blob[blob.l]);\n\t\t\t\t}\n\t\t\t\tPropH[name] = val;\n\t\t\t}\n\t\t}\n\t}\n\tblob.l = start_addr + size; /* step ahead to skip padding */\n\treturn PropH;\n}\nvar XLSPSSkip = [ \"CodePage\", \"Thumbnail\", \"_PID_LINKBASE\", \"_PID_HLINKS\", \"SystemIdentifier\", \"FMTID\" ];\nfunction guess_property_type(val/*:any*/)/*:number*/ {\n\tswitch(typeof val) {\n\t\tcase \"boolean\": return 0x0B;\n\t\tcase \"number\": return ((val|0)==val) ? 0x03 : 0x05;\n\t\tcase \"string\": return 0x1F;\n\t\tcase \"object\": if(val instanceof Date) return 0x40; break;\n\t}\n\treturn -1;\n}\nfunction write_PropertySet(entries, RE, PIDSI) {\n\tvar hdr = new_buf(8), piao = [], prop = [];\n\tvar sz = 8, i = 0;\n\n\tvar pr = new_buf(8), pio = new_buf(8);\n\tpr.write_shift(4, 0x0002);\n\tpr.write_shift(4, 0x04B0);\n\tpio.write_shift(4, 0x0001);\n\tprop.push(pr); piao.push(pio);\n\tsz += 8 + pr.length;\n\n\tif(!RE) {\n\t\tpio = new_buf(8);\n\t\tpio.write_shift(4, 0);\n\t\tpiao.unshift(pio);\n\n\t\tvar bufs = [new_buf(4)];\n\t\tbufs[0].write_shift(4, entries.length);\n\t\tfor(i = 0; i < entries.length; ++i) {\n\t\t\tvar value = entries[i][0];\n\t\t\tpr = new_buf(4 + 4 + 2 * (value.length + 1) + (value.length % 2 ? 0 : 2));\n\t\t\tpr.write_shift(4, i+2);\n\t\t\tpr.write_shift(4, value.length + 1);\n\t\t\tpr.write_shift(0, value, \"dbcs\");\n\t\t\twhile(pr.l != pr.length) pr.write_shift(1, 0);\n\t\t\tbufs.push(pr);\n\t\t}\n\t\tpr = bconcat(bufs);\n\t\tprop.unshift(pr);\n\t\tsz += 8 + pr.length;\n\t}\n\n\tfor(i = 0; i < entries.length; ++i) {\n\t\tif(RE && !RE[entries[i][0]]) continue;\n\t\tif(XLSPSSkip.indexOf(entries[i][0]) > -1 || PseudoPropsPairs.indexOf(entries[i][0]) > -1) continue;\n\t\tif(entries[i][1] == null) continue;\n\n\t\tvar val = entries[i][1], idx = 0;\n\t\tif(RE) {\n\t\t\tidx = +RE[entries[i][0]];\n\t\t\tvar pinfo = (PIDSI/*:: || {}*/)[idx]/*:: || {} */;\n\t\t\tif(pinfo.p == \"version\" && typeof val == \"string\") {\n\t\t\t\t/*:: if(typeof val !== \"string\") throw \"unreachable\"; */\n\t\t\t\tvar arr = val.split(\".\");\n\t\t\t\tval = ((+arr[0])<<16) + ((+arr[1])||0);\n\t\t\t}\n\t\t\tpr = write_TypedPropertyValue(pinfo.t, val);\n\t\t} else {\n\t\t\tvar T = guess_property_type(val);\n\t\t\tif(T == -1) { T = 0x1F; val = String(val); }\n\t\t\tpr = write_TypedPropertyValue(T, val);\n\t\t}\n\t\tprop.push(pr);\n\n\t\tpio = new_buf(8);\n\t\tpio.write_shift(4, !RE ? 2+i : idx);\n\t\tpiao.push(pio);\n\n\t\tsz += 8 + pr.length;\n\t}\n\n\tvar w = 8 * (prop.length + 1);\n\tfor(i = 0; i < prop.length; ++i) { piao[i].write_shift(4, w); w += prop[i].length; }\n\thdr.write_shift(4, sz);\n\thdr.write_shift(4, prop.length);\n\treturn bconcat([hdr].concat(piao).concat(prop));\n}\n\n/* [MS-OLEPS] 2.21 PropertySetStream */\nfunction parse_PropertySetStream(file, PIDSI, clsid) {\n\tvar blob = file.content;\n\tif(!blob) return ({}/*:any*/);\n\tprep_blob(blob, 0);\n\n\tvar NumSets, FMTID0, FMTID1, Offset0, Offset1 = 0;\n\tblob.chk('feff', 'Byte Order: ');\n\n\t/*var vers = */blob.read_shift(2); // TODO: check version\n\tvar SystemIdentifier = blob.read_shift(4);\n\tvar CLSID = blob.read_shift(16);\n\tif(CLSID !== CFB.utils.consts.HEADER_CLSID && CLSID !== clsid) throw new Error(\"Bad PropertySet CLSID \" + CLSID);\n\tNumSets = blob.read_shift(4);\n\tif(NumSets !== 1 && NumSets !== 2) throw new Error(\"Unrecognized #Sets: \" + NumSets);\n\tFMTID0 = blob.read_shift(16); Offset0 = blob.read_shift(4);\n\n\tif(NumSets === 1 && Offset0 !== blob.l) throw new Error(\"Length mismatch: \" + Offset0 + \" !== \" + blob.l);\n\telse if(NumSets === 2) { FMTID1 = blob.read_shift(16); Offset1 = blob.read_shift(4); }\n\tvar PSet0 = parse_PropertySet(blob, PIDSI);\n\n\tvar rval = ({ SystemIdentifier: SystemIdentifier }/*:any*/);\n\tfor(var y in PSet0) rval[y] = PSet0[y];\n\t//rval.blob = blob;\n\trval.FMTID = FMTID0;\n\t//rval.PSet0 = PSet0;\n\tif(NumSets === 1) return rval;\n\tif(Offset1 - blob.l == 2) blob.l += 2;\n\tif(blob.l !== Offset1) throw new Error(\"Length mismatch 2: \" + blob.l + \" !== \" + Offset1);\n\tvar PSet1;\n\ttry { PSet1 = parse_PropertySet(blob, null); } catch(e) {/* empty */}\n\tfor(y in PSet1) rval[y] = PSet1[y];\n\trval.FMTID = [FMTID0, FMTID1]; // TODO: verify FMTID0/1\n\treturn rval;\n}\nfunction write_PropertySetStream(entries, clsid, RE, PIDSI/*:{[key:string|number]:any}*/, entries2/*:?any*/, clsid2/*:?any*/) {\n\tvar hdr = new_buf(entries2 ? 68 : 48);\n\tvar bufs = [hdr];\n\thdr.write_shift(2, 0xFFFE);\n\thdr.write_shift(2, 0x0000); /* TODO: type 1 props */\n\thdr.write_shift(4, 0x32363237);\n\thdr.write_shift(16, CFB.utils.consts.HEADER_CLSID, \"hex\");\n\thdr.write_shift(4, (entries2 ? 2 : 1));\n\thdr.write_shift(16, clsid, \"hex\");\n\thdr.write_shift(4, (entries2 ? 68 : 48));\n\tvar ps0 = write_PropertySet(entries, RE, PIDSI);\n\tbufs.push(ps0);\n\n\tif(entries2) {\n\t\tvar ps1 = write_PropertySet(entries2, null, null);\n\t\thdr.write_shift(16, clsid2, \"hex\");\n\t\thdr.write_shift(4, 68 + ps0.length);\n\t\tbufs.push(ps1);\n\t}\n\treturn bconcat(bufs);\n}\n\nfunction parsenoop2(blob, length) { blob.read_shift(length); return null; }\nfunction writezeroes(n, o) { if(!o) o=new_buf(n); for(var j=0; j= 12 ? 2 : 1);\n\tvar encoding = 'sbcs-cont';\n\tvar cp = current_codepage;\n\tif(opts && opts.biff >= 8) current_codepage = 1200;\n\tif(!opts || opts.biff == 8 ) {\n\t\tvar fHighByte = blob.read_shift(1);\n\t\tif(fHighByte) { encoding = 'dbcs-cont'; }\n\t} else if(opts.biff == 12) {\n\t\tencoding = 'wstr';\n\t}\n\tif(opts.biff >= 2 && opts.biff <= 5) encoding = 'cpstr';\n\tvar o = cch ? blob.read_shift(cch, encoding) : \"\";\n\tcurrent_codepage = cp;\n\treturn o;\n}\n\n/* 2.5.293 XLUnicodeRichExtendedString */\nfunction parse_XLUnicodeRichExtendedString(blob) {\n\tvar cp = current_codepage;\n\tcurrent_codepage = 1200;\n\tvar cch = blob.read_shift(2), flags = blob.read_shift(1);\n\tvar /*fHighByte = flags & 0x1,*/ fExtSt = flags & 0x4, fRichSt = flags & 0x8;\n\tvar width = 1 + (flags & 0x1); // 0x0 -> utf8, 0x1 -> dbcs\n\tvar cRun = 0, cbExtRst;\n\tvar z = {};\n\tif(fRichSt) cRun = blob.read_shift(2);\n\tif(fExtSt) cbExtRst = blob.read_shift(4);\n\tvar encoding = width == 2 ? 'dbcs-cont' : 'sbcs-cont';\n\tvar msg = cch === 0 ? \"\" : blob.read_shift(cch, encoding);\n\tif(fRichSt) blob.l += 4 * cRun; //TODO: parse this\n\tif(fExtSt) blob.l += cbExtRst; //TODO: parse this\n\tz.t = msg;\n\tif(!fRichSt) { z.raw = \"\" + z.t + \"\"; z.r = z.t; }\n\tcurrent_codepage = cp;\n\treturn z;\n}\nfunction write_XLUnicodeRichExtendedString(xlstr/*:: :XLString, opts*/) {\n\tvar str = (xlstr.t||\"\"), nfmts = 1;\n\n\tvar hdr = new_buf(3 + (nfmts > 1 ? 2 : 0));\n\thdr.write_shift(2, str.length);\n\thdr.write_shift(1, (nfmts > 1 ? 0x08 : 0x00) | 0x01);\n\tif(nfmts > 1) hdr.write_shift(2, nfmts);\n\n\tvar otext = new_buf(2 * str.length);\n\totext.write_shift(2 * str.length, str, 'utf16le');\n\n\tvar out = [hdr, otext];\n\n\treturn bconcat(out);\n}\n\n/* 2.5.296 XLUnicodeStringNoCch */\nfunction parse_XLUnicodeStringNoCch(blob, cch, opts) {\n\tvar retval;\n\tif(opts) {\n\t\tif(opts.biff >= 2 && opts.biff <= 5) return blob.read_shift(cch, 'cpstr');\n\t\tif(opts.biff >= 12) return blob.read_shift(cch, 'dbcs-cont');\n\t}\n\tvar fHighByte = blob.read_shift(1);\n\tif(fHighByte===0) { retval = blob.read_shift(cch, 'sbcs-cont'); }\n\telse { retval = blob.read_shift(cch, 'dbcs-cont'); }\n\treturn retval;\n}\n\n/* 2.5.294 XLUnicodeString */\nfunction parse_XLUnicodeString(blob, length, opts) {\n\tvar cch = blob.read_shift(opts && opts.biff == 2 ? 1 : 2);\n\tif(cch === 0) { blob.l++; return \"\"; }\n\treturn parse_XLUnicodeStringNoCch(blob, cch, opts);\n}\n/* BIFF5 override */\nfunction parse_XLUnicodeString2(blob, length, opts) {\n\tif(opts.biff > 5) return parse_XLUnicodeString(blob, length, opts);\n\tvar cch = blob.read_shift(1);\n\tif(cch === 0) { blob.l++; return \"\"; }\n\treturn blob.read_shift(cch, (opts.biff <= 4 || !blob.lens ) ? 'cpstr' : 'sbcs-cont');\n}\n/* TODO: BIFF5 and lower, codepage awareness */\nfunction write_XLUnicodeString(str, opts, o) {\n\tif(!o) o = new_buf(3 + 2 * str.length);\n\to.write_shift(2, str.length);\n\to.write_shift(1, 1);\n\to.write_shift(31, str, 'utf16le');\n\treturn o;\n}\n\n/* [MS-XLS] 2.5.61 ControlInfo */\nfunction parse_ControlInfo(blob/*::, length, opts*/) {\n\tvar flags = blob.read_shift(1);\n\tblob.l++;\n\tvar accel = blob.read_shift(2);\n\tblob.l += 2;\n\treturn [flags, accel];\n}\n\n/* [MS-OSHARED] 2.3.7.6 URLMoniker TODO: flags */\nfunction parse_URLMoniker(blob/*::, length, opts*/) {\n\tvar len = blob.read_shift(4), start = blob.l;\n\tvar extra = false;\n\tif(len > 24) {\n\t\t/* look ahead */\n\t\tblob.l += len - 24;\n\t\tif(blob.read_shift(16) === \"795881f43b1d7f48af2c825dc4852763\") extra = true;\n\t\tblob.l = start;\n\t}\n\tvar url = blob.read_shift((extra?len-24:len)>>1, 'utf16le').replace(chr0,\"\");\n\tif(extra) blob.l += 24;\n\treturn url;\n}\n\n/* [MS-OSHARED] 2.3.7.8 FileMoniker TODO: all fields */\nfunction parse_FileMoniker(blob/*::, length*/) {\n\tvar cAnti = blob.read_shift(2);\n\tvar preamble = \"\"; while(cAnti-- > 0) preamble += \"../\";\n\tvar ansiPath = blob.read_shift(0, 'lpstr-ansi');\n\tblob.l += 2; //var endServer = blob.read_shift(2);\n\tif(blob.read_shift(2) != 0xDEAD) throw new Error(\"Bad FileMoniker\");\n\tvar sz = blob.read_shift(4);\n\tif(sz === 0) return preamble + ansiPath.replace(/\\\\/g,\"/\");\n\tvar bytes = blob.read_shift(4);\n\tif(blob.read_shift(2) != 3) throw new Error(\"Bad FileMoniker\");\n\tvar unicodePath = blob.read_shift(bytes>>1, 'utf16le').replace(chr0,\"\");\n\treturn preamble + unicodePath;\n}\n\n/* [MS-OSHARED] 2.3.7.2 HyperlinkMoniker TODO: all the monikers */\nfunction parse_HyperlinkMoniker(blob, length) {\n\tvar clsid = blob.read_shift(16); length -= 16;\n\tswitch(clsid) {\n\t\tcase \"e0c9ea79f9bace118c8200aa004ba90b\": return parse_URLMoniker(blob, length);\n\t\tcase \"0303000000000000c000000000000046\": return parse_FileMoniker(blob, length);\n\t\tdefault: throw new Error(\"Unsupported Moniker \" + clsid);\n\t}\n}\n\n/* [MS-OSHARED] 2.3.7.9 HyperlinkString */\nfunction parse_HyperlinkString(blob/*::, length*/) {\n\tvar len = blob.read_shift(4);\n\tvar o = len > 0 ? blob.read_shift(len, 'utf16le').replace(chr0, \"\") : \"\";\n\treturn o;\n}\nfunction write_HyperlinkString(str/*:string*/, o) {\n\tif(!o) o = new_buf(6 + str.length * 2);\n\to.write_shift(4, 1 + str.length);\n\tfor(var i = 0; i < str.length; ++i) o.write_shift(2, str.charCodeAt(i));\n\to.write_shift(2, 0);\n\treturn o;\n}\n\n/* [MS-OSHARED] 2.3.7.1 Hyperlink Object */\nfunction parse_Hyperlink(blob, length)/*:Hyperlink*/ {\n\tvar end = blob.l + length;\n\tvar sVer = blob.read_shift(4);\n\tif(sVer !== 2) throw new Error(\"Unrecognized streamVersion: \" + sVer);\n\tvar flags = blob.read_shift(2);\n\tblob.l += 2;\n\tvar displayName, targetFrameName, moniker, oleMoniker, Loc=\"\", guid, fileTime;\n\tif(flags & 0x0010) displayName = parse_HyperlinkString(blob, end - blob.l);\n\tif(flags & 0x0080) targetFrameName = parse_HyperlinkString(blob, end - blob.l);\n\tif((flags & 0x0101) === 0x0101) moniker = parse_HyperlinkString(blob, end - blob.l);\n\tif((flags & 0x0101) === 0x0001) oleMoniker = parse_HyperlinkMoniker(blob, end - blob.l);\n\tif(flags & 0x0008) Loc = parse_HyperlinkString(blob, end - blob.l);\n\tif(flags & 0x0020) guid = blob.read_shift(16);\n\tif(flags & 0x0040) fileTime = parse_FILETIME(blob/*, 8*/);\n\tblob.l = end;\n\tvar target = targetFrameName||moniker||oleMoniker||\"\";\n\tif(target && Loc) target+=\"#\"+Loc;\n\tif(!target) target = \"#\" + Loc;\n\tif((flags & 0x0002) && target.charAt(0) == \"/\" && target.charAt(1) != \"/\") target = \"file://\" + target;\n\tvar out = ({Target:target}/*:any*/);\n\tif(guid) out.guid = guid;\n\tif(fileTime) out.time = fileTime;\n\tif(displayName) out.Tooltip = displayName;\n\treturn out;\n}\nfunction write_Hyperlink(hl) {\n\tvar out = new_buf(512), i = 0;\n\tvar Target = hl.Target;\n\tif(Target.slice(0,7) == \"file://\") Target = Target.slice(7);\n\tvar hashidx = Target.indexOf(\"#\");\n\tvar F = hashidx > -1 ? 0x1f : 0x17;\n\tswitch(Target.charAt(0)) { case \"#\": F=0x1c; break; case \".\": F&=~2; break; }\n\tout.write_shift(4,2); out.write_shift(4, F);\n\tvar data = [8,6815827,6619237,4849780,83]; for(i = 0; i < data.length; ++i) out.write_shift(4, data[i]);\n\tif(F == 0x1C) {\n\t\tTarget = Target.slice(1);\n\t\twrite_HyperlinkString(Target, out);\n\t} else if(F & 0x02) {\n\t\tdata = \"e0 c9 ea 79 f9 ba ce 11 8c 82 00 aa 00 4b a9 0b\".split(\" \");\n\t\tfor(i = 0; i < data.length; ++i) out.write_shift(1, parseInt(data[i], 16));\n\t\tvar Pretarget = hashidx > -1 ? Target.slice(0, hashidx) : Target;\n\t\tout.write_shift(4, 2*(Pretarget.length + 1));\n\t\tfor(i = 0; i < Pretarget.length; ++i) out.write_shift(2, Pretarget.charCodeAt(i));\n\t\tout.write_shift(2, 0);\n\t\tif(F & 0x08) write_HyperlinkString(hashidx > -1 ? Target.slice(hashidx+1): \"\", out);\n\t} else {\n\t\tdata = \"03 03 00 00 00 00 00 00 c0 00 00 00 00 00 00 46\".split(\" \");\n\t\tfor(i = 0; i < data.length; ++i) out.write_shift(1, parseInt(data[i], 16));\n\t\tvar P = 0;\n\t\twhile(Target.slice(P*3,P*3+3)==\"../\"||Target.slice(P*3,P*3+3)==\"..\\\\\") ++P;\n\t\tout.write_shift(2, P);\n\t\tout.write_shift(4, Target.length - 3 * P + 1);\n\t\tfor(i = 0; i < Target.length - 3 * P; ++i) out.write_shift(1, Target.charCodeAt(i + 3 * P) & 0xFF);\n\t\tout.write_shift(1, 0);\n\t\tout.write_shift(2, 0xFFFF);\n\t\tout.write_shift(2, 0xDEAD);\n\t\tfor(i = 0; i < 6; ++i) out.write_shift(4, 0);\n\t}\n\treturn out.slice(0, out.l);\n}\n\n/* 2.5.178 LongRGBA */\nfunction parse_LongRGBA(blob/*::, length*/) { var r = blob.read_shift(1), g = blob.read_shift(1), b = blob.read_shift(1), a = blob.read_shift(1); return [r,g,b,a]; }\n\n/* 2.5.177 LongRGB */\nfunction parse_LongRGB(blob, length) { var x = parse_LongRGBA(blob, length); x[3] = 0; return x; }\n\n\n/* [MS-XLS] 2.5.19 */\nfunction parse_XLSCell(blob/*::, length*/)/*:Cell*/ {\n\tvar rw = blob.read_shift(2); // 0-indexed\n\tvar col = blob.read_shift(2);\n\tvar ixfe = blob.read_shift(2);\n\treturn ({r:rw, c:col, ixfe:ixfe}/*:any*/);\n}\nfunction write_XLSCell(R/*:number*/, C/*:number*/, ixfe/*:?number*/, o) {\n\tif(!o) o = new_buf(6);\n\to.write_shift(2, R);\n\to.write_shift(2, C);\n\to.write_shift(2, ixfe||0);\n\treturn o;\n}\n\n/* [MS-XLS] 2.5.134 */\nfunction parse_frtHeader(blob) {\n\tvar rt = blob.read_shift(2);\n\tvar flags = blob.read_shift(2); // TODO: parse these flags\n\tblob.l += 8;\n\treturn {type: rt, flags: flags};\n}\n\n\n\nfunction parse_OptXLUnicodeString(blob, length, opts) { return length === 0 ? \"\" : parse_XLUnicodeString2(blob, length, opts); }\n\n/* [MS-XLS] 2.5.344 */\nfunction parse_XTI(blob, length, opts) {\n\tvar w = opts.biff > 8 ? 4 : 2;\n\tvar iSupBook = blob.read_shift(w), itabFirst = blob.read_shift(w,'i'), itabLast = blob.read_shift(w,'i');\n\treturn [iSupBook, itabFirst, itabLast];\n}\n\n/* [MS-XLS] 2.5.218 */\nfunction parse_RkRec(blob) {\n\tvar ixfe = blob.read_shift(2);\n\tvar RK = parse_RkNumber(blob);\n\treturn [ixfe, RK];\n}\n\n/* [MS-XLS] 2.5.1 */\nfunction parse_AddinUdf(blob, length, opts) {\n\tblob.l += 4; length -= 4;\n\tvar l = blob.l + length;\n\tvar udfName = parse_ShortXLUnicodeString(blob, length, opts);\n\tvar cb = blob.read_shift(2);\n\tl -= blob.l;\n\tif(cb !== l) throw new Error(\"Malformed AddinUdf: padding = \" + l + \" != \" + cb);\n\tblob.l += cb;\n\treturn udfName;\n}\n\n/* [MS-XLS] 2.5.209 TODO: Check sizes */\nfunction parse_Ref8U(blob/*::, length*/) {\n\tvar rwFirst = blob.read_shift(2);\n\tvar rwLast = blob.read_shift(2);\n\tvar colFirst = blob.read_shift(2);\n\tvar colLast = blob.read_shift(2);\n\treturn {s:{c:colFirst, r:rwFirst}, e:{c:colLast,r:rwLast}};\n}\nfunction write_Ref8U(r/*:Range*/, o) {\n\tif(!o) o = new_buf(8);\n\to.write_shift(2, r.s.r);\n\to.write_shift(2, r.e.r);\n\to.write_shift(2, r.s.c);\n\to.write_shift(2, r.e.c);\n\treturn o;\n}\n\n/* [MS-XLS] 2.5.211 */\nfunction parse_RefU(blob/*::, length*/) {\n\tvar rwFirst = blob.read_shift(2);\n\tvar rwLast = blob.read_shift(2);\n\tvar colFirst = blob.read_shift(1);\n\tvar colLast = blob.read_shift(1);\n\treturn {s:{c:colFirst, r:rwFirst}, e:{c:colLast,r:rwLast}};\n}\n\n/* [MS-XLS] 2.5.207 */\nvar parse_Ref = parse_RefU;\n\n/* [MS-XLS] 2.5.143 */\nfunction parse_FtCmo(blob/*::, length*/) {\n\tblob.l += 4;\n\tvar ot = blob.read_shift(2);\n\tvar id = blob.read_shift(2);\n\tvar flags = blob.read_shift(2);\n\tblob.l+=12;\n\treturn [id, ot, flags];\n}\n\n/* [MS-XLS] 2.5.149 */\nfunction parse_FtNts(blob) {\n\tvar out = {};\n\tblob.l += 4;\n\tblob.l += 16; // GUID TODO\n\tout.fSharedNote = blob.read_shift(2);\n\tblob.l += 4;\n\treturn out;\n}\n\n/* [MS-XLS] 2.5.142 */\nfunction parse_FtCf(blob) {\n\tvar out = {};\n\tblob.l += 4;\n\tblob.cf = blob.read_shift(2);\n\treturn out;\n}\n\n/* [MS-XLS] 2.5.140 - 2.5.154 and friends */\nfunction parse_FtSkip(blob) { blob.l += 2; blob.l += blob.read_shift(2); }\nvar FtTab = {\n\t/*::[*/0x00/*::]*/: parse_FtSkip, /* FtEnd */\n\t/*::[*/0x04/*::]*/: parse_FtSkip, /* FtMacro */\n\t/*::[*/0x05/*::]*/: parse_FtSkip, /* FtButton */\n\t/*::[*/0x06/*::]*/: parse_FtSkip, /* FtGmo */\n\t/*::[*/0x07/*::]*/: parse_FtCf, /* FtCf */\n\t/*::[*/0x08/*::]*/: parse_FtSkip, /* FtPioGrbit */\n\t/*::[*/0x09/*::]*/: parse_FtSkip, /* FtPictFmla */\n\t/*::[*/0x0A/*::]*/: parse_FtSkip, /* FtCbls */\n\t/*::[*/0x0B/*::]*/: parse_FtSkip, /* FtRbo */\n\t/*::[*/0x0C/*::]*/: parse_FtSkip, /* FtSbs */\n\t/*::[*/0x0D/*::]*/: parse_FtNts, /* FtNts */\n\t/*::[*/0x0E/*::]*/: parse_FtSkip, /* FtSbsFmla */\n\t/*::[*/0x0F/*::]*/: parse_FtSkip, /* FtGboData */\n\t/*::[*/0x10/*::]*/: parse_FtSkip, /* FtEdoData */\n\t/*::[*/0x11/*::]*/: parse_FtSkip, /* FtRboData */\n\t/*::[*/0x12/*::]*/: parse_FtSkip, /* FtCblsData */\n\t/*::[*/0x13/*::]*/: parse_FtSkip, /* FtLbsData */\n\t/*::[*/0x14/*::]*/: parse_FtSkip, /* FtCblsFmla */\n\t/*::[*/0x15/*::]*/: parse_FtCmo\n};\nfunction parse_FtArray(blob, length/*::, ot*/) {\n\tvar tgt = blob.l + length;\n\tvar fts = [];\n\twhile(blob.l < tgt) {\n\t\tvar ft = blob.read_shift(2);\n\t\tblob.l-=2;\n\t\ttry {\n\t\t\tfts[ft] = FtTab[ft](blob, tgt - blob.l);\n\t\t} catch(e) { blob.l = tgt; return fts; }\n\t}\n\tif(blob.l != tgt) blob.l = tgt; //throw new Error(\"bad Object Ft-sequence\");\n\treturn fts;\n}\n\n/* --- 2.4 Records --- */\n\n/* [MS-XLS] 2.4.21 */\nfunction parse_BOF(blob, length) {\n\tvar o = {BIFFVer:0, dt:0};\n\to.BIFFVer = blob.read_shift(2); length -= 2;\n\tif(length >= 2) { o.dt = blob.read_shift(2); blob.l -= 2; }\n\tswitch(o.BIFFVer) {\n\t\tcase 0x0600: /* BIFF8 */\n\t\tcase 0x0500: /* BIFF5 */\n\t\tcase 0x0400: /* BIFF4 */\n\t\tcase 0x0300: /* BIFF3 */\n\t\tcase 0x0200: /* BIFF2 */\n\t\tcase 0x0002: case 0x0007: /* BIFF2 */\n\t\t\tbreak;\n\t\tdefault: if(length > 6) throw new Error(\"Unexpected BIFF Ver \" + o.BIFFVer);\n\t}\n\n\tblob.read_shift(length);\n\treturn o;\n}\nfunction write_BOF(wb/*:Workbook*/, t/*:number*/, o) {\n\tvar h = 0x0600, w = 16;\n\tswitch(o.bookType) {\n\t\tcase 'biff8': break;\n\t\tcase 'biff5': h = 0x0500; w = 8; break;\n\t\tcase 'biff4': h = 0x0004; w = 6; break;\n\t\tcase 'biff3': h = 0x0003; w = 6; break;\n\t\tcase 'biff2': h = 0x0002; w = 4; break;\n\t\tcase 'xla': break;\n\t\tdefault: throw new Error(\"unsupported BIFF version\");\n\t}\n\tvar out = new_buf(w);\n\tout.write_shift(2, h);\n\tout.write_shift(2, t);\n\tif(w > 4) out.write_shift(2, 0x7262);\n\tif(w > 6) out.write_shift(2, 0x07CD);\n\tif(w > 8) {\n\t\tout.write_shift(2, 0xC009);\n\t\tout.write_shift(2, 0x0001);\n\t\tout.write_shift(2, 0x0706);\n\t\tout.write_shift(2, 0x0000);\n\t}\n\treturn out;\n}\n\n\n/* [MS-XLS] 2.4.146 */\nfunction parse_InterfaceHdr(blob, length) {\n\tif(length === 0) return 0x04b0;\n\tif((blob.read_shift(2))!==0x04b0){/* empty */}\n\treturn 0x04b0;\n}\n\n\n/* [MS-XLS] 2.4.349 */\nfunction parse_WriteAccess(blob, length, opts) {\n\tif(opts.enc) { blob.l += length; return \"\"; }\n\tvar l = blob.l;\n\t// TODO: make sure XLUnicodeString doesnt overrun\n\tvar UserName = parse_XLUnicodeString2(blob, 0, opts);\n\tblob.read_shift(length + l - blob.l);\n\treturn UserName;\n}\nfunction write_WriteAccess(s/*:string*/, opts) {\n\tvar b8 = !opts || opts.biff == 8;\n\tvar o = new_buf(b8 ? 112 : 54);\n\to.write_shift(opts.biff == 8 ? 2 : 1, 7);\n\tif(b8) o.write_shift(1, 0);\n\to.write_shift(4, 0x33336853);\n\to.write_shift(4, (0x00534A74 | (b8 ? 0 : 0x20000000)));\n\twhile(o.l < o.length) o.write_shift(1, (b8 ? 0 : 32));\n\treturn o;\n}\n\n/* [MS-XLS] 2.4.351 */\nfunction parse_WsBool(blob, length, opts) {\n\tvar flags = opts && opts.biff == 8 || length == 2 ? blob.read_shift(2) : (blob.l += length, 0);\n\treturn { fDialog: flags & 0x10, fBelow: flags & 0x40, fRight: flags & 0x80 };\n}\n\n/* [MS-XLS] 2.4.28 */\nfunction parse_BoundSheet8(blob, length, opts) {\n\tvar pos = blob.read_shift(4);\n\tvar hidden = blob.read_shift(1) & 0x03;\n\tvar dt = blob.read_shift(1);\n\tswitch(dt) {\n\t\tcase 0: dt = 'Worksheet'; break;\n\t\tcase 1: dt = 'Macrosheet'; break;\n\t\tcase 2: dt = 'Chartsheet'; break;\n\t\tcase 6: dt = 'VBAModule'; break;\n\t}\n\tvar name = parse_ShortXLUnicodeString(blob, 0, opts);\n\tif(name.length === 0) name = \"Sheet1\";\n\treturn { pos:pos, hs:hidden, dt:dt, name:name };\n}\nfunction write_BoundSheet8(data, opts) {\n\tvar w = (!opts || opts.biff >= 8 ? 2 : 1);\n\tvar o = new_buf(8 + w * data.name.length);\n\to.write_shift(4, data.pos);\n\to.write_shift(1, data.hs || 0);\n\to.write_shift(1, data.dt);\n\to.write_shift(1, data.name.length);\n\tif(opts.biff >= 8) o.write_shift(1, 1);\n\to.write_shift(w * data.name.length, data.name, opts.biff < 8 ? 'sbcs' : 'utf16le');\n\tvar out = o.slice(0, o.l);\n\tout.l = o.l; return out;\n}\n\n/* [MS-XLS] 2.4.265 TODO */\nfunction parse_SST(blob, length)/*:SST*/ {\n\tvar end = blob.l + length;\n\tvar cnt = blob.read_shift(4);\n\tvar ucnt = blob.read_shift(4);\n\tvar strs/*:SST*/ = ([]/*:any*/);\n\tfor(var i = 0; i != ucnt && blob.l < end; ++i) {\n\t\tstrs.push(parse_XLUnicodeRichExtendedString(blob));\n\t}\n\tstrs.Count = cnt; strs.Unique = ucnt;\n\treturn strs;\n}\nfunction write_SST(sst, opts) {\n\tvar header = new_buf(8);\n\theader.write_shift(4, sst.Count);\n\theader.write_shift(4, sst.Unique);\n\tvar strs = [];\n\tfor(var j = 0; j < sst.length; ++j) strs[j] = write_XLUnicodeRichExtendedString(sst[j], opts);\n\tvar o = bconcat([header].concat(strs));\n\t/*::(*/o/*:: :any)*/.parts = [header.length].concat(strs.map(function(str) { return str.length; }));\n\treturn o;\n}\n\n/* [MS-XLS] 2.4.107 */\nfunction parse_ExtSST(blob, length) {\n\tvar extsst = {};\n\textsst.dsst = blob.read_shift(2);\n\tblob.l += length-2;\n\treturn extsst;\n}\n\n\n/* [MS-XLS] 2.4.221 TODO: check BIFF2-4 */\nfunction parse_Row(blob) {\n\tvar z = ({}/*:any*/);\n\tz.r = blob.read_shift(2);\n\tz.c = blob.read_shift(2);\n\tz.cnt = blob.read_shift(2) - z.c;\n\tvar miyRw = blob.read_shift(2);\n\tblob.l += 4; // reserved(2), unused(2)\n\tvar flags = blob.read_shift(1); // various flags\n\tblob.l += 3; // reserved(8), ixfe(12), flags(4)\n\tif(flags & 0x07) z.level = flags & 0x07;\n\t// collapsed: flags & 0x10\n\tif(flags & 0x20) z.hidden = true;\n\tif(flags & 0x40) z.hpt = miyRw / 20;\n\treturn z;\n}\n\n\n/* [MS-XLS] 2.4.125 */\nfunction parse_ForceFullCalculation(blob) {\n\tvar header = parse_frtHeader(blob);\n\tif(header.type != 0x08A3) throw new Error(\"Invalid Future Record \" + header.type);\n\tvar fullcalc = blob.read_shift(4);\n\treturn fullcalc !== 0x0;\n}\n\n\n\n\n\n/* [MS-XLS] 2.4.215 rt */\nfunction parse_RecalcId(blob) {\n\tblob.read_shift(2);\n\treturn blob.read_shift(4);\n}\n\n/* [MS-XLS] 2.4.87 */\nfunction parse_DefaultRowHeight(blob, length, opts) {\n\tvar f = 0;\n\tif(!(opts && opts.biff == 2)) {\n\t\tf = blob.read_shift(2);\n\t}\n\tvar miyRw = blob.read_shift(2);\n\tif((opts && opts.biff == 2)) {\n\t\tf = 1 - (miyRw >> 15); miyRw &= 0x7fff;\n\t}\n\tvar fl = {Unsynced:f&1,DyZero:(f&2)>>1,ExAsc:(f&4)>>2,ExDsc:(f&8)>>3};\n\treturn [fl, miyRw];\n}\n\n/* [MS-XLS] 2.4.345 TODO */\nfunction parse_Window1(blob) {\n\tvar xWn = blob.read_shift(2), yWn = blob.read_shift(2), dxWn = blob.read_shift(2), dyWn = blob.read_shift(2);\n\tvar flags = blob.read_shift(2), iTabCur = blob.read_shift(2), iTabFirst = blob.read_shift(2);\n\tvar ctabSel = blob.read_shift(2), wTabRatio = blob.read_shift(2);\n\treturn { Pos: [xWn, yWn], Dim: [dxWn, dyWn], Flags: flags, CurTab: iTabCur,\n\t\tFirstTab: iTabFirst, Selected: ctabSel, TabRatio: wTabRatio };\n}\nfunction write_Window1(/*::opts*/) {\n\tvar o = new_buf(18);\n\to.write_shift(2, 0);\n\to.write_shift(2, 0);\n\to.write_shift(2, 0x7260);\n\to.write_shift(2, 0x44c0);\n\to.write_shift(2, 0x38);\n\to.write_shift(2, 0);\n\to.write_shift(2, 0);\n\to.write_shift(2, 1);\n\to.write_shift(2, 0x01f4);\n\treturn o;\n}\n/* [MS-XLS] 2.4.346 TODO */\nfunction parse_Window2(blob, length, opts) {\n\tif(opts && opts.biff >= 2 && opts.biff < 5) return {};\n\tvar f = blob.read_shift(2);\n\treturn { RTL: f & 0x40 };\n}\nfunction write_Window2(view) {\n\tvar o = new_buf(18), f = 0x6b6;\n\tif(view && view.RTL) f |= 0x40;\n\to.write_shift(2, f);\n\to.write_shift(4, 0);\n\to.write_shift(4, 64);\n\to.write_shift(4, 0);\n\to.write_shift(4, 0);\n\treturn o;\n}\n\n/* [MS-XLS] 2.4.189 TODO */\nfunction parse_Pane(/*blob, length, opts*/) {\n}\n\n/* [MS-XLS] 2.4.122 TODO */\nfunction parse_Font(blob, length, opts) {\n\tvar o/*:any*/ = {\n\t\tdyHeight: blob.read_shift(2),\n\t\tfl: blob.read_shift(2)\n\t};\n\tswitch((opts && opts.biff) || 8) {\n\t\tcase 2: break;\n\t\tcase 3: case 4: blob.l += 2; break;\n\t\tdefault: blob.l += 10; break;\n\t}\n\to.name = parse_ShortXLUnicodeString(blob, 0, opts);\n\treturn o;\n}\nfunction write_Font(data, opts) {\n\tvar name = data.name || \"Arial\";\n\tvar b5 = (opts && (opts.biff == 5)), w = (b5 ? (15 + name.length) : (16 + 2 * name.length));\n\tvar o = new_buf(w);\n\to.write_shift(2, (data.sz || 12) * 20);\n\to.write_shift(4, 0);\n\to.write_shift(2, 400);\n\to.write_shift(4, 0);\n\to.write_shift(2, 0);\n\to.write_shift(1, name.length);\n\tif(!b5) o.write_shift(1, 1);\n\to.write_shift((b5 ? 1 : 2) * name.length, name, (b5 ? \"sbcs\" : \"utf16le\"));\n\treturn o;\n}\n\n/* [MS-XLS] 2.4.149 */\nfunction parse_LabelSst(blob) {\n\tvar cell = parse_XLSCell(blob);\n\tcell.isst = blob.read_shift(4);\n\treturn cell;\n}\nfunction write_LabelSst(R/*:number*/, C/*:number*/, v/*:number*/, os/*:number*/ /*::, opts*/) {\n\tvar o = new_buf(10);\n\twrite_XLSCell(R, C, os, o);\n\to.write_shift(4, v);\n\treturn o;\n}\n\n/* [MS-XLS] 2.4.148 */\nfunction parse_Label(blob, length, opts) {\n\tif(opts.biffguess && opts.biff == 2) opts.biff = 5;\n\tvar target = blob.l + length;\n\tvar cell = parse_XLSCell(blob, 6);\n\tif(opts.biff == 2) blob.l++;\n\tvar str = parse_XLUnicodeString(blob, target - blob.l, opts);\n\tcell.val = str;\n\treturn cell;\n}\nfunction write_Label(R/*:number*/, C/*:number*/, v/*:string*/, os/*:number*/, opts) {\n\tvar b8 = !opts || opts.biff == 8;\n\tvar o = new_buf(6 + 2 + (+b8) + (1 + b8) * v.length);\n\twrite_XLSCell(R, C, os, o);\n\to.write_shift(2, v.length);\n\tif(b8) o.write_shift(1, 1);\n\to.write_shift((1 + b8) * v.length, v, b8 ? 'utf16le' : 'sbcs');\n\treturn o;\n}\n\n\n/* [MS-XLS] 2.4.126 Number Formats */\nfunction parse_Format(blob, length, opts) {\n\tvar numFmtId = blob.read_shift(2);\n\tvar fmtstr = parse_XLUnicodeString2(blob, 0, opts);\n\treturn [numFmtId, fmtstr];\n}\nfunction write_Format(i/*:number*/, f/*:string*/, opts, o) {\n\tvar b5 = (opts && (opts.biff == 5));\n\tif(!o) o = new_buf(b5 ? (3 + f.length) : (5 + 2 * f.length));\n\to.write_shift(2, i);\n\to.write_shift((b5 ? 1 : 2), f.length);\n\tif(!b5) o.write_shift(1, 1);\n\to.write_shift((b5 ? 1 : 2) * f.length, f, (b5 ? 'sbcs' : 'utf16le'));\n\tvar out = (o.length > o.l) ? o.slice(0, o.l) : o;\n\tif(out.l == null) out.l = out.length;\n\treturn out;\n}\nvar parse_BIFF2Format = parse_XLUnicodeString2;\n\n/* [MS-XLS] 2.4.90 */\nfunction parse_Dimensions(blob, length, opts) {\n\tvar end = blob.l + length;\n\tvar w = opts.biff == 8 || !opts.biff ? 4 : 2;\n\tvar r = blob.read_shift(w), R = blob.read_shift(w);\n\tvar c = blob.read_shift(2), C = blob.read_shift(2);\n\tblob.l = end;\n\treturn {s: {r:r, c:c}, e: {r:R, c:C}};\n}\nfunction write_Dimensions(range, opts) {\n\tvar w = opts.biff == 8 || !opts.biff ? 4 : 2;\n\tvar o = new_buf(2*w + 6);\n\to.write_shift(w, range.s.r);\n\to.write_shift(w, range.e.r + 1);\n\to.write_shift(2, range.s.c);\n\to.write_shift(2, range.e.c + 1);\n\to.write_shift(2, 0);\n\treturn o;\n}\n\n/* [MS-XLS] 2.4.220 */\nfunction parse_RK(blob) {\n\tvar rw = blob.read_shift(2), col = blob.read_shift(2);\n\tvar rkrec = parse_RkRec(blob);\n\treturn {r:rw, c:col, ixfe:rkrec[0], rknum:rkrec[1]};\n}\n\n/* [MS-XLS] 2.4.175 */\nfunction parse_MulRk(blob, length) {\n\tvar target = blob.l + length - 2;\n\tvar rw = blob.read_shift(2), col = blob.read_shift(2);\n\tvar rkrecs = [];\n\twhile(blob.l < target) rkrecs.push(parse_RkRec(blob));\n\tif(blob.l !== target) throw new Error(\"MulRK read error\");\n\tvar lastcol = blob.read_shift(2);\n\tif(rkrecs.length != lastcol - col + 1) throw new Error(\"MulRK length mismatch\");\n\treturn {r:rw, c:col, C:lastcol, rkrec:rkrecs};\n}\n/* [MS-XLS] 2.4.174 */\nfunction parse_MulBlank(blob, length) {\n\tvar target = blob.l + length - 2;\n\tvar rw = blob.read_shift(2), col = blob.read_shift(2);\n\tvar ixfes = [];\n\twhile(blob.l < target) ixfes.push(blob.read_shift(2));\n\tif(blob.l !== target) throw new Error(\"MulBlank read error\");\n\tvar lastcol = blob.read_shift(2);\n\tif(ixfes.length != lastcol - col + 1) throw new Error(\"MulBlank length mismatch\");\n\treturn {r:rw, c:col, C:lastcol, ixfe:ixfes};\n}\n\n/* [MS-XLS] 2.5.20 2.5.249 TODO: interpret values here */\nfunction parse_CellStyleXF(blob, length, style, opts) {\n\tvar o = {};\n\tvar a = blob.read_shift(4), b = blob.read_shift(4);\n\tvar c = blob.read_shift(4), d = blob.read_shift(2);\n\to.patternType = XLSFillPattern[c >> 26];\n\n\tif(!opts.cellStyles) return o;\n\to.alc = a & 0x07;\n\to.fWrap = (a >> 3) & 0x01;\n\to.alcV = (a >> 4) & 0x07;\n\to.fJustLast = (a >> 7) & 0x01;\n\to.trot = (a >> 8) & 0xFF;\n\to.cIndent = (a >> 16) & 0x0F;\n\to.fShrinkToFit = (a >> 20) & 0x01;\n\to.iReadOrder = (a >> 22) & 0x02;\n\to.fAtrNum = (a >> 26) & 0x01;\n\to.fAtrFnt = (a >> 27) & 0x01;\n\to.fAtrAlc = (a >> 28) & 0x01;\n\to.fAtrBdr = (a >> 29) & 0x01;\n\to.fAtrPat = (a >> 30) & 0x01;\n\to.fAtrProt = (a >> 31) & 0x01;\n\n\to.dgLeft = b & 0x0F;\n\to.dgRight = (b >> 4) & 0x0F;\n\to.dgTop = (b >> 8) & 0x0F;\n\to.dgBottom = (b >> 12) & 0x0F;\n\to.icvLeft = (b >> 16) & 0x7F;\n\to.icvRight = (b >> 23) & 0x7F;\n\to.grbitDiag = (b >> 30) & 0x03;\n\n\to.icvTop = c & 0x7F;\n\to.icvBottom = (c >> 7) & 0x7F;\n\to.icvDiag = (c >> 14) & 0x7F;\n\to.dgDiag = (c >> 21) & 0x0F;\n\n\to.icvFore = d & 0x7F;\n\to.icvBack = (d >> 7) & 0x7F;\n\to.fsxButton = (d >> 14) & 0x01;\n\treturn o;\n}\n//function parse_CellXF(blob, length, opts) {return parse_CellStyleXF(blob,length,0, opts);}\n//function parse_StyleXF(blob, length, opts) {return parse_CellStyleXF(blob,length,1, opts);}\n\n/* [MS-XLS] 2.4.353 TODO: actually do this right */\nfunction parse_XF(blob, length, opts) {\n\tvar o = {};\n\to.ifnt = blob.read_shift(2); o.numFmtId = blob.read_shift(2); o.flags = blob.read_shift(2);\n\to.fStyle = (o.flags >> 2) & 0x01;\n\tlength -= 6;\n\to.data = parse_CellStyleXF(blob, length, o.fStyle, opts);\n\treturn o;\n}\nfunction write_XF(data, ixfeP, opts, o) {\n\tvar b5 = (opts && (opts.biff == 5));\n\tif(!o) o = new_buf(b5 ? 16 : 20);\n\to.write_shift(2, 0);\n\tif(data.style) {\n\t\to.write_shift(2, (data.numFmtId||0));\n\t\to.write_shift(2, 0xFFF4);\n\t} else {\n\t\to.write_shift(2, (data.numFmtId||0));\n\t\to.write_shift(2, (ixfeP<<4));\n\t}\n\tvar f = 0;\n\tif(data.numFmtId > 0 && b5) f |= 0x0400;\n\to.write_shift(4, f);\n\to.write_shift(4, 0);\n\tif(!b5) o.write_shift(4, 0);\n\to.write_shift(2, 0);\n\treturn o;\n}\n\n/* [MS-XLS] 2.4.134 */\nfunction parse_Guts(blob) {\n\tblob.l += 4;\n\tvar out = [blob.read_shift(2), blob.read_shift(2)];\n\tif(out[0] !== 0) out[0]--;\n\tif(out[1] !== 0) out[1]--;\n\tif(out[0] > 7 || out[1] > 7) throw new Error(\"Bad Gutters: \" + out.join(\"|\"));\n\treturn out;\n}\nfunction write_Guts(guts/*:Array*/) {\n\tvar o = new_buf(8);\n\to.write_shift(4, 0);\n\to.write_shift(2, guts[0] ? guts[0] + 1 : 0);\n\to.write_shift(2, guts[1] ? guts[1] + 1 : 0);\n\treturn o;\n}\n\n/* [MS-XLS] 2.4.24 */\nfunction parse_BoolErr(blob, length, opts) {\n\tvar cell = parse_XLSCell(blob, 6);\n\tif(opts.biff == 2 || length == 9) ++blob.l;\n\tvar val = parse_Bes(blob, 2);\n\tcell.val = val;\n\tcell.t = (val === true || val === false) ? 'b' : 'e';\n\treturn cell;\n}\nfunction write_BoolErr(R/*:number*/, C/*:number*/, v, os/*:number*/, opts, t/*:string*/) {\n\tvar o = new_buf(8);\n\twrite_XLSCell(R, C, os, o);\n\twrite_Bes(v, t, o);\n\treturn o;\n}\n\n/* [MS-XLS] 2.4.180 Number */\nfunction parse_Number(blob, length, opts) {\n\tif(opts.biffguess && opts.biff == 2) opts.biff = 5;\n\tvar cell = parse_XLSCell(blob, 6);\n\tvar xnum = parse_Xnum(blob, 8);\n\tcell.val = xnum;\n\treturn cell;\n}\nfunction write_Number(R/*:number*/, C/*:number*/, v, os/*:: :number, opts*/) {\n\tvar o = new_buf(14);\n\twrite_XLSCell(R, C, os, o);\n\twrite_Xnum(v, o);\n\treturn o;\n}\n\nvar parse_XLHeaderFooter = parse_OptXLUnicodeString; // TODO: parse 2.4.136\n\n/* [MS-XLS] 2.4.271 */\nfunction parse_SupBook(blob, length, opts) {\n\tvar end = blob.l + length;\n\tvar ctab = blob.read_shift(2);\n\tvar cch = blob.read_shift(2);\n\topts.sbcch = cch;\n\tif(cch == 0x0401 || cch == 0x3A01) return [cch, ctab];\n\tif(cch < 0x01 || cch >0xff) throw new Error(\"Unexpected SupBook type: \"+cch);\n\tvar virtPath = parse_XLUnicodeStringNoCch(blob, cch);\n\t/* TODO: 2.5.277 Virtual Path */\n\tvar rgst = [];\n\twhile(end > blob.l) rgst.push(parse_XLUnicodeString(blob));\n\treturn [cch, ctab, virtPath, rgst];\n}\n\n/* [MS-XLS] 2.4.105 TODO */\nfunction parse_ExternName(blob, length, opts) {\n\tvar flags = blob.read_shift(2);\n\tvar body;\n\tvar o = ({\n\t\tfBuiltIn: flags & 0x01,\n\t\tfWantAdvise: (flags >>> 1) & 0x01,\n\t\tfWantPict: (flags >>> 2) & 0x01,\n\t\tfOle: (flags >>> 3) & 0x01,\n\t\tfOleLink: (flags >>> 4) & 0x01,\n\t\tcf: (flags >>> 5) & 0x3FF,\n\t\tfIcon: flags >>> 15 & 0x01\n\t}/*:any*/);\n\tif(opts.sbcch === 0x3A01) body = parse_AddinUdf(blob, length-2, opts);\n\t//else throw new Error(\"unsupported SupBook cch: \" + opts.sbcch);\n\to.body = body || blob.read_shift(length-2);\n\tif(typeof body === \"string\") o.Name = body;\n\treturn o;\n}\n\n/* [MS-XLS] 2.4.150 TODO */\nfunction parse_Lbl(blob, length, opts) {\n\tvar target = blob.l + length;\n\tvar flags = blob.read_shift(2);\n\tvar chKey = blob.read_shift(1);\n\tvar cch = blob.read_shift(1);\n\tvar cce = blob.read_shift(opts && opts.biff == 2 ? 1 : 2);\n\tvar itab = 0;\n\tif(!opts || opts.biff >= 5) {\n\t\tif(opts.biff != 5) blob.l += 2;\n\t\titab = blob.read_shift(2);\n\t\tif(opts.biff == 5) blob.l += 2;\n\t\tblob.l += 4;\n\t}\n\tvar name = parse_XLUnicodeStringNoCch(blob, cch, opts);\n\tif(flags & 0x20) name = XLSLblBuiltIn[name.charCodeAt(0)];\n\tvar npflen = target - blob.l; if(opts && opts.biff == 2) --npflen;\n\t/*jshint -W018 */\n\tvar rgce = (target == blob.l || cce === 0 || !(npflen > 0)) ? [] : parse_NameParsedFormula(blob, npflen, opts, cce);\n\t/*jshint +W018 */\n\treturn {\n\t\tchKey: chKey,\n\t\tName: name,\n\t\titab: itab,\n\t\trgce: rgce\n\t};\n}\n\n/* [MS-XLS] 2.4.106 TODO: legacy record filename encoding */\nfunction parse_ExternSheet(blob, length, opts) {\n\tif(opts.biff < 8) return parse_BIFF5ExternSheet(blob, length, opts);\n\t/* see issue 2907 */\n\tif(!(opts.biff > 8) && (length == blob[blob.l] + (blob[blob.l+1] == 0x03 ? 1 : 0) + 1)) return parse_BIFF5ExternSheet(blob, length, opts);\n\tvar o = [], target = blob.l + length, len = blob.read_shift(opts.biff > 8 ? 4 : 2);\n\twhile(len-- !== 0) o.push(parse_XTI(blob, opts.biff > 8 ? 12 : 6, opts));\n\t\t// [iSupBook, itabFirst, itabLast];\n\tif(blob.l != target) throw new Error(\"Bad ExternSheet: \" + blob.l + \" != \" + target);\n\treturn o;\n}\nfunction parse_BIFF5ExternSheet(blob, length, opts) {\n\tif(blob[blob.l + 1] == 0x03) blob[blob.l]++;\n\tvar o = parse_ShortXLUnicodeString(blob, length, opts);\n\treturn o.charCodeAt(0) == 0x03 ? o.slice(1) : o;\n}\n\n/* [MS-XLS] 2.4.176 TODO: check older biff */\nfunction parse_NameCmt(blob, length, opts) {\n\tif(opts.biff < 8) { blob.l += length; return; }\n\tvar cchName = blob.read_shift(2);\n\tvar cchComment = blob.read_shift(2);\n\tvar name = parse_XLUnicodeStringNoCch(blob, cchName, opts);\n\tvar comment = parse_XLUnicodeStringNoCch(blob, cchComment, opts);\n\treturn [name, comment];\n}\n\n/* [MS-XLS] 2.4.260 */\nfunction parse_ShrFmla(blob, length, opts) {\n\tvar ref = parse_RefU(blob, 6);\n\tblob.l++;\n\tvar cUse = blob.read_shift(1);\n\tlength -= 8;\n\treturn [parse_SharedParsedFormula(blob, length, opts), cUse, ref];\n}\n\n/* [MS-XLS] 2.4.4 TODO */\nfunction parse_Array(blob, length, opts) {\n\tvar ref = parse_Ref(blob, 6);\n\t/* TODO: fAlwaysCalc */\n\tswitch(opts.biff) {\n\t\tcase 2: blob.l ++; length -= 7; break;\n\t\tcase 3: case 4: blob.l += 2; length -= 8; break;\n\t\tdefault: blob.l += 6; length -= 12;\n\t}\n\treturn [ref, parse_ArrayParsedFormula(blob, length, opts, ref)];\n}\n\n/* [MS-XLS] 2.4.173 */\nfunction parse_MTRSettings(blob) {\n\tvar fMTREnabled = blob.read_shift(4) !== 0x00;\n\tvar fUserSetThreadCount = blob.read_shift(4) !== 0x00;\n\tvar cUserThreadCount = blob.read_shift(4);\n\treturn [fMTREnabled, fUserSetThreadCount, cUserThreadCount];\n}\n\n/* [MS-XLS] 2.5.186 TODO: BIFF5 */\nfunction parse_NoteSh(blob, length, opts) {\n\tif(opts.biff < 8) return;\n\tvar row = blob.read_shift(2), col = blob.read_shift(2);\n\tvar flags = blob.read_shift(2), idObj = blob.read_shift(2);\n\tvar stAuthor = parse_XLUnicodeString2(blob, 0, opts);\n\tif(opts.biff < 8) blob.read_shift(1);\n\treturn [{r:row,c:col}, stAuthor, idObj, flags];\n}\n\n/* [MS-XLS] 2.4.179 */\nfunction parse_Note(blob, length, opts) {\n\t/* TODO: Support revisions */\n\treturn parse_NoteSh(blob, length, opts);\n}\n\n/* [MS-XLS] 2.4.168 */\nfunction parse_MergeCells(blob, length)/*:Array*/ {\n\tvar merges/*:Array*/ = [];\n\tvar cmcs = blob.read_shift(2);\n\twhile (cmcs--) merges.push(parse_Ref8U(blob,length));\n\treturn merges;\n}\nfunction write_MergeCells(merges/*:Array*/) {\n\tvar o = new_buf(2 + merges.length * 8);\n\to.write_shift(2, merges.length);\n\tfor(var i = 0; i < merges.length; ++i) write_Ref8U(merges[i], o);\n\treturn o;\n}\n\n/* [MS-XLS] 2.4.181 TODO: parse all the things! */\nfunction parse_Obj(blob, length, opts) {\n\tif(opts && opts.biff < 8) return parse_BIFF5Obj(blob, length, opts);\n\tvar cmo = parse_FtCmo(blob, 22); // id, ot, flags\n\tvar fts = parse_FtArray(blob, length-22, cmo[1]);\n\treturn { cmo: cmo, ft:fts };\n}\n/* from older spec */\nvar parse_BIFF5OT = {\n0x08: function(blob, length) {\n\tvar tgt = blob.l + length;\n\tblob.l += 10; // todo\n\tvar cf = blob.read_shift(2);\n\tblob.l += 4;\n\tblob.l += 2; //var cbPictFmla = blob.read_shift(2);\n\tblob.l += 2;\n\tblob.l += 2; //var grbit = blob.read_shift(2);\n\tblob.l += 4;\n\tvar cchName = blob.read_shift(1);\n\tblob.l += cchName; // TODO: stName\n\tblob.l = tgt; // TODO: fmla\n\treturn { fmt:cf };\n}\n};\n\nfunction parse_BIFF5Obj(blob, length, opts) {\n\tblob.l += 4; //var cnt = blob.read_shift(4);\n\tvar ot = blob.read_shift(2);\n\tvar id = blob.read_shift(2);\n\tvar grbit = blob.read_shift(2);\n\tblob.l += 2; //var colL = blob.read_shift(2);\n\tblob.l += 2; //var dxL = blob.read_shift(2);\n\tblob.l += 2; //var rwT = blob.read_shift(2);\n\tblob.l += 2; //var dyT = blob.read_shift(2);\n\tblob.l += 2; //var colR = blob.read_shift(2);\n\tblob.l += 2; //var dxR = blob.read_shift(2);\n\tblob.l += 2; //var rwB = blob.read_shift(2);\n\tblob.l += 2; //var dyB = blob.read_shift(2);\n\tblob.l += 2; //var cbMacro = blob.read_shift(2);\n\tblob.l += 6;\n\tlength -= 36;\n\tvar fts = [];\n\tfts.push((parse_BIFF5OT[ot]||parsenoop)(blob, length, opts));\n\treturn { cmo: [id, ot, grbit], ft:fts };\n}\n\n/* [MS-XLS] 2.4.329 TODO: parse properly */\nfunction parse_TxO(blob, length, opts) {\n\tvar s = blob.l;\n\tvar texts = \"\";\ntry {\n\tblob.l += 4;\n\tvar ot = (opts.lastobj||{cmo:[0,0]}).cmo[1];\n\tvar controlInfo; // eslint-disable-line no-unused-vars\n\tif([0,5,7,11,12,14].indexOf(ot) == -1) blob.l += 6;\n\telse controlInfo = parse_ControlInfo(blob, 6, opts); // eslint-disable-line no-unused-vars\n\tvar cchText = blob.read_shift(2);\n\t/*var cbRuns = */blob.read_shift(2);\n\t/*var ifntEmpty = */parseuint16(blob, 2);\n\tvar len = blob.read_shift(2);\n\tblob.l += len;\n\t//var fmla = parse_ObjFmla(blob, s + length - blob.l);\n\n\tfor(var i = 1; i < blob.lens.length-1; ++i) {\n\t\tif(blob.l-s != blob.lens[i]) throw new Error(\"TxO: bad continue record\");\n\t\tvar hdr = blob[blob.l];\n\t\tvar t = parse_XLUnicodeStringNoCch(blob, blob.lens[i+1]-blob.lens[i]-1);\n\t\ttexts += t;\n\t\tif(texts.length >= (hdr ? cchText : 2*cchText)) break;\n\t}\n\tif(texts.length !== cchText && texts.length !== cchText*2) {\n\t\tthrow new Error(\"cchText: \" + cchText + \" != \" + texts.length);\n\t}\n\n\tblob.l = s + length;\n\t/* [MS-XLS] 2.5.272 TxORuns */\n//\tvar rgTxoRuns = [];\n//\tfor(var j = 0; j != cbRuns/8-1; ++j) blob.l += 8;\n//\tvar cchText2 = blob.read_shift(2);\n//\tif(cchText2 !== cchText) throw new Error(\"TxOLastRun mismatch: \" + cchText2 + \" \" + cchText);\n//\tblob.l += 6;\n//\tif(s + length != blob.l) throw new Error(\"TxO \" + (s + length) + \", at \" + blob.l);\n\treturn { t: texts };\n} catch(e) { blob.l = s + length; return { t: texts }; }\n}\n\n/* [MS-XLS] 2.4.140 */\nfunction parse_HLink(blob, length) {\n\tvar ref = parse_Ref8U(blob, 8);\n\tblob.l += 16; /* CLSID */\n\tvar hlink = parse_Hyperlink(blob, length-24);\n\treturn [ref, hlink];\n}\nfunction write_HLink(hl) {\n\tvar O = new_buf(24);\n\tvar ref = decode_cell(hl[0]);\n\tO.write_shift(2, ref.r); O.write_shift(2, ref.r);\n\tO.write_shift(2, ref.c); O.write_shift(2, ref.c);\n\tvar clsid = \"d0 c9 ea 79 f9 ba ce 11 8c 82 00 aa 00 4b a9 0b\".split(\" \");\n\tfor(var i = 0; i < 16; ++i) O.write_shift(1, parseInt(clsid[i], 16));\n\treturn bconcat([O, write_Hyperlink(hl[1])]);\n}\n\n\n/* [MS-XLS] 2.4.141 */\nfunction parse_HLinkTooltip(blob, length) {\n\tblob.read_shift(2);\n\tvar ref = parse_Ref8U(blob, 8);\n\tvar wzTooltip = blob.read_shift((length-10)/2, 'dbcs-cont');\n\twzTooltip = wzTooltip.replace(chr0,\"\");\n\treturn [ref, wzTooltip];\n}\nfunction write_HLinkTooltip(hl) {\n\tvar TT = hl[1].Tooltip;\n\tvar O = new_buf(10 + 2 * (TT.length + 1));\n\tO.write_shift(2, 0x0800);\n\tvar ref = decode_cell(hl[0]);\n\tO.write_shift(2, ref.r); O.write_shift(2, ref.r);\n\tO.write_shift(2, ref.c); O.write_shift(2, ref.c);\n\tfor(var i = 0; i < TT.length; ++i) O.write_shift(2, TT.charCodeAt(i));\n\tO.write_shift(2, 0);\n\treturn O;\n}\n\n/* [MS-XLS] 2.4.63 */\nfunction parse_Country(blob)/*:[string|number, string|number]*/ {\n\tvar o = [0,0], d;\n\td = blob.read_shift(2); o[0] = CountryEnum[d] || d;\n\td = blob.read_shift(2); o[1] = CountryEnum[d] || d;\n\treturn o;\n}\nfunction write_Country(o) {\n\tif(!o) o = new_buf(4);\n\to.write_shift(2, 0x01);\n\to.write_shift(2, 0x01);\n\treturn o;\n}\n\n/* [MS-XLS] 2.4.50 ClrtClient */\nfunction parse_ClrtClient(blob) {\n\tvar ccv = blob.read_shift(2);\n\tvar o = [];\n\twhile(ccv-->0) o.push(parse_LongRGB(blob, 8));\n\treturn o;\n}\n\n/* [MS-XLS] 2.4.188 */\nfunction parse_Palette(blob) {\n\tvar ccv = blob.read_shift(2);\n\tvar o = [];\n\twhile(ccv-->0) o.push(parse_LongRGB(blob, 8));\n\treturn o;\n}\n\n/* [MS-XLS] 2.4.354 */\nfunction parse_XFCRC(blob) {\n\tblob.l += 2;\n\tvar o = {cxfs:0, crc:0};\n\to.cxfs = blob.read_shift(2);\n\to.crc = blob.read_shift(4);\n\treturn o;\n}\n\n/* [MS-XLS] 2.4.53 TODO: parse flags */\n/* [MS-XLSB] 2.4.323 TODO: parse flags */\nfunction parse_ColInfo(blob, length, opts) {\n\tif(!opts.cellStyles) return parsenoop(blob, length);\n\tvar w = opts && opts.biff >= 12 ? 4 : 2;\n\tvar colFirst = blob.read_shift(w);\n\tvar colLast = blob.read_shift(w);\n\tvar coldx = blob.read_shift(w);\n\tvar ixfe = blob.read_shift(w);\n\tvar flags = blob.read_shift(2);\n\tif(w == 2) blob.l += 2;\n\tvar o = ({s:colFirst, e:colLast, w:coldx, ixfe:ixfe, flags:flags}/*:any*/);\n\tif(opts.biff >= 5 || !opts.biff) o.level = (flags >> 8) & 0x7;\n\treturn o;\n}\nfunction write_ColInfo(col, idx) {\n\tvar o = new_buf(12);\n\to.write_shift(2, idx);\n\to.write_shift(2, idx);\n\to.write_shift(2, col.width * 256);\n\to.write_shift(2, 0);\n\tvar f = 0;\n\tif(col.hidden) f |= 1;\n\to.write_shift(1, f);\n\tf = col.level || 0;\n\to.write_shift(1, f);\n\to.write_shift(2, 0);\n\treturn o;\n}\n\n/* [MS-XLS] 2.4.257 */\nfunction parse_Setup(blob, length) {\n\tvar o = {};\n\tif(length < 32) return o;\n\tblob.l += 16;\n\to.header = parse_Xnum(blob, 8);\n\to.footer = parse_Xnum(blob, 8);\n\tblob.l += 2;\n\treturn o;\n}\n\n/* [MS-XLS] 2.4.261 */\nfunction parse_ShtProps(blob, length, opts) {\n\tvar def = {area:false};\n\tif(opts.biff != 5) { blob.l += length; return def; }\n\tvar d = blob.read_shift(1); blob.l += 3;\n\tif((d & 0x10)) def.area = true;\n\treturn def;\n}\n\n/* [MS-XLS] 2.4.241 */\nfunction write_RRTabId(n/*:number*/) {\n\tvar out = new_buf(2 * n);\n\tfor(var i = 0; i < n; ++i) out.write_shift(2, i+1);\n\treturn out;\n}\n\nvar parse_Blank = parse_XLSCell; /* [MS-XLS] 2.4.20 Just the cell */\nvar parse_Scl = parseuint16a; /* [MS-XLS] 2.4.247 num, den */\nvar parse_String = parse_XLUnicodeString; /* [MS-XLS] 2.4.268 */\n\n/* --- Specific to versions before BIFF8 --- */\nfunction parse_ImData(blob) {\n\tvar cf = blob.read_shift(2);\n\tvar env = blob.read_shift(2);\n\tvar lcb = blob.read_shift(4);\n\tvar o = {fmt:cf, env:env, len:lcb, data:blob.slice(blob.l,blob.l+lcb)};\n\tblob.l += lcb;\n\treturn o;\n}\n\n/* BIFF2_??? where ??? is the name from [XLS] */\nfunction parse_BIFF2STR(blob, length, opts) {\n\tif(opts.biffguess && opts.biff == 5) opts.biff = 2;\n\tvar cell = parse_XLSCell(blob, 6);\n\t++blob.l;\n\tvar str = parse_XLUnicodeString2(blob, length-7, opts);\n\tcell.t = 'str';\n\tcell.val = str;\n\treturn cell;\n}\n\nfunction parse_BIFF2NUM(blob/*::, length*/) {\n\tvar cell = parse_XLSCell(blob, 6);\n\t++blob.l;\n\tvar num = parse_Xnum(blob, 8);\n\tcell.t = 'n';\n\tcell.val = num;\n\treturn cell;\n}\nfunction write_BIFF2NUM(r/*:number*/, c/*:number*/, val/*:number*/) {\n\tvar out = new_buf(15);\n\twrite_BIFF2Cell(out, r, c);\n\tout.write_shift(8, val, 'f');\n\treturn out;\n}\n\nfunction parse_BIFF2INT(blob) {\n\tvar cell = parse_XLSCell(blob, 6);\n\t++blob.l;\n\tvar num = blob.read_shift(2);\n\tcell.t = 'n';\n\tcell.val = num;\n\treturn cell;\n}\nfunction write_BIFF2INT(r/*:number*/, c/*:number*/, val/*:number*/) {\n\tvar out = new_buf(9);\n\twrite_BIFF2Cell(out, r, c);\n\tout.write_shift(2, val);\n\treturn out;\n}\n\nfunction parse_BIFF2STRING(blob) {\n\tvar cch = blob.read_shift(1);\n\tif(cch === 0) { blob.l++; return \"\"; }\n\treturn blob.read_shift(cch, 'sbcs-cont');\n}\n\n/* TODO: convert to BIFF8 font struct */\nfunction parse_BIFF2FONTXTRA(blob, length) {\n\tblob.l += 6; // unknown\n\tblob.l += 2; // font weight \"bls\"\n\tblob.l += 1; // charset\n\tblob.l += 3; // unknown\n\tblob.l += 1; // font family\n\tblob.l += length - 13;\n}\n\n/* TODO: parse rich text runs */\nfunction parse_RString(blob, length, opts) {\n\tvar end = blob.l + length;\n\tvar cell = parse_XLSCell(blob, 6);\n\tvar cch = blob.read_shift(2);\n\tvar str = parse_XLUnicodeStringNoCch(blob, cch, opts);\n\tblob.l = end;\n\tcell.t = 'str';\n\tcell.val = str;\n\treturn cell;\n}\nvar DBF_SUPPORTED_VERSIONS = [0x02, 0x03, 0x30, 0x31, 0x83, 0x8B, 0x8C, 0xF5];\nvar DBF = /*#__PURE__*/(function() {\nvar dbf_codepage_map = {\n\t/* Code Pages Supported by Visual FoxPro */\n\t/*::[*/0x01/*::]*/: 437, /*::[*/0x02/*::]*/: 850,\n\t/*::[*/0x03/*::]*/: 1252, /*::[*/0x04/*::]*/: 10000,\n\t/*::[*/0x64/*::]*/: 852, /*::[*/0x65/*::]*/: 866,\n\t/*::[*/0x66/*::]*/: 865, /*::[*/0x67/*::]*/: 861,\n\t/*::[*/0x68/*::]*/: 895, /*::[*/0x69/*::]*/: 620,\n\t/*::[*/0x6A/*::]*/: 737, /*::[*/0x6B/*::]*/: 857,\n\t/*::[*/0x78/*::]*/: 950, /*::[*/0x79/*::]*/: 949,\n\t/*::[*/0x7A/*::]*/: 936, /*::[*/0x7B/*::]*/: 932,\n\t/*::[*/0x7C/*::]*/: 874, /*::[*/0x7D/*::]*/: 1255,\n\t/*::[*/0x7E/*::]*/: 1256, /*::[*/0x96/*::]*/: 10007,\n\t/*::[*/0x97/*::]*/: 10029, /*::[*/0x98/*::]*/: 10006,\n\t/*::[*/0xC8/*::]*/: 1250, /*::[*/0xC9/*::]*/: 1251,\n\t/*::[*/0xCA/*::]*/: 1254, /*::[*/0xCB/*::]*/: 1253,\n\n\t/* shapefile DBF extension */\n\t/*::[*/0x00/*::]*/: 20127, /*::[*/0x08/*::]*/: 865,\n\t/*::[*/0x09/*::]*/: 437, /*::[*/0x0A/*::]*/: 850,\n\t/*::[*/0x0B/*::]*/: 437, /*::[*/0x0D/*::]*/: 437,\n\t/*::[*/0x0E/*::]*/: 850, /*::[*/0x0F/*::]*/: 437,\n\t/*::[*/0x10/*::]*/: 850, /*::[*/0x11/*::]*/: 437,\n\t/*::[*/0x12/*::]*/: 850, /*::[*/0x13/*::]*/: 932,\n\t/*::[*/0x14/*::]*/: 850, /*::[*/0x15/*::]*/: 437,\n\t/*::[*/0x16/*::]*/: 850, /*::[*/0x17/*::]*/: 865,\n\t/*::[*/0x18/*::]*/: 437, /*::[*/0x19/*::]*/: 437,\n\t/*::[*/0x1A/*::]*/: 850, /*::[*/0x1B/*::]*/: 437,\n\t/*::[*/0x1C/*::]*/: 863, /*::[*/0x1D/*::]*/: 850,\n\t/*::[*/0x1F/*::]*/: 852, /*::[*/0x22/*::]*/: 852,\n\t/*::[*/0x23/*::]*/: 852, /*::[*/0x24/*::]*/: 860,\n\t/*::[*/0x25/*::]*/: 850, /*::[*/0x26/*::]*/: 866,\n\t/*::[*/0x37/*::]*/: 850, /*::[*/0x40/*::]*/: 852,\n\t/*::[*/0x4D/*::]*/: 936, /*::[*/0x4E/*::]*/: 949,\n\t/*::[*/0x4F/*::]*/: 950, /*::[*/0x50/*::]*/: 874,\n\t/*::[*/0x57/*::]*/: 1252, /*::[*/0x58/*::]*/: 1252,\n\t/*::[*/0x59/*::]*/: 1252, /*::[*/0x6C/*::]*/: 863,\n\t/*::[*/0x86/*::]*/: 737, /*::[*/0x87/*::]*/: 852,\n\t/*::[*/0x88/*::]*/: 857, /*::[*/0xCC/*::]*/: 1257,\n\n\t/*::[*/0xFF/*::]*/: 16969\n};\nvar dbf_reverse_map = evert({\n\t/*::[*/0x01/*::]*/: 437, /*::[*/0x02/*::]*/: 850,\n\t/*::[*/0x03/*::]*/: 1252, /*::[*/0x04/*::]*/: 10000,\n\t/*::[*/0x64/*::]*/: 852, /*::[*/0x65/*::]*/: 866,\n\t/*::[*/0x66/*::]*/: 865, /*::[*/0x67/*::]*/: 861,\n\t/*::[*/0x68/*::]*/: 895, /*::[*/0x69/*::]*/: 620,\n\t/*::[*/0x6A/*::]*/: 737, /*::[*/0x6B/*::]*/: 857,\n\t/*::[*/0x78/*::]*/: 950, /*::[*/0x79/*::]*/: 949,\n\t/*::[*/0x7A/*::]*/: 936, /*::[*/0x7B/*::]*/: 932,\n\t/*::[*/0x7C/*::]*/: 874, /*::[*/0x7D/*::]*/: 1255,\n\t/*::[*/0x7E/*::]*/: 1256, /*::[*/0x96/*::]*/: 10007,\n\t/*::[*/0x97/*::]*/: 10029, /*::[*/0x98/*::]*/: 10006,\n\t/*::[*/0xC8/*::]*/: 1250, /*::[*/0xC9/*::]*/: 1251,\n\t/*::[*/0xCA/*::]*/: 1254, /*::[*/0xCB/*::]*/: 1253,\n\t/*::[*/0x00/*::]*/: 20127\n});\n/* TODO: find an actual specification */\nfunction dbf_to_aoa(buf, opts)/*:AOA*/ {\n\tvar out/*:AOA*/ = [];\n\tvar d/*:Block*/ = (new_raw_buf(1)/*:any*/);\n\tswitch(opts.type) {\n\t\tcase 'base64': d = s2a(Base64_decode(buf)); break;\n\t\tcase 'binary': d = s2a(buf); break;\n\t\tcase 'buffer':\n\t\tcase 'array': d = buf; break;\n\t}\n\tprep_blob(d, 0);\n\n\t/* header */\n\tvar ft = d.read_shift(1);\n\tvar memo = !!(ft & 0x88);\n\tvar vfp = false, l7 = false;\n\tswitch(ft) {\n\t\tcase 0x02: break; // dBASE II\n\t\tcase 0x03: break; // dBASE III\n\t\tcase 0x30: vfp = true; memo = true; break; // VFP\n\t\tcase 0x31: vfp = true; memo = true; break; // VFP with autoincrement\n\t\t// 0x43 dBASE IV SQL table files\n\t\t// 0x63 dBASE IV SQL system files\n\t\tcase 0x83: break; // dBASE III with memo\n\t\tcase 0x8B: break; // dBASE IV with memo\n\t\tcase 0x8C: l7 = true; break; // dBASE Level 7 with memo\n\t\t// case 0xCB dBASE IV SQL table files with memo\n\t\tcase 0xF5: break; // FoxPro 2.x with memo\n\t\t// case 0xFB FoxBASE\n\t\tdefault: throw new Error(\"DBF Unsupported Version: \" + ft.toString(16));\n\t}\n\n\tvar nrow = 0, fpos = 0x0209;\n\tif(ft == 0x02) nrow = d.read_shift(2);\n\td.l += 3; // dBASE II stores DDMMYY date, others use YYMMDD\n\tif(ft != 0x02) nrow = d.read_shift(4);\n\tif(nrow > 1048576) nrow = 1e6;\n\n\tif(ft != 0x02) fpos = d.read_shift(2); // header length\n\tvar rlen = d.read_shift(2); // record length\n\n\tvar /*flags = 0,*/ current_cp = opts.codepage || 1252;\n\tif(ft != 0x02) { // 20 reserved bytes\n\t\td.l+=16;\n\t\t/*flags = */d.read_shift(1);\n\t\t//if(memo && ((flags & 0x02) === 0)) throw new Error(\"DBF Flags \" + flags.toString(16) + \" ft \" + ft.toString(16));\n\n\t\t/* codepage present in FoxPro and dBASE Level 7 */\n\t\tif(d[d.l] !== 0) current_cp = dbf_codepage_map[d[d.l]];\n\t\td.l+=1;\n\n\t\td.l+=2;\n\t}\n\tif(l7) d.l += 36; // Level 7: 32 byte \"Language driver name\", 4 byte reserved\n\n/*:: type DBFField = { name:string; len:number; type:string; } */\n\tvar fields/*:Array*/ = [], field/*:DBFField*/ = ({}/*:any*/);\n\tvar hend = Math.min(d.length, (ft == 0x02 ? 0x209 : (fpos - 10 - (vfp ? 264 : 0))));\n\tvar ww = l7 ? 32 : 11;\n\twhile(d.l < hend && d[d.l] != 0x0d) {\n\t\tfield = ({}/*:any*/);\n\t\tfield.name = (typeof $cptable !== \"undefined\" ? $cptable.utils.decode(current_cp, d.slice(d.l, d.l+ww)) : a2s(d.slice(d.l, d.l + ww))).replace(/[\\u0000\\r\\n].*$/g,\"\");\n\t\td.l += ww;\n\t\tfield.type = String.fromCharCode(d.read_shift(1));\n\t\tif(ft != 0x02 && !l7) field.offset = d.read_shift(4);\n\t\tfield.len = d.read_shift(1);\n\t\tif(ft == 0x02) field.offset = d.read_shift(2);\n\t\tfield.dec = d.read_shift(1);\n\t\tif(field.name.length) fields.push(field);\n\t\tif(ft != 0x02) d.l += l7 ? 13 : 14;\n\t\tswitch(field.type) {\n\t\t\tcase 'B': // Double (VFP) / Binary (dBASE L7)\n\t\t\t\tif((!vfp || field.len != 8) && opts.WTF) console.log('Skipping ' + field.name + ':' + field.type);\n\t\t\t\tbreak;\n\t\t\tcase 'G': // General (FoxPro and dBASE L7)\n\t\t\tcase 'P': // Picture (FoxPro and dBASE L7)\n\t\t\t\tif(opts.WTF) console.log('Skipping ' + field.name + ':' + field.type);\n\t\t\t\tbreak;\n\t\t\tcase '+': // Autoincrement (dBASE L7 only)\n\t\t\tcase '0': // _NullFlags (VFP only)\n\t\t\tcase '@': // Timestamp (dBASE L7 only)\n\t\t\tcase 'C': // Character (dBASE II)\n\t\t\tcase 'D': // Date (dBASE III)\n\t\t\tcase 'F': // Float (dBASE IV)\n\t\t\tcase 'I': // Long (VFP and dBASE L7)\n\t\t\tcase 'L': // Logical (dBASE II)\n\t\t\tcase 'M': // Memo (dBASE III)\n\t\t\tcase 'N': // Number (dBASE II)\n\t\t\tcase 'O': // Double (dBASE L7 only)\n\t\t\tcase 'T': // Datetime (VFP only)\n\t\t\tcase 'Y': // Currency (VFP only)\n\t\t\t\tbreak;\n\t\t\tdefault: throw new Error('Unknown Field Type: ' + field.type);\n\t\t}\n\t}\n\n\tif(d[d.l] !== 0x0D) d.l = fpos-1;\n\tif(d.read_shift(1) !== 0x0D) throw new Error(\"DBF Terminator not found \" + d.l + \" \" + d[d.l]);\n\td.l = fpos;\n\n\t/* data */\n\tvar R = 0, C = 0;\n\tout[0] = [];\n\tfor(C = 0; C != fields.length; ++C) out[0][C] = fields[C].name;\n\twhile(nrow-- > 0) {\n\t\tif(d[d.l] === 0x2A) {\n\t\t\t// TODO: record marked as deleted -- create a hidden row?\n\t\t\td.l+=rlen;\n\t\t\tcontinue;\n\t\t}\n\t\t++d.l;\n\t\tout[++R] = []; C = 0;\n\t\tfor(C = 0; C != fields.length; ++C) {\n\t\t\tvar dd = d.slice(d.l, d.l+fields[C].len); d.l+=fields[C].len;\n\t\t\tprep_blob(dd, 0);\n\t\t\tvar s = typeof $cptable !== \"undefined\" ? $cptable.utils.decode(current_cp, dd) : a2s(dd);\n\t\t\tswitch(fields[C].type) {\n\t\t\t\tcase 'C':\n\t\t\t\t\t// NOTE: it is conventional to write ' / / ' for empty dates\n\t\t\t\t\tif(s.trim().length) out[R][C] = s.replace(/\\s+$/,\"\");\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'D':\n\t\t\t\t\tif(s.length === 8) out[R][C] = new Date(+s.slice(0,4), +s.slice(4,6)-1, +s.slice(6,8));\n\t\t\t\t\telse out[R][C] = s;\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'F': out[R][C] = parseFloat(s.trim()); break;\n\t\t\t\tcase '+': case 'I': out[R][C] = l7 ? dd.read_shift(-4, 'i') ^ 0x80000000 : dd.read_shift(4, 'i'); break;\n\t\t\t\tcase 'L': switch(s.trim().toUpperCase()) {\n\t\t\t\t\tcase 'Y': case 'T': out[R][C] = true; break;\n\t\t\t\t\tcase 'N': case 'F': out[R][C] = false; break;\n\t\t\t\t\tcase '': case '?': break;\n\t\t\t\t\tdefault: throw new Error(\"DBF Unrecognized L:|\" + s + \"|\");\n\t\t\t\t\t} break;\n\t\t\t\tcase 'M': /* TODO: handle memo files */\n\t\t\t\t\tif(!memo) throw new Error(\"DBF Unexpected MEMO for type \" + ft.toString(16));\n\t\t\t\t\tout[R][C] = \"##MEMO##\" + (l7 ? parseInt(s.trim(), 10): dd.read_shift(4));\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'N':\n\t\t\t\t\ts = s.replace(/\\u0000/g,\"\").trim();\n\t\t\t\t\t// NOTE: dBASE II interprets \" . \" as 0\n\t\t\t\t\tif(s && s != \".\") out[R][C] = +s || 0; break;\n\t\t\t\tcase '@':\n\t\t\t\t\t// NOTE: dBASE specs appear to be incorrect\n\t\t\t\t\tout[R][C] = new Date(dd.read_shift(-8, 'f') - 0x388317533400);\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'T': out[R][C] = new Date((dd.read_shift(4) - 0x253D8C) * 0x5265C00 + dd.read_shift(4)); break;\n\t\t\t\tcase 'Y': out[R][C] = dd.read_shift(4,'i')/1e4 + (dd.read_shift(4, 'i')/1e4)*Math.pow(2,32); break;\n\t\t\t\tcase 'O': out[R][C] = -dd.read_shift(-8, 'f'); break;\n\t\t\t\tcase 'B': if(vfp && fields[C].len == 8) { out[R][C] = dd.read_shift(8,'f'); break; }\n\t\t\t\t\t/* falls through */\n\t\t\t\tcase 'G': case 'P': dd.l += fields[C].len; break;\n\t\t\t\tcase '0':\n\t\t\t\t\tif(fields[C].name === '_NullFlags') break;\n\t\t\t\t\t/* falls through */\n\t\t\t\tdefault: throw new Error(\"DBF Unsupported data type \" + fields[C].type);\n\t\t\t}\n\t\t}\n\t}\n\tif(ft != 0x02) if(d.l < d.length && d[d.l++] != 0x1A) throw new Error(\"DBF EOF Marker missing \" + (d.l-1) + \" of \" + d.length + \" \" + d[d.l-1].toString(16));\n\tif(opts && opts.sheetRows) out = out.slice(0, opts.sheetRows);\n\topts.DBF = fields;\n\treturn out;\n}\n\nfunction dbf_to_sheet(buf, opts)/*:Worksheet*/ {\n\tvar o = opts || {};\n\tif(!o.dateNF) o.dateNF = \"yyyymmdd\";\n\tvar ws = aoa_to_sheet(dbf_to_aoa(buf, o), o);\n\tws[\"!cols\"] = o.DBF.map(function(field) { return {\n\t\twch: field.len,\n\t\tDBF: field\n\t};});\n\tdelete o.DBF;\n\treturn ws;\n}\n\nfunction dbf_to_workbook(buf, opts)/*:Workbook*/ {\n\ttry {\n\t\tvar o = sheet_to_workbook(dbf_to_sheet(buf, opts), opts);\n\t\to.bookType = \"dbf\";\n\t\treturn o;\n\t} catch(e) { if(opts && opts.WTF) throw e; }\n\treturn ({SheetNames:[],Sheets:{}});\n}\n\nvar _RLEN = { 'B': 8, 'C': 250, 'L': 1, 'D': 8, '?': 0, '': 0 };\nfunction sheet_to_dbf(ws/*:Worksheet*/, opts/*:WriteOpts*/) {\n\tvar o = opts || {};\n\tvar old_cp = current_codepage;\n\tif(+o.codepage >= 0) set_cp(+o.codepage);\n\tif(o.type == \"string\") throw new Error(\"Cannot write DBF to JS string\");\n\tvar ba = buf_array();\n\tvar aoa/*:AOA*/ = sheet_to_json(ws, {header:1, raw:true, cellDates:true});\n\tvar headers = aoa[0], data = aoa.slice(1), cols = ws[\"!cols\"] || [];\n\tvar i = 0, j = 0, hcnt = 0, rlen = 1;\n\tfor(i = 0; i < headers.length; ++i) {\n\t\tif(((cols[i]||{}).DBF||{}).name) { headers[i] = cols[i].DBF.name; ++hcnt; continue; }\n\t\tif(headers[i] == null) continue;\n\t\t++hcnt;\n\t\tif(typeof headers[i] === 'number') headers[i] = headers[i].toString(10);\n\t\tif(typeof headers[i] !== 'string') throw new Error(\"DBF Invalid column name \" + headers[i] + \" |\" + (typeof headers[i]) + \"|\");\n\t\tif(headers.indexOf(headers[i]) !== i) for(j=0; j<1024;++j)\n\t\t\tif(headers.indexOf(headers[i] + \"_\" + j) == -1) { headers[i] += \"_\" + j; break; }\n\t}\n\tvar range = safe_decode_range(ws['!ref']);\n\tvar coltypes/*:Array*/ = [];\n\tvar colwidths/*:Array*/ = [];\n\tvar coldecimals/*:Array*/ = [];\n\tfor(i = 0; i <= range.e.c - range.s.c; ++i) {\n\t\tvar guess = '', _guess = '', maxlen = 0;\n\t\tvar col/*:Array*/ = [];\n\t\tfor(j=0; j < data.length; ++j) {\n\t\t\tif(data[j][i] != null) col.push(data[j][i]);\n\t\t}\n\t\tif(col.length == 0 || headers[i] == null) { coltypes[i] = '?'; continue; }\n\t\tfor(j = 0; j < col.length; ++j) {\n\t\t\tswitch(typeof col[j]) {\n\t\t\t\t/* TODO: check if L2 compat is desired */\n\t\t\t\tcase 'number': _guess = 'B'; break;\n\t\t\t\tcase 'string': _guess = 'C'; break;\n\t\t\t\tcase 'boolean': _guess = 'L'; break;\n\t\t\t\tcase 'object': _guess = col[j] instanceof Date ? 'D' : 'C'; break;\n\t\t\t\tdefault: _guess = 'C';\n\t\t\t}\n\t\t\t/* TODO: cache the values instead of encoding twice */\n\t\t\tmaxlen = Math.max(maxlen, (typeof $cptable !== \"undefined\" && typeof col[j] == \"string\" ? $cptable.utils.encode(current_ansi, col[j]): String(col[j])).length);\n\t\t\tguess = guess && guess != _guess ? 'C' : _guess;\n\t\t\t//if(guess == 'C') break;\n\t\t}\n\t\tif(maxlen > 250) maxlen = 250;\n\t\t_guess = ((cols[i]||{}).DBF||{}).type;\n\t\t/* TODO: more fine grained control over DBF type resolution */\n\t\tif(_guess == 'C') {\n\t\t\tif(cols[i].DBF.len > maxlen) maxlen = cols[i].DBF.len;\n\t\t}\n\t\tif(guess == 'B' && _guess == 'N') {\n\t\t\tguess = 'N';\n\t\t\tcoldecimals[i] = cols[i].DBF.dec;\n\t\t\tmaxlen = cols[i].DBF.len;\n\t\t}\n\t\tcolwidths[i] = guess == 'C' || _guess == 'N' ? maxlen : (_RLEN[guess] || 0);\n\t\trlen += colwidths[i];\n\t\tcoltypes[i] = guess;\n\t}\n\n\tvar h = ba.next(32);\n\th.write_shift(4, 0x13021130);\n\th.write_shift(4, data.length);\n\th.write_shift(2, 296 + 32 * hcnt);\n\th.write_shift(2, rlen);\n\tfor(i=0; i < 4; ++i) h.write_shift(4, 0);\n\tvar cp = +dbf_reverse_map[/*::String(*/current_codepage/*::)*/] || 0x03;\n\th.write_shift(4, 0x00000000 | (cp<<8));\n\tif(dbf_codepage_map[cp] != +o.codepage) {\n\t\tif(o.codepage) console.error(\"DBF Unsupported codepage \" + current_codepage + \", using 1252\");\n\t\tcurrent_codepage = 1252;\n\t}\n\n\tfor(i = 0, j = 0; i < headers.length; ++i) {\n\t\tif(headers[i] == null) continue;\n\t\tvar hf = ba.next(32);\n\t\t/* TODO: test how applications handle non-ASCII field names */\n\t\tvar _f = (headers[i].slice(-10) + \"\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\").slice(0, 11);\n\t\thf.write_shift(1, _f, \"sbcs\");\n\t\thf.write_shift(1, coltypes[i] == '?' ? 'C' : coltypes[i], \"sbcs\");\n\t\thf.write_shift(4, j);\n\t\thf.write_shift(1, colwidths[i] || _RLEN[coltypes[i]] || 0);\n\t\thf.write_shift(1, coldecimals[i] || 0);\n\t\thf.write_shift(1, 0x02);\n\t\thf.write_shift(4, 0);\n\t\thf.write_shift(1, 0);\n\t\thf.write_shift(4, 0);\n\t\thf.write_shift(4, 0);\n\t\tj += (colwidths[i] || _RLEN[coltypes[i]] || 0);\n\t}\n\n\tvar hb = ba.next(264);\n\thb.write_shift(4, 0x0000000D);\n\tfor(i=0; i < 65;++i) hb.write_shift(4, 0x00000000);\n\tfor(i=0; i < data.length; ++i) {\n\t\tvar rout = ba.next(rlen);\n\t\trout.write_shift(1, 0);\n\t\tfor(j=0; j colwidths[j]) _n = _n.slice(0, colwidths[j]); // addresses decimal > width\n\t\t\t\t\tfor(hcnt=0; hcnt < colwidths[j]-_n.length; ++hcnt) rout.write_shift(1, 0x20);\n\t\t\t\t\trout.write_shift(1, _n, \"sbcs\");\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'D':\n\t\t\t\t\tif(!data[i][j]) rout.write_shift(8, \"00000000\", \"sbcs\");\n\t\t\t\t\telse {\n\t\t\t\t\t\trout.write_shift(4, (\"0000\"+data[i][j].getFullYear()).slice(-4), \"sbcs\");\n\t\t\t\t\t\trout.write_shift(2, (\"00\"+(data[i][j].getMonth()+1)).slice(-2), \"sbcs\");\n\t\t\t\t\t\trout.write_shift(2, (\"00\"+data[i][j].getDate()).slice(-2), \"sbcs\");\n\t\t\t\t\t} break;\n\t\t\t\tcase 'C':\n\t\t\t\t\tvar _l = rout.l;\n\t\t\t\t\tvar _s = String(data[i][j] != null ? data[i][j] : \"\").slice(0, colwidths[j]);\n\t\t\t\t\trout.write_shift(1, _s, \"cpstr\");\n\t\t\t\t\t_l += colwidths[j] - rout.l;\n\t\t\t\t\tfor(hcnt=0; hcnt < _l; ++hcnt) rout.write_shift(1, 0x20); break;\n\t\t\t}\n\t\t}\n\t\t// data\n\t}\n\tcurrent_codepage = old_cp;\n\tba.next(1).write_shift(1, 0x1A);\n\treturn ba.end();\n}\n\treturn {\n\t\tto_workbook: dbf_to_workbook,\n\t\tto_sheet: dbf_to_sheet,\n\t\tfrom_sheet: sheet_to_dbf\n\t};\n})();\n\nvar SYLK = /*#__PURE__*/(function() {\n\t/* TODO: stress test sequences */\n\tvar sylk_escapes = ({\n\t\tAA:'À', BA:'Á', CA:'Â', DA:195, HA:'Ä', JA:197,\n\t\tAE:'È', BE:'É', CE:'Ê', HE:'Ë',\n\t\tAI:'Ì', BI:'Í', CI:'Î', HI:'Ï',\n\t\tAO:'Ò', BO:'Ó', CO:'Ô', DO:213, HO:'Ö',\n\t\tAU:'Ù', BU:'Ú', CU:'Û', HU:'Ü',\n\t\tAa:'à', Ba:'á', Ca:'â', Da:227, Ha:'ä', Ja:229,\n\t\tAe:'è', Be:'é', Ce:'ê', He:'ë',\n\t\tAi:'ì', Bi:'í', Ci:'î', Hi:'ï',\n\t\tAo:'ò', Bo:'ó', Co:'ô', Do:245, Ho:'ö',\n\t\tAu:'ù', Bu:'ú', Cu:'û', Hu:'ü',\n\t\tKC:'Ç', Kc:'ç', q:'æ', z:'œ', a:'Æ', j:'Œ',\n\t\tDN:209, Dn:241, Hy:255,\n\t\tS:169, c:170, R:174, \"B \":180,\n\t\t/*::[*/0/*::]*/:176, /*::[*/1/*::]*/:177, /*::[*/2/*::]*/:178,\n\t\t/*::[*/3/*::]*/:179, /*::[*/5/*::]*/:181, /*::[*/6/*::]*/:182,\n\t\t/*::[*/7/*::]*/:183, Q:185, k:186, b:208, i:216, l:222, s:240, y:248,\n\t\t\"!\":161, '\"':162, \"#\":163, \"(\":164, \"%\":165, \"'\":167, \"H \":168,\n\t\t\"+\":171, \";\":187, \"<\":188, \"=\":189, \">\":190, \"?\":191, \"{\":223\n\t}/*:any*/);\n\tvar sylk_char_regex = new RegExp(\"\\u001BN(\" + keys(sylk_escapes).join(\"|\").replace(/\\|\\|\\|/, \"|\\\\||\").replace(/([?()+])/g,\"\\\\$1\") + \"|\\\\|)\", \"gm\");\n\tvar sylk_char_fn = function(_, $1){ var o = sylk_escapes[$1]; return typeof o == \"number\" ? _getansi(o) : o; };\n\tvar decode_sylk_char = function($$, $1, $2) { var newcc = (($1.charCodeAt(0) - 0x20)<<4) | ($2.charCodeAt(0) - 0x30); return newcc == 59 ? $$ : _getansi(newcc); };\n\tsylk_escapes[\"|\"] = 254;\n\t/* https://oss.sheetjs.com/notes/sylk/ for more details */\n\tfunction sylk_to_aoa(d/*:RawData*/, opts)/*:[AOA, Worksheet]*/ {\n\t\tswitch(opts.type) {\n\t\t\tcase 'base64': return sylk_to_aoa_str(Base64_decode(d), opts);\n\t\t\tcase 'binary': return sylk_to_aoa_str(d, opts);\n\t\t\tcase 'buffer': return sylk_to_aoa_str(has_buf && Buffer.isBuffer(d) ? d.toString('binary') : a2s(d), opts);\n\t\t\tcase 'array': return sylk_to_aoa_str(cc2str(d), opts);\n\t\t}\n\t\tthrow new Error(\"Unrecognized type \" + opts.type);\n\t}\n\tfunction sylk_to_aoa_str(str/*:string*/, opts)/*:[AOA, Worksheet]*/ {\n\t\tvar records = str.split(/[\\n\\r]+/), R = -1, C = -1, ri = 0, rj = 0, arr/*:AOA*/ = [];\n\t\tvar formats/*:Array*/ = [];\n\t\tvar next_cell_format/*:string|null*/ = null;\n\t\tvar sht = {}, rowinfo/*:Array*/ = [], colinfo/*:Array*/ = [], cw/*:Array*/ = [];\n\t\tvar Mval = 0, j;\n\t\tvar wb = { Workbook: { WBProps: {}, Names: [] } };\n\t\tif(+opts.codepage >= 0) set_cp(+opts.codepage);\n\t\tfor (; ri !== records.length; ++ri) {\n\t\t\tMval = 0;\n\t\t\tvar rstr=records[ri].trim().replace(/\\x1B([\\x20-\\x2F])([\\x30-\\x3F])/g, decode_sylk_char).replace(sylk_char_regex, sylk_char_fn);\n\t\t\tvar record=rstr.replace(/;;/g, \"\\u0000\").split(\";\").map(function(x) { return x.replace(/\\u0000/g, \";\"); });\n\t\t\tvar RT=record[0], val;\n\t\t\tif(rstr.length > 0) switch(RT) {\n\t\t\tcase 'ID': break; /* header */\n\t\t\tcase 'E': break; /* EOF */\n\t\t\tcase 'B': break; /* dimensions */\n\t\t\tcase 'O': /* workbook options */\n\t\t\tfor(rj=1; rj= 5 or < 0\n\t\t\t\t\tif(d1904 >= 1 && d1904 <= 4) wb.Workbook.WBProps.date1904 = true;\n\t\t\t\t} break;\n\t\t\t} break;\n\t\t\tcase 'W': break; /* window */\n\t\t\tcase 'P':\n\t\t\t\tswitch(record[1].charAt(0)){\n\t\t\t\t\tcase 'P': formats.push(rstr.slice(3).replace(/;;/g, \";\")); break;\n\t\t\t\t} break;\n\t\t\tcase 'NN': { /* defined name */\n\t\t\t\tvar nn = {Sheet: 0};\n\t\t\t\tfor(rj=1; rj -1 && arr[_R][_C];\n\t\t\t\tif(!shrbase || !shrbase[1]) throw new Error(\"SYLK shared formula cannot find base\");\n\t\t\t\tformula = shift_formula_str(shrbase[1], {r: R - _R, c: C - _C});\n\t\t\t}\n\t\t\tif(formula) {\n\t\t\t\tif(!arr[R][C]) arr[R][C] = { t: 'n', f: formula };\n\t\t\t\telse arr[R][C].f = formula;\n\t\t\t}\n\t\t\tbreak;\n\t\t\tcase 'F': /* Format */\n\t\t\tvar F_seen = 0;\n\t\t\tfor(rj=1; rj 0) { rowinfo[R].hpt = Mval; rowinfo[R].hpx = pt2px(Mval); }\n\t\t\t\t\telse if(Mval === 0) rowinfo[R].hidden = true;\n\t\t\t\t\tbreak;\n\t\t\t\t// case 'K': // ??\n\t\t\t\t// case 'E': // ??\n\t\t\t\tdefault: if(opts && opts.WTF) throw new Error(\"SYLK bad record \" + rstr);\n\t\t\t}\n\t\t\tif(F_seen < 1) next_cell_format = null; break;\n\t\t\tdefault: if(opts && opts.WTF) throw new Error(\"SYLK bad record \" + rstr);\n\t\t\t}\n\t\t}\n\t\tif(rowinfo.length > 0) sht['!rows'] = rowinfo;\n\t\tif(colinfo.length > 0) sht['!cols'] = colinfo;\n\t\tcolinfo.forEach(function(col) { process_col(col); });\n\t\tif(opts && opts.sheetRows) arr = arr.slice(0, opts.sheetRows);\n\t\treturn [arr, sht, wb];\n\t}\n\n\tfunction sylk_to_workbook(d/*:RawData*/, opts)/*:Workbook*/ {\n\t\tvar aoasht = sylk_to_aoa(d, opts);\n\t\tvar aoa = aoasht[0], ws = aoasht[1], wb = aoasht[2];\n\t\tvar _opts = dup(opts); _opts.date1904 = (((wb||{}).Workbook || {}).WBProps || {}).date1904;\n\t\tvar o = aoa_to_sheet(aoa, _opts);\n\t\tkeys(ws).forEach(function(k) { o[k] = ws[k]; });\n\t\tvar outwb = sheet_to_workbook(o, opts);\n\t\tkeys(wb).forEach(function(k) { outwb[k] = wb[k]; });\n\t\toutwb.bookType = \"sylk\";\n\t\treturn outwb;\n\t}\n\n\tfunction write_ws_cell_sylk(cell/*:Cell*/, ws/*:Worksheet*/, R/*:number*/, C/*:number*//*::, opts*/)/*:string*/ {\n\t\tvar o = \"C;Y\" + (R+1) + \";X\" + (C+1) + \";K\";\n\t\tswitch(cell.t) {\n\t\t\tcase 'n':\n\t\t\t\to += (cell.v||0);\n\t\t\t\tif(cell.f && !cell.F) o += \";E\" + a1_to_rc(cell.f, {r:R, c:C}); break;\n\t\t\tcase 'b': o += cell.v ? \"TRUE\" : \"FALSE\"; break;\n\t\t\tcase 'e': o += cell.w || cell.v; break;\n\t\t\tcase 'd': o += '\"' + (cell.w || cell.v) + '\"'; break;\n\t\t\tcase 's': o += '\"' + (cell.v == null ? \"\" : String(cell.v)).replace(/\"/g,\"\").replace(/;/g, \";;\") + '\"'; break;\n\t\t}\n\t\treturn o;\n\t}\n\n\tfunction write_ws_cols_sylk(out, cols) {\n\t\tcols.forEach(function(col, i) {\n\t\t\tvar rec = \"F;W\" + (i+1) + \" \" + (i+1) + \" \";\n\t\t\tif(col.hidden) rec += \"0\";\n\t\t\telse {\n\t\t\t\tif(typeof col.width == 'number' && !col.wpx) col.wpx = width2px(col.width);\n\t\t\t\tif(typeof col.wpx == 'number' && !col.wch) col.wch = px2char(col.wpx);\n\t\t\t\tif(typeof col.wch == 'number') rec += Math.round(col.wch);\n\t\t\t}\n\t\t\tif(rec.charAt(rec.length - 1) != \" \") out.push(rec);\n\t\t});\n\t}\n\n\tfunction write_ws_rows_sylk(out/*:Array*/, rows/*:Array*/) {\n\t\trows.forEach(function(row, i) {\n\t\t\tvar rec = \"F;\";\n\t\t\tif(row.hidden) rec += \"M0;\";\n\t\t\telse if(row.hpt) rec += \"M\" + 20 * row.hpt + \";\";\n\t\t\telse if(row.hpx) rec += \"M\" + 20 * px2pt(row.hpx) + \";\";\n\t\t\tif(rec.length > 2) out.push(rec + \"R\" + (i+1));\n\t\t});\n\t}\n\n\tfunction sheet_to_sylk(ws/*:Worksheet*/, opts/*:?any*/, wb/*:?WorkBook*/)/*:string*/ {\n\t\t/* TODO: codepage */\n\t\tvar preamble/*:Array*/ = [\"ID;PSheetJS;N;E\"], o/*:Array*/ = [];\n\t\tvar r = safe_decode_range(ws['!ref']), cell/*:Cell*/;\n\t\tvar dense = ws[\"!data\"] != null;\n\t\tvar RS = \"\\r\\n\";\n\t\tvar d1904 = (((wb||{}).Workbook||{}).WBProps||{}).date1904;\n\n\t\tpreamble.push(\"P;PGeneral\");\n\t\tpreamble.push(\"F;P0;DG0G8;M255\");\n\t\tif(ws['!cols']) write_ws_cols_sylk(preamble, ws['!cols']);\n\t\tif(ws['!rows']) write_ws_rows_sylk(preamble, ws['!rows']);\n\n\t\tpreamble.push(\"B;Y\" + (r.e.r - r.s.r + 1) + \";X\" + (r.e.c - r.s.c + 1) + \";D\" + [r.s.c,r.s.r,r.e.c,r.e.r].join(\" \"));\n\t\tpreamble.push(\"O;L;D;B\" + (d1904 ? \";V4\" : \"\") + \";K47;G100 0.001\");\n\t\tfor(var R = r.s.r; R <= r.e.r; ++R) {\n\t\t\tif(dense && !ws[\"!data\"][R]) continue;\n\t\t\tvar p = [];\n\t\t\tfor(var C = r.s.c; C <= r.e.c; ++C) {\n\t\t\t\tcell = dense ? ws[\"!data\"][R][C] : ws[encode_col(C) + encode_row(R)];\n\t\t\t\tif(!cell || (cell.v == null && (!cell.f || cell.F))) continue;\n\t\t\t\tp.push(write_ws_cell_sylk(cell, ws, R, C, opts)); // TODO: pass date1904 info\n\t\t\t}\n\t\t\to.push(p.join(RS));\n\t\t}\n\t\treturn preamble.join(RS) + RS + o.join(RS) + RS + \"E\" + RS;\n\t}\n\n\treturn {\n\t\tto_workbook: sylk_to_workbook,\n\t\tfrom_sheet: sheet_to_sylk\n\t};\n})();\n\nvar DIF = /*#__PURE__*/(function() {\n\tfunction dif_to_aoa(d/*:RawData*/, opts)/*:AOA*/ {\n\t\tswitch(opts.type) {\n\t\t\tcase 'base64': return dif_to_aoa_str(Base64_decode(d), opts);\n\t\t\tcase 'binary': return dif_to_aoa_str(d, opts);\n\t\t\tcase 'buffer': return dif_to_aoa_str(has_buf && Buffer.isBuffer(d) ? d.toString('binary') : a2s(d), opts);\n\t\t\tcase 'array': return dif_to_aoa_str(cc2str(d), opts);\n\t\t}\n\t\tthrow new Error(\"Unrecognized type \" + opts.type);\n\t}\n\tfunction dif_to_aoa_str(str/*:string*/, opts)/*:AOA*/ {\n\t\tvar records = str.split('\\n'), R = -1, C = -1, ri = 0, arr/*:AOA*/ = [];\n\t\tfor (; ri !== records.length; ++ri) {\n\t\t\tif (records[ri].trim() === 'BOT') { arr[++R] = []; C = 0; continue; }\n\t\t\tif (R < 0) continue;\n\t\t\tvar metadata = records[ri].trim().split(\",\");\n\t\t\tvar type = metadata[0], value = metadata[1];\n\t\t\t++ri;\n\t\t\tvar data = records[ri] || \"\";\n\t\t\twhile(((data.match(/[\"]/g)||[]).length & 1) && ri < records.length - 1) data += \"\\n\" + records[++ri];\n\t\t\tdata = data.trim();\n\t\t\tswitch (+type) {\n\t\t\t\tcase -1:\n\t\t\t\t\tif (data === 'BOT') { arr[++R] = []; C = 0; continue; }\n\t\t\t\t\telse if (data !== 'EOD') throw new Error(\"Unrecognized DIF special command \" + data);\n\t\t\t\t\tbreak;\n\t\t\t\tcase 0:\n\t\t\t\t\tif(data === 'TRUE') arr[R][C] = true;\n\t\t\t\t\telse if(data === 'FALSE') arr[R][C] = false;\n\t\t\t\t\telse if(!isNaN(fuzzynum(value))) arr[R][C] = fuzzynum(value);\n\t\t\t\t\telse if(!isNaN(fuzzydate(value).getDate())) arr[R][C] = parseDate(value);\n\t\t\t\t\telse arr[R][C] = value;\n\t\t\t\t\t++C; break;\n\t\t\t\tcase 1:\n\t\t\t\t\tdata = data.slice(1,data.length-1);\n\t\t\t\t\tdata = data.replace(/\"\"/g, '\"');\n\t\t\t\t\tif(DIF_XL && data && data.match(/^=\".*\"$/)) data = data.slice(2, -1);\n\t\t\t\t\tarr[R][C++] = data !== '' ? data : null;\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t\tif (data === 'EOD') break;\n\t\t}\n\t\tif(opts && opts.sheetRows) arr = arr.slice(0, opts.sheetRows);\n\t\treturn arr;\n\t}\n\n\tfunction dif_to_sheet(str/*:string*/, opts)/*:Worksheet*/ { return aoa_to_sheet(dif_to_aoa(str, opts), opts); }\n\tfunction dif_to_workbook(str/*:string*/, opts)/*:Workbook*/ {\n\t\tvar o = sheet_to_workbook(dif_to_sheet(str, opts), opts);\n\t\to.bookType = \"dif\";\n\t\treturn o;\n\t}\n\n\tfunction make_value(v/*:number*/, s/*:string*/)/*:string*/ { return \"0,\" + String(v) + \"\\r\\n\" + s; }\n\tfunction make_value_str(s/*:string*/)/*:string*/ { return \"1,0\\r\\n\\\"\" + s.replace(/\"/g,'\"\"') + '\"'; }\n\tfunction sheet_to_dif(ws/*:Worksheet*//*::, opts:?any*/)/*:string*/ {\n\t\tvar _DIF_XL = DIF_XL;\n\t\tvar r = safe_decode_range(ws['!ref']);\n\t\tvar dense = ws[\"!data\"] != null;\n\t\tvar o/*:Array*/ = [\n\t\t\t\"TABLE\\r\\n0,1\\r\\n\\\"sheetjs\\\"\\r\\n\",\n\t\t\t\"VECTORS\\r\\n0,\" + (r.e.r - r.s.r + 1) + \"\\r\\n\\\"\\\"\\r\\n\",\n\t\t\t\"TUPLES\\r\\n0,\" + (r.e.c - r.s.c + 1) + \"\\r\\n\\\"\\\"\\r\\n\",\n\t\t\t\"DATA\\r\\n0,0\\r\\n\\\"\\\"\\r\\n\"\n\t\t];\n\t\tfor(var R = r.s.r; R <= r.e.r; ++R) {\n\t\t\tvar row = dense ? ws[\"!data\"][R] : [];\n\t\t\tvar p = \"-1,0\\r\\nBOT\\r\\n\";\n\t\t\tfor(var C = r.s.c; C <= r.e.c; ++C) {\n\t\t\t\tvar cell/*:Cell*/ = dense ? (row && row[C]) : ws[encode_cell({r:R,c:C})];\n\t\t\t\tif(cell == null) { p +=(\"1,0\\r\\n\\\"\\\"\\r\\n\"); continue;}\n\t\t\t\tswitch(cell.t) {\n\t\t\t\t\tcase 'n':\n\t\t\t\t\t\tif(_DIF_XL) {\n\t\t\t\t\t\t\tif(cell.w != null) p +=(\"0,\" + cell.w + \"\\r\\nV\");\n\t\t\t\t\t\t\telse if(cell.v != null) p +=(make_value(cell.v, \"V\")); // TODO: should this call SSF_format?\n\t\t\t\t\t\t\telse if(cell.f != null && !cell.F) p +=(make_value_str(\"=\" + cell.f));\n\t\t\t\t\t\t\telse p +=(\"1,0\\r\\n\\\"\\\"\");\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tif(cell.v == null) p +=(\"1,0\\r\\n\\\"\\\"\");\n\t\t\t\t\t\t\telse p +=(make_value(cell.v, \"V\"));\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'b':\n\t\t\t\t\t\tp +=(cell.v ? make_value(1, \"TRUE\") : make_value(0, \"FALSE\"));\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 's':\n\t\t\t\t\t\tp +=(make_value_str((!_DIF_XL || isNaN(+cell.v)) ? cell.v : '=\"' + cell.v + '\"'));\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'd':\n\t\t\t\t\t\tif(!cell.w) cell.w = SSF_format(cell.z || table_fmt[14], datenum(parseDate(cell.v)));\n\t\t\t\t\t\tif(_DIF_XL) p +=(make_value(cell.w, \"V\"));\n\t\t\t\t\t\telse p +=(make_value_str(cell.w));\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tdefault: p +=(\"1,0\\r\\n\\\"\\\"\");\n\t\t\t\t}\n\t\t\t\tp += \"\\r\\n\";\n\t\t\t}\n\t\t\to.push(p);\n\t\t}\n\t\treturn o.join(\"\") + \"-1,0\\r\\nEOD\";\n\t}\n\treturn {\n\t\tto_workbook: dif_to_workbook,\n\t\tto_sheet: dif_to_sheet,\n\t\tfrom_sheet: sheet_to_dif\n\t};\n})();\n\nvar ETH = /*#__PURE__*/(function() {\n\tfunction decode(s/*:string*/)/*:string*/ { return s.replace(/\\\\b/g,\"\\\\\").replace(/\\\\c/g,\":\").replace(/\\\\n/g,\"\\n\"); }\n\tfunction encode(s/*:string*/)/*:string*/ { return s.replace(/\\\\/g, \"\\\\b\").replace(/:/g, \"\\\\c\").replace(/\\n/g,\"\\\\n\"); }\n\n\tfunction eth_to_aoa(str/*:string*/, opts)/*:AOA*/ {\n\t\tvar records = str.split('\\n'), R = -1, C = -1, ri = 0, arr/*:AOA*/ = [];\n\t\tfor (; ri !== records.length; ++ri) {\n\t\t\tvar record = records[ri].trim().split(\":\");\n\t\t\tif(record[0] !== 'cell') continue;\n\t\t\tvar addr = decode_cell(record[1]);\n\t\t\tif(arr.length <= addr.r) for(R = arr.length; R <= addr.r; ++R) if(!arr[R]) arr[R] = [];\n\t\t\tR = addr.r; C = addr.c;\n\t\t\tswitch(record[2]) {\n\t\t\t\tcase 't': arr[R][C] = decode(record[3]); break;\n\t\t\t\tcase 'v': arr[R][C] = +record[3]; break;\n\t\t\t\tcase 'vtf': var _f = record[record.length - 1];\n\t\t\t\t\t/* falls through */\n\t\t\t\tcase 'vtc':\n\t\t\t\t\tswitch(record[3]) {\n\t\t\t\t\t\tcase 'nl': arr[R][C] = +record[4] ? true : false; break;\n\t\t\t\t\t\tdefault: arr[R][C] = +record[4]; break;\n\t\t\t\t\t}\n\t\t\t\t\tif(record[2] == 'vtf') arr[R][C] = [arr[R][C], _f];\n\t\t\t}\n\t\t}\n\t\tif(opts && opts.sheetRows) arr = arr.slice(0, opts.sheetRows);\n\t\treturn arr;\n\t}\n\n\tfunction eth_to_sheet(d/*:string*/, opts)/*:Worksheet*/ { return aoa_to_sheet(eth_to_aoa(d, opts), opts); }\n\tfunction eth_to_workbook(d/*:string*/, opts)/*:Workbook*/ { return sheet_to_workbook(eth_to_sheet(d, opts), opts); }\n\n\tvar header = [\n\t\t\"socialcalc:version:1.5\",\n\t\t\"MIME-Version: 1.0\",\n\t\t\"Content-Type: multipart/mixed; boundary=SocialCalcSpreadsheetControlSave\"\n\t].join(\"\\n\");\n\n\tvar sep = [\n\t\t\"--SocialCalcSpreadsheetControlSave\",\n\t\t\"Content-type: text/plain; charset=UTF-8\"\n\t].join(\"\\n\") + \"\\n\";\n\n\t/* TODO: the other parts */\n\tvar meta = [\n\t\t\"# SocialCalc Spreadsheet Control Save\",\n\t\t\"part:sheet\"\n\t].join(\"\\n\");\n\n\tvar end = \"--SocialCalcSpreadsheetControlSave--\";\n\n\tfunction sheet_to_eth_data(ws/*:Worksheet*/)/*:string*/ {\n\t\tif(!ws || !ws['!ref']) return \"\";\n\t\tvar o/*:Array*/ = [], oo/*:Array*/ = [], cell, coord = \"\";\n\t\tvar r = decode_range(ws['!ref']);\n\t\tvar dense = ws[\"!data\"] != null;\n\t\tfor(var R = r.s.r; R <= r.e.r; ++R) {\n\t\t\tfor(var C = r.s.c; C <= r.e.c; ++C) {\n\t\t\t\tcoord = encode_cell({r:R,c:C});\n\t\t\t\tcell = dense ? (ws[\"!data\"][R]||[])[C] : ws[coord];\n\t\t\t\tif(!cell || cell.v == null || cell.t === 'z') continue;\n\t\t\t\too = [\"cell\", coord, 't'];\n\t\t\t\tswitch(cell.t) {\n\t\t\t\t\tcase 's': case 'str': oo.push(encode(cell.v)); break;\n\t\t\t\t\tcase 'n':\n\t\t\t\t\t\tif(!cell.f) { oo[2]='v'; oo[3]=cell.v; }\n\t\t\t\t\t\telse { oo[2]='vtf'; oo[3]='n'; oo[4]=cell.v; oo[5]=encode(cell.f); }\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'b':\n\t\t\t\t\t\too[2] = 'vt'+(cell.f?'f':'c'); oo[3]='nl'; oo[4]=cell.v?\"1\":\"0\";\n\t\t\t\t\t\too[5] = encode(cell.f||(cell.v?'TRUE':'FALSE'));\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'd':\n\t\t\t\t\t\tvar t = datenum(parseDate(cell.v));\n\t\t\t\t\t\too[2] = 'vtc'; oo[3] = 'nd'; oo[4] = \"\"+t;\n\t\t\t\t\t\too[5] = cell.w || SSF_format(cell.z || table_fmt[14], t);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'e': continue;\n\t\t\t\t}\n\t\t\t\to.push(oo.join(\":\"));\n\t\t\t}\n\t\t}\n\t\to.push(\"sheet:c:\" + (r.e.c-r.s.c+1) + \":r:\" + (r.e.r-r.s.r+1) + \":tvf:1\");\n\t\to.push(\"valueformat:1:text-wiki\");\n\t\t//o.push(\"copiedfrom:\" + ws['!ref']); // clipboard only\n\t\treturn o.join(\"\\n\");\n\t}\n\n\tfunction sheet_to_eth(ws/*:Worksheet*//*::, opts:?any*/)/*:string*/ {\n\t\treturn [header, sep, meta, sep, sheet_to_eth_data(ws), end].join(\"\\n\");\n\t\t// return [\"version:1.5\", sheet_to_eth_data(ws)].join(\"\\n\"); // clipboard form\n\t}\n\n\treturn {\n\t\tto_workbook: eth_to_workbook,\n\t\tto_sheet: eth_to_sheet,\n\t\tfrom_sheet: sheet_to_eth\n\t};\n})();\n\nvar PRN = /*#__PURE__*/(function() {\n\tfunction set_text_arr(data/*:string*/, arr/*:AOA*/, R/*:number*/, C/*:number*/, o/*:any*/) {\n\t\tif(o.raw) arr[R][C] = data;\n\t\telse if(data === \"\"){/* empty */}\n\t\telse if(data === 'TRUE') arr[R][C] = true;\n\t\telse if(data === 'FALSE') arr[R][C] = false;\n\t\telse if(!isNaN(fuzzynum(data))) arr[R][C] = fuzzynum(data);\n\t\telse if(!isNaN(fuzzydate(data).getDate())) arr[R][C] = parseDate(data);\n\t\telse arr[R][C] = data;\n\t}\n\n\tfunction prn_to_aoa_str(f/*:string*/, opts)/*:AOA*/ {\n\t\tvar o = opts || {};\n\t\tvar arr/*:AOA*/ = ([]/*:any*/);\n\t\tif(!f || f.length === 0) return arr;\n\t\tvar lines = f.split(/[\\r\\n]/);\n\t\tvar L = lines.length - 1;\n\t\twhile(L >= 0 && lines[L].length === 0) --L;\n\t\tvar start = 10, idx = 0;\n\t\tvar R = 0;\n\t\tfor(; R <= L; ++R) {\n\t\t\tidx = lines[R].indexOf(\" \");\n\t\t\tif(idx == -1) idx = lines[R].length; else idx++;\n\t\t\tstart = Math.max(start, idx);\n\t\t}\n\t\tfor(R = 0; R <= L; ++R) {\n\t\t\tarr[R] = [];\n\t\t\t/* TODO: confirm that widths are always 10 */\n\t\t\tvar C = 0;\n\t\t\tset_text_arr(lines[R].slice(0, start).trim(), arr, R, C, o);\n\t\t\tfor(C = 1; C <= (lines[R].length - start)/10 + 1; ++C)\n\t\t\t\tset_text_arr(lines[R].slice(start+(C-1)*10,start+C*10).trim(),arr,R,C,o);\n\t\t}\n\t\tif(o.sheetRows) arr = arr.slice(0, o.sheetRows);\n\t\treturn arr;\n\t}\n\n\t// List of accepted CSV separators\n\tvar guess_seps = {\n\t\t/*::[*/0x2C/*::]*/: ',',\n\t\t/*::[*/0x09/*::]*/: \"\\t\",\n\t\t/*::[*/0x3B/*::]*/: ';',\n\t\t/*::[*/0x7C/*::]*/: '|'\n\t};\n\n\t// CSV separator weights to be used in case of equal numbers\n\tvar guess_sep_weights = {\n\t\t/*::[*/0x2C/*::]*/: 3,\n\t\t/*::[*/0x09/*::]*/: 2,\n\t\t/*::[*/0x3B/*::]*/: 1,\n\t\t/*::[*/0x7C/*::]*/: 0\n\t};\n\n\tfunction guess_sep(str) {\n\t\tvar cnt = {}, instr = false, end = 0, cc = 0;\n\t\tfor(;end < str.length;++end) {\n\t\t\tif((cc=str.charCodeAt(end)) == 0x22) instr = !instr;\n\t\t\telse if(!instr && cc in guess_seps) cnt[cc] = (cnt[cc]||0)+1;\n\t\t}\n\n\t\tcc = [];\n\t\tfor(end in cnt) if ( Object.prototype.hasOwnProperty.call(cnt, end) ) {\n\t\t\tcc.push([ cnt[end], end ]);\n\t\t}\n\n\t\tif ( !cc.length ) {\n\t\t\tcnt = guess_sep_weights;\n\t\t\tfor(end in cnt) if ( Object.prototype.hasOwnProperty.call(cnt, end) ) {\n\t\t\t\tcc.push([ cnt[end], end ]);\n\t\t\t}\n\t\t}\n\n\t\tcc.sort(function(a, b) { return a[0] - b[0] || guess_sep_weights[a[1]] - guess_sep_weights[b[1]]; });\n\n\t\treturn guess_seps[cc.pop()[1]] || 0x2C;\n\t}\n\n\tfunction dsv_to_sheet_str(str/*:string*/, opts)/*:Worksheet*/ {\n\t\tvar o = opts || {};\n\t\tvar sep = \"\";\n\t\tif(DENSE != null && o.dense == null) o.dense = DENSE;\n\t\tvar ws/*:Worksheet*/ = ({}/*:any*/);\n\t\tif(o.dense) ws[\"!data\"] = [];\n\t\tvar range/*:Range*/ = ({s: {c:0, r:0}, e: {c:0, r:0}}/*:any*/);\n\n\t\tif(str.slice(0,4) == \"sep=\") {\n\t\t\t// If the line ends in \\r\\n\n\t\t\tif(str.charCodeAt(5) == 13 && str.charCodeAt(6) == 10 ) {\n\t\t\t\tsep = str.charAt(4); str = str.slice(7);\n\t\t\t}\n\t\t\t// If line ends in \\r OR \\n\n\t\t\telse if(str.charCodeAt(5) == 13 || str.charCodeAt(5) == 10 ) {\n\t\t\t\tsep = str.charAt(4); str = str.slice(6);\n\t\t\t}\n\t\t\telse sep = guess_sep(str.slice(0,1024));\n\t\t}\n\t\telse if(o && o.FS) sep = o.FS;\n\t\telse sep = guess_sep(str.slice(0,1024));\n\t\tvar R = 0, C = 0, v = 0;\n\t\tvar start = 0, end = 0, sepcc = sep.charCodeAt(0), instr = false, cc=0, startcc=str.charCodeAt(0);\n\t\tvar _re/*:?RegExp*/ = o.dateNF != null ? dateNF_regex(o.dateNF) : null;\n\t\tfunction finish_cell() {\n\t\t\tvar s = str.slice(start, end); if(s.slice(-1) == \"\\r\") s = s.slice(0, -1);\n\t\t\tvar cell = ({}/*:any*/);\n\t\t\tif(s.charAt(0) == '\"' && s.charAt(s.length - 1) == '\"') s = s.slice(1,-1).replace(/\"\"/g,'\"');\n\t\t\tif(s.length === 0) cell.t = 'z';\n\t\t\telse if(o.raw) { cell.t = 's'; cell.v = s; }\n\t\t\telse if(s.trim().length === 0) { cell.t = 's'; cell.v = s; }\n\t\t\telse if(s.charCodeAt(0) == 0x3D) {\n\t\t\t\tif(s.charCodeAt(1) == 0x22 && s.charCodeAt(s.length - 1) == 0x22) { cell.t = 's'; cell.v = s.slice(2,-1).replace(/\"\"/g,'\"'); }\n\t\t\t\telse if(fuzzyfmla(s)) { cell.t = 'n'; cell.f = s.slice(1); }\n\t\t\t\telse { cell.t = 's'; cell.v = s; } }\n\t\t\telse if(s == \"TRUE\") { cell.t = 'b'; cell.v = true; }\n\t\t\telse if(s == \"FALSE\") { cell.t = 'b'; cell.v = false; }\n\t\t\telse if(!isNaN(v = fuzzynum(s))) { cell.t = 'n'; if(o.cellText !== false) cell.w = s; cell.v = v; }\n\t\t\telse if(!isNaN((v = fuzzydate(s)).getDate()) || _re && s.match(_re)) {\n\t\t\t\tcell.z = o.dateNF || table_fmt[14];\n\t\t\t\tvar k = 0;\n\t\t\t\tif(_re && s.match(_re)){ s=dateNF_fix(s, o.dateNF, (s.match(_re)||[])); k=1; v = parseDate(s, k); }\n\t\t\t\tif(o.cellDates) { cell.t = 'd'; cell.v = v; }\n\t\t\t\telse { cell.t = 'n'; cell.v = datenum(v); }\n\t\t\t\tif(o.cellText !== false) cell.w = SSF_format(cell.z, cell.v instanceof Date ? datenum(cell.v):cell.v);\n\t\t\t\tif(!o.cellNF) delete cell.z;\n\t\t\t} else {\n\t\t\t\tcell.t = 's';\n\t\t\t\tcell.v = s;\n\t\t\t}\n\t\t\tif(cell.t == 'z'){}\n\t\t\telse if(o.dense) { if(!ws[\"!data\"][R]) ws[\"!data\"][R] = []; ws[\"!data\"][R][C] = cell; }\n\t\t\telse ws[encode_cell({c:C,r:R})] = cell;\n\t\t\tstart = end+1; startcc = str.charCodeAt(start);\n\t\t\tif(range.e.c < C) range.e.c = C;\n\t\t\tif(range.e.r < R) range.e.r = R;\n\t\t\tif(cc == sepcc) ++C; else { C = 0; ++R; if(o.sheetRows && o.sheetRows <= R) return true; }\n\t\t}\n\t\touter: for(;end < str.length;++end) switch((cc=str.charCodeAt(end))) {\n\t\t\tcase 0x22: if(startcc === 0x22) instr = !instr; break;\n\t\t\tcase 0x0d:\n\t\t\t\tif(instr) break;\n\t\t\t\tif(str.charCodeAt(end+1) == 0x0a) ++end;\n\t\t\t\t/* falls through */\n\t\t\tcase sepcc: case 0x0a: if(!instr && finish_cell()) break outer; break;\n\t\t\tdefault: break;\n\t\t}\n\t\tif(end - start > 0) finish_cell();\n\n\t\tws['!ref'] = encode_range(range);\n\t\treturn ws;\n\t}\n\n\tfunction prn_to_sheet_str(str/*:string*/, opts)/*:Worksheet*/ {\n\t\tif(!(opts && opts.PRN)) return dsv_to_sheet_str(str, opts);\n\t\tif(opts.FS) return dsv_to_sheet_str(str, opts);\n\t\tif(str.slice(0,4) == \"sep=\") return dsv_to_sheet_str(str, opts);\n\t\tif(str.indexOf(\"\\t\") >= 0 || str.indexOf(\",\") >= 0 || str.indexOf(\";\") >= 0) return dsv_to_sheet_str(str, opts);\n\t\treturn aoa_to_sheet(prn_to_aoa_str(str, opts), opts);\n\t}\n\n\tfunction prn_to_sheet(d/*:RawData*/, opts)/*:Worksheet*/ {\n\t\tvar str = \"\", bytes = opts.type == 'string' ? [0,0,0,0] : firstbyte(d, opts);\n\t\tswitch(opts.type) {\n\t\t\tcase 'base64': str = Base64_decode(d); break;\n\t\t\tcase 'binary': str = d; break;\n\t\t\tcase 'buffer':\n\t\t\t\tif(opts.codepage == 65001) str = d.toString('utf8'); // TODO: test if buf\n\t\t\t\telse if(opts.codepage && typeof $cptable !== 'undefined') str = $cptable.utils.decode(opts.codepage, d);\n\t\t\t\telse str = has_buf && Buffer.isBuffer(d) ? d.toString('binary') : a2s(d);\n\t\t\t\tbreak;\n\t\t\tcase 'array': str = cc2str(d); break;\n\t\t\tcase 'string': str = d; break;\n\t\t\tdefault: throw new Error(\"Unrecognized type \" + opts.type);\n\t\t}\n\t\tif(bytes[0] == 0xEF && bytes[1] == 0xBB && bytes[2] == 0xBF) str = utf8read(str.slice(3));\n\t\telse if(opts.type != 'string' && opts.type != 'buffer' && opts.codepage == 65001) str = utf8read(str);\n\t\telse if((opts.type == 'binary') && typeof $cptable !== 'undefined' && opts.codepage) str = $cptable.utils.decode(opts.codepage, $cptable.utils.encode(28591,str));\n\t\tif(str.slice(0,19) == \"socialcalc:version:\") return ETH.to_sheet(opts.type == 'string' ? str : utf8read(str), opts);\n\t\treturn prn_to_sheet_str(str, opts);\n\t}\n\n\tfunction prn_to_workbook(d/*:RawData*/, opts)/*:Workbook*/ { return sheet_to_workbook(prn_to_sheet(d, opts), opts); }\n\n\tfunction sheet_to_prn(ws/*:Worksheet*//*::, opts:?any*/)/*:string*/ {\n\t\tvar o/*:Array*/ = [];\n\t\tvar r = safe_decode_range(ws['!ref']), cell/*:Cell*/;\n\t\tvar dense = ws[\"!data\"] != null;\n\t\tfor(var R = r.s.r; R <= r.e.r; ++R) {\n\t\t\tvar oo/*:Array*/ = [];\n\t\t\tfor(var C = r.s.c; C <= r.e.c; ++C) {\n\t\t\t\tvar coord = encode_cell({r:R,c:C});\n\t\t\t\tcell = dense ? (ws[\"!data\"][R]||[])[C] : ws[coord];\n\t\t\t\tif(!cell || cell.v == null) { oo.push(\" \"); continue; }\n\t\t\t\tvar w = (cell.w || (format_cell(cell), cell.w) || \"\").slice(0,10);\n\t\t\t\twhile(w.length < 10) w += \" \";\n\t\t\t\too.push(w + (C === 0 ? \" \" : \"\"));\n\t\t\t}\n\t\t\to.push(oo.join(\"\"));\n\t\t}\n\t\treturn o.join(\"\\n\");\n\t}\n\n\treturn {\n\t\tto_workbook: prn_to_workbook,\n\t\tto_sheet: prn_to_sheet,\n\t\tfrom_sheet: sheet_to_prn\n\t};\n})();\n\n/* Excel defaults to SYLK but warns if data is not valid */\nfunction read_wb_ID(d, opts) {\n\tvar o = opts || {}, OLD_WTF = !!o.WTF; o.WTF = true;\n\ttry {\n\t\tvar out = SYLK.to_workbook(d, o);\n\t\to.WTF = OLD_WTF;\n\t\treturn out;\n\t} catch(e) {\n\t\to.WTF = OLD_WTF;\n\t\tif(!e.message.match(/SYLK bad record ID/) && OLD_WTF) throw e;\n\t\treturn PRN.to_workbook(d, opts);\n\t}\n}\n\nvar WK_ = /*#__PURE__*/(function() {\n\tfunction lotushopper(data, cb/*:RecordHopperCB*/, opts/*:any*/) {\n\t\tif(!data) return;\n\t\tprep_blob(data, data.l || 0);\n\t\tvar Enum = opts.Enum || WK1Enum;\n\t\twhile(data.l < data.length) {\n\t\t\tvar RT = data.read_shift(2);\n\t\t\tvar R = Enum[RT] || Enum[0xFFFF];\n\t\t\tvar length = data.read_shift(2);\n\t\t\tvar tgt = data.l + length;\n\t\t\tvar d = R.f && R.f(data, length, opts);\n\t\t\tdata.l = tgt;\n\t\t\tif(cb(d, R, RT)) return;\n\t\t}\n\t}\n\n\tfunction lotus_to_workbook(d/*:RawData*/, opts) {\n\t\tswitch(opts.type) {\n\t\t\tcase 'base64': return lotus_to_workbook_buf(s2a(Base64_decode(d)), opts);\n\t\t\tcase 'binary': return lotus_to_workbook_buf(s2a(d), opts);\n\t\t\tcase 'buffer':\n\t\t\tcase 'array': return lotus_to_workbook_buf(d, opts);\n\t\t}\n\t\tthrow \"Unsupported type \" + opts.type;\n\t}\n\n\tfunction lotus_to_workbook_buf(d, opts)/*:Workbook*/ {\n\t\tif(!d) return d;\n\t\tvar o = opts || {};\n\t\tif(DENSE != null && o.dense == null) o.dense = DENSE;\n\t\tvar s/*:Worksheet*/ = ({}/*:any*/), n = \"Sheet1\", next_n = \"\", sidx = 0;\n\t\tvar sheets = {}, snames = [], realnames = [], sdata = [];\n\t\tif(o.dense) sdata = s[\"!data\"] = [];\n\n\t\tvar refguess = {s: {r:0, c:0}, e: {r:0, c:0} };\n\t\tvar sheetRows = o.sheetRows || 0;\n\n\t\tif(d[4] == 0x51 && d[5] == 0x50 && d[6] == 0x57) return qpw_to_workbook_buf(d, opts);\n\t\tif(d[2] == 0x00) {\n\t\t\tif(d[3] == 0x08 || d[3] == 0x09) {\n\t\t\t\tif(d.length >= 16 && d[14] == 0x05 && d[15] === 0x6c) throw new Error(\"Unsupported Works 3 for Mac file\");\n\t\t\t}\n\t\t}\n\n\t\tif(d[2] == 0x02) {\n\t\t\to.Enum = WK1Enum;\n\t\t\tlotushopper(d, function(val, R, RT) { switch(RT) {\n\t\t\t\tcase 0x00: /* BOF */\n\t\t\t\t\to.vers = val;\n\t\t\t\t\tif(val >= 0x1000) o.qpro = true;\n\t\t\t\t\tbreak;\n\t\t\t\tcase 0xFF: /* BOF (works 3+) */\n\t\t\t\t\to.vers = val;\n\t\t\t\t\to.works = true;\n\t\t\t\t\tbreak;\n\t\t\t\tcase 0x06: refguess = val; break; /* RANGE */\n\t\t\t\tcase 0xCC: if(val) next_n = val; break; /* SHEETNAMECS */\n\t\t\t\tcase 0xDE: next_n = val; break; /* SHEETNAMELP */\n\t\t\t\tcase 0x0F: /* LABEL */\n\t\t\t\tcase 0x33: /* STRING */\n\t\t\t\t\tif((!o.qpro && !o.works || RT == 0x33) && val[1].v.charCodeAt(0) < 0x30) val[1].v = val[1].v.slice(1);\n\t\t\t\t\tif(o.works || o.works2) val[1].v = val[1].v.replace(/\\r\\n/g, \"\\n\");\n\t\t\t\t\t/* falls through */\n\t\t\t\tcase 0x0D: /* INTEGER */\n\t\t\t\tcase 0x0E: /* NUMBER */\n\t\t\t\tcase 0x10: /* FORMULA */\n\t\t\t\t\t/* TODO: actual translation of the format code */\n\t\t\t\t\tif(RT == 0x0E && (val[2] & 0x70) == 0x70 && (val[2] & 0x0F) > 1 && (val[2] & 0x0F) < 15) {\n\t\t\t\t\t\tval[1].z = o.dateNF || table_fmt[14];\n\t\t\t\t\t\tif(o.cellDates) { val[1].t = 'd'; val[1].v = numdate(val[1].v); }\n\t\t\t\t\t}\n\n\t\t\t\t\tif(o.qpro) {\n\t\t\t\t\t\tif(val[3] > sidx) {\n\t\t\t\t\t\t\ts[\"!ref\"] = encode_range(refguess);\n\t\t\t\t\t\t\tsheets[n] = s;\n\t\t\t\t\t\t\tsnames.push(n);\n\t\t\t\t\t\t\ts = ({}/*:any*/); if(o.dense) sdata = s[\"!data\"] = [];\n\t\t\t\t\t\t\trefguess = {s: {r:0, c:0}, e: {r:0, c:0} };\n\t\t\t\t\t\t\tsidx = val[3]; n = next_n || \"Sheet\" + (sidx + 1); next_n = \"\";\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tvar tmpcell = o.dense ? (sdata[val[0].r]||[])[val[0].c] : s[encode_cell(val[0])];\n\t\t\t\t\tif(tmpcell) {\n\t\t\t\t\t\ttmpcell.t = val[1].t; tmpcell.v = val[1].v;\n\t\t\t\t\t\tif(val[1].z != null) tmpcell.z = val[1].z;\n\t\t\t\t\t\tif(val[1].f != null) tmpcell.f = val[1].f;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t\tif(o.dense) {\n\t\t\t\t\t\tif(!sdata[val[0].r]) sdata[val[0].r] = [];\n\t\t\t\t\t\tsdata[val[0].r][val[0].c] = val[1];\n\t\t\t\t\t} else s[encode_cell(val[0])] = val[1];\n\t\t\t\t\tbreak;\n\t\t\t\tcase 0x5405: o.works2 = true; break;\n\t\t\t\tdefault:\n\t\t\t}}, o);\n\t\t} else if(d[2] == 0x1A || d[2] == 0x0E) {\n\t\t\to.Enum = WK3Enum;\n\t\t\tif(d[2] == 0x0E) { o.qpro = true; d.l = 0; }\n\t\t\tlotushopper(d, function(val, R, RT) { switch(RT) {\n\t\t\t\tcase 0xCC: n = val; break; /* SHEETNAMECS */\n\t\t\t\tcase 0x16: /* LABEL16 */\n\t\t\t\t\tif(val[1].v.charCodeAt(0) < 0x30) val[1].v = val[1].v.slice(1);\n\t\t\t\t\t// TODO: R9 appears to encode control codes this way -- verify against other versions\n\t\t\t\t\tval[1].v = val[1].v.replace(/\\x0F./g, function($$) { return String.fromCharCode($$.charCodeAt(1) - 0x20); }).replace(/\\r\\n/g, \"\\n\");\n\t\t\t\t\t/* falls through */\n\t\t\t\tcase 0x17: /* NUMBER17 */\n\t\t\t\tcase 0x18: /* NUMBER18 */\n\t\t\t\tcase 0x19: /* FORMULA19 */\n\t\t\t\tcase 0x25: /* NUMBER25 */\n\t\t\t\tcase 0x27: /* NUMBER27 */\n\t\t\t\tcase 0x28: /* FORMULA28 */\n\t\t\t\t\tif(val[3] > sidx) {\n\t\t\t\t\t\ts[\"!ref\"] = encode_range(refguess);\n\t\t\t\t\t\tsheets[n] = s;\n\t\t\t\t\t\tsnames.push(n);\n\t\t\t\t\t\ts = ({}/*:any*/); if(o.dense) sdata = s[\"!data\"] = [];\n\t\t\t\t\t\trefguess = {s: {r:0, c:0}, e: {r:0, c:0} };\n\t\t\t\t\t\tsidx = val[3]; n = \"Sheet\" + (sidx + 1);\n\t\t\t\t\t}\n\t\t\t\t\tif(sheetRows > 0 && val[0].r >= sheetRows) break;\n\t\t\t\t\tif(o.dense) {\n\t\t\t\t\t\tif(!sdata[val[0].r]) sdata[val[0].r] = [];\n\t\t\t\t\t\tsdata[val[0].r][val[0].c] = val[1];\n\t\t\t\t\t} else s[encode_cell(val[0])] = val[1];\n\t\t\t\t\tif(refguess.e.c < val[0].c) refguess.e.c = val[0].c;\n\t\t\t\t\tif(refguess.e.r < val[0].r) refguess.e.r = val[0].r;\n\t\t\t\t\tbreak;\n\t\t\t\tcase 0x1B: /* XFORMAT */\n\t\t\t\t\tif(val[0x36b0]) realnames[val[0x36b0][0]] = val[0x36b0][1];\n\t\t\t\t\tbreak;\n\t\t\t\tcase 0x0601: /* SHEETINFOQP */\n\t\t\t\t\trealnames[val[0]] = val[1]; if(val[0] == sidx) n = val[1]; break;\n\t\t\t\tdefault: break;\n\t\t\t}}, o);\n\t\t} else throw new Error(\"Unrecognized LOTUS BOF \" + d[2]);\n\t\ts[\"!ref\"] = encode_range(refguess);\n\t\tsheets[next_n || n] = s;\n\t\tsnames.push(next_n || n);\n\t\tif(!realnames.length) return { SheetNames: snames, Sheets: sheets };\n\t\tvar osheets = {}, rnames = [];\n\t\t/* TODO: verify no collisions */\n\t\tfor(var i = 0; i < realnames.length; ++i) if(sheets[snames[i]]) {\n\t\t\trnames.push(realnames[i] || snames[i]);\n\t\t\tosheets[realnames[i]] = sheets[realnames[i]] || sheets[snames[i]];\n\t\t} else {\n\t\t\trnames.push(realnames[i]);\n\t\t\tosheets[realnames[i]] = ({ \"!ref\": \"A1\" });\n\t\t}\n\t\treturn { SheetNames: rnames, Sheets: osheets };\n\t}\n\n\tfunction sheet_to_wk1(ws/*:Worksheet*/, opts/*:WriteOpts*/) {\n\t\tvar o = opts || {};\n\t\tif(+o.codepage >= 0) set_cp(+o.codepage);\n\t\tif(o.type == \"string\") throw new Error(\"Cannot write WK1 to JS string\");\n\t\tvar ba = buf_array();\n\t\tvar range = safe_decode_range(ws[\"!ref\"]);\n\t\tvar dense = ws[\"!data\"] != null;\n\t\tvar cols = [];\n\n\t\twrite_biff_rec(ba, 0x00, write_BOF_WK1(0x0406));\n\t\twrite_biff_rec(ba, 0x06, write_RANGE(range));\n\t\tvar max_R = Math.min(range.e.r, 8191);\n\t\tfor(var C = range.s.c; C <= range.e.c; ++C) cols[C] = encode_col(C);\n\t\tfor(var R = range.s.r; R <= max_R; ++R) {\n\t\t\tvar rr = encode_row(R);\n\t\t\tfor(C = range.s.c; C <= range.e.c; ++C) {\n\t\t\t\tvar cell = dense ? (ws[\"!data\"][R]||[])[C] : ws[cols[C] + rr];\n\t\t\t\tif(!cell || cell.t == \"z\") continue;\n\t\t\t\t/* TODO: formula records */\n\t\t\t\tif(cell.t == \"n\") {\n\t\t\t\t\tif((cell.v|0)==cell.v && cell.v >= -32768 && cell.v <= 32767) write_biff_rec(ba, 0x0d, write_INTEGER(R, C, cell.v));\n\t\t\t\t\telse write_biff_rec(ba, 0x0e, write_NUMBER(R, C, cell.v));\n\t\t\t\t} else {\n\t\t\t\t\tvar str = format_cell(cell);\n\t\t\t\t\twrite_biff_rec(ba, 0x0F, write_LABEL(R, C, str.slice(0, 239)));\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\twrite_biff_rec(ba, 0x01);\n\t\treturn ba.end();\n\t}\n\n\tfunction book_to_wk3(wb/*:Workbook*/, opts/*:WriteOpts*/) {\n\t\tvar o = opts || {};\n\t\tif(+o.codepage >= 0) set_cp(+o.codepage);\n\t\tif(o.type == \"string\") throw new Error(\"Cannot write WK3 to JS string\");\n\t\tvar ba = buf_array();\n\n\t\twrite_biff_rec(ba, 0x00, write_BOF_WK3(wb));\n\n\t\tfor(var i = 0, cnt = 0; i < wb.SheetNames.length; ++i) if((wb.Sheets[wb.SheetNames[i]] || {})[\"!ref\"]) write_biff_rec(ba, 0x1b, write_XFORMAT_SHEETNAME(wb.SheetNames[i], cnt++));\n\n\t\tvar wsidx = 0;\n\t\tfor(i = 0; i < wb.SheetNames.length; ++i) {\n\t\t\tvar ws = wb.Sheets[wb.SheetNames[i]];\n\t\t\tif(!ws || !ws[\"!ref\"]) continue;\n\t\t\tvar range = safe_decode_range(ws[\"!ref\"]);\n\t\t\tvar dense = ws[\"!data\"] != null;\n\t\t\tvar cols = [];\n\t\t\tvar max_R = Math.min(range.e.r, 8191);\n\t\t\tfor(var R = range.s.r; R <= max_R; ++R) {\n\t\t\t\tvar rr = encode_row(R);\n\t\t\t\tfor(var C = range.s.c; C <= range.e.c; ++C) {\n\t\t\t\t\tif(R === range.s.r) cols[C] = encode_col(C);\n\t\t\t\t\tvar ref = cols[C] + rr;\n\t\t\t\t\tvar cell = dense ? (ws[\"!data\"][R]||[])[C] : ws[ref];\n\t\t\t\t\tif(!cell || cell.t == \"z\") continue;\n\t\t\t\t\t/* TODO: FORMULA19 NUMBER18 records */\n\t\t\t\t\tif(cell.t == \"n\") {\n\t\t\t\t\t\twrite_biff_rec(ba, 0x17, write_NUMBER_17(R, C, wsidx, cell.v));\n\t\t\t\t\t} else {\n\t\t\t\t\t\tvar str = format_cell(cell);\n\t\t\t\t\t\t/* TODO: max len? */\n\t\t\t\t\t\twrite_biff_rec(ba, 0x16, write_LABEL_16(R, C, wsidx, str.slice(0, 239)));\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\t++wsidx;\n\t\t}\n\n\t\twrite_biff_rec(ba, 0x01);\n\t\treturn ba.end();\n\t}\n\n\n\tfunction write_BOF_WK1(v/*:number*/) {\n\t\tvar out = new_buf(2);\n\t\tout.write_shift(2, v);\n\t\treturn out;\n\t}\n\n\tfunction write_BOF_WK3(wb/*:Workbook*/) {\n\t\tvar out = new_buf(26);\n\t\tout.write_shift(2, 0x1000);\n\t\tout.write_shift(2, 0x0004);\n\t\tout.write_shift(4, 0x0000);\n\t\tvar rows = 0, cols = 0, wscnt = 0;\n\t\tfor(var i = 0; i < wb.SheetNames.length; ++i) {\n\t\t\tvar name = wb.SheetNames[i];\n\t\t\tvar ws = wb.Sheets[name];\n\t\t\tif(!ws || !ws[\"!ref\"]) continue;\n\t\t\t++wscnt;\n\t\t\tvar range = decode_range(ws[\"!ref\"]);\n\t\t\tif(rows < range.e.r) rows = range.e.r;\n\t\t\tif(cols < range.e.c) cols = range.e.c;\n\t\t}\n\t\tif(rows > 8191) rows = 8191;\n\t\tout.write_shift(2, rows);\n\t\tout.write_shift(1, wscnt);\n\t\tout.write_shift(1, cols);\n\t\tout.write_shift(2, 0x00);\n\t\tout.write_shift(2, 0x00);\n\t\tout.write_shift(1, 0x01);\n\t\tout.write_shift(1, 0x02);\n\t\tout.write_shift(4, 0);\n\t\tout.write_shift(4, 0);\n\t\treturn out;\n\t}\n\n\tfunction parse_RANGE(blob, length, opts) {\n\t\tvar o = {s:{c:0,r:0},e:{c:0,r:0}};\n\t\tif(length == 8 && opts.qpro) {\n\t\t\to.s.c = blob.read_shift(1);\n\t\t\tblob.l++;\n\t\t\to.s.r = blob.read_shift(2);\n\t\t\to.e.c = blob.read_shift(1);\n\t\t\tblob.l++;\n\t\t\to.e.r = blob.read_shift(2);\n\t\t\treturn o;\n\t\t}\n\t\to.s.c = blob.read_shift(2);\n\t\to.s.r = blob.read_shift(2);\n\t\tif(length == 12 && opts.qpro) blob.l += 2;\n\t\to.e.c = blob.read_shift(2);\n\t\to.e.r = blob.read_shift(2);\n\t\tif(length == 12 && opts.qpro) blob.l += 2;\n\t\tif(o.s.c == 0xFFFF) o.s.c = o.e.c = o.s.r = o.e.r = 0;\n\t\treturn o;\n\t}\n\tfunction write_RANGE(range) {\n\t\tvar out = new_buf(8);\n\t\tout.write_shift(2, range.s.c);\n\t\tout.write_shift(2, range.s.r);\n\t\tout.write_shift(2, range.e.c);\n\t\tout.write_shift(2, range.e.r);\n\t\treturn out;\n\t}\n\n\tfunction parse_cell(blob, length, opts) {\n\t\tvar o = [{c:0,r:0}, {t:'n',v:0}, 0, 0];\n\t\tif(opts.qpro && opts.vers != 0x5120) {\n\t\t\to[0].c = blob.read_shift(1);\n\t\t\to[3] = blob.read_shift(1);\n\t\t\to[0].r = blob.read_shift(2);\n\t\t\tblob.l+=2;\n\t\t} else if(opts.works) { // TODO: verify with more complex works3-4 examples\n\t\t\to[0].c = blob.read_shift(2); o[0].r = blob.read_shift(2);\n\t\t\to[2] = blob.read_shift(2);\n\t\t} else {\n\t\t\to[2] = blob.read_shift(1);\n\t\t\to[0].c = blob.read_shift(2); o[0].r = blob.read_shift(2);\n\t\t}\n\t\treturn o;\n\t}\n\n\tfunction parse_LABEL(blob, length, opts) {\n\t\tvar tgt = blob.l + length;\n\t\tvar o = parse_cell(blob, length, opts);\n\t\to[1].t = 's';\n\t\tif(opts.vers == 0x5120) {\n\t\t\tblob.l++;\n\t\t\tvar len = blob.read_shift(1);\n\t\t\to[1].v = blob.read_shift(len, 'utf8');\n\t\t\treturn o;\n\t\t}\n\t\tif(opts.qpro) blob.l++;\n\t\to[1].v = blob.read_shift(tgt - blob.l, 'cstr');\n\t\treturn o;\n\t}\n\tfunction write_LABEL(R, C, s) {\n\t\t/* TODO: encoding */\n\t\tvar o = new_buf(7 + s.length);\n\t\to.write_shift(1, 0xFF);\n\t\to.write_shift(2, C);\n\t\to.write_shift(2, R);\n\t\to.write_shift(1, 0x27); // ??\n\t\tfor(var i = 0; i < o.length; ++i) {\n\t\t\tvar cc = s.charCodeAt(i);\n\t\t\to.write_shift(1, cc >= 0x80 ? 0x5F : cc);\n\t\t}\n\t\to.write_shift(1, 0);\n\t\treturn o;\n\t}\n\tfunction parse_STRING(blob, length, opts) {\n\t\tvar tgt = blob.l + length;\n\t\tvar o = parse_cell(blob, length, opts);\n\t\to[1].t = 's';\n\t\tif(opts.vers == 0x5120) {\n\t\t\tvar len = blob.read_shift(1);\n\t\t\to[1].v = blob.read_shift(len, 'utf8');\n\t\t\treturn o;\n\t\t}\n\t\to[1].v = blob.read_shift(tgt - blob.l, 'cstr');\n\t\treturn o;\n\t}\n\n\tfunction parse_INTEGER(blob, length, opts) {\n\t\tvar o = parse_cell(blob, length, opts);\n\t\to[1].v = blob.read_shift(2, 'i');\n\t\treturn o;\n\t}\n\tfunction write_INTEGER(R, C, v) {\n\t\tvar o = new_buf(7);\n\t\to.write_shift(1, 0xFF);\n\t\to.write_shift(2, C);\n\t\to.write_shift(2, R);\n\t\to.write_shift(2, v, 'i');\n\t\treturn o;\n\t}\n\n\tfunction parse_NUMBER(blob, length, opts) {\n\t\tvar o = parse_cell(blob, length, opts);\n\t\to[1].v = blob.read_shift(8, 'f');\n\t\treturn o;\n\t}\n\tfunction write_NUMBER(R, C, v) {\n\t\tvar o = new_buf(13);\n\t\to.write_shift(1, 0xFF);\n\t\to.write_shift(2, C);\n\t\to.write_shift(2, R);\n\t\to.write_shift(8, v, 'f');\n\t\treturn o;\n\t}\n\n\tfunction parse_FORMULA(blob, length, opts) {\n\t\tvar tgt = blob.l + length;\n\t\tvar o = parse_cell(blob, length, opts);\n\t\t/* TODO: formula */\n\t\to[1].v = blob.read_shift(8, 'f');\n\t\tif(opts.qpro) blob.l = tgt;\n\t\telse {\n\t\t\tvar flen = blob.read_shift(2);\n\t\t\twk1_fmla_to_csf(blob.slice(blob.l, blob.l + flen), o);\n\t\t\tblob.l += flen;\n\t\t}\n\t\treturn o;\n\t}\n\n\tfunction wk1_parse_rc(B, V, col) {\n\t\tvar rel = V & 0x8000;\n\t\tV &= ~0x8000;\n\t\tV = (rel ? B : 0) + ((V >= 0x2000) ? V - 0x4000 : V);\n\t\treturn (rel ? \"\" : \"$\") + (col ? encode_col(V) : encode_row(V));\n\t}\n\t/* var oprec = [\n\t\t8, 8, 8, 8, 8, 8, 8, 8, 6, 4, 4, 5, 5, 7, 3, 3,\n\t\t3, 3, 3, 3, 1, 1, 2, 6, 8, 8, 8, 8, 8, 8, 8, 8\n\t]; */\n\t/* TODO: flesh out */\n\tvar FuncTab = {\n\t\t0x1F: [\"NA\", 0],\n\t\t// 0x20: [\"ERR\", 0],\n\t\t0x21: [\"ABS\", 1],\n\t\t0x22: [\"TRUNC\", 1],\n\t\t0x23: [\"SQRT\", 1],\n\t\t0x24: [\"LOG\", 1],\n\t\t0x25: [\"LN\", 1],\n\t\t0x26: [\"PI\", 0],\n\t\t0x27: [\"SIN\", 1],\n\t\t0x28: [\"COS\", 1],\n\t\t0x29: [\"TAN\", 1],\n\t\t0x2A: [\"ATAN2\", 2],\n\t\t0x2B: [\"ATAN\", 1],\n\t\t0x2C: [\"ASIN\", 1],\n\t\t0x2D: [\"ACOS\", 1],\n\t\t0x2E: [\"EXP\", 1],\n\t\t0x2F: [\"MOD\", 2],\n\t\t// 0x30\n\t\t0x31: [\"ISNA\", 1],\n\t\t0x32: [\"ISERR\", 1],\n\t\t0x33: [\"FALSE\", 0],\n\t\t0x34: [\"TRUE\", 0],\n\t\t0x35: [\"RAND\", 0],\n\t\t// 0x36 DATE\n\t\t// 0x37 NOW\n\t\t// 0x38 PMT\n\t\t// 0x39 PV\n\t\t// 0x3A FV\n\t\t// 0x3B IF\n\t\t// 0x3C DAY\n\t\t// 0x3D MONTH\n\t\t// 0x3E YEAR\n\t\t0x3F: [\"ROUND\", 2],\n\t\t// 0x40 TIME\n\t\t// 0x41 HOUR\n\t\t// 0x42 MINUTE\n\t\t// 0x43 SECOND\n\t\t0x44: [\"ISNUMBER\", 1],\n\t\t0x45: [\"ISTEXT\", 1],\n\t\t0x46: [\"LEN\", 1],\n\t\t0x47: [\"VALUE\", 1],\n\t\t// 0x48: [\"FIXED\", ?? 1],\n\t\t0x49: [\"MID\", 3],\n\t\t0x4A: [\"CHAR\", 1],\n\t\t// 0x4B\n\t\t// 0x4C FIND\n\t\t// 0x4D DATEVALUE\n\t\t// 0x4E TIMEVALUE\n\t\t// 0x4F CELL\n\t\t0x50: [\"SUM\", 69],\n\t\t0x51: [\"AVERAGEA\", 69],\n\t\t0x52: [\"COUNTA\", 69],\n\t\t0x53: [\"MINA\", 69],\n\t\t0x54: [\"MAXA\", 69],\n\t\t// 0x55 VLOOKUP\n\t\t// 0x56 NPV\n\t\t// 0x57 VAR\n\t\t// 0x58 STD\n\t\t// 0x59 IRR\n\t\t// 0x5A HLOOKUP\n\t\t// 0x5B DSUM\n\t\t// 0x5C DAVERAGE\n\t\t// 0x5D DCOUNTA\n\t\t// 0x5E DMIN\n\t\t// 0x5F DMAX\n\t\t// 0x60 DVARP\n\t\t// 0x61 DSTDEVP\n\t\t// 0x62 INDEX\n\t\t// 0x63 COLS\n\t\t// 0x64 ROWS\n\t\t// 0x65 REPEAT\n\t\t0x66: [\"UPPER\", 1],\n\t\t0x67: [\"LOWER\", 1],\n\t\t// 0x68 LEFT\n\t\t// 0x69 RIGHT\n\t\t// 0x6A REPLACE\n\t\t0x6B: [\"PROPER\", 1],\n\t\t// 0x6C CELL\n\t\t0x6D: [\"TRIM\", 1],\n\t\t// 0x6E CLEAN\n\t\t0x6F: [\"T\", 1]\n\t\t// 0x70 V\n\t};\n\tvar BinOpTab = [\n\t\t \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", // eslint-disable-line no-mixed-spaces-and-tabs\n\t\t \"\", \"+\", \"-\", \"*\", \"/\", \"^\", \"=\", \"<>\", // eslint-disable-line no-mixed-spaces-and-tabs\n\t\t\"<=\", \">=\", \"<\", \">\", \"\", \"\", \"\", \"\", // eslint-disable-line no-mixed-spaces-and-tabs\n\t\t \"&\", \"\", \"\", \"\", \"\", \"\", \"\", \"\" // eslint-disable-line no-mixed-spaces-and-tabs\n\t];\n\n\tfunction wk1_fmla_to_csf(blob, o) {\n\t\tprep_blob(blob, 0);\n\t\tvar out = [], argc = 0, R = \"\", C = \"\", argL = \"\", argR = \"\";\n\t\twhile(blob.l < blob.length) {\n\t\t\tvar cc = blob[blob.l++];\n\t\t\tswitch(cc) {\n\t\t\t\tcase 0x00: out.push(blob.read_shift(8, 'f')); break;\n\t\t\t\tcase 0x01: {\n\t\t\t\t\tC = wk1_parse_rc(o[0].c, blob.read_shift(2), true);\n\t\t\t\t\tR = wk1_parse_rc(o[0].r, blob.read_shift(2), false);\n\t\t\t\t\tout.push(C + R);\n\t\t\t\t} break;\n\t\t\t\tcase 0x02: {\n\t\t\t\t\tvar c = wk1_parse_rc(o[0].c, blob.read_shift(2), true);\n\t\t\t\t\tvar r = wk1_parse_rc(o[0].r, blob.read_shift(2), false);\n\t\t\t\t\tC = wk1_parse_rc(o[0].c, blob.read_shift(2), true);\n\t\t\t\t\tR = wk1_parse_rc(o[0].r, blob.read_shift(2), false);\n\t\t\t\t\tout.push(c + r + \":\" + C + R);\n\t\t\t\t} break;\n\t\t\t\tcase 0x03:\n\t\t\t\t\tif(blob.l < blob.length) { console.error(\"WK1 premature formula end\"); return; }\n\t\t\t\t\tbreak;\n\t\t\t\tcase 0x04: out.push(\"(\" + out.pop() + \")\"); break;\n\t\t\t\tcase 0x05: out.push(blob.read_shift(2)); break;\n\t\t\t\tcase 0x06: {\n\t\t\t\t\t/* TODO: text encoding */\n\t\t\t\t\tvar Z = \"\"; while((cc = blob[blob.l++])) Z += String.fromCharCode(cc);\n\t\t\t\t\tout.push('\"' + Z.replace(/\"/g, '\"\"') + '\"');\n\t\t\t\t} break;\n\n\t\t\t\tcase 0x08: out.push(\"-\" + out.pop()); break;\n\t\t\t\tcase 0x17: out.push(\"+\" + out.pop()); break;\n\t\t\t\tcase 0x16: out.push(\"NOT(\" + out.pop() + \")\"); break;\n\n\t\t\t\tcase 0x14: case 0x15: {\n\t\t\t\t\targR = out.pop(); argL = out.pop();\n\t\t\t\t\tout.push([\"AND\", \"OR\"][cc - 0x14] + \"(\" + argL + \",\" + argR + \")\");\n\t\t\t\t} break;\n\n\t\t\t\tdefault:\n\t\t\t\t\tif(cc < 0x20 && BinOpTab[cc]) {\n\t\t\t\t\t\targR = out.pop(); argL = out.pop();\n\t\t\t\t\t\tout.push(argL + BinOpTab[cc] + argR);\n\t\t\t\t\t} else if(FuncTab[cc]) {\n\t\t\t\t\t\targc = FuncTab[cc][1];\n\t\t\t\t\t\tif(argc == 69) argc = blob[blob.l++];\n\t\t\t\t\t\tif(argc > out.length) { console.error(\"WK1 bad formula parse 0x\" + cc.toString(16) + \":|\" + out.join(\"|\") + \"|\"); return; }\n\t\t\t\t\t\tvar args = out.slice(-argc);\n\t\t\t\t\t\tout.length -= argc;\n\t\t\t\t\t\tout.push(FuncTab[cc][0] + \"(\" + args.join(\",\") + \")\");\n\t\t\t\t\t}\n\t\t\t\t\telse if(cc <= 0x07) return console.error(\"WK1 invalid opcode \" + cc.toString(16));\n\t\t\t\t\telse if(cc <= 0x18) return console.error(\"WK1 unsupported op \" + cc.toString(16));\n\t\t\t\t\telse if(cc <= 0x1E) return console.error(\"WK1 invalid opcode \" + cc.toString(16));\n\t\t\t\t\telse if(cc <= 0x73) return console.error(\"WK1 unsupported function opcode \" + cc.toString(16));\n\t\t\t\t\t// possible future functions ??\n\t\t\t\t\telse return console.error(\"WK1 unrecognized opcode \" + cc.toString(16));\n\t\t\t}\n\t\t}\n\t\tif(out.length == 1) o[1].f = \"\" + out[0];\n\t\telse console.error(\"WK1 bad formula parse |\" + out.join(\"|\") + \"|\");\n\t}\n\n\n\tfunction parse_cell_3(blob/*::, length*/) {\n\t\tvar o = [{c:0,r:0}, {t:'n',v:0}, 0];\n\t\to[0].r = blob.read_shift(2); o[3] = blob[blob.l++]; o[0].c = blob[blob.l++];\n\t\treturn o;\n\t}\n\n\tfunction parse_LABEL_16(blob, length) {\n\t\tvar o = parse_cell_3(blob, length);\n\t\to[1].t = 's';\n\t\to[1].v = blob.read_shift(length - 4, 'cstr');\n\t\treturn o;\n\t}\n\tfunction write_LABEL_16(R, C, wsidx, s) {\n\t\t/* TODO: encoding */\n\t\tvar o = new_buf(6 + s.length);\n\t\to.write_shift(2, R);\n\t\to.write_shift(1, wsidx);\n\t\to.write_shift(1, C);\n\t\to.write_shift(1, 0x27);\n\t\tfor(var i = 0; i < s.length; ++i) {\n\t\t\tvar cc = s.charCodeAt(i);\n\t\t\to.write_shift(1, cc >= 0x80 ? 0x5F : cc);\n\t\t}\n\t\to.write_shift(1, 0);\n\t\treturn o;\n\t}\n\n\tfunction parse_NUMBER_18(blob, length) {\n\t\tvar o = parse_cell_3(blob, length);\n\t\to[1].v = blob.read_shift(2);\n\t\tvar v = o[1].v >> 1;\n\t\tif(o[1].v & 0x1) {\n\t\t\tswitch(v & 0x07) {\n\t\t\t\tcase 0: v = (v >> 3) * 5000; break;\n\t\t\t\tcase 1: v = (v >> 3) * 500; break;\n\t\t\t\tcase 2: v = (v >> 3) / 20; break;\n\t\t\t\tcase 3: v = (v >> 3) / 200; break;\n\t\t\t\tcase 4: v = (v >> 3) / 2000; break;\n\t\t\t\tcase 5: v = (v >> 3) / 20000; break;\n\t\t\t\tcase 6: v = (v >> 3) / 16; break;\n\t\t\t\tcase 7: v = (v >> 3) / 64; break;\n\t\t\t}\n\t\t}\n\t\to[1].v = v;\n\t\treturn o;\n\t}\n\n\tfunction parse_NUMBER_17(blob, length) {\n\t\tvar o = parse_cell_3(blob, length);\n\t\tvar v1 = blob.read_shift(4);\n\t\tvar v2 = blob.read_shift(4);\n\t\tvar e = blob.read_shift(2);\n\t\tif(e == 0xFFFF) {\n\t\t\tif(v1 === 0 && v2 === 0xC0000000) { o[1].t = \"e\"; o[1].v = 0x0F; } // ERR -> #VALUE!\n\t\t\telse if(v1 === 0 && v2 === 0xD0000000) { o[1].t = \"e\"; o[1].v = 0x2A; } // NA -> #N/A\n\t\t\telse o[1].v = 0;\n\t\t\treturn o;\n\t\t}\n\t\tvar s = e & 0x8000; e = (e&0x7FFF) - 16446;\n\t\to[1].v = (1 - s*2) * (v2 * Math.pow(2, e+32) + v1 * Math.pow(2, e));\n\t\treturn o;\n\t}\n\tfunction write_NUMBER_17(R, C, wsidx, v) {\n\t\tvar o = new_buf(14);\n\t\to.write_shift(2, R);\n\t\to.write_shift(1, wsidx);\n\t\to.write_shift(1, C);\n\t\tif(v == 0) {\n\t\t\to.write_shift(4, 0);\n\t\t\to.write_shift(4, 0);\n\t\t\to.write_shift(2, 0xFFFF);\n\t\t\treturn o;\n\t\t}\n\t\tvar s = 0, e = 0, v1 = 0, v2 = 0;\n\t\tif(v < 0) { s = 1; v = -v; }\n\t\te = Math.log2(v) | 0;\n\t\tv /= Math.pow(2, e-31);\n\t\tv2 = (v)>>>0;\n\t\tif((v2&0x80000000) == 0) { v/=2; ++e; v2 = v >>> 0; }\n\t\tv -= v2;\n\t\tv2 |= 0x80000000;\n\t\tv2 >>>= 0;\n\t\tv *= Math.pow(2, 32);\n\t\tv1 = v>>>0;\n\t\to.write_shift(4, v1);\n\t\to.write_shift(4, v2);\n\t\te += 0x3FFF + (s ? 0x8000 : 0);\n\t\to.write_shift(2, e);\n\t\treturn o;\n\t}\n\n\tfunction parse_FORMULA_19(blob, length) {\n\t\tvar o = parse_NUMBER_17(blob, 14);\n\t\tblob.l += length - 14; /* TODO: WK3 formula */\n\t\treturn o;\n\t}\n\n\tfunction parse_NUMBER_25(blob, length) {\n\t\tvar o = parse_cell_3(blob, length);\n\t\tvar v1 = blob.read_shift(4);\n\t\to[1].v = v1 >> 6;\n\t\treturn o;\n\t}\n\n\tfunction parse_NUMBER_27(blob, length) {\n\t\tvar o = parse_cell_3(blob, length);\n\t\tvar v1 = blob.read_shift(8,'f');\n\t\to[1].v = v1;\n\t\treturn o;\n\t}\n\n\tfunction parse_FORMULA_28(blob, length) {\n\t\tvar o = parse_NUMBER_27(blob, 12);\n\t\tblob.l += length - 12; /* TODO: formula */\n\t\treturn o;\n\t}\n\n\tfunction parse_SHEETNAMECS(blob, length) {\n\t\treturn blob[blob.l + length - 1] == 0 ? blob.read_shift(length, 'cstr') : \"\";\n\t}\n\n\tfunction parse_SHEETNAMELP(blob, length) {\n\t\tvar len = blob[blob.l++];\n\t\tif(len > length - 1) len = length - 1;\n\t\tvar o = \"\"; while(o.length < len) o += String.fromCharCode(blob[blob.l++]);\n\t\treturn o;\n\t}\n\n\tfunction parse_SHEETINFOQP(blob, length, opts) {\n\t\tif(!opts.qpro || length < 21) return;\n\t\tvar id = blob.read_shift(1);\n\t\tblob.l += 17;\n\t\tblob.l += 1; //var len = blob.read_shift(1);\n\t\tblob.l += 2;\n\t\tvar nm = blob.read_shift(length - 21, 'cstr');\n\t\treturn [id, nm];\n\t}\n\n\tfunction parse_XFORMAT(blob, length) {\n\t\tvar o = {}, tgt = blob.l + length;\n\t\twhile(blob.l < tgt) {\n\t\t\tvar dt = blob.read_shift(2);\n\t\t\tif(dt == 0x36b0) {\n\t\t\t\to[dt] = [0, \"\"];\n\t\t\t\to[dt][0] = blob.read_shift(2);\n\t\t\t\twhile(blob[blob.l]) { o[dt][1] += String.fromCharCode(blob[blob.l]); blob.l++; } blob.l++;\n\t\t\t}\n\t\t\t// TODO: 0x3a99 ??\n\t\t}\n\t\treturn o;\n\t}\n\tfunction write_XFORMAT_SHEETNAME(name, wsidx) {\n\t\tvar out = new_buf(5 + name.length);\n\t\tout.write_shift(2, 0x36b0);\n\t\tout.write_shift(2, wsidx);\n\t\tfor(var i = 0; i < name.length; ++i) {\n\t\t\tvar cc = name.charCodeAt(i);\n\t\t\tout[out.l++] = cc > 0x7F ? 0x5F : cc;\n\t\t}\n\t\tout[out.l++] = 0;\n\t\treturn out;\n\t}\n\n\tvar WK1Enum = {\n\t\t/*::[*/0x0000/*::]*/: { n:\"BOF\", f:parseuint16 },\n\t\t/*::[*/0x0001/*::]*/: { n:\"EOF\" },\n\t\t/*::[*/0x0002/*::]*/: { n:\"CALCMODE\" },\n\t\t/*::[*/0x0003/*::]*/: { n:\"CALCORDER\" },\n\t\t/*::[*/0x0004/*::]*/: { n:\"SPLIT\" },\n\t\t/*::[*/0x0005/*::]*/: { n:\"SYNC\" },\n\t\t/*::[*/0x0006/*::]*/: { n:\"RANGE\", f:parse_RANGE },\n\t\t/*::[*/0x0007/*::]*/: { n:\"WINDOW1\" },\n\t\t/*::[*/0x0008/*::]*/: { n:\"COLW1\" },\n\t\t/*::[*/0x0009/*::]*/: { n:\"WINTWO\" },\n\t\t/*::[*/0x000A/*::]*/: { n:\"COLW2\" },\n\t\t/*::[*/0x000B/*::]*/: { n:\"NAME\" },\n\t\t/*::[*/0x000C/*::]*/: { n:\"BLANK\" },\n\t\t/*::[*/0x000D/*::]*/: { n:\"INTEGER\", f:parse_INTEGER },\n\t\t/*::[*/0x000E/*::]*/: { n:\"NUMBER\", f:parse_NUMBER },\n\t\t/*::[*/0x000F/*::]*/: { n:\"LABEL\", f:parse_LABEL },\n\t\t/*::[*/0x0010/*::]*/: { n:\"FORMULA\", f:parse_FORMULA },\n\t\t/*::[*/0x0018/*::]*/: { n:\"TABLE\" },\n\t\t/*::[*/0x0019/*::]*/: { n:\"ORANGE\" },\n\t\t/*::[*/0x001A/*::]*/: { n:\"PRANGE\" },\n\t\t/*::[*/0x001B/*::]*/: { n:\"SRANGE\" },\n\t\t/*::[*/0x001C/*::]*/: { n:\"FRANGE\" },\n\t\t/*::[*/0x001D/*::]*/: { n:\"KRANGE1\" },\n\t\t/*::[*/0x0020/*::]*/: { n:\"HRANGE\" },\n\t\t/*::[*/0x0023/*::]*/: { n:\"KRANGE2\" },\n\t\t/*::[*/0x0024/*::]*/: { n:\"PROTEC\" },\n\t\t/*::[*/0x0025/*::]*/: { n:\"FOOTER\" },\n\t\t/*::[*/0x0026/*::]*/: { n:\"HEADER\" },\n\t\t/*::[*/0x0027/*::]*/: { n:\"SETUP\" },\n\t\t/*::[*/0x0028/*::]*/: { n:\"MARGINS\" },\n\t\t/*::[*/0x0029/*::]*/: { n:\"LABELFMT\" },\n\t\t/*::[*/0x002A/*::]*/: { n:\"TITLES\" },\n\t\t/*::[*/0x002B/*::]*/: { n:\"SHEETJS\" },\n\t\t/*::[*/0x002D/*::]*/: { n:\"GRAPH\" },\n\t\t/*::[*/0x002E/*::]*/: { n:\"NGRAPH\" },\n\t\t/*::[*/0x002F/*::]*/: { n:\"CALCCOUNT\" },\n\t\t/*::[*/0x0030/*::]*/: { n:\"UNFORMATTED\" },\n\t\t/*::[*/0x0031/*::]*/: { n:\"CURSORW12\" },\n\t\t/*::[*/0x0032/*::]*/: { n:\"WINDOW\" },\n\t\t/*::[*/0x0033/*::]*/: { n:\"STRING\", f:parse_STRING },\n\t\t/*::[*/0x0037/*::]*/: { n:\"PASSWORD\" },\n\t\t/*::[*/0x0038/*::]*/: { n:\"LOCKED\" },\n\t\t/*::[*/0x003C/*::]*/: { n:\"QUERY\" },\n\t\t/*::[*/0x003D/*::]*/: { n:\"QUERYNAME\" },\n\t\t/*::[*/0x003E/*::]*/: { n:\"PRINT\" },\n\t\t/*::[*/0x003F/*::]*/: { n:\"PRINTNAME\" },\n\t\t/*::[*/0x0040/*::]*/: { n:\"GRAPH2\" },\n\t\t/*::[*/0x0041/*::]*/: { n:\"GRAPHNAME\" },\n\t\t/*::[*/0x0042/*::]*/: { n:\"ZOOM\" },\n\t\t/*::[*/0x0043/*::]*/: { n:\"SYMSPLIT\" },\n\t\t/*::[*/0x0044/*::]*/: { n:\"NSROWS\" },\n\t\t/*::[*/0x0045/*::]*/: { n:\"NSCOLS\" },\n\t\t/*::[*/0x0046/*::]*/: { n:\"RULER\" },\n\t\t/*::[*/0x0047/*::]*/: { n:\"NNAME\" },\n\t\t/*::[*/0x0048/*::]*/: { n:\"ACOMM\" },\n\t\t/*::[*/0x0049/*::]*/: { n:\"AMACRO\" },\n\t\t/*::[*/0x004A/*::]*/: { n:\"PARSE\" },\n\t\t/*::[*/0x0066/*::]*/: { n:\"PRANGES??\" },\n\t\t/*::[*/0x0067/*::]*/: { n:\"RRANGES??\" },\n\t\t/*::[*/0x0068/*::]*/: { n:\"FNAME??\" },\n\t\t/*::[*/0x0069/*::]*/: { n:\"MRANGES??\" },\n\t\t/*::[*/0x00CC/*::]*/: { n:\"SHEETNAMECS\", f:parse_SHEETNAMECS },\n\t\t/*::[*/0x00DE/*::]*/: { n:\"SHEETNAMELP\", f:parse_SHEETNAMELP },\n\t\t/*::[*/0x00FF/*::]*/: { n:\"BOF\", f:parseuint16 },\n\t\t/*::[*/0xFFFF/*::]*/: { n:\"\" }\n\t};\n\n\tvar WK3Enum = {\n\t\t/*::[*/0x0000/*::]*/: { n:\"BOF\" },\n\t\t/*::[*/0x0001/*::]*/: { n:\"EOF\" },\n\t\t/*::[*/0x0002/*::]*/: { n:\"PASSWORD\" },\n\t\t/*::[*/0x0003/*::]*/: { n:\"CALCSET\" },\n\t\t/*::[*/0x0004/*::]*/: { n:\"WINDOWSET\" },\n\t\t/*::[*/0x0005/*::]*/: { n:\"SHEETCELLPTR\" },\n\t\t/*::[*/0x0006/*::]*/: { n:\"SHEETLAYOUT\" },\n\t\t/*::[*/0x0007/*::]*/: { n:\"COLUMNWIDTH\" },\n\t\t/*::[*/0x0008/*::]*/: { n:\"HIDDENCOLUMN\" },\n\t\t/*::[*/0x0009/*::]*/: { n:\"USERRANGE\" },\n\t\t/*::[*/0x000A/*::]*/: { n:\"SYSTEMRANGE\" },\n\t\t/*::[*/0x000B/*::]*/: { n:\"ZEROFORCE\" },\n\t\t/*::[*/0x000C/*::]*/: { n:\"SORTKEYDIR\" },\n\t\t/*::[*/0x000D/*::]*/: { n:\"FILESEAL\" },\n\t\t/*::[*/0x000E/*::]*/: { n:\"DATAFILLNUMS\" },\n\t\t/*::[*/0x000F/*::]*/: { n:\"PRINTMAIN\" },\n\t\t/*::[*/0x0010/*::]*/: { n:\"PRINTSTRING\" },\n\t\t/*::[*/0x0011/*::]*/: { n:\"GRAPHMAIN\" },\n\t\t/*::[*/0x0012/*::]*/: { n:\"GRAPHSTRING\" },\n\t\t/*::[*/0x0013/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0014/*::]*/: { n:\"ERRCELL\" },\n\t\t/*::[*/0x0015/*::]*/: { n:\"NACELL\" },\n\t\t/*::[*/0x0016/*::]*/: { n:\"LABEL16\", f:parse_LABEL_16},\n\t\t/*::[*/0x0017/*::]*/: { n:\"NUMBER17\", f:parse_NUMBER_17 },\n\t\t/*::[*/0x0018/*::]*/: { n:\"NUMBER18\", f:parse_NUMBER_18 },\n\t\t/*::[*/0x0019/*::]*/: { n:\"FORMULA19\", f:parse_FORMULA_19},\n\t\t/*::[*/0x001A/*::]*/: { n:\"FORMULA1A\" },\n\t\t/*::[*/0x001B/*::]*/: { n:\"XFORMAT\", f:parse_XFORMAT },\n\t\t/*::[*/0x001C/*::]*/: { n:\"DTLABELMISC\" },\n\t\t/*::[*/0x001D/*::]*/: { n:\"DTLABELCELL\" },\n\t\t/*::[*/0x001E/*::]*/: { n:\"GRAPHWINDOW\" },\n\t\t/*::[*/0x001F/*::]*/: { n:\"CPA\" },\n\t\t/*::[*/0x0020/*::]*/: { n:\"LPLAUTO\" },\n\t\t/*::[*/0x0021/*::]*/: { n:\"QUERY\" },\n\t\t/*::[*/0x0022/*::]*/: { n:\"HIDDENSHEET\" },\n\t\t/*::[*/0x0023/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0025/*::]*/: { n:\"NUMBER25\", f:parse_NUMBER_25 },\n\t\t/*::[*/0x0026/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0027/*::]*/: { n:\"NUMBER27\", f:parse_NUMBER_27 },\n\t\t/*::[*/0x0028/*::]*/: { n:\"FORMULA28\", f:parse_FORMULA_28 },\n\t\t/*::[*/0x008E/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0093/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0096/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0097/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0098/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0099/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x009A/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x009B/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x009C/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x00A3/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x00AE/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x00AF/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x00B0/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x00B1/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x00B8/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x00B9/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x00BA/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x00BB/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x00BC/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x00C3/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x00C9/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x00CC/*::]*/: { n:\"SHEETNAMECS\", f:parse_SHEETNAMECS },\n\t\t/*::[*/0x00CD/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x00CE/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x00CF/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x00D0/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0100/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0103/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0104/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0105/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0106/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0107/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0109/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x010A/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x010B/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x010C/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x010E/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x010F/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0180/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0185/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0186/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0189/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x018C/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0200/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0202/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0201/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0204/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0205/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0280/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0281/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0282/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0283/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0284/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0285/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0286/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0287/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0288/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0292/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0293/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0294/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0295/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0296/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0299/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x029A/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0300/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0304/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0601/*::]*/: { n:\"SHEETINFOQP\", f:parse_SHEETINFOQP },\n\t\t/*::[*/0x0640/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0642/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0701/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0702/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0703/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0704/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0780/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0800/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0801/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0804/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0A80/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x2AF6/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x3231/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x6E49/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x6F44/*::]*/: { n:\"??\" },\n\t\t/*::[*/0xFFFF/*::]*/: { n:\"\" }\n\t};\n\n\t/* QPW uses a different set of record types */\n\tfunction qpw_to_workbook_buf(d, opts)/*:Workbook*/ {\n\t\tprep_blob(d, 0);\n\t\tvar o = opts || {};\n\t\tif(DENSE != null && o.dense == null) o.dense = DENSE;\n\t\tvar s/*:Worksheet*/ = ({}/*:any*/); if(o.dense) s[\"!data\"] = [];\n\t\tvar SST = [], sname = \"\", formulae = [];\n\t\tvar range = {s:{r:-1,c:-1}, e:{r:-1,c:-1}};\n\t\tvar cnt = 0, type = 0, C = 0, R = 0;\n\t\tvar wb = { SheetNames: [], Sheets: {} };\n\t\touter: while(d.l < d.length) {\n\t\t\tvar RT = d.read_shift(2), length = d.read_shift(2);\n\t\t\tvar p = d.slice(d.l, d.l + length);\n\t\t\tprep_blob(p, 0);\n\t\t\tswitch(RT) {\n\t\t\t\tcase 0x01: /* BOF */\n\t\t\t\t\tif(p.read_shift(4) != 0x39575051) throw \"Bad QPW9 BOF!\";\n\t\t\t\t\tbreak;\n\t\t\t\tcase 0x02: /* EOF */ break outer;\n\n\t\t\t\t/* TODO: The behavior here should be consistent with Numbers: QP Notebook ~ .TN.SheetArchive, QP Sheet ~ .TST.TableModelArchive */\n\t\t\t\tcase 0x0401: /* BON */ break;\n\t\t\t\tcase 0x0402: /* EON */ /* TODO: backfill missing sheets based on BON cnt */ break;\n\n\t\t\t\tcase 0x0407: { /* SST */\n\t\t\t\t\tp.l += 12;\n\t\t\t\t\twhile(p.l < p.length) {\n\t\t\t\t\t\tcnt = p.read_shift(2);\n\t\t\t\t\t\ttype = p.read_shift(1);\n\t\t\t\t\t\tSST.push(p.read_shift(cnt, 'cstr'));\n\t\t\t\t\t}\n\t\t\t\t} break;\n\t\t\t\tcase 0x0408: { /* FORMULAE */\n\t\t\t\t\t//p.l += 12;\n\t\t\t\t\t//while(p.l < p.length) {\n\t\t\t\t\t//\tcnt = p.read_shift(2);\n\t\t\t\t\t//\tformulae.push(p.slice(p.l, p.l + cnt + 1)); p.l += cnt + 1;\n\t\t\t\t\t//}\n\t\t\t\t} break;\n\n\t\t\t\tcase 0x0601: { /* BOS */\n\t\t\t\t\tvar sidx = p.read_shift(2);\n\t\t\t\t\ts = ({}/*:any*/); if(o.dense) s[\"!data\"] = [];\n\t\t\t\t\trange.s.c = p.read_shift(2);\n\t\t\t\t\trange.e.c = p.read_shift(2);\n\t\t\t\t\trange.s.r = p.read_shift(4);\n\t\t\t\t\trange.e.r = p.read_shift(4);\n\t\t\t\t\tp.l += 4;\n\t\t\t\t\tif(p.l + 2 < p.length) {\n\t\t\t\t\t\tcnt = p.read_shift(2);\n\t\t\t\t\t\ttype = p.read_shift(1);\n\t\t\t\t\t\tsname = cnt == 0 ? \"\" : p.read_shift(cnt, 'cstr');\n\t\t\t\t\t}\n\t\t\t\t\tif(!sname) sname = encode_col(sidx);\n\t\t\t\t\t/* TODO: backfill empty sheets */\n\t\t\t\t} break;\n\t\t\t\tcase 0x0602: { /* EOS */\n\t\t\t\t\t/* NOTE: QP valid range A1:IV1000000 */\n\t\t\t\t\tif(range.s.c > 0xFF || range.s.r > 999999) break;\n\t\t\t\t\tif(range.e.c < range.s.c) range.e.c = range.s.c;\n\t\t\t\t\tif(range.e.r < range.s.r) range.e.r = range.s.r;\n\t\t\t\t\ts[\"!ref\"] = encode_range(range);\n\t\t\t\t\tbook_append_sheet(wb, s, sname); // TODO: a barrel roll\n\t\t\t\t} break;\n\n\t\t\t\tcase 0x0A01: { /* COL (like XLS Row, modulo the layout transposition) */\n\t\t\t\t\tC = p.read_shift(2);\n\t\t\t\t\tif(range.e.c < C) range.e.c = C;\n\t\t\t\t\tif(range.s.c > C) range.s.c = C;\n\t\t\t\t\tR = p.read_shift(4);\n\t\t\t\t\tif(range.s.r > R) range.s.r = R;\n\t\t\t\t\tR = p.read_shift(4);\n\t\t\t\t\tif(range.e.r < R) range.e.r = R;\n\t\t\t\t} break;\n\n\t\t\t\tcase 0x0C01: { /* MulCells (like XLS MulRK, but takes advantage of common column data patterns) */\n\t\t\t\t\tR = p.read_shift(4), cnt = p.read_shift(4);\n\t\t\t\t\tif(range.s.r > R) range.s.r = R;\n\t\t\t\t\tif(range.e.r < R + cnt - 1) range.e.r = R + cnt - 1;\n\t\t\t\t\tvar CC = encode_col(C);\n\t\t\t\t\twhile(p.l < p.length) {\n\t\t\t\t\t\tvar cell = { t: \"z\" };\n\t\t\t\t\t\tvar flags = p.read_shift(1);\n\t\t\t\t\t\tif(flags & 0x80) p.l += 2;\n\t\t\t\t\t\tvar mul = (flags & 0x40) ? p.read_shift(2) - 1: 0;\n\t\t\t\t\t\tswitch(flags & 0x1F) {\n\t\t\t\t\t\t\tcase 1: break;\n\t\t\t\t\t\t\tcase 2: cell = { t: \"n\", v: p.read_shift(2) }; break;\n\t\t\t\t\t\t\tcase 3: cell = { t: \"n\", v: p.read_shift(2, 'i') }; break;\n\t\t\t\t\t\t\tcase 5: cell = { t: \"n\", v: p.read_shift(8, 'f') }; break;\n\t\t\t\t\t\t\tcase 7: cell = { t: \"s\", v: SST[type = p.read_shift(4) - 1] }; break;\n\t\t\t\t\t\t\tcase 8: cell = { t: \"n\", v: p.read_shift(8, 'f') }; p.l += 2; /* cell.f = formulae[p.read_shift(4)]; */ p.l += 4; break;\n\t\t\t\t\t\t\tdefault: throw \"Unrecognized QPW cell type \" + (flags & 0x1F);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tvar delta = 0;\n\t\t\t\t\t\tif(flags & 0x20) switch(flags & 0x1F) {\n\t\t\t\t\t\t\tcase 2: delta = p.read_shift(2); break;\n\t\t\t\t\t\t\tcase 3: delta = p.read_shift(2, 'i'); break;\n\t\t\t\t\t\t\tcase 7: delta = p.read_shift(2); break;\n\t\t\t\t\t\t\tdefault: throw \"Unsupported delta for QPW cell type \" + (flags & 0x1F);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif(!(!o.sheetStubs && cell.t == \"z\")) {\n\t\t\t\t\t\t\tif(s[\"!data\"] != null) {\n\t\t\t\t\t\t\t\tif(!s[\"!data\"][R]) s[\"!data\"][R] = [];\n\t\t\t\t\t\t\t\ts[\"!data\"][R][C] = cell;\n\t\t\t\t\t\t\t} else s[CC + encode_row(R)] = cell;\n\t\t\t\t\t\t}\n\t\t\t\t\t\t++R; --cnt;\n\t\t\t\t\t\twhile(mul-- > 0 && cnt >= 0) {\n\t\t\t\t\t\t\tif(flags & 0x20) switch(flags & 0x1F) {\n\t\t\t\t\t\t\t\tcase 2: cell = { t: \"n\", v: (cell.v + delta) & 0xFFFF }; break;\n\t\t\t\t\t\t\t\tcase 3: cell = { t: \"n\", v: (cell.v + delta) & 0xFFFF }; if(cell.v > 0x7FFF) cell.v -= 0x10000; break;\n\t\t\t\t\t\t\t\tcase 7: cell = { t: \"s\", v: SST[type = (type + delta) >>> 0] }; break;\n\t\t\t\t\t\t\t\tdefault: throw \"Cannot apply delta for QPW cell type \" + (flags & 0x1F);\n\t\t\t\t\t\t\t} else switch(flags & 0x1F) {\n\t\t\t\t\t\t\t\tcase 1: cell = { t: \"z\" }; break;\n\t\t\t\t\t\t\t\tcase 2: cell = { t: \"n\", v: p.read_shift(2) }; break;\n\t\t\t\t\t\t\t\tcase 7: cell = { t: \"s\", v: SST[type = p.read_shift(4) - 1] }; break;\n\t\t\t\t\t\t\t\tdefault: throw \"Cannot apply repeat for QPW cell type \" + (flags & 0x1F);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif(!(!o.sheetStubs && cell.t == \"z\")) {\n\t\t\t\t\t\t\t\tif(s[\"!data\"] != null) {\n\t\t\t\t\t\t\t\t\tif(!s[\"!data\"][R]) s[\"!data\"][R] = [];\n\t\t\t\t\t\t\t\t\ts[\"!data\"][R][C] = cell;\n\t\t\t\t\t\t\t\t} else s[CC + encode_row(R)] = cell;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t++R; --cnt;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} break;\n\n\t\t\t\tdefault: break;\n\t\t\t}\n\t\t\td.l += length;\n\t\t}\n\t\treturn wb;\n\t}\n\n\treturn {\n\t\tsheet_to_wk1: sheet_to_wk1,\n\t\tbook_to_wk3: book_to_wk3,\n\t\tto_workbook: lotus_to_workbook\n\t};\n})();\n/* 18.4.7 rPr CT_RPrElt */\nfunction parse_rpr(rpr) {\n\tvar font = {}, m = rpr.match(tagregex), i = 0;\n\tvar pass = false;\n\tif(m) for(;i!=m.length; ++i) {\n\t\tvar y = parsexmltag(m[i]);\n\t\tswitch(y[0].replace(/\\w*:/g,\"\")) {\n\t\t\t/* 18.8.12 condense CT_BooleanProperty */\n\t\t\t/* ** not required . */\n\t\t\tcase '':\n\t\t\tcase '': font.shadow = 1; break;\n\t\t\tcase '': break;\n\n\t\t\t/* 18.4.1 charset CT_IntProperty TODO */\n\t\t\tcase '':\n\t\t\tcase '': font.outline = 1; break;\n\t\t\tcase '': break;\n\n\t\t\t/* 18.4.5 rFont CT_FontName */\n\t\t\tcase '':\n\t\t\tcase '': font.strike = 1; break;\n\t\t\tcase '': break;\n\n\t\t\t/* 18.4.13 u CT_UnderlineProperty */\n\t\t\tcase '':\n\t\t\tcase '': font.u = 1; break;\n\t\t\tcase '': break;\n\n\t\t\t/* 18.8.2 b */\n\t\t\tcase '':\n\t\t\tcase '': font.b = 1; break;\n\t\t\tcase '': break;\n\n\t\t\t/* 18.8.26 i */\n\t\t\tcase '':\n\t\t\tcase '': font.i = 1; break;\n\t\t\tcase '': break;\n\n\t\t\t/* 18.3.1.15 color CT_Color TODO: tint, theme, auto, indexed */\n\t\t\tcase '': case '': case '': break;\n\n\t\t\t/* 18.8.18 family ST_FontFamily */\n\t\t\tcase '': case '': case '': break;\n\n\t\t\t/* 18.4.14 vertAlign CT_VerticalAlignFontProperty TODO */\n\t\t\tcase '': case '': case '': break;\n\n\t\t\t/* 18.8.35 scheme CT_FontScheme TODO */\n\t\t\tcase '': case '': case '': break;\n\n\t\t\t/* 18.2.10 extLst CT_ExtensionList ? */\n\t\t\tcase '': case '': break;\n\t\t\tcase '': pass = false; break;\n\t\t\tdefault:\n\t\t\t\tif(y[0].charCodeAt(1) !== 47 && !pass) throw new Error('Unrecognized rich format ' + y[0]);\n\t\t}\n\t}\n\treturn font;\n}\n\nvar parse_rs = /*#__PURE__*/(function() {\n\tvar tregex = matchtag(\"t\"), rpregex = matchtag(\"rPr\");\n\t/* 18.4.4 r CT_RElt */\n\tfunction parse_r(r) {\n\t\t/* 18.4.12 t ST_Xstring */\n\t\tvar t = r.match(tregex)/*, cp = 65001*/;\n\t\tif(!t) return {t:\"s\", v:\"\"};\n\n\t\tvar o/*:Cell*/ = ({t:'s', v:unescapexml(t[1])}/*:any*/);\n\t\tvar rpr = r.match(rpregex);\n\t\tif(rpr) o.s = parse_rpr(rpr[1]);\n\t\treturn o;\n\t}\n\tvar rregex = /<(?:\\w+:)?r>/g, rend = /<\\/(?:\\w+:)?r>/;\n\treturn function parse_rs(rs) {\n\t\treturn rs.replace(rregex,\"\").split(rend).map(parse_r).filter(function(r) { return r.v; });\n\t};\n})();\n\n\n/* Parse a list of tags */\nvar rs_to_html = /*#__PURE__*/(function parse_rs_factory() {\n\tvar nlregex = /(\\r\\n|\\n)/g;\n\tfunction parse_rpr2(font, intro, outro) {\n\t\tvar style/*:Array*/ = [];\n\n\t\tif(font.u) style.push(\"text-decoration: underline;\");\n\t\tif(font.uval) style.push(\"text-underline-style:\" + font.uval + \";\");\n\t\tif(font.sz) style.push(\"font-size:\" + font.sz + \"pt;\");\n\t\tif(font.outline) style.push(\"text-effect: outline;\");\n\t\tif(font.shadow) style.push(\"text-shadow: auto;\");\n\t\tintro.push('');\n\n\t\tif(font.b) { intro.push(\"\"); outro.push(\"\"); }\n\t\tif(font.i) { intro.push(\"\"); outro.push(\"\"); }\n\t\tif(font.strike) { intro.push(\"\"); outro.push(\"\"); }\n\n\t\tvar align = font.valign || \"\";\n\t\tif(align == \"superscript\" || align == \"super\") align = \"sup\";\n\t\telse if(align == \"subscript\") align = \"sub\";\n\t\tif(align != \"\") { intro.push(\"<\" + align + \">\"); outro.push(\"\"); }\n\n\t\toutro.push(\"\");\n\t\treturn font;\n\t}\n\n\t/* 18.4.4 r CT_RElt */\n\tfunction r_to_html(r) {\n\t\tvar terms/*:[Array, string, Array]*/ = [[],r.v,[]];\n\t\tif(!r.v) return \"\";\n\n\t\tif(r.s) parse_rpr2(r.s, terms[0], terms[2]);\n\n\t\treturn terms[0].join(\"\") + terms[1].replace(nlregex,'
') + terms[2].join(\"\");\n\t}\n\n\treturn function parse_rs(rs) {\n\t\treturn rs.map(r_to_html).join(\"\");\n\t};\n})();\n\n/* 18.4.8 si CT_Rst */\nvar sitregex = /<(?:\\w+:)?t[^>]*>([^<]*)<\\/(?:\\w+:)?t>/g, sirregex = /<(?:\\w+:)?r\\b[^>]*>/;\nvar sirphregex = /<(?:\\w+:)?rPh.*?>([\\s\\S]*?)<\\/(?:\\w+:)?rPh>/g;\nfunction parse_si(x, opts) {\n\tvar html = opts ? opts.cellHTML : true;\n\tvar z = {};\n\tif(!x) return { t: \"\" };\n\t//var y;\n\t/* 18.4.12 t ST_Xstring (Plaintext String) */\n\t// TODO: is whitespace actually valid here?\n\tif(x.match(/^\\s*<(?:\\w+:)?t[^>]*>/)) {\n\t\tz.t = unescapexml(utf8read(x.slice(x.indexOf(\">\")+1).split(/<\\/(?:\\w+:)?t>/)[0]||\"\"), true);\n\t\tz.r = utf8read(x);\n\t\tif(html) z.h = escapehtml(z.t);\n\t}\n\t/* 18.4.4 r CT_RElt (Rich Text Run) */\n\telse if((/*y = */x.match(sirregex))) {\n\t\tz.r = utf8read(x);\n\t\tz.t = unescapexml(utf8read((x.replace(sirphregex, '').match(sitregex)||[]).join(\"\").replace(tagregex,\"\")), true);\n\t\tif(html) z.h = rs_to_html(parse_rs(z.r));\n\t}\n\t/* 18.4.3 phoneticPr CT_PhoneticPr (TODO: needed for Asian support) */\n\t/* 18.4.6 rPh CT_PhoneticRun (TODO: needed for Asian support) */\n\treturn z;\n}\n\n/* 18.4 Shared String Table */\nvar sstr0 = /<(?:\\w+:)?sst([^>]*)>([\\s\\S]*)<\\/(?:\\w+:)?sst>/;\nvar sstr1 = /<(?:\\w+:)?(?:si|sstItem)>/g;\nvar sstr2 = /<\\/(?:\\w+:)?(?:si|sstItem)>/;\nfunction parse_sst_xml(data/*:string*/, opts)/*:SST*/ {\n\tvar s/*:SST*/ = ([]/*:any*/), ss = \"\";\n\tif(!data) return s;\n\t/* 18.4.9 sst CT_Sst */\n\tvar sst = data.match(sstr0);\n\tif(sst) {\n\t\tss = sst[2].replace(sstr1,\"\").split(sstr2);\n\t\tfor(var i = 0; i != ss.length; ++i) {\n\t\t\tvar o = parse_si(ss[i].trim(), opts);\n\t\t\tif(o != null) s[s.length] = o;\n\t\t}\n\t\tsst = parsexmltag(sst[1]); s.Count = sst.count; s.Unique = sst.uniqueCount;\n\t}\n\treturn s;\n}\n\nvar straywsregex = /^\\s|\\s$|[\\t\\n\\r]/;\nfunction write_sst_xml(sst/*:SST*/, opts)/*:string*/ {\n\tif(!opts.bookSST) return \"\";\n\tvar o = [XML_HEADER];\n\to[o.length] = (writextag('sst', null, {\n\t\txmlns: XMLNS_main[0],\n\t\tcount: sst.Count,\n\t\tuniqueCount: sst.Unique\n\t}));\n\tfor(var i = 0; i != sst.length; ++i) { if(sst[i] == null) continue;\n\t\tvar s/*:XLString*/ = sst[i];\n\t\tvar sitag = \"\";\n\t\tif(s.r) sitag += s.r;\n\t\telse {\n\t\t\tsitag += \"\" + escapexml(s.t) + \"\";\n\t\t}\n\t\tsitag += \"\";\n\t\to[o.length] = (sitag);\n\t}\n\tif(o.length>2){ o[o.length] = (''); o[1]=o[1].replace(\"/>\",\">\"); }\n\treturn o.join(\"\");\n}\n/* [MS-XLSB] 2.4.221 BrtBeginSst */\nfunction parse_BrtBeginSst(data) {\n\treturn [data.read_shift(4), data.read_shift(4)];\n}\n\n/* [MS-XLSB] 2.1.7.45 Shared Strings */\nfunction parse_sst_bin(data, opts)/*:SST*/ {\n\tvar s/*:SST*/ = ([]/*:any*/);\n\tvar pass = false;\n\trecordhopper(data, function hopper_sst(val, R, RT) {\n\t\tswitch(RT) {\n\t\t\tcase 0x009F: /* BrtBeginSst */\n\t\t\t\ts.Count = val[0]; s.Unique = val[1]; break;\n\t\t\tcase 0x0013: /* BrtSSTItem */\n\t\t\t\ts.push(val); break;\n\t\t\tcase 0x00A0: /* BrtEndSst */\n\t\t\t\treturn true;\n\n\t\t\tcase 0x0023: /* BrtFRTBegin */\n\t\t\t\tpass = true; break;\n\t\t\tcase 0x0024: /* BrtFRTEnd */\n\t\t\t\tpass = false; break;\n\n\t\t\tdefault:\n\t\t\t\tif(R.T){}\n\t\t\t\tif(!pass || opts.WTF) throw new Error(\"Unexpected record 0x\" + RT.toString(16));\n\t\t}\n\t});\n\treturn s;\n}\n\nfunction write_BrtBeginSst(sst, o) {\n\tif(!o) o = new_buf(8);\n\to.write_shift(4, sst.Count);\n\to.write_shift(4, sst.Unique);\n\treturn o;\n}\n\nvar write_BrtSSTItem = write_RichStr;\n\nfunction write_sst_bin(sst/*::, opts*/) {\n\tvar ba = buf_array();\n\twrite_record(ba, 0x009F /* BrtBeginSst */, write_BrtBeginSst(sst));\n\tfor(var i = 0; i < sst.length; ++i) write_record(ba, 0x0013 /* BrtSSTItem */, write_BrtSSTItem(sst[i]));\n\t/* FRTSST */\n\twrite_record(ba, 0x00A0 /* BrtEndSst */);\n\treturn ba.end();\n}\nfunction _JS2ANSI(str/*:string*/)/*:Array*/ {\n\tif(typeof $cptable !== 'undefined') return $cptable.utils.encode(current_ansi, str);\n\tvar o/*:Array*/ = [], oo = str.split(\"\");\n\tfor(var i = 0; i < oo.length; ++i) o[i] = oo[i].charCodeAt(0);\n\treturn o;\n}\n\n/* [MS-OFFCRYPTO] 2.1.4 Version */\nfunction parse_CRYPTOVersion(blob, length/*:?number*/) {\n\tvar o/*:any*/ = {};\n\to.Major = blob.read_shift(2);\n\to.Minor = blob.read_shift(2);\n\t/*:: if(length == null) return o; */\n\tif(length >= 4) blob.l += length - 4;\n\treturn o;\n}\n\n/* [MS-OFFCRYPTO] 2.1.5 DataSpaceVersionInfo */\nfunction parse_DataSpaceVersionInfo(blob) {\n\tvar o = {};\n\to.id = blob.read_shift(0, 'lpp4');\n\to.R = parse_CRYPTOVersion(blob, 4);\n\to.U = parse_CRYPTOVersion(blob, 4);\n\to.W = parse_CRYPTOVersion(blob, 4);\n\treturn o;\n}\n\n/* [MS-OFFCRYPTO] 2.1.6.1 DataSpaceMapEntry Structure */\nfunction parse_DataSpaceMapEntry(blob) {\n\tvar len = blob.read_shift(4);\n\tvar end = blob.l + len - 4;\n\tvar o = {};\n\tvar cnt = blob.read_shift(4);\n\tvar comps/*:Array<{t:number, v:string}>*/ = [];\n\t/* [MS-OFFCRYPTO] 2.1.6.2 DataSpaceReferenceComponent Structure */\n\twhile(cnt-- > 0) comps.push({ t: blob.read_shift(4), v: blob.read_shift(0, 'lpp4') });\n\to.name = blob.read_shift(0, 'lpp4');\n\to.comps = comps;\n\tif(blob.l != end) throw new Error(\"Bad DataSpaceMapEntry: \" + blob.l + \" != \" + end);\n\treturn o;\n}\n\n/* [MS-OFFCRYPTO] 2.1.6 DataSpaceMap */\nfunction parse_DataSpaceMap(blob) {\n\tvar o = [];\n\tblob.l += 4; // must be 0x8\n\tvar cnt = blob.read_shift(4);\n\twhile(cnt-- > 0) o.push(parse_DataSpaceMapEntry(blob));\n\treturn o;\n}\n\n/* [MS-OFFCRYPTO] 2.1.7 DataSpaceDefinition */\nfunction parse_DataSpaceDefinition(blob)/*:Array*/ {\n\tvar o/*:Array*/ = [];\n\tblob.l += 4; // must be 0x8\n\tvar cnt = blob.read_shift(4);\n\twhile(cnt-- > 0) o.push(blob.read_shift(0, 'lpp4'));\n\treturn o;\n}\n\n/* [MS-OFFCRYPTO] 2.1.8 DataSpaceDefinition */\nfunction parse_TransformInfoHeader(blob) {\n\tvar o = {};\n\t/*var len = */blob.read_shift(4);\n\tblob.l += 4; // must be 0x1\n\to.id = blob.read_shift(0, 'lpp4');\n\to.name = blob.read_shift(0, 'lpp4');\n\to.R = parse_CRYPTOVersion(blob, 4);\n\to.U = parse_CRYPTOVersion(blob, 4);\n\to.W = parse_CRYPTOVersion(blob, 4);\n\treturn o;\n}\n\nfunction parse_Primary(blob) {\n\t/* [MS-OFFCRYPTO] 2.2.6 IRMDSTransformInfo */\n\tvar hdr = parse_TransformInfoHeader(blob);\n\t/* [MS-OFFCRYPTO] 2.1.9 EncryptionTransformInfo */\n\thdr.ename = blob.read_shift(0, '8lpp4');\n\thdr.blksz = blob.read_shift(4);\n\thdr.cmode = blob.read_shift(4);\n\tif(blob.read_shift(4) != 0x04) throw new Error(\"Bad !Primary record\");\n\treturn hdr;\n}\n\n/* [MS-OFFCRYPTO] 2.3.2 Encryption Header */\nfunction parse_EncryptionHeader(blob, length/*:number*/) {\n\tvar tgt = blob.l + length;\n\tvar o = {};\n\to.Flags = (blob.read_shift(4) & 0x3F);\n\tblob.l += 4;\n\to.AlgID = blob.read_shift(4);\n\tvar valid = false;\n\tswitch(o.AlgID) {\n\t\tcase 0x660E: case 0x660F: case 0x6610: valid = (o.Flags == 0x24); break;\n\t\tcase 0x6801: valid = (o.Flags == 0x04); break;\n\t\tcase 0: valid = (o.Flags == 0x10 || o.Flags == 0x04 || o.Flags == 0x24); break;\n\t\tdefault: throw 'Unrecognized encryption algorithm: ' + o.AlgID;\n\t}\n\tif(!valid) throw new Error(\"Encryption Flags/AlgID mismatch\");\n\to.AlgIDHash = blob.read_shift(4);\n\to.KeySize = blob.read_shift(4);\n\to.ProviderType = blob.read_shift(4);\n\tblob.l += 8;\n\to.CSPName = blob.read_shift((tgt-blob.l)>>1, 'utf16le');\n\tblob.l = tgt;\n\treturn o;\n}\n\n/* [MS-OFFCRYPTO] 2.3.3 Encryption Verifier */\nfunction parse_EncryptionVerifier(blob, length/*:number*/) {\n\tvar o = {}, tgt = blob.l + length;\n\tblob.l += 4; // SaltSize must be 0x10\n\to.Salt = blob.slice(blob.l, blob.l+16); blob.l += 16;\n\to.Verifier = blob.slice(blob.l, blob.l+16); blob.l += 16;\n\t/*var sz = */blob.read_shift(4);\n\to.VerifierHash = blob.slice(blob.l, tgt); blob.l = tgt;\n\treturn o;\n}\n\n/* [MS-OFFCRYPTO] 2.3.4.* EncryptionInfo Stream */\nfunction parse_EncryptionInfo(blob) {\n\tvar vers = parse_CRYPTOVersion(blob);\n\tswitch(vers.Minor) {\n\t\tcase 0x02: return [vers.Minor, parse_EncInfoStd(blob, vers)];\n\t\tcase 0x03: return [vers.Minor, parse_EncInfoExt(blob, vers)];\n\t\tcase 0x04: return [vers.Minor, parse_EncInfoAgl(blob, vers)];\n\t}\n\tthrow new Error(\"ECMA-376 Encrypted file unrecognized Version: \" + vers.Minor);\n}\n\n/* [MS-OFFCRYPTO] 2.3.4.5 EncryptionInfo Stream (Standard Encryption) */\nfunction parse_EncInfoStd(blob/*::, vers*/) {\n\tvar flags = blob.read_shift(4);\n\tif((flags & 0x3F) != 0x24) throw new Error(\"EncryptionInfo mismatch\");\n\tvar sz = blob.read_shift(4);\n\t//var tgt = blob.l + sz;\n\tvar hdr = parse_EncryptionHeader(blob, sz);\n\tvar verifier = parse_EncryptionVerifier(blob, blob.length - blob.l);\n\treturn { t:\"Std\", h:hdr, v:verifier };\n}\n/* [MS-OFFCRYPTO] 2.3.4.6 EncryptionInfo Stream (Extensible Encryption) */\nfunction parse_EncInfoExt(/*::blob, vers*/) { throw new Error(\"File is password-protected: ECMA-376 Extensible\"); }\n/* [MS-OFFCRYPTO] 2.3.4.10 EncryptionInfo Stream (Agile Encryption) */\nfunction parse_EncInfoAgl(blob/*::, vers*/) {\n\tvar KeyData = [\"saltSize\",\"blockSize\",\"keyBits\",\"hashSize\",\"cipherAlgorithm\",\"cipherChaining\",\"hashAlgorithm\",\"saltValue\"];\n\tblob.l+=4;\n\tvar xml = blob.read_shift(blob.length - blob.l, 'utf8');\n\tvar o = {};\n\txml.replace(tagregex, function xml_agile(x) {\n\t\tvar y/*:any*/ = parsexmltag(x);\n\t\tswitch(strip_ns(y[0])) {\n\t\t\tcase '': break;\n\t\t\tcase '': case '': break;\n\n\t\t\tcase '': break;\n\t\t\tcase ' 4 || vers.Major < 2) throw new Error('unrecognized major version code: ' + vers.Major);\n\to.Flags = blob.read_shift(4); length -= 4;\n\tvar sz = blob.read_shift(4); length -= 4;\n\to.EncryptionHeader = parse_EncryptionHeader(blob, sz); length -= sz;\n\to.EncryptionVerifier = parse_EncryptionVerifier(blob, length);\n\treturn o;\n}\n/* [MS-OFFCRYPTO] 2.3.6.1 RC4 Encryption Header */\nfunction parse_RC4Header(blob/*::, length*/) {\n\tvar o = {};\n\tvar vers = o.EncryptionVersionInfo = parse_CRYPTOVersion(blob, 4);\n\tif(vers.Major != 1 || vers.Minor != 1) throw 'unrecognized version code ' + vers.Major + ' : ' + vers.Minor;\n\to.Salt = blob.read_shift(16);\n\to.EncryptedVerifier = blob.read_shift(16);\n\to.EncryptedVerifierHash = blob.read_shift(16);\n\treturn o;\n}\n\n/* [MS-OFFCRYPTO] 2.3.7.1 Binary Document Password Verifier Derivation */\nfunction crypto_CreatePasswordVerifier_Method1(Password/*:string*/) {\n\tvar Verifier = 0x0000, PasswordArray;\n\tvar PasswordDecoded = _JS2ANSI(Password);\n\tvar len = PasswordDecoded.length + 1, i, PasswordByte;\n\tvar Intermediate1, Intermediate2, Intermediate3;\n\tPasswordArray = new_raw_buf(len);\n\tPasswordArray[0] = PasswordDecoded.length;\n\tfor(i = 1; i != len; ++i) PasswordArray[i] = PasswordDecoded[i-1];\n\tfor(i = len-1; i >= 0; --i) {\n\t\tPasswordByte = PasswordArray[i];\n\t\tIntermediate1 = ((Verifier & 0x4000) === 0x0000) ? 0 : 1;\n\t\tIntermediate2 = (Verifier << 1) & 0x7FFF;\n\t\tIntermediate3 = Intermediate1 | Intermediate2;\n\t\tVerifier = Intermediate3 ^ PasswordByte;\n\t}\n\treturn Verifier ^ 0xCE4B;\n}\n\n/* [MS-OFFCRYPTO] 2.3.7.2 Binary Document XOR Array Initialization */\nvar crypto_CreateXorArray_Method1 = /*#__PURE__*/(function() {\n\tvar PadArray = [0xBB, 0xFF, 0xFF, 0xBA, 0xFF, 0xFF, 0xB9, 0x80, 0x00, 0xBE, 0x0F, 0x00, 0xBF, 0x0F, 0x00];\n\tvar InitialCode = [0xE1F0, 0x1D0F, 0xCC9C, 0x84C0, 0x110C, 0x0E10, 0xF1CE, 0x313E, 0x1872, 0xE139, 0xD40F, 0x84F9, 0x280C, 0xA96A, 0x4EC3];\n\tvar XorMatrix = [0xAEFC, 0x4DD9, 0x9BB2, 0x2745, 0x4E8A, 0x9D14, 0x2A09, 0x7B61, 0xF6C2, 0xFDA5, 0xEB6B, 0xC6F7, 0x9DCF, 0x2BBF, 0x4563, 0x8AC6, 0x05AD, 0x0B5A, 0x16B4, 0x2D68, 0x5AD0, 0x0375, 0x06EA, 0x0DD4, 0x1BA8, 0x3750, 0x6EA0, 0xDD40, 0xD849, 0xA0B3, 0x5147, 0xA28E, 0x553D, 0xAA7A, 0x44D5, 0x6F45, 0xDE8A, 0xAD35, 0x4A4B, 0x9496, 0x390D, 0x721A, 0xEB23, 0xC667, 0x9CEF, 0x29FF, 0x53FE, 0xA7FC, 0x5FD9, 0x47D3, 0x8FA6, 0x0F6D, 0x1EDA, 0x3DB4, 0x7B68, 0xF6D0, 0xB861, 0x60E3, 0xC1C6, 0x93AD, 0x377B, 0x6EF6, 0xDDEC, 0x45A0, 0x8B40, 0x06A1, 0x0D42, 0x1A84, 0x3508, 0x6A10, 0xAA51, 0x4483, 0x8906, 0x022D, 0x045A, 0x08B4, 0x1168, 0x76B4, 0xED68, 0xCAF1, 0x85C3, 0x1BA7, 0x374E, 0x6E9C, 0x3730, 0x6E60, 0xDCC0, 0xA9A1, 0x4363, 0x86C6, 0x1DAD, 0x3331, 0x6662, 0xCCC4, 0x89A9, 0x0373, 0x06E6, 0x0DCC, 0x1021, 0x2042, 0x4084, 0x8108, 0x1231, 0x2462, 0x48C4];\n\tvar Ror = function(Byte) { return ((Byte/2) | (Byte*128)) & 0xFF; };\n\tvar XorRor = function(byte1, byte2) { return Ror(byte1 ^ byte2); };\n\tvar CreateXorKey_Method1 = function(Password) {\n\t\tvar XorKey = InitialCode[Password.length - 1];\n\t\tvar CurrentElement = 0x68;\n\t\tfor(var i = Password.length-1; i >= 0; --i) {\n\t\t\tvar Char = Password[i];\n\t\t\tfor(var j = 0; j != 7; ++j) {\n\t\t\t\tif(Char & 0x40) XorKey ^= XorMatrix[CurrentElement];\n\t\t\t\tChar *= 2; --CurrentElement;\n\t\t\t}\n\t\t}\n\t\treturn XorKey;\n\t};\n\treturn function(password/*:string*/) {\n\t\tvar Password = _JS2ANSI(password);\n\t\tvar XorKey = CreateXorKey_Method1(Password);\n\t\tvar Index = Password.length;\n\t\tvar ObfuscationArray = new_raw_buf(16);\n\t\tfor(var i = 0; i != 16; ++i) ObfuscationArray[i] = 0x00;\n\t\tvar Temp, PasswordLastChar, PadIndex;\n\t\tif((Index & 1) === 1) {\n\t\t\tTemp = XorKey >> 8;\n\t\t\tObfuscationArray[Index] = XorRor(PadArray[0], Temp);\n\t\t\t--Index;\n\t\t\tTemp = XorKey & 0xFF;\n\t\t\tPasswordLastChar = Password[Password.length - 1];\n\t\t\tObfuscationArray[Index] = XorRor(PasswordLastChar, Temp);\n\t\t}\n\t\twhile(Index > 0) {\n\t\t\t--Index;\n\t\t\tTemp = XorKey >> 8;\n\t\t\tObfuscationArray[Index] = XorRor(Password[Index], Temp);\n\t\t\t--Index;\n\t\t\tTemp = XorKey & 0xFF;\n\t\t\tObfuscationArray[Index] = XorRor(Password[Index], Temp);\n\t\t}\n\t\tIndex = 15;\n\t\tPadIndex = 15 - Password.length;\n\t\twhile(PadIndex > 0) {\n\t\t\tTemp = XorKey >> 8;\n\t\t\tObfuscationArray[Index] = XorRor(PadArray[PadIndex], Temp);\n\t\t\t--Index;\n\t\t\t--PadIndex;\n\t\t\tTemp = XorKey & 0xFF;\n\t\t\tObfuscationArray[Index] = XorRor(Password[Index], Temp);\n\t\t\t--Index;\n\t\t\t--PadIndex;\n\t\t}\n\t\treturn ObfuscationArray;\n\t};\n})();\n\n/* [MS-OFFCRYPTO] 2.3.7.3 Binary Document XOR Data Transformation Method 1 */\nvar crypto_DecryptData_Method1 = function(password/*:string*/, Data, XorArrayIndex, XorArray, O) {\n\t/* If XorArray is set, use it; if O is not set, make changes in-place */\n\tif(!O) O = Data;\n\tif(!XorArray) XorArray = crypto_CreateXorArray_Method1(password);\n\tvar Index, Value;\n\tfor(Index = 0; Index != Data.length; ++Index) {\n\t\tValue = Data[Index];\n\t\tValue ^= XorArray[XorArrayIndex];\n\t\tValue = ((Value>>5) | (Value<<3)) & 0xFF;\n\t\tO[Index] = Value;\n\t\t++XorArrayIndex;\n\t}\n\treturn [O, XorArrayIndex, XorArray];\n};\n\nvar crypto_MakeXorDecryptor = function(password/*:string*/) {\n\tvar XorArrayIndex = 0, XorArray = crypto_CreateXorArray_Method1(password);\n\treturn function(Data) {\n\t\tvar O = crypto_DecryptData_Method1(\"\", Data, XorArrayIndex, XorArray);\n\t\tXorArrayIndex = O[1];\n\t\treturn O[0];\n\t};\n};\n\n/* 2.5.343 */\nfunction parse_XORObfuscation(blob, length, opts, out) {\n\tvar o = ({ key: parseuint16(blob), verificationBytes: parseuint16(blob) }/*:any*/);\n\tif(opts.password) o.verifier = crypto_CreatePasswordVerifier_Method1(opts.password);\n\tout.valid = o.verificationBytes === o.verifier;\n\tif(out.valid) out.insitu = crypto_MakeXorDecryptor(opts.password);\n\treturn o;\n}\n\n/* 2.4.117 */\nfunction parse_FilePassHeader(blob, length/*:number*/, oo) {\n\tvar o = oo || {}; o.Info = blob.read_shift(2); blob.l -= 2;\n\tif(o.Info === 1) o.Data = parse_RC4Header(blob, length);\n\telse o.Data = parse_RC4CryptoHeader(blob, length);\n\treturn o;\n}\nfunction parse_FilePass(blob, length/*:number*/, opts) {\n\tvar o = ({ Type: opts.biff >= 8 ? blob.read_shift(2) : 0 }/*:any*/); /* wEncryptionType */\n\tif(o.Type) parse_FilePassHeader(blob, length-2, o);\n\telse parse_XORObfuscation(blob, opts.biff >= 8 ? length : length - 2, opts, o);\n\treturn o;\n}\n\n\nfunction rtf_to_sheet(d, opts) {\n switch (opts.type) {\n case \"base64\":\n return rtf_to_sheet_str(Base64_decode(d), opts);\n case \"binary\":\n return rtf_to_sheet_str(d, opts);\n case \"buffer\":\n return rtf_to_sheet_str(has_buf && Buffer.isBuffer(d) ? d.toString(\"binary\") : a2s(d), opts);\n case \"array\":\n return rtf_to_sheet_str(cc2str(d), opts);\n }\n throw new Error(\"Unrecognized type \" + opts.type);\n}\nfunction rtf_to_sheet_str(str, opts) {\n var o = opts || {};\n var ws = {};\n var dense = o.dense;\n if (dense)\n ws[\"!data\"] = [];\n var rows = str.match(/\\\\trowd[\\s\\S]*?\\\\row\\b/g);\n if (!rows)\n throw new Error(\"RTF missing table\");\n var range = { s: { c: 0, r: 0 }, e: { c: 0, r: rows.length - 1 } };\n var row = [];\n rows.forEach(function(rowtf, R) {\n if (dense)\n row = ws[\"!data\"][R] = [];\n var rtfre = /\\\\[\\w\\-]+\\b/g;\n var last_index = 0;\n var res;\n var C = -1;\n var payload = [];\n while ((res = rtfre.exec(rowtf)) != null) {\n var data = rowtf.slice(last_index, rtfre.lastIndex - res[0].length);\n if (data.charCodeAt(0) == 32)\n data = data.slice(1);\n if (data.length)\n payload.push(data);\n switch (res[0]) {\n case \"\\\\cell\":\n ++C;\n if (payload.length) {\n var cell = { v: payload.join(\"\"), t: \"s\" };\n if (cell.v == \"TRUE\" || cell.v == \"FALSE\") {\n cell.v = cell.v == \"TRUE\";\n cell.t = \"b\";\n } else if (!isNaN(fuzzynum(cell.v))) {\n cell.t = \"n\";\n if (o.cellText !== false)\n cell.w = cell.v;\n cell.v = fuzzynum(cell.v);\n }\n if (dense)\n row[C] = cell;\n else\n ws[encode_cell({ r: R, c: C })] = cell;\n }\n payload = [];\n break;\n case \"\\\\par\":\n payload.push(\"\\n\");\n break;\n }\n last_index = rtfre.lastIndex;\n }\n if (C > range.e.c)\n range.e.c = C;\n });\n ws[\"!ref\"] = encode_range(range);\n return ws;\n}\nfunction rtf_to_workbook(d, opts) {\n var wb = sheet_to_workbook(rtf_to_sheet(d, opts), opts);\n wb.bookType = \"rtf\";\n return wb;\n}\nfunction sheet_to_rtf(ws, opts) {\n var o = [\"{\\\\rtf1\\\\ansi\"];\n if (!ws[\"!ref\"])\n return o[0] + \"}\";\n var r = safe_decode_range(ws[\"!ref\"]), cell;\n var dense = ws[\"!data\"] != null, row = [];\n for (var R = r.s.r; R <= r.e.r; ++R) {\n o.push(\"\\\\trowd\\\\trautofit1\");\n for (var C = r.s.c; C <= r.e.c; ++C)\n o.push(\"\\\\cellx\" + (C + 1));\n o.push(\"\\\\pard\\\\intbl\");\n if (dense)\n row = ws[\"!data\"][R] || [];\n for (C = r.s.c; C <= r.e.c; ++C) {\n var coord = encode_cell({ r: R, c: C });\n cell = dense ? row[C] : ws[coord];\n if (!cell || cell.v == null && (!cell.f || cell.F)) {\n o.push(\" \\\\cell\");\n continue;\n }\n o.push(\" \" + (cell.w || (format_cell(cell), cell.w) || \"\").replace(/[\\r\\n]/g, \"\\\\par \"));\n o.push(\"\\\\cell\");\n }\n o.push(\"\\\\pard\\\\intbl\\\\row\");\n }\n return o.join(\"\") + \"}\";\n}\nfunction hex2RGB(h) {\n\tvar o = h.slice(h[0]===\"#\"?1:0).slice(0,6);\n\treturn [parseInt(o.slice(0,2),16),parseInt(o.slice(2,4),16),parseInt(o.slice(4,6),16)];\n}\nfunction rgb2Hex(rgb) {\n\tfor(var i=0,o=1; i!=3; ++i) o = o*256 + (rgb[i]>255?255:rgb[i]<0?0:rgb[i]);\n\treturn o.toString(16).toUpperCase().slice(1);\n}\n\nfunction rgb2HSL(rgb) {\n\tvar R = rgb[0]/255, G = rgb[1]/255, B=rgb[2]/255;\n\tvar M = Math.max(R, G, B), m = Math.min(R, G, B), C = M - m;\n\tif(C === 0) return [0, 0, R];\n\n\tvar H6 = 0, S = 0, L2 = (M + m);\n\tS = C / (L2 > 1 ? 2 - L2 : L2);\n\tswitch(M){\n\t\tcase R: H6 = ((G - B) / C + 6)%6; break;\n\t\tcase G: H6 = ((B - R) / C + 2); break;\n\t\tcase B: H6 = ((R - G) / C + 4); break;\n\t}\n\treturn [H6 / 6, S, L2 / 2];\n}\n\nfunction hsl2RGB(hsl){\n\tvar H = hsl[0], S = hsl[1], L = hsl[2];\n\tvar C = S * 2 * (L < 0.5 ? L : 1 - L), m = L - C/2;\n\tvar rgb = [m,m,m], h6 = 6*H;\n\n\tvar X;\n\tif(S !== 0) switch(h6|0) {\n\t\tcase 0: case 6: X = C * h6; rgb[0] += C; rgb[1] += X; break;\n\t\tcase 1: X = C * (2 - h6); rgb[0] += X; rgb[1] += C; break;\n\t\tcase 2: X = C * (h6 - 2); rgb[1] += C; rgb[2] += X; break;\n\t\tcase 3: X = C * (4 - h6); rgb[1] += X; rgb[2] += C; break;\n\t\tcase 4: X = C * (h6 - 4); rgb[2] += C; rgb[0] += X; break;\n\t\tcase 5: X = C * (6 - h6); rgb[2] += X; rgb[0] += C; break;\n\t}\n\tfor(var i = 0; i != 3; ++i) rgb[i] = Math.round(rgb[i]*255);\n\treturn rgb;\n}\n\n/* 18.8.3 bgColor tint algorithm */\nfunction rgb_tint(hex, tint) {\n\tif(tint === 0) return hex;\n\tvar hsl = rgb2HSL(hex2RGB(hex));\n\tif (tint < 0) hsl[2] = hsl[2] * (1 + tint);\n\telse hsl[2] = 1 - (1 - hsl[2]) * (1 - tint);\n\treturn rgb2Hex(hsl2RGB(hsl));\n}\n\n/* 18.3.1.13 width calculations */\n/* [MS-OI29500] 2.1.595 Column Width & Formatting */\nvar DEF_MDW = 6, MAX_MDW = 15, MIN_MDW = 1, MDW = DEF_MDW;\nfunction width2px(width) { return Math.floor(( width + (Math.round(128/MDW))/256 )* MDW ); }\nfunction px2char(px) { return (Math.floor((px - 5)/MDW * 100 + 0.5))/100; }\nfunction char2width(chr) { return (Math.round((chr * MDW + 5)/MDW*256))/256; }\n//function px2char_(px) { return (((px - 5)/MDW * 100 + 0.5))/100; }\n//function char2width_(chr) { return (((chr * MDW + 5)/MDW*256))/256; }\nfunction cycle_width(collw) { return char2width(px2char(width2px(collw))); }\n/* XLSX/XLSB/XLS specify width in units of MDW */\nfunction find_mdw_colw(collw) {\n\tvar delta = Math.abs(collw - cycle_width(collw)), _MDW = MDW;\n\tif(delta > 0.005) for(MDW=MIN_MDW; MDW 0.5) guess--;\n\t\tif(Math.abs(guess) < delta) { delta = Math.abs(guess); _MDW = MDW; }\n\t}\n\tMDW = _MDW;\n}*/\n\nfunction process_col(coll/*:ColInfo*/) {\n\tif(coll.width) {\n\t\tcoll.wpx = width2px(coll.width);\n\t\tcoll.wch = px2char(coll.wpx);\n\t\tcoll.MDW = MDW;\n\t} else if(coll.wpx) {\n\t\tcoll.wch = px2char(coll.wpx);\n\t\tcoll.width = char2width(coll.wch);\n\t\tcoll.MDW = MDW;\n\t} else if(typeof coll.wch == 'number') {\n\t\tcoll.width = char2width(coll.wch);\n\t\tcoll.wpx = width2px(coll.width);\n\t\tcoll.MDW = MDW;\n\t}\n\tif(coll.customWidth) delete coll.customWidth;\n}\n\nvar DEF_PPI = 96, PPI = DEF_PPI;\nfunction px2pt(px) { return px * 96 / PPI; }\nfunction pt2px(pt) { return pt * PPI / 96; }\n\n/* [MS-EXSPXML3] 2.4.54 ST_enmPattern */\nvar XLMLPatternTypeMap = {\n\t\"None\": \"none\",\n\t\"Solid\": \"solid\",\n\t\"Gray50\": \"mediumGray\",\n\t\"Gray75\": \"darkGray\",\n\t\"Gray25\": \"lightGray\",\n\t\"HorzStripe\": \"darkHorizontal\",\n\t\"VertStripe\": \"darkVertical\",\n\t\"ReverseDiagStripe\": \"darkDown\",\n\t\"DiagStripe\": \"darkUp\",\n\t\"DiagCross\": \"darkGrid\",\n\t\"ThickDiagCross\": \"darkTrellis\",\n\t\"ThinHorzStripe\": \"lightHorizontal\",\n\t\"ThinVertStripe\": \"lightVertical\",\n\t\"ThinReverseDiagStripe\": \"lightDown\",\n\t\"ThinHorzCross\": \"lightGrid\"\n};\n\n/* 18.8.5 borders CT_Borders */\nfunction parse_borders(t, styles, themes, opts) {\n\tstyles.Borders = [];\n\tvar border = {};\n\tvar pass = false;\n\t(t[0].match(tagregex)||[]).forEach(function(x) {\n\t\tvar y = parsexmltag(x);\n\t\tswitch(strip_ns(y[0])) {\n\t\t\tcase '': case '': break;\n\n\t\t\t/* 18.8.4 border CT_Border */\n\t\t\tcase '': case '':\n\t\t\t\tborder = /*::(*/{}/*:: :any)*/;\n\t\t\t\tif(y.diagonalUp) border.diagonalUp = parsexmlbool(y.diagonalUp);\n\t\t\t\tif(y.diagonalDown) border.diagonalDown = parsexmlbool(y.diagonalDown);\n\t\t\t\tstyles.Borders.push(border);\n\t\t\t\tbreak;\n\t\t\tcase '': break;\n\n\t\t\t/* note: not in spec, appears to be CT_BorderPr */\n\t\t\tcase '': break;\n\t\t\tcase '': break;\n\t\t\tcase '': break;\n\n\t\t\t/* note: not in spec, appears to be CT_BorderPr */\n\t\t\tcase '': break;\n\t\t\tcase '': break;\n\t\t\tcase '': break;\n\n\t\t\t/* 18.8.43 top CT_BorderPr */\n\t\t\tcase '': break;\n\t\t\tcase '': break;\n\t\t\tcase '': break;\n\n\t\t\t/* 18.8.6 bottom CT_BorderPr */\n\t\t\tcase '': break;\n\t\t\tcase '': break;\n\t\t\tcase '': break;\n\n\t\t\t/* 18.8.13 diagonal CT_BorderPr */\n\t\t\tcase '': case '': break;\n\t\t\tcase '': break;\n\n\t\t\t/* 18.8.25 horizontal CT_BorderPr */\n\t\t\tcase '': case '': break;\n\t\t\tcase '': break;\n\n\t\t\t/* 18.8.44 vertical CT_BorderPr */\n\t\t\tcase '': case '': break;\n\t\t\tcase '': break;\n\n\t\t\t/* 18.8.37 start CT_BorderPr */\n\t\t\tcase '': case '': break;\n\t\t\tcase '': break;\n\n\t\t\t/* 18.8.16 end CT_BorderPr */\n\t\t\tcase '': case '': break;\n\t\t\tcase '': break;\n\n\t\t\t/* 18.8.? color CT_Color */\n\t\t\tcase '':\n\t\t\t\tbreak;\n\t\t\tcase '': case '': break;\n\n\t\t\t/* 18.2.10 extLst CT_ExtensionList ? */\n\t\t\tcase '': case '': break;\n\t\t\tcase '': pass = false; break;\n\t\t\tdefault: if(opts && opts.WTF) {\n\t\t\t\tif(!pass) throw new Error('unrecognized ' + y[0] + ' in borders');\n\t\t\t}\n\t\t}\n\t});\n}\n\n/* 18.8.21 fills CT_Fills */\nfunction parse_fills(t, styles, themes, opts) {\n\tstyles.Fills = [];\n\tvar fill = {};\n\tvar pass = false;\n\t(t[0].match(tagregex)||[]).forEach(function(x) {\n\t\tvar y = parsexmltag(x);\n\t\tswitch(strip_ns(y[0])) {\n\t\t\tcase '': case '': break;\n\n\t\t\t/* 18.8.20 fill CT_Fill */\n\t\t\tcase '': case '':\n\t\t\t\tfill = {}; styles.Fills.push(fill); break;\n\t\t\tcase '': break;\n\n\t\t\t/* 18.8.24 gradientFill CT_GradientFill */\n\t\t\tcase '': break;\n\t\t\tcase '': styles.Fills.push(fill); fill = {}; break;\n\n\t\t\t/* 18.8.32 patternFill CT_PatternFill */\n\t\t\tcase '':\n\t\t\t\tif(y.patternType) fill.patternType = y.patternType;\n\t\t\t\tbreak;\n\t\t\tcase '': case '': break;\n\n\t\t\t/* 18.8.3 bgColor CT_Color */\n\t\t\tcase '': case '': break;\n\n\t\t\t/* 18.8.19 fgColor CT_Color */\n\t\t\tcase '': case '': break;\n\n\t\t\t/* 18.8.38 stop CT_GradientStop */\n\t\t\tcase '': break;\n\t\t\tcase '': break;\n\n\t\t\t/* 18.8.? color CT_Color */\n\t\t\tcase '': break;\n\t\t\tcase '': break;\n\n\t\t\t/* 18.2.10 extLst CT_ExtensionList ? */\n\t\t\tcase '': case '': break;\n\t\t\tcase '': pass = false; break;\n\t\t\tdefault: if(opts && opts.WTF) {\n\t\t\t\tif(!pass) throw new Error('unrecognized ' + y[0] + ' in fills');\n\t\t\t}\n\t\t}\n\t});\n}\n\n/* 18.8.23 fonts CT_Fonts */\nfunction parse_fonts(t, styles, themes, opts) {\n\tstyles.Fonts = [];\n\tvar font = {};\n\tvar pass = false;\n\t(t[0].match(tagregex)||[]).forEach(function(x) {\n\t\tvar y = parsexmltag(x);\n\t\tswitch(strip_ns(y[0])) {\n\t\t\tcase '': case '': break;\n\n\t\t\t/* 18.8.22 font CT_Font */\n\t\t\tcase '': break;\n\t\t\tcase '': case '':\n\t\t\t\tstyles.Fonts.push(font);\n\t\t\t\tfont = {};\n\t\t\t\tbreak;\n\n\t\t\t/* 18.8.29 name CT_FontName */\n\t\t\tcase '': case '': break;\n\n\t\t\t/* 18.8.2 b CT_BooleanProperty */\n\t\t\tcase '': font.bold = 1; break;\n\n\t\t\t/* 18.8.26 i CT_BooleanProperty */\n\t\t\tcase '': font.italic = 1; break;\n\n\t\t\t/* 18.4.13 u CT_UnderlineProperty */\n\t\t\tcase '': font.underline = 1; break;\n\n\t\t\t/* 18.4.10 strike CT_BooleanProperty */\n\t\t\tcase '': font.strike = 1; break;\n\n\t\t\t/* 18.4.2 outline CT_BooleanProperty */\n\t\t\tcase '': font.outline = 1; break;\n\n\t\t\t/* 18.8.36 shadow CT_BooleanProperty */\n\t\t\tcase '': font.shadow = 1; break;\n\n\t\t\t/* 18.8.12 condense CT_BooleanProperty */\n\t\t\tcase '': font.condense = 1; break;\n\n\t\t\t/* 18.8.17 extend CT_BooleanProperty */\n\t\t\tcase '': font.extend = 1; break;\n\n\t\t\t/* 18.4.11 sz CT_FontSize */\n\t\t\tcase '': case '': break;\n\n\t\t\t/* 18.4.14 vertAlign CT_VerticalAlignFontProperty */\n\t\t\tcase '': case '': break;\n\n\t\t\t/* 18.8.18 family CT_FontFamily */\n\t\t\tcase '': case '': break;\n\n\t\t\t/* 18.8.35 scheme CT_FontScheme */\n\t\t\tcase '': case '': break;\n\n\t\t\t/* 18.4.1 charset CT_IntProperty */\n\t\t\tcase '': case '': break;\n\n\t\t\t/* note: sometimes mc:AlternateContent appears bare */\n\t\t\tcase '': pass = false; break;\n\n\t\t\t/* 18.2.10 extLst CT_ExtensionList ? */\n\t\t\tcase '': case '': break;\n\t\t\tcase '': pass = false; break;\n\t\t\tdefault: if(opts && opts.WTF) {\n\t\t\t\tif(!pass) throw new Error('unrecognized ' + y[0] + ' in fonts');\n\t\t\t}\n\t\t}\n\t});\n}\n\n/* 18.8.31 numFmts CT_NumFmts */\nfunction parse_numFmts(t, styles, opts) {\n\tstyles.NumberFmt = [];\n\tvar k/*Array*/ = (keys(table_fmt)/*:any*/);\n\tfor(var i=0; i < k.length; ++i) styles.NumberFmt[k[i]] = table_fmt[k[i]];\n\tvar m = t[0].match(tagregex);\n\tif(!m) return;\n\tfor(i=0; i < m.length; ++i) {\n\t\tvar y = parsexmltag(m[i]);\n\t\tswitch(strip_ns(y[0])) {\n\t\t\tcase '': case '': case '': break;\n\t\t\tcase '0) {\n\t\t\t\t\tif(j > 0x188) {\n\t\t\t\t\t\tfor(j = 0x188; j > 0x3c; --j) if(styles.NumberFmt[j] == null) break;\n\t\t\t\t\t\tstyles.NumberFmt[j] = f;\n\t\t\t\t\t}\n\t\t\t\t\tSSF__load(f,j);\n\t\t\t\t}\n\t\t\t} break;\n\t\t\tcase '': break;\n\t\t\tdefault: if(opts.WTF) throw new Error('unrecognized ' + y[0] + ' in numFmts');\n\t\t}\n\t}\n}\n\nfunction write_numFmts(NF/*:{[n:number|string]:string}*//*::, opts*/) {\n\tvar o = [\"\"];\n\t[[5,8],[23,26],[41,44],[/*63*/50,/*66],[164,*/392]].forEach(function(r) {\n\t\tfor(var i = r[0]; i <= r[1]; ++i) if(NF[i] != null) o[o.length] = (writextag('numFmt',null,{numFmtId:i,formatCode:escapexml(NF[i])}));\n\t});\n\tif(o.length === 1) return \"\";\n\to[o.length] = (\"\");\n\to[0] = writextag('numFmts', null, { count:o.length-2 }).replace(\"/>\", \">\");\n\treturn o.join(\"\");\n}\n\n/* 18.8.10 cellXfs CT_CellXfs */\nvar cellXF_uint = [ \"numFmtId\", \"fillId\", \"fontId\", \"borderId\", \"xfId\" ];\nvar cellXF_bool = [ \"applyAlignment\", \"applyBorder\", \"applyFill\", \"applyFont\", \"applyNumberFormat\", \"applyProtection\", \"pivotButton\", \"quotePrefix\" ];\nfunction parse_cellXfs(t, styles, opts) {\n\tstyles.CellXf = [];\n\tvar xf;\n\tvar pass = false;\n\t(t[0].match(tagregex)||[]).forEach(function(x) {\n\t\tvar y = parsexmltag(x), i = 0;\n\t\tswitch(strip_ns(y[0])) {\n\t\t\tcase '': case '': case '': break;\n\n\t\t\t/* 18.8.45 xf CT_Xf */\n\t\t\tcase '':\n\t\t\t\txf = y;\n\t\t\t\tdelete xf[0];\n\t\t\t\tfor(i = 0; i < cellXF_uint.length; ++i) if(xf[cellXF_uint[i]])\n\t\t\t\t\txf[cellXF_uint[i]] = parseInt(xf[cellXF_uint[i]], 10);\n\t\t\t\tfor(i = 0; i < cellXF_bool.length; ++i) if(xf[cellXF_bool[i]])\n\t\t\t\t\txf[cellXF_bool[i]] = parsexmlbool(xf[cellXF_bool[i]]);\n\t\t\t\tif(styles.NumberFmt && xf.numFmtId > 0x188) {\n\t\t\t\t\tfor(i = 0x188; i > 0x3c; --i) if(styles.NumberFmt[xf.numFmtId] == styles.NumberFmt[i]) { xf.numFmtId = i; break; }\n\t\t\t\t}\n\t\t\t\tstyles.CellXf.push(xf); break;\n\t\t\tcase '': break;\n\n\t\t\t/* 18.8.1 alignment CT_CellAlignment */\n\t\t\tcase '':\n\t\t\t\tvar alignment = {};\n\t\t\t\tif(y.vertical) alignment.vertical = y.vertical;\n\t\t\t\tif(y.horizontal) alignment.horizontal = y.horizontal;\n\t\t\t\tif(y.textRotation != null) alignment.textRotation = y.textRotation;\n\t\t\t\tif(y.indent) alignment.indent = y.indent;\n\t\t\t\tif(y.wrapText) alignment.wrapText = parsexmlbool(y.wrapText);\n\t\t\t\txf.alignment = alignment;\n\t\t\t\tbreak;\n\t\t\tcase '': break;\n\n\t\t\t/* 18.8.33 protection CT_CellProtection */\n\t\t\tcase '': case '': break;\n\n\t\t\t/* note: sometimes mc:AlternateContent appears bare */\n\t\t\tcase '': pass = false; break;\n\n\t\t\t/* 18.2.10 extLst CT_ExtensionList ? */\n\t\t\tcase '': case '': break;\n\t\t\tcase '': pass = false; break;\n\t\t\tdefault: if(opts && opts.WTF) {\n\t\t\t\tif(!pass) throw new Error('unrecognized ' + y[0] + ' in cellXfs');\n\t\t\t}\n\t\t}\n\t});\n}\n\nfunction write_cellXfs(cellXfs)/*:string*/ {\n\tvar o/*:Array*/ = [];\n\to[o.length] = (writextag('cellXfs',null));\n\tcellXfs.forEach(function(c) {\n\t\to[o.length] = (writextag('xf', null, c));\n\t});\n\to[o.length] = (\"\");\n\tif(o.length === 2) return \"\";\n\to[0] = writextag('cellXfs',null, {count:o.length-2}).replace(\"/>\",\">\");\n\treturn o.join(\"\");\n}\n\n/* 18.8 Styles CT_Stylesheet*/\nvar parse_sty_xml= /*#__PURE__*/(function make_pstyx() {\nvar numFmtRegex = /<(?:\\w+:)?numFmts([^>]*)>[\\S\\s]*?<\\/(?:\\w+:)?numFmts>/;\nvar cellXfRegex = /<(?:\\w+:)?cellXfs([^>]*)>[\\S\\s]*?<\\/(?:\\w+:)?cellXfs>/;\nvar fillsRegex = /<(?:\\w+:)?fills([^>]*)>[\\S\\s]*?<\\/(?:\\w+:)?fills>/;\nvar fontsRegex = /<(?:\\w+:)?fonts([^>]*)>[\\S\\s]*?<\\/(?:\\w+:)?fonts>/;\nvar bordersRegex = /<(?:\\w+:)?borders([^>]*)>[\\S\\s]*?<\\/(?:\\w+:)?borders>/;\n\nreturn function parse_sty_xml(data, themes, opts) {\n\tvar styles = {};\n\tif(!data) return styles;\n\tdata = data.replace(//mg,\"\").replace(//gm,\"\");\n\t/* 18.8.39 styleSheet CT_Stylesheet */\n\tvar t;\n\n\t/* 18.8.31 numFmts CT_NumFmts ? */\n\tif((t=data.match(numFmtRegex))) parse_numFmts(t, styles, opts);\n\n\t/* 18.8.23 fonts CT_Fonts ? */\n\tif((t=data.match(fontsRegex))) parse_fonts(t, styles, themes, opts);\n\n\t/* 18.8.21 fills CT_Fills ? */\n\tif((t=data.match(fillsRegex))) parse_fills(t, styles, themes, opts);\n\n\t/* 18.8.5 borders CT_Borders ? */\n\tif((t=data.match(bordersRegex))) parse_borders(t, styles, themes, opts);\n\n\t/* 18.8.9 cellStyleXfs CT_CellStyleXfs ? */\n\t/* 18.8.8 cellStyles CT_CellStyles ? */\n\n\t/* 18.8.10 cellXfs CT_CellXfs ? */\n\tif((t=data.match(cellXfRegex))) parse_cellXfs(t, styles, opts);\n\n\t/* 18.8.15 dxfs CT_Dxfs ? */\n\t/* 18.8.42 tableStyles CT_TableStyles ? */\n\t/* 18.8.11 colors CT_Colors ? */\n\t/* 18.2.10 extLst CT_ExtensionList ? */\n\n\treturn styles;\n};\n})();\n\nfunction write_sty_xml(wb/*:Workbook*/, opts)/*:string*/ {\n\tvar o = [XML_HEADER, writextag('styleSheet', null, {\n\t\t'xmlns': XMLNS_main[0],\n\t\t'xmlns:vt': XMLNS.vt\n\t})], w;\n\tif(wb.SSF && (w = write_numFmts(wb.SSF)) != null) o[o.length] = w;\n\to[o.length] = ('');\n\to[o.length] = ('');\n\to[o.length] = ('');\n\to[o.length] = ('');\n\tif((w = write_cellXfs(opts.cellXfs))) o[o.length] = (w);\n\to[o.length] = ('');\n\to[o.length] = ('');\n\to[o.length] = ('');\n\n\tif(o.length>2){ o[o.length] = (''); o[1]=o[1].replace(\"/>\",\">\"); }\n\treturn o.join(\"\");\n}\n/* [MS-XLSB] 2.4.657 BrtFmt */\nfunction parse_BrtFmt(data, length/*:number*/) {\n\tvar numFmtId = data.read_shift(2);\n\tvar stFmtCode = parse_XLWideString(data,length-2);\n\treturn [numFmtId, stFmtCode];\n}\nfunction write_BrtFmt(i/*:number*/, f/*:string*/, o) {\n\tif(!o) o = new_buf(6 + 4 * f.length);\n\to.write_shift(2, i);\n\twrite_XLWideString(f, o);\n\tvar out = (o.length > o.l) ? o.slice(0, o.l) : o;\n\tif(o.l == null) o.l = o.length;\n\treturn out;\n}\n\n/* [MS-XLSB] 2.4.659 BrtFont TODO */\nfunction parse_BrtFont(data, length/*:number*/, opts) {\n\tvar out = ({}/*:any*/);\n\n\tout.sz = data.read_shift(2) / 20;\n\n\tvar grbit = parse_FontFlags(data, 2, opts);\n\tif(grbit.fItalic) out.italic = 1;\n\tif(grbit.fCondense) out.condense = 1;\n\tif(grbit.fExtend) out.extend = 1;\n\tif(grbit.fShadow) out.shadow = 1;\n\tif(grbit.fOutline) out.outline = 1;\n\tif(grbit.fStrikeout) out.strike = 1;\n\n\tvar bls = data.read_shift(2);\n\tif(bls === 0x02BC) out.bold = 1;\n\n\tswitch(data.read_shift(2)) {\n\t\t/* case 0: out.vertAlign = \"baseline\"; break; */\n\t\tcase 1: out.vertAlign = \"superscript\"; break;\n\t\tcase 2: out.vertAlign = \"subscript\"; break;\n\t}\n\n\tvar underline = data.read_shift(1);\n\tif(underline != 0) out.underline = underline;\n\n\tvar family = data.read_shift(1);\n\tif(family > 0) out.family = family;\n\n\tvar bCharSet = data.read_shift(1);\n\tif(bCharSet > 0) out.charset = bCharSet;\n\n\tdata.l++;\n\tout.color = parse_BrtColor(data, 8);\n\n\tswitch(data.read_shift(1)) {\n\t\t/* case 0: out.scheme = \"none\": break; */\n\t\tcase 1: out.scheme = \"major\"; break;\n\t\tcase 2: out.scheme = \"minor\"; break;\n\t}\n\n\tout.name = parse_XLWideString(data, length - 21);\n\n\treturn out;\n}\nfunction write_BrtFont(font/*:any*/, o) {\n\tif(!o) o = new_buf(25+4*32);\n\to.write_shift(2, font.sz * 20);\n\twrite_FontFlags(font, o);\n\to.write_shift(2, font.bold ? 0x02BC : 0x0190);\n\tvar sss = 0;\n\tif(font.vertAlign == \"superscript\") sss = 1;\n\telse if(font.vertAlign == \"subscript\") sss = 2;\n\to.write_shift(2, sss);\n\to.write_shift(1, font.underline || 0);\n\to.write_shift(1, font.family || 0);\n\to.write_shift(1, font.charset || 0);\n\to.write_shift(1, 0);\n\twrite_BrtColor(font.color, o);\n\tvar scheme = 0;\n\tif(font.scheme == \"major\") scheme = 1;\n\tif(font.scheme == \"minor\") scheme = 2;\n\to.write_shift(1, scheme);\n\twrite_XLWideString(font.name, o);\n\treturn o.length > o.l ? o.slice(0, o.l) : o;\n}\n\n/* [MS-XLSB] 2.4.650 BrtFill */\nvar XLSBFillPTNames = [\n\t\"none\",\n\t\"solid\",\n\t\"mediumGray\",\n\t\"darkGray\",\n\t\"lightGray\",\n\t\"darkHorizontal\",\n\t\"darkVertical\",\n\t\"darkDown\",\n\t\"darkUp\",\n\t\"darkGrid\",\n\t\"darkTrellis\",\n\t\"lightHorizontal\",\n\t\"lightVertical\",\n\t\"lightDown\",\n\t\"lightUp\",\n\t\"lightGrid\",\n\t\"lightTrellis\",\n\t\"gray125\",\n\t\"gray0625\"\n];\nvar rev_XLSBFillPTNames/*:EvertNumType*/;\n/* TODO: gradient fill representation */\nvar parse_BrtFill = parsenoop;\nfunction write_BrtFill(fill, o) {\n\tif(!o) o = new_buf(4*3 + 8*7 + 16*1);\n\tif(!rev_XLSBFillPTNames) rev_XLSBFillPTNames = (evert(XLSBFillPTNames)/*:any*/);\n\tvar fls/*:number*/ = rev_XLSBFillPTNames[fill.patternType];\n\tif(fls == null) fls = 0x28;\n\to.write_shift(4, fls);\n\tvar j = 0;\n\tif(fls != 0x28) {\n\t\t/* TODO: custom FG Color */\n\t\twrite_BrtColor({auto:1}, o);\n\t\t/* TODO: custom BG Color */\n\t\twrite_BrtColor({auto:1}, o);\n\n\t\tfor(; j < 12; ++j) o.write_shift(4, 0);\n\t} else {\n\t\tfor(; j < 4; ++j) o.write_shift(4, 0);\n\n\t\tfor(; j < 12; ++j) o.write_shift(4, 0); /* TODO */\n\t\t/* iGradientType */\n\t\t/* xnumDegree */\n\t\t/* xnumFillToLeft */\n\t\t/* xnumFillToRight */\n\t\t/* xnumFillToTop */\n\t\t/* xnumFillToBottom */\n\t\t/* cNumStop */\n\t\t/* xfillGradientStop */\n\t}\n\treturn o.length > o.l ? o.slice(0, o.l) : o;\n}\n\n/* [MS-XLSB] 2.4.824 BrtXF */\nfunction parse_BrtXF(data, length/*:number*/) {\n\tvar tgt = data.l + length;\n\tvar ixfeParent = data.read_shift(2);\n\tvar ifmt = data.read_shift(2);\n\tdata.l = tgt;\n\treturn {ixfe:ixfeParent, numFmtId:ifmt };\n}\nfunction write_BrtXF(data, ixfeP, o) {\n\tif(!o) o = new_buf(16);\n\to.write_shift(2, ixfeP||0);\n\to.write_shift(2, data.numFmtId||0);\n\to.write_shift(2, 0); /* iFont */\n\to.write_shift(2, 0); /* iFill */\n\to.write_shift(2, 0); /* ixBorder */\n\to.write_shift(1, 0); /* trot */\n\to.write_shift(1, 0); /* indent */\n\tvar flow = 0;\n\to.write_shift(1, flow); /* flags */\n\to.write_shift(1, 0); /* flags */\n\to.write_shift(1, 0); /* xfGrbitAtr */\n\to.write_shift(1, 0);\n\treturn o;\n}\n\n/* [MS-XLSB] 2.5.4 Blxf TODO */\nfunction write_Blxf(data, o) {\n\tif(!o) o = new_buf(10);\n\to.write_shift(1, 0); /* dg */\n\to.write_shift(1, 0);\n\to.write_shift(4, 0); /* color */\n\to.write_shift(4, 0); /* color */\n\treturn o;\n}\n/* [MS-XLSB] 2.4.302 BrtBorder TODO */\nvar parse_BrtBorder = parsenoop;\nfunction write_BrtBorder(border, o) {\n\tif(!o) o = new_buf(51);\n\to.write_shift(1, 0); /* diagonal */\n\twrite_Blxf(null, o); /* top */\n\twrite_Blxf(null, o); /* bottom */\n\twrite_Blxf(null, o); /* left */\n\twrite_Blxf(null, o); /* right */\n\twrite_Blxf(null, o); /* diag */\n\treturn o.length > o.l ? o.slice(0, o.l) : o;\n}\n\n/* [MS-XLSB] 2.4.763 BrtStyle TODO */\nfunction write_BrtStyle(style, o) {\n\tif(!o) o = new_buf(12+4*10);\n\to.write_shift(4, style.xfId);\n\to.write_shift(2, 1);\n\to.write_shift(1, +style.builtinId);\n\to.write_shift(1, 0); /* iLevel */\n\twrite_XLNullableWideString(style.name || \"\", o);\n\treturn o.length > o.l ? o.slice(0, o.l) : o;\n}\n\n/* [MS-XLSB] 2.4.272 BrtBeginTableStyles */\nfunction write_BrtBeginTableStyles(cnt, defTableStyle, defPivotStyle) {\n\tvar o = new_buf(4+256*2*4);\n\to.write_shift(4, cnt);\n\twrite_XLNullableWideString(defTableStyle, o);\n\twrite_XLNullableWideString(defPivotStyle, o);\n\treturn o.length > o.l ? o.slice(0, o.l) : o;\n}\n\n/* [MS-XLSB] 2.1.7.50 Styles */\nfunction parse_sty_bin(data, themes, opts) {\n\tvar styles = {};\n\tstyles.NumberFmt = ([]/*:any*/);\n\tfor(var y in table_fmt) styles.NumberFmt[y] = table_fmt[y];\n\n\tstyles.CellXf = [];\n\tstyles.Fonts = [];\n\tvar state/*:Array*/ = [];\n\tvar pass = false;\n\trecordhopper(data, function hopper_sty(val, R, RT) {\n\t\tswitch(RT) {\n\t\t\tcase 0x002C: /* BrtFmt */\n\t\t\t\tstyles.NumberFmt[val[0]] = val[1]; SSF__load(val[1], val[0]);\n\t\t\t\tbreak;\n\t\t\tcase 0x002B: /* BrtFont */\n\t\t\t\tstyles.Fonts.push(val);\n\t\t\t\tif(val.color.theme != null && themes && themes.themeElements && themes.themeElements.clrScheme) {\n\t\t\t\t\tval.color.rgb = rgb_tint(themes.themeElements.clrScheme[val.color.theme].rgb, val.color.tint || 0);\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase 0x0401: /* BrtKnownFonts */ break;\n\t\t\tcase 0x002D: /* BrtFill */\n\t\t\t\tbreak;\n\t\t\tcase 0x002E: /* BrtBorder */\n\t\t\t\tbreak;\n\t\t\tcase 0x002F: /* BrtXF */\n\t\t\t\tif(state[state.length - 1] == 0x0269 /* BrtBeginCellXFs */) {\n\t\t\t\t\tstyles.CellXf.push(val);\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase 0x0030: /* BrtStyle */\n\t\t\tcase 0x01FB: /* BrtDXF */\n\t\t\tcase 0x023C: /* BrtMRUColor */\n\t\t\tcase 0x01DB: /* BrtIndexedColor */\n\t\t\t\tbreak;\n\n\t\t\tcase 0x0493: /* BrtDXF14 */\n\t\t\tcase 0x0836: /* BrtDXF15 */\n\t\t\tcase 0x046A: /* BrtSlicerStyleElement */\n\t\t\tcase 0x0200: /* BrtTableStyleElement */\n\t\t\tcase 0x082F: /* BrtTimelineStyleElement */\n\t\t\tcase 0x0C00: /* BrtUid */\n\t\t\t\tbreak;\n\n\t\t\tcase 0x0023: /* BrtFRTBegin */\n\t\t\t\tpass = true; break;\n\t\t\tcase 0x0024: /* BrtFRTEnd */\n\t\t\t\tpass = false; break;\n\t\t\tcase 0x0025: /* BrtACBegin */\n\t\t\t\tstate.push(RT); pass = true; break;\n\t\t\tcase 0x0026: /* BrtACEnd */\n\t\t\t\tstate.pop(); pass = false; break;\n\n\t\t\tdefault:\n\t\t\t\tif(R.T > 0) state.push(RT);\n\t\t\t\telse if(R.T < 0) state.pop();\n\t\t\t\telse if(!pass || (opts.WTF && state[state.length-1] != 0x0025 /* BrtACBegin */)) throw new Error(\"Unexpected record 0x\" + RT.toString(16));\n\t\t}\n\t});\n\treturn styles;\n}\n\nfunction write_FMTS_bin(ba, NF/*:?SSFTable*/) {\n\tif(!NF) return;\n\tvar cnt = 0;\n\t[[5,8],[23,26],[41,44],[/*63*/50,/*66],[164,*/392]].forEach(function(r) {\n\t\t/*:: if(!NF) return; */\n\t\tfor(var i = r[0]; i <= r[1]; ++i) if(NF[i] != null) ++cnt;\n\t});\n\n\tif(cnt == 0) return;\n\twrite_record(ba, 0x0267 /* BrtBeginFmts */, write_UInt32LE(cnt));\n\t[[5,8],[23,26],[41,44],[/*63*/50,/*66],[164,*/392]].forEach(function(r) {\n\t\t/*:: if(!NF) return; */\n\t\tfor(var i = r[0]; i <= r[1]; ++i) if(NF[i] != null) write_record(ba, 0x002C /* BrtFmt */, write_BrtFmt(i, NF[i]));\n\t});\n\twrite_record(ba, 0x0268 /* BrtEndFmts */);\n}\n\nfunction write_FONTS_bin(ba/*::, data*/) {\n\tvar cnt = 1;\n\n\tif(cnt == 0) return;\n\twrite_record(ba, 0x0263 /* BrtBeginFonts */, write_UInt32LE(cnt));\n\twrite_record(ba, 0x002B /* BrtFont */, write_BrtFont({\n\t\tsz:12,\n\t\tcolor: {theme:1},\n\t\tname: \"Calibri\",\n\t\tfamily: 2,\n\t\tscheme: \"minor\"\n\t}));\n\t/* 1*65491BrtFont [ACFONTS] */\n\twrite_record(ba, 0x0264 /* BrtEndFonts */);\n}\n\nfunction write_FILLS_bin(ba/*::, data*/) {\n\tvar cnt = 2;\n\n\tif(cnt == 0) return;\n\twrite_record(ba, 0x025B /* BrtBeginFills */, write_UInt32LE(cnt));\n\twrite_record(ba, 0x002D /* BrtFill */, write_BrtFill({patternType:\"none\"}));\n\twrite_record(ba, 0x002D /* BrtFill */, write_BrtFill({patternType:\"gray125\"}));\n\t/* 1*65431BrtFill */\n\twrite_record(ba, 0x025C /* BrtEndFills */);\n}\n\nfunction write_BORDERS_bin(ba/*::, data*/) {\n\tvar cnt = 1;\n\n\tif(cnt == 0) return;\n\twrite_record(ba, 0x0265 /* BrtBeginBorders */, write_UInt32LE(cnt));\n\twrite_record(ba, 0x002E /* BrtBorder */, write_BrtBorder({}));\n\t/* 1*65430BrtBorder */\n\twrite_record(ba, 0x0266 /* BrtEndBorders */);\n}\n\nfunction write_CELLSTYLEXFS_bin(ba/*::, data*/) {\n\tvar cnt = 1;\n\twrite_record(ba, 0x0272 /* BrtBeginCellStyleXFs */, write_UInt32LE(cnt));\n\twrite_record(ba, 0x002F /* BrtXF */, write_BrtXF({\n\t\tnumFmtId: 0,\n\t\tfontId: 0,\n\t\tfillId: 0,\n\t\tborderId: 0\n\t}, 0xFFFF));\n\t/* 1*65430(BrtXF *FRT) */\n\twrite_record(ba, 0x0273 /* BrtEndCellStyleXFs */);\n}\n\nfunction write_CELLXFS_bin(ba, data) {\n\twrite_record(ba, 0x0269 /* BrtBeginCellXFs */, write_UInt32LE(data.length));\n\tdata.forEach(function(c) { write_record(ba, 0x002F /* BrtXF */, write_BrtXF(c,0)); });\n\t/* 1*65430(BrtXF *FRT) */\n\twrite_record(ba, 0x026A /* BrtEndCellXFs */);\n}\n\nfunction write_STYLES_bin(ba/*::, data*/) {\n\tvar cnt = 1;\n\n\twrite_record(ba, 0x026B /* BrtBeginStyles */, write_UInt32LE(cnt));\n\twrite_record(ba, 0x0030 /* BrtStyle */, write_BrtStyle({\n\t\txfId:0,\n\t\tbuiltinId:0,\n\t\tname:\"Normal\"\n\t}));\n\t/* 1*65430(BrtStyle *FRT) */\n\twrite_record(ba, 0x026C /* BrtEndStyles */);\n}\n\nfunction write_DXFS_bin(ba/*::, data*/) {\n\tvar cnt = 0;\n\n\twrite_record(ba, 0x01F9 /* BrtBeginDXFs */, write_UInt32LE(cnt));\n\t/* *2147483647(BrtDXF *FRT) */\n\twrite_record(ba, 0x01FA /* BrtEndDXFs */);\n}\n\nfunction write_TABLESTYLES_bin(ba/*::, data*/) {\n\tvar cnt = 0;\n\n\twrite_record(ba, 0x01FC /* BrtBeginTableStyles */, write_BrtBeginTableStyles(cnt, \"TableStyleMedium9\", \"PivotStyleMedium4\"));\n\t/* *TABLESTYLE */\n\twrite_record(ba, 0x01FD /* BrtEndTableStyles */);\n}\n\nfunction write_COLORPALETTE_bin(/*::ba, data*/) {\n\treturn;\n\t/* BrtBeginColorPalette [INDEXEDCOLORS] [MRUCOLORS] BrtEndColorPalette */\n}\n\n/* [MS-XLSB] 2.1.7.50 Styles */\nfunction write_sty_bin(wb, opts) {\n\tvar ba = buf_array();\n\twrite_record(ba, 0x0116 /* BrtBeginStyleSheet */);\n\twrite_FMTS_bin(ba, wb.SSF);\n\twrite_FONTS_bin(ba, wb);\n\twrite_FILLS_bin(ba, wb);\n\twrite_BORDERS_bin(ba, wb);\n\twrite_CELLSTYLEXFS_bin(ba, wb);\n\twrite_CELLXFS_bin(ba, opts.cellXfs);\n\twrite_STYLES_bin(ba, wb);\n\twrite_DXFS_bin(ba, wb);\n\twrite_TABLESTYLES_bin(ba, wb);\n\twrite_COLORPALETTE_bin(ba, wb);\n\t/* FRTSTYLESHEET*/\n\twrite_record(ba, 0x0117 /* BrtEndStyleSheet */);\n\treturn ba.end();\n}\n/* Even though theme layout is dk1 lt1 dk2 lt2, true order is lt1 dk1 lt2 dk2 */\nvar XLSXThemeClrScheme = [\n\t'', '', '', '',\n\t'', '', '',\n\t'', '', '',\n\t'', ''\n];\n/* 20.1.6.2 clrScheme CT_ColorScheme */\nfunction parse_clrScheme(t, themes, opts) {\n\tthemes.themeElements.clrScheme = [];\n\tvar color = {};\n\t(t[0].match(tagregex)||[]).forEach(function(x) {\n\t\tvar y = parsexmltag(x);\n\t\tswitch(y[0]) {\n\t\t\t/* 20.1.6.2 clrScheme (Color Scheme) CT_ColorScheme */\n\t\t\tcase '': break;\n\n\t\t\t/* 20.1.2.3.32 srgbClr CT_SRgbColor */\n\t\t\tcase '': case '':\n\t\t\tcase '': case '':\n\t\t\tcase '': case '':\n\t\t\tcase '': case '':\n\t\t\tcase '': case '':\n\t\t\tcase '': case '':\n\t\t\tcase '': case '':\n\t\t\tcase '': case '':\n\t\t\tcase '': case '':\n\t\t\tcase '': case '':\n\t\t\tcase '': case '':\n\t\t\tcase '': case '':\n\t\t\t\tif (y[0].charAt(1) === '/') {\n\t\t\t\t\tthemes.themeElements.clrScheme[XLSXThemeClrScheme.indexOf(y[0])] = color;\n\t\t\t\t\tcolor = {};\n\t\t\t\t} else {\n\t\t\t\t\tcolor.name = y[0].slice(3, y[0].length - 1);\n\t\t\t\t}\n\t\t\t\tbreak;\n\n\t\t\tdefault: if(opts && opts.WTF) throw new Error('Unrecognized ' + y[0] + ' in clrScheme');\n\t\t}\n\t});\n}\n\n/* 20.1.4.1.18 fontScheme CT_FontScheme */\nfunction parse_fontScheme(/*::t, themes, opts*/) { }\n\n/* 20.1.4.1.15 fmtScheme CT_StyleMatrix */\nfunction parse_fmtScheme(/*::t, themes, opts*/) { }\n\nvar clrsregex = /]*)>[\\s\\S]*<\\/a:clrScheme>/;\nvar fntsregex = /]*)>[\\s\\S]*<\\/a:fontScheme>/;\nvar fmtsregex = /]*)>[\\s\\S]*<\\/a:fmtScheme>/;\n\n/* 20.1.6.10 themeElements CT_BaseStyles */\nfunction parse_themeElements(data, themes, opts) {\n\tthemes.themeElements = {};\n\n\tvar t;\n\n\t[\n\t\t/* clrScheme CT_ColorScheme */\n\t\t['clrScheme', clrsregex, parse_clrScheme],\n\t\t/* fontScheme CT_FontScheme */\n\t\t['fontScheme', fntsregex, parse_fontScheme],\n\t\t/* fmtScheme CT_StyleMatrix */\n\t\t['fmtScheme', fmtsregex, parse_fmtScheme]\n\t].forEach(function(m) {\n\t\tif(!(t=data.match(m[1]))) throw new Error(m[0] + ' not found in themeElements');\n\t\tm[2](t, themes, opts);\n\t});\n}\n\nvar themeltregex = /]*)>[\\s\\S]*<\\/a:themeElements>/;\n\n/* 14.2.7 Theme Part */\nfunction parse_theme_xml(data/*:string*/, opts) {\n\t/* 20.1.6.9 theme CT_OfficeStyleSheet */\n\tif(!data || data.length === 0) data = write_theme();\n\n\tvar t;\n\tvar themes = {};\n\n\t/* themeElements CT_BaseStyles */\n\tif(!(t=data.match(themeltregex))) throw new Error('themeElements not found in theme');\n\tparse_themeElements(t[0], themes, opts);\n\tthemes.raw = data;\n\treturn themes;\n}\n\nfunction write_theme(Themes, opts)/*:string*/ {\n\tif(opts && opts.themeXLSX) return opts.themeXLSX;\n\tif(Themes && typeof Themes.raw == \"string\") return Themes.raw;\n\tvar o = [XML_HEADER];\n\to[o.length] = '';\n\to[o.length] = '';\n\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\treturn o.join(\"\");\n}\n/* [MS-XLS] 2.4.326 TODO: payload is a zip file */\nfunction parse_Theme(blob, length, opts) {\n\tvar end = blob.l + length;\n\tvar dwThemeVersion = blob.read_shift(4);\n\tif(dwThemeVersion === 124226) return;\n\tif(!opts.cellStyles) { blob.l = end; return; }\n\tvar data = blob.slice(blob.l);\n\tblob.l = end;\n\tvar zip; try { zip = zip_read(data, {type: \"array\"}); } catch(e) { return; }\n\tvar themeXML = getzipstr(zip, \"theme/theme/theme1.xml\", true);\n\tif(!themeXML) return;\n\treturn parse_theme_xml(themeXML, opts);\n}\n\n/* 2.5.49 */\nfunction parse_ColorTheme(blob/*::, length*/) { return blob.read_shift(4); }\n\n/* 2.5.155 */\nfunction parse_FullColorExt(blob/*::, length*/) {\n\tvar o = {};\n\to.xclrType = blob.read_shift(2);\n\to.nTintShade = blob.read_shift(2);\n\tswitch(o.xclrType) {\n\t\tcase 0: blob.l += 4; break;\n\t\tcase 1: o.xclrValue = parse_IcvXF(blob, 4); break;\n\t\tcase 2: o.xclrValue = parse_LongRGBA(blob, 4); break;\n\t\tcase 3: o.xclrValue = parse_ColorTheme(blob, 4); break;\n\t\tcase 4: blob.l += 4; break;\n\t}\n\tblob.l += 8;\n\treturn o;\n}\n\n/* 2.5.164 TODO: read 7 bits*/\nfunction parse_IcvXF(blob, length) {\n\treturn parsenoop(blob, length);\n}\n\n/* 2.5.280 */\nfunction parse_XFExtGradient(blob, length) {\n\treturn parsenoop(blob, length);\n}\n\n/* [MS-XLS] 2.5.108 */\nfunction parse_ExtProp(blob/*::, length*/)/*:Array*/ {\n\tvar extType = blob.read_shift(2);\n\tvar cb = blob.read_shift(2) - 4;\n\tvar o = [extType];\n\tswitch(extType) {\n\t\tcase 0x04: case 0x05: case 0x07: case 0x08:\n\t\tcase 0x09: case 0x0A: case 0x0B: case 0x0D:\n\t\t\to[1] = parse_FullColorExt(blob, cb); break;\n\t\tcase 0x06: o[1] = parse_XFExtGradient(blob, cb); break;\n\t\tcase 0x0E: case 0x0F: o[1] = blob.read_shift(cb === 1 ? 1 : 2); break;\n\t\tdefault: throw new Error(\"Unrecognized ExtProp type: \" + extType + \" \" + cb);\n\t}\n\treturn o;\n}\n\n/* 2.4.355 */\nfunction parse_XFExt(blob, length) {\n\tvar end = blob.l + length;\n\tblob.l += 2;\n\tvar ixfe = blob.read_shift(2);\n\tblob.l += 2;\n\tvar cexts = blob.read_shift(2);\n\tvar ext/*:AOA*/ = [];\n\twhile(cexts-- > 0) ext.push(parse_ExtProp(blob, end-blob.l));\n\treturn {ixfe:ixfe, ext:ext};\n}\n\n/* xf is an XF, see parse_XFExt for xfext */\nfunction update_xfext(xf, xfext) {\n\txfext.forEach(function(xfe) {\n\t\tswitch(xfe[0]) { /* 2.5.108 extPropData */\n\t\t\tcase 0x04: break; /* foreground color */\n\t\t\tcase 0x05: break; /* background color */\n\t\t\tcase 0x06: break; /* gradient fill */\n\t\t\tcase 0x07: break; /* top cell border color */\n\t\t\tcase 0x08: break; /* bottom cell border color */\n\t\t\tcase 0x09: break; /* left cell border color */\n\t\t\tcase 0x0a: break; /* right cell border color */\n\t\t\tcase 0x0b: break; /* diagonal cell border color */\n\t\t\tcase 0x0d: /* text color */\n\t\t\t\tbreak;\n\t\t\tcase 0x0e: break; /* font scheme */\n\t\t\tcase 0x0f: break; /* indentation level */\n\t\t}\n\t});\n}\n\nfunction parse_BrtMdtinfo(data, length) {\n return {\n flags: data.read_shift(4),\n version: data.read_shift(4),\n name: parse_XLWideString(data, length - 8)\n };\n}\nfunction write_BrtMdtinfo(data) {\n var o = new_buf(12 + 2 * data.name.length);\n o.write_shift(4, data.flags);\n o.write_shift(4, data.version);\n write_XLWideString(data.name, o);\n return o.slice(0, o.l);\n}\nfunction parse_BrtMdb(data) {\n var out = [];\n var cnt = data.read_shift(4);\n while (cnt-- > 0)\n out.push([data.read_shift(4), data.read_shift(4)]);\n return out;\n}\nfunction write_BrtMdb(mdb) {\n var o = new_buf(4 + 8 * mdb.length);\n o.write_shift(4, mdb.length);\n for (var i = 0; i < mdb.length; ++i) {\n o.write_shift(4, mdb[i][0]);\n o.write_shift(4, mdb[i][1]);\n }\n return o;\n}\nfunction write_BrtBeginEsfmd(cnt, name) {\n var o = new_buf(8 + 2 * name.length);\n o.write_shift(4, cnt);\n write_XLWideString(name, o);\n return o.slice(0, o.l);\n}\nfunction parse_BrtBeginEsmdb(data) {\n data.l += 4;\n return data.read_shift(4) != 0;\n}\nfunction write_BrtBeginEsmdb(cnt, cm) {\n var o = new_buf(8);\n o.write_shift(4, cnt);\n o.write_shift(4, cm ? 1 : 0);\n return o;\n}\nfunction parse_xlmeta_bin(data, name, _opts) {\n var out = { Types: [], Cell: [], Value: [] };\n var opts = _opts || {};\n var state = [];\n var pass = false;\n var metatype = 2;\n recordhopper(data, function(val, R, RT) {\n switch (RT) {\n case 335:\n out.Types.push({ name: val.name });\n break;\n case 51:\n val.forEach(function(r) {\n if (metatype == 1)\n out.Cell.push({ type: out.Types[r[0] - 1].name, index: r[1] });\n else if (metatype == 0)\n out.Value.push({ type: out.Types[r[0] - 1].name, index: r[1] });\n });\n break;\n case 337:\n metatype = val ? 1 : 0;\n break;\n case 338:\n metatype = 2;\n break;\n case 35:\n state.push(RT);\n pass = true;\n break;\n case 36:\n state.pop();\n pass = false;\n break;\n default:\n if (R.T) {\n } else if (!pass || opts.WTF && state[state.length - 1] != 35)\n throw new Error(\"Unexpected record 0x\" + RT.toString(16));\n }\n });\n return out;\n}\nfunction write_xlmeta_bin() {\n var ba = buf_array();\n write_record(ba, 332);\n write_record(ba, 334, write_UInt32LE(1));\n write_record(ba, 335, write_BrtMdtinfo({\n name: \"XLDAPR\",\n version: 12e4,\n flags: 3496657072\n }));\n write_record(ba, 336);\n write_record(ba, 339, write_BrtBeginEsfmd(1, \"XLDAPR\"));\n write_record(ba, 52);\n write_record(ba, 35, write_UInt32LE(514));\n write_record(ba, 4096, write_UInt32LE(0));\n write_record(ba, 4097, writeuint16(1));\n write_record(ba, 36);\n write_record(ba, 53);\n write_record(ba, 340);\n write_record(ba, 337, write_BrtBeginEsmdb(1, true));\n write_record(ba, 51, write_BrtMdb([[1, 0]]));\n write_record(ba, 338);\n write_record(ba, 333);\n return ba.end();\n}\nfunction parse_xlmeta_xml(data, name, opts) {\n var out = { Types: [], Cell: [], Value: [] };\n if (!data)\n return out;\n var pass = false;\n var metatype = 2;\n var lastmeta;\n data.replace(tagregex, function(x) {\n var y = parsexmltag(x);\n switch (strip_ns(y[0])) {\n case \"\":\n break;\n case \"\":\n break;\n case \"\":\n break;\n case \"\":\n break;\n case \"\":\n break;\n case \"\":\n break;\n case \"\":\n break;\n case \"\":\n metatype = 2;\n break;\n case \"\":\n metatype = 2;\n break;\n case \"\":\n case \"\":\n case \"\":\n break;\n case \"\":\n pass = false;\n break;\n case \"\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n');\n return o.join(\"\");\n}\n/* 18.6 Calculation Chain */\nfunction parse_cc_xml(data/*::, name, opts*/)/*:Array*/ {\n\tvar d = [];\n\tif(!data) return d;\n\tvar i = 1;\n\t(data.match(tagregex)||[]).forEach(function(x) {\n\t\tvar y = parsexmltag(x);\n\t\tswitch(y[0]) {\n\t\t\tcase '': case '': break;\n\t\t\t/* 18.6.1 c CT_CalcCell 1 */\n\t\t\tcase ']*r:id=\"([^\"]*)\"/)||[\"\",\"\"])[1];\n\n\treturn rels['!id'][id].Target;\n}\n\n/* L.5.5.2 SpreadsheetML Comments + VML Schema */\nfunction write_vml(rId/*:number*/, comments) {\n\tvar csize = [21600, 21600];\n\t/* L.5.2.1.2 Path Attribute */\n\tvar bbox = [\"m0,0l0\",csize[1],csize[0],csize[1],csize[0],\"0xe\"].join(\",\");\n\tvar o = [\n\t\twritextag(\"xml\", null, { 'xmlns:v': XLMLNS.v, 'xmlns:o': XLMLNS.o, 'xmlns:x': XLMLNS.x, 'xmlns:mv': XLMLNS.mv }).replace(/\\/>/,\">\"),\n\t\twritextag(\"o:shapelayout\", writextag(\"o:idmap\", null, {'v:ext':\"edit\", 'data':rId}), {'v:ext':\"edit\"})\n\t];\n\n\tvar _shapeid = 65536 * rId;\n\n\tvar _comments = comments || [];\n\tif(_comments.length > 0) o.push(writextag(\"v:shapetype\", [\n\t\twritextag(\"v:stroke\", null, {joinstyle:\"miter\"}),\n\t\twritextag(\"v:path\", null, {gradientshapeok:\"t\", 'o:connecttype':\"rect\"})\n\t].join(\"\"), {id:\"_x0000_t202\", coordsize:csize.join(\",\"), 'o:spt':202, path:bbox}));\n\n\t_comments.forEach(function(x) { ++_shapeid; o.push(write_vml_comment(x, _shapeid)); });\n\to.push('');\n\treturn o.join(\"\");\n}\n\nfunction write_vml_comment(x, _shapeid)/*:string*/ {\n\tvar c = decode_cell(x[0]);\n\tvar fillopts = /*::(*/{'color2':\"#BEFF82\", 'type':\"gradient\"}/*:: :any)*/;\n\tif(fillopts.type == \"gradient\") fillopts.angle = \"-180\";\n\tvar fillparm = fillopts.type == \"gradient\" ? writextag(\"o:fill\", null, {type:\"gradientUnscaled\", 'v:ext':\"view\"}) : null;\n\tvar fillxml = writextag('v:fill', fillparm, fillopts);\n\n\tvar shadata = ({on:\"t\", 'obscured':\"t\"}/*:any*/);\n\n\treturn [\n\t'',\n\t\tfillxml,\n\t\twritextag(\"v:shadow\", null, shadata),\n\t\twritextag(\"v:path\", null, {'o:connecttype':\"none\"}),\n\t\t'
',\n\t\t'',\n\t\t\t'',\n\t\t\t'',\n\t\t\t/* Part 4 19.4.2.3 Anchor (Anchor) */\n\t\t\twritetag('x:Anchor', [c.c+1, 0, c.r+1, 0, c.c+3, 20, c.r+5, 20].join(\",\")),\n\t\t\twritetag('x:AutoFill', \"False\"),\n\t\t\twritetag('x:Row', String(c.r)),\n\t\t\twritetag('x:Column', String(c.c)),\n\t\t\tx[1].hidden ? '' : '',\n\t\t'',\n\t''\n\t].join(\"\");\n}\nfunction sheet_insert_comments(sheet/*:WorkSheet*/, comments/*:Array*/, threaded/*:boolean*/, people/*:?Array*/) {\n\tvar dense = sheet[\"!data\"] != null;\n\tvar cell/*:Cell*/;\n\tcomments.forEach(function(comment) {\n\t\tvar r = decode_cell(comment.ref);\n\t\tif(r.r < 0 || r.c < 0) return;\n\t\tif(dense) {\n\t\t\tif(!sheet[\"!data\"][r.r]) sheet[\"!data\"][r.r] = [];\n\t\t\tcell = sheet[\"!data\"][r.r][r.c];\n\t\t} else cell = sheet[comment.ref];\n\t\tif (!cell) {\n\t\t\tcell = ({t:\"z\"}/*:any*/);\n\t\t\tif(dense) sheet[\"!data\"][r.r][r.c] = cell;\n\t\t\telse sheet[comment.ref] = cell;\n\t\t\tvar range = safe_decode_range(sheet[\"!ref\"]||\"BDWGO1000001:A1\");\n\t\t\tif(range.s.r > r.r) range.s.r = r.r;\n\t\t\tif(range.e.r < r.r) range.e.r = r.r;\n\t\t\tif(range.s.c > r.c) range.s.c = r.c;\n\t\t\tif(range.e.c < r.c) range.e.c = r.c;\n\t\t\tvar encoded = encode_range(range);\n\t\t\tsheet[\"!ref\"] = encoded;\n\t\t}\n\n\t\tif (!cell.c) cell.c = [];\n\t\tvar o/*:Comment*/ = ({a: comment.author, t: comment.t, r: comment.r, T: threaded});\n\t\tif(comment.h) o.h = comment.h;\n\n\t\t/* threaded comments always override */\n\t\tfor(var i = cell.c.length - 1; i >= 0; --i) {\n\t\t\tif(!threaded && cell.c[i].T) return;\n\t\t\tif(threaded && !cell.c[i].T) cell.c.splice(i, 1);\n\t\t}\n\t\tif(threaded && people) for(i = 0; i < people.length; ++i) {\n\t\t\tif(o.a == people[i].id) { o.a = people[i].name || o.a; break; }\n\t\t}\n\t\tcell.c.push(o);\n\t});\n}\n/* 18.7 Comments */\nfunction parse_comments_xml(data/*:string*/, opts)/*:Array*/ {\n\t/* 18.7.6 CT_Comments */\n\tif(data.match(/<(?:\\w+:)?comments *\\/>/)) return [];\n\tvar authors/*:Array*/ = [];\n\tvar commentList/*:Array*/ = [];\n\tvar authtag = data.match(/<(?:\\w+:)?authors>([\\s\\S]*)<\\/(?:\\w+:)?authors>/);\n\tif(authtag && authtag[1]) authtag[1].split(/<\\/\\w*:?author>/).forEach(function(x) {\n\t\tif(x === \"\" || x.trim() === \"\") return;\n\t\tvar a = x.match(/<(?:\\w+:)?author[^>]*>(.*)/);\n\t\tif(a) authors.push(a[1]);\n\t});\n\tvar cmnttag = data.match(/<(?:\\w+:)?commentList>([\\s\\S]*)<\\/(?:\\w+:)?commentList>/);\n\tif(cmnttag && cmnttag[1]) cmnttag[1].split(/<\\/\\w*:?comment>/).forEach(function(x) {\n\t\tif(x === \"\" || x.trim() === \"\") return;\n\t\tvar cm = x.match(/<(?:\\w+:)?comment[^>]*>/);\n\t\tif(!cm) return;\n\t\tvar y = parsexmltag(cm[0]);\n\t\tvar comment/*:RawComment*/ = ({ author: y.authorId && authors[y.authorId] || \"sheetjsghost\", ref: y.ref, guid: y.guid }/*:any*/);\n\t\tvar cell = decode_cell(y.ref);\n\t\tif(opts.sheetRows && opts.sheetRows <= cell.r) return;\n\t\tvar textMatch = x.match(/<(?:\\w+:)?text>([\\s\\S]*)<\\/(?:\\w+:)?text>/);\n\t\tvar rt = !!textMatch && !!textMatch[1] && parse_si(textMatch[1]) || {r:\"\",t:\"\",h:\"\"};\n\t\tcomment.r = rt.r;\n\t\tif(rt.r == \"\") rt.t = rt.h = \"\";\n\t\tcomment.t = (rt.t||\"\").replace(/\\r\\n/g,\"\\n\").replace(/\\r/g,\"\\n\");\n\t\tif(opts.cellHTML) comment.h = rt.h;\n\t\tcommentList.push(comment);\n\t});\n\treturn commentList;\n}\n\nfunction write_comments_xml(data/*::, opts*/) {\n\tvar o = [XML_HEADER, writextag('comments', null, { 'xmlns': XMLNS_main[0] })];\n\n\tvar iauthor/*:Array*/ = [];\n\to.push(\"\");\n\tdata.forEach(function(x) { x[1].forEach(function(w) { var a = escapexml(w.a);\n\t\tif(iauthor.indexOf(a) == -1) {\n\t\t\tiauthor.push(a);\n\t\t\to.push(\"\" + a + \"\");\n\t\t}\n\t\tif(w.T && w.ID && iauthor.indexOf(\"tc=\" + w.ID) == -1) {\n\t\t\tiauthor.push(\"tc=\" + w.ID);\n\t\t\to.push(\"\" + \"tc=\" + w.ID + \"\");\n\t\t}\n\t}); });\n\tif(iauthor.length == 0) { iauthor.push(\"SheetJ5\"); o.push(\"SheetJ5\"); }\n\to.push(\"\");\n\to.push(\"\");\n\tdata.forEach(function(d) {\n\t\t/* 18.7.3 CT_Comment */\n\t\tvar lastauthor = 0, ts = [], tcnt = 0;\n\t\tif(d[1][0] && d[1][0].T && d[1][0].ID) lastauthor = iauthor.indexOf(\"tc=\" + d[1][0].ID);\n\t\td[1].forEach(function(c) {\n\t\t\tif(c.a) lastauthor = iauthor.indexOf(escapexml(c.a));\n\t\t\tif(c.T) ++tcnt;\n\t\t\tts.push(c.t == null ? \"\" : escapexml(c.t));\n\t\t});\n\t\tif(tcnt === 0) {\n\t\t\td[1].forEach(function(c) {\n\t\t\t\to.push('');\n\t\t\t\to.push(writetag(\"t\", c.t == null ? \"\" : escapexml(c.t)));\n\t\t\t\to.push('');\n\t\t\t});\n\t\t} else {\n\t\t\t/* based on Threaded Comments -> Comments projection */\n\t\t\to.push('');\n\t\t\tvar t = \"Comment:\\n \" + (ts[0]) + \"\\n\";\n\t\t\tfor(var i = 1; i < ts.length; ++i) t += \"Reply:\\n \" + ts[i] + \"\\n\";\n\t\t\to.push(writetag(\"t\", escapexml(t)));\n\t\t\to.push('');\n\t\t}\n\t});\n\to.push(\"\");\n\tif(o.length>2) { o[o.length] = (''); o[1]=o[1].replace(\"/>\",\">\"); }\n\treturn o.join(\"\");\n}\n\n/* [MS-XLSX] 2.1.17 */\nfunction parse_tcmnt_xml(data/*:string*/, opts)/*:Array*/ {\n\tvar out = [];\n\tvar pass = false, comment = {}, tidx = 0;\n\tdata.replace(tagregex, function xml_tcmnt(x, idx) {\n\t\tvar y/*:any*/ = parsexmltag(x);\n\t\tswitch(strip_ns(y[0])) {\n\t\t\tcase '': break;\n\n\t\t\t/* 2.6.205 threadedComment CT_ThreadedComment */\n\t\t\tcase '': if(comment.t != null) out.push(comment); break;\n\n\t\t\tcase '': case '': comment.t = data.slice(tidx, idx).replace(/\\r\\n/g, \"\\n\").replace(/\\r/g, \"\\n\"); break;\n\n\t\t\t/* 2.6.206 mentions CT_ThreadedCommentMentions TODO */\n\t\t\tcase '': pass = true; break;\n\t\t\tcase '': pass = false; break;\n\n\t\t\t/* 2.6.202 mention CT_Mention TODO */\n\n\t\t\t/* 18.2.10 extLst CT_ExtensionList ? */\n\t\t\tcase '': case '
': case '': break;\n\t\t\t/* 18.2.7 ext CT_Extension + */\n\t\t\tcase '': pass=false; break;\n\n\t\t\tdefault: if(!pass && opts.WTF) throw new Error('unrecognized ' + y[0] + ' in threaded comments');\n\t\t}\n\t\treturn x;\n\t});\n\treturn out;\n}\n\nfunction write_tcmnt_xml(comments, people, opts) {\n\tvar o = [XML_HEADER, writextag('ThreadedComments', null, { 'xmlns': XMLNS.TCMNT }).replace(/[\\/]>/, \">\")];\n\tcomments.forEach(function(carr) {\n\t\tvar rootid = \"\";\n\t\t(carr[1] || []).forEach(function(c, idx) {\n\t\t\tif(!c.T) { delete c.ID; return; }\n\t\t\tif(c.a && people.indexOf(c.a) == -1) people.push(c.a);\n\t\t\tvar tcopts = {\n\t\t\t\tref: carr[0],\n\t\t\t\tid: \"{54EE7951-7262-4200-6969-\" + (\"000000000000\" + opts.tcid++).slice(-12) + \"}\"\n\t\t\t};\n\t\t\tif(idx == 0) rootid = tcopts.id;\n\t\t\telse tcopts.parentId = rootid;\n\t\t\tc.ID = tcopts.id;\n\t\t\tif(c.a) tcopts.personId = \"{54EE7950-7262-4200-6969-\" + (\"000000000000\" + people.indexOf(c.a)).slice(-12) + \"}\";\n\t\t\to.push(writextag('threadedComment', writetag('text', c.t||\"\"), tcopts));\n\t\t});\n\t});\n\to.push('');\n\treturn o.join(\"\");\n}\n\n/* [MS-XLSX] 2.1.18 */\nfunction parse_people_xml(data/*:string*/, opts) {\n\tvar out = [];\n\tvar pass = false;\n\tdata.replace(tagregex, function xml_tcmnt(x) {\n\t\tvar y/*:any*/ = parsexmltag(x);\n\t\tswitch(strip_ns(y[0])) {\n\t\t\tcase '': break;\n\n\t\t\t/* 2.6.203 person CT_Person TODO: providers */\n\t\t\tcase '': break;\n\n\t\t\t/* 18.2.10 extLst CT_ExtensionList ? */\n\t\t\tcase '': case '': case '': break;\n\t\t\t/* 18.2.7 ext CT_Extension + */\n\t\t\tcase '': pass=false; break;\n\n\t\t\tdefault: if(!pass && opts.WTF) throw new Error('unrecognized ' + y[0] + ' in threaded comments');\n\t\t}\n\t\treturn x;\n\t});\n\treturn out;\n}\nfunction write_people_xml(people/*, opts*/) {\n\tvar o = [XML_HEADER, writextag('personList', null, {\n\t\t'xmlns': XMLNS.TCMNT,\n\t\t'xmlns:x': XMLNS_main[0]\n\t}).replace(/[\\/]>/, \">\")];\n\tpeople.forEach(function(person, idx) {\n\t\to.push(writextag('person', null, {\n\t\t\tdisplayName: person,\n\t\t\tid: \"{54EE7950-7262-4200-6969-\" + (\"000000000000\" + idx).slice(-12) + \"}\",\n\t\t\tuserId: person,\n\t\t\tproviderId: \"None\"\n\t\t}));\n\t});\n\to.push(\"\");\n\treturn o.join(\"\");\n}\n/* [MS-XLSB] 2.4.28 BrtBeginComment */\nfunction parse_BrtBeginComment(data) {\n\tvar out = {};\n\tout.iauthor = data.read_shift(4);\n\tvar rfx = parse_UncheckedRfX(data, 16);\n\tout.rfx = rfx.s;\n\tout.ref = encode_cell(rfx.s);\n\tdata.l += 16; /*var guid = parse_GUID(data); */\n\treturn out;\n}\nfunction write_BrtBeginComment(data, o) {\n\tif(o == null) o = new_buf(36);\n\to.write_shift(4, data[1].iauthor);\n\twrite_UncheckedRfX((data[0]/*:any*/), o);\n\to.write_shift(4, 0);\n\to.write_shift(4, 0);\n\to.write_shift(4, 0);\n\to.write_shift(4, 0);\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.327 BrtCommentAuthor */\nvar parse_BrtCommentAuthor = parse_XLWideString;\nfunction write_BrtCommentAuthor(data) { return write_XLWideString(data.slice(0, 54)); }\n\n/* [MS-XLSB] 2.1.7.8 Comments */\nfunction parse_comments_bin(data, opts)/*:Array*/ {\n\tvar out/*:Array*/ = [];\n\tvar authors/*:Array*/ = [];\n\tvar c = {};\n\tvar pass = false;\n\trecordhopper(data, function hopper_cmnt(val, R, RT) {\n\t\tswitch(RT) {\n\t\t\tcase 0x0278: /* 'BrtCommentAuthor' */\n\t\t\t\tauthors.push(val); break;\n\t\t\tcase 0x027B: /* 'BrtBeginComment' */\n\t\t\t\tc = val; break;\n\t\t\tcase 0x027D: /* 'BrtCommentText' */\n\t\t\t\tc.t = val.t; c.h = val.h; c.r = val.r; break;\n\t\t\tcase 0x027C: /* 'BrtEndComment' */\n\t\t\t\tc.author = authors[c.iauthor];\n\t\t\t\tdelete (c/*:any*/).iauthor;\n\t\t\t\tif(opts.sheetRows && c.rfx && opts.sheetRows <= c.rfx.r) break;\n\t\t\t\tif(!c.t) c.t = \"\";\n\t\t\t\tdelete c.rfx; out.push(c); break;\n\n\t\t\tcase 0x0C00: /* 'BrtUid' */\n\t\t\t\tbreak;\n\n\t\t\tcase 0x0023: /* 'BrtFRTBegin' */\n\t\t\t\tpass = true; break;\n\t\t\tcase 0x0024: /* 'BrtFRTEnd' */\n\t\t\t\tpass = false; break;\n\t\t\tcase 0x0025: /* 'BrtACBegin' */ break;\n\t\t\tcase 0x0026: /* 'BrtACEnd' */ break;\n\n\n\t\t\tdefault:\n\t\t\t\tif(R.T){/* empty */}\n\t\t\t\telse if(!pass || opts.WTF) throw new Error(\"Unexpected record 0x\" + RT.toString(16));\n\t\t}\n\t});\n\treturn out;\n}\n\nfunction write_comments_bin(data/*::, opts*/) {\n\tvar ba = buf_array();\n\tvar iauthor/*:Array*/ = [];\n\twrite_record(ba, 0x0274 /* BrtBeginComments */);\n\n\twrite_record(ba, 0x0276 /* BrtBeginCommentAuthors */);\n\tdata.forEach(function(comment) {\n\t\tcomment[1].forEach(function(c) {\n\t\t\tif(iauthor.indexOf(c.a) > -1) return;\n\t\t\tiauthor.push(c.a.slice(0,54));\n\t\t\twrite_record(ba, 0x0278 /* BrtCommentAuthor */, write_BrtCommentAuthor(c.a));\n\t\t});\n\t});\n\twrite_record(ba, 0x0277 /* BrtEndCommentAuthors */);\n\n\twrite_record(ba, 0x0279 /* BrtBeginCommentList */);\n\tdata.forEach(function(comment) {\n\t\tcomment[1].forEach(function(c) {\n\t\t\tc.iauthor = iauthor.indexOf(c.a);\n\t\t\tvar range = {s:decode_cell(comment[0]),e:decode_cell(comment[0])};\n\t\t\twrite_record(ba, 0x027B /* BrtBeginComment */, write_BrtBeginComment([range, c]));\n\t\t\tif(c.t && c.t.length > 0) write_record(ba, 0x027D /* BrtCommentText */, write_BrtCommentText(c));\n\t\t\twrite_record(ba, 0x027C /* BrtEndComment */);\n\t\t\tdelete c.iauthor;\n\t\t});\n\t});\n\twrite_record(ba, 0x027A /* BrtEndCommentList */);\n\n\twrite_record(ba, 0x0275 /* BrtEndComments */);\n\treturn ba.end();\n}\nvar CT_VBA = \"application/vnd.ms-office.vbaProject\";\nfunction make_vba_xls(cfb) {\n var newcfb = CFB.utils.cfb_new({ root: \"R\" });\n cfb.FullPaths.forEach(function(p, i) {\n if (p.slice(-1) === \"/\" || !p.match(/_VBA_PROJECT_CUR/))\n return;\n var newpath = p.replace(/^[^\\/]*/, \"R\").replace(/\\/_VBA_PROJECT_CUR\\u0000*/, \"\");\n CFB.utils.cfb_add(newcfb, newpath, cfb.FileIndex[i].content);\n });\n return CFB.write(newcfb);\n}\nfunction fill_vba_xls(cfb, vba) {\n vba.FullPaths.forEach(function(p, i) {\n if (i == 0)\n return;\n var newpath = p.replace(/[^\\/]*[\\/]/, \"/_VBA_PROJECT_CUR/\");\n if (newpath.slice(-1) !== \"/\")\n CFB.utils.cfb_add(cfb, newpath, vba.FileIndex[i].content);\n });\n}\nvar VBAFMTS = [\"xlsb\", \"xlsm\", \"xlam\", \"biff8\", \"xla\"];\n/* macro and dialog sheet stubs */\nfunction parse_ds_bin(/*::data:any, opts, idx:number, rels, wb, themes, styles*/)/*:Worksheet*/ { return {'!type':'dialog'}; }\nfunction parse_ds_xml(/*::data:any, opts, idx:number, rels, wb, themes, styles*/)/*:Worksheet*/ { return {'!type':'dialog'}; }\nfunction parse_ms_bin(/*::data:any, opts, idx:number, rels, wb, themes, styles*/)/*:Worksheet*/ { return {'!type':'macro'}; }\nfunction parse_ms_xml(/*::data:any, opts, idx:number, rels, wb, themes, styles*/)/*:Worksheet*/ { return {'!type':'macro'}; }\n/* TODO: it will be useful to parse the function str */\nvar rc_to_a1 = /*#__PURE__*/(function(){\n\tvar rcregex = /(^|[^A-Za-z_])R(\\[?-?\\d+\\]|[1-9]\\d*|)C(\\[?-?\\d+\\]|[1-9]\\d*|)(?![A-Za-z0-9_])/g;\n\tvar rcbase/*:Cell*/ = ({r:0,c:0}/*:any*/);\n\tfunction rcfunc($$,$1,$2,$3) {\n\t\tvar cRel = false, rRel = false;\n\n\t\tif($2.length == 0) rRel = true;\n\t\telse if($2.charAt(0) == \"[\") { rRel = true; $2 = $2.slice(1, -1); }\n\n\t\tif($3.length == 0) cRel = true;\n\t\telse if($3.charAt(0) == \"[\") { cRel = true; $3 = $3.slice(1, -1); }\n\n\t\tvar R = $2.length>0?parseInt($2,10)|0:0, C = $3.length>0?parseInt($3,10)|0:0;\n\n\t\tif(cRel) C += rcbase.c; else --C;\n\t\tif(rRel) R += rcbase.r; else --R;\n\t\treturn $1 + (cRel ? \"\" : \"$\") + encode_col(C) + (rRel ? \"\" : \"$\") + encode_row(R);\n\t}\n\treturn function rc_to_a1(fstr/*:string*/, base/*:Cell*/)/*:string*/ {\n\t\trcbase = base;\n\t\treturn fstr.replace(rcregex, rcfunc);\n\t};\n})();\n\nvar crefregex = /(^|[^._A-Z0-9])([$]?)([A-Z]{1,2}|[A-W][A-Z]{2}|X[A-E][A-Z]|XF[A-D])([$]?)(10[0-3]\\d{4}|104[0-7]\\d{3}|1048[0-4]\\d{2}|10485[0-6]\\d|104857[0-6]|[1-9]\\d{0,5})(?![_.\\(A-Za-z0-9])/g;\nvar a1_to_rc = /*#__PURE__*/(function(){\n\treturn function a1_to_rc(fstr/*:string*/, base/*:CellAddress*/) {\n\t\treturn fstr.replace(crefregex, function($0, $1, $2, $3, $4, $5) {\n\t\t\tvar c = decode_col($3) - ($2 ? 0 : base.c);\n\t\t\tvar r = decode_row($5) - ($4 ? 0 : base.r);\n\t\t\tvar R = $4 == \"$\" ? (r+1) : (r == 0 ? \"\" : \"[\" + r + \"]\");\n\t\t\tvar C = $2 == \"$\" ? (c+1) : (c == 0 ? \"\" : \"[\" + c + \"]\");\n\t\t\treturn $1 + \"R\" + R + \"C\" + C;\n\t\t});\n\t};\n})();\n\n/* no defined name can collide with a valid cell address A1:XFD1048576 ... except LOG10! */\nfunction shift_formula_str(f/*:string*/, delta/*:Cell*/)/*:string*/ {\n\treturn f.replace(crefregex, function($0, $1, $2, $3, $4, $5) {\n\t\treturn $1+($2==\"$\" ? $2+$3 : encode_col(decode_col($3)+delta.c))+($4==\"$\" ? $4+$5 : encode_row(decode_row($5) + delta.r));\n\t});\n}\n\nfunction shift_formula_xlsx(f/*:string*/, range/*:string*/, cell/*:string*/)/*:string*/ {\n\tvar r = decode_range(range), s = r.s, c = decode_cell(cell);\n\tvar delta = {r:c.r - s.r, c:c.c - s.c};\n\treturn shift_formula_str(f, delta);\n}\n\n/* TODO: parse formula */\nfunction fuzzyfmla(f/*:string*/)/*:boolean*/ {\n\tif(f.length == 1) return false;\n\treturn true;\n}\n\nfunction _xlfn(f/*:string*/)/*:string*/ {\n\treturn f.replace(/_xlfn\\./g,\"\");\n}\nfunction parseread1(blob) { blob.l+=1; return; }\n\n/* [MS-XLS] 2.5.51 */\nfunction parse_ColRelU(blob, length) {\n\tvar c = blob.read_shift(length == 1 ? 1 : 2);\n\treturn [c & 0x3FFF, (c >> 14) & 1, (c >> 15) & 1];\n}\n\n/* [MS-XLS] 2.5.198.105 ; [MS-XLSB] 2.5.97.89 */\nfunction parse_RgceArea(blob, length, opts) {\n\tvar w = 2;\n\tif(opts) {\n\t\tif(opts.biff >= 2 && opts.biff <= 5) return parse_RgceArea_BIFF2(blob, length, opts);\n\t\telse if(opts.biff == 12) w = 4;\n\t}\n\tvar r=blob.read_shift(w), R=blob.read_shift(w);\n\tvar c=parse_ColRelU(blob, 2);\n\tvar C=parse_ColRelU(blob, 2);\n\treturn { s:{r:r, c:c[0], cRel:c[1], rRel:c[2]}, e:{r:R, c:C[0], cRel:C[1], rRel:C[2]} };\n}\n/* BIFF 2-5 encodes flags in the row field */\nfunction parse_RgceArea_BIFF2(blob/*::, length, opts*/) {\n\tvar r=parse_ColRelU(blob, 2), R=parse_ColRelU(blob, 2);\n\tvar c=blob.read_shift(1);\n\tvar C=blob.read_shift(1);\n\treturn { s:{r:r[0], c:c, cRel:r[1], rRel:r[2]}, e:{r:R[0], c:C, cRel:R[1], rRel:R[2]} };\n}\n\n/* [MS-XLS] 2.5.198.105 ; [MS-XLSB] 2.5.97.90 */\nfunction parse_RgceAreaRel(blob, length, opts) {\n\tif(opts.biff < 8) return parse_RgceArea_BIFF2(blob, length, opts);\n\tvar r=blob.read_shift(opts.biff == 12 ? 4 : 2), R=blob.read_shift(opts.biff == 12 ? 4 : 2);\n\tvar c=parse_ColRelU(blob, 2);\n\tvar C=parse_ColRelU(blob, 2);\n\treturn { s:{r:r, c:c[0], cRel:c[1], rRel:c[2]}, e:{r:R, c:C[0], cRel:C[1], rRel:C[2]} };\n}\n\n/* [MS-XLS] 2.5.198.109 ; [MS-XLSB] 2.5.97.91 */\nfunction parse_RgceLoc(blob, length, opts) {\n\tif(opts && opts.biff >= 2 && opts.biff <= 5) return parse_RgceLoc_BIFF2(blob, length, opts);\n\tvar r = blob.read_shift(opts && opts.biff == 12 ? 4 : 2);\n\tvar c = parse_ColRelU(blob, 2);\n\treturn {r:r, c:c[0], cRel:c[1], rRel:c[2]};\n}\nfunction parse_RgceLoc_BIFF2(blob/*::, length, opts*/) {\n\tvar r = parse_ColRelU(blob, 2);\n\tvar c = blob.read_shift(1);\n\treturn {r:r[0], c:c, cRel:r[1], rRel:r[2]};\n}\n\n/* [MS-XLS] 2.5.198.107, 2.5.47 */\nfunction parse_RgceElfLoc(blob/*::, length, opts*/) {\n\tvar r = blob.read_shift(2);\n\tvar c = blob.read_shift(2);\n\treturn {r:r, c:c & 0xFF, fQuoted:!!(c & 0x4000), cRel:c>>15, rRel:c>>15 };\n}\n\n/* [MS-XLS] 2.5.198.111 ; [MS-XLSB] 2.5.97.92 TODO */\nfunction parse_RgceLocRel(blob, length, opts) {\n\tvar biff = opts && opts.biff ? opts.biff : 8;\n\tif(biff >= 2 && biff <= 5) return parse_RgceLocRel_BIFF2(blob, length, opts);\n\tvar r = blob.read_shift(biff >= 12 ? 4 : 2);\n\tvar cl = blob.read_shift(2);\n\tvar cRel = (cl & 0x4000) >> 14, rRel = (cl & 0x8000) >> 15;\n\tcl &= 0x3FFF;\n\tif(rRel == 1) while(r > 0x7FFFF) r -= 0x100000;\n\tif(cRel == 1) while(cl > 0x1FFF) cl = cl - 0x4000;\n\treturn {r:r,c:cl,cRel:cRel,rRel:rRel};\n}\nfunction parse_RgceLocRel_BIFF2(blob/*::, length:number, opts*/) {\n\tvar rl = blob.read_shift(2);\n\tvar c = blob.read_shift(1);\n\tvar rRel = (rl & 0x8000) >> 15, cRel = (rl & 0x4000) >> 14;\n\trl &= 0x3FFF;\n\tif(rRel == 1 && rl >= 0x2000) rl = rl - 0x4000;\n\tif(cRel == 1 && c >= 0x80) c = c - 0x100;\n\treturn {r:rl,c:c,cRel:cRel,rRel:rRel};\n}\n\n/* [MS-XLS] 2.5.198.27 ; [MS-XLSB] 2.5.97.18 */\nfunction parse_PtgArea(blob, length, opts) {\n\tvar type = (blob[blob.l++] & 0x60) >> 5;\n\tvar area = parse_RgceArea(blob, opts.biff >= 2 && opts.biff <= 5 ? 6 : 8, opts);\n\treturn [type, area];\n}\n\n/* [MS-XLS] 2.5.198.28 ; [MS-XLSB] 2.5.97.19 */\nfunction parse_PtgArea3d(blob, length, opts) {\n\tvar type = (blob[blob.l++] & 0x60) >> 5;\n\tvar ixti = blob.read_shift(2, 'i');\n\tvar w = 8;\n\tif(opts) switch(opts.biff) {\n\t\tcase 5: blob.l += 12; w = 6; break;\n\t\tcase 12: w = 12; break;\n\t}\n\tvar area = parse_RgceArea(blob, w, opts);\n\treturn [type, ixti, area];\n}\n\n/* [MS-XLS] 2.5.198.29 ; [MS-XLSB] 2.5.97.20 */\nfunction parse_PtgAreaErr(blob, length, opts) {\n\tvar type = (blob[blob.l++] & 0x60) >> 5;\n\tblob.l += opts && (opts.biff > 8) ? 12 : (opts.biff < 8 ? 6 : 8);\n\treturn [type];\n}\n/* [MS-XLS] 2.5.198.30 ; [MS-XLSB] 2.5.97.21 */\nfunction parse_PtgAreaErr3d(blob, length, opts) {\n\tvar type = (blob[blob.l++] & 0x60) >> 5;\n\tvar ixti = blob.read_shift(2);\n\tvar w = 8;\n\tif(opts) switch(opts.biff) {\n\t\tcase 5: blob.l += 12; w = 6; break;\n\t\tcase 12: w = 12; break;\n\t}\n\tblob.l += w;\n\treturn [type, ixti];\n}\n\n/* [MS-XLS] 2.5.198.31 ; [MS-XLSB] 2.5.97.22 */\nfunction parse_PtgAreaN(blob, length, opts) {\n\tvar type = (blob[blob.l++] & 0x60) >> 5;\n\tvar area = parse_RgceAreaRel(blob, length - 1, opts);\n\treturn [type, area];\n}\n\n/* [MS-XLS] 2.5.198.32 ; [MS-XLSB] 2.5.97.23 */\nfunction parse_PtgArray(blob, length, opts) {\n\tvar type = (blob[blob.l++] & 0x60) >> 5;\n\tblob.l += opts.biff == 2 ? 6 : opts.biff == 12 ? 14 : 7;\n\treturn [type];\n}\n\n/* [MS-XLS] 2.5.198.33 ; [MS-XLSB] 2.5.97.24 */\nfunction parse_PtgAttrBaxcel(blob) {\n\tvar bitSemi = blob[blob.l+1] & 0x01; /* 1 = volatile */\n\tvar bitBaxcel = 1;\n\tblob.l += 4;\n\treturn [bitSemi, bitBaxcel];\n}\n\n/* [MS-XLS] 2.5.198.34 ; [MS-XLSB] 2.5.97.25 */\nfunction parse_PtgAttrChoose(blob, length, opts)/*:Array*/ {\n\tblob.l +=2;\n\tvar offset = blob.read_shift(opts && opts.biff == 2 ? 1 : 2);\n\tvar o/*:Array*/ = [];\n\t/* offset is 1 less than the number of elements */\n\tfor(var i = 0; i <= offset; ++i) o.push(blob.read_shift(opts && opts.biff == 2 ? 1 : 2));\n\treturn o;\n}\n\n/* [MS-XLS] 2.5.198.35 ; [MS-XLSB] 2.5.97.26 */\nfunction parse_PtgAttrGoto(blob, length, opts) {\n\tvar bitGoto = (blob[blob.l+1] & 0xFF) ? 1 : 0;\n\tblob.l += 2;\n\treturn [bitGoto, blob.read_shift(opts && opts.biff == 2 ? 1 : 2)];\n}\n\n/* [MS-XLS] 2.5.198.36 ; [MS-XLSB] 2.5.97.27 */\nfunction parse_PtgAttrIf(blob, length, opts) {\n\tvar bitIf = (blob[blob.l+1] & 0xFF) ? 1 : 0;\n\tblob.l += 2;\n\treturn [bitIf, blob.read_shift(opts && opts.biff == 2 ? 1 : 2)];\n}\n\n/* [MS-XLSB] 2.5.97.28 */\nfunction parse_PtgAttrIfError(blob) {\n\tvar bitIf = (blob[blob.l+1] & 0xFF) ? 1 : 0;\n\tblob.l += 2;\n\treturn [bitIf, blob.read_shift(2)];\n}\n\n/* [MS-XLS] 2.5.198.37 ; [MS-XLSB] 2.5.97.29 */\nfunction parse_PtgAttrSemi(blob, length, opts) {\n\tvar bitSemi = (blob[blob.l+1] & 0xFF) ? 1 : 0;\n\tblob.l += opts && opts.biff == 2 ? 3 : 4;\n\treturn [bitSemi];\n}\n\n/* [MS-XLS] 2.5.198.40 ; [MS-XLSB] 2.5.97.32 */\nfunction parse_PtgAttrSpaceType(blob/*::, length*/) {\n\tvar type = blob.read_shift(1), cch = blob.read_shift(1);\n\treturn [type, cch];\n}\n\n/* [MS-XLS] 2.5.198.38 ; [MS-XLSB] 2.5.97.30 */\nfunction parse_PtgAttrSpace(blob) {\n\tblob.read_shift(2);\n\treturn parse_PtgAttrSpaceType(blob, 2);\n}\n\n/* [MS-XLS] 2.5.198.39 ; [MS-XLSB] 2.5.97.31 */\nfunction parse_PtgAttrSpaceSemi(blob) {\n\tblob.read_shift(2);\n\treturn parse_PtgAttrSpaceType(blob, 2);\n}\n\n/* [MS-XLS] 2.5.198.84 ; [MS-XLSB] 2.5.97.68 TODO */\nfunction parse_PtgRef(blob, length, opts) {\n\t//var ptg = blob[blob.l] & 0x1F;\n\tvar type = (blob[blob.l] & 0x60)>>5;\n\tblob.l += 1;\n\tvar loc = parse_RgceLoc(blob, 0, opts);\n\treturn [type, loc];\n}\n\n/* [MS-XLS] 2.5.198.88 ; [MS-XLSB] 2.5.97.72 TODO */\nfunction parse_PtgRefN(blob, length, opts) {\n\tvar type = (blob[blob.l] & 0x60)>>5;\n\tblob.l += 1;\n\tvar loc = parse_RgceLocRel(blob, 0, opts);\n\treturn [type, loc];\n}\n\n/* [MS-XLS] 2.5.198.85 ; [MS-XLSB] 2.5.97.69 TODO */\nfunction parse_PtgRef3d(blob, length, opts) {\n\tvar type = (blob[blob.l] & 0x60)>>5;\n\tblob.l += 1;\n\tvar ixti = blob.read_shift(2); // XtiIndex\n\tif(opts && opts.biff == 5) blob.l += 12;\n\tvar loc = parse_RgceLoc(blob, 0, opts); // TODO: or RgceLocRel\n\treturn [type, ixti, loc];\n}\n\n\n/* [MS-XLS] 2.5.198.62 ; [MS-XLSB] 2.5.97.45 TODO */\nfunction parse_PtgFunc(blob, length, opts) {\n\t//var ptg = blob[blob.l] & 0x1F;\n\tvar type = (blob[blob.l] & 0x60)>>5;\n\tblob.l += 1;\n\tvar iftab = blob.read_shift(opts && opts.biff <= 3 ? 1 : 2);\n\treturn [FtabArgc[iftab], Ftab[iftab], type];\n}\n/* [MS-XLS] 2.5.198.63 ; [MS-XLSB] 2.5.97.46 TODO */\nfunction parse_PtgFuncVar(blob, length, opts) {\n\tvar type = blob[blob.l++];\n\tvar cparams = blob.read_shift(1), tab = opts && opts.biff <= 3 ? [(type == 0x58 ? -1 : 0), blob.read_shift(1)]: parsetab(blob);\n\treturn [cparams, (tab[0] === 0 ? Ftab : Cetab)[tab[1]]];\n}\n\nfunction parsetab(blob) {\n\treturn [blob[blob.l+1]>>7, blob.read_shift(2) & 0x7FFF];\n}\n\n/* [MS-XLS] 2.5.198.41 ; [MS-XLSB] 2.5.97.33 */\nfunction parse_PtgAttrSum(blob, length, opts) {\n\tblob.l += opts && opts.biff == 2 ? 3 : 4; return;\n}\n\n/* [MS-XLS] 2.5.198.58 ; [MS-XLSB] 2.5.97.40 */\nfunction parse_PtgExp(blob, length, opts) {\n\tblob.l++;\n\tif(opts && opts.biff == 12) return [blob.read_shift(4, 'i'), 0];\n\tvar row = blob.read_shift(2);\n\tvar col = blob.read_shift(opts && opts.biff == 2 ? 1 : 2);\n\treturn [row, col];\n}\n\n/* [MS-XLS] 2.5.198.57 ; [MS-XLSB] 2.5.97.39 */\nfunction parse_PtgErr(blob) { blob.l++; return BErr[blob.read_shift(1)]; }\n\n/* [MS-XLS] 2.5.198.66 ; [MS-XLSB] 2.5.97.49 */\nfunction parse_PtgInt(blob) { blob.l++; return blob.read_shift(2); }\n\n/* [MS-XLS] 2.5.198.42 ; [MS-XLSB] 2.5.97.34 */\nfunction parse_PtgBool(blob) { blob.l++; return blob.read_shift(1)!==0;}\n\n/* [MS-XLS] 2.5.198.79 ; [MS-XLSB] 2.5.97.63 */\nfunction parse_PtgNum(blob) { blob.l++; return parse_Xnum(blob, 8); }\n\n/* [MS-XLS] 2.5.198.89 ; [MS-XLSB] 2.5.97.74 */\nfunction parse_PtgStr(blob, length, opts) { blob.l++; return parse_ShortXLUnicodeString(blob, length-1, opts); }\n\n/* [MS-XLS] 2.5.192.112 + 2.5.192.11{3,4,5,6,7} */\n/* [MS-XLSB] 2.5.97.93 + 2.5.97.9{4,5,6,7} */\nfunction parse_SerAr(blob, biff/*:number*/) {\n\tvar val = [blob.read_shift(1)];\n\tif(biff == 12) switch(val[0]) {\n\t\tcase 0x02: val[0] = 0x04; break; /* SerBool */\n\t\tcase 0x04: val[0] = 0x10; break; /* SerErr */\n\t\tcase 0x00: val[0] = 0x01; break; /* SerNum */\n\t\tcase 0x01: val[0] = 0x02; break; /* SerStr */\n\t}\n\tswitch(val[0]) {\n\t\tcase 0x04: /* SerBool -- boolean */\n\t\t\tval[1] = parsebool(blob, 1) ? 'TRUE' : 'FALSE';\n\t\t\tif(biff != 12) blob.l += 7; break;\n\t\tcase 0x25: /* appears to be an alias */\n\t\tcase 0x10: /* SerErr -- error */\n\t\t\tval[1] = BErr[blob[blob.l]];\n\t\t\tblob.l += ((biff == 12) ? 4 : 8); break;\n\t\tcase 0x00: /* SerNil -- honestly, I'm not sure how to reproduce this */\n\t\t\tblob.l += 8; break;\n\t\tcase 0x01: /* SerNum -- Xnum */\n\t\t\tval[1] = parse_Xnum(blob, 8); break;\n\t\tcase 0x02: /* SerStr -- XLUnicodeString (<256 chars) */\n\t\t\tval[1] = parse_XLUnicodeString2(blob, 0, {biff:biff > 0 && biff < 8 ? 2 : biff}); break;\n\t\tdefault: throw new Error(\"Bad SerAr: \" + val[0]); /* Unreachable */\n\t}\n\treturn val;\n}\n\n/* [MS-XLS] 2.5.198.61 ; [MS-XLSB] 2.5.97.44 */\nfunction parse_PtgExtraMem(blob, cce, opts) {\n\tvar count = blob.read_shift((opts.biff == 12) ? 4 : 2);\n\tvar out/*:Array*/ = [];\n\tfor(var i = 0; i != count; ++i) out.push(((opts.biff == 12) ? parse_UncheckedRfX : parse_Ref8U)(blob, 8));\n\treturn out;\n}\n\n/* [MS-XLS] 2.5.198.59 ; [MS-XLSB] 2.5.97.41 */\nfunction parse_PtgExtraArray(blob, length, opts) {\n\tvar rows = 0, cols = 0;\n\tif(opts.biff == 12) {\n\t\trows = blob.read_shift(4); // DRw\n\t\tcols = blob.read_shift(4); // DCol\n\t} else {\n\t\tcols = 1 + blob.read_shift(1); //DColByteU\n\t\trows = 1 + blob.read_shift(2); //DRw\n\t}\n\tif(opts.biff >= 2 && opts.biff < 8) { --rows; if(--cols == 0) cols = 0x100; }\n\t// $FlowIgnore\n\tfor(var i = 0, o/*:Array>*/ = []; i != rows && (o[i] = []); ++i)\n\t\tfor(var j = 0; j != cols; ++j) o[i][j] = parse_SerAr(blob, opts.biff);\n\treturn o;\n}\n\n/* [MS-XLS] 2.5.198.76 ; [MS-XLSB] 2.5.97.60 */\nfunction parse_PtgName(blob, length, opts) {\n\tvar type = (blob.read_shift(1) >>> 5) & 0x03;\n\tvar w = (!opts || (opts.biff >= 8)) ? 4 : 2;\n\tvar nameindex = blob.read_shift(w);\n\tswitch(opts.biff) {\n\t\tcase 2: blob.l += 5; break;\n\t\tcase 3: case 4: blob.l += 8; break;\n\t\tcase 5: blob.l += 12; break;\n\t}\n\treturn [type, 0, nameindex];\n}\n\n/* [MS-XLS] 2.5.198.77 ; [MS-XLSB] 2.5.97.61 */\nfunction parse_PtgNameX(blob, length, opts) {\n\tif(opts.biff == 5) return parse_PtgNameX_BIFF5(blob, length, opts);\n\tvar type = (blob.read_shift(1) >>> 5) & 0x03;\n\tvar ixti = blob.read_shift(2); // XtiIndex\n\tvar nameindex = blob.read_shift(4);\n\treturn [type, ixti, nameindex];\n}\nfunction parse_PtgNameX_BIFF5(blob/*::, length, opts*/) {\n\tvar type = (blob.read_shift(1) >>> 5) & 0x03;\n\tvar ixti = blob.read_shift(2, 'i'); // XtiIndex\n\tblob.l += 8;\n\tvar nameindex = blob.read_shift(2);\n\tblob.l += 12;\n\treturn [type, ixti, nameindex];\n}\n\n/* [MS-XLS] 2.5.198.70 ; [MS-XLSB] 2.5.97.54 */\nfunction parse_PtgMemArea(blob, length, opts) {\n\tvar type = (blob.read_shift(1) >>> 5) & 0x03;\n\tblob.l += (opts && opts.biff == 2 ? 3 : 4);\n\tvar cce = blob.read_shift(opts && opts.biff == 2 ? 1 : 2);\n\treturn [type, cce];\n}\n\n/* [MS-XLS] 2.5.198.72 ; [MS-XLSB] 2.5.97.56 */\nfunction parse_PtgMemFunc(blob, length, opts) {\n\tvar type = (blob.read_shift(1) >>> 5) & 0x03;\n\tvar cce = blob.read_shift(opts && opts.biff == 2 ? 1 : 2);\n\treturn [type, cce];\n}\n\n\n/* [MS-XLS] 2.5.198.86 ; [MS-XLSB] 2.5.97.69 */\nfunction parse_PtgRefErr(blob, length, opts) {\n\tvar type = (blob.read_shift(1) >>> 5) & 0x03;\n\tblob.l += 4;\n\tif(opts.biff < 8) blob.l--;\n\tif(opts.biff == 12) blob.l += 2;\n\treturn [type];\n}\n\n/* [MS-XLS] 2.5.198.87 ; [MS-XLSB] 2.5.97.71 */\nfunction parse_PtgRefErr3d(blob, length, opts) {\n\tvar type = (blob[blob.l++] & 0x60) >> 5;\n\tvar ixti = blob.read_shift(2);\n\tvar w = 4;\n\tif(opts) switch(opts.biff) {\n\t\tcase 5: w = 15; break;\n\t\tcase 12: w = 6; break;\n\t}\n\tblob.l += w;\n\treturn [type, ixti];\n}\n\n/* [MS-XLS] 2.5.198.71 ; [MS-XLSB] 2.5.97.55 */\nvar parse_PtgMemErr = parsenoop;\n/* [MS-XLS] 2.5.198.73 ; [MS-XLSB] 2.5.97.57 */\nvar parse_PtgMemNoMem = parsenoop;\n/* [MS-XLS] 2.5.198.92 */\nvar parse_PtgTbl = parsenoop;\n\nfunction parse_PtgElfLoc(blob, length, opts) {\n\tblob.l += 2;\n\treturn [parse_RgceElfLoc(blob, 4, opts)];\n}\nfunction parse_PtgElfNoop(blob/*::, length, opts*/) {\n\tblob.l += 6;\n\treturn [];\n}\n/* [MS-XLS] 2.5.198.46 */\nvar parse_PtgElfCol = parse_PtgElfLoc;\n/* [MS-XLS] 2.5.198.47 */\nvar parse_PtgElfColS = parse_PtgElfNoop;\n/* [MS-XLS] 2.5.198.48 */\nvar parse_PtgElfColSV = parse_PtgElfNoop;\n/* [MS-XLS] 2.5.198.49 */\nvar parse_PtgElfColV = parse_PtgElfLoc;\n/* [MS-XLS] 2.5.198.50 */\nfunction parse_PtgElfLel(blob/*::, length, opts*/) {\n\tblob.l += 2;\n\treturn [parseuint16(blob), blob.read_shift(2) & 0x01];\n}\n/* [MS-XLS] 2.5.198.51 */\nvar parse_PtgElfRadical = parse_PtgElfLoc;\n/* [MS-XLS] 2.5.198.52 */\nvar parse_PtgElfRadicalLel = parse_PtgElfLel;\n/* [MS-XLS] 2.5.198.53 */\nvar parse_PtgElfRadicalS = parse_PtgElfNoop;\n/* [MS-XLS] 2.5.198.54 */\nvar parse_PtgElfRw = parse_PtgElfLoc;\n/* [MS-XLS] 2.5.198.55 */\nvar parse_PtgElfRwV = parse_PtgElfLoc;\n\n/* [MS-XLSB] 2.5.97.52 TODO */\nvar PtgListRT = [\n\t\"Data\",\n\t\"All\",\n\t\"Headers\",\n\t\"??\",\n\t\"?Data2\",\n\t\"??\",\n\t\"?DataHeaders\",\n\t\"??\",\n\t\"Totals\",\n\t\"??\",\n\t\"??\",\n\t\"??\",\n\t\"?DataTotals\",\n\t\"??\",\n\t\"??\",\n\t\"??\",\n\t\"?Current\"\n];\nfunction parse_PtgList(blob/*::, length, opts*/) {\n\tblob.l += 2;\n\tvar ixti = blob.read_shift(2);\n\tvar flags = blob.read_shift(2);\n\tvar idx = blob.read_shift(4);\n\tvar c = blob.read_shift(2);\n\tvar C = blob.read_shift(2);\n\tvar rt = PtgListRT[(flags >> 2) & 0x1F];\n\treturn {ixti: ixti, coltype:(flags&0x3), rt:rt, idx:idx, c:c, C:C};\n}\n/* [MS-XLS] 2.5.198.91 ; [MS-XLSB] 2.5.97.76 */\nfunction parse_PtgSxName(blob/*::, length, opts*/) {\n\tblob.l += 2;\n\treturn [blob.read_shift(4)];\n}\n\n/* [XLS] old spec */\nfunction parse_PtgSheet(blob, length, opts) {\n\tblob.l += 5;\n\tblob.l += 2;\n\tblob.l += (opts.biff == 2 ? 1 : 4);\n\treturn [\"PTGSHEET\"];\n}\nfunction parse_PtgEndSheet(blob, length, opts) {\n\tblob.l += (opts.biff == 2 ? 4 : 5);\n\treturn [\"PTGENDSHEET\"];\n}\nfunction parse_PtgMemAreaN(blob/*::, length, opts*/) {\n\tvar type = (blob.read_shift(1) >>> 5) & 0x03;\n\tvar cce = blob.read_shift(2);\n\treturn [type, cce];\n}\nfunction parse_PtgMemNoMemN(blob/*::, length, opts*/) {\n\tvar type = (blob.read_shift(1) >>> 5) & 0x03;\n\tvar cce = blob.read_shift(2);\n\treturn [type, cce];\n}\nfunction parse_PtgAttrNoop(blob/*::, length, opts*/) {\n\tblob.l += 4;\n\treturn [0, 0];\n}\n\n/* [MS-XLS] 2.5.198.25 ; [MS-XLSB] 2.5.97.16 */\nvar PtgTypes = {\n\t/*::[*/0x01/*::]*/: { n:'PtgExp', f:parse_PtgExp },\n\t/*::[*/0x02/*::]*/: { n:'PtgTbl', f:parse_PtgTbl },\n\t/*::[*/0x03/*::]*/: { n:'PtgAdd', f:parseread1 },\n\t/*::[*/0x04/*::]*/: { n:'PtgSub', f:parseread1 },\n\t/*::[*/0x05/*::]*/: { n:'PtgMul', f:parseread1 },\n\t/*::[*/0x06/*::]*/: { n:'PtgDiv', f:parseread1 },\n\t/*::[*/0x07/*::]*/: { n:'PtgPower', f:parseread1 },\n\t/*::[*/0x08/*::]*/: { n:'PtgConcat', f:parseread1 },\n\t/*::[*/0x09/*::]*/: { n:'PtgLt', f:parseread1 },\n\t/*::[*/0x0A/*::]*/: { n:'PtgLe', f:parseread1 },\n\t/*::[*/0x0B/*::]*/: { n:'PtgEq', f:parseread1 },\n\t/*::[*/0x0C/*::]*/: { n:'PtgGe', f:parseread1 },\n\t/*::[*/0x0D/*::]*/: { n:'PtgGt', f:parseread1 },\n\t/*::[*/0x0E/*::]*/: { n:'PtgNe', f:parseread1 },\n\t/*::[*/0x0F/*::]*/: { n:'PtgIsect', f:parseread1 },\n\t/*::[*/0x10/*::]*/: { n:'PtgUnion', f:parseread1 },\n\t/*::[*/0x11/*::]*/: { n:'PtgRange', f:parseread1 },\n\t/*::[*/0x12/*::]*/: { n:'PtgUplus', f:parseread1 },\n\t/*::[*/0x13/*::]*/: { n:'PtgUminus', f:parseread1 },\n\t/*::[*/0x14/*::]*/: { n:'PtgPercent', f:parseread1 },\n\t/*::[*/0x15/*::]*/: { n:'PtgParen', f:parseread1 },\n\t/*::[*/0x16/*::]*/: { n:'PtgMissArg', f:parseread1 },\n\t/*::[*/0x17/*::]*/: { n:'PtgStr', f:parse_PtgStr },\n\t/*::[*/0x1A/*::]*/: { n:'PtgSheet', f:parse_PtgSheet },\n\t/*::[*/0x1B/*::]*/: { n:'PtgEndSheet', f:parse_PtgEndSheet },\n\t/*::[*/0x1C/*::]*/: { n:'PtgErr', f:parse_PtgErr },\n\t/*::[*/0x1D/*::]*/: { n:'PtgBool', f:parse_PtgBool },\n\t/*::[*/0x1E/*::]*/: { n:'PtgInt', f:parse_PtgInt },\n\t/*::[*/0x1F/*::]*/: { n:'PtgNum', f:parse_PtgNum },\n\t/*::[*/0x20/*::]*/: { n:'PtgArray', f:parse_PtgArray },\n\t/*::[*/0x21/*::]*/: { n:'PtgFunc', f:parse_PtgFunc },\n\t/*::[*/0x22/*::]*/: { n:'PtgFuncVar', f:parse_PtgFuncVar },\n\t/*::[*/0x23/*::]*/: { n:'PtgName', f:parse_PtgName },\n\t/*::[*/0x24/*::]*/: { n:'PtgRef', f:parse_PtgRef },\n\t/*::[*/0x25/*::]*/: { n:'PtgArea', f:parse_PtgArea },\n\t/*::[*/0x26/*::]*/: { n:'PtgMemArea', f:parse_PtgMemArea },\n\t/*::[*/0x27/*::]*/: { n:'PtgMemErr', f:parse_PtgMemErr },\n\t/*::[*/0x28/*::]*/: { n:'PtgMemNoMem', f:parse_PtgMemNoMem },\n\t/*::[*/0x29/*::]*/: { n:'PtgMemFunc', f:parse_PtgMemFunc },\n\t/*::[*/0x2A/*::]*/: { n:'PtgRefErr', f:parse_PtgRefErr },\n\t/*::[*/0x2B/*::]*/: { n:'PtgAreaErr', f:parse_PtgAreaErr },\n\t/*::[*/0x2C/*::]*/: { n:'PtgRefN', f:parse_PtgRefN },\n\t/*::[*/0x2D/*::]*/: { n:'PtgAreaN', f:parse_PtgAreaN },\n\t/*::[*/0x2E/*::]*/: { n:'PtgMemAreaN', f:parse_PtgMemAreaN },\n\t/*::[*/0x2F/*::]*/: { n:'PtgMemNoMemN', f:parse_PtgMemNoMemN },\n\t/*::[*/0x39/*::]*/: { n:'PtgNameX', f:parse_PtgNameX },\n\t/*::[*/0x3A/*::]*/: { n:'PtgRef3d', f:parse_PtgRef3d },\n\t/*::[*/0x3B/*::]*/: { n:'PtgArea3d', f:parse_PtgArea3d },\n\t/*::[*/0x3C/*::]*/: { n:'PtgRefErr3d', f:parse_PtgRefErr3d },\n\t/*::[*/0x3D/*::]*/: { n:'PtgAreaErr3d', f:parse_PtgAreaErr3d },\n\t/*::[*/0xFF/*::]*/: {}\n};\n/* These are duplicated in the PtgTypes table */\nvar PtgDupes = {\n\t/*::[*/0x40/*::]*/: 0x20, /*::[*/0x60/*::]*/: 0x20,\n\t/*::[*/0x41/*::]*/: 0x21, /*::[*/0x61/*::]*/: 0x21,\n\t/*::[*/0x42/*::]*/: 0x22, /*::[*/0x62/*::]*/: 0x22,\n\t/*::[*/0x43/*::]*/: 0x23, /*::[*/0x63/*::]*/: 0x23,\n\t/*::[*/0x44/*::]*/: 0x24, /*::[*/0x64/*::]*/: 0x24,\n\t/*::[*/0x45/*::]*/: 0x25, /*::[*/0x65/*::]*/: 0x25,\n\t/*::[*/0x46/*::]*/: 0x26, /*::[*/0x66/*::]*/: 0x26,\n\t/*::[*/0x47/*::]*/: 0x27, /*::[*/0x67/*::]*/: 0x27,\n\t/*::[*/0x48/*::]*/: 0x28, /*::[*/0x68/*::]*/: 0x28,\n\t/*::[*/0x49/*::]*/: 0x29, /*::[*/0x69/*::]*/: 0x29,\n\t/*::[*/0x4A/*::]*/: 0x2A, /*::[*/0x6A/*::]*/: 0x2A,\n\t/*::[*/0x4B/*::]*/: 0x2B, /*::[*/0x6B/*::]*/: 0x2B,\n\t/*::[*/0x4C/*::]*/: 0x2C, /*::[*/0x6C/*::]*/: 0x2C,\n\t/*::[*/0x4D/*::]*/: 0x2D, /*::[*/0x6D/*::]*/: 0x2D,\n\t/*::[*/0x4E/*::]*/: 0x2E, /*::[*/0x6E/*::]*/: 0x2E,\n\t/*::[*/0x4F/*::]*/: 0x2F, /*::[*/0x6F/*::]*/: 0x2F,\n\t/*::[*/0x58/*::]*/: 0x22, /*::[*/0x78/*::]*/: 0x22,\n\t/*::[*/0x59/*::]*/: 0x39, /*::[*/0x79/*::]*/: 0x39,\n\t/*::[*/0x5A/*::]*/: 0x3A, /*::[*/0x7A/*::]*/: 0x3A,\n\t/*::[*/0x5B/*::]*/: 0x3B, /*::[*/0x7B/*::]*/: 0x3B,\n\t/*::[*/0x5C/*::]*/: 0x3C, /*::[*/0x7C/*::]*/: 0x3C,\n\t/*::[*/0x5D/*::]*/: 0x3D, /*::[*/0x7D/*::]*/: 0x3D\n};\n\nvar Ptg18 = {\n\t/*::[*/0x01/*::]*/: { n:'PtgElfLel', f:parse_PtgElfLel },\n\t/*::[*/0x02/*::]*/: { n:'PtgElfRw', f:parse_PtgElfRw },\n\t/*::[*/0x03/*::]*/: { n:'PtgElfCol', f:parse_PtgElfCol },\n\t/*::[*/0x06/*::]*/: { n:'PtgElfRwV', f:parse_PtgElfRwV },\n\t/*::[*/0x07/*::]*/: { n:'PtgElfColV', f:parse_PtgElfColV },\n\t/*::[*/0x0A/*::]*/: { n:'PtgElfRadical', f:parse_PtgElfRadical },\n\t/*::[*/0x0B/*::]*/: { n:'PtgElfRadicalS', f:parse_PtgElfRadicalS },\n\t/*::[*/0x0D/*::]*/: { n:'PtgElfColS', f:parse_PtgElfColS },\n\t/*::[*/0x0F/*::]*/: { n:'PtgElfColSV', f:parse_PtgElfColSV },\n\t/*::[*/0x10/*::]*/: { n:'PtgElfRadicalLel', f:parse_PtgElfRadicalLel },\n\t/*::[*/0x19/*::]*/: { n:'PtgList', f:parse_PtgList },\n\t/*::[*/0x1D/*::]*/: { n:'PtgSxName', f:parse_PtgSxName },\n\t/*::[*/0xFF/*::]*/: {}\n};\nvar Ptg19 = {\n\t/*::[*/0x00/*::]*/: { n:'PtgAttrNoop', f:parse_PtgAttrNoop },\n\t/*::[*/0x01/*::]*/: { n:'PtgAttrSemi', f:parse_PtgAttrSemi },\n\t/*::[*/0x02/*::]*/: { n:'PtgAttrIf', f:parse_PtgAttrIf },\n\t/*::[*/0x04/*::]*/: { n:'PtgAttrChoose', f:parse_PtgAttrChoose },\n\t/*::[*/0x08/*::]*/: { n:'PtgAttrGoto', f:parse_PtgAttrGoto },\n\t/*::[*/0x10/*::]*/: { n:'PtgAttrSum', f:parse_PtgAttrSum },\n\t/*::[*/0x20/*::]*/: { n:'PtgAttrBaxcel', f:parse_PtgAttrBaxcel },\n\t/*::[*/0x21/*::]*/: { n:'PtgAttrBaxcel', f:parse_PtgAttrBaxcel },\n\t/*::[*/0x40/*::]*/: { n:'PtgAttrSpace', f:parse_PtgAttrSpace },\n\t/*::[*/0x41/*::]*/: { n:'PtgAttrSpaceSemi', f:parse_PtgAttrSpaceSemi },\n\t/*::[*/0x80/*::]*/: { n:'PtgAttrIfError', f:parse_PtgAttrIfError },\n\t/*::[*/0xFF/*::]*/: {}\n};\n\n/* [MS-XLS] 2.5.198.103 ; [MS-XLSB] 2.5.97.87 */\nfunction parse_RgbExtra(blob, length, rgce, opts) {\n\tif(opts.biff < 8) return parsenoop(blob, length);\n\tvar target = blob.l + length;\n\tvar o = [];\n\tfor(var i = 0; i !== rgce.length; ++i) {\n\t\tswitch(rgce[i][0]) {\n\t\t\tcase 'PtgArray': /* PtgArray -> PtgExtraArray */\n\t\t\t\trgce[i][1] = parse_PtgExtraArray(blob, 0, opts);\n\t\t\t\to.push(rgce[i][1]);\n\t\t\t\tbreak;\n\t\t\tcase 'PtgMemArea': /* PtgMemArea -> PtgExtraMem */\n\t\t\t\trgce[i][2] = parse_PtgExtraMem(blob, rgce[i][1], opts);\n\t\t\t\to.push(rgce[i][2]);\n\t\t\t\tbreak;\n\t\t\tcase 'PtgExp': /* PtgExp -> PtgExtraCol */\n\t\t\t\tif(opts && opts.biff == 12) {\n\t\t\t\t\trgce[i][1][1] = blob.read_shift(4);\n\t\t\t\t\to.push(rgce[i][1]);\n\t\t\t\t} break;\n\t\t\tcase 'PtgList': /* TODO: PtgList -> PtgExtraList */\n\t\t\tcase 'PtgElfRadicalS': /* TODO: PtgElfRadicalS -> PtgExtraElf */\n\t\t\tcase 'PtgElfColS': /* TODO: PtgElfColS -> PtgExtraElf */\n\t\t\tcase 'PtgElfColSV': /* TODO: PtgElfColSV -> PtgExtraElf */\n\t\t\t\tthrow \"Unsupported \" + rgce[i][0];\n\t\t\tdefault: break;\n\t\t}\n\t}\n\tlength = target - blob.l;\n\t/* note: this is technically an error but Excel disregards */\n\t//if(target !== blob.l && blob.l !== target - length) throw new Error(target + \" != \" + blob.l);\n\tif(length !== 0) o.push(parsenoop(blob, length));\n\treturn o;\n}\n\n/* [MS-XLS] 2.5.198.104 ; [MS-XLSB] 2.5.97.88 */\nfunction parse_Rgce(blob, length, opts) {\n\tvar target = blob.l + length;\n\tvar R, id, ptgs = [];\n\twhile(target != blob.l) {\n\t\tlength = target - blob.l;\n\t\tid = blob[blob.l];\n\t\tR = PtgTypes[id] || PtgTypes[PtgDupes[id]];\n\t\tif(id === 0x18 || id === 0x19) R = (id === 0x18 ? Ptg18 : Ptg19)[blob[blob.l + 1]];\n\t\tif(!R || !R.f) { /*ptgs.push*/(parsenoop(blob, length)); }\n\t\telse { ptgs.push([R.n, R.f(blob, length, opts)]); }\n\t}\n\treturn ptgs;\n}\n\nfunction stringify_array(f/*:Array>*/)/*:string*/ {\n\tvar o/*:Array*/ = [];\n\tfor(var i = 0; i < f.length; ++i) {\n\t\tvar x = f[i], r/*:Array*/ = [];\n\t\tfor(var j = 0; j < x.length; ++j) {\n\t\t\tvar y = x[j];\n\t\t\tif(y) switch(y[0]) {\n\t\t\t\t// TODO: handle embedded quotes\n\t\t\t\tcase 0x02:\n\t\t\t\t\t/*:: if(typeof y[1] != 'string') throw \"unreachable\"; */\n\t\t\t\t\tr.push('\"' + y[1].replace(/\"/g,'\"\"') + '\"'); break;\n\t\t\t\tdefault: r.push(y[1]);\n\t\t\t} else r.push(\"\");\n\t\t}\n\t\to.push(r.join(\",\"));\n\t}\n\treturn o.join(\";\");\n}\n\n/* [MS-XLS] 2.2.2 ; [MS-XLSB] 2.2.2 TODO */\nvar PtgBinOp = {\n\tPtgAdd: \"+\",\n\tPtgConcat: \"&\",\n\tPtgDiv: \"/\",\n\tPtgEq: \"=\",\n\tPtgGe: \">=\",\n\tPtgGt: \">\",\n\tPtgLe: \"<=\",\n\tPtgLt: \"<\",\n\tPtgMul: \"*\",\n\tPtgNe: \"<>\",\n\tPtgPower: \"^\",\n\tPtgSub: \"-\"\n};\n\n// TODO: explore space\nfunction make_3d_range(start, end) {\n\tvar s = start.lastIndexOf(\"!\"), e = end.lastIndexOf(\"!\");\n\tif(s == -1 && e == -1) return start + \":\" + end;\n\tif(s > 0 && e > 0 && start.slice(0, s).toLowerCase() == end.slice(0, e).toLowerCase()) return start + \":\" + end.slice(e+1);\n\tconsole.error(\"Cannot hydrate range\", start, end);\n\treturn start + \":\" + end;\n}\n\nfunction get_ixti_raw(supbooks, ixti/*:number*/, opts)/*:string*/ {\n\tif(!supbooks) return \"SH33TJSERR0\";\n\tif(opts.biff > 8 && (!supbooks.XTI || !supbooks.XTI[ixti])) return supbooks.SheetNames[ixti];\n\tif(!supbooks.XTI) return \"SH33TJSERR6\";\n\tvar XTI = supbooks.XTI[ixti];\n\tif(opts.biff < 8) {\n\t\tif(ixti > 10000) ixti-= 65536;\n\t\tif(ixti < 0) ixti = -ixti;\n\t\treturn ixti == 0 ? \"\" : supbooks.XTI[ixti - 1];\n\t}\n\tif(!XTI) return \"SH33TJSERR1\";\n\tvar o = \"\";\n\tif(opts.biff > 8) switch(supbooks[XTI[0]][0]) {\n\t\tcase 0x0165: /* 'BrtSupSelf' */\n\t\t\to = XTI[1] == -1 ? \"#REF\" : supbooks.SheetNames[XTI[1]];\n\t\t\treturn XTI[1] == XTI[2] ? o : o + \":\" + supbooks.SheetNames[XTI[2]];\n\t\tcase 0x0166: /* 'BrtSupSame' */\n\t\t\tif(opts.SID != null) return supbooks.SheetNames[opts.SID];\n\t\t\treturn \"SH33TJSSAME\" + supbooks[XTI[0]][0];\n\t\tcase 0x0163: /* 'BrtSupBookSrc' */\n\t\t\t/* falls through */\n\t\tdefault: return \"SH33TJSSRC\" + supbooks[XTI[0]][0];\n\t}\n\tswitch(supbooks[XTI[0]][0][0]) {\n\t\tcase 0x0401:\n\t\t\to = XTI[1] == -1 ? \"#REF\" : (supbooks.SheetNames[XTI[1]] || \"SH33TJSERR3\");\n\t\t\treturn XTI[1] == XTI[2] ? o : o + \":\" + supbooks.SheetNames[XTI[2]];\n\t\tcase 0x3A01: return supbooks[XTI[0]].slice(1).map(function(name) { return name.Name; }).join(\";;\"); //return \"SH33TJSERR8\";\n\t\tdefault:\n\t\t\tif(!supbooks[XTI[0]][0][3]) return \"SH33TJSERR2\";\n\t\t\to = XTI[1] == -1 ? \"#REF\" : (supbooks[XTI[0]][0][3][XTI[1]] || \"SH33TJSERR4\");\n\t\t\treturn XTI[1] == XTI[2] ? o : o + \":\" + supbooks[XTI[0]][0][3][XTI[2]];\n\t}\n}\nfunction get_ixti(supbooks, ixti/*:number*/, opts)/*:string*/ {\n\tvar ixtiraw = get_ixti_raw(supbooks, ixti, opts);\n\treturn ixtiraw == \"#REF\" ? ixtiraw : formula_quote_sheet_name(ixtiraw, opts);\n}\nfunction stringify_formula(formula/*Array*/, range, cell/*:any*/, supbooks, opts)/*:string*/ {\n\tvar biff = (opts && opts.biff) || 8;\n\tvar _range = /*range != null ? range :*/ {s:{c:0, r:0},e:{c:0, r:0}};\n\tvar stack/*:Array*/ = [], e1, e2, /*::type,*/ c/*:CellAddress*/, ixti=0, nameidx=0, r, sname=\"\";\n\tif(!formula[0] || !formula[0][0]) return \"\";\n\tvar last_sp = -1, sp = \"\";\n\tfor(var ff = 0, fflen = formula[0].length; ff < fflen; ++ff) {\n\t\tvar f = formula[0][ff];\n\t\tswitch(f[0]) {\n\t\t\tcase 'PtgUminus': /* [MS-XLS] 2.5.198.93 */\n\t\t\t\tstack.push(\"-\" + stack.pop()); break;\n\t\t\tcase 'PtgUplus': /* [MS-XLS] 2.5.198.95 */\n\t\t\t\tstack.push(\"+\" + stack.pop()); break;\n\t\t\tcase 'PtgPercent': /* [MS-XLS] 2.5.198.81 */\n\t\t\t\tstack.push(stack.pop() + \"%\"); break;\n\n\t\t\tcase 'PtgAdd': /* [MS-XLS] 2.5.198.26 */\n\t\t\tcase 'PtgConcat': /* [MS-XLS] 2.5.198.43 */\n\t\t\tcase 'PtgDiv': /* [MS-XLS] 2.5.198.45 */\n\t\t\tcase 'PtgEq': /* [MS-XLS] 2.5.198.56 */\n\t\t\tcase 'PtgGe': /* [MS-XLS] 2.5.198.64 */\n\t\t\tcase 'PtgGt': /* [MS-XLS] 2.5.198.65 */\n\t\t\tcase 'PtgLe': /* [MS-XLS] 2.5.198.68 */\n\t\t\tcase 'PtgLt': /* [MS-XLS] 2.5.198.69 */\n\t\t\tcase 'PtgMul': /* [MS-XLS] 2.5.198.75 */\n\t\t\tcase 'PtgNe': /* [MS-XLS] 2.5.198.78 */\n\t\t\tcase 'PtgPower': /* [MS-XLS] 2.5.198.82 */\n\t\t\tcase 'PtgSub': /* [MS-XLS] 2.5.198.90 */\n\t\t\t\te1 = stack.pop(); e2 = stack.pop();\n\t\t\t\tif(last_sp >= 0) {\n\t\t\t\t\tswitch(formula[0][last_sp][1][0]) {\n\t\t\t\t\t\tcase 0:\n\t\t\t\t\t\t\t// $FlowIgnore\n\t\t\t\t\t\t\tsp = fill(\" \", formula[0][last_sp][1][1]); break;\n\t\t\t\t\t\tcase 1:\n\t\t\t\t\t\t\t// $FlowIgnore\n\t\t\t\t\t\t\tsp = fill(\"\\r\", formula[0][last_sp][1][1]); break;\n\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\tsp = \"\";\n\t\t\t\t\t\t\t// $FlowIgnore\n\t\t\t\t\t\t\tif(opts.WTF) throw new Error(\"Unexpected PtgAttrSpaceType \" + formula[0][last_sp][1][0]);\n\t\t\t\t\t}\n\t\t\t\t\te2 = e2 + sp;\n\t\t\t\t\tlast_sp = -1;\n\t\t\t\t}\n\t\t\t\tstack.push(e2+PtgBinOp[f[0]]+e1);\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgIsect': /* [MS-XLS] 2.5.198.67 */\n\t\t\t\te1 = stack.pop(); e2 = stack.pop();\n\t\t\t\tstack.push(e2+\" \"+e1);\n\t\t\t\tbreak;\n\t\t\tcase 'PtgUnion': /* [MS-XLS] 2.5.198.94 */\n\t\t\t\te1 = stack.pop(); e2 = stack.pop();\n\t\t\t\tstack.push(e2+\",\"+e1);\n\t\t\t\tbreak;\n\t\t\tcase 'PtgRange': /* [MS-XLS] 2.5.198.83 */\n\t\t\t\te1 = stack.pop(); e2 = stack.pop();\n\t\t\t\tstack.push(make_3d_range(e2,e1));\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgAttrChoose': /* [MS-XLS] 2.5.198.34 */\n\t\t\t\tbreak;\n\t\t\tcase 'PtgAttrGoto': /* [MS-XLS] 2.5.198.35 */\n\t\t\t\tbreak;\n\t\t\tcase 'PtgAttrIf': /* [MS-XLS] 2.5.198.36 */\n\t\t\t\tbreak;\n\t\t\tcase 'PtgAttrIfError': /* [MS-XLSB] 2.5.97.28 */\n\t\t\t\tbreak;\n\n\n\t\t\tcase 'PtgRef': /* [MS-XLS] 2.5.198.84 */\n\t\t\t\t/*::type = f[1][0]; */c = shift_cell_xls((f[1][1]/*:any*/), _range, opts);\n\t\t\t\tstack.push(encode_cell_xls(c, biff));\n\t\t\t\tbreak;\n\t\t\tcase 'PtgRefN': /* [MS-XLS] 2.5.198.88 */\n\t\t\t\t/*::type = f[1][0]; */c = cell ? shift_cell_xls((f[1][1]/*:any*/), cell, opts) : (f[1][1]/*:any*/);\n\t\t\t\tstack.push(encode_cell_xls(c, biff));\n\t\t\t\tbreak;\n\t\t\tcase 'PtgRef3d': /* [MS-XLS] 2.5.198.85 */\n\t\t\t\t/*::type = f[1][0]; */ixti = /*::Number(*/f[1][1]/*::)*/; c = shift_cell_xls((f[1][2]/*:any*/), _range, opts);\n\t\t\t\tsname = get_ixti(supbooks, ixti, opts);\n\t\t\t\tvar w = sname; /* IE9 fails on defined names */ // eslint-disable-line no-unused-vars\n\t\t\t\tstack.push(sname + \"!\" + encode_cell_xls(c, biff));\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgFunc': /* [MS-XLS] 2.5.198.62 */\n\t\t\tcase 'PtgFuncVar': /* [MS-XLS] 2.5.198.63 */\n\t\t\t\t/* f[1] = [argc, func, type] */\n\t\t\t\tvar argc/*:number*/ = (f[1][0]/*:any*/), func/*:string*/ = (f[1][1]/*:any*/);\n\t\t\t\tif(!argc) argc = 0;\n\t\t\t\targc &= 0x7F;\n\t\t\t\tvar args = argc == 0 ? [] : stack.slice(-argc);\n\t\t\t\tstack.length -= argc;\n\t\t\t\tif(func === 'User') func = args.shift();\n\t\t\t\tstack.push(func + \"(\" + args.join(\",\") + \")\");\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgBool': /* [MS-XLS] 2.5.198.42 */\n\t\t\t\tstack.push(f[1] ? \"TRUE\" : \"FALSE\"); break;\n\t\t\tcase 'PtgInt': /* [MS-XLS] 2.5.198.66 */\n\t\t\t\tstack.push(/*::String(*/f[1]/*::)*/); break;\n\t\t\tcase 'PtgNum': /* [MS-XLS] 2.5.198.79 TODO: precision? */\n\t\t\t\tstack.push(String(f[1])); break;\n\t\t\tcase 'PtgStr': /* [MS-XLS] 2.5.198.89 */\n\t\t\t\t// $FlowIgnore\n\t\t\t\tstack.push('\"' + f[1].replace(/\"/g, '\"\"') + '\"'); break;\n\t\t\tcase 'PtgErr': /* [MS-XLS] 2.5.198.57 */\n\t\t\t\tstack.push(/*::String(*/f[1]/*::)*/); break;\n\t\t\tcase 'PtgAreaN': /* [MS-XLS] 2.5.198.31 TODO */\n\t\t\t\t/*::type = f[1][0]; */r = shift_range_xls(f[1][1], cell ? {s:cell} : _range, opts);\n\t\t\t\tstack.push(encode_range_xls((r/*:any*/), opts));\n\t\t\t\tbreak;\n\t\t\tcase 'PtgArea': /* [MS-XLS] 2.5.198.27 TODO: fixed points */\n\t\t\t\t/*::type = f[1][0]; */r = shift_range_xls(f[1][1], _range, opts);\n\t\t\t\tstack.push(encode_range_xls((r/*:any*/), opts));\n\t\t\t\tbreak;\n\t\t\tcase 'PtgArea3d': /* [MS-XLS] 2.5.198.28 TODO */\n\t\t\t\t/*::type = f[1][0]; */ixti = /*::Number(*/f[1][1]/*::)*/; r = f[1][2];\n\t\t\t\tsname = get_ixti(supbooks, ixti, opts);\n\t\t\t\tstack.push(sname + \"!\" + encode_range_xls((r/*:any*/), opts));\n\t\t\t\tbreak;\n\t\t\tcase 'PtgAttrSum': /* [MS-XLS] 2.5.198.41 */\n\t\t\t\tstack.push(\"SUM(\" + stack.pop() + \")\");\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgAttrBaxcel': /* [MS-XLS] 2.5.198.33 */\n\t\t\tcase 'PtgAttrSemi': /* [MS-XLS] 2.5.198.37 */\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgName': /* [MS-XLS] 2.5.198.76 ; [MS-XLSB] 2.5.97.60 TODO: revisions */\n\t\t\t\t/* f[1] = type, 0, nameindex */\n\t\t\t\tnameidx = (f[1][2]/*:any*/);\n\t\t\t\tvar lbl = (supbooks.names||[])[nameidx-1] || (supbooks[0]||[])[nameidx];\n\t\t\t\tvar name = lbl ? lbl.Name : \"SH33TJSNAME\" + String(nameidx);\n\t\t\t\t/* [MS-XLSB] 2.5.97.10 Ftab -- last verified 20220204 */\n\t\t\t\tif(name && name.slice(0,6) == \"_xlfn.\" && !opts.xlfn) name = name.slice(6);\n\t\t\t\tstack.push(name);\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgNameX': /* [MS-XLS] 2.5.198.77 ; [MS-XLSB] 2.5.97.61 TODO: revisions */\n\t\t\t\t/* f[1] = type, ixti, nameindex */\n\t\t\t\tvar bookidx/*:number*/ = (f[1][1]/*:any*/); nameidx = (f[1][2]/*:any*/); var externbook;\n\t\t\t\t/* TODO: Properly handle missing values -- this should be using get_ixti_raw primarily */\n\t\t\t\tif(opts.biff <= 5) {\n\t\t\t\t\tif(bookidx < 0) bookidx = -bookidx;\n\t\t\t\t\tif(supbooks[bookidx]) externbook = supbooks[bookidx][nameidx];\n\t\t\t\t} else {\n\t\t\t\t\tvar o = \"\";\n\t\t\t\t\tif(((supbooks[bookidx]||[])[0]||[])[0] == 0x3A01){/* empty */}\n\t\t\t\t\telse if(((supbooks[bookidx]||[])[0]||[])[0] == 0x0401){\n\t\t\t\t\t\tif(supbooks[bookidx][nameidx] && supbooks[bookidx][nameidx].itab > 0) {\n\t\t\t\t\t\t\to = supbooks.SheetNames[supbooks[bookidx][nameidx].itab-1] + \"!\";\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\telse o = supbooks.SheetNames[nameidx-1]+ \"!\";\n\t\t\t\t\tif(supbooks[bookidx] && supbooks[bookidx][nameidx]) o += supbooks[bookidx][nameidx].Name;\n\t\t\t\t\telse if(supbooks[0] && supbooks[0][nameidx]) o += supbooks[0][nameidx].Name;\n\t\t\t\t\telse {\n\t\t\t\t\t\tvar ixtidata = (get_ixti_raw(supbooks, bookidx, opts)||\"\").split(\";;\");\n\t\t\t\t\t\tif(ixtidata[nameidx - 1]) o = ixtidata[nameidx - 1]; // TODO: confirm this is correct\n\t\t\t\t\t\telse o += \"SH33TJSERRX\";\n\t\t\t\t\t}\n\t\t\t\t\tstack.push(o);\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\tif(!externbook) externbook = {Name: \"SH33TJSERRY\"};\n\t\t\t\tstack.push(externbook.Name);\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgParen': /* [MS-XLS] 2.5.198.80 */\n\t\t\t\tvar lp = '(', rp = ')';\n\t\t\t\tif(last_sp >= 0) {\n\t\t\t\t\tsp = \"\";\n\t\t\t\t\tswitch(formula[0][last_sp][1][0]) {\n\t\t\t\t\t\t// $FlowIgnore\n\t\t\t\t\t\tcase 2: lp = fill(\" \", formula[0][last_sp][1][1]) + lp; break;\n\t\t\t\t\t\t// $FlowIgnore\n\t\t\t\t\t\tcase 3: lp = fill(\"\\r\", formula[0][last_sp][1][1]) + lp; break;\n\t\t\t\t\t\t// $FlowIgnore\n\t\t\t\t\t\tcase 4: rp = fill(\" \", formula[0][last_sp][1][1]) + rp; break;\n\t\t\t\t\t\t// $FlowIgnore\n\t\t\t\t\t\tcase 5: rp = fill(\"\\r\", formula[0][last_sp][1][1]) + rp; break;\n\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\t// $FlowIgnore\n\t\t\t\t\t\t\tif(opts.WTF) throw new Error(\"Unexpected PtgAttrSpaceType \" + formula[0][last_sp][1][0]);\n\t\t\t\t\t}\n\t\t\t\t\tlast_sp = -1;\n\t\t\t\t}\n\t\t\t\tstack.push(lp + stack.pop() + rp); break;\n\n\t\t\tcase 'PtgRefErr': /* [MS-XLS] 2.5.198.86 */\n\t\t\t\tstack.push('#REF!'); break;\n\n\t\t\tcase 'PtgRefErr3d': /* [MS-XLS] 2.5.198.87 */\n\t\t\t\tstack.push('#REF!'); break;\n\n\t\t\tcase 'PtgExp': /* [MS-XLS] 2.5.198.58 TODO */\n\t\t\t\tc = {c:(f[1][1]/*:any*/),r:(f[1][0]/*:any*/)};\n\t\t\t\tvar q = ({c: cell.c, r:cell.r}/*:any*/);\n\t\t\t\tif(supbooks.sharedf[encode_cell(c)]) {\n\t\t\t\t\tvar parsedf = (supbooks.sharedf[encode_cell(c)]);\n\t\t\t\t\tstack.push(stringify_formula(parsedf, _range, q, supbooks, opts));\n\t\t\t\t} else {\n\t\t\t\t\tvar fnd = false;\n\t\t\t\t\tfor(e1=0;e1!=supbooks.arrayf.length; ++e1) {\n\t\t\t\t\t\t/* TODO: should be something like range_has */\n\t\t\t\t\t\te2 = supbooks.arrayf[e1];\n\t\t\t\t\t\tif(c.c < e2[0].s.c || c.c > e2[0].e.c) continue;\n\t\t\t\t\t\tif(c.r < e2[0].s.r || c.r > e2[0].e.r) continue;\n\t\t\t\t\t\tstack.push(stringify_formula(e2[1], _range, q, supbooks, opts));\n\t\t\t\t\t\tfnd = true;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t\tif(!fnd) stack.push(/*::String(*/f[1]/*::)*/);\n\t\t\t\t}\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgArray': /* [MS-XLS] 2.5.198.32 TODO */\n\t\t\t\tstack.push(\"{\" + stringify_array(/*::(*/f[1]/*:: :any)*/) + \"}\");\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgMemArea': /* [MS-XLS] 2.5.198.70 TODO: confirm this is a non-display */\n\t\t\t\t//stack.push(\"(\" + f[2].map(encode_range).join(\",\") + \")\");\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgAttrSpace': /* [MS-XLS] 2.5.198.38 */\n\t\t\tcase 'PtgAttrSpaceSemi': /* [MS-XLS] 2.5.198.39 */\n\t\t\t\tlast_sp = ff;\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgTbl': /* [MS-XLS] 2.5.198.92 TODO */\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgMemErr': /* [MS-XLS] 2.5.198.71 */\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgMissArg': /* [MS-XLS] 2.5.198.74 */\n\t\t\t\tstack.push(\"\");\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgAreaErr': /* [MS-XLS] 2.5.198.29 */\n\t\t\t\tstack.push(\"#REF!\"); break;\n\n\t\t\tcase 'PtgAreaErr3d': /* [MS-XLS] 2.5.198.30 */\n\t\t\t\tstack.push(\"#REF!\"); break;\n\n\t\t\tcase 'PtgList': /* [MS-XLSB] 2.5.97.52 */\n\t\t\t\t// $FlowIgnore\n\t\t\t\tstack.push(\"Table\" + f[1].idx + \"[#\" + f[1].rt + \"]\");\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgMemAreaN':\n\t\t\tcase 'PtgMemNoMemN':\n\t\t\tcase 'PtgAttrNoop':\n\t\t\tcase 'PtgSheet':\n\t\t\tcase 'PtgEndSheet':\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgMemFunc': /* [MS-XLS] 2.5.198.72 TODO */\n\t\t\t\tbreak;\n\t\t\tcase 'PtgMemNoMem': /* [MS-XLS] 2.5.198.73 TODO */\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgElfCol': /* [MS-XLS] 2.5.198.46 */\n\t\t\tcase 'PtgElfColS': /* [MS-XLS] 2.5.198.47 */\n\t\t\tcase 'PtgElfColSV': /* [MS-XLS] 2.5.198.48 */\n\t\t\tcase 'PtgElfColV': /* [MS-XLS] 2.5.198.49 */\n\t\t\tcase 'PtgElfLel': /* [MS-XLS] 2.5.198.50 */\n\t\t\tcase 'PtgElfRadical': /* [MS-XLS] 2.5.198.51 */\n\t\t\tcase 'PtgElfRadicalLel': /* [MS-XLS] 2.5.198.52 */\n\t\t\tcase 'PtgElfRadicalS': /* [MS-XLS] 2.5.198.53 */\n\t\t\tcase 'PtgElfRw': /* [MS-XLS] 2.5.198.54 */\n\t\t\tcase 'PtgElfRwV': /* [MS-XLS] 2.5.198.55 */\n\t\t\t\tthrow new Error(\"Unsupported ELFs\");\n\n\t\t\tcase 'PtgSxName': /* [MS-XLS] 2.5.198.91 TODO -- find a test case */\n\t\t\t\tthrow new Error('Unrecognized Formula Token: ' + String(f));\n\t\t\tdefault: throw new Error('Unrecognized Formula Token: ' + String(f));\n\t\t}\n\t\tvar PtgNonDisp = ['PtgAttrSpace', 'PtgAttrSpaceSemi', 'PtgAttrGoto'];\n\t\tif(opts.biff != 3) if(last_sp >= 0 && PtgNonDisp.indexOf(formula[0][ff][0]) == -1) {\n\t\t\tf = formula[0][last_sp];\n\t\t\tvar _left = true;\n\t\t\tswitch(f[1][0]) {\n\t\t\t\t/* note: some bad XLSB files omit the PtgParen */\n\t\t\t\tcase 4: _left = false;\n\t\t\t\t/* falls through */\n\t\t\t\tcase 0:\n\t\t\t\t\t// $FlowIgnore\n\t\t\t\t\tsp = fill(\" \", f[1][1]); break;\n\t\t\t\tcase 5: _left = false;\n\t\t\t\t/* falls through */\n\t\t\t\tcase 1:\n\t\t\t\t\t// $FlowIgnore\n\t\t\t\t\tsp = fill(\"\\r\", f[1][1]); break;\n\t\t\t\tdefault:\n\t\t\t\t\tsp = \"\";\n\t\t\t\t\t// $FlowIgnore\n\t\t\t\t\tif(opts.WTF) throw new Error(\"Unexpected PtgAttrSpaceType \" + f[1][0]);\n\t\t\t}\n\t\t\tstack.push((_left ? sp : \"\") + stack.pop() + (_left ? \"\" : sp));\n\t\t\tlast_sp = -1;\n\t\t}\n\t}\n\tif(stack.length > 1 && opts.WTF) throw new Error(\"bad formula stack\");\n\tif(stack[0] == \"TRUE\") return true; if(stack[0] == \"FALSE\") return false;\n\treturn stack[0];\n}\n\n/* [MS-XLS] 2.5.198.1 TODO */\nfunction parse_ArrayParsedFormula(blob, length, opts/*::, ref*/) {\n\tvar target = blob.l + length, len = opts.biff == 2 ? 1 : 2;\n\tvar rgcb, cce = blob.read_shift(len); // length of rgce\n\tif(cce == 0xFFFF) return [[],parsenoop(blob, length-2)];\n\tvar rgce = parse_Rgce(blob, cce, opts);\n\tif(length !== cce + len) rgcb = parse_RgbExtra(blob, length - cce - len, rgce, opts);\n\tblob.l = target;\n\treturn [rgce, rgcb];\n}\n\n/* [MS-XLS] 2.5.198.3 TODO */\nfunction parse_XLSCellParsedFormula(blob, length, opts) {\n\tvar target = blob.l + length, len = opts.biff == 2 ? 1 : 2;\n\tvar rgcb, cce = blob.read_shift(len); // length of rgce\n\tif(cce == 0xFFFF) return [[],parsenoop(blob, length-2)];\n\tvar rgce = parse_Rgce(blob, cce, opts);\n\tif(length !== cce + len) rgcb = parse_RgbExtra(blob, length - cce - len, rgce, opts);\n\tblob.l = target;\n\treturn [rgce, rgcb];\n}\n\n/* [MS-XLS] 2.5.198.21 */\nfunction parse_NameParsedFormula(blob, length, opts, cce) {\n\tvar target = blob.l + length;\n\tvar rgce = parse_Rgce(blob, cce, opts);\n\tvar rgcb;\n\tif(target !== blob.l) rgcb = parse_RgbExtra(blob, target - blob.l, rgce, opts);\n\treturn [rgce, rgcb];\n}\n\n/* [MS-XLS] 2.5.198.118 TODO */\nfunction parse_SharedParsedFormula(blob, length, opts) {\n\tvar target = blob.l + length;\n\tvar rgcb, cce = blob.read_shift(2); // length of rgce\n\tvar rgce = parse_Rgce(blob, cce, opts);\n\tif(cce == 0xFFFF) return [[],parsenoop(blob, length-2)];\n\tif(length !== cce + 2) rgcb = parse_RgbExtra(blob, target - cce - 2, rgce, opts);\n\treturn [rgce, rgcb];\n}\n\n/* [MS-XLS] 2.5.133 TODO: how to emit empty strings? */\nfunction parse_FormulaValue(blob/*::, length*/) {\n\tvar b;\n\tif(__readUInt16LE(blob,blob.l + 6) !== 0xFFFF) return [parse_Xnum(blob),'n'];\n\tswitch(blob[blob.l]) {\n\t\tcase 0x00: blob.l += 8; return [\"String\", 's'];\n\t\tcase 0x01: b = blob[blob.l+2] === 0x1; blob.l += 8; return [b,'b'];\n\t\tcase 0x02: b = blob[blob.l+2]; blob.l += 8; return [b,'e'];\n\t\tcase 0x03: blob.l += 8; return [\"\",'s'];\n\t}\n\treturn [];\n}\nfunction write_FormulaValue(value) {\n\tif(value == null) {\n\t\t// Blank String Value\n\t\tvar o = new_buf(8);\n\t\to.write_shift(1, 0x03);\n\t\to.write_shift(1, 0);\n\t\to.write_shift(2, 0);\n\t\to.write_shift(2, 0);\n\t\to.write_shift(2, 0xFFFF);\n\t\treturn o;\n\t} else if(typeof value == \"number\") return write_Xnum(value);\n\treturn write_Xnum(0);\n}\n\n/* [MS-XLS] 2.4.127 TODO */\nfunction parse_Formula(blob, length, opts) {\n\tvar end = blob.l + length;\n\tvar cell = parse_XLSCell(blob, 6);\n\tif(opts.biff == 2) ++blob.l;\n\tvar val = parse_FormulaValue(blob,8);\n\tvar flags = blob.read_shift(1);\n\tif(opts.biff != 2) {\n\t\tblob.read_shift(1);\n\t\tif(opts.biff >= 5) {\n\t\t\t/*var chn = */blob.read_shift(4);\n\t\t}\n\t}\n\tvar cbf = parse_XLSCellParsedFormula(blob, end - blob.l, opts);\n\treturn {cell:cell, val:val[0], formula:cbf, shared: (flags >> 3) & 1, tt:val[1]};\n}\nfunction write_Formula(cell/*:Cell*/, R/*:number*/, C/*:number*/, opts, os/*:number*/) {\n\t// Cell\n\tvar o1 = write_XLSCell(R, C, os);\n\n\t// FormulaValue\n\tvar o2 = write_FormulaValue(cell.v);\n\n\t// flags + cache\n\tvar o3 = new_buf(6);\n\tvar flags = 0x01 | 0x20;\n\to3.write_shift(2, flags);\n\to3.write_shift(4, 0);\n\n\t// CellParsedFormula\n\tvar bf = new_buf(cell.bf.length);\n\tfor(var i = 0; i < cell.bf.length; ++i) bf[i] = cell.bf[i];\n\n\tvar out = bconcat([o1, o2, o3, bf]);\n\treturn out;\n}\n\n\n/* XLSB Parsed Formula records have the same shape */\nfunction parse_XLSBParsedFormula(data, length, opts) {\n\tvar cce = data.read_shift(4);\n\tvar rgce = parse_Rgce(data, cce, opts);\n\tvar cb = data.read_shift(4);\n\tvar rgcb = cb > 0 ? parse_RgbExtra(data, cb, rgce, opts) : null;\n\treturn [rgce, rgcb];\n}\n\n/* [MS-XLSB] 2.5.97.1 ArrayParsedFormula */\nvar parse_XLSBArrayParsedFormula = parse_XLSBParsedFormula;\n/* [MS-XLSB] 2.5.97.4 CellParsedFormula */\nvar parse_XLSBCellParsedFormula = parse_XLSBParsedFormula;\n/* [MS-XLSB] 2.5.97.8 DVParsedFormula */\n//var parse_XLSBDVParsedFormula = parse_XLSBParsedFormula;\n/* [MS-XLSB] 2.5.97.9 FRTParsedFormula */\n//var parse_XLSBFRTParsedFormula = parse_XLSBParsedFormula2;\n/* [MS-XLSB] 2.5.97.12 NameParsedFormula */\nvar parse_XLSBNameParsedFormula = parse_XLSBParsedFormula;\n/* [MS-XLSB] 2.5.97.98 SharedParsedFormula */\nvar parse_XLSBSharedParsedFormula = parse_XLSBParsedFormula;\n\n/* Writes a PtgNum or PtgInt */\nfunction write_XLSBFormulaNum(val/*:number*/) {\n\tif((val | 0) == val && val < Math.pow(2,16) && val >= 0) {\n\t\tvar oint = new_buf(11);\n\t\toint.write_shift(4, 3);\n\t\toint.write_shift(1, 0x1e);\n\t\toint.write_shift(2, val);\n\t\toint.write_shift(4, 0);\n\t\treturn oint;\n\t}\n\n\tvar num = new_buf(17);\n\tnum.write_shift(4, 11);\n\tnum.write_shift(1, 0x1f);\n\tnum.write_shift(8, val);\n\tnum.write_shift(4, 0);\n\treturn num;\n}\n/* Writes a PtgErr */\nfunction write_XLSBFormulaErr(val/*:number*/) {\n\tvar oint = new_buf(10);\n\toint.write_shift(4, 2);\n\toint.write_shift(1, 0x1C);\n\toint.write_shift(1, val);\n\toint.write_shift(4, 0);\n\treturn oint;\n}\n/* Writes a PtgBool */\nfunction write_XLSBFormulaBool(val/*:boolean*/) {\n\tvar oint = new_buf(10);\n\toint.write_shift(4, 2);\n\toint.write_shift(1, 0x1D);\n\toint.write_shift(1, val?1:0);\n\toint.write_shift(4, 0);\n\treturn oint;\n}\n\n/* Writes a PtgStr */\nfunction write_XLSBFormulaStr(val/*:string*/) {\n\tvar preamble = new_buf(7);\n\tpreamble.write_shift(4, 3 + 2 * val.length);\n\tpreamble.write_shift(1, 0x17);\n\tpreamble.write_shift(2, val.length);\n\n\tvar body = new_buf(2 * val.length);\n\tbody.write_shift(2 * val.length, val, \"utf16le\");\n\n\tvar postamble = new_buf(4);\n\tpostamble.write_shift(4, 0);\n\n\treturn bconcat([preamble, body, postamble]);\n}\n\n/* Writes a PtgRef */\nfunction write_XLSBFormulaRef(str) {\n\tvar cell = decode_cell(str);\n\tvar out = new_buf(15);\n\tout.write_shift(4, 7);\n\tout.write_shift(1, 0x04 | ((1)<<5));\n\tout.write_shift(4, cell.r);\n\tout.write_shift(2, cell.c | ((str.charAt(0) == \"$\" ? 0 : 1)<<14) | ((str.match(/\\$\\d/) ? 0 : 1)<<15)); // <== ColRelShort\n\tout.write_shift(4, 0);\n\n\treturn out;\n}\n\n/* Writes a PtgRef3d */\nfunction write_XLSBFormulaRef3D(str, wb) {\n\tvar lastbang = str.lastIndexOf(\"!\");\n\tvar sname = str.slice(0, lastbang);\n\tstr = str.slice(lastbang+1);\n\tvar cell = decode_cell(str);\n\tif(sname.charAt(0) == \"'\") sname = sname.slice(1, -1).replace(/''/g, \"'\");\n\n\tvar out = new_buf(17);\n\tout.write_shift(4, 9);\n\tout.write_shift(1, 0x1A | ((1)<<5));\n\tout.write_shift(2, 2 + wb.SheetNames.map(function(n) { return n.toLowerCase(); }).indexOf(sname.toLowerCase()));\n\tout.write_shift(4, cell.r);\n\tout.write_shift(2, cell.c | ((str.charAt(0) == \"$\" ? 0 : 1)<<14) | ((str.match(/\\$\\d/) ? 0 : 1)<<15)); // <== ColRelShort\n\tout.write_shift(4, 0);\n\n\treturn out;\n}\n\n/* Writes a PtgRefErr3d */\nfunction write_XLSBFormulaRefErr3D(str, wb) {\n\tvar lastbang = str.lastIndexOf(\"!\");\n\tvar sname = str.slice(0, lastbang);\n\tstr = str.slice(lastbang+1);\n\tif(sname.charAt(0) == \"'\") sname = sname.slice(1, -1).replace(/''/g, \"'\");\n\n\tvar out = new_buf(17);\n\tout.write_shift(4, 9);\n\tout.write_shift(1, 0x1C | ((1)<<5));\n\tout.write_shift(2, 2 + wb.SheetNames.map(function(n) { return n.toLowerCase(); }).indexOf(sname.toLowerCase()));\n\tout.write_shift(4, 0);\n\tout.write_shift(2, 0); // <== ColRelShort\n\tout.write_shift(4, 0);\n\n\treturn out;\n}\n\n/* Writes a single sheet range [PtgRef PtgRef PtgRange] */\nfunction write_XLSBFormulaRange(_str) {\n\tvar parts = _str.split(\":\"), str = parts[0];\n\n\tvar out = new_buf(23);\n\tout.write_shift(4, 15);\n\n\t/* start cell */\n\tstr = parts[0]; var cell = decode_cell(str);\n\tout.write_shift(1, 0x04 | ((1)<<5));\n\tout.write_shift(4, cell.r);\n\tout.write_shift(2, cell.c | ((str.charAt(0) == \"$\" ? 0 : 1)<<14) | ((str.match(/\\$\\d/) ? 0 : 1)<<15)); // <== ColRelShort\n\tout.write_shift(4, 0);\n\n\t/* end cell */\n\tstr = parts[1]; cell = decode_cell(str);\n\tout.write_shift(1, 0x04 | ((1)<<5));\n\tout.write_shift(4, cell.r);\n\tout.write_shift(2, cell.c | ((str.charAt(0) == \"$\" ? 0 : 1)<<14) | ((str.match(/\\$\\d/) ? 0 : 1)<<15)); // <== ColRelShort\n\tout.write_shift(4, 0);\n\n\t/* PtgRange */\n\tout.write_shift(1, 0x11);\n\n\tout.write_shift(4, 0);\n\n\treturn out;\n}\n\n/* Writes a range with explicit sheet name [PtgRef3D PtgRef3D PtgRange] */\nfunction write_XLSBFormulaRangeWS(_str, wb) {\n\tvar lastbang = _str.lastIndexOf(\"!\");\n\tvar sname = _str.slice(0, lastbang);\n\t_str = _str.slice(lastbang+1);\n\tif(sname.charAt(0) == \"'\") sname = sname.slice(1, -1).replace(/''/g, \"'\");\n\tvar parts = _str.split(\":\"); str = parts[0];\n\n\tvar out = new_buf(27);\n\tout.write_shift(4, 19);\n\n\t/* start cell */\n\tvar str = parts[0], cell = decode_cell(str);\n\tout.write_shift(1, 0x1A | ((1)<<5));\n\tout.write_shift(2, 2 + wb.SheetNames.map(function(n) { return n.toLowerCase(); }).indexOf(sname.toLowerCase()));\n\tout.write_shift(4, cell.r);\n\tout.write_shift(2, cell.c | ((str.charAt(0) == \"$\" ? 0 : 1)<<14) | ((str.match(/\\$\\d/) ? 0 : 1)<<15)); // <== ColRelShort\n\n\t/* end cell */\n\tstr = parts[1]; cell = decode_cell(str);\n\tout.write_shift(1, 0x1A | ((1)<<5));\n\tout.write_shift(2, 2 + wb.SheetNames.map(function(n) { return n.toLowerCase(); }).indexOf(sname.toLowerCase()));\n\tout.write_shift(4, cell.r);\n\tout.write_shift(2, cell.c | ((str.charAt(0) == \"$\" ? 0 : 1)<<14) | ((str.match(/\\$\\d/) ? 0 : 1)<<15)); // <== ColRelShort\n\n\t/* PtgRange */\n\tout.write_shift(1, 0x11);\n\n\tout.write_shift(4, 0);\n\n\treturn out;\n}\n\n/* Writes a range with explicit sheet name [PtgArea3d] */\nfunction write_XLSBFormulaArea3D(_str, wb) {\n\tvar lastbang = _str.lastIndexOf(\"!\");\n\tvar sname = _str.slice(0, lastbang);\n\t_str = _str.slice(lastbang+1);\n\tif(sname.charAt(0) == \"'\") sname = sname.slice(1, -1).replace(/''/g, \"'\");\n\tvar range = decode_range(_str);\n\n\tvar out = new_buf(23);\n\tout.write_shift(4, 15);\n\n\tout.write_shift(1, 0x1B | ((1)<<5));\n\tout.write_shift(2, 2 + wb.SheetNames.map(function(n) { return n.toLowerCase(); }).indexOf(sname.toLowerCase()));\n\tout.write_shift(4, range.s.r);\n\tout.write_shift(4, range.e.r);\n\tout.write_shift(2, range.s.c);\n\tout.write_shift(2, range.e.c);\n\n\tout.write_shift(4, 0);\n\n\treturn out;\n}\n\n\n/* General Formula */\nfunction write_XLSBFormula(val/*:string|number*/, wb) {\n\tif(typeof val == \"number\") return write_XLSBFormulaNum(val);\n\tif(typeof val == \"boolean\") return write_XLSBFormulaBool(val);\n\tif(/^#(DIV\\/0!|GETTING_DATA|N\\/A|NAME\\?|NULL!|NUM!|REF!|VALUE!)$/.test(val)) return write_XLSBFormulaErr(+RBErr[val]);\n\tif(val.match(/^\\$?(?:[A-W][A-Z]{2}|X[A-E][A-Z]|XF[A-D]|[A-Z]{1,2})\\$?(?:10[0-3]\\d{4}|104[0-7]\\d{3}|1048[0-4]\\d{2}|10485[0-6]\\d|104857[0-6]|[1-9]\\d{0,5})$/)) return write_XLSBFormulaRef(val);\n\tif(val.match(/^\\$?(?:[A-W][A-Z]{2}|X[A-E][A-Z]|XF[A-D]|[A-Z]{1,2})\\$?(?:10[0-3]\\d{4}|104[0-7]\\d{3}|1048[0-4]\\d{2}|10485[0-6]\\d|104857[0-6]|[1-9]\\d{0,5}):\\$?(?:[A-W][A-Z]{2}|X[A-E][A-Z]|XF[A-D]|[A-Z]{1,2})\\$?(?:10[0-3]\\d{4}|104[0-7]\\d{3}|1048[0-4]\\d{2}|10485[0-6]\\d|104857[0-6]|[1-9]\\d{0,5})$/)) return write_XLSBFormulaRange(val);\n\tif(val.match(/^#REF!\\$?(?:[A-W][A-Z]{2}|X[A-E][A-Z]|XF[A-D]|[A-Z]{1,2})\\$?(?:10[0-3]\\d{4}|104[0-7]\\d{3}|1048[0-4]\\d{2}|10485[0-6]\\d|104857[0-6]|[1-9]\\d{0,5}):\\$?(?:[A-W][A-Z]{2}|X[A-E][A-Z]|XF[A-D]|[A-Z]{1,2})\\$?(?:10[0-3]\\d{4}|104[0-7]\\d{3}|1048[0-4]\\d{2}|10485[0-6]\\d|104857[0-6]|[1-9]\\d{0,5})$/)) return write_XLSBFormulaArea3D(val, wb);\n\tif(val.match(/^(?:'[^\\\\\\/?*\\[\\]:]*'|[^'][^\\\\\\/?*\\[\\]:'`~!@#$%^()\\-=+{}|;,<.>]*)!\\$?(?:[A-W][A-Z]{2}|X[A-E][A-Z]|XF[A-D]|[A-Z]{1,2})\\$?(?:10[0-3]\\d{4}|104[0-7]\\d{3}|1048[0-4]\\d{2}|10485[0-6]\\d|104857[0-6]|[1-9]\\d{0,5})$/)) return write_XLSBFormulaRef3D(val, wb);\n\tif(val.match(/^(?:'[^\\\\\\/?*\\[\\]:]*'|[^'][^\\\\\\/?*\\[\\]:'`~!@#$%^()\\-=+{}|;,<.>]*)!\\$?(?:[A-W][A-Z]{2}|X[A-E][A-Z]|XF[A-D]|[A-Z]{1,2})\\$?(?:10[0-3]\\d{4}|104[0-7]\\d{3}|1048[0-4]\\d{2}|10485[0-6]\\d|104857[0-6]|[1-9]\\d{0,5}):\\$?(?:[A-W][A-Z]{2}|X[A-E][A-Z]|XF[A-D]|[A-Z]{1,2})\\$?(?:10[0-3]\\d{4}|104[0-7]\\d{3}|1048[0-4]\\d{2}|10485[0-6]\\d|104857[0-6]|[1-9]\\d{0,5})$/)) return write_XLSBFormulaRangeWS(val, wb);\n\tif(/^(?:'[^\\\\\\/?*\\[\\]:]*'|[^'][^\\\\\\/?*\\[\\]:'`~!@#$%^()\\-=+{}|;,<.>]*)!#REF!$/.test(val)) return write_XLSBFormulaRefErr3D(val, wb);\n\tif(/^\".*\"$/.test(val)) return write_XLSBFormulaStr(val);\n\tif(/^[+-]\\d+$/.test(val)) return write_XLSBFormulaNum(parseInt(val, 10));\n\tthrow \"Formula |\" + val + \"| not supported for XLSB\";\n}\nvar write_XLSBNameParsedFormula = write_XLSBFormula;\nvar Cetab = {\n 0: \"BEEP\",\n 1: \"OPEN\",\n 2: \"OPEN.LINKS\",\n 3: \"CLOSE.ALL\",\n 4: \"SAVE\",\n 5: \"SAVE.AS\",\n 6: \"FILE.DELETE\",\n 7: \"PAGE.SETUP\",\n 8: \"PRINT\",\n 9: \"PRINTER.SETUP\",\n 10: \"QUIT\",\n 11: \"NEW.WINDOW\",\n 12: \"ARRANGE.ALL\",\n 13: \"WINDOW.SIZE\",\n 14: \"WINDOW.MOVE\",\n 15: \"FULL\",\n 16: \"CLOSE\",\n 17: \"RUN\",\n 22: \"SET.PRINT.AREA\",\n 23: \"SET.PRINT.TITLES\",\n 24: \"SET.PAGE.BREAK\",\n 25: \"REMOVE.PAGE.BREAK\",\n 26: \"FONT\",\n 27: \"DISPLAY\",\n 28: \"PROTECT.DOCUMENT\",\n 29: \"PRECISION\",\n 30: \"A1.R1C1\",\n 31: \"CALCULATE.NOW\",\n 32: \"CALCULATION\",\n 34: \"DATA.FIND\",\n 35: \"EXTRACT\",\n 36: \"DATA.DELETE\",\n 37: \"SET.DATABASE\",\n 38: \"SET.CRITERIA\",\n 39: \"SORT\",\n 40: \"DATA.SERIES\",\n 41: \"TABLE\",\n 42: \"FORMAT.NUMBER\",\n 43: \"ALIGNMENT\",\n 44: \"STYLE\",\n 45: \"BORDER\",\n 46: \"CELL.PROTECTION\",\n 47: \"COLUMN.WIDTH\",\n 48: \"UNDO\",\n 49: \"CUT\",\n 50: \"COPY\",\n 51: \"PASTE\",\n 52: \"CLEAR\",\n 53: \"PASTE.SPECIAL\",\n 54: \"EDIT.DELETE\",\n 55: \"INSERT\",\n 56: \"FILL.RIGHT\",\n 57: \"FILL.DOWN\",\n 61: \"DEFINE.NAME\",\n 62: \"CREATE.NAMES\",\n 63: \"FORMULA.GOTO\",\n 64: \"FORMULA.FIND\",\n 65: \"SELECT.LAST.CELL\",\n 66: \"SHOW.ACTIVE.CELL\",\n 67: \"GALLERY.AREA\",\n 68: \"GALLERY.BAR\",\n 69: \"GALLERY.COLUMN\",\n 70: \"GALLERY.LINE\",\n 71: \"GALLERY.PIE\",\n 72: \"GALLERY.SCATTER\",\n 73: \"COMBINATION\",\n 74: \"PREFERRED\",\n 75: \"ADD.OVERLAY\",\n 76: \"GRIDLINES\",\n 77: \"SET.PREFERRED\",\n 78: \"AXES\",\n 79: \"LEGEND\",\n 80: \"ATTACH.TEXT\",\n 81: \"ADD.ARROW\",\n 82: \"SELECT.CHART\",\n 83: \"SELECT.PLOT.AREA\",\n 84: \"PATTERNS\",\n 85: \"MAIN.CHART\",\n 86: \"OVERLAY\",\n 87: \"SCALE\",\n 88: \"FORMAT.LEGEND\",\n 89: \"FORMAT.TEXT\",\n 90: \"EDIT.REPEAT\",\n 91: \"PARSE\",\n 92: \"JUSTIFY\",\n 93: \"HIDE\",\n 94: \"UNHIDE\",\n 95: \"WORKSPACE\",\n 96: \"FORMULA\",\n 97: \"FORMULA.FILL\",\n 98: \"FORMULA.ARRAY\",\n 99: \"DATA.FIND.NEXT\",\n 100: \"DATA.FIND.PREV\",\n 101: \"FORMULA.FIND.NEXT\",\n 102: \"FORMULA.FIND.PREV\",\n 103: \"ACTIVATE\",\n 104: \"ACTIVATE.NEXT\",\n 105: \"ACTIVATE.PREV\",\n 106: \"UNLOCKED.NEXT\",\n 107: \"UNLOCKED.PREV\",\n 108: \"COPY.PICTURE\",\n 109: \"SELECT\",\n 110: \"DELETE.NAME\",\n 111: \"DELETE.FORMAT\",\n 112: \"VLINE\",\n 113: \"HLINE\",\n 114: \"VPAGE\",\n 115: \"HPAGE\",\n 116: \"VSCROLL\",\n 117: \"HSCROLL\",\n 118: \"ALERT\",\n 119: \"NEW\",\n 120: \"CANCEL.COPY\",\n 121: \"SHOW.CLIPBOARD\",\n 122: \"MESSAGE\",\n 124: \"PASTE.LINK\",\n 125: \"APP.ACTIVATE\",\n 126: \"DELETE.ARROW\",\n 127: \"ROW.HEIGHT\",\n 128: \"FORMAT.MOVE\",\n 129: \"FORMAT.SIZE\",\n 130: \"FORMULA.REPLACE\",\n 131: \"SEND.KEYS\",\n 132: \"SELECT.SPECIAL\",\n 133: \"APPLY.NAMES\",\n 134: \"REPLACE.FONT\",\n 135: \"FREEZE.PANES\",\n 136: \"SHOW.INFO\",\n 137: \"SPLIT\",\n 138: \"ON.WINDOW\",\n 139: \"ON.DATA\",\n 140: \"DISABLE.INPUT\",\n 142: \"OUTLINE\",\n 143: \"LIST.NAMES\",\n 144: \"FILE.CLOSE\",\n 145: \"SAVE.WORKBOOK\",\n 146: \"DATA.FORM\",\n 147: \"COPY.CHART\",\n 148: \"ON.TIME\",\n 149: \"WAIT\",\n 150: \"FORMAT.FONT\",\n 151: \"FILL.UP\",\n 152: \"FILL.LEFT\",\n 153: \"DELETE.OVERLAY\",\n 155: \"SHORT.MENUS\",\n 159: \"SET.UPDATE.STATUS\",\n 161: \"COLOR.PALETTE\",\n 162: \"DELETE.STYLE\",\n 163: \"WINDOW.RESTORE\",\n 164: \"WINDOW.MAXIMIZE\",\n 166: \"CHANGE.LINK\",\n 167: \"CALCULATE.DOCUMENT\",\n 168: \"ON.KEY\",\n 169: \"APP.RESTORE\",\n 170: \"APP.MOVE\",\n 171: \"APP.SIZE\",\n 172: \"APP.MINIMIZE\",\n 173: \"APP.MAXIMIZE\",\n 174: \"BRING.TO.FRONT\",\n 175: \"SEND.TO.BACK\",\n 185: \"MAIN.CHART.TYPE\",\n 186: \"OVERLAY.CHART.TYPE\",\n 187: \"SELECT.END\",\n 188: \"OPEN.MAIL\",\n 189: \"SEND.MAIL\",\n 190: \"STANDARD.FONT\",\n 191: \"CONSOLIDATE\",\n 192: \"SORT.SPECIAL\",\n 193: \"GALLERY.3D.AREA\",\n 194: \"GALLERY.3D.COLUMN\",\n 195: \"GALLERY.3D.LINE\",\n 196: \"GALLERY.3D.PIE\",\n 197: \"VIEW.3D\",\n 198: \"GOAL.SEEK\",\n 199: \"WORKGROUP\",\n 200: \"FILL.GROUP\",\n 201: \"UPDATE.LINK\",\n 202: \"PROMOTE\",\n 203: \"DEMOTE\",\n 204: \"SHOW.DETAIL\",\n 206: \"UNGROUP\",\n 207: \"OBJECT.PROPERTIES\",\n 208: \"SAVE.NEW.OBJECT\",\n 209: \"SHARE\",\n 210: \"SHARE.NAME\",\n 211: \"DUPLICATE\",\n 212: \"APPLY.STYLE\",\n 213: \"ASSIGN.TO.OBJECT\",\n 214: \"OBJECT.PROTECTION\",\n 215: \"HIDE.OBJECT\",\n 216: \"SET.EXTRACT\",\n 217: \"CREATE.PUBLISHER\",\n 218: \"SUBSCRIBE.TO\",\n 219: \"ATTRIBUTES\",\n 220: \"SHOW.TOOLBAR\",\n 222: \"PRINT.PREVIEW\",\n 223: \"EDIT.COLOR\",\n 224: \"SHOW.LEVELS\",\n 225: \"FORMAT.MAIN\",\n 226: \"FORMAT.OVERLAY\",\n 227: \"ON.RECALC\",\n 228: \"EDIT.SERIES\",\n 229: \"DEFINE.STYLE\",\n 240: \"LINE.PRINT\",\n 243: \"ENTER.DATA\",\n 249: \"GALLERY.RADAR\",\n 250: \"MERGE.STYLES\",\n 251: \"EDITION.OPTIONS\",\n 252: \"PASTE.PICTURE\",\n 253: \"PASTE.PICTURE.LINK\",\n 254: \"SPELLING\",\n 256: \"ZOOM\",\n 259: \"INSERT.OBJECT\",\n 260: \"WINDOW.MINIMIZE\",\n 265: \"SOUND.NOTE\",\n 266: \"SOUND.PLAY\",\n 267: \"FORMAT.SHAPE\",\n 268: \"EXTEND.POLYGON\",\n 269: \"FORMAT.AUTO\",\n 272: \"GALLERY.3D.BAR\",\n 273: \"GALLERY.3D.SURFACE\",\n 274: \"FILL.AUTO\",\n 276: \"CUSTOMIZE.TOOLBAR\",\n 277: \"ADD.TOOL\",\n 278: \"EDIT.OBJECT\",\n 279: \"ON.DOUBLECLICK\",\n 280: \"ON.ENTRY\",\n 281: \"WORKBOOK.ADD\",\n 282: \"WORKBOOK.MOVE\",\n 283: \"WORKBOOK.COPY\",\n 284: \"WORKBOOK.OPTIONS\",\n 285: \"SAVE.WORKSPACE\",\n 288: \"CHART.WIZARD\",\n 289: \"DELETE.TOOL\",\n 290: \"MOVE.TOOL\",\n 291: \"WORKBOOK.SELECT\",\n 292: \"WORKBOOK.ACTIVATE\",\n 293: \"ASSIGN.TO.TOOL\",\n 295: \"COPY.TOOL\",\n 296: \"RESET.TOOL\",\n 297: \"CONSTRAIN.NUMERIC\",\n 298: \"PASTE.TOOL\",\n 302: \"WORKBOOK.NEW\",\n 305: \"SCENARIO.CELLS\",\n 306: \"SCENARIO.DELETE\",\n 307: \"SCENARIO.ADD\",\n 308: \"SCENARIO.EDIT\",\n 309: \"SCENARIO.SHOW\",\n 310: \"SCENARIO.SHOW.NEXT\",\n 311: \"SCENARIO.SUMMARY\",\n 312: \"PIVOT.TABLE.WIZARD\",\n 313: \"PIVOT.FIELD.PROPERTIES\",\n 314: \"PIVOT.FIELD\",\n 315: \"PIVOT.ITEM\",\n 316: \"PIVOT.ADD.FIELDS\",\n 318: \"OPTIONS.CALCULATION\",\n 319: \"OPTIONS.EDIT\",\n 320: \"OPTIONS.VIEW\",\n 321: \"ADDIN.MANAGER\",\n 322: \"MENU.EDITOR\",\n 323: \"ATTACH.TOOLBARS\",\n 324: \"VBAActivate\",\n 325: \"OPTIONS.CHART\",\n 328: \"VBA.INSERT.FILE\",\n 330: \"VBA.PROCEDURE.DEFINITION\",\n 336: \"ROUTING.SLIP\",\n 338: \"ROUTE.DOCUMENT\",\n 339: \"MAIL.LOGON\",\n 342: \"INSERT.PICTURE\",\n 343: \"EDIT.TOOL\",\n 344: \"GALLERY.DOUGHNUT\",\n 350: \"CHART.TREND\",\n 352: \"PIVOT.ITEM.PROPERTIES\",\n 354: \"WORKBOOK.INSERT\",\n 355: \"OPTIONS.TRANSITION\",\n 356: \"OPTIONS.GENERAL\",\n 370: \"FILTER.ADVANCED\",\n 373: \"MAIL.ADD.MAILER\",\n 374: \"MAIL.DELETE.MAILER\",\n 375: \"MAIL.REPLY\",\n 376: \"MAIL.REPLY.ALL\",\n 377: \"MAIL.FORWARD\",\n 378: \"MAIL.NEXT.LETTER\",\n 379: \"DATA.LABEL\",\n 380: \"INSERT.TITLE\",\n 381: \"FONT.PROPERTIES\",\n 382: \"MACRO.OPTIONS\",\n 383: \"WORKBOOK.HIDE\",\n 384: \"WORKBOOK.UNHIDE\",\n 385: \"WORKBOOK.DELETE\",\n 386: \"WORKBOOK.NAME\",\n 388: \"GALLERY.CUSTOM\",\n 390: \"ADD.CHART.AUTOFORMAT\",\n 391: \"DELETE.CHART.AUTOFORMAT\",\n 392: \"CHART.ADD.DATA\",\n 393: \"AUTO.OUTLINE\",\n 394: \"TAB.ORDER\",\n 395: \"SHOW.DIALOG\",\n 396: \"SELECT.ALL\",\n 397: \"UNGROUP.SHEETS\",\n 398: \"SUBTOTAL.CREATE\",\n 399: \"SUBTOTAL.REMOVE\",\n 400: \"RENAME.OBJECT\",\n 412: \"WORKBOOK.SCROLL\",\n 413: \"WORKBOOK.NEXT\",\n 414: \"WORKBOOK.PREV\",\n 415: \"WORKBOOK.TAB.SPLIT\",\n 416: \"FULL.SCREEN\",\n 417: \"WORKBOOK.PROTECT\",\n 420: \"SCROLLBAR.PROPERTIES\",\n 421: \"PIVOT.SHOW.PAGES\",\n 422: \"TEXT.TO.COLUMNS\",\n 423: \"FORMAT.CHARTTYPE\",\n 424: \"LINK.FORMAT\",\n 425: \"TRACER.DISPLAY\",\n 430: \"TRACER.NAVIGATE\",\n 431: \"TRACER.CLEAR\",\n 432: \"TRACER.ERROR\",\n 433: \"PIVOT.FIELD.GROUP\",\n 434: \"PIVOT.FIELD.UNGROUP\",\n 435: \"CHECKBOX.PROPERTIES\",\n 436: \"LABEL.PROPERTIES\",\n 437: \"LISTBOX.PROPERTIES\",\n 438: \"EDITBOX.PROPERTIES\",\n 439: \"PIVOT.REFRESH\",\n 440: \"LINK.COMBO\",\n 441: \"OPEN.TEXT\",\n 442: \"HIDE.DIALOG\",\n 443: \"SET.DIALOG.FOCUS\",\n 444: \"ENABLE.OBJECT\",\n 445: \"PUSHBUTTON.PROPERTIES\",\n 446: \"SET.DIALOG.DEFAULT\",\n 447: \"FILTER\",\n 448: \"FILTER.SHOW.ALL\",\n 449: \"CLEAR.OUTLINE\",\n 450: \"FUNCTION.WIZARD\",\n 451: \"ADD.LIST.ITEM\",\n 452: \"SET.LIST.ITEM\",\n 453: \"REMOVE.LIST.ITEM\",\n 454: \"SELECT.LIST.ITEM\",\n 455: \"SET.CONTROL.VALUE\",\n 456: \"SAVE.COPY.AS\",\n 458: \"OPTIONS.LISTS.ADD\",\n 459: \"OPTIONS.LISTS.DELETE\",\n 460: \"SERIES.AXES\",\n 461: \"SERIES.X\",\n 462: \"SERIES.Y\",\n 463: \"ERRORBAR.X\",\n 464: \"ERRORBAR.Y\",\n 465: \"FORMAT.CHART\",\n 466: \"SERIES.ORDER\",\n 467: \"MAIL.LOGOFF\",\n 468: \"CLEAR.ROUTING.SLIP\",\n 469: \"APP.ACTIVATE.MICROSOFT\",\n 470: \"MAIL.EDIT.MAILER\",\n 471: \"ON.SHEET\",\n 472: \"STANDARD.WIDTH\",\n 473: \"SCENARIO.MERGE\",\n 474: \"SUMMARY.INFO\",\n 475: \"FIND.FILE\",\n 476: \"ACTIVE.CELL.FONT\",\n 477: \"ENABLE.TIPWIZARD\",\n 478: \"VBA.MAKE.ADDIN\",\n 480: \"INSERTDATATABLE\",\n 481: \"WORKGROUP.OPTIONS\",\n 482: \"MAIL.SEND.MAILER\",\n 485: \"AUTOCORRECT\",\n 489: \"POST.DOCUMENT\",\n 491: \"PICKLIST\",\n 493: \"VIEW.SHOW\",\n 494: \"VIEW.DEFINE\",\n 495: \"VIEW.DELETE\",\n 509: \"SHEET.BACKGROUND\",\n 510: \"INSERT.MAP.OBJECT\",\n 511: \"OPTIONS.MENONO\",\n 517: \"MSOCHECKS\",\n 518: \"NORMAL\",\n 519: \"LAYOUT\",\n 520: \"RM.PRINT.AREA\",\n 521: \"CLEAR.PRINT.AREA\",\n 522: \"ADD.PRINT.AREA\",\n 523: \"MOVE.BRK\",\n 545: \"HIDECURR.NOTE\",\n 546: \"HIDEALL.NOTES\",\n 547: \"DELETE.NOTE\",\n 548: \"TRAVERSE.NOTES\",\n 549: \"ACTIVATE.NOTES\",\n 620: \"PROTECT.REVISIONS\",\n 621: \"UNPROTECT.REVISIONS\",\n 647: \"OPTIONS.ME\",\n 653: \"WEB.PUBLISH\",\n 667: \"NEWWEBQUERY\",\n 673: \"PIVOT.TABLE.CHART\",\n 753: \"OPTIONS.SAVE\",\n 755: \"OPTIONS.SPELL\",\n 808: \"HIDEALL.INKANNOTS\"\n};\nvar Ftab = {\n 0: \"COUNT\",\n 1: \"IF\",\n 2: \"ISNA\",\n 3: \"ISERROR\",\n 4: \"SUM\",\n 5: \"AVERAGE\",\n 6: \"MIN\",\n 7: \"MAX\",\n 8: \"ROW\",\n 9: \"COLUMN\",\n 10: \"NA\",\n 11: \"NPV\",\n 12: \"STDEV\",\n 13: \"DOLLAR\",\n 14: \"FIXED\",\n 15: \"SIN\",\n 16: \"COS\",\n 17: \"TAN\",\n 18: \"ATAN\",\n 19: \"PI\",\n 20: \"SQRT\",\n 21: \"EXP\",\n 22: \"LN\",\n 23: \"LOG10\",\n 24: \"ABS\",\n 25: \"INT\",\n 26: \"SIGN\",\n 27: \"ROUND\",\n 28: \"LOOKUP\",\n 29: \"INDEX\",\n 30: \"REPT\",\n 31: \"MID\",\n 32: \"LEN\",\n 33: \"VALUE\",\n 34: \"TRUE\",\n 35: \"FALSE\",\n 36: \"AND\",\n 37: \"OR\",\n 38: \"NOT\",\n 39: \"MOD\",\n 40: \"DCOUNT\",\n 41: \"DSUM\",\n 42: \"DAVERAGE\",\n 43: \"DMIN\",\n 44: \"DMAX\",\n 45: \"DSTDEV\",\n 46: \"VAR\",\n 47: \"DVAR\",\n 48: \"TEXT\",\n 49: \"LINEST\",\n 50: \"TREND\",\n 51: \"LOGEST\",\n 52: \"GROWTH\",\n 53: \"GOTO\",\n 54: \"HALT\",\n 55: \"RETURN\",\n 56: \"PV\",\n 57: \"FV\",\n 58: \"NPER\",\n 59: \"PMT\",\n 60: \"RATE\",\n 61: \"MIRR\",\n 62: \"IRR\",\n 63: \"RAND\",\n 64: \"MATCH\",\n 65: \"DATE\",\n 66: \"TIME\",\n 67: \"DAY\",\n 68: \"MONTH\",\n 69: \"YEAR\",\n 70: \"WEEKDAY\",\n 71: \"HOUR\",\n 72: \"MINUTE\",\n 73: \"SECOND\",\n 74: \"NOW\",\n 75: \"AREAS\",\n 76: \"ROWS\",\n 77: \"COLUMNS\",\n 78: \"OFFSET\",\n 79: \"ABSREF\",\n 80: \"RELREF\",\n 81: \"ARGUMENT\",\n 82: \"SEARCH\",\n 83: \"TRANSPOSE\",\n 84: \"ERROR\",\n 85: \"STEP\",\n 86: \"TYPE\",\n 87: \"ECHO\",\n 88: \"SET.NAME\",\n 89: \"CALLER\",\n 90: \"DEREF\",\n 91: \"WINDOWS\",\n 92: \"SERIES\",\n 93: \"DOCUMENTS\",\n 94: \"ACTIVE.CELL\",\n 95: \"SELECTION\",\n 96: \"RESULT\",\n 97: \"ATAN2\",\n 98: \"ASIN\",\n 99: \"ACOS\",\n 100: \"CHOOSE\",\n 101: \"HLOOKUP\",\n 102: \"VLOOKUP\",\n 103: \"LINKS\",\n 104: \"INPUT\",\n 105: \"ISREF\",\n 106: \"GET.FORMULA\",\n 107: \"GET.NAME\",\n 108: \"SET.VALUE\",\n 109: \"LOG\",\n 110: \"EXEC\",\n 111: \"CHAR\",\n 112: \"LOWER\",\n 113: \"UPPER\",\n 114: \"PROPER\",\n 115: \"LEFT\",\n 116: \"RIGHT\",\n 117: \"EXACT\",\n 118: \"TRIM\",\n 119: \"REPLACE\",\n 120: \"SUBSTITUTE\",\n 121: \"CODE\",\n 122: \"NAMES\",\n 123: \"DIRECTORY\",\n 124: \"FIND\",\n 125: \"CELL\",\n 126: \"ISERR\",\n 127: \"ISTEXT\",\n 128: \"ISNUMBER\",\n 129: \"ISBLANK\",\n 130: \"T\",\n 131: \"N\",\n 132: \"FOPEN\",\n 133: \"FCLOSE\",\n 134: \"FSIZE\",\n 135: \"FREADLN\",\n 136: \"FREAD\",\n 137: \"FWRITELN\",\n 138: \"FWRITE\",\n 139: \"FPOS\",\n 140: \"DATEVALUE\",\n 141: \"TIMEVALUE\",\n 142: \"SLN\",\n 143: \"SYD\",\n 144: \"DDB\",\n 145: \"GET.DEF\",\n 146: \"REFTEXT\",\n 147: \"TEXTREF\",\n 148: \"INDIRECT\",\n 149: \"REGISTER\",\n 150: \"CALL\",\n 151: \"ADD.BAR\",\n 152: \"ADD.MENU\",\n 153: \"ADD.COMMAND\",\n 154: \"ENABLE.COMMAND\",\n 155: \"CHECK.COMMAND\",\n 156: \"RENAME.COMMAND\",\n 157: \"SHOW.BAR\",\n 158: \"DELETE.MENU\",\n 159: \"DELETE.COMMAND\",\n 160: \"GET.CHART.ITEM\",\n 161: \"DIALOG.BOX\",\n 162: \"CLEAN\",\n 163: \"MDETERM\",\n 164: \"MINVERSE\",\n 165: \"MMULT\",\n 166: \"FILES\",\n 167: \"IPMT\",\n 168: \"PPMT\",\n 169: \"COUNTA\",\n 170: \"CANCEL.KEY\",\n 171: \"FOR\",\n 172: \"WHILE\",\n 173: \"BREAK\",\n 174: \"NEXT\",\n 175: \"INITIATE\",\n 176: \"REQUEST\",\n 177: \"POKE\",\n 178: \"EXECUTE\",\n 179: \"TERMINATE\",\n 180: \"RESTART\",\n 181: \"HELP\",\n 182: \"GET.BAR\",\n 183: \"PRODUCT\",\n 184: \"FACT\",\n 185: \"GET.CELL\",\n 186: \"GET.WORKSPACE\",\n 187: \"GET.WINDOW\",\n 188: \"GET.DOCUMENT\",\n 189: \"DPRODUCT\",\n 190: \"ISNONTEXT\",\n 191: \"GET.NOTE\",\n 192: \"NOTE\",\n 193: \"STDEVP\",\n 194: \"VARP\",\n 195: \"DSTDEVP\",\n 196: \"DVARP\",\n 197: \"TRUNC\",\n 198: \"ISLOGICAL\",\n 199: \"DCOUNTA\",\n 200: \"DELETE.BAR\",\n 201: \"UNREGISTER\",\n 204: \"USDOLLAR\",\n 205: \"FINDB\",\n 206: \"SEARCHB\",\n 207: \"REPLACEB\",\n 208: \"LEFTB\",\n 209: \"RIGHTB\",\n 210: \"MIDB\",\n 211: \"LENB\",\n 212: \"ROUNDUP\",\n 213: \"ROUNDDOWN\",\n 214: \"ASC\",\n 215: \"DBCS\",\n 216: \"RANK\",\n 219: \"ADDRESS\",\n 220: \"DAYS360\",\n 221: \"TODAY\",\n 222: \"VDB\",\n 223: \"ELSE\",\n 224: \"ELSE.IF\",\n 225: \"END.IF\",\n 226: \"FOR.CELL\",\n 227: \"MEDIAN\",\n 228: \"SUMPRODUCT\",\n 229: \"SINH\",\n 230: \"COSH\",\n 231: \"TANH\",\n 232: \"ASINH\",\n 233: \"ACOSH\",\n 234: \"ATANH\",\n 235: \"DGET\",\n 236: \"CREATE.OBJECT\",\n 237: \"VOLATILE\",\n 238: \"LAST.ERROR\",\n 239: \"CUSTOM.UNDO\",\n 240: \"CUSTOM.REPEAT\",\n 241: \"FORMULA.CONVERT\",\n 242: \"GET.LINK.INFO\",\n 243: \"TEXT.BOX\",\n 244: \"INFO\",\n 245: \"GROUP\",\n 246: \"GET.OBJECT\",\n 247: \"DB\",\n 248: \"PAUSE\",\n 251: \"RESUME\",\n 252: \"FREQUENCY\",\n 253: \"ADD.TOOLBAR\",\n 254: \"DELETE.TOOLBAR\",\n 255: \"User\",\n 256: \"RESET.TOOLBAR\",\n 257: \"EVALUATE\",\n 258: \"GET.TOOLBAR\",\n 259: \"GET.TOOL\",\n 260: \"SPELLING.CHECK\",\n 261: \"ERROR.TYPE\",\n 262: \"APP.TITLE\",\n 263: \"WINDOW.TITLE\",\n 264: \"SAVE.TOOLBAR\",\n 265: \"ENABLE.TOOL\",\n 266: \"PRESS.TOOL\",\n 267: \"REGISTER.ID\",\n 268: \"GET.WORKBOOK\",\n 269: \"AVEDEV\",\n 270: \"BETADIST\",\n 271: \"GAMMALN\",\n 272: \"BETAINV\",\n 273: \"BINOMDIST\",\n 274: \"CHIDIST\",\n 275: \"CHIINV\",\n 276: \"COMBIN\",\n 277: \"CONFIDENCE\",\n 278: \"CRITBINOM\",\n 279: \"EVEN\",\n 280: \"EXPONDIST\",\n 281: \"FDIST\",\n 282: \"FINV\",\n 283: \"FISHER\",\n 284: \"FISHERINV\",\n 285: \"FLOOR\",\n 286: \"GAMMADIST\",\n 287: \"GAMMAINV\",\n 288: \"CEILING\",\n 289: \"HYPGEOMDIST\",\n 290: \"LOGNORMDIST\",\n 291: \"LOGINV\",\n 292: \"NEGBINOMDIST\",\n 293: \"NORMDIST\",\n 294: \"NORMSDIST\",\n 295: \"NORMINV\",\n 296: \"NORMSINV\",\n 297: \"STANDARDIZE\",\n 298: \"ODD\",\n 299: \"PERMUT\",\n 300: \"POISSON\",\n 301: \"TDIST\",\n 302: \"WEIBULL\",\n 303: \"SUMXMY2\",\n 304: \"SUMX2MY2\",\n 305: \"SUMX2PY2\",\n 306: \"CHITEST\",\n 307: \"CORREL\",\n 308: \"COVAR\",\n 309: \"FORECAST\",\n 310: \"FTEST\",\n 311: \"INTERCEPT\",\n 312: \"PEARSON\",\n 313: \"RSQ\",\n 314: \"STEYX\",\n 315: \"SLOPE\",\n 316: \"TTEST\",\n 317: \"PROB\",\n 318: \"DEVSQ\",\n 319: \"GEOMEAN\",\n 320: \"HARMEAN\",\n 321: \"SUMSQ\",\n 322: \"KURT\",\n 323: \"SKEW\",\n 324: \"ZTEST\",\n 325: \"LARGE\",\n 326: \"SMALL\",\n 327: \"QUARTILE\",\n 328: \"PERCENTILE\",\n 329: \"PERCENTRANK\",\n 330: \"MODE\",\n 331: \"TRIMMEAN\",\n 332: \"TINV\",\n 334: \"MOVIE.COMMAND\",\n 335: \"GET.MOVIE\",\n 336: \"CONCATENATE\",\n 337: \"POWER\",\n 338: \"PIVOT.ADD.DATA\",\n 339: \"GET.PIVOT.TABLE\",\n 340: \"GET.PIVOT.FIELD\",\n 341: \"GET.PIVOT.ITEM\",\n 342: \"RADIANS\",\n 343: \"DEGREES\",\n 344: \"SUBTOTAL\",\n 345: \"SUMIF\",\n 346: \"COUNTIF\",\n 347: \"COUNTBLANK\",\n 348: \"SCENARIO.GET\",\n 349: \"OPTIONS.LISTS.GET\",\n 350: \"ISPMT\",\n 351: \"DATEDIF\",\n 352: \"DATESTRING\",\n 353: \"NUMBERSTRING\",\n 354: \"ROMAN\",\n 355: \"OPEN.DIALOG\",\n 356: \"SAVE.DIALOG\",\n 357: \"VIEW.GET\",\n 358: \"GETPIVOTDATA\",\n 359: \"HYPERLINK\",\n 360: \"PHONETIC\",\n 361: \"AVERAGEA\",\n 362: \"MAXA\",\n 363: \"MINA\",\n 364: \"STDEVPA\",\n 365: \"VARPA\",\n 366: \"STDEVA\",\n 367: \"VARA\",\n 368: \"BAHTTEXT\",\n 369: \"THAIDAYOFWEEK\",\n 370: \"THAIDIGIT\",\n 371: \"THAIMONTHOFYEAR\",\n 372: \"THAINUMSOUND\",\n 373: \"THAINUMSTRING\",\n 374: \"THAISTRINGLENGTH\",\n 375: \"ISTHAIDIGIT\",\n 376: \"ROUNDBAHTDOWN\",\n 377: \"ROUNDBAHTUP\",\n 378: \"THAIYEAR\",\n 379: \"RTD\",\n 380: \"CUBEVALUE\",\n 381: \"CUBEMEMBER\",\n 382: \"CUBEMEMBERPROPERTY\",\n 383: \"CUBERANKEDMEMBER\",\n 384: \"HEX2BIN\",\n 385: \"HEX2DEC\",\n 386: \"HEX2OCT\",\n 387: \"DEC2BIN\",\n 388: \"DEC2HEX\",\n 389: \"DEC2OCT\",\n 390: \"OCT2BIN\",\n 391: \"OCT2HEX\",\n 392: \"OCT2DEC\",\n 393: \"BIN2DEC\",\n 394: \"BIN2OCT\",\n 395: \"BIN2HEX\",\n 396: \"IMSUB\",\n 397: \"IMDIV\",\n 398: \"IMPOWER\",\n 399: \"IMABS\",\n 400: \"IMSQRT\",\n 401: \"IMLN\",\n 402: \"IMLOG2\",\n 403: \"IMLOG10\",\n 404: \"IMSIN\",\n 405: \"IMCOS\",\n 406: \"IMEXP\",\n 407: \"IMARGUMENT\",\n 408: \"IMCONJUGATE\",\n 409: \"IMAGINARY\",\n 410: \"IMREAL\",\n 411: \"COMPLEX\",\n 412: \"IMSUM\",\n 413: \"IMPRODUCT\",\n 414: \"SERIESSUM\",\n 415: \"FACTDOUBLE\",\n 416: \"SQRTPI\",\n 417: \"QUOTIENT\",\n 418: \"DELTA\",\n 419: \"GESTEP\",\n 420: \"ISEVEN\",\n 421: \"ISODD\",\n 422: \"MROUND\",\n 423: \"ERF\",\n 424: \"ERFC\",\n 425: \"BESSELJ\",\n 426: \"BESSELK\",\n 427: \"BESSELY\",\n 428: \"BESSELI\",\n 429: \"XIRR\",\n 430: \"XNPV\",\n 431: \"PRICEMAT\",\n 432: \"YIELDMAT\",\n 433: \"INTRATE\",\n 434: \"RECEIVED\",\n 435: \"DISC\",\n 436: \"PRICEDISC\",\n 437: \"YIELDDISC\",\n 438: \"TBILLEQ\",\n 439: \"TBILLPRICE\",\n 440: \"TBILLYIELD\",\n 441: \"PRICE\",\n 442: \"YIELD\",\n 443: \"DOLLARDE\",\n 444: \"DOLLARFR\",\n 445: \"NOMINAL\",\n 446: \"EFFECT\",\n 447: \"CUMPRINC\",\n 448: \"CUMIPMT\",\n 449: \"EDATE\",\n 450: \"EOMONTH\",\n 451: \"YEARFRAC\",\n 452: \"COUPDAYBS\",\n 453: \"COUPDAYS\",\n 454: \"COUPDAYSNC\",\n 455: \"COUPNCD\",\n 456: \"COUPNUM\",\n 457: \"COUPPCD\",\n 458: \"DURATION\",\n 459: \"MDURATION\",\n 460: \"ODDLPRICE\",\n 461: \"ODDLYIELD\",\n 462: \"ODDFPRICE\",\n 463: \"ODDFYIELD\",\n 464: \"RANDBETWEEN\",\n 465: \"WEEKNUM\",\n 466: \"AMORDEGRC\",\n 467: \"AMORLINC\",\n 468: \"CONVERT\",\n 724: \"SHEETJS\",\n 469: \"ACCRINT\",\n 470: \"ACCRINTM\",\n 471: \"WORKDAY\",\n 472: \"NETWORKDAYS\",\n 473: \"GCD\",\n 474: \"MULTINOMIAL\",\n 475: \"LCM\",\n 476: \"FVSCHEDULE\",\n 477: \"CUBEKPIMEMBER\",\n 478: \"CUBESET\",\n 479: \"CUBESETCOUNT\",\n 480: \"IFERROR\",\n 481: \"COUNTIFS\",\n 482: \"SUMIFS\",\n 483: \"AVERAGEIF\",\n 484: \"AVERAGEIFS\"\n};\nvar FtabArgc = {\n 2: 1,\n 3: 1,\n 10: 0,\n 15: 1,\n 16: 1,\n 17: 1,\n 18: 1,\n 19: 0,\n 20: 1,\n 21: 1,\n 22: 1,\n 23: 1,\n 24: 1,\n 25: 1,\n 26: 1,\n 27: 2,\n 30: 2,\n 31: 3,\n 32: 1,\n 33: 1,\n 34: 0,\n 35: 0,\n 38: 1,\n 39: 2,\n 40: 3,\n 41: 3,\n 42: 3,\n 43: 3,\n 44: 3,\n 45: 3,\n 47: 3,\n 48: 2,\n 53: 1,\n 61: 3,\n 63: 0,\n 65: 3,\n 66: 3,\n 67: 1,\n 68: 1,\n 69: 1,\n 70: 1,\n 71: 1,\n 72: 1,\n 73: 1,\n 74: 0,\n 75: 1,\n 76: 1,\n 77: 1,\n 79: 2,\n 80: 2,\n 83: 1,\n 85: 0,\n 86: 1,\n 89: 0,\n 90: 1,\n 94: 0,\n 95: 0,\n 97: 2,\n 98: 1,\n 99: 1,\n 101: 3,\n 102: 3,\n 105: 1,\n 106: 1,\n 108: 2,\n 111: 1,\n 112: 1,\n 113: 1,\n 114: 1,\n 117: 2,\n 118: 1,\n 119: 4,\n 121: 1,\n 126: 1,\n 127: 1,\n 128: 1,\n 129: 1,\n 130: 1,\n 131: 1,\n 133: 1,\n 134: 1,\n 135: 1,\n 136: 2,\n 137: 2,\n 138: 2,\n 140: 1,\n 141: 1,\n 142: 3,\n 143: 4,\n 144: 4,\n 161: 1,\n 162: 1,\n 163: 1,\n 164: 1,\n 165: 2,\n 172: 1,\n 175: 2,\n 176: 2,\n 177: 3,\n 178: 2,\n 179: 1,\n 184: 1,\n 186: 1,\n 189: 3,\n 190: 1,\n 195: 3,\n 196: 3,\n 197: 1,\n 198: 1,\n 199: 3,\n 201: 1,\n 207: 4,\n 210: 3,\n 211: 1,\n 212: 2,\n 213: 2,\n 214: 1,\n 215: 1,\n 225: 0,\n 229: 1,\n 230: 1,\n 231: 1,\n 232: 1,\n 233: 1,\n 234: 1,\n 235: 3,\n 244: 1,\n 247: 4,\n 252: 2,\n 257: 1,\n 261: 1,\n 271: 1,\n 273: 4,\n 274: 2,\n 275: 2,\n 276: 2,\n 277: 3,\n 278: 3,\n 279: 1,\n 280: 3,\n 281: 3,\n 282: 3,\n 283: 1,\n 284: 1,\n 285: 2,\n 286: 4,\n 287: 3,\n 288: 2,\n 289: 4,\n 290: 3,\n 291: 3,\n 292: 3,\n 293: 4,\n 294: 1,\n 295: 3,\n 296: 1,\n 297: 3,\n 298: 1,\n 299: 2,\n 300: 3,\n 301: 3,\n 302: 4,\n 303: 2,\n 304: 2,\n 305: 2,\n 306: 2,\n 307: 2,\n 308: 2,\n 309: 3,\n 310: 2,\n 311: 2,\n 312: 2,\n 313: 2,\n 314: 2,\n 315: 2,\n 316: 4,\n 325: 2,\n 326: 2,\n 327: 2,\n 328: 2,\n 331: 2,\n 332: 2,\n 337: 2,\n 342: 1,\n 343: 1,\n 346: 2,\n 347: 1,\n 350: 4,\n 351: 3,\n 352: 1,\n 353: 2,\n 360: 1,\n 368: 1,\n 369: 1,\n 370: 1,\n 371: 1,\n 372: 1,\n 373: 1,\n 374: 1,\n 375: 1,\n 376: 1,\n 377: 1,\n 378: 1,\n 382: 3,\n 385: 1,\n 392: 1,\n 393: 1,\n 396: 2,\n 397: 2,\n 398: 2,\n 399: 1,\n 400: 1,\n 401: 1,\n 402: 1,\n 403: 1,\n 404: 1,\n 405: 1,\n 406: 1,\n 407: 1,\n 408: 1,\n 409: 1,\n 410: 1,\n 414: 4,\n 415: 1,\n 416: 1,\n 417: 2,\n 420: 1,\n 421: 1,\n 422: 2,\n 424: 1,\n 425: 2,\n 426: 2,\n 427: 2,\n 428: 2,\n 430: 3,\n 438: 3,\n 439: 3,\n 440: 3,\n 443: 2,\n 444: 2,\n 445: 2,\n 446: 2,\n 447: 6,\n 448: 6,\n 449: 2,\n 450: 2,\n 464: 2,\n 468: 3,\n 476: 2,\n 479: 1,\n 480: 2,\n 65535: 0\n};\n/* Part 3 TODO: actually parse formulae */\nfunction ods_to_csf_formula(f/*:string*/)/*:string*/ {\n\tif(f.slice(0,3) == \"of:\") f = f.slice(3);\n\t/* 5.2 Basic Expressions */\n\tif(f.charCodeAt(0) == 61) {\n\t\tf = f.slice(1);\n\t\tif(f.charCodeAt(0) == 61) f = f.slice(1);\n\t}\n\tf = f.replace(/COM\\.MICROSOFT\\./g, \"\");\n\t/* Part 3 Section 5.8 References */\n\tf = f.replace(/\\[((?:\\.[A-Z]+[0-9]+)(?::\\.[A-Z]+[0-9]+)?)\\]/g, function($$, $1) { return $1.replace(/\\./g,\"\"); });\n\tf = f.replace(/\\$'([^']|'')+'/g, function($$) { return $$.slice(1); });\n\tf = f.replace(/\\$([^\\]\\. #$]+)/g, function($$, $1) { return ($1).match(/^([A-Z]{1,2}|[A-W][A-Z]{2}|X[A-E][A-Z]|XF[A-D])?(10[0-3]\\d{4}|104[0-7]\\d{3}|1048[0-4]\\d{2}|10485[0-6]\\d|104857[0-6]|[1-9]\\d{0,5})?$/) ? $$ : $1; });\n\t/* TODO: something other than this */\n\tf = f.replace(/\\[.(#[A-Z]*[?!])\\]/g, \"$1\");\n\treturn f.replace(/[;~]/g,\",\").replace(/\\|/g,\";\");\n}\n\nfunction csf_to_ods_formula(f/*:string*/)/*:string*/ {\n\tvar o = \"of:=\" + f.replace(crefregex, \"$1[.$2$3$4$5]\").replace(/\\]:\\[/g,\":\");\n\t/* TODO: something other than this */\n\treturn o.replace(/;/g, \"|\").replace(/,/g,\";\");\n}\n\nfunction ods_to_csf_3D(r/*:string*/)/*:[string, string]*/ {\n\tr = r.replace(/\\$'([^']|'')+'/g, function($$) { return $$.slice(1); });\n\tr = r.replace(/\\$([^\\]\\. #$]+)/g, function($$, $1) { return ($1).match(/^([A-Z]{1,2}|[A-W][A-Z]{2}|X[A-E][A-Z]|XF[A-D])?(10[0-3]\\d{4}|104[0-7]\\d{3}|1048[0-4]\\d{2}|10485[0-6]\\d|104857[0-6]|[1-9]\\d{0,5})?$/) ? $$ : $1; });\n\tvar a = r.split(\":\");\n\tvar s = a[0].split(\".\")[0];\n\treturn [s, a[0].split(\".\")[1] + (a.length > 1 ? (\":\" + (a[1].split(\".\")[1] || a[1].split(\".\")[0])) : \"\")];\n}\n\nfunction csf_to_ods_3D(r/*:string*/)/*:string*/ {\n\treturn r.replace(/!/,\".\");\n}\n\nvar strs = {}; // shared strings\nvar _ssfopts = {}; // spreadsheet formatting options\n\n\n/*global Map */\nvar browser_has_Map = typeof Map !== 'undefined';\n\nfunction get_sst_id(sst/*:SST*/, str/*:string*/, rev)/*:number*/ {\n\tvar i = 0, len = sst.length;\n\tif(rev) {\n\t\tif(browser_has_Map ? rev.has(str) : Object.prototype.hasOwnProperty.call(rev, str)) {\n\t\t\tvar revarr = browser_has_Map ? rev.get(str) : rev[str];\n\t\t\tfor(; i < revarr.length; ++i) {\n\t\t\t\tif(sst[revarr[i]].t === str) { sst.Count ++; return revarr[i]; }\n\t\t\t}\n\t\t}\n\t} else for(; i < len; ++i) {\n\t\tif(sst[i].t === str) { sst.Count ++; return i; }\n\t}\n\tsst[len] = ({t:str}/*:any*/); sst.Count ++; sst.Unique ++;\n\tif(rev) {\n\t\tif(browser_has_Map) {\n\t\t\tif(!rev.has(str)) rev.set(str, []);\n\t\t\trev.get(str).push(len);\n\t\t} else {\n\t\t\tif(!Object.prototype.hasOwnProperty.call(rev, str)) rev[str] = [];\n\t\t\trev[str].push(len);\n\t\t}\n\t}\n\treturn len;\n}\n\nfunction col_obj_w(C/*:number*/, col) {\n\tvar p = ({min:C+1,max:C+1}/*:any*/);\n\t/* wch (chars), wpx (pixels) */\n\tvar wch = -1;\n\tif(col.MDW) MDW = col.MDW;\n\tif(col.width != null) p.customWidth = 1;\n\telse if(col.wpx != null) wch = px2char(col.wpx);\n\telse if(col.wch != null) wch = col.wch;\n\tif(wch > -1) { p.width = char2width(wch); p.customWidth = 1; }\n\telse if(col.width != null) p.width = col.width;\n\tif(col.hidden) p.hidden = true;\n\tif(col.level != null) { p.outlineLevel = p.level = col.level; }\n\treturn p;\n}\n\nfunction default_margins(margins/*:Margins*/, mode/*:?string*/) {\n\tif(!margins) return;\n\tvar defs = [0.7, 0.7, 0.75, 0.75, 0.3, 0.3];\n\tif(mode == 'xlml') defs = [1, 1, 1, 1, 0.5, 0.5];\n\tif(margins.left == null) margins.left = defs[0];\n\tif(margins.right == null) margins.right = defs[1];\n\tif(margins.top == null) margins.top = defs[2];\n\tif(margins.bottom == null) margins.bottom = defs[3];\n\tif(margins.header == null) margins.header = defs[4];\n\tif(margins.footer == null) margins.footer = defs[5];\n}\n\nfunction get_cell_style(styles/*:Array*/, cell/*:Cell*/, opts) {\n\tvar z = opts.revssf[cell.z != null ? cell.z : \"General\"];\n\tvar i = 0x3c, len = styles.length;\n\tif(z == null && opts.ssf) {\n\t\tfor(; i < 0x188; ++i) if(opts.ssf[i] == null) {\n\t\t\tSSF__load(cell.z, i);\n\t\t\t// $FlowIgnore\n\t\t\topts.ssf[i] = cell.z;\n\t\t\topts.revssf[cell.z] = z = i;\n\t\t\tbreak;\n\t\t}\n\t}\n\tfor(i = 0; i != len; ++i) if(styles[i].numFmtId === z) return i;\n\tstyles[len] = {\n\t\tnumFmtId:z,\n\t\tfontId:0,\n\t\tfillId:0,\n\t\tborderId:0,\n\t\txfId:0,\n\t\tapplyNumberFormat:1\n\t};\n\treturn len;\n}\n\nfunction safe_format(p/*:Cell*/, fmtid/*:number*/, fillid/*:?number*/, opts, themes, styles) {\n\ttry {\n\t\tif(opts.cellNF) p.z = table_fmt[fmtid];\n\t} catch(e) { if(opts.WTF) throw e; }\n\tif(p.t === 'z' && !opts.cellStyles) return;\n\tif(p.t === 'd' && typeof p.v === 'string') p.v = parseDate(p.v);\n\tif((!opts || opts.cellText !== false) && p.t !== 'z') try {\n\t\tif(table_fmt[fmtid] == null) SSF__load(SSFImplicit[fmtid] || \"General\", fmtid);\n\t\tif(p.t === 'e') p.w = p.w || BErr[p.v];\n\t\telse if(fmtid === 0) {\n\t\t\tif(p.t === 'n') {\n\t\t\t\tif((p.v|0) === p.v) p.w = p.v.toString(10);\n\t\t\t\telse p.w = SSF_general_num(p.v);\n\t\t\t}\n\t\t\telse if(p.t === 'd') {\n\t\t\t\tvar dd = datenum(p.v);\n\t\t\t\tif((dd|0) === dd) p.w = dd.toString(10);\n\t\t\t\telse p.w = SSF_general_num(dd);\n\t\t\t}\n\t\t\telse if(p.v === undefined) return \"\";\n\t\t\telse p.w = SSF_general(p.v,_ssfopts);\n\t\t}\n\t\telse if(p.t === 'd') p.w = SSF_format(fmtid,datenum(p.v),_ssfopts);\n\t\telse p.w = SSF_format(fmtid,p.v,_ssfopts);\n\t} catch(e) { if(opts.WTF) throw e; }\n\tif(!opts.cellStyles) return;\n\tif(fillid != null) try {\n\t\tp.s = styles.Fills[fillid];\n\t\tif (p.s.fgColor && p.s.fgColor.theme && !p.s.fgColor.rgb) {\n\t\t\tp.s.fgColor.rgb = rgb_tint(themes.themeElements.clrScheme[p.s.fgColor.theme].rgb, p.s.fgColor.tint || 0);\n\t\t\tif(opts.WTF) p.s.fgColor.raw_rgb = themes.themeElements.clrScheme[p.s.fgColor.theme].rgb;\n\t\t}\n\t\tif (p.s.bgColor && p.s.bgColor.theme) {\n\t\t\tp.s.bgColor.rgb = rgb_tint(themes.themeElements.clrScheme[p.s.bgColor.theme].rgb, p.s.bgColor.tint || 0);\n\t\t\tif(opts.WTF) p.s.bgColor.raw_rgb = themes.themeElements.clrScheme[p.s.bgColor.theme].rgb;\n\t\t}\n\t} catch(e) { if(opts.WTF && styles.Fills) throw e; }\n}\n\nfunction check_ws(ws/*:Worksheet*/, sname/*:string*/, i/*:number*/) {\n\tif(ws && ws['!ref']) {\n\t\tvar range = safe_decode_range(ws['!ref']);\n\t\tif(range.e.c < range.s.c || range.e.r < range.s.r) throw new Error(\"Bad range (\" + i + \"): \" + ws['!ref']);\n\t}\n}\nfunction parse_ws_xml_dim(ws/*:Worksheet*/, s/*:string*/) {\n\tvar d = safe_decode_range(s);\n\tif(d.s.r<=d.e.r && d.s.c<=d.e.c && d.s.r>=0 && d.s.c>=0) ws[\"!ref\"] = encode_range(d);\n}\nvar mergecregex = /<(?:\\w:)?mergeCell ref=\"[A-Z0-9:]+\"\\s*[\\/]?>/g;\nvar sheetdataregex = /<(?:\\w+:)?sheetData[^>]*>([\\s\\S]*)<\\/(?:\\w+:)?sheetData>/;\nvar hlinkregex = /<(?:\\w:)?hyperlink [^>]*>/mg;\nvar dimregex = /\"(\\w*:\\w*)\"/;\nvar colregex = /<(?:\\w:)?col\\b[^>]*[\\/]?>/g;\nvar afregex = /<(?:\\w:)?autoFilter[^>]*([\\/]|>([\\s\\S]*)<\\/(?:\\w:)?autoFilter)>/g;\nvar marginregex= /<(?:\\w:)?pageMargins[^>]*\\/>/g;\nvar sheetprregex = /<(?:\\w:)?sheetPr\\b(?:[^>a-z][^>]*)?\\/>/;\nvar sheetprregex2= /<(?:\\w:)?sheetPr[^>]*(?:[\\/]|>([\\s\\S]*)<\\/(?:\\w:)?sheetPr)>/;\nvar svsregex = /<(?:\\w:)?sheetViews[^>]*(?:[\\/]|>([\\s\\S]*)<\\/(?:\\w:)?sheetViews)>/;\n\n/* 18.3 Worksheets */\nfunction parse_ws_xml(data/*:?string*/, opts, idx/*:number*/, rels, wb/*:WBWBProps*/, themes, styles)/*:Worksheet*/ {\n\tif(!data) return data;\n\tif(!rels) rels = {'!id':{}};\n\tif(DENSE != null && opts.dense == null) opts.dense = DENSE;\n\n\t/* 18.3.1.99 worksheet CT_Worksheet */\n\tvar s = ({}/*:any*/); if(opts.dense) s[\"!data\"] = [];\n\tvar refguess/*:Range*/ = ({s: {r:2000000, c:2000000}, e: {r:0, c:0} }/*:any*/);\n\n\tvar data1 = \"\", data2 = \"\";\n\tvar mtch/*:?any*/ = data.match(sheetdataregex);\n\tif(mtch) {\n\t\tdata1 = data.slice(0, mtch.index);\n\t\tdata2 = data.slice(mtch.index + mtch[0].length);\n\t} else data1 = data2 = data;\n\n\t/* 18.3.1.82 sheetPr CT_SheetPr */\n\tvar sheetPr = data1.match(sheetprregex);\n\tif(sheetPr) parse_ws_xml_sheetpr(sheetPr[0], s, wb, idx);\n\telse if((sheetPr = data1.match(sheetprregex2))) parse_ws_xml_sheetpr2(sheetPr[0], sheetPr[1]||\"\", s, wb, idx, styles, themes);\n\n\t/* 18.3.1.35 dimension CT_SheetDimension */\n\tvar ridx = (data1.match(/<(?:\\w*:)?dimension/)||{index:-1}).index;\n\tif(ridx > 0) {\n\t\tvar ref = data1.slice(ridx,ridx+50).match(dimregex);\n\t\tif(ref && !(opts && opts.nodim)) parse_ws_xml_dim(s, ref[1]);\n\t}\n\n\t/* 18.3.1.88 sheetViews CT_SheetViews */\n\tvar svs = data1.match(svsregex);\n\tif(svs && svs[1]) parse_ws_xml_sheetviews(svs[1], wb);\n\n\t/* 18.3.1.17 cols CT_Cols */\n\tvar columns/*:Array*/ = [];\n\tif(opts.cellStyles) {\n\t\t/* 18.3.1.13 col CT_Col */\n\t\tvar cols = data1.match(colregex);\n\t\tif(cols) parse_ws_xml_cols(columns, cols);\n\t}\n\n\t/* 18.3.1.80 sheetData CT_SheetData ? */\n\tif(mtch) parse_ws_xml_data(mtch[1], s, opts, refguess, themes, styles);\n\n\t/* 18.3.1.2 autoFilter CT_AutoFilter */\n\tvar afilter = data2.match(afregex);\n\tif(afilter) s['!autofilter'] = parse_ws_xml_autofilter(afilter[0]);\n\n\t/* 18.3.1.55 mergeCells CT_MergeCells */\n\tvar merges/*:Array*/ = [];\n\tvar _merge = data2.match(mergecregex);\n\tif(_merge) for(ridx = 0; ridx != _merge.length; ++ridx)\n\t\tmerges[ridx] = safe_decode_range(_merge[ridx].slice(_merge[ridx].indexOf(\"\\\"\")+1));\n\n\t/* 18.3.1.48 hyperlinks CT_Hyperlinks */\n\tvar hlink = data2.match(hlinkregex);\n\tif(hlink) parse_ws_xml_hlinks(s, hlink, rels);\n\n\t/* 18.3.1.62 pageMargins CT_PageMargins */\n\tvar margins = data2.match(marginregex);\n\tif(margins) s['!margins'] = parse_ws_xml_margins(parsexmltag(margins[0]));\n\n\tif(opts && opts.nodim) refguess.s.c = refguess.s.r = 0;\n\tif(!s[\"!ref\"] && refguess.e.c >= refguess.s.c && refguess.e.r >= refguess.s.r) s[\"!ref\"] = encode_range(refguess);\n\tif(opts.sheetRows > 0 && s[\"!ref\"]) {\n\t\tvar tmpref = safe_decode_range(s[\"!ref\"]);\n\t\tif(opts.sheetRows <= +tmpref.e.r) {\n\t\t\ttmpref.e.r = opts.sheetRows - 1;\n\t\t\tif(tmpref.e.r > refguess.e.r) tmpref.e.r = refguess.e.r;\n\t\t\tif(tmpref.e.r < tmpref.s.r) tmpref.s.r = tmpref.e.r;\n\t\t\tif(tmpref.e.c > refguess.e.c) tmpref.e.c = refguess.e.c;\n\t\t\tif(tmpref.e.c < tmpref.s.c) tmpref.s.c = tmpref.e.c;\n\t\t\ts[\"!fullref\"] = s[\"!ref\"];\n\t\t\ts[\"!ref\"] = encode_range(tmpref);\n\t\t}\n\t}\n\tif(columns.length > 0) s[\"!cols\"] = columns;\n\tif(merges.length > 0) s[\"!merges\"] = merges;\n\treturn s;\n}\n\nfunction write_ws_xml_merges(merges/*:Array*/)/*:string*/ {\n\tif(merges.length === 0) return \"\";\n\tvar o = '';\n\tfor(var i = 0; i != merges.length; ++i) o += '';\n\treturn o + '';\n}\n\n/* 18.3.1.82-3 sheetPr CT_ChartsheetPr / CT_SheetPr */\nfunction parse_ws_xml_sheetpr(sheetPr/*:string*/, s, wb/*:WBWBProps*/, idx/*:number*/) {\n\tvar data = parsexmltag(sheetPr);\n\tif(!wb.Sheets[idx]) wb.Sheets[idx] = {};\n\tif(data.codeName) wb.Sheets[idx].CodeName = unescapexml(utf8read(data.codeName));\n}\nfunction parse_ws_xml_sheetpr2(sheetPr/*:string*/, body/*:string*/, s, wb/*:WBWBProps*/, idx/*:number*/) {\n\tparse_ws_xml_sheetpr(sheetPr.slice(0, sheetPr.indexOf(\">\")), s, wb, idx);\n}\nfunction write_ws_xml_sheetpr(ws, wb, idx, opts, o) {\n\tvar needed = false;\n\tvar props = {}, payload = null;\n\tif(opts.bookType !== 'xlsx' && wb.vbaraw) {\n\t\tvar cname = wb.SheetNames[idx];\n\t\ttry { if(wb.Workbook) cname = wb.Workbook.Sheets[idx].CodeName || cname; } catch(e) {}\n\t\tneeded = true;\n\t\tprops.codeName = utf8write(escapexml(cname));\n\t}\n\n\tif(ws && ws[\"!outline\"]) {\n\t\tvar outlineprops = {summaryBelow:1, summaryRight:1};\n\t\tif(ws[\"!outline\"].above) outlineprops.summaryBelow = 0;\n\t\tif(ws[\"!outline\"].left) outlineprops.summaryRight = 0;\n\t\tpayload = (payload||\"\") + writextag('outlinePr', null, outlineprops);\n\t}\n\n\tif(!needed && !payload) return;\n\to[o.length] = (writextag('sheetPr', payload, props));\n}\n\n/* 18.3.1.85 sheetProtection CT_SheetProtection */\nvar sheetprot_deffalse = [\"objects\", \"scenarios\", \"selectLockedCells\", \"selectUnlockedCells\"];\nvar sheetprot_deftrue = [\n\t\"formatColumns\", \"formatRows\", \"formatCells\",\n\t\"insertColumns\", \"insertRows\", \"insertHyperlinks\",\n\t\"deleteColumns\", \"deleteRows\",\n\t\"sort\", \"autoFilter\", \"pivotTables\"\n];\nfunction write_ws_xml_protection(sp)/*:string*/ {\n\t// algorithmName, hashValue, saltValue, spinCount\n\tvar o = ({sheet:1}/*:any*/);\n\tsheetprot_deffalse.forEach(function(n) { if(sp[n] != null && sp[n]) o[n] = \"1\"; });\n\tsheetprot_deftrue.forEach(function(n) { if(sp[n] != null && !sp[n]) o[n] = \"0\"; });\n\t/* TODO: algorithm */\n\tif(sp.password) o.password = crypto_CreatePasswordVerifier_Method1(sp.password).toString(16).toUpperCase();\n\treturn writextag('sheetProtection', null, o);\n}\n\nfunction parse_ws_xml_hlinks(s, data/*:Array*/, rels) {\n\tvar dense = s[\"!data\"] != null;\n\tfor(var i = 0; i != data.length; ++i) {\n\t\tvar val = parsexmltag(utf8read(data[i]), true);\n\t\tif(!val.ref) return;\n\t\tvar rel = ((rels || {})['!id']||[])[val.id];\n\t\tif(rel) {\n\t\t\tval.Target = rel.Target;\n\t\t\tif(val.location) val.Target += \"#\"+unescapexml(val.location);\n\t\t} else {\n\t\t\tval.Target = \"#\" + unescapexml(val.location);\n\t\t\trel = {Target: val.Target, TargetMode: 'Internal'};\n\t\t}\n\t\tval.Rel = rel;\n\t\tif(val.tooltip) { val.Tooltip = val.tooltip; delete val.tooltip; }\n\t\tvar rng = safe_decode_range(val.ref);\n\t\tfor(var R=rng.s.r;R<=rng.e.r;++R) for(var C=rng.s.c;C<=rng.e.c;++C) {\n\t\t\tvar addr = encode_col(C) + encode_row(R);\n\t\t\tif(dense) {\n\t\t\t\tif(!s[\"!data\"][R]) s[\"!data\"][R] = [];\n\t\t\t\tif(!s[\"!data\"][R][C]) s[\"!data\"][R][C] = {t:\"z\",v:undefined};\n\t\t\t\ts[\"!data\"][R][C].l = val;\n\t\t\t} else {\n\t\t\t\tif(!s[addr]) s[addr] = {t:\"z\",v:undefined};\n\t\t\t\ts[addr].l = val;\n\t\t\t}\n\t\t}\n\t}\n}\n\nfunction parse_ws_xml_margins(margin) {\n\tvar o = {};\n\t[\"left\", \"right\", \"top\", \"bottom\", \"header\", \"footer\"].forEach(function(k) {\n\t\tif(margin[k]) o[k] = parseFloat(margin[k]);\n\t});\n\treturn o;\n}\nfunction write_ws_xml_margins(margin)/*:string*/ {\n\tdefault_margins(margin);\n\treturn writextag('pageMargins', null, margin);\n}\n\nfunction parse_ws_xml_cols(columns, cols) {\n\tvar seencol = false;\n\tfor(var coli = 0; coli != cols.length; ++coli) {\n\t\tvar coll = parsexmltag(cols[coli], true);\n\t\tif(coll.hidden) coll.hidden = parsexmlbool(coll.hidden);\n\t\tvar colm=parseInt(coll.min, 10)-1, colM=parseInt(coll.max,10)-1;\n\t\tif(coll.outlineLevel) coll.level = (+coll.outlineLevel || 0);\n\t\tdelete coll.min; delete coll.max; coll.width = +coll.width;\n\t\tif(!seencol && coll.width) { seencol = true; find_mdw_colw(coll.width); }\n\t\tprocess_col(coll);\n\t\twhile(colm <= colM) columns[colm++] = dup(coll);\n\t}\n}\nfunction write_ws_xml_cols(ws, cols)/*:string*/ {\n\tvar o = [\"\"], col;\n\tfor(var i = 0; i != cols.length; ++i) {\n\t\tif(!(col = cols[i])) continue;\n\t\to[o.length] = (writextag('col', null, col_obj_w(i, col)));\n\t}\n\to[o.length] = \"\";\n\treturn o.join(\"\");\n}\n\nfunction parse_ws_xml_autofilter(data/*:string*/) {\n\tvar o = { ref: (data.match(/ref=\"([^\"]*)\"/)||[])[1]};\n\treturn o;\n}\nfunction write_ws_xml_autofilter(data, ws, wb, idx)/*:string*/ {\n\tvar ref = typeof data.ref == \"string\" ? data.ref : encode_range(data.ref);\n\tif(!wb.Workbook) wb.Workbook = ({Sheets:[]}/*:any*/);\n\tif(!wb.Workbook.Names) wb.Workbook.Names = [];\n\tvar names/*: Array */ = wb.Workbook.Names;\n\tvar range = decode_range(ref);\n\tif(range.s.r == range.e.r) { range.e.r = decode_range(ws[\"!ref\"]).e.r; ref = encode_range(range); }\n\tfor(var i = 0; i < names.length; ++i) {\n\t\tvar name = names[i];\n\t\tif(name.Name != '_xlnm._FilterDatabase') continue;\n\t\tif(name.Sheet != idx) continue;\n\t\tname.Ref = formula_quote_sheet_name(wb.SheetNames[idx]) + \"!\" + fix_range(ref); break;\n\t}\n\tif(i == names.length) names.push({ Name: '_xlnm._FilterDatabase', Sheet: idx, Ref: \"'\" + wb.SheetNames[idx] + \"'!\" + ref });\n\treturn writextag(\"autoFilter\", null, {ref:ref});\n}\n\n/* 18.3.1.88 sheetViews CT_SheetViews */\n/* 18.3.1.87 sheetView CT_SheetView */\nvar sviewregex = /<(?:\\w:)?sheetView(?:[^>a-z][^>]*)?\\/?>/g;\nfunction parse_ws_xml_sheetviews(data, wb/*:WBWBProps*/) {\n\tif(!wb.Views) wb.Views = [{}];\n\t(data.match(sviewregex)||[]).forEach(function(r/*:string*/, i/*:number*/) {\n\t\tvar tag = parsexmltag(r);\n\t\t// $FlowIgnore\n\t\tif(!wb.Views[i]) wb.Views[i] = {};\n\t\t// $FlowIgnore\n\t\tif(+tag.zoomScale) wb.Views[i].zoom = +tag.zoomScale;\n\t\t// $FlowIgnore\n\t\tif(tag.rightToLeft && parsexmlbool(tag.rightToLeft)) wb.Views[i].RTL = true;\n\t});\n}\nfunction write_ws_xml_sheetviews(ws, opts, idx, wb)/*:string*/ {\n\tvar sview = ({workbookViewId:\"0\"}/*:any*/);\n\t// $FlowIgnore\n\tif((((wb||{}).Workbook||{}).Views||[])[0]) sview.rightToLeft = wb.Workbook.Views[0].RTL ? \"1\" : \"0\";\n\treturn writextag(\"sheetViews\", writextag(\"sheetView\", null, sview), {});\n}\n\nfunction write_ws_xml_cell(cell/*:Cell*/, ref, ws, opts/*::, idx, wb*/)/*:string*/ {\n\tif(cell.c) ws['!comments'].push([ref, cell.c]);\n\tif((cell.v === undefined || cell.t === \"z\" && !(opts||{}).sheetStubs) && typeof cell.f !== \"string\" && typeof cell.z == \"undefined\") return \"\";\n\tvar vv = \"\";\n\tvar oldt = cell.t, oldv = cell.v;\n\tif(cell.t !== \"z\") switch(cell.t) {\n\t\tcase 'b': vv = cell.v ? \"1\" : \"0\"; break;\n\t\tcase 'n': vv = ''+cell.v; break;\n\t\tcase 'e': vv = BErr[cell.v]; break;\n\t\tcase 'd':\n\t\t\tif(opts && opts.cellDates) vv = parseDate(cell.v, -1).toISOString();\n\t\t\telse {\n\t\t\t\tcell = dup(cell);\n\t\t\t\tcell.t = 'n';\n\t\t\t\tvv = ''+(cell.v = datenum(parseDate(cell.v)));\n\t\t\t}\n\t\t\tif(typeof cell.z === 'undefined') cell.z = table_fmt[14];\n\t\t\tbreak;\n\t\tdefault: vv = cell.v; break;\n\t}\n\tvar v = (cell.t == \"z\" || cell.v == null)? \"\" : writetag('v', escapexml(vv)), o = ({r:ref}/*:any*/);\n\t/* TODO: cell style */\n\tvar os = get_cell_style(opts.cellXfs, cell, opts);\n\tif(os !== 0) o.s = os;\n\tswitch(cell.t) {\n\t\tcase 'n': break;\n\t\tcase 'd': o.t = \"d\"; break;\n\t\tcase 'b': o.t = \"b\"; break;\n\t\tcase 'e': o.t = \"e\"; break;\n\t\tcase 'z': break;\n\t\tdefault: if(cell.v == null) { delete cell.t; break; }\n\t\t\tif(cell.v.length > 32767) throw new Error(\"Text length must not exceed 32767 characters\");\n\t\t\tif(opts && opts.bookSST) {\n\t\t\t\tv = writetag('v', ''+get_sst_id(opts.Strings, cell.v, opts.revStrings));\n\t\t\t\to.t = \"s\"; break;\n\t\t\t}\n\t\t\telse o.t = \"str\"; break;\n\t}\n\tif(cell.t != oldt) { cell.t = oldt; cell.v = oldv; }\n\tif(typeof cell.f == \"string\" && cell.f) {\n\t\tvar ff = cell.F && cell.F.slice(0, ref.length) == ref ? {t:\"array\", ref:cell.F} : null;\n\t\tv = writextag('f', escapexml(cell.f), ff) + (cell.v != null ? v : \"\");\n\t}\n\tif(cell.l) {\n\t\tcell.l.display = escapexml(vv);\n\t\tws['!links'].push([ref, cell.l]);\n\t}\n\tif(cell.D) o.cm = 1;\n\treturn writextag('c', v, o);\n}\n\nvar parse_ws_xml_data = /*#__PURE__*/(function() {\n\tvar cellregex = /<(?:\\w+:)?c[ \\/>]/, rowregex = /<\\/(?:\\w+:)?row>/;\n\tvar rregex = /r=[\"']([^\"']*)[\"']/, isregex = /<(?:\\w+:)?is>([\\S\\s]*?)<\\/(?:\\w+:)?is>/;\n\tvar refregex = /ref=[\"']([^\"']*)[\"']/;\n\tvar match_v = matchtag(\"v\"), match_f = matchtag(\"f\");\n\nreturn function parse_ws_xml_data(sdata/*:string*/, s, opts, guess/*:Range*/, themes, styles) {\n\tvar ri = 0, x = \"\", cells/*:Array*/ = [], cref/*:?Array*/ = [], idx=0, i=0, cc=0, d=\"\", p/*:any*/;\n\tvar tag, tagr = 0, tagc = 0;\n\tvar sstr, ftag;\n\tvar fmtid = 0, fillid = 0;\n\tvar do_format = Array.isArray(styles.CellXf), cf;\n\tvar arrayf/*:Array<[Range, string]>*/ = [];\n\tvar sharedf = [];\n\tvar dense = s[\"!data\"] != null;\n\tvar rows/*:Array*/ = [], rowobj = {}, rowrite = false;\n\tvar sheetStubs = !!opts.sheetStubs;\n\tfor(var marr = sdata.split(rowregex), mt = 0, marrlen = marr.length; mt != marrlen; ++mt) {\n\t\tx = marr[mt].trim();\n\t\tvar xlen = x.length;\n\t\tif(xlen === 0) continue;\n\n\t\t/* 18.3.1.73 row CT_Row */\n\t\tvar rstarti = 0;\n\t\touta: for(ri = 0; ri < xlen; ++ri) switch(/*x.charCodeAt(ri)*/x[ri]) {\n\t\t\tcase \">\" /*62*/:\n\t\t\t\tif(/*x.charCodeAt(ri-1) != 47*/x[ri-1] != \"/\") { ++ri; break outa; }\n\t\t\t\tif(opts && opts.cellStyles) {\n\t\t\t\t\t// TODO: avoid duplication\n\t\t\t\t\ttag = parsexmltag(x.slice(rstarti,ri), true);\n\t\t\t\t\ttagr = tag.r != null ? parseInt(tag.r, 10) : tagr+1; tagc = -1;\n\t\t\t\t\tif(opts.sheetRows && opts.sheetRows < tagr) continue;\n\t\t\t\t\trowobj = {}; rowrite = false;\n\t\t\t\t\tif(tag.ht) { rowrite = true; rowobj.hpt = parseFloat(tag.ht); rowobj.hpx = pt2px(rowobj.hpt); }\n\t\t\t\t\tif(tag.hidden && parsexmlbool(tag.hidden)) { rowrite = true; rowobj.hidden = true; }\n\t\t\t\t\tif(tag.outlineLevel != null) { rowrite = true; rowobj.level = +tag.outlineLevel; }\n\t\t\t\t\tif(rowrite) rows[tagr-1] = rowobj;\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase \"<\" /*60*/: rstarti = ri; break;\n\t\t}\n\t\tif(rstarti >= ri) break;\n\t\ttag = parsexmltag(x.slice(rstarti,ri), true);\n\t\ttagr = tag.r != null ? parseInt(tag.r, 10) : tagr+1; tagc = -1;\n\t\tif(opts.sheetRows && opts.sheetRows < tagr) continue;\n\t\tif(!opts.nodim) {\n\t\t\tif(guess.s.r > tagr - 1) guess.s.r = tagr - 1;\n\t\t\tif(guess.e.r < tagr - 1) guess.e.r = tagr - 1;\n\t\t}\n\n\t\tif(opts && opts.cellStyles) {\n\t\t\trowobj = {}; rowrite = false;\n\t\t\tif(tag.ht) { rowrite = true; rowobj.hpt = parseFloat(tag.ht); rowobj.hpx = pt2px(rowobj.hpt); }\n\t\t\tif(tag.hidden && parsexmlbool(tag.hidden)) { rowrite = true; rowobj.hidden = true; }\n\t\t\tif(tag.outlineLevel != null) { rowrite = true; rowobj.level = +tag.outlineLevel; }\n\t\t\tif(rowrite) rows[tagr-1] = rowobj;\n\t\t}\n\n\t\t/* 18.3.1.4 c CT_Cell */\n\t\tcells = x.slice(ri).split(cellregex);\n\t\tfor(var rslice = 0; rslice != cells.length; ++rslice) if(cells[rslice].trim().charAt(0) != \"<\") break;\n\t\tcells = cells.slice(rslice);\n\t\tfor(ri = 0; ri != cells.length; ++ri) {\n\t\t\tx = cells[ri].trim();\n\t\t\tif(x.length === 0) continue;\n\t\t\tcref = x.match(rregex); idx = ri; i=0; cc=0;\n\t\t\tx = \"\":\"\") + x;\n\t\t\tif(cref != null && cref.length === 2) {\n\t\t\t\tidx = 0; d=cref[1];\n\t\t\t\tfor(i=0; i != d.length; ++i) {\n\t\t\t\t\tif((cc=d.charCodeAt(i)-64) < 1 || cc > 26) break;\n\t\t\t\t\tidx = 26*idx + cc;\n\t\t\t\t}\n\t\t\t\t--idx;\n\t\t\t\ttagc = idx;\n\t\t\t} else ++tagc;\n\t\t\tfor(i = 0; i != x.length; ++i) if(x.charCodeAt(i) === 62) break; ++i;\n\t\t\ttag = parsexmltag(x.slice(0,i), true);\n\t\t\tif(!tag.r) tag.r = encode_cell({r:tagr-1, c:tagc});\n\t\t\td = x.slice(i);\n\t\t\tp = ({t:\"\"}/*:any*/);\n\n\t\t\tif((cref=d.match(match_v))!= null && /*::cref != null && */cref[1] !== '') p.v=unescapexml(cref[1]);\n\t\t\tif(opts.cellFormula) {\n\t\t\t\tif((cref=d.match(match_f))!= null && /*::cref != null && */cref[1] !== '') {\n\t\t\t\t\t/* TODO: match against XLSXFutureFunctions */\n\t\t\t\t\tp.f=unescapexml(utf8read(cref[1]), true);\n\t\t\t\t\tif(!opts.xlfn) p.f = _xlfn(p.f);\n\t\t\t\t\tif(/*::cref != null && cref[0] != null && */cref[0].indexOf('t=\"array\"') > -1) {\n\t\t\t\t\t\tp.F = (d.match(refregex)||[])[1];\n\t\t\t\t\t\tif(p.F.indexOf(\":\") > -1) arrayf.push([safe_decode_range(p.F), p.F]);\n\t\t\t\t\t} else if(/*::cref != null && cref[0] != null && */cref[0].indexOf('t=\"shared\"') > -1) {\n\t\t\t\t\t\t// TODO: parse formula\n\t\t\t\t\t\tftag = parsexmltag(cref[0]);\n\t\t\t\t\t\tvar ___f = unescapexml(utf8read(cref[1]));\n\t\t\t\t\t\tif(!opts.xlfn) ___f = _xlfn(___f);\n\t\t\t\t\t\tsharedf[parseInt(ftag.si, 10)] = [ftag, ___f, tag.r];\n\t\t\t\t\t}\n\t\t\t\t} else if((cref=d.match(/]*\\/>/))) {\n\t\t\t\t\tftag = parsexmltag(cref[0]);\n\t\t\t\t\tif(sharedf[ftag.si]) p.f = shift_formula_xlsx(sharedf[ftag.si][1], sharedf[ftag.si][2]/*[0].ref*/, tag.r);\n\t\t\t\t}\n\t\t\t\t/* TODO: factor out contains logic */\n\t\t\t\tvar _tag = decode_cell(tag.r);\n\t\t\t\tfor(i = 0; i < arrayf.length; ++i)\n\t\t\t\t\tif(_tag.r >= arrayf[i][0].s.r && _tag.r <= arrayf[i][0].e.r)\n\t\t\t\t\t\tif(_tag.c >= arrayf[i][0].s.c && _tag.c <= arrayf[i][0].e.c)\n\t\t\t\t\t\t\tp.F = arrayf[i][1];\n\t\t\t}\n\n\t\t\tif(tag.t == null && p.v === undefined) {\n\t\t\t\tif(p.f || p.F) {\n\t\t\t\t\tp.v = 0; p.t = \"n\";\n\t\t\t\t} else if(!sheetStubs) continue;\n\t\t\t\telse p.t = \"z\";\n\t\t\t}\n\t\t\telse p.t = tag.t || \"n\";\n\t\t\tif(guess.s.c > tagc) guess.s.c = tagc;\n\t\t\tif(guess.e.c < tagc) guess.e.c = tagc;\n\t\t\t/* 18.18.11 t ST_CellType */\n\t\t\tswitch(p.t) {\n\t\t\t\tcase 'n':\n\t\t\t\t\tif(p.v == \"\" || p.v == null) {\n\t\t\t\t\t\tif(!sheetStubs) continue;\n\t\t\t\t\t\tp.t = 'z';\n\t\t\t\t\t} else p.v = parseFloat(p.v);\n\t\t\t\t\tbreak;\n\t\t\t\tcase 's':\n\t\t\t\t\tif(typeof p.v == 'undefined') {\n\t\t\t\t\t\tif(!sheetStubs) continue;\n\t\t\t\t\t\tp.t = 'z';\n\t\t\t\t\t} else {\n\t\t\t\t\t\tsstr = strs[parseInt(p.v, 10)];\n\t\t\t\t\t\tp.v = sstr.t;\n\t\t\t\t\t\tp.r = sstr.r;\n\t\t\t\t\t\tif(opts.cellHTML) p.h = sstr.h;\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'str':\n\t\t\t\t\tp.t = \"s\";\n\t\t\t\t\tp.v = (p.v!=null) ? unescapexml(utf8read(p.v), true) : '';\n\t\t\t\t\tif(opts.cellHTML) p.h = escapehtml(p.v);\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'inlineStr':\n\t\t\t\t\tcref = d.match(isregex);\n\t\t\t\t\tp.t = 's';\n\t\t\t\t\tif(cref != null && (sstr = parse_si(cref[1]))) {\n\t\t\t\t\t\tp.v = sstr.t;\n\t\t\t\t\t\tif(opts.cellHTML) p.h = sstr.h;\n\t\t\t\t\t} else p.v = \"\";\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'b': p.v = parsexmlbool(p.v); break;\n\t\t\t\tcase 'd':\n\t\t\t\t\tif(opts.cellDates) p.v = parseDate(p.v, 1);\n\t\t\t\t\telse { p.v = datenum(parseDate(p.v, 1)); p.t = 'n'; }\n\t\t\t\t\tbreak;\n\t\t\t\t/* error string in .w, number in .v */\n\t\t\t\tcase 'e':\n\t\t\t\t\tif(!opts || opts.cellText !== false) p.w = p.v;\n\t\t\t\t\tp.v = RBErr[p.v]; break;\n\t\t\t}\n\t\t\t/* formatting */\n\t\t\tfmtid = fillid = 0;\n\t\t\tcf = null;\n\t\t\tif(do_format && tag.s !== undefined) {\n\t\t\t\tcf = styles.CellXf[tag.s];\n\t\t\t\tif(cf != null) {\n\t\t\t\t\tif(cf.numFmtId != null) fmtid = cf.numFmtId;\n\t\t\t\t\tif(opts.cellStyles) {\n\t\t\t\t\t\tif(cf.fillId != null) fillid = cf.fillId;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tsafe_format(p, fmtid, fillid, opts, themes, styles);\n\t\t\tif(opts.cellDates && do_format && p.t == 'n' && fmt_is_date(table_fmt[fmtid])) { p.t = 'd'; p.v = numdate(p.v); }\n\t\t\tif(tag.cm && opts.xlmeta) {\n\t\t\t\tvar cm = (opts.xlmeta.Cell||[])[+tag.cm-1];\n\t\t\t\tif(cm && cm.type == 'XLDAPR') p.D = true;\n\t\t\t}\n\t\t\tvar _r;\n\t\t\tif(opts.nodim) {\n\t\t\t\t_r = decode_cell(tag.r);\n\t\t\t\tif(guess.s.r > _r.r) guess.s.r = _r.r;\n\t\t\t\tif(guess.e.r < _r.r) guess.e.r = _r.r;\n\t\t\t}\n\t\t\tif(dense) {\n\t\t\t\t_r = decode_cell(tag.r);\n\t\t\t\tif(!s[\"!data\"][_r.r]) s[\"!data\"][_r.r] = [];\n\t\t\t\ts[\"!data\"][_r.r][_r.c] = p;\n\t\t\t} else s[tag.r] = p;\n\t\t}\n\t}\n\tif(rows.length > 0) s['!rows'] = rows;\n}; })();\n\nfunction write_ws_xml_data(ws/*:Worksheet*/, opts, idx/*:number*/, wb/*:Workbook*//*::, rels*/)/*:string*/ {\n\tvar o/*:Array*/ = [], r/*:Array*/ = [], range = safe_decode_range(ws['!ref']), cell=\"\", ref, rr = \"\", cols/*:Array*/ = [], R=0, C=0, rows = ws['!rows'];\n\tvar dense = ws[\"!data\"] != null;\n\tvar params = ({r:rr}/*:any*/), row/*:RowInfo*/, height = -1;\n\tfor(C = range.s.c; C <= range.e.c; ++C) cols[C] = encode_col(C);\n\tfor(R = range.s.r; R <= range.e.r; ++R) {\n\t\tr = [];\n\t\trr = encode_row(R);\n\t\tfor(C = range.s.c; C <= range.e.c; ++C) {\n\t\t\tref = cols[C] + rr;\n\t\t\tvar _cell = dense ? (ws[\"!data\"][R]||[])[C]: ws[ref];\n\t\t\tif(_cell === undefined) continue;\n\t\t\tif((cell = write_ws_xml_cell(_cell, ref, ws, opts, idx, wb)) != null) r.push(cell);\n\t\t}\n\t\tif(r.length > 0 || (rows && rows[R])) {\n\t\t\tparams = ({r:rr}/*:any*/);\n\t\t\tif(rows && rows[R]) {\n\t\t\t\trow = rows[R];\n\t\t\t\tif(row.hidden) params.hidden = 1;\n\t\t\t\theight = -1;\n\t\t\t\tif(row.hpx) height = px2pt(row.hpx);\n\t\t\t\telse if(row.hpt) height = row.hpt;\n\t\t\t\tif(height > -1) { params.ht = height; params.customHeight = 1; }\n\t\t\t\tif(row.level) { params.outlineLevel = row.level; }\n\t\t\t}\n\t\t\to[o.length] = (writextag('row', r.join(\"\"), params));\n\t\t}\n\t}\n\tif(rows) for(; R < rows.length; ++R) {\n\t\tif(rows && rows[R]) {\n\t\t\tparams = ({r:R+1}/*:any*/);\n\t\t\trow = rows[R];\n\t\t\tif(row.hidden) params.hidden = 1;\n\t\t\theight = -1;\n\t\t\tif (row.hpx) height = px2pt(row.hpx);\n\t\t\telse if (row.hpt) height = row.hpt;\n\t\t\tif (height > -1) { params.ht = height; params.customHeight = 1; }\n\t\t\tif (row.level) { params.outlineLevel = row.level; }\n\t\t\to[o.length] = (writextag('row', \"\", params));\n\t\t}\n\t}\n\treturn o.join(\"\");\n}\n\nfunction write_ws_xml(idx/*:number*/, opts, wb/*:Workbook*/, rels)/*:string*/ {\n\tvar o = [XML_HEADER, writextag('worksheet', null, {\n\t\t'xmlns': XMLNS_main[0],\n\t\t'xmlns:r': XMLNS.r\n\t})];\n\tvar s = wb.SheetNames[idx], sidx = 0, rdata = \"\";\n\tvar ws = wb.Sheets[s];\n\tif(ws == null) ws = {};\n\tvar ref = ws['!ref'] || 'A1';\n\tvar range = safe_decode_range(ref);\n\tif(range.e.c > 0x3FFF || range.e.r > 0xFFFFF) {\n\t\tif(opts.WTF) throw new Error(\"Range \" + ref + \" exceeds format limit A1:XFD1048576\");\n\t\trange.e.c = Math.min(range.e.c, 0x3FFF);\n\t\trange.e.r = Math.min(range.e.c, 0xFFFFF);\n\t\tref = encode_range(range);\n\t}\n\tif(!rels) rels = {};\n\tws['!comments'] = [];\n\tvar _drawing = [];\n\n\twrite_ws_xml_sheetpr(ws, wb, idx, opts, o);\n\n\to[o.length] = (writextag('dimension', null, {'ref': ref}));\n\n\to[o.length] = write_ws_xml_sheetviews(ws, opts, idx, wb);\n\n\t/* TODO: store in WB, process styles */\n\tif(opts.sheetFormat) o[o.length] = (writextag('sheetFormatPr', null, {\n\t\tdefaultRowHeight:opts.sheetFormat.defaultRowHeight||'16',\n\t\tbaseColWidth:opts.sheetFormat.baseColWidth||'10',\n\t\toutlineLevelRow:opts.sheetFormat.outlineLevelRow||'7'\n\t}));\n\n\tif(ws['!cols'] != null && ws['!cols'].length > 0) o[o.length] = (write_ws_xml_cols(ws, ws['!cols']));\n\n\to[sidx = o.length] = '';\n\tws['!links'] = [];\n\tif(ws['!ref'] != null) {\n\t\trdata = write_ws_xml_data(ws, opts, idx, wb, rels);\n\t\tif(rdata.length > 0) o[o.length] = (rdata);\n\t}\n\tif(o.length>sidx+1) { o[o.length] = (''); o[sidx]=o[sidx].replace(\"/>\",\">\"); }\n\n\t/* sheetCalcPr */\n\n\tif(ws['!protect']) o[o.length] = write_ws_xml_protection(ws['!protect']);\n\n\t/* protectedRanges */\n\t/* scenarios */\n\n\tif(ws['!autofilter'] != null) o[o.length] = write_ws_xml_autofilter(ws['!autofilter'], ws, wb, idx);\n\n\t/* sortState */\n\t/* dataConsolidate */\n\t/* customSheetViews */\n\n\tif(ws['!merges'] != null && ws['!merges'].length > 0) o[o.length] = (write_ws_xml_merges(ws['!merges']));\n\n\t/* phoneticPr */\n\t/* conditionalFormatting */\n\t/* dataValidations */\n\n\tvar relc = -1, rel, rId = -1;\n\tif(/*::(*/ws['!links']/*::||[])*/.length > 0) {\n\t\to[o.length] = \"\";\n\t\t/*::(*/ws['!links']/*::||[])*/.forEach(function(l) {\n\t\t\tif(!l[1].Target) return;\n\t\t\trel = ({\"ref\":l[0]}/*:any*/);\n\t\t\tif(l[1].Target.charAt(0) != \"#\") {\n\t\t\t\trId = add_rels(rels, -1, escapexml(l[1].Target).replace(/#.*$/, \"\"), RELS.HLINK);\n\t\t\t\trel[\"r:id\"] = \"rId\"+rId;\n\t\t\t}\n\t\t\tif((relc = l[1].Target.indexOf(\"#\")) > -1) rel.location = escapexml(l[1].Target.slice(relc+1));\n\t\t\tif(l[1].Tooltip) rel.tooltip = escapexml(l[1].Tooltip);\n\t\t\trel.display = l[1].display;\n\t\t\to[o.length] = writextag(\"hyperlink\",null,rel);\n\t\t});\n\t\to[o.length] = \"\";\n\t}\n\tdelete ws['!links'];\n\n\t/* printOptions */\n\n\tif(ws['!margins'] != null) o[o.length] = write_ws_xml_margins(ws['!margins']);\n\n\t/* pageSetup */\n\t/* headerFooter */\n\t/* rowBreaks */\n\t/* colBreaks */\n\t/* customProperties */\n\t/* cellWatches */\n\n\tif(!opts || opts.ignoreEC || (opts.ignoreEC == (void 0))) o[o.length] = writetag(\"ignoredErrors\", writextag(\"ignoredError\", null, {numberStoredAsText:1, sqref:ref}));\n\n\t/* smartTags */\n\n\tif(_drawing.length > 0) {\n\t\trId = add_rels(rels, -1, \"../drawings/drawing\" + (idx+1) + \".xml\", RELS.DRAW);\n\t\to[o.length] = writextag(\"drawing\", null, {\"r:id\":\"rId\" + rId});\n\t\tws['!drawing'] = _drawing;\n\t}\n\n\tif(ws['!comments'].length > 0) {\n\t\trId = add_rels(rels, -1, \"../drawings/vmlDrawing\" + (idx+1) + \".vml\", RELS.VML);\n\t\to[o.length] = writextag(\"legacyDrawing\", null, {\"r:id\":\"rId\" + rId});\n\t\tws['!legacy'] = rId;\n\t}\n\n\t/* legacyDrawingHF */\n\t/* picture */\n\t/* oleObjects */\n\t/* controls */\n\t/* webPublishItems */\n\t/* tableParts */\n\t/* extLst */\n\n\tif(o.length>1) { o[o.length] = (''); o[1]=o[1].replace(\"/>\",\">\"); }\n\treturn o.join(\"\");\n}\n\n/* [MS-XLSB] 2.4.726 BrtRowHdr */\nfunction parse_BrtRowHdr(data, length) {\n\tvar z = ({}/*:any*/);\n\tvar tgt = data.l + length;\n\tz.r = data.read_shift(4);\n\tdata.l += 4; // TODO: ixfe\n\tvar miyRw = data.read_shift(2);\n\tdata.l += 1; // TODO: top/bot padding\n\tvar flags = data.read_shift(1);\n\tdata.l = tgt;\n\tif(flags & 0x07) z.level = flags & 0x07;\n\tif(flags & 0x10) z.hidden = true;\n\tif(flags & 0x20) z.hpt = miyRw / 20;\n\treturn z;\n}\nfunction write_BrtRowHdr(R/*:number*/, range, ws) {\n\tvar o = new_buf(17+8*16);\n\tvar row = (ws['!rows']||[])[R]||{};\n\to.write_shift(4, R);\n\n\to.write_shift(4, 0); /* TODO: ixfe */\n\n\tvar miyRw = 0x0140;\n\tif(row.hpx) miyRw = px2pt(row.hpx) * 20;\n\telse if(row.hpt) miyRw = row.hpt * 20;\n\to.write_shift(2, miyRw);\n\n\to.write_shift(1, 0); /* top/bot padding */\n\n\tvar flags = 0x0;\n\tif(row.level) flags |= row.level;\n\tif(row.hidden) flags |= 0x10;\n\tif(row.hpx || row.hpt) flags |= 0x20;\n\to.write_shift(1, flags);\n\n\to.write_shift(1, 0); /* phonetic guide */\n\n\t/* [MS-XLSB] 2.5.8 BrtColSpan explains the mechanism */\n\tvar ncolspan = 0, lcs = o.l;\n\to.l += 4;\n\n\tvar caddr = {r:R, c:0};\n\tvar dense = ws[\"!data\"] != null;\n\tfor(var i = 0; i < 16; ++i) {\n\t\tif((range.s.c > ((i+1) << 10)) || (range.e.c < (i << 10))) continue;\n\t\tvar first = -1, last = -1;\n\t\tfor(var j = (i<<10); j < ((i+1)<<10); ++j) {\n\t\t\tcaddr.c = j;\n\t\t\tvar cell = dense ? (ws[\"!data\"][caddr.r]||[])[caddr.c] : ws[encode_cell(caddr)];\n\t\t\tif(cell) { if(first < 0) first = j; last = j; }\n\t\t}\n\t\tif(first < 0) continue;\n\t\t++ncolspan;\n\t\to.write_shift(4, first);\n\t\to.write_shift(4, last);\n\t}\n\n\tvar l = o.l;\n\to.l = lcs;\n\to.write_shift(4, ncolspan);\n\to.l = l;\n\n\treturn o.length > o.l ? o.slice(0, o.l) : o;\n}\nfunction write_row_header(ba, ws, range, R) {\n\tvar o = write_BrtRowHdr(R, range, ws);\n\tif((o.length > 17) || (ws['!rows']||[])[R]) write_record(ba, 0x0000 /* BrtRowHdr */, o);\n}\n\n/* [MS-XLSB] 2.4.820 BrtWsDim */\nvar parse_BrtWsDim = parse_UncheckedRfX;\nvar write_BrtWsDim = write_UncheckedRfX;\n\n/* [MS-XLSB] 2.4.821 BrtWsFmtInfo */\nfunction parse_BrtWsFmtInfo(/*::data, length*/) {\n}\n//function write_BrtWsFmtInfo(ws, o) { }\n\n/* [MS-XLSB] 2.4.823 BrtWsProp */\nfunction parse_BrtWsProp(data, length) {\n\tvar z = {};\n\tvar f = data[data.l]; ++data.l;\n\tz.above = !(f & 0x40);\n\tz.left = !(f & 0x80);\n\t/* TODO: pull flags */\n\tdata.l += 18;\n\tz.name = parse_XLSBCodeName(data, length - 19);\n\treturn z;\n}\nfunction write_BrtWsProp(str, outl, o) {\n\tif(o == null) o = new_buf(84+4*str.length);\n\tvar f = 0xC0;\n\tif(outl) {\n\t\tif(outl.above) f &= ~0x40;\n\t\tif(outl.left) f &= ~0x80;\n\t}\n\to.write_shift(1, f);\n\tfor(var i = 1; i < 3; ++i) o.write_shift(1,0);\n\twrite_BrtColor({auto:1}, o);\n\to.write_shift(-4,-1);\n\to.write_shift(-4,-1);\n\twrite_XLSBCodeName(str, o);\n\treturn o.slice(0, o.l);\n}\n\n/* [MS-XLSB] 2.4.306 BrtCellBlank */\nfunction parse_BrtCellBlank(data) {\n\tvar cell = parse_XLSBCell(data);\n\treturn [cell];\n}\nfunction write_BrtCellBlank(cell, ncell, o) {\n\tif(o == null) o = new_buf(8);\n\treturn write_XLSBCell(ncell, o);\n}\nfunction parse_BrtShortBlank(data) {\n\tvar cell = parse_XLSBShortCell(data);\n\treturn [cell];\n}\nfunction write_BrtShortBlank(cell, ncell, o) {\n\tif(o == null) o = new_buf(4);\n\treturn write_XLSBShortCell(ncell, o);\n}\n\n/* [MS-XLSB] 2.4.307 BrtCellBool */\nfunction parse_BrtCellBool(data) {\n\tvar cell = parse_XLSBCell(data);\n\tvar fBool = data.read_shift(1);\n\treturn [cell, fBool, 'b'];\n}\nfunction write_BrtCellBool(cell, ncell, o) {\n\tif(o == null) o = new_buf(9);\n\twrite_XLSBCell(ncell, o);\n\to.write_shift(1, cell.v ? 1 : 0);\n\treturn o;\n}\nfunction parse_BrtShortBool(data) {\n\tvar cell = parse_XLSBShortCell(data);\n\tvar fBool = data.read_shift(1);\n\treturn [cell, fBool, 'b'];\n}\nfunction write_BrtShortBool(cell, ncell, o) {\n\tif(o == null) o = new_buf(5);\n\twrite_XLSBShortCell(ncell, o);\n\to.write_shift(1, cell.v ? 1 : 0);\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.308 BrtCellError */\nfunction parse_BrtCellError(data) {\n\tvar cell = parse_XLSBCell(data);\n\tvar bError = data.read_shift(1);\n\treturn [cell, bError, 'e'];\n}\nfunction write_BrtCellError(cell, ncell, o) {\n\tif(o == null) o = new_buf(9);\n\twrite_XLSBCell(ncell, o);\n\to.write_shift(1, cell.v);\n\treturn o;\n}\nfunction parse_BrtShortError(data) {\n\tvar cell = parse_XLSBShortCell(data);\n\tvar bError = data.read_shift(1);\n\treturn [cell, bError, 'e'];\n}\nfunction write_BrtShortError(cell, ncell, o) {\n\tif(o == null) o = new_buf(8);\n\twrite_XLSBShortCell(ncell, o);\n\to.write_shift(1, cell.v);\n\to.write_shift(2, 0);\n\to.write_shift(1, 0);\n\treturn o;\n}\n\n\n/* [MS-XLSB] 2.4.311 BrtCellIsst */\nfunction parse_BrtCellIsst(data) {\n\tvar cell = parse_XLSBCell(data);\n\tvar isst = data.read_shift(4);\n\treturn [cell, isst, 's'];\n}\nfunction write_BrtCellIsst(cell, ncell, o) {\n\tif(o == null) o = new_buf(12);\n\twrite_XLSBCell(ncell, o);\n\to.write_shift(4, ncell.v);\n\treturn o;\n}\nfunction parse_BrtShortIsst(data) {\n\tvar cell = parse_XLSBShortCell(data);\n\tvar isst = data.read_shift(4);\n\treturn [cell, isst, 's'];\n}\nfunction write_BrtShortIsst(cell, ncell, o) {\n\tif(o == null) o = new_buf(8);\n\twrite_XLSBShortCell(ncell, o);\n\to.write_shift(4, ncell.v);\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.313 BrtCellReal */\nfunction parse_BrtCellReal(data) {\n\tvar cell = parse_XLSBCell(data);\n\tvar value = parse_Xnum(data);\n\treturn [cell, value, 'n'];\n}\nfunction write_BrtCellReal(cell, ncell, o) {\n\tif(o == null) o = new_buf(16);\n\twrite_XLSBCell(ncell, o);\n\twrite_Xnum(cell.v, o);\n\treturn o;\n}\nfunction parse_BrtShortReal(data) {\n\tvar cell = parse_XLSBShortCell(data);\n\tvar value = parse_Xnum(data);\n\treturn [cell, value, 'n'];\n}\nfunction write_BrtShortReal(cell, ncell, o) {\n\tif(o == null) o = new_buf(12);\n\twrite_XLSBShortCell(ncell, o);\n\twrite_Xnum(cell.v, o);\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.314 BrtCellRk */\nfunction parse_BrtCellRk(data) {\n\tvar cell = parse_XLSBCell(data);\n\tvar value = parse_RkNumber(data);\n\treturn [cell, value, 'n'];\n}\nfunction write_BrtCellRk(cell, ncell, o) {\n\tif(o == null) o = new_buf(12);\n\twrite_XLSBCell(ncell, o);\n\twrite_RkNumber(cell.v, o);\n\treturn o;\n}\nfunction parse_BrtShortRk(data) {\n\tvar cell = parse_XLSBShortCell(data);\n\tvar value = parse_RkNumber(data);\n\treturn [cell, value, 'n'];\n}\nfunction write_BrtShortRk(cell, ncell, o) {\n\tif(o == null) o = new_buf(8);\n\twrite_XLSBShortCell(ncell, o);\n\twrite_RkNumber(cell.v, o);\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.323 BrtCellRString */\nfunction parse_BrtCellRString(data) {\n\tvar cell = parse_XLSBCell(data);\n\tvar value = parse_RichStr(data);\n\treturn [cell, value, 'is'];\n}\n\n/* [MS-XLSB] 2.4.317 BrtCellSt */\nfunction parse_BrtCellSt(data) {\n\tvar cell = parse_XLSBCell(data);\n\tvar value = parse_XLWideString(data);\n\treturn [cell, value, 'str'];\n}\nfunction write_BrtCellSt(cell, ncell, o) {\n\tvar data = cell.v == null ? \"\" : String(cell.v);\n\tif(o == null) o = new_buf(12 + 4 * cell.v.length);\n\twrite_XLSBCell(ncell, o);\n\twrite_XLWideString(data, o);\n\treturn o.length > o.l ? o.slice(0, o.l) : o;\n}\nfunction parse_BrtShortSt(data) {\n\tvar cell = parse_XLSBShortCell(data);\n\tvar value = parse_XLWideString(data);\n\treturn [cell, value, 'str'];\n}\nfunction write_BrtShortSt(cell, ncell, o) {\n\tvar data = cell.v == null ? \"\" : String(cell.v);\n\tif(o == null) o = new_buf(8 + 4 * data.length);\n\twrite_XLSBShortCell(ncell, o);\n\twrite_XLWideString(data, o);\n\treturn o.length > o.l ? o.slice(0, o.l) : o;\n}\n\n/* [MS-XLSB] 2.4.653 BrtFmlaBool */\nfunction parse_BrtFmlaBool(data, length, opts) {\n\tvar end = data.l + length;\n\tvar cell = parse_XLSBCell(data);\n\tcell.r = opts['!row'];\n\tvar value = data.read_shift(1);\n\tvar o = [cell, value, 'b'];\n\tif(opts.cellFormula) {\n\t\tdata.l += 2;\n\t\tvar formula = parse_XLSBCellParsedFormula(data, end - data.l, opts);\n\t\to[3] = stringify_formula(formula, null/*range*/, cell, opts.supbooks, opts);/* TODO */\n\t}\n\telse data.l = end;\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.654 BrtFmlaError */\nfunction parse_BrtFmlaError(data, length, opts) {\n\tvar end = data.l + length;\n\tvar cell = parse_XLSBCell(data);\n\tcell.r = opts['!row'];\n\tvar value = data.read_shift(1);\n\tvar o = [cell, value, 'e'];\n\tif(opts.cellFormula) {\n\t\tdata.l += 2;\n\t\tvar formula = parse_XLSBCellParsedFormula(data, end - data.l, opts);\n\t\to[3] = stringify_formula(formula, null/*range*/, cell, opts.supbooks, opts);/* TODO */\n\t}\n\telse data.l = end;\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.655 BrtFmlaNum */\nfunction parse_BrtFmlaNum(data, length, opts) {\n\tvar end = data.l + length;\n\tvar cell = parse_XLSBCell(data);\n\tcell.r = opts['!row'];\n\tvar value = parse_Xnum(data);\n\tvar o = [cell, value, 'n'];\n\tif(opts.cellFormula) {\n\t\tdata.l += 2;\n\t\tvar formula = parse_XLSBCellParsedFormula(data, end - data.l, opts);\n\t\to[3] = stringify_formula(formula, null/*range*/, cell, opts.supbooks, opts);/* TODO */\n\t}\n\telse data.l = end;\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.656 BrtFmlaString */\nfunction parse_BrtFmlaString(data, length, opts) {\n\tvar end = data.l + length;\n\tvar cell = parse_XLSBCell(data);\n\tcell.r = opts['!row'];\n\tvar value = parse_XLWideString(data);\n\tvar o = [cell, value, 'str'];\n\tif(opts.cellFormula) {\n\t\tdata.l += 2;\n\t\tvar formula = parse_XLSBCellParsedFormula(data, end - data.l, opts);\n\t\to[3] = stringify_formula(formula, null/*range*/, cell, opts.supbooks, opts);/* TODO */\n\t}\n\telse data.l = end;\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.682 BrtMergeCell */\nvar parse_BrtMergeCell = parse_UncheckedRfX;\nvar write_BrtMergeCell = write_UncheckedRfX;\n/* [MS-XLSB] 2.4.107 BrtBeginMergeCells */\nfunction write_BrtBeginMergeCells(cnt, o) {\n\tif(o == null) o = new_buf(4);\n\to.write_shift(4, cnt);\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.662 BrtHLink */\nfunction parse_BrtHLink(data, length/*::, opts*/) {\n\tvar end = data.l + length;\n\tvar rfx = parse_UncheckedRfX(data, 16);\n\tvar relId = parse_XLNullableWideString(data);\n\tvar loc = parse_XLWideString(data);\n\tvar tooltip = parse_XLWideString(data);\n\tvar display = parse_XLWideString(data);\n\tdata.l = end;\n\tvar o = ({rfx:rfx, relId:relId, loc:loc, display:display}/*:any*/);\n\tif(tooltip) o.Tooltip = tooltip;\n\treturn o;\n}\nfunction write_BrtHLink(l, rId) {\n\tvar o = new_buf(50+4*(l[1].Target.length + (l[1].Tooltip || \"\").length));\n\twrite_UncheckedRfX({s:decode_cell(l[0]), e:decode_cell(l[0])}, o);\n\twrite_RelID(\"rId\" + rId, o);\n\tvar locidx = l[1].Target.indexOf(\"#\");\n\tvar loc = locidx == -1 ? \"\" : l[1].Target.slice(locidx+1);\n\twrite_XLWideString(loc || \"\", o);\n\twrite_XLWideString(l[1].Tooltip || \"\", o);\n\twrite_XLWideString(\"\", o);\n\treturn o.slice(0, o.l);\n}\n\n/* [MS-XLSB] 2.4.692 BrtPane */\nfunction parse_BrtPane(/*data, length, opts*/) {\n}\n\n/* [MS-XLSB] 2.4.6 BrtArrFmla */\nfunction parse_BrtArrFmla(data, length, opts) {\n\tvar end = data.l + length;\n\tvar rfx = parse_RfX(data, 16);\n\tvar fAlwaysCalc = data.read_shift(1);\n\tvar o = [rfx]; o[2] = fAlwaysCalc;\n\tif(opts.cellFormula) {\n\t\tvar formula = parse_XLSBArrayParsedFormula(data, end - data.l, opts);\n\t\to[1] = formula;\n\t} else data.l = end;\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.750 BrtShrFmla */\nfunction parse_BrtShrFmla(data, length, opts) {\n\tvar end = data.l + length;\n\tvar rfx = parse_UncheckedRfX(data, 16);\n\tvar o = [rfx];\n\tif(opts.cellFormula) {\n\t\tvar formula = parse_XLSBSharedParsedFormula(data, end - data.l, opts);\n\t\to[1] = formula;\n\t\tdata.l = end;\n\t} else data.l = end;\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.323 BrtColInfo */\n/* TODO: once XLS ColInfo is set, combine the functions */\nfunction write_BrtColInfo(C/*:number*/, col, o) {\n\tif(o == null) o = new_buf(18);\n\tvar p = col_obj_w(C, col);\n\to.write_shift(-4, C);\n\to.write_shift(-4, C);\n\to.write_shift(4, (p.width || 10) * 256);\n\to.write_shift(4, 0/*ixfe*/); // style\n\tvar flags = 0;\n\tif(col.hidden) flags |= 0x01;\n\tif(typeof p.width == 'number') flags |= 0x02;\n\tif(col.level) flags |= (col.level << 8);\n\to.write_shift(2, flags); // bit flag\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.678 BrtMargins */\nvar BrtMarginKeys = [\"left\",\"right\",\"top\",\"bottom\",\"header\",\"footer\"];\nfunction parse_BrtMargins(data/*::, length, opts*/)/*:Margins*/ {\n\tvar margins = ({}/*:any*/);\n\tBrtMarginKeys.forEach(function(k) { margins[k] = parse_Xnum(data, 8); });\n\treturn margins;\n}\nfunction write_BrtMargins(margins/*:Margins*/, o) {\n\tif(o == null) o = new_buf(6*8);\n\tdefault_margins(margins);\n\tBrtMarginKeys.forEach(function(k) { write_Xnum((margins/*:any*/)[k], o); });\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.299 BrtBeginWsView */\nfunction parse_BrtBeginWsView(data/*::, length, opts*/) {\n\tvar f = data.read_shift(2);\n\tdata.l += 28;\n\treturn { RTL: f & 0x20 };\n}\nfunction write_BrtBeginWsView(ws, Workbook, o) {\n\tif(o == null) o = new_buf(30);\n\tvar f = 0x39c;\n\tif((((Workbook||{}).Views||[])[0]||{}).RTL) f |= 0x20;\n\to.write_shift(2, f); // bit flag\n\to.write_shift(4, 0);\n\to.write_shift(4, 0); // view first row\n\to.write_shift(4, 0); // view first col\n\to.write_shift(1, 0); // gridline color ICV\n\to.write_shift(1, 0);\n\to.write_shift(2, 0);\n\to.write_shift(2, 100); // zoom scale\n\to.write_shift(2, 0);\n\to.write_shift(2, 0);\n\to.write_shift(2, 0);\n\to.write_shift(4, 0); // workbook view id\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.309 BrtCellIgnoreEC */\nfunction write_BrtCellIgnoreEC(ref) {\n\tvar o = new_buf(24);\n\to.write_shift(4, 4);\n\to.write_shift(4, 1);\n\twrite_UncheckedRfX(ref, o);\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.748 BrtSheetProtection */\nfunction write_BrtSheetProtection(sp, o) {\n\tif(o == null) o = new_buf(16*4+2);\n\to.write_shift(2, sp.password ? crypto_CreatePasswordVerifier_Method1(sp.password) : 0);\n\to.write_shift(4, 1); // this record should not be written if no protection\n\t[\n\t\t[\"objects\", false], // fObjects\n\t\t[\"scenarios\", false], // fScenarios\n\t\t[\"formatCells\", true], // fFormatCells\n\t\t[\"formatColumns\", true], // fFormatColumns\n\t\t[\"formatRows\", true], // fFormatRows\n\t\t[\"insertColumns\", true], // fInsertColumns\n\t\t[\"insertRows\", true], // fInsertRows\n\t\t[\"insertHyperlinks\", true], // fInsertHyperlinks\n\t\t[\"deleteColumns\", true], // fDeleteColumns\n\t\t[\"deleteRows\", true], // fDeleteRows\n\t\t[\"selectLockedCells\", false], // fSelLockedCells\n\t\t[\"sort\", true], // fSort\n\t\t[\"autoFilter\", true], // fAutoFilter\n\t\t[\"pivotTables\", true], // fPivotTables\n\t\t[\"selectUnlockedCells\", false] // fSelUnlockedCells\n\t].forEach(function(n) {\n\t\t/*:: if(o == null) throw \"unreachable\"; */\n\t\tif(n[1]) o.write_shift(4, sp[n[0]] != null && !sp[n[0]] ? 1 : 0);\n\t\telse o.write_shift(4, sp[n[0]] != null && sp[n[0]] ? 0 : 1);\n\t});\n\treturn o;\n}\n\nfunction parse_BrtDVal(/*data, length, opts*/) {\n}\nfunction parse_BrtDVal14(/*data, length, opts*/) {\n}\n/* [MS-XLSB] 2.1.7.61 Worksheet */\nfunction parse_ws_bin(data, _opts, idx, rels, wb/*:WBWBProps*/, themes, styles)/*:Worksheet*/ {\n\tif(!data) return data;\n\tvar opts = _opts || {};\n\tif(!rels) rels = {'!id':{}};\n\tif(DENSE != null && opts.dense == null) opts.dense = DENSE;\n\tvar s/*:Worksheet*/ = ({}); if(opts.dense) s[\"!data\"] = [];\n\n\tvar ref;\n\tvar refguess = {s: {r:2000000, c:2000000}, e: {r:0, c:0} };\n\n\tvar state/*:Array*/ = [];\n\tvar pass = false, end = false;\n\tvar row, p, cf, R, C, addr, sstr, rr, cell/*:Cell*/;\n\tvar merges/*:Array*/ = [];\n\topts.biff = 12;\n\topts['!row'] = 0;\n\n\tvar ai = 0, af = false;\n\n\tvar arrayf/*:Array<[Range, string]>*/ = [];\n\tvar sharedf = {};\n\tvar supbooks = opts.supbooks || /*::(*/wb/*:: :any)*/.supbooks || ([[]]/*:any*/);\n\tsupbooks.sharedf = sharedf;\n\tsupbooks.arrayf = arrayf;\n\tsupbooks.SheetNames = wb.SheetNames || wb.Sheets.map(function(x) { return x.name; });\n\tif(!opts.supbooks) {\n\t\topts.supbooks = supbooks;\n\t\tif(wb.Names) for(var i = 0; i < wb.Names.length; ++i) supbooks[0][i+1] = wb.Names[i];\n\t}\n\n\tvar colinfo/*:Array*/ = [], rowinfo/*:Array*/ = [];\n\tvar seencol = false;\n\n\tXLSBRecordEnum[0x0010] = { n:\"BrtShortReal\", f:parse_BrtShortReal };\n\n\tvar cm, vm;\n\n\trecordhopper(data, function ws_parse(val, RR, RT) {\n\t\tif(end) return;\n\t\tswitch(RT) {\n\t\t\tcase 0x0094: /* 'BrtWsDim' */\n\t\t\t\tref = val; break;\n\t\t\tcase 0x0000: /* 'BrtRowHdr' */\n\t\t\t\trow = val;\n\t\t\t\tif(opts.sheetRows && opts.sheetRows <= row.r) end=true;\n\t\t\t\trr = encode_row(R = row.r);\n\t\t\t\topts['!row'] = row.r;\n\t\t\t\tif(val.hidden || val.hpt || val.level != null) {\n\t\t\t\t\tif(val.hpt) val.hpx = pt2px(val.hpt);\n\t\t\t\t\trowinfo[val.r] = val;\n\t\t\t\t}\n\t\t\t\tbreak;\n\n\t\t\tcase 0x0002: /* 'BrtCellRk' */\n\t\t\tcase 0x0003: /* 'BrtCellError' */\n\t\t\tcase 0x0004: /* 'BrtCellBool' */\n\t\t\tcase 0x0005: /* 'BrtCellReal' */\n\t\t\tcase 0x0006: /* 'BrtCellSt' */\n\t\t\tcase 0x0007: /* 'BrtCellIsst' */\n\t\t\tcase 0x0008: /* 'BrtFmlaString' */\n\t\t\tcase 0x0009: /* 'BrtFmlaNum' */\n\t\t\tcase 0x000A: /* 'BrtFmlaBool' */\n\t\t\tcase 0x000B: /* 'BrtFmlaError' */\n\t\t\tcase 0x000D: /* 'BrtShortRk' */\n\t\t\tcase 0x000E: /* 'BrtShortError' */\n\t\t\tcase 0x000F: /* 'BrtShortBool' */\n\t\t\tcase 0x0010: /* 'BrtShortReal' */\n\t\t\tcase 0x0011: /* 'BrtShortSt' */\n\t\t\tcase 0x0012: /* 'BrtShortIsst' */\n\t\t\tcase 0x003E: /* 'BrtCellRString' */\n\t\t\t\tp = ({t:val[2]}/*:any*/);\n\t\t\t\tswitch(val[2]) {\n\t\t\t\t\tcase 'n': p.v = val[1]; break;\n\t\t\t\t\tcase 's': sstr = strs[val[1]]; p.v = sstr.t; p.r = sstr.r; break;\n\t\t\t\t\tcase 'b': p.v = val[1] ? true : false; break;\n\t\t\t\t\tcase 'e': p.v = val[1]; if(opts.cellText !== false) p.w = BErr[p.v]; break;\n\t\t\t\t\tcase 'str': p.t = 's'; p.v = val[1]; break;\n\t\t\t\t\tcase 'is': p.t = 's'; p.v = val[1].t; break;\n\t\t\t\t}\n\t\t\t\tif((cf = styles.CellXf[val[0].iStyleRef])) safe_format(p,cf.numFmtId,null,opts, themes, styles);\n\t\t\t\tC = val[0].c == -1 ? C + 1 : val[0].c;\n\t\t\t\tif(opts.dense) { if(!s[\"!data\"][R]) s[\"!data\"][R] = []; s[\"!data\"][R][C] = p; }\n\t\t\t\telse s[encode_col(C) + rr] = p;\n\t\t\t\tif(opts.cellFormula) {\n\t\t\t\t\taf = false;\n\t\t\t\t\tfor(ai = 0; ai < arrayf.length; ++ai) {\n\t\t\t\t\t\tvar aii = arrayf[ai];\n\t\t\t\t\t\tif(row.r >= aii[0].s.r && row.r <= aii[0].e.r)\n\t\t\t\t\t\t\tif(C >= aii[0].s.c && C <= aii[0].e.c) {\n\t\t\t\t\t\t\t\tp.F = encode_range(aii[0]); af = true;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif(!af && val.length > 3) p.f = val[3];\n\t\t\t\t}\n\n\t\t\t\tif(refguess.s.r > row.r) refguess.s.r = row.r;\n\t\t\t\tif(refguess.s.c > C) refguess.s.c = C;\n\t\t\t\tif(refguess.e.r < row.r) refguess.e.r = row.r;\n\t\t\t\tif(refguess.e.c < C) refguess.e.c = C;\n\t\t\t\tif(opts.cellDates && cf && p.t == 'n' && fmt_is_date(table_fmt[cf.numFmtId])) {\n\t\t\t\t\tvar _d = SSF_parse_date_code(p.v); if(_d) { p.t = 'd'; p.v = new Date(_d.y, _d.m-1,_d.d,_d.H,_d.M,_d.S,_d.u); }\n\t\t\t\t}\n\t\t\t\tif(cm) {\n\t\t\t\t\tif(cm.type == 'XLDAPR') p.D = true;\n\t\t\t\t\tcm = void 0;\n\t\t\t\t}\n\t\t\t\tif(vm) vm = void 0;\n\t\t\t\tbreak;\n\n\t\t\tcase 0x0001: /* 'BrtCellBlank' */\n\t\t\tcase 0x000C: /* 'BrtShortBlank' */\n\t\t\t\tif(!opts.sheetStubs || pass) break;\n\t\t\t\tp = ({t:'z',v:void 0}/*:any*/);\n\t\t\t\tC = val[0].c == -1 ? C + 1 : val[0].c;\n\t\t\t\tif(opts.dense) { if(!s[\"!data\"][R]) s[\"!data\"][R] = []; s[\"!data\"][R][C] = p; }\n\t\t\t\telse s[encode_col(C) + rr] = p;\n\t\t\t\tif(refguess.s.r > row.r) refguess.s.r = row.r;\n\t\t\t\tif(refguess.s.c > C) refguess.s.c = C;\n\t\t\t\tif(refguess.e.r < row.r) refguess.e.r = row.r;\n\t\t\t\tif(refguess.e.c < C) refguess.e.c = C;\n\t\t\t\tif(cm) {\n\t\t\t\t\tif(cm.type == 'XLDAPR') p.D = true;\n\t\t\t\t\tcm = void 0;\n\t\t\t\t}\n\t\t\t\tif(vm) vm = void 0;\n\t\t\t\tbreak;\n\n\t\t\tcase 0x00B0: /* 'BrtMergeCell' */\n\t\t\t\tmerges.push(val); break;\n\n\t\t\tcase 0x0031: { /* 'BrtCellMeta' */\n\t\t\t\tcm = ((opts.xlmeta||{}).Cell||[])[val-1];\n\t\t\t} break;\n\n\t\t\tcase 0x01EE: /* 'BrtHLink' */\n\t\t\t\tvar rel = rels['!id'][val.relId];\n\t\t\t\tif(rel) {\n\t\t\t\t\tval.Target = rel.Target;\n\t\t\t\t\tif(val.loc) val.Target += \"#\"+val.loc;\n\t\t\t\t\tval.Rel = rel;\n\t\t\t\t} else if(val.relId == '') {\n\t\t\t\t\tval.Target = \"#\" + val.loc;\n\t\t\t\t}\n\t\t\t\tfor(R=val.rfx.s.r;R<=val.rfx.e.r;++R) for(C=val.rfx.s.c;C<=val.rfx.e.c;++C) {\n\t\t\t\t\tif(opts.dense) {\n\t\t\t\t\t\tif(!s[\"!data\"][R]) s[\"!data\"][R] = [];\n\t\t\t\t\t\tif(!s[\"!data\"][R][C]) s[\"!data\"][R][C] = {t:'z',v:undefined};\n\t\t\t\t\t\ts[\"!data\"][R][C].l = val;\n\t\t\t\t\t} else {\n\t\t\t\t\t\taddr = encode_col(C) + encode_row(R);\n\t\t\t\t\t\tif(!s[addr]) s[addr] = {t:'z',v:undefined};\n\t\t\t\t\t\ts[addr].l = val;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tbreak;\n\n\t\t\tcase 0x01AA: /* 'BrtArrFmla' */\n\t\t\t\tif(!opts.cellFormula) break;\n\t\t\t\tarrayf.push(val);\n\t\t\t\tcell = ((opts.dense ? s[\"!data\"][R][C] : s[encode_col(C) + rr])/*:any*/);\n\t\t\t\tcell.f = stringify_formula(val[1], refguess, {r:row.r, c:C}, supbooks, opts);\n\t\t\t\tcell.F = encode_range(val[0]);\n\t\t\t\tbreak;\n\t\t\tcase 0x01AB: /* 'BrtShrFmla' */\n\t\t\t\tif(!opts.cellFormula) break;\n\t\t\t\tsharedf[encode_cell(val[0].s)] = val[1];\n\t\t\t\tcell = (opts.dense ? s[\"!data\"][R][C] : s[encode_col(C) + rr]);\n\t\t\t\tcell.f = stringify_formula(val[1], refguess, {r:row.r, c:C}, supbooks, opts);\n\t\t\t\tbreak;\n\n\t\t\t/* identical to 'ColInfo' in XLS */\n\t\t\tcase 0x003C: /* 'BrtColInfo' */\n\t\t\t\tif(!opts.cellStyles) break;\n\t\t\t\twhile(val.e >= val.s) {\n\t\t\t\t\tcolinfo[val.e--] = { width: val.w/256, hidden: !!(val.flags & 0x01), level: val.level };\n\t\t\t\t\tif(!seencol) { seencol = true; find_mdw_colw(val.w/256); }\n\t\t\t\t\tprocess_col(colinfo[val.e+1]);\n\t\t\t\t}\n\t\t\t\tbreak;\n\n\t\t\tcase 0x00A1: /* 'BrtBeginAFilter' */\n\t\t\t\ts['!autofilter'] = { ref:encode_range(val) };\n\t\t\t\tbreak;\n\n\t\t\tcase 0x01DC: /* 'BrtMargins' */\n\t\t\t\ts['!margins'] = val;\n\t\t\t\tbreak;\n\n\t\t\tcase 0x0093: /* 'BrtWsProp' */\n\t\t\t\tif(!wb.Sheets[idx]) wb.Sheets[idx] = {};\n\t\t\t\tif(val.name) wb.Sheets[idx].CodeName = val.name;\n\t\t\t\tif(val.above || val.left) s['!outline'] = { above: val.above, left: val.left };\n\t\t\t\tbreak;\n\n\t\t\tcase 0x0089: /* 'BrtBeginWsView' */\n\t\t\t\tif(!wb.Views) wb.Views = [{}];\n\t\t\t\tif(!wb.Views[0]) wb.Views[0] = {};\n\t\t\t\tif(val.RTL) wb.Views[0].RTL = true;\n\t\t\t\tbreak;\n\n\t\t\tcase 0x01E5: /* 'BrtWsFmtInfo' */\n\t\t\t\tbreak;\n\n\t\t\tcase 0x0040: /* 'BrtDVal' */\n\t\t\tcase 0x041D: /* 'BrtDVal14' */\n\t\t\t\tbreak;\n\n\t\t\tcase 0x0097: /* 'BrtPane' */\n\t\t\t\tbreak;\n\t\t\tcase 0x0098: /* 'BrtSel' */\n\t\t\tcase 0x00AF: /* 'BrtAFilterDateGroupItem' */\n\t\t\tcase 0x0284: /* 'BrtActiveX' */\n\t\t\tcase 0x0271: /* 'BrtBigName' */\n\t\t\tcase 0x0232: /* 'BrtBkHim' */\n\t\t\tcase 0x018C: /* 'BrtBrk' */\n\t\t\tcase 0x0458: /* 'BrtCFIcon' */\n\t\t\tcase 0x047A: /* 'BrtCFRuleExt' */\n\t\t\tcase 0x01D7: /* 'BrtCFVO' */\n\t\t\tcase 0x041A: /* 'BrtCFVO14' */\n\t\t\tcase 0x0289: /* 'BrtCellIgnoreEC' */\n\t\t\tcase 0x0451: /* 'BrtCellIgnoreEC14' */\n\t\t\tcase 0x024D: /* 'BrtCellSmartTagProperty' */\n\t\t\tcase 0x025F: /* 'BrtCellWatch' */\n\t\t\tcase 0x0234: /* 'BrtColor' */\n\t\t\tcase 0x041F: /* 'BrtColor14' */\n\t\t\tcase 0x00A8: /* 'BrtColorFilter' */\n\t\t\tcase 0x00AE: /* 'BrtCustomFilter' */\n\t\t\tcase 0x049C: /* 'BrtCustomFilter14' */\n\t\t\tcase 0x01F3: /* 'BrtDRef' */\n\t\t\tcase 0x01FB: /* 'BrtDXF' */\n\t\t\tcase 0x0226: /* 'BrtDrawing' */\n\t\t\tcase 0x00AB: /* 'BrtDynamicFilter' */\n\t\t\tcase 0x00A7: /* 'BrtFilter' */\n\t\t\tcase 0x0499: /* 'BrtFilter14' */\n\t\t\tcase 0x00A9: /* 'BrtIconFilter' */\n\t\t\tcase 0x049D: /* 'BrtIconFilter14' */\n\t\t\tcase 0x0227: /* 'BrtLegacyDrawing' */\n\t\t\tcase 0x0228: /* 'BrtLegacyDrawingHF' */\n\t\t\tcase 0x0295: /* 'BrtListPart' */\n\t\t\tcase 0x027F: /* 'BrtOleObject' */\n\t\t\tcase 0x01DE: /* 'BrtPageSetup' */\n\t\t\tcase 0x0219: /* 'BrtPhoneticInfo' */\n\t\t\tcase 0x01DD: /* 'BrtPrintOptions' */\n\t\t\tcase 0x0218: /* 'BrtRangeProtection' */\n\t\t\tcase 0x044F: /* 'BrtRangeProtection14' */\n\t\t\tcase 0x02A8: /* 'BrtRangeProtectionIso' */\n\t\t\tcase 0x0450: /* 'BrtRangeProtectionIso14' */\n\t\t\tcase 0x0400: /* 'BrtRwDescent' */\n\t\t\tcase 0x0297: /* 'BrtSheetCalcProp' */\n\t\t\tcase 0x0217: /* 'BrtSheetProtection' */\n\t\t\tcase 0x02A6: /* 'BrtSheetProtectionIso' */\n\t\t\tcase 0x01F8: /* 'BrtSlc' */\n\t\t\tcase 0x0413: /* 'BrtSparkline' */\n\t\t\tcase 0x01AC: /* 'BrtTable' */\n\t\t\tcase 0x00AA: /* 'BrtTop10Filter' */\n\t\t\tcase 0x0C00: /* 'BrtUid' */\n\t\t\tcase 0x0032: /* 'BrtValueMeta' */\n\t\t\tcase 0x0816: /* 'BrtWebExtension' */\n\t\t\tcase 0x0415: /* 'BrtWsFmtInfoEx14' */\n\t\t\t\tbreak;\n\n\t\t\tcase 0x0023: /* 'BrtFRTBegin' */\n\t\t\t\tpass = true; break;\n\t\t\tcase 0x0024: /* 'BrtFRTEnd' */\n\t\t\t\tpass = false; break;\n\t\t\tcase 0x0025: /* 'BrtACBegin' */\n\t\t\t\tstate.push(RT); pass = true; break;\n\t\t\tcase 0x0026: /* 'BrtACEnd' */\n\t\t\t\tstate.pop(); pass = false; break;\n\n\t\t\tdefault:\n\t\t\t\tif(RR.T){/* empty */}\n\t\t\t\telse if(!pass || opts.WTF) throw new Error(\"Unexpected record 0x\" + RT.toString(16));\n\t\t}\n\t}, opts);\n\n\tdelete opts.supbooks;\n\tdelete opts['!row'];\n\n\tif(!s[\"!ref\"] && (refguess.s.r < 2000000 || ref && (ref.e.r > 0 || ref.e.c > 0 || ref.s.r > 0 || ref.s.c > 0))) s[\"!ref\"] = encode_range(ref || refguess);\n\tif(opts.sheetRows && s[\"!ref\"]) {\n\t\tvar tmpref = safe_decode_range(s[\"!ref\"]);\n\t\tif(opts.sheetRows <= +tmpref.e.r) {\n\t\t\ttmpref.e.r = opts.sheetRows - 1;\n\t\t\tif(tmpref.e.r > refguess.e.r) tmpref.e.r = refguess.e.r;\n\t\t\tif(tmpref.e.r < tmpref.s.r) tmpref.s.r = tmpref.e.r;\n\t\t\tif(tmpref.e.c > refguess.e.c) tmpref.e.c = refguess.e.c;\n\t\t\tif(tmpref.e.c < tmpref.s.c) tmpref.s.c = tmpref.e.c;\n\t\t\ts[\"!fullref\"] = s[\"!ref\"];\n\t\t\ts[\"!ref\"] = encode_range(tmpref);\n\t\t}\n\t}\n\tif(merges.length > 0) s[\"!merges\"] = merges;\n\tif(colinfo.length > 0) s[\"!cols\"] = colinfo;\n\tif(rowinfo.length > 0) s[\"!rows\"] = rowinfo;\n\treturn s;\n}\n\n/* TODO: something useful -- this is a stub */\nfunction write_ws_bin_cell(ba/*:BufArray*/, cell/*:Cell*/, R/*:number*/, C/*:number*/, opts, ws/*:Worksheet*/, last_seen/*:boolean*/)/*:boolean*/ {\n\tvar o/*:any*/ = ({r:R, c:C}/*:any*/);\n\tif(cell.c) ws['!comments'].push([encode_cell(o), cell.c]);\n\tif(cell.v === undefined) return false;\n\tvar vv = \"\";\n\tswitch(cell.t) {\n\t\tcase 'b': vv = cell.v ? \"1\" : \"0\"; break;\n\t\tcase 'd': // no BrtCellDate :(\n\t\t\tcell = dup(cell);\n\t\t\tcell.z = cell.z || table_fmt[14];\n\t\t\tcell.v = datenum(parseDate(cell.v)); cell.t = 'n';\n\t\t\tbreak;\n\t\t/* falls through */\n\t\tcase 'n': case 'e': vv = ''+cell.v; break;\n\t\tdefault: vv = cell.v; break;\n\t}\n\t/* TODO: cell style */\n\to.s = get_cell_style(opts.cellXfs, cell, opts);\n\tif(cell.l) ws['!links'].push([encode_cell(o), cell.l]);\n\tswitch(cell.t) {\n\t\tcase 's': case 'str':\n\t\t\tif(opts.bookSST) {\n\t\t\t\tvv = get_sst_id(opts.Strings, (cell.v == null ? \"\" : String(cell.v)/*:any*/), opts.revStrings);\n\t\t\t\to.t = \"s\"; o.v = vv;\n\t\t\t\tif(last_seen) write_record(ba, 0x0012 /* BrtShortIsst */, write_BrtShortIsst(cell, o));\n\t\t\t\telse write_record(ba, 0x0007 /* BrtCellIsst */, write_BrtCellIsst(cell, o));\n\t\t\t} else {\n\t\t\t\to.t = \"str\";\n\t\t\t\tif(last_seen) write_record(ba, 0x0011 /* BrtShortSt */, write_BrtShortSt(cell, o));\n\t\t\t\telse write_record(ba, 0x0006 /* BrtCellSt */, write_BrtCellSt(cell, o));\n\t\t\t}\n\t\t\treturn true;\n\t\tcase 'n':\n\t\t\t/* TODO: determine threshold for Real vs RK */\n\t\t\tif(cell.v == (cell.v | 0) && cell.v > -1000 && cell.v < 1000) {\n\t\t\t\tif(last_seen) write_record(ba, 0x000D /* BrtShortRk */, write_BrtShortRk(cell, o));\n\t\t\t\telse write_record(ba, 0x0002 /* BrtCellRk */, write_BrtCellRk(cell, o));\n\t\t\t} else {\n\t\t\t\tif(last_seen) write_record(ba, 0x0010 /* BrtShortReal */, write_BrtShortReal(cell, o));\n\t\t\t\telse write_record(ba, 0x0005 /* BrtCellReal */, write_BrtCellReal(cell, o));\n\t\t\t} return true;\n\t\tcase 'b':\n\t\t\to.t = \"b\";\n\t\t\tif(last_seen) write_record(ba, 0x000F /* BrtShortBool */, write_BrtShortBool(cell, o));\n\t\t\telse write_record(ba, 0x0004 /* BrtCellBool */, write_BrtCellBool(cell, o));\n\t\t\treturn true;\n\t\tcase 'e':\n\t\t\to.t = \"e\";\n\t\t\tif(last_seen) write_record(ba, 0x000E /* BrtShortError */, write_BrtShortError(cell, o));\n\t\t\telse write_record(ba, 0x0003 /* BrtCellError */, write_BrtCellError(cell, o));\n\t\t\treturn true;\n\t}\n\tif(last_seen) write_record(ba, 0x000C /* BrtShortBlank */, write_BrtShortBlank(cell, o));\n\telse write_record(ba, 0x0001 /* BrtCellBlank */, write_BrtCellBlank(cell, o));\n\treturn true;\n}\n\nfunction write_CELLTABLE(ba, ws/*:Worksheet*/, idx/*:number*/, opts/*::, wb:Workbook*/) {\n\tvar range = safe_decode_range(ws['!ref'] || \"A1\"), ref, rr = \"\", cols/*:Array*/ = [];\n\twrite_record(ba, 0x0091 /* BrtBeginSheetData */);\n\tvar dense = ws[\"!data\"] != null;\n\tvar cap = range.e.r;\n\tif(ws['!rows']) cap = Math.max(range.e.r, ws['!rows'].length - 1);\n\tfor(var R = range.s.r; R <= cap; ++R) {\n\t\trr = encode_row(R);\n\t\t/* [ACCELLTABLE] */\n\t\t/* BrtRowHdr */\n\t\twrite_row_header(ba, ws, range, R);\n\t\tvar last_seen = false;\n\t\tif(R <= range.e.r) for(var C = range.s.c; C <= range.e.c; ++C) {\n\t\t\t/* *16384CELL */\n\t\t\tif(R === range.s.r) cols[C] = encode_col(C);\n\t\t\tref = cols[C] + rr;\n\t\t\tvar cell = dense ? (ws[\"!data\"][R]||[])[C] : ws[ref];\n\t\t\tif(!cell) { last_seen = false; continue; }\n\t\t\t/* write cell */\n\t\t\tlast_seen = write_ws_bin_cell(ba, cell, R, C, opts, ws, last_seen);\n\t\t}\n\t}\n\twrite_record(ba, 0x0092 /* BrtEndSheetData */);\n}\n\nfunction write_MERGECELLS(ba, ws/*:Worksheet*/) {\n\tif(!ws || !ws['!merges']) return;\n\twrite_record(ba, 0x00B1 /* BrtBeginMergeCells */, write_BrtBeginMergeCells(ws['!merges'].length));\n\tws['!merges'].forEach(function(m) { write_record(ba, 0x00B0 /* BrtMergeCell */, write_BrtMergeCell(m)); });\n\twrite_record(ba, 0x00B2 /* BrtEndMergeCells */);\n}\n\nfunction write_COLINFOS(ba, ws/*:Worksheet*//*::, idx:number, opts, wb:Workbook*/) {\n\tif(!ws || !ws['!cols']) return;\n\twrite_record(ba, 0x0186 /* BrtBeginColInfos */);\n\tws['!cols'].forEach(function(m, i) { if(m) write_record(ba, 0x003C /* 'BrtColInfo' */, write_BrtColInfo(i, m)); });\n\twrite_record(ba, 0x0187 /* BrtEndColInfos */);\n}\n\nfunction write_IGNOREECS(ba, ws/*:Worksheet*/) {\n\tif(!ws || !ws['!ref']) return;\n\twrite_record(ba, 0x0288 /* BrtBeginCellIgnoreECs */);\n\twrite_record(ba, 0x0289 /* BrtCellIgnoreEC */, write_BrtCellIgnoreEC(safe_decode_range(ws['!ref'])));\n\twrite_record(ba, 0x028A /* BrtEndCellIgnoreECs */);\n}\n\nfunction write_HLINKS(ba, ws/*:Worksheet*/, rels) {\n\t/* *BrtHLink */\n\tws['!links'].forEach(function(l) {\n\t\tif(!l[1].Target) return;\n\t\tvar rId = add_rels(rels, -1, l[1].Target.replace(/#.*$/, \"\"), RELS.HLINK);\n\t\twrite_record(ba, 0x01EE /* BrtHLink */, write_BrtHLink(l, rId));\n\t});\n\tdelete ws['!links'];\n}\nfunction write_LEGACYDRAWING(ba, ws/*:Worksheet*/, idx/*:number*/, rels) {\n\t/* [BrtLegacyDrawing] */\n\tif(ws['!comments'].length > 0) {\n\t\tvar rId = add_rels(rels, -1, \"../drawings/vmlDrawing\" + (idx+1) + \".vml\", RELS.VML);\n\t\twrite_record(ba, 0x0227 /* BrtLegacyDrawing */, write_RelID(\"rId\" + rId));\n\t\tws['!legacy'] = rId;\n\t}\n}\n\nfunction write_AUTOFILTER(ba, ws, wb, idx) {\n\tif(!ws['!autofilter']) return;\n\tvar data = ws['!autofilter'];\n\tvar ref = typeof data.ref === \"string\" ? data.ref : encode_range(data.ref);\n\n\t/* Update FilterDatabase defined name for the worksheet */\n\tif(!wb.Workbook) wb.Workbook = ({Sheets:[]}/*:any*/);\n\tif(!wb.Workbook.Names) wb.Workbook.Names = [];\n\tvar names/*: Array */ = wb.Workbook.Names;\n\tvar range = decode_range(ref);\n\tif(range.s.r == range.e.r) { range.e.r = decode_range(ws[\"!ref\"]).e.r; ref = encode_range(range); }\n\tfor(var i = 0; i < names.length; ++i) {\n\t\tvar name = names[i];\n\t\tif(name.Name != '_xlnm._FilterDatabase') continue;\n\t\tif(name.Sheet != idx) continue;\n\t\tname.Ref = formula_quote_sheet_name(wb.SheetNames[idx]) + \"!\" + fix_range(ref); break;\n\t}\n\tif(i == names.length) names.push({ Name: '_xlnm._FilterDatabase', Sheet: idx, Ref: formula_quote_sheet_name(wb.SheetNames[idx]) + \"!\" + fix_range(ref) });\n\n\twrite_record(ba, 0x00A1 /* BrtBeginAFilter */, write_UncheckedRfX(safe_decode_range(ref)));\n\t/* *FILTERCOLUMN */\n\t/* [SORTSTATE] */\n\t/* BrtEndAFilter */\n\twrite_record(ba, 0x00A2 /* BrtEndAFilter */);\n}\n\nfunction write_WSVIEWS2(ba, ws, Workbook) {\n\twrite_record(ba, 0x0085 /* BrtBeginWsViews */);\n\t{ /* 1*WSVIEW2 */\n\t\t/* [ACUID] */\n\t\twrite_record(ba, 0x0089 /* BrtBeginWsView */, write_BrtBeginWsView(ws, Workbook));\n\t\t/* [BrtPane] */\n\t\t/* *4BrtSel */\n\t\t/* *4SXSELECT */\n\t\t/* *FRT */\n\t\twrite_record(ba, 0x008A /* BrtEndWsView */);\n\t}\n\t/* *FRT */\n\twrite_record(ba, 0x0086 /* BrtEndWsViews */);\n}\n\nfunction write_WSFMTINFO(/*::ba, ws*/) {\n\t/* [ACWSFMTINFO] */\n\t// write_record(ba, 0x01E5 /* BrtWsFmtInfo */, write_BrtWsFmtInfo(ws));\n}\n\nfunction write_SHEETPROTECT(ba, ws) {\n\tif(!ws['!protect']) return;\n\t/* [BrtSheetProtectionIso] */\n\twrite_record(ba, 0x0217 /* BrtSheetProtection */, write_BrtSheetProtection(ws['!protect']));\n}\n\nfunction write_ws_bin(idx/*:number*/, opts, wb/*:Workbook*/, rels) {\n\tvar ba = buf_array();\n\tvar s = wb.SheetNames[idx], ws = wb.Sheets[s] || {};\n\tvar c/*:string*/ = s; try { if(wb && wb.Workbook) c = wb.Workbook.Sheets[idx].CodeName || c; } catch(e) {}\n\tvar r = safe_decode_range(ws['!ref'] || \"A1\");\n\tif(r.e.c > 0x3FFF || r.e.r > 0xFFFFF) {\n\t\tif(opts.WTF) throw new Error(\"Range \" + (ws['!ref'] || \"A1\") + \" exceeds format limit A1:XFD1048576\");\n\t\tr.e.c = Math.min(r.e.c, 0x3FFF);\n\t\tr.e.r = Math.min(r.e.c, 0xFFFFF);\n\t}\n\tws['!links'] = [];\n\t/* passed back to write_zip and removed there */\n\tws['!comments'] = [];\n\twrite_record(ba, 0x0081 /* BrtBeginSheet */);\n\tif(wb.vbaraw || ws['!outline']) write_record(ba, 0x0093 /* BrtWsProp */, write_BrtWsProp(c, ws['!outline']));\n\twrite_record(ba, 0x0094 /* BrtWsDim */, write_BrtWsDim(r));\n\twrite_WSVIEWS2(ba, ws, wb.Workbook);\n\twrite_WSFMTINFO(ba, ws);\n\twrite_COLINFOS(ba, ws, idx, opts, wb);\n\twrite_CELLTABLE(ba, ws, idx, opts, wb);\n\t/* [BrtSheetCalcProp] */\n\twrite_SHEETPROTECT(ba, ws);\n\t/* *([BrtRangeProtectionIso] BrtRangeProtection) */\n\t/* [SCENMAN] */\n\twrite_AUTOFILTER(ba, ws, wb, idx);\n\t/* [SORTSTATE] */\n\t/* [DCON] */\n\t/* [USERSHVIEWS] */\n\twrite_MERGECELLS(ba, ws);\n\t/* [BrtPhoneticInfo] */\n\t/* *CONDITIONALFORMATTING */\n\t/* [DVALS] */\n\twrite_HLINKS(ba, ws, rels);\n\t/* [BrtPrintOptions] */\n\tif(ws['!margins']) write_record(ba, 0x01DC /* BrtMargins */, write_BrtMargins(ws['!margins']));\n\t/* [BrtPageSetup] */\n\t/* [HEADERFOOTER] */\n\t/* [RWBRK] */\n\t/* [COLBRK] */\n\t/* *BrtBigName */\n\t/* [CELLWATCHES] */\n\tif(!opts || opts.ignoreEC || (opts.ignoreEC == (void 0))) write_IGNOREECS(ba, ws);\n\t/* [SMARTTAGS] */\n\t/* [BrtDrawing] */\n\twrite_LEGACYDRAWING(ba, ws, idx, rels);\n\t/* [BrtLegacyDrawingHF] */\n\t/* [BrtBkHim] */\n\t/* [OLEOBJECTS] */\n\t/* [ACTIVEXCONTROLS] */\n\t/* [WEBPUBITEMS] */\n\t/* [LISTPARTS] */\n\t/* FRTWORKSHEET */\n\twrite_record(ba, 0x0082 /* BrtEndSheet */);\n\treturn ba.end();\n}\nfunction parse_Cache(data/*:string*/)/*:[Array, string, ?string]*/ {\n\tvar col/*:Array*/ = [];\n\tvar num = data.match(/^/);\n\tvar f;\n\n\t/* 21.2.2.150 pt CT_NumVal */\n\t(data.match(/(.*?)<\\/c:pt>/mg)||[]).forEach(function(pt) {\n\t\tvar q = pt.match(/(.*)<\\/c:v><\\/c:pt>/);\n\t\tif(!q) return;\n\t\tcol[+q[1]] = num ? +q[2] : q[2];\n\t});\n\n\t/* 21.2.2.71 formatCode CT_Xstring */\n\tvar nf = unescapexml((data.match(/([\\s\\S]*?)<\\/c:formatCode>/) || [\"\",\"General\"])[1]);\n\n\t(data.match(/(.*?)<\\/c:f>/mg)||[]).forEach(function(F) { f = F.replace(/<.*?>/g,\"\"); });\n\n\treturn [col, nf, f];\n}\n\n/* 21.2 DrawingML - Charts */\nfunction parse_chart(data/*:?string*/, name/*:string*/, opts, rels, wb, csheet) {\n\tvar cs/*:Worksheet*/ = ((csheet || {\"!type\":\"chart\"})/*:any*/);\n\tif(!data) return csheet;\n\t/* 21.2.2.27 chart CT_Chart */\n\n\tvar C = 0, R = 0, col = \"A\";\n\tvar refguess = {s: {r:2000000, c:2000000}, e: {r:0, c:0} };\n\n\t/* 21.2.2.120 numCache CT_NumData */\n\t(data.match(/[\\s\\S]*?<\\/c:numCache>/gm)||[]).forEach(function(nc) {\n\t\tvar cache = parse_Cache(nc);\n\t\trefguess.s.r = refguess.s.c = 0;\n\t\trefguess.e.c = C;\n\t\tcol = encode_col(C);\n\t\tcache[0].forEach(function(n,i) {\n\t\t\tif(cs[\"!data\"]) {\n\t\t\t\tif(!cs[\"!data\"][i]) cs[\"!data\"][i] = [];\n\t\t\t\tcs[\"!data\"][i][C] = {t:'n', v:n, z:cache[1] };\n\t\t\t} else cs[col + encode_row(i)] = {t:'n', v:n, z:cache[1] };\n\t\t\tR = i;\n\t\t});\n\t\tif(refguess.e.r < R) refguess.e.r = R;\n\t\t++C;\n\t});\n\tif(C > 0) cs[\"!ref\"] = encode_range(refguess);\n\treturn cs;\n}\n/* 18.3 Worksheets also covers Chartsheets */\nfunction parse_cs_xml(data/*:?string*/, opts, idx/*:number*/, rels, wb/*::, themes, styles*/)/*:Worksheet*/ {\n\tif(!data) return data;\n\t/* 18.3.1.12 chartsheet CT_ChartSheet */\n\tif(!rels) rels = {'!id':{}};\n\tvar s = ({'!type':\"chart\", '!drawel':null, '!rel':\"\"}/*:any*/);\n\tvar m;\n\n\t/* 18.3.1.83 sheetPr CT_ChartsheetPr */\n\tvar sheetPr = data.match(sheetprregex);\n\tif(sheetPr) parse_ws_xml_sheetpr(sheetPr[0], s, wb, idx);\n\n\t/* 18.3.1.36 drawing CT_Drawing */\n\tif((m = data.match(/drawing r:id=\"(.*?)\"/))) s['!rel'] = m[1];\n\n\tif(rels['!id'][s['!rel']]) s['!drawel'] = rels['!id'][s['!rel']];\n\treturn s;\n}\n//function write_cs_xml(idx/*:number*/, opts, wb/*:Workbook*/, rels)/*:string*/ {\n//\tvar o = [XML_HEADER, writextag('chartsheet', null, {\n//\t\t'xmlns': XMLNS_main[0],\n//\t\t'xmlns:r': XMLNS.r\n//\t})];\n//\to[o.length] = writextag(\"drawing\", null, {\"r:id\": \"rId1\"});\n//\tadd_rels(rels, -1, \"../drawings/drawing\" + (idx+1) + \".xml\", RELS.DRAW);\n//\tif(o.length>2) { o[o.length] = (''); o[1]=o[1].replace(\"/>\",\">\"); }\n//\treturn o.join(\"\");\n//}\n\n/* [MS-XLSB] 2.4.331 BrtCsProp */\nfunction parse_BrtCsProp(data, length/*:number*/) {\n\tdata.l += 10;\n\tvar name = parse_XLWideString(data, length - 10);\n\treturn { name: name };\n}\n\n/* [MS-XLSB] 2.1.7.7 Chart Sheet */\nfunction parse_cs_bin(data, opts, idx/*:number*/, rels, wb/*::, themes, styles*/)/*:Worksheet*/ {\n\tif(!data) return data;\n\tif(!rels) rels = {'!id':{}};\n\tvar s = {'!type':\"chart\", '!drawel':null, '!rel':\"\"};\n\tvar state/*:Array*/ = [];\n\tvar pass = false;\n\trecordhopper(data, function cs_parse(val, R, RT) {\n\t\tswitch(RT) {\n\n\t\t\tcase 0x0226: /* 'BrtDrawing' */\n\t\t\t\ts['!rel'] = val; break;\n\n\t\t\tcase 0x028B: /* 'BrtCsProp' */\n\t\t\t\tif(!wb.Sheets[idx]) wb.Sheets[idx] = {};\n\t\t\t\tif(val.name) wb.Sheets[idx].CodeName = val.name;\n\t\t\t\tbreak;\n\n\t\t\tcase 0x0232: /* 'BrtBkHim' */\n\t\t\tcase 0x028C: /* 'BrtCsPageSetup' */\n\t\t\tcase 0x029D: /* 'BrtCsProtection' */\n\t\t\tcase 0x02A7: /* 'BrtCsProtectionIso' */\n\t\t\tcase 0x0227: /* 'BrtLegacyDrawing' */\n\t\t\tcase 0x0228: /* 'BrtLegacyDrawingHF' */\n\t\t\tcase 0x01DC: /* 'BrtMargins' */\n\t\t\tcase 0x0C00: /* 'BrtUid' */\n\t\t\t\tbreak;\n\n\t\t\tcase 0x0023: /* 'BrtFRTBegin' */\n\t\t\t\tpass = true; break;\n\t\t\tcase 0x0024: /* 'BrtFRTEnd' */\n\t\t\t\tpass = false; break;\n\t\t\tcase 0x0025: /* 'BrtACBegin' */\n\t\t\t\tstate.push(RT); break;\n\t\t\tcase 0x0026: /* 'BrtACEnd' */\n\t\t\t\tstate.pop(); break;\n\n\t\t\tdefault:\n\t\t\t\tif(R.T > 0) state.push(RT);\n\t\t\t\telse if(R.T < 0) state.pop();\n\t\t\t\telse if(!pass || opts.WTF) throw new Error(\"Unexpected record 0x\" + RT.toString(16));\n\t\t}\n\t}, opts);\n\n\tif(rels['!id'][s['!rel']]) s['!drawel'] = rels['!id'][s['!rel']];\n\treturn s;\n}\n//function write_cs_bin(/*::idx:number, opts, wb:Workbook, rels*/) {\n//\tvar ba = buf_array();\n//\twrite_record(ba, 0x0081 /* BrtBeginSheet */);\n//\t/* [BrtCsProp] */\n//\t/* CSVIEWS */\n//\t/* [[BrtCsProtectionIso] BrtCsProtection] */\n//\t/* [USERCSVIEWS] */\n//\t/* [BrtMargins] */\n//\t/* [BrtCsPageSetup] */\n//\t/* [HEADERFOOTER] */\n//\t/* BrtDrawing */\n//\t/* [BrtLegacyDrawing] */\n//\t/* [BrtLegacyDrawingHF] */\n//\t/* [BrtBkHim] */\n//\t/* [WEBPUBITEMS] */\n//\t/* FRTCHARTSHEET */\n//\twrite_record(ba, 0x0082 /* BrtEndSheet */);\n//\treturn ba.end();\n//}\n/* 18.2.28 (CT_WorkbookProtection) Defaults */\nvar WBPropsDef = [\n\t['allowRefreshQuery', false, \"bool\"],\n\t['autoCompressPictures', true, \"bool\"],\n\t['backupFile', false, \"bool\"],\n\t['checkCompatibility', false, \"bool\"],\n\t['CodeName', ''],\n\t['date1904', false, \"bool\"],\n\t['defaultThemeVersion', 0, \"int\"],\n\t['filterPrivacy', false, \"bool\"],\n\t['hidePivotFieldList', false, \"bool\"],\n\t['promptedSolutions', false, \"bool\"],\n\t['publishItems', false, \"bool\"],\n\t['refreshAllConnections', false, \"bool\"],\n\t['saveExternalLinkValues', true, \"bool\"],\n\t['showBorderUnselectedTables', true, \"bool\"],\n\t['showInkAnnotation', true, \"bool\"],\n\t['showObjects', 'all'],\n\t['showPivotChartFilter', false, \"bool\"],\n\t['updateLinks', 'userSet']\n];\n\n/* 18.2.30 (CT_BookView) Defaults */\nvar WBViewDef = [\n\t['activeTab', 0, \"int\"],\n\t['autoFilterDateGrouping', true, \"bool\"],\n\t['firstSheet', 0, \"int\"],\n\t['minimized', false, \"bool\"],\n\t['showHorizontalScroll', true, \"bool\"],\n\t['showSheetTabs', true, \"bool\"],\n\t['showVerticalScroll', true, \"bool\"],\n\t['tabRatio', 600, \"int\"],\n\t['visibility', 'visible']\n\t//window{Height,Width}, {x,y}Window\n];\n\n/* 18.2.19 (CT_Sheet) Defaults */\nvar SheetDef = [\n\t//['state', 'visible']\n];\n\n/* 18.2.2 (CT_CalcPr) Defaults */\nvar CalcPrDef = [\n\t['calcCompleted', 'true'],\n\t['calcMode', 'auto'],\n\t['calcOnSave', 'true'],\n\t['concurrentCalc', 'true'],\n\t['fullCalcOnLoad', 'false'],\n\t['fullPrecision', 'true'],\n\t['iterate', 'false'],\n\t['iterateCount', '100'],\n\t['iterateDelta', '0.001'],\n\t['refMode', 'A1']\n];\n\n/* 18.2.3 (CT_CustomWorkbookView) Defaults */\n/*var CustomWBViewDef = [\n\t['autoUpdate', 'false'],\n\t['changesSavedWin', 'false'],\n\t['includeHiddenRowCol', 'true'],\n\t['includePrintSettings', 'true'],\n\t['maximized', 'false'],\n\t['minimized', 'false'],\n\t['onlySync', 'false'],\n\t['personalView', 'false'],\n\t['showComments', 'commIndicator'],\n\t['showFormulaBar', 'true'],\n\t['showHorizontalScroll', 'true'],\n\t['showObjects', 'all'],\n\t['showSheetTabs', 'true'],\n\t['showStatusbar', 'true'],\n\t['showVerticalScroll', 'true'],\n\t['tabRatio', '600'],\n\t['xWindow', '0'],\n\t['yWindow', '0']\n];*/\n\nfunction push_defaults_array(target, defaults) {\n\tfor(var j = 0; j != target.length; ++j) { var w = target[j];\n\t\tfor(var i=0; i != defaults.length; ++i) { var z = defaults[i];\n\t\t\tif(w[z[0]] == null) w[z[0]] = z[1];\n\t\t\telse switch(z[2]) {\n\t\t\tcase \"bool\": if(typeof w[z[0]] == \"string\") w[z[0]] = parsexmlbool(w[z[0]]); break;\n\t\t\tcase \"int\": if(typeof w[z[0]] == \"string\") w[z[0]] = parseInt(w[z[0]], 10); break;\n\t\t\t}\n\t\t}\n\t}\n}\nfunction push_defaults(target, defaults) {\n\tfor(var i = 0; i != defaults.length; ++i) { var z = defaults[i];\n\t\tif(target[z[0]] == null) target[z[0]] = z[1];\n\t\telse switch(z[2]) {\n\t\t\tcase \"bool\": if(typeof target[z[0]] == \"string\") target[z[0]] = parsexmlbool(target[z[0]]); break;\n\t\t\tcase \"int\": if(typeof target[z[0]] == \"string\") target[z[0]] = parseInt(target[z[0]], 10); break;\n\t\t}\n\t}\n}\n\nfunction parse_wb_defaults(wb) {\n\tpush_defaults(wb.WBProps, WBPropsDef);\n\tpush_defaults(wb.CalcPr, CalcPrDef);\n\n\tpush_defaults_array(wb.WBView, WBViewDef);\n\tpush_defaults_array(wb.Sheets, SheetDef);\n\n\t_ssfopts.date1904 = parsexmlbool(wb.WBProps.date1904);\n}\n\nfunction safe1904(wb/*:Workbook*/)/*:string*/ {\n\t/* TODO: store date1904 somewhere else */\n\tif(!wb.Workbook) return \"false\";\n\tif(!wb.Workbook.WBProps) return \"false\";\n\treturn parsexmlbool(wb.Workbook.WBProps.date1904) ? \"true\" : \"false\";\n}\n\nvar badchars = /*#__PURE__*/\":][*?\\/\\\\\".split(\"\");\nfunction check_ws_name(n/*:string*/, safe/*:?boolean*/)/*:boolean*/ {\n\ttry {\n\t\tif(n == \"\") throw new Error(\"Sheet name cannot be blank\");\n\t\tif(n.length > 31) throw new Error(\"Sheet name cannot exceed 31 chars\");\n\t\tif(n.charCodeAt(0) == 0x27 || n.charCodeAt(n.length - 1) == 0x27) throw new Error(\"Sheet name cannot start or end with apostrophe (')\");\n\t\tif(n.toLowerCase() == \"history\") throw new Error(\"Sheet name cannot be 'History'\");\n\t\tbadchars.forEach(function(c) {\n\t\t\tif(n.indexOf(c) == -1) return;\n\t\t\tthrow new Error(\"Sheet name cannot contain : \\\\ / ? * [ ]\");\n\t\t});\n\t} catch(e) { if(safe) return false; throw e; }\n\treturn true;\n}\nfunction check_wb_names(N, S, codes) {\n\tN.forEach(function(n,i) {\n\t\tcheck_ws_name(n);\n\t\tfor(var j = 0; j < i; ++j) if(n == N[j]) throw new Error(\"Duplicate Sheet Name: \" + n);\n\t\tif(codes) {\n\t\t\tvar cn = (S && S[i] && S[i].CodeName) || n;\n\t\t\tif(cn.charCodeAt(0) == 95 && cn.length > 22) throw new Error(\"Bad Code Name: Worksheet\" + cn);\n\t\t}\n\t});\n}\nfunction check_wb(wb) {\n\tif(!wb || !wb.SheetNames || !wb.Sheets) throw new Error(\"Invalid Workbook\");\n\tif(!wb.SheetNames.length) throw new Error(\"Workbook is empty\");\n\tvar Sheets = (wb.Workbook && wb.Workbook.Sheets) || [];\n\tcheck_wb_names(wb.SheetNames, Sheets, !!wb.vbaraw);\n\tfor(var i = 0; i < wb.SheetNames.length; ++i) check_ws(wb.Sheets[wb.SheetNames[i]], wb.SheetNames[i], i);\n\twb.SheetNames.forEach(function(n, i) {\n\t\tvar ws = wb.Sheets[n];\n\t\tif(!ws || !ws[\"!autofilter\"]) return;\n\t\tvar DN;\n\t\tif(!wb.Workbook) wb.Workbook = {};\n\t\tif(!wb.Workbook.Names) wb.Workbook.Names = [];\n\t\twb.Workbook.Names.forEach(function(dn) { if(dn.Name == \"_xlnm._FilterDatabase\" && dn.Sheet == i) DN = dn; });\n\t\tvar nn = formula_quote_sheet_name(n) + \"!\" + fix_range(ws[\"!autofilter\"].ref);\n\t\tif(DN) DN.Ref = nn;\n\t\telse wb.Workbook.Names.push({Name: \"_xlnm._FilterDatabase\", Sheet: i, Ref: nn});\n\t});\n\t/* TODO: validate workbook */\n}\n/* 18.2 Workbook */\nvar wbnsregex = /<\\w+:workbook/;\nfunction parse_wb_xml(data, opts)/*:WorkbookFile*/ {\n\tif(!data) throw new Error(\"Could not find file\");\n\tvar wb = /*::(*/{ AppVersion:{}, WBProps:{}, WBView:[], Sheets:[], CalcPr:{}, Names:[], xmlns: \"\" }/*::)*/;\n\tvar pass = false, xmlns = \"xmlns\";\n\tvar dname = {}, dnstart = 0;\n\tdata.replace(tagregex, function xml_wb(x, idx) {\n\t\tvar y/*:any*/ = parsexmltag(x);\n\t\tswitch(strip_ns(y[0])) {\n\t\t\tcase '': break;\n\n\t\t\t/* 18.2.13 fileVersion CT_FileVersion ? */\n\t\t\tcase '': case '': break;\n\n\t\t\t/* 18.2.12 fileSharing CT_FileSharing ? */\n\t\t\tcase '': break;\n\n\t\t\t/* 18.2.28 workbookPr CT_WorkbookPr ? */\n\t\t\tcase '':\n\t\t\t\tWBPropsDef.forEach(function(w) {\n\t\t\t\t\tif(y[w[0]] == null) return;\n\t\t\t\t\tswitch(w[2]) {\n\t\t\t\t\t\tcase \"bool\": wb.WBProps[w[0]] = parsexmlbool(y[w[0]]); break;\n\t\t\t\t\t\tcase \"int\": wb.WBProps[w[0]] = parseInt(y[w[0]], 10); break;\n\t\t\t\t\t\tdefault: wb.WBProps[w[0]] = y[w[0]];\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\tif(y.codeName) wb.WBProps.CodeName = utf8read(y.codeName);\n\t\t\t\tbreak;\n\t\t\tcase '': break;\n\n\t\t\t/* 18.2.29 workbookProtection CT_WorkbookProtection ? */\n\t\t\tcase '': break;\n\n\t\t\t/* 18.2.1 bookViews CT_BookViews ? */\n\t\t\tcase '': case '': break;\n\t\t\t/* 18.2.30 workbookView CT_BookView + */\n\t\t\tcase '': delete y[0]; wb.WBView.push(y); break;\n\t\t\tcase '': break;\n\n\t\t\t/* 18.2.20 sheets CT_Sheets 1 */\n\t\t\tcase '': case '': break; // aggregate sheet\n\t\t\t/* 18.2.19 sheet CT_Sheet + */\n\t\t\tcase '': break;\n\n\t\t\t/* 18.2.15 functionGroups CT_FunctionGroups ? */\n\t\t\tcase '': break;\n\t\t\t/* 18.2.14 functionGroup CT_FunctionGroup + */\n\t\t\tcase '': case '': break;\n\t\t\t/* 18.2.8 externalReference CT_ExternalReference + */\n\t\t\tcase '': break;\n\t\t\tcase '': case '': pass=false; break;\n\t\t\t/* 18.2.5 definedName CT_DefinedName + */\n\t\t\tcase '': {\n\t\t\t\tdname.Ref = unescapexml(utf8read(data.slice(dnstart, idx)));\n\t\t\t\twb.Names.push(dname);\n\t\t\t} break;\n\t\t\tcase '': break;\n\n\t\t\t/* 18.2.2 calcPr CT_CalcPr ? */\n\t\t\tcase '': delete y[0]; wb.CalcPr = y; break;\n\t\t\tcase '': break;\n\n\t\t\t/* 18.2.16 oleSize CT_OleSize ? (ref required) */\n\t\t\tcase '': case '': case '': break;\n\n\t\t\t/* 18.2.18 pivotCaches CT_PivotCaches ? */\n\t\t\tcase '': case '': case '': break;\n\n\t\t\t/* 18.2.23 smartTagTypes CT_SmartTagTypes ? */\n\t\t\tcase '': case '': break;\n\t\t\t/* 18.2.22 smartTagType CT_SmartTagType ? */\n\t\t\tcase '': break;\n\n\t\t\t/* 18.2.11 fileRecoveryPr CT_FileRecoveryPr ? */\n\t\t\tcase '': break;\n\n\t\t\t/* 18.2.26 webPublishObjects CT_WebPublishObjects ? */\n\t\t\tcase '': case '': break;\n\t\t\t/* 18.2.25 webPublishObject CT_WebPublishObject ? */\n\t\t\tcase '': case '': case '': break;\n\t\t\t/* 18.2.7 ext CT_Extension + */\n\t\t\tcase '': pass=false; break;\n\n\t\t\t/* Others */\n\t\t\tcase '': pass=true; break;\n\t\t\tcase '': pass=false; break;\n\n\t\t\t/* TODO */\n\t\t\tcase ' 0);\n\n\t/* fileVersion */\n\t/* fileSharing */\n\n\tvar workbookPr/*:any*/ = ({codeName:\"ThisWorkbook\"}/*:any*/);\n\tif(wb.Workbook && wb.Workbook.WBProps) {\n\t\tWBPropsDef.forEach(function(x) {\n\t\t\t/*:: if(!wb.Workbook || !wb.Workbook.WBProps) throw \"unreachable\"; */\n\t\t\tif((wb.Workbook.WBProps[x[0]]/*:any*/) == null) return;\n\t\t\tif((wb.Workbook.WBProps[x[0]]/*:any*/) == x[1]) return;\n\t\t\tworkbookPr[x[0]] = (wb.Workbook.WBProps[x[0]]/*:any*/);\n\t\t});\n\t\t/*:: if(!wb.Workbook || !wb.Workbook.WBProps) throw \"unreachable\"; */\n\t\tif(wb.Workbook.WBProps.CodeName) { workbookPr.codeName = wb.Workbook.WBProps.CodeName; delete workbookPr.CodeName; }\n\t}\n\to[o.length] = (writextag('workbookPr', null, workbookPr));\n\n\t/* workbookProtection */\n\n\tvar sheets = wb.Workbook && wb.Workbook.Sheets || [];\n\tvar i = 0;\n\n\t/* bookViews only written if first worksheet is hidden */\n\tif(sheets && sheets[0] && !!sheets[0].Hidden) {\n\t\to[o.length] = \"\";\n\t\tfor(i = 0; i != wb.SheetNames.length; ++i) {\n\t\t\tif(!sheets[i]) break;\n\t\t\tif(!sheets[i].Hidden) break;\n\t\t}\n\t\tif(i == wb.SheetNames.length) i = 0;\n\t\to[o.length] = '';\n\t\to[o.length] = \"\";\n\t}\n\n\to[o.length] = \"\";\n\tfor(i = 0; i != wb.SheetNames.length; ++i) {\n\t\tvar sht = ({name:escapexml(wb.SheetNames[i].slice(0,31))}/*:any*/);\n\t\tsht.sheetId = \"\"+(i+1);\n\t\tsht[\"r:id\"] = \"rId\"+(i+1);\n\t\tif(sheets[i]) switch(sheets[i].Hidden) {\n\t\t\tcase 1: sht.state = \"hidden\"; break;\n\t\t\tcase 2: sht.state = \"veryHidden\"; break;\n\t\t}\n\t\to[o.length] = (writextag('sheet',null,sht));\n\t}\n\to[o.length] = \"\";\n\n\t/* functionGroups */\n\t/* externalReferences */\n\n\tif(write_names) {\n\t\to[o.length] = \"\";\n\t\tif(wb.Workbook && wb.Workbook.Names) wb.Workbook.Names.forEach(function(n) {\n\t\t\tvar d/*:any*/ = {name:n.Name};\n\t\t\tif(n.Comment) d.comment = n.Comment;\n\t\t\tif(n.Sheet != null) d.localSheetId = \"\"+n.Sheet;\n\t\t\tif(n.Hidden) d.hidden = \"1\";\n\t\t\tif(!n.Ref) return;\n\t\t\to[o.length] = writextag('definedName', escapexml(n.Ref), d);\n\t\t});\n\t\to[o.length] = \"\";\n\t}\n\n\t/* calcPr */\n\t/* oleSize */\n\t/* customWorkbookViews */\n\t/* pivotCaches */\n\t/* smartTagPr */\n\t/* smartTagTypes */\n\t/* webPublishing */\n\t/* fileRecoveryPr */\n\t/* webPublishObjects */\n\t/* extLst */\n\n\tif(o.length>2){ o[o.length] = ''; o[1]=o[1].replace(\"/>\",\">\"); }\n\treturn o.join(\"\");\n}\n/* [MS-XLSB] 2.4.304 BrtBundleSh */\nfunction parse_BrtBundleSh(data, length/*:number*/) {\n\tvar z = {};\n\tz.Hidden = data.read_shift(4); //hsState ST_SheetState\n\tz.iTabID = data.read_shift(4);\n\tz.strRelID = parse_RelID(data,length-8);\n\tz.name = parse_XLWideString(data);\n\treturn z;\n}\nfunction write_BrtBundleSh(data, o) {\n\tif(!o) o = new_buf(127);\n\to.write_shift(4, data.Hidden);\n\to.write_shift(4, data.iTabID);\n\twrite_RelID(data.strRelID, o);\n\twrite_XLWideString(data.name.slice(0,31), o);\n\treturn o.length > o.l ? o.slice(0, o.l) : o;\n}\n\n/* [MS-XLSB] 2.4.815 BrtWbProp */\nfunction parse_BrtWbProp(data, length)/*:WBProps*/ {\n\tvar o/*:WBProps*/ = ({}/*:any*/);\n\tvar flags = data.read_shift(4);\n\to.defaultThemeVersion = data.read_shift(4);\n\tvar strName = (length > 8) ? parse_XLWideString(data) : \"\";\n\tif(strName.length > 0) o.CodeName = strName;\n\to.autoCompressPictures = !!(flags & 0x10000);\n\to.backupFile = !!(flags & 0x40);\n\to.checkCompatibility = !!(flags & 0x1000);\n\to.date1904 = !!(flags & 0x01);\n\to.filterPrivacy = !!(flags & 0x08);\n\to.hidePivotFieldList = !!(flags & 0x400);\n\to.promptedSolutions = !!(flags & 0x10);\n\to.publishItems = !!(flags & 0x800);\n\to.refreshAllConnections = !!(flags & 0x40000);\n\to.saveExternalLinkValues = !!(flags & 0x80);\n\to.showBorderUnselectedTables = !!(flags & 0x04);\n\to.showInkAnnotation = !!(flags & 0x20);\n\to.showObjects = [\"all\", \"placeholders\", \"none\"][(flags >> 13) & 0x03];\n\to.showPivotChartFilter = !!(flags & 0x8000);\n\to.updateLinks = [\"userSet\", \"never\", \"always\"][(flags >> 8) & 0x03];\n\treturn o;\n}\nfunction write_BrtWbProp(data/*:?WBProps*/, o) {\n\tif(!o) o = new_buf(72);\n\tvar flags = 0;\n\tif(data) {\n\t\t/* TODO: mirror parse_BrtWbProp fields */\n\t\tif(data.date1904) flags |= 0x01;\n\t\tif(data.filterPrivacy) flags |= 0x08;\n\t}\n\to.write_shift(4, flags);\n\to.write_shift(4, 0);\n\twrite_XLSBCodeName(data && data.CodeName || \"ThisWorkbook\", o);\n\treturn o.slice(0, o.l);\n}\n\nfunction parse_BrtFRTArchID$(data, length) {\n\tvar o = {};\n\tdata.read_shift(4);\n\to.ArchID = data.read_shift(4);\n\tdata.l += length - 8;\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.687 BrtName */\nfunction parse_BrtName(data, length, opts) {\n\tvar end = data.l + length;\n\tvar flags = data.read_shift(4);\n\tdata.l += 1; //var chKey = data.read_shift(1);\n\tvar itab = data.read_shift(4);\n\tvar name = parse_XLNameWideString(data);\n\tvar formula = parse_XLSBNameParsedFormula(data, 0, opts);\n\tvar comment = parse_XLNullableWideString(data);\n\tif(flags & 0x20) name = \"_xlnm.\" + name;\n\t//if(0 /* fProc */) {\n\t\t// unusedstring1: XLNullableWideString\n\t\t// description: XLNullableWideString\n\t\t// helpTopic: XLNullableWideString\n\t\t// unusedstring2: XLNullableWideString\n\t//}\n\tdata.l = end;\n\tvar out = ({Name:name, Ptg:formula, Flags: flags}/*:any*/);\n\tif(itab < 0xFFFFFFF) out.Sheet = itab;\n\tif(comment) out.Comment = comment;\n\treturn out;\n}\nfunction write_BrtName(name, wb) {\n\tvar o = new_buf(9);\n\tvar flags = 0;\n\tvar dname = name.Name;\n\tif(XLSLblBuiltIn.indexOf(dname) > -1) { flags |= 0x20; dname = dname.slice(6); }\n\to.write_shift(4, flags); // flags\n\to.write_shift(1, 0); // chKey\n\to.write_shift(4, name.Sheet == null ? 0xFFFFFFFF : name.Sheet);\n\n\tvar arr = [\n\t\to,\n\t\twrite_XLWideString(dname),\n\t\twrite_XLSBNameParsedFormula(name.Ref, wb)\n\t];\n\tif(name.Comment) arr.push(write_XLNullableWideString(name.Comment));\n\telse {\n\t\tvar x = new_buf(4);\n\t\tx.write_shift(4, 0xFFFFFFFF);\n\t\tarr.push(x);\n\t}\n\n\t// if macro (flags & 0x0F):\n\t// write_shift(4, 0xFFFFFFFF);\n\t// write_XLNullableWideString(description)\n\t// write_XLNullableWideString(helpTopic)\n\t// write_shift(4, 0xFFFFFFFF);\n\n\treturn bconcat(arr);\n}\n\n/* [MS-XLSB] 2.1.7.61 Workbook */\nfunction parse_wb_bin(data, opts)/*:WorkbookFile*/ {\n\tvar wb = { AppVersion:{}, WBProps:{}, WBView:[], Sheets:[], CalcPr:{}, xmlns: \"\" };\n\tvar state/*:Array*/ = [];\n\tvar pass = false;\n\n\tif(!opts) opts = {};\n\topts.biff = 12;\n\n\tvar Names = [];\n\tvar supbooks = ([[]]/*:any*/);\n\tsupbooks.SheetNames = [];\n\tsupbooks.XTI = [];\n\n\tXLSBRecordEnum[0x0010] = { n:\"BrtFRTArchID$\", f:parse_BrtFRTArchID$ };\n\n\trecordhopper(data, function hopper_wb(val, R, RT) {\n\t\tswitch(RT) {\n\t\t\tcase 0x009C: /* 'BrtBundleSh' */\n\t\t\t\tsupbooks.SheetNames.push(val.name);\n\t\t\t\twb.Sheets.push(val); break;\n\n\t\t\tcase 0x0099: /* 'BrtWbProp' */\n\t\t\t\twb.WBProps = val; break;\n\n\t\t\tcase 0x0027: /* 'BrtName' */\n\t\t\t\tif(val.Sheet != null) opts.SID = val.Sheet;\n\t\t\t\tval.Ref = stringify_formula(val.Ptg, null, null, supbooks, opts);\n\t\t\t\tdelete opts.SID;\n\t\t\t\tdelete val.Ptg;\n\t\t\t\tNames.push(val);\n\t\t\t\tbreak;\n\t\t\tcase 0x040C: /* 'BrtNameExt' */ break;\n\n\t\t\tcase 0x0165: /* 'BrtSupSelf' */\n\t\t\tcase 0x0166: /* 'BrtSupSame' */\n\t\t\tcase 0x0163: /* 'BrtSupBookSrc' */\n\t\t\tcase 0x029B: /* 'BrtSupAddin' */\n\t\t\t\tif(!supbooks[0].length) supbooks[0] = [RT, val];\n\t\t\t\telse supbooks.push([RT, val]);\n\t\t\t\tsupbooks[supbooks.length - 1].XTI = [];\n\t\t\t\tbreak;\n\t\t\tcase 0x016A: /* 'BrtExternSheet' */\n\t\t\t\tif(supbooks.length === 0) { supbooks[0] = []; supbooks[0].XTI = []; }\n\t\t\t\tsupbooks[supbooks.length - 1].XTI = supbooks[supbooks.length - 1].XTI.concat(val);\n\t\t\t\tsupbooks.XTI = supbooks.XTI.concat(val);\n\t\t\t\tbreak;\n\t\t\tcase 0x0169: /* 'BrtPlaceholderName' */\n\t\t\t\tbreak;\n\n\t\t\tcase 0x0817: /* 'BrtAbsPath15' */\n\t\t\tcase 0x009E: /* 'BrtBookView' */\n\t\t\tcase 0x008F: /* 'BrtBeginBundleShs' */\n\t\t\tcase 0x0298: /* 'BrtBeginFnGroup' */\n\t\t\tcase 0x0161: /* 'BrtBeginExternals' */\n\t\t\t\tbreak;\n\n\t\t\t/* case 'BrtModelTimeGroupingCalcCol' */\n\t\t\tcase 0x0C00: /* 'BrtUid' */\n\t\t\tcase 0x0C01: /* 'BrtRevisionPtr' */\n\t\t\tcase 0x0216: /* 'BrtBookProtection' */\n\t\t\tcase 0x02A5: /* 'BrtBookProtectionIso' */\n\t\t\tcase 0x009D: /* 'BrtCalcProp' */\n\t\t\tcase 0x0262: /* 'BrtCrashRecErr' */\n\t\t\tcase 0x0802: /* 'BrtDecoupledPivotCacheID' */\n\t\t\tcase 0x009B: /* 'BrtFileRecover' */\n\t\t\tcase 0x0224: /* 'BrtFileSharing' */\n\t\t\tcase 0x02A4: /* 'BrtFileSharingIso' */\n\t\t\tcase 0x0080: /* 'BrtFileVersion' */\n\t\t\tcase 0x0299: /* 'BrtFnGroup' */\n\t\t\tcase 0x0850: /* 'BrtModelRelationship' */\n\t\t\tcase 0x084D: /* 'BrtModelTable' */\n\t\t\tcase 0x0225: /* 'BrtOleSize' */\n\t\t\tcase 0x0805: /* 'BrtPivotTableRef' */\n\t\t\tcase 0x0254: /* 'BrtSmartTagType' */\n\t\t\tcase 0x081C: /* 'BrtTableSlicerCacheID' */\n\t\t\tcase 0x081B: /* 'BrtTableSlicerCacheIDs' */\n\t\t\tcase 0x0822: /* 'BrtTimelineCachePivotCacheID' */\n\t\t\tcase 0x018D: /* 'BrtUserBookView' */\n\t\t\tcase 0x009A: /* 'BrtWbFactoid' */\n\t\t\tcase 0x045D: /* 'BrtWbProp14' */\n\t\t\tcase 0x0229: /* 'BrtWebOpt' */\n\t\t\tcase 0x082B: /* 'BrtWorkBookPr15' */\n\t\t\t\tbreak;\n\n\t\t\tcase 0x0023: /* 'BrtFRTBegin' */\n\t\t\t\tstate.push(RT); pass = true; break;\n\t\t\tcase 0x0024: /* 'BrtFRTEnd' */\n\t\t\t\tstate.pop(); pass = false; break;\n\t\t\tcase 0x0025: /* 'BrtACBegin' */\n\t\t\t\tstate.push(RT); pass = true; break;\n\t\t\tcase 0x0026: /* 'BrtACEnd' */\n\t\t\t\tstate.pop(); pass = false; break;\n\n\t\t\tcase 0x0010: /* 'BrtFRTArchID$' */ break;\n\n\t\t\tdefault:\n\t\t\t\tif(R.T){/* empty */}\n\t\t\t\telse if(!pass || (opts.WTF && state[state.length-1] != 0x0025 /* BrtACBegin */ && state[state.length-1] != 0x0023 /* BrtFRTBegin */)) throw new Error(\"Unexpected record 0x\" + RT.toString(16));\n\t\t}\n\t}, opts);\n\n\tparse_wb_defaults(wb);\n\n\t// $FlowIgnore\n\twb.Names = Names;\n\n\t(wb/*:any*/).supbooks = supbooks;\n\treturn wb;\n}\n\nfunction write_BUNDLESHS(ba, wb/*::, opts*/) {\n\twrite_record(ba, 0x008F /* BrtBeginBundleShs */);\n\tfor(var idx = 0; idx != wb.SheetNames.length; ++idx) {\n\t\tvar viz = wb.Workbook && wb.Workbook.Sheets && wb.Workbook.Sheets[idx] && wb.Workbook.Sheets[idx].Hidden || 0;\n\t\tvar d = { Hidden: viz, iTabID: idx+1, strRelID: 'rId' + (idx+1), name: wb.SheetNames[idx] };\n\t\twrite_record(ba, 0x009C /* BrtBundleSh */, write_BrtBundleSh(d));\n\t}\n\twrite_record(ba, 0x0090 /* BrtEndBundleShs */);\n}\n\n/* [MS-XLSB] 2.4.649 BrtFileVersion */\nfunction write_BrtFileVersion(data, o) {\n\tif(!o) o = new_buf(127);\n\tfor(var i = 0; i != 4; ++i) o.write_shift(4, 0);\n\twrite_XLWideString(\"SheetJS\", o);\n\twrite_XLWideString(XLSX.version, o);\n\twrite_XLWideString(XLSX.version, o);\n\twrite_XLWideString(\"7262\", o);\n\treturn o.length > o.l ? o.slice(0, o.l) : o;\n}\n\n/* [MS-XLSB] 2.4.301 BrtBookView */\nfunction write_BrtBookView(idx, o) {\n\tif(!o) o = new_buf(29);\n\to.write_shift(-4, 0);\n\to.write_shift(-4, 460);\n\to.write_shift(4, 28800);\n\to.write_shift(4, 17600);\n\to.write_shift(4, 500);\n\to.write_shift(4, idx);\n\to.write_shift(4, idx);\n\tvar flags = 0x78;\n\to.write_shift(1, flags);\n\treturn o.length > o.l ? o.slice(0, o.l) : o;\n}\n\nfunction write_BOOKVIEWS(ba, wb/*::, opts*/) {\n\t/* required if hidden tab appears before visible tab */\n\tif(!wb.Workbook || !wb.Workbook.Sheets) return;\n\tvar sheets = wb.Workbook.Sheets;\n\tvar i = 0, vistab = -1, hidden = -1;\n\tfor(; i < sheets.length; ++i) {\n\t\tif(!sheets[i] || !sheets[i].Hidden && vistab == -1) vistab = i;\n\t\telse if(sheets[i].Hidden == 1 && hidden == -1) hidden = i;\n\t}\n\tif(hidden > vistab) return;\n\twrite_record(ba, 0x0087 /* BrtBeginBookViews */);\n\twrite_record(ba, 0x009E /* BrtBookView */, write_BrtBookView(vistab));\n\t/* 1*(BrtBookView *FRT) */\n\twrite_record(ba, 0x0088 /* BrtEndBookViews */);\n}\n\nfunction write_BRTNAMES(ba, wb) {\n\tif(!wb.Workbook || !wb.Workbook.Names) return;\n\twb.Workbook.Names.forEach(function(name) { try {\n\t\tif(name.Flags & 0x0e) return; // TODO: macro name write\n\t\twrite_record(ba, 0x0027 /* BrtName */, write_BrtName(name, wb));\n\t} catch(e) {\n\t\tconsole.error(\"Could not serialize defined name \" + JSON.stringify(name));\n\t} });\n}\n\nfunction write_SELF_EXTERNS_xlsb(wb) {\n\tvar L = wb.SheetNames.length;\n\tvar o = new_buf(12 * L + 28);\n\to.write_shift(4, L + 2);\n\to.write_shift(4, 0); o.write_shift(4, -2); o.write_shift(4, -2); // workbook-level reference\n\to.write_shift(4, 0); o.write_shift(4, -1); o.write_shift(4, -1); // #REF!...\n\tfor(var i = 0; i < L; ++i) {\n\t\to.write_shift(4, 0); o.write_shift(4, i); o.write_shift(4, i);\n\t}\n\treturn o;\n}\nfunction write_EXTERNALS_xlsb(ba, wb) {\n\twrite_record(ba, 0x0161 /* BrtBeginExternals */);\n\twrite_record(ba, 0x0165 /* BrtSupSelf */);\n\twrite_record(ba, 0x016A /* BrtExternSheet */, write_SELF_EXTERNS_xlsb(wb, 0));\n\twrite_record(ba, 0x0162 /* BrtEndExternals */);\n}\n\n/* [MS-XLSB] 2.4.305 BrtCalcProp */\n/*function write_BrtCalcProp(data, o) {\n\tif(!o) o = new_buf(26);\n\to.write_shift(4,0); // force recalc\n\to.write_shift(4,1);\n\to.write_shift(4,0);\n\twrite_Xnum(0, o);\n\to.write_shift(-4, 1023);\n\to.write_shift(1, 0x33);\n\to.write_shift(1, 0x00);\n\treturn o;\n}*/\n\n/* [MS-XLSB] 2.4.646 BrtFileRecover */\n/*function write_BrtFileRecover(data, o) {\n\tif(!o) o = new_buf(1);\n\to.write_shift(1,0);\n\treturn o;\n}*/\n\n/* [MS-XLSB] 2.1.7.61 Workbook */\nfunction write_wb_bin(wb, opts) {\n\tvar ba = buf_array();\n\twrite_record(ba, 0x0083 /* BrtBeginBook */);\n\twrite_record(ba, 0x0080 /* BrtFileVersion */, write_BrtFileVersion());\n\t/* [[BrtFileSharingIso] BrtFileSharing] */\n\twrite_record(ba, 0x0099 /* BrtWbProp */, write_BrtWbProp(wb.Workbook && wb.Workbook.WBProps || null));\n\t/* [ACABSPATH] */\n\t/* [[BrtBookProtectionIso] BrtBookProtection] */\n\twrite_BOOKVIEWS(ba, wb, opts);\n\twrite_BUNDLESHS(ba, wb, opts);\n\t/* [FNGROUP] */\n\twrite_EXTERNALS_xlsb(ba, wb);\n\tif((wb.Workbook||{}).Names) write_BRTNAMES(ba, wb);\n\t/* write_record(ba, 0x009D BrtCalcProp, write_BrtCalcProp()); */\n\t/* [BrtOleSize] */\n\t/* *(BrtUserBookView *FRT) */\n\t/* [PIVOTCACHEIDS] */\n\t/* [BrtWbFactoid] */\n\t/* [SMARTTAGTYPES] */\n\t/* [BrtWebOpt] */\n\t/* write_record(ba, 0x009B BrtFileRecover, write_BrtFileRecover()); */\n\t/* [WEBPUBITEMS] */\n\t/* [CRERRS] */\n\t/* FRTWORKBOOK */\n\twrite_record(ba, 0x0084 /* BrtEndBook */);\n\n\treturn ba.end();\n}\nfunction parse_wb(data, name/*:string*/, opts)/*:WorkbookFile*/ {\n\tif(name.slice(-4)===\".bin\") return parse_wb_bin((data/*:any*/), opts);\n\treturn parse_wb_xml((data/*:any*/), opts);\n}\n\nfunction parse_ws(data, name/*:string*/, idx/*:number*/, opts, rels, wb, themes, styles)/*:Worksheet*/ {\n\tif(name.slice(-4)===\".bin\") return parse_ws_bin((data/*:any*/), opts, idx, rels, wb, themes, styles);\n\treturn parse_ws_xml((data/*:any*/), opts, idx, rels, wb, themes, styles);\n}\n\nfunction parse_cs(data, name/*:string*/, idx/*:number*/, opts, rels, wb, themes, styles)/*:Worksheet*/ {\n\tif(name.slice(-4)===\".bin\") return parse_cs_bin((data/*:any*/), opts, idx, rels, wb, themes, styles);\n\treturn parse_cs_xml((data/*:any*/), opts, idx, rels, wb, themes, styles);\n}\n\nfunction parse_ms(data, name/*:string*/, idx/*:number*/, opts, rels, wb, themes, styles)/*:Worksheet*/ {\n\tif(name.slice(-4)===\".bin\") return parse_ms_bin((data/*:any*/), opts, idx, rels, wb, themes, styles);\n\treturn parse_ms_xml((data/*:any*/), opts, idx, rels, wb, themes, styles);\n}\n\nfunction parse_ds(data, name/*:string*/, idx/*:number*/, opts, rels, wb, themes, styles)/*:Worksheet*/ {\n\tif(name.slice(-4)===\".bin\") return parse_ds_bin((data/*:any*/), opts, idx, rels, wb, themes, styles);\n\treturn parse_ds_xml((data/*:any*/), opts, idx, rels, wb, themes, styles);\n}\n\nfunction parse_sty(data, name/*:string*/, themes, opts) {\n\tif(name.slice(-4)===\".bin\") return parse_sty_bin((data/*:any*/), themes, opts);\n\treturn parse_sty_xml((data/*:any*/), themes, opts);\n}\n\nfunction parse_sst(data, name/*:string*/, opts)/*:SST*/ {\n\tif(name.slice(-4)===\".bin\") return parse_sst_bin((data/*:any*/), opts);\n\treturn parse_sst_xml((data/*:any*/), opts);\n}\n\nfunction parse_cmnt(data, name/*:string*/, opts)/*:Array*/ {\n\tif(name.slice(-4)===\".bin\") return parse_comments_bin((data/*:any*/), opts);\n\treturn parse_comments_xml((data/*:any*/), opts);\n}\n\nfunction parse_cc(data, name/*:string*/, opts) {\n\tif(name.slice(-4)===\".bin\") return parse_cc_bin((data/*:any*/), name, opts);\n\treturn parse_cc_xml((data/*:any*/), name, opts);\n}\n\nfunction parse_xlink(data, rel, name/*:string*/, opts) {\n\tif(name.slice(-4)===\".bin\") return parse_xlink_bin((data/*:any*/), rel, name, opts);\n\treturn parse_xlink_xml((data/*:any*/), rel, name, opts);\n}\n\nfunction parse_xlmeta(data, name/*:string*/, opts) {\n\tif(name.slice(-4)===\".bin\") return parse_xlmeta_bin((data/*:any*/), name, opts);\n\treturn parse_xlmeta_xml((data/*:any*/), name, opts);\n}\nvar attregexg2=/([\\w:]+)=((?:\")([^\"]*)(?:\")|(?:')([^']*)(?:'))/g;\nvar attregex2=/([\\w:]+)=((?:\")(?:[^\"]*)(?:\")|(?:')(?:[^']*)(?:'))/;\nfunction xlml_parsexmltag(tag/*:string*/, skip_root/*:?boolean*/) {\n\tvar words = tag.split(/\\s+/);\n\tvar z/*:any*/ = ([]/*:any*/); if(!skip_root) z[0] = words[0];\n\tif(words.length === 1) return z;\n\tvar m = tag.match(attregexg2), y, j, w, i;\n\tif(m) for(i = 0; i != m.length; ++i) {\n\t\ty = m[i].match(attregex2);\n/*:: if(!y || !y[2]) continue; */\n\t\tif((j=y[1].indexOf(\":\")) === -1) z[y[1]] = y[2].slice(1,y[2].length-1);\n\t\telse {\n\t\t\tif(y[1].slice(0,6) === \"xmlns:\") w = \"xmlns\"+y[1].slice(6);\n\t\t\telse w = y[1].slice(j+1);\n\t\t\tz[w] = y[2].slice(1,y[2].length-1);\n\t\t}\n\t}\n\treturn z;\n}\nfunction xlml_parsexmltagobj(tag/*:string*/) {\n\tvar words = tag.split(/\\s+/);\n\tvar z = {};\n\tif(words.length === 1) return z;\n\tvar m = tag.match(attregexg2), y, j, w, i;\n\tif(m) for(i = 0; i != m.length; ++i) {\n\t\ty = m[i].match(attregex2);\n/*:: if(!y || !y[2]) continue; */\n\t\tif((j=y[1].indexOf(\":\")) === -1) z[y[1]] = y[2].slice(1,y[2].length-1);\n\t\telse {\n\t\t\tif(y[1].slice(0,6) === \"xmlns:\") w = \"xmlns\"+y[1].slice(6);\n\t\t\telse w = y[1].slice(j+1);\n\t\t\tz[w] = y[2].slice(1,y[2].length-1);\n\t\t}\n\t}\n\treturn z;\n}\n\n// ----\n\n/* map from xlml named formats to SSF TODO: localize */\nvar XLMLFormatMap/*: {[string]:string}*/;\n\nfunction xlml_format(format, value)/*:string*/ {\n\tvar fmt = XLMLFormatMap[format] || unescapexml(format);\n\tif(fmt === \"General\") return SSF_general(value);\n\treturn SSF_format(fmt, value);\n}\n\nfunction xlml_set_custprop(Custprops, key, cp, val/*:string*/) {\n\tvar oval/*:any*/ = val;\n\tswitch((cp[0].match(/dt:dt=\"([\\w.]+)\"/)||[\"\",\"\"])[1]) {\n\t\tcase \"boolean\": oval = parsexmlbool(val); break;\n\t\tcase \"i2\": case \"int\": oval = parseInt(val, 10); break;\n\t\tcase \"r4\": case \"float\": oval = parseFloat(val); break;\n\t\tcase \"date\": case \"dateTime.tz\": oval = parseDate(val); break;\n\t\tcase \"i8\": case \"string\": case \"fixed\": case \"uuid\": case \"bin.base64\": break;\n\t\tdefault: throw new Error(\"bad custprop:\" + cp[0]);\n\t}\n\tCustprops[unescapexml(key)] = oval;\n}\n\nfunction safe_format_xlml(cell/*:Cell*/, nf, o) {\n\tif(cell.t === 'z') return;\n\tif(!o || o.cellText !== false) try {\n\t\tif(cell.t === 'e') { cell.w = cell.w || BErr[cell.v]; }\n\t\telse if(nf === \"General\") {\n\t\t\tif(cell.t === 'n') {\n\t\t\t\tif((cell.v|0) === cell.v) cell.w = cell.v.toString(10);\n\t\t\t\telse cell.w = SSF_general_num(cell.v);\n\t\t\t}\n\t\t\telse cell.w = SSF_general(cell.v);\n\t\t}\n\t\telse cell.w = xlml_format(nf||\"General\", cell.v);\n\t} catch(e) { if(o.WTF) throw e; }\n\ttry {\n\t\tvar z = XLMLFormatMap[nf]||nf||\"General\";\n\t\tif(o.cellNF) cell.z = z;\n\t\tif(o.cellDates && cell.t == 'n' && fmt_is_date(z)) {\n\t\t\tvar _d = SSF_parse_date_code(cell.v); if(_d) { cell.t = 'd'; cell.v = new Date(_d.y, _d.m-1,_d.d,_d.H,_d.M,_d.S,_d.u); }\n\t\t}\n\t} catch(e) { if(o.WTF) throw e; }\n}\n\nfunction process_style_xlml(styles, stag, opts) {\n\tif(opts.cellStyles) {\n\t\tif(stag.Interior) {\n\t\t\tvar I = stag.Interior;\n\t\t\tif(I.Pattern) I.patternType = XLMLPatternTypeMap[I.Pattern] || I.Pattern;\n\t\t}\n\t}\n\tstyles[stag.ID] = stag;\n}\n\n/* TODO: there must exist some form of OSP-blessed spec */\nfunction parse_xlml_data(xml, ss, data, cell/*:any*/, base, styles, csty, row, arrayf, o) {\n\tvar nf = \"General\", sid = cell.StyleID, S = {}; o = o || {};\n\tvar interiors = [];\n\tvar i = 0;\n\tif(sid === undefined && row) sid = row.StyleID;\n\tif(sid === undefined && csty) sid = csty.StyleID;\n\twhile(styles[sid] !== undefined) {\n\t\tif(styles[sid].nf) nf = styles[sid].nf;\n\t\tif(styles[sid].Interior) interiors.push(styles[sid].Interior);\n\t\tif(!styles[sid].Parent) break;\n\t\tsid = styles[sid].Parent;\n\t}\n\tswitch(data.Type) {\n\t\tcase 'Boolean':\n\t\t\tcell.t = 'b';\n\t\t\tcell.v = parsexmlbool(xml);\n\t\t\tbreak;\n\t\tcase 'String':\n\t\t\tcell.t = 's'; cell.r = xlml_fixstr(unescapexml(xml));\n\t\t\tcell.v = (xml.indexOf(\"<\") > -1 ? unescapexml(ss||xml).replace(/<.*?>/g, \"\") : cell.r); // todo: BR etc\n\t\t\tbreak;\n\t\tcase 'DateTime':\n\t\t\tif(xml.slice(-1) != \"Z\") xml += \"Z\";\n\t\t\tcell.v = (parseDate(xml) - new Date(Date.UTC(1899, 11, 30))) / (24 * 60 * 60 * 1000);\n\t\t\tif(cell.v !== cell.v) cell.v = unescapexml(xml);\n\t\t\telse if(cell.v<60) cell.v = cell.v -1;\n\t\t\tif(!nf || nf == \"General\") nf = \"yyyy-mm-dd\";\n\t\t\t/* falls through */\n\t\tcase 'Number':\n\t\t\tif(cell.v === undefined) cell.v=+xml;\n\t\t\tif(!cell.t) cell.t = 'n';\n\t\t\tbreak;\n\t\tcase 'Error': cell.t = 'e'; cell.v = RBErr[xml]; if(o.cellText !== false) cell.w = xml; break;\n\t\tdefault:\n\t\t\tif(xml == \"\" && ss == \"\") { cell.t = 'z'; }\n\t\t\telse { cell.t = 's'; cell.v = xlml_fixstr(ss||xml); }\n\t\t\tbreak;\n\t}\n\tsafe_format_xlml(cell, nf, o);\n\tif(o.cellFormula !== false) {\n\t\tif(cell.Formula) {\n\t\t\tvar fstr = unescapexml(cell.Formula);\n\t\t\t/* strictly speaking, the leading = is required but some writers omit */\n\t\t\tif(fstr.charCodeAt(0) == 61 /* = */) fstr = fstr.slice(1);\n\t\t\tcell.f = rc_to_a1(fstr, base);\n\t\t\tdelete cell.Formula;\n\t\t\tif(cell.ArrayRange == \"RC\") cell.F = rc_to_a1(\"RC:RC\", base);\n\t\t\telse if(cell.ArrayRange) {\n\t\t\t\tcell.F = rc_to_a1(cell.ArrayRange, base);\n\t\t\t\tarrayf.push([safe_decode_range(cell.F), cell.F]);\n\t\t\t}\n\t\t} else {\n\t\t\tfor(i = 0; i < arrayf.length; ++i)\n\t\t\t\tif(base.r >= arrayf[i][0].s.r && base.r <= arrayf[i][0].e.r)\n\t\t\t\t\tif(base.c >= arrayf[i][0].s.c && base.c <= arrayf[i][0].e.c)\n\t\t\t\t\t\tcell.F = arrayf[i][1];\n\t\t}\n\t}\n\tif(o.cellStyles) {\n\t\tinteriors.forEach(function(x) {\n\t\t\tif(!S.patternType && x.patternType) S.patternType = x.patternType;\n\t\t});\n\t\tcell.s = S;\n\t}\n\tif(cell.StyleID !== undefined) cell.ixfe = cell.StyleID;\n}\n\nfunction xlml_prefix_dname(dname) {\n\treturn XLSLblBuiltIn.indexOf(\"_xlnm.\" + dname) > -1 ? \"_xlnm.\" + dname : dname;\n}\n\nfunction xlml_clean_comment(comment/*:any*/) {\n\tcomment.t = comment.v || \"\";\n\tcomment.t = comment.t.replace(/\\r\\n/g,\"\\n\").replace(/\\r/g,\"\\n\");\n\tcomment.v = comment.w = comment.ixfe = undefined;\n}\n\n/* TODO: Everything */\nfunction parse_xlml_xml(d, _opts)/*:Workbook*/ {\n\tvar opts = _opts || {};\n\tmake_ssf();\n\tvar str = debom(xlml_normalize(d));\n\tif(opts.type == 'binary' || opts.type == 'array' || opts.type == 'base64') {\n\t\tif(typeof $cptable !== 'undefined') str = $cptable.utils.decode(65001, char_codes(str));\n\t\telse str = utf8read(str);\n\t}\n\tvar opening = str.slice(0, 1024).toLowerCase(), ishtml = false;\n\topening = opening.replace(/\".*?\"/g, \"\");\n\tif((opening.indexOf(\">\") & 1023) > Math.min((opening.indexOf(\",\") & 1023), (opening.indexOf(\";\")&1023))) { var _o = dup(opts); _o.type = \"string\"; return PRN.to_workbook(str, _o); }\n\tif(opening.indexOf(\"= 0) ishtml = true; });\n\tif(ishtml) return html_to_workbook(str, opts);\n\n\tXLMLFormatMap = ({\n\t\t\"General Number\": \"General\",\n\t\t\"General Date\": table_fmt[22],\n\t\t\"Long Date\": \"dddd, mmmm dd, yyyy\",\n\t\t\"Medium Date\": table_fmt[15],\n\t\t\"Short Date\": table_fmt[14],\n\t\t\"Long Time\": table_fmt[19],\n\t\t\"Medium Time\": table_fmt[18],\n\t\t\"Short Time\": table_fmt[20],\n\t\t\"Currency\": '\"$\"#,##0.00_);[Red]\\\\(\"$\"#,##0.00\\\\)',\n\t\t\"Fixed\": table_fmt[2],\n\t\t\"Standard\": table_fmt[4],\n\t\t\"Percent\": table_fmt[10],\n\t\t\"Scientific\": table_fmt[11],\n\t\t\"Yes/No\": '\"Yes\";\"Yes\";\"No\";@',\n\t\t\"True/False\": '\"True\";\"True\";\"False\";@',\n\t\t\"On/Off\": '\"Yes\";\"Yes\";\"No\";@'\n\t}/*:any*/);\n\n\n\tvar Rn;\n\tvar state = [], tmp;\n\tif(DENSE != null && opts.dense == null) opts.dense = DENSE;\n\tvar sheets = {}, sheetnames/*:Array*/ = [], cursheet/*:Worksheet*/ = ({}), sheetname = \"\"; if(opts.dense) cursheet[\"!data\"] = [];\n\tvar cell = ({}/*:any*/), row = {};// eslint-disable-line no-unused-vars\n\tvar dtag = xlml_parsexmltag(''), didx = 0;\n\tvar c = 0, r = 0;\n\tvar refguess/*:Range*/ = {s: {r:2000000, c:2000000}, e: {r:0, c:0} };\n\tvar styles = {}, stag = {};\n\tvar ss = \"\", fidx = 0;\n\tvar merges/*:Array*/ = [];\n\tvar Props = {}, Custprops = {}, pidx = 0, cp = [];\n\tvar comments/*:Array*/ = [], comment/*:Comment*/ = ({}/*:any*/);\n\tvar cstys = [], csty, seencol = false;\n\tvar arrayf/*:Array<[Range, string]>*/ = [];\n\tvar rowinfo/*:Array*/ = [], rowobj = {}, cc = 0, rr = 0;\n\tvar Workbook/*:WBWBProps*/ = ({ Sheets:[], WBProps:{date1904:false} }/*:any*/), wsprops = {};\n\txlmlregex.lastIndex = 0;\n\tstr = str.replace(//mg,\"\");\n\tvar raw_Rn3 = \"\";\n\twhile((Rn = xlmlregex.exec(str))) switch((Rn[3] = (raw_Rn3 = Rn[3]).toLowerCase())) {\n\t\tcase 'data' /*case 'Data'*/:\n\t\t\tif(raw_Rn3 == \"data\") {\n\t\t\t\tif(Rn[1]==='/'){if((tmp=state.pop())[0]!==Rn[3]) throw new Error(\"Bad state: \"+tmp.join(\"|\"));}\n\t\t\t\telse if(Rn[0].charAt(Rn[0].length-2) !== '/') state.push([Rn[3], true]);\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tif(state[state.length-1][1]) break;\n\t\t\tif(Rn[1]==='/') parse_xlml_data(str.slice(didx, Rn.index), ss, dtag, state[state.length-1][0]==/*\"Comment\"*/\"comment\"?comment:cell, {c:c,r:r}, styles, cstys[c], row, arrayf, opts);\n\t\t\telse { ss = \"\"; dtag = xlml_parsexmltag(Rn[0]); didx = Rn.index + Rn[0].length; }\n\t\t\tbreak;\n\t\tcase 'cell' /*case 'Cell'*/:\n\t\t\tif(Rn[1]==='/'){\n\t\t\t\tif(comments.length > 0) cell.c = comments;\n\t\t\t\tif((!opts.sheetRows || opts.sheetRows > r) && cell.v !== void 0) {\n\t\t\t\t\tif(opts.dense) {\n\t\t\t\t\t\tif(!cursheet[\"!data\"][r]) cursheet[\"!data\"][r] = [];\n\t\t\t\t\t\tcursheet[\"!data\"][r][c] = cell;\n\t\t\t\t\t} else cursheet[encode_col(c) + encode_row(r)] = cell;\n\t\t\t\t}\n\t\t\t\tif(cell.HRef) {\n\t\t\t\t\tcell.l = ({Target:unescapexml(cell.HRef)}/*:any*/);\n\t\t\t\t\tif(cell.HRefScreenTip) cell.l.Tooltip = cell.HRefScreenTip;\n\t\t\t\t\tdelete cell.HRef; delete cell.HRefScreenTip;\n\t\t\t\t}\n\t\t\t\tif(cell.MergeAcross || cell.MergeDown) {\n\t\t\t\t\tcc = c + (parseInt(cell.MergeAcross,10)|0);\n\t\t\t\t\trr = r + (parseInt(cell.MergeDown,10)|0);\n\t\t\t\t\tif(cc > c || rr > r) merges.push({s:{c:c,r:r},e:{c:cc,r:rr}});\n\t\t\t\t}\n\t\t\t\tif(!opts.sheetStubs) { if(cell.MergeAcross) c = cc + 1; else ++c; }\n\t\t\t\telse if(cell.MergeAcross || cell.MergeDown) {\n\t\t\t\t\t/*:: if(!cc) cc = 0; if(!rr) rr = 0; */\n\t\t\t\t\tfor(var cma = c; cma <= cc; ++cma) {\n\t\t\t\t\t\tfor(var cmd = r; cmd <= rr; ++cmd) {\n\t\t\t\t\t\t\tif(cma > c || cmd > r) {\n\t\t\t\t\t\t\t\tif(opts.dense) {\n\t\t\t\t\t\t\t\t\tif(!cursheet[\"!data\"][cmd]) cursheet[\"!data\"][cmd] = [];\n\t\t\t\t\t\t\t\t\tcursheet[\"!data\"][cmd][cma] = {t:'z'};\n\t\t\t\t\t\t\t\t} else cursheet[encode_col(cma) + encode_row(cmd)] = {t:'z'};\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tc = cc + 1;\n\t\t\t\t}\n\t\t\t\telse ++c;\n\t\t\t} else {\n\t\t\t\tcell = xlml_parsexmltagobj(Rn[0]);\n\t\t\t\tif(cell.Index) c = +cell.Index - 1;\n\t\t\t\tif(c < refguess.s.c) refguess.s.c = c;\n\t\t\t\tif(c > refguess.e.c) refguess.e.c = c;\n\t\t\t\tif(Rn[0].slice(-2) === \"/>\") ++c;\n\t\t\t\tcomments = [];\n\t\t\t}\n\t\t\tbreak;\n\t\tcase 'row' /*case 'Row'*/:\n\t\t\tif(Rn[1]==='/' || Rn[0].slice(-2) === \"/>\") {\n\t\t\t\tif(r < refguess.s.r) refguess.s.r = r;\n\t\t\t\tif(r > refguess.e.r) refguess.e.r = r;\n\t\t\t\tif(Rn[0].slice(-2) === \"/>\") {\n\t\t\t\t\trow = xlml_parsexmltag(Rn[0]);\n\t\t\t\t\tif(row.Index) r = +row.Index - 1;\n\t\t\t\t}\n\t\t\t\tc = 0; ++r;\n\t\t\t} else {\n\t\t\t\trow = xlml_parsexmltag(Rn[0]);\n\t\t\t\tif(row.Index) r = +row.Index - 1;\n\t\t\t\trowobj = {};\n\t\t\t\tif(row.AutoFitHeight == \"0\" || row.Height) {\n\t\t\t\t\trowobj.hpx = parseInt(row.Height, 10); rowobj.hpt = px2pt(rowobj.hpx);\n\t\t\t\t\trowinfo[r] = rowobj;\n\t\t\t\t}\n\t\t\t\tif(row.Hidden == \"1\") { rowobj.hidden = true; rowinfo[r] = rowobj; }\n\t\t\t}\n\t\t\tbreak;\n\t\tcase 'worksheet' /*case 'Worksheet'*/: /* TODO: read range from FullRows/FullColumns */\n\t\t\tif(Rn[1]==='/'){\n\t\t\t\tif((tmp=state.pop())[0]!==Rn[3]) throw new Error(\"Bad state: \"+tmp.join(\"|\"));\n\t\t\t\tsheetnames.push(sheetname);\n\t\t\t\tif(refguess.s.r <= refguess.e.r && refguess.s.c <= refguess.e.c) {\n\t\t\t\t\tcursheet[\"!ref\"] = encode_range(refguess);\n\t\t\t\t\tif(opts.sheetRows && opts.sheetRows <= refguess.e.r) {\n\t\t\t\t\t\tcursheet[\"!fullref\"] = cursheet[\"!ref\"];\n\t\t\t\t\t\trefguess.e.r = opts.sheetRows - 1;\n\t\t\t\t\t\tcursheet[\"!ref\"] = encode_range(refguess);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif(merges.length) cursheet[\"!merges\"] = merges;\n\t\t\t\tif(cstys.length > 0) cursheet[\"!cols\"] = cstys;\n\t\t\t\tif(rowinfo.length > 0) cursheet[\"!rows\"] = rowinfo;\n\t\t\t\tsheets[sheetname] = cursheet;\n\t\t\t} else {\n\t\t\t\trefguess = {s: {r:2000000, c:2000000}, e: {r:0, c:0} };\n\t\t\t\tr = c = 0;\n\t\t\t\tstate.push([Rn[3], false]);\n\t\t\t\ttmp = xlml_parsexmltag(Rn[0]);\n\t\t\t\tsheetname = unescapexml(tmp.Name);\n\t\t\t\tcursheet = ({}); if(opts.dense) cursheet[\"!data\"] = [];\n\t\t\t\tmerges = [];\n\t\t\t\tarrayf = [];\n\t\t\t\trowinfo = [];\n\t\t\t\twsprops = {name:sheetname, Hidden:0};\n\t\t\t\tWorkbook.Sheets.push(wsprops);\n\t\t\t}\n\t\t\tbreak;\n\t\tcase 'table' /*case 'Table'*/:\n\t\t\tif(Rn[1]==='/'){if((tmp=state.pop())[0]!==Rn[3]) throw new Error(\"Bad state: \"+tmp.join(\"|\"));}\n\t\t\telse if(Rn[0].slice(-2) == \"/>\") break;\n\t\t\telse {\n\t\t\t\tstate.push([Rn[3], false]);\n\t\t\t\tcstys = []; seencol = false;\n\t\t\t}\n\t\t\tbreak;\n\n\t\tcase 'style' /*case 'Style'*/:\n\t\t\tif(Rn[1]==='/') process_style_xlml(styles, stag, opts);\n\t\t\telse stag = xlml_parsexmltag(Rn[0]);\n\t\t\tbreak;\n\n\t\tcase 'numberformat' /*case 'NumberFormat'*/:\n\t\t\tstag.nf = unescapexml(xlml_parsexmltag(Rn[0]).Format || \"General\");\n\t\t\tif(XLMLFormatMap[stag.nf]) stag.nf = XLMLFormatMap[stag.nf];\n\t\t\tfor(var ssfidx = 0; ssfidx != 0x188; ++ssfidx) if(table_fmt[ssfidx] == stag.nf) break;\n\t\t\tif(ssfidx == 0x188) for(ssfidx = 0x39; ssfidx != 0x188; ++ssfidx) if(table_fmt[ssfidx] == null) { SSF__load(stag.nf, ssfidx); break; }\n\t\t\tbreak;\n\n\t\tcase 'column' /*case 'Column'*/:\n\t\t\tif(state[state.length-1][0] !== /*'Table'*/'table') break;\n\t\t\tif(Rn[1]==='/') break;\n\t\t\tcsty = xlml_parsexmltag(Rn[0]);\n\t\t\tif(csty.Hidden) { csty.hidden = true; delete csty.Hidden; }\n\t\t\tif(csty.Width) csty.wpx = parseInt(csty.Width, 10);\n\t\t\tif(!seencol && csty.wpx > 10) {\n\t\t\t\tseencol = true; MDW = DEF_MDW; //find_mdw_wpx(csty.wpx);\n\t\t\t\tfor(var _col = 0; _col < cstys.length; ++_col) if(cstys[_col]) process_col(cstys[_col]);\n\t\t\t}\n\t\t\tif(seencol) process_col(csty);\n\t\t\tcstys[(csty.Index-1||cstys.length)] = csty;\n\t\t\tfor(var i = 0; i < +csty.Span; ++i) cstys[cstys.length] = dup(csty);\n\t\t\tbreak;\n\n\t\tcase 'namedrange' /*case 'NamedRange'*/:\n\t\t\tif(Rn[1]==='/') break;\n\t\t\tif(!Workbook.Names) Workbook.Names = [];\n\t\t\tvar _NamedRange = parsexmltag(Rn[0]);\n\t\t\tvar _DefinedName/*:DefinedName*/ = ({\n\t\t\t\tName: xlml_prefix_dname(_NamedRange.Name),\n\t\t\t\tRef: rc_to_a1(_NamedRange.RefersTo.slice(1), {r:0, c:0})\n\t\t\t}/*:any*/);\n\t\t\tif(Workbook.Sheets.length>0) _DefinedName.Sheet=Workbook.Sheets.length-1;\n\t\t\t/*:: if(Workbook.Names) */Workbook.Names.push(_DefinedName);\n\t\t\tbreak;\n\n\t\tcase 'namedcell' /*case 'NamedCell'*/: break;\n\t\tcase 'b' /*case 'B'*/: break;\n\t\tcase 'i' /*case 'I'*/: break;\n\t\tcase 'u' /*case 'U'*/: break;\n\t\tcase 's' /*case 'S'*/: break;\n\t\tcase 'em' /*case 'EM'*/: break;\n\t\tcase 'h2' /*case 'H2'*/: break;\n\t\tcase 'h3' /*case 'H3'*/: break;\n\t\tcase 'sub' /*case 'Sub'*/: break;\n\t\tcase 'sup' /*case 'Sup'*/: break;\n\t\tcase 'span' /*case 'Span'*/: break;\n\t\tcase 'alignment' /*case 'Alignment'*/:\n\t\t\tbreak;\n\t\tcase 'borders' /*case 'Borders'*/: break;\n\t\tcase 'border' /*case 'Border'*/: break;\n\t\tcase 'font' /*case 'Font'*/:\n\t\t\tif(Rn[0].slice(-2) === \"/>\") break;\n\t\t\telse if(Rn[1]===\"/\") ss += str.slice(fidx, Rn.index);\n\t\t\telse fidx = Rn.index + Rn[0].length;\n\t\t\tbreak;\n\t\tcase 'interior' /*case 'Interior'*/:\n\t\t\tif(!opts.cellStyles) break;\n\t\t\tstag.Interior = xlml_parsexmltag(Rn[0]);\n\t\t\tbreak;\n\t\tcase 'protection' /*case 'Protection'*/: break;\n\n\t\tcase 'author' /*case 'Author'*/:\n\t\tcase 'title' /*case 'Title'*/:\n\t\tcase 'description' /*case 'Description'*/:\n\t\tcase 'created' /*case 'Created'*/:\n\t\tcase 'keywords' /*case 'Keywords'*/:\n\t\tcase 'subject' /*case 'Subject'*/:\n\t\tcase 'category' /*case 'Category'*/:\n\t\tcase 'company' /*case 'Company'*/:\n\t\tcase 'lastauthor' /*case 'LastAuthor'*/:\n\t\tcase 'lastsaved' /*case 'LastSaved'*/:\n\t\tcase 'lastprinted' /*case 'LastPrinted'*/:\n\t\tcase 'version' /*case 'Version'*/:\n\t\tcase 'revision' /*case 'Revision'*/:\n\t\tcase 'totaltime' /*case 'TotalTime'*/:\n\t\tcase 'hyperlinkbase' /*case 'HyperlinkBase'*/:\n\t\tcase 'manager' /*case 'Manager'*/:\n\t\tcase 'contentstatus' /*case 'ContentStatus'*/:\n\t\tcase 'identifier' /*case 'Identifier'*/:\n\t\tcase 'language' /*case 'Language'*/:\n\t\tcase 'appname' /*case 'AppName'*/:\n\t\t\tif(Rn[0].slice(-2) === \"/>\") break;\n\t\t\telse if(Rn[1]===\"/\") xlml_set_prop(Props, raw_Rn3, str.slice(pidx, Rn.index));\n\t\t\telse pidx = Rn.index + Rn[0].length;\n\t\t\tbreak;\n\t\tcase 'paragraphs' /*case 'Paragraphs'*/: break;\n\n\t\tcase 'styles' /*case 'Styles'*/:\n\t\tcase 'workbook' /*case 'Workbook'*/:\n\t\t\tif(Rn[1]==='/'){if((tmp=state.pop())[0]!==Rn[3]) throw new Error(\"Bad state: \"+tmp.join(\"|\"));}\n\t\t\telse state.push([Rn[3], false]);\n\t\t\tbreak;\n\n\t\tcase 'comment' /*case 'Comment'*/:\n\t\t\tif(Rn[1]==='/'){\n\t\t\t\tif((tmp=state.pop())[0]!==Rn[3]) throw new Error(\"Bad state: \"+tmp.join(\"|\"));\n\t\t\t\txlml_clean_comment(comment);\n\t\t\t\tcomments.push(comment);\n\t\t\t} else {\n\t\t\t\tstate.push([Rn[3], false]);\n\t\t\t\ttmp = xlml_parsexmltag(Rn[0]);\n\t\t\t\tcomment = ({a:tmp.Author}/*:any*/);\n\t\t\t}\n\t\t\tbreak;\n\n\t\tcase 'autofilter' /*case 'AutoFilter'*/:\n\t\t\tif(Rn[1]==='/'){if((tmp=state.pop())[0]!==Rn[3]) throw new Error(\"Bad state: \"+tmp.join(\"|\"));}\n\t\t\telse if(Rn[0].charAt(Rn[0].length-2) !== '/') {\n\t\t\t\tvar AutoFilter = xlml_parsexmltag(Rn[0]);\n\t\t\t\tcursheet['!autofilter'] = { ref:rc_to_a1(AutoFilter.Range).replace(/\\$/g,\"\") };\n\t\t\t\tstate.push([Rn[3], true]);\n\t\t\t}\n\t\t\tbreak;\n\n\t\tcase 'name' /*case 'Name'*/: break;\n\n\t\tcase 'datavalidation' /*case 'DataValidation'*/:\n\t\t\tif(Rn[1]==='/'){\n\t\t\t\tif((tmp=state.pop())[0]!==Rn[3]) throw new Error(\"Bad state: \"+tmp.join(\"|\"));\n\t\t\t} else {\n\t\t\t\tif(Rn[0].charAt(Rn[0].length-2) !== '/') state.push([Rn[3], true]);\n\t\t\t}\n\t\t\tbreak;\n\n\t\tcase 'pixelsperinch' /*case 'PixelsPerInch'*/:\n\t\t\tbreak;\n\t\tcase 'componentoptions' /*case 'ComponentOptions'*/:\n\t\tcase 'documentproperties' /*case 'DocumentProperties'*/:\n\t\tcase 'customdocumentproperties' /*case 'CustomDocumentProperties'*/:\n\t\tcase 'officedocumentsettings' /*case 'OfficeDocumentSettings'*/:\n\t\tcase 'pivottable' /*case 'PivotTable'*/:\n\t\tcase 'pivotcache' /*case 'PivotCache'*/:\n\t\tcase 'names' /*case 'Names'*/:\n\t\tcase 'mapinfo' /*case 'MapInfo'*/:\n\t\tcase 'pagebreaks' /*case 'PageBreaks'*/:\n\t\tcase 'querytable' /*case 'QueryTable'*/:\n\t\tcase 'sorting' /*case 'Sorting'*/:\n\t\tcase 'schema' /*case 'Schema'*/: //case 'data' /*case 'data'*/:\n\t\tcase 'conditionalformatting' /*case 'ConditionalFormatting'*/:\n\t\tcase 'smarttagtype' /*case 'SmartTagType'*/:\n\t\tcase 'smarttags' /*case 'SmartTags'*/:\n\t\tcase 'excelworkbook' /*case 'ExcelWorkbook'*/:\n\t\tcase 'workbookoptions' /*case 'WorkbookOptions'*/:\n\t\tcase 'worksheetoptions' /*case 'WorksheetOptions'*/:\n\t\t\tif(Rn[1]==='/'){if((tmp=state.pop())[0]!==Rn[3]) throw new Error(\"Bad state: \"+tmp.join(\"|\"));}\n\t\t\telse if(Rn[0].charAt(Rn[0].length-2) !== '/') state.push([Rn[3], true]);\n\t\t\tbreak;\n\n\t\tcase 'null' /*case 'Null'*/: break;\n\n\t\tdefault:\n\t\t\t/* FODS file root is */\n\t\t\tif(state.length == 0 && Rn[3] == \"document\") return parse_fods(str, opts);\n\t\t\t/* UOS file root is */\n\t\t\tif(state.length == 0 && Rn[3] == \"uof\"/*\"UOF\"*/) return parse_fods(str, opts);\n\n\t\t\tvar seen = true;\n\t\t\tswitch(state[state.length-1][0]) {\n\t\t\t\t/* OfficeDocumentSettings */\n\t\t\t\tcase 'officedocumentsettings' /*case 'OfficeDocumentSettings'*/: switch(Rn[3]) {\n\t\t\t\t\tcase 'allowpng' /*case 'AllowPNG'*/: break;\n\t\t\t\t\tcase 'removepersonalinformation' /*case 'RemovePersonalInformation'*/: break;\n\t\t\t\t\tcase 'downloadcomponents' /*case 'DownloadComponents'*/: break;\n\t\t\t\t\tcase 'locationofcomponents' /*case 'LocationOfComponents'*/: break;\n\t\t\t\t\tcase 'colors' /*case 'Colors'*/: break;\n\t\t\t\t\tcase 'color' /*case 'Color'*/: break;\n\t\t\t\t\tcase 'index' /*case 'Index'*/: break;\n\t\t\t\t\tcase 'rgb' /*case 'RGB'*/: break;\n\t\t\t\t\tcase 'targetscreensize' /*case 'TargetScreenSize'*/: break;\n\t\t\t\t\tcase 'readonlyrecommended' /*case 'ReadOnlyRecommended'*/: break;\n\t\t\t\t\tdefault: seen = false;\n\t\t\t\t} break;\n\n\t\t\t\t/* ComponentOptions */\n\t\t\t\tcase 'componentoptions' /*case 'ComponentOptions'*/: switch(Rn[3]) {\n\t\t\t\t\tcase 'toolbar' /*case 'Toolbar'*/: break;\n\t\t\t\t\tcase 'hideofficelogo' /*case 'HideOfficeLogo'*/: break;\n\t\t\t\t\tcase 'spreadsheetautofit' /*case 'SpreadsheetAutoFit'*/: break;\n\t\t\t\t\tcase 'label' /*case 'Label'*/: break;\n\t\t\t\t\tcase 'caption' /*case 'Caption'*/: break;\n\t\t\t\t\tcase 'maxheight' /*case 'MaxHeight'*/: break;\n\t\t\t\t\tcase 'maxwidth' /*case 'MaxWidth'*/: break;\n\t\t\t\t\tcase 'nextsheetnumber' /*case 'NextSheetNumber'*/: break;\n\t\t\t\t\tdefault: seen = false;\n\t\t\t\t} break;\n\n\t\t\t\t/* ExcelWorkbook */\n\t\t\t\tcase 'excelworkbook' /*case 'ExcelWorkbook'*/: switch(Rn[3]) {\n\t\t\t\t\tcase 'date1904' /*case 'Date1904'*/:\n\t\t\t\t\t\t/*:: if(!Workbook.WBProps) Workbook.WBProps = {}; */\n\t\t\t\t\t\tWorkbook.WBProps.date1904 = true;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'windowheight' /*case 'WindowHeight'*/: break;\n\t\t\t\t\tcase 'windowwidth' /*case 'WindowWidth'*/: break;\n\t\t\t\t\tcase 'windowtopx' /*case 'WindowTopX'*/: break;\n\t\t\t\t\tcase 'windowtopy' /*case 'WindowTopY'*/: break;\n\t\t\t\t\tcase 'tabratio' /*case 'TabRatio'*/: break;\n\t\t\t\t\tcase 'protectstructure' /*case 'ProtectStructure'*/: break;\n\t\t\t\t\tcase 'protectwindow' /*case 'ProtectWindow'*/: break;\n\t\t\t\t\tcase 'protectwindows' /*case 'ProtectWindows'*/: break;\n\t\t\t\t\tcase 'activesheet' /*case 'ActiveSheet'*/: break;\n\t\t\t\t\tcase 'displayinknotes' /*case 'DisplayInkNotes'*/: break;\n\t\t\t\t\tcase 'firstvisiblesheet' /*case 'FirstVisibleSheet'*/: break;\n\t\t\t\t\tcase 'supbook' /*case 'SupBook'*/: break;\n\t\t\t\t\tcase 'sheetname' /*case 'SheetName'*/: break;\n\t\t\t\t\tcase 'sheetindex' /*case 'SheetIndex'*/: break;\n\t\t\t\t\tcase 'sheetindexfirst' /*case 'SheetIndexFirst'*/: break;\n\t\t\t\t\tcase 'sheetindexlast' /*case 'SheetIndexLast'*/: break;\n\t\t\t\t\tcase 'dll' /*case 'Dll'*/: break;\n\t\t\t\t\tcase 'acceptlabelsinformulas' /*case 'AcceptLabelsInFormulas'*/: break;\n\t\t\t\t\tcase 'donotsavelinkvalues' /*case 'DoNotSaveLinkValues'*/: break;\n\t\t\t\t\tcase 'iteration' /*case 'Iteration'*/: break;\n\t\t\t\t\tcase 'maxiterations' /*case 'MaxIterations'*/: break;\n\t\t\t\t\tcase 'maxchange' /*case 'MaxChange'*/: break;\n\t\t\t\t\tcase 'path' /*case 'Path'*/: break;\n\t\t\t\t\tcase 'xct' /*case 'Xct'*/: break;\n\t\t\t\t\tcase 'count' /*case 'Count'*/: break;\n\t\t\t\t\tcase 'selectedsheets' /*case 'SelectedSheets'*/: break;\n\t\t\t\t\tcase 'calculation' /*case 'Calculation'*/: break;\n\t\t\t\t\tcase 'uncalced' /*case 'Uncalced'*/: break;\n\t\t\t\t\tcase 'startupprompt' /*case 'StartupPrompt'*/: break;\n\t\t\t\t\tcase 'crn' /*case 'Crn'*/: break;\n\t\t\t\t\tcase 'externname' /*case 'ExternName'*/: break;\n\t\t\t\t\tcase 'formula' /*case 'Formula'*/: break;\n\t\t\t\t\tcase 'colfirst' /*case 'ColFirst'*/: break;\n\t\t\t\t\tcase 'collast' /*case 'ColLast'*/: break;\n\t\t\t\t\tcase 'wantadvise' /*case 'WantAdvise'*/: break;\n\t\t\t\t\tcase 'boolean' /*case 'Boolean'*/: break;\n\t\t\t\t\tcase 'error' /*case 'Error'*/: break;\n\t\t\t\t\tcase 'text' /*case 'Text'*/: break;\n\t\t\t\t\tcase 'ole' /*case 'OLE'*/: break;\n\t\t\t\t\tcase 'noautorecover' /*case 'NoAutoRecover'*/: break;\n\t\t\t\t\tcase 'publishobjects' /*case 'PublishObjects'*/: break;\n\t\t\t\t\tcase 'donotcalculatebeforesave' /*case 'DoNotCalculateBeforeSave'*/: break;\n\t\t\t\t\tcase 'number' /*case 'Number'*/: break;\n\t\t\t\t\tcase 'refmoder1c1' /*case 'RefModeR1C1'*/: break;\n\t\t\t\t\tcase 'embedsavesmarttags' /*case 'EmbedSaveSmartTags'*/: break;\n\t\t\t\t\tdefault: seen = false;\n\t\t\t\t} break;\n\n\t\t\t\t/* WorkbookOptions */\n\t\t\t\tcase 'workbookoptions' /*case 'WorkbookOptions'*/: switch(Rn[3]) {\n\t\t\t\t\tcase 'owcversion' /*case 'OWCVersion'*/: break;\n\t\t\t\t\tcase 'height' /*case 'Height'*/: break;\n\t\t\t\t\tcase 'width' /*case 'Width'*/: break;\n\t\t\t\t\tdefault: seen = false;\n\t\t\t\t} break;\n\n\t\t\t\t/* WorksheetOptions */\n\t\t\t\tcase 'worksheetoptions' /*case 'WorksheetOptions'*/: switch(Rn[3]) {\n\t\t\t\t\tcase 'visible' /*case 'Visible'*/:\n\t\t\t\t\t\tif(Rn[0].slice(-2) === \"/>\"){/* empty */}\n\t\t\t\t\t\telse if(Rn[1]===\"/\") switch(str.slice(pidx, Rn.index)) {\n\t\t\t\t\t\t\tcase \"SheetHidden\": wsprops.Hidden = 1; break;\n\t\t\t\t\t\t\tcase \"SheetVeryHidden\": wsprops.Hidden = 2; break;\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse pidx = Rn.index + Rn[0].length;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'header' /*case 'Header'*/:\n\t\t\t\t\t\tif(!cursheet['!margins']) default_margins(cursheet['!margins']={}, 'xlml');\n\t\t\t\t\t\tif(!isNaN(+parsexmltag(Rn[0]).Margin)) cursheet['!margins'].header = +parsexmltag(Rn[0]).Margin;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'footer' /*case 'Footer'*/:\n\t\t\t\t\t\tif(!cursheet['!margins']) default_margins(cursheet['!margins']={}, 'xlml');\n\t\t\t\t\t\tif(!isNaN(+parsexmltag(Rn[0]).Margin)) cursheet['!margins'].footer = +parsexmltag(Rn[0]).Margin;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'pagemargins' /*case 'PageMargins'*/:\n\t\t\t\t\t\tvar pagemargins = parsexmltag(Rn[0]);\n\t\t\t\t\t\tif(!cursheet['!margins']) default_margins(cursheet['!margins']={},'xlml');\n\t\t\t\t\t\tif(!isNaN(+pagemargins.Top)) cursheet['!margins'].top = +pagemargins.Top;\n\t\t\t\t\t\tif(!isNaN(+pagemargins.Left)) cursheet['!margins'].left = +pagemargins.Left;\n\t\t\t\t\t\tif(!isNaN(+pagemargins.Right)) cursheet['!margins'].right = +pagemargins.Right;\n\t\t\t\t\t\tif(!isNaN(+pagemargins.Bottom)) cursheet['!margins'].bottom = +pagemargins.Bottom;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'displayrighttoleft' /*case 'DisplayRightToLeft'*/:\n\t\t\t\t\t\tif(!Workbook.Views) Workbook.Views = [];\n\t\t\t\t\t\tif(!Workbook.Views[0]) Workbook.Views[0] = {};\n\t\t\t\t\t\tWorkbook.Views[0].RTL = true;\n\t\t\t\t\t\tbreak;\n\n\t\t\t\t\tcase 'freezepanes' /*case 'FreezePanes'*/: break;\n\t\t\t\t\tcase 'frozennosplit' /*case 'FrozenNoSplit'*/: break;\n\n\t\t\t\t\tcase 'splithorizontal' /*case 'SplitHorizontal'*/:\n\t\t\t\t\tcase 'splitvertical' /*case 'SplitVertical'*/:\n\t\t\t\t\t\tbreak;\n\n\t\t\t\t\tcase 'donotdisplaygridlines' /*case 'DoNotDisplayGridlines'*/:\n\t\t\t\t\t\tbreak;\n\n\t\t\t\t\tcase 'activerow' /*case 'ActiveRow'*/: break;\n\t\t\t\t\tcase 'activecol' /*case 'ActiveCol'*/: break;\n\t\t\t\t\tcase 'toprowbottompane' /*case 'TopRowBottomPane'*/: break;\n\t\t\t\t\tcase 'leftcolumnrightpane' /*case 'LeftColumnRightPane'*/: break;\n\n\t\t\t\t\tcase 'unsynced' /*case 'Unsynced'*/: break;\n\t\t\t\t\tcase 'print' /*case 'Print'*/: break;\n\t\t\t\t\tcase 'printerrors' /*case 'PrintErrors'*/: break;\n\t\t\t\t\tcase 'panes' /*case 'Panes'*/: break;\n\t\t\t\t\tcase 'scale' /*case 'Scale'*/: break;\n\t\t\t\t\tcase 'pane' /*case 'Pane'*/: break;\n\t\t\t\t\tcase 'number' /*case 'Number'*/: break;\n\t\t\t\t\tcase 'layout' /*case 'Layout'*/: break;\n\t\t\t\t\tcase 'pagesetup' /*case 'PageSetup'*/: break;\n\t\t\t\t\tcase 'selected' /*case 'Selected'*/: break;\n\t\t\t\t\tcase 'protectobjects' /*case 'ProtectObjects'*/: break;\n\t\t\t\t\tcase 'enableselection' /*case 'EnableSelection'*/: break;\n\t\t\t\t\tcase 'protectscenarios' /*case 'ProtectScenarios'*/: break;\n\t\t\t\t\tcase 'validprinterinfo' /*case 'ValidPrinterInfo'*/: break;\n\t\t\t\t\tcase 'horizontalresolution' /*case 'HorizontalResolution'*/: break;\n\t\t\t\t\tcase 'verticalresolution' /*case 'VerticalResolution'*/: break;\n\t\t\t\t\tcase 'numberofcopies' /*case 'NumberofCopies'*/: break;\n\t\t\t\t\tcase 'activepane' /*case 'ActivePane'*/: break;\n\t\t\t\t\tcase 'toprowvisible' /*case 'TopRowVisible'*/: break;\n\t\t\t\t\tcase 'leftcolumnvisible' /*case 'LeftColumnVisible'*/: break;\n\t\t\t\t\tcase 'fittopage' /*case 'FitToPage'*/: break;\n\t\t\t\t\tcase 'rangeselection' /*case 'RangeSelection'*/: break;\n\t\t\t\t\tcase 'papersizeindex' /*case 'PaperSizeIndex'*/: break;\n\t\t\t\t\tcase 'pagelayoutzoom' /*case 'PageLayoutZoom'*/: break;\n\t\t\t\t\tcase 'pagebreakzoom' /*case 'PageBreakZoom'*/: break;\n\t\t\t\t\tcase 'filteron' /*case 'FilterOn'*/: break;\n\t\t\t\t\tcase 'fitwidth' /*case 'FitWidth'*/: break;\n\t\t\t\t\tcase 'fitheight' /*case 'FitHeight'*/: break;\n\t\t\t\t\tcase 'commentslayout' /*case 'CommentsLayout'*/: break;\n\t\t\t\t\tcase 'zoom' /*case 'Zoom'*/: break;\n\t\t\t\t\tcase 'lefttoright' /*case 'LeftToRight'*/: break;\n\t\t\t\t\tcase 'gridlines' /*case 'Gridlines'*/: break;\n\t\t\t\t\tcase 'allowsort' /*case 'AllowSort'*/: break;\n\t\t\t\t\tcase 'allowfilter' /*case 'AllowFilter'*/: break;\n\t\t\t\t\tcase 'allowinsertrows' /*case 'AllowInsertRows'*/: break;\n\t\t\t\t\tcase 'allowdeleterows' /*case 'AllowDeleteRows'*/: break;\n\t\t\t\t\tcase 'allowinsertcols' /*case 'AllowInsertCols'*/: break;\n\t\t\t\t\tcase 'allowdeletecols' /*case 'AllowDeleteCols'*/: break;\n\t\t\t\t\tcase 'allowinserthyperlinks' /*case 'AllowInsertHyperlinks'*/: break;\n\t\t\t\t\tcase 'allowformatcells' /*case 'AllowFormatCells'*/: break;\n\t\t\t\t\tcase 'allowsizecols' /*case 'AllowSizeCols'*/: break;\n\t\t\t\t\tcase 'allowsizerows' /*case 'AllowSizeRows'*/: break;\n\t\t\t\t\tcase 'nosummaryrowsbelowdetail' /*case 'NoSummaryRowsBelowDetail'*/:\n\t\t\t\t\t\tif(!cursheet[\"!outline\"]) cursheet[\"!outline\"] = {};\n\t\t\t\t\t\tcursheet[\"!outline\"].above = true;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'tabcolorindex' /*case 'TabColorIndex'*/: break;\n\t\t\t\t\tcase 'donotdisplayheadings' /*case 'DoNotDisplayHeadings'*/: break;\n\t\t\t\t\tcase 'showpagelayoutzoom' /*case 'ShowPageLayoutZoom'*/: break;\n\t\t\t\t\tcase 'nosummarycolumnsrightdetail' /*case 'NoSummaryColumnsRightDetail'*/:\n\t\t\t\t\t\tif(!cursheet[\"!outline\"]) cursheet[\"!outline\"] = {};\n\t\t\t\t\t\tcursheet[\"!outline\"].left = true;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'blackandwhite' /*case 'BlackAndWhite'*/: break;\n\t\t\t\t\tcase 'donotdisplayzeros' /*case 'DoNotDisplayZeros'*/: break;\n\t\t\t\t\tcase 'displaypagebreak' /*case 'DisplayPageBreak'*/: break;\n\t\t\t\t\tcase 'rowcolheadings' /*case 'RowColHeadings'*/: break;\n\t\t\t\t\tcase 'donotdisplayoutline' /*case 'DoNotDisplayOutline'*/: break;\n\t\t\t\t\tcase 'noorientation' /*case 'NoOrientation'*/: break;\n\t\t\t\t\tcase 'allowusepivottables' /*case 'AllowUsePivotTables'*/: break;\n\t\t\t\t\tcase 'zeroheight' /*case 'ZeroHeight'*/: break;\n\t\t\t\t\tcase 'viewablerange' /*case 'ViewableRange'*/: break;\n\t\t\t\t\tcase 'selection' /*case 'Selection'*/: break;\n\t\t\t\t\tcase 'protectcontents' /*case 'ProtectContents'*/: break;\n\t\t\t\t\tdefault: seen = false;\n\t\t\t\t} break;\n\n\t\t\t\t/* PivotTable */\n\t\t\t\tcase 'pivottable' /*case 'PivotTable'*/: case 'pivotcache' /*case 'PivotCache'*/: switch(Rn[3]) {\n\t\t\t\t\tcase 'immediateitemsondrop' /*case 'ImmediateItemsOnDrop'*/: break;\n\t\t\t\t\tcase 'showpagemultipleitemlabel' /*case 'ShowPageMultipleItemLabel'*/: break;\n\t\t\t\t\tcase 'compactrowindent' /*case 'CompactRowIndent'*/: break;\n\t\t\t\t\tcase 'location' /*case 'Location'*/: break;\n\t\t\t\t\tcase 'pivotfield' /*case 'PivotField'*/: break;\n\t\t\t\t\tcase 'orientation' /*case 'Orientation'*/: break;\n\t\t\t\t\tcase 'layoutform' /*case 'LayoutForm'*/: break;\n\t\t\t\t\tcase 'layoutsubtotallocation' /*case 'LayoutSubtotalLocation'*/: break;\n\t\t\t\t\tcase 'layoutcompactrow' /*case 'LayoutCompactRow'*/: break;\n\t\t\t\t\tcase 'position' /*case 'Position'*/: break;\n\t\t\t\t\tcase 'pivotitem' /*case 'PivotItem'*/: break;\n\t\t\t\t\tcase 'datatype' /*case 'DataType'*/: break;\n\t\t\t\t\tcase 'datafield' /*case 'DataField'*/: break;\n\t\t\t\t\tcase 'sourcename' /*case 'SourceName'*/: break;\n\t\t\t\t\tcase 'parentfield' /*case 'ParentField'*/: break;\n\t\t\t\t\tcase 'ptlineitems' /*case 'PTLineItems'*/: break;\n\t\t\t\t\tcase 'ptlineitem' /*case 'PTLineItem'*/: break;\n\t\t\t\t\tcase 'countofsameitems' /*case 'CountOfSameItems'*/: break;\n\t\t\t\t\tcase 'item' /*case 'Item'*/: break;\n\t\t\t\t\tcase 'itemtype' /*case 'ItemType'*/: break;\n\t\t\t\t\tcase 'ptsource' /*case 'PTSource'*/: break;\n\t\t\t\t\tcase 'cacheindex' /*case 'CacheIndex'*/: break;\n\t\t\t\t\tcase 'consolidationreference' /*case 'ConsolidationReference'*/: break;\n\t\t\t\t\tcase 'filename' /*case 'FileName'*/: break;\n\t\t\t\t\tcase 'reference' /*case 'Reference'*/: break;\n\t\t\t\t\tcase 'nocolumngrand' /*case 'NoColumnGrand'*/: break;\n\t\t\t\t\tcase 'norowgrand' /*case 'NoRowGrand'*/: break;\n\t\t\t\t\tcase 'blanklineafteritems' /*case 'BlankLineAfterItems'*/: break;\n\t\t\t\t\tcase 'hidden' /*case 'Hidden'*/: break;\n\t\t\t\t\tcase 'subtotal' /*case 'Subtotal'*/: break;\n\t\t\t\t\tcase 'basefield' /*case 'BaseField'*/: break;\n\t\t\t\t\tcase 'mapchilditems' /*case 'MapChildItems'*/: break;\n\t\t\t\t\tcase 'function' /*case 'Function'*/: break;\n\t\t\t\t\tcase 'refreshonfileopen' /*case 'RefreshOnFileOpen'*/: break;\n\t\t\t\t\tcase 'printsettitles' /*case 'PrintSetTitles'*/: break;\n\t\t\t\t\tcase 'mergelabels' /*case 'MergeLabels'*/: break;\n\t\t\t\t\tcase 'defaultversion' /*case 'DefaultVersion'*/: break;\n\t\t\t\t\tcase 'refreshname' /*case 'RefreshName'*/: break;\n\t\t\t\t\tcase 'refreshdate' /*case 'RefreshDate'*/: break;\n\t\t\t\t\tcase 'refreshdatecopy' /*case 'RefreshDateCopy'*/: break;\n\t\t\t\t\tcase 'versionlastrefresh' /*case 'VersionLastRefresh'*/: break;\n\t\t\t\t\tcase 'versionlastupdate' /*case 'VersionLastUpdate'*/: break;\n\t\t\t\t\tcase 'versionupdateablemin' /*case 'VersionUpdateableMin'*/: break;\n\t\t\t\t\tcase 'versionrefreshablemin' /*case 'VersionRefreshableMin'*/: break;\n\t\t\t\t\tcase 'calculation' /*case 'Calculation'*/: break;\n\t\t\t\t\tdefault: seen = false;\n\t\t\t\t} break;\n\n\t\t\t\t/* PageBreaks */\n\t\t\t\tcase 'pagebreaks' /*case 'PageBreaks'*/: switch(Rn[3]) {\n\t\t\t\t\tcase 'colbreaks' /*case 'ColBreaks'*/: break;\n\t\t\t\t\tcase 'colbreak' /*case 'ColBreak'*/: break;\n\t\t\t\t\tcase 'rowbreaks' /*case 'RowBreaks'*/: break;\n\t\t\t\t\tcase 'rowbreak' /*case 'RowBreak'*/: break;\n\t\t\t\t\tcase 'colstart' /*case 'ColStart'*/: break;\n\t\t\t\t\tcase 'colend' /*case 'ColEnd'*/: break;\n\t\t\t\t\tcase 'rowend' /*case 'RowEnd'*/: break;\n\t\t\t\t\tdefault: seen = false;\n\t\t\t\t} break;\n\n\t\t\t\t/* AutoFilter */\n\t\t\t\tcase 'autofilter' /*case 'AutoFilter'*/: switch(Rn[3]) {\n\t\t\t\t\tcase 'autofiltercolumn' /*case 'AutoFilterColumn'*/: break;\n\t\t\t\t\tcase 'autofiltercondition' /*case 'AutoFilterCondition'*/: break;\n\t\t\t\t\tcase 'autofilterand' /*case 'AutoFilterAnd'*/: break;\n\t\t\t\t\tcase 'autofilteror' /*case 'AutoFilterOr'*/: break;\n\t\t\t\t\tdefault: seen = false;\n\t\t\t\t} break;\n\n\t\t\t\t/* QueryTable */\n\t\t\t\tcase 'querytable' /*case 'QueryTable'*/: switch(Rn[3]) {\n\t\t\t\t\tcase 'id' /*case 'Id'*/: break;\n\t\t\t\t\tcase 'autoformatfont' /*case 'AutoFormatFont'*/: break;\n\t\t\t\t\tcase 'autoformatpattern' /*case 'AutoFormatPattern'*/: break;\n\t\t\t\t\tcase 'querysource' /*case 'QuerySource'*/: break;\n\t\t\t\t\tcase 'querytype' /*case 'QueryType'*/: break;\n\t\t\t\t\tcase 'enableredirections' /*case 'EnableRedirections'*/: break;\n\t\t\t\t\tcase 'refreshedinxl9' /*case 'RefreshedInXl9'*/: break;\n\t\t\t\t\tcase 'urlstring' /*case 'URLString'*/: break;\n\t\t\t\t\tcase 'htmltables' /*case 'HTMLTables'*/: break;\n\t\t\t\t\tcase 'connection' /*case 'Connection'*/: break;\n\t\t\t\t\tcase 'commandtext' /*case 'CommandText'*/: break;\n\t\t\t\t\tcase 'refreshinfo' /*case 'RefreshInfo'*/: break;\n\t\t\t\t\tcase 'notitles' /*case 'NoTitles'*/: break;\n\t\t\t\t\tcase 'nextid' /*case 'NextId'*/: break;\n\t\t\t\t\tcase 'columninfo' /*case 'ColumnInfo'*/: break;\n\t\t\t\t\tcase 'overwritecells' /*case 'OverwriteCells'*/: break;\n\t\t\t\t\tcase 'donotpromptforfile' /*case 'DoNotPromptForFile'*/: break;\n\t\t\t\t\tcase 'textwizardsettings' /*case 'TextWizardSettings'*/: break;\n\t\t\t\t\tcase 'source' /*case 'Source'*/: break;\n\t\t\t\t\tcase 'number' /*case 'Number'*/: break;\n\t\t\t\t\tcase 'decimal' /*case 'Decimal'*/: break;\n\t\t\t\t\tcase 'thousandseparator' /*case 'ThousandSeparator'*/: break;\n\t\t\t\t\tcase 'trailingminusnumbers' /*case 'TrailingMinusNumbers'*/: break;\n\t\t\t\t\tcase 'formatsettings' /*case 'FormatSettings'*/: break;\n\t\t\t\t\tcase 'fieldtype' /*case 'FieldType'*/: break;\n\t\t\t\t\tcase 'delimiters' /*case 'Delimiters'*/: break;\n\t\t\t\t\tcase 'tab' /*case 'Tab'*/: break;\n\t\t\t\t\tcase 'comma' /*case 'Comma'*/: break;\n\t\t\t\t\tcase 'autoformatname' /*case 'AutoFormatName'*/: break;\n\t\t\t\t\tcase 'versionlastedit' /*case 'VersionLastEdit'*/: break;\n\t\t\t\t\tcase 'versionlastrefresh' /*case 'VersionLastRefresh'*/: break;\n\t\t\t\t\tdefault: seen = false;\n\t\t\t\t} break;\n\n\t\t\t\tcase 'datavalidation' /*case 'DataValidation'*/:\n\t\t\t\tswitch(Rn[3]) {\n\t\t\t\t\tcase 'range' /*case 'Range'*/: break;\n\n\t\t\t\t\tcase 'type' /*case 'Type'*/: break;\n\t\t\t\t\tcase 'min' /*case 'Min'*/: break;\n\t\t\t\t\tcase 'max' /*case 'Max'*/: break;\n\t\t\t\t\tcase 'sort' /*case 'Sort'*/: break;\n\t\t\t\t\tcase 'descending' /*case 'Descending'*/: break;\n\t\t\t\t\tcase 'order' /*case 'Order'*/: break;\n\t\t\t\t\tcase 'casesensitive' /*case 'CaseSensitive'*/: break;\n\t\t\t\t\tcase 'value' /*case 'Value'*/: break;\n\t\t\t\t\tcase 'errorstyle' /*case 'ErrorStyle'*/: break;\n\t\t\t\t\tcase 'errormessage' /*case 'ErrorMessage'*/: break;\n\t\t\t\t\tcase 'errortitle' /*case 'ErrorTitle'*/: break;\n\t\t\t\t\tcase 'inputmessage' /*case 'InputMessage'*/: break;\n\t\t\t\t\tcase 'inputtitle' /*case 'InputTitle'*/: break;\n\t\t\t\t\tcase 'combohide' /*case 'ComboHide'*/: break;\n\t\t\t\t\tcase 'inputhide' /*case 'InputHide'*/: break;\n\t\t\t\t\tcase 'condition' /*case 'Condition'*/: break;\n\t\t\t\t\tcase 'qualifier' /*case 'Qualifier'*/: break;\n\t\t\t\t\tcase 'useblank' /*case 'UseBlank'*/: break;\n\t\t\t\t\tcase 'value1' /*case 'Value1'*/: break;\n\t\t\t\t\tcase 'value2' /*case 'Value2'*/: break;\n\t\t\t\t\tcase 'format' /*case 'Format'*/: break;\n\n\t\t\t\t\tcase 'cellrangelist' /*case 'CellRangeList'*/: break;\n\t\t\t\t\tdefault: seen = false;\n\t\t\t\t} break;\n\n\t\t\t\tcase 'sorting' /*case 'Sorting'*/:\n\t\t\t\tcase 'conditionalformatting' /*case 'ConditionalFormatting'*/:\n\t\t\t\tswitch(Rn[3]) {\n\t\t\t\t\tcase 'range' /*case 'Range'*/: break;\n\t\t\t\t\tcase 'type' /*case 'Type'*/: break;\n\t\t\t\t\tcase 'min' /*case 'Min'*/: break;\n\t\t\t\t\tcase 'max' /*case 'Max'*/: break;\n\t\t\t\t\tcase 'sort' /*case 'Sort'*/: break;\n\t\t\t\t\tcase 'descending' /*case 'Descending'*/: break;\n\t\t\t\t\tcase 'order' /*case 'Order'*/: break;\n\t\t\t\t\tcase 'casesensitive' /*case 'CaseSensitive'*/: break;\n\t\t\t\t\tcase 'value' /*case 'Value'*/: break;\n\t\t\t\t\tcase 'errorstyle' /*case 'ErrorStyle'*/: break;\n\t\t\t\t\tcase 'errormessage' /*case 'ErrorMessage'*/: break;\n\t\t\t\t\tcase 'errortitle' /*case 'ErrorTitle'*/: break;\n\t\t\t\t\tcase 'cellrangelist' /*case 'CellRangeList'*/: break;\n\t\t\t\t\tcase 'inputmessage' /*case 'InputMessage'*/: break;\n\t\t\t\t\tcase 'inputtitle' /*case 'InputTitle'*/: break;\n\t\t\t\t\tcase 'combohide' /*case 'ComboHide'*/: break;\n\t\t\t\t\tcase 'inputhide' /*case 'InputHide'*/: break;\n\t\t\t\t\tcase 'condition' /*case 'Condition'*/: break;\n\t\t\t\t\tcase 'qualifier' /*case 'Qualifier'*/: break;\n\t\t\t\t\tcase 'useblank' /*case 'UseBlank'*/: break;\n\t\t\t\t\tcase 'value1' /*case 'Value1'*/: break;\n\t\t\t\t\tcase 'value2' /*case 'Value2'*/: break;\n\t\t\t\t\tcase 'format' /*case 'Format'*/: break;\n\t\t\t\t\tdefault: seen = false;\n\t\t\t\t} break;\n\n\t\t\t\t/* MapInfo (schema) */\n\t\t\t\tcase 'mapinfo' /*case 'MapInfo'*/: case 'schema' /*case 'Schema'*/: case 'data' /*case 'data'*/: switch(Rn[3]) {\n\t\t\t\t\tcase 'map' /*case 'Map'*/: break;\n\t\t\t\t\tcase 'entry' /*case 'Entry'*/: break;\n\t\t\t\t\tcase 'range' /*case 'Range'*/: break;\n\t\t\t\t\tcase 'xpath' /*case 'XPath'*/: break;\n\t\t\t\t\tcase 'field' /*case 'Field'*/: break;\n\t\t\t\t\tcase 'xsdtype' /*case 'XSDType'*/: break;\n\t\t\t\t\tcase 'filteron' /*case 'FilterOn'*/: break;\n\t\t\t\t\tcase 'aggregate' /*case 'Aggregate'*/: break;\n\t\t\t\t\tcase 'elementtype' /*case 'ElementType'*/: break;\n\t\t\t\t\tcase 'attributetype' /*case 'AttributeType'*/: break;\n\t\t\t\t/* These are from xsd (XML Schema Definition) */\n\t\t\t\t\tcase 'schema' /*case 'schema'*/:\n\t\t\t\t\tcase 'element' /*case 'element'*/:\n\t\t\t\t\tcase 'complextype' /*case 'complexType'*/:\n\t\t\t\t\tcase 'datatype' /*case 'datatype'*/:\n\t\t\t\t\tcase 'all' /*case 'all'*/:\n\t\t\t\t\tcase 'attribute' /*case 'attribute'*/:\n\t\t\t\t\tcase 'extends' /*case 'extends'*/: break;\n\n\t\t\t\t\tcase 'row' /*case 'row'*/: break;\n\t\t\t\t\tdefault: seen = false;\n\t\t\t\t} break;\n\n\t\t\t\t/* SmartTags (can be anything) */\n\t\t\t\tcase 'smarttags' /*case 'SmartTags'*/: break;\n\n\t\t\t\tdefault: seen = false; break;\n\t\t\t}\n\t\t\tif(seen) break;\n\t\t\t/* CustomDocumentProperties */\n\t\t\tif(Rn[3].match(/!\\[CDATA/)) break;\n\t\t\tif(!state[state.length-1][1]) throw 'Unrecognized tag: ' + Rn[3] + \"|\" + state.join(\"|\");\n\t\t\tif(state[state.length-1][0]===/*'CustomDocumentProperties'*/'customdocumentproperties') {\n\t\t\t\tif(Rn[0].slice(-2) === \"/>\") break;\n\t\t\t\telse if(Rn[1]===\"/\") xlml_set_custprop(Custprops, raw_Rn3, cp, str.slice(pidx, Rn.index));\n\t\t\t\telse { cp = Rn; pidx = Rn.index + Rn[0].length; }\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tif(opts.WTF) throw 'Unrecognized tag: ' + Rn[3] + \"|\" + state.join(\"|\");\n\t}\n\tvar out = ({}/*:any*/);\n\tif(!opts.bookSheets && !opts.bookProps) out.Sheets = sheets;\n\tout.SheetNames = sheetnames;\n\tout.Workbook = Workbook;\n\tout.SSF = dup(table_fmt);\n\tout.Props = Props;\n\tout.Custprops = Custprops;\n\tout.bookType = \"xlml\";\n\treturn out;\n}\n\nfunction parse_xlml(data/*:RawBytes|string*/, opts)/*:Workbook*/ {\n\tfix_read_opts(opts=opts||{});\n\tswitch(opts.type||\"base64\") {\n\t\tcase \"base64\": return parse_xlml_xml(Base64_decode(data), opts);\n\t\tcase \"binary\": case \"buffer\": case \"file\": return parse_xlml_xml(data, opts);\n\t\tcase \"array\": return parse_xlml_xml(a2s(data), opts);\n\t}\n\t/*:: throw new Error(\"unsupported type \" + opts.type); */\n}\n\n/* TODO */\nfunction write_props_xlml(wb/*:Workbook*/, opts)/*:string*/ {\n\tvar o/*:Array*/ = [];\n\t/* DocumentProperties */\n\tif(wb.Props) o.push(xlml_write_docprops(wb.Props, opts));\n\t/* CustomDocumentProperties */\n\tif(wb.Custprops) o.push(xlml_write_custprops(wb.Props, wb.Custprops, opts));\n\treturn o.join(\"\");\n}\n/* TODO */\nfunction write_wb_xlml(wb/*::, opts*/)/*:string*/ {\n\t/* OfficeDocumentSettings */\n\t/* ExcelWorkbook */\n\tif((((wb||{}).Workbook||{}).WBProps||{}).date1904) return '';\n\treturn \"\";\n}\n/* TODO */\nfunction write_sty_xlml(wb, opts)/*:string*/ {\n\t/* Styles */\n\tvar styles/*:Array*/ = [''];\n\topts.cellXfs.forEach(function(xf, id) {\n\t\tvar payload/*:Array*/ = [];\n\t\tpayload.push(writextag('NumberFormat', null, {\"ss:Format\": escapexml(table_fmt[xf.numFmtId])}));\n\n\t\tvar o = /*::(*/{\"ss:ID\": \"s\" + (21+id)}/*:: :any)*/;\n\t\tstyles.push(writextag('Style', payload.join(\"\"), o));\n\t});\n\treturn writextag(\"Styles\", styles.join(\"\"));\n}\nfunction write_name_xlml(n) { return writextag(\"NamedRange\", null, {\"ss:Name\": n.Name.slice(0,6) == \"_xlnm.\" ? n.Name.slice(6) : n.Name, \"ss:RefersTo\":\"=\" + a1_to_rc(n.Ref, {r:0,c:0})}); }\nfunction write_names_xlml(wb/*::, opts*/)/*:string*/ {\n\tif(!((wb||{}).Workbook||{}).Names) return \"\";\n\t/*:: if(!wb || !wb.Workbook || !wb.Workbook.Names) throw new Error(\"unreachable\"); */\n\tvar names/*:Array*/ = wb.Workbook.Names;\n\tvar out/*:Array*/ = [];\n\tfor(var i = 0; i < names.length; ++i) {\n\t\tvar n = names[i];\n\t\tif(n.Sheet != null) continue;\n\t\tif(n.Name.match(/^_xlfn\\./)) continue;\n\t\tout.push(write_name_xlml(n));\n\t}\n\treturn writextag(\"Names\", out.join(\"\"));\n}\nfunction write_ws_xlml_names(ws/*:Worksheet*/, opts, idx/*:number*/, wb/*:Workbook*/)/*:string*/ {\n\tif(!ws) return \"\";\n\tif(!((wb||{}).Workbook||{}).Names) return \"\";\n\t/*:: if(!wb || !wb.Workbook || !wb.Workbook.Names) throw new Error(\"unreachable\"); */\n\tvar names/*:Array*/ = wb.Workbook.Names;\n\tvar out/*:Array*/ = [];\n\tfor(var i = 0; i < names.length; ++i) {\n\t\tvar n = names[i];\n\t\tif(n.Sheet != idx) continue;\n\t\t/*switch(n.Name) {\n\t\t\tcase \"_\": continue;\n\t\t}*/\n\t\tif(n.Name.match(/^_xlfn\\./)) continue;\n\t\tout.push(write_name_xlml(n));\n\t}\n\treturn out.join(\"\");\n}\n/* WorksheetOptions */\nfunction write_ws_xlml_wsopts(ws/*:Worksheet*/, opts, idx/*:number*/, wb/*:Workbook*/)/*:string*/ {\n\tif(!ws) return \"\";\n\tvar o/*:Array*/ = [];\n\t/* NOTE: spec technically allows any order, but stick with implied order */\n\n\t/* FitToPage */\n\t/* DoNotDisplayColHeaders */\n\t/* DoNotDisplayRowHeaders */\n\t/* ViewableRange */\n\t/* Selection */\n\t/* GridlineColor */\n\t/* Name */\n\t/* ExcelWorksheetType */\n\t/* IntlMacro */\n\t/* Unsynced */\n\t/* Selected */\n\t/* CodeName */\n\n\tif(ws['!margins']) {\n\t\to.push(\"\");\n\t\tif(ws['!margins'].header) o.push(writextag(\"Header\", null, {'x:Margin':ws['!margins'].header}));\n\t\tif(ws['!margins'].footer) o.push(writextag(\"Footer\", null, {'x:Margin':ws['!margins'].footer}));\n\t\to.push(writextag(\"PageMargins\", null, {\n\t\t\t'x:Bottom': ws['!margins'].bottom || \"0.75\",\n\t\t\t'x:Left': ws['!margins'].left || \"0.7\",\n\t\t\t'x:Right': ws['!margins'].right || \"0.7\",\n\t\t\t'x:Top': ws['!margins'].top || \"0.75\"\n\t\t}));\n\t\to.push(\"\");\n\t}\n\n\t/* PageSetup */\n\t/* DisplayPageBreak */\n\t/* TransitionExpressionEvaluation */\n\t/* TransitionFormulaEntry */\n\t/* Print */\n\t/* Zoom */\n\t/* PageLayoutZoom */\n\t/* PageBreakZoom */\n\t/* ShowPageBreakZoom */\n\t/* DefaultRowHeight */\n\t/* DefaultColumnWidth */\n\t/* StandardWidth */\n\n\tif(wb && wb.Workbook && wb.Workbook.Sheets && wb.Workbook.Sheets[idx]) {\n\t\t/* Visible */\n\t\tif(wb.Workbook.Sheets[idx].Hidden) o.push(writextag(\"Visible\", (wb.Workbook.Sheets[idx].Hidden == 1 ? \"SheetHidden\" : \"SheetVeryHidden\"), {}));\n\t\telse {\n\t\t\t/* Selected */\n\t\t\tfor(var i = 0; i < idx; ++i) if(wb.Workbook.Sheets[i] && !wb.Workbook.Sheets[i].Hidden) break;\n\t\t\tif(i == idx) o.push(\"\");\n\t\t}\n\t}\n\n\t/* LeftColumnVisible */\n\n\tif(((((wb||{}).Workbook||{}).Views||[])[0]||{}).RTL) o.push(\"\");\n\n\t/* GridlineColorIndex */\n\t/* DisplayFormulas */\n\t/* DoNotDisplayGridlines */\n\t/* DoNotDisplayHeadings */\n\t/* DoNotDisplayOutline */\n\t/* ApplyAutomaticOutlineStyles */\n\t/* NoSummaryRowsBelowDetail */\n\t/* NoSummaryColumnsRightDetail */\n\t/* DoNotDisplayZeros */\n\t/* ActiveRow */\n\t/* ActiveColumn */\n\t/* FilterOn */\n\t/* RangeSelection */\n\t/* TopRowVisible */\n\t/* TopRowBottomPane */\n\t/* LeftColumnRightPane */\n\t/* ActivePane */\n\t/* SplitHorizontal */\n\t/* SplitVertical */\n\t/* FreezePanes */\n\t/* FrozenNoSplit */\n\t/* TabColorIndex */\n\t/* Panes */\n\n\t/* NOTE: Password not supported in XLML Format */\n\tif(ws['!protect']) {\n\t\to.push(writetag(\"ProtectContents\", \"True\"));\n\t\tif(ws['!protect'].objects) o.push(writetag(\"ProtectObjects\", \"True\"));\n\t\tif(ws['!protect'].scenarios) o.push(writetag(\"ProtectScenarios\", \"True\"));\n\t\tif(ws['!protect'].selectLockedCells != null && !ws['!protect'].selectLockedCells) o.push(writetag(\"EnableSelection\", \"NoSelection\"));\n\t\telse if(ws['!protect'].selectUnlockedCells != null && !ws['!protect'].selectUnlockedCells) o.push(writetag(\"EnableSelection\", \"UnlockedCells\"));\n\t[\n\t\t[ \"formatCells\", \"AllowFormatCells\" ],\n\t\t[ \"formatColumns\", \"AllowSizeCols\" ],\n\t\t[ \"formatRows\", \"AllowSizeRows\" ],\n\t\t[ \"insertColumns\", \"AllowInsertCols\" ],\n\t\t[ \"insertRows\", \"AllowInsertRows\" ],\n\t\t[ \"insertHyperlinks\", \"AllowInsertHyperlinks\" ],\n\t\t[ \"deleteColumns\", \"AllowDeleteCols\" ],\n\t\t[ \"deleteRows\", \"AllowDeleteRows\" ],\n\t\t[ \"sort\", \"AllowSort\" ],\n\t\t[ \"autoFilter\", \"AllowFilter\" ],\n\t\t[ \"pivotTables\", \"AllowUsePivotTables\" ]\n\t].forEach(function(x) { if(ws['!protect'][x[0]]) o.push(\"<\"+x[1]+\"/>\"); });\n\t}\n\n\tif(o.length == 0) return \"\";\n\treturn writextag(\"WorksheetOptions\", o.join(\"\"), {xmlns:XLMLNS.x});\n}\nfunction write_ws_xlml_comment(comments/*:Array*/)/*:string*/ {\n\treturn comments.map(function(c) {\n\t\t// TODO: formatted text\n\t\tvar t = xlml_unfixstr(c.t||\"\");\n\t\tvar d =writextag(\"ss:Data\", t, {\"xmlns\":\"http://www.w3.org/TR/REC-html40\"});\n\t\treturn writextag(\"Comment\", d, {\"ss:Author\":c.a});\n\t}).join(\"\");\n}\nfunction write_ws_xlml_cell(cell, ref/*:string*/, ws, opts, idx/*:number*/, wb, addr)/*:string*/{\n\tif(!cell || (cell.v == undefined && cell.f == undefined)) return \"\";\n\n\tvar attr = {};\n\tif(cell.f) attr[\"ss:Formula\"] = \"=\" + escapexml(a1_to_rc(cell.f, addr));\n\tif(cell.F && cell.F.slice(0, ref.length) == ref) {\n\t\tvar end = decode_cell(cell.F.slice(ref.length + 1));\n\t\tattr[\"ss:ArrayRange\"] = \"RC:R\" + (end.r == addr.r ? \"\" : \"[\" + (end.r - addr.r) + \"]\") + \"C\" + (end.c == addr.c ? \"\" : \"[\" + (end.c - addr.c) + \"]\");\n\t}\n\n\tif(cell.l && cell.l.Target) {\n\t\tattr[\"ss:HRef\"] = escapexml(cell.l.Target);\n\t\tif(cell.l.Tooltip) attr[\"x:HRefScreenTip\"] = escapexml(cell.l.Tooltip);\n\t}\n\n\tif(ws['!merges']) {\n\t\tvar marr = ws['!merges'];\n\t\tfor(var mi = 0; mi != marr.length; ++mi) {\n\t\t\tif(marr[mi].s.c != addr.c || marr[mi].s.r != addr.r) continue;\n\t\t\tif(marr[mi].e.c > marr[mi].s.c) attr['ss:MergeAcross'] = marr[mi].e.c - marr[mi].s.c;\n\t\t\tif(marr[mi].e.r > marr[mi].s.r) attr['ss:MergeDown'] = marr[mi].e.r - marr[mi].s.r;\n\t\t}\n\t}\n\n\tvar t = \"\", p = \"\";\n\tswitch(cell.t) {\n\t\tcase 'z': if(!opts.sheetStubs) return \"\"; break;\n\t\tcase 'n': t = 'Number'; p = String(cell.v); break;\n\t\tcase 'b': t = 'Boolean'; p = (cell.v ? \"1\" : \"0\"); break;\n\t\tcase 'e': t = 'Error'; p = BErr[cell.v]; break;\n\t\tcase 'd': t = 'DateTime'; p = new Date(cell.v).toISOString(); if(cell.z == null) cell.z = cell.z || table_fmt[14]; break;\n\t\tcase 's': t = 'String'; p = escapexlml(cell.v||\"\"); break;\n\t}\n\t/* TODO: cell style */\n\tvar os = get_cell_style(opts.cellXfs, cell, opts);\n\tattr[\"ss:StyleID\"] = \"s\" + (21+os);\n\tattr[\"ss:Index\"] = addr.c + 1;\n\tvar _v = (cell.v != null ? p : \"\");\n\tvar m = cell.t == 'z' ? \"\" : ('' + _v + '');\n\n\tif((cell.c||[]).length > 0) m += write_ws_xlml_comment(cell.c);\n\n\treturn writextag(\"Cell\", m, attr);\n}\nfunction write_ws_xlml_row(R/*:number*/, row)/*:string*/ {\n\tvar o = '';\n}\n/* TODO */\nfunction write_ws_xlml_table(ws/*:Worksheet*/, opts, idx/*:number*/, wb/*:Workbook*/)/*:string*/ {\n\tif(!ws['!ref']) return \"\";\n\tvar range/*:Range*/ = safe_decode_range(ws['!ref']);\n\tvar marr/*:Array*/ = ws['!merges'] || [], mi = 0;\n\tvar o/*:Array*/ = [];\n\tif(ws['!cols']) ws['!cols'].forEach(function(n, i) {\n\t\tprocess_col(n);\n\t\tvar w = !!n.width;\n\t\tvar p = col_obj_w(i, n);\n\t\tvar k/*:any*/ = {\"ss:Index\":i+1};\n\t\tif(w) k['ss:Width'] = width2px(p.width);\n\t\tif(n.hidden) k['ss:Hidden']=\"1\";\n\t\to.push(writextag(\"Column\",null,k));\n\t});\n\tvar dense = ws[\"!data\"] != null;\n\tfor(var R = range.s.r; R <= range.e.r; ++R) {\n\t\tvar row = [write_ws_xlml_row(R, (ws['!rows']||[])[R])];\n\t\tfor(var C = range.s.c; C <= range.e.c; ++C) {\n\t\t\tvar skip = false;\n\t\t\tfor(mi = 0; mi != marr.length; ++mi) {\n\t\t\t\tif(marr[mi].s.c > C) continue;\n\t\t\t\tif(marr[mi].s.r > R) continue;\n\t\t\t\tif(marr[mi].e.c < C) continue;\n\t\t\t\tif(marr[mi].e.r < R) continue;\n\t\t\t\tif(marr[mi].s.c != C || marr[mi].s.r != R) skip = true;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tif(skip) continue;\n\t\t\tvar addr = {r:R,c:C};\n\t\t\tvar ref = encode_col(C) + encode_row(R), cell = dense ? (ws[\"!data\"][R]||[])[C] : ws[ref];\n\t\t\trow.push(write_ws_xlml_cell(cell, ref, ws, opts, idx, wb, addr));\n\t\t}\n\t\trow.push(\"\");\n\t\tif(row.length > 2) o.push(row.join(\"\"));\n\t}\n\treturn o.join(\"\");\n}\nfunction write_ws_xlml(idx/*:number*/, opts, wb/*:Workbook*/)/*:string*/ {\n\tvar o/*:Array*/ = [];\n\tvar s = wb.SheetNames[idx];\n\tvar ws = wb.Sheets[s];\n\n\tvar t/*:string*/ = ws ? write_ws_xlml_names(ws, opts, idx, wb) : \"\";\n\tif(t.length > 0) o.push(\"\" + t + \"\");\n\n\t/* Table */\n\tt = ws ? write_ws_xlml_table(ws, opts, idx, wb) : \"\";\n\tif(t.length > 0) o.push(\"
\" + t + \"
\");\n\n\t/* WorksheetOptions */\n\to.push(write_ws_xlml_wsopts(ws, opts, idx, wb));\n\n\tif(ws[\"!autofilter\"]) o.push('');\n\n\treturn o.join(\"\");\n}\nfunction write_xlml(wb, opts)/*:string*/ {\n\tif(!opts) opts = {};\n\tif(!wb.SSF) wb.SSF = dup(table_fmt);\n\tif(wb.SSF) {\n\t\tmake_ssf(); SSF_load_table(wb.SSF);\n\t\t// $FlowIgnore\n\t\topts.revssf = evert_num(wb.SSF); opts.revssf[wb.SSF[65535]] = 0;\n\t\topts.ssf = wb.SSF;\n\t\topts.cellXfs = [];\n\t\tget_cell_style(opts.cellXfs, {}, {revssf:{\"General\":0}});\n\t}\n\tvar d/*:Array*/ = [];\n\td.push(write_props_xlml(wb, opts));\n\td.push(write_wb_xlml(wb, opts));\n\td.push(\"\");\n\td.push(\"\");\n\tfor(var i = 0; i < wb.SheetNames.length; ++i)\n\t\td.push(writextag(\"Worksheet\", write_ws_xlml(i, opts, wb), {\"ss:Name\":escapexml(wb.SheetNames[i])}));\n\td[2] = write_sty_xlml(wb, opts);\n\td[3] = write_names_xlml(wb, opts);\n\treturn XML_HEADER + writextag(\"Workbook\", d.join(\"\"), {\n\t\t'xmlns': XLMLNS.ss,\n\t\t'xmlns:o': XLMLNS.o,\n\t\t'xmlns:x': XLMLNS.x,\n\t\t'xmlns:ss': XLMLNS.ss,\n\t\t'xmlns:dt': XLMLNS.dt,\n\t\t'xmlns:html': XLMLNS.html\n\t});\n}\n/* [MS-OLEDS] 2.3.8 CompObjStream */\nfunction parse_compobj(obj/*:CFBEntry*/) {\n\tvar v = {};\n\tvar o = obj.content;\n\t/*:: if(o == null) return; */\n\n\t/* [MS-OLEDS] 2.3.7 CompObjHeader -- All fields MUST be ignored */\n\to.l = 28;\n\n\tv.AnsiUserType = o.read_shift(0, \"lpstr-ansi\");\n\tv.AnsiClipboardFormat = parse_ClipboardFormatOrAnsiString(o);\n\n\tif(o.length - o.l <= 4) return v;\n\n\tvar m/*:number*/ = o.read_shift(4);\n\tif(m == 0 || m > 40) return v;\n\to.l-=4; v.Reserved1 = o.read_shift(0, \"lpstr-ansi\");\n\n\tif(o.length - o.l <= 4) return v;\n\tm = o.read_shift(4);\n\tif(m !== 0x71b239f4) return v;\n\tv.UnicodeClipboardFormat = parse_ClipboardFormatOrUnicodeString(o);\n\n\tm = o.read_shift(4);\n\tif(m == 0 || m > 40) return v;\n\to.l-=4; v.Reserved2 = o.read_shift(0, \"lpwstr\");\n}\n\n/*\n\tContinue logic for:\n\t- 2.4.58 Continue 0x003c\n\t- 2.4.59 ContinueBigName 0x043c\n\t- 2.4.60 ContinueFrt 0x0812\n\t- 2.4.61 ContinueFrt11 0x0875\n\t- 2.4.62 ContinueFrt12 0x087f\n*/\nvar CONTINUE_RT = [ 0x003c, 0x043c, 0x0812, 0x0875, 0x087f ];\nfunction slurp(RecordType, R, blob, length/*:number*/, opts)/*:any*/ {\n\tvar l = length;\n\tvar bufs = [];\n\tvar d = blob.slice(blob.l,blob.l+l);\n\tif(opts && opts.enc && opts.enc.insitu && d.length > 0) switch(RecordType) {\n\tcase 0x0009: case 0x0209: case 0x0409: case 0x0809/* BOF */: case 0x002F /* FilePass */: case 0x0195 /* FileLock */: case 0x00E1 /* InterfaceHdr */: case 0x0196 /* RRDInfo */: case 0x0138 /* RRDHead */: case 0x0194 /* UsrExcl */: case 0x000a /* EOF */:\n\t\tbreak;\n\tcase 0x0085 /* BoundSheet8 */:\n\t\tbreak;\n\tdefault:\n\t\topts.enc.insitu(d);\n\t}\n\tbufs.push(d);\n\tblob.l += l;\n\tvar nextrt = __readUInt16LE(blob,blob.l), next = XLSRecordEnum[nextrt];\n\tvar start = 0;\n\twhile(next != null && CONTINUE_RT.indexOf(nextrt) > -1) {\n\t\tl = __readUInt16LE(blob,blob.l+2);\n\t\tstart = blob.l + 4;\n\t\tif(nextrt == 0x0812 /* ContinueFrt */) start += 4;\n\t\telse if(nextrt == 0x0875 || nextrt == 0x087f) {\n\t\t\tstart += 12;\n\t\t}\n\t\td = blob.slice(start,blob.l+4+l);\n\t\tbufs.push(d);\n\t\tblob.l += 4+l;\n\t\tnext = (XLSRecordEnum[nextrt = __readUInt16LE(blob, blob.l)]);\n\t}\n\tvar b = (bconcat(bufs)/*:any*/);\n\tprep_blob(b, 0);\n\tvar ll = 0; b.lens = [];\n\tfor(var j = 0; j < bufs.length; ++j) { b.lens.push(ll); ll += bufs[j].length; }\n\tif(b.length < length) throw \"XLS Record 0x\" + RecordType.toString(16) + \" Truncated: \" + b.length + \" < \" + length;\n\treturn R.f(b, b.length, opts);\n}\n\nfunction safe_format_xf(p/*:any*/, opts/*:ParseOpts*/, date1904/*:?boolean*/) {\n\tif(p.t === 'z') return;\n\tif(!p.XF) return;\n\tvar fmtid = 0;\n\ttry {\n\t\tfmtid = p.z || p.XF.numFmtId || 0;\n\t\tif(opts.cellNF) p.z = table_fmt[fmtid];\n\t} catch(e) { if(opts.WTF) throw e; }\n\tif(!opts || opts.cellText !== false) try {\n\t\tif(p.t === 'e') { p.w = p.w || BErr[p.v]; }\n\t\telse if(fmtid === 0 || fmtid == \"General\") {\n\t\t\tif(p.t === 'n') {\n\t\t\t\tif((p.v|0) === p.v) p.w = p.v.toString(10);\n\t\t\t\telse p.w = SSF_general_num(p.v);\n\t\t\t}\n\t\t\telse p.w = SSF_general(p.v);\n\t\t}\n\t\telse p.w = SSF_format(fmtid,p.v, {date1904:!!date1904, dateNF: opts && opts.dateNF});\n\t} catch(e) { if(opts.WTF) throw e; }\n\tif(opts.cellDates && fmtid && p.t == 'n' && fmt_is_date(table_fmt[fmtid] || String(fmtid))) {\n\t\tvar _d = SSF_parse_date_code(p.v); if(_d) { p.t = 'd'; p.v = new Date(_d.y, _d.m-1,_d.d,_d.H,_d.M,_d.S,_d.u); }\n\t}\n}\n\nfunction make_cell(val, ixfe, t)/*:Cell*/ {\n\treturn ({v:val, ixfe:ixfe, t:t}/*:any*/);\n}\n\n// 2.3.2\nfunction parse_workbook(blob, options/*:ParseOpts*/)/*:Workbook*/ {\n\tvar wb = ({opts:{}}/*:any*/);\n\tvar Sheets = {};\n\tif(DENSE != null && options.dense == null) options.dense = DENSE;\n\tvar out/*:Worksheet*/ = ({}/*:any*/); if(options.dense) out[\"!data\"] = [];\n\tvar Directory = {};\n\tvar range/*:Range*/ = ({}/*:any*/);\n\tvar last_formula = null;\n\tvar sst/*:SST*/ = ([]/*:any*/);\n\tvar cur_sheet = \"\";\n\tvar Preamble = {};\n\tvar lastcell, last_cell = \"\", cc/*:Cell*/, cmnt, rngC, rngR;\n\tvar sharedf = {};\n\tvar arrayf/*:Array<[Range, string]>*/ = [];\n\tvar temp_val/*:Cell*/;\n\tvar country;\n\tvar XFs = []; /* XF records */\n\tvar palette/*:Array<[number, number, number]>*/ = [];\n\tvar Workbook/*:WBWBProps*/ = ({ Sheets:[], WBProps:{date1904:false}, Views:[{}] }/*:any*/), wsprops = {};\n\tvar get_rgb = function getrgb(icv/*:number*/)/*:[number, number, number]*/ {\n\t\tif(icv < 8) return XLSIcv[icv];\n\t\tif(icv < 64) return palette[icv-8] || XLSIcv[icv];\n\t\treturn XLSIcv[icv];\n\t};\n\tvar process_cell_style = function pcs(cell, line/*:any*/, options) {\n\t\tvar xfd = line.XF.data;\n\t\tif(!xfd || !xfd.patternType || !options || !options.cellStyles) return;\n\t\tline.s = ({}/*:any*/);\n\t\tline.s.patternType = xfd.patternType;\n\t\tvar t;\n\t\tif((t = rgb2Hex(get_rgb(xfd.icvFore)))) { line.s.fgColor = {rgb:t}; }\n\t\tif((t = rgb2Hex(get_rgb(xfd.icvBack)))) { line.s.bgColor = {rgb:t}; }\n\t};\n\tvar addcell = function addcell(cell/*:any*/, line/*:any*/, options/*:any*/) {\n\t\tif(file_depth > 1) return;\n\t\tif(options.sheetRows && cell.r >= options.sheetRows) return;\n\t\tif(options.cellStyles && line.XF && line.XF.data) process_cell_style(cell, line, options);\n\t\tdelete line.ixfe; delete line.XF;\n\t\tlastcell = cell;\n\t\tlast_cell = encode_cell(cell);\n\t\tif(!range || !range.s || !range.e) range = {s:{r:0,c:0},e:{r:0,c:0}};\n\t\tif(cell.r < range.s.r) range.s.r = cell.r;\n\t\tif(cell.c < range.s.c) range.s.c = cell.c;\n\t\tif(cell.r + 1 > range.e.r) range.e.r = cell.r + 1;\n\t\tif(cell.c + 1 > range.e.c) range.e.c = cell.c + 1;\n\t\tif(options.cellFormula && line.f) {\n\t\t\tfor(var afi = 0; afi < arrayf.length; ++afi) {\n\t\t\t\tif(arrayf[afi][0].s.c > cell.c || arrayf[afi][0].s.r > cell.r) continue;\n\t\t\t\tif(arrayf[afi][0].e.c < cell.c || arrayf[afi][0].e.r < cell.r) continue;\n\t\t\t\tline.F = encode_range(arrayf[afi][0]);\n\t\t\t\tif(arrayf[afi][0].s.c != cell.c || arrayf[afi][0].s.r != cell.r) delete line.f;\n\t\t\t\tif(line.f) line.f = \"\" + stringify_formula(arrayf[afi][1], range, cell, supbooks, opts);\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t\t{\n\t\t\tif(options.dense) {\n\t\t\t\tif(!out[\"!data\"][cell.r]) out[\"!data\"][cell.r] = [];\n\t\t\t\tout[\"!data\"][cell.r][cell.c] = line;\n\t\t\t} else out[last_cell] = line;\n\t\t}\n\t};\n\tvar opts = ({\n\t\tenc: false, // encrypted\n\t\tsbcch: 0, // cch in the preceding SupBook\n\t\tsnames: [], // sheetnames\n\t\tsharedf: sharedf, // shared formulae by address\n\t\tarrayf: arrayf, // array formulae array\n\t\trrtabid: [], // RRTabId\n\t\tlastuser: \"\", // Last User from WriteAccess\n\t\tbiff: 8, // BIFF version\n\t\tcodepage: 0, // CP from CodePage record\n\t\twinlocked: 0, // fLockWn from WinProtect\n\t\tcellStyles: !!options && !!options.cellStyles,\n\t\tWTF: !!options && !!options.wtf\n\t}/*:any*/);\n\tif(options.password) opts.password = options.password;\n\tvar themes;\n\tvar merges/*:Array*/ = [];\n\tvar objects = [];\n\tvar colinfo/*:Array*/ = [], rowinfo/*:Array*/ = [];\n\tvar seencol = false;\n\tvar supbooks = ([]/*:any*/); // 1-indexed, will hold extern names\n\tsupbooks.SheetNames = opts.snames;\n\tsupbooks.sharedf = opts.sharedf;\n\tsupbooks.arrayf = opts.arrayf;\n\tsupbooks.names = [];\n\tsupbooks.XTI = [];\n\tvar last_RT = 0;\n\tvar file_depth = 0; /* TODO: make a real stack */\n\tvar BIFF2Fmt = 0, BIFF2FmtTable/*:Array*/ = [];\n\tvar FilterDatabases = []; /* TODO: sort out supbooks and process elsewhere */\n\tvar last_lbl/*:?DefinedName*/;\n\n\t/* explicit override for some broken writers */\n\topts.codepage = 1200;\n\tset_cp(1200);\n\tvar seen_codepage = false;\n\twhile(blob.l < blob.length - 1) {\n\t\tvar s = blob.l;\n\t\tvar RecordType = blob.read_shift(2);\n\t\tif(RecordType === 0 && last_RT === 0x000a /* EOF */) break;\n\t\tvar length = (blob.l === blob.length ? 0 : blob.read_shift(2));\n\t\tvar R = XLSRecordEnum[RecordType];\n\t\tif(file_depth == 0 && [0x0009, 0x0209, 0x0409, 0x0809].indexOf(RecordType) == -1 /* BOF */) break;\n\t\t//console.log(RecordType.toString(16), RecordType, R, blob.l, length, blob.length);\n\t\t//if(!R) console.log(blob.slice(blob.l, blob.l + length));\n\t\tif(R && R.f) {\n\t\t\tif(options.bookSheets) {\n\t\t\t\tif(last_RT === 0x0085 /* BoundSheet8 */ && RecordType !== 0x0085 /* R.n !== 'BoundSheet8' */) break;\n\t\t\t}\n\t\t\tlast_RT = RecordType;\n\t\t\tif(R.r === 2 || R.r == 12) {\n\t\t\t\tvar rt = blob.read_shift(2); length -= 2;\n\t\t\t\tif(!opts.enc && rt !== RecordType && (((rt&0xFF)<<8)|(rt>>8)) !== RecordType) throw new Error(\"rt mismatch: \" + rt + \"!=\" + RecordType);\n\t\t\t\tif(R.r == 12){\n\t\t\t\t\tblob.l += 10; length -= 10;\n\t\t\t\t} // skip FRT\n\t\t\t}\n\t\t\t//console.error(R,blob.l,length,blob.length);\n\t\t\tvar val/*:any*/ = ({}/*:any*/);\n\t\t\tif(RecordType === 0x000a /* EOF */) val = /*::(*/R.f(blob, length, opts)/*:: :any)*/;\n\t\t\telse val = /*::(*/slurp(RecordType, R, blob, length, opts)/*:: :any)*/;\n\t\t\t/*:: val = (val:any); */\n\t\t\tif(file_depth == 0 && [0x0009, 0x0209, 0x0409, 0x0809].indexOf(last_RT) === -1 /* BOF */) continue;\n\t\t\tswitch(RecordType) {\n\t\t\t\tcase 0x0022 /* Date1904 */:\n\t\t\t\t\t/*:: if(!Workbook.WBProps) Workbook.WBProps = {}; */\n\t\t\t\t\twb.opts.Date1904 = Workbook.WBProps.date1904 = val; break;\n\t\t\t\tcase 0x0086 /* WriteProtect */: wb.opts.WriteProtect = true; break;\n\t\t\t\tcase 0x002f /* FilePass */:\n\t\t\t\t\tif(!opts.enc) blob.l = 0;\n\t\t\t\t\topts.enc = val;\n\t\t\t\t\tif(!options.password) throw new Error(\"File is password-protected\");\n\t\t\t\t\tif(val.valid == null) throw new Error(\"Encryption scheme unsupported\");\n\t\t\t\t\tif(!val.valid) throw new Error(\"Password is incorrect\");\n\t\t\t\t\tbreak;\n\t\t\t\tcase 0x005c /* WriteAccess */: opts.lastuser = val; break;\n\t\t\t\tcase 0x0042 /* CodePage */:\n\t\t\t\t\tvar cpval = Number(val);\n\t\t\t\t\t/* overrides based on test cases */\n\t\t\t\t\tswitch(cpval) {\n\t\t\t\t\t\tcase 0x5212: cpval = 1200; break;\n\t\t\t\t\t\tcase 0x8000: cpval = 10000; break;\n\t\t\t\t\t\tcase 0x8001: cpval = 1252; break;\n\t\t\t\t\t}\n\t\t\t\t\tset_cp(opts.codepage = cpval);\n\t\t\t\t\tseen_codepage = true;\n\t\t\t\t\tbreak;\n\t\t\t\tcase 0x013d /* RRTabId */: opts.rrtabid = val; break;\n\t\t\t\tcase 0x0019 /* WinProtect */: opts.winlocked = val; break;\n\t\t\t\tcase 0x01b7 /* RefreshAll */: wb.opts[\"RefreshAll\"] = val; break;\n\t\t\t\tcase 0x000c /* CalcCount */: wb.opts[\"CalcCount\"] = val; break;\n\t\t\t\tcase 0x0010 /* CalcDelta */: wb.opts[\"CalcDelta\"] = val; break;\n\t\t\t\tcase 0x0011 /* CalcIter */: wb.opts[\"CalcIter\"] = val; break;\n\t\t\t\tcase 0x000d /* CalcMode */: wb.opts[\"CalcMode\"] = val; break;\n\t\t\t\tcase 0x000e /* CalcPrecision */: wb.opts[\"CalcPrecision\"] = val; break;\n\t\t\t\tcase 0x005f /* CalcSaveRecalc */: wb.opts[\"CalcSaveRecalc\"] = val; break;\n\t\t\t\tcase 0x000f /* CalcRefMode */: opts.CalcRefMode = val; break; // TODO: implement R1C1\n\t\t\t\tcase 0x08a3 /* ForceFullCalculation */: wb.opts.FullCalc = val; break;\n\t\t\t\tcase 0x0081 /* WsBool */:\n\t\t\t\t\tif(val.fDialog) out[\"!type\"] = \"dialog\";\n\t\t\t\t\tif(!val.fBelow) (out[\"!outline\"] || (out[\"!outline\"] = {})).above = true;\n\t\t\t\t\tif(!val.fRight) (out[\"!outline\"] || (out[\"!outline\"] = {})).left = true;\n\t\t\t\t\tbreak; // TODO\n\t\t\t\tcase 0x00e0 /* XF */:\n\t\t\t\t\tXFs.push(val); break;\n\t\t\t\tcase 0x01ae /* SupBook */:\n\t\t\t\t\tsupbooks.push([val]);\n\t\t\t\t\tsupbooks[supbooks.length-1].XTI = [];\n\t\t\t\t\tbreak;\n\t\t\t\tcase 0x0023: case 0x0223 /* ExternName */:\n\t\t\t\t\tsupbooks[supbooks.length-1].push(val);\n\t\t\t\t\tbreak;\n\t\t\t\tcase 0x0018: case 0x0218 /* Lbl */:\n\t\t\t\t\tlast_lbl = ({\n\t\t\t\t\t\tName: val.Name,\n\t\t\t\t\t\tRef: stringify_formula(val.rgce,range,null,supbooks,opts)\n\t\t\t\t\t}/*:DefinedName*/);\n\t\t\t\t\tif(val.itab > 0) last_lbl.Sheet = val.itab - 1;\n\t\t\t\t\tsupbooks.names.push(last_lbl);\n\t\t\t\t\tif(!supbooks[0]) { supbooks[0] = []; supbooks[0].XTI = []; }\n\t\t\t\t\tsupbooks[supbooks.length-1].push(val);\n\t\t\t\t\tif(val.Name == \"_xlnm._FilterDatabase\" && val.itab > 0)\n\t\t\t\t\t\tif(val.rgce && val.rgce[0] && val.rgce[0][0] && val.rgce[0][0][0] == 'PtgArea3d')\n\t\t\t\t\t\t\tFilterDatabases[val.itab - 1] = { ref: encode_range(val.rgce[0][0][1][2]) };\n\t\t\t\t\tbreak;\n\t\t\t\tcase 0x0016 /* ExternCount */: opts.ExternCount = val; break;\n\t\t\t\tcase 0x0017 /* ExternSheet */:\n\t\t\t\t\tif(supbooks.length == 0) { supbooks[0] = []; supbooks[0].XTI = []; }\n\t\t\t\t\tsupbooks[supbooks.length - 1].XTI = supbooks[supbooks.length - 1].XTI.concat(val); supbooks.XTI = supbooks.XTI.concat(val); break;\n\t\t\t\tcase 0x0894 /* NameCmt */:\n\t\t\t\t\t/* TODO: search for correct name */\n\t\t\t\t\tif(opts.biff < 8) break;\n\t\t\t\t\tif(last_lbl != null) last_lbl.Comment = val[1];\n\t\t\t\t\tbreak;\n\t\t\t\tcase 0x0012 /* Protect */: out[\"!protect\"] = val; break; /* for sheet or book */\n\t\t\t\tcase 0x0013 /* Password */: if(val !== 0 && opts.WTF) console.error(\"Password verifier: \" + val); break;\n\t\t\t\tcase 0x0085 /* BoundSheet8 */: {\n\t\t\t\t\tDirectory[val.pos] = val;\n\t\t\t\t\topts.snames.push(val.name);\n\t\t\t\t} break;\n\t\t\t\tcase 0x000a /* EOF */: {\n\t\t\t\t\tif(--file_depth) break;\n\t\t\t\t\tif(range.e) {\n\t\t\t\t\t\tif(range.e.r > 0 && range.e.c > 0) {\n\t\t\t\t\t\t\trange.e.r--; range.e.c--;\n\t\t\t\t\t\t\tout[\"!ref\"] = encode_range(range);\n\t\t\t\t\t\t\tif(options.sheetRows && options.sheetRows <= range.e.r) {\n\t\t\t\t\t\t\t\tvar tmpri = range.e.r;\n\t\t\t\t\t\t\t\trange.e.r = options.sheetRows - 1;\n\t\t\t\t\t\t\t\tout[\"!fullref\"] = out[\"!ref\"];\n\t\t\t\t\t\t\t\tout[\"!ref\"] = encode_range(range);\n\t\t\t\t\t\t\t\trange.e.r = tmpri;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\trange.e.r++; range.e.c++;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif(merges.length > 0) out[\"!merges\"] = merges;\n\t\t\t\t\t\tif(objects.length > 0) out[\"!objects\"] = objects;\n\t\t\t\t\t\tif(colinfo.length > 0) out[\"!cols\"] = colinfo;\n\t\t\t\t\t\tif(rowinfo.length > 0) out[\"!rows\"] = rowinfo;\n\t\t\t\t\t\tWorkbook.Sheets.push(wsprops);\n\t\t\t\t\t}\n\t\t\t\t\tif(cur_sheet === \"\") Preamble = out; else Sheets[cur_sheet] = out;\n\t\t\t\t\tout = ({}/*:any*/); if(options.dense) out[\"!data\"] = [];\n\t\t\t\t} break;\n\t\t\t\tcase 0x0009: case 0x0209: case 0x0409: case 0x0809 /* BOF */: {\n\t\t\t\t\tif(opts.biff === 8) opts.biff = {\n\t\t\t\t\t\t/*::[*/0x0009/*::]*/:2,\n\t\t\t\t\t\t/*::[*/0x0209/*::]*/:3,\n\t\t\t\t\t\t/*::[*/0x0409/*::]*/:4\n\t\t\t\t\t}[RecordType] || {\n\t\t\t\t\t\t/*::[*/0x0200/*::]*/:2,\n\t\t\t\t\t\t/*::[*/0x0300/*::]*/:3,\n\t\t\t\t\t\t/*::[*/0x0400/*::]*/:4,\n\t\t\t\t\t\t/*::[*/0x0500/*::]*/:5,\n\t\t\t\t\t\t/*::[*/0x0600/*::]*/:8,\n\t\t\t\t\t\t/*::[*/0x0002/*::]*/:2,\n\t\t\t\t\t\t/*::[*/0x0007/*::]*/:2\n\t\t\t\t\t}[val.BIFFVer] || 8;\n\t\t\t\t\topts.biffguess = val.BIFFVer == 0;\n\t\t\t\t\tif(val.BIFFVer == 0 && val.dt == 0x1000) { opts.biff = 5; seen_codepage = true; set_cp(opts.codepage = 28591); }\n\t\t\t\t\tif(opts.biff == 8 && val.BIFFVer == 0 && val.dt == 16) opts.biff = 2;\n\t\t\t\t\tif(file_depth++) break;\n\t\t\t\t\tout = ({}/*:any*/); if(options.dense) out[\"!data\"] = [];\n\n\t\t\t\t\tif(opts.biff < 8 && !seen_codepage) { seen_codepage = true; set_cp(opts.codepage = options.codepage || 1252); }\n\n\t\t\t\t\tif(opts.biff < 5 || val.BIFFVer == 0 && val.dt == 0x1000) {\n\t\t\t\t\t\tif(cur_sheet === \"\") cur_sheet = \"Sheet1\";\n\t\t\t\t\t\trange = {s:{r:0,c:0},e:{r:0,c:0}};\n\t\t\t\t\t\t/* fake BoundSheet8 */\n\t\t\t\t\t\tvar fakebs8 = {pos: blob.l - length, name:cur_sheet};\n\t\t\t\t\t\tDirectory[fakebs8.pos] = fakebs8;\n\t\t\t\t\t\topts.snames.push(cur_sheet);\n\t\t\t\t\t}\n\t\t\t\t\telse cur_sheet = (Directory[s] || {name:\"\"}).name;\n\t\t\t\t\tif(val.dt == 0x20) out[\"!type\"] = \"chart\";\n\t\t\t\t\tif(val.dt == 0x40) out[\"!type\"] = \"macro\";\n\t\t\t\t\tmerges = [];\n\t\t\t\t\tobjects = [];\n\t\t\t\t\topts.arrayf = arrayf = [];\n\t\t\t\t\tcolinfo = []; rowinfo = [];\n\t\t\t\t\tseencol = false;\n\t\t\t\t\twsprops = {Hidden:(Directory[s]||{hs:0}).hs, name:cur_sheet };\n\t\t\t\t} break;\n\t\t\t\tcase 0x0203 /* Number */: case 0x0003 /* BIFF2NUM */: case 0x0002 /* BIFF2INT */: {\n\t\t\t\t\tif(out[\"!type\"] == \"chart\") if(options.dense ? (out[\"!data\"][val.r]||[])[val.c]: out[encode_col(val.c) + encode_row(val.r)]) ++val.c;\n\t\t\t\t\ttemp_val = ({ixfe: val.ixfe, XF: XFs[val.ixfe]||{}, v:val.val, t:'n'}/*:any*/);\n\t\t\t\t\tif(BIFF2Fmt > 0) temp_val.z = BIFF2FmtTable[(temp_val.ixfe>>8) & 0x3F];\n\t\t\t\t\tsafe_format_xf(temp_val, options, wb.opts.Date1904);\n\t\t\t\t\taddcell({c:val.c, r:val.r}, temp_val, options);\n\t\t\t\t} break;\n\t\t\t\tcase 0x0005: case 0x0205 /* BoolErr */: {\n\t\t\t\t\ttemp_val = ({ixfe: val.ixfe, XF: XFs[val.ixfe], v:val.val, t:val.t}/*:any*/);\n\t\t\t\t\tif(BIFF2Fmt > 0) temp_val.z = BIFF2FmtTable[(temp_val.ixfe>>8) & 0x3F];\n\t\t\t\t\tsafe_format_xf(temp_val, options, wb.opts.Date1904);\n\t\t\t\t\taddcell({c:val.c, r:val.r}, temp_val, options);\n\t\t\t\t} break;\n\t\t\t\tcase 0x027e /* RK */: {\n\t\t\t\t\ttemp_val = ({ixfe: val.ixfe, XF: XFs[val.ixfe], v:val.rknum, t:'n'}/*:any*/);\n\t\t\t\t\tif(BIFF2Fmt > 0) temp_val.z = BIFF2FmtTable[(temp_val.ixfe>>8) & 0x3F];\n\t\t\t\t\tsafe_format_xf(temp_val, options, wb.opts.Date1904);\n\t\t\t\t\taddcell({c:val.c, r:val.r}, temp_val, options);\n\t\t\t\t} break;\n\t\t\t\tcase 0x00bd /* MulRk */: {\n\t\t\t\t\tfor(var j = val.c; j <= val.C; ++j) {\n\t\t\t\t\t\tvar ixfe = val.rkrec[j-val.c][0];\n\t\t\t\t\t\ttemp_val= ({ixfe:ixfe, XF:XFs[ixfe], v:val.rkrec[j-val.c][1], t:'n'}/*:any*/);\n\t\t\t\t\t\tif(BIFF2Fmt > 0) temp_val.z = BIFF2FmtTable[(temp_val.ixfe>>8) & 0x3F];\n\t\t\t\t\t\tsafe_format_xf(temp_val, options, wb.opts.Date1904);\n\t\t\t\t\t\taddcell({c:j, r:val.r}, temp_val, options);\n\t\t\t\t\t}\n\t\t\t\t} break;\n\t\t\t\tcase 0x0006: case 0x0206: case 0x0406 /* Formula */: {\n\t\t\t\t\tif(val.val == 'String') { last_formula = val; break; }\n\t\t\t\t\ttemp_val = make_cell(val.val, val.cell.ixfe, val.tt);\n\t\t\t\t\ttemp_val.XF = XFs[temp_val.ixfe];\n\t\t\t\t\tif(options.cellFormula) {\n\t\t\t\t\t\tvar _f = val.formula;\n\t\t\t\t\t\tif(_f && _f[0] && _f[0][0] && _f[0][0][0] == 'PtgExp') {\n\t\t\t\t\t\t\tvar _fr = _f[0][0][1][0], _fc = _f[0][0][1][1];\n\t\t\t\t\t\t\tvar _fe = encode_cell({r:_fr, c:_fc});\n\t\t\t\t\t\t\tif(sharedf[_fe]) temp_val.f = \"\"+stringify_formula(val.formula,range,val.cell,supbooks, opts);\n\t\t\t\t\t\t\telse temp_val.F = ((options.dense ? (out[\"!data\"][_fr]||[])[_fc]: out[_fe]) || {}).F;\n\t\t\t\t\t\t} else temp_val.f = \"\"+stringify_formula(val.formula,range,val.cell,supbooks, opts);\n\t\t\t\t\t}\n\t\t\t\t\tif(BIFF2Fmt > 0) temp_val.z = BIFF2FmtTable[(temp_val.ixfe>>8) & 0x3F];\n\t\t\t\t\tsafe_format_xf(temp_val, options, wb.opts.Date1904);\n\t\t\t\t\taddcell(val.cell, temp_val, options);\n\t\t\t\t\tlast_formula = val;\n\t\t\t\t} break;\n\t\t\t\tcase 0x0007: case 0x0207 /* String */: {\n\t\t\t\t\tif(last_formula) { /* technically always true */\n\t\t\t\t\t\tlast_formula.val = val;\n\t\t\t\t\t\ttemp_val = make_cell(val, last_formula.cell.ixfe, 's');\n\t\t\t\t\t\ttemp_val.XF = XFs[temp_val.ixfe];\n\t\t\t\t\t\tif(options.cellFormula) {\n\t\t\t\t\t\t\ttemp_val.f = \"\"+stringify_formula(last_formula.formula, range, last_formula.cell, supbooks, opts);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif(BIFF2Fmt > 0) temp_val.z = BIFF2FmtTable[(temp_val.ixfe>>8) & 0x3F];\n\t\t\t\t\t\tsafe_format_xf(temp_val, options, wb.opts.Date1904);\n\t\t\t\t\t\taddcell(last_formula.cell, temp_val, options);\n\t\t\t\t\t\tlast_formula = null;\n\t\t\t\t\t} else throw new Error(\"String record expects Formula\");\n\t\t\t\t} break;\n\t\t\t\tcase 0x0021: case 0x0221 /* Array */: {\n\t\t\t\t\tarrayf.push(val);\n\t\t\t\t\tvar _arraystart = encode_cell(val[0].s);\n\t\t\t\t\tcc = options.dense ? (out[\"!data\"][val[0].s.r]||[])[val[0].s.c] : out[_arraystart];\n\t\t\t\t\tif(options.cellFormula && cc) {\n\t\t\t\t\t\tif(!last_formula) break; /* technically unreachable */\n\t\t\t\t\t\tif(!_arraystart || !cc) break;\n\t\t\t\t\t\tcc.f = \"\"+stringify_formula(val[1], range, val[0], supbooks, opts);\n\t\t\t\t\t\tcc.F = encode_range(val[0]);\n\t\t\t\t\t}\n\t\t\t\t} break;\n\t\t\t\tcase 0x04bc /* ShrFmla */: {\n\t\t\t\t\tif(!options.cellFormula) break;\n\t\t\t\t\tif(last_cell) {\n\t\t\t\t\t\t/* TODO: capture range */\n\t\t\t\t\t\tif(!last_formula) break; /* technically unreachable */\n\t\t\t\t\t\tsharedf[encode_cell(last_formula.cell)]= val[0];\n\t\t\t\t\t\tcc = options.dense ? (out[\"!data\"][last_formula.cell.r]||[])[last_formula.cell.c] : out[encode_cell(last_formula.cell)];\n\t\t\t\t\t\t(cc||{}).f = \"\"+stringify_formula(val[0], range, lastcell, supbooks, opts);\n\t\t\t\t\t}\n\t\t\t\t} break;\n\t\t\t\tcase 0x00fd /* LabelSst */:\n\t\t\t\t\ttemp_val=make_cell(sst[val.isst].t, val.ixfe, 's');\n\t\t\t\t\tif(sst[val.isst].h) temp_val.h = sst[val.isst].h;\n\t\t\t\t\ttemp_val.XF = XFs[temp_val.ixfe];\n\t\t\t\t\tif(BIFF2Fmt > 0) temp_val.z = BIFF2FmtTable[(temp_val.ixfe>>8) & 0x3F];\n\t\t\t\t\tsafe_format_xf(temp_val, options, wb.opts.Date1904);\n\t\t\t\t\taddcell({c:val.c, r:val.r}, temp_val, options);\n\t\t\t\t\tbreak;\n\t\t\t\tcase 0x0201 /* Blank */: if(options.sheetStubs) {\n\t\t\t\t\ttemp_val = ({ixfe: val.ixfe, XF: XFs[val.ixfe], t:'z'}/*:any*/);\n\t\t\t\t\tif(BIFF2Fmt > 0) temp_val.z = BIFF2FmtTable[(temp_val.ixfe>>8) & 0x3F];\n\t\t\t\t\tsafe_format_xf(temp_val, options, wb.opts.Date1904);\n\t\t\t\t\taddcell({c:val.c, r:val.r}, temp_val, options);\n\t\t\t\t} break;\n\t\t\t\tcase 0x00be /* MulBlank */: if(options.sheetStubs) {\n\t\t\t\t\tfor(var _j = val.c; _j <= val.C; ++_j) {\n\t\t\t\t\t\tvar _ixfe = val.ixfe[_j-val.c];\n\t\t\t\t\t\ttemp_val= ({ixfe:_ixfe, XF:XFs[_ixfe], t:'z'}/*:any*/);\n\t\t\t\t\t\tif(BIFF2Fmt > 0) temp_val.z = BIFF2FmtTable[(temp_val.ixfe>>8) & 0x3F];\n\t\t\t\t\t\tsafe_format_xf(temp_val, options, wb.opts.Date1904);\n\t\t\t\t\t\taddcell({c:_j, r:val.r}, temp_val, options);\n\t\t\t\t\t}\n\t\t\t\t} break;\n\t\t\t\tcase 0x00d6 /* RString */:\n\t\t\t\tcase 0x0204 /* Label */: case 0x0004 /* BIFF2STR */:\n\t\t\t\t\ttemp_val=make_cell(val.val, val.ixfe, 's');\n\t\t\t\t\ttemp_val.XF = XFs[temp_val.ixfe];\n\t\t\t\t\tif(BIFF2Fmt > 0) temp_val.z = BIFF2FmtTable[(temp_val.ixfe>>8) & 0x3F];\n\t\t\t\t\tsafe_format_xf(temp_val, options, wb.opts.Date1904);\n\t\t\t\t\taddcell({c:val.c, r:val.r}, temp_val, options);\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase 0x0000: case 0x0200 /* Dimensions */: {\n\t\t\t\t\tif(file_depth === 1) range = val; /* TODO: stack */\n\t\t\t\t} break;\n\t\t\t\tcase 0x00fc /* SST */: {\n\t\t\t\t\tsst = val;\n\t\t\t\t} break;\n\t\t\t\tcase 0x041e /* Format */: { /* val = [id, fmt] */\n\t\t\t\t\tif(opts.biff == 4) {\n\t\t\t\t\t\tBIFF2FmtTable[BIFF2Fmt++] = val[1];\n\t\t\t\t\t\tfor(var b4idx = 0; b4idx < BIFF2Fmt + 163; ++b4idx) if(table_fmt[b4idx] == val[1]) break;\n\t\t\t\t\t\tif(b4idx >= 163) SSF__load(val[1], BIFF2Fmt + 163);\n\t\t\t\t\t}\n\t\t\t\t\telse SSF__load(val[1], val[0]);\n\t\t\t\t} break;\n\t\t\t\tcase 0x001e /* BIFF2FORMAT */: {\n\t\t\t\t\tBIFF2FmtTable[BIFF2Fmt++] = val;\n\t\t\t\t\tfor(var b2idx = 0; b2idx < BIFF2Fmt + 163; ++b2idx) if(table_fmt[b2idx] == val) break;\n\t\t\t\t\tif(b2idx >= 163) SSF__load(val, BIFF2Fmt + 163);\n\t\t\t\t} break;\n\n\t\t\t\tcase 0x00e5 /* MergeCells */: merges = merges.concat(val); break;\n\n\t\t\t\tcase 0x005d /* Obj */: objects[val.cmo[0]] = opts.lastobj = val; break;\n\t\t\t\tcase 0x01b6 /* TxO */: opts.lastobj.TxO = val; break;\n\t\t\t\tcase 0x007f /* ImData */: opts.lastobj.ImData = val; break;\n\n\t\t\t\tcase 0x01b8 /* HLink */: {\n\t\t\t\t\tfor(rngR = val[0].s.r; rngR <= val[0].e.r; ++rngR)\n\t\t\t\t\t\tfor(rngC = val[0].s.c; rngC <= val[0].e.c; ++rngC) {\n\t\t\t\t\t\t\tcc = options.dense ? (out[\"!data\"][rngR]||[])[rngC] : out[encode_cell({c:rngC,r:rngR})];\n\t\t\t\t\t\t\tif(cc) cc.l = val[1];\n\t\t\t\t\t\t}\n\t\t\t\t} break;\n\t\t\t\tcase 0x0800 /* HLinkTooltip */: {\n\t\t\t\t\tfor(rngR = val[0].s.r; rngR <= val[0].e.r; ++rngR)\n\t\t\t\t\t\tfor(rngC = val[0].s.c; rngC <= val[0].e.c; ++rngC) {\n\t\t\t\t\t\t\tcc = options.dense ? (out[\"!data\"][rngR]||[])[rngC] : out[encode_cell({c:rngC,r:rngR})];\n\t\t\t\t\t\t\tif(cc && cc.l) cc.l.Tooltip = val[1];\n\t\t\t\t\t\t\t}\n\t\t\t\t} break;\n\t\t\t\tcase 0x001c /* Note */: {\n\t\t\t\t\tif(opts.biff <= 5 && opts.biff >= 2) break; /* TODO: BIFF5 */\n\t\t\t\t\tcc = options.dense ? (out[\"!data\"][val[0].r]||[])[val[0].c] : out[encode_cell(val[0])];\n\t\t\t\t\tvar noteobj = objects[val[2]];\n\t\t\t\t\tif(!cc) {\n\t\t\t\t\t\tif(options.dense) {\n\t\t\t\t\t\t\tif(!out[\"!data\"][val[0].r]) out[\"!data\"][val[0].r] = [];\n\t\t\t\t\t\t\tcc = out[\"!data\"][val[0].r][val[0].c] = ({t:\"z\"}/*:any*/);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tcc = out[encode_cell(val[0])] = ({t:\"z\"}/*:any*/);\n\t\t\t\t\t\t}\n\t\t\t\t\t\trange.e.r = Math.max(range.e.r, val[0].r);\n\t\t\t\t\t\trange.s.r = Math.min(range.s.r, val[0].r);\n\t\t\t\t\t\trange.e.c = Math.max(range.e.c, val[0].c);\n\t\t\t\t\t\trange.s.c = Math.min(range.s.c, val[0].c);\n\t\t\t\t\t}\n\t\t\t\t\tif(!cc.c) cc.c = [];\n\t\t\t\t\tcmnt = {a:val[1],t:noteobj.TxO.t};\n\t\t\t\t\tcc.c.push(cmnt);\n\t\t\t\t} break;\n\t\t\t\tcase 0x087d /* XFExt */: update_xfext(XFs[val.ixfe], val.ext); break;\n\t\t\t\tcase 0x007d /* ColInfo */: {\n\t\t\t\t\tif(!opts.cellStyles) break;\n\t\t\t\t\twhile(val.e >= val.s) {\n\t\t\t\t\t\tcolinfo[val.e--] = { width: val.w/256, level: (val.level || 0), hidden: !!(val.flags & 1) };\n\t\t\t\t\t\tif(!seencol) { seencol = true; find_mdw_colw(val.w/256); }\n\t\t\t\t\t\tprocess_col(colinfo[val.e+1]);\n\t\t\t\t\t}\n\t\t\t\t} break;\n\t\t\t\tcase 0x0208 /* Row */: {\n\t\t\t\t\tvar rowobj = {};\n\t\t\t\t\tif(val.level != null) { rowinfo[val.r] = rowobj; rowobj.level = val.level; }\n\t\t\t\t\tif(val.hidden) { rowinfo[val.r] = rowobj; rowobj.hidden = true; }\n\t\t\t\t\tif(val.hpt) {\n\t\t\t\t\t\trowinfo[val.r] = rowobj;\n\t\t\t\t\t\trowobj.hpt = val.hpt; rowobj.hpx = pt2px(val.hpt);\n\t\t\t\t\t}\n\t\t\t\t} break;\n\t\t\t\tcase 0x0026 /* LeftMargin */:\n\t\t\t\tcase 0x0027 /* RightMargin */:\n\t\t\t\tcase 0x0028 /* TopMargin */:\n\t\t\t\tcase 0x0029 /* BottomMargin */:\n\t\t\t\t\tif(!out['!margins']) default_margins(out['!margins'] = {});\n\t\t\t\t\tout['!margins'][({0x26: \"left\", 0x27:\"right\", 0x28:\"top\", 0x29:\"bottom\"})[RecordType]] = val;\n\t\t\t\t\tbreak;\n\t\t\t\tcase 0x00a1 /* Setup */: // TODO\n\t\t\t\t\tif(!out['!margins']) default_margins(out['!margins'] = {});\n\t\t\t\t\tout['!margins'].header = val.header;\n\t\t\t\t\tout['!margins'].footer = val.footer;\n\t\t\t\t\tbreak;\n\t\t\t\tcase 0x023e /* Window2 */: // TODO\n\t\t\t\t\t// $FlowIgnore\n\t\t\t\t\tif(val.RTL) Workbook.Views[0].RTL = true;\n\t\t\t\t\tbreak;\n\t\t\t\tcase 0x0092 /* Palette */: palette = val; break;\n\t\t\t\tcase 0x0896 /* Theme */: themes = val; break;\n\t\t\t\tcase 0x008c /* Country */: country = val; break;\n\t\t\t\tcase 0x01ba /* CodeName */: {\n\t\t\t\t\t/*:: if(!Workbook.WBProps) Workbook.WBProps = {}; */\n\t\t\t\t\tif(!cur_sheet) Workbook.WBProps.CodeName = val || \"ThisWorkbook\";\n\t\t\t\t\telse wsprops.CodeName = val || wsprops.name;\n\t\t\t\t} break;\n\t\t\t}\n\t\t} else {\n\t\t\tif(!R) console.error(\"Missing Info for XLS Record 0x\" + RecordType.toString(16));\n\t\t\tblob.l += length;\n\t\t}\n\t}\n\twb.SheetNames=keys(Directory).sort(function(a,b) { return Number(a) - Number(b); }).map(function(x){return Directory[x].name;});\n\tif(!options.bookSheets) wb.Sheets=Sheets;\n\tif(!wb.SheetNames.length && Preamble[\"!ref\"]) {\n\t\twb.SheetNames.push(\"Sheet1\");\n\t\t/*jshint -W069 */\n\t\tif(wb.Sheets) wb.Sheets[\"Sheet1\"] = Preamble;\n\t\t/*jshint +W069 */\n\t} else wb.Preamble=Preamble;\n\tif(wb.Sheets) FilterDatabases.forEach(function(r,i) { wb.Sheets[wb.SheetNames[i]]['!autofilter'] = r; });\n\twb.Strings = sst;\n\twb.SSF = dup(table_fmt);\n\tif(opts.enc) wb.Encryption = opts.enc;\n\tif(themes) wb.Themes = themes;\n\twb.Metadata = {};\n\tif(country !== undefined) wb.Metadata.Country = country;\n\tif(supbooks.names.length > 0) Workbook.Names = supbooks.names;\n\twb.Workbook = Workbook;\n\treturn wb;\n}\n\n/* TODO: split props*/\nvar PSCLSID = {\n\tSI: \"e0859ff2f94f6810ab9108002b27b3d9\",\n\tDSI: \"02d5cdd59c2e1b10939708002b2cf9ae\",\n\tUDI: \"05d5cdd59c2e1b10939708002b2cf9ae\"\n};\nfunction parse_xls_props(cfb/*:CFBContainer*/, props, o) {\n\t/* [MS-OSHARED] 2.3.3.2.2 Document Summary Information Property Set */\n\tvar DSI = CFB.find(cfb, '/!DocumentSummaryInformation');\n\tif(DSI && DSI.size > 0) try {\n\t\tvar DocSummary = parse_PropertySetStream(DSI, DocSummaryPIDDSI, PSCLSID.DSI);\n\t\tfor(var d in DocSummary) props[d] = DocSummary[d];\n\t} catch(e) {if(o.WTF) throw e;/* empty */}\n\n\t/* [MS-OSHARED] 2.3.3.2.1 Summary Information Property Set*/\n\tvar SI = CFB.find(cfb, '/!SummaryInformation');\n\tif(SI && SI.size > 0) try {\n\t\tvar Summary = parse_PropertySetStream(SI, SummaryPIDSI, PSCLSID.SI);\n\t\tfor(var s in Summary) if(props[s] == null) props[s] = Summary[s];\n\t} catch(e) {if(o.WTF) throw e;/* empty */}\n\n\tif(props.HeadingPairs && props.TitlesOfParts) {\n\t\tload_props_pairs(props.HeadingPairs, props.TitlesOfParts, props, o);\n\t\tdelete props.HeadingPairs; delete props.TitlesOfParts;\n\t}\n}\nfunction write_xls_props(wb/*:Workbook*/, cfb/*:CFBContainer*/) {\n\tvar DSEntries = [], SEntries = [], CEntries = [];\n\tvar i = 0, Keys;\n\tvar DocSummaryRE/*:{[key:string]:string}*/ = evert_key(DocSummaryPIDDSI, \"n\");\n\tvar SummaryRE/*:{[key:string]:string}*/ = evert_key(SummaryPIDSI, \"n\");\n\tif(wb.Props) {\n\t\tKeys = keys(wb.Props);\n\t\t// $FlowIgnore\n\t\tfor(i = 0; i < Keys.length; ++i) (Object.prototype.hasOwnProperty.call(DocSummaryRE, Keys[i]) ? DSEntries : Object.prototype.hasOwnProperty.call(SummaryRE, Keys[i]) ? SEntries : CEntries).push([Keys[i], wb.Props[Keys[i]]]);\n\t}\n\tif(wb.Custprops) {\n\t\tKeys = keys(wb.Custprops);\n\t\t// $FlowIgnore\n\t\tfor(i = 0; i < Keys.length; ++i) if(!Object.prototype.hasOwnProperty.call((wb.Props||{}), Keys[i])) (Object.prototype.hasOwnProperty.call(DocSummaryRE, Keys[i]) ? DSEntries : Object.prototype.hasOwnProperty.call(SummaryRE, Keys[i]) ? SEntries : CEntries).push([Keys[i], wb.Custprops[Keys[i]]]);\n\t}\n\tvar CEntries2 = [];\n\tfor(i = 0; i < CEntries.length; ++i) {\n\t\tif(XLSPSSkip.indexOf(CEntries[i][0]) > -1 || PseudoPropsPairs.indexOf(CEntries[i][0]) > -1) continue;\n\t\tif(CEntries[i][1] == null) continue;\n\t\tCEntries2.push(CEntries[i]);\n\t}\n\tif(SEntries.length) CFB.utils.cfb_add(cfb, \"/\\u0005SummaryInformation\", write_PropertySetStream(SEntries, PSCLSID.SI, SummaryRE, SummaryPIDSI));\n\tif(DSEntries.length || CEntries2.length) CFB.utils.cfb_add(cfb, \"/\\u0005DocumentSummaryInformation\", write_PropertySetStream(DSEntries, PSCLSID.DSI, DocSummaryRE, DocSummaryPIDDSI, CEntries2.length ? CEntries2 : null, PSCLSID.UDI));\n}\n\nfunction parse_xlscfb(cfb/*:any*/, options/*:?ParseOpts*/)/*:Workbook*/ {\nif(!options) options = {};\nfix_read_opts(options);\nreset_cp();\nif(options.codepage) set_ansi(options.codepage);\nvar CompObj/*:?CFBEntry*/, WB/*:?any*/;\nif(cfb.FullPaths) {\n\tif(CFB.find(cfb, '/encryption')) throw new Error(\"File is password-protected\");\n\tCompObj = CFB.find(cfb, '!CompObj');\n\tWB = CFB.find(cfb, '/Workbook') || CFB.find(cfb, '/Book');\n} else {\n\tswitch(options.type) {\n\t\tcase 'base64': cfb = s2a(Base64_decode(cfb)); break;\n\t\tcase 'binary': cfb = s2a(cfb); break;\n\t\tcase 'buffer': break;\n\t\tcase 'array': if(!Array.isArray(cfb)) cfb = Array.prototype.slice.call(cfb); break;\n\t}\n\tprep_blob(cfb, 0);\n\tWB = ({content: cfb}/*:any*/);\n}\nvar /*::CompObjP, */WorkbookP/*:: :Workbook = XLSX.utils.book_new(); */;\n\nvar _data/*:?any*/;\nif(CompObj) /*::CompObjP = */parse_compobj(CompObj);\nif(options.bookProps && !options.bookSheets) WorkbookP = ({}/*:any*/);\nelse/*:: if(cfb instanceof CFBContainer) */ {\n\tvar T = has_buf ? 'buffer' : 'array';\n\tif(WB && WB.content) WorkbookP = parse_workbook(WB.content, options);\n\t/* Quattro Pro 7-8 */\n\telse if((_data=CFB.find(cfb, 'PerfectOffice_MAIN')) && _data.content) WorkbookP = WK_.to_workbook(_data.content, (options.type = T, options));\n\t/* Quattro Pro 9 */\n\telse if((_data=CFB.find(cfb, 'NativeContent_MAIN')) && _data.content) WorkbookP = WK_.to_workbook(_data.content, (options.type = T, options));\n\t/* Works 4 for Mac */\n\telse if((_data=CFB.find(cfb, 'MN0')) && _data.content) throw new Error(\"Unsupported Works 4 for Mac file\");\n\telse throw new Error(\"Cannot find Workbook stream\");\n\tif(options.bookVBA && cfb.FullPaths && CFB.find(cfb, '/_VBA_PROJECT_CUR/VBA/dir')) WorkbookP.vbaraw = make_vba_xls(cfb);\n}\n\nvar props = {};\nif(cfb.FullPaths) parse_xls_props(/*::((*/cfb/*:: :any):CFBContainer)*/, props, options);\n\nWorkbookP.Props = WorkbookP.Custprops = props; /* TODO: split up properties */\nif(options.bookFiles) WorkbookP.cfb = cfb;\n/*WorkbookP.CompObjP = CompObjP; // TODO: storage? */\nreturn WorkbookP;\n}\n\n\nfunction write_xlscfb(wb/*:Workbook*/, opts/*:WriteOpts*/)/*:CFBContainer*/ {\n\tvar o = opts || {};\n\tvar cfb = CFB.utils.cfb_new({root:\"R\"});\n\tvar wbpath = \"/Workbook\";\n\tswitch(o.bookType || \"xls\") {\n\t\tcase \"xls\": o.bookType = \"biff8\";\n\t\t/* falls through */\n\t\tcase \"xla\": if(!o.bookType) o.bookType = \"xla\";\n\t\t/* falls through */\n\t\tcase \"biff8\": wbpath = \"/Workbook\"; o.biff = 8; break;\n\t\tcase \"biff5\": wbpath = \"/Book\"; o.biff = 5; break;\n\t\tdefault: throw new Error(\"invalid type \" + o.bookType + \" for XLS CFB\");\n\t}\n\tCFB.utils.cfb_add(cfb, wbpath, write_biff_buf(wb, o));\n\tif(o.biff == 8 && (wb.Props || wb.Custprops)) write_xls_props(wb, cfb);\n\t// TODO: SI, DSI, CO\n\tif(o.biff == 8 && wb.vbaraw) fill_vba_xls(cfb, CFB.read(wb.vbaraw, {type: typeof wb.vbaraw == \"string\" ? \"binary\" : \"buffer\"}));\n\treturn cfb;\n}\n/* [MS-XLSB] 2.3 Record Enumeration */\nvar XLSBRecordEnum = {\n\t/*::[*/0x0000/*::]*/: { /* n:\"BrtRowHdr\", */ f:parse_BrtRowHdr },\n\t/*::[*/0x0001/*::]*/: { /* n:\"BrtCellBlank\", */ f:parse_BrtCellBlank },\n\t/*::[*/0x0002/*::]*/: { /* n:\"BrtCellRk\", */ f:parse_BrtCellRk },\n\t/*::[*/0x0003/*::]*/: { /* n:\"BrtCellError\", */ f:parse_BrtCellError },\n\t/*::[*/0x0004/*::]*/: { /* n:\"BrtCellBool\", */ f:parse_BrtCellBool },\n\t/*::[*/0x0005/*::]*/: { /* n:\"BrtCellReal\", */ f:parse_BrtCellReal },\n\t/*::[*/0x0006/*::]*/: { /* n:\"BrtCellSt\", */ f:parse_BrtCellSt },\n\t/*::[*/0x0007/*::]*/: { /* n:\"BrtCellIsst\", */ f:parse_BrtCellIsst },\n\t/*::[*/0x0008/*::]*/: { /* n:\"BrtFmlaString\", */ f:parse_BrtFmlaString },\n\t/*::[*/0x0009/*::]*/: { /* n:\"BrtFmlaNum\", */ f:parse_BrtFmlaNum },\n\t/*::[*/0x000A/*::]*/: { /* n:\"BrtFmlaBool\", */ f:parse_BrtFmlaBool },\n\t/*::[*/0x000B/*::]*/: { /* n:\"BrtFmlaError\", */ f:parse_BrtFmlaError },\n\t/*::[*/0x000C/*::]*/: { /* n:\"BrtShortBlank\", */ f:parse_BrtShortBlank },\n\t/*::[*/0x000D/*::]*/: { /* n:\"BrtShortRk\", */ f:parse_BrtShortRk },\n\t/*::[*/0x000E/*::]*/: { /* n:\"BrtShortError\", */ f:parse_BrtShortError },\n\t/*::[*/0x000F/*::]*/: { /* n:\"BrtShortBool\", */ f:parse_BrtShortBool },\n\t/*::[*/0x0010/*::]*/: { /* n:\"BrtShortReal\", */ f:parse_BrtShortReal },\n\t/*::[*/0x0011/*::]*/: { /* n:\"BrtShortSt\", */ f:parse_BrtShortSt },\n\t/*::[*/0x0012/*::]*/: { /* n:\"BrtShortIsst\", */ f:parse_BrtShortIsst },\n\t/*::[*/0x0013/*::]*/: { /* n:\"BrtSSTItem\", */ f:parse_RichStr },\n\t/*::[*/0x0014/*::]*/: { /* n:\"BrtPCDIMissing\" */ },\n\t/*::[*/0x0015/*::]*/: { /* n:\"BrtPCDINumber\" */ },\n\t/*::[*/0x0016/*::]*/: { /* n:\"BrtPCDIBoolean\" */ },\n\t/*::[*/0x0017/*::]*/: { /* n:\"BrtPCDIError\" */ },\n\t/*::[*/0x0018/*::]*/: { /* n:\"BrtPCDIString\" */ },\n\t/*::[*/0x0019/*::]*/: { /* n:\"BrtPCDIDatetime\" */ },\n\t/*::[*/0x001A/*::]*/: { /* n:\"BrtPCDIIndex\" */ },\n\t/*::[*/0x001B/*::]*/: { /* n:\"BrtPCDIAMissing\" */ },\n\t/*::[*/0x001C/*::]*/: { /* n:\"BrtPCDIANumber\" */ },\n\t/*::[*/0x001D/*::]*/: { /* n:\"BrtPCDIABoolean\" */ },\n\t/*::[*/0x001E/*::]*/: { /* n:\"BrtPCDIAError\" */ },\n\t/*::[*/0x001F/*::]*/: { /* n:\"BrtPCDIAString\" */ },\n\t/*::[*/0x0020/*::]*/: { /* n:\"BrtPCDIADatetime\" */ },\n\t/*::[*/0x0021/*::]*/: { /* n:\"BrtPCRRecord\" */ },\n\t/*::[*/0x0022/*::]*/: { /* n:\"BrtPCRRecordDt\" */ },\n\t/*::[*/0x0023/*::]*/: { /* n:\"BrtFRTBegin\", */ T:1 },\n\t/*::[*/0x0024/*::]*/: { /* n:\"BrtFRTEnd\", */ T:-1 },\n\t/*::[*/0x0025/*::]*/: { /* n:\"BrtACBegin\", */ T:1 },\n\t/*::[*/0x0026/*::]*/: { /* n:\"BrtACEnd\", */ T:-1 },\n\t/*::[*/0x0027/*::]*/: { /* n:\"BrtName\", */ f:parse_BrtName },\n\t/*::[*/0x0028/*::]*/: { /* n:\"BrtIndexRowBlock\" */ },\n\t/*::[*/0x002A/*::]*/: { /* n:\"BrtIndexBlock\" */ },\n\t/*::[*/0x002B/*::]*/: { /* n:\"BrtFont\", */ f:parse_BrtFont },\n\t/*::[*/0x002C/*::]*/: { /* n:\"BrtFmt\", */ f:parse_BrtFmt },\n\t/*::[*/0x002D/*::]*/: { /* n:\"BrtFill\", */ f:parse_BrtFill },\n\t/*::[*/0x002E/*::]*/: { /* n:\"BrtBorder\", */ f:parse_BrtBorder },\n\t/*::[*/0x002F/*::]*/: { /* n:\"BrtXF\", */ f:parse_BrtXF },\n\t/*::[*/0x0030/*::]*/: { /* n:\"BrtStyle\" */ },\n\t/*::[*/0x0031/*::]*/: { /* n:\"BrtCellMeta\", */ f:parse_Int32LE },\n\t/*::[*/0x0032/*::]*/: { /* n:\"BrtValueMeta\" */ },\n\t/*::[*/0x0033/*::]*/: { /* n:\"BrtMdb\" */ f:parse_BrtMdb },\n\t/*::[*/0x0034/*::]*/: { /* n:\"BrtBeginFmd\", */ T:1 },\n\t/*::[*/0x0035/*::]*/: { /* n:\"BrtEndFmd\", */ T:-1 },\n\t/*::[*/0x0036/*::]*/: { /* n:\"BrtBeginMdx\", */ T:1 },\n\t/*::[*/0x0037/*::]*/: { /* n:\"BrtEndMdx\", */ T:-1 },\n\t/*::[*/0x0038/*::]*/: { /* n:\"BrtBeginMdxTuple\", */ T:1 },\n\t/*::[*/0x0039/*::]*/: { /* n:\"BrtEndMdxTuple\", */ T:-1 },\n\t/*::[*/0x003A/*::]*/: { /* n:\"BrtMdxMbrIstr\" */ },\n\t/*::[*/0x003B/*::]*/: { /* n:\"BrtStr\" */ },\n\t/*::[*/0x003C/*::]*/: { /* n:\"BrtColInfo\", */ f:parse_ColInfo },\n\t/*::[*/0x003E/*::]*/: { /* n:\"BrtCellRString\", */ f:parse_BrtCellRString },\n\t/*::[*/0x003F/*::]*/: { /* n:\"BrtCalcChainItem$\", */ f:parse_BrtCalcChainItem$ },\n\t/*::[*/0x0040/*::]*/: { /* n:\"BrtDVal\", */ f:parse_BrtDVal },\n\t/*::[*/0x0041/*::]*/: { /* n:\"BrtSxvcellNum\" */ },\n\t/*::[*/0x0042/*::]*/: { /* n:\"BrtSxvcellStr\" */ },\n\t/*::[*/0x0043/*::]*/: { /* n:\"BrtSxvcellBool\" */ },\n\t/*::[*/0x0044/*::]*/: { /* n:\"BrtSxvcellErr\" */ },\n\t/*::[*/0x0045/*::]*/: { /* n:\"BrtSxvcellDate\" */ },\n\t/*::[*/0x0046/*::]*/: { /* n:\"BrtSxvcellNil\" */ },\n\t/*::[*/0x0080/*::]*/: { /* n:\"BrtFileVersion\" */ },\n\t/*::[*/0x0081/*::]*/: { /* n:\"BrtBeginSheet\", */ T:1 },\n\t/*::[*/0x0082/*::]*/: { /* n:\"BrtEndSheet\", */ T:-1 },\n\t/*::[*/0x0083/*::]*/: { /* n:\"BrtBeginBook\", */ T:1, f:parsenoop, p:0 },\n\t/*::[*/0x0084/*::]*/: { /* n:\"BrtEndBook\", */ T:-1 },\n\t/*::[*/0x0085/*::]*/: { /* n:\"BrtBeginWsViews\", */ T:1 },\n\t/*::[*/0x0086/*::]*/: { /* n:\"BrtEndWsViews\", */ T:-1 },\n\t/*::[*/0x0087/*::]*/: { /* n:\"BrtBeginBookViews\", */ T:1 },\n\t/*::[*/0x0088/*::]*/: { /* n:\"BrtEndBookViews\", */ T:-1 },\n\t/*::[*/0x0089/*::]*/: { /* n:\"BrtBeginWsView\", */ T:1, f:parse_BrtBeginWsView },\n\t/*::[*/0x008A/*::]*/: { /* n:\"BrtEndWsView\", */ T:-1 },\n\t/*::[*/0x008B/*::]*/: { /* n:\"BrtBeginCsViews\", */ T:1 },\n\t/*::[*/0x008C/*::]*/: { /* n:\"BrtEndCsViews\", */ T:-1 },\n\t/*::[*/0x008D/*::]*/: { /* n:\"BrtBeginCsView\", */ T:1 },\n\t/*::[*/0x008E/*::]*/: { /* n:\"BrtEndCsView\", */ T:-1 },\n\t/*::[*/0x008F/*::]*/: { /* n:\"BrtBeginBundleShs\", */ T:1 },\n\t/*::[*/0x0090/*::]*/: { /* n:\"BrtEndBundleShs\", */ T:-1 },\n\t/*::[*/0x0091/*::]*/: { /* n:\"BrtBeginSheetData\", */ T:1 },\n\t/*::[*/0x0092/*::]*/: { /* n:\"BrtEndSheetData\", */ T:-1 },\n\t/*::[*/0x0093/*::]*/: { /* n:\"BrtWsProp\", */ f:parse_BrtWsProp },\n\t/*::[*/0x0094/*::]*/: { /* n:\"BrtWsDim\", */ f:parse_BrtWsDim, p:16 },\n\t/*::[*/0x0097/*::]*/: { /* n:\"BrtPane\", */ f:parse_BrtPane },\n\t/*::[*/0x0098/*::]*/: { /* n:\"BrtSel\" */ },\n\t/*::[*/0x0099/*::]*/: { /* n:\"BrtWbProp\", */ f:parse_BrtWbProp },\n\t/*::[*/0x009A/*::]*/: { /* n:\"BrtWbFactoid\" */ },\n\t/*::[*/0x009B/*::]*/: { /* n:\"BrtFileRecover\" */ },\n\t/*::[*/0x009C/*::]*/: { /* n:\"BrtBundleSh\", */ f:parse_BrtBundleSh },\n\t/*::[*/0x009D/*::]*/: { /* n:\"BrtCalcProp\" */ },\n\t/*::[*/0x009E/*::]*/: { /* n:\"BrtBookView\" */ },\n\t/*::[*/0x009F/*::]*/: { /* n:\"BrtBeginSst\", */ T:1, f:parse_BrtBeginSst },\n\t/*::[*/0x00A0/*::]*/: { /* n:\"BrtEndSst\", */ T:-1 },\n\t/*::[*/0x00A1/*::]*/: { /* n:\"BrtBeginAFilter\", */ T:1, f:parse_UncheckedRfX },\n\t/*::[*/0x00A2/*::]*/: { /* n:\"BrtEndAFilter\", */ T:-1 },\n\t/*::[*/0x00A3/*::]*/: { /* n:\"BrtBeginFilterColumn\", */ T:1 },\n\t/*::[*/0x00A4/*::]*/: { /* n:\"BrtEndFilterColumn\", */ T:-1 },\n\t/*::[*/0x00A5/*::]*/: { /* n:\"BrtBeginFilters\", */ T:1 },\n\t/*::[*/0x00A6/*::]*/: { /* n:\"BrtEndFilters\", */ T:-1 },\n\t/*::[*/0x00A7/*::]*/: { /* n:\"BrtFilter\" */ },\n\t/*::[*/0x00A8/*::]*/: { /* n:\"BrtColorFilter\" */ },\n\t/*::[*/0x00A9/*::]*/: { /* n:\"BrtIconFilter\" */ },\n\t/*::[*/0x00AA/*::]*/: { /* n:\"BrtTop10Filter\" */ },\n\t/*::[*/0x00AB/*::]*/: { /* n:\"BrtDynamicFilter\" */ },\n\t/*::[*/0x00AC/*::]*/: { /* n:\"BrtBeginCustomFilters\", */ T:1 },\n\t/*::[*/0x00AD/*::]*/: { /* n:\"BrtEndCustomFilters\", */ T:-1 },\n\t/*::[*/0x00AE/*::]*/: { /* n:\"BrtCustomFilter\" */ },\n\t/*::[*/0x00AF/*::]*/: { /* n:\"BrtAFilterDateGroupItem\" */ },\n\t/*::[*/0x00B0/*::]*/: { /* n:\"BrtMergeCell\", */ f:parse_BrtMergeCell },\n\t/*::[*/0x00B1/*::]*/: { /* n:\"BrtBeginMergeCells\", */ T:1 },\n\t/*::[*/0x00B2/*::]*/: { /* n:\"BrtEndMergeCells\", */ T:-1 },\n\t/*::[*/0x00B3/*::]*/: { /* n:\"BrtBeginPivotCacheDef\", */ T:1 },\n\t/*::[*/0x00B4/*::]*/: { /* n:\"BrtEndPivotCacheDef\", */ T:-1 },\n\t/*::[*/0x00B5/*::]*/: { /* n:\"BrtBeginPCDFields\", */ T:1 },\n\t/*::[*/0x00B6/*::]*/: { /* n:\"BrtEndPCDFields\", */ T:-1 },\n\t/*::[*/0x00B7/*::]*/: { /* n:\"BrtBeginPCDField\", */ T:1 },\n\t/*::[*/0x00B8/*::]*/: { /* n:\"BrtEndPCDField\", */ T:-1 },\n\t/*::[*/0x00B9/*::]*/: { /* n:\"BrtBeginPCDSource\", */ T:1 },\n\t/*::[*/0x00BA/*::]*/: { /* n:\"BrtEndPCDSource\", */ T:-1 },\n\t/*::[*/0x00BB/*::]*/: { /* n:\"BrtBeginPCDSRange\", */ T:1 },\n\t/*::[*/0x00BC/*::]*/: { /* n:\"BrtEndPCDSRange\", */ T:-1 },\n\t/*::[*/0x00BD/*::]*/: { /* n:\"BrtBeginPCDFAtbl\", */ T:1 },\n\t/*::[*/0x00BE/*::]*/: { /* n:\"BrtEndPCDFAtbl\", */ T:-1 },\n\t/*::[*/0x00BF/*::]*/: { /* n:\"BrtBeginPCDIRun\", */ T:1 },\n\t/*::[*/0x00C0/*::]*/: { /* n:\"BrtEndPCDIRun\", */ T:-1 },\n\t/*::[*/0x00C1/*::]*/: { /* n:\"BrtBeginPivotCacheRecords\", */ T:1 },\n\t/*::[*/0x00C2/*::]*/: { /* n:\"BrtEndPivotCacheRecords\", */ T:-1 },\n\t/*::[*/0x00C3/*::]*/: { /* n:\"BrtBeginPCDHierarchies\", */ T:1 },\n\t/*::[*/0x00C4/*::]*/: { /* n:\"BrtEndPCDHierarchies\", */ T:-1 },\n\t/*::[*/0x00C5/*::]*/: { /* n:\"BrtBeginPCDHierarchy\", */ T:1 },\n\t/*::[*/0x00C6/*::]*/: { /* n:\"BrtEndPCDHierarchy\", */ T:-1 },\n\t/*::[*/0x00C7/*::]*/: { /* n:\"BrtBeginPCDHFieldsUsage\", */ T:1 },\n\t/*::[*/0x00C8/*::]*/: { /* n:\"BrtEndPCDHFieldsUsage\", */ T:-1 },\n\t/*::[*/0x00C9/*::]*/: { /* n:\"BrtBeginExtConnection\", */ T:1 },\n\t/*::[*/0x00CA/*::]*/: { /* n:\"BrtEndExtConnection\", */ T:-1 },\n\t/*::[*/0x00CB/*::]*/: { /* n:\"BrtBeginECDbProps\", */ T:1 },\n\t/*::[*/0x00CC/*::]*/: { /* n:\"BrtEndECDbProps\", */ T:-1 },\n\t/*::[*/0x00CD/*::]*/: { /* n:\"BrtBeginECOlapProps\", */ T:1 },\n\t/*::[*/0x00CE/*::]*/: { /* n:\"BrtEndECOlapProps\", */ T:-1 },\n\t/*::[*/0x00CF/*::]*/: { /* n:\"BrtBeginPCDSConsol\", */ T:1 },\n\t/*::[*/0x00D0/*::]*/: { /* n:\"BrtEndPCDSConsol\", */ T:-1 },\n\t/*::[*/0x00D1/*::]*/: { /* n:\"BrtBeginPCDSCPages\", */ T:1 },\n\t/*::[*/0x00D2/*::]*/: { /* n:\"BrtEndPCDSCPages\", */ T:-1 },\n\t/*::[*/0x00D3/*::]*/: { /* n:\"BrtBeginPCDSCPage\", */ T:1 },\n\t/*::[*/0x00D4/*::]*/: { /* n:\"BrtEndPCDSCPage\", */ T:-1 },\n\t/*::[*/0x00D5/*::]*/: { /* n:\"BrtBeginPCDSCPItem\", */ T:1 },\n\t/*::[*/0x00D6/*::]*/: { /* n:\"BrtEndPCDSCPItem\", */ T:-1 },\n\t/*::[*/0x00D7/*::]*/: { /* n:\"BrtBeginPCDSCSets\", */ T:1 },\n\t/*::[*/0x00D8/*::]*/: { /* n:\"BrtEndPCDSCSets\", */ T:-1 },\n\t/*::[*/0x00D9/*::]*/: { /* n:\"BrtBeginPCDSCSet\", */ T:1 },\n\t/*::[*/0x00DA/*::]*/: { /* n:\"BrtEndPCDSCSet\", */ T:-1 },\n\t/*::[*/0x00DB/*::]*/: { /* n:\"BrtBeginPCDFGroup\", */ T:1 },\n\t/*::[*/0x00DC/*::]*/: { /* n:\"BrtEndPCDFGroup\", */ T:-1 },\n\t/*::[*/0x00DD/*::]*/: { /* n:\"BrtBeginPCDFGItems\", */ T:1 },\n\t/*::[*/0x00DE/*::]*/: { /* n:\"BrtEndPCDFGItems\", */ T:-1 },\n\t/*::[*/0x00DF/*::]*/: { /* n:\"BrtBeginPCDFGRange\", */ T:1 },\n\t/*::[*/0x00E0/*::]*/: { /* n:\"BrtEndPCDFGRange\", */ T:-1 },\n\t/*::[*/0x00E1/*::]*/: { /* n:\"BrtBeginPCDFGDiscrete\", */ T:1 },\n\t/*::[*/0x00E2/*::]*/: { /* n:\"BrtEndPCDFGDiscrete\", */ T:-1 },\n\t/*::[*/0x00E3/*::]*/: { /* n:\"BrtBeginPCDSDTupleCache\", */ T:1 },\n\t/*::[*/0x00E4/*::]*/: { /* n:\"BrtEndPCDSDTupleCache\", */ T:-1 },\n\t/*::[*/0x00E5/*::]*/: { /* n:\"BrtBeginPCDSDTCEntries\", */ T:1 },\n\t/*::[*/0x00E6/*::]*/: { /* n:\"BrtEndPCDSDTCEntries\", */ T:-1 },\n\t/*::[*/0x00E7/*::]*/: { /* n:\"BrtBeginPCDSDTCEMembers\", */ T:1 },\n\t/*::[*/0x00E8/*::]*/: { /* n:\"BrtEndPCDSDTCEMembers\", */ T:-1 },\n\t/*::[*/0x00E9/*::]*/: { /* n:\"BrtBeginPCDSDTCEMember\", */ T:1 },\n\t/*::[*/0x00EA/*::]*/: { /* n:\"BrtEndPCDSDTCEMember\", */ T:-1 },\n\t/*::[*/0x00EB/*::]*/: { /* n:\"BrtBeginPCDSDTCQueries\", */ T:1 },\n\t/*::[*/0x00EC/*::]*/: { /* n:\"BrtEndPCDSDTCQueries\", */ T:-1 },\n\t/*::[*/0x00ED/*::]*/: { /* n:\"BrtBeginPCDSDTCQuery\", */ T:1 },\n\t/*::[*/0x00EE/*::]*/: { /* n:\"BrtEndPCDSDTCQuery\", */ T:-1 },\n\t/*::[*/0x00EF/*::]*/: { /* n:\"BrtBeginPCDSDTCSets\", */ T:1 },\n\t/*::[*/0x00F0/*::]*/: { /* n:\"BrtEndPCDSDTCSets\", */ T:-1 },\n\t/*::[*/0x00F1/*::]*/: { /* n:\"BrtBeginPCDSDTCSet\", */ T:1 },\n\t/*::[*/0x00F2/*::]*/: { /* n:\"BrtEndPCDSDTCSet\", */ T:-1 },\n\t/*::[*/0x00F3/*::]*/: { /* n:\"BrtBeginPCDCalcItems\", */ T:1 },\n\t/*::[*/0x00F4/*::]*/: { /* n:\"BrtEndPCDCalcItems\", */ T:-1 },\n\t/*::[*/0x00F5/*::]*/: { /* n:\"BrtBeginPCDCalcItem\", */ T:1 },\n\t/*::[*/0x00F6/*::]*/: { /* n:\"BrtEndPCDCalcItem\", */ T:-1 },\n\t/*::[*/0x00F7/*::]*/: { /* n:\"BrtBeginPRule\", */ T:1 },\n\t/*::[*/0x00F8/*::]*/: { /* n:\"BrtEndPRule\", */ T:-1 },\n\t/*::[*/0x00F9/*::]*/: { /* n:\"BrtBeginPRFilters\", */ T:1 },\n\t/*::[*/0x00FA/*::]*/: { /* n:\"BrtEndPRFilters\", */ T:-1 },\n\t/*::[*/0x00FB/*::]*/: { /* n:\"BrtBeginPRFilter\", */ T:1 },\n\t/*::[*/0x00FC/*::]*/: { /* n:\"BrtEndPRFilter\", */ T:-1 },\n\t/*::[*/0x00FD/*::]*/: { /* n:\"BrtBeginPNames\", */ T:1 },\n\t/*::[*/0x00FE/*::]*/: { /* n:\"BrtEndPNames\", */ T:-1 },\n\t/*::[*/0x00FF/*::]*/: { /* n:\"BrtBeginPName\", */ T:1 },\n\t/*::[*/0x0100/*::]*/: { /* n:\"BrtEndPName\", */ T:-1 },\n\t/*::[*/0x0101/*::]*/: { /* n:\"BrtBeginPNPairs\", */ T:1 },\n\t/*::[*/0x0102/*::]*/: { /* n:\"BrtEndPNPairs\", */ T:-1 },\n\t/*::[*/0x0103/*::]*/: { /* n:\"BrtBeginPNPair\", */ T:1 },\n\t/*::[*/0x0104/*::]*/: { /* n:\"BrtEndPNPair\", */ T:-1 },\n\t/*::[*/0x0105/*::]*/: { /* n:\"BrtBeginECWebProps\", */ T:1 },\n\t/*::[*/0x0106/*::]*/: { /* n:\"BrtEndECWebProps\", */ T:-1 },\n\t/*::[*/0x0107/*::]*/: { /* n:\"BrtBeginEcWpTables\", */ T:1 },\n\t/*::[*/0x0108/*::]*/: { /* n:\"BrtEndECWPTables\", */ T:-1 },\n\t/*::[*/0x0109/*::]*/: { /* n:\"BrtBeginECParams\", */ T:1 },\n\t/*::[*/0x010A/*::]*/: { /* n:\"BrtEndECParams\", */ T:-1 },\n\t/*::[*/0x010B/*::]*/: { /* n:\"BrtBeginECParam\", */ T:1 },\n\t/*::[*/0x010C/*::]*/: { /* n:\"BrtEndECParam\", */ T:-1 },\n\t/*::[*/0x010D/*::]*/: { /* n:\"BrtBeginPCDKPIs\", */ T:1 },\n\t/*::[*/0x010E/*::]*/: { /* n:\"BrtEndPCDKPIs\", */ T:-1 },\n\t/*::[*/0x010F/*::]*/: { /* n:\"BrtBeginPCDKPI\", */ T:1 },\n\t/*::[*/0x0110/*::]*/: { /* n:\"BrtEndPCDKPI\", */ T:-1 },\n\t/*::[*/0x0111/*::]*/: { /* n:\"BrtBeginDims\", */ T:1 },\n\t/*::[*/0x0112/*::]*/: { /* n:\"BrtEndDims\", */ T:-1 },\n\t/*::[*/0x0113/*::]*/: { /* n:\"BrtBeginDim\", */ T:1 },\n\t/*::[*/0x0114/*::]*/: { /* n:\"BrtEndDim\", */ T:-1 },\n\t/*::[*/0x0115/*::]*/: { /* n:\"BrtIndexPartEnd\" */ },\n\t/*::[*/0x0116/*::]*/: { /* n:\"BrtBeginStyleSheet\", */ T:1 },\n\t/*::[*/0x0117/*::]*/: { /* n:\"BrtEndStyleSheet\", */ T:-1 },\n\t/*::[*/0x0118/*::]*/: { /* n:\"BrtBeginSXView\", */ T:1 },\n\t/*::[*/0x0119/*::]*/: { /* n:\"BrtEndSXVI\", */ T:-1 },\n\t/*::[*/0x011A/*::]*/: { /* n:\"BrtBeginSXVI\", */ T:1 },\n\t/*::[*/0x011B/*::]*/: { /* n:\"BrtBeginSXVIs\", */ T:1 },\n\t/*::[*/0x011C/*::]*/: { /* n:\"BrtEndSXVIs\", */ T:-1 },\n\t/*::[*/0x011D/*::]*/: { /* n:\"BrtBeginSXVD\", */ T:1 },\n\t/*::[*/0x011E/*::]*/: { /* n:\"BrtEndSXVD\", */ T:-1 },\n\t/*::[*/0x011F/*::]*/: { /* n:\"BrtBeginSXVDs\", */ T:1 },\n\t/*::[*/0x0120/*::]*/: { /* n:\"BrtEndSXVDs\", */ T:-1 },\n\t/*::[*/0x0121/*::]*/: { /* n:\"BrtBeginSXPI\", */ T:1 },\n\t/*::[*/0x0122/*::]*/: { /* n:\"BrtEndSXPI\", */ T:-1 },\n\t/*::[*/0x0123/*::]*/: { /* n:\"BrtBeginSXPIs\", */ T:1 },\n\t/*::[*/0x0124/*::]*/: { /* n:\"BrtEndSXPIs\", */ T:-1 },\n\t/*::[*/0x0125/*::]*/: { /* n:\"BrtBeginSXDI\", */ T:1 },\n\t/*::[*/0x0126/*::]*/: { /* n:\"BrtEndSXDI\", */ T:-1 },\n\t/*::[*/0x0127/*::]*/: { /* n:\"BrtBeginSXDIs\", */ T:1 },\n\t/*::[*/0x0128/*::]*/: { /* n:\"BrtEndSXDIs\", */ T:-1 },\n\t/*::[*/0x0129/*::]*/: { /* n:\"BrtBeginSXLI\", */ T:1 },\n\t/*::[*/0x012A/*::]*/: { /* n:\"BrtEndSXLI\", */ T:-1 },\n\t/*::[*/0x012B/*::]*/: { /* n:\"BrtBeginSXLIRws\", */ T:1 },\n\t/*::[*/0x012C/*::]*/: { /* n:\"BrtEndSXLIRws\", */ T:-1 },\n\t/*::[*/0x012D/*::]*/: { /* n:\"BrtBeginSXLICols\", */ T:1 },\n\t/*::[*/0x012E/*::]*/: { /* n:\"BrtEndSXLICols\", */ T:-1 },\n\t/*::[*/0x012F/*::]*/: { /* n:\"BrtBeginSXFormat\", */ T:1 },\n\t/*::[*/0x0130/*::]*/: { /* n:\"BrtEndSXFormat\", */ T:-1 },\n\t/*::[*/0x0131/*::]*/: { /* n:\"BrtBeginSXFormats\", */ T:1 },\n\t/*::[*/0x0132/*::]*/: { /* n:\"BrtEndSxFormats\", */ T:-1 },\n\t/*::[*/0x0133/*::]*/: { /* n:\"BrtBeginSxSelect\", */ T:1 },\n\t/*::[*/0x0134/*::]*/: { /* n:\"BrtEndSxSelect\", */ T:-1 },\n\t/*::[*/0x0135/*::]*/: { /* n:\"BrtBeginISXVDRws\", */ T:1 },\n\t/*::[*/0x0136/*::]*/: { /* n:\"BrtEndISXVDRws\", */ T:-1 },\n\t/*::[*/0x0137/*::]*/: { /* n:\"BrtBeginISXVDCols\", */ T:1 },\n\t/*::[*/0x0138/*::]*/: { /* n:\"BrtEndISXVDCols\", */ T:-1 },\n\t/*::[*/0x0139/*::]*/: { /* n:\"BrtEndSXLocation\", */ T:-1 },\n\t/*::[*/0x013A/*::]*/: { /* n:\"BrtBeginSXLocation\", */ T:1 },\n\t/*::[*/0x013B/*::]*/: { /* n:\"BrtEndSXView\", */ T:-1 },\n\t/*::[*/0x013C/*::]*/: { /* n:\"BrtBeginSXTHs\", */ T:1 },\n\t/*::[*/0x013D/*::]*/: { /* n:\"BrtEndSXTHs\", */ T:-1 },\n\t/*::[*/0x013E/*::]*/: { /* n:\"BrtBeginSXTH\", */ T:1 },\n\t/*::[*/0x013F/*::]*/: { /* n:\"BrtEndSXTH\", */ T:-1 },\n\t/*::[*/0x0140/*::]*/: { /* n:\"BrtBeginISXTHRws\", */ T:1 },\n\t/*::[*/0x0141/*::]*/: { /* n:\"BrtEndISXTHRws\", */ T:-1 },\n\t/*::[*/0x0142/*::]*/: { /* n:\"BrtBeginISXTHCols\", */ T:1 },\n\t/*::[*/0x0143/*::]*/: { /* n:\"BrtEndISXTHCols\", */ T:-1 },\n\t/*::[*/0x0144/*::]*/: { /* n:\"BrtBeginSXTDMPS\", */ T:1 },\n\t/*::[*/0x0145/*::]*/: { /* n:\"BrtEndSXTDMPs\", */ T:-1 },\n\t/*::[*/0x0146/*::]*/: { /* n:\"BrtBeginSXTDMP\", */ T:1 },\n\t/*::[*/0x0147/*::]*/: { /* n:\"BrtEndSXTDMP\", */ T:-1 },\n\t/*::[*/0x0148/*::]*/: { /* n:\"BrtBeginSXTHItems\", */ T:1 },\n\t/*::[*/0x0149/*::]*/: { /* n:\"BrtEndSXTHItems\", */ T:-1 },\n\t/*::[*/0x014A/*::]*/: { /* n:\"BrtBeginSXTHItem\", */ T:1 },\n\t/*::[*/0x014B/*::]*/: { /* n:\"BrtEndSXTHItem\", */ T:-1 },\n\t/*::[*/0x014C/*::]*/: { /* n:\"BrtBeginMetadata\", */ T:1 },\n\t/*::[*/0x014D/*::]*/: { /* n:\"BrtEndMetadata\", */ T:-1 },\n\t/*::[*/0x014E/*::]*/: { /* n:\"BrtBeginEsmdtinfo\", */ T:1 },\n\t/*::[*/0x014F/*::]*/: { /* n:\"BrtMdtinfo\", */ f:parse_BrtMdtinfo },\n\t/*::[*/0x0150/*::]*/: { /* n:\"BrtEndEsmdtinfo\", */ T:-1 },\n\t/*::[*/0x0151/*::]*/: { /* n:\"BrtBeginEsmdb\", */ f:parse_BrtBeginEsmdb, T:1 },\n\t/*::[*/0x0152/*::]*/: { /* n:\"BrtEndEsmdb\", */ T:-1 },\n\t/*::[*/0x0153/*::]*/: { /* n:\"BrtBeginEsfmd\", */ T:1 },\n\t/*::[*/0x0154/*::]*/: { /* n:\"BrtEndEsfmd\", */ T:-1 },\n\t/*::[*/0x0155/*::]*/: { /* n:\"BrtBeginSingleCells\", */ T:1 },\n\t/*::[*/0x0156/*::]*/: { /* n:\"BrtEndSingleCells\", */ T:-1 },\n\t/*::[*/0x0157/*::]*/: { /* n:\"BrtBeginList\", */ T:1 },\n\t/*::[*/0x0158/*::]*/: { /* n:\"BrtEndList\", */ T:-1 },\n\t/*::[*/0x0159/*::]*/: { /* n:\"BrtBeginListCols\", */ T:1 },\n\t/*::[*/0x015A/*::]*/: { /* n:\"BrtEndListCols\", */ T:-1 },\n\t/*::[*/0x015B/*::]*/: { /* n:\"BrtBeginListCol\", */ T:1 },\n\t/*::[*/0x015C/*::]*/: { /* n:\"BrtEndListCol\", */ T:-1 },\n\t/*::[*/0x015D/*::]*/: { /* n:\"BrtBeginListXmlCPr\", */ T:1 },\n\t/*::[*/0x015E/*::]*/: { /* n:\"BrtEndListXmlCPr\", */ T:-1 },\n\t/*::[*/0x015F/*::]*/: { /* n:\"BrtListCCFmla\" */ },\n\t/*::[*/0x0160/*::]*/: { /* n:\"BrtListTrFmla\" */ },\n\t/*::[*/0x0161/*::]*/: { /* n:\"BrtBeginExternals\", */ T:1 },\n\t/*::[*/0x0162/*::]*/: { /* n:\"BrtEndExternals\", */ T:-1 },\n\t/*::[*/0x0163/*::]*/: { /* n:\"BrtSupBookSrc\", */ f:parse_RelID},\n\t/*::[*/0x0165/*::]*/: { /* n:\"BrtSupSelf\" */ },\n\t/*::[*/0x0166/*::]*/: { /* n:\"BrtSupSame\" */ },\n\t/*::[*/0x0167/*::]*/: { /* n:\"BrtSupTabs\" */ },\n\t/*::[*/0x0168/*::]*/: { /* n:\"BrtBeginSupBook\", */ T:1 },\n\t/*::[*/0x0169/*::]*/: { /* n:\"BrtPlaceholderName\" */ },\n\t/*::[*/0x016A/*::]*/: { /* n:\"BrtExternSheet\", */ f:parse_ExternSheet },\n\t/*::[*/0x016B/*::]*/: { /* n:\"BrtExternTableStart\" */ },\n\t/*::[*/0x016C/*::]*/: { /* n:\"BrtExternTableEnd\" */ },\n\t/*::[*/0x016E/*::]*/: { /* n:\"BrtExternRowHdr\" */ },\n\t/*::[*/0x016F/*::]*/: { /* n:\"BrtExternCellBlank\" */ },\n\t/*::[*/0x0170/*::]*/: { /* n:\"BrtExternCellReal\" */ },\n\t/*::[*/0x0171/*::]*/: { /* n:\"BrtExternCellBool\" */ },\n\t/*::[*/0x0172/*::]*/: { /* n:\"BrtExternCellError\" */ },\n\t/*::[*/0x0173/*::]*/: { /* n:\"BrtExternCellString\" */ },\n\t/*::[*/0x0174/*::]*/: { /* n:\"BrtBeginEsmdx\", */ T:1 },\n\t/*::[*/0x0175/*::]*/: { /* n:\"BrtEndEsmdx\", */ T:-1 },\n\t/*::[*/0x0176/*::]*/: { /* n:\"BrtBeginMdxSet\", */ T:1 },\n\t/*::[*/0x0177/*::]*/: { /* n:\"BrtEndMdxSet\", */ T:-1 },\n\t/*::[*/0x0178/*::]*/: { /* n:\"BrtBeginMdxMbrProp\", */ T:1 },\n\t/*::[*/0x0179/*::]*/: { /* n:\"BrtEndMdxMbrProp\", */ T:-1 },\n\t/*::[*/0x017A/*::]*/: { /* n:\"BrtBeginMdxKPI\", */ T:1 },\n\t/*::[*/0x017B/*::]*/: { /* n:\"BrtEndMdxKPI\", */ T:-1 },\n\t/*::[*/0x017C/*::]*/: { /* n:\"BrtBeginEsstr\", */ T:1 },\n\t/*::[*/0x017D/*::]*/: { /* n:\"BrtEndEsstr\", */ T:-1 },\n\t/*::[*/0x017E/*::]*/: { /* n:\"BrtBeginPRFItem\", */ T:1 },\n\t/*::[*/0x017F/*::]*/: { /* n:\"BrtEndPRFItem\", */ T:-1 },\n\t/*::[*/0x0180/*::]*/: { /* n:\"BrtBeginPivotCacheIDs\", */ T:1 },\n\t/*::[*/0x0181/*::]*/: { /* n:\"BrtEndPivotCacheIDs\", */ T:-1 },\n\t/*::[*/0x0182/*::]*/: { /* n:\"BrtBeginPivotCacheID\", */ T:1 },\n\t/*::[*/0x0183/*::]*/: { /* n:\"BrtEndPivotCacheID\", */ T:-1 },\n\t/*::[*/0x0184/*::]*/: { /* n:\"BrtBeginISXVIs\", */ T:1 },\n\t/*::[*/0x0185/*::]*/: { /* n:\"BrtEndISXVIs\", */ T:-1 },\n\t/*::[*/0x0186/*::]*/: { /* n:\"BrtBeginColInfos\", */ T:1 },\n\t/*::[*/0x0187/*::]*/: { /* n:\"BrtEndColInfos\", */ T:-1 },\n\t/*::[*/0x0188/*::]*/: { /* n:\"BrtBeginRwBrk\", */ T:1 },\n\t/*::[*/0x0189/*::]*/: { /* n:\"BrtEndRwBrk\", */ T:-1 },\n\t/*::[*/0x018A/*::]*/: { /* n:\"BrtBeginColBrk\", */ T:1 },\n\t/*::[*/0x018B/*::]*/: { /* n:\"BrtEndColBrk\", */ T:-1 },\n\t/*::[*/0x018C/*::]*/: { /* n:\"BrtBrk\" */ },\n\t/*::[*/0x018D/*::]*/: { /* n:\"BrtUserBookView\" */ },\n\t/*::[*/0x018E/*::]*/: { /* n:\"BrtInfo\" */ },\n\t/*::[*/0x018F/*::]*/: { /* n:\"BrtCUsr\" */ },\n\t/*::[*/0x0190/*::]*/: { /* n:\"BrtUsr\" */ },\n\t/*::[*/0x0191/*::]*/: { /* n:\"BrtBeginUsers\", */ T:1 },\n\t/*::[*/0x0193/*::]*/: { /* n:\"BrtEOF\" */ },\n\t/*::[*/0x0194/*::]*/: { /* n:\"BrtUCR\" */ },\n\t/*::[*/0x0195/*::]*/: { /* n:\"BrtRRInsDel\" */ },\n\t/*::[*/0x0196/*::]*/: { /* n:\"BrtRREndInsDel\" */ },\n\t/*::[*/0x0197/*::]*/: { /* n:\"BrtRRMove\" */ },\n\t/*::[*/0x0198/*::]*/: { /* n:\"BrtRREndMove\" */ },\n\t/*::[*/0x0199/*::]*/: { /* n:\"BrtRRChgCell\" */ },\n\t/*::[*/0x019A/*::]*/: { /* n:\"BrtRREndChgCell\" */ },\n\t/*::[*/0x019B/*::]*/: { /* n:\"BrtRRHeader\" */ },\n\t/*::[*/0x019C/*::]*/: { /* n:\"BrtRRUserView\" */ },\n\t/*::[*/0x019D/*::]*/: { /* n:\"BrtRRRenSheet\" */ },\n\t/*::[*/0x019E/*::]*/: { /* n:\"BrtRRInsertSh\" */ },\n\t/*::[*/0x019F/*::]*/: { /* n:\"BrtRRDefName\" */ },\n\t/*::[*/0x01A0/*::]*/: { /* n:\"BrtRRNote\" */ },\n\t/*::[*/0x01A1/*::]*/: { /* n:\"BrtRRConflict\" */ },\n\t/*::[*/0x01A2/*::]*/: { /* n:\"BrtRRTQSIF\" */ },\n\t/*::[*/0x01A3/*::]*/: { /* n:\"BrtRRFormat\" */ },\n\t/*::[*/0x01A4/*::]*/: { /* n:\"BrtRREndFormat\" */ },\n\t/*::[*/0x01A5/*::]*/: { /* n:\"BrtRRAutoFmt\" */ },\n\t/*::[*/0x01A6/*::]*/: { /* n:\"BrtBeginUserShViews\", */ T:1 },\n\t/*::[*/0x01A7/*::]*/: { /* n:\"BrtBeginUserShView\", */ T:1 },\n\t/*::[*/0x01A8/*::]*/: { /* n:\"BrtEndUserShView\", */ T:-1 },\n\t/*::[*/0x01A9/*::]*/: { /* n:\"BrtEndUserShViews\", */ T:-1 },\n\t/*::[*/0x01AA/*::]*/: { /* n:\"BrtArrFmla\", */ f:parse_BrtArrFmla },\n\t/*::[*/0x01AB/*::]*/: { /* n:\"BrtShrFmla\", */ f:parse_BrtShrFmla },\n\t/*::[*/0x01AC/*::]*/: { /* n:\"BrtTable\" */ },\n\t/*::[*/0x01AD/*::]*/: { /* n:\"BrtBeginExtConnections\", */ T:1 },\n\t/*::[*/0x01AE/*::]*/: { /* n:\"BrtEndExtConnections\", */ T:-1 },\n\t/*::[*/0x01AF/*::]*/: { /* n:\"BrtBeginPCDCalcMems\", */ T:1 },\n\t/*::[*/0x01B0/*::]*/: { /* n:\"BrtEndPCDCalcMems\", */ T:-1 },\n\t/*::[*/0x01B1/*::]*/: { /* n:\"BrtBeginPCDCalcMem\", */ T:1 },\n\t/*::[*/0x01B2/*::]*/: { /* n:\"BrtEndPCDCalcMem\", */ T:-1 },\n\t/*::[*/0x01B3/*::]*/: { /* n:\"BrtBeginPCDHGLevels\", */ T:1 },\n\t/*::[*/0x01B4/*::]*/: { /* n:\"BrtEndPCDHGLevels\", */ T:-1 },\n\t/*::[*/0x01B5/*::]*/: { /* n:\"BrtBeginPCDHGLevel\", */ T:1 },\n\t/*::[*/0x01B6/*::]*/: { /* n:\"BrtEndPCDHGLevel\", */ T:-1 },\n\t/*::[*/0x01B7/*::]*/: { /* n:\"BrtBeginPCDHGLGroups\", */ T:1 },\n\t/*::[*/0x01B8/*::]*/: { /* n:\"BrtEndPCDHGLGroups\", */ T:-1 },\n\t/*::[*/0x01B9/*::]*/: { /* n:\"BrtBeginPCDHGLGroup\", */ T:1 },\n\t/*::[*/0x01BA/*::]*/: { /* n:\"BrtEndPCDHGLGroup\", */ T:-1 },\n\t/*::[*/0x01BB/*::]*/: { /* n:\"BrtBeginPCDHGLGMembers\", */ T:1 },\n\t/*::[*/0x01BC/*::]*/: { /* n:\"BrtEndPCDHGLGMembers\", */ T:-1 },\n\t/*::[*/0x01BD/*::]*/: { /* n:\"BrtBeginPCDHGLGMember\", */ T:1 },\n\t/*::[*/0x01BE/*::]*/: { /* n:\"BrtEndPCDHGLGMember\", */ T:-1 },\n\t/*::[*/0x01BF/*::]*/: { /* n:\"BrtBeginQSI\", */ T:1 },\n\t/*::[*/0x01C0/*::]*/: { /* n:\"BrtEndQSI\", */ T:-1 },\n\t/*::[*/0x01C1/*::]*/: { /* n:\"BrtBeginQSIR\", */ T:1 },\n\t/*::[*/0x01C2/*::]*/: { /* n:\"BrtEndQSIR\", */ T:-1 },\n\t/*::[*/0x01C3/*::]*/: { /* n:\"BrtBeginDeletedNames\", */ T:1 },\n\t/*::[*/0x01C4/*::]*/: { /* n:\"BrtEndDeletedNames\", */ T:-1 },\n\t/*::[*/0x01C5/*::]*/: { /* n:\"BrtBeginDeletedName\", */ T:1 },\n\t/*::[*/0x01C6/*::]*/: { /* n:\"BrtEndDeletedName\", */ T:-1 },\n\t/*::[*/0x01C7/*::]*/: { /* n:\"BrtBeginQSIFs\", */ T:1 },\n\t/*::[*/0x01C8/*::]*/: { /* n:\"BrtEndQSIFs\", */ T:-1 },\n\t/*::[*/0x01C9/*::]*/: { /* n:\"BrtBeginQSIF\", */ T:1 },\n\t/*::[*/0x01CA/*::]*/: { /* n:\"BrtEndQSIF\", */ T:-1 },\n\t/*::[*/0x01CB/*::]*/: { /* n:\"BrtBeginAutoSortScope\", */ T:1 },\n\t/*::[*/0x01CC/*::]*/: { /* n:\"BrtEndAutoSortScope\", */ T:-1 },\n\t/*::[*/0x01CD/*::]*/: { /* n:\"BrtBeginConditionalFormatting\", */ T:1 },\n\t/*::[*/0x01CE/*::]*/: { /* n:\"BrtEndConditionalFormatting\", */ T:-1 },\n\t/*::[*/0x01CF/*::]*/: { /* n:\"BrtBeginCFRule\", */ T:1 },\n\t/*::[*/0x01D0/*::]*/: { /* n:\"BrtEndCFRule\", */ T:-1 },\n\t/*::[*/0x01D1/*::]*/: { /* n:\"BrtBeginIconSet\", */ T:1 },\n\t/*::[*/0x01D2/*::]*/: { /* n:\"BrtEndIconSet\", */ T:-1 },\n\t/*::[*/0x01D3/*::]*/: { /* n:\"BrtBeginDatabar\", */ T:1 },\n\t/*::[*/0x01D4/*::]*/: { /* n:\"BrtEndDatabar\", */ T:-1 },\n\t/*::[*/0x01D5/*::]*/: { /* n:\"BrtBeginColorScale\", */ T:1 },\n\t/*::[*/0x01D6/*::]*/: { /* n:\"BrtEndColorScale\", */ T:-1 },\n\t/*::[*/0x01D7/*::]*/: { /* n:\"BrtCFVO\" */ },\n\t/*::[*/0x01D8/*::]*/: { /* n:\"BrtExternValueMeta\" */ },\n\t/*::[*/0x01D9/*::]*/: { /* n:\"BrtBeginColorPalette\", */ T:1 },\n\t/*::[*/0x01DA/*::]*/: { /* n:\"BrtEndColorPalette\", */ T:-1 },\n\t/*::[*/0x01DB/*::]*/: { /* n:\"BrtIndexedColor\" */ },\n\t/*::[*/0x01DC/*::]*/: { /* n:\"BrtMargins\", */ f:parse_BrtMargins },\n\t/*::[*/0x01DD/*::]*/: { /* n:\"BrtPrintOptions\" */ },\n\t/*::[*/0x01DE/*::]*/: { /* n:\"BrtPageSetup\" */ },\n\t/*::[*/0x01DF/*::]*/: { /* n:\"BrtBeginHeaderFooter\", */ T:1 },\n\t/*::[*/0x01E0/*::]*/: { /* n:\"BrtEndHeaderFooter\", */ T:-1 },\n\t/*::[*/0x01E1/*::]*/: { /* n:\"BrtBeginSXCrtFormat\", */ T:1 },\n\t/*::[*/0x01E2/*::]*/: { /* n:\"BrtEndSXCrtFormat\", */ T:-1 },\n\t/*::[*/0x01E3/*::]*/: { /* n:\"BrtBeginSXCrtFormats\", */ T:1 },\n\t/*::[*/0x01E4/*::]*/: { /* n:\"BrtEndSXCrtFormats\", */ T:-1 },\n\t/*::[*/0x01E5/*::]*/: { /* n:\"BrtWsFmtInfo\", */ f:parse_BrtWsFmtInfo },\n\t/*::[*/0x01E6/*::]*/: { /* n:\"BrtBeginMgs\", */ T:1 },\n\t/*::[*/0x01E7/*::]*/: { /* n:\"BrtEndMGs\", */ T:-1 },\n\t/*::[*/0x01E8/*::]*/: { /* n:\"BrtBeginMGMaps\", */ T:1 },\n\t/*::[*/0x01E9/*::]*/: { /* n:\"BrtEndMGMaps\", */ T:-1 },\n\t/*::[*/0x01EA/*::]*/: { /* n:\"BrtBeginMG\", */ T:1 },\n\t/*::[*/0x01EB/*::]*/: { /* n:\"BrtEndMG\", */ T:-1 },\n\t/*::[*/0x01EC/*::]*/: { /* n:\"BrtBeginMap\", */ T:1 },\n\t/*::[*/0x01ED/*::]*/: { /* n:\"BrtEndMap\", */ T:-1 },\n\t/*::[*/0x01EE/*::]*/: { /* n:\"BrtHLink\", */ f:parse_BrtHLink },\n\t/*::[*/0x01EF/*::]*/: { /* n:\"BrtBeginDCon\", */ T:1 },\n\t/*::[*/0x01F0/*::]*/: { /* n:\"BrtEndDCon\", */ T:-1 },\n\t/*::[*/0x01F1/*::]*/: { /* n:\"BrtBeginDRefs\", */ T:1 },\n\t/*::[*/0x01F2/*::]*/: { /* n:\"BrtEndDRefs\", */ T:-1 },\n\t/*::[*/0x01F3/*::]*/: { /* n:\"BrtDRef\" */ },\n\t/*::[*/0x01F4/*::]*/: { /* n:\"BrtBeginScenMan\", */ T:1 },\n\t/*::[*/0x01F5/*::]*/: { /* n:\"BrtEndScenMan\", */ T:-1 },\n\t/*::[*/0x01F6/*::]*/: { /* n:\"BrtBeginSct\", */ T:1 },\n\t/*::[*/0x01F7/*::]*/: { /* n:\"BrtEndSct\", */ T:-1 },\n\t/*::[*/0x01F8/*::]*/: { /* n:\"BrtSlc\" */ },\n\t/*::[*/0x01F9/*::]*/: { /* n:\"BrtBeginDXFs\", */ T:1 },\n\t/*::[*/0x01FA/*::]*/: { /* n:\"BrtEndDXFs\", */ T:-1 },\n\t/*::[*/0x01FB/*::]*/: { /* n:\"BrtDXF\" */ },\n\t/*::[*/0x01FC/*::]*/: { /* n:\"BrtBeginTableStyles\", */ T:1 },\n\t/*::[*/0x01FD/*::]*/: { /* n:\"BrtEndTableStyles\", */ T:-1 },\n\t/*::[*/0x01FE/*::]*/: { /* n:\"BrtBeginTableStyle\", */ T:1 },\n\t/*::[*/0x01FF/*::]*/: { /* n:\"BrtEndTableStyle\", */ T:-1 },\n\t/*::[*/0x0200/*::]*/: { /* n:\"BrtTableStyleElement\" */ },\n\t/*::[*/0x0201/*::]*/: { /* n:\"BrtTableStyleClient\" */ },\n\t/*::[*/0x0202/*::]*/: { /* n:\"BrtBeginVolDeps\", */ T:1 },\n\t/*::[*/0x0203/*::]*/: { /* n:\"BrtEndVolDeps\", */ T:-1 },\n\t/*::[*/0x0204/*::]*/: { /* n:\"BrtBeginVolType\", */ T:1 },\n\t/*::[*/0x0205/*::]*/: { /* n:\"BrtEndVolType\", */ T:-1 },\n\t/*::[*/0x0206/*::]*/: { /* n:\"BrtBeginVolMain\", */ T:1 },\n\t/*::[*/0x0207/*::]*/: { /* n:\"BrtEndVolMain\", */ T:-1 },\n\t/*::[*/0x0208/*::]*/: { /* n:\"BrtBeginVolTopic\", */ T:1 },\n\t/*::[*/0x0209/*::]*/: { /* n:\"BrtEndVolTopic\", */ T:-1 },\n\t/*::[*/0x020A/*::]*/: { /* n:\"BrtVolSubtopic\" */ },\n\t/*::[*/0x020B/*::]*/: { /* n:\"BrtVolRef\" */ },\n\t/*::[*/0x020C/*::]*/: { /* n:\"BrtVolNum\" */ },\n\t/*::[*/0x020D/*::]*/: { /* n:\"BrtVolErr\" */ },\n\t/*::[*/0x020E/*::]*/: { /* n:\"BrtVolStr\" */ },\n\t/*::[*/0x020F/*::]*/: { /* n:\"BrtVolBool\" */ },\n\t/*::[*/0x0210/*::]*/: { /* n:\"BrtBeginCalcChain$\", */ T:1 },\n\t/*::[*/0x0211/*::]*/: { /* n:\"BrtEndCalcChain$\", */ T:-1 },\n\t/*::[*/0x0212/*::]*/: { /* n:\"BrtBeginSortState\", */ T:1 },\n\t/*::[*/0x0213/*::]*/: { /* n:\"BrtEndSortState\", */ T:-1 },\n\t/*::[*/0x0214/*::]*/: { /* n:\"BrtBeginSortCond\", */ T:1 },\n\t/*::[*/0x0215/*::]*/: { /* n:\"BrtEndSortCond\", */ T:-1 },\n\t/*::[*/0x0216/*::]*/: { /* n:\"BrtBookProtection\" */ },\n\t/*::[*/0x0217/*::]*/: { /* n:\"BrtSheetProtection\" */ },\n\t/*::[*/0x0218/*::]*/: { /* n:\"BrtRangeProtection\" */ },\n\t/*::[*/0x0219/*::]*/: { /* n:\"BrtPhoneticInfo\" */ },\n\t/*::[*/0x021A/*::]*/: { /* n:\"BrtBeginECTxtWiz\", */ T:1 },\n\t/*::[*/0x021B/*::]*/: { /* n:\"BrtEndECTxtWiz\", */ T:-1 },\n\t/*::[*/0x021C/*::]*/: { /* n:\"BrtBeginECTWFldInfoLst\", */ T:1 },\n\t/*::[*/0x021D/*::]*/: { /* n:\"BrtEndECTWFldInfoLst\", */ T:-1 },\n\t/*::[*/0x021E/*::]*/: { /* n:\"BrtBeginECTwFldInfo\", */ T:1 },\n\t/*::[*/0x0224/*::]*/: { /* n:\"BrtFileSharing\" */ },\n\t/*::[*/0x0225/*::]*/: { /* n:\"BrtOleSize\" */ },\n\t/*::[*/0x0226/*::]*/: { /* n:\"BrtDrawing\", */ f:parse_RelID },\n\t/*::[*/0x0227/*::]*/: { /* n:\"BrtLegacyDrawing\" */ },\n\t/*::[*/0x0228/*::]*/: { /* n:\"BrtLegacyDrawingHF\" */ },\n\t/*::[*/0x0229/*::]*/: { /* n:\"BrtWebOpt\" */ },\n\t/*::[*/0x022A/*::]*/: { /* n:\"BrtBeginWebPubItems\", */ T:1 },\n\t/*::[*/0x022B/*::]*/: { /* n:\"BrtEndWebPubItems\", */ T:-1 },\n\t/*::[*/0x022C/*::]*/: { /* n:\"BrtBeginWebPubItem\", */ T:1 },\n\t/*::[*/0x022D/*::]*/: { /* n:\"BrtEndWebPubItem\", */ T:-1 },\n\t/*::[*/0x022E/*::]*/: { /* n:\"BrtBeginSXCondFmt\", */ T:1 },\n\t/*::[*/0x022F/*::]*/: { /* n:\"BrtEndSXCondFmt\", */ T:-1 },\n\t/*::[*/0x0230/*::]*/: { /* n:\"BrtBeginSXCondFmts\", */ T:1 },\n\t/*::[*/0x0231/*::]*/: { /* n:\"BrtEndSXCondFmts\", */ T:-1 },\n\t/*::[*/0x0232/*::]*/: { /* n:\"BrtBkHim\" */ },\n\t/*::[*/0x0234/*::]*/: { /* n:\"BrtColor\" */ },\n\t/*::[*/0x0235/*::]*/: { /* n:\"BrtBeginIndexedColors\", */ T:1 },\n\t/*::[*/0x0236/*::]*/: { /* n:\"BrtEndIndexedColors\", */ T:-1 },\n\t/*::[*/0x0239/*::]*/: { /* n:\"BrtBeginMRUColors\", */ T:1 },\n\t/*::[*/0x023A/*::]*/: { /* n:\"BrtEndMRUColors\", */ T:-1 },\n\t/*::[*/0x023C/*::]*/: { /* n:\"BrtMRUColor\" */ },\n\t/*::[*/0x023D/*::]*/: { /* n:\"BrtBeginDVals\", */ T:1 },\n\t/*::[*/0x023E/*::]*/: { /* n:\"BrtEndDVals\", */ T:-1 },\n\t/*::[*/0x0241/*::]*/: { /* n:\"BrtSupNameStart\" */ },\n\t/*::[*/0x0242/*::]*/: { /* n:\"BrtSupNameValueStart\" */ },\n\t/*::[*/0x0243/*::]*/: { /* n:\"BrtSupNameValueEnd\" */ },\n\t/*::[*/0x0244/*::]*/: { /* n:\"BrtSupNameNum\" */ },\n\t/*::[*/0x0245/*::]*/: { /* n:\"BrtSupNameErr\" */ },\n\t/*::[*/0x0246/*::]*/: { /* n:\"BrtSupNameSt\" */ },\n\t/*::[*/0x0247/*::]*/: { /* n:\"BrtSupNameNil\" */ },\n\t/*::[*/0x0248/*::]*/: { /* n:\"BrtSupNameBool\" */ },\n\t/*::[*/0x0249/*::]*/: { /* n:\"BrtSupNameFmla\" */ },\n\t/*::[*/0x024A/*::]*/: { /* n:\"BrtSupNameBits\" */ },\n\t/*::[*/0x024B/*::]*/: { /* n:\"BrtSupNameEnd\" */ },\n\t/*::[*/0x024C/*::]*/: { /* n:\"BrtEndSupBook\", */ T:-1 },\n\t/*::[*/0x024D/*::]*/: { /* n:\"BrtCellSmartTagProperty\" */ },\n\t/*::[*/0x024E/*::]*/: { /* n:\"BrtBeginCellSmartTag\", */ T:1 },\n\t/*::[*/0x024F/*::]*/: { /* n:\"BrtEndCellSmartTag\", */ T:-1 },\n\t/*::[*/0x0250/*::]*/: { /* n:\"BrtBeginCellSmartTags\", */ T:1 },\n\t/*::[*/0x0251/*::]*/: { /* n:\"BrtEndCellSmartTags\", */ T:-1 },\n\t/*::[*/0x0252/*::]*/: { /* n:\"BrtBeginSmartTags\", */ T:1 },\n\t/*::[*/0x0253/*::]*/: { /* n:\"BrtEndSmartTags\", */ T:-1 },\n\t/*::[*/0x0254/*::]*/: { /* n:\"BrtSmartTagType\" */ },\n\t/*::[*/0x0255/*::]*/: { /* n:\"BrtBeginSmartTagTypes\", */ T:1 },\n\t/*::[*/0x0256/*::]*/: { /* n:\"BrtEndSmartTagTypes\", */ T:-1 },\n\t/*::[*/0x0257/*::]*/: { /* n:\"BrtBeginSXFilters\", */ T:1 },\n\t/*::[*/0x0258/*::]*/: { /* n:\"BrtEndSXFilters\", */ T:-1 },\n\t/*::[*/0x0259/*::]*/: { /* n:\"BrtBeginSXFILTER\", */ T:1 },\n\t/*::[*/0x025A/*::]*/: { /* n:\"BrtEndSXFilter\", */ T:-1 },\n\t/*::[*/0x025B/*::]*/: { /* n:\"BrtBeginFills\", */ T:1 },\n\t/*::[*/0x025C/*::]*/: { /* n:\"BrtEndFills\", */ T:-1 },\n\t/*::[*/0x025D/*::]*/: { /* n:\"BrtBeginCellWatches\", */ T:1 },\n\t/*::[*/0x025E/*::]*/: { /* n:\"BrtEndCellWatches\", */ T:-1 },\n\t/*::[*/0x025F/*::]*/: { /* n:\"BrtCellWatch\" */ },\n\t/*::[*/0x0260/*::]*/: { /* n:\"BrtBeginCRErrs\", */ T:1 },\n\t/*::[*/0x0261/*::]*/: { /* n:\"BrtEndCRErrs\", */ T:-1 },\n\t/*::[*/0x0262/*::]*/: { /* n:\"BrtCrashRecErr\" */ },\n\t/*::[*/0x0263/*::]*/: { /* n:\"BrtBeginFonts\", */ T:1 },\n\t/*::[*/0x0264/*::]*/: { /* n:\"BrtEndFonts\", */ T:-1 },\n\t/*::[*/0x0265/*::]*/: { /* n:\"BrtBeginBorders\", */ T:1 },\n\t/*::[*/0x0266/*::]*/: { /* n:\"BrtEndBorders\", */ T:-1 },\n\t/*::[*/0x0267/*::]*/: { /* n:\"BrtBeginFmts\", */ T:1 },\n\t/*::[*/0x0268/*::]*/: { /* n:\"BrtEndFmts\", */ T:-1 },\n\t/*::[*/0x0269/*::]*/: { /* n:\"BrtBeginCellXFs\", */ T:1 },\n\t/*::[*/0x026A/*::]*/: { /* n:\"BrtEndCellXFs\", */ T:-1 },\n\t/*::[*/0x026B/*::]*/: { /* n:\"BrtBeginStyles\", */ T:1 },\n\t/*::[*/0x026C/*::]*/: { /* n:\"BrtEndStyles\", */ T:-1 },\n\t/*::[*/0x0271/*::]*/: { /* n:\"BrtBigName\" */ },\n\t/*::[*/0x0272/*::]*/: { /* n:\"BrtBeginCellStyleXFs\", */ T:1 },\n\t/*::[*/0x0273/*::]*/: { /* n:\"BrtEndCellStyleXFs\", */ T:-1 },\n\t/*::[*/0x0274/*::]*/: { /* n:\"BrtBeginComments\", */ T:1 },\n\t/*::[*/0x0275/*::]*/: { /* n:\"BrtEndComments\", */ T:-1 },\n\t/*::[*/0x0276/*::]*/: { /* n:\"BrtBeginCommentAuthors\", */ T:1 },\n\t/*::[*/0x0277/*::]*/: { /* n:\"BrtEndCommentAuthors\", */ T:-1 },\n\t/*::[*/0x0278/*::]*/: { /* n:\"BrtCommentAuthor\", */ f:parse_BrtCommentAuthor },\n\t/*::[*/0x0279/*::]*/: { /* n:\"BrtBeginCommentList\", */ T:1 },\n\t/*::[*/0x027A/*::]*/: { /* n:\"BrtEndCommentList\", */ T:-1 },\n\t/*::[*/0x027B/*::]*/: { /* n:\"BrtBeginComment\", */ T:1, f:parse_BrtBeginComment},\n\t/*::[*/0x027C/*::]*/: { /* n:\"BrtEndComment\", */ T:-1 },\n\t/*::[*/0x027D/*::]*/: { /* n:\"BrtCommentText\", */ f:parse_BrtCommentText },\n\t/*::[*/0x027E/*::]*/: { /* n:\"BrtBeginOleObjects\", */ T:1 },\n\t/*::[*/0x027F/*::]*/: { /* n:\"BrtOleObject\" */ },\n\t/*::[*/0x0280/*::]*/: { /* n:\"BrtEndOleObjects\", */ T:-1 },\n\t/*::[*/0x0281/*::]*/: { /* n:\"BrtBeginSxrules\", */ T:1 },\n\t/*::[*/0x0282/*::]*/: { /* n:\"BrtEndSxRules\", */ T:-1 },\n\t/*::[*/0x0283/*::]*/: { /* n:\"BrtBeginActiveXControls\", */ T:1 },\n\t/*::[*/0x0284/*::]*/: { /* n:\"BrtActiveX\" */ },\n\t/*::[*/0x0285/*::]*/: { /* n:\"BrtEndActiveXControls\", */ T:-1 },\n\t/*::[*/0x0286/*::]*/: { /* n:\"BrtBeginPCDSDTCEMembersSortBy\", */ T:1 },\n\t/*::[*/0x0288/*::]*/: { /* n:\"BrtBeginCellIgnoreECs\", */ T:1 },\n\t/*::[*/0x0289/*::]*/: { /* n:\"BrtCellIgnoreEC\" */ },\n\t/*::[*/0x028A/*::]*/: { /* n:\"BrtEndCellIgnoreECs\", */ T:-1 },\n\t/*::[*/0x028B/*::]*/: { /* n:\"BrtCsProp\", */ f:parse_BrtCsProp },\n\t/*::[*/0x028C/*::]*/: { /* n:\"BrtCsPageSetup\" */ },\n\t/*::[*/0x028D/*::]*/: { /* n:\"BrtBeginUserCsViews\", */ T:1 },\n\t/*::[*/0x028E/*::]*/: { /* n:\"BrtEndUserCsViews\", */ T:-1 },\n\t/*::[*/0x028F/*::]*/: { /* n:\"BrtBeginUserCsView\", */ T:1 },\n\t/*::[*/0x0290/*::]*/: { /* n:\"BrtEndUserCsView\", */ T:-1 },\n\t/*::[*/0x0291/*::]*/: { /* n:\"BrtBeginPcdSFCIEntries\", */ T:1 },\n\t/*::[*/0x0292/*::]*/: { /* n:\"BrtEndPCDSFCIEntries\", */ T:-1 },\n\t/*::[*/0x0293/*::]*/: { /* n:\"BrtPCDSFCIEntry\" */ },\n\t/*::[*/0x0294/*::]*/: { /* n:\"BrtBeginListParts\", */ T:1 },\n\t/*::[*/0x0295/*::]*/: { /* n:\"BrtListPart\" */ },\n\t/*::[*/0x0296/*::]*/: { /* n:\"BrtEndListParts\", */ T:-1 },\n\t/*::[*/0x0297/*::]*/: { /* n:\"BrtSheetCalcProp\" */ },\n\t/*::[*/0x0298/*::]*/: { /* n:\"BrtBeginFnGroup\", */ T:1 },\n\t/*::[*/0x0299/*::]*/: { /* n:\"BrtFnGroup\" */ },\n\t/*::[*/0x029A/*::]*/: { /* n:\"BrtEndFnGroup\", */ T:-1 },\n\t/*::[*/0x029B/*::]*/: { /* n:\"BrtSupAddin\" */ },\n\t/*::[*/0x029C/*::]*/: { /* n:\"BrtSXTDMPOrder\" */ },\n\t/*::[*/0x029D/*::]*/: { /* n:\"BrtCsProtection\" */ },\n\t/*::[*/0x029F/*::]*/: { /* n:\"BrtBeginWsSortMap\", */ T:1 },\n\t/*::[*/0x02A0/*::]*/: { /* n:\"BrtEndWsSortMap\", */ T:-1 },\n\t/*::[*/0x02A1/*::]*/: { /* n:\"BrtBeginRRSort\", */ T:1 },\n\t/*::[*/0x02A2/*::]*/: { /* n:\"BrtEndRRSort\", */ T:-1 },\n\t/*::[*/0x02A3/*::]*/: { /* n:\"BrtRRSortItem\" */ },\n\t/*::[*/0x02A4/*::]*/: { /* n:\"BrtFileSharingIso\" */ },\n\t/*::[*/0x02A5/*::]*/: { /* n:\"BrtBookProtectionIso\" */ },\n\t/*::[*/0x02A6/*::]*/: { /* n:\"BrtSheetProtectionIso\" */ },\n\t/*::[*/0x02A7/*::]*/: { /* n:\"BrtCsProtectionIso\" */ },\n\t/*::[*/0x02A8/*::]*/: { /* n:\"BrtRangeProtectionIso\" */ },\n\t/*::[*/0x02A9/*::]*/: { /* n:\"BrtDValList\" */ },\n\t/*::[*/0x0400/*::]*/: { /* n:\"BrtRwDescent\" */ },\n\t/*::[*/0x0401/*::]*/: { /* n:\"BrtKnownFonts\" */ },\n\t/*::[*/0x0402/*::]*/: { /* n:\"BrtBeginSXTupleSet\", */ T:1 },\n\t/*::[*/0x0403/*::]*/: { /* n:\"BrtEndSXTupleSet\", */ T:-1 },\n\t/*::[*/0x0404/*::]*/: { /* n:\"BrtBeginSXTupleSetHeader\", */ T:1 },\n\t/*::[*/0x0405/*::]*/: { /* n:\"BrtEndSXTupleSetHeader\", */ T:-1 },\n\t/*::[*/0x0406/*::]*/: { /* n:\"BrtSXTupleSetHeaderItem\" */ },\n\t/*::[*/0x0407/*::]*/: { /* n:\"BrtBeginSXTupleSetData\", */ T:1 },\n\t/*::[*/0x0408/*::]*/: { /* n:\"BrtEndSXTupleSetData\", */ T:-1 },\n\t/*::[*/0x0409/*::]*/: { /* n:\"BrtBeginSXTupleSetRow\", */ T:1 },\n\t/*::[*/0x040A/*::]*/: { /* n:\"BrtEndSXTupleSetRow\", */ T:-1 },\n\t/*::[*/0x040B/*::]*/: { /* n:\"BrtSXTupleSetRowItem\" */ },\n\t/*::[*/0x040C/*::]*/: { /* n:\"BrtNameExt\" */ },\n\t/*::[*/0x040D/*::]*/: { /* n:\"BrtPCDH14\" */ },\n\t/*::[*/0x040E/*::]*/: { /* n:\"BrtBeginPCDCalcMem14\", */ T:1 },\n\t/*::[*/0x040F/*::]*/: { /* n:\"BrtEndPCDCalcMem14\", */ T:-1 },\n\t/*::[*/0x0410/*::]*/: { /* n:\"BrtSXTH14\" */ },\n\t/*::[*/0x0411/*::]*/: { /* n:\"BrtBeginSparklineGroup\", */ T:1 },\n\t/*::[*/0x0412/*::]*/: { /* n:\"BrtEndSparklineGroup\", */ T:-1 },\n\t/*::[*/0x0413/*::]*/: { /* n:\"BrtSparkline\" */ },\n\t/*::[*/0x0414/*::]*/: { /* n:\"BrtSXDI14\" */ },\n\t/*::[*/0x0415/*::]*/: { /* n:\"BrtWsFmtInfoEx14\" */ },\n\t/*::[*/0x0416/*::]*/: { /* n:\"BrtBeginConditionalFormatting14\", */ T:1 },\n\t/*::[*/0x0417/*::]*/: { /* n:\"BrtEndConditionalFormatting14\", */ T:-1 },\n\t/*::[*/0x0418/*::]*/: { /* n:\"BrtBeginCFRule14\", */ T:1 },\n\t/*::[*/0x0419/*::]*/: { /* n:\"BrtEndCFRule14\", */ T:-1 },\n\t/*::[*/0x041A/*::]*/: { /* n:\"BrtCFVO14\" */ },\n\t/*::[*/0x041B/*::]*/: { /* n:\"BrtBeginDatabar14\", */ T:1 },\n\t/*::[*/0x041C/*::]*/: { /* n:\"BrtBeginIconSet14\", */ T:1 },\n\t/*::[*/0x041D/*::]*/: { /* n:\"BrtDVal14\", */ f: parse_BrtDVal14 },\n\t/*::[*/0x041E/*::]*/: { /* n:\"BrtBeginDVals14\", */ T:1 },\n\t/*::[*/0x041F/*::]*/: { /* n:\"BrtColor14\" */ },\n\t/*::[*/0x0420/*::]*/: { /* n:\"BrtBeginSparklines\", */ T:1 },\n\t/*::[*/0x0421/*::]*/: { /* n:\"BrtEndSparklines\", */ T:-1 },\n\t/*::[*/0x0422/*::]*/: { /* n:\"BrtBeginSparklineGroups\", */ T:1 },\n\t/*::[*/0x0423/*::]*/: { /* n:\"BrtEndSparklineGroups\", */ T:-1 },\n\t/*::[*/0x0425/*::]*/: { /* n:\"BrtSXVD14\" */ },\n\t/*::[*/0x0426/*::]*/: { /* n:\"BrtBeginSXView14\", */ T:1 },\n\t/*::[*/0x0427/*::]*/: { /* n:\"BrtEndSXView14\", */ T:-1 },\n\t/*::[*/0x0428/*::]*/: { /* n:\"BrtBeginSXView16\", */ T:1 },\n\t/*::[*/0x0429/*::]*/: { /* n:\"BrtEndSXView16\", */ T:-1 },\n\t/*::[*/0x042A/*::]*/: { /* n:\"BrtBeginPCD14\", */ T:1 },\n\t/*::[*/0x042B/*::]*/: { /* n:\"BrtEndPCD14\", */ T:-1 },\n\t/*::[*/0x042C/*::]*/: { /* n:\"BrtBeginExtConn14\", */ T:1 },\n\t/*::[*/0x042D/*::]*/: { /* n:\"BrtEndExtConn14\", */ T:-1 },\n\t/*::[*/0x042E/*::]*/: { /* n:\"BrtBeginSlicerCacheIDs\", */ T:1 },\n\t/*::[*/0x042F/*::]*/: { /* n:\"BrtEndSlicerCacheIDs\", */ T:-1 },\n\t/*::[*/0x0430/*::]*/: { /* n:\"BrtBeginSlicerCacheID\", */ T:1 },\n\t/*::[*/0x0431/*::]*/: { /* n:\"BrtEndSlicerCacheID\", */ T:-1 },\n\t/*::[*/0x0433/*::]*/: { /* n:\"BrtBeginSlicerCache\", */ T:1 },\n\t/*::[*/0x0434/*::]*/: { /* n:\"BrtEndSlicerCache\", */ T:-1 },\n\t/*::[*/0x0435/*::]*/: { /* n:\"BrtBeginSlicerCacheDef\", */ T:1 },\n\t/*::[*/0x0436/*::]*/: { /* n:\"BrtEndSlicerCacheDef\", */ T:-1 },\n\t/*::[*/0x0437/*::]*/: { /* n:\"BrtBeginSlicersEx\", */ T:1 },\n\t/*::[*/0x0438/*::]*/: { /* n:\"BrtEndSlicersEx\", */ T:-1 },\n\t/*::[*/0x0439/*::]*/: { /* n:\"BrtBeginSlicerEx\", */ T:1 },\n\t/*::[*/0x043A/*::]*/: { /* n:\"BrtEndSlicerEx\", */ T:-1 },\n\t/*::[*/0x043B/*::]*/: { /* n:\"BrtBeginSlicer\", */ T:1 },\n\t/*::[*/0x043C/*::]*/: { /* n:\"BrtEndSlicer\", */ T:-1 },\n\t/*::[*/0x043D/*::]*/: { /* n:\"BrtSlicerCachePivotTables\" */ },\n\t/*::[*/0x043E/*::]*/: { /* n:\"BrtBeginSlicerCacheOlapImpl\", */ T:1 },\n\t/*::[*/0x043F/*::]*/: { /* n:\"BrtEndSlicerCacheOlapImpl\", */ T:-1 },\n\t/*::[*/0x0440/*::]*/: { /* n:\"BrtBeginSlicerCacheLevelsData\", */ T:1 },\n\t/*::[*/0x0441/*::]*/: { /* n:\"BrtEndSlicerCacheLevelsData\", */ T:-1 },\n\t/*::[*/0x0442/*::]*/: { /* n:\"BrtBeginSlicerCacheLevelData\", */ T:1 },\n\t/*::[*/0x0443/*::]*/: { /* n:\"BrtEndSlicerCacheLevelData\", */ T:-1 },\n\t/*::[*/0x0444/*::]*/: { /* n:\"BrtBeginSlicerCacheSiRanges\", */ T:1 },\n\t/*::[*/0x0445/*::]*/: { /* n:\"BrtEndSlicerCacheSiRanges\", */ T:-1 },\n\t/*::[*/0x0446/*::]*/: { /* n:\"BrtBeginSlicerCacheSiRange\", */ T:1 },\n\t/*::[*/0x0447/*::]*/: { /* n:\"BrtEndSlicerCacheSiRange\", */ T:-1 },\n\t/*::[*/0x0448/*::]*/: { /* n:\"BrtSlicerCacheOlapItem\" */ },\n\t/*::[*/0x0449/*::]*/: { /* n:\"BrtBeginSlicerCacheSelections\", */ T:1 },\n\t/*::[*/0x044A/*::]*/: { /* n:\"BrtSlicerCacheSelection\" */ },\n\t/*::[*/0x044B/*::]*/: { /* n:\"BrtEndSlicerCacheSelections\", */ T:-1 },\n\t/*::[*/0x044C/*::]*/: { /* n:\"BrtBeginSlicerCacheNative\", */ T:1 },\n\t/*::[*/0x044D/*::]*/: { /* n:\"BrtEndSlicerCacheNative\", */ T:-1 },\n\t/*::[*/0x044E/*::]*/: { /* n:\"BrtSlicerCacheNativeItem\" */ },\n\t/*::[*/0x044F/*::]*/: { /* n:\"BrtRangeProtection14\" */ },\n\t/*::[*/0x0450/*::]*/: { /* n:\"BrtRangeProtectionIso14\" */ },\n\t/*::[*/0x0451/*::]*/: { /* n:\"BrtCellIgnoreEC14\" */ },\n\t/*::[*/0x0457/*::]*/: { /* n:\"BrtList14\" */ },\n\t/*::[*/0x0458/*::]*/: { /* n:\"BrtCFIcon\" */ },\n\t/*::[*/0x0459/*::]*/: { /* n:\"BrtBeginSlicerCachesPivotCacheIDs\", */ T:1 },\n\t/*::[*/0x045A/*::]*/: { /* n:\"BrtEndSlicerCachesPivotCacheIDs\", */ T:-1 },\n\t/*::[*/0x045B/*::]*/: { /* n:\"BrtBeginSlicers\", */ T:1 },\n\t/*::[*/0x045C/*::]*/: { /* n:\"BrtEndSlicers\", */ T:-1 },\n\t/*::[*/0x045D/*::]*/: { /* n:\"BrtWbProp14\" */ },\n\t/*::[*/0x045E/*::]*/: { /* n:\"BrtBeginSXEdit\", */ T:1 },\n\t/*::[*/0x045F/*::]*/: { /* n:\"BrtEndSXEdit\", */ T:-1 },\n\t/*::[*/0x0460/*::]*/: { /* n:\"BrtBeginSXEdits\", */ T:1 },\n\t/*::[*/0x0461/*::]*/: { /* n:\"BrtEndSXEdits\", */ T:-1 },\n\t/*::[*/0x0462/*::]*/: { /* n:\"BrtBeginSXChange\", */ T:1 },\n\t/*::[*/0x0463/*::]*/: { /* n:\"BrtEndSXChange\", */ T:-1 },\n\t/*::[*/0x0464/*::]*/: { /* n:\"BrtBeginSXChanges\", */ T:1 },\n\t/*::[*/0x0465/*::]*/: { /* n:\"BrtEndSXChanges\", */ T:-1 },\n\t/*::[*/0x0466/*::]*/: { /* n:\"BrtSXTupleItems\" */ },\n\t/*::[*/0x0468/*::]*/: { /* n:\"BrtBeginSlicerStyle\", */ T:1 },\n\t/*::[*/0x0469/*::]*/: { /* n:\"BrtEndSlicerStyle\", */ T:-1 },\n\t/*::[*/0x046A/*::]*/: { /* n:\"BrtSlicerStyleElement\" */ },\n\t/*::[*/0x046B/*::]*/: { /* n:\"BrtBeginStyleSheetExt14\", */ T:1 },\n\t/*::[*/0x046C/*::]*/: { /* n:\"BrtEndStyleSheetExt14\", */ T:-1 },\n\t/*::[*/0x046D/*::]*/: { /* n:\"BrtBeginSlicerCachesPivotCacheID\", */ T:1 },\n\t/*::[*/0x046E/*::]*/: { /* n:\"BrtEndSlicerCachesPivotCacheID\", */ T:-1 },\n\t/*::[*/0x046F/*::]*/: { /* n:\"BrtBeginConditionalFormattings\", */ T:1 },\n\t/*::[*/0x0470/*::]*/: { /* n:\"BrtEndConditionalFormattings\", */ T:-1 },\n\t/*::[*/0x0471/*::]*/: { /* n:\"BrtBeginPCDCalcMemExt\", */ T:1 },\n\t/*::[*/0x0472/*::]*/: { /* n:\"BrtEndPCDCalcMemExt\", */ T:-1 },\n\t/*::[*/0x0473/*::]*/: { /* n:\"BrtBeginPCDCalcMemsExt\", */ T:1 },\n\t/*::[*/0x0474/*::]*/: { /* n:\"BrtEndPCDCalcMemsExt\", */ T:-1 },\n\t/*::[*/0x0475/*::]*/: { /* n:\"BrtPCDField14\" */ },\n\t/*::[*/0x0476/*::]*/: { /* n:\"BrtBeginSlicerStyles\", */ T:1 },\n\t/*::[*/0x0477/*::]*/: { /* n:\"BrtEndSlicerStyles\", */ T:-1 },\n\t/*::[*/0x0478/*::]*/: { /* n:\"BrtBeginSlicerStyleElements\", */ T:1 },\n\t/*::[*/0x0479/*::]*/: { /* n:\"BrtEndSlicerStyleElements\", */ T:-1 },\n\t/*::[*/0x047A/*::]*/: { /* n:\"BrtCFRuleExt\" */ },\n\t/*::[*/0x047B/*::]*/: { /* n:\"BrtBeginSXCondFmt14\", */ T:1 },\n\t/*::[*/0x047C/*::]*/: { /* n:\"BrtEndSXCondFmt14\", */ T:-1 },\n\t/*::[*/0x047D/*::]*/: { /* n:\"BrtBeginSXCondFmts14\", */ T:1 },\n\t/*::[*/0x047E/*::]*/: { /* n:\"BrtEndSXCondFmts14\", */ T:-1 },\n\t/*::[*/0x0480/*::]*/: { /* n:\"BrtBeginSortCond14\", */ T:1 },\n\t/*::[*/0x0481/*::]*/: { /* n:\"BrtEndSortCond14\", */ T:-1 },\n\t/*::[*/0x0482/*::]*/: { /* n:\"BrtEndDVals14\", */ T:-1 },\n\t/*::[*/0x0483/*::]*/: { /* n:\"BrtEndIconSet14\", */ T:-1 },\n\t/*::[*/0x0484/*::]*/: { /* n:\"BrtEndDatabar14\", */ T:-1 },\n\t/*::[*/0x0485/*::]*/: { /* n:\"BrtBeginColorScale14\", */ T:1 },\n\t/*::[*/0x0486/*::]*/: { /* n:\"BrtEndColorScale14\", */ T:-1 },\n\t/*::[*/0x0487/*::]*/: { /* n:\"BrtBeginSxrules14\", */ T:1 },\n\t/*::[*/0x0488/*::]*/: { /* n:\"BrtEndSxrules14\", */ T:-1 },\n\t/*::[*/0x0489/*::]*/: { /* n:\"BrtBeginPRule14\", */ T:1 },\n\t/*::[*/0x048A/*::]*/: { /* n:\"BrtEndPRule14\", */ T:-1 },\n\t/*::[*/0x048B/*::]*/: { /* n:\"BrtBeginPRFilters14\", */ T:1 },\n\t/*::[*/0x048C/*::]*/: { /* n:\"BrtEndPRFilters14\", */ T:-1 },\n\t/*::[*/0x048D/*::]*/: { /* n:\"BrtBeginPRFilter14\", */ T:1 },\n\t/*::[*/0x048E/*::]*/: { /* n:\"BrtEndPRFilter14\", */ T:-1 },\n\t/*::[*/0x048F/*::]*/: { /* n:\"BrtBeginPRFItem14\", */ T:1 },\n\t/*::[*/0x0490/*::]*/: { /* n:\"BrtEndPRFItem14\", */ T:-1 },\n\t/*::[*/0x0491/*::]*/: { /* n:\"BrtBeginCellIgnoreECs14\", */ T:1 },\n\t/*::[*/0x0492/*::]*/: { /* n:\"BrtEndCellIgnoreECs14\", */ T:-1 },\n\t/*::[*/0x0493/*::]*/: { /* n:\"BrtDxf14\" */ },\n\t/*::[*/0x0494/*::]*/: { /* n:\"BrtBeginDxF14s\", */ T:1 },\n\t/*::[*/0x0495/*::]*/: { /* n:\"BrtEndDxf14s\", */ T:-1 },\n\t/*::[*/0x0499/*::]*/: { /* n:\"BrtFilter14\" */ },\n\t/*::[*/0x049A/*::]*/: { /* n:\"BrtBeginCustomFilters14\", */ T:1 },\n\t/*::[*/0x049C/*::]*/: { /* n:\"BrtCustomFilter14\" */ },\n\t/*::[*/0x049D/*::]*/: { /* n:\"BrtIconFilter14\" */ },\n\t/*::[*/0x049E/*::]*/: { /* n:\"BrtPivotCacheConnectionName\" */ },\n\t/*::[*/0x0800/*::]*/: { /* n:\"BrtBeginDecoupledPivotCacheIDs\", */ T:1 },\n\t/*::[*/0x0801/*::]*/: { /* n:\"BrtEndDecoupledPivotCacheIDs\", */ T:-1 },\n\t/*::[*/0x0802/*::]*/: { /* n:\"BrtDecoupledPivotCacheID\" */ },\n\t/*::[*/0x0803/*::]*/: { /* n:\"BrtBeginPivotTableRefs\", */ T:1 },\n\t/*::[*/0x0804/*::]*/: { /* n:\"BrtEndPivotTableRefs\", */ T:-1 },\n\t/*::[*/0x0805/*::]*/: { /* n:\"BrtPivotTableRef\" */ },\n\t/*::[*/0x0806/*::]*/: { /* n:\"BrtSlicerCacheBookPivotTables\" */ },\n\t/*::[*/0x0807/*::]*/: { /* n:\"BrtBeginSxvcells\", */ T:1 },\n\t/*::[*/0x0808/*::]*/: { /* n:\"BrtEndSxvcells\", */ T:-1 },\n\t/*::[*/0x0809/*::]*/: { /* n:\"BrtBeginSxRow\", */ T:1 },\n\t/*::[*/0x080A/*::]*/: { /* n:\"BrtEndSxRow\", */ T:-1 },\n\t/*::[*/0x080C/*::]*/: { /* n:\"BrtPcdCalcMem15\" */ },\n\t/*::[*/0x0813/*::]*/: { /* n:\"BrtQsi15\" */ },\n\t/*::[*/0x0814/*::]*/: { /* n:\"BrtBeginWebExtensions\", */ T:1 },\n\t/*::[*/0x0815/*::]*/: { /* n:\"BrtEndWebExtensions\", */ T:-1 },\n\t/*::[*/0x0816/*::]*/: { /* n:\"BrtWebExtension\" */ },\n\t/*::[*/0x0817/*::]*/: { /* n:\"BrtAbsPath15\" */ },\n\t/*::[*/0x0818/*::]*/: { /* n:\"BrtBeginPivotTableUISettings\", */ T:1 },\n\t/*::[*/0x0819/*::]*/: { /* n:\"BrtEndPivotTableUISettings\", */ T:-1 },\n\t/*::[*/0x081B/*::]*/: { /* n:\"BrtTableSlicerCacheIDs\" */ },\n\t/*::[*/0x081C/*::]*/: { /* n:\"BrtTableSlicerCacheID\" */ },\n\t/*::[*/0x081D/*::]*/: { /* n:\"BrtBeginTableSlicerCache\", */ T:1 },\n\t/*::[*/0x081E/*::]*/: { /* n:\"BrtEndTableSlicerCache\", */ T:-1 },\n\t/*::[*/0x081F/*::]*/: { /* n:\"BrtSxFilter15\" */ },\n\t/*::[*/0x0820/*::]*/: { /* n:\"BrtBeginTimelineCachePivotCacheIDs\", */ T:1 },\n\t/*::[*/0x0821/*::]*/: { /* n:\"BrtEndTimelineCachePivotCacheIDs\", */ T:-1 },\n\t/*::[*/0x0822/*::]*/: { /* n:\"BrtTimelineCachePivotCacheID\" */ },\n\t/*::[*/0x0823/*::]*/: { /* n:\"BrtBeginTimelineCacheIDs\", */ T:1 },\n\t/*::[*/0x0824/*::]*/: { /* n:\"BrtEndTimelineCacheIDs\", */ T:-1 },\n\t/*::[*/0x0825/*::]*/: { /* n:\"BrtBeginTimelineCacheID\", */ T:1 },\n\t/*::[*/0x0826/*::]*/: { /* n:\"BrtEndTimelineCacheID\", */ T:-1 },\n\t/*::[*/0x0827/*::]*/: { /* n:\"BrtBeginTimelinesEx\", */ T:1 },\n\t/*::[*/0x0828/*::]*/: { /* n:\"BrtEndTimelinesEx\", */ T:-1 },\n\t/*::[*/0x0829/*::]*/: { /* n:\"BrtBeginTimelineEx\", */ T:1 },\n\t/*::[*/0x082A/*::]*/: { /* n:\"BrtEndTimelineEx\", */ T:-1 },\n\t/*::[*/0x082B/*::]*/: { /* n:\"BrtWorkBookPr15\" */ },\n\t/*::[*/0x082C/*::]*/: { /* n:\"BrtPCDH15\" */ },\n\t/*::[*/0x082D/*::]*/: { /* n:\"BrtBeginTimelineStyle\", */ T:1 },\n\t/*::[*/0x082E/*::]*/: { /* n:\"BrtEndTimelineStyle\", */ T:-1 },\n\t/*::[*/0x082F/*::]*/: { /* n:\"BrtTimelineStyleElement\" */ },\n\t/*::[*/0x0830/*::]*/: { /* n:\"BrtBeginTimelineStylesheetExt15\", */ T:1 },\n\t/*::[*/0x0831/*::]*/: { /* n:\"BrtEndTimelineStylesheetExt15\", */ T:-1 },\n\t/*::[*/0x0832/*::]*/: { /* n:\"BrtBeginTimelineStyles\", */ T:1 },\n\t/*::[*/0x0833/*::]*/: { /* n:\"BrtEndTimelineStyles\", */ T:-1 },\n\t/*::[*/0x0834/*::]*/: { /* n:\"BrtBeginTimelineStyleElements\", */ T:1 },\n\t/*::[*/0x0835/*::]*/: { /* n:\"BrtEndTimelineStyleElements\", */ T:-1 },\n\t/*::[*/0x0836/*::]*/: { /* n:\"BrtDxf15\" */ },\n\t/*::[*/0x0837/*::]*/: { /* n:\"BrtBeginDxfs15\", */ T:1 },\n\t/*::[*/0x0838/*::]*/: { /* n:\"BrtEndDxfs15\", */ T:-1 },\n\t/*::[*/0x0839/*::]*/: { /* n:\"BrtSlicerCacheHideItemsWithNoData\" */ },\n\t/*::[*/0x083A/*::]*/: { /* n:\"BrtBeginItemUniqueNames\", */ T:1 },\n\t/*::[*/0x083B/*::]*/: { /* n:\"BrtEndItemUniqueNames\", */ T:-1 },\n\t/*::[*/0x083C/*::]*/: { /* n:\"BrtItemUniqueName\" */ },\n\t/*::[*/0x083D/*::]*/: { /* n:\"BrtBeginExtConn15\", */ T:1 },\n\t/*::[*/0x083E/*::]*/: { /* n:\"BrtEndExtConn15\", */ T:-1 },\n\t/*::[*/0x083F/*::]*/: { /* n:\"BrtBeginOledbPr15\", */ T:1 },\n\t/*::[*/0x0840/*::]*/: { /* n:\"BrtEndOledbPr15\", */ T:-1 },\n\t/*::[*/0x0841/*::]*/: { /* n:\"BrtBeginDataFeedPr15\", */ T:1 },\n\t/*::[*/0x0842/*::]*/: { /* n:\"BrtEndDataFeedPr15\", */ T:-1 },\n\t/*::[*/0x0843/*::]*/: { /* n:\"BrtTextPr15\" */ },\n\t/*::[*/0x0844/*::]*/: { /* n:\"BrtRangePr15\" */ },\n\t/*::[*/0x0845/*::]*/: { /* n:\"BrtDbCommand15\" */ },\n\t/*::[*/0x0846/*::]*/: { /* n:\"BrtBeginDbTables15\", */ T:1 },\n\t/*::[*/0x0847/*::]*/: { /* n:\"BrtEndDbTables15\", */ T:-1 },\n\t/*::[*/0x0848/*::]*/: { /* n:\"BrtDbTable15\" */ },\n\t/*::[*/0x0849/*::]*/: { /* n:\"BrtBeginDataModel\", */ T:1 },\n\t/*::[*/0x084A/*::]*/: { /* n:\"BrtEndDataModel\", */ T:-1 },\n\t/*::[*/0x084B/*::]*/: { /* n:\"BrtBeginModelTables\", */ T:1 },\n\t/*::[*/0x084C/*::]*/: { /* n:\"BrtEndModelTables\", */ T:-1 },\n\t/*::[*/0x084D/*::]*/: { /* n:\"BrtModelTable\" */ },\n\t/*::[*/0x084E/*::]*/: { /* n:\"BrtBeginModelRelationships\", */ T:1 },\n\t/*::[*/0x084F/*::]*/: { /* n:\"BrtEndModelRelationships\", */ T:-1 },\n\t/*::[*/0x0850/*::]*/: { /* n:\"BrtModelRelationship\" */ },\n\t/*::[*/0x0851/*::]*/: { /* n:\"BrtBeginECTxtWiz15\", */ T:1 },\n\t/*::[*/0x0852/*::]*/: { /* n:\"BrtEndECTxtWiz15\", */ T:-1 },\n\t/*::[*/0x0853/*::]*/: { /* n:\"BrtBeginECTWFldInfoLst15\", */ T:1 },\n\t/*::[*/0x0854/*::]*/: { /* n:\"BrtEndECTWFldInfoLst15\", */ T:-1 },\n\t/*::[*/0x0855/*::]*/: { /* n:\"BrtBeginECTWFldInfo15\", */ T:1 },\n\t/*::[*/0x0856/*::]*/: { /* n:\"BrtFieldListActiveItem\" */ },\n\t/*::[*/0x0857/*::]*/: { /* n:\"BrtPivotCacheIdVersion\" */ },\n\t/*::[*/0x0858/*::]*/: { /* n:\"BrtSXDI15\" */ },\n\t/*::[*/0x0859/*::]*/: { /* n:\"BrtBeginModelTimeGroupings\", */ T:1 },\n\t/*::[*/0x085A/*::]*/: { /* n:\"BrtEndModelTimeGroupings\", */ T:-1 },\n\t/*::[*/0x085B/*::]*/: { /* n:\"BrtBeginModelTimeGrouping\", */ T:1 },\n\t/*::[*/0x085C/*::]*/: { /* n:\"BrtEndModelTimeGrouping\", */ T:-1 },\n\t/*::[*/0x085D/*::]*/: { /* n:\"BrtModelTimeGroupingCalcCol\" */ },\n\t/*::[*/0x0C00/*::]*/: { /* n:\"BrtUid\" */ },\n\t/*::[*/0x0C01/*::]*/: { /* n:\"BrtRevisionPtr\" */ },\n\t/*::[*/0x1000/*::]*/: { /* n:\"BrtBeginDynamicArrayPr\", */ T:1 },\n\t/*::[*/0x1001/*::]*/: { /* n:\"BrtEndDynamicArrayPr\", */ T:-1 },\n\t/*::[*/0x138A/*::]*/: { /* n:\"BrtBeginRichValueBlock\", */ T:1 },\n\t/*::[*/0x138B/*::]*/: { /* n:\"BrtEndRichValueBlock\", */ T:-1 },\n\t/*::[*/0x13D9/*::]*/: { /* n:\"BrtBeginRichFilters\", */ T:1 },\n\t/*::[*/0x13DA/*::]*/: { /* n:\"BrtEndRichFilters\", */ T:-1 },\n\t/*::[*/0x13DB/*::]*/: { /* n:\"BrtRichFilter\" */ },\n\t/*::[*/0x13DC/*::]*/: { /* n:\"BrtBeginRichFilterColumn\", */ T:1 },\n\t/*::[*/0x13DD/*::]*/: { /* n:\"BrtEndRichFilterColumn\", */ T:-1 },\n\t/*::[*/0x13DE/*::]*/: { /* n:\"BrtBeginCustomRichFilters\", */ T:1 },\n\t/*::[*/0x13DF/*::]*/: { /* n:\"BrtEndCustomRichFilters\", */ T:-1 },\n\t/*::[*/0x13E0/*::]*/: { /* n:\"BrtCustomRichFilter\" */ },\n\t/*::[*/0x13E1/*::]*/: { /* n:\"BrtTop10RichFilter\" */ },\n\t/*::[*/0x13E2/*::]*/: { /* n:\"BrtDynamicRichFilter\" */ },\n\t/*::[*/0x13E4/*::]*/: { /* n:\"BrtBeginRichSortCondition\", */ T:1 },\n\t/*::[*/0x13E5/*::]*/: { /* n:\"BrtEndRichSortCondition\", */ T:-1 },\n\t/*::[*/0x13E6/*::]*/: { /* n:\"BrtRichFilterDateGroupItem\" */ },\n\t/*::[*/0x13E7/*::]*/: { /* n:\"BrtBeginCalcFeatures\", */ T:1 },\n\t/*::[*/0x13E8/*::]*/: { /* n:\"BrtEndCalcFeatures\", */ T:-1 },\n\t/*::[*/0x13E9/*::]*/: { /* n:\"BrtCalcFeature\" */ },\n\t/*::[*/0x13EB/*::]*/: { /* n:\"BrtExternalLinksPr\" */ },\n\t/*::[*/0xFFFF/*::]*/: { n:\"\" }\n};\n\n/* [MS-XLS] 2.3 Record Enumeration (and other sources) */\nvar XLSRecordEnum = {\n\t/* [MS-XLS] 2.3 Record Enumeration 2021-08-17 */\n\t/*::[*/0x0006/*::]*/: { /* n:\"Formula\", */ f:parse_Formula },\n\t/*::[*/0x000a/*::]*/: { /* n:\"EOF\", */ f:parsenoop2 },\n\t/*::[*/0x000c/*::]*/: { /* n:\"CalcCount\", */ f:parseuint16 }, //\n\t/*::[*/0x000d/*::]*/: { /* n:\"CalcMode\", */ f:parseuint16 }, //\n\t/*::[*/0x000e/*::]*/: { /* n:\"CalcPrecision\", */ f:parsebool }, //\n\t/*::[*/0x000f/*::]*/: { /* n:\"CalcRefMode\", */ f:parsebool }, //\n\t/*::[*/0x0010/*::]*/: { /* n:\"CalcDelta\", */ f:parse_Xnum }, //\n\t/*::[*/0x0011/*::]*/: { /* n:\"CalcIter\", */ f:parsebool }, //\n\t/*::[*/0x0012/*::]*/: { /* n:\"Protect\", */ f:parsebool },\n\t/*::[*/0x0013/*::]*/: { /* n:\"Password\", */ f:parseuint16 },\n\t/*::[*/0x0014/*::]*/: { /* n:\"Header\", */ f:parse_XLHeaderFooter },\n\t/*::[*/0x0015/*::]*/: { /* n:\"Footer\", */ f:parse_XLHeaderFooter },\n\t/*::[*/0x0017/*::]*/: { /* n:\"ExternSheet\", */ f:parse_ExternSheet },\n\t/*::[*/0x0018/*::]*/: { /* n:\"Lbl\", */ f:parse_Lbl },\n\t/*::[*/0x0019/*::]*/: { /* n:\"WinProtect\", */ f:parsebool },\n\t/*::[*/0x001a/*::]*/: { /* n:\"VerticalPageBreaks\", */ },\n\t/*::[*/0x001b/*::]*/: { /* n:\"HorizontalPageBreaks\", */ },\n\t/*::[*/0x001c/*::]*/: { /* n:\"Note\", */ f:parse_Note },\n\t/*::[*/0x001d/*::]*/: { /* n:\"Selection\", */ },\n\t/*::[*/0x0022/*::]*/: { /* n:\"Date1904\", */ f:parsebool },\n\t/*::[*/0x0023/*::]*/: { /* n:\"ExternName\", */ f:parse_ExternName },\n\t/*::[*/0x0026/*::]*/: { /* n:\"LeftMargin\", */ f:parse_Xnum }, // *\n\t/*::[*/0x0027/*::]*/: { /* n:\"RightMargin\", */ f:parse_Xnum }, // *\n\t/*::[*/0x0028/*::]*/: { /* n:\"TopMargin\", */ f:parse_Xnum }, // *\n\t/*::[*/0x0029/*::]*/: { /* n:\"BottomMargin\", */ f:parse_Xnum }, // *\n\t/*::[*/0x002a/*::]*/: { /* n:\"PrintRowCol\", */ f:parsebool },\n\t/*::[*/0x002b/*::]*/: { /* n:\"PrintGrid\", */ f:parsebool },\n\t/*::[*/0x002f/*::]*/: { /* n:\"FilePass\", */ f:parse_FilePass },\n\t/*::[*/0x0031/*::]*/: { /* n:\"Font\", */ f:parse_Font },\n\t/*::[*/0x0033/*::]*/: { /* n:\"PrintSize\", */ f:parseuint16 },\n\t/*::[*/0x003c/*::]*/: { /* n:\"Continue\", */ },\n\t/*::[*/0x003d/*::]*/: { /* n:\"Window1\", */ f:parse_Window1 },\n\t/*::[*/0x0040/*::]*/: { /* n:\"Backup\", */ f:parsebool },\n\t/*::[*/0x0041/*::]*/: { /* n:\"Pane\", */ f:parse_Pane },\n\t/*::[*/0x0042/*::]*/: { /* n:\"CodePage\", */ f:parseuint16 },\n\t/*::[*/0x004d/*::]*/: { /* n:\"Pls\", */ },\n\t/*::[*/0x0050/*::]*/: { /* n:\"DCon\", */ },\n\t/*::[*/0x0051/*::]*/: { /* n:\"DConRef\", */ },\n\t/*::[*/0x0052/*::]*/: { /* n:\"DConName\", */ },\n\t/*::[*/0x0055/*::]*/: { /* n:\"DefColWidth\", */ f:parseuint16 },\n\t/*::[*/0x0059/*::]*/: { /* n:\"XCT\", */ },\n\t/*::[*/0x005a/*::]*/: { /* n:\"CRN\", */ },\n\t/*::[*/0x005b/*::]*/: { /* n:\"FileSharing\", */ },\n\t/*::[*/0x005c/*::]*/: { /* n:\"WriteAccess\", */ f:parse_WriteAccess },\n\t/*::[*/0x005d/*::]*/: { /* n:\"Obj\", */ f:parse_Obj },\n\t/*::[*/0x005e/*::]*/: { /* n:\"Uncalced\", */ },\n\t/*::[*/0x005f/*::]*/: { /* n:\"CalcSaveRecalc\", */ f:parsebool }, //\n\t/*::[*/0x0060/*::]*/: { /* n:\"Template\", */ },\n\t/*::[*/0x0061/*::]*/: { /* n:\"Intl\", */ },\n\t/*::[*/0x0063/*::]*/: { /* n:\"ObjProtect\", */ f:parsebool },\n\t/*::[*/0x007d/*::]*/: { /* n:\"ColInfo\", */ f:parse_ColInfo },\n\t/*::[*/0x0080/*::]*/: { /* n:\"Guts\", */ f:parse_Guts },\n\t/*::[*/0x0081/*::]*/: { /* n:\"WsBool\", */ f:parse_WsBool },\n\t/*::[*/0x0082/*::]*/: { /* n:\"GridSet\", */ f:parseuint16 },\n\t/*::[*/0x0083/*::]*/: { /* n:\"HCenter\", */ f:parsebool },\n\t/*::[*/0x0084/*::]*/: { /* n:\"VCenter\", */ f:parsebool },\n\t/*::[*/0x0085/*::]*/: { /* n:\"BoundSheet8\", */ f:parse_BoundSheet8 },\n\t/*::[*/0x0086/*::]*/: { /* n:\"WriteProtect\", */ },\n\t/*::[*/0x008c/*::]*/: { /* n:\"Country\", */ f:parse_Country },\n\t/*::[*/0x008d/*::]*/: { /* n:\"HideObj\", */ f:parseuint16 },\n\t/*::[*/0x0090/*::]*/: { /* n:\"Sort\", */ },\n\t/*::[*/0x0092/*::]*/: { /* n:\"Palette\", */ f:parse_Palette },\n\t/*::[*/0x0097/*::]*/: { /* n:\"Sync\", */ },\n\t/*::[*/0x0098/*::]*/: { /* n:\"LPr\", */ },\n\t/*::[*/0x0099/*::]*/: { /* n:\"DxGCol\", */ },\n\t/*::[*/0x009a/*::]*/: { /* n:\"FnGroupName\", */ },\n\t/*::[*/0x009b/*::]*/: { /* n:\"FilterMode\", */ },\n\t/*::[*/0x009c/*::]*/: { /* n:\"BuiltInFnGroupCount\", */ f:parseuint16 },\n\t/*::[*/0x009d/*::]*/: { /* n:\"AutoFilterInfo\", */ },\n\t/*::[*/0x009e/*::]*/: { /* n:\"AutoFilter\", */ },\n\t/*::[*/0x00a0/*::]*/: { /* n:\"Scl\", */ f:parse_Scl },\n\t/*::[*/0x00a1/*::]*/: { /* n:\"Setup\", */ f:parse_Setup },\n\t/*::[*/0x00ae/*::]*/: { /* n:\"ScenMan\", */ },\n\t/*::[*/0x00af/*::]*/: { /* n:\"SCENARIO\", */ },\n\t/*::[*/0x00b0/*::]*/: { /* n:\"SxView\", */ },\n\t/*::[*/0x00b1/*::]*/: { /* n:\"Sxvd\", */ },\n\t/*::[*/0x00b2/*::]*/: { /* n:\"SXVI\", */ },\n\t/*::[*/0x00b4/*::]*/: { /* n:\"SxIvd\", */ },\n\t/*::[*/0x00b5/*::]*/: { /* n:\"SXLI\", */ },\n\t/*::[*/0x00b6/*::]*/: { /* n:\"SXPI\", */ },\n\t/*::[*/0x00b8/*::]*/: { /* n:\"DocRoute\", */ },\n\t/*::[*/0x00b9/*::]*/: { /* n:\"RecipName\", */ },\n\t/*::[*/0x00bd/*::]*/: { /* n:\"MulRk\", */ f:parse_MulRk },\n\t/*::[*/0x00be/*::]*/: { /* n:\"MulBlank\", */ f:parse_MulBlank },\n\t/*::[*/0x00c1/*::]*/: { /* n:\"Mms\", */ f:parsenoop2 },\n\t/*::[*/0x00c5/*::]*/: { /* n:\"SXDI\", */ },\n\t/*::[*/0x00c6/*::]*/: { /* n:\"SXDB\", */ },\n\t/*::[*/0x00c7/*::]*/: { /* n:\"SXFDB\", */ },\n\t/*::[*/0x00c8/*::]*/: { /* n:\"SXDBB\", */ },\n\t/*::[*/0x00c9/*::]*/: { /* n:\"SXNum\", */ },\n\t/*::[*/0x00ca/*::]*/: { /* n:\"SxBool\", */ f:parsebool },\n\t/*::[*/0x00cb/*::]*/: { /* n:\"SxErr\", */ },\n\t/*::[*/0x00cc/*::]*/: { /* n:\"SXInt\", */ },\n\t/*::[*/0x00cd/*::]*/: { /* n:\"SXString\", */ },\n\t/*::[*/0x00ce/*::]*/: { /* n:\"SXDtr\", */ },\n\t/*::[*/0x00cf/*::]*/: { /* n:\"SxNil\", */ },\n\t/*::[*/0x00d0/*::]*/: { /* n:\"SXTbl\", */ },\n\t/*::[*/0x00d1/*::]*/: { /* n:\"SXTBRGIITM\", */ },\n\t/*::[*/0x00d2/*::]*/: { /* n:\"SxTbpg\", */ },\n\t/*::[*/0x00d3/*::]*/: { /* n:\"ObProj\", */ },\n\t/*::[*/0x00d5/*::]*/: { /* n:\"SXStreamID\", */ },\n\t/*::[*/0x00d7/*::]*/: { /* n:\"DBCell\", */ },\n\t/*::[*/0x00d8/*::]*/: { /* n:\"SXRng\", */ },\n\t/*::[*/0x00d9/*::]*/: { /* n:\"SxIsxoper\", */ },\n\t/*::[*/0x00da/*::]*/: { /* n:\"BookBool\", */ f:parseuint16 },\n\t/*::[*/0x00dc/*::]*/: { /* n:\"DbOrParamQry\", */ },\n\t/*::[*/0x00dd/*::]*/: { /* n:\"ScenarioProtect\", */ f:parsebool },\n\t/*::[*/0x00de/*::]*/: { /* n:\"OleObjectSize\", */ },\n\t/*::[*/0x00e0/*::]*/: { /* n:\"XF\", */ f:parse_XF },\n\t/*::[*/0x00e1/*::]*/: { /* n:\"InterfaceHdr\", */ f:parse_InterfaceHdr },\n\t/*::[*/0x00e2/*::]*/: { /* n:\"InterfaceEnd\", */ f:parsenoop2 },\n\t/*::[*/0x00e3/*::]*/: { /* n:\"SXVS\", */ },\n\t/*::[*/0x00e5/*::]*/: { /* n:\"MergeCells\", */ f:parse_MergeCells },\n\t/*::[*/0x00e9/*::]*/: { /* n:\"BkHim\", */ },\n\t/*::[*/0x00eb/*::]*/: { /* n:\"MsoDrawingGroup\", */ },\n\t/*::[*/0x00ec/*::]*/: { /* n:\"MsoDrawing\", */ },\n\t/*::[*/0x00ed/*::]*/: { /* n:\"MsoDrawingSelection\", */ },\n\t/*::[*/0x00ef/*::]*/: { /* n:\"PhoneticInfo\", */ },\n\t/*::[*/0x00f0/*::]*/: { /* n:\"SxRule\", */ },\n\t/*::[*/0x00f1/*::]*/: { /* n:\"SXEx\", */ },\n\t/*::[*/0x00f2/*::]*/: { /* n:\"SxFilt\", */ },\n\t/*::[*/0x00f4/*::]*/: { /* n:\"SxDXF\", */ },\n\t/*::[*/0x00f5/*::]*/: { /* n:\"SxItm\", */ },\n\t/*::[*/0x00f6/*::]*/: { /* n:\"SxName\", */ },\n\t/*::[*/0x00f7/*::]*/: { /* n:\"SxSelect\", */ },\n\t/*::[*/0x00f8/*::]*/: { /* n:\"SXPair\", */ },\n\t/*::[*/0x00f9/*::]*/: { /* n:\"SxFmla\", */ },\n\t/*::[*/0x00fb/*::]*/: { /* n:\"SxFormat\", */ },\n\t/*::[*/0x00fc/*::]*/: { /* n:\"SST\", */ f:parse_SST },\n\t/*::[*/0x00fd/*::]*/: { /* n:\"LabelSst\", */ f:parse_LabelSst },\n\t/*::[*/0x00ff/*::]*/: { /* n:\"ExtSST\", */ f:parse_ExtSST },\n\t/*::[*/0x0100/*::]*/: { /* n:\"SXVDEx\", */ },\n\t/*::[*/0x0103/*::]*/: { /* n:\"SXFormula\", */ },\n\t/*::[*/0x0122/*::]*/: { /* n:\"SXDBEx\", */ },\n\t/*::[*/0x0137/*::]*/: { /* n:\"RRDInsDel\", */ },\n\t/*::[*/0x0138/*::]*/: { /* n:\"RRDHead\", */ },\n\t/*::[*/0x013b/*::]*/: { /* n:\"RRDChgCell\", */ },\n\t/*::[*/0x013d/*::]*/: { /* n:\"RRTabId\", */ f:parseuint16a },\n\t/*::[*/0x013e/*::]*/: { /* n:\"RRDRenSheet\", */ },\n\t/*::[*/0x013f/*::]*/: { /* n:\"RRSort\", */ },\n\t/*::[*/0x0140/*::]*/: { /* n:\"RRDMove\", */ },\n\t/*::[*/0x014a/*::]*/: { /* n:\"RRFormat\", */ },\n\t/*::[*/0x014b/*::]*/: { /* n:\"RRAutoFmt\", */ },\n\t/*::[*/0x014d/*::]*/: { /* n:\"RRInsertSh\", */ },\n\t/*::[*/0x014e/*::]*/: { /* n:\"RRDMoveBegin\", */ },\n\t/*::[*/0x014f/*::]*/: { /* n:\"RRDMoveEnd\", */ },\n\t/*::[*/0x0150/*::]*/: { /* n:\"RRDInsDelBegin\", */ },\n\t/*::[*/0x0151/*::]*/: { /* n:\"RRDInsDelEnd\", */ },\n\t/*::[*/0x0152/*::]*/: { /* n:\"RRDConflict\", */ },\n\t/*::[*/0x0153/*::]*/: { /* n:\"RRDDefName\", */ },\n\t/*::[*/0x0154/*::]*/: { /* n:\"RRDRstEtxp\", */ },\n\t/*::[*/0x015f/*::]*/: { /* n:\"LRng\", */ },\n\t/*::[*/0x0160/*::]*/: { /* n:\"UsesELFs\", */ f:parsebool },\n\t/*::[*/0x0161/*::]*/: { /* n:\"DSF\", */ f:parsenoop2 },\n\t/*::[*/0x0191/*::]*/: { /* n:\"CUsr\", */ },\n\t/*::[*/0x0192/*::]*/: { /* n:\"CbUsr\", */ },\n\t/*::[*/0x0193/*::]*/: { /* n:\"UsrInfo\", */ },\n\t/*::[*/0x0194/*::]*/: { /* n:\"UsrExcl\", */ },\n\t/*::[*/0x0195/*::]*/: { /* n:\"FileLock\", */ },\n\t/*::[*/0x0196/*::]*/: { /* n:\"RRDInfo\", */ },\n\t/*::[*/0x0197/*::]*/: { /* n:\"BCUsrs\", */ },\n\t/*::[*/0x0198/*::]*/: { /* n:\"UsrChk\", */ },\n\t/*::[*/0x01a9/*::]*/: { /* n:\"UserBView\", */ },\n\t/*::[*/0x01aa/*::]*/: { /* n:\"UserSViewBegin\", */ },\n\t/*::[*/0x01ab/*::]*/: { /* n:\"UserSViewEnd\", */ },\n\t/*::[*/0x01ac/*::]*/: { /* n:\"RRDUserView\", */ },\n\t/*::[*/0x01ad/*::]*/: { /* n:\"Qsi\", */ },\n\t/*::[*/0x01ae/*::]*/: { /* n:\"SupBook\", */ f:parse_SupBook },\n\t/*::[*/0x01af/*::]*/: { /* n:\"Prot4Rev\", */ f:parsebool },\n\t/*::[*/0x01b0/*::]*/: { /* n:\"CondFmt\", */ },\n\t/*::[*/0x01b1/*::]*/: { /* n:\"CF\", */ },\n\t/*::[*/0x01b2/*::]*/: { /* n:\"DVal\", */ },\n\t/*::[*/0x01b5/*::]*/: { /* n:\"DConBin\", */ },\n\t/*::[*/0x01b6/*::]*/: { /* n:\"TxO\", */ f:parse_TxO },\n\t/*::[*/0x01b7/*::]*/: { /* n:\"RefreshAll\", */ f:parsebool }, //\n\t/*::[*/0x01b8/*::]*/: { /* n:\"HLink\", */ f:parse_HLink },\n\t/*::[*/0x01b9/*::]*/: { /* n:\"Lel\", */ },\n\t/*::[*/0x01ba/*::]*/: { /* n:\"CodeName\", */ f:parse_XLUnicodeString },\n\t/*::[*/0x01bb/*::]*/: { /* n:\"SXFDBType\", */ },\n\t/*::[*/0x01bc/*::]*/: { /* n:\"Prot4RevPass\", */ f:parseuint16 },\n\t/*::[*/0x01bd/*::]*/: { /* n:\"ObNoMacros\", */ },\n\t/*::[*/0x01be/*::]*/: { /* n:\"Dv\", */ },\n\t/*::[*/0x01c0/*::]*/: { /* n:\"Excel9File\", */ f:parsenoop2 },\n\t/*::[*/0x01c1/*::]*/: { /* n:\"RecalcId\", */ f:parse_RecalcId, r:2},\n\t/*::[*/0x01c2/*::]*/: { /* n:\"EntExU2\", */ f:parsenoop2 },\n\t/*::[*/0x0200/*::]*/: { /* n:\"Dimensions\", */ f:parse_Dimensions },\n\t/*::[*/0x0201/*::]*/: { /* n:\"Blank\", */ f:parse_Blank },\n\t/*::[*/0x0203/*::]*/: { /* n:\"Number\", */ f:parse_Number },\n\t/*::[*/0x0204/*::]*/: { /* n:\"Label\", */ f:parse_Label },\n\t/*::[*/0x0205/*::]*/: { /* n:\"BoolErr\", */ f:parse_BoolErr },\n\t/*::[*/0x0207/*::]*/: { /* n:\"String\", */ f:parse_String },\n\t/*::[*/0x0208/*::]*/: { /* n:\"Row\", */ f:parse_Row },\n\t/*::[*/0x020b/*::]*/: { /* n:\"Index\", */ },\n\t/*::[*/0x0221/*::]*/: { /* n:\"Array\", */ f:parse_Array },\n\t/*::[*/0x0225/*::]*/: { /* n:\"DefaultRowHeight\", */ f:parse_DefaultRowHeight },\n\t/*::[*/0x0236/*::]*/: { /* n:\"Table\", */ },\n\t/*::[*/0x023e/*::]*/: { /* n:\"Window2\", */ f:parse_Window2 },\n\t/*::[*/0x027e/*::]*/: { /* n:\"RK\", */ f:parse_RK },\n\t/*::[*/0x0293/*::]*/: { /* n:\"Style\", */ },\n\t/*::[*/0x0418/*::]*/: { /* n:\"BigName\", */ },\n\t/*::[*/0x041e/*::]*/: { /* n:\"Format\", */ f:parse_Format },\n\t/*::[*/0x043c/*::]*/: { /* n:\"ContinueBigName\", */ },\n\t/*::[*/0x04bc/*::]*/: { /* n:\"ShrFmla\", */ f:parse_ShrFmla },\n\t/*::[*/0x0800/*::]*/: { /* n:\"HLinkTooltip\", */ f:parse_HLinkTooltip },\n\t/*::[*/0x0801/*::]*/: { /* n:\"WebPub\", */ },\n\t/*::[*/0x0802/*::]*/: { /* n:\"QsiSXTag\", */ },\n\t/*::[*/0x0803/*::]*/: { /* n:\"DBQueryExt\", */ },\n\t/*::[*/0x0804/*::]*/: { /* n:\"ExtString\", */ },\n\t/*::[*/0x0805/*::]*/: { /* n:\"TxtQry\", */ },\n\t/*::[*/0x0806/*::]*/: { /* n:\"Qsir\", */ },\n\t/*::[*/0x0807/*::]*/: { /* n:\"Qsif\", */ },\n\t/*::[*/0x0808/*::]*/: { /* n:\"RRDTQSIF\", */ },\n\t/*::[*/0x0809/*::]*/: { /* n:\"BOF\", */ f:parse_BOF },\n\t/*::[*/0x080a/*::]*/: { /* n:\"OleDbConn\", */ },\n\t/*::[*/0x080b/*::]*/: { /* n:\"WOpt\", */ },\n\t/*::[*/0x080c/*::]*/: { /* n:\"SXViewEx\", */ },\n\t/*::[*/0x080d/*::]*/: { /* n:\"SXTH\", */ },\n\t/*::[*/0x080e/*::]*/: { /* n:\"SXPIEx\", */ },\n\t/*::[*/0x080f/*::]*/: { /* n:\"SXVDTEx\", */ },\n\t/*::[*/0x0810/*::]*/: { /* n:\"SXViewEx9\", */ },\n\t/*::[*/0x0812/*::]*/: { /* n:\"ContinueFrt\", */ },\n\t/*::[*/0x0813/*::]*/: { /* n:\"RealTimeData\", */ },\n\t/*::[*/0x0850/*::]*/: { /* n:\"ChartFrtInfo\", */ },\n\t/*::[*/0x0851/*::]*/: { /* n:\"FrtWrapper\", */ },\n\t/*::[*/0x0852/*::]*/: { /* n:\"StartBlock\", */ },\n\t/*::[*/0x0853/*::]*/: { /* n:\"EndBlock\", */ },\n\t/*::[*/0x0854/*::]*/: { /* n:\"StartObject\", */ },\n\t/*::[*/0x0855/*::]*/: { /* n:\"EndObject\", */ },\n\t/*::[*/0x0856/*::]*/: { /* n:\"CatLab\", */ },\n\t/*::[*/0x0857/*::]*/: { /* n:\"YMult\", */ },\n\t/*::[*/0x0858/*::]*/: { /* n:\"SXViewLink\", */ },\n\t/*::[*/0x0859/*::]*/: { /* n:\"PivotChartBits\", */ },\n\t/*::[*/0x085a/*::]*/: { /* n:\"FrtFontList\", */ },\n\t/*::[*/0x0862/*::]*/: { /* n:\"SheetExt\", */ },\n\t/*::[*/0x0863/*::]*/: { /* n:\"BookExt\", */ r:12},\n\t/*::[*/0x0864/*::]*/: { /* n:\"SXAddl\", */ },\n\t/*::[*/0x0865/*::]*/: { /* n:\"CrErr\", */ },\n\t/*::[*/0x0866/*::]*/: { /* n:\"HFPicture\", */ },\n\t/*::[*/0x0867/*::]*/: { /* n:\"FeatHdr\", */ f:parsenoop2 },\n\t/*::[*/0x0868/*::]*/: { /* n:\"Feat\", */ },\n\t/*::[*/0x086a/*::]*/: { /* n:\"DataLabExt\", */ },\n\t/*::[*/0x086b/*::]*/: { /* n:\"DataLabExtContents\", */ },\n\t/*::[*/0x086c/*::]*/: { /* n:\"CellWatch\", */ },\n\t/*::[*/0x0871/*::]*/: { /* n:\"FeatHdr11\", */ },\n\t/*::[*/0x0872/*::]*/: { /* n:\"Feature11\", */ },\n\t/*::[*/0x0874/*::]*/: { /* n:\"DropDownObjIds\", */ },\n\t/*::[*/0x0875/*::]*/: { /* n:\"ContinueFrt11\", */ },\n\t/*::[*/0x0876/*::]*/: { /* n:\"DConn\", */ },\n\t/*::[*/0x0877/*::]*/: { /* n:\"List12\", */ },\n\t/*::[*/0x0878/*::]*/: { /* n:\"Feature12\", */ },\n\t/*::[*/0x0879/*::]*/: { /* n:\"CondFmt12\", */ },\n\t/*::[*/0x087a/*::]*/: { /* n:\"CF12\", */ },\n\t/*::[*/0x087b/*::]*/: { /* n:\"CFEx\", */ },\n\t/*::[*/0x087c/*::]*/: { /* n:\"XFCRC\", */ f:parse_XFCRC, r:12 },\n\t/*::[*/0x087d/*::]*/: { /* n:\"XFExt\", */ f:parse_XFExt, r:12 },\n\t/*::[*/0x087e/*::]*/: { /* n:\"AutoFilter12\", */ },\n\t/*::[*/0x087f/*::]*/: { /* n:\"ContinueFrt12\", */ },\n\t/*::[*/0x0884/*::]*/: { /* n:\"MDTInfo\", */ },\n\t/*::[*/0x0885/*::]*/: { /* n:\"MDXStr\", */ },\n\t/*::[*/0x0886/*::]*/: { /* n:\"MDXTuple\", */ },\n\t/*::[*/0x0887/*::]*/: { /* n:\"MDXSet\", */ },\n\t/*::[*/0x0888/*::]*/: { /* n:\"MDXProp\", */ },\n\t/*::[*/0x0889/*::]*/: { /* n:\"MDXKPI\", */ },\n\t/*::[*/0x088a/*::]*/: { /* n:\"MDB\", */ },\n\t/*::[*/0x088b/*::]*/: { /* n:\"PLV\", */ },\n\t/*::[*/0x088c/*::]*/: { /* n:\"Compat12\", */ f:parsebool, r:12 },\n\t/*::[*/0x088d/*::]*/: { /* n:\"DXF\", */ },\n\t/*::[*/0x088e/*::]*/: { /* n:\"TableStyles\", */ r:12 },\n\t/*::[*/0x088f/*::]*/: { /* n:\"TableStyle\", */ },\n\t/*::[*/0x0890/*::]*/: { /* n:\"TableStyleElement\", */ },\n\t/*::[*/0x0892/*::]*/: { /* n:\"StyleExt\", */ },\n\t/*::[*/0x0893/*::]*/: { /* n:\"NamePublish\", */ },\n\t/*::[*/0x0894/*::]*/: { /* n:\"NameCmt\", */ f:parse_NameCmt, r:12 },\n\t/*::[*/0x0895/*::]*/: { /* n:\"SortData\", */ },\n\t/*::[*/0x0896/*::]*/: { /* n:\"Theme\", */ f:parse_Theme, r:12 },\n\t/*::[*/0x0897/*::]*/: { /* n:\"GUIDTypeLib\", */ },\n\t/*::[*/0x0898/*::]*/: { /* n:\"FnGrp12\", */ },\n\t/*::[*/0x0899/*::]*/: { /* n:\"NameFnGrp12\", */ },\n\t/*::[*/0x089a/*::]*/: { /* n:\"MTRSettings\", */ f:parse_MTRSettings, r:12 },\n\t/*::[*/0x089b/*::]*/: { /* n:\"CompressPictures\", */ f:parsenoop2 },\n\t/*::[*/0x089c/*::]*/: { /* n:\"HeaderFooter\", */ },\n\t/*::[*/0x089d/*::]*/: { /* n:\"CrtLayout12\", */ },\n\t/*::[*/0x089e/*::]*/: { /* n:\"CrtMlFrt\", */ },\n\t/*::[*/0x089f/*::]*/: { /* n:\"CrtMlFrtContinue\", */ },\n\t/*::[*/0x08a3/*::]*/: { /* n:\"ForceFullCalculation\", */ f:parse_ForceFullCalculation },\n\t/*::[*/0x08a4/*::]*/: { /* n:\"ShapePropsStream\", */ },\n\t/*::[*/0x08a5/*::]*/: { /* n:\"TextPropsStream\", */ },\n\t/*::[*/0x08a6/*::]*/: { /* n:\"RichTextStream\", */ },\n\t/*::[*/0x08a7/*::]*/: { /* n:\"CrtLayout12A\", */ },\n\t/*::[*/0x1001/*::]*/: { /* n:\"Units\", */ },\n\t/*::[*/0x1002/*::]*/: { /* n:\"Chart\", */ },\n\t/*::[*/0x1003/*::]*/: { /* n:\"Series\", */ },\n\t/*::[*/0x1006/*::]*/: { /* n:\"DataFormat\", */ },\n\t/*::[*/0x1007/*::]*/: { /* n:\"LineFormat\", */ },\n\t/*::[*/0x1009/*::]*/: { /* n:\"MarkerFormat\", */ },\n\t/*::[*/0x100a/*::]*/: { /* n:\"AreaFormat\", */ },\n\t/*::[*/0x100b/*::]*/: { /* n:\"PieFormat\", */ },\n\t/*::[*/0x100c/*::]*/: { /* n:\"AttachedLabel\", */ },\n\t/*::[*/0x100d/*::]*/: { /* n:\"SeriesText\", */ },\n\t/*::[*/0x1014/*::]*/: { /* n:\"ChartFormat\", */ },\n\t/*::[*/0x1015/*::]*/: { /* n:\"Legend\", */ },\n\t/*::[*/0x1016/*::]*/: { /* n:\"SeriesList\", */ },\n\t/*::[*/0x1017/*::]*/: { /* n:\"Bar\", */ },\n\t/*::[*/0x1018/*::]*/: { /* n:\"Line\", */ },\n\t/*::[*/0x1019/*::]*/: { /* n:\"Pie\", */ },\n\t/*::[*/0x101a/*::]*/: { /* n:\"Area\", */ },\n\t/*::[*/0x101b/*::]*/: { /* n:\"Scatter\", */ },\n\t/*::[*/0x101c/*::]*/: { /* n:\"CrtLine\", */ },\n\t/*::[*/0x101d/*::]*/: { /* n:\"Axis\", */ },\n\t/*::[*/0x101e/*::]*/: { /* n:\"Tick\", */ },\n\t/*::[*/0x101f/*::]*/: { /* n:\"ValueRange\", */ },\n\t/*::[*/0x1020/*::]*/: { /* n:\"CatSerRange\", */ },\n\t/*::[*/0x1021/*::]*/: { /* n:\"AxisLine\", */ },\n\t/*::[*/0x1022/*::]*/: { /* n:\"CrtLink\", */ },\n\t/*::[*/0x1024/*::]*/: { /* n:\"DefaultText\", */ },\n\t/*::[*/0x1025/*::]*/: { /* n:\"Text\", */ },\n\t/*::[*/0x1026/*::]*/: { /* n:\"FontX\", */ f:parseuint16 },\n\t/*::[*/0x1027/*::]*/: { /* n:\"ObjectLink\", */ },\n\t/*::[*/0x1032/*::]*/: { /* n:\"Frame\", */ },\n\t/*::[*/0x1033/*::]*/: { /* n:\"Begin\", */ },\n\t/*::[*/0x1034/*::]*/: { /* n:\"End\", */ },\n\t/*::[*/0x1035/*::]*/: { /* n:\"PlotArea\", */ },\n\t/*::[*/0x103a/*::]*/: { /* n:\"Chart3d\", */ },\n\t/*::[*/0x103c/*::]*/: { /* n:\"PicF\", */ },\n\t/*::[*/0x103d/*::]*/: { /* n:\"DropBar\", */ },\n\t/*::[*/0x103e/*::]*/: { /* n:\"Radar\", */ },\n\t/*::[*/0x103f/*::]*/: { /* n:\"Surf\", */ },\n\t/*::[*/0x1040/*::]*/: { /* n:\"RadarArea\", */ },\n\t/*::[*/0x1041/*::]*/: { /* n:\"AxisParent\", */ },\n\t/*::[*/0x1043/*::]*/: { /* n:\"LegendException\", */ },\n\t/*::[*/0x1044/*::]*/: { /* n:\"ShtProps\", */ f:parse_ShtProps },\n\t/*::[*/0x1045/*::]*/: { /* n:\"SerToCrt\", */ },\n\t/*::[*/0x1046/*::]*/: { /* n:\"AxesUsed\", */ },\n\t/*::[*/0x1048/*::]*/: { /* n:\"SBaseRef\", */ },\n\t/*::[*/0x104a/*::]*/: { /* n:\"SerParent\", */ },\n\t/*::[*/0x104b/*::]*/: { /* n:\"SerAuxTrend\", */ },\n\t/*::[*/0x104e/*::]*/: { /* n:\"IFmtRecord\", */ },\n\t/*::[*/0x104f/*::]*/: { /* n:\"Pos\", */ },\n\t/*::[*/0x1050/*::]*/: { /* n:\"AlRuns\", */ },\n\t/*::[*/0x1051/*::]*/: { /* n:\"BRAI\", */ },\n\t/*::[*/0x105b/*::]*/: { /* n:\"SerAuxErrBar\", */ },\n\t/*::[*/0x105c/*::]*/: { /* n:\"ClrtClient\", */ f:parse_ClrtClient },\n\t/*::[*/0x105d/*::]*/: { /* n:\"SerFmt\", */ },\n\t/*::[*/0x105f/*::]*/: { /* n:\"Chart3DBarShape\", */ },\n\t/*::[*/0x1060/*::]*/: { /* n:\"Fbi\", */ },\n\t/*::[*/0x1061/*::]*/: { /* n:\"BopPop\", */ },\n\t/*::[*/0x1062/*::]*/: { /* n:\"AxcExt\", */ },\n\t/*::[*/0x1063/*::]*/: { /* n:\"Dat\", */ },\n\t/*::[*/0x1064/*::]*/: { /* n:\"PlotGrowth\", */ },\n\t/*::[*/0x1065/*::]*/: { /* n:\"SIIndex\", */ },\n\t/*::[*/0x1066/*::]*/: { /* n:\"GelFrame\", */ },\n\t/*::[*/0x1067/*::]*/: { /* n:\"BopPopCustom\", */ },\n\t/*::[*/0x1068/*::]*/: { /* n:\"Fbi2\", */ },\n\n\t/*::[*/0x0000/*::]*/: { /* n:\"Dimensions\", */ f:parse_Dimensions },\n\t/*::[*/0x0001/*::]*/: { /* n:\"BIFF2BLANK\", */ },\n\t/*::[*/0x0002/*::]*/: { /* n:\"BIFF2INT\", */ f:parse_BIFF2INT },\n\t/*::[*/0x0003/*::]*/: { /* n:\"BIFF2NUM\", */ f:parse_BIFF2NUM },\n\t/*::[*/0x0004/*::]*/: { /* n:\"BIFF2STR\", */ f:parse_BIFF2STR },\n\t/*::[*/0x0005/*::]*/: { /* n:\"BoolErr\", */ f:parse_BoolErr },\n\t/*::[*/0x0007/*::]*/: { /* n:\"String\", */ f:parse_BIFF2STRING },\n\t/*::[*/0x0008/*::]*/: { /* n:\"BIFF2ROW\", */ },\n\t/*::[*/0x0009/*::]*/: { /* n:\"BOF\", */ f:parse_BOF },\n\t/*::[*/0x000b/*::]*/: { /* n:\"Index\", */ },\n\t/*::[*/0x0016/*::]*/: { /* n:\"ExternCount\", */ f:parseuint16 },\n\t/*::[*/0x001e/*::]*/: { /* n:\"BIFF2FORMAT\", */ f:parse_BIFF2Format },\n\t/*::[*/0x001f/*::]*/: { /* n:\"BIFF2FMTCNT\", */ }, /* 16-bit cnt of BIFF2FORMAT records */\n\t/*::[*/0x0020/*::]*/: { /* n:\"BIFF2COLINFO\", */ },\n\t/*::[*/0x0021/*::]*/: { /* n:\"Array\", */ f:parse_Array },\n\t/*::[*/0x0024/*::]*/: { /* n:\"COLWIDTH\", */ },\n\t/*::[*/0x0025/*::]*/: { /* n:\"DefaultRowHeight\", */ f:parse_DefaultRowHeight },\n\t// 0x2c ??\n\t// 0x2d ??\n\t// 0x2e ??\n\t// 0x30 FONTCOUNT: number of fonts\n\t/*::[*/0x0032/*::]*/: { /* n:\"BIFF2FONTXTRA\", */ f:parse_BIFF2FONTXTRA },\n\t// 0x35: INFOOPTS\n\t// 0x36: TABLE (BIFF2 only)\n\t// 0x37: TABLE2 (BIFF2 only)\n\t// 0x38: WNDESK\n\t// 0x39 ??\n\t// 0x3a: BEGINPREF\n\t// 0x3b: ENDPREF\n\t/*::[*/0x003e/*::]*/: { /* n:\"BIFF2WINDOW2\", */ },\n\t// 0x3f ??\n\t// 0x46: SHOWSCROLL\n\t// 0x47: SHOWFORMULA\n\t// 0x48: STATUSBAR\n\t// 0x49: SHORTMENUS\n\t// 0x4A:\n\t// 0x4B:\n\t// 0x4C:\n\t// 0x4E:\n\t// 0x4F:\n\t// 0x58: TOOLBAR (BIFF3)\n\n\t/* - - - */\n\t/*::[*/0x0034/*::]*/: { /* n:\"DDEObjName\", */ },\n\t/*::[*/0x0043/*::]*/: { /* n:\"BIFF2XF\", */ },\n\t/*::[*/0x0044/*::]*/: { /* n:\"BIFF2XFINDEX\", */ f:parseuint16 },\n\t/*::[*/0x0045/*::]*/: { /* n:\"BIFF2FONTCLR\", */ },\n\t/*::[*/0x0056/*::]*/: { /* n:\"BIFF4FMTCNT\", */ }, /* 16-bit cnt, similar to BIFF2 */\n\t/*::[*/0x007e/*::]*/: { /* n:\"RK\", */ }, /* Not necessarily same as 0x027e */\n\t/*::[*/0x007f/*::]*/: { /* n:\"ImData\", */ f:parse_ImData },\n\t/*::[*/0x0087/*::]*/: { /* n:\"Addin\", */ },\n\t/*::[*/0x0088/*::]*/: { /* n:\"Edg\", */ },\n\t/*::[*/0x0089/*::]*/: { /* n:\"Pub\", */ },\n\t// 0x8A\n\t// 0x8B LH: alternate menu key flag (BIFF3/4)\n\t// 0x8E\n\t// 0x8F\n\t/*::[*/0x0091/*::]*/: { /* n:\"Sub\", */ },\n\t// 0x93 STYLE\n\t/*::[*/0x0094/*::]*/: { /* n:\"LHRecord\", */ },\n\t/*::[*/0x0095/*::]*/: { /* n:\"LHNGraph\", */ },\n\t/*::[*/0x0096/*::]*/: { /* n:\"Sound\", */ },\n\t// 0xA2 FNPROTO: function prototypes (BIFF4)\n\t// 0xA3\n\t// 0xA8\n\t/*::[*/0x00a9/*::]*/: { /* n:\"CoordList\", */ },\n\t/*::[*/0x00ab/*::]*/: { /* n:\"GCW\", */ },\n\t/*::[*/0x00bc/*::]*/: { /* n:\"ShrFmla\", */ }, /* Not necessarily same as 0x04bc */\n\t/*::[*/0x00bf/*::]*/: { /* n:\"ToolbarHdr\", */ },\n\t/*::[*/0x00c0/*::]*/: { /* n:\"ToolbarEnd\", */ },\n\t/*::[*/0x00c2/*::]*/: { /* n:\"AddMenu\", */ },\n\t/*::[*/0x00c3/*::]*/: { /* n:\"DelMenu\", */ },\n\t/*::[*/0x00d6/*::]*/: { /* n:\"RString\", */ f:parse_RString },\n\t/*::[*/0x00df/*::]*/: { /* n:\"UDDesc\", */ },\n\t/*::[*/0x00ea/*::]*/: { /* n:\"TabIdConf\", */ },\n\t/*::[*/0x0162/*::]*/: { /* n:\"XL5Modify\", */ },\n\t/*::[*/0x01a5/*::]*/: { /* n:\"FileSharing2\", */ },\n\t/*::[*/0x0206/*::]*/: { /* n:\"Formula\", */ f:parse_Formula },\n\t/*::[*/0x0209/*::]*/: { /* n:\"BOF\", */ f:parse_BOF },\n\t/*::[*/0x0218/*::]*/: { /* n:\"Lbl\", */ f:parse_Lbl },\n\t/*::[*/0x0223/*::]*/: { /* n:\"ExternName\", */ f:parse_ExternName },\n\t/*::[*/0x0231/*::]*/: { /* n:\"Font\", */ },\n\t/*::[*/0x0243/*::]*/: { /* n:\"BIFF3XF\", */ },\n\t/*::[*/0x0406/*::]*/: { /* n:\"Formula\", */ f:parse_Formula },\n\t/*::[*/0x0409/*::]*/: { /* n:\"BOF\", */ f:parse_BOF },\n\t/*::[*/0x0443/*::]*/: { /* n:\"BIFF4XF\", */ },\n\t/*::[*/0x086d/*::]*/: { /* n:\"FeatInfo\", */ },\n\t/*::[*/0x0873/*::]*/: { /* n:\"FeatInfo11\", */ },\n\t/*::[*/0x0881/*::]*/: { /* n:\"SXAddl12\", */ },\n\t/*::[*/0x08c0/*::]*/: { /* n:\"AutoWebPub\", */ },\n\t/*::[*/0x08c1/*::]*/: { /* n:\"ListObj\", */ },\n\t/*::[*/0x08c2/*::]*/: { /* n:\"ListField\", */ },\n\t/*::[*/0x08c3/*::]*/: { /* n:\"ListDV\", */ },\n\t/*::[*/0x08c4/*::]*/: { /* n:\"ListCondFmt\", */ },\n\t/*::[*/0x08c5/*::]*/: { /* n:\"ListCF\", */ },\n\t/*::[*/0x08c6/*::]*/: { /* n:\"FMQry\", */ },\n\t/*::[*/0x08c7/*::]*/: { /* n:\"FMSQry\", */ },\n\t/*::[*/0x08c8/*::]*/: { /* n:\"PLV\", */ },\n\t/*::[*/0x08c9/*::]*/: { /* n:\"LnExt\", */ },\n\t/*::[*/0x08ca/*::]*/: { /* n:\"MkrExt\", */ },\n\t/*::[*/0x08cb/*::]*/: { /* n:\"CrtCoopt\", */ },\n\t/*::[*/0x08d6/*::]*/: { /* n:\"FRTArchId$\", */ r:12 },\n\n\t/* --- multiplan 4 records --- */\n\t/*::[*/0x0065/*::]*/: { /* n:\"\", */ }, // one per window\n\t/*::[*/0x0066/*::]*/: { /* n:\"\", */ }, // calc settings\n\t/*::[*/0x0069/*::]*/: { /* n:\"\", */ }, // print header\n\t/*::[*/0x006a/*::]*/: { /* n:\"\", */ }, // print footer\n\t/*::[*/0x006b/*::]*/: { /* n:\"\", */ }, // print settings\n\t/*::[*/0x006d/*::]*/: { /* n:\"\", */ }, // one per window\n\t/*::[*/0x0070/*::]*/: { /* n:\"\", */ }, // includes default col width\n\t/*::[*/0x0072/*::]*/: { /* n:\"\", */ }, // includes selected cell\n\n\t/*::[*/0x7262/*::]*/: {}\n};\n\nfunction write_biff_rec(ba/*:BufArray*/, type/*:number*/, payload, length/*:?number*/)/*:void*/ {\n\tvar t/*:number*/ = type;\n\tif(isNaN(t)) return;\n\tvar len = length || (payload||[]).length || 0;\n\tvar o = ba.next(4);\n\to.write_shift(2, t);\n\to.write_shift(2, len);\n\tif(/*:: len != null &&*/len > 0 && is_buf(payload)) ba.push(payload);\n}\n\nfunction write_biff_continue(ba/*:BufArray*/, type/*:number*/, payload, length/*:?number*/)/*:void*/ {\n\tvar len = length || (payload||[]).length || 0;\n\tif(len <= 8224) return write_biff_rec(ba, type, payload, len);\n\tvar t = type;\n\tif(isNaN(t)) return;\n\tvar parts = payload.parts || [], sidx = 0;\n\tvar i = 0, w = 0;\n\twhile(w + (parts[sidx] || 8224) <= 8224) { w+= (parts[sidx] || 8224); sidx++; }\n\tvar o = ba.next(4);\n\to.write_shift(2, t);\n\to.write_shift(2, w);\n\tba.push(payload.slice(i, i + w));\n\ti += w;\n\twhile(i < len) {\n\t\to = ba.next(4);\n\t\to.write_shift(2, 0x3c); // TODO: figure out correct continue type\n\t\tw = 0;\n\t\twhile(w + (parts[sidx] || 8224) <= 8224) { w+= (parts[sidx] || 8224); sidx++; }\n\t\to.write_shift(2, w);\n\t\tba.push(payload.slice(i, i+w)); i+= w;\n\t}\n}\n\nfunction write_BIFF2Cell(out, r/*:number*/, c/*:number*/) {\n\tif(!out) out = new_buf(7);\n\tout.write_shift(2, r);\n\tout.write_shift(2, c);\n\tout.write_shift(2, 0);\n\tout.write_shift(1, 0);\n\treturn out;\n}\n\nfunction write_BIFF2BERR(r/*:number*/, c/*:number*/, val, t/*:?string*/) {\n\tvar out = new_buf(9);\n\twrite_BIFF2Cell(out, r, c);\n\twrite_Bes(val, t || 'b', out);\n\treturn out;\n}\n\n/* TODO: codepage, large strings */\nfunction write_BIFF2LABEL(r/*:number*/, c/*:number*/, val) {\n\tvar out = new_buf(8 + 2*val.length);\n\twrite_BIFF2Cell(out, r, c);\n\tout.write_shift(1, val.length);\n\tout.write_shift(val.length, val, 'sbcs');\n\treturn out.l < out.length ? out.slice(0, out.l) : out;\n}\n\nfunction write_ws_biff2_cell(ba/*:BufArray*/, cell/*:Cell*/, R/*:number*/, C/*:number*//*::, opts*/) {\n\tif(cell.v != null) switch(cell.t) {\n\t\tcase 'd': case 'n':\n\t\t\tvar v = cell.t == 'd' ? datenum(parseDate(cell.v)) : cell.v;\n\t\t\tif((v == (v|0)) && (v >= 0) && (v < 65536))\n\t\t\t\twrite_biff_rec(ba, 0x0002, write_BIFF2INT(R, C, v));\n\t\t\telse\n\t\t\t\twrite_biff_rec(ba, 0x0003, write_BIFF2NUM(R,C, v));\n\t\t\treturn;\n\t\tcase 'b': case 'e': write_biff_rec(ba, 0x0005, write_BIFF2BERR(R, C, cell.v, cell.t)); return;\n\t\t/* TODO: codepage, sst */\n\t\tcase 's': case 'str':\n\t\t\twrite_biff_rec(ba, 0x0004, write_BIFF2LABEL(R, C, cell.v == null ? \"\" : String(cell.v).slice(0,255)));\n\t\t\treturn;\n\t}\n\twrite_biff_rec(ba, 0x0001, write_BIFF2Cell(null, R, C));\n}\n\nfunction write_ws_biff2(ba/*:BufArray*/, ws/*:Worksheet*/, idx/*:number*/, opts/*::, wb:Workbook*/) {\n\tvar dense = ws[\"!data\"] != null;\n\tvar range = safe_decode_range(ws['!ref'] || \"A1\"), ref/*:string*/, rr = \"\", cols/*:Array*/ = [];\n\tif(range.e.c > 0xFF || range.e.r > 0x3FFF) {\n\t\tif(opts.WTF) throw new Error(\"Range \" + (ws['!ref'] || \"A1\") + \" exceeds format limit A1:IV16384\");\n\t\trange.e.c = Math.min(range.e.c, 0xFF);\n\t\trange.e.r = Math.min(range.e.c, 0x3FFF);\n\t}\n\tvar row = [];\n\tfor(var C = range.s.c; C <= range.e.c; ++C) cols[C] = encode_col(C);\n\tfor(var R = range.s.r; R <= range.e.r; ++R) {\n\t\tif(dense) row = ws[\"!data\"][R] || [];\n\t\trr = encode_row(R);\n\t\tfor(C = range.s.c; C <= range.e.c; ++C) {\n\t\t\tvar cell = dense ? row[C] : ws[cols[C] + rr];\n\t\t\tif(!cell) continue;\n\t\t\t/* write cell */\n\t\t\twrite_ws_biff2_cell(ba, cell, R, C, opts);\n\t\t}\n\t}\n}\n\n/* Based on test files */\nfunction write_biff2_buf(wb/*:Workbook*/, opts/*:WriteOpts*/) {\n\tvar o = opts || {};\n\tvar ba = buf_array();\n\tvar idx = 0;\n\tfor(var i=0;i*/ = [];\n\tvar range = safe_decode_range(ws['!ref'] || \"A1\");\n\tvar MAX_ROWS = b8 ? 65536 : 16384;\n\tif(range.e.c > 0xFF || range.e.r >= MAX_ROWS) {\n\t\tif(opts.WTF) throw new Error(\"Range \" + (ws['!ref'] || \"A1\") + \" exceeds format limit A1:IV16384\");\n\t\trange.e.c = Math.min(range.e.c, 0xFF);\n\t\trange.e.r = Math.min(range.e.c, MAX_ROWS-1);\n\t}\n\n\twrite_biff_rec(ba, 0x0809, write_BOF(wb, 0x10, opts));\n\t/* [Uncalced] Index */\n\twrite_biff_rec(ba, 0x000d /* CalcMode */, writeuint16(1));\n\twrite_biff_rec(ba, 0x000c /* CalcCount */, writeuint16(100));\n\twrite_biff_rec(ba, 0x000f /* CalcRefMode */, writebool(true));\n\twrite_biff_rec(ba, 0x0011 /* CalcIter */, writebool(false));\n\twrite_biff_rec(ba, 0x0010 /* CalcDelta */, write_Xnum(0.001));\n\twrite_biff_rec(ba, 0x005f /* CalcSaveRecalc */, writebool(true));\n\twrite_biff_rec(ba, 0x002a /* PrintRowCol */, writebool(false));\n\twrite_biff_rec(ba, 0x002b /* PrintGrid */, writebool(false));\n\twrite_biff_rec(ba, 0x0082 /* GridSet */, writeuint16(1));\n\twrite_biff_rec(ba, 0x0080 /* Guts */, write_Guts([0,0]));\n\t/* DefaultRowHeight WsBool [Sync] [LPr] [HorizontalPageBreaks] [VerticalPageBreaks] */\n\t/* Header (string) */\n\t/* Footer (string) */\n\twrite_biff_rec(ba, 0x0083 /* HCenter */, writebool(false));\n\twrite_biff_rec(ba, 0x0084 /* VCenter */, writebool(false));\n\t/* ... */\n\tif(b8) write_ws_cols_biff8(ba, ws[\"!cols\"]);\n\t/* ... */\n\twrite_biff_rec(ba, 0x0200 /* Dimensions */, write_Dimensions(range, opts));\n\t/* ... */\n\n\tif(b8) ws['!links'] = [];\n\tvar comments = [];\n\tvar row = [];\n\tfor(var C = range.s.c; C <= range.e.c; ++C) cols[C] = encode_col(C);\n\tfor(var R = range.s.r; R <= range.e.r; ++R) {\n\t\tif(dense) row = ws[\"!data\"][R] || [];\n\t\trr = encode_row(R);\n\t\tfor(C = range.s.c; C <= range.e.c; ++C) {\n\t\t\tref = cols[C] + rr;\n\t\t\tvar cell = dense ? row[C] : ws[ref];\n\t\t\tif(!cell) continue;\n\t\t\t/* write cell */\n\t\t\twrite_ws_biff8_cell(ba, cell, R, C, opts);\n\t\t\tif(b8 && cell.l) ws['!links'].push([ref, cell.l]);\n\t\t\tif(b8 && cell.c) comments.push([ref, cell.c]);\n\t\t}\n\t}\n\tvar cname/*:string*/ = _sheet.CodeName || _sheet.name || s;\n\t/* ... */\n\t// if(b8) comments.forEach(function(comment) { write_biff_rec(ba, 0x001c /* Note */, write_NoteSh(comment)); });\n\t/* ... */\n\tif(b8) write_biff_rec(ba, 0x023e /* Window2 */, write_Window2((_WB.Views||[])[0]));\n\t/* ... */\n\tif(b8 && (ws['!merges']||[]).length) write_biff_rec(ba, 0x00e5 /* MergeCells */, write_MergeCells(ws['!merges']));\n\t/* [LRng] *QUERYTABLE [PHONETICINFO] CONDFMTS */\n\tif(b8) write_ws_biff8_hlinks(ba, ws);\n\t/* [DVAL] */\n\twrite_biff_rec(ba, 0x01ba /* CodeName */, write_XLUnicodeString(cname, opts));\n\t/* *WebPub *CellWatch [SheetExt] */\n\tif(b8) write_FEAT(ba, ws);\n\t/* *FEAT11 *RECORD12 */\n\twrite_biff_rec(ba, 0x000a /* EOF */);\n\treturn ba.end();\n}\n\n/* [MS-XLS] 2.1.7.20.3 */\nfunction write_biff8_global(wb/*:Workbook*/, bufs, opts/*:WriteOpts*/) {\n\tvar A = buf_array();\n\tvar _WB/*:WBWBProps*/ = ((wb||{}).Workbook||{}/*:any*/);\n\tvar _sheets/*:Array*/ = (_WB.Sheets||[]);\n\tvar _wb/*:WBProps*/ = /*::((*/_WB.WBProps||{/*::CodeName:\"ThisWorkbook\"*/}/*:: ):any)*/;\n\tvar b8 = opts.biff == 8, b5 = opts.biff == 5;\n\twrite_biff_rec(A, 0x0809, write_BOF(wb, 0x05, opts));\n\tif(opts.bookType == \"xla\") write_biff_rec(A, 0x0087 /* Addin */);\n\twrite_biff_rec(A, 0x00e1 /* InterfaceHdr */, b8 ? writeuint16(0x04b0) : null);\n\twrite_biff_rec(A, 0x00c1 /* Mms */, writezeroes(2));\n\tif(b5) write_biff_rec(A, 0x00bf /* ToolbarHdr */);\n\tif(b5) write_biff_rec(A, 0x00c0 /* ToolbarEnd */);\n\twrite_biff_rec(A, 0x00e2 /* InterfaceEnd */);\n\twrite_biff_rec(A, 0x005c /* WriteAccess */, write_WriteAccess(\"SheetJS\", opts));\n\t/* [FileSharing] */\n\twrite_biff_rec(A, 0x0042 /* CodePage */, writeuint16(b8 ? 0x04b0 : 0x04E4));\n\t/* *2047 Lel */\n\tif(b8) write_biff_rec(A, 0x0161 /* DSF */, writeuint16(0));\n\tif(b8) write_biff_rec(A, 0x01c0 /* Excel9File */);\n\twrite_biff_rec(A, 0x013d /* RRTabId */, write_RRTabId(wb.SheetNames.length));\n\tif(b8 && wb.vbaraw) write_biff_rec(A, 0x00d3 /* ObProj */);\n\t/* [ObNoMacros] */\n\tif(b8 && wb.vbaraw) {\n\t\tvar cname/*:string*/ = _wb.CodeName || \"ThisWorkbook\";\n\t\twrite_biff_rec(A, 0x01ba /* CodeName */, write_XLUnicodeString(cname, opts));\n\t}\n\twrite_biff_rec(A, 0x009c /* BuiltInFnGroupCount */, writeuint16(0x11));\n\t/* *FnGroupName *FnGrp12 */\n\t/* *Lbl */\n\t/* [OleObjectSize] */\n\twrite_biff_rec(A, 0x0019 /* WinProtect */, writebool(false));\n\twrite_biff_rec(A, 0x0012 /* Protect */, writebool(false));\n\twrite_biff_rec(A, 0x0013 /* Password */, writeuint16(0));\n\tif(b8) write_biff_rec(A, 0x01af /* Prot4Rev */, writebool(false));\n\tif(b8) write_biff_rec(A, 0x01bc /* Prot4RevPass */, writeuint16(0));\n\twrite_biff_rec(A, 0x003d /* Window1 */, write_Window1(opts));\n\twrite_biff_rec(A, 0x0040 /* Backup */, writebool(false));\n\twrite_biff_rec(A, 0x008d /* HideObj */, writeuint16(0));\n\twrite_biff_rec(A, 0x0022 /* Date1904 */, writebool(safe1904(wb)==\"true\"));\n\twrite_biff_rec(A, 0x000e /* CalcPrecision */, writebool(true));\n\tif(b8) write_biff_rec(A, 0x01b7 /* RefreshAll */, writebool(false));\n\twrite_biff_rec(A, 0x00DA /* BookBool */, writeuint16(0));\n\t/* ... */\n\twrite_FONTS_biff8(A, wb, opts);\n\twrite_FMTS_biff8(A, wb.SSF, opts);\n\twrite_CELLXFS_biff8(A, opts);\n\t/* ... */\n\tif(b8) write_biff_rec(A, 0x0160 /* UsesELFs */, writebool(false));\n\tvar a = A.end();\n\n\tvar C = buf_array();\n\t/* METADATA [MTRSettings] [ForceFullCalculation] */\n\tif(b8) write_biff_rec(C, 0x008C /* Country */, write_Country());\n\t/* *SUPBOOK *LBL *RTD [RecalcId] *HFPicture *MSODRAWINGGROUP */\n\n\t/* BIFF8: [SST *Continue] ExtSST */\n\tif(b8 && opts.Strings) write_biff_continue(C, 0x00FC /* SST */, write_SST(opts.Strings, opts));\n\n\t/* *WebPub [WOpt] [CrErr] [BookExt] *FeatHdr *DConn [THEME] [CompressPictures] [Compat12] [GUIDTypeLib] */\n\twrite_biff_rec(C, 0x000A /* EOF */);\n\tvar c = C.end();\n\n\tvar B = buf_array();\n\tvar blen = 0, j = 0;\n\tfor(j = 0; j < wb.SheetNames.length; ++j) blen += (b8 ? 12 : 11) + (b8 ? 2 : 1) * wb.SheetNames[j].length;\n\tvar start = a.length + blen + c.length;\n\tfor(j = 0; j < wb.SheetNames.length; ++j) {\n\t\tvar _sheet/*:WBWSProp*/ = _sheets[j] || ({}/*:any*/);\n\t\twrite_biff_rec(B, 0x0085 /* BoundSheet8 */, write_BoundSheet8({pos:start, hs:_sheet.Hidden||0, dt:0, name:wb.SheetNames[j]}, opts));\n\t\tstart += bufs[j].length;\n\t}\n\t/* 1*BoundSheet8 */\n\tvar b = B.end();\n\tif(blen != b.length) throw new Error(\"BS8 \" + blen + \" != \" + b.length);\n\n\tvar out = [];\n\tif(a.length) out.push(a);\n\tif(b.length) out.push(b);\n\tif(c.length) out.push(c);\n\treturn bconcat(out);\n}\n\n/* [MS-XLS] 2.1.7.20 Workbook Stream */\nfunction write_biff8_buf(wb/*:Workbook*/, opts/*:WriteOpts*/) {\n\tvar o = opts || {};\n\tvar bufs = [];\n\n\tif(wb && !wb.SSF) {\n\t\twb.SSF = dup(table_fmt);\n\t}\n\tif(wb && wb.SSF) {\n\t\tmake_ssf(); SSF_load_table(wb.SSF);\n\t\t// $FlowIgnore\n\t\to.revssf = evert_num(wb.SSF); o.revssf[wb.SSF[65535]] = 0;\n\t\to.ssf = wb.SSF;\n\t}\n\n\to.Strings = /*::((*/[]/*:: :any):SST)*/; o.Strings.Count = 0; o.Strings.Unique = 0;\n\tfix_write_opts(o);\n\n\to.cellXfs = [];\n\tget_cell_style(o.cellXfs, {}, {revssf:{\"General\":0}});\n\n\tif(!wb.Props) wb.Props = {};\n\n\tfor(var i = 0; i < wb.SheetNames.length; ++i) bufs[bufs.length] = write_ws_biff8(i, o, wb);\n\tbufs.unshift(write_biff8_global(wb, bufs, o));\n\treturn bconcat(bufs);\n}\n\nfunction write_biff_buf(wb/*:Workbook*/, opts/*:WriteOpts*/) {\n\tfor(var i = 0; i <= wb.SheetNames.length; ++i) {\n\t\tvar ws = wb.Sheets[wb.SheetNames[i]];\n\t\tif(!ws || !ws[\"!ref\"]) continue;\n\t\tvar range = decode_range(ws[\"!ref\"]);\n\t\tif(range.e.c > 255) { // note: 255 is IV\n\t\t\tif(typeof console != \"undefined\" && console.error) console.error(\"Worksheet '\" + wb.SheetNames[i] + \"' extends beyond column IV (255). Data may be lost.\");\n\t\t}\n\t}\n\n\tvar o = opts || {};\n\tswitch(o.biff || 2) {\n\t\tcase 8: case 5: return write_biff8_buf(wb, opts);\n\t\tcase 4: case 3: case 2: return write_biff2_buf(wb, opts);\n\t}\n\tthrow new Error(\"invalid type \" + o.bookType + \" for BIFF\");\n}\n/* note: browser DOM element cannot see mso- style attrs, must parse */\nfunction html_to_sheet(str/*:string*/, _opts)/*:Workbook*/ {\n\tvar opts = _opts || {};\n\tvar dense = (opts.dense != null) ? opts.dense : DENSE;\n\tvar ws/*:Worksheet*/ = ({}/*:any*/); if(dense) ws[\"!data\"] = [];\n\tstr = str.replace(//g, \"\");\n\tvar mtch/*:any*/ = str.match(/\");\n\tvar mtch2/*:any*/ = str.match(/<\\/table/i);\n\tvar i/*:number*/ = mtch.index, j/*:number*/ = mtch2 && mtch2.index || str.length;\n\tvar rows = split_regex(str.slice(i, j), /(:?]*>)/i, \"\");\n\tvar R = -1, C = 0, RS = 0, CS = 0;\n\tvar range/*:Range*/ = {s:{r:10000000, c:10000000},e:{r:0,c:0}};\n\tvar merges/*:Array*/ = [];\n\tfor(i = 0; i < rows.length; ++i) {\n\t\tvar row = rows[i].trim();\n\t\tvar hd = row.slice(0,3).toLowerCase();\n\t\tif(hd == \"/i);\n\t\tfor(j = 0; j < cells.length; ++j) {\n\t\t\tvar cell = cells[j].trim();\n\t\t\tif(!cell.match(/\")) > -1) m = m.slice(cc+1);\n\t\t\tfor(var midx = 0; midx < merges.length; ++midx) {\n\t\t\t\tvar _merge/*:Range*/ = merges[midx];\n\t\t\t\tif(_merge.s.c == C && _merge.s.r < R && R <= _merge.e.r) { C = _merge.e.c + 1; midx = -1; }\n\t\t\t}\n\t\t\tvar tag = parsexmltag(cell.slice(0, cell.indexOf(\">\")));\n\t\t\tCS = tag.colspan ? +tag.colspan : 1;\n\t\t\tif((RS = +tag.rowspan)>1 || CS>1) merges.push({s:{r:R,c:C},e:{r:R + (RS||1) - 1, c:C + CS - 1}});\n\t\t\tvar _t/*:string*/ = tag.t || tag[\"data-t\"] || \"\";\n\t\t\t/* TODO: generate stub cells */\n\t\t\tif(!m.length) { C += CS; continue; }\n\t\t\tm = htmldecode(m);\n\t\t\tif(range.s.r > R) range.s.r = R; if(range.e.r < R) range.e.r = R;\n\t\t\tif(range.s.c > C) range.s.c = C; if(range.e.c < C) range.e.c = C;\n\t\t\tif(!m.length) { C += CS; continue; }\n\t\t\tvar o/*:Cell*/ = {t:'s', v:m};\n\t\t\tif(opts.raw || !m.trim().length || _t == 's'){}\n\t\t\telse if(m === 'TRUE') o = {t:'b', v:true};\n\t\t\telse if(m === 'FALSE') o = {t:'b', v:false};\n\t\t\telse if(!isNaN(fuzzynum(m))) o = {t:'n', v:fuzzynum(m)};\n\t\t\telse if(!isNaN(fuzzydate(m).getDate())) {\n\t\t\t\to = ({t:'d', v:parseDate(m)}/*:any*/);\n\t\t\t\tif(!opts.cellDates) o = ({t:'n', v:datenum(o.v)}/*:any*/);\n\t\t\t\to.z = opts.dateNF || table_fmt[14];\n\t\t\t}\n\t\t\tif(dense) { if(!ws[\"!data\"][R]) ws[\"!data\"][R] = []; ws[\"!data\"][R][C] = o; }\n\t\t\telse ws[encode_cell({r:R, c:C})] = o;\n\t\t\tC += CS;\n\t\t}\n\t}\n\tws['!ref'] = encode_range(range);\n\tif(merges.length) ws[\"!merges\"] = merges;\n\treturn ws;\n}\nfunction make_html_row(ws/*:Worksheet*/, r/*:Range*/, R/*:number*/, o/*:Sheet2HTMLOpts*/)/*:string*/ {\n\tvar M/*:Array*/ = (ws['!merges'] ||[]);\n\tvar oo/*:Array*/ = [];\n\tvar sp = ({}/*:any*/);\n\tvar dense = ws[\"!data\"] != null;\n\tfor(var C = r.s.c; C <= r.e.c; ++C) {\n\t\tvar RS = 0, CS = 0;\n\t\tfor(var j = 0; j < M.length; ++j) {\n\t\t\tif(M[j].s.r > R || M[j].s.c > C) continue;\n\t\t\tif(M[j].e.r < R || M[j].e.c < C) continue;\n\t\t\tif(M[j].s.r < R || M[j].s.c < C) { RS = -1; break; }\n\t\t\tRS = M[j].e.r - M[j].s.r + 1; CS = M[j].e.c - M[j].s.c + 1; break;\n\t\t}\n\t\tif(RS < 0) continue;\n\t\tvar coord = encode_col(C) + encode_row(R);\n\t\tvar cell = dense ? (ws[\"!data\"][R]||[])[C] : ws[coord];\n\t\t/* TODO: html entities */\n\t\tvar w = (cell && cell.v != null) && (cell.h || escapehtml(cell.w || (format_cell(cell), cell.w) || \"\")) || \"\";\n\t\tsp = ({}/*:any*/);\n\t\tif(RS > 1) sp.rowspan = RS;\n\t\tif(CS > 1) sp.colspan = CS;\n\t\tif(o.editable) w = '' + w + '';\n\t\telse if(cell) {\n\t\t\tsp[\"data-t\"] = cell && cell.t || 'z';\n\t\t\tif(cell.v != null) sp[\"data-v\"] = cell.v;\n\t\t\tif(cell.z != null) sp[\"data-z\"] = cell.z;\n\t\t\tif(cell.l && (cell.l.Target || \"#\").charAt(0) != \"#\") w = '' + w + '';\n\t\t}\n\t\tsp.id = (o.id || \"sjs\") + \"-\" + coord;\n\t\too.push(writextag('td', w, sp));\n\t}\n\tvar preamble = \"\";\n\treturn preamble + oo.join(\"\") + \"\";\n}\n\nvar HTML_BEGIN = 'SheetJS Table Export';\nvar HTML_END = '';\n\nfunction html_to_workbook(str/*:string*/, opts)/*:Workbook*/ {\n\tvar mtch = str.match(/[\\s\\S]*?<\\/table>/gi);\n\tif(!mtch || mtch.length == 0) throw new Error(\"Invalid HTML: could not find
\");\n\tif(mtch.length == 1) {\n\t\tvar w = sheet_to_workbook(html_to_sheet(mtch[0], opts), opts);\n\t\tw.bookType = \"html\";\n\t\treturn w;\n\t}\n\tvar wb = book_new();\n\tmtch.forEach(function(s, idx) { book_append_sheet(wb, html_to_sheet(s, opts), \"Sheet\" + (idx+1)); });\n\twb.bookType = \"html\";\n\treturn wb;\n}\n\nfunction make_html_preamble(ws/*:Worksheet*/, R/*:Range*/, o/*:Sheet2HTMLOpts*/)/*:string*/ {\n\tvar out/*:Array*/ = [];\n\treturn out.join(\"\") + '';\n}\n\nfunction sheet_to_html(ws/*:Worksheet*/, opts/*:?Sheet2HTMLOpts*//*, wb:?Workbook*/)/*:string*/ {\n\tvar o = opts || {};\n\tvar header = o.header != null ? o.header : HTML_BEGIN;\n\tvar footer = o.footer != null ? o.footer : HTML_END;\n\tvar out/*:Array*/ = [header];\n\tvar r = decode_range(ws['!ref']);\n\tout.push(make_html_preamble(ws, r, o));\n\tfor(var R = r.s.r; R <= r.e.r; ++R) out.push(make_html_row(ws, r, R, o));\n\tout.push(\"
\" + footer);\n\treturn out.join(\"\");\n}\n\nfunction sheet_add_dom(ws/*:Worksheet*/, table/*:HTMLElement*/, _opts/*:?any*/)/*:Worksheet*/ {\n\tvar rows/*:HTMLCollection*/ = table.rows;\n\tif(!rows) {\n\t\t/* not an HTML TABLE */\n\t\tthrow \"Unsupported origin when \" + table.tagName + \" is not a TABLE\";\n\t}\n\n\tvar opts = _opts || {};\n\tvar dense = ws[\"!data\"] != null;\n\tvar or_R = 0, or_C = 0;\n\tif(opts.origin != null) {\n\t\tif(typeof opts.origin == 'number') or_R = opts.origin;\n\t\telse {\n\t\t\tvar _origin/*:CellAddress*/ = typeof opts.origin == \"string\" ? decode_cell(opts.origin) : opts.origin;\n\t\t\tor_R = _origin.r; or_C = _origin.c;\n\t\t}\n\t}\n\n\tvar sheetRows = Math.min(opts.sheetRows||10000000, rows.length);\n\tvar range/*:Range*/ = {s:{r:0,c:0},e:{r:or_R,c:or_C}};\n\tif(ws[\"!ref\"]) {\n\t\tvar _range/*:Range*/ = decode_range(ws[\"!ref\"]);\n\t\trange.s.r = Math.min(range.s.r, _range.s.r);\n\t\trange.s.c = Math.min(range.s.c, _range.s.c);\n\t\trange.e.r = Math.max(range.e.r, _range.e.r);\n\t\trange.e.c = Math.max(range.e.c, _range.e.c);\n\t\tif(or_R == -1) range.e.r = or_R = _range.e.r + 1;\n\t}\n\tvar merges/*:Array*/ = [], midx = 0;\n\tvar rowinfo/*:Array*/ = ws[\"!rows\"] || (ws[\"!rows\"] = []);\n\tvar _R = 0, R = 0, _C = 0, C = 0, RS = 0, CS = 0;\n\tif(!ws[\"!cols\"]) ws['!cols'] = [];\n\tfor(; _R < rows.length && R < sheetRows; ++_R) {\n\t\tvar row/*:HTMLTableRowElement*/ = rows[_R];\n\t\tif (is_dom_element_hidden(row)) {\n\t\t\tif (opts.display) continue;\n\t\t\trowinfo[R] = {hidden: true};\n\t\t}\n\t\tvar elts/*:HTMLCollection*/ = (row.cells);\n\t\tfor(_C = C = 0; _C < elts.length; ++_C) {\n\t\t\tvar elt/*:HTMLTableCellElement*/ = elts[_C];\n\t\t\tif (opts.display && is_dom_element_hidden(elt)) continue;\n\t\t\tvar v/*:?string*/ = elt.hasAttribute('data-v') ? elt.getAttribute('data-v') : elt.hasAttribute('v') ? elt.getAttribute('v') : htmldecode(elt.innerHTML);\n\t\t\tvar z/*:?string*/ = elt.getAttribute('data-z') || elt.getAttribute('z');\n\t\t\tfor(midx = 0; midx < merges.length; ++midx) {\n\t\t\t\tvar m/*:Range*/ = merges[midx];\n\t\t\t\tif(m.s.c == C + or_C && m.s.r < R + or_R && R + or_R <= m.e.r) { C = m.e.c+1 - or_C; midx = -1; }\n\t\t\t}\n\t\t\t/* TODO: figure out how to extract nonstandard mso- style */\n\t\t\tCS = +elt.getAttribute(\"colspan\") || 1;\n\t\t\tif( ((RS = (+elt.getAttribute(\"rowspan\") || 1)))>1 || CS>1) merges.push({s:{r:R + or_R,c:C + or_C},e:{r:R + or_R + (RS||1) - 1, c:C + or_C + (CS||1) - 1}});\n\t\t\tvar o/*:Cell*/ = {t:'s', v:v};\n\t\t\tvar _t/*:string*/ = elt.getAttribute(\"data-t\") || elt.getAttribute(\"t\") || \"\";\n\t\t\tif(v != null) {\n\t\t\t\tif(v.length == 0) o.t = _t || 'z';\n\t\t\t\telse if(opts.raw || v.trim().length == 0 || _t == \"s\"){}\n\t\t\t\telse if(v === 'TRUE') o = {t:'b', v:true};\n\t\t\t\telse if(v === 'FALSE') o = {t:'b', v:false};\n\t\t\t\telse if(!isNaN(fuzzynum(v))) o = {t:'n', v:fuzzynum(v)};\n\t\t\t\telse if(!isNaN(fuzzydate(v).getDate())) {\n\t\t\t\t\to = ({t:'d', v:parseDate(v)}/*:any*/);\n\t\t\t\t\tif(!opts.cellDates) o = ({t:'n', v:datenum(o.v)}/*:any*/);\n\t\t\t\t\to.z = opts.dateNF || table_fmt[14];\n\t\t\t\t}\n\t\t\t}\n\t\t\tif(o.z === undefined && z != null) o.z = z;\n\t\t\t/* The first link is used. Links are assumed to be fully specified.\n\t\t\t * TODO: The right way to process relative links is to make a new */\n\t\t\tvar l = \"\", Aelts = elt.getElementsByTagName(\"A\");\n\t\t\tif(Aelts && Aelts.length) for(var Aelti = 0; Aelti < Aelts.length; ++Aelti)\tif(Aelts[Aelti].hasAttribute(\"href\")) {\n\t\t\t\tl = Aelts[Aelti].getAttribute(\"href\"); if(l.charAt(0) != \"#\") break;\n\t\t\t}\n\t\t\tif(l && l.charAt(0) != \"#\" &&\tl.slice(0, 11).toLowerCase() != 'javascript:') o.l = ({ Target: l });\n\t\t\tif(dense) { if(!ws[\"!data\"][R + or_R]) ws[\"!data\"][R + or_R] = []; ws[\"!data\"][R + or_R][C + or_C] = o; }\n\t\t\telse ws[encode_cell({c:C + or_C, r:R + or_R})] = o;\n\t\t\tif(range.e.c < C + or_C) range.e.c = C + or_C;\n\t\t\tC += CS;\n\t\t}\n\t\t++R;\n\t}\n\tif(merges.length) ws['!merges'] = (ws[\"!merges\"] || []).concat(merges);\n\trange.e.r = Math.max(range.e.r, R - 1 + or_R);\n\tws['!ref'] = encode_range(range);\n\tif(R >= sheetRows) ws['!fullref'] = encode_range((range.e.r = rows.length-_R+R-1 + or_R,range)); // We can count the real number of rows to parse but we don't to improve the performance\n\treturn ws;\n}\n\nfunction parse_dom_table(table/*:HTMLElement*/, _opts/*:?any*/)/*:Worksheet*/ {\n\tvar opts = _opts || {};\n\tvar ws/*:Worksheet*/ = ({}/*:any*/); if(opts.dense) ws[\"!data\"] = [];\n\treturn sheet_add_dom(ws, table, _opts);\n}\n\nfunction table_to_book(table/*:HTMLElement*/, opts/*:?any*/)/*:Workbook*/ {\n\tvar o = sheet_to_workbook(parse_dom_table(table, opts), opts);\n\t//o.bookType = \"dom\"; // TODO: define a type for this\n\treturn o;\n}\n\nfunction is_dom_element_hidden(element/*:HTMLElement*/)/*:boolean*/ {\n\tvar display/*:string*/ = '';\n\tvar get_computed_style/*:?function*/ = get_get_computed_style_function(element);\n\tif(get_computed_style) display = get_computed_style(element).getPropertyValue('display');\n\tif(!display) display = element.style && element.style.display;\n\treturn display === 'none';\n}\n\n/* global getComputedStyle */\nfunction get_get_computed_style_function(element/*:HTMLElement*/)/*:?function*/ {\n\t// The proper getComputedStyle implementation is the one defined in the element window\n\tif(element.ownerDocument.defaultView && typeof element.ownerDocument.defaultView.getComputedStyle === 'function') return element.ownerDocument.defaultView.getComputedStyle;\n\t// If it is not available, try to get one from the global namespace\n\tif(typeof getComputedStyle === 'function') return getComputedStyle;\n\treturn null;\n}\n/* OpenDocument */\nfunction parse_text_p(text/*:string*//*::, tag*/)/*:Array*/ {\n\t/* 6.1.2 White Space Characters */\n\tvar fixed = text\n\t\t.replace(/[\\t\\r\\n]/g, \" \").trim().replace(/ +/g, \" \")\n\t\t.replace(//g,\" \")\n\t\t.replace(//g, function($$,$1) { return Array(parseInt($1,10)+1).join(\" \"); })\n\t\t.replace(/]*\\/>/g,\"\\t\")\n\t\t.replace(//g,\"\\n\");\n\tvar v = unescapexml(fixed.replace(/<[^>]*>/g,\"\"));\n\n\treturn [v];\n}\n\n/* Note: ODS can stick styles in content.xml or styles.xml, FODS blurs lines */\nfunction parse_ods_styles(d/*:string*/, _opts, _nfm) {\n\tvar number_format_map = _nfm || {};\n\tvar str = xlml_normalize(d);\n\txlmlregex.lastIndex = 0;\n\tstr = str.replace(//mg,\"\").replace(//gm,\"\");\n\tvar Rn, NFtag, NF = \"\", tNF = \"\", y, etpos = 0, tidx = -1, infmt = false, payload = \"\";\n\twhile((Rn = xlmlregex.exec(str))) {\n\t\tswitch((Rn[3]=Rn[3].replace(/_.*$/,\"\"))) {\n\t\t/* Number Format Definitions */\n\t\tcase 'number-style': // 16.29.2\n\t\tcase 'currency-style': // 16.29.8\n\t\tcase 'percentage-style': // 16.29.10\n\t\tcase 'date-style': // 16.29.11\n\t\tcase 'time-style': // 16.29.19\n\t\tcase 'text-style': // 16.29.26\n\t\t\tif(Rn[1]==='/') {\n\t\t\t\tinfmt = false;\n\t\t\t\tif(NFtag['truncate-on-overflow'] == \"false\") {\n\t\t\t\t\tif(NF.match(/h/)) NF = NF.replace(/h+/, \"[$&]\");\n\t\t\t\t\telse if(NF.match(/m/)) NF = NF.replace(/m+/, \"[$&]\");\n\t\t\t\t\telse if(NF.match(/s/)) NF = NF.replace(/s+/, \"[$&]\");\n\t\t\t\t}\n\t\t\t\tnumber_format_map[NFtag.name] = NF;\n\t\t\t\tNF = \"\";\n\t\t\t} else if(Rn[0].charAt(Rn[0].length-2) !== '/') {\n\t\t\t\tinfmt = true;\n\t\t\t\tNF = \"\";\n\t\t\t\tNFtag = parsexmltag(Rn[0], false);\n\t\t\t} break;\n\n\t\t// LibreOffice bug https://bugs.documentfoundation.org/show_bug.cgi?id=149484\n\t\tcase 'boolean-style': // 16.29.24\n\t\t\tif(Rn[1]==='/') {\n\t\t\t\tinfmt = false;\n\t\t\t\tnumber_format_map[NFtag.name] = \"General\";\n\t\t\t\tNF = \"\";\n\t\t\t} else if(Rn[0].charAt(Rn[0].length-2) !== '/') {\n\t\t\t\tinfmt = true;\n\t\t\t\tNF = \"\";\n\t\t\t\tNFtag = parsexmltag(Rn[0], false);\n\t\t\t} break;\n\n\t\t/* Number Format Elements */\n\t\tcase 'boolean': // 16.29.25\n\t\t\tNF += \"General\"; // ODF spec is unfortunately underspecified here\n\t\t\tbreak;\n\n\t\tcase 'text': // 16.29.27\n\t\t\tif(Rn[1]==='/') {\n\t\t\t\tpayload = str.slice(tidx, xlmlregex.lastIndex - Rn[0].length);\n\t\t\t\t// NOTE: Excel has a different interpretation of \"%%\" and friends\n\t\t\t\tif(payload == \"%\" && NFtag[0] == ' 16.29.12\n\t\t\ty = parsexmltag(Rn[0], false);\n\t\t\tswitch(y[\"style\"]) {\n\t\t\t\tcase \"short\": NF += \"d\"; break;\n\t\t\t\tcase \"long\": NF += \"dd\"; break;\n\t\t\t\tdefault: NF += \"dd\"; break; // TODO: error condition\n\t\t\t}\n\t\t} break;\n\n\t\tcase 'day-of-week': { // 16.29.16\n\t\t\ty = parsexmltag(Rn[0], false);\n\t\t\tswitch(y[\"style\"]) {\n\t\t\t\tcase \"short\": NF += \"ddd\"; break;\n\t\t\t\tcase \"long\": NF += \"dddd\"; break;\n\t\t\t\tdefault: NF += \"ddd\"; break;\n\t\t\t}\n\t\t} break;\n\n\t\tcase 'era': { // 16.29.15 TODO: proper mapping\n\t\t\ty = parsexmltag(Rn[0], false);\n\t\t\tswitch(y[\"style\"]) {\n\t\t\t\tcase \"short\": NF += \"ee\"; break;\n\t\t\t\tcase \"long\": NF += \"eeee\"; break;\n\t\t\t\tdefault: NF += \"eeee\"; break; // TODO: error condition\n\t\t\t}\n\t\t} break;\n\n\t\tcase 'hours': { // 16.29.20\n\t\t\ty = parsexmltag(Rn[0], false);\n\t\t\tswitch(y[\"style\"]) {\n\t\t\t\tcase \"short\": NF += \"h\"; break;\n\t\t\t\tcase \"long\": NF += \"hh\"; break;\n\t\t\t\tdefault: NF += \"hh\"; break; // TODO: error condition\n\t\t\t}\n\t\t} break;\n\n\t\tcase 'minutes': { // 16.29.21\n\t\t\ty = parsexmltag(Rn[0], false);\n\t\t\tswitch(y[\"style\"]) {\n\t\t\t\tcase \"short\": NF += \"m\"; break;\n\t\t\t\tcase \"long\": NF += \"mm\"; break;\n\t\t\t\tdefault: NF += \"mm\"; break; // TODO: error condition\n\t\t\t}\n\t\t} break;\n\n\t\tcase 'month': { // 16.29.13\n\t\t\ty = parsexmltag(Rn[0], false);\n\t\t\tif(y[\"textual\"]) NF += \"mm\";\n\t\t\tswitch(y[\"style\"]) {\n\t\t\t\tcase \"short\": NF += \"m\"; break;\n\t\t\t\tcase \"long\": NF += \"mm\"; break;\n\t\t\t\tdefault: NF += \"m\"; break;\n\t\t\t}\n\t\t} break;\n\n\t\tcase 'seconds': { // 16.29.22\n\t\t\ty = parsexmltag(Rn[0], false);\n\t\t\tswitch(y[\"style\"]) {\n\t\t\t\tcase \"short\": NF += \"s\"; break;\n\t\t\t\tcase \"long\": NF += \"ss\"; break;\n\t\t\t\tdefault: NF += \"ss\"; break; // TODO: error condition\n\t\t\t}\n\t\t\tif(y[\"decimal-places\"]) NF += \".\" + fill(\"0\", +y[\"decimal-places\"]);\n\t\t} break;\n\n\t\tcase 'year': { // 16.29.14\n\t\t\ty = parsexmltag(Rn[0], false);\n\t\t\tswitch(y[\"style\"]) {\n\t\t\t\tcase \"short\": NF += \"yy\"; break;\n\t\t\t\tcase \"long\": NF += \"yyyy\"; break;\n\t\t\t\tdefault: NF += \"yy\"; break; // TODO: error condition\n\t\t\t}\n\t\t} break;\n\n\t\tcase 'am-pm': // 16.29.23\n\t\t\tNF += \"AM/PM\"; // LO autocorrects A/P -> AM/PM\n\t\t\tbreak;\n\n\t\tcase 'week-of-year': // 16.29.17\n\t\tcase 'quarter': // 16.29.18\n\t\t\tconsole.error(\"Excel does not support ODS format token \" + Rn[3]);\n\t\t\tbreak;\n\n\t\tcase 'fill-character': // 16.29.5\n\t\t\tif(Rn[1]==='/') {\n\t\t\t\tpayload = str.slice(tidx, xlmlregex.lastIndex - Rn[0].length);\n\t\t\t\t// NOTE: Excel has a different interpretation of \"%%\" and friends\n\t\t\t\tNF += '\"' + payload.replace(/\"/g, '\"\"') + '\"*';\n\t\t\t} else if(Rn[0].charAt(Rn[0].length-2) !== '/') {\n\t\t\t\ttidx = xlmlregex.lastIndex;\n\t\t\t} break;\n\n\t\tcase 'scientific-number': // 16.29.6\n\t\t\t// TODO: find a mapping for all parameters\n\t\t\ty = parsexmltag(Rn[0], false);\n\t\t\tNF += \"0.\" + fill(\"0\", +y[\"min-decimal-places\"] || +y[\"decimal-places\"] || 2) + fill(\"?\", +y[\"decimal-places\"] - +y[\"min-decimal-places\"] || 0) + \"E\" + (parsexmlbool(y[\"forced-exponent-sign\"]) ? \"+\" : \"\") + fill(\"0\", +y[\"min-exponent-digits\"] || 2);\n\t\t\tbreak;\n\n\t\tcase 'fraction': // 16.29.7\n\t\t\t// TODO: find a mapping for all parameters\n\t\t\ty = parsexmltag(Rn[0], false);\n\t\t\tif(!+y[\"min-integer-digits\"]) NF += \"#\";\n\t\t\telse NF += fill(\"0\", +y[\"min-integer-digits\"]);\n\t\t\tNF += \" \";\n\t\t\tNF += fill(\"?\", +y[\"min-numerator-digits\"] || 1);\n\t\t\tNF += \"/\";\n\t\t\tif(+y[\"denominator-value\"]) NF += y[\"denominator-value\"];\n\t\t\telse NF += fill(\"?\", +y[\"min-denominator-digits\"] || 1);\n\t\t\tbreak;\n\n\t\tcase 'currency-symbol': // 16.29.9\n\t\t\t// TODO: localization with [$-...]\n\t\t\tif(Rn[1]==='/') {\n\t\t\t\tNF += '\"' + str.slice(tidx, xlmlregex.lastIndex - Rn[0].length).replace(/\"/g, '\"\"') + '\"';\n\t\t\t} else if(Rn[0].charAt(Rn[0].length-2) !== '/') {\n\t\t\t\ttidx = xlmlregex.lastIndex;\n\t\t\t} else NF += \"$\";\n\t\t\tbreak;\n\n\t\tcase 'text-properties': // 16.29.29\n\t\t\ty = parsexmltag(Rn[0], false);\n\t\t\tswitch((y[\"color\"]||\"\").toLowerCase().replace(\"#\", \"\")) {\n\t\t\t\tcase \"ff0000\": case \"red\": NF = \"[Red]\" + NF; break;\n\t\t\t}\n\t\t\tbreak;\n\n\t\tcase 'text-content': // 16.29.28\n\t\t\tNF += \"@\";\n\t\t\tbreak;\n\n\t\tcase 'map': // 16.3\n\t\t\t// TODO: handle more complex maps\n\t\t\ty = parsexmltag(Rn[0], false);\n\t\t\tif(unescapexml(y[\"condition\"]) == \"value()>=0\") NF = number_format_map[y[\"apply-style-name\"]] + \";\" + NF;\n\t\t\telse console.error(\"ODS number format may be incorrect: \" + y[\"condition\"]);\n\t\t\tbreak;\n\n\t\tcase 'number': // 16.29.3\n\t\t\t// TODO: handle all the attributes\n\t\t\tif(Rn[1]==='/') break;\n\t\t\ty = parsexmltag(Rn[0], false);\n\t\t\ttNF = \"\";\n\t\t\ttNF += fill(\"0\", +y[\"min-integer-digits\"] || 1);\n\t\t\tif(parsexmlbool(y[\"grouping\"])) tNF = commaify(fill(\"#\", Math.max(0, 4 - tNF.length)) + tNF);\n\t\t\tif(+y[\"min-decimal-places\"] || +y[\"decimal-places\"]) tNF += \".\";\n\t\t\tif(+y[\"min-decimal-places\"]) tNF += fill(\"0\", +y[\"min-decimal-places\"] || 1);\n\t\t\tif(+y[\"decimal-places\"] - (+y[\"min-decimal-places\"]||0)) tNF += fill(\"0\", +y[\"decimal-places\"] - (+y[\"min-decimal-places\"]||0)); // TODO: should this be \"#\" ?\n\t\t\tNF += tNF;\n\t\t\tbreak;\n\n\t\tcase 'embedded-text': // 16.29.4\n\t\t\t// TODO: verify interplay with grouping et al\n\t\t\tif(Rn[1]==='/') {\n\t\t\t\tif(etpos == 0) NF += '\"' + str.slice(tidx, xlmlregex.lastIndex - Rn[0].length).replace(/\"/g, '\"\"') + '\"';\n\t\t\t\telse NF = NF.slice(0, etpos) + '\"' + str.slice(tidx, xlmlregex.lastIndex - Rn[0].length).replace(/\"/g, '\"\"') + '\"' + NF.slice(etpos);\n\t\t\t} else if(Rn[0].charAt(Rn[0].length-2) !== '/') {\n\t\t\t\ttidx = xlmlregex.lastIndex;\n\t\t\t\tetpos = -+parsexmltag(Rn[0], false)[\"position\"] || 0;\n\t\t\t} break;\n\n\t}}\n\treturn number_format_map;\n}\n\nfunction parse_content_xml(d/*:string*/, _opts, _nfm)/*:Workbook*/ {\n\t\tvar opts = _opts || {};\n\t\tif(DENSE != null && opts.dense == null) opts.dense = DENSE;\n\t\tvar str = xlml_normalize(d);\n\t\tvar state/*:Array*/ = [], tmp;\n\t\tvar tag/*:: = {}*/;\n\t\tvar nfidx, NF = \"\", pidx = 0;\n\t\tvar sheetag/*:: = {name:\"\", '名称':\"\"}*/;\n\t\tvar rowtag/*:: = {'行号':\"\"}*/;\n\t\tvar Sheets = {}, SheetNames/*:Array*/ = [];\n\t\tvar ws = ({}/*:any*/); if(opts.dense) ws[\"!data\"] = [];\n\t\tvar Rn, q/*:: :any = ({t:\"\", v:null, z:null, w:\"\",c:[],}:any)*/;\n\t\tvar ctag = ({value:\"\"}/*:any*/);\n\t\tvar textp = \"\", textpidx = 0, textptag/*:: = {}*/;\n\t\tvar textR = [];\n\t\tvar R = -1, C = -1, range = {s: {r:1000000,c:10000000}, e: {r:0, c:0}};\n\t\tvar row_ol = 0;\n\t\tvar number_format_map = _nfm || {}, styles = {};\n\t\tvar merges/*:Array*/ = [], mrange = {}, mR = 0, mC = 0;\n\t\tvar rowinfo/*:Array*/ = [], rowpeat = 1, colpeat = 1;\n\t\tvar arrayf/*:Array<[Range, string]>*/ = [];\n\t\tvar WB = {Names:[], WBProps:{}};\n\t\tvar atag = ({}/*:any*/);\n\t\tvar _Ref/*:[string, string]*/ = [\"\", \"\"];\n\t\tvar comments/*:Array*/ = [], comment/*:Comment*/ = ({}/*:any*/);\n\t\tvar creator = \"\", creatoridx = 0;\n\t\tvar isstub = false, intable = false;\n\t\tvar i = 0;\n\t\tvar baddate = 0;\n\t\txlmlregex.lastIndex = 0;\n\t\tstr = str.replace(//mg,\"\").replace(//gm,\"\");\n\t\twhile((Rn = xlmlregex.exec(str))) switch((Rn[3]=Rn[3].replace(/_.*$/,\"\"))) {\n\n\t\t\tcase 'table': case '工作表': // 9.1.2 \n\t\t\t\tif(Rn[1]==='/') {\n\t\t\t\t\tif(range.e.c >= range.s.c && range.e.r >= range.s.r) ws['!ref'] = encode_range(range);\n\t\t\t\t\telse ws['!ref'] = \"A1:A1\";\n\t\t\t\t\tif(opts.sheetRows > 0 && opts.sheetRows <= range.e.r) {\n\t\t\t\t\t\tws['!fullref'] = ws['!ref'];\n\t\t\t\t\t\trange.e.r = opts.sheetRows - 1;\n\t\t\t\t\t\tws['!ref'] = encode_range(range);\n\t\t\t\t\t}\n\t\t\t\t\tif(merges.length) ws['!merges'] = merges;\n\t\t\t\t\tif(rowinfo.length) ws[\"!rows\"] = rowinfo;\n\t\t\t\t\tsheetag.name = sheetag['名称'] || sheetag.name;\n\t\t\t\t\tif(typeof JSON !== 'undefined') JSON.stringify(sheetag);\n\t\t\t\t\tSheetNames.push(sheetag.name);\n\t\t\t\t\tSheets[sheetag.name] = ws;\n\t\t\t\t\tintable = false;\n\t\t\t\t}\n\t\t\t\telse if(Rn[0].charAt(Rn[0].length-2) !== '/') {\n\t\t\t\t\tsheetag = parsexmltag(Rn[0], false);\n\t\t\t\t\tR = C = -1;\n\t\t\t\t\trange.s.r = range.s.c = 10000000; range.e.r = range.e.c = 0;\n\t\t\t\t\tws = ({}/*:any*/); if(opts.dense) ws[\"!data\"] = []; merges = [];\n\t\t\t\t\trowinfo = [];\n\t\t\t\t\tintable = true;\n\t\t\t\t}\n\t\t\t\tbreak;\n\n\t\t\tcase 'table-row-group': // 9.1.9 \n\t\t\t\tif(Rn[1] === \"/\") --row_ol; else ++row_ol;\n\t\t\t\tbreak;\n\t\t\tcase 'table-row': case '行': // 9.1.3 \n\t\t\t\tif(Rn[1] === '/') { R+=rowpeat; rowpeat = 1; break; }\n\t\t\t\trowtag = parsexmltag(Rn[0], false);\n\t\t\t\tif(rowtag['行号']) R = rowtag['行号'] - 1; else if(R == -1) R = 0;\n\t\t\t\trowpeat = +rowtag['number-rows-repeated'] || 1;\n\t\t\t\t/* TODO: remove magic */\n\t\t\t\tif(rowpeat < 10) for(i = 0; i < rowpeat; ++i) if(row_ol > 0) rowinfo[R + i] = {level: row_ol};\n\t\t\t\tC = -1; break;\n\t\t\tcase 'covered-table-cell': // 9.1.5 \n\t\t\t\tif(Rn[1] !== '/') ++C;\n\t\t\t\tif(opts.sheetStubs) {\n\t\t\t\t\tif(opts.dense) { if(!ws[\"!data\"][R]) ws[\"!data\"][R] = []; ws[\"!data\"][R][C] = {t:'z'}; }\n\t\t\t\t\telse ws[encode_cell({r:R,c:C})] = {t:'z'};\n\t\t\t\t}\n\t\t\t\ttextp = \"\"; textR = [];\n\t\t\t\tbreak; /* stub */\n\t\t\tcase 'table-cell': case '数据':\n\t\t\t\tif(Rn[0].charAt(Rn[0].length-2) === '/') {\n\t\t\t\t\t++C;\n\t\t\t\t\tctag = parsexmltag(Rn[0], false);\n\t\t\t\t\tcolpeat = parseInt(ctag['number-columns-repeated']||\"1\", 10);\n\t\t\t\t\tq = ({t:'z', v:null/*:: , z:null, w:\"\",c:[]*/}/*:any*/);\n\t\t\t\t\tif(ctag.formula && opts.cellFormula != false) q.f = ods_to_csf_formula(unescapexml(ctag.formula));\n\t\t\t\t\tif(ctag[\"style-name\"] && styles[ctag[\"style-name\"]]) q.z = styles[ctag[\"style-name\"]];\n\t\t\t\t\tif((ctag['数据类型'] || ctag['value-type']) == \"string\") {\n\t\t\t\t\t\tq.t = \"s\"; q.v = unescapexml(ctag['string-value'] || \"\");\n\t\t\t\t\t\tif(opts.dense) {\n\t\t\t\t\t\t\tif(!ws[\"!data\"][R]) ws[\"!data\"][R] = [];\n\t\t\t\t\t\t\tws[\"!data\"][R][C] = q;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tws[encode_col(C) + encode_row(R)] = q;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tC+= colpeat-1;\n\t\t\t\t} else if(Rn[1]!=='/') {\n\t\t\t\t\t++C;\n\t\t\t\t\ttextp = \"\"; textpidx = 0; textR = [];\n\t\t\t\t\tcolpeat = 1;\n\t\t\t\t\tvar rptR = rowpeat ? R + rowpeat - 1 : R;\n\t\t\t\t\tif(C > range.e.c) range.e.c = C;\n\t\t\t\t\tif(C < range.s.c) range.s.c = C;\n\t\t\t\t\tif(R < range.s.r) range.s.r = R;\n\t\t\t\t\tif(rptR > range.e.r) range.e.r = rptR;\n\t\t\t\t\tctag = parsexmltag(Rn[0], false);\n\t\t\t\t\tcomments = []; comment = ({}/*:any*/);\n\t\t\t\t\tq = ({t:ctag['数据类型'] || ctag['value-type'], v:null/*:: , z:null, w:\"\",c:[]*/}/*:any*/);\n\t\t\t\t\tif(ctag[\"style-name\"] && styles[ctag[\"style-name\"]]) q.z = styles[ctag[\"style-name\"]];\n\t\t\t\t\tif(opts.cellFormula) {\n\t\t\t\t\t\tif(ctag.formula) ctag.formula = unescapexml(ctag.formula);\n\t\t\t\t\t\tif(ctag['number-matrix-columns-spanned'] && ctag['number-matrix-rows-spanned']) {\n\t\t\t\t\t\t\tmR = parseInt(ctag['number-matrix-rows-spanned'],10) || 0;\n\t\t\t\t\t\t\tmC = parseInt(ctag['number-matrix-columns-spanned'],10) || 0;\n\t\t\t\t\t\t\tmrange = {s: {r:R,c:C}, e:{r:R + mR-1,c:C + mC-1}};\n\t\t\t\t\t\t\tq.F = encode_range(mrange);\n\t\t\t\t\t\t\tarrayf.push([mrange, q.F]);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif(ctag.formula) q.f = ods_to_csf_formula(ctag.formula);\n\t\t\t\t\t\telse for(i = 0; i < arrayf.length; ++i)\n\t\t\t\t\t\t\tif(R >= arrayf[i][0].s.r && R <= arrayf[i][0].e.r)\n\t\t\t\t\t\t\t\tif(C >= arrayf[i][0].s.c && C <= arrayf[i][0].e.c)\n\t\t\t\t\t\t\t\t\tq.F = arrayf[i][1];\n\t\t\t\t\t}\n\t\t\t\t\tif(ctag['number-columns-spanned'] || ctag['number-rows-spanned']) {\n\t\t\t\t\t\tmR = parseInt(ctag['number-rows-spanned'],10) || 0;\n\t\t\t\t\t\tmC = parseInt(ctag['number-columns-spanned'],10) || 0;\n\t\t\t\t\t\tmrange = {s: {r:R,c:C}, e:{r:R + mR-1,c:C + mC-1}};\n\t\t\t\t\t\tmerges.push(mrange);\n\t\t\t\t\t}\n\n\t\t\t\t\t/* 19.675.2 table:number-columns-repeated */\n\t\t\t\t\tif(ctag['number-columns-repeated']) colpeat = parseInt(ctag['number-columns-repeated'], 10);\n\n\t\t\t\t\t/* 19.385 office:value-type */\n\t\t\t\t\tswitch(q.t) {\n\t\t\t\t\t\tcase 'boolean': q.t = 'b'; q.v = parsexmlbool(ctag['boolean-value']) || (+ctag['boolean-value'] >= 1); break;\n\t\t\t\t\t\tcase 'float': q.t = 'n'; q.v = parseFloat(ctag.value); break;\n\t\t\t\t\t\tcase 'percentage': q.t = 'n'; q.v = parseFloat(ctag.value); break;\n\t\t\t\t\t\tcase 'currency': q.t = 'n'; q.v = parseFloat(ctag.value); break;\n\t\t\t\t\t\tcase 'date': q.t = 'd'; q.v = parseDate(ctag['date-value']);\n\t\t\t\t\t\t\tif(!opts.cellDates) { q.t = 'n'; q.v = datenum(q.v, WB.WBProps.date1904) - baddate; }\n\t\t\t\t\t\t\tif(!q.z) q.z = 'm/d/yy'; break;\n\t\t\t\t\t\tcase 'time': q.t = 'n'; q.v = parse_isodur(ctag['time-value'])/86400;\n\t\t\t\t\t\t\tif(opts.cellDates) { q.t = 'd'; q.v = numdate(q.v); }\n\t\t\t\t\t\t\tif(!q.z) q.z = 'HH:MM:SS'; break;\n\t\t\t\t\t\tcase 'number': q.t = 'n'; q.v = parseFloat(ctag['数据数值']); break;\n\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\tif(q.t === 'string' || q.t === 'text' || !q.t) {\n\t\t\t\t\t\t\t\tq.t = 's';\n\t\t\t\t\t\t\t\tif(ctag['string-value'] != null) { textp = unescapexml(ctag['string-value']); textR = []; }\n\t\t\t\t\t\t\t} else throw new Error('Unsupported value type ' + q.t);\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tisstub = false;\n\t\t\t\t\tif(q.t === 's') {\n\t\t\t\t\t\tq.v = textp || '';\n\t\t\t\t\t\tif(textR.length) q.R = textR;\n\t\t\t\t\t\tisstub = textpidx == 0;\n\t\t\t\t\t}\n\t\t\t\t\tif(atag.Target) q.l = atag;\n\t\t\t\t\tif(comments.length > 0) { q.c = comments; comments = []; }\n\t\t\t\t\tif(textp && opts.cellText !== false) q.w = textp;\n\t\t\t\t\tif(isstub) { q.t = \"z\"; delete q.v; }\n\t\t\t\t\tif(!isstub || opts.sheetStubs) {\n\t\t\t\t\t\tif(!(opts.sheetRows && opts.sheetRows <= R)) {\n\t\t\t\t\t\t\tfor(var rpt = 0; rpt < rowpeat; ++rpt) {\n\t\t\t\t\t\t\t\tcolpeat = parseInt(ctag['number-columns-repeated']||\"1\", 10);\n\t\t\t\t\t\t\t\tif(opts.dense) {\n\t\t\t\t\t\t\t\t\tif(!ws[\"!data\"][R + rpt]) ws[\"!data\"][R + rpt] = [];\n\t\t\t\t\t\t\t\t\tws[\"!data\"][R + rpt][C] = rpt == 0 ? q : dup(q);\n\t\t\t\t\t\t\t\t\twhile(--colpeat > 0) ws[\"!data\"][R + rpt][C + colpeat] = dup(q);\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tws[encode_cell({r:R + rpt,c:C})] = q;\n\t\t\t\t\t\t\t\t\twhile(--colpeat > 0) ws[encode_cell({r:R + rpt,c:C + colpeat})] = dup(q);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tif(range.e.c <= C) range.e.c = C;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tcolpeat = parseInt(ctag['number-columns-repeated']||\"1\", 10);\n\t\t\t\t\tC += colpeat-1; colpeat = 0;\n\t\t\t\t\tq = {/*:: t:\"\", v:null, z:null, w:\"\",c:[]*/};\n\t\t\t\t\ttextp = \"\"; textR = [];\n\t\t\t\t}\n\t\t\t\tatag = ({}/*:any*/);\n\t\t\t\tbreak; // 9.1.4 \n\n\t\t\t/* pure state */\n\t\t\tcase 'document': // TODO: is the root for FODS\n\t\t\tcase 'document-content': case '电子表格文档': // 3.1.3.2 \n\t\t\tcase 'spreadsheet': case '主体': // 3.7 \n\t\t\tcase 'scripts': // 3.12 \n\t\t\tcase 'styles': // TODO \n\t\t\tcase 'font-face-decls': // 3.14 \n\t\t\tcase 'master-styles': // 3.15.4 -- relevant for FODS\n\t\t\t\tif(Rn[1]==='/'){if((tmp=state.pop())[0]!==Rn[3]) throw \"Bad state: \"+tmp;}\n\t\t\t\telse if(Rn[0].charAt(Rn[0].length-2) !== '/') state.push([Rn[3], true]);\n\t\t\t\tbreak;\n\n\t\t\tcase 'annotation': // 14.1 \n\t\t\t\tif(Rn[1]==='/'){\n\t\t\t\t\tif((tmp=state.pop())[0]!==Rn[3]) throw \"Bad state: \"+tmp;\n\t\t\t\t\tcomment.t = textp;\n\t\t\t\t\tif(textR.length) /*::(*/comment/*:: :any)*/.R = textR;\n\t\t\t\t\tcomment.a = creator;\n\t\t\t\t\tcomments.push(comment);\n\t\t\t\t}\n\t\t\t\telse if(Rn[0].charAt(Rn[0].length-2) !== '/') {state.push([Rn[3], false]);}\n\t\t\t\tcreator = \"\"; creatoridx = 0;\n\t\t\t\ttextp = \"\"; textpidx = 0; textR = [];\n\t\t\t\tbreak;\n\n\t\t\tcase 'creator': // 4.3.2.7 \n\t\t\t\tif(Rn[1]==='/') { creator = str.slice(creatoridx,Rn.index); }\n\t\t\t\telse creatoridx = Rn.index + Rn[0].length;\n\t\t\t\tbreak;\n\n\t\t\t/* ignore state */\n\t\t\tcase 'meta': case '元数据': // TODO: FODS/UOF\n\t\t\tcase 'settings': // TODO: \n\t\t\tcase 'config-item-set': // TODO: \n\t\t\tcase 'config-item-map-indexed': // TODO: \n\t\t\tcase 'config-item-map-entry': // TODO: \n\t\t\tcase 'config-item-map-named': // TODO: \n\t\t\tcase 'shapes': // 9.2.8 \n\t\t\tcase 'frame': // 10.4.2 \n\t\t\tcase 'text-box': // 10.4.3 \n\t\t\tcase 'image': // 10.4.4 \n\t\t\tcase 'data-pilot-tables': // 9.6.2 \n\t\t\tcase 'list-style': // 16.30 \n\t\t\tcase 'form': // 13.13 \n\t\t\tcase 'dde-links': // 9.8 \n\t\t\tcase 'event-listeners': // TODO\n\t\t\tcase 'chart': // TODO\n\t\t\t\tif(Rn[1]==='/'){if((tmp=state.pop())[0]!==Rn[3]) throw \"Bad state: \"+tmp;}\n\t\t\t\telse if(Rn[0].charAt(Rn[0].length-2) !== '/') state.push([Rn[3], false]);\n\t\t\t\ttextp = \"\"; textpidx = 0; textR = [];\n\t\t\t\tbreak;\n\n\t\t\tcase 'scientific-number': // \n\t\t\tcase 'currency-symbol': // \n\t\t\tcase 'fill-character': // 16.29.5 \n\t\t\t\tbreak;\n\n\t\t\tcase 'text-style': // 16.27.25 \n\t\t\tcase 'boolean-style': // 16.27.23 \n\t\t\tcase 'number-style': // 16.27.2 \n\t\t\tcase 'currency-style': // 16.29.8 \n\t\t\tcase 'percentage-style': // 16.27.9 \n\t\t\tcase 'date-style': // 16.27.10 \n\t\t\tcase 'time-style': // 16.27.18 \n\t\t\t\tif(Rn[1]==='/'){\n\t\t\t\t\tvar xlmlidx = xlmlregex.lastIndex;\n\t\t\t\t\tparse_ods_styles(str.slice(nfidx, xlmlregex.lastIndex), _opts, number_format_map);\n\t\t\t\t\txlmlregex.lastIndex = xlmlidx;\n\t\t\t\t} else if(Rn[0].charAt(Rn[0].length-2) !== '/') {\n\t\t\t\t\tnfidx = xlmlregex.lastIndex - Rn[0].length;\n\t\t\t\t} break;\n\n\t\t\tcase 'script': break; // 3.13 \n\t\t\tcase 'libraries': break; // TODO: \n\t\t\tcase 'automatic-styles': break; // 3.15.3 \n\n\t\t\tcase 'default-style': // TODO: \n\t\t\tcase 'page-layout': break; // TODO: \n\t\t\tcase 'style': { // 16.2 \n\t\t\t\tvar styletag = parsexmltag(Rn[0], false);\n\t\t\t\tif(styletag[\"family\"] == \"table-cell\" && number_format_map[styletag[\"data-style-name\"]]) styles[styletag[\"name\"]] = number_format_map[styletag[\"data-style-name\"]];\n\t\t\t} break;\n\t\t\tcase 'map': break; // 16.3 \n\t\t\tcase 'font-face': break; // 16.21 \n\n\t\t\tcase 'paragraph-properties': break; // 17.6 \n\t\t\tcase 'table-properties': break; // 17.15 \n\t\t\tcase 'table-column-properties': break; // 17.16 \n\t\t\tcase 'table-row-properties': break; // 17.17 \n\t\t\tcase 'table-cell-properties': break; // 17.18 \n\n\t\t\tcase 'number': // 16.27.3 \n\t\t\t\tbreak;\n\n\t\t\tcase 'fraction': break; // TODO 16.27.6 \n\n\t\t\tcase 'day': // 16.27.11 \n\t\t\tcase 'month': // 16.27.12 \n\t\t\tcase 'year': // 16.27.13 \n\t\t\tcase 'era': // 16.27.14 \n\t\t\tcase 'day-of-week': // 16.27.15 \n\t\t\tcase 'week-of-year': // 16.27.16 \n\t\t\tcase 'quarter': // 16.27.17 \n\t\t\tcase 'hours': // 16.27.19 \n\t\t\tcase 'minutes': // 16.27.20 \n\t\t\tcase 'seconds': // 16.27.21 \n\t\t\tcase 'am-pm': // 16.27.22 \n\t\t\t\tbreak;\n\n\t\t\tcase 'boolean': break; // 16.27.24 \n\t\t\tcase 'text': // 16.27.26 \n\t\t\t\tif(Rn[0].slice(-2) === \"/>\") break;\n\t\t\t\telse if(Rn[1]===\"/\") switch(state[state.length-1][0]) {\n\t\t\t\t\tcase 'number-style':\n\t\t\t\t\tcase 'date-style':\n\t\t\t\t\tcase 'time-style':\n\t\t\t\t\t\tNF += str.slice(pidx, Rn.index);\n\t\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\telse pidx = Rn.index + Rn[0].length;\n\t\t\t\tbreak;\n\n\t\t\tcase 'named-range': // 9.4.12 \n\t\t\t\ttag = parsexmltag(Rn[0], false);\n\t\t\t\t_Ref = ods_to_csf_3D(tag['cell-range-address']);\n\t\t\t\tvar nrange = ({Name:tag.name, Ref:_Ref[0] + '!' + _Ref[1]}/*:any*/);\n\t\t\t\tif(intable) nrange.Sheet = SheetNames.length;\n\t\t\t\tWB.Names.push(nrange);\n\t\t\t\tbreak;\n\n\t\t\tcase 'text-content': break; // 16.27.27 \n\t\t\tcase 'text-properties': break; // 16.27.27 \n\t\t\tcase 'embedded-text': break; // 16.27.4 \n\n\t\t\tcase 'body': case '电子表格': break; // 3.3 16.9.6 19.726.3\n\n\t\t\tcase 'forms': break; // 12.25.2 13.2\n\t\t\tcase 'table-column': break; // 9.1.6 \n\t\t\tcase 'table-header-rows': break; // 9.1.7 \n\t\t\tcase 'table-rows': break; // 9.1.12 \n\t\t\t/* TODO: outline levels */\n\t\t\tcase 'table-column-group': break; // 9.1.10 \n\t\t\tcase 'table-header-columns': break; // 9.1.11 \n\t\t\tcase 'table-columns': break; // 9.1.12 \n\n\t\t\tcase 'null-date': // 9.4.2 \n\t\t\t\ttag = parsexmltag(Rn[0], false);\n\t\t\t\tswitch(tag[\"date-value\"]) {\n\t\t\t\t\tcase \"1904-01-01\": WB.WBProps.date1904 = true;\n\t\t\t\t\t/* falls through */\n\t\t\t\t\tcase \"1900-01-01\": baddate = 0;\n\t\t\t\t}\n\t\t\t\tbreak;\n\n\t\t\tcase 'graphic-properties': break; // 17.21 \n\t\t\tcase 'calculation-settings': break; // 9.4.1 \n\t\t\tcase 'named-expressions': break; // 9.4.11 \n\t\t\tcase 'label-range': break; // 9.4.9 \n\t\t\tcase 'label-ranges': break; // 9.4.10 \n\t\t\tcase 'named-expression': break; // 9.4.13 \n\t\t\tcase 'sort': break; // 9.4.19 \n\t\t\tcase 'sort-by': break; // 9.4.20 \n\t\t\tcase 'sort-groups': break; // 9.4.22 \n\n\t\t\tcase 'tab': break; // 6.1.4 \n\t\t\tcase 'line-break': break; // 6.1.5 \n\t\t\tcase 'span': break; // 6.1.7 \n\t\t\tcase 'p': case '文本串': // 5.1.3 \n\t\t\t\tif(['master-styles'].indexOf(state[state.length-1][0]) > -1) break;\n\t\t\t\tif(Rn[1]==='/' && (!ctag || !ctag['string-value'])) {\n\t\t\t\t\tvar ptp = parse_text_p(str.slice(textpidx,Rn.index), textptag);\n\t\t\t\t\ttextp = (textp.length > 0 ? textp + \"\\n\" : \"\") + ptp[0];\n\t\t\t\t} else { textptag = parsexmltag(Rn[0], false); textpidx = Rn.index + Rn[0].length; }\n\t\t\t\tbreak; // \n\t\t\tcase 's': break; // \n\n\t\t\tcase 'database-range': // 9.4.15 \n\t\t\t\tif(Rn[1]==='/') break;\n\t\t\t\ttry {\n\t\t\t\t\t_Ref = ods_to_csf_3D(parsexmltag(Rn[0])['target-range-address']);\n\t\t\t\t\tSheets[_Ref[0]]['!autofilter'] = { ref:_Ref[1] };\n\t\t\t\t} catch(e) {/* empty */}\n\t\t\t\tbreak;\n\n\t\t\tcase 'date': break; // <*:date>\n\n\t\t\tcase 'object': break; // 10.4.6.2 \n\t\t\tcase 'title': case '标题': break; // <*:title> OR \n\t\t\tcase 'desc': break; // <*:desc>\n\t\t\tcase 'binary-data': break; // 10.4.5 TODO: b64 blob\n\n\t\t\t/* 9.2 Advanced Tables */\n\t\t\tcase 'table-source': break; // 9.2.6\n\t\t\tcase 'scenario': break; // 9.2.6\n\n\t\t\tcase 'iteration': break; // 9.4.3 \n\t\t\tcase 'content-validations': break; // 9.4.4 \n\t\t\tcase 'filter': break; // 9.5.2 \n\t\t\tcase 'filter-and': break; // 9.5.3 \n\t\t\tcase 'filter-or': break; // 9.5.4 \n\t\t\tcase 'filter-condition': break; // 9.5.5 \n\n\t\t\tcase 'list-level-style-bullet': break; // 16.31 \n\t\t\tcase 'page-count': break; // TODO \n\t\t\tcase 'time': break; // TODO \n\n\t\t\t/* 9.3 Advanced Table Cells */\n\t\t\tcase 'cell-range-source': break; // 9.3.1 \n\t\t\tcase 'property': break; // 13.8 \n\n\t\t\tcase 'a': // 6.1.8 hyperlink\n\t\t\t\tif(Rn[1]!== '/') {\n\t\t\t\t\tatag = parsexmltag(Rn[0], false);\n\t\t\t\t\tif(!atag.href) break;\n\t\t\t\t\tatag.Target = unescapexml(atag.href); delete atag.href;\n\t\t\t\t\tif(atag.Target.charAt(0) == \"#\" && atag.Target.indexOf(\".\") > -1) {\n\t\t\t\t\t\t_Ref = ods_to_csf_3D(atag.Target.slice(1));\n\t\t\t\t\t\tatag.Target = \"#\" + _Ref[0] + \"!\" + _Ref[1];\n\t\t\t\t\t} else if(atag.Target.match(/^\\.\\.[\\\\\\/]/)) atag.Target = atag.Target.slice(3);\n\t\t\t\t}\n\t\t\t\tbreak;\n\n\t\t\t/* non-standard */\n\t\t\tcase 'table-protection': break;\n\t\t\tcase 'data-pilot-grand-total': break; // ',\n\t\t\t'',\n\t\t\t\t'',\n\t\t\t\t'',\n\t\t\t\t'',\n\t\t\t\t'',\n\t\t\t'',\n\t\t''\n\t].join(\"\");\n\n\tvar payload = '' + master_styles + '';\n\n\treturn function wso(/*::wb, opts*/) {\n\t\treturn XML_HEADER + payload;\n\t};\n})();\n\n// TODO: find out if anyone actually read the spec. LO has some wild errors\nfunction write_number_format_ods(nf/*:string*/, nfidx/*:string*/)/*:string*/ {\n\tvar type = \"number\", payload = \"\", nopts = { \"style:name\": nfidx }, c = \"\", i = 0;\n\tnf = nf.replace(/\"[$]\"/g, \"$\");\n\t/* TODO: replace with an actual parser based on a real grammar */\n\tj: {\n\t\t// TODO: support style maps\n\t\tif(nf.indexOf(\";\") > -1) {\n\t\t\tconsole.error(\"Unsupported ODS Style Map exported. Using first branch of \" + nf);\n\t\t\tnf = nf.slice(0, nf.indexOf(\";\"));\n\t\t}\n\n\t\tif(nf == \"@\") { type = \"text\"; payload = \"\"; break j; }\n\n\t\t/* currency flag */\n\t\tif(nf.indexOf(/\\$/) > -1) { type = \"currency\"; }\n\n\t\t/* opening string literal */\n\t\tif(nf[i] == '\"') {\n\t\t\tc = \"\";\n\t\t\twhile(nf[++i] != '\"' || nf[++i] == '\"') c += nf[i]; --i;\n\t\t\tif(nf[i+1] == \"*\") {\n\t\t\t\ti++;\n\t\t\t\tpayload += '' + escapexml(c.replace(/\"\"/g, '\"')) + '';\n\t\t\t} else {\n\t\t\t\tpayload += '' + escapexml(c.replace(/\"\"/g, '\"')) + '';\n\t\t\t}\n\t\t\tnf = nf.slice(i+1); i = 0;\n\t\t}\n\n\t\t/* fractions */\n\t\tvar t = nf.match(/# (\\?+)\\/(\\?+)/);\n\t\tif(t) { payload += writextag(\"number:fraction\", null, {\"number:min-integer-digits\":0, \"number:min-numerator-digits\": t[1].length, \"number:max-denominator-value\": Math.max(+(t[1].replace(/./g, \"9\")), +(t[2].replace(/./g, \"9\"))) }); break j; }\n\t\tif((t=nf.match(/# (\\?+)\\/(\\d+)/))) { payload += writextag(\"number:fraction\", null, {\"number:min-integer-digits\":0, \"number:min-numerator-digits\": t[1].length, \"number:denominator-value\": +t[2]}); break j; }\n\n\t\t/* percentages */\n\t\tif((t=nf.match(/(\\d+)(|\\.\\d+)%/))) { type = \"percentage\"; payload += writextag(\"number:number\", null, {\"number:decimal-places\": t[2] && t.length - 1 || 0, \"number:min-decimal-places\": t[2] && t.length - 1 || 0, \"number:min-integer-digits\": t[1].length }) + \"%\"; break j; }\n\n\t\t/* datetime */\n\t\tvar has_time = false;\n\t\tif([\"y\",\"m\",\"d\"].indexOf(nf[0]) > -1) {\n\t\t\ttype = \"date\";\n\t\t\tk: for(; i < nf.length; ++i) switch((c = nf[i].toLowerCase())) {\n\t\t\t\tcase \"h\": case \"s\": has_time = true; --i; break k;\n\t\t\t\tcase \"m\":\n\t\t\t\t\tl: for(var h = i+1; h < nf.length; ++h) switch(nf[h]) {\n\t\t\t\t\t\tcase \"y\": case \"d\": break l;\n\t\t\t\t\t\tcase \"h\": case \"s\": has_time = true; --i; break k;\n\t\t\t\t\t}\n\t\t\t\t\t/* falls through */\n\t\t\t\tcase \"y\": case \"d\":\n\t\t\t\t\twhile((nf[++i]||\"\").toLowerCase() == c[0]) c += c[0]; --i;\n\t\t\t\t\tswitch(c) {\n\t\t\t\t\t\tcase \"y\": case \"yy\": payload += \"\"; break;\n\t\t\t\t\t\tcase \"yyy\": case \"yyyy\": payload += ''; break;\n\t\t\t\t\t\tcase \"mmmmm\": console.error(\"ODS has no equivalent of format |mmmmm|\");\n\t\t\t\t\t\t\t/* falls through */\n\t\t\t\t\t\tcase \"m\": case \"mm\": case \"mmm\": case \"mmmm\":\n\t\t\t\t\t\t\tpayload += '= 3 ? \"true\" : \"false\") + '\"/>';\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase \"d\": case \"dd\": payload += ''; break;\n\t\t\t\t\t\tcase \"ddd\": case \"dddd\": payload += ''; break;\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t\tcase '\"':\n\t\t\t\t\twhile(nf[++i] != '\"' || nf[++i] == '\"') c += nf[i]; --i;\n\t\t\t\t\tpayload += '' + escapexml(c.slice(1).replace(/\"\"/g, '\"')) + '';\n\t\t\t\t\tbreak;\n\t\t\t\tcase '/': payload += '' + escapexml(c) + ''; break;\n\t\t\t\tdefault: console.error(\"unrecognized character \" + c + \" in ODF format \" + nf);\n\t\t\t}\n\t\t\tif(!has_time) break j;\n\t\t\tnf = nf.slice(i+1); i = 0;\n\t\t}\n\t\tif(nf.match(/^\\[?[hms]/)) {\n\t\t\tif(type == \"number\") type = \"time\";\n\t\t\tif(nf.match(/\\[/)) {\n\t\t\t\tnf = nf.replace(/[\\[\\]]/g, \"\");\n\t\t\t\tnopts['number:truncate-on-overflow'] = \"false\";\n\t\t\t}\n\t\t\tfor(; i < nf.length; ++i) switch((c = nf[i].toLowerCase())) {\n\t\t\t\tcase \"h\": case \"m\": case \"s\":\n\t\t\t\t\twhile((nf[++i]||\"\").toLowerCase() == c[0]) c += c[0]; --i;\n\t\t\t\t\tswitch(c) {\n\t\t\t\t\t\tcase \"h\": case \"hh\": payload += ''; break;\n\t\t\t\t\t\tcase \"m\": case \"mm\": payload += ''; break;\n\t\t\t\t\t\tcase \"s\": case \"ss\":\n\t\t\t\t\t\t\tif(nf[i+1] == \".\") do { c += nf[i+1]; ++i; } while(nf[i+1] == \"0\");\n\t\t\t\t\t\t\tpayload += ''; break;\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t\tcase '\"':\n\t\t\t\t\twhile(nf[++i] != '\"' || nf[++i] == '\"') c += nf[i]; --i;\n\t\t\t\t\tpayload += '' + escapexml(c.slice(1).replace(/\"\"/g, '\"')) + '';\n\t\t\t\t\tbreak;\n\t\t\t\tcase '/': payload += '' + escapexml(c) + ''; break;\n\t\t\t\tcase \"a\":\n\t\t\t\t\tif(nf.slice(i, i+3).toLowerCase() == \"a/p\") { payload += ''; i += 2; break; } // Note: ODF does not support A/P\n\t\t\t\t\tif(nf.slice(i, i+5).toLowerCase() == \"am/pm\") { payload += ''; i += 4; break; }\n\t\t\t\t\t/* falls through */\n\t\t\t\tdefault: console.error(\"unrecognized character \" + c + \" in ODF format \" + nf);\n\t\t\t}\n\t\t\tbreak j;\n\t\t}\n\n\t\t/* currency flag */\n\t\tif(nf.indexOf(/\\$/) > -1) { type = \"currency\"; }\n\n\t\t/* should be in a char loop */\n\t\tif(nf[0] == \"$\") { payload += '$'; nf = nf.slice(1); i = 0; }\n\t\ti = 0; if(nf[i] == '\"') {\n\t\t\twhile(nf[++i] != '\"' || nf[++i] == '\"') c += nf[i]; --i;\n\t\t\tif(nf[i+1] == \"*\") {\n\t\t\t\ti++;\n\t\t\t\tpayload += '' + escapexml(c.replace(/\"\"/g, '\"')) + '';\n\t\t\t} else {\n\t\t\t\tpayload += '' + escapexml(c.replace(/\"\"/g, '\"')) + '';\n\t\t\t}\n\t\t\tnf = nf.slice(i+1); i = 0;\n\t\t}\n\n\t\t/* number TODO: interstitial text e.g. 000)000-0000 */\n\t\tvar np = nf.match(/([#0][0#,]*)(\\.[0#]*|)(E[+]?0*|)/i);\n\t\tif(!np || !np[0]) console.error(\"Could not find numeric part of \" + nf);\n\t\telse {\n\t\t\tvar base = np[1].replace(/,/g, \"\");\n\t\t\tpayload += ' -1 ? ' number:grouping=\"true\"' : \"\") +\n\t\t\t\t(np[2] && ' number:decimal-places=\"' + (np[2].length - 1) + '\"' || ' number:decimal-places=\"0\"') +\n\t\t\t\t(np[3] && np[3].indexOf(\"+\") > -1 ? ' number:forced-exponent-sign=\"true\"' : \"\" ) +\n\t\t\t\t(np[3] ? ' number:min-exponent-digits=\"' + np[3].match(/0+/)[0].length + '\"' : \"\" ) +\n\t\t\t\t'>' +\n\t\t\t\t/* TODO: interstitial text placeholders */\n\t\t\t\t'';\n\t\t\ti = np.index + np[0].length;\n\t\t}\n\n\t\t/* residual text */\n\t\tif(nf[i] == '\"') {\n\t\t\tc = \"\";\n\t\t\twhile(nf[++i] != '\"' || nf[++i] == '\"') c += nf[i]; --i;\n\t\t\tpayload += '' + escapexml(c.replace(/\"\"/g, '\"')) + '';\n\t\t}\n\t}\n\n\tif(!payload) { console.error(\"Could not generate ODS number format for |\" + nf + \"|\"); return \"\"; }\n\treturn writextag(\"number:\" + type + \"-style\", payload, nopts);\n}\n\nfunction write_names_ods(Names, SheetNames, idx) {\n\tvar scoped = Names.filter(function(name) { return name.Sheet == (idx == -1 ? null : idx); });\n\tif(!scoped.length) return \"\";\n\treturn \" \\n\" + scoped.map(function(name) {\n\t\tvar odsref = csf_to_ods_3D(name.Ref);\n\t\treturn \" \" + writextag(\"table:named-range\", null, {\n\t\t\t\"table:name\": name.Name,\n\t\t\t\"table:cell-range-address\": odsref,\n\t\t\t\"table:base-cell-address\": odsref.replace(/[\\.]?[^\\.]*$/, \".$A$1\")\n\t\t});\n\t}).join(\"\\n\") + \"\\n \\n\";\n}\nvar write_content_ods/*:{(wb:any, opts:any):string}*/ = /* @__PURE__ */(function() {\n\t/* 6.1.2 White Space Characters */\n\tvar write_text_p = function(text/*:string*/)/*:string*/ {\n\t\treturn escapexml(text)\n\t\t\t.replace(/ +/g, function($$){return '';})\n\t\t\t.replace(/\\t/g, \"\")\n\t\t\t.replace(/\\n/g, \"\")\n\t\t\t.replace(/^ /, \"\").replace(/ $/, \"\");\n\t};\n\n\tvar null_cell_xml = ' \\n';\n\tvar covered_cell_xml = ' \\n';\n\tvar write_ws = function(ws, wb/*:Workbook*/, i/*:number*/, opts, nfs)/*:string*/ {\n\t\t/* Section 9 Tables */\n\t\tvar o/*:Array*/ = [];\n\t\to.push(' \\n');\n\t\tvar R=0,C=0, range = decode_range(ws['!ref']||\"A1\");\n\t\tvar marr/*:Array*/ = ws['!merges'] || [], mi = 0;\n\t\tvar dense = ws[\"!data\"] != null;\n\t\tif(ws[\"!cols\"]) {\n\t\t\tfor(C = 0; C <= range.e.c; ++C) o.push(' \\n');\n\t\t}\n\t\tvar H = \"\", ROWS = ws[\"!rows\"]||[];\n\t\tfor(R = 0; R < range.s.r; ++R) {\n\t\t\tH = ROWS[R] ? ' table:style-name=\"ro' + ROWS[R].ods + '\"' : \"\";\n\t\t\to.push(' \\n');\n\t\t}\n\t\tfor(; R <= range.e.r; ++R) {\n\t\t\tH = ROWS[R] ? ' table:style-name=\"ro' + ROWS[R].ods + '\"' : \"\";\n\t\t\to.push(' \\n');\n\t\t\tfor(C=0; C < range.s.c; ++C) o.push(null_cell_xml);\n\t\t\tfor(; C <= range.e.c; ++C) {\n\t\t\t\tvar skip = false, ct = {}, textp = \"\";\n\t\t\t\tfor(mi = 0; mi != marr.length; ++mi) {\n\t\t\t\t\tif(marr[mi].s.c > C) continue;\n\t\t\t\t\tif(marr[mi].s.r > R) continue;\n\t\t\t\t\tif(marr[mi].e.c < C) continue;\n\t\t\t\t\tif(marr[mi].e.r < R) continue;\n\t\t\t\t\tif(marr[mi].s.c != C || marr[mi].s.r != R) skip = true;\n\t\t\t\t\tct['table:number-columns-spanned'] = (marr[mi].e.c - marr[mi].s.c + 1);\n\t\t\t\t\tct['table:number-rows-spanned'] = (marr[mi].e.r - marr[mi].s.r + 1);\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\tif(skip) { o.push(covered_cell_xml); continue; }\n\t\t\t\tvar ref = encode_cell({r:R, c:C}), cell = dense ? (ws[\"!data\"][R]||[])[C]: ws[ref];\n\t\t\t\tif(cell && cell.f) {\n\t\t\t\t\tct['table:formula'] = escapexml(csf_to_ods_formula(cell.f));\n\t\t\t\t\tif(cell.F) {\n\t\t\t\t\t\tif(cell.F.slice(0, ref.length) == ref) {\n\t\t\t\t\t\t\tvar _Fref = decode_range(cell.F);\n\t\t\t\t\t\t\tct['table:number-matrix-columns-spanned'] = (_Fref.e.c - _Fref.s.c + 1);\n\t\t\t\t\t\t\tct['table:number-matrix-rows-spanned'] = (_Fref.e.r - _Fref.s.r + 1);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif(!cell) { o.push(null_cell_xml); continue; }\n\t\t\t\tswitch(cell.t) {\n\t\t\t\t\tcase 'b':\n\t\t\t\t\t\ttextp = (cell.v ? 'TRUE' : 'FALSE');\n\t\t\t\t\t\tct['office:value-type'] = \"boolean\";\n\t\t\t\t\t\tct['office:boolean-value'] = (cell.v ? 'true' : 'false');\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'n':\n\t\t\t\t\t\ttextp = (cell.w||String(cell.v||0));\n\t\t\t\t\t\tct['office:value-type'] = \"float\";\n\t\t\t\t\t\tct['office:value'] = (cell.v||0);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 's': case 'str':\n\t\t\t\t\t\ttextp = cell.v == null ? \"\" : cell.v;\n\t\t\t\t\t\tct['office:value-type'] = \"string\";\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'd':\n\t\t\t\t\t\ttextp = (cell.w||(parseDate(cell.v).toISOString()));\n\t\t\t\t\t\tct['office:value-type'] = \"date\";\n\t\t\t\t\t\tct['office:date-value'] = (parseDate(cell.v).toISOString());\n\t\t\t\t\t\tct['table:style-name'] = \"ce1\";\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t//case 'e':\n\t\t\t\t\tdefault: o.push(null_cell_xml); continue;\n\t\t\t\t}\n\t\t\t\tvar text_p = write_text_p(textp);\n\t\t\t\tif(cell.l && cell.l.Target) {\n\t\t\t\t\tvar _tgt = cell.l.Target;\n\t\t\t\t\t_tgt = _tgt.charAt(0) == \"#\" ? \"#\" + csf_to_ods_3D(_tgt.slice(1)) : _tgt;\n\t\t\t\t\t// TODO: choose correct parent path format based on link delimiters\n\t\t\t\t\tif(_tgt.charAt(0) != \"#\" && !_tgt.match(/^\\w+:/)) _tgt = '../' + _tgt;\n\t\t\t\t\ttext_p = writextag('text:a', text_p, {'xlink:href': _tgt.replace(/&/g, \"&\")});\n\t\t\t\t}\n\t\t\t\tif(nfs[cell.z]) ct[\"table:style-name\"] = \"ce\" + nfs[cell.z].slice(1);\n\t\t\t\to.push(' ' + writextag('table:table-cell', writextag('text:p', text_p, {}), ct) + '\\n');\n\t\t\t}\n\t\t\to.push(' \\n');\n\t\t}\n\t\tif((wb.Workbook||{}).Names) o.push(write_names_ods(wb.Workbook.Names, wb.SheetNames, i));\n\t\to.push(' \\n');\n\t\treturn o.join(\"\");\n\t};\n\n\tvar write_automatic_styles_ods = function(o/*:Array*/, wb) {\n\t\to.push(' \\n');\n\n\t\t/* column styles */\n\t\tvar cidx = 0;\n\t\twb.SheetNames.map(function(n) { return wb.Sheets[n]; }).forEach(function(ws) {\n\t\t\tif(!ws) return;\n\t\t\tif(ws[\"!cols\"]) {\n\t\t\t\tfor(var C = 0; C < ws[\"!cols\"].length; ++C) if(ws[\"!cols\"][C]) {\n\t\t\t\t\tvar colobj = ws[\"!cols\"][C];\n\t\t\t\t\tif(colobj.width == null && colobj.wpx == null && colobj.wch == null) continue;\n\t\t\t\t\tprocess_col(colobj);\n\t\t\t\t\tcolobj.ods = cidx;\n\t\t\t\t\tvar w = ws[\"!cols\"][C].wpx + \"px\";\n\t\t\t\t\to.push(' \\n');\n\t\t\t\t\to.push(' \\n');\n\t\t\t\t\to.push(' \\n');\n\t\t\t\t\t++cidx;\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\n\t\t/* row styles */\n\t\tvar ridx = 0;\n\t\twb.SheetNames.map(function(n) { return wb.Sheets[n]; }).forEach(function(ws) {\n\t\t\tif(!ws) return;\n\t\t\tif(ws[\"!rows\"]) {\n\t\t\t\tfor(var R = 0; R < ws[\"!rows\"].length; ++R) if(ws[\"!rows\"][R]) {\n\t\t\t\t\tws[\"!rows\"][R].ods = ridx;\n\t\t\t\t\tvar h = ws[\"!rows\"][R].hpx + \"px\";\n\t\t\t\t\to.push(' \\n');\n\t\t\t\t\to.push(' \\n');\n\t\t\t\t\to.push(' \\n');\n\t\t\t\t\t++ridx;\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\n\t\t/* table */\n\t\to.push(' \\n');\n\t\to.push(' \\n');\n\t\to.push(' \\n');\n\n\t\to.push(' \\n');\n\t\to.push(' \\n');\n\t\to.push(' /\\n');\n\t\to.push(' \\n');\n\t\to.push(' /\\n');\n\t\to.push(' \\n');\n\t\to.push(' \\n');\n\n\t\t/* number formats, table cells, text */\n\t\tvar nfs = {};\n\t\tvar nfi = 69;\n\t\twb.SheetNames.map(function(n) { return wb.Sheets[n]; }).forEach(function(ws) {\n\t\t\tif(!ws) return;\n\t\t\tvar dense = (ws[\"!data\"] != null);\n\t\t\tvar range = decode_range(ws[\"!ref\"]);\n\t\t\tfor(var R = 0; R <= range.e.r; ++R) for(var C = 0; C <= range.e.c; ++C) {\n\t\t\t\tvar c = dense ? (ws[\"!data\"][R]||[])[C] : ws[encode_cell({r:R,c:C})];\n\t\t\t\tif(!c || !c.z || c.z.toLowerCase() == \"general\") continue;\n\t\t\t\tif(!nfs[c.z]) {\n\t\t\t\t\tvar out = write_number_format_ods(c.z, \"N\" + nfi);\n\t\t\t\t\tif(out) { nfs[c.z] = \"N\" + nfi; ++nfi; o.push(out + \"\\n\"); }\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t\to.push(' \\n');\n\t\tkeys(nfs).forEach(function(nf) {\n\t\t\to.push('\\n');\n\t\t});\n\n\t\t/* page-layout */\n\n\t\to.push(' \\n');\n\t\treturn nfs;\n\t};\n\n\treturn function wcx(wb, opts) {\n\t\tvar o = [XML_HEADER];\n\t\t/* 3.1.3.2 */\n\t\tvar attr = wxt_helper({\n\t\t\t'xmlns:office': \"urn:oasis:names:tc:opendocument:xmlns:office:1.0\",\n\t\t\t'xmlns:table': \"urn:oasis:names:tc:opendocument:xmlns:table:1.0\",\n\t\t\t'xmlns:style': \"urn:oasis:names:tc:opendocument:xmlns:style:1.0\",\n\t\t\t'xmlns:text': \"urn:oasis:names:tc:opendocument:xmlns:text:1.0\",\n\t\t\t'xmlns:draw': \"urn:oasis:names:tc:opendocument:xmlns:drawing:1.0\",\n\t\t\t'xmlns:fo': \"urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0\",\n\t\t\t'xmlns:xlink': \"http://www.w3.org/1999/xlink\",\n\t\t\t'xmlns:dc': \"http://purl.org/dc/elements/1.1/\",\n\t\t\t'xmlns:meta': \"urn:oasis:names:tc:opendocument:xmlns:meta:1.0\",\n\t\t\t'xmlns:number': \"urn:oasis:names:tc:opendocument:xmlns:datastyle:1.0\",\n\t\t\t'xmlns:presentation': \"urn:oasis:names:tc:opendocument:xmlns:presentation:1.0\",\n\t\t\t'xmlns:svg': \"urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0\",\n\t\t\t'xmlns:chart': \"urn:oasis:names:tc:opendocument:xmlns:chart:1.0\",\n\t\t\t'xmlns:dr3d': \"urn:oasis:names:tc:opendocument:xmlns:dr3d:1.0\",\n\t\t\t'xmlns:math': \"http://www.w3.org/1998/Math/MathML\",\n\t\t\t'xmlns:form': \"urn:oasis:names:tc:opendocument:xmlns:form:1.0\",\n\t\t\t'xmlns:script': \"urn:oasis:names:tc:opendocument:xmlns:script:1.0\",\n\t\t\t'xmlns:ooo': \"http://openoffice.org/2004/office\",\n\t\t\t'xmlns:ooow': \"http://openoffice.org/2004/writer\",\n\t\t\t'xmlns:oooc': \"http://openoffice.org/2004/calc\",\n\t\t\t'xmlns:dom': \"http://www.w3.org/2001/xml-events\",\n\t\t\t'xmlns:xforms': \"http://www.w3.org/2002/xforms\",\n\t\t\t'xmlns:xsd': \"http://www.w3.org/2001/XMLSchema\",\n\t\t\t'xmlns:xsi': \"http://www.w3.org/2001/XMLSchema-instance\",\n\t\t\t'xmlns:sheet': \"urn:oasis:names:tc:opendocument:sh33tjs:1.0\",\n\t\t\t'xmlns:rpt': \"http://openoffice.org/2005/report\",\n\t\t\t'xmlns:of': \"urn:oasis:names:tc:opendocument:xmlns:of:1.2\",\n\t\t\t'xmlns:xhtml': \"http://www.w3.org/1999/xhtml\",\n\t\t\t'xmlns:grddl': \"http://www.w3.org/2003/g/data-view#\",\n\t\t\t'xmlns:tableooo': \"http://openoffice.org/2009/table\",\n\t\t\t'xmlns:drawooo': \"http://openoffice.org/2010/draw\",\n\t\t\t'xmlns:calcext': \"urn:org:documentfoundation:names:experimental:calc:xmlns:calcext:1.0\",\n\t\t\t'xmlns:loext': \"urn:org:documentfoundation:names:experimental:office:xmlns:loext:1.0\",\n\t\t\t'xmlns:field': \"urn:openoffice:names:experimental:ooo-ms-interop:xmlns:field:1.0\",\n\t\t\t'xmlns:formx': \"urn:openoffice:names:experimental:ooxml-odf-interop:xmlns:form:1.0\",\n\t\t\t'xmlns:css3t': \"http://www.w3.org/TR/css3-text/\",\n\t\t\t'office:version': \"1.2\"\n\t\t});\n\n\t\tvar fods = wxt_helper({\n\t\t\t'xmlns:config': \"urn:oasis:names:tc:opendocument:xmlns:config:1.0\",\n\t\t\t'office:mimetype': \"application/vnd.oasis.opendocument.spreadsheet\"\n\t\t});\n\n\t\tif(opts.bookType == \"fods\") {\n\t\t\to.push('\\n');\n\t\t\to.push(write_meta_ods().replace(//, \"\").replace(/<\\/office:document-meta>/, \"\") + \"\\n\");\n\t\t\t// TODO: settings (equiv of settings.xml for ODS)\n\t\t} else o.push('\\n');\n\t\t// o.push(' \\n');\n\t\tvar nfs = write_automatic_styles_ods(o, wb);\n\t\to.push(' \\n');\n\t\to.push(' \\n');\n\t\tif(((wb.Workbook||{}).WBProps||{}).date1904) o.push(' \\n \\n \\n');\n\t\tfor(var i = 0; i != wb.SheetNames.length; ++i) o.push(write_ws(wb.Sheets[wb.SheetNames[i]], wb, i, opts, nfs));\n\t\tif((wb.Workbook||{}).Names) o.push(write_names_ods(wb.Workbook.Names, wb.SheetNames, -1));\n\t\to.push(' \\n');\n\t\to.push(' \\n');\n\t\tif(opts.bookType == \"fods\") o.push('');\n\t\telse o.push('');\n\t\treturn o.join(\"\");\n\t};\n})();\n\nfunction write_ods(wb/*:any*/, opts/*:any*/) {\n\tif(opts.bookType == \"fods\") return write_content_ods(wb, opts);\n\n\tvar zip = zip_new();\n\tvar f = \"\";\n\n\tvar manifest/*:Array >*/ = [];\n\tvar rdf/*:Array<[string, string]>*/ = [];\n\n\t/* Part 3 Section 3.3 MIME Media Type */\n\tf = \"mimetype\";\n\tzip_add_file(zip, f, \"application/vnd.oasis.opendocument.spreadsheet\");\n\n\t/* Part 1 Section 2.2 Documents */\n\tf = \"content.xml\";\n\tzip_add_file(zip, f, write_content_ods(wb, opts));\n\tmanifest.push([f, \"text/xml\"]);\n\trdf.push([f, \"ContentFile\"]);\n\n\t/* TODO: these are hard-coded styles to satiate excel */\n\tf = \"styles.xml\";\n\tzip_add_file(zip, f, write_styles_ods(wb, opts));\n\tmanifest.push([f, \"text/xml\"]);\n\trdf.push([f, \"StylesFile\"]);\n\n\t/* TODO: this is hard-coded to satiate excel */\n\tf = \"meta.xml\";\n\tzip_add_file(zip, f, XML_HEADER + write_meta_ods(/*::wb, opts*/));\n\tmanifest.push([f, \"text/xml\"]);\n\trdf.push([f, \"MetadataFile\"]);\n\n\t/* Part 3 Section 6 Metadata Manifest File */\n\tf = \"manifest.rdf\";\n\tzip_add_file(zip, f, write_rdf(rdf/*, opts*/));\n\tmanifest.push([f, \"application/rdf+xml\"]);\n\n\t/* Part 3 Section 4 Manifest File */\n\tf = \"META-INF/manifest.xml\";\n\tzip_add_file(zip, f, write_manifest(manifest/*, opts*/));\n\n\treturn zip;\n}\n\n/*! sheetjs (C) 2013-present SheetJS -- http://sheetjs.com */\nvar subarray = function() {\n try {\n if (typeof Uint8Array == \"undefined\")\n return \"slice\";\n if (typeof Uint8Array.prototype.subarray == \"undefined\")\n return \"slice\";\n if (typeof Buffer !== \"undefined\") {\n if (typeof Buffer.prototype.subarray == \"undefined\")\n return \"slice\";\n if ((typeof Buffer.from == \"function\" ? Buffer.from([72, 62]) : new Buffer([72, 62])) instanceof Uint8Array)\n return \"subarray\";\n return \"slice\";\n }\n return \"subarray\";\n } catch (e) {\n return \"slice\";\n }\n}();\nfunction u8_to_dataview(array) {\n return new DataView(array.buffer, array.byteOffset, array.byteLength);\n}\nfunction u8str(u8) {\n return typeof TextDecoder != \"undefined\" ? new TextDecoder().decode(u8) : utf8read(a2s(u8));\n}\nfunction stru8(str) {\n return typeof TextEncoder != \"undefined\" ? new TextEncoder().encode(str) : s2a(utf8write(str));\n}\nfunction u8concat(u8a) {\n var len = 0;\n for (var i = 0; i < u8a.length; ++i)\n len += u8a[i].length;\n var out = new Uint8Array(len);\n var off = 0;\n for (i = 0; i < u8a.length; ++i) {\n var u8 = u8a[i], L = u8.length;\n if (L < 250) {\n for (var j = 0; j < L; ++j)\n out[off++] = u8[j];\n } else {\n out.set(u8, off);\n off += L;\n }\n }\n return out;\n}\nfunction popcnt(x) {\n x -= x >> 1 & 1431655765;\n x = (x & 858993459) + (x >> 2 & 858993459);\n return (x + (x >> 4) & 252645135) * 16843009 >>> 24;\n}\nfunction readDecimal128LE(buf, offset) {\n var exp = (buf[offset + 15] & 127) << 7 | buf[offset + 14] >> 1;\n var mantissa = buf[offset + 14] & 1;\n for (var j = offset + 13; j >= offset; --j)\n mantissa = mantissa * 256 + buf[j];\n return (buf[offset + 15] & 128 ? -mantissa : mantissa) * Math.pow(10, exp - 6176);\n}\nfunction writeDecimal128LE(buf, offset, value) {\n var exp = Math.floor(value == 0 ? 0 : Math.LOG10E * Math.log(Math.abs(value))) + 6176 - 16;\n var mantissa = value / Math.pow(10, exp - 6176);\n buf[offset + 15] |= exp >> 7;\n buf[offset + 14] |= (exp & 127) << 1;\n for (var i = 0; mantissa >= 1; ++i, mantissa /= 256)\n buf[offset + i] = mantissa & 255;\n buf[offset + 15] |= value >= 0 ? 0 : 128;\n}\nfunction parse_varint49(buf, ptr) {\n var l = ptr.l;\n var usz = buf[l] & 127;\n varint:\n if (buf[l++] >= 128) {\n usz |= (buf[l] & 127) << 7;\n if (buf[l++] < 128)\n break varint;\n usz |= (buf[l] & 127) << 14;\n if (buf[l++] < 128)\n break varint;\n usz |= (buf[l] & 127) << 21;\n if (buf[l++] < 128)\n break varint;\n usz += (buf[l] & 127) * Math.pow(2, 28);\n ++l;\n if (buf[l++] < 128)\n break varint;\n usz += (buf[l] & 127) * Math.pow(2, 35);\n ++l;\n if (buf[l++] < 128)\n break varint;\n usz += (buf[l] & 127) * Math.pow(2, 42);\n ++l;\n if (buf[l++] < 128)\n break varint;\n }\n ptr.l = l;\n return usz;\n}\nfunction write_varint49(v) {\n var usz = new Uint8Array(7);\n usz[0] = v & 127;\n var L = 1;\n sz:\n if (v > 127) {\n usz[L - 1] |= 128;\n usz[L] = v >> 7 & 127;\n ++L;\n if (v <= 16383)\n break sz;\n usz[L - 1] |= 128;\n usz[L] = v >> 14 & 127;\n ++L;\n if (v <= 2097151)\n break sz;\n usz[L - 1] |= 128;\n usz[L] = v >> 21 & 127;\n ++L;\n if (v <= 268435455)\n break sz;\n usz[L - 1] |= 128;\n usz[L] = v / 256 >>> 21 & 127;\n ++L;\n if (v <= 34359738367)\n break sz;\n usz[L - 1] |= 128;\n usz[L] = v / 65536 >>> 21 & 127;\n ++L;\n if (v <= 4398046511103)\n break sz;\n usz[L - 1] |= 128;\n usz[L] = v / 16777216 >>> 21 & 127;\n ++L;\n }\n return usz[subarray](0, L);\n}\nfunction parse_packed_varints(buf) {\n var ptr = { l: 0 };\n var out = [];\n while (ptr.l < buf.length)\n out.push(parse_varint49(buf, ptr));\n return out;\n}\nfunction write_packed_varints(nums) {\n return u8concat(nums.map(function(x) {\n return write_varint49(x);\n }));\n}\nfunction varint_to_i32(buf) {\n var l = 0, i32 = buf[l] & 127;\n varint:\n if (buf[l++] >= 128) {\n i32 |= (buf[l] & 127) << 7;\n if (buf[l++] < 128)\n break varint;\n i32 |= (buf[l] & 127) << 14;\n if (buf[l++] < 128)\n break varint;\n i32 |= (buf[l] & 127) << 21;\n if (buf[l++] < 128)\n break varint;\n i32 |= (buf[l] & 127) << 28;\n }\n return i32;\n}\nfunction varint_to_u64(buf) {\n var l = 0, lo = buf[l] & 127, hi = 0;\n varint:\n if (buf[l++] >= 128) {\n lo |= (buf[l] & 127) << 7;\n if (buf[l++] < 128)\n break varint;\n lo |= (buf[l] & 127) << 14;\n if (buf[l++] < 128)\n break varint;\n lo |= (buf[l] & 127) << 21;\n if (buf[l++] < 128)\n break varint;\n lo |= (buf[l] & 127) << 28;\n hi = buf[l] >> 4 & 7;\n if (buf[l++] < 128)\n break varint;\n hi |= (buf[l] & 127) << 3;\n if (buf[l++] < 128)\n break varint;\n hi |= (buf[l] & 127) << 10;\n if (buf[l++] < 128)\n break varint;\n hi |= (buf[l] & 127) << 17;\n if (buf[l++] < 128)\n break varint;\n hi |= (buf[l] & 127) << 24;\n if (buf[l++] < 128)\n break varint;\n hi |= (buf[l] & 127) << 31;\n }\n return [lo >>> 0, hi >>> 0];\n}\nfunction parse_shallow(buf) {\n var out = [], ptr = { l: 0 };\n while (ptr.l < buf.length) {\n var off = ptr.l;\n var num = parse_varint49(buf, ptr);\n var type = num & 7;\n num = num / 8 | 0;\n var data;\n var l = ptr.l;\n switch (type) {\n case 0:\n {\n while (buf[l++] >= 128)\n ;\n data = buf[subarray](ptr.l, l);\n ptr.l = l;\n }\n break;\n case 1:\n {\n data = buf[subarray](l, l + 8);\n ptr.l = l + 8;\n }\n break;\n case 2:\n {\n var len = parse_varint49(buf, ptr);\n data = buf[subarray](ptr.l, ptr.l + len);\n ptr.l += len;\n }\n break;\n case 5:\n {\n data = buf[subarray](l, l + 4);\n ptr.l = l + 4;\n }\n break;\n default:\n throw new Error(\"PB Type \".concat(type, \" for Field \").concat(num, \" at offset \").concat(off));\n }\n var v = { data: data, type: type };\n if (out[num] == null)\n out[num] = [];\n out[num].push(v);\n }\n return out;\n}\nfunction write_shallow(proto) {\n var out = [];\n proto.forEach(function(field, idx) {\n if (idx == 0)\n return;\n field.forEach(function(item) {\n if (!item.data)\n return;\n out.push(write_varint49(idx * 8 + item.type));\n if (item.type == 2)\n out.push(write_varint49(item.data.length));\n out.push(item.data);\n });\n });\n return u8concat(out);\n}\nfunction mappa(data, cb) {\n return (data == null ? void 0 : data.map(function(d) {\n return cb(d.data);\n })) || [];\n}\nfunction parse_iwa_file(buf) {\n var _a;\n var out = [], ptr = { l: 0 };\n while (ptr.l < buf.length) {\n var len = parse_varint49(buf, ptr);\n var ai = parse_shallow(buf[subarray](ptr.l, ptr.l + len));\n ptr.l += len;\n var res = {\n id: varint_to_i32(ai[1][0].data),\n messages: []\n };\n ai[2].forEach(function(b) {\n var mi = parse_shallow(b.data);\n var fl = varint_to_i32(mi[3][0].data);\n res.messages.push({\n meta: mi,\n data: buf[subarray](ptr.l, ptr.l + fl)\n });\n ptr.l += fl;\n });\n if ((_a = ai[3]) == null ? void 0 : _a[0])\n res.merge = varint_to_i32(ai[3][0].data) >>> 0 > 0;\n out.push(res);\n }\n return out;\n}\nfunction write_iwa_file(ias) {\n var bufs = [];\n ias.forEach(function(ia) {\n var ai = [\n [],\n [{ data: write_varint49(ia.id), type: 0 }],\n []\n ];\n if (ia.merge != null)\n ai[3] = [{ data: write_varint49(+!!ia.merge), type: 0 }];\n var midata = [];\n ia.messages.forEach(function(mi) {\n midata.push(mi.data);\n mi.meta[3] = [{ type: 0, data: write_varint49(mi.data.length) }];\n ai[2].push({ data: write_shallow(mi.meta), type: 2 });\n });\n var aipayload = write_shallow(ai);\n bufs.push(write_varint49(aipayload.length));\n bufs.push(aipayload);\n midata.forEach(function(mid) {\n return bufs.push(mid);\n });\n });\n return u8concat(bufs);\n}\nfunction parse_snappy_chunk(type, buf) {\n if (type != 0)\n throw new Error(\"Unexpected Snappy chunk type \".concat(type));\n var ptr = { l: 0 };\n var usz = parse_varint49(buf, ptr);\n var chunks = [];\n var l = ptr.l;\n while (l < buf.length) {\n var tag = buf[l] & 3;\n if (tag == 0) {\n var len = buf[l++] >> 2;\n if (len < 60)\n ++len;\n else {\n var c = len - 59;\n len = buf[l];\n if (c > 1)\n len |= buf[l + 1] << 8;\n if (c > 2)\n len |= buf[l + 2] << 16;\n if (c > 3)\n len |= buf[l + 3] << 24;\n len >>>= 0;\n len++;\n l += c;\n }\n chunks.push(buf[subarray](l, l + len));\n l += len;\n continue;\n } else {\n var offset = 0, length = 0;\n if (tag == 1) {\n length = (buf[l] >> 2 & 7) + 4;\n offset = (buf[l++] & 224) << 3;\n offset |= buf[l++];\n } else {\n length = (buf[l++] >> 2) + 1;\n if (tag == 2) {\n offset = buf[l] | buf[l + 1] << 8;\n l += 2;\n } else {\n offset = (buf[l] | buf[l + 1] << 8 | buf[l + 2] << 16 | buf[l + 3] << 24) >>> 0;\n l += 4;\n }\n }\n if (offset == 0)\n throw new Error(\"Invalid offset 0\");\n var j = chunks.length - 1, off = offset;\n while (j >= 0 && off >= chunks[j].length) {\n off -= chunks[j].length;\n --j;\n }\n if (j < 0) {\n if (off == 0)\n off = chunks[j = 0].length;\n else\n throw new Error(\"Invalid offset beyond length\");\n }\n if (length < off)\n chunks.push(chunks[j][subarray](chunks[j].length - off, chunks[j].length - off + length));\n else {\n if (off > 0) {\n chunks.push(chunks[j][subarray](chunks[j].length - off));\n length -= off;\n }\n ++j;\n while (length >= chunks[j].length) {\n chunks.push(chunks[j]);\n length -= chunks[j].length;\n ++j;\n }\n if (length)\n chunks.push(chunks[j][subarray](0, length));\n }\n if (chunks.length > 25)\n chunks = [u8concat(chunks)];\n }\n }\n var clen = 0;\n for (var u8i = 0; u8i < chunks.length; ++u8i)\n clen += chunks[u8i].length;\n if (clen != usz)\n throw new Error(\"Unexpected length: \".concat(clen, \" != \").concat(usz));\n return chunks;\n}\nfunction decompress_iwa_file(buf) {\n if (Array.isArray(buf))\n buf = new Uint8Array(buf);\n var out = [];\n var l = 0;\n while (l < buf.length) {\n var t = buf[l++];\n var len = buf[l] | buf[l + 1] << 8 | buf[l + 2] << 16;\n l += 3;\n out.push.apply(out, parse_snappy_chunk(t, buf[subarray](l, l + len)));\n l += len;\n }\n if (l !== buf.length)\n throw new Error(\"data is not a valid framed stream!\");\n return out.length == 1 ? out[0] : u8concat(out);\n}\nfunction compress_iwa_file(buf) {\n var out = [];\n var l = 0;\n while (l < buf.length) {\n var c = Math.min(buf.length - l, 268435455);\n var frame = new Uint8Array(4);\n out.push(frame);\n var usz = write_varint49(c);\n var L = usz.length;\n out.push(usz);\n if (c <= 60) {\n L++;\n out.push(new Uint8Array([c - 1 << 2]));\n } else if (c <= 256) {\n L += 2;\n out.push(new Uint8Array([240, c - 1 & 255]));\n } else if (c <= 65536) {\n L += 3;\n out.push(new Uint8Array([244, c - 1 & 255, c - 1 >> 8 & 255]));\n } else if (c <= 16777216) {\n L += 4;\n out.push(new Uint8Array([248, c - 1 & 255, c - 1 >> 8 & 255, c - 1 >> 16 & 255]));\n } else if (c <= 4294967296) {\n L += 5;\n out.push(new Uint8Array([252, c - 1 & 255, c - 1 >> 8 & 255, c - 1 >> 16 & 255, c - 1 >>> 24 & 255]));\n }\n out.push(buf[subarray](l, l + c));\n L += c;\n frame[0] = 0;\n frame[1] = L & 255;\n frame[2] = L >> 8 & 255;\n frame[3] = L >> 16 & 255;\n l += c;\n }\n return u8concat(out);\n}\nvar numbers_lut_new = function() {\n return { sst: [], rsst: [], ofmt: [], nfmt: [] };\n};\nfunction numbers_format_cell(cell, t, flags, ofmt, nfmt) {\n var _a, _b, _c, _d;\n var ctype = t & 255, ver = t >> 8;\n var fmt = ver >= 5 ? nfmt : ofmt;\n dur:\n if (flags & (ver > 4 ? 8 : 4) && cell.t == \"n\" && ctype == 7) {\n var dstyle = ((_a = fmt[7]) == null ? void 0 : _a[0]) ? varint_to_i32(fmt[7][0].data) : -1;\n if (dstyle == -1)\n break dur;\n var dmin = ((_b = fmt[15]) == null ? void 0 : _b[0]) ? varint_to_i32(fmt[15][0].data) : -1;\n var dmax = ((_c = fmt[16]) == null ? void 0 : _c[0]) ? varint_to_i32(fmt[16][0].data) : -1;\n var auto = ((_d = fmt[40]) == null ? void 0 : _d[0]) ? varint_to_i32(fmt[40][0].data) : -1;\n var d = cell.v, dd = d;\n autodur:\n if (auto) {\n if (d == 0) {\n dmin = dmax = 2;\n break autodur;\n }\n if (d >= 604800)\n dmin = 1;\n else if (d >= 86400)\n dmin = 2;\n else if (d >= 3600)\n dmin = 4;\n else if (d >= 60)\n dmin = 8;\n else if (d >= 1)\n dmin = 16;\n else\n dmin = 32;\n if (Math.floor(d) != d)\n dmax = 32;\n else if (d % 60)\n dmax = 16;\n else if (d % 3600)\n dmax = 8;\n else if (d % 86400)\n dmax = 4;\n else if (d % 604800)\n dmax = 2;\n if (dmax < dmin)\n dmax = dmin;\n }\n if (dmin == -1 || dmax == -1)\n break dur;\n var dstr = [], zstr = [];\n if (dmin == 1) {\n dd = d / 604800;\n if (dmax == 1) {\n zstr.push('d\"d\"');\n } else {\n dd |= 0;\n d -= 604800 * dd;\n }\n dstr.push(dd + (dstyle == 2 ? \" week\" + (dd == 1 ? \"\" : \"s\") : dstyle == 1 ? \"w\" : \"\"));\n }\n if (dmin <= 2 && dmax >= 2) {\n dd = d / 86400;\n if (dmax > 2) {\n dd |= 0;\n d -= 86400 * dd;\n }\n zstr.push('d\"d\"');\n dstr.push(dd + (dstyle == 2 ? \" day\" + (dd == 1 ? \"\" : \"s\") : dstyle == 1 ? \"d\" : \"\"));\n }\n if (dmin <= 4 && dmax >= 4) {\n dd = d / 3600;\n if (dmax > 4) {\n dd |= 0;\n d -= 3600 * dd;\n }\n zstr.push((dmin >= 4 ? \"[h]\" : \"h\") + '\"h\"');\n dstr.push(dd + (dstyle == 2 ? \" hour\" + (dd == 1 ? \"\" : \"s\") : dstyle == 1 ? \"h\" : \"\"));\n }\n if (dmin <= 8 && dmax >= 8) {\n dd = d / 60;\n if (dmax > 8) {\n dd |= 0;\n d -= 60 * dd;\n }\n zstr.push((dmin >= 8 ? \"[m]\" : \"m\") + '\"m\"');\n if (dstyle == 0)\n dstr.push((dmin == 8 && dmax == 8 || dd >= 10 ? \"\" : \"0\") + dd);\n else\n dstr.push(dd + (dstyle == 2 ? \" minute\" + (dd == 1 ? \"\" : \"s\") : dstyle == 1 ? \"m\" : \"\"));\n }\n if (dmin <= 16 && dmax >= 16) {\n dd = d;\n if (dmax > 16) {\n dd |= 0;\n d -= dd;\n }\n zstr.push((dmin >= 16 ? \"[s]\" : \"s\") + '\"s\"');\n if (dstyle == 0)\n dstr.push((dmax == 16 && dmin == 16 || dd >= 10 ? \"\" : \"0\") + dd);\n else\n dstr.push(dd + (dstyle == 2 ? \" second\" + (dd == 1 ? \"\" : \"s\") : dstyle == 1 ? \"s\" : \"\"));\n }\n if (dmax >= 32) {\n dd = Math.round(1e3 * d);\n if (dmin < 32)\n zstr.push('.000\"ms\"');\n if (dstyle == 0)\n dstr.push((dd >= 100 ? \"\" : dd >= 10 ? \"0\" : \"00\") + dd);\n else\n dstr.push(dd + (dstyle == 2 ? \" millisecond\" + (dd == 1 ? \"\" : \"s\") : dstyle == 1 ? \"ms\" : \"\"));\n }\n cell.w = dstr.join(dstyle == 0 ? \":\" : \" \");\n cell.z = zstr.join(dstyle == 0 ? '\":\"' : \" \");\n if (dstyle == 0)\n cell.w = cell.w.replace(/:(\\d\\d\\d)$/, \".$1\");\n }\n}\nfunction parse_old_storage(buf, lut, v) {\n var dv = u8_to_dataview(buf);\n var flags = dv.getUint32(4, true);\n var ridx = -1, sidx = -1, zidx = -1, ieee = NaN, dt = new Date(2001, 0, 1);\n var doff = v > 1 ? 12 : 8;\n if (flags & 2) {\n zidx = dv.getUint32(doff, true);\n doff += 4;\n }\n doff += popcnt(flags & (v > 1 ? 3468 : 396)) * 4;\n if (flags & 512) {\n ridx = dv.getUint32(doff, true);\n doff += 4;\n }\n doff += popcnt(flags & (v > 1 ? 12288 : 4096)) * 4;\n if (flags & 16) {\n sidx = dv.getUint32(doff, true);\n doff += 4;\n }\n if (flags & 32) {\n ieee = dv.getFloat64(doff, true);\n doff += 8;\n }\n if (flags & 64) {\n dt.setTime(dt.getTime() + dv.getFloat64(doff, true) * 1e3);\n doff += 8;\n }\n if (v > 1) {\n flags = dv.getUint32(8, true) >>> 16;\n if (flags & 255) {\n if (zidx == -1)\n zidx = dv.getUint32(doff, true);\n doff += 4;\n }\n }\n var ret;\n var t = buf[v >= 4 ? 1 : 2];\n switch (t) {\n case 0:\n return void 0;\n case 2:\n ret = { t: \"n\", v: ieee };\n break;\n case 3:\n ret = { t: \"s\", v: lut.sst[sidx] };\n break;\n case 5:\n ret = { t: \"d\", v: dt };\n break;\n case 6:\n ret = { t: \"b\", v: ieee > 0 };\n break;\n case 7:\n ret = { t: \"n\", v: ieee };\n break;\n case 8:\n ret = { t: \"e\", v: 0 };\n break;\n case 9:\n {\n if (ridx > -1)\n ret = { t: \"s\", v: lut.rsst[ridx] };\n else\n throw new Error(\"Unsupported cell type \".concat(buf[subarray](0, 4)));\n }\n break;\n default:\n throw new Error(\"Unsupported cell type \".concat(buf[subarray](0, 4)));\n }\n if (zidx > -1)\n numbers_format_cell(ret, t | v << 8, flags, lut.ofmt[zidx], lut.nfmt[zidx]);\n if (t == 7)\n ret.v /= 86400;\n return ret;\n}\nfunction parse_new_storage(buf, lut) {\n var dv = u8_to_dataview(buf);\n var flags = dv.getUint32(4, true);\n var fields = dv.getUint32(8, true);\n var doff = 12;\n var ridx = -1, sidx = -1, zidx = -1, d128 = NaN, ieee = NaN, dt = new Date(2001, 0, 1);\n if (fields & 1) {\n d128 = readDecimal128LE(buf, doff);\n doff += 16;\n }\n if (fields & 2) {\n ieee = dv.getFloat64(doff, true);\n doff += 8;\n }\n if (fields & 4) {\n dt.setTime(dt.getTime() + dv.getFloat64(doff, true) * 1e3);\n doff += 8;\n }\n if (fields & 8) {\n sidx = dv.getUint32(doff, true);\n doff += 4;\n }\n if (fields & 16) {\n ridx = dv.getUint32(doff, true);\n doff += 4;\n }\n var ret;\n var t = buf[1];\n switch (t) {\n case 0:\n return void 0;\n case 2:\n ret = { t: \"n\", v: d128 };\n break;\n case 3:\n ret = { t: \"s\", v: lut.sst[sidx] };\n break;\n case 5:\n ret = { t: \"d\", v: dt };\n break;\n case 6:\n ret = { t: \"b\", v: ieee > 0 };\n break;\n case 7:\n ret = { t: \"n\", v: ieee };\n break;\n case 8:\n ret = { t: \"e\", v: 0 };\n break;\n case 9:\n ret = { t: \"s\", v: lut.rsst[ridx] };\n break;\n case 10:\n ret = { t: \"n\", v: d128 };\n break;\n default:\n throw new Error(\"Unsupported cell type \".concat(buf[1], \" : \").concat(fields & 31, \" : \").concat(buf[subarray](0, 4)));\n }\n doff += popcnt(fields & 8160) * 4;\n if (fields & 516096) {\n if (zidx == -1)\n zidx = dv.getUint32(doff, true);\n doff += 4;\n }\n if (zidx > -1)\n numbers_format_cell(ret, t | 5 << 8, fields >> 13, lut.ofmt[zidx], lut.nfmt[zidx]);\n if (t == 7)\n ret.v /= 86400;\n return ret;\n}\nfunction write_new_storage(cell, sst) {\n var out = new Uint8Array(32), dv = u8_to_dataview(out), l = 12, flags = 0;\n out[0] = 5;\n switch (cell.t) {\n case \"n\":\n out[1] = 2;\n writeDecimal128LE(out, l, cell.v);\n flags |= 1;\n l += 16;\n break;\n case \"b\":\n out[1] = 6;\n dv.setFloat64(l, cell.v ? 1 : 0, true);\n flags |= 2;\n l += 8;\n break;\n case \"s\":\n var s = cell.v == null ? \"\" : String(cell.v);\n var isst = sst.indexOf(s);\n if (isst == -1)\n sst[isst = sst.length] = s;\n out[1] = 3;\n dv.setUint32(l, isst, true);\n flags |= 8;\n l += 4;\n break;\n default:\n throw \"unsupported cell type \" + cell.t;\n }\n dv.setUint32(8, flags, true);\n return out[subarray](0, l);\n}\nfunction write_old_storage(cell, sst) {\n var out = new Uint8Array(32), dv = u8_to_dataview(out), l = 12, flags = 0;\n out[0] = 4;\n switch (cell.t) {\n case \"n\":\n out[2] = 2;\n dv.setFloat64(l, cell.v, true);\n flags |= 32;\n l += 8;\n break;\n case \"b\":\n out[2] = 6;\n dv.setFloat64(l, cell.v ? 1 : 0, true);\n flags |= 32;\n l += 8;\n break;\n case \"s\":\n var s = cell.v == null ? \"\" : String(cell.v);\n var isst = sst.indexOf(s);\n if (isst == -1)\n sst[isst = sst.length] = s;\n out[2] = 3;\n dv.setUint32(l, isst, true);\n flags |= 16;\n l += 4;\n break;\n default:\n throw \"unsupported cell type \" + cell.t;\n }\n dv.setUint32(8, flags, true);\n return out[subarray](0, l);\n}\nfunction parse_cell_storage(buf, lut) {\n switch (buf[0]) {\n case 0:\n case 1:\n case 2:\n case 3:\n case 4:\n return parse_old_storage(buf, lut, buf[0]);\n case 5:\n return parse_new_storage(buf, lut);\n default:\n throw new Error(\"Unsupported payload version \".concat(buf[0]));\n }\n}\nfunction parse_TSP_Reference(buf) {\n var pb = parse_shallow(buf);\n return varint_to_i32(pb[1][0].data);\n}\nfunction write_TSP_Reference(idx) {\n return write_shallow([\n [],\n [{ type: 0, data: write_varint49(idx) }]\n ]);\n}\nfunction numbers_add_oref(iwa, ref) {\n var _a;\n var orefs = ((_a = iwa.messages[0].meta[5]) == null ? void 0 : _a[0]) ? parse_packed_varints(iwa.messages[0].meta[5][0].data) : [];\n var orefidx = orefs.indexOf(ref);\n if (orefidx == -1) {\n orefs.push(ref);\n iwa.messages[0].meta[5] = [{ type: 2, data: write_packed_varints(orefs) }];\n }\n}\nfunction numbers_del_oref(iwa, ref) {\n var _a;\n var orefs = ((_a = iwa.messages[0].meta[5]) == null ? void 0 : _a[0]) ? parse_packed_varints(iwa.messages[0].meta[5][0].data) : [];\n iwa.messages[0].meta[5] = [{ type: 2, data: write_packed_varints(orefs.filter(function(r) {\n return r != ref;\n })) }];\n}\nfunction parse_TST_TableDataList(M, root) {\n var pb = parse_shallow(root.data);\n var type = varint_to_i32(pb[1][0].data);\n var entries = pb[3];\n var data = [];\n (entries || []).forEach(function(entry) {\n var le = parse_shallow(entry.data);\n if (!le[1])\n return;\n var key = varint_to_i32(le[1][0].data) >>> 0;\n switch (type) {\n case 1:\n data[key] = u8str(le[3][0].data);\n break;\n case 8:\n {\n var rt = M[parse_TSP_Reference(le[9][0].data)][0];\n var rtp = parse_shallow(rt.data);\n var rtpref = M[parse_TSP_Reference(rtp[1][0].data)][0];\n var mtype = varint_to_i32(rtpref.meta[1][0].data);\n if (mtype != 2001)\n throw new Error(\"2000 unexpected reference to \".concat(mtype));\n var tswpsa = parse_shallow(rtpref.data);\n data[key] = tswpsa[3].map(function(x) {\n return u8str(x.data);\n }).join(\"\");\n }\n break;\n case 2:\n data[key] = parse_shallow(le[6][0].data);\n break;\n default:\n throw type;\n }\n });\n return data;\n}\nfunction parse_TST_TileRowInfo(u8, type) {\n var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l, _m, _n;\n var pb = parse_shallow(u8);\n var R = varint_to_i32(pb[1][0].data) >>> 0;\n var cnt = varint_to_i32(pb[2][0].data) >>> 0;\n var wide_offsets = ((_b = (_a = pb[8]) == null ? void 0 : _a[0]) == null ? void 0 : _b.data) && varint_to_i32(pb[8][0].data) > 0 || false;\n var used_storage_u8, used_storage;\n if (((_d = (_c = pb[7]) == null ? void 0 : _c[0]) == null ? void 0 : _d.data) && type != 0) {\n used_storage_u8 = (_f = (_e = pb[7]) == null ? void 0 : _e[0]) == null ? void 0 : _f.data;\n used_storage = (_h = (_g = pb[6]) == null ? void 0 : _g[0]) == null ? void 0 : _h.data;\n } else if (((_j = (_i = pb[4]) == null ? void 0 : _i[0]) == null ? void 0 : _j.data) && type != 1) {\n used_storage_u8 = (_l = (_k = pb[4]) == null ? void 0 : _k[0]) == null ? void 0 : _l.data;\n used_storage = (_n = (_m = pb[3]) == null ? void 0 : _m[0]) == null ? void 0 : _n.data;\n } else\n throw \"NUMBERS Tile missing \".concat(type, \" cell storage\");\n var width = wide_offsets ? 4 : 1;\n var used_storage_offsets = u8_to_dataview(used_storage_u8);\n var offsets = [];\n for (var C = 0; C < used_storage_u8.length / 2; ++C) {\n var off = used_storage_offsets.getUint16(C * 2, true);\n if (off < 65535)\n offsets.push([C, off]);\n }\n if (offsets.length != cnt)\n throw \"Expected \".concat(cnt, \" cells, found \").concat(offsets.length);\n var cells = [];\n for (C = 0; C < offsets.length - 1; ++C)\n cells[offsets[C][0]] = used_storage[subarray](offsets[C][1] * width, offsets[C + 1][1] * width);\n if (offsets.length >= 1)\n cells[offsets[offsets.length - 1][0]] = used_storage[subarray](offsets[offsets.length - 1][1] * width);\n return { R: R, cells: cells };\n}\nfunction parse_TST_Tile(M, root) {\n var _a;\n var pb = parse_shallow(root.data);\n var storage = -1;\n if ((_a = pb == null ? void 0 : pb[7]) == null ? void 0 : _a[0]) {\n if (varint_to_i32(pb[7][0].data) >>> 0)\n storage = 1;\n else\n storage = 0;\n }\n var ri = mappa(pb[5], function(u8) {\n return parse_TST_TileRowInfo(u8, storage);\n });\n return {\n nrows: varint_to_i32(pb[4][0].data) >>> 0,\n data: ri.reduce(function(acc, x) {\n if (!acc[x.R])\n acc[x.R] = [];\n x.cells.forEach(function(cell, C) {\n if (acc[x.R][C])\n throw new Error(\"Duplicate cell r=\".concat(x.R, \" c=\").concat(C));\n acc[x.R][C] = cell;\n });\n return acc;\n }, [])\n };\n}\nfunction parse_TST_TableModelArchive(M, root, ws) {\n var _a, _b, _c, _d, _e, _f;\n var pb = parse_shallow(root.data);\n var range = { s: { r: 0, c: 0 }, e: { r: 0, c: 0 } };\n range.e.r = (varint_to_i32(pb[6][0].data) >>> 0) - 1;\n if (range.e.r < 0)\n throw new Error(\"Invalid row varint \".concat(pb[6][0].data));\n range.e.c = (varint_to_i32(pb[7][0].data) >>> 0) - 1;\n if (range.e.c < 0)\n throw new Error(\"Invalid col varint \".concat(pb[7][0].data));\n ws[\"!ref\"] = encode_range(range);\n var dense = ws[\"!data\"] != null, dws = ws;\n var store = parse_shallow(pb[4][0].data);\n var lut = numbers_lut_new();\n if ((_a = store[4]) == null ? void 0 : _a[0])\n lut.sst = parse_TST_TableDataList(M, M[parse_TSP_Reference(store[4][0].data)][0]);\n if ((_b = store[11]) == null ? void 0 : _b[0])\n lut.ofmt = parse_TST_TableDataList(M, M[parse_TSP_Reference(store[11][0].data)][0]);\n if ((_c = store[17]) == null ? void 0 : _c[0])\n lut.rsst = parse_TST_TableDataList(M, M[parse_TSP_Reference(store[17][0].data)][0]);\n if ((_d = store[22]) == null ? void 0 : _d[0])\n lut.nfmt = parse_TST_TableDataList(M, M[parse_TSP_Reference(store[22][0].data)][0]);\n var tile = parse_shallow(store[3][0].data);\n var _R = 0;\n tile[1].forEach(function(t) {\n var tl = parse_shallow(t.data);\n var ref2 = M[parse_TSP_Reference(tl[2][0].data)][0];\n var mtype2 = varint_to_i32(ref2.meta[1][0].data);\n if (mtype2 != 6002)\n throw new Error(\"6001 unexpected reference to \".concat(mtype2));\n var _tile = parse_TST_Tile(M, ref2);\n _tile.data.forEach(function(row, R) {\n row.forEach(function(buf, C) {\n var res = parse_cell_storage(buf, lut);\n if (res) {\n if (dense) {\n if (!dws[\"!data\"][_R + R])\n dws[\"!data\"][_R + R] = [];\n dws[\"!data\"][_R + R][C] = res;\n } else {\n ws[encode_col(C) + encode_row(_R + R)] = res;\n }\n }\n });\n });\n _R += _tile.nrows;\n });\n if ((_e = store[13]) == null ? void 0 : _e[0]) {\n var ref = M[parse_TSP_Reference(store[13][0].data)][0];\n var mtype = varint_to_i32(ref.meta[1][0].data);\n if (mtype != 6144)\n throw new Error(\"Expected merge type 6144, found \".concat(mtype));\n ws[\"!merges\"] = (_f = parse_shallow(ref.data)) == null ? void 0 : _f[1].map(function(pi) {\n var merge = parse_shallow(pi.data);\n var origin = u8_to_dataview(parse_shallow(merge[1][0].data)[1][0].data), size = u8_to_dataview(parse_shallow(merge[2][0].data)[1][0].data);\n return {\n s: { r: origin.getUint16(0, true), c: origin.getUint16(2, true) },\n e: {\n r: origin.getUint16(0, true) + size.getUint16(0, true) - 1,\n c: origin.getUint16(2, true) + size.getUint16(2, true) - 1\n }\n };\n });\n }\n}\nfunction parse_TST_TableInfoArchive(M, root, opts) {\n var pb = parse_shallow(root.data);\n var out = { \"!ref\": \"A1\" };\n if (opts == null ? void 0 : opts.dense)\n out[\"!data\"] = [];\n var tableref = M[parse_TSP_Reference(pb[2][0].data)];\n var mtype = varint_to_i32(tableref[0].meta[1][0].data);\n if (mtype != 6001)\n throw new Error(\"6000 unexpected reference to \".concat(mtype));\n parse_TST_TableModelArchive(M, tableref[0], out);\n return out;\n}\nfunction parse_TN_SheetArchive(M, root, opts) {\n var _a;\n var pb = parse_shallow(root.data);\n var out = {\n name: ((_a = pb[1]) == null ? void 0 : _a[0]) ? u8str(pb[1][0].data) : \"\",\n sheets: []\n };\n var shapeoffs = mappa(pb[2], parse_TSP_Reference);\n shapeoffs.forEach(function(off) {\n M[off].forEach(function(m) {\n var mtype = varint_to_i32(m.meta[1][0].data);\n if (mtype == 6e3)\n out.sheets.push(parse_TST_TableInfoArchive(M, m, opts));\n });\n });\n return out;\n}\nfunction parse_TN_DocumentArchive(M, root, opts) {\n var _a;\n var out = book_new();\n var pb = parse_shallow(root.data);\n if ((_a = pb[2]) == null ? void 0 : _a[0])\n throw new Error(\"Keynote presentations are not supported\");\n var sheetoffs = mappa(pb[1], parse_TSP_Reference);\n sheetoffs.forEach(function(off) {\n M[off].forEach(function(m) {\n var mtype = varint_to_i32(m.meta[1][0].data);\n if (mtype == 2) {\n var root2 = parse_TN_SheetArchive(M, m, opts);\n root2.sheets.forEach(function(sheet, idx) {\n book_append_sheet(out, sheet, idx == 0 ? root2.name : root2.name + \"_\" + idx, true);\n });\n }\n });\n });\n if (out.SheetNames.length == 0)\n throw new Error(\"Empty NUMBERS file\");\n out.bookType = \"numbers\";\n return out;\n}\nfunction parse_numbers_iwa(cfb, opts) {\n var _a, _b, _c, _d, _e, _f, _g;\n var M = {}, indices = [];\n cfb.FullPaths.forEach(function(p) {\n if (p.match(/\\.iwpv2/))\n throw new Error(\"Unsupported password protection\");\n });\n cfb.FileIndex.forEach(function(s) {\n if (!s.name.match(/\\.iwa$/))\n return;\n if (s.content[0] != 0)\n return;\n var o;\n try {\n o = decompress_iwa_file(s.content);\n } catch (e) {\n return console.log(\"?? \" + s.content.length + \" \" + (e.message || e));\n }\n var packets;\n try {\n packets = parse_iwa_file(o);\n } catch (e) {\n return console.log(\"## \" + (e.message || e));\n }\n packets.forEach(function(packet) {\n M[packet.id] = packet.messages;\n indices.push(packet.id);\n });\n });\n if (!indices.length)\n throw new Error(\"File has no messages\");\n if (((_c = (_b = (_a = M == null ? void 0 : M[1]) == null ? void 0 : _a[0].meta) == null ? void 0 : _b[1]) == null ? void 0 : _c[0].data) && varint_to_i32(M[1][0].meta[1][0].data) == 1e4)\n throw new Error(\"Pages documents are not supported\");\n var docroot = ((_g = (_f = (_e = (_d = M == null ? void 0 : M[1]) == null ? void 0 : _d[0]) == null ? void 0 : _e.meta) == null ? void 0 : _f[1]) == null ? void 0 : _g[0].data) && varint_to_i32(M[1][0].meta[1][0].data) == 1 && M[1][0];\n if (!docroot)\n indices.forEach(function(idx) {\n M[idx].forEach(function(iwam) {\n var mtype = varint_to_i32(iwam.meta[1][0].data) >>> 0;\n if (mtype == 1) {\n if (!docroot)\n docroot = iwam;\n else\n throw new Error(\"Document has multiple roots\");\n }\n });\n });\n if (!docroot)\n throw new Error(\"Cannot find Document root\");\n return parse_TN_DocumentArchive(M, docroot, opts);\n}\nfunction write_TST_TileRowInfo(data, SST, wide) {\n var _a, _b;\n var tri = [\n [],\n [{ type: 0, data: write_varint49(0) }],\n [{ type: 0, data: write_varint49(0) }],\n [{ type: 2, data: new Uint8Array([]) }],\n [{ type: 2, data: new Uint8Array(Array.from({ length: 510 }, function() {\n return 255;\n })) }],\n [{ type: 0, data: write_varint49(5) }],\n [{ type: 2, data: new Uint8Array([]) }],\n [{ type: 2, data: new Uint8Array(Array.from({ length: 510 }, function() {\n return 255;\n })) }],\n [{ type: 0, data: write_varint49(1) }]\n ];\n if (!((_a = tri[6]) == null ? void 0 : _a[0]) || !((_b = tri[7]) == null ? void 0 : _b[0]))\n throw \"Mutation only works on post-BNC storages!\";\n var cnt = 0;\n if (tri[7][0].data.length < 2 * data.length) {\n var new_7 = new Uint8Array(2 * data.length);\n new_7.set(tri[7][0].data);\n tri[7][0].data = new_7;\n }\n if (tri[4][0].data.length < 2 * data.length) {\n var new_4 = new Uint8Array(2 * data.length);\n new_4.set(tri[4][0].data);\n tri[4][0].data = new_4;\n }\n var dv = u8_to_dataview(tri[7][0].data), last_offset = 0, cell_storage = [];\n var _dv = u8_to_dataview(tri[4][0].data), _last_offset = 0, _cell_storage = [];\n var width = wide ? 4 : 1;\n for (var C = 0; C < data.length; ++C) {\n if (data[C] == null) {\n dv.setUint16(C * 2, 65535, true);\n _dv.setUint16(C * 2, 65535);\n continue;\n }\n dv.setUint16(C * 2, last_offset / width, true);\n _dv.setUint16(C * 2, _last_offset / width, true);\n var celload, _celload;\n switch (typeof data[C]) {\n case \"string\":\n celload = write_new_storage({ t: \"s\", v: data[C] }, SST);\n _celload = write_old_storage({ t: \"s\", v: data[C] }, SST);\n break;\n case \"number\":\n celload = write_new_storage({ t: \"n\", v: data[C] }, SST);\n _celload = write_old_storage({ t: \"n\", v: data[C] }, SST);\n break;\n case \"boolean\":\n celload = write_new_storage({ t: \"b\", v: data[C] }, SST);\n _celload = write_old_storage({ t: \"b\", v: data[C] }, SST);\n break;\n default:\n if (data[C] instanceof Date) {\n celload = write_new_storage({ t: \"s\", v: data[C].toISOString() }, SST);\n _celload = write_old_storage({ t: \"s\", v: data[C].toISOString() }, SST);\n break;\n }\n throw new Error(\"Unsupported value \" + data[C]);\n }\n cell_storage.push(celload);\n last_offset += celload.length;\n {\n _cell_storage.push(_celload);\n _last_offset += _celload.length;\n }\n ++cnt;\n }\n tri[2][0].data = write_varint49(cnt);\n tri[5][0].data = write_varint49(5);\n for (; C < tri[7][0].data.length / 2; ++C) {\n dv.setUint16(C * 2, 65535, true);\n _dv.setUint16(C * 2, 65535, true);\n }\n tri[6][0].data = u8concat(cell_storage);\n tri[3][0].data = u8concat(_cell_storage);\n tri[8] = [{ type: 0, data: write_varint49(wide ? 1 : 0) }];\n return tri;\n}\nfunction write_iwam(type, payload) {\n return {\n meta: [\n [],\n [{ type: 0, data: write_varint49(type) }]\n ],\n data: payload\n };\n}\nfunction get_unique_msgid(dep, dependents) {\n if (!dependents.last)\n dependents.last = 927262;\n for (var i = dependents.last; i < 2e6; ++i)\n if (!dependents[i]) {\n dependents[dependents.last = i] = dep;\n return i;\n }\n throw new Error(\"Too many messages\");\n}\nfunction build_numbers_deps(cfb) {\n var dependents = {};\n var indices = [];\n cfb.FileIndex.map(function(fi, idx) {\n return [fi, cfb.FullPaths[idx]];\n }).forEach(function(row) {\n var fi = row[0], fp = row[1];\n if (fi.type != 2)\n return;\n if (!fi.name.match(/\\.iwa/))\n return;\n if (fi.content[0] != 0)\n return;\n parse_iwa_file(decompress_iwa_file(fi.content)).forEach(function(packet) {\n indices.push(packet.id);\n dependents[packet.id] = { deps: [], location: fp, type: varint_to_i32(packet.messages[0].meta[1][0].data) };\n });\n });\n cfb.FileIndex.forEach(function(fi) {\n if (!fi.name.match(/\\.iwa/))\n return;\n if (fi.content[0] != 0)\n return;\n parse_iwa_file(decompress_iwa_file(fi.content)).forEach(function(ia) {\n ia.messages.forEach(function(mess) {\n [5, 6].forEach(function(f) {\n if (!mess.meta[f])\n return;\n mess.meta[f].forEach(function(x) {\n dependents[ia.id].deps.push(varint_to_i32(x.data));\n });\n });\n });\n });\n });\n return dependents;\n}\nfunction write_numbers_iwa(wb, opts) {\n if (!opts || !opts.numbers)\n throw new Error(\"Must pass a `numbers` option -- check the README\");\n var cfb = CFB.read(opts.numbers, { type: \"base64\" });\n var deps = build_numbers_deps(cfb);\n var docroot = numbers_iwa_find(cfb, deps, 1);\n if (docroot == null)\n throw \"Could not find message \".concat(1, \" in Numbers template\");\n var sheetrefs = mappa(parse_shallow(docroot.messages[0].data)[1], parse_TSP_Reference);\n if (sheetrefs.length > 1)\n throw new Error(\"Template NUMBERS file must have exactly one sheet\");\n wb.SheetNames.forEach(function(name, idx) {\n if (idx >= 1) {\n numbers_add_ws(cfb, deps, idx + 1);\n docroot = numbers_iwa_find(cfb, deps, 1);\n sheetrefs = mappa(parse_shallow(docroot.messages[0].data)[1], parse_TSP_Reference);\n }\n write_numbers_ws(cfb, deps, wb.Sheets[name], name, idx, sheetrefs[idx]);\n });\n return cfb;\n}\nfunction numbers_iwa_doit(cfb, deps, id, cb) {\n var entry = CFB.find(cfb, deps[id].location);\n if (!entry)\n throw \"Could not find \".concat(deps[id].location, \" in Numbers template\");\n var x = parse_iwa_file(decompress_iwa_file(entry.content));\n var ainfo = x.find(function(packet) {\n return packet.id == id;\n });\n cb(ainfo, x);\n entry.content = compress_iwa_file(write_iwa_file(x));\n entry.size = entry.content.length;\n}\nfunction numbers_iwa_find(cfb, deps, id) {\n var entry = CFB.find(cfb, deps[id].location);\n if (!entry)\n throw \"Could not find \".concat(deps[id].location, \" in Numbers template\");\n var x = parse_iwa_file(decompress_iwa_file(entry.content));\n var ainfo = x.find(function(packet) {\n return packet.id == id;\n });\n return ainfo;\n}\nfunction numbers_add_ws(cfb, deps, wsidx) {\n var sheetref = -1, newsheetref = -1;\n var remap = {};\n numbers_iwa_doit(cfb, deps, 1, function(docroot, arch) {\n var doc = parse_shallow(docroot.messages[0].data);\n sheetref = parse_TSP_Reference(parse_shallow(docroot.messages[0].data)[1][0].data);\n newsheetref = get_unique_msgid({ deps: [1], location: deps[sheetref].location, type: 2 }, deps);\n remap[sheetref] = newsheetref;\n numbers_add_oref(docroot, newsheetref);\n doc[1].push({ type: 2, data: write_TSP_Reference(newsheetref) });\n var sheet = numbers_iwa_find(cfb, deps, sheetref);\n sheet.id = newsheetref;\n if (deps[1].location == deps[newsheetref].location)\n arch.push(sheet);\n else\n numbers_iwa_doit(cfb, deps, newsheetref, function(_, x) {\n return x.push(sheet);\n });\n docroot.messages[0].data = write_shallow(doc);\n });\n var tiaref = -1;\n numbers_iwa_doit(cfb, deps, newsheetref, function(sheetroot, arch) {\n var sa = parse_shallow(sheetroot.messages[0].data);\n for (var i = 3; i <= 69; ++i)\n delete sa[i];\n var drawables = mappa(sa[2], parse_TSP_Reference);\n drawables.forEach(function(n) {\n return numbers_del_oref(sheetroot, n);\n });\n tiaref = get_unique_msgid({ deps: [newsheetref], location: deps[drawables[0]].location, type: deps[drawables[0]].type }, deps);\n numbers_add_oref(sheetroot, tiaref);\n remap[drawables[0]] = tiaref;\n sa[2] = [{ type: 2, data: write_TSP_Reference(tiaref) }];\n var tia = numbers_iwa_find(cfb, deps, drawables[0]);\n tia.id = tiaref;\n if (deps[drawables[0]].location == deps[newsheetref].location)\n arch.push(tia);\n else {\n var loc2 = deps[newsheetref].location;\n loc2 = loc2.replace(/^Root Entry\\//, \"\");\n loc2 = loc2.replace(/^Index\\//, \"\").replace(/\\.iwa$/, \"\");\n numbers_iwa_doit(cfb, deps, 2, function(ai) {\n var mlist = parse_shallow(ai.messages[0].data);\n var parentidx = mlist[3].findIndex(function(m) {\n var _a, _b;\n var mm = parse_shallow(m.data);\n if ((_a = mm[3]) == null ? void 0 : _a[0])\n return u8str(mm[3][0].data) == loc2;\n if (((_b = mm[2]) == null ? void 0 : _b[0]) && u8str(mm[2][0].data) == loc2)\n return true;\n return false;\n });\n var parent = parse_shallow(mlist[3][parentidx].data);\n if (!parent[6])\n parent[6] = [];\n parent[6].push({\n type: 2,\n data: write_shallow([\n [],\n [{ type: 0, data: write_varint49(tiaref) }]\n ])\n });\n mlist[3][parentidx].data = write_shallow(parent);\n ai.messages[0].data = write_shallow(mlist);\n });\n numbers_iwa_doit(cfb, deps, tiaref, function(_, x) {\n return x.push(tia);\n });\n }\n sheetroot.messages[0].data = write_shallow(sa);\n });\n var tmaref = -1;\n numbers_iwa_doit(cfb, deps, tiaref, function(tiaroot, arch) {\n var tia = parse_shallow(tiaroot.messages[0].data);\n var da = parse_shallow(tia[1][0].data);\n for (var i = 3; i <= 69; ++i)\n delete da[i];\n var dap = parse_TSP_Reference(da[2][0].data);\n da[2][0].data = write_TSP_Reference(remap[dap]);\n tia[1][0].data = write_shallow(da);\n var oldtmaref = parse_TSP_Reference(tia[2][0].data);\n numbers_del_oref(tiaroot, oldtmaref);\n tmaref = get_unique_msgid({ deps: [tiaref], location: deps[oldtmaref].location, type: deps[oldtmaref].type }, deps);\n numbers_add_oref(tiaroot, tmaref);\n remap[oldtmaref] = tmaref;\n tia[2][0].data = write_TSP_Reference(tmaref);\n var tma = numbers_iwa_find(cfb, deps, oldtmaref);\n tma.id = tmaref;\n if (deps[tiaref].location == deps[tmaref].location)\n arch.push(tma);\n else\n numbers_iwa_doit(cfb, deps, tmaref, function(_, x) {\n return x.push(tma);\n });\n tiaroot.messages[0].data = write_shallow(tia);\n });\n var loc = deps[tmaref].location;\n loc = loc.replace(/^Root Entry\\//, \"\");\n loc = loc.replace(/^Index\\//, \"\").replace(/\\.iwa$/, \"\");\n numbers_iwa_doit(cfb, deps, tmaref, function(tmaroot, arch) {\n var _a, _b;\n var tma = parse_shallow(tmaroot.messages[0].data);\n var uuid = u8str(tma[1][0].data), new_uuid = uuid.replace(/-[A-Z0-9]*/, \"-\".concat(wsidx.toString(16).padStart(4, \"0\")));\n tma[1][0].data = stru8(new_uuid);\n [12, 13, 29, 31, 32, 33, 39, 44, 47, 81, 82, 84].forEach(function(n) {\n return delete tma[n];\n });\n if (tma[45]) {\n var srrta = parse_shallow(tma[45][0].data);\n var ref = parse_TSP_Reference(srrta[1][0].data);\n numbers_del_oref(tmaroot, ref);\n delete tma[45];\n }\n if (tma[70]) {\n var hsoa = parse_shallow(tma[70][0].data);\n (_a = hsoa[2]) == null ? void 0 : _a.forEach(function(item) {\n var hsa = parse_shallow(item.data);\n [2, 3].map(function(n) {\n return hsa[n][0];\n }).forEach(function(hseadata) {\n var hsea = parse_shallow(hseadata.data);\n if (!hsea[8])\n return;\n var ref2 = parse_TSP_Reference(hsea[8][0].data);\n numbers_del_oref(tmaroot, ref2);\n });\n });\n delete tma[70];\n }\n [\n 46,\n 30,\n 34,\n 35,\n 36,\n 38,\n 48,\n 49,\n 60,\n 61,\n 62,\n 63,\n 64,\n 71,\n 72,\n 73,\n 74,\n 75,\n 85,\n 86,\n 87,\n 88,\n 89\n ].forEach(function(n) {\n if (!tma[n])\n return;\n var ref2 = parse_TSP_Reference(tma[n][0].data);\n delete tma[n];\n numbers_del_oref(tmaroot, ref2);\n });\n var store = parse_shallow(tma[4][0].data);\n {\n [2, 4, 5, 6, 11, 12, 13, 15, 16, 17, 18, 19, 20, 21, 22].forEach(function(n) {\n var _a2;\n if (!((_a2 = store[n]) == null ? void 0 : _a2[0]))\n return;\n var oldref = parse_TSP_Reference(store[n][0].data);\n var newref = get_unique_msgid({ deps: [tmaref], location: deps[oldref].location, type: deps[oldref].type }, deps);\n numbers_del_oref(tmaroot, oldref);\n numbers_add_oref(tmaroot, newref);\n remap[oldref] = newref;\n var msg = numbers_iwa_find(cfb, deps, oldref);\n msg.id = newref;\n if (deps[oldref].location == deps[tmaref].location)\n arch.push(msg);\n else {\n deps[newref].location = deps[oldref].location.replace(oldref.toString(), newref.toString());\n if (deps[newref].location == deps[oldref].location)\n deps[newref].location = deps[newref].location.replace(/\\.iwa/, \"-\".concat(newref, \".iwa\"));\n CFB.utils.cfb_add(cfb, deps[newref].location, compress_iwa_file(write_iwa_file([msg])));\n var newloc = deps[newref].location;\n newloc = newloc.replace(/^Root Entry\\//, \"\");\n newloc = newloc.replace(/^Index\\//, \"\").replace(/\\.iwa$/, \"\");\n numbers_iwa_doit(cfb, deps, 2, function(ai) {\n var mlist = parse_shallow(ai.messages[0].data);\n mlist[3].push({ type: 2, data: write_shallow([\n [],\n [{ type: 0, data: write_varint49(newref) }],\n [{ type: 2, data: stru8(newloc.replace(/-.*$/, \"\")) }],\n [{ type: 2, data: stru8(newloc) }],\n [{ type: 2, data: new Uint8Array([2, 0, 0]) }],\n [{ type: 2, data: new Uint8Array([2, 0, 0]) }],\n [],\n [],\n [],\n [],\n [{ type: 0, data: write_varint49(0) }],\n [],\n [{ type: 0, data: write_varint49(0) }]\n ]) });\n mlist[1] = [{ type: 0, data: write_varint49(Math.max(newref + 1, varint_to_i32(mlist[1][0].data))) }];\n var parentidx = mlist[3].findIndex(function(m) {\n var _a3, _b2;\n var mm = parse_shallow(m.data);\n if ((_a3 = mm[3]) == null ? void 0 : _a3[0])\n return u8str(mm[3][0].data) == loc;\n if (((_b2 = mm[2]) == null ? void 0 : _b2[0]) && u8str(mm[2][0].data) == loc)\n return true;\n return false;\n });\n var parent = parse_shallow(mlist[3][parentidx].data);\n if (!parent[6])\n parent[6] = [];\n parent[6].push({\n type: 2,\n data: write_shallow([\n [],\n [{ type: 0, data: write_varint49(newref) }]\n ])\n });\n mlist[3][parentidx].data = write_shallow(parent);\n ai.messages[0].data = write_shallow(mlist);\n });\n }\n store[n][0].data = write_TSP_Reference(newref);\n });\n var row_headers = parse_shallow(store[1][0].data);\n {\n (_b = row_headers[2]) == null ? void 0 : _b.forEach(function(tspref) {\n var oldref = parse_TSP_Reference(tspref.data);\n var newref = get_unique_msgid({ deps: [tmaref], location: deps[oldref].location, type: deps[oldref].type }, deps);\n numbers_del_oref(tmaroot, oldref);\n numbers_add_oref(tmaroot, newref);\n remap[oldref] = newref;\n var msg = numbers_iwa_find(cfb, deps, oldref);\n msg.id = newref;\n if (deps[oldref].location == deps[tmaref].location) {\n arch.push(msg);\n } else {\n deps[newref].location = deps[oldref].location.replace(oldref.toString(), newref.toString());\n if (deps[newref].location == deps[oldref].location)\n deps[newref].location = deps[newref].location.replace(/\\.iwa/, \"-\".concat(newref, \".iwa\"));\n CFB.utils.cfb_add(cfb, deps[newref].location, compress_iwa_file(write_iwa_file([msg])));\n var newloc = deps[newref].location;\n newloc = newloc.replace(/^Root Entry\\//, \"\");\n newloc = newloc.replace(/^Index\\//, \"\").replace(/\\.iwa$/, \"\");\n numbers_iwa_doit(cfb, deps, 2, function(ai) {\n var mlist = parse_shallow(ai.messages[0].data);\n mlist[3].push({ type: 2, data: write_shallow([\n [],\n [{ type: 0, data: write_varint49(newref) }],\n [{ type: 2, data: stru8(newloc.replace(/-.*$/, \"\")) }],\n [{ type: 2, data: stru8(newloc) }],\n [{ type: 2, data: new Uint8Array([2, 0, 0]) }],\n [{ type: 2, data: new Uint8Array([2, 0, 0]) }],\n [],\n [],\n [],\n [],\n [{ type: 0, data: write_varint49(0) }],\n [],\n [{ type: 0, data: write_varint49(0) }]\n ]) });\n mlist[1] = [{ type: 0, data: write_varint49(Math.max(newref + 1, varint_to_i32(mlist[1][0].data))) }];\n var parentidx = mlist[3].findIndex(function(m) {\n var _a2, _b2;\n var mm = parse_shallow(m.data);\n if ((_a2 = mm[3]) == null ? void 0 : _a2[0])\n return u8str(mm[3][0].data) == loc;\n if (((_b2 = mm[2]) == null ? void 0 : _b2[0]) && u8str(mm[2][0].data) == loc)\n return true;\n return false;\n });\n var parent = parse_shallow(mlist[3][parentidx].data);\n if (!parent[6])\n parent[6] = [];\n parent[6].push({\n type: 2,\n data: write_shallow([\n [],\n [{ type: 0, data: write_varint49(newref) }]\n ])\n });\n mlist[3][parentidx].data = write_shallow(parent);\n ai.messages[0].data = write_shallow(mlist);\n });\n }\n tspref.data = write_TSP_Reference(newref);\n });\n }\n store[1][0].data = write_shallow(row_headers);\n var tiles = parse_shallow(store[3][0].data);\n {\n tiles[1].forEach(function(t) {\n var tst = parse_shallow(t.data);\n var oldtileref = parse_TSP_Reference(tst[2][0].data);\n var newtileref = remap[oldtileref];\n if (!remap[oldtileref]) {\n newtileref = get_unique_msgid({ deps: [tmaref], location: \"\", type: deps[oldtileref].type }, deps);\n deps[newtileref].location = \"Root Entry/Index/Tables/Tile-\".concat(newtileref, \".iwa\");\n remap[oldtileref] = newtileref;\n var oldtile = numbers_iwa_find(cfb, deps, oldtileref);\n oldtile.id = newtileref;\n numbers_del_oref(tmaroot, oldtileref);\n numbers_add_oref(tmaroot, newtileref);\n CFB.utils.cfb_add(cfb, \"/Index/Tables/Tile-\".concat(newtileref, \".iwa\"), compress_iwa_file(write_iwa_file([oldtile])));\n numbers_iwa_doit(cfb, deps, 2, function(ai) {\n var mlist = parse_shallow(ai.messages[0].data);\n mlist[3].push({ type: 2, data: write_shallow([\n [],\n [{ type: 0, data: write_varint49(newtileref) }],\n [{ type: 2, data: stru8(\"Tables/Tile\") }],\n [{ type: 2, data: stru8(\"Tables/Tile-\".concat(newtileref)) }],\n [{ type: 2, data: new Uint8Array([2, 0, 0]) }],\n [{ type: 2, data: new Uint8Array([2, 0, 0]) }],\n [],\n [],\n [],\n [],\n [{ type: 0, data: write_varint49(0) }],\n [],\n [{ type: 0, data: write_varint49(0) }]\n ]) });\n mlist[1] = [{ type: 0, data: write_varint49(Math.max(newtileref + 1, varint_to_i32(mlist[1][0].data))) }];\n var parentidx = mlist[3].findIndex(function(m) {\n var _a2, _b2;\n var mm = parse_shallow(m.data);\n if ((_a2 = mm[3]) == null ? void 0 : _a2[0])\n return u8str(mm[3][0].data) == loc;\n if (((_b2 = mm[2]) == null ? void 0 : _b2[0]) && u8str(mm[2][0].data) == loc)\n return true;\n return false;\n });\n var parent = parse_shallow(mlist[3][parentidx].data);\n if (!parent[6])\n parent[6] = [];\n parent[6].push({\n type: 2,\n data: write_shallow([\n [],\n [{ type: 0, data: write_varint49(newtileref) }]\n ])\n });\n mlist[3][parentidx].data = write_shallow(parent);\n ai.messages[0].data = write_shallow(mlist);\n });\n }\n tst[2][0].data = write_TSP_Reference(newtileref);\n t.data = write_shallow(tst);\n });\n }\n store[3][0].data = write_shallow(tiles);\n }\n tma[4][0].data = write_shallow(store);\n tmaroot.messages[0].data = write_shallow(tma);\n });\n}\nfunction write_numbers_ws(cfb, deps, ws, wsname, sheetidx, rootref) {\n var drawables = [];\n numbers_iwa_doit(cfb, deps, rootref, function(docroot) {\n var sheetref = parse_shallow(docroot.messages[0].data);\n {\n sheetref[1] = [{ type: 2, data: stru8(wsname) }];\n drawables = mappa(sheetref[2], parse_TSP_Reference);\n }\n docroot.messages[0].data = write_shallow(sheetref);\n });\n var tia = numbers_iwa_find(cfb, deps, drawables[0]);\n var tmaref = parse_TSP_Reference(parse_shallow(tia.messages[0].data)[2][0].data);\n numbers_iwa_doit(cfb, deps, tmaref, function(docroot, x) {\n return write_numbers_tma(cfb, deps, ws, docroot, x, tmaref);\n });\n}\nvar USE_WIDE_ROWS = true;\nfunction write_numbers_tma(cfb, deps, ws, tmaroot, tmafile, tmaref) {\n var range = decode_range(ws[\"!ref\"]);\n range.s.r = range.s.c = 0;\n var trunc = false;\n if (range.e.c > 999) {\n trunc = true;\n range.e.c = 999;\n }\n if (range.e.r > 999999) {\n trunc = true;\n range.e.r = 999999;\n }\n if (trunc)\n console.error(\"Truncating to \".concat(encode_range(range)));\n var data = sheet_to_json(ws, { range: range, header: 1 });\n var SST = [\"~Sh33tJ5~\"];\n var loc = deps[tmaref].location;\n loc = loc.replace(/^Root Entry\\//, \"\");\n loc = loc.replace(/^Index\\//, \"\").replace(/\\.iwa$/, \"\");\n var pb = parse_shallow(tmaroot.messages[0].data);\n {\n pb[6][0].data = write_varint49(range.e.r + 1);\n pb[7][0].data = write_varint49(range.e.c + 1);\n delete pb[46];\n var store = parse_shallow(pb[4][0].data);\n {\n var row_header_ref = parse_TSP_Reference(parse_shallow(store[1][0].data)[2][0].data);\n numbers_iwa_doit(cfb, deps, row_header_ref, function(rowhead, _x) {\n var _a;\n var base_bucket = parse_shallow(rowhead.messages[0].data);\n if ((_a = base_bucket == null ? void 0 : base_bucket[2]) == null ? void 0 : _a[0])\n for (var R2 = 0; R2 < data.length; ++R2) {\n var _bucket = parse_shallow(base_bucket[2][0].data);\n _bucket[1][0].data = write_varint49(R2);\n _bucket[4][0].data = write_varint49(data[R2].length);\n base_bucket[2][R2] = { type: base_bucket[2][0].type, data: write_shallow(_bucket) };\n }\n rowhead.messages[0].data = write_shallow(base_bucket);\n });\n var col_header_ref = parse_TSP_Reference(store[2][0].data);\n numbers_iwa_doit(cfb, deps, col_header_ref, function(colhead, _x) {\n var base_bucket = parse_shallow(colhead.messages[0].data);\n for (var C = 0; C <= range.e.c; ++C) {\n var _bucket = parse_shallow(base_bucket[2][0].data);\n _bucket[1][0].data = write_varint49(C);\n _bucket[4][0].data = write_varint49(range.e.r + 1);\n base_bucket[2][C] = { type: base_bucket[2][0].type, data: write_shallow(_bucket) };\n }\n colhead.messages[0].data = write_shallow(base_bucket);\n });\n var rbtree = parse_shallow(store[9][0].data);\n rbtree[1] = [];\n var tilestore = parse_shallow(store[3][0].data);\n {\n var tstride = 256;\n tilestore[2] = [{ type: 0, data: write_varint49(tstride) }];\n var tileref = parse_TSP_Reference(parse_shallow(tilestore[1][0].data)[2][0].data);\n var save_token = function() {\n var metadata = numbers_iwa_find(cfb, deps, 2);\n var mlist = parse_shallow(metadata.messages[0].data);\n var mlst = mlist[3].filter(function(m) {\n return varint_to_i32(parse_shallow(m.data)[1][0].data) == tileref;\n });\n return (mlst == null ? void 0 : mlst.length) ? varint_to_i32(parse_shallow(mlst[0].data)[12][0].data) : 0;\n }();\n {\n CFB.utils.cfb_del(cfb, deps[tileref].location);\n numbers_iwa_doit(cfb, deps, 2, function(ai) {\n var mlist = parse_shallow(ai.messages[0].data);\n mlist[3] = mlist[3].filter(function(m) {\n return varint_to_i32(parse_shallow(m.data)[1][0].data) != tileref;\n });\n var parentidx = mlist[3].findIndex(function(m) {\n var _a, _b;\n var mm = parse_shallow(m.data);\n if ((_a = mm[3]) == null ? void 0 : _a[0])\n return u8str(mm[3][0].data) == loc;\n if (((_b = mm[2]) == null ? void 0 : _b[0]) && u8str(mm[2][0].data) == loc)\n return true;\n return false;\n });\n var parent = parse_shallow(mlist[3][parentidx].data);\n if (!parent[6])\n parent[6] = [];\n parent[6] = parent[6].filter(function(m) {\n return varint_to_i32(parse_shallow(m.data)[1][0].data) != tileref;\n });\n mlist[3][parentidx].data = write_shallow(parent);\n ai.messages[0].data = write_shallow(mlist);\n });\n numbers_del_oref(tmaroot, tileref);\n }\n tilestore[1] = [];\n var ntiles = Math.ceil((range.e.r + 1) / tstride);\n for (var tidx = 0; tidx < ntiles; ++tidx) {\n var newtileid = get_unique_msgid({\n deps: [],\n location: \"\",\n type: 6002\n }, deps);\n deps[newtileid].location = \"Root Entry/Index/Tables/Tile-\".concat(newtileid, \".iwa\");\n var tiledata = [\n [],\n [{ type: 0, data: write_varint49(0) }],\n [{ type: 0, data: write_varint49(Math.min(range.e.r + 1, (tidx + 1) * tstride)) }],\n [{ type: 0, data: write_varint49(0) }],\n [{ type: 0, data: write_varint49(Math.min((tidx + 1) * tstride, range.e.r + 1) - tidx * tstride) }],\n [],\n [{ type: 0, data: write_varint49(5) }],\n [{ type: 0, data: write_varint49(1) }],\n [{ type: 0, data: write_varint49(USE_WIDE_ROWS ? 1 : 0) }]\n ];\n for (var R = tidx * tstride; R <= Math.min(range.e.r, (tidx + 1) * tstride - 1); ++R) {\n var tilerow = write_TST_TileRowInfo(data[R], SST, USE_WIDE_ROWS);\n tilerow[1][0].data = write_varint49(R - tidx * tstride);\n tiledata[5].push({ data: write_shallow(tilerow), type: 2 });\n }\n tilestore[1].push({ type: 2, data: write_shallow([\n [],\n [{ type: 0, data: write_varint49(tidx) }],\n [{ type: 2, data: write_TSP_Reference(newtileid) }]\n ]) });\n var newtile = {\n id: newtileid,\n messages: [write_iwam(6002, write_shallow(tiledata))]\n };\n var tilecontent = compress_iwa_file(write_iwa_file([newtile]));\n CFB.utils.cfb_add(cfb, \"/Index/Tables/Tile-\".concat(newtileid, \".iwa\"), tilecontent);\n numbers_iwa_doit(cfb, deps, 2, function(ai) {\n var mlist = parse_shallow(ai.messages[0].data);\n mlist[3].push({ type: 2, data: write_shallow([\n [],\n [{ type: 0, data: write_varint49(newtileid) }],\n [{ type: 2, data: stru8(\"Tables/Tile\") }],\n [{ type: 2, data: stru8(\"Tables/Tile-\".concat(newtileid)) }],\n [{ type: 2, data: new Uint8Array([2, 0, 0]) }],\n [{ type: 2, data: new Uint8Array([2, 0, 0]) }],\n [],\n [],\n [],\n [],\n [{ type: 0, data: write_varint49(0) }],\n [],\n [{ type: 0, data: write_varint49(save_token) }]\n ]) });\n mlist[1] = [{ type: 0, data: write_varint49(Math.max(newtileid + 1, varint_to_i32(mlist[1][0].data))) }];\n var parentidx = mlist[3].findIndex(function(m) {\n var _a, _b;\n var mm = parse_shallow(m.data);\n if ((_a = mm[3]) == null ? void 0 : _a[0])\n return u8str(mm[3][0].data) == loc;\n if (((_b = mm[2]) == null ? void 0 : _b[0]) && u8str(mm[2][0].data) == loc)\n return true;\n return false;\n });\n var parent = parse_shallow(mlist[3][parentidx].data);\n if (!parent[6])\n parent[6] = [];\n parent[6].push({\n type: 2,\n data: write_shallow([\n [],\n [{ type: 0, data: write_varint49(newtileid) }]\n ])\n });\n mlist[3][parentidx].data = write_shallow(parent);\n ai.messages[0].data = write_shallow(mlist);\n });\n numbers_add_oref(tmaroot, newtileid);\n rbtree[1].push({ type: 2, data: write_shallow([\n [],\n [{ type: 0, data: write_varint49(tidx * tstride) }],\n [{ type: 0, data: write_varint49(tidx) }]\n ]) });\n }\n }\n store[3][0].data = write_shallow(tilestore);\n store[9][0].data = write_shallow(rbtree);\n store[10] = [{ type: 2, data: new Uint8Array([]) }];\n if (ws[\"!merges\"]) {\n var mergeid = get_unique_msgid({\n type: 6144,\n deps: [tmaref],\n location: deps[tmaref].location\n }, deps);\n tmafile.push({\n id: mergeid,\n messages: [write_iwam(6144, write_shallow([\n [],\n ws[\"!merges\"].map(function(m) {\n return { type: 2, data: write_shallow([\n [],\n [{ type: 2, data: write_shallow([\n [],\n [{ type: 5, data: new Uint8Array(new Uint16Array([m.s.r, m.s.c]).buffer) }]\n ]) }],\n [{ type: 2, data: write_shallow([\n [],\n [{ type: 5, data: new Uint8Array(new Uint16Array([m.e.r - m.s.r + 1, m.e.c - m.s.c + 1]).buffer) }]\n ]) }]\n ]) };\n })\n ]))]\n });\n store[13] = [{ type: 2, data: write_TSP_Reference(mergeid) }];\n numbers_iwa_doit(cfb, deps, 2, function(ai) {\n var mlist = parse_shallow(ai.messages[0].data);\n var parentidx = mlist[3].findIndex(function(m) {\n var _a, _b;\n var mm = parse_shallow(m.data);\n if ((_a = mm[3]) == null ? void 0 : _a[0])\n return u8str(mm[3][0].data) == loc;\n if (((_b = mm[2]) == null ? void 0 : _b[0]) && u8str(mm[2][0].data) == loc)\n return true;\n return false;\n });\n var parent = parse_shallow(mlist[3][parentidx].data);\n if (!parent[6])\n parent[6] = [];\n parent[6].push({\n type: 2,\n data: write_shallow([\n [],\n [{ type: 0, data: write_varint49(mergeid) }]\n ])\n });\n mlist[3][parentidx].data = write_shallow(parent);\n ai.messages[0].data = write_shallow(mlist);\n });\n numbers_add_oref(tmaroot, mergeid);\n } else\n delete store[13];\n var sstref = parse_TSP_Reference(store[4][0].data);\n numbers_iwa_doit(cfb, deps, sstref, function(sstroot) {\n var sstdata = parse_shallow(sstroot.messages[0].data);\n {\n sstdata[3] = [];\n SST.forEach(function(str, i) {\n if (i == 0)\n return;\n sstdata[3].push({ type: 2, data: write_shallow([\n [],\n [{ type: 0, data: write_varint49(i) }],\n [{ type: 0, data: write_varint49(1) }],\n [{ type: 2, data: stru8(str) }]\n ]) });\n });\n }\n sstroot.messages[0].data = write_shallow(sstdata);\n });\n }\n pb[4][0].data = write_shallow(store);\n }\n tmaroot.messages[0].data = write_shallow(pb);\n}\nfunction fix_opts_func(defaults/*:Array >*/)/*:{(o:any):void}*/ {\n\treturn function fix_opts(opts) {\n\t\tfor(var i = 0; i != defaults.length; ++i) {\n\t\t\tvar d = defaults[i];\n\t\t\tif(opts[d[0]] === undefined) opts[d[0]] = d[1];\n\t\t\tif(d[2] === 'n') opts[d[0]] = Number(opts[d[0]]);\n\t\t}\n\t};\n}\n\nfunction fix_read_opts(opts) {\nfix_opts_func([\n\t['cellNF', false], /* emit cell number format string as .z */\n\t['cellHTML', true], /* emit html string as .h */\n\t['cellFormula', true], /* emit formulae as .f */\n\t['cellStyles', false], /* emits style/theme as .s */\n\t['cellText', true], /* emit formatted text as .w */\n\t['cellDates', false], /* emit date cells with type `d` */\n\n\t['sheetStubs', false], /* emit empty cells */\n\t['sheetRows', 0, 'n'], /* read n rows (0 = read all rows) */\n\n\t['bookDeps', false], /* parse calculation chains */\n\t['bookSheets', false], /* only try to get sheet names (no Sheets) */\n\t['bookProps', false], /* only try to get properties (no Sheets) */\n\t['bookFiles', false], /* include raw file structure (keys, files, cfb) */\n\t['bookVBA', false], /* include vba raw data (vbaraw) */\n\n\t['password',''], /* password */\n\t['WTF', false] /* WTF mode (throws errors) */\n])(opts);\n}\n\nfunction fix_write_opts(opts) {\nfix_opts_func([\n\t['cellDates', false], /* write date cells with type `d` */\n\n\t['bookSST', false], /* Generate Shared String Table */\n\n\t['bookType', 'xlsx'], /* Type of workbook (xlsx/m/b) */\n\n\t['compression', false], /* Use file compression */\n\n\t['WTF', false] /* WTF mode (throws errors) */\n])(opts);\n}\nfunction get_sheet_type(n/*:string*/)/*:string*/ {\n\tif(RELS.WS.indexOf(n) > -1) return \"sheet\";\n\tif(RELS.CS && n == RELS.CS) return \"chart\";\n\tif(RELS.DS && n == RELS.DS) return \"dialog\";\n\tif(RELS.MS && n == RELS.MS) return \"macro\";\n\treturn (n && n.length) ? n : \"sheet\";\n}\nfunction safe_parse_wbrels(wbrels, sheets) {\n\tif(!wbrels) return 0;\n\ttry {\n\t\twbrels = sheets.map(function pwbr(w) { if(!w.id) w.id = w.strRelID; return [w.name, wbrels['!id'][w.id].Target, get_sheet_type(wbrels['!id'][w.id].Type)]; });\n\t} catch(e) { return null; }\n\treturn !wbrels || wbrels.length === 0 ? null : wbrels;\n}\n\nfunction safe_parse_sheet(zip, path/*:string*/, relsPath/*:string*/, sheet, idx/*:number*/, sheetRels, sheets, stype/*:string*/, opts, wb, themes, styles) {\n\ttry {\n\t\tsheetRels[sheet]=parse_rels(getzipstr(zip, relsPath, true), path);\n\t\tvar data = getzipdata(zip, path);\n\t\tvar _ws;\n\t\tswitch(stype) {\n\t\t\tcase 'sheet': _ws = parse_ws(data, path, idx, opts, sheetRels[sheet], wb, themes, styles); break;\n\t\t\tcase 'chart': _ws = parse_cs(data, path, idx, opts, sheetRels[sheet], wb, themes, styles);\n\t\t\t\tif(!_ws || !_ws['!drawel']) break;\n\t\t\t\tvar dfile = resolve_path(_ws['!drawel'].Target, path);\n\t\t\t\tvar drelsp = get_rels_path(dfile);\n\t\t\t\tvar draw = parse_drawing(getzipstr(zip, dfile, true), parse_rels(getzipstr(zip, drelsp, true), dfile));\n\t\t\t\tvar chartp = resolve_path(draw, dfile);\n\t\t\t\tvar crelsp = get_rels_path(chartp);\n\t\t\t\t_ws = parse_chart(getzipstr(zip, chartp, true), chartp, opts, parse_rels(getzipstr(zip, crelsp, true), chartp), wb, _ws);\n\t\t\t\tbreak;\n\t\t\tcase 'macro': _ws = parse_ms(data, path, idx, opts, sheetRels[sheet], wb, themes, styles); break;\n\t\t\tcase 'dialog': _ws = parse_ds(data, path, idx, opts, sheetRels[sheet], wb, themes, styles); break;\n\t\t\tdefault: throw new Error(\"Unrecognized sheet type \" + stype);\n\t\t}\n\t\tsheets[sheet] = _ws;\n\n\t\t/* scan rels for comments and threaded comments */\n\t\tvar comments = [], tcomments = [];\n\t\tif(sheetRels && sheetRels[sheet]) keys(sheetRels[sheet]).forEach(function(n) {\n\t\t\tvar dfile = \"\";\n\t\t\tif(sheetRels[sheet][n].Type == RELS.CMNT) {\n\t\t\t\tdfile = resolve_path(sheetRels[sheet][n].Target, path);\n\t\t\t\tcomments = parse_cmnt(getzipdata(zip, dfile, true), dfile, opts);\n\t\t\t\tif(!comments || !comments.length) return;\n\t\t\t\tsheet_insert_comments(_ws, comments, false);\n\t\t\t}\n\t\t\tif(sheetRels[sheet][n].Type == RELS.TCMNT) {\n\t\t\t\tdfile = resolve_path(sheetRels[sheet][n].Target, path);\n\t\t\t\ttcomments = tcomments.concat(parse_tcmnt_xml(getzipdata(zip, dfile, true), opts));\n\t\t\t}\n\t\t});\n\t\tif(tcomments && tcomments.length) sheet_insert_comments(_ws, tcomments, true, opts.people || []);\n\t} catch(e) { if(opts.WTF) throw e; }\n}\n\nfunction strip_front_slash(x/*:string*/)/*:string*/ { return x.charAt(0) == '/' ? x.slice(1) : x; }\n\nfunction parse_zip(zip/*:ZIP*/, opts/*:?ParseOpts*/)/*:Workbook*/ {\n\tmake_ssf();\n\topts = opts || {};\n\tfix_read_opts(opts);\n\n\t/* OpenDocument Part 3 Section 2.2.1 OpenDocument Package */\n\tif(safegetzipfile(zip, 'META-INF/manifest.xml')) return parse_ods(zip, opts);\n\t/* UOC */\n\tif(safegetzipfile(zip, 'objectdata.xml')) return parse_ods(zip, opts);\n\t/* Numbers */\n\tif(safegetzipfile(zip, 'Index/Document.iwa')) {\n\t\tif(typeof Uint8Array == \"undefined\") throw new Error('NUMBERS file parsing requires Uint8Array support');\n\t\tif(typeof parse_numbers_iwa != \"undefined\") {\n\t\t\tif(zip.FileIndex) return parse_numbers_iwa(zip, opts);\n\t\t\tvar _zip = CFB.utils.cfb_new();\n\t\t\tzipentries(zip).forEach(function(e) { zip_add_file(_zip, e, getzipbin(zip, e)); });\n\t\t\treturn parse_numbers_iwa(_zip, opts);\n\t\t}\n\t\tthrow new Error('Unsupported NUMBERS file');\n\t}\n\tif(!safegetzipfile(zip, '[Content_Types].xml')) {\n\t\tif(safegetzipfile(zip, 'index.xml.gz')) throw new Error('Unsupported NUMBERS 08 file');\n\t\tif(safegetzipfile(zip, 'index.xml')) throw new Error('Unsupported NUMBERS 09 file');\n\t\tvar index_zip = CFB.find(zip, 'Index.zip');\n\t\tif(index_zip) {\n\t\t\topts = dup(opts);\n\t\t\tdelete opts.type;\n\t\t\tif(typeof index_zip.content == \"string\") opts.type = \"binary\";\n\t\t\t// TODO: Bun buffer bug\n\t\t\tif(typeof Bun !== \"undefined\" && Buffer.isBuffer(index_zip.content)) return readSync(new Uint8Array(index_zip.content), opts);\n\t\t\treturn readSync(index_zip.content, opts);\n\t\t}\n\t\tthrow new Error('Unsupported ZIP file');\n\t}\n\n\tvar entries = zipentries(zip);\n\tvar dir = parse_ct((getzipstr(zip, '[Content_Types].xml')/*:?any*/));\n\tvar xlsb = false;\n\tvar sheets, binname;\n\tif(dir.workbooks.length === 0) {\n\t\tbinname = \"xl/workbook.xml\";\n\t\tif(getzipdata(zip,binname, true)) dir.workbooks.push(binname);\n\t}\n\tif(dir.workbooks.length === 0) {\n\t\tbinname = \"xl/workbook.bin\";\n\t\tif(!getzipdata(zip,binname,true)) throw new Error(\"Could not find workbook\");\n\t\tdir.workbooks.push(binname);\n\t\txlsb = true;\n\t}\n\tif(dir.workbooks[0].slice(-3) == \"bin\") xlsb = true;\n\n\tvar themes = ({}/*:any*/);\n\tvar styles = ({}/*:any*/);\n\tif(!opts.bookSheets && !opts.bookProps) {\n\t\tstrs = [];\n\t\tif(dir.sst) try { strs=parse_sst(getzipdata(zip, strip_front_slash(dir.sst)), dir.sst, opts); } catch(e) { if(opts.WTF) throw e; }\n\n\t\tif(opts.cellStyles && dir.themes.length) themes = parse_theme_xml(getzipstr(zip, dir.themes[0].replace(/^\\//,''), true)||\"\", opts);\n\n\t\tif(dir.style) styles = parse_sty(getzipdata(zip, strip_front_slash(dir.style)), dir.style, themes, opts);\n\t}\n\n\t/*var externbooks = */dir.links.map(function(link) {\n\t\ttry {\n\t\t\tvar rels = parse_rels(getzipstr(zip, get_rels_path(strip_front_slash(link))), link);\n\t\t\treturn parse_xlink(getzipdata(zip, strip_front_slash(link)), rels, link, opts);\n\t\t} catch(e) {}\n\t});\n\n\tvar wb = parse_wb(getzipdata(zip, strip_front_slash(dir.workbooks[0])), dir.workbooks[0], opts);\n\n\tvar props = {}, propdata = \"\";\n\n\tif(dir.coreprops.length) {\n\t\tpropdata = getzipdata(zip, strip_front_slash(dir.coreprops[0]), true);\n\t\tif(propdata) props = parse_core_props(propdata);\n\t\tif(dir.extprops.length !== 0) {\n\t\t\tpropdata = getzipdata(zip, strip_front_slash(dir.extprops[0]), true);\n\t\t\tif(propdata) parse_ext_props(propdata, props, opts);\n\t\t}\n\t}\n\n\tvar custprops = {};\n\tif(!opts.bookSheets || opts.bookProps) {\n\t\tif (dir.custprops.length !== 0) {\n\t\t\tpropdata = getzipstr(zip, strip_front_slash(dir.custprops[0]), true);\n\t\t\tif(propdata) custprops = parse_cust_props(propdata, opts);\n\t\t}\n\t}\n\n\tvar out = ({}/*:any*/);\n\tif(opts.bookSheets || opts.bookProps) {\n\t\tif(wb.Sheets) sheets = wb.Sheets.map(function pluck(x){ return x.name; });\n\t\telse if(props.Worksheets && props.SheetNames.length > 0) sheets=props.SheetNames;\n\t\tif(opts.bookProps) { out.Props = props; out.Custprops = custprops; }\n\t\tif(opts.bookSheets && typeof sheets !== 'undefined') out.SheetNames = sheets;\n\t\tif(opts.bookSheets ? out.SheetNames : opts.bookProps) return out;\n\t}\n\tsheets = {};\n\n\tvar deps = {};\n\tif(opts.bookDeps && dir.calcchain) deps=parse_cc(getzipdata(zip, strip_front_slash(dir.calcchain)),dir.calcchain,opts);\n\n\tvar i=0;\n\tvar sheetRels = ({}/*:any*/);\n\tvar path, relsPath;\n\n\t{\n\t\tvar wbsheets = wb.Sheets;\n\t\tprops.Worksheets = wbsheets.length;\n\t\tprops.SheetNames = [];\n\t\tfor(var j = 0; j != wbsheets.length; ++j) {\n\t\t\tprops.SheetNames[j] = wbsheets[j].name;\n\t\t}\n\t}\n\n\tvar wbext = xlsb ? \"bin\" : \"xml\";\n\tvar wbrelsi = dir.workbooks[0].lastIndexOf(\"/\");\n\tvar wbrelsfile = (dir.workbooks[0].slice(0, wbrelsi+1) + \"_rels/\" + dir.workbooks[0].slice(wbrelsi+1) + \".rels\").replace(/^\\//,\"\");\n\tif(!safegetzipfile(zip, wbrelsfile)) wbrelsfile = 'xl/_rels/workbook.' + wbext + '.rels';\n\tvar wbrels = parse_rels(getzipstr(zip, wbrelsfile, true), wbrelsfile.replace(/_rels.*/, \"s5s\"));\n\n\tif((dir.metadata || []).length >= 1) {\n\t\t/* TODO: MDX and other types of metadata */\n\t\topts.xlmeta = parse_xlmeta(getzipdata(zip, strip_front_slash(dir.metadata[0])),dir.metadata[0],opts);\n\t}\n\n\tif((dir.people || []).length >= 1) {\n\t\topts.people = parse_people_xml(getzipdata(zip, strip_front_slash(dir.people[0])),opts);\n\t}\n\n\tif(wbrels) wbrels = safe_parse_wbrels(wbrels, wb.Sheets);\n\n\t/* Numbers iOS hack */\n\tvar nmode = (getzipdata(zip,\"xl/worksheets/sheet.xml\",true))?1:0;\n\twsloop: for(i = 0; i != props.Worksheets; ++i) {\n\t\tvar stype = \"sheet\";\n\t\tif(wbrels && wbrels[i]) {\n\t\t\tpath = 'xl/' + (wbrels[i][1]).replace(/[\\/]?xl\\//, \"\");\n\t\t\tif(!safegetzipfile(zip, path)) path = wbrels[i][1];\n\t\t\tif(!safegetzipfile(zip, path)) path = wbrelsfile.replace(/_rels\\/.*$/,\"\") + wbrels[i][1];\n\t\t\tstype = wbrels[i][2];\n\t\t} else {\n\t\t\tpath = 'xl/worksheets/sheet'+(i+1-nmode)+\".\" + wbext;\n\t\t\tpath = path.replace(/sheet0\\./,\"sheet.\");\n\t\t}\n\t\trelsPath = path.replace(/^(.*)(\\/)([^\\/]*)$/, \"$1/_rels/$3.rels\");\n\t\tif(opts && opts.sheets != null) switch(typeof opts.sheets) {\n\t\t\tcase \"number\": if(i != opts.sheets) continue wsloop; break;\n\t\t\tcase \"string\": if(props.SheetNames[i].toLowerCase() != opts.sheets.toLowerCase()) continue wsloop; break;\n\t\t\tdefault: if(Array.isArray && Array.isArray(opts.sheets)) {\n\t\t\t\tvar snjseen = false;\n\t\t\t\tfor(var snj = 0; snj != opts.sheets.length; ++snj) {\n\t\t\t\t\tif(typeof opts.sheets[snj] == \"number\" && opts.sheets[snj] == i) snjseen=1;\n\t\t\t\t\tif(typeof opts.sheets[snj] == \"string\" && opts.sheets[snj].toLowerCase() == props.SheetNames[i].toLowerCase()) snjseen = 1;\n\t\t\t\t}\n\t\t\t\tif(!snjseen) continue wsloop;\n\t\t\t}\n\t\t}\n\t\tsafe_parse_sheet(zip, path, relsPath, props.SheetNames[i], i, sheetRels, sheets, stype, opts, wb, themes, styles);\n\t}\n\n\tout = ({\n\t\tDirectory: dir,\n\t\tWorkbook: wb,\n\t\tProps: props,\n\t\tCustprops: custprops,\n\t\tDeps: deps,\n\t\tSheets: sheets,\n\t\tSheetNames: props.SheetNames,\n\t\tStrings: strs,\n\t\tStyles: styles,\n\t\tThemes: themes,\n\t\tSSF: dup(table_fmt)\n\t}/*:any*/);\n\tif(opts && opts.bookFiles) {\n\t\tif(zip.files) {\n\t\t\tout.keys = entries;\n\t\t\tout.files = zip.files;\n\t\t} else {\n\t\t\tout.keys = [];\n\t\t\tout.files = {};\n\t\t\tzip.FullPaths.forEach(function(p, idx) {\n\t\t\t\tp = p.replace(/^Root Entry[\\/]/, \"\");\n\t\t\t\tout.keys.push(p);\n\t\t\t\tout.files[p] = zip.FileIndex[idx];\n\t\t\t});\n\t\t}\n\t}\n\tif(opts && opts.bookVBA) {\n\t\tif(dir.vba.length > 0) out.vbaraw = getzipdata(zip,strip_front_slash(dir.vba[0]),true);\n\t\telse if(dir.defaults && dir.defaults.bin === CT_VBA) out.vbaraw = getzipdata(zip, 'xl/vbaProject.bin',true);\n\t}\n\t// TODO: pass back content types metdata for xlsm/xlsx resolution\n\tout.bookType = xlsb ? \"xlsb\" : \"xlsx\";\n\treturn out;\n}\n\n/* [MS-OFFCRYPTO] 2.1.1 */\nfunction parse_xlsxcfb(cfb, _opts/*:?ParseOpts*/)/*:Workbook*/ {\n\tvar opts = _opts || {};\n\tvar f = 'Workbook', data = CFB.find(cfb, f);\n\ttry {\n\tf = '/!DataSpaces/Version';\n\tdata = CFB.find(cfb, f); if(!data || !data.content) throw new Error(\"ECMA-376 Encrypted file missing \" + f);\n\t/*var version = */parse_DataSpaceVersionInfo(data.content);\n\n\t/* 2.3.4.1 */\n\tf = '/!DataSpaces/DataSpaceMap';\n\tdata = CFB.find(cfb, f); if(!data || !data.content) throw new Error(\"ECMA-376 Encrypted file missing \" + f);\n\tvar dsm = parse_DataSpaceMap(data.content);\n\tif(dsm.length !== 1 || dsm[0].comps.length !== 1 || dsm[0].comps[0].t !== 0 || dsm[0].name !== \"StrongEncryptionDataSpace\" || dsm[0].comps[0].v !== \"EncryptedPackage\")\n\t\tthrow new Error(\"ECMA-376 Encrypted file bad \" + f);\n\n\t/* 2.3.4.2 */\n\tf = '/!DataSpaces/DataSpaceInfo/StrongEncryptionDataSpace';\n\tdata = CFB.find(cfb, f); if(!data || !data.content) throw new Error(\"ECMA-376 Encrypted file missing \" + f);\n\tvar seds = parse_DataSpaceDefinition(data.content);\n\tif(seds.length != 1 || seds[0] != \"StrongEncryptionTransform\")\n\t\tthrow new Error(\"ECMA-376 Encrypted file bad \" + f);\n\n\t/* 2.3.4.3 */\n\tf = '/!DataSpaces/TransformInfo/StrongEncryptionTransform/!Primary';\n\tdata = CFB.find(cfb, f); if(!data || !data.content) throw new Error(\"ECMA-376 Encrypted file missing \" + f);\n\t/*var hdr = */parse_Primary(data.content);\n\t} catch(e) {}\n\n\tf = '/EncryptionInfo';\n\tdata = CFB.find(cfb, f); if(!data || !data.content) throw new Error(\"ECMA-376 Encrypted file missing \" + f);\n\tvar einfo = parse_EncryptionInfo(data.content);\n\n\t/* 2.3.4.4 */\n\tf = '/EncryptedPackage';\n\tdata = CFB.find(cfb, f); if(!data || !data.content) throw new Error(\"ECMA-376 Encrypted file missing \" + f);\n\n/*global decrypt_agile */\n/*:: declare var decrypt_agile:any; */\n\tif(einfo[0] == 0x04 && typeof decrypt_agile !== 'undefined') return decrypt_agile(einfo[1], data.content, opts.password || \"\", opts);\n/*global decrypt_std76 */\n/*:: declare var decrypt_std76:any; */\n\tif(einfo[0] == 0x02 && typeof decrypt_std76 !== 'undefined') return decrypt_std76(einfo[1], data.content, opts.password || \"\", opts);\n\tthrow new Error(\"File is password-protected\");\n}\n\nfunction write_zip_xlsb(wb/*:Workbook*/, opts/*:WriteOpts*/)/*:ZIP*/ {\n\tif(wb && !wb.SSF) {\n\t\twb.SSF = dup(table_fmt);\n\t}\n\tif(wb && wb.SSF) {\n\t\tmake_ssf(); SSF_load_table(wb.SSF);\n\t\t// $FlowIgnore\n\t\topts.revssf = evert_num(wb.SSF); opts.revssf[wb.SSF[65535]] = 0;\n\t\topts.ssf = wb.SSF;\n\t}\n\topts.rels = {}; opts.wbrels = {};\n\topts.Strings = /*::((*/[]/*:: :any):SST)*/; opts.Strings.Count = 0; opts.Strings.Unique = 0;\n\tif(browser_has_Map) opts.revStrings = new Map();\n\telse { opts.revStrings = {}; opts.revStrings.foo = []; delete opts.revStrings.foo; }\n\tvar wbext = \"bin\";\n\tvar vbafmt = true;\n\tvar ct = new_ct();\n\tfix_write_opts(opts = opts || {});\n\tvar zip = zip_new();\n\tvar f = \"\", rId = 0;\n\n\topts.cellXfs = [];\n\tget_cell_style(opts.cellXfs, {}, {revssf:{\"General\":0}});\n\n\tif(!wb.Props) wb.Props = {};\n\n\tf = \"docProps/core.xml\";\n\tzip_add_file(zip, f, write_core_props(wb.Props, opts));\n\tct.coreprops.push(f);\n\tadd_rels(opts.rels, 2, f, RELS.CORE_PROPS);\n\n\t/*::if(!wb.Props) throw \"unreachable\"; */\n\tf = \"docProps/app.xml\";\n\tif(wb.Props && wb.Props.SheetNames){/* empty */}\n\telse if(!wb.Workbook || !wb.Workbook.Sheets) wb.Props.SheetNames = wb.SheetNames;\n\telse {\n\t\tvar _sn = [];\n\t\tfor(var _i = 0; _i < wb.SheetNames.length; ++_i)\n\t\t\tif((wb.Workbook.Sheets[_i]||{}).Hidden != 2) _sn.push(wb.SheetNames[_i]);\n\t\twb.Props.SheetNames = _sn;\n\t}\n\twb.Props.Worksheets = wb.Props.SheetNames.length;\n\tzip_add_file(zip, f, write_ext_props(wb.Props, opts));\n\tct.extprops.push(f);\n\tadd_rels(opts.rels, 3, f, RELS.EXT_PROPS);\n\n\tif(wb.Custprops !== wb.Props && keys(wb.Custprops||{}).length > 0) {\n\t\tf = \"docProps/custom.xml\";\n\t\tzip_add_file(zip, f, write_cust_props(wb.Custprops, opts));\n\t\tct.custprops.push(f);\n\t\tadd_rels(opts.rels, 4, f, RELS.CUST_PROPS);\n\t}\n\n\tfor(rId=1;rId <= wb.SheetNames.length; ++rId) {\n\t\tvar wsrels = {'!id':{}};\n\t\tvar ws = wb.Sheets[wb.SheetNames[rId-1]];\n\t\tvar _type = (ws || {})[\"!type\"] || \"sheet\";\n\t\tswitch(_type) {\n\t\tcase \"chart\":\n\t\t\t/* falls through */\n\t\tdefault:\n\t\t\tf = \"xl/worksheets/sheet\" + rId + \".\" + wbext;\n\t\t\tzip_add_file(zip, f, write_ws_bin(rId-1, opts, wb, wsrels));\n\t\t\tct.sheets.push(f);\n\t\t\tadd_rels(opts.wbrels, -1, \"worksheets/sheet\" + rId + \".\" + wbext, RELS.WS[0]);\n\t\t}\n\n\t\tif(ws) {\n\t\t\tvar comments = ws['!comments'];\n\t\t\tvar need_vml = false;\n\t\t\tvar cf = \"\";\n\t\t\tif(comments && comments.length > 0) {\n\t\t\t\tcf = \"xl/comments\" + rId + \".\" + wbext;\n\t\t\t\tzip_add_file(zip, cf, write_comments_bin(comments, opts));\n\t\t\t\tct.comments.push(cf);\n\t\t\t\tadd_rels(wsrels, -1, \"../comments\" + rId + \".\" + wbext, RELS.CMNT);\n\t\t\t\tneed_vml = true;\n\t\t\t}\n\t\t\tif(ws['!legacy']) {\n\t\t\t\tif(need_vml) zip_add_file(zip, \"xl/drawings/vmlDrawing\" + (rId) + \".vml\", write_vml(rId, ws['!comments']));\n\t\t\t}\n\t\t\tdelete ws['!comments'];\n\t\t\tdelete ws['!legacy'];\n\t\t}\n\n\t\tif(wsrels['!id'].rId1) zip_add_file(zip, get_rels_path(f), write_rels(wsrels));\n\t}\n\n\tif(opts.Strings != null && opts.Strings.length > 0) {\n\t\tf = \"xl/sharedStrings.\" + wbext;\n\t\tzip_add_file(zip, f, write_sst_bin(opts.Strings, opts));\n\t\tct.strs.push(f);\n\t\tadd_rels(opts.wbrels, -1, \"sharedStrings.\" + wbext, RELS.SST);\n\t}\n\n\tf = \"xl/workbook.\" + wbext;\n\tzip_add_file(zip, f, write_wb_bin(wb, opts));\n\tct.workbooks.push(f);\n\tadd_rels(opts.rels, 1, f, RELS.WB);\n\n\t/* TODO: something more intelligent with themes */\n\n\tf = \"xl/theme/theme1.xml\";\n\tvar ww = write_theme(wb.Themes, opts);\n\tzip_add_file(zip, f, ww);\n\tct.themes.push(f);\n\tadd_rels(opts.wbrels, -1, \"theme/theme1.xml\", RELS.THEME);\n\n\t/* TODO: something more intelligent with styles */\n\n\tf = \"xl/styles.\" + wbext;\n\tzip_add_file(zip, f, write_sty_bin(wb, opts));\n\tct.styles.push(f);\n\tadd_rels(opts.wbrels, -1, \"styles.\" + wbext, RELS.STY);\n\n\tif(wb.vbaraw && vbafmt) {\n\t\tf = \"xl/vbaProject.bin\";\n\t\tzip_add_file(zip, f, wb.vbaraw);\n\t\tct.vba.push(f);\n\t\tadd_rels(opts.wbrels, -1, \"vbaProject.bin\", RELS.VBA);\n\t}\n\n\tf = \"xl/metadata.\" + wbext;\n\tzip_add_file(zip, f, write_xlmeta_bin());\n\tct.metadata.push(f);\n\tadd_rels(opts.wbrels, -1, \"metadata.\" + wbext, RELS.XLMETA);\n\n\tzip_add_file(zip, \"[Content_Types].xml\", write_ct(ct, opts));\n\tzip_add_file(zip, '_rels/.rels', write_rels(opts.rels));\n\tzip_add_file(zip, 'xl/_rels/workbook.' + wbext + '.rels', write_rels(opts.wbrels));\n\n\tdelete opts.revssf; delete opts.ssf;\n\treturn zip;\n}\n\nfunction write_zip_xlsx(wb/*:Workbook*/, opts/*:WriteOpts*/)/*:ZIP*/ {\n\tif(wb && !wb.SSF) {\n\t\twb.SSF = dup(table_fmt);\n\t}\n\tif(wb && wb.SSF) {\n\t\tmake_ssf(); SSF_load_table(wb.SSF);\n\t\t// $FlowIgnore\n\t\topts.revssf = evert_num(wb.SSF); opts.revssf[wb.SSF[65535]] = 0;\n\t\topts.ssf = wb.SSF;\n\t}\n\topts.rels = {}; opts.wbrels = {};\n\topts.Strings = /*::((*/[]/*:: :any):SST)*/; opts.Strings.Count = 0; opts.Strings.Unique = 0;\n\tif(browser_has_Map) opts.revStrings = new Map();\n\telse { opts.revStrings = {}; opts.revStrings.foo = []; delete opts.revStrings.foo; }\n\tvar wbext = \"xml\";\n\tvar vbafmt = VBAFMTS.indexOf(opts.bookType) > -1;\n\tvar ct = new_ct();\n\tfix_write_opts(opts = opts || {});\n\tvar zip = zip_new();\n\tvar f = \"\", rId = 0;\n\n\topts.cellXfs = [];\n\tget_cell_style(opts.cellXfs, {}, {revssf:{\"General\":0}});\n\n\tif(!wb.Props) wb.Props = {};\n\n\tf = \"docProps/core.xml\";\n\tzip_add_file(zip, f, write_core_props(wb.Props, opts));\n\tct.coreprops.push(f);\n\tadd_rels(opts.rels, 2, f, RELS.CORE_PROPS);\n\n\t/*::if(!wb.Props) throw \"unreachable\"; */\n\tf = \"docProps/app.xml\";\n\tif(wb.Props && wb.Props.SheetNames){/* empty */}\n\telse if(!wb.Workbook || !wb.Workbook.Sheets) wb.Props.SheetNames = wb.SheetNames;\n\telse {\n\t\tvar _sn = [];\n\t\tfor(var _i = 0; _i < wb.SheetNames.length; ++_i)\n\t\t\tif((wb.Workbook.Sheets[_i]||{}).Hidden != 2) _sn.push(wb.SheetNames[_i]);\n\t\twb.Props.SheetNames = _sn;\n\t}\n\twb.Props.Worksheets = wb.Props.SheetNames.length;\n\tzip_add_file(zip, f, write_ext_props(wb.Props, opts));\n\tct.extprops.push(f);\n\tadd_rels(opts.rels, 3, f, RELS.EXT_PROPS);\n\n\tif(wb.Custprops !== wb.Props && keys(wb.Custprops||{}).length > 0) {\n\t\tf = \"docProps/custom.xml\";\n\t\tzip_add_file(zip, f, write_cust_props(wb.Custprops, opts));\n\t\tct.custprops.push(f);\n\t\tadd_rels(opts.rels, 4, f, RELS.CUST_PROPS);\n\t}\n\n\tvar people = [\"SheetJ5\"];\n\topts.tcid = 0;\n\n\tfor(rId=1;rId <= wb.SheetNames.length; ++rId) {\n\t\tvar wsrels = {'!id':{}};\n\t\tvar ws = wb.Sheets[wb.SheetNames[rId-1]];\n\t\tvar _type = (ws || {})[\"!type\"] || \"sheet\";\n\t\tswitch(_type) {\n\t\tcase \"chart\":\n\t\t\t/* falls through */\n\t\tdefault:\n\t\t\tf = \"xl/worksheets/sheet\" + rId + \".\" + wbext;\n\t\t\tzip_add_file(zip, f, write_ws_xml(rId-1, opts, wb, wsrels));\n\t\t\tct.sheets.push(f);\n\t\t\tadd_rels(opts.wbrels, -1, \"worksheets/sheet\" + rId + \".\" + wbext, RELS.WS[0]);\n\t\t}\n\n\t\tif(ws) {\n\t\t\tvar comments = ws['!comments'];\n\t\t\tvar need_vml = false;\n\t\t\tvar cf = \"\";\n\t\t\tif(comments && comments.length > 0) {\n\t\t\t\tvar needtc = false;\n\t\t\t\tcomments.forEach(function(carr) {\n\t\t\t\t\tcarr[1].forEach(function(c) { if(c.T == true) needtc = true; });\n\t\t\t\t});\n\t\t\t\tif(needtc) {\n\t\t\t\t\tcf = \"xl/threadedComments/threadedComment\" + rId + \".xml\";\n\t\t\t\t\tzip_add_file(zip, cf, write_tcmnt_xml(comments, people, opts));\n\t\t\t\t\tct.threadedcomments.push(cf);\n\t\t\t\t\tadd_rels(wsrels, -1, \"../threadedComments/threadedComment\" + rId + \".xml\", RELS.TCMNT);\n\t\t\t\t}\n\n\t\t\t\tcf = \"xl/comments\" + rId + \".\" + wbext;\n\t\t\t\tzip_add_file(zip, cf, write_comments_xml(comments, opts));\n\t\t\t\tct.comments.push(cf);\n\t\t\t\tadd_rels(wsrels, -1, \"../comments\" + rId + \".\" + wbext, RELS.CMNT);\n\t\t\t\tneed_vml = true;\n\t\t\t}\n\t\t\tif(ws['!legacy']) {\n\t\t\t\tif(need_vml) zip_add_file(zip, \"xl/drawings/vmlDrawing\" + (rId) + \".vml\", write_vml(rId, ws['!comments']));\n\t\t\t}\n\t\t\tdelete ws['!comments'];\n\t\t\tdelete ws['!legacy'];\n\t\t}\n\n\t\tif(wsrels['!id'].rId1) zip_add_file(zip, get_rels_path(f), write_rels(wsrels));\n\t}\n\n\tif(opts.Strings != null && opts.Strings.length > 0) {\n\t\tf = \"xl/sharedStrings.\" + wbext;\n\t\tzip_add_file(zip, f, write_sst_xml(opts.Strings, opts));\n\t\tct.strs.push(f);\n\t\tadd_rels(opts.wbrels, -1, \"sharedStrings.\" + wbext, RELS.SST);\n\t}\n\n\tf = \"xl/workbook.\" + wbext;\n\tzip_add_file(zip, f, write_wb_xml(wb, opts));\n\tct.workbooks.push(f);\n\tadd_rels(opts.rels, 1, f, RELS.WB);\n\n\t/* TODO: something more intelligent with themes */\n\n\tf = \"xl/theme/theme1.xml\";\n\tzip_add_file(zip, f, write_theme(wb.Themes, opts));\n\tct.themes.push(f);\n\tadd_rels(opts.wbrels, -1, \"theme/theme1.xml\", RELS.THEME);\n\n\t/* TODO: something more intelligent with styles */\n\n\tf = \"xl/styles.\" + wbext;\n\tzip_add_file(zip, f, write_sty_xml(wb, opts));\n\tct.styles.push(f);\n\tadd_rels(opts.wbrels, -1, \"styles.\" + wbext, RELS.STY);\n\n\tif(wb.vbaraw && vbafmt) {\n\t\tf = \"xl/vbaProject.bin\";\n\t\tzip_add_file(zip, f, wb.vbaraw);\n\t\tct.vba.push(f);\n\t\tadd_rels(opts.wbrels, -1, \"vbaProject.bin\", RELS.VBA);\n\t}\n\n\tf = \"xl/metadata.\" + wbext;\n\tzip_add_file(zip, f, write_xlmeta_xml());\n\tct.metadata.push(f);\n\tadd_rels(opts.wbrels, -1, \"metadata.\" + wbext, RELS.XLMETA);\n\n\tif(people.length > 1) {\n\t\tf = \"xl/persons/person.xml\";\n\t\tzip_add_file(zip, f, write_people_xml(people, opts));\n\t\tct.people.push(f);\n\t\tadd_rels(opts.wbrels, -1, \"persons/person.xml\", RELS.PEOPLE);\n\t}\n\n\tzip_add_file(zip, \"[Content_Types].xml\", write_ct(ct, opts));\n\tzip_add_file(zip, '_rels/.rels', write_rels(opts.rels));\n\tzip_add_file(zip, 'xl/_rels/workbook.' + wbext + '.rels', write_rels(opts.wbrels));\n\n\tdelete opts.revssf; delete opts.ssf;\n\treturn zip;\n}\n\nfunction firstbyte(f/*:RawData*/,o/*:?TypeOpts*/)/*:Array*/ {\n\tvar x = \"\";\n\tswitch((o||{}).type || \"base64\") {\n\t\tcase 'buffer': return [f[0], f[1], f[2], f[3], f[4], f[5], f[6], f[7]];\n\t\tcase 'base64': x = Base64_decode(f.slice(0,12)); break;\n\t\tcase 'binary': x = f; break;\n\t\tcase 'array': return [f[0], f[1], f[2], f[3], f[4], f[5], f[6], f[7]];\n\t\tdefault: throw new Error(\"Unrecognized type \" + (o && o.type || \"undefined\"));\n\t}\n\treturn [x.charCodeAt(0), x.charCodeAt(1), x.charCodeAt(2), x.charCodeAt(3), x.charCodeAt(4), x.charCodeAt(5), x.charCodeAt(6), x.charCodeAt(7)];\n}\n\nfunction read_cfb(cfb/*:CFBContainer*/, opts/*:?ParseOpts*/)/*:Workbook*/ {\n\tif(CFB.find(cfb, \"EncryptedPackage\")) return parse_xlsxcfb(cfb, opts);\n\treturn parse_xlscfb(cfb, opts);\n}\n\nfunction read_zip(data/*:RawData*/, opts/*:?ParseOpts*/)/*:Workbook*/ {\n\tvar zip, d = data;\n\tvar o = opts||{};\n\tif(!o.type) o.type = (has_buf && Buffer.isBuffer(data)) ? \"buffer\" : \"base64\";\n\tzip = zip_read(d, o);\n\treturn parse_zip(zip, o);\n}\n\nfunction read_plaintext(data/*:string*/, o/*:ParseOpts*/)/*:Workbook*/ {\n\tvar i = 0;\n\tmain: while(i < data.length) switch(data.charCodeAt(i)) {\n\t\tcase 0x0A: case 0x0D: case 0x20: ++i; break;\n\t\tcase 0x3C: return parse_xlml(data.slice(i),o);\n\t\tdefault: break main;\n\t}\n\treturn PRN.to_workbook(data, o);\n}\n\nfunction read_plaintext_raw(data/*:RawData*/, o/*:ParseOpts*/)/*:Workbook*/ {\n\tvar str = \"\", bytes = firstbyte(data, o);\n\tswitch(o.type) {\n\t\tcase 'base64': str = Base64_decode(data); break;\n\t\tcase 'binary': str = data; break;\n\t\tcase 'buffer': str = data.toString('binary'); break;\n\t\tcase 'array': str = cc2str(data); break;\n\t\tdefault: throw new Error(\"Unrecognized type \" + o.type);\n\t}\n\tif(bytes[0] == 0xEF && bytes[1] == 0xBB && bytes[2] == 0xBF) str = utf8read(str);\n\to.type = \"binary\";\n\treturn read_plaintext(str, o);\n}\n\nfunction read_utf16(data/*:RawData*/, o/*:ParseOpts*/)/*:Workbook*/ {\n\tvar d = data;\n\tif(o.type == 'base64') d = Base64_decode(d);\n\tif(typeof ArrayBuffer !== \"undefined\" && data instanceof ArrayBuffer) d = new Uint8Array(data);\n\td = typeof $cptable !== \"undefined\" ? $cptable.utils.decode(1200, d.slice(2), 'str') : (\n\t\t(has_buf && Buffer.isBuffer(data)) ? data.slice(2).toString(\"utf16le\") :\n\t\t(typeof Uint8Array !== \"undefined\" && d instanceof Uint8Array) ? (\n\t\t\ttypeof TextDecoder !== \"undefined\" ? new TextDecoder(\"utf-16le\").decode(d.slice(2)) : utf16lereadu(d.slice(2))\n\t\t) : utf16leread(d.slice(2))\n\t);\n\to.type = \"binary\";\n\treturn read_plaintext(d, o);\n}\n\nfunction bstrify(data/*:string*/)/*:string*/ {\n\treturn !data.match(/[^\\x00-\\x7F]/) ? data : utf8write(data);\n}\n\nfunction read_prn(data, d, o, str) {\n\tif(str) { o.type = \"string\"; return PRN.to_workbook(data, o); }\n\treturn PRN.to_workbook(d, o);\n}\n\nfunction readSync(data/*:RawData*/, opts/*:?ParseOpts*/)/*:Workbook*/ {\n\treset_cp();\n\tvar o = opts||{};\n\tif(o.codepage && typeof $cptable === \"undefined\") console.error(\"Codepage tables are not loaded. Non-ASCII characters may not give expected results\");\n\tif(typeof ArrayBuffer !== 'undefined' && data instanceof ArrayBuffer) return readSync(new Uint8Array(data), (o = dup(o), o.type = \"array\", o));\n\tif(typeof Uint8Array !== 'undefined' && data instanceof Uint8Array && !o.type) o.type = typeof Deno !== \"undefined\" ? \"buffer\" : \"array\";\n\tvar d = data, n = [0,0,0,0], str = false;\n\tif(o.cellStyles) { o.cellNF = true; o.sheetStubs = true; }\n\t_ssfopts = {};\n\tif(o.dateNF) _ssfopts.dateNF = o.dateNF;\n\tif(!o.type) o.type = (has_buf && Buffer.isBuffer(data)) ? \"buffer\" : \"base64\";\n\tif(o.type == \"file\") { o.type = has_buf ? \"buffer\" : \"binary\"; d = read_binary(data); if(typeof Uint8Array !== 'undefined' && !has_buf) o.type = \"array\"; }\n\tif(o.type == \"string\") { str = true; o.type = \"binary\"; o.codepage = 65001; d = bstrify(data); }\n\tif(o.type == 'array' && typeof Uint8Array !== 'undefined' && data instanceof Uint8Array && typeof ArrayBuffer !== 'undefined') {\n\t\t// $FlowIgnore\n\t\tvar ab=new ArrayBuffer(3), vu=new Uint8Array(ab); vu.foo=\"bar\";\n\t\t// $FlowIgnore\n\t\tif(!vu.foo) {o=dup(o); o.type='array'; return readSync(ab2a(d), o);}\n\t}\n\tswitch((n = firstbyte(d, o))[0]) {\n\t\tcase 0xD0: if(n[1] === 0xCF && n[2] === 0x11 && n[3] === 0xE0 && n[4] === 0xA1 && n[5] === 0xB1 && n[6] === 0x1A && n[7] === 0xE1) return read_cfb(CFB.read(d, o), o); break;\n\t\tcase 0x09: if(n[1] <= 0x08) return parse_xlscfb(d, o); break;\n\t\tcase 0x3C: return parse_xlml(d, o);\n\t\tcase 0x49:\n\t\t\tif(n[1] === 0x49 && n[2] === 0x2a && n[3] === 0x00) throw new Error(\"TIFF Image File is not a spreadsheet\");\n\t\t\tif(n[1] === 0x44) return read_wb_ID(d, o);\n\t\t\tbreak;\n\t\tcase 0x54: if(n[1] === 0x41 && n[2] === 0x42 && n[3] === 0x4C) return DIF.to_workbook(d, o); break;\n\t\tcase 0x50: return (n[1] === 0x4B && n[2] < 0x09 && n[3] < 0x09) ? read_zip(d, o) : read_prn(data, d, o, str);\n\t\tcase 0xEF: return n[3] === 0x3C ? parse_xlml(d, o) : read_prn(data, d, o, str);\n\t\tcase 0xFF:\n\t\t\tif(n[1] === 0xFE) { return read_utf16(d, o); }\n\t\t\telse if(n[1] === 0x00 && n[2] === 0x02 && n[3] === 0x00) return WK_.to_workbook(d, o);\n\t\t\tbreak;\n\t\tcase 0x00:\n\t\t\tif(n[1] === 0x00) {\n\t\t\t\tif(n[2] >= 0x02 && n[3] === 0x00) return WK_.to_workbook(d, o);\n\t\t\t\tif(n[2] === 0x00 && (n[3] === 0x08 || n[3] === 0x09)) return WK_.to_workbook(d, o);\n\t\t\t}\n\t\t\tbreak;\n\t\tcase 0x03: case 0x83: case 0x8B: case 0x8C: return DBF.to_workbook(d, o);\n\t\tcase 0x7B: if(n[1] === 0x5C && n[2] === 0x72 && n[3] === 0x74) return rtf_to_workbook(d, o); break;\n\t\tcase 0x0A: case 0x0D: case 0x20: return read_plaintext_raw(d, o);\n\t\tcase 0x89: if(n[1] === 0x50 && n[2] === 0x4E && n[3] === 0x47) throw new Error(\"PNG Image File is not a spreadsheet\"); break;\n\t\tcase 0x08: if(n[1] === 0xE7) throw new Error(\"Unsupported Multiplan 1.x file!\"); break;\n\t\tcase 0x0C:\n\t\t\tif(n[1] === 0xEC) throw new Error(\"Unsupported Multiplan 2.x file!\");\n\t\t\tif(n[1] === 0xED) throw new Error(\"Unsupported Multiplan 3.x file!\");\n\t\t\tbreak;\n\t}\n\tif(DBF_SUPPORTED_VERSIONS.indexOf(n[0]) > -1 && n[2] <= 12 && n[3] <= 31) return DBF.to_workbook(d, o);\n\treturn read_prn(data, d, o, str);\n}\n\nfunction readFileSync(filename/*:string*/, opts/*:?ParseOpts*/)/*:Workbook*/ {\n\tvar o = opts||{}; o.type = 'file';\n\treturn readSync(filename, o);\n}\nfunction write_cfb_ctr(cfb/*:CFBContainer*/, o/*:WriteOpts*/)/*:any*/ {\n\tswitch(o.type) {\n\t\tcase \"base64\": case \"binary\": break;\n\t\tcase \"buffer\": case \"array\": o.type = \"\"; break;\n\t\tcase \"file\": return write_dl(o.file, CFB.write(cfb, {type:has_buf ? 'buffer' : \"\"}));\n\t\tcase \"string\": throw new Error(\"'string' output type invalid for '\" + o.bookType + \"' files\");\n\t\tdefault: throw new Error(\"Unrecognized type \" + o.type);\n\t}\n\treturn CFB.write(cfb, o);\n}\n\nfunction write_zip(wb/*:Workbook*/, opts/*:WriteOpts*/)/*:ZIP*/ {\n\tswitch(opts.bookType) {\n\t\tcase \"ods\": return write_ods(wb, opts);\n\t\tcase \"numbers\": return write_numbers_iwa(wb, opts);\n\t\tcase \"xlsb\": return write_zip_xlsb(wb, opts);\n\t\tdefault: return write_zip_xlsx(wb, opts);\n\t}\n}\n\n/*:: declare var encrypt_agile:any; */\nfunction write_zip_type(wb/*:Workbook*/, opts/*:?WriteOpts*/)/*:any*/ {\n\tvar o = dup(opts||{});\n\tvar z = write_zip(wb, o);\n\treturn write_zip_denouement(z, o);\n}\nfunction write_zip_typeXLSX(wb/*:Workbook*/, opts/*:?WriteOpts*/)/*:any*/ {\n\tvar o = dup(opts||{});\n\tvar z = write_zip_xlsx(wb, o);\n\treturn write_zip_denouement(z, o);\n}\nfunction write_zip_denouement(z/*:any*/, o/*:?WriteOpts*/)/*:any*/ {\n\tvar oopts = {};\n\tvar ftype = has_buf ? \"nodebuffer\" : (typeof Uint8Array !== \"undefined\" ? \"array\" : \"string\");\n\tif(o.compression) oopts.compression = 'DEFLATE';\n\tif(o.password) oopts.type = ftype;\n\telse switch(o.type) {\n\t\tcase \"base64\": oopts.type = \"base64\"; break;\n\t\tcase \"binary\": oopts.type = \"string\"; break;\n\t\tcase \"string\": throw new Error(\"'string' output type invalid for '\" + o.bookType + \"' files\");\n\t\tcase \"buffer\":\n\t\tcase \"file\": oopts.type = ftype; break;\n\t\tdefault: throw new Error(\"Unrecognized type \" + o.type);\n\t}\n\tvar out = z.FullPaths ? CFB.write(z, {fileType:\"zip\", type: /*::(*/{\"nodebuffer\": \"buffer\", \"string\": \"binary\"}/*:: :any)*/[oopts.type] || oopts.type, compression: !!o.compression}) : z.generate(oopts);\n\tif(typeof Deno !== \"undefined\") {\n\t\tif(typeof out == \"string\") {\n\t\t\tif(o.type == \"binary\" || o.type == \"base64\") return out;\n\t\t\tout = new Uint8Array(s2ab(out));\n\t\t}\n\t}\n/*jshint -W083 */\n\tif(o.password && typeof encrypt_agile !== 'undefined') return write_cfb_ctr(encrypt_agile(out, o.password), o); // eslint-disable-line no-undef\n/*jshint +W083 */\n\tif(o.type === \"file\") return write_dl(o.file, out);\n\treturn o.type == \"string\" ? utf8read(/*::(*/out/*:: :any)*/) : out;\n}\n\nfunction write_cfb_type(wb/*:Workbook*/, opts/*:?WriteOpts*/)/*:any*/ {\n\tvar o = opts||{};\n\tvar cfb/*:CFBContainer*/ = write_xlscfb(wb, o);\n\treturn write_cfb_ctr(cfb, o);\n}\n\nfunction write_string_type(out/*:string*/, opts/*:WriteOpts*/, bom/*:?string*/)/*:any*/ {\n\tif(!bom) bom = \"\";\n\tvar o = bom + out;\n\tswitch(opts.type) {\n\t\tcase \"base64\": return Base64_encode(utf8write(o));\n\t\tcase \"binary\": return utf8write(o);\n\t\tcase \"string\": return out;\n\t\tcase \"file\": return write_dl(opts.file, o, 'utf8');\n\t\tcase \"buffer\": {\n\t\t\tif(has_buf) return Buffer_from(o, 'utf8');\n\t\t\telse if(typeof TextEncoder !== \"undefined\") return new TextEncoder().encode(o);\n\t\t\telse return write_string_type(o, {type:'binary'}).split(\"\").map(function(c) { return c.charCodeAt(0); });\n\t\t}\n\t}\n\tthrow new Error(\"Unrecognized type \" + opts.type);\n}\n\nfunction write_stxt_type(out/*:string*/, opts/*:WriteOpts*/)/*:any*/ {\n\tswitch(opts.type) {\n\t\tcase \"base64\": return Base64_encode_pass(out);\n\t\tcase \"binary\": return out;\n\t\tcase \"string\": return out; /* override in sheet_to_txt */\n\t\tcase \"file\": return write_dl(opts.file, out, 'binary');\n\t\tcase \"buffer\": {\n\t\t\tif(has_buf) return Buffer_from(out, 'binary');\n\t\t\telse return out.split(\"\").map(function(c) { return c.charCodeAt(0); });\n\t\t}\n\t}\n\tthrow new Error(\"Unrecognized type \" + opts.type);\n}\n\n/* TODO: test consistency */\nfunction write_binary_type(out, opts/*:WriteOpts*/)/*:any*/ {\n\tswitch(opts.type) {\n\t\tcase \"string\":\n\t\tcase \"base64\":\n\t\tcase \"binary\":\n\t\t\tvar bstr = \"\";\n\t\t\t// $FlowIgnore\n\t\t\tfor(var i = 0; i < out.length; ++i) bstr += String.fromCharCode(out[i]);\n\t\t\treturn opts.type == 'base64' ? Base64_encode(bstr) : opts.type == 'string' ? utf8read(bstr) : bstr;\n\t\tcase \"file\": return write_dl(opts.file, out);\n\t\tcase \"buffer\": return out;\n\t\tdefault: throw new Error(\"Unrecognized type \" + opts.type);\n\t}\n}\n\nfunction writeSyncXLSX(wb/*:Workbook*/, opts/*:?WriteOpts*/) {\n\treset_cp();\n\tcheck_wb(wb);\n\tvar o = dup(opts||{});\n\tif(o.cellStyles) { o.cellNF = true; o.sheetStubs = true; }\n\tif(o.type == \"array\") { o.type = \"binary\"; var out/*:string*/ = (writeSyncXLSX(wb, o)/*:any*/); o.type = \"array\"; return s2ab(out); }\n\treturn write_zip_typeXLSX(wb, o);\n}\n\nfunction writeSync(wb/*:Workbook*/, opts/*:?WriteOpts*/) {\n\treset_cp();\n\tcheck_wb(wb);\n\tvar o = dup(opts||{});\n\tif(o.cellStyles) { o.cellNF = true; o.sheetStubs = true; }\n\tif(o.type == \"array\") { o.type = \"binary\"; var out/*:string*/ = (writeSync(wb, o)/*:any*/); o.type = \"array\"; return s2ab(out); }\n\tvar idx = 0;\n\tif(o.sheet) {\n\t\tif(typeof o.sheet == \"number\") idx = o.sheet;\n\t\telse idx = wb.SheetNames.indexOf(o.sheet);\n\t\tif(!wb.SheetNames[idx]) throw new Error(\"Sheet not found: \" + o.sheet + \" : \" + (typeof o.sheet));\n\t}\n\tswitch(o.bookType || 'xlsb') {\n\t\tcase 'xml':\n\t\tcase 'xlml': return write_string_type(write_xlml(wb, o), o);\n\t\tcase 'slk':\n\t\tcase 'sylk': return write_string_type(SYLK.from_sheet(wb.Sheets[wb.SheetNames[idx]], o, wb), o);\n\t\tcase 'htm':\n\t\tcase 'html': return write_string_type(sheet_to_html(wb.Sheets[wb.SheetNames[idx]], o), o);\n\t\tcase 'txt': return write_stxt_type(sheet_to_txt(wb.Sheets[wb.SheetNames[idx]], o), o);\n\t\tcase 'csv': return write_string_type(sheet_to_csv(wb.Sheets[wb.SheetNames[idx]], o), o, \"\\ufeff\");\n\t\tcase 'dif': return write_string_type(DIF.from_sheet(wb.Sheets[wb.SheetNames[idx]], o), o);\n\t\tcase 'dbf': return write_binary_type(DBF.from_sheet(wb.Sheets[wb.SheetNames[idx]], o), o);\n\t\tcase 'prn': return write_string_type(PRN.from_sheet(wb.Sheets[wb.SheetNames[idx]], o), o);\n\t\tcase 'rtf': return write_string_type(sheet_to_rtf(wb.Sheets[wb.SheetNames[idx]], o), o);\n\t\tcase 'eth': return write_string_type(ETH.from_sheet(wb.Sheets[wb.SheetNames[idx]], o), o);\n\t\tcase 'fods': return write_string_type(write_ods(wb, o), o);\n\t\tcase 'wk1': return write_binary_type(WK_.sheet_to_wk1(wb.Sheets[wb.SheetNames[idx]], o), o);\n\t\tcase 'wk3': return write_binary_type(WK_.book_to_wk3(wb, o), o);\n\t\tcase 'biff2': if(!o.biff) o.biff = 2; /* falls through */\n\t\tcase 'biff3': if(!o.biff) o.biff = 3; /* falls through */\n\t\tcase 'biff4': if(!o.biff) o.biff = 4; return write_binary_type(write_biff_buf(wb, o), o);\n\t\tcase 'biff5': if(!o.biff) o.biff = 5; /* falls through */\n\t\tcase 'biff8':\n\t\tcase 'xla':\n\t\tcase 'xls': if(!o.biff) o.biff = 8; return write_cfb_type(wb, o);\n\t\tcase 'xlsx':\n\t\tcase 'xlsm':\n\t\tcase 'xlam':\n\t\tcase 'xlsb':\n\t\tcase 'numbers':\n\t\tcase 'ods': return write_zip_type(wb, o);\n\t\tdefault: throw new Error (\"Unrecognized bookType |\" + o.bookType + \"|\");\n\t}\n}\n\nfunction resolve_book_type(o/*:WriteFileOpts*/) {\n\tif(o.bookType) return;\n\tvar _BT = {\n\t\t\"xls\": \"biff8\",\n\t\t\"htm\": \"html\",\n\t\t\"slk\": \"sylk\",\n\t\t\"socialcalc\": \"eth\",\n\t\t\"Sh33tJS\": \"WTF\"\n\t};\n\tvar ext = o.file.slice(o.file.lastIndexOf(\".\")).toLowerCase();\n\tif(ext.match(/^\\.[a-z]+$/)) o.bookType = ext.slice(1);\n\to.bookType = _BT[o.bookType] || o.bookType;\n}\n\nfunction writeFileSync(wb/*:Workbook*/, filename/*:string*/, opts/*:?WriteFileOpts*/) {\n\tvar o = opts||{}; o.type = 'file';\n\to.file = filename;\n\tresolve_book_type(o);\n\treturn writeSync(wb, o);\n}\n\nfunction writeFileSyncXLSX(wb/*:Workbook*/, filename/*:string*/, opts/*:?WriteFileOpts*/) {\n\tvar o = opts||{}; o.type = 'file';\n\to.file = filename;\n\tresolve_book_type(o);\n\treturn writeSyncXLSX(wb, o);\n}\n\n\nfunction writeFileAsync(filename/*:string*/, wb/*:Workbook*/, opts/*:?WriteFileOpts*/, cb/*:?(e?:ErrnoError)=>void*/) {\n\tvar o = opts||{}; o.type = 'file';\n\to.file = filename;\n\tresolve_book_type(o);\n\to.type = 'buffer';\n\tvar _cb = cb; if(!(_cb instanceof Function)) _cb = (opts/*:any*/);\n\treturn _fs.writeFile(filename, writeSync(wb, o), _cb);\n}\n/*::\ntype MJRObject = {\n\trow: any;\n\tisempty: boolean;\n};\n*/\nfunction make_json_row(sheet/*:Worksheet*/, r/*:Range*/, R/*:number*/, cols/*:Array*/, header/*:number*/, hdr/*:Array*/, o/*:Sheet2JSONOpts*/)/*:MJRObject*/ {\n\tvar rr = encode_row(R);\n\tvar defval = o.defval, raw = o.raw || !Object.prototype.hasOwnProperty.call(o, \"raw\");\n\tvar isempty = true, dense = (sheet[\"!data\"] != null);\n\tvar row/*:any*/ = (header === 1) ? [] : {};\n\tif(header !== 1) {\n\t\tif(Object.defineProperty) try { Object.defineProperty(row, '__rowNum__', {value:R, enumerable:false}); } catch(e) { row.__rowNum__ = R; }\n\t\telse row.__rowNum__ = R;\n\t}\n\tif(!dense || sheet[\"!data\"][R]) for (var C = r.s.c; C <= r.e.c; ++C) {\n\t\tvar val = dense ? (sheet[\"!data\"][R]||[])[C] : sheet[cols[C] + rr];\n\t\tif(val === undefined || val.t === undefined) {\n\t\t\tif(defval === undefined) continue;\n\t\t\tif(hdr[C] != null) { row[hdr[C]] = defval; }\n\t\t\tcontinue;\n\t\t}\n\t\tvar v = val.v;\n\t\tswitch(val.t){\n\t\t\tcase 'z': if(v == null) break; continue;\n\t\t\tcase 'e': v = (v == 0 ? null : void 0); break;\n\t\t\tcase 's': case 'd': case 'b': case 'n': break;\n\t\t\tdefault: throw new Error('unrecognized type ' + val.t);\n\t\t}\n\t\tif(hdr[C] != null) {\n\t\t\tif(v == null) {\n\t\t\t\tif(val.t == \"e\" && v === null) row[hdr[C]] = null;\n\t\t\t\telse if(defval !== undefined) row[hdr[C]] = defval;\n\t\t\t\telse if(raw && v === null) row[hdr[C]] = null;\n\t\t\t\telse continue;\n\t\t\t} else {\n\t\t\t\trow[hdr[C]] = raw && (val.t !== \"n\" || (val.t === \"n\" && o.rawNumbers !== false)) ? v : format_cell(val,v,o);\n\t\t\t}\n\t\t\tif(v != null) isempty = false;\n\t\t}\n\t}\n\treturn { row: row, isempty: isempty };\n}\n\n\nfunction sheet_to_json(sheet/*:Worksheet*/, opts/*:?Sheet2JSONOpts*/) {\n\tif(sheet == null || sheet[\"!ref\"] == null) return [];\n\tvar val = {t:'n',v:0}, header = 0, offset = 1, hdr/*:Array*/ = [], v=0, vv=\"\";\n\tvar r = {s:{r:0,c:0},e:{r:0,c:0}};\n\tvar o = opts || {};\n\tvar range = o.range != null ? o.range : sheet[\"!ref\"];\n\tif(o.header === 1) header = 1;\n\telse if(o.header === \"A\") header = 2;\n\telse if(Array.isArray(o.header)) header = 3;\n\telse if(o.header == null) header = 0;\n\tswitch(typeof range) {\n\t\tcase 'string': r = safe_decode_range(range); break;\n\t\tcase 'number': r = safe_decode_range(sheet[\"!ref\"]); r.s.r = range; break;\n\t\tdefault: r = range;\n\t}\n\tif(header > 0) offset = 0;\n\tvar rr = encode_row(r.s.r);\n\tvar cols/*:Array*/ = [];\n\tvar out/*:Array*/ = [];\n\tvar outi = 0, counter = 0;\n\tvar dense = sheet[\"!data\"] != null;\n\tvar R = r.s.r, C = 0;\n\tvar header_cnt = {};\n\tif(dense && !sheet[\"!data\"][R]) sheet[\"!data\"][R] = [];\n\tvar colinfo/*:Array*/ = o.skipHidden && sheet[\"!cols\"] || [];\n\tvar rowinfo/*:Array*/ = o.skipHidden && sheet[\"!rows\"] || [];\n\tfor(C = r.s.c; C <= r.e.c; ++C) {\n\t\tif(((colinfo[C]||{}).hidden)) continue;\n\t\tcols[C] = encode_col(C);\n\t\tval = dense ? sheet[\"!data\"][R][C] : sheet[cols[C] + rr];\n\t\tswitch(header) {\n\t\t\tcase 1: hdr[C] = C - r.s.c; break;\n\t\t\tcase 2: hdr[C] = cols[C]; break;\n\t\t\tcase 3: hdr[C] = o.header[C - r.s.c]; break;\n\t\t\tdefault:\n\t\t\t\tif(val == null) val = {w: \"__EMPTY\", t: \"s\"};\n\t\t\t\tvv = v = format_cell(val, null, o);\n\t\t\t\tcounter = header_cnt[v] || 0;\n\t\t\t\tif(!counter) header_cnt[v] = 1;\n\t\t\t\telse {\n\t\t\t\t\tdo { vv = v + \"_\" + (counter++); } while(header_cnt[vv]); header_cnt[v] = counter;\n\t\t\t\t\theader_cnt[vv] = 1;\n\t\t\t\t}\n\t\t\t\thdr[C] = vv;\n\t\t}\n\t}\n\tfor (R = r.s.r + offset; R <= r.e.r; ++R) {\n\t\tif ((rowinfo[R]||{}).hidden) continue;\n\t\tvar row = make_json_row(sheet, r, R, cols, header, hdr, o);\n\t\tif((row.isempty === false) || (header === 1 ? o.blankrows !== false : !!o.blankrows)) out[outi++] = row.row;\n\t}\n\tout.length = outi;\n\treturn out;\n}\n\nvar qreg = /\"/g;\nfunction make_csv_row(sheet/*:Worksheet*/, r/*:Range*/, R/*:number*/, cols/*:Array*/, fs/*:number*/, rs/*:number*/, FS/*:string*/, o/*:Sheet2CSVOpts*/)/*:?string*/ {\n\tvar isempty = true;\n\tvar row/*:Array*/ = [], txt = \"\", rr = encode_row(R);\n\tvar dense = sheet[\"!data\"] != null;\n\tvar datarow = dense && sheet[\"!data\"][R] || [];\n\tfor(var C = r.s.c; C <= r.e.c; ++C) {\n\t\tif (!cols[C]) continue;\n\t\tvar val = dense ? datarow[C]: sheet[cols[C] + rr];\n\t\tif(val == null) txt = \"\";\n\t\telse if(val.v != null) {\n\t\t\tisempty = false;\n\t\t\ttxt = ''+(o.rawNumbers && val.t == \"n\" ? val.v : format_cell(val, null, o));\n\t\t\tfor(var i = 0, cc = 0; i !== txt.length; ++i) if((cc = txt.charCodeAt(i)) === fs || cc === rs || cc === 34 || o.forceQuotes) {txt = \"\\\"\" + txt.replace(qreg, '\"\"') + \"\\\"\"; break; }\n\t\t\tif(txt == \"ID\") txt = '\"ID\"';\n\t\t} else if(val.f != null && !val.F) {\n\t\t\tisempty = false;\n\t\t\ttxt = '=' + val.f; if(txt.indexOf(\",\") >= 0) txt = '\"' + txt.replace(qreg, '\"\"') + '\"';\n\t\t} else txt = \"\";\n\t\t/* NOTE: Excel CSV does not support array formulae */\n\t\trow.push(txt);\n\t}\n\tif(o.blankrows === false && isempty) return null;\n\treturn row.join(FS);\n}\n\nfunction sheet_to_csv(sheet/*:Worksheet*/, opts/*:?Sheet2CSVOpts*/)/*:string*/ {\n\tvar out/*:Array*/ = [];\n\tvar o = opts == null ? {} : opts;\n\tif(sheet == null || sheet[\"!ref\"] == null) return \"\";\n\tvar r = safe_decode_range(sheet[\"!ref\"]);\n\tvar FS = o.FS !== undefined ? o.FS : \",\", fs = FS.charCodeAt(0);\n\tvar RS = o.RS !== undefined ? o.RS : \"\\n\", rs = RS.charCodeAt(0);\n\tvar endregex = new RegExp((FS==\"|\" ? \"\\\\|\" : FS)+\"+$\");\n\tvar row = \"\", cols/*:Array*/ = [];\n\tvar colinfo/*:Array*/ = o.skipHidden && sheet[\"!cols\"] || [];\n\tvar rowinfo/*:Array*/ = o.skipHidden && sheet[\"!rows\"] || [];\n\tfor(var C = r.s.c; C <= r.e.c; ++C) if (!((colinfo[C]||{}).hidden)) cols[C] = encode_col(C);\n\tvar w = 0;\n\tfor(var R = r.s.r; R <= r.e.r; ++R) {\n\t\tif ((rowinfo[R]||{}).hidden) continue;\n\t\trow = make_csv_row(sheet, r, R, cols, fs, rs, FS, o);\n\t\tif(row == null) { continue; }\n\t\tif(o.strip) row = row.replace(endregex,\"\");\n\t\tif(row || (o.blankrows !== false)) out.push((w++ ? RS : \"\") + row);\n\t}\n\treturn out.join(\"\");\n}\n\nfunction sheet_to_txt(sheet/*:Worksheet*/, opts/*:?Sheet2CSVOpts*/) {\n\tif(!opts) opts = {}; opts.FS = \"\\t\"; opts.RS = \"\\n\";\n\tvar s = sheet_to_csv(sheet, opts);\n\tif(typeof $cptable == 'undefined' || opts.type == 'string') return s;\n\tvar o = $cptable.utils.encode(1200, s, 'str');\n\treturn String.fromCharCode(255) + String.fromCharCode(254) + o;\n}\n\nfunction sheet_to_formulae(sheet/*:Worksheet*/)/*:Array*/ {\n\tvar y = \"\", x, val=\"\";\n\tif(sheet == null || sheet[\"!ref\"] == null) return [];\n\tvar r = safe_decode_range(sheet['!ref']), rr = \"\", cols/*:Array*/ = [], C;\n\tvar cmds/*:Array*/ = [];\n\tvar dense = sheet[\"!data\"] != null;\n\tfor(C = r.s.c; C <= r.e.c; ++C) cols[C] = encode_col(C);\n\tfor(var R = r.s.r; R <= r.e.r; ++R) {\n\t\trr = encode_row(R);\n\t\tfor(C = r.s.c; C <= r.e.c; ++C) {\n\t\t\ty = cols[C] + rr;\n\t\t\tx = dense ? (sheet[\"!data\"][R]||[])[C] : sheet[y];\n\t\t\tval = \"\";\n\t\t\tif(x === undefined) continue;\n\t\t\telse if(x.F != null) {\n\t\t\t\ty = x.F;\n\t\t\t\tif(!x.f) continue;\n\t\t\t\tval = x.f;\n\t\t\t\tif(y.indexOf(\":\") == -1) y = y + \":\" + y;\n\t\t\t}\n\t\t\tif(x.f != null) val = x.f;\n\t\t\telse if(x.t == 'z') continue;\n\t\t\telse if(x.t == 'n' && x.v != null) val = \"\" + x.v;\n\t\t\telse if(x.t == 'b') val = x.v ? \"TRUE\" : \"FALSE\";\n\t\t\telse if(x.w !== undefined) val = \"'\" + x.w;\n\t\t\telse if(x.v === undefined) continue;\n\t\t\telse if(x.t == 's') val = \"'\" + x.v;\n\t\t\telse val = \"\"+x.v;\n\t\t\tcmds[cmds.length] = y + \"=\" + val;\n\t\t}\n\t}\n\treturn cmds;\n}\n\nfunction sheet_add_json(_ws/*:?Worksheet*/, js/*:Array*/, opts)/*:Worksheet*/ {\n\tvar o = opts || {};\n\tvar dense = _ws ? (_ws[\"!data\"] != null) : o.dense;\n\tif(DENSE != null && dense == null) dense = DENSE;\n\tvar offset = +!o.skipHeader;\n\tvar ws/*:Worksheet*/ = _ws || ({});\n\tif(!_ws && dense) ws[\"!data\"] = [];\n\tvar _R = 0, _C = 0;\n\tif(ws && o.origin != null) {\n\t\tif(typeof o.origin == 'number') _R = o.origin;\n\t\telse {\n\t\t\tvar _origin/*:CellAddress*/ = typeof o.origin == \"string\" ? decode_cell(o.origin) : o.origin;\n\t\t\t_R = _origin.r; _C = _origin.c;\n\t\t}\n\t}\n\tvar range/*:Range*/ = ({s: {c:0, r:0}, e: {c:_C, r:_R + js.length - 1 + offset}}/*:any*/);\n\tif(ws['!ref']) {\n\t\tvar _range = safe_decode_range(ws['!ref']);\n\t\trange.e.c = Math.max(range.e.c, _range.e.c);\n\t\trange.e.r = Math.max(range.e.r, _range.e.r);\n\t\tif(_R == -1) { _R = _range.e.r + 1; range.e.r = _R + js.length - 1 + offset; }\n\t} else {\n\t\tif(_R == -1) { _R = 0; range.e.r = js.length - 1 + offset; }\n\t}\n\tvar hdr/*:Array*/ = o.header || [], C = 0;\n\tvar ROW = [];\n\tjs.forEach(function (JS, R/*:number*/) {\n\t\tif(dense && !ws[\"!data\"][_R + R + offset]) ws[\"!data\"][_R + R + offset] = [];\n\t\tif(dense) ROW = ws[\"!data\"][_R + R + offset];\n\t\tkeys(JS).forEach(function(k) {\n\t\t\tif((C=hdr.indexOf(k)) == -1) hdr[C=hdr.length] = k;\n\t\t\tvar v = JS[k];\n\t\t\tvar t = 'z';\n\t\t\tvar z = \"\";\n\t\t\tvar ref = dense ? \"\" : (encode_col(_C + C) + encode_row(_R + R + offset));\n\t\t\tvar cell/*:Cell*/ = dense ? ROW[_C + C] : ws[ref];\n\t\t\tif(v && typeof v === 'object' && !(v instanceof Date)){\n\t\t\t\tif(dense) ROW[_C + C] = v;\n\t\t\t\telse ws[ref] = v;\n\t\t\t} else {\n\t\t\t\tif(typeof v == 'number') t = 'n';\n\t\t\t\telse if(typeof v == 'boolean') t = 'b';\n\t\t\t\telse if(typeof v == 'string') t = 's';\n\t\t\t\telse if(v instanceof Date) {\n\t\t\t\t\tt = 'd';\n\t\t\t\t\tif(!o.cellDates) { t = 'n'; v = datenum(v); }\n\t\t\t\t\tz = (cell != null && cell.z && fmt_is_date(cell.z)) ? cell.z : (o.dateNF || table_fmt[14]);\n\t\t\t\t}\n\t\t\t\telse if(v === null && o.nullError) { t = 'e'; v = 0; }\n\t\t\t\tif(!cell) {\n\t\t\t\t\tif(!dense) ws[ref] = cell = ({t:t, v:v}/*:any*/);\n\t\t\t\t\telse ROW[_C + C] = cell = ({t:t, v:v}/*:any*/);\n\t\t\t\t} else {\n\t\t\t\t\tcell.t = t; cell.v = v;\n\t\t\t\t\tdelete cell.w; delete cell.R;\n\t\t\t\t\tif(z) cell.z = z;\n\t\t\t\t}\n\t\t\t\tif(z) cell.z = z;\n\t\t\t}\n\t\t});\n\t});\n\trange.e.c = Math.max(range.e.c, _C + hdr.length - 1);\n\tvar __R = encode_row(_R);\n\tif(dense && !ws[\"!data\"][_R]) ws[\"!data\"][_R] = [];\n\tif(offset) for(C = 0; C < hdr.length; ++C) {\n\t\tif(dense) ws[\"!data\"][_R][C + _C] = {t:'s', v:hdr[C]};\n\t\telse ws[encode_col(C + _C) + __R] = {t:'s', v:hdr[C]};\n\t}\n\tws['!ref'] = encode_range(range);\n\treturn ws;\n}\nfunction json_to_sheet(js/*:Array*/, opts)/*:Worksheet*/ { return sheet_add_json(null, js, opts); }\n\n/* get cell, creating a stub if necessary */\nfunction ws_get_cell_stub(ws/*:Worksheet*/, R, C/*:?number*/)/*:Cell*/ {\n\t/* A1 cell address */\n\tif(typeof R == \"string\") {\n\t\tif(ws[\"!data\"] != null) {\n\t\t\tvar RC = decode_cell(R);\n\t\t\tif(!ws[\"!data\"][RC.r]) ws[\"!data\"][RC.r] = [];\n\t\t\treturn ws[\"!data\"][RC.r][RC.c] || (ws[\"!data\"][RC.r][RC.c] = {t:'z'});\n\t\t}\n\t\treturn ws[R] || (ws[R] = {t:'z'});\n\t}\n\t/* cell address object */\n\tif(typeof R != \"number\") return ws_get_cell_stub(ws, encode_cell(R));\n\t/* R and C are 0-based indices */\n\treturn ws_get_cell_stub(ws, encode_col(C||0) + encode_row(R));\n}\n\n/* find sheet index for given name / validate index */\nfunction wb_sheet_idx(wb/*:Workbook*/, sh/*:number|string*/) {\n\tif(typeof sh == \"number\") {\n\t\tif(sh >= 0 && wb.SheetNames.length > sh) return sh;\n\t\tthrow new Error(\"Cannot find sheet # \" + sh);\n\t} else if(typeof sh == \"string\") {\n\t\tvar idx = wb.SheetNames.indexOf(sh);\n\t\tif(idx > -1) return idx;\n\t\tthrow new Error(\"Cannot find sheet name |\" + sh + \"|\");\n\t} else throw new Error(\"Cannot find sheet |\" + sh + \"|\");\n}\n\n/* simple blank workbook object */\nfunction book_new()/*:Workbook*/ {\n\treturn { SheetNames: [], Sheets: {} };\n}\n\n/* add a worksheet to the end of a given workbook */\nfunction book_append_sheet(wb/*:Workbook*/, ws/*:Worksheet*/, name/*:?string*/, roll/*:?boolean*/)/*:string*/ {\n\tvar i = 1;\n\tif(!name) for(; i <= 0xFFFF; ++i, name = undefined) if(wb.SheetNames.indexOf(name = \"Sheet\" + i) == -1) break;\n\tif(!name || wb.SheetNames.length >= 0xFFFF) throw new Error(\"Too many worksheets\");\n\tif(roll && wb.SheetNames.indexOf(name) >= 0) {\n\t\tvar m = name.match(/(^.*?)(\\d+)$/);\n\t\ti = m && +m[2] || 0;\n\t\tvar root = m && m[1] || name;\n\t\tfor(++i; i <= 0xFFFF; ++i) if(wb.SheetNames.indexOf(name = root + i) == -1) break;\n\t}\n\tcheck_ws_name(name);\n\tif(wb.SheetNames.indexOf(name) >= 0) throw new Error(\"Worksheet with name |\" + name + \"| already exists!\");\n\n\twb.SheetNames.push(name);\n\twb.Sheets[name] = ws;\n\treturn name;\n}\n\n/* set sheet visibility (visible/hidden/very hidden) */\nfunction book_set_sheet_visibility(wb/*:Workbook*/, sh/*:number|string*/, vis/*:number*/) {\n\tif(!wb.Workbook) wb.Workbook = {};\n\tif(!wb.Workbook.Sheets) wb.Workbook.Sheets = [];\n\n\tvar idx = wb_sheet_idx(wb, sh);\n\t// $FlowIgnore\n\tif(!wb.Workbook.Sheets[idx]) wb.Workbook.Sheets[idx] = {};\n\n\tswitch(vis) {\n\t\tcase 0: case 1: case 2: break;\n\t\tdefault: throw new Error(\"Bad sheet visibility setting \" + vis);\n\t}\n\t// $FlowIgnore\n\twb.Workbook.Sheets[idx].Hidden = vis;\n}\n\n/* set number format */\nfunction cell_set_number_format(cell/*:Cell*/, fmt/*:string|number*/) {\n\tcell.z = fmt;\n\treturn cell;\n}\n\n/* set cell hyperlink */\nfunction cell_set_hyperlink(cell/*:Cell*/, target/*:string*/, tooltip/*:?string*/) {\n\tif(!target) {\n\t\tdelete cell.l;\n\t} else {\n\t\tcell.l = ({ Target: target }/*:Hyperlink*/);\n\t\tif(tooltip) cell.l.Tooltip = tooltip;\n\t}\n\treturn cell;\n}\nfunction cell_set_internal_link(cell/*:Cell*/, range/*:string*/, tooltip/*:?string*/) { return cell_set_hyperlink(cell, \"#\" + range, tooltip); }\n\n/* add to cell comments */\nfunction cell_add_comment(cell/*:Cell*/, text/*:string*/, author/*:?string*/) {\n\tif(!cell.c) cell.c = [];\n\tcell.c.push({t:text, a:author||\"SheetJS\"});\n}\n\n/* set array formula and flush related cells */\nfunction sheet_set_array_formula(ws/*:Worksheet*/, range, formula/*:string*/, dynamic/*:boolean*/) {\n\tvar rng = typeof range != \"string\" ? range : safe_decode_range(range);\n\tvar rngstr = typeof range == \"string\" ? range : encode_range(range);\n\tfor(var R = rng.s.r; R <= rng.e.r; ++R) for(var C = rng.s.c; C <= rng.e.c; ++C) {\n\t\tvar cell = ws_get_cell_stub(ws, R, C);\n\t\tcell.t = 'n';\n\t\tcell.F = rngstr;\n\t\tdelete cell.v;\n\t\tif(R == rng.s.r && C == rng.s.c) {\n\t\t\tcell.f = formula;\n\t\t\tif(dynamic) cell.D = true;\n\t\t}\n\t}\n\tvar wsr = decode_range(ws[\"!ref\"]);\n\tif(wsr.s.r > rng.s.r) wsr.s.r = rng.s.r;\n\tif(wsr.s.c > rng.s.c) wsr.s.c = rng.s.c;\n\tif(wsr.e.r < rng.e.r) wsr.e.r = rng.e.r;\n\tif(wsr.e.c < rng.e.c) wsr.e.c = rng.e.c;\n\tws[\"!ref\"] = encode_range(wsr);\n\treturn ws;\n}\n\nvar utils/*:any*/ = {\n\tencode_col: encode_col,\n\tencode_row: encode_row,\n\tencode_cell: encode_cell,\n\tencode_range: encode_range,\n\tdecode_col: decode_col,\n\tdecode_row: decode_row,\n\tsplit_cell: split_cell,\n\tdecode_cell: decode_cell,\n\tdecode_range: decode_range,\n\tformat_cell: format_cell,\n\tsheet_add_aoa: sheet_add_aoa,\n\tsheet_add_json: sheet_add_json,\n\tsheet_add_dom: sheet_add_dom,\n\taoa_to_sheet: aoa_to_sheet,\n\tjson_to_sheet: json_to_sheet,\n\ttable_to_sheet: parse_dom_table,\n\ttable_to_book: table_to_book,\n\tsheet_to_csv: sheet_to_csv,\n\tsheet_to_txt: sheet_to_txt,\n\tsheet_to_json: sheet_to_json,\n\tsheet_to_html: sheet_to_html,\n\tsheet_to_formulae: sheet_to_formulae,\n\tsheet_to_row_object_array: sheet_to_json,\n\tsheet_get_cell: ws_get_cell_stub,\n\tbook_new: book_new,\n\tbook_append_sheet: book_append_sheet,\n\tbook_set_sheet_visibility: book_set_sheet_visibility,\n\tcell_set_number_format: cell_set_number_format,\n\tcell_set_hyperlink: cell_set_hyperlink,\n\tcell_set_internal_link: cell_set_internal_link,\n\tcell_add_comment: cell_add_comment,\n\tsheet_set_array_formula: sheet_set_array_formula,\n\tconsts: {\n\t\tSHEET_VISIBLE: 0,\n\t\tSHEET_HIDDEN: 1,\n\t\tSHEET_VERY_HIDDEN: 2\n\t}\n};\n\nvar _Readable;\nfunction set_readable(R) { _Readable = R; }\n\nfunction write_csv_stream(sheet/*:Worksheet*/, opts/*:?Sheet2CSVOpts*/) {\n\tvar stream = _Readable();\n\tvar o = opts == null ? {} : opts;\n\tif(sheet == null || sheet[\"!ref\"] == null) { stream.push(null); return stream; }\n\tvar r = safe_decode_range(sheet[\"!ref\"]);\n\tvar FS = o.FS !== undefined ? o.FS : \",\", fs = FS.charCodeAt(0);\n\tvar RS = o.RS !== undefined ? o.RS : \"\\n\", rs = RS.charCodeAt(0);\n\tvar endregex = new RegExp((FS==\"|\" ? \"\\\\|\" : FS)+\"+$\");\n\tvar row/*:?string*/ = \"\", cols/*:Array*/ = [];\n\tvar colinfo/*:Array*/ = o.skipHidden && sheet[\"!cols\"] || [];\n\tvar rowinfo/*:Array*/ = o.skipHidden && sheet[\"!rows\"] || [];\n\tfor(var C = r.s.c; C <= r.e.c; ++C) if (!((colinfo[C]||{}).hidden)) cols[C] = encode_col(C);\n\tvar R = r.s.r;\n\tvar BOM = false, w = 0;\n\tstream._read = function() {\n\t\tif(!BOM) { BOM = true; return stream.push(\"\\uFEFF\"); }\n\t\twhile(R <= r.e.r) {\n\t\t\t++R;\n\t\t\tif ((rowinfo[R-1]||{}).hidden) continue;\n\t\t\trow = make_csv_row(sheet, r, R-1, cols, fs, rs, FS, o);\n\t\t\tif(row != null) {\n\t\t\t\tif(o.strip) row = row.replace(endregex,\"\");\n\t\t\t\tif(row || (o.blankrows !== false)) return stream.push((w++ ? RS : \"\") + row);\n\t\t\t}\n\t\t}\n\t\treturn stream.push(null);\n\t};\n\treturn stream;\n}\n\nfunction write_html_stream(ws/*:Worksheet*/, opts/*:?Sheet2HTMLOpts*/) {\n\tvar stream = _Readable();\n\n\tvar o = opts || {};\n\tvar header = o.header != null ? o.header : HTML_BEGIN;\n\tvar footer = o.footer != null ? o.footer : HTML_END;\n\tstream.push(header);\n\tvar r = decode_range(ws['!ref']);\n\tstream.push(make_html_preamble(ws, r, o));\n\tvar R = r.s.r;\n\tvar end = false;\n\tstream._read = function() {\n\t\tif(R > r.e.r) {\n\t\t\tif(!end) { end = true; stream.push(\"\" + footer); }\n\t\t\treturn stream.push(null);\n\t\t}\n\t\twhile(R <= r.e.r) {\n\t\t\tstream.push(make_html_row(ws, r, R, o));\n\t\t\t++R;\n\t\t\tbreak;\n\t\t}\n\t};\n\treturn stream;\n}\n\nfunction write_json_stream(sheet/*:Worksheet*/, opts/*:?Sheet2CSVOpts*/) {\n\tvar stream = _Readable({objectMode:true});\n\n\tif(sheet == null || sheet[\"!ref\"] == null) { stream.push(null); return stream; }\n\tvar val = {t:'n',v:0}, header = 0, offset = 1, hdr/*:Array*/ = [], v=0, vv=\"\";\n\tvar r = {s:{r:0,c:0},e:{r:0,c:0}};\n\tvar o = opts || {};\n\tvar range = o.range != null ? o.range : sheet[\"!ref\"];\n\tif(o.header === 1) header = 1;\n\telse if(o.header === \"A\") header = 2;\n\telse if(Array.isArray(o.header)) header = 3;\n\tswitch(typeof range) {\n\t\tcase 'string': r = safe_decode_range(range); break;\n\t\tcase 'number': r = safe_decode_range(sheet[\"!ref\"]); r.s.r = range; break;\n\t\tdefault: r = range;\n\t}\n\tif(header > 0) offset = 0;\n\tvar rr = encode_row(r.s.r);\n\tvar cols/*:Array*/ = [];\n\tvar counter = 0;\n\tvar dense = sheet[\"!data\"] != null;\n\tvar R = r.s.r, C = 0;\n\tvar header_cnt = {};\n\tif(dense && !sheet[\"!data\"][R]) sheet[\"!data\"][R] = [];\n\tvar colinfo/*:Array*/ = o.skipHidden && sheet[\"!cols\"] || [];\n\tvar rowinfo/*:Array*/ = o.skipHidden && sheet[\"!rows\"] || [];\n\tfor(C = r.s.c; C <= r.e.c; ++C) {\n\t\tif(((colinfo[C]||{}).hidden)) continue;\n\t\tcols[C] = encode_col(C);\n\t\tval = dense ? sheet[\"!data\"][R][C] : sheet[cols[C] + rr];\n\t\tswitch(header) {\n\t\t\tcase 1: hdr[C] = C - r.s.c; break;\n\t\t\tcase 2: hdr[C] = cols[C]; break;\n\t\t\tcase 3: hdr[C] = o.header[C - r.s.c]; break;\n\t\t\tdefault:\n\t\t\t\tif(val == null) val = {w: \"__EMPTY\", t: \"s\"};\n\t\t\t\tvv = v = format_cell(val, null, o);\n\t\t\t\tcounter = header_cnt[v] || 0;\n\t\t\t\tif(!counter) header_cnt[v] = 1;\n\t\t\t\telse {\n\t\t\t\t\tdo { vv = v + \"_\" + (counter++); } while(header_cnt[vv]); header_cnt[v] = counter;\n\t\t\t\t\theader_cnt[vv] = 1;\n\t\t\t\t}\n\t\t\t\thdr[C] = vv;\n\t\t}\n\t}\n\tR = r.s.r + offset;\n\tstream._read = function() {\n\t\twhile(R <= r.e.r) {\n\t\t\tif ((rowinfo[R-1]||{}).hidden) continue;\n\t\t\tvar row = make_json_row(sheet, r, R, cols, header, hdr, o);\n\t\t\t++R;\n\t\t\tif((row.isempty === false) || (header === 1 ? o.blankrows !== false : !!o.blankrows)) {\n\t\t\t\tstream.push(row.row);\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\t\treturn stream.push(null);\n\t};\n\treturn stream;\n}\n\nvar __stream = {\n\tto_json: write_json_stream,\n\tto_html: write_html_stream,\n\tto_csv: write_csv_stream,\n\tset_readable: set_readable\n};\nexport const version = XLSX.version;\nexport {\n\tparse_xlscfb,\n\tparse_zip,\n\treadSync as read,\n\treadFileSync as readFile,\n\treadFileSync,\n\twriteSync as write,\n\twriteFileSync as writeFile,\n\twriteFileSync,\n\twriteFileAsync,\n\twriteSyncXLSX as writeXLSX,\n\twriteFileSyncXLSX as writeFileXLSX,\n\tutils,\n\tset_fs,\n\tset_cptable,\n\t__stream as stream,\n\tSSF,\n\tCFB\n};\nexport default {\n\tparse_xlscfb,\n\tparse_zip,\n\tread: readSync,\n\treadFile: readFileSync,\n\treadFileSync,\n\twrite: writeSync,\n\twriteFile: writeFileSync,\n\twriteFileSync,\n\twriteFileAsync,\n\twriteXLSX: writeSyncXLSX,\n\twriteFileXLSX: writeFileSyncXLSX,\n\tutils,\n\tset_fs,\n\tset_cptable,\n\tstream: __stream,\n\tSSF,\n\tCFB\n}\n","//! AlaSQL v4.2.1 build: develop-37ffe88b | © 2014-2023 Andrey Gershun & Mathias Wulff | License: MIT\n/*\n@module alasql\n@version 4.2.1\n\nAlaSQL - JavaScript SQL database\n© 2014-2023\tAndrey Gershun & Mathias Wulff\n\n@license\nThe MIT License (MIT)\n\nCopyright 2014-2023 Andrey Gershun (agershun@gmail.com) & Mathias Wulff (m@rawu.dk)\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n*/\n/* eslint-disable */\n\n\"use strict\";\n\n/**\n\t@fileoverview AlaSQL JavaScript SQL library\n\t@see http://github.com/alasql/alasql\n*/\n\n/**\n\tCallback from statement\n\t@callback statement-callback\n\t@param {object} data Result data\n*/\n\n/**\n\tUMD envelope for AlaSQL\n*/\n\n(function (root, factory) {\n if (typeof define === 'function' && define.amd) {\n define([], factory);\n } else if (typeof exports === 'object') {\n \t/** alasql main function */\n module.exports = factory();\n } else {\n root.alasql = factory();\n }\n}(this, function () {\n\n/**\n\tAlaSQL - Main Alasql class\n \t@function\n \t@param {string|function|object} sql - SQL-statement or data object for fluent interface\n \t@param {object} params - SQL parameters\n \t@param {function} cb - callback function\n \t@param {object} scope - Scope for nested queries\n \t@return {any} - Result data object\n\n\t@example\n Standard sync call:\n alasql('CREATE TABLE one');\n Query:\n \tvar res = alasql('SELECT * FROM one');\n Call with parameters:\n \tvar res = alasql('SELECT * FROM ?',[data]);\n Standard async call with callback function:\n \talasql('SELECT * FROM ?',[data],function(res){\n\t\tconsole.log(data);\n \t});\n Call with scope for subquery (to pass common values):\n var scope = {one:{a:2,b;20}}\n alasql('SELECT * FROM ? two WHERE two.a = one.a',[data],null,scope);\n Call for fluent interface with data object:\n alasql(data).Where(function(x){return x.a == 10}).exec();\n Call for fluent interface without data object:\n alasql().From(data).Where(function(x){return x.a == 10}).exec();\n */\n\nvar alasql = function(sql, params, cb, scope) {\n\n\tparams = params||[];\n\n\tif(typeof importScripts !== 'function' && alasql.webworker) {\n\t\tvar id = alasql.lastid++;\n\t\talasql.buffer[id] = cb;\n\t\talasql.webworker.postMessage({id:id,sql:sql,params:params});\n\t\treturn;\n\t} \n\n\tif(arguments.length === 0) {\n\t\t// Without arguments - Fluent interface\n\t\treturn new yy.Select({\n\t\t\tcolumns:[new yy.Column({columnid:'*'})],\n\t\t\tfrom: [new yy.ParamValue({param:0})]\n\t\t});\n\t} else if(arguments.length === 1){ \n\t\t// Access promise notation without using `.promise(...)`\n\t\tif(sql.constructor === Array){\n\t\t\treturn alasql.promise(sql);\n\t\t}\n\t} \n\t// Avoid setting params if not needed even with callback\n\tif(typeof params === 'function'){\n\t\tscope = cb;\n\t\tcb = params;\n\t\tparams = [];\n\t}\n\n\tif(typeof params !== 'object'){\n\t\t\tparams = [params];\n\t}\n\n\t// Standard interface\n\t// alasql('#sql');\n\tif(typeof sql === 'string' && sql[0]==='#' && typeof document === \"object\") {\n\t\tsql = document.querySelector(sql).textContent;\n\t} else if(typeof sql === 'object' && sql instanceof HTMLElement) {\n\t\tsql = sql.textContent;\n\t} else if(typeof sql === 'function') {\n\t\t// to run multiline functions\n\t\tsql = sql.toString();\n\t\tsql = (/\\/\\*([\\S\\s]+)\\*\\//m.exec(sql) || ['','Function given as SQL. Plese Provide SQL string or have a /* ... */ syle comment with SQL in the function.'])[1];\t\n\t}\n\t// Run SQL\t\t\t\n\treturn alasql.exec(sql, params, cb, scope);\n};\n\n/** \n\tCurrent version of alasql \n \t@constant {string} \n*/\nalasql.version = '4.2.1';\nalasql.build = 'develop-37ffe88b';\n\n/**\n\tDebug flag\n\t@type {boolean}\n*/\nalasql.debug = undefined; // Initial debug variable\n\n/*only-for-browser/*\nvar require = function(){return null}; // as alasqlparser.js is generated, we can not \"remove\" references to \nvar __dirname = '';\n//*/\n/* parser generated by jison 0.4.18 */\n/*\n Returns a Parser object of the following structure:\n\n Parser: {\n yy: {}\n }\n\n Parser.prototype: {\n yy: {},\n trace: function(),\n symbols_: {associative list: name ==> number},\n terminals_: {associative list: number ==> name},\n productions_: [...],\n performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$),\n table: [...],\n defaultActions: {...},\n parseError: function(str, hash),\n parse: function(input),\n\n lexer: {\n EOF: 1,\n parseError: function(str, hash),\n setInput: function(input),\n input: function(),\n unput: function(str),\n more: function(),\n less: function(n),\n pastInput: function(),\n upcomingInput: function(),\n showPosition: function(),\n test_match: function(regex_match_array, rule_index),\n next: function(),\n lex: function(),\n begin: function(condition),\n popState: function(),\n _currentRules: function(),\n topState: function(),\n pushState: function(condition),\n\n options: {\n ranges: boolean (optional: true ==> token location info will include a .range[] member)\n flex: boolean (optional: true ==> flex-like lexing behaviour where the rules are tested exhaustively to find the longest match)\n backtrack_lexer: boolean (optional: true ==> lexer regexes are tested in order and for each matching regex the action code is invoked; the lexer terminates the scan when a token is returned by the action code)\n },\n\n performAction: function(yy, yy_, $avoiding_name_collisions, YY_START),\n rules: [...],\n conditions: {associative list: name ==> set},\n }\n }\n\n token location info (@$, _$, etc.): {\n first_line: n,\n last_line: n,\n first_column: n,\n last_column: n,\n range: [start_number, end_number] (where the numbers are indexes into the input string, regular zero-based)\n }\n\n the parseError function receives a 'hash' object with these members for lexer and parser errors: {\n text: (matched text)\n token: (the produced terminal token, if any)\n line: (yylineno)\n }\n while parser (grammar) errors will also provide these members, i.e. parser errors deliver a superset of attributes: {\n loc: (yylloc)\n expected: (string describing the set of expected tokens)\n recoverable: (boolean: TRUE when the parser has a error recovery rule available for this particular error)\n }\n*/\nvar alasqlparser = (function(){\nvar o=function(k,v,o,l){for(o=o||{},l=k.length;l--;o[k[l]]=v);return o},$V0=[2,13],$V1=[1,104],$V2=[1,102],$V3=[1,103],$V4=[1,6],$V5=[1,42],$V6=[1,79],$V7=[1,76],$V8=[1,94],$V9=[1,93],$Va=[1,69],$Vb=[1,101],$Vc=[1,85],$Vd=[1,64],$Ve=[1,71],$Vf=[1,84],$Vg=[1,66],$Vh=[1,70],$Vi=[1,68],$Vj=[1,61],$Vk=[1,74],$Vl=[1,62],$Vm=[1,67],$Vn=[1,83],$Vo=[1,77],$Vp=[1,86],$Vq=[1,87],$Vr=[1,81],$Vs=[1,82],$Vt=[1,80],$Vu=[1,88],$Vv=[1,89],$Vw=[1,90],$Vx=[1,91],$Vy=[1,92],$Vz=[1,98],$VA=[1,65],$VB=[1,78],$VC=[1,72],$VD=[1,96],$VE=[1,97],$VF=[1,63],$VG=[1,73],$VH=[1,108],$VI=[1,107],$VJ=[10,310,606,767],$VK=[10,310,314,606,767],$VL=[1,115],$VM=[1,116],$VN=[1,117],$VO=[1,118],$VP=[1,119],$VQ=[1,120],$VR=[130,357,414],$VS=[1,128],$VT=[1,127],$VU=[1,135],$VV=[1,165],$VW=[1,176],$VX=[1,179],$VY=[1,174],$VZ=[1,182],$V_=[1,186],$V$=[1,161],$V01=[1,183],$V11=[1,170],$V21=[1,172],$V31=[1,175],$V41=[1,184],$V51=[1,201],$V61=[1,202],$V71=[1,167],$V81=[1,194],$V91=[1,189],$Va1=[1,190],$Vb1=[1,195],$Vc1=[1,196],$Vd1=[1,197],$Ve1=[1,198],$Vf1=[1,199],$Vg1=[1,200],$Vh1=[1,203],$Vi1=[1,204],$Vj1=[1,177],$Vk1=[1,178],$Vl1=[1,180],$Vm1=[1,181],$Vn1=[1,187],$Vo1=[1,193],$Vp1=[1,185],$Vq1=[1,188],$Vr1=[1,173],$Vs1=[1,171],$Vt1=[1,192],$Vu1=[1,205],$Vv1=[2,4,5],$Vw1=[2,476],$Vx1=[1,208],$Vy1=[1,213],$Vz1=[1,222],$VA1=[1,218],$VB1=[10,72,78,93,98,118,128,162,168,169,183,198,232,249,251,310,314,606,767],$VC1=[2,4,5,10,72,76,77,78,112,115,116,118,122,123,124,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,183,185,187,198,244,245,284,285,286,287,288,289,290,291,310,314,424,428,606,767],$VD1=[2,4,5,10,53,72,74,76,77,78,89,93,95,98,99,107,112,115,116,118,122,123,124,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,179,180,181,183,185,187,189,198,206,208,222,223,224,225,226,227,228,229,232,239,244,245,246,247,249,251,270,271,284,285,286,287,288,289,290,291,293,300,304,310,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,327,328,329,330,334,335,336,337,339,342,343,400,404,405,408,410,412,413,421,422,424,428,438,440,441,443,444,445,446,447,451,452,455,456,468,474,509,511,512,521,606,767],$VE1=[1,251],$VF1=[1,258],$VG1=[1,267],$VH1=[1,272],$VI1=[1,271],$VJ1=[2,4,5,10,72,77,78,93,98,107,118,128,131,132,137,143,145,149,152,154,156,162,168,169,179,180,181,183,198,232,244,245,249,251,269,270,274,275,277,284,285,286,287,288,289,290,291,293,294,295,296,297,298,299,300,301,302,303,306,307,310,314,316,321,424,428,606,767],$VK1=[2,162],$VL1=[1,283],$VM1=[10,74,78,310,314,509,606,767],$VN1=[2,4,5,10,53,72,74,76,77,78,89,93,95,98,99,107,112,115,116,118,122,123,124,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,179,180,181,183,185,187,189,193,198,206,208,222,223,224,225,226,227,228,229,230,231,232,239,244,245,246,247,249,251,270,271,284,285,286,287,288,289,290,291,293,300,301,304,306,310,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,327,328,329,330,334,335,336,337,339,342,343,347,348,360,372,373,374,377,378,390,393,400,404,405,406,407,408,409,410,412,413,421,422,424,428,430,437,438,440,441,443,444,445,446,447,451,452,455,456,468,474,509,511,512,518,519,520,521,606,767],$VO1=[2,4,5,10,53,72,89,124,146,156,189,270,271,293,310,339,342,343,400,404,405,408,410,412,413,421,422,438,440,441,443,444,445,446,447,451,452,455,456,509,511,512,521,606,767],$VP1=[1,564],$VQ1=[1,566],$VR1=[2,508],$VS1=[1,572],$VT1=[1,583],$VU1=[1,586],$VV1=[1,587],$VW1=[10,78,89,132,137,146,189,300,310,314,474,606,767],$VX1=[10,74,310,314,606,767],$VY1=[2,572],$VZ1=[1,605],$V_1=[2,4,5,156],$V$1=[1,643],$V02=[1,615],$V12=[1,649],$V22=[1,650],$V32=[1,623],$V42=[1,634],$V52=[1,621],$V62=[1,629],$V72=[1,622],$V82=[1,630],$V92=[1,632],$Va2=[1,624],$Vb2=[1,625],$Vc2=[1,644],$Vd2=[1,641],$Ve2=[1,642],$Vf2=[1,618],$Vg2=[1,620],$Vh2=[1,612],$Vi2=[1,613],$Vj2=[1,614],$Vk2=[1,616],$Vl2=[1,617],$Vm2=[1,619],$Vn2=[1,626],$Vo2=[1,627],$Vp2=[1,631],$Vq2=[1,633],$Vr2=[1,635],$Vs2=[1,636],$Vt2=[1,637],$Vu2=[1,638],$Vv2=[1,639],$Vw2=[1,645],$Vx2=[1,646],$Vy2=[1,647],$Vz2=[1,648],$VA2=[2,290],$VB2=[2,4,5,10,53,72,74,76,77,78,89,93,95,98,99,107,112,115,116,118,122,123,124,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,179,180,181,183,185,187,189,198,206,208,222,223,224,225,226,227,228,229,230,231,232,239,244,245,246,247,249,251,270,271,284,285,286,287,288,289,290,291,293,300,301,304,310,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,327,328,329,330,334,335,336,337,339,342,343,347,360,372,373,377,378,400,404,405,408,410,412,413,421,422,424,428,430,438,440,441,443,444,445,446,447,451,452,455,456,468,474,509,511,512,521,606,767],$VC2=[2,364],$VD2=[1,671],$VE2=[1,681],$VF2=[2,4,5,10,53,72,74,76,77,78,89,93,95,98,99,107,112,115,116,118,122,123,124,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,179,180,181,183,185,187,189,198,206,208,222,223,224,225,226,227,228,229,230,231,232,239,244,245,246,247,249,251,270,271,284,285,286,287,288,289,290,291,293,300,304,310,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,327,328,329,330,334,335,336,337,339,342,343,400,404,405,408,410,412,413,421,422,424,428,430,438,440,441,443,444,445,446,447,451,452,455,456,468,474,509,511,512,521,606,767],$VG2=[1,697],$VH2=[1,706],$VI2=[1,705],$VJ2=[2,4,5,10,72,74,78,93,98,118,128,162,168,169,206,208,222,223,224,225,226,227,228,229,230,231,232,249,251,310,314,606,767],$VK2=[10,72,74,78,93,98,118,128,162,168,169,206,208,222,223,224,225,226,227,228,229,230,231,232,249,251,310,314,606,767],$VL2=[2,202],$VM2=[1,728],$VN2=[10,72,78,93,98,118,128,162,168,169,183,232,249,251,310,314,606,767],$VO2=[2,163],$VP2=[1,731],$VQ2=[2,4,5,112],$VR2=[1,744],$VS2=[1,763],$VT2=[1,743],$VU2=[1,742],$VV2=[1,737],$VW2=[1,738],$VX2=[1,740],$VY2=[1,741],$VZ2=[1,745],$V_2=[1,746],$V$2=[1,747],$V03=[1,748],$V13=[1,749],$V23=[1,750],$V33=[1,751],$V43=[1,752],$V53=[1,753],$V63=[1,754],$V73=[1,755],$V83=[1,756],$V93=[1,757],$Va3=[1,758],$Vb3=[1,759],$Vc3=[1,760],$Vd3=[1,762],$Ve3=[1,764],$Vf3=[1,765],$Vg3=[1,766],$Vh3=[1,767],$Vi3=[1,768],$Vj3=[1,769],$Vk3=[1,770],$Vl3=[1,773],$Vm3=[1,774],$Vn3=[1,775],$Vo3=[1,776],$Vp3=[1,777],$Vq3=[1,778],$Vr3=[1,779],$Vs3=[1,780],$Vt3=[1,781],$Vu3=[1,782],$Vv3=[1,783],$Vw3=[1,784],$Vx3=[74,89,189],$Vy3=[10,74,78,154,187,230,301,310,314,347,360,372,373,377,378,606,767],$Vz3=[1,801],$VA3=[10,74,78,304,310,314,606,767],$VB3=[1,802],$VC3=[1,808],$VD3=[1,809],$VE3=[1,813],$VF3=[10,74,78,310,314,606,767],$VG3=[2,4,5,77,131,132,137,143,145,149,152,154,156,179,180,181,244,245,269,270,274,275,277,284,285,286,287,288,289,290,291,293,294,295,296,297,298,299,300,301,302,303,306,307,316,321,424,428],$VH3=[10,72,78,93,98,107,118,128,162,168,169,183,198,232,249,251,310,314,606,767],$VI3=[2,4,5,10,72,77,78,93,98,107,118,128,131,132,137,143,145,149,152,154,156,162,164,168,169,179,180,181,183,185,187,195,198,232,244,245,249,251,269,270,274,275,277,284,285,286,287,288,289,290,291,293,294,295,296,297,298,299,300,301,302,303,306,307,310,314,316,321,424,428,606,767],$VJ3=[2,4,5,132,300],$VK3=[1,848],$VL3=[10,74,76,78,310,314,606,767],$VM3=[2,743],$VN3=[10,74,76,78,132,139,141,145,152,310,314,424,428,606,767],$VO3=[2,1166],$VP3=[10,74,76,78,139,141,145,152,310,314,424,428,606,767],$VQ3=[10,74,76,78,139,141,145,310,314,424,428,606,767],$VR3=[10,74,78,139,141,310,314,606,767],$VS3=[10,78,89,132,146,189,300,310,314,474,606,767],$VT3=[339,342,343],$VU3=[2,769],$VV3=[1,873],$VW3=[1,874],$VX3=[1,875],$VY3=[1,876],$VZ3=[1,885],$V_3=[1,884],$V$3=[164,166,338],$V04=[2,449],$V14=[1,940],$V24=[2,4,5,77,131,156,293,294,295,296,297],$V34=[1,955],$V44=[2,4,5,10,53,72,74,76,77,78,89,93,95,98,99,107,112,118,122,124,128,129,130,131,132,134,135,137,139,140,141,142,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,179,181,183,185,187,189,198,206,208,222,223,224,225,226,227,228,229,232,239,244,245,246,247,249,251,270,271,284,285,286,287,288,289,290,291,293,300,304,310,312,313,314,315,317,318,319,321,322,323,324,325,326,327,328,329,330,334,335,336,337,339,342,343,400,404,405,408,410,412,413,421,422,424,428,438,440,441,443,444,445,446,447,451,452,455,456,468,474,509,511,512,521,606,767],$V54=[2,4,5,10,53,72,74,76,77,78,89,93,95,98,99,107,112,115,116,118,122,123,124,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,179,180,181,183,185,187,189,198,206,208,222,223,224,225,226,227,228,229,232,239,244,245,246,247,249,251,270,271,284,285,286,287,288,289,290,291,293,300,304,310,312,313,314,315,316,317,318,319,321,322,323,324,325,326,327,328,329,330,334,335,336,337,339,342,343,400,404,405,408,410,412,413,421,422,424,428,438,440,441,443,444,445,446,447,451,452,455,456,468,474,509,511,512,521,606,767],$V64=[2,380],$V74=[1,962],$V84=[310,312,314],$V94=[74,304],$Va4=[74,304,430],$Vb4=[1,969],$Vc4=[2,4,5,10,53,72,74,76,78,89,93,95,98,99,107,112,115,116,118,122,123,124,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,179,180,181,183,185,187,189,198,206,208,222,223,224,225,226,227,228,229,232,239,244,245,246,247,249,251,270,271,284,285,286,287,288,289,290,291,293,300,304,310,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,327,328,329,330,334,335,336,337,339,342,343,400,404,405,408,410,412,413,421,422,424,428,438,440,441,443,444,445,446,447,451,452,455,456,468,474,509,511,512,521,606,767],$Vd4=[74,430],$Ve4=[1,982],$Vf4=[1,981],$Vg4=[1,988],$Vh4=[10,72,78,93,98,118,128,162,168,169,232,249,251,310,314,606,767],$Vi4=[1,1014],$Vj4=[10,72,78,310,314,606,767],$Vk4=[1,1020],$Vl4=[1,1021],$Vm4=[1,1022],$Vn4=[2,4,5,10,72,74,76,77,78,112,115,116,118,122,123,124,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,179,180,181,183,185,187,198,244,245,284,285,286,287,288,289,290,291,310,314,424,428,606,767],$Vo4=[1,1072],$Vp4=[1,1071],$Vq4=[1,1085],$Vr4=[1,1084],$Vs4=[1,1092],$Vt4=[10,72,74,78,93,98,107,118,128,162,168,169,183,198,232,249,251,310,314,606,767],$Vu4=[1,1124],$Vv4=[10,78,89,146,189,310,314,474,606,767],$Vw4=[1,1144],$Vx4=[1,1143],$Vy4=[1,1142],$Vz4=[2,4,5,10,53,72,74,76,77,78,89,93,95,98,99,107,112,115,116,118,122,123,124,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,179,180,181,183,185,187,189,198,206,208,222,223,224,225,226,227,228,229,230,232,239,244,245,246,247,249,251,270,271,284,285,286,287,288,289,290,291,293,300,301,304,310,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,327,328,329,330,334,335,336,337,339,342,343,347,360,372,373,377,378,400,404,405,408,410,412,413,421,422,424,428,438,440,441,443,444,445,446,447,451,452,455,456,468,474,509,511,512,521,606,767],$VA4=[1,1158],$VB4=[2,4,5,10,53,72,74,76,77,78,89,93,95,98,99,107,112,118,122,124,128,129,130,131,132,134,135,137,139,140,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,181,183,185,187,189,198,206,208,222,223,224,225,226,227,228,229,232,239,244,245,246,247,249,251,270,271,284,285,286,287,288,289,290,291,293,300,304,310,312,313,314,315,317,318,319,324,325,326,327,328,329,330,334,335,336,337,339,342,343,400,404,405,408,410,412,413,421,422,424,428,438,440,441,443,444,445,446,447,451,452,455,456,468,474,509,511,512,521,606,767],$VC4=[2,4,5,10,53,72,74,76,77,78,89,93,95,98,99,107,112,118,122,124,128,129,130,131,132,134,135,137,139,140,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,181,183,185,187,189,198,206,208,222,223,224,225,226,227,228,229,232,239,244,245,246,247,249,251,270,271,284,285,286,287,288,289,290,291,293,300,304,310,312,313,314,315,317,319,324,325,326,327,328,329,330,334,335,336,337,339,342,343,400,404,405,408,410,412,413,421,422,424,428,438,440,441,443,444,445,446,447,451,452,455,456,468,474,509,511,512,521,606,767],$VD4=[2,4,5,10,53,72,74,76,77,78,89,93,95,98,99,107,112,118,122,124,128,129,130,131,132,133,134,135,137,138,139,140,141,142,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,179,180,181,183,185,187,189,198,206,208,222,223,224,225,226,227,228,229,232,239,244,245,246,247,249,251,270,271,284,285,286,287,288,289,290,291,293,300,304,310,312,313,314,315,317,318,319,321,322,323,324,325,326,327,328,329,330,334,335,336,337,339,342,343,400,404,405,408,410,412,413,421,422,424,428,438,440,441,443,444,445,446,447,451,452,455,456,468,474,509,511,512,521,606,767],$VE4=[2,4,5,10,53,72,74,76,77,78,89,93,95,98,99,107,112,118,122,124,128,129,130,131,132,134,135,137,139,140,141,142,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,181,183,185,187,189,198,206,208,222,223,224,225,226,227,228,229,232,239,244,245,246,247,249,251,270,271,284,285,286,287,288,289,290,291,293,300,304,310,312,313,314,315,317,318,319,322,323,324,325,326,327,328,329,330,334,335,336,337,339,342,343,400,404,405,408,410,412,413,421,422,424,428,438,440,441,443,444,445,446,447,451,452,455,456,468,474,509,511,512,521,606,767],$VF4=[2,4,5,10,53,72,74,76,77,78,89,93,95,98,99,107,118,122,124,128,129,130,131,132,134,135,137,139,140,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,181,183,185,187,189,198,206,208,222,223,224,225,226,227,228,229,232,239,244,245,246,247,249,251,270,271,284,285,286,287,288,289,290,291,293,300,304,310,312,313,314,318,324,325,326,327,328,329,330,334,335,337,339,342,343,400,404,405,408,410,412,413,421,422,424,428,438,440,441,443,444,445,446,447,451,452,455,456,468,474,509,511,512,521,606,767],$VG4=[2,411],$VH4=[2,4,5,10,53,72,74,76,77,78,89,93,95,98,107,118,122,128,129,130,131,132,134,135,137,143,145,146,148,149,150,152,156,162,164,166,168,169,170,171,172,173,175,181,183,185,187,189,198,206,208,222,223,224,225,226,227,228,229,232,239,244,245,246,247,249,251,270,271,284,285,286,287,288,289,290,291,293,300,304,310,312,313,314,318,334,335,337,339,342,343,400,404,405,408,410,412,413,421,422,424,428,438,440,441,443,444,445,446,447,451,452,455,456,468,474,509,511,512,521,606,767],$VI4=[2,288],$VJ4=[2,4,5,10,53,72,74,76,77,78,89,93,95,98,99,107,112,115,116,118,122,123,124,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,179,180,181,183,185,187,189,198,206,208,222,223,224,225,226,227,228,229,232,239,244,245,246,247,249,251,270,271,284,285,286,287,288,289,290,291,293,300,304,310,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,327,328,329,330,334,335,336,337,339,342,343,400,404,405,408,410,412,413,421,422,424,428,430,438,440,441,443,444,445,446,447,451,452,455,456,468,474,509,511,512,521,606,767],$VK4=[10,78,310,314,606,767],$VL4=[1,1194],$VM4=[10,77,78,143,145,152,181,306,310,314,424,428,606,767],$VN4=[10,74,78,310,312,314,468,606,767],$VO4=[1,1205],$VP4=[10,72,78,118,128,162,168,169,232,249,251,310,314,606,767],$VQ4=[10,72,74,78,93,98,118,128,162,168,169,183,198,232,249,251,310,314,606,767],$VR4=[2,4,5,72,76,77,78,112,115,116,118,122,123,124,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,185,187,244,245,284,285,286,287,288,289,290,291,424,428],$VS4=[2,4,5,72,74,76,77,78,112,115,116,118,122,123,124,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,185,187,244,245,284,285,286,287,288,289,290,291,424,428],$VT4=[2,1090],$VU4=[2,4,5,72,74,76,77,112,115,116,118,122,123,124,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,185,187,244,245,284,285,286,287,288,289,290,291,424,428],$VV4=[1,1257],$VW4=[10,74,78,128,310,312,314,468,606,767],$VX4=[115,116,124],$VY4=[2,589],$VZ4=[1,1286],$V_4=[76,139],$V$4=[2,729],$V05=[1,1303],$V15=[1,1304],$V25=[2,4,5,10,53,72,76,89,124,146,156,189,230,270,271,293,310,314,339,342,343,400,404,405,408,410,412,413,421,422,438,440,441,443,444,445,446,447,451,452,455,456,509,511,512,521,606,767],$V35=[2,333],$V45=[1,1328],$V55=[1,1342],$V65=[1,1344],$V75=[2,492],$V85=[74,78],$V95=[10,310,312,314,468,606,767],$Va5=[10,72,78,118,162,168,169,232,249,251,310,314,606,767],$Vb5=[1,1360],$Vc5=[1,1364],$Vd5=[1,1365],$Ve5=[1,1367],$Vf5=[1,1368],$Vg5=[1,1369],$Vh5=[1,1370],$Vi5=[1,1371],$Vj5=[1,1372],$Vk5=[1,1373],$Vl5=[1,1374],$Vm5=[10,72,74,78,93,98,118,128,162,168,169,206,208,222,223,224,225,226,227,228,229,232,249,251,310,314,606,767],$Vn5=[1,1399],$Vo5=[10,72,78,118,162,168,169,249,251,310,314,606,767],$Vp5=[10,72,78,93,98,118,128,162,168,169,206,208,222,223,224,225,226,227,228,229,232,249,251,310,314,606,767],$Vq5=[1,1497],$Vr5=[1,1499],$Vs5=[2,4,5,77,143,145,152,156,181,293,294,295,296,297,306,424,428],$Vt5=[1,1513],$Vu5=[10,72,74,78,162,168,169,249,251,310,314,606,767],$Vv5=[1,1531],$Vw5=[1,1533],$Vx5=[1,1534],$Vy5=[1,1530],$Vz5=[1,1529],$VA5=[1,1528],$VB5=[1,1535],$VC5=[1,1525],$VD5=[1,1526],$VE5=[1,1527],$VF5=[1,1553],$VG5=[2,4,5,10,53,72,89,124,146,156,189,270,271,293,310,314,339,342,343,400,404,405,408,410,412,413,421,422,438,440,441,443,444,445,446,447,451,452,455,456,509,511,512,521,606,767],$VH5=[1,1564],$VI5=[1,1572],$VJ5=[1,1571],$VK5=[10,72,78,162,168,169,249,251,310,314,606,767],$VL5=[10,72,78,93,98,118,128,162,168,169,206,208,222,223,224,225,226,227,228,229,230,231,232,249,251,310,314,606,767],$VM5=[2,4,5,10,72,78,93,98,118,128,162,168,169,206,208,222,223,224,225,226,227,228,229,230,231,232,249,251,310,314,606,767],$VN5=[1,1632],$VO5=[1,1634],$VP5=[1,1631],$VQ5=[1,1633],$VR5=[187,193,372,373,374,377],$VS5=[2,520],$VT5=[1,1639],$VU5=[1,1658],$VV5=[10,72,78,162,168,169,310,314,606,767],$VW5=[1,1668],$VX5=[1,1669],$VY5=[1,1670],$VZ5=[1,1691],$V_5=[4,10,247,310,314,347,360,606,767],$V$5=[1,1739],$V06=[10,72,74,78,118,162,168,169,239,249,251,310,314,606,767],$V16=[2,4,5,77],$V26=[1,1833],$V36=[1,1845],$V46=[1,1864],$V56=[10,72,78,162,168,169,310,314,419,606,767],$V66=[10,74,78,230,310,314,606,767];\nvar parser = {trace: function trace () { },\nyy: {},\nsymbols_: {\"error\":2,\"Literal\":3,\"LITERAL\":4,\"BRALITERAL\":5,\"NonReserved\":6,\"LiteralWithSpaces\":7,\"main\":8,\"Statements\":9,\"EOF\":10,\"Statements_group0\":11,\"AStatement\":12,\"ExplainStatement\":13,\"EXPLAIN\":14,\"QUERY\":15,\"PLAN\":16,\"Statement\":17,\"AlterTable\":18,\"AttachDatabase\":19,\"Call\":20,\"CreateDatabase\":21,\"CreateIndex\":22,\"CreateGraph\":23,\"CreateTable\":24,\"CreateView\":25,\"CreateEdge\":26,\"CreateVertex\":27,\"Declare\":28,\"Delete\":29,\"DetachDatabase\":30,\"DropDatabase\":31,\"DropIndex\":32,\"DropTable\":33,\"DropView\":34,\"If\":35,\"Insert\":36,\"Merge\":37,\"Reindex\":38,\"RenameTable\":39,\"Select\":40,\"ShowCreateTable\":41,\"ShowColumns\":42,\"ShowDatabases\":43,\"ShowIndex\":44,\"ShowTables\":45,\"TruncateTable\":46,\"WithSelect\":47,\"CreateTrigger\":48,\"DropTrigger\":49,\"BeginTransaction\":50,\"CommitTransaction\":51,\"RollbackTransaction\":52,\"EndTransaction\":53,\"UseDatabase\":54,\"Update\":55,\"JavaScript\":56,\"Source\":57,\"Assert\":58,\"While\":59,\"Continue\":60,\"Break\":61,\"BeginEnd\":62,\"Print\":63,\"Require\":64,\"SetVariable\":65,\"ExpressionStatement\":66,\"AddRule\":67,\"Query\":68,\"Echo\":69,\"CreateFunction\":70,\"CreateAggregate\":71,\"WITH\":72,\"WithTablesList\":73,\"COMMA\":74,\"WithTable\":75,\"AS\":76,\"LPAR\":77,\"RPAR\":78,\"SelectClause\":79,\"Select_option0\":80,\"IntoClause\":81,\"FromClause\":82,\"Select_option1\":83,\"WhereClause\":84,\"GroupClause\":85,\"OrderClause\":86,\"LimitClause\":87,\"UnionClause\":88,\"SEARCH\":89,\"Select_repetition0\":90,\"Select_option2\":91,\"PivotClause\":92,\"PIVOT\":93,\"Expression\":94,\"FOR\":95,\"PivotClause_option0\":96,\"PivotClause_option1\":97,\"UNPIVOT\":98,\"IN\":99,\"ColumnsList\":100,\"PivotClause_option2\":101,\"PivotClause2\":102,\"AsList\":103,\"AsLiteral\":104,\"AsPart\":105,\"RemoveClause\":106,\"REMOVE\":107,\"RemoveClause_option0\":108,\"RemoveColumnsList\":109,\"RemoveColumn\":110,\"Column\":111,\"LIKE\":112,\"StringValue\":113,\"ArrowDot\":114,\"ARROW\":115,\"DOT\":116,\"SearchSelector\":117,\"ORDER\":118,\"BY\":119,\"OrderExpressionsList\":120,\"SearchSelector_option0\":121,\"DOTDOT\":122,\"CARET\":123,\"EQ\":124,\"SearchSelector_repetition_plus0\":125,\"SearchSelector_repetition_plus1\":126,\"SearchSelector_option1\":127,\"WHERE\":128,\"OF\":129,\"CLASS\":130,\"NUMBER\":131,\"STRING\":132,\"SLASH\":133,\"VERTEX\":134,\"EDGE\":135,\"EXCLAMATION\":136,\"SHARP\":137,\"MODULO\":138,\"GT\":139,\"LT\":140,\"GTGT\":141,\"LTLT\":142,\"DOLLAR\":143,\"Json\":144,\"AT\":145,\"SET\":146,\"SetColumnsList\":147,\"TO\":148,\"VALUE\":149,\"ROW\":150,\"ExprList\":151,\"COLON\":152,\"PlusStar\":153,\"NOT\":154,\"SearchSelector_repetition2\":155,\"IF\":156,\"SearchSelector_repetition3\":157,\"Aggregator\":158,\"SearchSelector_repetition4\":159,\"SearchSelector_group0\":160,\"SearchSelector_repetition5\":161,\"UNION\":162,\"SearchSelectorList\":163,\"ALL\":164,\"SearchSelector_repetition6\":165,\"ANY\":166,\"SearchSelector_repetition7\":167,\"INTERSECT\":168,\"EXCEPT\":169,\"AND\":170,\"OR\":171,\"PATH\":172,\"RETURN\":173,\"ResultColumns\":174,\"REPEAT\":175,\"SearchSelector_repetition8\":176,\"SearchSelectorList_repetition0\":177,\"SearchSelectorList_repetition1\":178,\"PLUS\":179,\"STAR\":180,\"QUESTION\":181,\"SearchFrom\":182,\"FROM\":183,\"SelectModifier\":184,\"DISTINCT\":185,\"TopClause\":186,\"UNIQUE\":187,\"SelectClause_option0\":188,\"SELECT\":189,\"COLUMN\":190,\"MATRIX\":191,\"TEXTSTRING\":192,\"INDEX\":193,\"RECORDSET\":194,\"TOP\":195,\"NumValue\":196,\"TopClause_option0\":197,\"INTO\":198,\"Table\":199,\"FuncValue\":200,\"ParamValue\":201,\"VarValue\":202,\"FromTablesList\":203,\"JoinTablesList\":204,\"ApplyClause\":205,\"CROSS\":206,\"APPLY\":207,\"OUTER\":208,\"FromTable\":209,\"FromTable_option0\":210,\"FromTable_option1\":211,\"INDEXED\":212,\"INSERTED\":213,\"FromString\":214,\"JoinTable\":215,\"JoinMode\":216,\"JoinTableAs\":217,\"OnClause\":218,\"JoinTableAs_option0\":219,\"JoinTableAs_option1\":220,\"JoinModeMode\":221,\"NATURAL\":222,\"JOIN\":223,\"INNER\":224,\"LEFT\":225,\"RIGHT\":226,\"FULL\":227,\"SEMI\":228,\"ANTI\":229,\"ON\":230,\"USING\":231,\"GROUP\":232,\"GroupExpressionsList\":233,\"HavingClause\":234,\"GroupExpression\":235,\"GROUPING\":236,\"ROLLUP\":237,\"CUBE\":238,\"HAVING\":239,\"CORRESPONDING\":240,\"OrderExpression\":241,\"NullsOrder\":242,\"NULLS\":243,\"FIRST\":244,\"LAST\":245,\"DIRECTION\":246,\"COLLATE\":247,\"NOCASE\":248,\"LIMIT\":249,\"OffsetClause\":250,\"OFFSET\":251,\"LimitClause_option0\":252,\"FETCH\":253,\"LimitClause_option1\":254,\"LimitClause_option2\":255,\"LimitClause_option3\":256,\"ResultColumn\":257,\"Star\":258,\"AggrValue\":259,\"Op\":260,\"LogicValue\":261,\"NullValue\":262,\"ExistsValue\":263,\"CaseValue\":264,\"CastClause\":265,\"ArrayValue\":266,\"NewClause\":267,\"Expression_group0\":268,\"CURRENT_TIMESTAMP\":269,\"JAVASCRIPT\":270,\"CREATE\":271,\"FUNCTION\":272,\"AGGREGATE\":273,\"NEW\":274,\"CAST\":275,\"ColumnType\":276,\"CONVERT\":277,\"PrimitiveValue\":278,\"OverClause\":279,\"OVER\":280,\"OverPartitionClause\":281,\"OverOrderByClause\":282,\"PARTITION\":283,\"SUM\":284,\"TOTAL\":285,\"COUNT\":286,\"MIN\":287,\"MAX\":288,\"AVG\":289,\"AGGR\":290,\"ARRAY\":291,\"FuncValue_option0\":292,\"REPLACE\":293,\"DATEADD\":294,\"DATEDIFF\":295,\"TIMESTAMPDIFF\":296,\"INTERVAL\":297,\"TRUE\":298,\"FALSE\":299,\"NSTRING\":300,\"NULL\":301,\"EXISTS\":302,\"ARRAYLBRA\":303,\"RBRA\":304,\"ParamValue_group0\":305,\"BRAQUESTION\":306,\"CASE\":307,\"WhensList\":308,\"ElseClause\":309,\"END\":310,\"When\":311,\"WHEN\":312,\"THEN\":313,\"ELSE\":314,\"REGEXP\":315,\"TILDA\":316,\"GLOB\":317,\"ESCAPE\":318,\"NOT_LIKE\":319,\"BARBAR\":320,\"MINUS\":321,\"AMPERSAND\":322,\"BAR\":323,\"GE\":324,\"LE\":325,\"EQEQ\":326,\"EQEQEQ\":327,\"NE\":328,\"NEEQEQ\":329,\"NEEQEQEQ\":330,\"CondOp\":331,\"AllSome\":332,\"ColFunc\":333,\"BETWEEN\":334,\"NOT_BETWEEN\":335,\"IS\":336,\"DOUBLECOLON\":337,\"SOME\":338,\"UPDATE\":339,\"SetColumn\":340,\"SetColumn_group0\":341,\"DELETE\":342,\"INSERT\":343,\"Into\":344,\"Values\":345,\"ValuesListsList\":346,\"DEFAULT\":347,\"VALUES\":348,\"ValuesList\":349,\"Value\":350,\"DateValue\":351,\"TemporaryClause\":352,\"TableClass\":353,\"IfNotExists\":354,\"CreateTableDefClause\":355,\"CreateTableOptionsClause\":356,\"TABLE\":357,\"CreateTableOptions\":358,\"CreateTableOption\":359,\"IDENTITY\":360,\"TEMP\":361,\"ColumnDefsList\":362,\"ConstraintsList\":363,\"Constraint\":364,\"ConstraintName\":365,\"PrimaryKey\":366,\"ForeignKey\":367,\"UniqueKey\":368,\"IndexKey\":369,\"Check\":370,\"CONSTRAINT\":371,\"CHECK\":372,\"PRIMARY\":373,\"KEY\":374,\"PrimaryKey_option0\":375,\"ColsList\":376,\"FOREIGN\":377,\"REFERENCES\":378,\"ForeignKey_option0\":379,\"OnForeignKeyClause\":380,\"ParColsList\":381,\"OnDeleteClause\":382,\"OnUpdateClause\":383,\"NO\":384,\"ACTION\":385,\"UniqueKey_option0\":386,\"UniqueKey_option1\":387,\"ColumnDef\":388,\"ColumnConstraintsClause\":389,\"ColumnConstraints\":390,\"SingularColumnType\":391,\"NumberMax\":392,\"ENUM\":393,\"MAXNUM\":394,\"ColumnConstraintsList\":395,\"ColumnConstraint\":396,\"ParLiteral\":397,\"ColumnConstraint_option0\":398,\"ColumnConstraint_option1\":399,\"DROP\":400,\"DropTable_group0\":401,\"IfExists\":402,\"TablesList\":403,\"ALTER\":404,\"RENAME\":405,\"ADD\":406,\"MODIFY\":407,\"ATTACH\":408,\"DATABASE\":409,\"DETACH\":410,\"AsClause\":411,\"USE\":412,\"SHOW\":413,\"VIEW\":414,\"CreateView_option0\":415,\"CreateView_option1\":416,\"SubqueryRestriction\":417,\"READ\":418,\"ONLY\":419,\"OPTION\":420,\"SOURCE\":421,\"ASSERT\":422,\"JsonObject\":423,\"ATLBRA\":424,\"JsonArray\":425,\"JsonValue\":426,\"JsonPrimitiveValue\":427,\"LCUR\":428,\"JsonPropertiesList\":429,\"RCUR\":430,\"JsonElementsList\":431,\"JsonProperty\":432,\"OnOff\":433,\"SetPropsList\":434,\"AtDollar\":435,\"SetProp\":436,\"OFF\":437,\"COMMIT\":438,\"TRANSACTION\":439,\"ROLLBACK\":440,\"BEGIN\":441,\"ElseStatement\":442,\"WHILE\":443,\"CONTINUE\":444,\"BREAK\":445,\"PRINT\":446,\"REQUIRE\":447,\"StringValuesList\":448,\"PluginsList\":449,\"Plugin\":450,\"ECHO\":451,\"DECLARE\":452,\"DeclaresList\":453,\"DeclareItem\":454,\"TRUNCATE\":455,\"MERGE\":456,\"MergeInto\":457,\"MergeUsing\":458,\"MergeOn\":459,\"MergeMatchedList\":460,\"OutputClause\":461,\"MergeMatched\":462,\"MergeNotMatched\":463,\"MATCHED\":464,\"MergeMatchedAction\":465,\"MergeNotMatchedAction\":466,\"TARGET\":467,\"OUTPUT\":468,\"CreateVertex_option0\":469,\"CreateVertex_option1\":470,\"CreateVertex_option2\":471,\"CreateVertexSet\":472,\"SharpValue\":473,\"CONTENT\":474,\"CreateEdge_option0\":475,\"GRAPH\":476,\"GraphList\":477,\"GraphVertexEdge\":478,\"GraphElement\":479,\"GraphVertexEdge_option0\":480,\"GraphVertexEdge_option1\":481,\"GraphElementVar\":482,\"GraphVertexEdge_option2\":483,\"GraphVertexEdge_option3\":484,\"GraphVertexEdge_option4\":485,\"GraphVar\":486,\"GraphAsClause\":487,\"GraphAtClause\":488,\"GraphElement2\":489,\"GraphElement2_option0\":490,\"GraphElement2_option1\":491,\"GraphElement2_option2\":492,\"GraphElement2_option3\":493,\"GraphElement_option0\":494,\"GraphElement_option1\":495,\"GraphElement_option2\":496,\"SharpLiteral\":497,\"GraphElement_option3\":498,\"GraphElement_option4\":499,\"GraphElement_option5\":500,\"ColonLiteral\":501,\"DeleteVertex\":502,\"DeleteVertex_option0\":503,\"DeleteEdge\":504,\"DeleteEdge_option0\":505,\"DeleteEdge_option1\":506,\"DeleteEdge_option2\":507,\"Term\":508,\"COLONDASH\":509,\"TermsList\":510,\"QUESTIONDASH\":511,\"CALL\":512,\"TRIGGER\":513,\"BeforeAfter\":514,\"InsertDeleteUpdate\":515,\"CreateTrigger_option0\":516,\"CreateTrigger_option1\":517,\"BEFORE\":518,\"AFTER\":519,\"INSTEAD\":520,\"REINDEX\":521,\"A\":522,\"ABSENT\":523,\"ABSOLUTE\":524,\"ACCORDING\":525,\"ADA\":526,\"ADMIN\":527,\"ALWAYS\":528,\"ASC\":529,\"ASSERTION\":530,\"ASSIGNMENT\":531,\"ATTRIBUTE\":532,\"ATTRIBUTES\":533,\"BASE64\":534,\"BERNOULLI\":535,\"BLOCKED\":536,\"BOM\":537,\"BREADTH\":538,\"C\":539,\"CASCADE\":540,\"CATALOG\":541,\"CATALOG_NAME\":542,\"CHAIN\":543,\"CHARACTERISTICS\":544,\"CHARACTERS\":545,\"CHARACTER_SET_CATALOG\":546,\"CHARACTER_SET_NAME\":547,\"CHARACTER_SET_SCHEMA\":548,\"CLASS_ORIGIN\":549,\"COBOL\":550,\"COLLATION\":551,\"COLLATION_CATALOG\":552,\"COLLATION_NAME\":553,\"COLLATION_SCHEMA\":554,\"COLUMNS\":555,\"COLUMN_NAME\":556,\"COMMAND_FUNCTION\":557,\"COMMAND_FUNCTION_CODE\":558,\"COMMITTED\":559,\"CONDITION_NUMBER\":560,\"CONNECTION\":561,\"CONNECTION_NAME\":562,\"CONSTRAINTS\":563,\"CONSTRAINT_CATALOG\":564,\"CONSTRAINT_NAME\":565,\"CONSTRAINT_SCHEMA\":566,\"CONSTRUCTOR\":567,\"CONTROL\":568,\"CURSOR_NAME\":569,\"DATA\":570,\"DATETIME_INTERVAL_CODE\":571,\"DATETIME_INTERVAL_PRECISION\":572,\"DB\":573,\"DEFAULTS\":574,\"DEFERRABLE\":575,\"DEFERRED\":576,\"DEFINED\":577,\"DEFINER\":578,\"DEGREE\":579,\"DEPTH\":580,\"DERIVED\":581,\"DESC\":582,\"DESCRIPTOR\":583,\"DIAGNOSTICS\":584,\"DISPATCH\":585,\"DOCUMENT\":586,\"DOMAIN\":587,\"DYNAMIC_FUNCTION\":588,\"DYNAMIC_FUNCTION_CODE\":589,\"EMPTY\":590,\"ENCODING\":591,\"ENFORCED\":592,\"EXCLUDE\":593,\"EXCLUDING\":594,\"EXPRESSION\":595,\"FILE\":596,\"FINAL\":597,\"FLAG\":598,\"FOLLOWING\":599,\"FORTRAN\":600,\"FOUND\":601,\"FS\":602,\"G\":603,\"GENERAL\":604,\"GENERATED\":605,\"GO\":606,\"GOTO\":607,\"GRANTED\":608,\"HEX\":609,\"HIERARCHY\":610,\"ID\":611,\"IGNORE\":612,\"IMMEDIATE\":613,\"IMMEDIATELY\":614,\"IMPLEMENTATION\":615,\"INCLUDING\":616,\"INCREMENT\":617,\"INDENT\":618,\"INITIALLY\":619,\"INPUT\":620,\"INSTANCE\":621,\"INSTANTIABLE\":622,\"INTEGRITY\":623,\"INVOKER\":624,\"ISOLATION\":625,\"K\":626,\"KEY_MEMBER\":627,\"KEY_TYPE\":628,\"LENGTH\":629,\"LEVEL\":630,\"LIBRARY\":631,\"LINK\":632,\"LOCATION\":633,\"LOCATOR\":634,\"M\":635,\"MAP\":636,\"MAPPING\":637,\"MAXVALUE\":638,\"MESSAGE_LENGTH\":639,\"MESSAGE_OCTET_LENGTH\":640,\"MESSAGE_TEXT\":641,\"MINVALUE\":642,\"MORE\":643,\"MUMPS\":644,\"NAME\":645,\"NAMES\":646,\"NAMESPACE\":647,\"NESTING\":648,\"NEXT\":649,\"NFC\":650,\"NFD\":651,\"NFKC\":652,\"NFKD\":653,\"NIL\":654,\"NORMALIZED\":655,\"NULLABLE\":656,\"OBJECT\":657,\"OCTETS\":658,\"OPTIONS\":659,\"ORDERING\":660,\"ORDINALITY\":661,\"OTHERS\":662,\"OVERRIDING\":663,\"P\":664,\"PAD\":665,\"PARAMETER_MODE\":666,\"PARAMETER_NAME\":667,\"PARAMETER_ORDINAL_POSITION\":668,\"PARAMETER_SPECIFIC_CATALOG\":669,\"PARAMETER_SPECIFIC_NAME\":670,\"PARAMETER_SPECIFIC_SCHEMA\":671,\"PARTIAL\":672,\"PASCAL\":673,\"PASSING\":674,\"PASSTHROUGH\":675,\"PERMISSION\":676,\"PLACING\":677,\"PLI\":678,\"PRECEDING\":679,\"PRESERVE\":680,\"PRIOR\":681,\"PRIVILEGES\":682,\"PUBLIC\":683,\"RECOVERY\":684,\"RELATIVE\":685,\"REPEATABLE\":686,\"REQUIRING\":687,\"RESPECT\":688,\"RESTART\":689,\"RESTORE\":690,\"RESTRICT\":691,\"RETURNED_CARDINALITY\":692,\"RETURNED_LENGTH\":693,\"RETURNED_OCTET_LENGTH\":694,\"RETURNED_SQLSTATE\":695,\"RETURNING\":696,\"ROLE\":697,\"ROUTINE\":698,\"ROUTINE_CATALOG\":699,\"ROUTINE_NAME\":700,\"ROUTINE_SCHEMA\":701,\"ROW_COUNT\":702,\"SCALE\":703,\"SCHEMA\":704,\"SCHEMA_NAME\":705,\"SCOPE_CATALOG\":706,\"SCOPE_NAME\":707,\"SCOPE_SCHEMA\":708,\"SECTION\":709,\"SECURITY\":710,\"SELECTIVE\":711,\"SELF\":712,\"SEQUENCE\":713,\"SERIALIZABLE\":714,\"SERVER\":715,\"SERVER_NAME\":716,\"SESSION\":717,\"SETS\":718,\"SIMPLE\":719,\"SIZE\":720,\"SPACE\":721,\"SPECIFIC_NAME\":722,\"STANDALONE\":723,\"STATE\":724,\"STATEMENT\":725,\"STRIP\":726,\"STRUCTURE\":727,\"STYLE\":728,\"SUBCLASS_ORIGIN\":729,\"T\":730,\"TABLE_NAME\":731,\"TEMPORARY\":732,\"TIES\":733,\"TOKEN\":734,\"TOP_LEVEL_COUNT\":735,\"TRANSACTIONS_COMMITTED\":736,\"TRANSACTIONS_ROLLED_BACK\":737,\"TRANSACTION_ACTIVE\":738,\"TRANSFORM\":739,\"TRANSFORMS\":740,\"TRIGGER_CATALOG\":741,\"TRIGGER_NAME\":742,\"TRIGGER_SCHEMA\":743,\"TYPE\":744,\"UNBOUNDED\":745,\"UNCOMMITTED\":746,\"UNDER\":747,\"UNLINK\":748,\"UNNAMED\":749,\"UNTYPED\":750,\"URI\":751,\"USAGE\":752,\"USER_DEFINED_TYPE_CATALOG\":753,\"USER_DEFINED_TYPE_CODE\":754,\"USER_DEFINED_TYPE_NAME\":755,\"USER_DEFINED_TYPE_SCHEMA\":756,\"VALID\":757,\"VERSION\":758,\"WHITESPACE\":759,\"WORK\":760,\"WRAPPER\":761,\"WRITE\":762,\"XMLDECLARATION\":763,\"XMLSCHEMA\":764,\"YES\":765,\"ZONE\":766,\"SEMICOLON\":767,\"PERCENT\":768,\"ROWS\":769,\"FuncValue_option0_group0\":770,\"$accept\":0,\"$end\":1},\nterminals_: {2:\"error\",4:\"LITERAL\",5:\"BRALITERAL\",10:\"EOF\",14:\"EXPLAIN\",15:\"QUERY\",16:\"PLAN\",53:\"EndTransaction\",72:\"WITH\",74:\"COMMA\",76:\"AS\",77:\"LPAR\",78:\"RPAR\",89:\"SEARCH\",93:\"PIVOT\",95:\"FOR\",98:\"UNPIVOT\",99:\"IN\",107:\"REMOVE\",112:\"LIKE\",115:\"ARROW\",116:\"DOT\",118:\"ORDER\",119:\"BY\",122:\"DOTDOT\",123:\"CARET\",124:\"EQ\",128:\"WHERE\",129:\"OF\",130:\"CLASS\",131:\"NUMBER\",132:\"STRING\",133:\"SLASH\",134:\"VERTEX\",135:\"EDGE\",136:\"EXCLAMATION\",137:\"SHARP\",138:\"MODULO\",139:\"GT\",140:\"LT\",141:\"GTGT\",142:\"LTLT\",143:\"DOLLAR\",145:\"AT\",146:\"SET\",148:\"TO\",149:\"VALUE\",150:\"ROW\",152:\"COLON\",154:\"NOT\",156:\"IF\",162:\"UNION\",164:\"ALL\",166:\"ANY\",168:\"INTERSECT\",169:\"EXCEPT\",170:\"AND\",171:\"OR\",172:\"PATH\",173:\"RETURN\",175:\"REPEAT\",179:\"PLUS\",180:\"STAR\",181:\"QUESTION\",183:\"FROM\",185:\"DISTINCT\",187:\"UNIQUE\",189:\"SELECT\",190:\"COLUMN\",191:\"MATRIX\",192:\"TEXTSTRING\",193:\"INDEX\",194:\"RECORDSET\",195:\"TOP\",198:\"INTO\",206:\"CROSS\",207:\"APPLY\",208:\"OUTER\",212:\"INDEXED\",213:\"INSERTED\",222:\"NATURAL\",223:\"JOIN\",224:\"INNER\",225:\"LEFT\",226:\"RIGHT\",227:\"FULL\",228:\"SEMI\",229:\"ANTI\",230:\"ON\",231:\"USING\",232:\"GROUP\",236:\"GROUPING\",237:\"ROLLUP\",238:\"CUBE\",239:\"HAVING\",240:\"CORRESPONDING\",243:\"NULLS\",244:\"FIRST\",245:\"LAST\",246:\"DIRECTION\",247:\"COLLATE\",248:\"NOCASE\",249:\"LIMIT\",251:\"OFFSET\",253:\"FETCH\",269:\"CURRENT_TIMESTAMP\",270:\"JAVASCRIPT\",271:\"CREATE\",272:\"FUNCTION\",273:\"AGGREGATE\",274:\"NEW\",275:\"CAST\",277:\"CONVERT\",280:\"OVER\",283:\"PARTITION\",284:\"SUM\",285:\"TOTAL\",286:\"COUNT\",287:\"MIN\",288:\"MAX\",289:\"AVG\",290:\"AGGR\",291:\"ARRAY\",293:\"REPLACE\",294:\"DATEADD\",295:\"DATEDIFF\",296:\"TIMESTAMPDIFF\",297:\"INTERVAL\",298:\"TRUE\",299:\"FALSE\",300:\"NSTRING\",301:\"NULL\",302:\"EXISTS\",303:\"ARRAYLBRA\",304:\"RBRA\",306:\"BRAQUESTION\",307:\"CASE\",310:\"END\",312:\"WHEN\",313:\"THEN\",314:\"ELSE\",315:\"REGEXP\",316:\"TILDA\",317:\"GLOB\",318:\"ESCAPE\",319:\"NOT_LIKE\",320:\"BARBAR\",321:\"MINUS\",322:\"AMPERSAND\",323:\"BAR\",324:\"GE\",325:\"LE\",326:\"EQEQ\",327:\"EQEQEQ\",328:\"NE\",329:\"NEEQEQ\",330:\"NEEQEQEQ\",334:\"BETWEEN\",335:\"NOT_BETWEEN\",336:\"IS\",337:\"DOUBLECOLON\",338:\"SOME\",339:\"UPDATE\",342:\"DELETE\",343:\"INSERT\",347:\"DEFAULT\",348:\"VALUES\",351:\"DateValue\",357:\"TABLE\",360:\"IDENTITY\",361:\"TEMP\",371:\"CONSTRAINT\",372:\"CHECK\",373:\"PRIMARY\",374:\"KEY\",377:\"FOREIGN\",378:\"REFERENCES\",384:\"NO\",385:\"ACTION\",390:\"ColumnConstraints\",393:\"ENUM\",394:\"MAXNUM\",400:\"DROP\",404:\"ALTER\",405:\"RENAME\",406:\"ADD\",407:\"MODIFY\",408:\"ATTACH\",409:\"DATABASE\",410:\"DETACH\",412:\"USE\",413:\"SHOW\",414:\"VIEW\",418:\"READ\",419:\"ONLY\",420:\"OPTION\",421:\"SOURCE\",422:\"ASSERT\",424:\"ATLBRA\",428:\"LCUR\",430:\"RCUR\",437:\"OFF\",438:\"COMMIT\",439:\"TRANSACTION\",440:\"ROLLBACK\",441:\"BEGIN\",443:\"WHILE\",444:\"CONTINUE\",445:\"BREAK\",446:\"PRINT\",447:\"REQUIRE\",451:\"ECHO\",452:\"DECLARE\",455:\"TRUNCATE\",456:\"MERGE\",464:\"MATCHED\",467:\"TARGET\",468:\"OUTPUT\",474:\"CONTENT\",476:\"GRAPH\",509:\"COLONDASH\",511:\"QUESTIONDASH\",512:\"CALL\",513:\"TRIGGER\",518:\"BEFORE\",519:\"AFTER\",520:\"INSTEAD\",521:\"REINDEX\",522:\"A\",523:\"ABSENT\",524:\"ABSOLUTE\",525:\"ACCORDING\",526:\"ADA\",527:\"ADMIN\",528:\"ALWAYS\",529:\"ASC\",530:\"ASSERTION\",531:\"ASSIGNMENT\",532:\"ATTRIBUTE\",533:\"ATTRIBUTES\",534:\"BASE64\",535:\"BERNOULLI\",536:\"BLOCKED\",537:\"BOM\",538:\"BREADTH\",539:\"C\",540:\"CASCADE\",541:\"CATALOG\",542:\"CATALOG_NAME\",543:\"CHAIN\",544:\"CHARACTERISTICS\",545:\"CHARACTERS\",546:\"CHARACTER_SET_CATALOG\",547:\"CHARACTER_SET_NAME\",548:\"CHARACTER_SET_SCHEMA\",549:\"CLASS_ORIGIN\",550:\"COBOL\",551:\"COLLATION\",552:\"COLLATION_CATALOG\",553:\"COLLATION_NAME\",554:\"COLLATION_SCHEMA\",555:\"COLUMNS\",556:\"COLUMN_NAME\",557:\"COMMAND_FUNCTION\",558:\"COMMAND_FUNCTION_CODE\",559:\"COMMITTED\",560:\"CONDITION_NUMBER\",561:\"CONNECTION\",562:\"CONNECTION_NAME\",563:\"CONSTRAINTS\",564:\"CONSTRAINT_CATALOG\",565:\"CONSTRAINT_NAME\",566:\"CONSTRAINT_SCHEMA\",567:\"CONSTRUCTOR\",568:\"CONTROL\",569:\"CURSOR_NAME\",570:\"DATA\",571:\"DATETIME_INTERVAL_CODE\",572:\"DATETIME_INTERVAL_PRECISION\",573:\"DB\",574:\"DEFAULTS\",575:\"DEFERRABLE\",576:\"DEFERRED\",577:\"DEFINED\",578:\"DEFINER\",579:\"DEGREE\",580:\"DEPTH\",581:\"DERIVED\",582:\"DESC\",583:\"DESCRIPTOR\",584:\"DIAGNOSTICS\",585:\"DISPATCH\",586:\"DOCUMENT\",587:\"DOMAIN\",588:\"DYNAMIC_FUNCTION\",589:\"DYNAMIC_FUNCTION_CODE\",590:\"EMPTY\",591:\"ENCODING\",592:\"ENFORCED\",593:\"EXCLUDE\",594:\"EXCLUDING\",595:\"EXPRESSION\",596:\"FILE\",597:\"FINAL\",598:\"FLAG\",599:\"FOLLOWING\",600:\"FORTRAN\",601:\"FOUND\",602:\"FS\",603:\"G\",604:\"GENERAL\",605:\"GENERATED\",606:\"GO\",607:\"GOTO\",608:\"GRANTED\",609:\"HEX\",610:\"HIERARCHY\",611:\"ID\",612:\"IGNORE\",613:\"IMMEDIATE\",614:\"IMMEDIATELY\",615:\"IMPLEMENTATION\",616:\"INCLUDING\",617:\"INCREMENT\",618:\"INDENT\",619:\"INITIALLY\",620:\"INPUT\",621:\"INSTANCE\",622:\"INSTANTIABLE\",623:\"INTEGRITY\",624:\"INVOKER\",625:\"ISOLATION\",626:\"K\",627:\"KEY_MEMBER\",628:\"KEY_TYPE\",629:\"LENGTH\",630:\"LEVEL\",631:\"LIBRARY\",632:\"LINK\",633:\"LOCATION\",634:\"LOCATOR\",635:\"M\",636:\"MAP\",637:\"MAPPING\",638:\"MAXVALUE\",639:\"MESSAGE_LENGTH\",640:\"MESSAGE_OCTET_LENGTH\",641:\"MESSAGE_TEXT\",642:\"MINVALUE\",643:\"MORE\",644:\"MUMPS\",645:\"NAME\",646:\"NAMES\",647:\"NAMESPACE\",648:\"NESTING\",649:\"NEXT\",650:\"NFC\",651:\"NFD\",652:\"NFKC\",653:\"NFKD\",654:\"NIL\",655:\"NORMALIZED\",656:\"NULLABLE\",657:\"OBJECT\",658:\"OCTETS\",659:\"OPTIONS\",660:\"ORDERING\",661:\"ORDINALITY\",662:\"OTHERS\",663:\"OVERRIDING\",664:\"P\",665:\"PAD\",666:\"PARAMETER_MODE\",667:\"PARAMETER_NAME\",668:\"PARAMETER_ORDINAL_POSITION\",669:\"PARAMETER_SPECIFIC_CATALOG\",670:\"PARAMETER_SPECIFIC_NAME\",671:\"PARAMETER_SPECIFIC_SCHEMA\",672:\"PARTIAL\",673:\"PASCAL\",674:\"PASSING\",675:\"PASSTHROUGH\",676:\"PERMISSION\",677:\"PLACING\",678:\"PLI\",679:\"PRECEDING\",680:\"PRESERVE\",681:\"PRIOR\",682:\"PRIVILEGES\",683:\"PUBLIC\",684:\"RECOVERY\",685:\"RELATIVE\",686:\"REPEATABLE\",687:\"REQUIRING\",688:\"RESPECT\",689:\"RESTART\",690:\"RESTORE\",691:\"RESTRICT\",692:\"RETURNED_CARDINALITY\",693:\"RETURNED_LENGTH\",694:\"RETURNED_OCTET_LENGTH\",695:\"RETURNED_SQLSTATE\",696:\"RETURNING\",697:\"ROLE\",698:\"ROUTINE\",699:\"ROUTINE_CATALOG\",700:\"ROUTINE_NAME\",701:\"ROUTINE_SCHEMA\",702:\"ROW_COUNT\",703:\"SCALE\",704:\"SCHEMA\",705:\"SCHEMA_NAME\",706:\"SCOPE_CATALOG\",707:\"SCOPE_NAME\",708:\"SCOPE_SCHEMA\",709:\"SECTION\",710:\"SECURITY\",711:\"SELECTIVE\",712:\"SELF\",713:\"SEQUENCE\",714:\"SERIALIZABLE\",715:\"SERVER\",716:\"SERVER_NAME\",717:\"SESSION\",718:\"SETS\",719:\"SIMPLE\",720:\"SIZE\",721:\"SPACE\",722:\"SPECIFIC_NAME\",723:\"STANDALONE\",724:\"STATE\",725:\"STATEMENT\",726:\"STRIP\",727:\"STRUCTURE\",728:\"STYLE\",729:\"SUBCLASS_ORIGIN\",730:\"T\",731:\"TABLE_NAME\",732:\"TEMPORARY\",733:\"TIES\",734:\"TOKEN\",735:\"TOP_LEVEL_COUNT\",736:\"TRANSACTIONS_COMMITTED\",737:\"TRANSACTIONS_ROLLED_BACK\",738:\"TRANSACTION_ACTIVE\",739:\"TRANSFORM\",740:\"TRANSFORMS\",741:\"TRIGGER_CATALOG\",742:\"TRIGGER_NAME\",743:\"TRIGGER_SCHEMA\",744:\"TYPE\",745:\"UNBOUNDED\",746:\"UNCOMMITTED\",747:\"UNDER\",748:\"UNLINK\",749:\"UNNAMED\",750:\"UNTYPED\",751:\"URI\",752:\"USAGE\",753:\"USER_DEFINED_TYPE_CATALOG\",754:\"USER_DEFINED_TYPE_CODE\",755:\"USER_DEFINED_TYPE_NAME\",756:\"USER_DEFINED_TYPE_SCHEMA\",757:\"VALID\",758:\"VERSION\",759:\"WHITESPACE\",760:\"WORK\",761:\"WRAPPER\",762:\"WRITE\",763:\"XMLDECLARATION\",764:\"XMLSCHEMA\",765:\"YES\",766:\"ZONE\",767:\"SEMICOLON\",768:\"PERCENT\",769:\"ROWS\"},\nproductions_: [0,[3,1],[3,1],[3,2],[7,1],[7,2],[8,2],[9,3],[9,1],[9,1],[13,2],[13,4],[12,1],[17,0],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[47,3],[73,3],[73,1],[75,5],[40,10],[40,4],[92,8],[92,11],[102,4],[104,2],[104,1],[103,3],[103,1],[105,1],[105,3],[106,3],[109,3],[109,1],[110,1],[110,2],[114,1],[114,1],[117,1],[117,5],[117,5],[117,1],[117,2],[117,1],[117,2],[117,2],[117,3],[117,4],[117,4],[117,4],[117,4],[117,4],[117,1],[117,1],[117,1],[117,1],[117,1],[117,1],[117,2],[117,2],[117,2],[117,1],[117,1],[117,1],[117,1],[117,1],[117,1],[117,2],[117,3],[117,4],[117,3],[117,1],[117,4],[117,2],[117,2],[117,4],[117,4],[117,4],[117,4],[117,4],[117,5],[117,4],[117,4],[117,4],[117,4],[117,4],[117,4],[117,4],[117,4],[117,6],[163,3],[163,1],[153,1],[153,1],[153,1],[182,2],[79,4],[79,4],[79,4],[79,3],[184,1],[184,2],[184,2],[184,2],[184,2],[184,2],[184,2],[184,2],[186,3],[186,4],[186,0],[81,0],[81,2],[81,2],[81,2],[81,2],[81,2],[82,2],[82,3],[82,5],[82,0],[205,6],[205,7],[205,6],[205,7],[203,1],[203,3],[209,4],[209,5],[209,3],[209,3],[209,2],[209,3],[209,1],[209,3],[209,2],[209,3],[209,1],[209,1],[209,2],[209,3],[209,1],[209,1],[209,2],[209,3],[209,1],[209,2],[209,3],[214,1],[199,3],[199,1],[204,2],[204,2],[204,1],[204,1],[215,3],[217,1],[217,2],[217,3],[217,3],[217,2],[217,3],[217,4],[217,5],[217,1],[217,2],[217,3],[217,1],[217,2],[217,3],[216,1],[216,2],[221,1],[221,2],[221,2],[221,3],[221,2],[221,3],[221,2],[221,3],[221,2],[221,2],[221,2],[218,2],[218,2],[218,0],[84,0],[84,2],[85,0],[85,4],[233,1],[233,3],[235,5],[235,4],[235,4],[235,1],[234,0],[234,2],[88,0],[88,2],[88,3],[88,2],[88,2],[88,3],[88,4],[88,3],[88,3],[86,0],[86,3],[120,1],[120,3],[242,2],[242,2],[241,1],[241,2],[241,3],[241,3],[241,4],[87,0],[87,3],[87,8],[250,0],[250,2],[174,3],[174,1],[257,3],[257,2],[257,3],[257,2],[257,3],[257,2],[257,1],[258,5],[258,3],[258,1],[111,5],[111,3],[111,3],[111,1],[94,1],[94,1],[94,1],[94,1],[94,1],[94,1],[94,1],[94,1],[94,1],[94,1],[94,1],[94,1],[94,1],[94,1],[94,1],[94,1],[94,1],[94,1],[94,3],[94,3],[94,3],[94,1],[94,1],[56,1],[70,5],[71,5],[267,2],[267,2],[265,6],[265,8],[265,6],[265,8],[278,1],[278,1],[278,1],[278,1],[278,1],[278,1],[278,1],[259,5],[259,6],[259,6],[279,0],[279,4],[279,4],[279,5],[281,3],[282,3],[158,1],[158,1],[158,1],[158,1],[158,1],[158,1],[158,1],[158,1],[158,1],[158,1],[200,5],[200,3],[200,4],[200,4],[200,8],[200,8],[200,8],[200,8],[200,8],[200,3],[151,1],[151,3],[196,1],[261,1],[261,1],[113,1],[113,1],[262,1],[202,2],[263,4],[266,3],[201,2],[201,2],[201,1],[201,1],[264,5],[264,4],[308,2],[308,1],[311,4],[309,2],[309,0],[260,3],[260,3],[260,3],[260,3],[260,5],[260,3],[260,5],[260,3],[260,3],[260,3],[260,3],[260,3],[260,3],[260,3],[260,3],[260,3],[260,3],[260,3],[260,3],[260,3],[260,5],[260,3],[260,3],[260,3],[260,5],[260,3],[260,3],[260,3],[260,3],[260,3],[260,3],[260,3],[260,3],[260,3],[260,3],[260,3],[260,6],[260,6],[260,3],[260,3],[260,2],[260,2],[260,2],[260,2],[260,2],[260,3],[260,5],[260,6],[260,5],[260,6],[260,4],[260,5],[260,3],[260,4],[260,3],[260,4],[260,3],[260,3],[260,3],[260,3],[260,3],[333,1],[333,1],[333,4],[331,1],[331,1],[331,1],[331,1],[331,1],[331,1],[332,1],[332,1],[332,1],[55,6],[55,4],[147,1],[147,3],[340,3],[340,4],[29,5],[29,3],[36,5],[36,4],[36,7],[36,6],[36,5],[36,4],[36,5],[36,8],[36,7],[36,4],[36,6],[36,7],[345,1],[345,1],[344,0],[344,1],[346,3],[346,1],[346,1],[346,5],[346,3],[346,3],[349,1],[349,3],[350,1],[350,1],[350,1],[350,1],[350,1],[350,1],[100,1],[100,3],[24,9],[24,5],[353,1],[353,1],[356,0],[356,1],[358,2],[358,1],[359,1],[359,3],[359,3],[359,3],[352,0],[352,1],[354,0],[354,3],[355,3],[355,1],[355,2],[363,1],[363,3],[364,2],[364,2],[364,2],[364,2],[364,2],[365,0],[365,2],[370,4],[366,6],[367,9],[381,3],[380,0],[380,2],[382,4],[383,4],[368,6],[369,5],[369,5],[376,1],[376,1],[376,3],[376,3],[362,1],[362,3],[388,3],[388,2],[388,1],[391,6],[391,4],[391,1],[391,4],[276,2],[276,1],[392,1],[392,1],[389,0],[389,1],[395,2],[395,1],[397,3],[396,2],[396,5],[396,3],[396,6],[396,1],[396,2],[396,4],[396,2],[396,1],[396,2],[396,1],[396,1],[396,3],[396,5],[33,4],[403,3],[403,1],[402,0],[402,2],[18,6],[18,6],[18,6],[18,8],[18,6],[39,5],[19,4],[19,7],[19,6],[19,9],[30,3],[21,4],[21,6],[21,9],[21,6],[411,0],[411,2],[54,3],[54,2],[31,4],[31,5],[31,5],[22,8],[22,9],[32,3],[43,2],[43,4],[43,3],[43,5],[45,2],[45,4],[45,4],[45,6],[42,4],[42,6],[44,4],[44,6],[41,4],[41,6],[25,11],[25,8],[417,3],[417,3],[417,5],[34,4],[66,2],[57,2],[58,2],[58,2],[58,4],[144,4],[144,2],[144,2],[144,2],[144,2],[144,1],[144,2],[144,2],[426,1],[426,1],[427,1],[427,1],[427,1],[427,1],[427,1],[427,1],[427,1],[427,3],[423,3],[423,4],[423,2],[425,2],[425,3],[425,1],[429,3],[429,1],[432,3],[432,3],[432,3],[431,3],[431,1],[65,4],[65,3],[65,4],[65,5],[65,5],[65,6],[435,1],[435,1],[434,3],[434,2],[436,1],[436,1],[436,3],[433,1],[433,1],[51,2],[52,2],[50,2],[35,4],[35,3],[442,2],[59,3],[60,1],[61,1],[62,3],[63,2],[63,2],[64,2],[64,2],[450,1],[450,1],[69,2],[448,3],[448,1],[449,3],[449,1],[28,2],[453,1],[453,3],[454,3],[454,4],[454,5],[454,6],[46,3],[37,6],[457,1],[457,2],[458,2],[459,2],[460,2],[460,2],[460,1],[460,1],[462,4],[462,6],[465,1],[465,3],[463,5],[463,7],[463,7],[463,9],[463,7],[463,9],[466,3],[466,6],[466,3],[466,6],[461,0],[461,2],[461,5],[461,4],[461,7],[27,6],[473,2],[472,0],[472,2],[472,2],[472,1],[26,8],[23,3],[23,4],[477,3],[477,1],[478,3],[478,7],[478,6],[478,3],[478,4],[482,1],[482,1],[486,2],[487,3],[488,2],[489,4],[479,4],[479,3],[479,2],[479,1],[501,2],[497,2],[497,2],[502,4],[504,6],[67,3],[67,2],[510,3],[510,1],[508,1],[508,4],[68,2],[20,2],[48,9],[48,8],[48,9],[514,0],[514,1],[514,1],[514,1],[514,2],[515,1],[515,1],[515,1],[49,3],[38,2],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[11,1],[11,1],[80,0],[80,1],[83,0],[83,1],[90,0],[90,2],[91,0],[91,1],[96,0],[96,1],[97,0],[97,1],[101,0],[101,1],[108,0],[108,1],[121,0],[121,1],[125,1],[125,2],[126,1],[126,2],[127,0],[127,1],[155,0],[155,2],[157,0],[157,2],[159,0],[159,2],[160,1],[160,1],[161,0],[161,2],[165,0],[165,2],[167,0],[167,2],[176,0],[176,2],[177,0],[177,2],[178,0],[178,2],[188,0],[188,1],[197,0],[197,1],[210,0],[210,1],[211,0],[211,1],[219,0],[219,1],[220,0],[220,1],[252,0],[252,1],[254,0],[254,1],[255,0],[255,1],[256,0],[256,1],[268,1],[268,1],[770,1],[770,1],[292,0],[292,1],[305,1],[305,1],[341,1],[341,1],[375,0],[375,1],[379,0],[379,1],[386,0],[386,1],[387,0],[387,1],[398,0],[398,1],[399,0],[399,1],[401,1],[401,1],[415,0],[415,1],[416,0],[416,1],[469,0],[469,1],[470,0],[470,1],[471,0],[471,1],[475,0],[475,1],[480,0],[480,1],[481,0],[481,1],[483,0],[483,1],[484,0],[484,1],[485,0],[485,1],[490,0],[490,1],[491,0],[491,1],[492,0],[492,1],[493,0],[493,1],[494,0],[494,1],[495,0],[495,1],[496,0],[496,1],[498,0],[498,1],[499,0],[499,1],[500,0],[500,1],[503,0],[503,2],[505,0],[505,2],[506,0],[506,2],[507,0],[507,2],[516,0],[516,1],[517,0],[517,1]],\nperformAction: function anonymous(yytext, yyleng, yylineno, yy, yystate /* action[1] */, $$ /* vstack */, _$ /* lstack */) {\n/* this == yyval */\n\nvar $0 = $$.length - 1;\nswitch (yystate) {\ncase 1:\n\n\t\t\tif (alasql.options.casesensitive) this.$ = $$[$0];\r\n\t\t\telse this.$ = $$[$0].toLowerCase();\r\n\nbreak;\ncase 2:\n this.$ = doubleq($$[$0].substr(1,$$[$0].length-2)); \nbreak;\ncase 3:\n this.$ = $$[$0].toLowerCase() \nbreak;\ncase 4:\n this.$ = $$[$0] \nbreak;\ncase 5:\n this.$ = $$[$0] ? $$[$0-1] + ' ' + $$[$0] : $$[$0-1] \nbreak;\ncase 6:\n return new yy.Statements({statements:$$[$0-1]}); \nbreak;\ncase 7:\n this.$ = $$[$0-2]; if($$[$0]) $$[$0-2].push($$[$0]); \nbreak;\ncase 8: case 9: case 70: case 80: case 85: case 143: case 177: case 205: case 206: case 242: case 261: case 276: case 359: case 377: case 456: case 479: case 480: case 484: case 492: case 533: case 534: case 571: case 654: case 664: case 688: case 690: case 692: case 706: case 707: case 737: case 761:\n this.$ = [$$[$0]]; \nbreak;\ncase 10:\n this.$ = $$[$0]; $$[$0].explain = true; \nbreak;\ncase 11:\n this.$ = $$[$0]; $$[$0].explain = true;\nbreak;\ncase 12:\n\n\t\t\tthis.$ = $$[$0];\r\n\n\t\t\t// TODO combine exists and queries\r\n\t\t if(yy.exists) this.$.exists = yy.exists;\r\n\t\t delete yy.exists;\r\n\t\t if(yy.queries) this.$.queries = yy.queries;\r\n\t\t\tdelete yy.queries;\r\n\nbreak;\ncase 13: case 162: case 172: case 237: case 238: case 240: case 248: case 250: case 259: case 270: case 273: case 380: case 496: case 506: case 508: case 520: case 526: case 527: case 572:\n this.$ = undefined; \nbreak;\ncase 68:\n this.$ = new yy.WithSelect({withs: $$[$0-1], select:$$[$0]}); \nbreak;\ncase 69: case 570:\n $$[$0-2].push($$[$0]); this.$=$$[$0-2]; \nbreak;\ncase 71:\n this.$ = {name:$$[$0-4], select:$$[$0-1]}; \nbreak;\ncase 72:\n\n\t\t\tyy.extend(this.$,$$[$0-9]); yy.extend(this.$,$$[$0-8]); yy.extend(this.$,$$[$0-7]); yy.extend(this.$,$$[$0-6]);\r\n\t\t yy.extend(this.$,$$[$0-5]); yy.extend(this.$,$$[$0-4]);yy.extend(this.$,$$[$0-3]);\r\n\t\t yy.extend(this.$,$$[$0-2]); yy.extend(this.$,$$[$0-1]); yy.extend(this.$,$$[$0]);\r\n\t\t this.$ = $$[$0-9];\r\n/*\t\t if(yy.exists) this.$.exists = yy.exists;\r\n\t\t delete yy.exists;\r\n\t\t if(yy.queries) this.$.queries = yy.queries;\r\n\t\t\tdelete yy.queries;\r\n*/\t\t\nbreak;\ncase 73:\n\n\t\t\tthis.$ = new yy.Search({selectors:$$[$0-2], from:$$[$0]});\r\n\t\t\tyy.extend(this.$,$$[$0-1]);\r\n\nbreak;\ncase 74:\n this.$ = {pivot:{expr:$$[$0-5], columnid:$$[$0-3], inlist:$$[$0-2], as:$$[$0]}}; \nbreak;\ncase 75:\n this.$ = {unpivot:{tocolumnid:$$[$0-8], forcolumnid:$$[$0-6], inlist:$$[$0-3], as:$$[$0]}}; \nbreak;\ncase 76: case 525: case 554: case 590: case 624: case 641: case 642: case 645: case 667:\n this.$ = $$[$0-1]; \nbreak;\ncase 77: case 78: case 86: case 147: case 185: case 247: case 283: case 291: case 292: case 293: case 294: case 295: case 296: case 297: case 298: case 299: case 300: case 301: case 302: case 303: case 304: case 307: case 308: case 323: case 324: case 325: case 326: case 327: case 328: case 379: case 445: case 446: case 447: case 448: case 449: case 450: case 521: case 547: case 551: case 553: case 628: case 629: case 630: case 631: case 632: case 633: case 637: case 639: case 640: case 649: case 665: case 666: case 728: case 743: case 744: case 746: case 747: case 753: case 754:\n this.$ = $$[$0]; \nbreak;\ncase 79: case 84: case 736: case 760:\n this.$ = $$[$0-2]; this.$.push($$[$0]); \nbreak;\ncase 81:\n this.$ = {expr:$$[$0]}; \nbreak;\ncase 82:\n this.$ = {expr:$$[$0-2],as:$$[$0]}; \nbreak;\ncase 83:\n this.$ = {removecolumns:$$[$0]}; \nbreak;\ncase 87:\n this.$ = {like:$$[$0]}; \nbreak;\ncase 90: case 104:\n this.$ = {srchid:\"PROP\", args: [$$[$0]]}; \nbreak;\ncase 91:\n this.$ = {srchid:\"ORDERBY\", args: $$[$0-1]}; \nbreak;\ncase 92:\n\n\t\t\tvar dir = $$[$0-1];\r\n\t\t\tif(!dir) dir = 'ASC';\r\n\t\t\tthis.$ = {srchid:\"ORDERBY\", args: [{expression: new yy.Column({columnid:'_'}), direction:dir}]};\r\n\nbreak;\ncase 93:\n this.$ = {srchid:\"PARENT\"}; \nbreak;\ncase 94:\n this.$ = {srchid:\"APROP\", args: [$$[$0]]}; \nbreak;\ncase 95:\n this.$ = {selid:\"ROOT\"};\nbreak;\ncase 96:\n this.$ = {srchid:\"EQ\", args: [$$[$0]]}; \nbreak;\ncase 97:\n this.$ = {srchid:\"LIKE\", args: [$$[$0]]}; \nbreak;\ncase 98: case 99:\n this.$ = {selid:\"WITH\", args: $$[$0-1]}; \nbreak;\ncase 100:\n this.$ = {srchid:$$[$0-3].toUpperCase(), args:$$[$0-1]}; \nbreak;\ncase 101:\n this.$ = {srchid:\"WHERE\", args:[$$[$0-1]]}; \nbreak;\ncase 102:\n this.$ = {selid:\"OF\", args:[$$[$0-1]]}; \nbreak;\ncase 103:\n this.$ = {srchid:\"CLASS\", args:[$$[$0-1]]}; \nbreak;\ncase 105:\n this.$ = {srchid:\"NAME\", args: [$$[$0].substr(1,$$[$0].length-2)]}; \nbreak;\ncase 106:\n this.$ = {srchid:\"CHILD\"}; \nbreak;\ncase 107:\n this.$ = {srchid:\"VERTEX\"}; \nbreak;\ncase 108:\n this.$ = {srchid:\"EDGE\"}; \nbreak;\ncase 109:\n this.$ = {srchid:\"REF\"}; \nbreak;\ncase 110:\n this.$ = {srchid:\"SHARP\", args:[$$[$0]]}; \nbreak;\ncase 111:\n this.$ = {srchid:\"ATTR\", args:((typeof $$[$0] == 'undefined')?undefined:[$$[$0]])}; \nbreak;\ncase 112:\n this.$ = {srchid:\"ATTR\"}; \nbreak;\ncase 113:\n this.$ = {srchid:\"OUT\"}; \nbreak;\ncase 114:\n this.$ = {srchid:\"IN\"}; \nbreak;\ncase 115:\n this.$ = {srchid:\"OUTOUT\"}; \nbreak;\ncase 116:\n this.$ = {srchid:\"ININ\"}; \nbreak;\ncase 117:\n this.$ = {srchid:\"CONTENT\"}; \nbreak;\ncase 118:\n this.$ = {srchid:\"EX\",args:[new yy.Json({value:$$[$0]})]}; \nbreak;\ncase 119:\n this.$ = {srchid:\"AT\", args:[$$[$0]]}; \nbreak;\ncase 120:\n this.$ = {srchid:\"AS\", args:[$$[$0]]}; \nbreak;\ncase 121:\n this.$ = {srchid:\"SET\", args:$$[$0-1]}; \nbreak;\ncase 122:\n this.$ = {selid:\"TO\", args:[$$[$0]]}; \nbreak;\ncase 123:\n this.$ = {srchid:\"VALUE\"}; \nbreak;\ncase 124:\n this.$ = {srchid:\"ROW\", args:$$[$0-1]}; \nbreak;\ncase 125:\n this.$ = {srchid:\"CLASS\", args:[$$[$0]]}; \nbreak;\ncase 126:\n this.$ = {selid:$$[$0],args:[$$[$0-1]] }; \nbreak;\ncase 127:\n this.$ = {selid:\"NOT\",args:$$[$0-1] }; \nbreak;\ncase 128:\n this.$ = {selid:\"IF\",args:$$[$0-1] }; \nbreak;\ncase 129:\n this.$ = {selid:$$[$0-3],args:$$[$0-1] }; \nbreak;\ncase 130:\n this.$ = {selid:'DISTINCT',args:$$[$0-1] }; \nbreak;\ncase 131:\n this.$ = {selid:'UNION',args:$$[$0-1] }; \nbreak;\ncase 132:\n this.$ = {selid:'UNIONALL',args:$$[$0-1] }; \nbreak;\ncase 133:\n this.$ = {selid:'ALL',args:[$$[$0-1]] }; \nbreak;\ncase 134:\n this.$ = {selid:'ANY',args:[$$[$0-1]] }; \nbreak;\ncase 135:\n this.$ = {selid:'INTERSECT',args:$$[$0-1] }; \nbreak;\ncase 136:\n this.$ = {selid:'EXCEPT',args:$$[$0-1] }; \nbreak;\ncase 137:\n this.$ = {selid:'AND',args:$$[$0-1] }; \nbreak;\ncase 138:\n this.$ = {selid:'OR',args:$$[$0-1] }; \nbreak;\ncase 139:\n this.$ = {selid:'PATH',args:[$$[$0-1]] }; \nbreak;\ncase 140:\n this.$ = {srchid:'RETURN',args:$$[$0-1] }; \nbreak;\ncase 141:\n this.$ = {selid:'REPEAT',sels:$$[$0-3], args:$$[$0-1] }; \nbreak;\ncase 142:\n this.$ = $$[$0-2]; this.$.push($$[$0]);\nbreak;\ncase 144:\n this.$ = \"PLUS\"; \nbreak;\ncase 145:\n this.$ = \"STAR\"; \nbreak;\ncase 146:\n this.$ = \"QUESTION\"; \nbreak;\ncase 148:\n this.$ = new yy.Select({ columns:$$[$0], distinct: true }); yy.extend(this.$, $$[$0-3]); yy.extend(this.$, $$[$0-1]); \nbreak;\ncase 149:\n this.$ = new yy.Select({ columns:$$[$0], distinct: true }); yy.extend(this.$, $$[$0-3]);yy.extend(this.$, $$[$0-1]); \nbreak;\ncase 150:\n this.$ = new yy.Select({ columns:$$[$0], all:true }); yy.extend(this.$, $$[$0-3]);yy.extend(this.$, $$[$0-1]); \nbreak;\ncase 151:\n\n\t\t\tif(!$$[$0]) {\r\n\t\t\t\tthis.$ = new yy.Select({columns:[new yy.Column({columnid:'_',})], modifier:'COLUMN'});\r\n\t\t\t} else {\r\n\t\t\t\tthis.$ = new yy.Select({ columns:$$[$0] }); yy.extend(this.$, $$[$0-2]);yy.extend(this.$, $$[$0-1]);\r\n\t\t\t}\r\n\nbreak;\ncase 152:\n if($$[$0]=='SELECT') this.$ = undefined; else this.$ = {modifier: $$[$0]}; \nbreak;\ncase 153:\n this.$ = {modifier:'VALUE'}\nbreak;\ncase 154:\n this.$ = {modifier:'ROW'}\nbreak;\ncase 155:\n this.$ = {modifier:'COLUMN'}\nbreak;\ncase 156:\n this.$ = {modifier:'MATRIX'}\nbreak;\ncase 157:\n this.$ = {modifier:'TEXTSTRING'}\nbreak;\ncase 158:\n this.$ = {modifier:'INDEX'}\nbreak;\ncase 159:\n this.$ = {modifier:'RECORDSET'}\nbreak;\ncase 160:\n this.$ = {top: $$[$0-1], percent:(typeof $$[$0] != 'undefined'?true:undefined)}; \nbreak;\ncase 161:\n this.$ = {top: $$[$0-1]}; \nbreak;\ncase 163: case 333: case 528: case 529: case 729:\nthis.$ = undefined; \nbreak;\ncase 164: case 165: case 166: case 167:\nthis.$ = {into: $$[$0]} \nbreak;\ncase 168:\n\n\t\t\tvar s = $$[$0];\r\n\t\t\ts = s.substr(1,s.length-2);\r\n\t\t\tvar x3 = s.substr(-3).toUpperCase();\r\n\t\t\tvar x4 = s.substr(-4).toUpperCase();\r\n\t\t\tif(s[0] == '#') {\r\n\t\t\t\tthis.$ = {into: new yy.FuncValue({funcid: 'HTML', args:[new yy.StringValue({value: s}), new yy.Json({value:{headers:true}})]})};\r\n\t\t\t} else if(x3=='XLS' || x3 == 'CSV' || x3=='TAB') {\r\n\t\t\t\tthis.$ = {into: new yy.FuncValue({funcid: x3, args:[new yy.StringValue({value: s}), new yy.Json({value:{headers:true}})]})};\r\n\t\t\t} else if(x4=='XLSX' || x4 == 'JSON') {\r\n\t\t\t\tthis.$ = {into: new yy.FuncValue({funcid: x4, args:[new yy.StringValue({value: s}), new yy.Json({value:{headers:true}})]})};\r\n\t\t\t}\r\n\nbreak;\ncase 169:\n this.$ = { from: $$[$0] }; \nbreak;\ncase 170:\n this.$ = { from: $$[$0-1], joins: $$[$0] }; \nbreak;\ncase 171:\n this.$ = { from: $$[$0-2], joins: $$[$0-1] }; \nbreak;\ncase 173:\n this.$ = new yy.Apply({select: $$[$0-2], applymode:'CROSS', as:$$[$0]}); \nbreak;\ncase 174:\n this.$ = new yy.Apply({select: $$[$0-3], applymode:'CROSS', as:$$[$0]}); \nbreak;\ncase 175:\n this.$ = new yy.Apply({select: $$[$0-2], applymode:'OUTER', as:$$[$0]}); \nbreak;\ncase 176:\n this.$ = new yy.Apply({select: $$[$0-3], applymode:'OUTER', as:$$[$0]}); \nbreak;\ncase 178: case 243: case 457: case 535: case 536:\n this.$ = $$[$0-2]; $$[$0-2].push($$[$0]); \nbreak;\ncase 179:\n this.$ = $$[$0-2]; this.$.as = $$[$0] \nbreak;\ncase 180:\n this.$ = $$[$0-3]; this.$.as = $$[$0] \nbreak;\ncase 181:\n this.$ = $$[$0-1]; this.$.as = 'default' \nbreak;\ncase 182:\n this.$ = new yy.Json({value:$$[$0-2]}); $$[$0-2].as = $$[$0] \nbreak;\ncase 183:\n this.$ = $$[$0-1]; $$[$0-1].as = $$[$0] \nbreak;\ncase 184:\n this.$ = $$[$0-2]; $$[$0-2].as = $$[$0] \nbreak;\ncase 186: case 643: case 646:\n this.$ = $$[$0-2]; \nbreak;\ncase 187: case 191: case 195: case 198:\n this.$ = $$[$0-1]; $$[$0-1].as = $$[$0]; \nbreak;\ncase 188: case 192: case 196: case 199:\n this.$ = $$[$0-2]; $$[$0-2].as = $$[$0]; \nbreak;\ncase 189: case 190: case 194: case 197:\n this.$ = $$[$0]; $$[$0].as = 'default'; \nbreak;\ncase 193:\n this.$ = {inserted:true}; \nbreak;\ncase 200:\n\n\t\t\tvar s = $$[$0];\r\n\t\t\ts = s.substr(1,s.length-2);\r\n\t\t\tvar x3 = s.substr(-3).toUpperCase();\r\n\t\t\tvar x4 = s.substr(-4).toUpperCase();\r\n\t\t\tvar r;\r\n\t\t\tif(s[0] == '#') {\r\n\t\t\t\tr = new yy.FuncValue({funcid: 'HTML', args:[new yy.StringValue({value: s}), new yy.Json({value:{headers:true}})]});\r\n\t\t\t} else if(x3=='XLS' || x3 == 'CSV' || x3=='TAB') {\r\n\t\t\t\tr = new yy.FuncValue({funcid: x3, args:[new yy.StringValue({value: s}), new yy.Json({value:{headers:true}})]});\r\n\t\t\t} else if(x4=='XLSX' || x4 == 'JSON') {\r\n\t\t\t\tr = new yy.FuncValue({funcid: x4, args:[new yy.StringValue({value: s}), new yy.Json({value:{headers:true}})]});\r\n\t\t\t} else {\r\n\t\t\t\tthrow new Error('Unknown string in FROM clause');\r\n\t\t\t};\r\n\t\t\tthis.$ = r;\r\n\nbreak;\ncase 201:\n\n\t\t\tif($$[$0-2] == 'INFORMATION_SCHEMA') {\r\n\t\t\t\tthis.$ = new yy.FuncValue({funcid: $$[$0-2], args:[new yy.StringValue({value:$$[$0]})]});\r\n\t\t\t} else {\r\n\t\t\t\tthis.$ = new yy.Table({databaseid: $$[$0-2], tableid:$$[$0]});\r\n\t\t\t}\r\n\nbreak;\ncase 202:\n this.$ = new yy.Table({tableid: $$[$0]});\nbreak;\ncase 203: case 204:\n this.$ = $$[$0-1]; $$[$0-1].push($$[$0]); \nbreak;\ncase 207:\n this.$ = new yy.Join($$[$0-2]); yy.extend(this.$, $$[$0-1]); yy.extend(this.$, $$[$0]); \nbreak;\ncase 208:\n this.$ = {table: $$[$0]}; \nbreak;\ncase 209:\n this.$ = {table: $$[$0-1], as: $$[$0] } ; \nbreak;\ncase 210:\n this.$ = {table: $$[$0-2], as: $$[$0] } ; \nbreak;\ncase 211:\n this.$ = {json:new yy.Json({value:$$[$0-2],as:$$[$0]})}; \nbreak;\ncase 212:\n this.$ = {param: $$[$0-1], as: $$[$0] } ; \nbreak;\ncase 213:\n this.$ = {param: $$[$0-2], as: $$[$0] } ; \nbreak;\ncase 214:\n this.$ = {select: $$[$0-2], as: $$[$0]} ; \nbreak;\ncase 215:\n this.$ = {select: $$[$0-3], as: $$[$0] } ; \nbreak;\ncase 216:\n this.$ = {func:$$[$0], as:'default'}; \nbreak;\ncase 217:\n this.$ = {func:$$[$0-1], as: $$[$0]}; \nbreak;\ncase 218:\n this.$ = {func:$$[$0-2], as: $$[$0]}; \nbreak;\ncase 219:\n this.$ = {variable:$$[$0],as:'default'}; \nbreak;\ncase 220:\n this.$ = {variable:$$[$0-1],as:$$[$0]}; \nbreak;\ncase 221:\n this.$ = {variable:$$[$0-2],as:$$[$0]} \nbreak;\ncase 222:\n this.$ = { joinmode: $$[$0] } ; \nbreak;\ncase 223:\n this.$ = {joinmode: $$[$0-1], natural:true} ; \nbreak;\ncase 224: case 225:\n this.$ = \"INNER\"; \nbreak;\ncase 226: case 227:\n this.$ = \"LEFT\"; \nbreak;\ncase 228: case 229:\n this.$ = \"RIGHT\"; \nbreak;\ncase 230: case 231:\n this.$ = \"OUTER\"; \nbreak;\ncase 232:\n this.$ = \"SEMI\"; \nbreak;\ncase 233:\n this.$ = \"ANTI\"; \nbreak;\ncase 234:\n this.$ = \"CROSS\"; \nbreak;\ncase 235:\n this.$ = {on: $$[$0]}; \nbreak;\ncase 236: case 702:\n this.$ = {using: $$[$0]}; \nbreak;\ncase 239:\n this.$ = {where: new yy.Expression({expression:$$[$0]})}; \nbreak;\ncase 241:\n this.$ = {group:$$[$0-1]}; yy.extend(this.$,$$[$0]); \nbreak;\ncase 244:\n this.$ = new yy.GroupExpression({type:'GROUPING SETS', group: $$[$0-1]}); \nbreak;\ncase 245:\n this.$ = new yy.GroupExpression({type:'ROLLUP', group: $$[$0-1]}); \nbreak;\ncase 246:\n this.$ = new yy.GroupExpression({type:'CUBE', group: $$[$0-1]}); \nbreak;\ncase 249:\n this.$ = {having:$$[$0]}\nbreak;\ncase 251:\n this.$ = {union: $$[$0]} ; \nbreak;\ncase 252:\n this.$ = {unionall: $$[$0]} ; \nbreak;\ncase 253:\n this.$ = {except: $$[$0]} ; \nbreak;\ncase 254:\n this.$ = {intersect: $$[$0]} ; \nbreak;\ncase 255:\n this.$ = {union: $$[$0], corresponding:true} ; \nbreak;\ncase 256:\n this.$ = {unionall: $$[$0], corresponding:true} ; \nbreak;\ncase 257:\n this.$ = {except: $$[$0], corresponding:true} ; \nbreak;\ncase 258:\n this.$ = {intersect: $$[$0], corresponding:true} ; \nbreak;\ncase 260:\n this.$ = {order:$$[$0]}\nbreak;\ncase 262:\n this.$ = $$[$0-2]; $$[$0-2].push($$[$0])\nbreak;\ncase 263:\n this.$ = {nullsOrder: 'FIRST'}; \nbreak;\ncase 264:\n this.$ = {nullsOrder: 'LAST'}; \nbreak;\ncase 265:\n this.$ = new yy.Expression({expression: $$[$0], direction:'ASC'}) \nbreak;\ncase 266:\n this.$ = new yy.Expression({expression: $$[$0-1], direction:$$[$0].toUpperCase()}) \nbreak;\ncase 267:\n this.$ = new yy.Expression({expression: $$[$0-2], direction:$$[$0-1].toUpperCase()}); yy.extend(this.$, $$[$0]) \nbreak;\ncase 268:\n this.$ = new yy.Expression({expression: $$[$0-2], direction:'ASC', nocase:true}) \nbreak;\ncase 269:\n this.$ = new yy.Expression({expression: $$[$0-3], direction:$$[$0].toUpperCase(), nocase:true}) \nbreak;\ncase 271:\n this.$ = {limit:$$[$0-1]}; yy.extend(this.$, $$[$0]); \nbreak;\ncase 272:\n this.$ = {limit:$$[$0-2],offset:$$[$0-6]}; \nbreak;\ncase 274:\n this.$ = {offset:$$[$0]}; \nbreak;\ncase 275: case 514: case 538: case 653: case 663: case 687: case 689: case 693:\n $$[$0-2].push($$[$0]); this.$ = $$[$0-2]; \nbreak;\ncase 277: case 279: case 281:\n $$[$0-2].as = $$[$0]; this.$ = $$[$0-2];\nbreak;\ncase 278: case 280: case 282:\n $$[$0-1].as = $$[$0]; this.$ = $$[$0-1];\nbreak;\ncase 284:\n this.$ = new yy.Column({columid: $$[$0], tableid: $$[$0-2], databaseid:$$[$0-4]}); \nbreak;\ncase 285:\n this.$ = new yy.Column({columnid: $$[$0], tableid: $$[$0-2]}); \nbreak;\ncase 286:\n this.$ = new yy.Column({columnid:$$[$0]}); \nbreak;\ncase 287:\n this.$ = new yy.Column({columnid: $$[$0], tableid: $$[$0-2], databaseid:$$[$0-4]});\nbreak;\ncase 288: case 289:\n this.$ = new yy.Column({columnid: $$[$0], tableid: $$[$0-2]});\nbreak;\ncase 290:\n this.$ = new yy.Column({columnid: $$[$0]});\nbreak;\ncase 305:\n this.$ = new yy.DomainValueValue(); \nbreak;\ncase 306:\n this.$ = new yy.Json({value:$$[$0]}); \nbreak;\ncase 309: case 310: case 311:\n\n\t\t\tif(!yy.queries) yy.queries = [];\r\n\t\t\tyy.queries.push($$[$0-1]);\r\n\t\t\t$$[$0-1].queriesidx = yy.queries.length;\r\n\t\t\tthis.$ = $$[$0-1];\r\n\nbreak;\ncase 312:\nthis.$ = $$[$0]\nbreak;\ncase 313:\n this.$ = new yy.FuncValue({funcid:'CURRENT_TIMESTAMP'});\nbreak;\ncase 314:\n this.$ = new yy.JavaScript({value:$$[$0].substr(2,$$[$0].length-4)}); \nbreak;\ncase 315:\n this.$ = new yy.JavaScript({value:'alasql.fn[\"'+$$[$0-2]+'\"] = '+$$[$0].substr(2,$$[$0].length-4)}); \nbreak;\ncase 316:\n this.$ = new yy.JavaScript({value:'alasql.aggr[\"'+$$[$0-2]+'\"] = '+$$[$0].substr(2,$$[$0].length-4)}); \nbreak;\ncase 317:\n this.$ = new yy.FuncValue({funcid:$$[$0], newid:true}); \nbreak;\ncase 318:\n this.$ = $$[$0]; yy.extend(this.$,{newid:true}); \nbreak;\ncase 319:\n this.$ = new yy.Convert({expression:$$[$0-3]}) ; yy.extend(this.$,$$[$0-1]) ; \nbreak;\ncase 320:\n this.$ = new yy.Convert({expression:$$[$0-5], style:$$[$0-1]}) ; yy.extend(this.$,$$[$0-3]) ; \nbreak;\ncase 321:\n this.$ = new yy.Convert({expression:$$[$0-1]}) ; yy.extend(this.$,$$[$0-3]) ; \nbreak;\ncase 322:\n this.$ = new yy.Convert({expression:$$[$0-3], style:$$[$0-1]}) ; yy.extend(this.$,$$[$0-5]) ; \nbreak;\ncase 329:\n this.$ = new yy.FuncValue({funcid:'CURRENT_TIMESTAMP'}); \nbreak;\ncase 330:\n\n\t\t if($$[$0-2].length > 1 && ($$[$0-4].toUpperCase() == 'MAX' || $$[$0-4].toUpperCase() == 'MIN')) {\r\n\t\t \tthis.$ = new yy.FuncValue({funcid:$$[$0-4],args:$$[$0-2]});\r\n\t\t } else {\r\n\t\t\tthis.$ = new yy.AggrValue({aggregatorid: $$[$0-4].toUpperCase(), expression: $$[$0-2].pop(), over:$$[$0]});\r\n\t\t }\r\n\nbreak;\ncase 331:\n this.$ = new yy.AggrValue({aggregatorid: $$[$0-5].toUpperCase(), expression: $$[$0-2], distinct:true, over:$$[$0]}); \nbreak;\ncase 332:\n this.$ = new yy.AggrValue({aggregatorid: $$[$0-5].toUpperCase(), expression: $$[$0-2],\r\n\t\t over:$$[$0]}); \nbreak;\ncase 334: case 335:\n this.$ = new yy.Over(); yy.extend(this.$,$$[$0-1]); \nbreak;\ncase 336:\n this.$ = new yy.Over(); yy.extend(this.$,$$[$0-2]); yy.extend(this.$,$$[$0-1]);\nbreak;\ncase 337:\n this.$ = {partition:$$[$0]}; \nbreak;\ncase 338:\n this.$ = {order:$$[$0]}; \nbreak;\ncase 339:\n this.$ = \"SUM\"; \nbreak;\ncase 340:\n this.$ = \"TOTAL\"; \nbreak;\ncase 341:\n this.$ = \"COUNT\"; \nbreak;\ncase 342:\n this.$ = \"MIN\"; \nbreak;\ncase 343: case 549:\n this.$ = \"MAX\"; \nbreak;\ncase 344:\n this.$ = \"AVG\"; \nbreak;\ncase 345:\n this.$ = \"FIRST\"; \nbreak;\ncase 346:\n this.$ = \"LAST\"; \nbreak;\ncase 347:\n this.$ = \"AGGR\"; \nbreak;\ncase 348:\n this.$ = \"ARRAY\"; \nbreak;\ncase 349:\n\n\t\t\tvar funcid = $$[$0-4];\r\n\t\t\tvar exprlist = $$[$0-1];\r\n\t\t\tif(exprlist.length > 1 && (funcid.toUpperCase() == 'MIN' || funcid.toUpperCase() == 'MAX')) {\r\n\t\t\t\t\tthis.$ = new yy.FuncValue({funcid: funcid, args: exprlist});\r\n\t\t\t} else if(alasql.aggr[$$[$0-4]]) {\r\n\t\t \tthis.$ = new yy.AggrValue({aggregatorid: 'REDUCE',\r\n funcid: funcid, expression: exprlist.pop(),distinct:($$[$0-2]=='DISTINCT') });\r\n\t\t } else {\r\n\t\t\t this.$ = new yy.FuncValue({funcid: funcid, args: exprlist});\r\n\t\t\t};\r\n\nbreak;\ncase 350:\n this.$ = new yy.FuncValue({ funcid: $$[$0-2] }) \nbreak;\ncase 351:\n this.$ = new yy.FuncValue({ funcid: 'IIF', args:$$[$0-1] }) \nbreak;\ncase 352:\n this.$ = new yy.FuncValue({ funcid: 'REPLACE', args:$$[$0-1] }) \nbreak;\ncase 353:\n this.$ = new yy.FuncValue({ funcid: 'DATEADD', args:[new yy.StringValue({value:$$[$0-5]}),$$[$0-3],$$[$0-1]]}) \nbreak;\ncase 354:\n this.$ = new yy.FuncValue({ funcid: 'DATEADD', args:[$$[$0-5],$$[$0-3],$$[$0-1]]}) \nbreak;\ncase 355:\n this.$ = new yy.FuncValue({ funcid: 'DATEDIFF', args:[new yy.StringValue({value:$$[$0-5]}),$$[$0-3],$$[$0-1]]}) \nbreak;\ncase 356:\n this.$ = new yy.FuncValue({ funcid: 'DATEDIFF', args:[$$[$0-5],$$[$0-3],$$[$0-1]]}) \nbreak;\ncase 357:\n this.$ = new yy.FuncValue({ funcid: 'TIMESTAMPDIFF', args:[new yy.StringValue({value:$$[$0-5]}),$$[$0-3],$$[$0-1]]}) \nbreak;\ncase 358:\n this.$ = new yy.FuncValue({ funcid: 'INTERVAL', args:[$$[$0-1],new yy.StringValue({value:($$[$0]).toLowerCase()})]}); \nbreak;\ncase 360:\n $$[$0-2].push($$[$0]); this.$ = $$[$0-2] \nbreak;\ncase 361:\n this.$ = new yy.NumValue({value:+$$[$0]}); \nbreak;\ncase 362:\n this.$ = new yy.LogicValue({value:true}); \nbreak;\ncase 363:\n this.$ = new yy.LogicValue({value:false}); \nbreak;\ncase 364:\n this.$ = new yy.StringValue({value: $$[$0].substr(1,$$[$0].length-2).replace(/(\\\\\\')/g,\"'\").replace(/(\\'\\')/g,\"'\")}); \nbreak;\ncase 365:\n this.$ = new yy.StringValue({value: $$[$0].substr(2,$$[$0].length-3).replace(/(\\\\\\')/g,\"'\").replace(/(\\'\\')/g,\"'\")}); \nbreak;\ncase 366:\n this.$ = new yy.NullValue({value:undefined}); \nbreak;\ncase 367:\n this.$ = new yy.VarValue({variable:$$[$0]}); \nbreak;\ncase 368:\n\n\t\t\tif(!yy.exists) yy.exists = [];\r\n\t\t\tthis.$ = new yy.ExistsValue({value:$$[$0-1], existsidx:yy.exists.length});\r\n\t\t\tyy.exists.push($$[$0-1]);\r\n\nbreak;\ncase 369:\n this.$ = new yy.ArrayValue({value:$$[$0-1]}); \nbreak;\ncase 370: case 371:\n this.$ = new yy.ParamValue({param: $$[$0]}); \nbreak;\ncase 372:\n\n\t\t\tif(typeof yy.question == 'undefined') yy.question = 0;\r\n\t\t\tthis.$ = new yy.ParamValue({param: yy.question++});\r\n\nbreak;\ncase 373:\n\n\t\t\tif(typeof yy.question == 'undefined') yy.question = 0;\r\n\t\t\tthis.$ = new yy.ParamValue({param: yy.question++, array:true});\r\n\nbreak;\ncase 374:\n this.$ = new yy.CaseValue({expression:$$[$0-3], whens: $$[$0-2], elses: $$[$0-1]}); \nbreak;\ncase 375:\n this.$ = new yy.CaseValue({whens: $$[$0-2], elses: $$[$0-1]}); \nbreak;\ncase 376: case 704: case 705:\n this.$ = $$[$0-1]; this.$.push($$[$0]); \nbreak;\ncase 378:\n this.$ = {when: $$[$0-2], then: $$[$0] }; \nbreak;\ncase 381: case 382:\n this.$ = new yy.Op({left:$$[$0-2], op:'REGEXP', right:$$[$0]}); \nbreak;\ncase 383:\n this.$ = new yy.Op({left:$$[$0-2], op:'GLOB', right:$$[$0]}); \nbreak;\ncase 384:\n this.$ = new yy.Op({left:$$[$0-2], op:'LIKE', right:$$[$0]}); \nbreak;\ncase 385:\n this.$ = new yy.Op({left:$$[$0-4], op:'LIKE', right:$$[$0-2], escape:$$[$0]}); \nbreak;\ncase 386:\n this.$ = new yy.Op({left:$$[$0-2], op:'NOT LIKE', right:$$[$0] }); \nbreak;\ncase 387:\n this.$ = new yy.Op({left:$$[$0-4], op:'NOT LIKE', right:$$[$0-2], escape:$$[$0] }); \nbreak;\ncase 388:\n this.$ = new yy.Op({left:$$[$0-2], op:'||', right:$$[$0]}); \nbreak;\ncase 389:\n this.$ = new yy.Op({left:$$[$0-2], op:'+', right:$$[$0]}); \nbreak;\ncase 390:\n this.$ = new yy.Op({left:$$[$0-2], op:'-', right:$$[$0]}); \nbreak;\ncase 391:\n this.$ = new yy.Op({left:$$[$0-2], op:'*', right:$$[$0]}); \nbreak;\ncase 392:\n this.$ = new yy.Op({left:$$[$0-2], op:'/', right:$$[$0]}); \nbreak;\ncase 393:\n this.$ = new yy.Op({left:$$[$0-2], op:'%', right:$$[$0]}); \nbreak;\ncase 394:\n this.$ = new yy.Op({left:$$[$0-2], op:'^', right:$$[$0]}); \nbreak;\ncase 395:\n this.$ = new yy.Op({left:$$[$0-2], op:'>>', right:$$[$0]}); \nbreak;\ncase 396:\n this.$ = new yy.Op({left:$$[$0-2], op:'<<', right:$$[$0]}); \nbreak;\ncase 397:\n this.$ = new yy.Op({left:$$[$0-2], op:'&', right:$$[$0]}); \nbreak;\ncase 398:\n this.$ = new yy.Op({left:$$[$0-2], op:'|', right:$$[$0]}); \nbreak;\ncase 399: case 400: case 402:\n this.$ = new yy.Op({left:$$[$0-2], op:'->' , right:$$[$0]}); \nbreak;\ncase 401:\n this.$ = new yy.Op({left:$$[$0-4], op:'->' , right:$$[$0-1]}); \nbreak;\ncase 403: case 404: case 406:\n this.$ = new yy.Op({left:$$[$0-2], op:'!' , right:$$[$0]}); \nbreak;\ncase 405:\n this.$ = new yy.Op({left:$$[$0-4], op:'!' , right:$$[$0-1]}); \nbreak;\ncase 407:\n this.$ = new yy.Op({left:$$[$0-2], op:'>' , right:$$[$0]}); \nbreak;\ncase 408:\n this.$ = new yy.Op({left:$$[$0-2], op:'>=' , right:$$[$0]}); \nbreak;\ncase 409:\n this.$ = new yy.Op({left:$$[$0-2], op:'<' , right:$$[$0]}); \nbreak;\ncase 410:\n this.$ = new yy.Op({left:$$[$0-2], op:'<=' , right:$$[$0]}); \nbreak;\ncase 411:\n this.$ = new yy.Op({left:$$[$0-2], op:'=' , right:$$[$0]}); \nbreak;\ncase 412:\n this.$ = new yy.Op({left:$$[$0-2], op:'==' , right:$$[$0]}); \nbreak;\ncase 413:\n this.$ = new yy.Op({left:$$[$0-2], op:'===' , right:$$[$0]}); \nbreak;\ncase 414:\n this.$ = new yy.Op({left:$$[$0-2], op:'!=' , right:$$[$0]}); \nbreak;\ncase 415:\n this.$ = new yy.Op({left:$$[$0-2], op:'!==' , right:$$[$0]}); \nbreak;\ncase 416:\n this.$ = new yy.Op({left:$$[$0-2], op:'!===' , right:$$[$0]}); \nbreak;\ncase 417:\n\n\t\t\tif(!yy.queries) yy.queries = [];\r\n\t\t\tthis.$ = new yy.Op({left:$$[$0-5], op:$$[$0-4] , allsome:$$[$0-3], right:$$[$0-1], queriesidx: yy.queries.length});\r\n\t\t\tyy.queries.push($$[$0-1]);\r\n\nbreak;\ncase 418:\n\n\t\t\tthis.$ = new yy.Op({left:$$[$0-5], op:$$[$0-4] , allsome:$$[$0-3], right:$$[$0-1]});\r\n\nbreak;\ncase 419:\n\n\t\t\tif($$[$0-2].op == 'BETWEEN1') {\r\n\n\t\t\t\tif($$[$0-2].left.op == 'AND') {\r\n\t\t\t\t\tthis.$ = new yy.Op({left:$$[$0-2].left.left,op:'AND',right:\r\n\t\t\t\t\t\tnew yy.Op({left:$$[$0-2].left.right, op:'BETWEEN',\r\n\t\t\t\t\t\t\tright1:$$[$0-2].right, right2:$$[$0]})\r\n\t\t\t\t\t});\r\n\t\t\t\t} else {\r\n\t\t\t\t\tthis.$ = new yy.Op({left:$$[$0-2].left, op:'BETWEEN',\r\n\t\t\t\t\t\tright1:$$[$0-2].right, right2:$$[$0]});\r\n\t\t\t\t}\r\n\n\t\t\t} else if($$[$0-2].op == 'NOT BETWEEN1') {\r\n\t\t\t\tif($$[$0-2].left.op == 'AND') {\r\n\t\t\t\t\tthis.$ = new yy.Op({left:$$[$0-2].left.left,op:'AND',right:\r\n\t\t\t\t\t\tnew yy.Op({left:$$[$0-2].left.right, op:'NOT BETWEEN',\r\n\t\t\t\t\t\t\tright1:$$[$0-2].right, right2:$$[$0]})\r\n\t\t\t\t\t});\r\n\t\t\t\t} else {\r\n\t\t\t\t\tthis.$ = new yy.Op({left:$$[$0-2].left, op:'NOT BETWEEN',\r\n\t\t\t\t\t\tright1:$$[$0-2].right, right2:$$[$0]});\r\n\t\t\t\t}\r\n\t\t\t} else {\r\n\t\t\t\tthis.$ = new yy.Op({left:$$[$0-2], op:'AND', right:$$[$0]});\r\n\t\t\t}\r\n\nbreak;\ncase 420:\n this.$ = new yy.Op({left:$$[$0-2], op:'OR' , right:$$[$0]}); \nbreak;\ncase 421:\n this.$ = new yy.UniOp({op:'NOT' , right:$$[$0]}); \nbreak;\ncase 422:\n this.$ = new yy.UniOp({op:'-' , right:$$[$0]}); \nbreak;\ncase 423:\n this.$ = new yy.UniOp({op:'+' , right:$$[$0]}); \nbreak;\ncase 424:\n this.$ = new yy.UniOp({op:'~' , right:$$[$0]}); \nbreak;\ncase 425:\n this.$ = new yy.UniOp({op:'#' , right:$$[$0]}); \nbreak;\ncase 426:\n this.$ = new yy.UniOp({right: $$[$0-1]}); \nbreak;\ncase 427:\n\n\t\t\tif(!yy.queries) yy.queries = [];\r\n\t\t\tthis.$ = new yy.Op({left: $$[$0-4], op:'IN', right:$$[$0-1], queriesidx: yy.queries.length});\r\n\t\t\tyy.queries.push($$[$0-1]);\r\n\nbreak;\ncase 428:\n\n\t\t\tif(!yy.queries) yy.queries = [];\r\n\t\t\tthis.$ = new yy.Op({left: $$[$0-5], op:'NOT IN', right:$$[$0-1], queriesidx: yy.queries.length});\r\n\t\t\tyy.queries.push($$[$0-1]);\r\n\nbreak;\ncase 429:\n this.$ = new yy.Op({left: $$[$0-4], op:'IN', right:$$[$0-1]}); \nbreak;\ncase 430:\n this.$ = new yy.Op({left: $$[$0-5], op:'NOT IN', right:$$[$0-1]}); \nbreak;\ncase 431:\n this.$ = new yy.Op({left: $$[$0-3], op:'IN', right:[]}); \nbreak;\ncase 432:\n this.$ = new yy.Op({left: $$[$0-4], op:'NOT IN', right:[]}); \nbreak;\ncase 433: case 435:\n this.$ = new yy.Op({left: $$[$0-2], op:'IN', right:$$[$0]}); \nbreak;\ncase 434: case 436:\n this.$ = new yy.Op({left: $$[$0-3], op:'NOT IN', right:$$[$0]}); \nbreak;\ncase 437:\n\n/*\t\t\tvar expr = $$[$0];\r\n\t\t\tif(expr.left && expr.left.op == 'AND') {\r\n\t\t\t\tthis.$ = new yy.Op({left:new yy.Op({left:$$[$0-2], op:'BETWEEN', right:expr.left}), op:'AND', right:expr.right });\r\n\t\t\t} else {\r\n*/\r\n\t\t\t\tthis.$ = new yy.Op({left:$$[$0-2], op:'BETWEEN1', right:$$[$0] });\r\n\nbreak;\ncase 438:\n\n\t\t\t\tthis.$ = new yy.Op({left:$$[$0-2], op:'NOT BETWEEN1', right:$$[$0] });\r\n\nbreak;\ncase 439:\n this.$ = new yy.Op({op:'IS' , left:$$[$0-2], right:$$[$0]}); \nbreak;\ncase 440:\n\n\t\t\tthis.$ = new yy.Op({\r\n\t\t\t\top:'IS',\r\n\t\t\t\tleft:$$[$0-2],\r\n\t\t\t\tright: new yy.UniOp({\r\n\t\t\t\t\top:'NOT',\r\n\t\t\t\t\tright:new yy.NullValue({value:undefined})\r\n\t\t\t\t})\r\n\t\t\t});\r\n\nbreak;\ncase 441:\n this.$ = new yy.Convert({expression:$$[$0-2]}) ; yy.extend(this.$,$$[$0]) ; \nbreak;\ncase 442: case 443:\n this.$ = $$[$0];\nbreak;\ncase 444:\n this.$ = $$[$0-1];\nbreak;\ncase 451:\n this.$ = 'ALL'; \nbreak;\ncase 452:\n this.$ = 'SOME'; \nbreak;\ncase 453:\n this.$ = 'ANY'; \nbreak;\ncase 454:\n this.$ = new yy.Update({table:$$[$0-4], columns:$$[$0-2], where:$$[$0]}); \nbreak;\ncase 455:\n this.$ = new yy.Update({table:$$[$0-2], columns:$$[$0]}); \nbreak;\ncase 458:\n this.$ = new yy.SetColumn({column:$$[$0-2], expression:$$[$0]})\nbreak;\ncase 459:\n this.$ = new yy.SetColumn({variable:$$[$0-2], expression:$$[$0], method:$$[$0-3]})\nbreak;\ncase 460:\n this.$ = new yy.Delete({table:$$[$0-2], where:$$[$0]});\nbreak;\ncase 461:\n this.$ = new yy.Delete({table:$$[$0]});\nbreak;\ncase 462:\n this.$ = new yy.Insert({into:$$[$0-2], values: $$[$0]}); \nbreak;\ncase 463:\n this.$ = new yy.Insert({into:$$[$0-1], values: $$[$0]}); \nbreak;\ncase 464: case 466:\n this.$ = new yy.Insert({into:$$[$0-2], values: $$[$0], orreplace:true}); \nbreak;\ncase 465: case 467:\n this.$ = new yy.Insert({into:$$[$0-1], values: $$[$0], orreplace:true}); \nbreak;\ncase 468:\n this.$ = new yy.Insert({into:$$[$0-2], \"default\": true}) ; \nbreak;\ncase 469:\n this.$ = new yy.Insert({into:$$[$0-5], columns: $$[$0-3], values: $$[$0]}); \nbreak;\ncase 470:\n this.$ = new yy.Insert({into:$$[$0-4], columns: $$[$0-2], values: $$[$0]}); \nbreak;\ncase 471:\n this.$ = new yy.Insert({into:$$[$0-1], select: $$[$0]}); \nbreak;\ncase 472:\n this.$ = new yy.Insert({into:$$[$0-1], select: $$[$0], orreplace:true}); \nbreak;\ncase 473:\n this.$ = new yy.Insert({into:$$[$0-4], columns: $$[$0-2], select: $$[$0]}); \nbreak;\ncase 478:\n this.$ = [$$[$0-1]]; \nbreak;\ncase 481:\nthis.$ = $$[$0-4]; $$[$0-4].push($$[$0-1])\nbreak;\ncase 482: case 483: case 485: case 493:\nthis.$ = $$[$0-2]; $$[$0-2].push($$[$0])\nbreak;\ncase 494:\n\n\t\t\tthis.$ = new yy.CreateTable({table:$$[$0-4]});\r\n\t\t\tyy.extend(this.$,$$[$0-7]);\r\n\t\t\tyy.extend(this.$,$$[$0-6]);\r\n\t\t\tyy.extend(this.$,$$[$0-5]);\r\n\t\t\tyy.extend(this.$,$$[$0-2]);\r\n\t\t\tyy.extend(this.$,$$[$0]);\r\n\nbreak;\ncase 495:\n\n\t\t\tthis.$ = new yy.CreateTable({table:$$[$0]});\r\n\t\t\tyy.extend(this.$,$$[$0-3]);\r\n\t\t\tyy.extend(this.$,$$[$0-2]);\r\n\t\t\tyy.extend(this.$,$$[$0-1]);\r\n\nbreak;\ncase 497:\n this.$ = {class:true}; \nbreak;\ncase 507:\n this.$ = {temporary:true}; \nbreak;\ncase 509:\n this.$ = {ifnotexists: true}; \nbreak;\ncase 510:\n this.$ = {columns: $$[$0-2], constraints: $$[$0]}; \nbreak;\ncase 511:\n this.$ = {columns: $$[$0]}; \nbreak;\ncase 512:\n this.$ = {as: $$[$0]} \nbreak;\ncase 513: case 537:\n this.$ = [$$[$0]];\nbreak;\ncase 515: case 516: case 517: case 518: case 519:\n $$[$0].constraintid = $$[$0-1]; this.$ = $$[$0]; \nbreak;\ncase 522:\n this.$ = {type: 'CHECK', expression: $$[$0-1]}; \nbreak;\ncase 523:\n this.$ = {type: 'PRIMARY KEY', columns: $$[$0-1], clustered:($$[$0-3]+'').toUpperCase()}; \nbreak;\ncase 524:\n this.$ = {type: 'FOREIGN KEY', columns: $$[$0-5], fktable: $$[$0-2], fkcolumns: $$[$0-1]}; \nbreak;\ncase 530:\n\n\t\t\tthis.$ = {type: 'UNIQUE', columns: $$[$0-1], clustered:($$[$0-3]+'').toUpperCase()};\r\n\nbreak;\ncase 539:\n this.$ = new yy.ColumnDef({columnid:$$[$0-2]}); yy.extend(this.$,$$[$0-1]); yy.extend(this.$,$$[$0]);\nbreak;\ncase 540:\n this.$ = new yy.ColumnDef({columnid:$$[$0-1]}); yy.extend(this.$,$$[$0]); \nbreak;\ncase 541:\n this.$ = new yy.ColumnDef({columnid:$$[$0], dbtypeid: ''}); \nbreak;\ncase 542:\n this.$ = {dbtypeid: $$[$0-5], dbsize: $$[$0-3], dbprecision: +$$[$0-1]} \nbreak;\ncase 543:\n this.$ = {dbtypeid: $$[$0-3], dbsize: $$[$0-1]} \nbreak;\ncase 544:\n this.$ = {dbtypeid: $$[$0]} \nbreak;\ncase 545:\n this.$ = {dbtypeid: 'ENUM', enumvalues: $$[$0-1]} \nbreak;\ncase 546:\n this.$ = $$[$0-1]; $$[$0-1].dbtypeid += '[' + $$[$0] + ']'; \nbreak;\ncase 548: case 755:\n this.$ = +$$[$0]; \nbreak;\ncase 550:\nthis.$ = undefined\nbreak;\ncase 552:\n\n\t\t\tyy.extend($$[$0-1],$$[$0]); this.$ = $$[$0-1];\r\n\nbreak;\ncase 555:\nthis.$ = {primarykey:true};\nbreak;\ncase 556: case 557:\nthis.$ = {foreignkey:{table:$$[$0-1], columnid: $$[$0]}};\nbreak;\ncase 558:\n this.$ = {identity: {value:$$[$0-3],step:$$[$0-1]}} \nbreak;\ncase 559:\n this.$ = {identity: {value:1,step:1}} \nbreak;\ncase 560: case 562:\nthis.$ = {\"default\":$$[$0]};\nbreak;\ncase 561:\nthis.$ = {\"default\":$$[$0-1]};\nbreak;\ncase 563:\nthis.$ = {null:true}; \nbreak;\ncase 564:\nthis.$ = {notnull:true}; \nbreak;\ncase 565:\nthis.$ = {check:$$[$0]}; \nbreak;\ncase 566:\nthis.$ = {unique:true}; \nbreak;\ncase 567:\nthis.$ = {\"onupdate\":$$[$0]};\nbreak;\ncase 568:\nthis.$ = {\"onupdate\":$$[$0-1]};\nbreak;\ncase 569:\n this.$ = new yy.DropTable({tables:$$[$0],type:$$[$0-2]}); yy.extend(this.$, $$[$0-1]); \nbreak;\ncase 573:\n this.$ = {ifexists: true};\nbreak;\ncase 574:\n this.$ = new yy.AlterTable({table:$$[$0-3], renameto: $$[$0]});\nbreak;\ncase 575:\n this.$ = new yy.AlterTable({table:$$[$0-3], addcolumn: $$[$0]});\nbreak;\ncase 576:\n this.$ = new yy.AlterTable({table:$$[$0-3], modifycolumn: $$[$0]});\nbreak;\ncase 577:\n this.$ = new yy.AlterTable({table:$$[$0-5], renamecolumn: $$[$0-2], to: $$[$0]});\nbreak;\ncase 578:\n this.$ = new yy.AlterTable({table:$$[$0-3], dropcolumn: $$[$0]});\nbreak;\ncase 579:\n this.$ = new yy.AlterTable({table:$$[$0-2], renameto: $$[$0]});\nbreak;\ncase 580:\n this.$ = new yy.AttachDatabase({databaseid:$$[$0], engineid:$$[$0-2].toUpperCase() });\nbreak;\ncase 581:\n this.$ = new yy.AttachDatabase({databaseid:$$[$0-3], engineid:$$[$0-5].toUpperCase(), args:$$[$0-1] });\nbreak;\ncase 582:\n this.$ = new yy.AttachDatabase({databaseid:$$[$0-2], engineid:$$[$0-4].toUpperCase(), as:$$[$0] });\nbreak;\ncase 583:\n this.$ = new yy.AttachDatabase({databaseid:$$[$0-5], engineid:$$[$0-7].toUpperCase(), as:$$[$0], args:$$[$0-3]});\nbreak;\ncase 584:\n this.$ = new yy.DetachDatabase({databaseid:$$[$0]});\nbreak;\ncase 585:\n this.$ = new yy.CreateDatabase({databaseid:$$[$0] }); yy.extend(this.$,$$[$0]); \nbreak;\ncase 586:\n this.$ = new yy.CreateDatabase({engineid:$$[$0-4].toUpperCase(), databaseid:$$[$0-1], as:$$[$0] }); yy.extend(this.$,$$[$0-2]); \nbreak;\ncase 587:\n this.$ = new yy.CreateDatabase({engineid:$$[$0-7].toUpperCase(), databaseid:$$[$0-4], args:$$[$0-2], as:$$[$0] }); yy.extend(this.$,$$[$0-5]); \nbreak;\ncase 588:\n this.$ = new yy.CreateDatabase({engineid:$$[$0-4].toUpperCase(),\r\n\t\t as:$$[$0], args:[$$[$0-1]] }); yy.extend(this.$,$$[$0-2]); \nbreak;\ncase 589:\nthis.$ = undefined;\nbreak;\ncase 591: case 592:\n this.$ = new yy.UseDatabase({databaseid: $$[$0] });\nbreak;\ncase 593:\n this.$ = new yy.DropDatabase({databaseid: $$[$0] }); yy.extend(this.$,$$[$0-1]); \nbreak;\ncase 594: case 595:\n this.$ = new yy.DropDatabase({databaseid: $$[$0], engineid:$$[$0-3].toUpperCase() }); yy.extend(this.$,$$[$0-1]); \nbreak;\ncase 596:\n this.$ = new yy.CreateIndex({indexid:$$[$0-5], table:$$[$0-3], columns:$$[$0-1]})\nbreak;\ncase 597:\n this.$ = new yy.CreateIndex({indexid:$$[$0-5], table:$$[$0-3], columns:$$[$0-1], unique:true})\nbreak;\ncase 598:\n this.$ = new yy.DropIndex({indexid:$$[$0]});\nbreak;\ncase 599:\n this.$ = new yy.ShowDatabases();\nbreak;\ncase 600:\n this.$ = new yy.ShowDatabases({like:$$[$0]});\nbreak;\ncase 601:\n this.$ = new yy.ShowDatabases({engineid:$$[$0-1].toUpperCase() });\nbreak;\ncase 602:\n this.$ = new yy.ShowDatabases({engineid:$$[$0-3].toUpperCase() , like:$$[$0]});\nbreak;\ncase 603:\n this.$ = new yy.ShowTables();\nbreak;\ncase 604:\n this.$ = new yy.ShowTables({like:$$[$0]});\nbreak;\ncase 605:\n this.$ = new yy.ShowTables({databaseid: $$[$0]});\nbreak;\ncase 606:\n this.$ = new yy.ShowTables({like:$$[$0], databaseid: $$[$0-2]});\nbreak;\ncase 607:\n this.$ = new yy.ShowColumns({table: $$[$0]});\nbreak;\ncase 608:\n this.$ = new yy.ShowColumns({table: $$[$0-2], databaseid:$$[$0]});\nbreak;\ncase 609:\n this.$ = new yy.ShowIndex({table: $$[$0]});\nbreak;\ncase 610:\n this.$ = new yy.ShowIndex({table: $$[$0-2], databaseid: $$[$0]});\nbreak;\ncase 611:\n this.$ = new yy.ShowCreateTable({table: $$[$0]});\nbreak;\ncase 612:\n this.$ = new yy.ShowCreateTable({table: $$[$0-2], databaseid:$$[$0]});\nbreak;\ncase 613:\n\n\t\t\tthis.$ = new yy.CreateTable({table:$$[$0-6],view:true,select:$$[$0-1],viewcolumns:$$[$0-4]});\r\n\t\t\tyy.extend(this.$,$$[$0-9]);\r\n\t\t\tyy.extend(this.$,$$[$0-7]);\r\n\nbreak;\ncase 614:\n\n\t\t\tthis.$ = new yy.CreateTable({table:$$[$0-3],view:true,select:$$[$0-1]});\r\n\t\t\tyy.extend(this.$,$$[$0-6]);\r\n\t\t\tyy.extend(this.$,$$[$0-4]);\r\n\nbreak;\ncase 618:\n this.$ = new yy.DropTable({tables:$$[$0], view:true}); yy.extend(this.$, $$[$0-1]); \nbreak;\ncase 619: case 765:\n this.$ = new yy.ExpressionStatement({expression:$$[$0]}); \nbreak;\ncase 620:\n this.$ = new yy.Source({url:$$[$0].value}); \nbreak;\ncase 621:\n this.$ = new yy.Assert({value:$$[$0]}); \nbreak;\ncase 622:\n this.$ = new yy.Assert({value:$$[$0].value}); \nbreak;\ncase 623:\n this.$ = new yy.Assert({value:$$[$0], message:$$[$0-2]}); \nbreak;\ncase 625: case 636: case 638:\n this.$ = $$[$0].value; \nbreak;\ncase 626: case 634:\n this.$ = +$$[$0].value; \nbreak;\ncase 627:\n this.$ = (!!$$[$0].value); \nbreak;\ncase 635:\n this.$ = \"\"+$$[$0].value; \nbreak;\ncase 644:\n this.$ = {}; \nbreak;\ncase 647:\n this.$ = []; \nbreak;\ncase 648:\n yy.extend($$[$0-2],$$[$0]); this.$ = $$[$0-2]; \nbreak;\ncase 650:\n this.$ = {}; this.$[$$[$0-2].substr(1,$$[$0-2].length-2)] = $$[$0]; \nbreak;\ncase 651: case 652:\n this.$ = {}; this.$[$$[$0-2]] = $$[$0]; \nbreak;\ncase 655:\n this.$ = new yy.SetVariable({variable:$$[$0-2].toLowerCase(), value:$$[$0]});\nbreak;\ncase 656:\n this.$ = new yy.SetVariable({variable:$$[$0-1].toLowerCase(), value:$$[$0]});\nbreak;\ncase 657:\n this.$ = new yy.SetVariable({variable:$$[$0-2], expression:$$[$0]});\nbreak;\ncase 658:\n this.$ = new yy.SetVariable({variable:$$[$0-3], props: $$[$0-2], expression:$$[$0]});\nbreak;\ncase 659:\n this.$ = new yy.SetVariable({variable:$$[$0-2], expression:$$[$0], method:$$[$0-3]});\nbreak;\ncase 660:\n this.$ = new yy.SetVariable({variable:$$[$0-3], props: $$[$0-2], expression:$$[$0], method:$$[$0-4]});\nbreak;\ncase 661:\nthis.$ = '@'; \nbreak;\ncase 662:\nthis.$ = '$'; \nbreak;\ncase 668:\n this.$ = true; \nbreak;\ncase 669:\n this.$ = false; \nbreak;\ncase 670:\n this.$ = new yy.CommitTransaction(); \nbreak;\ncase 671:\n this.$ = new yy.RollbackTransaction(); \nbreak;\ncase 672:\n this.$ = new yy.BeginTransaction(); \nbreak;\ncase 673:\n this.$ = new yy.If({expression:$$[$0-2],thenstat:$$[$0-1], elsestat:$$[$0]});\r\n\t\t\tif($$[$0-1].exists) this.$.exists = $$[$0-1].exists;\r\n\t\t\tif($$[$0-1].queries) this.$.queries = $$[$0-1].queries;\r\n\nbreak;\ncase 674:\n\n\t\t\tthis.$ = new yy.If({expression:$$[$0-1],thenstat:$$[$0]});\r\n\t\t\tif($$[$0].exists) this.$.exists = $$[$0].exists;\r\n\t\t\tif($$[$0].queries) this.$.queries = $$[$0].queries;\r\n\nbreak;\ncase 675:\nthis.$ = $$[$0];\nbreak;\ncase 676:\n this.$ = new yy.While({expression:$$[$0-1],loopstat:$$[$0]});\r\n\t\t\tif($$[$0].exists) this.$.exists = $$[$0].exists;\r\n\t\t\tif($$[$0].queries) this.$.queries = $$[$0].queries;\r\n\nbreak;\ncase 677:\n this.$ = new yy.Continue(); \nbreak;\ncase 678:\n this.$ = new yy.Break(); \nbreak;\ncase 679:\n this.$ = new yy.BeginEnd({statements:$$[$0-1]}); \nbreak;\ncase 680:\n this.$ = new yy.Print({exprs:$$[$0]});\nbreak;\ncase 681:\n this.$ = new yy.Print({select:$$[$0]});\nbreak;\ncase 682:\n this.$ = new yy.Require({paths:$$[$0]}); \nbreak;\ncase 683:\n this.$ = new yy.Require({plugins:$$[$0]}); \nbreak;\ncase 684: case 685:\nthis.$ = $$[$0].toUpperCase(); \nbreak;\ncase 686:\n this.$ = new yy.Echo({expr:$$[$0]}); \nbreak;\ncase 691:\n this.$ = new yy.Declare({declares:$$[$0]}); \nbreak;\ncase 694:\n this.$ = {variable: $$[$0-1]}; yy.extend(this.$,$$[$0]); \nbreak;\ncase 695:\n this.$ = {variable: $$[$0-2]}; yy.extend(this.$,$$[$0]); \nbreak;\ncase 696:\n this.$ = {variable: $$[$0-3], expression:$$[$0]}; yy.extend(this.$,$$[$0-2]);\nbreak;\ncase 697:\n this.$ = {variable: $$[$0-4], expression:$$[$0]}; yy.extend(this.$,$$[$0-2]);\nbreak;\ncase 698:\n this.$ = new yy.TruncateTable({table:$$[$0]});\nbreak;\ncase 699:\n\n\t\t\tthis.$ = new yy.Merge(); yy.extend(this.$,$$[$0-4]); yy.extend(this.$,$$[$0-3]);\r\n\t\t\tyy.extend(this.$,$$[$0-2]);\r\n\t\t\tyy.extend(this.$,{matches:$$[$0-1]});yy.extend(this.$,$$[$0]);\r\n\nbreak;\ncase 700: case 701:\n this.$ = {into: $$[$0]}; \nbreak;\ncase 703:\n this.$ = {on:$$[$0]}; \nbreak;\ncase 708:\n this.$ = {matched:true, action:$$[$0]} \nbreak;\ncase 709:\n this.$ = {matched:true, expr: $$[$0-2], action:$$[$0]} \nbreak;\ncase 710:\n this.$ = {delete:true}; \nbreak;\ncase 711:\n this.$ = {update:$$[$0]}; \nbreak;\ncase 712: case 713:\n this.$ = {matched:false, bytarget: true, action:$$[$0]} \nbreak;\ncase 714: case 715:\n this.$ = {matched:false, bytarget: true, expr:$$[$0-2], action:$$[$0]} \nbreak;\ncase 716:\n this.$ = {matched:false, bysource: true, action:$$[$0]} \nbreak;\ncase 717:\n this.$ = {matched:false, bysource: true, expr:$$[$0-2], action:$$[$0]} \nbreak;\ncase 718:\n this.$ = {insert:true, values:$$[$0]}; \nbreak;\ncase 719:\n this.$ = {insert:true, values:$$[$0], columns:$$[$0-3]}; \nbreak;\ncase 720:\n this.$ = {insert:true, defaultvalues:true}; \nbreak;\ncase 721:\n this.$ = {insert:true, defaultvalues:true, columns:$$[$0-3]}; \nbreak;\ncase 723:\n this.$ = {output:{columns:$$[$0]}} \nbreak;\ncase 724:\n this.$ = {output:{columns:$$[$0-3], intovar: $$[$0], method:$$[$0-1]}} \nbreak;\ncase 725:\n this.$ = {output:{columns:$$[$0-2], intotable: $$[$0]}} \nbreak;\ncase 726:\n this.$ = {output:{columns:$$[$0-5], intotable: $$[$0-3], intocolumns:$$[$0-1]}} \nbreak;\ncase 727:\n\n\t\t\tthis.$ = new yy.CreateVertex({class:$$[$0-3],sharp:$$[$0-2], name:$$[$0-1]});\r\n\t\t\tyy.extend(this.$,$$[$0]);\r\n\nbreak;\ncase 730:\n this.$ = {sets:$$[$0]}; \nbreak;\ncase 731:\n this.$ = {content:$$[$0]}; \nbreak;\ncase 732:\n this.$ = {select:$$[$0]}; \nbreak;\ncase 733:\n\n\t\t\tthis.$ = new yy.CreateEdge({from:$$[$0-3],to:$$[$0-1],name:$$[$0-5]});\r\n\t\t\tyy.extend(this.$,$$[$0]);\r\n\nbreak;\ncase 734:\n this.$ = new yy.CreateGraph({graph:$$[$0]}); \nbreak;\ncase 735:\n this.$ = new yy.CreateGraph({from:$$[$0]}); \nbreak;\ncase 738:\n\n\t\t\tthis.$ = $$[$0-2];\r\n\t\t\tif($$[$0-1]) this.$.json = new yy.Json({value:$$[$0-1]});\r\n\t\t\tif($$[$0]) this.$.as = $$[$0];\r\n\nbreak;\ncase 739:\n\n\t\t\tthis.$ = {source:$$[$0-6], target: $$[$0]};\r\n\t\t\tif($$[$0-3]) this.$.json = new yy.Json({value:$$[$0-3]});\r\n\t\t\tif($$[$0-2]) this.$.as = $$[$0-2];\r\n\t\t\tyy.extend(this.$,$$[$0-4]);\r\n\nbreak;\ncase 740:\n\n\t\t\tthis.$ = {source:$$[$0-5], target: $$[$0]};\r\n\t\t\tif($$[$0-2]) this.$.json = new yy.Json({value:$$[$0-3]});\r\n\t\t\tif($$[$0-1]) this.$.as = $$[$0-2];\r\n\nbreak;\ncase 741:\n\n\t\t\tthis.$ = {source:$$[$0-2], target: $$[$0]};\r\n\nbreak;\ncase 745:\n this.$ = {vars:$$[$0], method:$$[$0-1]}; \nbreak;\ncase 748: case 749:\n\n\t\t\tvar s3 = $$[$0-1];\r\n\t\t\tthis.$ = {prop:$$[$0-3], sharp:$$[$0-2], name:(typeof s3 == 'undefined')?undefined:s3.substr(1,s3.length-2), class:$$[$0]};\r\n\nbreak;\ncase 750:\n\n\t\t\tvar s2 = $$[$0-1];\r\n\t\t\tthis.$ = {sharp:$$[$0-2], name:(typeof s2 == 'undefined')?undefined:s2.substr(1,s2.length-2), class:$$[$0]};\r\n\nbreak;\ncase 751:\n\n\t\t\tvar s1 = $$[$0-1];\r\n\t\t\tthis.$ = {name:(typeof s1 == 'undefined')?undefined:s1.substr(1,s1.length-2), class:$$[$0]};\r\n\nbreak;\ncase 752:\n\n\t\t\tthis.$ = {class:$$[$0]};\r\n\nbreak;\ncase 758:\n this.$ = new yy.AddRule({left:$$[$0-2], right:$$[$0]}); \nbreak;\ncase 759:\n this.$ = new yy.AddRule({right:$$[$0]}); \nbreak;\ncase 762:\n this.$ = new yy.Term({termid:$$[$0]}); \nbreak;\ncase 763:\n this.$ = new yy.Term({termid:$$[$0-3],args:$$[$0-1]}); \nbreak;\ncase 766:\n\n\t\t\tthis.$ = new yy.CreateTrigger({trigger:$$[$0-6], when:$$[$0-5], action:$$[$0-4], table:$$[$0-2], statement:$$[$0]});\r\n\t\t\tif($$[$0].exists) this.$.exists = $$[$0].exists;\r\n\t\t\tif($$[$0].queries) this.$.queries = $$[$0].queries;\r\n\nbreak;\ncase 767:\n\n\t\t\tthis.$ = new yy.CreateTrigger({trigger:$$[$0-5], when:$$[$0-4], action:$$[$0-3], table:$$[$0-1], funcid:$$[$0]});\r\n\nbreak;\ncase 768:\n\n\t\t\tthis.$ = new yy.CreateTrigger({trigger:$$[$0-6], when:$$[$0-4], action:$$[$0-3], table:$$[$0-5], statement:$$[$0]});\r\n\t\t\tif($$[$0].exists) this.$.exists = $$[$0].exists;\r\n\t\t\tif($$[$0].queries) this.$.queries = $$[$0].queries;\r\n\nbreak;\ncase 769: case 770: case 772:\n this.$ = 'AFTER'; \nbreak;\ncase 771:\n this.$ = 'BEFORE'; \nbreak;\ncase 773:\n this.$ = 'INSTEADOF'; \nbreak;\ncase 774:\n this.$ = 'INSERT'; \nbreak;\ncase 775:\n this.$ = 'DELETE'; \nbreak;\ncase 776:\n this.$ = 'UPDATE'; \nbreak;\ncase 777:\n this.$ = new yy.DropTrigger({trigger:$$[$0]}); \nbreak;\ncase 778:\n this.$ = new yy.Reindex({indexid:$$[$0]});\nbreak;\ncase 1052: case 1072: case 1074: case 1076: case 1080: case 1082: case 1084: case 1086: case 1088: case 1090:\nthis.$ = [];\nbreak;\ncase 1053: case 1067: case 1069: case 1073: case 1075: case 1077: case 1081: case 1083: case 1085: case 1087: case 1089: case 1091:\n$$[$0-1].push($$[$0]);\nbreak;\ncase 1066: case 1068:\nthis.$ = [$$[$0]];\nbreak;\n}\n},\ntable: [o([10,606,767],$V0,{8:1,9:2,12:3,13:4,17:5,18:7,19:8,20:9,21:10,22:11,23:12,24:13,25:14,26:15,27:16,28:17,29:18,30:19,31:20,32:21,33:22,34:23,35:24,36:25,37:26,38:27,39:28,40:29,41:30,42:31,43:32,44:33,45:34,46:35,47:36,48:37,49:38,50:39,51:40,52:41,54:43,55:44,56:45,57:46,58:47,59:48,60:49,61:50,62:51,63:52,64:53,65:54,66:55,67:56,68:57,69:58,70:59,71:60,79:75,508:95,184:99,3:100,2:$V1,4:$V2,5:$V3,14:$V4,53:$V5,72:$V6,89:$V7,124:$V8,146:$V9,156:$Va,189:$Vb,270:$Vc,271:$Vd,293:$Ve,339:$Vf,342:$Vg,343:$Vh,400:$Vi,404:$Vj,405:$Vk,408:$Vl,410:$Vm,412:$Vn,413:$Vo,421:$Vp,422:$Vq,438:$Vr,440:$Vs,441:$Vt,443:$Vu,444:$Vv,445:$Vw,446:$Vx,447:$Vy,451:$Vz,452:$VA,455:$VB,456:$VC,509:$VD,511:$VE,512:$VF,521:$VG}),{1:[3]},{10:[1,105],11:106,606:$VH,767:$VI},o($VJ,[2,8]),o($VJ,[2,9]),o($VK,[2,12]),o($VJ,$V0,{17:5,18:7,19:8,20:9,21:10,22:11,23:12,24:13,25:14,26:15,27:16,28:17,29:18,30:19,31:20,32:21,33:22,34:23,35:24,36:25,37:26,38:27,39:28,40:29,41:30,42:31,43:32,44:33,45:34,46:35,47:36,48:37,49:38,50:39,51:40,52:41,54:43,55:44,56:45,57:46,58:47,59:48,60:49,61:50,62:51,63:52,64:53,65:54,66:55,67:56,68:57,69:58,70:59,71:60,79:75,508:95,184:99,3:100,12:109,2:$V1,4:$V2,5:$V3,15:[1,110],53:$V5,72:$V6,89:$V7,124:$V8,146:$V9,156:$Va,189:$Vb,270:$Vc,271:$Vd,293:$Ve,339:$Vf,342:$Vg,343:$Vh,400:$Vi,404:$Vj,405:$Vk,408:$Vl,410:$Vm,412:$Vn,413:$Vo,421:$Vp,422:$Vq,438:$Vr,440:$Vs,441:$Vt,443:$Vu,444:$Vv,445:$Vw,446:$Vx,447:$Vy,451:$Vz,452:$VA,455:$VB,456:$VC,509:$VD,511:$VE,512:$VF,521:$VG}),o($VK,[2,14]),o($VK,[2,15]),o($VK,[2,16]),o($VK,[2,17]),o($VK,[2,18]),o($VK,[2,19]),o($VK,[2,20]),o($VK,[2,21]),o($VK,[2,22]),o($VK,[2,23]),o($VK,[2,24]),o($VK,[2,25]),o($VK,[2,26]),o($VK,[2,27]),o($VK,[2,28]),o($VK,[2,29]),o($VK,[2,30]),o($VK,[2,31]),o($VK,[2,32]),o($VK,[2,33]),o($VK,[2,34]),o($VK,[2,35]),o($VK,[2,36]),o($VK,[2,37]),o($VK,[2,38]),o($VK,[2,39]),o($VK,[2,40]),o($VK,[2,41]),o($VK,[2,42]),o($VK,[2,43]),o($VK,[2,44]),o($VK,[2,45]),o($VK,[2,46]),o($VK,[2,47]),o($VK,[2,48]),o($VK,[2,49]),o($VK,[2,50]),o($VK,[2,51]),o($VK,[2,52]),o($VK,[2,53]),o($VK,[2,54]),o($VK,[2,55]),o($VK,[2,56]),o($VK,[2,57]),o($VK,[2,58]),o($VK,[2,59]),o($VK,[2,60]),o($VK,[2,61]),o($VK,[2,62]),o($VK,[2,63]),o($VK,[2,64]),o($VK,[2,65]),o($VK,[2,66]),o($VK,[2,67]),{357:[1,111]},{2:$V1,3:112,4:$V2,5:$V3},{2:$V1,3:114,4:$V2,5:$V3,156:$VL,200:113,293:$VM,294:$VN,295:$VO,296:$VP,297:$VQ},o($VR,[2,506],{3:122,352:126,2:$V1,4:$V2,5:$V3,134:$VS,135:$VT,187:[1,124],193:[1,123],272:[1,130],273:[1,131],361:[1,132],409:[1,121],476:[1,125],513:[1,129]}),{145:$VU,453:133,454:134},{183:[1,136]},{409:[1,137]},{2:$V1,3:139,4:$V2,5:$V3,130:[1,145],193:[1,140],357:[1,144],401:141,409:[1,138],414:[1,142],513:[1,143]},{2:$V1,3:169,4:$V2,5:$V3,56:166,77:$VV,94:146,111:150,113:154,131:$VW,132:$VX,137:$VY,143:$VZ,144:162,145:$V_,149:$V$,152:$V01,154:$V11,156:$VL,158:168,179:$V21,180:$V31,181:$V41,196:152,200:148,201:156,202:157,244:$V51,245:$V61,258:151,259:147,260:149,261:153,262:155,263:158,264:159,265:160,266:163,267:164,269:$V71,270:$Vc,274:$V81,275:$V91,277:$Va1,284:$Vb1,285:$Vc1,286:$Vd1,287:$Ve1,288:$Vf1,289:$Vg1,290:$Vh1,291:$Vi1,293:$VM,294:$VN,295:$VO,296:$VP,297:$VQ,298:$Vj1,299:$Vk1,300:$Vl1,301:$Vm1,302:$Vn1,303:$Vo1,306:$Vp1,307:$Vq1,316:$Vr1,321:$Vs1,423:191,424:$Vt1,428:$Vu1},o($Vv1,$Vw1,{344:206,171:[1,207],198:$Vx1}),o($Vv1,$Vw1,{344:209,198:$Vx1}),{2:$V1,3:221,4:$V2,5:$V3,77:$Vy1,132:$Vz1,143:$VZ,144:214,145:$V_,152:$V01,156:$VL,181:$V41,198:[1,212],199:215,200:217,201:216,202:219,209:211,213:$VA1,214:220,293:$VM,294:$VN,295:$VO,296:$VP,297:$VQ,306:$Vp1,423:191,424:$Vt1,428:$Vu1,457:210},{2:$V1,3:223,4:$V2,5:$V3},{357:[1,224]},o($VB1,[2,1048],{80:225,106:226,107:[1,227]}),o($VC1,[2,1052],{90:228}),{2:$V1,3:232,4:$V2,5:$V3,190:[1,230],193:[1,233],271:[1,229],357:[1,234],409:[1,231]},{357:[1,235]},{2:$V1,3:238,4:$V2,5:$V3,73:236,75:237},o([310,606,767],$V0,{12:3,13:4,17:5,18:7,19:8,20:9,21:10,22:11,23:12,24:13,25:14,26:15,27:16,28:17,29:18,30:19,31:20,32:21,33:22,34:23,35:24,36:25,37:26,38:27,39:28,40:29,41:30,42:31,43:32,44:33,45:34,46:35,47:36,48:37,49:38,50:39,51:40,52:41,54:43,55:44,56:45,57:46,58:47,59:48,60:49,61:50,62:51,63:52,64:53,65:54,66:55,67:56,68:57,69:58,70:59,71:60,79:75,508:95,184:99,3:100,9:240,2:$V1,4:$V2,5:$V3,14:$V4,53:$V5,72:$V6,89:$V7,124:$V8,146:$V9,156:$Va,189:$Vb,270:$Vc,271:$Vd,293:$Ve,339:$Vf,342:$Vg,343:$Vh,400:$Vi,404:$Vj,405:$Vk,408:$Vl,410:$Vm,412:$Vn,413:$Vo,421:$Vp,422:$Vq,438:$Vr,439:[1,239],440:$Vs,441:$Vt,443:$Vu,444:$Vv,445:$Vw,446:$Vx,447:$Vy,451:$Vz,452:$VA,455:$VB,456:$VC,509:$VD,511:$VE,512:$VF,521:$VG}),{439:[1,241]},{439:[1,242]},{2:$V1,3:244,4:$V2,5:$V3,409:[1,243]},{2:$V1,3:246,4:$V2,5:$V3,199:245},o($VD1,[2,314]),{113:247,132:$VX,300:$Vl1},{2:$V1,3:114,4:$V2,5:$V3,113:253,131:$VW,132:[1,250],143:$VZ,144:248,145:$VE1,152:$V01,156:$VL,181:$V41,196:252,200:257,201:256,261:254,262:255,269:$VF1,278:249,293:$VM,294:$VN,295:$VO,296:$VP,297:$VQ,298:$Vj1,299:$Vk1,300:$Vl1,301:$Vm1,306:$Vp1,423:191,424:$Vt1,428:$Vu1},{2:$V1,3:169,4:$V2,5:$V3,56:166,77:$VV,94:259,111:150,113:154,131:$VW,132:$VX,137:$VY,143:$VZ,144:162,145:$V_,149:$V$,152:$V01,154:$V11,156:$VL,158:168,179:$V21,180:$V31,181:$V41,196:152,200:148,201:156,202:157,244:$V51,245:$V61,258:151,259:147,260:149,261:153,262:155,263:158,264:159,265:160,266:163,267:164,269:$V71,270:$Vc,274:$V81,275:$V91,277:$Va1,284:$Vb1,285:$Vc1,286:$Vd1,287:$Ve1,288:$Vf1,289:$Vg1,290:$Vh1,291:$Vi1,293:$VM,294:$VN,295:$VO,296:$VP,297:$VQ,298:$Vj1,299:$Vk1,300:$Vl1,301:$Vm1,302:$Vn1,303:$Vo1,306:$Vp1,307:$Vq1,316:$Vr1,321:$Vs1,423:191,424:$Vt1,428:$Vu1},o($VK,[2,677]),o($VK,[2,678]),{2:$V1,3:169,4:$V2,5:$V3,40:261,56:166,77:$VV,79:75,89:$V7,94:262,111:150,113:154,131:$VW,132:$VX,137:$VY,143:$VZ,144:162,145:$V_,149:$V$,151:260,152:$V01,154:$V11,156:$VL,158:168,179:$V21,180:$V31,181:$V41,184:99,189:$Vb,196:152,200:148,201:156,202:157,244:$V51,245:$V61,258:151,259:147,260:149,261:153,262:155,263:158,264:159,265:160,266:163,267:164,269:$V71,270:$Vc,274:$V81,275:$V91,277:$Va1,284:$Vb1,285:$Vc1,286:$Vd1,287:$Ve1,288:$Vf1,289:$Vg1,290:$Vh1,291:$Vi1,293:$VM,294:$VN,295:$VO,296:$VP,297:$VQ,298:$Vj1,299:$Vk1,300:$Vl1,301:$Vm1,302:$Vn1,303:$Vo1,306:$Vp1,307:$Vq1,316:$Vr1,321:$Vs1,423:191,424:$Vt1,428:$Vu1},{2:$V1,3:268,4:$V2,5:$V3,113:265,132:$VX,300:$Vl1,448:263,449:264,450:266,451:$VG1},{2:$V1,3:269,4:$V2,5:$V3,143:$VH1,145:$VI1,435:270},{2:$V1,3:169,4:$V2,5:$V3,56:166,77:$VV,94:273,111:150,113:154,131:$VW,132:$VX,137:$VY,143:$VZ,144:162,145:$V_,149:$V$,152:$V01,154:$V11,156:$VL,158:168,179:$V21,180:$V31,181:$V41,196:152,200:148,201:156,202:157,244:$V51,245:$V61,258:151,259:147,260:149,261:153,262:155,263:158,264:159,265:160,266:163,267:164,269:$V71,270:$Vc,274:$V81,275:$V91,277:$Va1,284:$Vb1,285:$Vc1,286:$Vd1,287:$Ve1,288:$Vf1,289:$Vg1,290:$Vh1,291:$Vi1,293:$VM,294:$VN,295:$VO,296:$VP,297:$VQ,298:$Vj1,299:$Vk1,300:$Vl1,301:$Vm1,302:$Vn1,303:$Vo1,306:$Vp1,307:$Vq1,316:$Vr1,321:$Vs1,423:191,424:$Vt1,428:$Vu1},{509:[1,274]},{2:$V1,3:100,4:$V2,5:$V3,508:276,510:275},{2:$V1,3:114,4:$V2,5:$V3,156:$VL,200:277,293:$VM,294:$VN,295:$VO,296:$VP,297:$VQ},{2:$V1,3:169,4:$V2,5:$V3,56:166,77:$VV,94:278,111:150,113:154,131:$VW,132:$VX,137:$VY,143:$VZ,144:162,145:$V_,149:$V$,152:$V01,154:$V11,156:$VL,158:168,179:$V21,180:$V31,181:$V41,196:152,200:148,201:156,202:157,244:$V51,245:$V61,258:151,259:147,260:149,261:153,262:155,263:158,264:159,265:160,266:163,267:164,269:$V71,270:$Vc,274:$V81,275:$V91,277:$Va1,284:$Vb1,285:$Vc1,286:$Vd1,287:$Ve1,288:$Vf1,289:$Vg1,290:$Vh1,291:$Vi1,293:$VM,294:$VN,295:$VO,296:$VP,297:$VQ,298:$Vj1,299:$Vk1,300:$Vl1,301:$Vm1,302:$Vn1,303:$Vo1,306:$Vp1,307:$Vq1,316:$Vr1,321:$Vs1,423:191,424:$Vt1,428:$Vu1},o($VJ1,$VK1,{186:282,164:[1,281],185:[1,279],187:[1,280],195:$VL1}),o($VM1,[2,762],{77:[1,284]}),o([2,4,5,10,72,77,78,93,98,107,118,128,131,132,137,143,145,152,154,156,162,164,168,169,179,180,181,183,185,187,195,198,232,244,245,249,251,269,270,274,275,277,284,285,286,287,288,289,290,291,293,294,295,296,297,298,299,300,301,302,303,306,307,310,314,316,321,424,428,606,767],[2,152],{149:[1,285],150:[1,286],190:[1,287],191:[1,288],192:[1,289],193:[1,290],194:[1,291]}),o($VN1,[2,1]),o($VN1,[2,2]),{6:292,131:[1,441],172:[1,464],243:[1,440],244:[1,375],245:[1,409],249:[1,413],374:[1,406],385:[1,297],406:[1,299],414:[1,551],418:[1,473],420:[1,445],421:[1,511],437:[1,444],439:[1,527],444:[1,344],464:[1,420],468:[1,450],474:[1,343],518:[1,309],519:[1,301],520:[1,401],522:[1,293],523:[1,294],524:[1,295],525:[1,296],526:[1,298],527:[1,300],528:[1,302],529:[1,303],530:[1,304],531:[1,305],532:[1,306],533:[1,307],534:[1,308],535:[1,310],536:[1,311],537:[1,312],538:[1,313],539:[1,314],540:[1,315],541:[1,316],542:[1,317],543:[1,318],544:[1,319],545:[1,320],546:[1,321],547:[1,322],548:[1,323],549:[1,324],550:[1,325],551:[1,326],552:[1,327],553:[1,328],554:[1,329],555:[1,330],556:[1,331],557:[1,332],558:[1,333],559:[1,334],560:[1,335],561:[1,336],562:[1,337],563:[1,338],564:[1,339],565:[1,340],566:[1,341],567:[1,342],568:[1,345],569:[1,346],570:[1,347],571:[1,348],572:[1,349],573:[1,350],574:[1,351],575:[1,352],576:[1,353],577:[1,354],578:[1,355],579:[1,356],580:[1,357],581:[1,358],582:[1,359],583:[1,360],584:[1,361],585:[1,362],586:[1,363],587:[1,364],588:[1,365],589:[1,366],590:[1,367],591:[1,368],592:[1,369],593:[1,370],594:[1,371],595:[1,372],596:[1,373],597:[1,374],598:[1,376],599:[1,377],600:[1,378],601:[1,379],602:[1,380],603:[1,381],604:[1,382],605:[1,383],606:[1,384],607:[1,385],608:[1,386],609:[1,387],610:[1,388],611:[1,389],612:[1,390],613:[1,391],614:[1,392],615:[1,393],616:[1,394],617:[1,395],618:[1,396],619:[1,397],620:[1,398],621:[1,399],622:[1,400],623:[1,402],624:[1,403],625:[1,404],626:[1,405],627:[1,407],628:[1,408],629:[1,410],630:[1,411],631:[1,412],632:[1,414],633:[1,415],634:[1,416],635:[1,417],636:[1,418],637:[1,419],638:[1,421],639:[1,422],640:[1,423],641:[1,424],642:[1,425],643:[1,426],644:[1,427],645:[1,428],646:[1,429],647:[1,430],648:[1,431],649:[1,432],650:[1,433],651:[1,434],652:[1,435],653:[1,436],654:[1,437],655:[1,438],656:[1,439],657:[1,442],658:[1,443],659:[1,446],660:[1,447],661:[1,448],662:[1,449],663:[1,451],664:[1,452],665:[1,453],666:[1,454],667:[1,455],668:[1,456],669:[1,457],670:[1,458],671:[1,459],672:[1,460],673:[1,461],674:[1,462],675:[1,463],676:[1,465],677:[1,466],678:[1,467],679:[1,468],680:[1,469],681:[1,470],682:[1,471],683:[1,472],684:[1,474],685:[1,475],686:[1,476],687:[1,477],688:[1,478],689:[1,479],690:[1,480],691:[1,481],692:[1,482],693:[1,483],694:[1,484],695:[1,485],696:[1,486],697:[1,487],698:[1,488],699:[1,489],700:[1,490],701:[1,491],702:[1,492],703:[1,493],704:[1,494],705:[1,495],706:[1,496],707:[1,497],708:[1,498],709:[1,499],710:[1,500],711:[1,501],712:[1,502],713:[1,503],714:[1,504],715:[1,505],716:[1,506],717:[1,507],718:[1,508],719:[1,509],720:[1,510],721:[1,512],722:[1,513],723:[1,514],724:[1,515],725:[1,516],726:[1,517],727:[1,518],728:[1,519],729:[1,520],730:[1,521],731:[1,522],732:[1,523],733:[1,524],734:[1,525],735:[1,526],736:[1,528],737:[1,529],738:[1,530],739:[1,531],740:[1,532],741:[1,533],742:[1,534],743:[1,535],744:[1,536],745:[1,537],746:[1,538],747:[1,539],748:[1,540],749:[1,541],750:[1,542],751:[1,543],752:[1,544],753:[1,545],754:[1,546],755:[1,547],756:[1,548],757:[1,549],758:[1,550],759:[1,552],760:[1,553],761:[1,554],762:[1,555],763:[1,556],764:[1,557],765:[1,558],766:[1,559]},{1:[2,6]},o($VJ,$V0,{17:5,18:7,19:8,20:9,21:10,22:11,23:12,24:13,25:14,26:15,27:16,28:17,29:18,30:19,31:20,32:21,33:22,34:23,35:24,36:25,37:26,38:27,39:28,40:29,41:30,42:31,43:32,44:33,45:34,46:35,47:36,48:37,49:38,50:39,51:40,52:41,54:43,55:44,56:45,57:46,58:47,59:48,60:49,61:50,62:51,63:52,64:53,65:54,66:55,67:56,68:57,69:58,70:59,71:60,79:75,508:95,184:99,3:100,12:560,2:$V1,4:$V2,5:$V3,53:$V5,72:$V6,89:$V7,124:$V8,146:$V9,156:$Va,189:$Vb,270:$Vc,271:$Vd,293:$Ve,339:$Vf,342:$Vg,343:$Vh,400:$Vi,404:$Vj,405:$Vk,408:$Vl,410:$Vm,412:$Vn,413:$Vo,421:$Vp,422:$Vq,438:$Vr,440:$Vs,441:$Vt,443:$Vu,444:$Vv,445:$Vw,446:$Vx,447:$Vy,451:$Vz,452:$VA,455:$VB,456:$VC,509:$VD,511:$VE,512:$VF,521:$VG}),o($VO1,[2,1046]),o($VO1,[2,1047]),o($VJ,[2,10]),{16:[1,561]},{2:$V1,3:246,4:$V2,5:$V3,199:562},{409:[1,563]},o($VK,[2,765]),{77:$VP1},{77:[1,565]},{77:$VQ1},{77:[1,567]},{77:[1,568]},{77:[1,569]},{2:$V1,3:169,4:$V2,5:$V3,56:166,77:$VV,94:570,111:150,113:154,131:$VW,132:$VX,137:$VY,143:$VZ,144:162,145:$V_,149:$V$,152:$V01,154:$V11,156:$VL,158:168,179:$V21,180:$V31,181:$V41,196:152,200:148,201:156,202:157,244:$V51,245:$V61,258:151,259:147,260:149,261:153,262:155,263:158,264:159,265:160,266:163,267:164,269:$V71,270:$Vc,274:$V81,275:$V91,277:$Va1,284:$Vb1,285:$Vc1,286:$Vd1,287:$Ve1,288:$Vf1,289:$Vg1,290:$Vh1,291:$Vi1,293:$VM,294:$VN,295:$VO,296:$VP,297:$VQ,298:$Vj1,299:$Vk1,300:$Vl1,301:$Vm1,302:$Vn1,303:$Vo1,306:$Vp1,307:$Vq1,316:$Vr1,321:$Vs1,423:191,424:$Vt1,428:$Vu1},o($Vv1,$VR1,{354:571,156:$VS1}),{409:[1,573]},{2:$V1,3:574,4:$V2,5:$V3},{193:[1,575]},{2:$V1,3:581,4:$V2,5:$V3,132:$VT1,137:$VU1,143:$VH1,145:$VI1,152:$VV1,183:[1,577],435:588,477:576,478:578,479:579,482:580,486:585,497:582,501:584},{130:[1,592],353:589,357:[1,591],414:[1,590]},{113:594,132:$VX,183:[2,1146],300:$Vl1,475:593},o($VW1,[2,1140],{469:595,3:596,2:$V1,4:$V2,5:$V3}),{2:$V1,3:597,4:$V2,5:$V3},{4:[1,598]},{4:[1,599]},o($VR,[2,507]),o($VK,[2,691],{74:[1,600]}),o($VX1,[2,692]),{2:$V1,3:601,4:$V2,5:$V3},{2:$V1,3:246,4:$V2,5:$V3,199:602},{2:$V1,3:603,4:$V2,5:$V3},o($Vv1,$VY1,{402:604,156:$VZ1}),{409:[1,606]},{2:$V1,3:607,4:$V2,5:$V3},o($Vv1,$VY1,{402:608,156:$VZ1}),o($Vv1,$VY1,{402:609,156:$VZ1}),{2:$V1,3:610,4:$V2,5:$V3},o($V_1,[2,1134]),o($V_1,[2,1135]),o($VK,$V0,{17:5,18:7,19:8,20:9,21:10,22:11,23:12,24:13,25:14,26:15,27:16,28:17,29:18,30:19,31:20,32:21,33:22,34:23,35:24,36:25,37:26,38:27,39:28,40:29,41:30,42:31,43:32,44:33,45:34,46:35,47:36,48:37,49:38,50:39,51:40,52:41,54:43,55:44,56:45,57:46,58:47,59:48,60:49,61:50,62:51,63:52,64:53,65:54,66:55,67:56,68:57,69:58,70:59,71:60,79:75,508:95,184:99,3:100,12:611,114:628,331:640,2:$V1,4:$V2,5:$V3,53:$V5,72:$V6,89:$V7,99:$V$1,112:$V02,115:$V12,116:$V22,123:$V32,124:$V42,133:$V52,136:$V62,138:$V72,139:$V82,140:$V92,141:$Va2,142:$Vb2,146:$V9,154:$Vc2,156:$Va,170:$Vd2,171:$Ve2,179:$Vf2,180:$Vg2,189:$Vb,270:$Vc,271:$Vd,293:$Ve,315:$Vh2,316:$Vi2,317:$Vj2,319:$Vk2,320:$Vl2,321:$Vm2,322:$Vn2,323:$Vo2,324:$Vp2,325:$Vq2,326:$Vr2,327:$Vs2,328:$Vt2,329:$Vu2,330:$Vv2,334:$Vw2,335:$Vx2,336:$Vy2,337:$Vz2,339:$Vf,342:$Vg,343:$Vh,400:$Vi,404:$Vj,405:$Vk,408:$Vl,410:$Vm,412:$Vn,413:$Vo,421:$Vp,422:$Vq,438:$Vr,440:$Vs,441:$Vt,443:$Vu,444:$Vv,445:$Vw,446:$Vx,447:$Vy,451:$Vz,452:$VA,455:$VB,456:$VC,509:$VD,511:$VE,512:$VF,521:$VG}),o($VD1,[2,291]),o($VD1,[2,292]),o($VD1,[2,293]),o($VD1,[2,294]),o($VD1,[2,295]),o($VD1,[2,296]),o($VD1,[2,297]),o($VD1,[2,298]),o($VD1,[2,299]),o($VD1,[2,300]),o($VD1,[2,301]),o($VD1,[2,302]),o($VD1,[2,303]),o($VD1,[2,304]),o($VD1,[2,305]),o($VD1,[2,306]),o($VD1,[2,307]),o($VD1,[2,308]),{2:$V1,3:169,4:$V2,5:$V3,26:657,27:656,36:652,40:651,56:166,77:$VV,79:75,89:$V7,94:654,111:150,113:154,131:$VW,132:$VX,137:$VY,143:$VZ,144:162,145:$V_,149:$V$,152:$V01,154:$V11,156:$VL,158:168,179:$V21,180:$V31,181:$V41,184:99,189:$Vb,196:152,200:148,201:156,202:157,244:$V51,245:$V61,258:151,259:147,260:149,261:153,262:155,263:158,264:159,265:160,266:163,267:164,268:653,269:$V71,270:$Vc,271:[1,658],274:$V81,275:$V91,277:$Va1,284:$Vb1,285:$Vc1,286:$Vd1,287:$Ve1,288:$Vf1,289:$Vg1,290:$Vh1,291:$Vi1,293:[1,655],294:$VN,295:$VO,296:$VP,297:$VQ,298:$Vj1,299:$Vk1,300:$Vl1,301:$Vm1,302:$Vn1,303:$Vo1,306:$Vp1,307:$Vq1,316:$Vr1,321:$Vs1,343:$Vh,423:191,424:$Vt1,428:$Vu1},o($VD1,[2,312]),o($VD1,[2,313]),{77:[1,659]},o([2,4,5,10,53,72,74,76,78,89,93,95,98,99,107,112,115,118,122,123,124,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,179,180,181,183,185,187,189,198,206,208,222,223,224,225,226,227,228,229,232,239,244,245,246,247,249,251,270,271,284,285,286,287,288,289,290,291,293,300,304,310,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,327,328,329,330,334,335,336,337,339,342,343,400,404,405,408,410,412,413,421,422,424,428,438,440,441,443,444,445,446,447,451,452,455,456,468,474,509,511,512,521,606,767],$VA2,{77:$VP1,116:[1,660]}),{2:$V1,3:169,4:$V2,5:$V3,56:166,77:$VV,94:661,111:150,113:154,131:$VW,132:$VX,137:$VY,143:$VZ,144:162,145:$V_,149:$V$,152:$V01,154:$V11,156:$VL,158:168,179:$V21,180:$V31,181:$V41,196:152,200:148,201:156,202:157,244:$V51,245:$V61,258:151,259:147,260:149,261:153,262:155,263:158,264:159,265:160,266:163,267:164,269:$V71,270:$Vc,274:$V81,275:$V91,277:$Va1,284:$Vb1,285:$Vc1,286:$Vd1,287:$Ve1,288:$Vf1,289:$Vg1,290:$Vh1,291:$Vi1,293:$VM,294:$VN,295:$VO,296:$VP,297:$VQ,298:$Vj1,299:$Vk1,300:$Vl1,301:$Vm1,302:$Vn1,303:$Vo1,306:$Vp1,307:$Vq1,316:$Vr1,321:$Vs1,423:191,424:$Vt1,428:$Vu1},{2:$V1,3:169,4:$V2,5:$V3,56:166,77:$VV,94:662,111:150,113:154,131:$VW,132:$VX,137:$VY,143:$VZ,144:162,145:$V_,149:$V$,152:$V01,154:$V11,156:$VL,158:168,179:$V21,180:$V31,181:$V41,196:152,200:148,201:156,202:157,244:$V51,245:$V61,258:151,259:147,260:149,261:153,262:155,263:158,264:159,265:160,266:163,267:164,269:$V71,270:$Vc,274:$V81,275:$V91,277:$Va1,284:$Vb1,285:$Vc1,286:$Vd1,287:$Ve1,288:$Vf1,289:$Vg1,290:$Vh1,291:$Vi1,293:$VM,294:$VN,295:$VO,296:$VP,297:$VQ,298:$Vj1,299:$Vk1,300:$Vl1,301:$Vm1,302:$Vn1,303:$Vo1,306:$Vp1,307:$Vq1,316:$Vr1,321:$Vs1,423:191,424:$Vt1,428:$Vu1},{2:$V1,3:169,4:$V2,5:$V3,56:166,77:$VV,94:663,111:150,113:154,131:$VW,132:$VX,137:$VY,143:$VZ,144:162,145:$V_,149:$V$,152:$V01,154:$V11,156:$VL,158:168,179:$V21,180:$V31,181:$V41,196:152,200:148,201:156,202:157,244:$V51,245:$V61,258:151,259:147,260:149,261:153,262:155,263:158,264:159,265:160,266:163,267:164,269:$V71,270:$Vc,274:$V81,275:$V91,277:$Va1,284:$Vb1,285:$Vc1,286:$Vd1,287:$Ve1,288:$Vf1,289:$Vg1,290:$Vh1,291:$Vi1,293:$VM,294:$VN,295:$VO,296:$VP,297:$VQ,298:$Vj1,299:$Vk1,300:$Vl1,301:$Vm1,302:$Vn1,303:$Vo1,306:$Vp1,307:$Vq1,316:$Vr1,321:$Vs1,423:191,424:$Vt1,428:$Vu1},{2:$V1,3:169,4:$V2,5:$V3,56:166,77:$VV,94:664,111:150,113:154,131:$VW,132:$VX,137:$VY,143:$VZ,144:162,145:$V_,149:$V$,152:$V01,154:$V11,156:$VL,158:168,179:$V21,180:$V31,181:$V41,196:152,200:148,201:156,202:157,244:$V51,245:$V61,258:151,259:147,260:149,261:153,262:155,263:158,264:159,265:160,266:163,267:164,269:$V71,270:$Vc,274:$V81,275:$V91,277:$Va1,284:$Vb1,285:$Vc1,286:$Vd1,287:$Ve1,288:$Vf1,289:$Vg1,290:$Vh1,291:$Vi1,293:$VM,294:$VN,295:$VO,296:$VP,297:$VQ,298:$Vj1,299:$Vk1,300:$Vl1,301:$Vm1,302:$Vn1,303:$Vo1,306:$Vp1,307:$Vq1,316:$Vr1,321:$Vs1,423:191,424:$Vt1,428:$Vu1},{2:$V1,3:169,4:$V2,5:$V3,56:166,77:$VV,94:665,111:150,113:154,131:$VW,132:$VX,137:$VY,143:$VZ,144:162,145:$V_,149:$V$,152:$V01,154:$V11,156:$VL,158:168,179:$V21,180:$V31,181:$V41,196:152,200:148,201:156,202:157,244:$V51,245:$V61,258:151,259:147,260:149,261:153,262:155,263:158,264:159,265:160,266:163,267:164,269:$V71,270:$Vc,274:$V81,275:$V91,277:$Va1,284:$Vb1,285:$Vc1,286:$Vd1,287:$Ve1,288:$Vf1,289:$Vg1,290:$Vh1,291:$Vi1,293:$VM,294:$VN,295:$VO,296:$VP,297:$VQ,298:$Vj1,299:$Vk1,300:$Vl1,301:$Vm1,302:$Vn1,303:$Vo1,306:$Vp1,307:$Vq1,316:$Vr1,321:$Vs1,423:191,424:$Vt1,428:$Vu1},o($VD1,[2,286]),o([2,4,5,10,53,72,74,76,77,78,89,93,95,98,99,107,112,115,116,118,122,123,124,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,179,180,181,183,185,187,189,198,206,208,222,223,224,225,226,227,228,229,230,231,232,239,244,245,246,247,249,251,253,269,270,271,274,275,277,284,285,286,287,288,289,290,291,293,294,295,296,297,298,299,300,301,302,303,304,306,307,310,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,327,328,329,330,334,335,336,337,339,342,343,347,360,372,373,377,378,400,404,405,408,410,412,413,419,421,422,424,428,430,438,440,441,443,444,445,446,447,451,452,455,456,468,474,509,511,512,521,606,767,768,769],[2,361]),o($VB2,[2,362]),o($VB2,[2,363]),o($VB2,$VC2),o($VB2,[2,365]),o([2,4,5,10,53,72,74,76,77,78,89,93,95,98,99,107,112,115,116,118,122,123,124,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,179,180,181,183,185,187,189,198,206,208,222,223,224,225,226,227,228,229,230,232,239,244,245,246,247,249,251,270,271,284,285,286,287,288,289,290,291,293,300,301,304,310,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,327,328,329,330,334,335,336,337,339,342,343,347,360,372,373,377,378,400,404,405,408,410,412,413,421,422,424,428,430,438,440,441,443,444,445,446,447,451,452,455,456,468,474,509,511,512,521,606,767],[2,366]),{2:$V1,3:667,4:$V2,5:$V3,131:[1,668],305:666},{2:$V1,3:669,4:$V2,5:$V3},o($VB2,[2,372]),o($VB2,[2,373]),{2:$V1,3:670,4:$V2,5:$V3,77:$VD2,113:672,131:$VW,132:$VX,143:$VZ,152:$V01,181:$V41,196:673,201:675,261:674,298:$Vj1,299:$Vk1,300:$Vl1,306:$Vp1,423:676,428:$Vu1},{77:[1,677]},{2:$V1,3:169,4:$V2,5:$V3,56:166,77:$VV,94:678,111:150,113:154,131:$VW,132:$VX,137:$VY,143:$VZ,144:162,145:$V_,149:$V$,152:$V01,154:$V11,156:$VL,158:168,179:$V21,180:$V31,181:$V41,196:152,200:148,201:156,202:157,244:$V51,245:$V61,258:151,259:147,260:149,261:153,262:155,263:158,264:159,265:160,266:163,267:164,269:$V71,270:$Vc,274:$V81,275:$V91,277:$Va1,284:$Vb1,285:$Vc1,286:$Vd1,287:$Ve1,288:$Vf1,289:$Vg1,290:$Vh1,291:$Vi1,293:$VM,294:$VN,295:$VO,296:$VP,297:$VQ,298:$Vj1,299:$Vk1,300:$Vl1,301:$Vm1,302:$Vn1,303:$Vo1,306:$Vp1,307:$Vq1,308:679,311:680,312:$VE2,316:$Vr1,321:$Vs1,423:191,424:$Vt1,428:$Vu1},{77:[1,682]},{77:[1,683]},o($VF2,[2,629]),{2:$V1,3:698,4:$V2,5:$V3,77:$VG2,111:693,113:691,131:$VW,132:$VX,143:$VZ,144:688,145:$VE1,152:$V01,156:$VL,181:$V41,196:690,200:696,201:695,261:692,262:694,293:$VM,294:$VN,295:$VO,296:$VP,297:$VQ,298:$Vj1,299:$Vk1,300:$Vl1,301:$Vm1,304:[1,686],306:$Vp1,423:191,424:$Vt1,425:684,426:687,427:689,428:$Vu1,431:685},{2:$V1,3:169,4:$V2,5:$V3,56:166,77:$VV,94:262,111:150,113:154,131:$VW,132:$VX,137:$VY,143:$VZ,144:162,145:$V_,149:$V$,151:699,152:$V01,154:$V11,156:$VL,158:168,179:$V21,180:$V31,181:$V41,196:152,200:148,201:156,202:157,244:$V51,245:$V61,258:151,259:147,260:149,261:153,262:155,263:158,264:159,265:160,266:163,267:164,269:$V71,270:$Vc,274:$V81,275:$V91,277:$Va1,284:$Vb1,285:$Vc1,286:$Vd1,287:$Ve1,288:$Vf1,289:$Vg1,290:$Vh1,291:$Vi1,293:$VM,294:$VN,295:$VO,296:$VP,297:$VQ,298:$Vj1,299:$Vk1,300:$Vl1,301:$Vm1,302:$Vn1,303:$Vo1,306:$Vp1,307:$Vq1,316:$Vr1,321:$Vs1,423:191,424:$Vt1,428:$Vu1},{2:$V1,3:700,4:$V2,5:$V3,156:$VL,200:701,293:$VM,294:$VN,295:$VO,296:$VP,297:$VQ},{77:[2,339]},{77:[2,340]},{77:[2,341]},{77:[2,342]},{77:[2,343]},{77:[2,344]},{77:[2,345]},{77:[2,346]},{77:[2,347]},{77:[2,348]},{2:$V1,3:707,4:$V2,5:$V3,131:$VH2,132:$VI2,429:702,430:[1,703],432:704},{2:$V1,3:246,4:$V2,5:$V3,199:708},{293:[1,709]},o($Vv1,[2,477]),{2:$V1,3:246,4:$V2,5:$V3,199:710},{231:[1,712],458:711},{231:[2,700]},{2:$V1,3:221,4:$V2,5:$V3,77:$Vy1,132:$Vz1,143:$VZ,144:214,145:$V_,152:$V01,156:$VL,181:$V41,199:215,200:217,201:216,202:219,209:713,213:$VA1,214:220,293:$VM,294:$VN,295:$VO,296:$VP,297:$VQ,306:$Vp1,423:191,424:$Vt1,428:$Vu1},{40:714,79:75,89:$V7,184:99,189:$Vb},o($VJ2,[2,1096],{210:715,76:[1,716]}),o($VK2,[2,185],{3:717,2:$V1,4:$V2,5:$V3,76:[1,718],154:[1,719]}),o($VK2,[2,189],{3:720,2:$V1,4:$V2,5:$V3,76:[1,721]}),o($VK2,[2,190],{3:722,2:$V1,4:$V2,5:$V3,76:[1,723]}),o($VK2,[2,193]),o($VK2,[2,194],{3:724,2:$V1,4:$V2,5:$V3,76:[1,725]}),o($VK2,[2,197],{3:726,2:$V1,4:$V2,5:$V3,76:[1,727]}),o([2,4,5,10,72,74,76,78,93,98,118,128,154,162,168,169,183,206,208,222,223,224,225,226,227,228,229,230,231,232,249,251,310,314,606,767],$VL2,{77:$VP1,116:$VM2}),o([2,4,5,10,72,74,76,78,93,98,118,128,162,168,169,206,208,222,223,224,225,226,227,228,229,230,231,232,249,251,310,314,606,767],[2,200]),o($VK,[2,778]),{2:$V1,3:246,4:$V2,5:$V3,199:729},o($VN2,$VO2,{81:730,198:$VP2}),o($VB1,[2,1049]),o($VQ2,[2,1062],{108:732,190:[1,733]}),o([10,78,183,310,314,606,767],$VO2,{423:191,81:734,117:735,3:736,114:739,144:761,158:771,160:772,2:$V1,4:$V2,5:$V3,72:$VR2,76:$VS2,77:$VT2,112:$VU2,115:$V12,116:$V22,118:$VV2,122:$VW2,123:$VX2,124:$VY2,128:$VZ2,129:$V_2,130:$V$2,131:$V03,132:$V13,133:$V23,134:$V33,135:$V43,136:$V53,137:$V63,138:$V73,139:$V83,140:$V93,141:$Va3,142:$Vb3,143:$Vc3,145:$Vd3,146:$Ve3,148:$Vf3,149:$Vg3,150:$Vh3,152:$Vi3,154:$Vj3,156:$Vk3,162:$Vl3,164:$Vm3,166:$Vn3,168:$Vo3,169:$Vp3,170:$Vq3,171:$Vr3,172:$Vs3,173:$Vt3,175:$Vu3,185:$Vv3,187:$Vw3,198:$VP2,244:$V51,245:$V61,284:$Vb1,285:$Vc1,286:$Vd1,287:$Ve1,288:$Vf1,289:$Vg1,290:$Vh1,291:$Vi1,424:$Vt1,428:$Vu1}),{357:[1,785]},{183:[1,786]},o($VK,[2,599],{112:[1,787]}),{409:[1,788]},{183:[1,789]},o($VK,[2,603],{112:[1,790],183:[1,791]}),{2:$V1,3:246,4:$V2,5:$V3,199:792},{40:793,74:[1,794],79:75,89:$V7,184:99,189:$Vb},o($Vx3,[2,70]),{76:[1,795]},o($VK,[2,672]),{11:106,310:[1,796],606:$VH,767:$VI},o($VK,[2,670]),o($VK,[2,671]),{2:$V1,3:797,4:$V2,5:$V3},o($VK,[2,592]),{146:[1,798]},o([2,4,5,10,53,72,74,76,77,78,89,95,124,128,143,145,146,148,149,152,154,156,181,183,187,189,230,270,271,293,301,306,310,314,339,342,343,347,348,360,372,373,377,378,400,404,405,406,407,408,410,412,413,421,422,424,428,438,440,441,443,444,445,446,447,451,452,455,456,509,511,512,518,519,520,521,606,767],$VL2,{116:$VM2}),o($VK,[2,620]),o($VK,[2,621]),o($VK,[2,622]),o($VK,$VC2,{74:[1,799]}),{77:$VD2,113:672,131:$VW,132:$VX,143:$VZ,152:$V01,181:$V41,196:673,201:675,261:674,298:$Vj1,299:$Vk1,300:$Vl1,306:$Vp1,423:676,428:$Vu1},o($Vy3,[2,323]),o($Vy3,[2,324]),o($Vy3,[2,325]),o($Vy3,[2,326]),o($Vy3,[2,327]),o($Vy3,[2,328]),o($Vy3,[2,329]),o($VK,$V0,{17:5,18:7,19:8,20:9,21:10,22:11,23:12,24:13,25:14,26:15,27:16,28:17,29:18,30:19,31:20,32:21,33:22,34:23,35:24,36:25,37:26,38:27,39:28,40:29,41:30,42:31,43:32,44:33,45:34,46:35,47:36,48:37,49:38,50:39,51:40,52:41,54:43,55:44,56:45,57:46,58:47,59:48,60:49,61:50,62:51,63:52,64:53,65:54,66:55,67:56,68:57,69:58,70:59,71:60,79:75,508:95,184:99,3:100,114:628,331:640,12:800,2:$V1,4:$V2,5:$V3,53:$V5,72:$V6,89:$V7,99:$V$1,112:$V02,115:$V12,116:$V22,123:$V32,124:$V42,133:$V52,136:$V62,138:$V72,139:$V82,140:$V92,141:$Va2,142:$Vb2,146:$V9,154:$Vc2,156:$Va,170:$Vd2,171:$Ve2,179:$Vf2,180:$Vg2,189:$Vb,270:$Vc,271:$Vd,293:$Ve,315:$Vh2,316:$Vi2,317:$Vj2,319:$Vk2,320:$Vl2,321:$Vm2,322:$Vn2,323:$Vo2,324:$Vp2,325:$Vq2,326:$Vr2,327:$Vs2,328:$Vt2,329:$Vu2,330:$Vv2,334:$Vw2,335:$Vx2,336:$Vy2,337:$Vz2,339:$Vf,342:$Vg,343:$Vh,400:$Vi,404:$Vj,405:$Vk,408:$Vl,410:$Vm,412:$Vn,413:$Vo,421:$Vp,422:$Vq,438:$Vr,440:$Vs,441:$Vt,443:$Vu,444:$Vv,445:$Vw,446:$Vx,447:$Vy,451:$Vz,452:$VA,455:$VB,456:$VC,509:$VD,511:$VE,512:$VF,521:$VG}),o($VK,[2,680],{74:$Vz3}),o($VK,[2,681]),o($VA3,[2,359],{114:628,331:640,99:$V$1,112:$V02,115:$V12,116:$V22,123:$V32,124:$VB3,133:$V52,136:$V62,138:$V72,139:$V82,140:$V92,141:$Va2,142:$Vb2,154:$Vc2,170:$Vd2,171:$Ve2,179:$Vf2,180:$Vg2,315:$Vh2,316:$Vi2,317:$Vj2,319:$Vk2,320:$Vl2,321:$Vm2,322:$Vn2,323:$Vo2,324:$Vp2,325:$Vq2,326:$Vr2,327:$Vs2,328:$Vt2,329:$Vu2,330:$Vv2,334:$Vw2,335:$Vx2,336:$Vy2,337:$Vz2}),o($VK,[2,682],{74:[1,803]}),o($VK,[2,683],{74:[1,804]}),o($VX1,[2,688]),o($VX1,[2,690]),o($VX1,[2,684]),o($VX1,[2,685]),{114:810,115:$V12,116:$V22,124:[1,805],230:$VC3,433:806,434:807,437:$VD3},{2:$V1,3:811,4:$V2,5:$V3},o($Vv1,[2,661]),o($Vv1,[2,662]),o($VK,[2,619],{114:628,331:640,99:$V$1,112:$V02,115:$V12,116:$V22,123:$V32,124:$VB3,133:$V52,136:$V62,138:$V72,139:$V82,140:$V92,141:$Va2,142:$Vb2,154:$Vc2,170:$Vd2,171:$Ve2,179:$Vf2,180:$Vg2,315:$Vh2,316:$Vi2,317:$Vj2,319:$Vk2,320:$Vl2,321:$Vm2,322:$Vn2,323:$Vo2,324:$Vp2,325:$Vq2,326:$Vr2,327:$Vs2,328:$Vt2,329:$Vu2,330:$Vv2,334:$Vw2,335:$Vx2,336:$Vy2,337:$Vz2}),{2:$V1,3:100,4:$V2,5:$V3,508:276,510:812},o($VK,[2,759],{74:$VE3}),o($VF3,[2,761]),o($VK,[2,764]),o($VK,[2,686],{114:628,331:640,99:$V$1,112:$V02,115:$V12,116:$V22,123:$V32,124:$VB3,133:$V52,136:$V62,138:$V72,139:$V82,140:$V92,141:$Va2,142:$Vb2,154:$Vc2,170:$Vd2,171:$Ve2,179:$Vf2,180:$Vg2,315:$Vh2,316:$Vi2,317:$Vj2,319:$Vk2,320:$Vl2,321:$Vm2,322:$Vn2,323:$Vo2,324:$Vp2,325:$Vq2,326:$Vr2,327:$Vs2,328:$Vt2,329:$Vu2,330:$Vv2,334:$Vw2,335:$Vx2,336:$Vy2,337:$Vz2}),o($VG3,$VK1,{186:814,195:$VL1}),o($VG3,$VK1,{186:815,195:$VL1}),o($VG3,$VK1,{186:816,195:$VL1}),o($VH3,[2,1092],{259:147,200:148,260:149,111:150,258:151,196:152,261:153,113:154,262:155,201:156,202:157,263:158,264:159,265:160,144:162,266:163,267:164,56:166,158:168,3:169,423:191,188:817,174:818,257:819,94:820,2:$V1,4:$V2,5:$V3,77:$VV,131:$VW,132:$VX,137:$VY,143:$VZ,145:$V_,149:$V$,152:$V01,154:$V11,156:$VL,179:$V21,180:$V31,181:$V41,244:$V51,245:$V61,269:$V71,270:$Vc,274:$V81,275:$V91,277:$Va1,284:$Vb1,285:$Vc1,286:$Vd1,287:$Ve1,288:$Vf1,289:$Vg1,290:$Vh1,291:$Vi1,293:$VM,294:$VN,295:$VO,296:$VP,297:$VQ,298:$Vj1,299:$Vk1,300:$Vl1,301:$Vm1,302:$Vn1,303:$Vo1,306:$Vp1,307:$Vq1,316:$Vr1,321:$Vs1,424:$Vt1,428:$Vu1}),{77:[1,822],131:$VW,196:821},{2:$V1,3:100,4:$V2,5:$V3,508:276,510:823},o($VI3,[2,153]),o($VI3,[2,154]),o($VI3,[2,155]),o($VI3,[2,156]),o($VI3,[2,157]),o($VI3,[2,158]),o($VI3,[2,159]),o($VN1,[2,3]),o($VN1,[2,779]),o($VN1,[2,780]),o($VN1,[2,781]),o($VN1,[2,782]),o($VN1,[2,783]),o($VN1,[2,784]),o($VN1,[2,785]),o($VN1,[2,786]),o($VN1,[2,787]),o($VN1,[2,788]),o($VN1,[2,789]),o($VN1,[2,790]),o($VN1,[2,791]),o($VN1,[2,792]),o($VN1,[2,793]),o($VN1,[2,794]),o($VN1,[2,795]),o($VN1,[2,796]),o($VN1,[2,797]),o($VN1,[2,798]),o($VN1,[2,799]),o($VN1,[2,800]),o($VN1,[2,801]),o($VN1,[2,802]),o($VN1,[2,803]),o($VN1,[2,804]),o($VN1,[2,805]),o($VN1,[2,806]),o($VN1,[2,807]),o($VN1,[2,808]),o($VN1,[2,809]),o($VN1,[2,810]),o($VN1,[2,811]),o($VN1,[2,812]),o($VN1,[2,813]),o($VN1,[2,814]),o($VN1,[2,815]),o($VN1,[2,816]),o($VN1,[2,817]),o($VN1,[2,818]),o($VN1,[2,819]),o($VN1,[2,820]),o($VN1,[2,821]),o($VN1,[2,822]),o($VN1,[2,823]),o($VN1,[2,824]),o($VN1,[2,825]),o($VN1,[2,826]),o($VN1,[2,827]),o($VN1,[2,828]),o($VN1,[2,829]),o($VN1,[2,830]),o($VN1,[2,831]),o($VN1,[2,832]),o($VN1,[2,833]),o($VN1,[2,834]),o($VN1,[2,835]),o($VN1,[2,836]),o($VN1,[2,837]),o($VN1,[2,838]),o($VN1,[2,839]),o($VN1,[2,840]),o($VN1,[2,841]),o($VN1,[2,842]),o($VN1,[2,843]),o($VN1,[2,844]),o($VN1,[2,845]),o($VN1,[2,846]),o($VN1,[2,847]),o($VN1,[2,848]),o($VN1,[2,849]),o($VN1,[2,850]),o($VN1,[2,851]),o($VN1,[2,852]),o($VN1,[2,853]),o($VN1,[2,854]),o($VN1,[2,855]),o($VN1,[2,856]),o($VN1,[2,857]),o($VN1,[2,858]),o($VN1,[2,859]),o($VN1,[2,860]),o($VN1,[2,861]),o($VN1,[2,862]),o($VN1,[2,863]),o($VN1,[2,864]),o($VN1,[2,865]),o($VN1,[2,866]),o($VN1,[2,867]),o($VN1,[2,868]),o($VN1,[2,869]),o($VN1,[2,870]),o($VN1,[2,871]),o($VN1,[2,872]),o($VN1,[2,873]),o($VN1,[2,874]),o($VN1,[2,875]),o($VN1,[2,876]),o($VN1,[2,877]),o($VN1,[2,878]),o($VN1,[2,879]),o($VN1,[2,880]),o($VN1,[2,881]),o($VN1,[2,882]),o($VN1,[2,883]),o($VN1,[2,884]),o($VN1,[2,885]),o($VN1,[2,886]),o($VN1,[2,887]),o($VN1,[2,888]),o($VN1,[2,889]),o($VN1,[2,890]),o($VN1,[2,891]),o($VN1,[2,892]),o($VN1,[2,893]),o($VN1,[2,894]),o($VN1,[2,895]),o($VN1,[2,896]),o($VN1,[2,897]),o($VN1,[2,898]),o($VN1,[2,899]),o($VN1,[2,900]),o($VN1,[2,901]),o($VN1,[2,902]),o($VN1,[2,903]),o($VN1,[2,904]),o($VN1,[2,905]),o($VN1,[2,906]),o($VN1,[2,907]),o($VN1,[2,908]),o($VN1,[2,909]),o($VN1,[2,910]),o($VN1,[2,911]),o($VN1,[2,912]),o($VN1,[2,913]),o($VN1,[2,914]),o($VN1,[2,915]),o($VN1,[2,916]),o($VN1,[2,917]),o($VN1,[2,918]),o($VN1,[2,919]),o($VN1,[2,920]),o($VN1,[2,921]),o($VN1,[2,922]),o($VN1,[2,923]),o($VN1,[2,924]),o($VN1,[2,925]),o($VN1,[2,926]),o($VN1,[2,927]),o($VN1,[2,928]),o($VN1,[2,929]),o($VN1,[2,930]),o($VN1,[2,931]),o($VN1,[2,932]),o($VN1,[2,933]),o($VN1,[2,934]),o($VN1,[2,935]),o($VN1,[2,936]),o($VN1,[2,937]),o($VN1,[2,938]),o($VN1,[2,939]),o($VN1,[2,940]),o($VN1,[2,941]),o($VN1,[2,942]),o($VN1,[2,943]),o($VN1,[2,944]),o($VN1,[2,945]),o($VN1,[2,946]),o($VN1,[2,947]),o($VN1,[2,948]),o($VN1,[2,949]),o($VN1,[2,950]),o($VN1,[2,951]),o($VN1,[2,952]),o($VN1,[2,953]),o($VN1,[2,954]),o($VN1,[2,955]),o($VN1,[2,956]),o($VN1,[2,957]),o($VN1,[2,958]),o($VN1,[2,959]),o($VN1,[2,960]),o($VN1,[2,961]),o($VN1,[2,962]),o($VN1,[2,963]),o($VN1,[2,964]),o($VN1,[2,965]),o($VN1,[2,966]),o($VN1,[2,967]),o($VN1,[2,968]),o($VN1,[2,969]),o($VN1,[2,970]),o($VN1,[2,971]),o($VN1,[2,972]),o($VN1,[2,973]),o($VN1,[2,974]),o($VN1,[2,975]),o($VN1,[2,976]),o($VN1,[2,977]),o($VN1,[2,978]),o($VN1,[2,979]),o($VN1,[2,980]),o($VN1,[2,981]),o($VN1,[2,982]),o($VN1,[2,983]),o($VN1,[2,984]),o($VN1,[2,985]),o($VN1,[2,986]),o($VN1,[2,987]),o($VN1,[2,988]),o($VN1,[2,989]),o($VN1,[2,990]),o($VN1,[2,991]),o($VN1,[2,992]),o($VN1,[2,993]),o($VN1,[2,994]),o($VN1,[2,995]),o($VN1,[2,996]),o($VN1,[2,997]),o($VN1,[2,998]),o($VN1,[2,999]),o($VN1,[2,1000]),o($VN1,[2,1001]),o($VN1,[2,1002]),o($VN1,[2,1003]),o($VN1,[2,1004]),o($VN1,[2,1005]),o($VN1,[2,1006]),o($VN1,[2,1007]),o($VN1,[2,1008]),o($VN1,[2,1009]),o($VN1,[2,1010]),o($VN1,[2,1011]),o($VN1,[2,1012]),o($VN1,[2,1013]),o($VN1,[2,1014]),o($VN1,[2,1015]),o($VN1,[2,1016]),o($VN1,[2,1017]),o($VN1,[2,1018]),o($VN1,[2,1019]),o($VN1,[2,1020]),o($VN1,[2,1021]),o($VN1,[2,1022]),o($VN1,[2,1023]),o($VN1,[2,1024]),o($VN1,[2,1025]),o($VN1,[2,1026]),o($VN1,[2,1027]),o($VN1,[2,1028]),o($VN1,[2,1029]),o($VN1,[2,1030]),o($VN1,[2,1031]),o($VN1,[2,1032]),o($VN1,[2,1033]),o($VN1,[2,1034]),o($VN1,[2,1035]),o($VN1,[2,1036]),o($VN1,[2,1037]),o($VN1,[2,1038]),o($VN1,[2,1039]),o($VN1,[2,1040]),o($VN1,[2,1041]),o($VN1,[2,1042]),o($VN1,[2,1043]),o($VN1,[2,1044]),o($VN1,[2,1045]),o($VJ,[2,7]),o($VJ,$V0,{17:5,18:7,19:8,20:9,21:10,22:11,23:12,24:13,25:14,26:15,27:16,28:17,29:18,30:19,31:20,32:21,33:22,34:23,35:24,36:25,37:26,38:27,39:28,40:29,41:30,42:31,43:32,44:33,45:34,46:35,47:36,48:37,49:38,50:39,51:40,52:41,54:43,55:44,56:45,57:46,58:47,59:48,60:49,61:50,62:51,63:52,64:53,65:54,66:55,67:56,68:57,69:58,70:59,71:60,79:75,508:95,184:99,3:100,12:824,2:$V1,4:$V2,5:$V3,53:$V5,72:$V6,89:$V7,124:$V8,146:$V9,156:$Va,189:$Vb,270:$Vc,271:$Vd,293:$Ve,339:$Vf,342:$Vg,343:$Vh,400:$Vi,404:$Vj,405:$Vk,408:$Vl,410:$Vm,412:$Vn,413:$Vo,421:$Vp,422:$Vq,438:$Vr,440:$Vs,441:$Vt,443:$Vu,444:$Vv,445:$Vw,446:$Vx,447:$Vy,451:$Vz,452:$VA,455:$VB,456:$VC,509:$VD,511:$VE,512:$VF,521:$VG}),{400:[1,828],405:[1,825],406:[1,826],407:[1,827]},{2:$V1,3:829,4:$V2,5:$V3},o($VG3,[2,1116],{292:830,770:832,78:[1,831],164:[1,834],185:[1,833]}),{2:$V1,3:169,4:$V2,5:$V3,56:166,77:$VV,94:262,111:150,113:154,131:$VW,132:$VX,137:$VY,143:$VZ,144:162,145:$V_,149:$V$,151:835,152:$V01,154:$V11,156:$VL,158:168,179:$V21,180:$V31,181:$V41,196:152,200:148,201:156,202:157,244:$V51,245:$V61,258:151,259:147,260:149,261:153,262:155,263:158,264:159,265:160,266:163,267:164,269:$V71,270:$Vc,274:$V81,275:$V91,277:$Va1,284:$Vb1,285:$Vc1,286:$Vd1,287:$Ve1,288:$Vf1,289:$Vg1,290:$Vh1,291:$Vi1,293:$VM,294:$VN,295:$VO,296:$VP,297:$VQ,298:$Vj1,299:$Vk1,300:$Vl1,301:$Vm1,302:$Vn1,303:$Vo1,306:$Vp1,307:$Vq1,316:$Vr1,321:$Vs1,423:191,424:$Vt1,428:$Vu1},{2:$V1,3:169,4:$V2,5:$V3,56:166,77:$VV,94:262,111:150,113:154,131:$VW,132:$VX,137:$VY,143:$VZ,144:162,145:$V_,149:$V$,151:836,152:$V01,154:$V11,156:$VL,158:168,179:$V21,180:$V31,181:$V41,196:152,200:148,201:156,202:157,244:$V51,245:$V61,258:151,259:147,260:149,261:153,262:155,263:158,264:159,265:160,266:163,267:164,269:$V71,270:$Vc,274:$V81,275:$V91,277:$Va1,284:$Vb1,285:$Vc1,286:$Vd1,287:$Ve1,288:$Vf1,289:$Vg1,290:$Vh1,291:$Vi1,293:$VM,294:$VN,295:$VO,296:$VP,297:$VQ,298:$Vj1,299:$Vk1,300:$Vl1,301:$Vm1,302:$Vn1,303:$Vo1,306:$Vp1,307:$Vq1,316:$Vr1,321:$Vs1,423:191,424:$Vt1,428:$Vu1},{2:$V1,3:837,4:$V2,5:$V3,132:[1,838]},{2:$V1,3:839,4:$V2,5:$V3,132:[1,840]},{2:$V1,3:169,4:$V2,5:$V3,56:166,77:$VV,94:841,111:150,113:154,131:$VW,132:$VX,137:$VY,143:$VZ,144:162,145:$V_,149:$V$,152:$V01,154:$V11,156:$VL,158:168,179:$V21,180:$V31,181:$V41,196:152,200:148,201:156,202:157,244:$V51,245:$V61,258:151,259:147,260:149,261:153,262:155,263:158,264:159,265:160,266:163,267:164,269:$V71,270:$Vc,274:$V81,275:$V91,277:$Va1,284:$Vb1,285:$Vc1,286:$Vd1,287:$Ve1,288:$Vf1,289:$Vg1,290:$Vh1,291:$Vi1,293:$VM,294:$VN,295:$VO,296:$VP,297:$VQ,298:$Vj1,299:$Vk1,300:$Vl1,301:$Vm1,302:$Vn1,303:$Vo1,306:$Vp1,307:$Vq1,316:$Vr1,321:$Vs1,423:191,424:$Vt1,428:$Vu1},{2:$V1,3:842,4:$V2,5:$V3,99:$V$1,112:$V02,114:628,115:$V12,116:$V22,123:$V32,124:$VB3,133:$V52,136:$V62,138:$V72,139:$V82,140:$V92,141:$Va2,142:$Vb2,154:$Vc2,170:$Vd2,171:$Ve2,179:$Vf2,180:$Vg2,315:$Vh2,316:$Vi2,317:$Vj2,319:$Vk2,320:$Vl2,321:$Vm2,322:$Vn2,323:$Vo2,324:$Vp2,325:$Vq2,326:$Vr2,327:$Vs2,328:$Vt2,329:$Vu2,330:$Vv2,331:640,334:$Vw2,335:$Vx2,336:$Vy2,337:$Vz2},{2:$V1,3:843,4:$V2,5:$V3},{154:[1,844]},o($VJ3,$VR1,{354:845,156:$VS1}),{230:[1,846]},{2:$V1,3:847,4:$V2,5:$V3},o($VK,[2,734],{74:$VK3}),{2:$V1,3:169,4:$V2,5:$V3,56:166,77:$VV,94:849,111:150,113:154,131:$VW,132:$VX,137:$VY,143:$VZ,144:162,145:$V_,149:$V$,152:$V01,154:$V11,156:$VL,158:168,179:$V21,180:$V31,181:$V41,196:152,200:148,201:156,202:157,244:$V51,245:$V61,258:151,259:147,260:149,261:153,262:155,263:158,264:159,265:160,266:163,267:164,269:$V71,270:$Vc,274:$V81,275:$V91,277:$Va1,284:$Vb1,285:$Vc1,286:$Vd1,287:$Ve1,288:$Vf1,289:$Vg1,290:$Vh1,291:$Vi1,293:$VM,294:$VN,295:$VO,296:$VP,297:$VQ,298:$Vj1,299:$Vk1,300:$Vl1,301:$Vm1,302:$Vn1,303:$Vo1,306:$Vp1,307:$Vq1,316:$Vr1,321:$Vs1,423:191,424:$Vt1,428:$Vu1},o($VF3,[2,737]),o($VL3,[2,1148],{423:191,480:850,144:851,139:$VM3,141:$VM3,145:$VE1,424:$Vt1,428:$Vu1}),{139:[1,852],141:[1,853]},o($VN3,$VO3,{494:855,497:856,77:[1,854],137:$VU1}),o($VP3,[2,1172],{498:857,132:[1,858]}),o($VQ3,[2,1176],{500:859,501:860,152:$VV1}),o($VQ3,[2,752]),o($VR3,[2,744]),{2:$V1,3:861,4:$V2,5:$V3,131:[1,862]},{2:$V1,3:863,4:$V2,5:$V3},{2:$V1,3:864,4:$V2,5:$V3},o($Vv1,$VR1,{354:865,156:$VS1}),o($Vv1,$VR1,{354:866,156:$VS1}),o($V_1,[2,496]),o($V_1,[2,497]),{183:[1,867]},{183:[2,1147]},o($VS3,[2,1142],{470:868,473:869,137:[1,870]}),o($VW1,[2,1141]),o($VT3,$VU3,{514:871,95:$VV3,230:[1,872],518:$VW3,519:$VX3,520:$VY3}),{76:[1,877]},{76:[1,878]},{145:$VU,454:879},{4:$VZ3,7:883,76:[1,881],276:880,391:882,393:$V_3},o($VK,[2,461],{128:[1,886]}),o($VK,[2,584]),{2:$V1,3:887,4:$V2,5:$V3},{302:[1,888]},o($VJ3,$VY1,{402:889,156:$VZ1}),o($VK,[2,598]),{2:$V1,3:246,4:$V2,5:$V3,199:891,403:890},{2:$V1,3:246,4:$V2,5:$V3,199:891,403:892},o($VK,[2,777]),o($VJ,[2,674],{442:893,314:[1,894]}),{2:$V1,3:169,4:$V2,5:$V3,56:166,77:$VV,94:895,111:150,113:154,131:$VW,132:$VX,137:$VY,143:$VZ,144:162,145:$V_,149:$V$,152:$V01,154:$V11,156:$VL,158:168,179:$V21,180:$V31,181:$V41,196:152,200:148,201:156,202:157,244:$V51,245:$V61,258:151,259:147,260:149,261:153,262:155,263:158,264:159,265:160,266:163,267:164,269:$V71,270:$Vc,274:$V81,275:$V91,277:$Va1,284:$Vb1,285:$Vc1,286:$Vd1,287:$Ve1,288:$Vf1,289:$Vg1,290:$Vh1,291:$Vi1,293:$VM,294:$VN,295:$VO,296:$VP,297:$VQ,298:$Vj1,299:$Vk1,300:$Vl1,301:$Vm1,302:$Vn1,303:$Vo1,306:$Vp1,307:$Vq1,316:$Vr1,321:$Vs1,423:191,424:$Vt1,428:$Vu1},{2:$V1,3:169,4:$V2,5:$V3,56:166,77:$VV,94:896,111:150,113:154,131:$VW,132:$VX,137:$VY,143:$VZ,144:162,145:$V_,149:$V$,152:$V01,154:$V11,156:$VL,158:168,179:$V21,180:$V31,181:$V41,196:152,200:148,201:156,202:157,244:$V51,245:$V61,258:151,259:147,260:149,261:153,262:155,263:158,264:159,265:160,266:163,267:164,269:$V71,270:$Vc,274:$V81,275:$V91,277:$Va1,284:$Vb1,285:$Vc1,286:$Vd1,287:$Ve1,288:$Vf1,289:$Vg1,290:$Vh1,291:$Vi1,293:$VM,294:$VN,295:$VO,296:$VP,297:$VQ,298:$Vj1,299:$Vk1,300:$Vl1,301:$Vm1,302:$Vn1,303:$Vo1,306:$Vp1,307:$Vq1,316:$Vr1,321:$Vs1,423:191,424:$Vt1,428:$Vu1},{2:$V1,3:169,4:$V2,5:$V3,56:166,77:$VV,94:897,111:150,113:154,131:$VW,132:$VX,137:$VY,143:$VZ,144:162,145:$V_,149:$V$,152:$V01,154:$V11,156:$VL,158:168,179:$V21,180:$V31,181:$V41,196:152,200:148,201:156,202:157,244:$V51,245:$V61,258:151,259:147,260:149,261:153,262:155,263:158,264:159,265:160,266:163,267:164,269:$V71,270:$Vc,274:$V81,275:$V91,277:$Va1,284:$Vb1,285:$Vc1,286:$Vd1,287:$Ve1,288:$Vf1,289:$Vg1,290:$Vh1,291:$Vi1,293:$VM,294:$VN,295:$VO,296:$VP,297:$VQ,298:$Vj1,299:$Vk1,300:$Vl1,301:$Vm1,302:$Vn1,303:$Vo1,306:$Vp1,307:$Vq1,316:$Vr1,321:$Vs1,423:191,424:$Vt1,428:$Vu1},{2:$V1,3:169,4:$V2,5:$V3,56:166,77:$VV,94:898,111:150,113:154,131:$VW,132:$VX,137:$VY,143:$VZ,144:162,145:$V_,149:$V$,152:$V01,154:$V11,156:$VL,158:168,179:$V21,180:$V31,181:$V41,196:152,200:148,201:156,202:157,244:$V51,245:$V61,258:151,259:147,260:149,261:153,262:155,263:158,264:159,265:160,266:163,267:164,269:$V71,270:$Vc,274:$V81,275:$V91,277:$Va1,284:$Vb1,285:$Vc1,286:$Vd1,287:$Ve1,288:$Vf1,289:$Vg1,290:$Vh1,291:$Vi1,293:$VM,294:$VN,295:$VO,296:$VP,297:$VQ,298:$Vj1,299:$Vk1,300:$Vl1,301:$Vm1,302:$Vn1,303:$Vo1,306:$Vp1,307:$Vq1,316:$Vr1,321:$Vs1,423:191,424:$Vt1,428:$Vu1},{2:$V1,3:169,4:$V2,5:$V3,56:166,77:$VV,94:899,111:150,113:154,131:$VW,132:$VX,137:$VY,143:$VZ,144:162,145:$V_,149:$V$,152:$V01,154:$V11,156:$VL,158:168,179:$V21,180:$V31,181:$V41,196:152,200:148,201:156,202:157,244:$V51,245:$V61,258:151,259:147,260:149,261:153,262:155,263:158,264:159,265:160,266:163,267:164,269:$V71,270:$Vc,274:$V81,275:$V91,277:$Va1,284:$Vb1,285:$Vc1,286:$Vd1,287:$Ve1,288:$Vf1,289:$Vg1,290:$Vh1,291:$Vi1,293:$VM,294:$VN,295:$VO,296:$VP,297:$VQ,298:$Vj1,299:$Vk1,300:$Vl1,301:$Vm1,302:$Vn1,303:$Vo1,306:$Vp1,307:$Vq1,316:$Vr1,321:$Vs1,423:191,424:$Vt1,428:$Vu1},{2:$V1,3:169,4:$V2,5:$V3,56:166,77:$VV,94:900,111:150,113:154,131:$VW,132:$VX,137:$VY,143:$VZ,144:162,145:$V_,149:$V$,152:$V01,154:$V11,156:$VL,158:168,179:$V21,180:$V31,181:$V41,196:152,200:148,201:156,202:157,244:$V51,245:$V61,258:151,259:147,260:149,261:153,262:155,263:158,264:159,265:160,266:163,267:164,269:$V71,270:$Vc,274:$V81,275:$V91,277:$Va1,284:$Vb1,285:$Vc1,286:$Vd1,287:$Ve1,288:$Vf1,289:$Vg1,290:$Vh1,291:$Vi1,293:$VM,294:$VN,295:$VO,296:$VP,297:$VQ,298:$Vj1,299:$Vk1,300:$Vl1,301:$Vm1,302:$Vn1,303:$Vo1,306:$Vp1,307:$Vq1,316:$Vr1,321:$Vs1,423:191,424:$Vt1,428:$Vu1},{2:$V1,3:169,4:$V2,5:$V3,56:166,77:$VV,94:901,111:150,113:154,131:$VW,132:$VX,137:$VY,143:$VZ,144:162,145:$V_,149:$V$,152:$V01,154:$V11,156:$VL,158:168,179:$V21,180:$V31,181:$V41,196:152,200:148,201:156,202:157,244:$V51,245:$V61,258:151,259:147,260:149,261:153,262:155,263:158,264:159,265:160,266:163,267:164,269:$V71,270:$Vc,274:$V81,275:$V91,277:$Va1,284:$Vb1,285:$Vc1,286:$Vd1,287:$Ve1,288:$Vf1,289:$Vg1,290:$Vh1,291:$Vi1,293:$VM,294:$VN,295:$VO,296:$VP,297:$VQ,298:$Vj1,299:$Vk1,300:$Vl1,301:$Vm1,302:$Vn1,303:$Vo1,306:$Vp1,307:$Vq1,316:$Vr1,321:$Vs1,423:191,424:$Vt1,428:$Vu1},{2:$V1,3:169,4:$V2,5:$V3,56:166,77:$VV,94:902,111:150,113:154,131:$VW,132:$VX,137:$VY,143:$VZ,144:162,145:$V_,149:$V$,152:$V01,154:$V11,156:$VL,158:168,179:$V21,180:$V31,181:$V41,196:152,200:148,201:156,202:157,244:$V51,245:$V61,258:151,259:147,260:149,261:153,262:155,263:158,264:159,265:160,266:163,267:164,269:$V71,270:$Vc,274:$V81,275:$V91,277:$Va1,284:$Vb1,285:$Vc1,286:$Vd1,287:$Ve1,288:$Vf1,289:$Vg1,290:$Vh1,291:$Vi1,293:$VM,294:$VN,295:$VO,296:$VP,297:$VQ,298:$Vj1,299:$Vk1,300:$Vl1,301:$Vm1,302:$Vn1,303:$Vo1,306:$Vp1,307:$Vq1,316:$Vr1,321:$Vs1,423:191,424:$Vt1,428:$Vu1},{2:$V1,3:169,4:$V2,5:$V3,56:166,77:$VV,94:903,111:150,113:154,131:$VW,132:$VX,137:$VY,143:$VZ,144:162,145:$V_,149:$V$,152:$V01,154:$V11,156:$VL,158:168,179:$V21,180:$V31,181:$V41,196:152,200:148,201:156,202:157,244:$V51,245:$V61,258:151,259:147,260:149,261:153,262:155,263:158,264:159,265:160,266:163,267:164,269:$V71,270:$Vc,274:$V81,275:$V91,277:$Va1,284:$Vb1,285:$Vc1,286:$Vd1,287:$Ve1,288:$Vf1,289:$Vg1,290:$Vh1,291:$Vi1,293:$VM,294:$VN,295:$VO,296:$VP,297:$VQ,298:$Vj1,299:$Vk1,300:$Vl1,301:$Vm1,302:$Vn1,303:$Vo1,306:$Vp1,307:$Vq1,316:$Vr1,321:$Vs1,423:191,424:$Vt1,428:$Vu1},{2:$V1,3:169,4:$V2,5:$V3,56:166,77:$VV,94:904,111:150,113:154,131:$VW,132:$VX,137:$VY,143:$VZ,144:162,145:$V_,149:$V$,152:$V01,154:$V11,156:$VL,158:168,179:$V21,180:$V31,181:$V41,196:152,200:148,201:156,202:157,244:$V51,245:$V61,258:151,259:147,260:149,261:153,262:155,263:158,264:159,265:160,266:163,267:164,269:$V71,270:$Vc,274:$V81,275:$V91,277:$Va1,284:$Vb1,285:$Vc1,286:$Vd1,287:$Ve1,288:$Vf1,289:$Vg1,290:$Vh1,291:$Vi1,293:$VM,294:$VN,295:$VO,296:$VP,297:$VQ,298:$Vj1,299:$Vk1,300:$Vl1,301:$Vm1,302:$Vn1,303:$Vo1,306:$Vp1,307:$Vq1,316:$Vr1,321:$Vs1,423:191,424:$Vt1,428:$Vu1},{2:$V1,3:169,4:$V2,5:$V3,56:166,77:$VV,94:905,111:150,113:154,131:$VW,132:$VX,137:$VY,143:$VZ,144:162,145:$V_,149:$V$,152:$V01,154:$V11,156:$VL,158:168,179:$V21,180:$V31,181:$V41,196:152,200:148,201:156,202:157,244:$V51,245:$V61,258:151,259:147,260:149,261:153,262:155,263:158,264:159,265:160,266:163,267:164,269:$V71,270:$Vc,274:$V81,275:$V91,277:$Va1,284:$Vb1,285:$Vc1,286:$Vd1,287:$Ve1,288:$Vf1,289:$Vg1,290:$Vh1,291:$Vi1,293:$VM,294:$VN,295:$VO,296:$VP,297:$VQ,298:$Vj1,299:$Vk1,300:$Vl1,301:$Vm1,302:$Vn1,303:$Vo1,306:$Vp1,307:$Vq1,316:$Vr1,321:$Vs1,423:191,424:$Vt1,428:$Vu1},{2:$V1,3:169,4:$V2,5:$V3,56:166,77:$VV,94:906,111:150,113:154,131:$VW,132:$VX,137:$VY,143:$VZ,144:162,145:$V_,149:$V$,152:$V01,154:$V11,156:$VL,158:168,179:$V21,180:$V31,181:$V41,196:152,200:148,201:156,202:157,244:$V51,245:$V61,258:151,259:147,260:149,261:153,262:155,263:158,264:159,265:160,266:163,267:164,269:$V71,270:$Vc,274:$V81,275:$V91,277:$Va1,284:$Vb1,285:$Vc1,286:$Vd1,287:$Ve1,288:$Vf1,289:$Vg1,290:$Vh1,291:$Vi1,293:$VM,294:$VN,295:$VO,296:$VP,297:$VQ,298:$Vj1,299:$Vk1,300:$Vl1,301:$Vm1,302:$Vn1,303:$Vo1,306:$Vp1,307:$Vq1,316:$Vr1,321:$Vs1,423:191,424:$Vt1,428:$Vu1},{2:$V1,3:169,4:$V2,5:$V3,56:166,77:$VV,94:907,111:150,113:154,131:$VW,132:$VX,137:$VY,143:$VZ,144:162,145:$V_,149:$V$,152:$V01,154:$V11,156:$VL,158:168,179:$V21,180:$V31,181:$V41,196:152,200:148,201:156,202:157,244:$V51,245:$V61,258:151,259:147,260:149,261:153,262:155,263:158,264:159,265:160,266:163,267:164,269:$V71,270:$Vc,274:$V81,275:$V91,277:$Va1,284:$Vb1,285:$Vc1,286:$Vd1,287:$Ve1,288:$Vf1,289:$Vg1,290:$Vh1,291:$Vi1,293:$VM,294:$VN,295:$VO,296:$VP,297:$VQ,298:$Vj1,299:$Vk1,300:$Vl1,301:$Vm1,302:$Vn1,303:$Vo1,306:$Vp1,307:$Vq1,316:$Vr1,321:$Vs1,423:191,424:$Vt1,428:$Vu1},{2:$V1,3:169,4:$V2,5:$V3,56:166,77:$VV,94:908,111:150,113:154,131:$VW,132:$VX,137:$VY,143:$VZ,144:162,145:$V_,149:$V$,152:$V01,154:$V11,156:$VL,158:168,179:$V21,180:$V31,181:$V41,196:152,200:148,201:156,202:157,244:$V51,245:$V61,258:151,259:147,260:149,261:153,262:155,263:158,264:159,265:160,266:163,267:164,269:$V71,270:$Vc,274:$V81,275:$V91,277:$Va1,284:$Vb1,285:$Vc1,286:$Vd1,287:$Ve1,288:$Vf1,289:$Vg1,290:$Vh1,291:$Vi1,293:$VM,294:$VN,295:$VO,296:$VP,297:$VQ,298:$Vj1,299:$Vk1,300:$Vl1,301:$Vm1,302:$Vn1,303:$Vo1,306:$Vp1,307:$Vq1,316:$Vr1,321:$Vs1,423:191,424:$Vt1,428:$Vu1},{2:$V1,3:169,4:$V2,5:$V3,56:166,77:$VV,94:909,111:150,113:154,131:$VW,132:$VX,137:$VY,143:$VZ,144:162,145:$V_,149:$V$,152:$V01,154:$V11,156:$VL,158:168,179:$V21,180:$V31,181:$V41,196:152,200:148,201:156,202:157,244:$V51,245:$V61,258:151,259:147,260:149,261:153,262:155,263:158,264:159,265:160,266:163,267:164,269:$V71,270:$Vc,274:$V81,275:$V91,277:$Va1,284:$Vb1,285:$Vc1,286:$Vd1,287:$Ve1,288:$Vf1,289:$Vg1,290:$Vh1,291:$Vi1,293:$VM,294:$VN,295:$VO,296:$VP,297:$VQ,298:$Vj1,299:$Vk1,300:$Vl1,301:$Vm1,302:$Vn1,303:$Vo1,306:$Vp1,307:$Vq1,316:$Vr1,321:$Vs1,423:191,424:$Vt1,428:$Vu1},{2:$V1,3:169,4:$V2,5:$V3,56:166,77:$VV,94:910,111:150,113:154,131:$VW,132:$VX,137:$VY,143:$VZ,144:162,145:$V_,149:$V$,152:$V01,154:$V11,156:$VL,158:168,179:$V21,180:$V31,181:$V41,196:152,200:148,201:156,202:157,244:$V51,245:$V61,258:151,259:147,260:149,261:153,262:155,263:158,264:159,265:160,266:163,267:164,269:$V71,270:$Vc,274:$V81,275:$V91,277:$Va1,284:$Vb1,285:$Vc1,286:$Vd1,287:$Ve1,288:$Vf1,289:$Vg1,290:$Vh1,291:$Vi1,293:$VM,294:$VN,295:$VO,296:$VP,297:$VQ,298:$Vj1,299:$Vk1,300:$Vl1,301:$Vm1,302:$Vn1,303:$Vo1,306:$Vp1,307:$Vq1,316:$Vr1,321:$Vs1,423:191,424:$Vt1,428:$Vu1},{2:$V1,3:911,4:$V2,5:$V3,77:[1,913],131:$VW,156:$VL,196:912,200:914,293:$VM,294:$VN,295:$VO,296:$VP,297:$VQ},{2:$V1,3:915,4:$V2,5:$V3,77:[1,917],131:$VW,156:$VL,196:916,200:918,293:$VM,294:$VN,295:$VO,296:$VP,297:$VQ},o($V$3,[2,445],{259:147,200:148,260:149,111:150,258:151,196:152,261:153,113:154,262:155,201:156,202:157,263:158,264:159,265:160,144:162,266:163,267:164,56:166,158:168,3:169,423:191,94:919,2:$V1,4:$V2,5:$V3,77:$VV,131:$VW,132:$VX,137:$VY,143:$VZ,145:$V_,149:$V$,152:$V01,154:$V11,156:$VL,179:$V21,180:$V31,181:$V41,244:$V51,245:$V61,269:$V71,270:$Vc,274:$V81,275:$V91,277:$Va1,284:$Vb1,285:$Vc1,286:$Vd1,287:$Ve1,288:$Vf1,289:$Vg1,290:$Vh1,291:$Vi1,293:$VM,294:$VN,295:$VO,296:$VP,297:$VQ,298:$Vj1,299:$Vk1,300:$Vl1,301:$Vm1,302:$Vn1,303:$Vo1,306:$Vp1,307:$Vq1,316:$Vr1,321:$Vs1,424:$Vt1,428:$Vu1}),o($V$3,[2,446],{259:147,200:148,260:149,111:150,258:151,196:152,261:153,113:154,262:155,201:156,202:157,263:158,264:159,265:160,144:162,266:163,267:164,56:166,158:168,3:169,423:191,94:920,2:$V1,4:$V2,5:$V3,77:$VV,131:$VW,132:$VX,137:$VY,143:$VZ,145:$V_,149:$V$,152:$V01,154:$V11,156:$VL,179:$V21,180:$V31,181:$V41,244:$V51,245:$V61,269:$V71,270:$Vc,274:$V81,275:$V91,277:$Va1,284:$Vb1,285:$Vc1,286:$Vd1,287:$Ve1,288:$Vf1,289:$Vg1,290:$Vh1,291:$Vi1,293:$VM,294:$VN,295:$VO,296:$VP,297:$VQ,298:$Vj1,299:$Vk1,300:$Vl1,301:$Vm1,302:$Vn1,303:$Vo1,306:$Vp1,307:$Vq1,316:$Vr1,321:$Vs1,424:$Vt1,428:$Vu1}),o($V$3,[2,447],{259:147,200:148,260:149,111:150,258:151,196:152,261:153,113:154,262:155,201:156,202:157,263:158,264:159,265:160,144:162,266:163,267:164,56:166,158:168,3:169,423:191,94:921,2:$V1,4:$V2,5:$V3,77:$VV,131:$VW,132:$VX,137:$VY,143:$VZ,145:$V_,149:$V$,152:$V01,154:$V11,156:$VL,179:$V21,180:$V31,181:$V41,244:$V51,245:$V61,269:$V71,270:$Vc,274:$V81,275:$V91,277:$Va1,284:$Vb1,285:$Vc1,286:$Vd1,287:$Ve1,288:$Vf1,289:$Vg1,290:$Vh1,291:$Vi1,293:$VM,294:$VN,295:$VO,296:$VP,297:$VQ,298:$Vj1,299:$Vk1,300:$Vl1,301:$Vm1,302:$Vn1,303:$Vo1,306:$Vp1,307:$Vq1,316:$Vr1,321:$Vs1,424:$Vt1,428:$Vu1}),o($V$3,[2,448],{259:147,200:148,260:149,111:150,258:151,196:152,261:153,113:154,262:155,201:156,202:157,263:158,264:159,265:160,144:162,266:163,267:164,56:166,158:168,3:169,423:191,94:922,2:$V1,4:$V2,5:$V3,77:$VV,131:$VW,132:$VX,137:$VY,143:$VZ,145:$V_,149:$V$,152:$V01,154:$V11,156:$VL,179:$V21,180:$V31,181:$V41,244:$V51,245:$V61,269:$V71,270:$Vc,274:$V81,275:$V91,277:$Va1,284:$Vb1,285:$Vc1,286:$Vd1,287:$Ve1,288:$Vf1,289:$Vg1,290:$Vh1,291:$Vi1,293:$VM,294:$VN,295:$VO,296:$VP,297:$VQ,298:$Vj1,299:$Vk1,300:$Vl1,301:$Vm1,302:$Vn1,303:$Vo1,306:$Vp1,307:$Vq1,316:$Vr1,321:$Vs1,424:$Vt1,428:$Vu1}),o($V$3,$V04,{259:147,200:148,260:149,111:150,258:151,196:152,261:153,113:154,262:155,201:156,202:157,263:158,264:159,265:160,144:162,266:163,267:164,56:166,158:168,3:169,423:191,94:923,2:$V1,4:$V2,5:$V3,77:$VV,131:$VW,132:$VX,137:$VY,143:$VZ,145:$V_,149:$V$,152:$V01,154:$V11,156:$VL,179:$V21,180:$V31,181:$V41,244:$V51,245:$V61,269:$V71,270:$Vc,274:$V81,275:$V91,277:$Va1,284:$Vb1,285:$Vc1,286:$Vd1,287:$Ve1,288:$Vf1,289:$Vg1,290:$Vh1,291:$Vi1,293:$VM,294:$VN,295:$VO,296:$VP,297:$VQ,298:$Vj1,299:$Vk1,300:$Vl1,301:$Vm1,302:$Vn1,303:$Vo1,306:$Vp1,307:$Vq1,316:$Vr1,321:$Vs1,424:$Vt1,428:$Vu1}),{2:$V1,3:169,4:$V2,5:$V3,56:166,77:$VV,94:924,111:150,113:154,131:$VW,132:$VX,137:$VY,143:$VZ,144:162,145:$V_,149:$V$,152:$V01,154:$V11,156:$VL,158:168,179:$V21,180:$V31,181:$V41,196:152,200:148,201:156,202:157,244:$V51,245:$V61,258:151,259:147,260:149,261:153,262:155,263:158,264:159,265:160,266:163,267:164,269:$V71,270:$Vc,274:$V81,275:$V91,277:$Va1,284:$Vb1,285:$Vc1,286:$Vd1,287:$Ve1,288:$Vf1,289:$Vg1,290:$Vh1,291:$Vi1,293:$VM,294:$VN,295:$VO,296:$VP,297:$VQ,298:$Vj1,299:$Vk1,300:$Vl1,301:$Vm1,302:$Vn1,303:$Vo1,306:$Vp1,307:$Vq1,316:$Vr1,321:$Vs1,423:191,424:$Vt1,428:$Vu1},{2:$V1,3:169,4:$V2,5:$V3,56:166,77:$VV,94:925,111:150,113:154,131:$VW,132:$VX,137:$VY,143:$VZ,144:162,145:$V_,149:$V$,152:$V01,154:$V11,156:$VL,158:168,179:$V21,180:$V31,181:$V41,196:152,200:148,201:156,202:157,244:$V51,245:$V61,258:151,259:147,260:149,261:153,262:155,263:158,264:159,265:160,266:163,267:164,269:$V71,270:$Vc,274:$V81,275:$V91,277:$Va1,284:$Vb1,285:$Vc1,286:$Vd1,287:$Ve1,288:$Vf1,289:$Vg1,290:$Vh1,291:$Vi1,293:$VM,294:$VN,295:$VO,296:$VP,297:$VQ,298:$Vj1,299:$Vk1,300:$Vl1,301:$Vm1,302:$Vn1,303:$Vo1,306:$Vp1,307:$Vq1,316:$Vr1,321:$Vs1,423:191,424:$Vt1,428:$Vu1},o($V$3,[2,450],{259:147,200:148,260:149,111:150,258:151,196:152,261:153,113:154,262:155,201:156,202:157,263:158,264:159,265:160,144:162,266:163,267:164,56:166,158:168,3:169,423:191,94:926,2:$V1,4:$V2,5:$V3,77:$VV,131:$VW,132:$VX,137:$VY,143:$VZ,145:$V_,149:$V$,152:$V01,154:$V11,156:$VL,179:$V21,180:$V31,181:$V41,244:$V51,245:$V61,269:$V71,270:$Vc,274:$V81,275:$V91,277:$Va1,284:$Vb1,285:$Vc1,286:$Vd1,287:$Ve1,288:$Vf1,289:$Vg1,290:$Vh1,291:$Vi1,293:$VM,294:$VN,295:$VO,296:$VP,297:$VQ,298:$Vj1,299:$Vk1,300:$Vl1,301:$Vm1,302:$Vn1,303:$Vo1,306:$Vp1,307:$Vq1,316:$Vr1,321:$Vs1,424:$Vt1,428:$Vu1}),{2:$V1,3:169,4:$V2,5:$V3,56:166,77:$VV,94:927,111:150,113:154,131:$VW,132:$VX,137:$VY,143:$VZ,144:162,145:$V_,149:$V$,152:$V01,154:$V11,156:$VL,158:168,179:$V21,180:$V31,181:$V41,196:152,200:148,201:156,202:157,244:$V51,245:$V61,258:151,259:147,260:149,261:153,262:155,263:158,264:159,265:160,266:163,267:164,269:$V71,270:$Vc,274:$V81,275:$V91,277:$Va1,284:$Vb1,285:$Vc1,286:$Vd1,287:$Ve1,288:$Vf1,289:$Vg1,290:$Vh1,291:$Vi1,293:$VM,294:$VN,295:$VO,296:$VP,297:$VQ,298:$Vj1,299:$Vk1,300:$Vl1,301:$Vm1,302:$Vn1,303:$Vo1,306:$Vp1,307:$Vq1,316:$Vr1,321:$Vs1,423:191,424:$Vt1,428:$Vu1},{2:$V1,3:169,4:$V2,5:$V3,56:166,77:$VV,94:928,111:150,113:154,131:$VW,132:$VX,137:$VY,143:$VZ,144:162,145:$V_,149:$V$,152:$V01,154:$V11,156:$VL,158:168,179:$V21,180:$V31,181:$V41,196:152,200:148,201:156,202:157,244:$V51,245:$V61,258:151,259:147,260:149,261:153,262:155,263:158,264:159,265:160,266:163,267:164,269:$V71,270:$Vc,274:$V81,275:$V91,277:$Va1,284:$Vb1,285:$Vc1,286:$Vd1,287:$Ve1,288:$Vf1,289:$Vg1,290:$Vh1,291:$Vi1,293:$VM,294:$VN,295:$VO,296:$VP,297:$VQ,298:$Vj1,299:$Vk1,300:$Vl1,301:$Vm1,302:$Vn1,303:$Vo1,306:$Vp1,307:$Vq1,316:$Vr1,321:$Vs1,423:191,424:$Vt1,428:$Vu1},{164:[1,930],166:[1,932],332:929,338:[1,931]},{2:$V1,3:169,4:$V2,5:$V3,56:166,77:$VV,94:933,111:150,113:154,131:$VW,132:$VX,137:$VY,143:$VZ,144:162,145:$V_,149:$V$,152:$V01,154:$V11,156:$VL,158:168,179:$V21,180:$V31,181:$V41,196:152,200:148,201:156,202:157,244:$V51,245:$V61,258:151,259:147,260:149,261:153,262:155,263:158,264:159,265:160,266:163,267:164,269:$V71,270:$Vc,274:$V81,275:$V91,277:$Va1,284:$Vb1,285:$Vc1,286:$Vd1,287:$Ve1,288:$Vf1,289:$Vg1,290:$Vh1,291:$Vi1,293:$VM,294:$VN,295:$VO,296:$VP,297:$VQ,298:$Vj1,299:$Vk1,300:$Vl1,301:$Vm1,302:$Vn1,303:$Vo1,306:$Vp1,307:$Vq1,316:$Vr1,321:$Vs1,423:191,424:$Vt1,428:$Vu1},{2:$V1,3:169,4:$V2,5:$V3,56:166,77:$VV,94:934,111:150,113:154,131:$VW,132:$VX,137:$VY,143:$VZ,144:162,145:$V_,149:$V$,152:$V01,154:$V11,156:$VL,158:168,179:$V21,180:$V31,181:$V41,196:152,200:148,201:156,202:157,244:$V51,245:$V61,258:151,259:147,260:149,261:153,262:155,263:158,264:159,265:160,266:163,267:164,269:$V71,270:$Vc,274:$V81,275:$V91,277:$Va1,284:$Vb1,285:$Vc1,286:$Vd1,287:$Ve1,288:$Vf1,289:$Vg1,290:$Vh1,291:$Vi1,293:$VM,294:$VN,295:$VO,296:$VP,297:$VQ,298:$Vj1,299:$Vk1,300:$Vl1,301:$Vm1,302:$Vn1,303:$Vo1,306:$Vp1,307:$Vq1,316:$Vr1,321:$Vs1,423:191,424:$Vt1,428:$Vu1},{2:$V1,3:698,4:$V2,5:$V3,77:[1,935],111:938,145:$V14,156:$VL,200:939,202:937,293:$VM,294:$VN,295:$VO,296:$VP,297:$VQ,333:936},{99:[1,941],301:[1,942]},{2:$V1,3:169,4:$V2,5:$V3,56:166,77:$VV,94:943,111:150,113:154,131:$VW,132:$VX,137:$VY,143:$VZ,144:162,145:$V_,149:$V$,152:$V01,154:$V11,156:$VL,158:168,179:$V21,180:$V31,181:$V41,196:152,200:148,201:156,202:157,244:$V51,245:$V61,258:151,259:147,260:149,261:153,262:155,263:158,264:159,265:160,266:163,267:164,269:$V71,270:$Vc,274:$V81,275:$V91,277:$Va1,284:$Vb1,285:$Vc1,286:$Vd1,287:$Ve1,288:$Vf1,289:$Vg1,290:$Vh1,291:$Vi1,293:$VM,294:$VN,295:$VO,296:$VP,297:$VQ,298:$Vj1,299:$Vk1,300:$Vl1,301:$Vm1,302:$Vn1,303:$Vo1,306:$Vp1,307:$Vq1,316:$Vr1,321:$Vs1,423:191,424:$Vt1,428:$Vu1},{2:$V1,3:169,4:$V2,5:$V3,56:166,77:$VV,94:944,111:150,113:154,131:$VW,132:$VX,137:$VY,143:$VZ,144:162,145:$V_,149:$V$,152:$V01,154:$V11,156:$VL,158:168,179:$V21,180:$V31,181:$V41,196:152,200:148,201:156,202:157,244:$V51,245:$V61,258:151,259:147,260:149,261:153,262:155,263:158,264:159,265:160,266:163,267:164,269:$V71,270:$Vc,274:$V81,275:$V91,277:$Va1,284:$Vb1,285:$Vc1,286:$Vd1,287:$Ve1,288:$Vf1,289:$Vg1,290:$Vh1,291:$Vi1,293:$VM,294:$VN,295:$VO,296:$VP,297:$VQ,298:$Vj1,299:$Vk1,300:$Vl1,301:$Vm1,302:$Vn1,303:$Vo1,306:$Vp1,307:$Vq1,316:$Vr1,321:$Vs1,423:191,424:$Vt1,428:$Vu1},{2:$V1,3:169,4:$V2,5:$V3,56:166,77:$VV,94:945,111:150,113:154,131:$VW,132:$VX,137:$VY,143:$VZ,144:162,145:$V_,149:$V$,152:$V01,154:$V11,156:$VL,158:168,179:$V21,180:$V31,181:$V41,196:152,200:148,201:156,202:157,244:$V51,245:$V61,258:151,259:147,260:149,261:153,262:155,263:158,264:159,265:160,266:163,267:164,269:$V71,270:$Vc,274:$V81,275:$V91,277:$Va1,284:$Vb1,285:$Vc1,286:$Vd1,287:$Ve1,288:$Vf1,289:$Vg1,290:$Vh1,291:$Vi1,293:$VM,294:$VN,295:$VO,296:$VP,297:$VQ,298:$Vj1,299:$Vk1,300:$Vl1,301:$Vm1,302:$Vn1,303:$Vo1,306:$Vp1,307:$Vq1,316:$Vr1,321:$Vs1,423:191,424:$Vt1,428:$Vu1},{4:$VZ3,7:883,276:946,391:882,393:$V_3},o($V24,[2,88]),o($V24,[2,89]),{78:[1,947]},{78:[1,948]},{78:[1,949]},{78:[1,950],99:$V$1,112:$V02,114:628,115:$V12,116:$V22,123:$V32,124:$VB3,133:$V52,136:$V62,138:$V72,139:$V82,140:$V92,141:$Va2,142:$Vb2,154:$Vc2,170:$Vd2,171:$Ve2,179:$Vf2,180:$Vg2,315:$Vh2,316:$Vi2,317:$Vj2,319:$Vk2,320:$Vl2,321:$Vm2,322:$Vn2,323:$Vo2,324:$Vp2,325:$Vq2,326:$Vr2,327:$Vs2,328:$Vt2,329:$Vu2,330:$Vv2,331:640,334:$Vw2,335:$Vx2,336:$Vy2,337:$Vz2},o($Vv1,$Vw1,{344:209,77:$VQ1,198:$Vx1}),{78:[2,1112]},{78:[2,1113]},{134:$VS,135:$VT},{2:$V1,3:169,4:$V2,5:$V3,56:166,77:$VV,94:262,111:150,113:154,131:$VW,132:$VX,137:$VY,143:$VZ,144:162,145:$V_,149:$V$,151:951,152:$V01,154:$V11,156:$VL,158:168,164:[1,953],179:$V21,180:$V31,181:$V41,185:[1,952],196:152,200:148,201:156,202:157,244:$V51,245:$V61,258:151,259:147,260:149,261:153,262:155,263:158,264:159,265:160,266:163,267:164,269:$V71,270:$Vc,274:$V81,275:$V91,277:$Va1,284:$Vb1,285:$Vc1,286:$Vd1,287:$Ve1,288:$Vf1,289:$Vg1,290:$Vh1,291:$Vi1,293:$VM,294:$VN,295:$VO,296:$VP,297:$VQ,298:$Vj1,299:$Vk1,300:$Vl1,301:$Vm1,302:$Vn1,303:$Vo1,306:$Vp1,307:$Vq1,316:$Vr1,321:$Vs1,423:191,424:$Vt1,428:$Vu1},{2:$V1,3:954,4:$V2,5:$V3,149:$V34,180:[1,956]},o([2,4,5,10,53,72,74,76,77,78,89,93,95,98,99,107,118,122,128,129,130,131,132,134,135,137,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,181,183,185,187,189,198,206,208,222,223,224,225,226,227,228,229,232,239,244,245,246,247,249,251,270,271,284,285,286,287,288,289,290,291,293,300,304,310,312,313,314,318,334,335,337,339,342,343,400,404,405,408,410,412,413,421,422,424,428,438,440,441,443,444,445,446,447,451,452,455,456,468,474,509,511,512,521,606,767],[2,421],{114:628,331:640,112:$V02,115:$V12,116:$V22,123:$V32,124:$VB3,133:$V52,136:$V62,138:$V72,139:$V82,140:$V92,141:$Va2,142:$Vb2,179:$Vf2,180:$Vg2,315:$Vh2,316:$Vi2,317:$Vj2,319:$Vk2,320:$Vl2,321:$Vm2,322:$Vn2,323:$Vo2,324:$Vp2,325:$Vq2,326:$Vr2,327:$Vs2,328:$Vt2,329:$Vu2,330:$Vv2,336:$Vy2}),o($V44,[2,422],{114:628,331:640,115:$V12,116:$V22,123:$V32,133:$V52,136:$V62,138:$V72,180:$Vg2,316:$Vi2,320:$Vl2}),o($V44,[2,423],{114:628,331:640,115:$V12,116:$V22,123:$V32,133:$V52,136:$V62,138:$V72,180:$Vg2,316:$Vi2,320:$Vl2}),o($V54,[2,424],{114:628,331:640,320:$Vl2}),o($V54,[2,425],{114:628,331:640,320:$Vl2}),o($VB2,[2,370]),o($VB2,[2,1118]),o($VB2,[2,1119]),o($VB2,[2,371]),o([2,4,5,10,53,72,74,76,77,78,89,93,95,98,99,107,112,115,116,118,122,123,124,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,179,180,181,183,185,187,189,198,206,208,222,223,224,225,226,227,228,229,230,231,232,239,244,245,246,247,249,251,270,271,284,285,286,287,288,289,290,291,293,300,304,310,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,327,328,329,330,334,335,336,337,339,342,343,400,404,405,408,410,412,413,421,422,424,428,438,440,441,443,444,445,446,447,451,452,455,456,468,474,509,511,512,521,606,767],[2,367]),{2:$V1,3:169,4:$V2,5:$V3,56:166,77:$VV,94:957,111:150,113:154,131:$VW,132:$VX,137:$VY,143:$VZ,144:162,145:$V_,149:$V$,152:$V01,154:$V11,156:$VL,158:168,179:$V21,180:$V31,181:$V41,196:152,200:148,201:156,202:157,244:$V51,245:$V61,258:151,259:147,260:149,261:153,262:155,263:158,264:159,265:160,266:163,267:164,269:$V71,270:$Vc,274:$V81,275:$V91,277:$Va1,284:$Vb1,285:$Vc1,286:$Vd1,287:$Ve1,288:$Vf1,289:$Vg1,290:$Vh1,291:$Vi1,293:$VM,294:$VN,295:$VO,296:$VP,297:$VQ,298:$Vj1,299:$Vk1,300:$Vl1,301:$Vm1,302:$Vn1,303:$Vo1,306:$Vp1,307:$Vq1,316:$Vr1,321:$Vs1,423:191,424:$Vt1,428:$Vu1},o($VF2,[2,625]),o($VF2,[2,626]),o($VF2,[2,627]),o($VF2,[2,628]),o($VF2,[2,630]),{40:958,79:75,89:$V7,184:99,189:$Vb},{99:$V$1,112:$V02,114:628,115:$V12,116:$V22,123:$V32,124:$VB3,133:$V52,136:$V62,138:$V72,139:$V82,140:$V92,141:$Va2,142:$Vb2,154:$Vc2,170:$Vd2,171:$Ve2,179:$Vf2,180:$Vg2,308:959,311:680,312:$VE2,315:$Vh2,316:$Vi2,317:$Vj2,319:$Vk2,320:$Vl2,321:$Vm2,322:$Vn2,323:$Vo2,324:$Vp2,325:$Vq2,326:$Vr2,327:$Vs2,328:$Vt2,329:$Vu2,330:$Vv2,331:640,334:$Vw2,335:$Vx2,336:$Vy2,337:$Vz2},{309:960,310:$V64,311:961,312:$VE2,314:$V74},o($V84,[2,377]),{2:$V1,3:169,4:$V2,5:$V3,56:166,77:$VV,94:963,111:150,113:154,131:$VW,132:$VX,137:$VY,143:$VZ,144:162,145:$V_,149:$V$,152:$V01,154:$V11,156:$VL,158:168,179:$V21,180:$V31,181:$V41,196:152,200:148,201:156,202:157,244:$V51,245:$V61,258:151,259:147,260:149,261:153,262:155,263:158,264:159,265:160,266:163,267:164,269:$V71,270:$Vc,274:$V81,275:$V91,277:$Va1,284:$Vb1,285:$Vc1,286:$Vd1,287:$Ve1,288:$Vf1,289:$Vg1,290:$Vh1,291:$Vi1,293:$VM,294:$VN,295:$VO,296:$VP,297:$VQ,298:$Vj1,299:$Vk1,300:$Vl1,301:$Vm1,302:$Vn1,303:$Vo1,306:$Vp1,307:$Vq1,316:$Vr1,321:$Vs1,423:191,424:$Vt1,428:$Vu1},{2:$V1,3:169,4:$V2,5:$V3,56:166,77:$VV,94:964,111:150,113:154,131:$VW,132:$VX,137:$VY,143:$VZ,144:162,145:$V_,149:$V$,152:$V01,154:$V11,156:$VL,158:168,179:$V21,180:$V31,181:$V41,196:152,200:148,201:156,202:157,244:$V51,245:$V61,258:151,259:147,260:149,261:153,262:155,263:158,264:159,265:160,266:163,267:164,269:$V71,270:$Vc,274:$V81,275:$V91,277:$Va1,284:$Vb1,285:$Vc1,286:$Vd1,287:$Ve1,288:$Vf1,289:$Vg1,290:$Vh1,291:$Vi1,293:$VM,294:$VN,295:$VO,296:$VP,297:$VQ,298:$Vj1,299:$Vk1,300:$Vl1,301:$Vm1,302:$Vn1,303:$Vo1,306:$Vp1,307:$Vq1,316:$Vr1,321:$Vs1,423:191,424:$Vt1,428:$Vu1},{4:$VZ3,7:883,276:965,391:882,393:$V_3},o($VF2,[2,631]),{74:[1,967],304:[1,966]},o($VF2,[2,647]),o($V94,[2,654]),o($Va4,[2,632]),o($Va4,[2,633]),o($Va4,[2,634]),o($Va4,[2,635]),o($Va4,[2,636]),o($Va4,[2,637]),o($Va4,[2,638]),o($Va4,[2,639]),o($Va4,[2,640]),{2:$V1,3:169,4:$V2,5:$V3,56:166,77:$VV,94:968,111:150,113:154,131:$VW,132:$VX,137:$VY,143:$VZ,144:162,145:$V_,149:$V$,152:$V01,154:$V11,156:$VL,158:168,179:$V21,180:$V31,181:$V41,196:152,200:148,201:156,202:157,244:$V51,245:$V61,258:151,259:147,260:149,261:153,262:155,263:158,264:159,265:160,266:163,267:164,269:$V71,270:$Vc,274:$V81,275:$V91,277:$Va1,284:$Vb1,285:$Vc1,286:$Vd1,287:$Ve1,288:$Vf1,289:$Vg1,290:$Vh1,291:$Vi1,293:$VM,294:$VN,295:$VO,296:$VP,297:$VQ,298:$Vj1,299:$Vk1,300:$Vl1,301:$Vm1,302:$Vn1,303:$Vo1,306:$Vp1,307:$Vq1,316:$Vr1,321:$Vs1,423:191,424:$Vt1,428:$Vu1},o([2,4,5,10,53,72,74,76,78,89,93,95,98,99,107,112,115,118,122,123,124,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,179,180,181,183,185,187,189,198,206,208,222,223,224,225,226,227,228,229,232,239,244,245,246,247,249,251,270,271,284,285,286,287,288,289,290,291,293,300,304,310,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,327,328,329,330,334,335,336,337,339,342,343,400,404,405,408,410,412,413,421,422,424,428,430,438,440,441,443,444,445,446,447,451,452,455,456,468,474,509,511,512,521,606,767],$VA2,{77:$VP1,116:$Vb4}),{74:$Vz3,304:[1,970]},o($Vc4,[2,317],{77:$VP1}),o($VD1,[2,318]),{74:[1,972],430:[1,971]},o($VF2,[2,644]),o($Vd4,[2,649]),{152:[1,973]},{152:[1,974]},{152:[1,975]},{40:980,77:[1,979],79:75,89:$V7,143:$VZ,144:983,145:$VE1,149:$Ve4,152:$V01,181:$V41,184:99,189:$Vb,201:984,306:$Vp1,345:976,346:977,347:[1,978],348:$Vf4,423:191,424:$Vt1,428:$Vu1},o($Vv1,$Vw1,{344:985,198:$Vx1}),{77:$Vg4,143:$VZ,144:983,145:$VE1,149:$Ve4,152:$V01,181:$V41,201:984,306:$Vp1,345:986,346:987,348:$Vf4,423:191,424:$Vt1,428:$Vu1},{230:[1,990],459:989},{2:$V1,3:221,4:$V2,5:$V3,77:$Vy1,132:$Vz1,143:$VZ,144:214,145:$V_,152:$V01,156:$VL,181:$V41,199:215,200:217,201:216,202:219,209:991,213:$VA1,214:220,293:$VM,294:$VN,295:$VO,296:$VP,297:$VQ,306:$Vp1,423:191,424:$Vt1,428:$Vu1},{231:[2,701]},{78:[1,992]},o($VK2,[2,1098],{211:993,3:994,2:$V1,4:$V2,5:$V3}),o($VJ2,[2,1097]),o($VK2,[2,183]),{2:$V1,3:995,4:$V2,5:$V3},{212:[1,996]},o($VK2,[2,187]),{2:$V1,3:997,4:$V2,5:$V3},o($VK2,[2,191]),{2:$V1,3:998,4:$V2,5:$V3},o($VK2,[2,195]),{2:$V1,3:999,4:$V2,5:$V3},o($VK2,[2,198]),{2:$V1,3:1000,4:$V2,5:$V3},{2:$V1,3:1001,4:$V2,5:$V3},{148:[1,1002]},o($Vh4,[2,172],{82:1003,183:[1,1004]}),{2:$V1,3:221,4:$V2,5:$V3,132:[1,1009],143:$VZ,145:[1,1010],152:$V01,156:$VL,181:$V41,199:1005,200:1006,201:1007,202:1008,293:$VM,294:$VN,295:$VO,296:$VP,297:$VQ,306:$Vp1},{2:$V1,3:1015,4:$V2,5:$V3,109:1011,110:1012,111:1013,112:$Vi4},o($VQ2,[2,1063]),o($Vj4,[2,1054],{91:1016,182:1017,183:[1,1018]}),o($VC1,[2,1053],{153:1019,179:$Vk4,180:$Vl4,181:$Vm4}),o([2,4,5,10,72,74,76,78,112,115,116,118,122,123,124,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,179,180,181,183,185,187,198,244,245,284,285,286,287,288,289,290,291,310,314,424,428,606,767],[2,90],{77:[1,1023]}),{119:[1,1024]},o($Vn4,[2,93]),{2:$V1,3:1025,4:$V2,5:$V3},o($Vn4,[2,95]),{2:$V1,3:169,4:$V2,5:$V3,56:166,77:$VV,94:1026,111:150,113:154,131:$VW,132:$VX,137:$VY,143:$VZ,144:162,145:$V_,149:$V$,152:$V01,154:$V11,156:$VL,158:168,179:$V21,180:$V31,181:$V41,196:152,200:148,201:156,202:157,244:$V51,245:$V61,258:151,259:147,260:149,261:153,262:155,263:158,264:159,265:160,266:163,267:164,269:$V71,270:$Vc,274:$V81,275:$V91,277:$Va1,284:$Vb1,285:$Vc1,286:$Vd1,287:$Ve1,288:$Vf1,289:$Vg1,290:$Vh1,291:$Vi1,293:$VM,294:$VN,295:$VO,296:$VP,297:$VQ,298:$Vj1,299:$Vk1,300:$Vl1,301:$Vm1,302:$Vn1,303:$Vo1,306:$Vp1,307:$Vq1,316:$Vr1,321:$Vs1,423:191,424:$Vt1,428:$Vu1},{2:$V1,3:169,4:$V2,5:$V3,56:166,77:$VV,94:1027,111:150,113:154,131:$VW,132:$VX,137:$VY,143:$VZ,144:162,145:$V_,149:$V$,152:$V01,154:$V11,156:$VL,158:168,179:$V21,180:$V31,181:$V41,196:152,200:148,201:156,202:157,244:$V51,245:$V61,258:151,259:147,260:149,261:153,262:155,263:158,264:159,265:160,266:163,267:164,269:$V71,270:$Vc,274:$V81,275:$V91,277:$Va1,284:$Vb1,285:$Vc1,286:$Vd1,287:$Ve1,288:$Vf1,289:$Vg1,290:$Vh1,291:$Vi1,293:$VM,294:$VN,295:$VO,296:$VP,297:$VQ,298:$Vj1,299:$Vk1,300:$Vl1,301:$Vm1,302:$Vn1,303:$Vo1,306:$Vp1,307:$Vq1,316:$Vr1,321:$Vs1,423:191,424:$Vt1,428:$Vu1},{2:$V1,3:736,4:$V2,5:$V3,72:$VR2,76:$VS2,77:$VT2,112:$VU2,114:739,115:$V12,116:$V22,117:1029,118:$VV2,122:$VW2,123:$VX2,124:$VY2,125:1028,128:$VZ2,129:$V_2,130:$V$2,131:$V03,132:$V13,133:$V23,134:$V33,135:$V43,136:$V53,137:$V63,138:$V73,139:$V83,140:$V93,141:$Va3,142:$Vb3,143:$Vc3,144:761,145:$Vd3,146:$Ve3,148:$Vf3,149:$Vg3,150:$Vh3,152:$Vi3,154:$Vj3,156:$Vk3,158:771,160:772,162:$Vl3,164:$Vm3,166:$Vn3,168:$Vo3,169:$Vp3,170:$Vq3,171:$Vr3,172:$Vs3,173:$Vt3,175:$Vu3,185:$Vv3,187:$Vw3,244:$V51,245:$V61,284:$Vb1,285:$Vc1,286:$Vd1,287:$Ve1,288:$Vf1,289:$Vg1,290:$Vh1,291:$Vi1,423:191,424:$Vt1,428:$Vu1},{77:[1,1030]},{77:[1,1031]},{77:[1,1032]},{77:[1,1033]},o($Vn4,[2,104]),o($Vn4,[2,105]),o($Vn4,[2,106]),o($Vn4,[2,107]),o($Vn4,[2,108]),o($Vn4,[2,109]),{2:$V1,3:1034,4:$V2,5:$V3},{2:$V1,3:1035,4:$V2,5:$V3,133:[1,1036]},o($Vn4,[2,113]),o($Vn4,[2,114]),o($Vn4,[2,115]),o($Vn4,[2,116]),o($Vn4,[2,117]),o($Vn4,[2,118]),{2:$V1,3:1037,4:$V2,5:$V3,77:$VD2,113:672,131:$VW,132:$VX,143:$VZ,152:$V01,181:$V41,196:673,201:675,261:674,298:$Vj1,299:$Vk1,300:$Vl1,306:$Vp1,423:676,428:$Vu1},{145:[1,1038]},{77:[1,1039]},{145:[1,1040]},o($Vn4,[2,123]),{77:[1,1041]},{2:$V1,3:1042,4:$V2,5:$V3},{77:[1,1043]},{77:[1,1044]},{77:[1,1045]},{77:[1,1046]},{77:[1,1047],164:[1,1048]},{77:[1,1049]},{77:[1,1050]},{77:[1,1051]},{77:[1,1052]},{77:[1,1053]},{77:[1,1054]},{77:[1,1055]},{77:[1,1056]},{77:[1,1057]},{77:[2,1078]},{77:[2,1079]},{2:$V1,3:246,4:$V2,5:$V3,199:1058},{2:$V1,3:246,4:$V2,5:$V3,199:1059},{113:1060,132:$VX,300:$Vl1},o($VK,[2,601],{112:[1,1061]}),{2:$V1,3:246,4:$V2,5:$V3,199:1062},{113:1063,132:$VX,300:$Vl1},{2:$V1,3:1064,4:$V2,5:$V3},o($VK,[2,698]),o($VK,[2,68]),{2:$V1,3:238,4:$V2,5:$V3,75:1065},{77:[1,1066]},o($VK,[2,679]),o($VK,[2,591]),{2:$V1,3:1015,4:$V2,5:$V3,111:1069,143:$Vo4,145:$Vp4,147:1067,340:1068,341:1070},{144:1073,145:$VE1,423:191,424:$Vt1,428:$Vu1},o($VK,[2,676]),{2:$V1,3:169,4:$V2,5:$V3,56:166,77:$VV,94:1074,111:150,113:154,131:$VW,132:$VX,137:$VY,143:$VZ,144:162,145:$V_,149:$V$,152:$V01,154:$V11,156:$VL,158:168,179:$V21,180:$V31,181:$V41,196:152,200:148,201:156,202:157,244:$V51,245:$V61,258:151,259:147,260:149,261:153,262:155,263:158,264:159,265:160,266:163,267:164,269:$V71,270:$Vc,274:$V81,275:$V91,277:$Va1,284:$Vb1,285:$Vc1,286:$Vd1,287:$Ve1,288:$Vf1,289:$Vg1,290:$Vh1,291:$Vi1,293:$VM,294:$VN,295:$VO,296:$VP,297:$VQ,298:$Vj1,299:$Vk1,300:$Vl1,301:$Vm1,302:$Vn1,303:$Vo1,306:$Vp1,307:$Vq1,316:$Vr1,321:$Vs1,423:191,424:$Vt1,428:$Vu1},o($V$3,$V04,{259:147,200:148,260:149,111:150,258:151,196:152,261:153,113:154,262:155,201:156,202:157,263:158,264:159,265:160,144:162,266:163,267:164,56:166,158:168,3:169,423:191,94:1075,2:$V1,4:$V2,5:$V3,77:$VV,131:$VW,132:$VX,137:$VY,143:$VZ,145:$V_,149:$V$,152:$V01,154:$V11,156:$VL,179:$V21,180:$V31,181:$V41,244:$V51,245:$V61,269:$V71,270:$Vc,274:$V81,275:$V91,277:$Va1,284:$Vb1,285:$Vc1,286:$Vd1,287:$Ve1,288:$Vf1,289:$Vg1,290:$Vh1,291:$Vi1,293:$VM,294:$VN,295:$VO,296:$VP,297:$VQ,298:$Vj1,299:$Vk1,300:$Vl1,301:$Vm1,302:$Vn1,303:$Vo1,306:$Vp1,307:$Vq1,316:$Vr1,321:$Vs1,424:$Vt1,428:$Vu1}),{113:1076,132:$VX,300:$Vl1},{2:$V1,3:268,4:$V2,5:$V3,450:1077,451:$VG1},{2:$V1,3:169,4:$V2,5:$V3,56:166,77:$VV,94:1079,111:150,113:154,131:$VW,132:$VX,137:$VY,143:$VZ,144:162,145:$V_,149:$V$,152:$V01,154:$V11,156:$VL,158:168,179:$V21,180:$V31,181:$V41,196:152,200:148,201:156,202:157,230:$VC3,244:$V51,245:$V61,258:151,259:147,260:149,261:153,262:155,263:158,264:159,265:160,266:163,267:164,269:$V71,270:$Vc,274:$V81,275:$V91,277:$Va1,284:$Vb1,285:$Vc1,286:$Vd1,287:$Ve1,288:$Vf1,289:$Vg1,290:$Vh1,291:$Vi1,293:$VM,294:$VN,295:$VO,296:$VP,297:$VQ,298:$Vj1,299:$Vk1,300:$Vl1,301:$Vm1,302:$Vn1,303:$Vo1,306:$Vp1,307:$Vq1,316:$Vr1,321:$Vs1,423:191,424:$Vt1,428:$Vu1,433:1078,437:$VD3},o($VK,[2,656]),{114:1081,115:$V12,116:$V22,124:[1,1080]},o($VK,[2,668]),o($VK,[2,669]),{2:$V1,3:1083,4:$V2,5:$V3,77:$Vq4,131:$Vr4,436:1082},{114:810,115:$V12,116:$V22,124:[1,1086],434:1087},o($VK,[2,758],{74:$VE3}),{2:$V1,3:100,4:$V2,5:$V3,508:1088},{2:$V1,3:169,4:$V2,5:$V3,56:166,77:$VV,94:820,111:150,113:154,131:$VW,132:$VX,137:$VY,143:$VZ,144:162,145:$V_,149:$V$,152:$V01,154:$V11,156:$VL,158:168,174:1089,179:$V21,180:$V31,181:$V41,196:152,200:148,201:156,202:157,244:$V51,245:$V61,257:819,258:151,259:147,260:149,261:153,262:155,263:158,264:159,265:160,266:163,267:164,269:$V71,270:$Vc,274:$V81,275:$V91,277:$Va1,284:$Vb1,285:$Vc1,286:$Vd1,287:$Ve1,288:$Vf1,289:$Vg1,290:$Vh1,291:$Vi1,293:$VM,294:$VN,295:$VO,296:$VP,297:$VQ,298:$Vj1,299:$Vk1,300:$Vl1,301:$Vm1,302:$Vn1,303:$Vo1,306:$Vp1,307:$Vq1,316:$Vr1,321:$Vs1,423:191,424:$Vt1,428:$Vu1},{2:$V1,3:169,4:$V2,5:$V3,56:166,77:$VV,94:820,111:150,113:154,131:$VW,132:$VX,137:$VY,143:$VZ,144:162,145:$V_,149:$V$,152:$V01,154:$V11,156:$VL,158:168,174:1090,179:$V21,180:$V31,181:$V41,196:152,200:148,201:156,202:157,244:$V51,245:$V61,257:819,258:151,259:147,260:149,261:153,262:155,263:158,264:159,265:160,266:163,267:164,269:$V71,270:$Vc,274:$V81,275:$V91,277:$Va1,284:$Vb1,285:$Vc1,286:$Vd1,287:$Ve1,288:$Vf1,289:$Vg1,290:$Vh1,291:$Vi1,293:$VM,294:$VN,295:$VO,296:$VP,297:$VQ,298:$Vj1,299:$Vk1,300:$Vl1,301:$Vm1,302:$Vn1,303:$Vo1,306:$Vp1,307:$Vq1,316:$Vr1,321:$Vs1,423:191,424:$Vt1,428:$Vu1},{2:$V1,3:169,4:$V2,5:$V3,56:166,77:$VV,94:820,111:150,113:154,131:$VW,132:$VX,137:$VY,143:$VZ,144:162,145:$V_,149:$V$,152:$V01,154:$V11,156:$VL,158:168,174:1091,179:$V21,180:$V31,181:$V41,196:152,200:148,201:156,202:157,244:$V51,245:$V61,257:819,258:151,259:147,260:149,261:153,262:155,263:158,264:159,265:160,266:163,267:164,269:$V71,270:$Vc,274:$V81,275:$V91,277:$Va1,284:$Vb1,285:$Vc1,286:$Vd1,287:$Ve1,288:$Vf1,289:$Vg1,290:$Vh1,291:$Vi1,293:$VM,294:$VN,295:$VO,296:$VP,297:$VQ,298:$Vj1,299:$Vk1,300:$Vl1,301:$Vm1,302:$Vn1,303:$Vo1,306:$Vp1,307:$Vq1,316:$Vr1,321:$Vs1,423:191,424:$Vt1,428:$Vu1},o($VH3,[2,151]),o($VH3,[2,1093],{74:$Vs4}),o($Vt4,[2,276]),o($Vt4,[2,283],{114:628,331:640,3:1094,113:1096,2:$V1,4:$V2,5:$V3,76:[1,1093],99:$V$1,112:$V02,115:$V12,116:$V22,123:$V32,124:$VB3,131:[1,1095],132:$VX,133:$V52,136:$V62,138:$V72,139:$V82,140:$V92,141:$Va2,142:$Vb2,154:$Vc2,170:$Vd2,171:$Ve2,179:$Vf2,180:$Vg2,300:$Vl1,315:$Vh2,316:$Vi2,317:$Vj2,319:$Vk2,320:$Vl2,321:$Vm2,322:$Vn2,323:$Vo2,324:$Vp2,325:$Vq2,326:$Vr2,327:$Vs2,328:$Vt2,329:$Vu2,330:$Vv2,334:$Vw2,335:$Vx2,336:$Vy2,337:$Vz2}),o($VJ1,[2,1094],{197:1097,768:[1,1098]}),{131:$VW,196:1099},{74:$VE3,78:[1,1100]},o($VJ,[2,11]),{148:[1,1101],190:[1,1102]},{190:[1,1103]},{190:[1,1104]},{190:[1,1105]},o($VK,[2,580],{76:[1,1107],77:[1,1106]}),{2:$V1,3:169,4:$V2,5:$V3,56:166,77:$VV,94:262,111:150,113:154,131:$VW,132:$VX,137:$VY,143:$VZ,144:162,145:$V_,149:$V$,151:1108,152:$V01,154:$V11,156:$VL,158:168,179:$V21,180:$V31,181:$V41,196:152,200:148,201:156,202:157,244:$V51,245:$V61,258:151,259:147,260:149,261:153,262:155,263:158,264:159,265:160,266:163,267:164,269:$V71,270:$Vc,274:$V81,275:$V91,277:$Va1,284:$Vb1,285:$Vc1,286:$Vd1,287:$Ve1,288:$Vf1,289:$Vg1,290:$Vh1,291:$Vi1,293:$VM,294:$VN,295:$VO,296:$VP,297:$VQ,298:$Vj1,299:$Vk1,300:$Vl1,301:$Vm1,302:$Vn1,303:$Vo1,306:$Vp1,307:$Vq1,316:$Vr1,321:$Vs1,423:191,424:$Vt1,428:$Vu1},o($VB2,[2,350]),o($VG3,[2,1117]),o($VG3,[2,1114]),o($VG3,[2,1115]),{74:$Vz3,78:[1,1109]},{74:$Vz3,78:[1,1110]},{74:[1,1111]},{74:[1,1112]},{74:[1,1113]},{74:[1,1114]},{74:[1,1115],99:$V$1,112:$V02,114:628,115:$V12,116:$V22,123:$V32,124:$VB3,133:$V52,136:$V62,138:$V72,139:$V82,140:$V92,141:$Va2,142:$Vb2,154:$Vc2,170:$Vd2,171:$Ve2,179:$Vf2,180:$Vg2,315:$Vh2,316:$Vi2,317:$Vj2,319:$Vk2,320:$Vl2,321:$Vm2,322:$Vn2,323:$Vo2,324:$Vp2,325:$Vq2,326:$Vr2,327:$Vs2,328:$Vt2,329:$Vu2,330:$Vv2,331:640,334:$Vw2,335:$Vx2,336:$Vy2,337:$Vz2},o($VB2,[2,358]),o($VK,[2,585]),{302:[1,1116]},{2:$V1,3:1117,4:$V2,5:$V3,113:1118,132:$VX,300:$Vl1},{2:$V1,3:246,4:$V2,5:$V3,199:1119},{230:[1,1120]},{2:$V1,3:581,4:$V2,5:$V3,132:$VT1,137:$VU1,143:$VH1,145:$VI1,152:$VV1,435:588,478:1121,479:579,482:580,486:585,497:582,501:584},o($VK,[2,735],{114:628,331:640,99:$V$1,112:$V02,115:$V12,116:$V22,123:$V32,124:$VB3,133:$V52,136:$V62,138:$V72,139:$V82,140:$V92,141:$Va2,142:$Vb2,154:$Vc2,170:$Vd2,171:$Ve2,179:$Vf2,180:$Vg2,315:$Vh2,316:$Vi2,317:$Vj2,319:$Vk2,320:$Vl2,321:$Vm2,322:$Vn2,323:$Vo2,324:$Vp2,325:$Vq2,326:$Vr2,327:$Vs2,328:$Vt2,329:$Vu2,330:$Vv2,334:$Vw2,335:$Vx2,336:$Vy2,337:$Vz2}),o($VF3,[2,1150],{481:1122,487:1123,76:$Vu4}),o($VL3,[2,1149]),{2:$V1,3:1127,4:$V2,5:$V3,132:$VT1,137:$VU1,144:1126,145:$VE1,152:$VV1,423:191,424:$Vt1,428:$Vu1,479:1125,497:582,501:584},{2:$V1,3:1127,4:$V2,5:$V3,132:$VT1,137:$VU1,143:$VH1,145:$VI1,152:$VV1,435:588,479:1129,482:1128,486:585,497:582,501:584},{2:$V1,3:581,4:$V2,5:$V3,132:$VT1,137:$VU1,143:$VH1,145:$VI1,152:$VV1,435:588,477:1130,478:578,479:579,482:580,486:585,497:582,501:584},o($VP3,[2,1168],{495:1131,132:[1,1132]}),o($VN3,[2,1167]),o($VQ3,[2,1174],{499:1133,501:1134,152:$VV1}),o($VP3,[2,1173]),o($VQ3,[2,751]),o($VQ3,[2,1177]),o($VN3,[2,754]),o($VN3,[2,755]),o($VQ3,[2,753]),o($VR3,[2,745]),{2:$V1,3:246,4:$V2,5:$V3,199:1135},{2:$V1,3:246,4:$V2,5:$V3,199:1136},{2:$V1,3:169,4:$V2,5:$V3,56:166,77:$VV,94:1137,111:150,113:154,131:$VW,132:$VX,137:$VY,143:$VZ,144:162,145:$V_,149:$V$,152:$V01,154:$V11,156:$VL,158:168,179:$V21,180:$V31,181:$V41,196:152,200:148,201:156,202:157,244:$V51,245:$V61,258:151,259:147,260:149,261:153,262:155,263:158,264:159,265:160,266:163,267:164,269:$V71,270:$Vc,274:$V81,275:$V91,277:$Va1,284:$Vb1,285:$Vc1,286:$Vd1,287:$Ve1,288:$Vf1,289:$Vg1,290:$Vh1,291:$Vi1,293:$VM,294:$VN,295:$VO,296:$VP,297:$VQ,298:$Vj1,299:$Vk1,300:$Vl1,301:$Vm1,302:$Vn1,303:$Vo1,306:$Vp1,307:$Vq1,316:$Vr1,321:$Vs1,423:191,424:$Vt1,428:$Vu1},o($Vv4,[2,1144],{471:1138,113:1139,132:$VX,300:$Vl1}),o($VS3,[2,1143]),{2:$V1,3:1140,4:$V2,5:$V3},{339:$Vw4,342:$Vx4,343:$Vy4,515:1141},{2:$V1,3:246,4:$V2,5:$V3,199:1145},o($VT3,[2,770]),o($VT3,[2,771]),o($VT3,[2,772]),{129:[1,1146]},{270:[1,1147]},{270:[1,1148]},o($VX1,[2,693]),o($VX1,[2,694],{124:[1,1149]}),{4:$VZ3,7:883,276:1150,391:882,393:$V_3},o([2,4,10,53,72,74,76,77,78,89,93,95,98,99,107,112,115,116,118,122,123,124,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,179,180,181,183,185,187,189,198,206,208,222,223,224,225,226,227,228,229,230,232,239,244,245,246,247,249,251,270,271,284,285,286,287,288,289,290,291,293,300,301,304,310,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,327,328,329,330,334,335,336,337,339,342,343,347,360,372,373,377,378,400,404,405,408,410,412,413,421,422,424,428,438,440,441,443,444,445,446,447,451,452,455,456,468,474,509,511,512,521,606,767],[2,547],{5:[1,1151]}),o([2,5,10,53,72,74,76,78,89,93,95,98,99,107,112,115,116,118,122,123,124,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,179,180,181,183,185,187,189,198,206,208,222,223,224,225,226,227,228,229,230,232,239,244,245,246,247,249,251,270,271,284,285,286,287,288,289,290,291,293,300,301,304,310,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,327,328,329,330,334,335,336,337,339,342,343,347,360,372,373,377,378,400,404,405,408,410,412,413,421,422,424,428,438,440,441,443,444,445,446,447,451,452,455,456,468,474,509,511,512,521,606,767],[2,544],{4:[1,1153],77:[1,1152]}),{77:[1,1154]},o($Vz4,[2,4]),{2:$V1,3:169,4:$V2,5:$V3,56:166,77:$VV,94:1155,111:150,113:154,131:$VW,132:$VX,137:$VY,143:$VZ,144:162,145:$V_,149:$V$,152:$V01,154:$V11,156:$VL,158:168,179:$V21,180:$V31,181:$V41,196:152,200:148,201:156,202:157,244:$V51,245:$V61,258:151,259:147,260:149,261:153,262:155,263:158,264:159,265:160,266:163,267:164,269:$V71,270:$Vc,274:$V81,275:$V91,277:$Va1,284:$Vb1,285:$Vc1,286:$Vd1,287:$Ve1,288:$Vf1,289:$Vg1,290:$Vh1,291:$Vi1,293:$VM,294:$VN,295:$VO,296:$VP,297:$VQ,298:$Vj1,299:$Vk1,300:$Vl1,301:$Vm1,302:$Vn1,303:$Vo1,306:$Vp1,307:$Vq1,316:$Vr1,321:$Vs1,423:191,424:$Vt1,428:$Vu1},o($VK,[2,593]),o($VJ3,[2,573]),{2:$V1,3:1156,4:$V2,5:$V3,113:1157,132:$VX,300:$Vl1},o($VK,[2,569],{74:$VA4}),o($VX1,[2,571]),o($VK,[2,618],{74:$VA4}),o($VK,[2,673]),o($VK,$V0,{17:5,18:7,19:8,20:9,21:10,22:11,23:12,24:13,25:14,26:15,27:16,28:17,29:18,30:19,31:20,32:21,33:22,34:23,35:24,36:25,37:26,38:27,39:28,40:29,41:30,42:31,43:32,44:33,45:34,46:35,47:36,48:37,49:38,50:39,51:40,52:41,54:43,55:44,56:45,57:46,58:47,59:48,60:49,61:50,62:51,63:52,64:53,65:54,66:55,67:56,68:57,69:58,70:59,71:60,79:75,508:95,184:99,3:100,12:1159,2:$V1,4:$V2,5:$V3,53:$V5,72:$V6,89:$V7,124:$V8,146:$V9,156:$Va,189:$Vb,270:$Vc,271:$Vd,293:$Ve,339:$Vf,342:$Vg,343:$Vh,400:$Vi,404:$Vj,405:$Vk,408:$Vl,410:$Vm,412:$Vn,413:$Vo,421:$Vp,422:$Vq,438:$Vr,440:$Vs,441:$Vt,443:$Vu,444:$Vv,445:$Vw,446:$Vx,447:$Vy,451:$Vz,452:$VA,455:$VB,456:$VC,509:$VD,511:$VE,512:$VF,521:$VG}),o($VB4,[2,381],{114:628,331:640,115:$V12,116:$V22,123:$V32,133:$V52,136:$V62,138:$V72,141:$Va2,142:$Vb2,179:$Vf2,180:$Vg2,316:$Vi2,320:$Vl2,321:$Vm2,322:$Vn2,323:$Vo2}),o($V54,[2,382],{114:628,331:640,320:$Vl2}),o($VB4,[2,383],{114:628,331:640,115:$V12,116:$V22,123:$V32,133:$V52,136:$V62,138:$V72,141:$Va2,142:$Vb2,179:$Vf2,180:$Vg2,316:$Vi2,320:$Vl2,321:$Vm2,322:$Vn2,323:$Vo2}),o($VC4,[2,384],{114:628,331:640,115:$V12,116:$V22,123:$V32,133:$V52,136:$V62,138:$V72,141:$Va2,142:$Vb2,179:$Vf2,180:$Vg2,316:$Vi2,318:[1,1160],320:$Vl2,321:$Vm2,322:$Vn2,323:$Vo2}),o($VC4,[2,386],{114:628,331:640,115:$V12,116:$V22,123:$V32,133:$V52,136:$V62,138:$V72,141:$Va2,142:$Vb2,179:$Vf2,180:$Vg2,316:$Vi2,318:[1,1161],320:$Vl2,321:$Vm2,322:$Vn2,323:$Vo2}),o($VD1,[2,388],{114:628,331:640}),o($V44,[2,389],{114:628,331:640,115:$V12,116:$V22,123:$V32,133:$V52,136:$V62,138:$V72,180:$Vg2,316:$Vi2,320:$Vl2}),o($V44,[2,390],{114:628,331:640,115:$V12,116:$V22,123:$V32,133:$V52,136:$V62,138:$V72,180:$Vg2,316:$Vi2,320:$Vl2}),o($VD4,[2,391],{114:628,331:640,115:$V12,116:$V22,123:$V32,136:$V62,316:$Vi2,320:$Vl2}),o($VD4,[2,392],{114:628,331:640,115:$V12,116:$V22,123:$V32,136:$V62,316:$Vi2,320:$Vl2}),o($VD4,[2,393],{114:628,331:640,115:$V12,116:$V22,123:$V32,136:$V62,316:$Vi2,320:$Vl2}),o([2,4,5,10,53,72,74,76,77,78,89,93,95,98,99,107,112,118,122,123,124,128,129,130,131,132,133,134,135,137,138,139,140,141,142,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,179,180,181,183,185,187,189,198,206,208,222,223,224,225,226,227,228,229,232,239,244,245,246,247,249,251,270,271,284,285,286,287,288,289,290,291,293,300,304,310,312,313,314,315,317,318,319,321,322,323,324,325,326,327,328,329,330,334,335,336,337,339,342,343,400,404,405,408,410,412,413,421,422,424,428,438,440,441,443,444,445,446,447,451,452,455,456,468,474,509,511,512,521,606,767],[2,394],{114:628,331:640,115:$V12,116:$V22,136:$V62,316:$Vi2,320:$Vl2}),o($VE4,[2,395],{114:628,331:640,115:$V12,116:$V22,123:$V32,133:$V52,136:$V62,138:$V72,179:$Vf2,180:$Vg2,316:$Vi2,320:$Vl2,321:$Vm2}),o($VE4,[2,396],{114:628,331:640,115:$V12,116:$V22,123:$V32,133:$V52,136:$V62,138:$V72,179:$Vf2,180:$Vg2,316:$Vi2,320:$Vl2,321:$Vm2}),o($VE4,[2,397],{114:628,331:640,115:$V12,116:$V22,123:$V32,133:$V52,136:$V62,138:$V72,179:$Vf2,180:$Vg2,316:$Vi2,320:$Vl2,321:$Vm2}),o($VE4,[2,398],{114:628,331:640,115:$V12,116:$V22,123:$V32,133:$V52,136:$V62,138:$V72,179:$Vf2,180:$Vg2,316:$Vi2,320:$Vl2,321:$Vm2}),o($Vc4,[2,399],{77:$VP1}),o($VD1,[2,400]),{2:$V1,3:169,4:$V2,5:$V3,56:166,77:$VV,94:1162,111:150,113:154,131:$VW,132:$VX,137:$VY,143:$VZ,144:162,145:$V_,149:$V$,152:$V01,154:$V11,156:$VL,158:168,179:$V21,180:$V31,181:$V41,196:152,200:148,201:156,202:157,244:$V51,245:$V61,258:151,259:147,260:149,261:153,262:155,263:158,264:159,265:160,266:163,267:164,269:$V71,270:$Vc,274:$V81,275:$V91,277:$Va1,284:$Vb1,285:$Vc1,286:$Vd1,287:$Ve1,288:$Vf1,289:$Vg1,290:$Vh1,291:$Vi1,293:$VM,294:$VN,295:$VO,296:$VP,297:$VQ,298:$Vj1,299:$Vk1,300:$Vl1,301:$Vm1,302:$Vn1,303:$Vo1,306:$Vp1,307:$Vq1,316:$Vr1,321:$Vs1,423:191,424:$Vt1,428:$Vu1},o($VD1,[2,402]),o($Vc4,[2,403],{77:$VP1}),o($VD1,[2,404]),{2:$V1,3:169,4:$V2,5:$V3,56:166,77:$VV,94:1163,111:150,113:154,131:$VW,132:$VX,137:$VY,143:$VZ,144:162,145:$V_,149:$V$,152:$V01,154:$V11,156:$VL,158:168,179:$V21,180:$V31,181:$V41,196:152,200:148,201:156,202:157,244:$V51,245:$V61,258:151,259:147,260:149,261:153,262:155,263:158,264:159,265:160,266:163,267:164,269:$V71,270:$Vc,274:$V81,275:$V91,277:$Va1,284:$Vb1,285:$Vc1,286:$Vd1,287:$Ve1,288:$Vf1,289:$Vg1,290:$Vh1,291:$Vi1,293:$VM,294:$VN,295:$VO,296:$VP,297:$VQ,298:$Vj1,299:$Vk1,300:$Vl1,301:$Vm1,302:$Vn1,303:$Vo1,306:$Vp1,307:$Vq1,316:$Vr1,321:$Vs1,423:191,424:$Vt1,428:$Vu1},o($VD1,[2,406]),o($VF4,[2,407],{114:628,331:640,112:$V02,115:$V12,116:$V22,123:$V32,133:$V52,136:$V62,138:$V72,141:$Va2,142:$Vb2,179:$Vf2,180:$Vg2,315:$Vh2,316:$Vi2,317:$Vj2,319:$Vk2,320:$Vl2,321:$Vm2,322:$Vn2,323:$Vo2,336:$Vy2}),o($VF4,[2,408],{114:628,331:640,112:$V02,115:$V12,116:$V22,123:$V32,133:$V52,136:$V62,138:$V72,141:$Va2,142:$Vb2,179:$Vf2,180:$Vg2,315:$Vh2,316:$Vi2,317:$Vj2,319:$Vk2,320:$Vl2,321:$Vm2,322:$Vn2,323:$Vo2,336:$Vy2}),o($VF4,[2,409],{114:628,331:640,112:$V02,115:$V12,116:$V22,123:$V32,133:$V52,136:$V62,138:$V72,141:$Va2,142:$Vb2,179:$Vf2,180:$Vg2,315:$Vh2,316:$Vi2,317:$Vj2,319:$Vk2,320:$Vl2,321:$Vm2,322:$Vn2,323:$Vo2,336:$Vy2}),o($VF4,[2,410],{114:628,331:640,112:$V02,115:$V12,116:$V22,123:$V32,133:$V52,136:$V62,138:$V72,141:$Va2,142:$Vb2,179:$Vf2,180:$Vg2,315:$Vh2,316:$Vi2,317:$Vj2,319:$Vk2,320:$Vl2,321:$Vm2,322:$Vn2,323:$Vo2,336:$Vy2}),o([2,4,5,10,53,72,89,99,124,139,140,146,154,156,170,171,189,270,271,293,310,314,324,325,326,327,328,329,330,334,335,337,339,342,343,400,404,405,408,410,412,413,421,422,438,440,441,443,444,445,446,447,451,452,455,456,509,511,512,521,606,767],$VG4,{114:628,331:640,112:$V02,115:$V12,116:$V22,123:$V32,133:$V52,136:$V62,138:$V72,141:$Va2,142:$Vb2,179:$Vf2,180:$Vg2,315:$Vh2,316:$Vi2,317:$Vj2,319:$Vk2,320:$Vl2,321:$Vm2,322:$Vn2,323:$Vo2,336:$Vy2}),o($VF4,[2,412],{114:628,331:640,112:$V02,115:$V12,116:$V22,123:$V32,133:$V52,136:$V62,138:$V72,141:$Va2,142:$Vb2,179:$Vf2,180:$Vg2,315:$Vh2,316:$Vi2,317:$Vj2,319:$Vk2,320:$Vl2,321:$Vm2,322:$Vn2,323:$Vo2,336:$Vy2}),o($VF4,[2,413],{114:628,331:640,112:$V02,115:$V12,116:$V22,123:$V32,133:$V52,136:$V62,138:$V72,141:$Va2,142:$Vb2,179:$Vf2,180:$Vg2,315:$Vh2,316:$Vi2,317:$Vj2,319:$Vk2,320:$Vl2,321:$Vm2,322:$Vn2,323:$Vo2,336:$Vy2}),o($VF4,[2,414],{114:628,331:640,112:$V02,115:$V12,116:$V22,123:$V32,133:$V52,136:$V62,138:$V72,141:$Va2,142:$Vb2,179:$Vf2,180:$Vg2,315:$Vh2,316:$Vi2,317:$Vj2,319:$Vk2,320:$Vl2,321:$Vm2,322:$Vn2,323:$Vo2,336:$Vy2}),o($VF4,[2,415],{114:628,331:640,112:$V02,115:$V12,116:$V22,123:$V32,133:$V52,136:$V62,138:$V72,141:$Va2,142:$Vb2,179:$Vf2,180:$Vg2,315:$Vh2,316:$Vi2,317:$Vj2,319:$Vk2,320:$Vl2,321:$Vm2,322:$Vn2,323:$Vo2,336:$Vy2}),o($VF4,[2,416],{114:628,331:640,112:$V02,115:$V12,116:$V22,123:$V32,133:$V52,136:$V62,138:$V72,141:$Va2,142:$Vb2,179:$Vf2,180:$Vg2,315:$Vh2,316:$Vi2,317:$Vj2,319:$Vk2,320:$Vl2,321:$Vm2,322:$Vn2,323:$Vo2,336:$Vy2}),{77:[1,1164]},{77:[2,451]},{77:[2,452]},{77:[2,453]},o($VH4,[2,419],{114:628,331:640,99:$V$1,112:$V02,115:$V12,116:$V22,123:$V32,124:$VB3,133:$V52,136:$V62,138:$V72,139:$V82,140:$V92,141:$Va2,142:$Vb2,154:$Vc2,179:$Vf2,180:$Vg2,315:$Vh2,316:$Vi2,317:$Vj2,319:$Vk2,320:$Vl2,321:$Vm2,322:$Vn2,323:$Vo2,324:$Vp2,325:$Vq2,326:$Vr2,327:$Vs2,328:$Vt2,329:$Vu2,330:$Vv2,336:$Vy2}),o([2,4,5,10,53,72,74,76,77,78,89,93,95,98,107,118,122,128,129,130,131,132,134,135,137,143,145,146,148,149,150,152,156,162,164,166,168,169,171,172,173,175,181,183,185,187,189,198,206,208,222,223,224,225,226,227,228,229,232,239,244,245,246,247,249,251,270,271,284,285,286,287,288,289,290,291,293,300,304,310,312,313,314,318,337,339,342,343,400,404,405,408,410,412,413,421,422,424,428,438,440,441,443,444,445,446,447,451,452,455,456,468,474,509,511,512,521,606,767],[2,420],{114:628,331:640,99:$V$1,112:$V02,115:$V12,116:$V22,123:$V32,124:$VB3,133:$V52,136:$V62,138:$V72,139:$V82,140:$V92,141:$Va2,142:$Vb2,154:$Vc2,170:$Vd2,179:$Vf2,180:$Vg2,315:$Vh2,316:$Vi2,317:$Vj2,319:$Vk2,320:$Vl2,321:$Vm2,322:$Vn2,323:$Vo2,324:$Vp2,325:$Vq2,326:$Vr2,327:$Vs2,328:$Vt2,329:$Vu2,330:$Vv2,334:$Vw2,335:$Vx2,336:$Vy2}),{2:$V1,3:169,4:$V2,5:$V3,40:1165,56:166,77:$VV,78:[1,1167],79:75,89:$V7,94:262,111:150,113:154,131:$VW,132:$VX,137:$VY,143:$VZ,144:162,145:$V_,149:$V$,151:1166,152:$V01,154:$V11,156:$VL,158:168,179:$V21,180:$V31,181:$V41,184:99,189:$Vb,196:152,200:148,201:156,202:157,244:$V51,245:$V61,258:151,259:147,260:149,261:153,262:155,263:158,264:159,265:160,266:163,267:164,269:$V71,270:$Vc,274:$V81,275:$V91,277:$Va1,284:$Vb1,285:$Vc1,286:$Vd1,287:$Ve1,288:$Vf1,289:$Vg1,290:$Vh1,291:$Vi1,293:$VM,294:$VN,295:$VO,296:$VP,297:$VQ,298:$Vj1,299:$Vk1,300:$Vl1,301:$Vm1,302:$Vn1,303:$Vo1,306:$Vp1,307:$Vq1,316:$Vr1,321:$Vs1,423:191,424:$Vt1,428:$Vu1},o($VD1,[2,433]),o($VD1,[2,435]),o($VD1,[2,442]),o($VD1,[2,443]),{2:$V1,3:670,4:$V2,5:$V3,77:[1,1168]},{2:$V1,3:698,4:$V2,5:$V3,77:[1,1169],111:938,145:$V14,156:$VL,200:939,202:1171,293:$VM,294:$VN,295:$VO,296:$VP,297:$VQ,333:1170},o($VD1,[2,440]),o($VH4,[2,437],{114:628,331:640,99:$V$1,112:$V02,115:$V12,116:$V22,123:$V32,124:$VB3,133:$V52,136:$V62,138:$V72,139:$V82,140:$V92,141:$Va2,142:$Vb2,154:$Vc2,179:$Vf2,180:$Vg2,315:$Vh2,316:$Vi2,317:$Vj2,319:$Vk2,320:$Vl2,321:$Vm2,322:$Vn2,323:$Vo2,324:$Vp2,325:$Vq2,326:$Vr2,327:$Vs2,328:$Vt2,329:$Vu2,330:$Vv2,336:$Vy2}),o($VH4,[2,438],{114:628,331:640,99:$V$1,112:$V02,115:$V12,116:$V22,123:$V32,124:$VB3,133:$V52,136:$V62,138:$V72,139:$V82,140:$V92,141:$Va2,142:$Vb2,154:$Vc2,179:$Vf2,180:$Vg2,315:$Vh2,316:$Vi2,317:$Vj2,319:$Vk2,320:$Vl2,321:$Vm2,322:$Vn2,323:$Vo2,324:$Vp2,325:$Vq2,326:$Vr2,327:$Vs2,328:$Vt2,329:$Vu2,330:$Vv2,336:$Vy2}),o([2,4,5,10,53,72,74,76,77,78,89,93,95,98,99,107,118,122,124,128,129,130,131,132,134,135,137,139,140,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,181,183,185,187,189,198,206,208,222,223,224,225,226,227,228,229,232,239,244,245,246,247,249,251,270,271,284,285,286,287,288,289,290,291,293,300,304,310,312,313,314,318,324,325,326,327,328,329,330,334,335,336,337,339,342,343,400,404,405,408,410,412,413,421,422,424,428,438,440,441,443,444,445,446,447,451,452,455,456,468,474,509,511,512,521,606,767],[2,439],{114:628,331:640,112:$V02,115:$V12,116:$V22,123:$V32,133:$V52,136:$V62,138:$V72,141:$Va2,142:$Vb2,179:$Vf2,180:$Vg2,315:$Vh2,316:$Vi2,317:$Vj2,319:$Vk2,320:$Vl2,321:$Vm2,322:$Vn2,323:$Vo2}),o($VD1,[2,441]),o($VD1,[2,309]),o($VD1,[2,310]),o($VD1,[2,311]),o($VD1,[2,426]),{74:$Vz3,78:[1,1172]},{2:$V1,3:169,4:$V2,5:$V3,56:166,77:$VV,94:1173,111:150,113:154,131:$VW,132:$VX,137:$VY,143:$VZ,144:162,145:$V_,149:$V$,152:$V01,154:$V11,156:$VL,158:168,179:$V21,180:$V31,181:$V41,196:152,200:148,201:156,202:157,244:$V51,245:$V61,258:151,259:147,260:149,261:153,262:155,263:158,264:159,265:160,266:163,267:164,269:$V71,270:$Vc,274:$V81,275:$V91,277:$Va1,284:$Vb1,285:$Vc1,286:$Vd1,287:$Ve1,288:$Vf1,289:$Vg1,290:$Vh1,291:$Vi1,293:$VM,294:$VN,295:$VO,296:$VP,297:$VQ,298:$Vj1,299:$Vk1,300:$Vl1,301:$Vm1,302:$Vn1,303:$Vo1,306:$Vp1,307:$Vq1,316:$Vr1,321:$Vs1,423:191,424:$Vt1,428:$Vu1},{2:$V1,3:169,4:$V2,5:$V3,56:166,77:$VV,94:1174,111:150,113:154,131:$VW,132:$VX,137:$VY,143:$VZ,144:162,145:$V_,149:$V$,152:$V01,154:$V11,156:$VL,158:168,179:$V21,180:$V31,181:$V41,196:152,200:148,201:156,202:157,244:$V51,245:$V61,258:151,259:147,260:149,261:153,262:155,263:158,264:159,265:160,266:163,267:164,269:$V71,270:$Vc,274:$V81,275:$V91,277:$Va1,284:$Vb1,285:$Vc1,286:$Vd1,287:$Ve1,288:$Vf1,289:$Vg1,290:$Vh1,291:$Vi1,293:$VM,294:$VN,295:$VO,296:$VP,297:$VQ,298:$Vj1,299:$Vk1,300:$Vl1,301:$Vm1,302:$Vn1,303:$Vo1,306:$Vp1,307:$Vq1,316:$Vr1,321:$Vs1,423:191,424:$Vt1,428:$Vu1},o($VD1,$VI4),o($VJ4,[2,289]),o($VD1,[2,285]),{78:[1,1176],99:$V$1,112:$V02,114:628,115:$V12,116:$V22,123:$V32,124:$VB3,133:$V52,136:$V62,138:$V72,139:$V82,140:$V92,141:$Va2,142:$Vb2,154:$Vc2,170:$Vd2,171:$Ve2,179:$Vf2,180:$Vg2,315:$Vh2,316:$Vi2,317:$Vj2,319:$Vk2,320:$Vl2,321:$Vm2,322:$Vn2,323:$Vo2,324:$Vp2,325:$Vq2,326:$Vr2,327:$Vs2,328:$Vt2,329:$Vu2,330:$Vv2,331:640,334:$Vw2,335:$Vx2,336:$Vy2,337:$Vz2},{78:[1,1177]},{309:1178,310:$V64,311:961,312:$VE2,314:$V74},{310:[1,1179]},o($V84,[2,376]),{2:$V1,3:169,4:$V2,5:$V3,56:166,77:$VV,94:1180,111:150,113:154,131:$VW,132:$VX,137:$VY,143:$VZ,144:162,145:$V_,149:$V$,152:$V01,154:$V11,156:$VL,158:168,179:$V21,180:$V31,181:$V41,196:152,200:148,201:156,202:157,244:$V51,245:$V61,258:151,259:147,260:149,261:153,262:155,263:158,264:159,265:160,266:163,267:164,269:$V71,270:$Vc,274:$V81,275:$V91,277:$Va1,284:$Vb1,285:$Vc1,286:$Vd1,287:$Ve1,288:$Vf1,289:$Vg1,290:$Vh1,291:$Vi1,293:$VM,294:$VN,295:$VO,296:$VP,297:$VQ,298:$Vj1,299:$Vk1,300:$Vl1,301:$Vm1,302:$Vn1,303:$Vo1,306:$Vp1,307:$Vq1,316:$Vr1,321:$Vs1,423:191,424:$Vt1,428:$Vu1},{99:$V$1,112:$V02,114:628,115:$V12,116:$V22,123:$V32,124:$VB3,133:$V52,136:$V62,138:$V72,139:$V82,140:$V92,141:$Va2,142:$Vb2,154:$Vc2,170:$Vd2,171:$Ve2,179:$Vf2,180:$Vg2,313:[1,1181],315:$Vh2,316:$Vi2,317:$Vj2,319:$Vk2,320:$Vl2,321:$Vm2,322:$Vn2,323:$Vo2,324:$Vp2,325:$Vq2,326:$Vr2,327:$Vs2,328:$Vt2,329:$Vu2,330:$Vv2,331:640,334:$Vw2,335:$Vx2,336:$Vy2,337:$Vz2},{76:[1,1182],99:$V$1,112:$V02,114:628,115:$V12,116:$V22,123:$V32,124:$VB3,133:$V52,136:$V62,138:$V72,139:$V82,140:$V92,141:$Va2,142:$Vb2,154:$Vc2,170:$Vd2,171:$Ve2,179:$Vf2,180:$Vg2,315:$Vh2,316:$Vi2,317:$Vj2,319:$Vk2,320:$Vl2,321:$Vm2,322:$Vn2,323:$Vo2,324:$Vp2,325:$Vq2,326:$Vr2,327:$Vs2,328:$Vt2,329:$Vu2,330:$Vv2,331:640,334:$Vw2,335:$Vx2,336:$Vy2,337:$Vz2},{74:[1,1183]},o($VF2,[2,645]),{2:$V1,3:698,4:$V2,5:$V3,77:$VG2,111:693,113:691,131:$VW,132:$VX,143:$VZ,144:688,145:$VE1,152:$V01,156:$VL,181:$V41,196:690,200:696,201:695,261:692,262:694,293:$VM,294:$VN,295:$VO,296:$VP,297:$VQ,298:$Vj1,299:$Vk1,300:$Vl1,301:$Vm1,304:[1,1184],306:$Vp1,423:191,424:$Vt1,426:1185,427:689,428:$Vu1},{78:[1,1186],99:$V$1,112:$V02,114:628,115:$V12,116:$V22,123:$V32,124:$VB3,133:$V52,136:$V62,138:$V72,139:$V82,140:$V92,141:$Va2,142:$Vb2,154:$Vc2,170:$Vd2,171:$Ve2,179:$Vf2,180:$Vg2,315:$Vh2,316:$Vi2,317:$Vj2,319:$Vk2,320:$Vl2,321:$Vm2,322:$Vn2,323:$Vo2,324:$Vp2,325:$Vq2,326:$Vr2,327:$Vs2,328:$Vt2,329:$Vu2,330:$Vv2,331:640,334:$Vw2,335:$Vx2,336:$Vy2,337:$Vz2},{2:$V1,3:1187,4:$V2,5:$V3,149:$V34},o($VD1,[2,369]),o($VF2,[2,642]),{2:$V1,3:707,4:$V2,5:$V3,131:$VH2,132:$VI2,430:[1,1188],432:1189},{2:$V1,3:698,4:$V2,5:$V3,77:$VG2,111:693,113:691,131:$VW,132:$VX,143:$VZ,144:688,145:$VE1,152:$V01,156:$VL,181:$V41,196:690,200:696,201:695,261:692,262:694,293:$VM,294:$VN,295:$VO,296:$VP,297:$VQ,298:$Vj1,299:$Vk1,300:$Vl1,301:$Vm1,306:$Vp1,423:191,424:$Vt1,426:1190,427:689,428:$Vu1},{2:$V1,3:698,4:$V2,5:$V3,77:$VG2,111:693,113:691,131:$VW,132:$VX,143:$VZ,144:688,145:$VE1,152:$V01,156:$VL,181:$V41,196:690,200:696,201:695,261:692,262:694,293:$VM,294:$VN,295:$VO,296:$VP,297:$VQ,298:$Vj1,299:$Vk1,300:$Vl1,301:$Vm1,306:$Vp1,423:191,424:$Vt1,426:1191,427:689,428:$Vu1},{2:$V1,3:698,4:$V2,5:$V3,77:$VG2,111:693,113:691,131:$VW,132:$VX,143:$VZ,144:688,145:$VE1,152:$V01,156:$VL,181:$V41,196:690,200:696,201:695,261:692,262:694,293:$VM,294:$VN,295:$VO,296:$VP,297:$VQ,298:$Vj1,299:$Vk1,300:$Vl1,301:$Vm1,306:$Vp1,423:191,424:$Vt1,426:1192,427:689,428:$Vu1},{77:$Vg4,143:$VZ,144:983,145:$VE1,152:$V01,181:$V41,201:984,306:$Vp1,346:1193,423:191,424:$Vt1,428:$Vu1},o($VK4,[2,463],{74:$VL4}),{149:$Ve4,345:1195,348:$Vf4},{2:$V1,3:169,4:$V2,5:$V3,56:166,77:$VV,94:1199,100:1196,111:1198,113:154,131:$VW,132:$VX,137:$VY,143:$VZ,144:162,145:$V_,149:$V$,152:$V01,154:$V11,156:$VL,158:168,179:$V21,180:$V31,181:$V41,196:152,200:148,201:156,202:157,244:$V51,245:$V61,258:151,259:147,260:149,261:153,262:155,263:158,264:159,265:160,266:163,267:164,269:$V71,270:$Vc,274:$V81,275:$V91,277:$Va1,284:$Vb1,285:$Vc1,286:$Vd1,287:$Ve1,288:$Vf1,289:$Vg1,290:$Vh1,291:$Vi1,293:$VM,294:$VN,295:$VO,296:$VP,297:$VQ,298:$Vj1,299:$Vk1,300:$Vl1,301:$Vm1,302:$Vn1,303:$Vo1,306:$Vp1,307:$Vq1,316:$Vr1,321:$Vs1,349:1197,423:191,424:$Vt1,428:$Vu1},o($VK4,[2,471]),o($VM4,[2,474]),o($VM4,[2,475]),o($VN4,[2,479]),o($VN4,[2,480]),{2:$V1,3:246,4:$V2,5:$V3,199:1200},{77:$Vg4,143:$VZ,144:983,145:$VE1,152:$V01,181:$V41,201:984,306:$Vp1,346:1201,423:191,424:$Vt1,428:$Vu1},o($VK4,[2,467],{74:$VL4}),{2:$V1,3:169,4:$V2,5:$V3,56:166,77:$VV,94:1199,111:150,113:154,131:$VW,132:$VX,137:$VY,143:$VZ,144:162,145:$V_,149:$V$,152:$V01,154:$V11,156:$VL,158:168,179:$V21,180:$V31,181:$V41,196:152,200:148,201:156,202:157,244:$V51,245:$V61,258:151,259:147,260:149,261:153,262:155,263:158,264:159,265:160,266:163,267:164,269:$V71,270:$Vc,274:$V81,275:$V91,277:$Va1,284:$Vb1,285:$Vc1,286:$Vd1,287:$Ve1,288:$Vf1,289:$Vg1,290:$Vh1,291:$Vi1,293:$VM,294:$VN,295:$VO,296:$VP,297:$VQ,298:$Vj1,299:$Vk1,300:$Vl1,301:$Vm1,302:$Vn1,303:$Vo1,306:$Vp1,307:$Vq1,316:$Vr1,321:$Vs1,349:1197,423:191,424:$Vt1,428:$Vu1},{312:$VO4,460:1202,462:1203,463:1204},{2:$V1,3:169,4:$V2,5:$V3,56:166,77:$VV,94:1206,111:150,113:154,131:$VW,132:$VX,137:$VY,143:$VZ,144:162,145:$V_,149:$V$,152:$V01,154:$V11,156:$VL,158:168,179:$V21,180:$V31,181:$V41,196:152,200:148,201:156,202:157,244:$V51,245:$V61,258:151,259:147,260:149,261:153,262:155,263:158,264:159,265:160,266:163,267:164,269:$V71,270:$Vc,274:$V81,275:$V91,277:$Va1,284:$Vb1,285:$Vc1,286:$Vd1,287:$Ve1,288:$Vf1,289:$Vg1,290:$Vh1,291:$Vi1,293:$VM,294:$VN,295:$VO,296:$VP,297:$VQ,298:$Vj1,299:$Vk1,300:$Vl1,301:$Vm1,302:$Vn1,303:$Vo1,306:$Vp1,307:$Vq1,316:$Vr1,321:$Vs1,423:191,424:$Vt1,428:$Vu1},{230:[2,702]},o($VK2,[2,181],{3:1207,2:$V1,4:$V2,5:$V3,76:[1,1208]}),o($VK2,[2,182]),o($VK2,[2,1099]),o($VK2,[2,184]),o($VK2,[2,186]),o($VK2,[2,188]),o($VK2,[2,192]),o($VK2,[2,196]),o($VK2,[2,199]),o([2,4,5,10,53,72,74,76,77,78,89,93,95,98,118,124,128,143,145,146,148,149,152,154,156,162,168,169,181,183,187,189,206,208,222,223,224,225,226,227,228,229,230,231,232,249,251,270,271,293,301,306,310,314,339,342,343,347,348,360,372,373,377,378,400,404,405,406,407,408,410,412,413,421,422,424,428,438,440,441,443,444,445,446,447,451,452,455,456,509,511,512,518,519,520,521,606,767],[2,201]),{2:$V1,3:1209,4:$V2,5:$V3},o($VP4,[2,1050],{83:1210,92:1211,93:[1,1212],98:[1,1213]}),{2:$V1,3:221,4:$V2,5:$V3,77:[1,1215],132:$Vz1,143:$VZ,144:214,145:$V_,152:$V01,156:$VL,181:$V41,199:215,200:217,201:216,202:219,203:1214,209:1216,213:$VA1,214:220,293:$VM,294:$VN,295:$VO,296:$VP,297:$VQ,306:$Vp1,423:191,424:$Vt1,428:$Vu1},o($VN2,[2,164]),o($VN2,[2,165]),o($VN2,[2,166]),o($VN2,[2,167]),o($VN2,[2,168]),{2:$V1,3:670,4:$V2,5:$V3},o($VB1,[2,83],{74:[1,1217]}),o($VQ4,[2,85]),o($VQ4,[2,86]),{113:1218,132:$VX,300:$Vl1},o([10,72,74,78,93,98,118,124,128,162,168,169,183,198,206,208,222,223,224,225,226,227,228,229,232,249,251,310,314,606,767],$VA2,{116:$Vb4}),o($Vj4,[2,73]),o($Vj4,[2,1055]),{2:$V1,3:169,4:$V2,5:$V3,56:166,77:$VV,94:1219,111:150,113:154,131:$VW,132:$VX,137:$VY,143:$VZ,144:162,145:$V_,149:$V$,152:$V01,154:$V11,156:$VL,158:168,179:$V21,180:$V31,181:$V41,196:152,200:148,201:156,202:157,244:$V51,245:$V61,258:151,259:147,260:149,261:153,262:155,263:158,264:159,265:160,266:163,267:164,269:$V71,270:$Vc,274:$V81,275:$V91,277:$Va1,284:$Vb1,285:$Vc1,286:$Vd1,287:$Ve1,288:$Vf1,289:$Vg1,290:$Vh1,291:$Vi1,293:$VM,294:$VN,295:$VO,296:$VP,297:$VQ,298:$Vj1,299:$Vk1,300:$Vl1,301:$Vm1,302:$Vn1,303:$Vo1,306:$Vp1,307:$Vq1,316:$Vr1,321:$Vs1,423:191,424:$Vt1,428:$Vu1},o($Vn4,[2,126]),o($Vn4,[2,144]),o($Vn4,[2,145]),o($Vn4,[2,146]),{2:$V1,3:169,4:$V2,5:$V3,56:166,77:$VV,78:[2,1070],94:262,111:150,113:154,127:1220,131:$VW,132:$VX,137:$VY,143:$VZ,144:162,145:$V_,149:$V$,151:1221,152:$V01,154:$V11,156:$VL,158:168,179:$V21,180:$V31,181:$V41,196:152,200:148,201:156,202:157,244:$V51,245:$V61,258:151,259:147,260:149,261:153,262:155,263:158,264:159,265:160,266:163,267:164,269:$V71,270:$Vc,274:$V81,275:$V91,277:$Va1,284:$Vb1,285:$Vc1,286:$Vd1,287:$Ve1,288:$Vf1,289:$Vg1,290:$Vh1,291:$Vi1,293:$VM,294:$VN,295:$VO,296:$VP,297:$VQ,298:$Vj1,299:$Vk1,300:$Vl1,301:$Vm1,302:$Vn1,303:$Vo1,306:$Vp1,307:$Vq1,316:$Vr1,321:$Vs1,423:191,424:$Vt1,428:$Vu1},{77:[1,1222]},o($Vn4,[2,94]),o([2,4,5,10,72,74,76,77,78,118,122,124,128,129,130,131,132,134,135,137,139,140,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,181,183,185,187,198,244,245,284,285,286,287,288,289,290,291,310,314,424,428,606,767],[2,96],{114:628,331:640,99:$V$1,112:$V02,115:$V12,116:$V22,123:$V32,133:$V52,136:$V62,138:$V72,141:$Va2,142:$Vb2,179:$Vf2,180:$Vg2,315:$Vh2,316:$Vi2,317:$Vj2,319:$Vk2,320:$Vl2,321:$Vm2,322:$Vn2,323:$Vo2,324:$Vp2,325:$Vq2,326:$Vr2,327:$Vs2,328:$Vt2,329:$Vu2,330:$Vv2,334:$Vw2,335:$Vx2,336:$Vy2,337:$Vz2}),o([2,4,5,10,72,74,76,77,78,112,118,122,124,128,129,130,131,132,134,135,137,139,140,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,181,183,185,187,198,244,245,284,285,286,287,288,289,290,291,310,314,424,428,606,767],[2,97],{114:628,331:640,99:$V$1,115:$V12,116:$V22,123:$V32,133:$V52,136:$V62,138:$V72,141:$Va2,142:$Vb2,179:$Vf2,180:$Vg2,315:$Vh2,316:$Vi2,317:$Vj2,319:$Vk2,320:$Vl2,321:$Vm2,322:$Vn2,323:$Vo2,324:$Vp2,325:$Vq2,326:$Vr2,327:$Vs2,328:$Vt2,329:$Vu2,330:$Vv2,334:$Vw2,335:$Vx2,336:$Vy2,337:$Vz2}),{2:$V1,3:736,4:$V2,5:$V3,72:$VR2,76:$VS2,77:$VT2,78:[1,1223],112:$VU2,114:739,115:$V12,116:$V22,117:1224,118:$VV2,122:$VW2,123:$VX2,124:$VY2,128:$VZ2,129:$V_2,130:$V$2,131:$V03,132:$V13,133:$V23,134:$V33,135:$V43,136:$V53,137:$V63,138:$V73,139:$V83,140:$V93,141:$Va3,142:$Vb3,143:$Vc3,144:761,145:$Vd3,146:$Ve3,148:$Vf3,149:$Vg3,150:$Vh3,152:$Vi3,154:$Vj3,156:$Vk3,158:771,160:772,162:$Vl3,164:$Vm3,166:$Vn3,168:$Vo3,169:$Vp3,170:$Vq3,171:$Vr3,172:$Vs3,173:$Vt3,175:$Vu3,185:$Vv3,187:$Vw3,244:$V51,245:$V61,284:$Vb1,285:$Vc1,286:$Vd1,287:$Ve1,288:$Vf1,289:$Vg1,290:$Vh1,291:$Vi1,423:191,424:$Vt1,428:$Vu1},o($VR4,[2,1066],{153:1019,179:$Vk4,180:$Vl4,181:$Vm4}),{2:$V1,3:736,4:$V2,5:$V3,72:$VR2,76:$VS2,77:$VT2,112:$VU2,114:739,115:$V12,116:$V22,117:1226,118:$VV2,122:$VW2,123:$VX2,124:$VY2,126:1225,128:$VZ2,129:$V_2,130:$V$2,131:$V03,132:$V13,133:$V23,134:$V33,135:$V43,136:$V53,137:$V63,138:$V73,139:$V83,140:$V93,141:$Va3,142:$Vb3,143:$Vc3,144:761,145:$Vd3,146:$Ve3,148:$Vf3,149:$Vg3,150:$Vh3,152:$Vi3,154:$Vj3,156:$Vk3,158:771,160:772,162:$Vl3,164:$Vm3,166:$Vn3,168:$Vo3,169:$Vp3,170:$Vq3,171:$Vr3,172:$Vs3,173:$Vt3,175:$Vu3,185:$Vv3,187:$Vw3,244:$V51,245:$V61,284:$Vb1,285:$Vc1,286:$Vd1,287:$Ve1,288:$Vf1,289:$Vg1,290:$Vh1,291:$Vi1,423:191,424:$Vt1,428:$Vu1},{2:$V1,3:169,4:$V2,5:$V3,56:166,77:$VV,94:1227,111:150,113:154,131:$VW,132:$VX,137:$VY,143:$VZ,144:162,145:$V_,149:$V$,152:$V01,154:$V11,156:$VL,158:168,179:$V21,180:$V31,181:$V41,196:152,200:148,201:156,202:157,244:$V51,245:$V61,258:151,259:147,260:149,261:153,262:155,263:158,264:159,265:160,266:163,267:164,269:$V71,270:$Vc,274:$V81,275:$V91,277:$Va1,284:$Vb1,285:$Vc1,286:$Vd1,287:$Ve1,288:$Vf1,289:$Vg1,290:$Vh1,291:$Vi1,293:$VM,294:$VN,295:$VO,296:$VP,297:$VQ,298:$Vj1,299:$Vk1,300:$Vl1,301:$Vm1,302:$Vn1,303:$Vo1,306:$Vp1,307:$Vq1,316:$Vr1,321:$Vs1,423:191,424:$Vt1,428:$Vu1},{2:$V1,3:169,4:$V2,5:$V3,56:166,77:$VV,94:1228,111:150,113:154,131:$VW,132:$VX,137:$VY,143:$VZ,144:162,145:$V_,149:$V$,152:$V01,154:$V11,156:$VL,158:168,179:$V21,180:$V31,181:$V41,196:152,200:148,201:156,202:157,244:$V51,245:$V61,258:151,259:147,260:149,261:153,262:155,263:158,264:159,265:160,266:163,267:164,269:$V71,270:$Vc,274:$V81,275:$V91,277:$Va1,284:$Vb1,285:$Vc1,286:$Vd1,287:$Ve1,288:$Vf1,289:$Vg1,290:$Vh1,291:$Vi1,293:$VM,294:$VN,295:$VO,296:$VP,297:$VQ,298:$Vj1,299:$Vk1,300:$Vl1,301:$Vm1,302:$Vn1,303:$Vo1,306:$Vp1,307:$Vq1,316:$Vr1,321:$Vs1,423:191,424:$Vt1,428:$Vu1},{2:$V1,3:1229,4:$V2,5:$V3},o($Vn4,[2,110]),o($Vn4,[2,111]),o($Vn4,[2,112]),o($Vn4,[2,119]),{2:$V1,3:1230,4:$V2,5:$V3},{2:$V1,3:1015,4:$V2,5:$V3,111:1069,143:$Vo4,145:$Vp4,147:1231,340:1068,341:1070},{2:$V1,3:1232,4:$V2,5:$V3},{2:$V1,3:169,4:$V2,5:$V3,56:166,77:$VV,94:262,111:150,113:154,131:$VW,132:$VX,137:$VY,143:$VZ,144:162,145:$V_,149:$V$,151:1233,152:$V01,154:$V11,156:$VL,158:168,179:$V21,180:$V31,181:$V41,196:152,200:148,201:156,202:157,244:$V51,245:$V61,258:151,259:147,260:149,261:153,262:155,263:158,264:159,265:160,266:163,267:164,269:$V71,270:$Vc,274:$V81,275:$V91,277:$Va1,284:$Vb1,285:$Vc1,286:$Vd1,287:$Ve1,288:$Vf1,289:$Vg1,290:$Vh1,291:$Vi1,293:$VM,294:$VN,295:$VO,296:$VP,297:$VQ,298:$Vj1,299:$Vk1,300:$Vl1,301:$Vm1,302:$Vn1,303:$Vo1,306:$Vp1,307:$Vq1,316:$Vr1,321:$Vs1,423:191,424:$Vt1,428:$Vu1},o($Vn4,[2,125]),o($VR4,[2,1072],{155:1234}),o($VR4,[2,1074],{157:1235}),o($VR4,[2,1076],{159:1236}),o($VR4,[2,1080],{161:1237}),o($VS4,$VT4,{163:1238,178:1239}),{77:[1,1240]},o($VR4,[2,1082],{165:1241}),o($VR4,[2,1084],{167:1242}),o($VS4,$VT4,{178:1239,163:1243}),o($VS4,$VT4,{178:1239,163:1244}),o($VS4,$VT4,{178:1239,163:1245}),o($VS4,$VT4,{178:1239,163:1246}),{2:$V1,3:736,4:$V2,5:$V3,72:$VR2,76:$VS2,77:$VT2,112:$VU2,114:739,115:$V12,116:$V22,117:1247,118:$VV2,122:$VW2,123:$VX2,124:$VY2,128:$VZ2,129:$V_2,130:$V$2,131:$V03,132:$V13,133:$V23,134:$V33,135:$V43,136:$V53,137:$V63,138:$V73,139:$V83,140:$V93,141:$Va3,142:$Vb3,143:$Vc3,144:761,145:$Vd3,146:$Ve3,148:$Vf3,149:$Vg3,150:$Vh3,152:$Vi3,154:$Vj3,156:$Vk3,158:771,160:772,162:$Vl3,164:$Vm3,166:$Vn3,168:$Vo3,169:$Vp3,170:$Vq3,171:$Vr3,172:$Vs3,173:$Vt3,175:$Vu3,185:$Vv3,187:$Vw3,244:$V51,245:$V61,284:$Vb1,285:$Vc1,286:$Vd1,287:$Ve1,288:$Vf1,289:$Vg1,290:$Vh1,291:$Vi1,423:191,424:$Vt1,428:$Vu1},{2:$V1,3:169,4:$V2,5:$V3,56:166,77:$VV,94:820,111:150,113:154,131:$VW,132:$VX,137:$VY,143:$VZ,144:162,145:$V_,149:$V$,152:$V01,154:$V11,156:$VL,158:168,174:1248,179:$V21,180:$V31,181:$V41,196:152,200:148,201:156,202:157,244:$V51,245:$V61,257:819,258:151,259:147,260:149,261:153,262:155,263:158,264:159,265:160,266:163,267:164,269:$V71,270:$Vc,274:$V81,275:$V91,277:$Va1,284:$Vb1,285:$Vc1,286:$Vd1,287:$Ve1,288:$Vf1,289:$Vg1,290:$Vh1,291:$Vi1,293:$VM,294:$VN,295:$VO,296:$VP,297:$VQ,298:$Vj1,299:$Vk1,300:$Vl1,301:$Vm1,302:$Vn1,303:$Vo1,306:$Vp1,307:$Vq1,316:$Vr1,321:$Vs1,423:191,424:$Vt1,428:$Vu1},o($VU4,[2,1086],{176:1249}),o($VK,[2,611],{183:[1,1250]}),o($VK,[2,607],{183:[1,1251]}),o($VK,[2,600]),{113:1252,132:$VX,300:$Vl1},o($VK,[2,609],{183:[1,1253]}),o($VK,[2,604]),o($VK,[2,605],{112:[1,1254]}),o($Vx3,[2,69]),{40:1255,79:75,89:$V7,184:99,189:$Vb},o($VK,[2,455],{74:$VV4,128:[1,1256]}),o($VW4,[2,456]),{124:[1,1258]},{2:$V1,3:1259,4:$V2,5:$V3},o($Vv1,[2,1120]),o($Vv1,[2,1121]),o($VK,[2,623]),o($VA3,[2,360],{114:628,331:640,99:$V$1,112:$V02,115:$V12,116:$V22,123:$V32,124:$VB3,133:$V52,136:$V62,138:$V72,139:$V82,140:$V92,141:$Va2,142:$Vb2,154:$Vc2,170:$Vd2,171:$Ve2,179:$Vf2,180:$Vg2,315:$Vh2,316:$Vi2,317:$Vj2,319:$Vk2,320:$Vl2,321:$Vm2,322:$Vn2,323:$Vo2,324:$Vp2,325:$Vq2,326:$Vr2,327:$Vs2,328:$Vt2,329:$Vu2,330:$Vv2,334:$Vw2,335:$Vx2,336:$Vy2,337:$Vz2}),o($VF4,$VG4,{114:628,331:640,112:$V02,115:$V12,116:$V22,123:$V32,133:$V52,136:$V62,138:$V72,141:$Va2,142:$Vb2,179:$Vf2,180:$Vg2,315:$Vh2,316:$Vi2,317:$Vj2,319:$Vk2,320:$Vl2,321:$Vm2,322:$Vn2,323:$Vo2,336:$Vy2}),o($VX1,[2,687]),o($VX1,[2,689]),o($VK,[2,655]),o($VK,[2,657],{114:628,331:640,99:$V$1,112:$V02,115:$V12,116:$V22,123:$V32,124:$VB3,133:$V52,136:$V62,138:$V72,139:$V82,140:$V92,141:$Va2,142:$Vb2,154:$Vc2,170:$Vd2,171:$Ve2,179:$Vf2,180:$Vg2,315:$Vh2,316:$Vi2,317:$Vj2,319:$Vk2,320:$Vl2,321:$Vm2,322:$Vn2,323:$Vo2,324:$Vp2,325:$Vq2,326:$Vr2,327:$Vs2,328:$Vt2,329:$Vu2,330:$Vv2,334:$Vw2,335:$Vx2,336:$Vy2,337:$Vz2}),{2:$V1,3:169,4:$V2,5:$V3,56:166,77:$VV,94:1260,111:150,113:154,131:$VW,132:$VX,137:$VY,143:$VZ,144:162,145:$V_,149:$V$,152:$V01,154:$V11,156:$VL,158:168,179:$V21,180:$V31,181:$V41,196:152,200:148,201:156,202:157,244:$V51,245:$V61,258:151,259:147,260:149,261:153,262:155,263:158,264:159,265:160,266:163,267:164,269:$V71,270:$Vc,274:$V81,275:$V91,277:$Va1,284:$Vb1,285:$Vc1,286:$Vd1,287:$Ve1,288:$Vf1,289:$Vg1,290:$Vh1,291:$Vi1,293:$VM,294:$VN,295:$VO,296:$VP,297:$VQ,298:$Vj1,299:$Vk1,300:$Vl1,301:$Vm1,302:$Vn1,303:$Vo1,306:$Vp1,307:$Vq1,316:$Vr1,321:$Vs1,423:191,424:$Vt1,428:$Vu1},{2:$V1,3:1083,4:$V2,5:$V3,77:$Vq4,131:$Vr4,436:1261},o($VX4,[2,664]),o($VX4,[2,665]),o($VX4,[2,666]),{2:$V1,3:169,4:$V2,5:$V3,56:166,77:$VV,94:1262,111:150,113:154,131:$VW,132:$VX,137:$VY,143:$VZ,144:162,145:$V_,149:$V$,152:$V01,154:$V11,156:$VL,158:168,179:$V21,180:$V31,181:$V41,196:152,200:148,201:156,202:157,244:$V51,245:$V61,258:151,259:147,260:149,261:153,262:155,263:158,264:159,265:160,266:163,267:164,269:$V71,270:$Vc,274:$V81,275:$V91,277:$Va1,284:$Vb1,285:$Vc1,286:$Vd1,287:$Ve1,288:$Vf1,289:$Vg1,290:$Vh1,291:$Vi1,293:$VM,294:$VN,295:$VO,296:$VP,297:$VQ,298:$Vj1,299:$Vk1,300:$Vl1,301:$Vm1,302:$Vn1,303:$Vo1,306:$Vp1,307:$Vq1,316:$Vr1,321:$Vs1,423:191,424:$Vt1,428:$Vu1},{2:$V1,3:169,4:$V2,5:$V3,56:166,77:$VV,94:1263,111:150,113:154,131:$VW,132:$VX,137:$VY,143:$VZ,144:162,145:$V_,149:$V$,152:$V01,154:$V11,156:$VL,158:168,179:$V21,180:$V31,181:$V41,196:152,200:148,201:156,202:157,244:$V51,245:$V61,258:151,259:147,260:149,261:153,262:155,263:158,264:159,265:160,266:163,267:164,269:$V71,270:$Vc,274:$V81,275:$V91,277:$Va1,284:$Vb1,285:$Vc1,286:$Vd1,287:$Ve1,288:$Vf1,289:$Vg1,290:$Vh1,291:$Vi1,293:$VM,294:$VN,295:$VO,296:$VP,297:$VQ,298:$Vj1,299:$Vk1,300:$Vl1,301:$Vm1,302:$Vn1,303:$Vo1,306:$Vp1,307:$Vq1,316:$Vr1,321:$Vs1,423:191,424:$Vt1,428:$Vu1},{114:1081,115:$V12,116:$V22,124:[1,1264]},o($VF3,[2,760]),o($VH3,[2,148],{74:$Vs4}),o($VH3,[2,149],{74:$Vs4}),o($VH3,[2,150],{74:$Vs4}),{2:$V1,3:169,4:$V2,5:$V3,56:166,77:$VV,94:820,111:150,113:154,131:$VW,132:$VX,137:$VY,143:$VZ,144:162,145:$V_,149:$V$,152:$V01,154:$V11,156:$VL,158:168,179:$V21,180:$V31,181:$V41,196:152,200:148,201:156,202:157,244:$V51,245:$V61,257:1265,258:151,259:147,260:149,261:153,262:155,263:158,264:159,265:160,266:163,267:164,269:$V71,270:$Vc,274:$V81,275:$V91,277:$Va1,284:$Vb1,285:$Vc1,286:$Vd1,287:$Ve1,288:$Vf1,289:$Vg1,290:$Vh1,291:$Vi1,293:$VM,294:$VN,295:$VO,296:$VP,297:$VQ,298:$Vj1,299:$Vk1,300:$Vl1,301:$Vm1,302:$Vn1,303:$Vo1,306:$Vp1,307:$Vq1,316:$Vr1,321:$Vs1,423:191,424:$Vt1,428:$Vu1},{2:$V1,3:1266,4:$V2,5:$V3,113:1268,131:[1,1267],132:$VX,300:$Vl1},o($Vt4,[2,278]),o($Vt4,[2,280]),o($Vt4,[2,282]),o($VJ1,[2,160]),o($VJ1,[2,1095]),{78:[1,1269]},o($VM1,[2,763]),{2:$V1,3:1270,4:$V2,5:$V3},{2:$V1,3:1271,4:$V2,5:$V3},{2:$V1,3:1273,4:$V2,5:$V3,388:1272},{2:$V1,3:1273,4:$V2,5:$V3,388:1274},{2:$V1,3:1275,4:$V2,5:$V3},{2:$V1,3:169,4:$V2,5:$V3,56:166,77:$VV,94:262,111:150,113:154,131:$VW,132:$VX,137:$VY,143:$VZ,144:162,145:$V_,149:$V$,151:1276,152:$V01,154:$V11,156:$VL,158:168,179:$V21,180:$V31,181:$V41,196:152,200:148,201:156,202:157,244:$V51,245:$V61,258:151,259:147,260:149,261:153,262:155,263:158,264:159,265:160,266:163,267:164,269:$V71,270:$Vc,274:$V81,275:$V91,277:$Va1,284:$Vb1,285:$Vc1,286:$Vd1,287:$Ve1,288:$Vf1,289:$Vg1,290:$Vh1,291:$Vi1,293:$VM,294:$VN,295:$VO,296:$VP,297:$VQ,298:$Vj1,299:$Vk1,300:$Vl1,301:$Vm1,302:$Vn1,303:$Vo1,306:$Vp1,307:$Vq1,316:$Vr1,321:$Vs1,423:191,424:$Vt1,428:$Vu1},{2:$V1,3:1277,4:$V2,5:$V3},{74:$Vz3,78:[1,1278]},o($VB2,[2,351]),o($VB2,[2,352]),{2:$V1,3:169,4:$V2,5:$V3,56:166,77:$VV,94:1279,111:150,113:154,131:$VW,132:$VX,137:$VY,143:$VZ,144:162,145:$V_,149:$V$,152:$V01,154:$V11,156:$VL,158:168,179:$V21,180:$V31,181:$V41,196:152,200:148,201:156,202:157,244:$V51,245:$V61,258:151,259:147,260:149,261:153,262:155,263:158,264:159,265:160,266:163,267:164,269:$V71,270:$Vc,274:$V81,275:$V91,277:$Va1,284:$Vb1,285:$Vc1,286:$Vd1,287:$Ve1,288:$Vf1,289:$Vg1,290:$Vh1,291:$Vi1,293:$VM,294:$VN,295:$VO,296:$VP,297:$VQ,298:$Vj1,299:$Vk1,300:$Vl1,301:$Vm1,302:$Vn1,303:$Vo1,306:$Vp1,307:$Vq1,316:$Vr1,321:$Vs1,423:191,424:$Vt1,428:$Vu1},{2:$V1,3:169,4:$V2,5:$V3,56:166,77:$VV,94:1280,111:150,113:154,131:$VW,132:$VX,137:$VY,143:$VZ,144:162,145:$V_,149:$V$,152:$V01,154:$V11,156:$VL,158:168,179:$V21,180:$V31,181:$V41,196:152,200:148,201:156,202:157,244:$V51,245:$V61,258:151,259:147,260:149,261:153,262:155,263:158,264:159,265:160,266:163,267:164,269:$V71,270:$Vc,274:$V81,275:$V91,277:$Va1,284:$Vb1,285:$Vc1,286:$Vd1,287:$Ve1,288:$Vf1,289:$Vg1,290:$Vh1,291:$Vi1,293:$VM,294:$VN,295:$VO,296:$VP,297:$VQ,298:$Vj1,299:$Vk1,300:$Vl1,301:$Vm1,302:$Vn1,303:$Vo1,306:$Vp1,307:$Vq1,316:$Vr1,321:$Vs1,423:191,424:$Vt1,428:$Vu1},{2:$V1,3:169,4:$V2,5:$V3,56:166,77:$VV,94:1281,111:150,113:154,131:$VW,132:$VX,137:$VY,143:$VZ,144:162,145:$V_,149:$V$,152:$V01,154:$V11,156:$VL,158:168,179:$V21,180:$V31,181:$V41,196:152,200:148,201:156,202:157,244:$V51,245:$V61,258:151,259:147,260:149,261:153,262:155,263:158,264:159,265:160,266:163,267:164,269:$V71,270:$Vc,274:$V81,275:$V91,277:$Va1,284:$Vb1,285:$Vc1,286:$Vd1,287:$Ve1,288:$Vf1,289:$Vg1,290:$Vh1,291:$Vi1,293:$VM,294:$VN,295:$VO,296:$VP,297:$VQ,298:$Vj1,299:$Vk1,300:$Vl1,301:$Vm1,302:$Vn1,303:$Vo1,306:$Vp1,307:$Vq1,316:$Vr1,321:$Vs1,423:191,424:$Vt1,428:$Vu1},{2:$V1,3:169,4:$V2,5:$V3,56:166,77:$VV,94:1282,111:150,113:154,131:$VW,132:$VX,137:$VY,143:$VZ,144:162,145:$V_,149:$V$,152:$V01,154:$V11,156:$VL,158:168,179:$V21,180:$V31,181:$V41,196:152,200:148,201:156,202:157,244:$V51,245:$V61,258:151,259:147,260:149,261:153,262:155,263:158,264:159,265:160,266:163,267:164,269:$V71,270:$Vc,274:$V81,275:$V91,277:$Va1,284:$Vb1,285:$Vc1,286:$Vd1,287:$Ve1,288:$Vf1,289:$Vg1,290:$Vh1,291:$Vi1,293:$VM,294:$VN,295:$VO,296:$VP,297:$VQ,298:$Vj1,299:$Vk1,300:$Vl1,301:$Vm1,302:$Vn1,303:$Vo1,306:$Vp1,307:$Vq1,316:$Vr1,321:$Vs1,423:191,424:$Vt1,428:$Vu1},{2:$V1,3:169,4:$V2,5:$V3,56:166,77:$VV,94:1283,111:150,113:154,131:$VW,132:$VX,137:$VY,143:$VZ,144:162,145:$V_,149:$V$,152:$V01,154:$V11,156:$VL,158:168,179:$V21,180:$V31,181:$V41,196:152,200:148,201:156,202:157,244:$V51,245:$V61,258:151,259:147,260:149,261:153,262:155,263:158,264:159,265:160,266:163,267:164,269:$V71,270:$Vc,274:$V81,275:$V91,277:$Va1,284:$Vb1,285:$Vc1,286:$Vd1,287:$Ve1,288:$Vf1,289:$Vg1,290:$Vh1,291:$Vi1,293:$VM,294:$VN,295:$VO,296:$VP,297:$VQ,298:$Vj1,299:$Vk1,300:$Vl1,301:$Vm1,302:$Vn1,303:$Vo1,306:$Vp1,307:$Vq1,316:$Vr1,321:$Vs1,423:191,424:$Vt1,428:$Vu1},o($VJ3,[2,509]),o($VK,$VY4,{411:1284,76:$VZ4,77:[1,1285]}),o($VK,$VY4,{411:1287,76:$VZ4}),{77:[1,1288]},{2:$V1,3:246,4:$V2,5:$V3,199:1289},o($VF3,[2,736]),o($VF3,[2,738]),o($VF3,[2,1151]),{143:$VH1,145:$VI1,435:1290},o($V_4,[2,1152],{423:191,483:1291,144:1292,145:$VE1,424:$Vt1,428:$Vu1}),{76:$Vu4,139:[2,1156],485:1293,487:1294},o([10,74,76,78,132,139,145,152,310,314,424,428,606,767],$VO3,{494:855,497:856,137:$VU1}),o($VF3,[2,741]),o($VF3,$VM3),{74:$VK3,78:[1,1295]},o($VQ3,[2,1170],{496:1296,501:1297,152:$VV1}),o($VP3,[2,1169]),o($VQ3,[2,750]),o($VQ3,[2,1175]),o($VK,[2,495],{77:[1,1298]}),{76:[1,1300],77:[1,1299]},{99:$V$1,112:$V02,114:628,115:$V12,116:$V22,123:$V32,124:$VB3,133:$V52,136:$V62,138:$V72,139:$V82,140:$V92,141:$Va2,142:$Vb2,148:[1,1301],154:$Vc2,170:$Vd2,171:$Ve2,179:$Vf2,180:$Vg2,315:$Vh2,316:$Vi2,317:$Vj2,319:$Vk2,320:$Vl2,321:$Vm2,322:$Vn2,323:$Vo2,324:$Vp2,325:$Vq2,326:$Vr2,327:$Vs2,328:$Vt2,329:$Vu2,330:$Vv2,331:640,334:$Vw2,335:$Vx2,336:$Vy2,337:$Vz2},o($VK4,$V$4,{79:75,184:99,472:1302,40:1305,89:$V7,146:$V05,189:$Vb,474:$V15}),o($Vv4,[2,1145]),o($VS3,[2,728]),{230:[1,1306]},o($V25,[2,774]),o($V25,[2,775]),o($V25,[2,776]),o($VT3,$VU3,{514:1307,95:$VV3,518:$VW3,519:$VX3,520:$VY3}),o($VT3,[2,773]),o($VK,[2,315]),o($VK,[2,316]),{2:$V1,3:169,4:$V2,5:$V3,56:166,77:$VV,94:1308,111:150,113:154,131:$VW,132:$VX,137:$VY,143:$VZ,144:162,145:$V_,149:$V$,152:$V01,154:$V11,156:$VL,158:168,179:$V21,180:$V31,181:$V41,196:152,200:148,201:156,202:157,244:$V51,245:$V61,258:151,259:147,260:149,261:153,262:155,263:158,264:159,265:160,266:163,267:164,269:$V71,270:$Vc,274:$V81,275:$V91,277:$Va1,284:$Vb1,285:$Vc1,286:$Vd1,287:$Ve1,288:$Vf1,289:$Vg1,290:$Vh1,291:$Vi1,293:$VM,294:$VN,295:$VO,296:$VP,297:$VQ,298:$Vj1,299:$Vk1,300:$Vl1,301:$Vm1,302:$Vn1,303:$Vo1,306:$Vp1,307:$Vq1,316:$Vr1,321:$Vs1,423:191,424:$Vt1,428:$Vu1},o($VX1,[2,695],{124:[1,1309]}),o($Vz4,[2,546]),{131:[1,1311],392:1310,394:[1,1312]},o($Vz4,[2,5]),{2:$V1,3:169,4:$V2,5:$V3,56:166,77:$VV,94:1199,111:150,113:154,131:$VW,132:$VX,137:$VY,143:$VZ,144:162,145:$V_,149:$V$,152:$V01,154:$V11,156:$VL,158:168,179:$V21,180:$V31,181:$V41,196:152,200:148,201:156,202:157,244:$V51,245:$V61,258:151,259:147,260:149,261:153,262:155,263:158,264:159,265:160,266:163,267:164,269:$V71,270:$Vc,274:$V81,275:$V91,277:$Va1,284:$Vb1,285:$Vc1,286:$Vd1,287:$Ve1,288:$Vf1,289:$Vg1,290:$Vh1,291:$Vi1,293:$VM,294:$VN,295:$VO,296:$VP,297:$VQ,298:$Vj1,299:$Vk1,300:$Vl1,301:$Vm1,302:$Vn1,303:$Vo1,306:$Vp1,307:$Vq1,316:$Vr1,321:$Vs1,349:1313,423:191,424:$Vt1,428:$Vu1},o($VK,[2,460],{114:628,331:640,99:$V$1,112:$V02,115:$V12,116:$V22,123:$V32,124:$VB3,133:$V52,136:$V62,138:$V72,139:$V82,140:$V92,141:$Va2,142:$Vb2,154:$Vc2,170:$Vd2,171:$Ve2,179:$Vf2,180:$Vg2,315:$Vh2,316:$Vi2,317:$Vj2,319:$Vk2,320:$Vl2,321:$Vm2,322:$Vn2,323:$Vo2,324:$Vp2,325:$Vq2,326:$Vr2,327:$Vs2,328:$Vt2,329:$Vu2,330:$Vv2,334:$Vw2,335:$Vx2,336:$Vy2,337:$Vz2}),o($VK,[2,594]),o($VK,[2,595]),{2:$V1,3:246,4:$V2,5:$V3,199:1314},o($VK,[2,675]),{2:$V1,3:169,4:$V2,5:$V3,56:166,77:$VV,94:1315,111:150,113:154,131:$VW,132:$VX,137:$VY,143:$VZ,144:162,145:$V_,149:$V$,152:$V01,154:$V11,156:$VL,158:168,179:$V21,180:$V31,181:$V41,196:152,200:148,201:156,202:157,244:$V51,245:$V61,258:151,259:147,260:149,261:153,262:155,263:158,264:159,265:160,266:163,267:164,269:$V71,270:$Vc,274:$V81,275:$V91,277:$Va1,284:$Vb1,285:$Vc1,286:$Vd1,287:$Ve1,288:$Vf1,289:$Vg1,290:$Vh1,291:$Vi1,293:$VM,294:$VN,295:$VO,296:$VP,297:$VQ,298:$Vj1,299:$Vk1,300:$Vl1,301:$Vm1,302:$Vn1,303:$Vo1,306:$Vp1,307:$Vq1,316:$Vr1,321:$Vs1,423:191,424:$Vt1,428:$Vu1},{2:$V1,3:169,4:$V2,5:$V3,56:166,77:$VV,94:1316,111:150,113:154,131:$VW,132:$VX,137:$VY,143:$VZ,144:162,145:$V_,149:$V$,152:$V01,154:$V11,156:$VL,158:168,179:$V21,180:$V31,181:$V41,196:152,200:148,201:156,202:157,244:$V51,245:$V61,258:151,259:147,260:149,261:153,262:155,263:158,264:159,265:160,266:163,267:164,269:$V71,270:$Vc,274:$V81,275:$V91,277:$Va1,284:$Vb1,285:$Vc1,286:$Vd1,287:$Ve1,288:$Vf1,289:$Vg1,290:$Vh1,291:$Vi1,293:$VM,294:$VN,295:$VO,296:$VP,297:$VQ,298:$Vj1,299:$Vk1,300:$Vl1,301:$Vm1,302:$Vn1,303:$Vo1,306:$Vp1,307:$Vq1,316:$Vr1,321:$Vs1,423:191,424:$Vt1,428:$Vu1},{78:[1,1317],99:$V$1,112:$V02,114:628,115:$V12,116:$V22,123:$V32,124:$VB3,133:$V52,136:$V62,138:$V72,139:$V82,140:$V92,141:$Va2,142:$Vb2,154:$Vc2,170:$Vd2,171:$Ve2,179:$Vf2,180:$Vg2,315:$Vh2,316:$Vi2,317:$Vj2,319:$Vk2,320:$Vl2,321:$Vm2,322:$Vn2,323:$Vo2,324:$Vp2,325:$Vq2,326:$Vr2,327:$Vs2,328:$Vt2,329:$Vu2,330:$Vv2,331:640,334:$Vw2,335:$Vx2,336:$Vy2,337:$Vz2},{78:[1,1318],99:$V$1,112:$V02,114:628,115:$V12,116:$V22,123:$V32,124:$VB3,133:$V52,136:$V62,138:$V72,139:$V82,140:$V92,141:$Va2,142:$Vb2,154:$Vc2,170:$Vd2,171:$Ve2,179:$Vf2,180:$Vg2,315:$Vh2,316:$Vi2,317:$Vj2,319:$Vk2,320:$Vl2,321:$Vm2,322:$Vn2,323:$Vo2,324:$Vp2,325:$Vq2,326:$Vr2,327:$Vs2,328:$Vt2,329:$Vu2,330:$Vv2,331:640,334:$Vw2,335:$Vx2,336:$Vy2,337:$Vz2},{2:$V1,3:169,4:$V2,5:$V3,40:1319,56:166,77:$VV,79:75,89:$V7,94:262,111:150,113:154,131:$VW,132:$VX,137:$VY,143:$VZ,144:162,145:$V_,149:$V$,151:1320,152:$V01,154:$V11,156:$VL,158:168,179:$V21,180:$V31,181:$V41,184:99,189:$Vb,196:152,200:148,201:156,202:157,244:$V51,245:$V61,258:151,259:147,260:149,261:153,262:155,263:158,264:159,265:160,266:163,267:164,269:$V71,270:$Vc,274:$V81,275:$V91,277:$Va1,284:$Vb1,285:$Vc1,286:$Vd1,287:$Ve1,288:$Vf1,289:$Vg1,290:$Vh1,291:$Vi1,293:$VM,294:$VN,295:$VO,296:$VP,297:$VQ,298:$Vj1,299:$Vk1,300:$Vl1,301:$Vm1,302:$Vn1,303:$Vo1,306:$Vp1,307:$Vq1,316:$Vr1,321:$Vs1,423:191,424:$Vt1,428:$Vu1},{78:[1,1321]},{74:$Vz3,78:[1,1322]},o($VD1,[2,431]),{2:$V1,3:169,4:$V2,5:$V3,56:166,77:$VV,94:1323,111:150,113:154,131:$VW,132:$VX,137:$VY,143:$VZ,144:162,145:$V_,149:$V$,152:$V01,154:$V11,156:$VL,158:168,179:$V21,180:$V31,181:$V41,196:152,200:148,201:156,202:157,244:$V51,245:$V61,258:151,259:147,260:149,261:153,262:155,263:158,264:159,265:160,266:163,267:164,269:$V71,270:$Vc,274:$V81,275:$V91,277:$Va1,284:$Vb1,285:$Vc1,286:$Vd1,287:$Ve1,288:$Vf1,289:$Vg1,290:$Vh1,291:$Vi1,293:$VM,294:$VN,295:$VO,296:$VP,297:$VQ,298:$Vj1,299:$Vk1,300:$Vl1,301:$Vm1,302:$Vn1,303:$Vo1,306:$Vp1,307:$Vq1,316:$Vr1,321:$Vs1,423:191,424:$Vt1,428:$Vu1},{2:$V1,3:169,4:$V2,5:$V3,40:1324,56:166,77:$VV,78:[1,1326],79:75,89:$V7,94:262,111:150,113:154,131:$VW,132:$VX,137:$VY,143:$VZ,144:162,145:$V_,149:$V$,151:1325,152:$V01,154:$V11,156:$VL,158:168,179:$V21,180:$V31,181:$V41,184:99,189:$Vb,196:152,200:148,201:156,202:157,244:$V51,245:$V61,258:151,259:147,260:149,261:153,262:155,263:158,264:159,265:160,266:163,267:164,269:$V71,270:$Vc,274:$V81,275:$V91,277:$Va1,284:$Vb1,285:$Vc1,286:$Vd1,287:$Ve1,288:$Vf1,289:$Vg1,290:$Vh1,291:$Vi1,293:$VM,294:$VN,295:$VO,296:$VP,297:$VQ,298:$Vj1,299:$Vk1,300:$Vl1,301:$Vm1,302:$Vn1,303:$Vo1,306:$Vp1,307:$Vq1,316:$Vr1,321:$Vs1,423:191,424:$Vt1,428:$Vu1},o($VD1,[2,434]),o($VD1,[2,436]),o($VD1,$V35,{279:1327,280:$V45}),{78:[1,1329],99:$V$1,112:$V02,114:628,115:$V12,116:$V22,123:$V32,124:$VB3,133:$V52,136:$V62,138:$V72,139:$V82,140:$V92,141:$Va2,142:$Vb2,154:$Vc2,170:$Vd2,171:$Ve2,179:$Vf2,180:$Vg2,315:$Vh2,316:$Vi2,317:$Vj2,319:$Vk2,320:$Vl2,321:$Vm2,322:$Vn2,323:$Vo2,324:$Vp2,325:$Vq2,326:$Vr2,327:$Vs2,328:$Vt2,329:$Vu2,330:$Vv2,331:640,334:$Vw2,335:$Vx2,336:$Vy2,337:$Vz2},{78:[1,1330],99:$V$1,112:$V02,114:628,115:$V12,116:$V22,123:$V32,124:$VB3,133:$V52,136:$V62,138:$V72,139:$V82,140:$V92,141:$Va2,142:$Vb2,154:$Vc2,170:$Vd2,171:$Ve2,179:$Vf2,180:$Vg2,315:$Vh2,316:$Vi2,317:$Vj2,319:$Vk2,320:$Vl2,321:$Vm2,322:$Vn2,323:$Vo2,324:$Vp2,325:$Vq2,326:$Vr2,327:$Vs2,328:$Vt2,329:$Vu2,330:$Vv2,331:640,334:$Vw2,335:$Vx2,336:$Vy2,337:$Vz2},{2:$V1,3:1331,4:$V2,5:$V3,180:[1,1332]},o($VF2,[2,624]),o($VD1,[2,368]),{310:[1,1333]},o($VD1,[2,375]),{99:$V$1,112:$V02,114:628,115:$V12,116:$V22,123:$V32,124:$VB3,133:$V52,136:$V62,138:$V72,139:$V82,140:$V92,141:$Va2,142:$Vb2,154:$Vc2,170:$Vd2,171:$Ve2,179:$Vf2,180:$Vg2,310:[2,379],315:$Vh2,316:$Vi2,317:$Vj2,319:$Vk2,320:$Vl2,321:$Vm2,322:$Vn2,323:$Vo2,324:$Vp2,325:$Vq2,326:$Vr2,327:$Vs2,328:$Vt2,329:$Vu2,330:$Vv2,331:640,334:$Vw2,335:$Vx2,336:$Vy2,337:$Vz2},{2:$V1,3:169,4:$V2,5:$V3,56:166,77:$VV,94:1334,111:150,113:154,131:$VW,132:$VX,137:$VY,143:$VZ,144:162,145:$V_,149:$V$,152:$V01,154:$V11,156:$VL,158:168,179:$V21,180:$V31,181:$V41,196:152,200:148,201:156,202:157,244:$V51,245:$V61,258:151,259:147,260:149,261:153,262:155,263:158,264:159,265:160,266:163,267:164,269:$V71,270:$Vc,274:$V81,275:$V91,277:$Va1,284:$Vb1,285:$Vc1,286:$Vd1,287:$Ve1,288:$Vf1,289:$Vg1,290:$Vh1,291:$Vi1,293:$VM,294:$VN,295:$VO,296:$VP,297:$VQ,298:$Vj1,299:$Vk1,300:$Vl1,301:$Vm1,302:$Vn1,303:$Vo1,306:$Vp1,307:$Vq1,316:$Vr1,321:$Vs1,423:191,424:$Vt1,428:$Vu1},{4:$VZ3,7:883,276:1335,391:882,393:$V_3},{2:$V1,3:169,4:$V2,5:$V3,56:166,77:$VV,94:1336,111:150,113:154,131:$VW,132:$VX,137:$VY,143:$VZ,144:162,145:$V_,149:$V$,152:$V01,154:$V11,156:$VL,158:168,179:$V21,180:$V31,181:$V41,196:152,200:148,201:156,202:157,244:$V51,245:$V61,258:151,259:147,260:149,261:153,262:155,263:158,264:159,265:160,266:163,267:164,269:$V71,270:$Vc,274:$V81,275:$V91,277:$Va1,284:$Vb1,285:$Vc1,286:$Vd1,287:$Ve1,288:$Vf1,289:$Vg1,290:$Vh1,291:$Vi1,293:$VM,294:$VN,295:$VO,296:$VP,297:$VQ,298:$Vj1,299:$Vk1,300:$Vl1,301:$Vm1,302:$Vn1,303:$Vo1,306:$Vp1,307:$Vq1,316:$Vr1,321:$Vs1,423:191,424:$Vt1,428:$Vu1},o($VF2,[2,646]),o($V94,[2,653]),o($Va4,[2,641]),o($VJ4,$VI4),o($VF2,[2,643]),o($Vd4,[2,648]),o($Vd4,[2,650]),o($Vd4,[2,651]),o($Vd4,[2,652]),o($VK4,[2,462],{74:$VL4}),{77:[1,1338],143:$VZ,144:1339,145:$VE1,152:$V01,181:$V41,201:1340,306:$Vp1,423:191,424:$Vt1,428:$Vu1},o($VK4,[2,468]),{74:$V55,78:[1,1341]},{74:$V65,78:[1,1343]},o([74,78,99,112,115,116,123,124,133,136,138,139,140,141,142,154,170,171,179,180,315,316,317,319,320,321,322,323,324,325,326,327,328,329,330,334,335,336,337],$V75),o($V85,[2,484],{114:628,331:640,99:$V$1,112:$V02,115:$V12,116:$V22,123:$V32,124:$VB3,133:$V52,136:$V62,138:$V72,139:$V82,140:$V92,141:$Va2,142:$Vb2,154:$Vc2,170:$Vd2,171:$Ve2,179:$Vf2,180:$Vg2,315:$Vh2,316:$Vi2,317:$Vj2,319:$Vk2,320:$Vl2,321:$Vm2,322:$Vn2,323:$Vo2,324:$Vp2,325:$Vq2,326:$Vr2,327:$Vs2,328:$Vt2,329:$Vu2,330:$Vv2,334:$Vw2,335:$Vx2,336:$Vy2,337:$Vz2}),{40:1347,77:$Vg4,79:75,89:$V7,143:$VZ,144:983,145:$VE1,149:$Ve4,152:$V01,181:$V41,184:99,189:$Vb,201:984,306:$Vp1,345:1345,346:1346,348:$Vf4,423:191,424:$Vt1,428:$Vu1},o($VK4,[2,466],{74:$VL4}),o($VK,[2,722],{461:1348,462:1349,463:1350,312:$VO4,468:[1,1351]}),o($V95,[2,706]),o($V95,[2,707]),{154:[1,1353],464:[1,1352]},{99:$V$1,112:$V02,114:628,115:$V12,116:$V22,123:$V32,124:$VB3,133:$V52,136:$V62,138:$V72,139:$V82,140:$V92,141:$Va2,142:$Vb2,154:$Vc2,170:$Vd2,171:$Ve2,179:$Vf2,180:$Vg2,312:[2,703],315:$Vh2,316:$Vi2,317:$Vj2,319:$Vk2,320:$Vl2,321:$Vm2,322:$Vn2,323:$Vo2,324:$Vp2,325:$Vq2,326:$Vr2,327:$Vs2,328:$Vt2,329:$Vu2,330:$Vv2,331:640,334:$Vw2,335:$Vx2,336:$Vy2,337:$Vz2},o($VK2,[2,179]),{2:$V1,3:1354,4:$V2,5:$V3},o($VK,[2,579]),o($Va5,[2,238],{84:1355,128:[1,1356]}),o($VP4,[2,1051]),{77:[1,1357]},{77:[1,1358]},o($Vh4,[2,169],{204:1359,215:1361,205:1362,216:1363,221:1366,74:$Vb5,206:$Vc5,208:$Vd5,222:$Ve5,223:$Vf5,224:$Vg5,225:$Vh5,226:$Vi5,227:$Vj5,228:$Vk5,229:$Vl5}),{2:$V1,3:221,4:$V2,5:$V3,40:714,77:$Vy1,79:75,89:$V7,132:$Vz1,143:$VZ,144:214,145:$V_,152:$V01,156:$VL,181:$V41,184:99,189:$Vb,199:215,200:217,201:216,202:219,203:1375,209:1216,213:$VA1,214:220,293:$VM,294:$VN,295:$VO,296:$VP,297:$VQ,306:$Vp1,423:191,424:$Vt1,428:$Vu1},o($Vm5,[2,177]),{2:$V1,3:1015,4:$V2,5:$V3,110:1376,111:1013,112:$Vi4},o($VQ4,[2,87]),o($Vj4,[2,147],{114:628,331:640,99:$V$1,112:$V02,115:$V12,116:$V22,123:$V32,124:$VB3,133:$V52,136:$V62,138:$V72,139:$V82,140:$V92,141:$Va2,142:$Vb2,154:$Vc2,170:$Vd2,171:$Ve2,179:$Vf2,180:$Vg2,315:$Vh2,316:$Vi2,317:$Vj2,319:$Vk2,320:$Vl2,321:$Vm2,322:$Vn2,323:$Vo2,324:$Vp2,325:$Vq2,326:$Vr2,327:$Vs2,328:$Vt2,329:$Vu2,330:$Vv2,334:$Vw2,335:$Vx2,336:$Vy2,337:$Vz2}),{78:[1,1377]},{74:$Vz3,78:[2,1071]},{2:$V1,3:169,4:$V2,5:$V3,56:166,77:$VV,78:[2,1064],94:1382,111:150,113:154,120:1378,121:1379,131:$VW,132:$VX,137:$VY,143:$VZ,144:162,145:$V_,149:$V$,152:$V01,154:$V11,156:$VL,158:168,179:$V21,180:$V31,181:$V41,196:152,200:148,201:156,202:157,241:1380,244:$V51,245:$V61,246:[1,1381],258:151,259:147,260:149,261:153,262:155,263:158,264:159,265:160,266:163,267:164,269:$V71,270:$Vc,274:$V81,275:$V91,277:$Va1,284:$Vb1,285:$Vc1,286:$Vd1,287:$Ve1,288:$Vf1,289:$Vg1,290:$Vh1,291:$Vi1,293:$VM,294:$VN,295:$VO,296:$VP,297:$VQ,298:$Vj1,299:$Vk1,300:$Vl1,301:$Vm1,302:$Vn1,303:$Vo1,306:$Vp1,307:$Vq1,316:$Vr1,321:$Vs1,423:191,424:$Vt1,428:$Vu1},o($Vn4,[2,98]),o($VR4,[2,1067],{153:1019,179:$Vk4,180:$Vl4,181:$Vm4}),{2:$V1,3:736,4:$V2,5:$V3,72:$VR2,76:$VS2,77:$VT2,78:[1,1383],112:$VU2,114:739,115:$V12,116:$V22,117:1384,118:$VV2,122:$VW2,123:$VX2,124:$VY2,128:$VZ2,129:$V_2,130:$V$2,131:$V03,132:$V13,133:$V23,134:$V33,135:$V43,136:$V53,137:$V63,138:$V73,139:$V83,140:$V93,141:$Va3,142:$Vb3,143:$Vc3,144:761,145:$Vd3,146:$Ve3,148:$Vf3,149:$Vg3,150:$Vh3,152:$Vi3,154:$Vj3,156:$Vk3,158:771,160:772,162:$Vl3,164:$Vm3,166:$Vn3,168:$Vo3,169:$Vp3,170:$Vq3,171:$Vr3,172:$Vs3,173:$Vt3,175:$Vu3,185:$Vv3,187:$Vw3,244:$V51,245:$V61,284:$Vb1,285:$Vc1,286:$Vd1,287:$Ve1,288:$Vf1,289:$Vg1,290:$Vh1,291:$Vi1,423:191,424:$Vt1,428:$Vu1},o($VR4,[2,1068],{153:1019,179:$Vk4,180:$Vl4,181:$Vm4}),{78:[1,1385],99:$V$1,112:$V02,114:628,115:$V12,116:$V22,123:$V32,124:$VB3,133:$V52,136:$V62,138:$V72,139:$V82,140:$V92,141:$Va2,142:$Vb2,154:$Vc2,170:$Vd2,171:$Ve2,179:$Vf2,180:$Vg2,315:$Vh2,316:$Vi2,317:$Vj2,319:$Vk2,320:$Vl2,321:$Vm2,322:$Vn2,323:$Vo2,324:$Vp2,325:$Vq2,326:$Vr2,327:$Vs2,328:$Vt2,329:$Vu2,330:$Vv2,331:640,334:$Vw2,335:$Vx2,336:$Vy2,337:$Vz2},{78:[1,1386],99:$V$1,112:$V02,114:628,115:$V12,116:$V22,123:$V32,124:$VB3,133:$V52,136:$V62,138:$V72,139:$V82,140:$V92,141:$Va2,142:$Vb2,154:$Vc2,170:$Vd2,171:$Ve2,179:$Vf2,180:$Vg2,315:$Vh2,316:$Vi2,317:$Vj2,319:$Vk2,320:$Vl2,321:$Vm2,322:$Vn2,323:$Vo2,324:$Vp2,325:$Vq2,326:$Vr2,327:$Vs2,328:$Vt2,329:$Vu2,330:$Vv2,331:640,334:$Vw2,335:$Vx2,336:$Vy2,337:$Vz2},{78:[1,1387]},o($Vn4,[2,120]),{74:$VV4,78:[1,1388]},o($Vn4,[2,122]),{74:$Vz3,78:[1,1389]},{2:$V1,3:736,4:$V2,5:$V3,72:$VR2,76:$VS2,77:$VT2,78:[1,1390],112:$VU2,114:739,115:$V12,116:$V22,117:1391,118:$VV2,122:$VW2,123:$VX2,124:$VY2,128:$VZ2,129:$V_2,130:$V$2,131:$V03,132:$V13,133:$V23,134:$V33,135:$V43,136:$V53,137:$V63,138:$V73,139:$V83,140:$V93,141:$Va3,142:$Vb3,143:$Vc3,144:761,145:$Vd3,146:$Ve3,148:$Vf3,149:$Vg3,150:$Vh3,152:$Vi3,154:$Vj3,156:$Vk3,158:771,160:772,162:$Vl3,164:$Vm3,166:$Vn3,168:$Vo3,169:$Vp3,170:$Vq3,171:$Vr3,172:$Vs3,173:$Vt3,175:$Vu3,185:$Vv3,187:$Vw3,244:$V51,245:$V61,284:$Vb1,285:$Vc1,286:$Vd1,287:$Ve1,288:$Vf1,289:$Vg1,290:$Vh1,291:$Vi1,423:191,424:$Vt1,428:$Vu1},{2:$V1,3:736,4:$V2,5:$V3,72:$VR2,76:$VS2,77:$VT2,78:[1,1392],112:$VU2,114:739,115:$V12,116:$V22,117:1393,118:$VV2,122:$VW2,123:$VX2,124:$VY2,128:$VZ2,129:$V_2,130:$V$2,131:$V03,132:$V13,133:$V23,134:$V33,135:$V43,136:$V53,137:$V63,138:$V73,139:$V83,140:$V93,141:$Va3,142:$Vb3,143:$Vc3,144:761,145:$Vd3,146:$Ve3,148:$Vf3,149:$Vg3,150:$Vh3,152:$Vi3,154:$Vj3,156:$Vk3,158:771,160:772,162:$Vl3,164:$Vm3,166:$Vn3,168:$Vo3,169:$Vp3,170:$Vq3,171:$Vr3,172:$Vs3,173:$Vt3,175:$Vu3,185:$Vv3,187:$Vw3,244:$V51,245:$V61,284:$Vb1,285:$Vc1,286:$Vd1,287:$Ve1,288:$Vf1,289:$Vg1,290:$Vh1,291:$Vi1,423:191,424:$Vt1,428:$Vu1},{2:$V1,3:736,4:$V2,5:$V3,72:$VR2,76:$VS2,77:$VT2,78:[1,1394],112:$VU2,114:739,115:$V12,116:$V22,117:1395,118:$VV2,122:$VW2,123:$VX2,124:$VY2,128:$VZ2,129:$V_2,130:$V$2,131:$V03,132:$V13,133:$V23,134:$V33,135:$V43,136:$V53,137:$V63,138:$V73,139:$V83,140:$V93,141:$Va3,142:$Vb3,143:$Vc3,144:761,145:$Vd3,146:$Ve3,148:$Vf3,149:$Vg3,150:$Vh3,152:$Vi3,154:$Vj3,156:$Vk3,158:771,160:772,162:$Vl3,164:$Vm3,166:$Vn3,168:$Vo3,169:$Vp3,170:$Vq3,171:$Vr3,172:$Vs3,173:$Vt3,175:$Vu3,185:$Vv3,187:$Vw3,244:$V51,245:$V61,284:$Vb1,285:$Vc1,286:$Vd1,287:$Ve1,288:$Vf1,289:$Vg1,290:$Vh1,291:$Vi1,423:191,424:$Vt1,428:$Vu1},{2:$V1,3:736,4:$V2,5:$V3,72:$VR2,76:$VS2,77:$VT2,78:[1,1396],112:$VU2,114:739,115:$V12,116:$V22,117:1397,118:$VV2,122:$VW2,123:$VX2,124:$VY2,128:$VZ2,129:$V_2,130:$V$2,131:$V03,132:$V13,133:$V23,134:$V33,135:$V43,136:$V53,137:$V63,138:$V73,139:$V83,140:$V93,141:$Va3,142:$Vb3,143:$Vc3,144:761,145:$Vd3,146:$Ve3,148:$Vf3,149:$Vg3,150:$Vh3,152:$Vi3,154:$Vj3,156:$Vk3,158:771,160:772,162:$Vl3,164:$Vm3,166:$Vn3,168:$Vo3,169:$Vp3,170:$Vq3,171:$Vr3,172:$Vs3,173:$Vt3,175:$Vu3,185:$Vv3,187:$Vw3,244:$V51,245:$V61,284:$Vb1,285:$Vc1,286:$Vd1,287:$Ve1,288:$Vf1,289:$Vg1,290:$Vh1,291:$Vi1,423:191,424:$Vt1,428:$Vu1},{74:$Vn5,78:[1,1398]},o($V85,[2,143],{423:191,3:736,114:739,144:761,158:771,160:772,117:1400,2:$V1,4:$V2,5:$V3,72:$VR2,76:$VS2,77:$VT2,112:$VU2,115:$V12,116:$V22,118:$VV2,122:$VW2,123:$VX2,124:$VY2,128:$VZ2,129:$V_2,130:$V$2,131:$V03,132:$V13,133:$V23,134:$V33,135:$V43,136:$V53,137:$V63,138:$V73,139:$V83,140:$V93,141:$Va3,142:$Vb3,143:$Vc3,145:$Vd3,146:$Ve3,148:$Vf3,149:$Vg3,150:$Vh3,152:$Vi3,154:$Vj3,156:$Vk3,162:$Vl3,164:$Vm3,166:$Vn3,168:$Vo3,169:$Vp3,170:$Vq3,171:$Vr3,172:$Vs3,173:$Vt3,175:$Vu3,185:$Vv3,187:$Vw3,244:$V51,245:$V61,284:$Vb1,285:$Vc1,286:$Vd1,287:$Ve1,288:$Vf1,289:$Vg1,290:$Vh1,291:$Vi1,424:$Vt1,428:$Vu1}),o($VS4,$VT4,{178:1239,163:1401}),{2:$V1,3:736,4:$V2,5:$V3,72:$VR2,76:$VS2,77:$VT2,78:[1,1402],112:$VU2,114:739,115:$V12,116:$V22,117:1403,118:$VV2,122:$VW2,123:$VX2,124:$VY2,128:$VZ2,129:$V_2,130:$V$2,131:$V03,132:$V13,133:$V23,134:$V33,135:$V43,136:$V53,137:$V63,138:$V73,139:$V83,140:$V93,141:$Va3,142:$Vb3,143:$Vc3,144:761,145:$Vd3,146:$Ve3,148:$Vf3,149:$Vg3,150:$Vh3,152:$Vi3,154:$Vj3,156:$Vk3,158:771,160:772,162:$Vl3,164:$Vm3,166:$Vn3,168:$Vo3,169:$Vp3,170:$Vq3,171:$Vr3,172:$Vs3,173:$Vt3,175:$Vu3,185:$Vv3,187:$Vw3,244:$V51,245:$V61,284:$Vb1,285:$Vc1,286:$Vd1,287:$Ve1,288:$Vf1,289:$Vg1,290:$Vh1,291:$Vi1,423:191,424:$Vt1,428:$Vu1},{2:$V1,3:736,4:$V2,5:$V3,72:$VR2,76:$VS2,77:$VT2,78:[1,1404],112:$VU2,114:739,115:$V12,116:$V22,117:1405,118:$VV2,122:$VW2,123:$VX2,124:$VY2,128:$VZ2,129:$V_2,130:$V$2,131:$V03,132:$V13,133:$V23,134:$V33,135:$V43,136:$V53,137:$V63,138:$V73,139:$V83,140:$V93,141:$Va3,142:$Vb3,143:$Vc3,144:761,145:$Vd3,146:$Ve3,148:$Vf3,149:$Vg3,150:$Vh3,152:$Vi3,154:$Vj3,156:$Vk3,158:771,160:772,162:$Vl3,164:$Vm3,166:$Vn3,168:$Vo3,169:$Vp3,170:$Vq3,171:$Vr3,172:$Vs3,173:$Vt3,175:$Vu3,185:$Vv3,187:$Vw3,244:$V51,245:$V61,284:$Vb1,285:$Vc1,286:$Vd1,287:$Ve1,288:$Vf1,289:$Vg1,290:$Vh1,291:$Vi1,423:191,424:$Vt1,428:$Vu1},{74:$Vn5,78:[1,1406]},{74:$Vn5,78:[1,1407]},{74:$Vn5,78:[1,1408]},{74:$Vn5,78:[1,1409]},{78:[1,1410],153:1019,179:$Vk4,180:$Vl4,181:$Vm4},{74:$Vs4,78:[1,1411]},{2:$V1,3:736,4:$V2,5:$V3,72:$VR2,74:[1,1412],76:$VS2,77:$VT2,112:$VU2,114:739,115:$V12,116:$V22,117:1413,118:$VV2,122:$VW2,123:$VX2,124:$VY2,128:$VZ2,129:$V_2,130:$V$2,131:$V03,132:$V13,133:$V23,134:$V33,135:$V43,136:$V53,137:$V63,138:$V73,139:$V83,140:$V93,141:$Va3,142:$Vb3,143:$Vc3,144:761,145:$Vd3,146:$Ve3,148:$Vf3,149:$Vg3,150:$Vh3,152:$Vi3,154:$Vj3,156:$Vk3,158:771,160:772,162:$Vl3,164:$Vm3,166:$Vn3,168:$Vo3,169:$Vp3,170:$Vq3,171:$Vr3,172:$Vs3,173:$Vt3,175:$Vu3,185:$Vv3,187:$Vw3,244:$V51,245:$V61,284:$Vb1,285:$Vc1,286:$Vd1,287:$Ve1,288:$Vf1,289:$Vg1,290:$Vh1,291:$Vi1,423:191,424:$Vt1,428:$Vu1},{2:$V1,3:1414,4:$V2,5:$V3},{2:$V1,3:1415,4:$V2,5:$V3},o($VK,[2,602]),{2:$V1,3:1416,4:$V2,5:$V3},{113:1417,132:$VX,300:$Vl1},{78:[1,1418]},{2:$V1,3:169,4:$V2,5:$V3,56:166,77:$VV,94:1419,111:150,113:154,131:$VW,132:$VX,137:$VY,143:$VZ,144:162,145:$V_,149:$V$,152:$V01,154:$V11,156:$VL,158:168,179:$V21,180:$V31,181:$V41,196:152,200:148,201:156,202:157,244:$V51,245:$V61,258:151,259:147,260:149,261:153,262:155,263:158,264:159,265:160,266:163,267:164,269:$V71,270:$Vc,274:$V81,275:$V91,277:$Va1,284:$Vb1,285:$Vc1,286:$Vd1,287:$Ve1,288:$Vf1,289:$Vg1,290:$Vh1,291:$Vi1,293:$VM,294:$VN,295:$VO,296:$VP,297:$VQ,298:$Vj1,299:$Vk1,300:$Vl1,301:$Vm1,302:$Vn1,303:$Vo1,306:$Vp1,307:$Vq1,316:$Vr1,321:$Vs1,423:191,424:$Vt1,428:$Vu1},{2:$V1,3:1015,4:$V2,5:$V3,111:1069,143:$Vo4,145:$Vp4,340:1420,341:1070},{2:$V1,3:169,4:$V2,5:$V3,56:166,77:$VV,94:1421,111:150,113:154,131:$VW,132:$VX,137:$VY,143:$VZ,144:162,145:$V_,149:$V$,152:$V01,154:$V11,156:$VL,158:168,179:$V21,180:$V31,181:$V41,196:152,200:148,201:156,202:157,244:$V51,245:$V61,258:151,259:147,260:149,261:153,262:155,263:158,264:159,265:160,266:163,267:164,269:$V71,270:$Vc,274:$V81,275:$V91,277:$Va1,284:$Vb1,285:$Vc1,286:$Vd1,287:$Ve1,288:$Vf1,289:$Vg1,290:$Vh1,291:$Vi1,293:$VM,294:$VN,295:$VO,296:$VP,297:$VQ,298:$Vj1,299:$Vk1,300:$Vl1,301:$Vm1,302:$Vn1,303:$Vo1,306:$Vp1,307:$Vq1,316:$Vr1,321:$Vs1,423:191,424:$Vt1,428:$Vu1},{124:[1,1422]},o($VK,[2,658],{114:628,331:640,99:$V$1,112:$V02,115:$V12,116:$V22,123:$V32,124:$VB3,133:$V52,136:$V62,138:$V72,139:$V82,140:$V92,141:$Va2,142:$Vb2,154:$Vc2,170:$Vd2,171:$Ve2,179:$Vf2,180:$Vg2,315:$Vh2,316:$Vi2,317:$Vj2,319:$Vk2,320:$Vl2,321:$Vm2,322:$Vn2,323:$Vo2,324:$Vp2,325:$Vq2,326:$Vr2,327:$Vs2,328:$Vt2,329:$Vu2,330:$Vv2,334:$Vw2,335:$Vx2,336:$Vy2,337:$Vz2}),o($VX4,[2,663]),{78:[1,1423],99:$V$1,112:$V02,114:628,115:$V12,116:$V22,123:$V32,124:$VB3,133:$V52,136:$V62,138:$V72,139:$V82,140:$V92,141:$Va2,142:$Vb2,154:$Vc2,170:$Vd2,171:$Ve2,179:$Vf2,180:$Vg2,315:$Vh2,316:$Vi2,317:$Vj2,319:$Vk2,320:$Vl2,321:$Vm2,322:$Vn2,323:$Vo2,324:$Vp2,325:$Vq2,326:$Vr2,327:$Vs2,328:$Vt2,329:$Vu2,330:$Vv2,331:640,334:$Vw2,335:$Vx2,336:$Vy2,337:$Vz2},o($VK,[2,659],{114:628,331:640,99:$V$1,112:$V02,115:$V12,116:$V22,123:$V32,124:$VB3,133:$V52,136:$V62,138:$V72,139:$V82,140:$V92,141:$Va2,142:$Vb2,154:$Vc2,170:$Vd2,171:$Ve2,179:$Vf2,180:$Vg2,315:$Vh2,316:$Vi2,317:$Vj2,319:$Vk2,320:$Vl2,321:$Vm2,322:$Vn2,323:$Vo2,324:$Vp2,325:$Vq2,326:$Vr2,327:$Vs2,328:$Vt2,329:$Vu2,330:$Vv2,334:$Vw2,335:$Vx2,336:$Vy2,337:$Vz2}),{2:$V1,3:169,4:$V2,5:$V3,56:166,77:$VV,94:1424,111:150,113:154,131:$VW,132:$VX,137:$VY,143:$VZ,144:162,145:$V_,149:$V$,152:$V01,154:$V11,156:$VL,158:168,179:$V21,180:$V31,181:$V41,196:152,200:148,201:156,202:157,244:$V51,245:$V61,258:151,259:147,260:149,261:153,262:155,263:158,264:159,265:160,266:163,267:164,269:$V71,270:$Vc,274:$V81,275:$V91,277:$Va1,284:$Vb1,285:$Vc1,286:$Vd1,287:$Ve1,288:$Vf1,289:$Vg1,290:$Vh1,291:$Vi1,293:$VM,294:$VN,295:$VO,296:$VP,297:$VQ,298:$Vj1,299:$Vk1,300:$Vl1,301:$Vm1,302:$Vn1,303:$Vo1,306:$Vp1,307:$Vq1,316:$Vr1,321:$Vs1,423:191,424:$Vt1,428:$Vu1},o($Vt4,[2,275]),o($Vt4,[2,277]),o($Vt4,[2,279]),o($Vt4,[2,281]),o($VJ1,[2,161]),o($VK,[2,574]),{148:[1,1425]},o($VK,[2,575]),o($VF3,[2,541],{391:882,7:883,276:1426,4:$VZ3,390:[1,1427],393:$V_3}),o($VK,[2,576]),o($VK,[2,578]),{74:$Vz3,78:[1,1428]},o($VK,[2,582]),o($VB2,[2,349]),{74:[1,1429],99:$V$1,112:$V02,114:628,115:$V12,116:$V22,123:$V32,124:$VB3,133:$V52,136:$V62,138:$V72,139:$V82,140:$V92,141:$Va2,142:$Vb2,154:$Vc2,170:$Vd2,171:$Ve2,179:$Vf2,180:$Vg2,315:$Vh2,316:$Vi2,317:$Vj2,319:$Vk2,320:$Vl2,321:$Vm2,322:$Vn2,323:$Vo2,324:$Vp2,325:$Vq2,326:$Vr2,327:$Vs2,328:$Vt2,329:$Vu2,330:$Vv2,331:640,334:$Vw2,335:$Vx2,336:$Vy2,337:$Vz2},{74:[1,1430],99:$V$1,112:$V02,114:628,115:$V12,116:$V22,123:$V32,124:$VB3,133:$V52,136:$V62,138:$V72,139:$V82,140:$V92,141:$Va2,142:$Vb2,154:$Vc2,170:$Vd2,171:$Ve2,179:$Vf2,180:$Vg2,315:$Vh2,316:$Vi2,317:$Vj2,319:$Vk2,320:$Vl2,321:$Vm2,322:$Vn2,323:$Vo2,324:$Vp2,325:$Vq2,326:$Vr2,327:$Vs2,328:$Vt2,329:$Vu2,330:$Vv2,331:640,334:$Vw2,335:$Vx2,336:$Vy2,337:$Vz2},{74:[1,1431],99:$V$1,112:$V02,114:628,115:$V12,116:$V22,123:$V32,124:$VB3,133:$V52,136:$V62,138:$V72,139:$V82,140:$V92,141:$Va2,142:$Vb2,154:$Vc2,170:$Vd2,171:$Ve2,179:$Vf2,180:$Vg2,315:$Vh2,316:$Vi2,317:$Vj2,319:$Vk2,320:$Vl2,321:$Vm2,322:$Vn2,323:$Vo2,324:$Vp2,325:$Vq2,326:$Vr2,327:$Vs2,328:$Vt2,329:$Vu2,330:$Vv2,331:640,334:$Vw2,335:$Vx2,336:$Vy2,337:$Vz2},{74:[1,1432],99:$V$1,112:$V02,114:628,115:$V12,116:$V22,123:$V32,124:$VB3,133:$V52,136:$V62,138:$V72,139:$V82,140:$V92,141:$Va2,142:$Vb2,154:$Vc2,170:$Vd2,171:$Ve2,179:$Vf2,180:$Vg2,315:$Vh2,316:$Vi2,317:$Vj2,319:$Vk2,320:$Vl2,321:$Vm2,322:$Vn2,323:$Vo2,324:$Vp2,325:$Vq2,326:$Vr2,327:$Vs2,328:$Vt2,329:$Vu2,330:$Vv2,331:640,334:$Vw2,335:$Vx2,336:$Vy2,337:$Vz2},{74:[1,1433],99:$V$1,112:$V02,114:628,115:$V12,116:$V22,123:$V32,124:$VB3,133:$V52,136:$V62,138:$V72,139:$V82,140:$V92,141:$Va2,142:$Vb2,154:$Vc2,170:$Vd2,171:$Ve2,179:$Vf2,180:$Vg2,315:$Vh2,316:$Vi2,317:$Vj2,319:$Vk2,320:$Vl2,321:$Vm2,322:$Vn2,323:$Vo2,324:$Vp2,325:$Vq2,326:$Vr2,327:$Vs2,328:$Vt2,329:$Vu2,330:$Vv2,331:640,334:$Vw2,335:$Vx2,336:$Vy2,337:$Vz2},o($VK,[2,586]),{2:$V1,3:169,4:$V2,5:$V3,56:166,77:$VV,94:262,111:150,113:154,131:$VW,132:$VX,137:$VY,143:$VZ,144:162,145:$V_,149:$V$,151:1434,152:$V01,154:$V11,156:$VL,158:168,179:$V21,180:$V31,181:$V41,196:152,200:148,201:156,202:157,244:$V51,245:$V61,258:151,259:147,260:149,261:153,262:155,263:158,264:159,265:160,266:163,267:164,269:$V71,270:$Vc,274:$V81,275:$V91,277:$Va1,284:$Vb1,285:$Vc1,286:$Vd1,287:$Ve1,288:$Vf1,289:$Vg1,290:$Vh1,291:$Vi1,293:$VM,294:$VN,295:$VO,296:$VP,297:$VQ,298:$Vj1,299:$Vk1,300:$Vl1,301:$Vm1,302:$Vn1,303:$Vo1,306:$Vp1,307:$Vq1,316:$Vr1,321:$Vs1,423:191,424:$Vt1,428:$Vu1},{2:$V1,3:1435,4:$V2,5:$V3},o($VK,[2,588]),{2:$V1,3:169,4:$V2,5:$V3,56:166,77:$VV,94:1382,111:150,113:154,120:1436,131:$VW,132:$VX,137:$VY,143:$VZ,144:162,145:$V_,149:$V$,152:$V01,154:$V11,156:$VL,158:168,179:$V21,180:$V31,181:$V41,196:152,200:148,201:156,202:157,241:1380,244:$V51,245:$V61,258:151,259:147,260:149,261:153,262:155,263:158,264:159,265:160,266:163,267:164,269:$V71,270:$Vc,274:$V81,275:$V91,277:$Va1,284:$Vb1,285:$Vc1,286:$Vd1,287:$Ve1,288:$Vf1,289:$Vg1,290:$Vh1,291:$Vi1,293:$VM,294:$VN,295:$VO,296:$VP,297:$VQ,298:$Vj1,299:$Vk1,300:$Vl1,301:$Vm1,302:$Vn1,303:$Vo1,306:$Vp1,307:$Vq1,316:$Vr1,321:$Vs1,423:191,424:$Vt1,428:$Vu1},{77:[1,1437]},{2:$V1,3:1438,4:$V2,5:$V3},{76:$Vu4,139:[2,1154],484:1439,487:1440},o($V_4,[2,1153]),{139:[1,1441]},{139:[2,1157]},o($VF3,[2,742]),o($VQ3,[2,749]),o($VQ3,[2,1171]),{2:$V1,3:1273,4:$V2,5:$V3,76:[1,1444],355:1442,362:1443,388:1445},{2:$V1,3:1015,4:$V2,5:$V3,100:1446,111:1447},{40:1448,79:75,89:$V7,184:99,189:$Vb},{2:$V1,3:169,4:$V2,5:$V3,56:166,77:$VV,94:1449,111:150,113:154,131:$VW,132:$VX,137:$VY,143:$VZ,144:162,145:$V_,149:$V$,152:$V01,154:$V11,156:$VL,158:168,179:$V21,180:$V31,181:$V41,196:152,200:148,201:156,202:157,244:$V51,245:$V61,258:151,259:147,260:149,261:153,262:155,263:158,264:159,265:160,266:163,267:164,269:$V71,270:$Vc,274:$V81,275:$V91,277:$Va1,284:$Vb1,285:$Vc1,286:$Vd1,287:$Ve1,288:$Vf1,289:$Vg1,290:$Vh1,291:$Vi1,293:$VM,294:$VN,295:$VO,296:$VP,297:$VQ,298:$Vj1,299:$Vk1,300:$Vl1,301:$Vm1,302:$Vn1,303:$Vo1,306:$Vp1,307:$Vq1,316:$Vr1,321:$Vs1,423:191,424:$Vt1,428:$Vu1},o($VK4,[2,727]),{2:$V1,3:1015,4:$V2,5:$V3,111:1069,143:$Vo4,145:$Vp4,147:1450,340:1068,341:1070},{2:$V1,3:169,4:$V2,5:$V3,56:166,77:$VV,94:262,111:150,113:154,131:$VW,132:$VX,137:$VY,143:$VZ,144:162,145:$V_,149:$V$,151:1451,152:$V01,154:$V11,156:$VL,158:168,179:$V21,180:$V31,181:$V41,196:152,200:148,201:156,202:157,244:$V51,245:$V61,258:151,259:147,260:149,261:153,262:155,263:158,264:159,265:160,266:163,267:164,269:$V71,270:$Vc,274:$V81,275:$V91,277:$Va1,284:$Vb1,285:$Vc1,286:$Vd1,287:$Ve1,288:$Vf1,289:$Vg1,290:$Vh1,291:$Vi1,293:$VM,294:$VN,295:$VO,296:$VP,297:$VQ,298:$Vj1,299:$Vk1,300:$Vl1,301:$Vm1,302:$Vn1,303:$Vo1,306:$Vp1,307:$Vq1,316:$Vr1,321:$Vs1,423:191,424:$Vt1,428:$Vu1},o($VK4,[2,732]),{2:$V1,3:246,4:$V2,5:$V3,199:1452},{339:$Vw4,342:$Vx4,343:$Vy4,515:1453},o($VX1,[2,696],{114:628,331:640,99:$V$1,112:$V02,115:$V12,116:$V22,123:$V32,124:$VB3,133:$V52,136:$V62,138:$V72,139:$V82,140:$V92,141:$Va2,142:$Vb2,154:$Vc2,170:$Vd2,171:$Ve2,179:$Vf2,180:$Vg2,315:$Vh2,316:$Vi2,317:$Vj2,319:$Vk2,320:$Vl2,321:$Vm2,322:$Vn2,323:$Vo2,324:$Vp2,325:$Vq2,326:$Vr2,327:$Vs2,328:$Vt2,329:$Vu2,330:$Vv2,334:$Vw2,335:$Vx2,336:$Vy2,337:$Vz2}),{2:$V1,3:169,4:$V2,5:$V3,56:166,77:$VV,94:1454,111:150,113:154,131:$VW,132:$VX,137:$VY,143:$VZ,144:162,145:$V_,149:$V$,152:$V01,154:$V11,156:$VL,158:168,179:$V21,180:$V31,181:$V41,196:152,200:148,201:156,202:157,244:$V51,245:$V61,258:151,259:147,260:149,261:153,262:155,263:158,264:159,265:160,266:163,267:164,269:$V71,270:$Vc,274:$V81,275:$V91,277:$Va1,284:$Vb1,285:$Vc1,286:$Vd1,287:$Ve1,288:$Vf1,289:$Vg1,290:$Vh1,291:$Vi1,293:$VM,294:$VN,295:$VO,296:$VP,297:$VQ,298:$Vj1,299:$Vk1,300:$Vl1,301:$Vm1,302:$Vn1,303:$Vo1,306:$Vp1,307:$Vq1,316:$Vr1,321:$Vs1,423:191,424:$Vt1,428:$Vu1},{74:[1,1455],78:[1,1456]},o($V85,[2,548]),o($V85,[2,549]),{74:$V65,78:[1,1457]},o($VX1,[2,570]),o($VB4,[2,385],{114:628,331:640,115:$V12,116:$V22,123:$V32,133:$V52,136:$V62,138:$V72,141:$Va2,142:$Vb2,179:$Vf2,180:$Vg2,316:$Vi2,320:$Vl2,321:$Vm2,322:$Vn2,323:$Vo2}),o($VB4,[2,387],{114:628,331:640,115:$V12,116:$V22,123:$V32,133:$V52,136:$V62,138:$V72,141:$Va2,142:$Vb2,179:$Vf2,180:$Vg2,316:$Vi2,320:$Vl2,321:$Vm2,322:$Vn2,323:$Vo2}),o($VD1,[2,401]),o($VD1,[2,405]),{78:[1,1458]},{74:$Vz3,78:[1,1459]},o($VD1,[2,427]),o($VD1,[2,429]),{78:[1,1460],99:$V$1,112:$V02,114:628,115:$V12,116:$V22,123:$V32,124:$VB3,133:$V52,136:$V62,138:$V72,139:$V82,140:$V92,141:$Va2,142:$Vb2,154:$Vc2,170:$Vd2,171:$Ve2,179:$Vf2,180:$Vg2,315:$Vh2,316:$Vi2,317:$Vj2,319:$Vk2,320:$Vl2,321:$Vm2,322:$Vn2,323:$Vo2,324:$Vp2,325:$Vq2,326:$Vr2,327:$Vs2,328:$Vt2,329:$Vu2,330:$Vv2,331:640,334:$Vw2,335:$Vx2,336:$Vy2,337:$Vz2},{78:[1,1461]},{74:$Vz3,78:[1,1462]},o($VD1,[2,432]),o($VD1,[2,330]),{77:[1,1463]},o($VD1,$V35,{279:1464,280:$V45}),o($VD1,$V35,{279:1465,280:$V45}),o($VJ4,[2,287]),o($VD1,[2,284]),o($VD1,[2,374]),o($V84,[2,378],{114:628,331:640,99:$V$1,112:$V02,115:$V12,116:$V22,123:$V32,124:$VB3,133:$V52,136:$V62,138:$V72,139:$V82,140:$V92,141:$Va2,142:$Vb2,154:$Vc2,170:$Vd2,171:$Ve2,179:$Vf2,180:$Vg2,315:$Vh2,316:$Vi2,317:$Vj2,319:$Vk2,320:$Vl2,321:$Vm2,322:$Vn2,323:$Vo2,324:$Vp2,325:$Vq2,326:$Vr2,327:$Vs2,328:$Vt2,329:$Vu2,330:$Vv2,334:$Vw2,335:$Vx2,336:$Vy2,337:$Vz2}),{74:[1,1467],78:[1,1466]},{74:[1,1469],78:[1,1468],99:$V$1,112:$V02,114:628,115:$V12,116:$V22,123:$V32,124:$VB3,133:$V52,136:$V62,138:$V72,139:$V82,140:$V92,141:$Va2,142:$Vb2,154:$Vc2,170:$Vd2,171:$Ve2,179:$Vf2,180:$Vg2,315:$Vh2,316:$Vi2,317:$Vj2,319:$Vk2,320:$Vl2,321:$Vm2,322:$Vn2,323:$Vo2,324:$Vp2,325:$Vq2,326:$Vr2,327:$Vs2,328:$Vt2,329:$Vu2,330:$Vv2,331:640,334:$Vw2,335:$Vx2,336:$Vy2,337:$Vz2},{2:$V1,3:1331,4:$V2,5:$V3},{2:$V1,3:169,4:$V2,5:$V3,56:166,77:$VV,94:1199,111:150,113:154,131:$VW,132:$VX,137:$VY,143:$VZ,144:162,145:$V_,149:$V$,152:$V01,154:$V11,156:$VL,158:168,179:$V21,180:$V31,181:$V41,196:152,200:148,201:156,202:157,244:$V51,245:$V61,258:151,259:147,260:149,261:153,262:155,263:158,264:159,265:160,266:163,267:164,269:$V71,270:$Vc,274:$V81,275:$V91,277:$Va1,284:$Vb1,285:$Vc1,286:$Vd1,287:$Ve1,288:$Vf1,289:$Vg1,290:$Vh1,291:$Vi1,293:$VM,294:$VN,295:$VO,296:$VP,297:$VQ,298:$Vj1,299:$Vk1,300:$Vl1,301:$Vm1,302:$Vn1,303:$Vo1,306:$Vp1,307:$Vq1,316:$Vr1,321:$Vs1,349:1470,423:191,424:$Vt1,428:$Vu1},o($VN4,[2,482]),o($VN4,[2,483]),{40:1473,77:$Vg4,79:75,89:$V7,143:$VZ,144:983,145:$VE1,149:$Ve4,152:$V01,181:$V41,184:99,189:$Vb,201:984,306:$Vp1,345:1471,346:1472,348:$Vf4,423:191,424:$Vt1,428:$Vu1},{2:$V1,3:1015,4:$V2,5:$V3,111:1474},o($VN4,[2,478]),{2:$V1,3:169,4:$V2,5:$V3,56:166,77:$VV,94:1475,111:150,113:154,131:$VW,132:$VX,137:$VY,143:$VZ,144:162,145:$V_,149:$V$,152:$V01,154:$V11,156:$VL,158:168,179:$V21,180:$V31,181:$V41,196:152,200:148,201:156,202:157,244:$V51,245:$V61,258:151,259:147,260:149,261:153,262:155,263:158,264:159,265:160,266:163,267:164,269:$V71,270:$Vc,274:$V81,275:$V91,277:$Va1,284:$Vb1,285:$Vc1,286:$Vd1,287:$Ve1,288:$Vf1,289:$Vg1,290:$Vh1,291:$Vi1,293:$VM,294:$VN,295:$VO,296:$VP,297:$VQ,298:$Vj1,299:$Vk1,300:$Vl1,301:$Vm1,302:$Vn1,303:$Vo1,306:$Vp1,307:$Vq1,316:$Vr1,321:$Vs1,423:191,424:$Vt1,428:$Vu1},{77:$Vg4,143:$VZ,144:983,145:$VE1,152:$V01,181:$V41,201:984,306:$Vp1,346:1476,423:191,424:$Vt1,428:$Vu1},o($VK4,[2,465],{74:$VL4}),o($VK4,[2,472]),o($VK,[2,699]),o($V95,[2,704]),o($V95,[2,705]),{2:$V1,3:169,4:$V2,5:$V3,56:166,77:$VV,94:820,111:150,113:154,131:$VW,132:$VX,137:$VY,143:$VZ,144:162,145:$V_,149:$V$,152:$V01,154:$V11,156:$VL,158:168,174:1477,179:$V21,180:$V31,181:$V41,196:152,200:148,201:156,202:157,244:$V51,245:$V61,257:819,258:151,259:147,260:149,261:153,262:155,263:158,264:159,265:160,266:163,267:164,269:$V71,270:$Vc,274:$V81,275:$V91,277:$Va1,284:$Vb1,285:$Vc1,286:$Vd1,287:$Ve1,288:$Vf1,289:$Vg1,290:$Vh1,291:$Vi1,293:$VM,294:$VN,295:$VO,296:$VP,297:$VQ,298:$Vj1,299:$Vk1,300:$Vl1,301:$Vm1,302:$Vn1,303:$Vo1,306:$Vp1,307:$Vq1,316:$Vr1,321:$Vs1,423:191,424:$Vt1,428:$Vu1},{170:[1,1479],313:[1,1478]},{464:[1,1480]},o($VK2,[2,180]),o($Vo5,[2,240],{85:1481,232:[1,1482]}),{2:$V1,3:169,4:$V2,5:$V3,56:166,77:$VV,94:1483,111:150,113:154,131:$VW,132:$VX,137:$VY,143:$VZ,144:162,145:$V_,149:$V$,152:$V01,154:$V11,156:$VL,158:168,179:$V21,180:$V31,181:$V41,196:152,200:148,201:156,202:157,244:$V51,245:$V61,258:151,259:147,260:149,261:153,262:155,263:158,264:159,265:160,266:163,267:164,269:$V71,270:$Vc,274:$V81,275:$V91,277:$Va1,284:$Vb1,285:$Vc1,286:$Vd1,287:$Ve1,288:$Vf1,289:$Vg1,290:$Vh1,291:$Vi1,293:$VM,294:$VN,295:$VO,296:$VP,297:$VQ,298:$Vj1,299:$Vk1,300:$Vl1,301:$Vm1,302:$Vn1,303:$Vo1,306:$Vp1,307:$Vq1,316:$Vr1,321:$Vs1,423:191,424:$Vt1,428:$Vu1},{2:$V1,3:169,4:$V2,5:$V3,56:166,77:$VV,94:1484,111:150,113:154,131:$VW,132:$VX,137:$VY,143:$VZ,144:162,145:$V_,149:$V$,152:$V01,154:$V11,156:$VL,158:168,179:$V21,180:$V31,181:$V41,196:152,200:148,201:156,202:157,244:$V51,245:$V61,258:151,259:147,260:149,261:153,262:155,263:158,264:159,265:160,266:163,267:164,269:$V71,270:$Vc,274:$V81,275:$V91,277:$Va1,284:$Vb1,285:$Vc1,286:$Vd1,287:$Ve1,288:$Vf1,289:$Vg1,290:$Vh1,291:$Vi1,293:$VM,294:$VN,295:$VO,296:$VP,297:$VQ,298:$Vj1,299:$Vk1,300:$Vl1,301:$Vm1,302:$Vn1,303:$Vo1,306:$Vp1,307:$Vq1,316:$Vr1,321:$Vs1,423:191,424:$Vt1,428:$Vu1},{2:$V1,3:1485,4:$V2,5:$V3},o($Vh4,[2,170],{216:1363,221:1366,215:1486,205:1487,206:$Vc5,208:$Vd5,222:$Ve5,223:$Vf5,224:$Vg5,225:$Vh5,226:$Vi5,227:$Vj5,228:$Vk5,229:$Vl5}),{2:$V1,3:221,4:$V2,5:$V3,77:$Vy1,132:$Vz1,143:$VZ,144:214,145:$V_,152:$V01,156:$VL,181:$V41,199:215,200:217,201:216,202:219,209:1488,213:$VA1,214:220,293:$VM,294:$VN,295:$VO,296:$VP,297:$VQ,306:$Vp1,423:191,424:$Vt1,428:$Vu1},o($Vp5,[2,205]),o($Vp5,[2,206]),{2:$V1,3:221,4:$V2,5:$V3,77:[1,1493],143:$VZ,144:1491,145:$V_,152:$V01,156:$VL,181:$V41,199:1490,200:1494,201:1492,202:1495,217:1489,293:$VM,294:$VN,295:$VO,296:$VP,297:$VQ,306:$Vp1,423:191,424:$Vt1,428:$Vu1},{207:[1,1496],223:$Vq5},{207:[1,1498],223:$Vr5},o($Vs5,[2,222]),{206:[1,1502],208:[1,1501],221:1500,223:$Vf5,224:$Vg5,225:$Vh5,226:$Vi5,227:$Vj5,228:$Vk5,229:$Vl5},o($Vs5,[2,224]),{223:[1,1503]},{208:[1,1505],223:[1,1504]},{208:[1,1507],223:[1,1506]},{208:[1,1508]},{223:[1,1509]},{223:[1,1510]},{74:$Vb5,204:1511,205:1362,206:$Vc5,208:$Vd5,215:1361,216:1363,221:1366,222:$Ve5,223:$Vf5,224:$Vg5,225:$Vh5,226:$Vi5,227:$Vj5,228:$Vk5,229:$Vl5},o($VQ4,[2,84]),o($Vn4,[2,100]),{74:$Vt5,78:[1,1512]},{78:[1,1514]},o($Vu5,[2,261]),{78:[2,1065]},o($Vu5,[2,265],{114:628,331:640,99:$V$1,112:$V02,115:$V12,116:$V22,123:$V32,124:$VB3,133:$V52,136:$V62,138:$V72,139:$V82,140:$V92,141:$Va2,142:$Vb2,154:$Vc2,170:$Vd2,171:$Ve2,179:$Vf2,180:$Vg2,246:[1,1515],247:[1,1516],315:$Vh2,316:$Vi2,317:$Vj2,319:$Vk2,320:$Vl2,321:$Vm2,322:$Vn2,323:$Vo2,324:$Vp2,325:$Vq2,326:$Vr2,327:$Vs2,328:$Vt2,329:$Vu2,330:$Vv2,334:$Vw2,335:$Vx2,336:$Vy2,337:$Vz2}),o($Vn4,[2,99]),o($VR4,[2,1069],{153:1019,179:$Vk4,180:$Vl4,181:$Vm4}),o($Vn4,[2,101]),o($Vn4,[2,102]),o($Vn4,[2,103]),o($Vn4,[2,121]),o($Vn4,[2,124]),o($Vn4,[2,127]),o($VR4,[2,1073],{153:1019,179:$Vk4,180:$Vl4,181:$Vm4}),o($Vn4,[2,128]),o($VR4,[2,1075],{153:1019,179:$Vk4,180:$Vl4,181:$Vm4}),o($Vn4,[2,129]),o($VR4,[2,1077],{153:1019,179:$Vk4,180:$Vl4,181:$Vm4}),o($Vn4,[2,130]),o($VR4,[2,1081],{153:1019,179:$Vk4,180:$Vl4,181:$Vm4}),o($Vn4,[2,131]),o($VS4,[2,1088],{177:1517}),o($VS4,[2,1091],{153:1019,179:$Vk4,180:$Vl4,181:$Vm4}),{74:$Vn5,78:[1,1518]},o($Vn4,[2,133]),o($VR4,[2,1083],{153:1019,179:$Vk4,180:$Vl4,181:$Vm4}),o($Vn4,[2,134]),o($VR4,[2,1085],{153:1019,179:$Vk4,180:$Vl4,181:$Vm4}),o($Vn4,[2,135]),o($Vn4,[2,136]),o($Vn4,[2,137]),o($Vn4,[2,138]),o($Vn4,[2,139]),o($Vn4,[2,140]),{2:$V1,3:169,4:$V2,5:$V3,56:166,77:$VV,94:262,111:150,113:154,131:$VW,132:$VX,137:$VY,143:$VZ,144:162,145:$V_,149:$V$,151:1519,152:$V01,154:$V11,156:$VL,158:168,179:$V21,180:$V31,181:$V41,196:152,200:148,201:156,202:157,244:$V51,245:$V61,258:151,259:147,260:149,261:153,262:155,263:158,264:159,265:160,266:163,267:164,269:$V71,270:$Vc,274:$V81,275:$V91,277:$Va1,284:$Vb1,285:$Vc1,286:$Vd1,287:$Ve1,288:$Vf1,289:$Vg1,290:$Vh1,291:$Vi1,293:$VM,294:$VN,295:$VO,296:$VP,297:$VQ,298:$Vj1,299:$Vk1,300:$Vl1,301:$Vm1,302:$Vn1,303:$Vo1,306:$Vp1,307:$Vq1,316:$Vr1,321:$Vs1,423:191,424:$Vt1,428:$Vu1},o($VU4,[2,1087],{153:1019,179:$Vk4,180:$Vl4,181:$Vm4}),o($VK,[2,612]),o($VK,[2,608]),o($VK,[2,610]),o($VK,[2,606]),o($Vx3,[2,71]),o($VK,[2,454],{114:628,331:640,99:$V$1,112:$V02,115:$V12,116:$V22,123:$V32,124:$VB3,133:$V52,136:$V62,138:$V72,139:$V82,140:$V92,141:$Va2,142:$Vb2,154:$Vc2,170:$Vd2,171:$Ve2,179:$Vf2,180:$Vg2,315:$Vh2,316:$Vi2,317:$Vj2,319:$Vk2,320:$Vl2,321:$Vm2,322:$Vn2,323:$Vo2,324:$Vp2,325:$Vq2,326:$Vr2,327:$Vs2,328:$Vt2,329:$Vu2,330:$Vv2,334:$Vw2,335:$Vx2,336:$Vy2,337:$Vz2}),o($VW4,[2,457]),o($VW4,[2,458],{114:628,331:640,99:$V$1,112:$V02,115:$V12,116:$V22,123:$V32,124:$VB3,133:$V52,136:$V62,138:$V72,139:$V82,140:$V92,141:$Va2,142:$Vb2,154:$Vc2,170:$Vd2,171:$Ve2,179:$Vf2,180:$Vg2,315:$Vh2,316:$Vi2,317:$Vj2,319:$Vk2,320:$Vl2,321:$Vm2,322:$Vn2,323:$Vo2,324:$Vp2,325:$Vq2,326:$Vr2,327:$Vs2,328:$Vt2,329:$Vu2,330:$Vv2,334:$Vw2,335:$Vx2,336:$Vy2,337:$Vz2}),{2:$V1,3:169,4:$V2,5:$V3,56:166,77:$VV,94:1520,111:150,113:154,131:$VW,132:$VX,137:$VY,143:$VZ,144:162,145:$V_,149:$V$,152:$V01,154:$V11,156:$VL,158:168,179:$V21,180:$V31,181:$V41,196:152,200:148,201:156,202:157,244:$V51,245:$V61,258:151,259:147,260:149,261:153,262:155,263:158,264:159,265:160,266:163,267:164,269:$V71,270:$Vc,274:$V81,275:$V91,277:$Va1,284:$Vb1,285:$Vc1,286:$Vd1,287:$Ve1,288:$Vf1,289:$Vg1,290:$Vh1,291:$Vi1,293:$VM,294:$VN,295:$VO,296:$VP,297:$VQ,298:$Vj1,299:$Vk1,300:$Vl1,301:$Vm1,302:$Vn1,303:$Vo1,306:$Vp1,307:$Vq1,316:$Vr1,321:$Vs1,423:191,424:$Vt1,428:$Vu1},o($VX4,[2,667]),o($VK,[2,660],{114:628,331:640,99:$V$1,112:$V02,115:$V12,116:$V22,123:$V32,124:$VB3,133:$V52,136:$V62,138:$V72,139:$V82,140:$V92,141:$Va2,142:$Vb2,154:$Vc2,170:$Vd2,171:$Ve2,179:$Vf2,180:$Vg2,315:$Vh2,316:$Vi2,317:$Vj2,319:$Vk2,320:$Vl2,321:$Vm2,322:$Vn2,323:$Vo2,324:$Vp2,325:$Vq2,326:$Vr2,327:$Vs2,328:$Vt2,329:$Vu2,330:$Vv2,334:$Vw2,335:$Vx2,336:$Vy2,337:$Vz2}),{2:$V1,3:1521,4:$V2,5:$V3},o($VF3,[2,550],{389:1522,395:1523,396:1524,370:1532,154:$Vv5,187:$Vw5,230:$Vx5,301:$Vy5,347:$Vz5,360:$VA5,372:$VB5,373:$VC5,377:$VD5,378:$VE5}),o($VF3,[2,540]),o($VK,[2,581],{76:[1,1536]}),{2:$V1,3:169,4:$V2,5:$V3,56:166,77:$VV,94:1537,111:150,113:154,131:$VW,132:$VX,137:$VY,143:$VZ,144:162,145:$V_,149:$V$,152:$V01,154:$V11,156:$VL,158:168,179:$V21,180:$V31,181:$V41,196:152,200:148,201:156,202:157,244:$V51,245:$V61,258:151,259:147,260:149,261:153,262:155,263:158,264:159,265:160,266:163,267:164,269:$V71,270:$Vc,274:$V81,275:$V91,277:$Va1,284:$Vb1,285:$Vc1,286:$Vd1,287:$Ve1,288:$Vf1,289:$Vg1,290:$Vh1,291:$Vi1,293:$VM,294:$VN,295:$VO,296:$VP,297:$VQ,298:$Vj1,299:$Vk1,300:$Vl1,301:$Vm1,302:$Vn1,303:$Vo1,306:$Vp1,307:$Vq1,316:$Vr1,321:$Vs1,423:191,424:$Vt1,428:$Vu1},{2:$V1,3:169,4:$V2,5:$V3,56:166,77:$VV,94:1538,111:150,113:154,131:$VW,132:$VX,137:$VY,143:$VZ,144:162,145:$V_,149:$V$,152:$V01,154:$V11,156:$VL,158:168,179:$V21,180:$V31,181:$V41,196:152,200:148,201:156,202:157,244:$V51,245:$V61,258:151,259:147,260:149,261:153,262:155,263:158,264:159,265:160,266:163,267:164,269:$V71,270:$Vc,274:$V81,275:$V91,277:$Va1,284:$Vb1,285:$Vc1,286:$Vd1,287:$Ve1,288:$Vf1,289:$Vg1,290:$Vh1,291:$Vi1,293:$VM,294:$VN,295:$VO,296:$VP,297:$VQ,298:$Vj1,299:$Vk1,300:$Vl1,301:$Vm1,302:$Vn1,303:$Vo1,306:$Vp1,307:$Vq1,316:$Vr1,321:$Vs1,423:191,424:$Vt1,428:$Vu1},{2:$V1,3:169,4:$V2,5:$V3,56:166,77:$VV,94:1539,111:150,113:154,131:$VW,132:$VX,137:$VY,143:$VZ,144:162,145:$V_,149:$V$,152:$V01,154:$V11,156:$VL,158:168,179:$V21,180:$V31,181:$V41,196:152,200:148,201:156,202:157,244:$V51,245:$V61,258:151,259:147,260:149,261:153,262:155,263:158,264:159,265:160,266:163,267:164,269:$V71,270:$Vc,274:$V81,275:$V91,277:$Va1,284:$Vb1,285:$Vc1,286:$Vd1,287:$Ve1,288:$Vf1,289:$Vg1,290:$Vh1,291:$Vi1,293:$VM,294:$VN,295:$VO,296:$VP,297:$VQ,298:$Vj1,299:$Vk1,300:$Vl1,301:$Vm1,302:$Vn1,303:$Vo1,306:$Vp1,307:$Vq1,316:$Vr1,321:$Vs1,423:191,424:$Vt1,428:$Vu1},{2:$V1,3:169,4:$V2,5:$V3,56:166,77:$VV,94:1540,111:150,113:154,131:$VW,132:$VX,137:$VY,143:$VZ,144:162,145:$V_,149:$V$,152:$V01,154:$V11,156:$VL,158:168,179:$V21,180:$V31,181:$V41,196:152,200:148,201:156,202:157,244:$V51,245:$V61,258:151,259:147,260:149,261:153,262:155,263:158,264:159,265:160,266:163,267:164,269:$V71,270:$Vc,274:$V81,275:$V91,277:$Va1,284:$Vb1,285:$Vc1,286:$Vd1,287:$Ve1,288:$Vf1,289:$Vg1,290:$Vh1,291:$Vi1,293:$VM,294:$VN,295:$VO,296:$VP,297:$VQ,298:$Vj1,299:$Vk1,300:$Vl1,301:$Vm1,302:$Vn1,303:$Vo1,306:$Vp1,307:$Vq1,316:$Vr1,321:$Vs1,423:191,424:$Vt1,428:$Vu1},{2:$V1,3:169,4:$V2,5:$V3,56:166,77:$VV,94:1541,111:150,113:154,131:$VW,132:$VX,137:$VY,143:$VZ,144:162,145:$V_,149:$V$,152:$V01,154:$V11,156:$VL,158:168,179:$V21,180:$V31,181:$V41,196:152,200:148,201:156,202:157,244:$V51,245:$V61,258:151,259:147,260:149,261:153,262:155,263:158,264:159,265:160,266:163,267:164,269:$V71,270:$Vc,274:$V81,275:$V91,277:$Va1,284:$Vb1,285:$Vc1,286:$Vd1,287:$Ve1,288:$Vf1,289:$Vg1,290:$Vh1,291:$Vi1,293:$VM,294:$VN,295:$VO,296:$VP,297:$VQ,298:$Vj1,299:$Vk1,300:$Vl1,301:$Vm1,302:$Vn1,303:$Vo1,306:$Vp1,307:$Vq1,316:$Vr1,321:$Vs1,423:191,424:$Vt1,428:$Vu1},{74:$Vz3,78:[1,1542]},o($VK,[2,590]),{74:$Vt5,78:[1,1543]},{2:$V1,3:169,4:$V2,5:$V3,56:166,77:$VV,94:1382,111:150,113:154,120:1544,131:$VW,132:$VX,137:$VY,143:$VZ,144:162,145:$V_,149:$V$,152:$V01,154:$V11,156:$VL,158:168,179:$V21,180:$V31,181:$V41,196:152,200:148,201:156,202:157,241:1380,244:$V51,245:$V61,258:151,259:147,260:149,261:153,262:155,263:158,264:159,265:160,266:163,267:164,269:$V71,270:$Vc,274:$V81,275:$V91,277:$Va1,284:$Vb1,285:$Vc1,286:$Vd1,287:$Ve1,288:$Vf1,289:$Vg1,290:$Vh1,291:$Vi1,293:$VM,294:$VN,295:$VO,296:$VP,297:$VQ,298:$Vj1,299:$Vk1,300:$Vl1,301:$Vm1,302:$Vn1,303:$Vo1,306:$Vp1,307:$Vq1,316:$Vr1,321:$Vs1,423:191,424:$Vt1,428:$Vu1},o([10,74,78,139,310,314,606,767],[2,746]),{139:[1,1545]},{139:[2,1155]},{2:$V1,3:1127,4:$V2,5:$V3,132:$VT1,137:$VU1,143:$VH1,145:$VI1,152:$VV1,435:588,479:1129,482:1546,486:585,497:582,501:584},{78:[1,1547]},{74:[1,1548],78:[2,511]},{40:1549,79:75,89:$V7,184:99,189:$Vb},o($V85,[2,537]),{74:$V55,78:[1,1550]},o($Vm5,$V75),o($VK,[2,1138],{416:1551,417:1552,72:$VF5}),o($VK4,$V$4,{79:75,184:99,114:628,331:640,40:1305,472:1554,89:$V7,99:$V$1,112:$V02,115:$V12,116:$V22,123:$V32,124:$VB3,133:$V52,136:$V62,138:$V72,139:$V82,140:$V92,141:$Va2,142:$Vb2,146:$V05,154:$Vc2,170:$Vd2,171:$Ve2,179:$Vf2,180:$Vg2,189:$Vb,315:$Vh2,316:$Vi2,317:$Vj2,319:$Vk2,320:$Vl2,321:$Vm2,322:$Vn2,323:$Vo2,324:$Vp2,325:$Vq2,326:$Vr2,327:$Vs2,328:$Vt2,329:$Vu2,330:$Vv2,334:$Vw2,335:$Vx2,336:$Vy2,337:$Vz2,474:$V15}),o($VK4,[2,730],{74:$VV4}),o($VK4,[2,731],{74:$Vz3}),o([10,53,72,89,124,146,156,189,270,271,293,310,314,339,342,343,400,404,405,408,410,412,413,421,422,438,440,441,443,444,445,446,447,451,452,455,456,509,511,512,521,606,767],[2,1186],{516:1555,3:1556,2:$V1,4:$V2,5:$V3,76:[1,1557]}),o($VG5,[2,1188],{517:1558,76:[1,1559]}),o($VX1,[2,697],{114:628,331:640,99:$V$1,112:$V02,115:$V12,116:$V22,123:$V32,124:$VB3,133:$V52,136:$V62,138:$V72,139:$V82,140:$V92,141:$Va2,142:$Vb2,154:$Vc2,170:$Vd2,171:$Ve2,179:$Vf2,180:$Vg2,315:$Vh2,316:$Vi2,317:$Vj2,319:$Vk2,320:$Vl2,321:$Vm2,322:$Vn2,323:$Vo2,324:$Vp2,325:$Vq2,326:$Vr2,327:$Vs2,328:$Vt2,329:$Vu2,330:$Vv2,334:$Vw2,335:$Vx2,336:$Vy2,337:$Vz2}),{131:[1,1560]},o($Vz4,[2,543]),o($Vz4,[2,545]),o($VD1,[2,417]),o($VD1,[2,418]),o($VD1,[2,444]),o($VD1,[2,428]),o($VD1,[2,430]),{118:$VH5,281:1561,282:1562,283:[1,1563]},o($VD1,[2,331]),o($VD1,[2,332]),o($VD1,[2,319]),{131:[1,1565]},o($VD1,[2,321]),{131:[1,1566]},{74:$V65,78:[1,1567]},{77:$Vg4,143:$VZ,144:983,145:$VE1,152:$V01,181:$V41,201:984,306:$Vp1,346:1568,423:191,424:$Vt1,428:$Vu1},o($VK4,[2,470],{74:$VL4}),o($VK4,[2,473]),o($Vm5,[2,493]),o($V85,[2,485],{114:628,331:640,99:$V$1,112:$V02,115:$V12,116:$V22,123:$V32,124:$VB3,133:$V52,136:$V62,138:$V72,139:$V82,140:$V92,141:$Va2,142:$Vb2,154:$Vc2,170:$Vd2,171:$Ve2,179:$Vf2,180:$Vg2,315:$Vh2,316:$Vi2,317:$Vj2,319:$Vk2,320:$Vl2,321:$Vm2,322:$Vn2,323:$Vo2,324:$Vp2,325:$Vq2,326:$Vr2,327:$Vs2,328:$Vt2,329:$Vu2,330:$Vv2,334:$Vw2,335:$Vx2,336:$Vy2,337:$Vz2}),o($VK4,[2,464],{74:$VL4}),o($VK,[2,723],{74:$Vs4,198:[1,1569]}),{339:$VI5,342:$VJ5,465:1570},{2:$V1,3:169,4:$V2,5:$V3,56:166,77:$VV,94:1573,111:150,113:154,131:$VW,132:$VX,137:$VY,143:$VZ,144:162,145:$V_,149:$V$,152:$V01,154:$V11,156:$VL,158:168,179:$V21,180:$V31,181:$V41,196:152,200:148,201:156,202:157,244:$V51,245:$V61,258:151,259:147,260:149,261:153,262:155,263:158,264:159,265:160,266:163,267:164,269:$V71,270:$Vc,274:$V81,275:$V91,277:$Va1,284:$Vb1,285:$Vc1,286:$Vd1,287:$Ve1,288:$Vf1,289:$Vg1,290:$Vh1,291:$Vi1,293:$VM,294:$VN,295:$VO,296:$VP,297:$VQ,298:$Vj1,299:$Vk1,300:$Vl1,301:$Vm1,302:$Vn1,303:$Vo1,306:$Vp1,307:$Vq1,316:$Vr1,321:$Vs1,423:191,424:$Vt1,428:$Vu1},{119:[1,1575],170:[1,1576],313:[1,1574]},o($VK5,[2,259],{86:1577,118:[1,1578]}),{119:[1,1579]},o($Va5,[2,239],{114:628,331:640,99:$V$1,112:$V02,115:$V12,116:$V22,123:$V32,124:$VB3,133:$V52,136:$V62,138:$V72,139:$V82,140:$V92,141:$Va2,142:$Vb2,154:$Vc2,170:$Vd2,171:$Ve2,179:$Vf2,180:$Vg2,315:$Vh2,316:$Vi2,317:$Vj2,319:$Vk2,320:$Vl2,321:$Vm2,322:$Vn2,323:$Vo2,324:$Vp2,325:$Vq2,326:$Vr2,327:$Vs2,328:$Vt2,329:$Vu2,330:$Vv2,334:$Vw2,335:$Vx2,336:$Vy2,337:$Vz2}),{95:[1,1580],99:$V$1,112:$V02,114:628,115:$V12,116:$V22,123:$V32,124:$VB3,133:$V52,136:$V62,138:$V72,139:$V82,140:$V92,141:$Va2,142:$Vb2,154:$Vc2,170:$Vd2,171:$Ve2,179:$Vf2,180:$Vg2,315:$Vh2,316:$Vi2,317:$Vj2,319:$Vk2,320:$Vl2,321:$Vm2,322:$Vn2,323:$Vo2,324:$Vp2,325:$Vq2,326:$Vr2,327:$Vs2,328:$Vt2,329:$Vu2,330:$Vv2,331:640,334:$Vw2,335:$Vx2,336:$Vy2,337:$Vz2},{95:[1,1581]},o($Vp5,[2,203]),o($Vp5,[2,204]),o($Vm5,[2,178]),o($Vp5,[2,237],{218:1582,230:[1,1583],231:[1,1584]}),o($VL5,[2,208],{3:1585,2:$V1,4:$V2,5:$V3,76:[1,1586]}),o($VM5,[2,1100],{219:1587,76:[1,1588]}),{2:$V1,3:1589,4:$V2,5:$V3,76:[1,1590]},{40:1591,79:75,89:$V7,184:99,189:$Vb},o($VL5,[2,216],{3:1592,2:$V1,4:$V2,5:$V3,76:[1,1593]}),o($VL5,[2,219],{3:1594,2:$V1,4:$V2,5:$V3,76:[1,1595]}),{77:[1,1596]},o($Vs5,[2,234]),{77:[1,1597]},o($Vs5,[2,230]),o($Vs5,[2,223]),{223:$Vr5},{223:$Vq5},o($Vs5,[2,225]),o($Vs5,[2,226]),{223:[1,1598]},o($Vs5,[2,228]),{223:[1,1599]},{223:[1,1600]},o($Vs5,[2,232]),o($Vs5,[2,233]),{78:[1,1601],205:1487,206:$Vc5,208:$Vd5,215:1486,216:1363,221:1366,222:$Ve5,223:$Vf5,224:$Vg5,225:$Vh5,226:$Vi5,227:$Vj5,228:$Vk5,229:$Vl5},o($Vn4,[2,91]),{2:$V1,3:169,4:$V2,5:$V3,56:166,77:$VV,94:1382,111:150,113:154,131:$VW,132:$VX,137:$VY,143:$VZ,144:162,145:$V_,149:$V$,152:$V01,154:$V11,156:$VL,158:168,179:$V21,180:$V31,181:$V41,196:152,200:148,201:156,202:157,241:1602,244:$V51,245:$V61,258:151,259:147,260:149,261:153,262:155,263:158,264:159,265:160,266:163,267:164,269:$V71,270:$Vc,274:$V81,275:$V91,277:$Va1,284:$Vb1,285:$Vc1,286:$Vd1,287:$Ve1,288:$Vf1,289:$Vg1,290:$Vh1,291:$Vi1,293:$VM,294:$VN,295:$VO,296:$VP,297:$VQ,298:$Vj1,299:$Vk1,300:$Vl1,301:$Vm1,302:$Vn1,303:$Vo1,306:$Vp1,307:$Vq1,316:$Vr1,321:$Vs1,423:191,424:$Vt1,428:$Vu1},o($Vn4,[2,92]),o($Vu5,[2,266],{242:1603,243:[1,1604]}),{248:[1,1605]},o($V85,[2,142],{423:191,3:736,114:739,144:761,158:771,160:772,117:1606,2:$V1,4:$V2,5:$V3,72:$VR2,76:$VS2,77:$VT2,112:$VU2,115:$V12,116:$V22,118:$VV2,122:$VW2,123:$VX2,124:$VY2,128:$VZ2,129:$V_2,130:$V$2,131:$V03,132:$V13,133:$V23,134:$V33,135:$V43,136:$V53,137:$V63,138:$V73,139:$V83,140:$V93,141:$Va3,142:$Vb3,143:$Vc3,145:$Vd3,146:$Ve3,148:$Vf3,149:$Vg3,150:$Vh3,152:$Vi3,154:$Vj3,156:$Vk3,162:$Vl3,164:$Vm3,166:$Vn3,168:$Vo3,169:$Vp3,170:$Vq3,171:$Vr3,172:$Vs3,173:$Vt3,175:$Vu3,185:$Vv3,187:$Vw3,244:$V51,245:$V61,284:$Vb1,285:$Vc1,286:$Vd1,287:$Ve1,288:$Vf1,289:$Vg1,290:$Vh1,291:$Vi1,424:$Vt1,428:$Vu1}),o($Vn4,[2,132]),{74:$Vz3,78:[1,1607]},o($VW4,[2,459],{114:628,331:640,99:$V$1,112:$V02,115:$V12,116:$V22,123:$V32,124:$VB3,133:$V52,136:$V62,138:$V72,139:$V82,140:$V92,141:$Va2,142:$Vb2,154:$Vc2,170:$Vd2,171:$Ve2,179:$Vf2,180:$Vg2,315:$Vh2,316:$Vi2,317:$Vj2,319:$Vk2,320:$Vl2,321:$Vm2,322:$Vn2,323:$Vo2,324:$Vp2,325:$Vq2,326:$Vr2,327:$Vs2,328:$Vt2,329:$Vu2,330:$Vv2,334:$Vw2,335:$Vx2,336:$Vy2,337:$Vz2}),o($VK,[2,577]),o($VF3,[2,539]),o($VF3,[2,551],{370:1532,396:1608,154:$Vv5,187:$Vw5,230:$Vx5,301:$Vy5,347:$Vz5,360:$VA5,372:$VB5,373:$VC5,377:$VD5,378:$VE5}),o($Vy3,[2,553]),{374:[1,1609]},{374:[1,1610]},{2:$V1,3:246,4:$V2,5:$V3,199:1611},o($Vy3,[2,559],{77:[1,1612]}),{2:$V1,3:114,4:$V2,5:$V3,77:[1,1614],113:253,131:$VW,132:$VX,143:$VZ,152:$V01,156:$VL,181:$V41,196:252,200:1615,201:256,261:254,262:255,269:$VF1,278:1613,293:$VM,294:$VN,295:$VO,296:$VP,297:$VQ,298:$Vj1,299:$Vk1,300:$Vl1,301:$Vm1,306:$Vp1},o($Vy3,[2,563]),{301:[1,1616]},o($Vy3,[2,565]),o($Vy3,[2,566]),{339:[1,1617]},{77:[1,1618]},{2:$V1,3:1619,4:$V2,5:$V3},{78:[1,1620],99:$V$1,112:$V02,114:628,115:$V12,116:$V22,123:$V32,124:$VB3,133:$V52,136:$V62,138:$V72,139:$V82,140:$V92,141:$Va2,142:$Vb2,154:$Vc2,170:$Vd2,171:$Ve2,179:$Vf2,180:$Vg2,315:$Vh2,316:$Vi2,317:$Vj2,319:$Vk2,320:$Vl2,321:$Vm2,322:$Vn2,323:$Vo2,324:$Vp2,325:$Vq2,326:$Vr2,327:$Vs2,328:$Vt2,329:$Vu2,330:$Vv2,331:640,334:$Vw2,335:$Vx2,336:$Vy2,337:$Vz2},{78:[1,1621],99:$V$1,112:$V02,114:628,115:$V12,116:$V22,123:$V32,124:$VB3,133:$V52,136:$V62,138:$V72,139:$V82,140:$V92,141:$Va2,142:$Vb2,154:$Vc2,170:$Vd2,171:$Ve2,179:$Vf2,180:$Vg2,315:$Vh2,316:$Vi2,317:$Vj2,319:$Vk2,320:$Vl2,321:$Vm2,322:$Vn2,323:$Vo2,324:$Vp2,325:$Vq2,326:$Vr2,327:$Vs2,328:$Vt2,329:$Vu2,330:$Vv2,331:640,334:$Vw2,335:$Vx2,336:$Vy2,337:$Vz2},{78:[1,1622],99:$V$1,112:$V02,114:628,115:$V12,116:$V22,123:$V32,124:$VB3,133:$V52,136:$V62,138:$V72,139:$V82,140:$V92,141:$Va2,142:$Vb2,154:$Vc2,170:$Vd2,171:$Ve2,179:$Vf2,180:$Vg2,315:$Vh2,316:$Vi2,317:$Vj2,319:$Vk2,320:$Vl2,321:$Vm2,322:$Vn2,323:$Vo2,324:$Vp2,325:$Vq2,326:$Vr2,327:$Vs2,328:$Vt2,329:$Vu2,330:$Vv2,331:640,334:$Vw2,335:$Vx2,336:$Vy2,337:$Vz2},{78:[1,1623],99:$V$1,112:$V02,114:628,115:$V12,116:$V22,123:$V32,124:$VB3,133:$V52,136:$V62,138:$V72,139:$V82,140:$V92,141:$Va2,142:$Vb2,154:$Vc2,170:$Vd2,171:$Ve2,179:$Vf2,180:$Vg2,315:$Vh2,316:$Vi2,317:$Vj2,319:$Vk2,320:$Vl2,321:$Vm2,322:$Vn2,323:$Vo2,324:$Vp2,325:$Vq2,326:$Vr2,327:$Vs2,328:$Vt2,329:$Vu2,330:$Vv2,331:640,334:$Vw2,335:$Vx2,336:$Vy2,337:$Vz2},{78:[1,1624],99:$V$1,112:$V02,114:628,115:$V12,116:$V22,123:$V32,124:$VB3,133:$V52,136:$V62,138:$V72,139:$V82,140:$V92,141:$Va2,142:$Vb2,154:$Vc2,170:$Vd2,171:$Ve2,179:$Vf2,180:$Vg2,315:$Vh2,316:$Vi2,317:$Vj2,319:$Vk2,320:$Vl2,321:$Vm2,322:$Vn2,323:$Vo2,324:$Vp2,325:$Vq2,326:$Vr2,327:$Vs2,328:$Vt2,329:$Vu2,330:$Vv2,331:640,334:$Vw2,335:$Vx2,336:$Vy2,337:$Vz2},o($VK,$VY4,{411:1625,76:$VZ4}),o($VK,[2,596]),{74:$Vt5,78:[1,1626]},{2:$V1,3:1127,4:$V2,5:$V3,132:$VT1,137:$VU1,143:$VH1,145:$VI1,152:$VV1,435:588,479:1129,482:1627,486:585,497:582,501:584},o($VF3,[2,740]),o($VK,[2,498],{356:1628,358:1629,359:1630,4:$VN5,247:$VO5,347:$VP5,360:$VQ5}),o($VR5,$VS5,{3:1273,363:1635,388:1636,364:1637,365:1638,2:$V1,4:$V2,5:$V3,371:$VT5}),{78:[2,512]},{76:[1,1640]},o($VK,[2,614]),o($VK,[2,1139]),{372:[1,1642],418:[1,1641]},o($VK4,[2,733]),o($VK,$V0,{17:5,18:7,19:8,20:9,21:10,22:11,23:12,24:13,25:14,26:15,27:16,28:17,29:18,30:19,31:20,32:21,33:22,34:23,35:24,36:25,37:26,38:27,39:28,40:29,41:30,42:31,43:32,44:33,45:34,46:35,47:36,48:37,49:38,50:39,51:40,52:41,54:43,55:44,56:45,57:46,58:47,59:48,60:49,61:50,62:51,63:52,64:53,65:54,66:55,67:56,68:57,69:58,70:59,71:60,79:75,508:95,184:99,3:100,12:1643,2:$V1,4:$V2,5:$V3,53:$V5,72:$V6,89:$V7,124:$V8,146:$V9,156:$Va,189:$Vb,270:$Vc,271:$Vd,293:$Ve,339:$Vf,342:$Vg,343:$Vh,400:$Vi,404:$Vj,405:$Vk,408:$Vl,410:$Vm,412:$Vn,413:$Vo,421:$Vp,422:$Vq,438:$Vr,440:$Vs,441:$Vt,443:$Vu,444:$Vv,445:$Vw,446:$Vx,447:$Vy,451:$Vz,452:$VA,455:$VB,456:$VC,509:$VD,511:$VE,512:$VF,521:$VG}),o($VK,[2,767]),o($VG5,[2,1187]),o($VK,$V0,{17:5,18:7,19:8,20:9,21:10,22:11,23:12,24:13,25:14,26:15,27:16,28:17,29:18,30:19,31:20,32:21,33:22,34:23,35:24,36:25,37:26,38:27,39:28,40:29,41:30,42:31,43:32,44:33,45:34,46:35,47:36,48:37,49:38,50:39,51:40,52:41,54:43,55:44,56:45,57:46,58:47,59:48,60:49,61:50,62:51,63:52,64:53,65:54,66:55,67:56,68:57,69:58,70:59,71:60,79:75,508:95,184:99,3:100,12:1644,2:$V1,4:$V2,5:$V3,53:$V5,72:$V6,89:$V7,124:$V8,146:$V9,156:$Va,189:$Vb,270:$Vc,271:$Vd,293:$Ve,339:$Vf,342:$Vg,343:$Vh,400:$Vi,404:$Vj,405:$Vk,408:$Vl,410:$Vm,412:$Vn,413:$Vo,421:$Vp,422:$Vq,438:$Vr,440:$Vs,441:$Vt,443:$Vu,444:$Vv,445:$Vw,446:$Vx,447:$Vy,451:$Vz,452:$VA,455:$VB,456:$VC,509:$VD,511:$VE,512:$VF,521:$VG}),o($VG5,[2,1189]),{78:[1,1645]},{78:[1,1646],118:$VH5,282:1647},{78:[1,1648]},{119:[1,1649]},{119:[1,1650]},{78:[1,1651]},{78:[1,1652]},o($VN4,[2,481]),o($VK4,[2,469],{74:$VL4}),{2:$V1,3:246,4:$V2,5:$V3,143:$VH1,145:$VI1,199:1654,435:1653},o($V95,[2,708]),o($V95,[2,710]),{146:[1,1655]},{99:$V$1,112:$V02,114:628,115:$V12,116:$V22,123:$V32,124:$VB3,133:$V52,136:$V62,138:$V72,139:$V82,140:$V92,141:$Va2,142:$Vb2,154:$Vc2,170:$Vd2,171:$Ve2,179:$Vf2,180:$Vg2,313:[1,1656],315:$Vh2,316:$Vi2,317:$Vj2,319:$Vk2,320:$Vl2,321:$Vm2,322:$Vn2,323:$Vo2,324:$Vp2,325:$Vq2,326:$Vr2,327:$Vs2,328:$Vt2,329:$Vu2,330:$Vv2,331:640,334:$Vw2,335:$Vx2,336:$Vy2,337:$Vz2},{343:$VU5,466:1657},{421:[1,1660],467:[1,1659]},{2:$V1,3:169,4:$V2,5:$V3,56:166,77:$VV,94:1661,111:150,113:154,131:$VW,132:$VX,137:$VY,143:$VZ,144:162,145:$V_,149:$V$,152:$V01,154:$V11,156:$VL,158:168,179:$V21,180:$V31,181:$V41,196:152,200:148,201:156,202:157,244:$V51,245:$V61,258:151,259:147,260:149,261:153,262:155,263:158,264:159,265:160,266:163,267:164,269:$V71,270:$Vc,274:$V81,275:$V91,277:$Va1,284:$Vb1,285:$Vc1,286:$Vd1,287:$Ve1,288:$Vf1,289:$Vg1,290:$Vh1,291:$Vi1,293:$VM,294:$VN,295:$VO,296:$VP,297:$VQ,298:$Vj1,299:$Vk1,300:$Vl1,301:$Vm1,302:$Vn1,303:$Vo1,306:$Vp1,307:$Vq1,316:$Vr1,321:$Vs1,423:191,424:$Vt1,428:$Vu1},o($VV5,[2,270],{87:1662,249:[1,1663],251:[1,1664]}),{119:[1,1665]},{2:$V1,3:169,4:$V2,5:$V3,56:166,77:$VV,94:1671,111:150,113:154,131:$VW,132:$VX,137:$VY,143:$VZ,144:162,145:$V_,149:$V$,152:$V01,154:$V11,156:$VL,158:168,179:$V21,180:$V31,181:$V41,196:152,200:148,201:156,202:157,233:1666,235:1667,236:$VW5,237:$VX5,238:$VY5,244:$V51,245:$V61,258:151,259:147,260:149,261:153,262:155,263:158,264:159,265:160,266:163,267:164,269:$V71,270:$Vc,274:$V81,275:$V91,277:$Va1,284:$Vb1,285:$Vc1,286:$Vd1,287:$Ve1,288:$Vf1,289:$Vg1,290:$Vh1,291:$Vi1,293:$VM,294:$VN,295:$VO,296:$VP,297:$VQ,298:$Vj1,299:$Vk1,300:$Vl1,301:$Vm1,302:$Vn1,303:$Vo1,306:$Vp1,307:$Vq1,316:$Vr1,321:$Vs1,423:191,424:$Vt1,428:$Vu1},{2:$V1,3:1672,4:$V2,5:$V3},{2:$V1,3:1673,4:$V2,5:$V3},o($Vp5,[2,207]),{2:$V1,3:169,4:$V2,5:$V3,56:166,77:$VV,94:1674,111:150,113:154,131:$VW,132:$VX,137:$VY,143:$VZ,144:162,145:$V_,149:$V$,152:$V01,154:$V11,156:$VL,158:168,179:$V21,180:$V31,181:$V41,196:152,200:148,201:156,202:157,244:$V51,245:$V61,258:151,259:147,260:149,261:153,262:155,263:158,264:159,265:160,266:163,267:164,269:$V71,270:$Vc,274:$V81,275:$V91,277:$Va1,284:$Vb1,285:$Vc1,286:$Vd1,287:$Ve1,288:$Vf1,289:$Vg1,290:$Vh1,291:$Vi1,293:$VM,294:$VN,295:$VO,296:$VP,297:$VQ,298:$Vj1,299:$Vk1,300:$Vl1,301:$Vm1,302:$Vn1,303:$Vo1,306:$Vp1,307:$Vq1,316:$Vr1,321:$Vs1,423:191,424:$Vt1,428:$Vu1},{2:$V1,3:1015,4:$V2,5:$V3,100:1675,111:1447},o($VL5,[2,209]),{2:$V1,3:1676,4:$V2,5:$V3},o($VL5,[2,1102],{220:1677,3:1678,2:$V1,4:$V2,5:$V3}),o($VM5,[2,1101]),o($VL5,[2,212]),{2:$V1,3:1679,4:$V2,5:$V3},{78:[1,1680]},o($VL5,[2,217]),{2:$V1,3:1681,4:$V2,5:$V3},o($VL5,[2,220]),{2:$V1,3:1682,4:$V2,5:$V3},{40:1683,79:75,89:$V7,184:99,189:$Vb},{40:1684,79:75,89:$V7,184:99,189:$Vb},o($Vs5,[2,227]),o($Vs5,[2,229]),o($Vs5,[2,231]),o($Vh4,[2,171]),o($Vu5,[2,262]),o($Vu5,[2,267]),{244:[1,1685],245:[1,1686]},o($Vu5,[2,268],{246:[1,1687]}),o($VS4,[2,1089],{153:1019,179:$Vk4,180:$Vl4,181:$Vm4}),o($Vn4,[2,141]),o($Vy3,[2,552]),o($Vy3,[2,555]),{378:[1,1688]},o($Vy3,[2,1132],{399:1689,397:1690,77:$VZ5}),{131:$VW,196:1692},o($Vy3,[2,560]),{2:$V1,3:169,4:$V2,5:$V3,56:166,77:$VV,94:1693,111:150,113:154,131:$VW,132:$VX,137:$VY,143:$VZ,144:162,145:$V_,149:$V$,152:$V01,154:$V11,156:$VL,158:168,179:$V21,180:$V31,181:$V41,196:152,200:148,201:156,202:157,244:$V51,245:$V61,258:151,259:147,260:149,261:153,262:155,263:158,264:159,265:160,266:163,267:164,269:$V71,270:$Vc,274:$V81,275:$V91,277:$Va1,284:$Vb1,285:$Vc1,286:$Vd1,287:$Ve1,288:$Vf1,289:$Vg1,290:$Vh1,291:$Vi1,293:$VM,294:$VN,295:$VO,296:$VP,297:$VQ,298:$Vj1,299:$Vk1,300:$Vl1,301:$Vm1,302:$Vn1,303:$Vo1,306:$Vp1,307:$Vq1,316:$Vr1,321:$Vs1,423:191,424:$Vt1,428:$Vu1},o($Vy3,[2,562]),o($Vy3,[2,564]),{2:$V1,3:114,4:$V2,5:$V3,77:[1,1695],113:253,131:$VW,132:$VX,143:$VZ,152:$V01,156:$VL,181:$V41,196:252,200:257,201:256,261:254,262:255,269:$VF1,278:1694,293:$VM,294:$VN,295:$VO,296:$VP,297:$VQ,298:$Vj1,299:$Vk1,300:$Vl1,301:$Vm1,306:$Vp1},{2:$V1,3:169,4:$V2,5:$V3,56:166,77:$VV,94:1696,111:150,113:154,131:$VW,132:$VX,137:$VY,143:$VZ,144:162,145:$V_,149:$V$,152:$V01,154:$V11,156:$VL,158:168,179:$V21,180:$V31,181:$V41,196:152,200:148,201:156,202:157,244:$V51,245:$V61,258:151,259:147,260:149,261:153,262:155,263:158,264:159,265:160,266:163,267:164,269:$V71,270:$Vc,274:$V81,275:$V91,277:$Va1,284:$Vb1,285:$Vc1,286:$Vd1,287:$Ve1,288:$Vf1,289:$Vg1,290:$Vh1,291:$Vi1,293:$VM,294:$VN,295:$VO,296:$VP,297:$VQ,298:$Vj1,299:$Vk1,300:$Vl1,301:$Vm1,302:$Vn1,303:$Vo1,306:$Vp1,307:$Vq1,316:$Vr1,321:$Vs1,423:191,424:$Vt1,428:$Vu1},o($VK,[2,583]),o($VB2,[2,353]),o($VB2,[2,354]),o($VB2,[2,355]),o($VB2,[2,356]),o($VB2,[2,357]),o($VK,[2,587]),o($VK,[2,597]),o($VF3,[2,739]),o($VK,[2,494]),o($VK,[2,499],{359:1697,4:$VN5,247:$VO5,347:$VP5,360:$VQ5}),o($V_5,[2,501]),o($V_5,[2,502]),{124:[1,1698]},{124:[1,1699]},{124:[1,1700]},{74:[1,1701],78:[2,510]},o($V85,[2,538]),o($V85,[2,513]),{187:[1,1709],193:[1,1710],366:1702,367:1703,368:1704,369:1705,370:1706,372:$VB5,373:[1,1707],374:[1,1711],377:[1,1708]},{2:$V1,3:1712,4:$V2,5:$V3},{40:1713,79:75,89:$V7,184:99,189:$Vb},{419:[1,1714]},{420:[1,1715]},o($VK,[2,766]),o($VK,[2,768]),o($Vz4,[2,542]),o($VD1,[2,334]),{78:[1,1716]},o($VD1,[2,335]),{2:$V1,3:169,4:$V2,5:$V3,56:166,77:$VV,94:1671,111:150,113:154,131:$VW,132:$VX,137:$VY,143:$VZ,144:162,145:$V_,149:$V$,152:$V01,154:$V11,156:$VL,158:168,179:$V21,180:$V31,181:$V41,196:152,200:148,201:156,202:157,233:1717,235:1667,236:$VW5,237:$VX5,238:$VY5,244:$V51,245:$V61,258:151,259:147,260:149,261:153,262:155,263:158,264:159,265:160,266:163,267:164,269:$V71,270:$Vc,274:$V81,275:$V91,277:$Va1,284:$Vb1,285:$Vc1,286:$Vd1,287:$Ve1,288:$Vf1,289:$Vg1,290:$Vh1,291:$Vi1,293:$VM,294:$VN,295:$VO,296:$VP,297:$VQ,298:$Vj1,299:$Vk1,300:$Vl1,301:$Vm1,302:$Vn1,303:$Vo1,306:$Vp1,307:$Vq1,316:$Vr1,321:$Vs1,423:191,424:$Vt1,428:$Vu1},{2:$V1,3:169,4:$V2,5:$V3,56:166,77:$VV,94:1382,111:150,113:154,120:1718,131:$VW,132:$VX,137:$VY,143:$VZ,144:162,145:$V_,149:$V$,152:$V01,154:$V11,156:$VL,158:168,179:$V21,180:$V31,181:$V41,196:152,200:148,201:156,202:157,241:1380,244:$V51,245:$V61,258:151,259:147,260:149,261:153,262:155,263:158,264:159,265:160,266:163,267:164,269:$V71,270:$Vc,274:$V81,275:$V91,277:$Va1,284:$Vb1,285:$Vc1,286:$Vd1,287:$Ve1,288:$Vf1,289:$Vg1,290:$Vh1,291:$Vi1,293:$VM,294:$VN,295:$VO,296:$VP,297:$VQ,298:$Vj1,299:$Vk1,300:$Vl1,301:$Vm1,302:$Vn1,303:$Vo1,306:$Vp1,307:$Vq1,316:$Vr1,321:$Vs1,423:191,424:$Vt1,428:$Vu1},o($VD1,[2,320]),o($VD1,[2,322]),{2:$V1,3:1719,4:$V2,5:$V3},o($VK,[2,725],{77:[1,1720]}),{2:$V1,3:1015,4:$V2,5:$V3,111:1069,143:$Vo4,145:$Vp4,147:1721,340:1068,341:1070},{339:$VI5,342:$VJ5,465:1722},o($V95,[2,712]),{77:[1,1724],347:[1,1725],348:[1,1723]},{170:[1,1727],313:[1,1726]},{170:[1,1729],313:[1,1728]},{99:$V$1,112:$V02,114:628,115:$V12,116:$V22,123:$V32,124:$VB3,133:$V52,136:$V62,138:$V72,139:$V82,140:$V92,141:$Va2,142:$Vb2,154:$Vc2,170:$Vd2,171:$Ve2,179:$Vf2,180:$Vg2,313:[1,1730],315:$Vh2,316:$Vi2,317:$Vj2,319:$Vk2,320:$Vl2,321:$Vm2,322:$Vn2,323:$Vo2,324:$Vp2,325:$Vq2,326:$Vr2,327:$Vs2,328:$Vt2,329:$Vu2,330:$Vv2,331:640,334:$Vw2,335:$Vx2,336:$Vy2,337:$Vz2},o($Vj4,[2,250],{88:1731,162:[1,1732],168:[1,1734],169:[1,1733]}),{131:$VW,196:1735},{131:$VW,196:1736},{2:$V1,3:169,4:$V2,5:$V3,56:166,77:$VV,94:1382,111:150,113:154,120:1737,131:$VW,132:$VX,137:$VY,143:$VZ,144:162,145:$V_,149:$V$,152:$V01,154:$V11,156:$VL,158:168,179:$V21,180:$V31,181:$V41,196:152,200:148,201:156,202:157,241:1380,244:$V51,245:$V61,258:151,259:147,260:149,261:153,262:155,263:158,264:159,265:160,266:163,267:164,269:$V71,270:$Vc,274:$V81,275:$V91,277:$Va1,284:$Vb1,285:$Vc1,286:$Vd1,287:$Ve1,288:$Vf1,289:$Vg1,290:$Vh1,291:$Vi1,293:$VM,294:$VN,295:$VO,296:$VP,297:$VQ,298:$Vj1,299:$Vk1,300:$Vl1,301:$Vm1,302:$Vn1,303:$Vo1,306:$Vp1,307:$Vq1,316:$Vr1,321:$Vs1,423:191,424:$Vt1,428:$Vu1},o($Vo5,[2,248],{234:1738,74:$V$5,239:[1,1740]}),o($V06,[2,242]),{146:[1,1741]},{77:[1,1742]},{77:[1,1743]},o($V06,[2,247],{114:628,331:640,99:$V$1,112:$V02,115:$V12,116:$V22,123:$V32,124:$VB3,133:$V52,136:$V62,138:$V72,139:$V82,140:$V92,141:$Va2,142:$Vb2,154:$Vc2,170:$Vd2,171:$Ve2,179:$Vf2,180:$Vg2,315:$Vh2,316:$Vi2,317:$Vj2,319:$Vk2,320:$Vl2,321:$Vm2,322:$Vn2,323:$Vo2,324:$Vp2,325:$Vq2,326:$Vr2,327:$Vs2,328:$Vt2,329:$Vu2,330:$Vv2,334:$Vw2,335:$Vx2,336:$Vy2,337:$Vz2}),{78:[2,1056],96:1744,99:[1,1746],102:1745},{99:[1,1747]},o($Vp5,[2,235],{114:628,331:640,99:$V$1,112:$V02,115:$V12,116:$V22,123:$V32,124:$VB3,133:$V52,136:$V62,138:$V72,139:$V82,140:$V92,141:$Va2,142:$Vb2,154:$Vc2,170:$Vd2,171:$Ve2,179:$Vf2,180:$Vg2,315:$Vh2,316:$Vi2,317:$Vj2,319:$Vk2,320:$Vl2,321:$Vm2,322:$Vn2,323:$Vo2,324:$Vp2,325:$Vq2,326:$Vr2,327:$Vs2,328:$Vt2,329:$Vu2,330:$Vv2,334:$Vw2,335:$Vx2,336:$Vy2,337:$Vz2}),o($Vp5,[2,236],{74:$V55}),o($VL5,[2,210]),o($VL5,[2,211]),o($VL5,[2,1103]),o($VL5,[2,213]),{2:$V1,3:1748,4:$V2,5:$V3,76:[1,1749]},o($VL5,[2,218]),o($VL5,[2,221]),{78:[1,1750]},{78:[1,1751]},o($Vu5,[2,263]),o($Vu5,[2,264]),o($Vu5,[2,269]),{2:$V1,3:246,4:$V2,5:$V3,199:1752},o($Vy3,[2,557]),o($Vy3,[2,1133]),{2:$V1,3:1753,4:$V2,5:$V3},{74:[1,1754]},{78:[1,1755],99:$V$1,112:$V02,114:628,115:$V12,116:$V22,123:$V32,124:$VB3,133:$V52,136:$V62,138:$V72,139:$V82,140:$V92,141:$Va2,142:$Vb2,154:$Vc2,170:$Vd2,171:$Ve2,179:$Vf2,180:$Vg2,315:$Vh2,316:$Vi2,317:$Vj2,319:$Vk2,320:$Vl2,321:$Vm2,322:$Vn2,323:$Vo2,324:$Vp2,325:$Vq2,326:$Vr2,327:$Vs2,328:$Vt2,329:$Vu2,330:$Vv2,331:640,334:$Vw2,335:$Vx2,336:$Vy2,337:$Vz2},o($Vy3,[2,567]),{2:$V1,3:169,4:$V2,5:$V3,56:166,77:$VV,94:1756,111:150,113:154,131:$VW,132:$VX,137:$VY,143:$VZ,144:162,145:$V_,149:$V$,152:$V01,154:$V11,156:$VL,158:168,179:$V21,180:$V31,181:$V41,196:152,200:148,201:156,202:157,244:$V51,245:$V61,258:151,259:147,260:149,261:153,262:155,263:158,264:159,265:160,266:163,267:164,269:$V71,270:$Vc,274:$V81,275:$V91,277:$Va1,284:$Vb1,285:$Vc1,286:$Vd1,287:$Ve1,288:$Vf1,289:$Vg1,290:$Vh1,291:$Vi1,293:$VM,294:$VN,295:$VO,296:$VP,297:$VQ,298:$Vj1,299:$Vk1,300:$Vl1,301:$Vm1,302:$Vn1,303:$Vo1,306:$Vp1,307:$Vq1,316:$Vr1,321:$Vs1,423:191,424:$Vt1,428:$Vu1},{78:[1,1757],99:$V$1,112:$V02,114:628,115:$V12,116:$V22,123:$V32,124:$VB3,133:$V52,136:$V62,138:$V72,139:$V82,140:$V92,141:$Va2,142:$Vb2,154:$Vc2,170:$Vd2,171:$Ve2,179:$Vf2,180:$Vg2,315:$Vh2,316:$Vi2,317:$Vj2,319:$Vk2,320:$Vl2,321:$Vm2,322:$Vn2,323:$Vo2,324:$Vp2,325:$Vq2,326:$Vr2,327:$Vs2,328:$Vt2,329:$Vu2,330:$Vv2,331:640,334:$Vw2,335:$Vx2,336:$Vy2,337:$Vz2},o($V_5,[2,500]),{2:$V1,3:1758,4:$V2,5:$V3},{131:$VW,196:1759},{2:$V1,3:1760,4:$V2,5:$V3},o($VR5,$VS5,{365:1638,364:1761,371:$VT5}),o($VF3,[2,515]),o($VF3,[2,516]),o($VF3,[2,517]),o($VF3,[2,518]),o($VF3,[2,519]),{374:[1,1762]},{374:[1,1763]},o($V16,[2,1126],{386:1764,374:[1,1765]}),{2:$V1,3:1766,4:$V2,5:$V3},{2:$V1,3:1767,4:$V2,5:$V3},o($VR5,[2,521]),o($VK,[2,1136],{415:1768,417:1769,72:$VF5}),o($VK,[2,615]),o($VK,[2,616],{371:[1,1770]}),o($VD1,[2,336]),o([78,118],[2,337],{74:$V$5}),{74:$Vt5,78:[2,338]},o($VK,[2,724]),{2:$V1,3:1015,4:$V2,5:$V3,100:1771,111:1447},o($V95,[2,711],{74:$VV4}),o($V95,[2,709]),{77:$Vg4,143:$VZ,144:983,145:$VE1,152:$V01,181:$V41,201:984,306:$Vp1,346:1772,423:191,424:$Vt1,428:$Vu1},{2:$V1,3:1015,4:$V2,5:$V3,100:1773,111:1447},{348:[1,1774]},{343:$VU5,466:1775},{2:$V1,3:169,4:$V2,5:$V3,56:166,77:$VV,94:1776,111:150,113:154,131:$VW,132:$VX,137:$VY,143:$VZ,144:162,145:$V_,149:$V$,152:$V01,154:$V11,156:$VL,158:168,179:$V21,180:$V31,181:$V41,196:152,200:148,201:156,202:157,244:$V51,245:$V61,258:151,259:147,260:149,261:153,262:155,263:158,264:159,265:160,266:163,267:164,269:$V71,270:$Vc,274:$V81,275:$V91,277:$Va1,284:$Vb1,285:$Vc1,286:$Vd1,287:$Ve1,288:$Vf1,289:$Vg1,290:$Vh1,291:$Vi1,293:$VM,294:$VN,295:$VO,296:$VP,297:$VQ,298:$Vj1,299:$Vk1,300:$Vl1,301:$Vm1,302:$Vn1,303:$Vo1,306:$Vp1,307:$Vq1,316:$Vr1,321:$Vs1,423:191,424:$Vt1,428:$Vu1},{343:$VU5,466:1777},{2:$V1,3:169,4:$V2,5:$V3,56:166,77:$VV,94:1778,111:150,113:154,131:$VW,132:$VX,137:$VY,143:$VZ,144:162,145:$V_,149:$V$,152:$V01,154:$V11,156:$VL,158:168,179:$V21,180:$V31,181:$V41,196:152,200:148,201:156,202:157,244:$V51,245:$V61,258:151,259:147,260:149,261:153,262:155,263:158,264:159,265:160,266:163,267:164,269:$V71,270:$Vc,274:$V81,275:$V91,277:$Va1,284:$Vb1,285:$Vc1,286:$Vd1,287:$Ve1,288:$Vf1,289:$Vg1,290:$Vh1,291:$Vi1,293:$VM,294:$VN,295:$VO,296:$VP,297:$VQ,298:$Vj1,299:$Vk1,300:$Vl1,301:$Vm1,302:$Vn1,303:$Vo1,306:$Vp1,307:$Vq1,316:$Vr1,321:$Vs1,423:191,424:$Vt1,428:$Vu1},{343:$VU5,466:1779},o($Vj4,[2,72]),{40:1780,79:75,89:$V7,164:[1,1781],184:99,189:$Vb,240:[1,1782]},{40:1783,79:75,89:$V7,184:99,189:$Vb,240:[1,1784]},{40:1785,79:75,89:$V7,184:99,189:$Vb,240:[1,1786]},o($VV5,[2,273],{250:1787,251:[1,1788]}),{252:1789,253:[2,1104],769:[1,1790]},o($VK5,[2,260],{74:$Vt5}),o($Vo5,[2,241]),{2:$V1,3:169,4:$V2,5:$V3,56:166,77:$VV,94:1671,111:150,113:154,131:$VW,132:$VX,137:$VY,143:$VZ,144:162,145:$V_,149:$V$,152:$V01,154:$V11,156:$VL,158:168,179:$V21,180:$V31,181:$V41,196:152,200:148,201:156,202:157,235:1791,236:$VW5,237:$VX5,238:$VY5,244:$V51,245:$V61,258:151,259:147,260:149,261:153,262:155,263:158,264:159,265:160,266:163,267:164,269:$V71,270:$Vc,274:$V81,275:$V91,277:$Va1,284:$Vb1,285:$Vc1,286:$Vd1,287:$Ve1,288:$Vf1,289:$Vg1,290:$Vh1,291:$Vi1,293:$VM,294:$VN,295:$VO,296:$VP,297:$VQ,298:$Vj1,299:$Vk1,300:$Vl1,301:$Vm1,302:$Vn1,303:$Vo1,306:$Vp1,307:$Vq1,316:$Vr1,321:$Vs1,423:191,424:$Vt1,428:$Vu1},{2:$V1,3:169,4:$V2,5:$V3,56:166,77:$VV,94:1792,111:150,113:154,131:$VW,132:$VX,137:$VY,143:$VZ,144:162,145:$V_,149:$V$,152:$V01,154:$V11,156:$VL,158:168,179:$V21,180:$V31,181:$V41,196:152,200:148,201:156,202:157,244:$V51,245:$V61,258:151,259:147,260:149,261:153,262:155,263:158,264:159,265:160,266:163,267:164,269:$V71,270:$Vc,274:$V81,275:$V91,277:$Va1,284:$Vb1,285:$Vc1,286:$Vd1,287:$Ve1,288:$Vf1,289:$Vg1,290:$Vh1,291:$Vi1,293:$VM,294:$VN,295:$VO,296:$VP,297:$VQ,298:$Vj1,299:$Vk1,300:$Vl1,301:$Vm1,302:$Vn1,303:$Vo1,306:$Vp1,307:$Vq1,316:$Vr1,321:$Vs1,423:191,424:$Vt1,428:$Vu1},{77:[1,1793]},{2:$V1,3:169,4:$V2,5:$V3,56:166,77:$VV,94:1671,111:150,113:154,131:$VW,132:$VX,137:$VY,143:$VZ,144:162,145:$V_,149:$V$,152:$V01,154:$V11,156:$VL,158:168,179:$V21,180:$V31,181:$V41,196:152,200:148,201:156,202:157,233:1794,235:1667,236:$VW5,237:$VX5,238:$VY5,244:$V51,245:$V61,258:151,259:147,260:149,261:153,262:155,263:158,264:159,265:160,266:163,267:164,269:$V71,270:$Vc,274:$V81,275:$V91,277:$Va1,284:$Vb1,285:$Vc1,286:$Vd1,287:$Ve1,288:$Vf1,289:$Vg1,290:$Vh1,291:$Vi1,293:$VM,294:$VN,295:$VO,296:$VP,297:$VQ,298:$Vj1,299:$Vk1,300:$Vl1,301:$Vm1,302:$Vn1,303:$Vo1,306:$Vp1,307:$Vq1,316:$Vr1,321:$Vs1,423:191,424:$Vt1,428:$Vu1},{2:$V1,3:169,4:$V2,5:$V3,56:166,77:$VV,94:1671,111:150,113:154,131:$VW,132:$VX,137:$VY,143:$VZ,144:162,145:$V_,149:$V$,152:$V01,154:$V11,156:$VL,158:168,179:$V21,180:$V31,181:$V41,196:152,200:148,201:156,202:157,233:1795,235:1667,236:$VW5,237:$VX5,238:$VY5,244:$V51,245:$V61,258:151,259:147,260:149,261:153,262:155,263:158,264:159,265:160,266:163,267:164,269:$V71,270:$Vc,274:$V81,275:$V91,277:$Va1,284:$Vb1,285:$Vc1,286:$Vd1,287:$Ve1,288:$Vf1,289:$Vg1,290:$Vh1,291:$Vi1,293:$VM,294:$VN,295:$VO,296:$VP,297:$VQ,298:$Vj1,299:$Vk1,300:$Vl1,301:$Vm1,302:$Vn1,303:$Vo1,306:$Vp1,307:$Vq1,316:$Vr1,321:$Vs1,423:191,424:$Vt1,428:$Vu1},{78:[1,1796]},{78:[2,1057]},{77:[1,1797]},{77:[1,1798]},o($VL5,[2,214]),{2:$V1,3:1799,4:$V2,5:$V3},{2:$V1,3:1800,4:$V2,5:$V3,76:[1,1801]},{2:$V1,3:1802,4:$V2,5:$V3,76:[1,1803]},o($Vy3,[2,1130],{398:1804,397:1805,77:$VZ5}),{78:[1,1806]},{131:$VW,196:1807},o($Vy3,[2,561]),{78:[1,1808],99:$V$1,112:$V02,114:628,115:$V12,116:$V22,123:$V32,124:$VB3,133:$V52,136:$V62,138:$V72,139:$V82,140:$V92,141:$Va2,142:$Vb2,154:$Vc2,170:$Vd2,171:$Ve2,179:$Vf2,180:$Vg2,315:$Vh2,316:$Vi2,317:$Vj2,319:$Vk2,320:$Vl2,321:$Vm2,322:$Vn2,323:$Vo2,324:$Vp2,325:$Vq2,326:$Vr2,327:$Vs2,328:$Vt2,329:$Vu2,330:$Vv2,331:640,334:$Vw2,335:$Vx2,336:$Vy2,337:$Vz2},o($Vy3,[2,522]),o($V_5,[2,503]),o($V_5,[2,504]),o($V_5,[2,505]),o($V85,[2,514]),{2:$V1,3:1810,4:$V2,5:$V3,77:[2,1122],375:1809},{77:[1,1811]},{2:$V1,3:1813,4:$V2,5:$V3,77:[2,1128],387:1812},o($V16,[2,1127]),{77:[1,1814]},{77:[1,1815]},o($VK,[2,613]),o($VK,[2,1137]),o($VR5,$VS5,{365:1638,364:1816,371:$VT5}),{74:$V55,78:[1,1817]},o($V95,[2,718],{74:$VL4}),{74:$V55,78:[1,1818]},o($V95,[2,720]),o($V95,[2,713]),{99:$V$1,112:$V02,114:628,115:$V12,116:$V22,123:$V32,124:$VB3,133:$V52,136:$V62,138:$V72,139:$V82,140:$V92,141:$Va2,142:$Vb2,154:$Vc2,170:$Vd2,171:$Ve2,179:$Vf2,180:$Vg2,313:[1,1819],315:$Vh2,316:$Vi2,317:$Vj2,319:$Vk2,320:$Vl2,321:$Vm2,322:$Vn2,323:$Vo2,324:$Vp2,325:$Vq2,326:$Vr2,327:$Vs2,328:$Vt2,329:$Vu2,330:$Vv2,331:640,334:$Vw2,335:$Vx2,336:$Vy2,337:$Vz2},o($V95,[2,716]),{99:$V$1,112:$V02,114:628,115:$V12,116:$V22,123:$V32,124:$VB3,133:$V52,136:$V62,138:$V72,139:$V82,140:$V92,141:$Va2,142:$Vb2,154:$Vc2,170:$Vd2,171:$Ve2,179:$Vf2,180:$Vg2,313:[1,1820],315:$Vh2,316:$Vi2,317:$Vj2,319:$Vk2,320:$Vl2,321:$Vm2,322:$Vn2,323:$Vo2,324:$Vp2,325:$Vq2,326:$Vr2,327:$Vs2,328:$Vt2,329:$Vu2,330:$Vv2,331:640,334:$Vw2,335:$Vx2,336:$Vy2,337:$Vz2},o($V95,[2,714]),o($Vj4,[2,251]),{40:1821,79:75,89:$V7,184:99,189:$Vb,240:[1,1822]},{40:1823,79:75,89:$V7,184:99,189:$Vb},o($Vj4,[2,253]),{40:1824,79:75,89:$V7,184:99,189:$Vb},o($Vj4,[2,254]),{40:1825,79:75,89:$V7,184:99,189:$Vb},o($VV5,[2,271]),{131:$VW,196:1826},{253:[1,1827]},{253:[2,1105]},o($V06,[2,243]),o($Vo5,[2,249],{114:628,331:640,99:$V$1,112:$V02,115:$V12,116:$V22,123:$V32,124:$VB3,133:$V52,136:$V62,138:$V72,139:$V82,140:$V92,141:$Va2,142:$Vb2,154:$Vc2,170:$Vd2,171:$Ve2,179:$Vf2,180:$Vg2,315:$Vh2,316:$Vi2,317:$Vj2,319:$Vk2,320:$Vl2,321:$Vm2,322:$Vn2,323:$Vo2,324:$Vp2,325:$Vq2,326:$Vr2,327:$Vs2,328:$Vt2,329:$Vu2,330:$Vv2,334:$Vw2,335:$Vx2,336:$Vy2,337:$Vz2}),{2:$V1,3:169,4:$V2,5:$V3,56:166,77:$VV,94:1671,111:150,113:154,131:$VW,132:$VX,137:$VY,143:$VZ,144:162,145:$V_,149:$V$,152:$V01,154:$V11,156:$VL,158:168,179:$V21,180:$V31,181:$V41,196:152,200:148,201:156,202:157,233:1828,235:1667,236:$VW5,237:$VX5,238:$VY5,244:$V51,245:$V61,258:151,259:147,260:149,261:153,262:155,263:158,264:159,265:160,266:163,267:164,269:$V71,270:$Vc,274:$V81,275:$V91,277:$Va1,284:$Vb1,285:$Vc1,286:$Vd1,287:$Ve1,288:$Vf1,289:$Vg1,290:$Vh1,291:$Vi1,293:$VM,294:$VN,295:$VO,296:$VP,297:$VQ,298:$Vj1,299:$Vk1,300:$Vl1,301:$Vm1,302:$Vn1,303:$Vo1,306:$Vp1,307:$Vq1,316:$Vr1,321:$Vs1,423:191,424:$Vt1,428:$Vu1},{74:$V$5,78:[1,1829]},{74:$V$5,78:[1,1830]},o($VP4,[2,1058],{97:1831,104:1832,3:1834,2:$V1,4:$V2,5:$V3,76:$V26}),{2:$V1,3:169,4:$V2,5:$V3,56:166,77:$VV,94:1837,103:1835,105:1836,111:150,113:154,131:$VW,132:$VX,137:$VY,143:$VZ,144:162,145:$V_,149:$V$,152:$V01,154:$V11,156:$VL,158:168,179:$V21,180:$V31,181:$V41,196:152,200:148,201:156,202:157,244:$V51,245:$V61,258:151,259:147,260:149,261:153,262:155,263:158,264:159,265:160,266:163,267:164,269:$V71,270:$Vc,274:$V81,275:$V91,277:$Va1,284:$Vb1,285:$Vc1,286:$Vd1,287:$Ve1,288:$Vf1,289:$Vg1,290:$Vh1,291:$Vi1,293:$VM,294:$VN,295:$VO,296:$VP,297:$VQ,298:$Vj1,299:$Vk1,300:$Vl1,301:$Vm1,302:$Vn1,303:$Vo1,306:$Vp1,307:$Vq1,316:$Vr1,321:$Vs1,423:191,424:$Vt1,428:$Vu1},{2:$V1,3:1015,4:$V2,5:$V3,100:1838,111:1447},o($VL5,[2,215]),o($Vp5,[2,173]),{2:$V1,3:1839,4:$V2,5:$V3},o($Vp5,[2,175]),{2:$V1,3:1840,4:$V2,5:$V3},o($Vy3,[2,556]),o($Vy3,[2,1131]),o($Vy3,[2,554]),{78:[1,1841]},o($Vy3,[2,568]),{77:[1,1842]},{77:[2,1123]},{2:$V1,3:1844,4:$V2,5:$V3,132:$V36,376:1843},{77:[1,1846]},{77:[2,1129]},{2:$V1,3:1015,4:$V2,5:$V3,100:1847,111:1447},{2:$V1,3:1015,4:$V2,5:$V3,100:1848,111:1447},o($VK,[2,617]),o($VK,[2,726]),{347:[1,1850],348:[1,1849]},{343:$VU5,466:1851},{339:$VI5,342:$VJ5,465:1852},o($Vj4,[2,252]),{40:1853,79:75,89:$V7,184:99,189:$Vb},o($Vj4,[2,255]),o($Vj4,[2,257]),o($Vj4,[2,258]),o($VV5,[2,274]),{131:[2,1106],254:1854,649:[1,1855]},{74:$V$5,78:[1,1856]},o($V06,[2,245]),o($V06,[2,246]),o($VP4,[2,74]),o($VP4,[2,1059]),{2:$V1,3:1857,4:$V2,5:$V3},o($VP4,[2,78]),{74:[1,1859],78:[1,1858]},o($V85,[2,80]),o($V85,[2,81],{114:628,331:640,76:[1,1860],99:$V$1,112:$V02,115:$V12,116:$V22,123:$V32,124:$VB3,133:$V52,136:$V62,138:$V72,139:$V82,140:$V92,141:$Va2,142:$Vb2,154:$Vc2,170:$Vd2,171:$Ve2,179:$Vf2,180:$Vg2,315:$Vh2,316:$Vi2,317:$Vj2,319:$Vk2,320:$Vl2,321:$Vm2,322:$Vn2,323:$Vo2,324:$Vp2,325:$Vq2,326:$Vr2,327:$Vs2,328:$Vt2,329:$Vu2,330:$Vv2,334:$Vw2,335:$Vx2,336:$Vy2,337:$Vz2}),{74:$V55,78:[1,1861]},o($Vp5,[2,174]),o($Vp5,[2,176]),o($Vy3,[2,558]),{2:$V1,3:1844,4:$V2,5:$V3,132:$V36,376:1862},{74:$V46,78:[1,1863]},o($V85,[2,533]),o($V85,[2,534]),{2:$V1,3:1015,4:$V2,5:$V3,100:1865,111:1447},{74:$V55,78:[1,1866]},{74:$V55,78:[1,1867]},{77:$Vg4,143:$VZ,144:983,145:$VE1,152:$V01,181:$V41,201:984,306:$Vp1,346:1868,423:191,424:$Vt1,428:$Vu1},{348:[1,1869]},o($V95,[2,715]),o($V95,[2,717]),o($Vj4,[2,256]),{131:$VW,196:1870},{131:[2,1107]},o($V06,[2,244]),o($VP4,[2,77]),{78:[2,76]},{2:$V1,3:169,4:$V2,5:$V3,56:166,77:$VV,94:1837,105:1871,111:150,113:154,131:$VW,132:$VX,137:$VY,143:$VZ,144:162,145:$V_,149:$V$,152:$V01,154:$V11,156:$VL,158:168,179:$V21,180:$V31,181:$V41,196:152,200:148,201:156,202:157,244:$V51,245:$V61,258:151,259:147,260:149,261:153,262:155,263:158,264:159,265:160,266:163,267:164,269:$V71,270:$Vc,274:$V81,275:$V91,277:$Va1,284:$Vb1,285:$Vc1,286:$Vd1,287:$Ve1,288:$Vf1,289:$Vg1,290:$Vh1,291:$Vi1,293:$VM,294:$VN,295:$VO,296:$VP,297:$VQ,298:$Vj1,299:$Vk1,300:$Vl1,301:$Vm1,302:$Vn1,303:$Vo1,306:$Vp1,307:$Vq1,316:$Vr1,321:$Vs1,423:191,424:$Vt1,428:$Vu1},{2:$V1,3:1872,4:$V2,5:$V3},{78:[1,1873]},{74:$V46,78:[1,1874]},{378:[1,1875]},{2:$V1,3:1876,4:$V2,5:$V3,132:[1,1877]},{74:$V55,78:[1,1878]},o($VF3,[2,531]),o($VF3,[2,532]),o($V95,[2,719],{74:$VL4}),o($V95,[2,721]),o($V56,[2,1108],{255:1879,769:[1,1880]}),o($V85,[2,79]),o($V85,[2,82]),o($VP4,[2,1060],{3:1834,101:1881,104:1882,2:$V1,4:$V2,5:$V3,76:$V26}),o($VF3,[2,523]),{2:$V1,3:246,4:$V2,5:$V3,199:1883},o($V85,[2,535]),o($V85,[2,536]),o($VF3,[2,530]),o($VV5,[2,1110],{256:1884,419:[1,1885]}),o($V56,[2,1109]),o($VP4,[2,75]),o($VP4,[2,1061]),o($V66,[2,1124],{379:1886,381:1887,77:[1,1888]}),o($VV5,[2,272]),o($VV5,[2,1111]),o($VF3,[2,526],{380:1889,382:1890,230:[1,1891]}),o($V66,[2,1125]),{2:$V1,3:1844,4:$V2,5:$V3,132:$V36,376:1892},o($VF3,[2,524]),{230:[1,1894],383:1893},{342:[1,1895]},{74:$V46,78:[1,1896]},o($VF3,[2,527]),{339:[1,1897]},{384:[1,1898]},o($V66,[2,525]),{384:[1,1899]},{385:[1,1900]},{385:[1,1901]},{230:[2,528]},o($VF3,[2,529])],\ndefaultActions: {105:[2,6],195:[2,339],196:[2,340],197:[2,341],198:[2,342],199:[2,343],200:[2,344],201:[2,345],202:[2,346],203:[2,347],204:[2,348],211:[2,700],594:[2,1147],656:[2,1112],657:[2,1113],713:[2,701],783:[2,1078],784:[2,1079],930:[2,451],931:[2,452],932:[2,453],991:[2,702],1294:[2,1157],1381:[2,1065],1440:[2,1155],1549:[2,512],1745:[2,1057],1790:[2,1105],1810:[2,1123],1813:[2,1129],1855:[2,1107],1858:[2,76],1900:[2,528]},\nparseError: function parseError (str, hash) {\n if (hash.recoverable) {\n this.trace(str);\n } else {\n var error = new Error(str);\n error.hash = hash;\n throw error;\n }\n},\nparse: function parse (input) {\n var self = this,\n stack = [0],\n tstack = [], // token stack\n vstack = [null], // semantic value stack\n lstack = [], // location stack\n table = this.table,\n yytext = '',\n yylineno = 0,\n yyleng = 0,\n recovering = 0,\n TERROR = 2,\n EOF = 1;\n\n var args = lstack.slice.call(arguments, 1);\n\n //this.reductionCount = this.shiftCount = 0;\n\n var lexer = Object.create(this.lexer);\n var sharedState = { yy: {} };\n // copy state\n for (var k in this.yy) {\n if (Object.prototype.hasOwnProperty.call(this.yy, k)) {\n sharedState.yy[k] = this.yy[k];\n }\n }\n\n lexer.setInput(input, sharedState.yy);\n sharedState.yy.lexer = lexer;\n sharedState.yy.parser = this;\n if (typeof lexer.yylloc == 'undefined') {\n lexer.yylloc = {};\n }\n var yyloc = lexer.yylloc;\n lstack.push(yyloc);\n\n var ranges = lexer.options && lexer.options.ranges;\n\n if (typeof sharedState.yy.parseError === 'function') {\n this.parseError = sharedState.yy.parseError;\n } else {\n this.parseError = Object.getPrototypeOf(this).parseError;\n }\n\n function popStack (n) {\n stack.length = stack.length - 2 * n;\n vstack.length = vstack.length - n;\n lstack.length = lstack.length - n;\n }\n\n_token_stack:\n var lex = function () {\n var token;\n token = lexer.lex() || EOF;\n // if token isn't its numeric value, convert\n if (typeof token !== 'number') {\n token = self.symbols_[token] || token;\n }\n return token;\n }\n\n var symbol, preErrorSymbol, state, action, a, r, yyval = {}, p, len, newState, expected;\n while (true) {\n // retreive state number from top of stack\n state = stack[stack.length - 1];\n\n // use default actions if available\n if (this.defaultActions[state]) {\n action = this.defaultActions[state];\n } else {\n if (symbol === null || typeof symbol == 'undefined') {\n symbol = lex();\n }\n // read action for current state and first input\n action = table[state] && table[state][symbol];\n }\n\n_handle_error:\n // handle parse error\n if (typeof action === 'undefined' || !action.length || !action[0]) {\n var error_rule_depth;\n var errStr = '';\n\n // Return the rule stack depth where the nearest error rule can be found.\n // Return FALSE when no error recovery rule was found.\n function locateNearestErrorRecoveryRule(state) {\n var stack_probe = stack.length - 1;\n var depth = 0;\n\n // try to recover from error\n for(;;) {\n // check for error recovery rule in this state\n if ((TERROR.toString()) in table[state]) {\n return depth;\n }\n if (state === 0 || stack_probe < 2) {\n return false; // No suitable error recovery rule available.\n }\n stack_probe -= 2; // popStack(1): [symbol, action]\n state = stack[stack_probe];\n ++depth;\n }\n }\n\n if (!recovering) {\n // first see if there's any chance at hitting an error recovery rule:\n error_rule_depth = locateNearestErrorRecoveryRule(state);\n\n // Report error\n expected = [];\n for (p in table[state]) {\n if (this.terminals_[p] && p > TERROR) {\n expected.push(\"'\"+this.terminals_[p]+\"'\");\n }\n }\n if (lexer.showPosition) {\n errStr = 'Parse error on line '+(yylineno+1)+\":\\n\"+lexer.showPosition()+\"\\nExpecting \"+expected.join(', ') + \", got '\" + (this.terminals_[symbol] || symbol)+ \"'\";\n } else {\n errStr = 'Parse error on line '+(yylineno+1)+\": Unexpected \" +\n (symbol == EOF ? \"end of input\" :\n (\"'\"+(this.terminals_[symbol] || symbol)+\"'\"));\n }\n this.parseError(errStr, {\n text: lexer.match,\n token: this.terminals_[symbol] || symbol,\n line: lexer.yylineno,\n loc: yyloc,\n expected: expected,\n recoverable: (error_rule_depth !== false)\n });\n } else if (preErrorSymbol !== EOF) {\n error_rule_depth = locateNearestErrorRecoveryRule(state);\n }\n\n // just recovered from another error\n if (recovering == 3) {\n if (symbol === EOF || preErrorSymbol === EOF) {\n throw new Error(errStr || 'Parsing halted while starting to recover from another error.');\n }\n\n // discard current lookahead and grab another\n yyleng = lexer.yyleng;\n yytext = lexer.yytext;\n yylineno = lexer.yylineno;\n yyloc = lexer.yylloc;\n symbol = lex();\n }\n\n // try to recover from error\n if (error_rule_depth === false) {\n throw new Error(errStr || 'Parsing halted. No suitable error recovery rule available.');\n }\n popStack(error_rule_depth);\n\n preErrorSymbol = (symbol == TERROR ? null : symbol); // save the lookahead token\n symbol = TERROR; // insert generic error symbol as new lookahead\n state = stack[stack.length-1];\n action = table[state] && table[state][TERROR];\n recovering = 3; // allow 3 real symbols to be shifted before reporting a new error\n }\n\n // this shouldn't happen, unless resolve defaults are off\n if (action[0] instanceof Array && action.length > 1) {\n throw new Error('Parse Error: multiple actions possible at state: '+state+', token: '+symbol);\n }\n\n switch (action[0]) {\n case 1: // shift\n //this.shiftCount++;\n\n stack.push(symbol);\n vstack.push(lexer.yytext);\n lstack.push(lexer.yylloc);\n stack.push(action[1]); // push state\n symbol = null;\n if (!preErrorSymbol) { // normal execution/no error\n yyleng = lexer.yyleng;\n yytext = lexer.yytext;\n yylineno = lexer.yylineno;\n yyloc = lexer.yylloc;\n if (recovering > 0) {\n recovering--;\n }\n } else {\n // error just occurred, resume old lookahead f/ before error\n symbol = preErrorSymbol;\n preErrorSymbol = null;\n }\n break;\n\n case 2:\n // reduce\n //this.reductionCount++;\n\n len = this.productions_[action[1]][1];\n\n // perform semantic action\n yyval.$ = vstack[vstack.length-len]; // default to $$ = $1\n // default location, uses first token for firsts, last for lasts\n yyval._$ = {\n first_line: lstack[lstack.length-(len||1)].first_line,\n last_line: lstack[lstack.length-1].last_line,\n first_column: lstack[lstack.length-(len||1)].first_column,\n last_column: lstack[lstack.length-1].last_column\n };\n if (ranges) {\n yyval._$.range = [lstack[lstack.length-(len||1)].range[0], lstack[lstack.length-1].range[1]];\n }\n r = this.performAction.apply(yyval, [yytext, yyleng, yylineno, sharedState.yy, action[1], vstack, lstack].concat(args));\n\n if (typeof r !== 'undefined') {\n return r;\n }\n\n // pop off stack\n if (len) {\n stack = stack.slice(0,-1*len*2);\n vstack = vstack.slice(0, -1*len);\n lstack = lstack.slice(0, -1*len);\n }\n\n stack.push(this.productions_[action[1]][0]); // push nonterminal (reduce)\n vstack.push(yyval.$);\n lstack.push(yyval._$);\n // goto new state = table[STATE][NONTERMINAL]\n newState = table[stack[stack.length-2]][stack[stack.length-1]];\n stack.push(newState);\n break;\n\n case 3:\n // accept\n return true;\n }\n\n }\n\n return true;\n}};\n\n// from https://www.postgresql.org/docs/current/static/sql-keywords-appendix.html\r\n// JSON.stringify([].slice.call(document.querySelectorAll('tr')).filter(x => x.children.length == 5 && x.children[2].innerText == 'reserved').map(x => x.children[0].innerText))\r\n\nvar nonReserved = [\"A\",\"ABSENT\",\"ABSOLUTE\",\"ACCORDING\",\"ACTION\",\"ADA\",\"ADD\",\"ADMIN\",\"AFTER\",\"ALWAYS\",\"ASC\",\"ASSERTION\",\"ASSIGNMENT\",\"ATTRIBUTE\",\"ATTRIBUTES\",\"BASE64\",\"BEFORE\",\"BERNOULLI\",\"BLOCKED\",\"BOM\",\"BREADTH\",\"C\",\"CASCADE\",\"CATALOG\",\"CATALOG_NAME\",\"CHAIN\",\"CHARACTERISTICS\",\"CHARACTERS\",\"CHARACTER_SET_CATALOG\",\"CHARACTER_SET_NAME\",\"CHARACTER_SET_SCHEMA\",\"CLASS_ORIGIN\",\"COBOL\",\"COLLATION\",\"COLLATION_CATALOG\",\"COLLATION_NAME\",\"COLLATION_SCHEMA\",\"COLUMNS\",\"COLUMN_NAME\",\"COMMAND_FUNCTION\",\"COMMAND_FUNCTION_CODE\",\"COMMITTED\",\"CONDITION_NUMBER\",\"CONNECTION\",\"CONNECTION_NAME\",\"CONSTRAINTS\",\"CONSTRAINT_CATALOG\",\"CONSTRAINT_NAME\",\"CONSTRAINT_SCHEMA\",\"CONSTRUCTOR\",\"CONTENT\",\"CONTINUE\",\"CONTROL\",\"CURSOR_NAME\",\"DATA\",\"DATETIME_INTERVAL_CODE\",\"DATETIME_INTERVAL_PRECISION\",\"DB\",\"DEFAULTS\",\"DEFERRABLE\",\"DEFERRED\",\"DEFINED\",\"DEFINER\",\"DEGREE\",\"DEPTH\",\"DERIVED\",\"DESC\",\"DESCRIPTOR\",\"DIAGNOSTICS\",\"DISPATCH\",\"DOCUMENT\",\"DOMAIN\",\"DYNAMIC_FUNCTION\",\"DYNAMIC_FUNCTION_CODE\",\"EMPTY\",\"ENCODING\",\"ENFORCED\",\"EXCLUDE\",\"EXCLUDING\",\"EXPRESSION\",\"FILE\",\"FINAL\",\"FIRST\",\"FLAG\",\"FOLLOWING\",\"FORTRAN\",\"FOUND\",\"FS\",\"G\",\"GENERAL\",\"GENERATED\",\"GO\",\"GOTO\",\"GRANTED\",\"HEX\",\"HIERARCHY\",\"ID\",\"IGNORE\",\"IMMEDIATE\",\"IMMEDIATELY\",\"IMPLEMENTATION\",\"INCLUDING\",\"INCREMENT\",\"INDENT\",\"INITIALLY\",\"INPUT\",\"INSTANCE\",\"INSTANTIABLE\",\"INSTEAD\",\"INTEGRITY\",\"INVOKER\",\"ISOLATION\",\"K\",\"KEY\",\"KEY_MEMBER\",\"KEY_TYPE\",\"LAST\",\"LENGTH\",\"LEVEL\",\"LIBRARY\",\"LIMIT\",\"LINK\",\"LOCATION\",\"LOCATOR\",\"M\",\"MAP\",\"MAPPING\",\"MATCHED\",\"MAXVALUE\",\"MESSAGE_LENGTH\",\"MESSAGE_OCTET_LENGTH\",\"MESSAGE_TEXT\",\"MINVALUE\",\"MORE\",\"MUMPS\",\"NAME\",\"NAMES\",\"NAMESPACE\",\"NESTING\",\"NEXT\",\"NFC\",\"NFD\",\"NFKC\",\"NFKD\",\"NIL\",\"NORMALIZED\",\"NULLABLE\",\"NULLS\",\"NUMBER\",\"OBJECT\",\"OCTETS\",\"OFF\",\"OPTION\",\"OPTIONS\",\"ORDERING\",\"ORDINALITY\",\"OTHERS\",\"OUTPUT\",\"OVERRIDING\",\"P\",\"PAD\",\"PARAMETER_MODE\",\"PARAMETER_NAME\",\"PARAMETER_ORDINAL_POSITION\",\"PARAMETER_SPECIFIC_CATALOG\",\"PARAMETER_SPECIFIC_NAME\",\"PARAMETER_SPECIFIC_SCHEMA\",\"PARTIAL\",\"PASCAL\",\"PASSING\",\"PASSTHROUGH\",\"PATH\",\"PERMISSION\",\"PLACING\",\"PLI\",\"PRECEDING\",\"PRESERVE\",\"PRIOR\",\"PRIVILEGES\",\"PUBLIC\",\"READ\",\"RECOVERY\",\"RELATIVE\",\"REPEATABLE\",\"REQUIRING\",\"RESPECT\",\"RESTART\",\"RESTORE\",\"RESTRICT\",\"RETURNED_CARDINALITY\",\"RETURNED_LENGTH\",\"RETURNED_OCTET_LENGTH\",\"RETURNED_SQLSTATE\",\"RETURNING\",\"ROLE\",\"ROUTINE\",\"ROUTINE_CATALOG\",\"ROUTINE_NAME\",\"ROUTINE_SCHEMA\",\"ROW_COUNT\",\"SCALE\",\"SCHEMA\",\"SCHEMA_NAME\",\"SCOPE_CATALOG\",\"SCOPE_NAME\",\"SCOPE_SCHEMA\",\"SECTION\",\"SECURITY\",\"SELECTIVE\",\"SELF\",\"SEQUENCE\",\"SERIALIZABLE\",\"SERVER\",\"SERVER_NAME\",\"SESSION\",\"SETS\",\"SIMPLE\",\"SIZE\",\"SOURCE\",\"SPACE\",\"SPECIFIC_NAME\",\"STANDALONE\",\"STATE\",\"STATEMENT\",\"STRIP\",\"STRUCTURE\",\"STYLE\",\"SUBCLASS_ORIGIN\",\"T\",\"TABLE_NAME\",\"TEMPORARY\",\"TIES\",\"TOKEN\",\"TOP_LEVEL_COUNT\",\"TRANSACTION\",\"TRANSACTIONS_COMMITTED\",\"TRANSACTIONS_ROLLED_BACK\",\"TRANSACTION_ACTIVE\",\"TRANSFORM\",\"TRANSFORMS\",\"TRIGGER_CATALOG\",\"TRIGGER_NAME\",\"TRIGGER_SCHEMA\",\"TYPE\",\"UNBOUNDED\",\"UNCOMMITTED\",\"UNDER\",\"UNLINK\",\"UNNAMED\",\"UNTYPED\",\"URI\",\"USAGE\",\"USER_DEFINED_TYPE_CATALOG\",\"USER_DEFINED_TYPE_CODE\",\"USER_DEFINED_TYPE_NAME\",\"USER_DEFINED_TYPE_SCHEMA\",\"VALID\",\"VERSION\",\"VIEW\",\"WHITESPACE\",\"WORK\",\"WRAPPER\",\"WRITE\",\"XMLDECLARATION\",\"XMLSCHEMA\",\"YES\",\"ZONE\"]\r\n\nparser.parseError = function(str, hash) {\r\n\tif (hash.expected && hash.expected.indexOf(\"'LITERAL'\") > -1 && /[a-zA-Z_][a-zA-Z_0-9]*/.test(hash.token) && nonReserved.indexOf(hash.token) > -1) {\r\n\t\treturn\r\n\t}\r\n\tthrow new SyntaxError(str)\r\n}\r\n/* generated by jison-lex 0.3.4 */\nvar lexer = (function(){\nvar lexer = ({\n\nEOF:1,\n\nparseError:function parseError(str, hash) {\n if (this.yy.parser) {\n this.yy.parser.parseError(str, hash);\n } else {\n throw new Error(str);\n }\n },\n\n// resets the lexer, sets new input\nsetInput:function (input, yy) {\n this.yy = yy || this.yy || {};\n this._input = input;\n this._more = this._backtrack = this.done = false;\n this.yylineno = this.yyleng = 0;\n this.yytext = this.matched = this.match = '';\n this.conditionStack = ['INITIAL'];\n this.yylloc = {\n first_line: 1,\n first_column: 0,\n last_line: 1,\n last_column: 0\n };\n if (this.options.ranges) {\n this.yylloc.range = [0,0];\n }\n this.offset = 0;\n return this;\n },\n\n// consumes and returns one char from the input\ninput:function () {\n var ch = this._input[0];\n this.yytext += ch;\n this.yyleng++;\n this.offset++;\n this.match += ch;\n this.matched += ch;\n var lines = ch.match(/(?:\\r\\n?|\\n).*/g);\n if (lines) {\n this.yylineno++;\n this.yylloc.last_line++;\n } else {\n this.yylloc.last_column++;\n }\n if (this.options.ranges) {\n this.yylloc.range[1]++;\n }\n\n this._input = this._input.slice(1);\n return ch;\n },\n\n// unshifts one char (or a string) into the input\nunput:function (ch) {\n var len = ch.length;\n var lines = ch.split(/(?:\\r\\n?|\\n)/g);\n\n this._input = ch + this._input;\n this.yytext = this.yytext.substr(0, this.yytext.length - len);\n //this.yyleng -= len;\n this.offset -= len;\n var oldLines = this.match.split(/(?:\\r\\n?|\\n)/g);\n this.match = this.match.substr(0, this.match.length - 1);\n this.matched = this.matched.substr(0, this.matched.length - 1);\n\n if (lines.length - 1) {\n this.yylineno -= lines.length - 1;\n }\n var r = this.yylloc.range;\n\n this.yylloc = {\n first_line: this.yylloc.first_line,\n last_line: this.yylineno + 1,\n first_column: this.yylloc.first_column,\n last_column: lines ?\n (lines.length === oldLines.length ? this.yylloc.first_column : 0)\n + oldLines[oldLines.length - lines.length].length - lines[0].length :\n this.yylloc.first_column - len\n };\n\n if (this.options.ranges) {\n this.yylloc.range = [r[0], r[0] + this.yyleng - len];\n }\n this.yyleng = this.yytext.length;\n return this;\n },\n\n// When called from action, caches matched text and appends it on next action\nmore:function () {\n this._more = true;\n return this;\n },\n\n// When called from action, signals the lexer that this rule fails to match the input, so the next matching rule (regex) should be tested instead.\nreject:function () {\n if (this.options.backtrack_lexer) {\n this._backtrack = true;\n } else {\n return this.parseError('Lexical error on line ' + (this.yylineno + 1) + '. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\\n' + this.showPosition(), {\n text: \"\",\n token: null,\n line: this.yylineno\n });\n\n }\n return this;\n },\n\n// retain first n characters of the match\nless:function (n) {\n this.unput(this.match.slice(n));\n },\n\n// displays already matched input, i.e. for error messages\npastInput:function () {\n var past = this.matched.substr(0, this.matched.length - this.match.length);\n return (past.length > 20 ? '...':'') + past.substr(-20).replace(/\\n/g, \"\");\n },\n\n// displays upcoming input, i.e. for error messages\nupcomingInput:function () {\n var next = this.match;\n if (next.length < 20) {\n next += this._input.substr(0, 20-next.length);\n }\n return (next.substr(0,20) + (next.length > 20 ? '...' : '')).replace(/\\n/g, \"\");\n },\n\n// displays the character position where the lexing error occurred, i.e. for error messages\nshowPosition:function () {\n var pre = this.pastInput();\n var c = new Array(pre.length + 1).join(\"-\");\n return pre + this.upcomingInput() + \"\\n\" + c + \"^\";\n },\n\n// test the lexed token: return FALSE when not a match, otherwise return token\ntest_match:function(match, indexed_rule) {\n var token,\n lines,\n backup;\n\n if (this.options.backtrack_lexer) {\n // save context\n backup = {\n yylineno: this.yylineno,\n yylloc: {\n first_line: this.yylloc.first_line,\n last_line: this.last_line,\n first_column: this.yylloc.first_column,\n last_column: this.yylloc.last_column\n },\n yytext: this.yytext,\n match: this.match,\n matches: this.matches,\n matched: this.matched,\n yyleng: this.yyleng,\n offset: this.offset,\n _more: this._more,\n _input: this._input,\n yy: this.yy,\n conditionStack: this.conditionStack.slice(0),\n done: this.done\n };\n if (this.options.ranges) {\n backup.yylloc.range = this.yylloc.range.slice(0);\n }\n }\n\n lines = match[0].match(/(?:\\r\\n?|\\n).*/g);\n if (lines) {\n this.yylineno += lines.length;\n }\n this.yylloc = {\n first_line: this.yylloc.last_line,\n last_line: this.yylineno + 1,\n first_column: this.yylloc.last_column,\n last_column: lines ?\n lines[lines.length - 1].length - lines[lines.length - 1].match(/\\r?\\n?/)[0].length :\n this.yylloc.last_column + match[0].length\n };\n this.yytext += match[0];\n this.match += match[0];\n this.matches = match;\n this.yyleng = this.yytext.length;\n if (this.options.ranges) {\n this.yylloc.range = [this.offset, this.offset += this.yyleng];\n }\n this._more = false;\n this._backtrack = false;\n this._input = this._input.slice(match[0].length);\n this.matched += match[0];\n token = this.performAction.call(this, this.yy, this, indexed_rule, this.conditionStack[this.conditionStack.length - 1]);\n if (this.done && this._input) {\n this.done = false;\n }\n if (token) {\n return token;\n } else if (this._backtrack) {\n // recover context\n for (var k in backup) {\n this[k] = backup[k];\n }\n return false; // rule action called reject() implying the next rule should be tested instead.\n }\n return false;\n },\n\n// return next match in input\nnext:function () {\n if (this.done) {\n return this.EOF;\n }\n if (!this._input) {\n this.done = true;\n }\n\n var token,\n match,\n tempMatch,\n index;\n if (!this._more) {\n this.yytext = '';\n this.match = '';\n }\n var rules = this._currentRules();\n for (var i = 0; i < rules.length; i++) {\n tempMatch = this._input.match(this.rules[rules[i]]);\n if (tempMatch && (!match || tempMatch[0].length > match[0].length)) {\n match = tempMatch;\n index = i;\n if (this.options.backtrack_lexer) {\n token = this.test_match(tempMatch, rules[i]);\n if (token !== false) {\n return token;\n } else if (this._backtrack) {\n match = false;\n continue; // rule action called reject() implying a rule MISmatch.\n } else {\n // else: this is a lexer rule which consumes input without producing a token (e.g. whitespace)\n return false;\n }\n } else if (!this.options.flex) {\n break;\n }\n }\n }\n if (match) {\n token = this.test_match(match, rules[index]);\n if (token !== false) {\n return token;\n }\n // else: this is a lexer rule which consumes input without producing a token (e.g. whitespace)\n return false;\n }\n if (this._input === \"\") {\n return this.EOF;\n } else {\n return this.parseError('Lexical error on line ' + (this.yylineno + 1) + '. Unrecognized text.\\n' + this.showPosition(), {\n text: \"\",\n token: null,\n line: this.yylineno\n });\n }\n },\n\n// return next match that has a token\nlex:function lex () {\n var r = this.next();\n if (r) {\n return r;\n } else {\n return this.lex();\n }\n },\n\n// activates a new lexer condition state (pushes the new lexer condition state onto the condition stack)\nbegin:function begin (condition) {\n this.conditionStack.push(condition);\n },\n\n// pop the previously active lexer condition state off the condition stack\npopState:function popState () {\n var n = this.conditionStack.length - 1;\n if (n > 0) {\n return this.conditionStack.pop();\n } else {\n return this.conditionStack[0];\n }\n },\n\n// produce the lexer rule set which is active for the currently active lexer condition state\n_currentRules:function _currentRules () {\n if (this.conditionStack.length && this.conditionStack[this.conditionStack.length - 1]) {\n return this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules;\n } else {\n return this.conditions[\"INITIAL\"].rules;\n }\n },\n\n// return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available\ntopState:function topState (n) {\n n = this.conditionStack.length - 1 - Math.abs(n || 0);\n if (n >= 0) {\n return this.conditionStack[n];\n } else {\n return \"INITIAL\";\n }\n },\n\n// alias for begin(condition)\npushState:function pushState (condition) {\n this.begin(condition);\n },\n\n// return the number of states currently on the stack\nstateStackSize:function stateStackSize() {\n return this.conditionStack.length;\n },\noptions: {\"case-insensitive\":true},\nperformAction: function anonymous(yy,yy_,$avoiding_name_collisions,YY_START) {\nvar YYSTATE=YY_START;\nswitch($avoiding_name_collisions) {\ncase 0:return 270\nbreak;\ncase 1:return 306\nbreak;\ncase 2:return 424\nbreak;\ncase 3:return 303\nbreak;\ncase 4:return 5\nbreak;\ncase 5:return 5\nbreak;\ncase 6:return 300\nbreak;\ncase 7:return 300\nbreak;\ncase 8:return 132\nbreak;\ncase 9:return 132\nbreak;\ncase 10:return /* its a COMMENT */\nbreak;\ncase 11:/* skip whitespace */\nbreak;\ncase 12:return 320\nbreak;\ncase 13:return 323\nbreak;\ncase 14:yy_.yytext = 'VALUE';return 89\nbreak;\ncase 15:yy_.yytext = 'VALUE';return 189\nbreak;\ncase 16:yy_.yytext = 'ROW';return 189\nbreak;\ncase 17:yy_.yytext = 'COLUMN';return 189\nbreak;\ncase 18:yy_.yytext = 'MATRIX';return 189\nbreak;\ncase 19:yy_.yytext = 'INDEX';return 189\nbreak;\ncase 20:yy_.yytext = 'RECORDSET';return 189\nbreak;\ncase 21:yy_.yytext = 'TEXT';return 189\nbreak;\ncase 22:yy_.yytext = 'SELECT';return 189\nbreak;\ncase 23:return 524\nbreak;\ncase 24:return 385\nbreak;\ncase 25:return 406\nbreak;\ncase 26:return 519\nbreak;\ncase 27:return 290\nbreak;\ncase 28:return 273\nbreak;\ncase 29:return 273\nbreak;\ncase 30:return 164\nbreak;\ncase 31:return 404\nbreak;\ncase 32:return 170\nbreak;\ncase 33:return 229\nbreak;\ncase 34:return 166\nbreak;\ncase 35:return 207\nbreak;\ncase 36:return 291\nbreak;\ncase 37:return 76\nbreak;\ncase 38:return 422\nbreak;\ncase 39:return 246\nbreak;\ncase 40:return 408\nbreak;\ncase 41:return 360\nbreak;\ncase 42:return 289\nbreak;\ncase 43:return 518\nbreak;\ncase 44:return 441\nbreak;\ncase 45:return 334\nbreak;\ncase 46:return 445\nbreak;\ncase 47:return 335\nbreak;\ncase 48:return 319\nbreak;\ncase 49:return 119\nbreak;\ncase 50:return 112\nbreak;\ncase 51:return 319\nbreak;\ncase 52:return 112\nbreak;\ncase 53:return 319\nbreak;\ncase 54:return 112\nbreak;\ncase 55:return 319\nbreak;\ncase 56:return 512\nbreak;\ncase 57:return 307\nbreak;\ncase 58:return 275\nbreak;\ncase 59:return 372\nbreak;\ncase 60:return 130\nbreak;\ncase 61:return 'CLOSE'\nbreak;\ncase 62:return 247\nbreak;\ncase 63:return 190\nbreak;\ncase 64:return 190\nbreak;\ncase 65:return 438\nbreak;\ncase 66:return 371\nbreak;\ncase 67:return 474\nbreak;\ncase 68:return 444\nbreak;\ncase 69:return 277\nbreak;\ncase 70:return 240\nbreak;\ncase 71:return 286\nbreak;\ncase 72:return 271\nbreak;\ncase 73:return 206\nbreak;\ncase 74:return 238\nbreak;\ncase 75:return 269\nbreak;\ncase 76:return 'CURSOR'\nbreak;\ncase 77:return 409\nbreak;\ncase 78:return 294\nbreak;\ncase 79:return 295\nbreak;\ncase 80:return 296\nbreak;\ncase 81:return 452\nbreak;\ncase 82:return 347\nbreak;\ncase 83:return 342\nbreak;\ncase 84:return 'DELETED'\nbreak;\ncase 85:return 246\nbreak;\ncase 86:return 410\nbreak;\ncase 87:return 185\nbreak;\ncase 88:return 400\nbreak;\ncase 89:return 451\nbreak;\ncase 90:return 135\nbreak;\ncase 91:return 310\nbreak;\ncase 92:return 393\nbreak;\ncase 93:return 314\nbreak;\ncase 94:return 318\nbreak;\ncase 95:return 169\nbreak;\ncase 96:return 512\nbreak;\ncase 97:return 512\nbreak;\ncase 98:return 302\nbreak;\ncase 99:return 14\nbreak;\ncase 100:return 299\nbreak;\ncase 101:return 253\nbreak;\ncase 102:return 244\nbreak;\ncase 103:return 95\nbreak;\ncase 104:return 377\nbreak;\ncase 105:return 183\nbreak;\ncase 106:return 227\nbreak;\ncase 107:return 272\nbreak;\ncase 108:return 317\nbreak;\ncase 109:return 606\nbreak;\ncase 110:return 476\nbreak;\ncase 111:return 232\nbreak;\ncase 112:return 236\nbreak;\ncase 113:return 239\nbreak;\ncase 114:return 156\nbreak;\ncase 115:return 360\nbreak;\ncase 116:return 336\nbreak;\ncase 117:return 99\nbreak;\ncase 118:return 193\nbreak;\ncase 119:return 212\nbreak;\ncase 120:return 224\nbreak;\ncase 121:return 520\nbreak;\ncase 122:return 343\nbreak;\ncase 123:return 213\nbreak;\ncase 124:return 168\nbreak;\ncase 125:return 297\nbreak;\ncase 126:return 198\nbreak;\ncase 127:return 223\nbreak;\ncase 128:return 374\nbreak;\ncase 129:return 245\nbreak;\ncase 130:return 'LET'\nbreak;\ncase 131:return 225\nbreak;\ncase 132:return 112\nbreak;\ncase 133:return 249\nbreak;\ncase 134:return 464\nbreak;\ncase 135:return 191\nbreak;\ncase 136:return 288\nbreak;\ncase 137:return 394\nbreak;\ncase 138:return 287\nbreak;\ncase 139:return 456\nbreak;\ncase 140:return 169\nbreak;\ncase 141:return 407\nbreak;\ncase 142:return 222\nbreak;\ncase 143:return 649\nbreak;\ncase 144:return 274\nbreak;\ncase 145:return 248\nbreak;\ncase 146:return 384\nbreak;\ncase 147:return 154\nbreak;\ncase 148:return 301\nbreak;\ncase 149:return 243\nbreak;\ncase 150:return 437\nbreak;\ncase 151:return 230\nbreak;\ncase 152:return 419\nbreak;\ncase 153:return 129\nbreak;\ncase 154:return 251\nbreak;\ncase 155:return 'OPEN'\nbreak;\ncase 156:return 420\nbreak;\ncase 157:return 171\nbreak;\ncase 158:return 118\nbreak;\ncase 159:return 208\nbreak;\ncase 160:return 280\nbreak;\ncase 161:return 172\nbreak;\ncase 162:return 283\nbreak;\ncase 163:return 768\nbreak;\ncase 164:return 93\nbreak;\ncase 165:return 16\nbreak;\ncase 166:return 373\nbreak;\ncase 167:return 446\nbreak;\ncase 168:return 681\nbreak;\ncase 169:return 15\nbreak;\ncase 170:return 418\nbreak;\ncase 171:return 194\nbreak;\ncase 172:return 'REDUCE'\nbreak;\ncase 173:return 378\nbreak;\ncase 174:return 315\nbreak;\ncase 175:return 521\nbreak;\ncase 176:return 685\nbreak;\ncase 177:return 107\nbreak;\ncase 178:return 405\nbreak;\ncase 179:return 175\nbreak;\ncase 180:return 293\nbreak;\ncase 181:return 447\nbreak;\ncase 182:return 690\nbreak;\ncase 183:return 173\nbreak;\ncase 184:return 173\nbreak;\ncase 185:return 226\nbreak;\ncase 186:return 440\nbreak;\ncase 187:return 237\nbreak;\ncase 188:return 150\nbreak;\ncase 189:return 769\nbreak;\ncase 190:return 409\nbreak;\ncase 191:return 89\nbreak;\ncase 192:return 228\nbreak;\ncase 193:return 146\nbreak;\ncase 194:return 146\nbreak;\ncase 195:return 413\nbreak;\ncase 196:return 338\nbreak;\ncase 197:return 421\nbreak;\ncase 198:return 'STRATEGY'\nbreak;\ncase 199:return 'STORE'\nbreak;\ncase 200:return 284\nbreak;\ncase 201:return 285\nbreak;\ncase 202:return 357\nbreak;\ncase 203:return 357\nbreak;\ncase 204:return 467\nbreak;\ncase 205:return 361\nbreak;\ncase 206:return 361\nbreak;\ncase 207:return 192\nbreak;\ncase 208:return 313\nbreak;\ncase 209:return 'TIMEOUT'\nbreak;\ncase 210:return 148\nbreak;\ncase 211:return 195\nbreak;\ncase 212:return 439\nbreak;\ncase 213:return 439\nbreak;\ncase 214:return 513\nbreak;\ncase 215:return 298\nbreak;\ncase 216:return 455\nbreak;\ncase 217:return 162\nbreak;\ncase 218:return 187\nbreak;\ncase 219:return 98\nbreak;\ncase 220:return 339\nbreak;\ncase 221:return 412\nbreak;\ncase 222:return 231\nbreak;\ncase 223:return 149\nbreak;\ncase 224:return 348\nbreak;\ncase 225:return 134\nbreak;\ncase 226:return 414\nbreak;\ncase 227:return 312\nbreak;\ncase 228:return 128\nbreak;\ncase 229:return 443\nbreak;\ncase 230:return 72\nbreak;\ncase 231:return 439 /* Is this keyword required? */\nbreak;\ncase 232:return 131\nbreak;\ncase 233:return 131\nbreak;\ncase 234:return 115\nbreak;\ncase 235:return 137\nbreak;\ncase 236:return 179\nbreak;\ncase 237:return 321\nbreak;\ncase 238:return 180\nbreak;\ncase 239:return 133\nbreak;\ncase 240:return 138\nbreak;\ncase 241:return 330\nbreak;\ncase 242:return 327\nbreak;\ncase 243:return 329\nbreak;\ncase 244:return 326\nbreak;\ncase 245:return 324\nbreak;\ncase 246:return 322\nbreak;\ncase 247:return 323\nbreak;\ncase 248:return 142\nbreak;\ncase 249:return 141\nbreak;\ncase 250:return 139\nbreak;\ncase 251:return 325\nbreak;\ncase 252:return 328\nbreak;\ncase 253:return 140\nbreak;\ncase 254:return 124\nbreak;\ncase 255:return 328\nbreak;\ncase 256:return 77\nbreak;\ncase 257:return 78\nbreak;\ncase 258:return 145\nbreak;\ncase 259:return 428\nbreak;\ncase 260:return 430\nbreak;\ncase 261:return 304\nbreak;\ncase 262:return 509\nbreak;\ncase 263:return 511\nbreak;\ncase 264:return 122\nbreak;\ncase 265:return 116\nbreak;\ncase 266:return 74\nbreak;\ncase 267:return 337\nbreak;\ncase 268:return 152\nbreak;\ncase 269:return 767\nbreak;\ncase 270:return 143\nbreak;\ncase 271:return 181\nbreak;\ncase 272:return 136\nbreak;\ncase 273:return 123\nbreak;\ncase 274:return 316\nbreak;\ncase 275:return 4\nbreak;\ncase 276:return 10\nbreak;\ncase 277:return 'INVALID'\nbreak;\n}\n},\nrules: [/^(?:``([^\\`])+``)/i,/^(?:\\[\\?\\])/i,/^(?:@\\[)/i,/^(?:ARRAY\\[)/i,/^(?:\\[([^\\]'])*?\\])/i,/^(?:`([^\\`'])*?`)/i,/^(?:N(['](\\\\.|[^']|\\\\')*?['])+)/i,/^(?:X(['](\\\\.|[^']|\\\\')*?['])+)/i,/^(?:(['](\\\\.|[^']|\\\\')*?['])+)/i,/^(?:([\"](\\\\.|[^\"]|\\\\\")*?[\"])+)/i,/^(?:--(.*?)($|\\r\\n|\\r|\\n))/i,/^(?:\\s+)/i,/^(?:\\|\\|)/i,/^(?:\\|)/i,/^(?:VALUE\\s+OF\\s+SEARCH\\b)/i,/^(?:VALUE\\s+OF\\s+SELECT\\b)/i,/^(?:ROW\\s+OF\\s+SELECT\\b)/i,/^(?:COLUMN\\s+OF\\s+SELECT\\b)/i,/^(?:MATRIX\\s+OF\\s+SELECT\\b)/i,/^(?:INDEX\\s+OF\\s+SELECT\\b)/i,/^(?:RECORDSET\\s+OF\\s+SELECT\\b)/i,/^(?:TEXT\\s+OF\\s+SELECT\\b)/i,/^(?:SELECT\\b)/i,/^(?:ABSOLUTE\\b)/i,/^(?:ACTION\\b)/i,/^(?:ADD\\b)/i,/^(?:AFTER\\b)/i,/^(?:AGGR\\b)/i,/^(?:AGGREGATE\\b)/i,/^(?:AGGREGATOR\\b)/i,/^(?:ALL\\b)/i,/^(?:ALTER\\b)/i,/^(?:AND\\b)/i,/^(?:ANTI\\b)/i,/^(?:ANY\\b)/i,/^(?:APPLY\\b)/i,/^(?:ARRAY\\b)/i,/^(?:AS\\b)/i,/^(?:ASSERT\\b)/i,/^(?:ASC\\b)/i,/^(?:ATTACH\\b)/i,/^(?:AUTO(_)?INCREMENT\\b)/i,/^(?:AVG\\b)/i,/^(?:BEFORE\\b)/i,/^(?:BEGIN\\b)/i,/^(?:BETWEEN\\b)/i,/^(?:BREAK\\b)/i,/^(?:NOT\\s+BETWEEN\\b)/i,/^(?:NOT\\s+LIKE\\b)/i,/^(?:BY\\b)/i,/^(?:~~\\*)/i,/^(?:!~~\\*)/i,/^(?:~~)/i,/^(?:!~~)/i,/^(?:ILIKE\\b)/i,/^(?:NOT\\s+ILIKE\\b)/i,/^(?:CALL\\b)/i,/^(?:CASE\\b)/i,/^(?:CAST\\b)/i,/^(?:CHECK\\b)/i,/^(?:CLASS\\b)/i,/^(?:CLOSE\\b)/i,/^(?:COLLATE\\b)/i,/^(?:COLUMN\\b)/i,/^(?:COLUMNS\\b)/i,/^(?:COMMIT\\b)/i,/^(?:CONSTRAINT\\b)/i,/^(?:CONTENT\\b)/i,/^(?:CONTINUE\\b)/i,/^(?:CONVERT\\b)/i,/^(?:CORRESPONDING\\b)/i,/^(?:COUNT\\b)/i,/^(?:CREATE\\b)/i,/^(?:CROSS\\b)/i,/^(?:CUBE\\b)/i,/^(?:CURRENT_TIMESTAMP\\b)/i,/^(?:CURSOR\\b)/i,/^(?:DATABASE(S)?)/i,/^(?:DATEADD\\b)/i,/^(?:DATEDIFF\\b)/i,/^(?:TIMESTAMPDIFF\\b)/i,/^(?:DECLARE\\b)/i,/^(?:DEFAULT\\b)/i,/^(?:DELETE\\b)/i,/^(?:DELETED\\b)/i,/^(?:DESC\\b)/i,/^(?:DETACH\\b)/i,/^(?:DISTINCT\\b)/i,/^(?:DROP\\b)/i,/^(?:ECHO\\b)/i,/^(?:EDGE\\b)/i,/^(?:END\\b)/i,/^(?:ENUM\\b)/i,/^(?:ELSE\\b)/i,/^(?:ESCAPE\\b)/i,/^(?:EXCEPT\\b)/i,/^(?:EXEC\\b)/i,/^(?:EXECUTE\\b)/i,/^(?:EXISTS\\b)/i,/^(?:EXPLAIN\\b)/i,/^(?:FALSE\\b)/i,/^(?:FETCH\\b)/i,/^(?:FIRST\\b)/i,/^(?:FOR\\b)/i,/^(?:FOREIGN\\b)/i,/^(?:FROM\\b)/i,/^(?:FULL\\b)/i,/^(?:FUNCTION\\b)/i,/^(?:GLOB\\b)/i,/^(?:GO\\b)/i,/^(?:GRAPH\\b)/i,/^(?:GROUP\\b)/i,/^(?:GROUPING\\b)/i,/^(?:HAVING\\b)/i,/^(?:IF\\b)/i,/^(?:IDENTITY\\b)/i,/^(?:IS\\b)/i,/^(?:IN\\b)/i,/^(?:INDEX\\b)/i,/^(?:INDEXED\\b)/i,/^(?:INNER\\b)/i,/^(?:INSTEAD\\b)/i,/^(?:INSERT\\b)/i,/^(?:INSERTED\\b)/i,/^(?:INTERSECT\\b)/i,/^(?:INTERVAL\\b)/i,/^(?:INTO\\b)/i,/^(?:JOIN\\b)/i,/^(?:KEY\\b)/i,/^(?:LAST\\b)/i,/^(?:LET\\b)/i,/^(?:LEFT\\b)/i,/^(?:LIKE\\b)/i,/^(?:LIMIT\\b)/i,/^(?:MATCHED\\b)/i,/^(?:MATRIX\\b)/i,/^(?:MAX(\\s+)?(?=\\())/i,/^(?:MAX(\\s+)?(?=(,|\\))))/i,/^(?:MIN(\\s+)?(?=\\())/i,/^(?:MERGE\\b)/i,/^(?:MINUS\\b)/i,/^(?:MODIFY\\b)/i,/^(?:NATURAL\\b)/i,/^(?:NEXT\\b)/i,/^(?:NEW\\b)/i,/^(?:NOCASE\\b)/i,/^(?:NO\\b)/i,/^(?:NOT\\b)/i,/^(?:NULL\\b)/i,/^(?:NULLS\\b)/i,/^(?:OFF\\b)/i,/^(?:ON\\b)/i,/^(?:ONLY\\b)/i,/^(?:OF\\b)/i,/^(?:OFFSET\\b)/i,/^(?:OPEN\\b)/i,/^(?:OPTION\\b)/i,/^(?:OR\\b)/i,/^(?:ORDER\\b)/i,/^(?:OUTER\\b)/i,/^(?:OVER\\b)/i,/^(?:PATH\\b)/i,/^(?:PARTITION\\b)/i,/^(?:PERCENT\\b)/i,/^(?:PIVOT\\b)/i,/^(?:PLAN\\b)/i,/^(?:PRIMARY\\b)/i,/^(?:PRINT\\b)/i,/^(?:PRIOR\\b)/i,/^(?:QUERY\\b)/i,/^(?:READ\\b)/i,/^(?:RECORDSET\\b)/i,/^(?:REDUCE\\b)/i,/^(?:REFERENCES\\b)/i,/^(?:REGEXP\\b)/i,/^(?:REINDEX\\b)/i,/^(?:RELATIVE\\b)/i,/^(?:REMOVE\\b)/i,/^(?:RENAME\\b)/i,/^(?:REPEAT\\b)/i,/^(?:REPLACE\\b)/i,/^(?:REQUIRE\\b)/i,/^(?:RESTORE\\b)/i,/^(?:RETURN\\b)/i,/^(?:RETURNS\\b)/i,/^(?:RIGHT\\b)/i,/^(?:ROLLBACK\\b)/i,/^(?:ROLLUP\\b)/i,/^(?:ROW\\b)/i,/^(?:ROWS\\b)/i,/^(?:SCHEMA(S)?)/i,/^(?:SEARCH\\b)/i,/^(?:SEMI\\b)/i,/^(?:SET\\b)/i,/^(?:SETS\\b)/i,/^(?:SHOW\\b)/i,/^(?:SOME\\b)/i,/^(?:SOURCE\\b)/i,/^(?:STRATEGY\\b)/i,/^(?:STORE\\b)/i,/^(?:SUM\\b)/i,/^(?:TOTAL\\b)/i,/^(?:TABLE\\b)/i,/^(?:TABLES\\b)/i,/^(?:TARGET\\b)/i,/^(?:TEMP\\b)/i,/^(?:TEMPORARY\\b)/i,/^(?:TEXTSTRING\\b)/i,/^(?:THEN\\b)/i,/^(?:TIMEOUT\\b)/i,/^(?:TO\\b)/i,/^(?:TOP\\b)/i,/^(?:TRAN\\b)/i,/^(?:TRANSACTION\\b)/i,/^(?:TRIGGER\\b)/i,/^(?:TRUE\\b)/i,/^(?:TRUNCATE\\b)/i,/^(?:UNION\\b)/i,/^(?:UNIQUE\\b)/i,/^(?:UNPIVOT\\b)/i,/^(?:UPDATE\\b)/i,/^(?:USE\\b)/i,/^(?:USING\\b)/i,/^(?:VALUE\\b)/i,/^(?:VALUES\\b)/i,/^(?:VERTEX\\b)/i,/^(?:VIEW\\b)/i,/^(?:WHEN\\b)/i,/^(?:WHERE\\b)/i,/^(?:WHILE\\b)/i,/^(?:WITH\\b)/i,/^(?:WORK\\b)/i,/^(?:(\\d*[.])?\\d+[eE]\\d+)/i,/^(?:(\\d*[.])?\\d+)/i,/^(?:->)/i,/^(?:#)/i,/^(?:\\+)/i,/^(?:-)/i,/^(?:\\*)/i,/^(?:\\/)/i,/^(?:%)/i,/^(?:!===)/i,/^(?:===)/i,/^(?:!==)/i,/^(?:==)/i,/^(?:>=)/i,/^(?:&)/i,/^(?:\\|)/i,/^(?:<<)/i,/^(?:>>)/i,/^(?:>)/i,/^(?:<=)/i,/^(?:<>)/i,/^(?:<)/i,/^(?:=)/i,/^(?:!=)/i,/^(?:\\()/i,/^(?:\\))/i,/^(?:@)/i,/^(?:\\{)/i,/^(?:\\})/i,/^(?:\\])/i,/^(?::-)/i,/^(?:\\?-)/i,/^(?:\\.\\.)/i,/^(?:\\.)/i,/^(?:,)/i,/^(?:::)/i,/^(?::)/i,/^(?:;)/i,/^(?:\\$)/i,/^(?:\\?)/i,/^(?:!)/i,/^(?:\\^)/i,/^(?:~)/i,/^(?:[0-9]*[a-zA-Z_]+[a-zA-Z_0-9]*)/i,/^(?:$)/i,/^(?:.)/i],\nconditions: {\"INITIAL\":{\"rules\":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277],\"inclusive\":true}}\n});\nreturn lexer;\n})();\nparser.lexer = lexer;\nfunction Parser () {\n this.yy = {};\n}\nParser.prototype = parser;parser.Parser = Parser;\nreturn new Parser;\n})();\n\nif (typeof require !== 'undefined' && typeof exports !== 'undefined') {\nexports.parser = alasqlparser;\nexports.Parser = alasqlparser.Parser;\nexports.parse = function () { return alasqlparser.parse.apply(alasqlparser, arguments); };\nexports.main = function commonjsMain (args) {\n if (!args[1]) {\n console.log('Usage: '+args[0]+' FILE');\n process.exit(1);\n }\n var source = require('fs').readFileSync(require('path').normalize(args[1]), \"utf8\");\n return exports.parser.parse(source);\n};\nif (typeof module !== 'undefined' && require.main === module) {\n exports.main(process.argv.slice(1));\n}\n}/**\n 12prettyflag.js - prettify\n @todo move this functionality to plugin\n*/\n\n/**\n \tPretty flag - nice HTML output or standard text without any tags\n\t@type {boolean}\n*/\n\nalasql.prettyflag = false;\n\n/**\n\tPretty output of SQL functions\n\t@function\n\t@param {string} sql SQL statement\n\t@param {boolean} flag value\n\t@return {string} HTML or text string with pretty output \n*/\n\nalasql.pretty = function (sql, flag) {\n\tvar pf = alasql.prettyflag;\n\talasql.prettyflag = !flag;\n\tvar s = alasql.parse(sql).toString();\n\talasql.prettyflag = pf;\n\treturn s;\n};\n\n/*jshint unused:false*/\n/*\n\tUtilities for Alasql.js\n\n\t@todo Review the list of utilities\n\t@todo Find more effective utilities\n*/\n\n/**\n Alasql utility functions\n @type {object}\n */\nvar utils = (alasql.utils = {});\n\n/**\n Convert NaN to undefined\n @function\n @param {string} s JavaScript string to be modified\n @return {string} Covered expression\n\n @example\n\n 123 => 123\n undefined => undefined\n NaN => undefined\n\n */\nfunction n2u(s) {\n\treturn '(y=' + s + ',y===y?y:undefined)';\n}\n\n/**\n Return undefined if s undefined\n @param {string} s JavaScript string to be modified\n @return {string} Covered expression\n\n @example\n\n 123,a => a\n undefined,a => undefined\n NaN,a => undefined\n\n */\nfunction und(s, r) {\n\treturn '(y=' + s + ',typeof y==\"undefined\"?undefined:' + r + ')';\n}\n\n/**\n Return always true. Stub for non-ecisting WHERE clause, because is faster then if(whenrfn) whenfn()\n @function\n @return {boolean} Always true\n */\nfunction returnTrue() {\n\treturn true;\n}\n\n/**\n Return undefined. Stub for non-ecisting WHERE clause, because is faster then if(whenrfn) whenfn()\n @function\n @return {undefined} Always undefined\n */\nfunction returnUndefined() {}\n\n/**\n Escape string\n @function\n @param {string} s Source string\n @return {string} Escaped string\n @example\n\n Pit\\er's => Pit\\\\er\\'s\n\n */\n// based on joliss/js-string-escape\nvar escapeq = (utils.escapeq = function (s) {\n\n\treturn ('' + s).replace(/[\"'\\\\\\n\\r\\u2028\\u2029]/g, function (character) {\n\t\t// Escape all characters not included in SingleStringCharacters and\n\t\t// DoubleStringCharacters on\n\t\t// http://www.ecma-international.org/ecma-262/5.1/#sec-7.8.4\n\t\tswitch (character) {\n\t\t\tcase '\"':\n\t\t\tcase \"'\":\n\t\t\tcase '\\\\':\n\t\t\t\treturn '\\\\' + character;\n\t\t\t// Four possible LineTerminator characters need to be escaped:\n\t\t\tcase '\\n':\n\t\t\t\treturn '\\\\n';\n\t\t\tcase '\\r':\n\t\t\t\treturn '\\\\r';\n\t\t\tcase '\\u2028':\n\t\t\t\treturn '\\\\u2028';\n\t\t\tcase '\\u2029':\n\t\t\t\treturn '\\\\u2029';\n\t\t}\n\t});\n});\n\n/**\n Double quotes for SQL statements\n @param {string} s Source string\n @return {string} Escaped string\n\n @example\n\n Piter's => Piter''s\n\n */\nvar escapeqq = (utils.undoubleq = function (s) {\n\treturn s.replace(/(\\')/g, \"''\");\n});\n\n/**\n Replace double quotes with single quote\n @param {string} s Source string\n @return {string} Replaced string\n @example\n\n Piter''s => Piter's\n\n */\nvar doubleq = (utils.doubleq = function (s) {\n\treturn s.replace(/(\\'\\')/g, \"\\\\'\");\n});\n\n/**\n Replace sigle quote to escaped single quote\n @param {string} s Source string\n @return {string} Replaced string\n\n @todo Chack this functions\n\n */\nvar doubleqq = (utils.doubleqq = function (s) {\n\treturn s.replace(/\\'/g, \"'\");\n});\n\n/**\n Cut BOM first character for UTF-8 files (for merging two files)\n @param {string} s Source string\n @return {string} Replaced string\n */\n\nvar cutbom = function (s) {\n\tif (s[0] === String.fromCharCode(65279)) {\n\t\ts = s.substr(1);\n\t}\n\treturn s;\n};\n\n/**\n Get the global scope\n Inspired by System.global\n @return {object} The global scope\n */\nutils.global = (function () {\n\tif (typeof self !== 'undefined') {\n\t\treturn self;\n\t}\n\tif (typeof window !== 'undefined') {\n\t\treturn window;\n\t}\n\tif (typeof global !== 'undefined') {\n\t\treturn global;\n\t}\n\treturn Function('return this')();\n})();\n\n/**\n Find out if a function is native to the enviroment\n @param {function} Function to check\n @return {boolean} True if function is native\n */\nvar isNativeFunction = (utils.isNativeFunction = function (fn) {\n\treturn typeof fn === 'function' && !!~fn.toString().indexOf('[native code]');\n});\n\n/**\n Find out if code is running in a web worker enviroment\n @return {boolean} True if code is running in a web worker enviroment\n */\nutils.isWebWorker = (function () {\n\ttry {\n\t\tvar importScripts = utils.global.importScripts;\n\t\treturn utils.isNativeFunction(importScripts);\n\t} catch (e) {\n\t\treturn false;\n\t}\n})();\n\n/**\n Find out if code is running in a node enviroment\n @return {boolean} True if code is running in a node enviroment\n */\nutils.isNode = (function () {\n\ttry {\n\t\treturn utils.isNativeFunction(utils.global.process.reallyExit);\n\t} catch (e) {\n\t\treturn false;\n\t}\n})();\n\n/**\n Find out if code is running in a browser enviroment\n @return {boolean} True if code is running in a browser enviroment\n */\nutils.isBrowser = (function () {\n\ttry {\n\t\treturn utils.isNativeFunction(utils.global.location.reload);\n\t} catch (e) {\n\t\treturn false;\n\t}\n})();\n\n/**\n Find out if code is running in a browser with a browserify setup\n @return {boolean} True if code is running in a browser with a browserify setup\n */\nutils.isBrowserify = (function () {\n\treturn utils.isBrowser && typeof process !== 'undefined' && process.browser;\n})();\n\n/**\n Find out if code is running in a browser with a requireJS setup\n @return {boolean} True if code is running in a browser with a requireJS setup\n */\nutils.isRequireJS = (function () {\n\treturn (\n\t\tutils.isBrowser && typeof require === 'function' && typeof require.specified === 'function'\n\t);\n})();\n\n/**\n Find out if code is running with Meteor in the enviroment\n @return {boolean} True if code is running with Meteor in the enviroment\n\n @todo Find out if this is the best way to do this\n */\nutils.isMeteor = (function () {\n\treturn typeof Meteor !== 'undefined' && Meteor.release;\n})();\n\n/**\n Find out if code is running on a Meteor client\n @return {boolean} True if code is running on a Meteor client\n */\nutils.isMeteorClient = utils.isMeteorClient = (function () {\n\treturn utils.isMeteor && Meteor.isClient;\n})();\n\n/**\n Find out if code is running on a Meteor server\n @return {boolean} True if code is running on a Meteor server\n */\nutils.isMeteorServer = (function () {\n\treturn utils.isMeteor && Meteor.isServer;\n})();\n\n/**\n Find out code is running in a cordovar enviroment\n @return {boolean} True if code is running in a web worker enviroment\n\n @todo Find out if this is the best way to do this\n */\nutils.isCordova = (function () {\n\treturn typeof cordova === 'object';\n})();\n\nutils.isReactNative = (function () {\n\tvar isReact = false;\n\t//*not-for-browser/*\n\ttry {\n\t\tif (typeof require('react-native') === 'object') {\n\t\t\tisReact = true;\n\t\t}\n\t} catch (e) {\n\t\tvoid 0;\n\t}\n\t//*/\n\treturn isReact;\n})();\n\nutils.hasIndexedDB = (function () {\n\treturn !!utils.global.indexedDB;\n})();\n\nutils.isArray = function (obj) {\n\treturn '[object Array]' === Object.prototype.toString.call(obj);\n};\n/**\n Load text file from anywhere\n @param {string|object} path File path or HTML event\n @param {boolean} asy True - async call, false - sync call\n @param {function} success Success function\n @param {function} error Error function\n @return {string} Read data\n\n @todo Define Event type\n @todo Smaller if-else structures.\n */\nvar loadFile = (utils.loadFile = function (path, asy, success, error) {\n\tvar data, fs;\n\tif (utils.isNode || utils.isMeteorServer) {\n\t\t//*not-for-browser/*\n\t\tfs = require('fs');\n\n\t\t// If path is empty, than read data from stdin (for Node)\n\t\tif (typeof path === 'undefined') {\n\t\t\tvar buff = '';\n\t\t\tprocess.stdin.setEncoding('utf8');\n\t\t\tprocess.stdin.on('readable', function () {\n\t\t\t\tvar chunk = process.stdin.read();\n\t\t\t\tif (chunk !== null) {\n\t\t\t\t\tbuff += chunk.toString();\n\t\t\t\t}\n\t\t\t});\n\t\t\tprocess.stdin.on('end', function () {\n\t\t\t\tsuccess(cutbom(buff));\n\t\t\t});\n\t\t} else {\n\t\t\tif (/^[a-z]+:\\/\\//i.test(path)) {\n\t\t\t\tfetchData(path, x => success(cutbom(x)), error, asy);\n\t\t\t} else {\n\t\t\t\t//If async callthen call async\n\t\t\t\tif (asy) {\n\t\t\t\t\tfs.readFile(path, function (err, data) {\n\t\t\t\t\t\tif (err) {\n\t\t\t\t\t\t\treturn error(err, null);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tsuccess(cutbom(data.toString()));\n\t\t\t\t\t});\n\t\t\t\t} else {\n\t\t\t\t\t// Call sync version\n\t\t\t\t\ttry {\n\t\t\t\t\t\tdata = fs.readFileSync(path);\n\t\t\t\t\t} catch (e) {\n\t\t\t\t\t\treturn error(err, null);\n\t\t\t\t\t}\n\t\t\t\t\tsuccess(cutbom(data.toString()));\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t} else if (utils.isReactNative) {\n\t\t// If ReactNative\n\t\tvar RNFS = require('react-native-fs');\n\t\tRNFS.readFile(path, 'utf8')\n\t\t\t.then(function (contents) {\n\t\t\t\tsuccess(cutbom(contents));\n\t\t\t})\n\t\t\t.catch(function (err) {\n\t\t\t\treturn error(err, null);\n\t\t\t});\n\t\t//*/\n\t} else if (utils.isCordova) {\n\t\t/* If Cordova */\n\t\tutils.global.requestFileSystem(LocalFileSystem.PERSISTENT, 0, function (fileSystem) {\n\t\t\tfileSystem.root.getFile(path, {create: false}, function (fileEntry) {\n\t\t\t\tfileEntry.file(function (file) {\n\t\t\t\t\tvar fileReader = new FileReader();\n\t\t\t\t\tfileReader.onloadend = function (e) {\n\t\t\t\t\t\tsuccess(cutbom(this.result));\n\t\t\t\t\t};\n\t\t\t\t\tfileReader.readAsText(file);\n\t\t\t\t});\n\t\t\t});\n\t\t});\n\n\t\t/** @todo Check eliminated code below */\n\n\t} else {\n\t\t/* For string */\n\t\tif (typeof path === 'string') {\n\t\t\t// For browser read from tag\n\t\t\t/*\n\t\t\t\t SELECT * FROM TXT('#one') -- read data from HTML element with id=\"one\"\n\t\t\t */\n\t\t\tif (path.substr(0, 1) === '#' && typeof document !== 'undefined') {\n\t\t\t\tdata = document.querySelector(path).textContent;\n\t\t\t\tsuccess(data);\n\t\t\t} else {\n\t\t\t\t/*\n\t\t\t\t\t Simply read file from HTTP request, like:\n\t\t\t\t\t SELECT * FROM TXT('http://alasql.org/README.md');\n\t\t\t\t */\n\t\t\t\tfetchData(path, x => success(cutbom(x)), error, asy);\n\t\t\t}\n\t\t} else if (path instanceof Event) {\n\t\t\t/*\n\t\t\t\t For browser read from files input element\n\t\t\t\t \n\t\t\t\t \n\t\t\t */\n\t\t\t/** @type {array} List of files from element */\n\t\t\tvar files = path.target.files;\n\t\t\t/** type {object} */\n\t\t\tvar reader = new FileReader();\n\t\t\t/** type {string} */\n\t\t\tvar name = files[0].name;\n\t\t\treader.onload = function (e) {\n\t\t\t\tvar data = e.target.result;\n\t\t\t\tsuccess(cutbom(data));\n\t\t\t};\n\t\t\treader.readAsText(files[0]);\n\t\t}\n\t}\n});\n\nlet _fetch = typeof fetch !== 'undefined' ? fetch : null;\n//*not-for-browser/*\n_fetch = typeof fetch !== 'undefined' ? fetch : require('cross-fetch');\n//*/\n\nasync function fetchData(path, success, error, async) {\n\tif (async) {\n\t\treturn getData(path, success, error);\n\t}\n\treturn await getData(path, success, error);\n}\n\nfunction getData(path, success, error) {\n\treturn _fetch(path)\n\t\t.then(response => response.arrayBuffer())\n\t\t.then(buf => {\n\t\t\tvar a = new Uint8Array(buf);\n\t\t\tvar b = [...a].map(e => String.fromCharCode(e)).join('');\n\t\t\tsuccess(b);\n\t\t})\n\t\t.catch(e => {\n\t\t\tif (error) return error(e);\n\t\t\tconsole.error(e);\n\t\t\tthrow e;\n\t\t});\n}\n\n/**\n @function Load binary file from anywhere\n @param {string} path File path\n @param {boolean} asy True - async call, false - sync call\n @param {function} success Success function\n @param {function} error Error function\n @return 1 for Async, data - for sync version\n\n @todo merge functionality from loadFile and LoadBinaryFile\n */\n\nvar loadBinaryFile = (utils.loadBinaryFile = function (\n\tpath,\n\trunAsync,\n\tsuccess,\n\terror = x => {\n\t\tthrow x;\n\t}\n) {\n\tvar fs;\n\tif (utils.isNode || utils.isMeteorServer) {\n\t\t//*not-for-browser/*\n\t\tfs = require('fs');\n\n\t\tif (/^[a-z]+:\\/\\//i.test(path)) {\n\t\t\tfetchData(path, success, error, runAsync);\n\t\t} else {\n\t\t\tif (runAsync) {\n\t\t\t\tfs.readFile(path, function (err, data) {\n\t\t\t\t\tif (err) {\n\t\t\t\t\t\treturn error(err);\n\t\t\t\t\t}\n\t\t\t\t\tvar arr = [];\n\t\t\t\t\tfor (var i = 0; i < data.length; ++i) {\n\t\t\t\t\t\tarr[i] = String.fromCharCode(data[i]);\n\t\t\t\t\t}\n\t\t\t\t\tsuccess(arr.join(''));\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\tvar data;\n\t\t\t\ttry {\n\t\t\t\t\tdata = fs.readFileSync(path);\n\t\t\t\t} catch (e) {\n\t\t\t\t\treturn error(e);\n\t\t\t\t}\n\t\t\t\tvar arr = [];\n\t\t\t\tfor (var i = 0; i < data.length; ++i) {\n\t\t\t\t\tarr[i] = String.fromCharCode(data[i]);\n\t\t\t\t}\n\t\t\t\tsuccess(arr.join(''));\n\t\t\t}\n\t\t}\n\t} else if (utils.isReactNative) {\n\t\t// If ReactNative\n\t\t//var RNFS = require('react-native-fs');\n\t\tvar RNFetchBlob = require('react-native-fetch-blob').default;\n\t\tvar dirs = RNFetchBlob.fs.dirs;\n\t\t//should use readStream instead if the file is large\n\t\tRNFetchBlob.fs\n\t\t\t.readFile(path, 'base64')\n\t\t\t.then(function (data) {\n\t\t\t\tsuccess(data);\n\t\t\t})\n\t\t\t.catch(error);\n\t\t//*/\n\t} else {\n\t\tif (typeof path === 'string') {\n\t\t\t// For browser\n\t\t\tvar xhr = new XMLHttpRequest();\n\t\t\txhr.open('GET', path, runAsync); // Async\n\t\t\txhr.responseType = 'arraybuffer';\n\t\t\txhr.onload = function () {\n\t\t\t\tvar data = new Uint8Array(xhr.response);\n\t\t\t\tvar arr = [];\n\t\t\t\tfor (var i = 0; i < data.length; ++i) {\n\t\t\t\t\tarr[i] = String.fromCharCode(data[i]);\n\t\t\t\t}\n\t\t\t\tsuccess(arr.join(''));\n\t\t\t};\n\t\t\txhr.onerror = error;\n\t\t\txhr.send();\n\t\t} else if (path instanceof Event) {\n\n\t\t\tvar files = path.target.files;\n\t\t\tvar reader = new FileReader();\n\t\t\tvar name = files[0].name;\n\t\t\treader.onload = function (e) {\n\t\t\t\tvar data = e.target.result;\n\t\t\t\tsuccess(data);\n\t\t\t};\n\t\t\treader.onerror = error;\n\t\t\treader.readAsArrayBuffer(files[0]);\n\t\t} else if (path instanceof Blob) {\n\t\t\tsuccess(path);\n\t\t}\n\t}\n});\n\nvar removeFile = (utils.removeFile = function (path, cb) {\n\tif (utils.isNode) {\n\t\t//*not-for-browser/*\n\t\tvar fs = require('fs');\n\t\tfs.remove(path, cb);\n\t} else if (utils.isCordova) {\n\t\tutils.global.requestFileSystem(LocalFileSystem.PERSISTENT, 0, function (fileSystem) {\n\t\t\tfileSystem.root.getFile(\n\t\t\t\tpath,\n\t\t\t\t{create: false},\n\t\t\t\tfunction (fileEntry) {\n\t\t\t\t\tfileEntry.remove(cb);\n\t\t\t\t\tcb && cb(); // jshint ignore:line\n\t\t\t\t},\n\t\t\t\tfunction () {\n\t\t\t\t\tcb && cb(); // jshint ignore:line\n\t\t\t\t}\n\t\t\t);\n\t\t});\n\t} else if (utils.isReactNative) {\n\t\t// If ReactNative\n\t\tvar RNFS = require('react-native-fs');\n\t\tRNFS.unlink(path)\n\t\t\t.then(function () {\n\t\t\t\tcb && cb();\n\t\t\t})\n\t\t\t.catch(function (err) {\n\t\t\t\tthrow err;\n\t\t\t});\n\t\t//*/\n\t} else {\n\t\tthrow new Error('You can remove files only in Node.js and Apache Cordova');\n\t}\n});\n\n// Todo: check if it makes sense to support cordova and Meteor server\nvar deleteFile = (utils.deleteFile = function (path, cb) {\n\t//*not-for-browser/*\n\tif (utils.isNode) {\n\t\tvar fs = require('fs');\n\t\tfs.unlink(path, cb);\n\t} else if (utils.isReactNative) {\n\t\t// If ReactNative\n\t\tvar RNFS = require('react-native-fs');\n\t\tRNFS.unlink(path)\n\t\t\t.then(function () {\n\t\t\t\tcb && cb();\n\t\t\t})\n\t\t\t.catch(function (err) {\n\t\t\t\tthrow err;\n\t\t\t});\n\t}\n\t//*/\n});\n\nutils.autoExtFilename = function (filename, ext, config) {\n\tconfig = config || {};\n\tif (\n\t\ttypeof filename !== 'string' ||\n\t\tfilename.match(/^[A-z]+:\\/\\/|\\n|\\..{2,4}$/) ||\n\t\tconfig.autoExt === 0 ||\n\t\tconfig.autoExt === false\n\t) {\n\t\treturn filename;\n\t}\n\treturn filename + '.' + ext;\n};\n\nvar fileExists = (utils.fileExists = function (path, cb) {\n\tif (utils.isNode) {\n\t\t//*not-for-browser/*\n\t\tvar fs = require('fs');\n\t\tfs.exists(path, cb);\n\t} else if (utils.isCordova) {\n\t\tutils.global.requestFileSystem(LocalFileSystem.PERSISTENT, 0, function (fileSystem) {\n\t\t\tfileSystem.root.getFile(\n\t\t\t\tpath,\n\t\t\t\t{create: false},\n\t\t\t\tfunction (fileEntry) {\n\t\t\t\t\tcb(true);\n\t\t\t\t},\n\t\t\t\tfunction () {\n\t\t\t\t\tcb(false);\n\t\t\t\t}\n\t\t\t);\n\t\t});\n\t} else if (utils.isReactNative) {\n\t\t// If ReactNative\n\t\tvar RNFS = require('react-native-fs');\n\t\tRNFS.exists(path)\n\t\t\t.then(function (yes) {\n\t\t\t\tcb && cb(yes);\n\t\t\t})\n\t\t\t.catch(function (err) {\n\t\t\t\tthrow err;\n\t\t\t});\n\t\t//*/\n\t} else {\n\t\t// TODO Cordova, etc.\n\t\tthrow new Error('You can use exists() only in Node.js or Apach Cordova');\n\t}\n});\n\n/**\n Save text file from anywhere\n @param {string} path File path\n @param {array} data Data object\n @param {function} cb Callback\n @param {object=} opts\n */\n\nvar saveFile = (utils.saveFile = function (path, data, cb, opts) {\n\tvar res = 1;\n\tif (path === undefined) {\n\t\t//\n\t\t// Return data into result variable\n\t\t// like: alasql('SELECT * INTO TXT() FROM ?',[data]);\n\t\t//\n\t\tres = data;\n\t\tif (cb) {\n\t\t\tres = cb(res);\n\t\t}\n\t} else {\n\t\tif (utils.isNode) {\n\t\t\t//*not-for-browser/*\n\t\t\tvar fs = require('fs');\n\t\t\tdata = fs.writeFileSync(path, data);\n\t\t\tif (cb) {\n\t\t\t\tres = cb(res);\n\t\t\t}\n\t\t} else if (utils.isReactNative) {\n\t\t\tvar RNFS = require('react-native-fs');\n\t\t\tRNFS.writeFile(path, data)\n\t\t\t\t.then(function (success) {\n\t\t\t\t\t//, 'utf8'\n\t\t\t\t\tif (cb) res = cb(res);\n\t\t\t\t})\n\t\t\t\t.catch(function (err) {\n\t\t\t\t\tconsole.error(err.message);\n\t\t\t\t});\n\t\t} else if (utils.isCordova) {\n\t\t\tutils.global.requestFileSystem(LocalFileSystem.PERSISTENT, 0, function (fileSystem) {\n\t\t\t\t// alasql.utils.removeFile(path,function(){\n\t\t\t\tfileSystem.root.getFile(path, {create: true}, function (fileEntry) {\n\t\t\t\t\tfileEntry.createWriter(function (fileWriter) {\n\t\t\t\t\t\tfileWriter.onwriteend = function () {\n\t\t\t\t\t\t\tif (cb) {\n\t\t\t\t\t\t\t\tres = cb(res);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t};\n\t\t\t\t\t\tfileWriter.write(data);\n\t\t\t\t\t});\n\t\t\t\t});\n\t\t\t});\n\t\t\t//*/\n\n\t\t\t// });\n\t\t\t// });\n\t\t\t// });\n\t\t} else {\n\t\t\tvar opt = {\n\t\t\t\tdisableAutoBom: false,\n\t\t\t};\n\t\t\talasql.utils.extend(opt, opts);\n\t\t\tvar blob = new Blob([data], {type: 'text/plain;charset=utf-8'});\n\t\t\tsaveAs(blob, path, opt.disableAutoBom);\n\t\t\tif (cb) {\n\t\t\t\tres = cb(res);\n\t\t\t}\n\t\t}\n\t}\n\n\treturn res;\n});\n\n/**\n @function Hash a string to signed integer\n @param {string} source string\n @return {integer} hash number\n */\n\n// FNV-1a inspired hashing\nvar hash = (utils.hash = function (str) {\n\tvar hash = 0x811c9dc5,\n\t\ti = str.length;\n\twhile (i) {\n\t\thash ^= str.charCodeAt(--i);\n\t\thash += (hash << 1) + (hash << 4) + (hash << 7) + (hash << 8) + (hash << 24);\n\t}\n\treturn hash;\n});\n\n/**\n Union arrays\n @function\n @param {array} a\n @param {array} b\n @return {array}\n */\nvar arrayUnion = (utils.arrayUnion = function (a, b) {\n\tvar r = b.slice(0);\n\ta.forEach(function (i) {\n\t\tif (r.indexOf(i) < 0) {\n\t\t\tr.push(i);\n\t\t}\n\t});\n\treturn r;\n});\n\n/**\n Array Difference\n */\nvar arrayDiff = (utils.arrayDiff = function (a, b) {\n\treturn a.filter(function (i) {\n\t\treturn b.indexOf(i) < 0;\n\t});\n});\n\n/**\n Arrays deep intersect (with records)\n */\nvar arrayIntersect = (utils.arrayIntersect = function (a, b) {\n\tvar r = [];\n\ta.forEach(function (ai) {\n\t\tvar found = false;\n\n\t\tb.forEach(function (bi) {\n\t\t\tfound = found || ai === bi;\n\t\t});\n\n\t\tif (found) {\n\t\t\tr.push(ai);\n\t\t}\n\t});\n\treturn r;\n});\n\n/**\n Arrays deep union (with records)\n */\nvar arrayUnionDeep = (utils.arrayUnionDeep = function (a, b) {\n\tvar r = b.slice(0);\n\ta.forEach(function (ai) {\n\t\tvar found = false;\n\n\t\tr.forEach(function (ri) {\n\t\t\t// found = found || equalDeep(ai, ri, true);\n\t\t\tfound = found || deepEqual(ai, ri);\n\t\t});\n\n\t\tif (!found) {\n\t\t\tr.push(ai);\n\t\t}\n\t});\n\treturn r;\n});\n\n/**\n Arrays deep union (with records)\n */\nvar arrayExceptDeep = (utils.arrayExceptDeep = function (a, b) {\n\tvar r = [];\n\ta.forEach(function (ai) {\n\t\tvar found = false;\n\n\t\tb.forEach(function (bi) {\n\t\t\t// found = found || equalDeep(ai, bi, true);\n\t\t\tfound = found || deepEqual(ai, bi);\n\t\t});\n\n\t\tif (!found) {\n\t\t\tr.push(ai);\n\t\t}\n\t});\n\treturn r;\n});\n\n/**\n Arrays deep intersect (with records)\n */\nvar arrayIntersectDeep = (utils.arrayIntersectDeep = function (a, b) {\n\tvar r = [];\n\ta.forEach(function (ai) {\n\t\tvar found = false;\n\n\t\tb.forEach(function (bi) {\n\t\t\t// found = found || equalDeep(ai, bi, true);\n\t\t\tfound = found || deepEqual(ai, bi, true);\n\t\t});\n\n\t\tif (found) {\n\t\t\tr.push(ai);\n\t\t}\n\t});\n\treturn r;\n});\n\n/**\n Deep clone objects\n */\nvar cloneDeep = (utils.cloneDeep = function cloneDeep(obj) {\n\tif (null === obj || typeof obj !== 'object') {\n\t\treturn obj;\n\t}\n\n\tif (obj instanceof Date) {\n\t\treturn new Date(obj);\n\t}\n\n\tif (obj instanceof String) {\n\t\treturn obj.toString();\n\t}\n\n\tif (obj instanceof Number) {\n\t\treturn +obj;\n\t}\n\n\tvar temp = new obj.constructor(); // changed\n\n\tfor (var key in obj) {\n\t\tif (obj.hasOwnProperty(key)) {\n\t\t\ttemp[key] = cloneDeep(obj[key]);\n\t\t}\n\t}\n\treturn temp;\n});\n\n/**\n Check equality of objects\n */\n\n/**\n Compare two objects in deep\n */\nvar deepEqual = (utils.deepEqual = function (x, y) {\n\tif (x === y) {\n\t\treturn true;\n\t}\n\n\tif (typeof x === 'object' && null !== x && typeof y === 'object' && null !== y) {\n\t\tif (Object.keys(x).length !== Object.keys(y).length) {\n\t\t\treturn false;\n\t\t}\n\t\tfor (var prop in x) {\n\t\t\tif (!deepEqual(x[prop], y[prop])) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t}\n\t\treturn true;\n\t}\n\n\treturn false;\n});\n/**\n Array with distinct records\n @param {array} data\n @return {array}\n */\nvar distinctArray = (utils.distinctArray = function (data) {\n\tvar uniq = {};\n\t// TODO: Speedup, because Object.keys is slow\n\tfor (var i = 0, ilen = data.length; i < ilen; i++) {\n\t\tvar uix;\n\t\tif (typeof data[i] === 'object') {\n\t\t\tuix = Object.keys(data[i])\n\t\t\t\t.sort()\n\t\t\t\t.map(function (k) {\n\t\t\t\t\treturn k + '`' + data[i][k];\n\t\t\t\t})\n\t\t\t\t.join('`');\n\t\t} else {\n\t\t\tuix = data[i];\n\t\t}\n\t\tuniq[uix] = data[i];\n\t}\n\tvar res = [];\n\tfor (var key in uniq) {\n\t\tres.push(uniq[key]);\n\t}\n\treturn res;\n});\n\n/**\n Extend object a with properties of b\n @function\n @param {object} a\n @param {object} b\n @return {object}\n */\nvar extend = (utils.extend = function extend(a, b) {\n\ta = a || {};\n\tfor (var key in b) {\n\t\tif (b.hasOwnProperty(key)) {\n\t\t\ta[key] = b[key];\n\t\t}\n\t}\n\treturn a;\n});\n\n/**\n * Extracts the primitive data\n */\nvar getValueOf = (utils.getValueOf = function (val) {\n\treturn typeof val === 'object' && (val instanceof String || val instanceof Number)\n\t\t? val.valueOf()\n\t\t: val;\n});\n\n/**\n Flat array by first row\n */\nvar flatArray = (utils.flatArray = function (a) {\n\n\tif (!a || 0 === a.length) {\n\t\treturn [];\n\t}\n\n\t// For recordsets\n\tif (typeof a === 'object' && a instanceof alasql.Recordset) {\n\t\treturn a.data.map(function (ai) {\n\t\t\treturn getValueOf(ai[a.columns[0].columnid]);\n\t\t});\n\t}\n\t// Else for other arrays\n\tvar key = Object.keys(a[0])[0];\n\tif (key === undefined) {\n\t\treturn [];\n\t}\n\treturn a.map(function (ai) {\n\t\treturn ai[key];\n\t});\n});\n\n/**\n Convert array of objects to array of arrays\n */\nvar arrayOfArrays = (utils.arrayOfArrays = function (a) {\n\treturn a.map(function (aa) {\n\t\tvar ar = [];\n\t\tfor (var key in aa) {\n\t\t\tar.push(aa[key]);\n\t\t}\n\t\treturn ar;\n\t});\n});\n\nif (!Array.isArray) {\n\tArray.isArray = function (arg) {\n\t\treturn Object.prototype.toString.call(arg) === '[object Array]';\n\t};\n}\n\n/**\n Excel:convert number to Excel column, like 1 => 'A'\n @param {integer} i Column number, starting with 0\n @return {string} Column name, starting with 'A'\n */\n\nvar xlsnc = (utils.xlsnc = function (i) {\n\tvar first = '';\n\tif (i > 701) {\n\t\tlet x = (((i - 26) / (26 * 26)) | 0) - 1;\n\t\tfirst = String.fromCharCode(65 + (x % 26));\n\t\ti = i % (26 * 26);\n\t}\n\tvar addr = String.fromCharCode(65 + (i % 26));\n\tif (i >= 26) {\n\t\ti = ((i / 26) | 0) - 1;\n\t\taddr = String.fromCharCode(65 + (i % 26)) + addr;\n\t\tif (i > 26) {\n\t\t\ti = ((i / 26) | 0) - 1;\n\t\t\taddr = String.fromCharCode(65 + (i % 26)) + addr;\n\t\t}\n\t}\n\treturn first + addr;\n});\n\n/**\n Excel:conver Excel column name to number\n @param {string} s Column number, like 'A' or 'BE'\n @return {string} Column name, starting with 0\n */\nvar xlscn = (utils.xlscn = function (s) {\n\tvar n = s.charCodeAt(0) - 65;\n\tif (s.length > 1) {\n\t\tn = (n + 1) * 26 + s.charCodeAt(1) - 65;\n\n\t\tif (s.length > 2) {\n\t\t\tn = (n + 1) * 26 + s.charCodeAt(2) - 65;\n\t\t}\n\t}\n\treturn n;\n});\n\nvar domEmptyChildren = (utils.domEmptyChildren = function (container) {\n\tvar len = container.childNodes.length;\n\twhile (len--) {\n\t\tcontainer.removeChild(container.lastChild);\n\t}\n});\n\n/**\n SQL LIKE emulation\n @parameter {string} pattern Search pattern\n @parameter {string} value Searched value\n @parameter {string} escape Escape character (optional)\n @return {boolean} If value LIKE pattern ESCAPE escape\n */\nvar patternCache = {};\nvar like = (utils.like = function (pattern, value, escape) {\n\tif (!patternCache[pattern]) {\n\t\t// Verify escape character\n\t\tif (!escape) escape = '';\n\n\t\tvar i = 0;\n\t\tvar s = '^';\n\n\t\twhile (i < pattern.length) {\n\t\t\tvar c = pattern[i],\n\t\t\t\tc1 = '';\n\t\t\tif (i < pattern.length - 1) c1 = pattern[i + 1];\n\n\t\t\tif (c === escape) {\n\t\t\t\ts += '\\\\' + c1;\n\t\t\t\ti++;\n\t\t\t} else if (c === '[' && c1 === '^') {\n\t\t\t\ts += '[^';\n\t\t\t\ti++;\n\t\t\t} else if (c === '[' || c === ']') {\n\t\t\t\ts += c;\n\t\t\t} else if (c === '%') {\n\t\t\t\ts += '[\\\\s\\\\S]*';\n\t\t\t} else if (c === '_') {\n\t\t\t\ts += '.';\n\t\t\t} else if ('/.*+?|(){}'.indexOf(c) > -1) {\n\t\t\t\ts += '\\\\' + c;\n\t\t\t} else {\n\t\t\t\ts += c;\n\t\t\t}\n\t\t\ti++;\n\t\t}\n\n\t\ts += '$';\n\t\t// if(value == undefined) return false;\n\n\t\tpatternCache[pattern] = RegExp(s, 'i');\n\t}\n\treturn ('' + (value ?? '')).search(patternCache[pattern]) > -1;\n});\n\nutils.glob = function (value, pattern) {\n\tvar i = 0;\n\tvar s = '^';\n\n\twhile (i < pattern.length) {\n\t\tvar c = pattern[i],\n\t\t\tc1 = '';\n\t\tif (i < pattern.length - 1) c1 = pattern[i + 1];\n\n\t\tif (c === '[' && c1 === '^') {\n\t\t\ts += '[^';\n\t\t\ti++;\n\t\t} else if (c === '[' || c === ']') {\n\t\t\ts += c;\n\t\t} else if (c === '*') {\n\t\t\ts += '.*';\n\t\t} else if (c === '?') {\n\t\t\ts += '.';\n\t\t} else if ('/.*+?|(){}'.indexOf(c) > -1) {\n\t\t\ts += '\\\\' + c;\n\t\t} else {\n\t\t\ts += c;\n\t\t}\n\t\ti++;\n\t}\n\n\ts += '$';\n\treturn ('' + (value || '')).toUpperCase().search(RegExp(s.toUpperCase())) > -1;\n};\n\n/**\n Get path of alasql.js\n @todo Rewrite and simplify the code. Review, is this function is required separately\n */\nutils.findAlaSQLPath = function () {\n\t/** type {string} Path to alasql library and plugins */\n\n\tif (utils.isWebWorker) {\n\t\treturn '';\n\t\t/** @todo Check how to get path in worker */\n\t} else if (utils.isMeteorClient) {\n\t\treturn '/packages/dist/';\n\t} else if (utils.isMeteorServer) {\n\t\treturn 'assets/packages/dist/';\n\t} else if (utils.isNode) {\n\t\treturn __dirname;\n\t} else if (utils.isBrowser) {\n\t\tvar sc = document.getElementsByTagName('script');\n\n\t\tfor (var i = 0; i < sc.length; i++) {\n\t\t\tif (sc[i].src.substr(-16).toLowerCase() === 'alasql-worker.js') {\n\t\t\t\treturn sc[i].src.substr(0, sc[i].src.length - 16);\n\t\t\t} else if (sc[i].src.substr(-20).toLowerCase() === 'alasql-worker.min.js') {\n\t\t\t\treturn sc[i].src.substr(0, sc[i].src.length - 20);\n\t\t\t} else if (sc[i].src.substr(-9).toLowerCase() === 'alasql.js') {\n\t\t\t\treturn sc[i].src.substr(0, sc[i].src.length - 9);\n\t\t\t} else if (sc[i].src.substr(-13).toLowerCase() === 'alasql.min.js') {\n\t\t\t\treturn sc[i].src.substr(0, sc[i].src.length - 13);\n\t\t\t}\n\t\t}\n\t}\n\treturn '';\n};\n\nvar getXLSX = function () {\n\tvar XLSX = alasql.private.externalXlsxLib || utils.global.XLSX || null;\n\n\tif (XLSX) {\n\t\treturn XLSX;\n\t}\n\n\tif (utils.isNode || utils.isBrowserify || utils.isMeteorServer) {\n\t\t//*not-for-browser/*\n\t\tXLSX = require('../modules/xlsx/xlsx') || null;\n\t\talasql.private.externalXlsxLib = XLSX;\n\t\t//*/\n\t}\n\n\tif (!XLSX) {\n\t\tthrow new Error('Please include the xlsx.js library');\n\t}\n\n\treturn XLSX;\n};\n\n// set AlaSQl path\nalasql.path = alasql.utils.findAlaSQLPath();\n/**\n \tStrip all comments.\n \t@function\n \t@param {string} str\n \t@return {string}\n \tBased om the https://github.com/lehni/uncomment.js/blob/master/uncomment.js\n \tI just replaced JavaScript's '//' to SQL's '--' and remove other stuff\n\n \t@todo Fixed [aaa/*bbb] for column names\n \t@todo Bug if -- comments in the last line\n\t@todo Check if it possible to model it with Jison parser\n\t@todo Remove unused code\n */\n\n/* global alasql */\n\nalasql.utils.uncomment = function (str) {\n\t// Add some padding so we can always look ahead and behind by two chars\n\tstr = ('__' + str + '__').split('');\n\tvar quote = false,\n\t\tquoteSign,\n\t\t// regularExpression = false,\n\t\t// characterClass = false,\n\t\tblockComment = false,\n\t\tlineComment = false;\n\t// preserveComment = false;\n\n\tfor (var i = 0, l = str.length; i < l; i++) {\n\n\t\t// When checking for quote escaping, we also need to check that the\n\t\t// escape sign itself is not escaped, as otherwise '\\\\' would cause\n\t\t// the wrong impression of an unclosed string:\n\t\tvar unescaped = str[i - 1] !== '\\\\' || str[i - 2] === '\\\\';\n\n\t\tif (quote) {\n\t\t\tif (str[i] === quoteSign && unescaped) {\n\t\t\t\tquote = false;\n\t\t\t}\n\n\t\t} else if (blockComment) {\n\t\t\t// Is the block comment closing?\n\t\t\tif (str[i] === '*' && str[i + 1] === '/') {\n\t\t\t\t// if (!preserveComment)\n\t\t\t\tstr[i] = str[i + 1] = '';\n\t\t\t\tblockComment /* = preserveComment*/ = false;\n\t\t\t\t// Increase by 1 to skip closing '/', as it would be mistaken\n\t\t\t\t// for a regexp otherwise\n\t\t\t\ti++;\n\t\t\t} else {\n\t\t\t\t//if (!preserveComment) {\n\t\t\t\tstr[i] = '';\n\t\t\t}\n\t\t} else if (lineComment) {\n\t\t\t// One-line comments end with the line-break\n\t\t\tif (str[i + 1] === '\\n' || str[i + 1] === '\\r') {\n\t\t\t\tlineComment = false;\n\t\t\t}\n\t\t\tstr[i] = '';\n\t\t} else {\n\t\t\tif (str[i] === '\"' || str[i] === \"'\") {\n\t\t\t\tquote = true;\n\t\t\t\tquoteSign = str[i];\n\t\t\t} else if (str[i] === '[' && str[i - 1] !== '@') {\n\t\t\t\tquote = true;\n\t\t\t\tquoteSign = ']';\n\t\t\t\t// } else if (str[i] === '-' && str[i + 1] === '-') {\n\t\t\t\t// \tstr[i] = '';\n\t\t\t\t// \tlineComment = true;\n\t\t\t} else if (str[i] === '/' && str[i + 1] === '*') {\n\t\t\t\t// Do not filter out conditional comments /*@ ... */\n\t\t\t\t// and comments marked as protected /*! ... */\n\t\t\t\t//\t\t\t\t\tpreserveComment = /[@!]/.test(str[i + 2]);\n\t\t\t\t//\t\t\t\t\tif (!preserveComment)\n\t\t\t\tstr[i] = '';\n\t\t\t\tblockComment = true;\n\n\t\t\t}\n\t\t}\n\t}\n\t// Remove padding again.\n\tstr = str.join('').slice(2, -2);\n\n\treturn str;\n};\n/**\n\tDatabase class for Alasql.js\n*/\n\n// Initial parameters\n\n/**\n\tJison parser\n*/\nalasql.parser = alasqlparser;\n\nalasql.parser.parseError = function (str, hash) {\n\tthrow new Error('Have you used a reserved keyword without `escaping` it?\\n' + str);\n};\n\n/**\n\t Jison parser\n\t @param {string} sql SQL statement\n\t @return {object} AST (Abstract Syntax Tree)\n\n\t @todo Create class AST\n\t @todo Add other parsers\n\n\t @example\n\t alasql.parse = function(sql) {\n\t\t// My own parser here\n\t }\n */\nalasql.parse = function (sql) {\n\treturn alasqlparser.parse(alasql.utils.uncomment(sql));\n};\n\n/**\n\t List of engines of external databases\n\t @type {object}\n\t @todo Create collection type\n */\nalasql.engines = {};\n\n/**\n\t List of databases\n\t @type {object}\n */\nalasql.databases = {};\n\n/**\n\tNumber of databases\n\t@type {number}\n*/\nalasql.databasenum = 0;\n\n/**\n\t Alasql options object\n */\nalasql.options = {\n\t/** Log or throw error */\n\terrorlog: false,\n\n\t/** Use valueof in orderfn */\n\tvalueof: true,\n\n\t/** DROP database in any case */\n\tdropifnotexists: false,\n\n\t/** How to handle DATE and DATETIME types */\n\tdatetimeformat: 'sql',\n\n\t/** Table and column names are case sensitive and converted to lower-case */\n\tcasesensitive: true,\n\n\t/** target for log. Values: 'console', 'output', 'id' of html tag */\n\tlogtarget: 'output',\n\n\t/** Print SQL at log */\n\tlogprompt: true,\n\n\t/** Callback for async queries progress */\n\tprogress: false,\n\n\t/**\n\t * Default modifier\n\t * values: RECORDSET, VALUE, ROW, COLUMN, MATRIX, TEXTSTRING, INDEX\n\t * @type {'RECORDSET'|'VALUE'|'ROW'|'COLUMN'|'MATRIX'|'TEXTSTRING'|'INDEX'|undefined}\n\t */\n\tmodifier: undefined,\n\n\t/** How many rows to lookup to define columns */\n\tcolumnlookup: 10,\n\n\t/** Create vertex if not found */\n\tautovertex: true,\n\n\t/** Use dbo as current database (for partial T-SQL comaptibility) */\n\tusedbo: true,\n\n\t/** AUTOCOMMIT ON | OFF */\n\tautocommit: true,\n\n\t/** Use cache */\n\tcache: true,\n\n\t/** Compatibility flags */\n\ttsql: true,\n\n\tmysql: true,\n\n\tpostgres: true,\n\n\toracle: true,\n\n\tsqlite: true,\n\n\torientdb: true,\n\n\t/** for SET NOCOUNT OFF */\n\tnocount: false,\n\n\t/** Check for NaN and convert it to undefined */\n\tnan: false,\n\n\texcel: {cellDates: true},\n\n\t/** Option for SELECT * FROM a,b */\n\tjoinstar: 'overwrite',\n\n\tloopbreak: 100000,\n\n\t/** Whether GETDATE() and NOW() return dates as string. If false, then a Date object is returned */\n\tdateAsString: true,\n};\n\n//alasql.options.worker = false;\n\n// Variables\nalasql.vars = {};\n\nalasql.declares = {};\n\nalasql.prompthistory = [];\n\nalasql.plugins = {}; // If plugin already loaded\n\nalasql.from = {}; // FROM functions\n\nalasql.into = {}; // INTO functions\n\nalasql.fn = {};\n\nalasql.aggr = {};\n\nalasql.busy = 0;\n\n// Cache\nalasql.MAXSQLCACHESIZE = 10000;\nalasql.DEFAULTDATABASEID = 'alasql';\n\n/* WebWorker */\nalasql.lastid = 0;\n\nalasql.buffer = {};\n\nalasql.private = {\n\texternalXlsxLib: null,\n};\n\nalasql.setXLSX = function (XLSX) {\n\talasql.private.externalXlsxLib = XLSX;\n};\n\n/**\n Select current database\n @param {string} databaseid Selected database identificator\n */\nalasql.use = function (databaseid) {\n\tif (!databaseid) {\n\t\tdatabaseid = alasql.DEFAULTDATABASEID;\n\t}\n\tif (alasql.useid === databaseid) {\n\t\treturn;\n\t}\n\tif (alasql.databases[databaseid] !== undefined) {\n\t\talasql.useid = databaseid;\n\t\tvar db = alasql.databases[alasql.useid];\n\t\talasql.tables = db.tables;\n\t\t//\talasql.fn = db.fn;\n\t\tdb.resetSqlCache();\n\t\tif (alasql.options.usedbo) {\n\t\t\talasql.databases.dbo = db; // Operator???\n\t\t}\n\t} else {\n\t\tthrow Error('Database does not exist: ' + databaseid);\n\t}\n};\n\nalasql.autoval = function (tablename, colname, getNext, databaseid) {\n\tvar db = databaseid ? alasql.databases[databaseid] : alasql.databases[alasql.useid];\n\n\tif (!db.tables[tablename]) {\n\t\tthrow new Error('Tablename not found: ' + tablename);\n\t}\n\n\tif (!db.tables[tablename].identities[colname]) {\n\t\tthrow new Error('Colname not found: ' + colname);\n\t}\n\n\tif (getNext) {\n\t\treturn db.tables[tablename].identities[colname].value || null;\n\t}\n\n\treturn (\n\t\tdb.tables[tablename].identities[colname].value -\n\t\t\tdb.tables[tablename].identities[colname].step || null\n\t);\n};\n\n/**\n Run single SQL statement on current database\n */\nalasql.exec = function (sql, params, cb, scope) {\n\t// Avoid setting params if not needed even with callback\n\tif (typeof params === 'function') {\n\t\tscope = cb;\n\t\tcb = params;\n\t\tparams = {};\n\t}\n\n\tdelete alasql.error;\n\tparams = params || {};\n\tif (alasql.options.errorlog) {\n\t\ttry {\n\t\t\treturn alasql.dexec(alasql.useid, sql, params, cb, scope);\n\t\t} catch (err) {\n\t\t\talasql.error = err;\n\t\t\tif (cb) {\n\t\t\t\tcb(null, alasql.error);\n\t\t\t}\n\t\t}\n\t} else {\n\t\treturn alasql.dexec(alasql.useid, sql, params, cb, scope);\n\t}\n};\n\n/**\n Run SQL statement on specific database\n */\nalasql.dexec = function (databaseid, sql, params, cb, scope) {\n\tvar db = alasql.databases[databaseid];\n\t//\tif(db.databaseid != databaseid) console.trace('got!');\n\n\tvar hh = hash(sql);\n\n\t// Create hash\n\tif (alasql.options.cache) {\n\t\tvar statement = db.sqlCache[hh];\n\t\t// If database structure was not changed since last time return cache\n\t\tif (statement && db.dbversion === statement.dbversion) {\n\t\t\treturn statement(params, cb);\n\t\t}\n\t}\n\n\tvar ast = db.astCache[hh];\n\tif (alasql.options.cache && !ast) {\n\t\t// Create AST cache\n\t\tast = alasql.parse(sql);\n\t\tif (ast) {\n\t\t\t// add to AST cache\n\t\t\tdb.astCache[hh] = ast;\n\t\t}\n\t} else {\n\t\tast = alasql.parse(sql);\n\t}\n\tif (!ast.statements) {\n\t\treturn;\n\t}\n\tif (0 === ast.statements.length) {\n\t\treturn 0;\n\t} else if (1 === ast.statements.length) {\n\t\tif (ast.statements[0].compile) {\n\t\t\t// Compile and Execute\n\t\t\tvar statement = ast.statements[0].compile(databaseid, params);\n\t\t\tif (!statement) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tstatement.sql = sql;\n\t\t\tstatement.dbversion = db.dbversion;\n\n\t\t\tif (alasql.options.cache) {\n\t\t\t\t// Secure sqlCache size\n\t\t\t\tif (db.sqlCacheSize > alasql.MAXSQLCACHESIZE) {\n\t\t\t\t\tdb.resetSqlCache();\n\t\t\t\t}\n\t\t\t\tdb.sqlCacheSize++;\n\t\t\t\tdb.sqlCache[hh] = statement;\n\t\t\t}\n\t\t\tvar res = (alasql.res = statement(params, cb, scope));\n\t\t\treturn res;\n\t\t} else {\n\n\t\t\talasql.precompile(ast.statements[0], alasql.useid, params);\n\t\t\tvar res = (alasql.res = ast.statements[0].execute(databaseid, params, cb, scope));\n\t\t\treturn res;\n\t\t}\n\t} else {\n\t\t// Multiple statements\n\t\tif (cb) {\n\t\t\talasql.adrun(databaseid, ast, params, cb, scope);\n\t\t} else {\n\t\t\treturn alasql.drun(databaseid, ast, params, cb, scope);\n\t\t}\n\t}\n};\n\n/**\n Run multiple statements and return array of results sync\n */\nalasql.drun = function (databaseid, ast, params, cb, scope) {\n\tvar useid = alasql.useid;\n\n\tif (useid !== databaseid) {\n\t\talasql.use(databaseid);\n\t}\n\n\tvar res = [];\n\tfor (var i = 0, ilen = ast.statements.length; i < ilen; i++) {\n\t\tif (ast.statements[i]) {\n\t\t\tif (ast.statements[i].compile) {\n\t\t\t\tvar statement = ast.statements[i].compile(alasql.useid);\n\t\t\t\tres.push((alasql.res = statement(params, null, scope)));\n\t\t\t} else {\n\t\t\t\talasql.precompile(ast.statements[i], alasql.useid, params);\n\t\t\t\tres.push((alasql.res = ast.statements[i].execute(alasql.useid, params)));\n\t\t\t}\n\t\t}\n\t}\n\tif (useid !== databaseid) {\n\t\talasql.use(useid);\n\t}\n\n\tif (cb) {\n\t\tcb(res);\n\t}\n\n\talasql.res = res;\n\n\treturn res;\n};\n\n/**\n Run multiple statements and return array of results async\n */\nalasql.adrun = function (databaseid, ast, params, cb, scope) {\n\tvar idx = 0;\n\tvar noqueries = ast.statements.length;\n\tif (alasql.options.progress !== false) {\n\t\talasql.options.progress(noqueries, idx++);\n\t}\n\n\t//\talasql.busy++;\n\tvar useid = alasql.useid;\n\tif (useid !== databaseid) {\n\t\talasql.use(databaseid);\n\t}\n\tvar res = [];\n\n\tfunction adrunone(data) {\n\t\tif (data !== undefined) {\n\t\t\tres.push(data);\n\t\t}\n\t\tvar astatement = ast.statements.shift();\n\t\tif (!astatement) {\n\t\t\tif (useid !== databaseid) {\n\t\t\t\talasql.use(useid);\n\t\t\t}\n\t\t\tcb(res);\n\t\t\t//\t\t\talasql.busy--;\n\t\t\t//\t\t\tif(alasql.busy<0) alasql.busy = 0;\n\t\t} else {\n\t\t\tif (astatement.compile) {\n\t\t\t\tvar statement = astatement.compile(alasql.useid);\n\t\t\t\tstatement(params, adrunone, scope);\n\t\t\t\tif (alasql.options.progress !== false) {\n\t\t\t\t\talasql.options.progress(noqueries, idx++);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\talasql.precompile(ast.statements[0], alasql.useid, params);\n\t\t\t\tastatement.execute(alasql.useid, params, adrunone);\n\t\t\t\tif (alasql.options.progress !== false) {\n\t\t\t\t\talasql.options.progress(noqueries, idx++);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\tadrunone(); /** @todo Check, why data is empty here */\n};\n\n/**\n Compile statement to JavaScript function\n @param {string} sql SQL statement\n @param {string} databaseid Database identificator\n @return {functions} Compiled statement functions\n*/\nalasql.compile = function (sql, databaseid) {\n\tdatabaseid = databaseid || alasql.useid;\n\n\tvar ast = alasql.parse(sql); // Create AST\n\n\tif (1 === ast.statements.length) {\n\t\tvar statement = ast.statements[0].compile(databaseid);\n\t\tstatement.promise = function (params) {\n\t\t\treturn new Promise(function (resolve, reject) {\n\t\t\t\tstatement(params, function (data, err) {\n\t\t\t\t\tif (err) {\n\t\t\t\t\t\treject(err);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tresolve(data);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t});\n\t\t};\n\n\t\treturn statement;\n\n\t} else {\n\t\tthrow new Error('Cannot compile, because number of statements in SQL is not equal to 1');\n\t}\n};\n\n//\n// Promises for AlaSQL\n//\n\nif (!utils.global.Promise) {\n\tutils.global.Promise = Promise;\n}\n\nvar promiseExec = function (sql, params, counterStep, counterTotal) {\n\treturn new utils.global.Promise(function (resolve, reject) {\n\t\talasql(sql, params, function (data, err) {\n\t\t\tif (err) {\n\t\t\t\treject(err);\n\t\t\t} else {\n\t\t\t\tif (counterStep && counterTotal && alasql.options.progress !== false) {\n\t\t\t\t\talasql.options.progress(counterStep, counterTotal);\n\t\t\t\t}\n\t\t\t\tresolve(data);\n\t\t\t}\n\t\t});\n\t});\n};\n\nconst sequentialPromiseResolver = (promiseData, Promise) => {\n\tvar startingPoint = Promise.resolve([]);\n\tpromiseData.forEach(p => {\n\t\tstartingPoint = startingPoint.then(previousResult =>\n\t\t\tpromiseExec(p.sql, p.params, p.i, p.length).then(result => [...previousResult, result])\n\t\t);\n\t});\n\n\treturn startingPoint;\n};\n\nvar promiseAll = function (sqlParamsArray) {\n\tif (sqlParamsArray.length < 1) {\n\t\treturn;\n\t}\n\n\tvar active, sql, params;\n\n\tvar execArray = [];\n\n\tfor (var i = 0; i < sqlParamsArray.length; i++) {\n\t\tactive = sqlParamsArray[i];\n\n\t\tif (typeof active === 'string') {\n\t\t\tactive = [active];\n\t\t}\n\n\t\tif (!utils.isArray(active) || active.length < 1 || 2 < active.length) {\n\t\t\tthrow new Error('Error in .promise parameter');\n\t\t}\n\n\t\tsql = active[0];\n\t\tparams = active[1] || undefined;\n\n\t\texecArray.push({\n\t\t\tsql,\n\t\t\tparams,\n\t\t\ti,\n\t\t\tlength: sqlParamsArray.length,\n\t\t});\n\t}\n\n\t// in case of indexdb the version does not update\n\t// if create table queries are run in parallel\n\t// this causes certain DML queries to not execute\n\t// running them sequentially fixes this issue\n\treturn sequentialPromiseResolver(execArray, utils.global.Promise);\n};\n\nalasql.promise = function (sql, params) {\n\tif (typeof Promise === 'undefined') {\n\t\tthrow new Error('Please include a Promise/A+ library');\n\t}\n\n\tif (typeof sql === 'string') {\n\t\treturn promiseExec(sql, params);\n\t}\n\n\tif (!utils.isArray(sql) || sql.length < 1 || typeof params !== 'undefined') {\n\t\tthrow new Error('Error in .promise parameters');\n\t}\n\treturn promiseAll(sql);\n};\n/*\n//\n// Database class for Alasql.js\n// Date: 03.11.2014\n// (c) 2014, Andrey Gershun\n//\n*/\n\n// Main Database class\n\n/**\n @class Database\n */\n\nvar Database = (alasql.Database = function (databaseid) {\n\tvar self = this;\n\n\t//\t\tself.prototype = this;\n\n\tif (self === alasql) {\n\t\tif (databaseid) {\n\t\t\t//\t\t\tif(alasql.databases[databaseid]) {\n\t\t\tself = alasql.databases[databaseid];\n\t\t\t//\t\t\t} else {\n\t\t\talasql.databases[databaseid] = self;\n\t\t\t//\t\t\t}\n\t\t\tif (!self) {\n\t\t\t\tthrow new Error(`Database ${databaseid} not found`);\n\t\t\t}\n\t\t} else {\n\t\t\t// Create new database (or get alasql?)\n\t\t\tself = alasql.databases.alasql;\n\t\t\t// For SQL Server examples, USE tempdb\n\t\t\tif (alasql.options.tsql) {\n\t\t\t\talasql.databases.tempdb = alasql.databases.alasql;\n\t\t\t}\n\t\t\t//\t\t\tself = new Database(databaseid); // to call without new\n\t\t}\n\t}\n\tif (!databaseid) {\n\t\tdatabaseid = 'db' + alasql.databasenum++; // Random name\n\t}\n\n\t// Step 1\n\tself.databaseid = databaseid;\n\talasql.databases[databaseid] = self;\n\tself.dbversion = 0;\n\n\t//Steps 2-5\n\tself.tables = {};\n\tself.views = {};\n\tself.triggers = {};\n\tself.indices = {};\n\n\t// Step 6: Objects storage\n\tself.objects = {};\n\tself.counter = 0;\n\n\tself.resetSqlCache();\n\treturn self;\n});\n\n/**\n Reset SQL statements cache\n */\n\nDatabase.prototype.resetSqlCache = function () {\n\tthis.sqlCache = {}; // Cache for compiled SQL statements\n\tthis.sqlCacheSize = 0;\n\tthis.astCache = {}; // Cache for AST objects\n};\n\n// Main SQL function\n\n/**\n Run SQL statement on database\n @param {string} sql SQL statement\n @param [object] params Parameters\n @param {function} cb callback\n */\n\nDatabase.prototype.exec = function (sql, params, cb) {\n\treturn alasql.dexec(this.databaseid, sql, params, cb);\n};\n\nDatabase.prototype.autoval = function (tablename, colname, getNext) {\n\treturn alasql.autoval(tablename, colname, getNext, this.databaseid);\n};\n\nDatabase.prototype.transaction = function (cb) {\n\tvar tx = new alasql.Transaction(this.databaseid);\n\tvar res = cb(tx);\n\treturn res;\n};\n\n// Aliases like MS SQL\n\n/*\n//\n// Transaction class for Alasql.js\n// Date: 03.11.2014\n// (c) 2014, Andrey Gershun\n//\n*/\n\nclass Transaction {\n\ttransactionid = Date.now();\n\n\tcommitted = false;\n\n\t/** @type {string | undefined} */\n\tbank;\n\n\tconstructor(databaseid) {\n\t\tthis.databaseid = databaseid;\n\t\tthis.dbversion = alasql.databases[databaseid].dbversion;\n\t\t// this.bank = structuredClone(alasql.databases[databaseid]);\n\t\tthis.bank = JSON.stringify(alasql.databases[databaseid]);\n\t\t// TODO CLone Tables with insertfns\n\t}\n\n\t/** Commit transaction */\n\tcommit() {\n\t\tthis.committed = true;\n\t\talasql.databases[this.databaseid].dbversion = Date.now();\n\t\tdelete this.bank;\n\t}\n\n\t/** Rollback transaction */\n\trollback() {\n\t\tif (!this.committed) {\n\t\t\talasql.databases[this.databaseid] = JSON.parse(this.bank);\n\t\t\t// alasql.databases[this.databaseid].tables = this.bank;\n\t\t\t// alasql.databases[this.databaseid].dbversion = this.dbversion;\n\t\t\tdelete this.bank;\n\t\t} else {\n\t\t\tthrow new Error('Transaction already commited');\n\t\t}\n\t}\n\n\t/**\n\t * Execute SQL statement\n\t * @param {string} sql SQL statement\n\t * @param {object} params Parameters\n\t * @param {function} cb Callback function\n\t * @return result\n\t */\n\texec(sql, params, cb) {\n\t\treturn alasql.dexec(this.databaseid, sql, params, cb);\n\t}\n\n\t/*\n\tqueryArray (sql, params, cb) {\n\t\treturn flatArray(this.exec(sql, params, cb));\n\t}\n\n\tqueryArrayOfArrays (sql, params, cb) {\n\t\treturn arrayOfArrays(this.exec(sql, params, cb));\n\t}\n\n\tquerySingle (sql, params, cb) {\n\t\treturn this.exec(sql, params, cb)[0];\n\t}\n\n\tqueryValue (sql, params, cb) {\n\t\tvar res = this.querySingle(sql, params, cb);\n\t\treturn res[Object.keys(res)[0]];\n\t}\n\t*/\n}\n\nTransaction.prototype.executeSQL = Transaction.prototype.exec;\n\n// Transaction.prototype.query = Database.prototype.exec;\n// Transaction.prototype.run = Database.prototype.exec;\n\nalasql.Transaction = Transaction;\n/*\n//\n// Table class for Alasql.js\n// Date: 14.11.2014\n// (c) 2014, Andrey Gershun\n//\n*/\n\n// Table class\nvar Table = (alasql.Table = function (params) {\n\t// Step 1: Data array\n\tthis.data = [];\n\n\t// Step 2: Columns\n\tthis.columns = [];\n\tthis.xcolumns = {};\n\n\t// Step 3: indices\n\tthis.inddefs = {};\n\tthis.indices = {};\n\tthis.uniqs = {};\n\tthis.uniqdefs = {};\n\n\t// Step 4: identities\n\tthis.identities = {};\n\n\t// Step 5: checkfn...\n\tthis.checks = [];\n\tthis.checkfns = []; // For restore... to be done...\n\n\t// Step 6: INSERT/DELETE/UPDATE\n\n\t// Step 7: Triggers...\n\t// Create trigger hubs\n\tthis.beforeinsert = {};\n\tthis.afterinsert = {};\n\tthis.insteadofinsert = {};\n\n\tthis.beforedelete = {};\n\tthis.afterdelete = {};\n\tthis.insteadofdelete = {};\n\n\tthis.beforeupdate = {};\n\tthis.afterupdate = {};\n\tthis.insteadofupdate = {};\n\n\t// Done\n\tObject.assign(this, params);\n});\n\nTable.prototype.indexColumns = function () {\n\tvar self = this;\n\tself.xcolumns = {};\n\tself.columns.forEach(function (col) {\n\t\tself.xcolumns[col.columnid] = col;\n\t});\n};\n/*\n//\n// View class for Alasql.js\n// Date: 14.11.2014\n// (c) 2014, Andrey Gershun\n//\n*/\n\n// Table class\nclass View {\n\tconstructor(params) {\n\t\t// Columns\n\t\tthis.columns = [];\n\t\tthis.xcolumns = {};\n\t\t// Data array\n\t\tthis.query = [];\n\n\t\tObject.assign(this, params);\n\t}\n}\n\nalasql.View = View;\n\n/*\n//\n// Query class for Alasql.js\n// Date: 14.11.2014\n// (c) 2014, Andrey Gershun\n//\n*/\n\n// Table class\n\n/**\n @class Query Main query class\n */\nclass Query {\n\tconstructor(params) {\n\t\tthis.alasql = alasql;\n\n\t\t// Columns\n\t\tthis.columns = [];\n\t\tthis.xcolumns = {};\n\t\tthis.selectGroup = [];\n\t\tthis.groupColumns = {};\n\t\t// Data array\n\t\tObject.assign(this, params);\n\t}\n}\n\n/**\n @class Recordset data object\n */\nclass Recordset {\n\tconstructor(params) {\n\t\t// Data array\n\t\tObject.assign(this, params);\n\t}\n}\n\nalasql.Recordset = Recordset;\nalasql.Query = Query;\n\n/*\n//\n// Parser helper for Alasql.js\n// Date: 03.11.2014\n// (c) 2014, Andrey Gershun\n//\n*/\n\n// Base class for all yy classes\nclass Base {\n\tconstructor(params) {\n\t\tObject.assign(this, params);\n\t}\n\ttoString() {}\n\ttoType() {}\n\ttoJS() {}\n\texec() {}\n\tcompile() {}\n}\n\nvar yy = {\n\t// Utility\n\t/** @deprecated use `Object.assign` instead */\n\textend: Object.assign,\n\n\t// Option for case sensitive\n\tcasesensitive: alasql.options.casesensitive,\n\tBase,\n};\n\nalasqlparser.yy = alasql.yy = yy;\n/*\n//\n// Statements class for Alasql.js\n// Date: 03.11.2014\n// (c) 2014, Andrey Gershun\n//\n*/\n\nyy.Statements = class Statements {\n\tconstructor(params) {\n\t\tObject.assign(this, params);\n\t}\n\n\ttoString() {\n\t\treturn this.statements.map(st => st.toString()).join('; ');\n\t}\n\n\t// Compile array of statements into single statement\n\tcompile(db) {\n\t\tconst statements = this.statements.map(st => st.compile(db));\n\t\treturn statements.length === 1\n\t\t\t? statements[0]\n\t\t\t: (params, cb) => {\n\t\t\t\t\tconst res = statements.map(st => st(params));\n\t\t\t\t\tif (cb) cb(res);\n\t\t\t\t\treturn res;\n\t\t\t };\n\t}\n};\n/* global alasql */\n/* global yy */\n/*\n//\n// SEARCH for Alasql.js\n// Date: 04.05.2015\n// (c) 2015, Andrey Gershun\n//\n*/\n\n/**\n\tSearch class\n\t@example\n\tSEARCH SUM(/a) FROM ? -- search over parameter object\n*/\n\nyy.Search = class Search {\n\tconstructor(params) {\n\t\tObject.assign(this, params);\n\t}\n\n\ttoString() {\n\t\tlet s = 'SEARCH ';\n\t\tif (this.selectors) s += this.selectors.toString();\n\t\tif (this.from) s += 'FROM ' + this.from.toString();\n\t\treturn s;\n\t}\n\n\ttoJS(context) {\n\t\tconst s = `this.queriesfn[${this.queriesidx - 1}](this.params,null,${context})`;\n\t\treturn s;\n\t}\n\n\tcompile(databaseid) {\n\t\tvar dbid = databaseid;\n\n\t\tvar statement = (params, cb) => {\n\t\t\tvar res;\n\t\t\tthis.#doSearch(dbid, params, function (data) {\n\t\t\t\tres = modify(statement.query, data);\n\t\t\t\tif (cb) res = cb(res);\n\t\t\t});\n\t\t\t// if(cb) res = cb(res);\n\t\t\treturn res;\n\t\t};\n\t\tstatement.query = {};\n\t\treturn statement;\n\t}\n\n\t#doSearch(databaseid, params, cb) {\n\t\tvar res;\n\t\tvar stope = {};\n\t\tvar fromdata;\n\t\tvar selectors = cloneDeep(this.selectors);\n\n\t\tfunction processSelector(selectors, sidx, value) {\n\t\t\t//\t\tvar val;\n\n\t\t\tvar val, // temp values use many places\n\t\t\t\tnest, // temp value used many places\n\t\t\t\tr, // temp value used many places\n\t\t\t\tsel = selectors[sidx];\n\n\t\t\tvar INFINITE_LOOP_BREAK = alasql.options.loopbreak || 100000;\n\n\t\t\tif (sel.selid) {\n\t\t\t\t// TODO Process Selector\n\t\t\t\tif (sel.selid === 'PATH') {\n\t\t\t\t\tvar queue = [{node: value, stack: []}];\n\t\t\t\t\tvar visited = {};\n\t\t\t\t\t//var path = [];\n\t\t\t\t\tvar objects = alasql.databases[alasql.useid].objects;\n\t\t\t\t\twhile (queue.length > 0) {\n\t\t\t\t\t\tvar q = queue.shift();\n\t\t\t\t\t\tvar node = q.node;\n\t\t\t\t\t\tvar stack = q.stack;\n\t\t\t\t\t\tvar r = processSelector(sel.args, 0, node);\n\t\t\t\t\t\tif (r.length > 0) {\n\t\t\t\t\t\t\tif (sidx + 1 + 1 > selectors.length) {\n\t\t\t\t\t\t\t\treturn stack;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tvar rv = [];\n\t\t\t\t\t\t\t\tif (stack && stack.length > 0) {\n\t\t\t\t\t\t\t\t\tstack.forEach(function (stv) {\n\t\t\t\t\t\t\t\t\t\trv = rv.concat(processSelector(selectors, sidx + 1, stv));\n\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\treturn rv;\n\t\t\t\t\t\t\t\t//\t\t\t\t\t\t\treturn processSelector(selectors,sidx+1,stack);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tif (typeof visited[node.$id] !== 'undefined') {\n\t\t\t\t\t\t\t\tcontinue;\n\t\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t\tvisited[node.$id] = true;\n\t\t\t\t\t\t\t\tif (node.$out && node.$out.length > 0) {\n\t\t\t\t\t\t\t\t\tnode.$out.forEach(function (edgeid) {\n\t\t\t\t\t\t\t\t\t\tvar edge = objects[edgeid];\n\t\t\t\t\t\t\t\t\t\tvar stack2 = stack.concat(edge);\n\t\t\t\t\t\t\t\t\t\tstack2.push(objects[edge.$out[0]]);\n\t\t\t\t\t\t\t\t\t\tqueue.push({\n\t\t\t\t\t\t\t\t\t\t\tnode: objects[edge.$out[0]],\n\t\t\t\t\t\t\t\t\t\t\tstack: stack2,\n\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\t// Else return fail\n\t\t\t\t\treturn [];\n\t\t\t\t}\n\t\t\t\tif (sel.selid === 'NOT') {\n\t\t\t\t\tvar nest = processSelector(sel.args, 0, value);\n\n\t\t\t\t\tif (nest.length > 0) {\n\t\t\t\t\t\treturn [];\n\t\t\t\t\t} else {\n\t\t\t\t\t\tif (sidx + 1 + 1 > selectors.length) {\n\t\t\t\t\t\t\treturn [value];\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\treturn processSelector(selectors, sidx + 1, value);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} else if (sel.selid === 'DISTINCT') {\n\t\t\t\t\tvar nest;\n\t\t\t\t\tif (typeof sel.args === 'undefined' || sel.args.length === 0) {\n\t\t\t\t\t\tnest = distinctArray(value);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tnest = processSelector(sel.args, 0, value);\n\t\t\t\t\t}\n\t\t\t\t\tif (nest.length === 0) {\n\t\t\t\t\t\treturn [];\n\t\t\t\t\t} else {\n\t\t\t\t\t\tvar res = distinctArray(nest);\n\t\t\t\t\t\tif (sidx + 1 + 1 > selectors.length) {\n\t\t\t\t\t\t\treturn res;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\treturn processSelector(selectors, sidx + 1, res);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} else if (sel.selid === 'AND') {\n\t\t\t\t\tvar res = true;\n\t\t\t\t\tsel.args.forEach(function (se) {\n\t\t\t\t\t\tres = res && processSelector(se, 0, value).length > 0;\n\t\t\t\t\t});\n\t\t\t\t\tif (!res) {\n\t\t\t\t\t\treturn [];\n\t\t\t\t\t} else {\n\t\t\t\t\t\tif (sidx + 1 + 1 > selectors.length) {\n\t\t\t\t\t\t\treturn [value];\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\treturn processSelector(selectors, sidx + 1, value);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} else if (sel.selid === 'OR') {\n\t\t\t\t\tvar res = false;\n\t\t\t\t\tsel.args.forEach(function (se) {\n\t\t\t\t\t\tres = res || processSelector(se, 0, value).length > 0;\n\t\t\t\t\t});\n\t\t\t\t\tif (!res) {\n\t\t\t\t\t\treturn [];\n\t\t\t\t\t} else {\n\t\t\t\t\t\tif (sidx + 1 + 1 > selectors.length) {\n\t\t\t\t\t\t\treturn [value];\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\treturn processSelector(selectors, sidx + 1, value);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} else if (sel.selid === 'ALL') {\n\t\t\t\t\tvar nest = processSelector(sel.args[0], 0, value);\n\t\t\t\t\tif (nest.length === 0) {\n\t\t\t\t\t\treturn [];\n\t\t\t\t\t} else {\n\t\t\t\t\t\tif (sidx + 1 + 1 > selectors.length) {\n\t\t\t\t\t\t\treturn nest;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\treturn processSelector(selectors, sidx + 1, nest);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} else if (sel.selid === 'ANY') {\n\t\t\t\t\tvar nest = processSelector(sel.args[0], 0, value);\n\t\t\t\t\tif (nest.length === 0) {\n\t\t\t\t\t\treturn [];\n\t\t\t\t\t} else {\n\t\t\t\t\t\tif (sidx + 1 + 1 > selectors.length) {\n\t\t\t\t\t\t\treturn [nest[0]];\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\treturn processSelector(selectors, sidx + 1, [nest[0]]);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} else if (sel.selid === 'UNIONALL') {\n\t\t\t\t\tvar nest = [];\n\t\t\t\t\tsel.args.forEach(function (se) {\n\t\t\t\t\t\tnest = nest.concat(processSelector(se, 0, value));\n\t\t\t\t\t});\n\t\t\t\t\tif (nest.length === 0) {\n\t\t\t\t\t\treturn [];\n\t\t\t\t\t} else {\n\t\t\t\t\t\tif (sidx + 1 + 1 > selectors.length) {\n\t\t\t\t\t\t\treturn nest;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\treturn processSelector(selectors, sidx + 1, nest);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} else if (sel.selid === 'UNION') {\n\t\t\t\t\tvar nest = [];\n\t\t\t\t\tsel.args.forEach(function (se) {\n\t\t\t\t\t\tnest = nest.concat(processSelector(se, 0, value));\n\t\t\t\t\t});\n\t\t\t\t\tvar nest = distinctArray(nest);\n\t\t\t\t\tif (nest.length === 0) {\n\t\t\t\t\t\treturn [];\n\t\t\t\t\t} else {\n\t\t\t\t\t\tif (sidx + 1 + 1 > selectors.length) {\n\t\t\t\t\t\t\treturn nest;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\treturn processSelector(selectors, sidx + 1, nest);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} else if (sel.selid === 'IF') {\n\t\t\t\t\tvar nest = processSelector(sel.args, 0, value);\n\n\t\t\t\t\tif (nest.length === 0) {\n\t\t\t\t\t\treturn [];\n\t\t\t\t\t} else {\n\t\t\t\t\t\tif (sidx + 1 + 1 > selectors.length) {\n\t\t\t\t\t\t\treturn [value];\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\treturn processSelector(selectors, sidx + 1, value);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} else if (sel.selid === 'REPEAT') {\n\n\t\t\t\t\tvar lvar,\n\t\t\t\t\t\tlmax,\n\t\t\t\t\t\tlmin = sel.args[0].value;\n\t\t\t\t\tif (!sel.args[1]) {\n\t\t\t\t\t\tlmax = lmin; // Add security break\n\t\t\t\t\t} else {\n\t\t\t\t\t\tlmax = sel.args[1].value;\n\t\t\t\t\t}\n\t\t\t\t\tif (sel.args[2]) {\n\t\t\t\t\t\tlvar = sel.args[2].variable;\n\t\t\t\t\t}\n\t\t\t\t\t//var lsel = sel.sels;\n\n\t\t\t\t\tvar retval = [];\n\n\t\t\t\t\tif (lmin === 0) {\n\t\t\t\t\t\tif (sidx + 1 + 1 > selectors.length) {\n\t\t\t\t\t\t\tretval = [value];\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tif (lvar) {\n\t\t\t\t\t\t\t\talasql.vars[lvar] = 0;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tretval = retval.concat(processSelector(selectors, sidx + 1, value));\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// var nests = processSelector(sel.sels,0,value).slice();\n\t\t\t\t\tif (lmax > 0) {\n\t\t\t\t\t\tvar nests = [{value: value, lvl: 1}];\n\n\t\t\t\t\t\tvar i = 0;\n\t\t\t\t\t\twhile (nests.length > 0) {\n\t\t\t\t\t\t\tvar nest = nests[0];\n\n\t\t\t\t\t\t\tnests.shift();\n\t\t\t\t\t\t\tif (nest.lvl <= lmax) {\n\t\t\t\t\t\t\t\tif (lvar) {\n\t\t\t\t\t\t\t\t\talasql.vars[lvar] = nest.lvl;\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\tvar nest1 = processSelector(sel.sels, 0, nest.value);\n\n\t\t\t\t\t\t\t\tnest1.forEach(function (n) {\n\t\t\t\t\t\t\t\t\tnests.push({value: n, lvl: nest.lvl + 1});\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\tif (nest.lvl >= lmin) {\n\t\t\t\t\t\t\t\t\tif (sidx + 1 + 1 > selectors.length) {\n\t\t\t\t\t\t\t\t\t\tretval = retval.concat(nest1);\n\t\t\t\t\t\t\t\t\t\t//return nests;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\tnest1.forEach(function (n) {\n\t\t\t\t\t\t\t\t\t\t\tretval = retval.concat(processSelector(selectors, sidx + 1, n));\n\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t// Security brake\n\t\t\t\t\t\t\ti++;\n\t\t\t\t\t\t\tif (i > INFINITE_LOOP_BREAK) {\n\t\t\t\t\t\t\t\tthrow new Error('Infinite loop brake. Number of iterations = ' + i);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\treturn retval;\n\t\t\t\t} else if (sel.selid === 'OF') {\n\t\t\t\t\tif (sidx + 1 + 1 > selectors.length) {\n\t\t\t\t\t\treturn [value];\n\t\t\t\t\t} else {\n\t\t\t\t\t\tvar r1 = [];\n\t\t\t\t\t\tObject.keys(value).forEach(function (keyv) {\n\t\t\t\t\t\t\talasql.vars[sel.args[0].variable] = keyv;\n\t\t\t\t\t\t\tr1 = r1.concat(processSelector(selectors, sidx + 1, value[keyv]));\n\t\t\t\t\t\t});\n\t\t\t\t\t\treturn r1;\n\t\t\t\t\t}\n\t\t\t\t} else if (sel.selid === 'TO') {\n\n\t\t\t\t\tvar oldv = alasql.vars[sel.args[0]];\n\t\t\t\t\tvar newv = [];\n\t\t\t\t\tif (oldv !== undefined) {\n\n\t\t\t\t\t\tnewv = oldv.slice(0);\n\n\t\t\t\t\t} else {\n\t\t\t\t\t\tnewv = [];\n\t\t\t\t\t}\n\t\t\t\t\tnewv.push(value);\n\n\t\t\t\t\tif (sidx + 1 + 1 > selectors.length) {\n\t\t\t\t\t\treturn [value];\n\t\t\t\t\t} else {\n\t\t\t\t\t\talasql.vars[sel.args[0]] = newv;\n\t\t\t\t\t\tvar r1 = processSelector(selectors, sidx + 1, value);\n\n\t\t\t\t\t\talasql.vars[sel.args[0]] = oldv;\n\t\t\t\t\t\treturn r1;\n\t\t\t\t\t}\n\n\t\t\t\t} else if (sel.selid === 'ARRAY') {\n\t\t\t\t\tvar nest = processSelector(sel.args, 0, value);\n\t\t\t\t\tif (nest.length > 0) {\n\t\t\t\t\t\tval = nest;\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn [];\n\t\t\t\t\t}\n\t\t\t\t\tif (sidx + 1 + 1 > selectors.length) {\n\t\t\t\t\t\treturn [val];\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn processSelector(selectors, sidx + 1, val);\n\t\t\t\t\t}\n\t\t\t\t} else if (sel.selid === 'SUM') {\n\t\t\t\t\tvar nest = processSelector(sel.args, 0, value);\n\t\t\t\t\tif (nest.length > 0) {\n\t\t\t\t\t\tvar val = nest.reduce(function (sum, current) {\n\t\t\t\t\t\t\treturn sum + current;\n\t\t\t\t\t\t}, 0);\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn [];\n\t\t\t\t\t}\n\t\t\t\t\tif (sidx + 1 + 1 > selectors.length) {\n\t\t\t\t\t\treturn [val];\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn processSelector(selectors, sidx + 1, val);\n\t\t\t\t\t}\n\t\t\t\t} else if (sel.selid === 'AVG') {\n\t\t\t\t\tnest = processSelector(sel.args, 0, value);\n\t\t\t\t\tif (nest.length > 0) {\n\t\t\t\t\t\tval =\n\t\t\t\t\t\t\tnest.reduce(function (sum, current) {\n\t\t\t\t\t\t\t\treturn sum + current;\n\t\t\t\t\t\t\t}, 0) / nest.length;\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn [];\n\t\t\t\t\t}\n\t\t\t\t\tif (sidx + 1 + 1 > selectors.length) {\n\t\t\t\t\t\treturn [val];\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn processSelector(selectors, sidx + 1, val);\n\t\t\t\t\t}\n\t\t\t\t} else if (sel.selid === 'COUNT') {\n\t\t\t\t\tnest = processSelector(sel.args, 0, value);\n\t\t\t\t\tif (nest.length > 0) {\n\t\t\t\t\t\tval = nest.length;\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn [];\n\t\t\t\t\t}\n\t\t\t\t\tif (sidx + 1 + 1 > selectors.length) {\n\t\t\t\t\t\treturn [val];\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn processSelector(selectors, sidx + 1, val);\n\t\t\t\t\t}\n\t\t\t\t} else if (sel.selid === 'FIRST') {\n\t\t\t\t\tnest = processSelector(sel.args, 0, value);\n\t\t\t\t\tif (nest.length > 0) {\n\t\t\t\t\t\tval = nest[0];\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn [];\n\t\t\t\t\t}\n\n\t\t\t\t\tif (sidx + 1 + 1 > selectors.length) {\n\t\t\t\t\t\treturn [val];\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn processSelector(selectors, sidx + 1, val);\n\t\t\t\t\t}\n\t\t\t\t} else if (sel.selid === 'LAST') {\n\t\t\t\t\tnest = processSelector(sel.args, 0, value);\n\t\t\t\t\tif (nest.length > 0) {\n\t\t\t\t\t\tval = nest[nest.length - 1];\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn [];\n\t\t\t\t\t}\n\n\t\t\t\t\tif (sidx + 1 + 1 > selectors.length) {\n\t\t\t\t\t\treturn [val];\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn processSelector(selectors, sidx + 1, val);\n\t\t\t\t\t}\n\t\t\t\t} else if (sel.selid === 'MIN') {\n\t\t\t\t\tnest = processSelector(sel.args, 0, value);\n\t\t\t\t\tif (nest.length === 0) {\n\t\t\t\t\t\treturn [];\n\t\t\t\t\t}\n\t\t\t\t\tvar val = nest.reduce(function (min, current) {\n\t\t\t\t\t\treturn Math.min(min, current);\n\t\t\t\t\t}, Infinity);\n\t\t\t\t\tif (sidx + 1 + 1 > selectors.length) {\n\t\t\t\t\t\treturn [val];\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn processSelector(selectors, sidx + 1, val);\n\t\t\t\t\t}\n\t\t\t\t} else if (sel.selid === 'MAX') {\n\t\t\t\t\tvar nest = processSelector(sel.args, 0, value);\n\t\t\t\t\tif (nest.length === 0) {\n\t\t\t\t\t\treturn [];\n\t\t\t\t\t}\n\t\t\t\t\tvar val = nest.reduce(function (max, current) {\n\t\t\t\t\t\treturn Math.max(max, current);\n\t\t\t\t\t}, -Infinity);\n\t\t\t\t\tif (sidx + 1 + 1 > selectors.length) {\n\t\t\t\t\t\treturn [val];\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn processSelector(selectors, sidx + 1, val);\n\t\t\t\t\t}\n\t\t\t\t} else if (sel.selid === 'PLUS') {\n\t\t\t\t\tvar retval = [];\n\t\t\t\t\t//\t\t\t\tretval = retval.concat(processSelector(selectors,sidx+1,n))\n\t\t\t\t\tvar nests = processSelector(sel.args, 0, value).slice();\n\t\t\t\t\tif (sidx + 1 + 1 > selectors.length) {\n\t\t\t\t\t\tretval = retval.concat(nests);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tnests.forEach(function (n) {\n\t\t\t\t\t\t\tretval = retval.concat(processSelector(selectors, sidx + 1, n));\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\n\t\t\t\t\tvar i = 0;\n\t\t\t\t\twhile (nests.length > 0) {\n\t\t\t\t\t\t//\t\t\t\t\tnest = nests[0];\n\t\t\t\t\t\t//\t\t\t\t\tnests.shift();\n\t\t\t\t\t\tvar nest = nests.shift();\n\n\t\t\t\t\t\tnest = processSelector(sel.args, 0, nest);\n\n\t\t\t\t\t\tnests = nests.concat(nest);\n\n\t\t\t\t\t\tif (sidx + 1 + 1 > selectors.length) {\n\t\t\t\t\t\t\tretval = retval.concat(nest);\n\t\t\t\t\t\t\t//return retval;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tnest.forEach(function (n) {\n\n\t\t\t\t\t\t\t\tvar rn = processSelector(selectors, sidx + 1, n);\n\n\t\t\t\t\t\t\t\tretval = retval.concat(rn);\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Security brake\n\t\t\t\t\t\ti++;\n\t\t\t\t\t\tif (i > INFINITE_LOOP_BREAK) {\n\t\t\t\t\t\t\tthrow new Error('Infinite loop brake. Number of iterations = ' + i);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\treturn retval;\n\n\t\t\t\t} else if (sel.selid === 'STAR') {\n\t\t\t\t\tvar retval = [];\n\t\t\t\t\tretval = processSelector(selectors, sidx + 1, value);\n\t\t\t\t\tvar nests = processSelector(sel.args, 0, value).slice();\n\t\t\t\t\tif (sidx + 1 + 1 > selectors.length) {\n\t\t\t\t\t\tretval = retval.concat(nests);\n\t\t\t\t\t\t//return nests;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tnests.forEach(function (n) {\n\t\t\t\t\t\t\tretval = retval.concat(processSelector(selectors, sidx + 1, n));\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t\tvar i = 0;\n\t\t\t\t\twhile (nests.length > 0) {\n\t\t\t\t\t\tvar nest = nests[0];\n\t\t\t\t\t\tnests.shift();\n\n\t\t\t\t\t\tnest = processSelector(sel.args, 0, nest);\n\n\t\t\t\t\t\tnests = nests.concat(nest);\n\n\t\t\t\t\t\tif (sidx + 1 + 1 <= selectors.length) {\n\t\t\t\t\t\t\tnest.forEach(function (n) {\n\t\t\t\t\t\t\t\tretval = retval.concat(processSelector(selectors, sidx + 1, n));\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Security brake\n\t\t\t\t\t\ti++;\n\t\t\t\t\t\tif (i > INFINITE_LOOP_BREAK) {\n\t\t\t\t\t\t\tthrow new Error('Infinite loop brake. Number of iterations = ' + i);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\treturn retval;\n\t\t\t\t} else if (sel.selid === 'QUESTION') {\n\t\t\t\t\tvar retval = [];\n\t\t\t\t\tretval = retval.concat(processSelector(selectors, sidx + 1, value));\n\t\t\t\t\tvar nest = processSelector(sel.args, 0, value);\n\t\t\t\t\tif (sidx + 1 + 1 <= selectors.length) {\n\t\t\t\t\t\tnest.forEach(function (n) {\n\t\t\t\t\t\t\tretval = retval.concat(processSelector(selectors, sidx + 1, n));\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t\treturn retval;\n\t\t\t\t} else if (sel.selid === 'WITH') {\n\t\t\t\t\tvar nest = processSelector(sel.args, 0, value);\n\n\t\t\t\t\tif (nest.length === 0) {\n\t\t\t\t\t\treturn [];\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\tvar r = {status: 1, values: nest};\n\t\t\t\t\t}\n\t\t\t\t} else if (sel.selid === 'ROOT') {\n\t\t\t\t\tif (sidx + 1 + 1 > selectors.length) {\n\t\t\t\t\t\treturn [value];\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn processSelector(selectors, sidx + 1, fromdata);\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tthrow new Error('Wrong selector ' + sel.selid);\n\t\t\t\t}\n\t\t\t} else if (sel.srchid) {\n\t\t\t\tvar r = alasql.srch[sel.srchid.toUpperCase()](value, sel.args, stope, params);\n\n\t\t\t} else {\n\t\t\t\tthrow new Error('Selector not found');\n\t\t\t}\n\n\t\t\tif (typeof r === 'undefined') {\n\t\t\t\tr = {status: 1, values: [value]};\n\t\t\t}\n\n\t\t\tvar res = [];\n\t\t\tif (r.status === 1) {\n\t\t\t\tvar arr = r.values;\n\n\t\t\t\tif (sidx + 1 + 1 > selectors.length) {\n\t\t\t\t\t//\t\t\tif(sidx+1+1 > selectors.length) {\n\t\t\t\t\tres = arr;\n\n\t\t\t\t} else {\n\t\t\t\t\tfor (var i = 0; i < r.values.length; i++) {\n\t\t\t\t\t\tres = res.concat(processSelector(selectors, sidx + 1, arr[i]));\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn res;\n\t\t}\n\n\t\tif (selectors !== undefined && selectors.length > 0) {\n\n\t\t\tif (\n\t\t\t\tselectors &&\n\t\t\t\tselectors[0] &&\n\t\t\t\tselectors[0].srchid === 'PROP' &&\n\t\t\t\tselectors[0].args &&\n\t\t\t\tselectors[0].args[0]\n\t\t\t) {\n\n\t\t\t\tif (selectors[0].args[0].toUpperCase() === 'XML') {\n\t\t\t\t\tstope.mode = 'XML';\n\t\t\t\t\tselectors.shift();\n\t\t\t\t} else if (selectors[0].args[0].toUpperCase() === 'HTML') {\n\t\t\t\t\tstope.mode = 'HTML';\n\t\t\t\t\tselectors.shift();\n\t\t\t\t} else if (selectors[0].args[0].toUpperCase() === 'JSON') {\n\t\t\t\t\tstope.mode = 'JSON';\n\t\t\t\t\tselectors.shift();\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (selectors.length > 0 && selectors[0].srchid === 'VALUE') {\n\t\t\t\tstope.value = true;\n\t\t\t\tselectors.shift();\n\t\t\t}\n\t\t}\n\n\t\tif (this.from instanceof yy.Column) {\n\t\t\tvar dbid = this.from.databaseid || databaseid;\n\t\t\tfromdata = alasql.databases[dbid].tables[this.from.columnid].data;\n\t\t\t//selectors.unshift({srchid:'CHILD'});\n\t\t} else if (this.from instanceof yy.FuncValue && alasql.from[this.from.funcid.toUpperCase()]) {\n\t\t\tvar args = this.from.args.map(function (arg) {\n\t\t\t\tvar as = arg.toJS();\n\n\t\t\t\tvar fn = new Function('params,alasql', 'var y;return ' + as).bind(this);\n\t\t\t\treturn fn(params, alasql);\n\t\t\t});\n\n\t\t\tfromdata = alasql.from[this.from.funcid.toUpperCase()].apply(this, args);\n\n\t\t} else if (typeof this.from === 'undefined') {\n\t\t\tfromdata = alasql.databases[databaseid].objects;\n\t\t} else {\n\t\t\tvar fromfn = new Function('params,alasql', 'var y;return ' + this.from.toJS());\n\t\t\tfromdata = fromfn(params, alasql);\n\t\t\t// Check for Mogo Collections\n\t\t\tif (\n\t\t\t\ttypeof Mongo === 'object' &&\n\t\t\t\ttypeof Mongo.Collection !== 'object' &&\n\t\t\t\tfromdata instanceof Mongo.Collection\n\t\t\t) {\n\t\t\t\tfromdata = fromdata.find().fetch();\n\t\t\t}\n\n\t\t\t//\t\tif(typeof fromdata == 'object' && Array.isArray(fromdata)) {\n\t\t\t//\t\t\tselectors.unshift({srchid:'CHILD'});\n\t\t\t//\t\t}\n\t\t}\n\n\t\t// If source data is array than first step is to run over array\n\t\t//\tvar selidx = 0;\n\t\t//\tvar selvalue = fromdata;\n\n\t\tif (selectors !== undefined && selectors.length > 0) {\n\t\t\t// Init variables for TO() selectors\n\n\t\t\tif (false) {\n\t\t\t\tselectors.forEach(function (selector) {\n\t\t\t\t\tif (selector.srchid === 'TO') {\n\t\t\t\t\t\t//* @todo move to TO selector\n\t\t\t\t\t\talasql.vars[selector.args[0]] = [];\n\t\t\t\t\t\t// TODO - process nested selectors\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\n\t\t\tres = processSelector(selectors, 0, fromdata);\n\t\t} else {\n\t\t\tres = fromdata;\n\t\t}\n\n\t\tif (this.into) {\n\t\t\tvar a1, a2;\n\t\t\tif (typeof this.into.args[0] !== 'undefined') {\n\t\t\t\ta1 = new Function('params,alasql', 'var y;return ' + this.into.args[0].toJS())(\n\t\t\t\t\tparams,\n\t\t\t\t\talasql\n\t\t\t\t);\n\t\t\t}\n\t\t\tif (typeof this.into.args[1] !== 'undefined') {\n\t\t\t\ta2 = new Function('params,alasql', 'var y;return ' + this.into.args[1].toJS())(\n\t\t\t\t\tparams,\n\t\t\t\t\talasql\n\t\t\t\t);\n\t\t\t}\n\t\t\tres = alasql.into[this.into.funcid.toUpperCase()](a1, a2, res, [], cb);\n\t\t} else {\n\t\t\tif (stope.value && res.length > 0) {\n\t\t\t\tres = res[0];\n\t\t\t}\n\t\t\tif (cb) {\n\t\t\t\tres = cb(res);\n\t\t\t}\n\t\t}\n\t\treturn res;\n\t}\n};\n\n// List of search functions\nalasql.srch = {\n\tPROP(val, args, stope) {\n\n\t\tif (stope.mode === 'XML') {\n\t\t\tconst values = val.children.filter(v => v.name.toUpperCase() === args[0].toUpperCase());\n\n\t\t\treturn {\n\t\t\t\tstatus: values.length ? 1 : -1,\n\t\t\t\tvalues,\n\t\t\t};\n\t\t} else {\n\t\t\tif (\n\t\t\t\ttypeof val !== 'object' ||\n\t\t\t\tval === null ||\n\t\t\t\ttypeof args !== 'object' ||\n\t\t\t\ttypeof val[args[0]] === 'undefined'\n\t\t\t) {\n\t\t\t\treturn {status: -1, values: []};\n\t\t\t} else {\n\t\t\t\treturn {status: 1, values: [val[args[0]]]};\n\t\t\t}\n\t\t}\n\t},\n\n\tAPROP(val, args) {\n\t\tif (\n\t\t\ttypeof val !== 'object' ||\n\t\t\tval === null ||\n\t\t\ttypeof args !== 'object' ||\n\t\t\ttypeof val[args[0]] === 'undefined'\n\t\t) {\n\t\t\treturn {status: 1, values: [undefined]};\n\t\t} else {\n\t\t\treturn {status: 1, values: [val[args[0]]]};\n\t\t}\n\t},\n\n\tEQ(val, args, stope, params) {\n\t\tvar exprs = args[0].toJS('x', '');\n\t\tvar exprfn = new Function('x,alasql,params', 'return ' + exprs);\n\t\tif (val === exprfn(val, alasql, params)) {\n\t\t\treturn {status: 1, values: [val]};\n\t\t} else {\n\t\t\treturn {status: -1, values: []};\n\t\t}\n\t},\n\n\t// Test expression\n\tLIKE(val, args, stope, params) {\n\t\tvar exprs = args[0].toJS('x', '');\n\t\tvar exprfn = new Function('x,alasql,params', 'return ' + exprs);\n\t\tif (\n\t\t\tval\n\t\t\t\t.toUpperCase()\n\t\t\t\t.match(\n\t\t\t\t\tnew RegExp(\n\t\t\t\t\t\t'^' +\n\t\t\t\t\t\t\texprfn(val, alasql, params).toUpperCase().replace(/%/g, '.*').replace(/\\?|_/g, '.') +\n\t\t\t\t\t\t\t'$'\n\t\t\t\t\t),\n\t\t\t\t\t'g'\n\t\t\t\t)\n\t\t) {\n\t\t\treturn {status: 1, values: [val]};\n\t\t} else {\n\t\t\treturn {status: -1, values: []};\n\t\t}\n\t},\n\n\tATTR(val, args, stope) {\n\t\tif (stope.mode === 'XML') {\n\t\t\tif (typeof args === 'undefined') {\n\t\t\t\treturn {status: 1, values: [val.attributes]};\n\t\t\t} else {\n\t\t\t\tif (\n\t\t\t\t\ttypeof val === 'object' &&\n\t\t\t\t\ttypeof val.attributes === 'object' &&\n\t\t\t\t\ttypeof val.attributes[args[0]] !== 'undefined'\n\t\t\t\t) {\n\t\t\t\t\treturn {status: 1, values: [val.attributes[args[0]]]};\n\t\t\t\t} else {\n\t\t\t\t\treturn {status: -1, values: []};\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tthrow new Error('ATTR is not using in usual mode');\n\t\t}\n\t},\n\n\tCONTENT(val, args, stope) {\n\t\tif (stope.mode !== 'XML') {\n\t\t\tthrow new Error('ATTR is not using in usual mode');\n\t\t}\n\t\treturn {status: 1, values: [val.content]};\n\t},\n\n\tSHARP(val, args) {\n\t\tconst obj = alasql.databases[alasql.useid].objects[args[0]];\n\t\tif (val !== undefined && val === obj) {\n\t\t\treturn {status: 1, values: [val]};\n\t\t} else {\n\t\t\treturn {status: -1, values: []};\n\t\t}\n\t},\n\n\tPARENT(/*val,args,stope*/) {\n\t\t// TODO: implement\n\t\tconsole.error('PARENT not implemented', arguments);\n\n\t\treturn {status: -1, values: []};\n\t},\n\n\tCHILD(val, args, stope) {\n\n\t\tif (typeof val === 'object') {\n\t\t\tif (Array.isArray(val)) {\n\t\t\t\treturn {status: 1, values: val};\n\t\t\t} else {\n\t\t\t\tif (stope.mode === 'XML') {\n\t\t\t\t\treturn {\n\t\t\t\t\t\tstatus: 1,\n\t\t\t\t\t\tvalues: Object.keys(val.children).map(function (key) {\n\t\t\t\t\t\t\treturn val.children[key];\n\t\t\t\t\t\t}),\n\t\t\t\t\t};\n\t\t\t\t} else {\n\t\t\t\t\treturn {\n\t\t\t\t\t\tstatus: 1,\n\t\t\t\t\t\tvalues: Object.keys(val).map(function (key) {\n\t\t\t\t\t\t\treturn val[key];\n\t\t\t\t\t\t}),\n\t\t\t\t\t};\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\t// If primitive value\n\t\t\treturn {status: 1, values: []};\n\t\t}\n\t},\n\n\t// Return all keys\n\tKEYS(val) {\n\t\tif (typeof val === 'object' && val !== null) {\n\t\t\treturn {status: 1, values: Object.keys(val)};\n\t\t} else {\n\t\t\t// If primitive value\n\t\t\treturn {status: 1, values: []};\n\t\t}\n\t},\n\n\t// Test expression\n\tWHERE(val, args, stope, params) {\n\t\tvar exprs = args[0].toJS('x', '');\n\t\tvar exprfn = new Function('x,alasql,params', 'return ' + exprs);\n\t\tif (exprfn(val, alasql, params)) {\n\t\t\treturn {status: 1, values: [val]};\n\t\t} else {\n\t\t\treturn {status: -1, values: []};\n\t\t}\n\t},\n\n\tNAME(val, args) {\n\t\tif (val.name === args[0]) {\n\t\t\treturn {status: 1, values: [val]};\n\t\t} else {\n\t\t\treturn {status: -1, values: []};\n\t\t}\n\t},\n\n\tCLASS(val, args) {\n\n\t\t// Please avoid `===` here\n\t\tif (val.$class == args) {\n\t\t\t// jshint ignore:line\n\t\t\treturn {status: 1, values: [val]};\n\t\t} else {\n\t\t\treturn {status: -1, values: []};\n\t\t}\n\t},\n\n\t// Transform expression\n\tVERTEX(val) {\n\t\tif (val.$node === 'VERTEX') {\n\t\t\treturn {status: 1, values: [val]};\n\t\t} else {\n\t\t\treturn {status: -1, values: []};\n\t\t}\n\t},\n\n\t// Transform expression\n\tINSTANCEOF(val, args) {\n\t\tif (val instanceof alasql.fn[args[0]]) {\n\t\t\treturn {status: 1, values: [val]};\n\t\t} else {\n\t\t\treturn {status: -1, values: []};\n\t\t}\n\t},\n\n\t// Transform expression\n\tEDGE(val) {\n\t\tif (val.$node === 'EDGE') {\n\t\t\treturn {status: 1, values: [val]};\n\t\t} else {\n\t\t\treturn {status: -1, values: []};\n\t\t}\n\t},\n\n\t// Transform expression\n\tEX(val, args, stope, params) {\n\t\tvar exprs = args[0].toJS('x', '');\n\t\tvar exprfn = new Function('x,alasql,params', 'return ' + exprs);\n\t\treturn {status: 1, values: [exprfn(val, alasql, params)]};\n\t},\n\n\t// Transform expression\n\tRETURN(val, args, stope, params) {\n\t\tvar res = {};\n\t\tif (args && args.length > 0) {\n\t\t\targs.forEach(function (arg) {\n\t\t\t\tvar exprs = arg.toJS('x', '');\n\t\t\t\tvar exprfn = new Function('x,alasql,params', 'return ' + exprs);\n\t\t\t\tif (typeof arg.as === 'undefined') {\n\t\t\t\t\targ.as = arg.toString();\n\t\t\t\t}\n\t\t\t\tres[arg.as] = exprfn(val, alasql, params);\n\t\t\t});\n\t\t}\n\t\treturn {status: 1, values: [res]};\n\t},\n\n\t// Transform expression\n\tREF(val) {\n\t\treturn {status: 1, values: [alasql.databases[alasql.useid].objects[val]]};\n\t},\n\n\t// Transform expression\n\tOUT(val) {\n\t\tif (val.$out && val.$out.length > 0) {\n\t\t\tvar res = val.$out.map(function (v) {\n\t\t\t\treturn alasql.databases[alasql.useid].objects[v];\n\t\t\t});\n\t\t\treturn {status: 1, values: res};\n\t\t} else {\n\t\t\treturn {status: -1, values: []};\n\t\t}\n\t},\n\n\tOUTOUT(val) {\n\t\tif (val.$out && val.$out.length > 0) {\n\t\t\tvar res = [];\n\t\t\tval.$out.forEach(function (v) {\n\t\t\t\tvar av = alasql.databases[alasql.useid].objects[v];\n\t\t\t\tif (av && av.$out && av.$out.length > 0) {\n\t\t\t\t\tav.$out.forEach(function (vv) {\n\t\t\t\t\t\tres = res.concat(alasql.databases[alasql.useid].objects[vv]);\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t});\n\t\t\treturn {status: 1, values: res};\n\t\t} else {\n\t\t\treturn {status: -1, values: []};\n\t\t}\n\t},\n\n\t// Transform expression\n\tIN(val) {\n\t\tif (val.$in && val.$in.length > 0) {\n\t\t\tvar res = val.$in.map(function (v) {\n\t\t\t\treturn alasql.databases[alasql.useid].objects[v];\n\t\t\t});\n\t\t\treturn {status: 1, values: res};\n\t\t} else {\n\t\t\treturn {status: -1, values: []};\n\t\t}\n\t},\n\n\tININ(val) {\n\t\tif (val.$in && val.$in.length > 0) {\n\t\t\tvar res = [];\n\t\t\tval.$in.forEach(function (v) {\n\t\t\t\tvar av = alasql.databases[alasql.useid].objects[v];\n\t\t\t\tif (av && av.$in && av.$in.length > 0) {\n\t\t\t\t\tav.$in.forEach(function (vv) {\n\t\t\t\t\t\tres = res.concat(alasql.databases[alasql.useid].objects[vv]);\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t});\n\t\t\treturn {status: 1, values: res};\n\t\t} else {\n\t\t\treturn {status: -1, values: []};\n\t\t}\n\t},\n\n\t// Transform expression\n\tAS(val, args) {\n\t\talasql.vars[args[0]] = val;\n\t\treturn {status: 1, values: [val]};\n\t},\n\n\t// Transform expression\n\tAT(val, args) {\n\t\tvar v = alasql.vars[args[0]];\n\t\treturn {status: 1, values: [v]};\n\t},\n\n\t// Transform expression\n\tCLONEDEEP(val) {\n\t\t// TODO something wrong\n\t\tvar z = cloneDeep(val);\n\t\treturn {status: 1, values: [z]};\n\t},\n\n\t// // Transform expression\n\t// DELETE (val,args) {\n\t// \t// TODO something wrong\n\t// \tdelete val;\n\t// return {status: 1, values: []};\n\t// },\n\n\t// Transform expression\n\tSET(val, args, stope, params) {\n\n\t\tvar s = args\n\t\t\t.map(function (st) {\n\t\t\t\tif (st.method === '@') {\n\t\t\t\t\treturn `alasql.vars[${JSON.stringify(st.variable)}]=` + st.expression.toJS('x', '');\n\t\t\t\t} else if (st.method === '$') {\n\t\t\t\t\treturn `params[${JSON.stringify(st.variable)}]=` + st.expression.toJS('x', '');\n\t\t\t\t} else {\n\t\t\t\t\treturn `x[${JSON.stringify(st.column.columnid)}]=` + st.expression.toJS('x', '');\n\t\t\t\t}\n\t\t\t})\n\t\t\t.join(';');\n\t\tvar setfn = new Function('x,params,alasql', s);\n\n\t\tsetfn(val, params, alasql);\n\n\t\treturn {status: 1, values: [val]};\n\t},\n\n\tROW(val, args, stope, params) {\n\t\tvar s = 'var y;return [';\n\t\ts += args.map(arg => arg.toJS('x', '')).join(',');\n\t\ts += ']';\n\t\tvar setfn = new Function('x,params,alasql', s);\n\t\tvar rv = setfn(val, params, alasql);\n\n\t\treturn {status: 1, values: [rv]};\n\t},\n\n\tD3(val) {\n\t\tif (val.$node !== 'VERTEX' && val.$node === 'EDGE') {\n\t\t\tval.source = val.$in[0];\n\t\t\tval.target = val.$out[0];\n\t\t}\n\n\t\treturn {status: 1, values: [val]};\n\t},\n\n\tORDERBY(val, args /*, stope */) {\n\t\tvar res = val.sort(compileSearchOrder(args));\n\t\treturn {status: 1, values: res};\n\t},\n};\n\nvar compileSearchOrder = function (order) {\n\tif (order) {\n\t\tif (typeof order?.[0]?.expression === 'function') {\n\t\t\tvar func = order[0].expression;\n\t\t\treturn function (a, b) {\n\t\t\t\tvar ra = func(a),\n\t\t\t\t\trb = func(b);\n\t\t\t\tif (ra > rb) {\n\t\t\t\t\treturn 1;\n\t\t\t\t}\n\t\t\t\tif (ra === rb) {\n\t\t\t\t\treturn 0;\n\t\t\t\t}\n\t\t\t\treturn -1;\n\t\t\t};\n\t\t}\n\n\t\tvar s = '';\n\t\tvar sk = '';\n\t\torder.forEach(function (ord) {\n\n\t\t\t// Date conversion\n\t\t\tvar dg = '';\n\n\t\t\tif (ord.expression instanceof yy.NumValue) {\n\t\t\t\tord.expression = self.columns[ord.expression.value - 1];\n\t\t\t}\n\n\t\t\tif (ord.expression instanceof yy.Column) {\n\t\t\t\tvar columnid = ord.expression.columnid;\n\n\t\t\t\tif (alasql.options.valueof) {\n\t\t\t\t\tdg = '.valueOf()'; // TODO Check\n\t\t\t\t}\n\t\t\t\t// COLLATE NOCASE\n\t\t\t\tif (ord.nocase) {\n\t\t\t\t\tdg += '.toUpperCase()';\n\t\t\t\t}\n\n\t\t\t\tif (columnid === '_') {\n\t\t\t\t\ts += 'if(a' + dg + (ord.direction === 'ASC' ? '>' : '<') + 'b' + dg + ')return 1;';\n\t\t\t\t\ts += 'if(a' + dg + '==b' + dg + '){';\n\t\t\t\t} else {\n\t\t\t\t\ts += `if (\n\t\t\t\t\t\t\t(a[${JSON.stringify(columnid)}]||'')${dg}\n\t\t\t\t\t\t\t${ord.direction === 'ASC' ? '>' : '<'}\n\t\t\t\t\t\t\t(b[${JSON.stringify(columnid)}]||'')${dg} \n\t\t\t\t\t\t) return 1;\n\n\t\t\t\t\t\tif(\n\t\t\t\t\t\t\t(a[${JSON.stringify(columnid)}]||'')${dg}\n\t\t\t\t\t\t\t==\n\t\t\t\t\t\t\t(b[${JSON.stringify(columnid)}]||'')${dg}\n\t\t\t\t\t\t){\n\t\t\t\t\t\t`;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tdg = '.valueOf()';\n\t\t\t\t// COLLATE NOCASE\n\t\t\t\tif (ord.nocase) {\n\t\t\t\t\tdg += '.toUpperCase()';\n\t\t\t\t}\n\t\t\t\ts +=\n\t\t\t\t\t'if((' +\n\t\t\t\t\tord.toJS('a', '') +\n\t\t\t\t\t\"||'')\" +\n\t\t\t\t\tdg +\n\t\t\t\t\t(ord.direction === 'ASC' ? '>(' : '<(') +\n\t\t\t\t\tord.toJS('b', '') +\n\t\t\t\t\t\"||'')\" +\n\t\t\t\t\tdg +\n\t\t\t\t\t')return 1;';\n\t\t\t\ts +=\n\t\t\t\t\t'if((' +\n\t\t\t\t\tord.toJS('a', '') +\n\t\t\t\t\t\"||'')\" +\n\t\t\t\t\tdg +\n\t\t\t\t\t'==(' +\n\t\t\t\t\tord.toJS('b', '') +\n\t\t\t\t\t\"||'')\" +\n\t\t\t\t\tdg +\n\t\t\t\t\t'){';\n\t\t\t}\n\n\t\t\t// TODO Add date comparision\n\t\t\t// s += 'if(a[\\''+columnid+\"']\"+dg+(ord.direction == 'ASC'?'>':'<')+'b[\\''+columnid+\"']\"+dg+')return 1;';\n\t\t\t// s += 'if(a[\\''+columnid+\"']\"+dg+'==b[\\''+columnid+\"']\"+dg+'){';\n\t\t\t//\t\t\t}\n\t\t\tsk += '}';\n\t\t});\n\t\ts += 'return 0;';\n\t\ts += sk + 'return -1';\n\n\t\treturn new Function('a,b', s);\n\t}\n};\n// Main query procedure\nfunction queryfn(query, oldscope, cb, A, B) {\n\tvar aaa = query.sources.length;\n\n\tvar ms;\n\tquery.sourceslen = query.sources.length;\n\tvar slen = query.sourceslen;\n\tquery.query = query; // TODO Remove to prevent memory leaks\n\tquery.A = A;\n\tquery.B = B;\n\tquery.cb = cb;\n\tquery.oldscope = oldscope;\n\n\t// Run all subqueries before main statement\n\tif (query.queriesfn) {\n\t\tquery.sourceslen += query.queriesfn.length;\n\t\tslen += query.queriesfn.length;\n\n\t\tquery.queriesdata = [];\n\n\t\tquery.queriesfn.forEach(function (q, idx) {\n\t\t\t//\t\t\tif(query.explain) ms = Date.now();\n\n\t\t\t//\t\t\tvar res = flatArray(q(query.params,null,queryfn2,(-idx-1),query));\n\n\t\t\t//\t\t\tvar res = flatArray(queryfn(q.query,null,queryfn2,(-idx-1),query));\n\n\t\t\tq.query.params = query.params;\n\t\t\t//\t\t\tquery.queriesdata[idx] =\n\n\t\t\t//\tif(false) {\n\t\t\t//\t\t\tqueryfn(q.query,query.oldscope,queryfn2,(-idx-1),query);\n\t\t\t//\t} else {\n\t\t\tqueryfn2([], -idx - 1, query);\n\t\t\t//\t}\n\n\t\t\t//\t\t\tquery.explaination.push({explid: query.explid++, description:'Query '+idx,ms:Date.now()-ms});\n\t\t\t//\t\t\tquery.queriesdata[idx] = res;\n\t\t\t//\t\t\treturn res;\n\t\t});\n\n\t}\n\n\tvar scope;\n\tif (!oldscope) scope = {};\n\telse scope = cloneDeep(oldscope);\n\tquery.scope = scope;\n\n\t// First - refresh data sources\n\n\tlet result;\n\tquery.sources.forEach(function (source, idx) {\n\t\t//\t\tsource.data = query.database.tables[source.tableid].data;\n\n\t\tsource.query = query;\n\t\tvar rs = source.datafn(query, query.params, queryfn2, idx, alasql);\n\n\t\tif (typeof rs !== 'undefined') {\n\t\t\t// TODO - this is a hack: check if result is array - check all cases and\n\t\t\t// make it more logical\n\t\t\tif ((query.intofn || query.intoallfn) && Array.isArray(rs)) rs = rs.length;\n\t\t\tresult = rs;\n\t\t}\n\t\t//\n\t\t// Ugly hack to use in query.wherefn and source.srcwherefns functions\n\t\t// constructions like this.queriesdata['test'].\n\t\t// I can elimite it with source.srcwherefn.bind(this)()\n\t\t// but it may be slow.\n\t\t//\n\t\tsource.queriesdata = query.queriesdata;\n\t});\n\tif (query.sources.length == 0 || 0 === slen) {\n\t\ttry {\n\t\t\tresult = queryfn3(query);\n\t\t} catch (e) {\n\t\t\tif (cb) return cb(null, e);\n\t\t\telse throw e;\n\t\t}\n\t}\n\n\treturn result;\n}\n\nfunction queryfn2(data, idx, query) {\n\n\t//console.trace();\n\n\tif (idx >= 0) {\n\t\tvar source = query.sources[idx];\n\t\tsource.data = data;\n\t\tif (typeof source.data == 'function') {\n\t\t\tsource.getfn = source.data;\n\t\t\tsource.dontcache = source.getfn.dontcache;\n\n\t\t\t//\t\t\tvar prevsource = query.sources[h-1];\n\t\t\tif (source.joinmode == 'OUTER' || source.joinmode == 'RIGHT' || source.joinmode == 'ANTI') {\n\t\t\t\tsource.dontcache = false;\n\t\t\t}\n\t\t\tsource.data = {};\n\t\t}\n\t} else {\n\t\t// subqueries\n\n\t\tquery.queriesdata[-idx - 1] = flatArray(data);\n\n\t}\n\n\tquery.sourceslen--;\n\tif (query.sourceslen > 0) return;\n\n\treturn queryfn3(query);\n}\n\nfunction queryfn3(query) {\n\tvar scope = query.scope,\n\t\tjlen;\n\n\t// Preindexation of data sources\n\t//\tif(!oldscope) {\n\tpreIndex(query);\n\t//\t}\n\n\t// query.sources.forEach(function(source) {\n\n\t// });\n\n\t// Prepare variables\n\tquery.data = [];\n\tquery.xgroups = {};\n\tquery.groups = [];\n\n\t// Level of Joins\n\tvar h = 0;\n\n\t// Start walking over data\n\n\tdoJoin(query, scope, h);\n\n\t// If grouping, then filter groups with HAVING function\n\n\tif (query.groupfn) {\n\t\tquery.data = [];\n\t\tif (query.groups.length === 0 && query.allgroups.length === 0) {\n\t\t\tvar g = {};\n\t\t\tif (query.selectGroup.length > 0) {\n\n\t\t\t\tquery.selectGroup.forEach(function (sg) {\n\t\t\t\t\tif (\n\t\t\t\t\t\tsg.aggregatorid == 'COUNT' ||\n\t\t\t\t\t\tsg.aggregatorid == 'SUM' ||\n\t\t\t\t\t\tsg.aggregatorid == 'TOTAL'\n\t\t\t\t\t) {\n\t\t\t\t\t\tg[sg.nick] = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tg[sg.nick] = undefined;\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\t\t\tquery.groups = [g];\n\n\t\t}\n\n\t\t// ******\n\n\t\tif (query.aggrKeys.length > 0) {\n\t\t\tvar gfns = '';\n\t\t\tquery.aggrKeys.forEach(function (col) {\n\t\t\t\tgfns += `g[${JSON.stringify(col.nick)}] = alasql.aggr[${JSON.stringify(\n\t\t\t\t\tcol.funcid\n\t\t\t\t)}](undefined,g[${JSON.stringify(col.nick)}],3);`;\n\n\t\t\t\t//\t\t\t\tgfns += 'return g[\\''+col.nick+'\\];';\n\t\t\t});\n\n\t\t\tvar gfn = new Function('g,params,alasql', 'var y;' + gfns);\n\t\t}\n\n\t\t// *******\n\n\t\t// \tdebugger;\n\t\t// if(false && (query.groups.length == 1) && (Object.keys(query.groups[0]).length == 0)) {\n\n\t\t// } else {\n\t\tfor (var i = 0, ilen = query.groups.length; i < ilen; i++) {\n\t\t\tvar g = query.groups[i];\n\n\t\t\tif (gfn) gfn(g, query.params, alasql);\n\n\t\t\tif (!query.havingfn || query.havingfn(g, query.params, alasql)) {\n\n\t\t\t\tvar d = query.selectgfn(g, query.params, alasql);\n\n\t\t\t\tfor (const key in query.groupColumns) {\n\t\t\t\t\t// ony remove columns where the alias is also not a column in the result\n\t\t\t\t\tif (query.groupColumns[key] !== key && d[query.groupColumns[key]] && !query.groupColumns[query.groupColumns[key]]){\n\t\t\t\t\t\tdelete d[query.groupColumns[key]];\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tquery.data.push(d);\n\t\t\t}\n\t\t}\n\t\t// }\n\n\t\t//\t\t\tquery.groups = query.groups.filter();\n\t}\n\t// Remove distinct values\n\tdoDistinct(query);\n\n\t// UNION / UNION ALL\n\tif (query.unionallfn) {\n\t\t// TODO Simplify this part of program\n\t\tvar ud, nd;\n\t\tif (query.corresponding) {\n\t\t\tif (!query.unionallfn.query.modifier) query.unionallfn.query.modifier = undefined;\n\t\t\tud = query.unionallfn(query.params);\n\t\t} else {\n\t\t\tif (!query.unionallfn.query.modifier) query.unionallfn.query.modifier = 'RECORDSET';\n\t\t\tnd = query.unionallfn(query.params);\n\t\t\tud = [];\n\t\t\tilen = nd.data.length;\n\t\t\tfor (var i = 0; i < ilen; i++) {\n\t\t\t\tvar r = {};\n\t\t\t\tfor (var j = Math.min(query.columns.length, nd.columns.length) - 1; 0 <= j; j--) {\n\t\t\t\t\tr[query.columns[j].columnid] = nd.data[i][nd.columns[j].columnid];\n\t\t\t\t}\n\t\t\t\tud.push(r);\n\t\t\t}\n\t\t}\n\t\tquery.data = query.data.concat(ud);\n\t} else if (query.unionfn) {\n\t\tif (query.corresponding) {\n\t\t\tif (!query.unionfn.query.modifier) query.unionfn.query.modifier = 'ARRAY';\n\t\t\tud = query.unionfn(query.params);\n\t\t} else {\n\t\t\tif (!query.unionfn.query.modifier) query.unionfn.query.modifier = 'RECORDSET';\n\t\t\tnd = query.unionfn(query.params);\n\t\t\tud = [];\n\t\t\tilen = nd.data.length;\n\t\t\tfor (var i = 0; i < ilen; i++) {\n\t\t\t\tr = {};\n\t\t\t\tif (query.columns.length) {\n\t\t\t\t\tjlen = Math.min(query.columns.length, nd.columns.length);\n\t\t\t\t\tfor (var j = 0; j < jlen; j++) {\n\t\t\t\t\t\tr[query.columns[j].columnid] = nd.data[i][nd.columns[j].columnid];\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tjlen = nd.columns.length;\n\t\t\t\t\tfor (var j = 0; j < jlen; j++) {\n\t\t\t\t\t\tr[nd.columns[j].columnid] = nd.data[i][nd.columns[j].columnid];\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tud.push(r);\n\t\t\t}\n\t\t}\n\n\t\tquery.data = arrayUnionDeep(query.data, ud);\n\t} else if (query.exceptfn) {\n\t\tif (query.corresponding) {\n\t\t\tif (!query.exceptfn.query.modifier) query.exceptfn.query.modifier = 'ARRAY';\n\t\t\tvar ud = query.exceptfn(query.params);\n\t\t} else {\n\t\t\tif (!query.exceptfn.query.modifier) query.exceptfn.query.modifier = 'RECORDSET';\n\t\t\tvar nd = query.exceptfn(query.params);\n\t\t\tvar ud = [];\n\t\t\tfor (var i = 0, ilen = nd.data.length; i < ilen; i++) {\n\t\t\t\tvar r = {};\n\t\t\t\tfor (var j = Math.min(query.columns.length, nd.columns.length) - 1; 0 <= j; j--) {\n\t\t\t\t\tr[query.columns[j].columnid] = nd.data[i][nd.columns[j].columnid];\n\t\t\t\t}\n\t\t\t\tud.push(r);\n\t\t\t}\n\t\t}\n\n\t\tquery.data = arrayExceptDeep(query.data, ud);\n\t} else if (query.intersectfn) {\n\t\tif (query.corresponding) {\n\t\t\tif (!query.intersectfn.query.modifier) query.intersectfn.query.modifier = undefined;\n\t\t\tud = query.intersectfn(query.params);\n\t\t} else {\n\t\t\tif (!query.intersectfn.query.modifier) query.intersectfn.query.modifier = 'RECORDSET';\n\t\t\tnd = query.intersectfn(query.params);\n\t\t\tud = [];\n\t\t\tilen = nd.data.length;\n\t\t\tfor (i = 0; i < ilen; i++) {\n\t\t\t\tr = {};\n\t\t\t\tjlen = Math.min(query.columns.length, nd.columns.length);\n\t\t\t\tfor (j = 0; j < jlen; j++) {\n\t\t\t\t\tr[query.columns[j].columnid] = nd.data[i][nd.columns[j].columnid];\n\t\t\t\t}\n\t\t\t\tud.push(r);\n\t\t\t}\n\t\t}\n\n\t\tquery.data = arrayIntersectDeep(query.data, ud);\n\t}\n\n\t// Ordering\n\tif (query.orderfn) {\n\t\tif (query.explain) var ms = Date.now();\n\t\tquery.data = query.data.sort(query.orderfn);\n\t\tif (query.explain) {\n\t\t\tquery.explaination.push({\n\t\t\t\texplid: query.explid++,\n\t\t\t\tdescription: 'QUERY BY',\n\t\t\t\tms: Date.now() - ms,\n\t\t\t});\n\t\t}\n\t}\n\n\t// Reduce to limit and offset\n\tdoLimit(query);\n\n\t// Remove Angular.js artifacts and other unnecessary columns\n\t// Issue #25\n\n\t// TODO: Check what artefacts rest from Angular.js\n\tif (typeof angular != 'undefined') {\n\t\tquery.removeKeys.push('$$hashKey');\n\t}\n\n\tif (query.removeKeys.length > 0) {\n\t\tvar removeKeys = query.removeKeys;\n\n\t\t// Remove from data\n\t\tjlen = removeKeys.length;\n\t\tif (jlen > 0) {\n\t\t\tilen = query.data.length;\n\t\t\tfor (i = 0; i < ilen; i++) {\n\t\t\t\tfor (j = 0; j < jlen; j++) {\n\t\t\t\t\tdelete query.data[i][removeKeys[j]];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Remove from columns list\n\t\tif (query.columns.length > 0) {\n\t\t\tquery.columns = query.columns.filter(function (column) {\n\t\t\t\tvar found = false;\n\t\t\t\tremoveKeys.forEach(function (key) {\n\t\t\t\t\tif (column.columnid == key) found = true;\n\t\t\t\t});\n\t\t\t\treturn !found;\n\t\t\t});\n\t\t}\n\t}\n\n\tif (typeof query.removeLikeKeys != 'undefined' && query.removeLikeKeys.length > 0) {\n\t\tvar removeLikeKeys = query.removeLikeKeys;\n\n\t\t// Remove unused columns\n\t\t// SELECT * REMOVE COLUMNS LIKE \"%b\"\n\t\tfor (var i = 0, ilen = query.data.length; i < ilen; i++) {\n\t\t\tr = query.data[i];\n\t\t\tfor (var k in r) {\n\t\t\t\tfor (j = 0; j < query.removeLikeKeys.length; j++) {\n\t\t\t\t\tif (alasql.utils.like(query.removeLikeKeys[j], k)) {\n\t\t\t\t\t\t//\t\t\t\t\tif(k.match(query.removeLikeKeys[j])) {\n\t\t\t\t\t\tdelete r[k];\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif (query.columns.length > 0) {\n\t\t\tquery.columns = query.columns.filter(function (column) {\n\t\t\t\tvar found = false;\n\t\t\t\tremoveLikeKeys.forEach(function (key) {\n\t\t\t\t\t//\t\t\t\t\tif(column.columnid.match(key)) found = true;\n\t\t\t\t\tif (alasql.utils.like(key, column.columnid)) {\n\t\t\t\t\t\tfound = true;\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\treturn !found;\n\t\t\t});\n\t\t}\n\t}\n\n\tif (query.pivotfn) query.pivotfn();\n\tif (query.unpivotfn) query.unpivotfn();\n\n\tif (query.intoallfn) {\n\n\t\t//\t\tvar res = query.intoallfn(query.columns,query.cb,query.A, query.B, alasql);\n\t\tvar res = query.intoallfn(query.columns, query.cb, query.params, query.alasql);\n\n\t\t//\t\tif(query.cb) res = query.cb(res,query.A, query.B);\n\n\t\t//\t\tdebugger;\n\t\treturn res;\n\t} else if (query.intofn) {\n\t\tilen = query.data.length;\n\t\tfor (i = 0; i < ilen; i++) {\n\t\t\tquery.intofn(query.data[i], i, query.params, query.alasql);\n\t\t}\n\n\t\tif (query.cb) query.cb(query.data.length, query.A, query.B);\n\t\treturn query.data.length;\n\t} else {\n\n\t\tres = query.data;\n\t\tif (query.cb) res = query.cb(query.data, query.A, query.B);\n\t\treturn res;\n\t}\n}\n\n// Limiting\nfunction doLimit(query) {\n\n\tif (query.limit) {\n\t\tvar offset = 0;\n\t\tif (query.offset) {\n\t\t\toffset = query.offset | 0 || 0;\n\t\t\toffset = offset < 0 ? 0 : offset;\n\t\t}\n\t\tvar limit;\n\t\tif (query.percent) {\n\t\t\tlimit = (((query.data.length * query.limit) / 100) | 0) + offset;\n\t\t} else {\n\t\t\tlimit = (query.limit | 0) + offset;\n\t\t}\n\t\tquery.data = query.data.slice(offset, limit);\n\t}\n}\n\n// Distinct\nfunction doDistinct(query) {\n\tif (query.distinct) {\n\t\tvar uniq = {};\n\t\t// TODO: Speedup, because Object.keys is slow**\n\t\t// TODO: Problem with DISTINCT on objects\n\t\tvar keys = Object.keys(query.data[0] || []);\n\t\tfor (var i = 0, ilen = query.data.length; i < ilen; i++) {\n\t\t\tvar uix = keys\n\t\t\t\t.map(function (k) {\n\t\t\t\t\treturn query.data[i][k];\n\t\t\t\t})\n\t\t\t\t.join('`');\n\t\t\tuniq[uix] = query.data[i];\n\t\t}\n\t\tquery.data = [];\n\t\tfor (var key in uniq) {\n\t\t\tquery.data.push(uniq[key]);\n\t\t}\n\t}\n}\n\n// Optimization: preliminary indexation of joins\nvar preIndex = function (query) {\n\n\t// Loop over all sources\n\t// Todo: make this loop smaller and more graspable\n\tfor (var k = 0, klen = query.sources.length; k < klen; k++) {\n\t\tvar source = query.sources[k];\n\t\tdelete source.ix;\n\t\t// If there is indexation rule\n\n\t\tif (k > 0 && source.optimization == 'ix' && source.onleftfn && source.onrightfn) {\n\t\t\t// If there is no table.indices - create it\n\t\t\tif (source.databaseid && alasql.databases[source.databaseid].tables[source.tableid]) {\n\t\t\t\tif (!alasql.databases[source.databaseid].tables[source.tableid].indices)\n\t\t\t\t\tquery.database.tables[source.tableid].indices = {};\n\t\t\t\t// Check if index already exists\n\t\t\t\tvar ixx =\n\t\t\t\t\talasql.databases[source.databaseid].tables[source.tableid].indices[\n\t\t\t\t\t\thash(source.onrightfns + '`' + source.srcwherefns)\n\t\t\t\t\t];\n\t\t\t\tif (!alasql.databases[source.databaseid].tables[source.tableid].dirty && ixx) {\n\t\t\t\t\tsource.ix = ixx;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (!source.ix) {\n\t\t\t\tsource.ix = {};\n\t\t\t\t// Walking over source data\n\t\t\t\tvar scope = {};\n\t\t\t\tvar i = 0;\n\t\t\t\tvar ilen = source.data.length;\n\t\t\t\tvar dataw;\n\t\t\t\t//\t\t\t\twhile(source.getfn i= query.sources.length) {\n\t\t// Todo: check if this runs once too many\n\n\t\t// Then apply where and select\n\n\t\tif (query.wherefn(scope, query.params, alasql)) {\n\n\t\t\t//\t\t\tvar res = query.selectfn(scope, query.params, alasql);\n\n\t\t\t// If there is a GROUP BY then pipe to grouping function\n\t\t\tif (query.groupfn) {\n\t\t\t\tquery.groupfn(scope, query.params, alasql);\n\t\t\t} else {\n\t\t\t\t//\t\t\t\tquery.qwerty = 999;\n\n\t\t\t\tquery.data.push(query.selectfn(scope, query.params, alasql));\n\t\t\t}\n\t\t}\n\t} else if (query.sources[h].applyselect) {\n\n\t\tvar source = query.sources[h];\n\t\tsource.applyselect(\n\t\t\tquery.params,\n\t\t\tfunction (data) {\n\t\t\t\tif (data.length > 0) {\n\n\t\t\t\t\tfor (var i = 0; i < data.length; i++) {\n\t\t\t\t\t\tscope[source.alias] = data[i];\n\t\t\t\t\t\tdoJoin(query, scope, h + 1);\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tif (source.applymode == 'OUTER') {\n\t\t\t\t\t\tscope[source.alias] = {};\n\t\t\t\t\t\tdoJoin(query, scope, h + 1);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t},\n\t\t\tscope\n\t\t);\n\n\t} else {\n\t\t// STEP 1\n\n\t\tvar source = query.sources[h];\n\t\tvar nextsource = query.sources[h + 1];\n\n\t\t//\t\tif(source.joinmode == \"LEFT\" || source.joinmode == \"INNER\" || source.joinmode == \"RIGHT\"\n\t\t//\t\t\t|| source.joinmode == \"OUTER\" || source.joinmode == \"SEMI\") {\n\t\t// Todo: check if this is smart\n\t\tif (true) {\n\t\t\t//source.joinmode != \"ANTI\") {\n\n\t\t\tvar tableid = source.alias || source.tableid;\n\t\t\tvar pass = false; // For LEFT JOIN\n\t\t\tvar data = source.data;\n\t\t\tvar opt = false;\n\n\t\t\t// Reduce data for looping if there is optimization hint\n\t\t\tif (!source.getfn || (source.getfn && !source.dontcache)) {\n\t\t\t\tif (\n\t\t\t\t\tsource.joinmode != 'RIGHT' &&\n\t\t\t\t\tsource.joinmode != 'OUTER' &&\n\t\t\t\t\tsource.joinmode != 'ANTI' &&\n\t\t\t\t\tsource.optimization == 'ix'\n\t\t\t\t) {\n\t\t\t\t\tdata = source.ix[source.onleftfn(scope, query.params, alasql)] || [];\n\t\t\t\t\topt = true;\n\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Main cycle\n\t\t\tvar i = 0;\n\t\t\tif (typeof data == 'undefined') {\n\t\t\t\tthrow new Error('Data source number ' + h + ' in undefined');\n\t\t\t}\n\t\t\tvar ilen = data.length;\n\t\t\tvar dataw;\n\n\t\t\twhile ((dataw = data[i]) || (!opt && source.getfn && (dataw = source.getfn(i))) || i < ilen) {\n\t\t\t\tif (!opt && source.getfn && !source.dontcache) data[i] = dataw;\n\n\t\t\t\tscope[tableid] = dataw;\n\n\t\t\t\t// Reduce with ON and USING clause\n\t\t\t\tvar usingPassed = !source.onleftfn;\n\t\t\t\tif (!usingPassed) {\n\t\t\t\t\tvar left = source.onleftfn(scope, query.params, alasql);\n\t\t\t\t\tvar right = source.onrightfn(scope, query.params, alasql);\n\t\t\t\t\tif (left instanceof String || left instanceof Number) left = left.valueOf();\n\t\t\t\t\tif (right instanceof String || right instanceof Number) right = left.valueOf();\n\t\t\t\t\tusingPassed = left == right;\n\t\t\t\t}\n\n\t\t\t\tif (usingPassed) {\n\t\t\t\t\t// For all non-standard JOINs like a-b=0\n\t\t\t\t\tif (source.onmiddlefn(scope, query.params, alasql)) {\n\t\t\t\t\t\t// Recursively call new join\n\t\t\t\t\t\t//\t\t\t\t\t\tif(source.joinmode == \"LEFT\" || source.joinmode == \"INNER\" || source.joinmode == \"OUTER\" || source.joinmode == \"RIGHT\" ) {\n\t\t\t\t\t\tif (source.joinmode != 'SEMI' && source.joinmode != 'ANTI') {\n\n\t\t\t\t\t\t\tdoJoin(query, scope, h + 1);\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// if(source.data[i].f = 200) debugger;\n\n\t\t\t\t\t\t//\t\t\t\t\t\tif(source.joinmode == \"RIGHT\" || source.joinmode == \"ANTI\" || source.joinmode == \"OUTER\") {\n\t\t\t\t\t\tif (source.joinmode != 'LEFT' && source.joinmode != 'INNER') {\n\t\t\t\t\t\t\tdataw._rightjoin = true;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// for LEFT JOIN\n\t\t\t\t\t\tpass = true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\ti++;\n\t\t\t}\n\n\t\t\t// Additional join for LEFT JOINS\n\t\t\tif (\n\t\t\t\t(source.joinmode == 'LEFT' || source.joinmode == 'OUTER' || source.joinmode == 'SEMI') &&\n\t\t\t\t!pass\n\t\t\t) {\n\t\t\t\t// Clear the scope after the loop\n\t\t\t\tscope[tableid] = {};\n\t\t\t\tdoJoin(query, scope, h + 1);\n\t\t\t}\n\t\t}\n\n\t\t// When there is no records\n\t\t//\t\tif(data.length == 0 && query.groupfn) {\n\t\t//\t\t\tscope[tableid] = undefined;\n\t\t//\t\t\tdoJoin(query,scope,h+1);\n\t\t//\t\t}\n\n\t\t// STEP 2\n\n\t\tif (h == 0) {\n\t\t\tfor (var nh = h + 1; nh < query.sources.length; nh++) {\n\t\t\t\tif (\n\t\t\t\t\tnextsource.joinmode == 'OUTER' ||\n\t\t\t\t\tnextsource.joinmode == 'RIGHT' ||\n\t\t\t\t\tnextsource.joinmode == 'ANTI'\n\t\t\t\t) {\n\t\t\t\t\tscope[source.alias] = {};\n\n\t\t\t\t\tvar j = 0;\n\t\t\t\t\tvar jlen = nextsource.data.length;\n\t\t\t\t\tvar dataw;\n\n\t\t\t\t\twhile (\n\t\t\t\t\t\t(dataw = nextsource.data[j]) ||\n\t\t\t\t\t\t(nextsource.getfn && (dataw = nextsource.getfn(j))) ||\n\t\t\t\t\t\tj < jlen\n\t\t\t\t\t) {\n\t\t\t\t\t\tif (nextsource.getfn && !nextsource.dontcache) {\n\t\t\t\t\t\t\tnextsource.data[j] = dataw;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif (dataw._rightjoin) {\n\t\t\t\t\t\t\tdelete dataw._rightjoin;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t//\t\t\t\t\t\tdelete dataw._rightjoin;\n\n\t\t\t\t\t\t\tscope[nextsource.alias] = dataw;\n\t\t\t\t\t\t\tdoJoin(query, scope, nh + 1);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tj++;\n\t\t\t\t\t}\n\t\t\t\t\t//\t\t\t\tdebugger;\n\t\t\t\t} else {\n\n\t\t\t\t}\n\t\t\t\tsource = query.sources[nh];\n\t\t\t\tnextsource = query.sources[nh + 1];\n\t\t\t}\n\t\t}\n\n\t\tscope[tableid] = undefined;\n\n\t}\n}\n\nfunction swapSources(query, h) {\n\tvar source = query.sources[h];\n\tvar nextsource = query.sources[h + 1];\n\n\tvar onleftfn = source.onleftfn;\n\tvar onleftfns = source.onleftfns;\n\tvar onrightfn = source.onrightfn;\n\tvar onrightfns = source.onrightfns;\n\tvar optimization = source.optimization;\n\n\tsource.onleftfn = nextsource.onrightfn;\n\tsource.onleftfns = nextsource.onrightfns;\n\tsource.onrightfn = nextsource.onleftfn;\n\tsource.onrightfns = nextsource.onleftfns;\n\tsource.optimization = nextsource.optimization;\n\n\tnextsource.onleftfn = onleftfn;\n\tnextsource.onleftfns = onleftfns;\n\tnextsource.onrightfn = onrightfn;\n\tnextsource.onrightfns = onrightfns;\n\tnextsource.optimization = optimization;\n\n\tquery.sources[h] = nextsource;\n\tquery.sources[h + 1] = source;\n}\n/*\n//\n// Select run-time part for Alasql.js\n// Date: 03.11.2014\n// (c) 2014, Andrey Gershun\n//\n*/\n\n//\n// Main part of SELECT procedure\n//\n\n/* global yy */\n\nyy.Select = class Select {\n\tconstructor(params) {\n\t\tObject.assign(this, params);\n\t}\n\n\ttoString() {\n\t\tvar s;\n\t\ts = '';\n\t\tif (this.explain) {\n\t\t\ts += 'EXPLAIN ';\n\t\t}\n\t\ts += 'SELECT ';\n\t\tif (this.modifier) {\n\t\t\ts += this.modifier + ' ';\n\t\t}\n\t\tif (this.distinct) {\n\t\t\ts += 'DISTINCT ';\n\t\t}\n\t\tif (this.top) {\n\t\t\ts += 'TOP ' + this.top.value + ' ';\n\t\t\tif (this.percent) {\n\t\t\t\ts += 'PERCENT ';\n\t\t\t}\n\t\t}\n\t\ts += this.columns\n\t\t\t.map(function (col) {\n\t\t\t\tvar s;\n\t\t\t\ts = col.toString();\n\t\t\t\tif (typeof col.as !== 'undefined') {\n\t\t\t\t\ts += ' AS ' + col.as;\n\t\t\t\t}\n\t\t\t\treturn s;\n\t\t\t})\n\t\t\t.join(', ');\n\t\tif (this.from) {\n\t\t\ts +=\n\t\t\t\t' FROM ' +\n\t\t\t\tthis.from\n\t\t\t\t\t.map(function (f) {\n\t\t\t\t\t\tvar ss;\n\t\t\t\t\t\tss = f.toString();\n\t\t\t\t\t\tif (f.as) {\n\t\t\t\t\t\t\tss += ' AS ' + f.as;\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn ss;\n\t\t\t\t\t})\n\t\t\t\t\t.join(',');\n\t\t}\n\t\tif (this.joins) {\n\t\t\ts += this.joins\n\t\t\t\t.map(function (jn) {\n\t\t\t\t\tvar ss;\n\t\t\t\t\tss = ' ';\n\t\t\t\t\tif (jn.joinmode) {\n\t\t\t\t\t\tss += jn.joinmode + ' ';\n\t\t\t\t\t}\n\t\t\t\t\tif (jn.table) {\n\t\t\t\t\t\tss += 'JOIN ' + jn.table.toString();\n\t\t\t\t\t} else if (jn.select) {\n\t\t\t\t\t\tss += 'JOIN (' + jn.select.toString() + ')';\n\t\t\t\t\t} else if (jn instanceof alasql.yy.Apply) {\n\t\t\t\t\t\tss += jn.toString();\n\t\t\t\t\t} else {\n\t\t\t\t\t\tthrow new Error('Wrong type in JOIN mode');\n\t\t\t\t\t}\n\t\t\t\t\tif (jn.as) {\n\t\t\t\t\t\tss += ' AS ' + jn.as;\n\t\t\t\t\t}\n\t\t\t\t\tif (jn.using) {\n\t\t\t\t\t\tss += ' USING ' + jn.using.toString();\n\t\t\t\t\t}\n\t\t\t\t\tif (jn.on) {\n\t\t\t\t\t\tss += ' ON ' + jn.on.toString();\n\t\t\t\t\t}\n\t\t\t\t\treturn ss;\n\t\t\t\t})\n\t\t\t\t.join('');\n\t\t}\n\t\tif (this.where) {\n\t\t\ts += ' WHERE ' + this.where.toString();\n\t\t}\n\t\tif (this.group && this.group.length > 0) {\n\t\t\ts +=\n\t\t\t\t' GROUP BY ' +\n\t\t\t\tthis.group\n\t\t\t\t\t.map(function (grp) {\n\t\t\t\t\t\treturn grp.toString();\n\t\t\t\t\t})\n\t\t\t\t\t.join(', ');\n\t\t}\n\t\tif (this.having) {\n\t\t\ts += ' HAVING ' + this.having.toString();\n\t\t}\n\t\tif (this.order && this.order.length > 0) {\n\t\t\ts +=\n\t\t\t\t' ORDER BY ' +\n\t\t\t\tthis.order\n\t\t\t\t\t.map(function (ord) {\n\t\t\t\t\t\treturn ord.toString();\n\t\t\t\t\t})\n\t\t\t\t\t.join(', ');\n\t\t}\n\t\tif (this.limit) {\n\t\t\ts += ' LIMIT ' + this.limit.value;\n\t\t}\n\t\tif (this.offset) {\n\t\t\ts += ' OFFSET ' + this.offset.value;\n\t\t}\n\t\tif (this.union) {\n\t\t\ts += ' UNION ' + (this.corresponding ? 'CORRESPONDING ' : '') + this.union.toString();\n\t\t}\n\t\tif (this.unionall) {\n\t\t\ts += ' UNION ALL ' + (this.corresponding ? 'CORRESPONDING ' : '') + this.unionall.toString();\n\t\t}\n\t\tif (this.except) {\n\t\t\ts += ' EXCEPT ' + (this.corresponding ? 'CORRESPONDING ' : '') + this.except.toString();\n\t\t}\n\t\tif (this.intersect) {\n\t\t\ts += ' INTERSECT ' + (this.corresponding ? 'CORRESPONDING ' : '') + this.intersect.toString();\n\t\t}\n\t\treturn s;\n\t}\n\n\t/**\n\t Select statement in expression\n\t */\n\ttoJS(context) {\n\n\t\t//\tif(this.expression.reduced) return 'true';\n\t\t//\treturn this.expression.toJS(context, tableid, defcols);\n\n\t\t//\tvar s = 'this.queriesdata['+(this.queriesidx-1)+'][0]';\n\t\tvar s =\n\t\t\t'alasql.utils.flatArray(this.queriesfn[' +\n\t\t\t(this.queriesidx - 1) +\n\t\t\t'](this.params,null,' +\n\t\t\tcontext +\n\t\t\t'))[0]';\n\n\t\treturn s;\n\t}\n\n\t// Compile SELECT statement\n\tcompile(databaseid, params) {\n\t\tvar db = alasql.databases[databaseid];\n\t\t// Create variable for query\n\t\tvar query = new Query();\n\n\t\t// Array with columns to be removed\n\t\tquery.removeKeys = [];\n\t\tquery.aggrKeys = [];\n\n\t\tquery.explain = this.explain; // Explain\n\t\tquery.explaination = [];\n\t\tquery.explid = 1;\n\n\t\tquery.modifier = this.modifier;\n\n\t\tquery.database = db;\n\t\t// 0. Precompile whereexists\n\t\tthis.compileWhereExists(query);\n\n\t\t// 0. Precompile queries for IN, NOT IN, ANY and ALL operators\n\t\tthis.compileQueries(query);\n\n\t\tquery.defcols = this.compileDefCols(query, databaseid);\n\n\t\t// 1. Compile FROM clause\n\t\tquery.fromfn = this.compileFrom(query);\n\n\t\t// 2. Compile JOIN clauses\n\t\tif (this.joins) {\n\t\t\tthis.compileJoins(query);\n\t\t}\n\n\t\t// todo?: 3. Compile SELECT clause\n\t\t// For ROWNUM()\n\t\tquery.rownums = [];\n\n\t\tthis.compileSelectGroup0(query);\n\n\t\tif (this.group || query.selectGroup.length > 0) {\n\t\t\tquery.selectgfns = this.compileSelectGroup1(query);\n\t\t} else {\n\t\t\tquery.selectfns = this.compileSelect1(query, params);\n\t\t}\n\n\t\t// Remove columns clause\n\t\tthis.compileRemoveColumns(query);\n\n\t\t// 5. Optimize WHERE and JOINS\n\t\tif (this.where) {\n\t\t\tthis.compileWhereJoins(query);\n\t\t}\n\n\t\t// 4. Compile WHERE clause\n\t\tquery.wherefn = this.compileWhere(query);\n\n\t\t// 6. Compile GROUP BY\n\t\tif (this.group || query.selectGroup.length > 0) {\n\t\t\tquery.groupfn = this.compileGroup(query);\n\t\t}\n\n\t\t// 6. Compile HAVING\n\t\tif (this.having) {\n\t\t\tquery.havingfn = this.compileHaving(query);\n\t\t}\n\n\t\t// 8. Compile ORDER BY clause\n\t\tif (this.order) {\n\t\t\tquery.orderfn = this.compileOrder(query, params);\n\t\t}\n\n\t\tif (this.group || query.selectGroup.length > 0) {\n\t\t\tquery.selectgfn = this.compileSelectGroup2(query);\n\t\t} else {\n\t\t\tquery.selectfn = this.compileSelect2(query, params);\n\t\t}\n\n\t\t// 7. Compile DISTINCT, LIMIT and OFFSET\n\t\tquery.distinct = this.distinct;\n\n\t\t// 9. Compile PIVOT clause\n\t\tif (this.pivot) query.pivotfn = this.compilePivot(query);\n\t\tif (this.unpivot) query.pivotfn = this.compileUnpivot(query);\n\n\t\t// 10. Compile TOP/LIMIT/OFFSET/FETCH clause\n\t\tif (this.top) {\n\t\t\tquery.limit = this.top.value;\n\t\t} else if (this.limit) {\n\t\t\tquery.limit = this.limit.value;\n\t\t\tif (this.offset) {\n\t\t\t\tquery.offset = this.offset.value;\n\t\t\t}\n\t\t}\n\n\t\tquery.percent = this.percent;\n\n\t\t// 9. Compile ordering function for UNION and UNIONALL\n\t\tquery.corresponding = this.corresponding; // If CORRESPONDING flag exists\n\t\tif (this.union) {\n\t\t\tquery.unionfn = this.union.compile(databaseid);\n\t\t\tif (this.union.order) {\n\t\t\t\tquery.orderfn = this.union.compileOrder(query, params);\n\t\t\t} else {\n\t\t\t\tquery.orderfn = null;\n\t\t\t}\n\t\t} else if (this.unionall) {\n\t\t\tquery.unionallfn = this.unionall.compile(databaseid);\n\t\t\tif (this.unionall.order) {\n\t\t\t\tquery.orderfn = this.unionall.compileOrder(query, params);\n\t\t\t} else {\n\t\t\t\tquery.orderfn = null;\n\t\t\t}\n\t\t} else if (this.except) {\n\t\t\tquery.exceptfn = this.except.compile(databaseid);\n\t\t\tif (this.except.order) {\n\t\t\t\tquery.orderfn = this.except.compileOrder(query, params);\n\t\t\t} else {\n\t\t\t\tquery.orderfn = null;\n\t\t\t}\n\t\t} else if (this.intersect) {\n\t\t\tquery.intersectfn = this.intersect.compile(databaseid);\n\t\t\tif (this.intersect.order) {\n\t\t\t\tquery.intersectfn = this.intersect.compileOrder(query, params);\n\t\t\t} else {\n\t\t\t\tquery.orderfn = null;\n\t\t\t}\n\t\t}\n\n\t\t// SELECT INTO\n\t\tif (this.into) {\n\t\t\tif (this.into instanceof yy.Table) {\n\t\t\t\t//\n\t\t\t\t// Save into the table in database\n\t\t\t\t//\n\t\t\t\tif (\n\t\t\t\t\talasql.options.autocommit &&\n\t\t\t\t\talasql.databases[this.into.databaseid || databaseid].engineid\n\t\t\t\t) {\n\t\t\t\t\t// For external database when AUTOCOMMIT is ONs\n\t\t\t\t\tquery.intoallfns = `return alasql\n\t\t\t\t\t\t\t\t.engines[${JSON.stringify(alasql.databases[this.into.databaseid || databaseid].engineid)}]\n\t\t\t\t\t\t\t\t.intoTable(\n\t\t\t\t\t\t\t\t\t${JSON.stringify(this.into.databaseid || databaseid)},\n\t\t\t\t\t\t\t\t\t${JSON.stringify(this.into.tableid)},\n\t\t\t\t\t\t\t\t\tthis.data,\n\t\t\t\t\t\t\t\t\tcolumns,\n\t\t\t\t\t\t\t\t\tcb\n\t\t\t\t\t\t\t\t);`;\n\t\t\t\t} else {\n\t\t\t\t\t// Into AlaSQL tables\n\t\t\t\t\tquery.intofns = `alasql\n\t\t\t\t\t\t\t.databases[${JSON.stringify(this.into.databaseid || databaseid)}]\n\t\t\t\t\t\t\t.tables[${JSON.stringify(this.into.tableid)}]\n\t\t\t\t\t\t\t.data.push(r);\n\t\t\t\t\t\t`;\n\t\t\t\t}\n\t\t\t} else if (this.into instanceof yy.VarValue) {\n\t\t\t\t//\n\t\t\t\t// Save into local variable\n\t\t\t\t// SELECT * INTO @VAR1 FROM ?\n\t\t\t\t//\n\t\t\t\tquery.intoallfns = `\n\t\t\t\t\talasql.vars[${JSON.stringify(this.into.variable)}]=this.data;\n\t\t\t\t\tres=this.data.length;\n\t\t\t\t\tif(cb) res = cb(res);\n\t\t\t\t\treturn res;\n\t\t\t\t`;\n\t\t\t} else if (this.into instanceof yy.FuncValue) {\n\t\t\t\t//\n\t\t\t\t// If this is INTO() function, then call it\n\t\t\t\t// with one or two parameters\n\t\t\t\t//\n\t\t\t\tvar qs = 'return alasql.into[' + JSON.stringify(this.into.funcid.toUpperCase()) + '](';\n\t\t\t\tif (this.into.args && this.into.args.length > 0) {\n\t\t\t\t\tqs += this.into.args[0].toJS() + ',';\n\t\t\t\t\tif (this.into.args.length > 1) {\n\t\t\t\t\t\tqs += this.into.args[1].toJS() + ',';\n\t\t\t\t\t} else {\n\t\t\t\t\t\tqs += 'undefined,';\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tqs += 'undefined, undefined,';\n\t\t\t\t}\n\t\t\t\tquery.intoallfns = qs + 'this.data,columns,cb)';\n\n\t\t\t} else if (this.into instanceof yy.ParamValue) {\n\t\t\t\t//\n\t\t\t\t// Save data into parameters array\n\t\t\t\t// like alasql('SELECT * INTO ? FROM ?',[outdata,srcdata]);\n\t\t\t\t//\n\t\t\t\tquery.intofns = `params[${JSON.stringify(this.into.param)}].push(r)`;\n\t\t\t}\n\n\t\t\tif (query.intofns) {\n\t\t\t\t// Create intofn function\n\n\t\t\t\tquery.intofn = new Function('r,i,params,alasql', 'var y;' + query.intofns);\n\t\t\t} else if (query.intoallfns) {\n\t\t\t\t// Create intoallfn function\n\n\t\t\t\tquery.intoallfn = new Function('columns,cb,params,alasql', 'var y;' + query.intoallfns);\n\t\t\t}\n\t\t}\n\n\t\t// Now, compile all togeather into one function with query object in scope\n\t\tvar statement = function (params, cb, oldscope) {\n\t\t\tquery.params = params;\n\t\t\t// Note the callback function has the data and error reversed due to existing code in promiseExec which has the\n\t\t\t// err and data swapped. This trickles down into alasql.exec and further. Rather than risk breaking the whole thing,\n\t\t\t// the (data, err) standard is maintained here.\n\t\t\tvar res1 = queryfn(query, oldscope, function (res, err) {\n\t\t\t\tif (err) {\n\t\t\t\t\treturn cb(null, err);\n\t\t\t\t}\n\t\t\t\tif (query.rownums.length > 0) {\n\t\t\t\t\tfor (var i = 0, ilen = res.length; i < ilen; i++) {\n\t\t\t\t\t\tfor (var j = 0, jlen = query.rownums.length; j < jlen; j++) {\n\t\t\t\t\t\t\tres[i][query.rownums[j]] = i + 1;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tvar res2 = modify(query, res);\n\n\t\t\t\tif (cb) {\n\t\t\t\t\tcb(res2);\n\t\t\t\t}\n\n\t\t\t\treturn res2;\n\t\t\t});\n\n\t\t\t//\t\tif(typeof res1 != 'undefined') res1 = modify(query,res1);\n\t\t\treturn res1;\n\t\t};\n\n\t\t//\tstatement.dbversion = ;\n\n\t\tstatement.query = query;\n\t\treturn statement;\n\t}\n\n\texecute(databaseid, params, cb) {\n\t\treturn this.compile(databaseid)(params, cb);\n\t\t//\tthrow new Error('Insert statement is should be compiled')\n\t}\n\n\tcompileWhereExists(query) {\n\t\tif (!this.exists) return;\n\t\tquery.existsfn = this.exists.map(function (ex) {\n\t\t\tvar nq = ex.compile(query.database.databaseid);\n\n\t\t\t//\t\t if(!nq.query.modifier) nq.query.modifier = 'RECORDSET';\n\t\t\tnq.query.modifier = 'RECORDSET';\n\t\t\treturn nq;\n\t\t});\n\t}\n\n\tcompileQueries(query) {\n\t\tif (!this.queries) return;\n\t\tquery.queriesfn = this.queries.map(function (q) {\n\t\t\tvar nq = q.compile(query.database.databaseid);\n\n\t\t\t//\tif(!nq.query) nq.query = {};\n\t\t\tnq.query.modifier = 'RECORDSET';\n\t\t\t//\t\t if(!nq.query.modifier) nq.query.modifier = 'RECORDSET';\n\t\t\treturn nq;\n\t\t});\n\t}\n\n\t// exec(databaseid) {\n\t// \tthrow new Error('Select statement should be precompiled');\n\t// }\n};\n\n/**\n Modify res according modifier\n @function\n @param {object} query Query object\n @param res {object|number|string|boolean} res Data to be converted\n */\nfunction modify(query, res) {\n\t// jshint ignore:line\n\n\t/* If source is a primitive value then return it */\n\tif (\n\t\ttypeof res === 'undefined' ||\n\t\ttypeof res === 'number' ||\n\t\ttypeof res === 'string' ||\n\t\ttypeof res === 'boolean'\n\t) {\n\t\treturn res;\n\t}\n\n\tvar modifier = query.modifier || alasql.options.modifier;\n\tvar columns = query.columns;\n\tif (typeof columns === 'undefined' || columns.length == 0) {\n\t\t// Try to create columns\n\t\tif (res.length > 0) {\n\t\t\tvar allcol = {};\n\t\t\tfor (var i = Math.min(res.length, alasql.options.columnlookup || 10) - 1; 0 <= i; i--) {\n\t\t\t\tfor (var key in res[i]) {\n\t\t\t\t\tallcol[key] = true;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tcolumns = Object.keys(allcol).map(function (columnid) {\n\t\t\t\treturn {columnid: columnid};\n\t\t\t});\n\t\t} else {\n\t\t\t// Cannot recognize columns\n\t\t\tcolumns = [];\n\t\t}\n\t}\n\n\tif (modifier === 'VALUE') {\n\n\t\tif (res.length > 0) {\n\t\t\tvar key;\n\t\t\tif (columns && columns.length > 0) {\n\t\t\t\tkey = columns[0].columnid;\n\t\t\t} else {\n\t\t\t\tkey = Object.keys(res[0])[0];\n\t\t\t}\n\t\t\tres = res[0][key];\n\t\t} else {\n\t\t\tres = undefined;\n\t\t}\n\t} else if (modifier === 'ROW') {\n\t\tif (res.length > 0) {\n\t\t\tvar key;\n\t\t\tvar a = [];\n\t\t\tfor (var key in res[0]) {\n\t\t\t\ta.push(res[0][key]);\n\t\t\t}\n\t\t\tres = a;\n\t\t} else {\n\t\t\tres = undefined;\n\t\t}\n\t} else if (modifier === 'COLUMN') {\n\t\tvar ar = [];\n\t\tif (res.length > 0) {\n\t\t\tvar key;\n\t\t\tif (columns && columns.length > 0) {\n\t\t\t\tkey = columns[0].columnid;\n\t\t\t} else {\n\t\t\t\tkey = Object.keys(res[0])[0];\n\t\t\t}\n\n\t\t\tfor (var i = 0, ilen = res.length; i < ilen; i++) {\n\t\t\t\tar.push(res[i][key]);\n\t\t\t}\n\t\t}\n\t\tres = ar;\n\t} else if (modifier === 'MATRIX') {\n\t\t// Returns square matrix of rows\n\t\tvar ar = [];\n\t\tfor (var i = 0; i < res.length; i++) {\n\t\t\tvar a = [];\n\t\t\tvar r = res[i];\n\t\t\tfor (var j = 0; j < columns.length; j++) {\n\t\t\t\ta.push(r[columns[j].columnid]);\n\t\t\t}\n\t\t\tar.push(a);\n\t\t}\n\t\tres = ar;\n\t} else if (modifier === 'INDEX') {\n\t\tvar ar = {};\n\t\tvar key, val;\n\t\tif (columns && columns.length > 0) {\n\t\t\tkey = columns[0].columnid;\n\t\t\tval = columns[1].columnid;\n\t\t} else {\n\t\t\tvar okeys = Object.keys(res[0]);\n\t\t\tkey = okeys[0];\n\t\t\tval = okeys[1];\n\t\t}\n\t\tfor (var i = 0, ilen = res.length; i < ilen; i++) {\n\t\t\tar[res[i][key]] = res[i][val];\n\t\t}\n\t\tres = ar;\n\t\t//\t\tres = arrayOfArrays(res);\n\t} else if (modifier === 'RECORDSET') {\n\t\tres = new alasql.Recordset({columns: columns, data: res});\n\t\t//\t\tres = arrayOfArrays(res);\n\t} else if (modifier === 'TEXTSTRING') {\n\t\tvar key;\n\t\tif (columns && columns.length > 0) {\n\t\t\tkey = columns[0].columnid;\n\t\t} else {\n\t\t\tkey = Object.keys(res[0])[0];\n\t\t}\n\n\t\tfor (var i = 0, ilen = res.length; i < ilen; i++) {\n\t\t\tres[i] = res[i][key];\n\t\t}\n\t\tres = res.join('\\n');\n\t\t//\t\tres = arrayOfArrays(res);\n\t}\n\treturn res;\n}\n/*\n//\n// EXISTS and other subqueries functions functions for Alasql.js\n// Date: 03.11.2014\n// (c) 2014, Andrey Gershun\n//\n*/\n\nyy.ExistsValue = class ExistsValue {\n\tconstructor(params) {\n\t\tObject.assign(this, params);\n\t}\n\n\ttoString() {\n\t\treturn 'EXISTS(' + this.value.toString() + ')';\n\t}\n\n\ttoType() {\n\t\treturn 'boolean';\n\t}\n\n\ttoJS(context, tableid, defcols) {\n\n\t\treturn 'this.existsfn[' + this.existsidx + '](params,null,' + context + ').data.length';\n\t}\n};\n\n//\n// Prepare subqueries and exists\n//\nalasql.precompile = function (statement, databaseid, params) {\n\n\tif (!statement) return;\n\tstatement.params = params;\n\tif (statement.queries) {\n\n\t\tstatement.queriesfn = statement.queries.map(function (q) {\n\t\t\tvar nq = q.compile(databaseid || statement.database.databaseid);\n\n\t\t\t//\t\t\t nq.query.modifier = undefined;\n\t\t\t//\t\t\t if(!nq.query.modifier) nq.query.modifier = 'RECORDSET';\n\t\t\tnq.query.modifier = 'RECORDSET';\n\t\t\treturn nq;\n\t\t});\n\t}\n\tif (statement.exists) {\n\n\t\tstatement.existsfn = statement.exists.map(function (ex) {\n\t\t\tvar nq = ex.compile(databaseid || statement.database.databaseid);\n\n\t\t\t//\t\t\t if(!nq.query.modifier) nq.query.modifier = 'RECORDSET';\n\t\t\t//\t\t\t if(!nq.query.modifier) nq.query.modifier = 'ARRAY';\n\t\t\tnq.query.modifier = 'RECORDSET';\n\t\t\treturn nq;\n\t\t});\n\t}\n};\n/*\n//\n// Select compiler part for Alasql.js\n// Date: 03.11.2014\n// (c) 2014, Andrey Gershun\n//\n*/\n\n/* global yy, alasql, Mongo, returnTrue */\n\nyy.Select.prototype.compileFrom = function (query) {\n\n\tvar self = this;\n\tquery.sources = [];\n\t//\tvar tableid = this.from[0].tableid;\n\t//\tvar as = '';\n\t//\tif(self.from[0].as) as = this.from[0].as;\n\n\tquery.aliases = {};\n\tif (!self.from) return;\n\n\tself.from.forEach(function (tq) {\n\n\t\tvar ps = '';\n\n\t\tvar alias = tq.as || tq.tableid;\n\n\t\tif (tq instanceof yy.Table) {\n\n\t\t\tquery.aliases[alias] = {\n\t\t\t\ttableid: tq.tableid,\n\t\t\t\tdatabaseid: tq.databaseid || query.database.databaseid,\n\t\t\t\ttype: 'table',\n\t\t\t};\n\t\t} else if (tq instanceof yy.Select) {\n\t\t\tquery.aliases[alias] = {type: 'subquery'};\n\t\t} else if (tq instanceof yy.Search) {\n\t\t\tquery.aliases[alias] = {type: 'subsearch'};\n\t\t} else if (tq instanceof yy.ParamValue) {\n\t\t\tquery.aliases[alias] = {type: 'paramvalue'};\n\t\t} else if (tq instanceof yy.FuncValue) {\n\t\t\tquery.aliases[alias] = {type: 'funcvalue'};\n\t\t} else if (tq instanceof yy.VarValue) {\n\t\t\tquery.aliases[alias] = {type: 'varvalue'};\n\t\t} else if (tq instanceof yy.FromData) {\n\t\t\tquery.aliases[alias] = {type: 'fromdata'};\n\t\t} else if (tq instanceof yy.Json) {\n\t\t\tquery.aliases[alias] = {type: 'json'};\n\t\t} else if (tq.inserted) {\n\t\t\tquery.aliases[alias] = {type: 'inserted'};\n\t\t} else {\n\t\t\tthrow new Error('Wrong table at FROM');\n\t\t}\n\n\t\tvar source = {\n\t\t\talias: alias,\n\t\t\tdatabaseid: tq.databaseid || query.database.databaseid,\n\t\t\ttableid: tq.tableid,\n\t\t\tjoinmode: 'INNER',\n\t\t\tonmiddlefn: returnTrue,\n\t\t\tsrcwherefns: '', // for optimization\n\t\t\tsrcwherefn: returnTrue,\n\t\t\t//\t\t\tcolumns: []\n\t\t};\n\n\t\tif (tq instanceof yy.Table) {\n\t\t\t// Get columns from table\n\t\t\tsource.columns = alasql.databases[source.databaseid].tables[source.tableid].columns;\n\n\t\t\tif (\n\t\t\t\talasql.options.autocommit &&\n\t\t\t\talasql.databases[source.databaseid].engineid &&\n\t\t\t\t!alasql.databases[source.databaseid].tables[source.tableid].view\n\t\t\t) {\n\n\t\t\t\t// TODO -- make view for external engine\n\t\t\t\tsource.datafn = function (query, params, cb, idx, alasql) {\n\t\t\t\t\treturn alasql.engines[alasql.databases[source.databaseid].engineid].fromTable(\n\t\t\t\t\t\tsource.databaseid,\n\t\t\t\t\t\tsource.tableid,\n\t\t\t\t\t\tcb,\n\t\t\t\t\t\tidx,\n\t\t\t\t\t\tquery\n\t\t\t\t\t);\n\t\t\t\t};\n\t\t\t} else if (alasql.databases[source.databaseid].tables[source.tableid].view) {\n\t\t\t\tsource.datafn = function (query, params, cb, idx, alasql) {\n\t\t\t\t\tvar res = alasql.databases[source.databaseid].tables[source.tableid].select(params);\n\t\t\t\t\tif (cb) res = cb(res, idx, query);\n\t\t\t\t\treturn res;\n\t\t\t\t};\n\t\t\t} else {\n\n\t\t\t\tsource.datafn = function (query, params, cb, idx, alasql) {\n\t\t\t\t\t/*\n\n*/\n\t\t\t\t\tvar res = alasql.databases[source.databaseid].tables[source.tableid].data;\n\n\t\t\t\t\tif (cb) res = cb(res, idx, query);\n\n\t\t\t\t\treturn res;\n\t\t\t\t\t//\t\t\t\treturn alasql.databases[source.databaseid].tables[source.tableid].data;\n\t\t\t\t};\n\t\t\t}\n\t\t} else if (tq instanceof yy.Select) {\n\t\t\tsource.subquery = tq.compile(query.database.databaseid);\n\t\t\tif (typeof source.subquery.query.modifier === 'undefined') {\n\t\t\t\tsource.subquery.query.modifier = 'RECORDSET'; // Subqueries always return recordsets\n\t\t\t}\n\t\t\tsource.columns = source.subquery.query.columns;\n\n\t\t\t//\t\t\ttq.columns;\n\n\t\t\tsource.datafn = function (query, params, cb, idx, alasql) {\n\t\t\t\t//\t\t\t\treturn source.subquery(query.params, cb, idx, query);\n\t\t\t\tvar res;\n\t\t\t\tsource.subquery(query.params, function (data) {\n\t\t\t\t\tres = data.data;\n\t\t\t\t\tif (cb) res = cb(res, idx, query);\n\t\t\t\t\treturn res;\n\t\t\t\t\t//\t\t\t\t\treturn data.data;\n\t\t\t\t});\n\n\t\t\t\treturn res;\n\t\t\t};\n\t\t} else if (tq instanceof yy.Search) {\n\t\t\tsource.subsearch = tq;\n\t\t\tsource.columns = [];\n\n\t\t\tsource.datafn = function (query, params, cb, idx, alasql) {\n\t\t\t\t//\t\t\t\treturn source.subquery(query.params, cb, idx, query);\n\t\t\t\tvar res;\n\t\t\t\tsource.subsearch.execute(query.database.databaseid, query.params, function (data) {\n\t\t\t\t\tres = data;\n\t\t\t\t\tif (cb) res = cb(res, idx, query);\n\t\t\t\t\treturn res;\n\t\t\t\t\t//\t\t\t\t\treturn data.data;\n\t\t\t\t});\n\n\t\t\t\treturn res;\n\t\t\t};\n\t\t} else if (tq instanceof yy.ParamValue) {\n\t\t\tps = \"var res = alasql.prepareFromData(params['\" + tq.param + \"']\";\n\n\t\t\tif (tq.array) ps += ',true';\n\t\t\tps += ');if(cb)res=cb(res,idx,query);return res';\n\t\t\tsource.datafn = new Function('query,params,cb,idx,alasql', ps);\n\t\t} else if (tq.inserted) {\n\t\t\tps = 'var res = alasql.prepareFromData(alasql.inserted';\n\t\t\tif (tq.array) ps += ',true';\n\t\t\tps += ');if(cb)res=cb(res,idx,query);return res';\n\t\t\tsource.datafn = new Function('query,params,cb,idx,alasql', ps);\n\t\t} else if (tq instanceof yy.Json) {\n\t\t\tps = 'var res = alasql.prepareFromData(' + tq.toJS();\n\n\t\t\tif (tq.array) ps += ',true';\n\t\t\tps += ');if(cb)res=cb(res,idx,query);return res';\n\t\t\tsource.datafn = new Function('query,params,cb,idx,alasql', ps);\n\t\t} else if (tq instanceof yy.VarValue) {\n\t\t\tps = \"var res = alasql.prepareFromData(alasql.vars['\" + tq.variable + \"']\";\n\n\t\t\tif (tq.array) ps += ',true';\n\t\t\tps += ');if(cb)res=cb(res,idx,query);return res';\n\t\t\tsource.datafn = new Function('query,params,cb,idx,alasql', ps);\n\t\t} else if (tq instanceof yy.FuncValue) {\n\t\t\tps = 'var res=alasql.from[' + JSON.stringify(tq.funcid.toUpperCase()) + '](';\n\n\t\t\tif (tq.args && tq.args.length > 0) {\n\t\t\t\tif (tq.args[0]) {\n\t\t\t\t\tps += tq.args[0].toJS('query.oldscope') + ',';\n\t\t\t\t} else {\n\t\t\t\t\tps += 'null,';\n\t\t\t\t}\n\t\t\t\tif (tq.args[1]) {\n\t\t\t\t\tps += tq.args[1].toJS('query.oldscope') + ',';\n\t\t\t\t} else {\n\t\t\t\t\tps += 'null,';\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tps += 'null,null,';\n\t\t\t}\n\t\t\tps += 'cb,idx,query';\n\t\t\tps += ');/*if(cb)res=cb(res,idx,query);*/return res';\n\n\t\t\tsource.datafn = new Function('query, params, cb, idx, alasql', ps);\n\t\t} else if (tq instanceof yy.FromData) {\n\t\t\tsource.datafn = function (query, params, cb, idx, alasql) {\n\t\t\t\tvar res = tq.data;\n\t\t\t\tif (cb) res = cb(res, idx, query);\n\t\t\t\treturn res;\n\t\t\t};\n\t\t} else {\n\t\t\tthrow new Error('Wrong table at FROM');\n\t\t}\n\t\t//\t\tsource.data = alasql.databases[source.databaseid].tables[source.tableid].data;\n\t\tquery.sources.push(source);\n\t});\n\t// TODO Add joins\n\tquery.defaultTableid = query.sources[0].alias;\n\n};\n\nalasql.prepareFromData = function (data, array) {\n\n\tvar i, ilen;\n\tvar res = data;\n\tif (typeof data === 'string') {\n\t\tres = data.split(/\\r?\\n/);\n\t\tif (array) {\n\t\t\tfor (i = 0, ilen = res.length; i < ilen; i++) {\n\t\t\t\tres[i] = [res[i]];\n\t\t\t}\n\t\t}\n\t} else if (array) {\n\t\tres = [];\n\t\tfor (i = 0, ilen = data.length; i < ilen; i++) {\n\t\t\tres.push([data[i]]);\n\t\t}\n\n\t} else if (typeof data === 'object' && !Array.isArray(data)) {\n\t\t//\t} else if(typeof data == 'object' && !(typeof data.length == 'undefined')) {\n\t\tif (\n\t\t\ttypeof Mongo !== 'undefined' &&\n\t\t\ttypeof Mongo.Collection !== 'undefined' &&\n\t\t\tdata instanceof Mongo.Collection\n\t\t) {\n\t\t\tres = data.find().fetch();\n\t\t} else {\n\t\t\tres = [];\n\t\t\tfor (var key in data) {\n\t\t\t\tif (data.hasOwnProperty(key)) res.push([key, data[key]]);\n\t\t\t}\n\t\t}\n\n\t}\n\n\treturn res;\n};\n/*\n//\n// Select compiler part for Alasql.js\n// Date: 03.11.2014\n// (c) 2014, Andrey Gershun\n//\n*/\n\n// SELECT Compile functions\n\n/* global yy, alasql, returnTrue, arrayIntersect */\n\n// Compile JOIN caluese\nyy.Select.prototype.compileJoins = function (query) {\n\n\t//\tdebugger;\n\tvar self = this;\n\n\tthis.joins.forEach(function (jn) {\n\t\t// Test CROSS-JOIN\n\t\tvar tq, ps, source;\n\t\tif (jn.joinmode === 'CROSS') {\n\t\t\tif (jn.using || jn.on) {\n\t\t\t\tthrow new Error('CROSS JOIN cannot have USING or ON clauses');\n\t\t\t} else {\n\t\t\t\tjn.joinmode = 'INNER';\n\t\t\t}\n\t\t}\n\n\t\tif (jn instanceof yy.Apply) {\n\n\t\t\tsource = {\n\t\t\t\talias: jn.as,\n\t\t\t\tapplymode: jn.applymode,\n\t\t\t\tonmiddlefn: returnTrue,\n\t\t\t\tsrcwherefns: '', // for optimization\n\t\t\t\tsrcwherefn: returnTrue,\n\t\t\t\tcolumns: [], // TODO check this\n\t\t\t};\n\t\t\tsource.applyselect = jn.select.compile(query.database.databaseid);\n\t\t\tsource.columns = source.applyselect.query.columns;\n\n\t\t\tsource.datafn = function (query, params, cb, idx, alasql) {\n\t\t\t\tvar res;\n\t\t\t\tif (cb) res = cb(res, idx, query);\n\t\t\t\treturn res;\n\t\t\t};\n\n\t\t\tquery.sources.push(source);\n\n\t\t\treturn;\n\t\t}\n\n\t\tif (jn.table) {\n\t\t\ttq = jn.table;\n\t\t\tsource = {\n\t\t\t\talias: jn.as || tq.tableid,\n\t\t\t\tdatabaseid: tq.databaseid || query.database.databaseid,\n\t\t\t\ttableid: tq.tableid,\n\t\t\t\tjoinmode: jn.joinmode,\n\t\t\t\tonmiddlefn: returnTrue,\n\t\t\t\tsrcwherefns: '', // for optimization\n\t\t\t\tsrcwherefn: returnTrue,\n\t\t\t\tcolumns: [],\n\t\t\t};\n\t\t\t//\n\n\t\t\tif (!alasql.databases[source.databaseid].tables[source.tableid]) {\n\t\t\t\tthrow new Error(\n\t\t\t\t\t\"Table '\" + source.tableid + \"' is not exists in database '\" + source.databaseid + \"'\"\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tsource.columns = alasql.databases[source.databaseid].tables[source.tableid].columns;\n\n\t\t\t// source.data = query.database.tables[source.tableid].data;\n\t\t\tif (alasql.options.autocommit && alasql.databases[source.databaseid].engineid) {\n\n\t\t\t\tsource.datafn = function (query, params, cb, idx, alasql) {\n\n\t\t\t\t\treturn alasql.engines[alasql.databases[source.databaseid].engineid].fromTable(\n\t\t\t\t\t\tsource.databaseid,\n\t\t\t\t\t\tsource.tableid,\n\t\t\t\t\t\tcb,\n\t\t\t\t\t\tidx,\n\t\t\t\t\t\tquery\n\t\t\t\t\t);\n\t\t\t\t};\n\t\t\t} else if (alasql.databases[source.databaseid].tables[source.tableid].view) {\n\t\t\t\tsource.datafn = function (query, params, cb, idx, alasql) {\n\t\t\t\t\tvar res = alasql.databases[source.databaseid].tables[source.tableid].select(params);\n\t\t\t\t\tif (cb) res = cb(res, idx, query);\n\t\t\t\t\treturn res;\n\t\t\t\t};\n\t\t\t} else {\n\t\t\t\tsource.datafn = function (query, params, cb, idx, alasql) {\n\t\t\t\t\tvar res = alasql.databases[source.databaseid].tables[source.tableid].data;\n\t\t\t\t\tif (cb) res = cb(res, idx, query);\n\t\t\t\t\treturn res;\n\t\t\t\t};\n\t\t\t}\n\n\t\t\t//\t\tvar alias = jn.as || tq.tableid;\n\t\t\t//\t\tif(tq) {\n\t\t\tquery.aliases[source.alias] = {\n\t\t\t\ttableid: tq.tableid,\n\t\t\t\tdatabaseid: tq.databaseid || query.database.databaseid,\n\t\t\t};\n\t\t\t//\t\t}\n\t\t} else if (jn.select) {\n\t\t\ttq = jn.select;\n\t\t\tsource = {\n\t\t\t\talias: jn.as,\n\t\t\t\t//\t\t\t\tdatabaseid: jn.databaseid || query.database.databaseid,\n\t\t\t\t//\t\t\t\ttableid: tq.tableid,\n\t\t\t\tjoinmode: jn.joinmode,\n\t\t\t\tonmiddlefn: returnTrue,\n\t\t\t\tsrcwherefns: '', // for optimization\n\t\t\t\tsrcwherefn: returnTrue,\n\t\t\t\tcolumns: [],\n\t\t\t};\n\n\t\t\tsource.subquery = tq.compile(query.database.databaseid);\n\t\t\tif (typeof source.subquery.query.modifier === 'undefined') {\n\t\t\t\tsource.subquery.query.modifier = 'RECORDSET'; // Subqueries always return recordsets\n\t\t\t}\n\t\t\tsource.columns = source.subquery.query.columns;\n\n\t\t\t//\t\t\tif(jn instanceof yy.Apply) {\n\t\t\tsource.datafn = function (query, params, cb, idx, alasql) {\n\t\t\t\t//\t\t\t\t\treturn cb(null,idx,alasql);\n\t\t\t\tsource.data = source.subquery(query.params, null, cb, idx).data;\n\t\t\t\t// var res = alasql.prepareFromData(params[idx]);\n\t\t\t\tvar res = source.data;\n\t\t\t\t// Propogate subquery result\n\t\t\t\tif (cb) res = cb(res, idx, query);\n\t\t\t\treturn res;\n\t\t\t};\n\t\t\t// } else {\n\t\t\t// \tsource.datafn = function(query, params, cb, idx, alasql) {\n\t\t\t// \t\treturn source.subquery(query.params, null, cb, idx);\n\t\t\t// \t}\n\t\t\t// }\n\t\t\tquery.aliases[source.alias] = {type: 'subquery'};\n\t\t} else if (jn.param) {\n\t\t\tsource = {\n\t\t\t\talias: jn.as,\n\t\t\t\t//\t\t\t\tdatabaseid: jn.databaseid || query.database.databaseid,\n\t\t\t\t//\t\t\t\ttableid: tq.tableid,\n\t\t\t\tjoinmode: jn.joinmode,\n\t\t\t\tonmiddlefn: returnTrue,\n\t\t\t\tsrcwherefns: '', // for optimization\n\t\t\t\tsrcwherefn: returnTrue,\n\t\t\t};\n\t\t\t// source.data = ;\n\t\t\tvar jnparam = jn.param.param;\n\n\t\t\tps = \"var res=alasql.prepareFromData(params['\" + jnparam + \"']\";\n\t\t\tif (jn.array) ps += ',true';\n\t\t\tps += ');if(cb)res=cb(res, idx, query);return res';\n\n\t\t\tsource.datafn = new Function('query,params,cb,idx, alasql', ps);\n\t\t\tquery.aliases[source.alias] = {type: 'paramvalue'};\n\t\t} else if (jn.variable) {\n\t\t\tsource = {\n\t\t\t\talias: jn.as,\n\t\t\t\t//\t\t\t\tdatabaseid: jn.databaseid || query.database.databaseid,\n\t\t\t\t//\t\t\t\ttableid: tq.tableid,\n\t\t\t\tjoinmode: jn.joinmode,\n\t\t\t\tonmiddlefn: returnTrue,\n\t\t\t\tsrcwherefns: '', // for optimization\n\t\t\t\tsrcwherefn: returnTrue,\n\t\t\t};\n\t\t\t// source.data = ;\n\t\t\t//\t\t\tvar jnparam = jn.param.param;\n\n\t\t\tps = \"var res=alasql.prepareFromData(alasql.vars['\" + jn.variable + \"']\";\n\t\t\tif (jn.array) ps += ',true';\n\t\t\tps += ');if(cb)res=cb(res, idx, query);return res';\n\n\t\t\tsource.datafn = new Function('query,params,cb,idx, alasql', ps);\n\t\t\tquery.aliases[source.alias] = {type: 'varvalue'};\n\t\t} else if (jn.func) {\n\t\t\tsource = {\n\t\t\t\talias: jn.as,\n\t\t\t\t//\t\t\t\tdatabaseid: jn.databaseid || query.database.databaseid,\n\t\t\t\t//\t\t\t\ttableid: tq.tableid,\n\t\t\t\tjoinmode: jn.joinmode,\n\t\t\t\tonmiddlefn: returnTrue,\n\t\t\t\tsrcwherefns: '', // for optimization\n\t\t\t\tsrcwherefn: returnTrue,\n\t\t\t};\n\t\t\t// source.data = ;\n\n\t\t\tvar s = 'var res=alasql.from[' + JSON.stringify(jn.func.funcid.toUpperCase()) + '](';\n\n\t\t\tvar args = jn.func.args;\n\t\t\tif (args && args.length > 0) {\n\t\t\t\tif (args[0]) {\n\t\t\t\t\ts += args[0].toJS('query.oldscope') + ',';\n\t\t\t\t} else {\n\t\t\t\t\ts += 'null,';\n\t\t\t\t}\n\t\t\t\tif (args[1]) {\n\t\t\t\t\ts += args[1].toJS('query.oldscope') + ',';\n\t\t\t\t} else {\n\t\t\t\t\ts += 'null,';\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\ts += 'null,null,';\n\t\t\t}\n\t\t\ts += 'cb,idx,query';\n\t\t\ts += ');/*if(cb)res=cb(res,idx,query);*/return res';\n\n\t\t\tsource.datafn = new Function('query, params, cb, idx, alasql', s);\n\n\t\t\tquery.aliases[source.alias] = {type: 'funcvalue'};\n\t\t}\n\n\t\tvar alias = source.alias;\n\n\t\t// Test NATURAL-JOIN\n\t\tif (jn.natural) {\n\t\t\tif (jn.using || jn.on) {\n\t\t\t\tthrow new Error('NATURAL JOIN cannot have USING or ON clauses');\n\t\t\t} else {\n\t\t\t\t//\t\t\t\tsource.joinmode == \"INNER\";\n\t\t\t\tif (query.sources.length > 0) {\n\t\t\t\t\tvar prevSource = query.sources[query.sources.length - 1];\n\t\t\t\t\tvar prevTable = alasql.databases[prevSource.databaseid].tables[prevSource.tableid];\n\t\t\t\t\tvar table = alasql.databases[source.databaseid].tables[source.tableid];\n\n\t\t\t\t\tif (prevTable && table) {\n\t\t\t\t\t\tvar c1 = prevTable.columns.map(function (col) {\n\t\t\t\t\t\t\treturn col.columnid;\n\t\t\t\t\t\t});\n\t\t\t\t\t\tvar c2 = table.columns.map(function (col) {\n\t\t\t\t\t\t\treturn col.columnid;\n\t\t\t\t\t\t});\n\t\t\t\t\t\tjn.using = arrayIntersect(c1, c2).map(function (colid) {\n\t\t\t\t\t\t\treturn {columnid: colid};\n\t\t\t\t\t\t});\n\n\t\t\t\t\t} else {\n\t\t\t\t\t\tthrow new Error(\n\t\t\t\t\t\t\t'In this version of Alasql NATURAL JOIN ' +\n\t\t\t\t\t\t\t\t'works for tables with predefined columns only'\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif (jn.using) {\n\t\t\tprevSource = query.sources[query.sources.length - 1];\n\n\t\t\tsource.onleftfns = jn.using\n\t\t\t\t.map(function (col) {\n\n\t\t\t\t\treturn \"p['\" + (prevSource.alias || prevSource.tableid) + \"']['\" + col.columnid + \"']\";\n\t\t\t\t})\n\t\t\t\t.join('+\"`\"+');\n\n\t\t\tsource.onleftfn = new Function('p,params,alasql', 'var y;return ' + source.onleftfns);\n\n\t\t\tsource.onrightfns = jn.using\n\t\t\t\t.map(function (col) {\n\t\t\t\t\treturn \"p['\" + (source.alias || source.tableid) + \"']['\" + col.columnid + \"']\";\n\t\t\t\t})\n\t\t\t\t.join('+\"`\"+');\n\t\t\tsource.onrightfn = new Function('p,params,alasql', 'var y;return ' + source.onrightfns);\n\t\t\tsource.optimization = 'ix';\n\n\t\t} else if (jn.on) {\n\n\t\t\tif (jn.on instanceof yy.Op && jn.on.op === '=' && !jn.on.allsome) {\n\n\t\t\t\tsource.optimization = 'ix';\n\n\t\t\t\tvar lefts = '';\n\t\t\t\tvar rights = '';\n\t\t\t\tvar middles = '';\n\t\t\t\tvar middlef = false;\n\t\t\t\t// Test right and left sides\n\t\t\t\tvar ls = jn.on.left.toJS('p', query.defaultTableid, query.defcols);\n\t\t\t\tvar rs = jn.on.right.toJS('p', query.defaultTableid, query.defcols);\n\n\t\t\t\tif (ls.indexOf(\"p['\" + alias + \"']\") > -1 && !(rs.indexOf(\"p['\" + alias + \"']\") > -1)) {\n\t\t\t\t\tif (\n\t\t\t\t\t\t(ls.match(/p\\['.*?'\\]/g) || []).every(function (s) {\n\t\t\t\t\t\t\treturn s === \"p['\" + alias + \"']\";\n\t\t\t\t\t\t})\n\t\t\t\t\t) {\n\t\t\t\t\t\trights = ls;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tmiddlef = true;\n\t\t\t\t\t}\n\t\t\t\t} else if (\n\t\t\t\t\t!(ls.indexOf(\"p['\" + alias + \"']\") > -1) &&\n\t\t\t\t\trs.indexOf(\"p['\" + alias + \"']\") > -1\n\t\t\t\t) {\n\t\t\t\t\tif (\n\t\t\t\t\t\t(rs.match(/p\\['.*?'\\]/g) || []).every(function (s) {\n\t\t\t\t\t\t\treturn s === \"p['\" + alias + \"']\";\n\t\t\t\t\t\t})\n\t\t\t\t\t) {\n\t\t\t\t\t\tlefts = ls;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tmiddlef = true;\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tmiddlef = true;\n\t\t\t\t}\n\n\t\t\t\tif (rs.indexOf(\"p['\" + alias + \"']\") > -1 && !(ls.indexOf(\"p['\" + alias + \"']\") > -1)) {\n\t\t\t\t\tif (\n\t\t\t\t\t\t(rs.match(/p\\['.*?'\\]/g) || []).every(function (s) {\n\t\t\t\t\t\t\treturn s === \"p['\" + alias + \"']\";\n\t\t\t\t\t\t})\n\t\t\t\t\t) {\n\t\t\t\t\t\trights = rs;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tmiddlef = true;\n\t\t\t\t\t}\n\t\t\t\t} else if (\n\t\t\t\t\t!(rs.indexOf(\"p['\" + alias + \"']\") > -1) &&\n\t\t\t\t\tls.indexOf(\"p['\" + alias + \"']\") > -1\n\t\t\t\t) {\n\t\t\t\t\tif (\n\t\t\t\t\t\t(ls.match(/p\\['.*?'\\]/g) || []).every(function (s) {\n\t\t\t\t\t\t\treturn s === \"p['\" + alias + \"']\";\n\t\t\t\t\t\t})\n\t\t\t\t\t) {\n\t\t\t\t\t\tlefts = rs;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tmiddlef = true;\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tmiddlef = true;\n\t\t\t\t}\n\n\t\t\t\tif (middlef) {\n\t\t\t\t\t//\t\t\t\t\tmiddles = jn.on.toJS('p',query.defaultTableid);\n\t\t\t\t\t//\t\t\t\t} else {\n\t\t\t\t\trights = '';\n\t\t\t\t\tlefts = '';\n\t\t\t\t\tmiddles = jn.on.toJS('p', query.defaultTableid, query.defcols);\n\t\t\t\t\tsource.optimization = 'no';\n\t\t\t\t\t// What to here?\n\t\t\t\t}\n\n\t\t\t\tsource.onleftfns = lefts;\n\t\t\t\tsource.onrightfns = rights;\n\t\t\t\tsource.onmiddlefns = middles || 'true';\n\n\t\t\t\tsource.onleftfn = new Function('p,params,alasql', 'var y;return ' + source.onleftfns);\n\t\t\t\tsource.onrightfn = new Function('p,params,alasql', 'var y;return ' + source.onrightfns);\n\t\t\t\tsource.onmiddlefn = new Function('p,params,alasql', 'var y;return ' + source.onmiddlefns);\n\n\t\t\t\t//\t\t\t} else if(jn.on instanceof yy.Op && jn.on.op == 'AND') {\n\n\t\t\t} else {\n\n\t\t\t\tsource.optimization = 'no';\n\t\t\t\t//\t\t\t\tsource.onleftfn = returnTrue;\n\t\t\t\t//\t\t\t\tsource.onleftfns = \"true\";\n\t\t\t\tsource.onmiddlefns = jn.on.toJS('p', query.defaultTableid, query.defcols);\n\t\t\t\tsource.onmiddlefn = new Function(\n\t\t\t\t\t'p,params,alasql',\n\t\t\t\t\t'var y;return ' + jn.on.toJS('p', query.defaultTableid, query.defcols)\n\t\t\t\t);\n\t\t\t}\n\n\t\t\t// Optimization function\n\t\t}\n\n\t\t//\t\tsource.data = alasql.databases[source.databaseid].tables[source.tableid].data;\n\n\t\t// TODO SubQueries\n\n\t\tquery.sources.push(source);\n\t});\n\n};\nyy.Select.prototype.compileWhere = function (query) {\n\tif (this.where) {\n\t\tif (typeof this.where == 'function') {\n\t\t\treturn this.where;\n\t\t} else {\n\t\t\tvar s = this.where.toJS('p', query.defaultTableid, query.defcols);\n\t\t\tquery.wherefns = s;\n\n\t\t\treturn new Function('p,params,alasql', 'var y;return ' + s);\n\t\t}\n\t} else\n\t\treturn function () {\n\t\t\treturn true;\n\t\t};\n};\n\nyy.Select.prototype.compileWhereJoins = function (query) {\n\treturn;\n\n\t// TODO Fix Where optimization\n\n\toptimizeWhereJoin(query, this.where.expression);\n\n\t//for sources compile wherefs\n\tquery.sources.forEach(function (source) {\n\t\tif (source.srcwherefns) {\n\t\t\tsource.srcwherefn = new Function('p,params,alasql', 'var y;return ' + source.srcwherefns);\n\t\t}\n\t\tif (source.wxleftfns) {\n\t\t\tsource.wxleftfn = new Function('p,params,alasql', 'var y;return ' + source.wxleftfns);\n\t\t}\n\t\tif (source.wxrightfns) {\n\t\t\tsource.wxrightfn = new Function('p,params,alasql', 'var y;return ' + source.wxrightfns);\n\t\t}\n\n\t});\n};\n\nfunction optimizeWhereJoin(query, ast) {\n\tif (!ast) return false;\n\tif (!(ast instanceof yy.Op)) return;\n\tif (ast.op != '=' && ast.op != 'AND') return;\n\tif (ast.allsome) return;\n\n\tvar s = ast.toJS('p', query.defaultTableid, query.defcols);\n\tvar fsrc = [];\n\tquery.sources.forEach(function (source, idx) {\n\t\t// Optimization allowed only for tables only\n\t\tif (source.tableid) {\n\t\t\t// This is a good place to remove all unnecessary optimizations\n\t\t\tif (s.indexOf(\"p['\" + source.alias + \"']\") > -1) fsrc.push(source);\n\t\t}\n\t});\n\n\t//\tif(fsrc.length < query.sources.length) return;\n\n\tif (fsrc.length == 0) {\n\n\t\treturn;\n\t} else if (fsrc.length == 1) {\n\t\tif (\n\t\t\t!(s.match(/p\\[\\'.*?\\'\\]/g) || []).every(function (s) {\n\t\t\t\treturn s == \"p['\" + fsrc[0].alias + \"']\";\n\t\t\t})\n\t\t) {\n\t\t\treturn;\n\t\t\t// This is means, that we have column from parent query\n\t\t\t// So we return without optimization\n\t\t}\n\n\t\tvar src = fsrc[0]; // optmiization source\n\t\tsrc.srcwherefns = src.srcwherefns ? src.srcwherefns + '&&' + s : s;\n\n\t\tif (ast instanceof yy.Op && ast.op == '=' && !ast.allsome) {\n\t\t\tif (ast.left instanceof yy.Column) {\n\t\t\t\tvar ls = ast.left.toJS('p', query.defaultTableid, query.defcols);\n\t\t\t\tvar rs = ast.right.toJS('p', query.defaultTableid, query.defcols);\n\t\t\t\tif (rs.indexOf(\"p['\" + fsrc[0].alias + \"']\") == -1) {\n\t\t\t\t\tfsrc[0].wxleftfns = ls;\n\t\t\t\t\tfsrc[0].wxrightfns = rs;\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (ast.right instanceof yy.Column) {\n\t\t\t\tvar ls = ast.left.toJS('p', query.defaultTableid, query.defcols);\n\t\t\t\tvar rs = ast.right.toJS('p', query.defaultTableid, query.defcols);\n\t\t\t\tif (ls.indexOf(\"p['\" + fsrc[0].alias + \"']\") == -1) {\n\t\t\t\t\tfsrc[0].wxleftfns = rs;\n\t\t\t\t\tfsrc[0].wxrightfns = ls;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tast.reduced = true; // To do not duplicate wherefn and srcwherefn\n\t\treturn;\n\t} else {\n\t\tif ((ast.op = 'AND')) {\n\t\t\toptimizeWhereJoin(query, ast.left);\n\t\t\toptimizeWhereJoin(query, ast.right);\n\t\t}\n\t}\n}\n/*\n//\n// Select compiler part for Alasql.js\n// Date: 03.11.2014\n// (c) 2014, Andrey Gershun\n//\n*/\n\n/**\n Compile group of statements\n */\nyy.Select.prototype.compileGroup = function (query) {\n\n\tif (query.sources.length > 0) {\n\t\tvar tableid = query.sources[0].alias;\n\t} else {\n\t\t// If SELECT contains group aggregators without source tables\n\t\tvar tableid = '';\n\t}\n\tvar defcols = query.defcols;\n\n\tvar allgroup = [[]];\n\tif (this.group) {\n\t\tallgroup = decartes(this.group, query);\n\t}\n\n\t// Prepare groups\n\t//var allgroup = [['a'], ['a','b'], ['a', 'b', 'c']];\n\n\t// Union all arrays to get a maximum\n\tvar allgroups = [];\n\tallgroup.forEach(function (a) {\n\t\tallgroups = arrayUnion(allgroups, a);\n\t});\n\n\tquery.allgroups = allgroups;\n\n\tquery.ingroup = [];\n\tvar s = '';\n\t//\ts+= query.selectfns;\n\tallgroup.forEach(function (agroup) {\n\t\t// Start of group function\n\t\ts += 'var g=this.xgroups[';\n\n\t\t//\tvar gcols = this.group.map(function(col){return col.columnid}); // Group fields with r\n\t\t// Array with group columns from record\n\t\tvar rg = agroup.map(function (col2) {\n\t\t\tvar columnid = col2.split('\\t')[0];\n\t\t\tvar coljs = col2.split('\\t')[1];\n\t\t\t// Check, if aggregator exists but GROUP BY is not exists\n\t\t\tif (columnid === '') {\n\t\t\t\treturn '1'; // Create fictive grouping column for fictive GROUP BY\n\t\t\t}\n\t\t\t//\t\t\telse return \"r['\"+columnid+\"']\";\n\t\t\tquery.ingroup.push(columnid);\n\n\t\t\treturn coljs;\n\t\t});\n\n\t\tif (rg.length === 0) {\n\t\t\trg = [\"''\"];\n\t\t}\n\n\t\ts += rg.join('+\"`\"+');\n\t\ts += '];if(!g) {this.groups.push((g=this.xgroups[';\n\t\ts += rg.join('+\"`\"+');\n\t\ts += '] = {';\n\t\t//\t\ts += ']=r';\n\t\ts += agroup\n\t\t\t.map(function (col2) {\n\t\t\t\tvar columnid = col2.split('\\t')[0];\n\t\t\t\tvar coljs = col2.split('\\t')[1];\n\n\t\t\t\tif (columnid === '') {\n\t\t\t\t\treturn '';\n\t\t\t\t}\n\t\t\t\treturn \"'\" + columnid + \"':\" + coljs + ',';\n\t\t\t})\n\t\t\t.join('');\n\n\t\tvar neggroup = arrayDiff(allgroups, agroup);\n\n\t\ts += neggroup\n\t\t\t.map(function (col2) {\n\t\t\t\tvar columnid = col2.split('\\t')[0];\n\t\t\t\t//\tvar coljs = col2.split('\\t')[1]\n\t\t\t\treturn \"'\" + columnid + \"':null,\";\n\t\t\t})\n\t\t\t.join('');\n\n\t\tvar aft = '',\n\t\t\taft2 = '';\n\n\t\tif (typeof query.groupStar !== 'undefined') {\n\t\t\taft2 += \"for(var f in p['\" + query.groupStar + \"']) {g[f]=p['\" + query.groupStar + \"'][f];};\";\n\t\t}\n\n\t\t/*\n\t\t */\n\t\t//\t\ts += self.columns.map(function(col){\n\n\t\ts += query.selectGroup\n\t\t\t.map(function (col) {\n\n\t\t\t\tvar colexp = col.expression.toJS('p', tableid, defcols);\n\t\t\t\tvar colas = col.nick;\n\t\t\t\t// if(typeof colas == 'undefined') {\n\t\t\t\t// \tif(col instanceof yy.Column) colas = col.columnid;\n\t\t\t\t// \telse colas = col.toString();\n\t\t\t\t// };\n\t\t\t\tlet colExpIfFunIdExists = expression => {\n\t\t\t\t\tlet colexpression = expression.args[0];\n\t\t\t\t\treturn colexpression.toJS('p', tableid, defcols);\n\t\t\t\t};\n\t\t\t\tif (col instanceof yy.AggrValue) {\n\t\t\t\t\tif (col.distinct) {\n\t\t\t\t\t\taft +=\n\t\t\t\t\t\t\t\",g['$$_VALUES_\" + colas + \"']={},g['$$_VALUES_\" + colas + \"'][\" + colexp + ']=true';\n\t\t\t\t\t}\n\t\t\t\t\tif (col.aggregatorid === 'SUM') {\n\t\t\t\t\t\tif ('funcid' in col.expression) {\n\t\t\t\t\t\t\tlet colexp1 = colExpIfFunIdExists(col.expression);\n\t\t\t\t\t\t\treturn `'${colas}':(${colexp1})|| typeof ${colexp1} == 'number' ? ${colexp} : null,`;\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn `'${colas}':(${colexp})|| typeof ${colexp} == 'number' ? ${colexp} : null,`;\n\t\t\t\t\t} else if (col.aggregatorid === 'TOTAL') {\n\t\t\t\t\t\tif ('funcid' in col.expression) {\n\t\t\t\t\t\t\tlet colexp1 = colExpIfFunIdExists(col.expression);\n\t\t\t\t\t\t\treturn `'${colas}':(${colexp1}) || typeof ${colexp1} == 'number' ?\n\t\t\t\t\t\t\t${colexp1} : ${colexp1} == 'string' && typeof Number(${colexp1}) == 'number' ? Number(${colexp1}) :\n\t\t\t\t\t\t\ttypeof ${colexp1} == 'boolean' ? Number(${colexp1}) : 0,`;\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn `'${colas}':(${colexp})|| typeof ${colexp} == 'number' ?\n\t\t\t\t\t\t\t${colexp} : ${colexp} == 'string' && typeof Number(${colexp}) == 'number' ? Number(${colexp}) :\n\t\t\t\t\t\t\ttypeof ${colexp} === 'boolean' ? Number(${colexp}) : 0,`;\n\t\t\t\t\t} else if (\n\t\t\t\t\t\tcol.aggregatorid === 'FIRST' ||\n\t\t\t\t\t\tcol.aggregatorid === 'LAST'\n\t\t\t\t\t\t//\t\t\t\t\t|| col.aggregatorid == 'AVG'\n\t\t\t\t\t\t//\t\t\t\t\t\t\t) { return \"'\"+col.as+'\\':r[\\''+col.as+'\\'],'; }//f.field.arguments[0].toJS();\n\t\t\t\t\t) {\n\t\t\t\t\t\treturn \"'\" + colas + \"':\" + colexp + ','; //f.field.arguments[0].toJS();\n\t\t\t\t\t} else if (col.aggregatorid === 'MIN') {\n\t\t\t\t\t\tif ('funcid' in col.expression) {\n\t\t\t\t\t\t\tlet colexp1 = colExpIfFunIdExists(col.expression);\n\n\t\t\t\t\t\t\treturn `'${colas}': (typeof ${colexp1} == 'number' ? ${colexp} : typeof ${colexp1} == 'object' ?\n\t\t\t\t\t\t\ttypeof Number(${colexp1}) == 'number' && ${colexp1}!== null? ${colexp} : null : null),`;\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn `'${colas}': (typeof ${colexp} == 'number' ? ${colexp} : typeof ${colexp} == 'object' ?\n\t\t\t\t\t\t\ttypeof Number(${colexp}) == 'number' && ${colexp}!== null? ${colexp} : null : null),`;\n\t\t\t\t\t} else if (col.aggregatorid === 'MAX') {\n\t\t\t\t\t\tif ('funcid' in col.expression) {\n\t\t\t\t\t\t\tlet colexp1 = colExpIfFunIdExists(col.expression);\n\t\t\t\t\t\t\treturn `'${colas}' : (typeof ${colexp1} == 'number' ? ${colexp} : typeof ${colexp1} == 'object' ?\n\t\t\t\t\t\t\ttypeof Number(${colexp1}) == 'number' ? ${colexp} : null : null),`;\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn `'${colas}' : (typeof ${colexp} == 'number' ? ${colexp} : typeof ${colexp} == 'object' ?\n\t\t\t\t\t\t\ttypeof Number(${colexp}) == 'number' ? ${colexp} : null : null),`;\n\t\t\t\t\t} else if (col.aggregatorid === 'ARRAY') {\n\t\t\t\t\t\treturn \"'\" + colas + \"':[\" + colexp + '],';\n\t\t\t\t\t} else if (col.aggregatorid === 'COUNT') {\n\t\t\t\t\t\tif (col.expression.columnid === '*') {\n\t\t\t\t\t\t\treturn \"'\" + colas + \"':1,\";\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t//\t\t\t\t\t\treturn \"'\"+colas+'\\':(typeof '+colexp+' != \"undefined\")?1:0,';\n\t\t\t\t\t\t\t//\t\t\t\t\t} else {\n\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\"'\" +\n\t\t\t\t\t\t\t\tcolas +\n\t\t\t\t\t\t\t\t\"':(typeof \" +\n\t\t\t\t\t\t\t\tcolexp +\n\t\t\t\t\t\t\t\t' == \"undefined\" || ' +\n\t\t\t\t\t\t\t\tcolexp +\n\t\t\t\t\t\t\t\t' === null) ? 0 : 1,'\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t//\t\t\t\telse if(col.aggregatorid == 'MIN') { return \"'\"+col.as+'\\':r[\\''+col.as+'\\'],'; }\n\t\t\t\t\t\t//\t\t\t\telse if(col.aggregatorid == 'MAX') { return \"'\"+col.as+'\\':r[\\''+col.as+'\\'],'; }\n\t\t\t\t\t} else if (col.aggregatorid === 'AVG') {\n\t\t\t\t\t\tquery.removeKeys.push('_SUM_' + colas);\n\t\t\t\t\t\tquery.removeKeys.push('_COUNT_' + colas);\n\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t'' +\n\t\t\t\t\t\t\t\"'\" +\n\t\t\t\t\t\t\tcolas +\n\t\t\t\t\t\t\t\"':\" +\n\t\t\t\t\t\t\tcolexp +\n\t\t\t\t\t\t\t\",'_SUM_\" +\n\t\t\t\t\t\t\tcolas +\n\t\t\t\t\t\t\t\"':(\" +\n\t\t\t\t\t\t\tcolexp +\n\t\t\t\t\t\t\t\")||0,'_COUNT_\" +\n\t\t\t\t\t\t\tcolas +\n\t\t\t\t\t\t\t\"':(typeof \" +\n\t\t\t\t\t\t\tcolexp +\n\t\t\t\t\t\t\t' == \"undefined\" || ' +\n\t\t\t\t\t\t\tcolexp +\n\t\t\t\t\t\t\t' === null) ? 0 : 1,'\n\t\t\t\t\t\t);\n\t\t\t\t\t} else if (col.aggregatorid === 'AGGR') {\n\t\t\t\t\t\taft += \",g['\" + colas + \"']=\" + col.expression.toJS('g', -1);\n\t\t\t\t\t\treturn '';\n\t\t\t\t\t} else if (col.aggregatorid === 'REDUCE') {\n\t\t\t\t\t\t//\t\t\t\t\tquery.removeKeys.push('_REDUCE_'+colas);\n\t\t\t\t\t\tquery.aggrKeys.push(col);\n\n\t\t\t\t\t\t//\t\t\t\t\treturn \"'\"+colas+'\\':alasql.aggr[\\''+col.funcid+'\\']('+colexp+',undefined,(acc={}),1),'\n\t\t\t\t\t\t//\t\t\t\t\t+'\\'__REDUCE__'+colas+'\\':acc,';\n\t\t\t\t\t\treturn \"'\" + colas + \"':alasql.aggr['\" + col.funcid + \"'](\" + colexp + ',undefined,1),';\n\t\t\t\t\t}\n\t\t\t\t\treturn '';\n\t\t\t\t}\n\n\t\t\t\treturn '';\n\t\t\t})\n\t\t\t.join('');\n\n\t\ts += '}' + aft + ',g));' + aft2 + '} else {';\n\n\t\t//\t\ts += self.columns.map(function(col){\n\t\ts += query.selectGroup\n\t\t\t.map(function (col) {\n\t\t\t\tvar colas = col.nick;\n\n\t\t\t\tvar colexp = col.expression.toJS('p', tableid, defcols);\n\t\t\t\tlet colExpIfFunIdExists = expression => {\n\t\t\t\t\tlet colexpression = expression.args[0];\n\t\t\t\t\treturn colexpression.toJS('p', tableid, defcols);\n\t\t\t\t};\n\t\t\t\tif (col instanceof yy.AggrValue) {\n\t\t\t\t\tvar pre = '',\n\t\t\t\t\t\tpost = '';\n\t\t\t\t\tif (col.distinct) {\n\t\t\t\t\t\tvar pre =\n\t\t\t\t\t\t\t'if(typeof ' +\n\t\t\t\t\t\t\tcolexp +\n\t\t\t\t\t\t\t'!=\"undefined\" && (!g[\\'$$_VALUES_' +\n\t\t\t\t\t\t\tcolas +\n\t\t\t\t\t\t\t\"'][\" +\n\t\t\t\t\t\t\tcolexp +\n\t\t\t\t\t\t\t'])) {';\n\t\t\t\t\t\tvar post = \"g['$$_VALUES_\" + colas + \"'][\" + colexp + ']=true;}';\n\t\t\t\t\t}\n\t\t\t\t\tif (col.aggregatorid === 'SUM') {\n\t\t\t\t\t\tif ('funcid' in col.expression) {\n\t\t\t\t\t\t\tlet colexp1 = colExpIfFunIdExists(col.expression);\n\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\tpre +\n\t\t\t\t\t\t\t\t`if(g['${colas}'] == null && ${colexp1} == null){g['${colas}'] = null}\n\t\t\t\t\t\t\telse if(typeof g['${colas}']!== 'object' && typeof g['${colas}']!== 'number' && typeof ${colexp1}!== 'object' && typeof ${colexp1}!== 'number'){g['${colas}'] = null}\n\t\t\t\t\t\t\telse if(typeof g['${colas}']!== 'object' && typeof g['${colas}']!== 'number' && typeof ${colexp1} == 'number'){g['${colas}'] = ${colexp}}\n\t\t\t\t\t\t\telse if(typeof g['${colas}']!== 'number' && typeof ${colexp1}!== 'number' && typeof ${colexp1}!== 'object'){g['${colas}'] = g['${colas}']}\n\t\t\t\t\t\t\telse if((g['${colas}'] == null || (typeof g['${colas}']!== 'number' && typeof g['${colas}']!== 'object')) && (${colexp1} == null || (typeof ${colexp1}!== 'number' && typeof ${colexp1}!== 'object'))){g['${colas}'] = null}\n\t\t\t\t\t\t\telse if(typeof g['${colas}'] == 'number' && typeof ${colexp1} ==null){g['${colas}'] = g['${colas}']}\n\t\t\t\t\t\t\telse if(typeof g['${colas}'] == null && typeof ${colexp1} =='number'){g['${colas}'] = ${colexp}}\n\t\t\t\t\t\t\telse{g['${colas}'] += ${colexp}||0}` +\n\t\t\t\t\t\t\t\tpost\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\tpre +\n\t\t\t\t\t\t\t`if(g['${colas}'] == null && ${colexp} == null){g['${colas}'] = null}\n\t\t\t\t\t\t\t else if(typeof g['${colas}']!== 'object' && typeof g['${colas}']!== 'number'&& typeof ${colexp}!== 'object' && typeof ${colexp}!== 'number'){g['${colas}'] = null}\n\t\t\t\t\t\t\t else if(typeof g['${colas}']!== 'object' && typeof g['${colas}']!== 'number' && typeof ${colexp} == 'number'){g['${colas}'] = ${colexp}}\n\t\t\t\t\t\t\t else if(typeof g['${colas}']!== 'number' && typeof ${colexp}!== 'number' && typeof ${colexp}!== 'object'){g['${colas}'] = g['${colas}']}\n\t\t\t\t\t\t\t else if((g['${colas}'] == null || (typeof g['${colas}']!== 'number' && typeof g['${colas}']!== 'object')) && (${colexp} == null || (typeof ${colexp}!== 'number' && typeof ${colexp}!== 'object'))){g['${colas}'] = null}\n\t\t\t\t\t\t\t else if(typeof g['${colas}'] == 'number' && typeof ${colexp} ==null){g['${colas}'] = g['${colas}']}\n\t\t\t\t\t\t\t else if(typeof g['${colas}'] == null && typeof ${colexp} =='number'){g['${colas}'] = ${colexp}}\n\t\t\t\t\t\t\t else{g['${colas}'] += ${colexp}||0}` +\n\t\t\t\t\t\t\tpost\n\t\t\t\t\t\t);\n\t\t\t\t\t} else if (col.aggregatorid === 'TOTAL') {\n\t\t\t\t\t\tif ('funcid' in col.expression) {\n\t\t\t\t\t\t\tlet colexp1 = colExpIfFunIdExists(col.expression);\n\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\tpre +\n\t\t\t\t\t\t\t\t`if(typeof g['${colas}'] == 'string' && !isNaN(g['${colas}']) && typeof Number(g['${colas}']) == 'number' &&\n\t\t\t\t\t\ttypeof ${colexp1} == 'string' && !isNaN(${colexp1}) && typeof Number(${colexp1}) == 'number'){g['${colas}'] = Number(g['${colas}']) + Number(${colexp1})}\n\t\t\t\t\t\telse if(typeof g['${colas}'] == 'string' && typeof ${colexp1} == 'string'){g['${colas}'] = 0}\n\t\t\t\t\t\telse if(typeof g['${colas}'] == 'string' && typeof ${colexp1} == 'number'){g['${colas}'] = ${colexp1}}\n\t\t\t\t\t\telse if(typeof ${colexp1} == 'string' && typeof g['${colas}'] == 'number'){g['${colas}'] = g['${colas}']}\n\t\t\t\t\t\telse{g['${colas}'] += ${colexp1}||0}` +\n\t\t\t\t\t\t\t\tpost\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\tpre +\n\t\t\t\t\t\t\t`if(typeof g['${colas}'] == 'string' && !isNaN(g['${colas}']) && typeof Number(g['${colas}']) == 'number' &&\n\t\t\t\t\t\ttypeof ${colexp} == 'string' && !isNaN(${colexp}) && typeof Number(${colexp}) == 'number'){g['${colas}'] = Number(g['${colas}']) + Number(${colexp})}\n\t\t\t\t\t\telse if(typeof g['${colas}'] == 'string' && typeof ${colexp} == 'string'){g['${colas}'] = 0}\n\t\t\t\t\t\telse if(typeof g['${colas}'] == 'string' && typeof ${colexp} == 'number'){g['${colas}'] = ${colexp}}\n\t\t\t\t\t\telse if(typeof ${colexp} == 'string' && typeof g['${colas}'] == 'number'){g['${colas}'] = g['${colas}']}\n\t\t\t\t\t\telse{g['${colas}'] += ${colexp}||0}` +\n\t\t\t\t\t\t\tpost\n\t\t\t\t\t\t);\n\t\t\t\t\t} else if (col.aggregatorid === 'COUNT') {\n\n\t\t\t\t\t\tif (col.expression.columnid === '*') {\n\t\t\t\t\t\t\treturn pre + \"g['\" + colas + \"']++;\" + post;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\tpre +\n\t\t\t\t\t\t\t\t'if(typeof ' +\n\t\t\t\t\t\t\t\tcolexp +\n\t\t\t\t\t\t\t\t'!=\"undefined\" && ' +\n\t\t\t\t\t\t\t\tcolexp +\n\t\t\t\t\t\t\t\t\" !== null) g['\" +\n\t\t\t\t\t\t\t\tcolas +\n\t\t\t\t\t\t\t\t\"']++;\" +\n\t\t\t\t\t\t\t\tpost\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t}\n\t\t\t\t\t} else if (col.aggregatorid === 'ARRAY') {\n\t\t\t\t\t\treturn pre + \"g['\" + colas + \"'].push(\" + colexp + ');' + post;\n\t\t\t\t\t} else if (col.aggregatorid === 'MIN') {\n\t\t\t\t\t\tif ('funcid' in col.expression) {\n\t\t\t\t\t\t\tlet colexp1 = colExpIfFunIdExists(col.expression);\n\n\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\tpre +\n\t\t\t\t\t\t\t\t`if((g['${colas}'] == null && ${colexp1}!== null) ? y = ${colexp} : (g['${colas}']!== null &&\n\t\t\t\t\t\t\t${colexp1} == null) ? y = g['${colas}']:((y=${colexp}) < g['${colas}'])){ if(typeof y == 'number')\n\t\t\t\t\t\t\t{g['${colas}'] = y;}else if(typeof y == 'object' && y instanceof Date){g['${colas}'] = y;}\n\t\t\t\t\t\t\telse if(typeof y == 'object' && typeof Number(y) == 'number'){g['${colas}'] = Number(y);}}\n\t\t\t\t\t\t\telse if(g['${colas}']!== null && typeof g['${colas}'] == 'object' && y instanceof Date){g['${colas}'] = g['${colas}']}\n\t\t\t\t\t\t\telse if(g['${colas}']!== null && typeof g['${colas}'] == 'object'){g['${colas}'] = Number(g['${colas}'])}` +\n\t\t\t\t\t\t\t\tpost\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\tpre +\n\t\t\t\t\t\t\t`if((g['${colas}'] == null && ${colexp}!== null) ? y = ${colexp} : (g['${colas}']!== null &&\n\t\t\t\t\t\t\t${colexp} == null) ? y = g['${colas}']:((y=${colexp}) < g['${colas}'])){ if(typeof y == 'number')\n\t\t\t\t\t\t\t{g['${colas}'] = y;}else if(typeof y == 'object' && y instanceof Date){g['${colas}'] = y;}\n\t\t\t\t\t\t\telse if(typeof y == 'object' && typeof Number(y) == 'number'){g['${colas}'] = Number(y);}}\n\t\t\t\t\t\t\telse if(g['${colas}']!== null && typeof g['${colas}'] == 'object' && y instanceof Date){g['${colas}'] = g['${colas}']}\n\t\t\t\t\t\t\telse if(g['${colas}']!== null && typeof g['${colas}'] == 'object'){g['${colas}'] = Number(g['${colas}'])}` +\n\t\t\t\t\t\t\tpost\n\t\t\t\t\t\t);\n\t\t\t\t\t} else if (col.aggregatorid === 'MAX') {\n\t\t\t\t\t\tif ('funcid' in col.expression) {\n\t\t\t\t\t\t\tlet colexp1 = colExpIfFunIdExists(col.expression);\n\n\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\tpre +\n\t\t\t\t\t\t\t\t`if((g['${colas}'] == null && ${colexp1}!== null) ? y = ${colexp} : (g['${colas}']!== null &&\n\t\t\t\t\t\t\t${colexp1} == null) ? y = g['${colas}']:((y=${colexp}) > g['${colas}'])){ if(typeof y == 'number')\n\t\t\t\t\t\t\t{g['${colas}'] = y;}else if(typeof y == 'object' && y instanceof Date){g['${colas}'] = y;}\n\t\t\t\t\t\t\telse if(typeof y == 'object' && typeof Number(y) == 'number'){g['${colas}'] = Number(y);}}\n\t\t\t\t\t\t\telse if(g['${colas}']!== null && typeof g['${colas}'] == 'object' && y instanceof Date){g['${colas}'] = g['${colas}']}\n\t\t\t\t\t\t\telse if(g['${colas}']!== null && typeof g['${colas}'] == 'object'){g['${colas}'] = Number(g['${colas}'])}` +\n\t\t\t\t\t\t\t\tpost\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\tpre +\n\t\t\t\t\t\t\t`if((g['${colas}'] == null && ${colexp}!== null) ? y = ${colexp} : (g['${colas}']!== null &&\n\t\t\t\t\t\t\t${colexp} == null) ? y = g['${colas}']:((y=${colexp}) > g['${colas}'])){ if(typeof y == 'number')\n\t\t\t\t\t\t\t{g['${colas}'] = y;}else if(typeof y == 'object' && y instanceof Date){g['${colas}'] = y;}\n\t\t\t\t\t\t\telse if(typeof y == 'object' && typeof Number(y) == 'number'){g['${colas}'] = Number(y);}}\n\t\t\t\t\t\t\telse if(g['${colas}']!== null && typeof g['${colas}'] == 'object' && y instanceof Date){g['${colas}'] = g['${colas}']}\n\t\t\t\t\t\t\telse if(g['${colas}']!== null && typeof g['${colas}'] == 'object'){g['${colas}'] = Number(g['${colas}'])}` +\n\t\t\t\t\t\t\tpost\n\t\t\t\t\t\t);\n\t\t\t\t\t} else if (col.aggregatorid === 'FIRST') {\n\t\t\t\t\t\treturn '';\n\t\t\t\t\t} else if (col.aggregatorid === 'LAST') {\n\t\t\t\t\t\treturn pre + \"g['\" + colas + \"']=\" + colexp + ';' + post;\n\t\t\t\t\t} else if (col.aggregatorid === 'AVG') {\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t'' +\n\t\t\t\t\t\t\tpre +\n\t\t\t\t\t\t\t\"g['_SUM_\" +\n\t\t\t\t\t\t\tcolas +\n\t\t\t\t\t\t\t\"']+=(y=\" +\n\t\t\t\t\t\t\tcolexp +\n\t\t\t\t\t\t\t')||0;' +\n\t\t\t\t\t\t\t\"g['_COUNT_\" +\n\t\t\t\t\t\t\tcolas +\n\t\t\t\t\t\t\t'\\']+=(typeof y == \"undefined\" || y === null) ? 0 : 1;' +\n\t\t\t\t\t\t\t\"g['\" +\n\t\t\t\t\t\t\tcolas +\n\t\t\t\t\t\t\t\"']=g['_SUM_\" +\n\t\t\t\t\t\t\tcolas +\n\t\t\t\t\t\t\t\"']/g['_COUNT_\" +\n\t\t\t\t\t\t\tcolas +\n\t\t\t\t\t\t\t\"'];\" +\n\t\t\t\t\t\t\tpost\n\t\t\t\t\t\t);\n\t\t\t\t\t\t//\t\t\t\t\t }\n\t\t\t\t\t\t//\t\t\telse if(col.aggregatorid == 'AVG') { srg.push(colas+':0'); }\n\t\t\t\t\t} else if (col.aggregatorid === 'AGGR') {\n\t\t\t\t\t\treturn '' + pre + \"g['\" + colas + \"']=\" + col.expression.toJS('g', -1) + ';' + post;\n\t\t\t\t\t} else if (col.aggregatorid === 'REDUCE') {\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t'' +\n\t\t\t\t\t\t\tpre +\n\t\t\t\t\t\t\t\"g['\" +\n\t\t\t\t\t\t\tcolas +\n\t\t\t\t\t\t\t\"']=alasql.aggr.\" +\n\t\t\t\t\t\t\tcol.funcid +\n\t\t\t\t\t\t\t'(' +\n\t\t\t\t\t\t\tcolexp +\n\t\t\t\t\t\t\t\",g['\" +\n\t\t\t\t\t\t\tcolas +\n\t\t\t\t\t\t\t\"'],2);\" +\n\t\t\t\t\t\t\tpost\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\n\t\t\t\t\treturn '';\n\t\t\t\t}\n\n\t\t\t\treturn '';\n\t\t\t})\n\t\t\t.join('');\n\n\t\t//\t\ts += selectFields.map(function(f){\n\n\t\t//\t\t\tif(f.constructor.name == 'LiteralValue') return '';\n\t\t//\t\t\tif (f.field instanceof SQLParser.nodes.FunctionValue\n\t\t//\t\t\t\t&& (f.field.name.toUpperCase() == 'SUM' || f.field.name.toUpperCase() == 'COUNT')) {\n\t\t//\t\t\t\treturn 'group.'+f.name.value+'=+(+group.'+f.name.value+'||0)+'+f.field.arguments[0].toJS('rec','')+';'; //f.field.arguments[0].toJS();\n\t\t//\t\t\t\treturn 'group.'+f.name.value+'+='+f.field.arguments[0].toJS('rec','')+';'; //f.field.arguments[0].toJS();\n\t\t//\t\t\t\treturn 'group.'+f.name.value+'+=rec.'+f.name.value+';'; //f.field.arguments[0].toJS();\n\t\t//\t\t\t};\n\t\t//\t\t\treturn '';\n\t\t//\t\t}).join('');\n\n\t\t//\t\ts += '\tgroup.amt += rec.emplid;';\n\t\t//\t\ts += 'group.count++;';\n\n\t\ts += '}';\n\t});\n\n\treturn new Function('p,params,alasql', 'var y;' + s);\n};\n/*\n//\n// Select compiler part for Alasql.js\n// Date: 03.11.2014\n// (c) 2014, Andrey Gershun\n//\n*/\n\n// yy.Select.prototype.compileSources = function(query) {\n\n// };\n\nfunction compileSelectStar(query, aliases, joinstar) {\n\tvar sp = '',\n\t\tss = [],\n\t\tcolumnIds = {};\n\n\taliases.forEach(function (alias) {\n\n\t\t//\tif(!alias) {\n\t\t//\t\tsp += 'for(var k1 in p) var w=p[k1];for(var k2 in w){r[k2]=w[k2]};';\n\t\t//\t} else \t{\n\n\t\t// TODO move this out of this function\n\t\tquery.ixsources = {};\n\t\tquery.sources.forEach(function (source) {\n\t\t\tquery.ixsources[source.alias] = source;\n\t\t});\n\n\t\t// Fixed\n\t\tvar columns;\n\t\tif (query.ixsources[alias]) {\n\t\t\tvar columns = query.ixsources[alias].columns;\n\t\t}\n\n\t\t//\t\tif(columns.length == 0 && query.aliases[alias].tableid) {\n\t\t//\t\t\tvar columns = alasql.databases[query.aliases[alias].databaseid].tables[query.aliases[alias].tableid].columns;\n\t\t//\t\t};\n\n\t\t// Check if this is a Table or other\n\t\tif (joinstar && alasql.options.joinstar == 'json') {\n\t\t\tsp += \"r['\" + alias + \"']={};\";\n\t\t}\n\n\t\tif (columns && columns.length > 0) {\n\t\t\tcolumns.forEach(function (tcol) {\n\t\t\t\tconst escapedColumnId = escapeq(tcol.columnid);\n\t\t\t\tif (joinstar && alasql.options.joinstar == 'underscore') {\n\t\t\t\t\tss.push(\n\t\t\t\t\t\t\"'\" + alias + '_' + escapedColumnId + \"':p['\" + alias + \"']['\" + escapedColumnId + \"']\"\n\t\t\t\t\t);\n\t\t\t\t} else if (joinstar && alasql.options.joinstar == 'json') {\n\t\t\t\t\t//\t\t\t\tss.push('\\''+alias+'_'+tcol.columnid+'\\':p[\\''+alias+'\\'][\\''+tcol.columnid+'\\']');\n\t\t\t\t\tsp +=\n\t\t\t\t\t\t\"r['\" +\n\t\t\t\t\t\talias +\n\t\t\t\t\t\t\"']['\" +\n\t\t\t\t\t\tescapedColumnId +\n\t\t\t\t\t\t\"']=p['\" +\n\t\t\t\t\t\talias +\n\t\t\t\t\t\t\"']['\" +\n\t\t\t\t\t\tescapedColumnId +\n\t\t\t\t\t\t\"'];\";\n\t\t\t\t} else {\n\t\t\t\t\tvar value = \"p['\" + alias + \"']['\" + escapedColumnId + \"']\";\n\t\t\t\t\tif (!columnIds[tcol.columnid]) {\n\t\t\t\t\t\tvar key = \"'\" + escapedColumnId + \"':\";\n\t\t\t\t\t\tss.push(key + value);\n\t\t\t\t\t\tcolumnIds[tcol.columnid] = {\n\t\t\t\t\t\t\tid: ss.length - 1,\n\t\t\t\t\t\t\tvalue: value,\n\t\t\t\t\t\t\tkey: key,\n\t\t\t\t\t\t};\n\t\t\t\t\t} else {\n\t\t\t\t\t\tvar newValue =\n\t\t\t\t\t\t\tvalue + ' !== undefined ? ' + value + ' : ' + columnIds[tcol.columnid].value;\n\t\t\t\t\t\tss[columnIds[tcol.columnid].id] = columnIds[tcol.columnid].key + newValue;\n\t\t\t\t\t\tcolumnIds[tcol.columnid].value = newValue;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tquery.selectColumns[escapedColumnId] = true;\n\n\t\t\t\tvar coldef = {\n\t\t\t\t\tcolumnid: tcol.columnid,\n\t\t\t\t\tdbtypeid: tcol.dbtypeid,\n\t\t\t\t\tdbsize: tcol.dbsize,\n\t\t\t\t\tdbprecision: tcol.dbprecision,\n\t\t\t\t\tdbenum: tcol.dbenum,\n\t\t\t\t};\n\t\t\t\tquery.columns.push(coldef);\n\t\t\t\tquery.xcolumns[coldef.columnid] = coldef;\n\t\t\t});\n\n\t\t} else {\n\n\t\t\t// if column not exist, then copy all\n\t\t\tsp += 'var w=p[\"' + alias + '\"];for(var k in w){r[k]=w[k]};';\n\n\t\t\tquery.dirtyColumns = true;\n\t\t}\n\t\t//\t}\n\n\t});\n\n\treturn {s: ss.join(','), sp: sp};\n}\n\nyy.Select.prototype.compileSelect1 = function (query, params) {\n\tvar self = this;\n\tquery.columns = [];\n\tquery.xcolumns = {};\n\tquery.selectColumns = {};\n\tquery.dirtyColumns = false;\n\tvar s = 'var r={';\n\tvar sp = '';\n\tvar ss = [];\n\n\tthis.columns.forEach(function (col) {\n\t\tif (col instanceof yy.Column) {\n\t\t\tif (col.columnid === '*') {\n\t\t\t\tif (col.func) {\n\t\t\t\t\tsp +=\n\t\t\t\t\t\t\"r=params['\" + col.param + \"'](p['\" + query.sources[0].alias + \"'],p,params,alasql);\";\n\t\t\t\t} else if (col.tableid) {\n\t\t\t\t\t//Copy all\n\t\t\t\t\tvar ret = compileSelectStar(query, [col.tableid], false);\n\t\t\t\t\tif (ret.s) {\n\t\t\t\t\t\tss = ss.concat(ret.s);\n\t\t\t\t\t}\n\t\t\t\t\tsp += ret.sp;\n\t\t\t\t} else {\n\n\t\t\t\t\tvar ret = compileSelectStar(query, Object.keys(query.aliases), true); //query.aliases[alias].tableid);\n\t\t\t\t\tif (ret.s) {\n\t\t\t\t\t\tss = ss.concat(ret.s);\n\t\t\t\t\t}\n\t\t\t\t\tsp += ret.sp;\n\n\t\t\t\t\t// TODO Remove these lines\n\t\t\t\t\t// In case of no information\n\t\t\t\t\t// sp += 'for(var k1 in p){var w=p[k1];'+\n\t\t\t\t\t// \t\t\t'for(k2 in w) {r[k2]=w[k2]}}'\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t// If field, otherwise - expression\n\t\t\t\tvar tbid = col.tableid;\n\n\t\t\t\tvar dbid = col.databaseid || query.sources[0].databaseid || query.database.databaseid;\n\t\t\t\tif (!tbid) tbid = query.defcols[col.columnid];\n\t\t\t\tif (!tbid) tbid = query.defaultTableid;\n\t\t\t\tif (col.columnid !== '_') {\n\t\t\t\t\tif (false && tbid && !query.defcols['.'][col.tableid] && !query.defcols[col.columnid]) {\n\t\t\t\t\t\tss.push(\n\t\t\t\t\t\t\t\"'\" +\n\t\t\t\t\t\t\t\tescapeq(col.as || col.columnid) +\n\t\t\t\t\t\t\t\t\"':p['\" +\n\t\t\t\t\t\t\t\tquery.defaultTableid +\n\t\t\t\t\t\t\t\t\"']['\" +\n\t\t\t\t\t\t\t\tcol.tableid +\n\t\t\t\t\t\t\t\t\"']['\" +\n\t\t\t\t\t\t\t\tcol.columnid +\n\t\t\t\t\t\t\t\t\"']\"\n\t\t\t\t\t\t);\n\t\t\t\t\t} else {\n\t\t\t\t\t\t// workaround for multisheet xlsx export with custom COLUMNS\n\t\t\t\t\t\tvar isMultisheetParam =\n\t\t\t\t\t\t\tparams &&\n\t\t\t\t\t\t\tparams.length > 1 &&\n\t\t\t\t\t\t\tArray.isArray(params[0]) &&\n\t\t\t\t\t\t\tparams[0].length >= 1 &&\n\t\t\t\t\t\t\tparams[0][0].hasOwnProperty('sheetid');\n\t\t\t\t\t\tif (isMultisheetParam) {\n\t\t\t\t\t\t\tsp =\n\t\t\t\t\t\t\t\t'var r={};var w=p[\"' +\n\t\t\t\t\t\t\t\ttbid +\n\t\t\t\t\t\t\t\t'\"];' +\n\t\t\t\t\t\t\t\t'var cols=[' +\n\t\t\t\t\t\t\t\tself.columns\n\t\t\t\t\t\t\t\t\t.map(function (col) {\n\t\t\t\t\t\t\t\t\t\treturn \"'\" + col.columnid + \"'\";\n\t\t\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t\t\t.join(',') +\n\t\t\t\t\t\t\t\t'];var colas=[' +\n\t\t\t\t\t\t\t\tself.columns\n\t\t\t\t\t\t\t\t\t.map(function (col) {\n\t\t\t\t\t\t\t\t\t\treturn \"'\" + (col.as || col.columnid) + \"'\";\n\t\t\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t\t\t.join(',') +\n\t\t\t\t\t\t\t\t'];' +\n\t\t\t\t\t\t\t\t\"for (var i=0;i 0) {\n\n\t\t\t\t\t\tvar tcol = xcolumns[col.columnid];\n\n\t\t\t\t\t\tif (undefined === tcol) {\n\t\t\t\t\t\t\tthrow new Error('Column does not exist: ' + col.columnid);\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tvar coldef = {\n\t\t\t\t\t\t\tcolumnid: col.as || col.columnid,\n\t\t\t\t\t\t\tdbtypeid: tcol.dbtypeid,\n\t\t\t\t\t\t\tdbsize: tcol.dbsize,\n\t\t\t\t\t\t\tdbpecision: tcol.dbprecision,\n\t\t\t\t\t\t\tdbenum: tcol.dbenum,\n\t\t\t\t\t\t};\n\n\t\t\t\t\t\tquery.columns.push(coldef);\n\t\t\t\t\t\tquery.xcolumns[coldef.columnid] = coldef;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tvar coldef = {\n\t\t\t\t\t\t\tcolumnid: col.as || col.columnid,\n\t\t\t\t\t\t\t//\t\t\t\t\t\t\tdbtypeid:tcol.dbtypeid,\n\t\t\t\t\t\t\t//\t\t\t\t\t\t\tdbsize:tcol.dbsize,\n\t\t\t\t\t\t\t//\t\t\t\t\t\t\tdbpecision:tcol.dbprecision,\n\t\t\t\t\t\t\t//\t\t\t\t\t\t\tdbenum: tcol.dbenum,\n\t\t\t\t\t\t};\n\n\t\t\t\t\t\tquery.columns.push(coldef);\n\t\t\t\t\t\tquery.xcolumns[coldef.columnid] = coldef;\n\n\t\t\t\t\t\tquery.dirtyColumns = true;\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tvar coldef = {\n\t\t\t\t\t\tcolumnid: col.as || col.columnid,\n\t\t\t\t\t\t//\t\t\t\t\t\t\tdbtypeid:tcol.dbtypeid,\n\t\t\t\t\t\t//\t\t\t\t\t\t\tdbsize:tcol.dbsize,\n\t\t\t\t\t\t//\t\t\t\t\t\t\tdbpecision:tcol.dbprecision,\n\t\t\t\t\t\t//\t\t\t\t\t\t\tdbenum: tcol.dbenum,\n\t\t\t\t\t};\n\n\t\t\t\t\tquery.columns.push(coldef);\n\t\t\t\t\tquery.xcolumns[coldef.columnid] = coldef;\n\t\t\t\t\t// This is a subquery?\n\t\t\t\t\t// throw new Error('There is now such table \\''+col.tableid+'\\'');\n\t\t\t\t}\n\t\t\t}\n\t\t} else if (col instanceof yy.AggrValue) {\n\t\t\tif (!self.group) {\n\t\t\t\t//\t\t\t\tself.group=[new yy.Column({columnid:'q',as:'q'\t})];\n\t\t\t\tself.group = [''];\n\t\t\t}\n\t\t\tif (!col.as) {\n\t\t\t\tcol.as = escapeq(col.toString());\n\t\t\t}\n\n\t\t\tif (\n\t\t\t\tcol.aggregatorid === 'SUM' ||\n\t\t\t\tcol.aggregatorid === 'MAX' ||\n\t\t\t\tcol.aggregatorid === 'MIN' ||\n\t\t\t\tcol.aggregatorid === 'FIRST' ||\n\t\t\t\tcol.aggregatorid === 'LAST' ||\n\t\t\t\tcol.aggregatorid === 'AVG' ||\n\t\t\t\tcol.aggregatorid === 'ARRAY' ||\n\t\t\t\tcol.aggregatorid === 'REDUCE' ||\n\t\t\t\tcol.aggregatorid === 'TOTAL'\n\t\t\t) {\n\t\t\t\tss.push(\n\t\t\t\t\t\"'\" +\n\t\t\t\t\t\tescapeq(col.as) +\n\t\t\t\t\t\t\"':\" +\n\t\t\t\t\t\tn2u(col.expression.toJS('p', query.defaultTableid, query.defcols))\n\t\t\t\t);\n\t\t\t} else if (col.aggregatorid === 'COUNT') {\n\t\t\t\tss.push(\"'\" + escapeq(col.as) + \"':1\");\n\t\t\t\t// Nothing\n\t\t\t}\n\t\t\t// todo: confirm that no default action must be implemented\n\n\t\t\t//\t\t\tquery.selectColumns[col.aggregatorid+'('+escapeq(col.expression.toString())+')'] = thtd;\n\n\t\t\tvar coldef = {\n\t\t\t\tcolumnid: col.as || col.columnid || col.toString(),\n\t\t\t\t//\t\t\t\t\t\t\tdbtypeid:tcol.dbtypeid,\n\t\t\t\t//\t\t\t\t\t\t\tdbsize:tcol.dbsize,\n\t\t\t\t//\t\t\t\t\t\t\tdbpecision:tcol.dbprecision,\n\t\t\t\t//\t\t\t\t\t\t\tdbenum: tcol.dbenum,\n\t\t\t};\n\n\t\t\tquery.columns.push(coldef);\n\t\t\tquery.xcolumns[coldef.columnid] = coldef;\n\n\t\t\t//\t\t\telse if (col.aggregatorid == 'MAX') {\n\t\t\t//\t\t\t\tss.push((col.as || col.columnid)+':'+col.toJS(\"p.\",query.defaultTableid))\n\t\t\t//\t\t\t} else if (col.aggregatorid == 'MIN') {\n\t\t\t//\t\t\t\tss.push((col.as || col.columnid)+':'+col.toJS(\"p.\",query.defaultTableid))\n\t\t\t//\t\t\t}\n\t\t} else {\n\n\t\t\tss.push(\n\t\t\t\t\"'\" +\n\t\t\t\t\tescapeq(col.as || col.columnid || col.toString()) +\n\t\t\t\t\t\"':\" +\n\t\t\t\t\tn2u(col.toJS('p', query.defaultTableid, query.defcols))\n\t\t\t);\n\t\t\t//\t\t\tss.push('\\''+escapeq(col.toString())+'\\':'+col.toJS(\"p\",query.defaultTableid));\n\t\t\t//if(col instanceof yy.Expression) {\n\t\t\tquery.selectColumns[escapeq(col.as || col.columnid || col.toString())] = true;\n\n\t\t\tvar coldef = {\n\t\t\t\tcolumnid: col.as || col.columnid || col.toString(),\n\t\t\t\t//\t\t\t\t\t\t\tdbtypeid:tcol.dbtypeid,\n\t\t\t\t//\t\t\t\t\t\t\tdbsize:tcol.dbsize,\n\t\t\t\t//\t\t\t\t\t\t\tdbpecision:tcol.dbprecision,\n\t\t\t\t//\t\t\t\t\t\t\tdbenum: tcol.dbenum,\n\t\t\t};\n\n\t\t\tquery.columns.push(coldef);\n\t\t\tquery.xcolumns[coldef.columnid] = coldef;\n\t\t}\n\t});\n\ts += ss.join(',') + '};' + sp;\n\treturn s;\n\n};\nyy.Select.prototype.compileSelect2 = function (query, params) {\n\tvar s = query.selectfns;\n\tif (this.orderColumns && this.orderColumns.length > 0) {\n\t\tthis.orderColumns.forEach(function (v, idx) {\n\t\t\tvar key = '$$$' + idx;\n\t\t\tif (v instanceof yy.Column && query.xcolumns[v.columnid]) {\n\t\t\t\ts += \"r['\" + key + \"']=r['\" + v.columnid + \"'];\";\n\t\t\t} else if (v instanceof yy.ParamValue && query.xcolumns[params[v.param]]) {\n\t\t\t\ts += \"r['\" + key + \"']=r['\" + params[v.param] + \"'];\";\n\t\t\t} else {\n\t\t\t\ts += \"r['\" + key + \"']=\" + v.toJS('p', query.defaultTableid, query.defcols) + ';';\n\t\t\t}\n\t\t\tquery.removeKeys.push(key);\n\t\t});\n\t}\n\treturn new Function('p,params,alasql', 'var y;' + s + 'return r');\n};\n\nyy.Select.prototype.compileSelectGroup0 = function (query) {\n\tvar self = this;\n\tself.columns.forEach(function (col, idx) {\n\t\tif (!(col instanceof yy.Column && col.columnid === '*')) {\n\t\t\tvar colas;\n\t\t\t// = col.as;\n\t\t\tif (col instanceof yy.Column) {\n\t\t\t\tcolas = escapeq(col.columnid);\n\t\t\t} else {\n\t\t\t\tcolas = escapeq(col.toString(true));\n\n\t\t\t}\n\t\t\tfor (var i = 0; i < idx; i++) {\n\t\t\t\tif (colas === self.columns[i].nick) {\n\t\t\t\t\tcolas = self.columns[i].nick + ':' + idx;\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t\t// }\n\t\t\tcol.nick = colas;\n\n\t\t\tif (self.group) {\n\t\t\t\tvar groupIdx = self.group.findIndex(function (gp) {\n\t\t\t\t\treturn gp.columnid === col.columnid && gp.tableid === col.tableid;\n\t\t\t\t});\n\t\t\t\tif (groupIdx > -1) {\n\t\t\t\t\tself.group[groupIdx].nick = colas;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (\n\t\t\t\tcol.funcid &&\n\t\t\t\t(col.funcid.toUpperCase() === 'ROWNUM' || col.funcid.toUpperCase() === 'ROW_NUMBER')\n\t\t\t) {\n\t\t\t\tquery.rownums.push(col.as);\n\t\t\t}\n\n\t\t\t// }\n\t\t} else {\n\t\t\tquery.groupStar = col.tableid || 'default';\n\t\t}\n\t});\n\n\tthis.columns.forEach(function (col) {\n\t\tif (col.findAggregator) {\n\t\t\tcol.findAggregator(query);\n\t\t}\n\t});\n\n\tif (this.having) {\n\t\tif (this.having.findAggregator) {\n\t\t\tthis.having.findAggregator(query);\n\t\t}\n\t}\n};\n\nyy.Select.prototype.compileSelectGroup1 = function (query) {\n\tvar self = this;\n\tvar s = 'var r = {};';\n\n\tself.columns.forEach(function (col) {\n\n\t\tif (col instanceof yy.Column && col.columnid === '*') {\n\t\t\t//\t\t\ts += 'for(var k in g){r[k]=g[k]};';\n\t\t\t//\t\t\ts += 'for(var k in this.query.groupColumns){r[k]=g[this.query.groupColumns[k]]};';\n\n\t\t\ts += 'for(var k in g) {r[k]=g[k]};';\n\t\t\treturn '';\n\n\t\t} else {\n\t\t\t// var colas = col.as;\n\t\t\tvar colas = col.as;\n\t\t\tif (colas === undefined) {\n\t\t\t\tif (col instanceof yy.Column) {\n\t\t\t\t\tcolas = escapeq(col.columnid);\n\t\t\t\t} else {\n\t\t\t\t\tcolas = col.nick;\n\t\t\t\t}\n\t\t\t}\n\t\t\tquery.groupColumns[colas] = col.nick;\n\n\t\t\t//\t\t\tif(col.as) {\n\t\t\ts += \"r['\" + colas + \"']=\";\n\t\t\t//\t\t\t// } else {\n\t\t\t//\t\t\t// \ts += 'r[\\''+escapeq()+'\\']=';\n\t\t\t//\t\t\t// };\n\t\t\t//\t\t\t// s += ';';\n\n\t\t\ts += n2u(col.toJS('g', '')) + ';';\n\n\t\t\tfor (var i = 0; i < query.removeKeys.length; i++) {\n\t\t\t\t// THis part should be intellectual\n\t\t\t\tif (query.removeKeys[i] === colas) {\n\t\t\t\t\tquery.removeKeys.splice(i, 1);\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t});\n\t// return new Function('g,params,alasql',s+'return r');\n\treturn s;\n};\n\nyy.Select.prototype.compileSelectGroup2 = function (query) {\n\tvar self = this;\n\tvar s = query.selectgfns;\n\tself.columns.forEach(function (col) {\n\n\t\tif (query.ingroup.indexOf(col.nick) > -1) {\n\t\t\ts += \"r['\" + (col.as || col.nick) + \"']=g['\" + col.nick + \"'];\";\n\t\t}\n\t});\n\n\tif (this.orderColumns && this.orderColumns.length > 0) {\n\t\tthis.orderColumns.forEach(function (v, idx) {\n\n\t\t\tvar key = '$$$' + idx;\n\n\t\t\tif (v instanceof yy.Column && query.groupColumns[v.columnid]) {\n\t\t\t\ts += \"r['\" + key + \"']=r['\" + v.columnid + \"'];\";\n\t\t\t} else {\n\t\t\t\ts += \"r['\" + key + \"']=\" + v.toJS('g', '') + ';';\n\t\t\t}\n\t\t\tquery.removeKeys.push(key);\n\t\t});\n\t}\n\n\treturn new Function('g,params,alasql', 'var y;' + s + 'return r');\n};\n\n// SELECY * REMOVE [COLUMNS] col-list, LIKE ''\nyy.Select.prototype.compileRemoveColumns = function (query) {\n\tvar self = this;\n\tif (typeof this.removecolumns !== 'undefined') {\n\t\tquery.removeKeys = query.removeKeys.concat(\n\t\t\tthis.removecolumns\n\t\t\t\t.filter(function (column) {\n\t\t\t\t\treturn typeof column.like === 'undefined';\n\t\t\t\t})\n\t\t\t\t.map(function (column) {\n\t\t\t\t\treturn column.columnid;\n\t\t\t\t})\n\t\t);\n\n\t\tquery.removeLikeKeys = this.removecolumns\n\t\t\t.filter(function (column) {\n\t\t\t\treturn typeof column.like !== 'undefined';\n\t\t\t})\n\t\t\t.map(function (column) {\n\t\t\t\t//\t\t\t\treturn new RegExp((column.like.value||'').replace(/\\%/g,'.*').replace(/\\?|_/g,'.'),'g');\n\t\t\t\treturn column.like.value;\n\t\t\t});\n\t}\n};\n/* global yy */\n\nyy.Select.prototype.compileHaving = function (query) {\n\tif (this.having) {\n\t\tvar s = this.having.toJS('g', -1);\n\t\tquery.havingfns = s;\n\n\t\treturn new Function('g,params,alasql', 'var y;return ' + s);\n\t}\n\n\treturn function () {\n\t\treturn true;\n\t};\n};\nyy.Select.prototype.compileOrder = function (query, params) {\n\tvar self = this;\n\tself.orderColumns = [];\n\tif (this.order) {\n\n\t\tif (\n\t\t\tthis.order &&\n\t\t\tthis.order.length == 1 &&\n\t\t\tthis.order[0].expression &&\n\t\t\ttypeof this.order[0].expression == 'function'\n\t\t) {\n\n\t\t\tvar func = this.order[0].expression;\n\n\t\t\tvar nullsOrder =\n\t\t\t\tthis.order[0].nullsOrder == 'FIRST' ? -1 : this.order[0].nullsOrder == 'LAST' ? +1 : 0;\n\t\t\treturn function (a, b) {\n\t\t\t\tvar ra = func(a),\n\t\t\t\t\trb = func(b);\n\t\t\t\tif (nullsOrder) {\n\t\t\t\t\tif (ra == null) return rb == null ? 0 : nullsOrder;\n\t\t\t\t\tif (rb == null) return -nullsOrder;\n\t\t\t\t}\n\t\t\t\tif (ra > rb) return 1;\n\t\t\t\tif (ra == rb) return 0;\n\t\t\t\treturn -1;\n\t\t\t};\n\t\t}\n\n\t\tvar s = '';\n\t\tvar sk = '';\n\t\tthis.order.forEach(function (ord, idx) {\n\n\t\t\tif (ord.expression instanceof yy.NumValue) {\n\t\t\t\tif (ord.expression.value > self.columns.length) {\n\t\t\t\t\tthrow new Error(\n\t\t\t\t\t\t`You are trying to order by column number ${ord.expression.value} but you have only selected ${self.columns.length} columns.`\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t\tvar v = self.columns[ord.expression.value - 1];\n\t\t\t} else {\n\t\t\t\tvar v = ord.expression;\n\t\t\t}\n\t\t\tself.orderColumns.push(v);\n\n\t\t\tvar key = '$$$' + idx;\n\n\t\t\t// Date conversion\n\t\t\tvar dg = '';\n\t\t\t//if(alasql.options.valueof)\n\t\t\tif (ord.expression instanceof yy.Column) {\n\t\t\t\tvar columnid = ord.expression.columnid;\n\t\t\t\tif (alasql.options.valueof) {\n\t\t\t\t\tdg = '.valueOf()';\n\t\t\t\t} else if (query.xcolumns[columnid]) {\n\t\t\t\t\tvar dbtypeid = query.xcolumns[columnid].dbtypeid;\n\t\t\t\t\tif (\n\t\t\t\t\t\tdbtypeid == 'DATE' ||\n\t\t\t\t\t\tdbtypeid == 'DATETIME' ||\n\t\t\t\t\t\tdbtypeid == 'DATETIME2' ||\n\t\t\t\t\t\tdbtypeid == 'STRING' ||\n\t\t\t\t\t\tdbtypeid == 'NUMBER'\n\t\t\t\t\t)\n\t\t\t\t\t\tdg = '.valueOf()';\n\t\t\t\t\t// TODO Add other types mapping\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (ord.expression instanceof yy.ParamValue) {\n\t\t\t\tvar columnid = params[ord.expression.param];\n\t\t\t\tif (alasql.options.valueof) {\n\t\t\t\t\tdg = '.valueOf()';\n\t\t\t\t} else if (query.xcolumns[columnid]) {\n\t\t\t\t\tvar dbtypeid = query.xcolumns[columnid].dbtypeid;\n\t\t\t\t\tif (\n\t\t\t\t\t\tdbtypeid == 'DATE' ||\n\t\t\t\t\t\tdbtypeid == 'DATETIME' ||\n\t\t\t\t\t\tdbtypeid == 'DATETIME2' ||\n\t\t\t\t\t\tdbtypeid == 'STRING' ||\n\t\t\t\t\t\tdbtypeid == 'NUMBER'\n\t\t\t\t\t)\n\t\t\t\t\t\tdg = '.valueOf()';\n\t\t\t\t\t// TODO Add other types mapping\n\t\t\t\t}\n\t\t\t}\n\t\t\t// COLLATE NOCASE\n\t\t\tif (ord.nocase) dg += '.toUpperCase()';\n\n\t\t\tif (ord.nullsOrder) {\n\t\t\t\tif (ord.nullsOrder == 'FIRST') {\n\t\t\t\t\ts += \"if((a['\" + key + \"'] != null) && (b['\" + key + \"'] == null)) return 1;\";\n\t\t\t\t} else if (ord.nullsOrder == 'LAST') {\n\t\t\t\t\ts += \"if((a['\" + key + \"'] == null) && (b['\" + key + \"'] != null)) return 1;\";\n\t\t\t\t}\n\t\t\t\ts += \"if((a['\" + key + \"'] == null) == (b['\" + key + \"'] == null)) {\";\n\t\t\t\tsk += '}';\n\t\t\t}\n\n\t\t\ts +=\n\t\t\t\t\"if((a['\" +\n\t\t\t\tkey +\n\t\t\t\t\"']||'')\" +\n\t\t\t\tdg +\n\t\t\t\t(ord.direction == 'ASC' ? '>' : '<') +\n\t\t\t\t\"(b['\" +\n\t\t\t\tkey +\n\t\t\t\t\"']||'')\" +\n\t\t\t\tdg +\n\t\t\t\t')return 1;';\n\t\t\ts += \"if((a['\" + key + \"']||'')\" + dg + \"==(b['\" + key + \"']||'')\" + dg + '){';\n\n\t\t\t/*\nif(false) {\n\n\t\t\tif(ord.expression instanceof yy.NumValue) {\n\t\t\t\tord.expression = self.columns[ord.expression.value-1];\n\n\t\t\t\tord.expression = new yy.Column({columnid:ord.expression.nick});\n\t\t\t};\n\n\t\t\tif(ord.expression instanceof yy.Column) {\n\t\t\t\tvar columnid = ord.expression.columnid;\n\t\t\t\tif(query.xcolumns[columnid]) {\n\t\t\t\t\tvar dbtypeid = query.xcolumns[columnid].dbtypeid;\n\t\t\t\t\tif( dbtypeid == 'DATE' || dbtypeid == 'DATETIME' || dbtypeid == 'DATETIME2') dg = '.valueOf()';\n\t\t\t\t\t// TODO Add other types mapping\n\t\t\t\t} else {\n\t\t\t\t\tif(alasql.options.valueof) dg = '.valueOf()'; // TODO Check\n\t\t\t\t}\n\t\t\t\t// COLLATE NOCASE\n\t\t\t\tif(ord.nocase) dg += '.toUpperCase()';\n\n\t\t\t\ts += 'if((a[\\''+columnid+\"']||'')\"+dg+(ord.direction == 'ASC'?'>':'<')+'(b[\\''+columnid+\"']||'')\"+dg+')return 1;';\n\t\t\t\ts += 'if((a[\\''+columnid+\"']||'')\"+dg+'==(b[\\''+columnid+\"']||'')\"+dg+'){';\n\n\t\t\t} else {\n\t\t\t\tdg = '.valueOf()';\n\t\t\t\t// COLLATE NOCASE\n\t\t\t\tif(ord.nocase) dg += '.toUpperCase()';\n\t\t\t\ts += 'if(('+ord.toJS('a','')+\"||'')\"+dg+(ord.direction == 'ASC'?'>(':'<(')+ord.toJS('b','')+\"||'')\"+dg+')return 1;';\n\t\t\t\ts += 'if(('+ord.toJS('a','')+\"||'')\"+dg+'==('+ord.toJS('b','')+\"||'')\"+dg+'){';\n\t\t\t}\n\n\t\t\t// TODO Add date comparision\n\n}\n*/\n\t\t\tsk += '}';\n\t\t});\n\t\ts += 'return 0;';\n\t\ts += sk + 'return -1';\n\t\tquery.orderfns = s;\n\n\t\treturn new Function('a,b', 'var y;' + s);\n\t}\n};\n// Pivot functions\n/**\n\tCompile Pivot functions\n\t@param {object} query Source query\n\t@return {function} Pivoting functions\n*/\nyy.Select.prototype.compilePivot = function (query) {\n\tvar self = this;\n\t/** @type {string} Main pivoting column */\n\n\tvar columnid = self.pivot.columnid;\n\tvar aggr = self.pivot.expr.aggregatorid;\n\tvar inlist = self.pivot.inlist;\n\n\tvar exprcolid = null;\n\n\tif (self.pivot.expr.expression.hasOwnProperty('columnid')) {\n\t\texprcolid = self.pivot.expr.expression.columnid;\n\t} else {\n\t\texprcolid = self.pivot.expr.expression.expression.columnid;\n\t}\n\n\tif (null == exprcolid) {\n\t\tthrow 'columnid not found';\n\t}\n\n\tif (inlist) {\n\t\tinlist = inlist.map(function (l) {\n\t\t\treturn l.expr.columnid;\n\t\t});\n\t}\n\n\t// Function for PIVOT post production\n\treturn function () {\n\t\tvar query = this;\n\t\tvar cols = query.columns\n\t\t\t.filter(function (col) {\n\t\t\t\treturn col.columnid != columnid && col.columnid != exprcolid;\n\t\t\t})\n\t\t\t.map(function (col) {\n\t\t\t\treturn col.columnid;\n\t\t\t});\n\n\t\tvar newcols = [];\n\t\tvar gnewcols = {};\n\t\tvar gr = {};\n\t\tvar ga = {};\n\t\tvar data = [];\n\t\tquery.data.forEach(function (d) {\n\t\t\tif (!inlist || inlist.indexOf(d[columnid]) > -1) {\n\t\t\t\tvar gx = cols\n\t\t\t\t\t.map(function (colid) {\n\t\t\t\t\t\treturn d[colid];\n\t\t\t\t\t})\n\t\t\t\t\t.join('`');\n\t\t\t\tvar g = gr[gx];\n\t\t\t\tif (!g) {\n\t\t\t\t\tg = {};\n\t\t\t\t\tgr[gx] = g;\n\t\t\t\t\tdata.push(g);\n\t\t\t\t\tcols.forEach(function (colid) {\n\t\t\t\t\t\tg[colid] = d[colid];\n\t\t\t\t\t});\n\t\t\t\t}\n\n\t\t\t\tif (!ga[gx]) {\n\t\t\t\t\tga[gx] = {};\n\t\t\t\t}\n\n\t\t\t\tif (ga[gx][d[columnid]]) {\n\t\t\t\t\tga[gx][d[columnid]]++;\n\t\t\t\t} else {\n\t\t\t\t\tga[gx][d[columnid]] = 1;\n\t\t\t\t}\n\n\t\t\t\tif (!gnewcols[d[columnid]]) {\n\t\t\t\t\tgnewcols[d[columnid]] = true;\n\t\t\t\t\tnewcols.push(d[columnid]);\n\t\t\t\t}\n\n\t\t\t\tif (aggr == 'SUM' || aggr == 'AVG' || aggr == 'TOTAL') {\n\t\t\t\t\tif (typeof g[d[columnid]] == 'undefined') g[d[columnid]] = 0;\n\t\t\t\t\tg[d[columnid]] += +d[exprcolid];\n\t\t\t\t} else if (aggr == 'COUNT') {\n\t\t\t\t\tif (typeof g[d[columnid]] == 'undefined') g[d[columnid]] = 0;\n\t\t\t\t\tg[d[columnid]]++;\n\t\t\t\t} else if (aggr == 'MIN') {\n\t\t\t\t\tif (typeof g[d[columnid]] == 'undefined') g[d[columnid]] = d[exprcolid];\n\t\t\t\t\tif (d[exprcolid] < g[d[columnid]]) g[d[columnid]] = d[exprcolid];\n\t\t\t\t} else if (aggr == 'MAX') {\n\t\t\t\t\tif (typeof g[d[columnid]] == 'undefined') g[d[columnid]] = d[exprcolid];\n\t\t\t\t\tif (d[exprcolid] > g[d[columnid]]) g[d[columnid]] = d[exprcolid];\n\t\t\t\t} else if (aggr == 'FIRST') {\n\t\t\t\t\tif (typeof g[d[columnid]] == 'undefined') g[d[columnid]] = d[exprcolid];\n\t\t\t\t} else if (aggr == 'LAST') {\n\t\t\t\t\tg[d[columnid]] = d[exprcolid];\n\t\t\t\t} else if (alasql.aggr[aggr]) {\n\t\t\t\t\t// Custom aggregator\n\t\t\t\t\talasql.aggr[aggr](g[d[columnid]], d[exprcolid]);\n\t\t\t\t} else {\n\t\t\t\t\tthrow new Error('Wrong aggregator in PIVOT clause');\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\n\t\tif (aggr == 'AVG') {\n\t\t\tfor (var gx in gr) {\n\t\t\t\tvar d = gr[gx];\n\t\t\t\tfor (var colid in d) {\n\t\t\t\t\tif (cols.indexOf(colid) == -1 && colid != exprcolid) {\n\t\t\t\t\t\td[colid] = d[colid] / ga[gx][colid];\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// columns\n\t\tquery.data = data;\n\n\t\tif (inlist) newcols = inlist;\n\n\t\tvar ncol = query.columns.filter(function (col) {\n\t\t\treturn col.columnid == exprcolid;\n\t\t})[0];\n\t\tquery.columns = query.columns.filter(function (col) {\n\t\t\treturn !(col.columnid == columnid || col.columnid == exprcolid);\n\t\t});\n\t\tnewcols.forEach(function (colid) {\n\t\t\tvar nc = cloneDeep(ncol);\n\t\t\tnc.columnid = colid;\n\t\t\tquery.columns.push(nc);\n\t\t});\n\t};\n};\n\n// var columnid = this.pivot.columnid;\n\n// return function(data){\n\n// if(false) {\n\n// }\n\n// if(false) {\n\n// }\n// };\n\n/**\n\tCompile UNPIVOT clause\n\t@param {object} query Query object\n\t@return {function} Function for unpivoting\n*/\nyy.Select.prototype.compileUnpivot = function (query) {\n\tvar self = this;\n\tvar tocolumnid = self.unpivot.tocolumnid;\n\tvar forcolumnid = self.unpivot.forcolumnid;\n\tvar inlist = self.unpivot.inlist.map(function (l) {\n\t\treturn l.columnid;\n\t});\n\n\treturn function () {\n\t\tvar data = [];\n\n\t\tvar xcols = query.columns\n\t\t\t.map(function (col) {\n\t\t\t\treturn col.columnid;\n\t\t\t})\n\t\t\t.filter(function (colid) {\n\t\t\t\treturn inlist.indexOf(colid) == -1 && colid != forcolumnid && colid != tocolumnid;\n\t\t\t});\n\n\t\tquery.data.forEach(function (d) {\n\t\t\tinlist.forEach(function (colid) {\n\t\t\t\tvar nd = {};\n\t\t\t\txcols.forEach(function (xcolid) {\n\t\t\t\t\tnd[xcolid] = d[xcolid];\n\t\t\t\t});\n\t\t\t\tnd[forcolumnid] = colid;\n\t\t\t\tnd[tocolumnid] = d[colid];\n\t\t\t\tdata.push(nd);\n\t\t\t});\n\t\t});\n\n\t\tquery.data = data;\n\n\t\t//\t\t});\n\t};\n};\n/*\n//\n// ROLLUP(), CUBE(), GROUPING SETS() for Alasql.js\n// Date: 03.11.2014\n// (c) 2014, Andrey Gershun\n//\n*/\n\n/**\n Calculate ROLLUP() combination\n */\n\nvar rollup = function (a, query) {\n\tvar rr = [];\n\tvar mask = 0;\n\tvar glen = a.length;\n\tfor (var g = 0; g < glen + 1; g++) {\n\t\tvar ss = [];\n\t\tfor (var i = 0; i < glen; i++) {\n\t\t\tif (a[i] instanceof yy.Column) {\n\t\t\t\ta[i].nick = escapeq(a[i].columnid);\n\n\t\t\t\tquery.groupColumns[escapeq(a[i].columnid)] = a[i].nick;\n\t\t\t\tvar aaa = a[i].nick + '\\t' + a[i].toJS('p', query.sources[0].alias, query.defcols);\n\t\t\t} else {\n\t\t\t\tquery.groupColumns[escapeq(a[i].toString())] = escapeq(a[i].toString());\n\t\t\t\tvar aaa =\n\t\t\t\t\tescapeq(a[i].toString()) + '\\t' + a[i].toJS('p', query.sources[0].alias, query.defcols);\n\t\t\t}\n\n\t\t\tif (mask & (1 << i)) ss.push(aaa);\n\t\t}\n\t\trr.push(ss);\n\t\tmask = (mask << 1) + 1;\n\t}\n\treturn rr;\n};\n\n/**\n Calculate CUBE()\n */\nvar cube = function (a, query) {\n\tvar rr = [];\n\tvar glen = a.length;\n\tvar glenCube = 1 << glen;\n\tfor (var g = 0; g < glenCube; g++) {\n\t\tvar ss = [];\n\t\tfor (var i = 0; i < glen; i++) {\n\t\t\tif (g & (1 << i))\n\t\t\t\t//ss.push(a[i]);\n\t\t\t\t//ss = cartes(ss,decartes(a[i]));\n\n\t\t\t\t//\t\t\t\tvar aaa = a[i].toString()+'\\t'\n\t\t\t\t//\t\t\t\t\t+a[i].toJS('p',query.sources[0].alias,query.defcols);\n\n\t\t\t\tss = ss.concat(decartes(a[i], query));\n\t\t\t//\n\t\t}\n\t\trr.push(ss);\n\t}\n\treturn rr;\n};\n\n/**\n GROUPING SETS()\n */\nvar groupingsets = function (a, query) {\n\treturn a.reduce(function (acc, d) {\n\t\tacc = acc.concat(decartes(d, query));\n\t\treturn acc;\n\t}, []);\n};\n\n/**\n Cartesian production\n */\nvar cartes = function (a1, a2) {\n\tvar rrr = [];\n\tfor (var i1 = 0; i1 < a1.length; i1++) {\n\t\tfor (var i2 = 0; i2 < a2.length; i2++) {\n\t\t\trrr.push(a1[i1].concat(a2[i2]));\n\t\t}\n\t}\n\treturn rrr;\n};\n\n/**\n Prepare groups function\n */\nfunction decartes(gv, query) {\n\n\tif (Array.isArray(gv)) {\n\t\tvar res = [[]];\n\t\tfor (var t = 0; t < gv.length; t++) {\n\t\t\tif (gv[t] instanceof yy.Column) {\n\n\t\t\t\tgv[t].nick = gv[t].nick ? escapeq(gv[t].nick) : escapeq(gv[t].columnid);\n\t\t\t\tquery.groupColumns[gv[t].nick] = gv[t].nick;\n\t\t\t\tres = res.map(function (r) {\n\t\t\t\t\treturn r.concat(\n\t\t\t\t\t\tgv[t].nick + '\\t' + gv[t].toJS('p', query.sources[0].alias, query.defcols)\n\t\t\t\t\t);\n\t\t\t\t});\n\t\t\t\t//\t\t \t\tres = res.map(function(r){return r.concat(gv[t].columnid)});\n\t\t\t} else if (gv[t] instanceof yy.FuncValue) {\n\t\t\t\tquery.groupColumns[escapeq(gv[t].toString())] = escapeq(gv[t].toString());\n\t\t\t\tres = res.map(function (r) {\n\t\t\t\t\treturn r.concat(\n\t\t\t\t\t\tescapeq(gv[t].toString()) +\n\t\t\t\t\t\t\t'\\t' +\n\t\t\t\t\t\t\tgv[t].toJS('p', query.sources[0].alias, query.defcols)\n\t\t\t\t\t);\n\t\t\t\t});\n\t\t\t\t// to be defined\n\t\t\t} else if (gv[t] instanceof yy.GroupExpression) {\n\t\t\t\tif (gv[t].type == 'ROLLUP') res = cartes(res, rollup(gv[t].group, query));\n\t\t\t\telse if (gv[t].type == 'CUBE') res = cartes(res, cube(gv[t].group, query));\n\t\t\t\telse if (gv[t].type == 'GROUPING SETS') res = cartes(res, groupingsets(gv[t].group, query));\n\t\t\t\telse throw new Error('Unknown grouping function');\n\t\t\t} else if (gv[t] === '') {\n\n\t\t\t\tres = [['1\\t1']];\n\t\t\t} else {\n\t\t\t\t//\t\t\t\tif(gv[t])\n\n\t\t\t\tres = res.map(function (r) {\n\t\t\t\t\tquery.groupColumns[escapeq(gv[t].toString())] = escapeq(gv[t].toString());\n\t\t\t\t\treturn r.concat(\n\t\t\t\t\t\tescapeq(gv[t].toString()) +\n\t\t\t\t\t\t\t'\\t' +\n\t\t\t\t\t\t\tgv[t].toJS('p', query.sources[0].alias, query.defcols)\n\t\t\t\t\t);\n\t\t\t\t});\n\t\t\t\t//\t\t\t\tres = res.concat(gv[t]);\n\t\t\t}\n\n\t\t}\n\t\treturn res;\n\t} else if (gv instanceof yy.FuncValue) {\n\n\t\tquery.groupColumns[escapeq(gv.toString())] = escapeq(gv.toString());\n\t\treturn [gv.toString() + '\\t' + gv.toJS('p', query.sources[0].alias, query.defcols)];\n\t} else if (gv instanceof yy.Column) {\n\t\tgv.nick = escapeq(gv.columnid);\n\t\tquery.groupColumns[gv.nick] = gv.nick;\n\t\treturn [gv.nick + '\\t' + gv.toJS('p', query.sources[0].alias, query.defcols)]; // Is this ever happened?\n\t\t// } else if(gv instanceof yy.Expression) {\n\t\t// \treturn [gv.columnid]; // Is this ever happened?\n\t} else {\n\t\tquery.groupColumns[escapeq(gv.toString())] = escapeq(gv.toString());\n\t\treturn [escapeq(gv.toString()) + '\\t' + gv.toJS('p', query.sources[0].alias, query.defcols)];\n\t\t//\t\t\tthrow new Error('Single argument in the group without array');\n\t}\n\n}\n/*\n//\n// Select run-time part for Alasql.js\n// Date: 03.11.2014\n// (c) 2014, Andrey Gershun\n//\n*/\n\nyy.Select.prototype.compileDefCols = function (query, databaseid) {\n\n\tvar defcols = {'.': {}};\n\tif (this.from) {\n\t\tthis.from.forEach(function (fr) {\n\t\t\tdefcols['.'][fr.as || fr.tableid] = true;\n\t\t\tif (fr instanceof yy.Table) {\n\t\t\t\tvar alias = fr.as || fr.tableid;\n\n\t\t\t\tvar table = alasql.databases[fr.databaseid || databaseid].tables[fr.tableid];\n\n\t\t\t\tif (undefined === table) {\n\t\t\t\t\tthrow new Error('Table does not exist: ' + fr.tableid);\n\t\t\t\t}\n\n\t\t\t\tif (table.columns) {\n\t\t\t\t\ttable.columns.forEach(function (col) {\n\t\t\t\t\t\tif (defcols[col.columnid]) {\n\t\t\t\t\t\t\tdefcols[col.columnid] = '-'; // Ambigous\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tdefcols[col.columnid] = alias;\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t} else if (fr instanceof yy.Select) {\n\t\t\t} else if (fr instanceof yy.Search) {\n\t\t\t} else if (fr instanceof yy.ParamValue) {\n\t\t\t} else if (fr instanceof yy.VarValue) {\n\t\t\t} else if (fr instanceof yy.FuncValue) {\n\t\t\t} else if (fr instanceof yy.FromData) {\n\t\t\t} else if (fr instanceof yy.Json) {\n\t\t\t} else if (fr.inserted) {\n\t\t\t} else {\n\n\t\t\t\tthrow new Error('Unknown type of FROM clause');\n\t\t\t}\n\t\t});\n\t}\n\n\tif (this.joins) {\n\t\tthis.joins.forEach(function (jn) {\n\t\t\tdefcols['.'][jn.as || jn.table.tableid] = true;\n\n\t\t\tif (jn.table) {\n\t\t\t\tvar alias = jn.table.tableid;\n\t\t\t\tif (jn.as) alias = jn.as;\n\t\t\t\tvar alias = jn.as || jn.table.tableid;\n\t\t\t\tvar table = alasql.databases[jn.table.databaseid || databaseid].tables[jn.table.tableid];\n\n\t\t\t\tif (table.columns) {\n\t\t\t\t\ttable.columns.forEach(function (col) {\n\t\t\t\t\t\tif (defcols[col.columnid]) {\n\t\t\t\t\t\t\tdefcols[col.columnid] = '-'; // Ambigous\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tdefcols[col.columnid] = alias;\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t} else if (jn.select) {\n\t\t\t} else if (jn.param) {\n\t\t\t} else if (jn.func) {\n\t\t\t} else {\n\t\t\t\tthrow new Error('Unknown type of FROM clause');\n\t\t\t}\n\t\t});\n\t}\n\t// for(var k in defcols) {\n\t// \tif(defcols[k] == '-') defcols[k] = undefined;\n\t// }\n\n\treturn defcols;\n};\n/*\n//\n// UNION for Alasql.js\n// Date: 03.11.2014\n// (c) 2014, Andrey Gershun\n//\n*/\n\n// SELECT UNION statement\n\nyy.Union = class Union {\n\tconstructor(params) {\n\t\tObject.assign(this, params);\n\t}\n\n\ttoString() {\n\t\treturn 'UNION';\n\t}\n\n\tcompile(tableid) {\n\t\treturn null;\n\t}\n};\n/*\n//\n// CROSS AND OUTER APPLY for Alasql.js\n// Date: 03.11.2014\n// (c) 2014, Andrey Gershun\n//\n*/\n\nyy.Apply = class Apply {\n\tconstructor(params) {\n\t\tObject.assign(this, params);\n\t}\n\n\ttoString() {\n\t\tvar s = this.applymode + ' APPLY (' + this.select.toString() + ')';\n\n\t\tif (this.as) s += ' AS ' + this.as;\n\n\t\treturn s;\n\t}\n};\n/*\n//\n// CROSS AND OUTER APPLY for Alasql.js\n// Date: 03.11.2014\n// (c) 2014, Andrey Gershun\n//\n*/\n\nyy.Over = class Over {\n\tconstructor(params) {\n\t\tObject.assign(this, params);\n\t}\n\n\ttoString() {\n\t\tvar s = 'OVER (';\n\t\tif (this.partition) {\n\t\t\ts += 'PARTITION BY ' + this.partition.toString();\n\t\t\tif (this.order) s += ' ';\n\t\t}\n\t\tif (this.order) {\n\t\t\ts += 'ORDER BY ' + this.order.toString();\n\t\t}\n\t\ts += ')';\n\t\treturn s;\n\t}\n};\n/*\n//\n// Expressions for Alasql.js\n// Date: 03.11.2014\n// (c) 2014, Andrey Gershun\n//\n*/\n\n{\n\tconst assign = Object.assign;\n\n\tclass ExpressionStatement {\n\t\t/** @param {object} params Initial parameters */\n\t\tconstructor(params) {\n\t\t\tassign(this, params);\n\t\t}\n\n\t\t/**\n\t\t\tConvert AST to string\n\t\t\t@return {string}\n\t\t*/\n\t\ttoString() {\n\t\t\treturn this.expression.toString();\n\t\t}\n\n\t\t/**\n\t\t\tExecute statement\n\t\t\t@param {string} databaseid Database identificatro\n\t\t\t@param {object} params Statement parameters\n\t\t\t@param {statement-callback} cb Callback\n\t\t\t@return {object} Result value\n\t\t*/\n\t\texecute(databaseid, params, cb) {\n\t\t\tif (this.expression) {\n\n\t\t\t\talasql.precompile(this, databaseid, params); // Precompile queries\n\t\t\t\tvar exprfn = new Function(\n\t\t\t\t\t'params,alasql,p',\n\t\t\t\t\t'var y;return ' + this.expression.toJS('({})', '', null)\n\t\t\t\t).bind(this);\n\t\t\t\tvar res = exprfn(params, alasql);\n\t\t\t\tif (cb) {\n\t\t\t\t\tres = cb(res);\n\t\t\t\t}\n\t\t\t\treturn res;\n\t\t\t}\n\t\t}\n\t}\n\n\tclass Expression {\n\t\tconstructor(params) {\n\t\t\tassign(this, params);\n\t\t}\n\n\t\t/**\n\t\t\tConvert AST to string\n\t\t\t@return {string}\n\t\t*/\n\t\ttoString() {\n\t\t\tvar s = this.expression.toString();\n\t\t\tif (this.order) {\n\t\t\t\ts += ' ' + this.order.toString();\n\t\t\t}\n\t\t\tif (this.nocase) {\n\t\t\t\ts += ' COLLATE NOCASE';\n\t\t\t}\n\t\t\tif (this.direction) {\n\t\t\t\ts += ' ' + this.direction;\n\t\t\t}\n\t\t\treturn s;\n\t\t}\n\n\t\t/**\n\t\t\tFind aggregator in AST subtree\n\t\t\t@param {object} query Query object\n\t\t*/\n\t\tfindAggregator(query) {\n\t\t\tif (this.expression.findAggregator) {\n\t\t\t\tthis.expression.findAggregator(query);\n\t\t\t}\n\t\t}\n\n\t\t/**\n\t\t\tConvert AST to JavaScript expression\n\t\t\t@param {string} context Context string, e.g. 'p','g', or 'x'\n\t\t\t@param {string} tableid Default table name\n\t\t\t@param {object} defcols Default columns dictionary\n\t\t\t@return {string} JavaScript expression\n\t\t*/\n\t\ttoJS(context, tableid, defcols) {\n\n\t\t\tif (this.expression.reduced) {\n\t\t\t\treturn 'true';\n\t\t\t}\n\t\t\treturn this.expression.toJS(context, tableid, defcols);\n\t\t}\n\n\t\t/**\n\t\t\tCompile AST to JavaScript expression\n\t\t\t@param {string} context Context string, e.g. 'p','g', or 'x'\n\t\t\t@param {string} tableid Default table name\n\t\t\t@param {object} defcols Default columns dictionary\n\t\t\t@return {string} JavaScript expression\n\t\t*/\n\t\tcompile(context, tableid, defcols) {\n\n\t\t\tif (this.reduced) {\n\t\t\t\treturn returnTrue();\n\t\t\t}\n\t\t\treturn new Function('p', 'var y;return ' + this.toJS(context, tableid, defcols));\n\t\t}\n\t}\n\n\tclass JavaScript {\n\t\tconstructor(params) {\n\t\t\tassign(this, params);\n\t\t}\n\n\t\ttoString() {\n\t\t\tvar s = '``' + this.value + '``';\n\t\t\treturn s;\n\t\t}\n\n\t\ttoJS() {\n\t\t\treturn '(' + this.value + ')';\n\t\t}\n\n\t\texecute(databaseid, params, cb) {\n\t\t\tvar res = 1;\n\t\t\tvar expr = new Function('params,alasql,p', this.value);\n\t\t\texpr(params, alasql);\n\t\t\tif (cb) {\n\t\t\t\tres = cb(res);\n\t\t\t}\n\t\t\treturn res;\n\t\t}\n\t}\n\n\tclass Literal {\n\t\tconstructor(params) {\n\t\t\tassign(this, params);\n\t\t}\n\n\t\ttoString() {\n\t\t\tvar s = this.value;\n\t\t\tif (this.value1) {\n\t\t\t\ts = this.value1 + '.' + s;\n\t\t\t}\n\t\t\t//\telse s = tableid+'.'+s;\n\t\t\treturn s;\n\t\t}\n\t}\n\n\tclass Join {\n\t\tconstructor(params) {\n\t\t\tassign(this, params);\n\t\t}\n\n\t\ttoString() {\n\t\t\tvar s = ' ';\n\t\t\tif (this.joinmode) {\n\t\t\t\ts += this.joinmode + ' ';\n\t\t\t}\n\t\t\ts += 'JOIN ' + this.table.toString();\n\t\t\treturn s;\n\t\t}\n\t}\n\n\tclass Table {\n\t\tconstructor(params) {\n\t\t\tassign(this, params);\n\t\t}\n\n\t\ttoString() {\n\t\t\tvar s = this.tableid;\n\t\t\t//\tif(this.joinmode)\n\t\t\tif (this.databaseid) {\n\t\t\t\ts = this.databaseid + '.' + s;\n\t\t\t}\n\t\t\treturn s;\n\t\t}\n\t}\n\n\tclass View {\n\t\tconstructor(params) {\n\t\t\tassign(this, params);\n\t\t}\n\n\t\ttoString() {\n\t\t\tvar s = this.viewid;\n\t\t\t//\tif(this.joinmode)\n\t\t\tif (this.databaseid) {\n\t\t\t\ts = this.databaseid + '.' + s;\n\t\t\t}\n\t\t\treturn s;\n\t\t}\n\t}\n\n\tclass Op {\n\t\tconstructor(params) {\n\t\t\tassign(this, params);\n\t\t}\n\n\t\ttoString() {\n\t\t\tif (this.op === 'IN' || this.op === 'NOT IN') {\n\t\t\t\treturn this.left.toString() + ' ' + this.op + ' (' + this.right.toString() + ')';\n\t\t\t}\n\t\t\tif (this.allsome) {\n\t\t\t\treturn (\n\t\t\t\t\tthis.left.toString() +\n\t\t\t\t\t' ' +\n\t\t\t\t\tthis.op +\n\t\t\t\t\t' ' +\n\t\t\t\t\tthis.allsome +\n\t\t\t\t\t' (' +\n\t\t\t\t\tthis.right.toString() +\n\t\t\t\t\t')'\n\t\t\t\t);\n\t\t\t}\n\t\t\tif (this.op === '->' || this.op === '!') {\n\t\t\t\tvar s = this.left.toString() + this.op;\n\n\t\t\t\tif (typeof this.right !== 'string' && typeof this.right !== 'number') {\n\t\t\t\t\ts += '(';\n\t\t\t\t}\n\n\t\t\t\ts += this.right.toString();\n\n\t\t\t\tif (typeof this.right !== 'string' && typeof this.right !== 'number') {\n\t\t\t\t\ts += ')';\n\t\t\t\t}\n\n\t\t\t\treturn s;\n\t\t\t}\n\t\t\tif (this.op === 'BETWEEN' || this.op === 'NOT BETWEEN') {\n\t\t\t\tvar s =\n\t\t\t\t\tthis.left.toString() +\n\t\t\t\t\t' ' +\n\t\t\t\t\tthis.op +\n\t\t\t\t\t' ' +\n\t\t\t\t\tthis.right1.toString() +\n\t\t\t\t\t' AND ' +\n\t\t\t\t\tthis.right2.toString();\n\n\t\t\t\treturn s;\n\t\t\t}\n\n\t\t\treturn (\n\t\t\t\tthis.left.toString() +\n\t\t\t\t' ' +\n\t\t\t\tthis.op +\n\t\t\t\t' ' +\n\t\t\t\t(this.allsome ? this.allsome + ' ' : '') +\n\t\t\t\tthis.right.toString()\n\t\t\t);\n\t\t}\n\n\t\tfindAggregator(query) {\n\t\t\tif (this.left && this.left.findAggregator) {\n\t\t\t\tthis.left.findAggregator(query);\n\t\t\t}\n\t\t\t// Do not go in > ALL\n\t\t\tif (this.right && this.right.findAggregator && !this.allsome) {\n\t\t\t\tthis.right.findAggregator(query);\n\t\t\t}\n\t\t}\n\n\t\ttoType(tableid) {\n\t\t\tif (['-', '*', '/', '%', '^'].indexOf(this.op) > -1) {\n\t\t\t\treturn 'number';\n\t\t\t}\n\n\t\t\tif (['||'].indexOf(this.op) > -1) {\n\t\t\t\treturn 'string';\n\t\t\t}\n\n\t\t\tif (this.op === '+') {\n\t\t\t\tif (this.left.toType(tableid) === 'string' || this.right.toType(tableid) === 'string') {\n\t\t\t\t\treturn 'string';\n\t\t\t\t}\n\t\t\t\tif (this.left.toType(tableid) === 'number' || this.right.toType(tableid) === 'number') {\n\t\t\t\t\treturn 'number';\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (\n\t\t\t\t[\n\t\t\t\t\t'AND',\n\t\t\t\t\t'OR',\n\t\t\t\t\t'NOT',\n\t\t\t\t\t'=',\n\t\t\t\t\t'==',\n\t\t\t\t\t'===',\n\t\t\t\t\t'!=',\n\t\t\t\t\t'!==',\n\t\t\t\t\t'!===',\n\t\t\t\t\t'>',\n\t\t\t\t\t'>=',\n\t\t\t\t\t'<',\n\t\t\t\t\t'<=',\n\t\t\t\t\t'IN',\n\t\t\t\t\t'NOT IN',\n\t\t\t\t\t'LIKE',\n\t\t\t\t\t'NOT LIKE',\n\t\t\t\t\t'REGEXP',\n\t\t\t\t\t'GLOB',\n\t\t\t\t].indexOf(this.op) > -1\n\t\t\t) {\n\t\t\t\treturn 'boolean';\n\t\t\t}\n\n\t\t\tif (\n\t\t\t\tthis.op === 'BETWEEN' ||\n\t\t\t\tthis.op === 'NOT BETWEEN' ||\n\t\t\t\tthis.op === 'IS NULL' ||\n\t\t\t\tthis.op === 'IS NOT NULL'\n\t\t\t) {\n\t\t\t\treturn 'boolean';\n\t\t\t}\n\n\t\t\tif (this.allsome) {\n\t\t\t\treturn 'boolean';\n\t\t\t}\n\n\t\t\tif (!this.op) {\n\t\t\t\treturn this.left.toType();\n\t\t\t}\n\n\t\t\treturn 'unknown';\n\t\t}\n\n\t\ttoJS(context, tableid, defcols) {\n\n\t\t\tvar s;\n\t\t\tvar refs = [];\n\t\t\tvar op = this.op;\n\t\t\tvar _this = this;\n\t\t\t//var leftJS = function(){return _this.left.toJS(context,tableid, defcols)};\n\t\t\t//var rightJS = function(){return _this.right.toJS(context,tableid, defcols)};\n\t\t\tvar accessedLeft = false,\n\t\t\t\taccessedRight = false;\n\t\t\tvar ref = function (expr) {\n\t\t\t\tif (expr.toJS) {\n\t\t\t\t\texpr = expr.toJS(context, tableid, defcols);\n\t\t\t\t}\n\t\t\t\tvar i = refs.push(expr) - 1;\n\t\t\t\treturn 'y[' + i + ']';\n\t\t\t};\n\t\t\tvar leftJS = function () {\n\t\t\t\treturn ref(_this.left);\n\t\t\t};\n\t\t\tvar rightJS = function () {\n\t\t\t\treturn ref(_this.right);\n\t\t\t};\n\n\t\t\tif (this.op === '=') {\n\t\t\t\top = '===';\n\t\t\t} else if (this.op === '<>') {\n\t\t\t\top = '!=';\n\t\t\t} else if (this.op === 'OR') {\n\t\t\t\top = '||';\n\t\t\t}\n\n\t\t\t// Arrow operator\n\t\t\tif (this.op === '->') {\n\t\t\t\t// Expression to prevent error if object is empty (#344)\n\t\t\t\tvar ljs = '(' + leftJS() + '||{})';\n\n\t\t\t\tif (typeof this.right === 'string') {\n\t\t\t\t\ts = ljs + '[\"' + escapeq(this.right) + '\"]';\n\t\t\t\t} else if (typeof this.right === 'number') {\n\t\t\t\t\ts = ljs + '[' + this.right + ']';\n\t\t\t\t} else if (this.right instanceof yy.FuncValue) {\n\t\t\t\t\tvar ss = [];\n\t\t\t\t\tif (!(!this.right.args || 0 === this.right.args.length)) {\n\t\t\t\t\t\tvar ss = this.right.args.map(ref);\n\t\t\t\t\t}\n\t\t\t\t\ts = '' + ljs + '[' + JSON.stringify(this.right.funcid) + '](' + ss.join(',') + ')';\n\t\t\t\t} else {\n\t\t\t\t\ts = '' + ljs + '[' + rightJS() + ']';\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (this.op === '!') {\n\t\t\t\tif (typeof this.right === 'string') {\n\t\t\t\t\ts = '' + 'alasql.databases[alasql.useid].objects[' + leftJS() + '][\"' + this.right + '\"]';\n\t\t\t\t}\n\t\t\t\t// TODO - add other cases\n\t\t\t}\n\n\t\t\tif (this.op === 'IS') {\n\t\t\t\tconst leftOperand = leftJS();\n\t\t\t\tconst rightOperand = rightJS();\n\t\t\t\tif (\n\t\t\t\t\tthis.right instanceof yy.NullValue ||\n\t\t\t\t\t(this.right.op === 'NOT' && this.right.right instanceof yy.NullValue)\n\t\t\t\t) {\n\t\t\t\t\ts = `((${leftOperand} == null) === (${rightOperand} == null))`; // == null cant be ===\n\t\t\t\t} else {\n\t\t\t\t\ts = `((${leftOperand} == ${rightOperand}) || (${leftOperand} < 0 && true == ${rightOperand}))`;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (this.op === '==') {\n\t\t\t\ts = '' + 'alasql.utils.deepEqual(' + leftJS() + ',' + rightJS() + ')';\n\t\t\t}\n\n\t\t\tif (this.op === '===' || this.op === '!===') {\n\t\t\t\ts =\n\t\t\t\t\t'' +\n\t\t\t\t\t'(' +\n\t\t\t\t\t(this.op === '!===' ? '!' : '') +\n\t\t\t\t\t'(' +\n\t\t\t\t\t'(' +\n\t\t\t\t\tleftJS() +\n\t\t\t\t\t').valueOf()' +\n\t\t\t\t\t'===' +\n\t\t\t\t\t'(' +\n\t\t\t\t\trightJS() +\n\t\t\t\t\t').valueOf()' +\n\t\t\t\t\t')' +\n\t\t\t\t\t')';\n\t\t\t}\n\n\t\t\tif (this.op === '!==') {\n\t\t\t\ts = '' + '(!alasql.utils.deepEqual(' + leftJS() + ',' + rightJS() + '))';\n\t\t\t}\n\t\t\tif (this.op === '||') {\n\t\t\t\ts = '' + \"(''+(\" + leftJS() + \"||'')+(\" + rightJS() + '||\"\"))';\n\t\t\t}\n\t\t\tif (this.op === 'LIKE' || this.op === 'NOT LIKE') {\n\t\t\t\tvar s =\n\t\t\t\t\t'(' +\n\t\t\t\t\t(this.op === 'NOT LIKE' ? '!' : '') +\n\t\t\t\t\t'alasql.utils.like(' +\n\t\t\t\t\trightJS() +\n\t\t\t\t\t',' +\n\t\t\t\t\tleftJS();\n\t\t\t\tif (this.escape) {\n\t\t\t\t\ts += ',' + ref(this.escape);\n\t\t\t\t}\n\t\t\t\ts += '))';\n\t\t\t}\n\t\t\tif (this.op === 'REGEXP') {\n\t\t\t\ts = 'alasql.stdfn.REGEXP_LIKE(' + leftJS() + ',' + rightJS() + ')';\n\t\t\t}\n\t\t\tif (this.op === 'GLOB') {\n\t\t\t\ts = 'alasql.utils.glob(' + leftJS() + ',' + rightJS() + ')';\n\t\t\t}\n\n\t\t\tif (this.op === 'BETWEEN' || this.op === 'NOT BETWEEN') {\n\t\t\t\tvar left = leftJS();\n\t\t\t\ts =\n\t\t\t\t\t'' +\n\t\t\t\t\t'(' +\n\t\t\t\t\t(this.op === 'NOT BETWEEN' ? '!' : '') +\n\t\t\t\t\t'(' +\n\t\t\t\t\t'(' +\n\t\t\t\t\tref(this.right1) +\n\t\t\t\t\t'<=' +\n\t\t\t\t\tleft +\n\t\t\t\t\t') && (' +\n\t\t\t\t\tleft +\n\t\t\t\t\t'<=' +\n\t\t\t\t\tref(this.right2) +\n\t\t\t\t\t')' +\n\t\t\t\t\t')' +\n\t\t\t\t\t')';\n\t\t\t}\n\n\t\t\tif (this.op === 'IN') {\n\t\t\t\tif (this.right instanceof yy.Select) {\n\t\t\t\t\ts = '(';\n\t\t\t\t\t//\t\t\ts += 'this.query.queriesdata['+this.queriesidx+']';\n\t\t\t\t\t//\t\t\ts += 'alasql.utils.flatArray(this.query.queriesfn['+(this.queriesidx)+'](params,null,context))';\n\t\t\t\t\ts +=\n\t\t\t\t\t\t'alasql.utils.flatArray(this.queriesfn[' +\n\t\t\t\t\t\tthis.queriesidx +\n\t\t\t\t\t\t'](params,null,' +\n\t\t\t\t\t\tcontext +\n\t\t\t\t\t\t'))';\n\t\t\t\t\ts += '.indexOf(';\n\t\t\t\t\ts += 'alasql.utils.getValueOf(' + leftJS() + '))>-1)';\n\t\t\t\t} else if (Array.isArray(this.right)) {\n\t\t\t\t\tif (!alasql.options.cache || this.right.filter((value) => value instanceof yy.ParamValue).length > 0) {\n\t\t\t\t\t\t// When not using cache, or when the array contains parameters, we need to re-create the Set\n\t\t\t\t\t\t// leverage JS Set, which is faster for lookups than arrays\n\t\t\t\t\t\ts =\n\t\t\t\t\t\t\t'(new Set([' +\n\t\t\t\t\t\t\tthis.right.map(ref).join(',') +\n\t\t\t\t\t\t\t']).has(alasql.utils.getValueOf(' +\n\t\t\t\t\t\t\tleftJS() +\n\t\t\t\t\t\t\t')))';\n\t\t\t\t\t} else {\n\t\t\t\t\t\t// Use a cache to not re-create the Set on every identitical query \n\t\t\t\t\t\tif (!alasql.sets) {\n\t\t\t\t\t\t\talasql.sets = {};\n\t\t\t\t\t\t}\n\t\t\t\t\t\tconst allValues = this.right.map((value) => value.value);\n\t\t\t\t\t\tconst allValuesStr = allValues.join(\",\");\n\t\t\t\t\t\tif (!alasql.sets[allValuesStr]) {\n\t\t\t\t\t\t\t// leverage JS Set, which is faster for lookups than arrays\n\t\t\t\t\t\t\talasql.sets[allValuesStr] = new Set(allValues);\n\t\t\t\t\t\t}\n\t\t\t\t\t\ts = 'alasql.sets[\"' + allValuesStr + '\"].has(alasql.utils.getValueOf(' + leftJS() + '))';\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\ts = '(' + rightJS() + '.indexOf(' + leftJS() + ')>-1)';\n\n\t\t\t\t\t//\t\t} else {\n\t\t\t\t\t//\t\t\tthrow new Error('Wrong IN operator without SELECT part');\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (this.op === 'NOT IN') {\n\t\t\t\tif (this.right instanceof yy.Select) {\n\t\t\t\t\ts = '(';\n\t\t\t\t\ts += 'alasql.utils.flatArray(this.queriesfn[' + this.queriesidx + '](params,null,p))';\n\t\t\t\t\ts += '.indexOf(';\n\t\t\t\t\ts += 'alasql.utils.getValueOf(' + leftJS() + '))<0)';\n\t\t\t\t} else if (Array.isArray(this.right)) {\n\t\t\t\t\tif (!alasql.options.cache || this.right.filter((value) => value instanceof yy.ParamValue).length > 0) {\n\t\t\t\t\t\t// When not using cache, or when the array contains parameters, we need to re-create the Set\n\t\t\t\t\t\t// leverage JS Set, which is faster for lookups than arrays\n\t\t\t\t\t\ts =\n\t\t\t\t\t\t\t'(!(new Set([' +\n\t\t\t\t\t\t\tthis.right.map(ref).join(',') +\n\t\t\t\t\t\t\t']).has(alasql.utils.getValueOf(' +\n\t\t\t\t\t\t\tleftJS() +\n\t\t\t\t\t\t\t'))))';\n\t\t\t\t\t} else {\n\t\t\t\t\t\t// Use a cache to not re-create the Set on every identitical query \n\t\t\t\t\t\tif (!alasql.sets) {\n\t\t\t\t\t\t\talasql.sets = {};\n\t\t\t\t\t\t}\n\t\t\t\t\t\tconst allValues = this.right.map((value) => value.value);\n\t\t\t\t\t\tconst allValuesStr = allValues.join(\",\");\n\t\t\t\t\t\tif (!alasql.sets[allValuesStr]) {\n\t\t\t\t\t\t\t// leverage JS Set, which is faster for lookups than arrays\n\t\t\t\t\t\t\talasql.sets[allValuesStr] = new Set(allValues);\n\t\t\t\t\t\t}\n\t\t\t\t\t\ts = '!alasql.sets[\"' + allValuesStr + '\"].has(alasql.utils.getValueOf(' + leftJS() + '))';\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\ts = '(' + rightJS() + '.indexOf(';\n\t\t\t\t\ts += leftJS() + ')==-1)';\n\n\t\t\t\t\t//\t\t\tthrow new Error('Wrong NOT IN operator without SELECT part');\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (this.allsome === 'ALL') {\n\t\t\t\tvar s;\n\t\t\t\tif (this.right instanceof yy.Select) {\n\t\t\t\t\ts =\n\t\t\t\t\t\t'alasql.utils.flatArray(this.query.queriesfn[' + this.queriesidx + '](params,null,p))';\n\n\t\t\t\t\ts += '.every(function(b){return (';\n\t\t\t\t\ts += leftJS() + ')' + op + 'b})';\n\t\t\t\t} else if (Array.isArray(this.right)) {\n\t\t\t\t\ts =\n\t\t\t\t\t\t'' +\n\t\t\t\t\t\t(this.right.length == 1\n\t\t\t\t\t\t\t? ref(this.right[0])\n\t\t\t\t\t\t\t: '[' + this.right.map(ref).join(',') + ']');\n\t\t\t\t\ts += '.every(function(b){return (';\n\t\t\t\t\ts += leftJS() + ')' + op + 'b})';\n\t\t\t\t} else {\n\t\t\t\t\tthrow new Error('NOT IN operator without SELECT');\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (this.allsome === 'SOME' || this.allsome === 'ANY') {\n\t\t\t\tvar s;\n\t\t\t\tif (this.right instanceof yy.Select) {\n\t\t\t\t\ts =\n\t\t\t\t\t\t'alasql.utils.flatArray(this.query.queriesfn[' + this.queriesidx + '](params,null,p))';\n\t\t\t\t\ts += '.some(function(b){return (';\n\t\t\t\t\ts += leftJS() + ')' + op + 'b})';\n\t\t\t\t} else if (Array.isArray(this.right)) {\n\t\t\t\t\ts =\n\t\t\t\t\t\t'' +\n\t\t\t\t\t\t(this.right.length == 1\n\t\t\t\t\t\t\t? ref(this.right[0])\n\t\t\t\t\t\t\t: '[' + this.right.map(ref).join(',') + ']');\n\t\t\t\t\ts += '.some(function(b){return (';\n\t\t\t\t\ts += leftJS() + ')' + op + 'b})';\n\t\t\t\t} else {\n\t\t\t\t\tthrow new Error('SOME/ANY operator without SELECT');\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Special case for AND optimization (if reduced)\n\t\t\tif (this.op === 'AND') {\n\t\t\t\tif (this.left.reduced) {\n\t\t\t\t\tif (this.right.reduced) {\n\t\t\t\t\t\treturn 'true';\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts = rightJS();\n\t\t\t\t\t}\n\t\t\t\t} else if (this.right.reduced) {\n\t\t\t\t\ts = leftJS();\n\t\t\t\t}\n\n\t\t\t\t// Otherwise process as regular operation (see below)\n\t\t\t\top = '&&';\n\t\t\t}\n\n\t\t\t// if(this.op === '^') {\n\t\t\t// \t// return \t'Math.pow('\n\t\t\t// \t// \t\t+ leftJS()\n\t\t\t// \t// \t\t+ ','\n\t\t\t// \t// \t\t+ rightJS()\n\t\t\t// \t// \t\t+ ')';\n\t\t\t// }\n\t\t\tvar expr = s || '(' + leftJS() + op + rightJS() + ')';\n\n\t\t\tvar declareRefs = 'y=[(' + refs.join('), (') + ')]';\n\t\t\tif (op === '&&' || op === '||' || op === 'IS' || op === 'IS NULL' || op === 'IS NOT NULL') {\n\t\t\t\treturn '(' + declareRefs + ', ' + expr + ')';\n\t\t\t}\n\n\t\t\treturn (\n\t\t\t\t'(' + declareRefs + ', ' + 'y.some(function(e){return e == null}) ? void 0 : ' + expr + ')'\n\t\t\t);\n\t\t}\n\t}\n\n\tclass VarValue {\n\t\tconstructor(params) {\n\t\t\tassign(this, params);\n\t\t}\n\n\t\ttoString() {\n\t\t\treturn '@' + this.variable;\n\t\t}\n\n\t\ttoType() {\n\t\t\treturn 'unknown';\n\t\t}\n\n\t\ttoJS() {\n\t\t\treturn \"alasql.vars['\" + escapeq(this.variable) + \"']\";\n\t\t}\n\t}\n\n\tclass NumValue {\n\t\tconstructor(params) {\n\t\t\tassign(this, params);\n\t\t}\n\n\t\ttoString() {\n\t\t\treturn this.value.toString();\n\t\t}\n\n\t\ttoType() {\n\t\t\treturn 'number';\n\t\t}\n\n\t\ttoJS() {\n\t\t\treturn '' + this.value;\n\t\t}\n\t}\n\n\tclass StringValue {\n\t\tconstructor(params) {\n\t\t\tassign(this, params);\n\t\t}\n\n\t\ttoString() {\n\t\t\treturn \"'\" + this.value.toString() + \"'\";\n\t\t}\n\n\t\ttoType() {\n\t\t\treturn 'string';\n\t\t}\n\n\t\ttoJS() {\n\t\t\treturn \"'\" + escapeq(this.value) + \"'\";\n\t\t}\n\t}\n\n\tclass DomainValueValue {\n\t\tconstructor(params) {\n\t\t\tassign(this, params);\n\t\t}\n\n\t\ttoString() {\n\t\t\treturn 'VALUE';\n\t\t}\n\n\t\ttoType() {\n\t\t\treturn 'object';\n\t\t}\n\n\t\ttoJS(context, tableid, defcols) {\n\n\t\t\t//\treturn \"'\"+doubleqq(this.value)+\"'\";\n\t\t\treturn context;\n\t\t}\n\t}\n\n\tclass ArrayValue {\n\t\tconstructor(params) {\n\t\t\tassign(this, params);\n\t\t}\n\n\t\ttoString() {\n\t\t\treturn 'ARRAY[]';\n\t\t}\n\n\t\ttoType() {\n\t\t\treturn 'object';\n\t\t}\n\n\t\ttoJS(context, tableid, defcols) {\n\t\t\treturn (\n\t\t\t\t'[(' +\n\t\t\t\tthis.value\n\t\t\t\t\t.map(function (el) {\n\t\t\t\t\t\treturn el.toJS(context, tableid, defcols);\n\t\t\t\t\t})\n\t\t\t\t\t.join('), (') +\n\t\t\t\t')]'\n\t\t\t);\n\t\t}\n\t}\n\n\tclass LogicValue {\n\t\tconstructor(params) {\n\t\t\tassign(this, params);\n\t\t}\n\n\t\ttoString() {\n\t\t\treturn this.value ? 'TRUE' : 'FALSE';\n\t\t}\n\n\t\ttoType() {\n\t\t\treturn 'boolean';\n\t\t}\n\n\t\ttoJS() {\n\t\t\treturn this.value ? 'true' : 'false';\n\t\t}\n\t}\n\n\tclass NullValue {\n\t\tconstructor(params) {\n\t\t\tassign(this, params);\n\t\t}\n\n\t\ttoString() {\n\t\t\treturn 'NULL';\n\t\t}\n\n\t\ttoJS() {\n\t\t\treturn 'undefined';\n\t\t}\n\t}\n\n\tclass ParamValue {\n\t\tconstructor(params) {\n\t\t\tassign(this, params);\n\t\t}\n\n\t\ttoString() {\n\t\t\treturn '$' + this.param;\n\t\t}\n\n\t\ttoJS() {\n\t\t\tif (typeof this.param === 'string') {\n\t\t\t\treturn \"params['\" + this.param + \"']\";\n\t\t\t}\n\n\t\t\treturn 'params[' + this.param + ']';\n\t\t}\n\t}\n\n\tclass UniOp {\n\t\tconstructor(params) {\n\t\t\tassign(this, params);\n\t\t}\n\n\t\ttoString() {\n\t\t\tvar s;\n\t\t\tconst { op, right } = this;\n\t\t\tconst res = right.toString();\n\n\t\t\tif (op === '~') {\n\t\t\t\ts = op + res;\n\t\t\t}\n\t\t\tif (op === '-') {\n\t\t\t\ts = op + res;\n\t\t\t}\n\t\t\tif (op === '+') {\n\t\t\t\ts = op + res;\n\t\t\t}\n\t\t\tif (op === '#') {\n\t\t\t\ts = op + res;\n\t\t\t}\n\t\t\tif (op === 'NOT') {\n\t\t\t\ts = op + '(' + res + ')';\n\t\t\t}\n\t\t\tif (op === null) {\n\t\t\t\ts = '(' + res + ')';\n\t\t\t}\n\t\t\tif (!s) {\n\t\t\t\ts = '(' + res + ')';\n\t\t\t}\n\t\t\treturn s;\n\t\t}\n\n\t\tfindAggregator(query) {\n\t\t\tif (this.right.findAggregator) {\n\t\t\t\tthis.right.findAggregator(query);\n\t\t\t}\n\t\t}\n\n\t\ttoType() {\n\t\t\tif (this.op === '-') {\n\t\t\t\treturn 'number';\n\t\t\t}\n\n\t\t\tif (this.op === '+') {\n\t\t\t\treturn 'number';\n\t\t\t}\n\n\t\t\tif (this.op === 'NOT') {\n\t\t\t\treturn 'boolean';\n\t\t\t}\n\n\t\t\t// Todo: implement default case\n\t\t}\n\n\t\ttoJS(context, tableid, defcols) {\n\t\t\tif (this.op === '~') {\n\t\t\t\treturn '(~(' + this.right.toJS(context, tableid, defcols) + '))';\n\t\t\t}\n\n\t\t\tif (this.op === '-') {\n\t\t\t\treturn '(-(' + this.right.toJS(context, tableid, defcols) + '))';\n\t\t\t}\n\n\t\t\tif (this.op === '+') {\n\t\t\t\treturn '(' + this.right.toJS(context, tableid, defcols) + ')';\n\t\t\t}\n\n\t\t\tif (this.op === 'NOT') {\n\t\t\t\treturn '!(' + this.right.toJS(context, tableid, defcols) + ')';\n\t\t\t}\n\n\t\t\tif (this.op === '#') {\n\t\t\t\tif (this.right instanceof Column) {\n\t\t\t\t\treturn \"(alasql.databases[alasql.useid].objects['\" + this.right.columnid + \"'])\";\n\t\t\t\t} else {\n\t\t\t\t\treturn (\n\t\t\t\t\t\t'(alasql.databases[alasql.useid].objects[' +\n\t\t\t\t\t\tthis.right.toJS(context, tableid, defcols) +\n\t\t\t\t\t\t'])'\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Please avoid === here\n\t\t\tif (this.op == null) {\n\t\t\t\t// jshint ignore:line\n\t\t\t\treturn '(' + this.right.toJS(context, tableid, defcols) + ')';\n\t\t\t}\n\n\t\t\t// Todo: implement default case.\n\t\t}\n\t}\n\n\tclass Column {\n\t\tconstructor(params) {\n\t\t\tassign(this, params);\n\t\t}\n\n\t\ttoString() {\n\t\t\tvar s;\n\t\t\tif (this.columnid == +this.columnid) {\n\t\t\t\ts = '[' + this.columnid + ']';\n\t\t\t} else {\n\t\t\t\ts = this.columnid;\n\t\t\t}\n\t\t\tif (this.tableid) {\n\t\t\t\tif (+this.columnid === this.columnid) {\n\t\t\t\t\ts = this.tableid + s;\n\t\t\t\t} else {\n\t\t\t\t\ts = this.tableid + '.' + s;\n\t\t\t\t}\n\t\t\t\tif (this.databaseid) {\n\t\t\t\t\ts = this.databaseid + '.' + s;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn s;\n\t\t}\n\n\t\ttoJS(context, tableid, defcols) {\n\t\t\tvar s = '';\n\t\t\tif (!this.tableid && tableid === '' && !defcols) {\n\t\t\t\tif (this.columnid !== '_') {\n\t\t\t\t\ts = context + \"['\" + this.columnid + \"']\";\n\t\t\t\t} else {\n\t\t\t\t\tif (context === 'g') {\n\t\t\t\t\t\ts = \"g['_']\";\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts = context;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif (context === 'g') {\n\t\t\t\t\ts = \"g['\" + this.nick + \"']\";\n\t\t\t\t} else if (this.tableid) {\n\t\t\t\t\tif (this.columnid !== '_') {\n\t\t\t\t\t\ts = context + \"['\" + this.tableid + \"']['\" + this.columnid + \"']\";\n\t\t\t\t\t} else {\n\t\t\t\t\t\tif (context === 'g') {\n\t\t\t\t\t\t\ts = \"g['_']\";\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts = context + \"['\" + this.tableid + \"']\";\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} else if (defcols) {\n\t\t\t\t\tvar tbid = defcols[this.columnid];\n\t\t\t\t\tif (tbid === '-') {\n\t\t\t\t\t\tthrow new Error(\n\t\t\t\t\t\t\t'Cannot resolve column \"' + this.columnid + '\" because it exists in two source tables'\n\t\t\t\t\t\t);\n\t\t\t\t\t} else if (tbid) {\n\t\t\t\t\t\tif (this.columnid !== '_') {\n\t\t\t\t\t\t\ts = context + \"['\" + tbid + \"']['\" + this.columnid + \"']\";\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts = context + \"['\" + tbid + \"']\";\n\t\t\t\t\t\t}\n\n\t\t\t\t\t} else {\n\t\t\t\t\t\tif (this.columnid !== '_') {\n\t\t\t\t\t\t\ts = context + \"['\" + (this.tableid || tableid) + \"']['\" + this.columnid + \"']\";\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts = context + \"['\" + (this.tableid || tableid) + \"']\";\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} else if (tableid === -1) {\n\t\t\t\t\ts = context + \"['\" + this.columnid + \"']\";\n\t\t\t\t} else {\n\t\t\t\t\tif (this.columnid !== '_') {\n\t\t\t\t\t\ts = context + \"['\" + (this.tableid || tableid) + \"']['\" + this.columnid + \"']\";\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts = context + \"['\" + (this.tableid || tableid) + \"']\";\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn s;\n\t\t}\n\t}\n\n\tclass AggrValue {\n\t\tconstructor(params) {\n\t\t\tassign(this, params);\n\t\t}\n\n\t\ttoString() {\n\t\t\tvar s = '';\n\t\t\tif (this.aggregatorid === 'REDUCE') {\n\t\t\t\ts += this.funcid.replace(re_invalidFnNameChars, '') + '(';\n\t\t\t} else {\n\t\t\t\ts += this.aggregatorid + '(';\n\t\t\t}\n\n\t\t\tif (this.distinct) {\n\t\t\t\ts += 'DISTINCT ';\n\t\t\t}\n\n\t\t\tif (this.expression) {\n\t\t\t\ts += this.expression.toString();\n\t\t\t}\n\n\t\t\ts += ')';\n\n\t\t\tif (this.over) {\n\t\t\t\ts += ' ' + this.over.toString();\n\t\t\t}\n\t\t\treturn s;\n\t\t}\n\n\t\tfindAggregator(query) {\n\t\t\tvar colas = escapeq(this.toString()) + ':' + query.selectGroup.length;\n\t\t\tvar found = false;\n\t\t\tif (!found) {\n\t\t\t\tif (!this.nick) {\n\t\t\t\t\tthis.nick = colas;\n\t\t\t\t\tvar found = false;\n\t\t\t\t\tfor (var i = 0; i < query.removeKeys.length; i++) {\n\t\t\t\t\t\tif (query.removeKeys[i] === colas) {\n\t\t\t\t\t\t\tfound = true;\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif (!found) {\n\t\t\t\t\t\tquery.removeKeys.push(colas);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tquery.selectGroup.push(this);\n\t\t\t}\n\t\t\treturn;\n\t\t}\n\n\t\ttoType() {\n\t\t\tif (\n\t\t\t\t['SUM', 'COUNT', 'AVG', 'MIN', 'MAX', 'AGGR', 'VAR', 'STDDEV', 'TOTAL'].indexOf(\n\t\t\t\t\tthis.aggregatorid\n\t\t\t\t) > -1\n\t\t\t) {\n\t\t\t\treturn 'number';\n\t\t\t}\n\n\t\t\tif (['ARRAY'].indexOf(this.aggregatorid) > -1) {\n\t\t\t\treturn 'array';\n\t\t\t}\n\n\t\t\tif (['FIRST', 'LAST'].indexOf(this.aggregatorid) > -1) {\n\t\t\t\treturn this.expression.toType();\n\t\t\t}\n\n\t\t\treturn this.expression.toType();\n\t\t}\n\n\t\ttoJS() {\n\t\t\tvar colas = this.nick;\n\t\t\tif (colas === undefined) {\n\t\t\t\tcolas = escapeq(this.toString());\n\t\t\t}\n\t\t\treturn \"g['\" + colas + \"']\";\n\t\t}\n\t}\n\n\tclass OrderExpression {\n\t\tconstructor(params) {\n\t\t\tassign(this, params);\n\t\t}\n\t}\n\n\tOrderExpression.prototype.toString = Expression.prototype.toString;\n\n\tclass GroupExpression {\n\t\tconstructor(params) {\n\t\t\tassign(this, params);\n\t\t}\n\n\t\ttoString() {\n\t\t\treturn this.type + '(' + this.group.toString() + ')';\n\t\t}\n\t}\n\n\tassign(yy, {\n\t\tAggrValue,\n\t\tArrayValue,\n\t\tColumn,\n\t\tDomainValueValue,\n\t\tExpression,\n\t\tExpressionStatement,\n\t\tGroupExpression,\n\t\tJavaScript,\n\t\tJoin,\n\t\tLiteral,\n\t\tLogicValue,\n\t\tNullValue,\n\t\tNumValue,\n\t\tOp,\n\t\tOrderExpression,\n\t\tParamValue,\n\t\tStringValue,\n\t\tTable,\n\t\tUniOp,\n\t\tVarValue,\n\t\tView,\n\t});\n}\n// Alasql Linq library\n\nyy.FromData = function (params) {\n\treturn yy.extend(this, params);\n};\nyy.FromData.prototype.toString = function () {\n\tif (this.data) return 'DATA(' + ((Math.random() * 10e15) | 0) + ')';\n\telse return '?';\n};\nyy.FromData.prototype.toJS = function () {\n\n};\n\nyy.Select.prototype.exec = function (params, cb) {\n\tif (this.preparams) params = this.preparams.concat(params);\n\n\tvar databaseid = alasql.useid;\n\tvar db = alasql.databases[databaseid];\n\tvar sql = this.toString();\n\tvar hh = hash(sql);\n\n\tvar statement = this.compile(databaseid);\n\tif (!statement) return;\n\tstatement.sql = sql;\n\tstatement.dbversion = db.dbversion;\n\n\t// Secure sqlCache size\n\tif (db.sqlCacheSize > alasql.MAXSQLCACHESIZE) {\n\t\tdb.resetSqlCache();\n\t}\n\tdb.sqlCacheSize++;\n\tdb.sqlCache[hh] = statement;\n\tvar res = (alasql.res = statement(params, cb));\n\treturn res;\n};\n\nyy.Select.prototype.Select = function () {\n\tvar self = this;\n\tvar args = [];\n\tif (arguments.length > 1) {\n\t\targs = Array.prototype.slice.call(arguments);\n\t} else if (arguments.length == 1) {\n\t\tif (Array.isArray(arguments[0])) {\n\t\t\targs = arguments[0];\n\t\t} else {\n\t\t\targs = [arguments[0]];\n\t\t}\n\t} else {\n\t\tthrow new Error('Wrong number of arguments of Select() function');\n\t}\n\n\tself.columns = [];\n\n\targs.forEach(function (arg) {\n\t\tif (typeof arg == 'string') {\n\t\t\tself.columns.push(new yy.Column({columnid: arg}));\n\t\t} else if (typeof arg == 'function') {\n\t\t\tvar pari = 0;\n\t\t\tif (self.preparams) {\n\t\t\t\tpari = self.preparams.length;\n\t\t\t} else {\n\t\t\t\tself.preparams = [];\n\t\t\t}\n\t\t\tself.preparams.push(arg);\n\t\t\tself.columns.push(new yy.Column({columnid: '*', func: arg, param: pari}));\n\t\t} else {\n\t\t\t// Unknown type\n\t\t}\n\t});\n\n\treturn self;\n};\n\nyy.Select.prototype.From = function (tableid) {\n\tvar self = this;\n\tif (!self.from) self.from = [];\n\tif (Array.isArray(tableid)) {\n\t\tvar pari = 0;\n\t\tif (self.preparams) {\n\t\t\tpari = self.preparams.length;\n\t\t} else {\n\t\t\tself.preparams = [];\n\t\t}\n\t\tself.preparams.push(tableid);\n\t\tself.from.push(new yy.ParamValue({param: pari}));\n\t} else if (typeof tableid == 'string') {\n\t\tself.from.push(new yy.Table({tableid: tableid}));\n\t} else {\n\t\tthrow new Error('Unknown arguments in From() function');\n\t}\n\treturn self;\n};\n\nyy.Select.prototype.OrderBy = function () {\n\tvar self = this;\n\tvar args = [];\n\n\tself.order = [];\n\n\tif (arguments.length == 0) {\n\t\t//\t\tself.order.push(new yy.OrderExpression({expression: new yy.Column({columnid:\"_\"}), direction:'ASC'}));\n\t\targs = ['_'];\n\t} else if (arguments.length > 1) {\n\t\targs = Array.prototype.slice.call(arguments);\n\t} else if (arguments.length == 1) {\n\t\tif (Array.isArray(arguments[0])) {\n\t\t\targs = arguments[0];\n\t\t} else {\n\t\t\targs = [arguments[0]];\n\t\t}\n\t} else {\n\t\tthrow new Error('Wrong number of arguments of Select() function');\n\t}\n\n\tif (args.length > 0) {\n\t\targs.forEach(function (arg) {\n\t\t\tvar expr = new yy.Column({columnid: arg});\n\t\t\tif (typeof arg == 'function') {\n\t\t\t\texpr = arg;\n\t\t\t}\n\t\t\tself.order.push(new yy.OrderExpression({expression: expr, direction: 'ASC'}));\n\t\t});\n\t}\n\treturn self;\n};\n\nyy.Select.prototype.Top = function (topnum) {\n\tvar self = this;\n\tself.top = new yy.NumValue({value: topnum});\n\treturn self;\n};\n\nyy.Select.prototype.GroupBy = function () {\n\tvar self = this;\n\tvar args = [];\n\n\tif (arguments.length > 1) {\n\t\targs = Array.prototype.slice.call(arguments);\n\t} else if (arguments.length == 1) {\n\t\tif (Array.isArray(arguments[0])) {\n\t\t\targs = arguments[0];\n\t\t} else {\n\t\t\targs = [arguments[0]];\n\t\t}\n\t} else {\n\t\tthrow new Error('Wrong number of arguments of Select() function');\n\t}\n\n\tself.group = [];\n\n\targs.forEach(function (arg) {\n\t\tvar expr = new yy.Column({columnid: arg});\n\t\tself.group.push(expr);\n\t});\n\n\treturn self;\n};\n\nyy.Select.prototype.Where = function (expr) {\n\tvar self = this;\n\tif (typeof expr == 'function') {\n\t\tself.where = expr;\n\t}\n\treturn self;\n};\n/*\n//\n// Functions for Alasql.js\n// Date: 03.11.2014\n// (c) 2014, Andrey Gershun\n//\n*/\n\nyy.FuncValue = function (params) {\n\treturn Object.assign(this, params);\n};\n\nlet re_invalidFnNameChars = /[^0-9A-Z_$]+/i;\nyy.FuncValue.prototype.toString = function () {\n\tlet s = '';\n\n\tif (alasql.fn[this.funcid]) s += this.funcid;\n\telse if (alasql.aggr[this.funcid]) s += this.funcid;\n\telse if (alasql.stdlib[this.funcid.toUpperCase()] || alasql.stdfn[this.funcid.toUpperCase()])\n\t\ts += this.funcid.toUpperCase().replace(re_invalidFnNameChars, '');\n\n\tif (this.funcid !== 'CURRENT_TIMESTAMP') {\n\t\ts += '(';\n\t\tif (this.args && this.args.length > 0) {\n\t\t\ts += this.args\n\t\t\t\t.map(function (arg) {\n\t\t\t\t\treturn arg.toString();\n\t\t\t\t})\n\t\t\t\t.join(',');\n\t\t}\n\t\ts += ')';\n\t}\n\treturn s;\n};\n\nyy.FuncValue.prototype.execute = function (databaseid, params, cb) {\n\tlet res = 1;\n\talasql.precompile(this, databaseid, params); // Precompile queries\n\n\tlet expr = new Function('params,alasql', 'var y;return ' + this.toJS('', '', null));\n\texpr(params, alasql);\n\tif (cb) res = cb(res);\n\treturn res;\n};\n\nyy.FuncValue.prototype.findAggregator = function (query) {\n\tif (this.args && this.args.length > 0) {\n\t\tthis.args.forEach(function (arg) {\n\t\t\tif (arg.findAggregator) arg.findAggregator(query);\n\t\t});\n\t}\n};\n\nyy.FuncValue.prototype.toJS = function (context, tableid, defcols) {\n\tvar s = '';\n\tvar funcid = this.funcid;\n\t// IF this is standard compile functions\n\tif (!alasql.fn[funcid] && alasql.stdlib[funcid.toUpperCase()]) {\n\t\tif (this.args && this.args.length > 0) {\n\t\t\ts += alasql.stdlib[funcid.toUpperCase()].apply(\n\t\t\t\tthis,\n\t\t\t\tthis.args.map(function (arg) {\n\t\t\t\t\treturn arg.toJS(context, tableid);\n\t\t\t\t})\n\t\t\t);\n\t\t} else {\n\t\t\ts += alasql.stdlib[funcid.toUpperCase()]();\n\t\t}\n\t} else if (!alasql.fn[funcid] && alasql.stdfn[funcid.toUpperCase()]) {\n\t\tif (this.newid) s += 'new ';\n\t\ts += 'alasql.stdfn[' + JSON.stringify(this.funcid.toUpperCase()) + '](';\n\t\t//\t\tif(this.args) s += this.args.toJS(context, tableid);\n\t\tif (this.args && this.args.length > 0) {\n\t\t\ts += this.args\n\t\t\t\t.map(function (arg) {\n\t\t\t\t\treturn arg.toJS(context, tableid, defcols);\n\t\t\t\t})\n\t\t\t\t.join(',');\n\t\t}\n\t\ts += ')';\n\t} else {\n\t\t// This is user-defined run-time function\n\t\t// TODO arguments!!!\n\t\t//\t\tvar s = '';\n\t\tif (this.newid) s += 'new ';\n\t\ts += 'alasql.fn[' + JSON.stringify(this.funcid) + '](';\n\t\t//\t\tif(this.args) s += this.args.toJS(context, tableid);\n\t\tif (this.args && this.args.length > 0) {\n\t\t\ts += this.args\n\t\t\t\t.map(function (arg) {\n\t\t\t\t\treturn arg.toJS(context, tableid, defcols);\n\t\t\t\t})\n\t\t\t\t.join(',');\n\t\t}\n\t\ts += ')';\n\t}\n\n\treturn s;\n};\n\nvar stdlib = (alasql.stdlib = {});\nvar stdfn = (alasql.stdfn = {});\n\nstdlib.ABS = function (a) {\n\treturn 'Math.abs(' + a + ')';\n};\nstdlib.CLONEDEEP = function (a) {\n\treturn 'alasql.utils.cloneDeep(' + a + ')';\n};\n\nstdfn.CONCAT = function () {\n\treturn Array.prototype.slice.call(arguments).join('');\n};\nstdlib.EXP = function (a) {\n\treturn 'Math.pow(Math.E,' + a + ')';\n};\n\nstdlib.IIF = function (a, b, c) {\n\tif (arguments.length === 3) {\n\t\treturn '((' + a + ')?(' + b + '):(' + c + '))';\n\t} else {\n\t\tthrow new Error('Number of arguments of IFF is not equals to 3');\n\t}\n};\nstdlib.IFNULL = function (a, b) {\n\treturn '((typeof ' + a + ' ===\"undefined\" || null === ' + a + ')?' + b + ':' + a + ')';\n};\nstdlib.INSTR = function (s, p) {\n\treturn '((' + s + ').indexOf(' + p + ')+1)';\n};\n\n//stdlib.LEN = stdlib.LENGTH = function(s) {return '('+s+'+\"\").length';};\n\nstdlib.LEN = stdlib.LENGTH = function (s) {\n\treturn und(s, 'y.length');\n};\n//stdlib.LENGTH = function(s) {return '('+s+').length'};\n\nstdlib.LOWER = stdlib.LCASE = function (s) {\n\treturn und(s, 'String(y).toLowerCase()');\n};\n//stdlib.LCASE = function(s) {return '('+s+').toLowerCase()';}\n\n// Returns a character expression after it removes leading blanks.\n// see https://docs.microsoft.com/en-us/sql/t-sql/functions/ltrim-transact-sql\nstdlib.LTRIM = function (s) {\n\treturn und(s, 'y.replace(/^[ ]+/,\"\")');\n};\n\n// Returns a character string after truncating all trailing spaces.\n// see https://docs.microsoft.com/en-us/sql/t-sql/functions/rtrim-transact-sql\nstdlib.RTRIM = function (s) {\n\treturn und(s, 'y.replace(/[ ]+$/,\"\")');\n};\n\nstdlib.MAX = stdlib.GREATEST = function () {\n\treturn (\n\t\t'[' +\n\t\tArray.prototype.join.call(arguments, ',') +\n\t\t'].reduce(function (a, b) { return a > b ? a : b; })'\n\t);\n};\n\nstdlib.MIN = stdlib.LEAST = function () {\n\treturn (\n\t\t'[' +\n\t\tArray.prototype.join.call(arguments, ',') +\n\t\t'].reduce(function (a, b) { return a < b ? a : b; })'\n\t);\n};\n\nstdlib.SUBSTRING =\n\tstdlib.SUBSTR =\n\tstdlib.MID =\n\t\tfunction (a, b, c) {\n\t\t\tif (arguments.length == 2) return und(a, 'y.substr(' + b + '-1)');\n\t\t\telse if (arguments.length == 3) return und(a, 'y.substr(' + b + '-1,' + c + ')');\n\t\t};\n\nstdfn.REGEXP_LIKE = function (a, b, c) {\n\n\treturn (a || '').search(RegExp(b, c)) > -1;\n};\n\n// Here we uses undefined instead of null\nstdlib.ISNULL = stdlib.NULLIF = function (a, b) {\n\treturn '(' + a + '==' + b + '?undefined:' + a + ')';\n};\n\nstdlib.POWER = function (a, b) {\n\treturn 'Math.pow(' + a + ',' + b + ')';\n};\n\nstdlib.RANDOM = function (r) {\n\tif (arguments.length == 0) {\n\t\treturn 'Math.random()';\n\t} else {\n\t\treturn '(Math.random()*(' + r + ')|0)';\n\t}\n};\nstdlib.ROUND = function (s, d) {\n\tif (arguments.length == 2) {\n\t\treturn 'Math.round((' + s + ')*Math.pow(10,(' + d + ')))/Math.pow(10,(' + d + '))';\n\t} else {\n\t\treturn 'Math.round(' + s + ')';\n\t}\n};\nstdlib.CEIL = stdlib.CEILING = function (s) {\n\treturn 'Math.ceil(' + s + ')';\n};\nstdlib.FLOOR = function (s) {\n\treturn 'Math.floor(' + s + ')';\n};\n\nstdlib.ROWNUM = function () {\n\treturn '1';\n};\nstdlib.ROW_NUMBER = function () {\n\treturn '1';\n};\n\nstdlib.SQRT = function (s) {\n\treturn 'Math.sqrt(' + s + ')';\n};\n\nstdlib.TRIM = function (s) {\n\treturn und(s, 'y.trim()');\n};\n\nstdlib.UPPER = stdlib.UCASE = function (s) {\n\treturn und(s, 'String(y).toUpperCase()');\n};\n\n// Concatination of strings\nstdfn.CONCAT_WS = function () {\n\tvar args = Array.prototype.slice.call(arguments);\n\targs = args.filter(x => !(x === null || typeof x === 'undefined'));\n\treturn args.slice(1, args.length).join(args[0] || '');\n};\n\n//stdlib.UCASE = function(s) {return '('+s+').toUpperCase()';}\n//REPLACE\n// RTRIM\n// SUBSTR\n// TRIM\n//REPLACE\n// RTRIM\n// SUBSTR\n// TRIM\n\n// Aggregator for joining strings\nalasql.aggr.GROUP_CONCAT = function (v, s, stage) {\n\tif (stage === 1) {\n\t\treturn '' + v;\n\t} else if (stage === 2) {\n\t\ts += ',' + v;\n\t\treturn s;\n\t}\n\treturn s;\n};\n\nalasql.aggr.median = alasql.aggr.MEDIAN = function (v, s, stage) {\n\tif (stage === 2) {\n\t\tif (v !== null) {\n\t\t\ts.push(v);\n\t\t}\n\t\treturn s;\n\t}\n\n\tif (stage === 1) {\n\t\tif (v === null) {\n\t\t\treturn [];\n\t\t}\n\t\treturn [v];\n\t}\n\n\tif (!s.length) {\n\t\treturn null;\n\t}\n\n\tvar r = s.sort((a, b) => {\n\t\tif (a > b) return 1;\n\t\tif (a < b) return -1;\n\t\treturn 0;\n\t});\n\n\tvar middle = (r.length + 1) / 2;\n\tvar middleFloor = middle | 0;\n\tvar el = r[middleFloor - 1];\n\n\tif (middle === middleFloor || (typeof el !== 'number' && !(el instanceof Number))) {\n\t\treturn el;\n\t} else {\n\t\treturn (el + r[middleFloor]) / 2;\n\t}\n};\n\nalasql.aggr.QUART = function (v, s, stage, nth) {\n\t//Quartile (first quartile per default or input param)\n\tif (stage === 2) {\n\t\tif (v !== null) {\n\t\t\ts.push(v);\n\t\t}\n\t\treturn s;\n\t} else if (stage === 1) {\n\t\tif (v === null) {\n\t\t\treturn [];\n\t\t}\n\t\treturn [v];\n\t} else {\n\t\tif (!s.length) {\n\t\t\treturn s;\n\t\t}\n\n\t\tnth = !nth ? 1 : nth;\n\t\tvar r = s.sort(function (a, b) {\n\t\t\tif (a === b) {\n\t\t\t\treturn 0;\n\t\t\t}\n\t\t\tif (a > b) {\n\t\t\t\treturn 1;\n\t\t\t}\n\t\t\treturn -1;\n\t\t});\n\t\tvar p = (nth * (r.length + 1)) / 4;\n\t\tif (Number.isInteger(p)) {\n\t\t\treturn r[p - 1]; //Integer value\n\t\t}\n\t\treturn r[Math.floor(p)]; //Math.ceil -1 or Math.floor\n\t}\n};\n\nalasql.aggr.QUART2 = function (v, s, stage) {\n\t//Second Quartile\n\treturn alasql.aggr.QUART(v, s, stage, 2);\n};\nalasql.aggr.QUART3 = function (v, s, stage) {\n\t//Third Quartile\n\treturn alasql.aggr.QUART(v, s, stage, 3);\n};\n\n// Standard deviation\nalasql.aggr.VAR = function (v, s, stage) {\n\tif (stage === 1) {\n\t\tif (v === null) {\n\t\t\treturn {arr: [], sum: 0};\n\t\t}\n\t\treturn {arr: [v], sum: v};\n\t} else if (stage === 2) {\n\t\tif (v === null) {\n\t\t\treturn s;\n\t\t}\n\t\ts.arr.push(v);\n\t\ts.sum += v;\n\t\treturn s;\n\t} else {\n\t\tvar N = s.arr.length;\n\t\tvar avg = s.sum / N;\n\t\tvar std = 0;\n\t\tfor (var i = 0; i < N; i++) {\n\t\t\tstd += (s.arr[i] - avg) * (s.arr[i] - avg);\n\t\t}\n\t\tstd = std / (N - 1);\n\t\treturn std;\n\t}\n};\n\nalasql.aggr.STDEV = function (v, s, stage) {\n\tif (stage === 1 || stage === 2) {\n\t\treturn alasql.aggr.VAR(v, s, stage);\n\t} else {\n\t\treturn Math.sqrt(alasql.aggr.VAR(v, s, stage));\n\t}\n};\n\n// Standard deviation\n// alasql.aggr.VARP = function(v,s,acc){\n\n// };\n\nalasql.aggr.VARP = function (v, s, stage) {\n\tif (stage == 1) {\n\t\treturn {arr: [v], sum: v};\n\t} else if (stage == 2) {\n\t\ts.arr.push(v);\n\t\ts.sum += v;\n\t\treturn s;\n\t} else {\n\t\tvar N = s.arr.length;\n\t\tvar avg = s.sum / N;\n\t\tvar std = 0;\n\t\tfor (var i = 0; i < N; i++) {\n\t\t\tstd += (s.arr[i] - avg) * (s.arr[i] - avg);\n\t\t}\n\t\tstd = std / N;\n\t\treturn std;\n\t}\n};\n\nalasql.aggr.STD =\n\talasql.aggr.STDDEV =\n\talasql.aggr.STDEVP =\n\t\tfunction (v, s, stage) {\n\t\t\tif (stage == 1 || stage == 2) {\n\t\t\t\treturn alasql.aggr.VARP(v, s, stage);\n\t\t\t} else {\n\t\t\t\treturn Math.sqrt(alasql.aggr.VARP(v, s, stage));\n\t\t\t}\n\t\t};\n\nalasql._aggrOriginal = alasql.aggr;\nalasql.aggr = {};\nObject.keys(alasql._aggrOriginal).forEach(function (k) {\n\talasql.aggr[k] = function (v, s, stage) {\n\t\tif (stage === 3 && typeof s === 'undefined') return undefined;\n\t\treturn alasql._aggrOriginal[k].apply(null, arguments);\n\t};\n});\n\n// String functions\nstdfn.REPLACE = function (target, pattern, replacement) {\n\treturn (target || '').split(pattern).join(replacement);\n};\n\n// This array is required for fast GUID generation\nvar lut = [];\nfor (var i = 0; i < 256; i++) {\n\tlut[i] = (i < 16 ? '0' : '') + i.toString(16);\n}\n\nstdfn.NEWID =\n\tstdfn.UUID =\n\tstdfn.GEN_RANDOM_UUID =\n\t\tfunction () {\n\t\t\tvar d0 = (Math.random() * 0xffffffff) | 0;\n\t\t\tvar d1 = (Math.random() * 0xffffffff) | 0;\n\t\t\tvar d2 = (Math.random() * 0xffffffff) | 0;\n\t\t\tvar d3 = (Math.random() * 0xffffffff) | 0;\n\t\t\treturn (\n\t\t\t\tlut[d0 & 0xff] +\n\t\t\t\tlut[(d0 >> 8) & 0xff] +\n\t\t\t\tlut[(d0 >> 16) & 0xff] +\n\t\t\t\tlut[(d0 >> 24) & 0xff] +\n\t\t\t\t'-' +\n\t\t\t\tlut[d1 & 0xff] +\n\t\t\t\tlut[(d1 >> 8) & 0xff] +\n\t\t\t\t'-' +\n\t\t\t\tlut[((d1 >> 16) & 0x0f) | 0x40] +\n\t\t\t\tlut[(d1 >> 24) & 0xff] +\n\t\t\t\t'-' +\n\t\t\t\tlut[(d2 & 0x3f) | 0x80] +\n\t\t\t\tlut[(d2 >> 8) & 0xff] +\n\t\t\t\t'-' +\n\t\t\t\tlut[(d2 >> 16) & 0xff] +\n\t\t\t\tlut[(d2 >> 24) & 0xff] +\n\t\t\t\tlut[d3 & 0xff] +\n\t\t\t\tlut[(d3 >> 8) & 0xff] +\n\t\t\t\tlut[(d3 >> 16) & 0xff] +\n\t\t\t\tlut[(d3 >> 24) & 0xff]\n\t\t\t);\n\t\t};\n/*\n//\n// CASE for Alasql.js\n// Date: 03.11.2014\n// (c) 2014, Andrey Gershun\n//\n*/\n\nyy.CaseValue = function (params) {\n\treturn Object.assign(this, params);\n};\nyy.CaseValue.prototype.toString = function () {\n\tvar s = 'CASE ';\n\tif (this.expression) s += this.expression.toString();\n\tif (this.whens) {\n\t\ts += this.whens\n\t\t\t.map(function (w) {\n\t\t\t\treturn ' WHEN ' + w.when.toString() + ' THEN ' + w.then.toString();\n\t\t\t})\n\t\t\t.join();\n\t}\n\ts += ' END';\n\treturn s;\n};\n\nyy.CaseValue.prototype.findAggregator = function (query) {\n\n\tif (this.expression && this.expression.findAggregator) this.expression.findAggregator(query);\n\tif (this.whens && this.whens.length > 0) {\n\t\tthis.whens.forEach(function (w) {\n\t\t\tif (w.when.findAggregator) w.when.findAggregator(query);\n\t\t\tif (w.then.findAggregator) w.then.findAggregator(query);\n\t\t});\n\t}\n\tif (this.elses && this.elses.findAggregator) this.elses.findAggregator(query);\n};\n\nyy.CaseValue.prototype.toJS = function (context, tableid, defcols) {\n\tvar s = '((function(' + context + ',params,alasql){var y,r;';\n\tif (this.expression) {\n\t\t//\t\t\tthis.expression.toJS(context, tableid)\n\t\ts += 'v=' + this.expression.toJS(context, tableid, defcols) + ';';\n\t\ts += (this.whens || [])\n\t\t\t.map(function (w) {\n\t\t\t\treturn (\n\t\t\t\t\t' if(v==' +\n\t\t\t\t\tw.when.toJS(context, tableid, defcols) +\n\t\t\t\t\t') {r=' +\n\t\t\t\t\tw.then.toJS(context, tableid, defcols) +\n\t\t\t\t\t'}'\n\t\t\t\t);\n\t\t\t})\n\t\t\t.join(' else ');\n\t\tif (this.elses) s += ' else {r=' + this.elses.toJS(context, tableid, defcols) + '}';\n\t} else {\n\t\ts += (this.whens || [])\n\t\t\t.map(function (w) {\n\t\t\t\treturn (\n\t\t\t\t\t' if(' +\n\t\t\t\t\tw.when.toJS(context, tableid, defcols) +\n\t\t\t\t\t') {r=' +\n\t\t\t\t\tw.then.toJS(context, tableid, defcols) +\n\t\t\t\t\t'}'\n\t\t\t\t);\n\t\t\t})\n\t\t\t.join(' else ');\n\t\tif (this.elses) s += ' else {r=' + this.elses.toJS(context, tableid, defcols) + '}';\n\t}\n\t// TODO remove bind from CASE\n\ts += ';return r;}).bind(this))(' + context + ',params,alasql)';\n\n\treturn s;\n};\n/*\n//\n// JSON for Alasql.js\n// Date: 19.11.2014\n// (c) 2014, Andrey Gershun\n//\n*/\n\nyy.Json = function (params) {\n\treturn Object.assign(this, params);\n};\nyy.Json.prototype.toString = function () {\n\tvar s = ''; // '@'\n\ts += JSONtoString(this.value);\n\ts += '';\n\treturn s;\n};\n\nvar JSONtoString = (alasql.utils.JSONtoString = function (obj) {\n\tvar s = '';\n\tif (typeof obj == 'string') s = '\"' + obj + '\"';\n\telse if (typeof obj == 'number') s = obj;\n\telse if (typeof obj == 'boolean') s = obj;\n\telse if (typeof obj == 'object') {\n\t\tif (Array.isArray(obj)) {\n\t\t\ts +=\n\t\t\t\t'[' +\n\t\t\t\tobj\n\t\t\t\t\t.map(function (b) {\n\t\t\t\t\t\treturn JSONtoString(b);\n\t\t\t\t\t})\n\t\t\t\t\t.join(',') +\n\t\t\t\t']';\n\t\t} else if (!obj.toJS || obj instanceof yy.Json) {\n\t\t\t// to prevent recursion\n\t\t\ts = '{';\n\t\t\tvar ss = [];\n\t\t\tfor (var k in obj) {\n\t\t\t\tvar s1 = '';\n\t\t\t\tif (typeof k == 'string') s1 += '\"' + k + '\"';\n\t\t\t\telse if (typeof k == 'number') s1 += k;\n\t\t\t\telse if (typeof k == 'boolean') s1 += k;\n\t\t\t\telse {\n\t\t\t\t\tthrow new Error('THis is not ES6... no expressions on left side yet');\n\t\t\t\t}\n\t\t\t\ts1 += ':' + JSONtoString(obj[k]);\n\t\t\t\tss.push(s1);\n\t\t\t}\n\t\t\ts += ss.join(',') + '}';\n\t\t} else if (obj.toString) {\n\t\t\ts = obj.toString();\n\t\t} else {\n\t\t\tthrow new Error('1Can not show JSON object ' + JSON.stringify(obj));\n\t\t}\n\t} else {\n\t\tthrow new Error('2Can not show JSON object ' + JSON.stringify(obj));\n\t}\n\n\treturn s;\n});\n\nfunction JSONtoJS(obj, context, tableid, defcols) {\n\tvar s = '';\n\tif (typeof obj == 'string') s = '\"' + obj + '\"';\n\telse if (typeof obj == 'number') s = '(' + obj + ')';\n\telse if (typeof obj == 'boolean') s = obj;\n\telse if (typeof obj == 'object') {\n\t\tif (Array.isArray(obj)) {\n\t\t\ts +=\n\t\t\t\t'[' +\n\t\t\t\tobj\n\t\t\t\t\t.map(function (b) {\n\t\t\t\t\t\treturn JSONtoJS(b, context, tableid, defcols);\n\t\t\t\t\t})\n\t\t\t\t\t.join(',') +\n\t\t\t\t']';\n\t\t} else if (!obj.toJS || obj instanceof yy.Json) {\n\t\t\t// to prevent recursion\n\t\t\ts = '{';\n\t\t\tvar ss = [];\n\t\t\tfor (var k in obj) {\n\t\t\t\tvar s1 = '';\n\t\t\t\tif (typeof k == 'string') s1 += '\"' + k + '\"';\n\t\t\t\telse if (typeof k == 'number') s1 += k;\n\t\t\t\telse if (typeof k == 'boolean') s1 += k;\n\t\t\t\telse {\n\t\t\t\t\tthrow new Error('THis is not ES6... no expressions on left side yet');\n\t\t\t\t}\n\t\t\t\ts1 += ':' + JSONtoJS(obj[k], context, tableid, defcols);\n\t\t\t\tss.push(s1);\n\t\t\t}\n\t\t\ts += ss.join(',') + '}';\n\t\t} else if (obj.toJS) {\n\t\t\ts = obj.toJS(context, tableid, defcols);\n\t\t} else {\n\t\t\tthrow new Error('1Can not parse JSON object ' + JSON.stringify(obj));\n\t\t}\n\t} else {\n\t\tthrow new Error('2Can not parse JSON object ' + JSON.stringify(obj));\n\t}\n\n\treturn s;\n}\n\nyy.Json.prototype.toJS = function (context, tableid, defcols) {\n\t// TODO redo\n\treturn JSONtoJS(this.value, context, tableid, defcols);\n};\n/*\n//\n// CAST and CONVERT functions\n// Date: 03.11.2014\n// (c) 2014, Andrey Gershun\n//\n*/\n\nyy.Convert = function (params) {\n\treturn Object.assign(this, params);\n};\nyy.Convert.prototype.toString = function () {\n\tvar s = 'CONVERT(';\n\ts += this.dbtypeid;\n\tif (typeof this.dbsize != 'undefined') {\n\t\ts += '(' + this.dbsize;\n\t\tif (this.dbprecision) s += ',' + this.dbprecision;\n\t\ts += ')';\n\t}\n\ts += ',' + this.expression.toString();\n\tif (this.style) s += ',' + this.style;\n\ts += ')';\n\treturn s;\n};\nyy.Convert.prototype.toJS = function (context, tableid, defcols) {\n\t//\tif(this.style) {\n\treturn (\n\t\t'alasql.stdfn.CONVERT(' +\n\t\tthis.expression.toJS(context, tableid, defcols) +\n\t\t',{dbtypeid:\"' +\n\t\tthis.dbtypeid +\n\t\t'\",dbsize:' +\n\t\tthis.dbsize +\n\t\t',dbprecision:' +\n\t\tthis.dbprecision +\n\t\t',style:' +\n\t\tthis.style +\n\t\t'})'\n\t);\n\t//\t}\n\n\tthrow new Error('There is not such type conversion for ' + this.toString());\n};\n\nfunction structuredDate(unFormattedDate) {\n\tvar month = unFormattedDate.getMonth() + 1;\n\tvar year = unFormattedDate.getYear();\n\tvar fullYear = unFormattedDate.getFullYear();\n\tvar date = unFormattedDate.getDate();\n\tvar day = unFormattedDate.toString().substr(4, 3);\n\tvar formattedDate = ('0' + date).substr(-2);\n\tvar formattedMonth = ('0' + month).substr(-2);\n\tvar formattedYear = ('0' + year).substr(-2);\n\tvar formattedHour = ('0' + unFormattedDate.getHours()).substr(-2);\n\tvar formattedMinutes = ('0' + unFormattedDate.getMinutes()).substr(-2);\n\tvar formattedSeconds = ('0' + unFormattedDate.getSeconds()).substr(-2);\n\tvar formattedMilliseconds = ('00' + unFormattedDate.getMilliseconds()).substr(-3);\n\treturn {\n\t\tmonth,\n\t\tyear,\n\t\tfullYear,\n\t\tdate,\n\t\tday,\n\t\tformattedDate,\n\t\tformattedMonth,\n\t\tformattedYear,\n\t\tformattedHour,\n\t\tformattedMinutes,\n\t\tformattedSeconds,\n\t\tformattedMilliseconds,\n\t};\n}\n\n/**\n Convert one type to another\n */\nalasql.stdfn.CONVERT = function (value, args) {\n\tvar val = value;\n\tvar udbtypeid = args.dbtypeid?.toUpperCase();\n\n\tvar t;\n\tvar s;\n\tif (\n\t\targs.style ||\n\t\targs.dbtypeid == 'Date' ||\n\t\t['DATE', 'DATETIME', 'DATETIME2'].indexOf(udbtypeid) > -1\n\t) {\n\t\tif (/\\d{8}/.test(val)) {\n\t\t\tt = new Date(+val.substr(0, 4), +val.substr(4, 2) - 1, +val.substr(6, 2));\n\t\t} else {\n\t\t\tt = newDate(val);\n\t\t}\n\t\ts = structuredDate(t);\n\t}\n\n\tif (args.style) {\n\t\t// TODO 9,109, 20,120,21,121,126,130,131 conversions\n\t\tswitch (args.style) {\n\t\t\tcase 1: // mm/dd/yy\n\t\t\t\tval = s.formattedMonth + '/' + s.formattedDate + '/' + s.formattedYear;\n\t\t\t\tbreak;\n\t\t\tcase 2: // yy.mm.dd\n\t\t\t\tval = s.formattedYear + '.' + s.formattedMonth + '.' + s.formattedDate;\n\t\t\t\tbreak;\n\t\t\tcase 3: // dd/mm/yy\n\t\t\t\tval = s.formattedDate + '/' + s.formattedMonth + '/' + s.formattedYear;\n\t\t\t\tbreak;\n\t\t\tcase 4: // dd.mm.yy\n\t\t\t\tval = s.formattedDate + '.' + s.formattedMonth + '.' + s.formattedYear;\n\t\t\t\tbreak;\n\t\t\tcase 5: // dd-mm-yy\n\t\t\t\tval = s.formattedDate + '-' + s.formattedMonth + '-' + s.formattedYear;\n\t\t\t\tbreak;\n\t\t\tcase 6: // dd mon yy\n\t\t\t\tval = s.formattedDate + ' ' + s.day.toLowerCase() + ' ' + s.formattedYear;\n\t\t\t\tbreak;\n\t\t\tcase 7: // Mon dd,yy\n\t\t\t\tval = s.day + ' ' + s.formattedDate + ',' + s.formattedYear;\n\t\t\t\tbreak;\n\t\t\tcase 8: // hh:mm:ss\n\t\t\tcase 108: // hh:mm:ss\n\t\t\t\tval = s.formattedHour + ':' + s.formattedMinutes + ':' + s.formattedSeconds;\n\t\t\t\tbreak;\n\t\t\tcase 10: // mm-dd-yy\n\t\t\t\tval = s.formattedMonth + '-' + s.formattedDate + '-' + s.formattedYear;\n\t\t\t\tbreak;\n\t\t\tcase 11: // yy/mm/dd\n\t\t\t\tval = s.formattedYear + '/' + s.formattedMonth + '/' + s.formattedDate;\n\t\t\t\tbreak;\n\t\t\tcase 12: // yymmdd\n\t\t\t\tval = s.formattedYear + s.formattedMonth + s.formattedDate;\n\t\t\t\tbreak;\n\t\t\tcase 101: // mm/dd/yyyy\n\t\t\t\tval = s.formattedMonth + '/' + s.formattedDate + '/' + s.fullYear;\n\t\t\t\tbreak;\n\t\t\tcase 102: // yyyy.mm.dd\n\t\t\t\tval = s.fullYear + '.' + s.formattedMonth + '.' + s.formattedDate;\n\t\t\t\tbreak;\n\t\t\tcase 103: // dd/mm/yyyy\n\t\t\t\tval = s.formattedDate + '/' + s.formattedMonth + '/' + s.fullYear;\n\t\t\t\tbreak;\n\t\t\tcase 104: // dd.mm.yyyy\n\t\t\t\tval = s.formattedDate + '.' + s.formattedMonth + '.' + s.fullYear;\n\t\t\t\tbreak;\n\t\t\tcase 105: // dd-mm-yyyy\n\t\t\t\tval = s.formattedDate + '-' + s.formattedMonth + '-' + s.fullYear;\n\t\t\t\tbreak;\n\t\t\tcase 106: // dd mon yyyy\n\t\t\t\tval = s.formattedDate + ' ' + s.day.toLowerCase() + ' ' + s.fullYear;\n\t\t\t\tbreak;\n\t\t\tcase 107: // Mon dd,yyyy\n\t\t\t\tval = s.day + ' ' + s.formattedDate + ',' + s.fullYear;\n\t\t\t\tbreak;\n\t\t\tcase 110: // mm-dd-yyyy\n\t\t\t\tval = s.formattedMonth + '-' + s.formattedDate + '-' + s.fullYear;\n\t\t\t\tbreak;\n\t\t\tcase 111: // yyyy/mm/dd\n\t\t\t\tval = s.fullYear + '/' + s.formattedMonth + '/' + s.formattedDate;\n\t\t\t\tbreak;\n\n\t\t\tcase 112: // yyyymmdd\n\t\t\t\tval = s.fullYear + s.formattedMonth + s.formattedDate;\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\tthrow new Error('The CONVERT style ' + args.style + ' is not realized yet.');\n\t\t}\n\t}\n\n\tif (args.dbtypeid == 'Date') {\n\t\treturn t;\n\t} else if (udbtypeid == 'DATE') {\n\t\treturn s.formattedYear + '.' + s.formattedMonth + '.' + s.formattedDate;\n\t} else if (udbtypeid == 'DATETIME' || udbtypeid == 'DATETIME2') {\n\t\tvar f = s.fullYear + '.' + s.formattedMonth + '.' + s.formattedDate;\n\t\tf += ' ' + s.formattedHour + ':' + s.formattedMinutes + ':' + s.formattedSeconds;\n\t\tf += '.' + s.formattedMilliseconds;\n\t\treturn f;\n\t} else if (['MONEY'].indexOf(udbtypeid) > -1) {\n\t\tvar m = +val;\n\t\treturn (m | 0) + ((m * 100) % 100) / 100;\n\t} else if (['BOOLEAN'].indexOf(udbtypeid) > -1) {\n\t\treturn !!val;\n\t} else if (\n\t\t['INT', 'INTEGER', 'SMALLINT', 'BIGINT', 'SERIAL', 'SMALLSERIAL', 'BIGSERIAL'].indexOf(\n\t\t\targs.dbtypeid.toUpperCase()\n\t\t) > -1\n\t) {\n\t\treturn val | 0;\n\t} else if (\n\t\t['STRING', 'VARCHAR', 'NVARCHAR', 'CHARACTER VARIABLE'].indexOf(args.dbtypeid.toUpperCase()) >\n\t\t-1\n\t) {\n\t\tif (args.dbsize) return ('' + val).substr(0, args.dbsize);\n\t\telse return '' + val;\n\t} else if (['CHAR', 'CHARACTER', 'NCHAR'].indexOf(udbtypeid) > -1) {\n\t\treturn (val + new Array(args.dbsize + 1).join(' ')).substr(0, args.dbsize);\n\t\t//else return \"\"+val.substr(0,1);\n\t} else if (['NUMBER', 'FLOAT', 'DECIMAL', 'NUMERIC'].indexOf(udbtypeid) > -1) {\n\t\tvar m = +val;\n\t\t//toPrecision sets the number of numbers total in the result\n\t\tm = args.dbsize !== undefined ? parseFloat(m.toPrecision(args.dbsize)) : m;\n\t\t//toFixed sets the number of numbers to the right of the decimal\n\t\tm = args.dbprecision !== undefined ? parseFloat(m.toFixed(args.dbprecision)) : m;\n\t\treturn m;\n\t} else if (['JSON'].indexOf(udbtypeid) > -1) {\n\t\tif (typeof val == 'object') return val;\n\t\ttry {\n\t\t\treturn JSON.parse(val);\n\t\t} catch (err) {\n\t\t\tthrow new Error('Cannot convert string to JSON');\n\t\t}\n\t}\n\treturn val;\n};\n/*\n//\n// CREATE TABLE for Alasql.js\n// Date: 03.11.2014\n// (c) 2014, Andrey Gershun\n//\n*/\n\n/* global alasql, yy, hash */\n\nyy.ColumnDef = function (params) {\n\treturn Object.assign(this, params);\n};\nyy.ColumnDef.prototype.toString = function () {\n\tvar s = this.columnid;\n\tif (this.dbtypeid) {\n\t\ts += ' ' + this.dbtypeid;\n\t}\n\n\tif (this.dbsize) {\n\t\ts += '(' + this.dbsize;\n\t\tif (this.dbprecision) {\n\t\t\ts += ',' + this.dbprecision;\n\t\t}\n\t\ts += ')';\n\t}\n\n\tif (this.primarykey) {\n\t\ts += ' PRIMARY KEY';\n\t}\n\n\tif (this.notnull) {\n\t\ts += ' NOT NULL';\n\t}\n\n\treturn s;\n};\n\nyy.CreateTable = function (params) {\n\treturn Object.assign(this, params);\n};\nyy.CreateTable.prototype.toString = function () {\n\tvar s = 'CREATE';\n\tif (this.temporary) {\n\t\ts += ' TEMPORARY';\n\t}\n\n\tif (this.view) {\n\t\ts += ' VIEW';\n\t} else {\n\t\ts += ' ' + (this.class ? 'CLASS' : 'TABLE');\n\t}\n\tif (this.ifnotexists) {\n\t\ts += ' IF NOT EXISTS';\n\t}\n\ts += ' ' + this.table.toString();\n\tif (this.viewcolumns) {\n\t\ts +=\n\t\t\t'(' +\n\t\t\tthis.viewcolumns\n\t\t\t\t.map(function (vcol) {\n\t\t\t\t\treturn vcol.toString();\n\t\t\t\t})\n\t\t\t\t.join(',') +\n\t\t\t')';\n\t}\n\tif (this.as) {\n\t\ts += ' AS ' + this.as;\n\t} else {\n\t\tvar ss = this.columns.map(function (col) {\n\t\t\treturn col.toString();\n\t\t});\n\t\ts += ' (' + ss.join(',') + ')';\n\t}\n\n\tif (this.view && this.select) {\n\t\ts += ' AS ' + this.select.toString();\n\t}\n\n\treturn s;\n};\n\n// CREATE TABLE\n//yy.CreateTable.prototype.compile = returnUndefined;\nyy.CreateTable.prototype.execute = function (databaseid, params, cb) {\n\t//\tvar self = this;\n\tvar db = alasql.databases[this.table.databaseid || databaseid];\n\n\tvar tableid = this.table.tableid;\n\tif (!tableid) {\n\t\tthrow new Error('Table name is not defined');\n\t}\n\n\t//\tvar ifnotexists = this.ifnotexists;\n\tvar columns = this.columns;\n\t// if(false) {\n\t// \tif(!columns) {\n\t// \t\tthrow new Error('Columns are not defined');\n\t// \t}\n\t// }\n\tvar constraints = this.constraints || [];\n\n\t// IF NOT EXISTS\n\tif (this.ifnotexists && db.tables[tableid]) {\n\t\treturn cb ? cb(0) : 0;\n\t}\n\n\tif (db.tables[tableid]) {\n\t\tthrow new Error(\n\t\t\t\"Can not create table '\" +\n\t\t\t\ttableid +\n\t\t\t\t\"', because it already exists in the database '\" +\n\t\t\t\tdb.databaseid +\n\t\t\t\t\"'\"\n\t\t);\n\t}\n\n\tvar table = (db.tables[tableid] = new alasql.Table()); // TODO Can use special object?\n\t// If this is a class\n\tif (this.class) {\n\t\ttable.isclass = true;\n\t}\n\n\tvar ss = []; // DEFAULT function components\n\tvar uss = []; // ON UPDATE function components\n\tif (columns) {\n\t\tcolumns.forEach(function (col) {\n\t\t\tvar dbtypeid = col.dbtypeid;\n\t\t\tif (!alasql.fn[dbtypeid]) {\n\t\t\t\tdbtypeid = dbtypeid.toUpperCase();\n\t\t\t}\n\n\t\t\t// Process SERIAL data type like Postgress\n\t\t\tif (['SERIAL', 'SMALLSERIAL', 'BIGSERIAL'].indexOf(dbtypeid) > -1) {\n\t\t\t\tcol.identity = {value: 1, step: 1};\n\t\t\t}\n\n\t\t\tvar newcol = {\n\t\t\t\tcolumnid: col.columnid,\n\t\t\t\tdbtypeid: dbtypeid,\n\t\t\t\tdbsize: col.dbsize, // Fixed issue #150\n\t\t\t\tdbprecision: col.dbprecision, // Fixed issue #150\n\t\t\t\tnotnull: col.notnull,\n\t\t\t\tidentity: col.identity,\n\t\t\t};\n\t\t\tif (col.identity) {\n\t\t\t\ttable.identities[col.columnid] = {\n\t\t\t\t\tvalue: +col.identity.value,\n\t\t\t\t\tstep: +col.identity.step,\n\t\t\t\t};\n\t\t\t\t//\t\t\t\tss.push('\\''+col.columnid+'\\':(alasql.databases[\\''+db.databaseid+'\\'].tables[\\''\n\t\t\t\t//\t\t\t\t\t+tableid+'\\'].identities[\\''+col.columnid+'\\'].value)');\n\t\t\t}\n\t\t\tif (col.check) {\n\t\t\t\ttable.checks.push({\n\t\t\t\t\tid: col.check.constrantid,\n\t\t\t\t\tfn: new Function('r', 'var y;return ' + col.check.expression.toJS('r', '')),\n\t\t\t\t});\n\t\t\t}\n\n\t\t\tif (col.default) {\n\t\t\t\tss.push(JSON.stringify('' + col.columnid) + ':' + col.default.toJS('r', ''));\n\t\t\t}\n\n\t\t\t// Check for primary key\n\t\t\tif (col.primarykey) {\n\t\t\t\tvar pk = (table.pk = {});\n\t\t\t\tpk.columns = [col.columnid];\n\t\t\t\tpk.onrightfns = `r[${JSON.stringify(col.columnid)}]`;\n\t\t\t\tpk.onrightfn = new Function('r', 'var y;return ' + pk.onrightfns);\n\t\t\t\tpk.hh = hash(pk.onrightfns);\n\t\t\t\ttable.uniqs[pk.hh] = {};\n\t\t\t}\n\n\t\t\t// UNIQUE clause\n\t\t\tif (col.unique) {\n\t\t\t\tvar uk = {};\n\t\t\t\ttable.uk = table.uk || [];\n\t\t\t\ttable.uk.push(uk);\n\t\t\t\tuk.columns = [col.columnid];\n\t\t\t\tuk.onrightfns = `r[${JSON.stringify(col.columnid)}]`;\n\t\t\t\tuk.onrightfn = new Function('r', 'var y;return ' + uk.onrightfns);\n\t\t\t\tuk.hh = hash(uk.onrightfns);\n\t\t\t\ttable.uniqs[uk.hh] = {};\n\t\t\t}\n\n\t\t\t// UNIQUE clause\n\t\t\tif (col.foreignkey) {\n\n\t\t\t\tvar fk = col.foreignkey.table;\n\t\t\t\tvar fktable = alasql.databases[fk.databaseid || databaseid].tables[fk.tableid];\n\t\t\t\tif (typeof fk.columnid === 'undefined') {\n\t\t\t\t\tif (fktable.pk.columns && fktable.pk.columns.length > 0) {\n\t\t\t\t\t\tfk.columnid = fktable.pk.columns[0];\n\t\t\t\t\t} else {\n\t\t\t\t\t\tthrow new Error('FOREIGN KEY allowed only to tables with PRIMARY KEYs');\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tvar fkfn = function (r) {\n\t\t\t\t\tvar rr = {};\n\t\t\t\t\tif (typeof r[col.columnid] === 'undefined') {\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t\trr[fk.columnid] = r[col.columnid];\n\t\t\t\t\tvar addr = fktable.pk.onrightfn(rr);\n\n\t\t\t\t\tif (!fktable.uniqs[fktable.pk.hh][addr]) {\n\t\t\t\t\t\tthrow new Error(\n\t\t\t\t\t\t\t'Foreign key violation' //changed error message\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t\treturn true;\n\t\t\t\t};\n\t\t\t\ttable.checks.push({fn: fkfn});\n\n\t\t\t}\n\n\t\t\tif (col.onupdate) {\n\t\t\t\tuss.push(`r[${JSON.stringify(col.columnid)}]=` + col.onupdate.toJS('r', ''));\n\t\t\t}\n\n\t\t\ttable.columns.push(newcol);\n\t\t\ttable.xcolumns[newcol.columnid] = newcol;\n\t\t});\n\t}\n\ttable.defaultfns = ss.join(',');\n\ttable.onupdatefns = uss.join(';');\n\n\t//\tif(constraints) {\n\tconstraints.forEach(function (con) {\n\n\t\tvar checkfn;\n\n\t\tif (con.type === 'PRIMARY KEY') {\n\t\t\tif (table.pk) {\n\t\t\t\tthrow new Error('Primary key already exists');\n\t\t\t}\n\t\t\tvar pk = (table.pk = {});\n\t\t\tpk.columns = con.columns;\n\t\t\tpk.onrightfns = pk.columns\n\t\t\t\t.map(function (columnid) {\n\t\t\t\t\treturn `r[${JSON.stringify(columnid)}]`;\n\t\t\t\t})\n\t\t\t\t.join(\"+'`'+\");\n\t\t\tpk.onrightfn = new Function('r', 'var y;return ' + pk.onrightfns);\n\t\t\tpk.hh = hash(pk.onrightfns);\n\t\t\ttable.uniqs[pk.hh] = {};\n\t\t} else if (con.type === 'CHECK') {\n\n\t\t\tcheckfn = new Function('r', 'var y;return ' + con.expression.toJS('r', ''));\n\t\t} else if (con.type === 'UNIQUE') {\n\n\t\t\tvar uk = {};\n\t\t\ttable.uk = table.uk || [];\n\t\t\ttable.uk.push(uk);\n\t\t\tuk.columns = con.columns;\n\t\t\tuk.onrightfns = uk.columns\n\t\t\t\t.map(function (columnid) {\n\t\t\t\t\treturn `r[${JSON.stringify(columnid)}]`;\n\t\t\t\t})\n\t\t\t\t.join(\"+'`'+\");\n\t\t\tuk.onrightfn = new Function('r', 'var y;return ' + uk.onrightfns);\n\t\t\tuk.hh = hash(uk.onrightfns);\n\t\t\ttable.uniqs[uk.hh] = {};\n\t\t} else if (con.type === 'FOREIGN KEY') {\n\t\t\tvar fk = con.fktable;\n\t\t\tif (con.fkcolumns && con.fkcolumns.length > 0) {\n\t\t\t\t//Composite foreign keys\n\t\t\t\tfk.fkcolumns = con.fkcolumns;\n\t\t\t}\n\t\t\tvar fktable = alasql.databases[fk.databaseid || databaseid].tables[fk.tableid];\n\t\t\tif (typeof fk.fkcolumns === 'undefined') {\n\t\t\t\t//Composite foreign keys\n\t\t\t\tfk.fkcolumns = fktable.pk.columns;\n\t\t\t}\n\t\t\tfk.columns = con.columns;\n\n\t\t\tif (fk.fkcolumns.length > fk.columns.length) {\n\t\t\t\tthrow new Error('Invalid foreign key on table ' + table.tableid);\n\t\t\t}\n\n\t\t\tcheckfn = function (r) {\n\t\t\t\tvar rr = {};\n\n\t\t\t\t//Composite foreign keys\n\t\t\t\tfk.fkcolumns.forEach(function (colFk, i) {\n\t\t\t\t\tif (r[fk.columns[i]] != null) {\n\t\t\t\t\t\trr[colFk] = r[fk.columns[i]];\n\t\t\t\t\t}\n\t\t\t\t});\n\n\t\t\t\tif (Object.keys(rr).length === 0) {\n\t\t\t\t\t//all values of foreign key was null\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t\tif (Object.keys(rr).length !== fk.columns.length) {\n\t\t\t\t\tthrow new Error('Invalid foreign key on table ' + table.tableid);\n\t\t\t\t}\n\t\t\t\t//reset fkTable as we need an up to date uniqs\n\t\t\t\tvar fktable = alasql.databases[fk.databaseid || databaseid].tables[fk.tableid];\n\t\t\t\tvar addr = fktable.pk.onrightfn(rr);\n\n\t\t\t\tif (!fktable.uniqs[fktable.pk.hh][addr]) {\n\t\t\t\t\tthrow new Error(\n\t\t\t\t\t\t'Foreign key violation' //changed error message\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t\treturn true;\n\t\t\t};\n\t\t}\n\t\tif (checkfn) {\n\t\t\ttable.checks.push({\n\t\t\t\tfn: checkfn,\n\t\t\t\tid: con.constraintid,\n\t\t\t\tfk: con.type === 'FOREIGN KEY',\n\t\t\t});\n\t\t}\n\t});\n\n\tif (this.view && this.viewcolumns) {\n\t\tvar self = this;\n\t\tthis.viewcolumns.forEach(function (vcol, idx) {\n\t\t\tself.select.columns[idx].as = vcol.columnid;\n\t\t});\n\t}\n\n\t//Used in 420from queryfn when table.view = true!\n\tif (this.view && this.select) {\n\t\ttable.view = true;\n\n\t\ttable.select = this.select.compile(this.table.databaseid || databaseid);\n\t}\n\n\tif (db.engineid) {\n\n\t\treturn alasql.engines[db.engineid].createTable(\n\t\t\tthis.table.databaseid || databaseid,\n\t\t\ttableid,\n\t\t\tthis.ifnotexists,\n\t\t\tcb\n\t\t);\n\n\t\t//\t\treturn res1;\n\t}\n\n\t//\t}\n\t//\t\t\tif(table.pk) {\n\n\ttable.insert = function (r, orreplace) {\n\t\tvar oldinserted = alasql.inserted;\n\t\talasql.inserted = [r];\n\n\t\tvar table = this;\n\n\t\tvar toreplace = false; // For INSERT OR REPLACE\n\n\t\t/*\n\t\t// IDENTINY or AUTO_INCREMENT\n\t\t// if(table.identities && table.identities.length>0) {\n\t\t// \ttable.identities.forEach(function(ident){\n\t\t// \t\tr[ident.columnid] = ident.value;\n\t\t// \t});\n\t\t// }\n*/\n\t\t// Trigger prevent functionality\n\t\tvar prevent = false;\n\t\tfor (var tr in table.beforeinsert) {\n\t\t\tvar trigger = table.beforeinsert[tr];\n\t\t\tif (trigger) {\n\t\t\t\tif (trigger.funcid) {\n\t\t\t\t\tif (alasql.fn[trigger.funcid](r) === false) prevent = prevent || true;\n\t\t\t\t} else if (trigger.statement) {\n\t\t\t\t\tif (trigger.statement.execute(databaseid) === false) prevent = prevent || true;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tif (prevent) return;\n\n\t\t// Trigger prevent functionality\n\t\tvar escape = false;\n\t\tfor (tr in table.insteadofinsert) {\n\t\t\tescape = true;\n\t\t\ttrigger = table.insteadofinsert[tr];\n\t\t\tif (trigger) {\n\t\t\t\tif (trigger.funcid) {\n\t\t\t\t\talasql.fn[trigger.funcid](r);\n\t\t\t\t} else if (trigger.statement) {\n\t\t\t\t\ttrigger.statement.execute(databaseid);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tif (escape) return;\n\n\t\tfor (var columnid in table.identities) {\n\t\t\tvar ident = table.identities[columnid];\n\n\t\t\tr[columnid] = ident.value;\n\n\t\t}\n\n\t\tif (table.checks && table.checks.length > 0) {\n\t\t\ttable.checks.forEach(function (check) {\n\t\t\t\tif (!check.fn(r)) {\n\t\t\t\t\t//\t\t\t\t\tif(orreplace) toreplace=true; else\n\t\t\t\t\tthrow new Error('Violation of CHECK constraint ' + (check.id || ''));\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\n\t\ttable.columns.forEach(function (column) {\n\t\t\tif (column.notnull && typeof r[column.columnid] === 'undefined') {\n\t\t\t\tthrow new Error('Wrong NULL value in NOT NULL column ' + column.columnid);\n\t\t\t}\n\t\t});\n\t\tif (table.pk) {\n\t\t\tvar pk = table.pk;\n\t\t\tvar addr = pk.onrightfn(r);\n\n\t\t\tif (typeof table.uniqs[pk.hh][addr] !== 'undefined') {\n\n\t\t\t\tif (orreplace) toreplace = table.uniqs[pk.hh][addr];\n\t\t\t\telse\n\t\t\t\t\tthrow new Error('Cannot insert record, because it already exists in primary key index');\n\t\t\t}\n\t\t\t//\t\t\ttable.uniqs[pk.hh][addr]=r;\n\t\t}\n\n\t\tif (table.uk && table.uk.length) {\n\t\t\ttable.uk.forEach(function (uk) {\n\t\t\t\tvar ukaddr = uk.onrightfn(r);\n\t\t\t\tif (typeof table.uniqs[uk.hh][ukaddr] !== 'undefined') {\n\t\t\t\t\tif (orreplace) toreplace = table.uniqs[uk.hh][ukaddr];\n\t\t\t\t\telse throw new Error('Cannot insert record, because it already exists in unique index');\n\t\t\t\t}\n\t\t\t\t//\t\t\t\ttable.uniqs[uk.hh][ukaddr]=r;\n\t\t\t});\n\t\t}\n\n\t\tif (toreplace) {\n\t\t\t// Do UPDATE!!!\n\n\t\t\ttable.update(\n\t\t\t\tfunction (t) {\n\t\t\t\t\tfor (var f in r) t[f] = r[f];\n\t\t\t\t},\n\t\t\t\ttable.data.indexOf(toreplace),\n\t\t\t\tparams\n\t\t\t);\n\t\t} else {\n\t\t\ttable.data.push(r);\n\n\t\t\t// Final change before insert\n\n\t\t\t// Update indices\n\n\t\t\tfor (var columnid in table.identities) {\n\t\t\t\tvar ident = table.identities[columnid];\n\n\t\t\t\tident.value += ident.step;\n\n\t\t\t}\n\n\t\t\tif (table.pk) {\n\t\t\t\tvar pk = table.pk;\n\t\t\t\tvar addr = pk.onrightfn(r);\n\t\t\t\ttable.uniqs[pk.hh][addr] = r;\n\t\t\t}\n\t\t\tif (table.uk && table.uk.length) {\n\t\t\t\ttable.uk.forEach(function (uk) {\n\t\t\t\t\tvar ukaddr = uk.onrightfn(r);\n\t\t\t\t\ttable.uniqs[uk.hh][ukaddr] = r;\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\n\t\t// Trigger prevent functionality\n\t\tfor (var tr in table.afterinsert) {\n\t\t\tvar trigger = table.afterinsert[tr];\n\t\t\tif (trigger) {\n\t\t\t\tif (trigger.funcid) {\n\t\t\t\t\talasql.fn[trigger.funcid](r);\n\t\t\t\t} else if (trigger.statement) {\n\t\t\t\t\ttrigger.statement.execute(databaseid);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\talasql.inserted = oldinserted;\n\t};\n\n\ttable.delete = function (index) {\n\t\tvar table = this;\n\t\tvar r = table.data[index];\n\n\t\t// Prevent trigger\n\t\tvar prevent = false;\n\t\tfor (var tr in table.beforedelete) {\n\t\t\tvar trigger = table.beforedelete[tr];\n\t\t\tif (trigger) {\n\t\t\t\tif (trigger.funcid) {\n\t\t\t\t\tif (alasql.fn[trigger.funcid](r) === false) prevent = prevent || true;\n\t\t\t\t} else if (trigger.statement) {\n\t\t\t\t\tif (trigger.statement.execute(databaseid) === false) prevent = prevent || true;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tif (prevent) return false;\n\n\t\t// Trigger prevent functionality\n\t\tvar escape = false;\n\t\tfor (var tr in table.insteadofdelete) {\n\t\t\tescape = true;\n\t\t\tvar trigger = table.insteadofdelete[tr];\n\t\t\tif (trigger) {\n\t\t\t\tif (trigger.funcid) {\n\t\t\t\t\talasql.fn[trigger.funcid](r);\n\t\t\t\t} else if (trigger.statement) {\n\t\t\t\t\ttrigger.statement.execute(databaseid);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tif (escape) return;\n\n\t\tif (this.pk) {\n\t\t\tvar pk = this.pk;\n\t\t\tvar addr = pk.onrightfn(r);\n\t\t\tif (typeof this.uniqs[pk.hh][addr] === 'undefined') {\n\t\t\t\tthrow new Error('Something wrong with primary key index on table');\n\t\t\t} else {\n\t\t\t\tthis.uniqs[pk.hh][addr] = undefined;\n\t\t\t}\n\t\t}\n\t\tif (table.uk && table.uk.length) {\n\t\t\ttable.uk.forEach(function (uk) {\n\t\t\t\tvar ukaddr = uk.onrightfn(r);\n\t\t\t\tif (typeof table.uniqs[uk.hh][ukaddr] === 'undefined') {\n\t\t\t\t\tthrow new Error('Something wrong with unique index on table');\n\t\t\t\t}\n\t\t\t\ttable.uniqs[uk.hh][ukaddr] = undefined;\n\t\t\t});\n\t\t}\n\t};\n\n\ttable.deleteall = function () {\n\t\tthis.data.length = 0;\n\t\tif (this.pk) {\n\t\t\t//\t\t\t\t\t\tvar r = this.data[i];\n\t\t\tthis.uniqs[this.pk.hh] = {};\n\t\t}\n\t\tif (table.uk && table.uk.length) {\n\t\t\ttable.uk.forEach(function (uk) {\n\t\t\t\ttable.uniqs[uk.hh] = {};\n\t\t\t});\n\t\t}\n\t};\n\n\ttable.update = function (assignfn, i, params) {\n\t\t// TODO: Analyze the speed\n\t\tvar r = cloneDeep(this.data[i]);\n\n\t\tvar pk;\n\t\t// PART 1 - PRECHECK\n\t\tif (this.pk) {\n\t\t\tpk = this.pk;\n\t\t\tpk.pkaddr = pk.onrightfn(r, params);\n\t\t\tif (typeof this.uniqs[pk.hh][pk.pkaddr] === 'undefined') {\n\t\t\t\tthrow new Error('Something wrong with index on table');\n\t\t\t}\n\t\t}\n\t\tif (table.uk && table.uk.length) {\n\t\t\ttable.uk.forEach(function (uk) {\n\t\t\t\tuk.ukaddr = uk.onrightfn(r);\n\t\t\t\tif (typeof table.uniqs[uk.hh][uk.ukaddr] === 'undefined') {\n\t\t\t\t\tthrow new Error('Something wrong with unique index on table');\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\n\t\tassignfn(r, params, alasql);\n\n\t\t// Prevent trigger\n\t\tvar prevent = false;\n\t\tfor (var tr in table.beforeupdate) {\n\t\t\tvar trigger = table.beforeupdate[tr];\n\t\t\tif (trigger) {\n\t\t\t\tif (trigger.funcid) {\n\t\t\t\t\tif (alasql.fn[trigger.funcid](this.data[i], r) === false) prevent = prevent || true;\n\t\t\t\t} else if (trigger.statement) {\n\t\t\t\t\tif (trigger.statement.execute(databaseid) === false) prevent = prevent || true;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tif (prevent) return false;\n\n\t\t// Trigger prevent functionality\n\t\tvar escape = false;\n\t\tfor (var tr in table.insteadofupdate) {\n\t\t\tescape = true;\n\t\t\tvar trigger = table.insteadofupdate[tr];\n\t\t\tif (trigger) {\n\t\t\t\tif (trigger.funcid) {\n\t\t\t\t\talasql.fn[trigger.funcid](this.data[i], r);\n\t\t\t\t} else if (trigger.statement) {\n\t\t\t\t\ttrigger.statement.execute(databaseid);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tif (escape) return;\n\n\t\t// PART 2 - POST CHECK\n\t\tif (table.checks && table.checks.length > 0) {\n\t\t\ttable.checks.forEach(function (check) {\n\t\t\t\tif (!check.fn(r)) {\n\t\t\t\t\tthrow new Error('Violation of CHECK constraint ' + (check.id || ''));\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\n\t\ttable.columns.forEach(function (column) {\n\t\t\tif (column.notnull && typeof r[column.columnid] === 'undefined') {\n\t\t\t\tthrow new Error('Wrong NULL value in NOT NULL column ' + column.columnid);\n\t\t\t}\n\t\t});\n\t\tif (this.pk) {\n\t\t\tpk.newpkaddr = pk.onrightfn(r);\n\t\t\tif (typeof this.uniqs[pk.hh][pk.newpkaddr] !== 'undefined' && pk.newpkaddr !== pk.pkaddr) {\n\t\t\t\tthrow new Error('Record already exists');\n\t\t\t}\n\t\t}\n\n\t\tif (table.uk && table.uk.length) {\n\t\t\ttable.uk.forEach(function (uk) {\n\t\t\t\tuk.newukaddr = uk.onrightfn(r);\n\t\t\t\tif (typeof table.uniqs[uk.hh][uk.newukaddr] !== 'undefined' && uk.newukaddr !== uk.ukaddr) {\n\t\t\t\t\tthrow new Error('Record already exists');\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\n\t\t// PART 3 UPDATE\n\t\tif (this.pk) {\n\t\t\tthis.uniqs[pk.hh][pk.pkaddr] = undefined;\n\t\t\tthis.uniqs[pk.hh][pk.newpkaddr] = r;\n\t\t}\n\t\tif (table.uk && table.uk.length) {\n\t\t\ttable.uk.forEach(function (uk) {\n\t\t\t\ttable.uniqs[uk.hh][uk.ukaddr] = undefined;\n\t\t\t\ttable.uniqs[uk.hh][uk.newukaddr] = r;\n\t\t\t});\n\t\t}\n\n\t\tthis.data[i] = r;\n\n\t\t// Trigger prevent functionality\n\t\tfor (var tr in table.afterupdate) {\n\t\t\tvar trigger = table.afterupdate[tr];\n\t\t\tif (trigger) {\n\t\t\t\tif (trigger.funcid) {\n\t\t\t\t\talasql.fn[trigger.funcid](this.data[i], r);\n\t\t\t\t} else if (trigger.statement) {\n\t\t\t\t\ttrigger.statement.execute(databaseid);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t};\n\n\tvar res;\n\n\tif (!alasql.options.nocount) {\n\t\tres = 1;\n\t}\n\n\tif (cb) res = cb(res);\n\treturn res;\n};\n//\n// Date functions\n//\n// (c) 2014, Andrey Gershun\n//\n\n/** Standard JavaScript data types */\n\nalasql.fn.Date = Object;\nalasql.fn.Date = Date;\nalasql.fn.Number = Number;\nalasql.fn.String = String;\nalasql.fn.Boolean = Boolean;\n\n/** Extend Object with properties */\nstdfn.EXTEND = alasql.utils.extend;\n\nstdfn.CHAR = String.fromCharCode.bind(String);\nstdfn.ASCII = function (a) {\n\treturn a.charCodeAt(0);\n};\n\n/**\n Return first non-null argument\n See https://msdn.microsoft.com/en-us/library/ms190349.aspx\n*/\nstdfn.COALESCE = function () {\n\tfor (var i = 0; i < arguments.length; i++) {\n\t\tif (arguments[i] === null) continue;\n\t\tif (typeof arguments[i] == 'undefined') continue;\n\t\tif (typeof arguments[i] == 'number' && isNaN(arguments[i])) continue;\n\t\treturn arguments[i];\n\t}\n\treturn undefined;\n};\n\nstdfn.USER = function () {\n\treturn 'alasql';\n};\n\nstdfn.OBJECT_ID = function (objid) {\n\treturn !!alasql.tables[objid];\n};\n\nstdfn.DATE = function (d) {\n\tif (!isNaN(d) && d.length === 8)\n\t\treturn new Date(+d.substr(0, 4), +d.substr(4, 2) - 1, +d.substr(6, 2));\n\treturn newDate(d);\n};\n\nstdfn.NOW = function () {\n\tif (alasql.options.dateAsString) {\n\t\tvar d = new Date();\n\t\tvar s =\n\t\t\td.getFullYear() +\n\t\t\t'-' +\n\t\t\t('0' + (d.getMonth() + 1)).substr(-2) +\n\t\t\t'-' +\n\t\t\t('0' + d.getDate()).substr(-2);\n\t\ts +=\n\t\t\t' ' +\n\t\t\t('0' + d.getHours()).substr(-2) +\n\t\t\t':' +\n\t\t\t('0' + d.getMinutes()).substr(-2) +\n\t\t\t':' +\n\t\t\t('0' + d.getSeconds()).substr(-2);\n\t\ts += '.' + ('00' + d.getMilliseconds()).substr(-3);\n\t\treturn s;\n\t}\n\treturn new Date();\n};\n\nstdfn.GETDATE = stdfn.NOW;\nstdfn.CURRENT_TIMESTAMP = stdfn.NOW;\n\nstdfn.SECOND = function (d) {\n\tvar d = newDate(d);\n\treturn d.getSeconds();\n};\n\nstdfn.MINUTE = function (d) {\n\tvar d = newDate(d);\n\treturn d.getMinutes();\n};\n\nstdfn.HOUR = function (d) {\n\tvar d = newDate(d);\n\treturn d.getHours();\n};\n\nstdfn.DAYOFWEEK = stdfn.WEEKDAY = function (d) {\n\tvar d = newDate(d);\n\treturn d.getDay();\n};\n\nstdfn.DAY = stdfn.DAYOFMONTH = function (d) {\n\tvar d = newDate(d);\n\treturn d.getDate();\n};\n\nstdfn.MONTH = function (d) {\n\tvar d = newDate(d);\n\treturn d.getMonth() + 1;\n};\n\nstdfn.YEAR = function (d) {\n\tvar d = newDate(d);\n\treturn d.getFullYear();\n};\n\nvar PERIODS = {\n\tyear: 1000 * 3600 * 24 * 365,\n\tquarter: (1000 * 3600 * 24 * 365) / 4,\n\tmonth: 1000 * 3600 * 24 * 30,\n\tweek: 1000 * 3600 * 24 * 7,\n\tday: 1000 * 3600 * 24,\n\tdayofyear: 1000 * 3600 * 24,\n\tweekday: 1000 * 3600 * 24,\n\thour: 1000 * 3600,\n\tminute: 1000 * 60,\n\tsecond: 1000,\n\tmillisecond: 1,\n\tmicrosecond: 0.001,\n};\n\nalasql.stdfn.DATEDIFF = function (period, d1, d2) {\n\tvar interval = newDate(d2).getTime() - newDate(d1).getTime();\n\treturn (interval / PERIODS[period.toLowerCase()]) | 0;\n};\n\nalasql.stdfn.DATEADD = function (period, interval, d) {\n\tvar nd = newDate(d);\n\tvar period = period.toLowerCase();\n\n\tswitch (period) {\n\t\tcase 'year':\n\t\t\tnd.setFullYear(nd.getFullYear() + interval);\n\t\t\tbreak;\n\t\tcase 'quarter':\n\t\t\tnd.setMonth(nd.getMonth() + interval * 3);\n\t\t\tbreak;\n\t\tcase 'month':\n\t\t\tnd.setMonth(nd.getMonth() + interval);\n\t\t\tbreak;\n\t\tdefault:\n\t\t\tnd = new Date(nd.getTime() + interval * PERIODS[period]);\n\t\t\tbreak;\n\t}\n\n\treturn nd;\n};\n\nalasql.stdfn.INTERVAL = function (interval, period) {\n\treturn interval * PERIODS[period.toLowerCase()];\n};\n\nalasql.stdfn.DATE_ADD = alasql.stdfn.ADDDATE = function (d, interval) {\n\tvar nd = newDate(d).getTime() + interval;\n\treturn new Date(nd);\n};\n\nalasql.stdfn.DATE_SUB = alasql.stdfn.SUBDATE = function (d, interval) {\n\tvar nd = newDate(d).getTime() - interval;\n\treturn new Date(nd);\n};\n\nvar dateRegexp = /^\\d{4}\\.\\d{2}\\.\\d{2} \\d{2}:\\d{2}:\\d{2}/;\nfunction newDate(d) {\n\tif (typeof d === 'string') {\n\t\tif (dateRegexp.test(d)) {\n\t\t\td = d.replace('.', '-').replace('.', '-');\n\t\t}\n\t}\n\treturn new Date(d);\n}\n/*\n//\n// DROP TABLE for Alasql.js\n// Date: 03.11.2014\n// (c) 2014, Andrey Gershun\n//\n*/\n\nyy.DropTable = function (params) {\n\treturn Object.assign(this, params);\n};\nyy.DropTable.prototype.toString = function () {\n\tvar s = 'DROP' + ' ';\n\tif (this.view) s += 'VIEW';\n\telse s += 'TABLE';\n\tif (this.ifexists) s += ' IF EXISTS';\n\ts += ' ' + this.tables.toString();\n\treturn s;\n};\n\n// DROP TABLE\n/**\n\tDrop tables\n\t@param {string} databaseid Database id\n\t@param {object} params Parameters\n\t@param {callback} cb Callback function\n\t@return Number of dropped tables\n\t@example\n\tDROP TABLE one;\n\tDROP TABLE IF NOT EXISTS two, three;\n*/\nyy.DropTable.prototype.execute = function (databaseid, params, cb) {\n\tvar ifexists = this.ifexists;\n\tvar res = 0; // No tables removed\n\tvar count = 0;\n\tvar tlen = this.tables.length;\n\n\t// For each table in the list\n\tthis.tables.forEach(function (table) {\n\t\tvar db = alasql.databases[table.databaseid || databaseid];\n\t\tvar tableid = table.tableid;\n\n\t\t/** @todo Test with AUTOCOMMIT flag is ON */\n\t\t/** @todo Test with IndexedDB and multiple tables */\n\n\t\tif (!ifexists || (ifexists && db.tables[tableid])) {\n\t\t\tif (!db.tables[tableid]) {\n\t\t\t\tif (!alasql.options.dropifnotexists) {\n\t\t\t\t\tthrow new Error(\n\t\t\t\t\t\t`Can not drop table ${JSON.stringify(\n\t\t\t\t\t\t\ttable.tableid\n\t\t\t\t\t\t)} because it does not exist in the database.`\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif (db.engineid /*&& alasql.options.autocommit*/) {\n\t\t\t\t\talasql.engines[db.engineid].dropTable(\n\t\t\t\t\t\ttable.databaseid || databaseid,\n\t\t\t\t\t\ttableid,\n\t\t\t\t\t\tifexists,\n\t\t\t\t\t\tfunction (res1) {\n\t\t\t\t\t\t\tdelete db.tables[tableid];\n\t\t\t\t\t\t\tres += res1;\n\t\t\t\t\t\t\tcount++;\n\t\t\t\t\t\t\tif (count == tlen && cb) cb(res);\n\t\t\t\t\t\t}\n\t\t\t\t\t);\n\t\t\t\t} else {\n\t\t\t\t\tdelete db.tables[tableid];\n\t\t\t\t\tres++;\n\t\t\t\t\tcount++;\n\t\t\t\t\tif (count == tlen && cb) cb(res);\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tcount++;\n\t\t\tif (count == tlen && cb) cb(res);\n\t\t}\n\t});\n\t// if(cb) res = cb(res);\n\treturn res;\n};\n\nyy.TruncateTable = function (params) {\n\treturn Object.assign(this, params);\n};\nyy.TruncateTable.prototype.toString = function () {\n\tvar s = 'TRUNCATE TABLE';\n\ts += ' ' + this.table.toString();\n\treturn s;\n};\n\nyy.TruncateTable.prototype.execute = function (databaseid, params, cb) {\n\tvar db = alasql.databases[this.table.databaseid || databaseid];\n\tvar tableid = this.table.tableid;\n\tif (db.engineid) {\n\t\treturn alasql.engines[db.engineid].truncateTable(\n\t\t\tthis.table.databaseid || databaseid,\n\t\t\ttableid,\n\t\t\tthis.ifexists,\n\t\t\tcb\n\t\t);\n\t}\n\tif (db.tables[tableid]) {\n\t\tdb.tables[tableid].data = [];\n\t} else {\n\t\tthrow new Error('Cannot truncate table becaues it does not exist');\n\t}\n\treturn cb ? cb(0) : 0;\n};\n/*\n//\n// CREATE VERTEX for AlaSQL\n// Date: 21.04.2015\n// (c) 2015, Andrey Gershun\n//\n*/\n\nyy.CreateVertex = function (params) {\n\treturn Object.assign(this, params);\n};\nyy.CreateVertex.prototype.toString = function () {\n\tvar s = 'CREATE VERTEX ';\n\tif (this.class) {\n\t\ts += this.class + ' ';\n\t}\n\tif (this.sharp) {\n\t\ts += '#' + this.sharp + ' ';\n\t}\n\tif (this.sets) {\n\t\ts += this.sets.toString();\n\t} else if (this.content) {\n\t\ts += this.content.toString();\n\t} else if (this.select) {\n\t\ts += this.select.toString();\n\t}\n\n\treturn s;\n};\n\nyy.CreateVertex.prototype.toJS = function (context) {\n\n\tvar s = 'this.queriesfn[' + (this.queriesidx - 1) + '](this.params,null,' + context + ')';\n\t// var s = '';\n\treturn s;\n};\n\n// CREATE TABLE\n\nyy.CreateVertex.prototype.compile = function (databaseid) {\n\tvar dbid = databaseid;\n\n\t// CREATE VERTEX #id\n\tvar sharp = this.sharp;\n\n\t// CREATE VERTEX \"Name\"\n\tif (typeof this.name !== 'undefined') {\n\t\tvar s = 'x.name=' + this.name.toJS();\n\t\tvar namefn = new Function('x', s);\n\t}\n\n\tif (this.sets && this.sets.length > 0) {\n\t\tvar s = this.sets\n\t\t\t.map(function (st) {\n\t\t\t\treturn `x[${JSON.stringify(st.column.columnid)}]=` + st.expression.toJS('x', '');\n\t\t\t})\n\t\t\t.join(';');\n\t\tvar setfn = new Function('x,params,alasql', s);\n\t}\n\n\t// Todo: check for content, select and default\n\n\tvar statement = function (params, cb) {\n\t\tvar res;\n\n\t\t// CREATE VERTEX without parameters\n\t\tvar db = alasql.databases[dbid];\n\t\tvar id;\n\t\tif (typeof sharp !== 'undefined') {\n\t\t\tid = sharp;\n\t\t} else {\n\t\t\tid = db.counter++;\n\t\t}\n\t\tvar vertex = {$id: id, $node: 'VERTEX'};\n\t\tdb.objects[vertex.$id] = vertex;\n\t\tres = vertex;\n\t\tif (namefn) {\n\t\t\tnamefn(vertex);\n\t\t}\n\t\tif (setfn) {\n\t\t\tsetfn(vertex, params, alasql);\n\t\t}\n\n\t\tif (cb) {\n\t\t\tres = cb(res);\n\t\t}\n\t\treturn res;\n\t};\n\treturn statement;\n};\n\nyy.CreateEdge = function (params) {\n\treturn Object.assign(this, params);\n};\nyy.CreateEdge.prototype.toString = function () {\n\n\tvar s = 'CREATE EDGE' + ' ';\n\tif (this.class) {\n\t\ts += this.class + ' ';\n\t}\n\t// todo: SET\n\t// todo: CONTENT\n\t// todo: SELECT\n\treturn s;\n};\n\nyy.CreateEdge.prototype.toJS = function (context) {\n\tvar s = 'this.queriesfn[' + (this.queriesidx - 1) + '](this.params,null,' + context + ')';\n\treturn s;\n};\n\n// CREATE TABLE\n\nyy.CreateEdge.prototype.compile = function (databaseid) {\n\tvar dbid = databaseid;\n\tvar fromfn = new Function('params,alasql', 'var y;return ' + this.from.toJS());\n\tvar tofn = new Function('params,alasql', 'var y;return ' + this.to.toJS());\n\n\t// CREATE VERTEX \"Name\"\n\tif (typeof this.name !== 'undefined') {\n\t\tvar s = 'x.name=' + this.name.toJS();\n\t\tvar namefn = new Function('x', s);\n\t}\n\n\tif (this.sets && this.sets.length > 0) {\n\t\tvar s = this.sets\n\t\t\t.map(function (st) {\n\t\t\t\treturn `x[${JSON.stringify(st.column.columnid)}]=` + st.expression.toJS('x', '');\n\t\t\t})\n\t\t\t.join(';');\n\t\tvar setfn = new Function('x,params,alasql', 'var y;' + s);\n\t}\n\n\t/*\n\ttodo: handle content, select and default\n\telse if(this.content) {\n\n\t} else if(this.select) {\n\n\t} else {\n\t}\n\t*/\n\n\tvar statement = function (params, cb) {\n\t\tvar res = 0;\n\t\t// CREATE VERTEX without parameters\n\t\tvar db = alasql.databases[dbid];\n\t\tvar edge = {$id: db.counter++, $node: 'EDGE'};\n\t\tvar v1 = fromfn(params, alasql);\n\t\tvar v2 = tofn(params, alasql);\n\t\t// Set link\n\t\tedge.$in = [v1.$id];\n\t\tedge.$out = [v2.$id];\n\t\t// Set sides\n\t\tif (v1.$out === undefined) {\n\t\t\tv1.$out = [];\n\t\t}\n\t\tv1.$out.push(edge.$id);\n\n\t\tif (typeof v2.$in === undefined) {\n\t\t\tv2.$in = [];\n\t\t}\n\t\tv2.$in.push(edge.$id);\n\n\t\t// Save in objects\n\t\tdb.objects[edge.$id] = edge;\n\t\tres = edge;\n\t\tif (namefn) {\n\t\t\tnamefn(edge);\n\t\t}\n\n\t\tif (setfn) {\n\t\t\tsetfn(edge, params, alasql);\n\t\t}\n\n\t\tif (cb) {\n\t\t\tres = cb(res);\n\t\t}\n\n\t\treturn res;\n\t};\n\treturn statement;\n};\n\nyy.CreateGraph = function (params) {\n\treturn Object.assign(this, params);\n};\nyy.CreateGraph.prototype.toString = function () {\n\tvar s = 'CREATE GRAPH' + ' ';\n\tif (this.class) {\n\t\ts += this.class + ' ';\n\t}\n\treturn s;\n};\n\nyy.CreateGraph.prototype.execute = function (databaseid, params, cb) {\n\tvar res = [];\n\tif (this.from) {\n\t\tif (alasql.from[this.from.funcid]) {\n\t\t\tthis.graph = alasql.from[this.from.funcid.toUpperCase()];\n\t\t}\n\t}\n\n\t//\tstop;\n\tthis.graph.forEach(function (g) {\n\t\tif (g.source) {\n\t\t\t// GREATE EDGE\n\t\t\tvar e = {};\n\t\t\tif (typeof g.as !== 'undefined') {\n\t\t\t\talasql.vars[g.as] = e;\n\t\t\t}\n\n\t\t\tif (typeof g.prop !== 'undefined') {\n\t\t\t\t//\t\t\t\te[g.prop] = e;\n\t\t\t\t//\t\t\t\tv.$id = g.prop; // We do not create $id for edge automatically\n\t\t\t\te.name = g.prop;\n\t\t\t}\n\t\t\tif (typeof g.sharp !== 'undefined') {\n\t\t\t\te.$id = g.sharp;\n\t\t\t}\n\t\t\tif (typeof g.name !== 'undefined') {\n\t\t\t\te.name = g.name;\n\t\t\t}\n\t\t\tif (typeof g.class !== 'undefined') {\n\t\t\t\te.$class = g.class;\n\t\t\t}\n\n\t\t\tvar db = alasql.databases[databaseid];\n\t\t\tif (typeof e.$id === 'undefined') {\n\t\t\t\te.$id = db.counter++;\n\t\t\t}\n\t\t\te.$node = 'EDGE';\n\t\t\tif (typeof g.json !== 'undefined') {\n\t\t\t\textend(e, new Function('params,alasql', 'var y;return ' + g.json.toJS())(params, alasql));\n\t\t\t}\n\n\t\t\tvar v1;\n\t\t\tif (g.source.vars) {\n\t\t\t\tvar vo = alasql.vars[g.source.vars];\n\t\t\t\tif (typeof vo === 'object') {\n\t\t\t\t\tv1 = vo;\n\t\t\t\t} else {\n\t\t\t\t\tv1 = db.objects[vo];\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tvar av1 = g.source.sharp;\n\t\t\t\tif (typeof av1 === 'undefined') {\n\t\t\t\t\tav1 = g.source.prop;\n\t\t\t\t}\n\t\t\t\tv1 = alasql.databases[databaseid].objects[av1];\n\t\t\t\tif (\n\t\t\t\t\ttypeof v1 === 'undefined' &&\n\t\t\t\t\talasql.options.autovertex &&\n\t\t\t\t\t(typeof g.source.prop !== 'undefined' || typeof g.source.name !== 'undefined')\n\t\t\t\t) {\n\t\t\t\t\tv1 = findVertex(g.source.prop || g.source.name);\n\t\t\t\t\tif (typeof v1 === 'undefined') {\n\t\t\t\t\t\tv1 = createVertex(g.source);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tvar v2;\n\t\t\tif (g.source.vars) {\n\t\t\t\tvar vo = alasql.vars[g.target.vars];\n\t\t\t\tif (typeof vo === 'object') {\n\t\t\t\t\tv2 = vo;\n\t\t\t\t} else {\n\t\t\t\t\tv2 = db.objects[vo];\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tvar av2 = g.target.sharp;\n\t\t\t\tif (typeof av2 === 'undefined') {\n\t\t\t\t\tav2 = g.target.prop;\n\t\t\t\t}\n\t\t\t\tv2 = alasql.databases[databaseid].objects[av2];\n\t\t\t\tif (\n\t\t\t\t\ttypeof v2 === 'undefined' &&\n\t\t\t\t\talasql.options.autovertex &&\n\t\t\t\t\t(typeof g.target.prop !== 'undefined' || typeof g.target.name !== 'undefined')\n\t\t\t\t) {\n\t\t\t\t\tv2 = findVertex(g.target.prop || g.target.name);\n\t\t\t\t\tif (typeof v2 === 'undefined') {\n\t\t\t\t\t\tv2 = createVertex(g.target);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Set link\n\t\t\te.$in = [v1.$id];\n\t\t\te.$out = [v2.$id];\n\t\t\t// Set sides\n\t\t\tif (typeof v1.$out === 'undefined') {\n\t\t\t\tv1.$out = [];\n\t\t\t}\n\t\t\tv1.$out.push(e.$id);\n\t\t\tif (typeof v2.$in === 'undefined') {\n\t\t\t\tv2.$in = [];\n\t\t\t}\n\t\t\tv2.$in.push(e.$id);\n\n\t\t\tdb.objects[e.$id] = e;\n\t\t\tif (typeof e.$class !== 'undefined') {\n\t\t\t\tif (typeof alasql.databases[databaseid].tables[e.$class] === 'undefined') {\n\t\t\t\t\tthrow new Error('No such class. Pleace use CREATE CLASS');\n\t\t\t\t} else {\n\t\t\t\t\t// TODO - add insert()\n\t\t\t\t\talasql.databases[databaseid].tables[e.$class].data.push(e);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tres.push(e.$id);\n\t\t} else {\n\t\t\tcreateVertex(g);\n\t\t}\n\t});\n\n\tif (cb) {\n\t\tres = cb(res);\n\t}\n\treturn res;\n\n\t// Find vertex by name\n\tfunction findVertex(name) {\n\t\tvar objects = alasql.databases[alasql.useid].objects;\n\t\tfor (var k in objects) {\n\t\t\tif (objects[k].name === name) {\n\t\t\t\treturn objects[k];\n\t\t\t}\n\t\t}\n\t\treturn undefined;\n\t}\n\n\tfunction createVertex(g) {\n\t\t// GREATE VERTEX\n\t\tvar v = {};\n\t\tif (typeof g.as !== 'undefined') {\n\t\t\talasql.vars[g.as] = v;\n\t\t}\n\n\t\tif (typeof g.prop !== 'undefined') {\n\t\t\t//\t\t\t\tv[g.prop] = true;\n\t\t\tv.$id = g.prop;\n\t\t\tv.name = g.prop;\n\t\t}\n\n\t\tif (typeof g.sharp !== 'undefined') {\n\t\t\tv.$id = g.sharp;\n\t\t}\n\t\tif (typeof g.name !== 'undefined') {\n\t\t\tv.name = g.name;\n\t\t}\n\t\tif (typeof g.class !== 'undefined') {\n\t\t\tv.$class = g.class;\n\t\t}\n\n\t\tvar db = alasql.databases[databaseid];\n\t\tif (typeof v.$id === 'undefined') {\n\t\t\tv.$id = db.counter++;\n\t\t}\n\t\tv.$node = 'VERTEX';\n\t\tif (typeof g.json !== 'undefined') {\n\t\t\textend(v, new Function('params,alasql', 'var y;return ' + g.json.toJS())(params, alasql));\n\t\t}\n\t\tdb.objects[v.$id] = v;\n\t\tif (typeof v.$class !== 'undefined') {\n\t\t\tif (typeof alasql.databases[databaseid].tables[v.$class] === 'undefined') {\n\t\t\t\tthrow new Error('No such class. Pleace use CREATE CLASS');\n\t\t\t} else {\n\t\t\t\t// TODO - add insert()\n\t\t\t\talasql.databases[databaseid].tables[v.$class].data.push(v);\n\t\t\t}\n\t\t}\n\n\t\tres.push(v.$id);\n\t\treturn v;\n\t}\n};\n\nyy.CreateGraph.prototype.compile1 = function (databaseid) {\n\tvar dbid = databaseid;\n\tvar fromfn = new Function('params,alasql', 'var y;return ' + this.from.toJS());\n\tvar tofn = new Function('params,alasql', 'var y;return ' + this.to.toJS());\n\n\t// CREATE VERTEX \"Name\"\n\tif (typeof this.name !== 'undefined') {\n\t\tvar s = 'x.name=' + this.name.toJS();\n\t\tvar namefn = new Function('x', s);\n\t}\n\n\tif (this.sets && this.sets.length > 0) {\n\t\tvar s = this.sets\n\t\t\t.map(function (st) {\n\t\t\t\treturn `x[${JSON.stringify(st.column.columnid)}]=` + st.expression.toJS('x', '');\n\t\t\t})\n\t\t\t.join(';');\n\t\tvar setfn = new Function('x,params,alasql', 'var y;' + s);\n\t}\n\n\t// Todo: handle content, select and default\n\n\tvar statement = function (params, cb) {\n\t\tvar res = 0;\n\t\t// CREATE VERTEX without parameters\n\t\tvar db = alasql.databases[dbid];\n\t\tvar edge = {$id: db.counter++, $node: 'EDGE'};\n\t\tvar v1 = fromfn(params, alasql);\n\t\tvar v2 = tofn(params, alasql);\n\t\t// Set link\n\t\tedge.$in = [v1.$id];\n\t\tedge.$out = [v2.$id];\n\t\t// Set sides\n\t\tif (typeof v1.$out === 'undefined') {\n\t\t\tv1.$out = [];\n\t\t}\n\t\tv1.$out.push(edge.$id);\n\n\t\tif (typeof v2.$in === 'undefined') {\n\t\t\tv2.$in = [];\n\t\t}\n\t\tv2.$in.push(edge.$id);\n\t\t// Save in objects\n\t\tdb.objects[edge.$id] = edge;\n\t\tres = edge;\n\t\tif (namefn) {\n\t\t\tnamefn(edge);\n\t\t}\n\t\tif (setfn) {\n\t\t\tsetfn(edge, params, alasql);\n\t\t}\n\n\t\tif (cb) {\n\t\t\tres = cb(res);\n\t\t}\n\t\treturn res;\n\t};\n\treturn statement;\n};\n/*\n//\n// ALTER TABLE for Alasql.js\n// Date: 03.11.2014\n// (c) 2014, Andrey Gershun\n//\n*/\n/* global alasql yy */\n\n// ALTER TABLE table1 RENAME TO table2\nyy.AlterTable = function (params) {\n\treturn Object.assign(this, params);\n};\nyy.AlterTable.prototype.toString = function () {\n\tvar s = 'ALTER TABLE ' + this.table.toString();\n\tif (this.renameto) s += ' RENAME TO ' + this.renameto;\n\treturn s;\n};\n\nyy.AlterTable.prototype.execute = function (databaseid, params, cb) {\n\tvar db = alasql.databases[databaseid];\n\tdb.dbversion = Date.now();\n\n\tif (this.renameto) {\n\t\tvar oldtableid = this.table.tableid;\n\t\tvar newtableid = this.renameto;\n\t\tvar res = 1;\n\t\tif (db.tables[newtableid]) {\n\t\t\tthrow new Error(\n\t\t\t\t`Can not rename a table \"${oldtableid}\" to \"${newtableid}\" because the table with this name already exists`\n\t\t\t);\n\t\t} else if (newtableid === oldtableid) {\n\t\t\tthrow new Error(`Can not rename a table \"${oldtableid}\" to itself`);\n\t\t} else {\n\t\t\tdb.tables[newtableid] = db.tables[oldtableid];\n\t\t\tdelete db.tables[oldtableid];\n\t\t\tres = 1;\n\t\t}\n\t\tif (cb) cb(res);\n\t\treturn res;\n\t} else if (this.addcolumn) {\n\t\tdb = alasql.databases[this.table.databaseid || databaseid];\n\t\tdb.dbversion++;\n\t\tvar tableid = this.table.tableid;\n\t\tvar table = db.tables[tableid];\n\t\tvar columnid = this.addcolumn.columnid;\n\t\tif (table.xcolumns[columnid]) {\n\t\t\tthrow new Error(\n\t\t\t\t`Cannot add column \"${columnid}\" because it already exists in table \"${tableid}\"`\n\t\t\t);\n\t\t}\n\n\t\tvar col = {\n\t\t\tcolumnid: columnid,\n\t\t\tdbtypeid: this.addcolumn.dbtypeid,\n\t\t\tdbsize: this.dbsize,\n\t\t\tdbprecision: this.dbprecision,\n\t\t\tdbenum: this.dbenum,\n\t\t\tdefaultfns: null, // TODO defaultfns!!!\n\t\t};\n\n\t\tvar defaultfn = function () {};\n\n\t\ttable.columns.push(col);\n\t\ttable.xcolumns[columnid] = col;\n\n\t\tfor (var i = 0, ilen = table.data.length; i < ilen; i++) {\n\n\t\t\ttable.data[i][columnid] = defaultfn();\n\t\t}\n\n\t\t// TODO\n\t\treturn cb ? cb(1) : 1;\n\t} else if (this.modifycolumn) {\n\t\tvar db = alasql.databases[this.table.databaseid || databaseid];\n\t\tdb.dbversion++;\n\t\tvar tableid = this.table.tableid;\n\t\tvar table = db.tables[tableid];\n\t\tvar columnid = this.modifycolumn.columnid;\n\n\t\tif (!table.xcolumns[columnid]) {\n\t\t\tthrow new Error(\n\t\t\t\t`Cannot modify column \"${columnid}\" because it was not found in table \"${tableid}\"`\n\t\t\t);\n\t\t}\n\n\t\tcol = table.xcolumns[columnid];\n\t\tcol.dbtypeid = this.dbtypeid;\n\t\tcol.dbsize = this.dbsize;\n\t\tcol.dbprecision = this.dbprecision;\n\t\tcol.dbenum = this.dbenum;\n\n\t\t// TODO\n\t\treturn cb ? cb(1) : 1;\n\t} else if (this.renamecolumn) {\n\t\tvar db = alasql.databases[this.table.databaseid || databaseid];\n\t\tdb.dbversion++;\n\n\t\tvar tableid = this.table.tableid;\n\t\tvar table = db.tables[tableid];\n\t\tvar columnid = this.renamecolumn;\n\t\tvar tocolumnid = this.to;\n\n\t\tvar col;\n\t\tif (!table.xcolumns[columnid]) {\n\t\t\tthrow new Error('Column \"' + columnid + '\" is not found in the table \"' + tableid + '\"');\n\t\t}\n\t\tif (table.xcolumns[tocolumnid]) {\n\t\t\tthrow new Error('Column \"' + tocolumnid + '\" already exists in the table \"' + tableid + '\"');\n\t\t}\n\n\t\tif (columnid != tocolumnid) {\n\t\t\tfor (var j = 0; j < table.columns.length; j++) {\n\t\t\t\tif (table.columns[j].columnid == columnid) {\n\t\t\t\t\ttable.columns[j].columnid = tocolumnid;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\ttable.xcolumns[tocolumnid] = table.xcolumns[columnid];\n\t\t\tdelete table.xcolumns[columnid];\n\n\t\t\tfor (var i = 0, ilen = table.data.length; i < ilen; i++) {\n\n\t\t\t\ttable.data[i][tocolumnid] = table.data[i][columnid];\n\t\t\t\tdelete table.data[i][columnid];\n\t\t\t}\n\t\t\treturn table.data.length;\n\t\t} else {\n\t\t\treturn cb ? cb(0) : 0;\n\t\t}\n\t} else if (this.dropcolumn) {\n\t\tvar db = alasql.databases[this.table.databaseid || databaseid];\n\t\tdb.dbversion++;\n\t\tvar tableid = this.table.tableid;\n\t\tvar table = db.tables[tableid];\n\t\tvar columnid = this.dropcolumn;\n\n\t\tvar found = false;\n\t\tfor (var j = 0; j < table.columns.length; j++) {\n\t\t\tif (table.columns[j].columnid == columnid) {\n\t\t\t\tfound = true;\n\t\t\t\ttable.columns.splice(j, 1);\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\n\t\tif (!found) {\n\t\t\tthrow new Error(\n\t\t\t\t`Cannot drop column \"${columnid}\" because it was not found in the table ${tableid}\"`\n\t\t\t);\n\t\t}\n\n\t\tdelete table.xcolumns[columnid];\n\n\t\tfor (i = 0, ilen = table.data.length; i < ilen; i++) {\n\t\t\tdelete table.data[i][columnid];\n\t\t}\n\t\treturn cb ? cb(table.data.length) : table.data.length;\n\t} else {\n\t\tthrow Error('Unknown ALTER TABLE method');\n\t}\n};\n/*\n//\n// CREATE TABLE for Alasql.js\n// Date: 03.11.2014\n// (c) 2014, Andrey Gershun\n//\n*/\n\nyy.CreateIndex = function (params) {\n\treturn Object.assign(this, params);\n};\nyy.CreateIndex.prototype.toString = function () {\n\tvar s = 'CREATE';\n\tif (this.unique) s += ' UNIQUE';\n\ts += ' INDEX ' + this.indexid + ' ON ' + this.table.toString();\n\ts += '(' + this.columns.toString() + ')';\n\treturn s;\n};\n\n// CREATE TABLE\nyy.CreateIndex.prototype.execute = function (databaseid, params, cb) {\n\t//\tvar self = this;\n\tvar db = alasql.databases[databaseid];\n\tvar tableid = this.table.tableid;\n\tvar table = db.tables[tableid];\n\tvar indexid = this.indexid;\n\tdb.indices[indexid] = tableid;\n\n\tvar rightfns = this.columns\n\t\t.map(function (expr) {\n\t\t\treturn expr.expression.toJS('r', '');\n\t\t})\n\t\t.join(\"+'`'+\");\n\n\tvar rightfn = new Function('r,params,alasql', 'return ' + rightfns);\n\n\tif (this.unique) {\n\t\ttable.uniqdefs[indexid] = {\n\t\t\trightfns: rightfns,\n\t\t};\n\t\tvar ux = (table.uniqs[indexid] = {});\n\t\tif (table.data.length > 0) {\n\t\t\tfor (var i = 0, ilen = table.data.length; i < ilen; i++) {\n\t\t\t\tvar addr = rightfns(table.data[i]);\n\t\t\t\tif (!ux[addr]) {\n\t\t\t\t\tux[addr] = {num: 0};\n\t\t\t\t}\n\t\t\t\tux[addr].num++;\n\t\t\t}\n\t\t}\n\t} else {\n\t\tvar hh = hash(rightfns);\n\t\ttable.inddefs[indexid] = {rightfns: rightfns, hh: hh};\n\t\ttable.indices[hh] = {};\n\n\t\tvar ix = (table.indices[hh] = {});\n\t\tif (table.data.length > 0) {\n\t\t\tfor (var i = 0, ilen = table.data.length; i < ilen; i++) {\n\t\t\t\tvar addr = rightfn(table.data[i], params, alasql);\n\t\t\t\tif (!ix[addr]) {\n\t\t\t\t\tix[addr] = [];\n\t\t\t\t}\n\t\t\t\tix[addr].push(table.data[i]);\n\t\t\t}\n\t\t}\n\t}\n\tvar res = 1;\n\tif (cb) res = cb(res);\n\treturn res;\n};\n\nyy.Reindex = function (params) {\n\treturn Object.assign(this, params);\n};\nyy.Reindex.prototype.toString = function () {\n\tvar s = 'REINDEX ' + this.indexid;\n\treturn s;\n};\n\n// CREATE TABLE\nyy.Reindex.prototype.execute = function (databaseid, params, cb) {\n\t//\tvar self = this;\n\tvar db = alasql.databases[databaseid];\n\tvar indexid = this.indexid;\n\n\tvar tableid = db.indices[indexid];\n\tvar table = db.tables[tableid];\n\ttable.indexColumns();\n\tvar res = 1;\n\tif (cb) res = cb(res);\n\treturn res;\n};\n/*\n//\n// DROP TABLE for Alasql.js\n// Date: 03.11.2014\n// (c) 2014, Andrey Gershun\n//\n*/\n\nyy.DropIndex = function (params) {\n\treturn Object.assign(this, params);\n};\nyy.DropIndex.prototype.toString = function () {\n\treturn 'DROP INDEX' + this.indexid;\n};\n\n// DROP TABLE\nyy.DropIndex.prototype.compile = function (db) {\n\tvar indexid = this.indexid;\n\treturn function () {\n\t\treturn 1;\n\t};\n};\n/*\n//\n// WITH SELECT for Alasql.js\n// Date: 11.01.2015\n// (c) 2015, Andrey Gershun\n//\n*/\n\nyy.WithSelect = function (params) {\n\treturn Object.assign(this, params);\n};\nyy.WithSelect.prototype.toString = function () {\n\tvar s = 'WITH ';\n\ts +=\n\t\tthis.withs\n\t\t\t.map(function (w) {\n\t\t\t\treturn w.name + ' AS (' + w.select.toString() + ')';\n\t\t\t})\n\t\t\t.join(',') + ' ';\n\ts += this.select.toString();\n\treturn s;\n};\n\nyy.WithSelect.prototype.execute = function (databaseid, params, cb) {\n\tvar self = this;\n\t// Create temporary tables\n\tvar savedTables = [];\n\tself.withs.forEach(function (w) {\n\t\tsavedTables.push(alasql.databases[databaseid].tables[w.name]);\n\t\tvar tb = (alasql.databases[databaseid].tables[w.name] = new Table({\n\t\t\ttableid: w.name,\n\t\t}));\n\t\ttb.data = w.select.execute(databaseid, params);\n\t});\n\n\tvar res = 1;\n\tres = this.select.execute(databaseid, params, function (data) {\n\t\t// Clear temporary tables\n\t\t//\t\tsetTimeout(function(){\n\t\tself.withs.forEach(function (w, idx) {\n\t\t\tif (savedTables[idx]) alasql.databases[databaseid].tables[w.name] = savedTables[idx];\n\t\t\telse delete alasql.databases[databaseid].tables[w.name];\n\t\t});\n\t\t//\t\t},0);\n\n\t\tif (cb) data = cb(data);\n\t\treturn data;\n\t});\n\treturn res;\n};\n\n/*\n//\n// IF for Alasql.js\n// Date: 03.11.2014\n// (c) 2014, Andrey Gershun\n//\n*/\n\nyy.If = function (params) {\n\treturn Object.assign(this, params);\n};\nyy.If.prototype.toString = function () {\n\tvar s = 'IF' + ' ';\n\ts += this.expression.toString();\n\ts += ' ' + this.thenstat.toString();\n\tif (this.elsestat) s += ' ELSE ' + this.thenstat.toString();\n\treturn s;\n};\n\n// CREATE TABLE\n\nyy.If.prototype.execute = function (databaseid, params, cb) {\n\tvar res;\n\n\tvar fn = new Function(\n\t\t'params,alasql,p',\n\t\t'var y;return ' + this.expression.toJS('({})', '', null)\n\t).bind(this);\n\n\tif (fn(params, alasql)) res = this.thenstat.execute(databaseid, params, cb);\n\telse {\n\t\tif (this.elsestat) res = this.elsestat.execute(databaseid, params, cb);\n\t\telse {\n\t\t\tif (cb) res = cb(res);\n\t\t}\n\t}\n\t//\t else res = this.elsestat.execute(databaseid,params,cb,scope);\n\treturn res;\n};\n/*\n//\n// CREATE VIEW for Alasql.js\n// Date: 03.11.2014\n// (c) 2014, Andrey Gershun\n//\n*/\n\nyy.While = function (params) {\n\treturn Object.assign(this, params);\n};\nyy.While.prototype.toString = function () {\n\tvar s = 'WHILE ';\n\ts += this.expression.toString();\n\ts += ' ' + this.loopstat.toString();\n\treturn s;\n};\n\nyy.While.prototype.execute = function (databaseid, params, cb) {\n\tvar self = this;\n\tvar res = [];\n\n\tvar fn = new Function('params,alasql,p', 'var y;return ' + this.expression.toJS());\n\n\tif (cb) {\n\t\tvar first = false;\n\t\tvar loop = function (data) {\n\t\t\tif (first) {\n\t\t\t\tres.push(data);\n\t\t\t} else {\n\t\t\t\tfirst = true;\n\t\t\t}\n\t\t\tsetTimeout(function () {\n\t\t\t\tif (fn(params, alasql)) {\n\t\t\t\t\tself.loopstat.execute(databaseid, params, loop);\n\t\t\t\t} else {\n\t\t\t\t\tres = cb(res);\n\t\t\t\t}\n\t\t\t}, 0);\n\t\t};\n\t\tloop();\n\t} else {\n\t\twhile (fn(params, alasql)) {\n\t\t\tvar res1 = self.loopstat.execute(databaseid, params);\n\t\t\tres.push(res1);\n\t\t}\n\t}\n\treturn res;\n};\n\nyy.Break = function (params) {\n\treturn Object.assign(this, params);\n};\nyy.Break.prototype.toString = function () {\n\tvar s = 'BREAK';\n\treturn s;\n};\n\nyy.Break.prototype.execute = function (databaseid, params, cb, scope) {\n\tvar res = 1;\n\tif (cb) res = cb(res);\n\treturn res;\n};\n\nyy.Continue = function (params) {\n\treturn Object.assign(this, params);\n};\nyy.Continue.prototype.toString = function () {\n\tvar s = 'CONTINUE';\n\treturn s;\n};\n\nyy.Continue.prototype.execute = function (databaseid, params, cb, scope) {\n\tvar res = 1;\n\tif (cb) res = cb(res);\n\treturn res;\n};\n\nyy.BeginEnd = function (params) {\n\treturn Object.assign(this, params);\n};\nyy.BeginEnd.prototype.toString = function () {\n\tvar s = 'BEGIN ' + this.statements.toString() + ' END';\n\treturn s;\n};\n\nyy.BeginEnd.prototype.execute = function (databaseid, params, cb, scope) {\n\tvar self = this;\n\tvar res = [];\n\n\tvar idx = 0;\n\trunone();\n\tfunction runone() {\n\t\tself.statements[idx].execute(databaseid, params, function (data) {\n\t\t\tres.push(data);\n\t\t\tidx++;\n\t\t\tif (idx < self.statements.length) return runone();\n\t\t\tif (cb) res = cb(res);\n\t\t});\n\t}\n\treturn res;\n};\n/*\n//\n// INSERT for Alasql.js\n// Date: 03.11.2014\n// (c) 2014, Andrey Gershun\n//\n*/\n\n/* global yy alasql*/\nyy.Insert = function (params) {\n\treturn Object.assign(this, params);\n};\nyy.Insert.prototype.toString = function () {\n\tvar s = 'INSERT ';\n\tif (this.orreplace) s += 'OR REPLACE ';\n\tif (this.replaceonly) s = 'REPLACE ';\n\ts += 'INTO ' + this.into.toString();\n\tif (this.columns) s += '(' + this.columns.toString() + ')';\n\tif (this.values) {\n\t\tvar values = this.values.map(function (value) {\n\t\t\treturn '(' + value.toString() + ')';\n\t\t});\n\t\ts += ' VALUES ' + values.join(',');\n\t}\n\tif (this.select) s += ' ' + this.select.toString();\n\treturn s;\n};\n\nyy.Insert.prototype.toJS = function (context, tableid, defcols) {\n\n\t//\tif(this.expression.reduced) return 'true';\n\t//\treturn this.expression.toJS(context, tableid, defcols);\n\n\t//\tvar s = 'this.queriesdata['+(this.queriesidx-1)+'][0]';\n\n\tvar s = 'this.queriesfn[' + (this.queriesidx - 1) + '](this.params,null,' + context + ')';\n\n\treturn s;\n};\n\nyy.Insert.prototype.compile = function (databaseid) {\n\tvar self = this;\n\tdatabaseid = self.into.databaseid || databaseid;\n\tvar db = alasql.databases[databaseid];\n\n\tvar tableid = self.into.tableid;\n\tvar table = db.tables[tableid];\n\n\tif (!table) {\n\t\tthrow \"Table '\" + tableid + \"' could not be found\";\n\t}\n\n\t// Check, if this dirty flag is required\n\tvar s = '';\n\tvar sw = '';\n\tvar s = \"db.tables['\" + tableid + \"'].dirty=true;\";\n\tvar s3 = 'var a,aa=[],x;';\n\n\tvar s33;\n\n\t// INSERT INTO table VALUES\n\tif (this.values) {\n\t\tif (this.exists) {\n\t\t\tthis.existsfn = this.exists.map(function (ex) {\n\t\t\t\tvar nq = ex.compile(databaseid);\n\t\t\t\tnq.query.modifier = 'RECORDSET';\n\t\t\t\treturn nq;\n\t\t\t});\n\t\t}\n\t\tif (this.queries) {\n\t\t\tthis.queriesfn = this.queries.map(function (q) {\n\t\t\t\tvar nq = q.compile(databaseid);\n\t\t\t\tnq.query.modifier = 'RECORDSET';\n\t\t\t\treturn nq;\n\t\t\t});\n\t\t}\n\n\t\tself.values.forEach(function (values) {\n\t\t\tvar ss = [];\n\n\t\t\t//\t\t\ts += 'db.tables[\\''+tableid+'\\'].data.push({';\n\n\t\t\t//\t\t\ts += '';\n\t\t\tif (self.columns) {\n\t\t\t\tself.columns.forEach(function (col, idx) {\n\n\t\t\t\t\t//\t\t\tss.push(col.columnid +':'+ self.values[idx].value.toString());\n\n\t\t\t\t\t//\t\t\tif(rec[f.name.value] == \"NULL\") rec[f.name.value] = undefined;\n\n\t\t\t\t\t//\t\t\tif(table.xflds[f.name.value].dbtypeid == \"INT\") rec[f.name.value] = +rec[f.name.value]|0;\n\t\t\t\t\t//\t\t\telse if(table.xflds[f.name.value].dbtypeid == \"FLOAT\") rec[f.name.value] = +rec[f.name.value];\n\t\t\t\t\tvar q = \"'\" + col.columnid + \"':\";\n\t\t\t\t\tif (table.xcolumns && table.xcolumns[col.columnid]) {\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t['INT', 'FLOAT', 'NUMBER', 'MONEY'].indexOf(table.xcolumns[col.columnid].dbtypeid) >=\n\t\t\t\t\t\t\t0\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t//q += ''\n\t\t\t\t\t\t\tq += '(x=' + values[idx].toJS() + ',x==undefined?undefined:+x)';\n\t\t\t\t\t\t} else if (alasql.fn[table.xcolumns[col.columnid].dbtypeid]) {\n\t\t\t\t\t\t\tq += '(new ' + table.xcolumns[col.columnid].dbtypeid + '(';\n\t\t\t\t\t\t\tq += values[idx].toJS();\n\t\t\t\t\t\t\tq += '))';\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tq += values[idx].toJS();\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tq += values[idx].toJS();\n\t\t\t\t\t}\n\t\t\t\t\tss.push(q);\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\t//\t\t\t\tvar table = db.tables[tableid];\n\n\t\t\t\tif (Array.isArray(values) && table.columns && table.columns.length > 0) {\n\t\t\t\t\ttable.columns.forEach(function (col, idx) {\n\t\t\t\t\t\tvar q = \"'\" + col.columnid + \"':\";\n\t\t\t\t\t\t//\t\t\t\t\t\tvar val = values[idx].toJS();\n\n\t\t\t\t\t\tif (['INT', 'FLOAT', 'NUMBER', 'MONEY'].indexOf(col.dbtypeid) >= 0) {\n\t\t\t\t\t\t\tq += '+' + values[idx].toJS();\n\t\t\t\t\t\t} else if (alasql.fn[col.dbtypeid]) {\n\t\t\t\t\t\t\tq += '(new ' + col.dbtypeid + '(';\n\t\t\t\t\t\t\tq += values[idx].toJS();\n\t\t\t\t\t\t\tq += '))';\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tq += values[idx].toJS();\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tss.push(q);\n\n\t\t\t\t\t});\n\t\t\t\t} else {\n\n\t\t\t\t\t//\t\t\t\t\tsw = 'var w='+JSONtoJS(values)+';for(var k in w){r[k]=w[k]};';\n\t\t\t\t\tsw = JSONtoJS(values);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (db.tables[tableid].defaultfns) {\n\t\t\t\tss.unshift(db.tables[tableid].defaultfns);\n\t\t\t}\n\t\t\tif (sw) {\n\t\t\t\ts += 'a=' + sw + ';';\n\t\t\t} else {\n\t\t\t\ts += 'a={' + ss.join(',') + '};';\n\t\t\t}\n\n\t\t\t// If this is a class\n\t\t\tif (db.tables[tableid].isclass) {\n\t\t\t\ts += \"var db=alasql.databases['\" + databaseid + \"'];\";\n\t\t\t\ts += 'a.$class=\"' + tableid + '\";';\n\t\t\t\ts += 'a.$id=db.counter++;';\n\t\t\t\ts += 'db.objects[a.$id]=a;';\n\t\t\t}\n\t\t\t//\t\t\ts += 'db.tables[\\''+tableid+'\\'].insert(r);';\n\t\t\tif (db.tables[tableid].insert) {\n\t\t\t\ts += \"var db=alasql.databases['\" + databaseid + \"'];\";\n\t\t\t\ts += \"db.tables['\" + tableid + \"'].insert(a,\" + (self.orreplace ? 'true' : 'false') + ');';\n\t\t\t} else {\n\t\t\t\ts += 'aa.push(a);';\n\t\t\t}\n\t\t});\n\n\t\ts33 = s3 + s;\n\n\t\tif (db.tables[tableid].insert) {\n\t\t\t//\t\t\ts += 'alasql.databases[\\''+databaseid+'\\'].tables[\\''+tableid+'\\'].insert(r);';\n\t\t} else {\n\t\t\ts +=\n\t\t\t\t\"alasql.databases['\" +\n\t\t\t\tdatabaseid +\n\t\t\t\t\"'].tables['\" +\n\t\t\t\ttableid +\n\t\t\t\t\"'].data=\" +\n\t\t\t\t\"alasql.databases['\" +\n\t\t\t\tdatabaseid +\n\t\t\t\t\"'].tables['\" +\n\t\t\t\ttableid +\n\t\t\t\t\"'].data.concat(aa);\";\n\t\t}\n\n\t\tif (db.tables[tableid].insert) {\n\t\t\tif (db.tables[tableid].isclass) {\n\t\t\t\ts += 'return a.$id;';\n\t\t\t} else {\n\t\t\t\ts += 'return ' + self.values.length;\n\t\t\t}\n\t\t} else {\n\t\t\ts += 'return ' + self.values.length;\n\t\t}\n\n\t\tvar insertfn = new Function('db, params, alasql', 'var y;' + s3 + s).bind(this);\n\n\t\t// INSERT INTO table SELECT\n\t} else if (this.select) {\n\t\tthis.select.modifier = 'RECORDSET';\n\t\tif (this.queries) {\n\t\t\tthis.select.queries = this.queries;\n\t\t}\n\t\tvar selectfn = this.select.compile(databaseid);\n\t\tif (db.engineid && alasql.engines[db.engineid].intoTable) {\n\t\t\tvar statement = function (params, cb) {\n\t\t\t\tvar aa = selectfn(params);\n\t\t\t\tvar res = alasql.engines[db.engineid].intoTable(db.databaseid, tableid, aa.data, null, cb);\n\t\t\t\treturn res;\n\t\t\t};\n\t\t\treturn statement;\n\t\t} else {\n\n\t\t\tvar defaultfns = 'return alasql.utils.extend(r,{' + table.defaultfns + '})';\n\t\t\tvar defaultfn = new Function('r,db,params,alasql', defaultfns);\n\t\t\tvar insertfn = function (db, params, alasql) {\n\t\t\t\tvar res = selectfn(params).data;\n\t\t\t\tif (db.tables[tableid].insert) {\n\t\t\t\t\t// If insert() function exists (issue #92)\n\t\t\t\t\tfor (var i = 0, ilen = res.length; i < ilen; i++) {\n\t\t\t\t\t\tvar r = cloneDeep(res[i]);\n\t\t\t\t\t\tdefaultfn(r, db, params, alasql);\n\t\t\t\t\t\tdb.tables[tableid].insert(r, self.orreplace);\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tdb.tables[tableid].data = db.tables[tableid].data.concat(res);\n\t\t\t\t}\n\t\t\t\tif (alasql.options.nocount) return;\n\t\t\t\telse return res.length;\n\t\t\t};\n\t\t}\n\t} else if (this.default) {\n\t\tvar insertfns = \"db.tables['\" + tableid + \"'].data.push({\" + table.defaultfns + '});return 1;';\n\t\tvar insertfn = new Function('db,params,alasql', insertfns);\n\t} else {\n\t\tthrow new Error('Wrong INSERT parameters');\n\t}\n\n\tif (db.engineid && alasql.engines[db.engineid].intoTable && alasql.options.autocommit) {\n\t\tvar statement = function (params, cb) {\n\t\t\tvar aa = new Function('db,params', 'var y;' + s33 + 'return aa;')(db, params);\n\n\t\t\tvar res = alasql.engines[db.engineid].intoTable(db.databaseid, tableid, aa, null, cb);\n\t\t\t//\t\t\tif(cb) cb(res);\n\t\t\treturn res;\n\t\t};\n\t} else {\n\t\tvar statement = function (params, cb) {\n\n\t\t\tvar db = alasql.databases[databaseid];\n\n\t\t\tif (alasql.options.autocommit && db.engineid) {\n\t\t\t\talasql.engines[db.engineid].loadTableData(databaseid, tableid);\n\t\t\t}\n\n\t\t\tvar res = insertfn(db, params, alasql);\n\n\t\t\tif (alasql.options.autocommit && db.engineid) {\n\t\t\t\talasql.engines[db.engineid].saveTableData(databaseid, tableid);\n\t\t\t}\n\t\t\t//\t\tvar res = insertfn(db, params);\n\t\t\tif (alasql.options.nocount) res = undefined;\n\t\t\tif (cb) cb(res);\n\t\t\treturn res;\n\t\t};\n\t}\n\n\treturn statement;\n};\n\nyy.Insert.prototype.execute = function (databaseid, params, cb) {\n\treturn this.compile(databaseid)(params, cb);\n\t//\tthrow new Error('Insert statement is should be compiled')\n};\n/*\n//\n// TRIGGER for Alasql.js\n// Date: 29.12.2015\n//\n*/\n\nyy.CreateTrigger = function (params) {\n\treturn Object.assign(this, params);\n};\nyy.CreateTrigger.prototype.toString = function () {\n\tvar s = 'CREATE TRIGGER ' + this.trigger + ' ';\n\tif (this.when) s += this.when + ' ';\n\ts += this.action + ' ON ';\n\tif (this.table.databaseid) s += this.table.databaseid + '.';\n\ts += this.table.tableid + ' ';\n\ts += this.statement.toString();\n\treturn s;\n};\n\nyy.CreateTrigger.prototype.execute = function (databaseid, params, cb) {\n\tvar res = 1; // No tables removed\n\tvar triggerid = this.trigger;\n\tdatabaseid = this.table.databaseid || databaseid;\n\tvar db = alasql.databases[databaseid];\n\tvar tableid = this.table.tableid;\n\n\tvar trigger = {\n\t\taction: this.action,\n\t\twhen: this.when,\n\t\tstatement: this.statement,\n\t\tfuncid: this.funcid,\n\t\ttableid: this.table.tableid,\n\t};\n\n\tdb.triggers[triggerid] = trigger;\n\tif (trigger.action == 'INSERT' && trigger.when == 'BEFORE') {\n\t\tdb.tables[tableid].beforeinsert[triggerid] = trigger;\n\t} else if (trigger.action == 'INSERT' && trigger.when == 'AFTER') {\n\t\tdb.tables[tableid].afterinsert[triggerid] = trigger;\n\t} else if (trigger.action == 'INSERT' && trigger.when == 'INSTEADOF') {\n\t\tdb.tables[tableid].insteadofinsert[triggerid] = trigger;\n\t} else if (trigger.action == 'DELETE' && trigger.when == 'BEFORE') {\n\t\tdb.tables[tableid].beforedelete[triggerid] = trigger;\n\t} else if (trigger.action == 'DELETE' && trigger.when == 'AFTER') {\n\t\tdb.tables[tableid].afterdelete[triggerid] = trigger;\n\t} else if (trigger.action == 'DELETE' && trigger.when == 'INSTEADOF') {\n\t\tdb.tables[tableid].insteadofdelete[triggerid] = trigger;\n\t} else if (trigger.action == 'UPDATE' && trigger.when == 'BEFORE') {\n\t\tdb.tables[tableid].beforeupdate[triggerid] = trigger;\n\t} else if (trigger.action == 'UPDATE' && trigger.when == 'AFTER') {\n\t\tdb.tables[tableid].afterupdate[triggerid] = trigger;\n\t} else if (trigger.action == 'UPDATE' && trigger.when == 'INSTEADOF') {\n\t\tdb.tables[tableid].insteadofupdate[triggerid] = trigger;\n\t}\n\n\tif (cb) res = cb(res);\n\treturn res;\n};\n\nyy.DropTrigger = function (params) {\n\treturn Object.assign(this, params);\n};\nyy.DropTrigger.prototype.toString = function () {\n\tvar s = 'DROP TRIGGER ' + this.trigger;\n\treturn s;\n};\n\n/**\n\tDrop trigger\n\t@param {string} databaseid Database id\n\t@param {object} params Parameters\n\t@param {callback} cb Callback function\n\t@return Number of dropped triggers\n\t@example\n\tDROP TRIGGER one;\n*/\nyy.DropTrigger.prototype.execute = function (databaseid, params, cb) {\n\tvar res = 0; // No tables removed\n\tvar db = alasql.databases[databaseid];\n\tvar triggerid = this.trigger;\n\n\t// get the trigger\n\tvar trigger = db.triggers[triggerid];\n\n\t// if the trigger exists\n\tif (trigger) {\n\t\tvar tableid = db.triggers[triggerid].tableid;\n\n\t\tif (tableid) {\n\t\t\tres = 1;\n\t\t\tdelete db.tables[tableid].beforeinsert[triggerid];\n\t\t\tdelete db.tables[tableid].afterinsert[triggerid];\n\t\t\tdelete db.tables[tableid].insteadofinsert[triggerid];\n\t\t\tdelete db.tables[tableid].beforedelete[triggerid];\n\t\t\tdelete db.tables[tableid].afterdelete[triggerid];\n\t\t\tdelete db.tables[tableid].insteadofdelete[triggerid];\n\t\t\tdelete db.tables[tableid].beforeupdate[triggerid];\n\t\t\tdelete db.tables[tableid].afterupdate[triggerid];\n\t\t\tdelete db.tables[tableid].insteadofupdate[triggerid];\n\t\t\tdelete db.triggers[triggerid];\n\t\t} else {\n\t\t\tthrow new Error('Trigger Table not found');\n\t\t}\n\t} else {\n\t\tthrow new Error('Trigger not found');\n\t}\n\tif (cb) res = cb(res);\n\treturn res;\n};\n/*\n//\n// DELETE for Alasql.js\n// Date: 03.11.2014\n// (c) 2014, Andrey Gershun\n//\n*/\n\nyy.Delete = function (params) {\n\treturn Object.assign(this, params);\n};\nyy.Delete.prototype.toString = function () {\n\tvar s = 'DELETE FROM ' + this.table.toString();\n\tif (this.where) s += ' WHERE ' + this.where.toString();\n\treturn s;\n};\n\nyy.Delete.prototype.compile = function (databaseid) {\n\n\tdatabaseid = this.table.databaseid || databaseid;\n\tvar tableid = this.table.tableid;\n\tvar statement;\n\tvar db = alasql.databases[databaseid];\n\n\tif (this.where) {\n\n\t\t//\t\tthis.query = {};\n\n\t\tif (this.exists) {\n\t\t\tthis.existsfn = this.exists.map(function (ex) {\n\t\t\t\tvar nq = ex.compile(databaseid);\n\t\t\t\tnq.query.modifier = 'RECORDSET';\n\t\t\t\treturn nq;\n\t\t\t});\n\t\t}\n\t\tif (this.queries) {\n\t\t\tthis.queriesfn = this.queries.map(function (q) {\n\t\t\t\tvar nq = q.compile(databaseid);\n\t\t\t\tnq.query.modifier = 'RECORDSET';\n\t\t\t\treturn nq;\n\t\t\t});\n\t\t}\n\n\t\t//\t\ttry {\n\n\t\t//\t\tvar query = {};\n\n\t\tvar wherefn = new Function(\n\t\t\t'r,params,alasql',\n\t\t\t'var y;return (' + this.where.toJS('r', '') + ')'\n\t\t).bind(this);\n\n\t\tstatement = function (params, cb) {\n\t\t\tif (db.engineid && alasql.engines[db.engineid].deleteFromTable) {\n\t\t\t\treturn alasql.engines[db.engineid].deleteFromTable(\n\t\t\t\t\tdatabaseid,\n\t\t\t\t\ttableid,\n\t\t\t\t\twherefn,\n\t\t\t\t\tparams,\n\t\t\t\t\tcb\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tif (\n\t\t\t\talasql.options.autocommit &&\n\t\t\t\tdb.engineid &&\n\t\t\t\t(db.engineid == 'LOCALSTORAGE' || db.engineid == 'FILESTORAGE')\n\t\t\t) {\n\t\t\t\talasql.engines[db.engineid].loadTableData(databaseid, tableid);\n\t\t\t}\n\n\t\t\tvar table = db.tables[tableid];\n\t\t\t//\t\t\ttable.dirty = true;\n\t\t\tvar orignum = table.data.length;\n\n\t\t\tvar newtable = [];\n\t\t\tfor (var i = 0, ilen = table.data.length; i < ilen; i++) {\n\t\t\t\tif (wherefn(table.data[i], params, alasql)) {\n\t\t\t\t\t// Check for transaction - if it is not possible then return all back\n\t\t\t\t\tif (table.delete) {\n\t\t\t\t\t\ttable.delete(i, params, alasql);\n\t\t\t\t\t} else {\n\t\t\t\t\t\t// Simply do not push\n\t\t\t\t\t}\n\t\t\t\t} else newtable.push(table.data[i]);\n\t\t\t}\n\t\t\t//\t\t\ttable.data = table.data.filter(function(r){return !;});\n\t\t\ttable.data = newtable;\n\n\t\t\t// Trigger prevent functionality\n\t\t\tfor (var tr in table.afterdelete) {\n\t\t\t\tvar trigger = table.afterdelete[tr];\n\t\t\t\tif (trigger) {\n\t\t\t\t\tif (trigger.funcid) {\n\t\t\t\t\t\talasql.fn[trigger.funcid]();\n\t\t\t\t\t} else if (trigger.statement) {\n\t\t\t\t\t\ttrigger.statement.execute(databaseid);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tvar res = orignum - table.data.length;\n\t\t\tif (\n\t\t\t\talasql.options.autocommit &&\n\t\t\t\tdb.engineid &&\n\t\t\t\t(db.engineid == 'LOCALSTORAGE' || db.engineid == 'FILESTORAGE')\n\t\t\t) {\n\t\t\t\talasql.engines[db.engineid].saveTableData(databaseid, tableid);\n\t\t\t}\n\n\t\t\tif (cb) cb(res);\n\t\t\treturn res;\n\t\t};\n\t\t// .bind(query);\n\n\t\t// \t\tif(!this.queries) return;\n\t\t// \t\t\tquery.queriesfn = this.queries.map(function(q) {\n\t\t// \t\t\treturn q.compile(alasql.useid);\n\t\t// \t\t});\n\t} else {\n\t\tstatement = function (params, cb) {\n\t\t\tif (alasql.options.autocommit && db.engineid) {\n\t\t\t\talasql.engines[db.engineid].loadTableData(databaseid, tableid);\n\t\t\t}\n\n\t\t\tvar table = db.tables[tableid];\n\t\t\ttable.dirty = true;\n\t\t\tvar orignum = db.tables[tableid].data.length;\n\t\t\t//table.deleteall();\n\t\t\t// Delete all records from the array\n\t\t\tdb.tables[tableid].data.length = 0;\n\n\t\t\t// Reset PRIMARY KEY and indexes\n\t\t\tfor (var ix in db.tables[tableid].uniqs) {\n\t\t\t\tdb.tables[tableid].uniqs[ix] = {};\n\t\t\t}\n\n\t\t\tfor (var ix in db.tables[tableid].indices) {\n\t\t\t\tdb.tables[tableid].indices[ix] = {};\n\t\t\t}\n\n\t\t\tif (alasql.options.autocommit && db.engineid) {\n\t\t\t\talasql.engines[db.engineid].saveTableData(databaseid, tableid);\n\t\t\t}\n\n\t\t\tif (cb) cb(orignum);\n\t\t\treturn orignum;\n\t\t};\n\t}\n\n\treturn statement;\n};\n\nyy.Delete.prototype.execute = function (databaseid, params, cb) {\n\treturn this.compile(databaseid)(params, cb);\n};\n/*\n//\n// UPDATE for Alasql.js\n// Date: 03.11.2014\n// (c) 2014, Andrey Gershun\n//\n*/\n\n/* global yy alasql */\n\nyy.Update = function (params) {\n\treturn Object.assign(this, params);\n};\nyy.Update.prototype.toString = function () {\n\tvar s = 'UPDATE ' + this.table.toString();\n\tif (this.columns) s += ' SET ' + this.columns.toString();\n\tif (this.where) s += ' WHERE ' + this.where.toString();\n\treturn s;\n};\n\nyy.SetColumn = function (params) {\n\treturn Object.assign(this, params);\n};\nyy.SetColumn.prototype.toString = function () {\n\treturn this.column.toString() + '=' + this.expression.toString();\n};\n\nyy.Update.prototype.compile = function (databaseid) {\n\n\tdatabaseid = this.table.databaseid || databaseid;\n\tvar tableid = this.table.tableid;\n\n\tif (this.where) {\n\t\tif (this.exists) {\n\t\t\tthis.existsfn = this.exists.map(function (ex) {\n\t\t\t\tvar nq = ex.compile(databaseid);\n\t\t\t\tnq.query.modifier = 'RECORDSET';\n\t\t\t\treturn nq;\n\t\t\t});\n\t\t}\n\t\tif (this.queries) {\n\t\t\tthis.queriesfn = this.queries.map(function (q) {\n\t\t\t\tvar nq = q.compile(databaseid);\n\t\t\t\tnq.query.modifier = 'RECORDSET';\n\t\t\t\treturn nq;\n\t\t\t});\n\t\t}\n\n\t\tvar wherefn = new Function('r,params,alasql', 'var y;return ' + this.where.toJS('r', '')).bind(\n\t\t\tthis\n\t\t);\n\t}\n\n\t// Construct update function\n\tvar s = alasql.databases[databaseid].tables[tableid].onupdatefns || '';\n\ts += ';';\n\tthis.columns.forEach(function (col) {\n\t\ts += \"r['\" + col.column.columnid + \"']=\" + col.expression.toJS('r', '') + ';';\n\t});\n\n\tvar assignfn = new Function('r,params,alasql', 'var y;' + s);\n\n\tvar statement = function (params, cb) {\n\t\tvar db = alasql.databases[databaseid];\n\n\t\tif (db.engineid && alasql.engines[db.engineid].updateTable) {\n\n\t\t\treturn alasql.engines[db.engineid].updateTable(\n\t\t\t\tdatabaseid,\n\t\t\t\ttableid,\n\t\t\t\tassignfn,\n\t\t\t\twherefn,\n\t\t\t\tparams,\n\t\t\t\tcb\n\t\t\t);\n\t\t}\n\n\t\tif (alasql.options.autocommit && db.engineid) {\n\t\t\talasql.engines[db.engineid].loadTableData(databaseid, tableid);\n\t\t}\n\n\t\tvar table = db.tables[tableid];\n\t\tif (!table) {\n\t\t\tthrow new Error(\"Table '\" + tableid + \"' not exists\");\n\t\t}\n\t\t//\t\ttable.dirty = true;\n\t\tvar numrows = 0;\n\t\tfor (var i = 0, ilen = table.data.length; i < ilen; i++) {\n\t\t\tif (!wherefn || wherefn(table.data[i], params, alasql)) {\n\t\t\t\tif (table.update) {\n\t\t\t\t\ttable.update(assignfn, i, params);\n\t\t\t\t} else {\n\t\t\t\t\tassignfn(table.data[i], params, alasql);\n\t\t\t\t}\n\t\t\t\tnumrows++;\n\t\t\t}\n\t\t}\n\n\t\tif (alasql.options.autocommit && db.engineid) {\n\t\t\talasql.engines[db.engineid].saveTableData(databaseid, tableid);\n\t\t}\n\n\t\tif (cb) cb(numrows);\n\t\treturn numrows;\n\t};\n\treturn statement;\n};\n\nyy.Update.prototype.execute = function (databaseid, params, cb) {\n\treturn this.compile(databaseid)(params, cb);\n};\n/*\n//\n// SET for Alasql.js\n// Date: 01.12.2014\n// (c) 2014, Andrey Gershun\n//\n*/\n\n/* global alasql, yy */\n\nyy.Merge = function (params) {\n\treturn Object.assign(this, params);\n};\nyy.Merge.prototype.toString = function () {\n\tvar s = 'MERGE ';\n\ts += this.into.tableid + ' ';\n\tif (this.into.as) s += 'AS ' + this.into.as + ' ';\n\ts += 'USING ' + this.using.tableid + ' ';\n\tif (this.using.as) s += 'AS ' + this.using.as + ' ';\n\ts += 'ON ' + this.on.toString() + ' ';\n\tthis.matches.forEach(function (m) {\n\t\ts += 'WHEN ';\n\t\tif (!m.matched) s += 'NOT ';\n\t\ts += 'MATCHED ';\n\t\tif (m.bytarget) s += 'BY TARGET ';\n\t\tif (m.bysource) s += 'BY SOURCE ';\n\t\tif (m.expr) s += 'AND' + ' ' + m.expr.toString() + ' ';\n\t\ts += 'THEN ';\n\t\tif (m.action.delete) s += 'DELETE ';\n\t\tif (m.action.insert) {\n\t\t\ts += 'INSERT ';\n\t\t\tif (m.action.columns) s += '(' + m.action.columns.toString() + ') ';\n\t\t\tif (m.action.values) s += 'VALUES (' + m.action.values.toString() + ') ';\n\t\t\tif (m.action.defaultvalues) s += 'DEFAULT VALUES ';\n\t\t}\n\t\tif (m.action.update) {\n\t\t\ts += 'UPDATE ';\n\t\t\ts +=\n\t\t\t\tm.action.update\n\t\t\t\t\t.map(function (u) {\n\t\t\t\t\t\treturn u.toString();\n\t\t\t\t\t})\n\t\t\t\t\t.join(',') + ' ';\n\t\t}\n\t});\n\n\treturn s;\n};\n\nyy.Merge.prototype.execute = function (databaseid, params, cb) {\n\tvar res = 1;\n\n\tif (cb) res = cb(res);\n\treturn res;\n};\n/*\n//\n// UPDATE for Alasql.js\n// Date: 03.11.2014\n// Modified: 16.11.2014\n// (c) 2014, Andrey Gershun\n//\n*/\n\n/* global yy alasql */\n\n// CREATE DATABASE databaseid\nyy.CreateDatabase = function (params) {\n\treturn Object.assign(this, params);\n};\nyy.CreateDatabase.prototype.toString = function () {\n\tvar s = 'CREATE';\n\tif (this.engineid) s += ' ' + this.engineid;\n\ts += ' DATABASE';\n\tif (this.ifnotexists) s += ' IF NOT EXISTS';\n\ts += ' ' + this.databaseid;\n\tif (this.args && this.args.length > 0) {\n\t\ts +=\n\t\t\t'(' +\n\t\t\tthis.args\n\t\t\t\t.map(function (arg) {\n\t\t\t\t\treturn arg.toString();\n\t\t\t\t})\n\t\t\t\t.join(', ') +\n\t\t\t')';\n\t}\n\tif (this.as) s += ' AS ' + this.as;\n\treturn s;\n};\n//yy.CreateDatabase.prototype.compile = returnUndefined;\nyy.CreateDatabase.prototype.execute = function (databaseid, params, cb) {\n\tvar args;\n\tif (this.args && this.args.length > 0) {\n\t\targs = this.args.map(function (arg) {\n\n\t\t\treturn new Function('params,alasql', 'var y;return ' + arg.toJS())(params, alasql);\n\t\t});\n\t}\n\tif (this.engineid) {\n\t\tvar res = alasql.engines[this.engineid].createDatabase(\n\t\t\tthis.databaseid,\n\t\t\tthis.args,\n\t\t\tthis.ifnotexists,\n\t\t\tthis.as,\n\t\t\tcb\n\t\t);\n\t\treturn res;\n\t} else {\n\t\tvar dbid = this.databaseid;\n\t\tif (alasql.databases[dbid]) {\n\t\t\tthrow new Error(\"Database '\" + dbid + \"' already exists\");\n\t\t}\n\t\tvar a = new alasql.Database(dbid);\n\t\tvar res = 1;\n\t\tif (cb) return cb(res);\n\t\treturn res;\n\t}\n};\n\n// CREATE DATABASE databaseid\nyy.AttachDatabase = function (params) {\n\treturn Object.assign(this, params);\n};\nyy.AttachDatabase.prototype.toString = function (args) {\n\tvar s = 'ATTACH';\n\tif (this.engineid) s += ' ' + this.engineid;\n\ts += ' DATABASE' + ' ' + this.databaseid;\n\t// TODO add params\n\tif (args) {\n\t\ts += '(';\n\t\tif (args.length > 0) {\n\t\t\ts += args\n\t\t\t\t.map(function (arg) {\n\t\t\t\t\treturn arg.toString();\n\t\t\t\t})\n\t\t\t\t.join(', ');\n\t\t}\n\t\ts += ')';\n\t}\n\tif (this.as) s += ' AS' + ' ' + this.as;\n\treturn s;\n};\n//yy.CreateDatabase.prototype.compile = returnUndefined;\nyy.AttachDatabase.prototype.execute = function (databaseid, params, cb) {\n\tif (!alasql.engines[this.engineid]) {\n\t\tthrow new Error('Engine \"' + this.engineid + '\" is not defined.');\n\t}\n\tvar res = alasql.engines[this.engineid].attachDatabase(\n\t\tthis.databaseid,\n\t\tthis.as,\n\t\tthis.args,\n\t\tparams,\n\t\tcb\n\t);\n\treturn res;\n};\n\n// CREATE DATABASE databaseid\nyy.DetachDatabase = function (params) {\n\treturn Object.assign(this, params);\n};\nyy.DetachDatabase.prototype.toString = function () {\n\tvar s = 'DETACH';\n\ts += ' DATABASE' + ' ' + this.databaseid;\n\treturn s;\n};\n//yy.CreateDatabase.prototype.compile = returnUndefined;\nyy.DetachDatabase.prototype.execute = function (databaseid, params, cb) {\n\tif (!alasql.databases[this.databaseid].engineid) {\n\t\tthrow new Error('Cannot detach database \"' + this.engineid + '\", because it was not attached.');\n\t}\n\tvar res;\n\n\tvar dbid = this.databaseid;\n\n\tif (dbid === alasql.DEFAULTDATABASEID) {\n\t\tthrow new Error('Drop of default database is prohibited');\n\t}\n\n\tif (!alasql.databases[dbid]) {\n\t\tif (!this.ifexists) {\n\t\t\tthrow new Error(\"Database '\" + dbid + \"' does not exist\");\n\t\t} else {\n\t\t\tres = 0;\n\t\t}\n\t} else {\n\t\t// Usually databases are detached and then dropped. Detaching will delete\n\t\t// the database object from memory. While this is OK for in-memory and\n\t\t// other persistent databases, for FileStorage DBs, we will\n\t\t// not be able to delete the DB file (.json) since we would have lost\n\t\t// the filename by deleting the in-memory database object here.\n\t\t// For this reason, to delete the associated JSON file,\n\t\t// keeping the name of the file alone as a property inside the db object\n\t\t// until it gets DROPped subsequently (only for FileStorage DBs)\n\t\tvar isFS = alasql.databases[dbid].engineid && alasql.databases[dbid].engineid == 'FILESTORAGE',\n\t\t\tfilename = alasql.databases[dbid].filename || '';\n\n\t\tdelete alasql.databases[dbid];\n\n\t\tif (isFS) {\n\t\t\t// Create a detached FS database\n\t\t\talasql.databases[dbid] = {};\n\t\t\talasql.databases[dbid].isDetached = true;\n\t\t\talasql.databases[dbid].filename = filename;\n\t\t}\n\n\t\tif (dbid === alasql.useid) {\n\t\t\talasql.use();\n\t\t}\n\t\tres = 1;\n\t}\n\tif (cb) cb(res);\n\treturn res;\n\t//\tvar res = alasql.engines[this.engineid].attachDatabase(this.databaseid, this.as, cb);\n\t//\treturn res;\n};\n\n// USE DATABSE databaseid\n// USE databaseid\nyy.UseDatabase = function (params) {\n\treturn Object.assign(this, params);\n};\nyy.UseDatabase.prototype.toString = function () {\n\treturn 'USE' + ' ' + 'DATABASE' + ' ' + this.databaseid;\n};\n//yy.UseDatabase.prototype.compile = returnUndefined;\nyy.UseDatabase.prototype.execute = function (databaseid, params, cb) {\n\tvar dbid = this.databaseid;\n\tif (!alasql.databases[dbid]) {\n\t\tthrow new Error(\"Database '\" + dbid + \"' does not exist\");\n\t}\n\talasql.use(dbid);\n\tvar res = 1;\n\tif (cb) cb(res);\n\treturn res;\n};\n\n// DROP DATABASE databaseid\nyy.DropDatabase = function (params) {\n\treturn Object.assign(this, params);\n};\nyy.DropDatabase.prototype.toString = function () {\n\tvar s = 'DROP';\n\tif (this.ifexists) s += ' IF EXISTS';\n\ts += ' DATABASE ' + this.databaseid;\n\treturn s;\n};\n//yy.DropDatabase.prototype.compile = returnUndefined;\nyy.DropDatabase.prototype.execute = function (databaseid, params, cb) {\n\tif (this.engineid) {\n\t\treturn alasql.engines[this.engineid].dropDatabase(this.databaseid, this.ifexists, cb);\n\t}\n\tvar res;\n\n\tvar dbid = this.databaseid;\n\n\tif (dbid === alasql.DEFAULTDATABASEID) {\n\t\tthrow new Error('Drop of default database is prohibited');\n\t}\n\tif (!alasql.databases[dbid]) {\n\t\tif (!this.ifexists) {\n\t\t\tthrow new Error(\"Database '\" + dbid + \"' does not exist\");\n\t\t} else {\n\t\t\tres = 0;\n\t\t}\n\t} else {\n\t\tif (alasql.databases[dbid].engineid) {\n\t\t\tthrow new Error(\"Cannot drop database '\" + dbid + \"', because it is attached. Detach it.\");\n\t\t}\n\n\t\tdelete alasql.databases[dbid];\n\t\tif (dbid === alasql.useid) {\n\t\t\talasql.use();\n\t\t}\n\t\tres = 1;\n\t}\n\tif (cb) cb(res);\n\treturn res;\n};\n/*\n//\n// SET for Alasql.js\n// Date: 01.12.2014\n// (c) 2014, Andrey Gershun\n//\n*/\n\nyy.Declare = function (params) {\n\treturn Object.assign(this, params);\n};\nyy.Declare.prototype.toString = function () {\n\tvar s = 'DECLARE ';\n\tif (this.declares && this.declares.length > 0) {\n\t\ts = this.declares\n\t\t\t.map(function (declare) {\n\t\t\t\tvar s = '';\n\t\t\t\ts += '@' + declare.variable + ' ';\n\t\t\t\ts += declare.dbtypeid;\n\t\t\t\tif (this.dbsize) {\n\t\t\t\t\ts += '(' + this.dbsize;\n\t\t\t\t\tif (this.dbprecision) {\n\t\t\t\t\t\ts += ',' + this.dbprecision;\n\t\t\t\t\t}\n\t\t\t\t\ts += ')';\n\t\t\t\t}\n\t\t\t\tif (declare.expression) {\n\t\t\t\t\ts += ' = ' + declare.expression.toString();\n\t\t\t\t}\n\t\t\t\treturn s;\n\t\t\t})\n\t\t\t.join(',');\n\t}\n\treturn s;\n};\n\nyy.Declare.prototype.execute = function (databaseid, params, cb) {\n\tvar res = 1;\n\tvar that = this; // without this assigned to a variable, inside the forEach, the reference to `this` is lost. It is needed for the Function statement for binding\n\tif (that.declares && that.declares.length > 0) {\n\t\tthat.declares.forEach(function (declare) {\n\t\t\tvar dbtypeid = declare.dbtypeid;\n\t\t\tif (!alasql.fn[dbtypeid]) {\n\t\t\t\tdbtypeid = dbtypeid.toUpperCase();\n\t\t\t}\n\t\t\talasql.declares[declare.variable] = {\n\t\t\t\tdbtypeid: dbtypeid,\n\t\t\t\tdbsize: declare.dbsize,\n\t\t\t\tdbprecision: declare.dbprecision,\n\t\t\t};\n\n\t\t\t// Set value\n\t\t\tif (declare.expression) {\n\n\t\t\t\talasql.vars[declare.variable] = new Function(\n\t\t\t\t\t'params,alasql',\n\t\t\t\t\t'return ' + declare.expression.toJS('({})', '', null)\n\t\t\t\t).bind(that)(params, alasql);\n\t\t\t\tif (alasql.declares[declare.variable]) {\n\t\t\t\t\talasql.vars[declare.variable] = alasql.stdfn.CONVERT(\n\t\t\t\t\t\talasql.vars[declare.variable],\n\t\t\t\t\t\talasql.declares[declare.variable]\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t}\n\tif (cb) {\n\t\tres = cb(res);\n\t}\n\treturn res;\n};\n/*\n//\n// SHOW for Alasql.js\n// Date: 19.11.2014\n// (c) 2014, Andrey Gershun\n//\n*/\n\nyy.ShowDatabases = function (params) {\n\treturn Object.assign(this, params);\n};\nyy.ShowDatabases.prototype.toString = function () {\n\tvar s = 'SHOW DATABASES';\n\tif (this.like) s += 'LIKE ' + this.like.toString();\n\treturn s;\n};\nyy.ShowDatabases.prototype.execute = function (databaseid, params, cb) {\n\tif (this.engineid) {\n\t\treturn alasql.engines[this.engineid].showDatabases(this.like, cb);\n\t} else {\n\t\tvar self = this;\n\t\tvar res = [];\n\t\tfor (var dbid in alasql.databases) {\n\t\t\tres.push({databaseid: dbid});\n\t\t}\n\t\tif (self.like && res && res.length > 0) {\n\t\t\tres = res.filter(function (d) {\n\t\t\t\t//\t\t\t\treturn d.databaseid.match(new RegExp((self.like.value||'').replace(/\\%/g,'.*').replace(/\\?|_/g,'.'),'g'));\n\t\t\t\treturn alasql.utils.like(self.like.value, d.databaseid);\n\t\t\t});\n\t\t}\n\t\tif (cb) cb(res);\n\t\treturn res;\n\t}\n};\n\nyy.ShowTables = function (params) {\n\treturn Object.assign(this, params);\n};\nyy.ShowTables.prototype.toString = function () {\n\tvar s = 'SHOW TABLES';\n\tif (this.databaseid) s += ' FROM ' + this.databaseid;\n\tif (this.like) s += ' LIKE ' + this.like.toString();\n\treturn s;\n};\nyy.ShowTables.prototype.execute = function (databaseid, params, cb) {\n\tvar db = alasql.databases[this.databaseid || databaseid];\n\n\tvar self = this;\n\tvar res = [];\n\tfor (var tableid in db.tables) {\n\t\tres.push({tableid: tableid});\n\t}\n\tif (self.like && res && res.length > 0) {\n\t\tres = res.filter(function (d) {\n\t\t\t//return d.tableid.match(new RegExp((self.like.value||'').replace(/\\%/g,'.*').replace(/\\?|_/g,'.'),'g'));\n\t\t\treturn alasql.utils.like(self.like.value, d.tableid);\n\t\t});\n\t}\n\tif (cb) cb(res);\n\treturn res;\n};\n\nyy.ShowColumns = function (params) {\n\treturn Object.assign(this, params);\n};\nyy.ShowColumns.prototype.toString = function () {\n\tvar s = 'SHOW COLUMNS';\n\tif (this.table.tableid) s += ' FROM ' + this.table.tableid;\n\tif (this.databaseid) s += ' FROM ' + this.databaseid;\n\treturn s;\n};\n\nyy.ShowColumns.prototype.execute = function (databaseid, params, cb) {\n\tvar db = alasql.databases[this.databaseid || databaseid];\n\tvar table = db.tables[this.table.tableid];\n\n\tif (table && table.columns) {\n\t\tvar res = table.columns.map(function (col) {\n\t\t\treturn {\n\t\t\t\tcolumnid: col.columnid,\n\t\t\t\tdbtypeid: col.dbtypeid,\n\t\t\t\tdbsize: col.dbsize,\n\t\t\t};\n\t\t});\n\t\tif (cb) cb(res);\n\t\treturn res;\n\t} else {\n\t\tif (cb) cb([]);\n\t\treturn [];\n\t}\n};\n\nyy.ShowIndex = function (params) {\n\treturn Object.assign(this, params);\n};\nyy.ShowIndex.prototype.toString = function () {\n\tvar s = 'SHOW INDEX';\n\tif (this.table.tableid) s += ' FROM ' + this.table.tableid;\n\tif (this.databaseid) s += ' FROM ' + this.databaseid;\n\treturn s;\n};\nyy.ShowIndex.prototype.execute = function (databaseid, params, cb) {\n\tvar db = alasql.databases[this.databaseid || databaseid];\n\tvar table = db.tables[this.table.tableid];\n\tvar res = [];\n\tif (table && table.indices) {\n\t\tfor (var ind in table.indices) {\n\t\t\tres.push({hh: ind, len: Object.keys(table.indices[ind]).length});\n\t\t}\n\t}\n\n\tif (cb) cb(res);\n\treturn res;\n};\n\nyy.ShowCreateTable = function (params) {\n\treturn Object.assign(this, params);\n};\nyy.ShowCreateTable.prototype.toString = function () {\n\tvar s = 'SHOW CREATE TABLE ' + this.table.tableid;\n\tif (this.databaseid) s += ' FROM ' + this.databaseid;\n\treturn s;\n};\nyy.ShowCreateTable.prototype.execute = function (databaseid) {\n\tvar db = alasql.databases[this.databaseid || databaseid];\n\tvar table = db.tables[this.table.tableid];\n\tif (table) {\n\t\tvar s = 'CREATE TABLE ' + this.table.tableid + ' (';\n\t\tvar ss = [];\n\t\tif (table.columns) {\n\t\t\ttable.columns.forEach(function (col) {\n\t\t\t\tvar a = col.columnid + ' ' + col.dbtypeid;\n\t\t\t\tif (col.dbsize) a += '(' + col.dbsize + ')';\n\t\t\t\tif (col.primarykey) a += ' PRIMARY KEY';\n\t\t\t\t// TODO extend\n\t\t\t\tss.push(a);\n\t\t\t});\n\t\t\ts += ss.join(', ');\n\t\t}\n\t\ts += ')';\n\t\treturn s;\n\t} else {\n\t\tthrow new Error('There is no such table \"' + this.table.tableid + '\"');\n\t}\n};\n/*\n//\n// SET for Alasql.js\n// Date: 01.12.2014\n// (c) 2014, Andrey Gershun\n//\n*/\n\nyy.SetVariable = function (params) {\n\treturn Object.assign(this, params);\n};\nyy.SetVariable.prototype.toString = function () {\n\tvar s = 'SET ';\n\tif (typeof this.value != 'undefined')\n\t\ts += this.variable.toUpperCase() + ' ' + (this.value ? 'ON' : 'OFF');\n\tif (this.expression) s += this.method + this.variable + ' = ' + this.expression.toString();\n\treturn s;\n};\n\nyy.SetVariable.prototype.execute = function (databaseid, params, cb) {\n\n\tif (typeof this.value != 'undefined') {\n\t\tvar val = this.value;\n\t\tif (val == 'ON') val = true;\n\t\telse if (val == 'OFF') val = false;\n\t\t//\t\tif(this.method == '@') {\n\t\talasql.options[this.variable] = val;\n\t\t//\t\t} else {\n\t\t//\t\t\tparams[this.variable] = val;\n\t\t//\t\t}\n\t} else if (this.expression) {\n\t\tif (this.exists) {\n\t\t\tthis.existsfn = this.exists.map(function (ex) {\n\t\t\t\tvar nq = ex.compile(databaseid);\n\t\t\t\tif (nq.query && !nq.query.modifier) nq.query.modifier = 'RECORDSET';\n\t\t\t\treturn nq;\n\t\t\t\t//\t\t\t\treturn ex.compile(databaseid);\n\t\t\t\t// TODO Include modifier\n\t\t\t});\n\t\t}\n\t\tif (this.queries) {\n\t\t\tthis.queriesfn = this.queries.map(function (q) {\n\t\t\t\tvar nq = q.compile(databaseid);\n\t\t\t\tif (nq.query && !nq.query.modifier) nq.query.modifier = 'RECORDSET';\n\t\t\t\treturn nq;\n\t\t\t\t// TODO Include modifier\n\t\t\t});\n\t\t}\n\n\t\tvar res = new Function(\n\t\t\t'params,alasql',\n\t\t\t'return ' + this.expression.toJS('({})', '', null)\n\t\t).bind(this)(params, alasql);\n\t\tif (alasql.declares[this.variable]) {\n\t\t\tres = alasql.stdfn.CONVERT(res, alasql.declares[this.variable]);\n\t\t}\n\t\tif (this.props && this.props.length > 0) {\n\t\t\tif (this.method == '@') {\n\t\t\t\tvar fs = \"alasql.vars['\" + this.variable + \"']\";\n\t\t\t} else {\n\t\t\t\tvar fs = \"params['\" + this.variable + \"']\";\n\t\t\t}\n\t\t\tfs += this.props\n\t\t\t\t.map(function (prop) {\n\t\t\t\t\tif (typeof prop == 'string') {\n\t\t\t\t\t\treturn \"['\" + prop + \"']\";\n\t\t\t\t\t} else if (typeof prop == 'number') {\n\t\t\t\t\t\treturn '[' + prop + ']';\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\treturn '[' + prop.toJS() + ']';\n\t\t\t\t\t\t//\t\t\t\t} else {\n\n\t\t\t\t\t\t//\t\t\t\t\tthrow new Error('Wrong SET property');\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t\t\t.join();\n\n\t\t\tnew Function('value,params,alasql', 'var y;' + fs + '=value')(res, params, alasql);\n\t\t} else {\n\t\t\tif (this.method == '@') {\n\t\t\t\talasql.vars[this.variable] = res;\n\t\t\t} else {\n\t\t\t\tparams[this.variable] = res;\n\t\t\t}\n\t\t}\n\t}\n\tvar res = 1;\n\tif (cb) res = cb(res);\n\treturn res;\n};\nalasql.test = function (name, times, fn) {\n\tif (arguments.length === 0) {\n\t\talasql.log(alasql.con.results);\n\t\treturn;\n\t}\n\n\tvar tm = Date.now();\n\n\tif (arguments.length === 1) {\n\t\tfn();\n\t\talasql.con.log(Date.now() - tm);\n\t\treturn;\n\t}\n\n\tif (arguments.length === 2) {\n\t\tfn = times;\n\t\ttimes = 1;\n\t}\n\n\tfor (var i = 0; i < times; i++) {\n\t\tfn();\n\t}\n\talasql.con.results[name] = Date.now() - tm;\n};\n\n// Console\n// alasql.log = function(sql, params) {\n\n// };\n\n/* global alasql, yy, utils */\n\n// Console\nalasql.log = function (sql, params) {\n\tvar olduseid = alasql.useid;\n\tvar target = alasql.options.logtarget;\n\t// For node other\n\tif (utils.isNode) {\n\t\ttarget = 'console';\n\t}\n\n\tvar res;\n\tif (typeof sql === 'string') {\n\t\tres = alasql(sql, params);\n\t} else {\n\t\tres = sql;\n\t}\n\n\t// For Node and console.output\n\tif (target === 'console' || utils.isNode) {\n\t\tif (typeof sql === 'string' && alasql.options.logprompt) {\n\t\t\tconsole.log(olduseid + '>', sql);\n\t\t}\n\n\t\tif (Array.isArray(res)) {\n\t\t\tif (console.table) {\n\t\t\t\t// For Chrome and other consoles\n\t\t\t\tconsole.table(res);\n\t\t\t} else {\n\t\t\t\t// Add print procedure\n\t\t\t\tconsole.log(JSONtoString(res));\n\t\t\t}\n\t\t} else {\n\t\t\tconsole.log(JSONtoString(res));\n\t\t}\n\t} else {\n\t\tvar el;\n\t\tif (target === 'output') {\n\t\t\tel = document.getElementsByTagName('output')[0];\n\t\t} else {\n\t\t\tif (typeof target === 'string') {\n\t\t\t\tel = document.getElementById(target);\n\t\t\t} else {\n\t\t\t\t// in case of DOM\n\t\t\t\tel = target;\n\t\t\t}\n\t\t}\n\n\t\tvar s = '';\n\n\t\tif (typeof sql === 'string' && alasql.options.logprompt) {\n\t\t\t//\t\t\ts += '

'+olduseid+'> '+alasql.pretty(sql)+'

';\n\t\t\ts += '
' + alasql.pretty(sql) + '
';\n\t\t}\n\n\t\tif (Array.isArray(res)) {\n\t\t\tif (res.length === 0) {\n\t\t\t\ts += '

[ ]

';\n\t\t\t} else if (typeof res[0] !== 'object' || Array.isArray(res[0])) {\n\t\t\t\tfor (var i = 0, ilen = res.length; i < ilen; i++) {\n\t\t\t\t\ts += '

' + loghtml(res[i]) + '

';\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\ts += loghtml(res);\n\t\t\t}\n\t\t} else {\n\t\t\ts += loghtml(res);\n\t\t}\n\t\tel.innerHTML += s;\n\t}\n};\n\nalasql.clear = function () {\n\tvar target = alasql.options.logtarget;\n\t// For node other\n\n\tif (utils.isNode || utils.isMeteorServer) {\n\t\tif (console.clear) {\n\t\t\tconsole.clear();\n\t\t}\n\t} else {\n\t\tvar el;\n\t\tif (target === 'output') {\n\t\t\tel = document.getElementsByTagName('output')[0];\n\t\t} else {\n\t\t\tif (typeof target === 'string') {\n\t\t\t\tel = document.getElementById(target);\n\t\t\t} else {\n\t\t\t\t// in case of DOM\n\t\t\t\tel = target;\n\t\t\t}\n\t\t}\n\t\tel.innerHTML = '';\n\t}\n};\n\nalasql.write = function (s) {\n\n\tvar target = alasql.options.logtarget;\n\t// For node other\n\tif (utils.isNode || utils.isMeteorServer) {\n\t\tif (console.log) {\n\t\t\tconsole.log(s);\n\t\t}\n\t} else {\n\t\tvar el;\n\t\tif (target === 'output') {\n\t\t\tel = document.getElementsByTagName('output')[0];\n\t\t} else {\n\t\t\tif (typeof target === 'string') {\n\t\t\t\tel = document.getElementById(target);\n\t\t\t} else {\n\t\t\t\t// in case of DOM\n\t\t\t\tel = target;\n\t\t\t}\n\t\t}\n\t\tel.innerHTML += s;\n\t}\n};\n\nfunction loghtml(res) {\n\n\tvar s = '';\n\tif (res === undefined) {\n\t\ts += 'undefined';\n\t} else if (Array.isArray(res)) {\n\t\ts += '';\n\t\ts += '';\n\t\tvar cols = [];\n\t\tfor (var colid in res[0]) {\n\t\t\tcols.push(colid);\n\t\t}\n\t\ts += '
#';\n\t\tcols.forEach(function (colid) {\n\t\t\ts += '' + colid;\n\t\t});\n\t\tfor (var i = 0, ilen = res.length; i < ilen; i++) {\n\t\t\ts += '
' + (i + 1);\n\t\t\tcols.forEach(function (colid) {\n\t\t\t\ts += ' ';\n\t\t\t\tif (res[i][colid] == +res[i][colid]) {\n\t\t\t\t\t// jshint ignore:line\n\t\t\t\t\ts += '
';\n\t\t\t\t\tif (typeof res[i][colid] === 'undefined') {\n\t\t\t\t\t\ts += 'NULL';\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts += res[i][colid];\n\t\t\t\t\t}\n\t\t\t\t\ts += '
';\n\t\t\t\t} else {\n\t\t\t\t\tif (typeof res[i][colid] === 'undefined') {\n\t\t\t\t\t\ts += 'NULL';\n\t\t\t\t\t} else if (typeof res[i][colid] === 'string') {\n\t\t\t\t\t\ts += res[i][colid];\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts += JSONtoString(res[i][colid]);\n\t\t\t\t\t}\n\t\t\t\t\t//\t\t\t\t\ts += res[i][colid];\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\n\t\ts += '
';\n\t} else {\n\t\ts += '

' + JSONtoString(res) + '

';\n\t}\n\t// if() {}\n\n\t// \t\tif(typeof res == 'object') {\n\t// \t\t\ts += '

'+JSON.stringify(res)+'

';\n\t// \t\t} else {\n\t// \t\t}\n\treturn s;\n}\n\nfunction scrollTo(element, to, duration) {\n\tif (duration <= 0) {\n\t\treturn;\n\t}\n\tvar difference = to - element.scrollTop;\n\tvar perTick = (difference / duration) * 10;\n\n\tsetTimeout(function () {\n\t\tif (element.scrollTop === to) {\n\t\t\treturn;\n\t\t}\n\t\telement.scrollTop = element.scrollTop + perTick;\n\t\tscrollTo(element, to, duration - 10);\n\t}, 10);\n}\n\nalasql.prompt = function (el, useidel, firstsql) {\n\tif (utils.isNode) {\n\t\tthrow new Error('The prompt not realized for Node.js');\n\t}\n\n\tvar prompti = 0;\n\n\tif (typeof el === 'string') {\n\t\tel = document.getElementById(el);\n\t}\n\n\tif (typeof useidel === 'string') {\n\t\tuseidel = document.getElementById(useidel);\n\t}\n\n\tuseidel.textContent = alasql.useid;\n\n\tif (firstsql) {\n\t\talasql.prompthistory.push(firstsql);\n\t\tprompti = alasql.prompthistory.length;\n\t\ttry {\n\t\t\tvar tm = Date.now();\n\t\t\talasql.log(firstsql);\n\t\t\talasql.write('

' + (Date.now() - tm) + ' ms

');\n\t\t} catch (err) {\n\t\t\talasql.write('

' + alasql.useid + '> ' + firstsql + '

');\n\t\t\talasql.write('

' + err + '

');\n\t\t}\n\t}\n\n\tvar y = el.getBoundingClientRect().top + document.getElementsByTagName('body')[0].scrollTop;\n\tscrollTo(document.getElementsByTagName('body')[0], y, 500);\n\n\tel.onkeydown = function (event) {\n\t\tif (event.which === 13) {\n\t\t\tvar sql = el.value;\n\t\t\tvar olduseid = alasql.useid;\n\t\t\tel.value = '';\n\t\t\talasql.prompthistory.push(sql);\n\t\t\tprompti = alasql.prompthistory.length;\n\t\t\ttry {\n\t\t\t\tvar tm = Date.now();\n\t\t\t\talasql.log(sql);\n\t\t\t\talasql.write('

' + (Date.now() - tm) + ' ms

');\n\t\t\t} catch (err) {\n\t\t\t\talasql.write('

' + olduseid + '> ' + alasql.pretty(sql, false) + '

');\n\t\t\t\talasql.write('

' + err + '

');\n\t\t\t}\n\t\t\tel.focus();\n\n\t\t\tuseidel.textContent = alasql.useid;\n\t\t\tvar y = el.getBoundingClientRect().top + document.getElementsByTagName('body')[0].scrollTop;\n\t\t\tscrollTo(document.getElementsByTagName('body')[0], y, 500);\n\t\t} else if (event.which === 38) {\n\t\t\tprompti--;\n\t\t\tif (prompti < 0) {\n\t\t\t\tprompti = 0;\n\t\t\t}\n\t\t\tif (alasql.prompthistory[prompti]) {\n\t\t\t\tel.value = alasql.prompthistory[prompti];\n\t\t\t\tevent.preventDefault();\n\t\t\t}\n\t\t} else if (event.which === 40) {\n\t\t\tprompti++;\n\t\t\tif (prompti >= alasql.prompthistory.length) {\n\t\t\t\tprompti = alasql.prompthistory.length;\n\t\t\t\tel.value = '';\n\t\t\t} else if (alasql.prompthistory[prompti]) {\n\t\t\t\tel.value = alasql.prompthistory[prompti];\n\t\t\t\tevent.preventDefault();\n\t\t\t}\n\t\t}\n\t};\n};\n/*\n//\n// Commit for Alasql.js\n// Date: 01.12.2014\n// (c) 2014, Andrey Gershun\n//\n*/\nyy.BeginTransaction = function (params) {\n\treturn Object.assign(this, params);\n};\nyy.BeginTransaction.prototype.toString = function () {\n\treturn 'BEGIN TRANSACTION';\n};\n\nyy.BeginTransaction.prototype.execute = function (databaseid, params, cb) {\n\tvar res = 1;\n\tif (alasql.databases[databaseid].engineid) {\n\t\treturn alasql.engines[alasql.databases[alasql.useid].engineid].begin(databaseid, cb);\n\t} else {\n\t\t// alasql commit!!!\n\t}\n\tif (cb) cb(res);\n\treturn res;\n};\n\nyy.CommitTransaction = function (params) {\n\treturn Object.assign(this, params);\n};\nyy.CommitTransaction.prototype.toString = function () {\n\treturn 'COMMIT TRANSACTION';\n};\n\nyy.CommitTransaction.prototype.execute = function (databaseid, params, cb) {\n\tvar res = 1;\n\tif (alasql.databases[databaseid].engineid) {\n\t\treturn alasql.engines[alasql.databases[alasql.useid].engineid].commit(databaseid, cb);\n\t} else {\n\t\t// alasql commit!!!\n\t}\n\tif (cb) cb(res);\n\treturn res;\n};\n\nyy.RollbackTransaction = function (params) {\n\treturn Object.assign(this, params);\n};\nyy.RollbackTransaction.prototype.toString = function () {\n\treturn 'ROLLBACK TRANSACTION';\n};\n\nyy.RollbackTransaction.prototype.execute = function (databaseid, params, cb) {\n\tvar res = 1;\n\tif (alasql.databases[databaseid].engineid) {\n\t\treturn alasql.engines[alasql.databases[databaseid].engineid].rollback(databaseid, cb);\n\t} else {\n\t\t// alasql commit!!!\n\t}\n\tif (cb) cb(res);\n\treturn res;\n};\nif (alasql.options.tsql) {\n\t//\n\t// Check tables and views\n\t// IF OBJECT_ID('dbo.Employees') IS NOT NULL\n\t// DROP TABLE dbo.Employees;\n\t// IF OBJECT_ID('dbo.VSortedOrders', 'V') IS NOT NULL\n\t// DROP VIEW dbo.VSortedOrders;\n\n\talasql.stdfn.OBJECT_ID = function (name, type) {\n\t\tif (typeof type == 'undefined') type = 'T';\n\t\ttype = type.toUpperCase();\n\n\t\tvar sname = name.split('.');\n\t\tvar dbid = alasql.useid;\n\t\tvar objname = sname[0];\n\t\tif (sname.length == 2) {\n\t\t\tdbid = sname[0];\n\t\t\tobjname = sname[1];\n\t\t}\n\n\t\tvar tables = alasql.databases[dbid].tables;\n\t\tdbid = alasql.databases[dbid].databaseid;\n\t\tfor (var tableid in tables) {\n\t\t\tif (tableid == objname) {\n\t\t\t\t// TODO: What OBJECT_ID actually returns\n\n\t\t\t\tif (tables[tableid].view && type == 'V') return dbid + '.' + tableid;\n\t\t\t\tif (!tables[tableid].view && type == 'T') return dbid + '.' + tableid;\n\t\t\t\treturn undefined;\n\t\t\t}\n\t\t}\n\n\t\treturn undefined;\n\t};\n}\nif (alasql.options.mysql) {\n\talasql.fn.TIMESTAMPDIFF = function (unit, date1, date2) {\n\t\treturn alasql.stdfn.DATEDIFF(unit, date1, date2);\n\t};\n}\n\nif (alasql.options.mysql || alasql.options.sqlite) {\n\t// Pseudo INFORMATION_SCHEMA function\n\talasql.from.INFORMATION_SCHEMA = function (filename, opts, cb, idx, query) {\n\t\tif (filename == 'VIEWS' || filename == 'TABLES') {\n\t\t\tvar res = [];\n\t\t\tfor (var databaseid in alasql.databases) {\n\t\t\t\tvar tables = alasql.databases[databaseid].tables;\n\t\t\t\tfor (var tableid in tables) {\n\t\t\t\t\tif (\n\t\t\t\t\t\t(tables[tableid].view && filename == 'VIEWS') ||\n\t\t\t\t\t\t(!tables[tableid].view && filename == 'TABLES')\n\t\t\t\t\t) {\n\t\t\t\t\t\tres.push({TABLE_CATALOG: databaseid, TABLE_NAME: tableid});\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (cb) res = cb(res, idx, query);\n\t\t\treturn res;\n\t\t}\n\t\tthrow new Error('Unknown INFORMATION_SCHEMA table');\n\t};\n}\nif (alasql.options.postgres) {\n}\nif (alasql.options.oracle) {\n}\nif (alasql.options.sqlite) {\n}\n//\n// into functions\n//\n// (c) 2014 Andrey Gershun\n//\n\nalasql.into.SQL = function (filename, opts, data, columns, cb) {\n\tvar res;\n\tif (typeof filename === 'object') {\n\t\topts = filename;\n\t\tfilename = undefined;\n\t}\n\tvar opt = {};\n\talasql.utils.extend(opt, opts);\n\tif (typeof opt.tableid === 'undefined') {\n\t\tthrow new Error('Table for INSERT TO is not defined.');\n\t}\n\n\tvar s = '';\n\tif (columns.length === 0) {\n\t\tif (typeof data[0] === 'object') {\n\t\t\tcolumns = Object.keys(data[0]).map(function (columnid) {\n\t\t\t\treturn {columnid: columnid};\n\t\t\t});\n\t\t} else {\n\t\t\t// What should I do?\n\t\t\t// columns = [{columnid:\"_\"}];\n\t\t}\n\t}\n\n\tfor (var i = 0, ilen = data.length; i < ilen; i++) {\n\t\ts += 'INSERT INTO ' + opts.tableid + '(';\n\t\ts += columns\n\t\t\t.map(function (col) {\n\t\t\t\treturn col.columnid;\n\t\t\t})\n\t\t\t.join(',');\n\t\ts += ') VALUES (';\n\t\ts += columns.map(function (col) {\n\t\t\tvar val = data[i][col.columnid];\n\t\t\tif (col.typeid) {\n\t\t\t\tif (\n\t\t\t\t\tcol.typeid === 'STRING' ||\n\t\t\t\t\tcol.typeid === 'VARCHAR' ||\n\t\t\t\t\tcol.typeid === 'NVARCHAR' ||\n\t\t\t\t\tcol.typeid === 'CHAR' ||\n\t\t\t\t\tcol.typeid === 'NCHAR'\n\t\t\t\t) {\n\t\t\t\t\tval = \"'\" + escapeqq(val) + \"'\";\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif (typeof val == 'string') {\n\t\t\t\t\tval = \"'\" + escapeqq(val) + \"'\";\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn val;\n\t\t});\n\t\ts += ');\\n';\n\t}\n\t//\tif(filename === '') {\n\t//\t\tres = s;\n\t//\t} else {\n\t//\t\tres = data.length;\n\tfilename = alasql.utils.autoExtFilename(filename, 'sql', opts);\n\tres = alasql.utils.saveFile(filename, s);\n\tif (cb) {\n\t\tres = cb(res);\n\t}\n\treturn res;\n};\n\nalasql.into.HTML = function (selector, opts, data, columns, cb) {\n\tvar res = 1;\n\tif (typeof document !== 'object') {\n\t\tvar opt = {headers: true};\n\t\talasql.utils.extend(opt, opts);\n\n\t\tvar sel = document.querySelector(selector);\n\t\tif (!sel) {\n\t\t\tthrow new Error('Selected HTML element is not found');\n\t\t}\n\n\t\tif (columns.length === 0) {\n\t\t\tif (typeof data[0] === 'object') {\n\t\t\t\tcolumns = Object.keys(data[0]).map(function (columnid) {\n\t\t\t\t\treturn {columnid: columnid};\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\t// What should I do?\n\t\t\t\t// columns = [{columnid:\"_\"}];\n\t\t\t}\n\t\t}\n\n\t\tvar tbe = document.createElement('table');\n\t\tvar thead = document.createElement('thead');\n\t\ttbe.appendChild(thead);\n\t\tif (opt.headers) {\n\t\t\tvar tre = document.createElement('tr');\n\t\t\tfor (var i = 0; i < columns.length; i++) {\n\t\t\t\tvar the = document.createElement('th');\n\t\t\t\tthe.textContent = columns[i].columnid;\n\t\t\t\ttre.appendChild(the);\n\t\t\t}\n\t\t\tthead.appendChild(tre);\n\t\t}\n\n\t\tvar tbody = document.createElement('tbody');\n\t\ttbe.appendChild(tbody);\n\t\tfor (var j = 0; j < data.length; j++) {\n\t\t\tvar tre = document.createElement('tr');\n\t\t\tfor (var i = 0; i < columns.length; i++) {\n\t\t\t\tvar the = document.createElement('td');\n\t\t\t\tthe.textContent = data[j][columns[i].columnid];\n\t\t\t\ttre.appendChild(the);\n\t\t\t}\n\t\t\ttbody.appendChild(tre);\n\t\t}\n\t\talasql.utils.domEmptyChildren(sel);\n\n\t\tsel.appendChild(tbe);\n\t}\n\tif (cb) {\n\t\tres = cb(res);\n\t}\n\treturn res;\n};\n\nalasql.into.JSON = function (filename, opts, data, columns, cb) {\n\tvar res = 1;\n\tif (typeof filename === 'object') {\n\t\topts = filename;\n\t\tfilename = undefined;\n\t}\n\tvar s = JSON.stringify(data);\n\n\tfilename = alasql.utils.autoExtFilename(filename, 'json', opts);\n\tres = alasql.utils.saveFile(filename, s);\n\tif (cb) {\n\t\tres = cb(res);\n\t}\n\treturn res;\n};\n\nalasql.into.TXT = function (filename, opts, data, columns, cb) {\n\t// If columns is empty\n\tif (columns.length === 0 && data.length > 0) {\n\t\tcolumns = Object.keys(data[0]).map(function (columnid) {\n\t\t\treturn {columnid: columnid};\n\t\t});\n\t}\n\t// If one parameter\n\tif (typeof filename === 'object') {\n\t\topts = filename;\n\t\tfilename = undefined;\n\t}\n\n\tvar res = data.length;\n\tvar s = '';\n\tif (data.length > 0) {\n\t\tvar key = columns[0].columnid;\n\t\ts += data\n\t\t\t.map(function (d) {\n\t\t\t\treturn d[key];\n\t\t\t})\n\t\t\t.join('\\n');\n\t}\n\n\t//\t } else {\n\t//\t\tif(utils.isNode) {\n\t//\t\t\tprocess.stdout.write(s);\n\t//\t\t} else {\n\n\t//\t\t};\n\t//\t }\n\tfilename = alasql.utils.autoExtFilename(filename, 'txt', opts);\n\tres = alasql.utils.saveFile(filename, s);\n\tif (cb) {\n\t\tres = cb(res);\n\t}\n\treturn res;\n};\n\nalasql.into.TAB = alasql.into.TSV = function (filename, opts, data, columns, cb) {\n\tvar opt = {};\n\talasql.utils.extend(opt, opts);\n\topt.separator = '\\t';\n\tfilename = alasql.utils.autoExtFilename(filename, 'tab', opts);\n\topt.autoExt = false;\n\treturn alasql.into.CSV(filename, opt, data, columns, cb);\n};\n\nalasql.into.CSV = function (filename, opts, data, columns, cb) {\n\tif (columns.length === 0 && data.length > 0) {\n\t\tcolumns = Object.keys(data[0]).map(function (columnid) {\n\t\t\treturn {columnid: columnid};\n\t\t});\n\t}\n\tif (typeof filename === 'object') {\n\t\topts = filename;\n\t\tfilename = undefined;\n\t}\n\n\tvar opt = {headers: true};\n\t//opt.separator = ',';\n\topt.separator = ';';\n\topt.quote = '\"';\n\n\topt.utf8Bom = true;\n\tif (opts && !opts.headers && typeof opts.headers !== 'undefined') {\n\t\topt.utf8Bom = false;\n\t}\n\n\talasql.utils.extend(opt, opts);\n\tvar res = data.length;\n\tvar s = opt.utf8Bom ? '\\ufeff' : '';\n\tif (opt.headers) {\n\t\ts +=\n\t\t\topt.quote +\n\t\t\tcolumns\n\t\t\t\t.map(function (col) {\n\t\t\t\t\treturn col.columnid.trim();\n\t\t\t\t})\n\t\t\t\t.join(opt.quote + opt.separator + opt.quote) +\n\t\t\topt.quote +\n\t\t\t'\\r\\n';\n\t}\n\n\tdata.forEach(function (d) {\n\t\ts +=\n\t\t\tcolumns\n\t\t\t\t.map(function (col) {\n\t\t\t\t\tvar s = d[col.columnid];\n\t\t\t\t\t// escape the character wherever it appears in the field\n\t\t\t\t\tif (opt.quote !== '') {\n\t\t\t\t\t\ts = (s + '').replace(new RegExp('\\\\' + opt.quote, 'g'), opt.quote + opt.quote);\n\t\t\t\t\t}\n\t\t\t\t\t//\t\t\tif((s+\"\").indexOf(opt.separator) > -1 || (s+\"\").indexOf(opt.quote) > -1) s = opt.quote + s + opt.quote;\n\n\t\t\t\t\t//Excel 2013 needs quotes around strings - thanks for _not_ complying with RFC for CSV\n\t\t\t\t\tif (+s != s) {\n\t\t\t\t\t\t// jshint ignore:line\n\t\t\t\t\t\ts = opt.quote + s + opt.quote;\n\t\t\t\t\t}\n\n\t\t\t\t\treturn s;\n\t\t\t\t})\n\t\t\t\t.join(opt.separator) + '\\r\\n';\n\t});\n\n\tfilename = alasql.utils.autoExtFilename(filename, 'csv', opts);\n\tres = alasql.utils.saveFile(filename, s, null, {disableAutoBom: true});\n\tif (cb) {\n\t\tres = cb(res);\n\t}\n\treturn res;\n};\n//\n// 831xl.js - Coloring Excel\n// 18.04.2015\n// Generate XLS file with colors and styles\n// with Excel\n\nalasql.into.XLS = function (filename, opts, data, columns, cb) {\n\t// If filename is not defined then output to the result\n\tif (typeof filename == 'object') {\n\t\topts = filename;\n\t\tfilename = undefined;\n\t}\n\n\t// Set sheets\n\tvar sheets = {};\n\tif (opts && opts.sheets) {\n\t\tsheets = opts.sheets;\n\t}\n\n\t// Default sheet\n\tvar sheet = {headers: true};\n\tif (typeof sheets['Sheet1'] != 'undefined') {\n\t\tsheet = sheets[0];\n\t} else {\n\t\tif (typeof opts != 'undefined') {\n\t\t\tsheet = opts;\n\t\t}\n\t}\n\n\t// Set sheet name and default is 'Sheet1'\n\tif (typeof sheet.sheetid == 'undefined') {\n\t\tsheet.sheetid = 'Sheet1';\n\t}\n\n\tvar s = toHTML();\n\n\t// File is ready to save\n\tfilename = alasql.utils.autoExtFilename(filename, 'xls', opts);\n\tvar res = alasql.utils.saveFile(filename, s);\n\tif (cb) res = cb(res);\n\treturn res;\n\n\tfunction toHTML() {\n\t\t// Generate prologue\n\t\tvar s =\n\t\t\t' \\\n\t\t \\\n\t\t';\n\n\t\t// Generate body\n\t\ts += ' 0) {\n\t\t\t\tif (typeof data[0] == 'object') {\n\t\t\t\t\tif (Array.isArray(data[0])) {\n\t\t\t\t\t\tcolumns = data[0].map(function (d, columnidx) {\n\t\t\t\t\t\t\treturn {columnid: columnidx};\n\t\t\t\t\t\t});\n\t\t\t\t\t} else {\n\t\t\t\t\t\tcolumns = Object.keys(data[0]).map(function (columnid) {\n\t\t\t\t\t\t\treturn {columnid: columnid};\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Prepare columns\n\t\tcolumns.forEach(function (column, columnidx) {\n\t\t\tif (typeof sheet.column != 'undefined') {\n\t\t\t\textend(column, sheet.column);\n\t\t\t}\n\n\t\t\tif (typeof column.width == 'undefined') {\n\t\t\t\tif (sheet.column && sheet.column.width != 'undefined') {\n\t\t\t\t\tcolumn.width = sheet.column.width;\n\t\t\t\t} else {\n\t\t\t\t\tcolumn.width = '120px';\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (typeof column.width == 'number') column.width = column.width + 'px';\n\t\t\tif (typeof column.columnid == 'undefined') column.columnid = columnidx;\n\t\t\tif (typeof column.title == 'undefined') column.title = '' + column.columnid.trim();\n\t\t\tif (sheet.headers && Array.isArray(sheet.headers)) column.title = sheet.headers[columnidx];\n\t\t});\n\n\t\t// Set columns widths\n\t\ts += '';\n\t\tcolumns.forEach(function (column) {\n\t\t\ts += '';\n\t\t});\n\t\ts += '';\n\n\t\t// Headers\n\t\tif (sheet.headers) {\n\t\t\ts += '';\n\t\t\ts += '';\n\n\t\t\t// TODO: Skip columns to body\n\n\t\t\t// Headers\n\t\t\tcolumns.forEach(function (column, columnidx) {\n\t\t\t\ts += ' 0) {\n\t\t\t// TODO: Skip columns to body\n\n\t\t\t// Loop over data rows\n\t\t\tdata.forEach(function (row, rowidx) {\n\t\t\t\t// Limit number of rows on the sheet\n\t\t\t\tif (rowidx > sheet.limit) return;\n\t\t\t\t// Create row\n\t\t\t\ts += ' \\\n\t\t \\\n\t\t \\\n\t\t \\\n\t\t \\\n\t\t \\\n\t\t \\\n\t\t \\\n\t\t 0 \\\n\t\t \\\n\t\t \\\n\t\t ';\n\n\t\tvar s2 = ''; // for styles\n\n\t\tvar s3 = ' ';\n\n\t\tvar styles = {}; // hash based storage for styles\n\t\tvar stylesn = 62; // First style\n\n\t\t// Generate style\n\t\tfunction hstyle(st) {\n\t\t\t// Prepare string\n\t\t\tvar s = '';\n\t\t\tfor (var key in st) {\n\t\t\t\ts += '<' + key;\n\t\t\t\tfor (var attr in st[key]) {\n\t\t\t\t\ts += ' ';\n\t\t\t\t\tif (attr.substr(0, 2) == 'x:') {\n\t\t\t\t\t\ts += attr;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts += 'ss:';\n\t\t\t\t\t}\n\t\t\t\t\ts += attr + '=' + JSON.stringify(st[key][attr]);\n\t\t\t\t}\n\t\t\t\ts += '/>';\n\t\t\t}\n\n\t\t\tvar hh = hash(s);\n\t\t\t// Store in hash\n\t\t\tif (styles[hh]) {\n\t\t\t} else {\n\t\t\t\tstyles[hh] = {styleid: stylesn};\n\t\t\t\ts2 += `';\n\t\t\t\tstylesn++;\n\t\t\t}\n\t\t\treturn 's' + styles[hh].styleid;\n\t\t}\n\n\t\tfunction values(obj) {\n\t\t\ttry {\n\t\t\t\treturn Object.values(obj);\n\t\t\t} catch (e) {\n\t\t\t\t// support for older runtimes\n\t\t\t\treturn Object.keys(obj).map(function (e) {\n\t\t\t\t\treturn obj[e];\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\n\t\tvar sheetidx = 0;\n\t\tfor (var sheetid in sheets) {\n\t\t\tvar sheet = sheets[sheetid];\n\t\t\tvar idx = typeof sheet.dataidx != 'undefined' ? sheet.dataidx : sheetidx++;\n\t\t\tvar data = values(sheetsdata[idx]);\n\t\t\t// If columns defined in sheet, then take them\n\t\t\tvar columns = undefined;\n\t\t\tif (typeof sheet.columns != 'undefined') {\n\t\t\t\tcolumns = sheet.columns;\n\t\t\t} else {\n\t\t\t\t// Autogenerate columns if they are passed as parameters\n\t\t\t\tcolumns = sheetscolumns[idx];\n\t\t\t\tif (columns === undefined || (columns.length == 0 && data.length > 0)) {\n\t\t\t\t\tif (typeof data[0] == 'object') {\n\t\t\t\t\t\tif (Array.isArray(data[0])) {\n\t\t\t\t\t\t\tcolumns = data[0].map(function (d, columnidx) {\n\t\t\t\t\t\t\t\treturn {columnid: columnidx};\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tcolumns = Object.keys(data[0]).map(function (columnid) {\n\t\t\t\t\t\t\t\treturn {columnid: columnid};\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Prepare columns\n\t\t\tcolumns.forEach(function (column, columnidx) {\n\t\t\t\tif (typeof sheet.column != 'undefined') {\n\t\t\t\t\textend(column, sheet.column);\n\t\t\t\t}\n\n\t\t\t\tif (typeof column.width == 'undefined') {\n\t\t\t\t\tif (sheet.column && typeof sheet.column.width != 'undefined') {\n\t\t\t\t\t\tcolumn.width = sheet.column.width;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tcolumn.width = 120;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif (typeof column.width == 'number') column.width = column.width;\n\t\t\t\tif (typeof column.columnid == 'undefined') column.columnid = columnidx;\n\t\t\t\tif (typeof column.title == 'undefined') column.title = '' + column.columnid.trim();\n\t\t\t\tif (sheet.headers && Array.isArray(sheet.headers)) column.title = sheet.headers[columnidx];\n\t\t\t});\n\n\t\t\t// Header\n\t\t\ts3 +=\n\t\t\t\t' \\\n\t \t\t\t';\n\n\t\t\tcolumns.forEach(function (column, columnidx) {\n\t\t\t\ts3 += `\n\t\t\t\t\t`;\n\t\t\t});\n\n\t\t\t// Headers\n\t\t\tif (sheet.headers) {\n\t\t\t\ts3 += '';\n\n\t\t\t\t// TODO: Skip columns to body\n\n\t\t\t\t// Headers\n\t\t\t\tcolumns.forEach(function (column, columnidx) {\n\t\t\t\t\ts3 += ' 0) {\n\t\t\t\t// Loop over data rows\n\t\t\t\tdata.forEach(function (row, rowidx) {\n\t\t\t\t\t// Limit number of rows on the sheet\n\t\t\t\t\tif (rowidx > sheet.limit) return;\n\n\t\t\t\t\t// Extend row properties\n\t\t\t\t\tvar srow = {};\n\t\t\t\t\textend(srow, sheet.row);\n\t\t\t\t\tif (sheet.rows && sheet.rows[rowidx]) {\n\t\t\t\t\t\textend(srow, sheet.rows[rowidx]);\n\t\t\t\t\t}\n\n\t\t\t\t\ts3 += ''\n\n\t\t\t\t\t// Data\n\t\t\t\t\tcolumns.forEach(function (column, columnidx) {\n\t\t\t\t\t\t// Parameters\n\t\t\t\t\t\tvar cell = {};\n\t\t\t\t\t\textend(cell, sheet.cell);\n\t\t\t\t\t\textend(cell, srow.cell);\n\t\t\t\t\t\tif (typeof sheet.column != 'undefined') {\n\t\t\t\t\t\t\textend(cell, sheet.column.cell);\n\t\t\t\t\t\t}\n\t\t\t\t\t\textend(cell, column.cell);\n\t\t\t\t\t\tif (sheet.cells && sheet.cells[rowidx] && sheet.cells[rowidx][columnidx]) {\n\t\t\t\t\t\t\textend(cell, sheet.cells[rowidx][columnidx]);\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Create value\n\t\t\t\t\t\tvar value = row[column.columnid];\n\t\t\t\t\t\tif (typeof cell.value == 'function') {\n\t\t\t\t\t\t\tvalue = cell.value(value, sheet, row, column, cell, rowidx, columnidx);\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Define cell type\n\t\t\t\t\t\tvar typeid = cell.typeid;\n\t\t\t\t\t\tif (typeof typeid == 'function') {\n\t\t\t\t\t\t\ttypeid = typeid(value, sheet, row, column, cell, rowidx, columnidx);\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif (typeof typeid == 'undefined') {\n\t\t\t\t\t\t\tif (typeof value == 'number') typeid = 'number';\n\t\t\t\t\t\t\telse if (typeof value == 'string') typeid = 'string';\n\t\t\t\t\t\t\telse if (typeof value == 'boolean') typeid = 'boolean';\n\t\t\t\t\t\t\telse if (typeof value == 'object') {\n\t\t\t\t\t\t\t\tif (value instanceof Date) typeid = 'date';\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tvar Type = 'String';\n\t\t\t\t\t\tif (typeid == 'number') Type = 'Number';\n\t\t\t\t\t\telse if (typeid == 'date') Type = 'Date';\n\t\t\t\t\t\t// TODO: What else?\n\n\t\t\t\t\t\t// Prepare Data types styles\n\t\t\t\t\t\tvar typestyle = '';\n\n\t\t\t\t\t\tif (typeid == 'money') {\n\t\t\t\t\t\t\ttypestyle = 'mso-number-format:\"\\\\#\\\\,\\\\#\\\\#0\\\\\\\\ _р_\\\\.\";white-space:normal;';\n\t\t\t\t\t\t} else if (typeid == 'number') {\n\t\t\t\t\t\t\ttypestyle = ' ';\n\t\t\t\t\t\t} else if (typeid == 'date') {\n\t\t\t\t\t\t\ttypestyle = 'mso-number-format:\"Short Date\";';\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t// For other types is saved\n\t\t\t\t\t\t\tif (opts.types && opts.types[typeid] && opts.types[typeid].typestyle) {\n\t\t\t\t\t\t\t\ttypestyle = opts.types[typeid].typestyle;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// TODO Replace with extend...\n\t\t\t\t\t\ttypestyle = typestyle || 'mso-number-format:\"\\\\@\";'; // Default type style\n\n\t\t\t\t\t\ts3 += '';\n\n\t\t\t\t\t\t// TODO Replace with extend...\n\t\t\t\t\t\tvar format = cell.format;\n\t\t\t\t\t\tif (typeof value == 'undefined') {\n\t\t\t\t\t\t\ts3 += '';\n\t\t\t\t\t\t} else if (typeof format != 'undefined') {\n\t\t\t\t\t\t\tif (typeof format == 'function') {\n\t\t\t\t\t\t\t\ts3 += format(value);\n\t\t\t\t\t\t\t} else if (typeof format == 'string') {\n\t\t\t\t\t\t\t\ts3 += value; // TODO - add string format\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tthrow new Error('Unknown format type. Should be function or string');\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tif (typeid == 'number' || typeid == 'date') {\n\t\t\t\t\t\t\t\ts3 += value.toString();\n\t\t\t\t\t\t\t} else if (typeid == 'money') {\n\t\t\t\t\t\t\t\ts3 += (+value).toFixed(2);\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts3 += value;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t//\t\t\t \t\ts3 += row[column.columnid];\n\t\t\t\t\t\ts3 += '';\n\t\t\t\t\t});\n\n\t\t\t\t\ts3 += '';\n\t\t\t\t});\n\t\t\t}\n\t\t\t// Finish\n\t\t\ts3 += '
';\n\t\t}\n\n\t\ts3 += '
';\n\n\t\treturn s1 + s2 + s3;\n\t}\n};\n/**\n\tExport to XLSX function\n\t@function\n\t@param {string|object} filename Filename or options\n\t@param {object|undefined} opts Options or undefined\n\t@param {array} data Data\n\t@param {array} columns Columns\n\t@parab {callback} cb Callback function\n\t@return {number} Number of files processed\n*/\n\nalasql.into.XLSX = function (filename, opts, data, columns, cb) {\n\t/** @type {number} result */\n\tvar res = 1;\n\topts = opts || {};\n\n\tif (deepEqual(columns, [{columnid: '_'}])) {\n\t\tdata = data.map(function (dat) {\n\t\t\treturn dat._;\n\t\t});\n\t\tcolumns = undefined;\n\t\t//\t\tres = [{_:1}];\n\t} else {\n\t\t//\t\tdata = data1;\n\t}\n\n\tfilename = alasql.utils.autoExtFilename(filename, 'xlsx', opts);\n\n\tvar XLSX = getXLSX();\n\n\t/* If called without filename, use opts */\n\tif (typeof filename == 'object') {\n\t\t// todo: check if data, clumns and cb also should be shifted.\n\t\topts = filename;\n\t\tfilename = undefined;\n\t}\n\n\t/** @type {object} Workbook */\n\tvar wb = {SheetNames: [], Sheets: {}};\n\n\t// ToDo: check if cb must be treated differently here\n\tif (opts.sourcefilename) {\n\t\talasql.utils.loadBinaryFile(opts.sourcefilename, !!cb, function (data) {\n\t\t\twb = XLSX.read(data, {type: 'binary', ...alasql.options.excel, ...opts});\n\t\t\tdoExport();\n\t\t});\n\t} else {\n\t\tdoExport();\n\t}\n\n\t/* Return result */\n\tif (cb) res = cb(res);\n\treturn res;\n\n\t/**\n\t\tExport workbook\n\t\t@function\n\t*/\n\tfunction doExport() {\n\t\t/*\n\t\t\tIf opts is array of arrays then this is a\n\t\t\tmultisheet workboook, else it is a singlesheet\n\t\t*/\n\t\tif (typeof opts == 'object' && Array.isArray(opts)) {\n\t\t\tif (data && data.length > 0) {\n\t\t\t\tdata.forEach(function (dat, idx) {\n\t\t\t\t\tprepareSheet(opts[idx], dat, undefined, idx + 1);\n\t\t\t\t});\n\t\t\t}\n\t\t} else {\n\t\t\tprepareSheet(opts, data, columns, 1);\n\t\t}\n\n\t\tsaveWorkbook(cb);\n\t}\n\n\t/**\n\t\tPrepare sheet\n\t\t@params {object} opts\n\t\t@params {array|object} data\n\t\t@params {array} columns Columns\n\t*/\n\tfunction prepareSheet(opts, data, columns, idx) {\n\t\t/** Default options for sheet */\n\t\tvar opt = {sheetid: 'Sheet ' + idx, headers: true};\n\t\talasql.utils.extend(opt, opts);\n\n\t\tvar dataLength = Object.keys(data).length;\n\n\t\t// Generate columns if they are not defined\n\t\tif ((!columns || columns.length == 0) && dataLength > 0) {\n\t\t\tcolumns = Object.keys(data[0]).map(function (columnid) {\n\t\t\t\treturn {columnid: columnid};\n\t\t\t});\n\t\t}\n\n\t\tvar cells = {};\n\n\t\tif (wb.SheetNames.indexOf(opt.sheetid) > -1) {\n\t\t\tcells = wb.Sheets[opt.sheetid];\n\t\t} else {\n\t\t\twb.SheetNames.push(opt.sheetid);\n\t\t\twb.Sheets[opt.sheetid] = {};\n\t\t\tcells = wb.Sheets[opt.sheetid];\n\t\t}\n\n\t\tvar range = 'A1';\n\t\tif (opt.range) range = opt.range;\n\n\t\tvar col0 = alasql.utils.xlscn(range.match(/[A-Z]+/)[0]);\n\t\tvar row0 = +range.match(/[0-9]+/)[0] - 1;\n\n\t\tif (wb.Sheets[opt.sheetid]['!ref']) {\n\t\t\tvar rangem = wb.Sheets[opt.sheetid]['!ref'];\n\t\t\tvar colm = alasql.utils.xlscn(rangem.match(/[A-Z]+/)[0]);\n\t\t\tvar rowm = +rangem.match(/[0-9]+/)[0] - 1;\n\t\t} else {\n\t\t\tvar colm = 1,\n\t\t\t\trowm = 1;\n\t\t}\n\t\tvar zeroColumnFix = columns.length ? 0 : 1;\n\t\tvar colmax = Math.max(col0 + columns.length - 1 + zeroColumnFix, colm);\n\t\tvar rowmax = Math.max(row0 + dataLength + 2, rowm);\n\n\t\tvar i = row0 + 1;\n\n\t\twb.Sheets[opt.sheetid]['!ref'] = 'A1:' + alasql.utils.xlsnc(colmax) + rowmax;\n\t\t//\t\tvar i = 1;\n\n\t\tif (opt.headers) {\n\t\t\tcolumns.forEach(function (col, idx) {\n\t\t\t\tcells[alasql.utils.xlsnc(col0 + idx) + '' + i] = {\n\t\t\t\t\tv: col.columnid.trim(),\n\t\t\t\t};\n\t\t\t});\n\t\t\ti++;\n\t\t}\n\n\t\tfor (var j = 0; j < dataLength; j++) {\n\t\t\tcolumns.forEach(function (col, idx) {\n\t\t\t\tvar cell = {v: data[j][col.columnid]};\n\t\t\t\tif (typeof data[j][col.columnid] == 'number') {\n\t\t\t\t\tcell.t = 'n';\n\t\t\t\t} else if (typeof data[j][col.columnid] == 'string') {\n\t\t\t\t\tcell.t = 's';\n\t\t\t\t} else if (typeof data[j][col.columnid] == 'boolean') {\n\t\t\t\t\tcell.t = 'b';\n\t\t\t\t} else if (typeof data[j][col.columnid] == 'object') {\n\t\t\t\t\tif (data[j][col.columnid] instanceof Date) {\n\t\t\t\t\t\tcell.t = 'd';\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tcells[alasql.utils.xlsnc(col0 + idx) + '' + i] = cell;\n\t\t\t});\n\t\t\ti++;\n\t\t}\n\t}\n\n\t/**\n\t\tSave Workbook\n\t\t@params {array} wb Workbook\n\t\t@params {callback} cb Callback\n\t*/\n\tfunction saveWorkbook(cb) {\n\n\t\tvar XLSX;\n\n\t\tif (typeof filename == 'undefined') {\n\t\t\tres = wb;\n\t\t} else {\n\t\t\tXLSX = getXLSX();\n\n\t\t\tif (utils.isNode || utils.isMeteorServer) {\n\t\t\t\tXLSX.writeFile(wb, filename);\n\t\t\t} else {\n\t\t\t\tvar wopts = {bookType: 'xlsx', bookSST: false, type: 'binary'};\n\t\t\t\tvar wbout = XLSX.write(wb, wopts);\n\n\t\t\t\tvar s2ab = function (s) {\n\t\t\t\t\tvar buf = new ArrayBuffer(s.length);\n\t\t\t\t\tvar view = new Uint8Array(buf);\n\t\t\t\t\tfor (var i = 0; i != s.length; ++i) view[i] = s.charCodeAt(i) & 0xff;\n\t\t\t\t\treturn buf;\n\t\t\t\t};\n\n\t\t\t\tsaveAs(new Blob([s2ab(wbout)], {type: 'application/octet-stream'}), filename);\n\t\t\t}\n\t\t}\n\n\t}\n};\n/*\n//\n// FROM functions Alasql.js\n// Date: 11.12.2014\n// (c) 2014, Andrey Gershun\n//\n*/\n\n/**\n Meteor\n */\n\n/* global alasql Tabletop document Event */\n\nalasql.from.METEOR = function (filename, opts, cb, idx, query) {\n\tvar res = filename.find(opts).fetch();\n\tif (cb) {\n\t\tres = cb(res, idx, query);\n\t}\n\treturn res;\n};\n\n/**\n Google Spreadsheet reader\n */\nalasql.from.TABLETOP = function (key, opts, cb, idx, query) {\n\tvar res = [];\n\n\tvar opt = {headers: true, simpleSheet: true, key: key};\n\talasql.utils.extend(opt, opts);\n\topt.callback = function (data) {\n\t\tres = data;\n\t\tif (cb) {\n\t\t\tres = cb(res, idx, query);\n\t\t}\n\t};\n\n\tTabletop.init(opt);\n\treturn null;\n};\n\nalasql.from.HTML = function (selector, opts, cb, idx, query) {\n\tvar opt = {};\n\talasql.utils.extend(opt, opts);\n\n\tvar sel = document.querySelector(selector);\n\tif (!sel && sel.tagName !== 'TABLE') {\n\t\tthrow new Error('Selected HTML element is not a TABLE');\n\t}\n\n\tvar res = [];\n\tvar headers = opt.headers;\n\n\tif (headers && !Array.isArray(headers)) {\n\t\theaders = [];\n\t\tvar ths = sel.querySelector('thead tr').children;\n\t\tfor (var i = 0; i < ths.length; i++) {\n\t\t\tif (!(ths.item(i).style && ths.item(i).style.display === 'none' && opt.skipdisplaynone)) {\n\t\t\t\theaders.push(ths.item(i).textContent);\n\t\t\t} else {\n\t\t\t\theaders.push(undefined);\n\t\t\t}\n\t\t}\n\t}\n\n\tvar trs = sel.querySelectorAll('tbody tr');\n\n\tfor (var j = 0; j < trs.length; j++) {\n\t\tvar tds = trs.item(j).children;\n\t\tvar r = {};\n\t\tfor (i = 0; i < tds.length; i++) {\n\t\t\tif (!(tds.item(i).style && tds.item(i).style.display === 'none' && opt.skipdisplaynone)) {\n\t\t\t\tif (headers) {\n\t\t\t\t\tr[headers[i]] = tds.item(i).textContent;\n\t\t\t\t} else {\n\t\t\t\t\tr[i] = tds.item(i).textContent;\n\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tres.push(r);\n\t}\n\n\tif (cb) {\n\t\tres = cb(res, idx, query);\n\t}\n\treturn res;\n};\n\nalasql.from.RANGE = function (start, finish, cb, idx, query) {\n\tvar res = [];\n\tfor (var i = start; i <= finish; i++) {\n\t\tres.push(i);\n\t}\n\t//\tres = new alasql.Recordset({data:res,columns:{columnid:'_'}});\n\tif (cb) {\n\t\tres = cb(res, idx, query);\n\t}\n\treturn res;\n};\n\n// Read data from any file\nalasql.from.FILE = function (filename, opts, cb, idx, query) {\n\tvar fname;\n\tif (typeof filename === 'string') {\n\t\tfname = filename;\n\t} else if (filename instanceof Event) {\n\t\tfname = filename.target.files[0].name;\n\t} else {\n\t\tthrow new Error('Wrong usage of FILE() function');\n\t}\n\n\tvar parts = fname.split('.');\n\n\tvar ext = parts[parts.length - 1].toUpperCase();\n\n\tif (alasql.from[ext]) {\n\n\t\treturn alasql.from[ext](filename, opts, cb, idx, query);\n\t} else {\n\t\tthrow new Error('Cannot recognize file type for loading');\n\t}\n};\n\n// Read JSON file\n\nalasql.from.JSON = function (filename, opts, cb, idx, query) {\n\tvar res;\n\n\tfilename = alasql.utils.autoExtFilename(filename, 'json', opts);\n\talasql.utils.loadFile(filename, !!cb, function (data) {\n\n\t\t//\t\tres = [{a:1}];\n\t\tres = JSON.parse(data);\n\t\tif (cb) {\n\t\t\tres = cb(res, idx, query);\n\t\t}\n\t});\n\treturn res;\n};\n\nalasql.from.TXT = function (filename, opts, cb, idx, query) {\n\tvar res;\n\tfilename = alasql.utils.autoExtFilename(filename, 'txt', opts);\n\talasql.utils.loadFile(filename, !!cb, function (data) {\n\t\tres = data.split(/\\r?\\n/);\n\n\t\t// Remove last line if empty\n\t\tif (res[res.length - 1] === '') {\n\t\t\tres.pop();\n\t\t}\n\t\tfor (var i = 0, ilen = res.length; i < ilen; i++) {\n\t\t\t// Please avoid '===' here\n\t\t\tif (res[i] == +res[i]) {\n\t\t\t\t// eslint:ignore\n\t\t\t\t// jshint ignore:line\n\t\t\t\tres[i] = +res[i];\n\t\t\t}\n\t\t\tres[i] = [res[i]];\n\t\t}\n\t\tif (cb) {\n\t\t\tres = cb(res, idx, query);\n\t\t}\n\t});\n\treturn res;\n};\n\nalasql.from.TAB = alasql.from.TSV = function (filename, opts, cb, idx, query) {\n\topts = opts || {};\n\topts.separator = '\\t';\n\tfilename = alasql.utils.autoExtFilename(filename, 'tab', opts);\n\topts.autoext = false;\n\treturn alasql.from.CSV(filename, opts, cb, idx, query);\n};\n\nalasql.from.CSV = function (contents, opts, cb, idx, query) {\n\tcontents = '' + contents;\n\tvar opt = {\n\t\tseparator: ',',\n\t\tquote: '\"',\n\t\theaders: true,\n\t\traw: false,\n\t};\n\talasql.utils.extend(opt, opts);\n\tvar res;\n\tvar hs = [];\n\tfunction parseText(text) {\n\t\tvar delimiterCode = opt.separator.charCodeAt(0);\n\t\tvar quoteCode = opt.quote.charCodeAt(0);\n\n\t\tvar EOL = {},\n\t\t\tEOF = {},\n\t\t\trows = [],\n\t\t\tN = text.length,\n\t\t\tI = 0,\n\t\t\tn = 0,\n\t\t\tt,\n\t\t\teol;\n\t\tfunction token() {\n\t\t\tif (I >= N) {\n\t\t\t\treturn EOF;\n\t\t\t}\n\t\t\tif (eol) {\n\t\t\t\treturn (eol = false), EOL;\n\t\t\t}\n\t\t\tvar j = I;\n\t\t\tif (text.charCodeAt(j) === quoteCode) {\n\t\t\t\tvar i = j;\n\t\t\t\twhile (i++ < N) {\n\t\t\t\t\tif (text.charCodeAt(i) === quoteCode) {\n\t\t\t\t\t\tif (text.charCodeAt(i + 1) !== quoteCode) {\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t\t++i;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tI = i + 2;\n\t\t\t\tvar c = text.charCodeAt(i + 1);\n\t\t\t\tif (c === 13) {\n\t\t\t\t\teol = true;\n\t\t\t\t\tif (text.charCodeAt(i + 2) === 10) {\n\t\t\t\t\t\t++I;\n\t\t\t\t\t}\n\t\t\t\t} else if (c === 10) {\n\t\t\t\t\teol = true;\n\t\t\t\t}\n\t\t\t\treturn text.substring(j + 1, i).replace(/\"\"/g, '\"');\n\t\t\t}\n\t\t\twhile (I < N) {\n\t\t\t\tvar c = text.charCodeAt(I++),\n\t\t\t\t\tk = 1;\n\t\t\t\tif (c === 10) {\n\t\t\t\t\teol = true;\n\t\t\t\t} else if (c === 13) {\n\t\t\t\t\teol = true;\n\t\t\t\t\tif (text.charCodeAt(I) === 10) {\n\t\t\t\t\t\t++I;\n\t\t\t\t\t\t++k;\n\t\t\t\t\t}\n\t\t\t\t} else if (c !== delimiterCode) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\treturn text.substring(j, I - k);\n\t\t\t}\n\t\t\treturn text.substring(j);\n\t\t}\n\n\t\twhile ((t = token()) !== EOF) {\n\t\t\tvar a = [];\n\t\t\twhile (t !== EOL && t !== EOF) {\n\t\t\t\ta.push(t.trim());\n\t\t\t\tt = token();\n\t\t\t}\n\n\t\t\tif (opt.headers) {\n\t\t\t\tif (n === 0) {\n\t\t\t\t\tif (typeof opt.headers === 'boolean') {\n\t\t\t\t\t\ths = a;\n\t\t\t\t\t} else if (Array.isArray(opt.headers)) {\n\t\t\t\t\t\ths = opt.headers;\n\t\t\t\t\t\tvar r = {};\n\t\t\t\t\t\ths.forEach(function (h, idx) {\n\t\t\t\t\t\t\tr[h] = a[idx];\n\t\t\t\t\t\t\t// Please avoid === here\n\t\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t\t!opt.raw &&\n\t\t\t\t\t\t\t\ttypeof r[h] !== 'undefined' &&\n\t\t\t\t\t\t\t\tr[h].length !== 0 &&\n\t\t\t\t\t\t\t\tr[h].trim() == +r[h]\n\t\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t\t// jshint ignore:line\n\t\t\t\t\t\t\t\tr[h] = +r[h];\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t});\n\t\t\t\t\t\trows.push(r);\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tvar r = {};\n\t\t\t\t\ths.forEach(function (h, idx) {\n\t\t\t\t\t\tr[h] = a[idx];\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t!opt.raw &&\n\t\t\t\t\t\t\ttypeof r[h] !== 'undefined' &&\n\t\t\t\t\t\t\tr[h].length !== 0 &&\n\t\t\t\t\t\t\tr[h].trim() == +r[h]\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t// jshint ignore:line\n\t\t\t\t\t\t\tr[h] = +r[h];\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t\trows.push(r);\n\t\t\t\t}\n\t\t\t\tn++;\n\t\t\t} else {\n\t\t\t\tvar r = {};\n\t\t\t\t// different bug here, if headers are not defined, the numerical values will not be parsed\n\t\t\t\ta.forEach(function (v, idx) {\n\t\t\t\t\tr[idx] = a[idx];\n\t\t\t\t\tif (\n\t\t\t\t\t\t!opt.raw &&\n\t\t\t\t\t\ttypeof r[idx] !== 'undefined' &&\n\t\t\t\t\t\tr[idx].length !== 0 &&\n\t\t\t\t\t\tr[idx].trim() == +r[idx]\n\t\t\t\t\t) {\n\t\t\t\t\t\t// jshint ignore:line\n\t\t\t\t\t\tr[idx] = +r[idx];\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\trows.push(r);\n\t\t\t}\n\t\t}\n\n\t\tres = rows;\n\n\t\tif (opt.headers) {\n\t\t\tif (query && query.sources && query.sources[idx]) {\n\t\t\t\tvar columns = (query.sources[idx].columns = []);\n\t\t\t\ths.forEach(function (h) {\n\t\t\t\t\tcolumns.push({columnid: h});\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\n\t\tif (cb) {\n\t\t\tres = cb(res, idx, query);\n\t\t}\n\t}\n\tif (new RegExp('\\n').test(contents)) {\n\t\tparseText(contents);\n\t} else {\n\t\tcontents = alasql.utils.autoExtFilename(contents, 'csv', opts);\n\t\talasql.utils.loadFile(contents, !!cb, parseText, query.cb);\n\t}\n\treturn res;\n};\n\nfunction XLSXLSX(X, filename, opts, cb, idx, query) {\n\tvar opt = {};\n\topts = opts || {};\n\talasql.utils.extend(opt, opts);\n\tif (typeof opt.headers === 'undefined') {\n\t\topt.headers = true;\n\t}\n\tvar res;\n\n\t/**\n\t * see https://github.com/SheetJS/js-xlsx/blob/5ae6b1965bfe3764656a96f536b356cd1586fec7/README.md\n\t * for example of using readAsArrayBuffer under `Parsing Workbooks`\n\t */\n\tfunction fixdata(data) {\n\t\tvar o = '',\n\t\t\tl = 0,\n\t\t\tw = 10240;\n\t\tfor (; l < data.byteLength / w; ++l)\n\t\t\to += String.fromCharCode.apply(null, new Uint8Array(data.slice(l * w, l * w + w)));\n\t\to += String.fromCharCode.apply(null, new Uint8Array(data.slice(l * w)));\n\t\treturn o;\n\t}\n\tfunction getHeaderText(text) {\n\t\t// if casesensitive option is set to false and there is a text value return lowercase value of text\n\t\tif (text && alasql.options.casesensitive === false) {\n\t\t\treturn text.toLowerCase();\n\t\t} else {\n\t\t\treturn text;\n\t\t}\n\t}\n\tfilename = alasql.utils.autoExtFilename(filename, 'xls', opts);\n\talasql.utils.loadBinaryFile(\n\t\tfilename,\n\t\t!!cb,\n\t\tfunction (data) {\n\t\t\t//\tfunction processData(data) {\n\t\t\tif (data instanceof ArrayBuffer) {\n\t\t\t\tvar arr = fixdata(data);\n\t\t\t\tvar workbook = X.read(btoa(arr), {\n\t\t\t\t\ttype: 'base64',\n\t\t\t\t\t...alasql.options.excel,\n\t\t\t\t\t...opts,\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\tvar workbook = X.read(data, {\n\t\t\t\t\ttype: 'binary',\n\t\t\t\t\t...alasql.options.excel,\n\t\t\t\t\t...opts,\n\t\t\t\t});\n\t\t\t}\n\n\t\t\tvar sheetid;\n\t\t\tif (typeof opt.sheetid === 'undefined') {\n\t\t\t\tsheetid = workbook.SheetNames[0];\n\t\t\t} else if (typeof opt.sheetid === 'number') {\n\t\t\t\tsheetid = workbook.SheetNames[opt.sheetid];\n\t\t\t} else {\n\t\t\t\tsheetid = opt.sheetid;\n\t\t\t}\n\t\t\tvar range;\n\t\t\tvar res = [];\n\t\t\tif (typeof opt.range === 'undefined') {\n\t\t\t\trange = workbook.Sheets[sheetid]['!ref'];\n\t\t\t} else {\n\t\t\t\trange = opt.range;\n\t\t\t\tif (workbook.Sheets[sheetid][range]) {\n\t\t\t\t\trange = workbook.Sheets[sheetid][range];\n\t\t\t\t}\n\t\t\t}\n\t\t\t// if range has some value then data is present in the current sheet\n\t\t\t// else current sheet is empty\n\t\t\tif (range) {\n\t\t\t\tvar rg = range.split(':');\n\t\t\t\tvar col0 = rg[0].match(/[A-Z]+/)[0];\n\t\t\t\tvar row0 = +rg[0].match(/[0-9]+/)[0];\n\t\t\t\tvar col1 = rg[1].match(/[A-Z]+/)[0];\n\t\t\t\tvar row1 = +rg[1].match(/[0-9]+/)[0];\n\n\t\t\t\tvar hh = {};\n\t\t\t\tvar xlscnCol0 = alasql.utils.xlscn(col0);\n\t\t\t\tvar xlscnCol1 = alasql.utils.xlscn(col1);\n\t\t\t\tfor (var j = xlscnCol0; j <= xlscnCol1; j++) {\n\t\t\t\t\tvar col = alasql.utils.xlsnc(j);\n\t\t\t\t\tif (opt.headers) {\n\t\t\t\t\t\tif (workbook.Sheets[sheetid][col + '' + row0]) {\n\t\t\t\t\t\t\thh[col] = getHeaderText(workbook.Sheets[sheetid][col + '' + row0].v);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\thh[col] = getHeaderText(col);\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\thh[col] = col;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif (opt.headers) {\n\t\t\t\t\trow0++;\n\t\t\t\t}\n\t\t\t\tfor (var i = row0; i <= row1; i++) {\n\t\t\t\t\tvar row = {};\n\t\t\t\t\tfor (var j = xlscnCol0; j <= xlscnCol1; j++) {\n\t\t\t\t\t\tvar col = alasql.utils.xlsnc(j);\n\t\t\t\t\t\tif (workbook.Sheets[sheetid][col + '' + i]) {\n\t\t\t\t\t\t\trow[hh[col]] = workbook.Sheets[sheetid][col + '' + i].v;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tres.push(row);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tres.push([]);\n\t\t\t}\n\n\t\t\t// Remove last empty line (issue #548)\n\t\t\tif (res.length > 0 && res[res.length - 1] && Object.keys(res[res.length - 1]).length == 0) {\n\t\t\t\tres.pop();\n\t\t\t}\n\n\t\t\tif (cb) {\n\t\t\t\tres = cb(res, idx, query);\n\t\t\t}\n\t\t},\n\t\tfunction (err) {\n\t\t\tthrow err;\n\t\t}\n\t);\n\n\treturn res;\n}\n\nalasql.from.XLS = function (filename, opts, cb, idx, query) {\n\topts = opts || {};\n\tfilename = alasql.utils.autoExtFilename(filename, 'xls', opts);\n\topts.autoExt = false;\n\treturn XLSXLSX(getXLSX(), filename, opts, cb, idx, query);\n};\n\nalasql.from.XLSX = function (filename, opts, cb, idx, query) {\n\topts = opts || {};\n\tfilename = alasql.utils.autoExtFilename(filename, 'xlsx', opts);\n\topts.autoExt = false;\n\treturn XLSXLSX(getXLSX(), filename, opts, cb, idx, query);\n};\n\nalasql.from.ODS = function (filename, opts, cb, idx, query) {\n\topts = opts || {};\n\tfilename = alasql.utils.autoExtFilename(filename, 'ods', opts);\n\topts.autoExt = false;\n\treturn XLSXLSX(getXLSX(), filename, opts, cb, idx, query);\n};\nalasql.from.XML = function (filename, opts, cb, idx, query) {\n\tvar res;\n\n\talasql.utils.loadFile(filename, !!cb, function (data) {\n\n\t\t// res = [{a:1}];\n\n\t\tres = xmlparse(data).root;\n\n\t\tif (cb) res = cb(res, idx, query);\n\t});\n\treturn res;\n};\n\n/**\n * Parse the given string of `xml`.\n *\n * @param {String} xml\n * @return {Object}\n * @api public\n */\n\nfunction xmlparse(xml) {\n\txml = xml.trim();\n\n\t// strip comments\n\txml = xml.replace(//g, '');\n\n\treturn document();\n\n\t/**\n\t * XML document.\n\t */\n\n\tfunction document() {\n\t\treturn {\n\t\t\tdeclaration: declaration(),\n\t\t\troot: tag(),\n\t\t};\n\t}\n\n\t/**\n\t * Declaration.\n\t */\n\n\tfunction declaration() {\n\t\tvar m = match(/^<\\?xml\\s*/);\n\t\tif (!m) return;\n\n\t\t// tag\n\t\tvar node = {\n\t\t\tattributes: {},\n\t\t};\n\n\t\t// attributes\n\t\twhile (!(eos() || is('?>'))) {\n\t\t\tvar attr = attribute();\n\t\t\tif (!attr) return node;\n\t\t\tnode.attributes[attr.name] = attr.value;\n\t\t}\n\n\t\tmatch(/\\?>\\s*/);\n\n\t\treturn node;\n\t}\n\n\t/**\n\t * Tag.\n\t */\n\n\tfunction tag() {\n\t\tvar m = match(/^<([\\w-:.]+)\\s*/);\n\t\tif (!m) return;\n\n\t\t// name\n\t\tvar node = {\n\t\t\tname: m[1],\n\t\t\tattributes: {},\n\t\t\tchildren: [],\n\t\t};\n\n\t\t// attributes\n\t\twhile (!(eos() || is('>') || is('?>') || is('/>'))) {\n\t\t\tvar attr = attribute();\n\t\t\tif (!attr) return node;\n\t\t\tnode.attributes[attr.name] = attr.value;\n\t\t}\n\n\t\t// self closing tag\n\t\tif (match(/^\\s*\\/>\\s*/)) {\n\t\t\treturn node;\n\t\t}\n\n\t\tmatch(/\\??>\\s*/);\n\n\t\t// content\n\t\tnode.content = content();\n\n\t\t// children\n\t\tvar child;\n\t\twhile ((child = tag())) {\n\t\t\tnode.children.push(child);\n\t\t}\n\n\t\t// closing\n\t\tmatch(/^<\\/[\\w-:.]+>\\s*/);\n\n\t\treturn node;\n\t}\n\n\t/**\n\t * Text content.\n\t */\n\n\tfunction content() {\n\t\tvar m = match(/^([^<]*)/);\n\t\tif (m) return m[1];\n\t\treturn '';\n\t}\n\n\t/**\n\t * Attribute.\n\t */\n\n\tfunction attribute() {\n\t\tvar m = match(/([\\w:-]+)\\s*=\\s*(\"[^\"]*\"|'[^']*'|\\w+)\\s*/);\n\t\tif (!m) return;\n\t\treturn {name: m[1], value: strip(m[2])};\n\t}\n\n\t/**\n\t * Strip quotes from `val`.\n\t */\n\n\tfunction strip(val) {\n\t\treturn val.replace(/^['\"]|['\"]$/g, '');\n\t}\n\n\t/**\n\t * Match `re` and advance the string.\n\t */\n\n\tfunction match(re) {\n\t\tvar m = xml.match(re);\n\t\tif (!m) return;\n\t\txml = xml.slice(m[0].length);\n\t\treturn m;\n\t}\n\n\t/**\n\t * End-of-source.\n\t */\n\n\tfunction eos() {\n\t\treturn 0 == xml.length;\n\t}\n\n\t/**\n\t * Check for `prefix`.\n\t */\n\n\tfunction is(prefix) {\n\t\treturn 0 == xml.indexOf(prefix);\n\t}\n}\nalasql.from.GEXF = function (filename, opts, cb, idx, query) {\n\tvar res;\n\talasql('SEARCH FROM XML(' + filename + ')', [], function (data) {\n\t\tres = data;\n\n\t\tif (cb) res = cb(res);\n\t});\n\treturn res;\n};\n/*\n//\n// HELP for Alasql.js\n// Date: 03.11.2014\n// (c) 2014, Andrey Gershun\n//\n*/\n\n/* globals: alasql, yy */\n\n/**\n\tPrint statement\n\t@class\n\t@param {object} params Initial setup properties\n*/\n\n/* global alasql, yy */\n\nyy.Print = function (params) {\n\treturn Object.assign(this, params);\n};\n\n/**\n\tGenerate SQL string\n\t@this Print statement object\n*/\nyy.Print.prototype.toString = function () {\n\tvar s = 'PRINT';\n\tif (this.statement) s += ' ' + this.statement.toString();\n\treturn s;\n};\n\n/**\n \tPrint result of select statement or expression\n \t@param {string} databaseid Database identificator\n \t@param {object} params Query parameters\n \t@param {statement-callback} cb Callback function\n\t@this Print statement object\n*/\nyy.Print.prototype.execute = function (databaseid, params, cb) {\n\n\tvar self = this;\n\tvar res = 1;\n\n\talasql.precompile(this, databaseid, params); /** @todo Change from alasql to this */\n\n\tif (this.exprs && this.exprs.length > 0) {\n\t\tvar rs = this.exprs.map(function (expr) {\n\n\t\t\tvar exprfn = new Function(\n\t\t\t\t'params,alasql,p',\n\t\t\t\t'var y;return ' + expr.toJS('({})', '', null)\n\t\t\t).bind(self);\n\t\t\tvar r = exprfn(params, alasql);\n\t\t\treturn JSONtoString(r);\n\t\t});\n\t\tconsole.log.apply(console, rs);\n\t} else if (this.select) {\n\t\tvar r = this.select.execute(databaseid, params);\n\t\tconsole.log(JSONtoString(r));\n\t} else {\n\t\tconsole.log();\n\t}\n\n\tif (cb) res = cb(res);\n\treturn res;\n};\n/*\n//\n// HELP for Alasql.js\n// Date: 03.11.2014\n// (c) 2014, Andrey Gershun\n//\n*/\n\nyy.Source = function (params) {\n\treturn Object.assign(this, params);\n};\nyy.Source.prototype.toString = function () {\n\tvar s = 'SOURCE';\n\tif (this.url) s += \" '\" + this.url + \" '\";\n\treturn s;\n};\n\n// SOURCE FILE\nyy.Source.prototype.execute = function (databaseid, params, cb) {\n\n\tvar res;\n\tloadFile(\n\t\tthis.url,\n\t\t!!cb,\n\t\tfunction (data) {\n\n\t\t\t//\t\tres = 1;\n\t\t\tres = alasql(data);\n\t\t\tif (cb) res = cb(res);\n\t\t\treturn res;\n\t\t},\n\t\tfunction (err) {\n\t\t\tthrow err;\n\t\t}\n\t);\n\treturn res;\n};\n/*\n//\n// HELP for Alasql.js\n// Date: 03.11.2014\n// (c) 2014, Andrey Gershun\n//\n*/\n\n/* global alasql, yy */\n\nyy.Require = function (params) {\n\treturn Object.assign(this, params);\n};\nyy.Require.prototype.toString = function () {\n\tvar s = 'REQUIRE';\n\tif (this.paths && this.paths.length > 0) {\n\t\ts += this.paths\n\t\t\t.map(function (path) {\n\t\t\t\treturn path.toString();\n\t\t\t})\n\t\t\t.join(',');\n\t}\n\tif (this.plugins && this.plugins.length > 0) {\n\t\ts += this.plugins\n\t\t\t.map(function (plugin) {\n\t\t\t\treturn plugin.toUpperCase();\n\t\t\t})\n\t\t\t.join(',');\n\t}\n\treturn s;\n};\n\n/**\n Attach plug-in for Alasql\n */\nyy.Require.prototype.execute = function (databaseid, params, cb) {\n\tvar self = this;\n\tvar res = 0;\n\tvar ss = '';\n\n\tif (this.paths && this.paths.length > 0) {\n\t\tthis.paths.forEach(function (path) {\n\t\t\tloadFile(path.value, !!cb, function (data) {\n\t\t\t\tres++;\n\n\t\t\t\tss += data;\n\t\t\t\tif (res < self.paths.length) return;\n\n\t\t\t\tnew Function('params,alasql', ss)(params, alasql);\n\t\t\t\tif (cb) res = cb(res);\n\t\t\t});\n\t\t});\n\t} else if (this.plugins && this.plugins.length > 0) {\n\t\tthis.plugins.forEach(function (plugin) {\n\t\t\t// If plugin is not loaded already\n\t\t\tif (!alasql.plugins[plugin]) {\n\t\t\t\tloadFile(alasql.path + '/alasql-' + plugin.toLowerCase() + '.js', !!cb, function (data) {\n\t\t\t\t\t// Execute all plugins at the same time\n\t\t\t\t\tres++;\n\t\t\t\t\tss += data;\n\t\t\t\t\tif (res < self.plugins.length) return;\n\n\t\t\t\t\tnew Function('params,alasql', ss)(params, alasql);\n\t\t\t\t\talasql.plugins[plugin] = true; // Plugin is loaded\n\t\t\t\t\tif (cb) res = cb(res);\n\t\t\t\t});\n\t\t\t}\n\t\t});\n\t} else {\n\t\tif (cb) res = cb(res);\n\t}\n\treturn res;\n};\n/*\n//\n// HELP for Alasql.js\n// Date: 03.11.2014\n// (c) 2014, Andrey Gershun\n//\n*/\n\nyy.Assert = function (params) {\n\treturn Object.assign(this, params);\n};\nyy.Source.prototype.toString = function () {\n\tvar s = 'ASSERT';\n\tif (this.value) s += ' ' + JSON.stringify(this.value);\n\treturn s;\n};\n\n// SOURCE FILE\nyy.Assert.prototype.execute = function (databaseid) {\n\n\tif (!deepEqual(alasql.res, this.value)) {\n\t\t//\t\tif(this.message) {\n\t\t//\t\t\tthrow this.\n\t\t//\t\t} else {\n\t\tthrow new Error(\n\t\t\t(this.message || 'Assert wrong') +\n\t\t\t\t': ' +\n\t\t\t\tJSON.stringify(alasql.res) +\n\t\t\t\t' == ' +\n\t\t\t\tJSON.stringify(this.value)\n\t\t);\n\t\t//\t\t}\n\t}\n\treturn 1;\n};\n//\n// 91indexeddb.js\n// AlaSQL IndexedDB module\n// Date: 18.04.2015\n// (c) Andrey Gershun\n//\n\n/* global alasql, yy, utils*/\n\nvar IDB = (alasql.engines.INDEXEDDB = function () {\n\t'';\n});\n\n/**\n * @param {string} name\n * @returns {Promise<{name: string, version: number}|0>}\n */\nasync function _databaseExists(name) {\n\tconst indexedDB = globalThis.indexedDB;\n\n\tif (!indexedDB) {\n\t\tthrow new Error('IndexedDB is not supported in this browser');\n\t}\n\n\tif (indexedDB.databases) {\n\t\tconst dbs = await indexedDB.databases();\n\t\tconst db = dbs.find(db => db.name === name);\n\t\t// @ts-ignore\n\t\treturn db || 0;\n\t}\n\n\t// Try if it exist\n\tconst req = indexedDB.open(name);\n\n\treturn new Promise(function (resolve, reject) {\n\t\treq.onsuccess = () => {\n\t\t\treq.result.close();\n\t\t\tresolve({name, version: req.result.version});\n\t\t};\n\n\t\treq.onupgradeneeded = evt => {\n\t\t\tevt.target.transaction.abort();\n\t\t\tresolve(0);\n\t\t};\n\n\t\treq.onerror = () => {\n\t\t\treject(new Error('IndexedDB error'));\n\t\t};\n\n\t\treq.onblocked = () => {\n\t\t\tresolve({name, version: req.result.version});\n\t\t};\n\t});\n}\n\n//\n// SHOW DATABASES\n// work only in chrome\n//\nIDB.showDatabases = function (like, cb) {\n\tif (!indexedDB.databases) {\n\t\tcb(null, new Error('SHOW DATABASE is not supported in this browser'));\n\t\treturn;\n\t}\n\n\tindexedDB.databases().then(dblist => {\n\t\tconst res = [];\n\t\tconst relike = like && new RegExp(like.value.replace(/\\%/g, '.*'), 'g');\n\n\t\tfor (var i = 0; i < dblist.length; i++) {\n\t\t\tif (!like || dblist[i].name.match(relike)) {\n\t\t\t\tres.push({databaseid: dblist[i].name});\n\t\t\t}\n\t\t}\n\n\t\tcb(res);\n\t});\n};\n\nIDB.createDatabase = async function (ixdbid, args, ifnotexists, dbid, cb) {\n\tconst found = await _databaseExists(ixdbid).catch(err => {\n\t\tif (cb) cb(null, err);\n\t\tthrow err;\n\t});\n\n\tif (found) {\n\t\tif (ifnotexists) {\n\t\t\tcb && cb(0);\n\t\t} else {\n\t\t\tconst err = new Error(\n\t\t\t\t`IndexedDB: Cannot create new database \"${ixdbid}\" because it already exists`\n\t\t\t);\n\t\t\tif (cb) cb(null, err);\n\t\t}\n\t} else {\n\t\tconst request = indexedDB.open(ixdbid, 1);\n\t\trequest.onsuccess = () => {\n\t\t\trequest.result.close();\n\t\t\tcb(1);\n\t\t};\n\t}\n};\n\nIDB.dropDatabase = async function (ixdbid, ifexists, cb) {\n\tconst found = await _databaseExists(ixdbid).catch(err => {\n\t\tif (cb) cb(null, err);\n\t\tthrow err;\n\t});\n\n\tif (found) {\n\t\tconst request = indexedDB.deleteDatabase(ixdbid);\n\t\trequest.onsuccess = () => {\n\t\t\tif (cb) cb(1);\n\t\t};\n\t} else {\n\t\tif (ifexists) {\n\t\t\tcb && cb(0);\n\t\t} else {\n\t\t\tcb &&\n\t\t\t\tcb(\n\t\t\t\t\tnull,\n\t\t\t\t\tnew Error(`IndexedDB: Cannot drop new database \"${ixdbid}\" because it does not exist'`)\n\t\t\t\t);\n\t\t}\n\t}\n};\n\nIDB.attachDatabase = async function (ixdbid, dbid, args, params, cb) {\n\tconst found = await _databaseExists(ixdbid).catch(err => {\n\t\tif (cb) cb(null, err);\n\t\tthrow err;\n\t});\n\n\tif (!found) {\n\t\tconst err = new Error(\n\t\t\t`IndexedDB: Cannot attach database \"${ixdbid}\" because it does not exist`\n\t\t);\n\t\tif (cb) cb(null, err);\n\t\tthrow err;\n\t}\n\n\tconst stores = await new Promise((resolve, reject) => {\n\t\tconst request = indexedDB.open(ixdbid);\n\t\trequest.onsuccess = () => {\n\t\t\tresolve(request.result.objectStoreNames);\n\t\t\trequest.result.close();\n\t\t};\n\t});\n\n\tconst db = new alasql.Database(dbid || ixdbid);\n\tdb.engineid = 'INDEXEDDB';\n\tdb.ixdbid = ixdbid;\n\tdb.tables = [];\n\n\tfor (var i = 0; i < stores.length; i++) {\n\t\tdb.tables[stores[i]] = {};\n\t}\n\n\tif (cb) cb(1);\n};\n\nIDB.createTable = async function (databaseid, tableid, ifnotexists, cb) {\n\tconst ixdbid = alasql.databases[databaseid].ixdbid;\n\tconst found = await _databaseExists(ixdbid).catch(err => {\n\t\tif (cb) cb(null, err);\n\t\tthrow err;\n\t});\n\n\tif (!found) {\n\t\tconst err = new Error(\n\t\t\t'IndexedDB: Cannot create table in database \"' + ixdbid + '\" because it does not exist'\n\t\t);\n\t\tif (cb) cb(null, err);\n\t\tthrow err;\n\t}\n\n\tconst request = indexedDB.open(ixdbid, found.version + 1);\n\trequest.onupgradeneeded = function (event) {\n\t\trequest.result.createObjectStore(tableid, {autoIncrement: true});\n\t};\n\trequest.onsuccess = function (event) {\n\t\trequest.result.close();\n\t\tif (cb) cb(1);\n\t};\n\trequest.onerror = evt => {\n\t\tcb(null, evt);\n\t};\n\trequest.onblocked = function (event) {\n\t\tcb(\n\t\t\tnull,\n\t\t\tnew Error(`Cannot create table \"${tableid}\" because database \"${databaseid}\" is blocked`)\n\t\t);\n\t};\n};\n\nIDB.dropTable = async function (databaseid, tableid, ifexists, cb) {\n\tconst ixdbid = alasql.databases[databaseid].ixdbid;\n\tconst found = await _databaseExists(ixdbid).catch(err => {\n\t\tif (cb) cb(null, err);\n\t\tthrow err;\n\t});\n\n\tif (!found) {\n\t\tconst err = new Error(\n\t\t\t'IndexedDB: Cannot drop table in database \"' + ixdbid + '\" because it does not exist'\n\t\t);\n\t\tif (cb) cb(null, err);\n\t\tthrow err;\n\t}\n\n\tconst request = indexedDB.open(ixdbid, found.version + 1);\n\n\tlet err;\n\trequest.onupgradeneeded = function (evt) {\n\t\tvar ixdb = request.result;\n\t\tif (ixdb.objectStoreNames.contains(tableid)) {\n\t\t\tixdb.deleteObjectStore(tableid);\n\t\t\tdelete alasql.databases[databaseid].tables[tableid];\n\t\t} else {\n\t\t\tif (!ifexists) {\n\t\t\t\terr = new Error(`IndexedDB: Cannot drop table \"${tableid}\" because it does not exist`);\n\t\t\t\tevt.target.transaction.abort();\n\t\t\t}\n\t\t}\n\t};\n\trequest.onsuccess = function (event) {\n\t\trequest.result.close();\n\t\tif (cb) cb(1);\n\t};\n\trequest.onerror = function (event) {\n\t\tcb && cb(null, err || event);\n\t};\n\trequest.onblocked = function (event) {\n\t\tcb(\n\t\t\tnull,\n\t\t\tnew Error(`Cannot drop table \"${tableid}\" because database \"${databaseid}\" is blocked`)\n\t\t);\n\t};\n};\n\nIDB.intoTable = function (databaseid, tableid, value, columns, cb) {\n\tconst ixdbid = alasql.databases[databaseid].ixdbid;\n\tconst request = indexedDB.open(ixdbid);\n\tvar db = alasql.databases[databaseid];\n\tvar table = db.tables[tableid];\n\n\trequest.onupgradeneeded = evt => {\n\t\tevt.target.transaction.abort();\n\t\tconst err = new Error(\n\t\t\t`Cannot insert into table \"${tableid}\" because database \"${databaseid}\" does not exist`\n\t\t);\n\t\tif (cb) cb(null, err);\n\t};\n\n\trequest.onsuccess = () => {\n\t\tvar ixdb = request.result;\n\t\tvar tx = ixdb.transaction([tableid], 'readwrite');\n\t\tvar tb = tx.objectStore(tableid);\n\t\tfor (var i = 0, ilen = value.length; i < ilen; i++) {\n\t\t\ttb.add(value[i]);\n\t\t}\n\t\ttx.oncomplete = function () {\n\t\t\tixdb.close();\n\t\t\tfor (var tr in table.afterinsert) {\n\t\t\t\tif (table.afterinsert[tr]) {\n\t\t\t\t\tvar trigger = table.afterinsert[tr];\n\t\t\t\t\tif (trigger.funcid) {\n\t\t\t\t\t\talasql.fn[trigger.funcid](value);\n\t\t\t\t\t} else if (trigger.statement) {\n\t\t\t\t\t\ttrigger.statement.execute(databaseid);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (cb) cb(ilen);\n\t\t};\n\t};\n};\n\nIDB.fromTable = function (databaseid, tableid, cb, idx, query) {\n\tconst ixdbid = alasql.databases[databaseid].ixdbid;\n\tconst request = indexedDB.open(ixdbid);\n\n\trequest.onupgradeneeded = evt => {\n\t\tevt.target.transaction.abort();\n\t\tconst err = new Error(\n\t\t\t`Cannot select from table \"${tableid}\" because database \"${databaseid}\" does not exist`\n\t\t);\n\t\tif (cb) cb(null, err);\n\t};\n\n\trequest.onsuccess = () => {\n\t\tconst res = [];\n\t\tconst ixdb = request.result;\n\t\tconst cur = ixdb.transaction([tableid]).objectStore(tableid).openCursor();\n\n\t\tcur.onsuccess = () => {\n\t\t\tconst cursor = cur.result;\n\t\t\tif (cursor) {\n\t\t\t\t// if keyPath(columns) is not present then we take the key and value as object.\n\t\t\t\tconst cursorValue = typeof cursor === Object ? cursor.value : {[cursor.key]: cursor.value};\n\t\t\t\tres.push(cursorValue);\n\t\t\t\tcursor.continue();\n\t\t\t} else {\n\t\t\t\tixdb.close();\n\t\t\t\tif (cb) cb(res, idx, query);\n\t\t\t}\n\t\t};\n\t};\n};\n\nIDB.deleteFromTable = function (databaseid, tableid, wherefn, params, cb) {\n\tconst ixdbid = alasql.databases[databaseid].ixdbid;\n\tconst request = indexedDB.open(ixdbid);\n\n\trequest.onsuccess = () => {\n\t\tconst ixdb = request.result;\n\t\tconst cur = ixdb.transaction([tableid], 'readwrite').objectStore(tableid).openCursor();\n\n\t\tlet num = 0;\n\t\tcur.onsuccess = () => {\n\t\t\tvar cursor = cur.result;\n\t\t\tif (cursor) {\n\t\t\t\tif (!wherefn || wherefn(cursor.value, params, alasql)) {\n\t\t\t\t\tcursor.delete();\n\t\t\t\t\tnum++;\n\t\t\t\t}\n\t\t\t\tcursor.continue();\n\t\t\t} else {\n\t\t\t\tixdb.close();\n\t\t\t\tif (cb) cb(num);\n\t\t\t}\n\t\t};\n\t};\n};\n\nIDB.updateTable = function (databaseid, tableid, assignfn, wherefn, params, cb) {\n\tconst ixdbid = alasql.databases[databaseid].ixdbid;\n\tconst request = indexedDB.open(ixdbid);\n\trequest.onsuccess = function () {\n\t\tconst ixdb = request.result;\n\t\tconst cur = ixdb.transaction([tableid], 'readwrite').objectStore(tableid).openCursor();\n\n\t\tlet num = 0;\n\t\tcur.onsuccess = () => {\n\t\t\tvar cursor = cur.result;\n\t\t\tif (cursor) {\n\t\t\t\tif (!wherefn || wherefn(cursor.value, params)) {\n\t\t\t\t\tvar r = cursor.value;\n\t\t\t\t\tassignfn(r, params);\n\t\t\t\t\tcursor.update(r);\n\t\t\t\t\tnum++;\n\t\t\t\t}\n\t\t\t\tcursor.continue();\n\t\t\t} else {\n\t\t\t\tixdb.close();\n\t\t\t\tif (cb) cb(num);\n\t\t\t}\n\t\t};\n\t};\n};\n//\n// 91localstorage.js\n// localStorage and DOM-Storage engine\n// Date: 09.12.2014\n// (c) Andrey Gershun\n//\n\n/* global alasql, yy, localStorage*/\n\nvar LS = (alasql.engines.LOCALSTORAGE = function () {});\n\n/**\n\tRead data from localStorage with security breaks\n\t@param key {string} Address in localStorage\n\t@return {object} JSON object\n*/\nLS.get = function (key) {\n\tvar s = localStorage.getItem(key);\n\tif (typeof s === 'undefined') return;\n\tvar v;\n\ttry {\n\t\tv = JSON.parse(s);\n\t} catch (err) {\n\t\tthrow new Error('Cannot parse JSON object from localStorage' + s);\n\t}\n\treturn v;\n};\n\n/**\n\tStore data into localStorage with security breaks\n\t@param key {string} Address in localStorage\n\t@return {object} JSON object\n*/\nLS.set = function (key, value) {\n\tif (typeof value === 'undefined') localStorage.removeItem(key);\n\telse localStorage.setItem(key, JSON.stringify(value));\n};\n\n/**\n\tStore table structure and data into localStorage\n\t@param databaseid {string} AlaSQL database id (not external localStorage)\n\t@param tableid {string} Table name\n\t@return Nothing\n*/\nLS.storeTable = function (databaseid, tableid) {\n\tvar db = alasql.databases[databaseid];\n\tvar table = db.tables[tableid];\n\t// Create empty structure for table\n\tvar tbl = {};\n\ttbl.columns = table.columns;\n\ttbl.data = table.data;\n\ttbl.identities = table.identities;\n\t// TODO: May be add indexes, objects and other fields?\n\tLS.set(db.lsdbid + '.' + tableid, tbl);\n};\n\n/**\n\tRestore table structure and data\n\t@param databaseid {string} AlaSQL database id (not external localStorage)\n\t@param tableid {string} Table name\n\t@return Nothing\n*/\nLS.restoreTable = function (databaseid, tableid) {\n\tvar db = alasql.databases[databaseid];\n\tvar tbl = LS.get(db.lsdbid + '.' + tableid);\n\tvar table = new alasql.Table();\n\tfor (var f in tbl) {\n\t\ttable[f] = tbl[f];\n\t}\n\tdb.tables[tableid] = table;\n\ttable.indexColumns();\n\t// We need to add other things here\n\treturn table;\n};\n\n/**\n\tRemove table from localStorage\n\t@param databaseid {string} AlaSQL database id (not external localStorage)\n\t@param tableid {string} Table name\n*/\n\nLS.removeTable = function (databaseid, tableid) {\n\tvar db = alasql.databases[databaseid];\n\tlocalStorage.removeItem(db.lsdbid + '.' + tableid);\n};\n\n/**\n\tCreate database in localStorage\n\t@param lsdbid {string} localStorage database id\n\t@param args {array} List of parameters (not used in localStorage)\n\t@param ifnotexists {boolean} Check if database does not exist\n\t@param databaseid {string} AlaSQL database id (not external localStorage)\n\t@param cb {function} Callback\n*/\n\nLS.createDatabase = function (lsdbid, args, ifnotexists, databaseid, cb) {\n\tvar res = 1;\n\tvar ls = LS.get('alasql'); // Read list of all databases\n\tif (!(ifnotexists && ls && ls.databases && ls.databases[lsdbid])) {\n\t\tif (!ls) ls = {databases: {}}; // Empty record\n\t\tif (ls.databases && ls.databases[lsdbid]) {\n\t\t\tthrow new Error(\n\t\t\t\t'localStorage: Cannot create new database \"' + lsdbid + '\" because it already exists'\n\t\t\t);\n\t\t}\n\t\tls.databases[lsdbid] = true;\n\t\tLS.set('alasql', ls);\n\t\tLS.set(lsdbid, {databaseid: lsdbid, tables: {}}); // Create database record\n\t} else {\n\t\tres = 0;\n\t}\n\tif (cb) res = cb(res);\n\treturn res;\n};\n\n/**\n\tDrop external database\n\t@param lsdbid {string} localStorage database id\n\t@param ifexists {boolean} Check if database exists\n\t@param cb {function} Callback\n*/\nLS.dropDatabase = function (lsdbid, ifexists, cb) {\n\tvar res = 1;\n\tvar ls = LS.get('alasql');\n\tif (!(ifexists && ls && ls.databases && !ls.databases[lsdbid])) {\n\t\t// 1. Remove record from 'alasql' record\n\t\tif (!ls) {\n\t\t\tif (!ifexists) {\n\t\t\t\tthrow new Error('There is no any AlaSQL databases in localStorage');\n\t\t\t} else {\n\t\t\t\treturn cb ? cb(0) : 0;\n\t\t\t}\n\t\t}\n\n\t\tif (ls.databases && !ls.databases[lsdbid]) {\n\t\t\tthrow new Error(\n\t\t\t\t'localStorage: Cannot drop database \"' + lsdbid + '\" because there is no such database'\n\t\t\t);\n\t\t}\n\t\tdelete ls.databases[lsdbid];\n\t\tLS.set('alasql', ls);\n\n\t\t// 2. Remove tables definitions\n\t\tvar db = LS.get(lsdbid);\n\t\tfor (var tableid in db.tables) {\n\t\t\tlocalStorage.removeItem(lsdbid + '.' + tableid);\n\t\t}\n\n\t\t// 3. Remove database definition\n\t\tlocalStorage.removeItem(lsdbid);\n\t} else {\n\t\tres = 0;\n\t}\n\tif (cb) res = cb(res);\n\treturn res;\n};\n\n/**\n\tAttach existing localStorage database to AlaSQL database\n\t@param lsdibid {string} localStorage database id\n\t@param\n*/\n\nLS.attachDatabase = function (lsdbid, databaseid, args, params, cb) {\n\tvar res = 1;\n\tif (alasql.databases[databaseid]) {\n\t\tthrow new Error('Unable to attach database as \"' + databaseid + '\" because it already exists');\n\t}\n\tif (!databaseid) databaseid = lsdbid;\n\tvar db = new alasql.Database(databaseid);\n\tdb.engineid = 'LOCALSTORAGE';\n\tdb.lsdbid = lsdbid;\n\tdb.tables = LS.get(lsdbid).tables;\n\t// IF AUTOABORT IS OFF then copy data to memory\n\tif (!alasql.options.autocommit) {\n\t\tif (db.tables) {\n\t\t\tfor (var tbid in db.tables) {\n\t\t\t\tLS.restoreTable(databaseid, tbid);\n\t\t\t\t//\t\t\t\tdb.tables[tbid].data = LS.get(db.lsdbid+'.'+tbid);\n\t\t\t}\n\t\t}\n\t}\n\tif (cb) res = cb(res);\n\treturn res;\n};\n\n/**\n\tShow list of databases from localStorage\n\t@param like {string} Mathing pattern\n\t@param cb {function} Callback\n*/\nLS.showDatabases = function (like, cb) {\n\tvar res = [];\n\tvar ls = LS.get('alasql');\n\tif (like) {\n\t\t// TODO: If we have a special function for LIKE patterns?\n\t\tvar relike = new RegExp(like.value.replace(/%/g, '.*'), 'g');\n\t}\n\tif (ls && ls.databases) {\n\t\tfor (var dbid in ls.databases) {\n\t\t\tres.push({databaseid: dbid});\n\t\t}\n\t\tif (like && res && res.length > 0) {\n\t\t\tres = res.filter(function (d) {\n\t\t\t\treturn d.databaseid.match(relike);\n\t\t\t});\n\t\t}\n\t}\n\tif (cb) res = cb(res);\n\treturn res;\n};\n\n/**\n\tCreate table in localStorage database\n\t@param databaseid {string} AlaSQL database id\n\t@param tableid {string} Table id\n\t@param ifnotexists {boolean} If not exists flag\n\t@param cb {function} Callback\n*/\n\nLS.createTable = function (databaseid, tableid, ifnotexists, cb) {\n\tvar res = 1;\n\tvar lsdbid = alasql.databases[databaseid].lsdbid;\n\tvar tb = LS.get(lsdbid + '.' + tableid);\n\t// Check if such record exists\n\tif (tb && !ifnotexists) {\n\t\tthrow new Error(\n\t\t\t'Table \"' + tableid + '\" alsready exists in localStorage database \"' + lsdbid + '\"'\n\t\t);\n\t}\n\tvar lsdb = LS.get(lsdbid);\n\tvar table = alasql.databases[databaseid].tables[tableid];\n\n\t// TODO: Check if required\n\tlsdb.tables[tableid] = true;\n\n\tLS.set(lsdbid, lsdb);\n\tLS.storeTable(databaseid, tableid);\n\n\tif (cb) res = cb(res);\n\treturn res;\n};\n\n/**\n Empty table and reset identities\n @param databaseid {string} AlaSQL database id (not external localStorage)\n @param tableid {string} Table name\n @param ifexists {boolean} If exists flag\n @param cb {function} Callback\n @return 1 on success\n*/\nLS.truncateTable = function (databaseid, tableid, ifexists, cb) {\n\tvar res = 1;\n\tvar lsdbid = alasql.databases[databaseid].lsdbid;\n\tvar lsdb;\n\tif (alasql.options.autocommit) {\n\t\tlsdb = LS.get(lsdbid);\n\t} else {\n\t\tlsdb = alasql.databases[databaseid];\n\t}\n\n\tif (!ifexists && !lsdb.tables[tableid]) {\n\t\tthrow new Error(\n\t\t\t'Cannot truncate table \"' + tableid + '\" in localStorage, because it does not exist'\n\t\t);\n\t}\n\n\t//load table\n\tvar tbl = LS.restoreTable(databaseid, tableid);\n\n\t//clear data from table\n\ttbl.data = [];\n\t//TODO reset all identities\n\t//but identities are not working on LOCALSTORAGE\n\t//See test 607 for details\n\n\t//store table\n\tLS.storeTable(databaseid, tableid);\n\n\tif (cb) res = cb(res);\n\treturn res;\n};\n\n/**\n\tCreate table in localStorage database\n\t@param databaseid {string} AlaSQL database id\n\t@param tableid {string} Table id\n\t@param ifexists {boolean} If exists flag\n\t@param cb {function} Callback\n*/\n\nLS.dropTable = function (databaseid, tableid, ifexists, cb) {\n\tvar res = 1;\n\tvar lsdbid = alasql.databases[databaseid].lsdbid;\n\tvar lsdb;\n\n\tif (alasql.options.autocommit) {\n\t\tlsdb = LS.get(lsdbid);\n\t} else {\n\t\tlsdb = alasql.databases[databaseid];\n\t}\n\tif (!ifexists && !lsdb.tables[tableid]) {\n\t\tthrow new Error(\n\t\t\t'Cannot drop table \"' + tableid + '\" in localStorage, because it does not exist'\n\t\t);\n\t}\n\tdelete lsdb.tables[tableid];\n\tLS.set(lsdbid, lsdb);\n\t//\tlocalStorage.removeItem(lsdbid+'.'+tableid);\n\tLS.removeTable(databaseid, tableid);\n\tif (cb) res = cb(res);\n\treturn res;\n};\n\n/**\n\tRead all data from table\n*/\n\nLS.fromTable = function (databaseid, tableid, cb, idx, query) {\n\n\tvar lsdbid = alasql.databases[databaseid].lsdbid;\n\t//\tvar res = LS.get(lsdbid+'.'+tableid);\n\n\tvar res = LS.restoreTable(databaseid, tableid).data;\n\n\tif (cb) res = cb(res, idx, query);\n\treturn res;\n};\n\n/**\n\tInsert data into the table\n\t@param databaseid {string} Database id\n\t@param tableid {string} Table id\n\t@param value {array} Array of values\n\t@param columns {array} Columns (not used)\n\t@param cb {function} Callback\n*/\n\nLS.intoTable = function (databaseid, tableid, value, columns, cb) {\n\n\tvar lsdbid = alasql.databases[databaseid].lsdbid;\n\tvar res = value.length;\n\t//\tvar tb = LS.get(lsdbid+'.'+tableid);\n\tvar tb = LS.restoreTable(databaseid, tableid);\n\tfor (var columnid in tb.identities) {\n\t\tvar ident = tb.identities[columnid];\n\n\t\tfor (var index in value) {\n\t\t\tvalue[index][columnid] = ident.value;\n\t\t\tident.value += ident.step;\n\t\t}\n\t}\n\tif (!tb.data) tb.data = [];\n\ttb.data = tb.data.concat(value);\n\t//\tLS.set(lsdbid+'.'+tableid, tb);\n\tLS.storeTable(databaseid, tableid);\n\n\tif (cb) res = cb(res);\n\n\treturn res;\n};\n\n/**\n\tLaad data from table\n*/\nLS.loadTableData = function (databaseid, tableid) {\n\tvar db = alasql.databases[databaseid];\n\tvar lsdbid = alasql.databases[databaseid].lsdbid;\n\tLS.restoreTable(databaseid, tableid);\n\t//\tdb.tables[tableid].data = LS.get(lsdbid+'.'+tableid);\n};\n\n/**\n\tSave data to the table\n*/\n\nLS.saveTableData = function (databaseid, tableid) {\n\tvar db = alasql.databases[databaseid];\n\tvar lsdbid = alasql.databases[databaseid].lsdbid;\n\tLS.storeTable(lsdbid, tableid);\n\t//\tLS.set(lsdbid+'.'+tableid,db.tables[tableid].data);\n\tdb.tables[tableid].data = undefined;\n};\n\n/**\n\tCommit\n*/\n\nLS.commit = function (databaseid, cb) {\n\n\tvar db = alasql.databases[databaseid];\n\tvar lsdbid = alasql.databases[databaseid].lsdbid;\n\tvar lsdb = {databaseid: lsdbid, tables: {}};\n\tif (db.tables) {\n\t\tfor (var tbid in db.tables) {\n\t\t\t// TODO: Question - do we need this line\n\t\t\tlsdb.tables[tbid] = true;\n\t\t\tLS.storeTable(databaseid, tbid);\n\t\t\t//\t\t\tLS.set(lsdbid+'.'+tbid, db.tables[tbid].data);\n\t\t}\n\t}\n\tLS.set(lsdbid, lsdb);\n\treturn cb ? cb(1) : 1;\n};\n\n/**\n\tAlias BEGIN = COMMIT\n*/\nLS.begin = LS.commit;\n\n/**\n\tROLLBACK\n*/\n\nLS.rollback = function (databaseid, cb) {\n\t// This does not work and should be fixed\n\t// Plus test 151 and 231\n\n\treturn;\n\n\tvar db = alasql.databases[databaseid];\n\tdb.dbversion++;\n\n\tvar lsdbid = alasql.databases[databaseid].lsdbid;\n\tvar lsdb = LS.get(lsdbid);\n\t//\tif(!alasql.options.autocommit) {\n\n\tdelete alasql.databases[databaseid];\n\talasql.databases[databaseid] = new alasql.Database(databaseid);\n\textend(alasql.databases[databaseid], lsdb);\n\talasql.databases[databaseid].databaseid = databaseid;\n\talasql.databases[databaseid].engineid = 'LOCALSTORAGE';\n\n\tif (lsdb.tables) {\n\t\tfor (var tbid in lsdb.tables) {\n\t\t\t//\t\t\t\tvar tb = new alasql.Table({columns: db.tables[tbid].columns});\n\t\t\t//\t\t\t\textend(tb,lsdb.tables[tbid]);\n\t\t\t//\t\t\t\tlsdb.tables[tbid] = true;\n\n\t\t\t//\t\t\t\tif(!alasql.options.autocommit) {\n\n\t\t\t//\t\t\t\t\tlsdb.tables[tbid].data = LS.get(db.lsdbid+'.'+tbid);\n\t\t\tLS.restoreTable(databaseid, tbid);\n\t\t\t//\t\t\t\t}\n\t\t\t//\t\t\t\tlsdb.tables[tbid].indexColumns();\n\n\t\t\t// index columns\n\t\t\t// convert types\n\t\t}\n\t}\n\t//\t}\n\n};\n//\n// 93sqlite.js\n// SQLite database support\n// (c) 2014, Andrey Gershun\n//\n\nvar SQLITE = (alasql.engines.SQLITE = function () {});\n\nSQLITE.createDatabase = function (wdbid, args, ifnotexists, dbid, cb) {\n\tthrow new Error('Connot create SQLITE database in memory. Attach it.');\n};\n\nSQLITE.dropDatabase = function (databaseid) {\n\tthrow new Error('This is impossible to drop SQLite database. Detach it.');\n};\n\nSQLITE.attachDatabase = function (sqldbid, dbid, args, params, cb) {\n\tvar res = 1;\n\tif (alasql.databases[dbid]) {\n\t\tthrow new Error('Unable to attach database as \"' + dbid + '\" because it already exists');\n\t}\n\n\tif ((args[0] && args[0] instanceof yy.StringValue) || args[0] instanceof yy.ParamValue) {\n\t\tif (args[0] instanceof yy.StringValue) {\n\t\t\tvar value = args[0].value;\n\t\t} else if (args[0] instanceof yy.ParamValue) {\n\t\t\tvar value = params[args[0].param];\n\t\t}\n\t\talasql.utils.loadBinaryFile(\n\t\t\tvalue,\n\t\t\ttrue,\n\t\t\tfunction (data) {\n\t\t\t\tvar db = new alasql.Database(dbid || sqldbid);\n\t\t\t\tdb.engineid = 'SQLITE';\n\t\t\t\tdb.sqldbid = sqldbid;\n\t\t\t\tvar sqldb = (db.sqldb = new SQL.Database(data));\n\t\t\t\tdb.tables = [];\n\t\t\t\tvar tables = sqldb.exec(\"SELECT * FROM sqlite_master WHERE type='table'\")[0].values;\n\n\t\t\t\ttables.forEach(function (tbl) {\n\t\t\t\t\tdb.tables[tbl[1]] = {};\n\t\t\t\t\tvar columns = (db.tables[tbl[1]].columns = []);\n\t\t\t\t\tvar ast = alasql.parse(tbl[4]);\n\n\t\t\t\t\tvar coldefs = ast.statements[0].columns;\n\t\t\t\t\tif (coldefs && coldefs.length > 0) {\n\t\t\t\t\t\tcoldefs.forEach(function (cd) {\n\t\t\t\t\t\t\tcolumns.push(cd);\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t});\n\n\t\t\t\tcb(1);\n\t\t\t},\n\t\t\tfunction (err) {\n\t\t\t\tthrow new Error('Cannot open SQLite database file \"' + args[0].value + '\"');\n\t\t\t}\n\t\t);\n\t\treturn res;\n\t} else {\n\t\tthrow new Error('Cannot attach SQLite database without a file');\n\t}\n\n\treturn res;\n};\n\nSQLITE.fromTable = function (databaseid, tableid, cb, idx, query) {\n\tvar data = alasql.databases[databaseid].sqldb.exec('SELECT * FROM ' + tableid);\n\tvar columns = (query.sources[idx].columns = []);\n\tif (data[0].columns.length > 0) {\n\t\tdata[0].columns.forEach(function (columnid) {\n\t\t\tcolumns.push({columnid: columnid});\n\t\t});\n\t}\n\n\tvar res = [];\n\tif (data[0].values.length > 0) {\n\t\tdata[0].values.forEach(function (d) {\n\t\t\tvar r = {};\n\t\t\tcolumns.forEach(function (col, idx) {\n\t\t\t\tr[col.columnid] = d[idx];\n\t\t\t});\n\t\t\tres.push(r);\n\t\t});\n\t}\n\tif (cb) cb(res, idx, query);\n};\n\nSQLITE.intoTable = function (databaseid, tableid, value, columns, cb) {\n\tvar sqldb = alasql.databases[databaseid].sqldb;\n\tfor (var i = 0, ilen = value.length; i < ilen; i++) {\n\t\tvar s = 'INSERT INTO ' + tableid + ' (';\n\t\tvar d = value[i];\n\t\tvar keys = Object.keys(d);\n\t\ts += keys.join(',');\n\t\ts += ') VALUES (';\n\t\ts += keys\n\t\t\t.map(function (k) {\n\t\t\t\tvar v = d[k];\n\t\t\t\tif (typeof v == 'string') v = \"'\" + v + \"'\";\n\t\t\t\treturn v;\n\t\t\t})\n\t\t\t.join(',');\n\t\ts += ')';\n\t\tsqldb.exec(s);\n\t}\n\tvar res = ilen;\n\tif (cb) cb(res);\n\treturn res;\n};\n//\n// 91localstorage.js\n// localStorage and DOM-Storage engine\n// Date: 09.12.2014\n// (c) Andrey Gershun\n//\n\nvar FS = (alasql.engines.FILESTORAGE = alasql.engines.FILE = function () {});\n\nFS.createDatabase = function (fsdbid, args, ifnotexists, dbid, cb) {\n\n\tvar res = 1;\n\tvar filename = args[0].value;\n\n\talasql.utils.fileExists(filename, function (fex) {\n\n\t\tif (fex) {\n\t\t\tif (ifnotexists) {\n\t\t\t\tres = 0;\n\t\t\t\tif (cb) res = cb(res);\n\t\t\t\treturn res;\n\t\t\t} else {\n\t\t\t\tthrow new Error('Cannot create new database file, because it already exists');\n\t\t\t}\n\t\t} else {\n\t\t\tvar data = {tables: {}};\n\t\t\talasql.utils.saveFile(filename, JSON.stringify(data), function (data) {\n\t\t\t\tif (cb) res = cb(res);\n\t\t\t});\n\t\t}\n\t});\n\treturn res;\n};\n\nFS.dropDatabase = function (fsdbid, ifexists, cb) {\n\tvar res;\n\tvar filename = '';\n\n\tif (typeof fsdbid === 'object' && fsdbid.value) {\n\t\t// Existing tests (test225.js) had DROP directly without DETACH and\n\t\t// without a database id / name. It instead used the filename directly.\n\t\t// This block will handle that\n\t\tfilename = fsdbid.value;\n\t} else {\n\t\t// When a database id / name is specified in DROP, it will be handled by this block.\n\t\t// Note: Both DETACH + DROP and direct DROP without DETACH will be handled by this block\n\t\t// We will be deleting the database object and the file either way.\n\t\t// However, in the future, if we would like to have a stricter implementation\n\t\t// where we cannot DROP without DETACHing it first, we can handle that case using\n\t\t// the 'isDetached' property of the database object.\n\t\t// (i.e) alasql.databases[fsdbid].isDetached will be set if it is\n\t\t// has been detached first\n\t\tvar db = alasql.databases[fsdbid] || {};\n\n\t\tfilename = db.filename || '';\n\t\tdelete alasql.databases[fsdbid];\n\t}\n\talasql.utils.fileExists(filename, function (fex) {\n\t\tif (fex) {\n\t\t\tres = 1;\n\t\t\talasql.utils.deleteFile(filename, function () {\n\t\t\t\tres = 1;\n\t\t\t\tif (cb) res = cb(res);\n\t\t\t});\n\t\t} else {\n\t\t\tif (!ifexists) {\n\t\t\t\tthrow new Error('Cannot drop database file, because it does not exist');\n\t\t\t}\n\t\t\tres = 0;\n\t\t\tif (cb) res = cb(res);\n\t\t}\n\t});\n\treturn res;\n};\n\nFS.attachDatabase = function (fsdbid, dbid, args, params, cb) {\n\n\tvar res = 1;\n\tif (alasql.databases[dbid]) {\n\t\tthrow new Error('Unable to attach database as \"' + dbid + '\" because it already exists');\n\t}\n\tvar db = new alasql.Database(dbid || fsdbid);\n\tdb.engineid = 'FILESTORAGE';\n\t//\tdb.fsdbid = fsdbid;\n\tdb.filename = args[0].value;\n\tloadFile(db.filename, !!cb, function (s) {\n\t\ttry {\n\t\t\tdb.data = JSON.parse(s);\n\t\t} catch (err) {\n\t\t\tthrow new Error('Data in FileStorage database are corrupted');\n\t\t}\n\t\tdb.tables = db.data.tables;\n\t\t// IF AUTOCOMMIT IS OFF then copy data to memory\n\t\tif (!alasql.options.autocommit) {\n\t\t\tif (db.tables) {\n\t\t\t\tfor (var tbid in db.tables) {\n\t\t\t\t\tdb.tables[tbid].data = db.data[tbid];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tif (cb) res = cb(res);\n\t});\n\treturn res;\n};\n\nFS.createTable = function (databaseid, tableid, ifnotexists, cb) {\n\tvar db = alasql.databases[databaseid];\n\tvar tb = db.data[tableid];\n\tvar res = 1;\n\n\tif (tb && !ifnotexists) {\n\t\tthrow new Error('Table \"' + tableid + '\" alsready exists in the database \"' + fsdbid + '\"');\n\t}\n\tvar table = alasql.databases[databaseid].tables[tableid];\n\tdb.data.tables[tableid] = {columns: table.columns};\n\tdb.data[tableid] = [];\n\n\tFS.updateFile(databaseid);\n\n\tif (cb) cb(res);\n\treturn res;\n};\n\nFS.updateFile = function (databaseid) {\n\n\tvar db = alasql.databases[databaseid];\n\tif (db.issaving) {\n\t\tdb.postsave = true;\n\t\treturn;\n\t}\n\tdb.issaving = true;\n\tdb.postsave = false;\n\talasql.utils.saveFile(db.filename, JSON.stringify(db.data), function () {\n\t\tdb.issaving = false;\n\n\t\tif (db.postsave) {\n\t\t\tsetTimeout(function () {\n\t\t\t\tFS.updateFile(databaseid);\n\t\t\t}, 50); // TODO Test with different timeout parameters\n\t\t}\n\t});\n};\n\nFS.dropTable = function (databaseid, tableid, ifexists, cb) {\n\tvar res = 1;\n\tvar db = alasql.databases[databaseid];\n\tif (!ifexists && !db.tables[tableid]) {\n\t\tthrow new Error(\n\t\t\t'Cannot drop table \"' + tableid + '\" in fileStorage, because it does not exist'\n\t\t);\n\t}\n\tdelete db.tables[tableid];\n\tdelete db.data.tables[tableid];\n\tdelete db.data[tableid];\n\tFS.updateFile(databaseid);\n\tif (cb) cb(res);\n\treturn res;\n};\n\nFS.fromTable = function (databaseid, tableid, cb, idx, query) {\n\n\tvar db = alasql.databases[databaseid];\n\tvar res = db.data[tableid];\n\tif (cb) res = cb(res, idx, query);\n\treturn res;\n};\n\nFS.intoTable = function (databaseid, tableid, value, columns, cb) {\n\tvar db = alasql.databases[databaseid];\n\tvar res = value.length;\n\tvar tb = db.data[tableid];\n\tif (!tb) tb = [];\n\tdb.data[tableid] = tb.concat(value);\n\tFS.updateFile(databaseid);\n\tif (cb) cb(res);\n\treturn res;\n};\n\nFS.loadTableData = function (databaseid, tableid) {\n\tvar db = alasql.databases[databaseid];\n\tdb.tables[tableid].data = db.data[tableid];\n};\n\nFS.saveTableData = function (databaseid, tableid) {\n\tvar db = alasql.databases[databaseid];\n\tdb.data[tableid] = db.tables[tableid].data;\n\tdb.tables[tableid].data = null;\n\tFS.updateFile(databaseid);\n};\n\nFS.commit = function (databaseid, cb) {\n\n\tvar db = alasql.databases[databaseid];\n\tvar fsdb = {tables: {}};\n\tif (db.tables) {\n\t\tfor (var tbid in db.tables) {\n\t\t\tdb.data.tables[tbid] = {columns: db.tables[tbid].columns};\n\t\t\tdb.data[tbid] = db.tables[tbid].data;\n\t\t}\n\t}\n\tFS.updateFile(databaseid);\n\treturn cb ? cb(1) : 1;\n};\n\nFS.begin = FS.commit;\n\nFS.rollback = function (databaseid, cb) {\n\tvar res = 1;\n\tvar db = alasql.databases[databaseid];\n\tdb.dbversion++;\n\n\t//\tvar lsdbid = alasql.databases[databaseid].lsdbid;\n\t//\tlsdb = LS.get(lsdbid);\n\twait();\n\tfunction wait() {\n\t\tsetTimeout(function () {\n\t\t\tif (db.issaving) {\n\t\t\t\treturn wait();\n\t\t\t} else {\n\t\t\t\talasql.loadFile(db.filename, !!cb, function (data) {\n\t\t\t\t\tdb.data = data;\n\t\t\t\t\tdb.tables = {};\n\t\t\t\t\tfor (var tbid in db.data.tables) {\n\t\t\t\t\t\tvar tb = new alasql.Table({columns: db.data.tables[tbid].columns});\n\t\t\t\t\t\textend(tb, db.data.tables[tbid]);\n\t\t\t\t\t\tdb.tables[tbid] = tb;\n\t\t\t\t\t\tif (!alasql.options.autocommit) {\n\t\t\t\t\t\t\tdb.tables[tbid].data = db.data[tbid];\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdb.tables[tbid].indexColumns();\n\n\t\t\t\t\t\t// index columns\n\t\t\t\t\t\t// convert types\n\t\t\t\t\t}\n\n\t\t\t\t\tdelete alasql.databases[databaseid];\n\t\t\t\t\talasql.databases[databaseid] = new alasql.Database(databaseid);\n\t\t\t\t\textend(alasql.databases[databaseid], db);\n\t\t\t\t\talasql.databases[databaseid].engineid = 'FILESTORAGE';\n\t\t\t\t\talasql.databases[databaseid].filename = db.filename;\n\n\t\t\t\t\tif (cb) res = cb(res);\n\t\t\t\t\t// Todo: check why no return\n\t\t\t\t});\n\t\t\t}\n\t\t}, 100);\n\t}\n\n\t//\t if(!alasql.options.autocommit) {\n\n};\nif(utils.isBrowser && !utils.isWebWorker) {\nalasql = alasql || false;\n\nif (!alasql) {\n\tthrow new Error('alasql was not found');\n}\n\nalasql.worker = function () {\n\tthrow new Error('Can find webworker in this enviroment');\n};\n\nif (typeof Worker !== 'undefined') {\n\talasql.worker = function (path, paths, cb) {\n\t\t//\tvar path;\n\t\tif (path === true) {\n\t\t\tpath = undefined;\n\t\t}\n\n\t\tif (typeof path === 'undefined') {\n\t\t\tvar sc = document.getElementsByTagName('script');\n\t\t\tfor (var i = 0; i < sc.length; i++) {\n\t\t\t\tif (sc[i].src.substr(-16).toLowerCase() === 'alasql-worker.js') {\n\t\t\t\t\tpath = sc[i].src.substr(0, sc[i].src.length - 16) + 'alasql.js';\n\t\t\t\t\tbreak;\n\t\t\t\t} else if (sc[i].src.substr(-20).toLowerCase() === 'alasql-worker.min.js') {\n\t\t\t\t\tpath = sc[i].src.substr(0, sc[i].src.length - 20) + 'alasql.min.js';\n\t\t\t\t\tbreak;\n\t\t\t\t} else if (sc[i].src.substr(-9).toLowerCase() === 'alasql.js') {\n\t\t\t\t\tpath = sc[i].src;\n\t\t\t\t\tbreak;\n\t\t\t\t} else if (sc[i].src.substr(-13).toLowerCase() === 'alasql.min.js') {\n\t\t\t\t\tpath = sc[i].src.substr(0, sc[i].src.length - 13) + 'alasql.min.js';\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif (typeof path === 'undefined') {\n\t\t\tthrow new Error('Path to alasql.js is not specified');\n\t\t} else if (path !== false) {\n\t\t\tvar js = \"importScripts('\";\n\t\t\tjs += path;\n\t\t\tjs +=\n\t\t\t\t\"');self.onmessage = function(event) {\" +\n\t\t\t\t'alasql(event.data.sql,event.data.params, function(data){' +\n\t\t\t\t'postMessage({id:event.data.id, data:data});});}';\n\n\t\t\tvar blob = new Blob([js], {type: 'text/plain'});\n\t\t\talasql.webworker = new Worker(URL.createObjectURL(blob));\n\n\t\t\talasql.webworker.onmessage = function (event) {\n\t\t\t\tvar id = event.data.id;\n\n\t\t\t\talasql.buffer[id](event.data.data);\n\t\t\t\tdelete alasql.buffer[id];\n\t\t\t};\n\n\t\t\talasql.webworker.onerror = function (e) {\n\t\t\t\tthrow e;\n\t\t\t};\n\n\t\t\tif (arguments.length > 1) {\n\t\t\t\tvar sql =\n\t\t\t\t\t'REQUIRE ' +\n\t\t\t\t\tpaths\n\t\t\t\t\t\t.map(function (p) {\n\t\t\t\t\t\t\treturn '\"' + p + '\"';\n\t\t\t\t\t\t})\n\t\t\t\t\t\t.join(',');\n\t\t\t\talasql(sql, [], cb);\n\t\t\t}\n\t\t} else if (path === false) {\n\t\t\tdelete alasql.webworker;\n\t\t\treturn;\n\t\t}\n\t};\n}\n/* FileSaver.js\n * A saveAs() FileSaver implementation.\n * 1.3.2\n * 2016-06-16 18:25:19\n *\n * By Eli Grey, http://eligrey.com\n * License: MIT\n * See https://github.com/eligrey/FileSaver.js/blob/master/LICENSE.md\n */\n\n/*global self */\n/*jslint bitwise: true, indent: 4, laxbreak: true, laxcomma: true, smarttabs: true, plusplus: true */\n\n/*! @source http://purl.eligrey.com/github/FileSaver.js/blob/master/FileSaver.js */\n\nvar saveAs =\n\tsaveAs ||\n\t(function (view) {\n\t\t'use strict';\n\t\t// IE <10 is explicitly unsupported\n\t\tif (\n\t\t\ttypeof view === 'undefined' ||\n\t\t\t(typeof navigator !== 'undefined' && /MSIE [1-9]\\./.test(navigator.userAgent))\n\t\t) {\n\t\t\treturn;\n\t\t}\n\t\tvar doc = view.document,\n\t\t\t// only get URL when necessary in case Blob.js hasn't overridden it yet\n\t\t\tget_URL = function () {\n\t\t\t\treturn view.URL || view.webkitURL || view;\n\t\t\t},\n\t\t\tsave_link = doc.createElementNS('http://www.w3.org/1999/xhtml', 'a'),\n\t\t\tcan_use_save_link = 'download' in save_link,\n\t\t\tclick = function (node) {\n\t\t\t\tvar event = new MouseEvent('click');\n\t\t\t\tnode.dispatchEvent(event);\n\t\t\t},\n\t\t\tis_safari = /constructor/i.test(view.HTMLElement) || view.safari,\n\t\t\tis_chrome_ios = /CriOS\\/[\\d]+/.test(navigator.userAgent),\n\t\t\tthrow_outside = function (ex) {\n\t\t\t\t(view.setImmediate || view.setTimeout)(function () {\n\t\t\t\t\tthrow ex;\n\t\t\t\t}, 0);\n\t\t\t},\n\t\t\tforce_saveable_type = 'application/octet-stream',\n\t\t\t// the Blob API is fundamentally broken as there is no \"downloadfinished\" event to subscribe to\n\t\t\tarbitrary_revoke_timeout = 1000 * 40, // in ms\n\t\t\trevoke = function (file) {\n\t\t\t\tvar revoker = function () {\n\t\t\t\t\tif (typeof file === 'string') {\n\t\t\t\t\t\t// file is an object URL\n\t\t\t\t\t\tget_URL().revokeObjectURL(file);\n\t\t\t\t\t} else {\n\t\t\t\t\t\t// file is a File\n\t\t\t\t\t\tfile.remove();\n\t\t\t\t\t}\n\t\t\t\t};\n\t\t\t\tsetTimeout(revoker, arbitrary_revoke_timeout);\n\t\t\t},\n\t\t\tdispatch = function (filesaver, event_types, event) {\n\t\t\t\tevent_types = [].concat(event_types);\n\t\t\t\tvar i = event_types.length;\n\t\t\t\twhile (i--) {\n\t\t\t\t\tvar listener = filesaver['on' + event_types[i]];\n\t\t\t\t\tif (typeof listener === 'function') {\n\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\tlistener.call(filesaver, event || filesaver);\n\t\t\t\t\t\t} catch (ex) {\n\t\t\t\t\t\t\tthrow_outside(ex);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t},\n\t\t\tauto_bom = function (blob) {\n\t\t\t\t// prepend BOM for UTF-8 XML and text/* types (including HTML)\n\t\t\t\t// note: your browser will automatically convert UTF-16 U+FEFF to EF BB BF\n\t\t\t\tif (\n\t\t\t\t\t/^\\s*(?:text\\/\\S*|application\\/xml|\\S*\\/\\S*\\+xml)\\s*;.*charset\\s*=\\s*utf-8/i.test(\n\t\t\t\t\t\tblob.type\n\t\t\t\t\t)\n\t\t\t\t) {\n\t\t\t\t\treturn new Blob([String.fromCharCode(0xfeff), blob], {\n\t\t\t\t\t\ttype: blob.type,\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\treturn blob;\n\t\t\t},\n\t\t\tFileSaver = function (blob, name, no_auto_bom) {\n\t\t\t\tif (!no_auto_bom) {\n\t\t\t\t\tblob = auto_bom(blob);\n\t\t\t\t}\n\t\t\t\t// First try a.download, then web filesystem, then object URLs\n\t\t\t\tvar filesaver = this,\n\t\t\t\t\ttype = blob.type,\n\t\t\t\t\tforce = type === force_saveable_type,\n\t\t\t\t\tobject_url,\n\t\t\t\t\tdispatch_all = function () {\n\t\t\t\t\t\tdispatch(filesaver, 'writestart progress write writeend'.split(' '));\n\t\t\t\t\t},\n\t\t\t\t\t// on any filesys errors revert to saving with object URLs\n\t\t\t\t\tfs_error = function () {\n\t\t\t\t\t\tif ((is_chrome_ios || (force && is_safari)) && view.FileReader) {\n\t\t\t\t\t\t\t// Safari doesn't allow downloading of blob urls\n\t\t\t\t\t\t\tvar reader = new FileReader();\n\t\t\t\t\t\t\treader.onloadend = function () {\n\t\t\t\t\t\t\t\tvar url = is_chrome_ios\n\t\t\t\t\t\t\t\t\t? reader.result\n\t\t\t\t\t\t\t\t\t: reader.result.replace(/^data:[^;]*;/, 'data:attachment/file;');\n\t\t\t\t\t\t\t\tvar popup = view.open(url, '_blank');\n\t\t\t\t\t\t\t\tif (!popup) view.location.href = url;\n\t\t\t\t\t\t\t\turl = undefined; // release reference before dispatching\n\t\t\t\t\t\t\t\tfilesaver.readyState = filesaver.DONE;\n\t\t\t\t\t\t\t\tdispatch_all();\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\treader.readAsDataURL(blob);\n\t\t\t\t\t\t\tfilesaver.readyState = filesaver.INIT;\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// don't create more object URLs than needed\n\t\t\t\t\t\tif (!object_url) {\n\t\t\t\t\t\t\tobject_url = get_URL().createObjectURL(blob);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (force) {\n\t\t\t\t\t\t\tview.location.href = object_url;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tvar opened = view.open(object_url, '_blank');\n\t\t\t\t\t\t\tif (!opened) {\n\t\t\t\t\t\t\t\t// Apple does not allow window.open, see https://developer.apple.com/library/safari/documentation/Tools/Conceptual/SafariExtensionGuide/WorkingwithWindowsandTabs/WorkingwithWindowsandTabs.html\n\t\t\t\t\t\t\t\tview.location.href = object_url;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tfilesaver.readyState = filesaver.DONE;\n\t\t\t\t\t\tdispatch_all();\n\t\t\t\t\t\trevoke(object_url);\n\t\t\t\t\t};\n\t\t\t\tfilesaver.readyState = filesaver.INIT;\n\n\t\t\t\tif (can_use_save_link) {\n\t\t\t\t\tobject_url = get_URL().createObjectURL(blob);\n\t\t\t\t\tsetTimeout(function () {\n\t\t\t\t\t\tsave_link.href = object_url;\n\t\t\t\t\t\tsave_link.download = name;\n\t\t\t\t\t\tclick(save_link);\n\t\t\t\t\t\tdispatch_all();\n\t\t\t\t\t\trevoke(object_url);\n\t\t\t\t\t\tfilesaver.readyState = filesaver.DONE;\n\t\t\t\t\t});\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tfs_error();\n\t\t\t},\n\t\t\tFS_proto = FileSaver.prototype,\n\t\t\tsaveAs = function (blob, name, no_auto_bom) {\n\t\t\t\treturn new FileSaver(blob, name || blob.name || 'download', no_auto_bom);\n\t\t\t};\n\t\t// IE 10+ (native saveAs)\n\t\tif (typeof navigator !== 'undefined' && navigator.msSaveOrOpenBlob) {\n\t\t\treturn function (blob, name, no_auto_bom) {\n\t\t\t\tname = name || blob.name || 'download';\n\n\t\t\t\tif (!no_auto_bom) {\n\t\t\t\t\tblob = auto_bom(blob);\n\t\t\t\t}\n\t\t\t\treturn navigator.msSaveOrOpenBlob(blob, name);\n\t\t\t};\n\t\t}\n\n\t\tFS_proto.abort = function () {};\n\t\tFS_proto.readyState = FS_proto.INIT = 0;\n\t\tFS_proto.WRITING = 1;\n\t\tFS_proto.DONE = 2;\n\n\t\tFS_proto.error =\n\t\t\tFS_proto.onwritestart =\n\t\t\tFS_proto.onprogress =\n\t\t\tFS_proto.onwrite =\n\t\t\tFS_proto.onabort =\n\t\t\tFS_proto.onerror =\n\t\t\tFS_proto.onwriteend =\n\t\t\t\tnull;\n\n\t\treturn saveAs;\n\t})(\n\t\t(typeof self !== 'undefined' && self) ||\n\t\t\t(typeof window !== 'undefined' && window) ||\n\t\t\tthis.content\n\t);\n// `self` is undefined in Firefox for Android content script context\n// while `this` is nsIContentFrameMessageManager\n// with an attribute `content` that corresponds to the window\n\nif (typeof module !== 'undefined' && module.exports) {\n\tmodule.exports.saveAs = saveAs;\n} else if (typeof define !== 'undefined' && define !== null && define.amd !== null) {\n\tdefine('FileSaver.js', function () {\n\t\treturn saveAs;\n\t});\n}\n/* eslint-disable */ \r\n\n/*\r\n//\r\n// Last part of Alasql.js\r\n// Date: 03.11.2014\r\n// (c) 2014, Andrey Gershun\r\n//\r\n*/\r\n\n// This is a final part of Alasql\r\n\n/*only-for-browser/*\r\nif(utils.isCordova || utils.isMeteorServer || utils.isNode ){\r\n console.log('It looks like you are using the browser version of AlaSQL. Please use the alasql.fs.js file instead.')\r\n}\r\n//*/\r\n\n// FileSaveAs\r\nalasql.utils.saveAs = saveAs;\r\n\n};\r\n\n// Create default database\r\nnew Database(\"alasql\");\r\n\n// Set default database\r\nalasql.use(\"alasql\");\r\n\nreturn alasql;\r\n}));\r\n\n"],"names":["lib","require$$0","require$$1","URLImpl_1","require$$2","Blob","URL","URL$1","fetch","https","this","require","global","require$$4"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA;CACA,IAAI,WAAW,GAAG,EAAE,CAAC;AACrB,CAAcA,KAAA,GAAG,WAAW,CAAC;AAC7B;CACA,SAAS,IAAI,CAAC,CAAC,EAAE;KACb,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;EACzB;AACD;CACA,SAAS,SAAS,CAAC,CAAC,EAAE;AACtB;AACA,KAAI,IAAI,CAAC,CAAC,GAAG,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE;AAC1C,SAAQ,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAC7B,MAAK,MAAM;AACX,SAAQ,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;MACxB;EACJ;AACD;AACA,CAAA,SAAS,sBAAsB,CAAC,SAAS,EAAE,QAAQ,EAAE;AACrD,KAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE;SACpB,EAAE,SAAS,CAAC;MACf;AACL,KAAI,MAAM,UAAU,GAAG,QAAQ,CAAC,QAAQ,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;AACvE,KAAI,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,SAAS,CAAC,GAAG,CAAC,CAAC;AAClD;KACI,MAAM,SAAS,GAAG,QAAQ,CAAC,eAAe,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,QAAQ,CAAC,eAAe,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;AAChH,KAAI,MAAM,WAAW,GAAG,QAAQ,CAAC,eAAe,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,QAAQ,CAAC,eAAe,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,SAAS,GAAG,CAAC,CAAC,CAAC;AAC1H;AACA,KAAI,OAAO,SAAS,CAAC,EAAE,IAAI,EAAE;AAC7B,SAAQ,IAAI,CAAC,IAAI,EAAE,IAAI,GAAG,EAAE,CAAC;AAC7B;AACA,SAAQ,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AACnB;AACA,SAAQ,IAAI,IAAI,CAAC,YAAY,EAAE;aACnB,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE;AACrC,iBAAgB,MAAM,IAAI,SAAS,CAAC,iCAAiC,CAAC,CAAC;cAC1D;AACb;AACA,aAAY,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;aACtC,IAAI,CAAC,GAAG,UAAU,IAAI,CAAC,GAAG,UAAU,EAAE;AAClD,iBAAgB,MAAM,IAAI,SAAS,CAAC,+BAA+B,CAAC,CAAC;cACxD;AACb;aACY,OAAO,CAAC,CAAC;UACZ;AACT;SACQ,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,KAAK,EAAE;AACrC,aAAY,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;AAC7B;aACY,IAAI,CAAC,GAAG,UAAU,EAAE,CAAC,GAAG,UAAU,CAAC;aACnC,IAAI,CAAC,GAAG,UAAU,EAAE,CAAC,GAAG,UAAU,CAAC;aACnC,OAAO,CAAC,CAAC;UACZ;AACT;AACA,SAAQ,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;aAChC,OAAO,CAAC,CAAC;UACZ;AACT;AACA,SAAQ,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AAC9C,SAAQ,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC;AAC1B;SACQ,IAAI,CAAC,QAAQ,CAAC,QAAQ,IAAI,CAAC,IAAI,WAAW,EAAE;AACpD,aAAY,OAAO,CAAC,GAAG,SAAS,CAAC;AACjC,UAAS,MAAM,IAAI,QAAQ,CAAC,QAAQ,EAAE;AACtC,aAAY,IAAI,CAAC,GAAG,CAAC,EAAE;eACT,CAAC,IAAI,SAAS,CAAC;AAC7B,cAAa,MAAM,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE;eACnB,OAAO,CAAC,CAAC;cACV;UACJ;AACT;SACQ,OAAO,CAAC,CAAC;MACZ;EACJ;AACD;AACA,CAAA,WAAW,CAAC,MAAM,CAAC,GAAG,YAAY;KAC9B,OAAO,SAAS,CAAC;AACrB,EAAC,CAAC;AACF;AACA,CAAA,WAAW,CAAC,SAAS,CAAC,GAAG,UAAU,GAAG,EAAE;AACxC,KAAI,OAAO,CAAC,CAAC,GAAG,CAAC;AACjB,EAAC,CAAC;AACF;AACA,CAAA,WAAW,CAAC,MAAM,CAAC,GAAG,sBAAsB,CAAC,CAAC,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAC;AACrE,CAAA,WAAW,CAAC,OAAO,CAAC,GAAG,sBAAsB,CAAC,CAAC,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;AACrE;AACA,CAAA,WAAW,CAAC,OAAO,CAAC,GAAG,sBAAsB,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAC;AACvE,CAAA,WAAW,CAAC,gBAAgB,CAAC,GAAG,sBAAsB,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;AAC/E;AACA,CAAA,WAAW,CAAC,MAAM,CAAC,GAAG,sBAAsB,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAC;AACtE,CAAA,WAAW,CAAC,eAAe,CAAC,GAAG,sBAAsB,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;AAC9E;AACA,CAAA,WAAW,CAAC,WAAW,CAAC,GAAG,sBAAsB,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,eAAe,EAAE,EAAE,EAAE,CAAC,CAAC;AAChG,CAAA,WAAW,CAAC,oBAAoB,CAAC,GAAG,sBAAsB,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,eAAe,EAAE,EAAE,EAAE,CAAC,CAAC;AACxG;AACA,CAAA,WAAW,CAAC,QAAQ,CAAC,GAAG,UAAU,CAAC,EAAE;AACrC,KAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;AACjB;KACI,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE;AAC7B,SAAQ,MAAM,IAAI,SAAS,CAAC,+CAA+C,CAAC,CAAC;MACxE;AACL;KACI,OAAO,CAAC,CAAC;AACb,EAAC,CAAC;AACF;AACA,CAAA,WAAW,CAAC,qBAAqB,CAAC,GAAG,UAAU,CAAC,EAAE;AAClD,KAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;AACjB;AACA,KAAI,IAAI,KAAK,CAAC,CAAC,CAAC,EAAE;AAClB,SAAQ,MAAM,IAAI,SAAS,CAAC,iBAAiB,CAAC,CAAC;MAC1C;AACL;KACI,OAAO,CAAC,CAAC;AACb,EAAC,CAAC;AACF;AACA;CACA,WAAW,CAAC,OAAO,CAAC,GAAG,WAAW,CAAC,QAAQ,CAAC,CAAC;CAC7C,WAAW,CAAC,oBAAoB,CAAC,GAAG,WAAW,CAAC,qBAAqB,CAAC,CAAC;AACvE;CACA,WAAW,CAAC,WAAW,CAAC,GAAG,UAAU,CAAC,EAAE,IAAI,EAAE;AAC9C,KAAI,IAAI,CAAC,IAAI,EAAE,IAAI,GAAG,EAAE,CAAC;AACzB;KACI,IAAI,IAAI,CAAC,sBAAsB,IAAI,CAAC,KAAK,IAAI,EAAE;SAC3C,OAAO,EAAE,CAAC;MACb;AACL;AACA,KAAI,OAAO,MAAM,CAAC,CAAC,CAAC,CAAC;AACrB,EAAC,CAAC;AACF;CACA,WAAW,CAAC,YAAY,CAAC,GAAG,UAAU,CAAC,EAAE,IAAI,EAAE;AAC/C,KAAI,MAAM,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;AACxB,KAAI,IAAI,CAAC,GAAG,SAAS,CAAC;KAClB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,MAAM,SAAS,EAAE,EAAE,CAAC,EAAE;AAC/D,SAAQ,IAAI,CAAC,GAAG,GAAG,EAAE;AACrB,aAAY,MAAM,IAAI,SAAS,CAAC,oCAAoC,CAAC,CAAC;UAC7D;MACJ;AACL;KACI,OAAO,CAAC,CAAC;AACb,EAAC,CAAC;AACF;AACA,CAAA,WAAW,CAAC,WAAW,CAAC,GAAG,UAAU,CAAC,EAAE;AACxC,KAAI,MAAM,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;AACxB,KAAI,MAAM,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC;AACvB,KAAI,MAAM,CAAC,GAAG,EAAE,CAAC;AACjB,KAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,EAAE;SACxB,MAAM,CAAC,GAAG,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;SAC1B,IAAI,CAAC,GAAG,MAAM,IAAI,CAAC,GAAG,MAAM,EAAE;aAC1B,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC;UACnC,MAAM,IAAI,MAAM,IAAI,CAAC,IAAI,CAAC,IAAI,MAAM,EAAE;aACnC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC;AACjD,UAAS,MAAM;AACf,aAAY,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE;iBACb,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC;AACrD,cAAa,MAAM;iBACH,MAAM,CAAC,GAAG,CAAC,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;iBAC9B,IAAI,MAAM,IAAI,CAAC,IAAI,CAAC,IAAI,MAAM,EAAE;AAChD,qBAAoB,MAAM,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;AACxC,qBAAoB,MAAM,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;qBACpB,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;qBAC3D,EAAE,CAAC,CAAC;AACxB,kBAAiB,MAAM;qBACH,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC;kBACxC;cACJ;UACJ;MACJ;AACL;AACA,KAAI,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AACtB,EAAC,CAAC;AACF;CACA,WAAW,CAAC,MAAM,CAAC,GAAG,UAAU,CAAC,EAAE,IAAI,EAAE;AACzC,KAAI,IAAI,EAAE,CAAC,YAAY,IAAI,CAAC,EAAE;AAC9B,SAAQ,MAAM,IAAI,SAAS,CAAC,+BAA+B,CAAC,CAAC;MACxD;AACL,KAAI,IAAI,KAAK,CAAC,CAAC,CAAC,EAAE;SACV,OAAO,SAAS,CAAC;MACpB;AACL;KACI,OAAO,CAAC,CAAC;AACb,EAAC,CAAC;AACF;CACA,WAAW,CAAC,QAAQ,CAAC,GAAG,UAAU,CAAC,EAAE,IAAI,EAAE;AAC3C,KAAI,IAAI,EAAE,CAAC,YAAY,MAAM,CAAC,EAAE;AAChC,SAAQ,CAAC,GAAG,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC;MACrB;AACL;KACI,OAAO,CAAC,CAAC;EACZ,CAAA;;;;;;;;;;;;AC3LD;AACA,EAAA,MAAA,CAAA,OAAA,CAAA,KAAA,GAAuB,SAAS,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE;IACpD,MAAM,IAAI,GAAG,MAAM,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC;AAClD,IAAE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE;MACpC,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,wBAAwB,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;KAC1F;AACH,GAAC,CAAC;AACF;AACA,EAAA,MAAA,CAAA,OAAA,CAAA,aAAA,GAA+B,MAAM,CAAC,SAAS,CAAC,CAAC;AACjD,EAAA,MAAA,CAAA,OAAA,CAAA,UAAA,GAA4B,MAAM,CAAC,MAAM,CAAC,CAAC;AAC3C;EACA,MAAgC,CAAA,OAAA,CAAA,cAAA,GAAA,UAAU,IAAI,EAAE;IAC9C,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;AAC5C,GAAC,CAAC;AACF;EACA,MAAgC,CAAA,OAAA,CAAA,cAAA,GAAA,UAAU,OAAO,EAAE;IACjD,OAAO,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;GAC3C,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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IAAI,EAAE;AAClC,SAAS,MAAM,SAAS,EAAE,CAAC,CAAC,aAAa,EAAE,CAAC,CAAC,iBAAiB,EAAE;AAChE,SAAS,MAAM,SAAS,EAAE,CAAC,CAAC,IAAI,EAAE;AAClC,SAAS,MAAM,SAAS,EAAE,CAAC,CAAC,IAAI,EAAE;AAClC,SAAS,MAAM,SAAS,EAAE,CAAC,CAAC,IAAI,EAAE;AAClC,SAAS,MAAM,SAAS,EAAE,CAAC,CAAC,IAAI,EAAE;AAClC,SAAS,MAAM,SAAS,EAAE,CAAC,CAAC,IAAI,EAAE;AAClC,SAAS,MAAM,SAAS,EAAE,CAAC,CAAC,IAAI,EAAE;AAClC,SAAS,MAAM,SAAS,EAAE,CAAC,CAAC,IAAI,EAAE;AAClC,SAAS,MAAM,SAAS,EAAE,CAAC,CAAC,IAAI,EAAE;AAClC,SAAS,MAAM,SAAS,EAAE,CAAC,CAAC,IAAI,EAAE;AAClC,SAAS,MAAM,SAAS,EAAE,CAAC,CAAC,IAAI,EAAE;AAClC,SAAS,MAAM,SAAS,EAAE,CAAC,CAAC,IAAI,EAAE;AAClC,SAAS,MAAM,SAAS,EAAE,CAAC,CAAC,IAAI,EAAE;AAClC,SAAS,MAAM,SAAS,EAAE,CAAC,CAAC,IAAI,EAAE;AAClC,SAAS,MAAM,SAAS,EAAE,CAAC,CAAC,IAAI,EAAE;AAClC,SAAS,MAAM,SAAS,EAAE,CAAC,CAAC,IAAI,EAAE;AAClC,SAAS,MAAM,SAAS,EAAE,CAAC,CAAC,IAAI,EAAE;AAClC,SAAS,MAAM,SAAS,EAAE,CAAC,CAAC,IAAI,EAAE;AAClC,SAAS,MAAM,SAAS,EAAE,CAAC,CAAC,IAAI,EAAE;AAClC,SAAS,MAAM,SAAS,EAAE,CAAC,CAAC,IAAI,EAAE;AAClC,SAAS,MAAM,SAAS,EAAE,CAAC,CAAC,IAAI,EAAE;AAClC,SAAS,MAAM,SAAS,EAAE,CAAC,CAAC,IAAI,EAAE;AAClC,SAAS,MAAM,SAAS,EAAE,CAAC,CAAC,IAAI,EAAE;AAClC,SAAS,MAAM,SAAS,EAAE,CAAC,CAAC,IAAI,EAAE;AAClC,SAAS,MAAM,SAAS,EAAE,CAAC,CAAC,IAAI,EAAE;AAClC,SAAS,MAAM,SAAS,EAAE,CAAC,CAAC,IAAI,EAAE;AAClC,SAAS,MAAM,SAAS,EAAE,CAAC,CAAC,IAAI,EAAE;AAClC,SAAS,MAAM,SAAS,EAAE,CAAC,CAAC,IAAI,EAAE;AAClC,SAAS,MAAM,SAAS,EAAE,CAAC,CAAC,IAAI,EAAE;AAClC,SAAS,MAAM,SAAS,EAAE,CAAC,CAAC,IAAI,EAAE;AAClC,SAAS,MAAM,SAAS,EAAE,CAAC,CAAC,IAAI,EAAE;AAClC,SAAS,MAAM,SAAS,EAAE,CAAC,CAAC,IAAI,EAAE;AAClC,SAAS,MAAM,SAAS,EAAE,CAAC,CAAC,IAAI,EAAE;AAClC,SAAS,MAAM,SAAS,EAAE,CAAC,CAAC,IAAI,EAAE;AAClC,SAAS,MAAM,SAAS,EAAE,CAAC,CAAC,IAAI,EAAE;AAClC,SAAS,MAAM,SAAS,EAAE,CAAC,CAAC,IAAI,EAAE;AAClC,SAAS,MAAM,SAAS,EAAE,CAAC,CAAC,IAAI,EAAE;AAClC,SAAS,MAAM,SAAS,EAAE,CAAC,CAAC,IAAI,EAAE;AAClC,SAAS,MAAM,SAAS,EAAE,CAAC,CAAC,IAAI,EAAE;AAClC,SAAS,MAAM,SAAS,EAAE,CAAC,CAAC,IAAI,EAAE;AAClC,SAAS,MAAM,SAAS,EAAE,CAAC,CAAC,IAAI,EAAE;AAClC,SAAS,MAAM,SAAS,EAAE,CAAC,CAAC,IAAI,EAAE;AAClC,SAAS,MAAM,SAAS,EAAE,CAAC,CAAC,IAAI,EAAE;AAClC,SAAS,MAAM,SAAS,EAAE,CAAC,CAAC,IAAI,EAAE;AAClC,SAAS,MAAM,SAAS,EAAE,CAAC,CAAC,IAAI,EAAE;AAClC,SAAS,MAAM,SAAS,EAAE,CAAC,CAAC,aAAa,EAAE,CAAC,CAAC,iBAAiB,EAAE;AAChE,SAAS,MAAM,SAAS,EAAE,CAAC,CAAC,IAAI,EAAE;AAClC,SAAS,MAAM,SAAS,EAAE,CAAC,CAAC,IAAI,EAAE;AAClC,SAAS,MAAM,SAAS,EAAE,CAAC,CAAC,IAAI,EAAE;AAClC,SAAS,MAAM,SAAS,EAAE,CAAC,CAAC,IAAI,EAAE;AAClC,SAAS,MAAM,SAAS,EAAE,CAAC,CAAC,IAAI,EAAE;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AAE,EAAE,CAAC;AACP,EAAE,EAAE,EAAE,CAAC;AACP,EAAE,EAAE,EAAE,CAAC;AACP,EAAE,EAAE,EAAE,CAAC;AACP,EAAE,EAAE,EAAE,CAAC;AACP,EAAE,EAAE,EAAE,CAAC;AACP,EAAE,EAAE,EAAE,CAAC;AACP,EAAE,EAAE,EAAE,CAAC;AACP,EAAE,EAAE,EAAE,CAAC;AACP,EAAE,EAAE,EAAE,CAAC;AACP,EAAE,EAAE,EAAE,CAAC;AACP,EAAE,EAAE,EAAE,CAAC;AACP,EAAE,EAAE,EAAE,CAAC;AACP,EAAE,EAAE,EAAE,CAAC;AACP,EAAE,EAAE,EAAE,CAAC;AACP,EAAE,EAAE,EAAE,CAAC;AACP,EAAE,EAAE,EAAE,CAAC;AACP,EAAE,EAAE,EAAE,CAAC;AACP,EAAE,EAAE,EAAE,CAAC;AACP,EAAE,EAAE,EAAE,CAAC;AACP,EAAE,EAAE,EAAE,CAAC;AACP,EAAE,EAAE,EAAE,CAAC;AACP,EAAE,EAAE,EAAE,CAAC;AACP,EAAE,EAAE,EAAE,CAAC;AACP,EAAE,EAAE,EAAE,CAAC;AACP,EAAE,EAAE,EAAE,CAAC;AACP,EAAE,EAAE,EAAE,CAAC;AACP,EAAE,EAAE,EAAE,CAAC;AACP,EAAE,EAAE,EAAE,CAAC;AACP,EAAE,EAAE,EAAE,CAAC;AACP,EAAE,EAAE,EAAE,CAAC;AACP,EAAE,EAAE,EAAE,CAAC;AACP,EAAE,EAAE,EAAE,CAAC;AACP,EAAE,EAAE,EAAE,CAAC;AACP,EAAE,EAAE,EAAE,CAAC;AACP,EAAE,EAAE,EAAE,CAAC;AACP,EAAE,EAAE,EAAE,CAAC;AACP,EAAE,EAAE,EAAE,CAAC;AACP,EAAE,EAAE,EAAE,CAAC;AACP,EAAE,EAAE,EAAE,CAAC;AACP,EAAE,EAAE,EAAE,CAAC;AACP,EAAE,EAAE,EAAE,CAAC;AACP,EAAE,EAAE,EAAE,CAAC;AACP,EAAE,EAAE,EAAE,CAAC;AACP,EAAE,EAAE,EAAE,CAAC;AACP,EAAE,EAAE,EAAE,CAAC;AACP,EAAE,EAAE,EAAE,CAAC;AACP,EAAE,EAAE,EAAE,CAAC;AACP,EAAE,EAAE,EAAE,CAAC;AACP,EAAE,EAAE,EAAE,CAAC;AACP,EAAE,EAAE,EAAE,CAAC;AACP,EAAE,EAAE,EAAE,CAAC;AACP,EAAE,EAAE,EAAE,CAAC;AACP,EAAE,EAAE,EAAE,CAAC;AACP,EAAE,EAAE,EAAE,CAAC;AACP,EAAE,GAAG,EAAE,CAAC;AACR,EAAE,GAAG,EAAE,CAAC;AACR,EAAE,GAAG,EAAE,CAAC;AACR,EAAE,GAAG,EAAE,CAAC;AACR,EAAE,GAAG,EAAE,CAAC;AACR,EAAE,GAAG,EAAE,CAAC;AACR,EAAE,GAAG,EAAE,CAAC;AACR,EAAE,GAAG,EAAE,CAAC;AACR,EAAE,GAAG,EAAE,CAAC;AACR,EAAE,GAAG,EAAE,CAAC;AACR,EAAE,GAAG,EAAE,CAAC;AACR,EAAE,GAAG,EAAE,CAAC;AACR,EAAE,GAAG,EAAE,CAAC;AACR,EAAE,GAAG,EAAE,CAAC;AACR,EAAE,GAAG,EAAE,CAAC;AACR,EAAE,GAAG,EAAE,CAAC;AACR,EAAE,GAAG,EAAE,CAAC;AACR,EAAE,GAAG,EAAE,CAAC;AACR,EAAE,GAAG,EAAE,CAAC;AACR,EAAE,GAAG,EAAE,CAAC;AACR,EAAE,GAAG,EAAE,CAAC;AACR,EAAE,GAAG,EAAE,CAAC;AACR,EAAE,GAAG,EAAE,CAAC;AACR,EAAE,GAAG,EAAE,CAAC;AACR,EAAE,GAAG,EAAE,CAAC;AACR,EAAE,GAAG,EAAE,CAAC;AACR,EAAE,GAAG,EAAE,CAAC;AACR,EAAE,GAAG,EAAE,CAAC;AACR,EAAE,GAAG,EAAE,CAAC;AACR,EAAE,GAAG,EAAE,CAAC;AACR,EAAE,GAAG,EAAE,CAAC;AACR,EAAE,GAAG,EAAE,CAAC;AACR,EAAE,GAAG,EAAE,CAAC;AACR,EAAE,GAAG,EAAE,CAAC;AACR,EAAE,GAAG,EAAE,CAAC;AACR,EAAE,GAAG,EAAE,CAAC;AACR,EAAE,GAAG,EAAE,CAAC;AACR,EAAE,GAAG,EAAE,CAAC;AACR,EAAE,GAAG,EAAE,CAAC;AACR,EAAE,GAAG,EAAE,CAAC;AACR,EAAE,GAAG,EAAE,CAAC;AACR,EAAE,GAAG,EAAE,CAAC;AACR,EAAE,GAAG,EAAE,CAAC;AACR,EAAE,GAAG,EAAE,CAAC;AACR,EAAE,GAAG,EAAE,CAAC;AACR,EAAE,GAAG,EAAE,CAAC;AACR,EAAE,GAAG,EAAE,CAAC;AACR,EAAE,GAAG,EAAE,CAAC;AACR,EAAE,GAAG,EAAE,CAAC;AACR,EAAE,GAAG,EAAE,CAAC;AACR,EAAE,GAAG,EAAE,CAAC;AACR,EAAE,GAAG,EAAE,CAAC;AACR,EAAE,GAAG,EAAE,CAAC;AACR,EAAE,GAAG,EAAE,CAAC;AACR,EAAE,GAAG,EAAE,CAAC;AACR,EAAE,GAAG,EAAE,CAAC;AACR,EAAE,GAAG,EAAE,CAAC;AACR,EAAE,GAAG,EAAE,CAAC;AACR,EAAE,GAAG,EAAE,CAAC;AACR,EAAE,GAAG,EAAE,CAAC;AACR,EAAE,GAAG,EAAE,CAAC;AACR,EAAE,GAAG,EAAE,CAAC;AACR,EAAE,GAAG,EAAE,CAAC;AACR,EAAE,GAAG,EAAE,CAAC;AACR,EAAE,GAAG,EAAE,CAAC;AACR,EAAE,GAAG,EAAE,CAAC;AACR,EAAE,GAAG,EAAE,CAAC;AACR,EAAE,GAAG,EAAE,CAAC;AACR,EAAE,GAAG,EAAE,CAAC;AACR,EAAE,GAAG,EAAE,CAAC;AACR,EAAE,GAAG,EAAE,CAAC;AACR,EAAE,GAAG,EAAE,CAAC;AACR,EAAE,GAAG,EAAE,CAAC;AACR,EAAE,GAAG,EAAE,CAAC;AACR,EAAE,GAAG,EAAE,CAAC;AACR,EAAE,GAAG,EAAE,CAAC;AACR,EAAE,GAAG,EAAE,CAAC;AACR,EAAE,GAAG,EAAE,CAAC;AACR,EAAE,GAAG,EAAE,CAAC;AACR,EAAE,GAAG,EAAE,CAAC;AACR,EAAE,GAAG,EAAE,CAAC;AACR,EAAE,GAAG,EAAE,CAAC;AACR,EAAE,GAAG,EAAE,CAAC;AACR,EAAE,GAAG,EAAE,CAAC;AACR,EAAE,GAAG,EAAE,CAAC;AACR,EAAE,GAAG,EAAE,CAAC;AACR,EAAE,GAAG,EAAE,CAAC;AACR,EAAE,GAAG,EAAE,CAAC;AACR,EAAE,GAAG,EAAE,CAAC;AACR,EAAE,GAAG,EAAE,CAAC;AACR,EAAE,GAAG,EAAE,CAAC;AACR,EAAE,GAAG,EAAE,CAAC;AACR,EAAE,GAAG,EAAE,CAAC;AACR,EAAE,GAAG,EAAE,CAAC;AACR,EAAE,GAAG,EAAE,CAAC;AACR,EAAE,GAAG,EAAE,CAAC;AACR,EAAE,GAAG,EAAE,CAAC;AACR,EAAE,GAAG,EAAE,CAAC;AACR,EAAE,GAAG,EAAE,CAAC;AACR,EAAE,GAAG,EAAE,CAAC;AACR,EAAE,GAAG,EAAE,CAAC;AACR,EAAE,GAAG,EAAE,CAAC;AACR,EAAE,GAAG,EAAE,CAAC;AACR,EAAE,GAAG,EAAE,CAAC;AACR,EAAE,GAAG,EAAE,CAAC;AACR,EAAE,GAAG,EAAE,CAAC;AACR,EAAE,GAAG,EAAE,CAAC;AACR,EAAE,GAAG,EAAE,CAAC;AACR,EAAE,GAAG,EAAE,CAAC;AACR,EAAE,GAAG,EAAE,CAAC;AACR,EAAE,GAAG,EAAE,CAAC;AACR,EAAE,GAAG,EAAE,CAAC;AACR,EAAE,GAAG,EAAE,CAAC;AACR,EAAE,GAAG,EAAE,CAAC;AACR,EAAE,GAAG,EAAE,CAAC;AACR,EAAE,GAAG,EAAE,CAAC;AACR,EAAE,GAAG,EAAE,CAAC;AACR,EAAE,GAAG,EAAE,CAAC;AACR,EAAE,GAAG,EAAE,CAAC;AACR,EAAE,GAAG,EAAE,CAAC;AACR,EAAE,GAAG,EAAE,CAAC;AACR,EAAE,GAAG,EAAE,CAAC;AACR,EAAE,GAAG,EAAE,CAAC;AACR,EAAE,GAAG,EAAE,CAAC;AACR,EAAE,GAAG,EAAE,CAAC;AACR,EAAE,GAAG,EAAE,CAAC;AACR,EAAE,GAAG,EAAE,CAAC;AACR,EAAE,GAAG,EAAE,CAAC;AACR,EAAE,GAAG,EAAE,CAAC;AACR,EAAE,GAAG,EAAE,CAAC;AACR,EAAE,GAAG,EAAE,CAAC;AACR,EAAE,GAAG,EAAE,CAAC;AACR,EAAE,GAAG,EAAE,CAAC;AACR,EAAE,GAAG,EAAE,CAAC;AACR,EAAE,GAAG,EAAE,CAAC;AACR,EAAE,GAAG,EAAE,CAAC;AACR,EAAE,GAAG,EAAE,CAAC;AACR,EAAE,GAAG,EAAE,CAAC;AACR,EAAE,GAAG,EAAE,CAAC;AACR,EAAE,GAAG,EAAE,CAAC;AACR,EAAE,GAAG,EAAE,CAAC;AACR,EAAE,GAAG,EAAE,CAAC;AACR,EAAE,GAAG,EAAE,CAAC;AACR,EAAE,GAAG,EAAE,CAAC;AACR,EAAE,GAAG,EAAE,CAAC;AACR,EAAE,GAAG,EAAE,CAAC;AACR,EAAE,GAAG,EAAE,CAAC;AACR,EAAE,GAAG,EAAE,CAAC;AACR,EAAE,GAAG,EAAE,CAAC;AACR,EAAE,GAAG,EAAE,CAAC;AACR,EAAE,GAAG,EAAE,CAAC;AACR,EAAE,GAAG,EAAE,CAAC;AACR,EAAE,GAAG,EAAE,CAAC;AACR,EAAE,GAAG,EAAE,CAAC;AACR,EAAE,GAAG,EAAE,CAAC;AACR,EAAE,GAAG,EAAE,CAAC;AACR,EAAE,GAAG,EAAE,CAAC;AACR,EAAE,GAAG,EAAE,CAAC;AACR,EAAE,GAAG,EAAE,CAAC;AACR,EAAE,GAAG,EAAE,CAAC;AACR,EAAE,GAAG,EAAE,CAAC;AACR,EAAE,GAAG,EAAE,CAAC;AACR,EAAE,GAAG,EAAE,CAAC;AACR,EAAE,GAAG,EAAE,CAAC;AACR,EAAE,GAAG,EAAE,CAAC;AACR,EAAE,GAAG,EAAE,CAAC;AACR,EAAE,GAAG,EAAE,CAAC;AACR,EAAE,GAAG,EAAE,CAAC;AACR,EAAE,GAAG,EAAE,CAAC;AACR,EAAE,GAAG,EAAE,CAAC;AACR,EAAE,GAAG,EAAE,CAAC;AACR,EAAE,GAAG,EAAE,CAAC;AACR,EAAE,GAAG,EAAE,CAAC;AACR,EAAE,GAAG,EAAE,CAAC;AACR,EAAE,GAAG,EAAE,CAAC;AACR,EAAE,GAAG,EAAE,CAAC;AACR,EAAE,GAAG,EAAE,CAAC;AACR,EAAE,GAAG,EAAE,CAAC;AACR,EAAE,GAAG,EAAE,CAAC;AACR,EAAE,GAAG,EAAE,CAAC;AACR,EAAE,GAAG,EAAE,CAAC;AACR,EAAE,GAAG,EAAE,CAAC;AACR,EAAE,GAAG,EAAE,CAAC;AACR,EAAE,GAAG,EAAE,CAAC;AACR,EAAE,GAAG,EAAE,CAAC;AACR,EAAE,GAAG,EAAE,CAAC;AACR,EAAE,GAAG,EAAE,CAAC;AACR,EAAE,GAAG,EAAE,CAAC;AACR,EAAE,GAAG,EAAE,CAAC;AACR,EAAE,GAAG,EAAE,CAAC;AACR,EAAE,GAAG,EAAE,CAAC;AACR,EAAE,KAAK,EAAE,CAAC;AACV,CAAC,CAAC;AACF;AACA,SAAS,kBAAkB,CAAC,CAAC,wBAAwB;AACrD,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,EAAE,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAC1C;AACA,CAAC,GAAG,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE;AAC3B,EAAE,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AACjB,EAAE,GAAG,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAC3C,EAAE;AACF,CAAC,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,mBAAmB,EAAE,EAAE,CAAC,CAAC;AACxC;AACA,CAAC,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,+CAA+C,EAAE,SAAS,EAAE,EAAE,EAAE,EAAE,EAAE,OAAO,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;AACnH,CAAC,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,iBAAiB,EAAE,SAAS,EAAE,EAAE,EAAE,OAAO,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;AACxE,CAAC,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,kBAAkB,EAAE,SAAS,EAAE,EAAE,EAAE,EAAE,EAAE,OAAO,CAAC,EAAE,EAAE,KAAK,CAAC,qIAAqI,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;AAC7N;AACA,CAAC,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,qBAAqB,EAAE,IAAI,CAAC,CAAC;AAC5C,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AAClD,CAAC;AACD;AACA,SAAS,kBAAkB,CAAC,CAAC,wBAAwB;AACrD,CAAC,IAAI,CAAC,GAAG,MAAM,GAAG,CAAC,CAAC,OAAO,CAAC,SAAS,EAAE,eAAe,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;AAC9E;AACA,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC/C,CAAC;AACD;AACA,SAAS,aAAa,CAAC,CAAC,kCAAkC;AAC1D,CAAC,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,iBAAiB,EAAE,SAAS,EAAE,EAAE,EAAE,OAAO,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;AACxE,CAAC,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,kBAAkB,EAAE,SAAS,EAAE,EAAE,EAAE,EAAE,EAAE,OAAO,CAAC,EAAE,EAAE,KAAK,CAAC,qIAAqI,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;AAC7N,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AACtB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AAC5B,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;AAC3G,CAAC;AACD;AACA,SAAS,aAAa,CAAC,CAAC,wBAAwB;AAChD,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AAC3B,CAAC;AACD;AACA,IAAI,IAAI,GAAG,EAAE,CAAC;AACd,IAAI,QAAQ,GAAG,EAAE,CAAC;AAClB;AACA;AACA;AACA,IAAI,eAAe,GAAG,OAAO,GAAG,KAAK,WAAW,CAAC;AACjD;AACA,SAAS,UAAU,CAAC,GAAG,UAAU,GAAG,aAAa,GAAG,aAAa;AACjE,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,GAAG,GAAG,CAAC,MAAM,CAAC;AAC7B,CAAC,GAAG,GAAG,EAAE;AACT,EAAE,GAAG,eAAe,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE;AACtF,GAAG,IAAI,MAAM,GAAG,eAAe,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC;AAC1D,GAAG,MAAM,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE;AACjC,IAAI,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE,EAAE,GAAG,CAAC,KAAK,GAAG,CAAC,CAAC,OAAO,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE;AACpE,IAAI;AACJ,GAAG;AACH,EAAE,MAAM,MAAM,CAAC,GAAG,GAAG,EAAE,EAAE,CAAC,EAAE;AAC5B,EAAE,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE,EAAE,GAAG,CAAC,KAAK,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,EAAE;AAClD,EAAE;AACF,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,KAAK,GAAG,CAAC,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC;AAC3D,CAAC,GAAG,GAAG,EAAE;AACT,EAAE,GAAG,eAAe,EAAE;AACtB,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;AACtC,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC1B,GAAG,MAAM;AACT,GAAG,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;AACrE,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACtB,GAAG;AACH,EAAE;AACF,CAAC,OAAO,GAAG,CAAC;AACZ,CAAC;AACD;AACA,SAAS,SAAS,CAAC,CAAC,aAAa,GAAG,EAAE;AACtC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;AACrC;AACA,CAAC,IAAI,GAAG,GAAG,CAAC,CAAC,CAAC;AACd,CAAC,GAAG,GAAG,CAAC,GAAG,EAAE,GAAG,GAAG,GAAG,CAAC,GAAG,CAAC;AAC3B,CAAC,GAAG,GAAG,CAAC,KAAK,IAAI,IAAI,EAAE,CAAC,CAAC,WAAW,GAAG,CAAC,CAAC;AACzC,MAAM,GAAG,GAAG,CAAC,GAAG,IAAI,IAAI,EAAE,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AACjD,MAAM,GAAG,GAAG,CAAC,GAAG,IAAI,IAAI,EAAE,GAAG,GAAG,GAAG,CAAC,GAAG,CAAC;AACxC,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,GAAG,CAAC,CAAC,EAAE;AAC/D,MAAM,GAAG,GAAG,CAAC,KAAK,IAAI,IAAI,EAAE,CAAC,CAAC,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC;AAChD,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC,MAAM,GAAG,IAAI,CAAC;AAChC,CAAC,GAAG,GAAG,CAAC,KAAK,IAAI,IAAI,EAAE,EAAE,CAAC,CAAC,YAAY,GAAG,CAAC,CAAC,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,EAAE;AAChE,CAAC,OAAO,CAAC,CAAC;AACV,CAAC;AACD;AACA,SAAS,eAAe,CAAC,OAAO,cAAc,IAAI,cAAc;AAChE,CAAC,GAAG,CAAC,OAAO,EAAE,OAAO;AACrB,CAAC,IAAI,IAAI,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;AAC7C,CAAC,GAAG,IAAI,IAAI,MAAM,EAAE,IAAI,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;AAClD,CAAC,GAAG,OAAO,CAAC,IAAI,MAAM,IAAI,EAAE,OAAO,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC;AACrD,CAAC,GAAG,OAAO,CAAC,KAAK,KAAK,IAAI,EAAE,OAAO,CAAC,KAAK,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC;AACrD,CAAC,GAAG,OAAO,CAAC,GAAG,OAAO,IAAI,EAAE,OAAO,CAAC,GAAG,MAAM,IAAI,CAAC,CAAC,CAAC,CAAC;AACrD,CAAC,GAAG,OAAO,CAAC,MAAM,IAAI,IAAI,EAAE,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;AACrD,CAAC,GAAG,OAAO,CAAC,MAAM,IAAI,IAAI,EAAE,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;AACrD,CAAC,GAAG,OAAO,CAAC,MAAM,IAAI,IAAI,EAAE,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;AACrD,CAAC;AACD;AACA,SAAS,cAAc,CAAC,MAAM,iBAAiB,IAAI,WAAW,IAAI,EAAE;AACpE,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,IAAI,GAAG,IAAI,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC;AAC1D,CAAC,IAAI,CAAC,GAAG,IAAI,EAAE,GAAG,GAAG,MAAM,CAAC,MAAM,CAAC;AACnC,CAAC,GAAG,CAAC,IAAI,IAAI,IAAI,IAAI,CAAC,GAAG,EAAE;AAC3B,EAAE,MAAM,CAAC,GAAG,KAAK,EAAE,EAAE,CAAC,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE;AAChD,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AACxB;AACA,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;AACxB,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AAC/B,GAAG,MAAM;AACT,GAAG;AACH,EAAE;AACF,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,GAAG,EAAE,EAAE,CAAC,EAAE,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,QAAQ,KAAK,CAAC,EAAE,OAAO,CAAC,CAAC;AACjE,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG;AACf,EAAE,QAAQ,CAAC,CAAC;AACZ,EAAE,MAAM,CAAC,CAAC;AACV,EAAE,MAAM,CAAC,CAAC;AACV,EAAE,QAAQ,CAAC,CAAC;AACZ,EAAE,IAAI,CAAC,CAAC;AACR,EAAE,iBAAiB,CAAC,CAAC;AACrB,EAAE,CAAC;AACH,CAAC,OAAO,GAAG,CAAC;AACZ,CAAC;AACD;AACA,SAAS,WAAW,CAAC,CAAC,WAAW,KAAK,aAAa,MAAM,cAAc,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE;AAC7F,CAAC,IAAI;AACL,EAAE,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC;AACzC,EAAE,CAAC,MAAM,CAAC,EAAE,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,EAAE;AACrC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,OAAO;AAC5C,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,GAAG,IAAI,OAAO,CAAC,CAAC,CAAC,KAAK,QAAQ,EAAE,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACjE,CAAC,GAAG,CAAC,CAAC,IAAI,IAAI,IAAI,CAAC,QAAQ,KAAK,KAAK,KAAK,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE,IAAI;AAC3D,EAAE,GAAG,SAAS,CAAC,KAAK,CAAC,IAAI,IAAI,EAAE,SAAS,CAAC,WAAW,CAAC,KAAK,CAAC,IAAI,SAAS,EAAE,KAAK,CAAC,CAAC;AACjF,EAAE,GAAG,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACzC,OAAO,GAAG,KAAK,KAAK,CAAC,EAAE;AACvB,GAAG,GAAG,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE;AACnB,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;AAC/C,SAAS,CAAC,CAAC,CAAC,GAAG,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACpC,IAAI;AACJ,QAAQ,GAAG,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE;AACxB,IAAI,IAAI,EAAE,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC1B,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;AAC5C,SAAS,CAAC,CAAC,CAAC,GAAG,eAAe,CAAC,EAAE,CAAC,CAAC;AACnC,IAAI;AACJ,QAAQ,GAAG,CAAC,CAAC,CAAC,KAAK,SAAS,EAAE,OAAO,EAAE,CAAC;AACxC,QAAQ,CAAC,CAAC,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;AACxC,GAAG;AACH,OAAO,GAAG,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;AACrE,OAAO,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;AAC5C,EAAE,CAAC,MAAM,CAAC,EAAE,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,EAAE;AACrC,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,EAAE,OAAO;AAC7B,CAAC,GAAG,MAAM,IAAI,IAAI,EAAE,IAAI;AACxB,EAAE,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;AAC7B,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE;AAC5D,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,GAAG,QAAQ,CAAC,MAAM,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC;AAC5G,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,GAAG,MAAM,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC;AAC5F,GAAG;AACH,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE;AACxC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,GAAG,QAAQ,CAAC,MAAM,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC;AAC5G,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,GAAG,MAAM,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC;AAC5F,GAAG;AACH,EAAE,CAAC,MAAM,CAAC,EAAE,EAAE,GAAG,IAAI,CAAC,GAAG,IAAI,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,EAAE;AACrD,CAAC;AACD;AACA,SAAS,QAAQ,CAAC,EAAE,gBAAgB,KAAK,aAAa,CAAC,aAAa;AACpE,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,MAAM,CAAC,EAAE;AACtB,EAAE,IAAI,KAAK,GAAG,iBAAiB,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;AAC5C,EAAE,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,IAAI,KAAK,CAAC,aAAa,GAAG,CAAC,GAAG,KAAK,GAAG,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;AAC7G,EAAE;AACF,CAAC;AACD,SAAS,gBAAgB,CAAC,EAAE,gBAAgB,CAAC,aAAa;AAC1D,CAAC,IAAI,CAAC,GAAG,iBAAiB,CAAC,CAAC,CAAC,CAAC;AAC9B,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC;AACvF,CAAC;AACD,IAAI,WAAW,GAAG,+CAA+C,CAAC;AAClE,IAAI,cAAc,GAAG,0DAA0D,CAAC;AAChF,IAAI,UAAU,GAAG,6BAA6B,CAAC;AAC/C,IAAI,QAAQ,GAAG,aAAa,CAAC;AAC7B,IAAI,QAAQ,GAAG,4BAA4B,CAAC;AAC5C,IAAI,OAAO,GAAG,kEAAkE,CAAC;AACjF,IAAI,WAAW,EAAE,+BAA+B,CAAC;AACjD,IAAI,YAAY,GAAG,wCAAwC,CAAC;AAC5D,IAAI,aAAa,EAAE,6DAA6D,CAAC;AACjF,IAAI,QAAQ,GAAG,mEAAmE,CAAC;AACnF;AACA;AACA,SAAS,YAAY,CAAC,IAAI,cAAc,IAAI,EAAE,GAAG,aAAa,IAAI,EAAE,EAAE,gBAAgB,MAAM,EAAE,MAAM,gBAAgB;AACpH,CAAC,GAAG,CAAC,IAAI,EAAE,OAAO,IAAI,CAAC;AACvB,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;AAE7B;AACA;AACA,CAAC,IAAI,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC;AACtD,CAAC,IAAI,QAAQ,cAAc,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,SAAS,CAAC;AAChF;AACA,CAAC,IAAI,KAAK,GAAG,EAAE,EAAE,KAAK,GAAG,EAAE,CAAC;AAC5B,CAAC,IAAI,IAAI,YAAY,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;AAChD,CAAC,GAAG,IAAI,EAAE;AACV,EAAE,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;AACpC,EAAE,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;AAClD,EAAE,MAAM,KAAK,GAAG,KAAK,GAAG,IAAI,CAAC;AAC7B;AACA;AACA,CAAC,IAAI,OAAO,GAAG,KAAK,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;AACzC,CAAC,GAAG,OAAO,EAAE,oBAAoB,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC;AAC1D,MAAM,IAAI,OAAO,GAAG,KAAK,CAAC,KAAK,CAAC,aAAa,CAAC,GAAG,qBAAqB,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,GAAmB,CAAC,CAAC;AAC/H;AACA;AACA,CAAC,IAAI,IAAI,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,qBAAqB,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC;AACnE,CAAC,GAAG,IAAI,GAAG,CAAC,EAAE;AACd,EAAE,IAAI,GAAG,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;AACtD,EAAE,GAAG,GAAG,IAAI,EAAE,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,EAAE,gBAAgB,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AAC/D,EAAE;AACF;AACA;AACA,CAAC,IAAI,GAAG,GAAG,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;AACjC,CAAC,GAAG,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,EAAE,uBAAuB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;AACvD;AACA;AACA,CAAC,IAAI,OAAO,sBAAsB,EAAE,CAAC;AACrC,CAAC,GAAG,IAAI,CAAC,UAAU,EAAE;AACrB;AACA,EAAE,IAAI,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;AACnC,EAAE,GAAG,IAAI,EAAE,iBAAiB,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;AAC5C,EAAE;AACF;AACA;AACA,CAAC,GAAG,IAAI,EAAE,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;AACxE;AACA;AACA,CAAC,IAAI,OAAO,GAAG,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;AACpC,CAAC,GAAG,OAAO,EAAE,CAAC,CAAC,aAAa,CAAC,GAAG,uBAAuB,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;AACpE;AACA;AACA,CAAC,IAAI,MAAM,oBAAoB,EAAE,CAAC;AAClC,CAAC,IAAI,MAAM,GAAG,KAAK,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;AACvC,CAAC,GAAG,MAAM,EAAE,IAAI,IAAI,GAAG,CAAC,EAAE,IAAI,IAAI,MAAM,CAAC,MAAM,EAAE,EAAE,IAAI;AACvD,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,iBAAiB,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACrF;AACA;AACA,CAAC,IAAI,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;AACrC,CAAC,GAAG,KAAK,EAAE,mBAAmB,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;AAC/C;AACA;AACA,CAAC,IAAI,OAAO,GAAG,KAAK,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;AACxC,CAAC,GAAG,OAAO,EAAE,CAAC,CAAC,UAAU,CAAC,GAAG,oBAAoB,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC3E;AACA,CAAC,GAAG,IAAI,IAAI,IAAI,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AACxD,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,GAAG,YAAY,CAAC,QAAQ,CAAC,CAAC;AACnH,CAAC,GAAG,IAAI,CAAC,SAAS,GAAG,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,EAAE;AACrC,EAAE,IAAI,MAAM,GAAG,iBAAiB,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;AAC5C,EAAE,GAAG,IAAI,CAAC,SAAS,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE;AACpC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC;AACnC,GAAG,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;AAC3D,GAAG,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;AACvD,GAAG,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;AAC3D,GAAG,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;AACvD,GAAG,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC;AAC7B,GAAG,CAAC,CAAC,MAAM,CAAC,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC;AACpC,GAAG;AACH,EAAE;AACF,CAAC,GAAG,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC;AAC7C,CAAC,GAAG,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,GAAG,MAAM,CAAC;AAC7C,CAAC,OAAO,CAAC,CAAC;AACV,CAAC;AACD;AACA,SAAS,mBAAmB,CAAC,MAAM,8BAA8B;AACjE,CAAC,GAAG,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,OAAO,EAAE,CAAC;AACnC,CAAC,IAAI,CAAC,GAAG,qBAAqB,GAAG,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC;AACtD,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,MAAM,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE,CAAC,IAAI,kBAAkB,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC;AACnG,CAAC,OAAO,CAAC,GAAG,eAAe,CAAC;AAC5B,CAAC;AACD;AACA;AACA,SAAS,oBAAoB,CAAC,OAAO,aAAa,CAAC,EAAE,EAAE,gBAAgB,GAAG,aAAa;AACvF,CAAC,IAAI,IAAI,GAAG,WAAW,CAAC,OAAO,CAAC,CAAC;AACjC,CAAC,GAAG,CAAC,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;AACzC,CAAC,GAAG,IAAI,CAAC,QAAQ,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,QAAQ,GAAG,WAAW,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;AAClF,CAAC;AACD,SAAS,qBAAqB,CAAC,OAAO,aAAa,IAAI,aAAa,CAAC,EAAE,EAAE,gBAAgB,GAAG,aAAa;AACzG,CAAC,oBAAoB,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC;AAC1E,CAAC;AACD,SAAS,oBAAoB,CAAC,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,EAAE;AACpD,CAAC,IAAI,MAAM,GAAG,KAAK,CAAC;AACpB,CAAC,IAAI,KAAK,GAAG,EAAE,EAAE,OAAO,GAAG,IAAI,CAAC;AAChC,CAAC,GAAG,IAAI,CAAC,QAAQ,KAAK,MAAM,IAAI,EAAE,CAAC,MAAM,EAAE;AAC3C,EAAE,IAAI,KAAK,GAAG,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;AACjC,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,QAAQ,EAAE,KAAK,GAAG,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,QAAQ,IAAI,KAAK,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,EAAE;AACxF,EAAE,MAAM,GAAG,IAAI,CAAC;AAChB,EAAE,KAAK,CAAC,QAAQ,GAAG,SAAS,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;AAC/C,EAAE;AACF;AACA,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,UAAU,CAAC,EAAE;AAC1B,EAAE,IAAI,YAAY,GAAG,CAAC,YAAY,CAAC,CAAC,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC;AACtD,EAAE,GAAG,EAAE,CAAC,UAAU,CAAC,CAAC,KAAK,EAAE,YAAY,CAAC,YAAY,GAAG,CAAC,CAAC;AACzD,EAAE,GAAG,EAAE,CAAC,UAAU,CAAC,CAAC,IAAI,EAAE,YAAY,CAAC,YAAY,GAAG,CAAC,CAAC;AACxD,EAAE,OAAO,GAAG,CAAC,OAAO,EAAE,EAAE,IAAI,SAAS,CAAC,WAAW,EAAE,IAAI,EAAE,YAAY,CAAC,CAAC;AACvE,EAAE;AACF;AACA,CAAC,GAAG,CAAC,MAAM,IAAI,CAAC,OAAO,EAAE,OAAO;AAChC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,SAAS,CAAC,SAAS,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC;AACtD,CAAC;AACD;AACA;AACA,IAAI,kBAAkB,GAAG,CAAC,SAAS,EAAE,WAAW,EAAE,mBAAmB,EAAE,qBAAqB,CAAC,CAAC;AAC9F,IAAI,iBAAiB,GAAG;AACxB,CAAC,eAAe,EAAE,YAAY,EAAE,aAAa;AAC7C,CAAC,eAAe,EAAE,YAAY,EAAE,kBAAkB;AAClD,CAAC,eAAe,EAAE,YAAY;AAC9B,CAAC,MAAM,EAAE,YAAY,EAAE,aAAa;AACpC,CAAC,CAAC;AACF,SAAS,uBAAuB,CAAC,EAAE,aAAa;AAChD;AACA,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;AAC7B,CAAC,kBAAkB,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC;AACpF,CAAC,iBAAiB,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC;AACpF;AACA,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,CAAC,QAAQ,GAAG,qCAAqC,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;AAC5G,CAAC,OAAO,SAAS,CAAC,iBAAiB,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;AAC9C,CAAC;AACD;AACA,SAAS,mBAAmB,CAAC,CAAC,EAAE,IAAI,oBAAoB,IAAI,EAAE;AAC9D,CAAC,IAAI,KAAK,GAAG,CAAC,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC;AAChC,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE;AACvC,EAAE,IAAI,GAAG,GAAG,WAAW,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;AACjD,EAAE,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,OAAO;AACtB,EAAE,IAAI,GAAG,GAAG,CAAC,CAAC,IAAI,IAAI,EAAE,EAAE,KAAK,CAAC,EAAE,EAAE,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC;AAC9C,EAAE,GAAG,GAAG,EAAE;AACV,GAAG,GAAG,CAAC,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC;AAC3B,GAAG,GAAG,GAAG,CAAC,QAAQ,EAAE,GAAG,CAAC,MAAM,IAAI,GAAG,CAAC,WAAW,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;AAChE,GAAG,MAAM;AACT,GAAG,GAAG,CAAC,MAAM,GAAG,GAAG,GAAG,WAAW,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;AAChD,GAAG,GAAG,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC;AACtD,GAAG;AACH,EAAE,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC;AAChB,EAAE,GAAG,GAAG,CAAC,OAAO,EAAE,EAAE,GAAG,CAAC,OAAO,GAAG,GAAG,CAAC,OAAO,CAAC,CAAC,OAAO,GAAG,CAAC,OAAO,CAAC,EAAE;AACpE,EAAE,IAAI,GAAG,GAAG,iBAAiB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AACvC,EAAE,IAAI,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE;AACtE,GAAG,IAAI,IAAI,GAAG,UAAU,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;AAC5C,GAAG,GAAG,KAAK,EAAE;AACb,IAAI,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;AAC1C,IAAI,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;AACjE,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC;AAC7B,IAAI,MAAM;AACV,IAAI,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;AAC/C,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC;AACpB,IAAI;AACJ,GAAG;AACH,EAAE;AACF,CAAC;AACD;AACA,SAAS,oBAAoB,CAAC,MAAM,EAAE;AACtC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;AACZ,CAAC,CAAC,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE;AAC5E,EAAE,GAAG,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;AAC7C,EAAE,CAAC,CAAC;AACJ,CAAC,OAAO,CAAC,CAAC;AACV,CAAC;AACD,SAAS,oBAAoB,CAAC,MAAM,aAAa;AACjD,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;AACzB,CAAC,OAAO,SAAS,CAAC,aAAa,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;AAC/C,CAAC;AACD;AACA,SAAS,iBAAiB,CAAC,OAAO,EAAE,IAAI,EAAE;AAC1C,CAAC,IAAI,OAAO,GAAG,KAAK,CAAC;AACrB,CAAC,IAAI,IAAI,IAAI,GAAG,CAAC,EAAE,IAAI,IAAI,IAAI,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE;AAChD,EAAE,IAAI,IAAI,GAAG,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,CAAC;AAC3C,EAAE,GAAG,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,GAAG,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AAC1D,EAAE,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AAClE,EAAE,GAAG,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,YAAY,IAAI,CAAC,CAAC,CAAC;AAC/D,EAAE,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC;AAC7D,EAAE,GAAG,CAAC,OAAO,IAAI,IAAI,CAAC,KAAK,EAAE,EAAE,OAAO,GAAG,IAAI,CAAC,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE;AAC3E,EAAE,WAAW,CAAC,IAAI,CAAC,CAAC;AACpB,EAAE,MAAM,IAAI,IAAI,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,CAAC,GAAG,GAAG,CAAC,IAAI,CAAC,CAAC;AAClD,EAAE;AACF,CAAC;AACD,SAAS,iBAAiB,CAAC,EAAE,EAAE,IAAI,aAAa;AAChD,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,GAAG,CAAC;AACzB,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE;AACvC,EAAE,GAAG,EAAE,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,SAAS;AAChC,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;AAC5D,EAAE;AACF,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,SAAS,CAAC;AACzB,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AACnB,CAAC;AACD;AACA,SAAS,uBAAuB,CAAC,IAAI,aAAa;AAClD,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;AACtD,CAAC,OAAO,CAAC,CAAC;AACV,CAAC;AACD,SAAS,uBAAuB,CAAC,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,aAAa;AAC/D,CAAC,IAAI,GAAG,GAAG,OAAO,IAAI,CAAC,GAAG,IAAI,QAAQ,GAAG,IAAI,CAAC,GAAG,GAAG,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC3E,CAAC,GAAG,CAAC,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,SAAS,CAAC;AACtD,CAAC,GAAG,CAAC,EAAE,CAAC,QAAQ,CAAC,KAAK,EAAE,EAAE,CAAC,QAAQ,CAAC,KAAK,GAAG,EAAE,CAAC;AAC/C,CAAC,IAAI,KAAK,oBAAoB,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC;AAChD,CAAC,IAAI,KAAK,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC;AAC/B,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,YAAY,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC,EAAE;AACpG,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE;AACvC,EAAE,IAAI,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;AACtB,EAAE,GAAG,IAAI,CAAC,IAAI,IAAI,uBAAuB,EAAE,SAAS;AACpD,EAAE,GAAG,IAAI,CAAC,KAAK,IAAI,GAAG,EAAE,SAAS;AACjC,EAAE,IAAI,CAAC,GAAG,GAAG,wBAAwB,CAAC,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM;AACxF,EAAE;AACF,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,uBAAuB,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,GAAG,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,IAAI,GAAG,GAAG,GAAG,CAAC,CAAC;AAC9H,CAAC,OAAO,SAAS,CAAC,YAAY,EAAE,IAAI,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;AACjD,CAAC;AACD;AACA;AACA;AACA,IAAI,UAAU,GAAG,0CAA0C,CAAC;AAC5D,SAAS,uBAAuB,CAAC,IAAI,EAAE,EAAE,gBAAgB;AACzD,CAAC,GAAG,CAAC,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC;AAC/B,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE,EAAE,EAAE,OAAO,CAAC,SAAS,CAAC,aAAa,CAAC,aAAa;AAC3E,EAAE,IAAI,GAAG,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;AAC3B;AACA,EAAE,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;AACpC;AACA,EAAE,GAAG,CAAC,GAAG,CAAC,SAAS,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC;AACvD;AACA,EAAE,GAAG,GAAG,CAAC,WAAW,IAAI,YAAY,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,IAAI,CAAC;AAC9E,EAAE,CAAC,CAAC;AACJ,CAAC;AACD,SAAS,uBAAuB,CAAC,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE,aAAa;AAC/D,CAAC,IAAI,KAAK,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,SAAS,CAAC;AAC5C;AACA,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,KAAK,CAAC,WAAW,GAAG,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;AACrG,CAAC,OAAO,SAAS,CAAC,YAAY,EAAE,SAAS,CAAC,WAAW,EAAE,IAAI,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC;AACzE,CAAC;AACD;AACA,SAAS,iBAAiB,CAAC,IAAI,WAAW,GAAG,EAAE,EAAE,EAAE,IAAI,4BAA4B;AACnF,CAAC,GAAG,IAAI,CAAC,CAAC,EAAE,EAAE,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;AAChD,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,KAAK,SAAS,IAAI,IAAI,CAAC,CAAC,KAAK,GAAG,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,EAAE,UAAU,KAAK,OAAO,IAAI,CAAC,CAAC,KAAK,QAAQ,IAAI,OAAO,IAAI,CAAC,CAAC,IAAI,WAAW,EAAE,OAAO,EAAE,CAAC;AAChJ,CAAC,IAAI,EAAE,GAAG,EAAE,CAAC;AACb,CAAC,IAAI,IAAI,GAAG,IAAI,CAAC,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC;AAClC,CAAC,GAAG,IAAI,CAAC,CAAC,KAAK,GAAG,EAAE,OAAO,IAAI,CAAC,CAAC;AACjC,EAAE,KAAK,GAAG,EAAE,EAAE,GAAG,IAAI,CAAC,CAAC,GAAG,GAAG,GAAG,GAAG,CAAC,CAAC,MAAM;AAC3C,EAAE,KAAK,GAAG,EAAE,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM;AAClC,EAAE,KAAK,GAAG,EAAE,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM;AACrC,EAAE,KAAK,GAAG;AACV,GAAG,GAAG,IAAI,IAAI,IAAI,CAAC,SAAS,EAAE,EAAE,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;AACvE,QAAQ;AACR,IAAI,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC,CAAC;AACrB,IAAI,IAAI,CAAC,CAAC,GAAG,GAAG,CAAC;AACjB,IAAI,EAAE,GAAG,EAAE,EAAE,IAAI,CAAC,CAAC,GAAG,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAClD,IAAI;AACJ,GAAG,GAAG,OAAO,IAAI,CAAC,CAAC,KAAK,WAAW,EAAE,IAAI,CAAC,CAAC,GAAG,SAAS,CAAC,EAAE,CAAC,CAAC;AAC5D,GAAG,MAAM;AACT,EAAE,SAAS,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM;AAC9B,EAAE;AACF,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,IAAI,GAAG,IAAI,IAAI,CAAC,CAAC,IAAI,IAAI,GAAG,EAAE,GAAG,QAAQ,CAAC,GAAG,EAAE,SAAS,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC;AACrG;AACA,CAAC,IAAI,EAAE,GAAG,cAAc,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;AACnD,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;AACvB,CAAC,OAAO,IAAI,CAAC,CAAC;AACd,EAAE,KAAK,GAAG,EAAE,MAAM;AAClB,EAAE,KAAK,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,MAAM;AAC7B,EAAE,KAAK,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,MAAM;AAC7B,EAAE,KAAK,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,MAAM;AAC7B,EAAE,KAAK,GAAG,EAAE,MAAM;AAClB,EAAE,SAAS,GAAG,IAAI,CAAC,CAAC,IAAI,IAAI,EAAE,EAAE,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE;AACvD,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,MAAM,GAAG,KAAK,EAAE,MAAM,IAAI,KAAK,CAAC,8CAA8C,CAAC,CAAC;AAC7F,GAAG,GAAG,IAAI,IAAI,IAAI,CAAC,OAAO,EAAE;AAC5B,IAAI,CAAC,GAAG,QAAQ,CAAC,GAAG,EAAE,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;AAC5E,IAAI,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,MAAM;AACrB,IAAI;AACJ,QAAQ,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,MAAM;AAC3B,EAAE;AACF,CAAC,GAAG,IAAI,CAAC,CAAC,IAAI,IAAI,EAAE,EAAE,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,EAAE;AACrD,CAAC,GAAG,OAAO,IAAI,CAAC,CAAC,IAAI,QAAQ,IAAI,IAAI,CAAC,CAAC,EAAE;AACzC,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,IAAI,GAAG,GAAG,CAAC,CAAC,CAAC,OAAO,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;AACzF,EAAE,CAAC,GAAG,SAAS,CAAC,GAAG,EAAE,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,IAAI,CAAC,CAAC,IAAI,IAAI,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC;AACxE,EAAE;AACF,CAAC,GAAG,IAAI,CAAC,CAAC,EAAE;AACZ,EAAE,IAAI,CAAC,CAAC,CAAC,OAAO,GAAG,SAAS,CAAC,EAAE,CAAC,CAAC;AACjC,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;AACnC,EAAE;AACF,CAAC,GAAG,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;AACrB,CAAC,OAAO,SAAS,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AAC7B,CAAC;AACD;AACA,IAAI,iBAAiB,gBAAgB,CAAC,WAAW;AACjD,CAAC,IAAI,SAAS,GAAG,mBAAmB,EAAE,QAAQ,GAAG,kBAAkB,CAAC;AACpE,CAAC,IAAI,MAAM,GAAG,oBAAoB,EAAE,OAAO,GAAG,wCAAwC,CAAC;AACvF,CAAC,IAAI,QAAQ,GAAG,sBAAsB,CAAC;AACvC,CAAC,IAAI,OAAO,GAAG,QAAQ,CAAC,GAAG,CAAC,EAAE,OAAO,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC;AACtD;AACA,OAAO,SAAS,iBAAiB,CAAC,KAAK,aAAa,CAAC,EAAE,IAAI,EAAE,KAAK,YAAY,MAAM,EAAE,MAAM,EAAE;AAC9F,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,KAAK,qBAAqB,EAAE,EAAE,IAAI,sBAAsB,EAAE,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,SAAS;AACnH,CAAC,IAAI,GAAG,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,CAAC;AAC7B,CAAC,IAAI,IAAI,EAAE,IAAI,CAAC;AAChB,CAAC,IAAI,KAAK,GAAG,CAAC,EAAE,MAAM,GAAG,CAAC,CAAC;AAC3B,CAAC,IAAI,SAAS,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC;AAClD,CAAC,IAAI,MAAM,8BAA8B,EAAE,CAAC;AAC5C,CAAC,IAAI,OAAO,GAAG,EAAE,CAAC;AAClB,CAAC,IAAI,KAAK,GAAG,CAAC,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC;AAChC,CAAC,IAAI,IAAI,sBAAsB,EAAE,EAAE,MAAM,GAAG,EAAE,EAAE,OAAO,GAAG,KAAK,CAAC;AAChE,CAAC,IAAI,UAAU,GAAG,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC;AACpC,CAAC,IAAI,IAAI,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC,MAAM,EAAE,EAAE,IAAI,OAAO,EAAE,EAAE,EAAE,EAAE;AAC3F,EAAE,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;AACtB,EAAE,IAAI,IAAI,GAAG,CAAC,CAAC,MAAM,CAAC;AACtB,EAAE,GAAG,IAAI,KAAK,CAAC,EAAE,SAAS;AAC1B;AACA;AACA,EAAE,IAAI,OAAO,GAAG,CAAC,CAAC;AAClB,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,IAAI,EAAE,EAAE,EAAE,EAAE,2BAA2B,CAAC,CAAC,EAAE,CAAC;AACrE,GAAG,KAAK,GAAG;AACX,IAAI,+BAA+B,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,GAAG,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,MAAM,IAAI,CAAC,EAAE;AACxE,IAAI,GAAG,IAAI,IAAI,IAAI,CAAC,UAAU,EAAE;AAChC;AACA,KAAK,GAAG,GAAG,WAAW,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC;AAClD,KAAK,IAAI,GAAG,GAAG,CAAC,CAAC,IAAI,IAAI,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC;AACpE,KAAK,GAAG,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,SAAS,GAAG,IAAI,EAAE,SAAS;AAC1D,KAAK,MAAM,GAAG,EAAE,CAAC,CAAC,OAAO,GAAG,KAAK,CAAC;AAClC,KAAK,GAAG,GAAG,CAAC,EAAE,EAAE,EAAE,OAAO,GAAG,IAAI,CAAC,CAAC,MAAM,CAAC,GAAG,GAAG,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,GAAG,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE;AACpG,KAAK,GAAG,GAAG,CAAC,MAAM,IAAI,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,EAAE,OAAO,GAAG,IAAI,CAAC,CAAC,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC,EAAE;AACzF,KAAK,GAAG,GAAG,CAAC,YAAY,IAAI,IAAI,EAAE,EAAE,OAAO,GAAG,IAAI,CAAC,CAAC,MAAM,CAAC,KAAK,GAAG,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE;AACvF,KAAK,GAAG,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC;AACvC,KAAK;AACL,IAAI,MAAM;AACV,GAAG,KAAK,GAAG,SAAS,OAAO,GAAG,EAAE,CAAC,CAAC,MAAM;AACxC,GAAG;AACH,EAAE,GAAG,OAAO,IAAI,EAAE,EAAE,MAAM;AAC1B,EAAE,GAAG,GAAG,WAAW,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC;AAC/C,EAAE,IAAI,GAAG,GAAG,CAAC,CAAC,IAAI,IAAI,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC;AACjE,EAAE,GAAG,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,SAAS,GAAG,IAAI,EAAE,SAAS;AACvD,EAAE,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE;AAClB,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC;AACjD,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC;AACjD,GAAG;AACH;AACA,EAAE,GAAG,IAAI,IAAI,IAAI,CAAC,UAAU,EAAE;AAC9B,GAAG,MAAM,GAAG,EAAE,CAAC,CAAC,OAAO,GAAG,KAAK,CAAC;AAChC,GAAG,GAAG,GAAG,CAAC,EAAE,EAAE,EAAE,OAAO,GAAG,IAAI,CAAC,CAAC,MAAM,CAAC,GAAG,GAAG,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,GAAG,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE;AAClG,GAAG,GAAG,GAAG,CAAC,MAAM,IAAI,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,EAAE,OAAO,GAAG,IAAI,CAAC,CAAC,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC,EAAE;AACvF,GAAG,GAAG,GAAG,CAAC,YAAY,IAAI,IAAI,EAAE,EAAE,OAAO,GAAG,IAAI,CAAC,CAAC,MAAM,CAAC,KAAK,GAAG,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE;AACrF,GAAG,GAAG,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC;AACrC,GAAG;AACH;AACA;AACA,EAAE,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;AACvC,EAAE,IAAI,IAAI,MAAM,GAAG,CAAC,EAAE,MAAM,IAAI,KAAK,CAAC,MAAM,EAAE,EAAE,MAAM,EAAE,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,GAAG,EAAE,MAAM;AACxG,EAAE,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;AAC9B,EAAE,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,IAAI,KAAK,CAAC,MAAM,EAAE,EAAE,EAAE,EAAE;AACxC,GAAG,CAAC,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;AACxB,GAAG,GAAG,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,SAAS;AAC/B,GAAG,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAC/C,GAAG,CAAC,GAAG,KAAK,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;AAC9C,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE;AACzC,IAAI,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACvB,IAAI,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE;AACjC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE,MAAM;AACtD,KAAK,GAAG,GAAG,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC;AACvB,KAAK;AACL,IAAI,EAAE,GAAG,CAAC;AACV,IAAI,IAAI,GAAG,GAAG,CAAC;AACf,IAAI,MAAM,EAAE,IAAI,CAAC;AACjB,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,EAAE,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC;AACxE,GAAG,GAAG,GAAG,WAAW,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;AACzC,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;AACtD,GAAG,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAClB,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,SAAS,CAAC;AACxB;AACA,GAAG,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,IAAI,0BAA0B,IAAI,CAAC,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;AACvG,GAAG,GAAG,IAAI,CAAC,WAAW,EAAE;AACxB,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,IAAI,0BAA0B,IAAI,CAAC,CAAC,CAAC,KAAK,EAAE,EAAE;AAC/E;AACA,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;AAC9C,KAAK,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACrC,KAAK,4CAA4C,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,EAAE;AACpF,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;AACvC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC3E,MAAM,MAAM,4CAA4C,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,EAAE;AAC5F;AACA,MAAM,IAAI,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;AAClC,MAAM,IAAI,IAAI,GAAG,WAAW,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAChD,MAAM,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC;AACxC,MAAM,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;AAC3D,MAAM;AACN,KAAK,MAAM,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,YAAY,CAAC,GAAG;AAC5C,KAAK,IAAI,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;AACjC,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,kBAAkB,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,aAAa,GAAG,CAAC,CAAC,CAAC,CAAC;AAC/G,KAAK;AACL;AACA,IAAI,IAAI,IAAI,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AAClC,IAAI,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,EAAE,CAAC;AACrC,KAAK,GAAG,IAAI,CAAC,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAChE,MAAM,GAAG,IAAI,CAAC,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACjE,OAAO,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC1B,IAAI;AACJ;AACA,GAAG,GAAG,GAAG,CAAC,CAAC,IAAI,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,SAAS,EAAE;AAC1C,IAAI,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE;AACnB,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC;AACxB,KAAK,MAAM,GAAG,CAAC,UAAU,EAAE,SAAS;AACpC,SAAS,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC;AACnB,IAAI;AACJ,QAAQ,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,IAAI,GAAG,CAAC;AAC3B,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;AACzC,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;AACzC;AACA,GAAG,OAAO,CAAC,CAAC,CAAC;AACb,IAAI,KAAK,GAAG;AACZ,KAAK,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE;AAClC,MAAM,GAAG,CAAC,UAAU,EAAE,SAAS;AAC/B,MAAM,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC;AAChB,MAAM,MAAM,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAClC,KAAK,MAAM;AACX,IAAI,KAAK,GAAG;AACZ,KAAK,GAAG,OAAO,CAAC,CAAC,CAAC,IAAI,WAAW,EAAE;AACnC,MAAM,GAAG,CAAC,UAAU,EAAE,SAAS;AAC/B,MAAM,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC;AAChB,MAAM,MAAM;AACZ,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;AACrC,MAAM,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;AACnB,MAAM,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;AACnB,MAAM,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;AACrC,MAAM;AACN,KAAK,MAAM;AACX,IAAI,KAAK,KAAK;AACd,KAAK,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC;AACf,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,IAAI,WAAW,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC;AAC/D,KAAK,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC7C,KAAK,MAAM;AACX,IAAI,KAAK,WAAW;AACpB,KAAK,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;AAC7B,KAAK,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC;AACf,KAAK,GAAG,IAAI,IAAI,IAAI,KAAK,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE;AACpD,MAAM,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;AACnB,MAAM,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;AACrC,MAAM,MAAM,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;AACrB,KAAK,MAAM;AACX,IAAI,KAAK,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM;AAC7C,IAAI,KAAK,GAAG;AACZ,KAAK,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAChD,UAAU,EAAE,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,EAAE;AAC1D,KAAK,MAAM;AACX;AACA,IAAI,KAAK,GAAG;AACZ,KAAK,GAAG,CAAC,IAAI,IAAI,IAAI,CAAC,QAAQ,KAAK,KAAK,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AACpD,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM;AAC7B,IAAI;AACJ;AACA,GAAG,KAAK,GAAG,MAAM,GAAG,CAAC,CAAC;AACtB,GAAG,EAAE,GAAG,IAAI,CAAC;AACb,GAAG,GAAG,SAAS,IAAI,GAAG,CAAC,CAAC,KAAK,SAAS,EAAE;AACxC,IAAI,EAAE,GAAG,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AAC9B,IAAI,GAAG,EAAE,IAAI,IAAI,EAAE;AACnB,KAAK,GAAG,EAAE,CAAC,QAAQ,IAAI,IAAI,EAAE,KAAK,GAAG,EAAE,CAAC,QAAQ,CAAC;AACjD,KAAK,GAAG,IAAI,CAAC,UAAU,EAAE;AACzB,MAAM,GAAG,EAAE,CAAC,MAAM,IAAI,IAAI,EAAE,MAAM,GAAG,EAAE,CAAC,MAAM,CAAC;AAC/C,MAAM;AACN,KAAK;AACL,IAAI;AACJ,GAAG,WAAW,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;AACvD,GAAG,GAAG,IAAI,CAAC,SAAS,IAAI,SAAS,IAAI,CAAC,CAAC,CAAC,IAAI,GAAG,IAAI,WAAW,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE;AACpH,GAAG,GAAG,GAAG,CAAC,EAAE,IAAI,IAAI,CAAC,MAAM,EAAE;AAC7B,IAAI,IAAI,EAAE,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AAC/C,IAAI,GAAG,EAAE,IAAI,EAAE,CAAC,IAAI,IAAI,QAAQ,EAAE,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;AAC7C,IAAI;AACJ,GAAG,IAAI,EAAE,CAAC;AACV,GAAG,GAAG,IAAI,CAAC,KAAK,EAAE;AAClB,IAAI,EAAE,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AAC5B,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;AAC1C,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;AAC1C,IAAI;AACJ,GAAG,GAAG,KAAK,EAAE;AACb,IAAI,EAAE,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AAC5B,IAAI,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;AAChD,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AAC/B,IAAI,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AACvB,GAAG;AACH,EAAE;AACF,CAAC,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC;AACvC,CAAC,CAAC,EAAE,GAAG,CAAC;AACR;AACA,SAAS,iBAAiB,CAAC,EAAE,gBAAgB,IAAI,EAAE,GAAG,aAAa,EAAE,sCAAsC;AAC3G,CAAC,IAAI,CAAC,qBAAqB,EAAE,EAAE,CAAC,qBAAqB,EAAE,EAAE,KAAK,GAAG,iBAAiB,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,EAAE,IAAI,qBAAqB,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,GAAG,EAAE,CAAC,OAAO,CAAC,CAAC;AACjL,CAAC,IAAI,KAAK,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC;AACjC,CAAC,IAAI,MAAM,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,SAAS,EAAE,GAAG,cAAc,MAAM,GAAG,CAAC,CAAC,CAAC;AAC7D,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;AACjE,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE;AACzC,EAAE,CAAC,GAAG,EAAE,CAAC;AACT,EAAE,EAAE,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;AACrB,EAAE,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE;AAC1C,GAAG,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;AACtB,GAAG,IAAI,KAAK,GAAG,KAAK,GAAG,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC;AACxD,GAAG,GAAG,KAAK,KAAK,SAAS,EAAE,SAAS;AACpC,GAAG,GAAG,CAAC,IAAI,GAAG,iBAAiB,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE,EAAE,IAAa,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACtF,GAAG;AACH,EAAE,GAAG,CAAC,CAAC,MAAM,GAAG,CAAC,KAAK,IAAI,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE;AACxC,GAAG,MAAM,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,SAAS,CAAC;AAC7B,GAAG,GAAG,IAAI,IAAI,IAAI,CAAC,CAAC,CAAC,EAAE;AACvB,IAAI,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,IAAI,GAAG,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;AACrC,IAAI,MAAM,GAAG,CAAC,CAAC,CAAC;AAChB,IAAI,GAAG,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AACxC,SAAS,GAAG,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC,GAAG,CAAC;AACtC,IAAI,GAAG,MAAM,GAAG,CAAC,CAAC,EAAE,EAAE,MAAM,CAAC,EAAE,GAAG,MAAM,CAAC,CAAC,MAAM,CAAC,YAAY,GAAG,CAAC,CAAC,EAAE;AACpE,IAAI,GAAG,GAAG,CAAC,KAAK,EAAE,EAAE,MAAM,CAAC,YAAY,GAAG,GAAG,CAAC,KAAK,CAAC,EAAE;AACtD,IAAI;AACJ,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,SAAS,CAAC,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC;AACxD,GAAG;AACH,EAAE;AACF,CAAC,GAAG,IAAI,EAAE,MAAM,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE;AACtC,EAAE,GAAG,IAAI,IAAI,IAAI,CAAC,CAAC,CAAC,EAAE;AACtB,GAAG,MAAM,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;AAC9B,GAAG,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;AACjB,GAAG,GAAG,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;AACpC,GAAG,MAAM,GAAG,CAAC,CAAC,CAAC;AACf,GAAG,IAAI,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AACxC,QAAQ,IAAI,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC,GAAG,CAAC;AACtC,GAAG,IAAI,MAAM,GAAG,CAAC,CAAC,EAAE,EAAE,MAAM,CAAC,EAAE,GAAG,MAAM,CAAC,CAAC,MAAM,CAAC,YAAY,GAAG,CAAC,CAAC,EAAE;AACpE,GAAG,IAAI,GAAG,CAAC,KAAK,EAAE,EAAE,MAAM,CAAC,YAAY,GAAG,GAAG,CAAC,KAAK,CAAC,EAAE;AACtD,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,SAAS,CAAC,KAAK,EAAE,EAAE,EAAE,MAAM,CAAC,CAAC,CAAC;AAChD,GAAG;AACH,EAAE;AACF,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AACnB,CAAC;AACD;AACA,SAAS,YAAY,CAAC,GAAG,aAAa,IAAI,EAAE,EAAE,eAAe,IAAI,aAAa;AAC9E,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,EAAE,SAAS,CAAC,WAAW,EAAE,IAAI,EAAE;AACnD,EAAE,OAAO,EAAE,UAAU,CAAC,CAAC,CAAC;AACxB,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC;AACpB,EAAE,CAAC,CAAC,CAAC;AACL,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,KAAK,GAAG,EAAE,CAAC;AAClD,CAAC,IAAI,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;AACvB,CAAC,GAAG,EAAE,IAAI,IAAI,EAAE,EAAE,GAAG,EAAE,CAAC;AACxB,CAAC,IAAI,GAAG,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC;AAC9B,CAAC,IAAI,KAAK,GAAG,iBAAiB,CAAC,GAAG,CAAC,CAAC;AACpC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,MAAM,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,OAAO,EAAE;AAC/C,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE,MAAM,IAAI,KAAK,CAAC,QAAQ,GAAG,GAAG,GAAG,qCAAqC,CAAC,CAAC;AACvF,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;AAC1C,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;AAC3C,EAAE,GAAG,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC;AAC5B,EAAE;AACF,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,GAAG,EAAE,CAAC;AACrB,CAAC,EAAE,CAAC,WAAW,CAAC,GAAG,EAAE,CAAC;AACtB,CAAC,IAAI,QAAQ,GAAG,EAAE,CAAC;AACnB;AACA,CAAC,oBAAoB,CAAC,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;AAC5C;AACA,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,SAAS,CAAC,WAAW,EAAE,IAAI,EAAE,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;AAC5D;AACA,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,uBAAuB,CAAC,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC;AAC1D;AACA;AACA,CAAC,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,SAAS,CAAC,eAAe,EAAE,IAAI,EAAE;AACtE,EAAE,gBAAgB,CAAC,IAAI,CAAC,WAAW,CAAC,gBAAgB,EAAE,IAAI;AAC1D,EAAE,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC,YAAY,EAAE,IAAI;AAClD,EAAE,eAAe,CAAC,IAAI,CAAC,WAAW,CAAC,eAAe,EAAE,GAAG;AACvD,EAAE,CAAC,CAAC,CAAC;AACL;AACA,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,IAAI,IAAI,EAAE,CAAC,OAAO,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,iBAAiB,CAAC,EAAE,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;AACtG;AACA,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,MAAM,CAAC,GAAG,cAAc,CAAC;AACrC,CAAC,EAAE,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC;AACnB,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,IAAI,EAAE;AACxB,EAAE,KAAK,GAAG,iBAAiB,CAAC,EAAE,EAAE,IAAmB,CAAC,CAAC;AACrD,EAAE,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,CAAC;AAC7C,EAAE;AACF,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE;AAC3F;AACA;AACA;AACA,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,uBAAuB,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC;AAC1E;AACA;AACA;AACA;AACA,CAAC,GAAG,EAAE,CAAC,aAAa,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,uBAAuB,CAAC,EAAE,CAAC,aAAa,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC;AACrG;AACA;AACA;AACA;AACA;AACA,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,IAAI,IAAI,IAAI,EAAE,CAAC,SAAS,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,mBAAmB,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;AAC1G;AACA;AACA;AACA;AACA;AACA,CAAC,IAAI,IAAI,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,GAAG,CAAC,CAAC,CAAC;AAC9B,CAAC,UAAU,EAAE,CAAC,QAAQ,CAAC,YAAY,MAAM,GAAG,CAAC,EAAE;AAC/C,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,cAAc,CAAC;AAC/B,SAAS,EAAE,CAAC,QAAQ,CAAC,YAAY,OAAO,CAAC,SAAS,CAAC,EAAE;AACrD,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,OAAO;AAC3B,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;AAChC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,GAAG,EAAE;AACpC,IAAI,GAAG,GAAG,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;AACrF,IAAI,GAAG,CAAC,MAAM,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC;AAC5B,IAAI;AACJ,GAAG,GAAG,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,EAAE,GAAG,CAAC,QAAQ,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;AAClG,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,GAAG,CAAC,OAAO,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;AAC1D,GAAG,GAAG,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;AAC9B,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,SAAS,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACjD,GAAG,CAAC,CAAC;AACL,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,eAAe,CAAC;AAChC,EAAE;AACF,CAAC,OAAO,EAAE,CAAC,QAAQ,CAAC,CAAC;AACrB;AACA;AACA;AACA,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,oBAAoB,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC;AAChF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,GAAG,CAAC,IAAI,IAAI,IAAI,CAAC,QAAQ,KAAK,IAAI,CAAC,QAAQ,KAAK,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,QAAQ,CAAC,eAAe,EAAE,SAAS,CAAC,cAAc,EAAE,IAAI,EAAE,CAAC,kBAAkB,CAAC,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AACvK;AACA;AACA;AACA,CAAC,GAAG,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;AACzB,EAAE,GAAG,GAAG,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE,qBAAqB,IAAI,GAAG,CAAC,CAAC,CAAC,GAAG,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;AAChF,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,SAAS,CAAC,SAAS,EAAE,IAAI,EAAE,CAAC,MAAM,CAAC,KAAK,GAAG,GAAG,CAAC,CAAC,CAAC;AACjE,EAAE,EAAE,CAAC,UAAU,CAAC,GAAG,QAAQ,CAAC;AAC5B,EAAE;AACF;AACA,CAAC,GAAG,EAAE,CAAC,WAAW,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE;AAChC,EAAE,GAAG,GAAG,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE,wBAAwB,IAAI,GAAG,CAAC,CAAC,CAAC,GAAG,MAAM,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;AAClF,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,SAAS,CAAC,eAAe,EAAE,IAAI,EAAE,CAAC,MAAM,CAAC,KAAK,GAAG,GAAG,CAAC,CAAC,CAAC;AACvE,EAAE,EAAE,CAAC,SAAS,CAAC,GAAG,GAAG,CAAC;AACtB,EAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE;AAChF,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AACnB,CAAC;AACD;AACA;AACA,SAAS,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE;AACvC,CAAC,IAAI,CAAC,IAAI,EAAE,SAAS,CAAC;AACtB,CAAC,IAAI,GAAG,GAAG,IAAI,CAAC,CAAC,GAAG,MAAM,CAAC;AAC3B,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;AAC1B,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC;AACb,CAAC,IAAI,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;AAChC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC;AACb,CAAC,IAAI,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;AAChC,CAAC,IAAI,CAAC,CAAC,GAAG,GAAG,CAAC;AACd,CAAC,GAAG,KAAK,GAAG,IAAI,EAAE,CAAC,CAAC,KAAK,GAAG,KAAK,GAAG,IAAI,CAAC;AACzC,CAAC,GAAG,KAAK,GAAG,IAAI,EAAE,CAAC,CAAC,MAAM,GAAG,IAAI,CAAC;AAClC,CAAC,GAAG,KAAK,GAAG,IAAI,EAAE,CAAC,CAAC,GAAG,GAAG,KAAK,GAAG,EAAE,CAAC;AACrC,CAAC,OAAO,CAAC,CAAC;AACV,CAAC;AACD,SAAS,eAAe,CAAC,CAAC,aAAa,KAAK,EAAE,EAAE,EAAE;AAClD,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;AAC1B,CAAC,IAAI,GAAG,GAAG,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC;AACpC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AACrB;AACA,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AACrB;AACA,CAAC,IAAI,KAAK,GAAG,MAAM,CAAC;AACpB,CAAC,GAAG,GAAG,CAAC,GAAG,EAAE,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;AACzC,MAAM,GAAG,GAAG,CAAC,GAAG,EAAE,KAAK,GAAG,GAAG,CAAC,GAAG,GAAG,EAAE,CAAC;AACvC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;AACzB;AACA,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AACrB;AACA,CAAC,IAAI,KAAK,GAAG,GAAG,CAAC;AACjB,CAAC,GAAG,GAAG,CAAC,KAAK,EAAE,KAAK,IAAI,GAAG,CAAC,KAAK,CAAC;AAClC,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,KAAK,IAAI,IAAI,CAAC;AAC9B,CAAC,GAAG,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,GAAG,EAAE,KAAK,IAAI,IAAI,CAAC;AACtC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;AACzB;AACA,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AACrB;AACA;AACA,CAAC,IAAI,QAAQ,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;AAC7B,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;AACV;AACA,CAAC,IAAI,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;AACxB,CAAC,IAAI,KAAK,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC;AACjC,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,EAAE,CAAC,EAAE;AAC7B,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE,SAAS;AACtE,EAAE,IAAI,KAAK,GAAG,CAAC,CAAC,EAAE,IAAI,GAAG,CAAC,CAAC,CAAC;AAC5B,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE;AAC7C,GAAG,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC;AACf,GAAG,IAAI,IAAI,GAAG,KAAK,GAAG,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,KAAK,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC;AACnF,GAAG,GAAG,IAAI,EAAE,EAAE,GAAG,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,EAAE;AAClD,GAAG;AACH,EAAE,GAAG,KAAK,GAAG,CAAC,EAAE,SAAS;AACzB,EAAE,EAAE,QAAQ,CAAC;AACb,EAAE,CAAC,CAAC,WAAW,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;AAC1B,EAAE,CAAC,CAAC,WAAW,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;AACzB,EAAE;AACF;AACA,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AACb,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC;AACX,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC;AAC5B,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AACT;AACA,CAAC,OAAO,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AAC7C,CAAC;AACD,SAAS,gBAAgB,CAAC,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE;AAC5C,CAAC,IAAI,CAAC,GAAG,eAAe,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC;AACvC,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,GAAG,EAAE,KAAK,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,YAAY,CAAC,EAAE,EAAE,MAAM,kBAAkB,CAAC,CAAC,CAAC;AACzF,CAAC;AACD;AACA;AACA,IAAI,cAAc,GAAG,kBAAkB,CAAC;AACxC,IAAI,cAAc,GAAG,kBAAkB,CAAC;AACxC;AACA;AACA,SAAS,kBAAkB,qBAAqB;AAChD,CAAC;AACD;AACA;AACA;AACA,SAAS,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE;AACvC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;AACZ,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;AAChC,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC;AACvB,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC;AACvB;AACA,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC;AACd,CAAC,CAAC,CAAC,IAAI,GAAG,kBAAkB,CAAC,IAAiB,CAAC,CAAC;AAChD,CAAC,OAAO,CAAC,CAAC;AACV,CAAC;AACD,SAAS,eAAe,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,EAAE;AACvC,CAAC,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC,GAAG,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;AAC5C,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;AACd,CAAC,GAAG,IAAI,EAAE;AACV,EAAE,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC;AAC5B,EAAE,GAAG,IAAI,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC;AAC5B,EAAE;AACF,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AACrB,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC/C,CAAC,cAAc,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAC7B,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACtB,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACtB,CAAC,kBAAkB,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;AAC5B,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;AACxB,CAAC;AACD;AACA;AACA,SAAS,kBAAkB,CAAC,IAAI,EAAE;AAClC,CAAC,IAAI,IAAI,GAAG,cAAc,CAAC,IAAI,CAAC,CAAC;AACjC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;AACf,CAAC;AACD,SAAS,kBAAkB,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,EAAE;AAC5C,CAAC,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;AAC9B,CAAC,OAAO,cAAc,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;AACjC,CAAC;AACD,SAAS,mBAAmB,CAAC,IAAI,EAAE;AACnC,CAAC,IAAI,IAAI,GAAG,mBAAmB,CAAC,IAAI,CAAC,CAAC;AACtC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;AACf,CAAC;AACD,SAAS,mBAAmB,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,EAAE;AAC7C,CAAC,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;AAC9B,CAAC,OAAO,mBAAmB,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;AACtC,CAAC;AACD;AACA;AACA,SAAS,iBAAiB,CAAC,IAAI,EAAE;AACjC,CAAC,IAAI,IAAI,GAAG,cAAc,CAAC,IAAI,CAAC,CAAC;AACjC,CAAC,IAAI,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;AAChC,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC;AAC3B,CAAC;AACD,SAAS,iBAAiB,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,EAAE;AAC3C,CAAC,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;AAC9B,CAAC,cAAc,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;AAC1B,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;AAClC,CAAC,OAAO,CAAC,CAAC;AACV,CAAC;AACD,SAAS,kBAAkB,CAAC,IAAI,EAAE;AAClC,CAAC,IAAI,IAAI,GAAG,mBAAmB,CAAC,IAAI,CAAC,CAAC;AACtC,CAAC,IAAI,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;AAChC,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC;AAC3B,CAAC;AACD,SAAS,kBAAkB,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,EAAE;AAC5C,CAAC,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;AAC9B,CAAC,mBAAmB,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;AAC/B,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;AAClC,CAAC,OAAO,CAAC,CAAC;AACV,CAAC;AACD;AACA;AACA,SAAS,kBAAkB,CAAC,IAAI,EAAE;AAClC,CAAC,IAAI,IAAI,GAAG,cAAc,CAAC,IAAI,CAAC,CAAC;AACjC,CAAC,IAAI,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;AACjC,CAAC,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,CAAC,CAAC;AAC5B,CAAC;AACD,SAAS,kBAAkB,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,EAAE;AAC5C,CAAC,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;AAC9B,CAAC,cAAc,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;AAC1B,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;AAC1B,CAAC,OAAO,CAAC,CAAC;AACV,CAAC;AACD,SAAS,mBAAmB,CAAC,IAAI,EAAE;AACnC,CAAC,IAAI,IAAI,GAAG,mBAAmB,CAAC,IAAI,CAAC,CAAC;AACtC,CAAC,IAAI,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;AACjC,CAAC,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,CAAC,CAAC;AAC5B,CAAC;AACD,SAAS,mBAAmB,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,EAAE;AAC7C,CAAC,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;AAC9B,CAAC,mBAAmB,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;AAC/B,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;AAC1B,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AACrB,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AACrB,CAAC,OAAO,CAAC,CAAC;AACV,CAAC;AACD;AACA;AACA;AACA,SAAS,iBAAiB,CAAC,IAAI,EAAE;AACjC,CAAC,IAAI,IAAI,GAAG,cAAc,CAAC,IAAI,CAAC,CAAC;AACjC,CAAC,IAAI,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;AAC/B,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC;AAC1B,CAAC;AACD,SAAS,iBAAiB,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,EAAE;AAC3C,CAAC,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC,GAAG,OAAO,CAAC,EAAE,CAAC,CAAC;AAC/B,CAAC,cAAc,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;AAC1B,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;AAC3B,CAAC,OAAO,CAAC,CAAC;AACV,CAAC;AACD,SAAS,kBAAkB,CAAC,IAAI,EAAE;AAClC,CAAC,IAAI,IAAI,GAAG,mBAAmB,CAAC,IAAI,CAAC,CAAC;AACtC,CAAC,IAAI,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;AAC/B,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC;AAC1B,CAAC;AACD,SAAS,kBAAkB,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,EAAE;AAC5C,CAAC,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;AAC9B,CAAC,mBAAmB,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;AAC/B,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;AAC3B,CAAC,OAAO,CAAC,CAAC;AACV,CAAC;AACD;AACA;AACA,SAAS,iBAAiB,CAAC,IAAI,EAAE;AACjC,CAAC,IAAI,IAAI,GAAG,cAAc,CAAC,IAAI,CAAC,CAAC;AACjC,CAAC,IAAI,KAAK,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC;AAC9B,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC;AAC3B,CAAC;AACD,SAAS,iBAAiB,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,EAAE;AAC3C,CAAC,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC,GAAG,OAAO,CAAC,EAAE,CAAC,CAAC;AAC/B,CAAC,cAAc,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;AAC1B,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AACvB,CAAC,OAAO,CAAC,CAAC;AACV,CAAC;AACD,SAAS,kBAAkB,CAAC,IAAI,EAAE;AAClC,CAAC,IAAI,IAAI,GAAG,mBAAmB,CAAC,IAAI,CAAC,CAAC;AACtC,CAAC,IAAI,KAAK,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC;AAC9B,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC;AAC3B,CAAC;AACD,SAAS,kBAAkB,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,EAAE;AAC5C,CAAC,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC,GAAG,OAAO,CAAC,EAAE,CAAC,CAAC;AAC/B,CAAC,mBAAmB,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;AAC/B,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AACvB,CAAC,OAAO,CAAC,CAAC;AACV,CAAC;AACD;AACA;AACA,SAAS,eAAe,CAAC,IAAI,EAAE;AAC/B,CAAC,IAAI,IAAI,GAAG,cAAc,CAAC,IAAI,CAAC,CAAC;AACjC,CAAC,IAAI,KAAK,GAAG,cAAc,CAAC,IAAI,CAAC,CAAC;AAClC,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC;AAC3B,CAAC;AACD,SAAS,eAAe,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,EAAE;AACzC,CAAC,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC,GAAG,OAAO,CAAC,EAAE,CAAC,CAAC;AAC/B,CAAC,cAAc,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;AAC1B,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAC3B,CAAC,OAAO,CAAC,CAAC;AACV,CAAC;AACD,SAAS,gBAAgB,CAAC,IAAI,EAAE;AAChC,CAAC,IAAI,IAAI,GAAG,mBAAmB,CAAC,IAAI,CAAC,CAAC;AACtC,CAAC,IAAI,KAAK,GAAG,cAAc,CAAC,IAAI,CAAC,CAAC;AAClC,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC;AAC3B,CAAC;AACD,SAAS,gBAAgB,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,EAAE;AAC1C,CAAC,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;AAC9B,CAAC,mBAAmB,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;AAC/B,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAC3B,CAAC,OAAO,CAAC,CAAC;AACV,CAAC;AACD;AACA;AACA,SAAS,oBAAoB,CAAC,IAAI,EAAE;AACpC,CAAC,IAAI,IAAI,GAAG,cAAc,CAAC,IAAI,CAAC,CAAC;AACjC,CAAC,IAAI,KAAK,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC;AACjC,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;AAC5B,CAAC;AACD;AACA;AACA,SAAS,eAAe,CAAC,IAAI,EAAE;AAC/B,CAAC,IAAI,IAAI,GAAG,cAAc,CAAC,IAAI,CAAC,CAAC;AACjC,CAAC,IAAI,KAAK,GAAG,kBAAkB,CAAC,IAAI,CAAC,CAAC;AACtC,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;AAC7B,CAAC;AACD,SAAS,eAAe,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,EAAE;AACzC,CAAC,IAAI,IAAI,GAAG,IAAI,CAAC,CAAC,IAAI,IAAI,GAAG,EAAE,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACjD,CAAC,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC,GAAG,OAAO,CAAC,EAAE,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;AACnD,CAAC,cAAc,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;AAC1B,CAAC,kBAAkB,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;AAC7B,CAAC,OAAO,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AAC7C,CAAC;AACD,SAAS,gBAAgB,CAAC,IAAI,EAAE;AAChC,CAAC,IAAI,IAAI,GAAG,mBAAmB,CAAC,IAAI,CAAC,CAAC;AACtC,CAAC,IAAI,KAAK,GAAG,kBAAkB,CAAC,IAAI,CAAC,CAAC;AACtC,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;AAC7B,CAAC;AACD,SAAS,gBAAgB,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,EAAE;AAC1C,CAAC,IAAI,IAAI,GAAG,IAAI,CAAC,CAAC,IAAI,IAAI,GAAG,EAAE,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACjD,CAAC,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC,GAAG,OAAO,CAAC,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC;AAChD,CAAC,mBAAmB,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;AAC/B,CAAC,kBAAkB,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;AAC7B,CAAC,OAAO,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AAC7C,CAAC;AACD;AACA;AACA,SAAS,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE;AAC/C,CAAC,IAAI,GAAG,GAAG,IAAI,CAAC,CAAC,GAAG,MAAM,CAAC;AAC3B,CAAC,IAAI,IAAI,GAAG,cAAc,CAAC,IAAI,CAAC,CAAC;AACjC,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC;AACvB,CAAC,IAAI,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;AAChC,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC;AAC5B,CAAC,GAAG,IAAI,CAAC,WAAW,EAAE;AACtB,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC;AACd,EAAE,IAAI,OAAO,GAAG,2BAA2B,CAAC,IAAI,EAAE,GAAG,GAAG,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;AACtE,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,iBAAiB,CAAC,OAAO,EAAE,IAAI,WAAW,IAAI,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;AAC9E,EAAE;AACF,MAAM,IAAI,CAAC,CAAC,GAAG,GAAG,CAAC;AACnB,CAAC,OAAO,CAAC,CAAC;AACV,CAAC;AACD;AACA;AACA,SAAS,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE;AAChD,CAAC,IAAI,GAAG,GAAG,IAAI,CAAC,CAAC,GAAG,MAAM,CAAC;AAC3B,CAAC,IAAI,IAAI,GAAG,cAAc,CAAC,IAAI,CAAC,CAAC;AACjC,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC;AACvB,CAAC,IAAI,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;AAChC,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC;AAC5B,CAAC,GAAG,IAAI,CAAC,WAAW,EAAE;AACtB,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC;AACd,EAAE,IAAI,OAAO,GAAG,2BAA2B,CAAC,IAAI,EAAE,GAAG,GAAG,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;AACtE,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,iBAAiB,CAAC,OAAO,EAAE,IAAI,WAAW,IAAI,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;AAC9E,EAAE;AACF,MAAM,IAAI,CAAC,CAAC,GAAG,GAAG,CAAC;AACnB,CAAC,OAAO,CAAC,CAAC;AACV,CAAC;AACD;AACA;AACA,SAAS,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE;AAC9C,CAAC,IAAI,GAAG,GAAG,IAAI,CAAC,CAAC,GAAG,MAAM,CAAC;AAC3B,CAAC,IAAI,IAAI,GAAG,cAAc,CAAC,IAAI,CAAC,CAAC;AACjC,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC;AACvB,CAAC,IAAI,KAAK,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC;AAC9B,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC;AAC5B,CAAC,GAAG,IAAI,CAAC,WAAW,EAAE;AACtB,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC;AACd,EAAE,IAAI,OAAO,GAAG,2BAA2B,CAAC,IAAI,EAAE,GAAG,GAAG,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;AACtE,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,iBAAiB,CAAC,OAAO,EAAE,IAAI,WAAW,IAAI,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;AAC9E,EAAE;AACF,MAAM,IAAI,CAAC,CAAC,GAAG,GAAG,CAAC;AACnB,CAAC,OAAO,CAAC,CAAC;AACV,CAAC;AACD;AACA;AACA,SAAS,mBAAmB,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE;AACjD,CAAC,IAAI,GAAG,GAAG,IAAI,CAAC,CAAC,GAAG,MAAM,CAAC;AAC3B,CAAC,IAAI,IAAI,GAAG,cAAc,CAAC,IAAI,CAAC,CAAC;AACjC,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC;AACvB,CAAC,IAAI,KAAK,GAAG,kBAAkB,CAAC,IAAI,CAAC,CAAC;AACtC,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;AAC9B,CAAC,GAAG,IAAI,CAAC,WAAW,EAAE;AACtB,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC;AACd,EAAE,IAAI,OAAO,GAAG,2BAA2B,CAAC,IAAI,EAAE,GAAG,GAAG,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;AACtE,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,iBAAiB,CAAC,OAAO,EAAE,IAAI,WAAW,IAAI,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;AAC9E,EAAE;AACF,MAAM,IAAI,CAAC,CAAC,GAAG,GAAG,CAAC;AACnB,CAAC,OAAO,CAAC,CAAC;AACV,CAAC;AACD;AACA;AACA,IAAI,kBAAkB,GAAG,kBAAkB,CAAC;AAC5C,IAAI,kBAAkB,GAAG,kBAAkB,CAAC;AAC5C;AACA,SAAS,wBAAwB,CAAC,GAAG,EAAE,CAAC,EAAE;AAC1C,CAAC,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;AAC9B,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;AACvB,CAAC,OAAO,CAAC,CAAC;AACV,CAAC;AACD;AACA;AACA,SAAS,cAAc,CAAC,IAAI,EAAE,MAAM,cAAc;AAClD,CAAC,IAAI,GAAG,GAAG,IAAI,CAAC,CAAC,GAAG,MAAM,CAAC;AAC3B,CAAC,IAAI,GAAG,GAAG,kBAAkB,CAAC,IAAQ,CAAC,CAAC;AACxC,CAAC,IAAI,KAAK,GAAG,0BAA0B,CAAC,IAAI,CAAC,CAAC;AAC9C,CAAC,IAAI,GAAG,GAAG,kBAAkB,CAAC,IAAI,CAAC,CAAC;AACpC,CAAC,IAAI,OAAO,GAAG,kBAAkB,CAAC,IAAI,CAAC,CAAC;AACxC,CAAC,IAAI,OAAO,GAAG,kBAAkB,CAAC,IAAI,CAAC,CAAC;AACxC,CAAC,IAAI,CAAC,CAAC,GAAG,GAAG,CAAC;AACd,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,KAAK,EAAE,GAAG,CAAC,GAAG,EAAE,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC;AACpE,CAAC,GAAG,OAAO,EAAE,CAAC,CAAC,OAAO,GAAG,OAAO,CAAC;AACjC,CAAC,OAAO,CAAC,CAAC;AACV,CAAC;AACD,SAAS,cAAc,CAAC,CAAC,EAAE,GAAG,EAAE;AAChC,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,IAAI,EAAE,EAAE,MAAM,CAAC,CAAC,CAAC;AAC1E,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AACnE,CAAC,WAAW,CAAC,KAAK,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC;AAC7B,CAAC,IAAI,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;AACvC,CAAC,IAAI,GAAG,GAAG,MAAM,IAAI,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;AAC3D,CAAC,kBAAkB,CAAC,GAAG,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC;AAClC,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC;AAC3C,CAAC,kBAAkB,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;AAC3B,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;AACxB,CAAC;AACD;AACA;AACA,SAAS,aAAa,yBAAyB;AAC/C,CAAC;AACD;AACA;AACA,SAAS,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE;AAC9C,CAAC,IAAI,GAAG,GAAG,IAAI,CAAC,CAAC,GAAG,MAAM,CAAC;AAC3B,CAAC,IAAI,GAAG,GAAG,SAAS,CAAC,IAAQ,CAAC,CAAC;AAC/B,CAAC,IAAI,WAAW,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;AACtC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,WAAW,CAAC;AACnC,CAAC,GAAG,IAAI,CAAC,WAAW,EAAE;AACtB,EAAE,IAAI,OAAO,GAAG,4BAA4B,CAAC,IAAI,EAAE,GAAG,GAAG,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;AACvE,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC;AACjB,EAAE,MAAM,IAAI,CAAC,CAAC,GAAG,GAAG,CAAC;AACrB,CAAC,OAAO,CAAC,CAAC;AACV,CAAC;AACD;AACA;AACA,SAAS,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE;AAC9C,CAAC,IAAI,GAAG,GAAG,IAAI,CAAC,CAAC,GAAG,MAAM,CAAC;AAC3B,CAAC,IAAI,GAAG,GAAG,kBAAkB,CAAC,IAAQ,CAAC,CAAC;AACxC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AACf,CAAC,GAAG,IAAI,CAAC,WAAW,EAAE;AACtB,EAAE,IAAI,OAAO,GAAG,6BAA6B,CAAC,IAAI,EAAE,GAAG,GAAG,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;AACxE,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC;AACjB,EAAE,IAAI,CAAC,CAAC,GAAG,GAAG,CAAC;AACf,EAAE,MAAM,IAAI,CAAC,CAAC,GAAG,GAAG,CAAC;AACrB,CAAC,OAAO,CAAC,CAAC;AACV,CAAC;AACD;AACA;AACA;AACA,SAAS,gBAAgB,CAAC,CAAC,aAAa,GAAG,EAAE,CAAC,EAAE;AAChD,CAAC,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC,GAAG,OAAO,CAAC,EAAE,CAAC,CAAC;AAC/B,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;AAC3B,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AACtB,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AACtB,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE,IAAI,GAAG,CAAC,CAAC;AACzC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC,SAAS,CAAC;AAC7B,CAAC,IAAI,KAAK,GAAG,CAAC,CAAC;AACf,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,KAAK,IAAI,IAAI,CAAC;AAC9B,CAAC,GAAG,OAAO,CAAC,CAAC,KAAK,IAAI,QAAQ,EAAE,KAAK,IAAI,IAAI,CAAC;AAC9C,CAAC,GAAG,GAAG,CAAC,KAAK,EAAE,KAAK,KAAK,GAAG,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC;AACzC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;AACzB,CAAC,OAAO,CAAC,CAAC;AACV,CAAC;AACD;AACA;AACA,IAAI,aAAa,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;AACtE,SAAS,gBAAgB,CAAC,IAAI,kCAAkC;AAChE,CAAC,IAAI,OAAO,IAAI,EAAE,SAAS,CAAC;AAC5B,CAAC,aAAa,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,IAAO,CAAC,CAAC,EAAE,CAAC,CAAC;AAC1E,CAAC,OAAO,OAAO,CAAC;AAChB,CAAC;AACD,SAAS,gBAAgB,CAAC,OAAO,cAAc,CAAC,EAAE;AAClD,CAAC,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAChC,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;AAC1B,CAAC,aAAa,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,EAAE,UAAU,CAAC,CAAC,OAAO,UAAU,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;AAC7E,CAAC,OAAO,CAAC,CAAC;AACV,CAAC;AACD;AACA;AACA,SAAS,oBAAoB,CAAC,IAAI,sBAAsB;AACxD,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;AAC5B,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC;AACd,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC;AAC1B,CAAC;AACD,SAAS,oBAAoB,CAAC,EAAE,EAAE,QAAQ,EAAE,CAAC,EAAE;AAC/C,CAAC,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC,GAAG,OAAO,CAAC,EAAE,CAAC,CAAC;AAC/B,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC;AACf,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,IAAI,IAAI,CAAC;AACvD,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AACrB,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AACrB,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AACrB,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AACrB,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AACrB,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AACrB,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AACrB,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;AACvB,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AACrB,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AACrB,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AACrB,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AACrB,CAAC,OAAO,CAAC,CAAC;AACV,CAAC;AACD;AACA;AACA,SAAS,qBAAqB,CAAC,GAAG,EAAE;AACpC,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,EAAE,CAAC,CAAC;AACrB,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AACrB,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AACrB,CAAC,kBAAkB,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;AAC5B,CAAC,OAAO,CAAC,CAAC;AACV,CAAC;AACD;AACA;AACA,SAAS,wBAAwB,CAAC,EAAE,EAAE,CAAC,EAAE;AACzC,CAAC,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC,GAAG,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACnC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,GAAG,qCAAqC,CAAC,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;AACxF,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AACrB,CAAC;AACD,EAAE,CAAC,SAAS,cAAc,KAAK,CAAC;AAChC,EAAE,CAAC,WAAW,YAAY,KAAK,CAAC;AAChC,EAAE,CAAC,aAAa,WAAW,IAAI,CAAC;AAChC,EAAE,CAAC,eAAe,SAAS,IAAI,CAAC;AAChC,EAAE,CAAC,YAAY,YAAY,IAAI,CAAC;AAChC,EAAE,CAAC,eAAe,SAAS,IAAI,CAAC;AAChC,EAAE,CAAC,YAAY,YAAY,IAAI,CAAC;AAChC,EAAE,CAAC,kBAAkB,MAAM,IAAI,CAAC;AAChC,EAAE,CAAC,eAAe,SAAS,IAAI,CAAC;AAChC,EAAE,CAAC,YAAY,YAAY,IAAI,CAAC;AAChC,EAAE,CAAC,mBAAmB,IAAI,KAAK,CAAC;AAChC,EAAE,CAAC,MAAM,kBAAkB,IAAI,CAAC;AAChC,EAAE,CAAC,YAAY,YAAY,IAAI,CAAC;AAChC,EAAE,CAAC,aAAa,WAAW,IAAI,CAAC;AAChC,EAAE,CAAC,qBAAqB,EAAE,KAAK,CAAC;AAChC,EAAE,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE;AACvB;AACA,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,WAAW,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;AACnE,YAAY,CAAC,CAAC,WAAW,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;AACnE,EAAE,CAAC,CAAC;AACJ,CAAC,OAAO,CAAC,CAAC;AACV,CAAC;AACD;AACA,SAAS,aAAa,yBAAyB;AAC/C,CAAC;AACD,SAAS,eAAe,yBAAyB;AACjD,CAAC;AACD;AACA,SAAS,YAAY,CAAC,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,gBAAgB,MAAM,EAAE,MAAM,gBAAgB;AAC9F,CAAC,GAAG,CAAC,IAAI,EAAE,OAAO,IAAI,CAAC;AACvB,CAAC,IAAI,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;AACxB,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;AAE7B,CAAC,IAAI,CAAC,kBAAkB,EAAE,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC;AAC5D;AACA,CAAC,IAAI,GAAG,CAAC;AACT,CAAC,IAAI,QAAQ,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;AAG5D,CAAC,IAAI,IAAI,GAAG,KAAK,EAAE,GAAG,GAAG,KAAK,CAAC;AAC/B,CAAC,IAAI,GAAG,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,UAAU;AACrD,CAAC,IAAI,MAAM,oBAAoB,EAAE,CAAC;AAClC,CAAC,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC;AAChB,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;AAClB;AACA,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,KAAK,CAAC;AACxB;AACA,CAAC,IAAI,MAAM,8BAA8B,EAAE,CAAC;AAC5C,CAAC,IAAI,OAAO,GAAG,EAAE,CAAC;AAClB,CAAC,IAAI,QAAQ,GAAG,IAAI,CAAC,QAAQ,WAAW,EAAE,aAAa,QAAQ,KAAK,CAAC,EAAE,CAAC,SAAS,CAAC;AAClF,CAAC,QAAQ,CAAC,OAAO,GAAG,OAAO,CAAC;AAC5B,CAAC,QAAQ,CAAC,MAAM,GAAG,MAAM,CAAC;AAC1B,CAAC,QAAQ,CAAC,UAAU,GAAG,EAAE,CAAC,UAAU,IAAI,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AACtF,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,EAAE;AACpB,EAAE,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;AAC3B,EAAE,GAAG,EAAE,CAAC,KAAK,EAAE,IAAI,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AACvF,EAAE;AACF;AACA,CAAC,IAAI,OAAO,sBAAsB,EAAE,EAAE,OAAO,sBAAsB,EAAE,CAAC;AACtE,CAAC,IAAI,OAAO,GAAG,KAAK,CAAC;AACrB;AACA,CAAC,cAAc,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,cAAc,EAAE,CAAC,CAAC,kBAAkB,EAAE,CAAC;AACrE;AACA,CAAI,IAAC,EAAE,CAAK;AACZ;AACA,CAAC,YAAY,CAAC,IAAI,EAAE,SAAS,QAAQ,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE;AACnD,EAAE,GAAG,GAAG,EAAE,OAAO;AACjB,EAAE,OAAO,EAAE;AACX,GAAG,KAAK,MAAM;AACd,IAAI,GAAG,GAAG,GAAG,CAAC,CAAC,MAAM;AACrB,GAAG,KAAK,MAAM;AACd,IAAI,GAAG,GAAG,GAAG,CAAC;AACd,IAAI,GAAG,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,SAAS,IAAI,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,IAAI,CAAC;AAC3D,IAAI,EAAE,GAAG,UAAU,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;AAC/B,IAAI,IAAI,CAAC,MAAM,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;AACzB,IAAI,GAAG,GAAG,CAAC,MAAM,IAAI,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,KAAK,IAAI,IAAI,EAAE;AACnD,KAAK,GAAG,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,GAAG,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AAC1C,KAAK,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC;AAC1B,KAAK;AACL,IAAI,MAAM;AACV;AACA,GAAG,KAAK,MAAM,CAAC;AACf,GAAG,KAAK,MAAM,CAAC;AACf,GAAG,KAAK,MAAM,CAAC;AACf,GAAG,KAAK,MAAM,CAAC;AACf,GAAG,KAAK,MAAM,CAAC;AACf,GAAG,KAAK,MAAM,CAAC;AACf,GAAG,KAAK,MAAM,CAAC;AACf,GAAG,KAAK,MAAM,CAAC;AACf,GAAG,KAAK,MAAM,CAAC;AACf,GAAG,KAAK,MAAM,CAAC;AACf,GAAG,KAAK,MAAM,CAAC;AACf,GAAG,KAAK,MAAM,CAAC;AACf,GAAG,KAAK,MAAM,CAAC;AACf,GAAG,KAAK,MAAM,CAAC;AACf,GAAG,KAAK,MAAM,CAAC;AACf,GAAG,KAAK,MAAM,CAAC;AACf,GAAG,KAAK,MAAM;AACd,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;AAC7B,IAAI,OAAO,GAAG,CAAC,CAAC,CAAC;AACjB,KAAK,KAAK,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM;AACnC,KAAK,KAAK,GAAG,EAAE,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM;AACtE,KAAK,KAAK,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,GAAG,KAAK,CAAC,CAAC,MAAM;AAClD,KAAK,KAAK,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,QAAQ,KAAK,KAAK,EAAE,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM;AAChF,KAAK,KAAK,KAAK,EAAE,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM;AAChD,KAAK,KAAK,IAAI,EAAE,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM;AACjD,KAAK;AACL,IAAI,IAAI,EAAE,GAAG,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;AACpG,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC1C,IAAI,GAAG,IAAI,CAAC,KAAK,EAAE,EAAE,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE;AACnF,SAAS,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC;AACnC,IAAI,GAAG,IAAI,CAAC,WAAW,EAAE;AACzB,KAAK,EAAE,GAAG,KAAK,CAAC;AAChB,KAAK,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,MAAM,CAAC,MAAM,EAAE,EAAE,EAAE,EAAE;AAC3C,MAAM,IAAI,GAAG,GAAG,MAAM,CAAC,EAAE,CAAC,CAAC;AAC3B,MAAM,GAAG,GAAG,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACnD,OAAO,GAAG,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE;AAC9C,QAAQ,CAAC,CAAC,CAAC,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC;AAC9C,QAAQ;AACR,MAAM;AACN,KAAK,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;AAC5C,KAAK;AACL;AACA,IAAI,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;AAClD,IAAI,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AAC1C,IAAI,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;AAClD,IAAI,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AAC1C,IAAI,GAAG,IAAI,CAAC,SAAS,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,GAAG,IAAI,WAAW,CAAC,SAAS,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE;AAClF,KAAK,IAAI,EAAE,GAAG,mBAAmB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,IAAI,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE;AACpH,KAAK;AACL,IAAI,GAAG,EAAE,EAAE;AACX,KAAK,GAAG,EAAE,CAAC,IAAI,IAAI,QAAQ,EAAE,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;AACxC,KAAK,EAAE,GAAG,KAAK,CAAC,CAAC;AACjB,KAAK;AAEL,IAAI,MAAM;AACV;AACA,GAAG,KAAK,MAAM,CAAC;AACf,GAAG,KAAK,MAAM;AACd,IAAI,GAAG,CAAC,IAAI,CAAC,UAAU,IAAI,IAAI,EAAE,MAAM;AACvC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC;AACnC,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC1C,IAAI,GAAG,IAAI,CAAC,KAAK,EAAE,EAAE,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE;AACnF,SAAS,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC;AACnC,IAAI,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;AAClD,IAAI,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AAC1C,IAAI,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;AAClD,IAAI,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AAC1C,IAAI,GAAG,EAAE,EAAE;AACX,KAAK,GAAG,EAAE,CAAC,IAAI,IAAI,QAAQ,EAAE,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;AACxC,KAAK,EAAE,GAAG,KAAK,CAAC,CAAC;AACjB,KAAK;AAEL,IAAI,MAAM;AACV;AACA,GAAG,KAAK,MAAM;AACd,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM;AAC5B;AACA,GAAG,KAAK,MAAM,EAAE;AAChB,IAAI,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;AAC7C,IAAI,CAAC,MAAM;AACX;AACA,GAAG,KAAK,MAAM;AACd,IAAI,IAAI,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;AACrC,IAAI,GAAG,GAAG,EAAE;AACZ,KAAK,GAAG,CAAC,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC;AAC7B,KAAK,GAAG,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,MAAM,IAAI,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC;AAC3C,KAAK,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC;AACnB,KAAK,MAAM,GAAG,GAAG,CAAC,KAAK,IAAI,EAAE,EAAE;AAC/B,KAAK,GAAG,CAAC,MAAM,GAAG,GAAG,GAAG,GAAG,CAAC,GAAG,CAAC;AAChC,KAAK;AACL,IAAI,IAAI,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE;AAChF,KAAK,GAAG,IAAI,CAAC,KAAK,EAAE;AACpB,MAAM,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;AAC5C,MAAM,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;AACnE,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC;AAC/B,MAAM,MAAM;AACZ,MAAM,IAAI,GAAG,UAAU,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;AAC3C,MAAM,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;AACjD,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC;AACtB,MAAM;AACN,KAAK;AACL,IAAI,MAAM;AACV;AACA,GAAG,KAAK,MAAM;AACd,IAAI,GAAG,CAAC,IAAI,CAAC,WAAW,EAAE,MAAM;AAChC,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACrB,IAAI,IAAI,KAAK,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC;AAC7E,IAAI,IAAI,CAAC,CAAC,GAAG,iBAAiB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC;AACjF,IAAI,IAAI,CAAC,CAAC,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AAClC,IAAI,MAAM;AACV,GAAG,KAAK,MAAM;AACd,IAAI,GAAG,CAAC,IAAI,CAAC,WAAW,EAAE,MAAM;AAChC,IAAI,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;AAC5C,IAAI,IAAI,IAAI,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;AACnE,IAAI,IAAI,CAAC,CAAC,GAAG,iBAAiB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC;AACjF,IAAI,MAAM;AACV;AACA;AACA,GAAG,KAAK,MAAM;AACd,IAAI,GAAG,CAAC,IAAI,CAAC,UAAU,EAAE,MAAM;AAC/B,IAAI,MAAM,GAAG,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,EAAE;AAC1B,KAAK,OAAO,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,MAAM,EAAE,CAAC,EAAE,GAAG,CAAC,KAAK,GAAG,IAAI,CAAC,EAAE,KAAK,EAAE,GAAG,CAAC,KAAK,EAAE,CAAC;AAC7F,KAAK,GAAG,CAAC,OAAO,EAAE,EAAE,OAAO,GAAG,IAAI,CAAC,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE;AAC/D,KAAK,WAAW,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACnC,KAAK;AACL,IAAI,MAAM;AACV;AACA,GAAG,KAAK,MAAM;AACd,IAAI,CAAC,CAAC,aAAa,CAAC,GAAG,EAAE,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,EAAE,CAAC;AACjD,IAAI,MAAM;AACV;AACA,GAAG,KAAK,MAAM;AACd,IAAI,CAAC,CAAC,UAAU,CAAC,GAAG,GAAG,CAAC;AACxB,IAAI,MAAM;AACV;AACA,GAAG,KAAK,MAAM;AACd,IAAI,GAAG,CAAC,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;AAC5C,IAAI,GAAG,GAAG,CAAC,IAAI,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,QAAQ,GAAG,GAAG,CAAC,IAAI,CAAC;AACpD,IAAI,GAAG,GAAG,CAAC,KAAK,IAAI,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,UAAU,CAAC,GAAG,EAAE,KAAK,EAAE,GAAG,CAAC,KAAK,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,CAAC;AACnF,IAAI,MAAM;AACV;AACA,GAAG,KAAK,MAAM;AACd,IAAI,GAAG,CAAC,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC;AAClC,IAAI,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;AACtC,IAAI,GAAG,GAAG,CAAC,GAAG,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,IAAI,CAAC;AACvC,IAAI,MAAM;AACV;AACA,GAAG,KAAK,MAAM;AACd,IAAI,MAAM;AACV;AACA,GAAG,KAAK,MAAM,CAAC;AACf,GAAG,KAAK,MAAM;AACd,IAAI,MAAM;AACV;AACA,GAAG,KAAK,MAAM;AACd,IAAI,MAAM;AACV,GAAG,KAAK,MAAM,CAAC;AACf,GAAG,KAAK,MAAM,CAAC;AACf,GAAG,KAAK,MAAM,CAAC;AACf,GAAG,KAAK,MAAM,CAAC;AACf,GAAG,KAAK,MAAM,CAAC;AACf,GAAG,KAAK,MAAM,CAAC;AACf,GAAG,KAAK,MAAM,CAAC;AACf,GAAG,KAAK,MAAM,CAAC;AACf,GAAG,KAAK,MAAM,CAAC;AACf,GAAG,KAAK,MAAM,CAAC;AACf,GAAG,KAAK,MAAM,CAAC;AACf,GAAG,KAAK,MAAM,CAAC;AACf,GAAG,KAAK,MAAM,CAAC;AACf,GAAG,KAAK,MAAM,CAAC;AACf,GAAG,KAAK,MAAM,CAAC;AACf,GAAG,KAAK,MAAM,CAAC;AACf,GAAG,KAAK,MAAM,CAAC;AACf,GAAG,KAAK,MAAM,CAAC;AACf,GAAG,KAAK,MAAM,CAAC;AACf,GAAG,KAAK,MAAM,CAAC;AACf,GAAG,KAAK,MAAM,CAAC;AACf,GAAG,KAAK,MAAM,CAAC;AACf,GAAG,KAAK,MAAM,CAAC;AACf,GAAG,KAAK,MAAM,CAAC;AACf,GAAG,KAAK,MAAM,CAAC;AACf,GAAG,KAAK,MAAM,CAAC;AACf,GAAG,KAAK,MAAM,CAAC;AACf,GAAG,KAAK,MAAM,CAAC;AACf,GAAG,KAAK,MAAM,CAAC;AACf,GAAG,KAAK,MAAM,CAAC;AACf,GAAG,KAAK,MAAM,CAAC;AACf,GAAG,KAAK,MAAM,CAAC;AACf,GAAG,KAAK,MAAM,CAAC;AACf,GAAG,KAAK,MAAM,CAAC;AACf,GAAG,KAAK,MAAM,CAAC;AACf,GAAG,KAAK,MAAM,CAAC;AACf,GAAG,KAAK,MAAM,CAAC;AACf,GAAG,KAAK,MAAM,CAAC;AACf,GAAG,KAAK,MAAM,CAAC;AACf,GAAG,KAAK,MAAM,CAAC;AACf,GAAG,KAAK,MAAM,CAAC;AACf,GAAG,KAAK,MAAM,CAAC;AACf,GAAG,KAAK,MAAM,CAAC;AACf,GAAG,KAAK,MAAM,CAAC;AACf,GAAG,KAAK,MAAM,CAAC;AACf,GAAG,KAAK,MAAM,CAAC;AACf,GAAG,KAAK,MAAM,CAAC;AACf,GAAG,KAAK,MAAM,CAAC;AACf,GAAG,KAAK,MAAM,CAAC;AACf,GAAG,KAAK,MAAM;AACd,IAAI,MAAM;AACV;AACA,GAAG,KAAK,MAAM;AACd,IAAI,IAAI,GAAG,IAAI,CAAC,CAAC,MAAM;AACvB,GAAG,KAAK,MAAM;AACd,IAAI,IAAI,GAAG,KAAK,CAAC,CAAC,MAAM;AACxB,GAAG,KAAK,MAAM;AACK,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC,MAAM;AACvC,GAAG,KAAK,MAAM;AACE,CAAC,IAAI,GAAG,KAAK,CAAC,CAAC,MAAM;AACrC;AACA,GAAG;AACH,IAAI,GAAG,EAAE,CAAC,CAAC,CAAC,CAAa;AACzB,SAAS,GAAG,CAAC,IAAI,IAAI,IAAI,CAAC,GAAG,EAAE,MAAM,IAAI,KAAK,CAAC,sBAAsB,GAAG,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC;AACzF,GAAG;AACH,EAAE,EAAE,IAAI,CAAC,CAAC;AACV;AACA,CAAC,OAAO,IAAI,CAAC,QAAQ,CAAC;AACtB,CAAC,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC;AACrB;AACA,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,OAAO,IAAI,GAAG,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,GAAG,YAAY,CAAC,GAAG,IAAI,QAAQ,CAAC,CAAC;AAC3J,CAAC,GAAG,IAAI,CAAC,SAAS,IAAI,CAAC,CAAC,MAAM,CAAC,EAAE;AACjC,EAAE,IAAI,MAAM,GAAG,iBAAiB,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;AAC5C,EAAE,GAAG,IAAI,CAAC,SAAS,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE;AACpC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC;AACnC,GAAG,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;AAC3D,GAAG,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;AACvD,GAAG,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;AAC3D,GAAG,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;AACvD,GAAG,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC;AAC7B,GAAG,CAAC,CAAC,MAAM,CAAC,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC;AACpC,GAAG;AACH,EAAE;AACF,CAAC,GAAG,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,GAAG,MAAM,CAAC;AAC7C,CAAC,GAAG,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC;AAC7C,CAAC,GAAG,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC;AAC7C,CAAC,OAAO,CAAC,CAAC;AACV,CAAC;AACD;AACA;AACA,SAAS,iBAAiB,CAAC,EAAE,eAAe,IAAI,WAAW,CAAC,aAAa,CAAC,aAAa,IAAI,EAAE,EAAE,gBAAgB,SAAS,0BAA0B;AAClJ,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;AACtC,CAAC,GAAG,IAAI,CAAC,CAAC,EAAE,EAAE,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;AAC3D,CAAC,GAAG,IAAI,CAAC,CAAC,KAAK,SAAS,EAAE,OAAO,KAAK,CAAC;AACvC,CAAC,IAAI,EAAE,GAAG,EAAE,CAAC;AACb,CAAC,OAAO,IAAI,CAAC,CAAC;AACd,EAAE,KAAK,GAAG,EAAE,EAAE,GAAG,IAAI,CAAC,CAAC,GAAG,GAAG,GAAG,GAAG,CAAC,CAAC,MAAM;AAC3C,EAAE,KAAK,GAAG;AACV,GAAG,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC,CAAC;AACpB,GAAG,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,IAAI,SAAS,CAAC,EAAE,CAAC,CAAC;AACpC,GAAG,IAAI,CAAC,CAAC,GAAG,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,GAAG,CAAC;AACrD,GAAG,MAAM;AACT;AACA,EAAE,KAAK,GAAG,CAAC,CAAC,KAAK,GAAG,EAAE,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM;AAC5C,EAAE,SAAS,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM;AAC9B,EAAE;AACF;AACA,CAAC,CAAC,CAAC,CAAC,GAAG,cAAc,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;AAChD,CAAC,GAAG,IAAI,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;AACxD,CAAC,OAAO,IAAI,CAAC,CAAC;AACd,EAAE,KAAK,GAAG,CAAC,CAAC,KAAK,KAAK;AACtB,GAAG,GAAG,IAAI,CAAC,OAAO,EAAE;AACpB,IAAI,EAAE,GAAG,UAAU,CAAC,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,CAAC,IAAI,IAAI,GAAG,EAAE,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,WAAW,IAAI,CAAC,UAAU,CAAC,CAAC;AACnG,IAAI,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;AACxB,IAAI,GAAG,SAAS,EAAE,YAAY,CAAC,EAAE,EAAE,MAAM,qBAAqB,kBAAkB,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;AAC3F,SAAS,YAAY,CAAC,EAAE,EAAE,MAAM,oBAAoB,iBAAiB,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;AAChF,IAAI,MAAM;AACV,IAAI,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC;AAChB,IAAI,GAAG,SAAS,EAAE,YAAY,CAAC,EAAE,EAAE,MAAM,mBAAmB,gBAAgB,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;AACvF,SAAS,YAAY,CAAC,EAAE,EAAE,MAAM,kBAAkB,eAAe,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;AAC5E,IAAI;AACJ,GAAG,OAAO,IAAI,CAAC;AACf,EAAE,KAAK,GAAG;AACV;AACA,GAAG,GAAG,IAAI,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI,IAAI,IAAI,CAAC,CAAC,GAAG,IAAI,EAAE;AACjE,IAAI,GAAG,SAAS,EAAE,YAAY,CAAC,EAAE,EAAE,MAAM,mBAAmB,gBAAgB,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;AACvF,SAAS,YAAY,CAAC,EAAE,EAAE,MAAM,kBAAkB,eAAe,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;AAC5E,IAAI,MAAM;AACV,IAAI,GAAG,SAAS,EAAE,YAAY,CAAC,EAAE,EAAE,MAAM,qBAAqB,kBAAkB,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;AAC3F,SAAS,YAAY,CAAC,EAAE,EAAE,MAAM,oBAAoB,iBAAiB,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;AAChF,IAAI,CAAC,OAAO,IAAI,CAAC;AACjB,EAAE,KAAK,GAAG;AACV,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC;AACb,GAAG,GAAG,SAAS,EAAE,YAAY,CAAC,EAAE,EAAE,MAAM,qBAAqB,kBAAkB,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;AAC1F,QAAQ,YAAY,CAAC,EAAE,EAAE,MAAM,oBAAoB,iBAAiB,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;AAC/E,GAAG,OAAO,IAAI,CAAC;AACf,EAAE,KAAK,GAAG;AACV,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC;AACb,GAAG,GAAG,SAAS,EAAE,YAAY,CAAC,EAAE,EAAE,MAAM,sBAAsB,mBAAmB,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;AAC5F,QAAQ,YAAY,CAAC,EAAE,EAAE,MAAM,qBAAqB,kBAAkB,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;AACjF,GAAG,OAAO,IAAI,CAAC;AACf,EAAE;AACF,CAAC,GAAG,SAAS,EAAE,YAAY,CAAC,EAAE,EAAE,MAAM,sBAAsB,mBAAmB,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;AAC1F,MAAM,YAAY,CAAC,EAAE,EAAE,MAAM,qBAAqB,kBAAkB,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;AAC/E,CAAC,OAAO,IAAI,CAAC;AACb,CAAC;AACD;AACA,SAAS,eAAe,CAAC,EAAE,EAAE,EAAE,gBAAgB,GAAG,aAAa,IAAI,qBAAqB;AACxF,CAAC,IAAI,KAAK,GAAG,iBAAiB,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,EAAE,IAAI,qBAAqB,EAAE,CAAC;AAC9F,CAAC,YAAY,CAAC,EAAE,EAAE,MAAM,yBAAyB,CAAC;AAClD,CAAC,IAAI,KAAK,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC;AACjC,CAAC,IAAI,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;AACrB,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,EAAE,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;AACnE,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,GAAG,EAAE,EAAE,CAAC,EAAE;AACvC,EAAE,EAAE,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;AACrB;AACA;AACA,EAAE,gBAAgB,CAAC,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;AACrC,EAAE,IAAI,SAAS,GAAG,KAAK,CAAC;AACxB,EAAE,GAAG,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE;AACjE;AACA,GAAG,GAAG,CAAC,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;AAC/C,GAAG,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;AACtB,GAAG,IAAI,IAAI,GAAG,KAAK,GAAG,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC;AACxD,GAAG,GAAG,CAAC,IAAI,EAAE,EAAE,SAAS,GAAG,KAAK,CAAC,CAAC,SAAS,EAAE;AAC7C;AACA,GAAG,SAAS,GAAG,iBAAiB,CAAC,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,SAAS,CAAC,CAAC;AACtE,GAAG;AACH,EAAE;AACF,CAAC,YAAY,CAAC,EAAE,EAAE,MAAM,uBAAuB,CAAC;AAChD,CAAC;AACD;AACA,SAAS,gBAAgB,CAAC,EAAE,EAAE,EAAE,gBAAgB;AAChD,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC,SAAS,CAAC,EAAE,OAAO;AAClC,CAAC,YAAY,CAAC,EAAE,EAAE,MAAM,2BAA2B,wBAAwB,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;AACnG,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,EAAE,YAAY,CAAC,EAAE,EAAE,MAAM,qBAAqB,kBAAkB,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;AAC5G,CAAC,YAAY,CAAC,EAAE,EAAE,MAAM,wBAAwB,CAAC;AACjD,CAAC;AACD;AACA,SAAS,cAAc,CAAC,EAAE,EAAE,EAAE,qDAAqD;AACnF,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE,OAAO;AAChC,CAAC,YAAY,CAAC,EAAE,EAAE,MAAM,wBAAwB,CAAC;AACjD,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,YAAY,CAAC,EAAE,EAAE,MAAM,qBAAqB,gBAAgB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;AACpH,CAAC,YAAY,CAAC,EAAE,EAAE,MAAM,sBAAsB,CAAC;AAC/C,CAAC;AACD;AACA,SAAS,eAAe,CAAC,EAAE,EAAE,EAAE,gBAAgB;AAC/C,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,OAAO;AAC/B,CAAC,YAAY,CAAC,EAAE,EAAE,MAAM,6BAA6B,CAAC;AACtD,CAAC,YAAY,CAAC,EAAE,EAAE,MAAM,wBAAwB,qBAAqB,CAAC,iBAAiB,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;AACtG,CAAC,YAAY,CAAC,EAAE,EAAE,MAAM,2BAA2B,CAAC;AACpD,CAAC;AACD;AACA,SAAS,YAAY,CAAC,EAAE,EAAE,EAAE,gBAAgB,IAAI,EAAE;AAClD;AACA,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE;AAClC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,OAAO;AAC1B,EAAE,IAAI,GAAG,GAAG,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;AAC5E,EAAE,YAAY,CAAC,EAAE,EAAE,MAAM,iBAAiB,cAAc,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;AAClE,EAAE,CAAC,CAAC;AACJ,CAAC,OAAO,EAAE,CAAC,QAAQ,CAAC,CAAC;AACrB,CAAC;AACD,SAAS,mBAAmB,CAAC,EAAE,EAAE,EAAE,gBAAgB,GAAG,aAAa,IAAI,EAAE;AACzE;AACA,CAAC,GAAG,EAAE,CAAC,WAAW,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE;AAChC,EAAE,IAAI,GAAG,GAAG,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE,wBAAwB,IAAI,GAAG,CAAC,CAAC,CAAC,GAAG,MAAM,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;AACtF,EAAE,YAAY,CAAC,EAAE,EAAE,MAAM,yBAAyB,WAAW,CAAC,KAAK,GAAG,GAAG,CAAC,CAAC,CAAC;AAC5E,EAAE,EAAE,CAAC,SAAS,CAAC,GAAG,GAAG,CAAC;AACtB,EAAE;AACF,CAAC;AACD;AACA,SAAS,gBAAgB,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE;AAC3C,CAAC,GAAG,CAAC,EAAE,CAAC,aAAa,CAAC,EAAE,OAAO;AAC/B,CAAC,IAAI,IAAI,GAAG,EAAE,CAAC,aAAa,CAAC,CAAC;AAC9B,CAAC,IAAI,GAAG,GAAG,OAAO,IAAI,CAAC,GAAG,KAAK,QAAQ,GAAG,IAAI,CAAC,GAAG,GAAG,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC5E;AACA;AACA,CAAC,GAAG,CAAC,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,SAAS,CAAC;AACtD,CAAC,GAAG,CAAC,EAAE,CAAC,QAAQ,CAAC,KAAK,EAAE,EAAE,CAAC,QAAQ,CAAC,KAAK,GAAG,EAAE,CAAC;AAC/C,CAAC,IAAI,KAAK,oBAAoB,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC;AAChD,CAAC,IAAI,KAAK,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC;AAC/B,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,YAAY,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC,EAAE;AACpG,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE;AACvC,EAAE,IAAI,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;AACtB,EAAE,GAAG,IAAI,CAAC,IAAI,IAAI,uBAAuB,EAAE,SAAS;AACpD,EAAE,GAAG,IAAI,CAAC,KAAK,IAAI,GAAG,EAAE,SAAS;AACjC,EAAE,IAAI,CAAC,GAAG,GAAG,wBAAwB,CAAC,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM;AACxF,EAAE;AACF,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,uBAAuB,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,wBAAwB,CAAC,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,GAAG,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AAC5J;AACA,CAAC,YAAY,CAAC,EAAE,EAAE,MAAM,wBAAwB,kBAAkB,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AAC5F;AACA;AACA;AACA,CAAC,YAAY,CAAC,EAAE,EAAE,MAAM,qBAAqB,CAAC;AAC9C,CAAC;AACD;AACA,SAAS,cAAc,CAAC,EAAE,EAAE,EAAE,EAAE,QAAQ,EAAE;AAC1C,CAAC,YAAY,CAAC,EAAE,EAAE,MAAM,uBAAuB,CAAC;AAChD,CAAC;AACD;AACA,EAAE,YAAY,CAAC,EAAE,EAAE,MAAM,uBAAuB,oBAAoB,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC,CAAC;AACpF;AACA;AACA;AACA;AACA,EAAE,YAAY,CAAC,EAAE,EAAE,MAAM,oBAAoB,CAAC;AAC9C,EAAE;AACF;AACA,CAAC,YAAY,CAAC,EAAE,EAAE,MAAM,qBAAqB,CAAC;AAC9C,CAAC;AAMD;AACA,SAAS,kBAAkB,CAAC,EAAE,EAAE,EAAE,EAAE;AACpC,CAAC,GAAG,CAAC,EAAE,CAAC,UAAU,CAAC,EAAE,OAAO;AAC5B;AACA,CAAC,YAAY,CAAC,EAAE,EAAE,MAAM,2BAA2B,wBAAwB,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;AAC7F,CAAC;AACD;AACA,SAAS,YAAY,CAAC,GAAG,aAAa,IAAI,EAAE,EAAE,eAAe,IAAI,EAAE;AACnE,CAAC,IAAI,EAAE,GAAG,SAAS,EAAE,CAAC;AACtB,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;AACrD,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,QAAQ,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,EAAE;AAC3G,CAAC,IAAI,CAAC,GAAG,iBAAiB,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,CAAC;AAC/C,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,MAAM,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,OAAO,EAAE;AACvC,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE,MAAM,IAAI,KAAK,CAAC,QAAQ,IAAI,EAAE,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,GAAG,qCAAqC,CAAC,CAAC;AACxG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;AAClC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;AACnC,EAAE;AACF,CAAC,EAAE,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC;AACnB;AACA,CAAC,EAAE,CAAC,WAAW,CAAC,GAAG,EAAE,CAAC;AACtB,CAAC,YAAY,CAAC,EAAE,EAAE,MAAM,qBAAqB,CAAC;AAC9C,CAAC,GAAG,EAAE,CAAC,MAAM,IAAI,EAAE,CAAC,UAAU,CAAC,EAAE,YAAY,CAAC,EAAE,EAAE,MAAM,kBAAkB,eAAe,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;AAC9G,CAAC,YAAY,CAAC,EAAE,EAAE,MAAM,iBAAiB,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC;AAC5D,CAAC,cAAc,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC;AAErC,CAAC,cAAc,CAAC,EAAE,EAAE,EAAiB,CAAC,CAAC;AACvC,CAAC,eAAe,CAAC,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,IAAQ,CAAC,CAAC;AACxC;AACA,CAAC,kBAAkB,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;AAC5B;AACA;AACA,CAAC,gBAAgB,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC;AACnC;AACA;AACA;AACA,CAAC,gBAAgB,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;AAC1B;AACA;AACA;AACA,CAAC,YAAY,CAAC,EAAE,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC;AAC5B;AACA,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,EAAE,YAAY,CAAC,EAAE,EAAE,MAAM,mBAAmB,gBAAgB,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;AAChG;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,GAAG,CAAC,IAAI,IAAI,IAAI,CAAC,QAAQ,KAAK,IAAI,CAAC,QAAQ,KAAK,KAAK,CAAC,CAAC,CAAC,EAAE,eAAe,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;AACnF;AACA;AACA,CAAC,mBAAmB,CAAC,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,YAAY,CAAC,EAAE,EAAE,MAAM,mBAAmB,CAAC;AAC5C,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,CAAC;AACjB,CAAC;AACD,SAAS,WAAW,CAAC,IAAI,yDAAyD;AAClF,CAAC,IAAI,GAAG,4BAA4B,EAAE,CAAC;AACvC,CAAC,IAAI,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;AACvC,CAAC,IAAI,CAAC,CAAC;AACP;AACA;AACA,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,mCAAmC,CAAC,EAAE,EAAE,EAAE,OAAO,CAAC,SAAS,EAAE,EAAE;AAC5E,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,6CAA6C,CAAC,CAAC;AAClE,EAAE,GAAG,CAAC,CAAC,EAAE,OAAO;AAChB,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AAClC,EAAE,CAAC,CAAC;AACJ;AACA;AACA,CAAC,IAAI,EAAE,GAAG,WAAW,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,0CAA0C,CAAC,IAAI,CAAC,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AACrG;AACA,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,qBAAqB,CAAC,EAAE,EAAE,EAAE,OAAO,CAAC,SAAS,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;AAC9F;AACA,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;AACrB,CAAC;AACD;AACA;AACA,SAAS,WAAW,CAAC,IAAI,cAAc,IAAI,aAAa,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE;AAChF,CAAC,IAAI,EAAE,mBAAmB,MAAM,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC;AAChE,CAAC,GAAG,CAAC,IAAI,EAAE,OAAO,MAAM,CAAC;AACzB;AACA;AACA,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,GAAG,GAAG,GAAG,CAAC;AAC7B,CAAC,IAAI,QAAQ,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;AAC5D;AACA;AACA,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,sCAAsC,CAAC,EAAE,EAAE,EAAE,OAAO,CAAC,SAAS,EAAE,EAAE;AAC/E,EAAE,IAAI,KAAK,GAAG,WAAW,CAAC,EAAE,CAAC,CAAC;AAC9B,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AAClC,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AACnB,EAAE,GAAG,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;AACtB,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE;AACjC,GAAG,GAAG,EAAE,CAAC,OAAO,CAAC,EAAE;AACnB,IAAI,GAAG,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;AAC5C,IAAI,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;AAClD,IAAI,MAAM,EAAE,CAAC,GAAG,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;AAC9D,GAAG,CAAC,GAAG,CAAC,CAAC;AACT,GAAG,CAAC,CAAC;AACL,EAAE,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AACxC,EAAE,EAAE,CAAC,CAAC;AACN,EAAE,CAAC,CAAC;AACJ,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,YAAY,CAAC,QAAQ,CAAC,CAAC;AAC/C,CAAC,OAAO,EAAE,CAAC;AACX,CAAC;AACD;AACA,SAAS,YAAY,CAAC,IAAI,cAAc,IAAI,EAAE,GAAG,aAAa,IAAI,EAAE,EAAE,sCAAsC;AAC5G,CAAC,GAAG,CAAC,IAAI,EAAE,OAAO,IAAI,CAAC;AACvB;AACA,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;AAC7B,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,SAAS,CAAC,IAAI,EAAE,MAAM,CAAC,EAAE,CAAC,SAAS,CAAC;AAChE,CAAC,IAAI,CAAC,CAAC;AACP;AACA;AACA,CAAC,IAAI,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;AACxC,CAAC,GAAG,OAAO,EAAE,oBAAoB,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC;AAC1D;AACA;AACA,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,sBAAsB,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AAC/D;AACA,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;AAClE,CAAC,OAAO,CAAC,CAAC;AACV,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,eAAe,CAAC,IAAI,EAAE,MAAM,aAAa;AAClD,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC;AACd,CAAC,IAAI,IAAI,GAAG,kBAAkB,CAAC,IAAiB,CAAC,CAAC;AAClD,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;AACvB,CAAC;AACD;AACA;AACA,SAAS,YAAY,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,aAAa,IAAI,EAAE,EAAE,sCAAsC;AAChG,CAAC,GAAG,CAAC,IAAI,EAAE,OAAO,IAAI,CAAC;AACvB,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;AAC7B,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO,EAAE,SAAS,CAAC,IAAI,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC;AAEtD,CAAC,IAAI,IAAI,GAAG,KAAK,CAAC;AAClB,CAAC,YAAY,CAAC,IAAI,EAAE,SAAS,QAAQ,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,EAAE;AAClD,EAAE,OAAO,EAAE;AACX;AACA,GAAG,KAAK,MAAM;AACd,IAAI,CAAC,CAAC,MAAM,CAAC,GAAG,GAAG,CAAC,CAAC,MAAM;AAC3B;AACA,GAAG,KAAK,MAAM;AACd,IAAI,GAAG,CAAC,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;AAC5C,IAAI,GAAG,GAAG,CAAC,IAAI,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,QAAQ,GAAG,GAAG,CAAC,IAAI,CAAC;AACpD,IAAI,MAAM;AACV;AACA,GAAG,KAAK,MAAM,CAAC;AACf,GAAG,KAAK,MAAM,CAAC;AACf,GAAG,KAAK,MAAM,CAAC;AACf,GAAG,KAAK,MAAM,CAAC;AACf,GAAG,KAAK,MAAM,CAAC;AACf,GAAG,KAAK,MAAM,CAAC;AACf,GAAG,KAAK,MAAM,CAAC;AACf,GAAG,KAAK,MAAM;AACd,IAAI,MAAM;AACV;AACA,GAAG,KAAK,MAAM;AACd,IAAI,IAAI,GAAG,IAAI,CAAC,CAAC,MAAM;AACvB,GAAG,KAAK,MAAM;AACd,IAAI,IAAI,GAAG,KAAK,CAAC,CAAC,MAAM;AACxB,GAAG,KAAK,MAAM;AACK,CAAC,MAAM;AAC1B,GAAG,KAAK,MAAM;AACE,CAAC,MAAM;AACvB;AACA,GAAG;AACH,IAAI,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAe;AAC/B,SAAS,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAY;AACjC,SAAS,GAAG,CAAC,IAAI,IAAI,IAAI,CAAC,GAAG,EAAE,MAAM,IAAI,KAAK,CAAC,sBAAsB,GAAG,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC;AACzF,GAAG;AACH,EAAE,EAAE,IAAI,CAAC,CAAC;AACV;AACA,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;AAClE,CAAC,OAAO,CAAC,CAAC;AACV,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,UAAU,GAAG;AACjB,CAAC,CAAC,mBAAmB,YAAY,KAAK,EAAE,MAAM,CAAC;AAC/C,CAAC,CAAC,sBAAsB,SAAS,IAAI,GAAG,MAAM,CAAC;AAC/C,CAAC,CAAC,YAAY,mBAAmB,KAAK,EAAE,MAAM,CAAC;AAC/C,CAAC,CAAC,oBAAoB,WAAW,KAAK,EAAE,MAAM,CAAC;AAC/C,CAAC,CAAC,UAAU,qBAAqB,EAAE,CAAC;AACpC,CAAC,CAAC,UAAU,qBAAqB,KAAK,EAAE,MAAM,CAAC;AAC/C,CAAC,CAAC,qBAAqB,UAAU,CAAC,OAAO,KAAK,CAAC;AAC/C,CAAC,CAAC,eAAe,gBAAgB,KAAK,EAAE,MAAM,CAAC;AAC/C,CAAC,CAAC,oBAAoB,WAAW,KAAK,EAAE,MAAM,CAAC;AAC/C,CAAC,CAAC,mBAAmB,YAAY,KAAK,EAAE,MAAM,CAAC;AAC/C,CAAC,CAAC,cAAc,iBAAiB,KAAK,EAAE,MAAM,CAAC;AAC/C,CAAC,CAAC,uBAAuB,QAAQ,KAAK,EAAE,MAAM,CAAC;AAC/C,CAAC,CAAC,wBAAwB,OAAO,IAAI,GAAG,MAAM,CAAC;AAC/C,CAAC,CAAC,4BAA4B,GAAG,IAAI,GAAG,MAAM,CAAC;AAC/C,CAAC,CAAC,mBAAmB,YAAY,IAAI,GAAG,MAAM,CAAC;AAC/C,CAAC,CAAC,aAAa,kBAAkB,KAAK,CAAC;AACvC,CAAC,CAAC,sBAAsB,SAAS,KAAK,EAAE,MAAM,CAAC;AAC/C,CAAC,CAAC,aAAa,EAAE,SAAS,CAAC;AAC3B,CAAC,CAAC;AACF;AACA;AACA,IAAI,SAAS,GAAG;AAChB,CAAC,CAAC,WAAW,oBAAoB,CAAC,OAAO,KAAK,CAAC;AAC/C,CAAC,CAAC,wBAAwB,OAAO,IAAI,GAAG,MAAM,CAAC;AAC/C,CAAC,CAAC,YAAY,mBAAmB,CAAC,OAAO,KAAK,CAAC;AAC/C,CAAC,CAAC,WAAW,oBAAoB,KAAK,EAAE,MAAM,CAAC;AAC/C,CAAC,CAAC,sBAAsB,SAAS,IAAI,GAAG,MAAM,CAAC;AAC/C,CAAC,CAAC,eAAe,gBAAgB,IAAI,GAAG,MAAM,CAAC;AAC/C,CAAC,CAAC,oBAAoB,WAAW,IAAI,GAAG,MAAM,CAAC;AAC/C,CAAC,CAAC,UAAU,qBAAqB,GAAG,KAAK,KAAK,CAAC;AAC/C,CAAC,CAAC,YAAY,mBAAmB,SAAS,CAAC;AAC3C;AACA,CAAC,CAAC;AACF;AACA;AACA,IAAI,QAAQ,GAAG;AACf;AACA,CAAC,CAAC;AACF;AACA;AACA,IAAI,SAAS,GAAG;AAChB,CAAC,CAAC,eAAe,EAAE,MAAM,CAAC;AAC1B,CAAC,CAAC,UAAU,EAAE,MAAM,CAAC;AACrB,CAAC,CAAC,YAAY,EAAE,MAAM,CAAC;AACvB,CAAC,CAAC,gBAAgB,EAAE,MAAM,CAAC;AAC3B,CAAC,CAAC,gBAAgB,EAAE,OAAO,CAAC;AAC5B,CAAC,CAAC,eAAe,EAAE,MAAM,CAAC;AAC1B,CAAC,CAAC,SAAS,EAAE,OAAO,CAAC;AACrB,CAAC,CAAC,cAAc,EAAE,KAAK,CAAC;AACxB,CAAC,CAAC,cAAc,EAAE,OAAO,CAAC;AAC1B,CAAC,CAAC,SAAS,EAAE,IAAI,CAAC;AAClB,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,mBAAmB,CAAC,MAAM,EAAE,QAAQ,EAAE;AAC/C,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,MAAM,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;AAC7D,EAAE,IAAI,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,QAAQ,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;AAChE,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AACtC,QAAQ,OAAO,CAAC,CAAC,CAAC,CAAC;AACnB,GAAG,KAAK,MAAM,EAAE,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM;AACtF,GAAG,KAAK,KAAK,EAAE,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM;AACrF,IAAI;AACJ,GAAG;AACH,EAAE;AACF,CAAC;AACD,SAAS,aAAa,CAAC,MAAM,EAAE,QAAQ,EAAE;AACzC,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,QAAQ,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;AACjE,EAAE,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AAC/C,OAAO,OAAO,CAAC,CAAC,CAAC,CAAC;AAClB,GAAG,KAAK,MAAM,EAAE,GAAG,OAAO,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM;AACrG,GAAG,KAAK,KAAK,EAAE,GAAG,OAAO,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM;AACpG,GAAG;AACH,EAAE;AACF,CAAC;AACD;AACA,SAAS,iBAAiB,CAAC,EAAE,EAAE;AAC/B,CAAC,aAAa,CAAC,EAAE,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;AACvC,CAAC,aAAa,CAAC,EAAE,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;AACrC;AACA,CAAC,mBAAmB,CAAC,EAAE,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;AAC3C,CAAC,mBAAmB,CAAC,EAAE,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;AAC1C;AACA,CAAC,QAAQ,CAAC,QAAQ,GAAG,YAAY,CAAC,EAAE,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;AACvD,CAAC;AACD;AACA,SAAS,QAAQ,CAAC,EAAE,0BAA0B;AAC9C;AACA,CAAC,GAAG,CAAC,EAAE,CAAC,QAAQ,EAAE,OAAO,OAAO,CAAC;AACjC,CAAC,GAAG,CAAC,EAAE,CAAC,QAAQ,CAAC,OAAO,EAAE,OAAO,OAAO,CAAC;AACzC,CAAC,OAAO,YAAY,CAAC,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,MAAM,GAAG,OAAO,CAAC;AACtE,CAAC;AACD;AACA,IAAI,QAAQ,gBAAgB,WAAW,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;AAClD,SAAS,aAAa,CAAC,CAAC,aAAa,IAAI,2BAA2B;AACpE,CAAC,IAAI;AACL,EAAE,GAAG,CAAC,IAAI,EAAE,EAAE,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAC;AAC5D,EAAE,GAAG,CAAC,CAAC,MAAM,GAAG,EAAE,EAAE,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAC;AACzE,EAAE,GAAG,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,IAAI,IAAI,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,IAAI,EAAE,MAAM,IAAI,KAAK,CAAC,oDAAoD,CAAC,CAAC;AAC1I,EAAE,GAAG,CAAC,CAAC,WAAW,EAAE,IAAI,SAAS,EAAE,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC;AACrF,EAAE,QAAQ,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE;AAC/B,GAAG,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,OAAO;AACjC,GAAG,MAAM,IAAI,KAAK,CAAC,0CAA0C,CAAC,CAAC;AAC/D,GAAG,CAAC,CAAC;AACL,EAAE,CAAC,MAAM,CAAC,EAAE,EAAE,GAAG,IAAI,EAAE,OAAO,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE;AAC/C,CAAC,OAAO,IAAI,CAAC;AACb,CAAC;AACD,SAAS,cAAc,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE;AACrC,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE;AACzB,EAAE,aAAa,CAAC,CAAC,CAAC,CAAC;AACnB,EAAE,IAAI,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,IAAI,KAAK,CAAC,wBAAwB,GAAG,CAAC,CAAC,CAAC;AACzF,EAAE,GAAG,KAAK,EAAE;AACZ,GAAG,IAAI,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,KAAK,CAAC,CAAC;AAC9C,GAAG,GAAG,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,MAAM,GAAG,EAAE,EAAE,MAAM,IAAI,KAAK,CAAC,0BAA0B,GAAG,EAAE,CAAC,CAAC;AACjG,GAAG;AACH,EAAE,CAAC,CAAC;AACJ,CAAC;AACD,SAAS,QAAQ,CAAC,EAAE,EAAE;AACtB,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC,UAAU,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAC;AAC7E,CAAC,GAAG,CAAC,EAAE,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC;AAChE,CAAC,IAAI,MAAM,GAAG,CAAC,EAAE,CAAC,QAAQ,IAAI,EAAE,CAAC,QAAQ,CAAC,MAAM,KAAK,EAAE,CAAC;AACxD,CAAC,cAAc,CAAC,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC;AACpD,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE,QAAQ,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAC1G,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC,EAAE;AACtC,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;AACxB,EAAE,GAAG,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,EAAE,OAAO;AACvC,EAAE,IAAI,EAAE,CAAC;AACT,EAAE,GAAG,CAAC,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,GAAG,EAAE,CAAC;AACpC,EAAE,GAAG,CAAC,EAAE,CAAC,QAAQ,CAAC,KAAK,EAAE,EAAE,CAAC,QAAQ,CAAC,KAAK,GAAG,EAAE,CAAC;AAChD,EAAE,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,IAAI,IAAI,uBAAuB,IAAI,EAAE,CAAC,KAAK,IAAI,CAAC,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;AAC/G,EAAE,IAAI,EAAE,GAAG,wBAAwB,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,SAAS,CAAC,EAAE,CAAC,aAAa,CAAC,CAAC,GAAG,CAAC,CAAC;AAChF,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC;AACrB,OAAO,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,uBAAuB,EAAE,KAAK,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC;AAClF,EAAE,CAAC,CAAC;AACJ;AACA,CAAC;AACD;AACA,IAAI,SAAS,GAAG,eAAe,CAAC;AAChC,SAAS,YAAY,CAAC,IAAI,EAAE,IAAI,mBAAmB;AACnD,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAC;AAClD,CAAC,IAAI,EAAE,UAAU,EAAE,UAAU,CAAC,EAAE,EAAE,OAAO,CAAC,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE,KAAK,CAAC,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,QAAQ;AAC5G,CAAC,IAAI,IAAI,GAAG,KAAK,EAAE,KAAK,GAAG,OAAO,CAAC;AACnC,CAAC,IAAI,KAAK,GAAG,EAAE,EAAE,OAAO,GAAG,CAAC,CAAC;AAC7B,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,SAAS,MAAM,CAAC,CAAC,EAAE,GAAG,EAAE;AAChD,EAAE,IAAI,CAAC,WAAW,WAAW,CAAC,CAAC,CAAC,CAAC;AACjC,EAAE,OAAO,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACvB,GAAG,KAAK,OAAO,EAAE,MAAM;AACvB;AACA;AACA,GAAG,KAAK,WAAW;AACnB,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,KAAK,GAAG,OAAO,GAAG,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;AACnE,IAAI,EAAE,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC;AACxB,IAAI,MAAM;AACV,GAAG,KAAK,aAAa,EAAE,MAAM;AAC7B;AACA;AACA,GAAG,KAAK,cAAc,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC,MAAM;AAC9D,GAAG,KAAK,gBAAgB,CAAC,CAAC,KAAK,gBAAgB,EAAE,MAAM;AACvD;AACA;AACA,GAAG,KAAK,cAAc;AACtB,IAAI,MAAM;AACV,GAAG,KAAK,gBAAgB,EAAE,MAAM;AAChC;AACA;AACA,GAAG,KAAK,aAAa,CAAC;AACtB,GAAG,KAAK,eAAe;AACvB,IAAI,UAAU,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE;AACnC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE,OAAO;AAChC,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC;AAChB,MAAM,KAAK,MAAM,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM;AACnE,MAAM,KAAK,KAAK,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM;AAClE,MAAM,SAAS,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC1C,MAAM;AACN,KAAK,CAAC,CAAC;AACP,IAAI,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,OAAO,CAAC,QAAQ,GAAG,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;AAC9D,IAAI,MAAM;AACV,GAAG,KAAK,eAAe,EAAE,MAAM;AAC/B;AACA;AACA,GAAG,KAAK,qBAAqB;AAC7B,IAAI,MAAM;AACV,GAAG,KAAK,uBAAuB,EAAE,MAAM;AACvC;AACA;AACA,GAAG,KAAK,YAAY,CAAC,CAAC,KAAK,aAAa,CAAC,CAAC,KAAK,cAAc,EAAE,MAAM;AACrE;AACA,GAAG,KAAK,eAAe,CAAC,CAAC,KAAK,iBAAiB,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM;AACvF,GAAG,KAAK,iBAAiB,EAAE,MAAM;AACjC;AACA;AACA,GAAG,KAAK,SAAS,CAAC,CAAC,KAAK,UAAU,CAAC,CAAC,KAAK,WAAW,EAAE,MAAM;AAC5D;AACA,GAAG,KAAK,QAAQ;AAChB,IAAI,OAAO,CAAC,CAAC,KAAK;AAClB,KAAK,KAAK,QAAQ,EAAE,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,MAAM;AACxC,KAAK,KAAK,YAAY,EAAE,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,MAAM;AAC5C,KAAK,SAAS,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;AAC3B,KAAK;AACL,IAAI,OAAO,CAAC,CAAC,KAAK,CAAC;AACnB,IAAI,CAAC,CAAC,IAAI,GAAG,WAAW,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;AAC3C,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM;AAC1C,GAAG,KAAK,UAAU,EAAE,MAAM;AAC1B;AACA;AACA,GAAG,KAAK,iBAAiB,CAAC,CAAC,KAAK,mBAAmB,EAAE,MAAM;AAC3D;AACA,GAAG,KAAK,gBAAgB,EAAE,MAAM;AAChC;AACA;AACA,GAAG,KAAK,qBAAqB,CAAC,CAAC,KAAK,uBAAuB,CAAC,CAAC,KAAK,sBAAsB,EAAE,MAAM;AAChG;AACA,GAAG,KAAK,oBAAoB,EAAE,MAAM;AACpC;AACA;AACA,GAAG,KAAK,iBAAiB,EAAE,MAAM;AACjC,GAAG,KAAK,gBAAgB,CAAC,CAAC,KAAK,eAAe,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM;AACjE,GAAG,KAAK,iBAAiB,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM;AAC7C;AACA,GAAG,KAAK,cAAc,EAAE;AACxB,IAAI,KAAK,GAAG,EAAE,CAAC;AACf,IAAI,KAAK,CAAC,IAAI,GAAG,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;AAClC,IAAI,GAAG,CAAC,CAAC,OAAO,EAAE,KAAK,CAAC,OAAO,GAAG,CAAC,CAAC,OAAO,CAAC;AAC5C,IAAI,GAAG,CAAC,CAAC,YAAY,EAAE,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,YAAY,CAAC;AACrD,IAAI,GAAG,YAAY,CAAC,CAAC,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC;AACxD,IAAI,OAAO,GAAG,GAAG,GAAG,CAAC,CAAC,MAAM,CAAC;AAC7B,IAAI,CAAC,MAAM;AACX,GAAG,KAAK,gBAAgB,EAAE;AAC1B,IAAI,KAAK,CAAC,GAAG,GAAG,WAAW,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;AAChE,IAAI,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACzB,IAAI,CAAC,MAAM;AACX,GAAG,KAAK,gBAAgB,EAAE,MAAM;AAChC;AACA;AACA,GAAG,KAAK,SAAS,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,MAAM;AACrD,GAAG,KAAK,WAAW,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,MAAM;AACvD,GAAG,KAAK,WAAW,EAAE,MAAM;AAC3B;AACA;AACA,GAAG,KAAK,UAAU,EAAE,MAAM;AAC1B;AACA;AACA,GAAG,KAAK,uBAAuB,CAAC,CAAC,KAAK,wBAAwB,CAAC,CAAC,KAAK,sBAAsB,EAAE,MAAM;AACnG;AACA,GAAG,KAAK,qBAAqB,CAAC,CAAC,KAAK,uBAAuB,EAAE,MAAM;AACnE;AACA;AACA,GAAG,KAAK,eAAe,CAAC,CAAC,KAAK,gBAAgB,CAAC,CAAC,KAAK,cAAc,EAAE,MAAM;AAC3E;AACA,GAAG,KAAK,aAAa,EAAE,MAAM;AAC7B;AACA;AACA,GAAG,KAAK,aAAa,CAAC,CAAC,KAAK,eAAe,EAAE,MAAM;AACnD;AACA;AACA,GAAG,KAAK,gBAAgB,CAAC,CAAC,KAAK,iBAAiB,CAAC,CAAC,KAAK,kBAAkB,EAAE,MAAM;AACjF;AACA,GAAG,KAAK,eAAe,EAAE,MAAM;AAC/B;AACA;AACA,GAAG,KAAK,gBAAgB,CAAC,CAAC,KAAK,kBAAkB,EAAE,MAAM;AACzD;AACA;AACA,GAAG,KAAK,iBAAiB,CAAC,CAAC,KAAK,mBAAmB,EAAE,MAAM;AAC3D;AACA;AACA,GAAG,KAAK,qBAAqB,CAAC,CAAC,KAAK,oBAAoB,CAAC,CAAC,KAAK,sBAAsB,EAAE,MAAM;AAC7F;AACA,GAAG,KAAK,mBAAmB,EAAE,MAAM;AACnC;AACA;AACA,GAAG,KAAK,SAAS,CAAC,CAAC,KAAK,UAAU,CAAC,CAAC,KAAK,WAAW,CAAC,CAAC,KAAK,WAAW,EAAE,MAAM;AAC9E;AACA,GAAG,KAAK,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM;AACjC,GAAG,KAAK,QAAQ,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM;AACpC;AACA;AACA,GAAG,KAAK,SAAS,EAAE,MAAM;AACzB,GAAG,KAAK,mBAAmB,CAAC;AAC5B,GAAG,KAAK,oBAAoB,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM;AAC/C,GAAG,KAAK,qBAAqB,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM;AACjD;AACA;AACA,GAAG,KAAK,cAAc,EAAE,MAAM;AAC9B;AACA,GAAG,SAAS,GAAG,CAAC,IAAI,IAAI,IAAI,CAAC,GAAG,EAAE,MAAM,IAAI,KAAK,CAAC,eAAe,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,cAAc,CAAC,CAAC;AAC3F,GAAG;AACH,EAAE,OAAO,CAAC,CAAC;AACX,EAAE,CAAC,CAAC;AACJ,CAAC,GAAG,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,MAAM,IAAI,KAAK,CAAC,qBAAqB,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC;AAC3F;AACA,CAAC,iBAAiB,CAAC,EAAE,CAAC,CAAC;AACvB;AACA,CAAC,OAAO,EAAE,CAAC;AACX,CAAC;AACD;AACA,SAAS,YAAY,CAAC,EAAE,iDAAiD;AACzE,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;AACtB,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,SAAS,CAAC,UAAU,EAAE,IAAI,EAAE;AAC3C,EAAE,OAAO,EAAE,UAAU,CAAC,CAAC,CAAC;AACxB;AACA;AACA,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC;AACpB,EAAE,CAAC,CAAC;AACJ;AACA,CAAC,IAAI,WAAW,IAAI,EAAE,CAAC,QAAQ,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,KAAK,EAAE,EAAE,EAAE,MAAM,GAAG,CAAC,CAAC,CAAC;AACvE;AACA;AACA;AACA;AACA,CAAC,IAAI,UAAU,YAAY,CAAC,QAAQ,CAAC,cAAc,CAAC,SAAS,CAAC;AAC9D,CAAC,GAAG,EAAE,CAAC,QAAQ,IAAI,EAAE,CAAC,QAAQ,CAAC,OAAO,EAAE;AACxC,EAAE,UAAU,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE;AACjC;AACA,GAAG,GAAG,CAAC,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,aAAa,IAAI,EAAE,OAAO;AAC1D,GAAG,GAAG,CAAC,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,EAAE,OAAO;AAC1D,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;AAC1D,GAAG,CAAC,CAAC;AACL;AACA,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,UAAU,CAAC,QAAQ,GAAG,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,OAAO,UAAU,CAAC,QAAQ,CAAC,EAAE;AACtH,EAAE;AACF,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,SAAS,CAAC,YAAY,EAAE,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC;AAC3D;AACA;AACA;AACA,CAAC,IAAI,MAAM,GAAG,EAAE,CAAC,QAAQ,IAAI,EAAE,CAAC,QAAQ,CAAC,MAAM,IAAI,EAAE,CAAC;AACtD,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACX;AACA;AACA,CAAC,GAAG,MAAM,IAAI,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE;AAC/C,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,aAAa,CAAC;AAC9B,EAAE,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,UAAU,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE;AAC7C,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM;AACxB,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,MAAM;AAC/B,GAAG;AACH,EAAE,GAAG,CAAC,IAAI,EAAE,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC;AACtC,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,4BAA4B,GAAG,CAAC,GAAG,eAAe,GAAG,CAAC,GAAG,KAAK,CAAC;AAC/E,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,cAAc,CAAC;AAC/B,EAAE;AACF;AACA,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,UAAU,CAAC;AAC1B,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,UAAU,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE;AAC5C,EAAE,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;AACrE,EAAE,GAAG,CAAC,OAAO,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;AACzB,EAAE,GAAG,CAAC,MAAM,CAAC,GAAG,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;AAC5B,EAAE,GAAG,MAAM,CAAC,CAAC,CAAC,EAAE,OAAO,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM;AACvC,GAAG,KAAK,CAAC,EAAE,GAAG,CAAC,KAAK,GAAG,QAAQ,CAAC,CAAC,MAAM;AACvC,GAAG,KAAK,CAAC,EAAE,GAAG,CAAC,KAAK,GAAG,YAAY,CAAC,CAAC,MAAM;AAC3C,GAAG;AACH,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AAC9C,EAAE;AACF,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,WAAW,CAAC;AAC3B;AACA;AACA;AACA;AACA,CAAC,GAAG,WAAW,EAAE;AACjB,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,gBAAgB,CAAC;AACjC,EAAE,GAAG,EAAE,CAAC,QAAQ,IAAI,EAAE,CAAC,QAAQ,CAAC,KAAK,EAAE,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE;AAC7E,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;AACjC,GAAG,GAAG,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC,OAAO,CAAC;AACvC,GAAG,GAAG,CAAC,CAAC,KAAK,IAAI,IAAI,EAAE,CAAC,CAAC,YAAY,GAAG,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC;AACnD,GAAG,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,MAAM,GAAG,GAAG,CAAC;AAC/B,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,OAAO;AACrB,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,SAAS,CAAC,aAAa,EAAE,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;AAC/D,GAAG,CAAC,CAAC;AACL,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,iBAAiB,CAAC;AAClC,EAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE;AAC5E,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AACnB,CAAC;AACD;AACA,SAAS,iBAAiB,CAAC,IAAI,EAAE,MAAM,aAAa;AACpD,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;AACZ,CAAC,CAAC,CAAC,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;AAC/B,CAAC,CAAC,CAAC,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;AAC/B,CAAC,CAAC,CAAC,QAAQ,GAAG,WAAW,CAAC,IAAa,CAAC,CAAC;AACzC,CAAC,CAAC,CAAC,IAAI,GAAG,kBAAkB,CAAC,IAAI,CAAC,CAAC;AACnC,CAAC,OAAO,CAAC,CAAC;AACV,CAAC;AACD,SAAS,iBAAiB,CAAC,IAAI,EAAE,CAAC,EAAE;AACpC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;AACzB,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;AAC/B,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;AAC/B,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;AAC/B,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AAC9C,CAAC,OAAO,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AAC7C,CAAC;AACD;AACA;AACA,SAAS,eAAe,CAAC,IAAI,EAAE,MAAM,cAAc;AACnD,CAAC,IAAI,CAAC,gBAAgB,EAAE,SAAS,CAAC;AAClC,CAAC,IAAI,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;AAChC,CAAC,CAAC,CAAC,mBAAmB,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;AAC5C,CAAC,IAAI,OAAO,GAAG,CAAC,MAAM,GAAG,CAAC,IAAI,kBAAkB,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;AAC5D,CAAC,GAAG,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,CAAC,QAAQ,GAAG,OAAO,CAAC;AAC7C,CAAC,CAAC,CAAC,oBAAoB,GAAG,CAAC,EAAE,KAAK,GAAG,OAAO,CAAC,CAAC;AAC9C,CAAC,CAAC,CAAC,UAAU,GAAG,CAAC,EAAE,KAAK,GAAG,IAAI,CAAC,CAAC;AACjC,CAAC,CAAC,CAAC,kBAAkB,GAAG,CAAC,EAAE,KAAK,GAAG,MAAM,CAAC,CAAC;AAC3C,CAAC,CAAC,CAAC,QAAQ,GAAG,CAAC,EAAE,KAAK,GAAG,IAAI,CAAC,CAAC;AAC/B,CAAC,CAAC,CAAC,aAAa,GAAG,CAAC,EAAE,KAAK,GAAG,IAAI,CAAC,CAAC;AACpC,CAAC,CAAC,CAAC,kBAAkB,GAAG,CAAC,EAAE,KAAK,GAAG,KAAK,CAAC,CAAC;AAC1C,CAAC,CAAC,CAAC,iBAAiB,GAAG,CAAC,EAAE,KAAK,GAAG,IAAI,CAAC,CAAC;AACxC,CAAC,CAAC,CAAC,YAAY,GAAG,CAAC,EAAE,KAAK,GAAG,KAAK,CAAC,CAAC;AACpC,CAAC,CAAC,CAAC,qBAAqB,GAAG,CAAC,EAAE,KAAK,GAAG,OAAO,CAAC,CAAC;AAC/C,CAAC,CAAC,CAAC,sBAAsB,GAAG,CAAC,EAAE,KAAK,GAAG,IAAI,CAAC,CAAC;AAC7C,CAAC,CAAC,CAAC,0BAA0B,GAAG,CAAC,EAAE,KAAK,GAAG,IAAI,CAAC,CAAC;AACjD,CAAC,CAAC,CAAC,iBAAiB,GAAG,CAAC,EAAE,KAAK,GAAG,IAAI,CAAC,CAAC;AACxC,CAAC,CAAC,CAAC,WAAW,GAAG,CAAC,KAAK,EAAE,cAAc,EAAE,MAAM,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE,IAAI,IAAI,CAAC,CAAC;AACvE,CAAC,CAAC,CAAC,oBAAoB,GAAG,CAAC,EAAE,KAAK,GAAG,MAAM,CAAC,CAAC;AAC7C,CAAC,CAAC,CAAC,WAAW,GAAG,CAAC,SAAS,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,IAAI,IAAI,CAAC,CAAC;AACrE,CAAC,OAAO,CAAC,CAAC;AACV,CAAC;AACD,SAAS,eAAe,CAAC,IAAI,eAAe,CAAC,EAAE;AAC/C,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,EAAE,CAAC,CAAC;AACxB,CAAC,IAAI,KAAK,GAAG,CAAC,CAAC;AACf,CAAC,GAAG,IAAI,EAAE;AACV;AACA,EAAE,GAAG,IAAI,CAAC,QAAQ,EAAE,KAAK,IAAI,IAAI,CAAC;AAClC,EAAE,GAAG,IAAI,CAAC,aAAa,EAAE,KAAK,IAAI,IAAI,CAAC;AACvC,EAAE;AACF,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;AACzB,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AACrB,CAAC,kBAAkB,CAAC,IAAI,IAAI,IAAI,CAAC,QAAQ,IAAI,cAAc,EAAE,CAAC,CAAC,CAAC;AAChE,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;AACxB,CAAC;AACD;AACA,SAAS,mBAAmB,CAAC,IAAI,EAAE,MAAM,EAAE;AAC3C,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;AACZ,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;AACpB,CAAC,CAAC,CAAC,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;AAC/B,CAAC,IAAI,CAAC,CAAC,IAAI,MAAM,GAAG,CAAC,CAAC;AACtB,CAAC,OAAO,CAAC,CAAC;AACV,CAAC;AACD;AACA;AACA,SAAS,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE;AAC3C,CAAC,IAAI,GAAG,GAAG,IAAI,CAAC,CAAC,GAAG,MAAM,CAAC;AAC3B,CAAC,IAAI,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;AAChC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC;AACb,CAAC,IAAI,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;AAC/B,CAAC,IAAI,IAAI,GAAG,sBAAsB,CAAC,IAAI,CAAC,CAAC;AACzC,CAAC,IAAI,OAAO,GAAG,2BAA2B,CAAC,IAAI,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC;AAC1D,CAAC,IAAI,OAAO,GAAG,0BAA0B,CAAC,IAAI,CAAC,CAAC;AAChD,CAAC,GAAG,KAAK,GAAG,IAAI,EAAE,IAAI,GAAG,QAAQ,GAAG,IAAI,CAAC;AACzC;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,IAAI,CAAC,CAAC,GAAG,GAAG,CAAC;AACd,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,OAAO,EAAE,KAAK,EAAE,KAAK,CAAC,SAAS,CAAC;AAC5D,CAAC,GAAG,IAAI,GAAG,SAAS,EAAE,GAAG,CAAC,KAAK,GAAG,IAAI,CAAC;AACvC,CAAC,GAAG,OAAO,EAAE,GAAG,CAAC,OAAO,GAAG,OAAO,CAAC;AACnC,CAAC,OAAO,GAAG,CAAC;AACZ,CAAC;AACD,SAAS,aAAa,CAAC,IAAI,EAAE,EAAE,EAAE;AACjC,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;AACpB,CAAC,IAAI,KAAK,GAAG,CAAC,CAAC;AACf,CAAC,IAAI,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC;AACvB,CAAC,GAAG,aAAa,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,KAAK,IAAI,IAAI,CAAC,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE;AACjF,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;AACzB,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AACrB,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,IAAI,IAAI,GAAG,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC;AAChE;AACA,CAAC,IAAI,GAAG,GAAG;AACX,EAAE,CAAC;AACH,EAAE,kBAAkB,CAAC,KAAK,CAAC;AAC3B,EAAE,2BAA2B,CAAC,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC;AAC3C,EAAE,CAAC;AACH,CAAC,GAAG,IAAI,CAAC,OAAO,EAAE,GAAG,CAAC,IAAI,CAAC,0BAA0B,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;AACrE,MAAM;AACN,EAAE,IAAI,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;AACrB,EAAE,CAAC,CAAC,WAAW,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC;AAC/B,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACd,EAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC;AACrB,CAAC;AACD;AACA;AACA,SAAS,YAAY,CAAC,IAAI,EAAE,IAAI,mBAAmB;AACnD,CAAC,IAAI,EAAE,GAAG,EAAE,UAAU,CAAC,EAAE,EAAE,OAAO,CAAC,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC;AACpF,CAAC,IAAI,KAAK,qBAAqB,EAAE,CAAC;AAClC,CAAC,IAAI,IAAI,GAAG,KAAK,CAAC;AAClB;AACA,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,GAAG,EAAE,CAAC;AACrB,CAAC,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC;AAChB;AACA,CAAC,IAAI,KAAK,GAAG,EAAE,CAAC;AAChB,CAAC,IAAI,QAAQ,IAAI,CAAC,EAAE,CAAC,SAAS,CAAC;AAC/B,CAAC,QAAQ,CAAC,UAAU,GAAG,EAAE,CAAC;AAC1B,CAAC,QAAQ,CAAC,GAAG,GAAG,EAAE,CAAC;AACnB;AACA,CAAC,cAAc,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,eAAe,EAAE,CAAC,CAAC,mBAAmB,EAAE,CAAC;AACvE;AACA,CAAC,YAAY,CAAC,IAAI,EAAE,SAAS,SAAS,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,EAAE;AACnD,EAAE,OAAO,EAAE;AACX,GAAG,KAAK,MAAM;AACd,IAAI,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AACvC,IAAI,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM;AAC/B;AACA,GAAG,KAAK,MAAM;AACd,IAAI,EAAE,CAAC,OAAO,GAAG,GAAG,CAAC,CAAC,MAAM;AAC5B;AACA,GAAG,KAAK,MAAM;AACd,IAAI,GAAG,GAAG,CAAC,KAAK,IAAI,IAAI,EAAE,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC,KAAK,CAAC;AAC/C,IAAI,GAAG,CAAC,GAAG,GAAG,iBAAiB,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC;AACrE,IAAI,OAAO,IAAI,CAAC,GAAG,CAAC;AACpB,IAAI,OAAO,GAAG,CAAC,GAAG,CAAC;AACnB,IAAI,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACpB,IAAI,MAAM;AACV,GAAG,KAAK,MAAM,qBAAqB,MAAM;AACzC;AACA,GAAG,KAAK,MAAM,CAAC;AACf,GAAG,KAAK,MAAM,CAAC;AACf,GAAG,KAAK,MAAM,CAAC;AACf,GAAG,KAAK,MAAM;AACd,IAAI,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;AACpD,SAAS,QAAQ,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,CAAC;AAClC,IAAI,QAAQ,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,EAAE,CAAC;AAC3C,IAAI,MAAM;AACV,GAAG,KAAK,MAAM;AACd,IAAI,GAAG,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE;AACzE,IAAI,QAAQ,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,QAAQ,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;AACtF,IAAI,QAAQ,CAAC,GAAG,GAAG,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;AAC5C,IAAI,MAAM;AACV,GAAG,KAAK,MAAM;AACd,IAAI,MAAM;AACV;AACA,GAAG,KAAK,MAAM,CAAC;AACf,GAAG,KAAK,MAAM,CAAC;AACf,GAAG,KAAK,MAAM,CAAC;AACf,GAAG,KAAK,MAAM,CAAC;AACf,GAAG,KAAK,MAAM;AACd,IAAI,MAAM;AACV;AACA;AACA,GAAG,KAAK,MAAM,CAAC;AACf,GAAG,KAAK,MAAM,CAAC;AACf,GAAG,KAAK,MAAM,CAAC;AACf,GAAG,KAAK,MAAM,CAAC;AACf,GAAG,KAAK,MAAM,CAAC;AACf,GAAG,KAAK,MAAM,CAAC;AACf,GAAG,KAAK,MAAM,CAAC;AACf,GAAG,KAAK,MAAM,CAAC;AACf,GAAG,KAAK,MAAM,CAAC;AACf,GAAG,KAAK,MAAM,CAAC;AACf,GAAG,KAAK,MAAM,CAAC;AACf,GAAG,KAAK,MAAM,CAAC;AACf,GAAG,KAAK,MAAM,CAAC;AACf,GAAG,KAAK,MAAM,CAAC;AACf,GAAG,KAAK,MAAM,CAAC;AACf,GAAG,KAAK,MAAM,CAAC;AACf,GAAG,KAAK,MAAM,CAAC;AACf,GAAG,KAAK,MAAM,CAAC;AACf,GAAG,KAAK,MAAM,CAAC;AACf,GAAG,KAAK,MAAM,CAAC;AACf,GAAG,KAAK,MAAM,CAAC;AACf,GAAG,KAAK,MAAM,CAAC;AACf,GAAG,KAAK,MAAM,CAAC;AACf,GAAG,KAAK,MAAM,CAAC;AACf,GAAG,KAAK,MAAM;AACd,IAAI,MAAM;AACV;AACA,GAAG,KAAK,MAAM;AACd,IAAI,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC,MAAM;AACvC,GAAG,KAAK,MAAM;AACd,IAAI,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,IAAI,GAAG,KAAK,CAAC,CAAC,MAAM;AACrC,GAAG,KAAK,MAAM;AACd,IAAI,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC,MAAM;AACvC,GAAG,KAAK,MAAM;AACd,IAAI,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,IAAI,GAAG,KAAK,CAAC,CAAC,MAAM;AACrC;AACA,GAAG,KAAK,MAAM,wBAAwB,MAAM;AAC5C;AACA,GAAG;AACH,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,CAAa;AACxB,SAAS,GAAG,CAAC,IAAI,KAAK,IAAI,CAAC,GAAG,IAAI,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,MAAM,qBAAqB,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,MAAM,mBAAmB,EAAE,MAAM,IAAI,KAAK,CAAC,sBAAsB,GAAG,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC;AACpM,GAAG;AACH,EAAE,EAAE,IAAI,CAAC,CAAC;AACV;AACA,CAAC,iBAAiB,CAAC,EAAE,CAAC,CAAC;AACvB;AACA;AACA,CAAC,EAAE,CAAC,KAAK,GAAG,KAAK,CAAC;AAClB;AACA,CAAC,CAAC,EAAE,UAAU,QAAQ,GAAG,QAAQ,CAAC;AAClC,CAAC,OAAO,EAAE,CAAC;AACX,CAAC;AACD;AACA,SAAS,eAAe,CAAC,EAAE,EAAE,EAAE,cAAc;AAC7C,CAAC,YAAY,CAAC,EAAE,EAAE,MAAM,yBAAyB,CAAC;AAClD,CAAC,IAAI,IAAI,GAAG,GAAG,CAAC,EAAE,GAAG,IAAI,EAAE,CAAC,UAAU,CAAC,MAAM,EAAE,EAAE,GAAG,EAAE;AACtD,EAAE,IAAI,GAAG,GAAG,EAAE,CAAC,QAAQ,IAAI,EAAE,CAAC,QAAQ,CAAC,MAAM,IAAI,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC;AAChH,EAAE,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,CAAC,CAAC,EAAE,QAAQ,EAAE,KAAK,IAAI,GAAG,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;AAC9F,EAAE,YAAY,CAAC,EAAE,EAAE,MAAM,oBAAoB,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC;AACnE,EAAE;AACF,CAAC,YAAY,CAAC,EAAE,EAAE,MAAM,uBAAuB,CAAC;AAChD,CAAC;AACD;AACA;AACA,SAAS,oBAAoB,CAAC,IAAI,EAAE,CAAC,EAAE;AACvC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;AACzB,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AACjD,CAAC,kBAAkB,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;AAClC,CAAC,kBAAkB,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;AACrC,CAAC,kBAAkB,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;AACrC,CAAC,kBAAkB,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;AAC/B,CAAC,OAAO,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AAC7C,CAAC;AACD;AACA;AACA,SAAS,iBAAiB,CAAC,GAAG,EAAE,CAAC,EAAE;AACnC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,EAAE,CAAC,CAAC;AACxB,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AACtB,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;AACxB,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC;AAC1B,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC;AAC1B,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC;AACxB,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC;AACxB,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC;AACxB,CAAC,IAAI,KAAK,GAAG,IAAI,CAAC;AAClB,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC;AAC1B,CAAC,OAAO,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AAC7C,CAAC;AACD;AACA,SAAS,eAAe,CAAC,EAAE,EAAE,EAAE,cAAc;AAC7C;AACA,CAAC,GAAG,CAAC,EAAE,CAAC,QAAQ,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,MAAM,EAAE,OAAO;AAChD,CAAC,IAAI,MAAM,GAAG,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC;AACjC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,CAAC,CAAC,EAAE,MAAM,GAAG,CAAC,CAAC,CAAC;AACrC,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE;AAC/B,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,IAAI,MAAM,IAAI,CAAC,CAAC,EAAE,MAAM,GAAG,CAAC,CAAC;AACjE,OAAO,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,IAAI,MAAM,IAAI,CAAC,CAAC,EAAE,MAAM,GAAG,CAAC,CAAC;AAC5D,EAAE;AACF,CAAC,GAAG,MAAM,GAAG,MAAM,EAAE,OAAO;AAC5B,CAAC,YAAY,CAAC,EAAE,EAAE,MAAM,yBAAyB,CAAC;AAClD,CAAC,YAAY,CAAC,EAAE,EAAE,MAAM,oBAAoB,iBAAiB,CAAC,MAAM,CAAC,CAAC,CAAC;AACvE;AACA,CAAC,YAAY,CAAC,EAAE,EAAE,MAAM,uBAAuB,CAAC;AAChD,CAAC;AACD;AACA,SAAS,cAAc,CAAC,EAAE,EAAE,EAAE,EAAE;AAChC,CAAC,GAAG,CAAC,EAAE,CAAC,QAAQ,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,KAAK,EAAE,OAAO;AAC/C,CAAC,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,IAAI,EAAE,EAAE,IAAI;AAChD,EAAE,GAAG,IAAI,CAAC,KAAK,GAAG,IAAI,EAAE,OAAO;AAC/B,EAAE,YAAY,CAAC,EAAE,EAAE,MAAM,gBAAgB,aAAa,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC;AAClE,EAAE,CAAC,MAAM,CAAC,EAAE;AACZ,EAAE,OAAO,CAAC,KAAK,CAAC,mCAAmC,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;AAC5E,EAAE,EAAE,CAAC,CAAC;AACN,CAAC;AACD;AACA,SAAS,uBAAuB,CAAC,EAAE,EAAE;AACrC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC;AAC9B,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,EAAE,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC;AAC9B,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;AACzB,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AACjE,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AACjE,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,EAAE;AAC5B,EAAE,CAAC,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAChE,EAAE;AACF,CAAC,OAAO,CAAC,CAAC;AACV,CAAC;AACD,SAAS,oBAAoB,CAAC,EAAE,EAAE,EAAE,EAAE;AACtC,CAAC,YAAY,CAAC,EAAE,EAAE,MAAM,yBAAyB,CAAC;AAClD,CAAC,YAAY,CAAC,EAAE,EAAE,MAAM,kBAAkB,CAAC;AAC3C,CAAC,YAAY,CAAC,EAAE,EAAE,MAAM,uBAAuB,uBAAuB,CAAC,EAAK,CAAC,CAAC,CAAC;AAC/E,CAAC,YAAY,CAAC,EAAE,EAAE,MAAM,uBAAuB,CAAC;AAChD,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,YAAY,CAAC,EAAE,EAAE,IAAI,EAAE;AAChC,CAAC,IAAI,EAAE,GAAG,SAAS,EAAE,CAAC;AACtB,CAAC,YAAY,CAAC,EAAE,EAAE,MAAM,oBAAoB,CAAC;AAC7C,CAAC,YAAY,CAAC,EAAE,EAAE,MAAM,uBAAuB,oBAAoB,EAAE,CAAC,CAAC;AACvE;AACA,CAAC,YAAY,CAAC,EAAE,EAAE,MAAM,kBAAkB,eAAe,CAAC,EAAE,CAAC,QAAQ,IAAI,EAAE,CAAC,QAAQ,CAAC,OAAO,IAAI,IAAI,CAAC,CAAC,CAAC;AACvG;AACA;AACA,CAAC,eAAe,CAAC,EAAE,EAAE,EAAQ,CAAC,CAAC;AAC/B,CAAC,eAAe,CAAC,EAAE,EAAE,EAAQ,CAAC,CAAC;AAC/B;AACA,CAAC,oBAAoB,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;AAC9B,CAAC,GAAG,CAAC,EAAE,CAAC,QAAQ,EAAE,EAAE,EAAE,KAAK,EAAE,cAAc,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,YAAY,CAAC,EAAE,EAAE,MAAM,kBAAkB,CAAC;AAC3C;AACA,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,CAAC;AACjB,CAAC;AACD,SAAS,QAAQ,CAAC,IAAI,EAAE,IAAI,aAAa,IAAI,mBAAmB;AAChE,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,MAAM,EAAE,OAAO,YAAY,EAAE,IAAI,WAAW,IAAI,CAAC,CAAC;AACvE,CAAC,OAAO,YAAY,EAAE,IAAI,WAAW,IAAI,CAAC,CAAC;AAC3C,CAAC;AACD;AACA,SAAS,QAAQ,CAAC,IAAI,EAAE,IAAI,aAAa,GAAG,aAAa,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,gBAAgB;AACvG,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,MAAM,EAAE,OAAO,YAAY,EAAE,IAAI,WAAW,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;AACtG,CAAC,OAAO,YAAY,EAAE,IAAI,WAAW,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;AAC1E,CAAC;AACD;AACA,SAAS,QAAQ,CAAC,IAAI,EAAE,IAAI,aAAa,GAAG,aAAa,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,gBAAgB;AACvG,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,MAAM,EAAE,OAAO,YAAY,EAAE,IAAI,WAAW,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,EAAkB,CAAC,CAAC;AACtG,CAAC,OAAO,YAAY,EAAE,IAAI,WAAW,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,EAAkB,CAAC,CAAC;AAC1E,CAAC;AACD;AACA,SAAS,QAAQ,CAAC,IAAI,EAAE,IAAI,aAAa,GAAG,aAAa,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,gBAAgB;AACvG,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,MAAM,EAAE,OAAO,YAAY,CAAoD,CAAC,CAAC;AACtG,CAAC,OAAO,YAAY,CAAoD,CAAC,CAAC;AAC1E,CAAC;AACD;AACA,SAAS,QAAQ,CAAC,IAAI,EAAE,IAAI,aAAa,GAAG,aAAa,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,gBAAgB;AACvG,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,MAAM,EAAE,OAAO,YAAY,CAAoD,CAAC,CAAC;AACtG,CAAC,OAAO,YAAY,CAAoD,CAAC,CAAC;AAC1E,CAAC;AACD;AACA,SAAS,SAAS,CAAC,IAAI,EAAE,IAAI,aAAa,MAAM,EAAE,IAAI,EAAE;AACxD,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,MAAM,EAAE,OAAO,aAAa,EAAE,IAAI,WAAW,MAAM,EAAE,IAAI,CAAC,CAAC;AAChF,CAAC,OAAO,aAAa,EAAE,IAAI,WAAW,MAAM,EAAE,IAAI,CAAC,CAAC;AACpD,CAAC;AACD;AACA,SAAS,SAAS,CAAC,IAAI,EAAE,IAAI,aAAa,IAAI,UAAU;AACxD,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,MAAM,EAAE,OAAO,aAAa,EAAE,IAAI,WAAW,IAAI,CAAC,CAAC;AACxE,CAAC,OAAO,aAAa,EAAE,IAAI,WAAW,IAAI,CAAC,CAAC;AAC5C,CAAC;AACD;AACA,SAAS,UAAU,CAAC,IAAI,EAAE,IAAI,aAAa,IAAI,wBAAwB;AACvE,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,MAAM,EAAE,OAAO,kBAAkB,EAAE,IAAI,WAAW,IAAI,CAAC,CAAC;AAC7E,CAAC,OAAO,kBAAkB,EAAE,IAAI,WAAW,IAAI,CAAC,CAAC;AACjD,CAAC;AACD;AACA,SAAS,QAAQ,CAAC,IAAI,EAAE,IAAI,aAAa,IAAI,EAAE;AAC/C,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,MAAM,EAAE,OAAO,YAAY,EAAE,IAAI,SAAqB,CAAC,CAAC;AAC7E,CAAC,OAAO,YAAY,EAAE,IAAI,SAAqB,CAAC,CAAC;AACjD,CAAC;AACD;AACA,SAAS,WAAW,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,aAAa,IAAI,EAAE;AACvD,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,MAAM,EAAE,OAAO,eAAe,EAAE,IAAI,WAAW,GAAG,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;AACrF,CAAC,OAAO,eAAe,CAAgC,CAAC,CAAC;AACzD,CAAC;AACD;AACA,SAAS,YAAY,CAAC,IAAI,EAAE,IAAI,aAAa,IAAI,EAAE;AACnD,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,MAAM,EAAE,OAAO,gBAAgB,EAAE,IAAI,WAAW,IAAI,EAAE,IAAI,CAAC,CAAC;AACjF,CAAC,OAAO,gBAAgB,EAAE,IAAI,WAAW,IAAI,EAAE,IAAI,CAAC,CAAC;AACrD,CAAC;AACD,IAAI,UAAU,CAAC,iDAAiD,CAAC;AACjE,IAAI,SAAS,CAAC,oDAAoD,CAAC;AACnE,SAAS,gBAAgB,CAAC,GAAG,aAAa,SAAS,eAAe;AAClE,CAAC,IAAI,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;AAC9B,CAAC,IAAI,CAAC,YAAY,EAAE,SAAS,CAAC,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;AAC9D,CAAC,GAAG,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,OAAO,CAAC,CAAC;AACjC,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;AAC3C,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE;AACtC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;AAC5B;AACA,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;AACzE,OAAO;AACP,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,QAAQ,EAAE,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAC9D,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC5B,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;AACtC,GAAG;AACH,EAAE;AACF,CAAC,OAAO,CAAC,CAAC;AACV,CAAC;AACD,SAAS,mBAAmB,CAAC,GAAG,aAAa;AAC7C,CAAC,IAAI,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;AAC9B,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;AACZ,CAAC,GAAG,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,OAAO,CAAC,CAAC;AACjC,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;AAC3C,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE;AACtC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;AAC5B;AACA,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;AACzE,OAAO;AACP,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,QAAQ,EAAE,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAC9D,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC5B,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;AACtC,GAAG;AACH,EAAE;AACF,CAAC,OAAO,CAAC,CAAC;AACV,CAAC;AACD;AACA;AACA;AACA;AACA,IAAI,aAAa,wBAAwB;AACzC;AACA,SAAS,WAAW,CAAC,MAAM,EAAE,KAAK,aAAa;AAC/C,CAAC,IAAI,GAAG,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,WAAW,CAAC,MAAM,CAAC,CAAC;AACxD,CAAC,GAAG,GAAG,KAAK,SAAS,EAAE,OAAO,WAAW,CAAC,KAAK,CAAC,CAAC;AACjD,CAAC,OAAO,UAAU,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;AAC/B,CAAC;AACD;AACA,SAAS,iBAAiB,CAAC,SAAS,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,aAAa;AAC/D,CAAC,IAAI,IAAI,WAAW,GAAG,CAAC;AACxB,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,kBAAkB,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;AACrD,EAAE,KAAK,SAAS,EAAE,IAAI,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM;AAClD,EAAE,KAAK,IAAI,CAAC,CAAC,KAAK,KAAK,EAAE,IAAI,GAAG,QAAQ,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM;AACzD,EAAE,KAAK,IAAI,CAAC,CAAC,KAAK,OAAO,EAAE,IAAI,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM;AACzD,EAAE,KAAK,MAAM,CAAC,CAAC,KAAK,aAAa,EAAE,IAAI,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM;AAChE,EAAE,KAAK,IAAI,CAAC,CAAC,KAAK,QAAQ,CAAC,CAAC,KAAK,OAAO,CAAC,CAAC,KAAK,MAAM,CAAC,CAAC,KAAK,YAAY,EAAE,MAAM;AAChF,EAAE,SAAS,MAAM,IAAI,KAAK,CAAC,eAAe,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;AACpD,EAAE;AACF,CAAC,SAAS,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC;AACpC,CAAC;AACD;AACA,SAAS,gBAAgB,CAAC,IAAI,WAAW,EAAE,EAAE,CAAC,EAAE;AAChD,CAAC,GAAG,IAAI,CAAC,CAAC,KAAK,GAAG,EAAE,OAAO;AAC3B,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,KAAK,KAAK,EAAE,IAAI;AACpC,EAAE,GAAG,IAAI,CAAC,CAAC,KAAK,GAAG,EAAE,EAAE,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE;AACzD,OAAO,GAAG,EAAE,KAAK,SAAS,EAAE;AAC5B,GAAG,GAAG,IAAI,CAAC,CAAC,KAAK,GAAG,EAAE;AACtB,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;AAC3D,SAAS,IAAI,CAAC,CAAC,GAAG,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAC1C,IAAI;AACJ,QAAQ,IAAI,CAAC,CAAC,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACrC,GAAG;AACH,OAAO,IAAI,CAAC,CAAC,GAAG,WAAW,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;AACnD,EAAE,CAAC,MAAM,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,EAAE;AAClC,CAAC,IAAI;AACL,EAAE,IAAI,CAAC,GAAG,aAAa,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,SAAS,CAAC;AAC3C,EAAE,GAAG,CAAC,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;AAC1B,EAAE,GAAG,CAAC,CAAC,SAAS,IAAI,IAAI,CAAC,CAAC,IAAI,GAAG,IAAI,WAAW,CAAC,CAAC,CAAC,EAAE;AACrD,GAAG,IAAI,EAAE,GAAG,mBAAmB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,IAAI,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE;AAC3H,GAAG;AACH,EAAE,CAAC,MAAM,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,EAAE;AAClC,CAAC;AACD;AACA,SAAS,kBAAkB,CAAC,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE;AAChD,CAAC,GAAG,IAAI,CAAC,UAAU,EAAE;AACrB,EAAE,GAAG,IAAI,CAAC,QAAQ,EAAE;AACpB,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC;AACzB,GAAG,GAAG,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,WAAW,GAAG,kBAAkB,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC;AAC5E,GAAG;AACH,EAAE;AACF,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC;AACxB,CAAC;AACD;AACA;AACA,SAAS,eAAe,CAAC,GAAG,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,UAAU,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,CAAC,EAAE;AAC1F,CAAC,IAAI,EAAE,GAAG,SAAS,EAAE,GAAG,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;AAC7D,CAAC,IAAI,SAAS,GAAG,EAAE,CAAC;AACpB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACX,CAAC,GAAG,GAAG,KAAK,SAAS,IAAI,GAAG,EAAE,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC;AAChD,CAAC,GAAG,GAAG,KAAK,SAAS,IAAI,IAAI,EAAE,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC;AAClD,CAAC,MAAM,MAAM,CAAC,GAAG,CAAC,KAAK,SAAS,EAAE;AAClC,EAAE,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;AACzC,EAAE,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC;AAChE,EAAE,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,MAAM;AAChC,EAAE,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC;AAC3B,EAAE;AACF,CAAC,OAAO,IAAI,CAAC,IAAI;AACjB,EAAE,KAAK,SAAS;AAChB,GAAG,IAAI,CAAC,CAAC,GAAG,GAAG,CAAC;AAChB,GAAG,IAAI,CAAC,CAAC,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC;AAC9B,GAAG,MAAM;AACT,EAAE,KAAK,QAAQ;AACf,GAAG,IAAI,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,WAAW,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC;AACxD,GAAG,IAAI,CAAC,CAAC,IAAI,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,WAAW,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;AAC1F,GAAG,MAAM;AACT,EAAE,KAAK,UAAU;AACjB,GAAG,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,EAAE,GAAG,IAAI,GAAG,CAAC;AACvC,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC;AACxF,GAAG,GAAG,IAAI,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC;AACnD,QAAQ,GAAG,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC;AACzC,GAAG,GAAG,CAAC,EAAE,IAAI,EAAE,IAAI,SAAS,EAAE,EAAE,GAAG,YAAY,CAAC;AAChD;AACA,EAAE,KAAK,QAAQ;AACf,GAAG,GAAG,IAAI,CAAC,CAAC,KAAK,SAAS,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;AACxC,GAAG,GAAG,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,GAAG,GAAG,CAAC;AAC5B,GAAG,MAAM;AACT,EAAE,KAAK,OAAO,EAAE,IAAI,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,QAAQ,KAAK,KAAK,EAAE,IAAI,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,MAAM;AAChG,EAAE;AACF,GAAG,GAAG,GAAG,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC,GAAG,GAAG,CAAC,EAAE;AAC9C,QAAQ,EAAE,IAAI,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,WAAW,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,EAAE;AACxD,GAAG,MAAM;AACT,EAAE;AACF,CAAC,gBAAgB,CAAC,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;AAC/B,CAAC,GAAG,CAAC,CAAC,WAAW,KAAK,KAAK,EAAE;AAC7B,EAAE,GAAG,IAAI,CAAC,OAAO,EAAE;AACnB,GAAG,IAAI,IAAI,GAAG,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AACxC;AACA,GAAG,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,EAAE,UAAU,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAC7D,GAAG,IAAI,CAAC,CAAC,GAAG,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;AACjC,GAAG,OAAO,IAAI,CAAC,OAAO,CAAC;AACvB,GAAG,GAAG,IAAI,CAAC,UAAU,IAAI,IAAI,EAAE,IAAI,CAAC,CAAC,GAAG,QAAQ,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;AAChE,QAAQ,GAAG,IAAI,CAAC,UAAU,EAAE;AAC5B,IAAI,IAAI,CAAC,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;AAC7C,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;AACrD,IAAI;AACJ,GAAG,MAAM;AACT,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,EAAE,CAAC;AACpC,IAAI,GAAG,IAAI,CAAC,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC/D,KAAK,GAAG,IAAI,CAAC,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAChE,MAAM,IAAI,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC5B,GAAG;AACH,EAAE;AACF,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE;AAClB,EAAE,SAAS,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE;AAChC,GAAG,GAAG,CAAC,CAAC,CAAC,WAAW,IAAI,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,WAAW,GAAG,CAAC,CAAC,WAAW,CAAC;AACrE,GAAG,CAAC,CAAC;AACL,EAAE,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;AACb,EAAE;AACF,CAAC,GAAG,IAAI,CAAC,OAAO,KAAK,SAAS,EAAE,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC;AACzD,CAAC;AACD;AACA,SAAS,iBAAiB,CAAC,KAAK,EAAE;AAClC,CAAC,OAAO,aAAa,CAAC,OAAO,CAAC,QAAQ,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,QAAQ,GAAG,KAAK,GAAG,KAAK,CAAC;AAChF,CAAC;AACD;AACA,SAAS,kBAAkB,CAAC,OAAO,UAAU;AAC7C,CAAC,OAAO,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC;AAC7B,CAAC,OAAO,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;AACjE,CAAC,OAAO,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,GAAG,OAAO,CAAC,IAAI,GAAG,SAAS,CAAC;AAClD,CAAC;AACD;AACA;AACA,SAAS,cAAc,CAAC,CAAC,EAAE,KAAK,eAAe;AAC/C,CAAC,IAAI,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;AACxB,CAAC,QAAQ,EAAE,CAAC;AACZ,CAAC,IAAI,GAAG,GAAG,KAAK,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC;AACpC,CAAC,GAAG,IAAI,CAAC,IAAI,IAAI,QAAQ,IAAI,IAAI,CAAC,IAAI,IAAI,OAAO,IAAI,IAAI,CAAC,IAAI,IAAI,QAAQ,EAAE;AAC5E,EAAE,GAAG,OAAO,QAAQ,KAAK,WAAW,EAAE,GAAG,GAAG,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,EAAE,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC;AAC1F,OAAO,GAAG,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC;AAC3B,EAAE;AACF,CAAC,IAAI,OAAO,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,WAAW,EAAE,EAAE,MAAM,GAAG,KAAK,CAAC;AAChE,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;AACzC,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,IAAI,IAAI,IAAI,CAAC,GAAG,EAAE,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,IAAI,IAAI,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,GAAG,QAAQ,CAAC,CAAC,OAAO,GAAG,CAAC,WAAW,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,EAAE;AACtL,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC,OAAO,CAAC,SAAS,GAAG,EAAE,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,GAAG,GAAG,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC;AAC9K,CAAC,GAAG,MAAM,EAAE,OAAO,gBAAgB,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;AAC/C;AACA,CAAC,aAAa,IAAI;AAClB,EAAE,gBAAgB,EAAE,SAAS;AAC7B,EAAE,cAAc,EAAE,SAAS,CAAC,EAAE,CAAC;AAC/B,EAAE,WAAW,EAAE,qBAAqB;AACpC,EAAE,aAAa,EAAE,SAAS,CAAC,EAAE,CAAC;AAC9B,EAAE,YAAY,EAAE,SAAS,CAAC,EAAE,CAAC;AAC7B,EAAE,WAAW,EAAE,SAAS,CAAC,EAAE,CAAC;AAC5B,EAAE,aAAa,EAAE,SAAS,CAAC,EAAE,CAAC;AAC9B,EAAE,YAAY,EAAE,SAAS,CAAC,EAAE,CAAC;AAC7B,EAAE,UAAU,EAAE,sCAAsC;AACpD,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC,CAAC;AACvB,EAAE,UAAU,EAAE,SAAS,CAAC,CAAC,CAAC;AAC1B,EAAE,SAAS,EAAE,SAAS,CAAC,EAAE,CAAC;AAC1B,EAAE,YAAY,EAAE,SAAS,CAAC,EAAE,CAAC;AAC7B,EAAE,QAAQ,EAAE,oBAAoB;AAChC,EAAE,YAAY,EAAE,yBAAyB;AACzC,EAAE,QAAQ,EAAE,oBAAoB;AAChC,EAAE,SAAS,CAAC;AACZ;AACA;AACA,CAAC,IAAI,EAAE,CAAC;AACR,CAAC,IAAI,KAAK,GAAG,EAAE,EAAE,GAAG,CAAC;AAErB,CAAC,IAAI,MAAM,GAAG,EAAE,EAAE,UAAU,qBAAqB,EAAE,EAAE,QAAQ,kBAAkB,EAAE,CAAC,EAAE,SAAS,GAAG,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,EAAE,QAAQ,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC;AAC1I,CAAC,IAAI,IAAI,IAAI,EAAE,SAAS,EAAE,GAAG,GAAG,EAAE,CAAC;AACnC,CAAC,IAAI,IAAI,GAAG,gBAAgB,CAAC,yBAAyB,CAAC,EAAE,IAAI,GAAG,CAAC,CAAC;AAClE,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;AAClB,CAAC,IAAI,QAAQ,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;AACtE,CAAC,IAAI,MAAM,GAAG,EAAE,EAAE,IAAI,GAAG,EAAE,CAAC;AAC5B,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE,IAAI,GAAG,CAAC,CAAC;AACvB,CAAC,IAAI,MAAM,oBAAoB,EAAE,CAAC;AAClC,CAAC,IAAI,KAAK,GAAG,EAAE,EAAE,SAAS,GAAG,EAAE,EAAE,IAAI,GAAG,CAAC,EAAE,EAAE,GAAG,EAAE,CAAC;AACnD,CAAC,IAAI,QAAQ,sBAAsB,EAAE,EAAE,OAAO,gBAAgB,EAAE,SAAS,CAAC;AAC1E,CAAC,IAAI,KAAK,GAAG,EAAE,EAAE,IAAI,EAAE,OAAO,GAAG,KAAK,CAAC;AACvC,CAAC,IAAI,MAAM,8BAA8B,EAAE,CAAC;AAC5C,CAAC,IAAI,OAAO,sBAAsB,EAAE,EAAE,MAAM,GAAG,EAAE,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;AAClE,CAAC,IAAI,QAAQ,kBAAkB,EAAE,MAAM,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,SAAS,EAAE,OAAO,GAAG,EAAE,CAAC;AAC9F,CAAC,SAAS,CAAC,SAAS,GAAG,CAAC,CAAC;AACzB,CAAC,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,qBAAqB,CAAC,EAAE,CAAC,CAAC;AAC7C,CAAC,IAAI,OAAO,GAAG,EAAE,CAAC;AAClB,CAAC,OAAO,EAAE,GAAG,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,QAAQ,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE;AAClF,EAAE,KAAK,MAAM;AACb,GAAG,GAAG,OAAO,IAAI,MAAM,EAAE;AACzB,IAAI,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,IAAI,KAAK,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AACnG,SAAS,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;AAC5E,IAAI,MAAM;AACV,IAAI;AACJ,GAAG,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM;AACtC,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,GAAG,EAAE,eAAe,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,eAAe,SAAS,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;AACvL,QAAQ,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC,IAAI,GAAG,gBAAgB,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,EAAE,CAAC,KAAK,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE;AACpF,GAAG,MAAM;AACT,EAAE,KAAK,MAAM;AACb,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC;AAClB,IAAI,GAAG,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,IAAI,CAAC,CAAC,GAAG,QAAQ,CAAC;AAC9C,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,SAAS,GAAG,CAAC,KAAK,IAAI,CAAC,CAAC,KAAK,KAAK,CAAC,EAAE;AACrE,KAAK,GAAG,IAAI,CAAC,KAAK,EAAE;AACpB,MAAM,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;AAC1D,MAAM,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;AACrC,MAAM,MAAM,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;AAC3D,KAAK;AACL,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE;AAClB,KAAK,IAAI,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC;AACxD,KAAK,GAAG,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC,CAAC,OAAO,GAAG,IAAI,CAAC,aAAa,CAAC;AAChE,KAAK,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC,OAAO,IAAI,CAAC,aAAa,CAAC;AACjD,KAAK;AACL,IAAI,GAAG,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,SAAS,EAAE;AAC3C,KAAK,EAAE,GAAG,CAAC,IAAI,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;AAChD,KAAK,EAAE,GAAG,CAAC,IAAI,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;AAC9C,KAAK,GAAG,EAAE,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AACnE,KAAK;AACL,IAAI,GAAG,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE;AACvE,SAAS,GAAG,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,SAAS,EAAE;AAChD;AACA,KAAK,IAAI,IAAI,GAAG,GAAG,CAAC,EAAE,GAAG,IAAI,EAAE,EAAE,EAAE,GAAG,EAAE;AACxC,MAAM,IAAI,IAAI,GAAG,GAAG,CAAC,EAAE,GAAG,IAAI,EAAE,EAAE,EAAE,GAAG,EAAE;AACzC,OAAO,GAAG,GAAG,GAAG,CAAC,IAAI,GAAG,GAAG,CAAC,EAAE;AAC9B,QAAQ,GAAG,IAAI,CAAC,KAAK,EAAE;AACvB,SAAS,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;AACjE,SAAS,QAAQ,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AAC/C,SAAS,MAAM,QAAQ,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AACrE,QAAQ;AACR,OAAO;AACP,MAAM;AACN,KAAK,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;AAChB,KAAK;AACL,SAAS,EAAE,CAAC,CAAC;AACb,IAAI,MAAM;AACV,IAAI,IAAI,GAAG,mBAAmB,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;AACtC,IAAI,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC;AACvC,IAAI,GAAG,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AAC1C,IAAI,GAAG,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AAC1C,IAAI,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE,EAAE,CAAC,CAAC;AACrC,IAAI,QAAQ,GAAG,EAAE,CAAC;AAClB,IAAI;AACJ,GAAG,MAAM;AACT,EAAE,KAAK,KAAK;AACZ,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,GAAG,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE;AAC/C,IAAI,GAAG,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AAC1C,IAAI,GAAG,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AAC1C,IAAI,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE;AACjC,KAAK,GAAG,GAAG,gBAAgB,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;AACnC,KAAK,GAAG,GAAG,CAAC,KAAK,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,GAAG,CAAC,CAAC;AACtC,KAAK;AACL,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;AACf,IAAI,MAAM;AACV,IAAI,GAAG,GAAG,gBAAgB,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;AAClC,IAAI,GAAG,GAAG,CAAC,KAAK,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,GAAG,CAAC,CAAC;AACrC,IAAI,MAAM,GAAG,EAAE,CAAC;AAChB,IAAI,GAAG,GAAG,CAAC,aAAa,IAAI,GAAG,IAAI,GAAG,CAAC,MAAM,EAAE;AAC/C,KAAK,MAAM,CAAC,GAAG,GAAG,QAAQ,CAAC,GAAG,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,GAAG,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;AAC3E,KAAK,OAAO,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC;AACzB,KAAK;AACL,IAAI,GAAG,GAAG,CAAC,MAAM,IAAI,GAAG,EAAE,EAAE,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,EAAE;AACxE,IAAI;AACJ,GAAG,MAAM;AACT,EAAE,KAAK,WAAW;AAClB,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC;AAClB,IAAI,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,IAAI,KAAK,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AAClF,IAAI,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;AAC/B,IAAI,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE;AACrE,KAAK,QAAQ,CAAC,MAAM,CAAC,GAAG,YAAY,CAAC,QAAQ,CAAC,CAAC;AAC/C,KAAK,GAAG,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,SAAS,IAAI,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE;AAC1D,MAAM,QAAQ,CAAC,UAAU,CAAC,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC;AAC9C,MAAM,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC;AACxC,MAAM,QAAQ,CAAC,MAAM,CAAC,GAAG,YAAY,CAAC,QAAQ,CAAC,CAAC;AAChD,MAAM;AACN,KAAK;AACL,IAAI,GAAG,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,SAAS,CAAC,GAAG,MAAM,CAAC;AACnD,IAAI,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,QAAQ,CAAC,OAAO,CAAC,GAAG,KAAK,CAAC;AACnD,IAAI,GAAG,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,QAAQ,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC;AACvD,IAAI,MAAM,CAAC,SAAS,CAAC,GAAG,QAAQ,CAAC;AACjC,IAAI,MAAM;AACV,IAAI,QAAQ,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;AAC3D,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AACd,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC;AAC/B,IAAI,GAAG,GAAG,gBAAgB,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;AAClC,IAAI,SAAS,GAAG,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AACtC,IAAI,QAAQ,IAAI,EAAE,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,EAAE,QAAQ,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC;AAC3D,IAAI,MAAM,GAAG,EAAE,CAAC;AAChB,IAAI,MAAM,GAAG,EAAE,CAAC;AAChB,IAAI,OAAO,GAAG,EAAE,CAAC;AACjB,IAAI,OAAO,GAAG,CAAC,IAAI,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC;AACzC,IAAI,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AAClC,IAAI;AACJ,GAAG,MAAM;AACT,EAAE,KAAK,OAAO;AACd,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,IAAI,KAAK,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AAClG,QAAQ,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE,MAAM;AAC1C,QAAQ;AACR,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC;AAC/B,IAAI,KAAK,GAAG,EAAE,CAAC,CAAC,OAAO,GAAG,KAAK,CAAC;AAChC,IAAI;AACJ,GAAG,MAAM;AACT;AACA,EAAE,KAAK,OAAO;AACd,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,GAAG,EAAE,kBAAkB,CAAC,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;AAC1D,QAAQ,IAAI,GAAG,gBAAgB,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;AACvC,GAAG,MAAM;AACT;AACA,EAAE,KAAK,cAAc;AACrB,GAAG,IAAI,CAAC,EAAE,GAAG,WAAW,CAAC,gBAAgB,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,IAAI,SAAS,CAAC,CAAC;AACtE,GAAG,GAAG,aAAa,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,EAAE,GAAG,aAAa,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AAC/D,GAAG,IAAI,IAAI,MAAM,GAAG,CAAC,EAAE,MAAM,IAAI,KAAK,EAAE,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,EAAE,EAAE,MAAM;AACzF,GAAG,GAAG,MAAM,IAAI,KAAK,EAAE,IAAI,MAAM,GAAG,IAAI,EAAE,MAAM,IAAI,KAAK,EAAE,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC,MAAM,CAAC,IAAI,IAAI,EAAE,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE;AACzI,GAAG,MAAM;AACT;AACA,EAAE,KAAK,QAAQ;AACf,GAAG,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,gBAAgB,OAAO,EAAE,MAAM;AAC7D,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,GAAG,EAAE,MAAM;AACzB,GAAG,IAAI,GAAG,gBAAgB,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;AAClC,GAAG,GAAG,IAAI,CAAC,MAAM,EAAE,EAAE,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC,OAAO,IAAI,CAAC,MAAM,CAAC,EAAE;AAC9D,GAAG,GAAG,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,GAAG,GAAG,QAAQ,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;AACtD,GAAG,GAAG,CAAC,OAAO,IAAI,IAAI,CAAC,GAAG,GAAG,EAAE,EAAE;AACjC,IAAI,OAAO,GAAG,IAAI,CAAC,CAAC,GAAG,GAAG,OAAO,CAAC;AAClC,IAAI,IAAI,IAAI,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,KAAK,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,GAAG,KAAK,CAAC,IAAI,CAAC,EAAE,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;AAC5F,IAAI;AACJ,GAAG,GAAG,OAAO,EAAE,WAAW,CAAC,IAAI,CAAC,CAAC;AACjC,GAAG,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC;AAC9C,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,GAAG,CAAC,IAAI,CAAC,CAAC;AACvE,GAAG,MAAM;AACT;AACA,EAAE,KAAK,YAAY;AACnB,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,GAAG,EAAE,MAAM;AACzB,GAAG,GAAG,CAAC,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC,KAAK,GAAG,EAAE,CAAC;AAC3C,GAAG,IAAI,WAAW,GAAG,WAAW,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;AACxC,GAAG,IAAI,YAAY,oBAAoB;AACvC,IAAI,IAAI,EAAE,iBAAiB,CAAC,WAAW,CAAC,IAAI,CAAC;AAC7C,IAAI,GAAG,EAAE,QAAQ,CAAC,WAAW,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;AAC5D,IAAI,SAAS,CAAC;AACd,GAAG,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,YAAY,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;AAC5E,6BAA6B,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;AAC/D,GAAG,MAAM;AACT;AACA,EAAE,KAAK,WAAW,uBAAuB,MAAM;AAC/C,EAAE,KAAK,GAAG,eAAe,MAAM;AAC/B,EAAE,KAAK,GAAG,eAAe,MAAM;AAC/B,EAAE,KAAK,GAAG,eAAe,MAAM;AAC/B,EAAE,KAAK,GAAG,eAAe,MAAM;AAC/B,EAAE,KAAK,IAAI,gBAAgB,MAAM;AACjC,EAAE,KAAK,IAAI,gBAAgB,MAAM;AACjC,EAAE,KAAK,IAAI,gBAAgB,MAAM;AACjC,EAAE,KAAK,KAAK,iBAAiB,MAAM;AACnC,EAAE,KAAK,KAAK,iBAAiB,MAAM;AACnC,EAAE,KAAK,MAAM,kBAAkB,MAAM;AACrC,EAAE,KAAK,WAAW;AAClB,GAAG,MAAM;AACT,EAAE,KAAK,SAAS,qBAAqB,MAAM;AAC3C,EAAE,KAAK,QAAQ,oBAAoB,MAAM;AACzC,EAAE,KAAK,MAAM;AACb,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE,MAAM;AACtC,QAAQ,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,GAAG,EAAE,EAAE,IAAI,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC;AACxD,QAAQ,IAAI,GAAG,EAAE,CAAC,KAAK,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;AACvC,GAAG,MAAM;AACT,EAAE,KAAK,UAAU;AACjB,GAAG,GAAG,CAAC,IAAI,CAAC,UAAU,EAAE,MAAM;AAC9B,GAAG,IAAI,CAAC,QAAQ,GAAG,gBAAgB,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;AAC3C,GAAG,MAAM;AACT,EAAE,KAAK,YAAY,wBAAwB,MAAM;AACjD;AACA,EAAE,KAAK,QAAQ,mBAAmB;AAClC,EAAE,KAAK,OAAO,kBAAkB;AAChC,EAAE,KAAK,aAAa,wBAAwB;AAC5C,EAAE,KAAK,SAAS,oBAAoB;AACpC,EAAE,KAAK,UAAU,qBAAqB;AACtC,EAAE,KAAK,SAAS,oBAAoB;AACpC,EAAE,KAAK,UAAU,qBAAqB;AACtC,EAAE,KAAK,SAAS,oBAAoB;AACpC,EAAE,KAAK,YAAY,uBAAuB;AAC1C,EAAE,KAAK,WAAW,sBAAsB;AACxC,EAAE,KAAK,aAAa,wBAAwB;AAC5C,EAAE,KAAK,SAAS,oBAAoB;AACpC,EAAE,KAAK,UAAU,qBAAqB;AACtC,EAAE,KAAK,WAAW,sBAAsB;AACxC,EAAE,KAAK,eAAe,0BAA0B;AAChD,EAAE,KAAK,SAAS,oBAAoB;AACpC,EAAE,KAAK,eAAe,0BAA0B;AAChD,EAAE,KAAK,YAAY,uBAAuB;AAC1C,EAAE,KAAK,UAAU,qBAAqB;AACtC,EAAE,KAAK,SAAS;AAChB,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE,MAAM;AACtC,QAAQ,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,GAAG,EAAE,aAAa,CAAC,KAAK,EAAE,OAAO,EAAE,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;AACjF,QAAQ,IAAI,GAAG,EAAE,CAAC,KAAK,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;AACvC,GAAG,MAAM;AACT,EAAE,KAAK,YAAY,wBAAwB,MAAM;AACjD;AACA,EAAE,KAAK,QAAQ,mBAAmB;AAClC,EAAE,KAAK,UAAU;AACjB,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,IAAI,KAAK,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AAClG,QAAQ,KAAK,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC;AACnC,GAAG,MAAM;AACT;AACA,EAAE,KAAK,SAAS;AAChB,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC;AAClB,IAAI,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,IAAI,KAAK,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AAClF,IAAI,kBAAkB,CAAC,OAAO,CAAC,CAAC;AAChC,IAAI,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AAC3B,IAAI,MAAM;AACV,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC;AAC/B,IAAI,GAAG,GAAG,gBAAgB,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;AAClC,IAAI,OAAO,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC;AACvC,IAAI;AACJ,GAAG,MAAM;AACT;AACA,EAAE,KAAK,YAAY;AACnB,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,IAAI,KAAK,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AAClG,QAAQ,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE;AACjD,IAAI,IAAI,UAAU,GAAG,gBAAgB,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;AAC7C,IAAI,QAAQ,CAAC,aAAa,CAAC,GAAG,EAAE,GAAG,CAAC,QAAQ,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC;AACnF,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;AAC9B,IAAI;AACJ,GAAG,MAAM;AACT;AACA,EAAE,KAAK,MAAM,kBAAkB,MAAM;AACrC;AACA,EAAE,KAAK,gBAAgB;AACvB,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC;AAClB,IAAI,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,IAAI,KAAK,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AAClF,IAAI,MAAM;AACV,IAAI,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;AACvE,IAAI;AACJ,GAAG,MAAM;AACT;AACA,EAAE,KAAK,eAAe;AACtB,GAAG,MAAM;AACT,EAAE,KAAK,kBAAkB,6BAA6B;AACtD,EAAE,KAAK,oBAAoB,+BAA+B;AAC1D,EAAE,KAAK,0BAA0B,qCAAqC;AACtE,EAAE,KAAK,wBAAwB,mCAAmC;AAClE,EAAE,KAAK,YAAY,uBAAuB;AAC1C,EAAE,KAAK,YAAY,uBAAuB;AAC1C,EAAE,KAAK,OAAO,kBAAkB;AAChC,EAAE,KAAK,SAAS,oBAAoB;AACpC,EAAE,KAAK,YAAY,uBAAuB;AAC1C,EAAE,KAAK,YAAY,uBAAuB;AAC1C,EAAE,KAAK,SAAS,oBAAoB;AACpC,EAAE,KAAK,QAAQ,mBAAmB;AAClC,EAAE,KAAK,uBAAuB,kCAAkC;AAChE,EAAE,KAAK,cAAc,yBAAyB;AAC9C,EAAE,KAAK,WAAW,sBAAsB;AACxC,EAAE,KAAK,eAAe,0BAA0B;AAChD,EAAE,KAAK,iBAAiB,4BAA4B;AACpD,EAAE,KAAK,kBAAkB;AACzB,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,IAAI,KAAK,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AAClG,QAAQ,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;AAC3E,GAAG,MAAM;AACT;AACA,EAAE,KAAK,MAAM,kBAAkB,MAAM;AACrC;AACA,EAAE;AACF;AACA,GAAG,GAAG,KAAK,CAAC,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,UAAU,EAAE,OAAO,UAAU,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;AAC7E;AACA,GAAG,GAAG,KAAK,CAAC,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,WAAW,OAAO,UAAU,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;AACjF;AACA,GAAG,IAAI,IAAI,GAAG,IAAI,CAAC;AACnB,GAAG,OAAO,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAClC;AACA,IAAI,KAAK,wBAAwB,oCAAoC,OAAO,EAAE,CAAC,CAAC,CAAC;AACjF,KAAK,KAAK,UAAU,sBAAsB,MAAM;AAChD,KAAK,KAAK,2BAA2B,uCAAuC,MAAM;AAClF,KAAK,KAAK,oBAAoB,gCAAgC,MAAM;AACpE,KAAK,KAAK,sBAAsB,kCAAkC,MAAM;AACxE,KAAK,KAAK,QAAQ,oBAAoB,MAAM;AAC5C,KAAK,KAAK,OAAO,mBAAmB,MAAM;AAC1C,KAAK,KAAK,OAAO,mBAAmB,MAAM;AAC1C,KAAK,KAAK,KAAK,iBAAiB,MAAM;AACtC,KAAK,KAAK,kBAAkB,8BAA8B,MAAM;AAChE,KAAK,KAAK,qBAAqB,iCAAiC,MAAM;AACtE,KAAK,SAAS,IAAI,GAAG,KAAK,CAAC;AAC3B,KAAK,CAAC,MAAM;AACZ;AACA;AACA,IAAI,KAAK,kBAAkB,8BAA8B,OAAO,EAAE,CAAC,CAAC,CAAC;AACrE,KAAK,KAAK,SAAS,qBAAqB,MAAM;AAC9C,KAAK,KAAK,gBAAgB,4BAA4B,MAAM;AAC5D,KAAK,KAAK,oBAAoB,gCAAgC,MAAM;AACpE,KAAK,KAAK,OAAO,mBAAmB,MAAM;AAC1C,KAAK,KAAK,SAAS,qBAAqB,MAAM;AAC9C,KAAK,KAAK,WAAW,uBAAuB,MAAM;AAClD,KAAK,KAAK,UAAU,sBAAsB,MAAM;AAChD,KAAK,KAAK,iBAAiB,6BAA6B,MAAM;AAC9D,KAAK,SAAS,IAAI,GAAG,KAAK,CAAC;AAC3B,KAAK,CAAC,MAAM;AACZ;AACA;AACA,IAAI,KAAK,eAAe,2BAA2B,OAAO,EAAE,CAAC,CAAC,CAAC;AAC/D,KAAK,KAAK,UAAU;AACpB;AACA,MAAM,QAAQ,CAAC,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC;AACvC,MAAM,MAAM;AACZ,KAAK,KAAK,cAAc,0BAA0B,MAAM;AACxD,KAAK,KAAK,aAAa,yBAAyB,MAAM;AACtD,KAAK,KAAK,YAAY,wBAAwB,MAAM;AACpD,KAAK,KAAK,YAAY,wBAAwB,MAAM;AACpD,KAAK,KAAK,UAAU,sBAAsB,MAAM;AAChD,KAAK,KAAK,kBAAkB,8BAA8B,MAAM;AAChE,KAAK,KAAK,eAAe,2BAA2B,MAAM;AAC1D,KAAK,KAAK,gBAAgB,4BAA4B,MAAM;AAC5D,KAAK,KAAK,aAAa,yBAAyB,MAAM;AACtD,KAAK,KAAK,iBAAiB,6BAA6B,MAAM;AAC9D,KAAK,KAAK,mBAAmB,+BAA+B,MAAM;AAClE,KAAK,KAAK,SAAS,qBAAqB,MAAM;AAC9C,KAAK,KAAK,WAAW,uBAAuB,MAAM;AAClD,KAAK,KAAK,YAAY,wBAAwB,MAAM;AACpD,KAAK,KAAK,iBAAiB,6BAA6B,MAAM;AAC9D,KAAK,KAAK,gBAAgB,4BAA4B,MAAM;AAC5D,KAAK,KAAK,KAAK,iBAAiB,MAAM;AACtC,KAAK,KAAK,wBAAwB,oCAAoC,MAAM;AAC5E,KAAK,KAAK,qBAAqB,iCAAiC,MAAM;AACtE,KAAK,KAAK,WAAW,uBAAuB,MAAM;AAClD,KAAK,KAAK,eAAe,2BAA2B,MAAM;AAC1D,KAAK,KAAK,WAAW,uBAAuB,MAAM;AAClD,KAAK,KAAK,MAAM,kBAAkB,MAAM;AACxC,KAAK,KAAK,KAAK,iBAAiB,MAAM;AACtC,KAAK,KAAK,OAAO,mBAAmB,MAAM;AAC1C,KAAK,KAAK,gBAAgB,4BAA4B,MAAM;AAC5D,KAAK,KAAK,aAAa,yBAAyB,MAAM;AACtD,KAAK,KAAK,UAAU,sBAAsB,MAAM;AAChD,KAAK,KAAK,eAAe,2BAA2B,MAAM;AAC1D,KAAK,KAAK,KAAK,iBAAiB,MAAM;AACtC,KAAK,KAAK,YAAY,wBAAwB,MAAM;AACpD,KAAK,KAAK,SAAS,qBAAqB,MAAM;AAC9C,KAAK,KAAK,UAAU,sBAAsB,MAAM;AAChD,KAAK,KAAK,SAAS,qBAAqB,MAAM;AAC9C,KAAK,KAAK,YAAY,wBAAwB,MAAM;AACpD,KAAK,KAAK,SAAS,qBAAqB,MAAM;AAC9C,KAAK,KAAK,OAAO,mBAAmB,MAAM;AAC1C,KAAK,KAAK,MAAM,kBAAkB,MAAM;AACxC,KAAK,KAAK,KAAK,iBAAiB,MAAM;AACtC,KAAK,KAAK,eAAe,2BAA2B,MAAM;AAC1D,KAAK,KAAK,gBAAgB,4BAA4B,MAAM;AAC5D,KAAK,KAAK,0BAA0B,sCAAsC,MAAM;AAChF,KAAK,KAAK,QAAQ,oBAAoB,MAAM;AAC5C,KAAK,KAAK,aAAa,yBAAyB,MAAM;AACtD,KAAK,KAAK,oBAAoB,gCAAgC,MAAM;AACpE,KAAK,SAAS,IAAI,GAAG,KAAK,CAAC;AAC3B,KAAK,CAAC,MAAM;AACZ;AACA;AACA,IAAI,KAAK,iBAAiB,6BAA6B,OAAO,EAAE,CAAC,CAAC,CAAC;AACnE,KAAK,KAAK,YAAY,wBAAwB,MAAM;AACpD,KAAK,KAAK,QAAQ,oBAAoB,MAAM;AAC5C,KAAK,KAAK,OAAO,mBAAmB,MAAM;AAC1C,KAAK,SAAS,IAAI,GAAG,KAAK,CAAC;AAC3B,KAAK,CAAC,MAAM;AACZ;AACA;AACA,IAAI,KAAK,kBAAkB,8BAA8B,OAAO,EAAE,CAAC,CAAC,CAAC;AACrE,KAAK,KAAK,SAAS;AACnB,MAAM,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,CAAa;AAC/C,WAAW,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,GAAG,EAAE,OAAO,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,EAAE,CAAC,KAAK,CAAC;AAC3D,OAAO,KAAK,aAAa,EAAE,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,MAAM;AACrD,OAAO,KAAK,iBAAiB,EAAE,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,MAAM;AACzD,OAAO;AACP,WAAW,IAAI,GAAG,EAAE,CAAC,KAAK,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;AAC1C,MAAM,MAAM;AACZ,KAAK,KAAK,QAAQ;AAClB,MAAM,GAAG,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,eAAe,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;AACjF,MAAM,GAAG,CAAC,KAAK,CAAC,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,QAAQ,CAAC,UAAU,CAAC,CAAC,MAAM,GAAG,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;AACtG,MAAM,MAAM;AACZ,KAAK,KAAK,QAAQ;AAClB,MAAM,GAAG,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,eAAe,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;AACjF,MAAM,GAAG,CAAC,KAAK,CAAC,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,QAAQ,CAAC,UAAU,CAAC,CAAC,MAAM,GAAG,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;AACtG,MAAM,MAAM;AACZ,KAAK,KAAK,aAAa;AACvB,MAAM,IAAI,WAAW,GAAG,WAAW,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;AAC3C,MAAM,GAAG,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,eAAe,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC;AAChF,MAAM,GAAG,CAAC,KAAK,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC,EAAE,QAAQ,CAAC,UAAU,CAAC,CAAC,GAAG,GAAG,CAAC,WAAW,CAAC,GAAG,CAAC;AAC/E,MAAM,GAAG,CAAC,KAAK,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,QAAQ,CAAC,UAAU,CAAC,CAAC,IAAI,GAAG,CAAC,WAAW,CAAC,IAAI,CAAC;AAClF,MAAM,GAAG,CAAC,KAAK,CAAC,CAAC,WAAW,CAAC,KAAK,CAAC,EAAE,QAAQ,CAAC,UAAU,CAAC,CAAC,KAAK,GAAG,CAAC,WAAW,CAAC,KAAK,CAAC;AACrF,MAAM,GAAG,CAAC,KAAK,CAAC,CAAC,WAAW,CAAC,MAAM,CAAC,EAAE,QAAQ,CAAC,UAAU,CAAC,CAAC,MAAM,GAAG,CAAC,WAAW,CAAC,MAAM,CAAC;AACxF,MAAM,MAAM;AACZ,KAAK,KAAK,oBAAoB;AAC9B,MAAM,GAAG,CAAC,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC,KAAK,GAAG,EAAE,CAAC;AAC9C,MAAM,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;AACpD,MAAM,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,IAAI,CAAC;AACnC,MAAM,MAAM;AACZ;AACA,KAAK,KAAK,aAAa,yBAAyB,MAAM;AACtD,KAAK,KAAK,eAAe,2BAA2B,MAAM;AAC1D;AACA,KAAK,KAAK,iBAAiB,4BAA4B;AACvD,KAAK,KAAK,eAAe;AACzB,MAAM,MAAM;AACZ;AACA,KAAK,KAAK,uBAAuB;AACjC,MAAM,MAAM;AACZ;AACA,KAAK,KAAK,WAAW,uBAAuB,MAAM;AAClD,KAAK,KAAK,WAAW,uBAAuB,MAAM;AAClD,KAAK,KAAK,kBAAkB,8BAA8B,MAAM;AAChE,KAAK,KAAK,qBAAqB,iCAAiC,MAAM;AACtE;AACA,KAAK,KAAK,UAAU,sBAAsB,MAAM;AAChD,KAAK,KAAK,OAAO,mBAAmB,MAAM;AAC1C,KAAK,KAAK,aAAa,yBAAyB,MAAM;AACtD,KAAK,KAAK,OAAO,mBAAmB,MAAM;AAC1C,KAAK,KAAK,OAAO,mBAAmB,MAAM;AAC1C,KAAK,KAAK,MAAM,kBAAkB,MAAM;AACxC,KAAK,KAAK,QAAQ,oBAAoB,MAAM;AAC5C,KAAK,KAAK,QAAQ,oBAAoB,MAAM;AAC5C,KAAK,KAAK,WAAW,uBAAuB,MAAM;AAClD,KAAK,KAAK,UAAU,sBAAsB,MAAM;AAChD,KAAK,KAAK,gBAAgB,4BAA4B,MAAM;AAC5D,KAAK,KAAK,iBAAiB,6BAA6B,MAAM;AAC9D,KAAK,KAAK,kBAAkB,8BAA8B,MAAM;AAChE,KAAK,KAAK,kBAAkB,8BAA8B,MAAM;AAChE,KAAK,KAAK,sBAAsB,kCAAkC,MAAM;AACxE,KAAK,KAAK,oBAAoB,gCAAgC,MAAM;AACpE,KAAK,KAAK,gBAAgB,4BAA4B,MAAM;AAC5D,KAAK,KAAK,YAAY,wBAAwB,MAAM;AACpD,KAAK,KAAK,eAAe,2BAA2B,MAAM;AAC1D,KAAK,KAAK,mBAAmB,+BAA+B,MAAM;AAClE,KAAK,KAAK,WAAW,uBAAuB,MAAM;AAClD,KAAK,KAAK,gBAAgB,4BAA4B,MAAM;AAC5D,KAAK,KAAK,gBAAgB,4BAA4B,MAAM;AAC5D,KAAK,KAAK,gBAAgB,4BAA4B,MAAM;AAC5D,KAAK,KAAK,eAAe,2BAA2B,MAAM;AAC1D,KAAK,KAAK,UAAU,sBAAsB,MAAM;AAChD,KAAK,KAAK,UAAU,sBAAsB,MAAM;AAChD,KAAK,KAAK,WAAW,uBAAuB,MAAM;AAClD,KAAK,KAAK,gBAAgB,4BAA4B,MAAM;AAC5D,KAAK,KAAK,MAAM,kBAAkB,MAAM;AACxC,KAAK,KAAK,aAAa,yBAAyB,MAAM;AACtD,KAAK,KAAK,WAAW,uBAAuB,MAAM;AAClD,KAAK,KAAK,WAAW,uBAAuB,MAAM;AAClD,KAAK,KAAK,aAAa,yBAAyB,MAAM;AACtD,KAAK,KAAK,iBAAiB,6BAA6B,MAAM;AAC9D,KAAK,KAAK,iBAAiB,6BAA6B,MAAM;AAC9D,KAAK,KAAK,iBAAiB,6BAA6B,MAAM;AAC9D,KAAK,KAAK,iBAAiB,6BAA6B,MAAM;AAC9D,KAAK,KAAK,uBAAuB,mCAAmC,MAAM;AAC1E,KAAK,KAAK,kBAAkB,8BAA8B,MAAM;AAChE,KAAK,KAAK,eAAe,2BAA2B,MAAM;AAC1D,KAAK,KAAK,eAAe,2BAA2B,MAAM;AAC1D,KAAK,KAAK,0BAA0B;AACpC,MAAM,GAAG,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,QAAQ,CAAC,UAAU,CAAC,GAAG,EAAE,CAAC;AAC1D,MAAM,QAAQ,CAAC,UAAU,CAAC,CAAC,KAAK,GAAG,IAAI,CAAC;AACxC,MAAM,MAAM;AACZ,KAAK,KAAK,eAAe,2BAA2B,MAAM;AAC1D,KAAK,KAAK,sBAAsB,kCAAkC,MAAM;AACxE,KAAK,KAAK,oBAAoB,gCAAgC,MAAM;AACpE,KAAK,KAAK,6BAA6B;AACvC,MAAM,GAAG,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,QAAQ,CAAC,UAAU,CAAC,GAAG,EAAE,CAAC;AAC1D,MAAM,QAAQ,CAAC,UAAU,CAAC,CAAC,IAAI,GAAG,IAAI,CAAC;AACvC,MAAM,MAAM;AACZ,KAAK,KAAK,eAAe,2BAA2B,MAAM;AAC1D,KAAK,KAAK,mBAAmB,+BAA+B,MAAM;AAClE,KAAK,KAAK,kBAAkB,8BAA8B,MAAM;AAChE,KAAK,KAAK,gBAAgB,4BAA4B,MAAM;AAC5D,KAAK,KAAK,qBAAqB,iCAAiC,MAAM;AACtE,KAAK,KAAK,eAAe,2BAA2B,MAAM;AAC1D,KAAK,KAAK,qBAAqB,iCAAiC,MAAM;AACtE,KAAK,KAAK,YAAY,wBAAwB,MAAM;AACpD,KAAK,KAAK,eAAe,2BAA2B,MAAM;AAC1D,KAAK,KAAK,WAAW,uBAAuB,MAAM;AAClD,KAAK,KAAK,iBAAiB,6BAA6B,MAAM;AAC9D,KAAK,SAAS,IAAI,GAAG,KAAK,CAAC;AAC3B,KAAK,CAAC,MAAM;AACZ;AACA;AACA,IAAI,KAAK,YAAY,uBAAuB,CAAC,KAAK,YAAY,wBAAwB,OAAO,EAAE,CAAC,CAAC,CAAC;AAClG,KAAK,KAAK,sBAAsB,kCAAkC,MAAM;AACxE,KAAK,KAAK,2BAA2B,uCAAuC,MAAM;AAClF,KAAK,KAAK,kBAAkB,8BAA8B,MAAM;AAChE,KAAK,KAAK,UAAU,sBAAsB,MAAM;AAChD,KAAK,KAAK,YAAY,wBAAwB,MAAM;AACpD,KAAK,KAAK,aAAa,yBAAyB,MAAM;AACtD,KAAK,KAAK,YAAY,wBAAwB,MAAM;AACpD,KAAK,KAAK,wBAAwB,oCAAoC,MAAM;AAC5E,KAAK,KAAK,kBAAkB,8BAA8B,MAAM;AAChE,KAAK,KAAK,UAAU,sBAAsB,MAAM;AAChD,KAAK,KAAK,WAAW,uBAAuB,MAAM;AAClD,KAAK,KAAK,UAAU,sBAAsB,MAAM;AAChD,KAAK,KAAK,WAAW,uBAAuB,MAAM;AAClD,KAAK,KAAK,YAAY,wBAAwB,MAAM;AACpD,KAAK,KAAK,aAAa,yBAAyB,MAAM;AACtD,KAAK,KAAK,aAAa,yBAAyB,MAAM;AACtD,KAAK,KAAK,YAAY,wBAAwB,MAAM;AACpD,KAAK,KAAK,kBAAkB,8BAA8B,MAAM;AAChE,KAAK,KAAK,MAAM,kBAAkB,MAAM;AACxC,KAAK,KAAK,UAAU,sBAAsB,MAAM;AAChD,KAAK,KAAK,UAAU,sBAAsB,MAAM;AAChD,KAAK,KAAK,YAAY,wBAAwB,MAAM;AACpD,KAAK,KAAK,wBAAwB,oCAAoC,MAAM;AAC5E,KAAK,KAAK,UAAU,sBAAsB,MAAM;AAChD,KAAK,KAAK,WAAW,uBAAuB,MAAM;AAClD,KAAK,KAAK,eAAe,2BAA2B,MAAM;AAC1D,KAAK,KAAK,YAAY,wBAAwB,MAAM;AACpD,KAAK,KAAK,qBAAqB,iCAAiC,MAAM;AACtE,KAAK,KAAK,QAAQ,oBAAoB,MAAM;AAC5C,KAAK,KAAK,UAAU,sBAAsB,MAAM;AAChD,KAAK,KAAK,WAAW,uBAAuB,MAAM;AAClD,KAAK,KAAK,eAAe,2BAA2B,MAAM;AAC1D,KAAK,KAAK,UAAU,sBAAsB,MAAM;AAChD,KAAK,KAAK,mBAAmB,+BAA+B,MAAM;AAClE,KAAK,KAAK,gBAAgB,4BAA4B,MAAM;AAC5D,KAAK,KAAK,aAAa,yBAAyB,MAAM;AACtD,KAAK,KAAK,gBAAgB,4BAA4B,MAAM;AAC5D,KAAK,KAAK,aAAa,yBAAyB,MAAM;AACtD,KAAK,KAAK,aAAa,yBAAyB,MAAM;AACtD,KAAK,KAAK,iBAAiB,6BAA6B,MAAM;AAC9D,KAAK,KAAK,oBAAoB,gCAAgC,MAAM;AACpE,KAAK,KAAK,mBAAmB,+BAA+B,MAAM;AAClE,KAAK,KAAK,sBAAsB,kCAAkC,MAAM;AACxE,KAAK,KAAK,uBAAuB,mCAAmC,MAAM;AAC1E,KAAK,KAAK,aAAa,yBAAyB,MAAM;AACtD,KAAK,SAAS,IAAI,GAAG,KAAK,CAAC;AAC3B,KAAK,CAAC,MAAM;AACZ;AACA;AACA,IAAI,KAAK,YAAY,wBAAwB,OAAO,EAAE,CAAC,CAAC,CAAC;AACzD,KAAK,KAAK,WAAW,uBAAuB,MAAM;AAClD,KAAK,KAAK,UAAU,sBAAsB,MAAM;AAChD,KAAK,KAAK,WAAW,uBAAuB,MAAM;AAClD,KAAK,KAAK,UAAU,sBAAsB,MAAM;AAChD,KAAK,KAAK,UAAU,sBAAsB,MAAM;AAChD,KAAK,KAAK,QAAQ,oBAAoB,MAAM;AAC5C,KAAK,KAAK,QAAQ,oBAAoB,MAAM;AAC5C,KAAK,SAAS,IAAI,GAAG,KAAK,CAAC;AAC3B,KAAK,CAAC,MAAM;AACZ;AACA;AACA,IAAI,KAAK,YAAY,wBAAwB,OAAO,EAAE,CAAC,CAAC,CAAC;AACzD,KAAK,KAAK,kBAAkB,8BAA8B,MAAM;AAChE,KAAK,KAAK,qBAAqB,iCAAiC,MAAM;AACtE,KAAK,KAAK,eAAe,2BAA2B,MAAM;AAC1D,KAAK,KAAK,cAAc,0BAA0B,MAAM;AACxD,KAAK,SAAS,IAAI,GAAG,KAAK,CAAC;AAC3B,KAAK,CAAC,MAAM;AACZ;AACA;AACA,IAAI,KAAK,YAAY,wBAAwB,OAAO,EAAE,CAAC,CAAC,CAAC;AACzD,KAAK,KAAK,IAAI,gBAAgB,MAAM;AACpC,KAAK,KAAK,gBAAgB,4BAA4B,MAAM;AAC5D,KAAK,KAAK,mBAAmB,+BAA+B,MAAM;AAClE,KAAK,KAAK,aAAa,yBAAyB,MAAM;AACtD,KAAK,KAAK,WAAW,uBAAuB,MAAM;AAClD,KAAK,KAAK,oBAAoB,gCAAgC,MAAM;AACpE,KAAK,KAAK,gBAAgB,4BAA4B,MAAM;AAC5D,KAAK,KAAK,WAAW,uBAAuB,MAAM;AAClD,KAAK,KAAK,YAAY,wBAAwB,MAAM;AACpD,KAAK,KAAK,YAAY,wBAAwB,MAAM;AACpD,KAAK,KAAK,aAAa,yBAAyB,MAAM;AACtD,KAAK,KAAK,aAAa,yBAAyB,MAAM;AACtD,KAAK,KAAK,UAAU,sBAAsB,MAAM;AAChD,KAAK,KAAK,QAAQ,oBAAoB,MAAM;AAC5C,KAAK,KAAK,YAAY,wBAAwB,MAAM;AACpD,KAAK,KAAK,gBAAgB,4BAA4B,MAAM;AAC5D,KAAK,KAAK,oBAAoB,gCAAgC,MAAM;AACpE,KAAK,KAAK,oBAAoB,gCAAgC,MAAM;AACpE,KAAK,KAAK,QAAQ,oBAAoB,MAAM;AAC5C,KAAK,KAAK,QAAQ,oBAAoB,MAAM;AAC5C,KAAK,KAAK,SAAS,qBAAqB,MAAM;AAC9C,KAAK,KAAK,mBAAmB,+BAA+B,MAAM;AAClE,KAAK,KAAK,sBAAsB,kCAAkC,MAAM;AACxE,KAAK,KAAK,gBAAgB,4BAA4B,MAAM;AAC5D,KAAK,KAAK,WAAW,uBAAuB,MAAM;AAClD,KAAK,KAAK,YAAY,wBAAwB,MAAM;AACpD,KAAK,KAAK,KAAK,iBAAiB,MAAM;AACtC,KAAK,KAAK,OAAO,mBAAmB,MAAM;AAC1C,KAAK,KAAK,gBAAgB,4BAA4B,MAAM;AAC5D,KAAK,KAAK,iBAAiB,6BAA6B,MAAM;AAC9D,KAAK,KAAK,oBAAoB,gCAAgC,MAAM;AACpE,KAAK,SAAS,IAAI,GAAG,KAAK,CAAC;AAC3B,KAAK,CAAC,MAAM;AACZ;AACA,IAAI,KAAK,gBAAgB;AACzB,IAAI,OAAO,EAAE,CAAC,CAAC,CAAC;AAChB,KAAK,KAAK,OAAO,mBAAmB,MAAM;AAC1C;AACA,KAAK,KAAK,MAAM,kBAAkB,MAAM;AACxC,KAAK,KAAK,KAAK,iBAAiB,MAAM;AACtC,KAAK,KAAK,KAAK,iBAAiB,MAAM;AACtC,KAAK,KAAK,MAAM,kBAAkB,MAAM;AACxC,KAAK,KAAK,YAAY,wBAAwB,MAAM;AACpD,KAAK,KAAK,OAAO,mBAAmB,MAAM;AAC1C,KAAK,KAAK,eAAe,2BAA2B,MAAM;AAC1D,KAAK,KAAK,OAAO,mBAAmB,MAAM;AAC1C,KAAK,KAAK,YAAY,wBAAwB,MAAM;AACpD,KAAK,KAAK,cAAc,0BAA0B,MAAM;AACxD,KAAK,KAAK,YAAY,wBAAwB,MAAM;AACpD,KAAK,KAAK,cAAc,0BAA0B,MAAM;AACxD,KAAK,KAAK,YAAY,wBAAwB,MAAM;AACpD,KAAK,KAAK,WAAW,uBAAuB,MAAM;AAClD,KAAK,KAAK,WAAW,uBAAuB,MAAM;AAClD,KAAK,KAAK,WAAW,uBAAuB,MAAM;AAClD,KAAK,KAAK,WAAW,uBAAuB,MAAM;AAClD,KAAK,KAAK,UAAU,sBAAsB,MAAM;AAChD,KAAK,KAAK,QAAQ,oBAAoB,MAAM;AAC5C,KAAK,KAAK,QAAQ,oBAAoB,MAAM;AAC5C,KAAK,KAAK,QAAQ,oBAAoB,MAAM;AAC5C;AACA,KAAK,KAAK,eAAe,2BAA2B,MAAM;AAC1D,KAAK,SAAS,IAAI,GAAG,KAAK,CAAC;AAC3B,KAAK,CAAC,MAAM;AACZ;AACA,IAAI,KAAK,SAAS,oBAAoB;AACtC,IAAI,KAAK,uBAAuB;AAChC,IAAI,OAAO,EAAE,CAAC,CAAC,CAAC;AAChB,KAAK,KAAK,OAAO,mBAAmB,MAAM;AAC1C,KAAK,KAAK,MAAM,kBAAkB,MAAM;AACxC,KAAK,KAAK,KAAK,iBAAiB,MAAM;AACtC,KAAK,KAAK,KAAK,iBAAiB,MAAM;AACtC,KAAK,KAAK,MAAM,kBAAkB,MAAM;AACxC,KAAK,KAAK,YAAY,wBAAwB,MAAM;AACpD,KAAK,KAAK,OAAO,mBAAmB,MAAM;AAC1C,KAAK,KAAK,eAAe,2BAA2B,MAAM;AAC1D,KAAK,KAAK,OAAO,mBAAmB,MAAM;AAC1C,KAAK,KAAK,YAAY,wBAAwB,MAAM;AACpD,KAAK,KAAK,cAAc,0BAA0B,MAAM;AACxD,KAAK,KAAK,YAAY,wBAAwB,MAAM;AACpD,KAAK,KAAK,eAAe,2BAA2B,MAAM;AAC1D,KAAK,KAAK,cAAc,0BAA0B,MAAM;AACxD,KAAK,KAAK,YAAY,wBAAwB,MAAM;AACpD,KAAK,KAAK,WAAW,uBAAuB,MAAM;AAClD,KAAK,KAAK,WAAW,uBAAuB,MAAM;AAClD,KAAK,KAAK,WAAW,uBAAuB,MAAM;AAClD,KAAK,KAAK,WAAW,uBAAuB,MAAM;AAClD,KAAK,KAAK,UAAU,sBAAsB,MAAM;AAChD,KAAK,KAAK,QAAQ,oBAAoB,MAAM;AAC5C,KAAK,KAAK,QAAQ,oBAAoB,MAAM;AAC5C,KAAK,KAAK,QAAQ,oBAAoB,MAAM;AAC5C,KAAK,SAAS,IAAI,GAAG,KAAK,CAAC;AAC3B,KAAK,CAAC,MAAM;AACZ;AACA;AACA,IAAI,KAAK,SAAS,oBAAoB,CAAC,KAAK,QAAQ,mBAAmB,CAAC,KAAK,MAAM,kBAAkB,OAAO,EAAE,CAAC,CAAC,CAAC;AACjH,KAAK,KAAK,KAAK,iBAAiB,MAAM;AACtC,KAAK,KAAK,OAAO,mBAAmB,MAAM;AAC1C,KAAK,KAAK,OAAO,mBAAmB,MAAM;AAC1C,KAAK,KAAK,OAAO,mBAAmB,MAAM;AAC1C,KAAK,KAAK,OAAO,mBAAmB,MAAM;AAC1C,KAAK,KAAK,SAAS,qBAAqB,MAAM;AAC9C,KAAK,KAAK,UAAU,sBAAsB,MAAM;AAChD,KAAK,KAAK,WAAW,uBAAuB,MAAM;AAClD,KAAK,KAAK,aAAa,yBAAyB,MAAM;AACtD,KAAK,KAAK,eAAe,2BAA2B,MAAM;AAC1D;AACA,KAAK,KAAK,QAAQ,mBAAmB;AACrC,KAAK,KAAK,SAAS,oBAAoB;AACvC,KAAK,KAAK,aAAa,wBAAwB;AAC/C,KAAK,KAAK,UAAU,qBAAqB;AACzC,KAAK,KAAK,KAAK,gBAAgB;AAC/B,KAAK,KAAK,WAAW,sBAAsB;AAC3C,KAAK,KAAK,SAAS,qBAAqB,MAAM;AAC9C;AACA,KAAK,KAAK,KAAK,iBAAiB,MAAM;AACtC,KAAK,SAAS,IAAI,GAAG,KAAK,CAAC;AAC3B,KAAK,CAAC,MAAM;AACZ;AACA;AACA,IAAI,KAAK,WAAW,uBAAuB,MAAM;AACjD;AACA,IAAI,SAAS,IAAI,GAAG,KAAK,CAAC,CAAC,MAAM;AACjC,IAAI;AACJ,GAAG,GAAG,IAAI,EAAE,MAAM;AAClB;AACA,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE,MAAM;AACrC,GAAG,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,oBAAoB,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC5F,GAAG,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,iCAAiC,0BAA0B,EAAE;AAC3F,IAAI,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE,MAAM;AACvC,SAAS,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,GAAG,EAAE,iBAAiB,CAAC,SAAS,EAAE,OAAO,EAAE,EAAE,EAAE,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;AAC9F,SAAS,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,CAAC,KAAK,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE;AACrD,IAAI,MAAM;AACV,IAAI;AACJ,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,MAAM,oBAAoB,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC3E,EAAE;AACF,CAAC,IAAI,GAAG,IAAI,EAAE,SAAS,CAAC;AACxB,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,GAAG,CAAC,MAAM,GAAG,MAAM,CAAC;AAC7D,CAAC,GAAG,CAAC,UAAU,GAAG,UAAU,CAAC;AAC7B,CAAC,GAAG,CAAC,QAAQ,GAAG,QAAQ,CAAC;AACzB,CAAC,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,SAAS,CAAC,CAAC;AAC1B,CAAC,GAAG,CAAC,KAAK,GAAG,KAAK,CAAC;AACnB,CAAC,GAAG,CAAC,SAAS,GAAG,SAAS,CAAC;AAC3B,CAAC,GAAG,CAAC,QAAQ,GAAG,MAAM,CAAC;AACvB,CAAC,OAAO,GAAG,CAAC;AACZ,CAAC;AACD;AACA,SAAS,UAAU,CAAC,IAAI,sBAAsB,IAAI,eAAe;AACjE,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;AAC9B,CAAC,OAAO,IAAI,CAAC,IAAI,EAAE,QAAQ;AAC3B,EAAE,KAAK,QAAQ,EAAE,OAAO,cAAc,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,CAAC;AAClE,EAAE,KAAK,QAAQ,CAAC,CAAC,KAAK,QAAQ,CAAC,CAAC,KAAK,MAAM,EAAE,OAAO,cAAc,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;AAC/E,EAAE,KAAK,OAAO,EAAE,OAAO,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,CAAC;AACvD,EAAE;AACF;AACA,CAAC;AACD;AACA;AACA,SAAS,gBAAgB,CAAC,EAAE,eAAe,IAAI,aAAa;AAC5D,CAAC,IAAI,CAAC,qBAAqB,EAAE,CAAC;AAC9B;AACA,CAAC,GAAG,EAAE,CAAC,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,mBAAmB,CAAC,EAAE,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC;AAC1D;AACA,CAAC,GAAG,EAAE,CAAC,SAAS,EAAE,CAAC,CAAC,IAAI,CAAC,oBAAoB,CAAC,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,SAAe,CAAC,CAAC,CAAC;AAC7E,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AACnB,CAAC;AACD;AACA,SAAS,aAAa,CAAC,EAAE,yBAAyB;AAClD;AACA;AACA,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,QAAQ,EAAE,OAAO,2FAA2F,CAAC;AACvJ,CAAC,OAAO,EAAE,CAAC;AACX,CAAC;AACD;AACA,SAAS,cAAc,CAAC,EAAE,EAAE,IAAI,aAAa;AAC7C;AACA,CAAC,IAAI,MAAM,qBAAqB,CAAC,iEAAiE,CAAC,CAAC;AACpG,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,EAAE,EAAE;AACvC,EAAE,IAAI,OAAO,qBAAqB,EAAE,CAAC;AACrC,EAAE,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,cAAc,EAAE,IAAI,EAAE,CAAC,WAAW,EAAE,SAAS,CAAC,SAAS,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAClG;AACA,EAAE,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,GAAG,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,aAAa;AACtD,EAAE,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AACvD,EAAE,CAAC,CAAC;AACJ,CAAC,OAAO,SAAS,CAAC,QAAQ,EAAE,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;AAC7C,CAAC;AACD,SAAS,eAAe,CAAC,CAAC,EAAE,EAAE,OAAO,SAAS,CAAC,YAAY,EAAE,IAAI,EAAE,CAAC,SAAS,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,QAAQ,GAAG,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,aAAa,CAAC,GAAG,GAAG,QAAQ,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE;AAC5L,SAAS,gBAAgB,CAAC,EAAE,yBAAyB;AACrD,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC;AAC9C;AACA,CAAC,IAAI,KAAK,kBAAkB,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC;AAC9C,CAAC,IAAI,GAAG,qBAAqB,EAAE,CAAC;AAChC,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE;AACvC,EAAE,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;AACnB,EAAE,GAAG,CAAC,CAAC,KAAK,IAAI,IAAI,EAAE,SAAS;AAC/B,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE,SAAS;AACxC,EAAE,GAAG,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC;AAC/B,EAAE;AACF,CAAC,OAAO,SAAS,CAAC,OAAO,EAAE,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;AACzC,CAAC;AACD,SAAS,mBAAmB,CAAC,EAAE,gBAAgB,IAAI,EAAE,GAAG,aAAa,EAAE,0BAA0B;AACjG,CAAC,GAAG,CAAC,EAAE,EAAE,OAAO,EAAE,CAAC;AACnB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC;AAC9C;AACA,CAAC,IAAI,KAAK,kBAAkB,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC;AAC9C,CAAC,IAAI,GAAG,qBAAqB,EAAE,CAAC;AAChC,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE;AACvC,EAAE,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;AACnB,EAAE,GAAG,CAAC,CAAC,KAAK,IAAI,GAAG,EAAE,SAAS;AAC9B;AACA;AACA;AACA,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE,SAAS;AACxC,EAAE,GAAG,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC;AAC/B,EAAE;AACF,CAAC,OAAO,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AACrB,CAAC;AACD;AACA,SAAS,oBAAoB,CAAC,EAAE,gBAAgB,IAAI,EAAE,GAAG,aAAa,EAAE,0BAA0B;AAClG,CAAC,GAAG,CAAC,EAAE,EAAE,OAAO,EAAE,CAAC;AACnB,CAAC,IAAI,CAAC,qBAAqB,EAAE,CAAC;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,EAAE;AACpB,EAAE,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;AACxB,EAAE,GAAG,EAAE,CAAC,UAAU,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;AAClG,EAAE,GAAG,EAAE,CAAC,UAAU,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;AAClG,EAAE,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,aAAa,EAAE,IAAI,EAAE;AACxC,GAAG,UAAU,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,MAAM,IAAI,MAAM;AAC9C,GAAG,QAAQ,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,IAAI,IAAI,KAAK;AACzC,GAAG,SAAS,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,KAAK,IAAI,KAAK;AAC3C,GAAG,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,GAAG,IAAI,MAAM;AACxC,GAAG,CAAC,CAAC,CAAC;AACN,EAAE,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;AACzB,EAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,QAAQ,IAAI,EAAE,CAAC,QAAQ,CAAC,MAAM,IAAI,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE;AACxE;AACA,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,GAAG,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,MAAM,IAAI,CAAC,GAAG,aAAa,GAAG,iBAAiB,GAAG,EAAE,CAAC,CAAC,CAAC;AACjJ,OAAO;AACP;AACA,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,MAAM;AACjG,GAAG,GAAG,CAAC,IAAI,GAAG,EAAE,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;AACtC,GAAG;AACH,EAAE;AACF;AACA;AACA;AACA,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;AACtF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,EAAE;AACpB,EAAE,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,iBAAiB,EAAE,MAAM,CAAC,CAAC,CAAC;AAC9C,EAAE,GAAG,EAAE,CAAC,UAAU,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC,CAAC,CAAC;AACxE,EAAE,GAAG,EAAE,CAAC,UAAU,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,kBAAkB,EAAE,MAAM,CAAC,CAAC,CAAC;AAC5E,EAAE,GAAG,EAAE,CAAC,UAAU,CAAC,CAAC,iBAAiB,IAAI,IAAI,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,iBAAiB,EAAE,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,iBAAiB,EAAE,aAAa,CAAC,CAAC,CAAC;AACvI,OAAO,GAAG,EAAE,CAAC,UAAU,CAAC,CAAC,mBAAmB,IAAI,IAAI,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,mBAAmB,EAAE,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,iBAAiB,EAAE,eAAe,CAAC,CAAC,CAAC;AAClJ,CAAC;AACD,EAAE,EAAE,aAAa,EAAE,kBAAkB,EAAE;AACvC,EAAE,EAAE,eAAe,EAAE,eAAe,EAAE;AACtC,EAAE,EAAE,YAAY,EAAE,eAAe,EAAE;AACnC,EAAE,EAAE,eAAe,EAAE,iBAAiB,EAAE;AACxC,EAAE,EAAE,YAAY,EAAE,iBAAiB,EAAE;AACrC,EAAE,EAAE,kBAAkB,EAAE,uBAAuB,EAAE;AACjD,EAAE,EAAE,eAAe,EAAE,iBAAiB,EAAE;AACxC,EAAE,EAAE,YAAY,EAAE,iBAAiB,EAAE;AACrC,EAAE,EAAE,MAAM,EAAE,WAAW,EAAE;AACzB,EAAE,EAAE,YAAY,EAAE,aAAa,EAAE;AACjC,EAAE,EAAE,aAAa,EAAE,qBAAqB,EAAE;AAC1C,EAAE,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,EAAE,GAAG,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC;AAC5E,EAAE;AACF;AACA,CAAC,GAAG,CAAC,CAAC,MAAM,IAAI,CAAC,EAAE,OAAO,EAAE,CAAC;AAC7B,CAAC,OAAO,SAAS,CAAC,kBAAkB,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;AACpE,CAAC;AACD,SAAS,qBAAqB,CAAC,QAAQ,4BAA4B;AACnE,CAAC,OAAO,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE;AACjC;AACA,EAAE,IAAI,CAAC,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;AACjC,EAAE,IAAI,CAAC,EAAE,SAAS,CAAC,SAAS,EAAE,CAAC,EAAE,CAAC,OAAO,CAAC,iCAAiC,CAAC,CAAC,CAAC;AAC9E,EAAE,OAAO,SAAS,CAAC,SAAS,EAAE,CAAC,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACpD,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AACb,CAAC;AACD,SAAS,kBAAkB,CAAC,IAAI,EAAE,GAAG,aAAa,EAAE,EAAE,IAAI,EAAE,GAAG,aAAa,EAAE,EAAE,IAAI,YAAY;AAChG,CAAC,GAAG,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC,IAAI,SAAS,IAAI,IAAI,CAAC,CAAC,IAAI,SAAS,CAAC,EAAE,OAAO,EAAE,CAAC;AACrE;AACA,CAAC,IAAI,IAAI,GAAG,EAAE,CAAC;AACf,CAAC,GAAG,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,YAAY,CAAC,GAAG,GAAG,GAAG,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;AACzE,CAAC,GAAG,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,IAAI,GAAG,EAAE;AAClD,EAAE,IAAI,GAAG,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC;AACtD,EAAE,IAAI,CAAC,eAAe,CAAC,GAAG,MAAM,IAAI,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,GAAG,EAAE,GAAG,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,GAAG,EAAE,GAAG,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC;AACvJ,EAAE;AACF;AACA,CAAC,GAAG,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,MAAM,EAAE;AAC7B,EAAE,IAAI,CAAC,SAAS,CAAC,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;AAC7C,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC,OAAO,EAAE,IAAI,CAAC,iBAAiB,CAAC,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;AACzE,EAAE;AACF;AACA,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,EAAE;AACnB,EAAE,IAAI,IAAI,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;AAC3B,EAAE,IAAI,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,IAAI,IAAI,CAAC,MAAM,EAAE,EAAE,EAAE,EAAE;AAC3C,GAAG,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,EAAE,SAAS;AACjE,GAAG,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,gBAAgB,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACxF,GAAG,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,cAAc,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACtF,GAAG;AACH,EAAE;AACF;AACA,CAAC,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC;AACpB,CAAC,OAAO,IAAI,CAAC,CAAC;AACd,EAAE,KAAK,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,UAAU,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM;AAClD,EAAE,KAAK,GAAG,EAAE,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM;AACpD,EAAE,KAAK,GAAG,EAAE,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,GAAG,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC,MAAM;AAC3D,EAAE,KAAK,GAAG,EAAE,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM;AACjD,EAAE,KAAK,GAAG,EAAE,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,IAAI,IAAI,EAAE,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,IAAI,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM;AAC3H,EAAE,KAAK,GAAG,EAAE,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM;AAC5D,EAAE;AACF;AACA,CAAC,IAAI,EAAE,GAAG,cAAc,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;AACnD,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,GAAG,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC;AACpC,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;AAC/B,CAAC,IAAI,EAAE,IAAI,IAAI,CAAC,CAAC,IAAI,IAAI,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC;AACpC,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC,IAAI,GAAG,GAAG,EAAE,IAAI,iBAAiB,GAAG,CAAC,GAAG,IAAI,GAAG,EAAE,GAAG,SAAS,CAAC,CAAC;AAC9E;AACA,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,qBAAqB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAChE;AACA,CAAC,OAAO,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC;AACnC,CAAC;AACD,SAAS,iBAAiB,CAAC,CAAC,aAAa,GAAG,aAAa;AACzD,CAAC,IAAI,CAAC,GAAG,iBAAiB,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC;AACzC,CAAC,GAAG,GAAG,EAAE;AACT,EAAE,GAAG,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,GAAG,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AACnD,EAAE,GAAG,GAAG,CAAC,GAAG,EAAE,CAAC,IAAI,mCAAmC,GAAG,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC;AACvE,EAAE,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,IAAI,gBAAgB,CAAC;AACvC,EAAE;AACF,CAAC,OAAO,CAAC,GAAG,GAAG,CAAC;AAChB,CAAC;AACD;AACA,SAAS,mBAAmB,CAAC,EAAE,gBAAgB,IAAI,EAAE,GAAG,aAAa,EAAE,0BAA0B;AACjG,CAAC,GAAG,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,CAAC;AAC3B,CAAC,IAAI,KAAK,aAAa,iBAAiB,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;AACrD,CAAC,IAAI,IAAI,oBAAoB,EAAE,CAAC,SAAS,CAAC,IAAI,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC;AACzD,CAAC,IAAI,CAAC,qBAAqB,EAAE,CAAC;AAC9B,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC,EAAE;AACpD,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC;AACjB,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;AACpB,EAAE,IAAI,CAAC,GAAG,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAC1B,EAAE,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACnC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,UAAU,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;AAC1C,EAAE,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,WAAW,CAAC,CAAC,GAAG,CAAC;AAClC,EAAE,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;AACrC,EAAE,CAAC,CAAC;AACJ,CAAC,IAAI,KAAK,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC;AACjC,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE;AAC7C,EAAE,IAAI,GAAG,GAAG,CAAC,iBAAiB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;AACzD,EAAE,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE;AAC9C,GAAG,IAAI,IAAI,GAAG,KAAK,CAAC;AACpB,GAAG,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,IAAI,IAAI,CAAC,MAAM,EAAE,EAAE,EAAE,EAAE;AACxC,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,SAAS;AAClC,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,SAAS;AAClC,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,SAAS;AAClC,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,SAAS;AAClC,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC;AAC3D,IAAI,MAAM;AACV,IAAI;AACJ,GAAG,GAAG,IAAI,EAAE,SAAS;AACrB,GAAG,IAAI,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACxB,GAAG,IAAI,GAAG,GAAG,UAAU,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,EAAE,IAAI,GAAG,KAAK,GAAG,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC;AAC7F,GAAG,GAAG,CAAC,IAAI,CAAC,kBAAkB,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC;AACpE,GAAG;AACH,EAAE,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AACrB,EAAE,GAAG,GAAG,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;AAC1C,EAAE;AACF,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AACnB,CAAC;AACD,SAAS,aAAa,CAAC,GAAG,aAAa,IAAI,EAAE,EAAE,0BAA0B;AACzE,CAAC,IAAI,CAAC,qBAAqB,EAAE,CAAC;AAC9B,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;AAC5B,CAAC,IAAI,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;AACvB;AACA,CAAC,IAAI,CAAC,cAAc,EAAE,GAAG,mBAAmB,CAAC,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC;AACrE,CAAC,GAAG,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,SAAS,GAAG,CAAC,GAAG,UAAU,CAAC,CAAC;AACrD;AACA;AACA,CAAC,CAAC,GAAG,EAAE,GAAG,mBAAmB,CAAC,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC;AACtD,CAAC,GAAG,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,SAAS,GAAG,CAAC,GAAG,UAAU,CAAC,CAAC;AACrD;AACA;AACA,CAAC,CAAC,CAAC,IAAI,CAAC,oBAAoB,CAAC,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC;AACjD;AACA,CAAC,GAAG,EAAE,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,uBAAuB,GAAG,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC,aAAa,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,gEAAgE,CAAC,CAAC;AAClL;AACA,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AACnB,CAAC;AACD,SAAS,UAAU,CAAC,EAAE,EAAE,IAAI,aAAa;AACzC,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,GAAG,EAAE,CAAC;AACrB,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,GAAG,GAAG,CAAC,SAAS,CAAC,CAAC;AACrC,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE;AACZ,EAAE,QAAQ,EAAE,CAAC,CAAC,cAAc,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;AACrC;AACA,EAAE,IAAI,CAAC,MAAM,GAAG,SAAS,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC;AAClE,EAAE,IAAI,CAAC,GAAG,GAAG,EAAE,CAAC,GAAG,CAAC;AACpB,EAAE,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC;AACpB,EAAE,cAAc,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC3D,EAAE;AACF,CAAC,IAAI,CAAC,qBAAqB,EAAE,CAAC;AAC9B,CAAC,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC;AACpC,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,EAAQ,CAAC,CAAC,CAAC;AACjC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AACZ,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AACZ,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,MAAM,EAAE,EAAE,CAAC;AAC7C,EAAE,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,aAAa,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,CAAC,EAAE,CAAC,SAAS,CAAC,SAAS,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACtG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,cAAc,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;AACjC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,gBAAgB,CAAC,EAAQ,CAAC,CAAC;AACnC,CAAC,OAAO,UAAU,GAAG,SAAS,CAAC,UAAU,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE;AACvD,EAAE,OAAO,OAAO,MAAM,CAAC,EAAE;AACzB,EAAE,SAAS,KAAK,MAAM,CAAC,CAAC;AACxB,EAAE,SAAS,KAAK,MAAM,CAAC,CAAC;AACxB,EAAE,UAAU,IAAI,MAAM,CAAC,EAAE;AACzB,EAAE,UAAU,IAAI,MAAM,CAAC,EAAE;AACzB,EAAE,YAAY,EAAE,MAAM,CAAC,IAAI;AAC3B,EAAE,CAAC,CAAC;AACJ,CAAC;AACD;AACA,SAAS,aAAa,CAAC,GAAG,eAAe;AACzC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;AACZ,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,OAAO,CAAC;AACrB;AACA;AACA;AACA,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;AACV;AACA,CAAC,CAAC,CAAC,YAAY,GAAG,CAAC,CAAC,UAAU,CAAC,CAAC,EAAE,YAAY,CAAC,CAAC;AAChD,CAAC,CAAC,CAAC,mBAAmB,GAAG,iCAAiC,CAAC,CAAC,CAAC,CAAC;AAC9D;AACA,CAAC,GAAG,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC,CAAC;AAClC;AACA,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;AACpC,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,EAAE,OAAO,CAAC,CAAC;AAC/B,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,GAAG,CAAC,CAAC,UAAU,CAAC,CAAC,EAAE,YAAY,CAAC,CAAC;AACrD;AACA,CAAC,GAAG,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC,CAAC;AAClC,CAAC,CAAC,GAAG,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;AACrB,CAAC,GAAG,CAAC,KAAK,UAAU,EAAE,OAAO,CAAC,CAAC;AAC/B,CAAC,CAAC,CAAC,sBAAsB,GAAG,oCAAoC,CAAC,CAAC,CAAC,CAAC;AACpE;AACA,CAAC,CAAC,GAAG,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;AACrB,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,EAAE,OAAO,CAAC,CAAC;AAC/B,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,GAAG,CAAC,CAAC,UAAU,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC;AACjD,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,WAAW,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;AAC7D,SAAS,KAAK,CAAC,UAAU,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,aAAa,IAAI,UAAU;AACrE,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC;AAChB,CAAC,IAAI,IAAI,GAAG,EAAE,CAAC;AACf,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACrC,CAAC,GAAG,IAAI,IAAI,IAAI,CAAC,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,MAAM,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,OAAO,UAAU;AAC1E,CAAC,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,UAAU,CAAC,KAAK,MAAM,gBAAgB,CAAC,KAAK,MAAM,gBAAgB,CAAC,KAAK,MAAM,oBAAoB,CAAC,KAAK,MAAM,eAAe,CAAC,KAAK,MAAM,eAAe,CAAC,KAAK,MAAM,eAAe,CAAC,KAAK,MAAM;AAClP,EAAE,MAAM;AACR,CAAC,KAAK,MAAM;AACZ,EAAE,MAAM;AACR,CAAC;AACD,EAAE,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;AACrB,EAAE;AACF,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACd,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC;AACb,CAAC,IAAI,MAAM,GAAG,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC;AACxE,CAAC,IAAI,KAAK,GAAG,CAAC,CAAC;AACf,CAAC,MAAM,IAAI,IAAI,IAAI,IAAI,WAAW,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE;AACzD,EAAE,CAAC,GAAG,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACpC,EAAE,KAAK,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;AACrB,EAAE,GAAG,MAAM,IAAI,MAAM,oBAAoB,KAAK,IAAI,CAAC,CAAC;AACpD,OAAO,GAAG,MAAM,IAAI,MAAM,IAAI,MAAM,IAAI,MAAM,EAAE;AAChD,GAAG,KAAK,IAAI,EAAE,CAAC;AACf,GAAG;AACH,EAAE,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACnC,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACf,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAChB,EAAE,IAAI,IAAI,aAAa,CAAC,MAAM,GAAG,cAAc,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAChE,EAAE;AACF,CAAC,IAAI,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC;AACjC,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AACjB,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,EAAE,CAAC;AACzB,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE;AAChF,CAAC,GAAG,CAAC,CAAC,MAAM,GAAG,MAAM,EAAE,MAAM,eAAe,GAAG,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC,GAAG,cAAc,GAAG,CAAC,CAAC,MAAM,GAAG,KAAK,GAAG,MAAM,CAAC;AACpH,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;AAC/B,CAAC;AACD;AACA,SAAS,cAAc,CAAC,CAAC,UAAU,IAAI,gBAAgB,QAAQ,eAAe;AAC9E,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE,OAAO;AACxB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,OAAO;AAClB,CAAC,IAAI,KAAK,GAAG,CAAC,CAAC;AACf,CAAC,IAAI;AACL,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,QAAQ,IAAI,CAAC,CAAC;AACpC,EAAE,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC;AACzC,EAAE,CAAC,MAAM,CAAC,EAAE,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,EAAE;AACrC,CAAC,GAAG,CAAC,IAAI,IAAI,IAAI,CAAC,QAAQ,KAAK,KAAK,EAAE,IAAI;AAC1C,EAAE,GAAG,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE;AAC7C,OAAO,GAAG,KAAK,KAAK,CAAC,IAAI,KAAK,IAAI,SAAS,EAAE;AAC7C,GAAG,GAAG,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE;AACnB,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;AAC/C,SAAS,CAAC,CAAC,CAAC,GAAG,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACpC,IAAI;AACJ,QAAQ,CAAC,CAAC,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC/B,GAAG;AACH,OAAO,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,IAAI,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;AACvF,EAAE,CAAC,MAAM,CAAC,EAAE,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,EAAE;AACrC,CAAC,GAAG,IAAI,CAAC,SAAS,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,GAAG,IAAI,WAAW,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE;AAC7F,EAAE,IAAI,EAAE,GAAG,mBAAmB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,IAAI,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE;AACjH,EAAE;AACF,CAAC;AACD;AACA,SAAS,SAAS,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,WAAW;AAC1C,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,UAAU;AAC1C,CAAC;AACD;AACA;AACA,SAAS,cAAc,CAAC,IAAI,EAAE,OAAO,6BAA6B;AAClE,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,SAAS,CAAC;AAC9B,CAAC,IAAI,MAAM,GAAG,EAAE,CAAC;AAEjB,CAAC,IAAI,GAAG,kBAAkB,EAAE,SAAS,CAAC,CAAC,GAAG,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC;AAC3E,CAAC,IAAI,SAAS,GAAG,EAAE,CAAC;AACpB,CAAC,IAAI,KAAK,cAAc,EAAE,SAAS,CAAC;AACpC,CAAC,IAAI,YAAY,GAAG,IAAI,CAAC;AACzB,CAAC,IAAI,GAAG,YAAY,EAAE,SAAS,CAAC;AAChC,CAAC,IAAI,SAAS,GAAG,EAAE,CAAC;AACpB,CAAC,IAAI,QAAQ,GAAG,EAAE,CAAC;AACnB,CAAC,IAAI,QAAQ,EAAE,SAAS,GAAG,EAAE,EAAE,EAAE,WAAW,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC;AAC7D,CAAC,IAAI,OAAO,GAAG,EAAE,CAAC;AAClB,CAAC,IAAI,MAAM,8BAA8B,EAAE,CAAC;AAC5C,CAAC,IAAI,QAAQ,UAAU;AACvB,CAAC,IAAI,OAAO,CAAC;AACb,CAAC,IAAI,GAAG,GAAG,EAAE,CAAC;AACd,CAAC,IAAI,OAAO,uCAAuC,EAAE,CAAC;AACtD,CAAC,IAAI,QAAQ,kBAAkB,EAAE,MAAM,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,SAAS,EAAE,OAAO,GAAG,EAAE,CAAC;AAC1G,CAAC,IAAI,OAAO,GAAG,SAAS,MAAM,CAAC,GAAG,0CAA0C;AAC5E,EAAE,GAAG,GAAG,GAAG,CAAC,EAAE,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC;AACjC,EAAE,GAAG,GAAG,GAAG,EAAE,EAAE,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC;AACpD,EAAE,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC;AACrB,EAAE,CAAC;AACH,CAAC,IAAI,kBAAkB,GAAG,SAAS,GAAG,CAAC,IAAI,EAAE,IAAI,UAAU,OAAO,EAAE;AACpE,EAAE,IAAI,GAAG,GAAG,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC;AACzB,EAAE,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,WAAW,IAAI,CAAC,OAAO,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,OAAO;AACzE,EAAE,IAAI,CAAC,CAAC,IAAI,EAAE,SAAS,CAAC;AACxB,EAAE,IAAI,CAAC,CAAC,CAAC,WAAW,GAAG,GAAG,CAAC,WAAW,CAAC;AACvC,EAAE,IAAI,CAAC,CAAC;AACR,EAAE,IAAI,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC,OAAO,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE;AACvE,EAAE,IAAI,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC,OAAO,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE;AACvE,EAAE,CAAC;AACH,CAAC,IAAI,OAAO,GAAG,SAAS,OAAO,CAAC,IAAI,UAAU,IAAI,UAAU,OAAO,UAAU;AAC7E,EAAE,GAAG,UAAU,GAAG,CAAC,EAAE,OAAO;AAC5B,EAAE,GAAG,OAAO,CAAC,SAAS,IAAI,IAAI,CAAC,CAAC,IAAI,OAAO,CAAC,SAAS,EAAE,OAAO;AAC9D,EAAE,GAAG,OAAO,CAAC,UAAU,IAAI,IAAI,CAAC,EAAE,IAAI,IAAI,CAAC,EAAE,CAAC,IAAI,EAAE,kBAAkB,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;AAC5F,EAAE,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC,OAAO,IAAI,CAAC,EAAE,CAAC;AACnC,EAAE,QAAQ,GAAG,IAAI,CAAC;AAClB,EAAE,SAAS,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC;AAChC,EAAE,GAAG,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACvE,EAAE,GAAG,IAAI,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;AAC5C,EAAE,GAAG,IAAI,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;AAC5C,EAAE,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;AACpD,EAAE,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;AACpD,EAAE,GAAG,OAAO,CAAC,WAAW,IAAI,IAAI,CAAC,CAAC,EAAE;AACpC,GAAG,IAAI,IAAI,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,MAAM,CAAC,MAAM,EAAE,EAAE,GAAG,EAAE;AAChD,IAAI,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,EAAE,SAAS;AAC5E,IAAI,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,EAAE,SAAS;AAC5E,IAAI,IAAI,CAAC,CAAC,GAAG,YAAY,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC1C,IAAI,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,EAAE,OAAO,IAAI,CAAC,CAAC,CAAC;AACnF,IAAI,GAAG,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,GAAG,EAAE,GAAG,iBAAiB,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC;AAC5F,IAAI,MAAM;AACV,IAAI;AACJ,GAAG;AACH,EAAE;AACF,GAAG,GAAG,OAAO,CAAC,KAAK,EAAE;AACrB,IAAI,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;AACxD,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;AACxC,IAAI,MAAM,GAAG,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC;AAChC,GAAG;AACH,EAAE,CAAC;AACH,CAAC,IAAI,IAAI,IAAI;AACb,EAAE,GAAG,EAAE,KAAK;AACZ,EAAE,KAAK,EAAE,CAAC;AACV,EAAE,MAAM,EAAE,EAAE;AACZ,EAAE,OAAO,EAAE,OAAO;AAClB,EAAE,MAAM,EAAE,MAAM;AAChB,EAAE,OAAO,EAAE,EAAE;AACb,EAAE,QAAQ,EAAE,EAAE;AACd,EAAE,IAAI,EAAE,CAAC;AACT,EAAE,QAAQ,EAAE,CAAC;AACb,EAAE,SAAS,EAAE,CAAC;AACd,EAAE,UAAU,EAAE,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,OAAO,CAAC,UAAU;AAC/C,EAAE,GAAG,EAAE,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,OAAO,CAAC,GAAG;AACjC,EAAE,SAAS,CAAC;AACZ,CAAC,GAAG,OAAO,CAAC,QAAQ,EAAE,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;AACvD,CAAC,IAAI,MAAM,CAAC;AACZ,CAAC,IAAI,MAAM,oBAAoB,EAAE,CAAC;AAClC,CAAC,IAAI,OAAO,GAAG,EAAE,CAAC;AAClB,CAAC,IAAI,OAAO,sBAAsB,EAAE,EAAE,OAAO,sBAAsB,EAAE,CAAC;AACtE,CAAC,IAAI,OAAO,GAAG,KAAK,CAAC;AACrB,CAAC,IAAI,QAAQ,IAAI,EAAE,SAAS,CAAC;AAC7B,CAAC,QAAQ,CAAC,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC;AACnC,CAAC,QAAQ,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;AACjC,CAAC,QAAQ,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;AAC/B,CAAC,QAAQ,CAAC,KAAK,GAAG,EAAE,CAAC;AACrB,CAAC,QAAQ,CAAC,GAAG,GAAG,EAAE,CAAC;AACnB,CAAC,IAAI,OAAO,GAAG,CAAC,CAAC;AACjB,CAAC,IAAI,UAAU,GAAG,CAAC,CAAC;AACpB,CAAC,IAAI,QAAQ,GAAG,CAAC,EAAE,aAAa,qBAAqB,EAAE,CAAC;AACxD,CAAC,IAAI,eAAe,GAAG,EAAE,CAAC;AAC1B,CAAC,IAAI,QAAQ,kBAAkB;AAC/B;AACA;AACA,CAAC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;AACtB,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;AACd,CAAC,IAAI,aAAa,GAAG,KAAK,CAAC;AAC3B,CAAC,MAAM,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE;AACjC,EAAE,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;AACjB,EAAE,IAAI,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;AACtC,EAAE,GAAG,UAAU,KAAK,CAAC,IAAI,OAAO,KAAK,MAAM,YAAY,MAAM;AAC7D,EAAE,IAAI,MAAM,IAAI,IAAI,CAAC,CAAC,KAAK,IAAI,CAAC,MAAM,GAAG,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;AACjE,EAAE,IAAI,CAAC,GAAG,aAAa,CAAC,UAAU,CAAC,CAAC;AACpC,EAAE,GAAG,UAAU,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,YAAY,MAAM;AACpG;AACA;AACA,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE;AACf,GAAG,GAAG,OAAO,CAAC,UAAU,EAAE;AAC1B,IAAI,GAAG,OAAO,KAAK,MAAM,sBAAsB,UAAU,KAAK,MAAM,8BAA8B,MAAM;AACxG,IAAI;AACJ,GAAG,OAAO,GAAG,UAAU,CAAC;AACxB,GAAG,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE;AAC9B,IAAI,IAAI,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC;AAC7C,IAAI,GAAG,CAAC,IAAI,CAAC,GAAG,IAAI,EAAE,KAAK,UAAU,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,GAAG,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,MAAM,UAAU,EAAE,MAAM,IAAI,KAAK,CAAC,eAAe,GAAG,EAAE,GAAG,IAAI,GAAG,UAAU,CAAC,CAAC;AAC5I,IAAI,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;AACjB,KAAK,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,IAAI,EAAE,CAAC;AAChC,KAAK;AACL,IAAI;AACJ;AACA,GAAG,IAAI,GAAG,YAAY,EAAE,SAAS,CAAC;AAClC,GAAG,GAAG,UAAU,KAAK,MAAM,YAAY,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,aAAa;AACxF,QAAQ,GAAG,UAAU,KAAK,CAAC,UAAU,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,aAAa;AAC1E;AACA,GAAG,GAAG,UAAU,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,YAAY,SAAS;AACtG,GAAG,OAAO,UAAU;AACpB,IAAI,KAAK,MAAM;AACf;AACA,KAAK,EAAE,CAAC,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC,OAAO,CAAC,QAAQ,GAAG,GAAG,CAAC,CAAC,MAAM;AAC/D,IAAI,KAAK,MAAM,qBAAqB,EAAE,CAAC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,CAAC,MAAM;AACvE,IAAI,KAAK,MAAM;AACf,KAAK,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;AAC9B,KAAK,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;AACpB,KAAK,GAAG,CAAC,OAAO,CAAC,QAAQ,EAAE,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAC;AACzE,KAAK,GAAG,GAAG,CAAC,KAAK,IAAI,IAAI,EAAE,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAC;AAC5E,KAAK,GAAG,CAAC,GAAG,CAAC,KAAK,EAAE,MAAM,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAC;AAC7D,KAAK,MAAM;AACX,IAAI,KAAK,MAAM,oBAAoB,IAAI,CAAC,QAAQ,GAAG,GAAG,CAAC,CAAC,MAAM;AAC9D,IAAI,KAAK,MAAM;AACf,KAAK,IAAI,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;AAC7B;AACA,KAAK,OAAO,KAAK;AACjB,MAAM,KAAK,MAAM,EAAE,KAAK,IAAI,IAAI,CAAC,CAAC,MAAM;AACxC,MAAM,KAAK,MAAM,EAAE,KAAK,GAAG,KAAK,CAAC,CAAC,MAAM;AACxC,MAAM,KAAK,MAAM,EAAE,KAAK,IAAI,IAAI,CAAC,CAAC,MAAM;AACxC,MAAM;AACN,KAAK,MAAM,CAAC,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC,CAAC;AACnC,KAAK,aAAa,GAAG,IAAI,CAAC;AAC1B,KAAK,MAAM;AACX,IAAI,KAAK,MAAM,gBAAgB,IAAI,CAAC,OAAO,GAAG,GAAG,CAAC,CAAC,MAAM;AACzD,IAAI,KAAK,MAAM,mBAAmB,IAAI,CAAC,SAAS,GAAG,GAAG,CAAC,CAAC,MAAM;AAC9D,IAAI,KAAK,MAAM,mBAAmB,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,GAAG,CAAC,CAAC,MAAM;AACrE,IAAI,KAAK,MAAM,kBAAkB,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,GAAG,CAAC,CAAC,MAAM;AACnE,IAAI,KAAK,MAAM,kBAAkB,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,GAAG,CAAC,CAAC,MAAM;AACnE,IAAI,KAAK,MAAM,iBAAiB,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,GAAG,CAAC,CAAC,MAAM;AACjE,IAAI,KAAK,MAAM,iBAAiB,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,GAAG,CAAC,CAAC,MAAM;AACjE,IAAI,KAAK,MAAM,sBAAsB,EAAE,CAAC,IAAI,CAAC,eAAe,CAAC,GAAG,GAAG,CAAC,CAAC,MAAM;AAC3E,IAAI,KAAK,MAAM,uBAAuB,EAAE,CAAC,IAAI,CAAC,gBAAgB,CAAC,GAAG,GAAG,CAAC,CAAC,MAAM;AAC7E,IAAI,KAAK,MAAM,oBAAoB,IAAI,CAAC,WAAW,GAAG,GAAG,CAAC,CAAC,MAAM;AACjE,IAAI,KAAK,MAAM,6BAA6B,EAAE,CAAC,IAAI,CAAC,QAAQ,GAAG,GAAG,CAAC,CAAC,MAAM;AAC1E,IAAI,KAAK,MAAM;AACf,KAAK,GAAG,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC,OAAO,CAAC,GAAG,QAAQ,CAAC;AAC7C,KAAK,GAAG,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC,KAAK,GAAG,CAAC,UAAU,CAAC,GAAG,EAAE,CAAC,EAAE,KAAK,GAAG,IAAI,CAAC;AAC9E,KAAK,GAAG,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC,KAAK,GAAG,CAAC,UAAU,CAAC,GAAG,EAAE,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC;AAC7E,KAAK,MAAM;AACX,IAAI,KAAK,MAAM;AACf,KAAK,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM;AAC1B,IAAI,KAAK,MAAM;AACf,KAAK,QAAQ,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;AAC1B,KAAK,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,EAAE,CAAC;AAC1C,KAAK,MAAM;AACX,IAAI,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM;AAC5B,KAAK,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC3C,KAAK,MAAM;AACX,IAAI,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM;AAC5B,KAAK,QAAQ,IAAI;AACjB,MAAM,IAAI,EAAE,GAAG,CAAC,IAAI;AACpB,MAAM,GAAG,EAAE,iBAAiB,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;AAC/D,MAAM,iBAAiB,CAAC;AACxB,KAAK,GAAG,GAAG,CAAC,IAAI,GAAG,CAAC,EAAE,QAAQ,CAAC,KAAK,GAAG,GAAG,CAAC,IAAI,GAAG,CAAC,CAAC;AACpD,KAAK,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AACnC,KAAK,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE;AACjE,KAAK,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC3C,KAAK,GAAG,GAAG,CAAC,IAAI,IAAI,uBAAuB,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC;AAC3D,MAAM,GAAG,GAAG,CAAC,IAAI,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,WAAW;AACtF,OAAO,eAAe,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;AACnF,KAAK,MAAM;AACX,IAAI,KAAK,MAAM,oBAAoB,IAAI,CAAC,WAAW,GAAG,GAAG,CAAC,CAAC,MAAM;AACjE,IAAI,KAAK,MAAM;AACf,KAAK,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE;AACzE,KAAK,QAAQ,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,QAAQ,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,GAAG,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM;AACvI,IAAI,KAAK,MAAM;AACf;AACA,KAAK,GAAG,IAAI,CAAC,IAAI,GAAG,CAAC,EAAE,MAAM;AAC7B,KAAK,GAAG,QAAQ,IAAI,IAAI,EAAE,QAAQ,CAAC,OAAO,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;AACpD,KAAK,MAAM;AACX,IAAI,KAAK,MAAM,gBAAgB,GAAG,CAAC,UAAU,CAAC,GAAG,GAAG,CAAC,CAAC,MAAM;AAC5D,IAAI,KAAK,MAAM,iBAAiB,GAAG,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,EAAE,OAAO,CAAC,KAAK,CAAC,qBAAqB,GAAG,GAAG,CAAC,CAAC,CAAC,MAAM;AAC5G,IAAI,KAAK,MAAM,oBAAoB;AACnC,KAAK,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC;AAC9B,KAAK,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AAChC,KAAK,CAAC,MAAM;AACZ,IAAI,KAAK,MAAM,YAAY;AAC3B,KAAK,GAAG,EAAE,UAAU,EAAE,MAAM;AAC5B,KAAK,GAAG,KAAK,CAAC,CAAC,EAAE;AACjB,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE;AACzC,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;AAChC,OAAO,GAAG,CAAC,MAAM,CAAC,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC;AACzC,OAAO,GAAG,OAAO,CAAC,SAAS,IAAI,OAAO,CAAC,SAAS,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE;AAC/D,QAAQ,IAAI,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;AAC9B,QAAQ,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,SAAS,GAAG,CAAC,CAAC;AAC1C,QAAQ,GAAG,CAAC,UAAU,CAAC,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC;AACtC,QAAQ,GAAG,CAAC,MAAM,CAAC,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC;AAC1C,QAAQ,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC;AAC1B,QAAQ;AACR,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;AAChC,OAAO;AACP,MAAM,GAAG,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,GAAG,CAAC,SAAS,CAAC,GAAG,MAAM,CAAC;AACpD,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,GAAG,CAAC,UAAU,CAAC,GAAG,OAAO,CAAC;AACvD,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,GAAG,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC;AACpD,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,GAAG,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC;AACpD,MAAM,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AACpC,MAAM;AACN,KAAK,GAAG,SAAS,KAAK,EAAE,EAAE,QAAQ,GAAG,GAAG,CAAC,MAAM,MAAM,CAAC,SAAS,CAAC,GAAG,GAAG,CAAC;AACvE,KAAK,GAAG,IAAI,EAAE,SAAS,CAAC,CAAC,GAAG,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC;AAC7D,KAAK,CAAC,MAAM;AACZ,IAAI,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,YAAY;AAClE,KAAK,GAAG,IAAI,CAAC,IAAI,KAAK,CAAC,EAAE,IAAI,CAAC,IAAI,GAAG;AACrC,aAAa,MAAM,QAAQ,CAAC;AAC5B,aAAa,MAAM,QAAQ,CAAC;AAC5B,aAAa,MAAM,QAAQ,CAAC;AAC5B,MAAM,CAAC,UAAU,CAAC,IAAI;AACtB,aAAa,MAAM,QAAQ,CAAC;AAC5B,aAAa,MAAM,QAAQ,CAAC;AAC5B,aAAa,MAAM,QAAQ,CAAC;AAC5B,aAAa,MAAM,QAAQ,CAAC;AAC5B,aAAa,MAAM,QAAQ,CAAC;AAC5B,aAAa,MAAM,QAAQ,CAAC;AAC5B,aAAa,MAAM,QAAQ,CAAC;AAC5B,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;AACzB,KAAK,IAAI,CAAC,SAAS,GAAG,GAAG,CAAC,OAAO,IAAI,CAAC,CAAC;AACvC,KAAK,GAAG,GAAG,CAAC,OAAO,IAAI,CAAC,IAAI,GAAG,CAAC,EAAE,IAAI,MAAM,EAAE,EAAE,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,aAAa,GAAG,IAAI,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC,CAAC,EAAE;AACrH,KAAK,GAAG,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,GAAG,CAAC,OAAO,IAAI,CAAC,IAAI,GAAG,CAAC,EAAE,IAAI,EAAE,EAAE,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC;AAC1E,KAAK,GAAG,UAAU,EAAE,EAAE,MAAM;AAC5B,KAAK,GAAG,IAAI,EAAE,SAAS,CAAC,CAAC,GAAG,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC;AAC7D;AACA,KAAK,GAAG,IAAI,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC,aAAa,EAAE,EAAE,aAAa,GAAG,IAAI,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,IAAI,IAAI,CAAC,CAAC,EAAE;AACpH;AACA,KAAK,GAAG,IAAI,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,OAAO,IAAI,CAAC,IAAI,GAAG,CAAC,EAAE,IAAI,MAAM,EAAE;AAC/D,MAAM,GAAG,SAAS,KAAK,EAAE,EAAE,SAAS,GAAG,QAAQ,CAAC;AAChD,MAAM,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACxC;AACA,MAAM,IAAI,OAAO,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,GAAG,MAAM,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;AAC3D,MAAM,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC;AACvC,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;AAClC,MAAM;AACN,UAAU,SAAS,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC;AACvD,KAAK,GAAG,GAAG,CAAC,EAAE,IAAI,IAAI,EAAE,GAAG,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC;AAC/C,KAAK,GAAG,GAAG,CAAC,EAAE,IAAI,IAAI,EAAE,GAAG,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC;AAC/C,KAAK,MAAM,GAAG,EAAE,CAAC;AACjB,KAAK,OAAO,GAAG,EAAE,CAAC;AAClB,KAAK,IAAI,CAAC,MAAM,GAAG,MAAM,GAAG,EAAE,CAAC;AAC/B,KAAK,OAAO,GAAG,EAAE,CAAC,CAAC,OAAO,GAAG,EAAE,CAAC;AAChC,KAAK,OAAO,GAAG,KAAK,CAAC;AACrB,KAAK,OAAO,GAAG,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC;AACnE,KAAK,CAAC,MAAM;AACZ,IAAI,KAAK,MAAM,cAAc,CAAC,KAAK,MAAM,gBAAgB,CAAC,KAAK,MAAM,iBAAiB;AACtF,KAAK,GAAG,GAAG,CAAC,OAAO,CAAC,IAAI,OAAO,EAAE,GAAG,OAAO,CAAC,KAAK,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,CAAC;AAC1I,KAAK,QAAQ,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,EAAE,EAAE,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC;AACpF,KAAK,GAAG,QAAQ,GAAG,CAAC,EAAE,QAAQ,CAAC,CAAC,GAAG,aAAa,CAAC,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,IAAI,IAAI,CAAC,CAAC;AAC5E,KAAK,cAAc,CAAC,QAAQ,EAAE,OAAO,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AACzD,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;AACpD,KAAK,CAAC,MAAM;AACZ,IAAI,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,gBAAgB;AAC5C,KAAK,QAAQ,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,EAAE,EAAE,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC;AAClF,KAAK,GAAG,QAAQ,GAAG,CAAC,EAAE,QAAQ,CAAC,CAAC,GAAG,aAAa,CAAC,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,IAAI,IAAI,CAAC,CAAC;AAC5E,KAAK,cAAc,CAAC,QAAQ,EAAE,OAAO,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AACzD,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;AACpD,KAAK,CAAC,MAAM;AACZ,IAAI,KAAK,MAAM,WAAW;AAC1B,KAAK,QAAQ,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,EAAE,EAAE,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC;AAClF,KAAK,GAAG,QAAQ,GAAG,CAAC,EAAE,QAAQ,CAAC,CAAC,GAAG,aAAa,CAAC,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,IAAI,IAAI,CAAC,CAAC;AAC5E,KAAK,cAAc,CAAC,QAAQ,EAAE,OAAO,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AACzD,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;AACpD,KAAK,CAAC,MAAM;AACZ,IAAI,KAAK,MAAM,cAAc;AAC7B,KAAK,IAAI,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC,EAAE,CAAC,IAAI,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE;AACzC,MAAM,IAAI,IAAI,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACvC,MAAM,QAAQ,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC;AACpF,MAAM,GAAG,QAAQ,GAAG,CAAC,EAAE,QAAQ,CAAC,CAAC,GAAG,aAAa,CAAC,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,IAAI,IAAI,CAAC,CAAC;AAC7E,MAAM,cAAc,CAAC,QAAQ,EAAE,OAAO,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AAC1D,MAAM,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;AACjD,MAAM;AACN,KAAK,CAAC,MAAM;AACZ,IAAI,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,gBAAgB;AACzD,KAAK,GAAG,GAAG,CAAC,GAAG,IAAI,QAAQ,EAAE,EAAE,YAAY,GAAG,GAAG,CAAC,CAAC,MAAM,EAAE;AAC3D,KAAK,QAAQ,GAAG,SAAS,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC;AAC1D,KAAK,QAAQ,CAAC,EAAE,GAAG,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AACtC,KAAK,GAAG,OAAO,CAAC,WAAW,EAAE;AAC7B,MAAM,IAAI,EAAE,GAAG,GAAG,CAAC,OAAO,CAAC;AAC3B,MAAM,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,QAAQ,EAAE;AAC7D,OAAO,IAAI,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACtD,OAAO,IAAI,GAAG,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;AAC7C,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,EAAE,QAAQ,CAAC,CAAC,GAAG,EAAE,CAAC,iBAAiB,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;AACrG,YAAY,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,KAAK,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,GAAG,CAAC,EAAE,GAAG,CAAC,GAAG,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;AAC5F,OAAO,MAAM,QAAQ,CAAC,CAAC,GAAG,EAAE,CAAC,iBAAiB,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;AAC1F,MAAM;AACN,KAAK,GAAG,QAAQ,GAAG,CAAC,EAAE,QAAQ,CAAC,CAAC,GAAG,aAAa,CAAC,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,IAAI,IAAI,CAAC,CAAC;AAC5E,KAAK,cAAc,CAAC,QAAQ,EAAE,OAAO,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AACzD,KAAK,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;AAC1C,KAAK,YAAY,GAAG,GAAG,CAAC;AACxB,KAAK,CAAC,MAAM;AACZ,IAAI,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,eAAe;AAC3C,KAAK,GAAG,YAAY,EAAE;AACtB,MAAM,YAAY,CAAC,GAAG,GAAG,GAAG,CAAC;AAC7B,MAAM,QAAQ,GAAG,SAAS,CAAC,GAAG,EAAE,YAAY,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;AAC7D,MAAM,QAAQ,CAAC,EAAE,GAAG,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AACvC,MAAM,GAAG,OAAO,CAAC,WAAW,EAAE;AAC9B,OAAO,QAAQ,CAAC,CAAC,GAAG,EAAE,CAAC,iBAAiB,CAAC,YAAY,CAAC,OAAO,EAAE,KAAK,EAAE,YAAY,CAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC;AACzG,OAAO;AACP,MAAM,GAAG,QAAQ,GAAG,CAAC,EAAE,QAAQ,CAAC,CAAC,GAAG,aAAa,CAAC,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,IAAI,IAAI,CAAC,CAAC;AAC7E,MAAM,cAAc,CAAC,QAAQ,EAAE,OAAO,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AAC1D,MAAM,OAAO,CAAC,YAAY,CAAC,IAAI,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;AACpD,MAAM,YAAY,GAAG,IAAI,CAAC;AAC1B,MAAM,MAAM,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAC;AAC7D,KAAK,CAAC,MAAM;AACZ,IAAI,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,cAAc;AAC1C,KAAK,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACtB,KAAK,IAAI,WAAW,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC7C,KAAK,EAAE,GAAG,OAAO,CAAC,KAAK,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,WAAW,CAAC,CAAC;AACxF,KAAK,GAAG,OAAO,CAAC,WAAW,IAAI,EAAE,EAAE;AACnC,MAAM,GAAG,CAAC,YAAY,EAAE,MAAM;AAC9B,MAAM,GAAG,CAAC,WAAW,IAAI,CAAC,EAAE,EAAE,MAAM;AACpC,MAAM,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC;AACzE,MAAM,EAAE,CAAC,CAAC,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AAClC,MAAM;AACN,KAAK,CAAC,MAAM;AACZ,IAAI,KAAK,MAAM,gBAAgB;AAC/B,KAAK,GAAG,CAAC,OAAO,CAAC,WAAW,EAAE,MAAM;AACpC,KAAK,GAAG,SAAS,EAAE;AACnB;AACA,MAAM,GAAG,CAAC,YAAY,EAAE,MAAM;AAC9B,MAAM,OAAO,CAAC,WAAW,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;AACtD,MAAM,EAAE,GAAG,OAAO,CAAC,KAAK,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,WAAW,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC;AAC9H,MAAM,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC;AACjF,MAAM;AACN,KAAK,CAAC,MAAM;AACZ,IAAI,KAAK,MAAM;AACf,KAAK,QAAQ,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;AACxD,KAAK,GAAG,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACtD,KAAK,QAAQ,CAAC,EAAE,GAAG,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AACtC,KAAK,GAAG,QAAQ,GAAG,CAAC,EAAE,QAAQ,CAAC,CAAC,GAAG,aAAa,CAAC,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,IAAI,IAAI,CAAC,CAAC;AAC5E,KAAK,cAAc,CAAC,QAAQ,EAAE,OAAO,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AACzD,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;AACpD,KAAK,MAAM;AACX,IAAI,KAAK,MAAM,cAAc,GAAG,OAAO,CAAC,UAAU,EAAE;AACpD,KAAK,QAAQ,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,EAAE,EAAE,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC;AACrE,KAAK,GAAG,QAAQ,GAAG,CAAC,EAAE,QAAQ,CAAC,CAAC,GAAG,aAAa,CAAC,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,IAAI,IAAI,CAAC,CAAC;AAC5E,KAAK,cAAc,CAAC,QAAQ,EAAE,OAAO,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AACzD,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;AACpD,KAAK,CAAC,MAAM;AACZ,IAAI,KAAK,MAAM,iBAAiB,GAAG,OAAO,CAAC,UAAU,EAAE;AACvD,KAAK,IAAI,IAAI,EAAE,GAAG,GAAG,CAAC,CAAC,EAAE,EAAE,IAAI,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE;AAC5C,MAAM,IAAI,KAAK,GAAG,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AACrC,MAAM,QAAQ,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC;AAC7D,MAAM,GAAG,QAAQ,GAAG,CAAC,EAAE,QAAQ,CAAC,CAAC,GAAG,aAAa,CAAC,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,IAAI,IAAI,CAAC,CAAC;AAC7E,MAAM,cAAc,CAAC,QAAQ,EAAE,OAAO,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AAC1D,MAAM,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;AAClD,MAAM;AACN,KAAK,CAAC,MAAM;AACZ,IAAI,KAAK,MAAM,eAAe;AAC9B,IAAI,KAAK,MAAM,aAAa,CAAC,KAAK,MAAM;AACxC,KAAK,QAAQ,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;AAChD,KAAK,QAAQ,CAAC,EAAE,GAAG,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AACtC,KAAK,GAAG,QAAQ,GAAG,CAAC,EAAE,QAAQ,CAAC,CAAC,GAAG,aAAa,CAAC,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,IAAI,IAAI,CAAC,CAAC;AAC5E,KAAK,cAAc,CAAC,QAAQ,EAAE,OAAO,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AACzD,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;AACpD,KAAK,MAAM;AACX;AACA,IAAI,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,mBAAmB;AAC/C,KAAK,GAAG,UAAU,KAAK,CAAC,EAAE,KAAK,GAAG,GAAG,CAAC;AACtC,KAAK,CAAC,MAAM;AACZ,IAAI,KAAK,MAAM,YAAY;AAC3B,KAAK,GAAG,GAAG,GAAG,CAAC;AACf,KAAK,CAAC,MAAM;AACZ,IAAI,KAAK,MAAM,eAAe;AAC9B,KAAK,GAAG,IAAI,CAAC,IAAI,IAAI,CAAC,EAAE;AACxB,MAAM,aAAa,CAAC,QAAQ,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;AACzC,MAAM,IAAI,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,QAAQ,GAAG,GAAG,EAAE,EAAE,KAAK,EAAE,GAAG,SAAS,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,EAAE,MAAM;AAC/F,MAAM,GAAG,KAAK,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,QAAQ,GAAG,GAAG,CAAC,CAAC;AACzD,MAAM;AACN,UAAU,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AACpC,KAAK,CAAC,MAAM;AACZ,IAAI,KAAK,MAAM,oBAAoB;AACnC,KAAK,aAAa,CAAC,QAAQ,EAAE,CAAC,GAAG,GAAG,CAAC;AACrC,KAAK,IAAI,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,QAAQ,GAAG,GAAG,EAAE,EAAE,KAAK,EAAE,GAAG,SAAS,CAAC,KAAK,CAAC,IAAI,GAAG,EAAE,MAAM;AAC3F,KAAK,GAAG,KAAK,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,EAAE,QAAQ,GAAG,GAAG,CAAC,CAAC;AACrD,KAAK,CAAC,MAAM;AACZ;AACA,IAAI,KAAK,MAAM,mBAAmB,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM;AACrE;AACA,IAAI,KAAK,MAAM,YAAY,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,OAAO,GAAG,GAAG,CAAC,CAAC,MAAM;AAC3E,IAAI,KAAK,MAAM,YAAY,IAAI,CAAC,OAAO,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC,MAAM;AACzD,IAAI,KAAK,MAAM,eAAe,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC,MAAM;AAC/D;AACA,IAAI,KAAK,MAAM,cAAc;AAC7B,KAAK,IAAI,IAAI,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,IAAI;AACtD,MAAM,IAAI,IAAI,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE;AACzD,OAAO,EAAE,GAAG,OAAO,CAAC,KAAK,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,IAAI,CAAC,GAAG,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAC/F,OAAO,GAAG,EAAE,EAAE,EAAE,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;AAC5B,OAAO;AACP,KAAK,CAAC,MAAM;AACZ,IAAI,KAAK,MAAM,qBAAqB;AACpC,KAAK,IAAI,IAAI,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,IAAI;AACtD,MAAM,IAAI,IAAI,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE;AACzD,OAAO,EAAE,GAAG,OAAO,CAAC,KAAK,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,IAAI,CAAC,GAAG,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAC/F,OAAO,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;AAC5C,QAAQ;AACR,KAAK,CAAC,MAAM;AACZ,IAAI,KAAK,MAAM,aAAa;AAC5B,KAAK,GAAG,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,IAAI,CAAC,EAAE,MAAM;AAChD,KAAK,EAAE,GAAG,OAAO,CAAC,KAAK,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC5F,KAAK,IAAI,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AACnC,KAAK,GAAG,CAAC,EAAE,EAAE;AACb,MAAM,GAAG,OAAO,CAAC,KAAK,EAAE;AACxB,OAAO,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;AAC/D,OAAO,EAAE,GAAG,GAAG,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC;AACjE,OAAO,MAAM;AACb,OAAO,EAAE,GAAG,GAAG,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC;AACzD,OAAO;AACP,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAChD,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAChD,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAChD,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAChD,MAAM;AACN,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC;AACzB,KAAK,IAAI,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AACvC,KAAK,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACrB,KAAK,CAAC,MAAM;AACZ,IAAI,KAAK,MAAM,cAAc,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM;AACzE,IAAI,KAAK,MAAM,gBAAgB;AAC/B,KAAK,GAAG,CAAC,IAAI,CAAC,UAAU,EAAE,MAAM;AAChC,KAAK,MAAM,GAAG,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,EAAE;AAC3B,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,GAAG,GAAG,CAAC,KAAK,IAAI,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,GAAG,CAAC,KAAK,GAAG,CAAC,CAAC,EAAE,CAAC;AAClG,MAAM,GAAG,CAAC,OAAO,EAAE,EAAE,OAAO,GAAG,IAAI,CAAC,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE;AAChE,MAAM,WAAW,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACpC,MAAM;AACN,KAAK,CAAC,MAAM;AACZ,IAAI,KAAK,MAAM,YAAY;AAC3B,KAAK,IAAI,MAAM,GAAG,EAAE,CAAC;AACrB,KAAK,GAAG,GAAG,CAAC,KAAK,IAAI,IAAI,EAAE,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,MAAM,CAAC,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,EAAE;AACjF,KAAK,GAAG,GAAG,CAAC,MAAM,EAAE,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC,EAAE;AACtE,KAAK,GAAG,GAAG,CAAC,GAAG,EAAE;AACjB,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC;AAC9B,MAAM,MAAM,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,GAAG,GAAG,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AACxD,MAAM;AACN,KAAK,CAAC,MAAM;AACZ,IAAI,KAAK,MAAM,kBAAkB;AACjC,IAAI,KAAK,MAAM,mBAAmB;AAClC,IAAI,KAAK,MAAM,iBAAiB;AAChC,IAAI,KAAK,MAAM;AACf,KAAK,GAAG,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,eAAe,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,EAAE,CAAC,CAAC;AAChE,KAAK,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,QAAQ,CAAC,EAAE,UAAU,CAAC,CAAC,GAAG,GAAG,CAAC;AAClG,KAAK,MAAM;AACX,IAAI,KAAK,MAAM;AACf,KAAK,GAAG,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,eAAe,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,EAAE,CAAC,CAAC;AAChE,KAAK,GAAG,CAAC,UAAU,CAAC,CAAC,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC;AACzC,KAAK,GAAG,CAAC,UAAU,CAAC,CAAC,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC;AACzC,KAAK,MAAM;AACX,IAAI,KAAK,MAAM;AACf;AACA,KAAK,GAAG,GAAG,CAAC,GAAG,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,IAAI,CAAC;AAC9C,KAAK,MAAM;AACX,IAAI,KAAK,MAAM,gBAAgB,OAAO,GAAG,GAAG,CAAC,CAAC,MAAM;AACpD,IAAI,KAAK,MAAM,cAAc,MAAM,GAAG,GAAG,CAAC,CAAC,MAAM;AACjD,IAAI,KAAK,MAAM,gBAAgB,OAAO,GAAG,GAAG,CAAC,CAAC,MAAM;AACpD,IAAI,KAAK,MAAM,iBAAiB;AAChC;AACA,KAAK,GAAG,CAAC,SAAS,EAAE,QAAQ,CAAC,OAAO,CAAC,QAAQ,GAAG,GAAG,IAAI,cAAc,CAAC;AACtE,UAAU,OAAO,CAAC,QAAQ,GAAG,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;AACjD,KAAK,CAAC,MAAM;AACZ,IAAI;AACJ,GAAG,MAAM;AACT,GAAG,GAAG,CAAC,CAAC,EAAE,OAAO,CAAC,KAAK,CAAC,gCAAgC,GAAG,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC;AACpF,GAAG,IAAI,CAAC,CAAC,IAAI,MAAM,CAAC;AACpB,GAAG;AACH,EAAE;AACF,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,OAAO,MAAM,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACjI,CAAC,GAAG,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC;AAC1C,CAAC,GAAG,CAAC,EAAE,CAAC,UAAU,CAAC,MAAM,IAAI,QAAQ,CAAC,MAAM,CAAC,EAAE;AAC/C,EAAE,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AAC/B;AACA,EAAE,GAAG,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,QAAQ,CAAC;AAC/C;AACA,EAAE,MAAM,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC;AAC7B,CAAC,GAAG,EAAE,CAAC,MAAM,EAAE,eAAe,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC;AAC1G,CAAC,EAAE,CAAC,OAAO,GAAG,GAAG,CAAC;AAClB,CAAC,EAAE,CAAC,GAAG,GAAG,GAAG,CAAC,SAAS,CAAC,CAAC;AACzB,CAAC,GAAG,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC;AACvC,CAAC,GAAG,MAAM,EAAE,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC;AAC/B,CAAC,EAAE,CAAC,QAAQ,GAAG,EAAE,CAAC;AAClB,CAAC,GAAG,OAAO,KAAK,SAAS,EAAE,EAAE,CAAC,QAAQ,CAAC,OAAO,GAAG,OAAO,CAAC;AACzD,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,QAAQ,CAAC,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC;AAC/D,CAAC,EAAE,CAAC,QAAQ,GAAG,QAAQ,CAAC;AACxB,CAAC,OAAO,EAAE,CAAC;AACX,CAAC;AACD;AACA;AACA,IAAI,OAAO,GAAG;AACd,CAAC,EAAE,EAAE,kCAAkC;AACvC,CAAC,GAAG,EAAE,kCAAkC;AACxC,CAAC,GAAG,EAAE,kCAAkC;AACxC,CAAC,CAAC;AACF,SAAS,eAAe,CAAC,GAAG,mBAAmB,KAAK,EAAE,CAAC,EAAE;AACzD;AACA,CAAC,IAAI,GAAG,GAAG,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,8BAA8B,CAAC,CAAC;AACzD,CAAC,GAAG,GAAG,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,EAAE,IAAI;AAC7B,EAAE,IAAI,UAAU,GAAG,uBAAuB,CAAC,GAAG,EAAE,gBAAgB,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC;AAC/E,EAAE,IAAI,IAAI,CAAC,IAAI,UAAU,EAAE,KAAK,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;AACpD,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,YAAY;AAC3C;AACA;AACA,CAAC,IAAI,EAAE,GAAG,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,sBAAsB,CAAC,CAAC;AAChD,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,IAAI,GAAG,CAAC,EAAE,IAAI;AAC3B,EAAE,IAAI,OAAO,GAAG,uBAAuB,CAAC,EAAE,EAAE,YAAY,EAAE,OAAO,CAAC,EAAE,CAAC,CAAC;AACtE,EAAE,IAAI,IAAI,CAAC,IAAI,OAAO,EAAE,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;AACnE,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,YAAY;AAC3C;AACA,CAAC,GAAG,KAAK,CAAC,YAAY,IAAI,KAAK,CAAC,aAAa,EAAE;AAC/C,EAAE,gBAAgB,CAAC,KAAK,CAAC,YAAY,EAAE,KAAK,CAAC,aAAa,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;AACtE,EAAE,OAAO,KAAK,CAAC,YAAY,CAAC,CAAC,OAAO,KAAK,CAAC,aAAa,CAAC;AACxD,EAAE;AACF,CAAC;AACD,SAAS,eAAe,CAAC,EAAE,eAAe,GAAG,mBAAmB;AAChE,CAAC,IAAI,SAAS,GAAG,EAAE,EAAE,QAAQ,GAAG,EAAE,EAAE,QAAQ,GAAG,EAAE,CAAC;AAClD,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC;AACjB,CAAC,IAAI,YAAY,6BAA6B,SAAS,CAAC,gBAAgB,EAAE,GAAG,CAAC,CAAC;AAC/E,CAAC,IAAI,SAAS,6BAA6B,SAAS,CAAC,YAAY,EAAE,GAAG,CAAC,CAAC;AACxE,CAAC,GAAG,EAAE,CAAC,KAAK,EAAE;AACd,EAAE,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC;AACxB;AACA,EAAE,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE,CAAC,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,QAAQ,GAAG,QAAQ,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACjO,EAAE;AACF,CAAC,GAAG,EAAE,CAAC,SAAS,EAAE;AAClB,EAAE,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC;AAC5B;AACA,EAAE,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,EAAE,EAAE,CAAC,KAAK,EAAE,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,QAAQ,GAAG,QAAQ,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACxS,EAAE;AACF,CAAC,IAAI,SAAS,GAAG,EAAE,CAAC;AACpB,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE;AACtC,EAAE,GAAG,SAAS,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,gBAAgB,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,SAAS;AACvG,EAAE,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE,SAAS;AACtC,EAAE,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;AAC9B,EAAE;AACF,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE,2BAA2B,EAAE,uBAAuB,CAAC,QAAQ,EAAE,OAAO,CAAC,EAAE,EAAE,SAAS,EAAE,YAAY,CAAC,CAAC,CAAC;AACjJ,CAAC,GAAG,SAAS,CAAC,MAAM,IAAI,SAAS,CAAC,MAAM,EAAE,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE,mCAAmC,EAAE,uBAAuB,CAAC,SAAS,EAAE,OAAO,CAAC,GAAG,EAAE,YAAY,EAAE,gBAAgB,EAAE,SAAS,CAAC,MAAM,GAAG,SAAS,GAAG,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC;AACzO,CAAC;AACD;AACA,SAAS,YAAY,CAAC,GAAG,UAAU,OAAO,8BAA8B;AACxE,GAAG,CAAC,OAAO,EAAE,OAAO,GAAG,EAAE,CAAC;AAC1B,aAAa,CAAC,OAAO,CAAC,CAAC;AACvB,QAAQ,EAAE,CAAC;AACX,GAAG,OAAO,CAAC,QAAQ,EAAE,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;AAChD,IAAI,OAAO,gBAAgB,EAAE,UAAU;AACvC,GAAG,GAAG,CAAC,SAAS,EAAE;AAClB,CAAC,GAAG,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,aAAa,CAAC,EAAE,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAC;AAChF,CAAC,OAAO,GAAG,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC;AACrC,CAAC,EAAE,GAAG,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,WAAW,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;AAC3D,CAAC,MAAM;AACP,CAAC,OAAO,OAAO,CAAC,IAAI;AACpB,EAAE,KAAK,QAAQ,EAAE,GAAG,GAAG,GAAG,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM;AACtD,EAAE,KAAK,QAAQ,EAAE,GAAG,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM;AACvC,EAAE,KAAK,QAAQ,EAAE,MAAM;AACvB,EAAE,KAAK,OAAO,EAAE,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,GAAG,GAAG,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM;AACrF,EAAE;AACF,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;AACnB,CAAC,EAAE,IAAI,CAAC,OAAO,EAAE,GAAG,CAAC,SAAS,CAAC;AAC/B,CAAC;AACD,oBAAoB,SAAS,2CAA2C;AACxE;AACA,IAAI,KAAK,UAAU;AACnB,GAAG,OAAO,mBAAmB,aAAa,CAAC,OAAO,CAAC,CAAC;AACpD,GAAG,OAAO,CAAC,SAAS,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,SAAS,IAAI,EAAE,SAAS,CAAC;AACtE,4CAA4C;AAC5C,CAAC,IAAI,CAAC,GAAG,OAAO,GAAG,QAAQ,GAAG,OAAO,CAAC;AACtC,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,OAAO,EAAE,SAAS,GAAG,cAAc,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;AACtE;AACA,MAAM,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,oBAAoB,CAAC,KAAK,KAAK,CAAC,OAAO,EAAE,SAAS,GAAG,GAAG,CAAC,WAAW,CAAC,KAAK,CAAC,OAAO,GAAG,OAAO,CAAC,IAAI,GAAG,CAAC,EAAE,OAAO,EAAE,CAAC;AAC/I;AACA,MAAM,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,oBAAoB,CAAC,KAAK,KAAK,CAAC,OAAO,EAAE,SAAS,GAAG,GAAG,CAAC,WAAW,CAAC,KAAK,CAAC,OAAO,GAAG,OAAO,CAAC,IAAI,GAAG,CAAC,EAAE,OAAO,EAAE,CAAC;AAC/I;AACA,MAAM,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,KAAK,KAAK,CAAC,OAAO,EAAE,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAC;AAC5G,MAAM,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC;AACrD,CAAC,GAAG,OAAO,CAAC,OAAO,IAAI,GAAG,CAAC,SAAS,IAAI,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,2BAA2B,CAAC,EAAE,SAAS,CAAC,MAAM,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC;AACzH,CAAC;AACD;AACA,IAAI,KAAK,GAAG,EAAE,CAAC;AACf,GAAG,GAAG,CAAC,SAAS,EAAE,eAAe,SAAS,GAAG,4BAA4B,KAAK,EAAE,OAAO,CAAC,CAAC;AACzF;AACA,SAAS,CAAC,KAAK,GAAG,SAAS,CAAC,SAAS,GAAG,KAAK,CAAC;AAC9C,GAAG,OAAO,CAAC,SAAS,EAAE,SAAS,CAAC,GAAG,GAAG,GAAG,CAAC;AAC1C;AACA,OAAO,SAAS,CAAC;AACjB,CAAC;AACD;AACA;AACA,SAAS,YAAY,CAAC,EAAE,eAAe,IAAI,iCAAiC;AAC5E,CAAC,IAAI,CAAC,GAAG,IAAI,IAAI,EAAE,CAAC;AACpB,CAAC,IAAI,GAAG,GAAG,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AACzC,CAAC,IAAI,MAAM,GAAG,WAAW,CAAC;AAC1B,CAAC,OAAO,CAAC,CAAC,QAAQ,IAAI,KAAK;AAC3B,EAAE,KAAK,KAAK,EAAE,CAAC,CAAC,QAAQ,GAAG,OAAO,CAAC;AACnC;AACA,EAAE,KAAK,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,QAAQ,GAAG,KAAK,CAAC;AACjD;AACA,EAAE,KAAK,OAAO,EAAE,MAAM,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,MAAM;AACxD,EAAE,KAAK,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,MAAM;AACpD,EAAE,SAAS,MAAM,IAAI,KAAK,CAAC,eAAe,GAAG,CAAC,CAAC,QAAQ,GAAG,cAAc,CAAC,CAAC;AAC1E,EAAE;AACF,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,cAAc,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;AACvD,CAAC,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC,KAAK,IAAI,EAAE,CAAC,SAAS,CAAC,EAAE,eAAe,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;AACxE;AACA,CAAC,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC,MAAM,EAAE,YAAY,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,CAAC,MAAM,IAAI,QAAQ,GAAG,QAAQ,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;AACjI,CAAC,OAAO,GAAG,CAAC;AACZ,CAAC;AACD;AACA,IAAI,cAAc,GAAG;AACrB,QAAQ,MAAM,SAAS,uBAAuB,CAAC,CAAC,eAAe,EAAE;AACjE,QAAQ,MAAM,SAAS,0BAA0B,CAAC,CAAC,kBAAkB,EAAE;AACvE,QAAQ,MAAM,SAAS,uBAAuB,CAAC,CAAC,eAAe,EAAE;AACjE,QAAQ,MAAM,SAAS,0BAA0B,CAAC,CAAC,kBAAkB,EAAE;AACvE,QAAQ,MAAM,SAAS,yBAAyB,CAAC,CAAC,iBAAiB,EAAE;AACrE,QAAQ,MAAM,SAAS,yBAAyB,CAAC,CAAC,iBAAiB,EAAE;AACrE,QAAQ,MAAM,SAAS,uBAAuB,CAAC,CAAC,eAAe,EAAE;AACjE,QAAQ,MAAM,SAAS,yBAAyB,CAAC,CAAC,iBAAiB,EAAE;AACrE,QAAQ,MAAM,SAAS,2BAA2B,CAAC,CAAC,mBAAmB,EAAE;AACzE,QAAQ,MAAM,SAAS,wBAAwB,CAAC,CAAC,gBAAgB,EAAE;AACnE,QAAQ,MAAM,SAAS,yBAAyB,CAAC,CAAC,iBAAiB,EAAE;AACrE,QAAQ,MAAM,SAAS,0BAA0B,CAAC,CAAC,kBAAkB,EAAE;AACvE,QAAQ,MAAM,SAAS,2BAA2B,CAAC,CAAC,mBAAmB,EAAE;AACzE,QAAQ,MAAM,SAAS,wBAAwB,CAAC,CAAC,gBAAgB,EAAE;AACnE,QAAQ,MAAM,SAAS,2BAA2B,CAAC,CAAC,mBAAmB,EAAE;AACzE,QAAQ,MAAM,SAAS,0BAA0B,CAAC,CAAC,kBAAkB,EAAE;AACvE,QAAQ,MAAM,SAAS,0BAA0B,CAAC,CAAC,kBAAkB,EAAE;AACvE,QAAQ,MAAM,SAAS,wBAAwB,CAAC,CAAC,gBAAgB,EAAE;AACnE,QAAQ,MAAM,SAAS,0BAA0B,CAAC,CAAC,kBAAkB,EAAE;AACvE,QAAQ,MAAM,SAAS,wBAAwB,CAAC,CAAC,aAAa,EAAE;AAChE,QAAQ,MAAM,SAAS,4BAA4B;AACnD,QAAQ,MAAM,SAAS,2BAA2B;AAClD,QAAQ,MAAM,SAAS,4BAA4B;AACnD,QAAQ,MAAM,SAAS,0BAA0B;AACjD,QAAQ,MAAM,SAAS,2BAA2B;AAClD,QAAQ,MAAM,SAAS,6BAA6B;AACpD,QAAQ,MAAM,SAAS,0BAA0B;AACjD,QAAQ,MAAM,SAAS,6BAA6B;AACpD,QAAQ,MAAM,SAAS,4BAA4B;AACnD,QAAQ,MAAM,SAAS,6BAA6B;AACpD,QAAQ,MAAM,SAAS,2BAA2B;AAClD,QAAQ,MAAM,SAAS,4BAA4B;AACnD,QAAQ,MAAM,SAAS,8BAA8B;AACrD,QAAQ,MAAM,SAAS,0BAA0B;AACjD,QAAQ,MAAM,SAAS,4BAA4B;AACnD,QAAQ,MAAM,SAAS,yBAAyB,CAAC,CAAC,CAAC,EAAE;AACrD,QAAQ,MAAM,SAAS,uBAAuB,CAAC,CAAC,CAAC,CAAC,EAAE;AACpD,QAAQ,MAAM,SAAS,wBAAwB,CAAC,CAAC,CAAC,EAAE;AACpD,QAAQ,MAAM,SAAS,sBAAsB,CAAC,CAAC,CAAC,CAAC,EAAE;AACnD,QAAQ,MAAM,SAAS,qBAAqB,CAAC,CAAC,aAAa,EAAE;AAC7D,QAAQ,MAAM,SAAS,8BAA8B;AACrD,QAAQ,MAAM,SAAS,2BAA2B;AAClD,QAAQ,MAAM,SAAS,qBAAqB,CAAC,CAAC,aAAa,EAAE;AAC7D,QAAQ,MAAM,SAAS,oBAAoB,CAAC,CAAC,YAAY,EAAE;AAC3D,QAAQ,MAAM,SAAS,qBAAqB,CAAC,CAAC,aAAa,EAAE;AAC7D,QAAQ,MAAM,SAAS,uBAAuB,CAAC,CAAC,eAAe,EAAE;AACjE,QAAQ,MAAM,SAAS,mBAAmB,CAAC,CAAC,WAAW,EAAE;AACzD,QAAQ,MAAM,SAAS,sBAAsB;AAC7C,QAAQ,MAAM,SAAS,yBAAyB,CAAC,CAAC,aAAa,EAAE;AACjE,QAAQ,MAAM,SAAS,0BAA0B;AACjD,QAAQ,MAAM,SAAS,mBAAmB,CAAC,CAAC,YAAY,EAAE;AAC1D,QAAQ,MAAM,SAAS,yBAAyB,CAAC,CAAC,CAAC,EAAE;AACrD,QAAQ,MAAM,SAAS,uBAAuB,CAAC,CAAC,CAAC,CAAC,EAAE;AACpD,QAAQ,MAAM,SAAS,yBAAyB,CAAC,CAAC,CAAC,EAAE;AACrD,QAAQ,MAAM,SAAS,uBAAuB,CAAC,CAAC,CAAC,CAAC,EAAE;AACpD,QAAQ,MAAM,SAAS,8BAA8B,CAAC,CAAC,CAAC,EAAE;AAC1D,QAAQ,MAAM,SAAS,4BAA4B,CAAC,CAAC,CAAC,CAAC,EAAE;AACzD,QAAQ,MAAM,SAAS,2BAA2B;AAClD,QAAQ,MAAM,SAAS,oBAAoB;AAC3C,QAAQ,MAAM,SAAS,wBAAwB,CAAC,CAAC,aAAa,EAAE;AAChE,QAAQ,MAAM,SAAS,4BAA4B,CAAC,CAAC,oBAAoB,EAAE;AAC3E,QAAQ,MAAM,SAAS,+BAA+B,CAAC,CAAC,uBAAuB,EAAE;AACjF,QAAQ,MAAM,SAAS,qBAAqB,CAAC,CAAC,aAAa,EAAE;AAC7D,QAAQ,MAAM,SAAS,2BAA2B;AAClD,QAAQ,MAAM,SAAS,2BAA2B;AAClD,QAAQ,MAAM,SAAS,4BAA4B;AACnD,QAAQ,MAAM,SAAS,2BAA2B;AAClD,QAAQ,MAAM,SAAS,4BAA4B;AACnD,QAAQ,MAAM,SAAS,2BAA2B;AAClD,QAAQ,MAAM,SAAS,4BAA4B;AACnD,QAAQ,MAAM,SAAS,2BAA2B,CAAC,CAAC,CAAC,EAAE;AACvD,QAAQ,MAAM,SAAS,yBAAyB,CAAC,CAAC,CAAC,CAAC,EAAE;AACtD,QAAQ,MAAM,SAAS,0BAA0B,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE;AACxE,QAAQ,MAAM,SAAS,wBAAwB,CAAC,CAAC,CAAC,CAAC,EAAE;AACrD,QAAQ,MAAM,SAAS,6BAA6B,CAAC,CAAC,CAAC,EAAE;AACzD,QAAQ,MAAM,SAAS,2BAA2B,CAAC,CAAC,CAAC,CAAC,EAAE;AACxD,QAAQ,MAAM,SAAS,+BAA+B,CAAC,CAAC,CAAC,EAAE;AAC3D,QAAQ,MAAM,SAAS,6BAA6B,CAAC,CAAC,CAAC,CAAC,EAAE;AAC1D,QAAQ,MAAM,SAAS,4BAA4B,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,oBAAoB,EAAE;AAChF,QAAQ,MAAM,SAAS,0BAA0B,CAAC,CAAC,CAAC,CAAC,EAAE;AACvD,QAAQ,MAAM,SAAS,6BAA6B,CAAC,CAAC,CAAC,EAAE;AACzD,QAAQ,MAAM,SAAS,2BAA2B,CAAC,CAAC,CAAC,CAAC,EAAE;AACxD,QAAQ,MAAM,SAAS,4BAA4B,CAAC,CAAC,CAAC,EAAE;AACxD,QAAQ,MAAM,SAAS,0BAA0B,CAAC,CAAC,CAAC,CAAC,EAAE;AACvD,QAAQ,MAAM,SAAS,+BAA+B,CAAC,CAAC,CAAC,EAAE;AAC3D,QAAQ,MAAM,SAAS,6BAA6B,CAAC,CAAC,CAAC,CAAC,EAAE;AAC1D,QAAQ,MAAM,SAAS,+BAA+B,CAAC,CAAC,CAAC,EAAE;AAC3D,QAAQ,MAAM,SAAS,6BAA6B,CAAC,CAAC,CAAC,CAAC,EAAE;AAC1D,QAAQ,MAAM,SAAS,uBAAuB,CAAC,CAAC,eAAe,EAAE;AACjE,QAAQ,MAAM,SAAS,sBAAsB,CAAC,CAAC,cAAc,EAAE,CAAC,CAAC,EAAE,EAAE;AACrE,QAAQ,MAAM,SAAS,qBAAqB,CAAC,CAAC,aAAa,EAAE;AAC7D,QAAQ,MAAM,SAAS,oBAAoB;AAC3C,QAAQ,MAAM,SAAS,uBAAuB,CAAC,CAAC,eAAe,EAAE;AACjE,QAAQ,MAAM,SAAS,0BAA0B;AACjD,QAAQ,MAAM,SAAS,4BAA4B;AACnD,QAAQ,MAAM,SAAS,yBAAyB,CAAC,CAAC,iBAAiB,EAAE;AACrE,QAAQ,MAAM,SAAS,yBAAyB;AAChD,QAAQ,MAAM,SAAS,yBAAyB;AAChD,QAAQ,MAAM,SAAS,yBAAyB,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,iBAAiB,EAAE;AAC1E,QAAQ,MAAM,SAAS,uBAAuB,CAAC,CAAC,CAAC,CAAC,EAAE;AACpD,QAAQ,MAAM,SAAS,6BAA6B,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,kBAAkB,EAAE;AAC/E,QAAQ,MAAM,SAAS,2BAA2B,CAAC,CAAC,CAAC,CAAC,EAAE;AACxD,QAAQ,MAAM,SAAS,kCAAkC,CAAC,CAAC,CAAC,EAAE;AAC9D,QAAQ,MAAM,SAAS,gCAAgC,CAAC,CAAC,CAAC,CAAC,EAAE;AAC7D,QAAQ,MAAM,SAAS,6BAA6B,CAAC,CAAC,CAAC,EAAE;AACzD,QAAQ,MAAM,SAAS,2BAA2B,CAAC,CAAC,CAAC,CAAC,EAAE;AACxD,QAAQ,MAAM,SAAS,uBAAuB;AAC9C,QAAQ,MAAM,SAAS,4BAA4B;AACnD,QAAQ,MAAM,SAAS,2BAA2B;AAClD,QAAQ,MAAM,SAAS,4BAA4B;AACnD,QAAQ,MAAM,SAAS,8BAA8B;AACrD,QAAQ,MAAM,SAAS,mCAAmC,CAAC,CAAC,CAAC,EAAE;AAC/D,QAAQ,MAAM,SAAS,iCAAiC,CAAC,CAAC,CAAC,CAAC,EAAE;AAC9D,QAAQ,MAAM,SAAS,6BAA6B;AACpD,QAAQ,MAAM,SAAS,qCAAqC;AAC5D,QAAQ,MAAM,SAAS,0BAA0B,CAAC,CAAC,kBAAkB,EAAE;AACvE,QAAQ,MAAM,SAAS,gCAAgC,CAAC,CAAC,CAAC,EAAE;AAC5D,QAAQ,MAAM,SAAS,8BAA8B,CAAC,CAAC,CAAC,CAAC,EAAE;AAC3D,QAAQ,MAAM,SAAS,mCAAmC,CAAC,CAAC,CAAC,EAAE;AAC/D,QAAQ,MAAM,SAAS,iCAAiC,CAAC,CAAC,CAAC,CAAC,EAAE;AAC9D,QAAQ,MAAM,SAAS,+BAA+B,CAAC,CAAC,CAAC,EAAE;AAC3D,QAAQ,MAAM,SAAS,6BAA6B,CAAC,CAAC,CAAC,CAAC,EAAE;AAC1D,QAAQ,MAAM,SAAS,8BAA8B,CAAC,CAAC,CAAC,EAAE;AAC1D,QAAQ,MAAM,SAAS,4BAA4B,CAAC,CAAC,CAAC,CAAC,EAAE;AACzD,QAAQ,MAAM,SAAS,+BAA+B,CAAC,CAAC,CAAC,EAAE;AAC3D,QAAQ,MAAM,SAAS,6BAA6B,CAAC,CAAC,CAAC,CAAC,EAAE;AAC1D,QAAQ,MAAM,SAAS,+BAA+B,CAAC,CAAC,CAAC,EAAE;AAC3D,QAAQ,MAAM,SAAS,6BAA6B,CAAC,CAAC,CAAC,CAAC,EAAE;AAC1D,QAAQ,MAAM,SAAS,8BAA8B,CAAC,CAAC,CAAC,EAAE;AAC1D,QAAQ,MAAM,SAAS,4BAA4B,CAAC,CAAC,CAAC,CAAC,EAAE;AACzD,QAAQ,MAAM,SAAS,6BAA6B,CAAC,CAAC,CAAC,EAAE;AACzD,QAAQ,MAAM,SAAS,2BAA2B,CAAC,CAAC,CAAC,CAAC,EAAE;AACxD,QAAQ,MAAM,SAAS,uCAAuC,CAAC,CAAC,CAAC,EAAE;AACnE,QAAQ,MAAM,SAAS,qCAAqC,CAAC,CAAC,CAAC,CAAC,EAAE;AAClE,QAAQ,MAAM,SAAS,oCAAoC,CAAC,CAAC,CAAC,EAAE;AAChE,QAAQ,MAAM,SAAS,kCAAkC,CAAC,CAAC,CAAC,CAAC,EAAE;AAC/D,QAAQ,MAAM,SAAS,kCAAkC,CAAC,CAAC,CAAC,EAAE;AAC9D,QAAQ,MAAM,SAAS,gCAAgC,CAAC,CAAC,CAAC,CAAC,EAAE;AAC7D,QAAQ,MAAM,SAAS,qCAAqC,CAAC,CAAC,CAAC,EAAE;AACjE,QAAQ,MAAM,SAAS,mCAAmC,CAAC,CAAC,CAAC,CAAC,EAAE;AAChE,QAAQ,MAAM,SAAS,mCAAmC,CAAC,CAAC,CAAC,EAAE;AAC/D,QAAQ,MAAM,SAAS,iCAAiC,CAAC,CAAC,CAAC,CAAC,EAAE;AAC9D,QAAQ,MAAM,SAAS,+BAA+B,CAAC,CAAC,CAAC,EAAE;AAC3D,QAAQ,MAAM,SAAS,6BAA6B,CAAC,CAAC,CAAC,CAAC,EAAE;AAC1D,QAAQ,MAAM,SAAS,iCAAiC,CAAC,CAAC,CAAC,EAAE;AAC7D,QAAQ,MAAM,SAAS,+BAA+B,CAAC,CAAC,CAAC,CAAC,EAAE;AAC5D,QAAQ,MAAM,SAAS,gCAAgC,CAAC,CAAC,CAAC,EAAE;AAC5D,QAAQ,MAAM,SAAS,8BAA8B,CAAC,CAAC,CAAC,CAAC,EAAE;AAC3D,QAAQ,MAAM,SAAS,gCAAgC,CAAC,CAAC,CAAC,EAAE;AAC5D,QAAQ,MAAM,SAAS,8BAA8B,CAAC,CAAC,CAAC,CAAC,EAAE;AAC3D,QAAQ,MAAM,SAAS,+BAA+B,CAAC,CAAC,CAAC,EAAE;AAC3D,QAAQ,MAAM,SAAS,6BAA6B,CAAC,CAAC,CAAC,CAAC,EAAE;AAC1D,QAAQ,MAAM,SAAS,gCAAgC,CAAC,CAAC,CAAC,EAAE;AAC5D,QAAQ,MAAM,SAAS,8BAA8B,CAAC,CAAC,CAAC,CAAC,EAAE;AAC3D,QAAQ,MAAM,SAAS,+BAA+B,CAAC,CAAC,CAAC,EAAE;AAC3D,QAAQ,MAAM,SAAS,6BAA6B,CAAC,CAAC,CAAC,CAAC,EAAE;AAC1D,QAAQ,MAAM,SAAS,8BAA8B,CAAC,CAAC,CAAC,EAAE;AAC1D,QAAQ,MAAM,SAAS,4BAA4B,CAAC,CAAC,CAAC,CAAC,EAAE;AACzD,QAAQ,MAAM,SAAS,+BAA+B,CAAC,CAAC,CAAC,EAAE;AAC3D,QAAQ,MAAM,SAAS,6BAA6B,CAAC,CAAC,CAAC,CAAC,EAAE;AAC1D,QAAQ,MAAM,SAAS,gCAAgC,CAAC,CAAC,CAAC,EAAE;AAC5D,QAAQ,MAAM,SAAS,8BAA8B,CAAC,CAAC,CAAC,CAAC,EAAE;AAC3D,QAAQ,MAAM,SAAS,gCAAgC,CAAC,CAAC,CAAC,EAAE;AAC5D,QAAQ,MAAM,SAAS,8BAA8B,CAAC,CAAC,CAAC,CAAC,EAAE;AAC3D,QAAQ,MAAM,SAAS,mCAAmC,CAAC,CAAC,CAAC,EAAE;AAC/D,QAAQ,MAAM,SAAS,iCAAiC,CAAC,CAAC,CAAC,CAAC,EAAE;AAC9D,QAAQ,MAAM,SAAS,qCAAqC,CAAC,CAAC,CAAC,EAAE;AACjE,QAAQ,MAAM,SAAS,mCAAmC,CAAC,CAAC,CAAC,CAAC,EAAE;AAChE,QAAQ,MAAM,SAAS,oCAAoC,CAAC,CAAC,CAAC,EAAE;AAChE,QAAQ,MAAM,SAAS,kCAAkC,CAAC,CAAC,CAAC,CAAC,EAAE;AAC/D,QAAQ,MAAM,SAAS,qCAAqC,CAAC,CAAC,CAAC,EAAE;AACjE,QAAQ,MAAM,SAAS,mCAAmC,CAAC,CAAC,CAAC,CAAC,EAAE;AAChE,QAAQ,MAAM,SAAS,oCAAoC,CAAC,CAAC,CAAC,EAAE;AAChE,QAAQ,MAAM,SAAS,kCAAkC,CAAC,CAAC,CAAC,CAAC,EAAE;AAC/D,QAAQ,MAAM,SAAS,oCAAoC,CAAC,CAAC,CAAC,EAAE;AAChE,QAAQ,MAAM,SAAS,kCAAkC,CAAC,CAAC,CAAC,CAAC,EAAE;AAC/D,QAAQ,MAAM,SAAS,kCAAkC,CAAC,CAAC,CAAC,EAAE;AAC9D,QAAQ,MAAM,SAAS,gCAAgC,CAAC,CAAC,CAAC,CAAC,EAAE;AAC7D,QAAQ,MAAM,SAAS,iCAAiC,CAAC,CAAC,CAAC,EAAE;AAC7D,QAAQ,MAAM,SAAS,+BAA+B,CAAC,CAAC,CAAC,CAAC,EAAE;AAC5D,QAAQ,MAAM,SAAS,gCAAgC,CAAC,CAAC,CAAC,EAAE;AAC5D,QAAQ,MAAM,SAAS,8BAA8B,CAAC,CAAC,CAAC,CAAC,EAAE;AAC3D,QAAQ,MAAM,SAAS,kCAAkC,CAAC,CAAC,CAAC,EAAE;AAC9D,QAAQ,MAAM,SAAS,gCAAgC,CAAC,CAAC,CAAC,CAAC,EAAE;AAC7D,QAAQ,MAAM,SAAS,iCAAiC,CAAC,CAAC,CAAC,EAAE;AAC7D,QAAQ,MAAM,SAAS,+BAA+B,CAAC,CAAC,CAAC,CAAC,EAAE;AAC5D,QAAQ,MAAM,SAAS,2BAA2B,CAAC,CAAC,CAAC,EAAE;AACvD,QAAQ,MAAM,SAAS,yBAAyB,CAAC,CAAC,CAAC,CAAC,EAAE;AACtD,QAAQ,MAAM,SAAS,+BAA+B,CAAC,CAAC,CAAC,EAAE;AAC3D,QAAQ,MAAM,SAAS,6BAA6B,CAAC,CAAC,CAAC,CAAC,EAAE;AAC1D,QAAQ,MAAM,SAAS,8BAA8B,CAAC,CAAC,CAAC,EAAE;AAC1D,QAAQ,MAAM,SAAS,4BAA4B,CAAC,CAAC,CAAC,CAAC,EAAE;AACzD,QAAQ,MAAM,SAAS,4BAA4B,CAAC,CAAC,CAAC,EAAE;AACxD,QAAQ,MAAM,SAAS,0BAA0B,CAAC,CAAC,CAAC,CAAC,EAAE;AACvD,QAAQ,MAAM,SAAS,2BAA2B,CAAC,CAAC,CAAC,EAAE;AACvD,QAAQ,MAAM,SAAS,yBAAyB,CAAC,CAAC,CAAC,CAAC,EAAE;AACtD,QAAQ,MAAM,SAAS,6BAA6B,CAAC,CAAC,CAAC,EAAE;AACzD,QAAQ,MAAM,SAAS,2BAA2B,CAAC,CAAC,CAAC,CAAC,EAAE;AACxD,QAAQ,MAAM,SAAS,4BAA4B,CAAC,CAAC,CAAC,EAAE;AACxD,QAAQ,MAAM,SAAS,0BAA0B,CAAC,CAAC,CAAC,CAAC,EAAE;AACvD,QAAQ,MAAM,SAAS,gCAAgC,CAAC,CAAC,CAAC,EAAE;AAC5D,QAAQ,MAAM,SAAS,8BAA8B,CAAC,CAAC,CAAC,CAAC,EAAE;AAC3D,QAAQ,MAAM,SAAS,gCAAgC,CAAC,CAAC,CAAC,EAAE;AAC5D,QAAQ,MAAM,SAAS,8BAA8B,CAAC,CAAC,CAAC,CAAC,EAAE;AAC3D,QAAQ,MAAM,SAAS,8BAA8B,CAAC,CAAC,CAAC,EAAE;AAC1D,QAAQ,MAAM,SAAS,4BAA4B,CAAC,CAAC,CAAC,CAAC,EAAE;AACzD,QAAQ,MAAM,SAAS,6BAA6B,CAAC,CAAC,CAAC,EAAE;AACzD,QAAQ,MAAM,SAAS,2BAA2B,CAAC,CAAC,CAAC,CAAC,EAAE;AACxD,QAAQ,MAAM,SAAS,6BAA6B,CAAC,CAAC,CAAC,EAAE;AACzD,QAAQ,MAAM,SAAS,2BAA2B,CAAC,CAAC,CAAC,CAAC,EAAE;AACxD,QAAQ,MAAM,SAAS,4BAA4B,CAAC,CAAC,CAAC,EAAE;AACxD,QAAQ,MAAM,SAAS,0BAA0B,CAAC,CAAC,CAAC,CAAC,EAAE;AACvD,QAAQ,MAAM,SAAS,0BAA0B,CAAC,CAAC,CAAC,EAAE;AACtD,QAAQ,MAAM,SAAS,wBAAwB,CAAC,CAAC,CAAC,CAAC,EAAE;AACrD,QAAQ,MAAM,SAAS,yBAAyB,CAAC,CAAC,CAAC,EAAE;AACrD,QAAQ,MAAM,SAAS,uBAAuB,CAAC,CAAC,CAAC,CAAC,EAAE;AACpD,QAAQ,MAAM,SAAS,6BAA6B;AACpD,QAAQ,MAAM,SAAS,gCAAgC,CAAC,CAAC,CAAC,EAAE;AAC5D,QAAQ,MAAM,SAAS,8BAA8B,CAAC,CAAC,CAAC,CAAC,EAAE;AAC3D,QAAQ,MAAM,SAAS,4BAA4B,CAAC,CAAC,CAAC,EAAE;AACxD,QAAQ,MAAM,SAAS,wBAAwB,CAAC,CAAC,CAAC,CAAC,EAAE;AACrD,QAAQ,MAAM,SAAS,0BAA0B,CAAC,CAAC,CAAC,EAAE;AACtD,QAAQ,MAAM,SAAS,2BAA2B,CAAC,CAAC,CAAC,EAAE;AACvD,QAAQ,MAAM,SAAS,yBAAyB,CAAC,CAAC,CAAC,CAAC,EAAE;AACtD,QAAQ,MAAM,SAAS,0BAA0B,CAAC,CAAC,CAAC,EAAE;AACtD,QAAQ,MAAM,SAAS,wBAAwB,CAAC,CAAC,CAAC,CAAC,EAAE;AACrD,QAAQ,MAAM,SAAS,2BAA2B,CAAC,CAAC,CAAC,EAAE;AACvD,QAAQ,MAAM,SAAS,yBAAyB,CAAC,CAAC,CAAC,CAAC,EAAE;AACtD,QAAQ,MAAM,SAAS,0BAA0B,CAAC,CAAC,CAAC,EAAE;AACtD,QAAQ,MAAM,SAAS,wBAAwB,CAAC,CAAC,CAAC,CAAC,EAAE;AACrD,QAAQ,MAAM,SAAS,2BAA2B,CAAC,CAAC,CAAC,EAAE;AACvD,QAAQ,MAAM,SAAS,yBAAyB,CAAC,CAAC,CAAC,CAAC,EAAE;AACtD,QAAQ,MAAM,SAAS,0BAA0B,CAAC,CAAC,CAAC,EAAE;AACtD,QAAQ,MAAM,SAAS,wBAAwB,CAAC,CAAC,CAAC,CAAC,EAAE;AACrD,QAAQ,MAAM,SAAS,2BAA2B,CAAC,CAAC,CAAC,EAAE;AACvD,QAAQ,MAAM,SAAS,yBAAyB,CAAC,CAAC,CAAC,CAAC,EAAE;AACtD,QAAQ,MAAM,SAAS,0BAA0B,CAAC,CAAC,CAAC,EAAE;AACtD,QAAQ,MAAM,SAAS,wBAAwB,CAAC,CAAC,CAAC,CAAC,EAAE;AACrD,QAAQ,MAAM,SAAS,6BAA6B,CAAC,CAAC,CAAC,EAAE;AACzD,QAAQ,MAAM,SAAS,2BAA2B,CAAC,CAAC,CAAC,CAAC,EAAE;AACxD,QAAQ,MAAM,SAAS,8BAA8B,CAAC,CAAC,CAAC,EAAE;AAC1D,QAAQ,MAAM,SAAS,4BAA4B,CAAC,CAAC,CAAC,CAAC,EAAE;AACzD,QAAQ,MAAM,SAAS,8BAA8B,CAAC,CAAC,CAAC,EAAE;AAC1D,QAAQ,MAAM,SAAS,4BAA4B,CAAC,CAAC,CAAC,CAAC,EAAE;AACzD,QAAQ,MAAM,SAAS,+BAA+B,CAAC,CAAC,CAAC,EAAE;AAC3D,QAAQ,MAAM,SAAS,6BAA6B,CAAC,CAAC,CAAC,CAAC,EAAE;AAC1D,QAAQ,MAAM,SAAS,8BAA8B,CAAC,CAAC,CAAC,EAAE;AAC1D,QAAQ,MAAM,SAAS,4BAA4B,CAAC,CAAC,CAAC,CAAC,EAAE;AACzD,QAAQ,MAAM,SAAS,8BAA8B,CAAC,CAAC,CAAC,EAAE;AAC1D,QAAQ,MAAM,SAAS,4BAA4B,CAAC,CAAC,CAAC,CAAC,EAAE;AACzD,QAAQ,MAAM,SAAS,+BAA+B,CAAC,CAAC,CAAC,EAAE;AAC3D,QAAQ,MAAM,SAAS,6BAA6B,CAAC,CAAC,CAAC,CAAC,EAAE;AAC1D,QAAQ,MAAM,SAAS,8BAA8B,CAAC,CAAC,CAAC,CAAC,EAAE;AAC3D,QAAQ,MAAM,SAAS,gCAAgC,CAAC,CAAC,CAAC,EAAE;AAC5D,QAAQ,MAAM,SAAS,0BAA0B,CAAC,CAAC,CAAC,CAAC,EAAE;AACvD,QAAQ,MAAM,SAAS,2BAA2B,CAAC,CAAC,CAAC,EAAE;AACvD,QAAQ,MAAM,SAAS,yBAAyB,CAAC,CAAC,CAAC,CAAC,EAAE;AACtD,QAAQ,MAAM,SAAS,0BAA0B,CAAC,CAAC,CAAC,EAAE;AACtD,QAAQ,MAAM,SAAS,wBAAwB,CAAC,CAAC,CAAC,CAAC,EAAE;AACrD,QAAQ,MAAM,SAAS,8BAA8B,CAAC,CAAC,CAAC,EAAE;AAC1D,QAAQ,MAAM,SAAS,4BAA4B,CAAC,CAAC,CAAC,CAAC,EAAE;AACzD,QAAQ,MAAM,SAAS,+BAA+B,CAAC,CAAC,CAAC,EAAE;AAC3D,QAAQ,MAAM,SAAS,6BAA6B,CAAC,CAAC,CAAC,CAAC,EAAE;AAC1D,QAAQ,MAAM,SAAS,6BAA6B,CAAC,CAAC,CAAC,EAAE;AACzD,QAAQ,MAAM,SAAS,2BAA2B,CAAC,CAAC,CAAC,CAAC,EAAE;AACxD,QAAQ,MAAM,SAAS,4BAA4B,CAAC,CAAC,CAAC,EAAE;AACxD,QAAQ,MAAM,SAAS,0BAA0B,CAAC,CAAC,CAAC,CAAC,EAAE;AACvD,QAAQ,MAAM,SAAS,+BAA+B,CAAC,CAAC,CAAC,EAAE;AAC3D,QAAQ,MAAM,SAAS,6BAA6B,CAAC,CAAC,CAAC,CAAC,EAAE;AAC1D,QAAQ,MAAM,SAAS,8BAA8B,CAAC,CAAC,CAAC,EAAE;AAC1D,QAAQ,MAAM,SAAS,4BAA4B,CAAC,CAAC,CAAC,CAAC,EAAE;AACzD,QAAQ,MAAM,SAAS,8BAA8B,CAAC,CAAC,CAAC,EAAE;AAC1D,QAAQ,MAAM,SAAS,4BAA4B,CAAC,CAAC,CAAC,CAAC,EAAE;AACzD,QAAQ,MAAM,SAAS,+BAA+B,CAAC,CAAC,CAAC,EAAE;AAC3D,QAAQ,MAAM,SAAS,wBAAwB,CAAC,CAAC,gBAAgB,EAAE;AACnE,QAAQ,MAAM,SAAS,6BAA6B,CAAC,CAAC,CAAC,CAAC,EAAE;AAC1D,QAAQ,MAAM,SAAS,2BAA2B,CAAC,CAAC,mBAAmB,EAAE,CAAC,CAAC,CAAC,EAAE;AAC9E,QAAQ,MAAM,SAAS,yBAAyB,CAAC,CAAC,CAAC,CAAC,EAAE;AACtD,QAAQ,MAAM,SAAS,2BAA2B,CAAC,CAAC,CAAC,EAAE;AACvD,QAAQ,MAAM,SAAS,yBAAyB,CAAC,CAAC,CAAC,CAAC,EAAE;AACtD,QAAQ,MAAM,SAAS,iCAAiC,CAAC,CAAC,CAAC,EAAE;AAC7D,QAAQ,MAAM,SAAS,+BAA+B,CAAC,CAAC,CAAC,CAAC,EAAE;AAC5D,QAAQ,MAAM,SAAS,0BAA0B,CAAC,CAAC,CAAC,EAAE;AACtD,QAAQ,MAAM,SAAS,wBAAwB,CAAC,CAAC,CAAC,CAAC,EAAE;AACrD,QAAQ,MAAM,SAAS,8BAA8B,CAAC,CAAC,CAAC,EAAE;AAC1D,QAAQ,MAAM,SAAS,4BAA4B,CAAC,CAAC,CAAC,CAAC,EAAE;AACzD,QAAQ,MAAM,SAAS,6BAA6B,CAAC,CAAC,CAAC,EAAE;AACzD,QAAQ,MAAM,SAAS,2BAA2B,CAAC,CAAC,CAAC,CAAC,EAAE;AACxD,QAAQ,MAAM,SAAS,gCAAgC,CAAC,CAAC,CAAC,EAAE;AAC5D,QAAQ,MAAM,SAAS,8BAA8B,CAAC,CAAC,CAAC,CAAC,EAAE;AAC3D,QAAQ,MAAM,SAAS,2BAA2B;AAClD,QAAQ,MAAM,SAAS,2BAA2B;AAClD,QAAQ,MAAM,SAAS,+BAA+B,CAAC,CAAC,CAAC,EAAE;AAC3D,QAAQ,MAAM,SAAS,6BAA6B,CAAC,CAAC,CAAC,CAAC,EAAE;AAC1D,QAAQ,MAAM,SAAS,2BAA2B,CAAC,CAAC,WAAW,CAAC;AAChE,QAAQ,MAAM,SAAS,wBAAwB;AAC/C,QAAQ,MAAM,SAAS,wBAAwB;AAC/C,QAAQ,MAAM,SAAS,wBAAwB;AAC/C,QAAQ,MAAM,SAAS,6BAA6B,CAAC,CAAC,CAAC,EAAE;AACzD,QAAQ,MAAM,SAAS,gCAAgC;AACvD,QAAQ,MAAM,SAAS,4BAA4B,CAAC,CAAC,iBAAiB,EAAE;AACxE,QAAQ,MAAM,SAAS,iCAAiC;AACxD,QAAQ,MAAM,SAAS,+BAA+B;AACtD,QAAQ,MAAM,SAAS,6BAA6B;AACpD,QAAQ,MAAM,SAAS,gCAAgC;AACvD,QAAQ,MAAM,SAAS,+BAA+B;AACtD,QAAQ,MAAM,SAAS,+BAA+B;AACtD,QAAQ,MAAM,SAAS,gCAAgC;AACvD,QAAQ,MAAM,SAAS,iCAAiC;AACxD,QAAQ,MAAM,SAAS,2BAA2B,CAAC,CAAC,CAAC,EAAE;AACvD,QAAQ,MAAM,SAAS,yBAAyB,CAAC,CAAC,CAAC,CAAC,EAAE;AACtD,QAAQ,MAAM,SAAS,4BAA4B,CAAC,CAAC,CAAC,EAAE;AACxD,QAAQ,MAAM,SAAS,0BAA0B,CAAC,CAAC,CAAC,CAAC,EAAE;AACvD,QAAQ,MAAM,SAAS,gCAAgC,CAAC,CAAC,CAAC,EAAE;AAC5D,QAAQ,MAAM,SAAS,8BAA8B,CAAC,CAAC,CAAC,CAAC,EAAE;AAC3D,QAAQ,MAAM,SAAS,4BAA4B,CAAC,CAAC,CAAC,EAAE;AACxD,QAAQ,MAAM,SAAS,0BAA0B,CAAC,CAAC,CAAC,CAAC,EAAE;AACvD,QAAQ,MAAM,SAAS,2BAA2B,CAAC,CAAC,CAAC,EAAE;AACvD,QAAQ,MAAM,SAAS,yBAAyB,CAAC,CAAC,CAAC,CAAC,EAAE;AACtD,QAAQ,MAAM,SAAS,6BAA6B,CAAC,CAAC,CAAC,EAAE;AACzD,QAAQ,MAAM,SAAS,2BAA2B,CAAC,CAAC,CAAC,CAAC,EAAE;AACxD,QAAQ,MAAM,SAAS,mCAAmC,CAAC,CAAC,CAAC,EAAE;AAC/D,QAAQ,MAAM,SAAS,iCAAiC,CAAC,CAAC,CAAC,CAAC,EAAE;AAC9D,QAAQ,MAAM,SAAS,kCAAkC,CAAC,CAAC,CAAC,EAAE;AAC9D,QAAQ,MAAM,SAAS,gCAAgC,CAAC,CAAC,CAAC,CAAC,EAAE;AAC7D,QAAQ,MAAM,SAAS,4BAA4B,CAAC,CAAC,CAAC,EAAE;AACxD,QAAQ,MAAM,SAAS,0BAA0B,CAAC,CAAC,CAAC,CAAC,EAAE;AACvD,QAAQ,MAAM,SAAS,8BAA8B,CAAC,CAAC,CAAC,EAAE;AAC1D,QAAQ,MAAM,SAAS,4BAA4B,CAAC,CAAC,CAAC,CAAC,EAAE;AACzD,QAAQ,MAAM,SAAS,2BAA2B,CAAC,CAAC,CAAC,EAAE;AACvD,QAAQ,MAAM,SAAS,yBAAyB,CAAC,CAAC,CAAC,CAAC,EAAE;AACtD,QAAQ,MAAM,SAAS,4BAA4B,CAAC,CAAC,CAAC,EAAE;AACxD,QAAQ,MAAM,SAAS,0BAA0B,CAAC,CAAC,CAAC,CAAC,EAAE;AACvD,QAAQ,MAAM,SAAS,oBAAoB;AAC3C,QAAQ,MAAM,SAAS,6BAA6B;AACpD,QAAQ,MAAM,SAAS,qBAAqB;AAC5C,QAAQ,MAAM,SAAS,qBAAqB;AAC5C,QAAQ,MAAM,SAAS,oBAAoB;AAC3C,QAAQ,MAAM,SAAS,2BAA2B,CAAC,CAAC,CAAC,EAAE;AACvD,QAAQ,MAAM,SAAS,oBAAoB;AAC3C,QAAQ,MAAM,SAAS,oBAAoB;AAC3C,QAAQ,MAAM,SAAS,yBAAyB;AAChD,QAAQ,MAAM,SAAS,4BAA4B;AACnD,QAAQ,MAAM,SAAS,uBAAuB;AAC9C,QAAQ,MAAM,SAAS,0BAA0B;AACjD,QAAQ,MAAM,SAAS,0BAA0B;AACjD,QAAQ,MAAM,SAAS,6BAA6B;AACpD,QAAQ,MAAM,SAAS,yBAAyB;AAChD,QAAQ,MAAM,SAAS,2BAA2B;AAClD,QAAQ,MAAM,SAAS,2BAA2B;AAClD,QAAQ,MAAM,SAAS,2BAA2B;AAClD,QAAQ,MAAM,SAAS,0BAA0B;AACjD,QAAQ,MAAM,SAAS,uBAAuB;AAC9C,QAAQ,MAAM,SAAS,2BAA2B;AAClD,QAAQ,MAAM,SAAS,wBAAwB;AAC/C,QAAQ,MAAM,SAAS,yBAAyB;AAChD,QAAQ,MAAM,SAAS,4BAA4B;AACnD,QAAQ,MAAM,SAAS,0BAA0B;AACjD,QAAQ,MAAM,SAAS,iCAAiC,CAAC,CAAC,CAAC,EAAE;AAC7D,QAAQ,MAAM,SAAS,gCAAgC,CAAC,CAAC,CAAC,EAAE;AAC5D,QAAQ,MAAM,SAAS,8BAA8B,CAAC,CAAC,CAAC,CAAC,EAAE;AAC3D,QAAQ,MAAM,SAAS,+BAA+B,CAAC,CAAC,CAAC,CAAC,EAAE;AAC5D,QAAQ,MAAM,SAAS,wBAAwB,CAAC,CAAC,gBAAgB,EAAE;AACnE,QAAQ,MAAM,SAAS,wBAAwB,CAAC,CAAC,gBAAgB,EAAE;AACnE,QAAQ,MAAM,SAAS,sBAAsB;AAC7C,QAAQ,MAAM,SAAS,oCAAoC,CAAC,CAAC,CAAC,EAAE;AAChE,QAAQ,MAAM,SAAS,kCAAkC,CAAC,CAAC,CAAC,CAAC,EAAE;AAC/D,QAAQ,MAAM,SAAS,iCAAiC,CAAC,CAAC,CAAC,EAAE;AAC7D,QAAQ,MAAM,SAAS,+BAA+B,CAAC,CAAC,CAAC,CAAC,EAAE;AAC5D,QAAQ,MAAM,SAAS,gCAAgC,CAAC,CAAC,CAAC,EAAE;AAC5D,QAAQ,MAAM,SAAS,8BAA8B,CAAC,CAAC,CAAC,CAAC,EAAE;AAC3D,QAAQ,MAAM,SAAS,iCAAiC,CAAC,CAAC,CAAC,EAAE;AAC7D,QAAQ,MAAM,SAAS,+BAA+B,CAAC,CAAC,CAAC,CAAC,EAAE;AAC5D,QAAQ,MAAM,SAAS,gCAAgC,CAAC,CAAC,CAAC,EAAE;AAC5D,QAAQ,MAAM,SAAS,8BAA8B,CAAC,CAAC,CAAC,CAAC,EAAE;AAC3D,QAAQ,MAAM,SAAS,kCAAkC,CAAC,CAAC,CAAC,EAAE;AAC9D,QAAQ,MAAM,SAAS,gCAAgC,CAAC,CAAC,CAAC,CAAC,EAAE;AAC7D,QAAQ,MAAM,SAAS,iCAAiC,CAAC,CAAC,CAAC,EAAE;AAC7D,QAAQ,MAAM,SAAS,+BAA+B,CAAC,CAAC,CAAC,CAAC,EAAE;AAC5D,QAAQ,MAAM,SAAS,oCAAoC,CAAC,CAAC,CAAC,EAAE;AAChE,QAAQ,MAAM,SAAS,kCAAkC,CAAC,CAAC,CAAC,CAAC,EAAE;AAC/D,QAAQ,MAAM,SAAS,mCAAmC,CAAC,CAAC,CAAC,EAAE;AAC/D,QAAQ,MAAM,SAAS,iCAAiC,CAAC,CAAC,CAAC,CAAC,EAAE;AAC9D,QAAQ,MAAM,SAAS,yBAAyB,CAAC,CAAC,CAAC,EAAE;AACrD,QAAQ,MAAM,SAAS,uBAAuB,CAAC,CAAC,CAAC,CAAC,EAAE;AACpD,QAAQ,MAAM,SAAS,0BAA0B,CAAC,CAAC,CAAC,EAAE;AACtD,QAAQ,MAAM,SAAS,wBAAwB,CAAC,CAAC,CAAC,CAAC,EAAE;AACrD,QAAQ,MAAM,SAAS,kCAAkC,CAAC,CAAC,CAAC,EAAE;AAC9D,QAAQ,MAAM,SAAS,gCAAgC,CAAC,CAAC,CAAC,CAAC,EAAE;AAC7D,QAAQ,MAAM,SAAS,iCAAiC,CAAC,CAAC,CAAC,EAAE;AAC7D,QAAQ,MAAM,SAAS,+BAA+B,CAAC,CAAC,CAAC,CAAC,EAAE;AAC5D,QAAQ,MAAM,SAAS,2BAA2B,CAAC,CAAC,CAAC,EAAE;AACvD,QAAQ,MAAM,SAAS,yBAAyB,CAAC,CAAC,CAAC,CAAC,EAAE;AACtD,QAAQ,MAAM,SAAS,0BAA0B,CAAC,CAAC,CAAC,EAAE;AACtD,QAAQ,MAAM,SAAS,wBAAwB,CAAC,CAAC,CAAC,CAAC,EAAE;AACrD,QAAQ,MAAM,SAAS,mCAAmC,CAAC,CAAC,CAAC,EAAE;AAC/D,QAAQ,MAAM,SAAS,iCAAiC,CAAC,CAAC,CAAC,CAAC,EAAE;AAC9D,QAAQ,MAAM,SAAS,2CAA2C,CAAC,CAAC,CAAC,EAAE;AACvE,QAAQ,MAAM,SAAS,yCAAyC,CAAC,CAAC,CAAC,CAAC,EAAE;AACtE,QAAQ,MAAM,SAAS,4BAA4B,CAAC,CAAC,CAAC,EAAE;AACxD,QAAQ,MAAM,SAAS,0BAA0B,CAAC,CAAC,CAAC,CAAC,EAAE;AACvD,QAAQ,MAAM,SAAS,6BAA6B,CAAC,CAAC,CAAC,EAAE;AACzD,QAAQ,MAAM,SAAS,2BAA2B,CAAC,CAAC,CAAC,CAAC,EAAE;AACxD,QAAQ,MAAM,SAAS,6BAA6B,CAAC,CAAC,CAAC,EAAE;AACzD,QAAQ,MAAM,SAAS,2BAA2B,CAAC,CAAC,CAAC,CAAC,EAAE;AACxD,QAAQ,MAAM,SAAS,gCAAgC,CAAC,CAAC,CAAC,EAAE;AAC5D,QAAQ,MAAM,SAAS,8BAA8B,CAAC,CAAC,CAAC,CAAC,EAAE;AAC3D,QAAQ,MAAM,SAAS,qBAAqB;AAC5C,QAAQ,MAAM,SAAS,gCAAgC;AACvD,QAAQ,MAAM,SAAS,kCAAkC,CAAC,CAAC,CAAC,EAAE;AAC9D,QAAQ,MAAM,SAAS,gCAAgC,CAAC,CAAC,CAAC,CAAC,EAAE;AAC7D,QAAQ,MAAM,SAAS,6BAA6B;AACpD,QAAQ,MAAM,SAAS,wBAAwB,CAAC,CAAC,gBAAgB,EAAE;AACnE,QAAQ,MAAM,SAAS,6BAA6B;AACpD,QAAQ,MAAM,SAAS,0BAA0B;AACjD,QAAQ,MAAM,SAAS,kCAAkC,CAAC,CAAC,CAAC,EAAE;AAC9D,QAAQ,MAAM,SAAS,gCAAgC,CAAC,CAAC,CAAC,CAAC,EAAE;AAC7D,QAAQ,MAAM,SAAS,iCAAiC,CAAC,CAAC,CAAC,EAAE;AAC7D,QAAQ,MAAM,SAAS,+BAA+B,CAAC,CAAC,CAAC,CAAC,EAAE;AAC5D,QAAQ,MAAM,SAAS,kCAAkC,CAAC,CAAC,CAAC,EAAE;AAC9D,QAAQ,MAAM,SAAS,gCAAgC,CAAC,CAAC,CAAC,CAAC,EAAE;AAC7D,QAAQ,MAAM,SAAS,0BAA0B,CAAC,CAAC,kBAAkB,EAAE;AACvE,QAAQ,MAAM,SAAS,yBAAyB,CAAC,CAAC,CAAC,EAAE;AACrD,QAAQ,MAAM,SAAS,uBAAuB,CAAC,CAAC,CAAC,CAAC,EAAE;AACpD,QAAQ,MAAM,SAAS,4BAA4B,CAAC,CAAC,CAAC,EAAE;AACxD,QAAQ,MAAM,SAAS,0BAA0B,CAAC,CAAC,CAAC,CAAC,EAAE;AACvD,QAAQ,MAAM,SAAS,wBAAwB,CAAC,CAAC,CAAC,EAAE;AACpD,QAAQ,MAAM,SAAS,sBAAsB,CAAC,CAAC,CAAC,CAAC,EAAE;AACnD,QAAQ,MAAM,SAAS,yBAAyB,CAAC,CAAC,CAAC,EAAE;AACrD,QAAQ,MAAM,SAAS,uBAAuB,CAAC,CAAC,CAAC,CAAC,EAAE;AACpD,QAAQ,MAAM,SAAS,sBAAsB,CAAC,CAAC,cAAc,EAAE;AAC/D,QAAQ,MAAM,SAAS,0BAA0B,CAAC,CAAC,CAAC,EAAE;AACtD,QAAQ,MAAM,SAAS,wBAAwB,CAAC,CAAC,CAAC,CAAC,EAAE;AACrD,QAAQ,MAAM,SAAS,2BAA2B,CAAC,CAAC,CAAC,EAAE;AACvD,QAAQ,MAAM,SAAS,yBAAyB,CAAC,CAAC,CAAC,CAAC,EAAE;AACtD,QAAQ,MAAM,SAAS,qBAAqB;AAC5C,QAAQ,MAAM,SAAS,6BAA6B,CAAC,CAAC,CAAC,EAAE;AACzD,QAAQ,MAAM,SAAS,2BAA2B,CAAC,CAAC,CAAC,CAAC,EAAE;AACxD,QAAQ,MAAM,SAAS,yBAAyB,CAAC,CAAC,CAAC,EAAE;AACrD,QAAQ,MAAM,SAAS,uBAAuB,CAAC,CAAC,CAAC,CAAC,EAAE;AACpD,QAAQ,MAAM,SAAS,oBAAoB;AAC3C,QAAQ,MAAM,SAAS,0BAA0B,CAAC,CAAC,CAAC,EAAE;AACtD,QAAQ,MAAM,SAAS,wBAAwB,CAAC,CAAC,CAAC,CAAC,EAAE;AACrD,QAAQ,MAAM,SAAS,oBAAoB;AAC3C,QAAQ,MAAM,SAAS,iCAAiC,CAAC,CAAC,CAAC,EAAE;AAC7D,QAAQ,MAAM,SAAS,+BAA+B,CAAC,CAAC,CAAC,CAAC,EAAE;AAC5D,QAAQ,MAAM,SAAS,gCAAgC,CAAC,CAAC,CAAC,EAAE;AAC5D,QAAQ,MAAM,SAAS,8BAA8B,CAAC,CAAC,CAAC,CAAC,EAAE;AAC3D,QAAQ,MAAM,SAAS,kCAAkC;AACzD,QAAQ,MAAM,SAAS,iCAAiC;AACxD,QAAQ,MAAM,SAAS,6BAA6B,CAAC,CAAC,CAAC,EAAE;AACzD,QAAQ,MAAM,SAAS,2BAA2B,CAAC,CAAC,CAAC,CAAC,EAAE;AACxD,QAAQ,MAAM,SAAS,6BAA6B,CAAC,CAAC,CAAC,EAAE;AACzD,QAAQ,MAAM,SAAS,2BAA2B,CAAC,CAAC,CAAC,CAAC,EAAE;AACxD,QAAQ,MAAM,SAAS,6BAA6B,CAAC,CAAC,CAAC,EAAE;AACzD,QAAQ,MAAM,SAAS,2BAA2B,CAAC,CAAC,CAAC,CAAC,EAAE;AACxD,QAAQ,MAAM,SAAS,8BAA8B,CAAC,CAAC,CAAC,EAAE;AAC1D,QAAQ,MAAM,SAAS,4BAA4B,CAAC,CAAC,CAAC,CAAC,EAAE;AACzD,QAAQ,MAAM,SAAS,4BAA4B;AACnD,QAAQ,MAAM,SAAS,uBAAuB;AAC9C,QAAQ,MAAM,SAAS,uBAAuB;AAC9C,QAAQ,MAAM,SAAS,uBAAuB;AAC9C,QAAQ,MAAM,SAAS,uBAAuB;AAC9C,QAAQ,MAAM,SAAS,wBAAwB;AAC/C,QAAQ,MAAM,SAAS,gCAAgC,CAAC,CAAC,CAAC,EAAE;AAC5D,QAAQ,MAAM,SAAS,8BAA8B,CAAC,CAAC,CAAC,CAAC,EAAE;AAC3D,QAAQ,MAAM,SAAS,+BAA+B,CAAC,CAAC,CAAC,EAAE;AAC3D,QAAQ,MAAM,SAAS,6BAA6B,CAAC,CAAC,CAAC,CAAC,EAAE;AAC1D,QAAQ,MAAM,SAAS,8BAA8B,CAAC,CAAC,CAAC,EAAE;AAC1D,QAAQ,MAAM,SAAS,4BAA4B,CAAC,CAAC,CAAC,CAAC,EAAE;AACzD,QAAQ,MAAM,SAAS,+BAA+B;AACtD,QAAQ,MAAM,SAAS,gCAAgC;AACvD,QAAQ,MAAM,SAAS,gCAAgC;AACvD,QAAQ,MAAM,SAAS,6BAA6B;AACpD,QAAQ,MAAM,SAAS,8BAA8B,CAAC,CAAC,CAAC,EAAE;AAC1D,QAAQ,MAAM,SAAS,4BAA4B,CAAC,CAAC,CAAC,CAAC,EAAE;AACzD,QAAQ,MAAM,SAAS,oCAAoC,CAAC,CAAC,CAAC,EAAE;AAChE,QAAQ,MAAM,SAAS,kCAAkC,CAAC,CAAC,CAAC,CAAC,EAAE;AAC/D,QAAQ,MAAM,SAAS,iCAAiC,CAAC,CAAC,CAAC,EAAE;AAC7D,QAAQ,MAAM,SAAS,4BAA4B;AACnD,QAAQ,MAAM,SAAS,wBAAwB;AAC/C,QAAQ,MAAM,SAAS,wBAAwB,CAAC,CAAC,WAAW,EAAE;AAC9D,QAAQ,MAAM,SAAS,8BAA8B;AACrD,QAAQ,MAAM,SAAS,gCAAgC;AACvD,QAAQ,MAAM,SAAS,uBAAuB;AAC9C,QAAQ,MAAM,SAAS,iCAAiC,CAAC,CAAC,CAAC,EAAE;AAC7D,QAAQ,MAAM,SAAS,+BAA+B,CAAC,CAAC,CAAC,CAAC,EAAE;AAC5D,QAAQ,MAAM,SAAS,gCAAgC,CAAC,CAAC,CAAC,EAAE;AAC5D,QAAQ,MAAM,SAAS,8BAA8B,CAAC,CAAC,CAAC,CAAC,EAAE;AAC3D,QAAQ,MAAM,SAAS,+BAA+B,CAAC,CAAC,CAAC,EAAE;AAC3D,QAAQ,MAAM,SAAS,6BAA6B,CAAC,CAAC,CAAC,CAAC,EAAE;AAC1D,QAAQ,MAAM,SAAS,gCAAgC,CAAC,CAAC,CAAC,EAAE;AAC5D,QAAQ,MAAM,SAAS,8BAA8B,CAAC,CAAC,CAAC,CAAC,EAAE;AAC3D,QAAQ,MAAM,SAAS,sBAAsB;AAC7C,QAAQ,MAAM,SAAS,sBAAsB;AAC7C,QAAQ,MAAM,SAAS,mCAAmC,CAAC,CAAC,CAAC,EAAE;AAC/D,QAAQ,MAAM,SAAS,iCAAiC,CAAC,CAAC,CAAC,CAAC,EAAE;AAC9D,QAAQ,MAAM,SAAS,+BAA+B,CAAC,CAAC,CAAC,EAAE;AAC3D,QAAQ,MAAM,SAAS,6BAA6B,CAAC,CAAC,CAAC,CAAC,EAAE;AAC1D,QAAQ,MAAM,SAAS,yBAAyB;AAChD,QAAQ,MAAM,SAAS,2BAA2B,CAAC,CAAC,CAAC,EAAE;AACvD,QAAQ,MAAM,SAAS,yBAAyB,CAAC,CAAC,CAAC,CAAC,EAAE;AACtD,QAAQ,MAAM,SAAS,6BAA6B;AACpD,QAAQ,MAAM,SAAS,kCAAkC;AACzD,QAAQ,MAAM,SAAS,gCAAgC;AACvD,QAAQ,MAAM,SAAS,2BAA2B;AAClD,QAAQ,MAAM,SAAS,2BAA2B;AAClD,QAAQ,MAAM,SAAS,0BAA0B;AACjD,QAAQ,MAAM,SAAS,2BAA2B;AAClD,QAAQ,MAAM,SAAS,4BAA4B;AACnD,QAAQ,MAAM,SAAS,4BAA4B;AACnD,QAAQ,MAAM,SAAS,4BAA4B;AACnD,QAAQ,MAAM,SAAS,2BAA2B;AAClD,QAAQ,MAAM,SAAS,2BAA2B,CAAC,CAAC,CAAC,CAAC,EAAE;AACxD,QAAQ,MAAM,SAAS,qCAAqC;AAC5D,QAAQ,MAAM,SAAS,kCAAkC,CAAC,CAAC,CAAC,EAAE;AAC9D,QAAQ,MAAM,SAAS,gCAAgC,CAAC,CAAC,CAAC,CAAC,EAAE;AAC7D,QAAQ,MAAM,SAAS,mCAAmC,CAAC,CAAC,CAAC,EAAE;AAC/D,QAAQ,MAAM,SAAS,iCAAiC,CAAC,CAAC,CAAC,CAAC,EAAE;AAC9D,QAAQ,MAAM,SAAS,+BAA+B,CAAC,CAAC,CAAC,EAAE;AAC3D,QAAQ,MAAM,SAAS,6BAA6B,CAAC,CAAC,CAAC,CAAC,EAAE;AAC1D,QAAQ,MAAM,SAAS,6BAA6B;AACpD,QAAQ,MAAM,SAAS,mCAAmC,CAAC,CAAC,CAAC,EAAE;AAC/D,QAAQ,MAAM,SAAS,iCAAiC,CAAC,CAAC,CAAC,CAAC,EAAE;AAC9D,QAAQ,MAAM,SAAS,+BAA+B,CAAC,CAAC,CAAC,EAAE;AAC3D,QAAQ,MAAM,SAAS,6BAA6B,CAAC,CAAC,CAAC,CAAC,EAAE;AAC1D,QAAQ,MAAM,SAAS,8BAA8B,CAAC,CAAC,CAAC,EAAE;AAC1D,QAAQ,MAAM,SAAS,4BAA4B,CAAC,CAAC,CAAC,CAAC,EAAE;AACzD,QAAQ,MAAM,SAAS,2BAA2B,CAAC,CAAC,CAAC,EAAE;AACvD,QAAQ,MAAM,SAAS,yBAAyB,CAAC,CAAC,CAAC,CAAC,EAAE;AACtD,QAAQ,MAAM,SAAS,iCAAiC,CAAC,CAAC,CAAC,EAAE;AAC7D,QAAQ,MAAM,SAAS,+BAA+B,CAAC,CAAC,CAAC,CAAC,EAAE;AAC5D,QAAQ,MAAM,SAAS,0BAA0B;AACjD,QAAQ,MAAM,SAAS,4BAA4B,CAAC,CAAC,CAAC,EAAE;AACxD,QAAQ,MAAM,SAAS,0BAA0B,CAAC,CAAC,CAAC,CAAC,EAAE;AACvD,QAAQ,MAAM,SAAS,4BAA4B;AACnD,QAAQ,MAAM,SAAS,2BAA2B,CAAC,CAAC,CAAC,EAAE;AACvD,QAAQ,MAAM,SAAS,yBAAyB,CAAC,CAAC,CAAC,CAAC,EAAE;AACtD,QAAQ,MAAM,SAAS,6BAA6B,CAAC,CAAC,CAAC,EAAE;AACzD,QAAQ,MAAM,SAAS,2BAA2B,CAAC,CAAC,CAAC,CAAC,EAAE;AACxD,QAAQ,MAAM,SAAS,0BAA0B,CAAC,CAAC,CAAC,EAAE;AACtD,QAAQ,MAAM,SAAS,wBAAwB,CAAC,CAAC,CAAC,CAAC,EAAE;AACrD,QAAQ,MAAM,SAAS,6BAA6B,CAAC,CAAC,CAAC,EAAE;AACzD,QAAQ,MAAM,SAAS,2BAA2B,CAAC,CAAC,CAAC,CAAC,EAAE;AACxD,QAAQ,MAAM,SAAS,4BAA4B,CAAC,CAAC,CAAC,EAAE;AACxD,QAAQ,MAAM,SAAS,0BAA0B,CAAC,CAAC,CAAC,CAAC,EAAE;AACvD,QAAQ,MAAM,SAAS,wBAAwB;AAC/C,QAAQ,MAAM,SAAS,kCAAkC,CAAC,CAAC,CAAC,EAAE;AAC9D,QAAQ,MAAM,SAAS,gCAAgC,CAAC,CAAC,CAAC,CAAC,EAAE;AAC7D,QAAQ,MAAM,SAAS,8BAA8B,CAAC,CAAC,CAAC,EAAE;AAC1D,QAAQ,MAAM,SAAS,4BAA4B,CAAC,CAAC,CAAC,CAAC,EAAE;AACzD,QAAQ,MAAM,SAAS,oCAAoC,CAAC,CAAC,CAAC,EAAE;AAChE,QAAQ,MAAM,SAAS,kCAAkC,CAAC,CAAC,CAAC,CAAC,EAAE;AAC/D,QAAQ,MAAM,SAAS,8BAA8B,CAAC,CAAC,sBAAsB,EAAE;AAC/E,QAAQ,MAAM,SAAS,iCAAiC,CAAC,CAAC,CAAC,EAAE;AAC7D,QAAQ,MAAM,SAAS,+BAA+B,CAAC,CAAC,CAAC,CAAC,EAAE;AAC5D,QAAQ,MAAM,SAAS,6BAA6B,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,qBAAqB,CAAC;AACjF,QAAQ,MAAM,SAAS,2BAA2B,CAAC,CAAC,CAAC,CAAC,EAAE;AACxD,QAAQ,MAAM,SAAS,4BAA4B,CAAC,CAAC,oBAAoB,EAAE;AAC3E,QAAQ,MAAM,SAAS,gCAAgC,CAAC,CAAC,CAAC,EAAE;AAC5D,QAAQ,MAAM,SAAS,0BAA0B;AACjD,QAAQ,MAAM,SAAS,8BAA8B,CAAC,CAAC,CAAC,CAAC,EAAE;AAC3D,QAAQ,MAAM,SAAS,6BAA6B,CAAC,CAAC,CAAC,EAAE;AACzD,QAAQ,MAAM,SAAS,2BAA2B,CAAC,CAAC,CAAC,CAAC,EAAE;AACxD,QAAQ,MAAM,SAAS,qCAAqC,CAAC,CAAC,CAAC,EAAE;AACjE,QAAQ,MAAM,SAAS,wBAAwB;AAC/C,QAAQ,MAAM,SAAS,mCAAmC,CAAC,CAAC,CAAC,CAAC,EAAE;AAChE,QAAQ,MAAM,SAAS,2CAA2C,CAAC,CAAC,CAAC,EAAE;AACvE,QAAQ,MAAM,SAAS,mCAAmC,CAAC,CAAC,CAAC,EAAE;AAC/D,QAAQ,MAAM,SAAS,6BAA6B;AACpD,QAAQ,MAAM,SAAS,iCAAiC,CAAC,CAAC,CAAC,CAAC,EAAE;AAC9D,QAAQ,MAAM,SAAS,uBAAuB,CAAC,CAAC,eAAe,EAAE;AACjE,QAAQ,MAAM,SAAS,4BAA4B;AACnD,QAAQ,MAAM,SAAS,iCAAiC,CAAC,CAAC,CAAC,EAAE;AAC7D,QAAQ,MAAM,SAAS,+BAA+B,CAAC,CAAC,CAAC,CAAC,EAAE;AAC5D,QAAQ,MAAM,SAAS,gCAAgC,CAAC,CAAC,CAAC,EAAE;AAC5D,QAAQ,MAAM,SAAS,8BAA8B,CAAC,CAAC,CAAC,CAAC,EAAE;AAC3D,QAAQ,MAAM,SAAS,oCAAoC,CAAC,CAAC,CAAC,EAAE;AAChE,QAAQ,MAAM,SAAS,kCAAkC,CAAC,CAAC,CAAC,CAAC,EAAE;AAC/D,QAAQ,MAAM,SAAS,6BAA6B;AACpD,QAAQ,MAAM,SAAS,+BAA+B,CAAC,CAAC,CAAC,EAAE;AAC3D,QAAQ,MAAM,SAAS,yBAAyB;AAChD,QAAQ,MAAM,SAAS,6BAA6B,CAAC,CAAC,CAAC,CAAC,EAAE;AAC1D,QAAQ,MAAM,SAAS,8BAA8B;AACrD,QAAQ,MAAM,SAAS,6BAA6B,CAAC,CAAC,CAAC,EAAE;AACzD,QAAQ,MAAM,SAAS,wBAAwB;AAC/C,QAAQ,MAAM,SAAS,2BAA2B,CAAC,CAAC,CAAC,CAAC,EAAE;AACxD,QAAQ,MAAM,SAAS,yBAAyB;AAChD,QAAQ,MAAM,SAAS,4BAA4B;AACnD,QAAQ,MAAM,SAAS,6BAA6B;AACpD,QAAQ,MAAM,SAAS,+BAA+B,CAAC,CAAC,CAAC,EAAE;AAC3D,QAAQ,MAAM,SAAS,6BAA6B,CAAC,CAAC,CAAC,CAAC,EAAE;AAC1D,QAAQ,MAAM,SAAS,4BAA4B,CAAC,CAAC,CAAC,EAAE;AACxD,QAAQ,MAAM,SAAS,0BAA0B,CAAC,CAAC,CAAC,CAAC,EAAE;AACvD,QAAQ,MAAM,SAAS,2BAA2B;AAClD,QAAQ,MAAM,SAAS,+BAA+B;AACtD,QAAQ,MAAM,SAAS,kCAAkC;AACzD,QAAQ,MAAM,SAAS,mCAAmC;AAC1D,QAAQ,MAAM,SAAS,gCAAgC;AACvD,QAAQ,MAAM,SAAS,mCAAmC;AAC1D,QAAQ,MAAM,SAAS,yBAAyB;AAChD,QAAQ,MAAM,SAAS,0BAA0B;AACjD,QAAQ,MAAM,SAAS,2BAA2B;AAClD,QAAQ,MAAM,SAAS,gCAAgC,CAAC,CAAC,CAAC,EAAE;AAC5D,QAAQ,MAAM,SAAS,8BAA8B,CAAC,CAAC,CAAC,CAAC,EAAE;AAC3D,QAAQ,MAAM,SAAS,sCAAsC,CAAC,CAAC,CAAC,EAAE;AAClE,QAAQ,MAAM,SAAS,oCAAoC,CAAC,CAAC,CAAC,CAAC,EAAE;AACjE,QAAQ,MAAM,SAAS,qCAAqC;AAC5D,QAAQ,MAAM,SAAS,oCAAoC,CAAC,CAAC,CAAC,EAAE;AAChE,QAAQ,MAAM,SAAS,kCAAkC,CAAC,CAAC,CAAC,CAAC,EAAE;AAC/D,QAAQ,MAAM,SAAS,mCAAmC,CAAC,CAAC,CAAC,EAAE;AAC/D,QAAQ,MAAM,SAAS,iCAAiC,CAAC,CAAC,CAAC,CAAC,EAAE;AAC9D,QAAQ,MAAM,SAAS,kCAAkC;AACzD,QAAQ,MAAM,SAAS,wBAAwB;AAC/C,QAAQ,MAAM,SAAS,uBAAuB;AAC9C,QAAQ,MAAM,SAAS,kCAAkC,CAAC,CAAC,CAAC,EAAE;AAC9D,QAAQ,MAAM,SAAS,gCAAgC,CAAC,CAAC,CAAC,CAAC,EAAE;AAC7D,QAAQ,MAAM,SAAS,uBAAuB;AAC9C,QAAQ,MAAM,SAAS,oCAAoC,CAAC,CAAC,CAAC,EAAE;AAChE,QAAQ,MAAM,SAAS,kCAAkC,CAAC,CAAC,CAAC,CAAC,EAAE;AAC/D,QAAQ,MAAM,SAAS,0BAA0B;AACjD,QAAQ,MAAM,SAAS,uBAAuB;AAC9C,QAAQ,MAAM,SAAS,8BAA8B;AACrD,QAAQ,MAAM,SAAS,6CAA6C,CAAC,CAAC,CAAC,EAAE;AACzE,QAAQ,MAAM,SAAS,2CAA2C,CAAC,CAAC,CAAC,CAAC,EAAE;AACxE,QAAQ,MAAM,SAAS,8BAA8B,CAAC,CAAC,CAAC,EAAE;AAC1D,QAAQ,MAAM,SAAS,4BAA4B,CAAC,CAAC,CAAC,CAAC,EAAE;AACzD,QAAQ,MAAM,SAAS,uBAAuB;AAC9C,QAAQ,MAAM,SAAS,+BAA+B,CAAC,CAAC,CAAC,EAAE;AAC3D,QAAQ,MAAM,SAAS,+BAA+B,CAAC,CAAC,CAAC,EAAE;AAC3D,QAAQ,MAAM,SAAS,uBAAuB,CAAC,EAAE,eAAe,EAAE;AAClE,QAAQ,MAAM,SAAS,6BAA6B,CAAC,CAAC,CAAC,EAAE;AACzD,QAAQ,MAAM,SAAS,wBAAwB;AAC/C,QAAQ,MAAM,SAAS,gCAAgC,CAAC,CAAC,CAAC,EAAE;AAC5D,QAAQ,MAAM,SAAS,8BAA8B,CAAC,CAAC,CAAC,CAAC,EAAE;AAC3D,QAAQ,MAAM,SAAS,qCAAqC,CAAC,CAAC,CAAC,EAAE;AACjE,QAAQ,MAAM,SAAS,mCAAmC,CAAC,CAAC,CAAC,CAAC,EAAE;AAChE,QAAQ,MAAM,SAAS,uBAAuB;AAC9C,QAAQ,MAAM,SAAS,8BAA8B,CAAC,CAAC,CAAC,EAAE;AAC1D,QAAQ,MAAM,SAAS,4BAA4B,CAAC,CAAC,CAAC,CAAC,EAAE;AACzD,QAAQ,MAAM,SAAS,8BAA8B,CAAC,CAAC,CAAC,EAAE;AAC1D,QAAQ,MAAM,SAAS,4BAA4B,CAAC,CAAC,CAAC,CAAC,EAAE;AACzD,QAAQ,MAAM,SAAS,2BAA2B,CAAC,CAAC,CAAC,EAAE;AACvD,QAAQ,MAAM,SAAS,yBAAyB,CAAC,CAAC,CAAC,CAAC,EAAE;AACtD,QAAQ,MAAM,SAAS,+BAA+B,CAAC,CAAC,CAAC,EAAE;AAC3D,QAAQ,MAAM,SAAS,6BAA6B,CAAC,CAAC,CAAC,CAAC,EAAE;AAC1D,QAAQ,MAAM,SAAS,oCAAoC,CAAC,CAAC,CAAC,EAAE;AAChE,QAAQ,MAAM,SAAS,kCAAkC,CAAC,CAAC,CAAC,CAAC,EAAE;AAC/D,QAAQ,MAAM,SAAS,mCAAmC,CAAC,CAAC,CAAC,EAAE;AAC/D,QAAQ,MAAM,SAAS,iCAAiC,CAAC,CAAC,CAAC,CAAC,EAAE;AAC9D,QAAQ,MAAM,SAAS,iCAAiC,CAAC,CAAC,CAAC,EAAE;AAC7D,QAAQ,MAAM,SAAS,+BAA+B,CAAC,CAAC,CAAC,CAAC,EAAE;AAC5D,QAAQ,MAAM,SAAS,oCAAoC,CAAC,CAAC,CAAC,EAAE;AAChE,QAAQ,MAAM,SAAS,kCAAkC,CAAC,CAAC,CAAC,CAAC,EAAE;AAC/D,QAAQ,MAAM,SAAS,+BAA+B,CAAC,CAAC,CAAC,EAAE;AAC3D,QAAQ,MAAM,SAAS,6BAA6B,CAAC,CAAC,CAAC,CAAC,EAAE;AAC1D,QAAQ,MAAM,SAAS,8BAA8B,CAAC,CAAC,CAAC,EAAE;AAC1D,QAAQ,MAAM,SAAS,4BAA4B,CAAC,CAAC,CAAC,CAAC,EAAE;AACzD,QAAQ,MAAM,SAAS,4BAA4B,CAAC,CAAC,CAAC,EAAE;AACxD,QAAQ,MAAM,SAAS,0BAA0B,CAAC,CAAC,CAAC,CAAC,EAAE;AACvD,QAAQ,MAAM,SAAS,uCAAuC;AAC9D,QAAQ,MAAM,SAAS,yCAAyC,CAAC,CAAC,CAAC,EAAE;AACrE,QAAQ,MAAM,SAAS,uCAAuC,CAAC,CAAC,CAAC,CAAC,EAAE;AACpE,QAAQ,MAAM,SAAS,2CAA2C,CAAC,CAAC,CAAC,EAAE;AACvE,QAAQ,MAAM,SAAS,yCAAyC,CAAC,CAAC,CAAC,CAAC,EAAE;AACtE,QAAQ,MAAM,SAAS,0CAA0C,CAAC,CAAC,CAAC,EAAE;AACtE,QAAQ,MAAM,SAAS,wCAAwC,CAAC,CAAC,CAAC,CAAC,EAAE;AACrE,QAAQ,MAAM,SAAS,yCAAyC,CAAC,CAAC,CAAC,EAAE;AACrE,QAAQ,MAAM,SAAS,uCAAuC,CAAC,CAAC,CAAC,CAAC,EAAE;AACpE,QAAQ,MAAM,SAAS,wCAAwC,CAAC,CAAC,CAAC,EAAE;AACpE,QAAQ,MAAM,SAAS,sCAAsC,CAAC,CAAC,CAAC,CAAC,EAAE;AACnE,QAAQ,MAAM,SAAS,oCAAoC;AAC3D,QAAQ,MAAM,SAAS,2CAA2C,CAAC,CAAC,CAAC,EAAE;AACvE,QAAQ,MAAM,SAAS,qCAAqC;AAC5D,QAAQ,MAAM,SAAS,yCAAyC,CAAC,CAAC,CAAC,CAAC,EAAE;AACtE,QAAQ,MAAM,SAAS,uCAAuC,CAAC,CAAC,CAAC,EAAE;AACnE,QAAQ,MAAM,SAAS,qCAAqC,CAAC,CAAC,CAAC,CAAC,EAAE;AAClE,QAAQ,MAAM,SAAS,sCAAsC;AAC7D,QAAQ,MAAM,SAAS,kCAAkC;AACzD,QAAQ,MAAM,SAAS,qCAAqC;AAC5D,QAAQ,MAAM,SAAS,+BAA+B;AACtD,QAAQ,MAAM,SAAS,uBAAuB;AAC9C,QAAQ,MAAM,SAAS,uBAAuB;AAC9C,QAAQ,MAAM,SAAS,+CAA+C,CAAC,CAAC,CAAC,EAAE;AAC3E,QAAQ,MAAM,SAAS,6CAA6C,CAAC,CAAC,CAAC,CAAC,EAAE;AAC1E,QAAQ,MAAM,SAAS,6BAA6B,CAAC,CAAC,CAAC,EAAE;AACzD,QAAQ,MAAM,SAAS,2BAA2B,CAAC,CAAC,CAAC,CAAC,EAAE;AACxD,QAAQ,MAAM,SAAS,yBAAyB;AAChD,QAAQ,MAAM,SAAS,4BAA4B,CAAC,CAAC,CAAC,EAAE;AACxD,QAAQ,MAAM,SAAS,0BAA0B,CAAC,CAAC,CAAC,CAAC,EAAE;AACvD,QAAQ,MAAM,SAAS,6BAA6B,CAAC,CAAC,CAAC,EAAE;AACzD,QAAQ,MAAM,SAAS,2BAA2B,CAAC,CAAC,CAAC,CAAC,EAAE;AACxD,QAAQ,MAAM,SAAS,8BAA8B,CAAC,CAAC,CAAC,EAAE;AAC1D,QAAQ,MAAM,SAAS,4BAA4B,CAAC,CAAC,CAAC,CAAC,EAAE;AACzD,QAAQ,MAAM,SAAS,+BAA+B,CAAC,CAAC,CAAC,EAAE;AAC3D,QAAQ,MAAM,SAAS,6BAA6B,CAAC,CAAC,CAAC,CAAC,EAAE;AAC1D,QAAQ,MAAM,SAAS,6BAA6B;AACpD,QAAQ,MAAM,SAAS,iCAAiC,CAAC,CAAC,CAAC,EAAE;AAC7D,QAAQ,MAAM,SAAS,+BAA+B,CAAC,CAAC,CAAC,CAAC,EAAE;AAC5D,QAAQ,MAAM,SAAS,mCAAmC;AAC1D,QAAQ,MAAM,SAAS,qCAAqC,CAAC,CAAC,CAAC,EAAE;AACjE,QAAQ,MAAM,SAAS,mCAAmC,CAAC,CAAC,CAAC,CAAC,EAAE;AAChE,QAAQ,MAAM,SAAS,8CAA8C,CAAC,CAAC,CAAC,EAAE;AAC1E,QAAQ,MAAM,SAAS,4CAA4C,CAAC,CAAC,CAAC,CAAC,EAAE;AACzE,QAAQ,MAAM,SAAS,4CAA4C,CAAC,CAAC,CAAC,EAAE;AACxE,QAAQ,MAAM,SAAS,0CAA0C,CAAC,CAAC,CAAC,CAAC,EAAE;AACvE,QAAQ,MAAM,SAAS,mCAAmC,CAAC,CAAC,CAAC,EAAE;AAC/D,QAAQ,MAAM,SAAS,iCAAiC,CAAC,CAAC,CAAC,CAAC,EAAE;AAC9D,QAAQ,MAAM,SAAS,oCAAoC,CAAC,CAAC,CAAC,EAAE;AAChE,QAAQ,MAAM,SAAS,kCAAkC,CAAC,CAAC,CAAC,CAAC,EAAE;AAC/D,QAAQ,MAAM,SAAS,2BAA2B;AAClD,QAAQ,MAAM,SAAS,kCAAkC,CAAC,CAAC,CAAC,EAAE;AAC9D,QAAQ,MAAM,SAAS,gCAAgC,CAAC,CAAC,CAAC,CAAC,EAAE;AAC7D,QAAQ,MAAM,SAAS,yCAAyC,CAAC,CAAC,CAAC,EAAE;AACrE,QAAQ,MAAM,SAAS,uCAAuC,CAAC,CAAC,CAAC,CAAC,EAAE;AACpE,QAAQ,MAAM,SAAS,0BAA0B;AACjD,QAAQ,MAAM,SAAS,iCAAiC,CAAC,CAAC,CAAC,EAAE;AAC7D,QAAQ,MAAM,SAAS,+BAA+B,CAAC,CAAC,CAAC,CAAC,EAAE;AAC5D,QAAQ,MAAM,SAAS,kCAAkC,CAAC,CAAC,CAAC,EAAE;AAC9D,QAAQ,MAAM,SAAS,gCAAgC,CAAC,CAAC,CAAC,CAAC,EAAE;AAC7D,QAAQ,MAAM,SAAS,gCAAgC,CAAC,CAAC,CAAC,EAAE;AAC5D,QAAQ,MAAM,SAAS,8BAA8B,CAAC,CAAC,CAAC,CAAC,EAAE;AAC3D,QAAQ,MAAM,SAAS,2BAA2B,CAAC,CAAC,CAAC,CAAC,EAAE;AACxD,QAAQ,MAAM,SAAS,6BAA6B,CAAC,CAAC,CAAC,CAAC,EAAE;AAC1D,QAAQ,MAAM,SAAS,6BAA6B,CAAC,CAAC,CAAC,CAAC,EAAE;AAC1D,QAAQ,MAAM,SAAS,kCAAkC,CAAC,CAAC,CAAC,EAAE;AAC9D,QAAQ,MAAM,SAAS,gCAAgC,CAAC,CAAC,CAAC,CAAC,EAAE;AAC7D,QAAQ,MAAM,SAAS,+BAA+B,CAAC,CAAC,CAAC,EAAE;AAC3D,QAAQ,MAAM,SAAS,6BAA6B,CAAC,CAAC,CAAC,CAAC,EAAE;AAC1D,QAAQ,MAAM,SAAS,6BAA6B,CAAC,CAAC,CAAC,EAAE;AACzD,QAAQ,MAAM,SAAS,2BAA2B,CAAC,CAAC,CAAC,CAAC,EAAE;AACxD,QAAQ,MAAM,SAAS,iCAAiC,CAAC,CAAC,CAAC,EAAE;AAC7D,QAAQ,MAAM,SAAS,+BAA+B,CAAC,CAAC,CAAC,CAAC,EAAE;AAC5D,QAAQ,MAAM,SAAS,gCAAgC,CAAC,CAAC,CAAC,EAAE;AAC5D,QAAQ,MAAM,SAAS,8BAA8B,CAAC,CAAC,CAAC,CAAC,EAAE;AAC3D,QAAQ,MAAM,SAAS,+BAA+B,CAAC,CAAC,CAAC,EAAE;AAC3D,QAAQ,MAAM,SAAS,6BAA6B,CAAC,CAAC,CAAC,CAAC,EAAE;AAC1D,QAAQ,MAAM,SAAS,qCAAqC,CAAC,CAAC,CAAC,EAAE;AACjE,QAAQ,MAAM,SAAS,mCAAmC,CAAC,CAAC,CAAC,CAAC,EAAE;AAChE,QAAQ,MAAM,SAAS,sBAAsB;AAC7C,QAAQ,MAAM,SAAS,4BAA4B,CAAC,CAAC,CAAC,EAAE;AACxD,QAAQ,MAAM,SAAS,0BAA0B,CAAC,CAAC,CAAC,CAAC,EAAE;AACvD,QAAQ,MAAM,SAAS,yBAAyB;AAChD,QAAQ,MAAM,SAAS,qCAAqC,CAAC,CAAC,CAAC,EAAE;AACjE,QAAQ,MAAM,SAAS,+BAA+B;AACtD,QAAQ,MAAM,SAAS,6BAA6B;AACpD,QAAQ,MAAM,SAAS,yCAAyC;AAChE,QAAQ,MAAM,SAAS,4CAA4C,CAAC,CAAC,CAAC,EAAE;AACxE,QAAQ,MAAM,SAAS,0CAA0C,CAAC,CAAC,CAAC,CAAC,EAAE;AACvE,QAAQ,MAAM,SAAS,sCAAsC;AAC7D,QAAQ,MAAM,SAAS,oCAAoC,CAAC,CAAC,CAAC,EAAE;AAChE,QAAQ,MAAM,SAAS,kCAAkC,CAAC,CAAC,CAAC,CAAC,EAAE;AAC/D,QAAQ,MAAM,SAAS,8BAA8B;AACrD,QAAQ,MAAM,SAAS,2CAA2C;AAClE,QAAQ,MAAM,SAAS,8BAA8B,CAAC,CAAC,CAAC,EAAE;AAC1D,QAAQ,MAAM,SAAS,4BAA4B,CAAC,CAAC,CAAC,CAAC,EAAE;AACzD,QAAQ,MAAM,SAAS,2BAA2B,CAAC,CAAC,CAAC,EAAE;AACvD,QAAQ,MAAM,SAAS,yBAAyB,CAAC,CAAC,CAAC,CAAC,EAAE;AACtD,QAAQ,MAAM,SAAS,6BAA6B;AACpD,QAAQ,MAAM,SAAS,sBAAsB;AAC7C,QAAQ,MAAM,SAAS,mCAAmC,CAAC,CAAC,CAAC,EAAE;AAC/D,QAAQ,MAAM,SAAS,iCAAiC,CAAC,CAAC,CAAC,CAAC,EAAE;AAC9D,QAAQ,MAAM,SAAS,6BAA6B;AACpD,QAAQ,MAAM,SAAS,0BAA0B;AACjD,QAAQ,MAAM,SAAS,0CAA0C,CAAC,CAAC,CAAC,EAAE;AACtE,QAAQ,MAAM,SAAS,wCAAwC,CAAC,CAAC,CAAC,CAAC,EAAE;AACrE,QAAQ,MAAM,SAAS,oCAAoC;AAC3D,QAAQ,MAAM,SAAS,mCAAmC;AAC1D,QAAQ,MAAM,SAAS,sCAAsC,CAAC,CAAC,CAAC,EAAE;AAClE,QAAQ,MAAM,SAAS,oCAAoC,CAAC,CAAC,CAAC,CAAC,EAAE;AACjE,QAAQ,MAAM,SAAS,2BAA2B;AAClD,QAAQ,MAAM,SAAS,gDAAgD,CAAC,CAAC,CAAC,EAAE;AAC5E,QAAQ,MAAM,SAAS,8CAA8C,CAAC,CAAC,CAAC,CAAC,EAAE;AAC3E,QAAQ,MAAM,SAAS,0CAA0C;AACjE,QAAQ,MAAM,SAAS,sCAAsC,CAAC,CAAC,CAAC,EAAE;AAClE,QAAQ,MAAM,SAAS,oCAAoC,CAAC,CAAC,CAAC,CAAC,EAAE;AACjE,QAAQ,MAAM,SAAS,qCAAqC,CAAC,CAAC,CAAC,EAAE;AACjE,QAAQ,MAAM,SAAS,mCAAmC,CAAC,CAAC,CAAC,CAAC,EAAE;AAChE,QAAQ,MAAM,SAAS,iCAAiC,CAAC,CAAC,CAAC,EAAE;AAC7D,QAAQ,MAAM,SAAS,+BAA+B,CAAC,CAAC,CAAC,CAAC,EAAE;AAC5D,QAAQ,MAAM,SAAS,gCAAgC,CAAC,CAAC,CAAC,EAAE;AAC5D,QAAQ,MAAM,SAAS,8BAA8B,CAAC,CAAC,CAAC,CAAC,EAAE;AAC3D,QAAQ,MAAM,SAAS,6BAA6B;AACpD,QAAQ,MAAM,SAAS,uBAAuB;AAC9C,QAAQ,MAAM,SAAS,mCAAmC,CAAC,CAAC,CAAC,EAAE;AAC/D,QAAQ,MAAM,SAAS,iCAAiC,CAAC,CAAC,CAAC,CAAC,EAAE;AAC9D,QAAQ,MAAM,SAAS,qCAAqC;AAC5D,QAAQ,MAAM,SAAS,6CAA6C,CAAC,CAAC,CAAC,EAAE;AACzE,QAAQ,MAAM,SAAS,2CAA2C,CAAC,CAAC,CAAC,CAAC,EAAE;AACxE,QAAQ,MAAM,SAAS,oCAAoC,CAAC,CAAC,CAAC,EAAE;AAChE,QAAQ,MAAM,SAAS,kCAAkC,CAAC,CAAC,CAAC,CAAC,EAAE;AAC/D,QAAQ,MAAM,SAAS,2CAA2C,CAAC,CAAC,CAAC,EAAE;AACvE,QAAQ,MAAM,SAAS,yCAAyC,CAAC,CAAC,CAAC,CAAC,EAAE;AACtE,QAAQ,MAAM,SAAS,sBAAsB;AAC7C,QAAQ,MAAM,SAAS,4BAA4B,CAAC,CAAC,CAAC,EAAE;AACxD,QAAQ,MAAM,SAAS,0BAA0B,CAAC,CAAC,CAAC,CAAC,EAAE;AACvD,QAAQ,MAAM,SAAS,+CAA+C;AACtE,QAAQ,MAAM,SAAS,qCAAqC,CAAC,CAAC,CAAC,EAAE;AACjE,QAAQ,MAAM,SAAS,mCAAmC,CAAC,CAAC,CAAC,CAAC,EAAE;AAChE,QAAQ,MAAM,SAAS,+BAA+B;AACtD,QAAQ,MAAM,SAAS,+BAA+B,CAAC,CAAC,CAAC,EAAE;AAC3D,QAAQ,MAAM,SAAS,6BAA6B,CAAC,CAAC,CAAC,CAAC,EAAE;AAC1D,QAAQ,MAAM,SAAS,+BAA+B,CAAC,CAAC,CAAC,EAAE;AAC3D,QAAQ,MAAM,SAAS,6BAA6B,CAAC,CAAC,CAAC,CAAC,EAAE;AAC1D,QAAQ,MAAM,SAAS,kCAAkC,CAAC,CAAC,CAAC,EAAE;AAC9D,QAAQ,MAAM,SAAS,gCAAgC,CAAC,CAAC,CAAC,CAAC,EAAE;AAC7D,QAAQ,MAAM,SAAS,yBAAyB;AAChD,QAAQ,MAAM,SAAS,0BAA0B;AACjD,QAAQ,MAAM,SAAS,4BAA4B;AACnD,QAAQ,MAAM,SAAS,gCAAgC,CAAC,CAAC,CAAC,EAAE;AAC5D,QAAQ,MAAM,SAAS,8BAA8B,CAAC,CAAC,CAAC,CAAC,EAAE;AAC3D,QAAQ,MAAM,SAAS,0BAA0B;AACjD,QAAQ,MAAM,SAAS,+BAA+B,CAAC,CAAC,CAAC,EAAE;AAC3D,QAAQ,MAAM,SAAS,6BAA6B,CAAC,CAAC,CAAC,CAAC,EAAE;AAC1D,QAAQ,MAAM,SAAS,iCAAiC,CAAC,CAAC,CAAC,EAAE;AAC7D,QAAQ,MAAM,SAAS,+BAA+B,CAAC,CAAC,CAAC,CAAC,EAAE;AAC5D,QAAQ,MAAM,SAAS,2BAA2B;AAClD,QAAQ,MAAM,SAAS,wCAAwC,CAAC,CAAC,CAAC,EAAE;AACpE,QAAQ,MAAM,SAAS,sCAAsC,CAAC,CAAC,CAAC,CAAC,EAAE;AACnE,QAAQ,MAAM,SAAS,kCAAkC;AACzD,QAAQ,MAAM,SAAS,gCAAgC,CAAC,CAAC,CAAC,EAAE;AAC5D,QAAQ,MAAM,SAAS,8BAA8B,CAAC,CAAC,CAAC,CAAC,EAAE;AAC3D,QAAQ,MAAM,SAAS,sCAAsC,CAAC,CAAC,CAAC,EAAE;AAClE,QAAQ,MAAM,SAAS,oCAAoC,CAAC,CAAC,CAAC,CAAC,EAAE;AACjE,QAAQ,MAAM,SAAS,mCAAmC,CAAC,CAAC,CAAC,EAAE;AAC/D,QAAQ,MAAM,SAAS,oCAAoC;AAC3D,QAAQ,MAAM,SAAS,oCAAoC;AAC3D,QAAQ,MAAM,SAAS,uBAAuB;AAC9C,QAAQ,MAAM,SAAS,wCAAwC,CAAC,CAAC,CAAC,EAAE;AACpE,QAAQ,MAAM,SAAS,sCAAsC,CAAC,CAAC,CAAC,CAAC,EAAE;AACnE,QAAQ,MAAM,SAAS,uCAAuC,CAAC,CAAC,CAAC,EAAE;AACnE,QAAQ,MAAM,SAAS,qCAAqC,CAAC,CAAC,CAAC,CAAC,EAAE;AAClE,QAAQ,MAAM,SAAS,yCAAyC;AAChE,QAAQ,MAAM,SAAS,oBAAoB;AAC3C,QAAQ,MAAM,SAAS,4BAA4B;AACnD,QAAQ,MAAM,SAAS,oCAAoC,CAAC,CAAC,CAAC,EAAE;AAChE,QAAQ,MAAM,SAAS,kCAAkC,CAAC,CAAC,CAAC,CAAC,EAAE;AAC/D,QAAQ,MAAM,SAAS,oCAAoC,CAAC,CAAC,CAAC,EAAE;AAChE,QAAQ,MAAM,SAAS,kCAAkC,CAAC,CAAC,CAAC,CAAC,EAAE;AAC/D,QAAQ,MAAM,SAAS,iCAAiC,CAAC,CAAC,CAAC,EAAE;AAC7D,QAAQ,MAAM,SAAS,+BAA+B,CAAC,CAAC,CAAC,CAAC,EAAE;AAC5D,QAAQ,MAAM,SAAS,2BAA2B;AAClD,QAAQ,MAAM,SAAS,sCAAsC,CAAC,CAAC,CAAC,EAAE;AAClE,QAAQ,MAAM,SAAS,oCAAoC,CAAC,CAAC,CAAC,CAAC,EAAE;AACjE,QAAQ,MAAM,SAAS,uCAAuC,CAAC,CAAC,CAAC,EAAE;AACnE,QAAQ,MAAM,SAAS,qCAAqC,CAAC,CAAC,CAAC,CAAC,EAAE;AAClE,QAAQ,MAAM,SAAS,iCAAiC;AACxD,QAAQ,MAAM,SAAS,gCAAgC;AACvD,QAAQ,MAAM,SAAS,kCAAkC;AACzD,QAAQ,MAAM,SAAS,uCAAuC,CAAC,CAAC,CAAC,EAAE;AACnE,QAAQ,MAAM,SAAS,qCAAqC,CAAC,CAAC,CAAC,CAAC,EAAE;AAClE,QAAQ,MAAM,SAAS,wCAAwC;AAC/D,QAAQ,MAAM,SAAS,kCAAkC,CAAC,CAAC,CAAC,EAAE;AAC9D,QAAQ,MAAM,SAAS,gCAAgC,CAAC,CAAC,CAAC,CAAC,EAAE;AAC7D,QAAQ,MAAM,SAAS,4BAA4B;AACnD,QAAQ,MAAM,SAAS,gCAAgC;AACvD,QAAQ,MAAM,SAAS,EAAE,CAAC,CAAC,EAAE,EAAE;AAC/B,CAAC,CAAC;AACF;AACA;AACA,IAAI,aAAa,GAAG;AACpB;AACA,QAAQ,MAAM,SAAS,qBAAqB,CAAC,CAAC,aAAa,EAAE;AAC7D,QAAQ,MAAM,SAAS,iBAAiB,CAAC,CAAC,UAAU,EAAE;AACtD,QAAQ,MAAM,SAAS,uBAAuB,CAAC,CAAC,WAAW,EAAE;AAC7D,QAAQ,MAAM,SAAS,sBAAsB,CAAC,CAAC,WAAW,EAAE;AAC5D,QAAQ,MAAM,SAAS,2BAA2B,CAAC,CAAC,SAAS,EAAE;AAC/D,QAAQ,MAAM,SAAS,yBAAyB,CAAC,CAAC,SAAS,EAAE;AAC7D,QAAQ,MAAM,SAAS,uBAAuB,CAAC,CAAC,UAAU,EAAE;AAC5D,QAAQ,MAAM,SAAS,sBAAsB,CAAC,CAAC,SAAS,EAAE;AAC1D,QAAQ,MAAM,SAAS,qBAAqB,CAAC,CAAC,SAAS,EAAE;AACzD,QAAQ,MAAM,SAAS,sBAAsB,CAAC,CAAC,WAAW,EAAE;AAC5D,QAAQ,MAAM,SAAS,oBAAoB,CAAC,CAAC,oBAAoB,EAAE;AACnE,QAAQ,MAAM,SAAS,oBAAoB,CAAC,CAAC,oBAAoB,EAAE;AACnE,QAAQ,MAAM,SAAS,yBAAyB,CAAC,CAAC,iBAAiB,EAAE;AACrE,QAAQ,MAAM,SAAS,iBAAiB,CAAC,CAAC,SAAS,EAAE;AACrD,QAAQ,MAAM,SAAS,wBAAwB,CAAC,CAAC,SAAS,EAAE;AAC5D,QAAQ,MAAM,SAAS,iCAAiC;AACxD,QAAQ,MAAM,SAAS,mCAAmC;AAC1D,QAAQ,MAAM,SAAS,kBAAkB,CAAC,CAAC,UAAU,EAAE;AACvD,QAAQ,MAAM,SAAS,wBAAwB;AAC/C,QAAQ,MAAM,SAAS,sBAAsB,CAAC,CAAC,SAAS,EAAE;AAC1D,QAAQ,MAAM,SAAS,wBAAwB,CAAC,CAAC,gBAAgB,EAAE;AACnE,QAAQ,MAAM,SAAS,wBAAwB,CAAC,CAAC,UAAU,EAAE;AAC7D,QAAQ,MAAM,SAAS,yBAAyB,CAAC,CAAC,UAAU,EAAE;AAC9D,QAAQ,MAAM,SAAS,uBAAuB,CAAC,CAAC,UAAU,EAAE;AAC5D,QAAQ,MAAM,SAAS,0BAA0B,CAAC,CAAC,UAAU,EAAE;AAC/D,QAAQ,MAAM,SAAS,yBAAyB,CAAC,CAAC,SAAS,EAAE;AAC7D,QAAQ,MAAM,SAAS,uBAAuB,CAAC,CAAC,SAAS,EAAE;AAC3D,QAAQ,MAAM,SAAS,sBAAsB,CAAC,CAAC,cAAc,EAAE;AAC/D,QAAQ,MAAM,SAAS,kBAAkB,CAAC,CAAC,UAAU,EAAE;AACvD,QAAQ,MAAM,SAAS,uBAAuB,CAAC,CAAC,WAAW,EAAE;AAC7D,QAAQ,MAAM,SAAS,uBAAuB;AAC9C,QAAQ,MAAM,SAAS,qBAAqB,CAAC,CAAC,aAAa,EAAE;AAC7D,QAAQ,MAAM,SAAS,oBAAoB,CAAC,CAAC,SAAS,EAAE;AACxD,QAAQ,MAAM,SAAS,kBAAkB,CAAC,CAAC,UAAU,EAAE;AACvD,QAAQ,MAAM,SAAS,sBAAsB,CAAC,CAAC,WAAW,EAAE;AAC5D,QAAQ,MAAM,SAAS,kBAAkB;AACzC,QAAQ,MAAM,SAAS,mBAAmB;AAC1C,QAAQ,MAAM,SAAS,sBAAsB;AAC7C,QAAQ,MAAM,SAAS,uBAAuB;AAC9C,QAAQ,MAAM,SAAS,yBAAyB,CAAC,CAAC,WAAW,EAAE;AAC/D,QAAQ,MAAM,SAAS,kBAAkB;AACzC,QAAQ,MAAM,SAAS,kBAAkB;AACzC,QAAQ,MAAM,SAAS,0BAA0B;AACjD,QAAQ,MAAM,SAAS,yBAAyB,CAAC,CAAC,iBAAiB,EAAE;AACrE,QAAQ,MAAM,SAAS,iBAAiB,CAAC,CAAC,SAAS,EAAE;AACrD,QAAQ,MAAM,SAAS,uBAAuB;AAC9C,QAAQ,MAAM,SAAS,4BAA4B,CAAC,CAAC,SAAS,EAAE;AAChE,QAAQ,MAAM,SAAS,uBAAuB;AAC9C,QAAQ,MAAM,SAAS,mBAAmB;AAC1C,QAAQ,MAAM,SAAS,wBAAwB,CAAC,CAAC,SAAS,EAAE;AAC5D,QAAQ,MAAM,SAAS,qBAAqB,CAAC,CAAC,aAAa,EAAE;AAC7D,QAAQ,MAAM,SAAS,kBAAkB,CAAC,CAAC,UAAU,EAAE;AACvD,QAAQ,MAAM,SAAS,oBAAoB,CAAC,CAAC,YAAY,EAAE;AAC3D,QAAQ,MAAM,SAAS,qBAAqB,CAAC,CAAC,WAAW,EAAE;AAC3D,QAAQ,MAAM,SAAS,qBAAqB,CAAC,CAAC,SAAS,EAAE;AACzD,QAAQ,MAAM,SAAS,qBAAqB,CAAC,CAAC,SAAS,EAAE;AACzD,QAAQ,MAAM,SAAS,yBAAyB,CAAC,CAAC,iBAAiB,EAAE;AACrE,QAAQ,MAAM,SAAS,2BAA2B;AAClD,QAAQ,MAAM,SAAS,qBAAqB,CAAC,CAAC,aAAa,EAAE;AAC7D,QAAQ,MAAM,SAAS,qBAAqB,CAAC,CAAC,WAAW,EAAE;AAC3D,QAAQ,MAAM,SAAS,mBAAmB;AAC1C,QAAQ,MAAM,SAAS,qBAAqB,CAAC,CAAC,aAAa,EAAE;AAC7D,QAAQ,MAAM,SAAS,mBAAmB;AAC1C,QAAQ,MAAM,SAAS,kBAAkB;AACzC,QAAQ,MAAM,SAAS,qBAAqB;AAC5C,QAAQ,MAAM,SAAS,0BAA0B;AACjD,QAAQ,MAAM,SAAS,yBAAyB;AAChD,QAAQ,MAAM,SAAS,iCAAiC,CAAC,CAAC,WAAW,EAAE;AACvE,QAAQ,MAAM,SAAS,6BAA6B;AACpD,QAAQ,MAAM,SAAS,yBAAyB;AAChD,QAAQ,MAAM,SAAS,iBAAiB,CAAC,CAAC,SAAS,EAAE;AACrD,QAAQ,MAAM,SAAS,mBAAmB,CAAC,CAAC,WAAW,EAAE;AACzD,QAAQ,MAAM,SAAS,sBAAsB;AAC7C,QAAQ,MAAM,SAAS,uBAAuB;AAC9C,QAAQ,MAAM,SAAS,qBAAqB;AAC5C,QAAQ,MAAM,SAAS,mBAAmB;AAC1C,QAAQ,MAAM,SAAS,mBAAmB;AAC1C,QAAQ,MAAM,SAAS,oBAAoB;AAC3C,QAAQ,MAAM,SAAS,mBAAmB;AAC1C,QAAQ,MAAM,SAAS,mBAAmB;AAC1C,QAAQ,MAAM,SAAS,uBAAuB;AAC9C,QAAQ,MAAM,SAAS,wBAAwB;AAC/C,QAAQ,MAAM,SAAS,mBAAmB,CAAC,CAAC,WAAW,EAAE;AACzD,QAAQ,MAAM,SAAS,sBAAsB,CAAC,CAAC,cAAc,EAAE;AAC/D,QAAQ,MAAM,SAAS,iBAAiB,CAAC,CAAC,UAAU,EAAE;AACtD,QAAQ,MAAM,SAAS,mBAAmB;AAC1C,QAAQ,MAAM,SAAS,mBAAmB;AAC1C,QAAQ,MAAM,SAAS,oBAAoB;AAC3C,QAAQ,MAAM,SAAS,oBAAoB;AAC3C,QAAQ,MAAM,SAAS,oBAAoB;AAC3C,QAAQ,MAAM,SAAS,oBAAoB,CAAC,CAAC,SAAS,EAAE;AACxD,QAAQ,MAAM,SAAS,oBAAoB;AAC3C,QAAQ,MAAM,SAAS,oBAAoB;AAC3C,QAAQ,MAAM,SAAS,uBAAuB;AAC9C,QAAQ,MAAM,SAAS,oBAAoB;AAC3C,QAAQ,MAAM,SAAS,oBAAoB;AAC3C,QAAQ,MAAM,SAAS,oBAAoB;AAC3C,QAAQ,MAAM,SAAS,yBAAyB;AAChD,QAAQ,MAAM,SAAS,qBAAqB;AAC5C,QAAQ,MAAM,SAAS,qBAAqB;AAC5C,QAAQ,MAAM,SAAS,yBAAyB;AAChD,QAAQ,MAAM,SAAS,qBAAqB;AAC5C,QAAQ,MAAM,SAAS,oBAAoB;AAC3C,QAAQ,MAAM,SAAS,wBAAwB;AAC/C,QAAQ,MAAM,SAAS,sBAAsB,CAAC,CAAC,WAAW,EAAE;AAC5D,QAAQ,MAAM,SAAS,2BAA2B;AAClD,QAAQ,MAAM,SAAS,6BAA6B,CAAC,CAAC,SAAS,EAAE;AACjE,QAAQ,MAAM,SAAS,4BAA4B;AACnD,QAAQ,MAAM,SAAS,gBAAgB,CAAC,CAAC,QAAQ,EAAE;AACnD,QAAQ,MAAM,SAAS,0BAA0B,CAAC,CAAC,kBAAkB,EAAE;AACvE,QAAQ,MAAM,SAAS,0BAA0B,CAAC,CAAC,UAAU,EAAE;AAC/D,QAAQ,MAAM,SAAS,mBAAmB;AAC1C,QAAQ,MAAM,SAAS,wBAAwB,CAAC,CAAC,gBAAgB,EAAE;AACnE,QAAQ,MAAM,SAAS,oBAAoB;AAC3C,QAAQ,MAAM,SAAS,8BAA8B;AACrD,QAAQ,MAAM,SAAS,yBAAyB;AAChD,QAAQ,MAAM,SAAS,kCAAkC;AACzD,QAAQ,MAAM,SAAS,2BAA2B;AAClD,QAAQ,MAAM,SAAS,qBAAqB;AAC5C,QAAQ,MAAM,SAAS,mBAAmB;AAC1C,QAAQ,MAAM,SAAS,qBAAqB;AAC5C,QAAQ,MAAM,SAAS,oBAAoB;AAC3C,QAAQ,MAAM,SAAS,oBAAoB;AAC3C,QAAQ,MAAM,SAAS,qBAAqB;AAC5C,QAAQ,MAAM,SAAS,uBAAuB;AAC9C,QAAQ,MAAM,SAAS,qBAAqB;AAC5C,QAAQ,MAAM,SAAS,qBAAqB;AAC5C,QAAQ,MAAM,SAAS,uBAAuB;AAC9C,QAAQ,MAAM,SAAS,iBAAiB,CAAC,CAAC,SAAS,EAAE;AACrD,QAAQ,MAAM,SAAS,sBAAsB,CAAC,CAAC,cAAc,EAAE;AAC/D,QAAQ,MAAM,SAAS,oBAAoB,CAAC,CAAC,YAAY,EAAE;AAC3D,QAAQ,MAAM,SAAS,qBAAqB;AAC5C,QAAQ,MAAM,SAAS,wBAAwB;AAC/C,QAAQ,MAAM,SAAS,qBAAqB;AAC5C,QAAQ,MAAM,SAAS,wBAAwB;AAC/C,QAAQ,MAAM,SAAS,sBAAsB;AAC7C,QAAQ,MAAM,SAAS,yBAAyB;AAChD,QAAQ,MAAM,SAAS,qBAAqB,CAAC,CAAC,YAAY,EAAE;AAC5D,QAAQ,MAAM,SAAS,0BAA0B;AACjD,QAAQ,MAAM,SAAS,qBAAqB;AAC5C,QAAQ,MAAM,SAAS,sBAAsB;AAC7C,QAAQ,MAAM,SAAS,uBAAuB;AAC9C,QAAQ,MAAM,SAAS,wBAAwB;AAC/C,QAAQ,MAAM,SAAS,yBAAyB;AAChD,QAAQ,MAAM,SAAS,2BAA2B;AAClD,QAAQ,MAAM,SAAS,yBAAyB;AAChD,QAAQ,MAAM,SAAS,6BAA6B;AACpD,QAAQ,MAAM,SAAS,2BAA2B;AAClD,QAAQ,MAAM,SAAS,0BAA0B;AACjD,QAAQ,MAAM,SAAS,yBAAyB;AAChD,QAAQ,MAAM,SAAS,yBAAyB;AAChD,QAAQ,MAAM,SAAS,mBAAmB;AAC1C,QAAQ,MAAM,SAAS,sBAAsB,CAAC,CAAC,SAAS,EAAE;AAC1D,QAAQ,MAAM,SAAS,iBAAiB,CAAC,CAAC,UAAU,EAAE;AACtD,QAAQ,MAAM,SAAS,mBAAmB;AAC1C,QAAQ,MAAM,SAAS,oBAAoB;AAC3C,QAAQ,MAAM,SAAS,sBAAsB;AAC7C,QAAQ,MAAM,SAAS,sBAAsB;AAC7C,QAAQ,MAAM,SAAS,uBAAuB;AAC9C,QAAQ,MAAM,SAAS,sBAAsB;AAC7C,QAAQ,MAAM,SAAS,qBAAqB;AAC5C,QAAQ,MAAM,SAAS,qBAAqB;AAC5C,QAAQ,MAAM,SAAS,wBAAwB;AAC/C,QAAQ,MAAM,SAAS,6BAA6B;AACpD,QAAQ,MAAM,SAAS,2BAA2B;AAClD,QAAQ,MAAM,SAAS,0BAA0B;AACjD,QAAQ,MAAM,SAAS,kBAAkB;AACzC,QAAQ,MAAM,SAAS,qBAAqB,CAAC,CAAC,aAAa,EAAE;AAC7D,QAAQ,MAAM,SAAS,sBAAsB,CAAC,CAAC,SAAS,EAAE;AAC1D,QAAQ,MAAM,SAAS,sBAAsB;AAC7C,QAAQ,MAAM,SAAS,iBAAiB;AACxC,QAAQ,MAAM,SAAS,mBAAmB;AAC1C,QAAQ,MAAM,SAAS,sBAAsB;AAC7C,QAAQ,MAAM,SAAS,iBAAiB,CAAC,CAAC,SAAS,EAAE;AACrD,QAAQ,MAAM,SAAS,wBAAwB,CAAC,CAAC,SAAS,EAAE;AAC5D,QAAQ,MAAM,SAAS,mBAAmB,CAAC,CAAC,WAAW,EAAE;AACzD,QAAQ,MAAM,SAAS,kBAAkB;AACzC,QAAQ,MAAM,SAAS,sBAAsB,CAAC,CAAC,qBAAqB,EAAE;AACtE,QAAQ,MAAM,SAAS,wBAAwB;AAC/C,QAAQ,MAAM,SAAS,0BAA0B,CAAC,CAAC,WAAW,EAAE;AAChE,QAAQ,MAAM,SAAS,yBAAyB;AAChD,QAAQ,MAAM,SAAS,iBAAiB;AACxC,QAAQ,MAAM,SAAS,wBAAwB,CAAC,CAAC,UAAU,EAAE;AAC7D,QAAQ,MAAM,SAAS,sBAAsB,CAAC,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC,CAAC;AACnE,QAAQ,MAAM,SAAS,qBAAqB,CAAC,CAAC,UAAU,EAAE;AAC1D,QAAQ,MAAM,SAAS,wBAAwB,CAAC,CAAC,gBAAgB,EAAE;AACnE,QAAQ,MAAM,SAAS,mBAAmB,CAAC,CAAC,WAAW,EAAE;AACzD,QAAQ,MAAM,SAAS,oBAAoB,CAAC,CAAC,YAAY,EAAE;AAC3D,QAAQ,MAAM,SAAS,mBAAmB,CAAC,CAAC,WAAW,EAAE;AACzD,QAAQ,MAAM,SAAS,qBAAqB,CAAC,CAAC,aAAa,EAAE;AAC7D,QAAQ,MAAM,SAAS,oBAAoB,CAAC,CAAC,YAAY,EAAE;AAC3D,QAAQ,MAAM,SAAS,iBAAiB,CAAC,CAAC,SAAS,EAAE;AACrD,QAAQ,MAAM,SAAS,oBAAoB;AAC3C,QAAQ,MAAM,SAAS,mBAAmB,CAAC,CAAC,WAAW,EAAE;AACzD,QAAQ,MAAM,SAAS,8BAA8B,CAAC,CAAC,sBAAsB,EAAE;AAC/E,QAAQ,MAAM,SAAS,oBAAoB;AAC3C,QAAQ,MAAM,SAAS,qBAAqB,CAAC,CAAC,aAAa,EAAE;AAC7D,QAAQ,MAAM,SAAS,gBAAgB,CAAC,CAAC,QAAQ,EAAE;AACnD,QAAQ,MAAM,SAAS,oBAAoB;AAC3C,QAAQ,MAAM,SAAS,sBAAsB;AAC7C,QAAQ,MAAM,SAAS,oBAAoB,CAAC,CAAC,YAAY,EAAE;AAC3D,QAAQ,MAAM,SAAS,8BAA8B;AACrD,QAAQ,MAAM,SAAS,qBAAqB,CAAC,CAAC,aAAa,EAAE;AAC7D,QAAQ,MAAM,SAAS,0BAA0B,CAAC,CAAC,kBAAkB,EAAE;AACvE,QAAQ,MAAM,SAAS,qBAAqB;AAC5C,QAAQ,MAAM,SAAS,uBAAuB;AAC9C,QAAQ,MAAM,SAAS,yBAAyB;AAChD,QAAQ,MAAM,SAAS,wBAAwB;AAC/C,QAAQ,MAAM,SAAS,qBAAqB;AAC5C,QAAQ,MAAM,SAAS,mBAAmB;AAC1C,QAAQ,MAAM,SAAS,mBAAmB;AAC1C,QAAQ,MAAM,SAAS,uBAAuB;AAC9C,QAAQ,MAAM,SAAS,iBAAiB,CAAC,CAAC,SAAS,EAAE;AACrD,QAAQ,MAAM,SAAS,wBAAwB;AAC/C,QAAQ,MAAM,SAAS,mBAAmB;AAC1C,QAAQ,MAAM,SAAS,uBAAuB;AAC9C,QAAQ,MAAM,SAAS,mBAAmB;AAC1C,QAAQ,MAAM,SAAS,qBAAqB;AAC5C,QAAQ,MAAM,SAAS,sBAAsB;AAC7C,QAAQ,MAAM,SAAS,wBAAwB;AAC/C,QAAQ,MAAM,SAAS,0BAA0B;AACjD,QAAQ,MAAM,SAAS,2BAA2B;AAClD,QAAQ,MAAM,SAAS,2BAA2B;AAClD,QAAQ,MAAM,SAAS,yBAAyB;AAChD,QAAQ,MAAM,SAAS,yBAAyB;AAChD,QAAQ,MAAM,SAAS,uBAAuB;AAC9C,QAAQ,MAAM,SAAS,0BAA0B;AACjD,QAAQ,MAAM,SAAS,wBAAwB;AAC/C,QAAQ,MAAM,SAAS,qBAAqB;AAC5C,QAAQ,MAAM,SAAS,oBAAoB;AAC3C,QAAQ,MAAM,SAAS,yBAAyB;AAChD,QAAQ,MAAM,SAAS,6BAA6B;AACpD,QAAQ,MAAM,SAAS,0BAA0B;AACjD,QAAQ,MAAM,SAAS,uBAAuB;AAC9C,QAAQ,MAAM,SAAS,qBAAqB,CAAC,CAAC,EAAE,CAAC;AACjD,QAAQ,MAAM,SAAS,qBAAqB;AAC5C,QAAQ,MAAM,SAAS,oBAAoB;AAC3C,QAAQ,MAAM,SAAS,wBAAwB;AAC/C,QAAQ,MAAM,SAAS,qBAAqB,CAAC,CAAC,UAAU,EAAE;AAC1D,QAAQ,MAAM,SAAS,mBAAmB;AAC1C,QAAQ,MAAM,SAAS,yBAAyB;AAChD,QAAQ,MAAM,SAAS,iCAAiC;AACxD,QAAQ,MAAM,SAAS,wBAAwB;AAC/C,QAAQ,MAAM,SAAS,wBAAwB;AAC/C,QAAQ,MAAM,SAAS,wBAAwB;AAC/C,QAAQ,MAAM,SAAS,6BAA6B;AACpD,QAAQ,MAAM,SAAS,4BAA4B;AACnD,QAAQ,MAAM,SAAS,oBAAoB;AAC3C,QAAQ,MAAM,SAAS,qBAAqB;AAC5C,QAAQ,MAAM,SAAS,wBAAwB;AAC/C,QAAQ,MAAM,SAAS,wBAAwB;AAC/C,QAAQ,MAAM,SAAS,mBAAmB;AAC1C,QAAQ,MAAM,SAAS,mBAAmB;AAC1C,QAAQ,MAAM,SAAS,mBAAmB,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,EAAE,EAAE;AAC/D,QAAQ,MAAM,SAAS,mBAAmB,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,EAAE,EAAE;AAC/D,QAAQ,MAAM,SAAS,2BAA2B;AAClD,QAAQ,MAAM,SAAS,4BAA4B;AACnD,QAAQ,MAAM,SAAS,sBAAsB;AAC7C,QAAQ,MAAM,SAAS,qBAAqB;AAC5C,QAAQ,MAAM,SAAS,uBAAuB;AAC9C,QAAQ,MAAM,SAAS,qBAAqB;AAC5C,QAAQ,MAAM,SAAS,sBAAsB;AAC7C,QAAQ,MAAM,SAAS,qBAAqB;AAC5C,QAAQ,MAAM,SAAS,kBAAkB;AACzC,QAAQ,MAAM,SAAS,kBAAkB;AACzC,QAAQ,MAAM,SAAS,sBAAsB,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,EAAE,EAAE;AAChE,QAAQ,MAAM,SAAS,kBAAkB;AACzC,QAAQ,MAAM,SAAS,yBAAyB,CAAC,CAAC,EAAE,EAAE;AACtD,QAAQ,MAAM,SAAS,yBAAyB;AAChD,QAAQ,MAAM,SAAS,gCAAgC;AACvD,QAAQ,MAAM,SAAS,uBAAuB;AAC9C,QAAQ,MAAM,SAAS,0BAA0B;AACjD,QAAQ,MAAM,SAAS,qBAAqB,CAAC,CAAC,aAAa,EAAE,CAAC,CAAC,EAAE,EAAE;AACnE,QAAQ,MAAM,SAAS,uBAAuB;AAC9C,QAAQ,MAAM,SAAS,mBAAmB,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,EAAE,EAAE;AAC/D,QAAQ,MAAM,SAAS,0BAA0B;AACjD,QAAQ,MAAM,SAAS,sBAAsB;AAC7C,QAAQ,MAAM,SAAS,0BAA0B;AACjD,QAAQ,MAAM,SAAS,yBAAyB,CAAC,CAAC,iBAAiB,EAAE,CAAC,CAAC,EAAE,EAAE;AAC3E,QAAQ,MAAM,SAAS,8BAA8B,CAAC,CAAC,UAAU,EAAE;AACnE,QAAQ,MAAM,SAAS,2BAA2B;AAClD,QAAQ,MAAM,SAAS,0BAA0B;AACjD,QAAQ,MAAM,SAAS,uBAAuB;AAC9C,QAAQ,MAAM,SAAS,+BAA+B;AACtD,QAAQ,MAAM,SAAS,kCAAkC,CAAC,CAAC,0BAA0B,EAAE;AACvF,QAAQ,MAAM,SAAS,+BAA+B;AACtD,QAAQ,MAAM,SAAS,8BAA8B;AACrD,QAAQ,MAAM,SAAS,6BAA6B;AACpD,QAAQ,MAAM,SAAS,2BAA2B;AAClD,QAAQ,MAAM,SAAS,oBAAoB;AAC3C,QAAQ,MAAM,SAAS,oBAAoB;AAC3C,QAAQ,MAAM,SAAS,qBAAqB;AAC5C,QAAQ,MAAM,SAAS,yBAAyB;AAChD,QAAQ,MAAM,SAAS,yBAAyB;AAChD,QAAQ,MAAM,SAAS,2BAA2B;AAClD,QAAQ,MAAM,SAAS,yBAAyB;AAChD,QAAQ,MAAM,SAAS,wBAAwB;AAC/C,QAAQ,MAAM,SAAS,4BAA4B;AACnD,QAAQ,MAAM,SAAS,yBAAyB;AAChD,QAAQ,MAAM,SAAS,0BAA0B;AACjD,QAAQ,MAAM,SAAS,qBAAqB;AAC5C,QAAQ,MAAM,SAAS,yBAAyB;AAChD,QAAQ,MAAM,SAAS,kBAAkB;AACzC,QAAQ,MAAM,SAAS,mBAAmB;AAC1C,QAAQ,MAAM,SAAS,kBAAkB;AACzC,QAAQ,MAAM,SAAS,mBAAmB;AAC1C,QAAQ,MAAM,SAAS,sBAAsB;AAC7C,QAAQ,MAAM,SAAS,sBAAsB;AAC7C,QAAQ,MAAM,SAAS,mBAAmB;AAC1C,QAAQ,MAAM,SAAS,mBAAmB;AAC1C,QAAQ,MAAM,SAAS,yBAAyB;AAChD,QAAQ,MAAM,SAAS,0BAA0B;AACjD,QAAQ,MAAM,SAAS,uBAAuB;AAC9C,QAAQ,MAAM,SAAS,sBAAsB;AAC7C,QAAQ,MAAM,SAAS,0BAA0B;AACjD,QAAQ,MAAM,SAAS,mBAAmB;AAC1C,QAAQ,MAAM,SAAS,mBAAmB,CAAC,CAAC,WAAW,EAAE;AACzD,QAAQ,MAAM,SAAS,yBAAyB;AAChD,QAAQ,MAAM,SAAS,oBAAoB;AAC3C,QAAQ,MAAM,SAAS,oBAAoB;AAC3C,QAAQ,MAAM,SAAS,kBAAkB;AACzC,QAAQ,MAAM,SAAS,uBAAuB;AAC9C,QAAQ,MAAM,SAAS,sBAAsB;AAC7C,QAAQ,MAAM,SAAS,mBAAmB;AAC1C,QAAQ,MAAM,SAAS,sBAAsB;AAC7C,QAAQ,MAAM,SAAS,oBAAoB;AAC3C,QAAQ,MAAM,SAAS,mBAAmB;AAC1C,QAAQ,MAAM,SAAS,wBAAwB;AAC/C,QAAQ,MAAM,SAAS,yBAAyB;AAChD,QAAQ,MAAM,SAAS,8BAA8B;AACrD,QAAQ,MAAM,SAAS,sBAAsB,CAAC,CAAC,cAAc,EAAE;AAC/D,QAAQ,MAAM,SAAS,uBAAuB;AAC9C,QAAQ,MAAM,SAAS,uBAAuB;AAC9C,QAAQ,MAAM,SAAS,uBAAuB;AAC9C,QAAQ,MAAM,SAAS,wBAAwB;AAC/C,QAAQ,MAAM,SAAS,0BAA0B;AACjD,QAAQ,MAAM,SAAS,yBAAyB;AAChD,QAAQ,MAAM,SAAS,kBAAkB;AACzC,QAAQ,MAAM,SAAS,qBAAqB;AAC5C,QAAQ,MAAM,SAAS,mBAAmB;AAC1C,QAAQ,MAAM,SAAS,2BAA2B;AAClD,QAAQ,MAAM,SAAS,wBAAwB,CAAC,CAAC,gBAAgB,EAAE;AACnE,QAAQ,MAAM,SAAS,qBAAqB;AAC5C,QAAQ,MAAM,SAAS,8BAA8B;AACrD,QAAQ,MAAM,SAAS,kBAAkB;AACzC,QAAQ,MAAM,SAAS,qBAAqB;AAC5C,QAAQ,MAAM,SAAS,qBAAqB;AAC5C,QAAQ,MAAM,SAAS,kBAAkB;AACzC,QAAQ,MAAM,SAAS,yBAAyB;AAChD,QAAQ,MAAM,SAAS,sBAAsB;AAC7C,QAAQ,MAAM,SAAS,uBAAuB;AAC9C,QAAQ,MAAM,SAAS,2BAA2B;AAClD,QAAQ,MAAM,SAAS,mBAAmB;AAC1C;AACA,QAAQ,MAAM,SAAS,wBAAwB,CAAC,CAAC,gBAAgB,EAAE;AACnE,QAAQ,MAAM,SAAS,yBAAyB;AAChD,QAAQ,MAAM,SAAS,sBAAsB,CAAC,CAAC,cAAc,EAAE;AAC/D,QAAQ,MAAM,SAAS,sBAAsB,CAAC,CAAC,cAAc,EAAE;AAC/D,QAAQ,MAAM,SAAS,sBAAsB,CAAC,CAAC,cAAc,EAAE;AAC/D,QAAQ,MAAM,SAAS,qBAAqB,CAAC,CAAC,aAAa,EAAE;AAC7D,QAAQ,MAAM,SAAS,oBAAoB,CAAC,CAAC,iBAAiB,EAAE;AAChE,QAAQ,MAAM,SAAS,uBAAuB;AAC9C,QAAQ,MAAM,SAAS,iBAAiB,CAAC,CAAC,SAAS,EAAE;AACrD,QAAQ,MAAM,SAAS,oBAAoB;AAC3C,QAAQ,MAAM,SAAS,yBAAyB,CAAC,CAAC,WAAW,EAAE;AAC/D,QAAQ,MAAM,SAAS,yBAAyB,CAAC,CAAC,iBAAiB,EAAE;AACrE,QAAQ,MAAM,SAAS,0BAA0B;AACjD,QAAQ,MAAM,SAAS,2BAA2B;AAClD,QAAQ,MAAM,SAAS,mBAAmB,CAAC,CAAC,WAAW,EAAE;AACzD,QAAQ,MAAM,SAAS,uBAAuB;AAC9C,QAAQ,MAAM,SAAS,8BAA8B,CAAC,CAAC,sBAAsB,EAAE;AAC/E;AACA;AACA;AACA;AACA,QAAQ,MAAM,SAAS,2BAA2B,CAAC,CAAC,mBAAmB,EAAE;AACzE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,MAAM,SAAS,2BAA2B;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,MAAM,SAAS,yBAAyB;AAChD,QAAQ,MAAM,SAAS,sBAAsB;AAC7C,QAAQ,MAAM,SAAS,0BAA0B,CAAC,CAAC,WAAW,EAAE;AAChE,QAAQ,MAAM,SAAS,2BAA2B;AAClD,QAAQ,MAAM,SAAS,0BAA0B;AACjD,QAAQ,MAAM,SAAS,iBAAiB;AACxC,QAAQ,MAAM,SAAS,oBAAoB,CAAC,CAAC,YAAY,EAAE;AAC3D,QAAQ,MAAM,SAAS,oBAAoB;AAC3C,QAAQ,MAAM,SAAS,kBAAkB;AACzC,QAAQ,MAAM,SAAS,kBAAkB;AACzC;AACA;AACA;AACA;AACA,QAAQ,MAAM,SAAS,kBAAkB;AACzC;AACA,QAAQ,MAAM,SAAS,uBAAuB;AAC9C,QAAQ,MAAM,SAAS,uBAAuB;AAC9C,QAAQ,MAAM,SAAS,oBAAoB;AAC3C;AACA;AACA;AACA,QAAQ,MAAM,SAAS,wBAAwB;AAC/C,QAAQ,MAAM,SAAS,kBAAkB;AACzC,QAAQ,MAAM,SAAS,sBAAsB;AAC7C,QAAQ,MAAM,SAAS,yBAAyB;AAChD,QAAQ,MAAM,SAAS,yBAAyB;AAChD,QAAQ,MAAM,SAAS,sBAAsB;AAC7C,QAAQ,MAAM,SAAS,sBAAsB;AAC7C,QAAQ,MAAM,SAAS,qBAAqB,CAAC,CAAC,aAAa,EAAE;AAC7D,QAAQ,MAAM,SAAS,qBAAqB;AAC5C,QAAQ,MAAM,SAAS,wBAAwB;AAC/C,QAAQ,MAAM,SAAS,wBAAwB;AAC/C,QAAQ,MAAM,SAAS,2BAA2B;AAClD,QAAQ,MAAM,SAAS,qBAAqB,CAAC,CAAC,aAAa,EAAE;AAC7D,QAAQ,MAAM,SAAS,iBAAiB,CAAC,CAAC,SAAS,EAAE;AACrD,QAAQ,MAAM,SAAS,iBAAiB,CAAC,CAAC,SAAS,EAAE;AACrD,QAAQ,MAAM,SAAS,wBAAwB,CAAC,CAAC,gBAAgB,EAAE;AACnE,QAAQ,MAAM,SAAS,mBAAmB;AAC1C,QAAQ,MAAM,SAAS,sBAAsB;AAC7C,QAAQ,MAAM,SAAS,qBAAqB,CAAC,CAAC,aAAa,EAAE;AAC7D,QAAQ,MAAM,SAAS,iBAAiB,CAAC,CAAC,SAAS,EAAE;AACrD,QAAQ,MAAM,SAAS,sBAAsB;AAC7C,QAAQ,MAAM,SAAS,uBAAuB;AAC9C,QAAQ,MAAM,SAAS,yBAAyB;AAChD,QAAQ,MAAM,SAAS,uBAAuB;AAC9C,QAAQ,MAAM,SAAS,yBAAyB;AAChD,QAAQ,MAAM,SAAS,sBAAsB;AAC7C,QAAQ,MAAM,SAAS,wBAAwB;AAC/C,QAAQ,MAAM,SAAS,qBAAqB;AAC5C,QAAQ,MAAM,SAAS,0BAA0B;AACjD,QAAQ,MAAM,SAAS,qBAAqB;AAC5C,QAAQ,MAAM,SAAS,oBAAoB;AAC3C,QAAQ,MAAM,SAAS,qBAAqB;AAC5C,QAAQ,MAAM,SAAS,kBAAkB;AACzC,QAAQ,MAAM,SAAS,oBAAoB;AAC3C,QAAQ,MAAM,SAAS,qBAAqB;AAC5C,QAAQ,MAAM,SAAS,uBAAuB;AAC9C,QAAQ,MAAM,SAAS,wBAAwB,CAAC,CAAC,EAAE,EAAE;AACrD;AACA;AACA,QAAQ,MAAM,SAAS,eAAe;AACtC,QAAQ,MAAM,SAAS,eAAe;AACtC,QAAQ,MAAM,SAAS,eAAe;AACtC,QAAQ,MAAM,SAAS,eAAe;AACtC,QAAQ,MAAM,SAAS,eAAe;AACtC,QAAQ,MAAM,SAAS,eAAe;AACtC,QAAQ,MAAM,SAAS,eAAe;AACtC,QAAQ,MAAM,SAAS,eAAe;AACtC;AACA,QAAQ,MAAM,SAAS,EAAE;AACzB,CAAC,CAAC;AACF;AACA,SAAS,cAAc,CAAC,EAAE,eAAe,IAAI,aAAa,OAAO,EAAE,MAAM,uBAAuB;AAChG,CAAC,IAAI,CAAC,cAAc,IAAI,CAAC;AACzB,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,EAAE,OAAO;AACrB,CAAC,IAAI,GAAG,GAAG,MAAM,IAAI,CAAC,OAAO,EAAE,EAAE,EAAE,MAAM,IAAI,CAAC,CAAC;AAC/C,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACpB,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AACrB,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;AACvB,CAAC,wBAAwB,GAAG,GAAG,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AACtE,CAAC;AACD;AACA,SAAS,mBAAmB,CAAC,EAAE,eAAe,IAAI,aAAa,OAAO,EAAE,MAAM,uBAAuB;AACrG,CAAC,IAAI,GAAG,GAAG,MAAM,IAAI,CAAC,OAAO,EAAE,EAAE,EAAE,MAAM,IAAI,CAAC,CAAC;AAC/C,CAAC,GAAG,GAAG,IAAI,IAAI,EAAE,OAAO,cAAc,CAAC,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,CAAC,CAAC;AAC/D,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;AACd,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,EAAE,OAAO;AACrB,CAAC,IAAI,KAAK,GAAG,OAAO,CAAC,KAAK,IAAI,EAAE,EAAE,IAAI,GAAG,CAAC,CAAC;AAC3C,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;AAClB,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,IAAI,EAAE,EAAE,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE;AAChF,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACpB,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AACrB,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AACrB,CAAC,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AAClC,CAAC,CAAC,IAAI,CAAC,CAAC;AACR,CAAC,MAAM,CAAC,GAAG,GAAG,EAAE;AAChB,EAAE,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACjB,EAAE,CAAC,CAAC,WAAW,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;AACzB,EAAE,CAAC,GAAG,CAAC,CAAC;AACR,EAAE,MAAM,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,IAAI,EAAE,EAAE,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE;AACjF,EAAE,CAAC,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AACtB,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AACxC,EAAE;AACF,CAAC;AACD;AACA,SAAS,eAAe,CAAC,GAAG,EAAE,CAAC,aAAa,CAAC,aAAa;AAC1D,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;AAC3B,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AACvB,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AACvB,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AACvB,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AACvB,CAAC,OAAO,GAAG,CAAC;AACZ,CAAC;AACD;AACA,SAAS,eAAe,CAAC,CAAC,aAAa,CAAC,aAAa,GAAG,EAAE,CAAC,cAAc;AACzE,CAAC,IAAI,GAAG,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;AACtB,CAAC,eAAe,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AAC5B,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,GAAG,CAAC,CAAC;AAC/B,CAAC,OAAO,GAAG,CAAC;AACZ,CAAC;AACD;AACA;AACA,SAAS,gBAAgB,CAAC,CAAC,aAAa,CAAC,aAAa,GAAG,EAAE;AAC3D,CAAC,IAAI,GAAG,GAAG,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;AACrC,CAAC,eAAe,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AAC5B,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;AAChC,CAAC,GAAG,CAAC,WAAW,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC;AAC1C,CAAC,OAAO,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,MAAM,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC;AACvD,CAAC;AACD;AACA,SAAS,mBAAmB,CAAC,EAAE,eAAe,IAAI,WAAW,CAAC,aAAa,CAAC,yBAAyB;AACrG,CAAC,GAAG,IAAI,CAAC,CAAC,IAAI,IAAI,EAAE,OAAO,IAAI,CAAC,CAAC;AACjC,EAAE,KAAK,GAAG,CAAC,CAAC,KAAK,GAAG;AACpB,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC,IAAI,GAAG,GAAG,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;AAC/D,GAAG,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC;AAC7C,IAAI,cAAc,CAAC,EAAE,EAAE,MAAM,EAAE,cAAc,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AACxD;AACA,IAAI,cAAc,CAAC,EAAE,EAAE,MAAM,EAAE,cAAc,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AACvD,GAAG,OAAO;AACV,EAAE,KAAK,GAAG,CAAC,CAAC,KAAK,GAAG,EAAE,cAAc,CAAC,EAAE,EAAE,MAAM,EAAE,eAAe,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO;AAChG;AACA,EAAE,KAAK,GAAG,CAAC,CAAC,KAAK,KAAK;AACtB,GAAG,cAAc,CAAC,EAAE,EAAE,MAAM,EAAE,gBAAgB,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC,IAAI,IAAI,GAAG,EAAE,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AACzG,GAAG,OAAO;AACV,EAAE;AACF,CAAC,cAAc,CAAC,EAAE,EAAE,MAAM,EAAE,eAAe,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AACzD,CAAC;AACD;AACA,SAAS,cAAc,CAAC,EAAE,eAAe,EAAE,gBAAgB,GAAG,aAAa,IAAI,qBAAqB;AACpG,CAAC,IAAI,KAAK,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC;AACjC,CAAI,IAAC,KAAK,GAAG,iBAAiB,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,CAAC,CAAiB,EAAE,GAAG,EAAE,CAAC,CAAC,IAAI,qBAAqB,GAAG;AACzG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,MAAM,EAAE;AAC5C,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE,MAAM,IAAI,KAAK,CAAC,QAAQ,IAAI,EAAE,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,GAAG,kCAAkC,CAAC,CAAC;AACrG,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;AACxC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;AAC1C,EAAE;AACF,CAAC,IAAI,GAAG,GAAG,EAAE,CAAC;AACd,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;AACrE,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE;AAC7C,EAAE,GAAG,KAAK,EAAE,GAAG,GAAG,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;AACvC,EAAE,EAAE,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;AACrB,EAAE,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE;AAC1C,GAAG,IAAI,IAAI,GAAG,KAAK,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;AAChD,GAAG,GAAG,CAAC,IAAI,EAAE,SAAS;AACtB;AACA,GAAG,mBAAmB,CAAC,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,CAAO,CAAC,CAAC;AAC7C,GAAG;AACH,EAAE;AACF,CAAC;AACD;AACA;AACA,SAAS,eAAe,CAAC,EAAE,eAAe,IAAI,gBAAgB;AAC9D,CAAC,IAAI,CAAC,GAAG,IAAI,IAAI,EAAE,CAAC;AACpB,CAAC,IAAI,EAAE,GAAG,SAAS,EAAE,CAAC;AACtB,CAAC,IAAI,GAAG,GAAG,CAAC,CAAC;AACb,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC;AAC/E,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,MAAM,IAAI,KAAK,CAAC,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC;AACzG,CAAC,cAAc,CAAC,EAAE,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC,GAAG,MAAM,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,GAAG,MAAM,GAAG,MAAM,CAAC,GAAG,SAAS,CAAC,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;AACtG;AACA,CAAC,cAAc,CAAC,EAAE,EAAE,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,CAAK,CAAC,CAAC;AAC/D;AACA,CAAC,cAAc,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;AAC5B,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,CAAC;AACjB,CAAC;AACD;AACA,SAAS,iBAAiB,CAAC,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE;AAC3C,CAAC,cAAc,CAAC,EAAE,EAAE,MAAM,aAAa,UAAU,CAAC;AAClD,EAAE,EAAE,CAAC,EAAE;AACP,EAAE,KAAK,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;AAClB,EAAE,IAAI,EAAE,OAAO;AACf,EAAE,MAAM,EAAE,CAAC;AACX,EAAE,MAAM,EAAE,OAAO;AACjB,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC;AACX,CAAC;AACD;AACA;AACA,SAAS,gBAAgB,CAAC,EAAE,EAAE,EAAE,gBAAgB,IAAI,EAAE;AACtD,CAAC,GAAG,CAAC,EAAE,EAAE,OAAO;AAChB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,EAAE,cAAc,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE;AACzE;AACA,EAAE,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE,cAAc,CAAC,EAAE,EAAE,MAAM,eAAe,YAAY,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;AAC5H,EAAE,CAAC,CAAC;AACJ,CAAC;AACD;AACA,SAAS,UAAU,CAAC,EAAE,EAAE,EAAE,EAAE;AAC5B;AACA,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,EAAE,CAAC,CAAC;AACrB,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AACnE,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAC/D,CAAC,cAAc,CAAC,EAAE,EAAE,MAAM,gBAAgB,CAAC,CAAC,CAAC;AAC7C;AACA,CAAC,CAAC,GAAG,OAAO,CAAC,EAAE,CAAC,CAAC;AACjB,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AACnE,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAC/D,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAC/D,CAAC,WAAW,CAAC,iBAAiB,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;AACrD,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AACrB,CAAC,cAAc,CAAC,EAAE,EAAE,MAAM,aAAa,CAAC,CAAC,CAAC;AAC1C,CAAC;AACD;AACA,SAAS,mBAAmB,CAAC,EAAE,EAAE,IAAI,EAAE;AACvC,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,EAAE,CAAC,EAAE,cAAc,CAAC,EAAE,EAAE,MAAM,WAAW,QAAQ,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;AAC9G,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE;AAClC,EAAE,cAAc,CAAC,EAAE,EAAE,MAAM,WAAW,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;AAC5D,EAAE,CAAC,CAAC;AACJ,CAAC;AACD;AACA,SAAS,qBAAqB,CAAC,EAAE,eAAe,EAAE,EAAE;AACpD,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE;AAC1C,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;AAC3B,EAAE,cAAc,CAAC,EAAE,EAAE,MAAM,cAAc,WAAW,CAAC,EAAE,CAAC,CAAC,CAAC;AAC1D,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,cAAc,CAAC,EAAE,EAAE,MAAM,qBAAqB,kBAAkB,CAAC,EAAE,CAAC,CAAC,CAAC;AAC1F,EAAE;AACF,CAAC,OAAO,EAAE,CAAC,QAAQ,CAAC,CAAC;AACrB,CAAC;AACD;AACA,SAAS,mBAAmB,CAAC,EAAE,EAAE,IAAI,EAAE;AACvC,CAAC,GAAG,CAAC,IAAI,EAAE,OAAO;AAClB,CAAC,IAAI,GAAG,GAAG,CAAC,CAAC;AACb,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,GAAG,EAAE,GAAG,EAAE;AACjC,EAAE,GAAG,EAAE,GAAG,IAAI,GAAG,IAAI,GAAG,EAAE;AAC1B,GAAG,cAAc,CAAC,EAAE,EAAE,MAAM,gBAAgB,aAAa,CAAC,SAAS,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;AACrF,GAAG;AACH,EAAE,CAAC,CAAC;AACJ,CAAC;AACD;AACA,SAAS,mBAAmB,CAAC,EAAE,eAAe,IAAI,WAAW,CAAC,aAAa,CAAC,aAAa,IAAI,EAAE;AAC/F,CAAC,IAAI,EAAE,GAAG,EAAE,GAAG,cAAc,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;AACxD,CAAC,GAAG,IAAI,CAAC,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE;AAChC,EAAE,cAAc,CAAC,EAAE,EAAE,MAAM,cAAc,aAAa,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;AAClE,EAAE,OAAO;AACT,EAAE;AACF,CAAC,GAAG,IAAI,CAAC,EAAE,EAAE,cAAc,CAAC,EAAE,EAAE,MAAM,gBAAgB,aAAa,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC;AAC3F,MAAM,OAAO,IAAI,CAAC,CAAC;AACnB,EAAE,KAAK,GAAG,CAAC,CAAC,KAAK,GAAG;AACpB,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC,IAAI,GAAG,GAAG,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;AAC/D;AACA,GAAG,cAAc,CAAC,EAAE,EAAE,MAAM,eAAe,YAAY,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAQ,CAAC,CAAC,CAAC;AAC5E,GAAG,MAAM;AACT,EAAE,KAAK,GAAG,CAAC,CAAC,KAAK,GAAG;AACpB,GAAG,cAAc,CAAC,EAAE,EAAE,MAAM,gBAAgB,aAAa,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;AAC3F,GAAG,MAAM;AACT;AACA,EAAE,KAAK,GAAG,CAAC,CAAC,KAAK,KAAK;AACtB,GAAG,GAAG,IAAI,CAAC,OAAO,EAAE;AACpB,IAAI,IAAI,IAAI,GAAG,UAAU,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,IAAI,IAAI,GAAG,EAAE,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;AAC/F,IAAI,cAAc,CAAC,EAAE,EAAE,MAAM,iBAAiB,cAAc,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,EAAQ,CAAC,CAAC,CAAC;AACpF,IAAI,MAAM,cAAc,CAAC,EAAE,EAAE,MAAM,cAAc,WAAW,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,IAAI,IAAI,GAAG,EAAE,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC;AACnI,GAAG,MAAM;AACT,EAAE;AACF,GAAG,cAAc,CAAC,EAAE,EAAE,MAAM,cAAc,aAAa,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;AACnE,EAAE;AACF,CAAC;AACD;AACA;AACA,SAAS,cAAc,CAAC,GAAG,aAAa,IAAI,EAAE,EAAE,eAAe;AAC/D,CAAC,IAAI,EAAE,GAAG,SAAS,EAAE,CAAC;AACtB,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;AACrD,CAAC,IAAI,GAAG,kBAAkB,CAAC,EAAE,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,SAAS,CAAC;AACzD,CAAC,IAAI,MAAM,iBAAiB,CAAC,GAAG,CAAC,MAAM,EAAE,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,SAAS,CAAC;AAC/D,CAAC,IAAI,KAAK,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC;AACjC,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,IAAI,IAAI,CAAC,CAAC;AACzB,CAAC,IAAI,GAAG,aAAa,EAAE,GAAG,EAAE,EAAE,IAAI,qBAAqB,EAAE,CAAC;AAC1D,CAAC,IAAI,KAAK,GAAG,iBAAiB,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,CAAC;AACnD,CAAC,IAAI,QAAQ,GAAG,EAAE,GAAG,KAAK,GAAG,KAAK,CAAC;AACnC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,QAAQ,EAAE;AAC/C,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE,MAAM,IAAI,KAAK,CAAC,QAAQ,IAAI,EAAE,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,GAAG,kCAAkC,CAAC,CAAC;AACrG,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;AACxC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC;AAC9C,EAAE;AACF;AACA,CAAC,cAAc,CAAC,EAAE,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;AACvD;AACA,CAAC,cAAc,CAAC,EAAE,EAAE,MAAM,iBAAiB,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;AAC3D,CAAC,cAAc,CAAC,EAAE,EAAE,MAAM,kBAAkB,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC;AAC9D,CAAC,cAAc,CAAC,EAAE,EAAE,MAAM,oBAAoB,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;AAC/D,CAAC,cAAc,CAAC,EAAE,EAAE,MAAM,iBAAiB,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;AAC7D,CAAC,cAAc,CAAC,EAAE,EAAE,MAAM,kBAAkB,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC;AAC/D,CAAC,cAAc,CAAC,EAAE,EAAE,MAAM,uBAAuB,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;AAClE,CAAC,cAAc,CAAC,EAAE,EAAE,MAAM,oBAAoB,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;AAChE,CAAC,cAAc,CAAC,EAAE,EAAE,MAAM,kBAAkB,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;AAC9D,CAAC,cAAc,CAAC,EAAE,EAAE,MAAM,gBAAgB,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;AAC1D,CAAC,cAAc,CAAC,EAAE,EAAE,MAAM,aAAa,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC1D;AACA;AACA;AACA,CAAC,cAAc,CAAC,EAAE,EAAE,MAAM,gBAAgB,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;AAC5D,CAAC,cAAc,CAAC,EAAE,EAAE,MAAM,gBAAgB,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;AAC5D;AACA,CAAC,GAAG,EAAE,EAAE,mBAAmB,CAAC,EAAE,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;AAC7C;AACA,CAAC,cAAc,CAAC,EAAE,EAAE,MAAM,mBAAmB,gBAAgB,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC;AAC5E;AACA;AACA,CAAC,GAAG,EAAE,EAAE,EAAE,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC;AAC1B,CAAC,IAAI,QAAQ,GAAG,EAAE,CAAC;AACnB,CAAC,IAAI,GAAG,GAAG,EAAE,CAAC;AACd,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;AACrE,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE;AAC7C,EAAE,GAAG,KAAK,EAAE,GAAG,GAAG,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;AACvC,EAAE,EAAE,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;AACrB,EAAE,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE;AAC1C,GAAG,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;AACtB,GAAG,IAAI,IAAI,GAAG,KAAK,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC;AACvC,GAAG,GAAG,CAAC,IAAI,EAAE,SAAS;AACtB;AACA,GAAG,mBAAmB,CAAC,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC;AAC7C,GAAG,GAAG,EAAE,IAAI,IAAI,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;AACrD,GAAG,GAAG,EAAE,IAAI,IAAI,CAAC,CAAC,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;AACjD,GAAG;AACH,EAAE;AACF,CAAC,IAAI,KAAK,cAAc,MAAM,CAAC,QAAQ,IAAI,MAAM,CAAC,IAAI,IAAI,CAAC,CAAC;AAC5D;AACA;AACA;AACA,CAAC,GAAG,EAAE,EAAE,cAAc,CAAC,EAAE,EAAE,MAAM,gBAAgB,aAAa,CAAC,CAAC,GAAG,CAAC,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;AACpF;AACA,CAAC,GAAG,EAAE,IAAI,CAAC,EAAE,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,cAAc,CAAC,EAAE,EAAE,MAAM,mBAAmB,gBAAgB,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;AACnH;AACA,CAAC,GAAG,EAAE,EAAE,qBAAqB,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;AACtC;AACA,CAAC,cAAc,CAAC,EAAE,EAAE,MAAM,iBAAiB,qBAAqB,CAAC,KAAW,CAAC,CAAC,CAAC;AAC/E;AACA,CAAC,GAAG,EAAE,EAAE,UAAU,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;AAC3B;AACA,CAAC,cAAc,CAAC,EAAE,EAAE,MAAM,WAAW,CAAC;AACtC,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,CAAC;AACjB,CAAC;AACD;AACA;AACA,SAAS,kBAAkB,CAAC,EAAE,eAAe,IAAI,EAAE,IAAI,gBAAgB;AACvE,CAAC,IAAI,CAAC,GAAG,SAAS,EAAE,CAAC;AACrB,CAAC,IAAI,GAAG,kBAAkB,CAAC,EAAE,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,SAAS,CAAC;AACzD,CAAC,IAAI,OAAO,wBAAwB,GAAG,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;AACpD,CAAC,IAAI,GAAG,uBAAuB,GAAG,CAAC,OAAO,EAAE,+BAA+B,cAAc;AACzF,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,IAAI,IAAI,CAAC,EAAE,EAAE,GAAG,IAAI,CAAC,IAAI,IAAI,CAAC,CAAC;AAC9C,CAAC,cAAc,CAAC,CAAC,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;AACtD,CAAC,GAAG,IAAI,CAAC,QAAQ,IAAI,KAAK,EAAE,cAAc,CAAC,CAAC,EAAE,MAAM,aAAa,CAAC;AAClE,CAAC,cAAc,CAAC,CAAC,EAAE,MAAM,qBAAqB,EAAE,GAAG,WAAW,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,CAAC;AAC/E,CAAC,cAAc,CAAC,CAAC,EAAE,MAAM,YAAY,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;AACrD,CAAC,GAAG,EAAE,EAAE,cAAc,CAAC,CAAC,EAAE,MAAM,kBAAkB,CAAC;AACnD,CAAC,GAAG,EAAE,EAAE,cAAc,CAAC,CAAC,EAAE,MAAM,kBAAkB,CAAC;AACnD,CAAC,cAAc,CAAC,CAAC,EAAE,MAAM,oBAAoB,CAAC;AAC9C,CAAC,cAAc,CAAC,CAAC,EAAE,MAAM,oBAAoB,iBAAiB,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC,CAAC;AACjF;AACA,CAAC,cAAc,CAAC,CAAC,EAAE,MAAM,iBAAiB,WAAW,CAAC,EAAE,GAAG,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC;AAC7E;AACA,CAAC,GAAG,EAAE,EAAE,cAAc,CAAC,CAAC,EAAE,MAAM,YAAY,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;AAC5D,CAAC,GAAG,EAAE,EAAE,cAAc,CAAC,CAAC,EAAE,MAAM,kBAAkB,CAAC;AACnD,CAAC,cAAc,CAAC,CAAC,EAAE,MAAM,gBAAgB,aAAa,CAAC,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC;AAC9E,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC,EAAE,MAAM,cAAc,CAAC;AAC5D;AACA,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,MAAM,EAAE;AACrB,EAAE,IAAI,KAAK,cAAc,GAAG,CAAC,QAAQ,IAAI,cAAc,CAAC;AACxD,EAAE,cAAc,CAAC,CAAC,EAAE,MAAM,iBAAiB,qBAAqB,CAAC,KAAW,CAAC,CAAC,CAAC;AAC/E,EAAE;AACF,CAAC,cAAc,CAAC,CAAC,EAAE,MAAM,4BAA4B,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC;AACxE;AACA;AACA;AACA,CAAC,cAAc,CAAC,CAAC,EAAE,MAAM,mBAAmB,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;AAC9D,CAAC,cAAc,CAAC,CAAC,EAAE,MAAM,gBAAgB,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;AAC3D,CAAC,cAAc,CAAC,CAAC,EAAE,MAAM,iBAAiB,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;AAC1D,CAAC,GAAG,EAAE,EAAE,cAAc,CAAC,CAAC,EAAE,MAAM,iBAAiB,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;AACnE,CAAC,GAAG,EAAE,EAAE,cAAc,CAAC,CAAC,EAAE,MAAM,qBAAqB,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;AACrE,CAAC,cAAc,CAAC,CAAC,EAAE,MAAM,gBAAgB,aAAa,CAAK,CAAC,CAAC,CAAC;AAC9D,CAAC,cAAc,CAAC,CAAC,EAAE,MAAM,eAAe,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;AAC1D,CAAC,cAAc,CAAC,CAAC,EAAE,MAAM,gBAAgB,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;AACzD,CAAC,cAAc,CAAC,CAAC,EAAE,MAAM,iBAAiB,SAAS,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC;AAC3E,CAAC,cAAc,CAAC,CAAC,EAAE,MAAM,sBAAsB,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;AAChE,CAAC,GAAG,EAAE,EAAE,cAAc,CAAC,CAAC,EAAE,MAAM,mBAAmB,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;AACrE,CAAC,cAAc,CAAC,CAAC,EAAE,MAAM,iBAAiB,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;AAC1D;AACA,CAAC,iBAAiB,CAAC,CAAC,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC;AAChC,CAAC,gBAAgB,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;AACnC,CAAC,mBAAmB,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;AAC9B;AACA,CAAC,GAAG,EAAE,EAAE,cAAc,CAAC,CAAC,EAAE,MAAM,iBAAiB,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;AACnE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;AACjB;AACA,CAAC,IAAI,CAAC,GAAG,SAAS,EAAE,CAAC;AACrB;AACA,CAAC,GAAG,EAAE,EAAE,cAAc,CAAC,CAAC,EAAE,MAAM,gBAAgB,aAAa,EAAE,CAAC,CAAC;AACjE;AACA;AACA;AACA,CAAC,GAAG,EAAE,IAAI,IAAI,CAAC,OAAO,EAAE,mBAAmB,CAAC,CAAC,EAAE,MAAM,YAAY,SAAS,CAAC,IAAI,CAAC,OAAa,CAAC,CAAC,CAAC;AAChG;AACA;AACA,CAAC,cAAc,CAAC,CAAC,EAAE,MAAM,WAAW,CAAC;AACrC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;AACjB;AACA,CAAC,IAAI,CAAC,GAAG,SAAS,EAAE,CAAC;AACrB,CAAC,IAAI,IAAI,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;AACrB,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE,IAAI,IAAI,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,EAAE,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;AAC3G,CAAC,IAAI,KAAK,GAAG,CAAC,CAAC,MAAM,GAAG,IAAI,GAAG,CAAC,CAAC,MAAM,CAAC;AACxC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE;AAC3C,EAAE,IAAI,MAAM,gBAAgB,OAAO,CAAC,CAAC,CAAC,KAAK,EAAE,SAAS,CAAC;AACvD,EAAE,cAAc,CAAC,CAAC,EAAE,MAAM,oBAAoB,iBAAiB,CAAC,CAAC,GAAG,CAAC,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;AACtI,EAAE,KAAK,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;AAC1B,EAAE;AACF;AACA,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;AACjB,CAAC,GAAG,IAAI,IAAI,CAAC,CAAC,MAAM,EAAE,MAAM,IAAI,KAAK,CAAC,MAAM,GAAG,IAAI,GAAG,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC;AACzE;AACA,CAAC,IAAI,GAAG,GAAG,EAAE,CAAC;AACd,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAC1B,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAC1B,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAC1B,CAAC,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC;AACrB,CAAC;AACD;AACA;AACA,SAAS,eAAe,CAAC,EAAE,eAAe,IAAI,gBAAgB;AAC9D,CAAC,IAAI,CAAC,GAAG,IAAI,IAAI,EAAE,CAAC;AACpB,CAAC,IAAI,IAAI,GAAG,EAAE,CAAC;AACf;AACA,CAAC,GAAG,EAAE,IAAI,CAAC,EAAE,CAAC,GAAG,EAAE;AACnB,EAAE,EAAE,CAAC,GAAG,GAAG,GAAG,CAAC,SAAS,CAAC,CAAC;AAC1B,EAAE;AACF,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,GAAG,EAAE;AAClB,EAAE,QAAQ,EAAE,CAAC,CAAC,cAAc,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;AACrC;AACA,EAAE,CAAC,CAAC,MAAM,GAAG,SAAS,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC;AAC5D,EAAE,CAAC,CAAC,GAAG,GAAG,EAAE,CAAC,GAAG,CAAC;AACjB,EAAE;AACF;AACA,CAAC,CAAC,CAAC,OAAO,WAAW,EAAE,kBAAkB,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC;AACpF,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;AACnB;AACA,CAAC,CAAC,CAAC,OAAO,GAAG,EAAE,CAAC;AAChB,CAAC,cAAc,CAAC,CAAC,CAAC,OAAO,EAAE,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACvD;AACA,CAAC,GAAG,CAAC,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,GAAG,EAAE,CAAC;AAC7B;AACA,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,cAAc,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;AAC5F,CAAC,IAAI,CAAC,OAAO,CAAC,kBAAkB,CAAC,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;AAC/C,CAAC,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC;AACtB,CAAC;AACD;AACA,SAAS,cAAc,CAAC,EAAE,eAAe,IAAI,gBAAgB;AAC7D,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,UAAU,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE;AAChD,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;AACvC,EAAE,GAAG,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,SAAS;AAClC,EAAE,IAAI,KAAK,GAAG,YAAY,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;AACvC,EAAE,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,EAAE;AACtB,GAAG,GAAG,OAAO,OAAO,IAAI,WAAW,IAAI,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,KAAK,CAAC,aAAa,GAAG,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,sDAAsD,CAAC,CAAC;AAC/J,GAAG;AACH,EAAE;AACF;AACA,CAAC,IAAI,CAAC,GAAG,IAAI,IAAI,EAAE,CAAC;AACpB,CAAC,OAAO,CAAC,CAAC,IAAI,IAAI,CAAC;AACnB,EAAE,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,OAAO,eAAe,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;AACnD,EAAE,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,OAAO,eAAe,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;AAC3D,EAAE;AACF,CAAC,MAAM,IAAI,KAAK,CAAC,eAAe,GAAG,CAAC,CAAC,QAAQ,GAAG,WAAW,CAAC,CAAC;AAC7D,CAAC;AACD;AACA,SAAS,aAAa,CAAC,GAAG,aAAa,KAAK,eAAe;AAC3D,CAAC,IAAI,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;AACxB,CAAC,IAAI,KAAK,GAAG,CAAC,IAAI,CAAC,KAAK,IAAI,IAAI,IAAI,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;AACvD,CAAC,IAAI,EAAE,kBAAkB,EAAE,SAAS,CAAC,CAAC,GAAG,KAAK,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC;AACjE,CAAC,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,aAAa,EAAE,EAAE,CAAC,CAAC;AACtC,CAAC,IAAI,IAAI,WAAW,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;AACzC,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAC;AACnE,CAAC,IAAI,KAAK,WAAW,GAAG,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;AAC5C,CAAC,IAAI,CAAC,cAAc,IAAI,CAAC,KAAK,EAAE,CAAC,cAAc,KAAK,IAAI,KAAK,CAAC,KAAK,IAAI,GAAG,CAAC,MAAM,CAAC;AAClF,CAAC,IAAI,IAAI,GAAG,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,gBAAgB,EAAE,MAAM,CAAC,CAAC;AACnE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;AACnC,CAAC,IAAI,KAAK,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAChE,CAAC,IAAI,MAAM,oBAAoB,EAAE,CAAC;AAClC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE;AAClC,EAAE,IAAI,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;AAC3B,EAAE,IAAI,EAAE,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;AACxC,EAAE,GAAG,EAAE,IAAI,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,SAAS,IAAI,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,EAAE;AACrG,EAAE,GAAG,EAAE,IAAI,KAAK,IAAI,EAAE,IAAI,KAAK,EAAE,SAAS;AAC1C,EAAE,IAAI,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;AACtC,EAAE,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE;AACpC,GAAG,IAAI,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;AAC9B,GAAG,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,SAAS;AACvC,GAAG,IAAI,CAAC,GAAG,IAAI,EAAE,EAAE,GAAG,CAAC,CAAC;AACxB;AACA,GAAG,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,GAAG,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AAC7E,GAAG,IAAI,IAAI,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,MAAM,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE;AACnD,IAAI,IAAI,MAAM,aAAa,MAAM,CAAC,IAAI,CAAC,CAAC;AACxC,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,EAAE;AAC/F,IAAI;AACJ,GAAG,IAAI,GAAG,GAAG,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AAC3D,GAAG,EAAE,GAAG,GAAG,CAAC,OAAO,GAAG,CAAC,GAAG,CAAC,OAAO,GAAG,CAAC,CAAC;AACvC,GAAG,GAAG,CAAC,EAAE,GAAG,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AACpG,GAAG,IAAI,EAAE,cAAc,GAAG,CAAC,CAAC,IAAI,GAAG,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;AACpD;AACA,GAAG,GAAG,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC,SAAS,EAAE;AACvC,GAAG,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;AACrB,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AACpE,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AACpE,GAAG,GAAG,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC,SAAS,EAAE;AACvC,GAAG,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;AACjC,GAAG,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,MAAM,IAAI,EAAE,IAAI,GAAG,CAAC,CAAE;AAClD,QAAQ,GAAG,CAAC,KAAK,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;AAC7C,QAAQ,GAAG,CAAC,KAAK,OAAO,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC;AAC/C,QAAQ,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;AAC3D,QAAQ,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,EAAE;AAC3C,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;AAC1C,IAAI,GAAG,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;AAC9D,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,IAAI,SAAS,CAAC,EAAE,CAAC,CAAC;AACvC,IAAI;AACJ,GAAG,GAAG,KAAK,EAAE,EAAE,GAAG,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE;AAChF,QAAQ,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AACxC,GAAG,CAAC,IAAI,EAAE,CAAC;AACX,GAAG;AACH,EAAE;AACF,CAAC,EAAE,CAAC,MAAM,CAAC,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC;AAClC,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,EAAE,CAAC,SAAS,CAAC,GAAG,MAAM,CAAC;AAC1C,CAAC,OAAO,EAAE,CAAC;AACX,CAAC;AACD,SAAS,aAAa,CAAC,EAAE,gBAAgB,CAAC,YAAY,CAAC,aAAa,CAAC,gCAAgC;AACrG,CAAC,IAAI,CAAC,qBAAqB,EAAE,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC,CAAC;AAC/C,CAAC,IAAI,EAAE,qBAAqB,EAAE,CAAC;AAC/B,CAAC,IAAI,EAAE,IAAI,EAAE,SAAS,CAAC;AACvB,CAAC,IAAI,KAAK,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC;AACjC,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE;AACrC,EAAE,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;AACrB,EAAE,IAAI,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE;AACpC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,SAAS;AAC7C,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,SAAS;AAC7C,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE;AACvD,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM;AACrE,GAAG;AACH,EAAE,GAAG,EAAE,GAAG,CAAC,EAAE,SAAS;AACtB,EAAE,IAAI,KAAK,GAAG,UAAU,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;AAC5C,EAAE,IAAI,IAAI,GAAG,KAAK,GAAG,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC;AACzD;AACA,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,IAAI,CAAC,CAAC,IAAI,IAAI,MAAM,IAAI,CAAC,CAAC,IAAI,UAAU,CAAC,IAAI,CAAC,CAAC,KAAK,WAAW,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;AAChH,EAAE,EAAE,IAAI,EAAE,SAAS,CAAC;AACpB,EAAE,GAAG,EAAE,GAAG,CAAC,EAAE,EAAE,CAAC,OAAO,GAAG,EAAE,CAAC;AAC7B,EAAE,GAAG,EAAE,GAAG,CAAC,EAAE,EAAE,CAAC,OAAO,GAAG,EAAE,CAAC;AAC7B,EAAE,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC,GAAG,+BAA+B,GAAG,CAAC,GAAG,SAAS,CAAC;AACrE,OAAO,GAAG,IAAI,EAAE;AAChB,GAAG,EAAE,CAAC,QAAQ,CAAC,GAAG,IAAI,IAAI,IAAI,CAAC,CAAC,IAAI,GAAG,CAAC;AACxC,GAAG,GAAG,IAAI,CAAC,CAAC,IAAI,IAAI,EAAE,EAAE,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;AAC5C,GAAG,GAAG,IAAI,CAAC,CAAC,IAAI,IAAI,EAAE,EAAE,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;AAC5C,GAAG,GAAG,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,IAAI,GAAG,EAAE,MAAM,CAAC,CAAC,CAAC,IAAI,GAAG,EAAE,CAAC,GAAG,WAAW,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,IAAI,GAAG,CAAC,GAAG,MAAM,CAAC;AACxH,GAAG;AACH,EAAE,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,IAAI,KAAK,IAAI,GAAG,GAAG,KAAK,CAAC;AACxC,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;AAClC,EAAE;AACF,CAAC,IAAI,QAAQ,GAAG,MAAM,CAAC;AACvB,CAAC,OAAO,QAAQ,GAAG,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC;AACzC,CAAC;AACD;AACA,IAAI,UAAU,GAAG,qFAAqF,CAAC;AACvG,IAAI,QAAQ,GAAG,gBAAgB,CAAC;AAChC;AACA,SAAS,gBAAgB,CAAC,GAAG,aAAa,IAAI,eAAe;AAC7D,CAAC,IAAI,IAAI,GAAG,GAAG,CAAC,KAAK,CAAC,oCAAoC,CAAC,CAAC;AAC5D,CAAC,GAAG,CAAC,IAAI,IAAI,IAAI,CAAC,MAAM,IAAI,CAAC,EAAE,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAC;AACvF,CAAC,GAAG,IAAI,CAAC,MAAM,IAAI,CAAC,EAAE;AACtB,EAAE,IAAI,CAAC,GAAG,iBAAiB,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,IAAI,CAAC,CAAC;AAChE,EAAE,CAAC,CAAC,QAAQ,GAAG,MAAM,CAAC;AACtB,EAAE,OAAO,CAAC,CAAC;AACX,EAAE;AACF,CAAC,IAAI,EAAE,GAAG,QAAQ,EAAE,CAAC;AACrB,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,GAAG,EAAE,EAAE,iBAAiB,CAAC,EAAE,EAAE,aAAa,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,OAAO,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;AACtG,CAAC,EAAE,CAAC,QAAQ,GAAG,MAAM,CAAC;AACtB,CAAC,OAAO,EAAE,CAAC;AACX,CAAC;AACD;AACA,SAAS,kBAAkB,CAAC,EAAE,gBAAgB,CAAC,YAAY,CAAC,gCAAgC;AAC5F,CAAC,IAAI,GAAG,qBAAqB,EAAE,CAAC;AAChC,CAAC,OAAO,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,QAAQ,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,GAAG,OAAO,GAAG,CAAC,CAAC,EAAE,GAAG,GAAG,GAAG,EAAE,CAAC,GAAG,GAAG,CAAC;AAChF,CAAC;AACD;AACA,SAAS,aAAa,CAAC,EAAE,gBAAgB,IAAI,mDAAmD;AAChG,CAAC,IAAI,CAAC,GAAG,IAAI,IAAI,EAAE,CAAC;AACpB,CAAC,IAAI,MAAM,GAAG,CAAC,CAAC,MAAM,IAAI,IAAI,GAAG,CAAC,CAAC,MAAM,GAAG,UAAU,CAAC;AACvD,CAAC,IAAI,MAAM,GAAG,CAAC,CAAC,MAAM,IAAI,IAAI,GAAG,CAAC,CAAC,MAAM,GAAG,QAAQ,CAAC;AACrD,CAAC,IAAI,GAAG,qBAAqB,CAAC,MAAM,CAAC,CAAC;AACtC,CAAC,IAAI,CAAC,GAAG,YAAY,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;AAClC,CAAC,GAAG,CAAC,IAAI,CAAC,kBAAkB,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AACxC,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,GAAG,CAAC,IAAI,CAAC,aAAa,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AAC1E,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC,CAAC;AAC/B,CAAC,OAAO,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AACrB,CAAC;AACD;AACA,SAAS,aAAa,CAAC,EAAE,gBAAgB,KAAK,kBAAkB,KAAK,yBAAyB;AAC9F,CAAC,IAAI,IAAI,2CAA2C,KAAK,CAAC,IAAI,CAAC;AAC/D,CAAC,GAAG,CAAC,IAAI,EAAE;AACX;AACA,EAAE,MAAM,0BAA0B,GAAG,KAAK,CAAC,OAAO,GAAG,iBAAiB,CAAC;AACvE,EAAE;AACF;AACA,CAAC,IAAI,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;AACxB,CAAC,IAAI,KAAK,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC;AACjC,CAAC,IAAI,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,CAAC;AACxB,CAAC,GAAG,IAAI,CAAC,MAAM,IAAI,IAAI,EAAE;AACzB,EAAE,GAAG,OAAO,IAAI,CAAC,MAAM,IAAI,QAAQ,EAAE,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC;AACxD,OAAO;AACP,GAAG,IAAI,OAAO,mBAAmB,OAAO,IAAI,CAAC,MAAM,IAAI,QAAQ,GAAG,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC;AACzG,GAAG,IAAI,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,OAAO,CAAC,CAAC,CAAC;AACtC,GAAG;AACH,EAAE;AACF;AACA,CAAC,IAAI,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,EAAE,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;AACjE,CAAC,IAAI,KAAK,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;AACvD,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,EAAE;AAChB,EAAE,IAAI,MAAM,aAAa,YAAY,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;AAClD,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC9C,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC9C,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC9C,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC9C,EAAE,GAAG,IAAI,IAAI,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AACnD,EAAE;AACF,CAAC,IAAI,MAAM,oBAAoB,EAAE,EAAE,IAAI,GAAG,CAAC,CAAC;AAC5C,CAAC,IAAI,OAAO,sBAAsB,EAAE,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;AACpE,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;AAClD,CAAC,GAAG,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC;AACnC,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC,MAAM,IAAI,CAAC,GAAG,SAAS,EAAE,EAAE,EAAE,EAAE;AAChD,EAAE,IAAI,GAAG,2BAA2B,IAAI,CAAC,EAAE,CAAC,CAAC;AAC7C,EAAE,IAAI,qBAAqB,CAAC,GAAG,CAAC,EAAE;AAClC,GAAG,IAAI,IAAI,CAAC,OAAO,EAAE,SAAS;AAC9B,GAAG,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;AAC/B,GAAG;AACH,EAAE,IAAI,IAAI,6CAA6C,GAAG,CAAC,KAAK,CAAC,CAAC;AAClE,EAAE,IAAI,EAAE,GAAG,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,IAAI,CAAC,MAAM,EAAE,EAAE,EAAE,EAAE;AAC1C,GAAG,IAAI,GAAG,4BAA4B,IAAI,CAAC,EAAE,CAAC,CAAC;AAC/C,GAAG,IAAI,IAAI,CAAC,OAAO,IAAI,qBAAqB,CAAC,GAAG,CAAC,EAAE,SAAS;AAC5D,GAAG,IAAI,CAAC,eAAe,GAAG,CAAC,YAAY,CAAC,QAAQ,CAAC,GAAG,GAAG,CAAC,YAAY,CAAC,QAAQ,CAAC,GAAG,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,UAAU,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;AAC3J,GAAG,IAAI,CAAC,eAAe,GAAG,CAAC,YAAY,CAAC,QAAQ,CAAC,IAAI,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;AAC3E,GAAG,IAAI,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,MAAM,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE;AAC/C,IAAI,IAAI,CAAC,aAAa,MAAM,CAAC,IAAI,CAAC,CAAC;AACnC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,IAAI,IAAI,CAAC,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,EAAE;AACrG,IAAI;AACJ;AACA,GAAG,EAAE,GAAG,CAAC,GAAG,CAAC,YAAY,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;AAC1C,GAAG,IAAI,EAAE,EAAE,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,IAAI,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,IAAI,IAAI,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AAC/J,GAAG,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;AACjC,GAAG,IAAI,EAAE,cAAc,GAAG,CAAC,YAAY,CAAC,QAAQ,CAAC,IAAI,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;AACjF,GAAG,GAAG,CAAC,IAAI,IAAI,EAAE;AACjB,IAAI,GAAG,CAAC,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,IAAI,GAAG,CAAC;AACtC,SAAS,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC,MAAM,IAAI,CAAC,IAAI,EAAE,IAAI,GAAG,CAAC,CAAE;AAC5D,SAAS,GAAG,CAAC,KAAK,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;AAC9C,SAAS,GAAG,CAAC,KAAK,OAAO,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC;AAChD,SAAS,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;AAC5D,SAAS,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,EAAE;AAC5C,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;AAC3C,KAAK,GAAG,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;AAC/D,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,IAAI,SAAS,CAAC,EAAE,CAAC,CAAC;AACxC,KAAK;AACL,IAAI;AACJ,GAAG,GAAG,CAAC,CAAC,CAAC,KAAK,SAAS,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AAC9C;AACA;AACA,GAAG,IAAI,CAAC,GAAG,EAAE,EAAE,KAAK,GAAG,GAAG,CAAC,oBAAoB,CAAC,GAAG,CAAC,CAAC;AACrD,GAAG,GAAG,KAAK,IAAI,KAAK,CAAC,MAAM,EAAE,IAAI,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,KAAK,CAAC,MAAM,EAAE,EAAE,KAAK,EAAE,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,YAAY,CAAC,MAAM,CAAC,EAAE;AACrH,IAAI,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,GAAG,EAAE,MAAM;AACxE,IAAI;AACJ,GAAG,GAAG,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,WAAW,EAAE,IAAI,aAAa,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC;AACtG,GAAG,GAAG,KAAK,EAAE,EAAE,GAAG,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE;AAC5G,QAAQ,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AACtD,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;AACjD,GAAG,CAAC,IAAI,EAAE,CAAC;AACX,GAAG;AACH,EAAE,EAAE,CAAC,CAAC;AACN,EAAE;AACF,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,SAAS,CAAC,IAAI,EAAE,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;AACxE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC;AAC/C,CAAC,EAAE,CAAC,MAAM,CAAC,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC;AAClC,CAAC,GAAG,CAAC,IAAI,SAAS,EAAE,EAAE,CAAC,UAAU,CAAC,GAAG,YAAY,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC;AACjG,CAAC,OAAO,EAAE,CAAC;AACX,CAAC;AACD;AACA,SAAS,eAAe,CAAC,KAAK,kBAAkB,KAAK,yBAAyB;AAC9E,CAAC,IAAI,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;AACxB,CAAC,IAAI,EAAE,kBAAkB,EAAE,SAAS,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC;AACtE,CAAC,OAAO,aAAa,CAAC,EAAE,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;AACxC,CAAC;AACD;AACA,SAAS,aAAa,CAAC,KAAK,kBAAkB,IAAI,wBAAwB;AAC1E,CAAC,IAAI,CAAC,GAAG,iBAAiB,CAAC,eAAe,CAAC,KAAK,EAAE,IAAI,CAAC,EAAE,IAAI,CAAC,CAAC;AAC/D;AACA,CAAC,OAAO,CAAC,CAAC;AACV,CAAC;AACD;AACA,SAAS,qBAAqB,CAAC,OAAO,8BAA8B;AACpE,CAAC,IAAI,OAAO,cAAc,EAAE,CAAC;AAC7B,CAAC,IAAI,kBAAkB,iBAAiB,+BAA+B,CAAC,OAAO,CAAC,CAAC;AACjF,CAAC,GAAG,kBAAkB,EAAE,OAAO,GAAG,kBAAkB,CAAC,OAAO,CAAC,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC;AAC1F,CAAC,GAAG,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,KAAK,IAAI,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC;AAC/D,CAAC,OAAO,OAAO,KAAK,MAAM,CAAC;AAC3B,CAAC;AACD;AACA;AACA,SAAS,+BAA+B,CAAC,OAAO,gCAAgC;AAChF;AACA,CAAC,GAAG,OAAO,CAAC,aAAa,CAAC,WAAW,IAAI,OAAO,OAAO,CAAC,aAAa,CAAC,WAAW,CAAC,gBAAgB,KAAK,UAAU,EAAE,OAAO,OAAO,CAAC,aAAa,CAAC,WAAW,CAAC,gBAAgB,CAAC;AAC7K;AACA,CAAC,GAAG,OAAO,gBAAgB,KAAK,UAAU,EAAE,OAAO,gBAAgB,CAAC;AACpE,CAAC,OAAO,IAAI,CAAC;AACb,CAAC;AACD;AACA,SAAS,YAAY,CAAC,IAAI,uCAAuC;AACjE;AACA,CAAC,IAAI,KAAK,GAAG,IAAI;AACjB,GAAG,OAAO,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC;AACvD,GAAG,OAAO,CAAC,aAAa,CAAC,GAAG,CAAC;AAC7B,GAAG,OAAO,CAAC,4BAA4B,EAAE,SAAS,EAAE,CAAC,EAAE,EAAE,EAAE,OAAO,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;AACxG,GAAG,OAAO,CAAC,oBAAoB,CAAC,IAAI,CAAC;AACrC,GAAG,OAAO,CAAC,sBAAsB,CAAC,IAAI,CAAC,CAAC;AACxC,CAAC,IAAI,CAAC,GAAG,WAAW,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,CAAC;AACnD;AACA,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;AACZ,CAAC;AACD;AACA;AACA,SAAS,gBAAgB,CAAC,CAAC,aAAa,KAAK,EAAE,IAAI,EAAE;AACrD,CAAC,IAAI,iBAAiB,GAAG,IAAI,IAAI,EAAE,CAAC;AACpC,CAAC,IAAI,GAAG,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC;AAC7B,CAAC,SAAS,CAAC,SAAS,GAAG,CAAC,CAAC;AACzB,CAAC,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,qBAAqB,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,8BAA8B,CAAC,EAAE,CAAC,CAAC;AACxF,CAAI,IAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAgB,OAAO,GAAG,GAAG;AACxF,CAAC,OAAO,EAAE,GAAG,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG;AACnC,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;AACxC;AACA,EAAE,KAAK,cAAc,CAAC;AACtB,EAAE,KAAK,gBAAgB,CAAC;AACxB,EAAE,KAAK,kBAAkB,CAAC;AAC1B,EAAE,KAAK,YAAY,CAAC;AACpB,EAAE,KAAK,YAAY,CAAC;AACpB,EAAE,KAAK,YAAY;AACnB,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,GAAG,EAAE;AAEnB,IAAI,GAAG,KAAK,CAAC,sBAAsB,CAAC,IAAI,OAAO,EAAE;AACjD,KAAK,GAAG,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;AACrD,UAAU,GAAG,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;AAC1D,UAAU,GAAG,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;AAC1D,KAAK;AACL,IAAI,iBAAiB,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;AACvC,IAAI,EAAE,GAAG,EAAE,CAAC;AACZ,IAAI,MAAM,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE;AAEnD,IAAI,EAAE,GAAG,EAAE,CAAC;AACZ,IAAI,KAAK,GAAG,WAAW,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;AACtC,IAAI,CAAC,MAAM;AACX;AACA;AACA,EAAE,KAAK,eAAe;AACtB,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,GAAG,EAAE;AAEnB,IAAI,iBAAiB,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC;AAC9C,IAAI,EAAE,GAAG,EAAE,CAAC;AACZ,IAAI,MAAM,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE;AAEnD,IAAI,EAAE,GAAG,EAAE,CAAC;AACZ,IAAI,KAAK,GAAG,WAAW,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;AACtC,IAAI,CAAC,MAAM;AACX;AACA;AACA,EAAE,KAAK,SAAS;AAChB,GAAG,EAAE,IAAI,SAAS,CAAC;AACnB,GAAG,MAAM;AACT;AACA,EAAE,KAAK,MAAM;AACb,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,GAAG,EAAE;AACnB,IAAI,OAAO,GAAG,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,SAAS,CAAC,SAAS,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;AAClE;AACA,IAAI,GAAG,OAAO,IAAI,GAAG,IAAI,KAAK,CAAC,CAAC,CAAC,IAAI,0BAA0B,EAAE,EAAE,IAAI,GAAG,CAAC;AAC3E,SAAS,EAAE,IAAI,GAAG,GAAG,OAAO,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,GAAG,CAAC;AACvD,IAAI,MAAM,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE;AACnD,IAAI,IAAI,GAAG,SAAS,CAAC,SAAS,CAAC;AAC/B,IAAI,CAAC,MAAM;AACX;AACA;AACA,EAAE,KAAK,KAAK,EAAE;AACd,GAAG,CAAC,GAAG,WAAW,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;AACjC,GAAG,OAAO,CAAC,CAAC,OAAO,CAAC;AACpB,IAAI,KAAK,OAAO,EAAE,EAAE,IAAI,GAAG,CAAC,CAAC,MAAM;AACnC,IAAI,KAAK,MAAM,EAAE,EAAE,IAAI,IAAI,CAAC,CAAC,MAAM;AACnC,IAAI,SAAS,EAAE,IAAI,IAAI,CAAC,CAAC,MAAM;AAC/B,IAAI;AACJ,GAAG,CAAC,MAAM;AACV;AACA,EAAE,KAAK,aAAa,EAAE;AACtB,GAAG,CAAC,GAAG,WAAW,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;AACjC,GAAG,OAAO,CAAC,CAAC,OAAO,CAAC;AACpB,IAAI,KAAK,OAAO,EAAE,EAAE,IAAI,KAAK,CAAC,CAAC,MAAM;AACrC,IAAI,KAAK,MAAM,EAAE,EAAE,IAAI,MAAM,CAAC,CAAC,MAAM;AACrC,IAAI,SAAS,EAAE,IAAI,KAAK,CAAC,CAAC,MAAM;AAChC,IAAI;AACJ,GAAG,CAAC,MAAM;AACV;AACA,EAAE,KAAK,KAAK,EAAE;AACd,GAAG,CAAC,GAAG,WAAW,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;AACjC,GAAG,OAAO,CAAC,CAAC,OAAO,CAAC;AACpB,IAAI,KAAK,OAAO,EAAE,EAAE,IAAI,IAAI,CAAC,CAAC,MAAM;AACpC,IAAI,KAAK,MAAM,EAAE,EAAE,IAAI,MAAM,CAAC,CAAC,MAAM;AACrC,IAAI,SAAS,EAAE,IAAI,MAAM,CAAC,CAAC,MAAM;AACjC,IAAI;AACJ,GAAG,CAAC,MAAM;AACV;AACA,EAAE,KAAK,OAAO,EAAE;AAChB,GAAG,CAAC,GAAG,WAAW,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;AACjC,GAAG,OAAO,CAAC,CAAC,OAAO,CAAC;AACpB,IAAI,KAAK,OAAO,EAAE,EAAE,IAAI,GAAG,CAAC,CAAC,MAAM;AACnC,IAAI,KAAK,MAAM,EAAE,EAAE,IAAI,IAAI,CAAC,CAAC,MAAM;AACnC,IAAI,SAAS,EAAE,IAAI,IAAI,CAAC,CAAC,MAAM;AAC/B,IAAI;AACJ,GAAG,CAAC,MAAM;AACV;AACA,EAAE,KAAK,SAAS,EAAE;AAClB,GAAG,CAAC,GAAG,WAAW,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;AACjC,GAAG,OAAO,CAAC,CAAC,OAAO,CAAC;AACpB,IAAI,KAAK,OAAO,EAAE,EAAE,IAAI,GAAG,CAAC,CAAC,MAAM;AACnC,IAAI,KAAK,MAAM,EAAE,EAAE,IAAI,IAAI,CAAC,CAAC,MAAM;AACnC,IAAI,SAAS,EAAE,IAAI,IAAI,CAAC,CAAC,MAAM;AAC/B,IAAI;AACJ,GAAG,CAAC,MAAM;AACV;AACA,EAAE,KAAK,OAAO,EAAE;AAChB,GAAG,CAAC,GAAG,WAAW,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;AACjC,GAAG,GAAG,CAAC,CAAC,SAAS,CAAC,EAAE,EAAE,IAAI,IAAI,CAAC;AAC/B,GAAG,OAAO,CAAC,CAAC,OAAO,CAAC;AACpB,IAAI,KAAK,OAAO,EAAE,EAAE,IAAI,GAAG,CAAC,CAAC,MAAM;AACnC,IAAI,KAAK,MAAM,EAAE,EAAE,IAAI,IAAI,CAAC,CAAC,MAAM;AACnC,IAAI,SAAS,EAAE,IAAI,GAAG,CAAC,CAAC,MAAM;AAC9B,IAAI;AACJ,GAAG,CAAC,MAAM;AACV;AACA,EAAE,KAAK,SAAS,EAAE;AAClB,GAAG,CAAC,GAAG,WAAW,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;AACjC,GAAG,OAAO,CAAC,CAAC,OAAO,CAAC;AACpB,IAAI,KAAK,OAAO,EAAE,EAAE,IAAI,GAAG,CAAC,CAAC,MAAM;AACnC,IAAI,KAAK,MAAM,EAAE,EAAE,IAAI,IAAI,CAAC,CAAC,MAAM;AACnC,IAAI,SAAS,EAAE,IAAI,IAAI,CAAC,CAAC,MAAM;AAC/B,IAAI;AACJ,GAAG,GAAG,CAAC,CAAC,gBAAgB,CAAC,EAAE,EAAE,IAAI,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC;AACvE,GAAG,CAAC,MAAM;AACV;AACA,EAAE,KAAK,MAAM,EAAE;AACf,GAAG,CAAC,GAAG,WAAW,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;AACjC,GAAG,OAAO,CAAC,CAAC,OAAO,CAAC;AACpB,IAAI,KAAK,OAAO,EAAE,EAAE,IAAI,IAAI,CAAC,CAAC,MAAM;AACpC,IAAI,KAAK,MAAM,EAAE,EAAE,IAAI,MAAM,CAAC,CAAC,MAAM;AACrC,IAAI,SAAS,EAAE,IAAI,IAAI,CAAC,CAAC,MAAM;AAC/B,IAAI;AACJ,GAAG,CAAC,MAAM;AACV;AACA,EAAE,KAAK,OAAO;AACd,GAAG,EAAE,IAAI,OAAO,CAAC;AACjB,GAAG,MAAM;AACT;AACA,EAAE,KAAK,cAAc,CAAC;AACtB,EAAE,KAAK,SAAS;AAChB,GAAG,OAAO,CAAC,KAAK,CAAC,0CAA0C,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;AACrE,GAAG,MAAM;AACT;AACA,EAAE,KAAK,gBAAgB;AACvB,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,GAAG,EAAE;AACnB,IAAI,OAAO,GAAG,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,SAAS,CAAC,SAAS,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;AAClE;AACA,IAAI,EAAE,IAAI,GAAG,GAAG,OAAO,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,IAAI,CAAC;AACnD,IAAI,MAAM,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE;AACnD,IAAI,IAAI,GAAG,SAAS,CAAC,SAAS,CAAC;AAC/B,IAAI,CAAC,MAAM;AACX;AACA,EAAE,KAAK,mBAAmB;AAC1B;AACA,GAAG,CAAC,GAAG,WAAW,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;AACjC,GAAG,EAAE,IAAI,IAAI,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC,GAAG,GAAG,IAAI,YAAY,CAAC,CAAC,CAAC,sBAAsB,CAAC,CAAC,GAAG,GAAG,GAAG,EAAE,CAAC,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,qBAAqB,CAAC,IAAI,CAAC,CAAC,CAAC;AAC5P,GAAG,MAAM;AACT;AACA,EAAE,KAAK,UAAU;AACjB;AACA,GAAG,CAAC,GAAG,WAAW,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;AACjC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,oBAAoB,CAAC,EAAE,EAAE,IAAI,GAAG,CAAC;AAC3C,QAAQ,EAAE,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC;AAClD,GAAG,EAAE,IAAI,GAAG,CAAC;AACb,GAAG,EAAE,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,sBAAsB,CAAC,IAAI,CAAC,CAAC,CAAC;AACpD,GAAG,EAAE,IAAI,GAAG,CAAC;AACb,GAAG,GAAG,CAAC,CAAC,CAAC,mBAAmB,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC,mBAAmB,CAAC,CAAC;AAC5D,QAAQ,EAAE,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,wBAAwB,CAAC,IAAI,CAAC,CAAC,CAAC;AAC3D,GAAG,MAAM;AACT;AACA,EAAE,KAAK,iBAAiB;AACxB;AACA,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,GAAG,EAAE;AACnB,IAAI,EAAE,IAAI,GAAG,GAAG,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,SAAS,CAAC,SAAS,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,GAAG,CAAC;AAC9F,IAAI,MAAM,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE;AACnD,IAAI,IAAI,GAAG,SAAS,CAAC,SAAS,CAAC;AAC/B,IAAI,MAAM,EAAE,IAAI,GAAG,CAAC;AACpB,GAAG,MAAM;AACT;AACA,EAAE,KAAK,iBAAiB;AACxB,GAAG,CAAC,GAAG,WAAW,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;AACjC,GAAG,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,WAAW,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC;AACzD,IAAI,KAAK,QAAQ,CAAC,CAAC,KAAK,KAAK,EAAE,EAAE,GAAG,OAAO,GAAG,EAAE,CAAC,CAAC,MAAM;AACxD,IAAI;AACJ,GAAG,MAAM;AACT;AACA,EAAE,KAAK,cAAc;AACrB,GAAG,EAAE,IAAI,GAAG,CAAC;AACb,GAAG,MAAM;AACT;AACA,EAAE,KAAK,KAAK;AACZ;AACA,GAAG,CAAC,GAAG,WAAW,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;AACjC,GAAG,GAAG,WAAW,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,IAAI,YAAY,EAAE,EAAE,GAAG,iBAAiB,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,GAAG,GAAG,GAAG,EAAE,CAAC;AAC5G,QAAQ,OAAO,CAAC,KAAK,CAAC,sCAAsC,GAAG,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC;AAC/E,GAAG,MAAM;AACT;AACA,EAAE,KAAK,QAAQ;AACf;AACA,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,GAAG,EAAE,MAAM;AACzB,GAAG,CAAC,GAAG,WAAW,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;AACjC,GAAG,GAAG,GAAG,EAAE,CAAC;AACZ,GAAG,GAAG,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC,CAAC;AACnD,GAAG,GAAG,YAAY,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,EAAE,GAAG,GAAG,QAAQ,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC;AAChG,GAAG,GAAG,CAAC,CAAC,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC,CAAC,gBAAgB,CAAC,EAAE,GAAG,IAAI,GAAG,CAAC;AACnE,GAAG,GAAG,CAAC,CAAC,CAAC,oBAAoB,CAAC,EAAE,GAAG,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC,CAAC;AAChF,GAAG,GAAG,CAAC,CAAC,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC,oBAAoB,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC,oBAAoB,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AACnI,GAAG,EAAE,IAAI,GAAG,CAAC;AACb,GAAG,MAAM;AACT;AACA,EAAE,KAAK,eAAe;AACtB;AACA,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,GAAG,EAAE;AACnB,IAAI,GAAG,KAAK,IAAI,CAAC,EAAE,EAAE,IAAI,GAAG,GAAG,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,SAAS,CAAC,SAAS,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,GAAG,CAAC;AAC7G,SAAS,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,GAAG,GAAG,GAAG,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,SAAS,CAAC,SAAS,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,GAAG,GAAG,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;AACzI,IAAI,MAAM,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE;AACnD,IAAI,IAAI,GAAG,SAAS,CAAC,SAAS,CAAC;AAC/B,IAAI,KAAK,GAAG,CAAC,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;AACzD,IAAI,CAAC,MAAM;AACX;AACA,EAAE,CAAC;AACH,CAAC,OAAO,iBAAiB,CAAC;AAC1B,CAAC;AACD;AACA,SAAS,iBAAiB,CAAC,CAAC,aAAa,KAAK,EAAE,IAAI,eAAe;AACnE,EAAE,IAAI,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;AAEzB,EAAE,IAAI,GAAG,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC;AAC9B,EAAE,IAAI,KAAK,kBAAkB,EAAE,EAAE,GAAG,CAAC;AACrC,EAAE,IAAI,GAAG,YAAY;AACrB,EAAE,IAAI,KAAK,EAAE,EAAE,GAAG,EAAE,EAAE,IAAI,GAAG,CAAC,CAAC;AAC/B,EAAE,IAAI,OAAO,4BAA4B;AACzC,EAAE,IAAI,MAAM,mBAAmB;AAC/B,EAAE,IAAI,MAAM,GAAG,EAAE,EAAE,UAAU,qBAAqB,EAAE,CAAC;AACrD,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC;AACzD,EAAE,IAAI,EAAE,EAAE,CAAC,uDAAuD;AAClE,EAAE,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,SAAS,CAAC;AAClC,EAAK,IAAC,KAAK,GAAG,EAAE,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAsB;AACpD,EAAE,IAAI,KAAK,GAAG,EAAE,CAAC;AACjB,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACzE,EAAE,IAAI,MAAM,GAAG,CAAC,CAAC;AACjB,EAAE,IAAI,iBAAiB,GAAG,IAAI,IAAI,EAAE,EAAE,MAAM,GAAG,EAAE,CAAC;AAClD,EAAE,IAAI,MAAM,oBAAoB,EAAE,EAAE,MAAM,GAAG,EAAE,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;AAChE,EAAE,IAAI,OAAO,sBAAsB,EAAE,EAAE,OAAO,GAAG,CAAC,EAAE,OAAO,GAAG,CAAC,CAAC;AAChE,EAAE,IAAI,MAAM,8BAA8B,EAAE,CAAC;AAC7C,EAAE,IAAI,EAAE,GAAG,CAAC,KAAK,CAAC,EAAE,EAAE,OAAO,CAAC,EAAE,CAAC,CAAC;AAClC,EAAE,IAAI,IAAI,IAAI,EAAE,SAAS,CAAC;AAC1B,EAAE,IAAI,IAAI,wBAAwB,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;AAC3C,EAAE,IAAI,QAAQ,sBAAsB,EAAE,EAAE,OAAO,gBAAgB,EAAE,SAAS,CAAC;AAC3E,EAAE,IAAI,OAAO,GAAG,EAAE,EAAE,UAAU,GAAG,CAAC,CAAC;AACnC,EAAE,IAAI,MAAM,GAAG,KAAK,EAAE,OAAO,GAAG,KAAK,CAAC;AACtC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;AACZ,EAAE,IAAI,OAAO,GAAG,CAAC,CAAC;AAClB,EAAE,SAAS,CAAC,SAAS,GAAG,CAAC,CAAC;AAC1B,EAAE,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,qBAAqB,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,8BAA8B,CAAC,EAAE,CAAC,CAAC;AACzF,EAAE,OAAO,EAAE,GAAG,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;AAC1E;AACA,GAAG,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK;AAC3B,IAAI,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,GAAG,EAAE;AACpB,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC;AAC3F,UAAU,EAAE,CAAC,MAAM,CAAC,GAAG,OAAO,CAAC;AAC/B,KAAK,GAAG,IAAI,CAAC,SAAS,GAAG,CAAC,IAAI,IAAI,CAAC,SAAS,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE;AAC3D,MAAM,EAAE,CAAC,UAAU,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,CAAC;AAClC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC;AACrC,MAAM,EAAE,CAAC,MAAM,CAAC,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC;AACvC,MAAM;AACN,KAAK,GAAG,MAAM,CAAC,MAAM,EAAE,EAAE,CAAC,SAAS,CAAC,GAAG,MAAM,CAAC;AAC9C,KAAK,GAAG,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC;AAC9C,KAAK,OAAO,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC;AAClD,KAAK,GAAG,OAAO,IAAI,KAAK,WAAW,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;AAC7D,KAAK,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;AACnC,KAAK,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;AAC/B,KAAK,OAAO,GAAG,KAAK,CAAC;AACrB,KAAK;AACL,SAAS,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE;AAClD,KAAK,OAAO,GAAG,WAAW,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;AACzC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;AAChB,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AACjE,KAAK,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC,MAAM,GAAG,EAAE,CAAC;AACrE,KAAK,OAAO,GAAG,EAAE,CAAC;AAClB,KAAK,OAAO,GAAG,IAAI,CAAC;AACpB,KAAK;AACL,IAAI,MAAM;AACV;AACA,GAAG,KAAK,iBAAiB;AACzB,IAAI,GAAG,EAAE,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;AAC9C,IAAI,MAAM;AACV,GAAG,KAAK,WAAW,CAAC,CAAC,KAAK,GAAG;AAC7B,IAAI,GAAG,EAAE,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE,EAAE,CAAC,EAAE,OAAO,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC,MAAM,EAAE;AACzD,IAAI,MAAM,GAAG,WAAW,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;AACvC,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;AAClE,IAAI,OAAO,GAAG,CAAC,MAAM,CAAC,sBAAsB,CAAC,IAAI,CAAC,CAAC;AACnD;AACA,IAAI,GAAG,OAAO,GAAG,EAAE,EAAE,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,EAAE,EAAE,CAAC,EAAE,GAAG,MAAM,GAAG,CAAC,EAAE,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;AAClG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM;AAClB,GAAG,KAAK,oBAAoB;AAC5B,IAAI,GAAG,EAAE,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE,EAAE,CAAC,CAAC;AAC1B,IAAI,GAAG,IAAI,CAAC,UAAU,EAAE;AACxB,KAAK,GAAG,IAAI,CAAC,KAAK,EAAE,EAAE,GAAG,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE;AAC7F,UAAU,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AAC/C,KAAK;AACL,IAAI,KAAK,GAAG,EAAE,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC;AAC3B,IAAI,MAAM;AACV,GAAG,KAAK,YAAY,CAAC,CAAC,KAAK,IAAI;AAC/B,IAAI,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE;AAC7C,KAAK,EAAE,CAAC,CAAC;AACT,KAAK,IAAI,GAAG,WAAW,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;AACtC,KAAK,OAAO,GAAG,QAAQ,CAAC,IAAI,CAAC,yBAAyB,CAAC,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC;AAClE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,IAAI,2BAA2B,SAAS,CAAC;AAC7D,KAAK,GAAG,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,WAAW,IAAI,KAAK,EAAE,CAAC,CAAC,CAAC,GAAG,kBAAkB,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;AACvG,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC;AAC3F,KAAK,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,YAAY,CAAC,KAAK,QAAQ,EAAE;AAC1D,MAAM,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,WAAW,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC,CAAC;AAC/D,MAAM,GAAG,IAAI,CAAC,KAAK,EAAE;AACrB,OAAO,GAAG,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;AAC/C,OAAO,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AAC7B,OAAO,MAAM;AACb,OAAO,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AAC7C,OAAO;AACP,MAAM;AACN,KAAK,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;AACnB,KAAK,MAAM,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,GAAG,EAAE;AAC3B,KAAK,EAAE,CAAC,CAAC;AACT,KAAK,KAAK,GAAG,EAAE,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC;AAC1C,KAAK,OAAO,GAAG,CAAC,CAAC;AACjB,KAAK,IAAI,IAAI,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,CAAC,CAAC;AAC9C,KAAK,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AACrC,KAAK,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AACrC,KAAK,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AACrC,KAAK,GAAG,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;AAC3C,KAAK,IAAI,GAAG,WAAW,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;AACtC,KAAK,QAAQ,GAAG,EAAE,CAAC,CAAC,OAAO,IAAI,EAAE,SAAS,CAAC;AAC3C,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC,IAAI,2BAA2B,SAAS,CAAC;AAC5F,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC;AAC3F,KAAK,GAAG,IAAI,CAAC,WAAW,EAAE;AAC1B,MAAM,GAAG,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,GAAG,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AAChE,MAAM,GAAG,IAAI,CAAC,+BAA+B,CAAC,IAAI,IAAI,CAAC,4BAA4B,CAAC,EAAE;AACtF,OAAO,EAAE,GAAG,QAAQ,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;AACjE,OAAO,EAAE,GAAG,QAAQ,CAAC,IAAI,CAAC,+BAA+B,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;AACpE,OAAO,MAAM,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;AAC1D,OAAO,CAAC,CAAC,CAAC,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC;AAClC,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAClC,OAAO;AACP,MAAM,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,GAAG,kBAAkB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AAC9D,WAAW,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,EAAE,CAAC;AAC5C,OAAO,GAAG,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACxD,QAAQ,GAAG,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACzD,SAAS,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC5B,MAAM;AACN,KAAK,GAAG,IAAI,CAAC,wBAAwB,CAAC,IAAI,IAAI,CAAC,qBAAqB,CAAC,EAAE;AACvE,MAAM,EAAE,GAAG,QAAQ,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;AACzD,MAAM,EAAE,GAAG,QAAQ,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;AAC5D,MAAM,MAAM,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;AACzD,MAAM,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AAC1B,MAAM;AACN;AACA;AACA,KAAK,GAAG,IAAI,CAAC,yBAAyB,CAAC,EAAE,OAAO,GAAG,QAAQ,CAAC,IAAI,CAAC,yBAAyB,CAAC,EAAE,EAAE,CAAC,CAAC;AACjG;AACA;AACA,KAAK,OAAO,CAAC,CAAC,CAAC;AACf,MAAM,KAAK,SAAS,EAAE,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,YAAY,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM;AACnH,MAAM,KAAK,OAAO,EAAE,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM;AACnE,MAAM,KAAK,YAAY,EAAE,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM;AACxE,MAAM,KAAK,UAAU,EAAE,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM;AACtE,MAAM,KAAK,MAAM,EAAE,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC;AAClE,OAAO,GAAG,CAAC,IAAI,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,OAAO,CAAC,EAAE;AAC5F,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,MAAM;AACtC,MAAM,KAAK,MAAM,EAAE,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,YAAY,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,KAAK,CAAC;AAC3E,OAAO,GAAG,IAAI,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE;AAC5D,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,CAAC,MAAM;AACxC,MAAM,KAAK,QAAQ,EAAE,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM;AACtE,MAAM;AACN,OAAO,GAAG,CAAC,CAAC,CAAC,KAAK,QAAQ,IAAI,CAAC,CAAC,CAAC,KAAK,MAAM,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE;AACtD,QAAQ,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC;AAClB,QAAQ,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,IAAI,EAAE,EAAE,KAAK,GAAG,WAAW,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC,EAAE;AACnG,QAAQ,MAAM,MAAM,IAAI,KAAK,CAAC,yBAAyB,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AAC/D,MAAM;AACN,KAAK,MAAM;AACX,KAAK,MAAM,GAAG,KAAK,CAAC;AACpB,KAAK,GAAG,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE;AACrB,MAAM,CAAC,CAAC,CAAC,GAAG,KAAK,IAAI,EAAE,CAAC;AACxB,MAAM,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC;AACnC,MAAM,MAAM,GAAG,QAAQ,IAAI,CAAC,CAAC;AAC7B,MAAM;AACN,KAAK,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;AAChC,KAAK,GAAG,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,QAAQ,GAAG,EAAE,CAAC,EAAE;AAC/D,KAAK,GAAG,KAAK,IAAI,IAAI,CAAC,QAAQ,KAAK,KAAK,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC;AACtD,KAAK,GAAG,MAAM,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE;AAC1C,KAAK,GAAG,CAAC,MAAM,IAAI,IAAI,CAAC,UAAU,EAAE;AACpC,MAAM,GAAG,EAAE,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,SAAS,IAAI,CAAC,CAAC,EAAE;AACnD,OAAO,IAAI,IAAI,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,OAAO,EAAE,EAAE,GAAG,EAAE;AAC9C,QAAQ,OAAO,GAAG,QAAQ,CAAC,IAAI,CAAC,yBAAyB,CAAC,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC;AACrE,QAAQ,GAAG,IAAI,CAAC,KAAK,EAAE;AACvB,SAAS,GAAG,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,GAAG,EAAE,CAAC;AAC7D,SAAS,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;AACzD,SAAS,MAAM,EAAE,OAAO,GAAG,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;AACzE,SAAS,MAAM;AACf,SAAS,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AAC9C,SAAS,MAAM,EAAE,OAAO,GAAG,CAAC,EAAE,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;AAClF,SAAS;AACT,QAAQ,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AACzC,QAAQ;AACR,OAAO;AACP,MAAM;AACN,KAAK,OAAO,GAAG,QAAQ,CAAC,IAAI,CAAC,yBAAyB,CAAC,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC;AAClE,KAAK,CAAC,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC;AACjC,KAAK,CAAC,GAAG,wCAAwC,CAAC;AAClD,KAAK,KAAK,GAAG,EAAE,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC;AAC5B,KAAK;AACL,IAAI,IAAI,IAAI,EAAE,SAAS,CAAC;AACxB,IAAI,MAAM;AACV;AACA;AACA,GAAG,KAAK,UAAU,CAAC;AACnB,GAAG,KAAK,kBAAkB,CAAC,CAAC,KAAK,QAAQ,CAAC;AAC1C,GAAG,KAAK,aAAa,CAAC,CAAC,KAAK,IAAI,CAAC;AACjC,GAAG,KAAK,SAAS,CAAC;AAClB,GAAG,KAAK,QAAQ,CAAC;AACjB,GAAG,KAAK,iBAAiB,CAAC;AAC1B,GAAG,KAAK,eAAe;AACvB,IAAI,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,aAAa,CAAC,GAAG,CAAC,CAAC;AAC9E,SAAS,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;AAC5E,IAAI,MAAM;AACV;AACA,GAAG,KAAK,YAAY;AACpB,IAAI,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC;AACnB,KAAK,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,aAAa,CAAC,GAAG,CAAC;AAC9D,KAAK,OAAO,CAAC,CAAC,GAAG,KAAK,CAAC;AACvB,KAAK,GAAG,KAAK,CAAC,MAAM,SAAS,OAAO,aAAa,CAAC,GAAG,KAAK,CAAC;AAC3D,KAAK,OAAO,CAAC,CAAC,GAAG,OAAO,CAAC;AACzB,KAAK,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AAC5B,KAAK;AACL,SAAS,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;AAC/E,IAAI,OAAO,GAAG,EAAE,CAAC,CAAC,UAAU,GAAG,CAAC,CAAC;AACjC,IAAI,KAAK,GAAG,EAAE,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC;AACzC,IAAI,MAAM;AACV;AACA,GAAG,KAAK,SAAS;AACjB,IAAI,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,GAAG,EAAE,EAAE,OAAO,GAAG,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE;AACjE,SAAS,UAAU,GAAG,EAAE,CAAC,KAAK,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;AAC9C,IAAI,MAAM;AACV;AACA;AACA,GAAG,KAAK,MAAM,CAAC,CAAC,KAAK,KAAK,CAAC;AAC3B,GAAG,KAAK,UAAU,CAAC;AACnB,GAAG,KAAK,iBAAiB,CAAC;AAC1B,GAAG,KAAK,yBAAyB,CAAC;AAClC,GAAG,KAAK,uBAAuB,CAAC;AAChC,GAAG,KAAK,uBAAuB,CAAC;AAChC,GAAG,KAAK,QAAQ,CAAC;AACjB,GAAG,KAAK,OAAO,CAAC;AAChB,GAAG,KAAK,UAAU,CAAC;AACnB,GAAG,KAAK,OAAO,CAAC;AAChB,GAAG,KAAK,mBAAmB,CAAC;AAC5B,GAAG,KAAK,YAAY,CAAC;AACrB,GAAG,KAAK,MAAM,CAAC;AACf,GAAG,KAAK,WAAW,CAAC;AACpB,GAAG,KAAK,iBAAiB,CAAC;AAC1B,GAAG,KAAK,OAAO;AACf,IAAI,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,aAAa,CAAC,GAAG,CAAC,CAAC;AAC9E,SAAS,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC;AAC7E,IAAI,KAAK,GAAG,EAAE,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC;AACzC,IAAI,MAAM;AACV;AACA,GAAG,KAAK,mBAAmB,CAAC;AAC5B,GAAG,KAAK,iBAAiB,CAAC;AAC1B,GAAG,KAAK,gBAAgB;AACxB,IAAI,MAAM;AACV;AACA,GAAG,KAAK,YAAY,CAAC;AACrB,GAAG,KAAK,eAAe,CAAC;AACxB,GAAG,KAAK,cAAc,CAAC;AACvB,GAAG,KAAK,gBAAgB,CAAC;AACzB,GAAG,KAAK,kBAAkB,CAAC;AAC3B,GAAG,KAAK,YAAY,CAAC;AACrB,GAAG,KAAK,YAAY;AACpB,IAAI,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC;AACnB,KAAK,IAAI,OAAO,GAAG,SAAS,CAAC,SAAS,CAAC;AACvC,KAAK,gBAAgB,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,EAAE,SAAS,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,iBAAiB,CAAC,CAAC;AACvF,KAAK,SAAS,CAAC,SAAS,GAAG,OAAO,CAAC;AACnC,KAAK,MAAM,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE;AACpD,KAAK,KAAK,GAAG,SAAS,CAAC,SAAS,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;AAChD,KAAK,CAAC,MAAM;AACZ;AACA,GAAG,KAAK,QAAQ,EAAE,MAAM;AACxB,GAAG,KAAK,WAAW,EAAE,MAAM;AAC3B,GAAG,KAAK,kBAAkB,EAAE,MAAM;AAClC;AACA,GAAG,KAAK,eAAe,CAAC;AACxB,GAAG,KAAK,aAAa,EAAE,MAAM;AAC7B,GAAG,KAAK,OAAO,EAAE;AACjB,IAAI,IAAI,QAAQ,GAAG,WAAW,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;AAC7C,IAAI,GAAG,QAAQ,CAAC,QAAQ,CAAC,IAAI,YAAY,IAAI,iBAAiB,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC,EAAE,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,GAAG,iBAAiB,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC,CAAC;AACvK,IAAI,CAAC,MAAM;AACX,GAAG,KAAK,KAAK,EAAE,MAAM;AACrB,GAAG,KAAK,WAAW,EAAE,MAAM;AAC3B;AACA,GAAG,KAAK,sBAAsB,EAAE,MAAM;AACtC,GAAG,KAAK,kBAAkB,EAAE,MAAM;AAClC,GAAG,KAAK,yBAAyB,EAAE,MAAM;AACzC,GAAG,KAAK,sBAAsB,EAAE,MAAM;AACtC,GAAG,KAAK,uBAAuB,EAAE,MAAM;AACvC;AACA,GAAG,KAAK,QAAQ;AAChB,IAAI,MAAM;AACV;AACA,GAAG,KAAK,UAAU,EAAE,MAAM;AAC1B;AACA,GAAG,KAAK,KAAK,CAAC;AACd,GAAG,KAAK,OAAO,CAAC;AAChB,GAAG,KAAK,MAAM,CAAC;AACf,GAAG,KAAK,KAAK,CAAC;AACd,GAAG,KAAK,aAAa,CAAC;AACtB,GAAG,KAAK,cAAc,CAAC;AACvB,GAAG,KAAK,SAAS,CAAC;AAClB,GAAG,KAAK,OAAO,CAAC;AAChB,GAAG,KAAK,SAAS,CAAC;AAClB,GAAG,KAAK,SAAS,CAAC;AAClB,GAAG,KAAK,OAAO;AACf,IAAI,MAAM;AACV;AACA,GAAG,KAAK,SAAS,EAAE,MAAM;AACzB,GAAG,KAAK,MAAM;AACd,IAAI,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE,MAAM;AACvC,SAAS,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,GAAG,EAAE,OAAO,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACxD,KAAK,KAAK,cAAc,CAAC;AACzB,KAAK,KAAK,YAAY,CAAC;AACvB,KAAK,KAAK,YAAY;AACtB,MAAM,EAAE,IAAI,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC;AACtC,MAAM,MAAM;AACZ,KAAK;AACL,SAAS,IAAI,GAAG,EAAE,CAAC,KAAK,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;AACxC,IAAI,MAAM;AACV;AACA,GAAG,KAAK,aAAa;AACrB,IAAI,GAAG,GAAG,WAAW,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;AACpC,IAAI,IAAI,GAAG,aAAa,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC,CAAC;AACpD,IAAI,IAAI,MAAM,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;AACxE,IAAI,GAAG,OAAO,EAAE,MAAM,CAAC,KAAK,GAAG,UAAU,CAAC,MAAM,CAAC;AACjD,IAAI,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AAC1B,IAAI,MAAM;AACV;AACA,GAAG,KAAK,cAAc,EAAE,MAAM;AAC9B,GAAG,KAAK,iBAAiB,EAAE,MAAM;AACjC,GAAG,KAAK,eAAe,EAAE,MAAM;AAC/B;AACA,GAAG,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,EAAE,MAAM;AACnC;AACA,GAAG,KAAK,OAAO,EAAE,MAAM;AACvB,GAAG,KAAK,cAAc,EAAE,MAAM;AAC9B,GAAG,KAAK,mBAAmB,EAAE,MAAM;AACnC,GAAG,KAAK,YAAY,EAAE,MAAM;AAC5B;AACA,GAAG,KAAK,oBAAoB,EAAE,MAAM;AACpC,GAAG,KAAK,sBAAsB,EAAE,MAAM;AACtC,GAAG,KAAK,eAAe,EAAE,MAAM;AAC/B;AACA,GAAG,KAAK,WAAW;AACnB,IAAI,GAAG,GAAG,WAAW,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;AACpC,IAAI,OAAO,GAAG,CAAC,YAAY,CAAC;AAC5B,KAAK,KAAK,YAAY,EAAE,EAAE,CAAC,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC;AACnD;AACA,KAAK,KAAK,YAAY,EAAE,OAAO,GAAG,CAAC,CAAC;AACpC,KAAK;AACL,IAAI,MAAM;AACV;AACA,GAAG,KAAK,oBAAoB,EAAE,MAAM;AACpC,GAAG,KAAK,sBAAsB,EAAE,MAAM;AACtC,GAAG,KAAK,mBAAmB,EAAE,MAAM;AACnC,GAAG,KAAK,aAAa,EAAE,MAAM;AAC7B,GAAG,KAAK,cAAc,EAAE,MAAM;AAC9B,GAAG,KAAK,kBAAkB,EAAE,MAAM;AAClC,GAAG,KAAK,MAAM,EAAE,MAAM;AACtB,GAAG,KAAK,SAAS,EAAE,MAAM;AACzB,GAAG,KAAK,aAAa,EAAE,MAAM;AAC7B;AACA,GAAG,KAAK,KAAK,EAAE,MAAM;AACrB,GAAG,KAAK,YAAY,EAAE,MAAM;AAC5B,GAAG,KAAK,MAAM,EAAE,MAAM;AACtB,GAAG,KAAK,GAAG,CAAC,CAAC,KAAK,KAAK;AACvB,IAAI,GAAG,CAAC,eAAe,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM;AACvE,IAAI,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,EAAE;AACxD,KAAK,IAAI,GAAG,GAAG,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC,KAAK,CAAW,CAAC,CAAC;AACpE,KAAK,KAAK,GAAG,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,GAAG,KAAK,GAAG,IAAI,GAAG,EAAE,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC;AAC7D,KAAK,MAAM,EAAa,WAAW,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,QAAQ,GAAG,EAAE,CAAC,KAAK,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE;AACxF,IAAI,MAAM;AACV,GAAG,KAAK,GAAG,EAAE,MAAM;AACnB;AACA,GAAG,KAAK,gBAAgB;AACxB,IAAI,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,GAAG,EAAE,MAAM;AAC1B,IAAI,IAAI;AACR,KAAK,IAAI,GAAG,aAAa,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,sBAAsB,CAAC,CAAC,CAAC;AACtE,KAAK,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;AACtD,KAAK,CAAC,MAAM,CAAC,EAAE,aAAa;AAC5B,IAAI,MAAM;AACV;AACA,GAAG,KAAK,MAAM,EAAE,MAAM;AACtB;AACA,GAAG,KAAK,QAAQ,EAAE,MAAM;AACxB,GAAG,KAAK,OAAO,CAAC,CAAC,KAAK,IAAI,EAAE,MAAM;AAClC,GAAG,KAAK,MAAM,EAAE,MAAM;AACtB,GAAG,KAAK,aAAa,EAAE,MAAM;AAC7B;AACA;AACA,GAAG,KAAK,cAAc,EAAE,MAAM;AAC9B,GAAG,KAAK,UAAU,EAAE,MAAM;AAC1B;AACA,GAAG,KAAK,WAAW,EAAE,MAAM;AAC3B,GAAG,KAAK,qBAAqB,EAAE,MAAM;AACrC,GAAG,KAAK,oBAAoB,EAAE,MAAM;AACpC,GAAG,KAAK,cAAc,EAAE,MAAM;AAC9B,GAAG,KAAK,eAAe,EAAE,MAAM;AAC/B,GAAG,KAAK,iBAAiB,EAAE,MAAM;AACjC,GAAG,KAAK,QAAQ,EAAE,MAAM;AACxB,GAAG,KAAK,YAAY,EAAE,MAAM;AAC5B,GAAG,KAAK,WAAW,EAAE,MAAM;AAC3B,GAAG,KAAK,kBAAkB,EAAE,MAAM;AAClC;AACA,GAAG,KAAK,yBAAyB,EAAE,MAAM;AACzC,GAAG,KAAK,yBAAyB,EAAE,MAAM;AACzC,GAAG,KAAK,uBAAuB,EAAE,MAAM;AACvC;AACA;AACA,GAAG,KAAK,kBAAkB,CAAC;AAC3B,GAAG,KAAK,iBAAiB,CAAC;AAC1B,GAAG,KAAK,iBAAiB,CAAC;AAC1B,GAAG,KAAK,cAAc,CAAC;AACvB,GAAG,KAAK,iBAAiB,CAAC;AAC1B,GAAG,KAAK,cAAc,CAAC;AACvB,GAAG,KAAK,sBAAsB,CAAC;AAC/B,GAAG,KAAK,YAAY,CAAC;AACrB,GAAG,KAAK,gBAAgB,CAAC;AACzB,GAAG,KAAK,mBAAmB,CAAC;AAC5B,GAAG,KAAK,eAAe,CAAC;AACxB,GAAG,KAAK,aAAa,CAAC;AACtB,GAAG,KAAK,oBAAoB,CAAC;AAC7B,GAAG,KAAK,gBAAgB,CAAC;AACzB,GAAG,KAAK,0BAA0B,CAAC;AACnC,GAAG,KAAK,aAAa,CAAC;AACtB,GAAG,KAAK,iBAAiB,CAAC;AAC1B,GAAG,KAAK,SAAS,CAAC;AAClB,GAAG,KAAK,WAAW,CAAC;AACpB,GAAG,KAAK,eAAe,CAAC;AACxB,GAAG,KAAK,YAAY;AACpB,IAAI,MAAM;AACV;AACA,GAAG,KAAK,gBAAgB;AACxB,IAAI,MAAM;AACV;AACA,GAAG,KAAK,iBAAiB,CAAC;AAC1B,GAAG,KAAK,eAAe,CAAC;AACxB,GAAG,KAAK,YAAY,CAAC;AACrB,GAAG,KAAK,WAAW,CAAC;AACpB,GAAG,KAAK,oBAAoB,CAAC;AAC7B,GAAG,KAAK,cAAc,CAAC;AACvB,GAAG,KAAK,kBAAkB,CAAC;AAC3B,GAAG,KAAK,gBAAgB;AACxB,IAAI,MAAM;AACV;AACA;AACA,GAAG,KAAK,aAAa;AACrB,IAAI,MAAM;AACV;AACA;AACA,GAAG,KAAK,aAAa,EAAE,MAAM;AAC7B,GAAG,KAAK,YAAY,EAAE,MAAM;AAC5B,GAAG,KAAK,MAAM,EAAE,MAAM;AACtB;AACA;AACA,GAAG,KAAK,mBAAmB,EAAE,MAAM;AACnC,GAAG,KAAK,WAAW,EAAE,MAAM;AAC3B,GAAG,KAAK,WAAW,EAAE,MAAM;AAC3B,GAAG,KAAK,mBAAmB,EAAE,MAAM;AACnC;AACA;AACA,GAAG,KAAK,kBAAkB,CAAC;AAC3B,GAAG,KAAK,mBAAmB,CAAC;AAC5B,GAAG,KAAK,gBAAgB,CAAC;AACzB,GAAG,KAAK,kBAAkB,CAAC;AAC3B,GAAG,KAAK,kBAAkB,CAAC;AAC3B,GAAG,KAAK,sBAAsB,CAAC;AAC/B,GAAG,KAAK,qBAAqB,CAAC;AAC9B,GAAG,KAAK,oBAAoB,CAAC;AAC7B,GAAG,KAAK,mBAAmB,CAAC;AAC5B,GAAG,KAAK,yBAAyB,CAAC;AAClC,GAAG,KAAK,sBAAsB,CAAC;AAC/B,GAAG,KAAK,wBAAwB,CAAC;AACjC,GAAG,KAAK,4BAA4B,CAAC;AACrC,GAAG,KAAK,mBAAmB,CAAC;AAC5B,GAAG,KAAK,kBAAkB,CAAC;AAC3B,GAAG,KAAK,yBAAyB;AACjC,IAAI,MAAM;AACV;AACA;AACA,GAAG,KAAK,MAAM;AACd,IAAI,MAAM;AACV;AACA;AACA,GAAG,KAAK,sBAAsB,CAAC;AAC/B,GAAG,KAAK,qBAAqB,CAAC;AAC9B,GAAG,KAAK,UAAU,CAAC;AACnB,GAAG,KAAK,YAAY;AACpB,IAAI,MAAM;AACV;AACA,GAAG,KAAK,YAAY,EAAE,MAAM;AAC5B,GAAG,KAAK,UAAU,EAAE,MAAM;AAC1B;AACA,GAAG,KAAK,GAAG;AACX,IAAI,GAAG,EAAE,CAAC,CAAC,CAAC,IAAI,GAAG,EAAE;AACrB,KAAK,IAAI,GAAG,WAAW,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;AACtC,KAAK,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM;AAC1B,KAAK,IAAI,CAAC,MAAM,GAAG,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC;AAC5D,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,GAAG,IAAI,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE;AACvE,MAAM,IAAI,GAAG,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;AACjD,MAAM,IAAI,CAAC,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;AAClD,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,aAAa,CAAC,EAAE,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AACpF,KAAK;AACL,IAAI,MAAM;AACV;AACA;AACA,GAAG,KAAK,kBAAkB,EAAE,MAAM;AAClC,GAAG,KAAK,wBAAwB,EAAE,MAAM;AACxC,GAAG,KAAK,8BAA8B,EAAE,MAAM;AAC9C,GAAG,SAAS,OAAO,EAAE,CAAC,CAAC,CAAC;AACxB,IAAI,KAAK,KAAK,CAAC;AACf,IAAI,KAAK,UAAU,CAAC;AACpB,IAAI,KAAK,QAAQ,CAAC;AAClB,IAAI,KAAK,MAAM,CAAC;AAChB,IAAI,KAAK,WAAW,CAAC;AACrB,IAAI,KAAK,OAAO,CAAC;AACjB,IAAI,KAAK,QAAQ,CAAC;AAClB,IAAI,KAAK,QAAQ,CAAC;AAClB,IAAI,KAAK,OAAO,CAAC;AACjB,IAAI,KAAK,MAAM,CAAC;AAChB,IAAI,KAAK,IAAI,CAAC;AACd,IAAI,KAAK,IAAI;AACb,KAAK,MAAM;AACX,IAAI,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,MAAM,IAAI,KAAK,CAAC,EAAE,CAAC,CAAC;AAC9C,IAAI;AACJ,GAAG;AACH,EAAE,IAAI,GAAG,iBAAiB;AAC1B,GAAG,MAAM,EAAE,MAAM;AACjB,GAAG,UAAU,EAAE,UAAU;AACzB,GAAG,QAAQ,EAAE,EAAE;AACf,GAAG,SAAS,CAAC;AACb,EAAE,GAAG,IAAI,CAAC,UAAU,EAAE,cAAc,GAAG,aAAa,MAAM,CAAC;AAC3D,EAAE,OAAO,GAAG,CAAC;AACb,CAAC;AACD;AACA,SAAS,SAAS,CAAC,GAAG,cAAc,IAAI,8BAA8B;AACtE,CAAC,IAAI,GAAG,IAAI,KAAK,EAAE,SAAS,CAAC;AAC7B,CAAC,GAAG,cAAc,CAAC,GAAG,EAAE,uBAAuB,CAAC,EAAE,cAAc,CAAC,UAAU,CAAC,GAAG,EAAE,uBAAuB,CAAC,EAAE,IAAI,CAAC,CAAC;AACjH,CAAC,IAAI,MAAM,GAAG,SAAS,CAAC,GAAG,EAAE,YAAY,CAAC,CAAC;AAC3C,CAAC,IAAI,MAAM,GAAG,MAAM,IAAI,gBAAgB,CAAC,QAAQ,CAAC,MAAM,CAAO,CAAC,CAAC;AACjE,CAAC,IAAI,OAAO,GAAG,SAAS,CAAC,GAAG,EAAE,aAAa,CAAC,CAAC;AAC7C,CAAC,GAAG,CAAC,OAAO,EAAE,MAAM,IAAI,KAAK,CAAC,uCAAuC,CAAC,CAAC;AACvE,CAAC,IAAI,EAAE,GAAG,iBAAiB,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;AAC7D,CAAC,GAAG,cAAc,CAAC,GAAG,EAAE,UAAU,CAAC,EAAE,EAAE,CAAC,KAAK,GAAG,gBAAgB,CAAC,UAAU,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC,CAAC;AAC9F,CAAC,EAAE,CAAC,QAAQ,GAAG,KAAK,CAAC;AACrB,CAAC,OAAO,EAAE,CAAC;AACX,CAAC;AACD,SAAS,UAAU,CAAC,IAAI,aAAa,IAAI,8BAA8B;AACvE,CAAC,IAAI,EAAE,GAAG,iBAAiB,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;AACxC,CAAC,EAAE,CAAC,QAAQ,GAAG,MAAM,CAAC;AACtB,CAAC,OAAO,EAAE,CAAC;AACX,CAAC;AACD;AACA;AACA,IAAI,gBAAgB,kDAAkD,CAAC,WAAW;AAClF,CAAC,IAAI,aAAa,GAAG;AACrB,EAAE,wBAAwB;AAC1B,GAAG,mEAAmE;AACtE,IAAI,iBAAiB;AACrB,IAAI,4CAA4C;AAChD,IAAI,iBAAiB;AACrB,IAAI,4CAA4C;AAChD,GAAG,sBAAsB;AACzB,EAAE,yBAAyB;AAC3B,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AACZ;AACA,CAAC,IAAI,OAAO,GAAG,0BAA0B,GAAG,UAAU,CAAC;AACvD,EAAE,cAAc,IAAI,kDAAkD;AACtE,EAAE,aAAa,KAAK,iDAAiD;AACrE,EAAE,aAAa,KAAK,iDAAiD;AACrE,EAAE,YAAY,MAAM,gDAAgD;AACpE,EAAE,YAAY,MAAM,mDAAmD;AACvE,EAAE,UAAU,QAAQ,6DAA6D;AACjF,EAAE,aAAa,KAAK,8BAA8B;AAClD,EAAE,UAAU,QAAQ,kCAAkC;AACtD,EAAE,cAAc,IAAI,qDAAqD;AACzE,EAAE,WAAW,OAAO,0DAA0D;AAC9E,EAAE,UAAU,QAAQ,8CAA8C;AAClE,EAAE,gBAAgB,EAAE,KAAK;AACzB,EAAE,CAAC,GAAG,GAAG,GAAG,aAAa,GAAG,2BAA2B,CAAC;AACxD;AACA,CAAC,OAAO,SAAS,GAAG,iBAAiB;AACrC,EAAE,OAAO,UAAU,GAAG,OAAO,CAAC;AAC9B,EAAE,CAAC;AACH,CAAC,GAAG,CAAC;AACL;AACA;AACA,SAAS,uBAAuB,CAAC,EAAE,aAAa,KAAK,wBAAwB;AAC7E,CAAC,IAAI,IAAI,GAAG,QAAQ,EAAE,OAAO,GAAG,EAAE,EAAE,KAAK,GAAG,EAAE,YAAY,EAAE,KAAK,EAAE,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC;AACnF,CAAC,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;AAChC;AACA,CAAC,CAAC,EAAE;AACJ;AACA,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE;AAC3B,GAAG,OAAO,CAAC,KAAK,CAAC,6DAA6D,GAAG,EAAE,CAAC,CAAC;AACrF,GAAG,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC;AACrC,GAAG;AACH;AACA,EAAE,GAAG,EAAE,IAAI,GAAG,EAAE,EAAE,IAAI,GAAG,MAAM,CAAC,CAAC,OAAO,GAAG,wBAAwB,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE;AAC/E;AACA;AACA,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,IAAI,GAAG,UAAU,CAAC,EAAE;AAClD;AACA;AACA,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,IAAI,GAAG,EAAE;AACnB,GAAG,CAAC,GAAG,EAAE,CAAC;AACV,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;AAC3D,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,EAAE;AACtB,IAAI,CAAC,EAAE,CAAC;AACR,IAAI,OAAO,IAAI,yBAAyB,GAAG,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,GAAG,0BAA0B,CAAC;AACzG,IAAI,MAAM;AACV,IAAI,OAAO,IAAI,eAAe,GAAG,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,GAAG,gBAAgB,CAAC;AACrF,IAAI;AACJ,GAAG,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AAC7B,GAAG;AACH;AACA;AACA,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC;AACrC,EAAE,GAAG,CAAC,EAAE,EAAE,OAAO,IAAI,SAAS,CAAC,iBAAiB,EAAE,IAAI,EAAE,CAAC,2BAA2B,CAAC,CAAC,EAAE,6BAA6B,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,8BAA8B,EAAE,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE;AACnP,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,gBAAgB,CAAC,GAAG,EAAE,OAAO,IAAI,SAAS,CAAC,iBAAiB,EAAE,IAAI,EAAE,CAAC,2BAA2B,CAAC,CAAC,EAAE,6BAA6B,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,0BAA0B,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE;AAChN;AACA;AACA,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,gBAAgB,CAAC,GAAG,EAAE,IAAI,GAAG,YAAY,CAAC,CAAC,OAAO,IAAI,SAAS,CAAC,eAAe,EAAE,IAAI,EAAE,CAAC,uBAAuB,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,EAAE,2BAA2B,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,EAAE,2BAA2B,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,8BAA8B,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE;AAC7S;AACA;AACA,EAAE,IAAI,QAAQ,GAAG,KAAK,CAAC;AACvB,EAAE,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE;AACxC,GAAG,IAAI,GAAG,MAAM,CAAC;AACjB,GAAG,CAAC,EAAE,MAAM,CAAC,GAAG,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE,QAAQ,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE;AAC/D,IAAI,KAAK,GAAG,CAAC,CAAC,KAAK,GAAG,EAAE,QAAQ,GAAG,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;AACtD,IAAI,KAAK,GAAG;AACZ,KAAK,CAAC,EAAE,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC;AACzD,MAAM,KAAK,GAAG,CAAC,CAAC,KAAK,GAAG,EAAE,MAAM,CAAC,CAAC;AAClC,MAAM,KAAK,GAAG,CAAC,CAAC,KAAK,GAAG,EAAE,QAAQ,GAAG,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;AACxD,MAAM;AACN;AACA,IAAI,KAAK,GAAG,CAAC,CAAC,KAAK,GAAG;AACtB,KAAK,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,WAAW,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;AAC/D,KAAK,OAAO,CAAC;AACb,MAAM,KAAK,GAAG,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,IAAI,gBAAgB,CAAC,CAAC,MAAM;AAC9D,MAAM,KAAK,KAAK,CAAC,CAAC,KAAK,MAAM,EAAE,OAAO,IAAI,oCAAoC,CAAC,CAAC,MAAM;AACtF,MAAM,KAAK,OAAO,EAAE,OAAO,CAAC,KAAK,CAAC,yCAAyC,CAAC,CAAC;AAC7E;AACA,MAAM,KAAK,GAAG,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK,MAAM;AAClD,OAAO,OAAO,IAAI,8BAA8B,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,GAAG,OAAO,GAAG,MAAM,CAAC,GAAG,oBAAoB,IAAI,CAAC,CAAC,MAAM,IAAI,CAAC,GAAG,MAAM,GAAG,OAAO,CAAC,GAAG,KAAK,CAAC;AACzJ,OAAO,MAAM;AACb,MAAM,KAAK,GAAG,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,IAAI,4BAA4B,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,GAAG,OAAO,GAAG,MAAM,CAAC,GAAG,KAAK,CAAC,CAAC,MAAM;AACtH,MAAM,KAAK,KAAK,CAAC,CAAC,KAAK,MAAM,EAAE,OAAO,IAAI,oCAAoC,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,GAAG,OAAO,GAAG,MAAM,CAAC,GAAG,KAAK,CAAC,CAAC,MAAM;AAClI,MAAM;AACN,KAAK,MAAM;AACX,IAAI,KAAK,GAAG;AACZ,KAAK,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;AAC7D,KAAK,OAAO,IAAI,eAAe,GAAG,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,GAAG,gBAAgB,CAAC;AAC/F,KAAK,MAAM;AACX,IAAI,KAAK,GAAG,EAAE,OAAO,IAAI,eAAe,GAAG,SAAS,CAAC,CAAC,CAAC,GAAG,gBAAgB,CAAC,CAAC,MAAM;AAClF,IAAI,SAAS,OAAO,CAAC,KAAK,CAAC,yBAAyB,GAAG,CAAC,GAAG,iBAAiB,GAAG,EAAE,CAAC,CAAC;AACnF,IAAI;AACJ,GAAG,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;AACzB,GAAG,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AAC7B,GAAG;AACH,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,WAAW,CAAC,EAAE;AAC5B,GAAG,GAAG,IAAI,IAAI,QAAQ,EAAE,IAAI,GAAG,MAAM,CAAC;AACtC,GAAG,GAAG,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE;AACtB,IAAI,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;AACnC,IAAI,KAAK,CAAC,6BAA6B,CAAC,GAAG,OAAO,CAAC;AACnD,IAAI;AACJ,GAAG,MAAM,CAAC,GAAG,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE,QAAQ,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE;AAC5D,IAAI,KAAK,GAAG,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,GAAG;AAChC,KAAK,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,WAAW,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;AAC/D,KAAK,OAAO,CAAC;AACb,MAAM,KAAK,GAAG,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,IAAI,8BAA8B,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,GAAG,OAAO,GAAG,MAAM,CAAC,GAAG,KAAK,CAAC,CAAC,MAAM;AACxH,MAAM,KAAK,GAAG,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,IAAI,gCAAgC,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,GAAG,OAAO,GAAG,MAAM,CAAC,GAAG,KAAK,CAAC,CAAC,MAAM;AAC1H,MAAM,KAAK,GAAG,CAAC,CAAC,KAAK,IAAI;AACzB,OAAO,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,EAAE;AAC1E,OAAO,OAAO,IAAI,gCAAgC,IAAI,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,MAAM,GAAG,OAAO,CAAC,GAAG,GAAG,IAAI,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,0BAA0B,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,GAAG,GAAG,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC,MAAM;AACvM,MAAM;AACN,KAAK,MAAM;AACX,IAAI,KAAK,GAAG;AACZ,KAAK,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;AAC7D,KAAK,OAAO,IAAI,eAAe,GAAG,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,GAAG,gBAAgB,CAAC;AAC/F,KAAK,MAAM;AACX,IAAI,KAAK,GAAG,EAAE,OAAO,IAAI,eAAe,GAAG,SAAS,CAAC,CAAC,CAAC,GAAG,gBAAgB,CAAC,CAAC,MAAM;AAClF,IAAI,KAAK,GAAG;AACZ,KAAK,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,IAAI,KAAK,EAAE,EAAE,OAAO,IAAI,iBAAiB,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,EAAE;AACjG,KAAK,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,IAAI,OAAO,GAAG,EAAE,OAAO,IAAI,iBAAiB,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,EAAE;AACpG;AACA,IAAI,SAAS,OAAO,CAAC,KAAK,CAAC,yBAAyB,GAAG,CAAC,GAAG,iBAAiB,GAAG,EAAE,CAAC,CAAC;AACnF,IAAI;AACJ,GAAG,MAAM,CAAC,CAAC;AACX,GAAG;AACH;AACA;AACA,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,IAAI,GAAG,UAAU,CAAC,EAAE;AAClD;AACA;AACA,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,IAAI,GAAG,EAAE,EAAE,OAAO,IAAI,6FAA6F,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE;AACzJ,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,IAAI,GAAG,EAAE;AAC1B,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;AAC3D,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,EAAE;AACtB,IAAI,CAAC,EAAE,CAAC;AACR,IAAI,OAAO,IAAI,yBAAyB,GAAG,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,GAAG,0BAA0B,CAAC;AACzG,IAAI,MAAM;AACV,IAAI,OAAO,IAAI,eAAe,GAAG,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,GAAG,gBAAgB,CAAC;AACrF,IAAI;AACJ,GAAG,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AAC7B,GAAG;AACH;AACA;AACA,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,mCAAmC,CAAC,CAAC;AACzD,EAAE,GAAG,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,KAAK,CAAC,iCAAiC,GAAG,EAAE,CAAC,CAAC;AAC1E,OAAO;AACP,GAAG,IAAI,IAAI,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;AACtC,GAAG,OAAO,IAAI,UAAU,IAAI,EAAE,CAAC,CAAC,CAAC,GAAG,aAAa,GAAG,EAAE,CAAC,EAAE,QAAQ;AACjE,IAAI,8BAA8B,IAAI,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,GAAG,GAAG,GAAG,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG;AAC5G,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,yBAAyB,GAAG,EAAE,CAAC;AAC9D,KAAK,EAAE,CAAC,CAAC,CAAC,IAAI,0BAA0B,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,GAAG,IAAI,4BAA4B,CAAC;AACpG,KAAK,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,qCAAqC,GAAG,EAAE,EAAE;AACpF,KAAK,EAAE,CAAC,CAAC,CAAC,GAAG,+BAA+B,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,GAAG,GAAG,EAAE,EAAE;AACvF,IAAI,GAAG;AACP;AACA,IAAI,WAAW,IAAI,EAAE,CAAC,CAAC,CAAC,GAAG,aAAa,GAAG,EAAE,CAAC,GAAG,SAAS,CAAC;AAC3D,GAAG,CAAC,GAAG,EAAE,CAAC,KAAK,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;AAC/B,GAAG;AACH;AACA;AACA,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,IAAI,GAAG,EAAE;AACnB,GAAG,CAAC,GAAG,EAAE,CAAC;AACV,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;AAC3D,GAAG,OAAO,IAAI,eAAe,GAAG,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,GAAG,gBAAgB,CAAC;AACpF,GAAG;AACH,EAAE;AACF;AACA,CAAC,GAAG,CAAC,OAAO,EAAE,EAAE,OAAO,CAAC,KAAK,CAAC,4CAA4C,GAAG,EAAE,GAAG,GAAG,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,EAAE;AACpG,CAAC,OAAO,SAAS,CAAC,SAAS,GAAG,IAAI,GAAG,QAAQ,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC;AAC/D,CAAC;AACD;AACA,SAAS,eAAe,CAAC,KAAK,EAAE,UAAU,EAAE,GAAG,EAAE;AACjD,CAAC,IAAI,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,SAAS,IAAI,EAAE,EAAE,OAAO,IAAI,CAAC,KAAK,KAAK,GAAG,IAAI,CAAC,CAAC,GAAG,IAAI,GAAG,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC;AAC9F,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC;AAC9B,CAAC,OAAO,mCAAmC,GAAG,MAAM,CAAC,GAAG,CAAC,SAAS,IAAI,EAAE;AACxE,EAAE,IAAI,MAAM,IAAI,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACxC,EAAE,OAAO,UAAU,GAAG,SAAS,CAAC,mBAAmB,EAAE,IAAI,EAAE;AAC3D,GAAG,YAAY,EAAE,IAAI,CAAC,IAAI;AAC1B,GAAG,0BAA0B,EAAE,MAAM;AACrC,GAAG,yBAAyB,EAAE,MAAM,CAAC,OAAO,CAAC,cAAc,EAAE,OAAO,CAAC;AACrE,GAAG,CAAC,CAAC;AACL,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,sCAAsC,CAAC;AACxD,CAAC;AACD,IAAI,iBAAiB,kDAAkD,CAAC,WAAW;AACnF;AACA,CAAC,IAAI,YAAY,GAAG,SAAS,IAAI,wBAAwB;AACzD,EAAE,OAAO,SAAS,CAAC,IAAI,CAAC;AACxB,IAAI,OAAO,CAAC,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC,OAAO,kBAAkB,CAAC,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;AAC7E,IAAI,OAAO,CAAC,KAAK,EAAE,aAAa,CAAC;AACjC,IAAI,OAAO,CAAC,KAAK,EAAE,mBAAmB,CAAC;AACvC,IAAI,OAAO,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;AAC1D,EAAE,CAAC;AACH;AACA,CAAC,IAAI,aAAa,GAAG,kCAAkC,CAAC;AACxD,CAAC,IAAI,gBAAgB,GAAG,yCAAyC,CAAC;AAClE,CAAC,IAAI,QAAQ,GAAG,SAAS,EAAE,EAAE,EAAE,eAAe,CAAC,aAAa,IAAI,EAAE,GAAG,aAAa;AAClF;AACA,EAAE,IAAI,CAAC,qBAAqB,EAAE,CAAC;AAC/B,EAAE,CAAC,CAAC,IAAI,CAAC,iCAAiC,GAAG,SAAS,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,GAAG,6BAA6B,CAAC,CAAC;AAC1G,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,GAAG,YAAY,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC,CAAC;AACtD,EAAE,IAAI,IAAI,oBAAoB,EAAE,CAAC,SAAS,CAAC,IAAI,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC;AAC1D,EAAE,IAAI,KAAK,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC;AAClC,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,EAAE;AAClB,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,6BAA6B,IAAI,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,uBAAuB,GAAG,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,GAAG,EAAE,CAAC,GAAG,0BAA0B,CAAC,CAAC;AACnL,GAAG;AACH,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,IAAI,GAAG,EAAE,CAAC,OAAO,CAAC,EAAE,EAAE,CAAC;AACrC,EAAE,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE;AACjC,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,GAAG,uBAAuB,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,GAAG,EAAE,CAAC;AAClE,GAAG,CAAC,CAAC,IAAI,CAAC,0BAA0B,GAAG,CAAC,GAAG,uBAAuB,CAAC,CAAC;AACpE,GAAG;AACH,EAAE,MAAM,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE;AAC7B,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,GAAG,uBAAuB,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,GAAG,EAAE,CAAC;AAClE,GAAG,CAAC,CAAC,IAAI,CAAC,0BAA0B,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC;AAClD,GAAG,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;AACtD,GAAG,MAAM,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE;AAC9B,IAAI,IAAI,IAAI,GAAG,KAAK,EAAE,EAAE,GAAG,EAAE,EAAE,KAAK,GAAG,EAAE,CAAC;AAC1C,IAAI,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,IAAI,IAAI,CAAC,MAAM,EAAE,EAAE,EAAE,EAAE;AACzC,KAAK,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,SAAS;AACnC,KAAK,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,SAAS;AACnC,KAAK,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,SAAS;AACnC,KAAK,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,SAAS;AACnC,KAAK,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC;AAC5D,KAAK,EAAE,CAAC,8BAA8B,CAAC,IAAI,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;AAC5E,KAAK,EAAE,CAAC,2BAA2B,CAAC,OAAO,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;AAC5E,KAAK,MAAM;AACX,KAAK;AACL,IAAI,GAAG,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,SAAS,EAAE;AACpD,IAAI,IAAI,GAAG,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,GAAG,KAAK,GAAG,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC;AACvF,IAAI,GAAG,IAAI,IAAI,IAAI,CAAC,CAAC,EAAE;AACvB,KAAK,EAAE,CAAC,eAAe,CAAC,GAAG,SAAS,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;AACjE,KAAK,GAAG,IAAI,CAAC,CAAC,EAAE;AAChB,MAAM,GAAG,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,IAAI,GAAG,EAAE;AAC7C,OAAO,IAAI,KAAK,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACxC,OAAO,EAAE,CAAC,qCAAqC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;AAC/E,OAAO,EAAE,CAAC,kCAAkC,CAAC,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;AAC/E,OAAO;AACP,MAAM;AACN,KAAK;AACL,IAAI,GAAG,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,SAAS,EAAE;AAClD,IAAI,OAAO,IAAI,CAAC,CAAC;AACjB,KAAK,KAAK,GAAG;AACb,MAAM,KAAK,IAAI,IAAI,CAAC,CAAC,GAAG,MAAM,GAAG,OAAO,CAAC,CAAC;AAC1C,MAAM,EAAE,CAAC,mBAAmB,CAAC,GAAG,SAAS,CAAC;AAC1C,MAAM,EAAE,CAAC,sBAAsB,CAAC,IAAI,IAAI,CAAC,CAAC,GAAG,MAAM,GAAG,OAAO,CAAC,CAAC;AAC/D,MAAM,MAAM;AACZ,KAAK,KAAK,GAAG;AACb,MAAM,KAAK,IAAI,IAAI,CAAC,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AAC1C,MAAM,EAAE,CAAC,mBAAmB,CAAC,GAAG,OAAO,CAAC;AACxC,MAAM,EAAE,CAAC,cAAc,CAAC,IAAI,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AACvC,MAAM,MAAM;AACZ,KAAK,KAAK,GAAG,CAAC,CAAC,KAAK,KAAK;AACzB,MAAM,KAAK,GAAG,IAAI,CAAC,CAAC,IAAI,IAAI,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC;AAC3C,MAAM,EAAE,CAAC,mBAAmB,CAAC,GAAG,QAAQ,CAAC;AACzC,MAAM,MAAM;AACZ,KAAK,KAAK,GAAG;AACb,MAAM,KAAK,IAAI,IAAI,CAAC,CAAC,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;AAC1D,MAAM,EAAE,CAAC,mBAAmB,CAAC,GAAG,MAAM,CAAC;AACvC,MAAM,EAAE,CAAC,mBAAmB,CAAC,IAAI,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC;AAClE,MAAM,EAAE,CAAC,kBAAkB,CAAC,GAAG,KAAK,CAAC;AACrC,MAAM,MAAM;AACZ;AACA,KAAK,SAAS,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,SAAS;AAC9C,KAAK;AACL,IAAI,IAAI,MAAM,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC;AACrC,IAAI,GAAG,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,MAAM,EAAE;AAChC,KAAK,IAAI,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC;AAC9B,KAAK,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,GAAG,GAAG,GAAG,GAAG,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;AAC9E;AACA,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,IAAI,GAAG,KAAK,GAAG,IAAI,CAAC;AAC3E,KAAK,MAAM,GAAG,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,CAAC,YAAY,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC;AACvF,KAAK;AACL,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,kBAAkB,CAAC,GAAG,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AACzE,IAAI,CAAC,CAAC,IAAI,CAAC,YAAY,GAAG,SAAS,CAAC,kBAAkB,EAAE,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC;AACrG,IAAI;AACJ,GAAG,CAAC,CAAC,IAAI,CAAC,8BAA8B,CAAC,CAAC;AAC1C,GAAG;AACH,EAAE,GAAG,CAAC,EAAE,CAAC,QAAQ,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,EAAE,CAAC,QAAQ,CAAC,KAAK,EAAE,EAAE,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,CAAC;AAC3F,EAAE,CAAC,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC;AACnC,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AACpB,EAAE,CAAC;AACH;AACA,CAAC,IAAI,0BAA0B,GAAG,SAAS,CAAC,oBAAoB,EAAE,EAAE;AACpE,EAAE,CAAC,CAAC,IAAI,CAAC,8BAA8B,CAAC,CAAC;AACzC;AACA;AACA,EAAE,IAAI,IAAI,GAAG,CAAC,CAAC;AACf,EAAE,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,EAAE,OAAO,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE;AAC/E,GAAG,GAAG,CAAC,EAAE,EAAE,OAAO;AAClB,GAAG,GAAG,EAAE,CAAC,OAAO,CAAC,EAAE;AACnB,IAAI,IAAI,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE;AACnE,KAAK,IAAI,MAAM,GAAG,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;AACjC,KAAK,GAAG,MAAM,CAAC,KAAK,IAAI,IAAI,IAAI,MAAM,CAAC,GAAG,IAAI,IAAI,IAAI,MAAM,CAAC,GAAG,IAAI,IAAI,EAAE,SAAS;AACnF,KAAK,WAAW,CAAC,MAAM,CAAC,CAAC;AACzB,KAAK,MAAM,CAAC,GAAG,GAAG,IAAI,CAAC;AACvB,KAAK,IAAI,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,IAAI,CAAC;AACvC,KAAK,CAAC,CAAC,IAAI,CAAC,+BAA+B,GAAG,IAAI,GAAG,kCAAkC,CAAC,CAAC;AACzF,KAAK,CAAC,CAAC,IAAI,CAAC,+EAA+E,GAAG,CAAC,GAAG,OAAO,CAAC,CAAC;AAC3G,KAAK,CAAC,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;AAClC,KAAK,EAAE,IAAI,CAAC;AACZ,KAAK;AACL,IAAI;AACJ,GAAG,CAAC,CAAC;AACL;AACA;AACA,EAAE,IAAI,IAAI,GAAG,CAAC,CAAC;AACf,EAAE,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,EAAE,OAAO,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE;AAC/E,GAAG,GAAG,CAAC,EAAE,EAAE,OAAO;AAClB,GAAG,GAAG,EAAE,CAAC,OAAO,CAAC,EAAE;AACnB,IAAI,IAAI,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE;AACnE,KAAK,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,IAAI,CAAC;AAC/B,KAAK,IAAI,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,IAAI,CAAC;AACvC,KAAK,CAAC,CAAC,IAAI,CAAC,+BAA+B,GAAG,IAAI,GAAG,+BAA+B,CAAC,CAAC;AACtF,KAAK,CAAC,CAAC,IAAI,CAAC,0EAA0E,GAAG,CAAC,GAAG,OAAO,CAAC,CAAC;AACtG,KAAK,CAAC,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;AAClC,KAAK,EAAE,IAAI,CAAC;AACZ,KAAK;AACL,IAAI;AACJ,GAAG,CAAC,CAAC;AACL;AACA;AACA,EAAE,CAAC,CAAC,IAAI,CAAC,sFAAsF,CAAC,CAAC;AACjG,EAAE,CAAC,CAAC,IAAI,CAAC,gFAAgF,CAAC,CAAC;AAC3F,EAAE,CAAC,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;AAC/B;AACA,EAAE,CAAC,CAAC,IAAI,CAAC,wEAAwE,CAAC,CAAC;AACnF,EAAE,CAAC,CAAC,IAAI,CAAC,0CAA0C,CAAC,CAAC;AACrD,EAAE,CAAC,CAAC,IAAI,CAAC,mCAAmC,CAAC,CAAC;AAC9C,EAAE,CAAC,CAAC,IAAI,CAAC,wCAAwC,CAAC,CAAC;AACnD,EAAE,CAAC,CAAC,IAAI,CAAC,mCAAmC,CAAC,CAAC;AAC9C,EAAE,CAAC,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;AAChC,EAAE,CAAC,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC;AACrC;AACA;AACA,EAAE,IAAI,GAAG,GAAG,EAAE,CAAC;AACf,EAAE,IAAI,GAAG,GAAG,EAAE,CAAC;AACf,EAAE,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,EAAE,OAAO,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE;AAC/E,GAAG,GAAG,CAAC,EAAE,EAAE,OAAO;AAClB,GAAG,IAAI,KAAK,IAAI,EAAE,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC,CAAC;AACrC,GAAG,IAAI,KAAK,GAAG,YAAY,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;AACxC,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,IAAI,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE;AAC3E,IAAI,IAAI,CAAC,GAAG,KAAK,GAAG,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACzE,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,IAAI,SAAS,EAAE,SAAS;AAC9D,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE;AAClB,KAAK,IAAI,GAAG,GAAG,uBAAuB,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,GAAG,GAAG,CAAC,CAAC;AACvD,KAAK,GAAG,GAAG,EAAE,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,CAAC,EAAE;AACjE,KAAK;AACL,IAAI;AACJ,GAAG,CAAC,CAAC;AACL,EAAE,CAAC,CAAC,IAAI,CAAC,6HAA6H,CAAC,CAAC;AACxI,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE;AACjC,GAAG,CAAC,CAAC,IAAI,CAAC,6BAA6B,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,uFAAuF,GAAG,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,CAAC;AAC1K,GAAG,CAAC,CAAC;AACL;AACA;AACA;AACA,EAAE,CAAC,CAAC,IAAI,CAAC,+BAA+B,CAAC,CAAC;AAC1C,EAAE,OAAO,GAAG,CAAC;AACb,EAAE,CAAC;AACH;AACA,CAAC,OAAO,SAAS,GAAG,CAAC,EAAE,EAAE,IAAI,EAAE;AAC/B,EAAE,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;AACvB;AACA,EAAE,IAAI,IAAI,GAAG,UAAU,CAAC;AACxB,GAAG,cAAc,QAAQ,kDAAkD;AAC3E,GAAG,aAAa,SAAS,iDAAiD;AAC1E,GAAG,aAAa,SAAS,iDAAiD;AAC1E,GAAG,YAAY,UAAU,gDAAgD;AACzE,GAAG,YAAY,UAAU,mDAAmD;AAC5E,GAAG,UAAU,YAAY,6DAA6D;AACtF,GAAG,aAAa,SAAS,8BAA8B;AACvD,GAAG,UAAU,YAAY,kCAAkC;AAC3D,GAAG,YAAY,UAAU,gDAAgD;AACzE,GAAG,cAAc,QAAQ,qDAAqD;AAC9E,GAAG,oBAAoB,EAAE,wDAAwD;AACjF,GAAG,WAAW,WAAW,0DAA0D;AACnF,GAAG,aAAa,SAAS,iDAAiD;AAC1E,GAAG,YAAY,UAAU,gDAAgD;AACzE,GAAG,YAAY,UAAU,oCAAoC;AAC7D,GAAG,YAAY,UAAU,gDAAgD;AACzE,GAAG,cAAc,QAAQ,kDAAkD;AAC3E,GAAG,WAAW,WAAW,mCAAmC;AAC5D,GAAG,YAAY,UAAU,mCAAmC;AAC5D,GAAG,YAAY,UAAU,iCAAiC;AAC1D,GAAG,WAAW,WAAW,mCAAmC;AAC5D,GAAG,cAAc,QAAQ,+BAA+B;AACxD,GAAG,WAAW,WAAW,kCAAkC;AAC3D,GAAG,WAAW,WAAW,2CAA2C;AACpE,GAAG,aAAa,SAAS,6CAA6C;AACtE,GAAG,WAAW,WAAW,mCAAmC;AAC5D,GAAG,UAAU,YAAY,8CAA8C;AACvE,GAAG,aAAa,SAAS,8BAA8B;AACvD,GAAG,aAAa,SAAS,qCAAqC;AAC9D,GAAG,gBAAgB,MAAM,kCAAkC;AAC3D,GAAG,eAAe,OAAO,iCAAiC;AAC1D,GAAG,eAAe,OAAO,sEAAsE;AAC/F,GAAG,aAAa,SAAS,sEAAsE;AAC/F,GAAG,aAAa,SAAS,kEAAkE;AAC3F,GAAG,aAAa,SAAS,oEAAoE;AAC7F,GAAG,aAAa,SAAS,iCAAiC;AAC1D,GAAG,gBAAgB,MAAM,KAAK;AAC9B,GAAG,CAAC,CAAC;AACL;AACA,EAAE,IAAI,IAAI,GAAG,UAAU,CAAC;AACxB,GAAG,cAAc,KAAK,kDAAkD;AACxE,GAAG,iBAAiB,EAAE,gDAAgD;AACtE,GAAG,CAAC,CAAC;AACL;AACA,EAAE,GAAG,IAAI,CAAC,QAAQ,IAAI,MAAM,EAAE;AAC9B,GAAG,CAAC,CAAC,IAAI,CAAC,kBAAkB,GAAG,IAAI,GAAG,IAAI,GAAG,KAAK,CAAC,CAAC;AACpD,GAAG,CAAC,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC,OAAO,CAAC,2BAA2B,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,0BAA0B,EAAE,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC;AACpH;AACA,GAAG,MAAM,CAAC,CAAC,IAAI,CAAC,0BAA0B,GAAG,IAAI,IAAI,KAAK,CAAC,CAAC;AAC5D;AACA,EAAE,IAAI,GAAG,GAAG,0BAA0B,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;AAC9C,EAAE,CAAC,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;AAC9B,EAAE,CAAC,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAC;AACvC,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC,QAAQ,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,6TAA6T,CAAC,CAAC;AACrX,EAAE,IAAI,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,UAAU,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC;AACjH,EAAE,GAAG,CAAC,EAAE,CAAC,QAAQ,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,EAAE,CAAC,QAAQ,CAAC,KAAK,EAAE,EAAE,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;AAC5F,EAAE,CAAC,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAC;AACxC,EAAE,CAAC,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;AAC/B,EAAE,GAAG,IAAI,CAAC,QAAQ,IAAI,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;AAC3D,OAAO,CAAC,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAC;AAC5C,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AACpB,EAAE,CAAC;AACH,CAAC,GAAG,CAAC;AACL;AACA,SAAS,SAAS,CAAC,EAAE,UAAU,IAAI,UAAU;AAC7C,CAAC,GAAG,IAAI,CAAC,QAAQ,IAAI,MAAM,EAAE,OAAO,iBAAiB,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;AAChE;AACA,CAAC,IAAI,GAAG,GAAG,OAAO,EAAE,CAAC;AACrB,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;AACZ;AACA,CAAC,IAAI,QAAQ,6BAA6B,EAAE,CAAC;AAC7C,CAAC,IAAI,GAAG,+BAA+B,EAAE,CAAC;AAC1C;AACA;AACA,CAAC,CAAC,GAAG,UAAU,CAAC;AAChB,CAAC,YAAY,CAAC,GAAG,EAAE,CAAC,EAAE,gDAAgD,CAAC,CAAC;AACxE;AACA;AACA,CAAC,CAAC,GAAG,aAAa,CAAC;AACnB,CAAC,YAAY,CAAC,GAAG,EAAE,CAAC,EAAE,iBAAiB,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC;AACnD,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC;AAChC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,aAAa,CAAC,CAAC,CAAC;AAC9B;AACA;AACA,CAAC,CAAC,GAAG,YAAY,CAAC;AAClB,CAAC,YAAY,CAAC,GAAG,EAAE,CAAC,EAAE,gBAAgB,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC;AAClD,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC;AAChC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,YAAY,CAAC,CAAC,CAAC;AAC7B;AACA;AACA,CAAC,CAAC,GAAG,UAAU,CAAC;AAChB,CAAC,YAAY,CAAC,GAAG,EAAE,CAAC,EAAE,UAAU,GAAG,cAAc,gBAAgB,CAAC,CAAC;AACnE,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC;AAChC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,cAAc,CAAC,CAAC,CAAC;AAC/B;AACA;AACA,CAAC,CAAC,GAAG,cAAc,CAAC;AACpB,CAAC,YAAY,CAAC,GAAG,EAAE,CAAC,EAAE,SAAS,CAAC,GAAG,WAAW,CAAC,CAAC;AAChD,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,qBAAqB,CAAC,CAAC,CAAC;AAC3C;AACA;AACA,CAAC,CAAC,GAAG,uBAAuB,CAAC;AAC7B,CAAC,YAAY,CAAC,GAAG,EAAE,CAAC,EAAE,cAAc,CAAC,QAAQ,WAAW,CAAC,CAAC;AAC1D;AACA,CAAC,OAAO,GAAG,CAAC;AACZ,CAAC;AACD;AACA;AACA,IAAI,QAAQ,GAAG,WAAW;AAC1B,EAAE,IAAI;AACN,IAAI,IAAI,OAAO,UAAU,IAAI,WAAW;AACxC,MAAM,OAAO,OAAO,CAAC;AACrB,IAAI,IAAI,OAAO,UAAU,CAAC,SAAS,CAAC,QAAQ,IAAI,WAAW;AAC3D,MAAM,OAAO,OAAO,CAAC;AACrB,IAAI,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE;AACvC,MAAM,IAAI,OAAO,MAAM,CAAC,SAAS,CAAC,QAAQ,IAAI,WAAW;AACzD,QAAQ,OAAO,OAAO,CAAC;AACvB,MAAM,IAAI,CAAC,OAAO,MAAM,CAAC,IAAI,IAAI,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,GAAG,IAAI,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,aAAa,UAAU;AACjH,QAAQ,OAAO,UAAU,CAAC;AAC1B,MAAM,OAAO,OAAO,CAAC;AACrB,KAAK;AACL,IAAI,OAAO,UAAU,CAAC;AACtB,GAAG,CAAC,OAAO,CAAC,EAAE;AACd,IAAI,OAAO,OAAO,CAAC;AACnB,GAAG;AACH,CAAC,EAAE,CAAC;AACJ,SAAS,cAAc,CAAC,KAAK,EAAE;AAC/B,EAAE,OAAO,IAAI,QAAQ,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,UAAU,EAAE,KAAK,CAAC,UAAU,CAAC,CAAC;AACxE,CAAC;AACD,SAAS,KAAK,CAAC,EAAE,EAAE;AACnB,EAAE,OAAO,OAAO,WAAW,IAAI,WAAW,GAAG,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;AAC9F,CAAC;AACD,SAAS,KAAK,CAAC,GAAG,EAAE;AACpB,EAAE,OAAO,OAAO,WAAW,IAAI,WAAW,GAAG,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC;AACjG,CAAC;AACD,SAAS,QAAQ,CAAC,GAAG,EAAE;AACvB,EAAE,IAAI,GAAG,GAAG,CAAC,CAAC;AACd,EAAE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,EAAE,CAAC;AACrC,IAAI,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;AACzB,EAAE,IAAI,GAAG,GAAG,IAAI,UAAU,CAAC,GAAG,CAAC,CAAC;AAChC,EAAE,IAAI,GAAG,GAAG,CAAC,CAAC;AACd,EAAE,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE;AACnC,IAAI,IAAI,EAAE,GAAG,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC;AACnC,IAAI,IAAI,CAAC,GAAG,GAAG,EAAE;AACjB,MAAM,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;AAChC,QAAQ,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;AAC3B,KAAK,MAAM;AACX,MAAM,GAAG,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;AACvB,MAAM,GAAG,IAAI,CAAC,CAAC;AACf,KAAK;AACL,GAAG;AACH,EAAE,OAAO,GAAG,CAAC;AACb,CAAC;AACD,SAAS,MAAM,CAAC,CAAC,EAAE;AACnB,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,UAAU,CAAC;AAC3B,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,SAAS,KAAK,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC,CAAC;AAC7C,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,SAAS,IAAI,QAAQ,KAAK,EAAE,CAAC;AACtD,CAAC;AACD,SAAS,gBAAgB,CAAC,GAAG,EAAE,MAAM,EAAE;AACvC,EAAE,IAAI,GAAG,GAAG,CAAC,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC,GAAG,GAAG,KAAK,CAAC,GAAG,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC;AAClE,EAAE,IAAI,QAAQ,GAAG,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC;AACtC,EAAE,KAAK,IAAI,CAAC,GAAG,MAAM,GAAG,EAAE,EAAE,CAAC,IAAI,MAAM,EAAE,EAAE,CAAC;AAC5C,IAAI,QAAQ,GAAG,QAAQ,GAAG,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;AACvC,EAAE,OAAO,CAAC,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC,GAAG,GAAG,GAAG,CAAC,QAAQ,GAAG,QAAQ,IAAI,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,GAAG,IAAI,CAAC,CAAC;AACpF,CAAC;AACD,SAAS,iBAAiB,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE;AAC/C,EAAE,IAAI,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,GAAG,EAAE,CAAC;AAC7F,EAAE,IAAI,QAAQ,GAAG,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,GAAG,IAAI,CAAC,CAAC;AAClD,EAAE,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC;AAC/B,EAAE,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC,IAAI,CAAC,GAAG,GAAG,GAAG,KAAK,CAAC,CAAC;AACvC,EAAE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,QAAQ,IAAI,CAAC,EAAE,EAAE,CAAC,EAAE,QAAQ,IAAI,GAAG;AACrD,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,QAAQ,GAAG,GAAG,CAAC;AACrC,EAAE,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC;AAC3C,CAAC;AACD,SAAS,cAAc,CAAC,GAAG,EAAE,GAAG,EAAE;AAClC,EAAE,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;AAChB,EAAE,IAAI,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC;AACzB,EAAE,MAAM;AACR,IAAI,IAAI,GAAG,CAAC,CAAC,EAAE,CAAC,IAAI,GAAG,EAAE;AACzB,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,KAAK,CAAC,CAAC;AACjC,MAAM,IAAI,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,GAAG;AACxB,QAAQ,MAAM,MAAM,CAAC;AACrB,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,KAAK,EAAE,CAAC;AAClC,MAAM,IAAI,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,GAAG;AACxB,QAAQ,MAAM,MAAM,CAAC;AACrB,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,KAAK,EAAE,CAAC;AAClC,MAAM,IAAI,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,GAAG;AACxB,QAAQ,MAAM,MAAM,CAAC;AACrB,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;AAC9C,MAAM,EAAE,CAAC,CAAC;AACV,MAAM,IAAI,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,GAAG;AACxB,QAAQ,MAAM,MAAM,CAAC;AACrB,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;AAC9C,MAAM,EAAE,CAAC,CAAC;AACV,MAAM,IAAI,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,GAAG;AACxB,QAAQ,MAAM,MAAM,CAAC;AACrB,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;AAC9C,MAAM,EAAE,CAAC,CAAC;AACV,MAAM,IAAI,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,GAAG;AACxB,QAAQ,MAAM,MAAM,CAAC;AACrB,KAAK;AACL,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;AACZ,EAAE,OAAO,GAAG,CAAC;AACb,CAAC;AACD,SAAS,cAAc,CAAC,CAAC,EAAE;AAC3B,EAAE,IAAI,GAAG,GAAG,IAAI,UAAU,CAAC,CAAC,CAAC,CAAC;AAC9B,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC;AACnB,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;AACZ,EAAE,EAAE;AACJ,IAAI,IAAI,CAAC,GAAG,GAAG,EAAE;AACjB,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,GAAG,CAAC;AACxB,MAAM,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC;AAC5B,MAAM,EAAE,CAAC,CAAC;AACV,MAAM,IAAI,CAAC,IAAI,KAAK;AACpB,QAAQ,MAAM,EAAE,CAAC;AACjB,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,GAAG,CAAC;AACxB,MAAM,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,GAAG,CAAC;AAC7B,MAAM,EAAE,CAAC,CAAC;AACV,MAAM,IAAI,CAAC,IAAI,OAAO;AACtB,QAAQ,MAAM,EAAE,CAAC;AACjB,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,GAAG,CAAC;AACxB,MAAM,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,GAAG,CAAC;AAC7B,MAAM,EAAE,CAAC,CAAC;AACV,MAAM,IAAI,CAAC,IAAI,SAAS;AACxB,QAAQ,MAAM,EAAE,CAAC;AACjB,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,GAAG,CAAC;AACxB,MAAM,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,GAAG,KAAK,EAAE,GAAG,GAAG,CAAC;AACpC,MAAM,EAAE,CAAC,CAAC;AACV,MAAM,IAAI,CAAC,IAAI,WAAW;AAC1B,QAAQ,MAAM,EAAE,CAAC;AACjB,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,GAAG,CAAC;AACxB,MAAM,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK,KAAK,EAAE,GAAG,GAAG,CAAC;AACtC,MAAM,EAAE,CAAC,CAAC;AACV,MAAM,IAAI,CAAC,IAAI,aAAa;AAC5B,QAAQ,MAAM,EAAE,CAAC;AACjB,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,GAAG,CAAC;AACxB,MAAM,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,QAAQ,KAAK,EAAE,GAAG,GAAG,CAAC;AACzC,MAAM,EAAE,CAAC,CAAC;AACV,KAAK;AACL,EAAE,OAAO,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAC7B,CAAC;AACD,SAAS,oBAAoB,CAAC,GAAG,EAAE;AACnC,EAAE,IAAI,GAAG,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;AACrB,EAAE,IAAI,GAAG,GAAG,EAAE,CAAC;AACf,EAAE,OAAO,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,MAAM;AAC3B,IAAI,GAAG,CAAC,IAAI,CAAC,cAAc,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;AACvC,EAAE,OAAO,GAAG,CAAC;AACb,CAAC;AACD,SAAS,oBAAoB,CAAC,IAAI,EAAE;AACpC,EAAE,OAAO,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE;AACvC,IAAI,OAAO,cAAc,CAAC,CAAC,CAAC,CAAC;AAC7B,GAAG,CAAC,CAAC,CAAC;AACN,CAAC;AACD,SAAS,aAAa,CAAC,GAAG,EAAE;AAC5B,EAAE,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC;AAChC,EAAE,MAAM;AACR,IAAI,IAAI,GAAG,CAAC,CAAC,EAAE,CAAC,IAAI,GAAG,EAAE;AACzB,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,KAAK,CAAC,CAAC;AACjC,MAAM,IAAI,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,GAAG;AACxB,QAAQ,MAAM,MAAM,CAAC;AACrB,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,KAAK,EAAE,CAAC;AAClC,MAAM,IAAI,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,GAAG;AACxB,QAAQ,MAAM,MAAM,CAAC;AACrB,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,KAAK,EAAE,CAAC;AAClC,MAAM,IAAI,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,GAAG;AACxB,QAAQ,MAAM,MAAM,CAAC;AACrB,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,KAAK,EAAE,CAAC;AAClC,KAAK;AACL,EAAE,OAAO,GAAG,CAAC;AACb,CAAC;AAkCD,SAAS,aAAa,CAAC,GAAG,EAAE;AAC5B,EAAE,IAAI,GAAG,GAAG,EAAE,EAAE,GAAG,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;AAC/B,EAAE,OAAO,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE;AAC7B,IAAI,IAAI,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC;AACpB,IAAI,IAAI,GAAG,GAAG,cAAc,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;AACvC,IAAI,IAAI,IAAI,GAAG,GAAG,GAAG,CAAC,CAAC;AACvB,IAAI,GAAG,GAAG,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC;AACtB,IAAI,IAAI,IAAI,CAAC;AACb,IAAI,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;AAClB,IAAI,QAAQ,IAAI;AAChB,MAAM,KAAK,CAAC;AACZ,QAAQ;AACR,UAAU,OAAO,GAAG,CAAC,CAAC,EAAE,CAAC,IAAI,GAAG;AAChC,YAAY,CAAC;AACb,UAAU,IAAI,GAAG,GAAG,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AACzC,UAAU,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;AACpB,SAAS;AACT,QAAQ,MAAM;AACd,MAAM,KAAK,CAAC;AACZ,QAAQ;AACR,UAAU,IAAI,GAAG,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;AACzC,UAAU,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AACxB,SAAS;AACT,QAAQ,MAAM;AACd,MAAM,KAAK,CAAC;AACZ,QAAQ;AACR,UAAU,IAAI,GAAG,GAAG,cAAc,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;AAC7C,UAAU,IAAI,GAAG,GAAG,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC;AACnD,UAAU,GAAG,CAAC,CAAC,IAAI,GAAG,CAAC;AACvB,SAAS;AACT,QAAQ,MAAM;AACd,MAAM,KAAK,CAAC;AACZ,QAAQ;AACR,UAAU,IAAI,GAAG,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;AACzC,UAAU,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AACxB,SAAS;AACT,QAAQ,MAAM;AACd,MAAM;AACN,QAAQ,MAAM,IAAI,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC,MAAM,CAAC,GAAG,EAAE,aAAa,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;AACvG,KAAK;AACL,IAAI,IAAI,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;AACvC,IAAI,IAAI,GAAG,CAAC,GAAG,CAAC,IAAI,IAAI;AACxB,MAAM,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;AACpB,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACrB,GAAG;AACH,EAAE,OAAO,GAAG,CAAC;AACb,CAAC;AACD,SAAS,aAAa,CAAC,KAAK,EAAE;AAC9B,EAAE,IAAI,GAAG,GAAG,EAAE,CAAC;AACf,EAAE,KAAK,CAAC,OAAO,CAAC,SAAS,KAAK,EAAE,GAAG,EAAE;AACrC,IAAI,IAAI,GAAG,IAAI,CAAC;AAChB,MAAM,OAAO;AACb,IAAI,KAAK,CAAC,OAAO,CAAC,SAAS,IAAI,EAAE;AACjC,MAAM,IAAI,CAAC,IAAI,CAAC,IAAI;AACpB,QAAQ,OAAO;AACf,MAAM,GAAG,CAAC,IAAI,CAAC,cAAc,CAAC,GAAG,GAAG,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;AACpD,MAAM,IAAI,IAAI,CAAC,IAAI,IAAI,CAAC;AACxB,QAAQ,GAAG,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;AACnD,MAAM,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,KAAK,CAAC,CAAC;AACP,GAAG,CAAC,CAAC;AACL,EAAE,OAAO,QAAQ,CAAC,GAAG,CAAC,CAAC;AACvB,CAAC;AACD,SAAS,KAAK,CAAC,IAAI,EAAE,EAAE,EAAE;AACzB,EAAE,OAAO,CAAC,IAAI,IAAI,IAAI,GAAG,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE;AACvD,IAAI,OAAO,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;AACtB,GAAG,CAAC,KAAK,EAAE,CAAC;AACZ,CAAC;AACD,SAAS,cAAc,CAAC,GAAG,EAAE;AAC7B,EAAE,IAAI,EAAE,CAAC;AACT,EAAE,IAAI,GAAG,GAAG,EAAE,EAAE,GAAG,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;AAC/B,EAAE,OAAO,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE;AAC7B,IAAI,IAAI,GAAG,GAAG,cAAc,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;AACvC,IAAI,IAAI,EAAE,GAAG,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;AAC9D,IAAI,GAAG,CAAC,CAAC,IAAI,GAAG,CAAC;AACjB,IAAI,IAAI,GAAG,GAAG;AACd,MAAM,EAAE,EAAE,aAAa,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;AACtC,MAAM,QAAQ,EAAE,EAAE;AAClB,KAAK,CAAC;AACN,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE;AAC9B,MAAM,IAAI,EAAE,GAAG,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;AACrC,MAAM,IAAI,EAAE,GAAG,aAAa,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;AAC5C,MAAM,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC;AACxB,QAAQ,IAAI,EAAE,EAAE;AAChB,QAAQ,IAAI,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;AAC9C,OAAO,CAAC,CAAC;AACT,MAAM,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;AAClB,KAAK,CAAC,CAAC;AACP,IAAI,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,KAAK,IAAI,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;AAC7C,MAAM,GAAG,CAAC,KAAK,GAAG,aAAa,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AACzD,IAAI,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAClB,GAAG;AACH,EAAE,OAAO,GAAG,CAAC;AACb,CAAC;AACD,SAAS,cAAc,CAAC,GAAG,EAAE;AAC7B,EAAE,IAAI,IAAI,GAAG,EAAE,CAAC;AAChB,EAAE,GAAG,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE;AAC3B,IAAI,IAAI,EAAE,GAAG;AACb,MAAM,EAAE;AACR,MAAM,CAAC,EAAE,IAAI,EAAE,cAAc,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC;AAChD,MAAM,EAAE;AACR,KAAK,CAAC;AACN,IAAI,IAAI,EAAE,CAAC,KAAK,IAAI,IAAI;AACxB,MAAM,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,cAAc,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC;AAC/D,IAAI,IAAI,MAAM,GAAG,EAAE,CAAC;AACpB,IAAI,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE;AACrC,MAAM,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;AAC3B,MAAM,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,cAAc,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;AACvE,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,aAAa,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC;AAC5D,KAAK,CAAC,CAAC;AACP,IAAI,IAAI,SAAS,GAAG,aAAa,CAAC,EAAE,CAAC,CAAC;AACtC,IAAI,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC;AAChD,IAAI,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;AACzB,IAAI,MAAM,CAAC,OAAO,CAAC,SAAS,GAAG,EAAE;AACjC,MAAM,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC5B,KAAK,CAAC,CAAC;AACP,GAAG,CAAC,CAAC;AACL,EAAE,OAAO,QAAQ,CAAC,IAAI,CAAC,CAAC;AACxB,CAAC;AACD,SAAS,kBAAkB,CAAC,IAAI,EAAE,GAAG,EAAE;AACvC,EAAE,IAAI,IAAI,IAAI,CAAC;AACf,IAAI,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;AAClE,EAAE,IAAI,GAAG,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;AACrB,EAAE,IAAI,GAAG,GAAG,cAAc,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;AACrC,EAAE,IAAI,MAAM,GAAG,EAAE,CAAC;AAClB,EAAE,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;AAChB,EAAE,OAAO,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE;AACzB,IAAI,IAAI,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AACzB,IAAI,IAAI,GAAG,IAAI,CAAC,EAAE;AAClB,MAAM,IAAI,GAAG,GAAG,GAAG,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;AAC9B,MAAM,IAAI,GAAG,GAAG,EAAE;AAClB,QAAQ,EAAE,GAAG,CAAC;AACd,WAAW;AACX,QAAQ,IAAI,CAAC,GAAG,GAAG,GAAG,EAAE,CAAC;AACzB,QAAQ,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;AACrB,QAAQ,IAAI,CAAC,GAAG,CAAC;AACjB,UAAU,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC;AACjC,QAAQ,IAAI,CAAC,GAAG,CAAC;AACjB,UAAU,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;AAClC,QAAQ,IAAI,CAAC,GAAG,CAAC;AACjB,UAAU,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;AAClC,QAAQ,GAAG,MAAM,CAAC,CAAC;AACnB,QAAQ,GAAG,EAAE,CAAC;AACd,QAAQ,CAAC,IAAI,CAAC,CAAC;AACf,OAAO;AACP,MAAM,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;AAC7C,MAAM,CAAC,IAAI,GAAG,CAAC;AACf,MAAM,SAAS;AACf,KAAK,MAAM;AACX,MAAM,IAAI,MAAM,GAAG,CAAC,EAAE,MAAM,GAAG,CAAC,CAAC;AACjC,MAAM,IAAI,GAAG,IAAI,CAAC,EAAE;AACpB,QAAQ,MAAM,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AACvC,QAAQ,MAAM,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,GAAG,KAAK,CAAC,CAAC;AACvC,QAAQ,MAAM,IAAI,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC;AAC3B,OAAO,MAAM;AACb,QAAQ,MAAM,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACrC,QAAQ,IAAI,GAAG,IAAI,CAAC,EAAE;AACtB,UAAU,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC;AAC5C,UAAU,CAAC,IAAI,CAAC,CAAC;AACjB,SAAS,MAAM;AACf,UAAU,MAAM,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;AAC1F,UAAU,CAAC,IAAI,CAAC,CAAC;AACjB,SAAS;AACT,OAAO;AACP,MAAM,IAAI,MAAM,IAAI,CAAC;AACrB,QAAQ,MAAM,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAC;AAC5C,MAAM,IAAI,CAAC,GAAG,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,GAAG,GAAG,MAAM,CAAC;AAC9C,MAAM,OAAO,CAAC,IAAI,CAAC,IAAI,GAAG,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE;AAChD,QAAQ,GAAG,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;AAChC,QAAQ,EAAE,CAAC,CAAC;AACZ,OAAO;AACP,MAAM,IAAI,CAAC,GAAG,CAAC,EAAE;AACjB,QAAQ,IAAI,GAAG,IAAI,CAAC;AACpB,UAAU,GAAG,GAAG,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC;AACrC;AACA,UAAU,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC;AAC1D,OAAO;AACP,MAAM,IAAI,MAAM,GAAG,GAAG;AACtB,QAAQ,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,GAAG,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,GAAG,GAAG,MAAM,CAAC,CAAC,CAAC;AAClG,WAAW;AACX,QAAQ,IAAI,GAAG,GAAG,CAAC,EAAE;AACrB,UAAU,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC;AACnE,UAAU,MAAM,IAAI,GAAG,CAAC;AACxB,SAAS;AACT,QAAQ,EAAE,CAAC,CAAC;AACZ,QAAQ,OAAO,MAAM,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE;AAC3C,UAAU,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;AACjC,UAAU,MAAM,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;AACrC,UAAU,EAAE,CAAC,CAAC;AACd,SAAS;AACT,QAAQ,IAAI,MAAM;AAClB,UAAU,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC;AACtD,OAAO;AACP,MAAM,IAAI,MAAM,CAAC,MAAM,GAAG,EAAE;AAC5B,QAAQ,MAAM,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;AACpC,KAAK;AACL,GAAG;AACH,EAAE,IAAI,IAAI,GAAG,CAAC,CAAC;AACf,EAAE,KAAK,IAAI,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,MAAM,CAAC,MAAM,EAAE,EAAE,GAAG;AAC9C,IAAI,IAAI,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC;AAC/B,EAAE,IAAI,IAAI,IAAI,GAAG;AACjB,IAAI,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;AAC5E,EAAE,OAAO,MAAM,CAAC;AAChB,CAAC;AACD,SAAS,mBAAmB,CAAC,GAAG,EAAE;AAClC,EAAE,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC;AACxB,IAAI,GAAG,GAAG,IAAI,UAAU,CAAC,GAAG,CAAC,CAAC;AAC9B,EAAE,IAAI,GAAG,GAAG,EAAE,CAAC;AACf,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;AACZ,EAAE,OAAO,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE;AACzB,IAAI,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC;AACrB,IAAI,IAAI,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;AAC1D,IAAI,CAAC,IAAI,CAAC,CAAC;AACX,IAAI,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,kBAAkB,CAAC,CAAC,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;AAC1E,IAAI,CAAC,IAAI,GAAG,CAAC;AACb,GAAG;AACH,EAAE,IAAI,CAAC,KAAK,GAAG,CAAC,MAAM;AACtB,IAAI,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAC;AAC1D,EAAE,OAAO,GAAG,CAAC,MAAM,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC;AAClD,CAAC;AACD,SAAS,iBAAiB,CAAC,GAAG,EAAE;AAChC,EAAE,IAAI,GAAG,GAAG,EAAE,CAAC;AACf,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;AACZ,EAAE,OAAO,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE;AACzB,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,EAAE,SAAS,CAAC,CAAC;AAChD,IAAI,IAAI,KAAK,GAAG,IAAI,UAAU,CAAC,CAAC,CAAC,CAAC;AAClC,IAAI,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACpB,IAAI,IAAI,GAAG,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC;AAChC,IAAI,IAAI,CAAC,GAAG,GAAG,CAAC,MAAM,CAAC;AACvB,IAAI,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAClB,IAAI,IAAI,CAAC,IAAI,EAAE,EAAE;AACjB,MAAM,CAAC,EAAE,CAAC;AACV,MAAM,GAAG,CAAC,IAAI,CAAC,IAAI,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;AAC7C,KAAK,MAAM,IAAI,CAAC,IAAI,GAAG,EAAE;AACzB,MAAM,CAAC,IAAI,CAAC,CAAC;AACb,MAAM,GAAG,CAAC,IAAI,CAAC,IAAI,UAAU,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;AACnD,KAAK,MAAM,IAAI,CAAC,IAAI,KAAK,EAAE;AAC3B,MAAM,CAAC,IAAI,CAAC,CAAC;AACb,MAAM,GAAG,CAAC,IAAI,CAAC,IAAI,UAAU,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,GAAG,GAAG,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;AACrE,KAAK,MAAM,IAAI,CAAC,IAAI,QAAQ,EAAE;AAC9B,MAAM,CAAC,IAAI,CAAC,CAAC;AACb,MAAM,GAAG,CAAC,IAAI,CAAC,IAAI,UAAU,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,GAAG,GAAG,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,GAAG,EAAE,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;AACxF,KAAK,MAAM,IAAI,CAAC,IAAI,UAAU,EAAE;AAChC,MAAM,CAAC,IAAI,CAAC,CAAC;AACb,MAAM,GAAG,CAAC,IAAI,CAAC,IAAI,UAAU,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,GAAG,GAAG,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,GAAG,EAAE,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,GAAG,EAAE,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;AAC5G,KAAK;AACL,IAAI,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AACtC,IAAI,CAAC,IAAI,CAAC,CAAC;AACX,IAAI,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AACjB,IAAI,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC;AACvB,IAAI,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC;AAC5B,IAAI,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,GAAG,CAAC;AAC7B,IAAI,CAAC,IAAI,CAAC,CAAC;AACX,GAAG;AACH,EAAE,OAAO,QAAQ,CAAC,GAAG,CAAC,CAAC;AACvB,CAAC;AACD,IAAI,eAAe,GAAG,WAAW;AACjC,EAAE,OAAO,EAAE,GAAG,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC;AACnD,CAAC,CAAC;AACF,SAAS,mBAAmB,CAAC,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE;AACzD,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;AACrB,EAAE,IAAI,KAAK,GAAG,CAAC,GAAG,GAAG,EAAE,GAAG,GAAG,CAAC,IAAI,CAAC,CAAC;AACpC,EAAE,IAAI,GAAG,GAAG,GAAG,IAAI,CAAC,GAAG,IAAI,GAAG,IAAI,CAAC;AACnC,EAAE,GAAG;AACL,IAAI,IAAI,KAAK,IAAI,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,IAAI,GAAG,IAAI,KAAK,IAAI,CAAC,EAAE;AAClE,MAAM,IAAI,MAAM,GAAG,CAAC,CAAC,EAAE,GAAG,GAAG,CAAC,CAAC,CAAC,KAAK,IAAI,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,IAAI,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AACjG,MAAM,IAAI,MAAM,IAAI,CAAC,CAAC;AACtB,QAAQ,MAAM,GAAG,CAAC;AAClB,MAAM,IAAI,IAAI,GAAG,CAAC,CAAC,EAAE,GAAG,GAAG,CAAC,EAAE,CAAC,KAAK,IAAI,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,IAAI,aAAa,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AACjG,MAAM,IAAI,IAAI,GAAG,CAAC,CAAC,EAAE,GAAG,GAAG,CAAC,EAAE,CAAC,KAAK,IAAI,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,IAAI,aAAa,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AACjG,MAAM,IAAI,IAAI,GAAG,CAAC,CAAC,EAAE,GAAG,GAAG,CAAC,EAAE,CAAC,KAAK,IAAI,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,IAAI,aAAa,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AACjG,MAAM,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;AAC7B,MAAM,OAAO;AACb,QAAQ,IAAI,IAAI,EAAE;AAClB,UAAU,IAAI,CAAC,IAAI,CAAC,EAAE;AACtB,YAAY,IAAI,GAAG,IAAI,GAAG,CAAC,CAAC;AAC5B,YAAY,MAAM,OAAO,CAAC;AAC1B,WAAW;AACX,UAAU,IAAI,CAAC,IAAI,MAAM;AACzB,YAAY,IAAI,GAAG,CAAC,CAAC;AACrB,eAAe,IAAI,CAAC,IAAI,KAAK;AAC7B,YAAY,IAAI,GAAG,CAAC,CAAC;AACrB,eAAe,IAAI,CAAC,IAAI,IAAI;AAC5B,YAAY,IAAI,GAAG,CAAC,CAAC;AACrB,eAAe,IAAI,CAAC,IAAI,EAAE;AAC1B,YAAY,IAAI,GAAG,CAAC,CAAC;AACrB,eAAe,IAAI,CAAC,IAAI,CAAC;AACzB,YAAY,IAAI,GAAG,EAAE,CAAC;AACtB;AACA,YAAY,IAAI,GAAG,EAAE,CAAC;AACtB,UAAU,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;AAChC,YAAY,IAAI,GAAG,EAAE,CAAC;AACtB,eAAe,IAAI,CAAC,GAAG,EAAE;AACzB,YAAY,IAAI,GAAG,EAAE,CAAC;AACtB,eAAe,IAAI,CAAC,GAAG,IAAI;AAC3B,YAAY,IAAI,GAAG,CAAC,CAAC;AACrB,eAAe,IAAI,CAAC,GAAG,KAAK;AAC5B,YAAY,IAAI,GAAG,CAAC,CAAC;AACrB,eAAe,IAAI,CAAC,GAAG,MAAM;AAC7B,YAAY,IAAI,GAAG,CAAC,CAAC;AACrB,UAAU,IAAI,IAAI,GAAG,IAAI;AACzB,YAAY,IAAI,GAAG,IAAI,CAAC;AACxB,SAAS;AACT,MAAM,IAAI,IAAI,IAAI,CAAC,CAAC,IAAI,IAAI,IAAI,CAAC,CAAC;AAClC,QAAQ,MAAM,GAAG,CAAC;AAClB,MAAM,IAAI,IAAI,GAAG,EAAE,EAAE,IAAI,GAAG,EAAE,CAAC;AAC/B,MAAM,IAAI,IAAI,IAAI,CAAC,EAAE;AACrB,QAAQ,EAAE,GAAG,CAAC,GAAG,MAAM,CAAC;AACxB,QAAQ,IAAI,IAAI,IAAI,CAAC,EAAE;AACvB,UAAU,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AAC5B,SAAS,MAAM;AACf,UAAU,EAAE,IAAI,CAAC,CAAC;AAClB,UAAU,CAAC,IAAI,MAAM,GAAG,EAAE,CAAC;AAC3B,SAAS;AACT,QAAQ,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,MAAM,IAAI,CAAC,GAAG,OAAO,IAAI,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,GAAG,CAAC,GAAG,MAAM,IAAI,CAAC,GAAG,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC;AAChG,OAAO;AACP,MAAM,IAAI,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,EAAE;AAClC,QAAQ,EAAE,GAAG,CAAC,GAAG,KAAK,CAAC;AACvB,QAAQ,IAAI,IAAI,GAAG,CAAC,EAAE;AACtB,UAAU,EAAE,IAAI,CAAC,CAAC;AAClB,UAAU,CAAC,IAAI,KAAK,GAAG,EAAE,CAAC;AAC1B,SAAS;AACT,QAAQ,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AAC1B,QAAQ,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,MAAM,IAAI,CAAC,GAAG,MAAM,IAAI,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,GAAG,CAAC,GAAG,MAAM,IAAI,CAAC,GAAG,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC;AAC/F,OAAO;AACP,MAAM,IAAI,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,EAAE;AAClC,QAAQ,EAAE,GAAG,CAAC,GAAG,IAAI,CAAC;AACtB,QAAQ,IAAI,IAAI,GAAG,CAAC,EAAE;AACtB,UAAU,EAAE,IAAI,CAAC,CAAC;AAClB,UAAU,CAAC,IAAI,IAAI,GAAG,EAAE,CAAC;AACzB,SAAS;AACT,QAAQ,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,GAAG,GAAG,IAAI,KAAK,CAAC,CAAC;AACrD,QAAQ,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,MAAM,IAAI,CAAC,GAAG,OAAO,IAAI,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,GAAG,CAAC,GAAG,MAAM,IAAI,CAAC,GAAG,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC;AAChG,OAAO;AACP,MAAM,IAAI,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,EAAE;AAClC,QAAQ,EAAE,GAAG,CAAC,GAAG,EAAE,CAAC;AACpB,QAAQ,IAAI,IAAI,GAAG,CAAC,EAAE;AACtB,UAAU,EAAE,IAAI,CAAC,CAAC;AAClB,UAAU,CAAC,IAAI,EAAE,GAAG,EAAE,CAAC;AACvB,SAAS;AACT,QAAQ,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,GAAG,GAAG,IAAI,KAAK,CAAC,CAAC;AACrD,QAAQ,IAAI,MAAM,IAAI,CAAC;AACvB,UAAU,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,GAAG,IAAI,EAAE,CAAC,CAAC;AAC1E;AACA,UAAU,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,MAAM,IAAI,CAAC,GAAG,SAAS,IAAI,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,GAAG,CAAC,GAAG,MAAM,IAAI,CAAC,GAAG,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC;AACpG,OAAO;AACP,MAAM,IAAI,IAAI,IAAI,EAAE,IAAI,IAAI,IAAI,EAAE,EAAE;AACpC,QAAQ,EAAE,GAAG,CAAC,CAAC;AACf,QAAQ,IAAI,IAAI,GAAG,EAAE,EAAE;AACvB,UAAU,EAAE,IAAI,CAAC,CAAC;AAClB,UAAU,CAAC,IAAI,EAAE,CAAC;AAClB,SAAS;AACT,QAAQ,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,IAAI,EAAE,GAAG,KAAK,GAAG,GAAG,IAAI,KAAK,CAAC,CAAC;AACtD,QAAQ,IAAI,MAAM,IAAI,CAAC;AACvB,UAAU,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,IAAI,EAAE,IAAI,IAAI,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,GAAG,IAAI,EAAE,CAAC,CAAC;AAC5E;AACA,UAAU,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,MAAM,IAAI,CAAC,GAAG,SAAS,IAAI,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,GAAG,CAAC,GAAG,MAAM,IAAI,CAAC,GAAG,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC;AACpG,OAAO;AACP,MAAM,IAAI,IAAI,IAAI,EAAE,EAAE;AACtB,QAAQ,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;AACjC,QAAQ,IAAI,IAAI,GAAG,EAAE;AACrB,UAAU,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;AAChC,QAAQ,IAAI,MAAM,IAAI,CAAC;AACvB,UAAU,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,GAAG,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC,CAAC;AACnE;AACA,UAAU,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,MAAM,IAAI,CAAC,GAAG,cAAc,IAAI,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,GAAG,CAAC,GAAG,MAAM,IAAI,CAAC,GAAG,IAAI,GAAG,EAAE,CAAC,CAAC,CAAC;AAC1G,OAAO;AACP,MAAM,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,GAAG,GAAG,GAAG,GAAG,CAAC,CAAC;AAClD,MAAM,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,GAAG,KAAK,GAAG,GAAG,CAAC,CAAC;AACpD,MAAM,IAAI,MAAM,IAAI,CAAC;AACrB,QAAQ,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,YAAY,EAAE,KAAK,CAAC,CAAC;AACrD,KAAK;AACL,CAAC;AACD,SAAS,iBAAiB,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,EAAE;AACxC,EAAE,IAAI,EAAE,GAAG,cAAc,CAAC,GAAG,CAAC,CAAC;AAC/B,EAAE,IAAI,KAAK,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;AACpC,EAAE,IAAI,IAAI,GAAG,CAAC,CAAC,EAAE,IAAI,GAAG,CAAC,CAAC,EAAE,IAAI,GAAG,CAAC,CAAC,EAAE,IAAI,GAAG,GAAG,EAAE,EAAE,GAAG,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AAC7E,EAAE,IAAI,IAAI,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;AAC5B,EAAE,IAAI,KAAK,GAAG,CAAC,EAAE;AACjB,IAAI,IAAI,GAAG,EAAE,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;AACpC,IAAI,IAAI,IAAI,CAAC,CAAC;AACd,GAAG;AACH,EAAE,IAAI,IAAI,MAAM,CAAC,KAAK,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;AACnD,EAAE,IAAI,KAAK,GAAG,GAAG,EAAE;AACnB,IAAI,IAAI,GAAG,EAAE,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;AACpC,IAAI,IAAI,IAAI,CAAC,CAAC;AACd,GAAG;AACH,EAAE,IAAI,IAAI,MAAM,CAAC,KAAK,IAAI,CAAC,GAAG,CAAC,GAAG,KAAK,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;AACrD,EAAE,IAAI,KAAK,GAAG,EAAE,EAAE;AAClB,IAAI,IAAI,GAAG,EAAE,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;AACpC,IAAI,IAAI,IAAI,CAAC,CAAC;AACd,GAAG;AACH,EAAE,IAAI,KAAK,GAAG,EAAE,EAAE;AAClB,IAAI,IAAI,GAAG,EAAE,CAAC,UAAU,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;AACrC,IAAI,IAAI,IAAI,CAAC,CAAC;AACd,GAAG;AACH,EAAE,IAAI,KAAK,GAAG,EAAE,EAAE;AAClB,IAAI,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,UAAU,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC;AAC/D,IAAI,IAAI,IAAI,CAAC,CAAC;AACd,GAAG;AACH,EAAE,IAAI,CAAC,GAAG,CAAC,EAAE;AACb,IAAI,KAAK,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC;AACzC,IAAI,IAAI,KAAK,GAAG,GAAG,EAAE;AACrB,MAAM,IAAI,IAAI,IAAI,CAAC,CAAC;AACpB,QAAQ,IAAI,GAAG,EAAE,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;AACxC,MAAM,IAAI,IAAI,CAAC,CAAC;AAChB,KAAK;AACL,GAAG;AACH,EAAE,IAAI,GAAG,CAAC;AACV,EAAE,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;AAC9B,EAAE,QAAQ,CAAC;AACX,IAAI,KAAK,CAAC;AACV,MAAM,OAAO,KAAK,CAAC,CAAC;AACpB,IAAI,KAAK,CAAC;AACV,MAAM,GAAG,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC;AAChC,MAAM,MAAM;AACZ,IAAI,KAAK,CAAC;AACV,MAAM,GAAG,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;AACzC,MAAM,MAAM;AACZ,IAAI,KAAK,CAAC;AACV,MAAM,GAAG,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC;AAC9B,MAAM,MAAM;AACZ,IAAI,KAAK,CAAC;AACV,MAAM,GAAG,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,CAAC;AACpC,MAAM,MAAM;AACZ,IAAI,KAAK,CAAC;AACV,MAAM,GAAG,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC;AAChC,MAAM,MAAM;AACZ,IAAI,KAAK,CAAC;AACV,MAAM,GAAG,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;AAC7B,MAAM,MAAM;AACZ,IAAI,KAAK,CAAC;AACV,MAAM;AACN,QAAQ,IAAI,IAAI,GAAG,CAAC,CAAC;AACrB,UAAU,GAAG,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;AAC9C;AACA,UAAU,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;AAChF,OAAO;AACP,MAAM,MAAM;AACZ,IAAI;AACJ,MAAM,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;AAC5E,GAAG;AACH,EAAE,IAAI,IAAI,GAAG,CAAC,CAAC;AACf,IAAI,mBAAmB,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;AAChF,EAAE,IAAI,CAAC,IAAI,CAAC;AACZ,IAAI,GAAG,CAAC,CAAC,IAAI,KAAK,CAAC;AACnB,EAAE,OAAO,GAAG,CAAC;AACb,CAAC;AACD,SAAS,iBAAiB,CAAC,GAAG,EAAE,GAAG,EAAE;AACrC,EAAE,IAAI,EAAE,GAAG,cAAc,CAAC,GAAG,CAAC,CAAC;AAC/B,EAAc,EAAE,CAAC,SAAS,CAAC,CAAC,EAAE,IAAI,EAAE;AACpC,EAAE,IAAI,MAAM,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;AACrC,EAAE,IAAI,IAAI,GAAG,EAAE,CAAC;AAChB,EAAE,IAAI,IAAI,GAAG,CAAC,CAAC,EAAE,IAAI,GAAG,CAAC,CAAC,EAAE,IAAI,GAAG,CAAC,CAAC,EAAE,IAAI,GAAG,GAAG,EAAE,IAAI,GAAG,GAAG,EAAE,EAAE,GAAG,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AACzF,EAAE,IAAI,MAAM,GAAG,CAAC,EAAE;AAClB,IAAI,IAAI,GAAG,gBAAgB,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;AACvC,IAAI,IAAI,IAAI,EAAE,CAAC;AACf,GAAG;AACH,EAAE,IAAI,MAAM,GAAG,CAAC,EAAE;AAClB,IAAI,IAAI,GAAG,EAAE,CAAC,UAAU,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;AACrC,IAAI,IAAI,IAAI,CAAC,CAAC;AACd,GAAG;AACH,EAAE,IAAI,MAAM,GAAG,CAAC,EAAE;AAClB,IAAI,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,UAAU,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC;AAC/D,IAAI,IAAI,IAAI,CAAC,CAAC;AACd,GAAG;AACH,EAAE,IAAI,MAAM,GAAG,CAAC,EAAE;AAClB,IAAI,IAAI,GAAG,EAAE,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;AACpC,IAAI,IAAI,IAAI,CAAC,CAAC;AACd,GAAG;AACH,EAAE,IAAI,MAAM,GAAG,EAAE,EAAE;AACnB,IAAI,IAAI,GAAG,EAAE,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;AACpC,IAAI,IAAI,IAAI,CAAC,CAAC;AACd,GAAG;AACH,EAAE,IAAI,GAAG,CAAC;AACV,EAAE,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;AACjB,EAAE,QAAQ,CAAC;AACX,IAAI,KAAK,CAAC;AACV,MAAM,OAAO,KAAK,CAAC,CAAC;AACpB,IAAI,KAAK,CAAC;AACV,MAAM,GAAG,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC;AAChC,MAAM,MAAM;AACZ,IAAI,KAAK,CAAC;AACV,MAAM,GAAG,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;AACzC,MAAM,MAAM;AACZ,IAAI,KAAK,CAAC;AACV,MAAM,GAAG,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC;AAC9B,MAAM,MAAM;AACZ,IAAI,KAAK,CAAC;AACV,MAAM,GAAG,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,CAAC;AACpC,MAAM,MAAM;AACZ,IAAI,KAAK,CAAC;AACV,MAAM,GAAG,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC;AAChC,MAAM,MAAM;AACZ,IAAI,KAAK,CAAC;AACV,MAAM,GAAG,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;AAC7B,MAAM,MAAM;AACZ,IAAI,KAAK,CAAC;AACV,MAAM,GAAG,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;AAC1C,MAAM,MAAM;AACZ,IAAI,KAAK,EAAE;AACX,MAAM,GAAG,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC;AAChC,MAAM,MAAM;AACZ,IAAI;AACJ,MAAM,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,MAAM,CAAC,MAAM,GAAG,EAAE,EAAE,KAAK,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;AAC7H,GAAG;AACH,EAAE,IAAI,IAAI,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC;AACpC,EAAE,IAAI,MAAM,GAAG,MAAM,EAAE;AACvB,IAAI,IAAI,IAAI,IAAI,CAAC,CAAC;AAClB,MAAM,IAAI,GAAG,EAAE,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;AACtC,IAAI,IAAI,IAAI,CAAC,CAAC;AACd,GAAG;AACH,EAAE,IAAI,IAAI,GAAG,CAAC,CAAC;AACf,IAAI,mBAAmB,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,MAAM,IAAI,EAAE,EAAE,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;AACvF,EAAE,IAAI,CAAC,IAAI,CAAC;AACZ,IAAI,GAAG,CAAC,CAAC,IAAI,KAAK,CAAC;AACnB,EAAE,OAAO,GAAG,CAAC;AACb,CAAC;AACD,SAAS,iBAAiB,CAAC,IAAI,EAAE,GAAG,EAAE;AACtC,EAAE,IAAI,GAAG,GAAG,IAAI,UAAU,CAAC,EAAE,CAAC,EAAE,EAAE,GAAG,cAAc,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,KAAK,GAAG,CAAC,CAAC;AAC5E,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AACb,EAAE,QAAQ,IAAI,CAAC,CAAC;AAChB,IAAI,KAAK,GAAG;AACZ,MAAM,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AACjB,MAAM,iBAAiB,CAAC,GAAG,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;AACxC,MAAM,KAAK,IAAI,CAAC,CAAC;AACjB,MAAM,CAAC,IAAI,EAAE,CAAC;AACd,MAAM,MAAM;AACZ,IAAI,KAAK,GAAG;AACZ,MAAM,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AACjB,MAAM,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,CAAC;AAC7C,MAAM,KAAK,IAAI,CAAC,CAAC;AACjB,MAAM,CAAC,IAAI,CAAC,CAAC;AACb,MAAM,MAAM;AACZ,IAAI,KAAK,GAAG;AACZ,MAAM,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC,IAAI,IAAI,GAAG,EAAE,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACnD,MAAM,IAAI,IAAI,GAAG,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;AAChC,MAAM,IAAI,IAAI,IAAI,CAAC,CAAC;AACpB,QAAQ,GAAG,CAAC,IAAI,GAAG,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;AACnC,MAAM,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AACjB,MAAM,EAAE,CAAC,SAAS,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;AAClC,MAAM,KAAK,IAAI,CAAC,CAAC;AACjB,MAAM,CAAC,IAAI,CAAC,CAAC;AACb,MAAM,MAAM;AACZ,IAAI;AACJ,MAAM,MAAM,wBAAwB,GAAG,IAAI,CAAC,CAAC,CAAC;AAC9C,GAAG;AACH,EAAE,EAAE,CAAC,SAAS,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;AAC/B,EAAE,OAAO,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAC7B,CAAC;AACD,SAAS,iBAAiB,CAAC,IAAI,EAAE,GAAG,EAAE;AACtC,EAAE,IAAI,GAAG,GAAG,IAAI,UAAU,CAAC,EAAE,CAAC,EAAE,EAAE,GAAG,cAAc,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,KAAK,GAAG,CAAC,CAAC;AAC5E,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AACb,EAAE,QAAQ,IAAI,CAAC,CAAC;AAChB,IAAI,KAAK,GAAG;AACZ,MAAM,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AACjB,MAAM,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;AACrC,MAAM,KAAK,IAAI,EAAE,CAAC;AAClB,MAAM,CAAC,IAAI,CAAC,CAAC;AACb,MAAM,MAAM;AACZ,IAAI,KAAK,GAAG;AACZ,MAAM,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AACjB,MAAM,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,CAAC;AAC7C,MAAM,KAAK,IAAI,EAAE,CAAC;AAClB,MAAM,CAAC,IAAI,CAAC,CAAC;AACb,MAAM,MAAM;AACZ,IAAI,KAAK,GAAG;AACZ,MAAM,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC,IAAI,IAAI,GAAG,EAAE,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACnD,MAAM,IAAI,IAAI,GAAG,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;AAChC,MAAM,IAAI,IAAI,IAAI,CAAC,CAAC;AACpB,QAAQ,GAAG,CAAC,IAAI,GAAG,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;AACnC,MAAM,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AACjB,MAAM,EAAE,CAAC,SAAS,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;AAClC,MAAM,KAAK,IAAI,EAAE,CAAC;AAClB,MAAM,CAAC,IAAI,CAAC,CAAC;AACb,MAAM,MAAM;AACZ,IAAI;AACJ,MAAM,MAAM,wBAAwB,GAAG,IAAI,CAAC,CAAC,CAAC;AAC9C,GAAG;AACH,EAAE,EAAE,CAAC,SAAS,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;AAC/B,EAAE,OAAO,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAC7B,CAAC;AACD,SAAS,kBAAkB,CAAC,GAAG,EAAE,GAAG,EAAE;AACtC,EAAE,QAAQ,GAAG,CAAC,CAAC,CAAC;AAChB,IAAI,KAAK,CAAC,CAAC;AACX,IAAI,KAAK,CAAC,CAAC;AACX,IAAI,KAAK,CAAC,CAAC;AACX,IAAI,KAAK,CAAC,CAAC;AACX,IAAI,KAAK,CAAC;AACV,MAAM,OAAO,iBAAiB,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AACjD,IAAI,KAAK,CAAC;AACV,MAAM,OAAO,iBAAiB,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;AACzC,IAAI;AACJ,MAAM,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACrE,GAAG;AACH,CAAC;AACD,SAAS,mBAAmB,CAAC,GAAG,EAAE;AAClC,EAAE,IAAI,EAAE,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC;AAC9B,EAAE,OAAO,aAAa,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;AACtC,CAAC;AACD,SAAS,mBAAmB,CAAC,GAAG,EAAE;AAClC,EAAE,OAAO,aAAa,CAAC;AACvB,IAAI,EAAE;AACN,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,cAAc,CAAC,GAAG,CAAC,EAAE,CAAC;AAC5C,GAAG,CAAC,CAAC;AACL,CAAC;AACD,SAAS,gBAAgB,CAAC,GAAG,EAAE,GAAG,EAAE;AACpC,EAAE,IAAI,EAAE,CAAC;AACT,EAAE,IAAI,KAAK,GAAG,CAAC,CAAC,EAAE,GAAG,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,IAAI,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,IAAI,oBAAoB,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;AACrI,EAAE,IAAI,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;AACnC,EAAE,IAAI,OAAO,IAAI,CAAC,CAAC,EAAE;AACrB,IAAI,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACpB,IAAI,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,oBAAoB,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;AAC/E,GAAG;AACH,CAAC;AACD,SAAS,gBAAgB,CAAC,GAAG,EAAE,GAAG,EAAE;AACpC,EAAE,IAAI,EAAE,CAAC;AACT,EAAE,IAAI,KAAK,GAAG,CAAC,CAAC,EAAE,GAAG,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,IAAI,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,IAAI,oBAAoB,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;AACrI,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,oBAAoB,CAAC,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE;AAC5F,IAAI,OAAO,CAAC,IAAI,GAAG,CAAC;AACpB,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC;AACT,CAAC;AACD,SAAS,uBAAuB,CAAC,CAAC,EAAE,IAAI,EAAE;AAC1C,EAAE,IAAI,EAAE,GAAG,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACpC,EAAE,IAAI,IAAI,GAAG,aAAa,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;AAC1C,EAAE,IAAI,OAAO,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;AACtB,EAAE,IAAI,IAAI,GAAG,EAAE,CAAC;AAChB,EAAE,CAAC,OAAO,IAAI,EAAE,EAAE,OAAO,CAAC,SAAS,KAAK,EAAE;AAC1C,IAAI,IAAI,EAAE,GAAG,aAAa,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;AACvC,IAAI,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;AACd,MAAM,OAAO;AACb,IAAI,IAAI,GAAG,GAAG,aAAa,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACjD,IAAI,QAAQ,IAAI;AAChB,MAAM,KAAK,CAAC;AACZ,QAAQ,IAAI,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;AACzC,QAAQ,MAAM;AACd,MAAM,KAAK,CAAC;AACZ,QAAQ;AACR,UAAU,IAAI,EAAE,GAAG,CAAC,CAAC,mBAAmB,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC5D,UAAU,IAAI,GAAG,GAAG,aAAa,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;AAC3C,UAAU,IAAI,MAAM,GAAG,CAAC,CAAC,mBAAmB,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACjE,UAAU,IAAI,KAAK,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;AAC5D,UAAU,IAAI,KAAK,IAAI,IAAI;AAC3B,YAAY,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;AAC3E,UAAU,IAAI,MAAM,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;AAClD,UAAU,IAAI,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE;AAChD,YAAY,OAAO,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;AACjC,WAAW,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AACtB,SAAS;AACT,QAAQ,MAAM;AACd,MAAM,KAAK,CAAC;AACZ,QAAQ,IAAI,CAAC,GAAG,CAAC,GAAG,aAAa,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;AACjD,QAAQ,MAAM;AACd,MAAM;AACN,QAAQ,MAAM,IAAI,CAAC;AACnB,KAAK;AACL,GAAG,CAAC,CAAC;AACL,EAAE,OAAO,IAAI,CAAC;AACd,CAAC;AACD,SAAS,qBAAqB,CAAC,EAAE,EAAE,IAAI,EAAE;AACzC,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;AAC7D,EAAE,IAAI,EAAE,GAAG,aAAa,CAAC,EAAE,CAAC,CAAC;AAC7B,EAAE,IAAI,CAAC,GAAG,aAAa,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAC7C,EAAE,IAAI,GAAG,GAAG,aAAa,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAC/C,EAAE,IAAI,YAAY,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,KAAK,IAAI,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,KAAK,IAAI,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,KAAK,aAAa,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC;AAC5I,EAAE,IAAI,eAAe,EAAE,YAAY,CAAC;AACpC,EAAE,IAAI,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,KAAK,IAAI,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,KAAK,IAAI,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,KAAK,IAAI,IAAI,CAAC,EAAE;AAC9F,IAAI,eAAe,GAAG,CAAC,EAAE,GAAG,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,KAAK,IAAI,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,KAAK,IAAI,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC;AAC9F,IAAI,YAAY,GAAG,CAAC,EAAE,GAAG,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,KAAK,IAAI,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,KAAK,IAAI,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC;AAC3F,GAAG,MAAM,IAAI,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,KAAK,IAAI,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,KAAK,IAAI,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,KAAK,IAAI,IAAI,CAAC,EAAE;AACrG,IAAI,eAAe,GAAG,CAAC,EAAE,GAAG,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,KAAK,IAAI,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,KAAK,IAAI,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC;AAC9F,IAAI,YAAY,GAAG,CAAC,EAAE,GAAG,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,KAAK,IAAI,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,KAAK,IAAI,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC;AAC3F,GAAG;AACH,IAAI,MAAM,uBAAuB,CAAC,MAAM,CAAC,IAAI,EAAE,eAAe,CAAC,CAAC;AAChE,EAAE,IAAI,KAAK,GAAG,YAAY,GAAG,CAAC,GAAG,CAAC,CAAC;AACnC,EAAE,IAAI,oBAAoB,GAAG,cAAc,CAAC,eAAe,CAAC,CAAC;AAC7D,EAAE,IAAI,OAAO,GAAG,EAAE,CAAC;AACnB,EAAE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,eAAe,CAAC,MAAM,GAAG,CAAC,EAAE,EAAE,CAAC,EAAE;AACvD,IAAI,IAAI,GAAG,GAAG,oBAAoB,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,CAAC;AAC1D,IAAI,IAAI,GAAG,GAAG,KAAK;AACnB,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;AAC7B,GAAG;AACH,EAAE,IAAI,OAAO,CAAC,MAAM,IAAI,GAAG;AAC3B,IAAI,MAAM,WAAW,CAAC,MAAM,CAAC,GAAG,EAAE,gBAAgB,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;AAC3E,EAAE,IAAI,KAAK,GAAG,EAAE,CAAC;AACjB,EAAE,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,EAAE,CAAC;AACzC,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,YAAY,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,EAAE,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC;AACpG,EAAE,IAAI,OAAO,CAAC,MAAM,IAAI,CAAC;AACzB,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,YAAY,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC;AAC3G,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;AAChC,CAAC;AACD,SAAS,cAAc,CAAC,CAAC,EAAE,IAAI,EAAE;AACjC,EAAE,IAAI,EAAE,CAAC;AACT,EAAE,IAAI,EAAE,GAAG,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACpC,EAAE,IAAI,OAAO,GAAG,CAAC,CAAC,CAAC;AACnB,EAAE,IAAI,CAAC,EAAE,GAAG,EAAE,IAAI,IAAI,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,KAAK,IAAI,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE;AACnE,IAAI,IAAI,aAAa,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC;AAC1C,MAAM,OAAO,GAAG,CAAC,CAAC;AAClB;AACA,MAAM,OAAO,GAAG,CAAC,CAAC;AAClB,GAAG;AACH,EAAE,IAAI,EAAE,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,EAAE;AACrC,IAAI,OAAO,qBAAqB,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;AAC9C,GAAG,CAAC,CAAC;AACL,EAAE,OAAO;AACT,IAAI,KAAK,EAAE,aAAa,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC;AAC7C,IAAI,IAAI,EAAE,EAAE,CAAC,MAAM,CAAC,SAAS,GAAG,EAAE,CAAC,EAAE;AACrC,MAAM,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AACnB,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;AACtB,MAAM,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,IAAI,EAAE,CAAC,EAAE;AACxC,QAAQ,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACvB,UAAU,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;AAC5E,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;AAC3B,OAAO,CAAC,CAAC;AACT,MAAM,OAAO,GAAG,CAAC;AACjB,KAAK,EAAE,EAAE,CAAC;AACV,GAAG,CAAC;AACJ,CAAC;AACD,SAAS,2BAA2B,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE;AAClD,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;AAC7B,EAAE,IAAI,EAAE,GAAG,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACpC,EAAE,IAAI,KAAK,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;AACvD,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;AACvD,EAAE,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;AACnB,IAAI,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;AACjE,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;AACvD,EAAE,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;AACnB,IAAI,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;AACjE,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC;AACnC,EAAE,IAAI,KAAK,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,IAAI,EAAE,GAAG,GAAG,EAAE,CAAC;AAC5C,EAAE,IAAI,KAAK,GAAG,aAAa,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;AAC3C,EAAE,IAAI,GAAG,GAAG,eAAe,EAAE,CAAC;AAC9B,EAAE,IAAI,CAAC,EAAE,GAAG,KAAK,CAAC,CAAC,CAAC,KAAK,IAAI,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;AAC9C,IAAI,GAAG,CAAC,GAAG,GAAG,uBAAuB,CAAC,CAAC,EAAE,CAAC,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACtF,EAAE,IAAI,CAAC,EAAE,GAAG,KAAK,CAAC,EAAE,CAAC,KAAK,IAAI,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;AAC/C,IAAI,GAAG,CAAC,IAAI,GAAG,uBAAuB,CAAC,CAAC,EAAE,CAAC,CAAC,mBAAmB,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACxF,EAAE,IAAI,CAAC,EAAE,GAAG,KAAK,CAAC,EAAE,CAAC,KAAK,IAAI,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;AAC/C,IAAI,GAAG,CAAC,IAAI,GAAG,uBAAuB,CAAC,CAAC,EAAE,CAAC,CAAC,mBAAmB,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACxF,EAAE,IAAI,CAAC,EAAE,GAAG,KAAK,CAAC,EAAE,CAAC,KAAK,IAAI,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;AAC/C,IAAI,GAAG,CAAC,IAAI,GAAG,uBAAuB,CAAC,CAAC,EAAE,CAAC,CAAC,mBAAmB,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACxF,EAAE,IAAI,IAAI,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;AAC7C,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC;AACb,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE;AAC9B,IAAI,IAAI,EAAE,GAAG,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;AACnC,IAAI,IAAI,IAAI,GAAG,CAAC,CAAC,mBAAmB,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACxD,IAAI,IAAI,MAAM,GAAG,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;AACrD,IAAI,IAAI,MAAM,IAAI,IAAI;AACtB,MAAM,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;AACtE,IAAI,IAAI,KAAK,GAAG,cAAc,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;AACxC,IAAI,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,GAAG,EAAE,CAAC,EAAE;AACxC,MAAM,GAAG,CAAC,OAAO,CAAC,SAAS,GAAG,EAAE,CAAC,EAAE;AACnC,QAAQ,IAAI,GAAG,GAAG,kBAAkB,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;AAC/C,QAAQ,IAAI,GAAG,EAAE;AACjB,UAAU,IAAI,KAAK,EAAE;AACrB,YAAY,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;AACrC,cAAc,GAAG,CAAC,OAAO,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;AACxC,YAAY,GAAG,CAAC,OAAO,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC;AAC1C,WAAW,MAAM;AACjB,YAAY,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC;AACzD,WAAW;AACX,SAAS;AACT,OAAO,CAAC,CAAC;AACT,KAAK,CAAC,CAAC;AACP,IAAI,EAAE,IAAI,KAAK,CAAC,KAAK,CAAC;AACtB,GAAG,CAAC,CAAC;AACL,EAAE,IAAI,CAAC,EAAE,GAAG,KAAK,CAAC,EAAE,CAAC,KAAK,IAAI,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE;AACjD,IAAI,IAAI,GAAG,GAAG,CAAC,CAAC,mBAAmB,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC3D,IAAI,IAAI,KAAK,GAAG,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;AACnD,IAAI,IAAI,KAAK,IAAI,IAAI;AACrB,MAAM,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;AACxE,IAAI,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,GAAG,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,IAAI,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,EAAE,EAAE;AAC7F,MAAM,IAAI,KAAK,GAAG,aAAa,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;AACzC,MAAM,IAAI,MAAM,GAAG,cAAc,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,IAAI,GAAG,cAAc,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;AACjJ,MAAM,OAAO;AACb,QAAQ,CAAC,EAAE,EAAE,CAAC,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE;AACzE,QAAQ,CAAC,EAAE;AACX,UAAU,CAAC,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC;AACpE,UAAU,CAAC,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC;AACpE,SAAS;AACT,OAAO,CAAC;AACR,KAAK,CAAC,CAAC;AACP,GAAG;AACH,CAAC;AACD,SAAS,0BAA0B,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE;AACnD,EAAE,IAAI,EAAE,GAAG,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACpC,EAAE,IAAI,GAAG,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;AAC7B,EAAE,IAAI,IAAI,IAAI,IAAI,GAAG,KAAK,CAAC,GAAG,IAAI,CAAC,KAAK;AACxC,IAAI,GAAG,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC;AACtB,EAAE,IAAI,QAAQ,GAAG,CAAC,CAAC,mBAAmB,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;AACvD,EAAE,IAAI,KAAK,GAAG,aAAa,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;AACzD,EAAE,IAAI,KAAK,IAAI,IAAI;AACnB,IAAI,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;AACnE,EAAE,2BAA2B,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;AACnD,EAAE,OAAO,GAAG,CAAC;AACb,CAAC;AACD,SAAS,qBAAqB,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE;AAC9C,EAAE,IAAI,EAAE,CAAC;AACT,EAAE,IAAI,EAAE,GAAG,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACpC,EAAE,IAAI,GAAG,GAAG;AACZ,IAAI,IAAI,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,KAAK,IAAI,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE;AAC7E,IAAI,MAAM,EAAE,EAAE;AACd,GAAG,CAAC;AACJ,EAAE,IAAI,SAAS,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,mBAAmB,CAAC,CAAC;AACpD,EAAE,SAAS,CAAC,OAAO,CAAC,SAAS,GAAG,EAAE;AAClC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE;AAC/B,MAAM,IAAI,KAAK,GAAG,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;AACnD,MAAM,IAAI,KAAK,IAAI,GAAG;AACtB,QAAQ,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;AAChE,KAAK,CAAC,CAAC;AACP,GAAG,CAAC,CAAC;AACL,EAAE,OAAO,GAAG,CAAC;AACb,CAAC;AACD,SAAS,wBAAwB,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE;AACjD,EAAE,IAAI,EAAE,CAAC;AACT,EAAE,IAAI,GAAG,GAAG,QAAQ,EAAE,CAAC;AACvB,EAAE,IAAI,EAAE,GAAG,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACpC,EAAE,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,KAAK,IAAI,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;AAC3C,IAAI,MAAM,IAAI,KAAK,CAAC,yCAAyC,CAAC,CAAC;AAC/D,EAAE,IAAI,SAAS,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,mBAAmB,CAAC,CAAC;AACpD,EAAE,SAAS,CAAC,OAAO,CAAC,SAAS,GAAG,EAAE;AAClC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE;AAC/B,MAAM,IAAI,KAAK,GAAG,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;AACnD,MAAM,IAAI,KAAK,IAAI,CAAC,EAAE;AACtB,QAAQ,IAAI,KAAK,GAAG,qBAAqB,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC;AACtD,QAAQ,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,SAAS,KAAK,EAAE,GAAG,EAAE;AAClD,UAAU,iBAAiB,CAAC,GAAG,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI,GAAG,GAAG,GAAG,GAAG,EAAE,IAAI,CAAC,CAAC;AAC9F,SAAS,CAAC,CAAC;AACX,OAAO;AACP,KAAK,CAAC,CAAC;AACP,GAAG,CAAC,CAAC;AACL,EAAE,IAAI,GAAG,CAAC,UAAU,CAAC,MAAM,IAAI,CAAC;AAChC,IAAI,MAAM,IAAI,KAAK,CAAC,oBAAoB,CAAC,CAAC;AAC1C,EAAE,GAAG,CAAC,QAAQ,GAAG,SAAS,CAAC;AAC3B,EAAE,OAAO,GAAG,CAAC;AACb,CAAC;AACD,SAAS,iBAAiB,CAAC,GAAG,EAAE,IAAI,EAAE;AACtC,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;AACjC,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,OAAO,GAAG,EAAE,CAAC;AAC3B,EAAE,GAAG,CAAC,SAAS,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE;AACpC,IAAI,IAAI,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC;AAC1B,MAAM,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAC;AACzD,GAAG,CAAC,CAAC;AACL,EAAE,GAAG,CAAC,SAAS,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE;AACpC,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC;AAC/B,MAAM,OAAO;AACb,IAAI,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC;AACzB,MAAM,OAAO;AACb,IAAI,IAAI,CAAC,CAAC;AACV,IAAI,IAAI;AACR,MAAM,CAAC,GAAG,mBAAmB,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;AACzC,KAAK,CAAC,OAAO,CAAC,EAAE;AAChB,MAAM,OAAO,OAAO,CAAC,GAAG,CAAC,KAAK,GAAG,CAAC,CAAC,OAAO,CAAC,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC;AAC5E,KAAK;AACL,IAAI,IAAI,OAAO,CAAC;AAChB,IAAI,IAAI;AACR,MAAM,OAAO,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC;AAClC,KAAK,CAAC,OAAO,CAAC,EAAE;AAChB,MAAM,OAAO,OAAO,CAAC,GAAG,CAAC,KAAK,IAAI,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC;AACnD,KAAK;AACL,IAAI,OAAO,CAAC,OAAO,CAAC,SAAS,MAAM,EAAE;AACrC,MAAM,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC;AACrC,MAAM,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;AAC9B,KAAK,CAAC,CAAC;AACP,GAAG,CAAC,CAAC;AACL,EAAE,IAAI,CAAC,OAAO,CAAC,MAAM;AACrB,IAAI,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;AAC5C,EAAE,IAAI,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,GAAG,CAAC,EAAE,GAAG,CAAC,IAAI,IAAI,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,KAAK,IAAI,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,GAAG;AAC5L,IAAI,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAC;AACzD,EAAE,IAAI,OAAO,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,GAAG,CAAC,EAAE,GAAG,CAAC,EAAE,GAAG,CAAC,IAAI,IAAI,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,KAAK,IAAI,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,KAAK,IAAI,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,KAAK,IAAI,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC7O,EAAE,IAAI,CAAC,OAAO;AACd,IAAI,OAAO,CAAC,OAAO,CAAC,SAAS,GAAG,EAAE;AAClC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,SAAS,IAAI,EAAE;AACpC,QAAQ,IAAI,KAAK,GAAG,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAC9D,QAAQ,IAAI,KAAK,IAAI,CAAC,EAAE;AACxB,UAAU,IAAI,CAAC,OAAO;AACtB,YAAY,OAAO,GAAG,IAAI,CAAC;AAC3B;AACA,YAAY,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC;AAC3D,SAAS;AACT,OAAO,CAAC,CAAC;AACT,KAAK,CAAC,CAAC;AACP,EAAE,IAAI,CAAC,OAAO;AACd,IAAI,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAC;AACjD,EAAE,OAAO,wBAAwB,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;AACpD,CAAC;AACD,SAAS,qBAAqB,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE;AAChD,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC;AACb,EAAE,IAAI,GAAG,GAAG;AACZ,IAAI,EAAE;AACN,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,cAAc,CAAC,CAAC,CAAC,EAAE,CAAC;AAC1C,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,cAAc,CAAC,CAAC,CAAC,EAAE,CAAC;AAC1C,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,UAAU,CAAC,EAAE,CAAC,EAAE,CAAC;AAC3C,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE,WAAW;AAC5E,MAAM,OAAO,GAAG,CAAC;AACjB,KAAK,CAAC,CAAC,EAAE,CAAC;AACV,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,cAAc,CAAC,CAAC,CAAC,EAAE,CAAC;AAC1C,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,UAAU,CAAC,EAAE,CAAC,EAAE,CAAC;AAC3C,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE,WAAW;AAC5E,MAAM,OAAO,GAAG,CAAC;AACjB,KAAK,CAAC,CAAC,EAAE,CAAC;AACV,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,cAAc,CAAC,CAAC,CAAC,EAAE,CAAC;AAC1C,GAAG,CAAC;AACJ,EAAE,IAAI,EAAE,CAAC,EAAE,GAAG,GAAG,CAAC,CAAC,CAAC,KAAK,IAAI,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,GAAG,GAAG,CAAC,CAAC,CAAC,KAAK,IAAI,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;AAC5F,IAAI,MAAM,2CAA2C,CAAC;AACtD,EAAE,IAAI,GAAG,GAAG,CAAC,CAAC;AACd,EAAE,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE;AAC/C,IAAI,IAAI,KAAK,GAAG,IAAI,UAAU,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC;AAChD,IAAI,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;AAC9B,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,KAAK,CAAC;AAC3B,GAAG;AACH,EAAE,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE;AAC/C,IAAI,IAAI,KAAK,GAAG,IAAI,UAAU,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC;AAChD,IAAI,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;AAC9B,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,KAAK,CAAC;AAC3B,GAAG;AACH,EAAE,IAAI,EAAE,GAAG,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,WAAW,GAAG,CAAC,EAAE,YAAY,GAAG,EAAE,CAAC;AAC9E,EAAE,IAAI,GAAG,GAAG,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,YAAY,GAAG,CAAC,EAAE,aAAa,GAAG,EAAE,CAAC;AACjF,EAAE,IAAI,KAAK,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC;AAC3B,EAAE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE;AACxC,IAAI,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE;AACzB,MAAM,EAAE,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;AACvC,MAAM,GAAG,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,EAAE,KAAK,CAAC,CAAC;AAClC,MAAM,SAAS;AACf,KAAK;AACL,IAAI,EAAE,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,EAAE,WAAW,GAAG,KAAK,EAAE,IAAI,CAAC,CAAC;AACnD,IAAI,GAAG,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,EAAE,YAAY,GAAG,KAAK,EAAE,IAAI,CAAC,CAAC;AACrD,IAAI,IAAI,OAAO,EAAE,QAAQ,CAAC;AAC1B,IAAI,QAAQ,OAAO,IAAI,CAAC,CAAC,CAAC;AAC1B,MAAM,KAAK,QAAQ;AACnB,QAAQ,OAAO,GAAG,iBAAiB,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;AACjE,QAAQ,QAAQ,GAAG,iBAAiB,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;AAClE,QAAQ,MAAM;AACd,MAAM,KAAK,QAAQ;AACnB,QAAQ,OAAO,GAAG,iBAAiB,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;AACjE,QAAQ,QAAQ,GAAG,iBAAiB,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;AAClE,QAAQ,MAAM;AACd,MAAM,KAAK,SAAS;AACpB,QAAQ,OAAO,GAAG,iBAAiB,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;AACjE,QAAQ,QAAQ,GAAG,iBAAiB,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;AAClE,QAAQ,MAAM;AACd,MAAM;AACN,QAAQ,IAAI,IAAI,CAAC,CAAC,CAAC,YAAY,IAAI,EAAE;AACrC,UAAU,OAAO,GAAG,iBAAiB,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC;AACjF,UAAU,QAAQ,GAAG,iBAAiB,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC;AAClF,UAAU,MAAM;AAChB,SAAS;AACT,QAAQ,MAAM,IAAI,KAAK,CAAC,oBAAoB,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;AACxD,KAAK;AACL,IAAI,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AAC/B,IAAI,WAAW,IAAI,OAAO,CAAC,MAAM,CAAC;AAClC,IAAI;AACJ,MAAM,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AACnC,MAAM,YAAY,IAAI,QAAQ,CAAC,MAAM,CAAC;AACtC,KAAK;AACL,IAAI,EAAE,GAAG,CAAC;AACV,GAAG;AACH,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,cAAc,CAAC,GAAG,CAAC,CAAC;AACvC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC;AACrC,EAAE,OAAO,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,EAAE,CAAC,EAAE;AAC7C,IAAI,EAAE,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;AACrC,IAAI,GAAG,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;AACtC,GAAG;AACH,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,QAAQ,CAAC,YAAY,CAAC,CAAC;AAC1C,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,QAAQ,CAAC,aAAa,CAAC,CAAC;AAC3C,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,cAAc,CAAC,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC;AAC7D,EAAE,OAAO,GAAG,CAAC;AACb,CAAC;AACD,SAAS,UAAU,CAAC,IAAI,EAAE,OAAO,EAAE;AACnC,EAAE,OAAO;AACT,IAAI,IAAI,EAAE;AACV,MAAM,EAAE;AACR,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,cAAc,CAAC,IAAI,CAAC,EAAE,CAAC;AAC/C,KAAK;AACL,IAAI,IAAI,EAAE,OAAO;AACjB,GAAG,CAAC;AACJ,CAAC;AACD,SAAS,gBAAgB,CAAC,GAAG,EAAE,UAAU,EAAE;AAC3C,EAAE,IAAI,CAAC,UAAU,CAAC,IAAI;AACtB,IAAI,UAAU,CAAC,IAAI,GAAG,MAAM,CAAC;AAC7B,EAAE,KAAK,IAAI,CAAC,GAAG,UAAU,CAAC,IAAI,EAAE,CAAC,GAAG,GAAG,EAAE,EAAE,CAAC;AAC5C,IAAI,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE;AACxB,MAAM,UAAU,CAAC,UAAU,CAAC,IAAI,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC;AAC5C,MAAM,OAAO,CAAC,CAAC;AACf,KAAK;AACL,EAAE,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC;AACvC,CAAC;AACD,SAAS,kBAAkB,CAAC,GAAG,EAAE;AACjC,EAAE,IAAI,UAAU,GAAG,EAAE,CAAC;AACtB,EAAE,IAAI,OAAO,GAAG,EAAE,CAAC;AACnB,EAAE,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,SAAS,EAAE,EAAE,GAAG,EAAE;AACtC,IAAI,OAAO,CAAC,EAAE,EAAE,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC;AACpC,GAAG,CAAC,CAAC,OAAO,CAAC,SAAS,GAAG,EAAE;AAC3B,IAAI,IAAI,EAAE,GAAG,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;AACjC,IAAI,IAAI,EAAE,CAAC,IAAI,IAAI,CAAC;AACpB,MAAM,OAAO;AACb,IAAI,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC;AAC/B,MAAM,OAAO;AACb,IAAI,IAAI,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC;AAC1B,MAAM,OAAO;AACb,IAAI,cAAc,CAAC,mBAAmB,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,MAAM,EAAE;AAC7E,MAAM,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;AAC9B,MAAM,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,aAAa,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC;AAClH,KAAK,CAAC,CAAC;AACP,GAAG,CAAC,CAAC;AACL,EAAE,GAAG,CAAC,SAAS,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE;AACrC,IAAI,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC;AAC/B,MAAM,OAAO;AACb,IAAI,IAAI,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC;AAC1B,MAAM,OAAO;AACb,IAAI,cAAc,CAAC,mBAAmB,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE;AACzE,MAAM,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,SAAS,IAAI,EAAE;AACzC,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE;AACnC,UAAU,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;AAC3B,YAAY,OAAO;AACnB,UAAU,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE;AAC3C,YAAY,UAAU,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;AAC/D,WAAW,CAAC,CAAC;AACb,SAAS,CAAC,CAAC;AACX,OAAO,CAAC,CAAC;AACT,KAAK,CAAC,CAAC;AACP,GAAG,CAAC,CAAC;AACL,EAAE,OAAO,UAAU,CAAC;AACpB,CAAC;AACD,SAAS,iBAAiB,CAAC,EAAE,EAAE,IAAI,EAAE;AACrC,EAAE,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO;AAC5B,IAAI,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC,CAAC;AACxE,EAAE,IAAI,GAAG,GAAG,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC;AACvD,EAAE,IAAI,IAAI,GAAG,kBAAkB,CAAC,GAAG,CAAC,CAAC;AACrC,EAAE,IAAI,OAAO,GAAG,gBAAgB,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;AAC/C,EAAE,IAAI,OAAO,IAAI,IAAI;AACrB,IAAI,MAAM,yBAAyB,CAAC,MAAM,CAAC,CAAC,EAAE,sBAAsB,CAAC,CAAC;AACtE,EAAE,IAAI,SAAS,GAAG,KAAK,CAAC,aAAa,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,mBAAmB,CAAC,CAAC;AACzF,EAAE,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC;AAC1B,IAAI,MAAM,IAAI,KAAK,CAAC,mDAAmD,CAAC,CAAC;AACzE,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,SAAS,IAAI,EAAE,GAAG,EAAE;AAC5C,IAAI,IAAI,GAAG,IAAI,CAAC,EAAE;AAClB,MAAM,cAAc,CAAC,GAAG,EAAE,IAAI,EAAE,GAAG,GAAG,CAAC,CAAC,CAAC;AACzC,MAAM,OAAO,GAAG,gBAAgB,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;AAC/C,MAAM,SAAS,GAAG,KAAK,CAAC,aAAa,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,mBAAmB,CAAC,CAAC;AACzF,KAAK;AACL,IAAI,gBAAgB,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC;AAC5E,GAAG,CAAC,CAAC;AACL,EAAE,OAAO,GAAG,CAAC;AACb,CAAC;AACD,SAAS,gBAAgB,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE;AAC7C,EAAE,IAAI,KAAK,GAAG,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC;AAC/C,EAAE,IAAI,CAAC,KAAK;AACZ,IAAI,MAAM,iBAAiB,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,QAAQ,EAAE,sBAAsB,CAAC,CAAC;AAC9E,EAAE,IAAI,CAAC,GAAG,cAAc,CAAC,mBAAmB,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;AAC7D,EAAE,IAAI,KAAK,GAAG,CAAC,CAAC,IAAI,CAAC,SAAS,MAAM,EAAE;AACtC,IAAI,OAAO,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC;AAC3B,GAAG,CAAC,CAAC;AACL,EAAE,EAAE,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;AACf,EAAE,KAAK,CAAC,OAAO,GAAG,iBAAiB,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC;AACvD,EAAE,KAAK,CAAC,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC;AACpC,CAAC;AACD,SAAS,gBAAgB,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,EAAE;AACzC,EAAE,IAAI,KAAK,GAAG,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC;AAC/C,EAAE,IAAI,CAAC,KAAK;AACZ,IAAI,MAAM,iBAAiB,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,QAAQ,EAAE,sBAAsB,CAAC,CAAC;AAC9E,EAAE,IAAI,CAAC,GAAG,cAAc,CAAC,mBAAmB,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;AAC7D,EAAE,IAAI,KAAK,GAAG,CAAC,CAAC,IAAI,CAAC,SAAS,MAAM,EAAE;AACtC,IAAI,OAAO,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC;AAC3B,GAAG,CAAC,CAAC;AACL,EAAE,OAAO,KAAK,CAAC;AACf,CAAC;AACD,SAAS,cAAc,CAAC,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE;AAC1C,EAAE,IAAI,QAAQ,GAAG,CAAC,CAAC,EAAE,WAAW,GAAG,CAAC,CAAC,CAAC;AACtC,EAAE,IAAI,KAAK,GAAG,EAAE,CAAC;AACjB,EAAE,gBAAgB,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,EAAE,SAAS,OAAO,EAAE,IAAI,EAAE;AACzD,IAAI,IAAI,GAAG,GAAG,aAAa,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;AACtD,IAAI,QAAQ,GAAG,mBAAmB,CAAC,aAAa,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;AACvF,IAAI,WAAW,GAAG,gBAAgB,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;AACpG,IAAI,KAAK,CAAC,QAAQ,CAAC,GAAG,WAAW,CAAC;AAClC,IAAI,gBAAgB,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;AAC3C,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,mBAAmB,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;AACrE,IAAI,IAAI,KAAK,GAAG,gBAAgB,CAAC,GAAG,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC;AACtD,IAAI,KAAK,CAAC,EAAE,GAAG,WAAW,CAAC;AAC3B,IAAI,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,IAAI,IAAI,CAAC,WAAW,CAAC,CAAC,QAAQ;AACtD,MAAM,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACvB;AACA,MAAM,gBAAgB,CAAC,GAAG,EAAE,IAAI,EAAE,WAAW,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE;AAC9D,QAAQ,OAAO,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAC7B,OAAO,CAAC,CAAC;AACT,IAAI,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC;AAClD,GAAG,CAAC,CAAC;AACL,EAAE,IAAI,MAAM,GAAG,CAAC,CAAC,CAAC;AAClB,EAAE,gBAAgB,CAAC,GAAG,EAAE,IAAI,EAAE,WAAW,EAAE,SAAS,SAAS,EAAE,IAAI,EAAE;AACrE,IAAI,IAAI,EAAE,GAAG,aAAa,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;AACvD,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,EAAE,EAAE,EAAE,CAAC;AAChC,MAAM,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC;AACnB,IAAI,IAAI,SAAS,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,mBAAmB,CAAC,CAAC;AACtD,IAAI,SAAS,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE;AAClC,MAAM,OAAO,gBAAgB,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;AAC5C,KAAK,CAAC,CAAC;AACP,IAAI,MAAM,GAAG,gBAAgB,CAAC,EAAE,IAAI,EAAE,CAAC,WAAW,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,IAAI,CAAC,CAAC;AACnI,IAAI,gBAAgB,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;AACxC,IAAI,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC;AACjC,IAAI,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,mBAAmB,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;AAC7D,IAAI,IAAI,GAAG,GAAG,gBAAgB,CAAC,GAAG,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;AACxD,IAAI,GAAG,CAAC,EAAE,GAAG,MAAM,CAAC;AACpB,IAAI,IAAI,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,IAAI,IAAI,CAAC,WAAW,CAAC,CAAC,QAAQ;AACjE,MAAM,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACrB,SAAS;AACT,MAAM,IAAI,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC,QAAQ,CAAC;AAC5C,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,eAAe,EAAE,EAAE,CAAC,CAAC;AAC/C,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;AAChE,MAAM,gBAAgB,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,EAAE,SAAS,EAAE,EAAE;AAClD,QAAQ,IAAI,KAAK,GAAG,aAAa,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;AACvD,QAAQ,IAAI,SAAS,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,SAAS,CAAC,EAAE;AACvD,UAAU,IAAI,EAAE,EAAE,EAAE,CAAC;AACrB,UAAU,IAAI,EAAE,GAAG,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;AACzC,UAAU,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,KAAK,IAAI,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;AACnD,YAAY,OAAO,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC;AAChD,UAAU,IAAI,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,KAAK,IAAI,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,IAAI;AACrF,YAAY,OAAO,IAAI,CAAC;AACxB,UAAU,OAAO,KAAK,CAAC;AACvB,SAAS,CAAC,CAAC;AACX,QAAQ,IAAI,MAAM,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,CAAC;AAC7D,QAAQ,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;AACtB,UAAU,MAAM,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;AACzB,QAAQ,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;AACvB,UAAU,IAAI,EAAE,CAAC;AACjB,UAAU,IAAI,EAAE,aAAa,CAAC;AAC9B,YAAY,EAAE;AACd,YAAY,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,cAAc,CAAC,MAAM,CAAC,EAAE,CAAC;AACvD,WAAW,CAAC;AACZ,SAAS,CAAC,CAAC;AACX,QAAQ,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,IAAI,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC;AACzD,QAAQ,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC;AACnD,OAAO,CAAC,CAAC;AACT,MAAM,gBAAgB,CAAC,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE;AACzD,QAAQ,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC3B,OAAO,CAAC,CAAC;AACT,KAAK;AACL,IAAI,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,aAAa,CAAC,EAAE,CAAC,CAAC;AACnD,GAAG,CAAC,CAAC;AACL,EAAE,IAAI,MAAM,GAAG,CAAC,CAAC,CAAC;AAClB,EAAE,gBAAgB,CAAC,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,OAAO,EAAE,IAAI,EAAE;AAC9D,IAAI,IAAI,GAAG,GAAG,aAAa,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;AACtD,IAAI,IAAI,EAAE,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;AAC3C,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,EAAE,EAAE,EAAE,CAAC;AAChC,MAAM,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC;AACnB,IAAI,IAAI,GAAG,GAAG,mBAAmB,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;AACjD,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,mBAAmB,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;AACpD,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,aAAa,CAAC,EAAE,CAAC,CAAC;AACvC,IAAI,IAAI,SAAS,GAAG,mBAAmB,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;AACxD,IAAI,gBAAgB,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;AACzC,IAAI,MAAM,GAAG,gBAAgB,CAAC,EAAE,IAAI,EAAE,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,QAAQ,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,EAAE,IAAI,CAAC,CAAC;AACxH,IAAI,gBAAgB,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;AACtC,IAAI,KAAK,CAAC,SAAS,CAAC,GAAG,MAAM,CAAC;AAC9B,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,mBAAmB,CAAC,MAAM,CAAC,CAAC;AACjD,IAAI,IAAI,GAAG,GAAG,gBAAgB,CAAC,GAAG,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC;AACrD,IAAI,GAAG,CAAC,EAAE,GAAG,MAAM,CAAC;AACpB,IAAI,IAAI,IAAI,CAAC,MAAM,CAAC,CAAC,QAAQ,IAAI,IAAI,CAAC,MAAM,CAAC,CAAC,QAAQ;AACtD,MAAM,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACrB;AACA,MAAM,gBAAgB,CAAC,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE;AACzD,QAAQ,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC3B,OAAO,CAAC,CAAC;AACT,IAAI,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC;AAClD,GAAG,CAAC,CAAC;AACL,EAAE,IAAI,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC;AAClC,EAAE,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,eAAe,EAAE,EAAE,CAAC,CAAC;AACzC,EAAE,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;AAC1D,EAAE,gBAAgB,CAAC,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,OAAO,EAAE,IAAI,EAAE;AAC9D,IAAI,IAAI,EAAE,EAAE,EAAE,CAAC;AACf,IAAI,IAAI,GAAG,GAAG,aAAa,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;AACtD,IAAI,IAAI,IAAI,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;AAC7H,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAC;AACrC,IAAI,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE;AACzE,MAAM,OAAO,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC;AAC3B,KAAK,CAAC,CAAC;AACP,IAAI,IAAI,GAAG,CAAC,EAAE,CAAC,EAAE;AACjB,MAAM,IAAI,KAAK,GAAG,aAAa,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;AACjD,MAAM,IAAI,GAAG,GAAG,mBAAmB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;AACtD,MAAM,gBAAgB,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;AACrC,MAAM,OAAO,GAAG,CAAC,EAAE,CAAC,CAAC;AACrB,KAAK;AACL,IAAI,IAAI,GAAG,CAAC,EAAE,CAAC,EAAE;AACjB,MAAM,IAAI,IAAI,GAAG,aAAa,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;AAChD,MAAM,CAAC,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC,KAAK,IAAI,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,SAAS,IAAI,EAAE;AAClE,QAAQ,IAAI,GAAG,GAAG,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC3C,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE;AAC/B,UAAU,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC3B,SAAS,CAAC,CAAC,OAAO,CAAC,SAAS,QAAQ,EAAE;AACtC,UAAU,IAAI,IAAI,GAAG,aAAa,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AAClD,UAAU,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;AACtB,YAAY,OAAO;AACnB,UAAU,IAAI,IAAI,GAAG,mBAAmB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;AAC1D,UAAU,gBAAgB,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;AAC1C,SAAS,CAAC,CAAC;AACX,OAAO,CAAC,CAAC;AACT,MAAM,OAAO,GAAG,CAAC,EAAE,CAAC,CAAC;AACrB,KAAK;AACL,IAAI;AACJ,MAAM,EAAE;AACR,MAAM,EAAE;AACR,MAAM,EAAE;AACR,MAAM,EAAE;AACR,MAAM,EAAE;AACR,MAAM,EAAE;AACR,MAAM,EAAE;AACR,MAAM,EAAE;AACR,MAAM,EAAE;AACR,MAAM,EAAE;AACR,MAAM,EAAE;AACR,MAAM,EAAE;AACR,MAAM,EAAE;AACR,MAAM,EAAE;AACR,MAAM,EAAE;AACR,MAAM,EAAE;AACR,MAAM,EAAE;AACR,MAAM,EAAE;AACR,MAAM,EAAE;AACR,MAAM,EAAE;AACR,MAAM,EAAE;AACR,MAAM,EAAE;AACR,MAAM,EAAE;AACR,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE;AAC1B,MAAM,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AACjB,QAAQ,OAAO;AACf,MAAM,IAAI,IAAI,GAAG,mBAAmB,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;AACrD,MAAM,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC;AACpB,MAAM,gBAAgB,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;AACtC,KAAK,CAAC,CAAC;AACP,IAAI,IAAI,KAAK,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;AAC9C,IAAI;AACJ,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE;AACnF,QAAQ,IAAI,GAAG,CAAC;AAChB,QAAQ,IAAI,EAAE,CAAC,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,KAAK,IAAI,GAAG,KAAK,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;AACzD,UAAU,OAAO;AACjB,QAAQ,IAAI,MAAM,GAAG,mBAAmB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;AAC3D,QAAQ,IAAI,MAAM,GAAG,gBAAgB,CAAC,EAAE,IAAI,EAAE,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,IAAI,CAAC,CAAC;AAC1H,QAAQ,gBAAgB,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;AAC1C,QAAQ,gBAAgB,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;AAC1C,QAAQ,KAAK,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC;AAC/B,QAAQ,IAAI,GAAG,GAAG,gBAAgB,CAAC,GAAG,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;AACtD,QAAQ,GAAG,CAAC,EAAE,GAAG,MAAM,CAAC;AACxB,QAAQ,IAAI,IAAI,CAAC,MAAM,CAAC,CAAC,QAAQ,IAAI,IAAI,CAAC,MAAM,CAAC,CAAC,QAAQ;AAC1D,UAAU,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACzB,aAAa;AACb,UAAU,IAAI,CAAC,MAAM,CAAC,CAAC,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,EAAE,EAAE,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC;AACtG,UAAU,IAAI,IAAI,CAAC,MAAM,CAAC,CAAC,QAAQ,IAAI,IAAI,CAAC,MAAM,CAAC,CAAC,QAAQ;AAC5D,YAAY,IAAI,CAAC,MAAM,CAAC,CAAC,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;AACvG,UAAU,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,iBAAiB,CAAC,cAAc,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AAClG,UAAU,IAAI,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC;AAC7C,UAAU,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,eAAe,EAAE,EAAE,CAAC,CAAC;AACvD,UAAU,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;AACxE,UAAU,gBAAgB,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,EAAE,SAAS,EAAE,EAAE;AACtD,YAAY,IAAI,KAAK,GAAG,aAAa,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;AAC3D,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,aAAa,CAAC;AACzD,cAAc,EAAE;AAChB,cAAc,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,cAAc,CAAC,MAAM,CAAC,EAAE,CAAC;AACzD,cAAc,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC;AACpE,cAAc,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC;AAChD,cAAc,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;AAC5D,cAAc,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;AAC5D,cAAc,EAAE;AAChB,cAAc,EAAE;AAChB,cAAc,EAAE;AAChB,cAAc,EAAE;AAChB,cAAc,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,cAAc,CAAC,CAAC,CAAC,EAAE,CAAC;AACpD,cAAc,EAAE;AAChB,cAAc,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,cAAc,CAAC,CAAC,CAAC,EAAE,CAAC;AACpD,aAAa,CAAC,EAAE,CAAC,CAAC;AAClB,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,EAAE,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;AAClH,YAAY,IAAI,SAAS,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,SAAS,CAAC,EAAE;AAC3D,cAAc,IAAI,GAAG,EAAE,GAAG,CAAC;AAC3B,cAAc,IAAI,EAAE,GAAG,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;AAC7C,cAAc,IAAI,CAAC,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC,KAAK,IAAI,GAAG,KAAK,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;AACzD,gBAAgB,OAAO,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC;AACnD,cAAc,IAAI,CAAC,CAAC,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC,KAAK,IAAI,GAAG,KAAK,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,KAAK,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,GAAG;AAC1F,gBAAgB,OAAO,IAAI,CAAC;AAC5B,cAAc,OAAO,KAAK,CAAC;AAC3B,aAAa,CAAC,CAAC;AACf,YAAY,IAAI,MAAM,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,CAAC;AACjE,YAAY,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;AAC1B,cAAc,MAAM,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;AAC7B,YAAY,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;AAC3B,cAAc,IAAI,EAAE,CAAC;AACrB,cAAc,IAAI,EAAE,aAAa,CAAC;AAClC,gBAAgB,EAAE;AAClB,gBAAgB,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,cAAc,CAAC,MAAM,CAAC,EAAE,CAAC;AAC3D,eAAe,CAAC;AAChB,aAAa,CAAC,CAAC;AACf,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,IAAI,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC;AAC7D,YAAY,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC;AACvD,WAAW,CAAC,CAAC;AACb,SAAS;AACT,QAAQ,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,mBAAmB,CAAC,MAAM,CAAC,CAAC;AACvD,OAAO,CAAC,CAAC;AACT,MAAM,IAAI,WAAW,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;AACxD,MAAM;AACN,QAAQ,CAAC,EAAE,GAAG,WAAW,CAAC,CAAC,CAAC,KAAK,IAAI,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,SAAS,MAAM,EAAE;AAC7E,UAAU,IAAI,MAAM,GAAG,mBAAmB,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;AACxD,UAAU,IAAI,MAAM,GAAG,gBAAgB,CAAC,EAAE,IAAI,EAAE,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,IAAI,CAAC,CAAC;AAC5H,UAAU,gBAAgB,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;AAC5C,UAAU,gBAAgB,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;AAC5C,UAAU,KAAK,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC;AACjC,UAAU,IAAI,GAAG,GAAG,gBAAgB,CAAC,GAAG,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;AACxD,UAAU,GAAG,CAAC,EAAE,GAAG,MAAM,CAAC;AAC1B,UAAU,IAAI,IAAI,CAAC,MAAM,CAAC,CAAC,QAAQ,IAAI,IAAI,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE;AAC9D,YAAY,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC3B,WAAW,MAAM;AACjB,YAAY,IAAI,CAAC,MAAM,CAAC,CAAC,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,EAAE,EAAE,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC;AACxG,YAAY,IAAI,IAAI,CAAC,MAAM,CAAC,CAAC,QAAQ,IAAI,IAAI,CAAC,MAAM,CAAC,CAAC,QAAQ;AAC9D,cAAc,IAAI,CAAC,MAAM,CAAC,CAAC,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;AACzG,YAAY,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,iBAAiB,CAAC,cAAc,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AACpG,YAAY,IAAI,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC;AAC/C,YAAY,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,eAAe,EAAE,EAAE,CAAC,CAAC;AACzD,YAAY,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;AAC1E,YAAY,gBAAgB,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,EAAE,SAAS,EAAE,EAAE;AACxD,cAAc,IAAI,KAAK,GAAG,aAAa,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;AAC7D,cAAc,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,aAAa,CAAC;AAC3D,gBAAgB,EAAE;AAClB,gBAAgB,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,cAAc,CAAC,MAAM,CAAC,EAAE,CAAC;AAC3D,gBAAgB,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC;AACtE,gBAAgB,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC;AAClD,gBAAgB,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;AAC9D,gBAAgB,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;AAC9D,gBAAgB,EAAE;AAClB,gBAAgB,EAAE;AAClB,gBAAgB,EAAE;AAClB,gBAAgB,EAAE;AAClB,gBAAgB,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,cAAc,CAAC,CAAC,CAAC,EAAE,CAAC;AACtD,gBAAgB,EAAE;AAClB,gBAAgB,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,cAAc,CAAC,CAAC,CAAC,EAAE,CAAC;AACtD,eAAe,CAAC,EAAE,CAAC,CAAC;AACpB,cAAc,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,EAAE,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;AACpH,cAAc,IAAI,SAAS,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,SAAS,CAAC,EAAE;AAC7D,gBAAgB,IAAI,GAAG,EAAE,GAAG,CAAC;AAC7B,gBAAgB,IAAI,EAAE,GAAG,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;AAC/C,gBAAgB,IAAI,CAAC,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC,KAAK,IAAI,GAAG,KAAK,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;AAC3D,kBAAkB,OAAO,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC;AACrD,gBAAgB,IAAI,CAAC,CAAC,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC,KAAK,IAAI,GAAG,KAAK,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,KAAK,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,GAAG;AAC5F,kBAAkB,OAAO,IAAI,CAAC;AAC9B,gBAAgB,OAAO,KAAK,CAAC;AAC7B,eAAe,CAAC,CAAC;AACjB,cAAc,IAAI,MAAM,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,CAAC;AACnE,cAAc,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;AAC5B,gBAAgB,MAAM,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;AAC/B,cAAc,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;AAC7B,gBAAgB,IAAI,EAAE,CAAC;AACvB,gBAAgB,IAAI,EAAE,aAAa,CAAC;AACpC,kBAAkB,EAAE;AACpB,kBAAkB,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,cAAc,CAAC,MAAM,CAAC,EAAE,CAAC;AAC7D,iBAAiB,CAAC;AAClB,eAAe,CAAC,CAAC;AACjB,cAAc,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,IAAI,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC;AAC/D,cAAc,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC;AACzD,aAAa,CAAC,CAAC;AACf,WAAW;AACX,UAAU,MAAM,CAAC,IAAI,GAAG,mBAAmB,CAAC,MAAM,CAAC,CAAC;AACpD,SAAS,CAAC,CAAC;AACX,OAAO;AACP,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,aAAa,CAAC,WAAW,CAAC,CAAC;AACpD,MAAM,IAAI,KAAK,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;AAClD,MAAM;AACN,QAAQ,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE;AACrC,UAAU,IAAI,GAAG,GAAG,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;AAC1C,UAAU,IAAI,UAAU,GAAG,mBAAmB,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;AAC/D,UAAU,IAAI,UAAU,GAAG,KAAK,CAAC,UAAU,CAAC,CAAC;AAC7C,UAAU,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE;AAClC,YAAY,UAAU,GAAG,gBAAgB,CAAC,EAAE,IAAI,EAAE,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC,IAAI,EAAE,EAAE,IAAI,CAAC,CAAC;AAC/G,YAAY,IAAI,CAAC,UAAU,CAAC,CAAC,QAAQ,GAAG,+BAA+B,CAAC,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;AACnG,YAAY,KAAK,CAAC,UAAU,CAAC,GAAG,UAAU,CAAC;AAC3C,YAAY,IAAI,OAAO,GAAG,gBAAgB,CAAC,GAAG,EAAE,IAAI,EAAE,UAAU,CAAC,CAAC;AAClE,YAAY,OAAO,CAAC,EAAE,GAAG,UAAU,CAAC;AACpC,YAAY,gBAAgB,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;AAClD,YAAY,gBAAgB,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;AAClD,YAAY,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE,qBAAqB,CAAC,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC,EAAE,iBAAiB,CAAC,cAAc,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;AACnI,YAAY,gBAAgB,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,EAAE,SAAS,EAAE,EAAE;AACxD,cAAc,IAAI,KAAK,GAAG,aAAa,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;AAC7D,cAAc,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,aAAa,CAAC;AAC3D,gBAAgB,EAAE;AAClB,gBAAgB,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,cAAc,CAAC,UAAU,CAAC,EAAE,CAAC;AAC/D,gBAAgB,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,aAAa,CAAC,EAAE,CAAC;AACzD,gBAAgB,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,cAAc,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC;AAC7E,gBAAgB,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;AAC9D,gBAAgB,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;AAC9D,gBAAgB,EAAE;AAClB,gBAAgB,EAAE;AAClB,gBAAgB,EAAE;AAClB,gBAAgB,EAAE;AAClB,gBAAgB,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,cAAc,CAAC,CAAC,CAAC,EAAE,CAAC;AACtD,gBAAgB,EAAE;AAClB,gBAAgB,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,cAAc,CAAC,CAAC,CAAC,EAAE,CAAC;AACtD,eAAe,CAAC,EAAE,CAAC,CAAC;AACpB,cAAc,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,GAAG,CAAC,EAAE,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;AACxH,cAAc,IAAI,SAAS,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,SAAS,CAAC,EAAE;AAC7D,gBAAgB,IAAI,GAAG,EAAE,GAAG,CAAC;AAC7B,gBAAgB,IAAI,EAAE,GAAG,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;AAC/C,gBAAgB,IAAI,CAAC,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC,KAAK,IAAI,GAAG,KAAK,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;AAC3D,kBAAkB,OAAO,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC;AACrD,gBAAgB,IAAI,CAAC,CAAC,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC,KAAK,IAAI,GAAG,KAAK,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,KAAK,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,GAAG;AAC5F,kBAAkB,OAAO,IAAI,CAAC;AAC9B,gBAAgB,OAAO,KAAK,CAAC;AAC7B,eAAe,CAAC,CAAC;AACjB,cAAc,IAAI,MAAM,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,CAAC;AACnE,cAAc,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;AAC5B,gBAAgB,MAAM,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;AAC/B,cAAc,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;AAC7B,gBAAgB,IAAI,EAAE,CAAC;AACvB,gBAAgB,IAAI,EAAE,aAAa,CAAC;AACpC,kBAAkB,EAAE;AACpB,kBAAkB,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,cAAc,CAAC,UAAU,CAAC,EAAE,CAAC;AACjE,iBAAiB,CAAC;AAClB,eAAe,CAAC,CAAC;AACjB,cAAc,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,IAAI,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC;AAC/D,cAAc,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC;AACzD,aAAa,CAAC,CAAC;AACf,WAAW;AACX,UAAU,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,mBAAmB,CAAC,UAAU,CAAC,CAAC;AAC3D,UAAU,CAAC,CAAC,IAAI,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC;AACtC,SAAS,CAAC,CAAC;AACX,OAAO;AACP,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC;AAC9C,KAAK;AACL,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC;AAC1C,IAAI,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC;AAClD,GAAG,CAAC,CAAC;AACL,CAAC;AACD,SAAS,gBAAgB,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE;AACpE,EAAE,IAAI,SAAS,GAAG,EAAE,CAAC;AACrB,EAAE,gBAAgB,CAAC,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,OAAO,EAAE;AACzD,IAAI,IAAI,QAAQ,GAAG,aAAa,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;AAC3D,IAAI;AACJ,MAAM,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;AACvD,MAAM,SAAS,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,mBAAmB,CAAC,CAAC;AAC1D,KAAK;AACL,IAAI,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,aAAa,CAAC,QAAQ,CAAC,CAAC;AACvD,GAAG,CAAC,CAAC;AACL,EAAE,IAAI,GAAG,GAAG,gBAAgB,CAAC,GAAG,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;AACtD,EAAE,IAAI,MAAM,GAAG,mBAAmB,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;AACnF,EAAE,gBAAgB,CAAC,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,OAAO,EAAE,CAAC,EAAE;AAC3D,IAAI,OAAO,iBAAiB,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,MAAM,CAAC,CAAC;AAChE,GAAG,CAAC,CAAC;AACL,CAAC;AACD,IAAI,aAAa,GAAG,IAAI,CAAC;AACzB,SAAS,iBAAiB,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE;AACpE,EAAE,IAAI,KAAK,GAAG,YAAY,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;AACvC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AAC5B,EAAE,IAAI,KAAK,GAAG,KAAK,CAAC;AACpB,EAAE,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,EAAE;AACvB,IAAI,KAAK,GAAG,IAAI,CAAC;AACjB,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC;AACpB,GAAG;AACH,EAAE,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,MAAM,EAAE;AAC1B,IAAI,KAAK,GAAG,IAAI,CAAC;AACjB,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC;AACvB,GAAG;AACH,EAAE,IAAI,KAAK;AACX,IAAI,OAAO,CAAC,KAAK,CAAC,gBAAgB,CAAC,MAAM,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAChE,EAAE,IAAI,IAAI,GAAG,aAAa,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC;AAC5D,EAAE,IAAI,GAAG,GAAG,CAAC,WAAW,CAAC,CAAC;AAC1B,EAAE,IAAI,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC;AAClC,EAAE,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,eAAe,EAAE,EAAE,CAAC,CAAC;AACzC,EAAE,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;AAC1D,EAAE,IAAI,EAAE,GAAG,aAAa,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;AACnD,EAAE;AACF,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;AAClD,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;AAClD,IAAI,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC;AAClB,IAAI,IAAI,KAAK,GAAG,aAAa,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;AAC7C,IAAI;AACJ,MAAM,IAAI,cAAc,GAAG,mBAAmB,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;AAC3F,MAAM,gBAAgB,CAAC,GAAG,EAAE,IAAI,EAAE,cAAc,EAAE,SAAS,OAAO,EAAE,EAAE,EAAE;AACxE,QAAQ,IAAI,EAAE,CAAC;AACf,QAAQ,IAAI,WAAW,GAAG,aAAa,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;AAClE,QAAQ,IAAI,CAAC,EAAE,GAAG,WAAW,IAAI,IAAI,GAAG,KAAK,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC,KAAK,IAAI,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;AACzF,UAAU,KAAK,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,IAAI,CAAC,MAAM,EAAE,EAAE,EAAE,EAAE;AACnD,YAAY,IAAI,OAAO,GAAG,aAAa,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;AAChE,YAAY,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,cAAc,CAAC,EAAE,CAAC,CAAC;AACpD,YAAY,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,cAAc,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC;AACjE,YAAY,WAAW,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE,IAAI,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,aAAa,CAAC,OAAO,CAAC,EAAE,CAAC;AAChG,WAAW;AACX,QAAQ,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,aAAa,CAAC,WAAW,CAAC,CAAC;AAC9D,OAAO,CAAC,CAAC;AACT,MAAM,IAAI,cAAc,GAAG,mBAAmB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;AACjE,MAAM,gBAAgB,CAAC,GAAG,EAAE,IAAI,EAAE,cAAc,EAAE,SAAS,OAAO,EAAE,EAAE,EAAE;AACxE,QAAQ,IAAI,WAAW,GAAG,aAAa,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;AAClE,QAAQ,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE;AAC7C,UAAU,IAAI,OAAO,GAAG,aAAa,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;AAC9D,UAAU,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC;AACjD,UAAU,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;AAC7D,UAAU,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,aAAa,CAAC,OAAO,CAAC,EAAE,CAAC;AAC7F,SAAS;AACT,QAAQ,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,aAAa,CAAC,WAAW,CAAC,CAAC;AAC9D,OAAO,CAAC,CAAC;AACT,MAAM,IAAI,MAAM,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;AACnD,MAAM,MAAM,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;AACrB,MAAM,IAAI,SAAS,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;AACtD,MAAM;AACN,QAAQ,IAAI,OAAO,GAAG,GAAG,CAAC;AAC1B,QAAQ,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,cAAc,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;AACpE,QAAQ,IAAI,OAAO,GAAG,mBAAmB,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;AAC1F,QAAQ,IAAI,UAAU,GAAG,WAAW;AACpC,UAAU,IAAI,QAAQ,GAAG,gBAAgB,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;AACxD,UAAU,IAAI,KAAK,GAAG,aAAa,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;AAC/D,UAAU,IAAI,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE;AACjD,YAAY,OAAO,aAAa,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,OAAO,CAAC;AAC9E,WAAW,CAAC,CAAC;AACb,UAAU,OAAO,CAAC,IAAI,IAAI,IAAI,GAAG,KAAK,CAAC,GAAG,IAAI,CAAC,MAAM,IAAI,aAAa,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACpH,SAAS,EAAE,CAAC;AACZ,QAAQ;AACR,UAAU,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,CAAC;AACzD,UAAU,gBAAgB,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,EAAE,SAAS,EAAE,EAAE;AACtD,YAAY,IAAI,KAAK,GAAG,aAAa,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;AAC3D,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE;AACnD,cAAc,OAAO,aAAa,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,OAAO,CAAC;AAChF,aAAa,CAAC,CAAC;AACf,YAAY,IAAI,SAAS,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,SAAS,CAAC,EAAE;AAC3D,cAAc,IAAI,EAAE,EAAE,EAAE,CAAC;AACzB,cAAc,IAAI,EAAE,GAAG,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;AAC7C,cAAc,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,KAAK,IAAI,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;AACvD,gBAAgB,OAAO,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC;AACnD,cAAc,IAAI,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,KAAK,IAAI,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,GAAG;AACxF,gBAAgB,OAAO,IAAI,CAAC;AAC5B,cAAc,OAAO,KAAK,CAAC;AAC3B,aAAa,CAAC,CAAC;AACf,YAAY,IAAI,MAAM,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,CAAC;AACjE,YAAY,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;AAC1B,cAAc,MAAM,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;AAC7B,YAAY,MAAM,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE;AACrD,cAAc,OAAO,aAAa,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,OAAO,CAAC;AAChF,aAAa,CAAC,CAAC;AACf,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,IAAI,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC;AAC7D,YAAY,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC;AACvD,WAAW,CAAC,CAAC;AACb,UAAU,gBAAgB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;AAC7C,SAAS;AACT,QAAQ,SAAS,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;AAC1B,QAAQ,IAAI,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,OAAO,CAAC,CAAC;AAC1D,QAAQ,KAAK,IAAI,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,MAAM,EAAE,EAAE,IAAI,EAAE;AAClD,UAAU,IAAI,SAAS,GAAG,gBAAgB,CAAC;AAC3C,YAAY,IAAI,EAAE,EAAE;AACpB,YAAY,QAAQ,EAAE,EAAE;AACxB,YAAY,IAAI,EAAE,IAAI;AACtB,WAAW,EAAE,IAAI,CAAC,CAAC;AACnB,UAAU,IAAI,CAAC,SAAS,CAAC,CAAC,QAAQ,GAAG,+BAA+B,CAAC,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;AAC/F,UAAU,IAAI,QAAQ,GAAG;AACzB,YAAY,EAAE;AACd,YAAY,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,cAAc,CAAC,CAAC,CAAC,EAAE,CAAC;AAClD,YAAY,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,GAAG,CAAC,IAAI,OAAO,CAAC,CAAC,EAAE,CAAC;AAC9F,YAAY,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,cAAc,CAAC,CAAC,CAAC,EAAE,CAAC;AAClD,YAAY,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,GAAG,CAAC,IAAI,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,GAAG,OAAO,CAAC,EAAE,CAAC;AAC/G,YAAY,EAAE;AACd,YAAY,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,cAAc,CAAC,CAAC,CAAC,EAAE,CAAC;AAClD,YAAY,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,cAAc,CAAC,CAAC,CAAC,EAAE,CAAC;AAClD,YAAY,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,cAAc,CAAiB,CAAC,CAAI,CAAC,EAAE,CAAC;AACtE,WAAW,CAAC;AACZ,UAAU,KAAK,IAAI,CAAC,GAAG,IAAI,GAAG,OAAO,EAAE,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,GAAG,CAAC,IAAI,OAAO,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE;AAChG,YAAY,IAAI,OAAO,GAAG,qBAAqB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,aAAa,CAAC,CAAC;AAC7E,YAAY,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,cAAc,CAAC,CAAC,GAAG,IAAI,GAAG,OAAO,CAAC,CAAC;AACpE,YAAY,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,aAAa,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC;AACxE,WAAW;AACX,UAAU,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,aAAa,CAAC;AAC3D,YAAY,EAAE;AACd,YAAY,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,cAAc,CAAC,IAAI,CAAC,EAAE,CAAC;AACrD,YAAY,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,mBAAmB,CAAC,SAAS,CAAC,EAAE,CAAC;AAC/D,WAAW,CAAC,EAAE,CAAC,CAAC;AAChB,UAAU,IAAI,OAAO,GAAG;AACxB,YAAY,EAAE,EAAE,SAAS;AACzB,YAAY,QAAQ,EAAE,CAAC,UAAU,CAAC,IAAI,EAAE,aAAa,CAAC,QAAQ,CAAC,CAAC,CAAC;AACjE,WAAW,CAAC;AACZ,UAAU,IAAI,WAAW,GAAG,iBAAiB,CAAC,cAAc,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;AACzE,UAAU,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE,qBAAqB,CAAC,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,EAAE,WAAW,CAAC,CAAC;AAC/F,UAAU,gBAAgB,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,EAAE,SAAS,EAAE,EAAE;AACtD,YAAY,IAAI,KAAK,GAAG,aAAa,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;AAC3D,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,aAAa,CAAC;AACzD,cAAc,EAAE;AAChB,cAAc,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,cAAc,CAAC,SAAS,CAAC,EAAE,CAAC;AAC5D,cAAc,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,aAAa,CAAC,EAAE,CAAC;AACvD,cAAc,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,cAAc,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC;AAC1E,cAAc,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;AAC5D,cAAc,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;AAC5D,cAAc,EAAE;AAChB,cAAc,EAAE;AAChB,cAAc,EAAE;AAChB,cAAc,EAAE;AAChB,cAAc,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,cAAc,CAAC,CAAC,CAAC,EAAE,CAAC;AACpD,cAAc,EAAE;AAChB,cAAc,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,cAAc,CAAC,UAAU,CAAC,EAAE,CAAC;AAC7D,aAAa,CAAC,EAAE,CAAC,CAAC;AAClB,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,GAAG,CAAC,EAAE,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;AACrH,YAAY,IAAI,SAAS,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,SAAS,CAAC,EAAE;AAC3D,cAAc,IAAI,EAAE,EAAE,EAAE,CAAC;AACzB,cAAc,IAAI,EAAE,GAAG,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;AAC7C,cAAc,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,KAAK,IAAI,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;AACvD,gBAAgB,OAAO,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC;AACnD,cAAc,IAAI,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,KAAK,IAAI,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,GAAG;AACxF,gBAAgB,OAAO,IAAI,CAAC;AAC5B,cAAc,OAAO,KAAK,CAAC;AAC3B,aAAa,CAAC,CAAC;AACf,YAAY,IAAI,MAAM,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,CAAC;AACjE,YAAY,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;AAC1B,cAAc,MAAM,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;AAC7B,YAAY,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;AAC3B,cAAc,IAAI,EAAE,CAAC;AACrB,cAAc,IAAI,EAAE,aAAa,CAAC;AAClC,gBAAgB,EAAE;AAClB,gBAAgB,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,cAAc,CAAC,SAAS,CAAC,EAAE,CAAC;AAC9D,eAAe,CAAC;AAChB,aAAa,CAAC,CAAC;AACf,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,IAAI,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC;AAC7D,YAAY,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC;AACvD,WAAW,CAAC,CAAC;AACb,UAAU,gBAAgB,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;AAC/C,UAAU,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,aAAa,CAAC;AACxD,YAAY,EAAE;AACd,YAAY,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,cAAc,CAAC,IAAI,GAAG,OAAO,CAAC,EAAE,CAAC;AAC/D,YAAY,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,cAAc,CAAC,IAAI,CAAC,EAAE,CAAC;AACrD,WAAW,CAAC,EAAE,CAAC,CAAC;AAChB,SAAS;AACT,OAAO;AACP,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,aAAa,CAAC,SAAS,CAAC,CAAC;AAClD,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC;AAC/C,MAAM,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,UAAU,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;AAC1D,MAAM,IAAI,EAAE,CAAC,SAAS,CAAC,EAAE;AACzB,QAAQ,IAAI,OAAO,GAAG,gBAAgB,CAAC;AACvC,UAAU,IAAI,EAAE,IAAI;AACpB,UAAU,IAAI,EAAE,CAAC,MAAM,CAAC;AACxB,UAAU,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,QAAQ;AACzC,SAAS,EAAE,IAAI,CAAC,CAAC;AACjB,QAAQ,OAAO,CAAC,IAAI,CAAC;AACrB,UAAU,EAAE,EAAE,OAAO;AACrB,UAAU,QAAQ,EAAE,CAAC,UAAU,CAAC,IAAI,EAAE,aAAa,CAAC;AACpD,YAAY,EAAE;AACd,YAAY,EAAE,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE;AAC1C,cAAc,OAAO,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,aAAa,CAAC;AACpD,gBAAgB,EAAE;AAClB,gBAAgB,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,aAAa,CAAC;AAChD,kBAAkB,EAAE;AACpB,kBAAkB,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,UAAU,CAAC,IAAI,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC;AAC7F,iBAAiB,CAAC,EAAE,CAAC;AACrB,gBAAgB,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,aAAa,CAAC;AAChD,kBAAkB,EAAE;AACpB,kBAAkB,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,UAAU,CAAC,IAAI,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC;AACrH,iBAAiB,CAAC,EAAE,CAAC;AACrB,eAAe,CAAC,EAAE,CAAC;AACnB,aAAa,CAAC;AACd,WAAW,CAAC,CAAC,CAAC;AACd,SAAS,CAAC,CAAC;AACX,QAAQ,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,mBAAmB,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;AACtE,QAAQ,gBAAgB,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,EAAE,SAAS,EAAE,EAAE;AACpD,UAAU,IAAI,KAAK,GAAG,aAAa,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;AACzD,UAAU,IAAI,SAAS,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,SAAS,CAAC,EAAE;AACzD,YAAY,IAAI,EAAE,EAAE,EAAE,CAAC;AACvB,YAAY,IAAI,EAAE,GAAG,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;AAC3C,YAAY,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,KAAK,IAAI,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;AACrD,cAAc,OAAO,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC;AACjD,YAAY,IAAI,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,KAAK,IAAI,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,GAAG;AACtF,cAAc,OAAO,IAAI,CAAC;AAC1B,YAAY,OAAO,KAAK,CAAC;AACzB,WAAW,CAAC,CAAC;AACb,UAAU,IAAI,MAAM,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,CAAC;AAC/D,UAAU,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;AACxB,YAAY,MAAM,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;AAC3B,UAAU,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;AACzB,YAAY,IAAI,EAAE,CAAC;AACnB,YAAY,IAAI,EAAE,aAAa,CAAC;AAChC,cAAc,EAAE;AAChB,cAAc,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,cAAc,CAAC,OAAO,CAAC,EAAE,CAAC;AAC1D,aAAa,CAAC;AACd,WAAW,CAAC,CAAC;AACb,UAAU,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,IAAI,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC;AAC3D,UAAU,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC;AACrD,SAAS,CAAC,CAAC;AACX,QAAQ,gBAAgB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;AAC3C,OAAO;AACP,QAAQ,OAAO,KAAK,CAAC,EAAE,CAAC,CAAC;AACzB,MAAM,IAAI,MAAM,GAAG,mBAAmB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;AACzD,MAAM,gBAAgB,CAAC,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,OAAO,EAAE;AAC5D,QAAQ,IAAI,OAAO,GAAG,aAAa,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;AAC9D,QAAQ;AACR,UAAU,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;AAC1B,UAAU,GAAG,CAAC,OAAO,CAAC,SAAS,GAAG,EAAE,CAAC,EAAE;AACvC,YAAY,IAAI,CAAC,IAAI,CAAC;AACtB,cAAc,OAAO;AACrB,YAAY,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,aAAa,CAAC;AAC3D,cAAc,EAAE;AAChB,cAAc,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,cAAc,CAAC,CAAC,CAAC,EAAE,CAAC;AACpD,cAAc,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,cAAc,CAAC,CAAC,CAAC,EAAE,CAAC;AACpD,cAAc,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC;AAC7C,aAAa,CAAC,EAAE,CAAC,CAAC;AAClB,WAAW,CAAC,CAAC;AACb,SAAS;AACT,QAAQ,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,aAAa,CAAC,OAAO,CAAC,CAAC;AAC1D,OAAO,CAAC,CAAC;AACT,KAAK;AACL,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC;AACzC,GAAG;AACH,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,aAAa,CAAC,EAAE,CAAC,CAAC;AAC/C,CAAC;AACD,SAAS,aAAa,CAAC,QAAQ,4CAA4C;AAC3E,CAAC,OAAO,SAAS,QAAQ,CAAC,IAAI,EAAE;AAChC,EAAE,IAAI,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,QAAQ,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE;AAC5C,GAAG,IAAI,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;AACvB,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,SAAS,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AAClD,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACpD,GAAG;AACH,EAAE,CAAC;AACH,CAAC;AACD;AACA,SAAS,aAAa,CAAC,IAAI,EAAE;AAC7B,aAAa,CAAC;AACd,CAAC,CAAC,QAAQ,EAAE,KAAK,CAAC;AAClB,CAAC,CAAC,UAAU,EAAE,IAAI,CAAC;AACnB,CAAC,CAAC,aAAa,EAAE,IAAI,CAAC;AACtB,CAAC,CAAC,YAAY,EAAE,KAAK,CAAC;AACtB,CAAC,CAAC,UAAU,EAAE,IAAI,CAAC;AACnB,CAAC,CAAC,WAAW,EAAE,KAAK,CAAC;AACrB;AACA,CAAC,CAAC,YAAY,EAAE,KAAK,CAAC;AACtB,CAAC,CAAC,WAAW,EAAE,CAAC,EAAE,GAAG,CAAC;AACtB;AACA,CAAC,CAAC,UAAU,EAAE,KAAK,CAAC;AACpB,CAAC,CAAC,YAAY,EAAE,KAAK,CAAC;AACtB,CAAC,CAAC,WAAW,EAAE,KAAK,CAAC;AACrB,CAAC,CAAC,WAAW,EAAE,KAAK,CAAC;AACrB,CAAC,CAAC,SAAS,EAAE,KAAK,CAAC;AACnB;AACA,CAAC,CAAC,UAAU,CAAC,EAAE,CAAC;AAChB,CAAC,CAAC,KAAK,EAAE,KAAK,CAAC;AACf,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;AACT,CAAC;AACD;AACA,SAAS,cAAc,CAAC,IAAI,EAAE;AAC9B,aAAa,CAAC;AACd,CAAC,CAAC,WAAW,EAAE,KAAK,CAAC;AACrB;AACA,CAAC,CAAC,SAAS,EAAE,KAAK,CAAC;AACnB;AACA,CAAC,CAAC,UAAU,EAAE,MAAM,CAAC;AACrB;AACA,CAAC,CAAC,aAAa,EAAE,KAAK,CAAC;AACvB;AACA,CAAC,CAAC,KAAK,EAAE,KAAK,CAAC;AACf,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;AACT,CAAC;AACD,SAAS,cAAc,CAAC,CAAC,wBAAwB;AACjD,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,OAAO,CAAC;AAC5C,CAAC,GAAc,CAAC,IAAI,IAAI,CAAC,EAAE,EAAE,OAAO,OAAO,CAAC;AAC5C,CAAC,GAAc,CAAC,IAAI,IAAI,CAAC,EAAE,EAAE,OAAO,QAAQ,CAAC;AAC7C,CAAC,GAAc,CAAC,IAAI,IAAI,CAAC,EAAE,EAAE,OAAO,OAAO,CAAC;AAC5C,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,IAAI,CAAC,GAAG,OAAO,CAAC;AACtC,CAAC;AACD,SAAS,iBAAiB,CAAC,MAAM,EAAE,MAAM,EAAE;AAC3C,CAAC,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AACtB,CAAC,IAAI;AACL,EAAE,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,SAAS,IAAI,CAAC,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,cAAc,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;AAChK,EAAE,CAAC,MAAM,CAAC,EAAE,EAAE,OAAO,IAAI,CAAC,EAAE;AAC5B,CAAC,OAAO,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,GAAG,IAAI,GAAG,MAAM,CAAC;AACvD,CAAC;AACD;AACA,SAAS,gBAAgB,CAAC,GAAG,EAAE,IAAI,aAAa,QAAQ,aAAa,KAAK,EAAE,GAAG,aAAa,SAAS,EAAE,MAAM,EAAE,KAAK,aAAa,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE;AAC3J,CAAC,IAAI;AACL,EAAE,SAAS,CAAC,KAAK,CAAC,CAAC,UAAU,CAAC,SAAS,CAAC,GAAG,EAAE,QAAQ,EAAE,IAAI,CAAC,EAAE,IAAI,CAAC,CAAC;AACpE,EAAE,IAAI,IAAI,GAAG,UAAU,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;AACnC,EAAE,IAAI,GAAG,CAAC;AACV,EAAE,OAAO,KAAK;AACd,GAAG,KAAK,OAAO,GAAG,GAAG,GAAG,QAAQ,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,MAAM;AACrG,GAAG,KAAK,OAAO,GAAG,GAAG,GAAG,QAAQ,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;AAC9F,IAAI,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,MAAM;AACtC,IAAI,IAAI,KAAK,GAAG,YAAY,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;AAC1D,IAAI,IAAI,MAAM,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC;AACtC,IAAI,IAAI,IAAI,GAAG,aAAa,CAAC,SAAS,CAAC,GAAG,EAAE,KAAK,EAAE,IAAI,CAAC,EAAE,UAAU,CAAC,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC;AAC3G,IAAI,IAAI,MAAM,GAAG,YAAY,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;AAC3C,IAAI,IAAI,MAAM,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC;AACvC,IAAI,GAAG,GAAG,WAAW,CAAC,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,CAAC,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC;AAC7H,IAAI,MAAM;AACV,GAAG,KAAK,OAAO,GAAG,GAAG,GAAG,QAAQ,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,MAAM;AACrG,GAAG,KAAK,QAAQ,EAAE,GAAG,GAAG,QAAQ,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,MAAM;AACrG,GAAG,SAAS,MAAM,IAAI,KAAK,CAAC,0BAA0B,GAAG,KAAK,CAAC,CAAC;AAChE,GAAG;AACH,EAAE,MAAM,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC;AACtB;AACA;AACA,EAAE,IAAI,QAAQ,GAAG,EAAE,EAAE,SAAS,GAAG,EAAE,CAAC;AACpC,EAAE,GAAG,SAAS,IAAI,SAAS,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE;AAC/E,GAAG,IAAI,KAAK,GAAG,EAAE,CAAC;AAClB,GAAG,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,EAAE;AAC7C,IAAI,KAAK,GAAG,YAAY,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;AAC3D,IAAI,QAAQ,GAAG,UAAU,CAAC,UAAU,CAAC,GAAG,EAAE,KAAK,EAAE,IAAI,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;AACrE,IAAI,GAAG,CAAC,QAAQ,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,OAAO;AAC7C,IAAI,qBAAqB,CAAC,GAAG,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC;AAChD,IAAI;AACJ,GAAG,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,IAAI,CAAC,KAAK,EAAE;AAC9C,IAAI,KAAK,GAAG,YAAY,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;AAC3D,IAAI,SAAS,GAAG,SAAS,CAAC,MAAM,CAAC,eAAe,CAAC,UAAU,CAAC,GAAG,EAAE,KAAK,EAAE,IAAI,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;AACtF,IAAI;AACJ,GAAG,CAAC,CAAC;AACL,EAAE,GAAG,SAAS,IAAI,SAAS,CAAC,MAAM,EAAE,qBAAqB,CAAC,GAAG,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC;AACnG,EAAE,CAAC,MAAM,CAAC,EAAE,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,EAAE;AACrC,CAAC;AACD;AACA,SAAS,iBAAiB,CAAC,CAAC,wBAAwB,EAAE,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,GAAG,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE;AACnG;AACA,SAAS,SAAS,CAAC,GAAG,UAAU,IAAI,8BAA8B;AAClE,CAAC,QAAQ,EAAE,CAAC;AACZ,CAAC,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC;AACnB,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;AACrB;AACA;AACA,CAAC,GAAG,cAAc,CAAC,GAAG,EAAE,uBAAuB,CAAC,EAAE,OAAO,SAAS,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;AAC9E;AACA,CAAC,GAAG,cAAc,CAAC,GAAG,EAAE,gBAAgB,CAAC,EAAE,OAAO,SAAS,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;AACvE;AACA,CAAC,GAAG,cAAc,CAAC,GAAG,EAAE,oBAAoB,CAAC,EAAE;AAC/C,EAAE,GAAG,OAAO,UAAU,IAAI,WAAW,EAAE,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC,CAAC;AAC3G,EAAE,GAAG,OAAO,iBAAiB,IAAI,WAAW,EAAE;AAC9C,GAAG,GAAG,GAAG,CAAC,SAAS,EAAE,OAAO,iBAAiB,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;AACzD,GAAG,IAAI,IAAI,GAAG,GAAG,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;AAClC,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,EAAE,YAAY,CAAC,IAAI,EAAE,CAAC,EAAE,SAAS,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;AACtF,GAAG,OAAO,iBAAiB,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;AACxC,GAAG;AACH,EAAE,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;AAC9C,EAAE;AACF,CAAC,GAAG,CAAC,cAAc,CAAC,GAAG,EAAE,qBAAqB,CAAC,EAAE;AACjD,EAAE,GAAG,cAAc,CAAC,GAAG,EAAE,cAAc,CAAC,EAAE,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC;AACzF,EAAE,GAAG,cAAc,CAAC,GAAG,EAAE,WAAW,CAAC,EAAE,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC;AACtF,EAAE,IAAI,SAAS,GAAG,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC;AAC7C,EAAE,GAAG,SAAS,EAAE;AAChB,GAAG,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC,CAAC;AACpB,GAAG,OAAO,IAAI,CAAC,IAAI,CAAC;AACpB,GAAG,GAAG,OAAO,SAAS,CAAC,OAAO,IAAI,QAAQ,EAAE,IAAI,CAAC,IAAI,GAAG,QAAQ,CAAC;AACjE;AACA,GAAG,GAAG,OAAO,GAAG,KAAK,WAAW,IAAI,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,OAAO,QAAQ,CAAC,IAAI,UAAU,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,IAAI,CAAC,CAAC;AACjI,GAAG,OAAO,QAAQ,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;AAC5C,GAAG;AACH,EAAE,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;AAC1C,EAAE;AACF;AACA,CAAC,IAAI,OAAO,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC;AAC/B,CAAC,IAAI,GAAG,GAAG,QAAQ,EAAE,SAAS,CAAC,GAAG,EAAE,qBAAqB,CAAC,WAAW,CAAC;AACtE,CAAC,IAAI,IAAI,GAAG,KAAK,CAAC;AAClB,CAAC,IAAI,MAAM,EAAE,OAAO,CAAC;AACrB,CAAC,GAAG,GAAG,CAAC,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE;AAChC,EAAE,OAAO,GAAG,iBAAiB,CAAC;AAC9B,EAAE,GAAG,UAAU,CAAC,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC,EAAE,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AAChE,EAAE;AACF,CAAC,GAAG,GAAG,CAAC,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE;AAChC,EAAE,OAAO,GAAG,iBAAiB,CAAC;AAC9B,EAAE,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;AAC/E,EAAE,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AAC9B,EAAE,IAAI,GAAG,IAAI,CAAC;AACd,EAAE;AACF,CAAC,GAAG,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,EAAE,IAAI,GAAG,IAAI,CAAC;AACrD;AACA,CAAC,IAAI,MAAM,IAAI,EAAE,SAAS,CAAC;AAC3B,CAAC,IAAI,MAAM,IAAI,EAAE,SAAS,CAAC;AAC3B,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;AACzC,EAAE,IAAI,GAAG,EAAE,CAAC;AACZ,EAAE,GAAG,GAAG,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,GAAG,EAAE,iBAAiB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,EAAE;AACpI;AACA,EAAE,GAAG,IAAI,CAAC,UAAU,IAAI,GAAG,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,eAAe,CAAC,SAAS,CAAC,GAAG,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC;AACrI;AACA,EAAE,GAAG,GAAG,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,CAAC,UAAU,CAAC,GAAG,EAAE,iBAAiB,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;AAC3G,EAAE;AACF;AACA,uBAAuB,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,SAAS,IAAI,EAAE;AACpD,EAAE,IAAI;AACN,GAAG,IAAI,IAAI,GAAG,UAAU,CAAC,SAAS,CAAC,GAAG,EAAE,aAAa,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;AACvF,GAAG,OAAO,WAAW,CAAC,UAAU,CAAC,GAAG,EAAE,iBAAiB,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;AAClF,GAAG,CAAC,MAAM,CAAC,EAAE,EAAE;AACf,EAAE,CAAC,CAAC;AACJ;AACA,CAAC,IAAI,EAAE,GAAG,QAAQ,CAAC,UAAU,CAAC,GAAG,EAAE,iBAAiB,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;AACjG;AACA,CAAC,IAAI,KAAK,GAAG,EAAE,EAAE,QAAQ,GAAG,EAAE,CAAC;AAC/B;AACA,CAAC,GAAG,GAAG,CAAC,SAAS,CAAC,MAAM,EAAE;AAC1B,EAAE,QAAQ,GAAG,UAAU,CAAC,GAAG,EAAE,iBAAiB,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;AACxE,EAAE,GAAG,QAAQ,EAAE,KAAK,GAAG,gBAAgB,CAAC,QAAQ,CAAC,CAAC;AAClD,EAAE,GAAG,GAAG,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE;AAChC,GAAG,QAAQ,GAAG,UAAU,CAAC,GAAG,EAAE,iBAAiB,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;AACxE,GAAG,GAAG,QAAQ,EAAE,eAAe,CAAC,QAAQ,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;AACvD,GAAG;AACH,EAAE;AACF;AACA,CAAC,IAAI,SAAS,GAAG,EAAE,CAAC;AACpB,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,SAAS,EAAE;AACxC,EAAE,IAAI,GAAG,CAAC,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE;AAClC,GAAG,QAAQ,GAAG,SAAS,CAAC,GAAG,EAAE,iBAAiB,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;AACxE,GAAG,GAAG,QAAQ,EAAE,SAAS,GAAG,gBAAgB,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;AAC7D,GAAG;AACH,EAAE;AACF;AACA,CAAC,IAAI,GAAG,IAAI,EAAE,SAAS,CAAC;AACxB,CAAC,GAAG,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,SAAS,EAAE;AACvC,EAAE,GAAG,EAAE,CAAC,MAAM,EAAE,MAAM,GAAG,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,SAAS,KAAK,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AAC5E,OAAO,GAAG,KAAK,CAAC,UAAU,IAAI,KAAK,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC;AACnF,EAAE,GAAG,IAAI,CAAC,SAAS,EAAE,EAAE,GAAG,CAAC,KAAK,GAAG,KAAK,CAAC,CAAC,GAAG,CAAC,SAAS,GAAG,SAAS,CAAC,EAAE;AACtE,EAAE,GAAG,IAAI,CAAC,UAAU,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE,GAAG,CAAC,UAAU,GAAG,MAAM,CAAC;AAC/E,EAAE,GAAG,IAAI,CAAC,UAAU,GAAG,GAAG,CAAC,UAAU,GAAG,IAAI,CAAC,SAAS,EAAE,OAAO,GAAG,CAAC;AACnE,EAAE;AACF,CAAC,MAAM,GAAG,EAAE,CAAC;AACb;AACA,CAAC,IAAI,IAAI,GAAG,EAAE,CAAC;AACf,CAAC,GAAG,IAAI,CAAC,QAAQ,IAAI,GAAG,CAAC,SAAS,EAAE,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,GAAG,EAAE,iBAAiB,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,SAAc,CAAC,CAAC;AACxH;AACA,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACT,CAAC,IAAI,SAAS,IAAI,EAAE,SAAS,CAAC;AAC9B,CAAC,IAAI,IAAI,EAAE,QAAQ,CAAC;AACpB;AACA,CAAC;AACD,EAAE,IAAI,QAAQ,GAAG,EAAE,CAAC,MAAM,CAAC;AAC3B,EAAE,KAAK,CAAC,UAAU,GAAG,QAAQ,CAAC,MAAM,CAAC;AACrC,EAAE,KAAK,CAAC,UAAU,GAAG,EAAE,CAAC;AACxB,EAAE,IAAI,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,QAAQ,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE;AAC5C,GAAG,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;AAC1C,GAAG;AACH,EAAE;AACF;AACA,CAAC,IAAI,KAAK,GAAG,IAAI,GAAG,KAAK,GAAG,KAAK,CAAC;AAClC,CAAC,IAAI,OAAO,GAAG,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;AACjD,CAAC,IAAI,UAAU,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,QAAQ,GAAG,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,EAAE,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;AACpI,CAAC,GAAG,CAAC,cAAc,CAAC,GAAG,EAAE,UAAU,CAAC,EAAE,UAAU,GAAG,oBAAoB,GAAG,KAAK,GAAG,OAAO,CAAC;AAC1F,CAAC,IAAI,MAAM,GAAG,UAAU,CAAC,SAAS,CAAC,GAAG,EAAE,UAAU,EAAE,IAAI,CAAC,EAAE,UAAU,CAAC,OAAO,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC,CAAC;AACjG;AACA,CAAC,GAAG,CAAC,GAAG,CAAC,QAAQ,IAAI,EAAE,EAAE,MAAM,IAAI,CAAC,EAAE;AACtC;AACA,EAAE,IAAI,CAAC,MAAM,GAAG,YAAY,CAAC,UAAU,CAAC,GAAG,EAAE,iBAAiB,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;AACvG,EAAE;AACF;AACA,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,IAAI,EAAE,EAAE,MAAM,IAAI,CAAC,EAAE;AACpC,EAAE,IAAI,CAAC,MAAM,GAAG,gBAAgB,CAAC,UAAU,CAAC,GAAG,EAAE,iBAAiB,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;AACzF,EAAE;AACF;AACA,CAAC,GAAG,MAAM,EAAE,MAAM,GAAG,iBAAiB,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC;AAC1D;AACA;AACA,CAAC,IAAI,KAAK,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,yBAAyB,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AAClE,CAAC,MAAM,EAAE,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,KAAK,CAAC,UAAU,EAAE,EAAE,CAAC,EAAE;AAChD,EAAE,IAAI,KAAK,GAAG,OAAO,CAAC;AACtB,EAAE,GAAG,MAAM,IAAI,MAAM,CAAC,CAAC,CAAC,EAAE;AAC1B,GAAG,IAAI,GAAG,KAAK,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;AAC1D,GAAG,GAAG,CAAC,cAAc,CAAC,GAAG,EAAE,IAAI,CAAC,EAAE,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACtD,GAAG,GAAG,CAAC,cAAc,CAAC,GAAG,EAAE,IAAI,CAAC,EAAE,IAAI,GAAG,UAAU,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC5F,GAAG,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACxB,GAAG,MAAM;AACT,GAAG,IAAI,GAAG,qBAAqB,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,GAAG,KAAK,CAAC;AACxD,GAAG,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;AAC5C,GAAG;AACH,EAAE,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,oBAAoB,EAAE,kBAAkB,CAAC,CAAC;AACpE,EAAE,GAAG,IAAI,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,EAAE,OAAO,OAAO,IAAI,CAAC,MAAM;AAC3D,GAAG,KAAK,QAAQ,EAAE,GAAG,CAAC,IAAI,IAAI,CAAC,MAAM,EAAE,SAAS,MAAM,CAAC,CAAC,MAAM;AAC9D,GAAG,KAAK,QAAQ,EAAE,GAAG,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,IAAI,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,EAAE,SAAS,MAAM,CAAC,CAAC,MAAM;AAC5G,GAAG,SAAS,GAAG,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE;AAC5D,IAAI,IAAI,OAAO,GAAG,KAAK,CAAC;AACxB,IAAI,IAAI,IAAI,GAAG,GAAG,CAAC,EAAE,GAAG,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,EAAE,GAAG,EAAE;AACvD,KAAK,GAAG,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,QAAQ,IAAI,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC;AAChF,KAAK,GAAG,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,QAAQ,IAAI,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE,IAAI,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,EAAE,OAAO,GAAG,CAAC,CAAC;AAChI,KAAK;AACL,IAAI,GAAG,CAAC,OAAO,EAAE,SAAS,MAAM,CAAC;AACjC,IAAI;AACJ,GAAG;AACH,EAAE,gBAAgB,CAAC,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;AACpH,EAAE;AACF;AACA,CAAC,GAAG,IAAI;AACR,EAAE,SAAS,EAAE,GAAG;AAChB,EAAE,QAAQ,EAAE,EAAE;AACd,EAAE,KAAK,EAAE,KAAK;AACd,EAAE,SAAS,EAAE,SAAS;AACtB,EAAE,IAAI,EAAE,IAAI;AACZ,EAAE,MAAM,EAAE,MAAM;AAChB,EAAE,UAAU,EAAE,KAAK,CAAC,UAAU;AAC9B,EAAE,OAAO,EAAE,IAAI;AACf,EAAE,MAAM,EAAE,MAAM;AAChB,EAAE,MAAM,EAAE,MAAM;AAChB,EAAE,GAAG,EAAE,GAAG,CAAC,SAAS,CAAC;AACrB,EAAE,SAAS,CAAC;AACZ,CAAC,GAAG,IAAI,IAAI,IAAI,CAAC,SAAS,EAAE;AAC5B,EAAE,GAAG,GAAG,CAAC,KAAK,EAAE;AAChB,GAAG,GAAG,CAAC,IAAI,GAAG,OAAO,CAAC;AACtB,GAAG,GAAG,CAAC,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC;AACzB,GAAG,MAAM;AACT,GAAG,GAAG,CAAC,IAAI,GAAG,EAAE,CAAC;AACjB,GAAG,GAAG,CAAC,KAAK,GAAG,EAAE,CAAC;AAClB,GAAG,GAAG,CAAC,SAAS,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,GAAG,EAAE;AAC1C,IAAI,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,iBAAiB,EAAE,EAAE,CAAC,CAAC;AACzC,IAAI,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACrB,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;AACtC,IAAI,CAAC,CAAC;AACN,GAAG;AACH,EAAE;AACF,CAAC,GAAG,IAAI,IAAI,IAAI,CAAC,OAAO,EAAE;AAC1B,EAAE,GAAG,GAAG,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,EAAE,GAAG,CAAC,MAAM,GAAG,UAAU,CAAC,GAAG,CAAC,iBAAiB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;AACzF,OAAO,GAAG,GAAG,CAAC,QAAQ,IAAI,GAAG,CAAC,QAAQ,CAAC,GAAG,KAAK,MAAM,EAAE,GAAG,CAAC,MAAM,GAAG,UAAU,CAAC,GAAG,EAAE,mBAAmB,CAAC,IAAI,CAAC,CAAC;AAC9G,EAAE;AACF;AACA,CAAC,GAAG,CAAC,QAAQ,GAAG,IAAI,GAAG,MAAM,GAAG,MAAM,CAAC;AACvC,CAAC,OAAO,GAAG,CAAC;AACZ,CAAC;AACD;AACA;AACA,SAAS,aAAa,CAAC,GAAG,EAAE,KAAK,8BAA8B;AAC/D,CAAC,IAAI,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;AACxB,CAAC,IAAI,CAAC,GAAG,UAAU,EAAE,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;AAC7C,CAAC,IAAI;AACL,CAAC,CAAC,GAAG,sBAAsB,CAAC;AAC5B,CAAC,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,IAAI,KAAK,CAAC,kCAAkC,GAAG,CAAC,CAAC,CAAC;AAC7G,mBAAmB,0BAA0B,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AAC5D;AACA;AACA,CAAC,CAAC,GAAG,2BAA2B,CAAC;AACjC,CAAC,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,IAAI,KAAK,CAAC,kCAAkC,GAAG,CAAC,CAAC,CAAC;AAC7G,CAAC,IAAI,GAAG,GAAG,kBAAkB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AAC5C,CAAC,GAAG,GAAG,CAAC,MAAM,KAAK,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,2BAA2B,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,kBAAkB;AACvK,EAAE,MAAM,IAAI,KAAK,CAAC,8BAA8B,GAAG,CAAC,CAAC,CAAC;AACtD;AACA;AACA,CAAC,CAAC,GAAG,sDAAsD,CAAC;AAC5D,CAAC,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,IAAI,KAAK,CAAC,kCAAkC,GAAG,CAAC,CAAC,CAAC;AAC7G,CAAC,IAAI,IAAI,GAAG,yBAAyB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AACpD,CAAC,GAAG,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,2BAA2B;AAC9D,EAAE,MAAM,IAAI,KAAK,CAAC,8BAA8B,GAAG,CAAC,CAAC,CAAC;AACtD;AACA;AACA,CAAC,CAAC,GAAG,+DAA+D,CAAC;AACrE,CAAC,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,IAAI,KAAK,CAAC,kCAAkC,GAAG,CAAC,CAAC,CAAC;AAC7G,eAAe,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AAC3C,EAAE,CAAC,MAAM,CAAC,EAAE,EAAE;AACd;AACA,CAAC,CAAC,GAAG,iBAAiB,CAAC;AACvB,CAAC,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,IAAI,KAAK,CAAC,kCAAkC,GAAG,CAAC,CAAC,CAAC;AAC7G,CAAC,IAAI,KAAK,GAAG,oBAAoB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AAChD;AACA;AACA,CAAC,CAAC,GAAG,mBAAmB,CAAC;AACzB,CAAC,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,IAAI,KAAK,CAAC,kCAAkC,GAAG,CAAC,CAAC,CAAC;AAC7G;AACA;AACA;AACA,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,IAAI,IAAI,OAAO,aAAa,KAAK,WAAW,EAAE,OAAO,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,QAAQ,IAAI,EAAE,EAAE,IAAI,CAAC,CAAC;AACtI;AACA;AACA,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,IAAI,IAAI,OAAO,aAAa,KAAK,WAAW,EAAE,OAAO,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,QAAQ,IAAI,EAAE,EAAE,IAAI,CAAC,CAAC;AACtI,CAAC,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAC;AAC/C,CAAC;AACD;AACA,SAAS,cAAc,CAAC,EAAE,eAAe,IAAI,wBAAwB;AACrE,CAAC,GAAG,EAAE,IAAI,CAAC,EAAE,CAAC,GAAG,EAAE;AACnB,EAAE,EAAE,CAAC,GAAG,GAAG,GAAG,CAAC,SAAS,CAAC,CAAC;AAC1B,EAAE;AACF,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,GAAG,EAAE;AAClB,EAAE,QAAQ,EAAE,CAAC,CAAC,cAAc,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;AACrC;AACA,EAAE,IAAI,CAAC,MAAM,GAAG,SAAS,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC;AAClE,EAAE,IAAI,CAAC,GAAG,GAAG,EAAE,CAAC,GAAG,CAAC;AACpB,EAAE;AACF,CAAC,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;AAClC,CAAC,IAAI,CAAC,OAAO,WAAW,EAAE,kBAAkB,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC;AAC7F,CAAC,GAAG,eAAe,EAAE,IAAI,CAAC,UAAU,GAAG,IAAI,GAAG,EAAE,CAAC;AACjD,MAAM,EAAE,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,GAAG,EAAE,CAAC,CAAC,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE;AACrF,CAAC,IAAI,KAAK,GAAG,KAAK,CAAC;AACnB,CAAC,IAAI,MAAM,GAAG,IAAI,CAAC;AACnB,CAAC,IAAI,EAAE,GAAG,MAAM,EAAE,CAAC;AACnB,CAAC,cAAc,CAAC,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC,CAAC;AACnC,CAAC,IAAI,GAAG,GAAG,OAAO,EAAE,CAAC;AACrB,CAAC,IAAI,CAAC,GAAG,EAAE,EAAE,GAAG,GAAG,CAAC,CAAC;AACrB;AACA,CAAC,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC;AACnB,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC1D;AACA,CAAC,GAAG,CAAC,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,GAAG,EAAE,CAAC;AAC7B;AACA,CAAC,CAAC,GAAG,mBAAmB,CAAC;AACzB,CAAC,YAAY,CAAC,GAAG,EAAE,CAAC,EAAE,gBAAgB,CAAC,EAAE,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC;AACxD,CAAC,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACtB,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;AAC5C;AACA;AACA,CAAC,CAAC,GAAG,kBAAkB,CAAC;AACxB,CAAC,GAAG,EAAE,CAAC,KAAK,IAAI,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC,CAAa;AACjD,MAAM,GAAG,CAAC,EAAE,CAAC,QAAQ,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,MAAM,EAAE,EAAE,CAAC,KAAK,CAAC,UAAU,GAAG,EAAE,CAAC,UAAU,CAAC;AAClF,MAAM;AACN,EAAE,IAAI,GAAG,GAAG,EAAE,CAAC;AACf,EAAE,IAAI,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,EAAE,CAAC,UAAU,CAAC,MAAM,EAAE,EAAE,EAAE;AACjD,GAAG,GAAG,CAAC,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,MAAM,IAAI,CAAC,EAAE,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,CAAC;AAC5E,EAAE,EAAE,CAAC,KAAK,CAAC,UAAU,GAAG,GAAG,CAAC;AAC5B,EAAE;AACF,CAAC,EAAE,CAAC,KAAK,CAAC,UAAU,GAAG,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC;AAClD,CAAC,YAAY,CAAC,GAAG,EAAE,CAAC,EAAE,eAAe,CAAC,EAAE,CAAC,KAAW,CAAC,CAAC,CAAC;AACvD,CAAC,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACrB,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;AAC3C;AACA,CAAC,GAAG,EAAE,CAAC,SAAS,KAAK,EAAE,CAAC,KAAK,IAAI,IAAI,CAAC,EAAE,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE;AACpE,EAAE,CAAC,GAAG,qBAAqB,CAAC;AAC5B,EAAE,YAAY,CAAC,GAAG,EAAE,CAAC,EAAE,gBAAgB,CAAC,EAAE,CAAC,SAAe,CAAC,CAAC,CAAC;AAC7D,EAAE,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACvB,EAAE,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;AAC7C,EAAE;AACF;AACA,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,EAAE,CAAC,UAAU,CAAC,MAAM,EAAE,EAAE,GAAG,EAAE;AAC/C,EAAE,IAAI,MAAM,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;AAC1B,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AAC3C,EAAE,IAAI,KAAK,GAAG,CAAC,EAAE,IAAI,EAAE,EAAE,OAAO,CAAC,IAAI,OAAO,CAAC;AAC7C,EAAE,OAAO,KAAK;AACd,EAAE,KAAK,OAAO,CAAC;AACf;AACA,EAAE;AACF,GAAG,CAAC,GAAG,qBAAqB,GAAG,GAAG,GAAG,GAAG,GAAG,KAAK,CAAC;AACjD,GAAG,YAAY,CAAC,GAAG,EAAE,CAAC,EAAE,YAAY,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,CAAC,CAAC,CAAC;AAC/D,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACrB,GAAG,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE,kBAAkB,GAAG,GAAG,GAAG,GAAG,GAAG,KAAK,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;AACjF,GAAG;AACH;AACA,EAAE,GAAG,EAAE,EAAE;AACT,GAAG,IAAI,QAAQ,GAAG,EAAE,CAAC,WAAW,CAAC,CAAC;AAClC,GAAG,IAAI,QAAQ,GAAG,KAAK,CAAC;AACxB,GAAG,IAAI,EAAE,GAAG,EAAE,CAAC;AACf,GAAG,GAAG,QAAQ,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;AACvC,IAAI,EAAE,GAAG,aAAa,GAAG,GAAG,GAAG,GAAG,GAAG,KAAK,CAAC;AAC3C,IAAI,YAAY,CAAC,GAAG,EAAE,EAAE,EAAE,kBAAkB,CAAC,QAAc,CAAC,CAAC,CAAC;AAC9D,IAAI,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AACzB,IAAI,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE,aAAa,GAAG,GAAG,GAAG,GAAG,GAAG,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;AACvE,IAAI,QAAQ,GAAG,IAAI,CAAC;AACpB,IAAI;AACJ,GAAG,GAAG,EAAE,CAAC,SAAS,CAAC,EAAE;AACrB,IAAI,GAAG,QAAQ,EAAE,YAAY,CAAC,GAAG,EAAE,wBAAwB,IAAI,GAAG,CAAC,GAAG,MAAM,EAAE,SAAS,CAAC,GAAG,EAAE,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;AAC/G,IAAI;AACJ,GAAG,OAAO,EAAE,CAAC,WAAW,CAAC,CAAC;AAC1B,GAAG,OAAO,EAAE,CAAC,SAAS,CAAC,CAAC;AACxB,GAAG;AACH;AACA,EAAE,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,YAAY,CAAC,GAAG,EAAE,aAAa,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC;AACjF,EAAE;AACF;AACA,CAAC,GAAG,IAAI,CAAC,OAAO,IAAI,IAAI,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE;AACrD,EAAE,CAAC,GAAG,mBAAmB,GAAG,KAAK,CAAC;AAClC,EAAE,YAAY,CAAC,GAAG,EAAE,CAAC,EAAE,aAAa,CAAC,IAAI,CAAC,OAAa,CAAC,CAAC,CAAC;AAC1D,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,EAAE,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE,gBAAgB,GAAG,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;AAChE,EAAE;AACF;AACA,CAAC,CAAC,GAAG,cAAc,GAAG,KAAK,CAAC;AAC5B,CAAC,YAAY,CAAC,GAAG,EAAE,CAAC,EAAE,YAAY,CAAC,EAAQ,CAAC,CAAC,CAAC;AAC9C,CAAC,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACtB,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC;AACpC;AACA;AACA;AACA,CAAC,CAAC,GAAG,qBAAqB,CAAC;AAC3B,CAAC,IAAI,EAAE,GAAG,WAAW,CAAC,EAAE,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;AACvC,CAAC,YAAY,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;AAC1B,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACnB,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE,kBAAkB,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;AAC3D;AACA;AACA;AACA,CAAC,CAAC,GAAG,YAAY,GAAG,KAAK,CAAC;AAC1B,CAAC,YAAY,CAAC,GAAG,EAAE,CAAC,EAAE,aAAa,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC;AAC/C,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACnB,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE,SAAS,GAAG,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;AACxD;AACA,CAAC,GAAG,EAAE,CAAC,MAAM,IAAI,MAAM,EAAE;AACzB,EAAE,CAAC,GAAG,mBAAmB,CAAC;AAC1B,EAAE,YAAY,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC;AAClC,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACjB,EAAE,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE,gBAAgB,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;AACxD,EAAE;AACF;AACA,CAAC,CAAC,GAAG,cAAc,GAAG,KAAK,CAAC;AAC5B,CAAC,YAAY,CAAC,GAAG,EAAE,CAAC,EAAE,gBAAgB,EAAE,CAAC,CAAC;AAC1C,CAAC,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACrB,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE,WAAW,GAAG,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;AAC7D;AACA,CAAC,YAAY,CAAC,GAAG,EAAE,qBAAqB,EAAE,QAAQ,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC;AAC9D,CAAC,YAAY,CAAC,GAAG,EAAE,aAAa,EAAE,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;AACzD,CAAC,YAAY,CAAC,GAAG,EAAE,oBAAoB,GAAG,KAAK,GAAG,OAAO,EAAE,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;AACpF;AACA,CAAC,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,OAAO,IAAI,CAAC,GAAG,CAAC;AACrC,CAAC,OAAO,GAAG,CAAC;AACZ,CAAC;AACD;AACA,SAAS,cAAc,CAAC,EAAE,eAAe,IAAI,wBAAwB;AACrE,CAAC,GAAG,EAAE,IAAI,CAAC,EAAE,CAAC,GAAG,EAAE;AACnB,EAAE,EAAE,CAAC,GAAG,GAAG,GAAG,CAAC,SAAS,CAAC,CAAC;AAC1B,EAAE;AACF,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,GAAG,EAAE;AAClB,EAAE,QAAQ,EAAE,CAAC,CAAC,cAAc,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;AACrC;AACA,EAAE,IAAI,CAAC,MAAM,GAAG,SAAS,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC;AAClE,EAAE,IAAI,CAAC,GAAG,GAAG,EAAE,CAAC,GAAG,CAAC;AACpB,EAAE;AACF,CAAC,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;AAClC,CAAC,IAAI,CAAC,OAAO,WAAW,EAAE,kBAAkB,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC;AAC7F,CAAC,GAAG,eAAe,EAAE,IAAI,CAAC,UAAU,GAAG,IAAI,GAAG,EAAE,CAAC;AACjD,MAAM,EAAE,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,GAAG,EAAE,CAAC,CAAC,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE;AACrF,CAAC,IAAI,KAAK,GAAG,KAAK,CAAC;AACnB,CAAC,IAAI,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;AAClD,CAAC,IAAI,EAAE,GAAG,MAAM,EAAE,CAAC;AACnB,CAAC,cAAc,CAAC,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC,CAAC;AACnC,CAAC,IAAI,GAAG,GAAG,OAAO,EAAE,CAAC;AACrB,CAAC,IAAI,CAAC,GAAG,EAAE,EAAE,GAAG,GAAG,CAAC,CAAC;AACrB;AACA,CAAC,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC;AACnB,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC1D;AACA,CAAC,GAAG,CAAC,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,GAAG,EAAE,CAAC;AAC7B;AACA,CAAC,CAAC,GAAG,mBAAmB,CAAC;AACzB,CAAC,YAAY,CAAC,GAAG,EAAE,CAAC,EAAE,gBAAgB,CAAC,EAAE,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC;AACxD,CAAC,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACtB,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;AAC5C;AACA;AACA,CAAC,CAAC,GAAG,kBAAkB,CAAC;AACxB,CAAC,GAAG,EAAE,CAAC,KAAK,IAAI,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC,CAAa;AACjD,MAAM,GAAG,CAAC,EAAE,CAAC,QAAQ,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,MAAM,EAAE,EAAE,CAAC,KAAK,CAAC,UAAU,GAAG,EAAE,CAAC,UAAU,CAAC;AAClF,MAAM;AACN,EAAE,IAAI,GAAG,GAAG,EAAE,CAAC;AACf,EAAE,IAAI,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,EAAE,CAAC,UAAU,CAAC,MAAM,EAAE,EAAE,EAAE;AACjD,GAAG,GAAG,CAAC,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,MAAM,IAAI,CAAC,EAAE,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,CAAC;AAC5E,EAAE,EAAE,CAAC,KAAK,CAAC,UAAU,GAAG,GAAG,CAAC;AAC5B,EAAE;AACF,CAAC,EAAE,CAAC,KAAK,CAAC,UAAU,GAAG,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC;AAClD,CAAC,YAAY,CAAC,GAAG,EAAE,CAAC,EAAE,eAAe,CAAC,EAAE,CAAC,KAAW,CAAC,CAAC,CAAC;AACvD,CAAC,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACrB,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;AAC3C;AACA,CAAC,GAAG,EAAE,CAAC,SAAS,KAAK,EAAE,CAAC,KAAK,IAAI,IAAI,CAAC,EAAE,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE;AACpE,EAAE,CAAC,GAAG,qBAAqB,CAAC;AAC5B,EAAE,YAAY,CAAC,GAAG,EAAE,CAAC,EAAE,gBAAgB,CAAC,EAAE,CAAC,SAAe,CAAC,CAAC,CAAC;AAC7D,EAAE,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACvB,EAAE,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;AAC7C,EAAE;AACF;AACA,CAAC,IAAI,MAAM,GAAG,CAAC,SAAS,CAAC,CAAC;AAC1B,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC;AACf;AACA,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,EAAE,CAAC,UAAU,CAAC,MAAM,EAAE,EAAE,GAAG,EAAE;AAC/C,EAAE,IAAI,MAAM,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;AAC1B,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AAC3C,EAAE,IAAI,KAAK,GAAG,CAAC,EAAE,IAAI,EAAE,EAAE,OAAO,CAAC,IAAI,OAAO,CAAC;AAC7C,EAAE,OAAO,KAAK;AACd,EAAE,KAAK,OAAO,CAAC;AACf;AACA,EAAE;AACF,GAAG,CAAC,GAAG,qBAAqB,GAAG,GAAG,GAAG,GAAG,GAAG,KAAK,CAAC;AACjD,GAAG,YAAY,CAAC,GAAG,EAAE,CAAC,EAAE,YAAY,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,CAAC,CAAC,CAAC;AAC/D,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACrB,GAAG,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE,kBAAkB,GAAG,GAAG,GAAG,GAAG,GAAG,KAAK,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;AACjF,GAAG;AACH;AACA,EAAE,GAAG,EAAE,EAAE;AACT,GAAG,IAAI,QAAQ,GAAG,EAAE,CAAC,WAAW,CAAC,CAAC;AAClC,GAAG,IAAI,QAAQ,GAAG,KAAK,CAAC;AACxB,GAAG,IAAI,EAAE,GAAG,EAAE,CAAC;AACf,GAAG,GAAG,QAAQ,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;AACvC,IAAI,IAAI,MAAM,GAAG,KAAK,CAAC;AACvB,IAAI,QAAQ,CAAC,OAAO,CAAC,SAAS,IAAI,EAAE;AACpC,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC;AACrE,KAAK,CAAC,CAAC;AACP,IAAI,GAAG,MAAM,EAAE;AACf,KAAK,EAAE,GAAG,qCAAqC,GAAG,GAAG,GAAG,MAAM,CAAC;AAC/D,KAAK,YAAY,CAAC,GAAG,EAAE,EAAE,EAAE,eAAe,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC;AACpE,KAAK,EAAE,CAAC,gBAAgB,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AAClC,KAAK,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE,qCAAqC,GAAG,GAAG,GAAG,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;AAC5F,KAAK;AACL;AACA,IAAI,EAAE,GAAG,aAAa,GAAG,GAAG,GAAG,GAAG,GAAG,KAAK,CAAC;AAC3C,IAAI,YAAY,CAAC,GAAG,EAAE,EAAE,EAAE,kBAAkB,CAAC,QAAc,CAAC,CAAC,CAAC;AAC9D,IAAI,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AACzB,IAAI,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE,aAAa,GAAG,GAAG,GAAG,GAAG,GAAG,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;AACvE,IAAI,QAAQ,GAAG,IAAI,CAAC;AACpB,IAAI;AACJ,GAAG,GAAG,EAAE,CAAC,SAAS,CAAC,EAAE;AACrB,IAAI,GAAG,QAAQ,EAAE,YAAY,CAAC,GAAG,EAAE,wBAAwB,IAAI,GAAG,CAAC,GAAG,MAAM,EAAE,SAAS,CAAC,GAAG,EAAE,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;AAC/G,IAAI;AACJ,GAAG,OAAO,EAAE,CAAC,WAAW,CAAC,CAAC;AAC1B,GAAG,OAAO,EAAE,CAAC,SAAS,CAAC,CAAC;AACxB,GAAG;AACH;AACA,EAAE,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,YAAY,CAAC,GAAG,EAAE,aAAa,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC;AACjF,EAAE;AACF;AACA,CAAC,GAAG,IAAI,CAAC,OAAO,IAAI,IAAI,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE;AACrD,EAAE,CAAC,GAAG,mBAAmB,GAAG,KAAK,CAAC;AAClC,EAAE,YAAY,CAAC,GAAG,EAAE,CAAC,EAAE,aAAa,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC;AAC1D,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,EAAE,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE,gBAAgB,GAAG,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;AAChE,EAAE;AACF;AACA,CAAC,CAAC,GAAG,cAAc,GAAG,KAAK,CAAC;AAC5B,CAAC,YAAY,CAAC,GAAG,EAAE,CAAC,EAAE,YAAY,CAAC,EAAQ,CAAC,CAAC,CAAC;AAC9C,CAAC,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACtB,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC;AACpC;AACA;AACA;AACA,CAAC,CAAC,GAAG,qBAAqB,CAAC;AAC3B,CAAC,YAAY,CAAC,GAAG,EAAE,CAAC,EAAE,WAAW,CAAC,EAAE,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC;AACpD,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACnB,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE,kBAAkB,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;AAC3D;AACA;AACA;AACA,CAAC,CAAC,GAAG,YAAY,GAAG,KAAK,CAAC;AAC1B,CAAC,YAAY,CAAC,GAAG,EAAE,CAAC,EAAE,aAAa,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC;AAC/C,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACnB,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE,SAAS,GAAG,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;AACxD;AACA,CAAC,GAAG,EAAE,CAAC,MAAM,IAAI,MAAM,EAAE;AACzB,EAAE,CAAC,GAAG,mBAAmB,CAAC;AAC1B,EAAE,YAAY,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC;AAClC,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACjB,EAAE,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE,gBAAgB,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;AACxD,EAAE;AACF;AACA,CAAC,CAAC,GAAG,cAAc,GAAG,KAAK,CAAC;AAC5B,CAAC,YAAY,CAAC,GAAG,EAAE,CAAC,EAAE,gBAAgB,EAAE,CAAC,CAAC;AAC1C,CAAC,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACrB,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE,WAAW,GAAG,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;AAC7D;AACA,CAAC,GAAG,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;AACvB,EAAE,CAAC,GAAG,uBAAuB,CAAC;AAC9B,EAAE,YAAY,CAAC,GAAG,EAAE,CAAC,EAAE,gBAAgB,CAAC,MAAY,CAAC,CAAC,CAAC;AACvD,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACpB,EAAE,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE,oBAAoB,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;AAC/D,EAAE;AACF;AACA,CAAC,YAAY,CAAC,GAAG,EAAE,qBAAqB,EAAE,QAAQ,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC;AAC9D,CAAC,YAAY,CAAC,GAAG,EAAE,aAAa,EAAE,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;AACzD,CAAC,YAAY,CAAC,GAAG,EAAE,oBAAoB,GAAG,KAAK,GAAG,OAAO,EAAE,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;AACpF;AACA,CAAC,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,OAAO,IAAI,CAAC,GAAG,CAAC;AACrC,CAAC,OAAO,GAAG,CAAC;AACZ,CAAC;AACD;AACA,SAAS,SAAS,CAAC,CAAC,aAAa,CAAC,kCAAkC;AACpE,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;AACZ,CAAC,OAAO,CAAC,CAAC,EAAE,EAAE,EAAE,IAAI,IAAI,QAAQ;AAChC,EAAE,KAAK,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACzE,EAAE,KAAK,QAAQ,EAAE,CAAC,GAAG,aAAa,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM;AACzD,EAAE,KAAK,QAAQ,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM;AAC9B,EAAE,KAAK,OAAO,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACzE,EAAE,SAAS,MAAM,IAAI,KAAK,CAAC,oBAAoB,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,IAAI,WAAW,CAAC,CAAC,CAAC;AAChF,EAAE;AACF,CAAC,OAAO,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;AACjJ,CAAC;AACD;AACA,SAAS,QAAQ,CAAC,GAAG,mBAAmB,IAAI,8BAA8B;AAC1E,CAAC,GAAG,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,kBAAkB,CAAC,EAAE,OAAO,aAAa,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;AACvE,CAAC,OAAO,YAAY,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;AAChC,CAAC;AACD;AACA,SAAS,QAAQ,CAAC,IAAI,cAAc,IAAI,8BAA8B;AACtE,CAAC,IAAI,GAAG,EAAE,CAAC,GAAG,IAAI,CAAC;AACnB,CAAC,IAAI,CAAC,GAAG,IAAI,EAAE,EAAE,CAAC;AAClB,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,GAAG,CAAC,OAAO,IAAI,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,QAAQ,GAAG,QAAQ,CAAC;AAC/E,CAAC,GAAG,GAAG,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AACtB,CAAC,OAAO,SAAS,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;AAC1B,CAAC;AACD;AACA,SAAS,cAAc,CAAC,IAAI,aAAa,CAAC,6BAA6B;AACvE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACX,CAAC,IAAI,EAAE,MAAM,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,OAAO,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;AACvD,EAAE,KAAK,IAAI,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,KAAK,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM;AAC9C,EAAE,KAAK,IAAI,EAAE,OAAO,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAChD,EAAE,SAAS,MAAM,IAAI,CAAC;AACtB,EAAE;AACF,CAAC,OAAO,GAAG,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;AACjC,CAAC;AACD;AACA,SAAS,kBAAkB,CAAC,IAAI,cAAc,CAAC,6BAA6B;AAC5E,CAAC,IAAI,GAAG,GAAG,EAAE,EAAE,KAAK,GAAG,SAAS,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;AAC1C,CAAC,OAAO,CAAC,CAAC,IAAI;AACd,EAAE,KAAK,QAAQ,EAAE,GAAG,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM;AAClD,EAAE,KAAK,QAAQ,EAAE,GAAG,GAAG,IAAI,CAAC,CAAC,MAAM;AACnC,EAAE,KAAK,QAAQ,EAAE,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM;AACtD,EAAE,KAAK,OAAO,EAAE,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM;AAC1C,EAAE,SAAS,MAAM,IAAI,KAAK,CAAC,oBAAoB,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC;AAC1D,EAAE;AACF,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,IAAI,IAAI,KAAK,CAAC,CAAC,CAAC,IAAI,IAAI,IAAI,KAAK,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE,GAAG,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC;AAClF,CAAC,CAAC,CAAC,IAAI,GAAG,QAAQ,CAAC;AACnB,CAAC,OAAO,cAAc,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;AAC/B,CAAC;AACD;AACA,SAAS,UAAU,CAAC,IAAI,cAAc,CAAC,6BAA6B;AACpE,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;AACd,CAAC,GAAG,CAAC,CAAC,IAAI,IAAI,QAAQ,EAAE,CAAC,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC;AAC7C,CAAC,GAAG,OAAO,WAAW,KAAK,WAAW,IAAI,IAAI,YAAY,WAAW,EAAE,CAAC,GAAG,IAAI,UAAU,CAAC,IAAI,CAAC,CAAC;AAChG,CAAC,CAAC,GAAG,OAAO,QAAQ,KAAK,WAAW,GAAG,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC;AACrF,EAAE,CAAC,OAAO,IAAI,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC;AACxE,EAAE,CAAC,OAAO,UAAU,KAAK,WAAW,IAAI,CAAC,YAAY,UAAU;AAC/D,GAAG,OAAO,WAAW,KAAK,WAAW,GAAG,IAAI,WAAW,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,YAAY,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AACjH,MAAM,WAAW,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAC7B,EAAE,CAAC;AACH,CAAC,CAAC,CAAC,IAAI,GAAG,QAAQ,CAAC;AACnB,CAAC,OAAO,cAAc,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAC7B,CAAC;AACD;AACA,SAAS,OAAO,CAAC,IAAI,wBAAwB;AAC7C,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,GAAG,IAAI,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;AAC7D,CAAC;AACD;AACA,SAAS,QAAQ,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE;AACnC,CAAC,GAAG,GAAG,EAAE,EAAE,CAAC,CAAC,IAAI,GAAG,QAAQ,CAAC,CAAC,OAAO,GAAG,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE;AAChE,CAAC,OAAO,GAAG,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAC9B,CAAC;AACD;AACA,SAAS,QAAQ,CAAC,IAAI,cAAc,IAAI,8BAA8B;AACtE,CAAC,QAAQ,EAAE,CAAC;AACZ,CAAC,IAAI,CAAC,GAAG,IAAI,EAAE,EAAE,CAAC;AAClB,CAAC,GAAG,CAAC,CAAC,QAAQ,IAAI,OAAO,QAAQ,KAAK,WAAW,EAAE,OAAO,CAAC,KAAK,CAAC,qFAAqF,CAAC,CAAC;AACxJ,CAAC,GAAG,OAAO,WAAW,KAAK,WAAW,IAAI,IAAI,YAAY,WAAW,EAAE,OAAO,QAAQ,CAAC,IAAI,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,OAAO,EAAE,CAAC,EAAE,CAAC;AAChJ,CAAC,GAAG,OAAO,UAAU,KAAK,WAAW,IAAI,IAAI,YAAY,UAAU,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,GAAG,OAAO,IAAI,KAAK,WAAW,GAAG,QAAQ,GAAG,OAAO,CAAC;AAC1I,CAAC,IAAI,CAAC,GAAG,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,GAAG,KAAK,CAAC;AAC1C,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,UAAU,GAAG,IAAI,CAAC,EAAE;AAC3D,CAAC,QAAQ,GAAG,EAAE,CAAC;AACf,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC;AACzC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,GAAG,CAAC,OAAO,IAAI,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,QAAQ,GAAG,QAAQ,CAAC;AAC/E,CAAC,GAAG,CAAC,CAAC,IAAI,IAAI,MAAM,EAAE,EAAE,CAAC,CAAC,IAAI,GAAG,OAAO,GAAG,QAAQ,GAAG,QAAQ,CAAC,CAAC,CAAC,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,OAAO,UAAU,KAAK,WAAW,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,OAAO,CAAC,EAAE;AAC5J,CAAC,GAAG,CAAC,CAAC,IAAI,IAAI,QAAQ,EAAE,EAAE,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,EAAE;AACjG,CAAC,GAAG,CAAC,CAAC,IAAI,IAAI,OAAO,IAAI,OAAO,UAAU,KAAK,WAAW,IAAI,IAAI,YAAY,UAAU,IAAI,OAAO,WAAW,KAAK,WAAW,EAAE;AAChI;AACA,EAAE,IAAI,EAAE,CAAC,IAAI,WAAW,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,UAAU,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC;AACjE;AACA,EAAE,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,OAAO,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AACtE,EAAE;AACF,CAAC,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;AAChC,EAAE,KAAK,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM;AAC/K,EAAE,KAAK,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE,OAAO,YAAY,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM;AAC/D,EAAE,KAAK,IAAI,EAAE,OAAO,UAAU,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AACrC,EAAE,KAAK,IAAI;AACX,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAC;AAC/G,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,UAAU,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAC7C,GAAG,MAAM;AACT,EAAE,KAAK,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,GAAG,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM;AACrG,EAAE,KAAK,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,IAAI,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,QAAQ,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC;AAC/G,EAAE,KAAK,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,GAAG,UAAU,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,QAAQ,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC;AACjF,EAAE,KAAK,IAAI;AACX,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE,EAAE,OAAO,UAAU,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE;AACjD,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,GAAG,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AACzF,GAAG,MAAM;AACT,EAAE,KAAK,IAAI;AACX,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE;AACrB,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,GAAG,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AACnE,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,EAAE,OAAO,GAAG,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AACvF,IAAI;AACJ,GAAG,MAAM;AACT,EAAE,KAAK,IAAI,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,GAAG,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAC3E,EAAE,KAAK,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,eAAe,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM;AACrG,EAAE,KAAK,IAAI,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,kBAAkB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AACnE,EAAE,KAAK,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAC,CAAC,MAAM;AAC/H,EAAE,KAAK,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAC,CAAC,MAAM;AACzF,EAAE,KAAK,IAAI;AACX,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAC;AACxE,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAC;AACxE,GAAG,MAAM;AACT,EAAE;AACF,CAAC,GAAG,sBAAsB,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,OAAO,GAAG,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AACxG,CAAC,OAAO,QAAQ,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC;AAClC,CAAC;AACD;AACA,SAAS,YAAY,CAAC,QAAQ,aAAa,IAAI,8BAA8B;AAC7E,CAAC,IAAI,CAAC,GAAG,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,MAAM,CAAC;AACnC,CAAC,OAAO,QAAQ,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;AAC9B,CAAC;AACD,SAAS,aAAa,CAAC,GAAG,mBAAmB,CAAC,wBAAwB;AACtE,CAAC,OAAO,CAAC,CAAC,IAAI;AACd,EAAE,KAAK,QAAQ,CAAC,CAAC,KAAK,QAAQ,EAAE,MAAM;AACtC,EAAE,KAAK,QAAQ,CAAC,CAAC,KAAK,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,CAAC,CAAC,MAAM;AAClD,EAAE,KAAK,MAAM,EAAE,OAAO,QAAQ,CAAC,CAAC,CAAC,IAAI,EAAE,GAAG,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,OAAO,GAAG,QAAQ,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;AACvF,EAAE,KAAK,QAAQ,EAAE,MAAM,IAAI,KAAK,CAAC,oCAAoC,GAAG,CAAC,CAAC,QAAQ,GAAG,SAAS,CAAC,CAAC;AAChG,EAAE,SAAS,MAAM,IAAI,KAAK,CAAC,oBAAoB,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC;AAC1D,EAAE;AACF,CAAC,OAAO,GAAG,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;AAC1B,CAAC;AACD;AACA,SAAS,SAAS,CAAC,EAAE,eAAe,IAAI,wBAAwB;AAChE,CAAC,OAAO,IAAI,CAAC,QAAQ;AACrB,EAAE,KAAK,KAAK,EAAE,OAAO,SAAS,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;AACzC,EAAE,KAAK,SAAS,EAAE,OAAO,iBAAiB,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;AACrD,EAAE,KAAK,MAAM,EAAE,OAAO,cAAc,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;AAC/C,EAAE,SAAS,OAAO,cAAc,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;AAC3C,EAAE;AACF,CAAC;AACD;AACA;AACA,SAAS,cAAc,CAAC,EAAE,eAAe,IAAI,yBAAyB;AACtE,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;AACvB,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;AAC1B,CAAC,OAAO,oBAAoB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AACnC,CAAC;AACD,SAAS,kBAAkB,CAAC,EAAE,eAAe,IAAI,yBAAyB;AAC1E,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;AACvB,CAAC,IAAI,CAAC,GAAG,cAAc,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;AAC/B,CAAC,OAAO,oBAAoB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AACnC,CAAC;AACD,SAAS,oBAAoB,CAAC,CAAC,UAAU,CAAC,yBAAyB;AACnE,CAAC,IAAI,KAAK,GAAG,EAAE,CAAC;AAChB,CAAC,IAAI,KAAK,GAAG,OAAO,GAAG,YAAY,IAAI,OAAO,UAAU,KAAK,WAAW,GAAG,OAAO,GAAG,QAAQ,CAAC,CAAC;AAC/F,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE,KAAK,CAAC,WAAW,GAAG,SAAS,CAAC;AACjD,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,KAAK,CAAC,IAAI,GAAG,KAAK,CAAC;AACnC,MAAM,OAAO,CAAC,CAAC,IAAI;AACnB,EAAE,KAAK,QAAQ,EAAE,KAAK,CAAC,IAAI,GAAG,QAAQ,CAAC,CAAC,MAAM;AAC9C,EAAE,KAAK,QAAQ,EAAE,KAAK,CAAC,IAAI,GAAG,QAAQ,CAAC,CAAC,MAAM;AAC9C,EAAE,KAAK,QAAQ,EAAE,MAAM,IAAI,KAAK,CAAC,oCAAoC,GAAG,CAAC,CAAC,QAAQ,GAAG,SAAS,CAAC,CAAC;AAChG,EAAE,KAAK,QAAQ,CAAC;AAChB,EAAE,KAAK,MAAM,EAAE,KAAK,CAAC,IAAI,GAAG,KAAK,CAAC,CAAC,MAAM;AACzC,EAAE,SAAS,MAAM,IAAI,KAAK,CAAC,oBAAoB,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC;AAC1D,EAAE;AACF,CAAC,IAAI,GAAG,GAAG,CAAC,CAAC,SAAS,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,KAAK,EAAE,IAAI,SAAS,CAAC,YAAY,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,CAAC,aAAa,KAAK,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AAC3M,CAAC,GAAG,OAAO,IAAI,KAAK,WAAW,EAAE;AACjC,EAAE,GAAG,OAAO,GAAG,IAAI,QAAQ,EAAE;AAC7B,GAAG,GAAG,CAAC,CAAC,IAAI,IAAI,QAAQ,IAAI,CAAC,CAAC,IAAI,IAAI,QAAQ,EAAE,OAAO,GAAG,CAAC;AAC3D,GAAG,GAAG,GAAG,IAAI,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AACnC,GAAG;AACH,EAAE;AACF;AACA,CAAC,GAAG,CAAC,CAAC,QAAQ,IAAI,OAAO,aAAa,KAAK,WAAW,EAAE,OAAO,aAAa,CAAC,aAAa,CAAC,GAAG,EAAE,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC;AAChH;AACA,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,MAAM,EAAE,OAAO,QAAQ,CAAC,CAAC,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;AACpD,CAAC,OAAO,CAAC,CAAC,IAAI,IAAI,QAAQ,GAAG,QAAQ,QAAQ,GAAG,aAAa,GAAG,GAAG,CAAC;AACpE,CAAC;AACD;AACA,SAAS,cAAc,CAAC,EAAE,eAAe,IAAI,yBAAyB;AACtE,CAAC,IAAI,CAAC,GAAG,IAAI,EAAE,EAAE,CAAC;AAClB,CAAC,IAAI,GAAG,oBAAoB,YAAY,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;AAChD,CAAC,OAAO,aAAa,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;AAC9B,CAAC;AACD;AACA,SAAS,iBAAiB,CAAC,GAAG,aAAa,IAAI,gBAAgB,GAAG,sBAAsB;AACxF,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,GAAG,EAAE,CAAC;AACnB,CAAC,IAAI,CAAC,GAAG,GAAG,GAAG,GAAG,CAAC;AACnB,CAAC,OAAO,IAAI,CAAC,IAAI;AACjB,EAAE,KAAK,QAAQ,EAAE,OAAO,aAAa,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;AACpD,EAAE,KAAK,QAAQ,EAAE,OAAO,SAAS,CAAC,CAAC,CAAC,CAAC;AACrC,EAAE,KAAK,QAAQ,EAAE,OAAO,GAAG,CAAC;AAC5B,EAAE,KAAK,MAAM,EAAE,OAAO,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,MAAM,CAAC,CAAC;AACrD,EAAE,KAAK,QAAQ,EAAE;AACjB,GAAG,GAAG,OAAO,EAAE,OAAO,WAAW,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;AAC7C,QAAQ,GAAG,OAAO,WAAW,KAAK,WAAW,EAAE,OAAO,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;AAClF,QAAQ,OAAO,iBAAiB,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;AAC5G,GAAG;AACH,EAAE;AACF,CAAC,MAAM,IAAI,KAAK,CAAC,oBAAoB,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC;AACnD,CAAC;AACD;AACA,SAAS,eAAe,CAAC,GAAG,aAAa,IAAI,wBAAwB;AACrE,CAAC,OAAO,IAAI,CAAC,IAAI;AACjB,EAAE,KAAK,QAAQ,EAAE,OAAO,kBAAkB,CAAC,GAAG,CAAC,CAAC;AAChD,EAAE,KAAK,QAAQ,EAAE,OAAO,GAAG,CAAC;AAC5B,EAAE,KAAK,QAAQ,EAAE,OAAO,GAAG,CAAC;AAC5B,EAAE,KAAK,MAAM,EAAE,OAAO,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,EAAE,QAAQ,CAAC,CAAC;AACzD,EAAE,KAAK,QAAQ,EAAE;AACjB,GAAG,GAAG,OAAO,EAAE,OAAO,WAAW,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;AACjD,QAAQ,OAAO,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;AAC1E,GAAG;AACH,EAAE;AACF,CAAC,MAAM,IAAI,KAAK,CAAC,oBAAoB,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC;AACnD,CAAC;AACD;AACA;AACA,SAAS,iBAAiB,CAAC,GAAG,EAAE,IAAI,wBAAwB;AAC5D,CAAC,OAAO,IAAI,CAAC,IAAI;AACjB,EAAE,KAAK,QAAQ,CAAC;AAChB,EAAE,KAAK,QAAQ,CAAC;AAChB,EAAE,KAAK,QAAQ;AACf,GAAG,IAAI,IAAI,GAAG,EAAE,CAAC;AACjB;AACA,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE,IAAI,IAAI,MAAM,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AAC3E,GAAG,OAAO,IAAI,CAAC,IAAI,IAAI,QAAQ,GAAG,aAAa,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,IAAI,QAAQ,GAAG,QAAQ,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;AACtG,EAAE,KAAK,MAAM,EAAE,OAAO,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;AAC/C,EAAE,KAAK,QAAQ,EAAE,OAAO,GAAG,CAAC;AAC5B,EAAE,SAAS,MAAM,IAAI,KAAK,CAAC,oBAAoB,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC;AAC7D,EAAE;AACF,CAAC;AACD;AACA,SAAS,aAAa,CAAC,EAAE,eAAe,IAAI,iBAAiB;AAC7D,CAAC,QAAQ,EAAE,CAAC;AACZ,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;AACd,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;AACvB,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,UAAU,GAAG,IAAI,CAAC,EAAE;AAC3D,CAAC,GAAG,CAAC,CAAC,IAAI,IAAI,OAAO,EAAE,EAAE,CAAC,CAAC,IAAI,GAAG,QAAQ,CAAC,CAAC,IAAI,GAAG,eAAe,aAAa,CAAC,EAAE,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,OAAO,CAAC,CAAC,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE;AACtI,CAAC,OAAO,kBAAkB,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;AAClC,CAAC;AACD;AACA,SAAS,SAAS,CAAC,EAAE,eAAe,IAAI,iBAAiB;AACzD,CAAC,QAAQ,EAAE,CAAC;AACZ,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;AACd,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;AACvB,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,UAAU,GAAG,IAAI,CAAC,EAAE;AAC3D,CAAC,GAAG,CAAC,CAAC,IAAI,IAAI,OAAO,EAAE,EAAE,CAAC,CAAC,IAAI,GAAG,QAAQ,CAAC,CAAC,IAAI,GAAG,eAAe,SAAS,CAAC,EAAE,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,OAAO,CAAC,CAAC,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE;AAClI,CAAC,IAAI,GAAG,GAAG,CAAC,CAAC;AACb,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE;AACb,EAAE,GAAG,OAAO,CAAC,CAAC,KAAK,IAAI,QAAQ,EAAE,GAAG,GAAG,CAAC,CAAC,KAAK,CAAC;AAC/C,OAAO,GAAG,GAAG,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;AAC5C,EAAE,GAAG,CAAC,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,MAAM,IAAI,KAAK,CAAC,mBAAmB,GAAG,CAAC,CAAC,KAAK,GAAG,KAAK,IAAI,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;AACpG,EAAE;AACF,CAAC,OAAO,CAAC,CAAC,QAAQ,IAAI,MAAM;AAC5B,EAAE,KAAK,KAAK,CAAC;AACb,EAAE,KAAK,MAAM,EAAE,OAAO,iBAAiB,CAAC,UAAU,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAC9D,EAAE,KAAK,KAAK,CAAC;AACb,EAAE,KAAK,MAAM,EAAE,OAAO,iBAAiB,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AAClG,EAAE,KAAK,KAAK,CAAC;AACb,EAAE,KAAK,MAAM,EAAE,OAAO,iBAAiB,CAAC,aAAa,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAC5F,EAAE,KAAK,KAAK,EAAE,OAAO,eAAe,CAAC,YAAY,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AACxF,EAAE,KAAK,KAAK,EAAE,OAAO,iBAAiB,CAAC,YAAY,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,QAAQ,CAAC,CAAC;AACpG,EAAE,KAAK,KAAK,EAAE,OAAO,iBAAiB,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAC5F,EAAE,KAAK,KAAK,EAAE,OAAO,iBAAiB,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAC5F,EAAE,KAAK,KAAK,EAAE,OAAO,iBAAiB,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAC5F,EAAE,KAAK,KAAK,EAAE,OAAO,iBAAiB,CAAC,YAAY,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,CAAI,CAAC,EAAE,CAAC,CAAC,CAAC;AAC1F,EAAE,KAAK,KAAK,EAAE,OAAO,iBAAiB,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAC5F,EAAE,KAAK,MAAM,EAAE,OAAO,iBAAiB,CAAC,SAAS,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAC7D,EAAE,KAAK,KAAK,EAAE,OAAO,iBAAiB,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAC9F,EAAE,KAAK,KAAK,EAAE,OAAO,iBAAiB,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAClE,EAAE,KAAK,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC;AACvC,EAAE,KAAK,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC;AACvC,EAAE,KAAK,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,OAAO,iBAAiB,CAAC,cAAc,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAC3F,EAAE,KAAK,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC;AACvC,EAAE,KAAK,OAAO,CAAC;AACf,EAAE,KAAK,KAAK,CAAC;AACb,EAAE,KAAK,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,OAAO,cAAc,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;AACnE,EAAE,KAAK,MAAM,CAAC;AACd,EAAE,KAAK,MAAM,CAAC;AACd,EAAE,KAAK,MAAM,CAAC;AACd,EAAE,KAAK,MAAM,CAAC;AACd,EAAE,KAAK,SAAS,CAAC;AACjB,EAAE,KAAK,KAAK,EAAE,OAAO,cAAc,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;AAC3C,EAAE,SAAS,MAAM,IAAI,KAAK,EAAE,yBAAyB,GAAG,CAAC,CAAC,QAAQ,GAAG,GAAG,CAAC,CAAC;AAC1E,EAAE;AACF,CAAC;AACD;AACA,SAAS,iBAAiB,CAAC,CAAC,oBAAoB;AAChD,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,OAAO;AACvB,CAAC,IAAI,GAAG,GAAG;AACX,EAAE,KAAK,EAAE,OAAO;AAChB,EAAE,KAAK,EAAE,MAAM;AACf,EAAE,KAAK,EAAE,MAAM;AACf,EAAE,YAAY,EAAE,KAAK;AACrB,EAAE,SAAS,EAAE,KAAK;AAClB,EAAE,CAAC;AACH,CAAC,IAAI,GAAG,GAAG,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;AAC/D,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC,QAAQ,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AACvD,CAAC,CAAC,CAAC,QAAQ,GAAG,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC;AAC5C,CAAC;AACD;AACA,SAAS,aAAa,CAAC,EAAE,eAAe,QAAQ,aAAa,IAAI,qBAAqB;AACtF,CAAC,IAAI,CAAC,GAAG,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,MAAM,CAAC;AACnC,CAAC,CAAC,CAAC,IAAI,GAAG,QAAQ,CAAC;AACnB,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC;AACtB,CAAC,OAAO,SAAS,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;AACzB,CAAC;AACD;AACA,SAAS,iBAAiB,CAAC,EAAE,eAAe,QAAQ,aAAa,IAAI,qBAAqB;AAC1F,CAAC,IAAI,CAAC,GAAG,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,MAAM,CAAC;AACnC,CAAC,CAAC,CAAC,IAAI,GAAG,QAAQ,CAAC;AACnB,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC;AACtB,CAAC,OAAO,aAAa,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;AAC7B,CAAC;AACD;AACA;AACA,SAAS,cAAc,CAAC,QAAQ,aAAa,EAAE,eAAe,IAAI,qBAAqB,EAAE,6BAA6B;AACtH,CAAC,IAAI,CAAC,GAAG,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,MAAM,CAAC;AACnC,CAAC,CAAC,CAAC,IAAI,GAAG,QAAQ,CAAC;AACnB,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC;AACtB,CAAC,CAAC,CAAC,IAAI,GAAG,QAAQ,CAAC;AACnB,CAAC,IAAI,GAAG,GAAG,EAAE,CAAC,CAAC,GAAG,EAAE,GAAG,YAAY,QAAQ,CAAC,EAAE,GAAG,IAAI,IAAI,SAAS,CAAC;AACnE,CAAC,OAAO,GAAG,CAAC,SAAS,CAAC,QAAQ,EAAE,SAAS,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;AACvD,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,aAAa,CAAC,KAAK,gBAAgB,CAAC,YAAY,CAAC,aAAa,IAAI,oBAAoB,MAAM,aAAa,GAAG,iBAAiB,CAAC,mCAAmC;AAC1K,CAAC,IAAI,EAAE,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;AACxB,CAAC,IAAI,MAAM,GAAG,CAAC,CAAC,MAAM,EAAE,GAAG,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;AACvF,CAAC,IAAI,OAAO,GAAG,IAAI,EAAE,KAAK,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC,CAAC;AACtD,CAAC,IAAI,GAAG,WAAW,CAAC,MAAM,KAAK,CAAC,IAAI,EAAE,GAAG,EAAE,CAAC;AAC5C,CAAC,GAAG,MAAM,KAAK,CAAC,EAAE;AAClB,EAAE,GAAG,MAAM,CAAC,cAAc,EAAE,IAAI,EAAE,MAAM,CAAC,cAAc,CAAC,GAAG,EAAE,YAAY,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,EAAE,GAAG,CAAC,UAAU,GAAG,CAAC,CAAC,EAAE;AAC3I,OAAO,GAAG,CAAC,UAAU,GAAG,CAAC,CAAC;AAC1B,EAAE;AACF,CAAC,GAAG,CAAC,KAAK,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE;AACtE,EAAE,IAAI,GAAG,GAAG,KAAK,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;AACrE,EAAE,GAAG,GAAG,KAAK,SAAS,IAAI,GAAG,CAAC,CAAC,KAAK,SAAS,EAAE;AAC/C,GAAG,GAAG,MAAM,KAAK,SAAS,EAAE,SAAS;AACrC,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,EAAE;AAC/C,GAAG,SAAS;AACZ,GAAG;AACH,EAAE,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;AAChB,EAAE,OAAO,GAAG,CAAC,CAAC;AACd,GAAG,KAAK,GAAG,EAAE,GAAG,CAAC,IAAI,IAAI,EAAE,MAAM,CAAC,SAAS;AAC3C,GAAG,KAAK,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM;AACjD,GAAG,KAAK,GAAG,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,GAAG,EAAE,MAAM;AACjD,GAAG,SAAS,MAAM,IAAI,KAAK,CAAC,oBAAoB,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;AAC1D,GAAG;AACH,EAAE,GAAG,GAAG,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE;AACrB,GAAG,GAAG,CAAC,IAAI,IAAI,EAAE;AACjB,IAAI,GAAG,GAAG,CAAC,CAAC,IAAI,GAAG,IAAI,CAAC,KAAK,IAAI,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;AACtD,SAAS,GAAG,MAAM,KAAK,SAAS,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC;AACvD,SAAS,GAAG,GAAG,IAAI,CAAC,KAAK,IAAI,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;AAClD,SAAS,SAAS;AAClB,IAAI,MAAM;AACV,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,KAAK,GAAG,CAAC,CAAC,KAAK,GAAG,KAAK,GAAG,CAAC,CAAC,KAAK,GAAG,IAAI,CAAC,CAAC,UAAU,KAAK,KAAK,CAAC,CAAC,GAAG,CAAC,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACjH,IAAI;AACJ,GAAG,GAAG,CAAC,IAAI,IAAI,EAAE,OAAO,GAAG,KAAK,CAAC;AACjC,GAAG;AACH,EAAE;AACF,CAAC,OAAO,EAAE,GAAG,EAAE,GAAG,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC;AACvC,CAAC;AACD;AACA;AACA,SAAS,aAAa,CAAC,KAAK,gBAAgB,IAAI,sBAAsB;AACtE,CAAC,GAAG,KAAK,IAAI,IAAI,IAAI,KAAK,CAAC,MAAM,CAAC,IAAI,IAAI,EAAE,OAAO,EAAE,CAAC;AACtD,CAAC,IAAI,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,GAAG,CAAC,EAAE,MAAM,GAAG,CAAC,EAAE,GAAG,kBAAkB,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC;AACpF,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACnC,CAAC,IAAI,CAAC,GAAG,IAAI,IAAI,EAAE,CAAC;AACpB,CAAC,IAAI,KAAK,GAAG,CAAC,CAAC,KAAK,IAAI,IAAI,GAAG,CAAC,CAAC,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC;AACvD,CAAC,GAAG,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,MAAM,GAAG,CAAC,CAAC;AAC/B,MAAM,GAAG,CAAC,CAAC,MAAM,KAAK,GAAG,EAAE,MAAM,GAAG,CAAC,CAAC;AACtC,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,CAAC,CAAC;AAC7C,MAAM,GAAG,CAAC,CAAC,MAAM,IAAI,IAAI,EAAE,MAAM,GAAG,CAAC,CAAC;AACtC,CAAC,OAAO,OAAO,KAAK;AACpB,EAAE,KAAK,QAAQ,EAAE,CAAC,GAAG,iBAAiB,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM;AACrD,EAAE,KAAK,QAAQ,EAAE,CAAC,GAAG,iBAAiB,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,MAAM;AAC5E,EAAE,SAAS,CAAC,GAAG,KAAK,CAAC;AACrB,EAAE;AACF,CAAC,GAAG,MAAM,GAAG,CAAC,EAAE,MAAM,GAAG,CAAC,CAAC;AAC3B,CAAC,IAAI,EAAE,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC5B,CAAC,IAAI,IAAI,qBAAqB,EAAE,CAAC;AACjC,CAAC,IAAI,GAAG,kBAAkB,EAAE,CAAC;AAC7B,CAAC,IAAI,IAAI,GAAG,CAAC,EAAE,OAAO,GAAG,CAAC,CAAC;AAC3B,CAAC,IAAI,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC;AACpC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;AACtB,CAAC,IAAI,UAAU,GAAG,EAAE,CAAC;AACrB,CAAC,GAAG,KAAK,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;AACxD,CAAC,IAAI,OAAO,sBAAsB,CAAC,CAAC,UAAU,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;AACvE,CAAC,IAAI,OAAO,sBAAsB,CAAC,CAAC,UAAU,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;AACvE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE;AACjC,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,GAAG,SAAS;AACzC,EAAE,IAAI,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;AAC1B,EAAE,GAAG,GAAG,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;AAC3D,EAAE,OAAO,MAAM;AACf,GAAG,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM;AACrC,GAAG,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM;AACnC,GAAG,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM;AAC/C,GAAG;AACH,IAAI,GAAG,GAAG,IAAI,IAAI,EAAE,GAAG,GAAG,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC;AACjD,IAAI,EAAE,GAAG,CAAC,GAAG,WAAW,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;AACvC,IAAI,OAAO,GAAG,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;AACjC,IAAI,GAAG,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AACnC,SAAS;AACT,KAAK,GAAG,EAAE,EAAE,GAAG,CAAC,GAAG,GAAG,IAAI,OAAO,EAAE,CAAC,CAAC,EAAE,OAAO,UAAU,CAAC,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC;AACvF,KAAK,UAAU,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;AACxB,KAAK;AACL,IAAI,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;AAChB,GAAG;AACH,EAAE;AACF,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,MAAM,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE;AAC3C,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,SAAS;AACxC,EAAE,IAAI,GAAG,GAAG,aAAa,CAAC,KAAK,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;AAC7D,EAAE,GAAG,CAAC,GAAG,CAAC,OAAO,KAAK,KAAK,MAAM,MAAM,KAAK,CAAC,GAAG,CAAC,CAAC,SAAS,KAAK,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,EAAE,GAAG,CAAC,IAAI,EAAE,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC;AAC9G,EAAE;AACF,CAAC,GAAG,CAAC,MAAM,GAAG,IAAI,CAAC;AACnB,CAAC,OAAO,GAAG,CAAC;AACZ,CAAC;AACD;AACA,IAAI,IAAI,GAAG,IAAI,CAAC;AAChB,SAAS,YAAY,CAAC,KAAK,gBAAgB,CAAC,YAAY,CAAC,aAAa,IAAI,oBAAoB,EAAE,aAAa,EAAE,aAAa,EAAE,aAAa,CAAC,gCAAgC;AAC5K,CAAC,IAAI,OAAO,GAAG,IAAI,CAAC;AACpB,CAAC,IAAI,GAAG,qBAAqB,EAAE,EAAE,GAAG,GAAG,EAAE,EAAE,EAAE,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;AAC9D,CAAC,IAAI,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC;AACpC,CAAC,IAAI,OAAO,GAAG,KAAK,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;AAChD,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE;AACrC,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,SAAS;AACzB,EAAE,IAAI,GAAG,GAAG,KAAK,GAAG,OAAO,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;AACpD,EAAE,GAAG,GAAG,IAAI,IAAI,EAAE,GAAG,GAAG,EAAE,CAAC;AAC3B,OAAO,GAAG,GAAG,CAAC,CAAC,IAAI,IAAI,EAAE;AACzB,GAAG,OAAO,GAAG,KAAK,CAAC;AACnB,GAAG,GAAG,GAAG,EAAE,EAAE,CAAC,CAAC,UAAU,IAAI,GAAG,CAAC,CAAC,IAAI,GAAG,GAAG,GAAG,CAAC,CAAC,GAAG,WAAW,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;AAC/E,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,CAAC,KAAK,GAAG,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC,WAAW,EAAE,CAAC,GAAG,GAAG,IAAI,GAAG,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC,MAAM,EAAE;AACtL,GAAG,GAAG,GAAG,IAAI,IAAI,EAAE,GAAG,GAAG,MAAM,CAAC;AAChC,GAAG,MAAM,GAAG,GAAG,CAAC,CAAC,IAAI,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE;AACrC,GAAG,OAAO,GAAG,KAAK,CAAC;AACnB,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,GAAG,CAAC;AAC1F,GAAG,MAAM,GAAG,GAAG,EAAE,CAAC;AAClB;AACA,EAAE,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAChB,EAAE;AACF,CAAC,GAAG,CAAC,CAAC,SAAS,KAAK,KAAK,IAAI,OAAO,EAAE,OAAO,IAAI,CAAC;AAClD,CAAC,OAAO,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AACrB,CAAC;AACD;AACA,SAAS,YAAY,CAAC,KAAK,gBAAgB,IAAI,gCAAgC;AAC/E,CAAC,IAAI,GAAG,qBAAqB,EAAE,CAAC;AAChC,CAAC,IAAI,CAAC,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,GAAG,IAAI,CAAC;AAClC,CAAC,GAAG,KAAK,IAAI,IAAI,IAAI,KAAK,CAAC,MAAM,CAAC,IAAI,IAAI,EAAE,OAAO,EAAE,CAAC;AACtD,CAAC,IAAI,CAAC,GAAG,iBAAiB,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;AAC1C,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,EAAE,KAAK,SAAS,GAAG,CAAC,CAAC,EAAE,GAAG,GAAG,EAAE,EAAE,GAAG,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;AACjE,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,EAAE,KAAK,SAAS,GAAG,CAAC,CAAC,EAAE,GAAG,IAAI,EAAE,EAAE,GAAG,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;AAClE,CAAC,IAAI,QAAQ,GAAG,IAAI,MAAM,CAAC,CAAC,EAAE,EAAE,GAAG,GAAG,KAAK,GAAG,EAAE,EAAE,IAAI,CAAC,CAAC;AACxD,CAAC,IAAI,GAAG,GAAG,EAAE,EAAE,IAAI,qBAAqB,EAAE,CAAC;AAC3C,CAAC,IAAI,OAAO,sBAAsB,CAAC,CAAC,UAAU,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;AACvE,CAAC,IAAI,OAAO,sBAAsB,CAAC,CAAC,UAAU,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;AACvE,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;AAC7F,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACX,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE;AACrC,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,SAAS;AACxC,EAAE,GAAG,GAAG,YAAY,CAAC,KAAK,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;AACvD,EAAE,GAAG,GAAG,IAAI,IAAI,EAAE,EAAE,SAAS,EAAE;AAC/B,EAAE,GAAG,CAAC,CAAC,KAAK,EAAE,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;AAC7C,EAAE,GAAG,GAAG,KAAK,CAAC,CAAC,SAAS,KAAK,KAAK,CAAC,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,GAAG,CAAC,CAAC;AACrE,EAAE;AACF,CAAC,OAAO,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AACrB,CAAC;AACD;AACA,SAAS,YAAY,CAAC,KAAK,gBAAgB,IAAI,qBAAqB;AACpE,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,GAAG,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,CAAC,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC;AACrD,CAAC,IAAI,CAAC,GAAG,YAAY,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;AACnC,CAAC,GAAG,OAAO,QAAQ,IAAI,WAAW,IAAI,IAAI,CAAC,IAAI,IAAI,QAAQ,EAAE,OAAO,CAAC,CAAC;AACtE,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC;AAC/C,CAAC,OAAO,MAAM,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AAChE,CAAC;AACD;AACA,SAAS,iBAAiB,CAAC,KAAK,kCAAkC;AAClE,CAAC,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC;AACvB,CAAC,GAAG,KAAK,IAAI,IAAI,IAAI,KAAK,CAAC,MAAM,CAAC,IAAI,IAAI,EAAE,OAAO,EAAE,CAAC;AACtD,CAAC,IAAI,CAAC,GAAG,iBAAiB,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,GAAG,EAAE,EAAE,IAAI,qBAAqB,EAAE,EAAE,CAAC,CAAC;AACnF,CAAC,IAAI,IAAI,qBAAqB,EAAE,CAAC;AACjC,CAAC,IAAI,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC;AACpC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;AACzD,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE;AACrC,EAAE,EAAE,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;AACrB,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE;AAClC,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;AACpB,GAAG,CAAC,GAAG,KAAK,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;AACrD,GAAG,GAAG,GAAG,EAAE,CAAC;AACZ,GAAG,GAAG,CAAC,KAAK,SAAS,EAAE,SAAS;AAChC,QAAQ,GAAG,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE;AACxB,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AACZ,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,SAAS;AACtB,IAAI,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;AACd,IAAI,GAAG,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC;AAC7C,IAAI;AACJ,GAAG,GAAG,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;AAC7B,QAAQ,GAAG,CAAC,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS;AAChC,QAAQ,GAAG,CAAC,CAAC,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE,GAAG,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;AACrD,QAAQ,GAAG,CAAC,CAAC,CAAC,IAAI,GAAG,EAAE,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,MAAM,GAAG,OAAO,CAAC;AACpD,QAAQ,GAAG,CAAC,CAAC,CAAC,KAAK,SAAS,EAAE,GAAG,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;AAC9C,QAAQ,GAAG,CAAC,CAAC,CAAC,KAAK,SAAS,EAAE,SAAS;AACvC,QAAQ,GAAG,CAAC,CAAC,CAAC,IAAI,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;AACvC,QAAQ,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;AACrB,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,GAAG,GAAG,GAAG,CAAC;AACrC,GAAG;AACH,EAAE;AACF,CAAC,OAAO,IAAI,CAAC;AACb,CAAC;AACD;AACA,SAAS,cAAc,CAAC,GAAG,iBAAiB,EAAE,iBAAiB,IAAI,gBAAgB;AACnF,CAAC,IAAI,CAAC,GAAG,IAAI,IAAI,EAAE,CAAC;AACpB,CAAC,IAAI,KAAK,GAAG,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,IAAI,IAAI,IAAI,CAAC,CAAC,KAAK,CAAC;AAEpD,CAAC,IAAI,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC;AAC7B,CAAC,IAAI,EAAE,iBAAiB,GAAG,KAAK,EAAE,CAAC,CAAC;AACpC,CAAC,GAAG,CAAC,GAAG,IAAI,KAAK,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC;AACpC,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;AACpB,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,MAAM,IAAI,IAAI,EAAE;AAC5B,EAAE,GAAG,OAAO,CAAC,CAAC,MAAM,IAAI,QAAQ,EAAE,EAAE,GAAG,CAAC,CAAC,MAAM,CAAC;AAChD,OAAO;AACP,GAAG,IAAI,OAAO,mBAAmB,OAAO,CAAC,CAAC,MAAM,IAAI,QAAQ,GAAG,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC;AAChG,GAAG,EAAE,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,OAAO,CAAC,CAAC,CAAC;AAClC,GAAG;AACH,EAAE;AACF,CAAC,IAAI,KAAK,cAAc,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,MAAM,GAAG,CAAC,GAAG,MAAM,CAAC,CAAC,SAAS,CAAC;AAC3F,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,EAAE;AAChB,EAAE,IAAI,MAAM,GAAG,iBAAiB,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;AAC7C,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC9C,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC9C,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,MAAM,GAAG,CAAC,GAAG,MAAM,CAAC,EAAE;AAChF,EAAE,MAAM;AACR,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,MAAM,GAAG,CAAC,GAAG,MAAM,CAAC,EAAE;AAC9D,EAAE;AACF,CAAC,IAAI,GAAG,qBAAqB,CAAC,CAAC,MAAM,IAAI,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC;AACnD,CAAC,IAAI,GAAG,GAAG,EAAE,CAAC;AACd,CAAC,EAAE,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,aAAa;AACxC,EAAE,GAAG,KAAK,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,MAAM,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,MAAM,CAAC,GAAG,EAAE,CAAC;AAC/E,EAAE,GAAG,KAAK,EAAE,GAAG,GAAG,EAAE,CAAC,OAAO,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,MAAM,CAAC,CAAC;AAC/C,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE;AAC/B,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;AACtD,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;AACjB,GAAG,IAAI,CAAC,GAAG,GAAG,CAAC;AACf,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;AACd,GAAG,IAAI,GAAG,GAAG,KAAK,GAAG,EAAE,IAAI,UAAU,CAAC,EAAE,GAAG,CAAC,CAAC,GAAG,UAAU,CAAC,EAAE,GAAG,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC;AAC7E,GAAG,IAAI,IAAI,YAAY,KAAK,GAAG,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC;AACrD,GAAG,GAAG,CAAC,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,EAAE,CAAC,YAAY,IAAI,CAAC,CAAC;AACzD,IAAI,GAAG,KAAK,EAAE,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;AAC9B,SAAS,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AACrB,IAAI,MAAM;AACV,IAAI,GAAG,OAAO,CAAC,IAAI,QAAQ,EAAE,CAAC,GAAG,GAAG,CAAC;AACrC,SAAS,GAAG,OAAO,CAAC,IAAI,SAAS,EAAE,CAAC,GAAG,GAAG,CAAC;AAC3C,SAAS,GAAG,OAAO,CAAC,IAAI,QAAQ,EAAE,CAAC,GAAG,GAAG,CAAC;AAC1C,SAAS,GAAG,CAAC,YAAY,IAAI,EAAE;AAC/B,KAAK,CAAC,GAAG,GAAG,CAAC;AACb,KAAK,GAAG,CAAC,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE;AAClD,KAAK,CAAC,GAAG,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,CAAC,CAAC,IAAI,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,IAAI,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC;AAChG,KAAK;AACL,SAAS,GAAG,CAAC,KAAK,IAAI,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE;AAC1D,IAAI,GAAG,CAAC,IAAI,EAAE;AACd,KAAK,GAAG,CAAC,KAAK,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;AACtD,UAAU,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;AACpD,KAAK,MAAM;AACX,KAAK,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;AAC5B,KAAK,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,CAAC;AAClC,KAAK,GAAG,CAAC,EAAE,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;AACtB,KAAK;AACL,IAAI,GAAG,CAAC,EAAE,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;AACrB,IAAI;AACJ,GAAG,CAAC,CAAC;AACL,EAAE,CAAC,CAAC;AACJ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,GAAG,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;AACtD,CAAC,IAAI,GAAG,GAAG,UAAU,CAAC,EAAE,CAAC,CAAC;AAC1B,CAAC,GAAG,KAAK,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC;AACpD,CAAC,GAAG,MAAM,EAAE,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE;AAC5C,EAAE,GAAG,KAAK,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AACxD,OAAO,EAAE,CAAC,UAAU,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AACxD,EAAE;AACF,CAAC,EAAE,CAAC,MAAM,CAAC,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC;AAClC,CAAC,OAAO,EAAE,CAAC;AACX,CAAC;AACD,SAAS,aAAa,CAAC,EAAE,iBAAiB,IAAI,gBAAgB,EAAE,OAAO,cAAc,CAAC,IAAI,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC,EAAE;AACxG;AACA;AACA,SAAS,gBAAgB,CAAC,EAAE,gBAAgB,CAAC,EAAE,CAAC,uBAAuB;AACvE;AACA,CAAC,GAAG,OAAO,CAAC,IAAI,QAAQ,EAAE;AAC1B,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,IAAI,EAAE;AAC1B,GAAG,IAAI,EAAE,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;AAC3B,GAAG,GAAG,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;AACjD,GAAG,OAAO,EAAE,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;AACzE,GAAG;AACH,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;AACpC,EAAE;AACF;AACA,CAAC,GAAG,OAAO,CAAC,IAAI,QAAQ,EAAE,OAAO,gBAAgB,CAAC,EAAE,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;AACtE;AACA,CAAC,OAAO,gBAAgB,CAAC,EAAE,EAAE,UAAU,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;AAC/D,CAAC;AACD;AACA;AACA,SAAS,YAAY,CAAC,EAAE,eAAe,EAAE,oBAAoB;AAC7D,CAAC,GAAG,OAAO,EAAE,IAAI,QAAQ,EAAE;AAC3B,EAAE,GAAG,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,UAAU,CAAC,MAAM,GAAG,EAAE,EAAE,OAAO,EAAE,CAAC;AACrD,EAAE,MAAM,IAAI,KAAK,CAAC,sBAAsB,GAAG,EAAE,CAAC,CAAC;AAC/C,EAAE,MAAM,GAAG,OAAO,EAAE,IAAI,QAAQ,EAAE;AAClC,EAAE,IAAI,GAAG,GAAG,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;AACtC,EAAE,GAAG,GAAG,GAAG,CAAC,CAAC,EAAE,OAAO,GAAG,CAAC;AAC1B,EAAE,MAAM,IAAI,KAAK,CAAC,0BAA0B,GAAG,EAAE,GAAG,GAAG,CAAC,CAAC;AACzD,EAAE,MAAM,MAAM,IAAI,KAAK,CAAC,qBAAqB,GAAG,EAAE,GAAG,GAAG,CAAC,CAAC;AAC1D,CAAC;AACD;AACA;AACA,SAAS,QAAQ,gBAAgB;AACjC,CAAC,OAAO,EAAE,UAAU,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC;AACvC,CAAC;AACD;AACA;AACA,SAAS,iBAAiB,CAAC,EAAE,eAAe,EAAE,gBAAgB,IAAI,cAAc,IAAI,0BAA0B;AAC9G,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACX,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,MAAM,EAAE,EAAE,CAAC,EAAE,IAAI,GAAG,SAAS,EAAE,GAAG,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,GAAG,OAAO,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,MAAM;AAC/G,CAAC,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC,UAAU,CAAC,MAAM,IAAI,MAAM,EAAE,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAC;AACpF,CAAC,GAAG,IAAI,IAAI,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;AAC9C,EAAE,IAAI,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;AACrC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;AACtB,EAAE,IAAI,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC;AAC/B,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,IAAI,MAAM,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,GAAG,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,MAAM;AACpF,EAAE;AACF,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;AACrB,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,MAAM,IAAI,KAAK,CAAC,uBAAuB,GAAG,IAAI,GAAG,mBAAmB,CAAC,CAAC;AAC5G;AACA,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;AACtB,CAAC,OAAO,IAAI,CAAC;AACb,CAAC;AACD;AACA;AACA,SAAS,yBAAyB,CAAC,EAAE,eAAe,EAAE,oBAAoB,GAAG,aAAa;AAC1F,CAAC,GAAG,CAAC,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,GAAG,EAAE,CAAC;AACnC,CAAC,GAAG,CAAC,EAAE,CAAC,QAAQ,CAAC,MAAM,EAAE,EAAE,CAAC,QAAQ,CAAC,MAAM,GAAG,EAAE,CAAC;AACjD;AACA,CAAC,IAAI,GAAG,GAAG,YAAY,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;AAChC;AACA,CAAC,GAAG,CAAC,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;AAC3D;AACA,CAAC,OAAO,GAAG;AACX,EAAE,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,MAAM;AAChC,EAAE,SAAS,MAAM,IAAI,KAAK,CAAC,+BAA+B,GAAG,GAAG,CAAC,CAAC;AAClE,EAAE;AACF;AACA,CAAC,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,MAAM,GAAG,GAAG,CAAC;AACtC,CAAC;AACD;AACA;AACA,SAAS,sBAAsB,CAAC,IAAI,WAAW,GAAG,oBAAoB;AACtE,CAAC,IAAI,CAAC,CAAC,GAAG,GAAG,CAAC;AACd,CAAC,OAAO,IAAI,CAAC;AACb,CAAC;AACD;AACA;AACA,SAAS,kBAAkB,CAAC,IAAI,WAAW,MAAM,aAAa,OAAO,cAAc;AACnF,CAAC,GAAG,CAAC,MAAM,EAAE;AACb,EAAE,OAAO,IAAI,CAAC,CAAC,CAAC;AAChB,EAAE,MAAM;AACR,EAAE,IAAI,CAAC,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,eAAe,CAAC;AAC9C,EAAE,GAAG,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC,OAAO,GAAG,OAAO,CAAC;AACvC,EAAE;AACF,CAAC,OAAO,IAAI,CAAC;AACb,CAAC;AACD,SAAS,sBAAsB,CAAC,IAAI,WAAW,KAAK,aAAa,OAAO,cAAc,EAAE,OAAO,kBAAkB,CAAC,IAAI,EAAE,GAAG,GAAG,KAAK,EAAE,OAAO,CAAC,CAAC,EAAE;AAChJ;AACA;AACA,SAAS,gBAAgB,CAAC,IAAI,WAAW,IAAI,aAAa,MAAM,cAAc;AAC9E,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,GAAG,EAAE,CAAC;AACzB,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC;AAC5C,CAAC;AACD;AACA;AACA,SAAS,uBAAuB,CAAC,EAAE,gBAAgB,KAAK,EAAE,OAAO,aAAa,OAAO,cAAc;AACnG,CAAC,IAAI,GAAG,GAAG,OAAO,KAAK,IAAI,QAAQ,GAAG,KAAK,GAAG,iBAAiB,CAAC,KAAK,CAAC,CAAC;AACvE,CAAC,IAAI,MAAM,GAAG,OAAO,KAAK,IAAI,QAAQ,GAAG,KAAK,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC;AACrE,CAAC,IAAI,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,IAAI,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE;AACjF,EAAE,IAAI,IAAI,GAAG,gBAAgB,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AACxC,EAAE,IAAI,CAAC,CAAC,GAAG,GAAG,CAAC;AACf,EAAE,IAAI,CAAC,CAAC,GAAG,MAAM,CAAC;AAClB,EAAE,OAAO,IAAI,CAAC,CAAC,CAAC;AAChB,EAAE,GAAG,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE;AACnC,GAAG,IAAI,CAAC,CAAC,GAAG,OAAO,CAAC;AACpB,GAAG,GAAG,OAAO,EAAE,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC;AAC7B,GAAG;AACH,EAAE;AACF,CAAC,IAAI,GAAG,GAAG,YAAY,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;AACpC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AACzC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AACzC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AACzC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AACzC,CAAC,EAAE,CAAC,MAAM,CAAC,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC;AAChC,CAAC,OAAO,EAAE,CAAC;AACX,CAAC;AACD;AACA,IAAI,KAAK,WAAW;AACpB,CAAC,UAAU,EAAE,UAAU;AACvB,CAAC,UAAU,EAAE,UAAU;AACvB,CAAC,WAAW,EAAE,WAAW;AACzB,CAAC,YAAY,EAAE,YAAY;AAC3B,CAAC,UAAU,EAAE,UAAU;AACvB,CAAC,UAAU,EAAE,UAAU;AACvB,CAAC,UAAU,EAAE,UAAU;AACvB,CAAC,WAAW,EAAE,WAAW;AACzB,CAAC,YAAY,EAAE,YAAY;AAC3B,CAAC,WAAW,EAAE,WAAW;AACzB,CAAC,aAAa,EAAE,aAAa;AAC7B,CAAC,cAAc,EAAE,cAAc;AAC/B,CAAC,aAAa,EAAE,aAAa;AAC7B,CAAC,YAAY,EAAE,YAAY;AAC3B,CAAC,aAAa,EAAE,aAAa;AAC7B,CAAC,cAAc,EAAE,eAAe;AAChC,CAAC,aAAa,EAAE,aAAa;AAC7B,CAAC,YAAY,EAAE,YAAY;AAC3B,CAAC,YAAY,EAAE,YAAY;AAC3B,CAAC,aAAa,EAAE,aAAa;AAC7B,CAAC,aAAa,EAAE,aAAa;AAC7B,CAAC,iBAAiB,EAAE,iBAAiB;AACrC,CAAC,yBAAyB,EAAE,aAAa;AACzC,CAAC,cAAc,EAAE,gBAAgB;AACjC,CAAC,QAAQ,EAAE,QAAQ;AACnB,CAAC,iBAAiB,EAAE,iBAAiB;AACrC,CAAC,yBAAyB,EAAE,yBAAyB;AACrD,CAAC,sBAAsB,EAAE,sBAAsB;AAC/C,CAAC,kBAAkB,EAAE,kBAAkB;AACvC,CAAC,sBAAsB,EAAE,sBAAsB;AAC/C,CAAC,gBAAgB,EAAE,gBAAgB;AACnC,CAAC,uBAAuB,EAAE,uBAAuB;AACjD,CAAC,MAAM,EAAE;AACT,EAAE,aAAa,EAAE,CAAC;AAClB,EAAE,YAAY,EAAE,CAAC;AACjB,EAAE,iBAAiB,EAAE,CAAC;AACtB,EAAE;AACF,CAAC,CAAC;AACF;AACA,IAAI,SAAS,CAAC;AACd,SAAS,YAAY,CAAC,CAAC,EAAE,EAAE,SAAS,GAAG,CAAC,CAAC,EAAE;AAC3C;AACA,SAAS,gBAAgB,CAAC,KAAK,gBAAgB,IAAI,qBAAqB;AACxE,CAAC,IAAI,MAAM,GAAG,SAAS,EAAE,CAAC;AAC1B,CAAC,IAAI,CAAC,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,GAAG,IAAI,CAAC;AAClC,CAAC,GAAG,KAAK,IAAI,IAAI,IAAI,KAAK,CAAC,MAAM,CAAC,IAAI,IAAI,EAAE,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,MAAM,CAAC,EAAE;AACjF,CAAC,IAAI,CAAC,GAAG,iBAAiB,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;AAC1C,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,EAAE,KAAK,SAAS,GAAG,CAAC,CAAC,EAAE,GAAG,GAAG,EAAE,EAAE,GAAG,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;AACjE,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,EAAE,KAAK,SAAS,GAAG,CAAC,CAAC,EAAE,GAAG,IAAI,EAAE,EAAE,GAAG,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;AAClE,CAAC,IAAI,QAAQ,GAAG,IAAI,MAAM,CAAC,CAAC,EAAE,EAAE,GAAG,GAAG,KAAK,GAAG,EAAE,EAAE,IAAI,CAAC,CAAC;AACxD,CAAC,IAAI,GAAG,eAAe,EAAE,EAAE,IAAI,qBAAqB,EAAE,CAAC;AACvD,CAAC,IAAI,OAAO,sBAAsB,CAAC,CAAC,UAAU,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;AACvE,CAAC,IAAI,OAAO,sBAAsB,CAAC,CAAC,UAAU,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;AACvE,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;AAC7F,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACf,CAAC,IAAI,GAAG,GAAG,KAAK,EAAE,CAAC,GAAG,CAAC,CAAC;AACxB,CAAC,MAAM,CAAC,KAAK,GAAG,WAAW;AAC3B,EAAE,GAAG,CAAC,GAAG,EAAE,EAAE,GAAG,GAAG,IAAI,CAAC,CAAC,OAAO,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,EAAE;AACxD,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE;AACpB,GAAG,EAAE,CAAC,CAAC;AACP,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,SAAS;AAC3C,GAAG,GAAG,GAAG,YAAY,CAAC,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;AAC1D,GAAG,GAAG,GAAG,IAAI,IAAI,EAAE;AACnB,IAAI,GAAG,CAAC,CAAC,KAAK,EAAE,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;AAC/C,IAAI,GAAG,GAAG,KAAK,CAAC,CAAC,SAAS,KAAK,KAAK,CAAC,EAAE,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,GAAG,CAAC,CAAC;AACjF,IAAI;AACJ,GAAG;AACH,EAAE,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC3B,EAAE,CAAC;AACH,CAAC,OAAO,MAAM,CAAC;AACf,CAAC;AACD;AACA,SAAS,iBAAiB,CAAC,EAAE,gBAAgB,IAAI,sBAAsB;AACvE,CAAC,IAAI,MAAM,GAAG,SAAS,EAAE,CAAC;AAC1B;AACA,CAAC,IAAI,CAAC,GAAG,IAAI,IAAI,EAAE,CAAC;AACpB,CAAC,IAAI,MAAM,GAAG,CAAC,CAAC,MAAM,IAAI,IAAI,GAAG,CAAC,CAAC,MAAM,GAAG,UAAU,CAAC;AACvD,CAAC,IAAI,MAAM,GAAG,CAAC,CAAC,MAAM,IAAI,IAAI,GAAG,CAAC,CAAC,MAAM,GAAG,QAAQ,CAAC;AACrD,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AACrB,CAAC,IAAI,CAAC,GAAG,YAAY,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;AAClC,CAAC,MAAM,CAAC,IAAI,CAAC,kBAAkB,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AAC3C,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACf,CAAC,IAAI,GAAG,GAAG,KAAK,CAAC;AACjB,CAAC,MAAM,CAAC,KAAK,GAAG,WAAW;AAC3B,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE;AAChB,GAAG,GAAG,CAAC,GAAG,EAAE,EAAE,GAAG,GAAG,IAAI,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC,CAAC,EAAE;AAC7D,GAAG,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC5B,GAAG;AACH,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE;AACpB,GAAG,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AAC3C,GAAG,EAAE,CAAC,CAAC;AACP,GAAG,MAAM;AACT,GAAG;AACH,EAAE,CAAC;AACH,CAAC,OAAO,MAAM,CAAC;AACf,CAAC;AACD;AACA,SAAS,iBAAiB,CAAC,KAAK,gBAAgB,IAAI,qBAAqB;AACzE,CAAC,IAAI,MAAM,GAAG,SAAS,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC;AAC3C;AACA,CAAC,GAAG,KAAK,IAAI,IAAI,IAAI,KAAK,CAAC,MAAM,CAAC,IAAI,IAAI,EAAE,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,MAAM,CAAC,EAAE;AACjF,CAAC,IAAI,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,GAAG,CAAC,EAAE,MAAM,GAAG,CAAC,EAAE,GAAG,kBAAkB,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC;AACpF,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACnC,CAAC,IAAI,CAAC,GAAG,IAAI,IAAI,EAAE,CAAC;AACpB,CAAC,IAAI,KAAK,GAAG,CAAC,CAAC,KAAK,IAAI,IAAI,GAAG,CAAC,CAAC,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC;AACvD,CAAC,GAAG,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,MAAM,GAAG,CAAC,CAAC;AAC/B,MAAM,GAAG,CAAC,CAAC,MAAM,KAAK,GAAG,EAAE,MAAM,GAAG,CAAC,CAAC;AACtC,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,CAAC,CAAC;AAC7C,CAAC,OAAO,OAAO,KAAK;AACpB,EAAE,KAAK,QAAQ,EAAE,CAAC,GAAG,iBAAiB,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM;AACrD,EAAE,KAAK,QAAQ,EAAE,CAAC,GAAG,iBAAiB,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,MAAM;AAC5E,EAAE,SAAS,CAAC,GAAG,KAAK,CAAC;AACrB,EAAE;AACF,CAAC,GAAG,MAAM,GAAG,CAAC,EAAE,MAAM,GAAG,CAAC,CAAC;AAC3B,CAAC,IAAI,EAAE,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC5B,CAAC,IAAI,IAAI,qBAAqB,EAAE,CAAC;AACjC,CAAC,IAAI,OAAO,GAAG,CAAC,CAAC;AACjB,CAAC,IAAI,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC;AACpC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;AACtB,CAAC,IAAI,UAAU,GAAG,EAAE,CAAC;AACrB,CAAC,GAAG,KAAK,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;AACxD,CAAC,IAAI,OAAO,sBAAsB,CAAC,CAAC,UAAU,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;AACvE,CAAC,IAAI,OAAO,sBAAsB,CAAC,CAAC,UAAU,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;AACvE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE;AACjC,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,GAAG,SAAS;AACzC,EAAE,IAAI,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;AAC1B,EAAE,GAAG,GAAG,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;AAC3D,EAAE,OAAO,MAAM;AACf,GAAG,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM;AACrC,GAAG,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM;AACnC,GAAG,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM;AAC/C,GAAG;AACH,IAAI,GAAG,GAAG,IAAI,IAAI,EAAE,GAAG,GAAG,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC;AACjD,IAAI,EAAE,GAAG,CAAC,GAAG,WAAW,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;AACvC,IAAI,OAAO,GAAG,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;AACjC,IAAI,GAAG,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AACnC,SAAS;AACT,KAAK,GAAG,EAAE,EAAE,GAAG,CAAC,GAAG,GAAG,IAAI,OAAO,EAAE,CAAC,CAAC,EAAE,OAAO,UAAU,CAAC,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC;AACvF,KAAK,UAAU,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;AACxB,KAAK;AACL,IAAI,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;AAChB,GAAG;AACH,EAAE;AACF,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC;AACpB,CAAC,MAAM,CAAC,KAAK,GAAG,WAAW;AAC3B,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE;AACpB,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,SAAS;AAC3C,GAAG,IAAI,GAAG,GAAG,aAAa,CAAC,KAAK,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;AAC9D,GAAG,EAAE,CAAC,CAAC;AACP,GAAG,GAAG,CAAC,GAAG,CAAC,OAAO,KAAK,KAAK,MAAM,MAAM,KAAK,CAAC,GAAG,CAAC,CAAC,SAAS,KAAK,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,EAAE;AACzF,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AACzB,IAAI,OAAO;AACX,IAAI;AACJ,GAAG;AACH,EAAE,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC3B,EAAE,CAAC;AACH,CAAC,OAAO,MAAM,CAAC;AACf,CAAC;AACD;AACA,IAAI,QAAQ,GAAG;AACf,CAAC,OAAO,EAAE,iBAAiB;AAC3B,CAAC,OAAO,EAAE,iBAAiB;AAC3B,CAAC,MAAM,EAAE,gBAAgB;AACzB,CAAC,YAAY,EAAE,YAAY;AAC3B,CAAC,CAAC;AACK,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;AAoBpC,WAAe;AACf,CAAC,YAAY;AACb,CAAC,SAAS;AACV,CAAC,IAAI,EAAE,QAAQ;AACf,CAAC,QAAQ,EAAE,YAAY;AACvB,CAAC,YAAY;AACb,CAAC,KAAK,EAAE,SAAS;AACjB,CAAC,SAAS,EAAE,aAAa;AACzB,CAAC,aAAa;AACd,CAAC,cAAc;AACf,CAAC,SAAS,EAAE,aAAa;AACzB,CAAC,aAAa,EAAE,iBAAiB;AACjC,CAAC,KAAK;AACN,CAAC,MAAM;AACP,CAAC,WAAW;AACZ,CAAC,MAAM,EAAE,QAAQ;AACjB,CAAC,GAAG;AACJ,CAAC,GAAG;AACJ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACn8zBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAA,CAAC,UAAU,IAAI,EAAE,OAAO,EAAE;MAGkB;AAC5C;UACQ,MAAA,CAAA,OAAA,GAAiB,OAAO,EAAE,CAAC;AACnC,OAEK;GACJ,CAACE,cAAI,EAAE,YAAY;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACA,IAAI,MAAM,GAAG,SAAS,GAAG,EAAE,MAAM,EAAE,EAAE,EAAE,KAAK,EAAE;AAC9C;AACA,GAAC,MAAM,GAAG,MAAM,EAAE,EAAE,CAAC;AACrB;GACC,GAAG,OAAO,aAAa,KAAK,UAAU,IAAI,MAAM,CAAC,SAAS,EAAE;AAC7D,IAAE,IAAI,EAAE,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC;IACzB,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC;IACvB,MAAM,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;AAC9D,IAAE,OAAO;IACP;AACF;AACA,GAAC,GAAG,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE;AAC5B;AACA,IAAE,OAAO,IAAI,EAAE,CAAC,MAAM,CAAC;AACvB,KAAG,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;AAC1C,KAAG,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC,UAAU,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;AACvC,KAAG,CAAC,CAAC;AACL,IAAE,MAAM,GAAG,SAAS,CAAC,MAAM,KAAK,CAAC,CAAC;AAClC;AACA,IAAE,GAAG,GAAG,CAAC,WAAW,KAAK,KAAK,CAAC;AAC/B,KAAG,OAAO,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;KAC3B;IACD;AACF;AACA,GAAC,GAAG,OAAO,MAAM,KAAK,UAAU,CAAC;IAC/B,KAAK,GAAG,EAAE,CAAC;IACX,EAAE,GAAG,MAAM,CAAC;IACZ,MAAM,GAAG,EAAE,CAAC;IACZ;AACF;AACA,GAAC,GAAG,OAAO,MAAM,KAAK,QAAQ,CAAC;AAC/B,KAAG,MAAM,GAAG,CAAC,MAAM,CAAC,CAAC;IACnB;AACF;AACA;AACA;AACA,GAAC,GAAG,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,IAAI,OAAO,QAAQ,KAAK,QAAQ,EAAE;IAC3E,GAAG,GAAG,QAAQ,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,WAAW,CAAC;IAC9C,MAAM,GAAG,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,YAAY,WAAW,EAAE;AAClE,IAAE,GAAG,GAAG,GAAG,CAAC,WAAW,CAAC;AACxB,IAAE,MAAM,GAAG,OAAO,GAAG,KAAK,UAAU,EAAE;AACtC;AACA,IAAE,GAAG,GAAG,GAAG,CAAC,QAAQ,EAAE,CAAC;AACvB,IAAE,GAAG,GAAG,CAAC,oBAAoB,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,4GAA4G,CAAC,EAAE,CAAC,CAAC,CAAC;IAC/J;AACF;AACA,GAAC,OAAO,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE,EAAE,KAAK,CAAC,CAAC;AAC5C,GAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACA,EAAA,MAAM,CAAC,OAAO,GAAG,OAAO,CAAC;AACzB,EAAA,MAAM,CAAC,KAAK,GAAG,kBAAkB,CAAC;AAClC;AACA;AACA;AACA;AACA;AACA,EAAA,MAAM,CAAC,KAAK,GAAG,SAAS,CAAC;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACA,IAAI,YAAY,GAAG,CAAC,UAAU;AAC9B,EAAA,IAAI,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CA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AAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,C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MAAM;GACL;GACA;AACD,EAAA,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;AAC7utL,EAAA,cAAc,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CA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AE,CAAC,OAAO,EAAE;EAEjB,KAAK,EAAE,CAAC,OAAO,GAAG;EAElB,KAAK,EAAE,CAAC,OAAO,GAAG;EAElB,KAAK,EAAE,CAAC,OAAO,GAAG;EAElB,KAAK,EAAE,CAAC,OAAO,GAAG;EAElB,KAAK,EAAE,CAAC,OAAO,GAAG;EAElB,KAAK,EAAE,CAAC,OAAO,GAAG;EAElB,KAAK,EAAE,CAAC,OAAO,GAAG;EAElB,KAAK,EAAE,CAAC,OAAO,GAAG;EAElB,KAAK,EAAE,CAAC,OAAO,GAAG;EAElB,KAAK,EAAE,CAAC,OAAO,GAAG;EAElB,KAAK,EAAE,CAAC,OAAO,GAAG;EAElB,KAAK,EAAE,CAAC,OAAO,GAAG;EAElB,KAAK,EAAE,CAAC,OAAO,GAAG;EAElB,KAAK,EAAE,CAAC,OAAO,GAAG;EAElB,KAAK,EAAE,CAAC,OAAO,GAAG;EAElB,KAAK,EAAE,CAAC,OAAO,GAAG;EAElB,KAAK,EAAE,CAAC,OAAO,GAAG;EAElB,KAAK,EAAE,CAAC,OAAO,GAAG;EAElB,KAAK,EAAE,CAAC,OAAO,GAAG;EAElB,KAAK,EAAE,CAAC,OAAO,GAAG;EAElB,KAAK,EAAE,CAAC,OAAO,GAAG;EAElB,KAAK,EAAE,CAAC,OAAO,GAAG;EAElB,KAAK,EAAE,CAAC,OAAO,GAAG;EAElB,KAAK,EAAE,CAAC,OAAO,OAAO;EAEtB,KAAK,EAAE,CAAC,OAAO,GAAG;EAElB,KAAK,EAAE,CAAC,OAAO,GAAG;EAElB,KAAK,EAAE,CAAC,OAAO,GAAG;EAElB,KAAK,EAAE,CAAC,OAAO,GAAG;EAElB,KAAK,EAAE,CAAC,OAAO,GAAG;EAElB,KAAK,EAAE,CAAC,OAAO,GAAG;EAElB,KAAK,EAAE,CAAC,OAAO,GAAG;EAElB,KAAK,EAAE,CAAC,OAAO,GAAG;EAElB,KAAK,EAAE,CAAC,OAAO,GAAG;EAElB,KAAK,EAAE,CAAC,OAAO,GAAG;EAElB,KAAK,EAAE,CAAC,OAAO,GAAG;EAElB,KAAK,EAAE,CAAC,OAAO,GAAG;EAElB,KAAK,EAAE,CAAC,OAAO,GAAG;EAElB,KAAK,EAAE,CAAC,OAAO,GAAG;EAElB,KAAK,EAAE,CAAC,OAAO,QAAQ;EAEvB,KAAK,EAAE,CAAC,OAAO,GAAG;EAElB,KAAK,EAAE,CAAC,OAAO,GAAG;EAElB,KAAK,EAAE,CAAC,OAAO,GAAG;EAElB,KAAK,EAAE,CAAC,OAAO,GAAG;EAElB,KAAK,EAAE,CAAC,OAAO,GAAG;EAElB,KAAK,EAAE,CAAC,OAAO,GAAG;EAElB,KAAK,EAAE,CAAC,OAAO,GAAG;EAElB,KAAK,EAAE,CAAC,OAAO,SAAS;EAExB,KAAK,EAAE,CAAC,OAAO,GAAG;EAElB,KAAK,EAAE,CAAC,OAAO,GAAG;EAElB,KAAK,EAAE,CAAC,OAAO,GAAG;EAElB,KAAK,EAAE,CAAC,OAAO,GAAG;EAElB,KAAK,EAAE,CAAC,OAAO,GAAG;EAElB,KAAK,EAAE,CAAC,OAAO,GAAG;EAElB,KAAK,EAAE,CAAC,OAAO,GAAG;EAElB,KAAK,EAAE,CAAC,OAAO,GAAG;EAElB,KAAK,EAAE,CAAC,OAAO,GAAG;EAElB,KAAK,EAAE,CAAC,OAAO,GAAG;EAElB,KAAK,EAAE,CAAC,OAAO,GAAG;EAElB,KAAK,EAAE,CAAC,OAAO,GAAG;EAElB,KAAK,EAAE,CAAC,OAAO,GAAG;EAElB,KAAK,EAAE,CAAC,OAAO,GAAG;EAElB,KAAK,EAAE,CAAC,OAAO,EAAE;EAEjB,KAAK,GAAG,CAAC,OAAO,GAAG;EAEnB,KAAK,GAAG,CAAC,OAAO,GAAG;EAEnB,KAAK,GAAG,CAAC,OAAO,GAAG;EAEnB,KAAK,GAAG,CAAC,OAAO,EAAE;EAElB,KAAK,GAAG,CAAC,OAAO,GAAG;EAEnB,KAAK,GAAG,CAAC,OAAO,GAAG;EAEnB,KAAK,GAAG,CAAC,OAAO,GAAG;EAEnB,KAAK,GAAG,CAAC,OAAO,GAAG;EAEnB,KAAK,GAAG,CAAC,OAAO,GAAG;EAEnB,KAAK,GAAG,CAAC,OAAO,GAAG;EAEnB,KAAK,GAAG,CAAC,OAAO,GAAG;EAEnB,KAAK,GAAG,CAAC,OAAO,GAAG;EAEnB,KAAK,GAAG,CAAC,OAAO,GAAG;EAEnB,KAAK,GAAG,CAAC,OAAO,GAAG;EAEnB,KAAK,GAAG,CAAC,OAAO,GAAG;EAEnB,KAAK,GAAG,CAAC,OAAO,GAAG;EAEnB,KAAK,GAAG,CAAC,OAAO,GAAG;EAEnB,KAAK,GAAG,CAAC,OAAO,EAAE;EAElB,KAAK,GAAG,CAAC,OAAO,GAAG;EAEnB,KAAK,GAAG,CAAC,OAAO,GAAG;EAEnB,KAAK,GAAG,CAAC,OAAO,GAAG;EAEnB,KAAK,GAAG,CAAC,OAAO,GAAG;EAEnB,KAAK,GAAG,CAAC,OAAO,GAAG;EAEnB,KAAK,GAAG,CAAC,OAAO,GAAG;EAEnB,KAAK,GAAG,CAAC,OAAO,GAAG;EAEnB,KAAK,GAAG,CAAC,OAAO,GAAG;EAEnB,KAAK,GAAG,CAAC,OAAO,GAAG;EAEnB,KAAK,GAAG,CAAC,OAAO,GAAG;EAEnB,KAAK,GAAG,CAAC,OAAO,GAAG;EAEnB,KAAK,GAAG,CAAC,OAAO,GAAG;EAEnB,KAAK,GAAG,CAAC,OAAO,KAAK;EAErB,KAAK,GAAG,CAAC,OAAO,GAAG;EAEnB,KAAK,GAAG,CAAC,OAAO,GAAG;EAEnB,KAAK,GAAG,CAAC,OAAO,GAAG;EAEnB,KAAK,GAAG,CAAC,OAAO,GAAG;EAEnB,KAAK,GAAG,CAAC,OAAO,GAAG;EAEnB,KAAK,GAAG,CAAC,OAAO,GAAG;EAEnB,KAAK,GAAG,CAAC,OAAO,GAAG;EAEnB,KAAK,GAAG,CAAC,OAAO,GAAG;EAEnB,KAAK,GAAG,CAAC,OAAO,GAAG;EAEnB,KAAK,GAAG,CAAC,OAAO,GAAG;EAEnB,KAAK,GAAG,CAAC,OAAO,GAAG;EAEnB,KAAK,GAAG,CAAC,OAAO,GAAG;EAEnB,KAAK,GAAG,CAAC,OAAO,GAAG;EAEnB,KAAK,GAAG,CAAC,OAAO,GAAG;EAEnB,KAAK,GAAG,CAAC,OAAO,GAAG;EAEnB,KAAK,GAAG,CAAC,OAAO,GAAG;EAEnB,KAAK,GAAG,CAAC,OAAO,GAAG;EAEnB,KAAK,GAAG,CAAC,OAAO,GAAG;EAEnB,KAAK,GAAG,CAAC,OAAO,GAAG;EAEnB,KAAK,GAAG,CAAC,OAAO,GAAG;EAEnB,KAAK,GAAG,CAAC,OAAO,GAAG;EAEnB,KAAK,GAAG,CAAC,OAAO,GAAG;EAEnB,KAAK,GAAG,C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;EAElB,KAAK,GAAG,CAAC,OAAO,GAAG;EAEnB,KAAK,GAAG,CAAC,OAAO,GAAG;EAEnB,KAAK,GAAG,CAAC,OAAO,GAAG;EAEnB,KAAK,GAAG,CAAC,OAAO,GAAG;EAEnB,KAAK,GAAG,CAAC,OAAO,GAAG;EAEnB,KAAK,GAAG,CAAC,OAAO,GAAG;EAEnB,KAAK,GAAG,CAAC,OAAO,GAAG;EAEnB,KAAK,GAAG,CAAC,OAAO,GAAG;EAEnB,KAAK,GAAG,CAAC,OAAO,GAAG;EAEnB,KAAK,GAAG,CAAC,OAAO,GAAG;EAEnB,KAAK,GAAG,CAAC,OAAO,GAAG;EAEnB,KAAK,GAAG,CAAC,OAAO,GAAG;EAEnB,KAAK,GAAG,CAAC,OAAO,GAAG;EAEnB,KAAK,GAAG,CAAC,OAAO,GAAG;EAEnB,KAAK,GAAG,CAAC,OAAO,GAAG;EAEnB,KAAK,GAAG,CAAC,OAAO,GAAG;EAEnB,KAAK,GAAG,CAAC,OAAO,GAAG;EAEnB,KAAK,GAAG,CAAC,OAAO,GAAG;EAEnB,KAAK,GAAG,CAAC,OAAO,GAAG;EAEnB,KAAK,GAAG,CAAC,OAAO,GAAG;EAEnB,KAAK,GAAG,CAAC,OAAO,GAAG;EAEnB,KAAK,GAAG,CAAC,OAAO,GAAG;EAEnB,KAAK,GAAG,CAAC,OAAO,GAAG;EAEnB,KAAK,GAAG,CAAC,OAAO,GAAG;EAEnB,KAAK,GAAG,CAAC,OAAO,GAAG;EAEnB,KAAK,GAAG,CAAC,OAAO,EAAE;EAElB,KAAK,GAAG,CAAC,OAAO,EAAE;EAElB,KAAK,GAAG,CAAC,OAAO,GAAG;EAEnB,KAAK,GAAG,CAAC,OAAO,GAAG;EAEnB,KAAK,GAAG,CAAC,OAAO,GAAG;EAEnB,KAAK,GAAG,CAAC,OAAO,GAAG;EAEnB,KAAK,GAAG,CAAC,OAAO,GAAG;EAEnB,KAAK,GAAG,CAAC,OAAO,GAAG;EAEnB,KAAK,GAAG,CAAC,OAAO,GAAG;EAEnB,KAAK,GAAG,CAAC,OAAO,GAAG;EAEnB,KAAK,GAAG,CAAC,OAAO,EAAE;EAElB,KAAK,GAAG,CAAC,OAAO,GAAG;EAEnB,KAAK,GAAG,CAAC,OAAO,GAAG;EAEnB,KAAK,GAAG,CAAC,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AC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CA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","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10]} \ No newline at end of file diff --git a/Sveltekit-Build/src/server/chunks/index-64aa7a5e.js b/Sveltekit-Build/src/server/chunks/index-64aa7a5e.js new file mode 100644 index 0000000..e8e0479 --- /dev/null +++ b/Sveltekit-Build/src/server/chunks/index-64aa7a5e.js @@ -0,0 +1,84 @@ +class HttpError { + /** + * @param {number} status + * @param {{message: string} extends App.Error ? (App.Error | string | undefined) : App.Error} body + */ + constructor(status, body) { + this.status = status; + if (typeof body === "string") { + this.body = { message: body }; + } else if (body) { + this.body = body; + } else { + this.body = { message: `Error: ${status}` }; + } + } + toString() { + return JSON.stringify(this.body); + } +} +class Redirect { + /** + * @param {300 | 301 | 302 | 303 | 304 | 305 | 306 | 307 | 308} status + * @param {string} location + */ + constructor(status, location) { + this.status = status; + this.location = location; + } +} +class ActionFailure { + /** + * @param {number} status + * @param {T} [data] + */ + constructor(status, data) { + this.status = status; + this.data = data; + } +} +function error(status, body) { + if (isNaN(status) || status < 400 || status > 599) { + throw new Error(`HTTP error status codes must be between 400 and 599 — ${status} is invalid`); + } + return new HttpError(status, body); +} +function redirect(status, location) { + if (isNaN(status) || status < 300 || status > 308) { + throw new Error("Invalid status code"); + } + return new Redirect(status, location.toString()); +} +function json(data, init) { + const body = JSON.stringify(data); + const headers = new Headers(init?.headers); + if (!headers.has("content-length")) { + headers.set("content-length", encoder.encode(body).byteLength.toString()); + } + if (!headers.has("content-type")) { + headers.set("content-type", "application/json"); + } + return new Response(body, { + ...init, + headers + }); +} +const encoder = new TextEncoder(); +function text(body, init) { + const headers = new Headers(init?.headers); + if (!headers.has("content-length")) { + const encoded = encoder.encode(body); + headers.set("content-length", encoded.byteLength.toString()); + return new Response(encoded, { + ...init, + headers + }); + } + return new Response(body, { + ...init, + headers + }); +} + +export { ActionFailure as A, HttpError as H, Redirect as R, error as e, json as j, redirect as r, text as t }; +//# sourceMappingURL=index-64aa7a5e.js.map diff --git a/Sveltekit-Build/src/server/chunks/index-64aa7a5e.js.map b/Sveltekit-Build/src/server/chunks/index-64aa7a5e.js.map new file mode 100644 index 0000000..0fb8ff3 --- /dev/null +++ b/Sveltekit-Build/src/server/chunks/index-64aa7a5e.js.map @@ -0,0 +1 @@ +{"version":3,"file":"index-64aa7a5e.js","sources":["../../../../Sveltekit-App/.svelte-kit/adapter-node/chunks/index.js"],"sourcesContent":["class HttpError {\n /**\n * @param {number} status\n * @param {{message: string} extends App.Error ? (App.Error | string | undefined) : App.Error} body\n */\n constructor(status, body) {\n this.status = status;\n if (typeof body === \"string\") {\n this.body = { message: body };\n } else if (body) {\n this.body = body;\n } else {\n this.body = { message: `Error: ${status}` };\n }\n }\n toString() {\n return JSON.stringify(this.body);\n }\n}\nclass Redirect {\n /**\n * @param {300 | 301 | 302 | 303 | 304 | 305 | 306 | 307 | 308} status\n * @param {string} location\n */\n constructor(status, location) {\n this.status = status;\n this.location = location;\n }\n}\nclass ActionFailure {\n /**\n * @param {number} status\n * @param {T} [data]\n */\n constructor(status, data) {\n this.status = status;\n this.data = data;\n }\n}\nfunction error(status, body) {\n if (isNaN(status) || status < 400 || status > 599) {\n throw new Error(`HTTP error status codes must be between 400 and 599 — ${status} is invalid`);\n }\n return new HttpError(status, body);\n}\nfunction redirect(status, location) {\n if (isNaN(status) || status < 300 || status > 308) {\n throw new Error(\"Invalid status code\");\n }\n return new Redirect(status, location.toString());\n}\nfunction json(data, init) {\n const body = JSON.stringify(data);\n const headers = new Headers(init?.headers);\n if (!headers.has(\"content-length\")) {\n headers.set(\"content-length\", encoder.encode(body).byteLength.toString());\n }\n if (!headers.has(\"content-type\")) {\n headers.set(\"content-type\", \"application/json\");\n }\n return new Response(body, {\n ...init,\n headers\n });\n}\nconst encoder = new TextEncoder();\nfunction text(body, init) {\n const headers = new Headers(init?.headers);\n if (!headers.has(\"content-length\")) {\n const encoded = encoder.encode(body);\n headers.set(\"content-length\", encoded.byteLength.toString());\n return new Response(encoded, {\n ...init,\n headers\n });\n }\n return new Response(body, {\n ...init,\n headers\n });\n}\nexport {\n ActionFailure as A,\n HttpError as H,\n Redirect as R,\n error as e,\n json as j,\n redirect as r,\n text as t\n};\n"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/Sveltekit-Build/src/server/chunks/index2-f081c4d4.js b/Sveltekit-Build/src/server/chunks/index2-f081c4d4.js new file mode 100644 index 0000000..5ee6873 --- /dev/null +++ b/Sveltekit-Build/src/server/chunks/index2-f081c4d4.js @@ -0,0 +1,52 @@ +import { n as noop, a as safe_not_equal } from './ssr-3eccf1b3.js'; + +const subscriber_queue = []; +function readable(value, start) { + return { + subscribe: writable(value, start).subscribe + }; +} +function writable(value, start = noop) { + let stop; + const subscribers = /* @__PURE__ */ new Set(); + function set(new_value) { + if (safe_not_equal(value, new_value)) { + value = new_value; + if (stop) { + const run_queue = !subscriber_queue.length; + for (const subscriber of subscribers) { + subscriber[1](); + subscriber_queue.push(subscriber, value); + } + if (run_queue) { + for (let i = 0; i < subscriber_queue.length; i += 2) { + subscriber_queue[i][0](subscriber_queue[i + 1]); + } + subscriber_queue.length = 0; + } + } + } + } + function update(fn) { + set(fn(value)); + } + function subscribe(run, invalidate = noop) { + const subscriber = [run, invalidate]; + subscribers.add(subscriber); + if (subscribers.size === 1) { + stop = start(set, update) || noop; + } + run(value); + return () => { + subscribers.delete(subscriber); + if (subscribers.size === 0 && stop) { + stop(); + stop = null; + } + }; + } + return { set, update, subscribe }; +} + +export { readable as r, writable as w }; +//# sourceMappingURL=index2-f081c4d4.js.map diff --git a/Sveltekit-Build/src/server/chunks/index2-f081c4d4.js.map b/Sveltekit-Build/src/server/chunks/index2-f081c4d4.js.map new file mode 100644 index 0000000..ecc4707 --- /dev/null +++ b/Sveltekit-Build/src/server/chunks/index2-f081c4d4.js.map @@ -0,0 +1 @@ +{"version":3,"file":"index2-f081c4d4.js","sources":["../../../../Sveltekit-App/.svelte-kit/adapter-node/chunks/index2.js"],"sourcesContent":["import { o as noop, p as safe_not_equal } from \"./ssr.js\";\nconst subscriber_queue = [];\nfunction readable(value, start) {\n return {\n subscribe: writable(value, start).subscribe\n };\n}\nfunction writable(value, start = noop) {\n let stop;\n const subscribers = /* @__PURE__ */ new Set();\n function set(new_value) {\n if (safe_not_equal(value, new_value)) {\n value = new_value;\n if (stop) {\n const run_queue = !subscriber_queue.length;\n for (const subscriber of subscribers) {\n subscriber[1]();\n subscriber_queue.push(subscriber, value);\n }\n if (run_queue) {\n for (let i = 0; i < subscriber_queue.length; i += 2) {\n subscriber_queue[i][0](subscriber_queue[i + 1]);\n }\n subscriber_queue.length = 0;\n }\n }\n }\n }\n function update(fn) {\n set(fn(value));\n }\n function subscribe(run, invalidate = noop) {\n const subscriber = [run, invalidate];\n subscribers.add(subscriber);\n if (subscribers.size === 1) {\n stop = start(set, update) || noop;\n }\n run(value);\n return () => {\n subscribers.delete(subscriber);\n if (subscribers.size === 0 && stop) {\n stop();\n stop = null;\n }\n };\n }\n return { set, update, subscribe };\n}\nexport {\n readable as r,\n writable as w\n};\n"],"names":[],"mappings":";;AACA,MAAM,gBAAgB,GAAG,EAAE,CAAC;AAC5B,SAAS,QAAQ,CAAC,KAAK,EAAE,KAAK,EAAE;AAChC,EAAE,OAAO;AACT,IAAI,SAAS,EAAE,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,SAAS;AAC/C,GAAG,CAAC;AACJ,CAAC;AACD,SAAS,QAAQ,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI,EAAE;AACvC,EAAE,IAAI,IAAI,CAAC;AACX,EAAE,MAAM,WAAW,mBAAmB,IAAI,GAAG,EAAE,CAAC;AAChD,EAAE,SAAS,GAAG,CAAC,SAAS,EAAE;AAC1B,IAAI,IAAI,cAAc,CAAC,KAAK,EAAE,SAAS,CAAC,EAAE;AAC1C,MAAM,KAAK,GAAG,SAAS,CAAC;AACxB,MAAM,IAAI,IAAI,EAAE;AAChB,QAAQ,MAAM,SAAS,GAAG,CAAC,gBAAgB,CAAC,MAAM,CAAC;AACnD,QAAQ,KAAK,MAAM,UAAU,IAAI,WAAW,EAAE;AAC9C,UAAU,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC;AAC1B,UAAU,gBAAgB,CAAC,IAAI,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;AACnD,SAAS;AACT,QAAQ,IAAI,SAAS,EAAE;AACvB,UAAU,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,gBAAgB,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE;AAC/D,YAAY,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AAC5D,WAAW;AACX,UAAU,gBAAgB,CAAC,MAAM,GAAG,CAAC,CAAC;AACtC,SAAS;AACT,OAAO;AACP,KAAK;AACL,GAAG;AACH,EAAE,SAAS,MAAM,CAAC,EAAE,EAAE;AACtB,IAAI,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;AACnB,GAAG;AACH,EAAE,SAAS,SAAS,CAAC,GAAG,EAAE,UAAU,GAAG,IAAI,EAAE;AAC7C,IAAI,MAAM,UAAU,GAAG,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC;AACzC,IAAI,WAAW,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;AAChC,IAAI,IAAI,WAAW,CAAC,IAAI,KAAK,CAAC,EAAE;AAChC,MAAM,IAAI,GAAG,KAAK,CAAC,GAAG,EAAE,MAAM,CAAC,IAAI,IAAI,CAAC;AACxC,KAAK;AACL,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC;AACf,IAAI,OAAO,MAAM;AACjB,MAAM,WAAW,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;AACrC,MAAM,IAAI,WAAW,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,EAAE;AAC1C,QAAQ,IAAI,EAAE,CAAC;AACf,QAAQ,IAAI,GAAG,IAAI,CAAC;AACpB,OAAO;AACP,KAAK,CAAC;AACN,GAAG;AACH,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC;AACpC;;;;"} \ No newline at end of file diff --git a/Sveltekit-Build/src/server/chunks/oauth-017ba109.js b/Sveltekit-Build/src/server/chunks/oauth-017ba109.js new file mode 100644 index 0000000..b3459ee --- /dev/null +++ b/Sveltekit-Build/src/server/chunks/oauth-017ba109.js @@ -0,0 +1,25451 @@ +import { g as getDefaultExportFromCjs } from './_commonjsHelpers-2155838d.js'; +import require$$1, { TextEncoder } from 'util'; +import Stream, { Readable } from 'stream'; +import require$$2 from 'path'; +import http from 'http'; +import require$$4 from 'https'; +import Url from 'url'; +import require$$0$1 from 'fs'; +import require$$4$1 from 'assert'; +import require$$1$1 from 'tty'; +import require$$0$2 from 'os'; +import zlib from 'zlib'; +import EventEmitter from 'events'; +import require$$0$3 from 'buffer'; +import require$$2$1 from 'crypto'; +import { r as redirect } from './index-64aa7a5e.js'; + +function bind(fn, thisArg) { + return function wrap() { + return fn.apply(thisArg, arguments); + }; +} + +// utils is a library of generic helper functions non-specific to axios + +const {toString} = Object.prototype; +const {getPrototypeOf} = Object; + +const kindOf = (cache => thing => { + const str = toString.call(thing); + return cache[str] || (cache[str] = str.slice(8, -1).toLowerCase()); +})(Object.create(null)); + +const kindOfTest = (type) => { + type = type.toLowerCase(); + return (thing) => kindOf(thing) === type +}; + +const typeOfTest = type => thing => typeof thing === type; + +/** + * Determine if a value is an Array + * + * @param {Object} val The value to test + * + * @returns {boolean} True if value is an Array, otherwise false + */ +const {isArray} = Array; + +/** + * Determine if a value is undefined + * + * @param {*} val The value to test + * + * @returns {boolean} True if the value is undefined, otherwise false + */ +const isUndefined = typeOfTest('undefined'); + +/** + * Determine if a value is a Buffer + * + * @param {*} val The value to test + * + * @returns {boolean} True if value is a Buffer, otherwise false + */ +function isBuffer(val) { + return val !== null && !isUndefined(val) && val.constructor !== null && !isUndefined(val.constructor) + && isFunction(val.constructor.isBuffer) && val.constructor.isBuffer(val); +} + +/** + * Determine if a value is an ArrayBuffer + * + * @param {*} val The value to test + * + * @returns {boolean} True if value is an ArrayBuffer, otherwise false + */ +const isArrayBuffer = kindOfTest('ArrayBuffer'); + + +/** + * Determine if a value is a view on an ArrayBuffer + * + * @param {*} val The value to test + * + * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false + */ +function isArrayBufferView(val) { + let result; + if ((typeof ArrayBuffer !== 'undefined') && (ArrayBuffer.isView)) { + result = ArrayBuffer.isView(val); + } else { + result = (val) && (val.buffer) && (isArrayBuffer(val.buffer)); + } + return result; +} + +/** + * Determine if a value is a String + * + * @param {*} val The value to test + * + * @returns {boolean} True if value is a String, otherwise false + */ +const isString = typeOfTest('string'); + +/** + * Determine if a value is a Function + * + * @param {*} val The value to test + * @returns {boolean} True if value is a Function, otherwise false + */ +const isFunction = typeOfTest('function'); + +/** + * Determine if a value is a Number + * + * @param {*} val The value to test + * + * @returns {boolean} True if value is a Number, otherwise false + */ +const isNumber = typeOfTest('number'); + +/** + * Determine if a value is an Object + * + * @param {*} thing The value to test + * + * @returns {boolean} True if value is an Object, otherwise false + */ +const isObject = (thing) => thing !== null && typeof thing === 'object'; + +/** + * Determine if a value is a Boolean + * + * @param {*} thing The value to test + * @returns {boolean} True if value is a Boolean, otherwise false + */ +const isBoolean = thing => thing === true || thing === false; + +/** + * Determine if a value is a plain Object + * + * @param {*} val The value to test + * + * @returns {boolean} True if value is a plain Object, otherwise false + */ +const isPlainObject = (val) => { + if (kindOf(val) !== 'object') { + return false; + } + + const prototype = getPrototypeOf(val); + return (prototype === null || prototype === Object.prototype || Object.getPrototypeOf(prototype) === null) && !(Symbol.toStringTag in val) && !(Symbol.iterator in val); +}; + +/** + * Determine if a value is a Date + * + * @param {*} val The value to test + * + * @returns {boolean} True if value is a Date, otherwise false + */ +const isDate = kindOfTest('Date'); + +/** + * Determine if a value is a File + * + * @param {*} val The value to test + * + * @returns {boolean} True if value is a File, otherwise false + */ +const isFile = kindOfTest('File'); + +/** + * Determine if a value is a Blob + * + * @param {*} val The value to test + * + * @returns {boolean} True if value is a Blob, otherwise false + */ +const isBlob = kindOfTest('Blob'); + +/** + * Determine if a value is a FileList + * + * @param {*} val The value to test + * + * @returns {boolean} True if value is a File, otherwise false + */ +const isFileList = kindOfTest('FileList'); + +/** + * Determine if a value is a Stream + * + * @param {*} val The value to test + * + * @returns {boolean} True if value is a Stream, otherwise false + */ +const isStream = (val) => isObject(val) && isFunction(val.pipe); + +/** + * Determine if a value is a FormData + * + * @param {*} thing The value to test + * + * @returns {boolean} True if value is an FormData, otherwise false + */ +const isFormData = (thing) => { + let kind; + return thing && ( + (typeof FormData === 'function' && thing instanceof FormData) || ( + isFunction(thing.append) && ( + (kind = kindOf(thing)) === 'formdata' || + // detect form-data instance + (kind === 'object' && isFunction(thing.toString) && thing.toString() === '[object FormData]') + ) + ) + ) +}; + +/** + * Determine if a value is a URLSearchParams object + * + * @param {*} val The value to test + * + * @returns {boolean} True if value is a URLSearchParams object, otherwise false + */ +const isURLSearchParams = kindOfTest('URLSearchParams'); + +/** + * Trim excess whitespace off the beginning and end of a string + * + * @param {String} str The String to trim + * + * @returns {String} The String freed of excess whitespace + */ +const trim = (str) => str.trim ? + str.trim() : str.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g, ''); + +/** + * Iterate over an Array or an Object invoking a function for each item. + * + * If `obj` is an Array callback will be called passing + * the value, index, and complete array for each item. + * + * If 'obj' is an Object callback will be called passing + * the value, key, and complete object for each property. + * + * @param {Object|Array} obj The object to iterate + * @param {Function} fn The callback to invoke for each item + * + * @param {Boolean} [allOwnKeys = false] + * @returns {any} + */ +function forEach(obj, fn, {allOwnKeys = false} = {}) { + // Don't bother if no value provided + if (obj === null || typeof obj === 'undefined') { + return; + } + + let i; + let l; + + // Force an array if not already something iterable + if (typeof obj !== 'object') { + /*eslint no-param-reassign:0*/ + obj = [obj]; + } + + if (isArray(obj)) { + // Iterate over array values + for (i = 0, l = obj.length; i < l; i++) { + fn.call(null, obj[i], i, obj); + } + } else { + // Iterate over object keys + const keys = allOwnKeys ? Object.getOwnPropertyNames(obj) : Object.keys(obj); + const len = keys.length; + let key; + + for (i = 0; i < len; i++) { + key = keys[i]; + fn.call(null, obj[key], key, obj); + } + } +} + +function findKey(obj, key) { + key = key.toLowerCase(); + const keys = Object.keys(obj); + let i = keys.length; + let _key; + while (i-- > 0) { + _key = keys[i]; + if (key === _key.toLowerCase()) { + return _key; + } + } + return null; +} + +const _global = (() => { + /*eslint no-undef:0*/ + if (typeof globalThis !== "undefined") return globalThis; + return typeof self !== "undefined" ? self : (typeof window !== 'undefined' ? window : global) +})(); + +const isContextDefined = (context) => !isUndefined(context) && context !== _global; + +/** + * Accepts varargs expecting each argument to be an object, then + * immutably merges the properties of each object and returns result. + * + * When multiple objects contain the same key the later object in + * the arguments list will take precedence. + * + * Example: + * + * ```js + * var result = merge({foo: 123}, {foo: 456}); + * console.log(result.foo); // outputs 456 + * ``` + * + * @param {Object} obj1 Object to merge + * + * @returns {Object} Result of all merge properties + */ +function merge(/* obj1, obj2, obj3, ... */) { + const {caseless} = isContextDefined(this) && this || {}; + const result = {}; + const assignValue = (val, key) => { + const targetKey = caseless && findKey(result, key) || key; + if (isPlainObject(result[targetKey]) && isPlainObject(val)) { + result[targetKey] = merge(result[targetKey], val); + } else if (isPlainObject(val)) { + result[targetKey] = merge({}, val); + } else if (isArray(val)) { + result[targetKey] = val.slice(); + } else { + result[targetKey] = val; + } + }; + + for (let i = 0, l = arguments.length; i < l; i++) { + arguments[i] && forEach(arguments[i], assignValue); + } + return result; +} + +/** + * Extends object a by mutably adding to it the properties of object b. + * + * @param {Object} a The object to be extended + * @param {Object} b The object to copy properties from + * @param {Object} thisArg The object to bind function to + * + * @param {Boolean} [allOwnKeys] + * @returns {Object} The resulting value of object a + */ +const extend = (a, b, thisArg, {allOwnKeys}= {}) => { + forEach(b, (val, key) => { + if (thisArg && isFunction(val)) { + a[key] = bind(val, thisArg); + } else { + a[key] = val; + } + }, {allOwnKeys}); + return a; +}; + +/** + * Remove byte order marker. This catches EF BB BF (the UTF-8 BOM) + * + * @param {string} content with BOM + * + * @returns {string} content value without BOM + */ +const stripBOM = (content) => { + if (content.charCodeAt(0) === 0xFEFF) { + content = content.slice(1); + } + return content; +}; + +/** + * Inherit the prototype methods from one constructor into another + * @param {function} constructor + * @param {function} superConstructor + * @param {object} [props] + * @param {object} [descriptors] + * + * @returns {void} + */ +const inherits = (constructor, superConstructor, props, descriptors) => { + constructor.prototype = Object.create(superConstructor.prototype, descriptors); + constructor.prototype.constructor = constructor; + Object.defineProperty(constructor, 'super', { + value: superConstructor.prototype + }); + props && Object.assign(constructor.prototype, props); +}; + +/** + * Resolve object with deep prototype chain to a flat object + * @param {Object} sourceObj source object + * @param {Object} [destObj] + * @param {Function|Boolean} [filter] + * @param {Function} [propFilter] + * + * @returns {Object} + */ +const toFlatObject = (sourceObj, destObj, filter, propFilter) => { + let props; + let i; + let prop; + const merged = {}; + + destObj = destObj || {}; + // eslint-disable-next-line no-eq-null,eqeqeq + if (sourceObj == null) return destObj; + + do { + props = Object.getOwnPropertyNames(sourceObj); + i = props.length; + while (i-- > 0) { + prop = props[i]; + if ((!propFilter || propFilter(prop, sourceObj, destObj)) && !merged[prop]) { + destObj[prop] = sourceObj[prop]; + merged[prop] = true; + } + } + sourceObj = filter !== false && getPrototypeOf(sourceObj); + } while (sourceObj && (!filter || filter(sourceObj, destObj)) && sourceObj !== Object.prototype); + + return destObj; +}; + +/** + * Determines whether a string ends with the characters of a specified string + * + * @param {String} str + * @param {String} searchString + * @param {Number} [position= 0] + * + * @returns {boolean} + */ +const endsWith = (str, searchString, position) => { + str = String(str); + if (position === undefined || position > str.length) { + position = str.length; + } + position -= searchString.length; + const lastIndex = str.indexOf(searchString, position); + return lastIndex !== -1 && lastIndex === position; +}; + + +/** + * Returns new array from array like object or null if failed + * + * @param {*} [thing] + * + * @returns {?Array} + */ +const toArray = (thing) => { + if (!thing) return null; + if (isArray(thing)) return thing; + let i = thing.length; + if (!isNumber(i)) return null; + const arr = new Array(i); + while (i-- > 0) { + arr[i] = thing[i]; + } + return arr; +}; + +/** + * Checking if the Uint8Array exists and if it does, it returns a function that checks if the + * thing passed in is an instance of Uint8Array + * + * @param {TypedArray} + * + * @returns {Array} + */ +// eslint-disable-next-line func-names +const isTypedArray = (TypedArray => { + // eslint-disable-next-line func-names + return thing => { + return TypedArray && thing instanceof TypedArray; + }; +})(typeof Uint8Array !== 'undefined' && getPrototypeOf(Uint8Array)); + +/** + * For each entry in the object, call the function with the key and value. + * + * @param {Object} obj - The object to iterate over. + * @param {Function} fn - The function to call for each entry. + * + * @returns {void} + */ +const forEachEntry = (obj, fn) => { + const generator = obj && obj[Symbol.iterator]; + + const iterator = generator.call(obj); + + let result; + + while ((result = iterator.next()) && !result.done) { + const pair = result.value; + fn.call(obj, pair[0], pair[1]); + } +}; + +/** + * It takes a regular expression and a string, and returns an array of all the matches + * + * @param {string} regExp - The regular expression to match against. + * @param {string} str - The string to search. + * + * @returns {Array} + */ +const matchAll = (regExp, str) => { + let matches; + const arr = []; + + while ((matches = regExp.exec(str)) !== null) { + arr.push(matches); + } + + return arr; +}; + +/* Checking if the kindOfTest function returns true when passed an HTMLFormElement. */ +const isHTMLForm = kindOfTest('HTMLFormElement'); + +const toCamelCase = str => { + return str.toLowerCase().replace(/[-_\s]([a-z\d])(\w*)/g, + function replacer(m, p1, p2) { + return p1.toUpperCase() + p2; + } + ); +}; + +/* Creating a function that will check if an object has a property. */ +const hasOwnProperty = (({hasOwnProperty}) => (obj, prop) => hasOwnProperty.call(obj, prop))(Object.prototype); + +/** + * Determine if a value is a RegExp object + * + * @param {*} val The value to test + * + * @returns {boolean} True if value is a RegExp object, otherwise false + */ +const isRegExp = kindOfTest('RegExp'); + +const reduceDescriptors = (obj, reducer) => { + const descriptors = Object.getOwnPropertyDescriptors(obj); + const reducedDescriptors = {}; + + forEach(descriptors, (descriptor, name) => { + let ret; + if ((ret = reducer(descriptor, name, obj)) !== false) { + reducedDescriptors[name] = ret || descriptor; + } + }); + + Object.defineProperties(obj, reducedDescriptors); +}; + +/** + * Makes all methods read-only + * @param {Object} obj + */ + +const freezeMethods = (obj) => { + reduceDescriptors(obj, (descriptor, name) => { + // skip restricted props in strict mode + if (isFunction(obj) && ['arguments', 'caller', 'callee'].indexOf(name) !== -1) { + return false; + } + + const value = obj[name]; + + if (!isFunction(value)) return; + + descriptor.enumerable = false; + + if ('writable' in descriptor) { + descriptor.writable = false; + return; + } + + if (!descriptor.set) { + descriptor.set = () => { + throw Error('Can not rewrite read-only method \'' + name + '\''); + }; + } + }); +}; + +const toObjectSet = (arrayOrString, delimiter) => { + const obj = {}; + + const define = (arr) => { + arr.forEach(value => { + obj[value] = true; + }); + }; + + isArray(arrayOrString) ? define(arrayOrString) : define(String(arrayOrString).split(delimiter)); + + return obj; +}; + +const noop = () => {}; + +const toFiniteNumber = (value, defaultValue) => { + value = +value; + return Number.isFinite(value) ? value : defaultValue; +}; + +const ALPHA = 'abcdefghijklmnopqrstuvwxyz'; + +const DIGIT = '0123456789'; + +const ALPHABET = { + DIGIT, + ALPHA, + ALPHA_DIGIT: ALPHA + ALPHA.toUpperCase() + DIGIT +}; + +const generateString = (size = 16, alphabet = ALPHABET.ALPHA_DIGIT) => { + let str = ''; + const {length} = alphabet; + while (size--) { + str += alphabet[Math.random() * length|0]; + } + + return str; +}; + +/** + * If the thing is a FormData object, return true, otherwise return false. + * + * @param {unknown} thing - The thing to check. + * + * @returns {boolean} + */ +function isSpecCompliantForm(thing) { + return !!(thing && isFunction(thing.append) && thing[Symbol.toStringTag] === 'FormData' && thing[Symbol.iterator]); +} + +const toJSONObject = (obj) => { + const stack = new Array(10); + + const visit = (source, i) => { + + if (isObject(source)) { + if (stack.indexOf(source) >= 0) { + return; + } + + if(!('toJSON' in source)) { + stack[i] = source; + const target = isArray(source) ? [] : {}; + + forEach(source, (value, key) => { + const reducedValue = visit(value, i + 1); + !isUndefined(reducedValue) && (target[key] = reducedValue); + }); + + stack[i] = undefined; + + return target; + } + } + + return source; + }; + + return visit(obj, 0); +}; + +const isAsyncFn = kindOfTest('AsyncFunction'); + +const isThenable = (thing) => + thing && (isObject(thing) || isFunction(thing)) && isFunction(thing.then) && isFunction(thing.catch); + +var utils$1 = { + isArray, + isArrayBuffer, + isBuffer, + isFormData, + isArrayBufferView, + isString, + isNumber, + isBoolean, + isObject, + isPlainObject, + isUndefined, + isDate, + isFile, + isBlob, + isRegExp, + isFunction, + isStream, + isURLSearchParams, + isTypedArray, + isFileList, + forEach, + merge, + extend, + trim, + stripBOM, + inherits, + toFlatObject, + kindOf, + kindOfTest, + endsWith, + toArray, + forEachEntry, + matchAll, + isHTMLForm, + hasOwnProperty, + hasOwnProp: hasOwnProperty, // an alias to avoid ESLint no-prototype-builtins detection + reduceDescriptors, + freezeMethods, + toObjectSet, + toCamelCase, + noop, + toFiniteNumber, + findKey, + global: _global, + isContextDefined, + ALPHABET, + generateString, + isSpecCompliantForm, + toJSONObject, + isAsyncFn, + isThenable +}; + +/** + * Create an Error with the specified message, config, error code, request and response. + * + * @param {string} message The error message. + * @param {string} [code] The error code (for example, 'ECONNABORTED'). + * @param {Object} [config] The config. + * @param {Object} [request] The request. + * @param {Object} [response] The response. + * + * @returns {Error} The created error. + */ +function AxiosError(message, code, config, request, response) { + Error.call(this); + + if (Error.captureStackTrace) { + Error.captureStackTrace(this, this.constructor); + } else { + this.stack = (new Error()).stack; + } + + this.message = message; + this.name = 'AxiosError'; + code && (this.code = code); + config && (this.config = config); + request && (this.request = request); + response && (this.response = response); +} + +utils$1.inherits(AxiosError, Error, { + toJSON: function toJSON() { + return { + // Standard + message: this.message, + name: this.name, + // Microsoft + description: this.description, + number: this.number, + // Mozilla + fileName: this.fileName, + lineNumber: this.lineNumber, + columnNumber: this.columnNumber, + stack: this.stack, + // Axios + config: utils$1.toJSONObject(this.config), + code: this.code, + status: this.response && this.response.status ? this.response.status : null + }; + } +}); + +const prototype$1 = AxiosError.prototype; +const descriptors = {}; + +[ + 'ERR_BAD_OPTION_VALUE', + 'ERR_BAD_OPTION', + 'ECONNABORTED', + 'ETIMEDOUT', + 'ERR_NETWORK', + 'ERR_FR_TOO_MANY_REDIRECTS', + 'ERR_DEPRECATED', + 'ERR_BAD_RESPONSE', + 'ERR_BAD_REQUEST', + 'ERR_CANCELED', + 'ERR_NOT_SUPPORT', + 'ERR_INVALID_URL' +// eslint-disable-next-line func-names +].forEach(code => { + descriptors[code] = {value: code}; +}); + +Object.defineProperties(AxiosError, descriptors); +Object.defineProperty(prototype$1, 'isAxiosError', {value: true}); + +// eslint-disable-next-line func-names +AxiosError.from = (error, code, config, request, response, customProps) => { + const axiosError = Object.create(prototype$1); + + utils$1.toFlatObject(error, axiosError, function filter(obj) { + return obj !== Error.prototype; + }, prop => { + return prop !== 'isAxiosError'; + }); + + AxiosError.call(axiosError, error.message, code, config, request, response); + + axiosError.cause = error; + + axiosError.name = error.name; + + customProps && Object.assign(axiosError, customProps); + + return axiosError; +}; + +var delayed_stream; +var hasRequiredDelayed_stream; + +function requireDelayed_stream () { + if (hasRequiredDelayed_stream) return delayed_stream; + hasRequiredDelayed_stream = 1; + var Stream$1 = Stream.Stream; + var util = require$$1; + + delayed_stream = DelayedStream; + function DelayedStream() { + this.source = null; + this.dataSize = 0; + this.maxDataSize = 1024 * 1024; + this.pauseStream = true; + + this._maxDataSizeExceeded = false; + this._released = false; + this._bufferedEvents = []; + } + util.inherits(DelayedStream, Stream$1); + + DelayedStream.create = function(source, options) { + var delayedStream = new this(); + + options = options || {}; + for (var option in options) { + delayedStream[option] = options[option]; + } + + delayedStream.source = source; + + var realEmit = source.emit; + source.emit = function() { + delayedStream._handleEmit(arguments); + return realEmit.apply(source, arguments); + }; + + source.on('error', function() {}); + if (delayedStream.pauseStream) { + source.pause(); + } + + return delayedStream; + }; + + Object.defineProperty(DelayedStream.prototype, 'readable', { + configurable: true, + enumerable: true, + get: function() { + return this.source.readable; + } + }); + + DelayedStream.prototype.setEncoding = function() { + return this.source.setEncoding.apply(this.source, arguments); + }; + + DelayedStream.prototype.resume = function() { + if (!this._released) { + this.release(); + } + + this.source.resume(); + }; + + DelayedStream.prototype.pause = function() { + this.source.pause(); + }; + + DelayedStream.prototype.release = function() { + this._released = true; + + this._bufferedEvents.forEach(function(args) { + this.emit.apply(this, args); + }.bind(this)); + this._bufferedEvents = []; + }; + + DelayedStream.prototype.pipe = function() { + var r = Stream$1.prototype.pipe.apply(this, arguments); + this.resume(); + return r; + }; + + DelayedStream.prototype._handleEmit = function(args) { + if (this._released) { + this.emit.apply(this, args); + return; + } + + if (args[0] === 'data') { + this.dataSize += args[1].length; + this._checkIfMaxDataSizeExceeded(); + } + + this._bufferedEvents.push(args); + }; + + DelayedStream.prototype._checkIfMaxDataSizeExceeded = function() { + if (this._maxDataSizeExceeded) { + return; + } + + if (this.dataSize <= this.maxDataSize) { + return; + } + + this._maxDataSizeExceeded = true; + var message = + 'DelayedStream#maxDataSize of ' + this.maxDataSize + ' bytes exceeded.'; + this.emit('error', new Error(message)); + }; + return delayed_stream; +} + +var combined_stream; +var hasRequiredCombined_stream; + +function requireCombined_stream () { + if (hasRequiredCombined_stream) return combined_stream; + hasRequiredCombined_stream = 1; + var util = require$$1; + var Stream$1 = Stream.Stream; + var DelayedStream = requireDelayed_stream(); + + combined_stream = CombinedStream; + function CombinedStream() { + this.writable = false; + this.readable = true; + this.dataSize = 0; + this.maxDataSize = 2 * 1024 * 1024; + this.pauseStreams = true; + + this._released = false; + this._streams = []; + this._currentStream = null; + this._insideLoop = false; + this._pendingNext = false; + } + util.inherits(CombinedStream, Stream$1); + + CombinedStream.create = function(options) { + var combinedStream = new this(); + + options = options || {}; + for (var option in options) { + combinedStream[option] = options[option]; + } + + return combinedStream; + }; + + CombinedStream.isStreamLike = function(stream) { + return (typeof stream !== 'function') + && (typeof stream !== 'string') + && (typeof stream !== 'boolean') + && (typeof stream !== 'number') + && (!Buffer.isBuffer(stream)); + }; + + CombinedStream.prototype.append = function(stream) { + var isStreamLike = CombinedStream.isStreamLike(stream); + + if (isStreamLike) { + if (!(stream instanceof DelayedStream)) { + var newStream = DelayedStream.create(stream, { + maxDataSize: Infinity, + pauseStream: this.pauseStreams, + }); + stream.on('data', this._checkDataSize.bind(this)); + stream = newStream; + } + + this._handleErrors(stream); + + if (this.pauseStreams) { + stream.pause(); + } + } + + this._streams.push(stream); + return this; + }; + + CombinedStream.prototype.pipe = function(dest, options) { + Stream$1.prototype.pipe.call(this, dest, options); + this.resume(); + return dest; + }; + + CombinedStream.prototype._getNext = function() { + this._currentStream = null; + + if (this._insideLoop) { + this._pendingNext = true; + return; // defer call + } + + this._insideLoop = true; + try { + do { + this._pendingNext = false; + this._realGetNext(); + } while (this._pendingNext); + } finally { + this._insideLoop = false; + } + }; + + CombinedStream.prototype._realGetNext = function() { + var stream = this._streams.shift(); + + + if (typeof stream == 'undefined') { + this.end(); + return; + } + + if (typeof stream !== 'function') { + this._pipeNext(stream); + return; + } + + var getStream = stream; + getStream(function(stream) { + var isStreamLike = CombinedStream.isStreamLike(stream); + if (isStreamLike) { + stream.on('data', this._checkDataSize.bind(this)); + this._handleErrors(stream); + } + + this._pipeNext(stream); + }.bind(this)); + }; + + CombinedStream.prototype._pipeNext = function(stream) { + this._currentStream = stream; + + var isStreamLike = CombinedStream.isStreamLike(stream); + if (isStreamLike) { + stream.on('end', this._getNext.bind(this)); + stream.pipe(this, {end: false}); + return; + } + + var value = stream; + this.write(value); + this._getNext(); + }; + + CombinedStream.prototype._handleErrors = function(stream) { + var self = this; + stream.on('error', function(err) { + self._emitError(err); + }); + }; + + CombinedStream.prototype.write = function(data) { + this.emit('data', data); + }; + + CombinedStream.prototype.pause = function() { + if (!this.pauseStreams) { + return; + } + + if(this.pauseStreams && this._currentStream && typeof(this._currentStream.pause) == 'function') this._currentStream.pause(); + this.emit('pause'); + }; + + CombinedStream.prototype.resume = function() { + if (!this._released) { + this._released = true; + this.writable = true; + this._getNext(); + } + + if(this.pauseStreams && this._currentStream && typeof(this._currentStream.resume) == 'function') this._currentStream.resume(); + this.emit('resume'); + }; + + CombinedStream.prototype.end = function() { + this._reset(); + this.emit('end'); + }; + + CombinedStream.prototype.destroy = function() { + this._reset(); + this.emit('close'); + }; + + CombinedStream.prototype._reset = function() { + this.writable = false; + this._streams = []; + this._currentStream = null; + }; + + CombinedStream.prototype._checkDataSize = function() { + this._updateDataSize(); + if (this.dataSize <= this.maxDataSize) { + return; + } + + var message = + 'DelayedStream#maxDataSize of ' + this.maxDataSize + ' bytes exceeded.'; + this._emitError(new Error(message)); + }; + + CombinedStream.prototype._updateDataSize = function() { + this.dataSize = 0; + + var self = this; + this._streams.forEach(function(stream) { + if (!stream.dataSize) { + return; + } + + self.dataSize += stream.dataSize; + }); + + if (this._currentStream && this._currentStream.dataSize) { + this.dataSize += this._currentStream.dataSize; + } + }; + + CombinedStream.prototype._emitError = function(err) { + this._reset(); + this.emit('error', err); + }; + return combined_stream; +} + +var mimeTypes = {}; + +var require$$0 = { + "application/1d-interleaved-parityfec": { + source: "iana" +}, + "application/3gpdash-qoe-report+xml": { + source: "iana", + charset: "UTF-8", + compressible: true +}, + "application/3gpp-ims+xml": { + source: "iana", + compressible: true +}, + "application/3gpphal+json": { + source: "iana", + compressible: true +}, + "application/3gpphalforms+json": { + source: "iana", + compressible: true +}, + "application/a2l": { + source: "iana" +}, + "application/ace+cbor": { + source: "iana" +}, + "application/activemessage": { + source: "iana" +}, + "application/activity+json": { + source: "iana", + compressible: true +}, + "application/alto-costmap+json": { + source: "iana", + compressible: true +}, + "application/alto-costmapfilter+json": { + source: "iana", + compressible: true +}, + "application/alto-directory+json": { + source: "iana", + compressible: true +}, + "application/alto-endpointcost+json": { + source: "iana", + compressible: true +}, + "application/alto-endpointcostparams+json": { + source: "iana", + compressible: true +}, + "application/alto-endpointprop+json": { + source: "iana", + compressible: true +}, + "application/alto-endpointpropparams+json": { + source: "iana", + compressible: true +}, + "application/alto-error+json": { + source: "iana", + compressible: true +}, + "application/alto-networkmap+json": { + source: "iana", + compressible: true +}, + "application/alto-networkmapfilter+json": { + source: "iana", + compressible: true +}, + "application/alto-updatestreamcontrol+json": { + source: "iana", + compressible: true +}, + "application/alto-updatestreamparams+json": { + source: "iana", + compressible: true +}, + "application/aml": { + source: "iana" +}, + "application/andrew-inset": { + source: "iana", + extensions: [ + "ez" + ] +}, + "application/applefile": { + source: "iana" +}, + "application/applixware": { + source: "apache", + extensions: [ + "aw" + ] +}, + "application/at+jwt": { + source: "iana" +}, + "application/atf": { + source: "iana" +}, + "application/atfx": { + source: "iana" +}, + "application/atom+xml": { + source: "iana", + compressible: true, + extensions: [ + "atom" + ] +}, + "application/atomcat+xml": { + source: "iana", + compressible: true, + extensions: [ + "atomcat" + ] +}, + "application/atomdeleted+xml": { + source: "iana", + compressible: true, + extensions: [ + "atomdeleted" + ] +}, + "application/atomicmail": { + source: "iana" +}, + "application/atomsvc+xml": { + source: "iana", + compressible: true, + extensions: [ + "atomsvc" + ] +}, + "application/atsc-dwd+xml": { + source: "iana", + compressible: true, + extensions: [ + "dwd" + ] +}, + "application/atsc-dynamic-event-message": { + source: "iana" +}, + "application/atsc-held+xml": { + source: "iana", + compressible: true, + extensions: [ + "held" + ] +}, + "application/atsc-rdt+json": { + source: "iana", + compressible: true +}, + "application/atsc-rsat+xml": { + source: "iana", + compressible: true, + extensions: [ + "rsat" + ] +}, + "application/atxml": { + source: "iana" +}, + "application/auth-policy+xml": { + source: "iana", + compressible: true +}, + "application/bacnet-xdd+zip": { + source: "iana", + compressible: false +}, + "application/batch-smtp": { + source: "iana" +}, + "application/bdoc": { + compressible: false, + extensions: [ + "bdoc" + ] +}, + "application/beep+xml": { + source: "iana", + charset: "UTF-8", + compressible: true +}, + "application/calendar+json": { + source: "iana", + compressible: true +}, + "application/calendar+xml": { + source: "iana", + compressible: true, + extensions: [ + "xcs" + ] +}, + "application/call-completion": { + source: "iana" +}, + "application/cals-1840": { + source: "iana" +}, + "application/captive+json": { + source: "iana", + compressible: true +}, + "application/cbor": { + source: "iana" +}, + "application/cbor-seq": { + source: "iana" +}, + "application/cccex": { + source: "iana" +}, + "application/ccmp+xml": { + source: "iana", + compressible: true +}, + "application/ccxml+xml": { + source: "iana", + compressible: true, + extensions: [ + "ccxml" + ] +}, + "application/cdfx+xml": { + source: "iana", + compressible: true, + extensions: [ + "cdfx" + ] +}, + "application/cdmi-capability": { + source: "iana", + extensions: [ + "cdmia" + ] +}, + "application/cdmi-container": { + source: "iana", + extensions: [ + "cdmic" + ] +}, + "application/cdmi-domain": { + source: "iana", + extensions: [ + "cdmid" + ] +}, + "application/cdmi-object": { + source: "iana", + extensions: [ + "cdmio" + ] +}, + "application/cdmi-queue": { + source: "iana", + extensions: [ + "cdmiq" + ] +}, + "application/cdni": { + source: "iana" +}, + "application/cea": { + source: "iana" +}, + "application/cea-2018+xml": { + source: "iana", + compressible: true +}, + "application/cellml+xml": { + source: "iana", + compressible: true +}, + "application/cfw": { + source: "iana" +}, + "application/city+json": { + source: "iana", + compressible: true +}, + "application/clr": { + source: "iana" +}, + "application/clue+xml": { + source: "iana", + compressible: true +}, + "application/clue_info+xml": { + source: "iana", + compressible: true +}, + "application/cms": { + source: "iana" +}, + "application/cnrp+xml": { + source: "iana", + compressible: true +}, + "application/coap-group+json": { + source: "iana", + compressible: true +}, + "application/coap-payload": { + source: "iana" +}, + "application/commonground": { + source: "iana" +}, + "application/conference-info+xml": { + source: "iana", + compressible: true +}, + "application/cose": { + source: "iana" +}, + "application/cose-key": { + source: "iana" +}, + "application/cose-key-set": { + source: "iana" +}, + "application/cpl+xml": { + source: "iana", + compressible: true, + extensions: [ + "cpl" + ] +}, + "application/csrattrs": { + source: "iana" +}, + "application/csta+xml": { + source: "iana", + compressible: true +}, + "application/cstadata+xml": { + source: "iana", + compressible: true +}, + "application/csvm+json": { + source: "iana", + compressible: true +}, + "application/cu-seeme": { + source: "apache", + extensions: [ + "cu" + ] +}, + "application/cwt": { + source: "iana" +}, + "application/cybercash": { + source: "iana" +}, + "application/dart": { + compressible: true +}, + "application/dash+xml": { + source: "iana", + compressible: true, + extensions: [ + "mpd" + ] +}, + "application/dash-patch+xml": { + source: "iana", + compressible: true, + extensions: [ + "mpp" + ] +}, + "application/dashdelta": { + source: "iana" +}, + "application/davmount+xml": { + source: "iana", + compressible: true, + extensions: [ + "davmount" + ] +}, + "application/dca-rft": { + source: "iana" +}, + "application/dcd": { + source: "iana" +}, + "application/dec-dx": { + source: "iana" +}, + "application/dialog-info+xml": { + source: "iana", + compressible: true +}, + "application/dicom": { + source: "iana" +}, + "application/dicom+json": { + source: "iana", + compressible: true +}, + "application/dicom+xml": { + source: "iana", + compressible: true +}, + "application/dii": { + source: "iana" +}, + "application/dit": { + source: "iana" +}, + "application/dns": { + source: "iana" +}, + "application/dns+json": { + source: "iana", + compressible: true +}, + "application/dns-message": { + source: "iana" +}, + "application/docbook+xml": { + source: "apache", + compressible: true, + extensions: [ + "dbk" + ] +}, + "application/dots+cbor": { + source: "iana" +}, + "application/dskpp+xml": { + source: "iana", + compressible: true +}, + "application/dssc+der": { + source: "iana", + extensions: [ + "dssc" + ] +}, + "application/dssc+xml": { + source: "iana", + compressible: true, + extensions: [ + "xdssc" + ] +}, + "application/dvcs": { + source: "iana" +}, + "application/ecmascript": { + source: "iana", + compressible: true, + extensions: [ + "es", + "ecma" + ] +}, + "application/edi-consent": { + source: "iana" +}, + "application/edi-x12": { + source: "iana", + compressible: false +}, + "application/edifact": { + source: "iana", + compressible: false +}, + "application/efi": { + source: "iana" +}, + "application/elm+json": { + source: "iana", + charset: "UTF-8", + compressible: true +}, + "application/elm+xml": { + source: "iana", + compressible: true +}, + "application/emergencycalldata.cap+xml": { + source: "iana", + charset: "UTF-8", + compressible: true +}, + "application/emergencycalldata.comment+xml": { + source: "iana", + compressible: true +}, + "application/emergencycalldata.control+xml": { + source: "iana", + compressible: true +}, + "application/emergencycalldata.deviceinfo+xml": { + source: "iana", + compressible: true +}, + "application/emergencycalldata.ecall.msd": { + source: "iana" +}, + "application/emergencycalldata.providerinfo+xml": { + source: "iana", + compressible: true +}, + "application/emergencycalldata.serviceinfo+xml": { + source: "iana", + compressible: true +}, + "application/emergencycalldata.subscriberinfo+xml": { + source: "iana", + compressible: true +}, + "application/emergencycalldata.veds+xml": { + source: "iana", + compressible: true +}, + "application/emma+xml": { + source: "iana", + compressible: true, + extensions: [ + "emma" + ] +}, + "application/emotionml+xml": { + source: "iana", + compressible: true, + extensions: [ + "emotionml" + ] +}, + "application/encaprtp": { + source: "iana" +}, + "application/epp+xml": { + source: "iana", + compressible: true +}, + "application/epub+zip": { + source: "iana", + compressible: false, + extensions: [ + "epub" + ] +}, + "application/eshop": { + source: "iana" +}, + "application/exi": { + source: "iana", + extensions: [ + "exi" + ] +}, + "application/expect-ct-report+json": { + source: "iana", + compressible: true +}, + "application/express": { + source: "iana", + extensions: [ + "exp" + ] +}, + "application/fastinfoset": { + source: "iana" +}, + "application/fastsoap": { + source: "iana" +}, + "application/fdt+xml": { + source: "iana", + compressible: true, + extensions: [ + "fdt" + ] +}, + "application/fhir+json": { + source: "iana", + charset: "UTF-8", + compressible: true +}, + "application/fhir+xml": { + source: "iana", + charset: "UTF-8", + compressible: true +}, + "application/fido.trusted-apps+json": { + compressible: true +}, + "application/fits": { + source: "iana" +}, + "application/flexfec": { + source: "iana" +}, + "application/font-sfnt": { + source: "iana" +}, + "application/font-tdpfr": { + source: "iana", + extensions: [ + "pfr" + ] +}, + "application/font-woff": { + source: "iana", + compressible: false +}, + "application/framework-attributes+xml": { + source: "iana", + compressible: true +}, + "application/geo+json": { + source: "iana", + compressible: true, + extensions: [ + "geojson" + ] +}, + "application/geo+json-seq": { + source: "iana" +}, + "application/geopackage+sqlite3": { + source: "iana" +}, + "application/geoxacml+xml": { + source: "iana", + compressible: true +}, + "application/gltf-buffer": { + source: "iana" +}, + "application/gml+xml": { + source: "iana", + compressible: true, + extensions: [ + "gml" + ] +}, + "application/gpx+xml": { + source: "apache", + compressible: true, + extensions: [ + "gpx" + ] +}, + "application/gxf": { + source: "apache", + extensions: [ + "gxf" + ] +}, + "application/gzip": { + source: "iana", + compressible: false, + extensions: [ + "gz" + ] +}, + "application/h224": { + source: "iana" +}, + "application/held+xml": { + source: "iana", + compressible: true +}, + "application/hjson": { + extensions: [ + "hjson" + ] +}, + "application/http": { + source: "iana" +}, + "application/hyperstudio": { + source: "iana", + extensions: [ + "stk" + ] +}, + "application/ibe-key-request+xml": { + source: "iana", + compressible: true +}, + "application/ibe-pkg-reply+xml": { + source: "iana", + compressible: true +}, + "application/ibe-pp-data": { + source: "iana" +}, + "application/iges": { + source: "iana" +}, + "application/im-iscomposing+xml": { + source: "iana", + charset: "UTF-8", + compressible: true +}, + "application/index": { + source: "iana" +}, + "application/index.cmd": { + source: "iana" +}, + "application/index.obj": { + source: "iana" +}, + "application/index.response": { + source: "iana" +}, + "application/index.vnd": { + source: "iana" +}, + "application/inkml+xml": { + source: "iana", + compressible: true, + extensions: [ + "ink", + "inkml" + ] +}, + "application/iotp": { + source: "iana" +}, + "application/ipfix": { + source: "iana", + extensions: [ + "ipfix" + ] +}, + "application/ipp": { + source: "iana" +}, + "application/isup": { + source: "iana" +}, + "application/its+xml": { + source: "iana", + compressible: true, + extensions: [ + "its" + ] +}, + "application/java-archive": { + source: "apache", + compressible: false, + extensions: [ + "jar", + "war", + "ear" + ] +}, + "application/java-serialized-object": { + source: "apache", + compressible: false, + extensions: [ + "ser" + ] +}, + "application/java-vm": { + source: "apache", + compressible: false, + extensions: [ + "class" + ] +}, + "application/javascript": { + source: "iana", + charset: "UTF-8", + compressible: true, + extensions: [ + "js", + "mjs" + ] +}, + "application/jf2feed+json": { + source: "iana", + compressible: true +}, + "application/jose": { + source: "iana" +}, + "application/jose+json": { + source: "iana", + compressible: true +}, + "application/jrd+json": { + source: "iana", + compressible: true +}, + "application/jscalendar+json": { + source: "iana", + compressible: true +}, + "application/json": { + source: "iana", + charset: "UTF-8", + compressible: true, + extensions: [ + "json", + "map" + ] +}, + "application/json-patch+json": { + source: "iana", + compressible: true +}, + "application/json-seq": { + source: "iana" +}, + "application/json5": { + extensions: [ + "json5" + ] +}, + "application/jsonml+json": { + source: "apache", + compressible: true, + extensions: [ + "jsonml" + ] +}, + "application/jwk+json": { + source: "iana", + compressible: true +}, + "application/jwk-set+json": { + source: "iana", + compressible: true +}, + "application/jwt": { + source: "iana" +}, + "application/kpml-request+xml": { + source: "iana", + compressible: true +}, + "application/kpml-response+xml": { + source: "iana", + compressible: true +}, + "application/ld+json": { + source: "iana", + compressible: true, + extensions: [ + "jsonld" + ] +}, + "application/lgr+xml": { + source: "iana", + compressible: true, + extensions: [ + "lgr" + ] +}, + "application/link-format": { + source: "iana" +}, + "application/load-control+xml": { + source: "iana", + compressible: true +}, + "application/lost+xml": { + source: "iana", + compressible: true, + extensions: [ + "lostxml" + ] +}, + "application/lostsync+xml": { + source: "iana", + compressible: true +}, + "application/lpf+zip": { + source: "iana", + compressible: false +}, + "application/lxf": { + source: "iana" +}, + "application/mac-binhex40": { + source: "iana", + extensions: [ + "hqx" + ] +}, + "application/mac-compactpro": { + source: "apache", + extensions: [ + "cpt" + ] +}, + "application/macwriteii": { + source: "iana" +}, + "application/mads+xml": { + source: "iana", + compressible: true, + extensions: [ + "mads" + ] +}, + "application/manifest+json": { + source: "iana", + charset: "UTF-8", + compressible: true, + extensions: [ + "webmanifest" + ] +}, + "application/marc": { + source: "iana", + extensions: [ + "mrc" + ] +}, + "application/marcxml+xml": { + source: "iana", + compressible: true, + extensions: [ + "mrcx" + ] +}, + "application/mathematica": { + source: "iana", + extensions: [ + "ma", + "nb", + "mb" + ] +}, + "application/mathml+xml": { + source: "iana", + compressible: true, + extensions: [ + "mathml" + ] +}, + "application/mathml-content+xml": { + source: "iana", + compressible: true +}, + "application/mathml-presentation+xml": { + source: "iana", + compressible: true +}, + "application/mbms-associated-procedure-description+xml": { + source: "iana", + compressible: true +}, + "application/mbms-deregister+xml": { + source: "iana", + compressible: true +}, + "application/mbms-envelope+xml": { + source: "iana", + compressible: true +}, + "application/mbms-msk+xml": { + source: "iana", + compressible: true +}, + "application/mbms-msk-response+xml": { + source: "iana", + compressible: true +}, + "application/mbms-protection-description+xml": { + source: "iana", + compressible: true +}, + "application/mbms-reception-report+xml": { + source: "iana", + compressible: true +}, + "application/mbms-register+xml": { + source: "iana", + compressible: true +}, + "application/mbms-register-response+xml": { + source: "iana", + compressible: true +}, + "application/mbms-schedule+xml": { + source: "iana", + compressible: true +}, + "application/mbms-user-service-description+xml": { + source: "iana", + compressible: true +}, + "application/mbox": { + source: "iana", + extensions: [ + "mbox" + ] +}, + "application/media-policy-dataset+xml": { + source: "iana", + compressible: true, + extensions: [ + "mpf" + ] +}, + "application/media_control+xml": { + source: "iana", + compressible: true +}, + "application/mediaservercontrol+xml": { + source: "iana", + compressible: true, + extensions: [ + "mscml" + ] +}, + "application/merge-patch+json": { + source: "iana", + compressible: true +}, + "application/metalink+xml": { + source: "apache", + compressible: true, + extensions: [ + "metalink" + ] +}, + "application/metalink4+xml": { + source: "iana", + compressible: true, + extensions: [ + "meta4" + ] +}, + "application/mets+xml": { + source: "iana", + compressible: true, + extensions: [ + "mets" + ] +}, + "application/mf4": { + source: "iana" +}, + "application/mikey": { + source: "iana" +}, + "application/mipc": { + source: "iana" +}, + "application/missing-blocks+cbor-seq": { + source: "iana" +}, + "application/mmt-aei+xml": { + source: "iana", + compressible: true, + extensions: [ + "maei" + ] +}, + "application/mmt-usd+xml": { + source: "iana", + compressible: true, + extensions: [ + "musd" + ] +}, + "application/mods+xml": { + source: "iana", + compressible: true, + extensions: [ + "mods" + ] +}, + "application/moss-keys": { + source: "iana" +}, + "application/moss-signature": { + source: "iana" +}, + "application/mosskey-data": { + source: "iana" +}, + "application/mosskey-request": { + source: "iana" +}, + "application/mp21": { + source: "iana", + extensions: [ + "m21", + "mp21" + ] +}, + "application/mp4": { + source: "iana", + extensions: [ + "mp4s", + "m4p" + ] +}, + "application/mpeg4-generic": { + source: "iana" +}, + "application/mpeg4-iod": { + source: "iana" +}, + "application/mpeg4-iod-xmt": { + source: "iana" +}, + "application/mrb-consumer+xml": { + source: "iana", + compressible: true +}, + "application/mrb-publish+xml": { + source: "iana", + compressible: true +}, + "application/msc-ivr+xml": { + source: "iana", + charset: "UTF-8", + compressible: true +}, + "application/msc-mixer+xml": { + source: "iana", + charset: "UTF-8", + compressible: true +}, + "application/msword": { + source: "iana", + compressible: false, + extensions: [ + "doc", + "dot" + ] +}, + "application/mud+json": { + source: "iana", + compressible: true +}, + "application/multipart-core": { + source: "iana" +}, + "application/mxf": { + source: "iana", + extensions: [ + "mxf" + ] +}, + "application/n-quads": { + source: "iana", + extensions: [ + "nq" + ] +}, + "application/n-triples": { + source: "iana", + extensions: [ + "nt" + ] +}, + "application/nasdata": { + source: "iana" +}, + "application/news-checkgroups": { + source: "iana", + charset: "US-ASCII" +}, + "application/news-groupinfo": { + source: "iana", + charset: "US-ASCII" +}, + "application/news-transmission": { + source: "iana" +}, + "application/nlsml+xml": { + source: "iana", + compressible: true +}, + "application/node": { + source: "iana", + extensions: [ + "cjs" + ] +}, + "application/nss": { + source: "iana" +}, + "application/oauth-authz-req+jwt": { + source: "iana" +}, + "application/oblivious-dns-message": { + source: "iana" +}, + "application/ocsp-request": { + source: "iana" +}, + "application/ocsp-response": { + source: "iana" +}, + "application/octet-stream": { + source: "iana", + compressible: false, + extensions: [ + "bin", + "dms", + "lrf", + "mar", + "so", + "dist", + "distz", + "pkg", + "bpk", + "dump", + "elc", + "deploy", + "exe", + "dll", + "deb", + "dmg", + "iso", + "img", + "msi", + "msp", + "msm", + "buffer" + ] +}, + "application/oda": { + source: "iana", + extensions: [ + "oda" + ] +}, + "application/odm+xml": { + source: "iana", + compressible: true +}, + "application/odx": { + source: "iana" +}, + "application/oebps-package+xml": { + source: "iana", + compressible: true, + extensions: [ + "opf" + ] +}, + "application/ogg": { + source: "iana", + compressible: false, + extensions: [ + "ogx" + ] +}, + "application/omdoc+xml": { + source: "apache", + compressible: true, + extensions: [ + "omdoc" + ] +}, + "application/onenote": { + source: "apache", + extensions: [ + "onetoc", + "onetoc2", + "onetmp", + "onepkg" + ] +}, + "application/opc-nodeset+xml": { + source: "iana", + compressible: true +}, + "application/oscore": { + source: "iana" +}, + "application/oxps": { + source: "iana", + extensions: [ + "oxps" + ] +}, + "application/p21": { + source: "iana" +}, + "application/p21+zip": { + source: "iana", + compressible: false +}, + "application/p2p-overlay+xml": { + source: "iana", + compressible: true, + extensions: [ + "relo" + ] +}, + "application/parityfec": { + source: "iana" +}, + "application/passport": { + source: "iana" +}, + "application/patch-ops-error+xml": { + source: "iana", + compressible: true, + extensions: [ + "xer" + ] +}, + "application/pdf": { + source: "iana", + compressible: false, + extensions: [ + "pdf" + ] +}, + "application/pdx": { + source: "iana" +}, + "application/pem-certificate-chain": { + source: "iana" +}, + "application/pgp-encrypted": { + source: "iana", + compressible: false, + extensions: [ + "pgp" + ] +}, + "application/pgp-keys": { + source: "iana", + extensions: [ + "asc" + ] +}, + "application/pgp-signature": { + source: "iana", + extensions: [ + "asc", + "sig" + ] +}, + "application/pics-rules": { + source: "apache", + extensions: [ + "prf" + ] +}, + "application/pidf+xml": { + source: "iana", + charset: "UTF-8", + compressible: true +}, + "application/pidf-diff+xml": { + source: "iana", + charset: "UTF-8", + compressible: true +}, + "application/pkcs10": { + source: "iana", + extensions: [ + "p10" + ] +}, + "application/pkcs12": { + source: "iana" +}, + "application/pkcs7-mime": { + source: "iana", + extensions: [ + "p7m", + "p7c" + ] +}, + "application/pkcs7-signature": { + source: "iana", + extensions: [ + "p7s" + ] +}, + "application/pkcs8": { + source: "iana", + extensions: [ + "p8" + ] +}, + "application/pkcs8-encrypted": { + source: "iana" +}, + "application/pkix-attr-cert": { + source: "iana", + extensions: [ + "ac" + ] +}, + "application/pkix-cert": { + source: "iana", + extensions: [ + "cer" + ] +}, + "application/pkix-crl": { + source: "iana", + extensions: [ + "crl" + ] +}, + "application/pkix-pkipath": { + source: "iana", + extensions: [ + "pkipath" + ] +}, + "application/pkixcmp": { + source: "iana", + extensions: [ + "pki" + ] +}, + "application/pls+xml": { + source: "iana", + compressible: true, + extensions: [ + "pls" + ] +}, + "application/poc-settings+xml": { + source: "iana", + charset: "UTF-8", + compressible: true +}, + "application/postscript": { + source: "iana", + compressible: true, + extensions: [ + "ai", + "eps", + "ps" + ] +}, + "application/ppsp-tracker+json": { + source: "iana", + compressible: true +}, + "application/problem+json": { + source: "iana", + compressible: true +}, + "application/problem+xml": { + source: "iana", + compressible: true +}, + "application/provenance+xml": { + source: "iana", + compressible: true, + extensions: [ + "provx" + ] +}, + "application/prs.alvestrand.titrax-sheet": { + source: "iana" +}, + "application/prs.cww": { + source: "iana", + extensions: [ + "cww" + ] +}, + "application/prs.cyn": { + source: "iana", + charset: "7-BIT" +}, + "application/prs.hpub+zip": { + source: "iana", + compressible: false +}, + "application/prs.nprend": { + source: "iana" +}, + "application/prs.plucker": { + source: "iana" +}, + "application/prs.rdf-xml-crypt": { + source: "iana" +}, + "application/prs.xsf+xml": { + source: "iana", + compressible: true +}, + "application/pskc+xml": { + source: "iana", + compressible: true, + extensions: [ + "pskcxml" + ] +}, + "application/pvd+json": { + source: "iana", + compressible: true +}, + "application/qsig": { + source: "iana" +}, + "application/raml+yaml": { + compressible: true, + extensions: [ + "raml" + ] +}, + "application/raptorfec": { + source: "iana" +}, + "application/rdap+json": { + source: "iana", + compressible: true +}, + "application/rdf+xml": { + source: "iana", + compressible: true, + extensions: [ + "rdf", + "owl" + ] +}, + "application/reginfo+xml": { + source: "iana", + compressible: true, + extensions: [ + "rif" + ] +}, + "application/relax-ng-compact-syntax": { + source: "iana", + extensions: [ + "rnc" + ] +}, + "application/remote-printing": { + source: "iana" +}, + "application/reputon+json": { + source: "iana", + compressible: true +}, + "application/resource-lists+xml": { + source: "iana", + compressible: true, + extensions: [ + "rl" + ] +}, + "application/resource-lists-diff+xml": { + source: "iana", + compressible: true, + extensions: [ + "rld" + ] +}, + "application/rfc+xml": { + source: "iana", + compressible: true +}, + "application/riscos": { + source: "iana" +}, + "application/rlmi+xml": { + source: "iana", + compressible: true +}, + "application/rls-services+xml": { + source: "iana", + compressible: true, + extensions: [ + "rs" + ] +}, + "application/route-apd+xml": { + source: "iana", + compressible: true, + extensions: [ + "rapd" + ] +}, + "application/route-s-tsid+xml": { + source: "iana", + compressible: true, + extensions: [ + "sls" + ] +}, + "application/route-usd+xml": { + source: "iana", + compressible: true, + extensions: [ + "rusd" + ] +}, + "application/rpki-ghostbusters": { + source: "iana", + extensions: [ + "gbr" + ] +}, + "application/rpki-manifest": { + source: "iana", + extensions: [ + "mft" + ] +}, + "application/rpki-publication": { + source: "iana" +}, + "application/rpki-roa": { + source: "iana", + extensions: [ + "roa" + ] +}, + "application/rpki-updown": { + source: "iana" +}, + "application/rsd+xml": { + source: "apache", + compressible: true, + extensions: [ + "rsd" + ] +}, + "application/rss+xml": { + source: "apache", + compressible: true, + extensions: [ + "rss" + ] +}, + "application/rtf": { + source: "iana", + compressible: true, + extensions: [ + "rtf" + ] +}, + "application/rtploopback": { + source: "iana" +}, + "application/rtx": { + source: "iana" +}, + "application/samlassertion+xml": { + source: "iana", + compressible: true +}, + "application/samlmetadata+xml": { + source: "iana", + compressible: true +}, + "application/sarif+json": { + source: "iana", + compressible: true +}, + "application/sarif-external-properties+json": { + source: "iana", + compressible: true +}, + "application/sbe": { + source: "iana" +}, + "application/sbml+xml": { + source: "iana", + compressible: true, + extensions: [ + "sbml" + ] +}, + "application/scaip+xml": { + source: "iana", + compressible: true +}, + "application/scim+json": { + source: "iana", + compressible: true +}, + "application/scvp-cv-request": { + source: "iana", + extensions: [ + "scq" + ] +}, + "application/scvp-cv-response": { + source: "iana", + extensions: [ + "scs" + ] +}, + "application/scvp-vp-request": { + source: "iana", + extensions: [ + "spq" + ] +}, + "application/scvp-vp-response": { + source: "iana", + extensions: [ + "spp" + ] +}, + "application/sdp": { + source: "iana", + extensions: [ + "sdp" + ] +}, + "application/secevent+jwt": { + source: "iana" +}, + "application/senml+cbor": { + source: "iana" +}, + "application/senml+json": { + source: "iana", + compressible: true +}, + "application/senml+xml": { + source: "iana", + compressible: true, + extensions: [ + "senmlx" + ] +}, + "application/senml-etch+cbor": { + source: "iana" +}, + "application/senml-etch+json": { + source: "iana", + compressible: true +}, + "application/senml-exi": { + source: "iana" +}, + "application/sensml+cbor": { + source: "iana" +}, + "application/sensml+json": { + source: "iana", + compressible: true +}, + "application/sensml+xml": { + source: "iana", + compressible: true, + extensions: [ + "sensmlx" + ] +}, + "application/sensml-exi": { + source: "iana" +}, + "application/sep+xml": { + source: "iana", + compressible: true +}, + "application/sep-exi": { + source: "iana" +}, + "application/session-info": { + source: "iana" +}, + "application/set-payment": { + source: "iana" +}, + "application/set-payment-initiation": { + source: "iana", + extensions: [ + "setpay" + ] +}, + "application/set-registration": { + source: "iana" +}, + "application/set-registration-initiation": { + source: "iana", + extensions: [ + "setreg" + ] +}, + "application/sgml": { + source: "iana" +}, + "application/sgml-open-catalog": { + source: "iana" +}, + "application/shf+xml": { + source: "iana", + compressible: true, + extensions: [ + "shf" + ] +}, + "application/sieve": { + source: "iana", + extensions: [ + "siv", + "sieve" + ] +}, + "application/simple-filter+xml": { + source: "iana", + compressible: true +}, + "application/simple-message-summary": { + source: "iana" +}, + "application/simplesymbolcontainer": { + source: "iana" +}, + "application/sipc": { + source: "iana" +}, + "application/slate": { + source: "iana" +}, + "application/smil": { + source: "iana" +}, + "application/smil+xml": { + source: "iana", + compressible: true, + extensions: [ + "smi", + "smil" + ] +}, + "application/smpte336m": { + source: "iana" +}, + "application/soap+fastinfoset": { + source: "iana" +}, + "application/soap+xml": { + source: "iana", + compressible: true +}, + "application/sparql-query": { + source: "iana", + extensions: [ + "rq" + ] +}, + "application/sparql-results+xml": { + source: "iana", + compressible: true, + extensions: [ + "srx" + ] +}, + "application/spdx+json": { + source: "iana", + compressible: true +}, + "application/spirits-event+xml": { + source: "iana", + compressible: true +}, + "application/sql": { + source: "iana" +}, + "application/srgs": { + source: "iana", + extensions: [ + "gram" + ] +}, + "application/srgs+xml": { + source: "iana", + compressible: true, + extensions: [ + "grxml" + ] +}, + "application/sru+xml": { + source: "iana", + compressible: true, + extensions: [ + "sru" + ] +}, + "application/ssdl+xml": { + source: "apache", + compressible: true, + extensions: [ + "ssdl" + ] +}, + "application/ssml+xml": { + source: "iana", + compressible: true, + extensions: [ + "ssml" + ] +}, + "application/stix+json": { + source: "iana", + compressible: true +}, + "application/swid+xml": { + source: "iana", + compressible: true, + extensions: [ + "swidtag" + ] +}, + "application/tamp-apex-update": { + source: "iana" +}, + "application/tamp-apex-update-confirm": { + source: "iana" +}, + "application/tamp-community-update": { + source: "iana" +}, + "application/tamp-community-update-confirm": { + source: "iana" +}, + "application/tamp-error": { + source: "iana" +}, + "application/tamp-sequence-adjust": { + source: "iana" +}, + "application/tamp-sequence-adjust-confirm": { + source: "iana" +}, + "application/tamp-status-query": { + source: "iana" +}, + "application/tamp-status-response": { + source: "iana" +}, + "application/tamp-update": { + source: "iana" +}, + "application/tamp-update-confirm": { + source: "iana" +}, + "application/tar": { + compressible: true +}, + "application/taxii+json": { + source: "iana", + compressible: true +}, + "application/td+json": { + source: "iana", + compressible: true +}, + "application/tei+xml": { + source: "iana", + compressible: true, + extensions: [ + "tei", + "teicorpus" + ] +}, + "application/tetra_isi": { + source: "iana" +}, + "application/thraud+xml": { + source: "iana", + compressible: true, + extensions: [ + "tfi" + ] +}, + "application/timestamp-query": { + source: "iana" +}, + "application/timestamp-reply": { + source: "iana" +}, + "application/timestamped-data": { + source: "iana", + extensions: [ + "tsd" + ] +}, + "application/tlsrpt+gzip": { + source: "iana" +}, + "application/tlsrpt+json": { + source: "iana", + compressible: true +}, + "application/tnauthlist": { + source: "iana" +}, + "application/token-introspection+jwt": { + source: "iana" +}, + "application/toml": { + compressible: true, + extensions: [ + "toml" + ] +}, + "application/trickle-ice-sdpfrag": { + source: "iana" +}, + "application/trig": { + source: "iana", + extensions: [ + "trig" + ] +}, + "application/ttml+xml": { + source: "iana", + compressible: true, + extensions: [ + "ttml" + ] +}, + "application/tve-trigger": { + source: "iana" +}, + "application/tzif": { + source: "iana" +}, + "application/tzif-leap": { + source: "iana" +}, + "application/ubjson": { + compressible: false, + extensions: [ + "ubj" + ] +}, + "application/ulpfec": { + source: "iana" +}, + "application/urc-grpsheet+xml": { + source: "iana", + compressible: true +}, + "application/urc-ressheet+xml": { + source: "iana", + compressible: true, + extensions: [ + "rsheet" + ] +}, + "application/urc-targetdesc+xml": { + source: "iana", + compressible: true, + extensions: [ + "td" + ] +}, + "application/urc-uisocketdesc+xml": { + source: "iana", + compressible: true +}, + "application/vcard+json": { + source: "iana", + compressible: true +}, + "application/vcard+xml": { + source: "iana", + compressible: true +}, + "application/vemmi": { + source: "iana" +}, + "application/vividence.scriptfile": { + source: "apache" +}, + "application/vnd.1000minds.decision-model+xml": { + source: "iana", + compressible: true, + extensions: [ + "1km" + ] +}, + "application/vnd.3gpp-prose+xml": { + source: "iana", + compressible: true +}, + "application/vnd.3gpp-prose-pc3ch+xml": { + source: "iana", + compressible: true +}, + "application/vnd.3gpp-v2x-local-service-information": { + source: "iana" +}, + "application/vnd.3gpp.5gnas": { + source: "iana" +}, + "application/vnd.3gpp.access-transfer-events+xml": { + source: "iana", + compressible: true +}, + "application/vnd.3gpp.bsf+xml": { + source: "iana", + compressible: true +}, + "application/vnd.3gpp.gmop+xml": { + source: "iana", + compressible: true +}, + "application/vnd.3gpp.gtpc": { + source: "iana" +}, + "application/vnd.3gpp.interworking-data": { + source: "iana" +}, + "application/vnd.3gpp.lpp": { + source: "iana" +}, + "application/vnd.3gpp.mc-signalling-ear": { + source: "iana" +}, + "application/vnd.3gpp.mcdata-affiliation-command+xml": { + source: "iana", + compressible: true +}, + "application/vnd.3gpp.mcdata-info+xml": { + source: "iana", + compressible: true +}, + "application/vnd.3gpp.mcdata-payload": { + source: "iana" +}, + "application/vnd.3gpp.mcdata-service-config+xml": { + source: "iana", + compressible: true +}, + "application/vnd.3gpp.mcdata-signalling": { + source: "iana" +}, + "application/vnd.3gpp.mcdata-ue-config+xml": { + source: "iana", + compressible: true +}, + "application/vnd.3gpp.mcdata-user-profile+xml": { + source: "iana", + compressible: true +}, + "application/vnd.3gpp.mcptt-affiliation-command+xml": { + source: "iana", + compressible: true +}, + "application/vnd.3gpp.mcptt-floor-request+xml": { + source: "iana", + compressible: true +}, + "application/vnd.3gpp.mcptt-info+xml": { + source: "iana", + compressible: true +}, + "application/vnd.3gpp.mcptt-location-info+xml": { + source: "iana", + compressible: true +}, + "application/vnd.3gpp.mcptt-mbms-usage-info+xml": { + source: "iana", + compressible: true +}, + "application/vnd.3gpp.mcptt-service-config+xml": { + source: "iana", + compressible: true +}, + "application/vnd.3gpp.mcptt-signed+xml": { + source: "iana", + compressible: true +}, + "application/vnd.3gpp.mcptt-ue-config+xml": { + source: "iana", + compressible: true +}, + "application/vnd.3gpp.mcptt-ue-init-config+xml": { + source: "iana", + compressible: true +}, + "application/vnd.3gpp.mcptt-user-profile+xml": { + source: "iana", + compressible: true +}, + "application/vnd.3gpp.mcvideo-affiliation-command+xml": { + source: "iana", + compressible: true +}, + "application/vnd.3gpp.mcvideo-affiliation-info+xml": { + source: "iana", + compressible: true +}, + "application/vnd.3gpp.mcvideo-info+xml": { + source: "iana", + compressible: true +}, + "application/vnd.3gpp.mcvideo-location-info+xml": { + source: "iana", + compressible: true +}, + "application/vnd.3gpp.mcvideo-mbms-usage-info+xml": { + source: "iana", + compressible: true +}, + "application/vnd.3gpp.mcvideo-service-config+xml": { + source: "iana", + compressible: true +}, + "application/vnd.3gpp.mcvideo-transmission-request+xml": { + source: "iana", + compressible: true +}, + "application/vnd.3gpp.mcvideo-ue-config+xml": { + source: "iana", + compressible: true +}, + "application/vnd.3gpp.mcvideo-user-profile+xml": { + source: "iana", + compressible: true +}, + "application/vnd.3gpp.mid-call+xml": { + source: "iana", + compressible: true +}, + "application/vnd.3gpp.ngap": { + source: "iana" +}, + "application/vnd.3gpp.pfcp": { + source: "iana" +}, + "application/vnd.3gpp.pic-bw-large": { + source: "iana", + extensions: [ + "plb" + ] +}, + "application/vnd.3gpp.pic-bw-small": { + source: "iana", + extensions: [ + "psb" + ] +}, + "application/vnd.3gpp.pic-bw-var": { + source: "iana", + extensions: [ + "pvb" + ] +}, + "application/vnd.3gpp.s1ap": { + source: "iana" +}, + "application/vnd.3gpp.sms": { + source: "iana" +}, + "application/vnd.3gpp.sms+xml": { + source: "iana", + compressible: true +}, + "application/vnd.3gpp.srvcc-ext+xml": { + source: "iana", + compressible: true +}, + "application/vnd.3gpp.srvcc-info+xml": { + source: "iana", + compressible: true +}, + "application/vnd.3gpp.state-and-event-info+xml": { + source: "iana", + compressible: true +}, + "application/vnd.3gpp.ussd+xml": { + source: "iana", + compressible: true +}, + "application/vnd.3gpp2.bcmcsinfo+xml": { + source: "iana", + compressible: true +}, + "application/vnd.3gpp2.sms": { + source: "iana" +}, + "application/vnd.3gpp2.tcap": { + source: "iana", + extensions: [ + "tcap" + ] +}, + "application/vnd.3lightssoftware.imagescal": { + source: "iana" +}, + "application/vnd.3m.post-it-notes": { + source: "iana", + extensions: [ + "pwn" + ] +}, + "application/vnd.accpac.simply.aso": { + source: "iana", + extensions: [ + "aso" + ] +}, + "application/vnd.accpac.simply.imp": { + source: "iana", + extensions: [ + "imp" + ] +}, + "application/vnd.acucobol": { + source: "iana", + extensions: [ + "acu" + ] +}, + "application/vnd.acucorp": { + source: "iana", + extensions: [ + "atc", + "acutc" + ] +}, + "application/vnd.adobe.air-application-installer-package+zip": { + source: "apache", + compressible: false, + extensions: [ + "air" + ] +}, + "application/vnd.adobe.flash.movie": { + source: "iana" +}, + "application/vnd.adobe.formscentral.fcdt": { + source: "iana", + extensions: [ + "fcdt" + ] +}, + "application/vnd.adobe.fxp": { + source: "iana", + extensions: [ + "fxp", + "fxpl" + ] +}, + "application/vnd.adobe.partial-upload": { + source: "iana" +}, + "application/vnd.adobe.xdp+xml": { + source: "iana", + compressible: true, + extensions: [ + "xdp" + ] +}, + "application/vnd.adobe.xfdf": { + source: "iana", + extensions: [ + "xfdf" + ] +}, + "application/vnd.aether.imp": { + source: "iana" +}, + "application/vnd.afpc.afplinedata": { + source: "iana" +}, + "application/vnd.afpc.afplinedata-pagedef": { + source: "iana" +}, + "application/vnd.afpc.cmoca-cmresource": { + source: "iana" +}, + "application/vnd.afpc.foca-charset": { + source: "iana" +}, + "application/vnd.afpc.foca-codedfont": { + source: "iana" +}, + "application/vnd.afpc.foca-codepage": { + source: "iana" +}, + "application/vnd.afpc.modca": { + source: "iana" +}, + "application/vnd.afpc.modca-cmtable": { + source: "iana" +}, + "application/vnd.afpc.modca-formdef": { + source: "iana" +}, + "application/vnd.afpc.modca-mediummap": { + source: "iana" +}, + "application/vnd.afpc.modca-objectcontainer": { + source: "iana" +}, + "application/vnd.afpc.modca-overlay": { + source: "iana" +}, + "application/vnd.afpc.modca-pagesegment": { + source: "iana" +}, + "application/vnd.age": { + source: "iana", + extensions: [ + "age" + ] +}, + "application/vnd.ah-barcode": { + source: "iana" +}, + "application/vnd.ahead.space": { + source: "iana", + extensions: [ + "ahead" + ] +}, + "application/vnd.airzip.filesecure.azf": { + source: "iana", + extensions: [ + "azf" + ] +}, + "application/vnd.airzip.filesecure.azs": { + source: "iana", + extensions: [ + "azs" + ] +}, + "application/vnd.amadeus+json": { + source: "iana", + compressible: true +}, + "application/vnd.amazon.ebook": { + source: "apache", + extensions: [ + "azw" + ] +}, + "application/vnd.amazon.mobi8-ebook": { + source: "iana" +}, + "application/vnd.americandynamics.acc": { + source: "iana", + extensions: [ + "acc" + ] +}, + "application/vnd.amiga.ami": { + source: "iana", + extensions: [ + "ami" + ] +}, + "application/vnd.amundsen.maze+xml": { + source: "iana", + compressible: true +}, + "application/vnd.android.ota": { + source: "iana" +}, + "application/vnd.android.package-archive": { + source: "apache", + compressible: false, + extensions: [ + "apk" + ] +}, + "application/vnd.anki": { + source: "iana" +}, + "application/vnd.anser-web-certificate-issue-initiation": { + source: "iana", + extensions: [ + "cii" + ] +}, + "application/vnd.anser-web-funds-transfer-initiation": { + source: "apache", + extensions: [ + "fti" + ] +}, + "application/vnd.antix.game-component": { + source: "iana", + extensions: [ + "atx" + ] +}, + "application/vnd.apache.arrow.file": { + source: "iana" +}, + "application/vnd.apache.arrow.stream": { + source: "iana" +}, + "application/vnd.apache.thrift.binary": { + source: "iana" +}, + "application/vnd.apache.thrift.compact": { + source: "iana" +}, + "application/vnd.apache.thrift.json": { + source: "iana" +}, + "application/vnd.api+json": { + source: "iana", + compressible: true +}, + "application/vnd.aplextor.warrp+json": { + source: "iana", + compressible: true +}, + "application/vnd.apothekende.reservation+json": { + source: "iana", + compressible: true +}, + "application/vnd.apple.installer+xml": { + source: "iana", + compressible: true, + extensions: [ + "mpkg" + ] +}, + "application/vnd.apple.keynote": { + source: "iana", + extensions: [ + "key" + ] +}, + "application/vnd.apple.mpegurl": { + source: "iana", + extensions: [ + "m3u8" + ] +}, + "application/vnd.apple.numbers": { + source: "iana", + extensions: [ + "numbers" + ] +}, + "application/vnd.apple.pages": { + source: "iana", + extensions: [ + "pages" + ] +}, + "application/vnd.apple.pkpass": { + compressible: false, + extensions: [ + "pkpass" + ] +}, + "application/vnd.arastra.swi": { + source: "iana" +}, + "application/vnd.aristanetworks.swi": { + source: "iana", + extensions: [ + "swi" + ] +}, + "application/vnd.artisan+json": { + source: "iana", + compressible: true +}, + "application/vnd.artsquare": { + source: "iana" +}, + "application/vnd.astraea-software.iota": { + source: "iana", + extensions: [ + "iota" + ] +}, + "application/vnd.audiograph": { + source: "iana", + extensions: [ + "aep" + ] +}, + "application/vnd.autopackage": { + source: "iana" +}, + "application/vnd.avalon+json": { + source: "iana", + compressible: true +}, + "application/vnd.avistar+xml": { + source: "iana", + compressible: true +}, + "application/vnd.balsamiq.bmml+xml": { + source: "iana", + compressible: true, + extensions: [ + "bmml" + ] +}, + "application/vnd.balsamiq.bmpr": { + source: "iana" +}, + "application/vnd.banana-accounting": { + source: "iana" +}, + "application/vnd.bbf.usp.error": { + source: "iana" +}, + "application/vnd.bbf.usp.msg": { + source: "iana" +}, + "application/vnd.bbf.usp.msg+json": { + source: "iana", + compressible: true +}, + "application/vnd.bekitzur-stech+json": { + source: "iana", + compressible: true +}, + "application/vnd.bint.med-content": { + source: "iana" +}, + "application/vnd.biopax.rdf+xml": { + source: "iana", + compressible: true +}, + "application/vnd.blink-idb-value-wrapper": { + source: "iana" +}, + "application/vnd.blueice.multipass": { + source: "iana", + extensions: [ + "mpm" + ] +}, + "application/vnd.bluetooth.ep.oob": { + source: "iana" +}, + "application/vnd.bluetooth.le.oob": { + source: "iana" +}, + "application/vnd.bmi": { + source: "iana", + extensions: [ + "bmi" + ] +}, + "application/vnd.bpf": { + source: "iana" +}, + "application/vnd.bpf3": { + source: "iana" +}, + "application/vnd.businessobjects": { + source: "iana", + extensions: [ + "rep" + ] +}, + "application/vnd.byu.uapi+json": { + source: "iana", + compressible: true +}, + "application/vnd.cab-jscript": { + source: "iana" +}, + "application/vnd.canon-cpdl": { + source: "iana" +}, + "application/vnd.canon-lips": { + source: "iana" +}, + "application/vnd.capasystems-pg+json": { + source: "iana", + compressible: true +}, + "application/vnd.cendio.thinlinc.clientconf": { + source: "iana" +}, + "application/vnd.century-systems.tcp_stream": { + source: "iana" +}, + "application/vnd.chemdraw+xml": { + source: "iana", + compressible: true, + extensions: [ + "cdxml" + ] +}, + "application/vnd.chess-pgn": { + source: "iana" +}, + "application/vnd.chipnuts.karaoke-mmd": { + source: "iana", + extensions: [ + "mmd" + ] +}, + "application/vnd.ciedi": { + source: "iana" +}, + "application/vnd.cinderella": { + source: "iana", + extensions: [ + "cdy" + ] +}, + "application/vnd.cirpack.isdn-ext": { + source: "iana" +}, + "application/vnd.citationstyles.style+xml": { + source: "iana", + compressible: true, + extensions: [ + "csl" + ] +}, + "application/vnd.claymore": { + source: "iana", + extensions: [ + "cla" + ] +}, + "application/vnd.cloanto.rp9": { + source: "iana", + extensions: [ + "rp9" + ] +}, + "application/vnd.clonk.c4group": { + source: "iana", + extensions: [ + "c4g", + "c4d", + "c4f", + "c4p", + "c4u" + ] +}, + "application/vnd.cluetrust.cartomobile-config": { + source: "iana", + extensions: [ + "c11amc" + ] +}, + "application/vnd.cluetrust.cartomobile-config-pkg": { + source: "iana", + extensions: [ + "c11amz" + ] +}, + "application/vnd.coffeescript": { + source: "iana" +}, + "application/vnd.collabio.xodocuments.document": { + source: "iana" +}, + "application/vnd.collabio.xodocuments.document-template": { + source: "iana" +}, + "application/vnd.collabio.xodocuments.presentation": { + source: "iana" +}, + "application/vnd.collabio.xodocuments.presentation-template": { + source: "iana" +}, + "application/vnd.collabio.xodocuments.spreadsheet": { + source: "iana" +}, + "application/vnd.collabio.xodocuments.spreadsheet-template": { + source: "iana" +}, + "application/vnd.collection+json": { + source: "iana", + compressible: true +}, + "application/vnd.collection.doc+json": { + source: "iana", + compressible: true +}, + "application/vnd.collection.next+json": { + source: "iana", + compressible: true +}, + "application/vnd.comicbook+zip": { + source: "iana", + compressible: false +}, + "application/vnd.comicbook-rar": { + source: "iana" +}, + "application/vnd.commerce-battelle": { + source: "iana" +}, + "application/vnd.commonspace": { + source: "iana", + extensions: [ + "csp" + ] +}, + "application/vnd.contact.cmsg": { + source: "iana", + extensions: [ + "cdbcmsg" + ] +}, + "application/vnd.coreos.ignition+json": { + source: "iana", + compressible: true +}, + "application/vnd.cosmocaller": { + source: "iana", + extensions: [ + "cmc" + ] +}, + "application/vnd.crick.clicker": { + source: "iana", + extensions: [ + "clkx" + ] +}, + "application/vnd.crick.clicker.keyboard": { + source: "iana", + extensions: [ + "clkk" + ] +}, + "application/vnd.crick.clicker.palette": { + source: "iana", + extensions: [ + "clkp" + ] +}, + "application/vnd.crick.clicker.template": { + source: "iana", + extensions: [ + "clkt" + ] +}, + "application/vnd.crick.clicker.wordbank": { + source: "iana", + extensions: [ + "clkw" + ] +}, + "application/vnd.criticaltools.wbs+xml": { + source: "iana", + compressible: true, + extensions: [ + "wbs" + ] +}, + "application/vnd.cryptii.pipe+json": { + source: "iana", + compressible: true +}, + "application/vnd.crypto-shade-file": { + source: "iana" +}, + "application/vnd.cryptomator.encrypted": { + source: "iana" +}, + "application/vnd.cryptomator.vault": { + source: "iana" +}, + "application/vnd.ctc-posml": { + source: "iana", + extensions: [ + "pml" + ] +}, + "application/vnd.ctct.ws+xml": { + source: "iana", + compressible: true +}, + "application/vnd.cups-pdf": { + source: "iana" +}, + "application/vnd.cups-postscript": { + source: "iana" +}, + "application/vnd.cups-ppd": { + source: "iana", + extensions: [ + "ppd" + ] +}, + "application/vnd.cups-raster": { + source: "iana" +}, + "application/vnd.cups-raw": { + source: "iana" +}, + "application/vnd.curl": { + source: "iana" +}, + "application/vnd.curl.car": { + source: "apache", + extensions: [ + "car" + ] +}, + "application/vnd.curl.pcurl": { + source: "apache", + extensions: [ + "pcurl" + ] +}, + "application/vnd.cyan.dean.root+xml": { + source: "iana", + compressible: true +}, + "application/vnd.cybank": { + source: "iana" +}, + "application/vnd.cyclonedx+json": { + source: "iana", + compressible: true +}, + "application/vnd.cyclonedx+xml": { + source: "iana", + compressible: true +}, + "application/vnd.d2l.coursepackage1p0+zip": { + source: "iana", + compressible: false +}, + "application/vnd.d3m-dataset": { + source: "iana" +}, + "application/vnd.d3m-problem": { + source: "iana" +}, + "application/vnd.dart": { + source: "iana", + compressible: true, + extensions: [ + "dart" + ] +}, + "application/vnd.data-vision.rdz": { + source: "iana", + extensions: [ + "rdz" + ] +}, + "application/vnd.datapackage+json": { + source: "iana", + compressible: true +}, + "application/vnd.dataresource+json": { + source: "iana", + compressible: true +}, + "application/vnd.dbf": { + source: "iana", + extensions: [ + "dbf" + ] +}, + "application/vnd.debian.binary-package": { + source: "iana" +}, + "application/vnd.dece.data": { + source: "iana", + extensions: [ + "uvf", + "uvvf", + "uvd", + "uvvd" + ] +}, + "application/vnd.dece.ttml+xml": { + source: "iana", + compressible: true, + extensions: [ + "uvt", + "uvvt" + ] +}, + "application/vnd.dece.unspecified": { + source: "iana", + extensions: [ + "uvx", + "uvvx" + ] +}, + "application/vnd.dece.zip": { + source: "iana", + extensions: [ + "uvz", + "uvvz" + ] +}, + "application/vnd.denovo.fcselayout-link": { + source: "iana", + extensions: [ + "fe_launch" + ] +}, + "application/vnd.desmume.movie": { + source: "iana" +}, + "application/vnd.dir-bi.plate-dl-nosuffix": { + source: "iana" +}, + "application/vnd.dm.delegation+xml": { + source: "iana", + compressible: true +}, + "application/vnd.dna": { + source: "iana", + extensions: [ + "dna" + ] +}, + "application/vnd.document+json": { + source: "iana", + compressible: true +}, + "application/vnd.dolby.mlp": { + source: "apache", + extensions: [ + "mlp" + ] +}, + "application/vnd.dolby.mobile.1": { + source: "iana" +}, + "application/vnd.dolby.mobile.2": { + source: "iana" +}, + "application/vnd.doremir.scorecloud-binary-document": { + source: "iana" +}, + "application/vnd.dpgraph": { + source: "iana", + extensions: [ + "dpg" + ] +}, + "application/vnd.dreamfactory": { + source: "iana", + extensions: [ + "dfac" + ] +}, + "application/vnd.drive+json": { + source: "iana", + compressible: true +}, + "application/vnd.ds-keypoint": { + source: "apache", + extensions: [ + "kpxx" + ] +}, + "application/vnd.dtg.local": { + source: "iana" +}, + "application/vnd.dtg.local.flash": { + source: "iana" +}, + "application/vnd.dtg.local.html": { + source: "iana" +}, + "application/vnd.dvb.ait": { + source: "iana", + extensions: [ + "ait" + ] +}, + "application/vnd.dvb.dvbisl+xml": { + source: "iana", + compressible: true +}, + "application/vnd.dvb.dvbj": { + source: "iana" +}, + "application/vnd.dvb.esgcontainer": { + source: "iana" +}, + "application/vnd.dvb.ipdcdftnotifaccess": { + source: "iana" +}, + "application/vnd.dvb.ipdcesgaccess": { + source: "iana" +}, + "application/vnd.dvb.ipdcesgaccess2": { + source: "iana" +}, + "application/vnd.dvb.ipdcesgpdd": { + source: "iana" +}, + "application/vnd.dvb.ipdcroaming": { + source: "iana" +}, + "application/vnd.dvb.iptv.alfec-base": { + source: "iana" +}, + "application/vnd.dvb.iptv.alfec-enhancement": { + source: "iana" +}, + "application/vnd.dvb.notif-aggregate-root+xml": { + source: "iana", + compressible: true +}, + "application/vnd.dvb.notif-container+xml": { + source: "iana", + compressible: true +}, + "application/vnd.dvb.notif-generic+xml": { + source: "iana", + compressible: true +}, + "application/vnd.dvb.notif-ia-msglist+xml": { + source: "iana", + compressible: true +}, + "application/vnd.dvb.notif-ia-registration-request+xml": { + source: "iana", + compressible: true +}, + "application/vnd.dvb.notif-ia-registration-response+xml": { + source: "iana", + compressible: true +}, + "application/vnd.dvb.notif-init+xml": { + source: "iana", + compressible: true +}, + "application/vnd.dvb.pfr": { + source: "iana" +}, + "application/vnd.dvb.service": { + source: "iana", + extensions: [ + "svc" + ] +}, + "application/vnd.dxr": { + source: "iana" +}, + "application/vnd.dynageo": { + source: "iana", + extensions: [ + "geo" + ] +}, + "application/vnd.dzr": { + source: "iana" +}, + "application/vnd.easykaraoke.cdgdownload": { + source: "iana" +}, + "application/vnd.ecdis-update": { + source: "iana" +}, + "application/vnd.ecip.rlp": { + source: "iana" +}, + "application/vnd.eclipse.ditto+json": { + source: "iana", + compressible: true +}, + "application/vnd.ecowin.chart": { + source: "iana", + extensions: [ + "mag" + ] +}, + "application/vnd.ecowin.filerequest": { + source: "iana" +}, + "application/vnd.ecowin.fileupdate": { + source: "iana" +}, + "application/vnd.ecowin.series": { + source: "iana" +}, + "application/vnd.ecowin.seriesrequest": { + source: "iana" +}, + "application/vnd.ecowin.seriesupdate": { + source: "iana" +}, + "application/vnd.efi.img": { + source: "iana" +}, + "application/vnd.efi.iso": { + source: "iana" +}, + "application/vnd.emclient.accessrequest+xml": { + source: "iana", + compressible: true +}, + "application/vnd.enliven": { + source: "iana", + extensions: [ + "nml" + ] +}, + "application/vnd.enphase.envoy": { + source: "iana" +}, + "application/vnd.eprints.data+xml": { + source: "iana", + compressible: true +}, + "application/vnd.epson.esf": { + source: "iana", + extensions: [ + "esf" + ] +}, + "application/vnd.epson.msf": { + source: "iana", + extensions: [ + "msf" + ] +}, + "application/vnd.epson.quickanime": { + source: "iana", + extensions: [ + "qam" + ] +}, + "application/vnd.epson.salt": { + source: "iana", + extensions: [ + "slt" + ] +}, + "application/vnd.epson.ssf": { + source: "iana", + extensions: [ + "ssf" + ] +}, + "application/vnd.ericsson.quickcall": { + source: "iana" +}, + "application/vnd.espass-espass+zip": { + source: "iana", + compressible: false +}, + "application/vnd.eszigno3+xml": { + source: "iana", + compressible: true, + extensions: [ + "es3", + "et3" + ] +}, + "application/vnd.etsi.aoc+xml": { + source: "iana", + compressible: true +}, + "application/vnd.etsi.asic-e+zip": { + source: "iana", + compressible: false +}, + "application/vnd.etsi.asic-s+zip": { + source: "iana", + compressible: false +}, + "application/vnd.etsi.cug+xml": { + source: "iana", + compressible: true +}, + "application/vnd.etsi.iptvcommand+xml": { + source: "iana", + compressible: true +}, + "application/vnd.etsi.iptvdiscovery+xml": { + source: "iana", + compressible: true +}, + "application/vnd.etsi.iptvprofile+xml": { + source: "iana", + compressible: true +}, + "application/vnd.etsi.iptvsad-bc+xml": { + source: "iana", + compressible: true +}, + "application/vnd.etsi.iptvsad-cod+xml": { + source: "iana", + compressible: true +}, + "application/vnd.etsi.iptvsad-npvr+xml": { + source: "iana", + compressible: true +}, + "application/vnd.etsi.iptvservice+xml": { + source: "iana", + compressible: true +}, + "application/vnd.etsi.iptvsync+xml": { + source: "iana", + compressible: true +}, + "application/vnd.etsi.iptvueprofile+xml": { + source: "iana", + compressible: true +}, + "application/vnd.etsi.mcid+xml": { + source: "iana", + compressible: true +}, + "application/vnd.etsi.mheg5": { + source: "iana" +}, + "application/vnd.etsi.overload-control-policy-dataset+xml": { + source: "iana", + compressible: true +}, + "application/vnd.etsi.pstn+xml": { + source: "iana", + compressible: true +}, + "application/vnd.etsi.sci+xml": { + source: "iana", + compressible: true +}, + "application/vnd.etsi.simservs+xml": { + source: "iana", + compressible: true +}, + "application/vnd.etsi.timestamp-token": { + source: "iana" +}, + "application/vnd.etsi.tsl+xml": { + source: "iana", + compressible: true +}, + "application/vnd.etsi.tsl.der": { + source: "iana" +}, + "application/vnd.eu.kasparian.car+json": { + source: "iana", + compressible: true +}, + "application/vnd.eudora.data": { + source: "iana" +}, + "application/vnd.evolv.ecig.profile": { + source: "iana" +}, + "application/vnd.evolv.ecig.settings": { + source: "iana" +}, + "application/vnd.evolv.ecig.theme": { + source: "iana" +}, + "application/vnd.exstream-empower+zip": { + source: "iana", + compressible: false +}, + "application/vnd.exstream-package": { + source: "iana" +}, + "application/vnd.ezpix-album": { + source: "iana", + extensions: [ + "ez2" + ] +}, + "application/vnd.ezpix-package": { + source: "iana", + extensions: [ + "ez3" + ] +}, + "application/vnd.f-secure.mobile": { + source: "iana" +}, + "application/vnd.familysearch.gedcom+zip": { + source: "iana", + compressible: false +}, + "application/vnd.fastcopy-disk-image": { + source: "iana" +}, + "application/vnd.fdf": { + source: "iana", + extensions: [ + "fdf" + ] +}, + "application/vnd.fdsn.mseed": { + source: "iana", + extensions: [ + "mseed" + ] +}, + "application/vnd.fdsn.seed": { + source: "iana", + extensions: [ + "seed", + "dataless" + ] +}, + "application/vnd.ffsns": { + source: "iana" +}, + "application/vnd.ficlab.flb+zip": { + source: "iana", + compressible: false +}, + "application/vnd.filmit.zfc": { + source: "iana" +}, + "application/vnd.fints": { + source: "iana" +}, + "application/vnd.firemonkeys.cloudcell": { + source: "iana" +}, + "application/vnd.flographit": { + source: "iana", + extensions: [ + "gph" + ] +}, + "application/vnd.fluxtime.clip": { + source: "iana", + extensions: [ + "ftc" + ] +}, + "application/vnd.font-fontforge-sfd": { + source: "iana" +}, + "application/vnd.framemaker": { + source: "iana", + extensions: [ + "fm", + "frame", + "maker", + "book" + ] +}, + "application/vnd.frogans.fnc": { + source: "iana", + extensions: [ + "fnc" + ] +}, + "application/vnd.frogans.ltf": { + source: "iana", + extensions: [ + "ltf" + ] +}, + "application/vnd.fsc.weblaunch": { + source: "iana", + extensions: [ + "fsc" + ] +}, + "application/vnd.fujifilm.fb.docuworks": { + source: "iana" +}, + "application/vnd.fujifilm.fb.docuworks.binder": { + source: "iana" +}, + "application/vnd.fujifilm.fb.docuworks.container": { + source: "iana" +}, + "application/vnd.fujifilm.fb.jfi+xml": { + source: "iana", + compressible: true +}, + "application/vnd.fujitsu.oasys": { + source: "iana", + extensions: [ + "oas" + ] +}, + "application/vnd.fujitsu.oasys2": { + source: "iana", + extensions: [ + "oa2" + ] +}, + "application/vnd.fujitsu.oasys3": { + source: "iana", + extensions: [ + "oa3" + ] +}, + "application/vnd.fujitsu.oasysgp": { + source: "iana", + extensions: [ + "fg5" + ] +}, + "application/vnd.fujitsu.oasysprs": { + source: "iana", + extensions: [ + "bh2" + ] +}, + "application/vnd.fujixerox.art-ex": { + source: "iana" +}, + "application/vnd.fujixerox.art4": { + source: "iana" +}, + "application/vnd.fujixerox.ddd": { + source: "iana", + extensions: [ + "ddd" + ] +}, + "application/vnd.fujixerox.docuworks": { + source: "iana", + extensions: [ + "xdw" + ] +}, + "application/vnd.fujixerox.docuworks.binder": { + source: "iana", + extensions: [ + "xbd" + ] +}, + "application/vnd.fujixerox.docuworks.container": { + source: "iana" +}, + "application/vnd.fujixerox.hbpl": { + source: "iana" +}, + "application/vnd.fut-misnet": { + source: "iana" +}, + "application/vnd.futoin+cbor": { + source: "iana" +}, + "application/vnd.futoin+json": { + source: "iana", + compressible: true +}, + "application/vnd.fuzzysheet": { + source: "iana", + extensions: [ + "fzs" + ] +}, + "application/vnd.genomatix.tuxedo": { + source: "iana", + extensions: [ + "txd" + ] +}, + "application/vnd.gentics.grd+json": { + source: "iana", + compressible: true +}, + "application/vnd.geo+json": { + source: "iana", + compressible: true +}, + "application/vnd.geocube+xml": { + source: "iana", + compressible: true +}, + "application/vnd.geogebra.file": { + source: "iana", + extensions: [ + "ggb" + ] +}, + "application/vnd.geogebra.slides": { + source: "iana" +}, + "application/vnd.geogebra.tool": { + source: "iana", + extensions: [ + "ggt" + ] +}, + "application/vnd.geometry-explorer": { + source: "iana", + extensions: [ + "gex", + "gre" + ] +}, + "application/vnd.geonext": { + source: "iana", + extensions: [ + "gxt" + ] +}, + "application/vnd.geoplan": { + source: "iana", + extensions: [ + "g2w" + ] +}, + "application/vnd.geospace": { + source: "iana", + extensions: [ + "g3w" + ] +}, + "application/vnd.gerber": { + source: "iana" +}, + "application/vnd.globalplatform.card-content-mgt": { + source: "iana" +}, + "application/vnd.globalplatform.card-content-mgt-response": { + source: "iana" +}, + "application/vnd.gmx": { + source: "iana", + extensions: [ + "gmx" + ] +}, + "application/vnd.google-apps.document": { + compressible: false, + extensions: [ + "gdoc" + ] +}, + "application/vnd.google-apps.presentation": { + compressible: false, + extensions: [ + "gslides" + ] +}, + "application/vnd.google-apps.spreadsheet": { + compressible: false, + extensions: [ + "gsheet" + ] +}, + "application/vnd.google-earth.kml+xml": { + source: "iana", + compressible: true, + extensions: [ + "kml" + ] +}, + "application/vnd.google-earth.kmz": { + source: "iana", + compressible: false, + extensions: [ + "kmz" + ] +}, + "application/vnd.gov.sk.e-form+xml": { + source: "iana", + compressible: true +}, + "application/vnd.gov.sk.e-form+zip": { + source: "iana", + compressible: false +}, + "application/vnd.gov.sk.xmldatacontainer+xml": { + source: "iana", + compressible: true +}, + "application/vnd.grafeq": { + source: "iana", + extensions: [ + "gqf", + "gqs" + ] +}, + "application/vnd.gridmp": { + source: "iana" +}, + "application/vnd.groove-account": { + source: "iana", + extensions: [ + "gac" + ] +}, + "application/vnd.groove-help": { + source: "iana", + extensions: [ + "ghf" + ] +}, + "application/vnd.groove-identity-message": { + source: "iana", + extensions: [ + "gim" + ] +}, + "application/vnd.groove-injector": { + source: "iana", + extensions: [ + "grv" + ] +}, + "application/vnd.groove-tool-message": { + source: "iana", + extensions: [ + "gtm" + ] +}, + "application/vnd.groove-tool-template": { + source: "iana", + extensions: [ + "tpl" + ] +}, + "application/vnd.groove-vcard": { + source: "iana", + extensions: [ + "vcg" + ] +}, + "application/vnd.hal+json": { + source: "iana", + compressible: true +}, + "application/vnd.hal+xml": { + source: "iana", + compressible: true, + extensions: [ + "hal" + ] +}, + "application/vnd.handheld-entertainment+xml": { + source: "iana", + compressible: true, + extensions: [ + "zmm" + ] +}, + "application/vnd.hbci": { + source: "iana", + extensions: [ + "hbci" + ] +}, + "application/vnd.hc+json": { + source: "iana", + compressible: true +}, + "application/vnd.hcl-bireports": { + source: "iana" +}, + "application/vnd.hdt": { + source: "iana" +}, + "application/vnd.heroku+json": { + source: "iana", + compressible: true +}, + "application/vnd.hhe.lesson-player": { + source: "iana", + extensions: [ + "les" + ] +}, + "application/vnd.hl7cda+xml": { + source: "iana", + charset: "UTF-8", + compressible: true +}, + "application/vnd.hl7v2+xml": { + source: "iana", + charset: "UTF-8", + compressible: true +}, + "application/vnd.hp-hpgl": { + source: "iana", + extensions: [ + "hpgl" + ] +}, + "application/vnd.hp-hpid": { + source: "iana", + extensions: [ + "hpid" + ] +}, + "application/vnd.hp-hps": { + source: "iana", + extensions: [ + "hps" + ] +}, + "application/vnd.hp-jlyt": { + source: "iana", + extensions: [ + "jlt" + ] +}, + "application/vnd.hp-pcl": { + source: "iana", + extensions: [ + "pcl" + ] +}, + "application/vnd.hp-pclxl": { + source: "iana", + extensions: [ + "pclxl" + ] +}, + "application/vnd.httphone": { + source: "iana" +}, + "application/vnd.hydrostatix.sof-data": { + source: "iana", + extensions: [ + "sfd-hdstx" + ] +}, + "application/vnd.hyper+json": { + source: "iana", + compressible: true +}, + "application/vnd.hyper-item+json": { + source: "iana", + compressible: true +}, + "application/vnd.hyperdrive+json": { + source: "iana", + compressible: true +}, + "application/vnd.hzn-3d-crossword": { + source: "iana" +}, + "application/vnd.ibm.afplinedata": { + source: "iana" +}, + "application/vnd.ibm.electronic-media": { + source: "iana" +}, + "application/vnd.ibm.minipay": { + source: "iana", + extensions: [ + "mpy" + ] +}, + "application/vnd.ibm.modcap": { + source: "iana", + extensions: [ + "afp", + "listafp", + "list3820" + ] +}, + "application/vnd.ibm.rights-management": { + source: "iana", + extensions: [ + "irm" + ] +}, + "application/vnd.ibm.secure-container": { + source: "iana", + extensions: [ + "sc" + ] +}, + "application/vnd.iccprofile": { + source: "iana", + extensions: [ + "icc", + "icm" + ] +}, + "application/vnd.ieee.1905": { + source: "iana" +}, + "application/vnd.igloader": { + source: "iana", + extensions: [ + "igl" + ] +}, + "application/vnd.imagemeter.folder+zip": { + source: "iana", + compressible: false +}, + "application/vnd.imagemeter.image+zip": { + source: "iana", + compressible: false +}, + "application/vnd.immervision-ivp": { + source: "iana", + extensions: [ + "ivp" + ] +}, + "application/vnd.immervision-ivu": { + source: "iana", + extensions: [ + "ivu" + ] +}, + "application/vnd.ims.imsccv1p1": { + source: "iana" +}, + "application/vnd.ims.imsccv1p2": { + source: "iana" +}, + "application/vnd.ims.imsccv1p3": { + source: "iana" +}, + "application/vnd.ims.lis.v2.result+json": { + source: "iana", + compressible: true +}, + "application/vnd.ims.lti.v2.toolconsumerprofile+json": { + source: "iana", + compressible: true +}, + "application/vnd.ims.lti.v2.toolproxy+json": { + source: "iana", + compressible: true +}, + "application/vnd.ims.lti.v2.toolproxy.id+json": { + source: "iana", + compressible: true +}, + "application/vnd.ims.lti.v2.toolsettings+json": { + source: "iana", + compressible: true +}, + "application/vnd.ims.lti.v2.toolsettings.simple+json": { + source: "iana", + compressible: true +}, + "application/vnd.informedcontrol.rms+xml": { + source: "iana", + compressible: true +}, + "application/vnd.informix-visionary": { + source: "iana" +}, + "application/vnd.infotech.project": { + source: "iana" +}, + "application/vnd.infotech.project+xml": { + source: "iana", + compressible: true +}, + "application/vnd.innopath.wamp.notification": { + source: "iana" +}, + "application/vnd.insors.igm": { + source: "iana", + extensions: [ + "igm" + ] +}, + "application/vnd.intercon.formnet": { + source: "iana", + extensions: [ + "xpw", + "xpx" + ] +}, + "application/vnd.intergeo": { + source: "iana", + extensions: [ + "i2g" + ] +}, + "application/vnd.intertrust.digibox": { + source: "iana" +}, + "application/vnd.intertrust.nncp": { + source: "iana" +}, + "application/vnd.intu.qbo": { + source: "iana", + extensions: [ + "qbo" + ] +}, + "application/vnd.intu.qfx": { + source: "iana", + extensions: [ + "qfx" + ] +}, + "application/vnd.iptc.g2.catalogitem+xml": { + source: "iana", + compressible: true +}, + "application/vnd.iptc.g2.conceptitem+xml": { + source: "iana", + compressible: true +}, + "application/vnd.iptc.g2.knowledgeitem+xml": { + source: "iana", + compressible: true +}, + "application/vnd.iptc.g2.newsitem+xml": { + source: "iana", + compressible: true +}, + "application/vnd.iptc.g2.newsmessage+xml": { + source: "iana", + compressible: true +}, + "application/vnd.iptc.g2.packageitem+xml": { + source: "iana", + compressible: true +}, + "application/vnd.iptc.g2.planningitem+xml": { + source: "iana", + compressible: true +}, + "application/vnd.ipunplugged.rcprofile": { + source: "iana", + extensions: [ + "rcprofile" + ] +}, + "application/vnd.irepository.package+xml": { + source: "iana", + compressible: true, + extensions: [ + "irp" + ] +}, + "application/vnd.is-xpr": { + source: "iana", + extensions: [ + "xpr" + ] +}, + "application/vnd.isac.fcs": { + source: "iana", + extensions: [ + "fcs" + ] +}, + "application/vnd.iso11783-10+zip": { + source: "iana", + compressible: false +}, + "application/vnd.jam": { + source: "iana", + extensions: [ + "jam" + ] +}, + "application/vnd.japannet-directory-service": { + source: "iana" +}, + "application/vnd.japannet-jpnstore-wakeup": { + source: "iana" +}, + "application/vnd.japannet-payment-wakeup": { + source: "iana" +}, + "application/vnd.japannet-registration": { + source: "iana" +}, + "application/vnd.japannet-registration-wakeup": { + source: "iana" +}, + "application/vnd.japannet-setstore-wakeup": { + source: "iana" +}, + "application/vnd.japannet-verification": { + source: "iana" +}, + "application/vnd.japannet-verification-wakeup": { + source: "iana" +}, + "application/vnd.jcp.javame.midlet-rms": { + source: "iana", + extensions: [ + "rms" + ] +}, + "application/vnd.jisp": { + source: "iana", + extensions: [ + "jisp" + ] +}, + "application/vnd.joost.joda-archive": { + source: "iana", + extensions: [ + "joda" + ] +}, + "application/vnd.jsk.isdn-ngn": { + source: "iana" +}, + "application/vnd.kahootz": { + source: "iana", + extensions: [ + "ktz", + "ktr" + ] +}, + "application/vnd.kde.karbon": { + source: "iana", + extensions: [ + "karbon" + ] +}, + "application/vnd.kde.kchart": { + source: "iana", + extensions: [ + "chrt" + ] +}, + "application/vnd.kde.kformula": { + source: "iana", + extensions: [ + "kfo" + ] +}, + "application/vnd.kde.kivio": { + source: "iana", + extensions: [ + "flw" + ] +}, + "application/vnd.kde.kontour": { + source: "iana", + extensions: [ + "kon" + ] +}, + "application/vnd.kde.kpresenter": { + source: "iana", + extensions: [ + "kpr", + "kpt" + ] +}, + "application/vnd.kde.kspread": { + source: "iana", + extensions: [ + "ksp" + ] +}, + "application/vnd.kde.kword": { + source: "iana", + extensions: [ + "kwd", + "kwt" + ] +}, + "application/vnd.kenameaapp": { + source: "iana", + extensions: [ + "htke" + ] +}, + "application/vnd.kidspiration": { + source: "iana", + extensions: [ + "kia" + ] +}, + "application/vnd.kinar": { + source: "iana", + extensions: [ + "kne", + "knp" + ] +}, + "application/vnd.koan": { + source: "iana", + extensions: [ + "skp", + "skd", + "skt", + "skm" + ] +}, + "application/vnd.kodak-descriptor": { + source: "iana", + extensions: [ + "sse" + ] +}, + "application/vnd.las": { + source: "iana" +}, + "application/vnd.las.las+json": { + source: "iana", + compressible: true +}, + "application/vnd.las.las+xml": { + source: "iana", + compressible: true, + extensions: [ + "lasxml" + ] +}, + "application/vnd.laszip": { + source: "iana" +}, + "application/vnd.leap+json": { + source: "iana", + compressible: true +}, + "application/vnd.liberty-request+xml": { + source: "iana", + compressible: true +}, + "application/vnd.llamagraphics.life-balance.desktop": { + source: "iana", + extensions: [ + "lbd" + ] +}, + "application/vnd.llamagraphics.life-balance.exchange+xml": { + source: "iana", + compressible: true, + extensions: [ + "lbe" + ] +}, + "application/vnd.logipipe.circuit+zip": { + source: "iana", + compressible: false +}, + "application/vnd.loom": { + source: "iana" +}, + "application/vnd.lotus-1-2-3": { + source: "iana", + extensions: [ + "123" + ] +}, + "application/vnd.lotus-approach": { + source: "iana", + extensions: [ + "apr" + ] +}, + "application/vnd.lotus-freelance": { + source: "iana", + extensions: [ + "pre" + ] +}, + "application/vnd.lotus-notes": { + source: "iana", + extensions: [ + "nsf" + ] +}, + "application/vnd.lotus-organizer": { + source: "iana", + extensions: [ + "org" + ] +}, + "application/vnd.lotus-screencam": { + source: "iana", + extensions: [ + "scm" + ] +}, + "application/vnd.lotus-wordpro": { + source: "iana", + extensions: [ + "lwp" + ] +}, + "application/vnd.macports.portpkg": { + source: "iana", + extensions: [ + "portpkg" + ] +}, + "application/vnd.mapbox-vector-tile": { + source: "iana", + extensions: [ + "mvt" + ] +}, + "application/vnd.marlin.drm.actiontoken+xml": { + source: "iana", + compressible: true +}, + "application/vnd.marlin.drm.conftoken+xml": { + source: "iana", + compressible: true +}, + "application/vnd.marlin.drm.license+xml": { + source: "iana", + compressible: true +}, + "application/vnd.marlin.drm.mdcf": { + source: "iana" +}, + "application/vnd.mason+json": { + source: "iana", + compressible: true +}, + "application/vnd.maxar.archive.3tz+zip": { + source: "iana", + compressible: false +}, + "application/vnd.maxmind.maxmind-db": { + source: "iana" +}, + "application/vnd.mcd": { + source: "iana", + extensions: [ + "mcd" + ] +}, + "application/vnd.medcalcdata": { + source: "iana", + extensions: [ + "mc1" + ] +}, + "application/vnd.mediastation.cdkey": { + source: "iana", + extensions: [ + "cdkey" + ] +}, + "application/vnd.meridian-slingshot": { + source: "iana" +}, + "application/vnd.mfer": { + source: "iana", + extensions: [ + "mwf" + ] +}, + "application/vnd.mfmp": { + source: "iana", + extensions: [ + "mfm" + ] +}, + "application/vnd.micro+json": { + source: "iana", + compressible: true +}, + "application/vnd.micrografx.flo": { + source: "iana", + extensions: [ + "flo" + ] +}, + "application/vnd.micrografx.igx": { + source: "iana", + extensions: [ + "igx" + ] +}, + "application/vnd.microsoft.portable-executable": { + source: "iana" +}, + "application/vnd.microsoft.windows.thumbnail-cache": { + source: "iana" +}, + "application/vnd.miele+json": { + source: "iana", + compressible: true +}, + "application/vnd.mif": { + source: "iana", + extensions: [ + "mif" + ] +}, + "application/vnd.minisoft-hp3000-save": { + source: "iana" +}, + "application/vnd.mitsubishi.misty-guard.trustweb": { + source: "iana" +}, + "application/vnd.mobius.daf": { + source: "iana", + extensions: [ + "daf" + ] +}, + "application/vnd.mobius.dis": { + source: "iana", + extensions: [ + "dis" + ] +}, + "application/vnd.mobius.mbk": { + source: "iana", + extensions: [ + "mbk" + ] +}, + "application/vnd.mobius.mqy": { + source: "iana", + extensions: [ + "mqy" + ] +}, + "application/vnd.mobius.msl": { + source: "iana", + extensions: [ + "msl" + ] +}, + "application/vnd.mobius.plc": { + source: "iana", + extensions: [ + "plc" + ] +}, + "application/vnd.mobius.txf": { + source: "iana", + extensions: [ + "txf" + ] +}, + "application/vnd.mophun.application": { + source: "iana", + extensions: [ + "mpn" + ] +}, + "application/vnd.mophun.certificate": { + source: "iana", + extensions: [ + "mpc" + ] +}, + "application/vnd.motorola.flexsuite": { + source: "iana" +}, + "application/vnd.motorola.flexsuite.adsi": { + source: "iana" +}, + "application/vnd.motorola.flexsuite.fis": { + source: "iana" +}, + "application/vnd.motorola.flexsuite.gotap": { + source: "iana" +}, + "application/vnd.motorola.flexsuite.kmr": { + source: "iana" +}, + "application/vnd.motorola.flexsuite.ttc": { + source: "iana" +}, + "application/vnd.motorola.flexsuite.wem": { + source: "iana" +}, + "application/vnd.motorola.iprm": { + source: "iana" +}, + "application/vnd.mozilla.xul+xml": { + source: "iana", + compressible: true, + extensions: [ + "xul" + ] +}, + "application/vnd.ms-3mfdocument": { + source: "iana" +}, + "application/vnd.ms-artgalry": { + source: "iana", + extensions: [ + "cil" + ] +}, + "application/vnd.ms-asf": { + source: "iana" +}, + "application/vnd.ms-cab-compressed": { + source: "iana", + extensions: [ + "cab" + ] +}, + "application/vnd.ms-color.iccprofile": { + source: "apache" +}, + "application/vnd.ms-excel": { + source: "iana", + compressible: false, + extensions: [ + "xls", + "xlm", + "xla", + "xlc", + "xlt", + "xlw" + ] +}, + "application/vnd.ms-excel.addin.macroenabled.12": { + source: "iana", + extensions: [ + "xlam" + ] +}, + "application/vnd.ms-excel.sheet.binary.macroenabled.12": { + source: "iana", + extensions: [ + "xlsb" + ] +}, + "application/vnd.ms-excel.sheet.macroenabled.12": { + source: "iana", + extensions: [ + "xlsm" + ] +}, + "application/vnd.ms-excel.template.macroenabled.12": { + source: "iana", + extensions: [ + "xltm" + ] +}, + "application/vnd.ms-fontobject": { + source: "iana", + compressible: true, + extensions: [ + "eot" + ] +}, + "application/vnd.ms-htmlhelp": { + source: "iana", + extensions: [ + "chm" + ] +}, + "application/vnd.ms-ims": { + source: "iana", + extensions: [ + "ims" + ] +}, + "application/vnd.ms-lrm": { + source: "iana", + extensions: [ + "lrm" + ] +}, + "application/vnd.ms-office.activex+xml": { + source: "iana", + compressible: true +}, + "application/vnd.ms-officetheme": { + source: "iana", + extensions: [ + "thmx" + ] +}, + "application/vnd.ms-opentype": { + source: "apache", + compressible: true +}, + "application/vnd.ms-outlook": { + compressible: false, + extensions: [ + "msg" + ] +}, + "application/vnd.ms-package.obfuscated-opentype": { + source: "apache" +}, + "application/vnd.ms-pki.seccat": { + source: "apache", + extensions: [ + "cat" + ] +}, + "application/vnd.ms-pki.stl": { + source: "apache", + extensions: [ + "stl" + ] +}, + "application/vnd.ms-playready.initiator+xml": { + source: "iana", + compressible: true +}, + "application/vnd.ms-powerpoint": { + source: "iana", + compressible: false, + extensions: [ + "ppt", + "pps", + "pot" + ] +}, + "application/vnd.ms-powerpoint.addin.macroenabled.12": { + source: "iana", + extensions: [ + "ppam" + ] +}, + "application/vnd.ms-powerpoint.presentation.macroenabled.12": { + source: "iana", + extensions: [ + "pptm" + ] +}, + "application/vnd.ms-powerpoint.slide.macroenabled.12": { + source: "iana", + extensions: [ + "sldm" + ] +}, + "application/vnd.ms-powerpoint.slideshow.macroenabled.12": { + source: "iana", + extensions: [ + "ppsm" + ] +}, + "application/vnd.ms-powerpoint.template.macroenabled.12": { + source: "iana", + extensions: [ + "potm" + ] +}, + "application/vnd.ms-printdevicecapabilities+xml": { + source: "iana", + compressible: true +}, + "application/vnd.ms-printing.printticket+xml": { + source: "apache", + compressible: true +}, + "application/vnd.ms-printschematicket+xml": { + source: "iana", + compressible: true +}, + "application/vnd.ms-project": { + source: "iana", + extensions: [ + "mpp", + "mpt" + ] +}, + "application/vnd.ms-tnef": { + source: "iana" +}, + "application/vnd.ms-windows.devicepairing": { + source: "iana" +}, + "application/vnd.ms-windows.nwprinting.oob": { + source: "iana" +}, + "application/vnd.ms-windows.printerpairing": { + source: "iana" +}, + "application/vnd.ms-windows.wsd.oob": { + source: "iana" +}, + "application/vnd.ms-wmdrm.lic-chlg-req": { + source: "iana" +}, + "application/vnd.ms-wmdrm.lic-resp": { + source: "iana" +}, + "application/vnd.ms-wmdrm.meter-chlg-req": { + source: "iana" +}, + "application/vnd.ms-wmdrm.meter-resp": { + source: "iana" +}, + "application/vnd.ms-word.document.macroenabled.12": { + source: "iana", + extensions: [ + "docm" + ] +}, + "application/vnd.ms-word.template.macroenabled.12": { + source: "iana", + extensions: [ + "dotm" + ] +}, + "application/vnd.ms-works": { + source: "iana", + extensions: [ + "wps", + "wks", + "wcm", + "wdb" + ] +}, + "application/vnd.ms-wpl": { + source: "iana", + extensions: [ + "wpl" + ] +}, + "application/vnd.ms-xpsdocument": { + source: "iana", + compressible: false, + extensions: [ + "xps" + ] +}, + "application/vnd.msa-disk-image": { + source: "iana" +}, + "application/vnd.mseq": { + source: "iana", + extensions: [ + "mseq" + ] +}, + "application/vnd.msign": { + source: "iana" +}, + "application/vnd.multiad.creator": { + source: "iana" +}, + "application/vnd.multiad.creator.cif": { + source: "iana" +}, + "application/vnd.music-niff": { + source: "iana" +}, + "application/vnd.musician": { + source: "iana", + extensions: [ + "mus" + ] +}, + "application/vnd.muvee.style": { + source: "iana", + extensions: [ + "msty" + ] +}, + "application/vnd.mynfc": { + source: "iana", + extensions: [ + "taglet" + ] +}, + "application/vnd.nacamar.ybrid+json": { + source: "iana", + compressible: true +}, + "application/vnd.ncd.control": { + source: "iana" +}, + "application/vnd.ncd.reference": { + source: "iana" +}, + "application/vnd.nearst.inv+json": { + source: "iana", + compressible: true +}, + "application/vnd.nebumind.line": { + source: "iana" +}, + "application/vnd.nervana": { + source: "iana" +}, + "application/vnd.netfpx": { + source: "iana" +}, + "application/vnd.neurolanguage.nlu": { + source: "iana", + extensions: [ + "nlu" + ] +}, + "application/vnd.nimn": { + source: "iana" +}, + "application/vnd.nintendo.nitro.rom": { + source: "iana" +}, + "application/vnd.nintendo.snes.rom": { + source: "iana" +}, + "application/vnd.nitf": { + source: "iana", + extensions: [ + "ntf", + "nitf" + ] +}, + "application/vnd.noblenet-directory": { + source: "iana", + extensions: [ + "nnd" + ] +}, + "application/vnd.noblenet-sealer": { + source: "iana", + extensions: [ + "nns" + ] +}, + "application/vnd.noblenet-web": { + source: "iana", + extensions: [ + "nnw" + ] +}, + "application/vnd.nokia.catalogs": { + source: "iana" +}, + "application/vnd.nokia.conml+wbxml": { + source: "iana" +}, + "application/vnd.nokia.conml+xml": { + source: "iana", + compressible: true +}, + "application/vnd.nokia.iptv.config+xml": { + source: "iana", + compressible: true +}, + "application/vnd.nokia.isds-radio-presets": { + source: "iana" +}, + "application/vnd.nokia.landmark+wbxml": { + source: "iana" +}, + "application/vnd.nokia.landmark+xml": { + source: "iana", + compressible: true +}, + "application/vnd.nokia.landmarkcollection+xml": { + source: "iana", + compressible: true +}, + "application/vnd.nokia.n-gage.ac+xml": { + source: "iana", + compressible: true, + extensions: [ + "ac" + ] +}, + "application/vnd.nokia.n-gage.data": { + source: "iana", + extensions: [ + "ngdat" + ] +}, + "application/vnd.nokia.n-gage.symbian.install": { + source: "iana", + extensions: [ + "n-gage" + ] +}, + "application/vnd.nokia.ncd": { + source: "iana" +}, + "application/vnd.nokia.pcd+wbxml": { + source: "iana" +}, + "application/vnd.nokia.pcd+xml": { + source: "iana", + compressible: true +}, + "application/vnd.nokia.radio-preset": { + source: "iana", + extensions: [ + "rpst" + ] +}, + "application/vnd.nokia.radio-presets": { + source: "iana", + extensions: [ + "rpss" + ] +}, + "application/vnd.novadigm.edm": { + source: "iana", + extensions: [ + "edm" + ] +}, + "application/vnd.novadigm.edx": { + source: "iana", + extensions: [ + "edx" + ] +}, + "application/vnd.novadigm.ext": { + source: "iana", + extensions: [ + "ext" + ] +}, + "application/vnd.ntt-local.content-share": { + source: "iana" +}, + "application/vnd.ntt-local.file-transfer": { + source: "iana" +}, + "application/vnd.ntt-local.ogw_remote-access": { + source: "iana" +}, + "application/vnd.ntt-local.sip-ta_remote": { + source: "iana" +}, + "application/vnd.ntt-local.sip-ta_tcp_stream": { + source: "iana" +}, + "application/vnd.oasis.opendocument.chart": { + source: "iana", + extensions: [ + "odc" + ] +}, + "application/vnd.oasis.opendocument.chart-template": { + source: "iana", + extensions: [ + "otc" + ] +}, + "application/vnd.oasis.opendocument.database": { + source: "iana", + extensions: [ + "odb" + ] +}, + "application/vnd.oasis.opendocument.formula": { + source: "iana", + extensions: [ + "odf" + ] +}, + "application/vnd.oasis.opendocument.formula-template": { + source: "iana", + extensions: [ + "odft" + ] +}, + "application/vnd.oasis.opendocument.graphics": { + source: "iana", + compressible: false, + extensions: [ + "odg" + ] +}, + "application/vnd.oasis.opendocument.graphics-template": { + source: "iana", + extensions: [ + "otg" + ] +}, + "application/vnd.oasis.opendocument.image": { + source: "iana", + extensions: [ + "odi" + ] +}, + "application/vnd.oasis.opendocument.image-template": { + source: "iana", + extensions: [ + "oti" + ] +}, + "application/vnd.oasis.opendocument.presentation": { + source: "iana", + compressible: false, + extensions: [ + "odp" + ] +}, + "application/vnd.oasis.opendocument.presentation-template": { + source: "iana", + extensions: [ + "otp" + ] +}, + "application/vnd.oasis.opendocument.spreadsheet": { + source: "iana", + compressible: false, + extensions: [ + "ods" + ] +}, + "application/vnd.oasis.opendocument.spreadsheet-template": { + source: "iana", + extensions: [ + "ots" + ] +}, + "application/vnd.oasis.opendocument.text": { + source: "iana", + compressible: false, + extensions: [ + "odt" + ] +}, + "application/vnd.oasis.opendocument.text-master": { + source: "iana", + extensions: [ + "odm" + ] +}, + "application/vnd.oasis.opendocument.text-template": { + source: "iana", + extensions: [ + "ott" + ] +}, + "application/vnd.oasis.opendocument.text-web": { + source: "iana", + extensions: [ + "oth" + ] +}, + "application/vnd.obn": { + source: "iana" +}, + "application/vnd.ocf+cbor": { + source: "iana" +}, + "application/vnd.oci.image.manifest.v1+json": { + source: "iana", + compressible: true +}, + "application/vnd.oftn.l10n+json": { + source: "iana", + compressible: true +}, + "application/vnd.oipf.contentaccessdownload+xml": { + source: "iana", + compressible: true +}, + "application/vnd.oipf.contentaccessstreaming+xml": { + source: "iana", + compressible: true +}, + "application/vnd.oipf.cspg-hexbinary": { + source: "iana" +}, + "application/vnd.oipf.dae.svg+xml": { + source: "iana", + compressible: true +}, + "application/vnd.oipf.dae.xhtml+xml": { + source: "iana", + compressible: true +}, + "application/vnd.oipf.mippvcontrolmessage+xml": { + source: "iana", + compressible: true +}, + "application/vnd.oipf.pae.gem": { + source: "iana" +}, + "application/vnd.oipf.spdiscovery+xml": { + source: "iana", + compressible: true +}, + "application/vnd.oipf.spdlist+xml": { + source: "iana", + compressible: true +}, + "application/vnd.oipf.ueprofile+xml": { + source: "iana", + compressible: true +}, + "application/vnd.oipf.userprofile+xml": { + source: "iana", + compressible: true +}, + "application/vnd.olpc-sugar": { + source: "iana", + extensions: [ + "xo" + ] +}, + "application/vnd.oma-scws-config": { + source: "iana" +}, + "application/vnd.oma-scws-http-request": { + source: "iana" +}, + "application/vnd.oma-scws-http-response": { + source: "iana" +}, + "application/vnd.oma.bcast.associated-procedure-parameter+xml": { + source: "iana", + compressible: true +}, + "application/vnd.oma.bcast.drm-trigger+xml": { + source: "iana", + compressible: true +}, + "application/vnd.oma.bcast.imd+xml": { + source: "iana", + compressible: true +}, + "application/vnd.oma.bcast.ltkm": { + source: "iana" +}, + "application/vnd.oma.bcast.notification+xml": { + source: "iana", + compressible: true +}, + "application/vnd.oma.bcast.provisioningtrigger": { + source: "iana" +}, + "application/vnd.oma.bcast.sgboot": { + source: "iana" +}, + "application/vnd.oma.bcast.sgdd+xml": { + source: "iana", + compressible: true +}, + "application/vnd.oma.bcast.sgdu": { + source: "iana" +}, + "application/vnd.oma.bcast.simple-symbol-container": { + source: "iana" +}, + "application/vnd.oma.bcast.smartcard-trigger+xml": { + source: "iana", + compressible: true +}, + "application/vnd.oma.bcast.sprov+xml": { + source: "iana", + compressible: true +}, + "application/vnd.oma.bcast.stkm": { + source: "iana" +}, + "application/vnd.oma.cab-address-book+xml": { + source: "iana", + compressible: true +}, + "application/vnd.oma.cab-feature-handler+xml": { + source: "iana", + compressible: true +}, + "application/vnd.oma.cab-pcc+xml": { + source: "iana", + compressible: true +}, + "application/vnd.oma.cab-subs-invite+xml": { + source: "iana", + compressible: true +}, + "application/vnd.oma.cab-user-prefs+xml": { + source: "iana", + compressible: true +}, + "application/vnd.oma.dcd": { + source: "iana" +}, + "application/vnd.oma.dcdc": { + source: "iana" +}, + "application/vnd.oma.dd2+xml": { + source: "iana", + compressible: true, + extensions: [ + "dd2" + ] +}, + "application/vnd.oma.drm.risd+xml": { + source: "iana", + compressible: true +}, + "application/vnd.oma.group-usage-list+xml": { + source: "iana", + compressible: true +}, + "application/vnd.oma.lwm2m+cbor": { + source: "iana" +}, + "application/vnd.oma.lwm2m+json": { + source: "iana", + compressible: true +}, + "application/vnd.oma.lwm2m+tlv": { + source: "iana" +}, + "application/vnd.oma.pal+xml": { + source: "iana", + compressible: true +}, + "application/vnd.oma.poc.detailed-progress-report+xml": { + source: "iana", + compressible: true +}, + "application/vnd.oma.poc.final-report+xml": { + source: "iana", + compressible: true +}, + "application/vnd.oma.poc.groups+xml": { + source: "iana", + compressible: true +}, + "application/vnd.oma.poc.invocation-descriptor+xml": { + source: "iana", + compressible: true +}, + "application/vnd.oma.poc.optimized-progress-report+xml": { + source: "iana", + compressible: true +}, + "application/vnd.oma.push": { + source: "iana" +}, + "application/vnd.oma.scidm.messages+xml": { + source: "iana", + compressible: true +}, + "application/vnd.oma.xcap-directory+xml": { + source: "iana", + compressible: true +}, + "application/vnd.omads-email+xml": { + source: "iana", + charset: "UTF-8", + compressible: true +}, + "application/vnd.omads-file+xml": { + source: "iana", + charset: "UTF-8", + compressible: true +}, + "application/vnd.omads-folder+xml": { + source: "iana", + charset: "UTF-8", + compressible: true +}, + "application/vnd.omaloc-supl-init": { + source: "iana" +}, + "application/vnd.onepager": { + source: "iana" +}, + "application/vnd.onepagertamp": { + source: "iana" +}, + "application/vnd.onepagertamx": { + source: "iana" +}, + "application/vnd.onepagertat": { + source: "iana" +}, + "application/vnd.onepagertatp": { + source: "iana" +}, + "application/vnd.onepagertatx": { + source: "iana" +}, + "application/vnd.openblox.game+xml": { + source: "iana", + compressible: true, + extensions: [ + "obgx" + ] +}, + "application/vnd.openblox.game-binary": { + source: "iana" +}, + "application/vnd.openeye.oeb": { + source: "iana" +}, + "application/vnd.openofficeorg.extension": { + source: "apache", + extensions: [ + "oxt" + ] +}, + "application/vnd.openstreetmap.data+xml": { + source: "iana", + compressible: true, + extensions: [ + "osm" + ] +}, + "application/vnd.opentimestamps.ots": { + source: "iana" +}, + "application/vnd.openxmlformats-officedocument.custom-properties+xml": { + source: "iana", + compressible: true +}, + "application/vnd.openxmlformats-officedocument.customxmlproperties+xml": { + source: "iana", + compressible: true +}, + "application/vnd.openxmlformats-officedocument.drawing+xml": { + source: "iana", + compressible: true +}, + "application/vnd.openxmlformats-officedocument.drawingml.chart+xml": { + source: "iana", + compressible: true +}, + "application/vnd.openxmlformats-officedocument.drawingml.chartshapes+xml": { + source: "iana", + compressible: true +}, + "application/vnd.openxmlformats-officedocument.drawingml.diagramcolors+xml": { + source: "iana", + compressible: true +}, + "application/vnd.openxmlformats-officedocument.drawingml.diagramdata+xml": { + source: "iana", + compressible: true +}, + "application/vnd.openxmlformats-officedocument.drawingml.diagramlayout+xml": { + source: "iana", + compressible: true +}, + "application/vnd.openxmlformats-officedocument.drawingml.diagramstyle+xml": { + source: "iana", + compressible: true +}, + "application/vnd.openxmlformats-officedocument.extended-properties+xml": { + source: "iana", + compressible: true +}, + "application/vnd.openxmlformats-officedocument.presentationml.commentauthors+xml": { + source: "iana", + compressible: true +}, + "application/vnd.openxmlformats-officedocument.presentationml.comments+xml": { + source: "iana", + compressible: true +}, + "application/vnd.openxmlformats-officedocument.presentationml.handoutmaster+xml": { + source: "iana", + compressible: true +}, + "application/vnd.openxmlformats-officedocument.presentationml.notesmaster+xml": { + source: "iana", + compressible: true +}, + "application/vnd.openxmlformats-officedocument.presentationml.notesslide+xml": { + source: "iana", + compressible: true +}, + "application/vnd.openxmlformats-officedocument.presentationml.presentation": { + source: "iana", + compressible: false, + extensions: [ + "pptx" + ] +}, + "application/vnd.openxmlformats-officedocument.presentationml.presentation.main+xml": { + source: "iana", + compressible: true +}, + "application/vnd.openxmlformats-officedocument.presentationml.presprops+xml": { + source: "iana", + compressible: true +}, + "application/vnd.openxmlformats-officedocument.presentationml.slide": { + source: "iana", + extensions: [ + "sldx" + ] +}, + "application/vnd.openxmlformats-officedocument.presentationml.slide+xml": { + source: "iana", + compressible: true +}, + "application/vnd.openxmlformats-officedocument.presentationml.slidelayout+xml": { + source: "iana", + compressible: true +}, + "application/vnd.openxmlformats-officedocument.presentationml.slidemaster+xml": { + source: "iana", + compressible: true +}, + "application/vnd.openxmlformats-officedocument.presentationml.slideshow": { + source: "iana", + extensions: [ + "ppsx" + ] +}, + "application/vnd.openxmlformats-officedocument.presentationml.slideshow.main+xml": { + source: "iana", + compressible: true +}, + "application/vnd.openxmlformats-officedocument.presentationml.slideupdateinfo+xml": { + source: "iana", + compressible: true +}, + "application/vnd.openxmlformats-officedocument.presentationml.tablestyles+xml": { + source: "iana", + compressible: true +}, + "application/vnd.openxmlformats-officedocument.presentationml.tags+xml": { + source: "iana", + compressible: true +}, + "application/vnd.openxmlformats-officedocument.presentationml.template": { + source: "iana", + extensions: [ + "potx" + ] +}, + "application/vnd.openxmlformats-officedocument.presentationml.template.main+xml": { + source: "iana", + compressible: true +}, + "application/vnd.openxmlformats-officedocument.presentationml.viewprops+xml": { + source: "iana", + compressible: true +}, + "application/vnd.openxmlformats-officedocument.spreadsheetml.calcchain+xml": { + source: "iana", + compressible: true +}, + "application/vnd.openxmlformats-officedocument.spreadsheetml.chartsheet+xml": { + source: "iana", + compressible: true +}, + "application/vnd.openxmlformats-officedocument.spreadsheetml.comments+xml": { + source: "iana", + compressible: true +}, + "application/vnd.openxmlformats-officedocument.spreadsheetml.connections+xml": { + source: "iana", + compressible: true +}, + "application/vnd.openxmlformats-officedocument.spreadsheetml.dialogsheet+xml": { + source: "iana", + compressible: true +}, + "application/vnd.openxmlformats-officedocument.spreadsheetml.externallink+xml": { + source: "iana", + compressible: true +}, + "application/vnd.openxmlformats-officedocument.spreadsheetml.pivotcachedefinition+xml": { + source: "iana", + compressible: true +}, + "application/vnd.openxmlformats-officedocument.spreadsheetml.pivotcacherecords+xml": { + source: "iana", + compressible: true +}, + "application/vnd.openxmlformats-officedocument.spreadsheetml.pivottable+xml": { + source: "iana", + compressible: true +}, + "application/vnd.openxmlformats-officedocument.spreadsheetml.querytable+xml": { + source: "iana", + compressible: true +}, + "application/vnd.openxmlformats-officedocument.spreadsheetml.revisionheaders+xml": { + source: "iana", + compressible: true +}, + "application/vnd.openxmlformats-officedocument.spreadsheetml.revisionlog+xml": { + source: "iana", + compressible: true +}, + "application/vnd.openxmlformats-officedocument.spreadsheetml.sharedstrings+xml": { + source: "iana", + compressible: true +}, + "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet": { + source: "iana", + compressible: false, + extensions: [ + "xlsx" + ] +}, + "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet.main+xml": { + source: "iana", + compressible: true +}, + "application/vnd.openxmlformats-officedocument.spreadsheetml.sheetmetadata+xml": { + source: "iana", + compressible: true +}, + "application/vnd.openxmlformats-officedocument.spreadsheetml.styles+xml": { + source: "iana", + compressible: true +}, + "application/vnd.openxmlformats-officedocument.spreadsheetml.table+xml": { + source: "iana", + compressible: true +}, + "application/vnd.openxmlformats-officedocument.spreadsheetml.tablesinglecells+xml": { + source: "iana", + compressible: true +}, + "application/vnd.openxmlformats-officedocument.spreadsheetml.template": { + source: "iana", + extensions: [ + "xltx" + ] +}, + "application/vnd.openxmlformats-officedocument.spreadsheetml.template.main+xml": { + source: "iana", + compressible: true +}, + "application/vnd.openxmlformats-officedocument.spreadsheetml.usernames+xml": { + source: "iana", + compressible: true +}, + "application/vnd.openxmlformats-officedocument.spreadsheetml.volatiledependencies+xml": { + source: "iana", + compressible: true +}, + "application/vnd.openxmlformats-officedocument.spreadsheetml.worksheet+xml": { + source: "iana", + compressible: true +}, + "application/vnd.openxmlformats-officedocument.theme+xml": { + source: "iana", + compressible: true +}, + "application/vnd.openxmlformats-officedocument.themeoverride+xml": { + source: "iana", + compressible: true +}, + "application/vnd.openxmlformats-officedocument.vmldrawing": { + source: "iana" +}, + "application/vnd.openxmlformats-officedocument.wordprocessingml.comments+xml": { + source: "iana", + compressible: true +}, + "application/vnd.openxmlformats-officedocument.wordprocessingml.document": { + source: "iana", + compressible: false, + extensions: [ + "docx" + ] +}, + "application/vnd.openxmlformats-officedocument.wordprocessingml.document.glossary+xml": { + source: "iana", + compressible: true +}, + "application/vnd.openxmlformats-officedocument.wordprocessingml.document.main+xml": { + source: "iana", + compressible: true +}, + "application/vnd.openxmlformats-officedocument.wordprocessingml.endnotes+xml": { + source: "iana", + compressible: true +}, + "application/vnd.openxmlformats-officedocument.wordprocessingml.fonttable+xml": { + source: "iana", + compressible: true +}, + "application/vnd.openxmlformats-officedocument.wordprocessingml.footer+xml": { + source: "iana", + compressible: true +}, + "application/vnd.openxmlformats-officedocument.wordprocessingml.footnotes+xml": { + source: "iana", + compressible: true +}, + "application/vnd.openxmlformats-officedocument.wordprocessingml.numbering+xml": { + source: "iana", + compressible: true +}, + "application/vnd.openxmlformats-officedocument.wordprocessingml.settings+xml": { + source: "iana", + compressible: true +}, + "application/vnd.openxmlformats-officedocument.wordprocessingml.styles+xml": { + source: "iana", + compressible: true +}, + "application/vnd.openxmlformats-officedocument.wordprocessingml.template": { + source: "iana", + extensions: [ + "dotx" + ] +}, + "application/vnd.openxmlformats-officedocument.wordprocessingml.template.main+xml": { + source: "iana", + compressible: true +}, + "application/vnd.openxmlformats-officedocument.wordprocessingml.websettings+xml": { + source: "iana", + compressible: true +}, + "application/vnd.openxmlformats-package.core-properties+xml": { + source: "iana", + compressible: true +}, + "application/vnd.openxmlformats-package.digital-signature-xmlsignature+xml": { + source: "iana", + compressible: true +}, + "application/vnd.openxmlformats-package.relationships+xml": { + source: "iana", + compressible: true +}, + "application/vnd.oracle.resource+json": { + source: "iana", + compressible: true +}, + "application/vnd.orange.indata": { + source: "iana" +}, + "application/vnd.osa.netdeploy": { + source: "iana" +}, + "application/vnd.osgeo.mapguide.package": { + source: "iana", + extensions: [ + "mgp" + ] +}, + "application/vnd.osgi.bundle": { + source: "iana" +}, + "application/vnd.osgi.dp": { + source: "iana", + extensions: [ + "dp" + ] +}, + "application/vnd.osgi.subsystem": { + source: "iana", + extensions: [ + "esa" + ] +}, + "application/vnd.otps.ct-kip+xml": { + source: "iana", + compressible: true +}, + "application/vnd.oxli.countgraph": { + source: "iana" +}, + "application/vnd.pagerduty+json": { + source: "iana", + compressible: true +}, + "application/vnd.palm": { + source: "iana", + extensions: [ + "pdb", + "pqa", + "oprc" + ] +}, + "application/vnd.panoply": { + source: "iana" +}, + "application/vnd.paos.xml": { + source: "iana" +}, + "application/vnd.patentdive": { + source: "iana" +}, + "application/vnd.patientecommsdoc": { + source: "iana" +}, + "application/vnd.pawaafile": { + source: "iana", + extensions: [ + "paw" + ] +}, + "application/vnd.pcos": { + source: "iana" +}, + "application/vnd.pg.format": { + source: "iana", + extensions: [ + "str" + ] +}, + "application/vnd.pg.osasli": { + source: "iana", + extensions: [ + "ei6" + ] +}, + "application/vnd.piaccess.application-licence": { + source: "iana" +}, + "application/vnd.picsel": { + source: "iana", + extensions: [ + "efif" + ] +}, + "application/vnd.pmi.widget": { + source: "iana", + extensions: [ + "wg" + ] +}, + "application/vnd.poc.group-advertisement+xml": { + source: "iana", + compressible: true +}, + "application/vnd.pocketlearn": { + source: "iana", + extensions: [ + "plf" + ] +}, + "application/vnd.powerbuilder6": { + source: "iana", + extensions: [ + "pbd" + ] +}, + "application/vnd.powerbuilder6-s": { + source: "iana" +}, + "application/vnd.powerbuilder7": { + source: "iana" +}, + "application/vnd.powerbuilder7-s": { + source: "iana" +}, + "application/vnd.powerbuilder75": { + source: "iana" +}, + "application/vnd.powerbuilder75-s": { + source: "iana" +}, + "application/vnd.preminet": { + source: "iana" +}, + "application/vnd.previewsystems.box": { + source: "iana", + extensions: [ + "box" + ] +}, + "application/vnd.proteus.magazine": { + source: "iana", + extensions: [ + "mgz" + ] +}, + "application/vnd.psfs": { + source: "iana" +}, + "application/vnd.publishare-delta-tree": { + source: "iana", + extensions: [ + "qps" + ] +}, + "application/vnd.pvi.ptid1": { + source: "iana", + extensions: [ + "ptid" + ] +}, + "application/vnd.pwg-multiplexed": { + source: "iana" +}, + "application/vnd.pwg-xhtml-print+xml": { + source: "iana", + compressible: true +}, + "application/vnd.qualcomm.brew-app-res": { + source: "iana" +}, + "application/vnd.quarantainenet": { + source: "iana" +}, + "application/vnd.quark.quarkxpress": { + source: "iana", + extensions: [ + "qxd", + "qxt", + "qwd", + "qwt", + "qxl", + "qxb" + ] +}, + "application/vnd.quobject-quoxdocument": { + source: "iana" +}, + "application/vnd.radisys.moml+xml": { + source: "iana", + compressible: true +}, + "application/vnd.radisys.msml+xml": { + source: "iana", + compressible: true +}, + "application/vnd.radisys.msml-audit+xml": { + source: "iana", + compressible: true +}, + "application/vnd.radisys.msml-audit-conf+xml": { + source: "iana", + compressible: true +}, + "application/vnd.radisys.msml-audit-conn+xml": { + source: "iana", + compressible: true +}, + "application/vnd.radisys.msml-audit-dialog+xml": { + source: "iana", + compressible: true +}, + "application/vnd.radisys.msml-audit-stream+xml": { + source: "iana", + compressible: true +}, + "application/vnd.radisys.msml-conf+xml": { + source: "iana", + compressible: true +}, + "application/vnd.radisys.msml-dialog+xml": { + source: "iana", + compressible: true +}, + "application/vnd.radisys.msml-dialog-base+xml": { + source: "iana", + compressible: true +}, + "application/vnd.radisys.msml-dialog-fax-detect+xml": { + source: "iana", + compressible: true +}, + "application/vnd.radisys.msml-dialog-fax-sendrecv+xml": { + source: "iana", + compressible: true +}, + "application/vnd.radisys.msml-dialog-group+xml": { + source: "iana", + compressible: true +}, + "application/vnd.radisys.msml-dialog-speech+xml": { + source: "iana", + compressible: true +}, + "application/vnd.radisys.msml-dialog-transform+xml": { + source: "iana", + compressible: true +}, + "application/vnd.rainstor.data": { + source: "iana" +}, + "application/vnd.rapid": { + source: "iana" +}, + "application/vnd.rar": { + source: "iana", + extensions: [ + "rar" + ] +}, + "application/vnd.realvnc.bed": { + source: "iana", + extensions: [ + "bed" + ] +}, + "application/vnd.recordare.musicxml": { + source: "iana", + extensions: [ + "mxl" + ] +}, + "application/vnd.recordare.musicxml+xml": { + source: "iana", + compressible: true, + extensions: [ + "musicxml" + ] +}, + "application/vnd.renlearn.rlprint": { + source: "iana" +}, + "application/vnd.resilient.logic": { + source: "iana" +}, + "application/vnd.restful+json": { + source: "iana", + compressible: true +}, + "application/vnd.rig.cryptonote": { + source: "iana", + extensions: [ + "cryptonote" + ] +}, + "application/vnd.rim.cod": { + source: "apache", + extensions: [ + "cod" + ] +}, + "application/vnd.rn-realmedia": { + source: "apache", + extensions: [ + "rm" + ] +}, + "application/vnd.rn-realmedia-vbr": { + source: "apache", + extensions: [ + "rmvb" + ] +}, + "application/vnd.route66.link66+xml": { + source: "iana", + compressible: true, + extensions: [ + "link66" + ] +}, + "application/vnd.rs-274x": { + source: "iana" +}, + "application/vnd.ruckus.download": { + source: "iana" +}, + "application/vnd.s3sms": { + source: "iana" +}, + "application/vnd.sailingtracker.track": { + source: "iana", + extensions: [ + "st" + ] +}, + "application/vnd.sar": { + source: "iana" +}, + "application/vnd.sbm.cid": { + source: "iana" +}, + "application/vnd.sbm.mid2": { + source: "iana" +}, + "application/vnd.scribus": { + source: "iana" +}, + "application/vnd.sealed.3df": { + source: "iana" +}, + "application/vnd.sealed.csf": { + source: "iana" +}, + "application/vnd.sealed.doc": { + source: "iana" +}, + "application/vnd.sealed.eml": { + source: "iana" +}, + "application/vnd.sealed.mht": { + source: "iana" +}, + "application/vnd.sealed.net": { + source: "iana" +}, + "application/vnd.sealed.ppt": { + source: "iana" +}, + "application/vnd.sealed.tiff": { + source: "iana" +}, + "application/vnd.sealed.xls": { + source: "iana" +}, + "application/vnd.sealedmedia.softseal.html": { + source: "iana" +}, + "application/vnd.sealedmedia.softseal.pdf": { + source: "iana" +}, + "application/vnd.seemail": { + source: "iana", + extensions: [ + "see" + ] +}, + "application/vnd.seis+json": { + source: "iana", + compressible: true +}, + "application/vnd.sema": { + source: "iana", + extensions: [ + "sema" + ] +}, + "application/vnd.semd": { + source: "iana", + extensions: [ + "semd" + ] +}, + "application/vnd.semf": { + source: "iana", + extensions: [ + "semf" + ] +}, + "application/vnd.shade-save-file": { + source: "iana" +}, + "application/vnd.shana.informed.formdata": { + source: "iana", + extensions: [ + "ifm" + ] +}, + "application/vnd.shana.informed.formtemplate": { + source: "iana", + extensions: [ + "itp" + ] +}, + "application/vnd.shana.informed.interchange": { + source: "iana", + extensions: [ + "iif" + ] +}, + "application/vnd.shana.informed.package": { + source: "iana", + extensions: [ + "ipk" + ] +}, + "application/vnd.shootproof+json": { + source: "iana", + compressible: true +}, + "application/vnd.shopkick+json": { + source: "iana", + compressible: true +}, + "application/vnd.shp": { + source: "iana" +}, + "application/vnd.shx": { + source: "iana" +}, + "application/vnd.sigrok.session": { + source: "iana" +}, + "application/vnd.simtech-mindmapper": { + source: "iana", + extensions: [ + "twd", + "twds" + ] +}, + "application/vnd.siren+json": { + source: "iana", + compressible: true +}, + "application/vnd.smaf": { + source: "iana", + extensions: [ + "mmf" + ] +}, + "application/vnd.smart.notebook": { + source: "iana" +}, + "application/vnd.smart.teacher": { + source: "iana", + extensions: [ + "teacher" + ] +}, + "application/vnd.snesdev-page-table": { + source: "iana" +}, + "application/vnd.software602.filler.form+xml": { + source: "iana", + compressible: true, + extensions: [ + "fo" + ] +}, + "application/vnd.software602.filler.form-xml-zip": { + source: "iana" +}, + "application/vnd.solent.sdkm+xml": { + source: "iana", + compressible: true, + extensions: [ + "sdkm", + "sdkd" + ] +}, + "application/vnd.spotfire.dxp": { + source: "iana", + extensions: [ + "dxp" + ] +}, + "application/vnd.spotfire.sfs": { + source: "iana", + extensions: [ + "sfs" + ] +}, + "application/vnd.sqlite3": { + source: "iana" +}, + "application/vnd.sss-cod": { + source: "iana" +}, + "application/vnd.sss-dtf": { + source: "iana" +}, + "application/vnd.sss-ntf": { + source: "iana" +}, + "application/vnd.stardivision.calc": { + source: "apache", + extensions: [ + "sdc" + ] +}, + "application/vnd.stardivision.draw": { + source: "apache", + extensions: [ + "sda" + ] +}, + "application/vnd.stardivision.impress": { + source: "apache", + extensions: [ + "sdd" + ] +}, + "application/vnd.stardivision.math": { + source: "apache", + extensions: [ + "smf" + ] +}, + "application/vnd.stardivision.writer": { + source: "apache", + extensions: [ + "sdw", + "vor" + ] +}, + "application/vnd.stardivision.writer-global": { + source: "apache", + extensions: [ + "sgl" + ] +}, + "application/vnd.stepmania.package": { + source: "iana", + extensions: [ + "smzip" + ] +}, + "application/vnd.stepmania.stepchart": { + source: "iana", + extensions: [ + "sm" + ] +}, + "application/vnd.street-stream": { + source: "iana" +}, + "application/vnd.sun.wadl+xml": { + source: "iana", + compressible: true, + extensions: [ + "wadl" + ] +}, + "application/vnd.sun.xml.calc": { + source: "apache", + extensions: [ + "sxc" + ] +}, + "application/vnd.sun.xml.calc.template": { + source: "apache", + extensions: [ + "stc" + ] +}, + "application/vnd.sun.xml.draw": { + source: "apache", + extensions: [ + "sxd" + ] +}, + "application/vnd.sun.xml.draw.template": { + source: "apache", + extensions: [ + "std" + ] +}, + "application/vnd.sun.xml.impress": { + source: "apache", + extensions: [ + "sxi" + ] +}, + "application/vnd.sun.xml.impress.template": { + source: "apache", + extensions: [ + "sti" + ] +}, + "application/vnd.sun.xml.math": { + source: "apache", + extensions: [ + "sxm" + ] +}, + "application/vnd.sun.xml.writer": { + source: "apache", + extensions: [ + "sxw" + ] +}, + "application/vnd.sun.xml.writer.global": { + source: "apache", + extensions: [ + "sxg" + ] +}, + "application/vnd.sun.xml.writer.template": { + source: "apache", + extensions: [ + "stw" + ] +}, + "application/vnd.sus-calendar": { + source: "iana", + extensions: [ + "sus", + "susp" + ] +}, + "application/vnd.svd": { + source: "iana", + extensions: [ + "svd" + ] +}, + "application/vnd.swiftview-ics": { + source: "iana" +}, + "application/vnd.sycle+xml": { + source: "iana", + compressible: true +}, + "application/vnd.syft+json": { + source: "iana", + compressible: true +}, + "application/vnd.symbian.install": { + source: "apache", + extensions: [ + "sis", + "sisx" + ] +}, + "application/vnd.syncml+xml": { + source: "iana", + charset: "UTF-8", + compressible: true, + extensions: [ + "xsm" + ] +}, + "application/vnd.syncml.dm+wbxml": { + source: "iana", + charset: "UTF-8", + extensions: [ + "bdm" + ] +}, + "application/vnd.syncml.dm+xml": { + source: "iana", + charset: "UTF-8", + compressible: true, + extensions: [ + "xdm" + ] +}, + "application/vnd.syncml.dm.notification": { + source: "iana" +}, + "application/vnd.syncml.dmddf+wbxml": { + source: "iana" +}, + "application/vnd.syncml.dmddf+xml": { + source: "iana", + charset: "UTF-8", + compressible: true, + extensions: [ + "ddf" + ] +}, + "application/vnd.syncml.dmtnds+wbxml": { + source: "iana" +}, + "application/vnd.syncml.dmtnds+xml": { + source: "iana", + charset: "UTF-8", + compressible: true +}, + "application/vnd.syncml.ds.notification": { + source: "iana" +}, + "application/vnd.tableschema+json": { + source: "iana", + compressible: true +}, + "application/vnd.tao.intent-module-archive": { + source: "iana", + extensions: [ + "tao" + ] +}, + "application/vnd.tcpdump.pcap": { + source: "iana", + extensions: [ + "pcap", + "cap", + "dmp" + ] +}, + "application/vnd.think-cell.ppttc+json": { + source: "iana", + compressible: true +}, + "application/vnd.tmd.mediaflex.api+xml": { + source: "iana", + compressible: true +}, + "application/vnd.tml": { + source: "iana" +}, + "application/vnd.tmobile-livetv": { + source: "iana", + extensions: [ + "tmo" + ] +}, + "application/vnd.tri.onesource": { + source: "iana" +}, + "application/vnd.trid.tpt": { + source: "iana", + extensions: [ + "tpt" + ] +}, + "application/vnd.triscape.mxs": { + source: "iana", + extensions: [ + "mxs" + ] +}, + "application/vnd.trueapp": { + source: "iana", + extensions: [ + "tra" + ] +}, + "application/vnd.truedoc": { + source: "iana" +}, + "application/vnd.ubisoft.webplayer": { + source: "iana" +}, + "application/vnd.ufdl": { + source: "iana", + extensions: [ + "ufd", + "ufdl" + ] +}, + "application/vnd.uiq.theme": { + source: "iana", + extensions: [ + "utz" + ] +}, + "application/vnd.umajin": { + source: "iana", + extensions: [ + "umj" + ] +}, + "application/vnd.unity": { + source: "iana", + extensions: [ + "unityweb" + ] +}, + "application/vnd.uoml+xml": { + source: "iana", + compressible: true, + extensions: [ + "uoml" + ] +}, + "application/vnd.uplanet.alert": { + source: "iana" +}, + "application/vnd.uplanet.alert-wbxml": { + source: "iana" +}, + "application/vnd.uplanet.bearer-choice": { + source: "iana" +}, + "application/vnd.uplanet.bearer-choice-wbxml": { + source: "iana" +}, + "application/vnd.uplanet.cacheop": { + source: "iana" +}, + "application/vnd.uplanet.cacheop-wbxml": { + source: "iana" +}, + "application/vnd.uplanet.channel": { + source: "iana" +}, + "application/vnd.uplanet.channel-wbxml": { + source: "iana" +}, + "application/vnd.uplanet.list": { + source: "iana" +}, + "application/vnd.uplanet.list-wbxml": { + source: "iana" +}, + "application/vnd.uplanet.listcmd": { + source: "iana" +}, + "application/vnd.uplanet.listcmd-wbxml": { + source: "iana" +}, + "application/vnd.uplanet.signal": { + source: "iana" +}, + "application/vnd.uri-map": { + source: "iana" +}, + "application/vnd.valve.source.material": { + source: "iana" +}, + "application/vnd.vcx": { + source: "iana", + extensions: [ + "vcx" + ] +}, + "application/vnd.vd-study": { + source: "iana" +}, + "application/vnd.vectorworks": { + source: "iana" +}, + "application/vnd.vel+json": { + source: "iana", + compressible: true +}, + "application/vnd.verimatrix.vcas": { + source: "iana" +}, + "application/vnd.veritone.aion+json": { + source: "iana", + compressible: true +}, + "application/vnd.veryant.thin": { + source: "iana" +}, + "application/vnd.ves.encrypted": { + source: "iana" +}, + "application/vnd.vidsoft.vidconference": { + source: "iana" +}, + "application/vnd.visio": { + source: "iana", + extensions: [ + "vsd", + "vst", + "vss", + "vsw" + ] +}, + "application/vnd.visionary": { + source: "iana", + extensions: [ + "vis" + ] +}, + "application/vnd.vividence.scriptfile": { + source: "iana" +}, + "application/vnd.vsf": { + source: "iana", + extensions: [ + "vsf" + ] +}, + "application/vnd.wap.sic": { + source: "iana" +}, + "application/vnd.wap.slc": { + source: "iana" +}, + "application/vnd.wap.wbxml": { + source: "iana", + charset: "UTF-8", + extensions: [ + "wbxml" + ] +}, + "application/vnd.wap.wmlc": { + source: "iana", + extensions: [ + "wmlc" + ] +}, + "application/vnd.wap.wmlscriptc": { + source: "iana", + extensions: [ + "wmlsc" + ] +}, + "application/vnd.webturbo": { + source: "iana", + extensions: [ + "wtb" + ] +}, + "application/vnd.wfa.dpp": { + source: "iana" +}, + "application/vnd.wfa.p2p": { + source: "iana" +}, + "application/vnd.wfa.wsc": { + source: "iana" +}, + "application/vnd.windows.devicepairing": { + source: "iana" +}, + "application/vnd.wmc": { + source: "iana" +}, + "application/vnd.wmf.bootstrap": { + source: "iana" +}, + "application/vnd.wolfram.mathematica": { + source: "iana" +}, + "application/vnd.wolfram.mathematica.package": { + source: "iana" +}, + "application/vnd.wolfram.player": { + source: "iana", + extensions: [ + "nbp" + ] +}, + "application/vnd.wordperfect": { + source: "iana", + extensions: [ + "wpd" + ] +}, + "application/vnd.wqd": { + source: "iana", + extensions: [ + "wqd" + ] +}, + "application/vnd.wrq-hp3000-labelled": { + source: "iana" +}, + "application/vnd.wt.stf": { + source: "iana", + extensions: [ + "stf" + ] +}, + "application/vnd.wv.csp+wbxml": { + source: "iana" +}, + "application/vnd.wv.csp+xml": { + source: "iana", + compressible: true +}, + "application/vnd.wv.ssp+xml": { + source: "iana", + compressible: true +}, + "application/vnd.xacml+json": { + source: "iana", + compressible: true +}, + "application/vnd.xara": { + source: "iana", + extensions: [ + "xar" + ] +}, + "application/vnd.xfdl": { + source: "iana", + extensions: [ + "xfdl" + ] +}, + "application/vnd.xfdl.webform": { + source: "iana" +}, + "application/vnd.xmi+xml": { + source: "iana", + compressible: true +}, + "application/vnd.xmpie.cpkg": { + source: "iana" +}, + "application/vnd.xmpie.dpkg": { + source: "iana" +}, + "application/vnd.xmpie.plan": { + source: "iana" +}, + "application/vnd.xmpie.ppkg": { + source: "iana" +}, + "application/vnd.xmpie.xlim": { + source: "iana" +}, + "application/vnd.yamaha.hv-dic": { + source: "iana", + extensions: [ + "hvd" + ] +}, + "application/vnd.yamaha.hv-script": { + source: "iana", + extensions: [ + "hvs" + ] +}, + "application/vnd.yamaha.hv-voice": { + source: "iana", + extensions: [ + "hvp" + ] +}, + "application/vnd.yamaha.openscoreformat": { + source: "iana", + extensions: [ + "osf" + ] +}, + "application/vnd.yamaha.openscoreformat.osfpvg+xml": { + source: "iana", + compressible: true, + extensions: [ + "osfpvg" + ] +}, + "application/vnd.yamaha.remote-setup": { + source: "iana" +}, + "application/vnd.yamaha.smaf-audio": { + source: "iana", + extensions: [ + "saf" + ] +}, + "application/vnd.yamaha.smaf-phrase": { + source: "iana", + extensions: [ + "spf" + ] +}, + "application/vnd.yamaha.through-ngn": { + source: "iana" +}, + "application/vnd.yamaha.tunnel-udpencap": { + source: "iana" +}, + "application/vnd.yaoweme": { + source: "iana" +}, + "application/vnd.yellowriver-custom-menu": { + source: "iana", + extensions: [ + "cmp" + ] +}, + "application/vnd.youtube.yt": { + source: "iana" +}, + "application/vnd.zul": { + source: "iana", + extensions: [ + "zir", + "zirz" + ] +}, + "application/vnd.zzazz.deck+xml": { + source: "iana", + compressible: true, + extensions: [ + "zaz" + ] +}, + "application/voicexml+xml": { + source: "iana", + compressible: true, + extensions: [ + "vxml" + ] +}, + "application/voucher-cms+json": { + source: "iana", + compressible: true +}, + "application/vq-rtcpxr": { + source: "iana" +}, + "application/wasm": { + source: "iana", + compressible: true, + extensions: [ + "wasm" + ] +}, + "application/watcherinfo+xml": { + source: "iana", + compressible: true, + extensions: [ + "wif" + ] +}, + "application/webpush-options+json": { + source: "iana", + compressible: true +}, + "application/whoispp-query": { + source: "iana" +}, + "application/whoispp-response": { + source: "iana" +}, + "application/widget": { + source: "iana", + extensions: [ + "wgt" + ] +}, + "application/winhlp": { + source: "apache", + extensions: [ + "hlp" + ] +}, + "application/wita": { + source: "iana" +}, + "application/wordperfect5.1": { + source: "iana" +}, + "application/wsdl+xml": { + source: "iana", + compressible: true, + extensions: [ + "wsdl" + ] +}, + "application/wspolicy+xml": { + source: "iana", + compressible: true, + extensions: [ + "wspolicy" + ] +}, + "application/x-7z-compressed": { + source: "apache", + compressible: false, + extensions: [ + "7z" + ] +}, + "application/x-abiword": { + source: "apache", + extensions: [ + "abw" + ] +}, + "application/x-ace-compressed": { + source: "apache", + extensions: [ + "ace" + ] +}, + "application/x-amf": { + source: "apache" +}, + "application/x-apple-diskimage": { + source: "apache", + extensions: [ + "dmg" + ] +}, + "application/x-arj": { + compressible: false, + extensions: [ + "arj" + ] +}, + "application/x-authorware-bin": { + source: "apache", + extensions: [ + "aab", + "x32", + "u32", + "vox" + ] +}, + "application/x-authorware-map": { + source: "apache", + extensions: [ + "aam" + ] +}, + "application/x-authorware-seg": { + source: "apache", + extensions: [ + "aas" + ] +}, + "application/x-bcpio": { + source: "apache", + extensions: [ + "bcpio" + ] +}, + "application/x-bdoc": { + compressible: false, + extensions: [ + "bdoc" + ] +}, + "application/x-bittorrent": { + source: "apache", + extensions: [ + "torrent" + ] +}, + "application/x-blorb": { + source: "apache", + extensions: [ + "blb", + "blorb" + ] +}, + "application/x-bzip": { + source: "apache", + compressible: false, + extensions: [ + "bz" + ] +}, + "application/x-bzip2": { + source: "apache", + compressible: false, + extensions: [ + "bz2", + "boz" + ] +}, + "application/x-cbr": { + source: "apache", + extensions: [ + "cbr", + "cba", + "cbt", + "cbz", + "cb7" + ] +}, + "application/x-cdlink": { + source: "apache", + extensions: [ + "vcd" + ] +}, + "application/x-cfs-compressed": { + source: "apache", + extensions: [ + "cfs" + ] +}, + "application/x-chat": { + source: "apache", + extensions: [ + "chat" + ] +}, + "application/x-chess-pgn": { + source: "apache", + extensions: [ + "pgn" + ] +}, + "application/x-chrome-extension": { + extensions: [ + "crx" + ] +}, + "application/x-cocoa": { + source: "nginx", + extensions: [ + "cco" + ] +}, + "application/x-compress": { + source: "apache" +}, + "application/x-conference": { + source: "apache", + extensions: [ + "nsc" + ] +}, + "application/x-cpio": { + source: "apache", + extensions: [ + "cpio" + ] +}, + "application/x-csh": { + source: "apache", + extensions: [ + "csh" + ] +}, + "application/x-deb": { + compressible: false +}, + "application/x-debian-package": { + source: "apache", + extensions: [ + "deb", + "udeb" + ] +}, + "application/x-dgc-compressed": { + source: "apache", + extensions: [ + "dgc" + ] +}, + "application/x-director": { + source: "apache", + extensions: [ + "dir", + "dcr", + "dxr", + "cst", + "cct", + "cxt", + "w3d", + "fgd", + "swa" + ] +}, + "application/x-doom": { + source: "apache", + extensions: [ + "wad" + ] +}, + "application/x-dtbncx+xml": { + source: "apache", + compressible: true, + extensions: [ + "ncx" + ] +}, + "application/x-dtbook+xml": { + source: "apache", + compressible: true, + extensions: [ + "dtb" + ] +}, + "application/x-dtbresource+xml": { + source: "apache", + compressible: true, + extensions: [ + "res" + ] +}, + "application/x-dvi": { + source: "apache", + compressible: false, + extensions: [ + "dvi" + ] +}, + "application/x-envoy": { + source: "apache", + extensions: [ + "evy" + ] +}, + "application/x-eva": { + source: "apache", + extensions: [ + "eva" + ] +}, + "application/x-font-bdf": { + source: "apache", + extensions: [ + "bdf" + ] +}, + "application/x-font-dos": { + source: "apache" +}, + "application/x-font-framemaker": { + source: "apache" +}, + "application/x-font-ghostscript": { + source: "apache", + extensions: [ + "gsf" + ] +}, + "application/x-font-libgrx": { + source: "apache" +}, + "application/x-font-linux-psf": { + source: "apache", + extensions: [ + "psf" + ] +}, + "application/x-font-pcf": { + source: "apache", + extensions: [ + "pcf" + ] +}, + "application/x-font-snf": { + source: "apache", + extensions: [ + "snf" + ] +}, + "application/x-font-speedo": { + source: "apache" +}, + "application/x-font-sunos-news": { + source: "apache" +}, + "application/x-font-type1": { + source: "apache", + extensions: [ + "pfa", + "pfb", + "pfm", + "afm" + ] +}, + "application/x-font-vfont": { + source: "apache" +}, + "application/x-freearc": { + source: "apache", + extensions: [ + "arc" + ] +}, + "application/x-futuresplash": { + source: "apache", + extensions: [ + "spl" + ] +}, + "application/x-gca-compressed": { + source: "apache", + extensions: [ + "gca" + ] +}, + "application/x-glulx": { + source: "apache", + extensions: [ + "ulx" + ] +}, + "application/x-gnumeric": { + source: "apache", + extensions: [ + "gnumeric" + ] +}, + "application/x-gramps-xml": { + source: "apache", + extensions: [ + "gramps" + ] +}, + "application/x-gtar": { + source: "apache", + extensions: [ + "gtar" + ] +}, + "application/x-gzip": { + source: "apache" +}, + "application/x-hdf": { + source: "apache", + extensions: [ + "hdf" + ] +}, + "application/x-httpd-php": { + compressible: true, + extensions: [ + "php" + ] +}, + "application/x-install-instructions": { + source: "apache", + extensions: [ + "install" + ] +}, + "application/x-iso9660-image": { + source: "apache", + extensions: [ + "iso" + ] +}, + "application/x-iwork-keynote-sffkey": { + extensions: [ + "key" + ] +}, + "application/x-iwork-numbers-sffnumbers": { + extensions: [ + "numbers" + ] +}, + "application/x-iwork-pages-sffpages": { + extensions: [ + "pages" + ] +}, + "application/x-java-archive-diff": { + source: "nginx", + extensions: [ + "jardiff" + ] +}, + "application/x-java-jnlp-file": { + source: "apache", + compressible: false, + extensions: [ + "jnlp" + ] +}, + "application/x-javascript": { + compressible: true +}, + "application/x-keepass2": { + extensions: [ + "kdbx" + ] +}, + "application/x-latex": { + source: "apache", + compressible: false, + extensions: [ + "latex" + ] +}, + "application/x-lua-bytecode": { + extensions: [ + "luac" + ] +}, + "application/x-lzh-compressed": { + source: "apache", + extensions: [ + "lzh", + "lha" + ] +}, + "application/x-makeself": { + source: "nginx", + extensions: [ + "run" + ] +}, + "application/x-mie": { + source: "apache", + extensions: [ + "mie" + ] +}, + "application/x-mobipocket-ebook": { + source: "apache", + extensions: [ + "prc", + "mobi" + ] +}, + "application/x-mpegurl": { + compressible: false +}, + "application/x-ms-application": { + source: "apache", + extensions: [ + "application" + ] +}, + "application/x-ms-shortcut": { + source: "apache", + extensions: [ + "lnk" + ] +}, + "application/x-ms-wmd": { + source: "apache", + extensions: [ + "wmd" + ] +}, + "application/x-ms-wmz": { + source: "apache", + extensions: [ + "wmz" + ] +}, + "application/x-ms-xbap": { + source: "apache", + extensions: [ + "xbap" + ] +}, + "application/x-msaccess": { + source: "apache", + extensions: [ + "mdb" + ] +}, + "application/x-msbinder": { + source: "apache", + extensions: [ + "obd" + ] +}, + "application/x-mscardfile": { + source: "apache", + extensions: [ + "crd" + ] +}, + "application/x-msclip": { + source: "apache", + extensions: [ + "clp" + ] +}, + "application/x-msdos-program": { + extensions: [ + "exe" + ] +}, + "application/x-msdownload": { + source: "apache", + extensions: [ + "exe", + "dll", + "com", + "bat", + "msi" + ] +}, + "application/x-msmediaview": { + source: "apache", + extensions: [ + "mvb", + "m13", + "m14" + ] +}, + "application/x-msmetafile": { + source: "apache", + extensions: [ + "wmf", + "wmz", + "emf", + "emz" + ] +}, + "application/x-msmoney": { + source: "apache", + extensions: [ + "mny" + ] +}, + "application/x-mspublisher": { + source: "apache", + extensions: [ + "pub" + ] +}, + "application/x-msschedule": { + source: "apache", + extensions: [ + "scd" + ] +}, + "application/x-msterminal": { + source: "apache", + extensions: [ + "trm" + ] +}, + "application/x-mswrite": { + source: "apache", + extensions: [ + "wri" + ] +}, + "application/x-netcdf": { + source: "apache", + extensions: [ + "nc", + "cdf" + ] +}, + "application/x-ns-proxy-autoconfig": { + compressible: true, + extensions: [ + "pac" + ] +}, + "application/x-nzb": { + source: "apache", + extensions: [ + "nzb" + ] +}, + "application/x-perl": { + source: "nginx", + extensions: [ + "pl", + "pm" + ] +}, + "application/x-pilot": { + source: "nginx", + extensions: [ + "prc", + "pdb" + ] +}, + "application/x-pkcs12": { + source: "apache", + compressible: false, + extensions: [ + "p12", + "pfx" + ] +}, + "application/x-pkcs7-certificates": { + source: "apache", + extensions: [ + "p7b", + "spc" + ] +}, + "application/x-pkcs7-certreqresp": { + source: "apache", + extensions: [ + "p7r" + ] +}, + "application/x-pki-message": { + source: "iana" +}, + "application/x-rar-compressed": { + source: "apache", + compressible: false, + extensions: [ + "rar" + ] +}, + "application/x-redhat-package-manager": { + source: "nginx", + extensions: [ + "rpm" + ] +}, + "application/x-research-info-systems": { + source: "apache", + extensions: [ + "ris" + ] +}, + "application/x-sea": { + source: "nginx", + extensions: [ + "sea" + ] +}, + "application/x-sh": { + source: "apache", + compressible: true, + extensions: [ + "sh" + ] +}, + "application/x-shar": { + source: "apache", + extensions: [ + "shar" + ] +}, + "application/x-shockwave-flash": { + source: "apache", + compressible: false, + extensions: [ + "swf" + ] +}, + "application/x-silverlight-app": { + source: "apache", + extensions: [ + "xap" + ] +}, + "application/x-sql": { + source: "apache", + extensions: [ + "sql" + ] +}, + "application/x-stuffit": { + source: "apache", + compressible: false, + extensions: [ + "sit" + ] +}, + "application/x-stuffitx": { + source: "apache", + extensions: [ + "sitx" + ] +}, + "application/x-subrip": { + source: "apache", + extensions: [ + "srt" + ] +}, + "application/x-sv4cpio": { + source: "apache", + extensions: [ + "sv4cpio" + ] +}, + "application/x-sv4crc": { + source: "apache", + extensions: [ + "sv4crc" + ] +}, + "application/x-t3vm-image": { + source: "apache", + extensions: [ + "t3" + ] +}, + "application/x-tads": { + source: "apache", + extensions: [ + "gam" + ] +}, + "application/x-tar": { + source: "apache", + compressible: true, + extensions: [ + "tar" + ] +}, + "application/x-tcl": { + source: "apache", + extensions: [ + "tcl", + "tk" + ] +}, + "application/x-tex": { + source: "apache", + extensions: [ + "tex" + ] +}, + "application/x-tex-tfm": { + source: "apache", + extensions: [ + "tfm" + ] +}, + "application/x-texinfo": { + source: "apache", + extensions: [ + "texinfo", + "texi" + ] +}, + "application/x-tgif": { + source: "apache", + extensions: [ + "obj" + ] +}, + "application/x-ustar": { + source: "apache", + extensions: [ + "ustar" + ] +}, + "application/x-virtualbox-hdd": { + compressible: true, + extensions: [ + "hdd" + ] +}, + "application/x-virtualbox-ova": { + compressible: true, + extensions: [ + "ova" + ] +}, + "application/x-virtualbox-ovf": { + compressible: true, + extensions: [ + "ovf" + ] +}, + "application/x-virtualbox-vbox": { + compressible: true, + extensions: [ + "vbox" + ] +}, + "application/x-virtualbox-vbox-extpack": { + compressible: false, + extensions: [ + "vbox-extpack" + ] +}, + "application/x-virtualbox-vdi": { + compressible: true, + extensions: [ + "vdi" + ] +}, + "application/x-virtualbox-vhd": { + compressible: true, + extensions: [ + "vhd" + ] +}, + "application/x-virtualbox-vmdk": { + compressible: true, + extensions: [ + "vmdk" + ] +}, + "application/x-wais-source": { + source: "apache", + extensions: [ + "src" + ] +}, + "application/x-web-app-manifest+json": { + compressible: true, + extensions: [ + "webapp" + ] +}, + "application/x-www-form-urlencoded": { + source: "iana", + compressible: true +}, + "application/x-x509-ca-cert": { + source: "iana", + extensions: [ + "der", + "crt", + "pem" + ] +}, + "application/x-x509-ca-ra-cert": { + source: "iana" +}, + "application/x-x509-next-ca-cert": { + source: "iana" +}, + "application/x-xfig": { + source: "apache", + extensions: [ + "fig" + ] +}, + "application/x-xliff+xml": { + source: "apache", + compressible: true, + extensions: [ + "xlf" + ] +}, + "application/x-xpinstall": { + source: "apache", + compressible: false, + extensions: [ + "xpi" + ] +}, + "application/x-xz": { + source: "apache", + extensions: [ + "xz" + ] +}, + "application/x-zmachine": { + source: "apache", + extensions: [ + "z1", + "z2", + "z3", + "z4", + "z5", + "z6", + "z7", + "z8" + ] +}, + "application/x400-bp": { + source: "iana" +}, + "application/xacml+xml": { + source: "iana", + compressible: true +}, + "application/xaml+xml": { + source: "apache", + compressible: true, + extensions: [ + "xaml" + ] +}, + "application/xcap-att+xml": { + source: "iana", + compressible: true, + extensions: [ + "xav" + ] +}, + "application/xcap-caps+xml": { + source: "iana", + compressible: true, + extensions: [ + "xca" + ] +}, + "application/xcap-diff+xml": { + source: "iana", + compressible: true, + extensions: [ + "xdf" + ] +}, + "application/xcap-el+xml": { + source: "iana", + compressible: true, + extensions: [ + "xel" + ] +}, + "application/xcap-error+xml": { + source: "iana", + compressible: true +}, + "application/xcap-ns+xml": { + source: "iana", + compressible: true, + extensions: [ + "xns" + ] +}, + "application/xcon-conference-info+xml": { + source: "iana", + compressible: true +}, + "application/xcon-conference-info-diff+xml": { + source: "iana", + compressible: true +}, + "application/xenc+xml": { + source: "iana", + compressible: true, + extensions: [ + "xenc" + ] +}, + "application/xhtml+xml": { + source: "iana", + compressible: true, + extensions: [ + "xhtml", + "xht" + ] +}, + "application/xhtml-voice+xml": { + source: "apache", + compressible: true +}, + "application/xliff+xml": { + source: "iana", + compressible: true, + extensions: [ + "xlf" + ] +}, + "application/xml": { + source: "iana", + compressible: true, + extensions: [ + "xml", + "xsl", + "xsd", + "rng" + ] +}, + "application/xml-dtd": { + source: "iana", + compressible: true, + extensions: [ + "dtd" + ] +}, + "application/xml-external-parsed-entity": { + source: "iana" +}, + "application/xml-patch+xml": { + source: "iana", + compressible: true +}, + "application/xmpp+xml": { + source: "iana", + compressible: true +}, + "application/xop+xml": { + source: "iana", + compressible: true, + extensions: [ + "xop" + ] +}, + "application/xproc+xml": { + source: "apache", + compressible: true, + extensions: [ + "xpl" + ] +}, + "application/xslt+xml": { + source: "iana", + compressible: true, + extensions: [ + "xsl", + "xslt" + ] +}, + "application/xspf+xml": { + source: "apache", + compressible: true, + extensions: [ + "xspf" + ] +}, + "application/xv+xml": { + source: "iana", + compressible: true, + extensions: [ + "mxml", + "xhvml", + "xvml", + "xvm" + ] +}, + "application/yang": { + source: "iana", + extensions: [ + "yang" + ] +}, + "application/yang-data+json": { + source: "iana", + compressible: true +}, + "application/yang-data+xml": { + source: "iana", + compressible: true +}, + "application/yang-patch+json": { + source: "iana", + compressible: true +}, + "application/yang-patch+xml": { + source: "iana", + compressible: true +}, + "application/yin+xml": { + source: "iana", + compressible: true, + extensions: [ + "yin" + ] +}, + "application/zip": { + source: "iana", + compressible: false, + extensions: [ + "zip" + ] +}, + "application/zlib": { + source: "iana" +}, + "application/zstd": { + source: "iana" +}, + "audio/1d-interleaved-parityfec": { + source: "iana" +}, + "audio/32kadpcm": { + source: "iana" +}, + "audio/3gpp": { + source: "iana", + compressible: false, + extensions: [ + "3gpp" + ] +}, + "audio/3gpp2": { + source: "iana" +}, + "audio/aac": { + source: "iana" +}, + "audio/ac3": { + source: "iana" +}, + "audio/adpcm": { + source: "apache", + extensions: [ + "adp" + ] +}, + "audio/amr": { + source: "iana", + extensions: [ + "amr" + ] +}, + "audio/amr-wb": { + source: "iana" +}, + "audio/amr-wb+": { + source: "iana" +}, + "audio/aptx": { + source: "iana" +}, + "audio/asc": { + source: "iana" +}, + "audio/atrac-advanced-lossless": { + source: "iana" +}, + "audio/atrac-x": { + source: "iana" +}, + "audio/atrac3": { + source: "iana" +}, + "audio/basic": { + source: "iana", + compressible: false, + extensions: [ + "au", + "snd" + ] +}, + "audio/bv16": { + source: "iana" +}, + "audio/bv32": { + source: "iana" +}, + "audio/clearmode": { + source: "iana" +}, + "audio/cn": { + source: "iana" +}, + "audio/dat12": { + source: "iana" +}, + "audio/dls": { + source: "iana" +}, + "audio/dsr-es201108": { + source: "iana" +}, + "audio/dsr-es202050": { + source: "iana" +}, + "audio/dsr-es202211": { + source: "iana" +}, + "audio/dsr-es202212": { + source: "iana" +}, + "audio/dv": { + source: "iana" +}, + "audio/dvi4": { + source: "iana" +}, + "audio/eac3": { + source: "iana" +}, + "audio/encaprtp": { + source: "iana" +}, + "audio/evrc": { + source: "iana" +}, + "audio/evrc-qcp": { + source: "iana" +}, + "audio/evrc0": { + source: "iana" +}, + "audio/evrc1": { + source: "iana" +}, + "audio/evrcb": { + source: "iana" +}, + "audio/evrcb0": { + source: "iana" +}, + "audio/evrcb1": { + source: "iana" +}, + "audio/evrcnw": { + source: "iana" +}, + "audio/evrcnw0": { + source: "iana" +}, + "audio/evrcnw1": { + source: "iana" +}, + "audio/evrcwb": { + source: "iana" +}, + "audio/evrcwb0": { + source: "iana" +}, + "audio/evrcwb1": { + source: "iana" +}, + "audio/evs": { + source: "iana" +}, + "audio/flexfec": { + source: "iana" +}, + "audio/fwdred": { + source: "iana" +}, + "audio/g711-0": { + source: "iana" +}, + "audio/g719": { + source: "iana" +}, + "audio/g722": { + source: "iana" +}, + "audio/g7221": { + source: "iana" +}, + "audio/g723": { + source: "iana" +}, + "audio/g726-16": { + source: "iana" +}, + "audio/g726-24": { + source: "iana" +}, + "audio/g726-32": { + source: "iana" +}, + "audio/g726-40": { + source: "iana" +}, + "audio/g728": { + source: "iana" +}, + "audio/g729": { + source: "iana" +}, + "audio/g7291": { + source: "iana" +}, + "audio/g729d": { + source: "iana" +}, + "audio/g729e": { + source: "iana" +}, + "audio/gsm": { + source: "iana" +}, + "audio/gsm-efr": { + source: "iana" +}, + "audio/gsm-hr-08": { + source: "iana" +}, + "audio/ilbc": { + source: "iana" +}, + "audio/ip-mr_v2.5": { + source: "iana" +}, + "audio/isac": { + source: "apache" +}, + "audio/l16": { + source: "iana" +}, + "audio/l20": { + source: "iana" +}, + "audio/l24": { + source: "iana", + compressible: false +}, + "audio/l8": { + source: "iana" +}, + "audio/lpc": { + source: "iana" +}, + "audio/melp": { + source: "iana" +}, + "audio/melp1200": { + source: "iana" +}, + "audio/melp2400": { + source: "iana" +}, + "audio/melp600": { + source: "iana" +}, + "audio/mhas": { + source: "iana" +}, + "audio/midi": { + source: "apache", + extensions: [ + "mid", + "midi", + "kar", + "rmi" + ] +}, + "audio/mobile-xmf": { + source: "iana", + extensions: [ + "mxmf" + ] +}, + "audio/mp3": { + compressible: false, + extensions: [ + "mp3" + ] +}, + "audio/mp4": { + source: "iana", + compressible: false, + extensions: [ + "m4a", + "mp4a" + ] +}, + "audio/mp4a-latm": { + source: "iana" +}, + "audio/mpa": { + source: "iana" +}, + "audio/mpa-robust": { + source: "iana" +}, + "audio/mpeg": { + source: "iana", + compressible: false, + extensions: [ + "mpga", + "mp2", + "mp2a", + "mp3", + "m2a", + "m3a" + ] +}, + "audio/mpeg4-generic": { + source: "iana" +}, + "audio/musepack": { + source: "apache" +}, + "audio/ogg": { + source: "iana", + compressible: false, + extensions: [ + "oga", + "ogg", + "spx", + "opus" + ] +}, + "audio/opus": { + source: "iana" +}, + "audio/parityfec": { + source: "iana" +}, + "audio/pcma": { + source: "iana" +}, + "audio/pcma-wb": { + source: "iana" +}, + "audio/pcmu": { + source: "iana" +}, + "audio/pcmu-wb": { + source: "iana" +}, + "audio/prs.sid": { + source: "iana" +}, + "audio/qcelp": { + source: "iana" +}, + "audio/raptorfec": { + source: "iana" +}, + "audio/red": { + source: "iana" +}, + "audio/rtp-enc-aescm128": { + source: "iana" +}, + "audio/rtp-midi": { + source: "iana" +}, + "audio/rtploopback": { + source: "iana" +}, + "audio/rtx": { + source: "iana" +}, + "audio/s3m": { + source: "apache", + extensions: [ + "s3m" + ] +}, + "audio/scip": { + source: "iana" +}, + "audio/silk": { + source: "apache", + extensions: [ + "sil" + ] +}, + "audio/smv": { + source: "iana" +}, + "audio/smv-qcp": { + source: "iana" +}, + "audio/smv0": { + source: "iana" +}, + "audio/sofa": { + source: "iana" +}, + "audio/sp-midi": { + source: "iana" +}, + "audio/speex": { + source: "iana" +}, + "audio/t140c": { + source: "iana" +}, + "audio/t38": { + source: "iana" +}, + "audio/telephone-event": { + source: "iana" +}, + "audio/tetra_acelp": { + source: "iana" +}, + "audio/tetra_acelp_bb": { + source: "iana" +}, + "audio/tone": { + source: "iana" +}, + "audio/tsvcis": { + source: "iana" +}, + "audio/uemclip": { + source: "iana" +}, + "audio/ulpfec": { + source: "iana" +}, + "audio/usac": { + source: "iana" +}, + "audio/vdvi": { + source: "iana" +}, + "audio/vmr-wb": { + source: "iana" +}, + "audio/vnd.3gpp.iufp": { + source: "iana" +}, + "audio/vnd.4sb": { + source: "iana" +}, + "audio/vnd.audiokoz": { + source: "iana" +}, + "audio/vnd.celp": { + source: "iana" +}, + "audio/vnd.cisco.nse": { + source: "iana" +}, + "audio/vnd.cmles.radio-events": { + source: "iana" +}, + "audio/vnd.cns.anp1": { + source: "iana" +}, + "audio/vnd.cns.inf1": { + source: "iana" +}, + "audio/vnd.dece.audio": { + source: "iana", + extensions: [ + "uva", + "uvva" + ] +}, + "audio/vnd.digital-winds": { + source: "iana", + extensions: [ + "eol" + ] +}, + "audio/vnd.dlna.adts": { + source: "iana" +}, + "audio/vnd.dolby.heaac.1": { + source: "iana" +}, + "audio/vnd.dolby.heaac.2": { + source: "iana" +}, + "audio/vnd.dolby.mlp": { + source: "iana" +}, + "audio/vnd.dolby.mps": { + source: "iana" +}, + "audio/vnd.dolby.pl2": { + source: "iana" +}, + "audio/vnd.dolby.pl2x": { + source: "iana" +}, + "audio/vnd.dolby.pl2z": { + source: "iana" +}, + "audio/vnd.dolby.pulse.1": { + source: "iana" +}, + "audio/vnd.dra": { + source: "iana", + extensions: [ + "dra" + ] +}, + "audio/vnd.dts": { + source: "iana", + extensions: [ + "dts" + ] +}, + "audio/vnd.dts.hd": { + source: "iana", + extensions: [ + "dtshd" + ] +}, + "audio/vnd.dts.uhd": { + source: "iana" +}, + "audio/vnd.dvb.file": { + source: "iana" +}, + "audio/vnd.everad.plj": { + source: "iana" +}, + "audio/vnd.hns.audio": { + source: "iana" +}, + "audio/vnd.lucent.voice": { + source: "iana", + extensions: [ + "lvp" + ] +}, + "audio/vnd.ms-playready.media.pya": { + source: "iana", + extensions: [ + "pya" + ] +}, + "audio/vnd.nokia.mobile-xmf": { + source: "iana" +}, + "audio/vnd.nortel.vbk": { + source: "iana" +}, + "audio/vnd.nuera.ecelp4800": { + source: "iana", + extensions: [ + "ecelp4800" + ] +}, + "audio/vnd.nuera.ecelp7470": { + source: "iana", + extensions: [ + "ecelp7470" + ] +}, + "audio/vnd.nuera.ecelp9600": { + source: "iana", + extensions: [ + "ecelp9600" + ] +}, + "audio/vnd.octel.sbc": { + source: "iana" +}, + "audio/vnd.presonus.multitrack": { + source: "iana" +}, + "audio/vnd.qcelp": { + source: "iana" +}, + "audio/vnd.rhetorex.32kadpcm": { + source: "iana" +}, + "audio/vnd.rip": { + source: "iana", + extensions: [ + "rip" + ] +}, + "audio/vnd.rn-realaudio": { + compressible: false +}, + "audio/vnd.sealedmedia.softseal.mpeg": { + source: "iana" +}, + "audio/vnd.vmx.cvsd": { + source: "iana" +}, + "audio/vnd.wave": { + compressible: false +}, + "audio/vorbis": { + source: "iana", + compressible: false +}, + "audio/vorbis-config": { + source: "iana" +}, + "audio/wav": { + compressible: false, + extensions: [ + "wav" + ] +}, + "audio/wave": { + compressible: false, + extensions: [ + "wav" + ] +}, + "audio/webm": { + source: "apache", + compressible: false, + extensions: [ + "weba" + ] +}, + "audio/x-aac": { + source: "apache", + compressible: false, + extensions: [ + "aac" + ] +}, + "audio/x-aiff": { + source: "apache", + extensions: [ + "aif", + "aiff", + "aifc" + ] +}, + "audio/x-caf": { + source: "apache", + compressible: false, + extensions: [ + "caf" + ] +}, + "audio/x-flac": { + source: "apache", + extensions: [ + "flac" + ] +}, + "audio/x-m4a": { + source: "nginx", + extensions: [ + "m4a" + ] +}, + "audio/x-matroska": { + source: "apache", + extensions: [ + "mka" + ] +}, + "audio/x-mpegurl": { + source: "apache", + extensions: [ + "m3u" + ] +}, + "audio/x-ms-wax": { + source: "apache", + extensions: [ + "wax" + ] +}, + "audio/x-ms-wma": { + source: "apache", + extensions: [ + "wma" + ] +}, + "audio/x-pn-realaudio": { + source: "apache", + extensions: [ + "ram", + "ra" + ] +}, + "audio/x-pn-realaudio-plugin": { + source: "apache", + extensions: [ + "rmp" + ] +}, + "audio/x-realaudio": { + source: "nginx", + extensions: [ + "ra" + ] +}, + "audio/x-tta": { + source: "apache" +}, + "audio/x-wav": { + source: "apache", + extensions: [ + "wav" + ] +}, + "audio/xm": { + source: "apache", + extensions: [ + "xm" + ] +}, + "chemical/x-cdx": { + source: "apache", + extensions: [ + "cdx" + ] +}, + "chemical/x-cif": { + source: "apache", + extensions: [ + "cif" + ] +}, + "chemical/x-cmdf": { + source: "apache", + extensions: [ + "cmdf" + ] +}, + "chemical/x-cml": { + source: "apache", + extensions: [ + "cml" + ] +}, + "chemical/x-csml": { + source: "apache", + extensions: [ + "csml" + ] +}, + "chemical/x-pdb": { + source: "apache" +}, + "chemical/x-xyz": { + source: "apache", + extensions: [ + "xyz" + ] +}, + "font/collection": { + source: "iana", + extensions: [ + "ttc" + ] +}, + "font/otf": { + source: "iana", + compressible: true, + extensions: [ + "otf" + ] +}, + "font/sfnt": { + source: "iana" +}, + "font/ttf": { + source: "iana", + compressible: true, + extensions: [ + "ttf" + ] +}, + "font/woff": { + source: "iana", + extensions: [ + "woff" + ] +}, + "font/woff2": { + source: "iana", + extensions: [ + "woff2" + ] +}, + "image/aces": { + source: "iana", + extensions: [ + "exr" + ] +}, + "image/apng": { + compressible: false, + extensions: [ + "apng" + ] +}, + "image/avci": { + source: "iana", + extensions: [ + "avci" + ] +}, + "image/avcs": { + source: "iana", + extensions: [ + "avcs" + ] +}, + "image/avif": { + source: "iana", + compressible: false, + extensions: [ + "avif" + ] +}, + "image/bmp": { + source: "iana", + compressible: true, + extensions: [ + "bmp" + ] +}, + "image/cgm": { + source: "iana", + extensions: [ + "cgm" + ] +}, + "image/dicom-rle": { + source: "iana", + extensions: [ + "drle" + ] +}, + "image/emf": { + source: "iana", + extensions: [ + "emf" + ] +}, + "image/fits": { + source: "iana", + extensions: [ + "fits" + ] +}, + "image/g3fax": { + source: "iana", + extensions: [ + "g3" + ] +}, + "image/gif": { + source: "iana", + compressible: false, + extensions: [ + "gif" + ] +}, + "image/heic": { + source: "iana", + extensions: [ + "heic" + ] +}, + "image/heic-sequence": { + source: "iana", + extensions: [ + "heics" + ] +}, + "image/heif": { + source: "iana", + extensions: [ + "heif" + ] +}, + "image/heif-sequence": { + source: "iana", + extensions: [ + "heifs" + ] +}, + "image/hej2k": { + source: "iana", + extensions: [ + "hej2" + ] +}, + "image/hsj2": { + source: "iana", + extensions: [ + "hsj2" + ] +}, + "image/ief": { + source: "iana", + extensions: [ + "ief" + ] +}, + "image/jls": { + source: "iana", + extensions: [ + "jls" + ] +}, + "image/jp2": { + source: "iana", + compressible: false, + extensions: [ + "jp2", + "jpg2" + ] +}, + "image/jpeg": { + source: "iana", + compressible: false, + extensions: [ + "jpeg", + "jpg", + "jpe" + ] +}, + "image/jph": { + source: "iana", + extensions: [ + "jph" + ] +}, + "image/jphc": { + source: "iana", + extensions: [ + "jhc" + ] +}, + "image/jpm": { + source: "iana", + compressible: false, + extensions: [ + "jpm" + ] +}, + "image/jpx": { + source: "iana", + compressible: false, + extensions: [ + "jpx", + "jpf" + ] +}, + "image/jxr": { + source: "iana", + extensions: [ + "jxr" + ] +}, + "image/jxra": { + source: "iana", + extensions: [ + "jxra" + ] +}, + "image/jxrs": { + source: "iana", + extensions: [ + "jxrs" + ] +}, + "image/jxs": { + source: "iana", + extensions: [ + "jxs" + ] +}, + "image/jxsc": { + source: "iana", + extensions: [ + "jxsc" + ] +}, + "image/jxsi": { + source: "iana", + extensions: [ + "jxsi" + ] +}, + "image/jxss": { + source: "iana", + extensions: [ + "jxss" + ] +}, + "image/ktx": { + source: "iana", + extensions: [ + "ktx" + ] +}, + "image/ktx2": { + source: "iana", + extensions: [ + "ktx2" + ] +}, + "image/naplps": { + source: "iana" +}, + "image/pjpeg": { + compressible: false +}, + "image/png": { + source: "iana", + compressible: false, + extensions: [ + "png" + ] +}, + "image/prs.btif": { + source: "iana", + extensions: [ + "btif" + ] +}, + "image/prs.pti": { + source: "iana", + extensions: [ + "pti" + ] +}, + "image/pwg-raster": { + source: "iana" +}, + "image/sgi": { + source: "apache", + extensions: [ + "sgi" + ] +}, + "image/svg+xml": { + source: "iana", + compressible: true, + extensions: [ + "svg", + "svgz" + ] +}, + "image/t38": { + source: "iana", + extensions: [ + "t38" + ] +}, + "image/tiff": { + source: "iana", + compressible: false, + extensions: [ + "tif", + "tiff" + ] +}, + "image/tiff-fx": { + source: "iana", + extensions: [ + "tfx" + ] +}, + "image/vnd.adobe.photoshop": { + source: "iana", + compressible: true, + extensions: [ + "psd" + ] +}, + "image/vnd.airzip.accelerator.azv": { + source: "iana", + extensions: [ + "azv" + ] +}, + "image/vnd.cns.inf2": { + source: "iana" +}, + "image/vnd.dece.graphic": { + source: "iana", + extensions: [ + "uvi", + "uvvi", + "uvg", + "uvvg" + ] +}, + "image/vnd.djvu": { + source: "iana", + extensions: [ + "djvu", + "djv" + ] +}, + "image/vnd.dvb.subtitle": { + source: "iana", + extensions: [ + "sub" + ] +}, + "image/vnd.dwg": { + source: "iana", + extensions: [ + "dwg" + ] +}, + "image/vnd.dxf": { + source: "iana", + extensions: [ + "dxf" + ] +}, + "image/vnd.fastbidsheet": { + source: "iana", + extensions: [ + "fbs" + ] +}, + "image/vnd.fpx": { + source: "iana", + extensions: [ + "fpx" + ] +}, + "image/vnd.fst": { + source: "iana", + extensions: [ + "fst" + ] +}, + "image/vnd.fujixerox.edmics-mmr": { + source: "iana", + extensions: [ + "mmr" + ] +}, + "image/vnd.fujixerox.edmics-rlc": { + source: "iana", + extensions: [ + "rlc" + ] +}, + "image/vnd.globalgraphics.pgb": { + source: "iana" +}, + "image/vnd.microsoft.icon": { + source: "iana", + compressible: true, + extensions: [ + "ico" + ] +}, + "image/vnd.mix": { + source: "iana" +}, + "image/vnd.mozilla.apng": { + source: "iana" +}, + "image/vnd.ms-dds": { + compressible: true, + extensions: [ + "dds" + ] +}, + "image/vnd.ms-modi": { + source: "iana", + extensions: [ + "mdi" + ] +}, + "image/vnd.ms-photo": { + source: "apache", + extensions: [ + "wdp" + ] +}, + "image/vnd.net-fpx": { + source: "iana", + extensions: [ + "npx" + ] +}, + "image/vnd.pco.b16": { + source: "iana", + extensions: [ + "b16" + ] +}, + "image/vnd.radiance": { + source: "iana" +}, + "image/vnd.sealed.png": { + source: "iana" +}, + "image/vnd.sealedmedia.softseal.gif": { + source: "iana" +}, + "image/vnd.sealedmedia.softseal.jpg": { + source: "iana" +}, + "image/vnd.svf": { + source: "iana" +}, + "image/vnd.tencent.tap": { + source: "iana", + extensions: [ + "tap" + ] +}, + "image/vnd.valve.source.texture": { + source: "iana", + extensions: [ + "vtf" + ] +}, + "image/vnd.wap.wbmp": { + source: "iana", + extensions: [ + "wbmp" + ] +}, + "image/vnd.xiff": { + source: "iana", + extensions: [ + "xif" + ] +}, + "image/vnd.zbrush.pcx": { + source: "iana", + extensions: [ + "pcx" + ] +}, + "image/webp": { + source: "apache", + extensions: [ + "webp" + ] +}, + "image/wmf": { + source: "iana", + extensions: [ + "wmf" + ] +}, + "image/x-3ds": { + source: "apache", + extensions: [ + "3ds" + ] +}, + "image/x-cmu-raster": { + source: "apache", + extensions: [ + "ras" + ] +}, + "image/x-cmx": { + source: "apache", + extensions: [ + "cmx" + ] +}, + "image/x-freehand": { + source: "apache", + extensions: [ + "fh", + "fhc", + "fh4", + "fh5", + "fh7" + ] +}, + "image/x-icon": { + source: "apache", + compressible: true, + extensions: [ + "ico" + ] +}, + "image/x-jng": { + source: "nginx", + extensions: [ + "jng" + ] +}, + "image/x-mrsid-image": { + source: "apache", + extensions: [ + "sid" + ] +}, + "image/x-ms-bmp": { + source: "nginx", + compressible: true, + extensions: [ + "bmp" + ] +}, + "image/x-pcx": { + source: "apache", + extensions: [ + "pcx" + ] +}, + "image/x-pict": { + source: "apache", + extensions: [ + "pic", + "pct" + ] +}, + "image/x-portable-anymap": { + source: "apache", + extensions: [ + "pnm" + ] +}, + "image/x-portable-bitmap": { + source: "apache", + extensions: [ + "pbm" + ] +}, + "image/x-portable-graymap": { + source: "apache", + extensions: [ + "pgm" + ] +}, + "image/x-portable-pixmap": { + source: "apache", + extensions: [ + "ppm" + ] +}, + "image/x-rgb": { + source: "apache", + extensions: [ + "rgb" + ] +}, + "image/x-tga": { + source: "apache", + extensions: [ + "tga" + ] +}, + "image/x-xbitmap": { + source: "apache", + extensions: [ + "xbm" + ] +}, + "image/x-xcf": { + compressible: false +}, + "image/x-xpixmap": { + source: "apache", + extensions: [ + "xpm" + ] +}, + "image/x-xwindowdump": { + source: "apache", + extensions: [ + "xwd" + ] +}, + "message/cpim": { + source: "iana" +}, + "message/delivery-status": { + source: "iana" +}, + "message/disposition-notification": { + source: "iana", + extensions: [ + "disposition-notification" + ] +}, + "message/external-body": { + source: "iana" +}, + "message/feedback-report": { + source: "iana" +}, + "message/global": { + source: "iana", + extensions: [ + "u8msg" + ] +}, + "message/global-delivery-status": { + source: "iana", + extensions: [ + "u8dsn" + ] +}, + "message/global-disposition-notification": { + source: "iana", + extensions: [ + "u8mdn" + ] +}, + "message/global-headers": { + source: "iana", + extensions: [ + "u8hdr" + ] +}, + "message/http": { + source: "iana", + compressible: false +}, + "message/imdn+xml": { + source: "iana", + compressible: true +}, + "message/news": { + source: "iana" +}, + "message/partial": { + source: "iana", + compressible: false +}, + "message/rfc822": { + source: "iana", + compressible: true, + extensions: [ + "eml", + "mime" + ] +}, + "message/s-http": { + source: "iana" +}, + "message/sip": { + source: "iana" +}, + "message/sipfrag": { + source: "iana" +}, + "message/tracking-status": { + source: "iana" +}, + "message/vnd.si.simp": { + source: "iana" +}, + "message/vnd.wfa.wsc": { + source: "iana", + extensions: [ + "wsc" + ] +}, + "model/3mf": { + source: "iana", + extensions: [ + "3mf" + ] +}, + "model/e57": { + source: "iana" +}, + "model/gltf+json": { + source: "iana", + compressible: true, + extensions: [ + "gltf" + ] +}, + "model/gltf-binary": { + source: "iana", + compressible: true, + extensions: [ + "glb" + ] +}, + "model/iges": { + source: "iana", + compressible: false, + extensions: [ + "igs", + "iges" + ] +}, + "model/mesh": { + source: "iana", + compressible: false, + extensions: [ + "msh", + "mesh", + "silo" + ] +}, + "model/mtl": { + source: "iana", + extensions: [ + "mtl" + ] +}, + "model/obj": { + source: "iana", + extensions: [ + "obj" + ] +}, + "model/step": { + source: "iana" +}, + "model/step+xml": { + source: "iana", + compressible: true, + extensions: [ + "stpx" + ] +}, + "model/step+zip": { + source: "iana", + compressible: false, + extensions: [ + "stpz" + ] +}, + "model/step-xml+zip": { + source: "iana", + compressible: false, + extensions: [ + "stpxz" + ] +}, + "model/stl": { + source: "iana", + extensions: [ + "stl" + ] +}, + "model/vnd.collada+xml": { + source: "iana", + compressible: true, + extensions: [ + "dae" + ] +}, + "model/vnd.dwf": { + source: "iana", + extensions: [ + "dwf" + ] +}, + "model/vnd.flatland.3dml": { + source: "iana" +}, + "model/vnd.gdl": { + source: "iana", + extensions: [ + "gdl" + ] +}, + "model/vnd.gs-gdl": { + source: "apache" +}, + "model/vnd.gs.gdl": { + source: "iana" +}, + "model/vnd.gtw": { + source: "iana", + extensions: [ + "gtw" + ] +}, + "model/vnd.moml+xml": { + source: "iana", + compressible: true +}, + "model/vnd.mts": { + source: "iana", + extensions: [ + "mts" + ] +}, + "model/vnd.opengex": { + source: "iana", + extensions: [ + "ogex" + ] +}, + "model/vnd.parasolid.transmit.binary": { + source: "iana", + extensions: [ + "x_b" + ] +}, + "model/vnd.parasolid.transmit.text": { + source: "iana", + extensions: [ + "x_t" + ] +}, + "model/vnd.pytha.pyox": { + source: "iana" +}, + "model/vnd.rosette.annotated-data-model": { + source: "iana" +}, + "model/vnd.sap.vds": { + source: "iana", + extensions: [ + "vds" + ] +}, + "model/vnd.usdz+zip": { + source: "iana", + compressible: false, + extensions: [ + "usdz" + ] +}, + "model/vnd.valve.source.compiled-map": { + source: "iana", + extensions: [ + "bsp" + ] +}, + "model/vnd.vtu": { + source: "iana", + extensions: [ + "vtu" + ] +}, + "model/vrml": { + source: "iana", + compressible: false, + extensions: [ + "wrl", + "vrml" + ] +}, + "model/x3d+binary": { + source: "apache", + compressible: false, + extensions: [ + "x3db", + "x3dbz" + ] +}, + "model/x3d+fastinfoset": { + source: "iana", + extensions: [ + "x3db" + ] +}, + "model/x3d+vrml": { + source: "apache", + compressible: false, + extensions: [ + "x3dv", + "x3dvz" + ] +}, + "model/x3d+xml": { + source: "iana", + compressible: true, + extensions: [ + "x3d", + "x3dz" + ] +}, + "model/x3d-vrml": { + source: "iana", + extensions: [ + "x3dv" + ] +}, + "multipart/alternative": { + source: "iana", + compressible: false +}, + "multipart/appledouble": { + source: "iana" +}, + "multipart/byteranges": { + source: "iana" +}, + "multipart/digest": { + source: "iana" +}, + "multipart/encrypted": { + source: "iana", + compressible: false +}, + "multipart/form-data": { + source: "iana", + compressible: false +}, + "multipart/header-set": { + source: "iana" +}, + "multipart/mixed": { + source: "iana" +}, + "multipart/multilingual": { + source: "iana" +}, + "multipart/parallel": { + source: "iana" +}, + "multipart/related": { + source: "iana", + compressible: false +}, + "multipart/report": { + source: "iana" +}, + "multipart/signed": { + source: "iana", + compressible: false +}, + "multipart/vnd.bint.med-plus": { + source: "iana" +}, + "multipart/voice-message": { + source: "iana" +}, + "multipart/x-mixed-replace": { + source: "iana" +}, + "text/1d-interleaved-parityfec": { + source: "iana" +}, + "text/cache-manifest": { + source: "iana", + compressible: true, + extensions: [ + "appcache", + "manifest" + ] +}, + "text/calendar": { + source: "iana", + extensions: [ + "ics", + "ifb" + ] +}, + "text/calender": { + compressible: true +}, + "text/cmd": { + compressible: true +}, + "text/coffeescript": { + extensions: [ + "coffee", + "litcoffee" + ] +}, + "text/cql": { + source: "iana" +}, + "text/cql-expression": { + source: "iana" +}, + "text/cql-identifier": { + source: "iana" +}, + "text/css": { + source: "iana", + charset: "UTF-8", + compressible: true, + extensions: [ + "css" + ] +}, + "text/csv": { + source: "iana", + compressible: true, + extensions: [ + "csv" + ] +}, + "text/csv-schema": { + source: "iana" +}, + "text/directory": { + source: "iana" +}, + "text/dns": { + source: "iana" +}, + "text/ecmascript": { + source: "iana" +}, + "text/encaprtp": { + source: "iana" +}, + "text/enriched": { + source: "iana" +}, + "text/fhirpath": { + source: "iana" +}, + "text/flexfec": { + source: "iana" +}, + "text/fwdred": { + source: "iana" +}, + "text/gff3": { + source: "iana" +}, + "text/grammar-ref-list": { + source: "iana" +}, + "text/html": { + source: "iana", + compressible: true, + extensions: [ + "html", + "htm", + "shtml" + ] +}, + "text/jade": { + extensions: [ + "jade" + ] +}, + "text/javascript": { + source: "iana", + compressible: true +}, + "text/jcr-cnd": { + source: "iana" +}, + "text/jsx": { + compressible: true, + extensions: [ + "jsx" + ] +}, + "text/less": { + compressible: true, + extensions: [ + "less" + ] +}, + "text/markdown": { + source: "iana", + compressible: true, + extensions: [ + "markdown", + "md" + ] +}, + "text/mathml": { + source: "nginx", + extensions: [ + "mml" + ] +}, + "text/mdx": { + compressible: true, + extensions: [ + "mdx" + ] +}, + "text/mizar": { + source: "iana" +}, + "text/n3": { + source: "iana", + charset: "UTF-8", + compressible: true, + extensions: [ + "n3" + ] +}, + "text/parameters": { + source: "iana", + charset: "UTF-8" +}, + "text/parityfec": { + source: "iana" +}, + "text/plain": { + source: "iana", + compressible: true, + extensions: [ + "txt", + "text", + "conf", + "def", + "list", + "log", + "in", + "ini" + ] +}, + "text/provenance-notation": { + source: "iana", + charset: "UTF-8" +}, + "text/prs.fallenstein.rst": { + source: "iana" +}, + "text/prs.lines.tag": { + source: "iana", + extensions: [ + "dsc" + ] +}, + "text/prs.prop.logic": { + source: "iana" +}, + "text/raptorfec": { + source: "iana" +}, + "text/red": { + source: "iana" +}, + "text/rfc822-headers": { + source: "iana" +}, + "text/richtext": { + source: "iana", + compressible: true, + extensions: [ + "rtx" + ] +}, + "text/rtf": { + source: "iana", + compressible: true, + extensions: [ + "rtf" + ] +}, + "text/rtp-enc-aescm128": { + source: "iana" +}, + "text/rtploopback": { + source: "iana" +}, + "text/rtx": { + source: "iana" +}, + "text/sgml": { + source: "iana", + extensions: [ + "sgml", + "sgm" + ] +}, + "text/shaclc": { + source: "iana" +}, + "text/shex": { + source: "iana", + extensions: [ + "shex" + ] +}, + "text/slim": { + extensions: [ + "slim", + "slm" + ] +}, + "text/spdx": { + source: "iana", + extensions: [ + "spdx" + ] +}, + "text/strings": { + source: "iana" +}, + "text/stylus": { + extensions: [ + "stylus", + "styl" + ] +}, + "text/t140": { + source: "iana" +}, + "text/tab-separated-values": { + source: "iana", + compressible: true, + extensions: [ + "tsv" + ] +}, + "text/troff": { + source: "iana", + extensions: [ + "t", + "tr", + "roff", + "man", + "me", + "ms" + ] +}, + "text/turtle": { + source: "iana", + charset: "UTF-8", + extensions: [ + "ttl" + ] +}, + "text/ulpfec": { + source: "iana" +}, + "text/uri-list": { + source: "iana", + compressible: true, + extensions: [ + "uri", + "uris", + "urls" + ] +}, + "text/vcard": { + source: "iana", + compressible: true, + extensions: [ + "vcard" + ] +}, + "text/vnd.a": { + source: "iana" +}, + "text/vnd.abc": { + source: "iana" +}, + "text/vnd.ascii-art": { + source: "iana" +}, + "text/vnd.curl": { + source: "iana", + extensions: [ + "curl" + ] +}, + "text/vnd.curl.dcurl": { + source: "apache", + extensions: [ + "dcurl" + ] +}, + "text/vnd.curl.mcurl": { + source: "apache", + extensions: [ + "mcurl" + ] +}, + "text/vnd.curl.scurl": { + source: "apache", + extensions: [ + "scurl" + ] +}, + "text/vnd.debian.copyright": { + source: "iana", + charset: "UTF-8" +}, + "text/vnd.dmclientscript": { + source: "iana" +}, + "text/vnd.dvb.subtitle": { + source: "iana", + extensions: [ + "sub" + ] +}, + "text/vnd.esmertec.theme-descriptor": { + source: "iana", + charset: "UTF-8" +}, + "text/vnd.familysearch.gedcom": { + source: "iana", + extensions: [ + "ged" + ] +}, + "text/vnd.ficlab.flt": { + source: "iana" +}, + "text/vnd.fly": { + source: "iana", + extensions: [ + "fly" + ] +}, + "text/vnd.fmi.flexstor": { + source: "iana", + extensions: [ + "flx" + ] +}, + "text/vnd.gml": { + source: "iana" +}, + "text/vnd.graphviz": { + source: "iana", + extensions: [ + "gv" + ] +}, + "text/vnd.hans": { + source: "iana" +}, + "text/vnd.hgl": { + source: "iana" +}, + "text/vnd.in3d.3dml": { + source: "iana", + extensions: [ + "3dml" + ] +}, + "text/vnd.in3d.spot": { + source: "iana", + extensions: [ + "spot" + ] +}, + "text/vnd.iptc.newsml": { + source: "iana" +}, + "text/vnd.iptc.nitf": { + source: "iana" +}, + "text/vnd.latex-z": { + source: "iana" +}, + "text/vnd.motorola.reflex": { + source: "iana" +}, + "text/vnd.ms-mediapackage": { + source: "iana" +}, + "text/vnd.net2phone.commcenter.command": { + source: "iana" +}, + "text/vnd.radisys.msml-basic-layout": { + source: "iana" +}, + "text/vnd.senx.warpscript": { + source: "iana" +}, + "text/vnd.si.uricatalogue": { + source: "iana" +}, + "text/vnd.sosi": { + source: "iana" +}, + "text/vnd.sun.j2me.app-descriptor": { + source: "iana", + charset: "UTF-8", + extensions: [ + "jad" + ] +}, + "text/vnd.trolltech.linguist": { + source: "iana", + charset: "UTF-8" +}, + "text/vnd.wap.si": { + source: "iana" +}, + "text/vnd.wap.sl": { + source: "iana" +}, + "text/vnd.wap.wml": { + source: "iana", + extensions: [ + "wml" + ] +}, + "text/vnd.wap.wmlscript": { + source: "iana", + extensions: [ + "wmls" + ] +}, + "text/vtt": { + source: "iana", + charset: "UTF-8", + compressible: true, + extensions: [ + "vtt" + ] +}, + "text/x-asm": { + source: "apache", + extensions: [ + "s", + "asm" + ] +}, + "text/x-c": { + source: "apache", + extensions: [ + "c", + "cc", + "cxx", + "cpp", + "h", + "hh", + "dic" + ] +}, + "text/x-component": { + source: "nginx", + extensions: [ + "htc" + ] +}, + "text/x-fortran": { + source: "apache", + extensions: [ + "f", + "for", + "f77", + "f90" + ] +}, + "text/x-gwt-rpc": { + compressible: true +}, + "text/x-handlebars-template": { + extensions: [ + "hbs" + ] +}, + "text/x-java-source": { + source: "apache", + extensions: [ + "java" + ] +}, + "text/x-jquery-tmpl": { + compressible: true +}, + "text/x-lua": { + extensions: [ + "lua" + ] +}, + "text/x-markdown": { + compressible: true, + extensions: [ + "mkd" + ] +}, + "text/x-nfo": { + source: "apache", + extensions: [ + "nfo" + ] +}, + "text/x-opml": { + source: "apache", + extensions: [ + "opml" + ] +}, + "text/x-org": { + compressible: true, + extensions: [ + "org" + ] +}, + "text/x-pascal": { + source: "apache", + extensions: [ + "p", + "pas" + ] +}, + "text/x-processing": { + compressible: true, + extensions: [ + "pde" + ] +}, + "text/x-sass": { + extensions: [ + "sass" + ] +}, + "text/x-scss": { + extensions: [ + "scss" + ] +}, + "text/x-setext": { + source: "apache", + extensions: [ + "etx" + ] +}, + "text/x-sfv": { + source: "apache", + extensions: [ + "sfv" + ] +}, + "text/x-suse-ymp": { + compressible: true, + extensions: [ + "ymp" + ] +}, + "text/x-uuencode": { + source: "apache", + extensions: [ + "uu" + ] +}, + "text/x-vcalendar": { + source: "apache", + extensions: [ + "vcs" + ] +}, + "text/x-vcard": { + source: "apache", + extensions: [ + "vcf" + ] +}, + "text/xml": { + source: "iana", + compressible: true, + extensions: [ + "xml" + ] +}, + "text/xml-external-parsed-entity": { + source: "iana" +}, + "text/yaml": { + compressible: true, + extensions: [ + "yaml", + "yml" + ] +}, + "video/1d-interleaved-parityfec": { + source: "iana" +}, + "video/3gpp": { + source: "iana", + extensions: [ + "3gp", + "3gpp" + ] +}, + "video/3gpp-tt": { + source: "iana" +}, + "video/3gpp2": { + source: "iana", + extensions: [ + "3g2" + ] +}, + "video/av1": { + source: "iana" +}, + "video/bmpeg": { + source: "iana" +}, + "video/bt656": { + source: "iana" +}, + "video/celb": { + source: "iana" +}, + "video/dv": { + source: "iana" +}, + "video/encaprtp": { + source: "iana" +}, + "video/ffv1": { + source: "iana" +}, + "video/flexfec": { + source: "iana" +}, + "video/h261": { + source: "iana", + extensions: [ + "h261" + ] +}, + "video/h263": { + source: "iana", + extensions: [ + "h263" + ] +}, + "video/h263-1998": { + source: "iana" +}, + "video/h263-2000": { + source: "iana" +}, + "video/h264": { + source: "iana", + extensions: [ + "h264" + ] +}, + "video/h264-rcdo": { + source: "iana" +}, + "video/h264-svc": { + source: "iana" +}, + "video/h265": { + source: "iana" +}, + "video/iso.segment": { + source: "iana", + extensions: [ + "m4s" + ] +}, + "video/jpeg": { + source: "iana", + extensions: [ + "jpgv" + ] +}, + "video/jpeg2000": { + source: "iana" +}, + "video/jpm": { + source: "apache", + extensions: [ + "jpm", + "jpgm" + ] +}, + "video/jxsv": { + source: "iana" +}, + "video/mj2": { + source: "iana", + extensions: [ + "mj2", + "mjp2" + ] +}, + "video/mp1s": { + source: "iana" +}, + "video/mp2p": { + source: "iana" +}, + "video/mp2t": { + source: "iana", + extensions: [ + "ts" + ] +}, + "video/mp4": { + source: "iana", + compressible: false, + extensions: [ + "mp4", + "mp4v", + "mpg4" + ] +}, + "video/mp4v-es": { + source: "iana" +}, + "video/mpeg": { + source: "iana", + compressible: false, + extensions: [ + "mpeg", + "mpg", + "mpe", + "m1v", + "m2v" + ] +}, + "video/mpeg4-generic": { + source: "iana" +}, + "video/mpv": { + source: "iana" +}, + "video/nv": { + source: "iana" +}, + "video/ogg": { + source: "iana", + compressible: false, + extensions: [ + "ogv" + ] +}, + "video/parityfec": { + source: "iana" +}, + "video/pointer": { + source: "iana" +}, + "video/quicktime": { + source: "iana", + compressible: false, + extensions: [ + "qt", + "mov" + ] +}, + "video/raptorfec": { + source: "iana" +}, + "video/raw": { + source: "iana" +}, + "video/rtp-enc-aescm128": { + source: "iana" +}, + "video/rtploopback": { + source: "iana" +}, + "video/rtx": { + source: "iana" +}, + "video/scip": { + source: "iana" +}, + "video/smpte291": { + source: "iana" +}, + "video/smpte292m": { + source: "iana" +}, + "video/ulpfec": { + source: "iana" +}, + "video/vc1": { + source: "iana" +}, + "video/vc2": { + source: "iana" +}, + "video/vnd.cctv": { + source: "iana" +}, + "video/vnd.dece.hd": { + source: "iana", + extensions: [ + "uvh", + "uvvh" + ] +}, + "video/vnd.dece.mobile": { + source: "iana", + extensions: [ + "uvm", + "uvvm" + ] +}, + "video/vnd.dece.mp4": { + source: "iana" +}, + "video/vnd.dece.pd": { + source: "iana", + extensions: [ + "uvp", + "uvvp" + ] +}, + "video/vnd.dece.sd": { + source: "iana", + extensions: [ + "uvs", + "uvvs" + ] +}, + "video/vnd.dece.video": { + source: "iana", + extensions: [ + "uvv", + "uvvv" + ] +}, + "video/vnd.directv.mpeg": { + source: "iana" +}, + "video/vnd.directv.mpeg-tts": { + source: "iana" +}, + "video/vnd.dlna.mpeg-tts": { + source: "iana" +}, + "video/vnd.dvb.file": { + source: "iana", + extensions: [ + "dvb" + ] +}, + "video/vnd.fvt": { + source: "iana", + extensions: [ + "fvt" + ] +}, + "video/vnd.hns.video": { + source: "iana" +}, + "video/vnd.iptvforum.1dparityfec-1010": { + source: "iana" +}, + "video/vnd.iptvforum.1dparityfec-2005": { + source: "iana" +}, + "video/vnd.iptvforum.2dparityfec-1010": { + source: "iana" +}, + "video/vnd.iptvforum.2dparityfec-2005": { + source: "iana" +}, + "video/vnd.iptvforum.ttsavc": { + source: "iana" +}, + "video/vnd.iptvforum.ttsmpeg2": { + source: "iana" +}, + "video/vnd.motorola.video": { + source: "iana" +}, + "video/vnd.motorola.videop": { + source: "iana" +}, + "video/vnd.mpegurl": { + source: "iana", + extensions: [ + "mxu", + "m4u" + ] +}, + "video/vnd.ms-playready.media.pyv": { + source: "iana", + extensions: [ + "pyv" + ] +}, + "video/vnd.nokia.interleaved-multimedia": { + source: "iana" +}, + "video/vnd.nokia.mp4vr": { + source: "iana" +}, + "video/vnd.nokia.videovoip": { + source: "iana" +}, + "video/vnd.objectvideo": { + source: "iana" +}, + "video/vnd.radgamettools.bink": { + source: "iana" +}, + "video/vnd.radgamettools.smacker": { + source: "iana" +}, + "video/vnd.sealed.mpeg1": { + source: "iana" +}, + "video/vnd.sealed.mpeg4": { + source: "iana" +}, + "video/vnd.sealed.swf": { + source: "iana" +}, + "video/vnd.sealedmedia.softseal.mov": { + source: "iana" +}, + "video/vnd.uvvu.mp4": { + source: "iana", + extensions: [ + "uvu", + "uvvu" + ] +}, + "video/vnd.vivo": { + source: "iana", + extensions: [ + "viv" + ] +}, + "video/vnd.youtube.yt": { + source: "iana" +}, + "video/vp8": { + source: "iana" +}, + "video/vp9": { + source: "iana" +}, + "video/webm": { + source: "apache", + compressible: false, + extensions: [ + "webm" + ] +}, + "video/x-f4v": { + source: "apache", + extensions: [ + "f4v" + ] +}, + "video/x-fli": { + source: "apache", + extensions: [ + "fli" + ] +}, + "video/x-flv": { + source: "apache", + compressible: false, + extensions: [ + "flv" + ] +}, + "video/x-m4v": { + source: "apache", + extensions: [ + "m4v" + ] +}, + "video/x-matroska": { + source: "apache", + compressible: false, + extensions: [ + "mkv", + "mk3d", + "mks" + ] +}, + "video/x-mng": { + source: "apache", + extensions: [ + "mng" + ] +}, + "video/x-ms-asf": { + source: "apache", + extensions: [ + "asf", + "asx" + ] +}, + "video/x-ms-vob": { + source: "apache", + extensions: [ + "vob" + ] +}, + "video/x-ms-wm": { + source: "apache", + extensions: [ + "wm" + ] +}, + "video/x-ms-wmv": { + source: "apache", + compressible: false, + extensions: [ + "wmv" + ] +}, + "video/x-ms-wmx": { + source: "apache", + extensions: [ + "wmx" + ] +}, + "video/x-ms-wvx": { + source: "apache", + extensions: [ + "wvx" + ] +}, + "video/x-msvideo": { + source: "apache", + extensions: [ + "avi" + ] +}, + "video/x-sgi-movie": { + source: "apache", + extensions: [ + "movie" + ] +}, + "video/x-smv": { + source: "apache", + extensions: [ + "smv" + ] +}, + "x-conference/x-cooltalk": { + source: "apache", + extensions: [ + "ice" + ] +}, + "x-shader/x-fragment": { + compressible: true +}, + "x-shader/x-vertex": { + compressible: true +} +}; + +/*! + * mime-db + * Copyright(c) 2014 Jonathan Ong + * Copyright(c) 2015-2022 Douglas Christopher Wilson + * MIT Licensed + */ + +var mimeDb; +var hasRequiredMimeDb; + +function requireMimeDb () { + if (hasRequiredMimeDb) return mimeDb; + hasRequiredMimeDb = 1; + /** + * Module exports. + */ + + mimeDb = require$$0; + return mimeDb; +} + +/*! + * mime-types + * Copyright(c) 2014 Jonathan Ong + * Copyright(c) 2015 Douglas Christopher Wilson + * MIT Licensed + */ + +var hasRequiredMimeTypes; + +function requireMimeTypes () { + if (hasRequiredMimeTypes) return mimeTypes; + hasRequiredMimeTypes = 1; + (function (exports) { + + /** + * Module dependencies. + * @private + */ + + var db = requireMimeDb(); + var extname = require$$2.extname; + + /** + * Module variables. + * @private + */ + + var EXTRACT_TYPE_REGEXP = /^\s*([^;\s]*)(?:;|\s|$)/; + var TEXT_TYPE_REGEXP = /^text\//i; + + /** + * Module exports. + * @public + */ + + exports.charset = charset; + exports.charsets = { lookup: charset }; + exports.contentType = contentType; + exports.extension = extension; + exports.extensions = Object.create(null); + exports.lookup = lookup; + exports.types = Object.create(null); + + // Populate the extensions/types maps + populateMaps(exports.extensions, exports.types); + + /** + * Get the default charset for a MIME type. + * + * @param {string} type + * @return {boolean|string} + */ + + function charset (type) { + if (!type || typeof type !== 'string') { + return false + } + + // TODO: use media-typer + var match = EXTRACT_TYPE_REGEXP.exec(type); + var mime = match && db[match[1].toLowerCase()]; + + if (mime && mime.charset) { + return mime.charset + } + + // default text/* to utf-8 + if (match && TEXT_TYPE_REGEXP.test(match[1])) { + return 'UTF-8' + } + + return false + } + + /** + * Create a full Content-Type header given a MIME type or extension. + * + * @param {string} str + * @return {boolean|string} + */ + + function contentType (str) { + // TODO: should this even be in this module? + if (!str || typeof str !== 'string') { + return false + } + + var mime = str.indexOf('/') === -1 + ? exports.lookup(str) + : str; + + if (!mime) { + return false + } + + // TODO: use content-type or other module + if (mime.indexOf('charset') === -1) { + var charset = exports.charset(mime); + if (charset) mime += '; charset=' + charset.toLowerCase(); + } + + return mime + } + + /** + * Get the default extension for a MIME type. + * + * @param {string} type + * @return {boolean|string} + */ + + function extension (type) { + if (!type || typeof type !== 'string') { + return false + } + + // TODO: use media-typer + var match = EXTRACT_TYPE_REGEXP.exec(type); + + // get extensions + var exts = match && exports.extensions[match[1].toLowerCase()]; + + if (!exts || !exts.length) { + return false + } + + return exts[0] + } + + /** + * Lookup the MIME type for a file path/extension. + * + * @param {string} path + * @return {boolean|string} + */ + + function lookup (path) { + if (!path || typeof path !== 'string') { + return false + } + + // get the extension ("ext" or ".ext" or full path) + var extension = extname('x.' + path) + .toLowerCase() + .substr(1); + + if (!extension) { + return false + } + + return exports.types[extension] || false + } + + /** + * Populate the extensions and types maps. + * @private + */ + + function populateMaps (extensions, types) { + // source preference (least -> most) + var preference = ['nginx', 'apache', undefined, 'iana']; + + Object.keys(db).forEach(function forEachMimeType (type) { + var mime = db[type]; + var exts = mime.extensions; + + if (!exts || !exts.length) { + return + } + + // mime -> extensions + extensions[type] = exts; + + // extension -> mime + for (var i = 0; i < exts.length; i++) { + var extension = exts[i]; + + if (types[extension]) { + var from = preference.indexOf(db[types[extension]].source); + var to = preference.indexOf(mime.source); + + if (types[extension] !== 'application/octet-stream' && + (from > to || (from === to && types[extension].substr(0, 12) === 'application/'))) { + // skip the remapping + continue + } + } + + // set the extension -> mime + types[extension] = type; + } + }); + } + } (mimeTypes)); + return mimeTypes; +} + +var defer_1; +var hasRequiredDefer; + +function requireDefer () { + if (hasRequiredDefer) return defer_1; + hasRequiredDefer = 1; + defer_1 = defer; + + /** + * Runs provided function on next iteration of the event loop + * + * @param {function} fn - function to run + */ + function defer(fn) + { + var nextTick = typeof setImmediate == 'function' + ? setImmediate + : ( + typeof process == 'object' && typeof process.nextTick == 'function' + ? process.nextTick + : null + ); + + if (nextTick) + { + nextTick(fn); + } + else + { + setTimeout(fn, 0); + } + } + return defer_1; +} + +var async_1; +var hasRequiredAsync; + +function requireAsync () { + if (hasRequiredAsync) return async_1; + hasRequiredAsync = 1; + var defer = requireDefer(); + + // API + async_1 = async; + + /** + * Runs provided callback asynchronously + * even if callback itself is not + * + * @param {function} callback - callback to invoke + * @returns {function} - augmented callback + */ + function async(callback) + { + var isAsync = false; + + // check if async happened + defer(function() { isAsync = true; }); + + return function async_callback(err, result) + { + if (isAsync) + { + callback(err, result); + } + else + { + defer(function nextTick_callback() + { + callback(err, result); + }); + } + }; + } + return async_1; +} + +var abort_1; +var hasRequiredAbort; + +function requireAbort () { + if (hasRequiredAbort) return abort_1; + hasRequiredAbort = 1; + // API + abort_1 = abort; + + /** + * Aborts leftover active jobs + * + * @param {object} state - current state object + */ + function abort(state) + { + Object.keys(state.jobs).forEach(clean.bind(state)); + + // reset leftover jobs + state.jobs = {}; + } + + /** + * Cleans up leftover job by invoking abort function for the provided job id + * + * @this state + * @param {string|number} key - job id to abort + */ + function clean(key) + { + if (typeof this.jobs[key] == 'function') + { + this.jobs[key](); + } + } + return abort_1; +} + +var iterate_1; +var hasRequiredIterate; + +function requireIterate () { + if (hasRequiredIterate) return iterate_1; + hasRequiredIterate = 1; + var async = requireAsync() + , abort = requireAbort() + ; + + // API + iterate_1 = iterate; + + /** + * Iterates over each job object + * + * @param {array|object} list - array or object (named list) to iterate over + * @param {function} iterator - iterator to run + * @param {object} state - current job status + * @param {function} callback - invoked when all elements processed + */ + function iterate(list, iterator, state, callback) + { + // store current index + var key = state['keyedList'] ? state['keyedList'][state.index] : state.index; + + state.jobs[key] = runJob(iterator, key, list[key], function(error, output) + { + // don't repeat yourself + // skip secondary callbacks + if (!(key in state.jobs)) + { + return; + } + + // clean up jobs + delete state.jobs[key]; + + if (error) + { + // don't process rest of the results + // stop still active jobs + // and reset the list + abort(state); + } + else + { + state.results[key] = output; + } + + // return salvaged results + callback(error, state.results); + }); + } + + /** + * Runs iterator over provided job element + * + * @param {function} iterator - iterator to invoke + * @param {string|number} key - key/index of the element in the list of jobs + * @param {mixed} item - job description + * @param {function} callback - invoked after iterator is done with the job + * @returns {function|mixed} - job abort function or something else + */ + function runJob(iterator, key, item, callback) + { + var aborter; + + // allow shortcut if iterator expects only two arguments + if (iterator.length == 2) + { + aborter = iterator(item, async(callback)); + } + // otherwise go with full three arguments + else + { + aborter = iterator(item, key, async(callback)); + } + + return aborter; + } + return iterate_1; +} + +var state_1; +var hasRequiredState; + +function requireState () { + if (hasRequiredState) return state_1; + hasRequiredState = 1; + // API + state_1 = state; + + /** + * Creates initial state object + * for iteration over list + * + * @param {array|object} list - list to iterate over + * @param {function|null} sortMethod - function to use for keys sort, + * or `null` to keep them as is + * @returns {object} - initial state object + */ + function state(list, sortMethod) + { + var isNamedList = !Array.isArray(list) + , initState = + { + index : 0, + keyedList: isNamedList || sortMethod ? Object.keys(list) : null, + jobs : {}, + results : isNamedList ? {} : [], + size : isNamedList ? Object.keys(list).length : list.length + } + ; + + if (sortMethod) + { + // sort array keys based on it's values + // sort object's keys just on own merit + initState.keyedList.sort(isNamedList ? sortMethod : function(a, b) + { + return sortMethod(list[a], list[b]); + }); + } + + return initState; + } + return state_1; +} + +var terminator_1; +var hasRequiredTerminator; + +function requireTerminator () { + if (hasRequiredTerminator) return terminator_1; + hasRequiredTerminator = 1; + var abort = requireAbort() + , async = requireAsync() + ; + + // API + terminator_1 = terminator; + + /** + * Terminates jobs in the attached state context + * + * @this AsyncKitState# + * @param {function} callback - final callback to invoke after termination + */ + function terminator(callback) + { + if (!Object.keys(this.jobs).length) + { + return; + } + + // fast forward iteration index + this.index = this.size; + + // abort jobs + abort(this); + + // send back results we have so far + async(callback)(null, this.results); + } + return terminator_1; +} + +var parallel_1; +var hasRequiredParallel; + +function requireParallel () { + if (hasRequiredParallel) return parallel_1; + hasRequiredParallel = 1; + var iterate = requireIterate() + , initState = requireState() + , terminator = requireTerminator() + ; + + // Public API + parallel_1 = parallel; + + /** + * Runs iterator over provided array elements in parallel + * + * @param {array|object} list - array or object (named list) to iterate over + * @param {function} iterator - iterator to run + * @param {function} callback - invoked when all elements processed + * @returns {function} - jobs terminator + */ + function parallel(list, iterator, callback) + { + var state = initState(list); + + while (state.index < (state['keyedList'] || list).length) + { + iterate(list, iterator, state, function(error, result) + { + if (error) + { + callback(error, result); + return; + } + + // looks like it's the last one + if (Object.keys(state.jobs).length === 0) + { + callback(null, state.results); + return; + } + }); + + state.index++; + } + + return terminator.bind(state, callback); + } + return parallel_1; +} + +var serialOrdered = {exports: {}}; + +var hasRequiredSerialOrdered; + +function requireSerialOrdered () { + if (hasRequiredSerialOrdered) return serialOrdered.exports; + hasRequiredSerialOrdered = 1; + var iterate = requireIterate() + , initState = requireState() + , terminator = requireTerminator() + ; + + // Public API + serialOrdered.exports = serialOrdered$1; + // sorting helpers + serialOrdered.exports.ascending = ascending; + serialOrdered.exports.descending = descending; + + /** + * Runs iterator over provided sorted array elements in series + * + * @param {array|object} list - array or object (named list) to iterate over + * @param {function} iterator - iterator to run + * @param {function} sortMethod - custom sort function + * @param {function} callback - invoked when all elements processed + * @returns {function} - jobs terminator + */ + function serialOrdered$1(list, iterator, sortMethod, callback) + { + var state = initState(list, sortMethod); + + iterate(list, iterator, state, function iteratorHandler(error, result) + { + if (error) + { + callback(error, result); + return; + } + + state.index++; + + // are we there yet? + if (state.index < (state['keyedList'] || list).length) + { + iterate(list, iterator, state, iteratorHandler); + return; + } + + // done here + callback(null, state.results); + }); + + return terminator.bind(state, callback); + } + + /* + * -- Sort methods + */ + + /** + * sort helper to sort array elements in ascending order + * + * @param {mixed} a - an item to compare + * @param {mixed} b - an item to compare + * @returns {number} - comparison result + */ + function ascending(a, b) + { + return a < b ? -1 : a > b ? 1 : 0; + } + + /** + * sort helper to sort array elements in descending order + * + * @param {mixed} a - an item to compare + * @param {mixed} b - an item to compare + * @returns {number} - comparison result + */ + function descending(a, b) + { + return -1 * ascending(a, b); + } + return serialOrdered.exports; +} + +var serial_1; +var hasRequiredSerial; + +function requireSerial () { + if (hasRequiredSerial) return serial_1; + hasRequiredSerial = 1; + var serialOrdered = requireSerialOrdered(); + + // Public API + serial_1 = serial; + + /** + * Runs iterator over provided array elements in series + * + * @param {array|object} list - array or object (named list) to iterate over + * @param {function} iterator - iterator to run + * @param {function} callback - invoked when all elements processed + * @returns {function} - jobs terminator + */ + function serial(list, iterator, callback) + { + return serialOrdered(list, iterator, null, callback); + } + return serial_1; +} + +var asynckit; +var hasRequiredAsynckit; + +function requireAsynckit () { + if (hasRequiredAsynckit) return asynckit; + hasRequiredAsynckit = 1; + asynckit = + { + parallel : requireParallel(), + serial : requireSerial(), + serialOrdered : requireSerialOrdered() + }; + return asynckit; +} + +var populate; +var hasRequiredPopulate; + +function requirePopulate () { + if (hasRequiredPopulate) return populate; + hasRequiredPopulate = 1; + // populates missing values + populate = function(dst, src) { + + Object.keys(src).forEach(function(prop) + { + dst[prop] = dst[prop] || src[prop]; + }); + + return dst; + }; + return populate; +} + +var form_data; +var hasRequiredForm_data; + +function requireForm_data () { + if (hasRequiredForm_data) return form_data; + hasRequiredForm_data = 1; + var CombinedStream = requireCombined_stream(); + var util = require$$1; + var path = require$$2; + var http$1 = http; + var https = require$$4; + var parseUrl = Url.parse; + var fs = require$$0$1; + var Stream$1 = Stream.Stream; + var mime = requireMimeTypes(); + var asynckit = requireAsynckit(); + var populate = requirePopulate(); + + // Public API + form_data = FormData; + + // make it a Stream + util.inherits(FormData, CombinedStream); + + /** + * Create readable "multipart/form-data" streams. + * Can be used to submit forms + * and file uploads to other web applications. + * + * @constructor + * @param {Object} options - Properties to be added/overriden for FormData and CombinedStream + */ + function FormData(options) { + if (!(this instanceof FormData)) { + return new FormData(options); + } + + this._overheadLength = 0; + this._valueLength = 0; + this._valuesToMeasure = []; + + CombinedStream.call(this); + + options = options || {}; + for (var option in options) { + this[option] = options[option]; + } + } + + FormData.LINE_BREAK = '\r\n'; + FormData.DEFAULT_CONTENT_TYPE = 'application/octet-stream'; + + FormData.prototype.append = function(field, value, options) { + + options = options || {}; + + // allow filename as single option + if (typeof options == 'string') { + options = {filename: options}; + } + + var append = CombinedStream.prototype.append.bind(this); + + // all that streamy business can't handle numbers + if (typeof value == 'number') { + value = '' + value; + } + + // https://github.com/felixge/node-form-data/issues/38 + if (util.isArray(value)) { + // Please convert your array into string + // the way web server expects it + this._error(new Error('Arrays are not supported.')); + return; + } + + var header = this._multiPartHeader(field, value, options); + var footer = this._multiPartFooter(); + + append(header); + append(value); + append(footer); + + // pass along options.knownLength + this._trackLength(header, value, options); + }; + + FormData.prototype._trackLength = function(header, value, options) { + var valueLength = 0; + + // used w/ getLengthSync(), when length is known. + // e.g. for streaming directly from a remote server, + // w/ a known file a size, and not wanting to wait for + // incoming file to finish to get its size. + if (options.knownLength != null) { + valueLength += +options.knownLength; + } else if (Buffer.isBuffer(value)) { + valueLength = value.length; + } else if (typeof value === 'string') { + valueLength = Buffer.byteLength(value); + } + + this._valueLength += valueLength; + + // @check why add CRLF? does this account for custom/multiple CRLFs? + this._overheadLength += + Buffer.byteLength(header) + + FormData.LINE_BREAK.length; + + // empty or either doesn't have path or not an http response or not a stream + if (!value || ( !value.path && !(value.readable && value.hasOwnProperty('httpVersion')) && !(value instanceof Stream$1))) { + return; + } + + // no need to bother with the length + if (!options.knownLength) { + this._valuesToMeasure.push(value); + } + }; + + FormData.prototype._lengthRetriever = function(value, callback) { + + if (value.hasOwnProperty('fd')) { + + // take read range into a account + // `end` = Infinity –> read file till the end + // + // TODO: Looks like there is bug in Node fs.createReadStream + // it doesn't respect `end` options without `start` options + // Fix it when node fixes it. + // https://github.com/joyent/node/issues/7819 + if (value.end != undefined && value.end != Infinity && value.start != undefined) { + + // when end specified + // no need to calculate range + // inclusive, starts with 0 + callback(null, value.end + 1 - (value.start ? value.start : 0)); + + // not that fast snoopy + } else { + // still need to fetch file size from fs + fs.stat(value.path, function(err, stat) { + + var fileSize; + + if (err) { + callback(err); + return; + } + + // update final size based on the range options + fileSize = stat.size - (value.start ? value.start : 0); + callback(null, fileSize); + }); + } + + // or http response + } else if (value.hasOwnProperty('httpVersion')) { + callback(null, +value.headers['content-length']); + + // or request stream http://github.com/mikeal/request + } else if (value.hasOwnProperty('httpModule')) { + // wait till response come back + value.on('response', function(response) { + value.pause(); + callback(null, +response.headers['content-length']); + }); + value.resume(); + + // something else + } else { + callback('Unknown stream'); + } + }; + + FormData.prototype._multiPartHeader = function(field, value, options) { + // custom header specified (as string)? + // it becomes responsible for boundary + // (e.g. to handle extra CRLFs on .NET servers) + if (typeof options.header == 'string') { + return options.header; + } + + var contentDisposition = this._getContentDisposition(value, options); + var contentType = this._getContentType(value, options); + + var contents = ''; + var headers = { + // add custom disposition as third element or keep it two elements if not + 'Content-Disposition': ['form-data', 'name="' + field + '"'].concat(contentDisposition || []), + // if no content type. allow it to be empty array + 'Content-Type': [].concat(contentType || []) + }; + + // allow custom headers. + if (typeof options.header == 'object') { + populate(headers, options.header); + } + + var header; + for (var prop in headers) { + if (!headers.hasOwnProperty(prop)) continue; + header = headers[prop]; + + // skip nullish headers. + if (header == null) { + continue; + } + + // convert all headers to arrays. + if (!Array.isArray(header)) { + header = [header]; + } + + // add non-empty headers. + if (header.length) { + contents += prop + ': ' + header.join('; ') + FormData.LINE_BREAK; + } + } + + return '--' + this.getBoundary() + FormData.LINE_BREAK + contents + FormData.LINE_BREAK; + }; + + FormData.prototype._getContentDisposition = function(value, options) { + + var filename + , contentDisposition + ; + + if (typeof options.filepath === 'string') { + // custom filepath for relative paths + filename = path.normalize(options.filepath).replace(/\\/g, '/'); + } else if (options.filename || value.name || value.path) { + // custom filename take precedence + // formidable and the browser add a name property + // fs- and request- streams have path property + filename = path.basename(options.filename || value.name || value.path); + } else if (value.readable && value.hasOwnProperty('httpVersion')) { + // or try http response + filename = path.basename(value.client._httpMessage.path || ''); + } + + if (filename) { + contentDisposition = 'filename="' + filename + '"'; + } + + return contentDisposition; + }; + + FormData.prototype._getContentType = function(value, options) { + + // use custom content-type above all + var contentType = options.contentType; + + // or try `name` from formidable, browser + if (!contentType && value.name) { + contentType = mime.lookup(value.name); + } + + // or try `path` from fs-, request- streams + if (!contentType && value.path) { + contentType = mime.lookup(value.path); + } + + // or if it's http-reponse + if (!contentType && value.readable && value.hasOwnProperty('httpVersion')) { + contentType = value.headers['content-type']; + } + + // or guess it from the filepath or filename + if (!contentType && (options.filepath || options.filename)) { + contentType = mime.lookup(options.filepath || options.filename); + } + + // fallback to the default content type if `value` is not simple value + if (!contentType && typeof value == 'object') { + contentType = FormData.DEFAULT_CONTENT_TYPE; + } + + return contentType; + }; + + FormData.prototype._multiPartFooter = function() { + return function(next) { + var footer = FormData.LINE_BREAK; + + var lastPart = (this._streams.length === 0); + if (lastPart) { + footer += this._lastBoundary(); + } + + next(footer); + }.bind(this); + }; + + FormData.prototype._lastBoundary = function() { + return '--' + this.getBoundary() + '--' + FormData.LINE_BREAK; + }; + + FormData.prototype.getHeaders = function(userHeaders) { + var header; + var formHeaders = { + 'content-type': 'multipart/form-data; boundary=' + this.getBoundary() + }; + + for (header in userHeaders) { + if (userHeaders.hasOwnProperty(header)) { + formHeaders[header.toLowerCase()] = userHeaders[header]; + } + } + + return formHeaders; + }; + + FormData.prototype.setBoundary = function(boundary) { + this._boundary = boundary; + }; + + FormData.prototype.getBoundary = function() { + if (!this._boundary) { + this._generateBoundary(); + } + + return this._boundary; + }; + + FormData.prototype.getBuffer = function() { + var dataBuffer = new Buffer.alloc( 0 ); + var boundary = this.getBoundary(); + + // Create the form content. Add Line breaks to the end of data. + for (var i = 0, len = this._streams.length; i < len; i++) { + if (typeof this._streams[i] !== 'function') { + + // Add content to the buffer. + if(Buffer.isBuffer(this._streams[i])) { + dataBuffer = Buffer.concat( [dataBuffer, this._streams[i]]); + }else { + dataBuffer = Buffer.concat( [dataBuffer, Buffer.from(this._streams[i])]); + } + + // Add break after content. + if (typeof this._streams[i] !== 'string' || this._streams[i].substring( 2, boundary.length + 2 ) !== boundary) { + dataBuffer = Buffer.concat( [dataBuffer, Buffer.from(FormData.LINE_BREAK)] ); + } + } + } + + // Add the footer and return the Buffer object. + return Buffer.concat( [dataBuffer, Buffer.from(this._lastBoundary())] ); + }; + + FormData.prototype._generateBoundary = function() { + // This generates a 50 character boundary similar to those used by Firefox. + // They are optimized for boyer-moore parsing. + var boundary = '--------------------------'; + for (var i = 0; i < 24; i++) { + boundary += Math.floor(Math.random() * 10).toString(16); + } + + this._boundary = boundary; + }; + + // Note: getLengthSync DOESN'T calculate streams length + // As workaround one can calculate file size manually + // and add it as knownLength option + FormData.prototype.getLengthSync = function() { + var knownLength = this._overheadLength + this._valueLength; + + // Don't get confused, there are 3 "internal" streams for each keyval pair + // so it basically checks if there is any value added to the form + if (this._streams.length) { + knownLength += this._lastBoundary().length; + } + + // https://github.com/form-data/form-data/issues/40 + if (!this.hasKnownLength()) { + // Some async length retrievers are present + // therefore synchronous length calculation is false. + // Please use getLength(callback) to get proper length + this._error(new Error('Cannot calculate proper length in synchronous way.')); + } + + return knownLength; + }; + + // Public API to check if length of added values is known + // https://github.com/form-data/form-data/issues/196 + // https://github.com/form-data/form-data/issues/262 + FormData.prototype.hasKnownLength = function() { + var hasKnownLength = true; + + if (this._valuesToMeasure.length) { + hasKnownLength = false; + } + + return hasKnownLength; + }; + + FormData.prototype.getLength = function(cb) { + var knownLength = this._overheadLength + this._valueLength; + + if (this._streams.length) { + knownLength += this._lastBoundary().length; + } + + if (!this._valuesToMeasure.length) { + process.nextTick(cb.bind(this, null, knownLength)); + return; + } + + asynckit.parallel(this._valuesToMeasure, this._lengthRetriever, function(err, values) { + if (err) { + cb(err); + return; + } + + values.forEach(function(length) { + knownLength += length; + }); + + cb(null, knownLength); + }); + }; + + FormData.prototype.submit = function(params, cb) { + var request + , options + , defaults = {method: 'post'} + ; + + // parse provided url if it's string + // or treat it as options object + if (typeof params == 'string') { + + params = parseUrl(params); + options = populate({ + port: params.port, + path: params.pathname, + host: params.hostname, + protocol: params.protocol + }, defaults); + + // use custom params + } else { + + options = populate(params, defaults); + // if no port provided use default one + if (!options.port) { + options.port = options.protocol == 'https:' ? 443 : 80; + } + } + + // put that good code in getHeaders to some use + options.headers = this.getHeaders(params.headers); + + // https if specified, fallback to http in any other case + if (options.protocol == 'https:') { + request = https.request(options); + } else { + request = http$1.request(options); + } + + // get content length and fire away + this.getLength(function(err, length) { + if (err && err !== 'Unknown stream') { + this._error(err); + return; + } + + // add content length + if (length) { + request.setHeader('Content-Length', length); + } + + this.pipe(request); + if (cb) { + var onResponse; + + var callback = function (error, responce) { + request.removeListener('error', callback); + request.removeListener('response', onResponse); + + return cb.call(this, error, responce); + }; + + onResponse = callback.bind(this, null); + + request.on('error', callback); + request.on('response', onResponse); + } + }.bind(this)); + + return request; + }; + + FormData.prototype._error = function(err) { + if (!this.error) { + this.error = err; + this.pause(); + this.emit('error', err); + } + }; + + FormData.prototype.toString = function () { + return '[object FormData]'; + }; + return form_data; +} + +var form_dataExports = requireForm_data(); +var FormData$1 = /*@__PURE__*/getDefaultExportFromCjs(form_dataExports); + +/** + * Determines if the given thing is a array or js object. + * + * @param {string} thing - The object or array to be visited. + * + * @returns {boolean} + */ +function isVisitable(thing) { + return utils$1.isPlainObject(thing) || utils$1.isArray(thing); +} + +/** + * It removes the brackets from the end of a string + * + * @param {string} key - The key of the parameter. + * + * @returns {string} the key without the brackets. + */ +function removeBrackets(key) { + return utils$1.endsWith(key, '[]') ? key.slice(0, -2) : key; +} + +/** + * It takes a path, a key, and a boolean, and returns a string + * + * @param {string} path - The path to the current key. + * @param {string} key - The key of the current object being iterated over. + * @param {string} dots - If true, the key will be rendered with dots instead of brackets. + * + * @returns {string} The path to the current key. + */ +function renderKey(path, key, dots) { + if (!path) return key; + return path.concat(key).map(function each(token, i) { + // eslint-disable-next-line no-param-reassign + token = removeBrackets(token); + return !dots && i ? '[' + token + ']' : token; + }).join(dots ? '.' : ''); +} + +/** + * If the array is an array and none of its elements are visitable, then it's a flat array. + * + * @param {Array} arr - The array to check + * + * @returns {boolean} + */ +function isFlatArray(arr) { + return utils$1.isArray(arr) && !arr.some(isVisitable); +} + +const predicates = utils$1.toFlatObject(utils$1, {}, null, function filter(prop) { + return /^is[A-Z]/.test(prop); +}); + +/** + * Convert a data object to FormData + * + * @param {Object} obj + * @param {?Object} [formData] + * @param {?Object} [options] + * @param {Function} [options.visitor] + * @param {Boolean} [options.metaTokens = true] + * @param {Boolean} [options.dots = false] + * @param {?Boolean} [options.indexes = false] + * + * @returns {Object} + **/ + +/** + * It converts an object into a FormData object + * + * @param {Object} obj - The object to convert to form data. + * @param {string} formData - The FormData object to append to. + * @param {Object} options + * + * @returns + */ +function toFormData(obj, formData, options) { + if (!utils$1.isObject(obj)) { + throw new TypeError('target must be an object'); + } + + // eslint-disable-next-line no-param-reassign + formData = formData || new (FormData$1 || FormData)(); + + // eslint-disable-next-line no-param-reassign + options = utils$1.toFlatObject(options, { + metaTokens: true, + dots: false, + indexes: false + }, false, function defined(option, source) { + // eslint-disable-next-line no-eq-null,eqeqeq + return !utils$1.isUndefined(source[option]); + }); + + const metaTokens = options.metaTokens; + // eslint-disable-next-line no-use-before-define + const visitor = options.visitor || defaultVisitor; + const dots = options.dots; + const indexes = options.indexes; + const _Blob = options.Blob || typeof Blob !== 'undefined' && Blob; + const useBlob = _Blob && utils$1.isSpecCompliantForm(formData); + + if (!utils$1.isFunction(visitor)) { + throw new TypeError('visitor must be a function'); + } + + function convertValue(value) { + if (value === null) return ''; + + if (utils$1.isDate(value)) { + return value.toISOString(); + } + + if (!useBlob && utils$1.isBlob(value)) { + throw new AxiosError('Blob is not supported. Use a Buffer instead.'); + } + + if (utils$1.isArrayBuffer(value) || utils$1.isTypedArray(value)) { + return useBlob && typeof Blob === 'function' ? new Blob([value]) : Buffer.from(value); + } + + return value; + } + + /** + * Default visitor. + * + * @param {*} value + * @param {String|Number} key + * @param {Array} path + * @this {FormData} + * + * @returns {boolean} return true to visit the each prop of the value recursively + */ + function defaultVisitor(value, key, path) { + let arr = value; + + if (value && !path && typeof value === 'object') { + if (utils$1.endsWith(key, '{}')) { + // eslint-disable-next-line no-param-reassign + key = metaTokens ? key : key.slice(0, -2); + // eslint-disable-next-line no-param-reassign + value = JSON.stringify(value); + } else if ( + (utils$1.isArray(value) && isFlatArray(value)) || + ((utils$1.isFileList(value) || utils$1.endsWith(key, '[]')) && (arr = utils$1.toArray(value)) + )) { + // eslint-disable-next-line no-param-reassign + key = removeBrackets(key); + + arr.forEach(function each(el, index) { + !(utils$1.isUndefined(el) || el === null) && formData.append( + // eslint-disable-next-line no-nested-ternary + indexes === true ? renderKey([key], index, dots) : (indexes === null ? key : key + '[]'), + convertValue(el) + ); + }); + return false; + } + } + + if (isVisitable(value)) { + return true; + } + + formData.append(renderKey(path, key, dots), convertValue(value)); + + return false; + } + + const stack = []; + + const exposedHelpers = Object.assign(predicates, { + defaultVisitor, + convertValue, + isVisitable + }); + + function build(value, path) { + if (utils$1.isUndefined(value)) return; + + if (stack.indexOf(value) !== -1) { + throw Error('Circular reference detected in ' + path.join('.')); + } + + stack.push(value); + + utils$1.forEach(value, function each(el, key) { + const result = !(utils$1.isUndefined(el) || el === null) && visitor.call( + formData, el, utils$1.isString(key) ? key.trim() : key, path, exposedHelpers + ); + + if (result === true) { + build(el, path ? path.concat(key) : [key]); + } + }); + + stack.pop(); + } + + if (!utils$1.isObject(obj)) { + throw new TypeError('data must be an object'); + } + + build(obj); + + return formData; +} + +/** + * It encodes a string by replacing all characters that are not in the unreserved set with + * their percent-encoded equivalents + * + * @param {string} str - The string to encode. + * + * @returns {string} The encoded string. + */ +function encode$1(str) { + const charMap = { + '!': '%21', + "'": '%27', + '(': '%28', + ')': '%29', + '~': '%7E', + '%20': '+', + '%00': '\x00' + }; + return encodeURIComponent(str).replace(/[!'()~]|%20|%00/g, function replacer(match) { + return charMap[match]; + }); +} + +/** + * It takes a params object and converts it to a FormData object + * + * @param {Object} params - The parameters to be converted to a FormData object. + * @param {Object} options - The options object passed to the Axios constructor. + * + * @returns {void} + */ +function AxiosURLSearchParams(params, options) { + this._pairs = []; + + params && toFormData(params, this, options); +} + +const prototype = AxiosURLSearchParams.prototype; + +prototype.append = function append(name, value) { + this._pairs.push([name, value]); +}; + +prototype.toString = function toString(encoder) { + const _encode = encoder ? function(value) { + return encoder.call(this, value, encode$1); + } : encode$1; + + return this._pairs.map(function each(pair) { + return _encode(pair[0]) + '=' + _encode(pair[1]); + }, '').join('&'); +}; + +/** + * It replaces all instances of the characters `:`, `$`, `,`, `+`, `[`, and `]` with their + * URI encoded counterparts + * + * @param {string} val The value to be encoded. + * + * @returns {string} The encoded value. + */ +function encode(val) { + return encodeURIComponent(val). + replace(/%3A/gi, ':'). + replace(/%24/g, '$'). + replace(/%2C/gi, ','). + replace(/%20/g, '+'). + replace(/%5B/gi, '['). + replace(/%5D/gi, ']'); +} + +/** + * Build a URL by appending params to the end + * + * @param {string} url The base of the url (e.g., http://www.google.com) + * @param {object} [params] The params to be appended + * @param {?object} options + * + * @returns {string} The formatted url + */ +function buildURL(url, params, options) { + /*eslint no-param-reassign:0*/ + if (!params) { + return url; + } + + const _encode = options && options.encode || encode; + + const serializeFn = options && options.serialize; + + let serializedParams; + + if (serializeFn) { + serializedParams = serializeFn(params, options); + } else { + serializedParams = utils$1.isURLSearchParams(params) ? + params.toString() : + new AxiosURLSearchParams(params, options).toString(_encode); + } + + if (serializedParams) { + const hashmarkIndex = url.indexOf("#"); + + if (hashmarkIndex !== -1) { + url = url.slice(0, hashmarkIndex); + } + url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams; + } + + return url; +} + +class InterceptorManager { + constructor() { + this.handlers = []; + } + + /** + * Add a new interceptor to the stack + * + * @param {Function} fulfilled The function to handle `then` for a `Promise` + * @param {Function} rejected The function to handle `reject` for a `Promise` + * + * @return {Number} An ID used to remove interceptor later + */ + use(fulfilled, rejected, options) { + this.handlers.push({ + fulfilled, + rejected, + synchronous: options ? options.synchronous : false, + runWhen: options ? options.runWhen : null + }); + return this.handlers.length - 1; + } + + /** + * Remove an interceptor from the stack + * + * @param {Number} id The ID that was returned by `use` + * + * @returns {Boolean} `true` if the interceptor was removed, `false` otherwise + */ + eject(id) { + if (this.handlers[id]) { + this.handlers[id] = null; + } + } + + /** + * Clear all interceptors from the stack + * + * @returns {void} + */ + clear() { + if (this.handlers) { + this.handlers = []; + } + } + + /** + * Iterate over all the registered interceptors + * + * This method is particularly useful for skipping over any + * interceptors that may have become `null` calling `eject`. + * + * @param {Function} fn The function to call for each interceptor + * + * @returns {void} + */ + forEach(fn) { + utils$1.forEach(this.handlers, function forEachHandler(h) { + if (h !== null) { + fn(h); + } + }); + } +} + +var InterceptorManager$1 = InterceptorManager; + +var transitionalDefaults = { + silentJSONParsing: true, + forcedJSONParsing: true, + clarifyTimeoutError: false +}; + +var URLSearchParams = Url.URLSearchParams; + +var platform$1 = { + isNode: true, + classes: { + URLSearchParams, + FormData: FormData$1, + Blob: typeof Blob !== 'undefined' && Blob || null + }, + protocols: [ 'http', 'https', 'file', 'data' ] +}; + +const hasBrowserEnv = typeof window !== 'undefined' && typeof document !== 'undefined'; + +/** + * Determine if we're running in a standard browser environment + * + * This allows axios to run in a web worker, and react-native. + * Both environments support XMLHttpRequest, but not fully standard globals. + * + * web workers: + * typeof window -> undefined + * typeof document -> undefined + * + * react-native: + * navigator.product -> 'ReactNative' + * nativescript + * navigator.product -> 'NativeScript' or 'NS' + * + * @returns {boolean} + */ +const hasStandardBrowserEnv = ( + (product) => { + return hasBrowserEnv && ['ReactNative', 'NativeScript', 'NS'].indexOf(product) < 0 + })(typeof navigator !== 'undefined' && navigator.product); + +/** + * Determine if we're running in a standard browser webWorker environment + * + * Although the `isStandardBrowserEnv` method indicates that + * `allows axios to run in a web worker`, the WebWorker will still be + * filtered out due to its judgment standard + * `typeof window !== 'undefined' && typeof document !== 'undefined'`. + * This leads to a problem when axios post `FormData` in webWorker + */ +const hasStandardBrowserWebWorkerEnv = (() => { + return ( + typeof WorkerGlobalScope !== 'undefined' && + // eslint-disable-next-line no-undef + self instanceof WorkerGlobalScope && + typeof self.importScripts === 'function' + ); +})(); + +var utils = /*#__PURE__*/Object.freeze({ + __proto__: null, + hasBrowserEnv: hasBrowserEnv, + hasStandardBrowserEnv: hasStandardBrowserEnv, + hasStandardBrowserWebWorkerEnv: hasStandardBrowserWebWorkerEnv +}); + +var platform = { + ...utils, + ...platform$1 +}; + +function toURLEncodedForm(data, options) { + return toFormData(data, new platform.classes.URLSearchParams(), Object.assign({ + visitor: function(value, key, path, helpers) { + if (platform.isNode && utils$1.isBuffer(value)) { + this.append(key, value.toString('base64')); + return false; + } + + return helpers.defaultVisitor.apply(this, arguments); + } + }, options)); +} + +/** + * It takes a string like `foo[x][y][z]` and returns an array like `['foo', 'x', 'y', 'z'] + * + * @param {string} name - The name of the property to get. + * + * @returns An array of strings. + */ +function parsePropPath(name) { + // foo[x][y][z] + // foo.x.y.z + // foo-x-y-z + // foo x y z + return utils$1.matchAll(/\w+|\[(\w*)]/g, name).map(match => { + return match[0] === '[]' ? '' : match[1] || match[0]; + }); +} + +/** + * Convert an array to an object. + * + * @param {Array} arr - The array to convert to an object. + * + * @returns An object with the same keys and values as the array. + */ +function arrayToObject(arr) { + const obj = {}; + const keys = Object.keys(arr); + let i; + const len = keys.length; + let key; + for (i = 0; i < len; i++) { + key = keys[i]; + obj[key] = arr[key]; + } + return obj; +} + +/** + * It takes a FormData object and returns a JavaScript object + * + * @param {string} formData The FormData object to convert to JSON. + * + * @returns {Object | null} The converted object. + */ +function formDataToJSON(formData) { + function buildPath(path, value, target, index) { + let name = path[index++]; + const isNumericKey = Number.isFinite(+name); + const isLast = index >= path.length; + name = !name && utils$1.isArray(target) ? target.length : name; + + if (isLast) { + if (utils$1.hasOwnProp(target, name)) { + target[name] = [target[name], value]; + } else { + target[name] = value; + } + + return !isNumericKey; + } + + if (!target[name] || !utils$1.isObject(target[name])) { + target[name] = []; + } + + const result = buildPath(path, value, target[name], index); + + if (result && utils$1.isArray(target[name])) { + target[name] = arrayToObject(target[name]); + } + + return !isNumericKey; + } + + if (utils$1.isFormData(formData) && utils$1.isFunction(formData.entries)) { + const obj = {}; + + utils$1.forEachEntry(formData, (name, value) => { + buildPath(parsePropPath(name), value, obj, 0); + }); + + return obj; + } + + return null; +} + +/** + * It takes a string, tries to parse it, and if it fails, it returns the stringified version + * of the input + * + * @param {any} rawValue - The value to be stringified. + * @param {Function} parser - A function that parses a string into a JavaScript object. + * @param {Function} encoder - A function that takes a value and returns a string. + * + * @returns {string} A stringified version of the rawValue. + */ +function stringifySafely(rawValue, parser, encoder) { + if (utils$1.isString(rawValue)) { + try { + (parser || JSON.parse)(rawValue); + return utils$1.trim(rawValue); + } catch (e) { + if (e.name !== 'SyntaxError') { + throw e; + } + } + } + + return (encoder || JSON.stringify)(rawValue); +} + +const defaults = { + + transitional: transitionalDefaults, + + adapter: ['xhr', 'http'], + + transformRequest: [function transformRequest(data, headers) { + const contentType = headers.getContentType() || ''; + const hasJSONContentType = contentType.indexOf('application/json') > -1; + const isObjectPayload = utils$1.isObject(data); + + if (isObjectPayload && utils$1.isHTMLForm(data)) { + data = new FormData(data); + } + + const isFormData = utils$1.isFormData(data); + + if (isFormData) { + if (!hasJSONContentType) { + return data; + } + return hasJSONContentType ? JSON.stringify(formDataToJSON(data)) : data; + } + + if (utils$1.isArrayBuffer(data) || + utils$1.isBuffer(data) || + utils$1.isStream(data) || + utils$1.isFile(data) || + utils$1.isBlob(data) + ) { + return data; + } + if (utils$1.isArrayBufferView(data)) { + return data.buffer; + } + if (utils$1.isURLSearchParams(data)) { + headers.setContentType('application/x-www-form-urlencoded;charset=utf-8', false); + return data.toString(); + } + + let isFileList; + + if (isObjectPayload) { + if (contentType.indexOf('application/x-www-form-urlencoded') > -1) { + return toURLEncodedForm(data, this.formSerializer).toString(); + } + + if ((isFileList = utils$1.isFileList(data)) || contentType.indexOf('multipart/form-data') > -1) { + const _FormData = this.env && this.env.FormData; + + return toFormData( + isFileList ? {'files[]': data} : data, + _FormData && new _FormData(), + this.formSerializer + ); + } + } + + if (isObjectPayload || hasJSONContentType ) { + headers.setContentType('application/json', false); + return stringifySafely(data); + } + + return data; + }], + + transformResponse: [function transformResponse(data) { + const transitional = this.transitional || defaults.transitional; + const forcedJSONParsing = transitional && transitional.forcedJSONParsing; + const JSONRequested = this.responseType === 'json'; + + if (data && utils$1.isString(data) && ((forcedJSONParsing && !this.responseType) || JSONRequested)) { + const silentJSONParsing = transitional && transitional.silentJSONParsing; + const strictJSONParsing = !silentJSONParsing && JSONRequested; + + try { + return JSON.parse(data); + } catch (e) { + if (strictJSONParsing) { + if (e.name === 'SyntaxError') { + throw AxiosError.from(e, AxiosError.ERR_BAD_RESPONSE, this, null, this.response); + } + throw e; + } + } + } + + return data; + }], + + /** + * A timeout in milliseconds to abort a request. If set to 0 (default) a + * timeout is not created. + */ + timeout: 0, + + xsrfCookieName: 'XSRF-TOKEN', + xsrfHeaderName: 'X-XSRF-TOKEN', + + maxContentLength: -1, + maxBodyLength: -1, + + env: { + FormData: platform.classes.FormData, + Blob: platform.classes.Blob + }, + + validateStatus: function validateStatus(status) { + return status >= 200 && status < 300; + }, + + headers: { + common: { + 'Accept': 'application/json, text/plain, */*', + 'Content-Type': undefined + } + } +}; + +utils$1.forEach(['delete', 'get', 'head', 'post', 'put', 'patch'], (method) => { + defaults.headers[method] = {}; +}); + +var defaults$1 = defaults; + +// RawAxiosHeaders whose duplicates are ignored by node +// c.f. https://nodejs.org/api/http.html#http_message_headers +const ignoreDuplicateOf = utils$1.toObjectSet([ + 'age', 'authorization', 'content-length', 'content-type', 'etag', + 'expires', 'from', 'host', 'if-modified-since', 'if-unmodified-since', + 'last-modified', 'location', 'max-forwards', 'proxy-authorization', + 'referer', 'retry-after', 'user-agent' +]); + +/** + * Parse headers into an object + * + * ``` + * Date: Wed, 27 Aug 2014 08:58:49 GMT + * Content-Type: application/json + * Connection: keep-alive + * Transfer-Encoding: chunked + * ``` + * + * @param {String} rawHeaders Headers needing to be parsed + * + * @returns {Object} Headers parsed into an object + */ +var parseHeaders = rawHeaders => { + const parsed = {}; + let key; + let val; + let i; + + rawHeaders && rawHeaders.split('\n').forEach(function parser(line) { + i = line.indexOf(':'); + key = line.substring(0, i).trim().toLowerCase(); + val = line.substring(i + 1).trim(); + + if (!key || (parsed[key] && ignoreDuplicateOf[key])) { + return; + } + + if (key === 'set-cookie') { + if (parsed[key]) { + parsed[key].push(val); + } else { + parsed[key] = [val]; + } + } else { + parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val; + } + }); + + return parsed; +}; + +const $internals = Symbol('internals'); + +function normalizeHeader(header) { + return header && String(header).trim().toLowerCase(); +} + +function normalizeValue(value) { + if (value === false || value == null) { + return value; + } + + return utils$1.isArray(value) ? value.map(normalizeValue) : String(value); +} + +function parseTokens(str) { + const tokens = Object.create(null); + const tokensRE = /([^\s,;=]+)\s*(?:=\s*([^,;]+))?/g; + let match; + + while ((match = tokensRE.exec(str))) { + tokens[match[1]] = match[2]; + } + + return tokens; +} + +const isValidHeaderName = (str) => /^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(str.trim()); + +function matchHeaderValue(context, value, header, filter, isHeaderNameFilter) { + if (utils$1.isFunction(filter)) { + return filter.call(this, value, header); + } + + if (isHeaderNameFilter) { + value = header; + } + + if (!utils$1.isString(value)) return; + + if (utils$1.isString(filter)) { + return value.indexOf(filter) !== -1; + } + + if (utils$1.isRegExp(filter)) { + return filter.test(value); + } +} + +function formatHeader(header) { + return header.trim() + .toLowerCase().replace(/([a-z\d])(\w*)/g, (w, char, str) => { + return char.toUpperCase() + str; + }); +} + +function buildAccessors(obj, header) { + const accessorName = utils$1.toCamelCase(' ' + header); + + ['get', 'set', 'has'].forEach(methodName => { + Object.defineProperty(obj, methodName + accessorName, { + value: function(arg1, arg2, arg3) { + return this[methodName].call(this, header, arg1, arg2, arg3); + }, + configurable: true + }); + }); +} + +class AxiosHeaders { + constructor(headers) { + headers && this.set(headers); + } + + set(header, valueOrRewrite, rewrite) { + const self = this; + + function setHeader(_value, _header, _rewrite) { + const lHeader = normalizeHeader(_header); + + if (!lHeader) { + throw new Error('header name must be a non-empty string'); + } + + const key = utils$1.findKey(self, lHeader); + + if(!key || self[key] === undefined || _rewrite === true || (_rewrite === undefined && self[key] !== false)) { + self[key || _header] = normalizeValue(_value); + } + } + + const setHeaders = (headers, _rewrite) => + utils$1.forEach(headers, (_value, _header) => setHeader(_value, _header, _rewrite)); + + if (utils$1.isPlainObject(header) || header instanceof this.constructor) { + setHeaders(header, valueOrRewrite); + } else if(utils$1.isString(header) && (header = header.trim()) && !isValidHeaderName(header)) { + setHeaders(parseHeaders(header), valueOrRewrite); + } else { + header != null && setHeader(valueOrRewrite, header, rewrite); + } + + return this; + } + + get(header, parser) { + header = normalizeHeader(header); + + if (header) { + const key = utils$1.findKey(this, header); + + if (key) { + const value = this[key]; + + if (!parser) { + return value; + } + + if (parser === true) { + return parseTokens(value); + } + + if (utils$1.isFunction(parser)) { + return parser.call(this, value, key); + } + + if (utils$1.isRegExp(parser)) { + return parser.exec(value); + } + + throw new TypeError('parser must be boolean|regexp|function'); + } + } + } + + has(header, matcher) { + header = normalizeHeader(header); + + if (header) { + const key = utils$1.findKey(this, header); + + return !!(key && this[key] !== undefined && (!matcher || matchHeaderValue(this, this[key], key, matcher))); + } + + return false; + } + + delete(header, matcher) { + const self = this; + let deleted = false; + + function deleteHeader(_header) { + _header = normalizeHeader(_header); + + if (_header) { + const key = utils$1.findKey(self, _header); + + if (key && (!matcher || matchHeaderValue(self, self[key], key, matcher))) { + delete self[key]; + + deleted = true; + } + } + } + + if (utils$1.isArray(header)) { + header.forEach(deleteHeader); + } else { + deleteHeader(header); + } + + return deleted; + } + + clear(matcher) { + const keys = Object.keys(this); + let i = keys.length; + let deleted = false; + + while (i--) { + const key = keys[i]; + if(!matcher || matchHeaderValue(this, this[key], key, matcher, true)) { + delete this[key]; + deleted = true; + } + } + + return deleted; + } + + normalize(format) { + const self = this; + const headers = {}; + + utils$1.forEach(this, (value, header) => { + const key = utils$1.findKey(headers, header); + + if (key) { + self[key] = normalizeValue(value); + delete self[header]; + return; + } + + const normalized = format ? formatHeader(header) : String(header).trim(); + + if (normalized !== header) { + delete self[header]; + } + + self[normalized] = normalizeValue(value); + + headers[normalized] = true; + }); + + return this; + } + + concat(...targets) { + return this.constructor.concat(this, ...targets); + } + + toJSON(asStrings) { + const obj = Object.create(null); + + utils$1.forEach(this, (value, header) => { + value != null && value !== false && (obj[header] = asStrings && utils$1.isArray(value) ? value.join(', ') : value); + }); + + return obj; + } + + [Symbol.iterator]() { + return Object.entries(this.toJSON())[Symbol.iterator](); + } + + toString() { + return Object.entries(this.toJSON()).map(([header, value]) => header + ': ' + value).join('\n'); + } + + get [Symbol.toStringTag]() { + return 'AxiosHeaders'; + } + + static from(thing) { + return thing instanceof this ? thing : new this(thing); + } + + static concat(first, ...targets) { + const computed = new this(first); + + targets.forEach((target) => computed.set(target)); + + return computed; + } + + static accessor(header) { + const internals = this[$internals] = (this[$internals] = { + accessors: {} + }); + + const accessors = internals.accessors; + const prototype = this.prototype; + + function defineAccessor(_header) { + const lHeader = normalizeHeader(_header); + + if (!accessors[lHeader]) { + buildAccessors(prototype, _header); + accessors[lHeader] = true; + } + } + + utils$1.isArray(header) ? header.forEach(defineAccessor) : defineAccessor(header); + + return this; + } +} + +AxiosHeaders.accessor(['Content-Type', 'Content-Length', 'Accept', 'Accept-Encoding', 'User-Agent', 'Authorization']); + +// reserved names hotfix +utils$1.reduceDescriptors(AxiosHeaders.prototype, ({value}, key) => { + let mapped = key[0].toUpperCase() + key.slice(1); // map `set` => `Set` + return { + get: () => value, + set(headerValue) { + this[mapped] = headerValue; + } + } +}); + +utils$1.freezeMethods(AxiosHeaders); + +var AxiosHeaders$1 = AxiosHeaders; + +/** + * Transform the data for a request or a response + * + * @param {Array|Function} fns A single function or Array of functions + * @param {?Object} response The response object + * + * @returns {*} The resulting transformed data + */ +function transformData(fns, response) { + const config = this || defaults$1; + const context = response || config; + const headers = AxiosHeaders$1.from(context.headers); + let data = context.data; + + utils$1.forEach(fns, function transform(fn) { + data = fn.call(config, data, headers.normalize(), response ? response.status : undefined); + }); + + headers.normalize(); + + return data; +} + +function isCancel(value) { + return !!(value && value.__CANCEL__); +} + +/** + * A `CanceledError` is an object that is thrown when an operation is canceled. + * + * @param {string=} message The message. + * @param {Object=} config The config. + * @param {Object=} request The request. + * + * @returns {CanceledError} The created error. + */ +function CanceledError(message, config, request) { + // eslint-disable-next-line no-eq-null,eqeqeq + AxiosError.call(this, message == null ? 'canceled' : message, AxiosError.ERR_CANCELED, config, request); + this.name = 'CanceledError'; +} + +utils$1.inherits(CanceledError, AxiosError, { + __CANCEL__: true +}); + +/** + * Resolve or reject a Promise based on response status. + * + * @param {Function} resolve A function that resolves the promise. + * @param {Function} reject A function that rejects the promise. + * @param {object} response The response. + * + * @returns {object} The response. + */ +function settle(resolve, reject, response) { + const validateStatus = response.config.validateStatus; + if (!response.status || !validateStatus || validateStatus(response.status)) { + resolve(response); + } else { + reject(new AxiosError( + 'Request failed with status code ' + response.status, + [AxiosError.ERR_BAD_REQUEST, AxiosError.ERR_BAD_RESPONSE][Math.floor(response.status / 100) - 4], + response.config, + response.request, + response + )); + } +} + +/** + * Determines whether the specified URL is absolute + * + * @param {string} url The URL to test + * + * @returns {boolean} True if the specified URL is absolute, otherwise false + */ +function isAbsoluteURL(url) { + // A URL is considered absolute if it begins with "://" or "//" (protocol-relative URL). + // RFC 3986 defines scheme name as a sequence of characters beginning with a letter and followed + // by any combination of letters, digits, plus, period, or hyphen. + return /^([a-z][a-z\d+\-.]*:)?\/\//i.test(url); +} + +/** + * Creates a new URL by combining the specified URLs + * + * @param {string} baseURL The base URL + * @param {string} relativeURL The relative URL + * + * @returns {string} The combined URL + */ +function combineURLs(baseURL, relativeURL) { + return relativeURL + ? baseURL.replace(/\/+$/, '') + '/' + relativeURL.replace(/^\/+/, '') + : baseURL; +} + +/** + * Creates a new URL by combining the baseURL with the requestedURL, + * only when the requestedURL is not already an absolute URL. + * If the requestURL is absolute, this function returns the requestedURL untouched. + * + * @param {string} baseURL The base URL + * @param {string} requestedURL Absolute or relative URL to combine + * + * @returns {string} The combined full path + */ +function buildFullPath(baseURL, requestedURL) { + if (baseURL && !isAbsoluteURL(requestedURL)) { + return combineURLs(baseURL, requestedURL); + } + return requestedURL; +} + +var proxyFromEnv = {}; + +var hasRequiredProxyFromEnv; + +function requireProxyFromEnv () { + if (hasRequiredProxyFromEnv) return proxyFromEnv; + hasRequiredProxyFromEnv = 1; + + var parseUrl = Url.parse; + + var DEFAULT_PORTS = { + ftp: 21, + gopher: 70, + http: 80, + https: 443, + ws: 80, + wss: 443, + }; + + var stringEndsWith = String.prototype.endsWith || function(s) { + return s.length <= this.length && + this.indexOf(s, this.length - s.length) !== -1; + }; + + /** + * @param {string|object} url - The URL, or the result from url.parse. + * @return {string} The URL of the proxy that should handle the request to the + * given URL. If no proxy is set, this will be an empty string. + */ + function getProxyForUrl(url) { + var parsedUrl = typeof url === 'string' ? parseUrl(url) : url || {}; + var proto = parsedUrl.protocol; + var hostname = parsedUrl.host; + var port = parsedUrl.port; + if (typeof hostname !== 'string' || !hostname || typeof proto !== 'string') { + return ''; // Don't proxy URLs without a valid scheme or host. + } + + proto = proto.split(':', 1)[0]; + // Stripping ports in this way instead of using parsedUrl.hostname to make + // sure that the brackets around IPv6 addresses are kept. + hostname = hostname.replace(/:\d*$/, ''); + port = parseInt(port) || DEFAULT_PORTS[proto] || 0; + if (!shouldProxy(hostname, port)) { + return ''; // Don't proxy URLs that match NO_PROXY. + } + + var proxy = + getEnv('npm_config_' + proto + '_proxy') || + getEnv(proto + '_proxy') || + getEnv('npm_config_proxy') || + getEnv('all_proxy'); + if (proxy && proxy.indexOf('://') === -1) { + // Missing scheme in proxy, default to the requested URL's scheme. + proxy = proto + '://' + proxy; + } + return proxy; + } + + /** + * Determines whether a given URL should be proxied. + * + * @param {string} hostname - The host name of the URL. + * @param {number} port - The effective port of the URL. + * @returns {boolean} Whether the given URL should be proxied. + * @private + */ + function shouldProxy(hostname, port) { + var NO_PROXY = + (getEnv('npm_config_no_proxy') || getEnv('no_proxy')).toLowerCase(); + if (!NO_PROXY) { + return true; // Always proxy if NO_PROXY is not set. + } + if (NO_PROXY === '*') { + return false; // Never proxy if wildcard is set. + } + + return NO_PROXY.split(/[,\s]/).every(function(proxy) { + if (!proxy) { + return true; // Skip zero-length hosts. + } + var parsedProxy = proxy.match(/^(.+):(\d+)$/); + var parsedProxyHostname = parsedProxy ? parsedProxy[1] : proxy; + var parsedProxyPort = parsedProxy ? parseInt(parsedProxy[2]) : 0; + if (parsedProxyPort && parsedProxyPort !== port) { + return true; // Skip if ports don't match. + } + + if (!/^[.*]/.test(parsedProxyHostname)) { + // No wildcards, so stop proxying if there is an exact match. + return hostname !== parsedProxyHostname; + } + + if (parsedProxyHostname.charAt(0) === '*') { + // Remove leading wildcard. + parsedProxyHostname = parsedProxyHostname.slice(1); + } + // Stop proxying if the hostname ends with the no_proxy host. + return !stringEndsWith.call(hostname, parsedProxyHostname); + }); + } + + /** + * Get the value for an environment variable. + * + * @param {string} key - The name of the environment variable. + * @return {string} The value of the environment variable. + * @private + */ + function getEnv(key) { + return process.env[key.toLowerCase()] || process.env[key.toUpperCase()] || ''; + } + + proxyFromEnv.getProxyForUrl = getProxyForUrl; + return proxyFromEnv; +} + +var proxyFromEnvExports = requireProxyFromEnv(); + +var followRedirects$1 = {exports: {}}; + +var src = {exports: {}}; + +var browser = {exports: {}}; + +/** + * Helpers. + */ + +var ms; +var hasRequiredMs; + +function requireMs () { + if (hasRequiredMs) return ms; + hasRequiredMs = 1; + var s = 1000; + var m = s * 60; + var h = m * 60; + var d = h * 24; + var w = d * 7; + var y = d * 365.25; + + /** + * Parse or format the given `val`. + * + * Options: + * + * - `long` verbose formatting [false] + * + * @param {String|Number} val + * @param {Object} [options] + * @throws {Error} throw an error if val is not a non-empty string or a number + * @return {String|Number} + * @api public + */ + + ms = function(val, options) { + options = options || {}; + var type = typeof val; + if (type === 'string' && val.length > 0) { + return parse(val); + } else if (type === 'number' && isFinite(val)) { + return options.long ? fmtLong(val) : fmtShort(val); + } + throw new Error( + 'val is not a non-empty string or a valid number. val=' + + JSON.stringify(val) + ); + }; + + /** + * Parse the given `str` and return milliseconds. + * + * @param {String} str + * @return {Number} + * @api private + */ + + function parse(str) { + str = String(str); + if (str.length > 100) { + return; + } + var match = /^(-?(?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec( + str + ); + if (!match) { + return; + } + var n = parseFloat(match[1]); + var type = (match[2] || 'ms').toLowerCase(); + switch (type) { + case 'years': + case 'year': + case 'yrs': + case 'yr': + case 'y': + return n * y; + case 'weeks': + case 'week': + case 'w': + return n * w; + case 'days': + case 'day': + case 'd': + return n * d; + case 'hours': + case 'hour': + case 'hrs': + case 'hr': + case 'h': + return n * h; + case 'minutes': + case 'minute': + case 'mins': + case 'min': + case 'm': + return n * m; + case 'seconds': + case 'second': + case 'secs': + case 'sec': + case 's': + return n * s; + case 'milliseconds': + case 'millisecond': + case 'msecs': + case 'msec': + case 'ms': + return n; + default: + return undefined; + } + } + + /** + * Short format for `ms`. + * + * @param {Number} ms + * @return {String} + * @api private + */ + + function fmtShort(ms) { + var msAbs = Math.abs(ms); + if (msAbs >= d) { + return Math.round(ms / d) + 'd'; + } + if (msAbs >= h) { + return Math.round(ms / h) + 'h'; + } + if (msAbs >= m) { + return Math.round(ms / m) + 'm'; + } + if (msAbs >= s) { + return Math.round(ms / s) + 's'; + } + return ms + 'ms'; + } + + /** + * Long format for `ms`. + * + * @param {Number} ms + * @return {String} + * @api private + */ + + function fmtLong(ms) { + var msAbs = Math.abs(ms); + if (msAbs >= d) { + return plural(ms, msAbs, d, 'day'); + } + if (msAbs >= h) { + return plural(ms, msAbs, h, 'hour'); + } + if (msAbs >= m) { + return plural(ms, msAbs, m, 'minute'); + } + if (msAbs >= s) { + return plural(ms, msAbs, s, 'second'); + } + return ms + ' ms'; + } + + /** + * Pluralization helper. + */ + + function plural(ms, msAbs, n, name) { + var isPlural = msAbs >= n * 1.5; + return Math.round(ms / n) + ' ' + name + (isPlural ? 's' : ''); + } + return ms; +} + +var common; +var hasRequiredCommon; + +function requireCommon () { + if (hasRequiredCommon) return common; + hasRequiredCommon = 1; + /** + * This is the common logic for both the Node.js and web browser + * implementations of `debug()`. + */ + + function setup(env) { + createDebug.debug = createDebug; + createDebug.default = createDebug; + createDebug.coerce = coerce; + createDebug.disable = disable; + createDebug.enable = enable; + createDebug.enabled = enabled; + createDebug.humanize = requireMs(); + createDebug.destroy = destroy; + + Object.keys(env).forEach(key => { + createDebug[key] = env[key]; + }); + + /** + * The currently active debug mode names, and names to skip. + */ + + createDebug.names = []; + createDebug.skips = []; + + /** + * Map of special "%n" handling functions, for the debug "format" argument. + * + * Valid key names are a single, lower or upper-case letter, i.e. "n" and "N". + */ + createDebug.formatters = {}; + + /** + * Selects a color for a debug namespace + * @param {String} namespace The namespace string for the debug instance to be colored + * @return {Number|String} An ANSI color code for the given namespace + * @api private + */ + function selectColor(namespace) { + let hash = 0; + + for (let i = 0; i < namespace.length; i++) { + hash = ((hash << 5) - hash) + namespace.charCodeAt(i); + hash |= 0; // Convert to 32bit integer + } + + return createDebug.colors[Math.abs(hash) % createDebug.colors.length]; + } + createDebug.selectColor = selectColor; + + /** + * Create a debugger with the given `namespace`. + * + * @param {String} namespace + * @return {Function} + * @api public + */ + function createDebug(namespace) { + let prevTime; + let enableOverride = null; + let namespacesCache; + let enabledCache; + + function debug(...args) { + // Disabled? + if (!debug.enabled) { + return; + } + + const self = debug; + + // Set `diff` timestamp + const curr = Number(new Date()); + const ms = curr - (prevTime || curr); + self.diff = ms; + self.prev = prevTime; + self.curr = curr; + prevTime = curr; + + args[0] = createDebug.coerce(args[0]); + + if (typeof args[0] !== 'string') { + // Anything else let's inspect with %O + args.unshift('%O'); + } + + // Apply any `formatters` transformations + let index = 0; + args[0] = args[0].replace(/%([a-zA-Z%])/g, (match, format) => { + // If we encounter an escaped % then don't increase the array index + if (match === '%%') { + return '%'; + } + index++; + const formatter = createDebug.formatters[format]; + if (typeof formatter === 'function') { + const val = args[index]; + match = formatter.call(self, val); + + // Now we need to remove `args[index]` since it's inlined in the `format` + args.splice(index, 1); + index--; + } + return match; + }); + + // Apply env-specific formatting (colors, etc.) + createDebug.formatArgs.call(self, args); + + const logFn = self.log || createDebug.log; + logFn.apply(self, args); + } + + debug.namespace = namespace; + debug.useColors = createDebug.useColors(); + debug.color = createDebug.selectColor(namespace); + debug.extend = extend; + debug.destroy = createDebug.destroy; // XXX Temporary. Will be removed in the next major release. + + Object.defineProperty(debug, 'enabled', { + enumerable: true, + configurable: false, + get: () => { + if (enableOverride !== null) { + return enableOverride; + } + if (namespacesCache !== createDebug.namespaces) { + namespacesCache = createDebug.namespaces; + enabledCache = createDebug.enabled(namespace); + } + + return enabledCache; + }, + set: v => { + enableOverride = v; + } + }); + + // Env-specific initialization logic for debug instances + if (typeof createDebug.init === 'function') { + createDebug.init(debug); + } + + return debug; + } + + function extend(namespace, delimiter) { + const newDebug = createDebug(this.namespace + (typeof delimiter === 'undefined' ? ':' : delimiter) + namespace); + newDebug.log = this.log; + return newDebug; + } + + /** + * Enables a debug mode by namespaces. This can include modes + * separated by a colon and wildcards. + * + * @param {String} namespaces + * @api public + */ + function enable(namespaces) { + createDebug.save(namespaces); + createDebug.namespaces = namespaces; + + createDebug.names = []; + createDebug.skips = []; + + let i; + const split = (typeof namespaces === 'string' ? namespaces : '').split(/[\s,]+/); + const len = split.length; + + for (i = 0; i < len; i++) { + if (!split[i]) { + // ignore empty strings + continue; + } + + namespaces = split[i].replace(/\*/g, '.*?'); + + if (namespaces[0] === '-') { + createDebug.skips.push(new RegExp('^' + namespaces.slice(1) + '$')); + } else { + createDebug.names.push(new RegExp('^' + namespaces + '$')); + } + } + } + + /** + * Disable debug output. + * + * @return {String} namespaces + * @api public + */ + function disable() { + const namespaces = [ + ...createDebug.names.map(toNamespace), + ...createDebug.skips.map(toNamespace).map(namespace => '-' + namespace) + ].join(','); + createDebug.enable(''); + return namespaces; + } + + /** + * Returns true if the given mode name is enabled, false otherwise. + * + * @param {String} name + * @return {Boolean} + * @api public + */ + function enabled(name) { + if (name[name.length - 1] === '*') { + return true; + } + + let i; + let len; + + for (i = 0, len = createDebug.skips.length; i < len; i++) { + if (createDebug.skips[i].test(name)) { + return false; + } + } + + for (i = 0, len = createDebug.names.length; i < len; i++) { + if (createDebug.names[i].test(name)) { + return true; + } + } + + return false; + } + + /** + * Convert regexp to namespace + * + * @param {RegExp} regxep + * @return {String} namespace + * @api private + */ + function toNamespace(regexp) { + return regexp.toString() + .substring(2, regexp.toString().length - 2) + .replace(/\.\*\?$/, '*'); + } + + /** + * Coerce `val`. + * + * @param {Mixed} val + * @return {Mixed} + * @api private + */ + function coerce(val) { + if (val instanceof Error) { + return val.stack || val.message; + } + return val; + } + + /** + * XXX DO NOT USE. This is a temporary stub function. + * XXX It WILL be removed in the next major release. + */ + function destroy() { + console.warn('Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.'); + } + + createDebug.enable(createDebug.load()); + + return createDebug; + } + + common = setup; + return common; +} + +/* eslint-env browser */ + +var hasRequiredBrowser; + +function requireBrowser () { + if (hasRequiredBrowser) return browser.exports; + hasRequiredBrowser = 1; + (function (module, exports) { + /** + * This is the web browser implementation of `debug()`. + */ + + exports.formatArgs = formatArgs; + exports.save = save; + exports.load = load; + exports.useColors = useColors; + exports.storage = localstorage(); + exports.destroy = (() => { + let warned = false; + + return () => { + if (!warned) { + warned = true; + console.warn('Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.'); + } + }; + })(); + + /** + * Colors. + */ + + exports.colors = [ + '#0000CC', + '#0000FF', + '#0033CC', + '#0033FF', + '#0066CC', + '#0066FF', + '#0099CC', + '#0099FF', + '#00CC00', + '#00CC33', + '#00CC66', + '#00CC99', + '#00CCCC', + '#00CCFF', + '#3300CC', + '#3300FF', + '#3333CC', + '#3333FF', + '#3366CC', + '#3366FF', + '#3399CC', + '#3399FF', + '#33CC00', + '#33CC33', + '#33CC66', + '#33CC99', + '#33CCCC', + '#33CCFF', + '#6600CC', + '#6600FF', + '#6633CC', + '#6633FF', + '#66CC00', + '#66CC33', + '#9900CC', + '#9900FF', + '#9933CC', + '#9933FF', + '#99CC00', + '#99CC33', + '#CC0000', + '#CC0033', + '#CC0066', + '#CC0099', + '#CC00CC', + '#CC00FF', + '#CC3300', + '#CC3333', + '#CC3366', + '#CC3399', + '#CC33CC', + '#CC33FF', + '#CC6600', + '#CC6633', + '#CC9900', + '#CC9933', + '#CCCC00', + '#CCCC33', + '#FF0000', + '#FF0033', + '#FF0066', + '#FF0099', + '#FF00CC', + '#FF00FF', + '#FF3300', + '#FF3333', + '#FF3366', + '#FF3399', + '#FF33CC', + '#FF33FF', + '#FF6600', + '#FF6633', + '#FF9900', + '#FF9933', + '#FFCC00', + '#FFCC33' + ]; + + /** + * Currently only WebKit-based Web Inspectors, Firefox >= v31, + * and the Firebug extension (any Firefox version) are known + * to support "%c" CSS customizations. + * + * TODO: add a `localStorage` variable to explicitly enable/disable colors + */ + + // eslint-disable-next-line complexity + function useColors() { + // NB: In an Electron preload script, document will be defined but not fully + // initialized. Since we know we're in Chrome, we'll just detect this case + // explicitly + if (typeof window !== 'undefined' && window.process && (window.process.type === 'renderer' || window.process.__nwjs)) { + return true; + } + + // Internet Explorer and Edge do not support colors. + if (typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/(edge|trident)\/(\d+)/)) { + return false; + } + + // Is webkit? http://stackoverflow.com/a/16459606/376773 + // document is undefined in react-native: https://github.com/facebook/react-native/pull/1632 + return (typeof document !== 'undefined' && document.documentElement && document.documentElement.style && document.documentElement.style.WebkitAppearance) || + // Is firebug? http://stackoverflow.com/a/398120/376773 + (typeof window !== 'undefined' && window.console && (window.console.firebug || (window.console.exception && window.console.table))) || + // Is firefox >= v31? + // https://developer.mozilla.org/en-US/docs/Tools/Web_Console#Styling_messages + (typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/) && parseInt(RegExp.$1, 10) >= 31) || + // Double check webkit in userAgent just in case we are in a worker + (typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/)); + } + + /** + * Colorize log arguments if enabled. + * + * @api public + */ + + function formatArgs(args) { + args[0] = (this.useColors ? '%c' : '') + + this.namespace + + (this.useColors ? ' %c' : ' ') + + args[0] + + (this.useColors ? '%c ' : ' ') + + '+' + module.exports.humanize(this.diff); + + if (!this.useColors) { + return; + } + + const c = 'color: ' + this.color; + args.splice(1, 0, c, 'color: inherit'); + + // The final "%c" is somewhat tricky, because there could be other + // arguments passed either before or after the %c, so we need to + // figure out the correct index to insert the CSS into + let index = 0; + let lastC = 0; + args[0].replace(/%[a-zA-Z%]/g, match => { + if (match === '%%') { + return; + } + index++; + if (match === '%c') { + // We only are interested in the *last* %c + // (the user may have provided their own) + lastC = index; + } + }); + + args.splice(lastC, 0, c); + } + + /** + * Invokes `console.debug()` when available. + * No-op when `console.debug` is not a "function". + * If `console.debug` is not available, falls back + * to `console.log`. + * + * @api public + */ + exports.log = console.debug || console.log || (() => {}); + + /** + * Save `namespaces`. + * + * @param {String} namespaces + * @api private + */ + function save(namespaces) { + try { + if (namespaces) { + exports.storage.setItem('debug', namespaces); + } else { + exports.storage.removeItem('debug'); + } + } catch (error) { + // Swallow + // XXX (@Qix-) should we be logging these? + } + } + + /** + * Load `namespaces`. + * + * @return {String} returns the previously persisted debug modes + * @api private + */ + function load() { + let r; + try { + r = exports.storage.getItem('debug'); + } catch (error) { + // Swallow + // XXX (@Qix-) should we be logging these? + } + + // If debug isn't set in LS, and we're in Electron, try to load $DEBUG + if (!r && typeof process !== 'undefined' && 'env' in process) { + r = process.env.DEBUG; + } + + return r; + } + + /** + * Localstorage attempts to return the localstorage. + * + * This is necessary because safari throws + * when a user disables cookies/localstorage + * and you attempt to access it. + * + * @return {LocalStorage} + * @api private + */ + + function localstorage() { + try { + // TVMLKit (Apple TV JS Runtime) does not have a window object, just localStorage in the global context + // The Browser also has localStorage in the global context. + return localStorage; + } catch (error) { + // Swallow + // XXX (@Qix-) should we be logging these? + } + } + + module.exports = requireCommon()(exports); + + const {formatters} = module.exports; + + /** + * Map %j to `JSON.stringify()`, since no Web Inspectors do that by default. + */ + + formatters.j = function (v) { + try { + return JSON.stringify(v); + } catch (error) { + return '[UnexpectedJSONParseError]: ' + error.message; + } + }; + } (browser, browser.exports)); + return browser.exports; +} + +var node = {exports: {}}; + +var hasFlag; +var hasRequiredHasFlag; + +function requireHasFlag () { + if (hasRequiredHasFlag) return hasFlag; + hasRequiredHasFlag = 1; + + hasFlag = (flag, argv = process.argv) => { + const prefix = flag.startsWith('-') ? '' : (flag.length === 1 ? '-' : '--'); + const position = argv.indexOf(prefix + flag); + const terminatorPosition = argv.indexOf('--'); + return position !== -1 && (terminatorPosition === -1 || position < terminatorPosition); + }; + return hasFlag; +} + +var supportsColor_1; +var hasRequiredSupportsColor; + +function requireSupportsColor () { + if (hasRequiredSupportsColor) return supportsColor_1; + hasRequiredSupportsColor = 1; + const os = require$$0$2; + const tty = require$$1$1; + const hasFlag = requireHasFlag(); + + const {env} = process; + + let forceColor; + if (hasFlag('no-color') || + hasFlag('no-colors') || + hasFlag('color=false') || + hasFlag('color=never')) { + forceColor = 0; + } else if (hasFlag('color') || + hasFlag('colors') || + hasFlag('color=true') || + hasFlag('color=always')) { + forceColor = 1; + } + + if ('FORCE_COLOR' in env) { + if (env.FORCE_COLOR === 'true') { + forceColor = 1; + } else if (env.FORCE_COLOR === 'false') { + forceColor = 0; + } else { + forceColor = env.FORCE_COLOR.length === 0 ? 1 : Math.min(parseInt(env.FORCE_COLOR, 10), 3); + } + } + + function translateLevel(level) { + if (level === 0) { + return false; + } + + return { + level, + hasBasic: true, + has256: level >= 2, + has16m: level >= 3 + }; + } + + function supportsColor(haveStream, streamIsTTY) { + if (forceColor === 0) { + return 0; + } + + if (hasFlag('color=16m') || + hasFlag('color=full') || + hasFlag('color=truecolor')) { + return 3; + } + + if (hasFlag('color=256')) { + return 2; + } + + if (haveStream && !streamIsTTY && forceColor === undefined) { + return 0; + } + + const min = forceColor || 0; + + if (env.TERM === 'dumb') { + return min; + } + + if (process.platform === 'win32') { + // Windows 10 build 10586 is the first Windows release that supports 256 colors. + // Windows 10 build 14931 is the first release that supports 16m/TrueColor. + const osRelease = os.release().split('.'); + if ( + Number(osRelease[0]) >= 10 && + Number(osRelease[2]) >= 10586 + ) { + return Number(osRelease[2]) >= 14931 ? 3 : 2; + } + + return 1; + } + + if ('CI' in env) { + if (['TRAVIS', 'CIRCLECI', 'APPVEYOR', 'GITLAB_CI', 'GITHUB_ACTIONS', 'BUILDKITE'].some(sign => sign in env) || env.CI_NAME === 'codeship') { + return 1; + } + + return min; + } + + if ('TEAMCITY_VERSION' in env) { + return /^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/.test(env.TEAMCITY_VERSION) ? 1 : 0; + } + + if (env.COLORTERM === 'truecolor') { + return 3; + } + + if ('TERM_PROGRAM' in env) { + const version = parseInt((env.TERM_PROGRAM_VERSION || '').split('.')[0], 10); + + switch (env.TERM_PROGRAM) { + case 'iTerm.app': + return version >= 3 ? 3 : 2; + case 'Apple_Terminal': + return 2; + // No default + } + } + + if (/-256(color)?$/i.test(env.TERM)) { + return 2; + } + + if (/^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test(env.TERM)) { + return 1; + } + + if ('COLORTERM' in env) { + return 1; + } + + return min; + } + + function getSupportLevel(stream) { + const level = supportsColor(stream, stream && stream.isTTY); + return translateLevel(level); + } + + supportsColor_1 = { + supportsColor: getSupportLevel, + stdout: translateLevel(supportsColor(true, tty.isatty(1))), + stderr: translateLevel(supportsColor(true, tty.isatty(2))) + }; + return supportsColor_1; +} + +/** + * Module dependencies. + */ + +var hasRequiredNode; + +function requireNode () { + if (hasRequiredNode) return node.exports; + hasRequiredNode = 1; + (function (module, exports) { + const tty = require$$1$1; + const util = require$$1; + + /** + * This is the Node.js implementation of `debug()`. + */ + + exports.init = init; + exports.log = log; + exports.formatArgs = formatArgs; + exports.save = save; + exports.load = load; + exports.useColors = useColors; + exports.destroy = util.deprecate( + () => {}, + 'Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.' + ); + + /** + * Colors. + */ + + exports.colors = [6, 2, 3, 4, 5, 1]; + + try { + // Optional dependency (as in, doesn't need to be installed, NOT like optionalDependencies in package.json) + // eslint-disable-next-line import/no-extraneous-dependencies + const supportsColor = requireSupportsColor(); + + if (supportsColor && (supportsColor.stderr || supportsColor).level >= 2) { + exports.colors = [ + 20, + 21, + 26, + 27, + 32, + 33, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 56, + 57, + 62, + 63, + 68, + 69, + 74, + 75, + 76, + 77, + 78, + 79, + 80, + 81, + 92, + 93, + 98, + 99, + 112, + 113, + 128, + 129, + 134, + 135, + 148, + 149, + 160, + 161, + 162, + 163, + 164, + 165, + 166, + 167, + 168, + 169, + 170, + 171, + 172, + 173, + 178, + 179, + 184, + 185, + 196, + 197, + 198, + 199, + 200, + 201, + 202, + 203, + 204, + 205, + 206, + 207, + 208, + 209, + 214, + 215, + 220, + 221 + ]; + } + } catch (error) { + // Swallow - we only care if `supports-color` is available; it doesn't have to be. + } + + /** + * Build up the default `inspectOpts` object from the environment variables. + * + * $ DEBUG_COLORS=no DEBUG_DEPTH=10 DEBUG_SHOW_HIDDEN=enabled node script.js + */ + + exports.inspectOpts = Object.keys(process.env).filter(key => { + return /^debug_/i.test(key); + }).reduce((obj, key) => { + // Camel-case + const prop = key + .substring(6) + .toLowerCase() + .replace(/_([a-z])/g, (_, k) => { + return k.toUpperCase(); + }); + + // Coerce string value into JS value + let val = process.env[key]; + if (/^(yes|on|true|enabled)$/i.test(val)) { + val = true; + } else if (/^(no|off|false|disabled)$/i.test(val)) { + val = false; + } else if (val === 'null') { + val = null; + } else { + val = Number(val); + } + + obj[prop] = val; + return obj; + }, {}); + + /** + * Is stdout a TTY? Colored output is enabled when `true`. + */ + + function useColors() { + return 'colors' in exports.inspectOpts ? + Boolean(exports.inspectOpts.colors) : + tty.isatty(process.stderr.fd); + } + + /** + * Adds ANSI color escape codes if enabled. + * + * @api public + */ + + function formatArgs(args) { + const {namespace: name, useColors} = this; + + if (useColors) { + const c = this.color; + const colorCode = '\u001B[3' + (c < 8 ? c : '8;5;' + c); + const prefix = ` ${colorCode};1m${name} \u001B[0m`; + + args[0] = prefix + args[0].split('\n').join('\n' + prefix); + args.push(colorCode + 'm+' + module.exports.humanize(this.diff) + '\u001B[0m'); + } else { + args[0] = getDate() + name + ' ' + args[0]; + } + } + + function getDate() { + if (exports.inspectOpts.hideDate) { + return ''; + } + return new Date().toISOString() + ' '; + } + + /** + * Invokes `util.format()` with the specified arguments and writes to stderr. + */ + + function log(...args) { + return process.stderr.write(util.format(...args) + '\n'); + } + + /** + * Save `namespaces`. + * + * @param {String} namespaces + * @api private + */ + function save(namespaces) { + if (namespaces) { + process.env.DEBUG = namespaces; + } else { + // If you set a process.env field to null or undefined, it gets cast to the + // string 'null' or 'undefined'. Just delete instead. + delete process.env.DEBUG; + } + } + + /** + * Load `namespaces`. + * + * @return {String} returns the previously persisted debug modes + * @api private + */ + + function load() { + return process.env.DEBUG; + } + + /** + * Init logic for `debug` instances. + * + * Create a new `inspectOpts` object in case `useColors` is set + * differently for a particular `debug` instance. + */ + + function init(debug) { + debug.inspectOpts = {}; + + const keys = Object.keys(exports.inspectOpts); + for (let i = 0; i < keys.length; i++) { + debug.inspectOpts[keys[i]] = exports.inspectOpts[keys[i]]; + } + } + + module.exports = requireCommon()(exports); + + const {formatters} = module.exports; + + /** + * Map %o to `util.inspect()`, all on a single line. + */ + + formatters.o = function (v) { + this.inspectOpts.colors = this.useColors; + return util.inspect(v, this.inspectOpts) + .split('\n') + .map(str => str.trim()) + .join(' '); + }; + + /** + * Map %O to `util.inspect()`, allowing multiple lines if needed. + */ + + formatters.O = function (v) { + this.inspectOpts.colors = this.useColors; + return util.inspect(v, this.inspectOpts); + }; + } (node, node.exports)); + return node.exports; +} + +/** + * Detect Electron renderer / nwjs process, which is node, but we should + * treat as a browser. + */ + +var hasRequiredSrc; + +function requireSrc () { + if (hasRequiredSrc) return src.exports; + hasRequiredSrc = 1; + if (typeof process === 'undefined' || process.type === 'renderer' || process.browser === true || process.__nwjs) { + src.exports = requireBrowser(); + } else { + src.exports = requireNode(); + } + return src.exports; +} + +var debug_1$1; +var hasRequiredDebug$1; + +function requireDebug$1 () { + if (hasRequiredDebug$1) return debug_1$1; + hasRequiredDebug$1 = 1; + var debug; + + debug_1$1 = function () { + if (!debug) { + try { + /* eslint global-require: off */ + debug = requireSrc()("follow-redirects"); + } + catch (error) { /* */ } + if (typeof debug !== "function") { + debug = function () { /* */ }; + } + } + debug.apply(null, arguments); + }; + return debug_1$1; +} + +var hasRequiredFollowRedirects; + +function requireFollowRedirects () { + if (hasRequiredFollowRedirects) return followRedirects$1.exports; + hasRequiredFollowRedirects = 1; + var url = Url; + var URL = url.URL; + var http$1 = http; + var https = require$$4; + var Writable = Stream.Writable; + var assert = require$$4$1; + var debug = requireDebug$1(); + + // Create handlers that pass events from native requests + var events = ["abort", "aborted", "connect", "error", "socket", "timeout"]; + var eventHandlers = Object.create(null); + events.forEach(function (event) { + eventHandlers[event] = function (arg1, arg2, arg3) { + this._redirectable.emit(event, arg1, arg2, arg3); + }; + }); + + var InvalidUrlError = createErrorType( + "ERR_INVALID_URL", + "Invalid URL", + TypeError + ); + // Error types with codes + var RedirectionError = createErrorType( + "ERR_FR_REDIRECTION_FAILURE", + "Redirected request failed" + ); + var TooManyRedirectsError = createErrorType( + "ERR_FR_TOO_MANY_REDIRECTS", + "Maximum number of redirects exceeded" + ); + var MaxBodyLengthExceededError = createErrorType( + "ERR_FR_MAX_BODY_LENGTH_EXCEEDED", + "Request body larger than maxBodyLength limit" + ); + var WriteAfterEndError = createErrorType( + "ERR_STREAM_WRITE_AFTER_END", + "write after end" + ); + + // istanbul ignore next + var destroy = Writable.prototype.destroy || noop; + + // An HTTP(S) request that can be redirected + function RedirectableRequest(options, responseCallback) { + // Initialize the request + Writable.call(this); + this._sanitizeOptions(options); + this._options = options; + this._ended = false; + this._ending = false; + this._redirectCount = 0; + this._redirects = []; + this._requestBodyLength = 0; + this._requestBodyBuffers = []; + + // Attach a callback if passed + if (responseCallback) { + this.on("response", responseCallback); + } + + // React to responses of native requests + var self = this; + this._onNativeResponse = function (response) { + self._processResponse(response); + }; + + // Perform the first request + this._performRequest(); + } + RedirectableRequest.prototype = Object.create(Writable.prototype); + + RedirectableRequest.prototype.abort = function () { + destroyRequest(this._currentRequest); + this._currentRequest.abort(); + this.emit("abort"); + }; + + RedirectableRequest.prototype.destroy = function (error) { + destroyRequest(this._currentRequest, error); + destroy.call(this, error); + return this; + }; + + // Writes buffered data to the current native request + RedirectableRequest.prototype.write = function (data, encoding, callback) { + // Writing is not allowed if end has been called + if (this._ending) { + throw new WriteAfterEndError(); + } + + // Validate input and shift parameters if necessary + if (!isString(data) && !isBuffer(data)) { + throw new TypeError("data should be a string, Buffer or Uint8Array"); + } + if (isFunction(encoding)) { + callback = encoding; + encoding = null; + } + + // Ignore empty buffers, since writing them doesn't invoke the callback + // https://github.com/nodejs/node/issues/22066 + if (data.length === 0) { + if (callback) { + callback(); + } + return; + } + // Only write when we don't exceed the maximum body length + if (this._requestBodyLength + data.length <= this._options.maxBodyLength) { + this._requestBodyLength += data.length; + this._requestBodyBuffers.push({ data: data, encoding: encoding }); + this._currentRequest.write(data, encoding, callback); + } + // Error when we exceed the maximum body length + else { + this.emit("error", new MaxBodyLengthExceededError()); + this.abort(); + } + }; + + // Ends the current native request + RedirectableRequest.prototype.end = function (data, encoding, callback) { + // Shift parameters if necessary + if (isFunction(data)) { + callback = data; + data = encoding = null; + } + else if (isFunction(encoding)) { + callback = encoding; + encoding = null; + } + + // Write data if needed and end + if (!data) { + this._ended = this._ending = true; + this._currentRequest.end(null, null, callback); + } + else { + var self = this; + var currentRequest = this._currentRequest; + this.write(data, encoding, function () { + self._ended = true; + currentRequest.end(null, null, callback); + }); + this._ending = true; + } + }; + + // Sets a header value on the current native request + RedirectableRequest.prototype.setHeader = function (name, value) { + this._options.headers[name] = value; + this._currentRequest.setHeader(name, value); + }; + + // Clears a header value on the current native request + RedirectableRequest.prototype.removeHeader = function (name) { + delete this._options.headers[name]; + this._currentRequest.removeHeader(name); + }; + + // Global timeout for all underlying requests + RedirectableRequest.prototype.setTimeout = function (msecs, callback) { + var self = this; + + // Destroys the socket on timeout + function destroyOnTimeout(socket) { + socket.setTimeout(msecs); + socket.removeListener("timeout", socket.destroy); + socket.addListener("timeout", socket.destroy); + } + + // Sets up a timer to trigger a timeout event + function startTimer(socket) { + if (self._timeout) { + clearTimeout(self._timeout); + } + self._timeout = setTimeout(function () { + self.emit("timeout"); + clearTimer(); + }, msecs); + destroyOnTimeout(socket); + } + + // Stops a timeout from triggering + function clearTimer() { + // Clear the timeout + if (self._timeout) { + clearTimeout(self._timeout); + self._timeout = null; + } + + // Clean up all attached listeners + self.removeListener("abort", clearTimer); + self.removeListener("error", clearTimer); + self.removeListener("response", clearTimer); + self.removeListener("close", clearTimer); + if (callback) { + self.removeListener("timeout", callback); + } + if (!self.socket) { + self._currentRequest.removeListener("socket", startTimer); + } + } + + // Attach callback if passed + if (callback) { + this.on("timeout", callback); + } + + // Start the timer if or when the socket is opened + if (this.socket) { + startTimer(this.socket); + } + else { + this._currentRequest.once("socket", startTimer); + } + + // Clean up on events + this.on("socket", destroyOnTimeout); + this.on("abort", clearTimer); + this.on("error", clearTimer); + this.on("response", clearTimer); + this.on("close", clearTimer); + + return this; + }; + + // Proxy all other public ClientRequest methods + [ + "flushHeaders", "getHeader", + "setNoDelay", "setSocketKeepAlive", + ].forEach(function (method) { + RedirectableRequest.prototype[method] = function (a, b) { + return this._currentRequest[method](a, b); + }; + }); + + // Proxy all public ClientRequest properties + ["aborted", "connection", "socket"].forEach(function (property) { + Object.defineProperty(RedirectableRequest.prototype, property, { + get: function () { return this._currentRequest[property]; }, + }); + }); + + RedirectableRequest.prototype._sanitizeOptions = function (options) { + // Ensure headers are always present + if (!options.headers) { + options.headers = {}; + } + + // Since http.request treats host as an alias of hostname, + // but the url module interprets host as hostname plus port, + // eliminate the host property to avoid confusion. + if (options.host) { + // Use hostname if set, because it has precedence + if (!options.hostname) { + options.hostname = options.host; + } + delete options.host; + } + + // Complete the URL object when necessary + if (!options.pathname && options.path) { + var searchPos = options.path.indexOf("?"); + if (searchPos < 0) { + options.pathname = options.path; + } + else { + options.pathname = options.path.substring(0, searchPos); + options.search = options.path.substring(searchPos); + } + } + }; + + + // Executes the next native request (initial or redirect) + RedirectableRequest.prototype._performRequest = function () { + // Load the native protocol + var protocol = this._options.protocol; + var nativeProtocol = this._options.nativeProtocols[protocol]; + if (!nativeProtocol) { + this.emit("error", new TypeError("Unsupported protocol " + protocol)); + return; + } + + // If specified, use the agent corresponding to the protocol + // (HTTP and HTTPS use different types of agents) + if (this._options.agents) { + var scheme = protocol.slice(0, -1); + this._options.agent = this._options.agents[scheme]; + } + + // Create the native request and set up its event handlers + var request = this._currentRequest = + nativeProtocol.request(this._options, this._onNativeResponse); + request._redirectable = this; + for (var event of events) { + request.on(event, eventHandlers[event]); + } + + // RFC7230§5.3.1: When making a request directly to an origin server, […] + // a client MUST send only the absolute path […] as the request-target. + this._currentUrl = /^\//.test(this._options.path) ? + url.format(this._options) : + // When making a request to a proxy, […] + // a client MUST send the target URI in absolute-form […]. + this._options.path; + + // End a redirected request + // (The first request must be ended explicitly with RedirectableRequest#end) + if (this._isRedirect) { + // Write the request entity and end + var i = 0; + var self = this; + var buffers = this._requestBodyBuffers; + (function writeNext(error) { + // Only write if this request has not been redirected yet + /* istanbul ignore else */ + if (request === self._currentRequest) { + // Report any write errors + /* istanbul ignore if */ + if (error) { + self.emit("error", error); + } + // Write the next buffer if there are still left + else if (i < buffers.length) { + var buffer = buffers[i++]; + /* istanbul ignore else */ + if (!request.finished) { + request.write(buffer.data, buffer.encoding, writeNext); + } + } + // End the request if `end` has been called on us + else if (self._ended) { + request.end(); + } + } + }()); + } + }; + + // Processes a response from the current native request + RedirectableRequest.prototype._processResponse = function (response) { + // Store the redirected response + var statusCode = response.statusCode; + if (this._options.trackRedirects) { + this._redirects.push({ + url: this._currentUrl, + headers: response.headers, + statusCode: statusCode, + }); + } + + // RFC7231§6.4: The 3xx (Redirection) class of status code indicates + // that further action needs to be taken by the user agent in order to + // fulfill the request. If a Location header field is provided, + // the user agent MAY automatically redirect its request to the URI + // referenced by the Location field value, + // even if the specific status code is not understood. + + // If the response is not a redirect; return it as-is + var location = response.headers.location; + if (!location || this._options.followRedirects === false || + statusCode < 300 || statusCode >= 400) { + response.responseUrl = this._currentUrl; + response.redirects = this._redirects; + this.emit("response", response); + + // Clean up + this._requestBodyBuffers = []; + return; + } + + // The response is a redirect, so abort the current request + destroyRequest(this._currentRequest); + // Discard the remainder of the response to avoid waiting for data + response.destroy(); + + // RFC7231§6.4: A client SHOULD detect and intervene + // in cyclical redirections (i.e., "infinite" redirection loops). + if (++this._redirectCount > this._options.maxRedirects) { + this.emit("error", new TooManyRedirectsError()); + return; + } + + // Store the request headers if applicable + var requestHeaders; + var beforeRedirect = this._options.beforeRedirect; + if (beforeRedirect) { + requestHeaders = Object.assign({ + // The Host header was set by nativeProtocol.request + Host: response.req.getHeader("host"), + }, this._options.headers); + } + + // RFC7231§6.4: Automatic redirection needs to done with + // care for methods not known to be safe, […] + // RFC7231§6.4.2–3: For historical reasons, a user agent MAY change + // the request method from POST to GET for the subsequent request. + var method = this._options.method; + if ((statusCode === 301 || statusCode === 302) && this._options.method === "POST" || + // RFC7231§6.4.4: The 303 (See Other) status code indicates that + // the server is redirecting the user agent to a different resource […] + // A user agent can perform a retrieval request targeting that URI + // (a GET or HEAD request if using HTTP) […] + (statusCode === 303) && !/^(?:GET|HEAD)$/.test(this._options.method)) { + this._options.method = "GET"; + // Drop a possible entity and headers related to it + this._requestBodyBuffers = []; + removeMatchingHeaders(/^content-/i, this._options.headers); + } + + // Drop the Host header, as the redirect might lead to a different host + var currentHostHeader = removeMatchingHeaders(/^host$/i, this._options.headers); + + // If the redirect is relative, carry over the host of the last request + var currentUrlParts = url.parse(this._currentUrl); + var currentHost = currentHostHeader || currentUrlParts.host; + var currentUrl = /^\w+:/.test(location) ? this._currentUrl : + url.format(Object.assign(currentUrlParts, { host: currentHost })); + + // Determine the URL of the redirection + var redirectUrl; + try { + redirectUrl = url.resolve(currentUrl, location); + } + catch (cause) { + this.emit("error", new RedirectionError({ cause: cause })); + return; + } + + // Create the redirected request + debug("redirecting to", redirectUrl); + this._isRedirect = true; + var redirectUrlParts = url.parse(redirectUrl); + Object.assign(this._options, redirectUrlParts); + + // Drop confidential headers when redirecting to a less secure protocol + // or to a different domain that is not a superdomain + if (redirectUrlParts.protocol !== currentUrlParts.protocol && + redirectUrlParts.protocol !== "https:" || + redirectUrlParts.host !== currentHost && + !isSubdomain(redirectUrlParts.host, currentHost)) { + removeMatchingHeaders(/^(?:authorization|cookie)$/i, this._options.headers); + } + + // Evaluate the beforeRedirect callback + if (isFunction(beforeRedirect)) { + var responseDetails = { + headers: response.headers, + statusCode: statusCode, + }; + var requestDetails = { + url: currentUrl, + method: method, + headers: requestHeaders, + }; + try { + beforeRedirect(this._options, responseDetails, requestDetails); + } + catch (err) { + this.emit("error", err); + return; + } + this._sanitizeOptions(this._options); + } + + // Perform the redirected request + try { + this._performRequest(); + } + catch (cause) { + this.emit("error", new RedirectionError({ cause: cause })); + } + }; + + // Wraps the key/value object of protocols with redirect functionality + function wrap(protocols) { + // Default settings + var exports = { + maxRedirects: 21, + maxBodyLength: 10 * 1024 * 1024, + }; + + // Wrap each protocol + var nativeProtocols = {}; + Object.keys(protocols).forEach(function (scheme) { + var protocol = scheme + ":"; + var nativeProtocol = nativeProtocols[protocol] = protocols[scheme]; + var wrappedProtocol = exports[scheme] = Object.create(nativeProtocol); + + // Executes a request, following redirects + function request(input, options, callback) { + // Parse parameters + if (isString(input)) { + var parsed; + try { + parsed = urlToOptions(new URL(input)); + } + catch (err) { + /* istanbul ignore next */ + parsed = url.parse(input); + } + if (!isString(parsed.protocol)) { + throw new InvalidUrlError({ input }); + } + input = parsed; + } + else if (URL && (input instanceof URL)) { + input = urlToOptions(input); + } + else { + callback = options; + options = input; + input = { protocol: protocol }; + } + if (isFunction(options)) { + callback = options; + options = null; + } + + // Set defaults + options = Object.assign({ + maxRedirects: exports.maxRedirects, + maxBodyLength: exports.maxBodyLength, + }, input, options); + options.nativeProtocols = nativeProtocols; + if (!isString(options.host) && !isString(options.hostname)) { + options.hostname = "::1"; + } + + assert.equal(options.protocol, protocol, "protocol mismatch"); + debug("options", options); + return new RedirectableRequest(options, callback); + } + + // Executes a GET request, following redirects + function get(input, options, callback) { + var wrappedRequest = wrappedProtocol.request(input, options, callback); + wrappedRequest.end(); + return wrappedRequest; + } + + // Expose the properties on the wrapped protocol + Object.defineProperties(wrappedProtocol, { + request: { value: request, configurable: true, enumerable: true, writable: true }, + get: { value: get, configurable: true, enumerable: true, writable: true }, + }); + }); + return exports; + } + + /* istanbul ignore next */ + function noop() { /* empty */ } + + // from https://github.com/nodejs/node/blob/master/lib/internal/url.js + function urlToOptions(urlObject) { + var options = { + protocol: urlObject.protocol, + hostname: urlObject.hostname.startsWith("[") ? + /* istanbul ignore next */ + urlObject.hostname.slice(1, -1) : + urlObject.hostname, + hash: urlObject.hash, + search: urlObject.search, + pathname: urlObject.pathname, + path: urlObject.pathname + urlObject.search, + href: urlObject.href, + }; + if (urlObject.port !== "") { + options.port = Number(urlObject.port); + } + return options; + } + + function removeMatchingHeaders(regex, headers) { + var lastValue; + for (var header in headers) { + if (regex.test(header)) { + lastValue = headers[header]; + delete headers[header]; + } + } + return (lastValue === null || typeof lastValue === "undefined") ? + undefined : String(lastValue).trim(); + } + + function createErrorType(code, message, baseClass) { + // Create constructor + function CustomError(properties) { + Error.captureStackTrace(this, this.constructor); + Object.assign(this, properties || {}); + this.code = code; + this.message = this.cause ? message + ": " + this.cause.message : message; + } + + // Attach constructor and set default properties + CustomError.prototype = new (baseClass || Error)(); + CustomError.prototype.constructor = CustomError; + CustomError.prototype.name = "Error [" + code + "]"; + return CustomError; + } + + function destroyRequest(request, error) { + for (var event of events) { + request.removeListener(event, eventHandlers[event]); + } + request.on("error", noop); + request.destroy(error); + } + + function isSubdomain(subdomain, domain) { + assert(isString(subdomain) && isString(domain)); + var dot = subdomain.length - domain.length - 1; + return dot > 0 && subdomain[dot] === "." && subdomain.endsWith(domain); + } + + function isString(value) { + return typeof value === "string" || value instanceof String; + } + + function isFunction(value) { + return typeof value === "function"; + } + + function isBuffer(value) { + return typeof value === "object" && ("length" in value); + } + + // Exports + followRedirects$1.exports = wrap({ http: http$1, https: https }); + followRedirects$1.exports.wrap = wrap; + return followRedirects$1.exports; +} + +var followRedirectsExports = requireFollowRedirects(); +var followRedirects = /*@__PURE__*/getDefaultExportFromCjs(followRedirectsExports); + +const VERSION = "1.6.2"; + +function parseProtocol(url) { + const match = /^([-+\w]{1,25})(:?\/\/|:)/.exec(url); + return match && match[1] || ''; +} + +const DATA_URL_PATTERN = /^(?:([^;]+);)?(?:[^;]+;)?(base64|),([\s\S]*)$/; + +/** + * Parse data uri to a Buffer or Blob + * + * @param {String} uri + * @param {?Boolean} asBlob + * @param {?Object} options + * @param {?Function} options.Blob + * + * @returns {Buffer|Blob} + */ +function fromDataURI(uri, asBlob, options) { + const _Blob = options && options.Blob || platform.classes.Blob; + const protocol = parseProtocol(uri); + + if (asBlob === undefined && _Blob) { + asBlob = true; + } + + if (protocol === 'data') { + uri = protocol.length ? uri.slice(protocol.length + 1) : uri; + + const match = DATA_URL_PATTERN.exec(uri); + + if (!match) { + throw new AxiosError('Invalid URL', AxiosError.ERR_INVALID_URL); + } + + const mime = match[1]; + const isBase64 = match[2]; + const body = match[3]; + const buffer = Buffer.from(decodeURIComponent(body), isBase64 ? 'base64' : 'utf8'); + + if (asBlob) { + if (!_Blob) { + throw new AxiosError('Blob is not supported', AxiosError.ERR_NOT_SUPPORT); + } + + return new _Blob([buffer], {type: mime}); + } + + return buffer; + } + + throw new AxiosError('Unsupported protocol ' + protocol, AxiosError.ERR_NOT_SUPPORT); +} + +/** + * Throttle decorator + * @param {Function} fn + * @param {Number} freq + * @return {Function} + */ +function throttle(fn, freq) { + let timestamp = 0; + const threshold = 1000 / freq; + let timer = null; + return function throttled(force, args) { + const now = Date.now(); + if (force || now - timestamp > threshold) { + if (timer) { + clearTimeout(timer); + timer = null; + } + timestamp = now; + return fn.apply(null, args); + } + if (!timer) { + timer = setTimeout(() => { + timer = null; + timestamp = Date.now(); + return fn.apply(null, args); + }, threshold - (now - timestamp)); + } + }; +} + +/** + * Calculate data maxRate + * @param {Number} [samplesCount= 10] + * @param {Number} [min= 1000] + * @returns {Function} + */ +function speedometer(samplesCount, min) { + samplesCount = samplesCount || 10; + const bytes = new Array(samplesCount); + const timestamps = new Array(samplesCount); + let head = 0; + let tail = 0; + let firstSampleTS; + + min = min !== undefined ? min : 1000; + + return function push(chunkLength) { + const now = Date.now(); + + const startedAt = timestamps[tail]; + + if (!firstSampleTS) { + firstSampleTS = now; + } + + bytes[head] = chunkLength; + timestamps[head] = now; + + let i = tail; + let bytesCount = 0; + + while (i !== head) { + bytesCount += bytes[i++]; + i = i % samplesCount; + } + + head = (head + 1) % samplesCount; + + if (head === tail) { + tail = (tail + 1) % samplesCount; + } + + if (now - firstSampleTS < min) { + return; + } + + const passed = startedAt && now - startedAt; + + return passed ? Math.round(bytesCount * 1000 / passed) : undefined; + }; +} + +const kInternals = Symbol('internals'); + +class AxiosTransformStream extends Stream.Transform{ + constructor(options) { + options = utils$1.toFlatObject(options, { + maxRate: 0, + chunkSize: 64 * 1024, + minChunkSize: 100, + timeWindow: 500, + ticksRate: 2, + samplesCount: 15 + }, null, (prop, source) => { + return !utils$1.isUndefined(source[prop]); + }); + + super({ + readableHighWaterMark: options.chunkSize + }); + + const self = this; + + const internals = this[kInternals] = { + length: options.length, + timeWindow: options.timeWindow, + ticksRate: options.ticksRate, + chunkSize: options.chunkSize, + maxRate: options.maxRate, + minChunkSize: options.minChunkSize, + bytesSeen: 0, + isCaptured: false, + notifiedBytesLoaded: 0, + ts: Date.now(), + bytes: 0, + onReadCallback: null + }; + + const _speedometer = speedometer(internals.ticksRate * options.samplesCount, internals.timeWindow); + + this.on('newListener', event => { + if (event === 'progress') { + if (!internals.isCaptured) { + internals.isCaptured = true; + } + } + }); + + let bytesNotified = 0; + + internals.updateProgress = throttle(function throttledHandler() { + const totalBytes = internals.length; + const bytesTransferred = internals.bytesSeen; + const progressBytes = bytesTransferred - bytesNotified; + if (!progressBytes || self.destroyed) return; + + const rate = _speedometer(progressBytes); + + bytesNotified = bytesTransferred; + + process.nextTick(() => { + self.emit('progress', { + 'loaded': bytesTransferred, + 'total': totalBytes, + 'progress': totalBytes ? (bytesTransferred / totalBytes) : undefined, + 'bytes': progressBytes, + 'rate': rate ? rate : undefined, + 'estimated': rate && totalBytes && bytesTransferred <= totalBytes ? + (totalBytes - bytesTransferred) / rate : undefined + }); + }); + }, internals.ticksRate); + + const onFinish = () => { + internals.updateProgress(true); + }; + + this.once('end', onFinish); + this.once('error', onFinish); + } + + _read(size) { + const internals = this[kInternals]; + + if (internals.onReadCallback) { + internals.onReadCallback(); + } + + return super._read(size); + } + + _transform(chunk, encoding, callback) { + const self = this; + const internals = this[kInternals]; + const maxRate = internals.maxRate; + + const readableHighWaterMark = this.readableHighWaterMark; + + const timeWindow = internals.timeWindow; + + const divider = 1000 / timeWindow; + const bytesThreshold = (maxRate / divider); + const minChunkSize = internals.minChunkSize !== false ? Math.max(internals.minChunkSize, bytesThreshold * 0.01) : 0; + + function pushChunk(_chunk, _callback) { + const bytes = Buffer.byteLength(_chunk); + internals.bytesSeen += bytes; + internals.bytes += bytes; + + if (internals.isCaptured) { + internals.updateProgress(); + } + + if (self.push(_chunk)) { + process.nextTick(_callback); + } else { + internals.onReadCallback = () => { + internals.onReadCallback = null; + process.nextTick(_callback); + }; + } + } + + const transformChunk = (_chunk, _callback) => { + const chunkSize = Buffer.byteLength(_chunk); + let chunkRemainder = null; + let maxChunkSize = readableHighWaterMark; + let bytesLeft; + let passed = 0; + + if (maxRate) { + const now = Date.now(); + + if (!internals.ts || (passed = (now - internals.ts)) >= timeWindow) { + internals.ts = now; + bytesLeft = bytesThreshold - internals.bytes; + internals.bytes = bytesLeft < 0 ? -bytesLeft : 0; + passed = 0; + } + + bytesLeft = bytesThreshold - internals.bytes; + } + + if (maxRate) { + if (bytesLeft <= 0) { + // next time window + return setTimeout(() => { + _callback(null, _chunk); + }, timeWindow - passed); + } + + if (bytesLeft < maxChunkSize) { + maxChunkSize = bytesLeft; + } + } + + if (maxChunkSize && chunkSize > maxChunkSize && (chunkSize - maxChunkSize) > minChunkSize) { + chunkRemainder = _chunk.subarray(maxChunkSize); + _chunk = _chunk.subarray(0, maxChunkSize); + } + + pushChunk(_chunk, chunkRemainder ? () => { + process.nextTick(_callback, null, chunkRemainder); + } : _callback); + }; + + transformChunk(chunk, function transformNextChunk(err, _chunk) { + if (err) { + return callback(err); + } + + if (_chunk) { + transformChunk(_chunk, transformNextChunk); + } else { + callback(null); + } + }); + } + + setLength(length) { + this[kInternals].length = +length; + return this; + } +} + +var AxiosTransformStream$1 = AxiosTransformStream; + +const {asyncIterator} = Symbol; + +const readBlob = async function* (blob) { + if (blob.stream) { + yield* blob.stream(); + } else if (blob.arrayBuffer) { + yield await blob.arrayBuffer(); + } else if (blob[asyncIterator]) { + yield* blob[asyncIterator](); + } else { + yield blob; + } +}; + +var readBlob$1 = readBlob; + +const BOUNDARY_ALPHABET = utils$1.ALPHABET.ALPHA_DIGIT + '-_'; + +const textEncoder = new TextEncoder(); + +const CRLF = '\r\n'; +const CRLF_BYTES = textEncoder.encode(CRLF); +const CRLF_BYTES_COUNT = 2; + +class FormDataPart { + constructor(name, value) { + const {escapeName} = this.constructor; + const isStringValue = utils$1.isString(value); + + let headers = `Content-Disposition: form-data; name="${escapeName(name)}"${ + !isStringValue && value.name ? `; filename="${escapeName(value.name)}"` : '' + }${CRLF}`; + + if (isStringValue) { + value = textEncoder.encode(String(value).replace(/\r?\n|\r\n?/g, CRLF)); + } else { + headers += `Content-Type: ${value.type || "application/octet-stream"}${CRLF}`; + } + + this.headers = textEncoder.encode(headers + CRLF); + + this.contentLength = isStringValue ? value.byteLength : value.size; + + this.size = this.headers.byteLength + this.contentLength + CRLF_BYTES_COUNT; + + this.name = name; + this.value = value; + } + + async *encode(){ + yield this.headers; + + const {value} = this; + + if(utils$1.isTypedArray(value)) { + yield value; + } else { + yield* readBlob$1(value); + } + + yield CRLF_BYTES; + } + + static escapeName(name) { + return String(name).replace(/[\r\n"]/g, (match) => ({ + '\r' : '%0D', + '\n' : '%0A', + '"' : '%22', + }[match])); + } +} + +const formDataToStream = (form, headersHandler, options) => { + const { + tag = 'form-data-boundary', + size = 25, + boundary = tag + '-' + utils$1.generateString(size, BOUNDARY_ALPHABET) + } = options || {}; + + if(!utils$1.isFormData(form)) { + throw TypeError('FormData instance required'); + } + + if (boundary.length < 1 || boundary.length > 70) { + throw Error('boundary must be 10-70 characters long') + } + + const boundaryBytes = textEncoder.encode('--' + boundary + CRLF); + const footerBytes = textEncoder.encode('--' + boundary + '--' + CRLF + CRLF); + let contentLength = footerBytes.byteLength; + + const parts = Array.from(form.entries()).map(([name, value]) => { + const part = new FormDataPart(name, value); + contentLength += part.size; + return part; + }); + + contentLength += boundaryBytes.byteLength * parts.length; + + contentLength = utils$1.toFiniteNumber(contentLength); + + const computedHeaders = { + 'Content-Type': `multipart/form-data; boundary=${boundary}` + }; + + if (Number.isFinite(contentLength)) { + computedHeaders['Content-Length'] = contentLength; + } + + headersHandler && headersHandler(computedHeaders); + + return Readable.from((async function *() { + for(const part of parts) { + yield boundaryBytes; + yield* part.encode(); + } + + yield footerBytes; + })()); +}; + +var formDataToStream$1 = formDataToStream; + +class ZlibHeaderTransformStream extends Stream.Transform { + __transform(chunk, encoding, callback) { + this.push(chunk); + callback(); + } + + _transform(chunk, encoding, callback) { + if (chunk.length !== 0) { + this._transform = this.__transform; + + // Add Default Compression headers if no zlib headers are present + if (chunk[0] !== 120) { // Hex: 78 + const header = Buffer.alloc(2); + header[0] = 120; // Hex: 78 + header[1] = 156; // Hex: 9C + this.push(header, encoding); + } + } + + this.__transform(chunk, encoding, callback); + } +} + +var ZlibHeaderTransformStream$1 = ZlibHeaderTransformStream; + +const callbackify = (fn, reducer) => { + return utils$1.isAsyncFn(fn) ? function (...args) { + const cb = args.pop(); + fn.apply(this, args).then((value) => { + try { + reducer ? cb(null, ...reducer(value)) : cb(null, value); + } catch (err) { + cb(err); + } + }, cb); + } : fn; +}; + +var callbackify$1 = callbackify; + +const zlibOptions = { + flush: zlib.constants.Z_SYNC_FLUSH, + finishFlush: zlib.constants.Z_SYNC_FLUSH +}; + +const brotliOptions = { + flush: zlib.constants.BROTLI_OPERATION_FLUSH, + finishFlush: zlib.constants.BROTLI_OPERATION_FLUSH +}; + +const isBrotliSupported = utils$1.isFunction(zlib.createBrotliDecompress); + +const {http: httpFollow, https: httpsFollow} = followRedirects; + +const isHttps = /https:?/; + +const supportedProtocols = platform.protocols.map(protocol => { + return protocol + ':'; +}); + +/** + * If the proxy or config beforeRedirects functions are defined, call them with the options + * object. + * + * @param {Object} options - The options object that was passed to the request. + * + * @returns {Object} + */ +function dispatchBeforeRedirect(options) { + if (options.beforeRedirects.proxy) { + options.beforeRedirects.proxy(options); + } + if (options.beforeRedirects.config) { + options.beforeRedirects.config(options); + } +} + +/** + * If the proxy or config afterRedirects functions are defined, call them with the options + * + * @param {http.ClientRequestArgs} options + * @param {AxiosProxyConfig} configProxy configuration from Axios options object + * @param {string} location + * + * @returns {http.ClientRequestArgs} + */ +function setProxy(options, configProxy, location) { + let proxy = configProxy; + if (!proxy && proxy !== false) { + const proxyUrl = proxyFromEnvExports.getProxyForUrl(location); + if (proxyUrl) { + proxy = new URL(proxyUrl); + } + } + if (proxy) { + // Basic proxy authorization + if (proxy.username) { + proxy.auth = (proxy.username || '') + ':' + (proxy.password || ''); + } + + if (proxy.auth) { + // Support proxy auth object form + if (proxy.auth.username || proxy.auth.password) { + proxy.auth = (proxy.auth.username || '') + ':' + (proxy.auth.password || ''); + } + const base64 = Buffer + .from(proxy.auth, 'utf8') + .toString('base64'); + options.headers['Proxy-Authorization'] = 'Basic ' + base64; + } + + options.headers.host = options.hostname + (options.port ? ':' + options.port : ''); + const proxyHost = proxy.hostname || proxy.host; + options.hostname = proxyHost; + // Replace 'host' since options is not a URL object + options.host = proxyHost; + options.port = proxy.port; + options.path = location; + if (proxy.protocol) { + options.protocol = proxy.protocol.includes(':') ? proxy.protocol : `${proxy.protocol}:`; + } + } + + options.beforeRedirects.proxy = function beforeRedirect(redirectOptions) { + // Configure proxy for redirected request, passing the original config proxy to apply + // the exact same logic as if the redirected request was performed by axios directly. + setProxy(redirectOptions, configProxy, redirectOptions.href); + }; +} + +const isHttpAdapterSupported = typeof process !== 'undefined' && utils$1.kindOf(process) === 'process'; + +// temporary hotfix + +const wrapAsync = (asyncExecutor) => { + return new Promise((resolve, reject) => { + let onDone; + let isDone; + + const done = (value, isRejected) => { + if (isDone) return; + isDone = true; + onDone && onDone(value, isRejected); + }; + + const _resolve = (value) => { + done(value); + resolve(value); + }; + + const _reject = (reason) => { + done(reason, true); + reject(reason); + }; + + asyncExecutor(_resolve, _reject, (onDoneHandler) => (onDone = onDoneHandler)).catch(_reject); + }) +}; + +const resolveFamily = ({address, family}) => { + if (!utils$1.isString(address)) { + throw TypeError('address must be a string'); + } + return ({ + address, + family: family || (address.indexOf('.') < 0 ? 6 : 4) + }); +}; + +const buildAddressEntry = (address, family) => resolveFamily(utils$1.isObject(address) ? address : {address, family}); + +/*eslint consistent-return:0*/ +var httpAdapter = isHttpAdapterSupported && function httpAdapter(config) { + return wrapAsync(async function dispatchHttpRequest(resolve, reject, onDone) { + let {data, lookup, family} = config; + const {responseType, responseEncoding} = config; + const method = config.method.toUpperCase(); + let isDone; + let rejected = false; + let req; + + if (lookup) { + const _lookup = callbackify$1(lookup, (value) => utils$1.isArray(value) ? value : [value]); + // hotfix to support opt.all option which is required for node 20.x + lookup = (hostname, opt, cb) => { + _lookup(hostname, opt, (err, arg0, arg1) => { + const addresses = utils$1.isArray(arg0) ? arg0.map(addr => buildAddressEntry(addr)) : [buildAddressEntry(arg0, arg1)]; + + opt.all ? cb(err, addresses) : cb(err, addresses[0].address, addresses[0].family); + }); + }; + } + + // temporary internal emitter until the AxiosRequest class will be implemented + const emitter = new EventEmitter(); + + const onFinished = () => { + if (config.cancelToken) { + config.cancelToken.unsubscribe(abort); + } + + if (config.signal) { + config.signal.removeEventListener('abort', abort); + } + + emitter.removeAllListeners(); + }; + + onDone((value, isRejected) => { + isDone = true; + if (isRejected) { + rejected = true; + onFinished(); + } + }); + + function abort(reason) { + emitter.emit('abort', !reason || reason.type ? new CanceledError(null, config, req) : reason); + } + + emitter.once('abort', reject); + + if (config.cancelToken || config.signal) { + config.cancelToken && config.cancelToken.subscribe(abort); + if (config.signal) { + config.signal.aborted ? abort() : config.signal.addEventListener('abort', abort); + } + } + + // Parse url + const fullPath = buildFullPath(config.baseURL, config.url); + const parsed = new URL(fullPath, 'http://localhost'); + const protocol = parsed.protocol || supportedProtocols[0]; + + if (protocol === 'data:') { + let convertedData; + + if (method !== 'GET') { + return settle(resolve, reject, { + status: 405, + statusText: 'method not allowed', + headers: {}, + config + }); + } + + try { + convertedData = fromDataURI(config.url, responseType === 'blob', { + Blob: config.env && config.env.Blob + }); + } catch (err) { + throw AxiosError.from(err, AxiosError.ERR_BAD_REQUEST, config); + } + + if (responseType === 'text') { + convertedData = convertedData.toString(responseEncoding); + + if (!responseEncoding || responseEncoding === 'utf8') { + convertedData = utils$1.stripBOM(convertedData); + } + } else if (responseType === 'stream') { + convertedData = Stream.Readable.from(convertedData); + } + + return settle(resolve, reject, { + data: convertedData, + status: 200, + statusText: 'OK', + headers: new AxiosHeaders$1(), + config + }); + } + + if (supportedProtocols.indexOf(protocol) === -1) { + return reject(new AxiosError( + 'Unsupported protocol ' + protocol, + AxiosError.ERR_BAD_REQUEST, + config + )); + } + + const headers = AxiosHeaders$1.from(config.headers).normalize(); + + // Set User-Agent (required by some servers) + // See https://github.com/axios/axios/issues/69 + // User-Agent is specified; handle case where no UA header is desired + // Only set header if it hasn't been set in config + headers.set('User-Agent', 'axios/' + VERSION, false); + + const onDownloadProgress = config.onDownloadProgress; + const onUploadProgress = config.onUploadProgress; + const maxRate = config.maxRate; + let maxUploadRate = undefined; + let maxDownloadRate = undefined; + + // support for spec compliant FormData objects + if (utils$1.isSpecCompliantForm(data)) { + const userBoundary = headers.getContentType(/boundary=([-_\w\d]{10,70})/i); + + data = formDataToStream$1(data, (formHeaders) => { + headers.set(formHeaders); + }, { + tag: `axios-${VERSION}-boundary`, + boundary: userBoundary && userBoundary[1] || undefined + }); + // support for https://www.npmjs.com/package/form-data api + } else if (utils$1.isFormData(data) && utils$1.isFunction(data.getHeaders)) { + headers.set(data.getHeaders()); + + if (!headers.hasContentLength()) { + try { + const knownLength = await require$$1.promisify(data.getLength).call(data); + Number.isFinite(knownLength) && knownLength >= 0 && headers.setContentLength(knownLength); + /*eslint no-empty:0*/ + } catch (e) { + } + } + } else if (utils$1.isBlob(data)) { + data.size && headers.setContentType(data.type || 'application/octet-stream'); + headers.setContentLength(data.size || 0); + data = Stream.Readable.from(readBlob$1(data)); + } else if (data && !utils$1.isStream(data)) { + if (Buffer.isBuffer(data)) ; else if (utils$1.isArrayBuffer(data)) { + data = Buffer.from(new Uint8Array(data)); + } else if (utils$1.isString(data)) { + data = Buffer.from(data, 'utf-8'); + } else { + return reject(new AxiosError( + 'Data after transformation must be a string, an ArrayBuffer, a Buffer, or a Stream', + AxiosError.ERR_BAD_REQUEST, + config + )); + } + + // Add Content-Length header if data exists + headers.setContentLength(data.length, false); + + if (config.maxBodyLength > -1 && data.length > config.maxBodyLength) { + return reject(new AxiosError( + 'Request body larger than maxBodyLength limit', + AxiosError.ERR_BAD_REQUEST, + config + )); + } + } + + const contentLength = utils$1.toFiniteNumber(headers.getContentLength()); + + if (utils$1.isArray(maxRate)) { + maxUploadRate = maxRate[0]; + maxDownloadRate = maxRate[1]; + } else { + maxUploadRate = maxDownloadRate = maxRate; + } + + if (data && (onUploadProgress || maxUploadRate)) { + if (!utils$1.isStream(data)) { + data = Stream.Readable.from(data, {objectMode: false}); + } + + data = Stream.pipeline([data, new AxiosTransformStream$1({ + length: contentLength, + maxRate: utils$1.toFiniteNumber(maxUploadRate) + })], utils$1.noop); + + onUploadProgress && data.on('progress', progress => { + onUploadProgress(Object.assign(progress, { + upload: true + })); + }); + } + + // HTTP basic authentication + let auth = undefined; + if (config.auth) { + const username = config.auth.username || ''; + const password = config.auth.password || ''; + auth = username + ':' + password; + } + + if (!auth && parsed.username) { + const urlUsername = parsed.username; + const urlPassword = parsed.password; + auth = urlUsername + ':' + urlPassword; + } + + auth && headers.delete('authorization'); + + let path; + + try { + path = buildURL( + parsed.pathname + parsed.search, + config.params, + config.paramsSerializer + ).replace(/^\?/, ''); + } catch (err) { + const customErr = new Error(err.message); + customErr.config = config; + customErr.url = config.url; + customErr.exists = true; + return reject(customErr); + } + + headers.set( + 'Accept-Encoding', + 'gzip, compress, deflate' + (isBrotliSupported ? ', br' : ''), false + ); + + const options = { + path, + method: method, + headers: headers.toJSON(), + agents: { http: config.httpAgent, https: config.httpsAgent }, + auth, + protocol, + family, + beforeRedirect: dispatchBeforeRedirect, + beforeRedirects: {} + }; + + // cacheable-lookup integration hotfix + !utils$1.isUndefined(lookup) && (options.lookup = lookup); + + if (config.socketPath) { + options.socketPath = config.socketPath; + } else { + options.hostname = parsed.hostname; + options.port = parsed.port; + setProxy(options, config.proxy, protocol + '//' + parsed.hostname + (parsed.port ? ':' + parsed.port : '') + options.path); + } + + let transport; + const isHttpsRequest = isHttps.test(options.protocol); + options.agent = isHttpsRequest ? config.httpsAgent : config.httpAgent; + if (config.transport) { + transport = config.transport; + } else if (config.maxRedirects === 0) { + transport = isHttpsRequest ? require$$4 : http; + } else { + if (config.maxRedirects) { + options.maxRedirects = config.maxRedirects; + } + if (config.beforeRedirect) { + options.beforeRedirects.config = config.beforeRedirect; + } + transport = isHttpsRequest ? httpsFollow : httpFollow; + } + + if (config.maxBodyLength > -1) { + options.maxBodyLength = config.maxBodyLength; + } else { + // follow-redirects does not skip comparison, so it should always succeed for axios -1 unlimited + options.maxBodyLength = Infinity; + } + + if (config.insecureHTTPParser) { + options.insecureHTTPParser = config.insecureHTTPParser; + } + + // Create the request + req = transport.request(options, function handleResponse(res) { + if (req.destroyed) return; + + const streams = [res]; + + const responseLength = +res.headers['content-length']; + + if (onDownloadProgress) { + const transformStream = new AxiosTransformStream$1({ + length: utils$1.toFiniteNumber(responseLength), + maxRate: utils$1.toFiniteNumber(maxDownloadRate) + }); + + onDownloadProgress && transformStream.on('progress', progress => { + onDownloadProgress(Object.assign(progress, { + download: true + })); + }); + + streams.push(transformStream); + } + + // decompress the response body transparently if required + let responseStream = res; + + // return the last request in case of redirects + const lastRequest = res.req || req; + + // if decompress disabled we should not decompress + if (config.decompress !== false && res.headers['content-encoding']) { + // if no content, but headers still say that it is encoded, + // remove the header not confuse downstream operations + if (method === 'HEAD' || res.statusCode === 204) { + delete res.headers['content-encoding']; + } + + switch ((res.headers['content-encoding'] || '').toLowerCase()) { + /*eslint default-case:0*/ + case 'gzip': + case 'x-gzip': + case 'compress': + case 'x-compress': + // add the unzipper to the body stream processing pipeline + streams.push(zlib.createUnzip(zlibOptions)); + + // remove the content-encoding in order to not confuse downstream operations + delete res.headers['content-encoding']; + break; + case 'deflate': + streams.push(new ZlibHeaderTransformStream$1()); + + // add the unzipper to the body stream processing pipeline + streams.push(zlib.createUnzip(zlibOptions)); + + // remove the content-encoding in order to not confuse downstream operations + delete res.headers['content-encoding']; + break; + case 'br': + if (isBrotliSupported) { + streams.push(zlib.createBrotliDecompress(brotliOptions)); + delete res.headers['content-encoding']; + } + } + } + + responseStream = streams.length > 1 ? Stream.pipeline(streams, utils$1.noop) : streams[0]; + + const offListeners = Stream.finished(responseStream, () => { + offListeners(); + onFinished(); + }); + + const response = { + status: res.statusCode, + statusText: res.statusMessage, + headers: new AxiosHeaders$1(res.headers), + config, + request: lastRequest + }; + + if (responseType === 'stream') { + response.data = responseStream; + settle(resolve, reject, response); + } else { + const responseBuffer = []; + let totalResponseBytes = 0; + + responseStream.on('data', function handleStreamData(chunk) { + responseBuffer.push(chunk); + totalResponseBytes += chunk.length; + + // make sure the content length is not over the maxContentLength if specified + if (config.maxContentLength > -1 && totalResponseBytes > config.maxContentLength) { + // stream.destroy() emit aborted event before calling reject() on Node.js v16 + rejected = true; + responseStream.destroy(); + reject(new AxiosError('maxContentLength size of ' + config.maxContentLength + ' exceeded', + AxiosError.ERR_BAD_RESPONSE, config, lastRequest)); + } + }); + + responseStream.on('aborted', function handlerStreamAborted() { + if (rejected) { + return; + } + + const err = new AxiosError( + 'maxContentLength size of ' + config.maxContentLength + ' exceeded', + AxiosError.ERR_BAD_RESPONSE, + config, + lastRequest + ); + responseStream.destroy(err); + reject(err); + }); + + responseStream.on('error', function handleStreamError(err) { + if (req.destroyed) return; + reject(AxiosError.from(err, null, config, lastRequest)); + }); + + responseStream.on('end', function handleStreamEnd() { + try { + let responseData = responseBuffer.length === 1 ? responseBuffer[0] : Buffer.concat(responseBuffer); + if (responseType !== 'arraybuffer') { + responseData = responseData.toString(responseEncoding); + if (!responseEncoding || responseEncoding === 'utf8') { + responseData = utils$1.stripBOM(responseData); + } + } + response.data = responseData; + } catch (err) { + return reject(AxiosError.from(err, null, config, response.request, response)); + } + settle(resolve, reject, response); + }); + } + + emitter.once('abort', err => { + if (!responseStream.destroyed) { + responseStream.emit('error', err); + responseStream.destroy(); + } + }); + }); + + emitter.once('abort', err => { + reject(err); + req.destroy(err); + }); + + // Handle errors + req.on('error', function handleRequestError(err) { + // @todo remove + // if (req.aborted && err.code !== AxiosError.ERR_FR_TOO_MANY_REDIRECTS) return; + reject(AxiosError.from(err, null, config, req)); + }); + + // set tcp keep alive to prevent drop connection by peer + req.on('socket', function handleRequestSocket(socket) { + // default interval of sending ack packet is 1 minute + socket.setKeepAlive(true, 1000 * 60); + }); + + // Handle request timeout + if (config.timeout) { + // This is forcing a int timeout to avoid problems if the `req` interface doesn't handle other types. + const timeout = parseInt(config.timeout, 10); + + if (Number.isNaN(timeout)) { + reject(new AxiosError( + 'error trying to parse `config.timeout` to int', + AxiosError.ERR_BAD_OPTION_VALUE, + config, + req + )); + + return; + } + + // Sometime, the response will be very slow, and does not respond, the connect event will be block by event loop system. + // And timer callback will be fired, and abort() will be invoked before connection, then get "socket hang up" and code ECONNRESET. + // At this time, if we have a large number of request, nodejs will hang up some socket on background. and the number will up and up. + // And then these socket which be hang up will devouring CPU little by little. + // ClientRequest.setTimeout will be fired on the specify milliseconds, and can make sure that abort() will be fired after connect. + req.setTimeout(timeout, function handleRequestTimeout() { + if (isDone) return; + let timeoutErrorMessage = config.timeout ? 'timeout of ' + config.timeout + 'ms exceeded' : 'timeout exceeded'; + const transitional = config.transitional || transitionalDefaults; + if (config.timeoutErrorMessage) { + timeoutErrorMessage = config.timeoutErrorMessage; + } + reject(new AxiosError( + timeoutErrorMessage, + transitional.clarifyTimeoutError ? AxiosError.ETIMEDOUT : AxiosError.ECONNABORTED, + config, + req + )); + abort(); + }); + } + + + // Send the request + if (utils$1.isStream(data)) { + let ended = false; + let errored = false; + + data.on('end', () => { + ended = true; + }); + + data.once('error', err => { + errored = true; + req.destroy(err); + }); + + data.on('close', () => { + if (!ended && !errored) { + abort(new CanceledError('Request stream has been aborted', config, req)); + } + }); + + data.pipe(req); + } else { + req.end(data); + } + }); +}; + +var cookies = platform.hasStandardBrowserEnv ? + + // Standard browser envs support document.cookie + { + write(name, value, expires, path, domain, secure) { + const cookie = [name + '=' + encodeURIComponent(value)]; + + utils$1.isNumber(expires) && cookie.push('expires=' + new Date(expires).toGMTString()); + + utils$1.isString(path) && cookie.push('path=' + path); + + utils$1.isString(domain) && cookie.push('domain=' + domain); + + secure === true && cookie.push('secure'); + + document.cookie = cookie.join('; '); + }, + + read(name) { + const match = document.cookie.match(new RegExp('(^|;\\s*)(' + name + ')=([^;]*)')); + return (match ? decodeURIComponent(match[3]) : null); + }, + + remove(name) { + this.write(name, '', Date.now() - 86400000); + } + } + + : + + // Non-standard browser env (web workers, react-native) lack needed support. + { + write() {}, + read() { + return null; + }, + remove() {} + }; + +var isURLSameOrigin = platform.hasStandardBrowserEnv ? + +// Standard browser envs have full support of the APIs needed to test +// whether the request URL is of the same origin as current location. + (function standardBrowserEnv() { + const msie = /(msie|trident)/i.test(navigator.userAgent); + const urlParsingNode = document.createElement('a'); + let originURL; + + /** + * Parse a URL to discover its components + * + * @param {String} url The URL to be parsed + * @returns {Object} + */ + function resolveURL(url) { + let href = url; + + if (msie) { + // IE needs attribute set twice to normalize properties + urlParsingNode.setAttribute('href', href); + href = urlParsingNode.href; + } + + urlParsingNode.setAttribute('href', href); + + // urlParsingNode provides the UrlUtils interface - http://url.spec.whatwg.org/#urlutils + return { + href: urlParsingNode.href, + protocol: urlParsingNode.protocol ? urlParsingNode.protocol.replace(/:$/, '') : '', + host: urlParsingNode.host, + search: urlParsingNode.search ? urlParsingNode.search.replace(/^\?/, '') : '', + hash: urlParsingNode.hash ? urlParsingNode.hash.replace(/^#/, '') : '', + hostname: urlParsingNode.hostname, + port: urlParsingNode.port, + pathname: (urlParsingNode.pathname.charAt(0) === '/') ? + urlParsingNode.pathname : + '/' + urlParsingNode.pathname + }; + } + + originURL = resolveURL(window.location.href); + + /** + * Determine if a URL shares the same origin as the current location + * + * @param {String} requestURL The URL to test + * @returns {boolean} True if URL shares the same origin, otherwise false + */ + return function isURLSameOrigin(requestURL) { + const parsed = (utils$1.isString(requestURL)) ? resolveURL(requestURL) : requestURL; + return (parsed.protocol === originURL.protocol && + parsed.host === originURL.host); + }; + })() : + + // Non standard browser envs (web workers, react-native) lack needed support. + (function nonStandardBrowserEnv() { + return function isURLSameOrigin() { + return true; + }; + })(); + +function progressEventReducer(listener, isDownloadStream) { + let bytesNotified = 0; + const _speedometer = speedometer(50, 250); + + return e => { + const loaded = e.loaded; + const total = e.lengthComputable ? e.total : undefined; + const progressBytes = loaded - bytesNotified; + const rate = _speedometer(progressBytes); + const inRange = loaded <= total; + + bytesNotified = loaded; + + const data = { + loaded, + total, + progress: total ? (loaded / total) : undefined, + bytes: progressBytes, + rate: rate ? rate : undefined, + estimated: rate && total && inRange ? (total - loaded) / rate : undefined, + event: e + }; + + data[isDownloadStream ? 'download' : 'upload'] = true; + + listener(data); + }; +} + +const isXHRAdapterSupported = typeof XMLHttpRequest !== 'undefined'; + +var xhrAdapter = isXHRAdapterSupported && function (config) { + return new Promise(function dispatchXhrRequest(resolve, reject) { + let requestData = config.data; + const requestHeaders = AxiosHeaders$1.from(config.headers).normalize(); + let {responseType, withXSRFToken} = config; + let onCanceled; + function done() { + if (config.cancelToken) { + config.cancelToken.unsubscribe(onCanceled); + } + + if (config.signal) { + config.signal.removeEventListener('abort', onCanceled); + } + } + + let contentType; + + if (utils$1.isFormData(requestData)) { + if (platform.hasStandardBrowserEnv || platform.hasStandardBrowserWebWorkerEnv) { + requestHeaders.setContentType(false); // Let the browser set it + } else if ((contentType = requestHeaders.getContentType()) !== false) { + // fix semicolon duplication issue for ReactNative FormData implementation + const [type, ...tokens] = contentType ? contentType.split(';').map(token => token.trim()).filter(Boolean) : []; + requestHeaders.setContentType([type || 'multipart/form-data', ...tokens].join('; ')); + } + } + + let request = new XMLHttpRequest(); + + // HTTP basic authentication + if (config.auth) { + const username = config.auth.username || ''; + const password = config.auth.password ? unescape(encodeURIComponent(config.auth.password)) : ''; + requestHeaders.set('Authorization', 'Basic ' + btoa(username + ':' + password)); + } + + const fullPath = buildFullPath(config.baseURL, config.url); + + request.open(config.method.toUpperCase(), buildURL(fullPath, config.params, config.paramsSerializer), true); + + // Set the request timeout in MS + request.timeout = config.timeout; + + function onloadend() { + if (!request) { + return; + } + // Prepare the response + const responseHeaders = AxiosHeaders$1.from( + 'getAllResponseHeaders' in request && request.getAllResponseHeaders() + ); + const responseData = !responseType || responseType === 'text' || responseType === 'json' ? + request.responseText : request.response; + const response = { + data: responseData, + status: request.status, + statusText: request.statusText, + headers: responseHeaders, + config, + request + }; + + settle(function _resolve(value) { + resolve(value); + done(); + }, function _reject(err) { + reject(err); + done(); + }, response); + + // Clean up request + request = null; + } + + if ('onloadend' in request) { + // Use onloadend if available + request.onloadend = onloadend; + } else { + // Listen for ready state to emulate onloadend + request.onreadystatechange = function handleLoad() { + if (!request || request.readyState !== 4) { + return; + } + + // The request errored out and we didn't get a response, this will be + // handled by onerror instead + // With one exception: request that using file: protocol, most browsers + // will return status as 0 even though it's a successful request + if (request.status === 0 && !(request.responseURL && request.responseURL.indexOf('file:') === 0)) { + return; + } + // readystate handler is calling before onerror or ontimeout handlers, + // so we should call onloadend on the next 'tick' + setTimeout(onloadend); + }; + } + + // Handle browser request cancellation (as opposed to a manual cancellation) + request.onabort = function handleAbort() { + if (!request) { + return; + } + + reject(new AxiosError('Request aborted', AxiosError.ECONNABORTED, config, request)); + + // Clean up request + request = null; + }; + + // Handle low level network errors + request.onerror = function handleError() { + // Real errors are hidden from us by the browser + // onerror should only fire if it's a network error + reject(new AxiosError('Network Error', AxiosError.ERR_NETWORK, config, request)); + + // Clean up request + request = null; + }; + + // Handle timeout + request.ontimeout = function handleTimeout() { + let timeoutErrorMessage = config.timeout ? 'timeout of ' + config.timeout + 'ms exceeded' : 'timeout exceeded'; + const transitional = config.transitional || transitionalDefaults; + if (config.timeoutErrorMessage) { + timeoutErrorMessage = config.timeoutErrorMessage; + } + reject(new AxiosError( + timeoutErrorMessage, + transitional.clarifyTimeoutError ? AxiosError.ETIMEDOUT : AxiosError.ECONNABORTED, + config, + request)); + + // Clean up request + request = null; + }; + + // Add xsrf header + // This is only done if running in a standard browser environment. + // Specifically not if we're in a web worker, or react-native. + if(platform.hasStandardBrowserEnv) { + withXSRFToken && utils$1.isFunction(withXSRFToken) && (withXSRFToken = withXSRFToken(config)); + + if (withXSRFToken || (withXSRFToken !== false && isURLSameOrigin(fullPath))) { + // Add xsrf header + const xsrfValue = config.xsrfHeaderName && config.xsrfCookieName && cookies.read(config.xsrfCookieName); + + if (xsrfValue) { + requestHeaders.set(config.xsrfHeaderName, xsrfValue); + } + } + } + + // Remove Content-Type if data is undefined + requestData === undefined && requestHeaders.setContentType(null); + + // Add headers to the request + if ('setRequestHeader' in request) { + utils$1.forEach(requestHeaders.toJSON(), function setRequestHeader(val, key) { + request.setRequestHeader(key, val); + }); + } + + // Add withCredentials to request if needed + if (!utils$1.isUndefined(config.withCredentials)) { + request.withCredentials = !!config.withCredentials; + } + + // Add responseType to request if needed + if (responseType && responseType !== 'json') { + request.responseType = config.responseType; + } + + // Handle progress if needed + if (typeof config.onDownloadProgress === 'function') { + request.addEventListener('progress', progressEventReducer(config.onDownloadProgress, true)); + } + + // Not all browsers support upload events + if (typeof config.onUploadProgress === 'function' && request.upload) { + request.upload.addEventListener('progress', progressEventReducer(config.onUploadProgress)); + } + + if (config.cancelToken || config.signal) { + // Handle cancellation + // eslint-disable-next-line func-names + onCanceled = cancel => { + if (!request) { + return; + } + reject(!cancel || cancel.type ? new CanceledError(null, config, request) : cancel); + request.abort(); + request = null; + }; + + config.cancelToken && config.cancelToken.subscribe(onCanceled); + if (config.signal) { + config.signal.aborted ? onCanceled() : config.signal.addEventListener('abort', onCanceled); + } + } + + const protocol = parseProtocol(fullPath); + + if (protocol && platform.protocols.indexOf(protocol) === -1) { + reject(new AxiosError('Unsupported protocol ' + protocol + ':', AxiosError.ERR_BAD_REQUEST, config)); + return; + } + + + // Send the request + request.send(requestData || null); + }); +}; + +const knownAdapters = { + http: httpAdapter, + xhr: xhrAdapter +}; + +utils$1.forEach(knownAdapters, (fn, value) => { + if (fn) { + try { + Object.defineProperty(fn, 'name', {value}); + } catch (e) { + // eslint-disable-next-line no-empty + } + Object.defineProperty(fn, 'adapterName', {value}); + } +}); + +const renderReason = (reason) => `- ${reason}`; + +const isResolvedHandle = (adapter) => utils$1.isFunction(adapter) || adapter === null || adapter === false; + +var adapters = { + getAdapter: (adapters) => { + adapters = utils$1.isArray(adapters) ? adapters : [adapters]; + + const {length} = adapters; + let nameOrAdapter; + let adapter; + + const rejectedReasons = {}; + + for (let i = 0; i < length; i++) { + nameOrAdapter = adapters[i]; + let id; + + adapter = nameOrAdapter; + + if (!isResolvedHandle(nameOrAdapter)) { + adapter = knownAdapters[(id = String(nameOrAdapter)).toLowerCase()]; + + if (adapter === undefined) { + throw new AxiosError(`Unknown adapter '${id}'`); + } + } + + if (adapter) { + break; + } + + rejectedReasons[id || '#' + i] = adapter; + } + + if (!adapter) { + + const reasons = Object.entries(rejectedReasons) + .map(([id, state]) => `adapter ${id} ` + + (state === false ? 'is not supported by the environment' : 'is not available in the build') + ); + + let s = length ? + (reasons.length > 1 ? 'since :\n' + reasons.map(renderReason).join('\n') : ' ' + renderReason(reasons[0])) : + 'as no adapter specified'; + + throw new AxiosError( + `There is no suitable adapter to dispatch the request ` + s, + 'ERR_NOT_SUPPORT' + ); + } + + return adapter; + }, + adapters: knownAdapters +}; + +/** + * Throws a `CanceledError` if cancellation has been requested. + * + * @param {Object} config The config that is to be used for the request + * + * @returns {void} + */ +function throwIfCancellationRequested(config) { + if (config.cancelToken) { + config.cancelToken.throwIfRequested(); + } + + if (config.signal && config.signal.aborted) { + throw new CanceledError(null, config); + } +} + +/** + * Dispatch a request to the server using the configured adapter. + * + * @param {object} config The config that is to be used for the request + * + * @returns {Promise} The Promise to be fulfilled + */ +function dispatchRequest(config) { + throwIfCancellationRequested(config); + + config.headers = AxiosHeaders$1.from(config.headers); + + // Transform request data + config.data = transformData.call( + config, + config.transformRequest + ); + + if (['post', 'put', 'patch'].indexOf(config.method) !== -1) { + config.headers.setContentType('application/x-www-form-urlencoded', false); + } + + const adapter = adapters.getAdapter(config.adapter || defaults$1.adapter); + + return adapter(config).then(function onAdapterResolution(response) { + throwIfCancellationRequested(config); + + // Transform response data + response.data = transformData.call( + config, + config.transformResponse, + response + ); + + response.headers = AxiosHeaders$1.from(response.headers); + + return response; + }, function onAdapterRejection(reason) { + if (!isCancel(reason)) { + throwIfCancellationRequested(config); + + // Transform response data + if (reason && reason.response) { + reason.response.data = transformData.call( + config, + config.transformResponse, + reason.response + ); + reason.response.headers = AxiosHeaders$1.from(reason.response.headers); + } + } + + return Promise.reject(reason); + }); +} + +const headersToObject = (thing) => thing instanceof AxiosHeaders$1 ? thing.toJSON() : thing; + +/** + * Config-specific merge-function which creates a new config-object + * by merging two configuration objects together. + * + * @param {Object} config1 + * @param {Object} config2 + * + * @returns {Object} New object resulting from merging config2 to config1 + */ +function mergeConfig(config1, config2) { + // eslint-disable-next-line no-param-reassign + config2 = config2 || {}; + const config = {}; + + function getMergedValue(target, source, caseless) { + if (utils$1.isPlainObject(target) && utils$1.isPlainObject(source)) { + return utils$1.merge.call({caseless}, target, source); + } else if (utils$1.isPlainObject(source)) { + return utils$1.merge({}, source); + } else if (utils$1.isArray(source)) { + return source.slice(); + } + return source; + } + + // eslint-disable-next-line consistent-return + function mergeDeepProperties(a, b, caseless) { + if (!utils$1.isUndefined(b)) { + return getMergedValue(a, b, caseless); + } else if (!utils$1.isUndefined(a)) { + return getMergedValue(undefined, a, caseless); + } + } + + // eslint-disable-next-line consistent-return + function valueFromConfig2(a, b) { + if (!utils$1.isUndefined(b)) { + return getMergedValue(undefined, b); + } + } + + // eslint-disable-next-line consistent-return + function defaultToConfig2(a, b) { + if (!utils$1.isUndefined(b)) { + return getMergedValue(undefined, b); + } else if (!utils$1.isUndefined(a)) { + return getMergedValue(undefined, a); + } + } + + // eslint-disable-next-line consistent-return + function mergeDirectKeys(a, b, prop) { + if (prop in config2) { + return getMergedValue(a, b); + } else if (prop in config1) { + return getMergedValue(undefined, a); + } + } + + const mergeMap = { + url: valueFromConfig2, + method: valueFromConfig2, + data: valueFromConfig2, + baseURL: defaultToConfig2, + transformRequest: defaultToConfig2, + transformResponse: defaultToConfig2, + paramsSerializer: defaultToConfig2, + timeout: defaultToConfig2, + timeoutMessage: defaultToConfig2, + withCredentials: defaultToConfig2, + withXSRFToken: defaultToConfig2, + adapter: defaultToConfig2, + responseType: defaultToConfig2, + xsrfCookieName: defaultToConfig2, + xsrfHeaderName: defaultToConfig2, + onUploadProgress: defaultToConfig2, + onDownloadProgress: defaultToConfig2, + decompress: defaultToConfig2, + maxContentLength: defaultToConfig2, + maxBodyLength: defaultToConfig2, + beforeRedirect: defaultToConfig2, + transport: defaultToConfig2, + httpAgent: defaultToConfig2, + httpsAgent: defaultToConfig2, + cancelToken: defaultToConfig2, + socketPath: defaultToConfig2, + responseEncoding: defaultToConfig2, + validateStatus: mergeDirectKeys, + headers: (a, b) => mergeDeepProperties(headersToObject(a), headersToObject(b), true) + }; + + utils$1.forEach(Object.keys(Object.assign({}, config1, config2)), function computeConfigValue(prop) { + const merge = mergeMap[prop] || mergeDeepProperties; + const configValue = merge(config1[prop], config2[prop], prop); + (utils$1.isUndefined(configValue) && merge !== mergeDirectKeys) || (config[prop] = configValue); + }); + + return config; +} + +const validators$1 = {}; + +// eslint-disable-next-line func-names +['object', 'boolean', 'number', 'function', 'string', 'symbol'].forEach((type, i) => { + validators$1[type] = function validator(thing) { + return typeof thing === type || 'a' + (i < 1 ? 'n ' : ' ') + type; + }; +}); + +const deprecatedWarnings = {}; + +/** + * Transitional option validator + * + * @param {function|boolean?} validator - set to false if the transitional option has been removed + * @param {string?} version - deprecated version / removed since version + * @param {string?} message - some message with additional info + * + * @returns {function} + */ +validators$1.transitional = function transitional(validator, version, message) { + function formatMessage(opt, desc) { + return '[Axios v' + VERSION + '] Transitional option \'' + opt + '\'' + desc + (message ? '. ' + message : ''); + } + + // eslint-disable-next-line func-names + return (value, opt, opts) => { + if (validator === false) { + throw new AxiosError( + formatMessage(opt, ' has been removed' + (version ? ' in ' + version : '')), + AxiosError.ERR_DEPRECATED + ); + } + + if (version && !deprecatedWarnings[opt]) { + deprecatedWarnings[opt] = true; + // eslint-disable-next-line no-console + console.warn( + formatMessage( + opt, + ' has been deprecated since v' + version + ' and will be removed in the near future' + ) + ); + } + + return validator ? validator(value, opt, opts) : true; + }; +}; + +/** + * Assert object's properties type + * + * @param {object} options + * @param {object} schema + * @param {boolean?} allowUnknown + * + * @returns {object} + */ + +function assertOptions(options, schema, allowUnknown) { + if (typeof options !== 'object') { + throw new AxiosError('options must be an object', AxiosError.ERR_BAD_OPTION_VALUE); + } + const keys = Object.keys(options); + let i = keys.length; + while (i-- > 0) { + const opt = keys[i]; + const validator = schema[opt]; + if (validator) { + const value = options[opt]; + const result = value === undefined || validator(value, opt, options); + if (result !== true) { + throw new AxiosError('option ' + opt + ' must be ' + result, AxiosError.ERR_BAD_OPTION_VALUE); + } + continue; + } + if (allowUnknown !== true) { + throw new AxiosError('Unknown option ' + opt, AxiosError.ERR_BAD_OPTION); + } + } +} + +var validator = { + assertOptions, + validators: validators$1 +}; + +const validators = validator.validators; + +/** + * Create a new instance of Axios + * + * @param {Object} instanceConfig The default config for the instance + * + * @return {Axios} A new instance of Axios + */ +class Axios { + constructor(instanceConfig) { + this.defaults = instanceConfig; + this.interceptors = { + request: new InterceptorManager$1(), + response: new InterceptorManager$1() + }; + } + + /** + * Dispatch a request + * + * @param {String|Object} configOrUrl The config specific for this request (merged with this.defaults) + * @param {?Object} config + * + * @returns {Promise} The Promise to be fulfilled + */ + request(configOrUrl, config) { + /*eslint no-param-reassign:0*/ + // Allow for axios('example/url'[, config]) a la fetch API + if (typeof configOrUrl === 'string') { + config = config || {}; + config.url = configOrUrl; + } else { + config = configOrUrl || {}; + } + + config = mergeConfig(this.defaults, config); + + const {transitional, paramsSerializer, headers} = config; + + if (transitional !== undefined) { + validator.assertOptions(transitional, { + silentJSONParsing: validators.transitional(validators.boolean), + forcedJSONParsing: validators.transitional(validators.boolean), + clarifyTimeoutError: validators.transitional(validators.boolean) + }, false); + } + + if (paramsSerializer != null) { + if (utils$1.isFunction(paramsSerializer)) { + config.paramsSerializer = { + serialize: paramsSerializer + }; + } else { + validator.assertOptions(paramsSerializer, { + encode: validators.function, + serialize: validators.function + }, true); + } + } + + // Set config.method + config.method = (config.method || this.defaults.method || 'get').toLowerCase(); + + // Flatten headers + let contextHeaders = headers && utils$1.merge( + headers.common, + headers[config.method] + ); + + headers && utils$1.forEach( + ['delete', 'get', 'head', 'post', 'put', 'patch', 'common'], + (method) => { + delete headers[method]; + } + ); + + config.headers = AxiosHeaders$1.concat(contextHeaders, headers); + + // filter out skipped interceptors + const requestInterceptorChain = []; + let synchronousRequestInterceptors = true; + this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) { + if (typeof interceptor.runWhen === 'function' && interceptor.runWhen(config) === false) { + return; + } + + synchronousRequestInterceptors = synchronousRequestInterceptors && interceptor.synchronous; + + requestInterceptorChain.unshift(interceptor.fulfilled, interceptor.rejected); + }); + + const responseInterceptorChain = []; + this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) { + responseInterceptorChain.push(interceptor.fulfilled, interceptor.rejected); + }); + + let promise; + let i = 0; + let len; + + if (!synchronousRequestInterceptors) { + const chain = [dispatchRequest.bind(this), undefined]; + chain.unshift.apply(chain, requestInterceptorChain); + chain.push.apply(chain, responseInterceptorChain); + len = chain.length; + + promise = Promise.resolve(config); + + while (i < len) { + promise = promise.then(chain[i++], chain[i++]); + } + + return promise; + } + + len = requestInterceptorChain.length; + + let newConfig = config; + + i = 0; + + while (i < len) { + const onFulfilled = requestInterceptorChain[i++]; + const onRejected = requestInterceptorChain[i++]; + try { + newConfig = onFulfilled(newConfig); + } catch (error) { + onRejected.call(this, error); + break; + } + } + + try { + promise = dispatchRequest.call(this, newConfig); + } catch (error) { + return Promise.reject(error); + } + + i = 0; + len = responseInterceptorChain.length; + + while (i < len) { + promise = promise.then(responseInterceptorChain[i++], responseInterceptorChain[i++]); + } + + return promise; + } + + getUri(config) { + config = mergeConfig(this.defaults, config); + const fullPath = buildFullPath(config.baseURL, config.url); + return buildURL(fullPath, config.params, config.paramsSerializer); + } +} + +// Provide aliases for supported request methods +utils$1.forEach(['delete', 'get', 'head', 'options'], function forEachMethodNoData(method) { + /*eslint func-names:0*/ + Axios.prototype[method] = function(url, config) { + return this.request(mergeConfig(config || {}, { + method, + url, + data: (config || {}).data + })); + }; +}); + +utils$1.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) { + /*eslint func-names:0*/ + + function generateHTTPMethod(isForm) { + return function httpMethod(url, data, config) { + return this.request(mergeConfig(config || {}, { + method, + headers: isForm ? { + 'Content-Type': 'multipart/form-data' + } : {}, + url, + data + })); + }; + } + + Axios.prototype[method] = generateHTTPMethod(); + + Axios.prototype[method + 'Form'] = generateHTTPMethod(true); +}); + +var Axios$1 = Axios; + +/** + * A `CancelToken` is an object that can be used to request cancellation of an operation. + * + * @param {Function} executor The executor function. + * + * @returns {CancelToken} + */ +class CancelToken { + constructor(executor) { + if (typeof executor !== 'function') { + throw new TypeError('executor must be a function.'); + } + + let resolvePromise; + + this.promise = new Promise(function promiseExecutor(resolve) { + resolvePromise = resolve; + }); + + const token = this; + + // eslint-disable-next-line func-names + this.promise.then(cancel => { + if (!token._listeners) return; + + let i = token._listeners.length; + + while (i-- > 0) { + token._listeners[i](cancel); + } + token._listeners = null; + }); + + // eslint-disable-next-line func-names + this.promise.then = onfulfilled => { + let _resolve; + // eslint-disable-next-line func-names + const promise = new Promise(resolve => { + token.subscribe(resolve); + _resolve = resolve; + }).then(onfulfilled); + + promise.cancel = function reject() { + token.unsubscribe(_resolve); + }; + + return promise; + }; + + executor(function cancel(message, config, request) { + if (token.reason) { + // Cancellation has already been requested + return; + } + + token.reason = new CanceledError(message, config, request); + resolvePromise(token.reason); + }); + } + + /** + * Throws a `CanceledError` if cancellation has been requested. + */ + throwIfRequested() { + if (this.reason) { + throw this.reason; + } + } + + /** + * Subscribe to the cancel signal + */ + + subscribe(listener) { + if (this.reason) { + listener(this.reason); + return; + } + + if (this._listeners) { + this._listeners.push(listener); + } else { + this._listeners = [listener]; + } + } + + /** + * Unsubscribe from the cancel signal + */ + + unsubscribe(listener) { + if (!this._listeners) { + return; + } + const index = this._listeners.indexOf(listener); + if (index !== -1) { + this._listeners.splice(index, 1); + } + } + + /** + * Returns an object that contains a new `CancelToken` and a function that, when called, + * cancels the `CancelToken`. + */ + static source() { + let cancel; + const token = new CancelToken(function executor(c) { + cancel = c; + }); + return { + token, + cancel + }; + } +} + +var CancelToken$1 = CancelToken; + +/** + * Syntactic sugar for invoking a function and expanding an array for arguments. + * + * Common use case would be to use `Function.prototype.apply`. + * + * ```js + * function f(x, y, z) {} + * var args = [1, 2, 3]; + * f.apply(null, args); + * ``` + * + * With `spread` this example can be re-written. + * + * ```js + * spread(function(x, y, z) {})([1, 2, 3]); + * ``` + * + * @param {Function} callback + * + * @returns {Function} + */ +function spread(callback) { + return function wrap(arr) { + return callback.apply(null, arr); + }; +} + +/** + * Determines whether the payload is an error thrown by Axios + * + * @param {*} payload The value to test + * + * @returns {boolean} True if the payload is an error thrown by Axios, otherwise false + */ +function isAxiosError(payload) { + return utils$1.isObject(payload) && (payload.isAxiosError === true); +} + +const HttpStatusCode = { + Continue: 100, + SwitchingProtocols: 101, + Processing: 102, + EarlyHints: 103, + Ok: 200, + Created: 201, + Accepted: 202, + NonAuthoritativeInformation: 203, + NoContent: 204, + ResetContent: 205, + PartialContent: 206, + MultiStatus: 207, + AlreadyReported: 208, + ImUsed: 226, + MultipleChoices: 300, + MovedPermanently: 301, + Found: 302, + SeeOther: 303, + NotModified: 304, + UseProxy: 305, + Unused: 306, + TemporaryRedirect: 307, + PermanentRedirect: 308, + BadRequest: 400, + Unauthorized: 401, + PaymentRequired: 402, + Forbidden: 403, + NotFound: 404, + MethodNotAllowed: 405, + NotAcceptable: 406, + ProxyAuthenticationRequired: 407, + RequestTimeout: 408, + Conflict: 409, + Gone: 410, + LengthRequired: 411, + PreconditionFailed: 412, + PayloadTooLarge: 413, + UriTooLong: 414, + UnsupportedMediaType: 415, + RangeNotSatisfiable: 416, + ExpectationFailed: 417, + ImATeapot: 418, + MisdirectedRequest: 421, + UnprocessableEntity: 422, + Locked: 423, + FailedDependency: 424, + TooEarly: 425, + UpgradeRequired: 426, + PreconditionRequired: 428, + TooManyRequests: 429, + RequestHeaderFieldsTooLarge: 431, + UnavailableForLegalReasons: 451, + InternalServerError: 500, + NotImplemented: 501, + BadGateway: 502, + ServiceUnavailable: 503, + GatewayTimeout: 504, + HttpVersionNotSupported: 505, + VariantAlsoNegotiates: 506, + InsufficientStorage: 507, + LoopDetected: 508, + NotExtended: 510, + NetworkAuthenticationRequired: 511, +}; + +Object.entries(HttpStatusCode).forEach(([key, value]) => { + HttpStatusCode[value] = key; +}); + +var HttpStatusCode$1 = HttpStatusCode; + +/** + * Create an instance of Axios + * + * @param {Object} defaultConfig The default config for the instance + * + * @returns {Axios} A new instance of Axios + */ +function createInstance(defaultConfig) { + const context = new Axios$1(defaultConfig); + const instance = bind(Axios$1.prototype.request, context); + + // Copy axios.prototype to instance + utils$1.extend(instance, Axios$1.prototype, context, {allOwnKeys: true}); + + // Copy context to instance + utils$1.extend(instance, context, null, {allOwnKeys: true}); + + // Factory for creating new instances + instance.create = function create(instanceConfig) { + return createInstance(mergeConfig(defaultConfig, instanceConfig)); + }; + + return instance; +} + +// Create the default instance to be exported +const axios = createInstance(defaults$1); + +// Expose Axios class to allow class inheritance +axios.Axios = Axios$1; + +// Expose Cancel & CancelToken +axios.CanceledError = CanceledError; +axios.CancelToken = CancelToken$1; +axios.isCancel = isCancel; +axios.VERSION = VERSION; +axios.toFormData = toFormData; + +// Expose AxiosError class +axios.AxiosError = AxiosError; + +// alias for CanceledError for backward compatibility +axios.Cancel = axios.CanceledError; + +// Expose all/spread +axios.all = function all(promises) { + return Promise.all(promises); +}; + +axios.spread = spread; + +// Expose isAxiosError +axios.isAxiosError = isAxiosError; + +// Expose mergeConfig +axios.mergeConfig = mergeConfig; + +axios.AxiosHeaders = AxiosHeaders$1; + +axios.formToJSON = thing => formDataToJSON(utils$1.isHTMLForm(thing) ? new FormData(thing) : thing); + +axios.getAdapter = adapters.getAdapter; + +axios.HttpStatusCode = HttpStatusCode$1; + +axios.default = axios; + +// this module should only have a default export +var axios$1 = axios; + +var jws = {}; + +var safeBuffer = {exports: {}}; + +/*! safe-buffer. MIT License. Feross Aboukhadijeh */ + +var hasRequiredSafeBuffer; + +function requireSafeBuffer () { + if (hasRequiredSafeBuffer) return safeBuffer.exports; + hasRequiredSafeBuffer = 1; + (function (module, exports) { + /* eslint-disable node/no-deprecated-api */ + var buffer = require$$0$3; + var Buffer = buffer.Buffer; + + // alternative to using Object.keys for old browsers + function copyProps (src, dst) { + for (var key in src) { + dst[key] = src[key]; + } + } + if (Buffer.from && Buffer.alloc && Buffer.allocUnsafe && Buffer.allocUnsafeSlow) { + module.exports = buffer; + } else { + // Copy properties from require('buffer') + copyProps(buffer, exports); + exports.Buffer = SafeBuffer; + } + + function SafeBuffer (arg, encodingOrOffset, length) { + return Buffer(arg, encodingOrOffset, length) + } + + SafeBuffer.prototype = Object.create(Buffer.prototype); + + // Copy static methods from Buffer + copyProps(Buffer, SafeBuffer); + + SafeBuffer.from = function (arg, encodingOrOffset, length) { + if (typeof arg === 'number') { + throw new TypeError('Argument must not be a number') + } + return Buffer(arg, encodingOrOffset, length) + }; + + SafeBuffer.alloc = function (size, fill, encoding) { + if (typeof size !== 'number') { + throw new TypeError('Argument must be a number') + } + var buf = Buffer(size); + if (fill !== undefined) { + if (typeof encoding === 'string') { + buf.fill(fill, encoding); + } else { + buf.fill(fill); + } + } else { + buf.fill(0); + } + return buf + }; + + SafeBuffer.allocUnsafe = function (size) { + if (typeof size !== 'number') { + throw new TypeError('Argument must be a number') + } + return Buffer(size) + }; + + SafeBuffer.allocUnsafeSlow = function (size) { + if (typeof size !== 'number') { + throw new TypeError('Argument must be a number') + } + return buffer.SlowBuffer(size) + }; + } (safeBuffer, safeBuffer.exports)); + return safeBuffer.exports; +} + +/*global module, process*/ + +var dataStream; +var hasRequiredDataStream; + +function requireDataStream () { + if (hasRequiredDataStream) return dataStream; + hasRequiredDataStream = 1; + var Buffer = requireSafeBuffer().Buffer; + var Stream$1 = Stream; + var util = require$$1; + + function DataStream(data) { + this.buffer = null; + this.writable = true; + this.readable = true; + + // No input + if (!data) { + this.buffer = Buffer.alloc(0); + return this; + } + + // Stream + if (typeof data.pipe === 'function') { + this.buffer = Buffer.alloc(0); + data.pipe(this); + return this; + } + + // Buffer or String + // or Object (assumedly a passworded key) + if (data.length || typeof data === 'object') { + this.buffer = data; + this.writable = false; + process.nextTick(function () { + this.emit('end', data); + this.readable = false; + this.emit('close'); + }.bind(this)); + return this; + } + + throw new TypeError('Unexpected data type ('+ typeof data + ')'); + } + util.inherits(DataStream, Stream$1); + + DataStream.prototype.write = function write(data) { + this.buffer = Buffer.concat([this.buffer, Buffer.from(data)]); + this.emit('data', data); + }; + + DataStream.prototype.end = function end(data) { + if (data) + this.write(data); + this.emit('end', data); + this.emit('close'); + this.writable = false; + this.readable = false; + }; + + dataStream = DataStream; + return dataStream; +} + +/*jshint node:true */ + +var bufferEqualConstantTime; +var hasRequiredBufferEqualConstantTime; + +function requireBufferEqualConstantTime () { + if (hasRequiredBufferEqualConstantTime) return bufferEqualConstantTime; + hasRequiredBufferEqualConstantTime = 1; + var Buffer = require$$0$3.Buffer; // browserify + var SlowBuffer = require$$0$3.SlowBuffer; + + bufferEqualConstantTime = bufferEq; + + function bufferEq(a, b) { + + // shortcutting on type is necessary for correctness + if (!Buffer.isBuffer(a) || !Buffer.isBuffer(b)) { + return false; + } + + // buffer sizes should be well-known information, so despite this + // shortcutting, it doesn't leak any information about the *contents* of the + // buffers. + if (a.length !== b.length) { + return false; + } + + var c = 0; + for (var i = 0; i < a.length; i++) { + /*jshint bitwise:false */ + c |= a[i] ^ b[i]; // XOR + } + return c === 0; + } + + bufferEq.install = function() { + Buffer.prototype.equal = SlowBuffer.prototype.equal = function equal(that) { + return bufferEq(this, that); + }; + }; + + var origBufEqual = Buffer.prototype.equal; + var origSlowBufEqual = SlowBuffer.prototype.equal; + bufferEq.restore = function() { + Buffer.prototype.equal = origBufEqual; + SlowBuffer.prototype.equal = origSlowBufEqual; + }; + return bufferEqualConstantTime; +} + +var paramBytesForAlg_1; +var hasRequiredParamBytesForAlg; + +function requireParamBytesForAlg () { + if (hasRequiredParamBytesForAlg) return paramBytesForAlg_1; + hasRequiredParamBytesForAlg = 1; + + function getParamSize(keySize) { + var result = ((keySize / 8) | 0) + (keySize % 8 === 0 ? 0 : 1); + return result; + } + + var paramBytesForAlg = { + ES256: getParamSize(256), + ES384: getParamSize(384), + ES512: getParamSize(521) + }; + + function getParamBytesForAlg(alg) { + var paramBytes = paramBytesForAlg[alg]; + if (paramBytes) { + return paramBytes; + } + + throw new Error('Unknown algorithm "' + alg + '"'); + } + + paramBytesForAlg_1 = getParamBytesForAlg; + return paramBytesForAlg_1; +} + +var ecdsaSigFormatter; +var hasRequiredEcdsaSigFormatter; + +function requireEcdsaSigFormatter () { + if (hasRequiredEcdsaSigFormatter) return ecdsaSigFormatter; + hasRequiredEcdsaSigFormatter = 1; + + var Buffer = requireSafeBuffer().Buffer; + + var getParamBytesForAlg = requireParamBytesForAlg(); + + var MAX_OCTET = 0x80, + CLASS_UNIVERSAL = 0, + PRIMITIVE_BIT = 0x20, + TAG_SEQ = 0x10, + TAG_INT = 0x02, + ENCODED_TAG_SEQ = (TAG_SEQ | PRIMITIVE_BIT) | (CLASS_UNIVERSAL << 6), + ENCODED_TAG_INT = TAG_INT | (CLASS_UNIVERSAL << 6); + + function base64Url(base64) { + return base64 + .replace(/=/g, '') + .replace(/\+/g, '-') + .replace(/\//g, '_'); + } + + function signatureAsBuffer(signature) { + if (Buffer.isBuffer(signature)) { + return signature; + } else if ('string' === typeof signature) { + return Buffer.from(signature, 'base64'); + } + + throw new TypeError('ECDSA signature must be a Base64 string or a Buffer'); + } + + function derToJose(signature, alg) { + signature = signatureAsBuffer(signature); + var paramBytes = getParamBytesForAlg(alg); + + // the DER encoded param should at most be the param size, plus a padding + // zero, since due to being a signed integer + var maxEncodedParamLength = paramBytes + 1; + + var inputLength = signature.length; + + var offset = 0; + if (signature[offset++] !== ENCODED_TAG_SEQ) { + throw new Error('Could not find expected "seq"'); + } + + var seqLength = signature[offset++]; + if (seqLength === (MAX_OCTET | 1)) { + seqLength = signature[offset++]; + } + + if (inputLength - offset < seqLength) { + throw new Error('"seq" specified length of "' + seqLength + '", only "' + (inputLength - offset) + '" remaining'); + } + + if (signature[offset++] !== ENCODED_TAG_INT) { + throw new Error('Could not find expected "int" for "r"'); + } + + var rLength = signature[offset++]; + + if (inputLength - offset - 2 < rLength) { + throw new Error('"r" specified length of "' + rLength + '", only "' + (inputLength - offset - 2) + '" available'); + } + + if (maxEncodedParamLength < rLength) { + throw new Error('"r" specified length of "' + rLength + '", max of "' + maxEncodedParamLength + '" is acceptable'); + } + + var rOffset = offset; + offset += rLength; + + if (signature[offset++] !== ENCODED_TAG_INT) { + throw new Error('Could not find expected "int" for "s"'); + } + + var sLength = signature[offset++]; + + if (inputLength - offset !== sLength) { + throw new Error('"s" specified length of "' + sLength + '", expected "' + (inputLength - offset) + '"'); + } + + if (maxEncodedParamLength < sLength) { + throw new Error('"s" specified length of "' + sLength + '", max of "' + maxEncodedParamLength + '" is acceptable'); + } + + var sOffset = offset; + offset += sLength; + + if (offset !== inputLength) { + throw new Error('Expected to consume entire buffer, but "' + (inputLength - offset) + '" bytes remain'); + } + + var rPadding = paramBytes - rLength, + sPadding = paramBytes - sLength; + + var dst = Buffer.allocUnsafe(rPadding + rLength + sPadding + sLength); + + for (offset = 0; offset < rPadding; ++offset) { + dst[offset] = 0; + } + signature.copy(dst, offset, rOffset + Math.max(-rPadding, 0), rOffset + rLength); + + offset = paramBytes; + + for (var o = offset; offset < o + sPadding; ++offset) { + dst[offset] = 0; + } + signature.copy(dst, offset, sOffset + Math.max(-sPadding, 0), sOffset + sLength); + + dst = dst.toString('base64'); + dst = base64Url(dst); + + return dst; + } + + function countPadding(buf, start, stop) { + var padding = 0; + while (start + padding < stop && buf[start + padding] === 0) { + ++padding; + } + + var needsSign = buf[start + padding] >= MAX_OCTET; + if (needsSign) { + --padding; + } + + return padding; + } + + function joseToDer(signature, alg) { + signature = signatureAsBuffer(signature); + var paramBytes = getParamBytesForAlg(alg); + + var signatureBytes = signature.length; + if (signatureBytes !== paramBytes * 2) { + throw new TypeError('"' + alg + '" signatures must be "' + paramBytes * 2 + '" bytes, saw "' + signatureBytes + '"'); + } + + var rPadding = countPadding(signature, 0, paramBytes); + var sPadding = countPadding(signature, paramBytes, signature.length); + var rLength = paramBytes - rPadding; + var sLength = paramBytes - sPadding; + + var rsBytes = 1 + 1 + rLength + 1 + 1 + sLength; + + var shortLength = rsBytes < MAX_OCTET; + + var dst = Buffer.allocUnsafe((shortLength ? 2 : 3) + rsBytes); + + var offset = 0; + dst[offset++] = ENCODED_TAG_SEQ; + if (shortLength) { + // Bit 8 has value "0" + // bits 7-1 give the length. + dst[offset++] = rsBytes; + } else { + // Bit 8 of first octet has value "1" + // bits 7-1 give the number of additional length octets. + dst[offset++] = MAX_OCTET | 1; + // length, base 256 + dst[offset++] = rsBytes & 0xff; + } + dst[offset++] = ENCODED_TAG_INT; + dst[offset++] = rLength; + if (rPadding < 0) { + dst[offset++] = 0; + offset += signature.copy(dst, offset, 0, paramBytes); + } else { + offset += signature.copy(dst, offset, rPadding, paramBytes); + } + dst[offset++] = ENCODED_TAG_INT; + dst[offset++] = sLength; + if (sPadding < 0) { + dst[offset++] = 0; + signature.copy(dst, offset, paramBytes); + } else { + signature.copy(dst, offset, paramBytes + sPadding); + } + + return dst; + } + + ecdsaSigFormatter = { + derToJose: derToJose, + joseToDer: joseToDer + }; + return ecdsaSigFormatter; +} + +var jwa; +var hasRequiredJwa; + +function requireJwa () { + if (hasRequiredJwa) return jwa; + hasRequiredJwa = 1; + var bufferEqual = requireBufferEqualConstantTime(); + var Buffer = requireSafeBuffer().Buffer; + var crypto = require$$2$1; + var formatEcdsa = requireEcdsaSigFormatter(); + var util = require$$1; + + var MSG_INVALID_ALGORITHM = '"%s" is not a valid algorithm.\n Supported algorithms are:\n "HS256", "HS384", "HS512", "RS256", "RS384", "RS512", "PS256", "PS384", "PS512", "ES256", "ES384", "ES512" and "none".'; + var MSG_INVALID_SECRET = 'secret must be a string or buffer'; + var MSG_INVALID_VERIFIER_KEY = 'key must be a string or a buffer'; + var MSG_INVALID_SIGNER_KEY = 'key must be a string, a buffer or an object'; + + var supportsKeyObjects = typeof crypto.createPublicKey === 'function'; + if (supportsKeyObjects) { + MSG_INVALID_VERIFIER_KEY += ' or a KeyObject'; + MSG_INVALID_SECRET += 'or a KeyObject'; + } + + function checkIsPublicKey(key) { + if (Buffer.isBuffer(key)) { + return; + } + + if (typeof key === 'string') { + return; + } + + if (!supportsKeyObjects) { + throw typeError(MSG_INVALID_VERIFIER_KEY); + } + + if (typeof key !== 'object') { + throw typeError(MSG_INVALID_VERIFIER_KEY); + } + + if (typeof key.type !== 'string') { + throw typeError(MSG_INVALID_VERIFIER_KEY); + } + + if (typeof key.asymmetricKeyType !== 'string') { + throw typeError(MSG_INVALID_VERIFIER_KEY); + } + + if (typeof key.export !== 'function') { + throw typeError(MSG_INVALID_VERIFIER_KEY); + } + } + function checkIsPrivateKey(key) { + if (Buffer.isBuffer(key)) { + return; + } + + if (typeof key === 'string') { + return; + } + + if (typeof key === 'object') { + return; + } + + throw typeError(MSG_INVALID_SIGNER_KEY); + } + function checkIsSecretKey(key) { + if (Buffer.isBuffer(key)) { + return; + } + + if (typeof key === 'string') { + return key; + } + + if (!supportsKeyObjects) { + throw typeError(MSG_INVALID_SECRET); + } + + if (typeof key !== 'object') { + throw typeError(MSG_INVALID_SECRET); + } + + if (key.type !== 'secret') { + throw typeError(MSG_INVALID_SECRET); + } + + if (typeof key.export !== 'function') { + throw typeError(MSG_INVALID_SECRET); + } + } + + function fromBase64(base64) { + return base64 + .replace(/=/g, '') + .replace(/\+/g, '-') + .replace(/\//g, '_'); + } + + function toBase64(base64url) { + base64url = base64url.toString(); + + var padding = 4 - base64url.length % 4; + if (padding !== 4) { + for (var i = 0; i < padding; ++i) { + base64url += '='; + } + } + + return base64url + .replace(/\-/g, '+') + .replace(/_/g, '/'); + } + + function typeError(template) { + var args = [].slice.call(arguments, 1); + var errMsg = util.format.bind(util, template).apply(null, args); + return new TypeError(errMsg); + } + + function bufferOrString(obj) { + return Buffer.isBuffer(obj) || typeof obj === 'string'; + } + + function normalizeInput(thing) { + if (!bufferOrString(thing)) + thing = JSON.stringify(thing); + return thing; + } + + function createHmacSigner(bits) { + return function sign(thing, secret) { + checkIsSecretKey(secret); + thing = normalizeInput(thing); + var hmac = crypto.createHmac('sha' + bits, secret); + var sig = (hmac.update(thing), hmac.digest('base64')); + return fromBase64(sig); + } + } + + function createHmacVerifier(bits) { + return function verify(thing, signature, secret) { + var computedSig = createHmacSigner(bits)(thing, secret); + return bufferEqual(Buffer.from(signature), Buffer.from(computedSig)); + } + } + + function createKeySigner(bits) { + return function sign(thing, privateKey) { + checkIsPrivateKey(privateKey); + thing = normalizeInput(thing); + // Even though we are specifying "RSA" here, this works with ECDSA + // keys as well. + var signer = crypto.createSign('RSA-SHA' + bits); + var sig = (signer.update(thing), signer.sign(privateKey, 'base64')); + return fromBase64(sig); + } + } + + function createKeyVerifier(bits) { + return function verify(thing, signature, publicKey) { + checkIsPublicKey(publicKey); + thing = normalizeInput(thing); + signature = toBase64(signature); + var verifier = crypto.createVerify('RSA-SHA' + bits); + verifier.update(thing); + return verifier.verify(publicKey, signature, 'base64'); + } + } + + function createPSSKeySigner(bits) { + return function sign(thing, privateKey) { + checkIsPrivateKey(privateKey); + thing = normalizeInput(thing); + var signer = crypto.createSign('RSA-SHA' + bits); + var sig = (signer.update(thing), signer.sign({ + key: privateKey, + padding: crypto.constants.RSA_PKCS1_PSS_PADDING, + saltLength: crypto.constants.RSA_PSS_SALTLEN_DIGEST + }, 'base64')); + return fromBase64(sig); + } + } + + function createPSSKeyVerifier(bits) { + return function verify(thing, signature, publicKey) { + checkIsPublicKey(publicKey); + thing = normalizeInput(thing); + signature = toBase64(signature); + var verifier = crypto.createVerify('RSA-SHA' + bits); + verifier.update(thing); + return verifier.verify({ + key: publicKey, + padding: crypto.constants.RSA_PKCS1_PSS_PADDING, + saltLength: crypto.constants.RSA_PSS_SALTLEN_DIGEST + }, signature, 'base64'); + } + } + + function createECDSASigner(bits) { + var inner = createKeySigner(bits); + return function sign() { + var signature = inner.apply(null, arguments); + signature = formatEcdsa.derToJose(signature, 'ES' + bits); + return signature; + }; + } + + function createECDSAVerifer(bits) { + var inner = createKeyVerifier(bits); + return function verify(thing, signature, publicKey) { + signature = formatEcdsa.joseToDer(signature, 'ES' + bits).toString('base64'); + var result = inner(thing, signature, publicKey); + return result; + }; + } + + function createNoneSigner() { + return function sign() { + return ''; + } + } + + function createNoneVerifier() { + return function verify(thing, signature) { + return signature === ''; + } + } + + jwa = function jwa(algorithm) { + var signerFactories = { + hs: createHmacSigner, + rs: createKeySigner, + ps: createPSSKeySigner, + es: createECDSASigner, + none: createNoneSigner, + }; + var verifierFactories = { + hs: createHmacVerifier, + rs: createKeyVerifier, + ps: createPSSKeyVerifier, + es: createECDSAVerifer, + none: createNoneVerifier, + }; + var match = algorithm.match(/^(RS|PS|ES|HS)(256|384|512)$|^(none)$/i); + if (!match) + throw typeError(MSG_INVALID_ALGORITHM, algorithm); + var algo = (match[1] || match[3]).toLowerCase(); + var bits = match[2]; + + return { + sign: signerFactories[algo](bits), + verify: verifierFactories[algo](bits), + } + }; + return jwa; +} + +/*global module*/ + +var tostring; +var hasRequiredTostring; + +function requireTostring () { + if (hasRequiredTostring) return tostring; + hasRequiredTostring = 1; + var Buffer = require$$0$3.Buffer; + + tostring = function toString(obj) { + if (typeof obj === 'string') + return obj; + if (typeof obj === 'number' || Buffer.isBuffer(obj)) + return obj.toString(); + return JSON.stringify(obj); + }; + return tostring; +} + +/*global module*/ + +var signStream; +var hasRequiredSignStream; + +function requireSignStream () { + if (hasRequiredSignStream) return signStream; + hasRequiredSignStream = 1; + var Buffer = requireSafeBuffer().Buffer; + var DataStream = requireDataStream(); + var jwa = requireJwa(); + var Stream$1 = Stream; + var toString = requireTostring(); + var util = require$$1; + + function base64url(string, encoding) { + return Buffer + .from(string, encoding) + .toString('base64') + .replace(/=/g, '') + .replace(/\+/g, '-') + .replace(/\//g, '_'); + } + + function jwsSecuredInput(header, payload, encoding) { + encoding = encoding || 'utf8'; + var encodedHeader = base64url(toString(header), 'binary'); + var encodedPayload = base64url(toString(payload), encoding); + return util.format('%s.%s', encodedHeader, encodedPayload); + } + + function jwsSign(opts) { + var header = opts.header; + var payload = opts.payload; + var secretOrKey = opts.secret || opts.privateKey; + var encoding = opts.encoding; + var algo = jwa(header.alg); + var securedInput = jwsSecuredInput(header, payload, encoding); + var signature = algo.sign(securedInput, secretOrKey); + return util.format('%s.%s', securedInput, signature); + } + + function SignStream(opts) { + var secret = opts.secret||opts.privateKey||opts.key; + var secretStream = new DataStream(secret); + this.readable = true; + this.header = opts.header; + this.encoding = opts.encoding; + this.secret = this.privateKey = this.key = secretStream; + this.payload = new DataStream(opts.payload); + this.secret.once('close', function () { + if (!this.payload.writable && this.readable) + this.sign(); + }.bind(this)); + + this.payload.once('close', function () { + if (!this.secret.writable && this.readable) + this.sign(); + }.bind(this)); + } + util.inherits(SignStream, Stream$1); + + SignStream.prototype.sign = function sign() { + try { + var signature = jwsSign({ + header: this.header, + payload: this.payload.buffer, + secret: this.secret.buffer, + encoding: this.encoding + }); + this.emit('done', signature); + this.emit('data', signature); + this.emit('end'); + this.readable = false; + return signature; + } catch (e) { + this.readable = false; + this.emit('error', e); + this.emit('close'); + } + }; + + SignStream.sign = jwsSign; + + signStream = SignStream; + return signStream; +} + +/*global module*/ + +var verifyStream; +var hasRequiredVerifyStream; + +function requireVerifyStream () { + if (hasRequiredVerifyStream) return verifyStream; + hasRequiredVerifyStream = 1; + var Buffer = requireSafeBuffer().Buffer; + var DataStream = requireDataStream(); + var jwa = requireJwa(); + var Stream$1 = Stream; + var toString = requireTostring(); + var util = require$$1; + var JWS_REGEX = /^[a-zA-Z0-9\-_]+?\.[a-zA-Z0-9\-_]+?\.([a-zA-Z0-9\-_]+)?$/; + + function isObject(thing) { + return Object.prototype.toString.call(thing) === '[object Object]'; + } + + function safeJsonParse(thing) { + if (isObject(thing)) + return thing; + try { return JSON.parse(thing); } + catch (e) { return undefined; } + } + + function headerFromJWS(jwsSig) { + var encodedHeader = jwsSig.split('.', 1)[0]; + return safeJsonParse(Buffer.from(encodedHeader, 'base64').toString('binary')); + } + + function securedInputFromJWS(jwsSig) { + return jwsSig.split('.', 2).join('.'); + } + + function signatureFromJWS(jwsSig) { + return jwsSig.split('.')[2]; + } + + function payloadFromJWS(jwsSig, encoding) { + encoding = encoding || 'utf8'; + var payload = jwsSig.split('.')[1]; + return Buffer.from(payload, 'base64').toString(encoding); + } + + function isValidJws(string) { + return JWS_REGEX.test(string) && !!headerFromJWS(string); + } + + function jwsVerify(jwsSig, algorithm, secretOrKey) { + if (!algorithm) { + var err = new Error("Missing algorithm parameter for jws.verify"); + err.code = "MISSING_ALGORITHM"; + throw err; + } + jwsSig = toString(jwsSig); + var signature = signatureFromJWS(jwsSig); + var securedInput = securedInputFromJWS(jwsSig); + var algo = jwa(algorithm); + return algo.verify(securedInput, signature, secretOrKey); + } + + function jwsDecode(jwsSig, opts) { + opts = opts || {}; + jwsSig = toString(jwsSig); + + if (!isValidJws(jwsSig)) + return null; + + var header = headerFromJWS(jwsSig); + + if (!header) + return null; + + var payload = payloadFromJWS(jwsSig); + if (header.typ === 'JWT' || opts.json) + payload = JSON.parse(payload, opts.encoding); + + return { + header: header, + payload: payload, + signature: signatureFromJWS(jwsSig) + }; + } + + function VerifyStream(opts) { + opts = opts || {}; + var secretOrKey = opts.secret||opts.publicKey||opts.key; + var secretStream = new DataStream(secretOrKey); + this.readable = true; + this.algorithm = opts.algorithm; + this.encoding = opts.encoding; + this.secret = this.publicKey = this.key = secretStream; + this.signature = new DataStream(opts.signature); + this.secret.once('close', function () { + if (!this.signature.writable && this.readable) + this.verify(); + }.bind(this)); + + this.signature.once('close', function () { + if (!this.secret.writable && this.readable) + this.verify(); + }.bind(this)); + } + util.inherits(VerifyStream, Stream$1); + VerifyStream.prototype.verify = function verify() { + try { + var valid = jwsVerify(this.signature.buffer, this.algorithm, this.key.buffer); + var obj = jwsDecode(this.signature.buffer, this.encoding); + this.emit('done', valid, obj); + this.emit('data', valid); + this.emit('end'); + this.readable = false; + return valid; + } catch (e) { + this.readable = false; + this.emit('error', e); + this.emit('close'); + } + }; + + VerifyStream.decode = jwsDecode; + VerifyStream.isValid = isValidJws; + VerifyStream.verify = jwsVerify; + + verifyStream = VerifyStream; + return verifyStream; +} + +/*global exports*/ + +var hasRequiredJws; + +function requireJws () { + if (hasRequiredJws) return jws; + hasRequiredJws = 1; + var SignStream = requireSignStream(); + var VerifyStream = requireVerifyStream(); + + var ALGORITHMS = [ + 'HS256', 'HS384', 'HS512', + 'RS256', 'RS384', 'RS512', + 'PS256', 'PS384', 'PS512', + 'ES256', 'ES384', 'ES512' + ]; + + jws.ALGORITHMS = ALGORITHMS; + jws.sign = SignStream.sign; + jws.verify = VerifyStream.verify; + jws.decode = VerifyStream.decode; + jws.isValid = VerifyStream.isValid; + jws.createSign = function createSign(opts) { + return new SignStream(opts); + }; + jws.createVerify = function createVerify(opts) { + return new VerifyStream(opts); + }; + return jws; +} + +var decode; +var hasRequiredDecode; + +function requireDecode () { + if (hasRequiredDecode) return decode; + hasRequiredDecode = 1; + var jws = requireJws(); + + decode = function (jwt, options) { + options = options || {}; + var decoded = jws.decode(jwt, options); + if (!decoded) { return null; } + var payload = decoded.payload; + + //try parse the payload + if(typeof payload === 'string') { + try { + var obj = JSON.parse(payload); + if(obj !== null && typeof obj === 'object') { + payload = obj; + } + } catch (e) { } + } + + //return header if `complete` option is enabled. header includes claims + //such as `kid` and `alg` used to select the key within a JWKS needed to + //verify the signature + if (options.complete === true) { + return { + header: decoded.header, + payload: payload, + signature: decoded.signature + }; + } + return payload; + }; + return decode; +} + +var JsonWebTokenError_1; +var hasRequiredJsonWebTokenError; + +function requireJsonWebTokenError () { + if (hasRequiredJsonWebTokenError) return JsonWebTokenError_1; + hasRequiredJsonWebTokenError = 1; + var JsonWebTokenError = function (message, error) { + Error.call(this, message); + if(Error.captureStackTrace) { + Error.captureStackTrace(this, this.constructor); + } + this.name = 'JsonWebTokenError'; + this.message = message; + if (error) this.inner = error; + }; + + JsonWebTokenError.prototype = Object.create(Error.prototype); + JsonWebTokenError.prototype.constructor = JsonWebTokenError; + + JsonWebTokenError_1 = JsonWebTokenError; + return JsonWebTokenError_1; +} + +var NotBeforeError_1; +var hasRequiredNotBeforeError; + +function requireNotBeforeError () { + if (hasRequiredNotBeforeError) return NotBeforeError_1; + hasRequiredNotBeforeError = 1; + var JsonWebTokenError = requireJsonWebTokenError(); + + var NotBeforeError = function (message, date) { + JsonWebTokenError.call(this, message); + this.name = 'NotBeforeError'; + this.date = date; + }; + + NotBeforeError.prototype = Object.create(JsonWebTokenError.prototype); + + NotBeforeError.prototype.constructor = NotBeforeError; + + NotBeforeError_1 = NotBeforeError; + return NotBeforeError_1; +} + +var TokenExpiredError_1; +var hasRequiredTokenExpiredError; + +function requireTokenExpiredError () { + if (hasRequiredTokenExpiredError) return TokenExpiredError_1; + hasRequiredTokenExpiredError = 1; + var JsonWebTokenError = requireJsonWebTokenError(); + + var TokenExpiredError = function (message, expiredAt) { + JsonWebTokenError.call(this, message); + this.name = 'TokenExpiredError'; + this.expiredAt = expiredAt; + }; + + TokenExpiredError.prototype = Object.create(JsonWebTokenError.prototype); + + TokenExpiredError.prototype.constructor = TokenExpiredError; + + TokenExpiredError_1 = TokenExpiredError; + return TokenExpiredError_1; +} + +var timespan; +var hasRequiredTimespan; + +function requireTimespan () { + if (hasRequiredTimespan) return timespan; + hasRequiredTimespan = 1; + var ms = requireMs(); + + timespan = function (time, iat) { + var timestamp = iat || Math.floor(Date.now() / 1000); + + if (typeof time === 'string') { + var milliseconds = ms(time); + if (typeof milliseconds === 'undefined') { + return; + } + return Math.floor(timestamp + milliseconds / 1000); + } else if (typeof time === 'number') { + return timestamp + time; + } else { + return; + } + + }; + return timespan; +} + +var re = {exports: {}}; + +var constants; +var hasRequiredConstants; + +function requireConstants () { + if (hasRequiredConstants) return constants; + hasRequiredConstants = 1; + // Note: this is the semver.org version of the spec that it implements + // Not necessarily the package version of this code. + const SEMVER_SPEC_VERSION = '2.0.0'; + + const MAX_LENGTH = 256; + const MAX_SAFE_INTEGER = Number.MAX_SAFE_INTEGER || + /* istanbul ignore next */ 9007199254740991; + + // Max safe segment length for coercion. + const MAX_SAFE_COMPONENT_LENGTH = 16; + + // Max safe length for a build identifier. The max length minus 6 characters for + // the shortest version with a build 0.0.0+BUILD. + const MAX_SAFE_BUILD_LENGTH = MAX_LENGTH - 6; + + const RELEASE_TYPES = [ + 'major', + 'premajor', + 'minor', + 'preminor', + 'patch', + 'prepatch', + 'prerelease', + ]; + + constants = { + MAX_LENGTH, + MAX_SAFE_COMPONENT_LENGTH, + MAX_SAFE_BUILD_LENGTH, + MAX_SAFE_INTEGER, + RELEASE_TYPES, + SEMVER_SPEC_VERSION, + FLAG_INCLUDE_PRERELEASE: 0b001, + FLAG_LOOSE: 0b010, + }; + return constants; +} + +var debug_1; +var hasRequiredDebug; + +function requireDebug () { + if (hasRequiredDebug) return debug_1; + hasRequiredDebug = 1; + const debug = ( + typeof process === 'object' && + process.env && + process.env.NODE_DEBUG && + /\bsemver\b/i.test(process.env.NODE_DEBUG) + ) ? (...args) => console.error('SEMVER', ...args) + : () => {}; + + debug_1 = debug; + return debug_1; +} + +var hasRequiredRe; + +function requireRe () { + if (hasRequiredRe) return re.exports; + hasRequiredRe = 1; + (function (module, exports) { + const { + MAX_SAFE_COMPONENT_LENGTH, + MAX_SAFE_BUILD_LENGTH, + MAX_LENGTH, + } = requireConstants(); + const debug = requireDebug(); + exports = module.exports = {}; + + // The actual regexps go on exports.re + const re = exports.re = []; + const safeRe = exports.safeRe = []; + const src = exports.src = []; + const t = exports.t = {}; + let R = 0; + + const LETTERDASHNUMBER = '[a-zA-Z0-9-]'; + + // Replace some greedy regex tokens to prevent regex dos issues. These regex are + // used internally via the safeRe object since all inputs in this library get + // normalized first to trim and collapse all extra whitespace. The original + // regexes are exported for userland consumption and lower level usage. A + // future breaking change could export the safer regex only with a note that + // all input should have extra whitespace removed. + const safeRegexReplacements = [ + ['\\s', 1], + ['\\d', MAX_LENGTH], + [LETTERDASHNUMBER, MAX_SAFE_BUILD_LENGTH], + ]; + + const makeSafeRegex = (value) => { + for (const [token, max] of safeRegexReplacements) { + value = value + .split(`${token}*`).join(`${token}{0,${max}}`) + .split(`${token}+`).join(`${token}{1,${max}}`); + } + return value + }; + + const createToken = (name, value, isGlobal) => { + const safe = makeSafeRegex(value); + const index = R++; + debug(name, index, value); + t[name] = index; + src[index] = value; + re[index] = new RegExp(value, isGlobal ? 'g' : undefined); + safeRe[index] = new RegExp(safe, isGlobal ? 'g' : undefined); + }; + + // The following Regular Expressions can be used for tokenizing, + // validating, and parsing SemVer version strings. + + // ## Numeric Identifier + // A single `0`, or a non-zero digit followed by zero or more digits. + + createToken('NUMERICIDENTIFIER', '0|[1-9]\\d*'); + createToken('NUMERICIDENTIFIERLOOSE', '\\d+'); + + // ## Non-numeric Identifier + // Zero or more digits, followed by a letter or hyphen, and then zero or + // more letters, digits, or hyphens. + + createToken('NONNUMERICIDENTIFIER', `\\d*[a-zA-Z-]${LETTERDASHNUMBER}*`); + + // ## Main Version + // Three dot-separated numeric identifiers. + + createToken('MAINVERSION', `(${src[t.NUMERICIDENTIFIER]})\\.` + + `(${src[t.NUMERICIDENTIFIER]})\\.` + + `(${src[t.NUMERICIDENTIFIER]})`); + + createToken('MAINVERSIONLOOSE', `(${src[t.NUMERICIDENTIFIERLOOSE]})\\.` + + `(${src[t.NUMERICIDENTIFIERLOOSE]})\\.` + + `(${src[t.NUMERICIDENTIFIERLOOSE]})`); + + // ## Pre-release Version Identifier + // A numeric identifier, or a non-numeric identifier. + + createToken('PRERELEASEIDENTIFIER', `(?:${src[t.NUMERICIDENTIFIER] + }|${src[t.NONNUMERICIDENTIFIER]})`); + + createToken('PRERELEASEIDENTIFIERLOOSE', `(?:${src[t.NUMERICIDENTIFIERLOOSE] + }|${src[t.NONNUMERICIDENTIFIER]})`); + + // ## Pre-release Version + // Hyphen, followed by one or more dot-separated pre-release version + // identifiers. + + createToken('PRERELEASE', `(?:-(${src[t.PRERELEASEIDENTIFIER] + }(?:\\.${src[t.PRERELEASEIDENTIFIER]})*))`); + + createToken('PRERELEASELOOSE', `(?:-?(${src[t.PRERELEASEIDENTIFIERLOOSE] + }(?:\\.${src[t.PRERELEASEIDENTIFIERLOOSE]})*))`); + + // ## Build Metadata Identifier + // Any combination of digits, letters, or hyphens. + + createToken('BUILDIDENTIFIER', `${LETTERDASHNUMBER}+`); + + // ## Build Metadata + // Plus sign, followed by one or more period-separated build metadata + // identifiers. + + createToken('BUILD', `(?:\\+(${src[t.BUILDIDENTIFIER] + }(?:\\.${src[t.BUILDIDENTIFIER]})*))`); + + // ## Full Version String + // A main version, followed optionally by a pre-release version and + // build metadata. + + // Note that the only major, minor, patch, and pre-release sections of + // the version string are capturing groups. The build metadata is not a + // capturing group, because it should not ever be used in version + // comparison. + + createToken('FULLPLAIN', `v?${src[t.MAINVERSION] + }${src[t.PRERELEASE]}?${ + src[t.BUILD]}?`); + + createToken('FULL', `^${src[t.FULLPLAIN]}$`); + + // like full, but allows v1.2.3 and =1.2.3, which people do sometimes. + // also, 1.0.0alpha1 (prerelease without the hyphen) which is pretty + // common in the npm registry. + createToken('LOOSEPLAIN', `[v=\\s]*${src[t.MAINVERSIONLOOSE] + }${src[t.PRERELEASELOOSE]}?${ + src[t.BUILD]}?`); + + createToken('LOOSE', `^${src[t.LOOSEPLAIN]}$`); + + createToken('GTLT', '((?:<|>)?=?)'); + + // Something like "2.*" or "1.2.x". + // Note that "x.x" is a valid xRange identifer, meaning "any version" + // Only the first item is strictly required. + createToken('XRANGEIDENTIFIERLOOSE', `${src[t.NUMERICIDENTIFIERLOOSE]}|x|X|\\*`); + createToken('XRANGEIDENTIFIER', `${src[t.NUMERICIDENTIFIER]}|x|X|\\*`); + + createToken('XRANGEPLAIN', `[v=\\s]*(${src[t.XRANGEIDENTIFIER]})` + + `(?:\\.(${src[t.XRANGEIDENTIFIER]})` + + `(?:\\.(${src[t.XRANGEIDENTIFIER]})` + + `(?:${src[t.PRERELEASE]})?${ + src[t.BUILD]}?` + + `)?)?`); + + createToken('XRANGEPLAINLOOSE', `[v=\\s]*(${src[t.XRANGEIDENTIFIERLOOSE]})` + + `(?:\\.(${src[t.XRANGEIDENTIFIERLOOSE]})` + + `(?:\\.(${src[t.XRANGEIDENTIFIERLOOSE]})` + + `(?:${src[t.PRERELEASELOOSE]})?${ + src[t.BUILD]}?` + + `)?)?`); + + createToken('XRANGE', `^${src[t.GTLT]}\\s*${src[t.XRANGEPLAIN]}$`); + createToken('XRANGELOOSE', `^${src[t.GTLT]}\\s*${src[t.XRANGEPLAINLOOSE]}$`); + + // Coercion. + // Extract anything that could conceivably be a part of a valid semver + createToken('COERCE', `${'(^|[^\\d])' + + '(\\d{1,'}${MAX_SAFE_COMPONENT_LENGTH}})` + + `(?:\\.(\\d{1,${MAX_SAFE_COMPONENT_LENGTH}}))?` + + `(?:\\.(\\d{1,${MAX_SAFE_COMPONENT_LENGTH}}))?` + + `(?:$|[^\\d])`); + createToken('COERCERTL', src[t.COERCE], true); + + // Tilde ranges. + // Meaning is "reasonably at or greater than" + createToken('LONETILDE', '(?:~>?)'); + + createToken('TILDETRIM', `(\\s*)${src[t.LONETILDE]}\\s+`, true); + exports.tildeTrimReplace = '$1~'; + + createToken('TILDE', `^${src[t.LONETILDE]}${src[t.XRANGEPLAIN]}$`); + createToken('TILDELOOSE', `^${src[t.LONETILDE]}${src[t.XRANGEPLAINLOOSE]}$`); + + // Caret ranges. + // Meaning is "at least and backwards compatible with" + createToken('LONECARET', '(?:\\^)'); + + createToken('CARETTRIM', `(\\s*)${src[t.LONECARET]}\\s+`, true); + exports.caretTrimReplace = '$1^'; + + createToken('CARET', `^${src[t.LONECARET]}${src[t.XRANGEPLAIN]}$`); + createToken('CARETLOOSE', `^${src[t.LONECARET]}${src[t.XRANGEPLAINLOOSE]}$`); + + // A simple gt/lt/eq thing, or just "" to indicate "any version" + createToken('COMPARATORLOOSE', `^${src[t.GTLT]}\\s*(${src[t.LOOSEPLAIN]})$|^$`); + createToken('COMPARATOR', `^${src[t.GTLT]}\\s*(${src[t.FULLPLAIN]})$|^$`); + + // An expression to strip any whitespace between the gtlt and the thing + // it modifies, so that `> 1.2.3` ==> `>1.2.3` + createToken('COMPARATORTRIM', `(\\s*)${src[t.GTLT] + }\\s*(${src[t.LOOSEPLAIN]}|${src[t.XRANGEPLAIN]})`, true); + exports.comparatorTrimReplace = '$1$2$3'; + + // Something like `1.2.3 - 1.2.4` + // Note that these all use the loose form, because they'll be + // checked against either the strict or loose comparator form + // later. + createToken('HYPHENRANGE', `^\\s*(${src[t.XRANGEPLAIN]})` + + `\\s+-\\s+` + + `(${src[t.XRANGEPLAIN]})` + + `\\s*$`); + + createToken('HYPHENRANGELOOSE', `^\\s*(${src[t.XRANGEPLAINLOOSE]})` + + `\\s+-\\s+` + + `(${src[t.XRANGEPLAINLOOSE]})` + + `\\s*$`); + + // Star ranges basically just allow anything at all. + createToken('STAR', '(<|>)?=?\\s*\\*'); + // >=0.0.0 is like a star + createToken('GTE0', '^\\s*>=\\s*0\\.0\\.0\\s*$'); + createToken('GTE0PRE', '^\\s*>=\\s*0\\.0\\.0-0\\s*$'); + } (re, re.exports)); + return re.exports; +} + +var parseOptions_1; +var hasRequiredParseOptions; + +function requireParseOptions () { + if (hasRequiredParseOptions) return parseOptions_1; + hasRequiredParseOptions = 1; + // parse out just the options we care about + const looseOption = Object.freeze({ loose: true }); + const emptyOpts = Object.freeze({ }); + const parseOptions = options => { + if (!options) { + return emptyOpts + } + + if (typeof options !== 'object') { + return looseOption + } + + return options + }; + parseOptions_1 = parseOptions; + return parseOptions_1; +} + +var identifiers; +var hasRequiredIdentifiers; + +function requireIdentifiers () { + if (hasRequiredIdentifiers) return identifiers; + hasRequiredIdentifiers = 1; + const numeric = /^[0-9]+$/; + const compareIdentifiers = (a, b) => { + const anum = numeric.test(a); + const bnum = numeric.test(b); + + if (anum && bnum) { + a = +a; + b = +b; + } + + return a === b ? 0 + : (anum && !bnum) ? -1 + : (bnum && !anum) ? 1 + : a < b ? -1 + : 1 + }; + + const rcompareIdentifiers = (a, b) => compareIdentifiers(b, a); + + identifiers = { + compareIdentifiers, + rcompareIdentifiers, + }; + return identifiers; +} + +var semver$1; +var hasRequiredSemver$1; + +function requireSemver$1 () { + if (hasRequiredSemver$1) return semver$1; + hasRequiredSemver$1 = 1; + const debug = requireDebug(); + const { MAX_LENGTH, MAX_SAFE_INTEGER } = requireConstants(); + const { safeRe: re, t } = requireRe(); + + const parseOptions = requireParseOptions(); + const { compareIdentifiers } = requireIdentifiers(); + class SemVer { + constructor (version, options) { + options = parseOptions(options); + + if (version instanceof SemVer) { + if (version.loose === !!options.loose && + version.includePrerelease === !!options.includePrerelease) { + return version + } else { + version = version.version; + } + } else if (typeof version !== 'string') { + throw new TypeError(`Invalid version. Must be a string. Got type "${typeof version}".`) + } + + if (version.length > MAX_LENGTH) { + throw new TypeError( + `version is longer than ${MAX_LENGTH} characters` + ) + } + + debug('SemVer', version, options); + this.options = options; + this.loose = !!options.loose; + // this isn't actually relevant for versions, but keep it so that we + // don't run into trouble passing this.options around. + this.includePrerelease = !!options.includePrerelease; + + const m = version.trim().match(options.loose ? re[t.LOOSE] : re[t.FULL]); + + if (!m) { + throw new TypeError(`Invalid Version: ${version}`) + } + + this.raw = version; + + // these are actually numbers + this.major = +m[1]; + this.minor = +m[2]; + this.patch = +m[3]; + + if (this.major > MAX_SAFE_INTEGER || this.major < 0) { + throw new TypeError('Invalid major version') + } + + if (this.minor > MAX_SAFE_INTEGER || this.minor < 0) { + throw new TypeError('Invalid minor version') + } + + if (this.patch > MAX_SAFE_INTEGER || this.patch < 0) { + throw new TypeError('Invalid patch version') + } + + // numberify any prerelease numeric ids + if (!m[4]) { + this.prerelease = []; + } else { + this.prerelease = m[4].split('.').map((id) => { + if (/^[0-9]+$/.test(id)) { + const num = +id; + if (num >= 0 && num < MAX_SAFE_INTEGER) { + return num + } + } + return id + }); + } + + this.build = m[5] ? m[5].split('.') : []; + this.format(); + } + + format () { + this.version = `${this.major}.${this.minor}.${this.patch}`; + if (this.prerelease.length) { + this.version += `-${this.prerelease.join('.')}`; + } + return this.version + } + + toString () { + return this.version + } + + compare (other) { + debug('SemVer.compare', this.version, this.options, other); + if (!(other instanceof SemVer)) { + if (typeof other === 'string' && other === this.version) { + return 0 + } + other = new SemVer(other, this.options); + } + + if (other.version === this.version) { + return 0 + } + + return this.compareMain(other) || this.comparePre(other) + } + + compareMain (other) { + if (!(other instanceof SemVer)) { + other = new SemVer(other, this.options); + } + + return ( + compareIdentifiers(this.major, other.major) || + compareIdentifiers(this.minor, other.minor) || + compareIdentifiers(this.patch, other.patch) + ) + } + + comparePre (other) { + if (!(other instanceof SemVer)) { + other = new SemVer(other, this.options); + } + + // NOT having a prerelease is > having one + if (this.prerelease.length && !other.prerelease.length) { + return -1 + } else if (!this.prerelease.length && other.prerelease.length) { + return 1 + } else if (!this.prerelease.length && !other.prerelease.length) { + return 0 + } + + let i = 0; + do { + const a = this.prerelease[i]; + const b = other.prerelease[i]; + debug('prerelease compare', i, a, b); + if (a === undefined && b === undefined) { + return 0 + } else if (b === undefined) { + return 1 + } else if (a === undefined) { + return -1 + } else if (a === b) { + continue + } else { + return compareIdentifiers(a, b) + } + } while (++i) + } + + compareBuild (other) { + if (!(other instanceof SemVer)) { + other = new SemVer(other, this.options); + } + + let i = 0; + do { + const a = this.build[i]; + const b = other.build[i]; + debug('prerelease compare', i, a, b); + if (a === undefined && b === undefined) { + return 0 + } else if (b === undefined) { + return 1 + } else if (a === undefined) { + return -1 + } else if (a === b) { + continue + } else { + return compareIdentifiers(a, b) + } + } while (++i) + } + + // preminor will bump the version up to the next minor release, and immediately + // down to pre-release. premajor and prepatch work the same way. + inc (release, identifier, identifierBase) { + switch (release) { + case 'premajor': + this.prerelease.length = 0; + this.patch = 0; + this.minor = 0; + this.major++; + this.inc('pre', identifier, identifierBase); + break + case 'preminor': + this.prerelease.length = 0; + this.patch = 0; + this.minor++; + this.inc('pre', identifier, identifierBase); + break + case 'prepatch': + // If this is already a prerelease, it will bump to the next version + // drop any prereleases that might already exist, since they are not + // relevant at this point. + this.prerelease.length = 0; + this.inc('patch', identifier, identifierBase); + this.inc('pre', identifier, identifierBase); + break + // If the input is a non-prerelease version, this acts the same as + // prepatch. + case 'prerelease': + if (this.prerelease.length === 0) { + this.inc('patch', identifier, identifierBase); + } + this.inc('pre', identifier, identifierBase); + break + + case 'major': + // If this is a pre-major version, bump up to the same major version. + // Otherwise increment major. + // 1.0.0-5 bumps to 1.0.0 + // 1.1.0 bumps to 2.0.0 + if ( + this.minor !== 0 || + this.patch !== 0 || + this.prerelease.length === 0 + ) { + this.major++; + } + this.minor = 0; + this.patch = 0; + this.prerelease = []; + break + case 'minor': + // If this is a pre-minor version, bump up to the same minor version. + // Otherwise increment minor. + // 1.2.0-5 bumps to 1.2.0 + // 1.2.1 bumps to 1.3.0 + if (this.patch !== 0 || this.prerelease.length === 0) { + this.minor++; + } + this.patch = 0; + this.prerelease = []; + break + case 'patch': + // If this is not a pre-release version, it will increment the patch. + // If it is a pre-release it will bump up to the same patch version. + // 1.2.0-5 patches to 1.2.0 + // 1.2.0 patches to 1.2.1 + if (this.prerelease.length === 0) { + this.patch++; + } + this.prerelease = []; + break + // This probably shouldn't be used publicly. + // 1.0.0 'pre' would become 1.0.0-0 which is the wrong direction. + case 'pre': { + const base = Number(identifierBase) ? 1 : 0; + + if (!identifier && identifierBase === false) { + throw new Error('invalid increment argument: identifier is empty') + } + + if (this.prerelease.length === 0) { + this.prerelease = [base]; + } else { + let i = this.prerelease.length; + while (--i >= 0) { + if (typeof this.prerelease[i] === 'number') { + this.prerelease[i]++; + i = -2; + } + } + if (i === -1) { + // didn't increment anything + if (identifier === this.prerelease.join('.') && identifierBase === false) { + throw new Error('invalid increment argument: identifier already exists') + } + this.prerelease.push(base); + } + } + if (identifier) { + // 1.2.0-beta.1 bumps to 1.2.0-beta.2, + // 1.2.0-beta.fooblz or 1.2.0-beta bumps to 1.2.0-beta.0 + let prerelease = [identifier, base]; + if (identifierBase === false) { + prerelease = [identifier]; + } + if (compareIdentifiers(this.prerelease[0], identifier) === 0) { + if (isNaN(this.prerelease[1])) { + this.prerelease = prerelease; + } + } else { + this.prerelease = prerelease; + } + } + break + } + default: + throw new Error(`invalid increment argument: ${release}`) + } + this.raw = this.format(); + if (this.build.length) { + this.raw += `+${this.build.join('.')}`; + } + return this + } + } + + semver$1 = SemVer; + return semver$1; +} + +var parse_1; +var hasRequiredParse; + +function requireParse () { + if (hasRequiredParse) return parse_1; + hasRequiredParse = 1; + const SemVer = requireSemver$1(); + const parse = (version, options, throwErrors = false) => { + if (version instanceof SemVer) { + return version + } + try { + return new SemVer(version, options) + } catch (er) { + if (!throwErrors) { + return null + } + throw er + } + }; + + parse_1 = parse; + return parse_1; +} + +var valid_1; +var hasRequiredValid$1; + +function requireValid$1 () { + if (hasRequiredValid$1) return valid_1; + hasRequiredValid$1 = 1; + const parse = requireParse(); + const valid = (version, options) => { + const v = parse(version, options); + return v ? v.version : null + }; + valid_1 = valid; + return valid_1; +} + +var clean_1; +var hasRequiredClean; + +function requireClean () { + if (hasRequiredClean) return clean_1; + hasRequiredClean = 1; + const parse = requireParse(); + const clean = (version, options) => { + const s = parse(version.trim().replace(/^[=v]+/, ''), options); + return s ? s.version : null + }; + clean_1 = clean; + return clean_1; +} + +var inc_1; +var hasRequiredInc; + +function requireInc () { + if (hasRequiredInc) return inc_1; + hasRequiredInc = 1; + const SemVer = requireSemver$1(); + + const inc = (version, release, options, identifier, identifierBase) => { + if (typeof (options) === 'string') { + identifierBase = identifier; + identifier = options; + options = undefined; + } + + try { + return new SemVer( + version instanceof SemVer ? version.version : version, + options + ).inc(release, identifier, identifierBase).version + } catch (er) { + return null + } + }; + inc_1 = inc; + return inc_1; +} + +var diff_1; +var hasRequiredDiff; + +function requireDiff () { + if (hasRequiredDiff) return diff_1; + hasRequiredDiff = 1; + const parse = requireParse(); + + const diff = (version1, version2) => { + const v1 = parse(version1, null, true); + const v2 = parse(version2, null, true); + const comparison = v1.compare(v2); + + if (comparison === 0) { + return null + } + + const v1Higher = comparison > 0; + const highVersion = v1Higher ? v1 : v2; + const lowVersion = v1Higher ? v2 : v1; + const highHasPre = !!highVersion.prerelease.length; + const lowHasPre = !!lowVersion.prerelease.length; + + if (lowHasPre && !highHasPre) { + // Going from prerelease -> no prerelease requires some special casing + + // If the low version has only a major, then it will always be a major + // Some examples: + // 1.0.0-1 -> 1.0.0 + // 1.0.0-1 -> 1.1.1 + // 1.0.0-1 -> 2.0.0 + if (!lowVersion.patch && !lowVersion.minor) { + return 'major' + } + + // Otherwise it can be determined by checking the high version + + if (highVersion.patch) { + // anything higher than a patch bump would result in the wrong version + return 'patch' + } + + if (highVersion.minor) { + // anything higher than a minor bump would result in the wrong version + return 'minor' + } + + // bumping major/minor/patch all have same result + return 'major' + } + + // add the `pre` prefix if we are going to a prerelease version + const prefix = highHasPre ? 'pre' : ''; + + if (v1.major !== v2.major) { + return prefix + 'major' + } + + if (v1.minor !== v2.minor) { + return prefix + 'minor' + } + + if (v1.patch !== v2.patch) { + return prefix + 'patch' + } + + // high and low are preleases + return 'prerelease' + }; + + diff_1 = diff; + return diff_1; +} + +var major_1; +var hasRequiredMajor; + +function requireMajor () { + if (hasRequiredMajor) return major_1; + hasRequiredMajor = 1; + const SemVer = requireSemver$1(); + const major = (a, loose) => new SemVer(a, loose).major; + major_1 = major; + return major_1; +} + +var minor_1; +var hasRequiredMinor; + +function requireMinor () { + if (hasRequiredMinor) return minor_1; + hasRequiredMinor = 1; + const SemVer = requireSemver$1(); + const minor = (a, loose) => new SemVer(a, loose).minor; + minor_1 = minor; + return minor_1; +} + +var patch_1; +var hasRequiredPatch; + +function requirePatch () { + if (hasRequiredPatch) return patch_1; + hasRequiredPatch = 1; + const SemVer = requireSemver$1(); + const patch = (a, loose) => new SemVer(a, loose).patch; + patch_1 = patch; + return patch_1; +} + +var prerelease_1; +var hasRequiredPrerelease; + +function requirePrerelease () { + if (hasRequiredPrerelease) return prerelease_1; + hasRequiredPrerelease = 1; + const parse = requireParse(); + const prerelease = (version, options) => { + const parsed = parse(version, options); + return (parsed && parsed.prerelease.length) ? parsed.prerelease : null + }; + prerelease_1 = prerelease; + return prerelease_1; +} + +var compare_1; +var hasRequiredCompare; + +function requireCompare () { + if (hasRequiredCompare) return compare_1; + hasRequiredCompare = 1; + const SemVer = requireSemver$1(); + const compare = (a, b, loose) => + new SemVer(a, loose).compare(new SemVer(b, loose)); + + compare_1 = compare; + return compare_1; +} + +var rcompare_1; +var hasRequiredRcompare; + +function requireRcompare () { + if (hasRequiredRcompare) return rcompare_1; + hasRequiredRcompare = 1; + const compare = requireCompare(); + const rcompare = (a, b, loose) => compare(b, a, loose); + rcompare_1 = rcompare; + return rcompare_1; +} + +var compareLoose_1; +var hasRequiredCompareLoose; + +function requireCompareLoose () { + if (hasRequiredCompareLoose) return compareLoose_1; + hasRequiredCompareLoose = 1; + const compare = requireCompare(); + const compareLoose = (a, b) => compare(a, b, true); + compareLoose_1 = compareLoose; + return compareLoose_1; +} + +var compareBuild_1; +var hasRequiredCompareBuild; + +function requireCompareBuild () { + if (hasRequiredCompareBuild) return compareBuild_1; + hasRequiredCompareBuild = 1; + const SemVer = requireSemver$1(); + const compareBuild = (a, b, loose) => { + const versionA = new SemVer(a, loose); + const versionB = new SemVer(b, loose); + return versionA.compare(versionB) || versionA.compareBuild(versionB) + }; + compareBuild_1 = compareBuild; + return compareBuild_1; +} + +var sort_1; +var hasRequiredSort; + +function requireSort () { + if (hasRequiredSort) return sort_1; + hasRequiredSort = 1; + const compareBuild = requireCompareBuild(); + const sort = (list, loose) => list.sort((a, b) => compareBuild(a, b, loose)); + sort_1 = sort; + return sort_1; +} + +var rsort_1; +var hasRequiredRsort; + +function requireRsort () { + if (hasRequiredRsort) return rsort_1; + hasRequiredRsort = 1; + const compareBuild = requireCompareBuild(); + const rsort = (list, loose) => list.sort((a, b) => compareBuild(b, a, loose)); + rsort_1 = rsort; + return rsort_1; +} + +var gt_1; +var hasRequiredGt; + +function requireGt () { + if (hasRequiredGt) return gt_1; + hasRequiredGt = 1; + const compare = requireCompare(); + const gt = (a, b, loose) => compare(a, b, loose) > 0; + gt_1 = gt; + return gt_1; +} + +var lt_1; +var hasRequiredLt; + +function requireLt () { + if (hasRequiredLt) return lt_1; + hasRequiredLt = 1; + const compare = requireCompare(); + const lt = (a, b, loose) => compare(a, b, loose) < 0; + lt_1 = lt; + return lt_1; +} + +var eq_1; +var hasRequiredEq; + +function requireEq () { + if (hasRequiredEq) return eq_1; + hasRequiredEq = 1; + const compare = requireCompare(); + const eq = (a, b, loose) => compare(a, b, loose) === 0; + eq_1 = eq; + return eq_1; +} + +var neq_1; +var hasRequiredNeq; + +function requireNeq () { + if (hasRequiredNeq) return neq_1; + hasRequiredNeq = 1; + const compare = requireCompare(); + const neq = (a, b, loose) => compare(a, b, loose) !== 0; + neq_1 = neq; + return neq_1; +} + +var gte_1; +var hasRequiredGte; + +function requireGte () { + if (hasRequiredGte) return gte_1; + hasRequiredGte = 1; + const compare = requireCompare(); + const gte = (a, b, loose) => compare(a, b, loose) >= 0; + gte_1 = gte; + return gte_1; +} + +var lte_1; +var hasRequiredLte; + +function requireLte () { + if (hasRequiredLte) return lte_1; + hasRequiredLte = 1; + const compare = requireCompare(); + const lte = (a, b, loose) => compare(a, b, loose) <= 0; + lte_1 = lte; + return lte_1; +} + +var cmp_1; +var hasRequiredCmp; + +function requireCmp () { + if (hasRequiredCmp) return cmp_1; + hasRequiredCmp = 1; + const eq = requireEq(); + const neq = requireNeq(); + const gt = requireGt(); + const gte = requireGte(); + const lt = requireLt(); + const lte = requireLte(); + + const cmp = (a, op, b, loose) => { + switch (op) { + case '===': + if (typeof a === 'object') { + a = a.version; + } + if (typeof b === 'object') { + b = b.version; + } + return a === b + + case '!==': + if (typeof a === 'object') { + a = a.version; + } + if (typeof b === 'object') { + b = b.version; + } + return a !== b + + case '': + case '=': + case '==': + return eq(a, b, loose) + + case '!=': + return neq(a, b, loose) + + case '>': + return gt(a, b, loose) + + case '>=': + return gte(a, b, loose) + + case '<': + return lt(a, b, loose) + + case '<=': + return lte(a, b, loose) + + default: + throw new TypeError(`Invalid operator: ${op}`) + } + }; + cmp_1 = cmp; + return cmp_1; +} + +var coerce_1; +var hasRequiredCoerce; + +function requireCoerce () { + if (hasRequiredCoerce) return coerce_1; + hasRequiredCoerce = 1; + const SemVer = requireSemver$1(); + const parse = requireParse(); + const { safeRe: re, t } = requireRe(); + + const coerce = (version, options) => { + if (version instanceof SemVer) { + return version + } + + if (typeof version === 'number') { + version = String(version); + } + + if (typeof version !== 'string') { + return null + } + + options = options || {}; + + let match = null; + if (!options.rtl) { + match = version.match(re[t.COERCE]); + } else { + // Find the right-most coercible string that does not share + // a terminus with a more left-ward coercible string. + // Eg, '1.2.3.4' wants to coerce '2.3.4', not '3.4' or '4' + // + // Walk through the string checking with a /g regexp + // Manually set the index so as to pick up overlapping matches. + // Stop when we get a match that ends at the string end, since no + // coercible string can be more right-ward without the same terminus. + let next; + while ((next = re[t.COERCERTL].exec(version)) && + (!match || match.index + match[0].length !== version.length) + ) { + if (!match || + next.index + next[0].length !== match.index + match[0].length) { + match = next; + } + re[t.COERCERTL].lastIndex = next.index + next[1].length + next[2].length; + } + // leave it in a clean state + re[t.COERCERTL].lastIndex = -1; + } + + if (match === null) { + return null + } + + return parse(`${match[2]}.${match[3] || '0'}.${match[4] || '0'}`, options) + }; + coerce_1 = coerce; + return coerce_1; +} + +var iterator; +var hasRequiredIterator; + +function requireIterator () { + if (hasRequiredIterator) return iterator; + hasRequiredIterator = 1; + iterator = function (Yallist) { + Yallist.prototype[Symbol.iterator] = function* () { + for (let walker = this.head; walker; walker = walker.next) { + yield walker.value; + } + }; + }; + return iterator; +} + +var yallist; +var hasRequiredYallist; + +function requireYallist () { + if (hasRequiredYallist) return yallist; + hasRequiredYallist = 1; + yallist = Yallist; + + Yallist.Node = Node; + Yallist.create = Yallist; + + function Yallist (list) { + var self = this; + if (!(self instanceof Yallist)) { + self = new Yallist(); + } + + self.tail = null; + self.head = null; + self.length = 0; + + if (list && typeof list.forEach === 'function') { + list.forEach(function (item) { + self.push(item); + }); + } else if (arguments.length > 0) { + for (var i = 0, l = arguments.length; i < l; i++) { + self.push(arguments[i]); + } + } + + return self + } + + Yallist.prototype.removeNode = function (node) { + if (node.list !== this) { + throw new Error('removing node which does not belong to this list') + } + + var next = node.next; + var prev = node.prev; + + if (next) { + next.prev = prev; + } + + if (prev) { + prev.next = next; + } + + if (node === this.head) { + this.head = next; + } + if (node === this.tail) { + this.tail = prev; + } + + node.list.length--; + node.next = null; + node.prev = null; + node.list = null; + + return next + }; + + Yallist.prototype.unshiftNode = function (node) { + if (node === this.head) { + return + } + + if (node.list) { + node.list.removeNode(node); + } + + var head = this.head; + node.list = this; + node.next = head; + if (head) { + head.prev = node; + } + + this.head = node; + if (!this.tail) { + this.tail = node; + } + this.length++; + }; + + Yallist.prototype.pushNode = function (node) { + if (node === this.tail) { + return + } + + if (node.list) { + node.list.removeNode(node); + } + + var tail = this.tail; + node.list = this; + node.prev = tail; + if (tail) { + tail.next = node; + } + + this.tail = node; + if (!this.head) { + this.head = node; + } + this.length++; + }; + + Yallist.prototype.push = function () { + for (var i = 0, l = arguments.length; i < l; i++) { + push(this, arguments[i]); + } + return this.length + }; + + Yallist.prototype.unshift = function () { + for (var i = 0, l = arguments.length; i < l; i++) { + unshift(this, arguments[i]); + } + return this.length + }; + + Yallist.prototype.pop = function () { + if (!this.tail) { + return undefined + } + + var res = this.tail.value; + this.tail = this.tail.prev; + if (this.tail) { + this.tail.next = null; + } else { + this.head = null; + } + this.length--; + return res + }; + + Yallist.prototype.shift = function () { + if (!this.head) { + return undefined + } + + var res = this.head.value; + this.head = this.head.next; + if (this.head) { + this.head.prev = null; + } else { + this.tail = null; + } + this.length--; + return res + }; + + Yallist.prototype.forEach = function (fn, thisp) { + thisp = thisp || this; + for (var walker = this.head, i = 0; walker !== null; i++) { + fn.call(thisp, walker.value, i, this); + walker = walker.next; + } + }; + + Yallist.prototype.forEachReverse = function (fn, thisp) { + thisp = thisp || this; + for (var walker = this.tail, i = this.length - 1; walker !== null; i--) { + fn.call(thisp, walker.value, i, this); + walker = walker.prev; + } + }; + + Yallist.prototype.get = function (n) { + for (var i = 0, walker = this.head; walker !== null && i < n; i++) { + // abort out of the list early if we hit a cycle + walker = walker.next; + } + if (i === n && walker !== null) { + return walker.value + } + }; + + Yallist.prototype.getReverse = function (n) { + for (var i = 0, walker = this.tail; walker !== null && i < n; i++) { + // abort out of the list early if we hit a cycle + walker = walker.prev; + } + if (i === n && walker !== null) { + return walker.value + } + }; + + Yallist.prototype.map = function (fn, thisp) { + thisp = thisp || this; + var res = new Yallist(); + for (var walker = this.head; walker !== null;) { + res.push(fn.call(thisp, walker.value, this)); + walker = walker.next; + } + return res + }; + + Yallist.prototype.mapReverse = function (fn, thisp) { + thisp = thisp || this; + var res = new Yallist(); + for (var walker = this.tail; walker !== null;) { + res.push(fn.call(thisp, walker.value, this)); + walker = walker.prev; + } + return res + }; + + Yallist.prototype.reduce = function (fn, initial) { + var acc; + var walker = this.head; + if (arguments.length > 1) { + acc = initial; + } else if (this.head) { + walker = this.head.next; + acc = this.head.value; + } else { + throw new TypeError('Reduce of empty list with no initial value') + } + + for (var i = 0; walker !== null; i++) { + acc = fn(acc, walker.value, i); + walker = walker.next; + } + + return acc + }; + + Yallist.prototype.reduceReverse = function (fn, initial) { + var acc; + var walker = this.tail; + if (arguments.length > 1) { + acc = initial; + } else if (this.tail) { + walker = this.tail.prev; + acc = this.tail.value; + } else { + throw new TypeError('Reduce of empty list with no initial value') + } + + for (var i = this.length - 1; walker !== null; i--) { + acc = fn(acc, walker.value, i); + walker = walker.prev; + } + + return acc + }; + + Yallist.prototype.toArray = function () { + var arr = new Array(this.length); + for (var i = 0, walker = this.head; walker !== null; i++) { + arr[i] = walker.value; + walker = walker.next; + } + return arr + }; + + Yallist.prototype.toArrayReverse = function () { + var arr = new Array(this.length); + for (var i = 0, walker = this.tail; walker !== null; i++) { + arr[i] = walker.value; + walker = walker.prev; + } + return arr + }; + + Yallist.prototype.slice = function (from, to) { + to = to || this.length; + if (to < 0) { + to += this.length; + } + from = from || 0; + if (from < 0) { + from += this.length; + } + var ret = new Yallist(); + if (to < from || to < 0) { + return ret + } + if (from < 0) { + from = 0; + } + if (to > this.length) { + to = this.length; + } + for (var i = 0, walker = this.head; walker !== null && i < from; i++) { + walker = walker.next; + } + for (; walker !== null && i < to; i++, walker = walker.next) { + ret.push(walker.value); + } + return ret + }; + + Yallist.prototype.sliceReverse = function (from, to) { + to = to || this.length; + if (to < 0) { + to += this.length; + } + from = from || 0; + if (from < 0) { + from += this.length; + } + var ret = new Yallist(); + if (to < from || to < 0) { + return ret + } + if (from < 0) { + from = 0; + } + if (to > this.length) { + to = this.length; + } + for (var i = this.length, walker = this.tail; walker !== null && i > to; i--) { + walker = walker.prev; + } + for (; walker !== null && i > from; i--, walker = walker.prev) { + ret.push(walker.value); + } + return ret + }; + + Yallist.prototype.splice = function (start, deleteCount, ...nodes) { + if (start > this.length) { + start = this.length - 1; + } + if (start < 0) { + start = this.length + start; + } + + for (var i = 0, walker = this.head; walker !== null && i < start; i++) { + walker = walker.next; + } + + var ret = []; + for (var i = 0; walker && i < deleteCount; i++) { + ret.push(walker.value); + walker = this.removeNode(walker); + } + if (walker === null) { + walker = this.tail; + } + + if (walker !== this.head && walker !== this.tail) { + walker = walker.prev; + } + + for (var i = 0; i < nodes.length; i++) { + walker = insert(this, walker, nodes[i]); + } + return ret; + }; + + Yallist.prototype.reverse = function () { + var head = this.head; + var tail = this.tail; + for (var walker = head; walker !== null; walker = walker.prev) { + var p = walker.prev; + walker.prev = walker.next; + walker.next = p; + } + this.head = tail; + this.tail = head; + return this + }; + + function insert (self, node, value) { + var inserted = node === self.head ? + new Node(value, null, node, self) : + new Node(value, node, node.next, self); + + if (inserted.next === null) { + self.tail = inserted; + } + if (inserted.prev === null) { + self.head = inserted; + } + + self.length++; + + return inserted + } + + function push (self, item) { + self.tail = new Node(item, self.tail, null, self); + if (!self.head) { + self.head = self.tail; + } + self.length++; + } + + function unshift (self, item) { + self.head = new Node(item, null, self.head, self); + if (!self.tail) { + self.tail = self.head; + } + self.length++; + } + + function Node (value, prev, next, list) { + if (!(this instanceof Node)) { + return new Node(value, prev, next, list) + } + + this.list = list; + this.value = value; + + if (prev) { + prev.next = this; + this.prev = prev; + } else { + this.prev = null; + } + + if (next) { + next.prev = this; + this.next = next; + } else { + this.next = null; + } + } + + try { + // add if support for Symbol.iterator is present + requireIterator()(Yallist); + } catch (er) {} + return yallist; +} + +var lruCache; +var hasRequiredLruCache; + +function requireLruCache () { + if (hasRequiredLruCache) return lruCache; + hasRequiredLruCache = 1; + + // A linked list to keep track of recently-used-ness + const Yallist = requireYallist(); + + const MAX = Symbol('max'); + const LENGTH = Symbol('length'); + const LENGTH_CALCULATOR = Symbol('lengthCalculator'); + const ALLOW_STALE = Symbol('allowStale'); + const MAX_AGE = Symbol('maxAge'); + const DISPOSE = Symbol('dispose'); + const NO_DISPOSE_ON_SET = Symbol('noDisposeOnSet'); + const LRU_LIST = Symbol('lruList'); + const CACHE = Symbol('cache'); + const UPDATE_AGE_ON_GET = Symbol('updateAgeOnGet'); + + const naiveLength = () => 1; + + // lruList is a yallist where the head is the youngest + // item, and the tail is the oldest. the list contains the Hit + // objects as the entries. + // Each Hit object has a reference to its Yallist.Node. This + // never changes. + // + // cache is a Map (or PseudoMap) that matches the keys to + // the Yallist.Node object. + class LRUCache { + constructor (options) { + if (typeof options === 'number') + options = { max: options }; + + if (!options) + options = {}; + + if (options.max && (typeof options.max !== 'number' || options.max < 0)) + throw new TypeError('max must be a non-negative number') + // Kind of weird to have a default max of Infinity, but oh well. + this[MAX] = options.max || Infinity; + + const lc = options.length || naiveLength; + this[LENGTH_CALCULATOR] = (typeof lc !== 'function') ? naiveLength : lc; + this[ALLOW_STALE] = options.stale || false; + if (options.maxAge && typeof options.maxAge !== 'number') + throw new TypeError('maxAge must be a number') + this[MAX_AGE] = options.maxAge || 0; + this[DISPOSE] = options.dispose; + this[NO_DISPOSE_ON_SET] = options.noDisposeOnSet || false; + this[UPDATE_AGE_ON_GET] = options.updateAgeOnGet || false; + this.reset(); + } + + // resize the cache when the max changes. + set max (mL) { + if (typeof mL !== 'number' || mL < 0) + throw new TypeError('max must be a non-negative number') + + this[MAX] = mL || Infinity; + trim(this); + } + get max () { + return this[MAX] + } + + set allowStale (allowStale) { + this[ALLOW_STALE] = !!allowStale; + } + get allowStale () { + return this[ALLOW_STALE] + } + + set maxAge (mA) { + if (typeof mA !== 'number') + throw new TypeError('maxAge must be a non-negative number') + + this[MAX_AGE] = mA; + trim(this); + } + get maxAge () { + return this[MAX_AGE] + } + + // resize the cache when the lengthCalculator changes. + set lengthCalculator (lC) { + if (typeof lC !== 'function') + lC = naiveLength; + + if (lC !== this[LENGTH_CALCULATOR]) { + this[LENGTH_CALCULATOR] = lC; + this[LENGTH] = 0; + this[LRU_LIST].forEach(hit => { + hit.length = this[LENGTH_CALCULATOR](hit.value, hit.key); + this[LENGTH] += hit.length; + }); + } + trim(this); + } + get lengthCalculator () { return this[LENGTH_CALCULATOR] } + + get length () { return this[LENGTH] } + get itemCount () { return this[LRU_LIST].length } + + rforEach (fn, thisp) { + thisp = thisp || this; + for (let walker = this[LRU_LIST].tail; walker !== null;) { + const prev = walker.prev; + forEachStep(this, fn, walker, thisp); + walker = prev; + } + } + + forEach (fn, thisp) { + thisp = thisp || this; + for (let walker = this[LRU_LIST].head; walker !== null;) { + const next = walker.next; + forEachStep(this, fn, walker, thisp); + walker = next; + } + } + + keys () { + return this[LRU_LIST].toArray().map(k => k.key) + } + + values () { + return this[LRU_LIST].toArray().map(k => k.value) + } + + reset () { + if (this[DISPOSE] && + this[LRU_LIST] && + this[LRU_LIST].length) { + this[LRU_LIST].forEach(hit => this[DISPOSE](hit.key, hit.value)); + } + + this[CACHE] = new Map(); // hash of items by key + this[LRU_LIST] = new Yallist(); // list of items in order of use recency + this[LENGTH] = 0; // length of items in the list + } + + dump () { + return this[LRU_LIST].map(hit => + isStale(this, hit) ? false : { + k: hit.key, + v: hit.value, + e: hit.now + (hit.maxAge || 0) + }).toArray().filter(h => h) + } + + dumpLru () { + return this[LRU_LIST] + } + + set (key, value, maxAge) { + maxAge = maxAge || this[MAX_AGE]; + + if (maxAge && typeof maxAge !== 'number') + throw new TypeError('maxAge must be a number') + + const now = maxAge ? Date.now() : 0; + const len = this[LENGTH_CALCULATOR](value, key); + + if (this[CACHE].has(key)) { + if (len > this[MAX]) { + del(this, this[CACHE].get(key)); + return false + } + + const node = this[CACHE].get(key); + const item = node.value; + + // dispose of the old one before overwriting + // split out into 2 ifs for better coverage tracking + if (this[DISPOSE]) { + if (!this[NO_DISPOSE_ON_SET]) + this[DISPOSE](key, item.value); + } + + item.now = now; + item.maxAge = maxAge; + item.value = value; + this[LENGTH] += len - item.length; + item.length = len; + this.get(key); + trim(this); + return true + } + + const hit = new Entry(key, value, len, now, maxAge); + + // oversized objects fall out of cache automatically. + if (hit.length > this[MAX]) { + if (this[DISPOSE]) + this[DISPOSE](key, value); + + return false + } + + this[LENGTH] += hit.length; + this[LRU_LIST].unshift(hit); + this[CACHE].set(key, this[LRU_LIST].head); + trim(this); + return true + } + + has (key) { + if (!this[CACHE].has(key)) return false + const hit = this[CACHE].get(key).value; + return !isStale(this, hit) + } + + get (key) { + return get(this, key, true) + } + + peek (key) { + return get(this, key, false) + } + + pop () { + const node = this[LRU_LIST].tail; + if (!node) + return null + + del(this, node); + return node.value + } + + del (key) { + del(this, this[CACHE].get(key)); + } + + load (arr) { + // reset the cache + this.reset(); + + const now = Date.now(); + // A previous serialized cache has the most recent items first + for (let l = arr.length - 1; l >= 0; l--) { + const hit = arr[l]; + const expiresAt = hit.e || 0; + if (expiresAt === 0) + // the item was created without expiration in a non aged cache + this.set(hit.k, hit.v); + else { + const maxAge = expiresAt - now; + // dont add already expired items + if (maxAge > 0) { + this.set(hit.k, hit.v, maxAge); + } + } + } + } + + prune () { + this[CACHE].forEach((value, key) => get(this, key, false)); + } + } + + const get = (self, key, doUse) => { + const node = self[CACHE].get(key); + if (node) { + const hit = node.value; + if (isStale(self, hit)) { + del(self, node); + if (!self[ALLOW_STALE]) + return undefined + } else { + if (doUse) { + if (self[UPDATE_AGE_ON_GET]) + node.value.now = Date.now(); + self[LRU_LIST].unshiftNode(node); + } + } + return hit.value + } + }; + + const isStale = (self, hit) => { + if (!hit || (!hit.maxAge && !self[MAX_AGE])) + return false + + const diff = Date.now() - hit.now; + return hit.maxAge ? diff > hit.maxAge + : self[MAX_AGE] && (diff > self[MAX_AGE]) + }; + + const trim = self => { + if (self[LENGTH] > self[MAX]) { + for (let walker = self[LRU_LIST].tail; + self[LENGTH] > self[MAX] && walker !== null;) { + // We know that we're about to delete this one, and also + // what the next least recently used key will be, so just + // go ahead and set it now. + const prev = walker.prev; + del(self, walker); + walker = prev; + } + } + }; + + const del = (self, node) => { + if (node) { + const hit = node.value; + if (self[DISPOSE]) + self[DISPOSE](hit.key, hit.value); + + self[LENGTH] -= hit.length; + self[CACHE].delete(hit.key); + self[LRU_LIST].removeNode(node); + } + }; + + class Entry { + constructor (key, value, length, now, maxAge) { + this.key = key; + this.value = value; + this.length = length; + this.now = now; + this.maxAge = maxAge || 0; + } + } + + const forEachStep = (self, fn, node, thisp) => { + let hit = node.value; + if (isStale(self, hit)) { + del(self, node); + if (!self[ALLOW_STALE]) + hit = undefined; + } + if (hit) + fn.call(thisp, hit.value, hit.key, self); + }; + + lruCache = LRUCache; + return lruCache; +} + +var range; +var hasRequiredRange; + +function requireRange () { + if (hasRequiredRange) return range; + hasRequiredRange = 1; + // hoisted class for cyclic dependency + class Range { + constructor (range, options) { + options = parseOptions(options); + + if (range instanceof Range) { + if ( + range.loose === !!options.loose && + range.includePrerelease === !!options.includePrerelease + ) { + return range + } else { + return new Range(range.raw, options) + } + } + + if (range instanceof Comparator) { + // just put it in the set and return + this.raw = range.value; + this.set = [[range]]; + this.format(); + return this + } + + this.options = options; + this.loose = !!options.loose; + this.includePrerelease = !!options.includePrerelease; + + // First reduce all whitespace as much as possible so we do not have to rely + // on potentially slow regexes like \s*. This is then stored and used for + // future error messages as well. + this.raw = range + .trim() + .split(/\s+/) + .join(' '); + + // First, split on || + this.set = this.raw + .split('||') + // map the range to a 2d array of comparators + .map(r => this.parseRange(r.trim())) + // throw out any comparator lists that are empty + // this generally means that it was not a valid range, which is allowed + // in loose mode, but will still throw if the WHOLE range is invalid. + .filter(c => c.length); + + if (!this.set.length) { + throw new TypeError(`Invalid SemVer Range: ${this.raw}`) + } + + // if we have any that are not the null set, throw out null sets. + if (this.set.length > 1) { + // keep the first one, in case they're all null sets + const first = this.set[0]; + this.set = this.set.filter(c => !isNullSet(c[0])); + if (this.set.length === 0) { + this.set = [first]; + } else if (this.set.length > 1) { + // if we have any that are *, then the range is just * + for (const c of this.set) { + if (c.length === 1 && isAny(c[0])) { + this.set = [c]; + break + } + } + } + } + + this.format(); + } + + format () { + this.range = this.set + .map((comps) => comps.join(' ').trim()) + .join('||') + .trim(); + return this.range + } + + toString () { + return this.range + } + + parseRange (range) { + // memoize range parsing for performance. + // this is a very hot path, and fully deterministic. + const memoOpts = + (this.options.includePrerelease && FLAG_INCLUDE_PRERELEASE) | + (this.options.loose && FLAG_LOOSE); + const memoKey = memoOpts + ':' + range; + const cached = cache.get(memoKey); + if (cached) { + return cached + } + + const loose = this.options.loose; + // `1.2.3 - 1.2.4` => `>=1.2.3 <=1.2.4` + const hr = loose ? re[t.HYPHENRANGELOOSE] : re[t.HYPHENRANGE]; + range = range.replace(hr, hyphenReplace(this.options.includePrerelease)); + debug('hyphen replace', range); + + // `> 1.2.3 < 1.2.5` => `>1.2.3 <1.2.5` + range = range.replace(re[t.COMPARATORTRIM], comparatorTrimReplace); + debug('comparator trim', range); + + // `~ 1.2.3` => `~1.2.3` + range = range.replace(re[t.TILDETRIM], tildeTrimReplace); + debug('tilde trim', range); + + // `^ 1.2.3` => `^1.2.3` + range = range.replace(re[t.CARETTRIM], caretTrimReplace); + debug('caret trim', range); + + // At this point, the range is completely trimmed and + // ready to be split into comparators. + + let rangeList = range + .split(' ') + .map(comp => parseComparator(comp, this.options)) + .join(' ') + .split(/\s+/) + // >=0.0.0 is equivalent to * + .map(comp => replaceGTE0(comp, this.options)); + + if (loose) { + // in loose mode, throw out any that are not valid comparators + rangeList = rangeList.filter(comp => { + debug('loose invalid filter', comp, this.options); + return !!comp.match(re[t.COMPARATORLOOSE]) + }); + } + debug('range list', rangeList); + + // if any comparators are the null set, then replace with JUST null set + // if more than one comparator, remove any * comparators + // also, don't include the same comparator more than once + const rangeMap = new Map(); + const comparators = rangeList.map(comp => new Comparator(comp, this.options)); + for (const comp of comparators) { + if (isNullSet(comp)) { + return [comp] + } + rangeMap.set(comp.value, comp); + } + if (rangeMap.size > 1 && rangeMap.has('')) { + rangeMap.delete(''); + } + + const result = [...rangeMap.values()]; + cache.set(memoKey, result); + return result + } + + intersects (range, options) { + if (!(range instanceof Range)) { + throw new TypeError('a Range is required') + } + + return this.set.some((thisComparators) => { + return ( + isSatisfiable(thisComparators, options) && + range.set.some((rangeComparators) => { + return ( + isSatisfiable(rangeComparators, options) && + thisComparators.every((thisComparator) => { + return rangeComparators.every((rangeComparator) => { + return thisComparator.intersects(rangeComparator, options) + }) + }) + ) + }) + ) + }) + } + + // if ANY of the sets match ALL of its comparators, then pass + test (version) { + if (!version) { + return false + } + + if (typeof version === 'string') { + try { + version = new SemVer(version, this.options); + } catch (er) { + return false + } + } + + for (let i = 0; i < this.set.length; i++) { + if (testSet(this.set[i], version, this.options)) { + return true + } + } + return false + } + } + + range = Range; + + const LRU = requireLruCache(); + const cache = new LRU({ max: 1000 }); + + const parseOptions = requireParseOptions(); + const Comparator = requireComparator(); + const debug = requireDebug(); + const SemVer = requireSemver$1(); + const { + safeRe: re, + t, + comparatorTrimReplace, + tildeTrimReplace, + caretTrimReplace, + } = requireRe(); + const { FLAG_INCLUDE_PRERELEASE, FLAG_LOOSE } = requireConstants(); + + const isNullSet = c => c.value === '<0.0.0-0'; + const isAny = c => c.value === ''; + + // take a set of comparators and determine whether there + // exists a version which can satisfy it + const isSatisfiable = (comparators, options) => { + let result = true; + const remainingComparators = comparators.slice(); + let testComparator = remainingComparators.pop(); + + while (result && remainingComparators.length) { + result = remainingComparators.every((otherComparator) => { + return testComparator.intersects(otherComparator, options) + }); + + testComparator = remainingComparators.pop(); + } + + return result + }; + + // comprised of xranges, tildes, stars, and gtlt's at this point. + // already replaced the hyphen ranges + // turn into a set of JUST comparators. + const parseComparator = (comp, options) => { + debug('comp', comp, options); + comp = replaceCarets(comp, options); + debug('caret', comp); + comp = replaceTildes(comp, options); + debug('tildes', comp); + comp = replaceXRanges(comp, options); + debug('xrange', comp); + comp = replaceStars(comp, options); + debug('stars', comp); + return comp + }; + + const isX = id => !id || id.toLowerCase() === 'x' || id === '*'; + + // ~, ~> --> * (any, kinda silly) + // ~2, ~2.x, ~2.x.x, ~>2, ~>2.x ~>2.x.x --> >=2.0.0 <3.0.0-0 + // ~2.0, ~2.0.x, ~>2.0, ~>2.0.x --> >=2.0.0 <2.1.0-0 + // ~1.2, ~1.2.x, ~>1.2, ~>1.2.x --> >=1.2.0 <1.3.0-0 + // ~1.2.3, ~>1.2.3 --> >=1.2.3 <1.3.0-0 + // ~1.2.0, ~>1.2.0 --> >=1.2.0 <1.3.0-0 + // ~0.0.1 --> >=0.0.1 <0.1.0-0 + const replaceTildes = (comp, options) => { + return comp + .trim() + .split(/\s+/) + .map((c) => replaceTilde(c, options)) + .join(' ') + }; + + const replaceTilde = (comp, options) => { + const r = options.loose ? re[t.TILDELOOSE] : re[t.TILDE]; + return comp.replace(r, (_, M, m, p, pr) => { + debug('tilde', comp, _, M, m, p, pr); + let ret; + + if (isX(M)) { + ret = ''; + } else if (isX(m)) { + ret = `>=${M}.0.0 <${+M + 1}.0.0-0`; + } else if (isX(p)) { + // ~1.2 == >=1.2.0 <1.3.0-0 + ret = `>=${M}.${m}.0 <${M}.${+m + 1}.0-0`; + } else if (pr) { + debug('replaceTilde pr', pr); + ret = `>=${M}.${m}.${p}-${pr + } <${M}.${+m + 1}.0-0`; + } else { + // ~1.2.3 == >=1.2.3 <1.3.0-0 + ret = `>=${M}.${m}.${p + } <${M}.${+m + 1}.0-0`; + } + + debug('tilde return', ret); + return ret + }) + }; + + // ^ --> * (any, kinda silly) + // ^2, ^2.x, ^2.x.x --> >=2.0.0 <3.0.0-0 + // ^2.0, ^2.0.x --> >=2.0.0 <3.0.0-0 + // ^1.2, ^1.2.x --> >=1.2.0 <2.0.0-0 + // ^1.2.3 --> >=1.2.3 <2.0.0-0 + // ^1.2.0 --> >=1.2.0 <2.0.0-0 + // ^0.0.1 --> >=0.0.1 <0.0.2-0 + // ^0.1.0 --> >=0.1.0 <0.2.0-0 + const replaceCarets = (comp, options) => { + return comp + .trim() + .split(/\s+/) + .map((c) => replaceCaret(c, options)) + .join(' ') + }; + + const replaceCaret = (comp, options) => { + debug('caret', comp, options); + const r = options.loose ? re[t.CARETLOOSE] : re[t.CARET]; + const z = options.includePrerelease ? '-0' : ''; + return comp.replace(r, (_, M, m, p, pr) => { + debug('caret', comp, _, M, m, p, pr); + let ret; + + if (isX(M)) { + ret = ''; + } else if (isX(m)) { + ret = `>=${M}.0.0${z} <${+M + 1}.0.0-0`; + } else if (isX(p)) { + if (M === '0') { + ret = `>=${M}.${m}.0${z} <${M}.${+m + 1}.0-0`; + } else { + ret = `>=${M}.${m}.0${z} <${+M + 1}.0.0-0`; + } + } else if (pr) { + debug('replaceCaret pr', pr); + if (M === '0') { + if (m === '0') { + ret = `>=${M}.${m}.${p}-${pr + } <${M}.${m}.${+p + 1}-0`; + } else { + ret = `>=${M}.${m}.${p}-${pr + } <${M}.${+m + 1}.0-0`; + } + } else { + ret = `>=${M}.${m}.${p}-${pr + } <${+M + 1}.0.0-0`; + } + } else { + debug('no pr'); + if (M === '0') { + if (m === '0') { + ret = `>=${M}.${m}.${p + }${z} <${M}.${m}.${+p + 1}-0`; + } else { + ret = `>=${M}.${m}.${p + }${z} <${M}.${+m + 1}.0-0`; + } + } else { + ret = `>=${M}.${m}.${p + } <${+M + 1}.0.0-0`; + } + } + + debug('caret return', ret); + return ret + }) + }; + + const replaceXRanges = (comp, options) => { + debug('replaceXRanges', comp, options); + return comp + .split(/\s+/) + .map((c) => replaceXRange(c, options)) + .join(' ') + }; + + const replaceXRange = (comp, options) => { + comp = comp.trim(); + const r = options.loose ? re[t.XRANGELOOSE] : re[t.XRANGE]; + return comp.replace(r, (ret, gtlt, M, m, p, pr) => { + debug('xRange', comp, ret, gtlt, M, m, p, pr); + const xM = isX(M); + const xm = xM || isX(m); + const xp = xm || isX(p); + const anyX = xp; + + if (gtlt === '=' && anyX) { + gtlt = ''; + } + + // if we're including prereleases in the match, then we need + // to fix this to -0, the lowest possible prerelease value + pr = options.includePrerelease ? '-0' : ''; + + if (xM) { + if (gtlt === '>' || gtlt === '<') { + // nothing is allowed + ret = '<0.0.0-0'; + } else { + // nothing is forbidden + ret = '*'; + } + } else if (gtlt && anyX) { + // we know patch is an x, because we have any x at all. + // replace X with 0 + if (xm) { + m = 0; + } + p = 0; + + if (gtlt === '>') { + // >1 => >=2.0.0 + // >1.2 => >=1.3.0 + gtlt = '>='; + if (xm) { + M = +M + 1; + m = 0; + p = 0; + } else { + m = +m + 1; + p = 0; + } + } else if (gtlt === '<=') { + // <=0.7.x is actually <0.8.0, since any 0.7.x should + // pass. Similarly, <=7.x is actually <8.0.0, etc. + gtlt = '<'; + if (xm) { + M = +M + 1; + } else { + m = +m + 1; + } + } + + if (gtlt === '<') { + pr = '-0'; + } + + ret = `${gtlt + M}.${m}.${p}${pr}`; + } else if (xm) { + ret = `>=${M}.0.0${pr} <${+M + 1}.0.0-0`; + } else if (xp) { + ret = `>=${M}.${m}.0${pr + } <${M}.${+m + 1}.0-0`; + } + + debug('xRange return', ret); + + return ret + }) + }; + + // Because * is AND-ed with everything else in the comparator, + // and '' means "any version", just remove the *s entirely. + const replaceStars = (comp, options) => { + debug('replaceStars', comp, options); + // Looseness is ignored here. star is always as loose as it gets! + return comp + .trim() + .replace(re[t.STAR], '') + }; + + const replaceGTE0 = (comp, options) => { + debug('replaceGTE0', comp, options); + return comp + .trim() + .replace(re[options.includePrerelease ? t.GTE0PRE : t.GTE0], '') + }; + + // This function is passed to string.replace(re[t.HYPHENRANGE]) + // M, m, patch, prerelease, build + // 1.2 - 3.4.5 => >=1.2.0 <=3.4.5 + // 1.2.3 - 3.4 => >=1.2.0 <3.5.0-0 Any 3.4.x will do + // 1.2 - 3.4 => >=1.2.0 <3.5.0-0 + const hyphenReplace = incPr => ($0, + from, fM, fm, fp, fpr, fb, + to, tM, tm, tp, tpr, tb) => { + if (isX(fM)) { + from = ''; + } else if (isX(fm)) { + from = `>=${fM}.0.0${incPr ? '-0' : ''}`; + } else if (isX(fp)) { + from = `>=${fM}.${fm}.0${incPr ? '-0' : ''}`; + } else if (fpr) { + from = `>=${from}`; + } else { + from = `>=${from}${incPr ? '-0' : ''}`; + } + + if (isX(tM)) { + to = ''; + } else if (isX(tm)) { + to = `<${+tM + 1}.0.0-0`; + } else if (isX(tp)) { + to = `<${tM}.${+tm + 1}.0-0`; + } else if (tpr) { + to = `<=${tM}.${tm}.${tp}-${tpr}`; + } else if (incPr) { + to = `<${tM}.${tm}.${+tp + 1}-0`; + } else { + to = `<=${to}`; + } + + return `${from} ${to}`.trim() + }; + + const testSet = (set, version, options) => { + for (let i = 0; i < set.length; i++) { + if (!set[i].test(version)) { + return false + } + } + + if (version.prerelease.length && !options.includePrerelease) { + // Find the set of versions that are allowed to have prereleases + // For example, ^1.2.3-pr.1 desugars to >=1.2.3-pr.1 <2.0.0 + // That should allow `1.2.3-pr.2` to pass. + // However, `1.2.4-alpha.notready` should NOT be allowed, + // even though it's within the range set by the comparators. + for (let i = 0; i < set.length; i++) { + debug(set[i].semver); + if (set[i].semver === Comparator.ANY) { + continue + } + + if (set[i].semver.prerelease.length > 0) { + const allowed = set[i].semver; + if (allowed.major === version.major && + allowed.minor === version.minor && + allowed.patch === version.patch) { + return true + } + } + } + + // Version has a -pre, but it's not one of the ones we like. + return false + } + + return true + }; + return range; +} + +var comparator; +var hasRequiredComparator; + +function requireComparator () { + if (hasRequiredComparator) return comparator; + hasRequiredComparator = 1; + const ANY = Symbol('SemVer ANY'); + // hoisted class for cyclic dependency + class Comparator { + static get ANY () { + return ANY + } + + constructor (comp, options) { + options = parseOptions(options); + + if (comp instanceof Comparator) { + if (comp.loose === !!options.loose) { + return comp + } else { + comp = comp.value; + } + } + + comp = comp.trim().split(/\s+/).join(' '); + debug('comparator', comp, options); + this.options = options; + this.loose = !!options.loose; + this.parse(comp); + + if (this.semver === ANY) { + this.value = ''; + } else { + this.value = this.operator + this.semver.version; + } + + debug('comp', this); + } + + parse (comp) { + const r = this.options.loose ? re[t.COMPARATORLOOSE] : re[t.COMPARATOR]; + const m = comp.match(r); + + if (!m) { + throw new TypeError(`Invalid comparator: ${comp}`) + } + + this.operator = m[1] !== undefined ? m[1] : ''; + if (this.operator === '=') { + this.operator = ''; + } + + // if it literally is just '>' or '' then allow anything. + if (!m[2]) { + this.semver = ANY; + } else { + this.semver = new SemVer(m[2], this.options.loose); + } + } + + toString () { + return this.value + } + + test (version) { + debug('Comparator.test', version, this.options.loose); + + if (this.semver === ANY || version === ANY) { + return true + } + + if (typeof version === 'string') { + try { + version = new SemVer(version, this.options); + } catch (er) { + return false + } + } + + return cmp(version, this.operator, this.semver, this.options) + } + + intersects (comp, options) { + if (!(comp instanceof Comparator)) { + throw new TypeError('a Comparator is required') + } + + if (this.operator === '') { + if (this.value === '') { + return true + } + return new Range(comp.value, options).test(this.value) + } else if (comp.operator === '') { + if (comp.value === '') { + return true + } + return new Range(this.value, options).test(comp.semver) + } + + options = parseOptions(options); + + // Special cases where nothing can possibly be lower + if (options.includePrerelease && + (this.value === '<0.0.0-0' || comp.value === '<0.0.0-0')) { + return false + } + if (!options.includePrerelease && + (this.value.startsWith('<0.0.0') || comp.value.startsWith('<0.0.0'))) { + return false + } + + // Same direction increasing (> or >=) + if (this.operator.startsWith('>') && comp.operator.startsWith('>')) { + return true + } + // Same direction decreasing (< or <=) + if (this.operator.startsWith('<') && comp.operator.startsWith('<')) { + return true + } + // same SemVer and both sides are inclusive (<= or >=) + if ( + (this.semver.version === comp.semver.version) && + this.operator.includes('=') && comp.operator.includes('=')) { + return true + } + // opposite directions less than + if (cmp(this.semver, '<', comp.semver, options) && + this.operator.startsWith('>') && comp.operator.startsWith('<')) { + return true + } + // opposite directions greater than + if (cmp(this.semver, '>', comp.semver, options) && + this.operator.startsWith('<') && comp.operator.startsWith('>')) { + return true + } + return false + } + } + + comparator = Comparator; + + const parseOptions = requireParseOptions(); + const { safeRe: re, t } = requireRe(); + const cmp = requireCmp(); + const debug = requireDebug(); + const SemVer = requireSemver$1(); + const Range = requireRange(); + return comparator; +} + +var satisfies_1; +var hasRequiredSatisfies; + +function requireSatisfies () { + if (hasRequiredSatisfies) return satisfies_1; + hasRequiredSatisfies = 1; + const Range = requireRange(); + const satisfies = (version, range, options) => { + try { + range = new Range(range, options); + } catch (er) { + return false + } + return range.test(version) + }; + satisfies_1 = satisfies; + return satisfies_1; +} + +var toComparators_1; +var hasRequiredToComparators; + +function requireToComparators () { + if (hasRequiredToComparators) return toComparators_1; + hasRequiredToComparators = 1; + const Range = requireRange(); + + // Mostly just for testing and legacy API reasons + const toComparators = (range, options) => + new Range(range, options).set + .map(comp => comp.map(c => c.value).join(' ').trim().split(' ')); + + toComparators_1 = toComparators; + return toComparators_1; +} + +var maxSatisfying_1; +var hasRequiredMaxSatisfying; + +function requireMaxSatisfying () { + if (hasRequiredMaxSatisfying) return maxSatisfying_1; + hasRequiredMaxSatisfying = 1; + const SemVer = requireSemver$1(); + const Range = requireRange(); + + const maxSatisfying = (versions, range, options) => { + let max = null; + let maxSV = null; + let rangeObj = null; + try { + rangeObj = new Range(range, options); + } catch (er) { + return null + } + versions.forEach((v) => { + if (rangeObj.test(v)) { + // satisfies(v, range, options) + if (!max || maxSV.compare(v) === -1) { + // compare(max, v, true) + max = v; + maxSV = new SemVer(max, options); + } + } + }); + return max + }; + maxSatisfying_1 = maxSatisfying; + return maxSatisfying_1; +} + +var minSatisfying_1; +var hasRequiredMinSatisfying; + +function requireMinSatisfying () { + if (hasRequiredMinSatisfying) return minSatisfying_1; + hasRequiredMinSatisfying = 1; + const SemVer = requireSemver$1(); + const Range = requireRange(); + const minSatisfying = (versions, range, options) => { + let min = null; + let minSV = null; + let rangeObj = null; + try { + rangeObj = new Range(range, options); + } catch (er) { + return null + } + versions.forEach((v) => { + if (rangeObj.test(v)) { + // satisfies(v, range, options) + if (!min || minSV.compare(v) === 1) { + // compare(min, v, true) + min = v; + minSV = new SemVer(min, options); + } + } + }); + return min + }; + minSatisfying_1 = minSatisfying; + return minSatisfying_1; +} + +var minVersion_1; +var hasRequiredMinVersion; + +function requireMinVersion () { + if (hasRequiredMinVersion) return minVersion_1; + hasRequiredMinVersion = 1; + const SemVer = requireSemver$1(); + const Range = requireRange(); + const gt = requireGt(); + + const minVersion = (range, loose) => { + range = new Range(range, loose); + + let minver = new SemVer('0.0.0'); + if (range.test(minver)) { + return minver + } + + minver = new SemVer('0.0.0-0'); + if (range.test(minver)) { + return minver + } + + minver = null; + for (let i = 0; i < range.set.length; ++i) { + const comparators = range.set[i]; + + let setMin = null; + comparators.forEach((comparator) => { + // Clone to avoid manipulating the comparator's semver object. + const compver = new SemVer(comparator.semver.version); + switch (comparator.operator) { + case '>': + if (compver.prerelease.length === 0) { + compver.patch++; + } else { + compver.prerelease.push(0); + } + compver.raw = compver.format(); + /* fallthrough */ + case '': + case '>=': + if (!setMin || gt(compver, setMin)) { + setMin = compver; + } + break + case '<': + case '<=': + /* Ignore maximum versions */ + break + /* istanbul ignore next */ + default: + throw new Error(`Unexpected operation: ${comparator.operator}`) + } + }); + if (setMin && (!minver || gt(minver, setMin))) { + minver = setMin; + } + } + + if (minver && range.test(minver)) { + return minver + } + + return null + }; + minVersion_1 = minVersion; + return minVersion_1; +} + +var valid; +var hasRequiredValid; + +function requireValid () { + if (hasRequiredValid) return valid; + hasRequiredValid = 1; + const Range = requireRange(); + const validRange = (range, options) => { + try { + // Return '*' instead of '' so that truthiness works. + // This will throw if it's invalid anyway + return new Range(range, options).range || '*' + } catch (er) { + return null + } + }; + valid = validRange; + return valid; +} + +var outside_1; +var hasRequiredOutside; + +function requireOutside () { + if (hasRequiredOutside) return outside_1; + hasRequiredOutside = 1; + const SemVer = requireSemver$1(); + const Comparator = requireComparator(); + const { ANY } = Comparator; + const Range = requireRange(); + const satisfies = requireSatisfies(); + const gt = requireGt(); + const lt = requireLt(); + const lte = requireLte(); + const gte = requireGte(); + + const outside = (version, range, hilo, options) => { + version = new SemVer(version, options); + range = new Range(range, options); + + let gtfn, ltefn, ltfn, comp, ecomp; + switch (hilo) { + case '>': + gtfn = gt; + ltefn = lte; + ltfn = lt; + comp = '>'; + ecomp = '>='; + break + case '<': + gtfn = lt; + ltefn = gte; + ltfn = gt; + comp = '<'; + ecomp = '<='; + break + default: + throw new TypeError('Must provide a hilo val of "<" or ">"') + } + + // If it satisfies the range it is not outside + if (satisfies(version, range, options)) { + return false + } + + // From now on, variable terms are as if we're in "gtr" mode. + // but note that everything is flipped for the "ltr" function. + + for (let i = 0; i < range.set.length; ++i) { + const comparators = range.set[i]; + + let high = null; + let low = null; + + comparators.forEach((comparator) => { + if (comparator.semver === ANY) { + comparator = new Comparator('>=0.0.0'); + } + high = high || comparator; + low = low || comparator; + if (gtfn(comparator.semver, high.semver, options)) { + high = comparator; + } else if (ltfn(comparator.semver, low.semver, options)) { + low = comparator; + } + }); + + // If the edge version comparator has a operator then our version + // isn't outside it + if (high.operator === comp || high.operator === ecomp) { + return false + } + + // If the lowest version comparator has an operator and our version + // is less than it then it isn't higher than the range + if ((!low.operator || low.operator === comp) && + ltefn(version, low.semver)) { + return false + } else if (low.operator === ecomp && ltfn(version, low.semver)) { + return false + } + } + return true + }; + + outside_1 = outside; + return outside_1; +} + +var gtr_1; +var hasRequiredGtr; + +function requireGtr () { + if (hasRequiredGtr) return gtr_1; + hasRequiredGtr = 1; + // Determine if version is greater than all the versions possible in the range. + const outside = requireOutside(); + const gtr = (version, range, options) => outside(version, range, '>', options); + gtr_1 = gtr; + return gtr_1; +} + +var ltr_1; +var hasRequiredLtr; + +function requireLtr () { + if (hasRequiredLtr) return ltr_1; + hasRequiredLtr = 1; + const outside = requireOutside(); + // Determine if version is less than all the versions possible in the range + const ltr = (version, range, options) => outside(version, range, '<', options); + ltr_1 = ltr; + return ltr_1; +} + +var intersects_1; +var hasRequiredIntersects; + +function requireIntersects () { + if (hasRequiredIntersects) return intersects_1; + hasRequiredIntersects = 1; + const Range = requireRange(); + const intersects = (r1, r2, options) => { + r1 = new Range(r1, options); + r2 = new Range(r2, options); + return r1.intersects(r2, options) + }; + intersects_1 = intersects; + return intersects_1; +} + +var simplify; +var hasRequiredSimplify; + +function requireSimplify () { + if (hasRequiredSimplify) return simplify; + hasRequiredSimplify = 1; + // given a set of versions and a range, create a "simplified" range + // that includes the same versions that the original range does + // If the original range is shorter than the simplified one, return that. + const satisfies = requireSatisfies(); + const compare = requireCompare(); + simplify = (versions, range, options) => { + const set = []; + let first = null; + let prev = null; + const v = versions.sort((a, b) => compare(a, b, options)); + for (const version of v) { + const included = satisfies(version, range, options); + if (included) { + prev = version; + if (!first) { + first = version; + } + } else { + if (prev) { + set.push([first, prev]); + } + prev = null; + first = null; + } + } + if (first) { + set.push([first, null]); + } + + const ranges = []; + for (const [min, max] of set) { + if (min === max) { + ranges.push(min); + } else if (!max && min === v[0]) { + ranges.push('*'); + } else if (!max) { + ranges.push(`>=${min}`); + } else if (min === v[0]) { + ranges.push(`<=${max}`); + } else { + ranges.push(`${min} - ${max}`); + } + } + const simplified = ranges.join(' || '); + const original = typeof range.raw === 'string' ? range.raw : String(range); + return simplified.length < original.length ? simplified : range + }; + return simplify; +} + +var subset_1; +var hasRequiredSubset; + +function requireSubset () { + if (hasRequiredSubset) return subset_1; + hasRequiredSubset = 1; + const Range = requireRange(); + const Comparator = requireComparator(); + const { ANY } = Comparator; + const satisfies = requireSatisfies(); + const compare = requireCompare(); + + // Complex range `r1 || r2 || ...` is a subset of `R1 || R2 || ...` iff: + // - Every simple range `r1, r2, ...` is a null set, OR + // - Every simple range `r1, r2, ...` which is not a null set is a subset of + // some `R1, R2, ...` + // + // Simple range `c1 c2 ...` is a subset of simple range `C1 C2 ...` iff: + // - If c is only the ANY comparator + // - If C is only the ANY comparator, return true + // - Else if in prerelease mode, return false + // - else replace c with `[>=0.0.0]` + // - If C is only the ANY comparator + // - if in prerelease mode, return true + // - else replace C with `[>=0.0.0]` + // - Let EQ be the set of = comparators in c + // - If EQ is more than one, return true (null set) + // - Let GT be the highest > or >= comparator in c + // - Let LT be the lowest < or <= comparator in c + // - If GT and LT, and GT.semver > LT.semver, return true (null set) + // - If any C is a = range, and GT or LT are set, return false + // - If EQ + // - If GT, and EQ does not satisfy GT, return true (null set) + // - If LT, and EQ does not satisfy LT, return true (null set) + // - If EQ satisfies every C, return true + // - Else return false + // - If GT + // - If GT.semver is lower than any > or >= comp in C, return false + // - If GT is >=, and GT.semver does not satisfy every C, return false + // - If GT.semver has a prerelease, and not in prerelease mode + // - If no C has a prerelease and the GT.semver tuple, return false + // - If LT + // - If LT.semver is greater than any < or <= comp in C, return false + // - If LT is <=, and LT.semver does not satisfy every C, return false + // - If GT.semver has a prerelease, and not in prerelease mode + // - If no C has a prerelease and the LT.semver tuple, return false + // - Else return true + + const subset = (sub, dom, options = {}) => { + if (sub === dom) { + return true + } + + sub = new Range(sub, options); + dom = new Range(dom, options); + let sawNonNull = false; + + OUTER: for (const simpleSub of sub.set) { + for (const simpleDom of dom.set) { + const isSub = simpleSubset(simpleSub, simpleDom, options); + sawNonNull = sawNonNull || isSub !== null; + if (isSub) { + continue OUTER + } + } + // the null set is a subset of everything, but null simple ranges in + // a complex range should be ignored. so if we saw a non-null range, + // then we know this isn't a subset, but if EVERY simple range was null, + // then it is a subset. + if (sawNonNull) { + return false + } + } + return true + }; + + const minimumVersionWithPreRelease = [new Comparator('>=0.0.0-0')]; + const minimumVersion = [new Comparator('>=0.0.0')]; + + const simpleSubset = (sub, dom, options) => { + if (sub === dom) { + return true + } + + if (sub.length === 1 && sub[0].semver === ANY) { + if (dom.length === 1 && dom[0].semver === ANY) { + return true + } else if (options.includePrerelease) { + sub = minimumVersionWithPreRelease; + } else { + sub = minimumVersion; + } + } + + if (dom.length === 1 && dom[0].semver === ANY) { + if (options.includePrerelease) { + return true + } else { + dom = minimumVersion; + } + } + + const eqSet = new Set(); + let gt, lt; + for (const c of sub) { + if (c.operator === '>' || c.operator === '>=') { + gt = higherGT(gt, c, options); + } else if (c.operator === '<' || c.operator === '<=') { + lt = lowerLT(lt, c, options); + } else { + eqSet.add(c.semver); + } + } + + if (eqSet.size > 1) { + return null + } + + let gtltComp; + if (gt && lt) { + gtltComp = compare(gt.semver, lt.semver, options); + if (gtltComp > 0) { + return null + } else if (gtltComp === 0 && (gt.operator !== '>=' || lt.operator !== '<=')) { + return null + } + } + + // will iterate one or zero times + for (const eq of eqSet) { + if (gt && !satisfies(eq, String(gt), options)) { + return null + } + + if (lt && !satisfies(eq, String(lt), options)) { + return null + } + + for (const c of dom) { + if (!satisfies(eq, String(c), options)) { + return false + } + } + + return true + } + + let higher, lower; + let hasDomLT, hasDomGT; + // if the subset has a prerelease, we need a comparator in the superset + // with the same tuple and a prerelease, or it's not a subset + let needDomLTPre = lt && + !options.includePrerelease && + lt.semver.prerelease.length ? lt.semver : false; + let needDomGTPre = gt && + !options.includePrerelease && + gt.semver.prerelease.length ? gt.semver : false; + // exception: <1.2.3-0 is the same as <1.2.3 + if (needDomLTPre && needDomLTPre.prerelease.length === 1 && + lt.operator === '<' && needDomLTPre.prerelease[0] === 0) { + needDomLTPre = false; + } + + for (const c of dom) { + hasDomGT = hasDomGT || c.operator === '>' || c.operator === '>='; + hasDomLT = hasDomLT || c.operator === '<' || c.operator === '<='; + if (gt) { + if (needDomGTPre) { + if (c.semver.prerelease && c.semver.prerelease.length && + c.semver.major === needDomGTPre.major && + c.semver.minor === needDomGTPre.minor && + c.semver.patch === needDomGTPre.patch) { + needDomGTPre = false; + } + } + if (c.operator === '>' || c.operator === '>=') { + higher = higherGT(gt, c, options); + if (higher === c && higher !== gt) { + return false + } + } else if (gt.operator === '>=' && !satisfies(gt.semver, String(c), options)) { + return false + } + } + if (lt) { + if (needDomLTPre) { + if (c.semver.prerelease && c.semver.prerelease.length && + c.semver.major === needDomLTPre.major && + c.semver.minor === needDomLTPre.minor && + c.semver.patch === needDomLTPre.patch) { + needDomLTPre = false; + } + } + if (c.operator === '<' || c.operator === '<=') { + lower = lowerLT(lt, c, options); + if (lower === c && lower !== lt) { + return false + } + } else if (lt.operator === '<=' && !satisfies(lt.semver, String(c), options)) { + return false + } + } + if (!c.operator && (lt || gt) && gtltComp !== 0) { + return false + } + } + + // if there was a < or >, and nothing in the dom, then must be false + // UNLESS it was limited by another range in the other direction. + // Eg, >1.0.0 <1.0.1 is still a subset of <2.0.0 + if (gt && hasDomLT && !lt && gtltComp !== 0) { + return false + } + + if (lt && hasDomGT && !gt && gtltComp !== 0) { + return false + } + + // we needed a prerelease range in a specific tuple, but didn't get one + // then this isn't a subset. eg >=1.2.3-pre is not a subset of >=1.0.0, + // because it includes prereleases in the 1.2.3 tuple + if (needDomGTPre || needDomLTPre) { + return false + } + + return true + }; + + // >=1.2.3 is lower than >1.2.3 + const higherGT = (a, b, options) => { + if (!a) { + return b + } + const comp = compare(a.semver, b.semver, options); + return comp > 0 ? a + : comp < 0 ? b + : b.operator === '>' && a.operator === '>=' ? b + : a + }; + + // <=1.2.3 is higher than <1.2.3 + const lowerLT = (a, b, options) => { + if (!a) { + return b + } + const comp = compare(a.semver, b.semver, options); + return comp < 0 ? a + : comp > 0 ? b + : b.operator === '<' && a.operator === '<=' ? b + : a + }; + + subset_1 = subset; + return subset_1; +} + +var semver; +var hasRequiredSemver; + +function requireSemver () { + if (hasRequiredSemver) return semver; + hasRequiredSemver = 1; + // just pre-load all the stuff that index.js lazily exports + const internalRe = requireRe(); + const constants = requireConstants(); + const SemVer = requireSemver$1(); + const identifiers = requireIdentifiers(); + const parse = requireParse(); + const valid = requireValid$1(); + const clean = requireClean(); + const inc = requireInc(); + const diff = requireDiff(); + const major = requireMajor(); + const minor = requireMinor(); + const patch = requirePatch(); + const prerelease = requirePrerelease(); + const compare = requireCompare(); + const rcompare = requireRcompare(); + const compareLoose = requireCompareLoose(); + const compareBuild = requireCompareBuild(); + const sort = requireSort(); + const rsort = requireRsort(); + const gt = requireGt(); + const lt = requireLt(); + const eq = requireEq(); + const neq = requireNeq(); + const gte = requireGte(); + const lte = requireLte(); + const cmp = requireCmp(); + const coerce = requireCoerce(); + const Comparator = requireComparator(); + const Range = requireRange(); + const satisfies = requireSatisfies(); + const toComparators = requireToComparators(); + const maxSatisfying = requireMaxSatisfying(); + const minSatisfying = requireMinSatisfying(); + const minVersion = requireMinVersion(); + const validRange = requireValid(); + const outside = requireOutside(); + const gtr = requireGtr(); + const ltr = requireLtr(); + const intersects = requireIntersects(); + const simplifyRange = requireSimplify(); + const subset = requireSubset(); + semver = { + parse, + valid, + clean, + inc, + diff, + major, + minor, + patch, + prerelease, + compare, + rcompare, + compareLoose, + compareBuild, + sort, + rsort, + gt, + lt, + eq, + neq, + gte, + lte, + cmp, + coerce, + Comparator, + Range, + satisfies, + toComparators, + maxSatisfying, + minSatisfying, + minVersion, + validRange, + outside, + gtr, + ltr, + intersects, + simplifyRange, + subset, + SemVer, + re: internalRe.re, + src: internalRe.src, + tokens: internalRe.t, + SEMVER_SPEC_VERSION: constants.SEMVER_SPEC_VERSION, + RELEASE_TYPES: constants.RELEASE_TYPES, + compareIdentifiers: identifiers.compareIdentifiers, + rcompareIdentifiers: identifiers.rcompareIdentifiers, + }; + return semver; +} + +var asymmetricKeyDetailsSupported; +var hasRequiredAsymmetricKeyDetailsSupported; + +function requireAsymmetricKeyDetailsSupported () { + if (hasRequiredAsymmetricKeyDetailsSupported) return asymmetricKeyDetailsSupported; + hasRequiredAsymmetricKeyDetailsSupported = 1; + const semver = requireSemver(); + + asymmetricKeyDetailsSupported = semver.satisfies(process.version, '>=15.7.0'); + return asymmetricKeyDetailsSupported; +} + +var rsaPssKeyDetailsSupported; +var hasRequiredRsaPssKeyDetailsSupported; + +function requireRsaPssKeyDetailsSupported () { + if (hasRequiredRsaPssKeyDetailsSupported) return rsaPssKeyDetailsSupported; + hasRequiredRsaPssKeyDetailsSupported = 1; + const semver = requireSemver(); + + rsaPssKeyDetailsSupported = semver.satisfies(process.version, '>=16.9.0'); + return rsaPssKeyDetailsSupported; +} + +var validateAsymmetricKey; +var hasRequiredValidateAsymmetricKey; + +function requireValidateAsymmetricKey () { + if (hasRequiredValidateAsymmetricKey) return validateAsymmetricKey; + hasRequiredValidateAsymmetricKey = 1; + const ASYMMETRIC_KEY_DETAILS_SUPPORTED = requireAsymmetricKeyDetailsSupported(); + const RSA_PSS_KEY_DETAILS_SUPPORTED = requireRsaPssKeyDetailsSupported(); + + const allowedAlgorithmsForKeys = { + 'ec': ['ES256', 'ES384', 'ES512'], + 'rsa': ['RS256', 'PS256', 'RS384', 'PS384', 'RS512', 'PS512'], + 'rsa-pss': ['PS256', 'PS384', 'PS512'] + }; + + const allowedCurves = { + ES256: 'prime256v1', + ES384: 'secp384r1', + ES512: 'secp521r1', + }; + + validateAsymmetricKey = function(algorithm, key) { + if (!algorithm || !key) return; + + const keyType = key.asymmetricKeyType; + if (!keyType) return; + + const allowedAlgorithms = allowedAlgorithmsForKeys[keyType]; + + if (!allowedAlgorithms) { + throw new Error(`Unknown key type "${keyType}".`); + } + + if (!allowedAlgorithms.includes(algorithm)) { + throw new Error(`"alg" parameter for "${keyType}" key type must be one of: ${allowedAlgorithms.join(', ')}.`) + } + + /* + * Ignore the next block from test coverage because it gets executed + * conditionally depending on the Node version. Not ignoring it would + * prevent us from reaching the target % of coverage for versions of + * Node under 15.7.0. + */ + /* istanbul ignore next */ + if (ASYMMETRIC_KEY_DETAILS_SUPPORTED) { + switch (keyType) { + case 'ec': + const keyCurve = key.asymmetricKeyDetails.namedCurve; + const allowedCurve = allowedCurves[algorithm]; + + if (keyCurve !== allowedCurve) { + throw new Error(`"alg" parameter "${algorithm}" requires curve "${allowedCurve}".`); + } + break; + + case 'rsa-pss': + if (RSA_PSS_KEY_DETAILS_SUPPORTED) { + const length = parseInt(algorithm.slice(-3), 10); + const { hashAlgorithm, mgf1HashAlgorithm, saltLength } = key.asymmetricKeyDetails; + + if (hashAlgorithm !== `sha${length}` || mgf1HashAlgorithm !== hashAlgorithm) { + throw new Error(`Invalid key for this operation, its RSA-PSS parameters do not meet the requirements of "alg" ${algorithm}.`); + } + + if (saltLength !== undefined && saltLength > length >> 3) { + throw new Error(`Invalid key for this operation, its RSA-PSS parameter saltLength does not meet the requirements of "alg" ${algorithm}.`) + } + } + break; + } + } + }; + return validateAsymmetricKey; +} + +var psSupported; +var hasRequiredPsSupported; + +function requirePsSupported () { + if (hasRequiredPsSupported) return psSupported; + hasRequiredPsSupported = 1; + var semver = requireSemver(); + + psSupported = semver.satisfies(process.version, '^6.12.0 || >=8.0.0'); + return psSupported; +} + +var verify; +var hasRequiredVerify; + +function requireVerify () { + if (hasRequiredVerify) return verify; + hasRequiredVerify = 1; + const JsonWebTokenError = requireJsonWebTokenError(); + const NotBeforeError = requireNotBeforeError(); + const TokenExpiredError = requireTokenExpiredError(); + const decode = requireDecode(); + const timespan = requireTimespan(); + const validateAsymmetricKey = requireValidateAsymmetricKey(); + const PS_SUPPORTED = requirePsSupported(); + const jws = requireJws(); + const {KeyObject, createSecretKey, createPublicKey} = require$$2$1; + + const PUB_KEY_ALGS = ['RS256', 'RS384', 'RS512']; + const EC_KEY_ALGS = ['ES256', 'ES384', 'ES512']; + const RSA_KEY_ALGS = ['RS256', 'RS384', 'RS512']; + const HS_ALGS = ['HS256', 'HS384', 'HS512']; + + if (PS_SUPPORTED) { + PUB_KEY_ALGS.splice(PUB_KEY_ALGS.length, 0, 'PS256', 'PS384', 'PS512'); + RSA_KEY_ALGS.splice(RSA_KEY_ALGS.length, 0, 'PS256', 'PS384', 'PS512'); + } + + verify = function (jwtString, secretOrPublicKey, options, callback) { + if ((typeof options === 'function') && !callback) { + callback = options; + options = {}; + } + + if (!options) { + options = {}; + } + + //clone this object since we are going to mutate it. + options = Object.assign({}, options); + + let done; + + if (callback) { + done = callback; + } else { + done = function(err, data) { + if (err) throw err; + return data; + }; + } + + if (options.clockTimestamp && typeof options.clockTimestamp !== 'number') { + return done(new JsonWebTokenError('clockTimestamp must be a number')); + } + + if (options.nonce !== undefined && (typeof options.nonce !== 'string' || options.nonce.trim() === '')) { + return done(new JsonWebTokenError('nonce must be a non-empty string')); + } + + if (options.allowInvalidAsymmetricKeyTypes !== undefined && typeof options.allowInvalidAsymmetricKeyTypes !== 'boolean') { + return done(new JsonWebTokenError('allowInvalidAsymmetricKeyTypes must be a boolean')); + } + + const clockTimestamp = options.clockTimestamp || Math.floor(Date.now() / 1000); + + if (!jwtString){ + return done(new JsonWebTokenError('jwt must be provided')); + } + + if (typeof jwtString !== 'string') { + return done(new JsonWebTokenError('jwt must be a string')); + } + + const parts = jwtString.split('.'); + + if (parts.length !== 3){ + return done(new JsonWebTokenError('jwt malformed')); + } + + let decodedToken; + + try { + decodedToken = decode(jwtString, { complete: true }); + } catch(err) { + return done(err); + } + + if (!decodedToken) { + return done(new JsonWebTokenError('invalid token')); + } + + const header = decodedToken.header; + let getSecret; + + if(typeof secretOrPublicKey === 'function') { + if(!callback) { + return done(new JsonWebTokenError('verify must be called asynchronous if secret or public key is provided as a callback')); + } + + getSecret = secretOrPublicKey; + } + else { + getSecret = function(header, secretCallback) { + return secretCallback(null, secretOrPublicKey); + }; + } + + return getSecret(header, function(err, secretOrPublicKey) { + if(err) { + return done(new JsonWebTokenError('error in secret or public key callback: ' + err.message)); + } + + const hasSignature = parts[2].trim() !== ''; + + if (!hasSignature && secretOrPublicKey){ + return done(new JsonWebTokenError('jwt signature is required')); + } + + if (hasSignature && !secretOrPublicKey) { + return done(new JsonWebTokenError('secret or public key must be provided')); + } + + if (!hasSignature && !options.algorithms) { + return done(new JsonWebTokenError('please specify "none" in "algorithms" to verify unsigned tokens')); + } + + if (secretOrPublicKey != null && !(secretOrPublicKey instanceof KeyObject)) { + try { + secretOrPublicKey = createPublicKey(secretOrPublicKey); + } catch (_) { + try { + secretOrPublicKey = createSecretKey(typeof secretOrPublicKey === 'string' ? Buffer.from(secretOrPublicKey) : secretOrPublicKey); + } catch (_) { + return done(new JsonWebTokenError('secretOrPublicKey is not valid key material')) + } + } + } + + if (!options.algorithms) { + if (secretOrPublicKey.type === 'secret') { + options.algorithms = HS_ALGS; + } else if (['rsa', 'rsa-pss'].includes(secretOrPublicKey.asymmetricKeyType)) { + options.algorithms = RSA_KEY_ALGS; + } else if (secretOrPublicKey.asymmetricKeyType === 'ec') { + options.algorithms = EC_KEY_ALGS; + } else { + options.algorithms = PUB_KEY_ALGS; + } + } + + if (options.algorithms.indexOf(decodedToken.header.alg) === -1) { + return done(new JsonWebTokenError('invalid algorithm')); + } + + if (header.alg.startsWith('HS') && secretOrPublicKey.type !== 'secret') { + return done(new JsonWebTokenError((`secretOrPublicKey must be a symmetric key when using ${header.alg}`))) + } else if (/^(?:RS|PS|ES)/.test(header.alg) && secretOrPublicKey.type !== 'public') { + return done(new JsonWebTokenError((`secretOrPublicKey must be an asymmetric key when using ${header.alg}`))) + } + + if (!options.allowInvalidAsymmetricKeyTypes) { + try { + validateAsymmetricKey(header.alg, secretOrPublicKey); + } catch (e) { + return done(e); + } + } + + let valid; + + try { + valid = jws.verify(jwtString, decodedToken.header.alg, secretOrPublicKey); + } catch (e) { + return done(e); + } + + if (!valid) { + return done(new JsonWebTokenError('invalid signature')); + } + + const payload = decodedToken.payload; + + if (typeof payload.nbf !== 'undefined' && !options.ignoreNotBefore) { + if (typeof payload.nbf !== 'number') { + return done(new JsonWebTokenError('invalid nbf value')); + } + if (payload.nbf > clockTimestamp + (options.clockTolerance || 0)) { + return done(new NotBeforeError('jwt not active', new Date(payload.nbf * 1000))); + } + } + + if (typeof payload.exp !== 'undefined' && !options.ignoreExpiration) { + if (typeof payload.exp !== 'number') { + return done(new JsonWebTokenError('invalid exp value')); + } + if (clockTimestamp >= payload.exp + (options.clockTolerance || 0)) { + return done(new TokenExpiredError('jwt expired', new Date(payload.exp * 1000))); + } + } + + if (options.audience) { + const audiences = Array.isArray(options.audience) ? options.audience : [options.audience]; + const target = Array.isArray(payload.aud) ? payload.aud : [payload.aud]; + + const match = target.some(function (targetAudience) { + return audiences.some(function (audience) { + return audience instanceof RegExp ? audience.test(targetAudience) : audience === targetAudience; + }); + }); + + if (!match) { + return done(new JsonWebTokenError('jwt audience invalid. expected: ' + audiences.join(' or '))); + } + } + + if (options.issuer) { + const invalid_issuer = + (typeof options.issuer === 'string' && payload.iss !== options.issuer) || + (Array.isArray(options.issuer) && options.issuer.indexOf(payload.iss) === -1); + + if (invalid_issuer) { + return done(new JsonWebTokenError('jwt issuer invalid. expected: ' + options.issuer)); + } + } + + if (options.subject) { + if (payload.sub !== options.subject) { + return done(new JsonWebTokenError('jwt subject invalid. expected: ' + options.subject)); + } + } + + if (options.jwtid) { + if (payload.jti !== options.jwtid) { + return done(new JsonWebTokenError('jwt jwtid invalid. expected: ' + options.jwtid)); + } + } + + if (options.nonce) { + if (payload.nonce !== options.nonce) { + return done(new JsonWebTokenError('jwt nonce invalid. expected: ' + options.nonce)); + } + } + + if (options.maxAge) { + if (typeof payload.iat !== 'number') { + return done(new JsonWebTokenError('iat required when maxAge is specified')); + } + + const maxAgeTimestamp = timespan(options.maxAge, payload.iat); + if (typeof maxAgeTimestamp === 'undefined') { + return done(new JsonWebTokenError('"maxAge" should be a number of seconds or string representing a timespan eg: "1d", "20h", 60')); + } + if (clockTimestamp >= maxAgeTimestamp + (options.clockTolerance || 0)) { + return done(new TokenExpiredError('maxAge exceeded', new Date(maxAgeTimestamp * 1000))); + } + } + + if (options.complete === true) { + const signature = decodedToken.signature; + + return done(null, { + header: header, + payload: payload, + signature: signature + }); + } + + return done(null, payload); + }); + }; + return verify; +} + +/** + * lodash (Custom Build) + * Build: `lodash modularize exports="npm" -o ./` + * Copyright jQuery Foundation and other contributors + * Released under MIT license + * Based on Underscore.js 1.8.3 + * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors + */ + +var lodash_includes; +var hasRequiredLodash_includes; + +function requireLodash_includes () { + if (hasRequiredLodash_includes) return lodash_includes; + hasRequiredLodash_includes = 1; + /** Used as references for various `Number` constants. */ + var INFINITY = 1 / 0, + MAX_SAFE_INTEGER = 9007199254740991, + MAX_INTEGER = 1.7976931348623157e+308, + NAN = 0 / 0; + + /** `Object#toString` result references. */ + var argsTag = '[object Arguments]', + funcTag = '[object Function]', + genTag = '[object GeneratorFunction]', + stringTag = '[object String]', + symbolTag = '[object Symbol]'; + + /** Used to match leading and trailing whitespace. */ + var reTrim = /^\s+|\s+$/g; + + /** Used to detect bad signed hexadecimal string values. */ + var reIsBadHex = /^[-+]0x[0-9a-f]+$/i; + + /** Used to detect binary string values. */ + var reIsBinary = /^0b[01]+$/i; + + /** Used to detect octal string values. */ + var reIsOctal = /^0o[0-7]+$/i; + + /** Used to detect unsigned integer values. */ + var reIsUint = /^(?:0|[1-9]\d*)$/; + + /** Built-in method references without a dependency on `root`. */ + var freeParseInt = parseInt; + + /** + * A specialized version of `_.map` for arrays without support for iteratee + * shorthands. + * + * @private + * @param {Array} [array] The array to iterate over. + * @param {Function} iteratee The function invoked per iteration. + * @returns {Array} Returns the new mapped array. + */ + function arrayMap(array, iteratee) { + var index = -1, + length = array ? array.length : 0, + result = Array(length); + + while (++index < length) { + result[index] = iteratee(array[index], index, array); + } + return result; + } + + /** + * The base implementation of `_.findIndex` and `_.findLastIndex` without + * support for iteratee shorthands. + * + * @private + * @param {Array} array The array to inspect. + * @param {Function} predicate The function invoked per iteration. + * @param {number} fromIndex The index to search from. + * @param {boolean} [fromRight] Specify iterating from right to left. + * @returns {number} Returns the index of the matched value, else `-1`. + */ + function baseFindIndex(array, predicate, fromIndex, fromRight) { + var length = array.length, + index = fromIndex + (fromRight ? 1 : -1); + + while ((fromRight ? index-- : ++index < length)) { + if (predicate(array[index], index, array)) { + return index; + } + } + return -1; + } + + /** + * The base implementation of `_.indexOf` without `fromIndex` bounds checks. + * + * @private + * @param {Array} array The array to inspect. + * @param {*} value The value to search for. + * @param {number} fromIndex The index to search from. + * @returns {number} Returns the index of the matched value, else `-1`. + */ + function baseIndexOf(array, value, fromIndex) { + if (value !== value) { + return baseFindIndex(array, baseIsNaN, fromIndex); + } + var index = fromIndex - 1, + length = array.length; + + while (++index < length) { + if (array[index] === value) { + return index; + } + } + return -1; + } + + /** + * The base implementation of `_.isNaN` without support for number objects. + * + * @private + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is `NaN`, else `false`. + */ + function baseIsNaN(value) { + return value !== value; + } + + /** + * The base implementation of `_.times` without support for iteratee shorthands + * or max array length checks. + * + * @private + * @param {number} n The number of times to invoke `iteratee`. + * @param {Function} iteratee The function invoked per iteration. + * @returns {Array} Returns the array of results. + */ + function baseTimes(n, iteratee) { + var index = -1, + result = Array(n); + + while (++index < n) { + result[index] = iteratee(index); + } + return result; + } + + /** + * The base implementation of `_.values` and `_.valuesIn` which creates an + * array of `object` property values corresponding to the property names + * of `props`. + * + * @private + * @param {Object} object The object to query. + * @param {Array} props The property names to get values for. + * @returns {Object} Returns the array of property values. + */ + function baseValues(object, props) { + return arrayMap(props, function(key) { + return object[key]; + }); + } + + /** + * Creates a unary function that invokes `func` with its argument transformed. + * + * @private + * @param {Function} func The function to wrap. + * @param {Function} transform The argument transform. + * @returns {Function} Returns the new function. + */ + function overArg(func, transform) { + return function(arg) { + return func(transform(arg)); + }; + } + + /** Used for built-in method references. */ + var objectProto = Object.prototype; + + /** Used to check objects for own properties. */ + var hasOwnProperty = objectProto.hasOwnProperty; + + /** + * Used to resolve the + * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring) + * of values. + */ + var objectToString = objectProto.toString; + + /** Built-in value references. */ + var propertyIsEnumerable = objectProto.propertyIsEnumerable; + + /* Built-in method references for those with the same name as other `lodash` methods. */ + var nativeKeys = overArg(Object.keys, Object), + nativeMax = Math.max; + + /** + * Creates an array of the enumerable property names of the array-like `value`. + * + * @private + * @param {*} value The value to query. + * @param {boolean} inherited Specify returning inherited property names. + * @returns {Array} Returns the array of property names. + */ + function arrayLikeKeys(value, inherited) { + // Safari 8.1 makes `arguments.callee` enumerable in strict mode. + // Safari 9 makes `arguments.length` enumerable in strict mode. + var result = (isArray(value) || isArguments(value)) + ? baseTimes(value.length, String) + : []; + + var length = result.length, + skipIndexes = !!length; + + for (var key in value) { + if ((inherited || hasOwnProperty.call(value, key)) && + !(skipIndexes && (key == 'length' || isIndex(key, length)))) { + result.push(key); + } + } + return result; + } + + /** + * The base implementation of `_.keys` which doesn't treat sparse arrays as dense. + * + * @private + * @param {Object} object The object to query. + * @returns {Array} Returns the array of property names. + */ + function baseKeys(object) { + if (!isPrototype(object)) { + return nativeKeys(object); + } + var result = []; + for (var key in Object(object)) { + if (hasOwnProperty.call(object, key) && key != 'constructor') { + result.push(key); + } + } + return result; + } + + /** + * Checks if `value` is a valid array-like index. + * + * @private + * @param {*} value The value to check. + * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index. + * @returns {boolean} Returns `true` if `value` is a valid index, else `false`. + */ + function isIndex(value, length) { + length = length == null ? MAX_SAFE_INTEGER : length; + return !!length && + (typeof value == 'number' || reIsUint.test(value)) && + (value > -1 && value % 1 == 0 && value < length); + } + + /** + * Checks if `value` is likely a prototype object. + * + * @private + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a prototype, else `false`. + */ + function isPrototype(value) { + var Ctor = value && value.constructor, + proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto; + + return value === proto; + } + + /** + * Checks if `value` is in `collection`. If `collection` is a string, it's + * checked for a substring of `value`, otherwise + * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero) + * is used for equality comparisons. If `fromIndex` is negative, it's used as + * the offset from the end of `collection`. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Collection + * @param {Array|Object|string} collection The collection to inspect. + * @param {*} value The value to search for. + * @param {number} [fromIndex=0] The index to search from. + * @param- {Object} [guard] Enables use as an iteratee for methods like `_.reduce`. + * @returns {boolean} Returns `true` if `value` is found, else `false`. + * @example + * + * _.includes([1, 2, 3], 1); + * // => true + * + * _.includes([1, 2, 3], 1, 2); + * // => false + * + * _.includes({ 'a': 1, 'b': 2 }, 1); + * // => true + * + * _.includes('abcd', 'bc'); + * // => true + */ + function includes(collection, value, fromIndex, guard) { + collection = isArrayLike(collection) ? collection : values(collection); + fromIndex = (fromIndex && !guard) ? toInteger(fromIndex) : 0; + + var length = collection.length; + if (fromIndex < 0) { + fromIndex = nativeMax(length + fromIndex, 0); + } + return isString(collection) + ? (fromIndex <= length && collection.indexOf(value, fromIndex) > -1) + : (!!length && baseIndexOf(collection, value, fromIndex) > -1); + } + + /** + * Checks if `value` is likely an `arguments` object. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is an `arguments` object, + * else `false`. + * @example + * + * _.isArguments(function() { return arguments; }()); + * // => true + * + * _.isArguments([1, 2, 3]); + * // => false + */ + function isArguments(value) { + // Safari 8.1 makes `arguments.callee` enumerable in strict mode. + return isArrayLikeObject(value) && hasOwnProperty.call(value, 'callee') && + (!propertyIsEnumerable.call(value, 'callee') || objectToString.call(value) == argsTag); + } + + /** + * Checks if `value` is classified as an `Array` object. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is an array, else `false`. + * @example + * + * _.isArray([1, 2, 3]); + * // => true + * + * _.isArray(document.body.children); + * // => false + * + * _.isArray('abc'); + * // => false + * + * _.isArray(_.noop); + * // => false + */ + var isArray = Array.isArray; + + /** + * Checks if `value` is array-like. A value is considered array-like if it's + * not a function and has a `value.length` that's an integer greater than or + * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`. + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is array-like, else `false`. + * @example + * + * _.isArrayLike([1, 2, 3]); + * // => true + * + * _.isArrayLike(document.body.children); + * // => true + * + * _.isArrayLike('abc'); + * // => true + * + * _.isArrayLike(_.noop); + * // => false + */ + function isArrayLike(value) { + return value != null && isLength(value.length) && !isFunction(value); + } + + /** + * This method is like `_.isArrayLike` except that it also checks if `value` + * is an object. + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is an array-like object, + * else `false`. + * @example + * + * _.isArrayLikeObject([1, 2, 3]); + * // => true + * + * _.isArrayLikeObject(document.body.children); + * // => true + * + * _.isArrayLikeObject('abc'); + * // => false + * + * _.isArrayLikeObject(_.noop); + * // => false + */ + function isArrayLikeObject(value) { + return isObjectLike(value) && isArrayLike(value); + } + + /** + * Checks if `value` is classified as a `Function` object. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a function, else `false`. + * @example + * + * _.isFunction(_); + * // => true + * + * _.isFunction(/abc/); + * // => false + */ + function isFunction(value) { + // The use of `Object#toString` avoids issues with the `typeof` operator + // in Safari 8-9 which returns 'object' for typed array and other constructors. + var tag = isObject(value) ? objectToString.call(value) : ''; + return tag == funcTag || tag == genTag; + } + + /** + * Checks if `value` is a valid array-like length. + * + * **Note:** This method is loosely based on + * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength). + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a valid length, else `false`. + * @example + * + * _.isLength(3); + * // => true + * + * _.isLength(Number.MIN_VALUE); + * // => false + * + * _.isLength(Infinity); + * // => false + * + * _.isLength('3'); + * // => false + */ + function isLength(value) { + return typeof value == 'number' && + value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER; + } + + /** + * Checks if `value` is the + * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types) + * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`) + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is an object, else `false`. + * @example + * + * _.isObject({}); + * // => true + * + * _.isObject([1, 2, 3]); + * // => true + * + * _.isObject(_.noop); + * // => true + * + * _.isObject(null); + * // => false + */ + function isObject(value) { + var type = typeof value; + return !!value && (type == 'object' || type == 'function'); + } + + /** + * Checks if `value` is object-like. A value is object-like if it's not `null` + * and has a `typeof` result of "object". + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is object-like, else `false`. + * @example + * + * _.isObjectLike({}); + * // => true + * + * _.isObjectLike([1, 2, 3]); + * // => true + * + * _.isObjectLike(_.noop); + * // => false + * + * _.isObjectLike(null); + * // => false + */ + function isObjectLike(value) { + return !!value && typeof value == 'object'; + } + + /** + * Checks if `value` is classified as a `String` primitive or object. + * + * @static + * @since 0.1.0 + * @memberOf _ + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a string, else `false`. + * @example + * + * _.isString('abc'); + * // => true + * + * _.isString(1); + * // => false + */ + function isString(value) { + return typeof value == 'string' || + (!isArray(value) && isObjectLike(value) && objectToString.call(value) == stringTag); + } + + /** + * Checks if `value` is classified as a `Symbol` primitive or object. + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a symbol, else `false`. + * @example + * + * _.isSymbol(Symbol.iterator); + * // => true + * + * _.isSymbol('abc'); + * // => false + */ + function isSymbol(value) { + return typeof value == 'symbol' || + (isObjectLike(value) && objectToString.call(value) == symbolTag); + } + + /** + * Converts `value` to a finite number. + * + * @static + * @memberOf _ + * @since 4.12.0 + * @category Lang + * @param {*} value The value to convert. + * @returns {number} Returns the converted number. + * @example + * + * _.toFinite(3.2); + * // => 3.2 + * + * _.toFinite(Number.MIN_VALUE); + * // => 5e-324 + * + * _.toFinite(Infinity); + * // => 1.7976931348623157e+308 + * + * _.toFinite('3.2'); + * // => 3.2 + */ + function toFinite(value) { + if (!value) { + return value === 0 ? value : 0; + } + value = toNumber(value); + if (value === INFINITY || value === -INFINITY) { + var sign = (value < 0 ? -1 : 1); + return sign * MAX_INTEGER; + } + return value === value ? value : 0; + } + + /** + * Converts `value` to an integer. + * + * **Note:** This method is loosely based on + * [`ToInteger`](http://www.ecma-international.org/ecma-262/7.0/#sec-tointeger). + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Lang + * @param {*} value The value to convert. + * @returns {number} Returns the converted integer. + * @example + * + * _.toInteger(3.2); + * // => 3 + * + * _.toInteger(Number.MIN_VALUE); + * // => 0 + * + * _.toInteger(Infinity); + * // => 1.7976931348623157e+308 + * + * _.toInteger('3.2'); + * // => 3 + */ + function toInteger(value) { + var result = toFinite(value), + remainder = result % 1; + + return result === result ? (remainder ? result - remainder : result) : 0; + } + + /** + * Converts `value` to a number. + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Lang + * @param {*} value The value to process. + * @returns {number} Returns the number. + * @example + * + * _.toNumber(3.2); + * // => 3.2 + * + * _.toNumber(Number.MIN_VALUE); + * // => 5e-324 + * + * _.toNumber(Infinity); + * // => Infinity + * + * _.toNumber('3.2'); + * // => 3.2 + */ + function toNumber(value) { + if (typeof value == 'number') { + return value; + } + if (isSymbol(value)) { + return NAN; + } + if (isObject(value)) { + var other = typeof value.valueOf == 'function' ? value.valueOf() : value; + value = isObject(other) ? (other + '') : other; + } + if (typeof value != 'string') { + return value === 0 ? value : +value; + } + value = value.replace(reTrim, ''); + var isBinary = reIsBinary.test(value); + return (isBinary || reIsOctal.test(value)) + ? freeParseInt(value.slice(2), isBinary ? 2 : 8) + : (reIsBadHex.test(value) ? NAN : +value); + } + + /** + * Creates an array of the own enumerable property names of `object`. + * + * **Note:** Non-object values are coerced to objects. See the + * [ES spec](http://ecma-international.org/ecma-262/7.0/#sec-object.keys) + * for more details. + * + * @static + * @since 0.1.0 + * @memberOf _ + * @category Object + * @param {Object} object The object to query. + * @returns {Array} Returns the array of property names. + * @example + * + * function Foo() { + * this.a = 1; + * this.b = 2; + * } + * + * Foo.prototype.c = 3; + * + * _.keys(new Foo); + * // => ['a', 'b'] (iteration order is not guaranteed) + * + * _.keys('hi'); + * // => ['0', '1'] + */ + function keys(object) { + return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object); + } + + /** + * Creates an array of the own enumerable string keyed property values of `object`. + * + * **Note:** Non-object values are coerced to objects. + * + * @static + * @since 0.1.0 + * @memberOf _ + * @category Object + * @param {Object} object The object to query. + * @returns {Array} Returns the array of property values. + * @example + * + * function Foo() { + * this.a = 1; + * this.b = 2; + * } + * + * Foo.prototype.c = 3; + * + * _.values(new Foo); + * // => [1, 2] (iteration order is not guaranteed) + * + * _.values('hi'); + * // => ['h', 'i'] + */ + function values(object) { + return object ? baseValues(object, keys(object)) : []; + } + + lodash_includes = includes; + return lodash_includes; +} + +/** + * lodash 3.0.3 (Custom Build) + * Build: `lodash modularize exports="npm" -o ./` + * Copyright 2012-2016 The Dojo Foundation + * Based on Underscore.js 1.8.3 + * Copyright 2009-2016 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors + * Available under MIT license + */ + +var lodash_isboolean; +var hasRequiredLodash_isboolean; + +function requireLodash_isboolean () { + if (hasRequiredLodash_isboolean) return lodash_isboolean; + hasRequiredLodash_isboolean = 1; + /** `Object#toString` result references. */ + var boolTag = '[object Boolean]'; + + /** Used for built-in method references. */ + var objectProto = Object.prototype; + + /** + * Used to resolve the [`toStringTag`](http://ecma-international.org/ecma-262/6.0/#sec-object.prototype.tostring) + * of values. + */ + var objectToString = objectProto.toString; + + /** + * Checks if `value` is classified as a boolean primitive or object. + * + * @static + * @memberOf _ + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is correctly classified, else `false`. + * @example + * + * _.isBoolean(false); + * // => true + * + * _.isBoolean(null); + * // => false + */ + function isBoolean(value) { + return value === true || value === false || + (isObjectLike(value) && objectToString.call(value) == boolTag); + } + + /** + * Checks if `value` is object-like. A value is object-like if it's not `null` + * and has a `typeof` result of "object". + * + * @static + * @memberOf _ + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is object-like, else `false`. + * @example + * + * _.isObjectLike({}); + * // => true + * + * _.isObjectLike([1, 2, 3]); + * // => true + * + * _.isObjectLike(_.noop); + * // => false + * + * _.isObjectLike(null); + * // => false + */ + function isObjectLike(value) { + return !!value && typeof value == 'object'; + } + + lodash_isboolean = isBoolean; + return lodash_isboolean; +} + +/** + * lodash (Custom Build) + * Build: `lodash modularize exports="npm" -o ./` + * Copyright jQuery Foundation and other contributors + * Released under MIT license + * Based on Underscore.js 1.8.3 + * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors + */ + +var lodash_isinteger; +var hasRequiredLodash_isinteger; + +function requireLodash_isinteger () { + if (hasRequiredLodash_isinteger) return lodash_isinteger; + hasRequiredLodash_isinteger = 1; + /** Used as references for various `Number` constants. */ + var INFINITY = 1 / 0, + MAX_INTEGER = 1.7976931348623157e+308, + NAN = 0 / 0; + + /** `Object#toString` result references. */ + var symbolTag = '[object Symbol]'; + + /** Used to match leading and trailing whitespace. */ + var reTrim = /^\s+|\s+$/g; + + /** Used to detect bad signed hexadecimal string values. */ + var reIsBadHex = /^[-+]0x[0-9a-f]+$/i; + + /** Used to detect binary string values. */ + var reIsBinary = /^0b[01]+$/i; + + /** Used to detect octal string values. */ + var reIsOctal = /^0o[0-7]+$/i; + + /** Built-in method references without a dependency on `root`. */ + var freeParseInt = parseInt; + + /** Used for built-in method references. */ + var objectProto = Object.prototype; + + /** + * Used to resolve the + * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring) + * of values. + */ + var objectToString = objectProto.toString; + + /** + * Checks if `value` is an integer. + * + * **Note:** This method is based on + * [`Number.isInteger`](https://mdn.io/Number/isInteger). + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is an integer, else `false`. + * @example + * + * _.isInteger(3); + * // => true + * + * _.isInteger(Number.MIN_VALUE); + * // => false + * + * _.isInteger(Infinity); + * // => false + * + * _.isInteger('3'); + * // => false + */ + function isInteger(value) { + return typeof value == 'number' && value == toInteger(value); + } + + /** + * Checks if `value` is the + * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types) + * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`) + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is an object, else `false`. + * @example + * + * _.isObject({}); + * // => true + * + * _.isObject([1, 2, 3]); + * // => true + * + * _.isObject(_.noop); + * // => true + * + * _.isObject(null); + * // => false + */ + function isObject(value) { + var type = typeof value; + return !!value && (type == 'object' || type == 'function'); + } + + /** + * Checks if `value` is object-like. A value is object-like if it's not `null` + * and has a `typeof` result of "object". + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is object-like, else `false`. + * @example + * + * _.isObjectLike({}); + * // => true + * + * _.isObjectLike([1, 2, 3]); + * // => true + * + * _.isObjectLike(_.noop); + * // => false + * + * _.isObjectLike(null); + * // => false + */ + function isObjectLike(value) { + return !!value && typeof value == 'object'; + } + + /** + * Checks if `value` is classified as a `Symbol` primitive or object. + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a symbol, else `false`. + * @example + * + * _.isSymbol(Symbol.iterator); + * // => true + * + * _.isSymbol('abc'); + * // => false + */ + function isSymbol(value) { + return typeof value == 'symbol' || + (isObjectLike(value) && objectToString.call(value) == symbolTag); + } + + /** + * Converts `value` to a finite number. + * + * @static + * @memberOf _ + * @since 4.12.0 + * @category Lang + * @param {*} value The value to convert. + * @returns {number} Returns the converted number. + * @example + * + * _.toFinite(3.2); + * // => 3.2 + * + * _.toFinite(Number.MIN_VALUE); + * // => 5e-324 + * + * _.toFinite(Infinity); + * // => 1.7976931348623157e+308 + * + * _.toFinite('3.2'); + * // => 3.2 + */ + function toFinite(value) { + if (!value) { + return value === 0 ? value : 0; + } + value = toNumber(value); + if (value === INFINITY || value === -INFINITY) { + var sign = (value < 0 ? -1 : 1); + return sign * MAX_INTEGER; + } + return value === value ? value : 0; + } + + /** + * Converts `value` to an integer. + * + * **Note:** This method is loosely based on + * [`ToInteger`](http://www.ecma-international.org/ecma-262/7.0/#sec-tointeger). + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Lang + * @param {*} value The value to convert. + * @returns {number} Returns the converted integer. + * @example + * + * _.toInteger(3.2); + * // => 3 + * + * _.toInteger(Number.MIN_VALUE); + * // => 0 + * + * _.toInteger(Infinity); + * // => 1.7976931348623157e+308 + * + * _.toInteger('3.2'); + * // => 3 + */ + function toInteger(value) { + var result = toFinite(value), + remainder = result % 1; + + return result === result ? (remainder ? result - remainder : result) : 0; + } + + /** + * Converts `value` to a number. + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Lang + * @param {*} value The value to process. + * @returns {number} Returns the number. + * @example + * + * _.toNumber(3.2); + * // => 3.2 + * + * _.toNumber(Number.MIN_VALUE); + * // => 5e-324 + * + * _.toNumber(Infinity); + * // => Infinity + * + * _.toNumber('3.2'); + * // => 3.2 + */ + function toNumber(value) { + if (typeof value == 'number') { + return value; + } + if (isSymbol(value)) { + return NAN; + } + if (isObject(value)) { + var other = typeof value.valueOf == 'function' ? value.valueOf() : value; + value = isObject(other) ? (other + '') : other; + } + if (typeof value != 'string') { + return value === 0 ? value : +value; + } + value = value.replace(reTrim, ''); + var isBinary = reIsBinary.test(value); + return (isBinary || reIsOctal.test(value)) + ? freeParseInt(value.slice(2), isBinary ? 2 : 8) + : (reIsBadHex.test(value) ? NAN : +value); + } + + lodash_isinteger = isInteger; + return lodash_isinteger; +} + +/** + * lodash 3.0.3 (Custom Build) + * Build: `lodash modularize exports="npm" -o ./` + * Copyright 2012-2016 The Dojo Foundation + * Based on Underscore.js 1.8.3 + * Copyright 2009-2016 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors + * Available under MIT license + */ + +var lodash_isnumber; +var hasRequiredLodash_isnumber; + +function requireLodash_isnumber () { + if (hasRequiredLodash_isnumber) return lodash_isnumber; + hasRequiredLodash_isnumber = 1; + /** `Object#toString` result references. */ + var numberTag = '[object Number]'; + + /** Used for built-in method references. */ + var objectProto = Object.prototype; + + /** + * Used to resolve the [`toStringTag`](http://ecma-international.org/ecma-262/6.0/#sec-object.prototype.tostring) + * of values. + */ + var objectToString = objectProto.toString; + + /** + * Checks if `value` is object-like. A value is object-like if it's not `null` + * and has a `typeof` result of "object". + * + * @static + * @memberOf _ + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is object-like, else `false`. + * @example + * + * _.isObjectLike({}); + * // => true + * + * _.isObjectLike([1, 2, 3]); + * // => true + * + * _.isObjectLike(_.noop); + * // => false + * + * _.isObjectLike(null); + * // => false + */ + function isObjectLike(value) { + return !!value && typeof value == 'object'; + } + + /** + * Checks if `value` is classified as a `Number` primitive or object. + * + * **Note:** To exclude `Infinity`, `-Infinity`, and `NaN`, which are classified + * as numbers, use the `_.isFinite` method. + * + * @static + * @memberOf _ + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is correctly classified, else `false`. + * @example + * + * _.isNumber(3); + * // => true + * + * _.isNumber(Number.MIN_VALUE); + * // => true + * + * _.isNumber(Infinity); + * // => true + * + * _.isNumber('3'); + * // => false + */ + function isNumber(value) { + return typeof value == 'number' || + (isObjectLike(value) && objectToString.call(value) == numberTag); + } + + lodash_isnumber = isNumber; + return lodash_isnumber; +} + +/** + * lodash (Custom Build) + * Build: `lodash modularize exports="npm" -o ./` + * Copyright jQuery Foundation and other contributors + * Released under MIT license + * Based on Underscore.js 1.8.3 + * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors + */ + +var lodash_isplainobject; +var hasRequiredLodash_isplainobject; + +function requireLodash_isplainobject () { + if (hasRequiredLodash_isplainobject) return lodash_isplainobject; + hasRequiredLodash_isplainobject = 1; + /** `Object#toString` result references. */ + var objectTag = '[object Object]'; + + /** + * Checks if `value` is a host object in IE < 9. + * + * @private + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a host object, else `false`. + */ + function isHostObject(value) { + // Many host objects are `Object` objects that can coerce to strings + // despite having improperly defined `toString` methods. + var result = false; + if (value != null && typeof value.toString != 'function') { + try { + result = !!(value + ''); + } catch (e) {} + } + return result; + } + + /** + * Creates a unary function that invokes `func` with its argument transformed. + * + * @private + * @param {Function} func The function to wrap. + * @param {Function} transform The argument transform. + * @returns {Function} Returns the new function. + */ + function overArg(func, transform) { + return function(arg) { + return func(transform(arg)); + }; + } + + /** Used for built-in method references. */ + var funcProto = Function.prototype, + objectProto = Object.prototype; + + /** Used to resolve the decompiled source of functions. */ + var funcToString = funcProto.toString; + + /** Used to check objects for own properties. */ + var hasOwnProperty = objectProto.hasOwnProperty; + + /** Used to infer the `Object` constructor. */ + var objectCtorString = funcToString.call(Object); + + /** + * Used to resolve the + * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring) + * of values. + */ + var objectToString = objectProto.toString; + + /** Built-in value references. */ + var getPrototype = overArg(Object.getPrototypeOf, Object); + + /** + * Checks if `value` is object-like. A value is object-like if it's not `null` + * and has a `typeof` result of "object". + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is object-like, else `false`. + * @example + * + * _.isObjectLike({}); + * // => true + * + * _.isObjectLike([1, 2, 3]); + * // => true + * + * _.isObjectLike(_.noop); + * // => false + * + * _.isObjectLike(null); + * // => false + */ + function isObjectLike(value) { + return !!value && typeof value == 'object'; + } + + /** + * Checks if `value` is a plain object, that is, an object created by the + * `Object` constructor or one with a `[[Prototype]]` of `null`. + * + * @static + * @memberOf _ + * @since 0.8.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a plain object, else `false`. + * @example + * + * function Foo() { + * this.a = 1; + * } + * + * _.isPlainObject(new Foo); + * // => false + * + * _.isPlainObject([1, 2, 3]); + * // => false + * + * _.isPlainObject({ 'x': 0, 'y': 0 }); + * // => true + * + * _.isPlainObject(Object.create(null)); + * // => true + */ + function isPlainObject(value) { + if (!isObjectLike(value) || + objectToString.call(value) != objectTag || isHostObject(value)) { + return false; + } + var proto = getPrototype(value); + if (proto === null) { + return true; + } + var Ctor = hasOwnProperty.call(proto, 'constructor') && proto.constructor; + return (typeof Ctor == 'function' && + Ctor instanceof Ctor && funcToString.call(Ctor) == objectCtorString); + } + + lodash_isplainobject = isPlainObject; + return lodash_isplainobject; +} + +/** + * lodash 4.0.1 (Custom Build) + * Build: `lodash modularize exports="npm" -o ./` + * Copyright 2012-2016 The Dojo Foundation + * Based on Underscore.js 1.8.3 + * Copyright 2009-2016 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors + * Available under MIT license + */ + +var lodash_isstring; +var hasRequiredLodash_isstring; + +function requireLodash_isstring () { + if (hasRequiredLodash_isstring) return lodash_isstring; + hasRequiredLodash_isstring = 1; + /** `Object#toString` result references. */ + var stringTag = '[object String]'; + + /** Used for built-in method references. */ + var objectProto = Object.prototype; + + /** + * Used to resolve the [`toStringTag`](http://ecma-international.org/ecma-262/6.0/#sec-object.prototype.tostring) + * of values. + */ + var objectToString = objectProto.toString; + + /** + * Checks if `value` is classified as an `Array` object. + * + * @static + * @memberOf _ + * @type Function + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is correctly classified, else `false`. + * @example + * + * _.isArray([1, 2, 3]); + * // => true + * + * _.isArray(document.body.children); + * // => false + * + * _.isArray('abc'); + * // => false + * + * _.isArray(_.noop); + * // => false + */ + var isArray = Array.isArray; + + /** + * Checks if `value` is object-like. A value is object-like if it's not `null` + * and has a `typeof` result of "object". + * + * @static + * @memberOf _ + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is object-like, else `false`. + * @example + * + * _.isObjectLike({}); + * // => true + * + * _.isObjectLike([1, 2, 3]); + * // => true + * + * _.isObjectLike(_.noop); + * // => false + * + * _.isObjectLike(null); + * // => false + */ + function isObjectLike(value) { + return !!value && typeof value == 'object'; + } + + /** + * Checks if `value` is classified as a `String` primitive or object. + * + * @static + * @memberOf _ + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is correctly classified, else `false`. + * @example + * + * _.isString('abc'); + * // => true + * + * _.isString(1); + * // => false + */ + function isString(value) { + return typeof value == 'string' || + (!isArray(value) && isObjectLike(value) && objectToString.call(value) == stringTag); + } + + lodash_isstring = isString; + return lodash_isstring; +} + +/** + * lodash (Custom Build) + * Build: `lodash modularize exports="npm" -o ./` + * Copyright jQuery Foundation and other contributors + * Released under MIT license + * Based on Underscore.js 1.8.3 + * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors + */ + +var lodash_once; +var hasRequiredLodash_once; + +function requireLodash_once () { + if (hasRequiredLodash_once) return lodash_once; + hasRequiredLodash_once = 1; + /** Used as the `TypeError` message for "Functions" methods. */ + var FUNC_ERROR_TEXT = 'Expected a function'; + + /** Used as references for various `Number` constants. */ + var INFINITY = 1 / 0, + MAX_INTEGER = 1.7976931348623157e+308, + NAN = 0 / 0; + + /** `Object#toString` result references. */ + var symbolTag = '[object Symbol]'; + + /** Used to match leading and trailing whitespace. */ + var reTrim = /^\s+|\s+$/g; + + /** Used to detect bad signed hexadecimal string values. */ + var reIsBadHex = /^[-+]0x[0-9a-f]+$/i; + + /** Used to detect binary string values. */ + var reIsBinary = /^0b[01]+$/i; + + /** Used to detect octal string values. */ + var reIsOctal = /^0o[0-7]+$/i; + + /** Built-in method references without a dependency on `root`. */ + var freeParseInt = parseInt; + + /** Used for built-in method references. */ + var objectProto = Object.prototype; + + /** + * Used to resolve the + * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring) + * of values. + */ + var objectToString = objectProto.toString; + + /** + * Creates a function that invokes `func`, with the `this` binding and arguments + * of the created function, while it's called less than `n` times. Subsequent + * calls to the created function return the result of the last `func` invocation. + * + * @static + * @memberOf _ + * @since 3.0.0 + * @category Function + * @param {number} n The number of calls at which `func` is no longer invoked. + * @param {Function} func The function to restrict. + * @returns {Function} Returns the new restricted function. + * @example + * + * jQuery(element).on('click', _.before(5, addContactToList)); + * // => Allows adding up to 4 contacts to the list. + */ + function before(n, func) { + var result; + if (typeof func != 'function') { + throw new TypeError(FUNC_ERROR_TEXT); + } + n = toInteger(n); + return function() { + if (--n > 0) { + result = func.apply(this, arguments); + } + if (n <= 1) { + func = undefined; + } + return result; + }; + } + + /** + * Creates a function that is restricted to invoking `func` once. Repeat calls + * to the function return the value of the first invocation. The `func` is + * invoked with the `this` binding and arguments of the created function. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Function + * @param {Function} func The function to restrict. + * @returns {Function} Returns the new restricted function. + * @example + * + * var initialize = _.once(createApplication); + * initialize(); + * initialize(); + * // => `createApplication` is invoked once + */ + function once(func) { + return before(2, func); + } + + /** + * Checks if `value` is the + * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types) + * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`) + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is an object, else `false`. + * @example + * + * _.isObject({}); + * // => true + * + * _.isObject([1, 2, 3]); + * // => true + * + * _.isObject(_.noop); + * // => true + * + * _.isObject(null); + * // => false + */ + function isObject(value) { + var type = typeof value; + return !!value && (type == 'object' || type == 'function'); + } + + /** + * Checks if `value` is object-like. A value is object-like if it's not `null` + * and has a `typeof` result of "object". + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is object-like, else `false`. + * @example + * + * _.isObjectLike({}); + * // => true + * + * _.isObjectLike([1, 2, 3]); + * // => true + * + * _.isObjectLike(_.noop); + * // => false + * + * _.isObjectLike(null); + * // => false + */ + function isObjectLike(value) { + return !!value && typeof value == 'object'; + } + + /** + * Checks if `value` is classified as a `Symbol` primitive or object. + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a symbol, else `false`. + * @example + * + * _.isSymbol(Symbol.iterator); + * // => true + * + * _.isSymbol('abc'); + * // => false + */ + function isSymbol(value) { + return typeof value == 'symbol' || + (isObjectLike(value) && objectToString.call(value) == symbolTag); + } + + /** + * Converts `value` to a finite number. + * + * @static + * @memberOf _ + * @since 4.12.0 + * @category Lang + * @param {*} value The value to convert. + * @returns {number} Returns the converted number. + * @example + * + * _.toFinite(3.2); + * // => 3.2 + * + * _.toFinite(Number.MIN_VALUE); + * // => 5e-324 + * + * _.toFinite(Infinity); + * // => 1.7976931348623157e+308 + * + * _.toFinite('3.2'); + * // => 3.2 + */ + function toFinite(value) { + if (!value) { + return value === 0 ? value : 0; + } + value = toNumber(value); + if (value === INFINITY || value === -INFINITY) { + var sign = (value < 0 ? -1 : 1); + return sign * MAX_INTEGER; + } + return value === value ? value : 0; + } + + /** + * Converts `value` to an integer. + * + * **Note:** This method is loosely based on + * [`ToInteger`](http://www.ecma-international.org/ecma-262/7.0/#sec-tointeger). + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Lang + * @param {*} value The value to convert. + * @returns {number} Returns the converted integer. + * @example + * + * _.toInteger(3.2); + * // => 3 + * + * _.toInteger(Number.MIN_VALUE); + * // => 0 + * + * _.toInteger(Infinity); + * // => 1.7976931348623157e+308 + * + * _.toInteger('3.2'); + * // => 3 + */ + function toInteger(value) { + var result = toFinite(value), + remainder = result % 1; + + return result === result ? (remainder ? result - remainder : result) : 0; + } + + /** + * Converts `value` to a number. + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Lang + * @param {*} value The value to process. + * @returns {number} Returns the number. + * @example + * + * _.toNumber(3.2); + * // => 3.2 + * + * _.toNumber(Number.MIN_VALUE); + * // => 5e-324 + * + * _.toNumber(Infinity); + * // => Infinity + * + * _.toNumber('3.2'); + * // => 3.2 + */ + function toNumber(value) { + if (typeof value == 'number') { + return value; + } + if (isSymbol(value)) { + return NAN; + } + if (isObject(value)) { + var other = typeof value.valueOf == 'function' ? value.valueOf() : value; + value = isObject(other) ? (other + '') : other; + } + if (typeof value != 'string') { + return value === 0 ? value : +value; + } + value = value.replace(reTrim, ''); + var isBinary = reIsBinary.test(value); + return (isBinary || reIsOctal.test(value)) + ? freeParseInt(value.slice(2), isBinary ? 2 : 8) + : (reIsBadHex.test(value) ? NAN : +value); + } + + lodash_once = once; + return lodash_once; +} + +var sign; +var hasRequiredSign; + +function requireSign () { + if (hasRequiredSign) return sign; + hasRequiredSign = 1; + const timespan = requireTimespan(); + const PS_SUPPORTED = requirePsSupported(); + const validateAsymmetricKey = requireValidateAsymmetricKey(); + const jws = requireJws(); + const includes = requireLodash_includes(); + const isBoolean = requireLodash_isboolean(); + const isInteger = requireLodash_isinteger(); + const isNumber = requireLodash_isnumber(); + const isPlainObject = requireLodash_isplainobject(); + const isString = requireLodash_isstring(); + const once = requireLodash_once(); + const { KeyObject, createSecretKey, createPrivateKey } = require$$2$1; + + const SUPPORTED_ALGS = ['RS256', 'RS384', 'RS512', 'ES256', 'ES384', 'ES512', 'HS256', 'HS384', 'HS512', 'none']; + if (PS_SUPPORTED) { + SUPPORTED_ALGS.splice(3, 0, 'PS256', 'PS384', 'PS512'); + } + + const sign_options_schema = { + expiresIn: { isValid: function(value) { return isInteger(value) || (isString(value) && value); }, message: '"expiresIn" should be a number of seconds or string representing a timespan' }, + notBefore: { isValid: function(value) { return isInteger(value) || (isString(value) && value); }, message: '"notBefore" should be a number of seconds or string representing a timespan' }, + audience: { isValid: function(value) { return isString(value) || Array.isArray(value); }, message: '"audience" must be a string or array' }, + algorithm: { isValid: includes.bind(null, SUPPORTED_ALGS), message: '"algorithm" must be a valid string enum value' }, + header: { isValid: isPlainObject, message: '"header" must be an object' }, + encoding: { isValid: isString, message: '"encoding" must be a string' }, + issuer: { isValid: isString, message: '"issuer" must be a string' }, + subject: { isValid: isString, message: '"subject" must be a string' }, + jwtid: { isValid: isString, message: '"jwtid" must be a string' }, + noTimestamp: { isValid: isBoolean, message: '"noTimestamp" must be a boolean' }, + keyid: { isValid: isString, message: '"keyid" must be a string' }, + mutatePayload: { isValid: isBoolean, message: '"mutatePayload" must be a boolean' }, + allowInsecureKeySizes: { isValid: isBoolean, message: '"allowInsecureKeySizes" must be a boolean'}, + allowInvalidAsymmetricKeyTypes: { isValid: isBoolean, message: '"allowInvalidAsymmetricKeyTypes" must be a boolean'} + }; + + const registered_claims_schema = { + iat: { isValid: isNumber, message: '"iat" should be a number of seconds' }, + exp: { isValid: isNumber, message: '"exp" should be a number of seconds' }, + nbf: { isValid: isNumber, message: '"nbf" should be a number of seconds' } + }; + + function validate(schema, allowUnknown, object, parameterName) { + if (!isPlainObject(object)) { + throw new Error('Expected "' + parameterName + '" to be a plain object.'); + } + Object.keys(object) + .forEach(function(key) { + const validator = schema[key]; + if (!validator) { + if (!allowUnknown) { + throw new Error('"' + key + '" is not allowed in "' + parameterName + '"'); + } + return; + } + if (!validator.isValid(object[key])) { + throw new Error(validator.message); + } + }); + } + + function validateOptions(options) { + return validate(sign_options_schema, false, options, 'options'); + } + + function validatePayload(payload) { + return validate(registered_claims_schema, true, payload, 'payload'); + } + + const options_to_payload = { + 'audience': 'aud', + 'issuer': 'iss', + 'subject': 'sub', + 'jwtid': 'jti' + }; + + const options_for_objects = [ + 'expiresIn', + 'notBefore', + 'noTimestamp', + 'audience', + 'issuer', + 'subject', + 'jwtid', + ]; + + sign = function (payload, secretOrPrivateKey, options, callback) { + if (typeof options === 'function') { + callback = options; + options = {}; + } else { + options = options || {}; + } + + const isObjectPayload = typeof payload === 'object' && + !Buffer.isBuffer(payload); + + const header = Object.assign({ + alg: options.algorithm || 'HS256', + typ: isObjectPayload ? 'JWT' : undefined, + kid: options.keyid + }, options.header); + + function failure(err) { + if (callback) { + return callback(err); + } + throw err; + } + + if (!secretOrPrivateKey && options.algorithm !== 'none') { + return failure(new Error('secretOrPrivateKey must have a value')); + } + + if (secretOrPrivateKey != null && !(secretOrPrivateKey instanceof KeyObject)) { + try { + secretOrPrivateKey = createPrivateKey(secretOrPrivateKey); + } catch (_) { + try { + secretOrPrivateKey = createSecretKey(typeof secretOrPrivateKey === 'string' ? Buffer.from(secretOrPrivateKey) : secretOrPrivateKey); + } catch (_) { + return failure(new Error('secretOrPrivateKey is not valid key material')); + } + } + } + + if (header.alg.startsWith('HS') && secretOrPrivateKey.type !== 'secret') { + return failure(new Error((`secretOrPrivateKey must be a symmetric key when using ${header.alg}`))) + } else if (/^(?:RS|PS|ES)/.test(header.alg)) { + if (secretOrPrivateKey.type !== 'private') { + return failure(new Error((`secretOrPrivateKey must be an asymmetric key when using ${header.alg}`))) + } + if (!options.allowInsecureKeySizes && + !header.alg.startsWith('ES') && + secretOrPrivateKey.asymmetricKeyDetails !== undefined && //KeyObject.asymmetricKeyDetails is supported in Node 15+ + secretOrPrivateKey.asymmetricKeyDetails.modulusLength < 2048) { + return failure(new Error(`secretOrPrivateKey has a minimum key size of 2048 bits for ${header.alg}`)); + } + } + + if (typeof payload === 'undefined') { + return failure(new Error('payload is required')); + } else if (isObjectPayload) { + try { + validatePayload(payload); + } + catch (error) { + return failure(error); + } + if (!options.mutatePayload) { + payload = Object.assign({},payload); + } + } else { + const invalid_options = options_for_objects.filter(function (opt) { + return typeof options[opt] !== 'undefined'; + }); + + if (invalid_options.length > 0) { + return failure(new Error('invalid ' + invalid_options.join(',') + ' option for ' + (typeof payload ) + ' payload')); + } + } + + if (typeof payload.exp !== 'undefined' && typeof options.expiresIn !== 'undefined') { + return failure(new Error('Bad "options.expiresIn" option the payload already has an "exp" property.')); + } + + if (typeof payload.nbf !== 'undefined' && typeof options.notBefore !== 'undefined') { + return failure(new Error('Bad "options.notBefore" option the payload already has an "nbf" property.')); + } + + try { + validateOptions(options); + } + catch (error) { + return failure(error); + } + + if (!options.allowInvalidAsymmetricKeyTypes) { + try { + validateAsymmetricKey(header.alg, secretOrPrivateKey); + } catch (error) { + return failure(error); + } + } + + const timestamp = payload.iat || Math.floor(Date.now() / 1000); + + if (options.noTimestamp) { + delete payload.iat; + } else if (isObjectPayload) { + payload.iat = timestamp; + } + + if (typeof options.notBefore !== 'undefined') { + try { + payload.nbf = timespan(options.notBefore, timestamp); + } + catch (err) { + return failure(err); + } + if (typeof payload.nbf === 'undefined') { + return failure(new Error('"notBefore" should be a number of seconds or string representing a timespan eg: "1d", "20h", 60')); + } + } + + if (typeof options.expiresIn !== 'undefined' && typeof payload === 'object') { + try { + payload.exp = timespan(options.expiresIn, timestamp); + } + catch (err) { + return failure(err); + } + if (typeof payload.exp === 'undefined') { + return failure(new Error('"expiresIn" should be a number of seconds or string representing a timespan eg: "1d", "20h", 60')); + } + } + + Object.keys(options_to_payload).forEach(function (key) { + const claim = options_to_payload[key]; + if (typeof options[key] !== 'undefined') { + if (typeof payload[claim] !== 'undefined') { + return failure(new Error('Bad "options.' + key + '" option. The payload already has an "' + claim + '" property.')); + } + payload[claim] = options[key]; + } + }); + + const encoding = options.encoding || 'utf8'; + + if (typeof callback === 'function') { + callback = callback && once(callback); + + jws.createSign({ + header: header, + privateKey: secretOrPrivateKey, + payload: payload, + encoding: encoding + }).once('error', callback) + .once('done', function (signature) { + // TODO: Remove in favor of the modulus length check before signing once node 15+ is the minimum supported version + if(!options.allowInsecureKeySizes && /^(?:RS|PS)/.test(header.alg) && signature.length < 256) { + return callback(new Error(`secretOrPrivateKey has a minimum key size of 2048 bits for ${header.alg}`)) + } + callback(null, signature); + }); + } else { + let signature = jws.sign({header: header, payload: payload, secret: secretOrPrivateKey, encoding: encoding}); + // TODO: Remove in favor of the modulus length check before signing once node 15+ is the minimum supported version + if(!options.allowInsecureKeySizes && /^(?:RS|PS)/.test(header.alg) && signature.length < 256) { + throw new Error(`secretOrPrivateKey has a minimum key size of 2048 bits for ${header.alg}`) + } + return signature + } + }; + return sign; +} + +var jsonwebtoken; +var hasRequiredJsonwebtoken; + +function requireJsonwebtoken () { + if (hasRequiredJsonwebtoken) return jsonwebtoken; + hasRequiredJsonwebtoken = 1; + jsonwebtoken = { + decode: requireDecode(), + verify: requireVerify(), + sign: requireSign(), + JsonWebTokenError: requireJsonWebTokenError(), + NotBeforeError: requireNotBeforeError(), + TokenExpiredError: requireTokenExpiredError(), + }; + return jsonwebtoken; +} + +var jsonwebtokenExports = requireJsonwebtoken(); +var jwt = /*@__PURE__*/getDefaultExportFromCjs(jsonwebtokenExports); + +function generateAuthLink(tenantUrl) { + return `${tenantUrl}/oauth/authorize?client_id=sailpoint-cli&response_type=code&redirect_uri=http://localhost:3000/callback`; +} +async function refreshToken(apiUrl, refreshToken2) { + const url = `${apiUrl}/oauth/token?grant_type=refresh_token&client_id=sailpoint-cli&refresh_token=${refreshToken2}`; + const response = await axios$1.post(url).catch(function(err) { + if (err.response) { + console.log(err.response.data); + console.log(err.response.status); + console.log(err.response.headers); + } + return void 0; + }); + const idnSession = response.data; + return idnSession; +} +async function getToken(cookies) { + const idnSession = JSON.parse(cookies.get("idnSession")); + const session = JSON.parse(cookies.get("session")); + if (!idnSession && session) { + throw redirect(302, generateAuthLink(session.tenantUrl)); + } + if (!idnSession && !session) { + throw redirect(302, "/"); + } + if (isJwtExpired(idnSession.access_token)) { + console.log("refreshing token"); + const newSession = await refreshToken(session.baseUrl, idnSession.refresh_token); + cookies.set("idnSession", JSON.stringify(newSession)); + return Promise.resolve(newSession); + } else { + console.log("token is good"); + return Promise.resolve(idnSession); + } +} +function isJwtExpired(token) { + try { + const decodedToken = jwt.decode(token, { complete: true }); + if (!decodedToken || !decodedToken.payload || !decodedToken.payload.exp) { + return true; + } + const expirationTimestamp = decodedToken.payload.exp; + const currentTimestamp = Math.floor(Date.now() / 1e3); + return currentTimestamp >= expirationTimestamp; + } catch (error) { + return true; + } +} + +export { axios$1 as a, getToken as b, requireProxyFromEnv as c, requireFollowRedirects as d, generateAuthLink as g, requireForm_data as r }; +//# sourceMappingURL=oauth-017ba109.js.map diff --git a/Sveltekit-Build/src/server/chunks/oauth-017ba109.js.map b/Sveltekit-Build/src/server/chunks/oauth-017ba109.js.map new file mode 100644 index 0000000..3e04b61 --- /dev/null +++ b/Sveltekit-Build/src/server/chunks/oauth-017ba109.js.map @@ -0,0 +1 @@ +{"version":3,"file":"oauth-017ba109.js","sources":["../../../../Sveltekit-App/node_modules/axios/lib/helpers/bind.js","../../../../Sveltekit-App/node_modules/axios/lib/utils.js","../../../../Sveltekit-App/node_modules/axios/lib/core/AxiosError.js","../../../../Sveltekit-App/node_modules/delayed-stream/lib/delayed_stream.js","../../../../Sveltekit-App/node_modules/combined-stream/lib/combined_stream.js","../../../../Sveltekit-App/node_modules/mime-db/index.js","../../../../Sveltekit-App/node_modules/mime-types/index.js","../../../../Sveltekit-App/node_modules/asynckit/lib/defer.js","../../../../Sveltekit-App/node_modules/asynckit/lib/async.js","../../../../Sveltekit-App/node_modules/asynckit/lib/abort.js","../../../../Sveltekit-App/node_modules/asynckit/lib/iterate.js","../../../../Sveltekit-App/node_modules/asynckit/lib/state.js","../../../../Sveltekit-App/node_modules/asynckit/lib/terminator.js","../../../../Sveltekit-App/node_modules/asynckit/parallel.js","../../../../Sveltekit-App/node_modules/asynckit/serialOrdered.js","../../../../Sveltekit-App/node_modules/asynckit/serial.js","../../../../Sveltekit-App/node_modules/asynckit/index.js","../../../../Sveltekit-App/node_modules/form-data/lib/populate.js","../../../../Sveltekit-App/node_modules/form-data/lib/form_data.js","../../../../Sveltekit-App/node_modules/axios/lib/helpers/toFormData.js","../../../../Sveltekit-App/node_modules/axios/lib/helpers/AxiosURLSearchParams.js","../../../../Sveltekit-App/node_modules/axios/lib/helpers/buildURL.js","../../../../Sveltekit-App/node_modules/axios/lib/core/InterceptorManager.js","../../../../Sveltekit-App/node_modules/axios/lib/defaults/transitional.js","../../../../Sveltekit-App/node_modules/axios/lib/platform/node/classes/URLSearchParams.js","../../../../Sveltekit-App/node_modules/axios/lib/platform/node/index.js","../../../../Sveltekit-App/node_modules/axios/lib/platform/common/utils.js","../../../../Sveltekit-App/node_modules/axios/lib/platform/index.js","../../../../Sveltekit-App/node_modules/axios/lib/helpers/toURLEncodedForm.js","../../../../Sveltekit-App/node_modules/axios/lib/helpers/formDataToJSON.js","../../../../Sveltekit-App/node_modules/axios/lib/defaults/index.js","../../../../Sveltekit-App/node_modules/axios/lib/helpers/parseHeaders.js","../../../../Sveltekit-App/node_modules/axios/lib/core/AxiosHeaders.js","../../../../Sveltekit-App/node_modules/axios/lib/core/transformData.js","../../../../Sveltekit-App/node_modules/axios/lib/cancel/isCancel.js","../../../../Sveltekit-App/node_modules/axios/lib/cancel/CanceledError.js","../../../../Sveltekit-App/node_modules/axios/lib/core/settle.js","../../../../Sveltekit-App/node_modules/axios/lib/helpers/isAbsoluteURL.js","../../../../Sveltekit-App/node_modules/axios/lib/helpers/combineURLs.js","../../../../Sveltekit-App/node_modules/axios/lib/core/buildFullPath.js","../../../../Sveltekit-App/node_modules/proxy-from-env/index.js","../../../../Sveltekit-App/node_modules/ms/index.js","../../../../Sveltekit-App/node_modules/debug/src/common.js","../../../../Sveltekit-App/node_modules/debug/src/browser.js","../../../../Sveltekit-App/node_modules/has-flag/index.js","../../../../Sveltekit-App/node_modules/supports-color/index.js","../../../../Sveltekit-App/node_modules/debug/src/node.js","../../../../Sveltekit-App/node_modules/debug/src/index.js","../../../../Sveltekit-App/node_modules/follow-redirects/debug.js","../../../../Sveltekit-App/node_modules/follow-redirects/index.js","../../../../Sveltekit-App/node_modules/axios/lib/env/data.js","../../../../Sveltekit-App/node_modules/axios/lib/helpers/parseProtocol.js","../../../../Sveltekit-App/node_modules/axios/lib/helpers/fromDataURI.js","../../../../Sveltekit-App/node_modules/axios/lib/helpers/throttle.js","../../../../Sveltekit-App/node_modules/axios/lib/helpers/speedometer.js","../../../../Sveltekit-App/node_modules/axios/lib/helpers/AxiosTransformStream.js","../../../../Sveltekit-App/node_modules/axios/lib/helpers/readBlob.js","../../../../Sveltekit-App/node_modules/axios/lib/helpers/formDataToStream.js","../../../../Sveltekit-App/node_modules/axios/lib/helpers/ZlibHeaderTransformStream.js","../../../../Sveltekit-App/node_modules/axios/lib/helpers/callbackify.js","../../../../Sveltekit-App/node_modules/axios/lib/adapters/http.js","../../../../Sveltekit-App/node_modules/axios/lib/helpers/cookies.js","../../../../Sveltekit-App/node_modules/axios/lib/helpers/isURLSameOrigin.js","../../../../Sveltekit-App/node_modules/axios/lib/adapters/xhr.js","../../../../Sveltekit-App/node_modules/axios/lib/adapters/adapters.js","../../../../Sveltekit-App/node_modules/axios/lib/core/dispatchRequest.js","../../../../Sveltekit-App/node_modules/axios/lib/core/mergeConfig.js","../../../../Sveltekit-App/node_modules/axios/lib/helpers/validator.js","../../../../Sveltekit-App/node_modules/axios/lib/core/Axios.js","../../../../Sveltekit-App/node_modules/axios/lib/cancel/CancelToken.js","../../../../Sveltekit-App/node_modules/axios/lib/helpers/spread.js","../../../../Sveltekit-App/node_modules/axios/lib/helpers/isAxiosError.js","../../../../Sveltekit-App/node_modules/axios/lib/helpers/HttpStatusCode.js","../../../../Sveltekit-App/node_modules/axios/lib/axios.js","../../../../Sveltekit-App/node_modules/safe-buffer/index.js","../../../../Sveltekit-App/node_modules/jws/lib/data-stream.js","../../../../Sveltekit-App/node_modules/buffer-equal-constant-time/index.js","../../../../Sveltekit-App/node_modules/ecdsa-sig-formatter/src/param-bytes-for-alg.js","../../../../Sveltekit-App/node_modules/ecdsa-sig-formatter/src/ecdsa-sig-formatter.js","../../../../Sveltekit-App/node_modules/jwa/index.js","../../../../Sveltekit-App/node_modules/jws/lib/tostring.js","../../../../Sveltekit-App/node_modules/jws/lib/sign-stream.js","../../../../Sveltekit-App/node_modules/jws/lib/verify-stream.js","../../../../Sveltekit-App/node_modules/jws/index.js","../../../../Sveltekit-App/node_modules/jsonwebtoken/decode.js","../../../../Sveltekit-App/node_modules/jsonwebtoken/lib/JsonWebTokenError.js","../../../../Sveltekit-App/node_modules/jsonwebtoken/lib/NotBeforeError.js","../../../../Sveltekit-App/node_modules/jsonwebtoken/lib/TokenExpiredError.js","../../../../Sveltekit-App/node_modules/jsonwebtoken/lib/timespan.js","../../../../Sveltekit-App/node_modules/semver/internal/constants.js","../../../../Sveltekit-App/node_modules/semver/internal/debug.js","../../../../Sveltekit-App/node_modules/semver/internal/re.js","../../../../Sveltekit-App/node_modules/semver/internal/parse-options.js","../../../../Sveltekit-App/node_modules/semver/internal/identifiers.js","../../../../Sveltekit-App/node_modules/semver/classes/semver.js","../../../../Sveltekit-App/node_modules/semver/functions/parse.js","../../../../Sveltekit-App/node_modules/semver/functions/valid.js","../../../../Sveltekit-App/node_modules/semver/functions/clean.js","../../../../Sveltekit-App/node_modules/semver/functions/inc.js","../../../../Sveltekit-App/node_modules/semver/functions/diff.js","../../../../Sveltekit-App/node_modules/semver/functions/major.js","../../../../Sveltekit-App/node_modules/semver/functions/minor.js","../../../../Sveltekit-App/node_modules/semver/functions/patch.js","../../../../Sveltekit-App/node_modules/semver/functions/prerelease.js","../../../../Sveltekit-App/node_modules/semver/functions/compare.js","../../../../Sveltekit-App/node_modules/semver/functions/rcompare.js","../../../../Sveltekit-App/node_modules/semver/functions/compare-loose.js","../../../../Sveltekit-App/node_modules/semver/functions/compare-build.js","../../../../Sveltekit-App/node_modules/semver/functions/sort.js","../../../../Sveltekit-App/node_modules/semver/functions/rsort.js","../../../../Sveltekit-App/node_modules/semver/functions/gt.js","../../../../Sveltekit-App/node_modules/semver/functions/lt.js","../../../../Sveltekit-App/node_modules/semver/functions/eq.js","../../../../Sveltekit-App/node_modules/semver/functions/neq.js","../../../../Sveltekit-App/node_modules/semver/functions/gte.js","../../../../Sveltekit-App/node_modules/semver/functions/lte.js","../../../../Sveltekit-App/node_modules/semver/functions/cmp.js","../../../../Sveltekit-App/node_modules/semver/functions/coerce.js","../../../../Sveltekit-App/node_modules/yallist/iterator.js","../../../../Sveltekit-App/node_modules/yallist/yallist.js","../../../../Sveltekit-App/node_modules/lru-cache/index.js","../../../../Sveltekit-App/node_modules/semver/classes/range.js","../../../../Sveltekit-App/node_modules/semver/classes/comparator.js","../../../../Sveltekit-App/node_modules/semver/functions/satisfies.js","../../../../Sveltekit-App/node_modules/semver/ranges/to-comparators.js","../../../../Sveltekit-App/node_modules/semver/ranges/max-satisfying.js","../../../../Sveltekit-App/node_modules/semver/ranges/min-satisfying.js","../../../../Sveltekit-App/node_modules/semver/ranges/min-version.js","../../../../Sveltekit-App/node_modules/semver/ranges/valid.js","../../../../Sveltekit-App/node_modules/semver/ranges/outside.js","../../../../Sveltekit-App/node_modules/semver/ranges/gtr.js","../../../../Sveltekit-App/node_modules/semver/ranges/ltr.js","../../../../Sveltekit-App/node_modules/semver/ranges/intersects.js","../../../../Sveltekit-App/node_modules/semver/ranges/simplify.js","../../../../Sveltekit-App/node_modules/semver/ranges/subset.js","../../../../Sveltekit-App/node_modules/semver/index.js","../../../../Sveltekit-App/node_modules/jsonwebtoken/lib/asymmetricKeyDetailsSupported.js","../../../../Sveltekit-App/node_modules/jsonwebtoken/lib/rsaPssKeyDetailsSupported.js","../../../../Sveltekit-App/node_modules/jsonwebtoken/lib/validateAsymmetricKey.js","../../../../Sveltekit-App/node_modules/jsonwebtoken/lib/psSupported.js","../../../../Sveltekit-App/node_modules/jsonwebtoken/verify.js","../../../../Sveltekit-App/node_modules/lodash.includes/index.js","../../../../Sveltekit-App/node_modules/lodash.isboolean/index.js","../../../../Sveltekit-App/node_modules/lodash.isinteger/index.js","../../../../Sveltekit-App/node_modules/lodash.isnumber/index.js","../../../../Sveltekit-App/node_modules/lodash.isplainobject/index.js","../../../../Sveltekit-App/node_modules/lodash.isstring/index.js","../../../../Sveltekit-App/node_modules/lodash.once/index.js","../../../../Sveltekit-App/node_modules/jsonwebtoken/sign.js","../../../../Sveltekit-App/node_modules/jsonwebtoken/index.js","../../../../Sveltekit-App/.svelte-kit/adapter-node/chunks/oauth.js"],"sourcesContent":["'use strict';\n\nexport default function bind(fn, thisArg) {\n return function wrap() {\n return fn.apply(thisArg, arguments);\n };\n}\n","'use strict';\n\nimport bind from './helpers/bind.js';\n\n// utils is a library of generic helper functions non-specific to axios\n\nconst {toString} = Object.prototype;\nconst {getPrototypeOf} = Object;\n\nconst kindOf = (cache => thing => {\n const str = toString.call(thing);\n return cache[str] || (cache[str] = str.slice(8, -1).toLowerCase());\n})(Object.create(null));\n\nconst kindOfTest = (type) => {\n type = type.toLowerCase();\n return (thing) => kindOf(thing) === type\n}\n\nconst typeOfTest = type => thing => typeof thing === type;\n\n/**\n * Determine if a value is an Array\n *\n * @param {Object} val The value to test\n *\n * @returns {boolean} True if value is an Array, otherwise false\n */\nconst {isArray} = Array;\n\n/**\n * Determine if a value is undefined\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if the value is undefined, otherwise false\n */\nconst isUndefined = typeOfTest('undefined');\n\n/**\n * Determine if a value is a Buffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Buffer, otherwise false\n */\nfunction isBuffer(val) {\n return val !== null && !isUndefined(val) && val.constructor !== null && !isUndefined(val.constructor)\n && isFunction(val.constructor.isBuffer) && val.constructor.isBuffer(val);\n}\n\n/**\n * Determine if a value is an ArrayBuffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is an ArrayBuffer, otherwise false\n */\nconst isArrayBuffer = kindOfTest('ArrayBuffer');\n\n\n/**\n * Determine if a value is a view on an ArrayBuffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false\n */\nfunction isArrayBufferView(val) {\n let result;\n if ((typeof ArrayBuffer !== 'undefined') && (ArrayBuffer.isView)) {\n result = ArrayBuffer.isView(val);\n } else {\n result = (val) && (val.buffer) && (isArrayBuffer(val.buffer));\n }\n return result;\n}\n\n/**\n * Determine if a value is a String\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a String, otherwise false\n */\nconst isString = typeOfTest('string');\n\n/**\n * Determine if a value is a Function\n *\n * @param {*} val The value to test\n * @returns {boolean} True if value is a Function, otherwise false\n */\nconst isFunction = typeOfTest('function');\n\n/**\n * Determine if a value is a Number\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Number, otherwise false\n */\nconst isNumber = typeOfTest('number');\n\n/**\n * Determine if a value is an Object\n *\n * @param {*} thing The value to test\n *\n * @returns {boolean} True if value is an Object, otherwise false\n */\nconst isObject = (thing) => thing !== null && typeof thing === 'object';\n\n/**\n * Determine if a value is a Boolean\n *\n * @param {*} thing The value to test\n * @returns {boolean} True if value is a Boolean, otherwise false\n */\nconst isBoolean = thing => thing === true || thing === false;\n\n/**\n * Determine if a value is a plain Object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a plain Object, otherwise false\n */\nconst isPlainObject = (val) => {\n if (kindOf(val) !== 'object') {\n return false;\n }\n\n const prototype = getPrototypeOf(val);\n return (prototype === null || prototype === Object.prototype || Object.getPrototypeOf(prototype) === null) && !(Symbol.toStringTag in val) && !(Symbol.iterator in val);\n}\n\n/**\n * Determine if a value is a Date\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Date, otherwise false\n */\nconst isDate = kindOfTest('Date');\n\n/**\n * Determine if a value is a File\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a File, otherwise false\n */\nconst isFile = kindOfTest('File');\n\n/**\n * Determine if a value is a Blob\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Blob, otherwise false\n */\nconst isBlob = kindOfTest('Blob');\n\n/**\n * Determine if a value is a FileList\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a File, otherwise false\n */\nconst isFileList = kindOfTest('FileList');\n\n/**\n * Determine if a value is a Stream\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Stream, otherwise false\n */\nconst isStream = (val) => isObject(val) && isFunction(val.pipe);\n\n/**\n * Determine if a value is a FormData\n *\n * @param {*} thing The value to test\n *\n * @returns {boolean} True if value is an FormData, otherwise false\n */\nconst isFormData = (thing) => {\n let kind;\n return thing && (\n (typeof FormData === 'function' && thing instanceof FormData) || (\n isFunction(thing.append) && (\n (kind = kindOf(thing)) === 'formdata' ||\n // detect form-data instance\n (kind === 'object' && isFunction(thing.toString) && thing.toString() === '[object FormData]')\n )\n )\n )\n}\n\n/**\n * Determine if a value is a URLSearchParams object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a URLSearchParams object, otherwise false\n */\nconst isURLSearchParams = kindOfTest('URLSearchParams');\n\n/**\n * Trim excess whitespace off the beginning and end of a string\n *\n * @param {String} str The String to trim\n *\n * @returns {String} The String freed of excess whitespace\n */\nconst trim = (str) => str.trim ?\n str.trim() : str.replace(/^[\\s\\uFEFF\\xA0]+|[\\s\\uFEFF\\xA0]+$/g, '');\n\n/**\n * Iterate over an Array or an Object invoking a function for each item.\n *\n * If `obj` is an Array callback will be called passing\n * the value, index, and complete array for each item.\n *\n * If 'obj' is an Object callback will be called passing\n * the value, key, and complete object for each property.\n *\n * @param {Object|Array} obj The object to iterate\n * @param {Function} fn The callback to invoke for each item\n *\n * @param {Boolean} [allOwnKeys = false]\n * @returns {any}\n */\nfunction forEach(obj, fn, {allOwnKeys = false} = {}) {\n // Don't bother if no value provided\n if (obj === null || typeof obj === 'undefined') {\n return;\n }\n\n let i;\n let l;\n\n // Force an array if not already something iterable\n if (typeof obj !== 'object') {\n /*eslint no-param-reassign:0*/\n obj = [obj];\n }\n\n if (isArray(obj)) {\n // Iterate over array values\n for (i = 0, l = obj.length; i < l; i++) {\n fn.call(null, obj[i], i, obj);\n }\n } else {\n // Iterate over object keys\n const keys = allOwnKeys ? Object.getOwnPropertyNames(obj) : Object.keys(obj);\n const len = keys.length;\n let key;\n\n for (i = 0; i < len; i++) {\n key = keys[i];\n fn.call(null, obj[key], key, obj);\n }\n }\n}\n\nfunction findKey(obj, key) {\n key = key.toLowerCase();\n const keys = Object.keys(obj);\n let i = keys.length;\n let _key;\n while (i-- > 0) {\n _key = keys[i];\n if (key === _key.toLowerCase()) {\n return _key;\n }\n }\n return null;\n}\n\nconst _global = (() => {\n /*eslint no-undef:0*/\n if (typeof globalThis !== \"undefined\") return globalThis;\n return typeof self !== \"undefined\" ? self : (typeof window !== 'undefined' ? window : global)\n})();\n\nconst isContextDefined = (context) => !isUndefined(context) && context !== _global;\n\n/**\n * Accepts varargs expecting each argument to be an object, then\n * immutably merges the properties of each object and returns result.\n *\n * When multiple objects contain the same key the later object in\n * the arguments list will take precedence.\n *\n * Example:\n *\n * ```js\n * var result = merge({foo: 123}, {foo: 456});\n * console.log(result.foo); // outputs 456\n * ```\n *\n * @param {Object} obj1 Object to merge\n *\n * @returns {Object} Result of all merge properties\n */\nfunction merge(/* obj1, obj2, obj3, ... */) {\n const {caseless} = isContextDefined(this) && this || {};\n const result = {};\n const assignValue = (val, key) => {\n const targetKey = caseless && findKey(result, key) || key;\n if (isPlainObject(result[targetKey]) && isPlainObject(val)) {\n result[targetKey] = merge(result[targetKey], val);\n } else if (isPlainObject(val)) {\n result[targetKey] = merge({}, val);\n } else if (isArray(val)) {\n result[targetKey] = val.slice();\n } else {\n result[targetKey] = val;\n }\n }\n\n for (let i = 0, l = arguments.length; i < l; i++) {\n arguments[i] && forEach(arguments[i], assignValue);\n }\n return result;\n}\n\n/**\n * Extends object a by mutably adding to it the properties of object b.\n *\n * @param {Object} a The object to be extended\n * @param {Object} b The object to copy properties from\n * @param {Object} thisArg The object to bind function to\n *\n * @param {Boolean} [allOwnKeys]\n * @returns {Object} The resulting value of object a\n */\nconst extend = (a, b, thisArg, {allOwnKeys}= {}) => {\n forEach(b, (val, key) => {\n if (thisArg && isFunction(val)) {\n a[key] = bind(val, thisArg);\n } else {\n a[key] = val;\n }\n }, {allOwnKeys});\n return a;\n}\n\n/**\n * Remove byte order marker. This catches EF BB BF (the UTF-8 BOM)\n *\n * @param {string} content with BOM\n *\n * @returns {string} content value without BOM\n */\nconst stripBOM = (content) => {\n if (content.charCodeAt(0) === 0xFEFF) {\n content = content.slice(1);\n }\n return content;\n}\n\n/**\n * Inherit the prototype methods from one constructor into another\n * @param {function} constructor\n * @param {function} superConstructor\n * @param {object} [props]\n * @param {object} [descriptors]\n *\n * @returns {void}\n */\nconst inherits = (constructor, superConstructor, props, descriptors) => {\n constructor.prototype = Object.create(superConstructor.prototype, descriptors);\n constructor.prototype.constructor = constructor;\n Object.defineProperty(constructor, 'super', {\n value: superConstructor.prototype\n });\n props && Object.assign(constructor.prototype, props);\n}\n\n/**\n * Resolve object with deep prototype chain to a flat object\n * @param {Object} sourceObj source object\n * @param {Object} [destObj]\n * @param {Function|Boolean} [filter]\n * @param {Function} [propFilter]\n *\n * @returns {Object}\n */\nconst toFlatObject = (sourceObj, destObj, filter, propFilter) => {\n let props;\n let i;\n let prop;\n const merged = {};\n\n destObj = destObj || {};\n // eslint-disable-next-line no-eq-null,eqeqeq\n if (sourceObj == null) return destObj;\n\n do {\n props = Object.getOwnPropertyNames(sourceObj);\n i = props.length;\n while (i-- > 0) {\n prop = props[i];\n if ((!propFilter || propFilter(prop, sourceObj, destObj)) && !merged[prop]) {\n destObj[prop] = sourceObj[prop];\n merged[prop] = true;\n }\n }\n sourceObj = filter !== false && getPrototypeOf(sourceObj);\n } while (sourceObj && (!filter || filter(sourceObj, destObj)) && sourceObj !== Object.prototype);\n\n return destObj;\n}\n\n/**\n * Determines whether a string ends with the characters of a specified string\n *\n * @param {String} str\n * @param {String} searchString\n * @param {Number} [position= 0]\n *\n * @returns {boolean}\n */\nconst endsWith = (str, searchString, position) => {\n str = String(str);\n if (position === undefined || position > str.length) {\n position = str.length;\n }\n position -= searchString.length;\n const lastIndex = str.indexOf(searchString, position);\n return lastIndex !== -1 && lastIndex === position;\n}\n\n\n/**\n * Returns new array from array like object or null if failed\n *\n * @param {*} [thing]\n *\n * @returns {?Array}\n */\nconst toArray = (thing) => {\n if (!thing) return null;\n if (isArray(thing)) return thing;\n let i = thing.length;\n if (!isNumber(i)) return null;\n const arr = new Array(i);\n while (i-- > 0) {\n arr[i] = thing[i];\n }\n return arr;\n}\n\n/**\n * Checking if the Uint8Array exists and if it does, it returns a function that checks if the\n * thing passed in is an instance of Uint8Array\n *\n * @param {TypedArray}\n *\n * @returns {Array}\n */\n// eslint-disable-next-line func-names\nconst isTypedArray = (TypedArray => {\n // eslint-disable-next-line func-names\n return thing => {\n return TypedArray && thing instanceof TypedArray;\n };\n})(typeof Uint8Array !== 'undefined' && getPrototypeOf(Uint8Array));\n\n/**\n * For each entry in the object, call the function with the key and value.\n *\n * @param {Object} obj - The object to iterate over.\n * @param {Function} fn - The function to call for each entry.\n *\n * @returns {void}\n */\nconst forEachEntry = (obj, fn) => {\n const generator = obj && obj[Symbol.iterator];\n\n const iterator = generator.call(obj);\n\n let result;\n\n while ((result = iterator.next()) && !result.done) {\n const pair = result.value;\n fn.call(obj, pair[0], pair[1]);\n }\n}\n\n/**\n * It takes a regular expression and a string, and returns an array of all the matches\n *\n * @param {string} regExp - The regular expression to match against.\n * @param {string} str - The string to search.\n *\n * @returns {Array}\n */\nconst matchAll = (regExp, str) => {\n let matches;\n const arr = [];\n\n while ((matches = regExp.exec(str)) !== null) {\n arr.push(matches);\n }\n\n return arr;\n}\n\n/* Checking if the kindOfTest function returns true when passed an HTMLFormElement. */\nconst isHTMLForm = kindOfTest('HTMLFormElement');\n\nconst toCamelCase = str => {\n return str.toLowerCase().replace(/[-_\\s]([a-z\\d])(\\w*)/g,\n function replacer(m, p1, p2) {\n return p1.toUpperCase() + p2;\n }\n );\n};\n\n/* Creating a function that will check if an object has a property. */\nconst hasOwnProperty = (({hasOwnProperty}) => (obj, prop) => hasOwnProperty.call(obj, prop))(Object.prototype);\n\n/**\n * Determine if a value is a RegExp object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a RegExp object, otherwise false\n */\nconst isRegExp = kindOfTest('RegExp');\n\nconst reduceDescriptors = (obj, reducer) => {\n const descriptors = Object.getOwnPropertyDescriptors(obj);\n const reducedDescriptors = {};\n\n forEach(descriptors, (descriptor, name) => {\n let ret;\n if ((ret = reducer(descriptor, name, obj)) !== false) {\n reducedDescriptors[name] = ret || descriptor;\n }\n });\n\n Object.defineProperties(obj, reducedDescriptors);\n}\n\n/**\n * Makes all methods read-only\n * @param {Object} obj\n */\n\nconst freezeMethods = (obj) => {\n reduceDescriptors(obj, (descriptor, name) => {\n // skip restricted props in strict mode\n if (isFunction(obj) && ['arguments', 'caller', 'callee'].indexOf(name) !== -1) {\n return false;\n }\n\n const value = obj[name];\n\n if (!isFunction(value)) return;\n\n descriptor.enumerable = false;\n\n if ('writable' in descriptor) {\n descriptor.writable = false;\n return;\n }\n\n if (!descriptor.set) {\n descriptor.set = () => {\n throw Error('Can not rewrite read-only method \\'' + name + '\\'');\n };\n }\n });\n}\n\nconst toObjectSet = (arrayOrString, delimiter) => {\n const obj = {};\n\n const define = (arr) => {\n arr.forEach(value => {\n obj[value] = true;\n });\n }\n\n isArray(arrayOrString) ? define(arrayOrString) : define(String(arrayOrString).split(delimiter));\n\n return obj;\n}\n\nconst noop = () => {}\n\nconst toFiniteNumber = (value, defaultValue) => {\n value = +value;\n return Number.isFinite(value) ? value : defaultValue;\n}\n\nconst ALPHA = 'abcdefghijklmnopqrstuvwxyz'\n\nconst DIGIT = '0123456789';\n\nconst ALPHABET = {\n DIGIT,\n ALPHA,\n ALPHA_DIGIT: ALPHA + ALPHA.toUpperCase() + DIGIT\n}\n\nconst generateString = (size = 16, alphabet = ALPHABET.ALPHA_DIGIT) => {\n let str = '';\n const {length} = alphabet;\n while (size--) {\n str += alphabet[Math.random() * length|0]\n }\n\n return str;\n}\n\n/**\n * If the thing is a FormData object, return true, otherwise return false.\n *\n * @param {unknown} thing - The thing to check.\n *\n * @returns {boolean}\n */\nfunction isSpecCompliantForm(thing) {\n return !!(thing && isFunction(thing.append) && thing[Symbol.toStringTag] === 'FormData' && thing[Symbol.iterator]);\n}\n\nconst toJSONObject = (obj) => {\n const stack = new Array(10);\n\n const visit = (source, i) => {\n\n if (isObject(source)) {\n if (stack.indexOf(source) >= 0) {\n return;\n }\n\n if(!('toJSON' in source)) {\n stack[i] = source;\n const target = isArray(source) ? [] : {};\n\n forEach(source, (value, key) => {\n const reducedValue = visit(value, i + 1);\n !isUndefined(reducedValue) && (target[key] = reducedValue);\n });\n\n stack[i] = undefined;\n\n return target;\n }\n }\n\n return source;\n }\n\n return visit(obj, 0);\n}\n\nconst isAsyncFn = kindOfTest('AsyncFunction');\n\nconst isThenable = (thing) =>\n thing && (isObject(thing) || isFunction(thing)) && isFunction(thing.then) && isFunction(thing.catch);\n\nexport default {\n isArray,\n isArrayBuffer,\n isBuffer,\n isFormData,\n isArrayBufferView,\n isString,\n isNumber,\n isBoolean,\n isObject,\n isPlainObject,\n isUndefined,\n isDate,\n isFile,\n isBlob,\n isRegExp,\n isFunction,\n isStream,\n isURLSearchParams,\n isTypedArray,\n isFileList,\n forEach,\n merge,\n extend,\n trim,\n stripBOM,\n inherits,\n toFlatObject,\n kindOf,\n kindOfTest,\n endsWith,\n toArray,\n forEachEntry,\n matchAll,\n isHTMLForm,\n hasOwnProperty,\n hasOwnProp: hasOwnProperty, // an alias to avoid ESLint no-prototype-builtins detection\n reduceDescriptors,\n freezeMethods,\n toObjectSet,\n toCamelCase,\n noop,\n toFiniteNumber,\n findKey,\n global: _global,\n isContextDefined,\n ALPHABET,\n generateString,\n isSpecCompliantForm,\n toJSONObject,\n isAsyncFn,\n isThenable\n};\n","'use strict';\n\nimport utils from '../utils.js';\n\n/**\n * Create an Error with the specified message, config, error code, request and response.\n *\n * @param {string} message The error message.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [config] The config.\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n *\n * @returns {Error} The created error.\n */\nfunction AxiosError(message, code, config, request, response) {\n Error.call(this);\n\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, this.constructor);\n } else {\n this.stack = (new Error()).stack;\n }\n\n this.message = message;\n this.name = 'AxiosError';\n code && (this.code = code);\n config && (this.config = config);\n request && (this.request = request);\n response && (this.response = response);\n}\n\nutils.inherits(AxiosError, Error, {\n toJSON: function toJSON() {\n return {\n // Standard\n message: this.message,\n name: this.name,\n // Microsoft\n description: this.description,\n number: this.number,\n // Mozilla\n fileName: this.fileName,\n lineNumber: this.lineNumber,\n columnNumber: this.columnNumber,\n stack: this.stack,\n // Axios\n config: utils.toJSONObject(this.config),\n code: this.code,\n status: this.response && this.response.status ? this.response.status : null\n };\n }\n});\n\nconst prototype = AxiosError.prototype;\nconst descriptors = {};\n\n[\n 'ERR_BAD_OPTION_VALUE',\n 'ERR_BAD_OPTION',\n 'ECONNABORTED',\n 'ETIMEDOUT',\n 'ERR_NETWORK',\n 'ERR_FR_TOO_MANY_REDIRECTS',\n 'ERR_DEPRECATED',\n 'ERR_BAD_RESPONSE',\n 'ERR_BAD_REQUEST',\n 'ERR_CANCELED',\n 'ERR_NOT_SUPPORT',\n 'ERR_INVALID_URL'\n// eslint-disable-next-line func-names\n].forEach(code => {\n descriptors[code] = {value: code};\n});\n\nObject.defineProperties(AxiosError, descriptors);\nObject.defineProperty(prototype, 'isAxiosError', {value: true});\n\n// eslint-disable-next-line func-names\nAxiosError.from = (error, code, config, request, response, customProps) => {\n const axiosError = Object.create(prototype);\n\n utils.toFlatObject(error, axiosError, function filter(obj) {\n return obj !== Error.prototype;\n }, prop => {\n return prop !== 'isAxiosError';\n });\n\n AxiosError.call(axiosError, error.message, code, config, request, response);\n\n axiosError.cause = error;\n\n axiosError.name = error.name;\n\n customProps && Object.assign(axiosError, customProps);\n\n return axiosError;\n};\n\nexport default AxiosError;\n","var Stream = require('stream').Stream;\nvar util = require('util');\n\nmodule.exports = DelayedStream;\nfunction DelayedStream() {\n this.source = null;\n this.dataSize = 0;\n this.maxDataSize = 1024 * 1024;\n this.pauseStream = true;\n\n this._maxDataSizeExceeded = false;\n this._released = false;\n this._bufferedEvents = [];\n}\nutil.inherits(DelayedStream, Stream);\n\nDelayedStream.create = function(source, options) {\n var delayedStream = new this();\n\n options = options || {};\n for (var option in options) {\n delayedStream[option] = options[option];\n }\n\n delayedStream.source = source;\n\n var realEmit = source.emit;\n source.emit = function() {\n delayedStream._handleEmit(arguments);\n return realEmit.apply(source, arguments);\n };\n\n source.on('error', function() {});\n if (delayedStream.pauseStream) {\n source.pause();\n }\n\n return delayedStream;\n};\n\nObject.defineProperty(DelayedStream.prototype, 'readable', {\n configurable: true,\n enumerable: true,\n get: function() {\n return this.source.readable;\n }\n});\n\nDelayedStream.prototype.setEncoding = function() {\n return this.source.setEncoding.apply(this.source, arguments);\n};\n\nDelayedStream.prototype.resume = function() {\n if (!this._released) {\n this.release();\n }\n\n this.source.resume();\n};\n\nDelayedStream.prototype.pause = function() {\n this.source.pause();\n};\n\nDelayedStream.prototype.release = function() {\n this._released = true;\n\n this._bufferedEvents.forEach(function(args) {\n this.emit.apply(this, args);\n }.bind(this));\n this._bufferedEvents = [];\n};\n\nDelayedStream.prototype.pipe = function() {\n var r = Stream.prototype.pipe.apply(this, arguments);\n this.resume();\n return r;\n};\n\nDelayedStream.prototype._handleEmit = function(args) {\n if (this._released) {\n this.emit.apply(this, args);\n return;\n }\n\n if (args[0] === 'data') {\n this.dataSize += args[1].length;\n this._checkIfMaxDataSizeExceeded();\n }\n\n this._bufferedEvents.push(args);\n};\n\nDelayedStream.prototype._checkIfMaxDataSizeExceeded = function() {\n if (this._maxDataSizeExceeded) {\n return;\n }\n\n if (this.dataSize <= this.maxDataSize) {\n return;\n }\n\n this._maxDataSizeExceeded = true;\n var message =\n 'DelayedStream#maxDataSize of ' + this.maxDataSize + ' bytes exceeded.'\n this.emit('error', new Error(message));\n};\n","var util = require('util');\nvar Stream = require('stream').Stream;\nvar DelayedStream = require('delayed-stream');\n\nmodule.exports = CombinedStream;\nfunction CombinedStream() {\n this.writable = false;\n this.readable = true;\n this.dataSize = 0;\n this.maxDataSize = 2 * 1024 * 1024;\n this.pauseStreams = true;\n\n this._released = false;\n this._streams = [];\n this._currentStream = null;\n this._insideLoop = false;\n this._pendingNext = false;\n}\nutil.inherits(CombinedStream, Stream);\n\nCombinedStream.create = function(options) {\n var combinedStream = new this();\n\n options = options || {};\n for (var option in options) {\n combinedStream[option] = options[option];\n }\n\n return combinedStream;\n};\n\nCombinedStream.isStreamLike = function(stream) {\n return (typeof stream !== 'function')\n && (typeof stream !== 'string')\n && (typeof stream !== 'boolean')\n && (typeof stream !== 'number')\n && (!Buffer.isBuffer(stream));\n};\n\nCombinedStream.prototype.append = function(stream) {\n var isStreamLike = CombinedStream.isStreamLike(stream);\n\n if (isStreamLike) {\n if (!(stream instanceof DelayedStream)) {\n var newStream = DelayedStream.create(stream, {\n maxDataSize: Infinity,\n pauseStream: this.pauseStreams,\n });\n stream.on('data', this._checkDataSize.bind(this));\n stream = newStream;\n }\n\n this._handleErrors(stream);\n\n if (this.pauseStreams) {\n stream.pause();\n }\n }\n\n this._streams.push(stream);\n return this;\n};\n\nCombinedStream.prototype.pipe = function(dest, options) {\n Stream.prototype.pipe.call(this, dest, options);\n this.resume();\n return dest;\n};\n\nCombinedStream.prototype._getNext = function() {\n this._currentStream = null;\n\n if (this._insideLoop) {\n this._pendingNext = true;\n return; // defer call\n }\n\n this._insideLoop = true;\n try {\n do {\n this._pendingNext = false;\n this._realGetNext();\n } while (this._pendingNext);\n } finally {\n this._insideLoop = false;\n }\n};\n\nCombinedStream.prototype._realGetNext = function() {\n var stream = this._streams.shift();\n\n\n if (typeof stream == 'undefined') {\n this.end();\n return;\n }\n\n if (typeof stream !== 'function') {\n this._pipeNext(stream);\n return;\n }\n\n var getStream = stream;\n getStream(function(stream) {\n var isStreamLike = CombinedStream.isStreamLike(stream);\n if (isStreamLike) {\n stream.on('data', this._checkDataSize.bind(this));\n this._handleErrors(stream);\n }\n\n this._pipeNext(stream);\n }.bind(this));\n};\n\nCombinedStream.prototype._pipeNext = function(stream) {\n this._currentStream = stream;\n\n var isStreamLike = CombinedStream.isStreamLike(stream);\n if (isStreamLike) {\n stream.on('end', this._getNext.bind(this));\n stream.pipe(this, {end: false});\n return;\n }\n\n var value = stream;\n this.write(value);\n this._getNext();\n};\n\nCombinedStream.prototype._handleErrors = function(stream) {\n var self = this;\n stream.on('error', function(err) {\n self._emitError(err);\n });\n};\n\nCombinedStream.prototype.write = function(data) {\n this.emit('data', data);\n};\n\nCombinedStream.prototype.pause = function() {\n if (!this.pauseStreams) {\n return;\n }\n\n if(this.pauseStreams && this._currentStream && typeof(this._currentStream.pause) == 'function') this._currentStream.pause();\n this.emit('pause');\n};\n\nCombinedStream.prototype.resume = function() {\n if (!this._released) {\n this._released = true;\n this.writable = true;\n this._getNext();\n }\n\n if(this.pauseStreams && this._currentStream && typeof(this._currentStream.resume) == 'function') this._currentStream.resume();\n this.emit('resume');\n};\n\nCombinedStream.prototype.end = function() {\n this._reset();\n this.emit('end');\n};\n\nCombinedStream.prototype.destroy = function() {\n this._reset();\n this.emit('close');\n};\n\nCombinedStream.prototype._reset = function() {\n this.writable = false;\n this._streams = [];\n this._currentStream = null;\n};\n\nCombinedStream.prototype._checkDataSize = function() {\n this._updateDataSize();\n if (this.dataSize <= this.maxDataSize) {\n return;\n }\n\n var message =\n 'DelayedStream#maxDataSize of ' + this.maxDataSize + ' bytes exceeded.';\n this._emitError(new Error(message));\n};\n\nCombinedStream.prototype._updateDataSize = function() {\n this.dataSize = 0;\n\n var self = this;\n this._streams.forEach(function(stream) {\n if (!stream.dataSize) {\n return;\n }\n\n self.dataSize += stream.dataSize;\n });\n\n if (this._currentStream && this._currentStream.dataSize) {\n this.dataSize += this._currentStream.dataSize;\n }\n};\n\nCombinedStream.prototype._emitError = function(err) {\n this._reset();\n this.emit('error', err);\n};\n","/*!\n * mime-db\n * Copyright(c) 2014 Jonathan Ong\n * Copyright(c) 2015-2022 Douglas Christopher Wilson\n * MIT Licensed\n */\n\n/**\n * Module exports.\n */\n\nmodule.exports = require('./db.json')\n","/*!\n * mime-types\n * Copyright(c) 2014 Jonathan Ong\n * Copyright(c) 2015 Douglas Christopher Wilson\n * MIT Licensed\n */\n\n'use strict'\n\n/**\n * Module dependencies.\n * @private\n */\n\nvar db = require('mime-db')\nvar extname = require('path').extname\n\n/**\n * Module variables.\n * @private\n */\n\nvar EXTRACT_TYPE_REGEXP = /^\\s*([^;\\s]*)(?:;|\\s|$)/\nvar TEXT_TYPE_REGEXP = /^text\\//i\n\n/**\n * Module exports.\n * @public\n */\n\nexports.charset = charset\nexports.charsets = { lookup: charset }\nexports.contentType = contentType\nexports.extension = extension\nexports.extensions = Object.create(null)\nexports.lookup = lookup\nexports.types = Object.create(null)\n\n// Populate the extensions/types maps\npopulateMaps(exports.extensions, exports.types)\n\n/**\n * Get the default charset for a MIME type.\n *\n * @param {string} type\n * @return {boolean|string}\n */\n\nfunction charset (type) {\n if (!type || typeof type !== 'string') {\n return false\n }\n\n // TODO: use media-typer\n var match = EXTRACT_TYPE_REGEXP.exec(type)\n var mime = match && db[match[1].toLowerCase()]\n\n if (mime && mime.charset) {\n return mime.charset\n }\n\n // default text/* to utf-8\n if (match && TEXT_TYPE_REGEXP.test(match[1])) {\n return 'UTF-8'\n }\n\n return false\n}\n\n/**\n * Create a full Content-Type header given a MIME type or extension.\n *\n * @param {string} str\n * @return {boolean|string}\n */\n\nfunction contentType (str) {\n // TODO: should this even be in this module?\n if (!str || typeof str !== 'string') {\n return false\n }\n\n var mime = str.indexOf('/') === -1\n ? exports.lookup(str)\n : str\n\n if (!mime) {\n return false\n }\n\n // TODO: use content-type or other module\n if (mime.indexOf('charset') === -1) {\n var charset = exports.charset(mime)\n if (charset) mime += '; charset=' + charset.toLowerCase()\n }\n\n return mime\n}\n\n/**\n * Get the default extension for a MIME type.\n *\n * @param {string} type\n * @return {boolean|string}\n */\n\nfunction extension (type) {\n if (!type || typeof type !== 'string') {\n return false\n }\n\n // TODO: use media-typer\n var match = EXTRACT_TYPE_REGEXP.exec(type)\n\n // get extensions\n var exts = match && exports.extensions[match[1].toLowerCase()]\n\n if (!exts || !exts.length) {\n return false\n }\n\n return exts[0]\n}\n\n/**\n * Lookup the MIME type for a file path/extension.\n *\n * @param {string} path\n * @return {boolean|string}\n */\n\nfunction lookup (path) {\n if (!path || typeof path !== 'string') {\n return false\n }\n\n // get the extension (\"ext\" or \".ext\" or full path)\n var extension = extname('x.' + path)\n .toLowerCase()\n .substr(1)\n\n if (!extension) {\n return false\n }\n\n return exports.types[extension] || false\n}\n\n/**\n * Populate the extensions and types maps.\n * @private\n */\n\nfunction populateMaps (extensions, types) {\n // source preference (least -> most)\n var preference = ['nginx', 'apache', undefined, 'iana']\n\n Object.keys(db).forEach(function forEachMimeType (type) {\n var mime = db[type]\n var exts = mime.extensions\n\n if (!exts || !exts.length) {\n return\n }\n\n // mime -> extensions\n extensions[type] = exts\n\n // extension -> mime\n for (var i = 0; i < exts.length; i++) {\n var extension = exts[i]\n\n if (types[extension]) {\n var from = preference.indexOf(db[types[extension]].source)\n var to = preference.indexOf(mime.source)\n\n if (types[extension] !== 'application/octet-stream' &&\n (from > to || (from === to && types[extension].substr(0, 12) === 'application/'))) {\n // skip the remapping\n continue\n }\n }\n\n // set the extension -> mime\n types[extension] = type\n }\n })\n}\n","module.exports = defer;\n\n/**\n * Runs provided function on next iteration of the event loop\n *\n * @param {function} fn - function to run\n */\nfunction defer(fn)\n{\n var nextTick = typeof setImmediate == 'function'\n ? setImmediate\n : (\n typeof process == 'object' && typeof process.nextTick == 'function'\n ? process.nextTick\n : null\n );\n\n if (nextTick)\n {\n nextTick(fn);\n }\n else\n {\n setTimeout(fn, 0);\n }\n}\n","var defer = require('./defer.js');\n\n// API\nmodule.exports = async;\n\n/**\n * Runs provided callback asynchronously\n * even if callback itself is not\n *\n * @param {function} callback - callback to invoke\n * @returns {function} - augmented callback\n */\nfunction async(callback)\n{\n var isAsync = false;\n\n // check if async happened\n defer(function() { isAsync = true; });\n\n return function async_callback(err, result)\n {\n if (isAsync)\n {\n callback(err, result);\n }\n else\n {\n defer(function nextTick_callback()\n {\n callback(err, result);\n });\n }\n };\n}\n","// API\nmodule.exports = abort;\n\n/**\n * Aborts leftover active jobs\n *\n * @param {object} state - current state object\n */\nfunction abort(state)\n{\n Object.keys(state.jobs).forEach(clean.bind(state));\n\n // reset leftover jobs\n state.jobs = {};\n}\n\n/**\n * Cleans up leftover job by invoking abort function for the provided job id\n *\n * @this state\n * @param {string|number} key - job id to abort\n */\nfunction clean(key)\n{\n if (typeof this.jobs[key] == 'function')\n {\n this.jobs[key]();\n }\n}\n","var async = require('./async.js')\n , abort = require('./abort.js')\n ;\n\n// API\nmodule.exports = iterate;\n\n/**\n * Iterates over each job object\n *\n * @param {array|object} list - array or object (named list) to iterate over\n * @param {function} iterator - iterator to run\n * @param {object} state - current job status\n * @param {function} callback - invoked when all elements processed\n */\nfunction iterate(list, iterator, state, callback)\n{\n // store current index\n var key = state['keyedList'] ? state['keyedList'][state.index] : state.index;\n\n state.jobs[key] = runJob(iterator, key, list[key], function(error, output)\n {\n // don't repeat yourself\n // skip secondary callbacks\n if (!(key in state.jobs))\n {\n return;\n }\n\n // clean up jobs\n delete state.jobs[key];\n\n if (error)\n {\n // don't process rest of the results\n // stop still active jobs\n // and reset the list\n abort(state);\n }\n else\n {\n state.results[key] = output;\n }\n\n // return salvaged results\n callback(error, state.results);\n });\n}\n\n/**\n * Runs iterator over provided job element\n *\n * @param {function} iterator - iterator to invoke\n * @param {string|number} key - key/index of the element in the list of jobs\n * @param {mixed} item - job description\n * @param {function} callback - invoked after iterator is done with the job\n * @returns {function|mixed} - job abort function or something else\n */\nfunction runJob(iterator, key, item, callback)\n{\n var aborter;\n\n // allow shortcut if iterator expects only two arguments\n if (iterator.length == 2)\n {\n aborter = iterator(item, async(callback));\n }\n // otherwise go with full three arguments\n else\n {\n aborter = iterator(item, key, async(callback));\n }\n\n return aborter;\n}\n","// API\nmodule.exports = state;\n\n/**\n * Creates initial state object\n * for iteration over list\n *\n * @param {array|object} list - list to iterate over\n * @param {function|null} sortMethod - function to use for keys sort,\n * or `null` to keep them as is\n * @returns {object} - initial state object\n */\nfunction state(list, sortMethod)\n{\n var isNamedList = !Array.isArray(list)\n , initState =\n {\n index : 0,\n keyedList: isNamedList || sortMethod ? Object.keys(list) : null,\n jobs : {},\n results : isNamedList ? {} : [],\n size : isNamedList ? Object.keys(list).length : list.length\n }\n ;\n\n if (sortMethod)\n {\n // sort array keys based on it's values\n // sort object's keys just on own merit\n initState.keyedList.sort(isNamedList ? sortMethod : function(a, b)\n {\n return sortMethod(list[a], list[b]);\n });\n }\n\n return initState;\n}\n","var abort = require('./abort.js')\n , async = require('./async.js')\n ;\n\n// API\nmodule.exports = terminator;\n\n/**\n * Terminates jobs in the attached state context\n *\n * @this AsyncKitState#\n * @param {function} callback - final callback to invoke after termination\n */\nfunction terminator(callback)\n{\n if (!Object.keys(this.jobs).length)\n {\n return;\n }\n\n // fast forward iteration index\n this.index = this.size;\n\n // abort jobs\n abort(this);\n\n // send back results we have so far\n async(callback)(null, this.results);\n}\n","var iterate = require('./lib/iterate.js')\n , initState = require('./lib/state.js')\n , terminator = require('./lib/terminator.js')\n ;\n\n// Public API\nmodule.exports = parallel;\n\n/**\n * Runs iterator over provided array elements in parallel\n *\n * @param {array|object} list - array or object (named list) to iterate over\n * @param {function} iterator - iterator to run\n * @param {function} callback - invoked when all elements processed\n * @returns {function} - jobs terminator\n */\nfunction parallel(list, iterator, callback)\n{\n var state = initState(list);\n\n while (state.index < (state['keyedList'] || list).length)\n {\n iterate(list, iterator, state, function(error, result)\n {\n if (error)\n {\n callback(error, result);\n return;\n }\n\n // looks like it's the last one\n if (Object.keys(state.jobs).length === 0)\n {\n callback(null, state.results);\n return;\n }\n });\n\n state.index++;\n }\n\n return terminator.bind(state, callback);\n}\n","var iterate = require('./lib/iterate.js')\n , initState = require('./lib/state.js')\n , terminator = require('./lib/terminator.js')\n ;\n\n// Public API\nmodule.exports = serialOrdered;\n// sorting helpers\nmodule.exports.ascending = ascending;\nmodule.exports.descending = descending;\n\n/**\n * Runs iterator over provided sorted array elements in series\n *\n * @param {array|object} list - array or object (named list) to iterate over\n * @param {function} iterator - iterator to run\n * @param {function} sortMethod - custom sort function\n * @param {function} callback - invoked when all elements processed\n * @returns {function} - jobs terminator\n */\nfunction serialOrdered(list, iterator, sortMethod, callback)\n{\n var state = initState(list, sortMethod);\n\n iterate(list, iterator, state, function iteratorHandler(error, result)\n {\n if (error)\n {\n callback(error, result);\n return;\n }\n\n state.index++;\n\n // are we there yet?\n if (state.index < (state['keyedList'] || list).length)\n {\n iterate(list, iterator, state, iteratorHandler);\n return;\n }\n\n // done here\n callback(null, state.results);\n });\n\n return terminator.bind(state, callback);\n}\n\n/*\n * -- Sort methods\n */\n\n/**\n * sort helper to sort array elements in ascending order\n *\n * @param {mixed} a - an item to compare\n * @param {mixed} b - an item to compare\n * @returns {number} - comparison result\n */\nfunction ascending(a, b)\n{\n return a < b ? -1 : a > b ? 1 : 0;\n}\n\n/**\n * sort helper to sort array elements in descending order\n *\n * @param {mixed} a - an item to compare\n * @param {mixed} b - an item to compare\n * @returns {number} - comparison result\n */\nfunction descending(a, b)\n{\n return -1 * ascending(a, b);\n}\n","var serialOrdered = require('./serialOrdered.js');\n\n// Public API\nmodule.exports = serial;\n\n/**\n * Runs iterator over provided array elements in series\n *\n * @param {array|object} list - array or object (named list) to iterate over\n * @param {function} iterator - iterator to run\n * @param {function} callback - invoked when all elements processed\n * @returns {function} - jobs terminator\n */\nfunction serial(list, iterator, callback)\n{\n return serialOrdered(list, iterator, null, callback);\n}\n","module.exports =\n{\n parallel : require('./parallel.js'),\n serial : require('./serial.js'),\n serialOrdered : require('./serialOrdered.js')\n};\n","// populates missing values\nmodule.exports = function(dst, src) {\n\n Object.keys(src).forEach(function(prop)\n {\n dst[prop] = dst[prop] || src[prop];\n });\n\n return dst;\n};\n","var CombinedStream = require('combined-stream');\nvar util = require('util');\nvar path = require('path');\nvar http = require('http');\nvar https = require('https');\nvar parseUrl = require('url').parse;\nvar fs = require('fs');\nvar Stream = require('stream').Stream;\nvar mime = require('mime-types');\nvar asynckit = require('asynckit');\nvar populate = require('./populate.js');\n\n// Public API\nmodule.exports = FormData;\n\n// make it a Stream\nutil.inherits(FormData, CombinedStream);\n\n/**\n * Create readable \"multipart/form-data\" streams.\n * Can be used to submit forms\n * and file uploads to other web applications.\n *\n * @constructor\n * @param {Object} options - Properties to be added/overriden for FormData and CombinedStream\n */\nfunction FormData(options) {\n if (!(this instanceof FormData)) {\n return new FormData(options);\n }\n\n this._overheadLength = 0;\n this._valueLength = 0;\n this._valuesToMeasure = [];\n\n CombinedStream.call(this);\n\n options = options || {};\n for (var option in options) {\n this[option] = options[option];\n }\n}\n\nFormData.LINE_BREAK = '\\r\\n';\nFormData.DEFAULT_CONTENT_TYPE = 'application/octet-stream';\n\nFormData.prototype.append = function(field, value, options) {\n\n options = options || {};\n\n // allow filename as single option\n if (typeof options == 'string') {\n options = {filename: options};\n }\n\n var append = CombinedStream.prototype.append.bind(this);\n\n // all that streamy business can't handle numbers\n if (typeof value == 'number') {\n value = '' + value;\n }\n\n // https://github.com/felixge/node-form-data/issues/38\n if (util.isArray(value)) {\n // Please convert your array into string\n // the way web server expects it\n this._error(new Error('Arrays are not supported.'));\n return;\n }\n\n var header = this._multiPartHeader(field, value, options);\n var footer = this._multiPartFooter();\n\n append(header);\n append(value);\n append(footer);\n\n // pass along options.knownLength\n this._trackLength(header, value, options);\n};\n\nFormData.prototype._trackLength = function(header, value, options) {\n var valueLength = 0;\n\n // used w/ getLengthSync(), when length is known.\n // e.g. for streaming directly from a remote server,\n // w/ a known file a size, and not wanting to wait for\n // incoming file to finish to get its size.\n if (options.knownLength != null) {\n valueLength += +options.knownLength;\n } else if (Buffer.isBuffer(value)) {\n valueLength = value.length;\n } else if (typeof value === 'string') {\n valueLength = Buffer.byteLength(value);\n }\n\n this._valueLength += valueLength;\n\n // @check why add CRLF? does this account for custom/multiple CRLFs?\n this._overheadLength +=\n Buffer.byteLength(header) +\n FormData.LINE_BREAK.length;\n\n // empty or either doesn't have path or not an http response or not a stream\n if (!value || ( !value.path && !(value.readable && value.hasOwnProperty('httpVersion')) && !(value instanceof Stream))) {\n return;\n }\n\n // no need to bother with the length\n if (!options.knownLength) {\n this._valuesToMeasure.push(value);\n }\n};\n\nFormData.prototype._lengthRetriever = function(value, callback) {\n\n if (value.hasOwnProperty('fd')) {\n\n // take read range into a account\n // `end` = Infinity –> read file till the end\n //\n // TODO: Looks like there is bug in Node fs.createReadStream\n // it doesn't respect `end` options without `start` options\n // Fix it when node fixes it.\n // https://github.com/joyent/node/issues/7819\n if (value.end != undefined && value.end != Infinity && value.start != undefined) {\n\n // when end specified\n // no need to calculate range\n // inclusive, starts with 0\n callback(null, value.end + 1 - (value.start ? value.start : 0));\n\n // not that fast snoopy\n } else {\n // still need to fetch file size from fs\n fs.stat(value.path, function(err, stat) {\n\n var fileSize;\n\n if (err) {\n callback(err);\n return;\n }\n\n // update final size based on the range options\n fileSize = stat.size - (value.start ? value.start : 0);\n callback(null, fileSize);\n });\n }\n\n // or http response\n } else if (value.hasOwnProperty('httpVersion')) {\n callback(null, +value.headers['content-length']);\n\n // or request stream http://github.com/mikeal/request\n } else if (value.hasOwnProperty('httpModule')) {\n // wait till response come back\n value.on('response', function(response) {\n value.pause();\n callback(null, +response.headers['content-length']);\n });\n value.resume();\n\n // something else\n } else {\n callback('Unknown stream');\n }\n};\n\nFormData.prototype._multiPartHeader = function(field, value, options) {\n // custom header specified (as string)?\n // it becomes responsible for boundary\n // (e.g. to handle extra CRLFs on .NET servers)\n if (typeof options.header == 'string') {\n return options.header;\n }\n\n var contentDisposition = this._getContentDisposition(value, options);\n var contentType = this._getContentType(value, options);\n\n var contents = '';\n var headers = {\n // add custom disposition as third element or keep it two elements if not\n 'Content-Disposition': ['form-data', 'name=\"' + field + '\"'].concat(contentDisposition || []),\n // if no content type. allow it to be empty array\n 'Content-Type': [].concat(contentType || [])\n };\n\n // allow custom headers.\n if (typeof options.header == 'object') {\n populate(headers, options.header);\n }\n\n var header;\n for (var prop in headers) {\n if (!headers.hasOwnProperty(prop)) continue;\n header = headers[prop];\n\n // skip nullish headers.\n if (header == null) {\n continue;\n }\n\n // convert all headers to arrays.\n if (!Array.isArray(header)) {\n header = [header];\n }\n\n // add non-empty headers.\n if (header.length) {\n contents += prop + ': ' + header.join('; ') + FormData.LINE_BREAK;\n }\n }\n\n return '--' + this.getBoundary() + FormData.LINE_BREAK + contents + FormData.LINE_BREAK;\n};\n\nFormData.prototype._getContentDisposition = function(value, options) {\n\n var filename\n , contentDisposition\n ;\n\n if (typeof options.filepath === 'string') {\n // custom filepath for relative paths\n filename = path.normalize(options.filepath).replace(/\\\\/g, '/');\n } else if (options.filename || value.name || value.path) {\n // custom filename take precedence\n // formidable and the browser add a name property\n // fs- and request- streams have path property\n filename = path.basename(options.filename || value.name || value.path);\n } else if (value.readable && value.hasOwnProperty('httpVersion')) {\n // or try http response\n filename = path.basename(value.client._httpMessage.path || '');\n }\n\n if (filename) {\n contentDisposition = 'filename=\"' + filename + '\"';\n }\n\n return contentDisposition;\n};\n\nFormData.prototype._getContentType = function(value, options) {\n\n // use custom content-type above all\n var contentType = options.contentType;\n\n // or try `name` from formidable, browser\n if (!contentType && value.name) {\n contentType = mime.lookup(value.name);\n }\n\n // or try `path` from fs-, request- streams\n if (!contentType && value.path) {\n contentType = mime.lookup(value.path);\n }\n\n // or if it's http-reponse\n if (!contentType && value.readable && value.hasOwnProperty('httpVersion')) {\n contentType = value.headers['content-type'];\n }\n\n // or guess it from the filepath or filename\n if (!contentType && (options.filepath || options.filename)) {\n contentType = mime.lookup(options.filepath || options.filename);\n }\n\n // fallback to the default content type if `value` is not simple value\n if (!contentType && typeof value == 'object') {\n contentType = FormData.DEFAULT_CONTENT_TYPE;\n }\n\n return contentType;\n};\n\nFormData.prototype._multiPartFooter = function() {\n return function(next) {\n var footer = FormData.LINE_BREAK;\n\n var lastPart = (this._streams.length === 0);\n if (lastPart) {\n footer += this._lastBoundary();\n }\n\n next(footer);\n }.bind(this);\n};\n\nFormData.prototype._lastBoundary = function() {\n return '--' + this.getBoundary() + '--' + FormData.LINE_BREAK;\n};\n\nFormData.prototype.getHeaders = function(userHeaders) {\n var header;\n var formHeaders = {\n 'content-type': 'multipart/form-data; boundary=' + this.getBoundary()\n };\n\n for (header in userHeaders) {\n if (userHeaders.hasOwnProperty(header)) {\n formHeaders[header.toLowerCase()] = userHeaders[header];\n }\n }\n\n return formHeaders;\n};\n\nFormData.prototype.setBoundary = function(boundary) {\n this._boundary = boundary;\n};\n\nFormData.prototype.getBoundary = function() {\n if (!this._boundary) {\n this._generateBoundary();\n }\n\n return this._boundary;\n};\n\nFormData.prototype.getBuffer = function() {\n var dataBuffer = new Buffer.alloc( 0 );\n var boundary = this.getBoundary();\n\n // Create the form content. Add Line breaks to the end of data.\n for (var i = 0, len = this._streams.length; i < len; i++) {\n if (typeof this._streams[i] !== 'function') {\n\n // Add content to the buffer.\n if(Buffer.isBuffer(this._streams[i])) {\n dataBuffer = Buffer.concat( [dataBuffer, this._streams[i]]);\n }else {\n dataBuffer = Buffer.concat( [dataBuffer, Buffer.from(this._streams[i])]);\n }\n\n // Add break after content.\n if (typeof this._streams[i] !== 'string' || this._streams[i].substring( 2, boundary.length + 2 ) !== boundary) {\n dataBuffer = Buffer.concat( [dataBuffer, Buffer.from(FormData.LINE_BREAK)] );\n }\n }\n }\n\n // Add the footer and return the Buffer object.\n return Buffer.concat( [dataBuffer, Buffer.from(this._lastBoundary())] );\n};\n\nFormData.prototype._generateBoundary = function() {\n // This generates a 50 character boundary similar to those used by Firefox.\n // They are optimized for boyer-moore parsing.\n var boundary = '--------------------------';\n for (var i = 0; i < 24; i++) {\n boundary += Math.floor(Math.random() * 10).toString(16);\n }\n\n this._boundary = boundary;\n};\n\n// Note: getLengthSync DOESN'T calculate streams length\n// As workaround one can calculate file size manually\n// and add it as knownLength option\nFormData.prototype.getLengthSync = function() {\n var knownLength = this._overheadLength + this._valueLength;\n\n // Don't get confused, there are 3 \"internal\" streams for each keyval pair\n // so it basically checks if there is any value added to the form\n if (this._streams.length) {\n knownLength += this._lastBoundary().length;\n }\n\n // https://github.com/form-data/form-data/issues/40\n if (!this.hasKnownLength()) {\n // Some async length retrievers are present\n // therefore synchronous length calculation is false.\n // Please use getLength(callback) to get proper length\n this._error(new Error('Cannot calculate proper length in synchronous way.'));\n }\n\n return knownLength;\n};\n\n// Public API to check if length of added values is known\n// https://github.com/form-data/form-data/issues/196\n// https://github.com/form-data/form-data/issues/262\nFormData.prototype.hasKnownLength = function() {\n var hasKnownLength = true;\n\n if (this._valuesToMeasure.length) {\n hasKnownLength = false;\n }\n\n return hasKnownLength;\n};\n\nFormData.prototype.getLength = function(cb) {\n var knownLength = this._overheadLength + this._valueLength;\n\n if (this._streams.length) {\n knownLength += this._lastBoundary().length;\n }\n\n if (!this._valuesToMeasure.length) {\n process.nextTick(cb.bind(this, null, knownLength));\n return;\n }\n\n asynckit.parallel(this._valuesToMeasure, this._lengthRetriever, function(err, values) {\n if (err) {\n cb(err);\n return;\n }\n\n values.forEach(function(length) {\n knownLength += length;\n });\n\n cb(null, knownLength);\n });\n};\n\nFormData.prototype.submit = function(params, cb) {\n var request\n , options\n , defaults = {method: 'post'}\n ;\n\n // parse provided url if it's string\n // or treat it as options object\n if (typeof params == 'string') {\n\n params = parseUrl(params);\n options = populate({\n port: params.port,\n path: params.pathname,\n host: params.hostname,\n protocol: params.protocol\n }, defaults);\n\n // use custom params\n } else {\n\n options = populate(params, defaults);\n // if no port provided use default one\n if (!options.port) {\n options.port = options.protocol == 'https:' ? 443 : 80;\n }\n }\n\n // put that good code in getHeaders to some use\n options.headers = this.getHeaders(params.headers);\n\n // https if specified, fallback to http in any other case\n if (options.protocol == 'https:') {\n request = https.request(options);\n } else {\n request = http.request(options);\n }\n\n // get content length and fire away\n this.getLength(function(err, length) {\n if (err && err !== 'Unknown stream') {\n this._error(err);\n return;\n }\n\n // add content length\n if (length) {\n request.setHeader('Content-Length', length);\n }\n\n this.pipe(request);\n if (cb) {\n var onResponse;\n\n var callback = function (error, responce) {\n request.removeListener('error', callback);\n request.removeListener('response', onResponse);\n\n return cb.call(this, error, responce);\n };\n\n onResponse = callback.bind(this, null);\n\n request.on('error', callback);\n request.on('response', onResponse);\n }\n }.bind(this));\n\n return request;\n};\n\nFormData.prototype._error = function(err) {\n if (!this.error) {\n this.error = err;\n this.pause();\n this.emit('error', err);\n }\n};\n\nFormData.prototype.toString = function () {\n return '[object FormData]';\n};\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosError from '../core/AxiosError.js';\n// temporary hotfix to avoid circular references until AxiosURLSearchParams is refactored\nimport PlatformFormData from '../platform/node/classes/FormData.js';\n\n/**\n * Determines if the given thing is a array or js object.\n *\n * @param {string} thing - The object or array to be visited.\n *\n * @returns {boolean}\n */\nfunction isVisitable(thing) {\n return utils.isPlainObject(thing) || utils.isArray(thing);\n}\n\n/**\n * It removes the brackets from the end of a string\n *\n * @param {string} key - The key of the parameter.\n *\n * @returns {string} the key without the brackets.\n */\nfunction removeBrackets(key) {\n return utils.endsWith(key, '[]') ? key.slice(0, -2) : key;\n}\n\n/**\n * It takes a path, a key, and a boolean, and returns a string\n *\n * @param {string} path - The path to the current key.\n * @param {string} key - The key of the current object being iterated over.\n * @param {string} dots - If true, the key will be rendered with dots instead of brackets.\n *\n * @returns {string} The path to the current key.\n */\nfunction renderKey(path, key, dots) {\n if (!path) return key;\n return path.concat(key).map(function each(token, i) {\n // eslint-disable-next-line no-param-reassign\n token = removeBrackets(token);\n return !dots && i ? '[' + token + ']' : token;\n }).join(dots ? '.' : '');\n}\n\n/**\n * If the array is an array and none of its elements are visitable, then it's a flat array.\n *\n * @param {Array} arr - The array to check\n *\n * @returns {boolean}\n */\nfunction isFlatArray(arr) {\n return utils.isArray(arr) && !arr.some(isVisitable);\n}\n\nconst predicates = utils.toFlatObject(utils, {}, null, function filter(prop) {\n return /^is[A-Z]/.test(prop);\n});\n\n/**\n * Convert a data object to FormData\n *\n * @param {Object} obj\n * @param {?Object} [formData]\n * @param {?Object} [options]\n * @param {Function} [options.visitor]\n * @param {Boolean} [options.metaTokens = true]\n * @param {Boolean} [options.dots = false]\n * @param {?Boolean} [options.indexes = false]\n *\n * @returns {Object}\n **/\n\n/**\n * It converts an object into a FormData object\n *\n * @param {Object} obj - The object to convert to form data.\n * @param {string} formData - The FormData object to append to.\n * @param {Object} options\n *\n * @returns\n */\nfunction toFormData(obj, formData, options) {\n if (!utils.isObject(obj)) {\n throw new TypeError('target must be an object');\n }\n\n // eslint-disable-next-line no-param-reassign\n formData = formData || new (PlatformFormData || FormData)();\n\n // eslint-disable-next-line no-param-reassign\n options = utils.toFlatObject(options, {\n metaTokens: true,\n dots: false,\n indexes: false\n }, false, function defined(option, source) {\n // eslint-disable-next-line no-eq-null,eqeqeq\n return !utils.isUndefined(source[option]);\n });\n\n const metaTokens = options.metaTokens;\n // eslint-disable-next-line no-use-before-define\n const visitor = options.visitor || defaultVisitor;\n const dots = options.dots;\n const indexes = options.indexes;\n const _Blob = options.Blob || typeof Blob !== 'undefined' && Blob;\n const useBlob = _Blob && utils.isSpecCompliantForm(formData);\n\n if (!utils.isFunction(visitor)) {\n throw new TypeError('visitor must be a function');\n }\n\n function convertValue(value) {\n if (value === null) return '';\n\n if (utils.isDate(value)) {\n return value.toISOString();\n }\n\n if (!useBlob && utils.isBlob(value)) {\n throw new AxiosError('Blob is not supported. Use a Buffer instead.');\n }\n\n if (utils.isArrayBuffer(value) || utils.isTypedArray(value)) {\n return useBlob && typeof Blob === 'function' ? new Blob([value]) : Buffer.from(value);\n }\n\n return value;\n }\n\n /**\n * Default visitor.\n *\n * @param {*} value\n * @param {String|Number} key\n * @param {Array} path\n * @this {FormData}\n *\n * @returns {boolean} return true to visit the each prop of the value recursively\n */\n function defaultVisitor(value, key, path) {\n let arr = value;\n\n if (value && !path && typeof value === 'object') {\n if (utils.endsWith(key, '{}')) {\n // eslint-disable-next-line no-param-reassign\n key = metaTokens ? key : key.slice(0, -2);\n // eslint-disable-next-line no-param-reassign\n value = JSON.stringify(value);\n } else if (\n (utils.isArray(value) && isFlatArray(value)) ||\n ((utils.isFileList(value) || utils.endsWith(key, '[]')) && (arr = utils.toArray(value))\n )) {\n // eslint-disable-next-line no-param-reassign\n key = removeBrackets(key);\n\n arr.forEach(function each(el, index) {\n !(utils.isUndefined(el) || el === null) && formData.append(\n // eslint-disable-next-line no-nested-ternary\n indexes === true ? renderKey([key], index, dots) : (indexes === null ? key : key + '[]'),\n convertValue(el)\n );\n });\n return false;\n }\n }\n\n if (isVisitable(value)) {\n return true;\n }\n\n formData.append(renderKey(path, key, dots), convertValue(value));\n\n return false;\n }\n\n const stack = [];\n\n const exposedHelpers = Object.assign(predicates, {\n defaultVisitor,\n convertValue,\n isVisitable\n });\n\n function build(value, path) {\n if (utils.isUndefined(value)) return;\n\n if (stack.indexOf(value) !== -1) {\n throw Error('Circular reference detected in ' + path.join('.'));\n }\n\n stack.push(value);\n\n utils.forEach(value, function each(el, key) {\n const result = !(utils.isUndefined(el) || el === null) && visitor.call(\n formData, el, utils.isString(key) ? key.trim() : key, path, exposedHelpers\n );\n\n if (result === true) {\n build(el, path ? path.concat(key) : [key]);\n }\n });\n\n stack.pop();\n }\n\n if (!utils.isObject(obj)) {\n throw new TypeError('data must be an object');\n }\n\n build(obj);\n\n return formData;\n}\n\nexport default toFormData;\n","'use strict';\n\nimport toFormData from './toFormData.js';\n\n/**\n * It encodes a string by replacing all characters that are not in the unreserved set with\n * their percent-encoded equivalents\n *\n * @param {string} str - The string to encode.\n *\n * @returns {string} The encoded string.\n */\nfunction encode(str) {\n const charMap = {\n '!': '%21',\n \"'\": '%27',\n '(': '%28',\n ')': '%29',\n '~': '%7E',\n '%20': '+',\n '%00': '\\x00'\n };\n return encodeURIComponent(str).replace(/[!'()~]|%20|%00/g, function replacer(match) {\n return charMap[match];\n });\n}\n\n/**\n * It takes a params object and converts it to a FormData object\n *\n * @param {Object} params - The parameters to be converted to a FormData object.\n * @param {Object} options - The options object passed to the Axios constructor.\n *\n * @returns {void}\n */\nfunction AxiosURLSearchParams(params, options) {\n this._pairs = [];\n\n params && toFormData(params, this, options);\n}\n\nconst prototype = AxiosURLSearchParams.prototype;\n\nprototype.append = function append(name, value) {\n this._pairs.push([name, value]);\n};\n\nprototype.toString = function toString(encoder) {\n const _encode = encoder ? function(value) {\n return encoder.call(this, value, encode);\n } : encode;\n\n return this._pairs.map(function each(pair) {\n return _encode(pair[0]) + '=' + _encode(pair[1]);\n }, '').join('&');\n};\n\nexport default AxiosURLSearchParams;\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosURLSearchParams from '../helpers/AxiosURLSearchParams.js';\n\n/**\n * It replaces all instances of the characters `:`, `$`, `,`, `+`, `[`, and `]` with their\n * URI encoded counterparts\n *\n * @param {string} val The value to be encoded.\n *\n * @returns {string} The encoded value.\n */\nfunction encode(val) {\n return encodeURIComponent(val).\n replace(/%3A/gi, ':').\n replace(/%24/g, '$').\n replace(/%2C/gi, ',').\n replace(/%20/g, '+').\n replace(/%5B/gi, '[').\n replace(/%5D/gi, ']');\n}\n\n/**\n * Build a URL by appending params to the end\n *\n * @param {string} url The base of the url (e.g., http://www.google.com)\n * @param {object} [params] The params to be appended\n * @param {?object} options\n *\n * @returns {string} The formatted url\n */\nexport default function buildURL(url, params, options) {\n /*eslint no-param-reassign:0*/\n if (!params) {\n return url;\n }\n \n const _encode = options && options.encode || encode;\n\n const serializeFn = options && options.serialize;\n\n let serializedParams;\n\n if (serializeFn) {\n serializedParams = serializeFn(params, options);\n } else {\n serializedParams = utils.isURLSearchParams(params) ?\n params.toString() :\n new AxiosURLSearchParams(params, options).toString(_encode);\n }\n\n if (serializedParams) {\n const hashmarkIndex = url.indexOf(\"#\");\n\n if (hashmarkIndex !== -1) {\n url = url.slice(0, hashmarkIndex);\n }\n url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams;\n }\n\n return url;\n}\n","'use strict';\n\nimport utils from './../utils.js';\n\nclass InterceptorManager {\n constructor() {\n this.handlers = [];\n }\n\n /**\n * Add a new interceptor to the stack\n *\n * @param {Function} fulfilled The function to handle `then` for a `Promise`\n * @param {Function} rejected The function to handle `reject` for a `Promise`\n *\n * @return {Number} An ID used to remove interceptor later\n */\n use(fulfilled, rejected, options) {\n this.handlers.push({\n fulfilled,\n rejected,\n synchronous: options ? options.synchronous : false,\n runWhen: options ? options.runWhen : null\n });\n return this.handlers.length - 1;\n }\n\n /**\n * Remove an interceptor from the stack\n *\n * @param {Number} id The ID that was returned by `use`\n *\n * @returns {Boolean} `true` if the interceptor was removed, `false` otherwise\n */\n eject(id) {\n if (this.handlers[id]) {\n this.handlers[id] = null;\n }\n }\n\n /**\n * Clear all interceptors from the stack\n *\n * @returns {void}\n */\n clear() {\n if (this.handlers) {\n this.handlers = [];\n }\n }\n\n /**\n * Iterate over all the registered interceptors\n *\n * This method is particularly useful for skipping over any\n * interceptors that may have become `null` calling `eject`.\n *\n * @param {Function} fn The function to call for each interceptor\n *\n * @returns {void}\n */\n forEach(fn) {\n utils.forEach(this.handlers, function forEachHandler(h) {\n if (h !== null) {\n fn(h);\n }\n });\n }\n}\n\nexport default InterceptorManager;\n","'use strict';\n\nexport default {\n silentJSONParsing: true,\n forcedJSONParsing: true,\n clarifyTimeoutError: false\n};\n","'use strict';\n\nimport url from 'url';\nexport default url.URLSearchParams;\n","import URLSearchParams from './classes/URLSearchParams.js'\nimport FormData from './classes/FormData.js'\n\nexport default {\n isNode: true,\n classes: {\n URLSearchParams,\n FormData,\n Blob: typeof Blob !== 'undefined' && Blob || null\n },\n protocols: [ 'http', 'https', 'file', 'data' ]\n};\n","const hasBrowserEnv = typeof window !== 'undefined' && typeof document !== 'undefined';\n\n/**\n * Determine if we're running in a standard browser environment\n *\n * This allows axios to run in a web worker, and react-native.\n * Both environments support XMLHttpRequest, but not fully standard globals.\n *\n * web workers:\n * typeof window -> undefined\n * typeof document -> undefined\n *\n * react-native:\n * navigator.product -> 'ReactNative'\n * nativescript\n * navigator.product -> 'NativeScript' or 'NS'\n *\n * @returns {boolean}\n */\nconst hasStandardBrowserEnv = (\n (product) => {\n return hasBrowserEnv && ['ReactNative', 'NativeScript', 'NS'].indexOf(product) < 0\n })(typeof navigator !== 'undefined' && navigator.product);\n\n/**\n * Determine if we're running in a standard browser webWorker environment\n *\n * Although the `isStandardBrowserEnv` method indicates that\n * `allows axios to run in a web worker`, the WebWorker will still be\n * filtered out due to its judgment standard\n * `typeof window !== 'undefined' && typeof document !== 'undefined'`.\n * This leads to a problem when axios post `FormData` in webWorker\n */\nconst hasStandardBrowserWebWorkerEnv = (() => {\n return (\n typeof WorkerGlobalScope !== 'undefined' &&\n // eslint-disable-next-line no-undef\n self instanceof WorkerGlobalScope &&\n typeof self.importScripts === 'function'\n );\n})();\n\nexport {\n hasBrowserEnv,\n hasStandardBrowserWebWorkerEnv,\n hasStandardBrowserEnv\n}\n","import platform from './node/index.js';\nimport * as utils from './common/utils.js';\n\nexport default {\n ...utils,\n ...platform\n}\n","'use strict';\n\nimport utils from '../utils.js';\nimport toFormData from './toFormData.js';\nimport platform from '../platform/index.js';\n\nexport default function toURLEncodedForm(data, options) {\n return toFormData(data, new platform.classes.URLSearchParams(), Object.assign({\n visitor: function(value, key, path, helpers) {\n if (platform.isNode && utils.isBuffer(value)) {\n this.append(key, value.toString('base64'));\n return false;\n }\n\n return helpers.defaultVisitor.apply(this, arguments);\n }\n }, options));\n}\n","'use strict';\n\nimport utils from '../utils.js';\n\n/**\n * It takes a string like `foo[x][y][z]` and returns an array like `['foo', 'x', 'y', 'z']\n *\n * @param {string} name - The name of the property to get.\n *\n * @returns An array of strings.\n */\nfunction parsePropPath(name) {\n // foo[x][y][z]\n // foo.x.y.z\n // foo-x-y-z\n // foo x y z\n return utils.matchAll(/\\w+|\\[(\\w*)]/g, name).map(match => {\n return match[0] === '[]' ? '' : match[1] || match[0];\n });\n}\n\n/**\n * Convert an array to an object.\n *\n * @param {Array} arr - The array to convert to an object.\n *\n * @returns An object with the same keys and values as the array.\n */\nfunction arrayToObject(arr) {\n const obj = {};\n const keys = Object.keys(arr);\n let i;\n const len = keys.length;\n let key;\n for (i = 0; i < len; i++) {\n key = keys[i];\n obj[key] = arr[key];\n }\n return obj;\n}\n\n/**\n * It takes a FormData object and returns a JavaScript object\n *\n * @param {string} formData The FormData object to convert to JSON.\n *\n * @returns {Object | null} The converted object.\n */\nfunction formDataToJSON(formData) {\n function buildPath(path, value, target, index) {\n let name = path[index++];\n const isNumericKey = Number.isFinite(+name);\n const isLast = index >= path.length;\n name = !name && utils.isArray(target) ? target.length : name;\n\n if (isLast) {\n if (utils.hasOwnProp(target, name)) {\n target[name] = [target[name], value];\n } else {\n target[name] = value;\n }\n\n return !isNumericKey;\n }\n\n if (!target[name] || !utils.isObject(target[name])) {\n target[name] = [];\n }\n\n const result = buildPath(path, value, target[name], index);\n\n if (result && utils.isArray(target[name])) {\n target[name] = arrayToObject(target[name]);\n }\n\n return !isNumericKey;\n }\n\n if (utils.isFormData(formData) && utils.isFunction(formData.entries)) {\n const obj = {};\n\n utils.forEachEntry(formData, (name, value) => {\n buildPath(parsePropPath(name), value, obj, 0);\n });\n\n return obj;\n }\n\n return null;\n}\n\nexport default formDataToJSON;\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosError from '../core/AxiosError.js';\nimport transitionalDefaults from './transitional.js';\nimport toFormData from '../helpers/toFormData.js';\nimport toURLEncodedForm from '../helpers/toURLEncodedForm.js';\nimport platform from '../platform/index.js';\nimport formDataToJSON from '../helpers/formDataToJSON.js';\n\n/**\n * It takes a string, tries to parse it, and if it fails, it returns the stringified version\n * of the input\n *\n * @param {any} rawValue - The value to be stringified.\n * @param {Function} parser - A function that parses a string into a JavaScript object.\n * @param {Function} encoder - A function that takes a value and returns a string.\n *\n * @returns {string} A stringified version of the rawValue.\n */\nfunction stringifySafely(rawValue, parser, encoder) {\n if (utils.isString(rawValue)) {\n try {\n (parser || JSON.parse)(rawValue);\n return utils.trim(rawValue);\n } catch (e) {\n if (e.name !== 'SyntaxError') {\n throw e;\n }\n }\n }\n\n return (encoder || JSON.stringify)(rawValue);\n}\n\nconst defaults = {\n\n transitional: transitionalDefaults,\n\n adapter: ['xhr', 'http'],\n\n transformRequest: [function transformRequest(data, headers) {\n const contentType = headers.getContentType() || '';\n const hasJSONContentType = contentType.indexOf('application/json') > -1;\n const isObjectPayload = utils.isObject(data);\n\n if (isObjectPayload && utils.isHTMLForm(data)) {\n data = new FormData(data);\n }\n\n const isFormData = utils.isFormData(data);\n\n if (isFormData) {\n if (!hasJSONContentType) {\n return data;\n }\n return hasJSONContentType ? JSON.stringify(formDataToJSON(data)) : data;\n }\n\n if (utils.isArrayBuffer(data) ||\n utils.isBuffer(data) ||\n utils.isStream(data) ||\n utils.isFile(data) ||\n utils.isBlob(data)\n ) {\n return data;\n }\n if (utils.isArrayBufferView(data)) {\n return data.buffer;\n }\n if (utils.isURLSearchParams(data)) {\n headers.setContentType('application/x-www-form-urlencoded;charset=utf-8', false);\n return data.toString();\n }\n\n let isFileList;\n\n if (isObjectPayload) {\n if (contentType.indexOf('application/x-www-form-urlencoded') > -1) {\n return toURLEncodedForm(data, this.formSerializer).toString();\n }\n\n if ((isFileList = utils.isFileList(data)) || contentType.indexOf('multipart/form-data') > -1) {\n const _FormData = this.env && this.env.FormData;\n\n return toFormData(\n isFileList ? {'files[]': data} : data,\n _FormData && new _FormData(),\n this.formSerializer\n );\n }\n }\n\n if (isObjectPayload || hasJSONContentType ) {\n headers.setContentType('application/json', false);\n return stringifySafely(data);\n }\n\n return data;\n }],\n\n transformResponse: [function transformResponse(data) {\n const transitional = this.transitional || defaults.transitional;\n const forcedJSONParsing = transitional && transitional.forcedJSONParsing;\n const JSONRequested = this.responseType === 'json';\n\n if (data && utils.isString(data) && ((forcedJSONParsing && !this.responseType) || JSONRequested)) {\n const silentJSONParsing = transitional && transitional.silentJSONParsing;\n const strictJSONParsing = !silentJSONParsing && JSONRequested;\n\n try {\n return JSON.parse(data);\n } catch (e) {\n if (strictJSONParsing) {\n if (e.name === 'SyntaxError') {\n throw AxiosError.from(e, AxiosError.ERR_BAD_RESPONSE, this, null, this.response);\n }\n throw e;\n }\n }\n }\n\n return data;\n }],\n\n /**\n * A timeout in milliseconds to abort a request. If set to 0 (default) a\n * timeout is not created.\n */\n timeout: 0,\n\n xsrfCookieName: 'XSRF-TOKEN',\n xsrfHeaderName: 'X-XSRF-TOKEN',\n\n maxContentLength: -1,\n maxBodyLength: -1,\n\n env: {\n FormData: platform.classes.FormData,\n Blob: platform.classes.Blob\n },\n\n validateStatus: function validateStatus(status) {\n return status >= 200 && status < 300;\n },\n\n headers: {\n common: {\n 'Accept': 'application/json, text/plain, */*',\n 'Content-Type': undefined\n }\n }\n};\n\nutils.forEach(['delete', 'get', 'head', 'post', 'put', 'patch'], (method) => {\n defaults.headers[method] = {};\n});\n\nexport default defaults;\n","'use strict';\n\nimport utils from './../utils.js';\n\n// RawAxiosHeaders whose duplicates are ignored by node\n// c.f. https://nodejs.org/api/http.html#http_message_headers\nconst ignoreDuplicateOf = utils.toObjectSet([\n 'age', 'authorization', 'content-length', 'content-type', 'etag',\n 'expires', 'from', 'host', 'if-modified-since', 'if-unmodified-since',\n 'last-modified', 'location', 'max-forwards', 'proxy-authorization',\n 'referer', 'retry-after', 'user-agent'\n]);\n\n/**\n * Parse headers into an object\n *\n * ```\n * Date: Wed, 27 Aug 2014 08:58:49 GMT\n * Content-Type: application/json\n * Connection: keep-alive\n * Transfer-Encoding: chunked\n * ```\n *\n * @param {String} rawHeaders Headers needing to be parsed\n *\n * @returns {Object} Headers parsed into an object\n */\nexport default rawHeaders => {\n const parsed = {};\n let key;\n let val;\n let i;\n\n rawHeaders && rawHeaders.split('\\n').forEach(function parser(line) {\n i = line.indexOf(':');\n key = line.substring(0, i).trim().toLowerCase();\n val = line.substring(i + 1).trim();\n\n if (!key || (parsed[key] && ignoreDuplicateOf[key])) {\n return;\n }\n\n if (key === 'set-cookie') {\n if (parsed[key]) {\n parsed[key].push(val);\n } else {\n parsed[key] = [val];\n }\n } else {\n parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val;\n }\n });\n\n return parsed;\n};\n","'use strict';\n\nimport utils from '../utils.js';\nimport parseHeaders from '../helpers/parseHeaders.js';\n\nconst $internals = Symbol('internals');\n\nfunction normalizeHeader(header) {\n return header && String(header).trim().toLowerCase();\n}\n\nfunction normalizeValue(value) {\n if (value === false || value == null) {\n return value;\n }\n\n return utils.isArray(value) ? value.map(normalizeValue) : String(value);\n}\n\nfunction parseTokens(str) {\n const tokens = Object.create(null);\n const tokensRE = /([^\\s,;=]+)\\s*(?:=\\s*([^,;]+))?/g;\n let match;\n\n while ((match = tokensRE.exec(str))) {\n tokens[match[1]] = match[2];\n }\n\n return tokens;\n}\n\nconst isValidHeaderName = (str) => /^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(str.trim());\n\nfunction matchHeaderValue(context, value, header, filter, isHeaderNameFilter) {\n if (utils.isFunction(filter)) {\n return filter.call(this, value, header);\n }\n\n if (isHeaderNameFilter) {\n value = header;\n }\n\n if (!utils.isString(value)) return;\n\n if (utils.isString(filter)) {\n return value.indexOf(filter) !== -1;\n }\n\n if (utils.isRegExp(filter)) {\n return filter.test(value);\n }\n}\n\nfunction formatHeader(header) {\n return header.trim()\n .toLowerCase().replace(/([a-z\\d])(\\w*)/g, (w, char, str) => {\n return char.toUpperCase() + str;\n });\n}\n\nfunction buildAccessors(obj, header) {\n const accessorName = utils.toCamelCase(' ' + header);\n\n ['get', 'set', 'has'].forEach(methodName => {\n Object.defineProperty(obj, methodName + accessorName, {\n value: function(arg1, arg2, arg3) {\n return this[methodName].call(this, header, arg1, arg2, arg3);\n },\n configurable: true\n });\n });\n}\n\nclass AxiosHeaders {\n constructor(headers) {\n headers && this.set(headers);\n }\n\n set(header, valueOrRewrite, rewrite) {\n const self = this;\n\n function setHeader(_value, _header, _rewrite) {\n const lHeader = normalizeHeader(_header);\n\n if (!lHeader) {\n throw new Error('header name must be a non-empty string');\n }\n\n const key = utils.findKey(self, lHeader);\n\n if(!key || self[key] === undefined || _rewrite === true || (_rewrite === undefined && self[key] !== false)) {\n self[key || _header] = normalizeValue(_value);\n }\n }\n\n const setHeaders = (headers, _rewrite) =>\n utils.forEach(headers, (_value, _header) => setHeader(_value, _header, _rewrite));\n\n if (utils.isPlainObject(header) || header instanceof this.constructor) {\n setHeaders(header, valueOrRewrite)\n } else if(utils.isString(header) && (header = header.trim()) && !isValidHeaderName(header)) {\n setHeaders(parseHeaders(header), valueOrRewrite);\n } else {\n header != null && setHeader(valueOrRewrite, header, rewrite);\n }\n\n return this;\n }\n\n get(header, parser) {\n header = normalizeHeader(header);\n\n if (header) {\n const key = utils.findKey(this, header);\n\n if (key) {\n const value = this[key];\n\n if (!parser) {\n return value;\n }\n\n if (parser === true) {\n return parseTokens(value);\n }\n\n if (utils.isFunction(parser)) {\n return parser.call(this, value, key);\n }\n\n if (utils.isRegExp(parser)) {\n return parser.exec(value);\n }\n\n throw new TypeError('parser must be boolean|regexp|function');\n }\n }\n }\n\n has(header, matcher) {\n header = normalizeHeader(header);\n\n if (header) {\n const key = utils.findKey(this, header);\n\n return !!(key && this[key] !== undefined && (!matcher || matchHeaderValue(this, this[key], key, matcher)));\n }\n\n return false;\n }\n\n delete(header, matcher) {\n const self = this;\n let deleted = false;\n\n function deleteHeader(_header) {\n _header = normalizeHeader(_header);\n\n if (_header) {\n const key = utils.findKey(self, _header);\n\n if (key && (!matcher || matchHeaderValue(self, self[key], key, matcher))) {\n delete self[key];\n\n deleted = true;\n }\n }\n }\n\n if (utils.isArray(header)) {\n header.forEach(deleteHeader);\n } else {\n deleteHeader(header);\n }\n\n return deleted;\n }\n\n clear(matcher) {\n const keys = Object.keys(this);\n let i = keys.length;\n let deleted = false;\n\n while (i--) {\n const key = keys[i];\n if(!matcher || matchHeaderValue(this, this[key], key, matcher, true)) {\n delete this[key];\n deleted = true;\n }\n }\n\n return deleted;\n }\n\n normalize(format) {\n const self = this;\n const headers = {};\n\n utils.forEach(this, (value, header) => {\n const key = utils.findKey(headers, header);\n\n if (key) {\n self[key] = normalizeValue(value);\n delete self[header];\n return;\n }\n\n const normalized = format ? formatHeader(header) : String(header).trim();\n\n if (normalized !== header) {\n delete self[header];\n }\n\n self[normalized] = normalizeValue(value);\n\n headers[normalized] = true;\n });\n\n return this;\n }\n\n concat(...targets) {\n return this.constructor.concat(this, ...targets);\n }\n\n toJSON(asStrings) {\n const obj = Object.create(null);\n\n utils.forEach(this, (value, header) => {\n value != null && value !== false && (obj[header] = asStrings && utils.isArray(value) ? value.join(', ') : value);\n });\n\n return obj;\n }\n\n [Symbol.iterator]() {\n return Object.entries(this.toJSON())[Symbol.iterator]();\n }\n\n toString() {\n return Object.entries(this.toJSON()).map(([header, value]) => header + ': ' + value).join('\\n');\n }\n\n get [Symbol.toStringTag]() {\n return 'AxiosHeaders';\n }\n\n static from(thing) {\n return thing instanceof this ? thing : new this(thing);\n }\n\n static concat(first, ...targets) {\n const computed = new this(first);\n\n targets.forEach((target) => computed.set(target));\n\n return computed;\n }\n\n static accessor(header) {\n const internals = this[$internals] = (this[$internals] = {\n accessors: {}\n });\n\n const accessors = internals.accessors;\n const prototype = this.prototype;\n\n function defineAccessor(_header) {\n const lHeader = normalizeHeader(_header);\n\n if (!accessors[lHeader]) {\n buildAccessors(prototype, _header);\n accessors[lHeader] = true;\n }\n }\n\n utils.isArray(header) ? header.forEach(defineAccessor) : defineAccessor(header);\n\n return this;\n }\n}\n\nAxiosHeaders.accessor(['Content-Type', 'Content-Length', 'Accept', 'Accept-Encoding', 'User-Agent', 'Authorization']);\n\n// reserved names hotfix\nutils.reduceDescriptors(AxiosHeaders.prototype, ({value}, key) => {\n let mapped = key[0].toUpperCase() + key.slice(1); // map `set` => `Set`\n return {\n get: () => value,\n set(headerValue) {\n this[mapped] = headerValue;\n }\n }\n});\n\nutils.freezeMethods(AxiosHeaders);\n\nexport default AxiosHeaders;\n","'use strict';\n\nimport utils from './../utils.js';\nimport defaults from '../defaults/index.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\n\n/**\n * Transform the data for a request or a response\n *\n * @param {Array|Function} fns A single function or Array of functions\n * @param {?Object} response The response object\n *\n * @returns {*} The resulting transformed data\n */\nexport default function transformData(fns, response) {\n const config = this || defaults;\n const context = response || config;\n const headers = AxiosHeaders.from(context.headers);\n let data = context.data;\n\n utils.forEach(fns, function transform(fn) {\n data = fn.call(config, data, headers.normalize(), response ? response.status : undefined);\n });\n\n headers.normalize();\n\n return data;\n}\n","'use strict';\n\nexport default function isCancel(value) {\n return !!(value && value.__CANCEL__);\n}\n","'use strict';\n\nimport AxiosError from '../core/AxiosError.js';\nimport utils from '../utils.js';\n\n/**\n * A `CanceledError` is an object that is thrown when an operation is canceled.\n *\n * @param {string=} message The message.\n * @param {Object=} config The config.\n * @param {Object=} request The request.\n *\n * @returns {CanceledError} The created error.\n */\nfunction CanceledError(message, config, request) {\n // eslint-disable-next-line no-eq-null,eqeqeq\n AxiosError.call(this, message == null ? 'canceled' : message, AxiosError.ERR_CANCELED, config, request);\n this.name = 'CanceledError';\n}\n\nutils.inherits(CanceledError, AxiosError, {\n __CANCEL__: true\n});\n\nexport default CanceledError;\n","'use strict';\n\nimport AxiosError from './AxiosError.js';\n\n/**\n * Resolve or reject a Promise based on response status.\n *\n * @param {Function} resolve A function that resolves the promise.\n * @param {Function} reject A function that rejects the promise.\n * @param {object} response The response.\n *\n * @returns {object} The response.\n */\nexport default function settle(resolve, reject, response) {\n const validateStatus = response.config.validateStatus;\n if (!response.status || !validateStatus || validateStatus(response.status)) {\n resolve(response);\n } else {\n reject(new AxiosError(\n 'Request failed with status code ' + response.status,\n [AxiosError.ERR_BAD_REQUEST, AxiosError.ERR_BAD_RESPONSE][Math.floor(response.status / 100) - 4],\n response.config,\n response.request,\n response\n ));\n }\n}\n","'use strict';\n\n/**\n * Determines whether the specified URL is absolute\n *\n * @param {string} url The URL to test\n *\n * @returns {boolean} True if the specified URL is absolute, otherwise false\n */\nexport default function isAbsoluteURL(url) {\n // A URL is considered absolute if it begins with \"://\" or \"//\" (protocol-relative URL).\n // RFC 3986 defines scheme name as a sequence of characters beginning with a letter and followed\n // by any combination of letters, digits, plus, period, or hyphen.\n return /^([a-z][a-z\\d+\\-.]*:)?\\/\\//i.test(url);\n}\n","'use strict';\n\n/**\n * Creates a new URL by combining the specified URLs\n *\n * @param {string} baseURL The base URL\n * @param {string} relativeURL The relative URL\n *\n * @returns {string} The combined URL\n */\nexport default function combineURLs(baseURL, relativeURL) {\n return relativeURL\n ? baseURL.replace(/\\/+$/, '') + '/' + relativeURL.replace(/^\\/+/, '')\n : baseURL;\n}\n","'use strict';\n\nimport isAbsoluteURL from '../helpers/isAbsoluteURL.js';\nimport combineURLs from '../helpers/combineURLs.js';\n\n/**\n * Creates a new URL by combining the baseURL with the requestedURL,\n * only when the requestedURL is not already an absolute URL.\n * If the requestURL is absolute, this function returns the requestedURL untouched.\n *\n * @param {string} baseURL The base URL\n * @param {string} requestedURL Absolute or relative URL to combine\n *\n * @returns {string} The combined full path\n */\nexport default function buildFullPath(baseURL, requestedURL) {\n if (baseURL && !isAbsoluteURL(requestedURL)) {\n return combineURLs(baseURL, requestedURL);\n }\n return requestedURL;\n}\n","'use strict';\n\nvar parseUrl = require('url').parse;\n\nvar DEFAULT_PORTS = {\n ftp: 21,\n gopher: 70,\n http: 80,\n https: 443,\n ws: 80,\n wss: 443,\n};\n\nvar stringEndsWith = String.prototype.endsWith || function(s) {\n return s.length <= this.length &&\n this.indexOf(s, this.length - s.length) !== -1;\n};\n\n/**\n * @param {string|object} url - The URL, or the result from url.parse.\n * @return {string} The URL of the proxy that should handle the request to the\n * given URL. If no proxy is set, this will be an empty string.\n */\nfunction getProxyForUrl(url) {\n var parsedUrl = typeof url === 'string' ? parseUrl(url) : url || {};\n var proto = parsedUrl.protocol;\n var hostname = parsedUrl.host;\n var port = parsedUrl.port;\n if (typeof hostname !== 'string' || !hostname || typeof proto !== 'string') {\n return ''; // Don't proxy URLs without a valid scheme or host.\n }\n\n proto = proto.split(':', 1)[0];\n // Stripping ports in this way instead of using parsedUrl.hostname to make\n // sure that the brackets around IPv6 addresses are kept.\n hostname = hostname.replace(/:\\d*$/, '');\n port = parseInt(port) || DEFAULT_PORTS[proto] || 0;\n if (!shouldProxy(hostname, port)) {\n return ''; // Don't proxy URLs that match NO_PROXY.\n }\n\n var proxy =\n getEnv('npm_config_' + proto + '_proxy') ||\n getEnv(proto + '_proxy') ||\n getEnv('npm_config_proxy') ||\n getEnv('all_proxy');\n if (proxy && proxy.indexOf('://') === -1) {\n // Missing scheme in proxy, default to the requested URL's scheme.\n proxy = proto + '://' + proxy;\n }\n return proxy;\n}\n\n/**\n * Determines whether a given URL should be proxied.\n *\n * @param {string} hostname - The host name of the URL.\n * @param {number} port - The effective port of the URL.\n * @returns {boolean} Whether the given URL should be proxied.\n * @private\n */\nfunction shouldProxy(hostname, port) {\n var NO_PROXY =\n (getEnv('npm_config_no_proxy') || getEnv('no_proxy')).toLowerCase();\n if (!NO_PROXY) {\n return true; // Always proxy if NO_PROXY is not set.\n }\n if (NO_PROXY === '*') {\n return false; // Never proxy if wildcard is set.\n }\n\n return NO_PROXY.split(/[,\\s]/).every(function(proxy) {\n if (!proxy) {\n return true; // Skip zero-length hosts.\n }\n var parsedProxy = proxy.match(/^(.+):(\\d+)$/);\n var parsedProxyHostname = parsedProxy ? parsedProxy[1] : proxy;\n var parsedProxyPort = parsedProxy ? parseInt(parsedProxy[2]) : 0;\n if (parsedProxyPort && parsedProxyPort !== port) {\n return true; // Skip if ports don't match.\n }\n\n if (!/^[.*]/.test(parsedProxyHostname)) {\n // No wildcards, so stop proxying if there is an exact match.\n return hostname !== parsedProxyHostname;\n }\n\n if (parsedProxyHostname.charAt(0) === '*') {\n // Remove leading wildcard.\n parsedProxyHostname = parsedProxyHostname.slice(1);\n }\n // Stop proxying if the hostname ends with the no_proxy host.\n return !stringEndsWith.call(hostname, parsedProxyHostname);\n });\n}\n\n/**\n * Get the value for an environment variable.\n *\n * @param {string} key - The name of the environment variable.\n * @return {string} The value of the environment variable.\n * @private\n */\nfunction getEnv(key) {\n return process.env[key.toLowerCase()] || process.env[key.toUpperCase()] || '';\n}\n\nexports.getProxyForUrl = getProxyForUrl;\n","/**\n * Helpers.\n */\n\nvar s = 1000;\nvar m = s * 60;\nvar h = m * 60;\nvar d = h * 24;\nvar w = d * 7;\nvar y = d * 365.25;\n\n/**\n * Parse or format the given `val`.\n *\n * Options:\n *\n * - `long` verbose formatting [false]\n *\n * @param {String|Number} val\n * @param {Object} [options]\n * @throws {Error} throw an error if val is not a non-empty string or a number\n * @return {String|Number}\n * @api public\n */\n\nmodule.exports = function(val, options) {\n options = options || {};\n var type = typeof val;\n if (type === 'string' && val.length > 0) {\n return parse(val);\n } else if (type === 'number' && isFinite(val)) {\n return options.long ? fmtLong(val) : fmtShort(val);\n }\n throw new Error(\n 'val is not a non-empty string or a valid number. val=' +\n JSON.stringify(val)\n );\n};\n\n/**\n * Parse the given `str` and return milliseconds.\n *\n * @param {String} str\n * @return {Number}\n * @api private\n */\n\nfunction parse(str) {\n str = String(str);\n if (str.length > 100) {\n return;\n }\n var match = /^(-?(?:\\d+)?\\.?\\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(\n str\n );\n if (!match) {\n return;\n }\n var n = parseFloat(match[1]);\n var type = (match[2] || 'ms').toLowerCase();\n switch (type) {\n case 'years':\n case 'year':\n case 'yrs':\n case 'yr':\n case 'y':\n return n * y;\n case 'weeks':\n case 'week':\n case 'w':\n return n * w;\n case 'days':\n case 'day':\n case 'd':\n return n * d;\n case 'hours':\n case 'hour':\n case 'hrs':\n case 'hr':\n case 'h':\n return n * h;\n case 'minutes':\n case 'minute':\n case 'mins':\n case 'min':\n case 'm':\n return n * m;\n case 'seconds':\n case 'second':\n case 'secs':\n case 'sec':\n case 's':\n return n * s;\n case 'milliseconds':\n case 'millisecond':\n case 'msecs':\n case 'msec':\n case 'ms':\n return n;\n default:\n return undefined;\n }\n}\n\n/**\n * Short format for `ms`.\n *\n * @param {Number} ms\n * @return {String}\n * @api private\n */\n\nfunction fmtShort(ms) {\n var msAbs = Math.abs(ms);\n if (msAbs >= d) {\n return Math.round(ms / d) + 'd';\n }\n if (msAbs >= h) {\n return Math.round(ms / h) + 'h';\n }\n if (msAbs >= m) {\n return Math.round(ms / m) + 'm';\n }\n if (msAbs >= s) {\n return Math.round(ms / s) + 's';\n }\n return ms + 'ms';\n}\n\n/**\n * Long format for `ms`.\n *\n * @param {Number} ms\n * @return {String}\n * @api private\n */\n\nfunction fmtLong(ms) {\n var msAbs = Math.abs(ms);\n if (msAbs >= d) {\n return plural(ms, msAbs, d, 'day');\n }\n if (msAbs >= h) {\n return plural(ms, msAbs, h, 'hour');\n }\n if (msAbs >= m) {\n return plural(ms, msAbs, m, 'minute');\n }\n if (msAbs >= s) {\n return plural(ms, msAbs, s, 'second');\n }\n return ms + ' ms';\n}\n\n/**\n * Pluralization helper.\n */\n\nfunction plural(ms, msAbs, n, name) {\n var isPlural = msAbs >= n * 1.5;\n return Math.round(ms / n) + ' ' + name + (isPlural ? 's' : '');\n}\n","\n/**\n * This is the common logic for both the Node.js and web browser\n * implementations of `debug()`.\n */\n\nfunction setup(env) {\n\tcreateDebug.debug = createDebug;\n\tcreateDebug.default = createDebug;\n\tcreateDebug.coerce = coerce;\n\tcreateDebug.disable = disable;\n\tcreateDebug.enable = enable;\n\tcreateDebug.enabled = enabled;\n\tcreateDebug.humanize = require('ms');\n\tcreateDebug.destroy = destroy;\n\n\tObject.keys(env).forEach(key => {\n\t\tcreateDebug[key] = env[key];\n\t});\n\n\t/**\n\t* The currently active debug mode names, and names to skip.\n\t*/\n\n\tcreateDebug.names = [];\n\tcreateDebug.skips = [];\n\n\t/**\n\t* Map of special \"%n\" handling functions, for the debug \"format\" argument.\n\t*\n\t* Valid key names are a single, lower or upper-case letter, i.e. \"n\" and \"N\".\n\t*/\n\tcreateDebug.formatters = {};\n\n\t/**\n\t* Selects a color for a debug namespace\n\t* @param {String} namespace The namespace string for the debug instance to be colored\n\t* @return {Number|String} An ANSI color code for the given namespace\n\t* @api private\n\t*/\n\tfunction selectColor(namespace) {\n\t\tlet hash = 0;\n\n\t\tfor (let i = 0; i < namespace.length; i++) {\n\t\t\thash = ((hash << 5) - hash) + namespace.charCodeAt(i);\n\t\t\thash |= 0; // Convert to 32bit integer\n\t\t}\n\n\t\treturn createDebug.colors[Math.abs(hash) % createDebug.colors.length];\n\t}\n\tcreateDebug.selectColor = selectColor;\n\n\t/**\n\t* Create a debugger with the given `namespace`.\n\t*\n\t* @param {String} namespace\n\t* @return {Function}\n\t* @api public\n\t*/\n\tfunction createDebug(namespace) {\n\t\tlet prevTime;\n\t\tlet enableOverride = null;\n\t\tlet namespacesCache;\n\t\tlet enabledCache;\n\n\t\tfunction debug(...args) {\n\t\t\t// Disabled?\n\t\t\tif (!debug.enabled) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst self = debug;\n\n\t\t\t// Set `diff` timestamp\n\t\t\tconst curr = Number(new Date());\n\t\t\tconst ms = curr - (prevTime || curr);\n\t\t\tself.diff = ms;\n\t\t\tself.prev = prevTime;\n\t\t\tself.curr = curr;\n\t\t\tprevTime = curr;\n\n\t\t\targs[0] = createDebug.coerce(args[0]);\n\n\t\t\tif (typeof args[0] !== 'string') {\n\t\t\t\t// Anything else let's inspect with %O\n\t\t\t\targs.unshift('%O');\n\t\t\t}\n\n\t\t\t// Apply any `formatters` transformations\n\t\t\tlet index = 0;\n\t\t\targs[0] = args[0].replace(/%([a-zA-Z%])/g, (match, format) => {\n\t\t\t\t// If we encounter an escaped % then don't increase the array index\n\t\t\t\tif (match === '%%') {\n\t\t\t\t\treturn '%';\n\t\t\t\t}\n\t\t\t\tindex++;\n\t\t\t\tconst formatter = createDebug.formatters[format];\n\t\t\t\tif (typeof formatter === 'function') {\n\t\t\t\t\tconst val = args[index];\n\t\t\t\t\tmatch = formatter.call(self, val);\n\n\t\t\t\t\t// Now we need to remove `args[index]` since it's inlined in the `format`\n\t\t\t\t\targs.splice(index, 1);\n\t\t\t\t\tindex--;\n\t\t\t\t}\n\t\t\t\treturn match;\n\t\t\t});\n\n\t\t\t// Apply env-specific formatting (colors, etc.)\n\t\t\tcreateDebug.formatArgs.call(self, args);\n\n\t\t\tconst logFn = self.log || createDebug.log;\n\t\t\tlogFn.apply(self, args);\n\t\t}\n\n\t\tdebug.namespace = namespace;\n\t\tdebug.useColors = createDebug.useColors();\n\t\tdebug.color = createDebug.selectColor(namespace);\n\t\tdebug.extend = extend;\n\t\tdebug.destroy = createDebug.destroy; // XXX Temporary. Will be removed in the next major release.\n\n\t\tObject.defineProperty(debug, 'enabled', {\n\t\t\tenumerable: true,\n\t\t\tconfigurable: false,\n\t\t\tget: () => {\n\t\t\t\tif (enableOverride !== null) {\n\t\t\t\t\treturn enableOverride;\n\t\t\t\t}\n\t\t\t\tif (namespacesCache !== createDebug.namespaces) {\n\t\t\t\t\tnamespacesCache = createDebug.namespaces;\n\t\t\t\t\tenabledCache = createDebug.enabled(namespace);\n\t\t\t\t}\n\n\t\t\t\treturn enabledCache;\n\t\t\t},\n\t\t\tset: v => {\n\t\t\t\tenableOverride = v;\n\t\t\t}\n\t\t});\n\n\t\t// Env-specific initialization logic for debug instances\n\t\tif (typeof createDebug.init === 'function') {\n\t\t\tcreateDebug.init(debug);\n\t\t}\n\n\t\treturn debug;\n\t}\n\n\tfunction extend(namespace, delimiter) {\n\t\tconst newDebug = createDebug(this.namespace + (typeof delimiter === 'undefined' ? ':' : delimiter) + namespace);\n\t\tnewDebug.log = this.log;\n\t\treturn newDebug;\n\t}\n\n\t/**\n\t* Enables a debug mode by namespaces. This can include modes\n\t* separated by a colon and wildcards.\n\t*\n\t* @param {String} namespaces\n\t* @api public\n\t*/\n\tfunction enable(namespaces) {\n\t\tcreateDebug.save(namespaces);\n\t\tcreateDebug.namespaces = namespaces;\n\n\t\tcreateDebug.names = [];\n\t\tcreateDebug.skips = [];\n\n\t\tlet i;\n\t\tconst split = (typeof namespaces === 'string' ? namespaces : '').split(/[\\s,]+/);\n\t\tconst len = split.length;\n\n\t\tfor (i = 0; i < len; i++) {\n\t\t\tif (!split[i]) {\n\t\t\t\t// ignore empty strings\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tnamespaces = split[i].replace(/\\*/g, '.*?');\n\n\t\t\tif (namespaces[0] === '-') {\n\t\t\t\tcreateDebug.skips.push(new RegExp('^' + namespaces.slice(1) + '$'));\n\t\t\t} else {\n\t\t\t\tcreateDebug.names.push(new RegExp('^' + namespaces + '$'));\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t* Disable debug output.\n\t*\n\t* @return {String} namespaces\n\t* @api public\n\t*/\n\tfunction disable() {\n\t\tconst namespaces = [\n\t\t\t...createDebug.names.map(toNamespace),\n\t\t\t...createDebug.skips.map(toNamespace).map(namespace => '-' + namespace)\n\t\t].join(',');\n\t\tcreateDebug.enable('');\n\t\treturn namespaces;\n\t}\n\n\t/**\n\t* Returns true if the given mode name is enabled, false otherwise.\n\t*\n\t* @param {String} name\n\t* @return {Boolean}\n\t* @api public\n\t*/\n\tfunction enabled(name) {\n\t\tif (name[name.length - 1] === '*') {\n\t\t\treturn true;\n\t\t}\n\n\t\tlet i;\n\t\tlet len;\n\n\t\tfor (i = 0, len = createDebug.skips.length; i < len; i++) {\n\t\t\tif (createDebug.skips[i].test(name)) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t}\n\n\t\tfor (i = 0, len = createDebug.names.length; i < len; i++) {\n\t\t\tif (createDebug.names[i].test(name)) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\n\t\treturn false;\n\t}\n\n\t/**\n\t* Convert regexp to namespace\n\t*\n\t* @param {RegExp} regxep\n\t* @return {String} namespace\n\t* @api private\n\t*/\n\tfunction toNamespace(regexp) {\n\t\treturn regexp.toString()\n\t\t\t.substring(2, regexp.toString().length - 2)\n\t\t\t.replace(/\\.\\*\\?$/, '*');\n\t}\n\n\t/**\n\t* Coerce `val`.\n\t*\n\t* @param {Mixed} val\n\t* @return {Mixed}\n\t* @api private\n\t*/\n\tfunction coerce(val) {\n\t\tif (val instanceof Error) {\n\t\t\treturn val.stack || val.message;\n\t\t}\n\t\treturn val;\n\t}\n\n\t/**\n\t* XXX DO NOT USE. This is a temporary stub function.\n\t* XXX It WILL be removed in the next major release.\n\t*/\n\tfunction destroy() {\n\t\tconsole.warn('Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.');\n\t}\n\n\tcreateDebug.enable(createDebug.load());\n\n\treturn createDebug;\n}\n\nmodule.exports = setup;\n","/* eslint-env browser */\n\n/**\n * This is the web browser implementation of `debug()`.\n */\n\nexports.formatArgs = formatArgs;\nexports.save = save;\nexports.load = load;\nexports.useColors = useColors;\nexports.storage = localstorage();\nexports.destroy = (() => {\n\tlet warned = false;\n\n\treturn () => {\n\t\tif (!warned) {\n\t\t\twarned = true;\n\t\t\tconsole.warn('Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.');\n\t\t}\n\t};\n})();\n\n/**\n * Colors.\n */\n\nexports.colors = [\n\t'#0000CC',\n\t'#0000FF',\n\t'#0033CC',\n\t'#0033FF',\n\t'#0066CC',\n\t'#0066FF',\n\t'#0099CC',\n\t'#0099FF',\n\t'#00CC00',\n\t'#00CC33',\n\t'#00CC66',\n\t'#00CC99',\n\t'#00CCCC',\n\t'#00CCFF',\n\t'#3300CC',\n\t'#3300FF',\n\t'#3333CC',\n\t'#3333FF',\n\t'#3366CC',\n\t'#3366FF',\n\t'#3399CC',\n\t'#3399FF',\n\t'#33CC00',\n\t'#33CC33',\n\t'#33CC66',\n\t'#33CC99',\n\t'#33CCCC',\n\t'#33CCFF',\n\t'#6600CC',\n\t'#6600FF',\n\t'#6633CC',\n\t'#6633FF',\n\t'#66CC00',\n\t'#66CC33',\n\t'#9900CC',\n\t'#9900FF',\n\t'#9933CC',\n\t'#9933FF',\n\t'#99CC00',\n\t'#99CC33',\n\t'#CC0000',\n\t'#CC0033',\n\t'#CC0066',\n\t'#CC0099',\n\t'#CC00CC',\n\t'#CC00FF',\n\t'#CC3300',\n\t'#CC3333',\n\t'#CC3366',\n\t'#CC3399',\n\t'#CC33CC',\n\t'#CC33FF',\n\t'#CC6600',\n\t'#CC6633',\n\t'#CC9900',\n\t'#CC9933',\n\t'#CCCC00',\n\t'#CCCC33',\n\t'#FF0000',\n\t'#FF0033',\n\t'#FF0066',\n\t'#FF0099',\n\t'#FF00CC',\n\t'#FF00FF',\n\t'#FF3300',\n\t'#FF3333',\n\t'#FF3366',\n\t'#FF3399',\n\t'#FF33CC',\n\t'#FF33FF',\n\t'#FF6600',\n\t'#FF6633',\n\t'#FF9900',\n\t'#FF9933',\n\t'#FFCC00',\n\t'#FFCC33'\n];\n\n/**\n * Currently only WebKit-based Web Inspectors, Firefox >= v31,\n * and the Firebug extension (any Firefox version) are known\n * to support \"%c\" CSS customizations.\n *\n * TODO: add a `localStorage` variable to explicitly enable/disable colors\n */\n\n// eslint-disable-next-line complexity\nfunction useColors() {\n\t// NB: In an Electron preload script, document will be defined but not fully\n\t// initialized. Since we know we're in Chrome, we'll just detect this case\n\t// explicitly\n\tif (typeof window !== 'undefined' && window.process && (window.process.type === 'renderer' || window.process.__nwjs)) {\n\t\treturn true;\n\t}\n\n\t// Internet Explorer and Edge do not support colors.\n\tif (typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/(edge|trident)\\/(\\d+)/)) {\n\t\treturn false;\n\t}\n\n\t// Is webkit? http://stackoverflow.com/a/16459606/376773\n\t// document is undefined in react-native: https://github.com/facebook/react-native/pull/1632\n\treturn (typeof document !== 'undefined' && document.documentElement && document.documentElement.style && document.documentElement.style.WebkitAppearance) ||\n\t\t// Is firebug? http://stackoverflow.com/a/398120/376773\n\t\t(typeof window !== 'undefined' && window.console && (window.console.firebug || (window.console.exception && window.console.table))) ||\n\t\t// Is firefox >= v31?\n\t\t// https://developer.mozilla.org/en-US/docs/Tools/Web_Console#Styling_messages\n\t\t(typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/firefox\\/(\\d+)/) && parseInt(RegExp.$1, 10) >= 31) ||\n\t\t// Double check webkit in userAgent just in case we are in a worker\n\t\t(typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/applewebkit\\/(\\d+)/));\n}\n\n/**\n * Colorize log arguments if enabled.\n *\n * @api public\n */\n\nfunction formatArgs(args) {\n\targs[0] = (this.useColors ? '%c' : '') +\n\t\tthis.namespace +\n\t\t(this.useColors ? ' %c' : ' ') +\n\t\targs[0] +\n\t\t(this.useColors ? '%c ' : ' ') +\n\t\t'+' + module.exports.humanize(this.diff);\n\n\tif (!this.useColors) {\n\t\treturn;\n\t}\n\n\tconst c = 'color: ' + this.color;\n\targs.splice(1, 0, c, 'color: inherit');\n\n\t// The final \"%c\" is somewhat tricky, because there could be other\n\t// arguments passed either before or after the %c, so we need to\n\t// figure out the correct index to insert the CSS into\n\tlet index = 0;\n\tlet lastC = 0;\n\targs[0].replace(/%[a-zA-Z%]/g, match => {\n\t\tif (match === '%%') {\n\t\t\treturn;\n\t\t}\n\t\tindex++;\n\t\tif (match === '%c') {\n\t\t\t// We only are interested in the *last* %c\n\t\t\t// (the user may have provided their own)\n\t\t\tlastC = index;\n\t\t}\n\t});\n\n\targs.splice(lastC, 0, c);\n}\n\n/**\n * Invokes `console.debug()` when available.\n * No-op when `console.debug` is not a \"function\".\n * If `console.debug` is not available, falls back\n * to `console.log`.\n *\n * @api public\n */\nexports.log = console.debug || console.log || (() => {});\n\n/**\n * Save `namespaces`.\n *\n * @param {String} namespaces\n * @api private\n */\nfunction save(namespaces) {\n\ttry {\n\t\tif (namespaces) {\n\t\t\texports.storage.setItem('debug', namespaces);\n\t\t} else {\n\t\t\texports.storage.removeItem('debug');\n\t\t}\n\t} catch (error) {\n\t\t// Swallow\n\t\t// XXX (@Qix-) should we be logging these?\n\t}\n}\n\n/**\n * Load `namespaces`.\n *\n * @return {String} returns the previously persisted debug modes\n * @api private\n */\nfunction load() {\n\tlet r;\n\ttry {\n\t\tr = exports.storage.getItem('debug');\n\t} catch (error) {\n\t\t// Swallow\n\t\t// XXX (@Qix-) should we be logging these?\n\t}\n\n\t// If debug isn't set in LS, and we're in Electron, try to load $DEBUG\n\tif (!r && typeof process !== 'undefined' && 'env' in process) {\n\t\tr = process.env.DEBUG;\n\t}\n\n\treturn r;\n}\n\n/**\n * Localstorage attempts to return the localstorage.\n *\n * This is necessary because safari throws\n * when a user disables cookies/localstorage\n * and you attempt to access it.\n *\n * @return {LocalStorage}\n * @api private\n */\n\nfunction localstorage() {\n\ttry {\n\t\t// TVMLKit (Apple TV JS Runtime) does not have a window object, just localStorage in the global context\n\t\t// The Browser also has localStorage in the global context.\n\t\treturn localStorage;\n\t} catch (error) {\n\t\t// Swallow\n\t\t// XXX (@Qix-) should we be logging these?\n\t}\n}\n\nmodule.exports = require('./common')(exports);\n\nconst {formatters} = module.exports;\n\n/**\n * Map %j to `JSON.stringify()`, since no Web Inspectors do that by default.\n */\n\nformatters.j = function (v) {\n\ttry {\n\t\treturn JSON.stringify(v);\n\t} catch (error) {\n\t\treturn '[UnexpectedJSONParseError]: ' + error.message;\n\t}\n};\n","'use strict';\n\nmodule.exports = (flag, argv = process.argv) => {\n\tconst prefix = flag.startsWith('-') ? '' : (flag.length === 1 ? '-' : '--');\n\tconst position = argv.indexOf(prefix + flag);\n\tconst terminatorPosition = argv.indexOf('--');\n\treturn position !== -1 && (terminatorPosition === -1 || position < terminatorPosition);\n};\n","'use strict';\nconst os = require('os');\nconst tty = require('tty');\nconst hasFlag = require('has-flag');\n\nconst {env} = process;\n\nlet forceColor;\nif (hasFlag('no-color') ||\n\thasFlag('no-colors') ||\n\thasFlag('color=false') ||\n\thasFlag('color=never')) {\n\tforceColor = 0;\n} else if (hasFlag('color') ||\n\thasFlag('colors') ||\n\thasFlag('color=true') ||\n\thasFlag('color=always')) {\n\tforceColor = 1;\n}\n\nif ('FORCE_COLOR' in env) {\n\tif (env.FORCE_COLOR === 'true') {\n\t\tforceColor = 1;\n\t} else if (env.FORCE_COLOR === 'false') {\n\t\tforceColor = 0;\n\t} else {\n\t\tforceColor = env.FORCE_COLOR.length === 0 ? 1 : Math.min(parseInt(env.FORCE_COLOR, 10), 3);\n\t}\n}\n\nfunction translateLevel(level) {\n\tif (level === 0) {\n\t\treturn false;\n\t}\n\n\treturn {\n\t\tlevel,\n\t\thasBasic: true,\n\t\thas256: level >= 2,\n\t\thas16m: level >= 3\n\t};\n}\n\nfunction supportsColor(haveStream, streamIsTTY) {\n\tif (forceColor === 0) {\n\t\treturn 0;\n\t}\n\n\tif (hasFlag('color=16m') ||\n\t\thasFlag('color=full') ||\n\t\thasFlag('color=truecolor')) {\n\t\treturn 3;\n\t}\n\n\tif (hasFlag('color=256')) {\n\t\treturn 2;\n\t}\n\n\tif (haveStream && !streamIsTTY && forceColor === undefined) {\n\t\treturn 0;\n\t}\n\n\tconst min = forceColor || 0;\n\n\tif (env.TERM === 'dumb') {\n\t\treturn min;\n\t}\n\n\tif (process.platform === 'win32') {\n\t\t// Windows 10 build 10586 is the first Windows release that supports 256 colors.\n\t\t// Windows 10 build 14931 is the first release that supports 16m/TrueColor.\n\t\tconst osRelease = os.release().split('.');\n\t\tif (\n\t\t\tNumber(osRelease[0]) >= 10 &&\n\t\t\tNumber(osRelease[2]) >= 10586\n\t\t) {\n\t\t\treturn Number(osRelease[2]) >= 14931 ? 3 : 2;\n\t\t}\n\n\t\treturn 1;\n\t}\n\n\tif ('CI' in env) {\n\t\tif (['TRAVIS', 'CIRCLECI', 'APPVEYOR', 'GITLAB_CI', 'GITHUB_ACTIONS', 'BUILDKITE'].some(sign => sign in env) || env.CI_NAME === 'codeship') {\n\t\t\treturn 1;\n\t\t}\n\n\t\treturn min;\n\t}\n\n\tif ('TEAMCITY_VERSION' in env) {\n\t\treturn /^(9\\.(0*[1-9]\\d*)\\.|\\d{2,}\\.)/.test(env.TEAMCITY_VERSION) ? 1 : 0;\n\t}\n\n\tif (env.COLORTERM === 'truecolor') {\n\t\treturn 3;\n\t}\n\n\tif ('TERM_PROGRAM' in env) {\n\t\tconst version = parseInt((env.TERM_PROGRAM_VERSION || '').split('.')[0], 10);\n\n\t\tswitch (env.TERM_PROGRAM) {\n\t\t\tcase 'iTerm.app':\n\t\t\t\treturn version >= 3 ? 3 : 2;\n\t\t\tcase 'Apple_Terminal':\n\t\t\t\treturn 2;\n\t\t\t// No default\n\t\t}\n\t}\n\n\tif (/-256(color)?$/i.test(env.TERM)) {\n\t\treturn 2;\n\t}\n\n\tif (/^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test(env.TERM)) {\n\t\treturn 1;\n\t}\n\n\tif ('COLORTERM' in env) {\n\t\treturn 1;\n\t}\n\n\treturn min;\n}\n\nfunction getSupportLevel(stream) {\n\tconst level = supportsColor(stream, stream && stream.isTTY);\n\treturn translateLevel(level);\n}\n\nmodule.exports = {\n\tsupportsColor: getSupportLevel,\n\tstdout: translateLevel(supportsColor(true, tty.isatty(1))),\n\tstderr: translateLevel(supportsColor(true, tty.isatty(2)))\n};\n","/**\n * Module dependencies.\n */\n\nconst tty = require('tty');\nconst util = require('util');\n\n/**\n * This is the Node.js implementation of `debug()`.\n */\n\nexports.init = init;\nexports.log = log;\nexports.formatArgs = formatArgs;\nexports.save = save;\nexports.load = load;\nexports.useColors = useColors;\nexports.destroy = util.deprecate(\n\t() => {},\n\t'Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.'\n);\n\n/**\n * Colors.\n */\n\nexports.colors = [6, 2, 3, 4, 5, 1];\n\ntry {\n\t// Optional dependency (as in, doesn't need to be installed, NOT like optionalDependencies in package.json)\n\t// eslint-disable-next-line import/no-extraneous-dependencies\n\tconst supportsColor = require('supports-color');\n\n\tif (supportsColor && (supportsColor.stderr || supportsColor).level >= 2) {\n\t\texports.colors = [\n\t\t\t20,\n\t\t\t21,\n\t\t\t26,\n\t\t\t27,\n\t\t\t32,\n\t\t\t33,\n\t\t\t38,\n\t\t\t39,\n\t\t\t40,\n\t\t\t41,\n\t\t\t42,\n\t\t\t43,\n\t\t\t44,\n\t\t\t45,\n\t\t\t56,\n\t\t\t57,\n\t\t\t62,\n\t\t\t63,\n\t\t\t68,\n\t\t\t69,\n\t\t\t74,\n\t\t\t75,\n\t\t\t76,\n\t\t\t77,\n\t\t\t78,\n\t\t\t79,\n\t\t\t80,\n\t\t\t81,\n\t\t\t92,\n\t\t\t93,\n\t\t\t98,\n\t\t\t99,\n\t\t\t112,\n\t\t\t113,\n\t\t\t128,\n\t\t\t129,\n\t\t\t134,\n\t\t\t135,\n\t\t\t148,\n\t\t\t149,\n\t\t\t160,\n\t\t\t161,\n\t\t\t162,\n\t\t\t163,\n\t\t\t164,\n\t\t\t165,\n\t\t\t166,\n\t\t\t167,\n\t\t\t168,\n\t\t\t169,\n\t\t\t170,\n\t\t\t171,\n\t\t\t172,\n\t\t\t173,\n\t\t\t178,\n\t\t\t179,\n\t\t\t184,\n\t\t\t185,\n\t\t\t196,\n\t\t\t197,\n\t\t\t198,\n\t\t\t199,\n\t\t\t200,\n\t\t\t201,\n\t\t\t202,\n\t\t\t203,\n\t\t\t204,\n\t\t\t205,\n\t\t\t206,\n\t\t\t207,\n\t\t\t208,\n\t\t\t209,\n\t\t\t214,\n\t\t\t215,\n\t\t\t220,\n\t\t\t221\n\t\t];\n\t}\n} catch (error) {\n\t// Swallow - we only care if `supports-color` is available; it doesn't have to be.\n}\n\n/**\n * Build up the default `inspectOpts` object from the environment variables.\n *\n * $ DEBUG_COLORS=no DEBUG_DEPTH=10 DEBUG_SHOW_HIDDEN=enabled node script.js\n */\n\nexports.inspectOpts = Object.keys(process.env).filter(key => {\n\treturn /^debug_/i.test(key);\n}).reduce((obj, key) => {\n\t// Camel-case\n\tconst prop = key\n\t\t.substring(6)\n\t\t.toLowerCase()\n\t\t.replace(/_([a-z])/g, (_, k) => {\n\t\t\treturn k.toUpperCase();\n\t\t});\n\n\t// Coerce string value into JS value\n\tlet val = process.env[key];\n\tif (/^(yes|on|true|enabled)$/i.test(val)) {\n\t\tval = true;\n\t} else if (/^(no|off|false|disabled)$/i.test(val)) {\n\t\tval = false;\n\t} else if (val === 'null') {\n\t\tval = null;\n\t} else {\n\t\tval = Number(val);\n\t}\n\n\tobj[prop] = val;\n\treturn obj;\n}, {});\n\n/**\n * Is stdout a TTY? Colored output is enabled when `true`.\n */\n\nfunction useColors() {\n\treturn 'colors' in exports.inspectOpts ?\n\t\tBoolean(exports.inspectOpts.colors) :\n\t\ttty.isatty(process.stderr.fd);\n}\n\n/**\n * Adds ANSI color escape codes if enabled.\n *\n * @api public\n */\n\nfunction formatArgs(args) {\n\tconst {namespace: name, useColors} = this;\n\n\tif (useColors) {\n\t\tconst c = this.color;\n\t\tconst colorCode = '\\u001B[3' + (c < 8 ? c : '8;5;' + c);\n\t\tconst prefix = ` ${colorCode};1m${name} \\u001B[0m`;\n\n\t\targs[0] = prefix + args[0].split('\\n').join('\\n' + prefix);\n\t\targs.push(colorCode + 'm+' + module.exports.humanize(this.diff) + '\\u001B[0m');\n\t} else {\n\t\targs[0] = getDate() + name + ' ' + args[0];\n\t}\n}\n\nfunction getDate() {\n\tif (exports.inspectOpts.hideDate) {\n\t\treturn '';\n\t}\n\treturn new Date().toISOString() + ' ';\n}\n\n/**\n * Invokes `util.format()` with the specified arguments and writes to stderr.\n */\n\nfunction log(...args) {\n\treturn process.stderr.write(util.format(...args) + '\\n');\n}\n\n/**\n * Save `namespaces`.\n *\n * @param {String} namespaces\n * @api private\n */\nfunction save(namespaces) {\n\tif (namespaces) {\n\t\tprocess.env.DEBUG = namespaces;\n\t} else {\n\t\t// If you set a process.env field to null or undefined, it gets cast to the\n\t\t// string 'null' or 'undefined'. Just delete instead.\n\t\tdelete process.env.DEBUG;\n\t}\n}\n\n/**\n * Load `namespaces`.\n *\n * @return {String} returns the previously persisted debug modes\n * @api private\n */\n\nfunction load() {\n\treturn process.env.DEBUG;\n}\n\n/**\n * Init logic for `debug` instances.\n *\n * Create a new `inspectOpts` object in case `useColors` is set\n * differently for a particular `debug` instance.\n */\n\nfunction init(debug) {\n\tdebug.inspectOpts = {};\n\n\tconst keys = Object.keys(exports.inspectOpts);\n\tfor (let i = 0; i < keys.length; i++) {\n\t\tdebug.inspectOpts[keys[i]] = exports.inspectOpts[keys[i]];\n\t}\n}\n\nmodule.exports = require('./common')(exports);\n\nconst {formatters} = module.exports;\n\n/**\n * Map %o to `util.inspect()`, all on a single line.\n */\n\nformatters.o = function (v) {\n\tthis.inspectOpts.colors = this.useColors;\n\treturn util.inspect(v, this.inspectOpts)\n\t\t.split('\\n')\n\t\t.map(str => str.trim())\n\t\t.join(' ');\n};\n\n/**\n * Map %O to `util.inspect()`, allowing multiple lines if needed.\n */\n\nformatters.O = function (v) {\n\tthis.inspectOpts.colors = this.useColors;\n\treturn util.inspect(v, this.inspectOpts);\n};\n","/**\n * Detect Electron renderer / nwjs process, which is node, but we should\n * treat as a browser.\n */\n\nif (typeof process === 'undefined' || process.type === 'renderer' || process.browser === true || process.__nwjs) {\n\tmodule.exports = require('./browser.js');\n} else {\n\tmodule.exports = require('./node.js');\n}\n","var debug;\n\nmodule.exports = function () {\n if (!debug) {\n try {\n /* eslint global-require: off */\n debug = require(\"debug\")(\"follow-redirects\");\n }\n catch (error) { /* */ }\n if (typeof debug !== \"function\") {\n debug = function () { /* */ };\n }\n }\n debug.apply(null, arguments);\n};\n","var url = require(\"url\");\nvar URL = url.URL;\nvar http = require(\"http\");\nvar https = require(\"https\");\nvar Writable = require(\"stream\").Writable;\nvar assert = require(\"assert\");\nvar debug = require(\"./debug\");\n\n// Create handlers that pass events from native requests\nvar events = [\"abort\", \"aborted\", \"connect\", \"error\", \"socket\", \"timeout\"];\nvar eventHandlers = Object.create(null);\nevents.forEach(function (event) {\n eventHandlers[event] = function (arg1, arg2, arg3) {\n this._redirectable.emit(event, arg1, arg2, arg3);\n };\n});\n\nvar InvalidUrlError = createErrorType(\n \"ERR_INVALID_URL\",\n \"Invalid URL\",\n TypeError\n);\n// Error types with codes\nvar RedirectionError = createErrorType(\n \"ERR_FR_REDIRECTION_FAILURE\",\n \"Redirected request failed\"\n);\nvar TooManyRedirectsError = createErrorType(\n \"ERR_FR_TOO_MANY_REDIRECTS\",\n \"Maximum number of redirects exceeded\"\n);\nvar MaxBodyLengthExceededError = createErrorType(\n \"ERR_FR_MAX_BODY_LENGTH_EXCEEDED\",\n \"Request body larger than maxBodyLength limit\"\n);\nvar WriteAfterEndError = createErrorType(\n \"ERR_STREAM_WRITE_AFTER_END\",\n \"write after end\"\n);\n\n// istanbul ignore next\nvar destroy = Writable.prototype.destroy || noop;\n\n// An HTTP(S) request that can be redirected\nfunction RedirectableRequest(options, responseCallback) {\n // Initialize the request\n Writable.call(this);\n this._sanitizeOptions(options);\n this._options = options;\n this._ended = false;\n this._ending = false;\n this._redirectCount = 0;\n this._redirects = [];\n this._requestBodyLength = 0;\n this._requestBodyBuffers = [];\n\n // Attach a callback if passed\n if (responseCallback) {\n this.on(\"response\", responseCallback);\n }\n\n // React to responses of native requests\n var self = this;\n this._onNativeResponse = function (response) {\n self._processResponse(response);\n };\n\n // Perform the first request\n this._performRequest();\n}\nRedirectableRequest.prototype = Object.create(Writable.prototype);\n\nRedirectableRequest.prototype.abort = function () {\n destroyRequest(this._currentRequest);\n this._currentRequest.abort();\n this.emit(\"abort\");\n};\n\nRedirectableRequest.prototype.destroy = function (error) {\n destroyRequest(this._currentRequest, error);\n destroy.call(this, error);\n return this;\n};\n\n// Writes buffered data to the current native request\nRedirectableRequest.prototype.write = function (data, encoding, callback) {\n // Writing is not allowed if end has been called\n if (this._ending) {\n throw new WriteAfterEndError();\n }\n\n // Validate input and shift parameters if necessary\n if (!isString(data) && !isBuffer(data)) {\n throw new TypeError(\"data should be a string, Buffer or Uint8Array\");\n }\n if (isFunction(encoding)) {\n callback = encoding;\n encoding = null;\n }\n\n // Ignore empty buffers, since writing them doesn't invoke the callback\n // https://github.com/nodejs/node/issues/22066\n if (data.length === 0) {\n if (callback) {\n callback();\n }\n return;\n }\n // Only write when we don't exceed the maximum body length\n if (this._requestBodyLength + data.length <= this._options.maxBodyLength) {\n this._requestBodyLength += data.length;\n this._requestBodyBuffers.push({ data: data, encoding: encoding });\n this._currentRequest.write(data, encoding, callback);\n }\n // Error when we exceed the maximum body length\n else {\n this.emit(\"error\", new MaxBodyLengthExceededError());\n this.abort();\n }\n};\n\n// Ends the current native request\nRedirectableRequest.prototype.end = function (data, encoding, callback) {\n // Shift parameters if necessary\n if (isFunction(data)) {\n callback = data;\n data = encoding = null;\n }\n else if (isFunction(encoding)) {\n callback = encoding;\n encoding = null;\n }\n\n // Write data if needed and end\n if (!data) {\n this._ended = this._ending = true;\n this._currentRequest.end(null, null, callback);\n }\n else {\n var self = this;\n var currentRequest = this._currentRequest;\n this.write(data, encoding, function () {\n self._ended = true;\n currentRequest.end(null, null, callback);\n });\n this._ending = true;\n }\n};\n\n// Sets a header value on the current native request\nRedirectableRequest.prototype.setHeader = function (name, value) {\n this._options.headers[name] = value;\n this._currentRequest.setHeader(name, value);\n};\n\n// Clears a header value on the current native request\nRedirectableRequest.prototype.removeHeader = function (name) {\n delete this._options.headers[name];\n this._currentRequest.removeHeader(name);\n};\n\n// Global timeout for all underlying requests\nRedirectableRequest.prototype.setTimeout = function (msecs, callback) {\n var self = this;\n\n // Destroys the socket on timeout\n function destroyOnTimeout(socket) {\n socket.setTimeout(msecs);\n socket.removeListener(\"timeout\", socket.destroy);\n socket.addListener(\"timeout\", socket.destroy);\n }\n\n // Sets up a timer to trigger a timeout event\n function startTimer(socket) {\n if (self._timeout) {\n clearTimeout(self._timeout);\n }\n self._timeout = setTimeout(function () {\n self.emit(\"timeout\");\n clearTimer();\n }, msecs);\n destroyOnTimeout(socket);\n }\n\n // Stops a timeout from triggering\n function clearTimer() {\n // Clear the timeout\n if (self._timeout) {\n clearTimeout(self._timeout);\n self._timeout = null;\n }\n\n // Clean up all attached listeners\n self.removeListener(\"abort\", clearTimer);\n self.removeListener(\"error\", clearTimer);\n self.removeListener(\"response\", clearTimer);\n self.removeListener(\"close\", clearTimer);\n if (callback) {\n self.removeListener(\"timeout\", callback);\n }\n if (!self.socket) {\n self._currentRequest.removeListener(\"socket\", startTimer);\n }\n }\n\n // Attach callback if passed\n if (callback) {\n this.on(\"timeout\", callback);\n }\n\n // Start the timer if or when the socket is opened\n if (this.socket) {\n startTimer(this.socket);\n }\n else {\n this._currentRequest.once(\"socket\", startTimer);\n }\n\n // Clean up on events\n this.on(\"socket\", destroyOnTimeout);\n this.on(\"abort\", clearTimer);\n this.on(\"error\", clearTimer);\n this.on(\"response\", clearTimer);\n this.on(\"close\", clearTimer);\n\n return this;\n};\n\n// Proxy all other public ClientRequest methods\n[\n \"flushHeaders\", \"getHeader\",\n \"setNoDelay\", \"setSocketKeepAlive\",\n].forEach(function (method) {\n RedirectableRequest.prototype[method] = function (a, b) {\n return this._currentRequest[method](a, b);\n };\n});\n\n// Proxy all public ClientRequest properties\n[\"aborted\", \"connection\", \"socket\"].forEach(function (property) {\n Object.defineProperty(RedirectableRequest.prototype, property, {\n get: function () { return this._currentRequest[property]; },\n });\n});\n\nRedirectableRequest.prototype._sanitizeOptions = function (options) {\n // Ensure headers are always present\n if (!options.headers) {\n options.headers = {};\n }\n\n // Since http.request treats host as an alias of hostname,\n // but the url module interprets host as hostname plus port,\n // eliminate the host property to avoid confusion.\n if (options.host) {\n // Use hostname if set, because it has precedence\n if (!options.hostname) {\n options.hostname = options.host;\n }\n delete options.host;\n }\n\n // Complete the URL object when necessary\n if (!options.pathname && options.path) {\n var searchPos = options.path.indexOf(\"?\");\n if (searchPos < 0) {\n options.pathname = options.path;\n }\n else {\n options.pathname = options.path.substring(0, searchPos);\n options.search = options.path.substring(searchPos);\n }\n }\n};\n\n\n// Executes the next native request (initial or redirect)\nRedirectableRequest.prototype._performRequest = function () {\n // Load the native protocol\n var protocol = this._options.protocol;\n var nativeProtocol = this._options.nativeProtocols[protocol];\n if (!nativeProtocol) {\n this.emit(\"error\", new TypeError(\"Unsupported protocol \" + protocol));\n return;\n }\n\n // If specified, use the agent corresponding to the protocol\n // (HTTP and HTTPS use different types of agents)\n if (this._options.agents) {\n var scheme = protocol.slice(0, -1);\n this._options.agent = this._options.agents[scheme];\n }\n\n // Create the native request and set up its event handlers\n var request = this._currentRequest =\n nativeProtocol.request(this._options, this._onNativeResponse);\n request._redirectable = this;\n for (var event of events) {\n request.on(event, eventHandlers[event]);\n }\n\n // RFC7230§5.3.1: When making a request directly to an origin server, […]\n // a client MUST send only the absolute path […] as the request-target.\n this._currentUrl = /^\\//.test(this._options.path) ?\n url.format(this._options) :\n // When making a request to a proxy, […]\n // a client MUST send the target URI in absolute-form […].\n this._options.path;\n\n // End a redirected request\n // (The first request must be ended explicitly with RedirectableRequest#end)\n if (this._isRedirect) {\n // Write the request entity and end\n var i = 0;\n var self = this;\n var buffers = this._requestBodyBuffers;\n (function writeNext(error) {\n // Only write if this request has not been redirected yet\n /* istanbul ignore else */\n if (request === self._currentRequest) {\n // Report any write errors\n /* istanbul ignore if */\n if (error) {\n self.emit(\"error\", error);\n }\n // Write the next buffer if there are still left\n else if (i < buffers.length) {\n var buffer = buffers[i++];\n /* istanbul ignore else */\n if (!request.finished) {\n request.write(buffer.data, buffer.encoding, writeNext);\n }\n }\n // End the request if `end` has been called on us\n else if (self._ended) {\n request.end();\n }\n }\n }());\n }\n};\n\n// Processes a response from the current native request\nRedirectableRequest.prototype._processResponse = function (response) {\n // Store the redirected response\n var statusCode = response.statusCode;\n if (this._options.trackRedirects) {\n this._redirects.push({\n url: this._currentUrl,\n headers: response.headers,\n statusCode: statusCode,\n });\n }\n\n // RFC7231§6.4: The 3xx (Redirection) class of status code indicates\n // that further action needs to be taken by the user agent in order to\n // fulfill the request. If a Location header field is provided,\n // the user agent MAY automatically redirect its request to the URI\n // referenced by the Location field value,\n // even if the specific status code is not understood.\n\n // If the response is not a redirect; return it as-is\n var location = response.headers.location;\n if (!location || this._options.followRedirects === false ||\n statusCode < 300 || statusCode >= 400) {\n response.responseUrl = this._currentUrl;\n response.redirects = this._redirects;\n this.emit(\"response\", response);\n\n // Clean up\n this._requestBodyBuffers = [];\n return;\n }\n\n // The response is a redirect, so abort the current request\n destroyRequest(this._currentRequest);\n // Discard the remainder of the response to avoid waiting for data\n response.destroy();\n\n // RFC7231§6.4: A client SHOULD detect and intervene\n // in cyclical redirections (i.e., \"infinite\" redirection loops).\n if (++this._redirectCount > this._options.maxRedirects) {\n this.emit(\"error\", new TooManyRedirectsError());\n return;\n }\n\n // Store the request headers if applicable\n var requestHeaders;\n var beforeRedirect = this._options.beforeRedirect;\n if (beforeRedirect) {\n requestHeaders = Object.assign({\n // The Host header was set by nativeProtocol.request\n Host: response.req.getHeader(\"host\"),\n }, this._options.headers);\n }\n\n // RFC7231§6.4: Automatic redirection needs to done with\n // care for methods not known to be safe, […]\n // RFC7231§6.4.2–3: For historical reasons, a user agent MAY change\n // the request method from POST to GET for the subsequent request.\n var method = this._options.method;\n if ((statusCode === 301 || statusCode === 302) && this._options.method === \"POST\" ||\n // RFC7231§6.4.4: The 303 (See Other) status code indicates that\n // the server is redirecting the user agent to a different resource […]\n // A user agent can perform a retrieval request targeting that URI\n // (a GET or HEAD request if using HTTP) […]\n (statusCode === 303) && !/^(?:GET|HEAD)$/.test(this._options.method)) {\n this._options.method = \"GET\";\n // Drop a possible entity and headers related to it\n this._requestBodyBuffers = [];\n removeMatchingHeaders(/^content-/i, this._options.headers);\n }\n\n // Drop the Host header, as the redirect might lead to a different host\n var currentHostHeader = removeMatchingHeaders(/^host$/i, this._options.headers);\n\n // If the redirect is relative, carry over the host of the last request\n var currentUrlParts = url.parse(this._currentUrl);\n var currentHost = currentHostHeader || currentUrlParts.host;\n var currentUrl = /^\\w+:/.test(location) ? this._currentUrl :\n url.format(Object.assign(currentUrlParts, { host: currentHost }));\n\n // Determine the URL of the redirection\n var redirectUrl;\n try {\n redirectUrl = url.resolve(currentUrl, location);\n }\n catch (cause) {\n this.emit(\"error\", new RedirectionError({ cause: cause }));\n return;\n }\n\n // Create the redirected request\n debug(\"redirecting to\", redirectUrl);\n this._isRedirect = true;\n var redirectUrlParts = url.parse(redirectUrl);\n Object.assign(this._options, redirectUrlParts);\n\n // Drop confidential headers when redirecting to a less secure protocol\n // or to a different domain that is not a superdomain\n if (redirectUrlParts.protocol !== currentUrlParts.protocol &&\n redirectUrlParts.protocol !== \"https:\" ||\n redirectUrlParts.host !== currentHost &&\n !isSubdomain(redirectUrlParts.host, currentHost)) {\n removeMatchingHeaders(/^(?:authorization|cookie)$/i, this._options.headers);\n }\n\n // Evaluate the beforeRedirect callback\n if (isFunction(beforeRedirect)) {\n var responseDetails = {\n headers: response.headers,\n statusCode: statusCode,\n };\n var requestDetails = {\n url: currentUrl,\n method: method,\n headers: requestHeaders,\n };\n try {\n beforeRedirect(this._options, responseDetails, requestDetails);\n }\n catch (err) {\n this.emit(\"error\", err);\n return;\n }\n this._sanitizeOptions(this._options);\n }\n\n // Perform the redirected request\n try {\n this._performRequest();\n }\n catch (cause) {\n this.emit(\"error\", new RedirectionError({ cause: cause }));\n }\n};\n\n// Wraps the key/value object of protocols with redirect functionality\nfunction wrap(protocols) {\n // Default settings\n var exports = {\n maxRedirects: 21,\n maxBodyLength: 10 * 1024 * 1024,\n };\n\n // Wrap each protocol\n var nativeProtocols = {};\n Object.keys(protocols).forEach(function (scheme) {\n var protocol = scheme + \":\";\n var nativeProtocol = nativeProtocols[protocol] = protocols[scheme];\n var wrappedProtocol = exports[scheme] = Object.create(nativeProtocol);\n\n // Executes a request, following redirects\n function request(input, options, callback) {\n // Parse parameters\n if (isString(input)) {\n var parsed;\n try {\n parsed = urlToOptions(new URL(input));\n }\n catch (err) {\n /* istanbul ignore next */\n parsed = url.parse(input);\n }\n if (!isString(parsed.protocol)) {\n throw new InvalidUrlError({ input });\n }\n input = parsed;\n }\n else if (URL && (input instanceof URL)) {\n input = urlToOptions(input);\n }\n else {\n callback = options;\n options = input;\n input = { protocol: protocol };\n }\n if (isFunction(options)) {\n callback = options;\n options = null;\n }\n\n // Set defaults\n options = Object.assign({\n maxRedirects: exports.maxRedirects,\n maxBodyLength: exports.maxBodyLength,\n }, input, options);\n options.nativeProtocols = nativeProtocols;\n if (!isString(options.host) && !isString(options.hostname)) {\n options.hostname = \"::1\";\n }\n\n assert.equal(options.protocol, protocol, \"protocol mismatch\");\n debug(\"options\", options);\n return new RedirectableRequest(options, callback);\n }\n\n // Executes a GET request, following redirects\n function get(input, options, callback) {\n var wrappedRequest = wrappedProtocol.request(input, options, callback);\n wrappedRequest.end();\n return wrappedRequest;\n }\n\n // Expose the properties on the wrapped protocol\n Object.defineProperties(wrappedProtocol, {\n request: { value: request, configurable: true, enumerable: true, writable: true },\n get: { value: get, configurable: true, enumerable: true, writable: true },\n });\n });\n return exports;\n}\n\n/* istanbul ignore next */\nfunction noop() { /* empty */ }\n\n// from https://github.com/nodejs/node/blob/master/lib/internal/url.js\nfunction urlToOptions(urlObject) {\n var options = {\n protocol: urlObject.protocol,\n hostname: urlObject.hostname.startsWith(\"[\") ?\n /* istanbul ignore next */\n urlObject.hostname.slice(1, -1) :\n urlObject.hostname,\n hash: urlObject.hash,\n search: urlObject.search,\n pathname: urlObject.pathname,\n path: urlObject.pathname + urlObject.search,\n href: urlObject.href,\n };\n if (urlObject.port !== \"\") {\n options.port = Number(urlObject.port);\n }\n return options;\n}\n\nfunction removeMatchingHeaders(regex, headers) {\n var lastValue;\n for (var header in headers) {\n if (regex.test(header)) {\n lastValue = headers[header];\n delete headers[header];\n }\n }\n return (lastValue === null || typeof lastValue === \"undefined\") ?\n undefined : String(lastValue).trim();\n}\n\nfunction createErrorType(code, message, baseClass) {\n // Create constructor\n function CustomError(properties) {\n Error.captureStackTrace(this, this.constructor);\n Object.assign(this, properties || {});\n this.code = code;\n this.message = this.cause ? message + \": \" + this.cause.message : message;\n }\n\n // Attach constructor and set default properties\n CustomError.prototype = new (baseClass || Error)();\n CustomError.prototype.constructor = CustomError;\n CustomError.prototype.name = \"Error [\" + code + \"]\";\n return CustomError;\n}\n\nfunction destroyRequest(request, error) {\n for (var event of events) {\n request.removeListener(event, eventHandlers[event]);\n }\n request.on(\"error\", noop);\n request.destroy(error);\n}\n\nfunction isSubdomain(subdomain, domain) {\n assert(isString(subdomain) && isString(domain));\n var dot = subdomain.length - domain.length - 1;\n return dot > 0 && subdomain[dot] === \".\" && subdomain.endsWith(domain);\n}\n\nfunction isString(value) {\n return typeof value === \"string\" || value instanceof String;\n}\n\nfunction isFunction(value) {\n return typeof value === \"function\";\n}\n\nfunction isBuffer(value) {\n return typeof value === \"object\" && (\"length\" in value);\n}\n\n// Exports\nmodule.exports = wrap({ http: http, https: https });\nmodule.exports.wrap = wrap;\n","export const VERSION = \"1.6.2\";","'use strict';\n\nexport default function parseProtocol(url) {\n const match = /^([-+\\w]{1,25})(:?\\/\\/|:)/.exec(url);\n return match && match[1] || '';\n}\n","'use strict';\n\nimport AxiosError from '../core/AxiosError.js';\nimport parseProtocol from './parseProtocol.js';\nimport platform from '../platform/index.js';\n\nconst DATA_URL_PATTERN = /^(?:([^;]+);)?(?:[^;]+;)?(base64|),([\\s\\S]*)$/;\n\n/**\n * Parse data uri to a Buffer or Blob\n *\n * @param {String} uri\n * @param {?Boolean} asBlob\n * @param {?Object} options\n * @param {?Function} options.Blob\n *\n * @returns {Buffer|Blob}\n */\nexport default function fromDataURI(uri, asBlob, options) {\n const _Blob = options && options.Blob || platform.classes.Blob;\n const protocol = parseProtocol(uri);\n\n if (asBlob === undefined && _Blob) {\n asBlob = true;\n }\n\n if (protocol === 'data') {\n uri = protocol.length ? uri.slice(protocol.length + 1) : uri;\n\n const match = DATA_URL_PATTERN.exec(uri);\n\n if (!match) {\n throw new AxiosError('Invalid URL', AxiosError.ERR_INVALID_URL);\n }\n\n const mime = match[1];\n const isBase64 = match[2];\n const body = match[3];\n const buffer = Buffer.from(decodeURIComponent(body), isBase64 ? 'base64' : 'utf8');\n\n if (asBlob) {\n if (!_Blob) {\n throw new AxiosError('Blob is not supported', AxiosError.ERR_NOT_SUPPORT);\n }\n\n return new _Blob([buffer], {type: mime});\n }\n\n return buffer;\n }\n\n throw new AxiosError('Unsupported protocol ' + protocol, AxiosError.ERR_NOT_SUPPORT);\n}\n","'use strict';\n\n/**\n * Throttle decorator\n * @param {Function} fn\n * @param {Number} freq\n * @return {Function}\n */\nfunction throttle(fn, freq) {\n let timestamp = 0;\n const threshold = 1000 / freq;\n let timer = null;\n return function throttled(force, args) {\n const now = Date.now();\n if (force || now - timestamp > threshold) {\n if (timer) {\n clearTimeout(timer);\n timer = null;\n }\n timestamp = now;\n return fn.apply(null, args);\n }\n if (!timer) {\n timer = setTimeout(() => {\n timer = null;\n timestamp = Date.now();\n return fn.apply(null, args);\n }, threshold - (now - timestamp));\n }\n };\n}\n\nexport default throttle;\n","'use strict';\n\n/**\n * Calculate data maxRate\n * @param {Number} [samplesCount= 10]\n * @param {Number} [min= 1000]\n * @returns {Function}\n */\nfunction speedometer(samplesCount, min) {\n samplesCount = samplesCount || 10;\n const bytes = new Array(samplesCount);\n const timestamps = new Array(samplesCount);\n let head = 0;\n let tail = 0;\n let firstSampleTS;\n\n min = min !== undefined ? min : 1000;\n\n return function push(chunkLength) {\n const now = Date.now();\n\n const startedAt = timestamps[tail];\n\n if (!firstSampleTS) {\n firstSampleTS = now;\n }\n\n bytes[head] = chunkLength;\n timestamps[head] = now;\n\n let i = tail;\n let bytesCount = 0;\n\n while (i !== head) {\n bytesCount += bytes[i++];\n i = i % samplesCount;\n }\n\n head = (head + 1) % samplesCount;\n\n if (head === tail) {\n tail = (tail + 1) % samplesCount;\n }\n\n if (now - firstSampleTS < min) {\n return;\n }\n\n const passed = startedAt && now - startedAt;\n\n return passed ? Math.round(bytesCount * 1000 / passed) : undefined;\n };\n}\n\nexport default speedometer;\n","'use strict';\n\nimport stream from 'stream';\nimport utils from '../utils.js';\nimport throttle from './throttle.js';\nimport speedometer from './speedometer.js';\n\nconst kInternals = Symbol('internals');\n\nclass AxiosTransformStream extends stream.Transform{\n constructor(options) {\n options = utils.toFlatObject(options, {\n maxRate: 0,\n chunkSize: 64 * 1024,\n minChunkSize: 100,\n timeWindow: 500,\n ticksRate: 2,\n samplesCount: 15\n }, null, (prop, source) => {\n return !utils.isUndefined(source[prop]);\n });\n\n super({\n readableHighWaterMark: options.chunkSize\n });\n\n const self = this;\n\n const internals = this[kInternals] = {\n length: options.length,\n timeWindow: options.timeWindow,\n ticksRate: options.ticksRate,\n chunkSize: options.chunkSize,\n maxRate: options.maxRate,\n minChunkSize: options.minChunkSize,\n bytesSeen: 0,\n isCaptured: false,\n notifiedBytesLoaded: 0,\n ts: Date.now(),\n bytes: 0,\n onReadCallback: null\n };\n\n const _speedometer = speedometer(internals.ticksRate * options.samplesCount, internals.timeWindow);\n\n this.on('newListener', event => {\n if (event === 'progress') {\n if (!internals.isCaptured) {\n internals.isCaptured = true;\n }\n }\n });\n\n let bytesNotified = 0;\n\n internals.updateProgress = throttle(function throttledHandler() {\n const totalBytes = internals.length;\n const bytesTransferred = internals.bytesSeen;\n const progressBytes = bytesTransferred - bytesNotified;\n if (!progressBytes || self.destroyed) return;\n\n const rate = _speedometer(progressBytes);\n\n bytesNotified = bytesTransferred;\n\n process.nextTick(() => {\n self.emit('progress', {\n 'loaded': bytesTransferred,\n 'total': totalBytes,\n 'progress': totalBytes ? (bytesTransferred / totalBytes) : undefined,\n 'bytes': progressBytes,\n 'rate': rate ? rate : undefined,\n 'estimated': rate && totalBytes && bytesTransferred <= totalBytes ?\n (totalBytes - bytesTransferred) / rate : undefined\n });\n });\n }, internals.ticksRate);\n\n const onFinish = () => {\n internals.updateProgress(true);\n };\n\n this.once('end', onFinish);\n this.once('error', onFinish);\n }\n\n _read(size) {\n const internals = this[kInternals];\n\n if (internals.onReadCallback) {\n internals.onReadCallback();\n }\n\n return super._read(size);\n }\n\n _transform(chunk, encoding, callback) {\n const self = this;\n const internals = this[kInternals];\n const maxRate = internals.maxRate;\n\n const readableHighWaterMark = this.readableHighWaterMark;\n\n const timeWindow = internals.timeWindow;\n\n const divider = 1000 / timeWindow;\n const bytesThreshold = (maxRate / divider);\n const minChunkSize = internals.minChunkSize !== false ? Math.max(internals.minChunkSize, bytesThreshold * 0.01) : 0;\n\n function pushChunk(_chunk, _callback) {\n const bytes = Buffer.byteLength(_chunk);\n internals.bytesSeen += bytes;\n internals.bytes += bytes;\n\n if (internals.isCaptured) {\n internals.updateProgress();\n }\n\n if (self.push(_chunk)) {\n process.nextTick(_callback);\n } else {\n internals.onReadCallback = () => {\n internals.onReadCallback = null;\n process.nextTick(_callback);\n };\n }\n }\n\n const transformChunk = (_chunk, _callback) => {\n const chunkSize = Buffer.byteLength(_chunk);\n let chunkRemainder = null;\n let maxChunkSize = readableHighWaterMark;\n let bytesLeft;\n let passed = 0;\n\n if (maxRate) {\n const now = Date.now();\n\n if (!internals.ts || (passed = (now - internals.ts)) >= timeWindow) {\n internals.ts = now;\n bytesLeft = bytesThreshold - internals.bytes;\n internals.bytes = bytesLeft < 0 ? -bytesLeft : 0;\n passed = 0;\n }\n\n bytesLeft = bytesThreshold - internals.bytes;\n }\n\n if (maxRate) {\n if (bytesLeft <= 0) {\n // next time window\n return setTimeout(() => {\n _callback(null, _chunk);\n }, timeWindow - passed);\n }\n\n if (bytesLeft < maxChunkSize) {\n maxChunkSize = bytesLeft;\n }\n }\n\n if (maxChunkSize && chunkSize > maxChunkSize && (chunkSize - maxChunkSize) > minChunkSize) {\n chunkRemainder = _chunk.subarray(maxChunkSize);\n _chunk = _chunk.subarray(0, maxChunkSize);\n }\n\n pushChunk(_chunk, chunkRemainder ? () => {\n process.nextTick(_callback, null, chunkRemainder);\n } : _callback);\n };\n\n transformChunk(chunk, function transformNextChunk(err, _chunk) {\n if (err) {\n return callback(err);\n }\n\n if (_chunk) {\n transformChunk(_chunk, transformNextChunk);\n } else {\n callback(null);\n }\n });\n }\n\n setLength(length) {\n this[kInternals].length = +length;\n return this;\n }\n}\n\nexport default AxiosTransformStream;\n","const {asyncIterator} = Symbol;\n\nconst readBlob = async function* (blob) {\n if (blob.stream) {\n yield* blob.stream()\n } else if (blob.arrayBuffer) {\n yield await blob.arrayBuffer()\n } else if (blob[asyncIterator]) {\n yield* blob[asyncIterator]();\n } else {\n yield blob;\n }\n}\n\nexport default readBlob;\n","import {TextEncoder} from 'util';\nimport {Readable} from 'stream';\nimport utils from \"../utils.js\";\nimport readBlob from \"./readBlob.js\";\n\nconst BOUNDARY_ALPHABET = utils.ALPHABET.ALPHA_DIGIT + '-_';\n\nconst textEncoder = new TextEncoder();\n\nconst CRLF = '\\r\\n';\nconst CRLF_BYTES = textEncoder.encode(CRLF);\nconst CRLF_BYTES_COUNT = 2;\n\nclass FormDataPart {\n constructor(name, value) {\n const {escapeName} = this.constructor;\n const isStringValue = utils.isString(value);\n\n let headers = `Content-Disposition: form-data; name=\"${escapeName(name)}\"${\n !isStringValue && value.name ? `; filename=\"${escapeName(value.name)}\"` : ''\n }${CRLF}`;\n\n if (isStringValue) {\n value = textEncoder.encode(String(value).replace(/\\r?\\n|\\r\\n?/g, CRLF));\n } else {\n headers += `Content-Type: ${value.type || \"application/octet-stream\"}${CRLF}`\n }\n\n this.headers = textEncoder.encode(headers + CRLF);\n\n this.contentLength = isStringValue ? value.byteLength : value.size;\n\n this.size = this.headers.byteLength + this.contentLength + CRLF_BYTES_COUNT;\n\n this.name = name;\n this.value = value;\n }\n\n async *encode(){\n yield this.headers;\n\n const {value} = this;\n\n if(utils.isTypedArray(value)) {\n yield value;\n } else {\n yield* readBlob(value);\n }\n\n yield CRLF_BYTES;\n }\n\n static escapeName(name) {\n return String(name).replace(/[\\r\\n\"]/g, (match) => ({\n '\\r' : '%0D',\n '\\n' : '%0A',\n '\"' : '%22',\n }[match]));\n }\n}\n\nconst formDataToStream = (form, headersHandler, options) => {\n const {\n tag = 'form-data-boundary',\n size = 25,\n boundary = tag + '-' + utils.generateString(size, BOUNDARY_ALPHABET)\n } = options || {};\n\n if(!utils.isFormData(form)) {\n throw TypeError('FormData instance required');\n }\n\n if (boundary.length < 1 || boundary.length > 70) {\n throw Error('boundary must be 10-70 characters long')\n }\n\n const boundaryBytes = textEncoder.encode('--' + boundary + CRLF);\n const footerBytes = textEncoder.encode('--' + boundary + '--' + CRLF + CRLF);\n let contentLength = footerBytes.byteLength;\n\n const parts = Array.from(form.entries()).map(([name, value]) => {\n const part = new FormDataPart(name, value);\n contentLength += part.size;\n return part;\n });\n\n contentLength += boundaryBytes.byteLength * parts.length;\n\n contentLength = utils.toFiniteNumber(contentLength);\n\n const computedHeaders = {\n 'Content-Type': `multipart/form-data; boundary=${boundary}`\n }\n\n if (Number.isFinite(contentLength)) {\n computedHeaders['Content-Length'] = contentLength;\n }\n\n headersHandler && headersHandler(computedHeaders);\n\n return Readable.from((async function *() {\n for(const part of parts) {\n yield boundaryBytes;\n yield* part.encode();\n }\n\n yield footerBytes;\n })());\n};\n\nexport default formDataToStream;\n","\"use strict\";\n\nimport stream from \"stream\";\n\nclass ZlibHeaderTransformStream extends stream.Transform {\n __transform(chunk, encoding, callback) {\n this.push(chunk);\n callback();\n }\n\n _transform(chunk, encoding, callback) {\n if (chunk.length !== 0) {\n this._transform = this.__transform;\n\n // Add Default Compression headers if no zlib headers are present\n if (chunk[0] !== 120) { // Hex: 78\n const header = Buffer.alloc(2);\n header[0] = 120; // Hex: 78\n header[1] = 156; // Hex: 9C \n this.push(header, encoding);\n }\n }\n\n this.__transform(chunk, encoding, callback);\n }\n}\n\nexport default ZlibHeaderTransformStream;\n","import utils from \"../utils.js\";\n\nconst callbackify = (fn, reducer) => {\n return utils.isAsyncFn(fn) ? function (...args) {\n const cb = args.pop();\n fn.apply(this, args).then((value) => {\n try {\n reducer ? cb(null, ...reducer(value)) : cb(null, value);\n } catch (err) {\n cb(err);\n }\n }, cb);\n } : fn;\n}\n\nexport default callbackify;\n","'use strict';\n\nimport utils from './../utils.js';\nimport settle from './../core/settle.js';\nimport buildFullPath from '../core/buildFullPath.js';\nimport buildURL from './../helpers/buildURL.js';\nimport {getProxyForUrl} from 'proxy-from-env';\nimport http from 'http';\nimport https from 'https';\nimport util from 'util';\nimport followRedirects from 'follow-redirects';\nimport zlib from 'zlib';\nimport {VERSION} from '../env/data.js';\nimport transitionalDefaults from '../defaults/transitional.js';\nimport AxiosError from '../core/AxiosError.js';\nimport CanceledError from '../cancel/CanceledError.js';\nimport platform from '../platform/index.js';\nimport fromDataURI from '../helpers/fromDataURI.js';\nimport stream from 'stream';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\nimport AxiosTransformStream from '../helpers/AxiosTransformStream.js';\nimport EventEmitter from 'events';\nimport formDataToStream from \"../helpers/formDataToStream.js\";\nimport readBlob from \"../helpers/readBlob.js\";\nimport ZlibHeaderTransformStream from '../helpers/ZlibHeaderTransformStream.js';\nimport callbackify from \"../helpers/callbackify.js\";\n\nconst zlibOptions = {\n flush: zlib.constants.Z_SYNC_FLUSH,\n finishFlush: zlib.constants.Z_SYNC_FLUSH\n};\n\nconst brotliOptions = {\n flush: zlib.constants.BROTLI_OPERATION_FLUSH,\n finishFlush: zlib.constants.BROTLI_OPERATION_FLUSH\n}\n\nconst isBrotliSupported = utils.isFunction(zlib.createBrotliDecompress);\n\nconst {http: httpFollow, https: httpsFollow} = followRedirects;\n\nconst isHttps = /https:?/;\n\nconst supportedProtocols = platform.protocols.map(protocol => {\n return protocol + ':';\n});\n\n/**\n * If the proxy or config beforeRedirects functions are defined, call them with the options\n * object.\n *\n * @param {Object} options - The options object that was passed to the request.\n *\n * @returns {Object}\n */\nfunction dispatchBeforeRedirect(options) {\n if (options.beforeRedirects.proxy) {\n options.beforeRedirects.proxy(options);\n }\n if (options.beforeRedirects.config) {\n options.beforeRedirects.config(options);\n }\n}\n\n/**\n * If the proxy or config afterRedirects functions are defined, call them with the options\n *\n * @param {http.ClientRequestArgs} options\n * @param {AxiosProxyConfig} configProxy configuration from Axios options object\n * @param {string} location\n *\n * @returns {http.ClientRequestArgs}\n */\nfunction setProxy(options, configProxy, location) {\n let proxy = configProxy;\n if (!proxy && proxy !== false) {\n const proxyUrl = getProxyForUrl(location);\n if (proxyUrl) {\n proxy = new URL(proxyUrl);\n }\n }\n if (proxy) {\n // Basic proxy authorization\n if (proxy.username) {\n proxy.auth = (proxy.username || '') + ':' + (proxy.password || '');\n }\n\n if (proxy.auth) {\n // Support proxy auth object form\n if (proxy.auth.username || proxy.auth.password) {\n proxy.auth = (proxy.auth.username || '') + ':' + (proxy.auth.password || '');\n }\n const base64 = Buffer\n .from(proxy.auth, 'utf8')\n .toString('base64');\n options.headers['Proxy-Authorization'] = 'Basic ' + base64;\n }\n\n options.headers.host = options.hostname + (options.port ? ':' + options.port : '');\n const proxyHost = proxy.hostname || proxy.host;\n options.hostname = proxyHost;\n // Replace 'host' since options is not a URL object\n options.host = proxyHost;\n options.port = proxy.port;\n options.path = location;\n if (proxy.protocol) {\n options.protocol = proxy.protocol.includes(':') ? proxy.protocol : `${proxy.protocol}:`;\n }\n }\n\n options.beforeRedirects.proxy = function beforeRedirect(redirectOptions) {\n // Configure proxy for redirected request, passing the original config proxy to apply\n // the exact same logic as if the redirected request was performed by axios directly.\n setProxy(redirectOptions, configProxy, redirectOptions.href);\n };\n}\n\nconst isHttpAdapterSupported = typeof process !== 'undefined' && utils.kindOf(process) === 'process';\n\n// temporary hotfix\n\nconst wrapAsync = (asyncExecutor) => {\n return new Promise((resolve, reject) => {\n let onDone;\n let isDone;\n\n const done = (value, isRejected) => {\n if (isDone) return;\n isDone = true;\n onDone && onDone(value, isRejected);\n }\n\n const _resolve = (value) => {\n done(value);\n resolve(value);\n };\n\n const _reject = (reason) => {\n done(reason, true);\n reject(reason);\n }\n\n asyncExecutor(_resolve, _reject, (onDoneHandler) => (onDone = onDoneHandler)).catch(_reject);\n })\n};\n\nconst resolveFamily = ({address, family}) => {\n if (!utils.isString(address)) {\n throw TypeError('address must be a string');\n }\n return ({\n address,\n family: family || (address.indexOf('.') < 0 ? 6 : 4)\n });\n}\n\nconst buildAddressEntry = (address, family) => resolveFamily(utils.isObject(address) ? address : {address, family});\n\n/*eslint consistent-return:0*/\nexport default isHttpAdapterSupported && function httpAdapter(config) {\n return wrapAsync(async function dispatchHttpRequest(resolve, reject, onDone) {\n let {data, lookup, family} = config;\n const {responseType, responseEncoding} = config;\n const method = config.method.toUpperCase();\n let isDone;\n let rejected = false;\n let req;\n\n if (lookup) {\n const _lookup = callbackify(lookup, (value) => utils.isArray(value) ? value : [value]);\n // hotfix to support opt.all option which is required for node 20.x\n lookup = (hostname, opt, cb) => {\n _lookup(hostname, opt, (err, arg0, arg1) => {\n const addresses = utils.isArray(arg0) ? arg0.map(addr => buildAddressEntry(addr)) : [buildAddressEntry(arg0, arg1)];\n\n opt.all ? cb(err, addresses) : cb(err, addresses[0].address, addresses[0].family);\n });\n }\n }\n\n // temporary internal emitter until the AxiosRequest class will be implemented\n const emitter = new EventEmitter();\n\n const onFinished = () => {\n if (config.cancelToken) {\n config.cancelToken.unsubscribe(abort);\n }\n\n if (config.signal) {\n config.signal.removeEventListener('abort', abort);\n }\n\n emitter.removeAllListeners();\n }\n\n onDone((value, isRejected) => {\n isDone = true;\n if (isRejected) {\n rejected = true;\n onFinished();\n }\n });\n\n function abort(reason) {\n emitter.emit('abort', !reason || reason.type ? new CanceledError(null, config, req) : reason);\n }\n\n emitter.once('abort', reject);\n\n if (config.cancelToken || config.signal) {\n config.cancelToken && config.cancelToken.subscribe(abort);\n if (config.signal) {\n config.signal.aborted ? abort() : config.signal.addEventListener('abort', abort);\n }\n }\n\n // Parse url\n const fullPath = buildFullPath(config.baseURL, config.url);\n const parsed = new URL(fullPath, 'http://localhost');\n const protocol = parsed.protocol || supportedProtocols[0];\n\n if (protocol === 'data:') {\n let convertedData;\n\n if (method !== 'GET') {\n return settle(resolve, reject, {\n status: 405,\n statusText: 'method not allowed',\n headers: {},\n config\n });\n }\n\n try {\n convertedData = fromDataURI(config.url, responseType === 'blob', {\n Blob: config.env && config.env.Blob\n });\n } catch (err) {\n throw AxiosError.from(err, AxiosError.ERR_BAD_REQUEST, config);\n }\n\n if (responseType === 'text') {\n convertedData = convertedData.toString(responseEncoding);\n\n if (!responseEncoding || responseEncoding === 'utf8') {\n convertedData = utils.stripBOM(convertedData);\n }\n } else if (responseType === 'stream') {\n convertedData = stream.Readable.from(convertedData);\n }\n\n return settle(resolve, reject, {\n data: convertedData,\n status: 200,\n statusText: 'OK',\n headers: new AxiosHeaders(),\n config\n });\n }\n\n if (supportedProtocols.indexOf(protocol) === -1) {\n return reject(new AxiosError(\n 'Unsupported protocol ' + protocol,\n AxiosError.ERR_BAD_REQUEST,\n config\n ));\n }\n\n const headers = AxiosHeaders.from(config.headers).normalize();\n\n // Set User-Agent (required by some servers)\n // See https://github.com/axios/axios/issues/69\n // User-Agent is specified; handle case where no UA header is desired\n // Only set header if it hasn't been set in config\n headers.set('User-Agent', 'axios/' + VERSION, false);\n\n const onDownloadProgress = config.onDownloadProgress;\n const onUploadProgress = config.onUploadProgress;\n const maxRate = config.maxRate;\n let maxUploadRate = undefined;\n let maxDownloadRate = undefined;\n\n // support for spec compliant FormData objects\n if (utils.isSpecCompliantForm(data)) {\n const userBoundary = headers.getContentType(/boundary=([-_\\w\\d]{10,70})/i);\n\n data = formDataToStream(data, (formHeaders) => {\n headers.set(formHeaders);\n }, {\n tag: `axios-${VERSION}-boundary`,\n boundary: userBoundary && userBoundary[1] || undefined\n });\n // support for https://www.npmjs.com/package/form-data api\n } else if (utils.isFormData(data) && utils.isFunction(data.getHeaders)) {\n headers.set(data.getHeaders());\n\n if (!headers.hasContentLength()) {\n try {\n const knownLength = await util.promisify(data.getLength).call(data);\n Number.isFinite(knownLength) && knownLength >= 0 && headers.setContentLength(knownLength);\n /*eslint no-empty:0*/\n } catch (e) {\n }\n }\n } else if (utils.isBlob(data)) {\n data.size && headers.setContentType(data.type || 'application/octet-stream');\n headers.setContentLength(data.size || 0);\n data = stream.Readable.from(readBlob(data));\n } else if (data && !utils.isStream(data)) {\n if (Buffer.isBuffer(data)) {\n // Nothing to do...\n } else if (utils.isArrayBuffer(data)) {\n data = Buffer.from(new Uint8Array(data));\n } else if (utils.isString(data)) {\n data = Buffer.from(data, 'utf-8');\n } else {\n return reject(new AxiosError(\n 'Data after transformation must be a string, an ArrayBuffer, a Buffer, or a Stream',\n AxiosError.ERR_BAD_REQUEST,\n config\n ));\n }\n\n // Add Content-Length header if data exists\n headers.setContentLength(data.length, false);\n\n if (config.maxBodyLength > -1 && data.length > config.maxBodyLength) {\n return reject(new AxiosError(\n 'Request body larger than maxBodyLength limit',\n AxiosError.ERR_BAD_REQUEST,\n config\n ));\n }\n }\n\n const contentLength = utils.toFiniteNumber(headers.getContentLength());\n\n if (utils.isArray(maxRate)) {\n maxUploadRate = maxRate[0];\n maxDownloadRate = maxRate[1];\n } else {\n maxUploadRate = maxDownloadRate = maxRate;\n }\n\n if (data && (onUploadProgress || maxUploadRate)) {\n if (!utils.isStream(data)) {\n data = stream.Readable.from(data, {objectMode: false});\n }\n\n data = stream.pipeline([data, new AxiosTransformStream({\n length: contentLength,\n maxRate: utils.toFiniteNumber(maxUploadRate)\n })], utils.noop);\n\n onUploadProgress && data.on('progress', progress => {\n onUploadProgress(Object.assign(progress, {\n upload: true\n }));\n });\n }\n\n // HTTP basic authentication\n let auth = undefined;\n if (config.auth) {\n const username = config.auth.username || '';\n const password = config.auth.password || '';\n auth = username + ':' + password;\n }\n\n if (!auth && parsed.username) {\n const urlUsername = parsed.username;\n const urlPassword = parsed.password;\n auth = urlUsername + ':' + urlPassword;\n }\n\n auth && headers.delete('authorization');\n\n let path;\n\n try {\n path = buildURL(\n parsed.pathname + parsed.search,\n config.params,\n config.paramsSerializer\n ).replace(/^\\?/, '');\n } catch (err) {\n const customErr = new Error(err.message);\n customErr.config = config;\n customErr.url = config.url;\n customErr.exists = true;\n return reject(customErr);\n }\n\n headers.set(\n 'Accept-Encoding',\n 'gzip, compress, deflate' + (isBrotliSupported ? ', br' : ''), false\n );\n\n const options = {\n path,\n method: method,\n headers: headers.toJSON(),\n agents: { http: config.httpAgent, https: config.httpsAgent },\n auth,\n protocol,\n family,\n beforeRedirect: dispatchBeforeRedirect,\n beforeRedirects: {}\n };\n\n // cacheable-lookup integration hotfix\n !utils.isUndefined(lookup) && (options.lookup = lookup);\n\n if (config.socketPath) {\n options.socketPath = config.socketPath;\n } else {\n options.hostname = parsed.hostname;\n options.port = parsed.port;\n setProxy(options, config.proxy, protocol + '//' + parsed.hostname + (parsed.port ? ':' + parsed.port : '') + options.path);\n }\n\n let transport;\n const isHttpsRequest = isHttps.test(options.protocol);\n options.agent = isHttpsRequest ? config.httpsAgent : config.httpAgent;\n if (config.transport) {\n transport = config.transport;\n } else if (config.maxRedirects === 0) {\n transport = isHttpsRequest ? https : http;\n } else {\n if (config.maxRedirects) {\n options.maxRedirects = config.maxRedirects;\n }\n if (config.beforeRedirect) {\n options.beforeRedirects.config = config.beforeRedirect;\n }\n transport = isHttpsRequest ? httpsFollow : httpFollow;\n }\n\n if (config.maxBodyLength > -1) {\n options.maxBodyLength = config.maxBodyLength;\n } else {\n // follow-redirects does not skip comparison, so it should always succeed for axios -1 unlimited\n options.maxBodyLength = Infinity;\n }\n\n if (config.insecureHTTPParser) {\n options.insecureHTTPParser = config.insecureHTTPParser;\n }\n\n // Create the request\n req = transport.request(options, function handleResponse(res) {\n if (req.destroyed) return;\n\n const streams = [res];\n\n const responseLength = +res.headers['content-length'];\n\n if (onDownloadProgress) {\n const transformStream = new AxiosTransformStream({\n length: utils.toFiniteNumber(responseLength),\n maxRate: utils.toFiniteNumber(maxDownloadRate)\n });\n\n onDownloadProgress && transformStream.on('progress', progress => {\n onDownloadProgress(Object.assign(progress, {\n download: true\n }));\n });\n\n streams.push(transformStream);\n }\n\n // decompress the response body transparently if required\n let responseStream = res;\n\n // return the last request in case of redirects\n const lastRequest = res.req || req;\n\n // if decompress disabled we should not decompress\n if (config.decompress !== false && res.headers['content-encoding']) {\n // if no content, but headers still say that it is encoded,\n // remove the header not confuse downstream operations\n if (method === 'HEAD' || res.statusCode === 204) {\n delete res.headers['content-encoding'];\n }\n\n switch ((res.headers['content-encoding'] || '').toLowerCase()) {\n /*eslint default-case:0*/\n case 'gzip':\n case 'x-gzip':\n case 'compress':\n case 'x-compress':\n // add the unzipper to the body stream processing pipeline\n streams.push(zlib.createUnzip(zlibOptions));\n\n // remove the content-encoding in order to not confuse downstream operations\n delete res.headers['content-encoding'];\n break;\n case 'deflate':\n streams.push(new ZlibHeaderTransformStream());\n\n // add the unzipper to the body stream processing pipeline\n streams.push(zlib.createUnzip(zlibOptions));\n\n // remove the content-encoding in order to not confuse downstream operations\n delete res.headers['content-encoding'];\n break;\n case 'br':\n if (isBrotliSupported) {\n streams.push(zlib.createBrotliDecompress(brotliOptions));\n delete res.headers['content-encoding'];\n }\n }\n }\n\n responseStream = streams.length > 1 ? stream.pipeline(streams, utils.noop) : streams[0];\n\n const offListeners = stream.finished(responseStream, () => {\n offListeners();\n onFinished();\n });\n\n const response = {\n status: res.statusCode,\n statusText: res.statusMessage,\n headers: new AxiosHeaders(res.headers),\n config,\n request: lastRequest\n };\n\n if (responseType === 'stream') {\n response.data = responseStream;\n settle(resolve, reject, response);\n } else {\n const responseBuffer = [];\n let totalResponseBytes = 0;\n\n responseStream.on('data', function handleStreamData(chunk) {\n responseBuffer.push(chunk);\n totalResponseBytes += chunk.length;\n\n // make sure the content length is not over the maxContentLength if specified\n if (config.maxContentLength > -1 && totalResponseBytes > config.maxContentLength) {\n // stream.destroy() emit aborted event before calling reject() on Node.js v16\n rejected = true;\n responseStream.destroy();\n reject(new AxiosError('maxContentLength size of ' + config.maxContentLength + ' exceeded',\n AxiosError.ERR_BAD_RESPONSE, config, lastRequest));\n }\n });\n\n responseStream.on('aborted', function handlerStreamAborted() {\n if (rejected) {\n return;\n }\n\n const err = new AxiosError(\n 'maxContentLength size of ' + config.maxContentLength + ' exceeded',\n AxiosError.ERR_BAD_RESPONSE,\n config,\n lastRequest\n );\n responseStream.destroy(err);\n reject(err);\n });\n\n responseStream.on('error', function handleStreamError(err) {\n if (req.destroyed) return;\n reject(AxiosError.from(err, null, config, lastRequest));\n });\n\n responseStream.on('end', function handleStreamEnd() {\n try {\n let responseData = responseBuffer.length === 1 ? responseBuffer[0] : Buffer.concat(responseBuffer);\n if (responseType !== 'arraybuffer') {\n responseData = responseData.toString(responseEncoding);\n if (!responseEncoding || responseEncoding === 'utf8') {\n responseData = utils.stripBOM(responseData);\n }\n }\n response.data = responseData;\n } catch (err) {\n return reject(AxiosError.from(err, null, config, response.request, response));\n }\n settle(resolve, reject, response);\n });\n }\n\n emitter.once('abort', err => {\n if (!responseStream.destroyed) {\n responseStream.emit('error', err);\n responseStream.destroy();\n }\n });\n });\n\n emitter.once('abort', err => {\n reject(err);\n req.destroy(err);\n });\n\n // Handle errors\n req.on('error', function handleRequestError(err) {\n // @todo remove\n // if (req.aborted && err.code !== AxiosError.ERR_FR_TOO_MANY_REDIRECTS) return;\n reject(AxiosError.from(err, null, config, req));\n });\n\n // set tcp keep alive to prevent drop connection by peer\n req.on('socket', function handleRequestSocket(socket) {\n // default interval of sending ack packet is 1 minute\n socket.setKeepAlive(true, 1000 * 60);\n });\n\n // Handle request timeout\n if (config.timeout) {\n // This is forcing a int timeout to avoid problems if the `req` interface doesn't handle other types.\n const timeout = parseInt(config.timeout, 10);\n\n if (Number.isNaN(timeout)) {\n reject(new AxiosError(\n 'error trying to parse `config.timeout` to int',\n AxiosError.ERR_BAD_OPTION_VALUE,\n config,\n req\n ));\n\n return;\n }\n\n // Sometime, the response will be very slow, and does not respond, the connect event will be block by event loop system.\n // And timer callback will be fired, and abort() will be invoked before connection, then get \"socket hang up\" and code ECONNRESET.\n // At this time, if we have a large number of request, nodejs will hang up some socket on background. and the number will up and up.\n // And then these socket which be hang up will devouring CPU little by little.\n // ClientRequest.setTimeout will be fired on the specify milliseconds, and can make sure that abort() will be fired after connect.\n req.setTimeout(timeout, function handleRequestTimeout() {\n if (isDone) return;\n let timeoutErrorMessage = config.timeout ? 'timeout of ' + config.timeout + 'ms exceeded' : 'timeout exceeded';\n const transitional = config.transitional || transitionalDefaults;\n if (config.timeoutErrorMessage) {\n timeoutErrorMessage = config.timeoutErrorMessage;\n }\n reject(new AxiosError(\n timeoutErrorMessage,\n transitional.clarifyTimeoutError ? AxiosError.ETIMEDOUT : AxiosError.ECONNABORTED,\n config,\n req\n ));\n abort();\n });\n }\n\n\n // Send the request\n if (utils.isStream(data)) {\n let ended = false;\n let errored = false;\n\n data.on('end', () => {\n ended = true;\n });\n\n data.once('error', err => {\n errored = true;\n req.destroy(err);\n });\n\n data.on('close', () => {\n if (!ended && !errored) {\n abort(new CanceledError('Request stream has been aborted', config, req));\n }\n });\n\n data.pipe(req);\n } else {\n req.end(data);\n }\n });\n}\n\nexport const __setProxy = setProxy;\n","import utils from './../utils.js';\nimport platform from '../platform/index.js';\n\nexport default platform.hasStandardBrowserEnv ?\n\n // Standard browser envs support document.cookie\n {\n write(name, value, expires, path, domain, secure) {\n const cookie = [name + '=' + encodeURIComponent(value)];\n\n utils.isNumber(expires) && cookie.push('expires=' + new Date(expires).toGMTString());\n\n utils.isString(path) && cookie.push('path=' + path);\n\n utils.isString(domain) && cookie.push('domain=' + domain);\n\n secure === true && cookie.push('secure');\n\n document.cookie = cookie.join('; ');\n },\n\n read(name) {\n const match = document.cookie.match(new RegExp('(^|;\\\\s*)(' + name + ')=([^;]*)'));\n return (match ? decodeURIComponent(match[3]) : null);\n },\n\n remove(name) {\n this.write(name, '', Date.now() - 86400000);\n }\n }\n\n :\n\n // Non-standard browser env (web workers, react-native) lack needed support.\n {\n write() {},\n read() {\n return null;\n },\n remove() {}\n };\n\n","'use strict';\n\nimport utils from './../utils.js';\nimport platform from '../platform/index.js';\n\nexport default platform.hasStandardBrowserEnv ?\n\n// Standard browser envs have full support of the APIs needed to test\n// whether the request URL is of the same origin as current location.\n (function standardBrowserEnv() {\n const msie = /(msie|trident)/i.test(navigator.userAgent);\n const urlParsingNode = document.createElement('a');\n let originURL;\n\n /**\n * Parse a URL to discover its components\n *\n * @param {String} url The URL to be parsed\n * @returns {Object}\n */\n function resolveURL(url) {\n let href = url;\n\n if (msie) {\n // IE needs attribute set twice to normalize properties\n urlParsingNode.setAttribute('href', href);\n href = urlParsingNode.href;\n }\n\n urlParsingNode.setAttribute('href', href);\n\n // urlParsingNode provides the UrlUtils interface - http://url.spec.whatwg.org/#urlutils\n return {\n href: urlParsingNode.href,\n protocol: urlParsingNode.protocol ? urlParsingNode.protocol.replace(/:$/, '') : '',\n host: urlParsingNode.host,\n search: urlParsingNode.search ? urlParsingNode.search.replace(/^\\?/, '') : '',\n hash: urlParsingNode.hash ? urlParsingNode.hash.replace(/^#/, '') : '',\n hostname: urlParsingNode.hostname,\n port: urlParsingNode.port,\n pathname: (urlParsingNode.pathname.charAt(0) === '/') ?\n urlParsingNode.pathname :\n '/' + urlParsingNode.pathname\n };\n }\n\n originURL = resolveURL(window.location.href);\n\n /**\n * Determine if a URL shares the same origin as the current location\n *\n * @param {String} requestURL The URL to test\n * @returns {boolean} True if URL shares the same origin, otherwise false\n */\n return function isURLSameOrigin(requestURL) {\n const parsed = (utils.isString(requestURL)) ? resolveURL(requestURL) : requestURL;\n return (parsed.protocol === originURL.protocol &&\n parsed.host === originURL.host);\n };\n })() :\n\n // Non standard browser envs (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return function isURLSameOrigin() {\n return true;\n };\n })();\n","'use strict';\n\nimport utils from './../utils.js';\nimport settle from './../core/settle.js';\nimport cookies from './../helpers/cookies.js';\nimport buildURL from './../helpers/buildURL.js';\nimport buildFullPath from '../core/buildFullPath.js';\nimport isURLSameOrigin from './../helpers/isURLSameOrigin.js';\nimport transitionalDefaults from '../defaults/transitional.js';\nimport AxiosError from '../core/AxiosError.js';\nimport CanceledError from '../cancel/CanceledError.js';\nimport parseProtocol from '../helpers/parseProtocol.js';\nimport platform from '../platform/index.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\nimport speedometer from '../helpers/speedometer.js';\n\nfunction progressEventReducer(listener, isDownloadStream) {\n let bytesNotified = 0;\n const _speedometer = speedometer(50, 250);\n\n return e => {\n const loaded = e.loaded;\n const total = e.lengthComputable ? e.total : undefined;\n const progressBytes = loaded - bytesNotified;\n const rate = _speedometer(progressBytes);\n const inRange = loaded <= total;\n\n bytesNotified = loaded;\n\n const data = {\n loaded,\n total,\n progress: total ? (loaded / total) : undefined,\n bytes: progressBytes,\n rate: rate ? rate : undefined,\n estimated: rate && total && inRange ? (total - loaded) / rate : undefined,\n event: e\n };\n\n data[isDownloadStream ? 'download' : 'upload'] = true;\n\n listener(data);\n };\n}\n\nconst isXHRAdapterSupported = typeof XMLHttpRequest !== 'undefined';\n\nexport default isXHRAdapterSupported && function (config) {\n return new Promise(function dispatchXhrRequest(resolve, reject) {\n let requestData = config.data;\n const requestHeaders = AxiosHeaders.from(config.headers).normalize();\n let {responseType, withXSRFToken} = config;\n let onCanceled;\n function done() {\n if (config.cancelToken) {\n config.cancelToken.unsubscribe(onCanceled);\n }\n\n if (config.signal) {\n config.signal.removeEventListener('abort', onCanceled);\n }\n }\n\n let contentType;\n\n if (utils.isFormData(requestData)) {\n if (platform.hasStandardBrowserEnv || platform.hasStandardBrowserWebWorkerEnv) {\n requestHeaders.setContentType(false); // Let the browser set it\n } else if ((contentType = requestHeaders.getContentType()) !== false) {\n // fix semicolon duplication issue for ReactNative FormData implementation\n const [type, ...tokens] = contentType ? contentType.split(';').map(token => token.trim()).filter(Boolean) : [];\n requestHeaders.setContentType([type || 'multipart/form-data', ...tokens].join('; '));\n }\n }\n\n let request = new XMLHttpRequest();\n\n // HTTP basic authentication\n if (config.auth) {\n const username = config.auth.username || '';\n const password = config.auth.password ? unescape(encodeURIComponent(config.auth.password)) : '';\n requestHeaders.set('Authorization', 'Basic ' + btoa(username + ':' + password));\n }\n\n const fullPath = buildFullPath(config.baseURL, config.url);\n\n request.open(config.method.toUpperCase(), buildURL(fullPath, config.params, config.paramsSerializer), true);\n\n // Set the request timeout in MS\n request.timeout = config.timeout;\n\n function onloadend() {\n if (!request) {\n return;\n }\n // Prepare the response\n const responseHeaders = AxiosHeaders.from(\n 'getAllResponseHeaders' in request && request.getAllResponseHeaders()\n );\n const responseData = !responseType || responseType === 'text' || responseType === 'json' ?\n request.responseText : request.response;\n const response = {\n data: responseData,\n status: request.status,\n statusText: request.statusText,\n headers: responseHeaders,\n config,\n request\n };\n\n settle(function _resolve(value) {\n resolve(value);\n done();\n }, function _reject(err) {\n reject(err);\n done();\n }, response);\n\n // Clean up request\n request = null;\n }\n\n if ('onloadend' in request) {\n // Use onloadend if available\n request.onloadend = onloadend;\n } else {\n // Listen for ready state to emulate onloadend\n request.onreadystatechange = function handleLoad() {\n if (!request || request.readyState !== 4) {\n return;\n }\n\n // The request errored out and we didn't get a response, this will be\n // handled by onerror instead\n // With one exception: request that using file: protocol, most browsers\n // will return status as 0 even though it's a successful request\n if (request.status === 0 && !(request.responseURL && request.responseURL.indexOf('file:') === 0)) {\n return;\n }\n // readystate handler is calling before onerror or ontimeout handlers,\n // so we should call onloadend on the next 'tick'\n setTimeout(onloadend);\n };\n }\n\n // Handle browser request cancellation (as opposed to a manual cancellation)\n request.onabort = function handleAbort() {\n if (!request) {\n return;\n }\n\n reject(new AxiosError('Request aborted', AxiosError.ECONNABORTED, config, request));\n\n // Clean up request\n request = null;\n };\n\n // Handle low level network errors\n request.onerror = function handleError() {\n // Real errors are hidden from us by the browser\n // onerror should only fire if it's a network error\n reject(new AxiosError('Network Error', AxiosError.ERR_NETWORK, config, request));\n\n // Clean up request\n request = null;\n };\n\n // Handle timeout\n request.ontimeout = function handleTimeout() {\n let timeoutErrorMessage = config.timeout ? 'timeout of ' + config.timeout + 'ms exceeded' : 'timeout exceeded';\n const transitional = config.transitional || transitionalDefaults;\n if (config.timeoutErrorMessage) {\n timeoutErrorMessage = config.timeoutErrorMessage;\n }\n reject(new AxiosError(\n timeoutErrorMessage,\n transitional.clarifyTimeoutError ? AxiosError.ETIMEDOUT : AxiosError.ECONNABORTED,\n config,\n request));\n\n // Clean up request\n request = null;\n };\n\n // Add xsrf header\n // This is only done if running in a standard browser environment.\n // Specifically not if we're in a web worker, or react-native.\n if(platform.hasStandardBrowserEnv) {\n withXSRFToken && utils.isFunction(withXSRFToken) && (withXSRFToken = withXSRFToken(config));\n\n if (withXSRFToken || (withXSRFToken !== false && isURLSameOrigin(fullPath))) {\n // Add xsrf header\n const xsrfValue = config.xsrfHeaderName && config.xsrfCookieName && cookies.read(config.xsrfCookieName);\n\n if (xsrfValue) {\n requestHeaders.set(config.xsrfHeaderName, xsrfValue);\n }\n }\n }\n\n // Remove Content-Type if data is undefined\n requestData === undefined && requestHeaders.setContentType(null);\n\n // Add headers to the request\n if ('setRequestHeader' in request) {\n utils.forEach(requestHeaders.toJSON(), function setRequestHeader(val, key) {\n request.setRequestHeader(key, val);\n });\n }\n\n // Add withCredentials to request if needed\n if (!utils.isUndefined(config.withCredentials)) {\n request.withCredentials = !!config.withCredentials;\n }\n\n // Add responseType to request if needed\n if (responseType && responseType !== 'json') {\n request.responseType = config.responseType;\n }\n\n // Handle progress if needed\n if (typeof config.onDownloadProgress === 'function') {\n request.addEventListener('progress', progressEventReducer(config.onDownloadProgress, true));\n }\n\n // Not all browsers support upload events\n if (typeof config.onUploadProgress === 'function' && request.upload) {\n request.upload.addEventListener('progress', progressEventReducer(config.onUploadProgress));\n }\n\n if (config.cancelToken || config.signal) {\n // Handle cancellation\n // eslint-disable-next-line func-names\n onCanceled = cancel => {\n if (!request) {\n return;\n }\n reject(!cancel || cancel.type ? new CanceledError(null, config, request) : cancel);\n request.abort();\n request = null;\n };\n\n config.cancelToken && config.cancelToken.subscribe(onCanceled);\n if (config.signal) {\n config.signal.aborted ? onCanceled() : config.signal.addEventListener('abort', onCanceled);\n }\n }\n\n const protocol = parseProtocol(fullPath);\n\n if (protocol && platform.protocols.indexOf(protocol) === -1) {\n reject(new AxiosError('Unsupported protocol ' + protocol + ':', AxiosError.ERR_BAD_REQUEST, config));\n return;\n }\n\n\n // Send the request\n request.send(requestData || null);\n });\n}\n","import utils from '../utils.js';\nimport httpAdapter from './http.js';\nimport xhrAdapter from './xhr.js';\nimport AxiosError from \"../core/AxiosError.js\";\n\nconst knownAdapters = {\n http: httpAdapter,\n xhr: xhrAdapter\n}\n\nutils.forEach(knownAdapters, (fn, value) => {\n if (fn) {\n try {\n Object.defineProperty(fn, 'name', {value});\n } catch (e) {\n // eslint-disable-next-line no-empty\n }\n Object.defineProperty(fn, 'adapterName', {value});\n }\n});\n\nconst renderReason = (reason) => `- ${reason}`;\n\nconst isResolvedHandle = (adapter) => utils.isFunction(adapter) || adapter === null || adapter === false;\n\nexport default {\n getAdapter: (adapters) => {\n adapters = utils.isArray(adapters) ? adapters : [adapters];\n\n const {length} = adapters;\n let nameOrAdapter;\n let adapter;\n\n const rejectedReasons = {};\n\n for (let i = 0; i < length; i++) {\n nameOrAdapter = adapters[i];\n let id;\n\n adapter = nameOrAdapter;\n\n if (!isResolvedHandle(nameOrAdapter)) {\n adapter = knownAdapters[(id = String(nameOrAdapter)).toLowerCase()];\n\n if (adapter === undefined) {\n throw new AxiosError(`Unknown adapter '${id}'`);\n }\n }\n\n if (adapter) {\n break;\n }\n\n rejectedReasons[id || '#' + i] = adapter;\n }\n\n if (!adapter) {\n\n const reasons = Object.entries(rejectedReasons)\n .map(([id, state]) => `adapter ${id} ` +\n (state === false ? 'is not supported by the environment' : 'is not available in the build')\n );\n\n let s = length ?\n (reasons.length > 1 ? 'since :\\n' + reasons.map(renderReason).join('\\n') : ' ' + renderReason(reasons[0])) :\n 'as no adapter specified';\n\n throw new AxiosError(\n `There is no suitable adapter to dispatch the request ` + s,\n 'ERR_NOT_SUPPORT'\n );\n }\n\n return adapter;\n },\n adapters: knownAdapters\n}\n","'use strict';\n\nimport transformData from './transformData.js';\nimport isCancel from '../cancel/isCancel.js';\nimport defaults from '../defaults/index.js';\nimport CanceledError from '../cancel/CanceledError.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\nimport adapters from \"../adapters/adapters.js\";\n\n/**\n * Throws a `CanceledError` if cancellation has been requested.\n *\n * @param {Object} config The config that is to be used for the request\n *\n * @returns {void}\n */\nfunction throwIfCancellationRequested(config) {\n if (config.cancelToken) {\n config.cancelToken.throwIfRequested();\n }\n\n if (config.signal && config.signal.aborted) {\n throw new CanceledError(null, config);\n }\n}\n\n/**\n * Dispatch a request to the server using the configured adapter.\n *\n * @param {object} config The config that is to be used for the request\n *\n * @returns {Promise} The Promise to be fulfilled\n */\nexport default function dispatchRequest(config) {\n throwIfCancellationRequested(config);\n\n config.headers = AxiosHeaders.from(config.headers);\n\n // Transform request data\n config.data = transformData.call(\n config,\n config.transformRequest\n );\n\n if (['post', 'put', 'patch'].indexOf(config.method) !== -1) {\n config.headers.setContentType('application/x-www-form-urlencoded', false);\n }\n\n const adapter = adapters.getAdapter(config.adapter || defaults.adapter);\n\n return adapter(config).then(function onAdapterResolution(response) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n response.data = transformData.call(\n config,\n config.transformResponse,\n response\n );\n\n response.headers = AxiosHeaders.from(response.headers);\n\n return response;\n }, function onAdapterRejection(reason) {\n if (!isCancel(reason)) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n if (reason && reason.response) {\n reason.response.data = transformData.call(\n config,\n config.transformResponse,\n reason.response\n );\n reason.response.headers = AxiosHeaders.from(reason.response.headers);\n }\n }\n\n return Promise.reject(reason);\n });\n}\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosHeaders from \"./AxiosHeaders.js\";\n\nconst headersToObject = (thing) => thing instanceof AxiosHeaders ? thing.toJSON() : thing;\n\n/**\n * Config-specific merge-function which creates a new config-object\n * by merging two configuration objects together.\n *\n * @param {Object} config1\n * @param {Object} config2\n *\n * @returns {Object} New object resulting from merging config2 to config1\n */\nexport default function mergeConfig(config1, config2) {\n // eslint-disable-next-line no-param-reassign\n config2 = config2 || {};\n const config = {};\n\n function getMergedValue(target, source, caseless) {\n if (utils.isPlainObject(target) && utils.isPlainObject(source)) {\n return utils.merge.call({caseless}, target, source);\n } else if (utils.isPlainObject(source)) {\n return utils.merge({}, source);\n } else if (utils.isArray(source)) {\n return source.slice();\n }\n return source;\n }\n\n // eslint-disable-next-line consistent-return\n function mergeDeepProperties(a, b, caseless) {\n if (!utils.isUndefined(b)) {\n return getMergedValue(a, b, caseless);\n } else if (!utils.isUndefined(a)) {\n return getMergedValue(undefined, a, caseless);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function valueFromConfig2(a, b) {\n if (!utils.isUndefined(b)) {\n return getMergedValue(undefined, b);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function defaultToConfig2(a, b) {\n if (!utils.isUndefined(b)) {\n return getMergedValue(undefined, b);\n } else if (!utils.isUndefined(a)) {\n return getMergedValue(undefined, a);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function mergeDirectKeys(a, b, prop) {\n if (prop in config2) {\n return getMergedValue(a, b);\n } else if (prop in config1) {\n return getMergedValue(undefined, a);\n }\n }\n\n const mergeMap = {\n url: valueFromConfig2,\n method: valueFromConfig2,\n data: valueFromConfig2,\n baseURL: defaultToConfig2,\n transformRequest: defaultToConfig2,\n transformResponse: defaultToConfig2,\n paramsSerializer: defaultToConfig2,\n timeout: defaultToConfig2,\n timeoutMessage: defaultToConfig2,\n withCredentials: defaultToConfig2,\n withXSRFToken: defaultToConfig2,\n adapter: defaultToConfig2,\n responseType: defaultToConfig2,\n xsrfCookieName: defaultToConfig2,\n xsrfHeaderName: defaultToConfig2,\n onUploadProgress: defaultToConfig2,\n onDownloadProgress: defaultToConfig2,\n decompress: defaultToConfig2,\n maxContentLength: defaultToConfig2,\n maxBodyLength: defaultToConfig2,\n beforeRedirect: defaultToConfig2,\n transport: defaultToConfig2,\n httpAgent: defaultToConfig2,\n httpsAgent: defaultToConfig2,\n cancelToken: defaultToConfig2,\n socketPath: defaultToConfig2,\n responseEncoding: defaultToConfig2,\n validateStatus: mergeDirectKeys,\n headers: (a, b) => mergeDeepProperties(headersToObject(a), headersToObject(b), true)\n };\n\n utils.forEach(Object.keys(Object.assign({}, config1, config2)), function computeConfigValue(prop) {\n const merge = mergeMap[prop] || mergeDeepProperties;\n const configValue = merge(config1[prop], config2[prop], prop);\n (utils.isUndefined(configValue) && merge !== mergeDirectKeys) || (config[prop] = configValue);\n });\n\n return config;\n}\n","'use strict';\n\nimport {VERSION} from '../env/data.js';\nimport AxiosError from '../core/AxiosError.js';\n\nconst validators = {};\n\n// eslint-disable-next-line func-names\n['object', 'boolean', 'number', 'function', 'string', 'symbol'].forEach((type, i) => {\n validators[type] = function validator(thing) {\n return typeof thing === type || 'a' + (i < 1 ? 'n ' : ' ') + type;\n };\n});\n\nconst deprecatedWarnings = {};\n\n/**\n * Transitional option validator\n *\n * @param {function|boolean?} validator - set to false if the transitional option has been removed\n * @param {string?} version - deprecated version / removed since version\n * @param {string?} message - some message with additional info\n *\n * @returns {function}\n */\nvalidators.transitional = function transitional(validator, version, message) {\n function formatMessage(opt, desc) {\n return '[Axios v' + VERSION + '] Transitional option \\'' + opt + '\\'' + desc + (message ? '. ' + message : '');\n }\n\n // eslint-disable-next-line func-names\n return (value, opt, opts) => {\n if (validator === false) {\n throw new AxiosError(\n formatMessage(opt, ' has been removed' + (version ? ' in ' + version : '')),\n AxiosError.ERR_DEPRECATED\n );\n }\n\n if (version && !deprecatedWarnings[opt]) {\n deprecatedWarnings[opt] = true;\n // eslint-disable-next-line no-console\n console.warn(\n formatMessage(\n opt,\n ' has been deprecated since v' + version + ' and will be removed in the near future'\n )\n );\n }\n\n return validator ? validator(value, opt, opts) : true;\n };\n};\n\n/**\n * Assert object's properties type\n *\n * @param {object} options\n * @param {object} schema\n * @param {boolean?} allowUnknown\n *\n * @returns {object}\n */\n\nfunction assertOptions(options, schema, allowUnknown) {\n if (typeof options !== 'object') {\n throw new AxiosError('options must be an object', AxiosError.ERR_BAD_OPTION_VALUE);\n }\n const keys = Object.keys(options);\n let i = keys.length;\n while (i-- > 0) {\n const opt = keys[i];\n const validator = schema[opt];\n if (validator) {\n const value = options[opt];\n const result = value === undefined || validator(value, opt, options);\n if (result !== true) {\n throw new AxiosError('option ' + opt + ' must be ' + result, AxiosError.ERR_BAD_OPTION_VALUE);\n }\n continue;\n }\n if (allowUnknown !== true) {\n throw new AxiosError('Unknown option ' + opt, AxiosError.ERR_BAD_OPTION);\n }\n }\n}\n\nexport default {\n assertOptions,\n validators\n};\n","'use strict';\n\nimport utils from './../utils.js';\nimport buildURL from '../helpers/buildURL.js';\nimport InterceptorManager from './InterceptorManager.js';\nimport dispatchRequest from './dispatchRequest.js';\nimport mergeConfig from './mergeConfig.js';\nimport buildFullPath from './buildFullPath.js';\nimport validator from '../helpers/validator.js';\nimport AxiosHeaders from './AxiosHeaders.js';\n\nconst validators = validator.validators;\n\n/**\n * Create a new instance of Axios\n *\n * @param {Object} instanceConfig The default config for the instance\n *\n * @return {Axios} A new instance of Axios\n */\nclass Axios {\n constructor(instanceConfig) {\n this.defaults = instanceConfig;\n this.interceptors = {\n request: new InterceptorManager(),\n response: new InterceptorManager()\n };\n }\n\n /**\n * Dispatch a request\n *\n * @param {String|Object} configOrUrl The config specific for this request (merged with this.defaults)\n * @param {?Object} config\n *\n * @returns {Promise} The Promise to be fulfilled\n */\n request(configOrUrl, config) {\n /*eslint no-param-reassign:0*/\n // Allow for axios('example/url'[, config]) a la fetch API\n if (typeof configOrUrl === 'string') {\n config = config || {};\n config.url = configOrUrl;\n } else {\n config = configOrUrl || {};\n }\n\n config = mergeConfig(this.defaults, config);\n\n const {transitional, paramsSerializer, headers} = config;\n\n if (transitional !== undefined) {\n validator.assertOptions(transitional, {\n silentJSONParsing: validators.transitional(validators.boolean),\n forcedJSONParsing: validators.transitional(validators.boolean),\n clarifyTimeoutError: validators.transitional(validators.boolean)\n }, false);\n }\n\n if (paramsSerializer != null) {\n if (utils.isFunction(paramsSerializer)) {\n config.paramsSerializer = {\n serialize: paramsSerializer\n }\n } else {\n validator.assertOptions(paramsSerializer, {\n encode: validators.function,\n serialize: validators.function\n }, true);\n }\n }\n\n // Set config.method\n config.method = (config.method || this.defaults.method || 'get').toLowerCase();\n\n // Flatten headers\n let contextHeaders = headers && utils.merge(\n headers.common,\n headers[config.method]\n );\n\n headers && utils.forEach(\n ['delete', 'get', 'head', 'post', 'put', 'patch', 'common'],\n (method) => {\n delete headers[method];\n }\n );\n\n config.headers = AxiosHeaders.concat(contextHeaders, headers);\n\n // filter out skipped interceptors\n const requestInterceptorChain = [];\n let synchronousRequestInterceptors = true;\n this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) {\n if (typeof interceptor.runWhen === 'function' && interceptor.runWhen(config) === false) {\n return;\n }\n\n synchronousRequestInterceptors = synchronousRequestInterceptors && interceptor.synchronous;\n\n requestInterceptorChain.unshift(interceptor.fulfilled, interceptor.rejected);\n });\n\n const responseInterceptorChain = [];\n this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) {\n responseInterceptorChain.push(interceptor.fulfilled, interceptor.rejected);\n });\n\n let promise;\n let i = 0;\n let len;\n\n if (!synchronousRequestInterceptors) {\n const chain = [dispatchRequest.bind(this), undefined];\n chain.unshift.apply(chain, requestInterceptorChain);\n chain.push.apply(chain, responseInterceptorChain);\n len = chain.length;\n\n promise = Promise.resolve(config);\n\n while (i < len) {\n promise = promise.then(chain[i++], chain[i++]);\n }\n\n return promise;\n }\n\n len = requestInterceptorChain.length;\n\n let newConfig = config;\n\n i = 0;\n\n while (i < len) {\n const onFulfilled = requestInterceptorChain[i++];\n const onRejected = requestInterceptorChain[i++];\n try {\n newConfig = onFulfilled(newConfig);\n } catch (error) {\n onRejected.call(this, error);\n break;\n }\n }\n\n try {\n promise = dispatchRequest.call(this, newConfig);\n } catch (error) {\n return Promise.reject(error);\n }\n\n i = 0;\n len = responseInterceptorChain.length;\n\n while (i < len) {\n promise = promise.then(responseInterceptorChain[i++], responseInterceptorChain[i++]);\n }\n\n return promise;\n }\n\n getUri(config) {\n config = mergeConfig(this.defaults, config);\n const fullPath = buildFullPath(config.baseURL, config.url);\n return buildURL(fullPath, config.params, config.paramsSerializer);\n }\n}\n\n// Provide aliases for supported request methods\nutils.forEach(['delete', 'get', 'head', 'options'], function forEachMethodNoData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function(url, config) {\n return this.request(mergeConfig(config || {}, {\n method,\n url,\n data: (config || {}).data\n }));\n };\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n /*eslint func-names:0*/\n\n function generateHTTPMethod(isForm) {\n return function httpMethod(url, data, config) {\n return this.request(mergeConfig(config || {}, {\n method,\n headers: isForm ? {\n 'Content-Type': 'multipart/form-data'\n } : {},\n url,\n data\n }));\n };\n }\n\n Axios.prototype[method] = generateHTTPMethod();\n\n Axios.prototype[method + 'Form'] = generateHTTPMethod(true);\n});\n\nexport default Axios;\n","'use strict';\n\nimport CanceledError from './CanceledError.js';\n\n/**\n * A `CancelToken` is an object that can be used to request cancellation of an operation.\n *\n * @param {Function} executor The executor function.\n *\n * @returns {CancelToken}\n */\nclass CancelToken {\n constructor(executor) {\n if (typeof executor !== 'function') {\n throw new TypeError('executor must be a function.');\n }\n\n let resolvePromise;\n\n this.promise = new Promise(function promiseExecutor(resolve) {\n resolvePromise = resolve;\n });\n\n const token = this;\n\n // eslint-disable-next-line func-names\n this.promise.then(cancel => {\n if (!token._listeners) return;\n\n let i = token._listeners.length;\n\n while (i-- > 0) {\n token._listeners[i](cancel);\n }\n token._listeners = null;\n });\n\n // eslint-disable-next-line func-names\n this.promise.then = onfulfilled => {\n let _resolve;\n // eslint-disable-next-line func-names\n const promise = new Promise(resolve => {\n token.subscribe(resolve);\n _resolve = resolve;\n }).then(onfulfilled);\n\n promise.cancel = function reject() {\n token.unsubscribe(_resolve);\n };\n\n return promise;\n };\n\n executor(function cancel(message, config, request) {\n if (token.reason) {\n // Cancellation has already been requested\n return;\n }\n\n token.reason = new CanceledError(message, config, request);\n resolvePromise(token.reason);\n });\n }\n\n /**\n * Throws a `CanceledError` if cancellation has been requested.\n */\n throwIfRequested() {\n if (this.reason) {\n throw this.reason;\n }\n }\n\n /**\n * Subscribe to the cancel signal\n */\n\n subscribe(listener) {\n if (this.reason) {\n listener(this.reason);\n return;\n }\n\n if (this._listeners) {\n this._listeners.push(listener);\n } else {\n this._listeners = [listener];\n }\n }\n\n /**\n * Unsubscribe from the cancel signal\n */\n\n unsubscribe(listener) {\n if (!this._listeners) {\n return;\n }\n const index = this._listeners.indexOf(listener);\n if (index !== -1) {\n this._listeners.splice(index, 1);\n }\n }\n\n /**\n * Returns an object that contains a new `CancelToken` and a function that, when called,\n * cancels the `CancelToken`.\n */\n static source() {\n let cancel;\n const token = new CancelToken(function executor(c) {\n cancel = c;\n });\n return {\n token,\n cancel\n };\n }\n}\n\nexport default CancelToken;\n","'use strict';\n\n/**\n * Syntactic sugar for invoking a function and expanding an array for arguments.\n *\n * Common use case would be to use `Function.prototype.apply`.\n *\n * ```js\n * function f(x, y, z) {}\n * var args = [1, 2, 3];\n * f.apply(null, args);\n * ```\n *\n * With `spread` this example can be re-written.\n *\n * ```js\n * spread(function(x, y, z) {})([1, 2, 3]);\n * ```\n *\n * @param {Function} callback\n *\n * @returns {Function}\n */\nexport default function spread(callback) {\n return function wrap(arr) {\n return callback.apply(null, arr);\n };\n}\n","'use strict';\n\nimport utils from './../utils.js';\n\n/**\n * Determines whether the payload is an error thrown by Axios\n *\n * @param {*} payload The value to test\n *\n * @returns {boolean} True if the payload is an error thrown by Axios, otherwise false\n */\nexport default function isAxiosError(payload) {\n return utils.isObject(payload) && (payload.isAxiosError === true);\n}\n","const HttpStatusCode = {\n Continue: 100,\n SwitchingProtocols: 101,\n Processing: 102,\n EarlyHints: 103,\n Ok: 200,\n Created: 201,\n Accepted: 202,\n NonAuthoritativeInformation: 203,\n NoContent: 204,\n ResetContent: 205,\n PartialContent: 206,\n MultiStatus: 207,\n AlreadyReported: 208,\n ImUsed: 226,\n MultipleChoices: 300,\n MovedPermanently: 301,\n Found: 302,\n SeeOther: 303,\n NotModified: 304,\n UseProxy: 305,\n Unused: 306,\n TemporaryRedirect: 307,\n PermanentRedirect: 308,\n BadRequest: 400,\n Unauthorized: 401,\n PaymentRequired: 402,\n Forbidden: 403,\n NotFound: 404,\n MethodNotAllowed: 405,\n NotAcceptable: 406,\n ProxyAuthenticationRequired: 407,\n RequestTimeout: 408,\n Conflict: 409,\n Gone: 410,\n LengthRequired: 411,\n PreconditionFailed: 412,\n PayloadTooLarge: 413,\n UriTooLong: 414,\n UnsupportedMediaType: 415,\n RangeNotSatisfiable: 416,\n ExpectationFailed: 417,\n ImATeapot: 418,\n MisdirectedRequest: 421,\n UnprocessableEntity: 422,\n Locked: 423,\n FailedDependency: 424,\n TooEarly: 425,\n UpgradeRequired: 426,\n PreconditionRequired: 428,\n TooManyRequests: 429,\n RequestHeaderFieldsTooLarge: 431,\n UnavailableForLegalReasons: 451,\n InternalServerError: 500,\n NotImplemented: 501,\n BadGateway: 502,\n ServiceUnavailable: 503,\n GatewayTimeout: 504,\n HttpVersionNotSupported: 505,\n VariantAlsoNegotiates: 506,\n InsufficientStorage: 507,\n LoopDetected: 508,\n NotExtended: 510,\n NetworkAuthenticationRequired: 511,\n};\n\nObject.entries(HttpStatusCode).forEach(([key, value]) => {\n HttpStatusCode[value] = key;\n});\n\nexport default HttpStatusCode;\n","'use strict';\n\nimport utils from './utils.js';\nimport bind from './helpers/bind.js';\nimport Axios from './core/Axios.js';\nimport mergeConfig from './core/mergeConfig.js';\nimport defaults from './defaults/index.js';\nimport formDataToJSON from './helpers/formDataToJSON.js';\nimport CanceledError from './cancel/CanceledError.js';\nimport CancelToken from './cancel/CancelToken.js';\nimport isCancel from './cancel/isCancel.js';\nimport {VERSION} from './env/data.js';\nimport toFormData from './helpers/toFormData.js';\nimport AxiosError from './core/AxiosError.js';\nimport spread from './helpers/spread.js';\nimport isAxiosError from './helpers/isAxiosError.js';\nimport AxiosHeaders from \"./core/AxiosHeaders.js\";\nimport adapters from './adapters/adapters.js';\nimport HttpStatusCode from './helpers/HttpStatusCode.js';\n\n/**\n * Create an instance of Axios\n *\n * @param {Object} defaultConfig The default config for the instance\n *\n * @returns {Axios} A new instance of Axios\n */\nfunction createInstance(defaultConfig) {\n const context = new Axios(defaultConfig);\n const instance = bind(Axios.prototype.request, context);\n\n // Copy axios.prototype to instance\n utils.extend(instance, Axios.prototype, context, {allOwnKeys: true});\n\n // Copy context to instance\n utils.extend(instance, context, null, {allOwnKeys: true});\n\n // Factory for creating new instances\n instance.create = function create(instanceConfig) {\n return createInstance(mergeConfig(defaultConfig, instanceConfig));\n };\n\n return instance;\n}\n\n// Create the default instance to be exported\nconst axios = createInstance(defaults);\n\n// Expose Axios class to allow class inheritance\naxios.Axios = Axios;\n\n// Expose Cancel & CancelToken\naxios.CanceledError = CanceledError;\naxios.CancelToken = CancelToken;\naxios.isCancel = isCancel;\naxios.VERSION = VERSION;\naxios.toFormData = toFormData;\n\n// Expose AxiosError class\naxios.AxiosError = AxiosError;\n\n// alias for CanceledError for backward compatibility\naxios.Cancel = axios.CanceledError;\n\n// Expose all/spread\naxios.all = function all(promises) {\n return Promise.all(promises);\n};\n\naxios.spread = spread;\n\n// Expose isAxiosError\naxios.isAxiosError = isAxiosError;\n\n// Expose mergeConfig\naxios.mergeConfig = mergeConfig;\n\naxios.AxiosHeaders = AxiosHeaders;\n\naxios.formToJSON = thing => formDataToJSON(utils.isHTMLForm(thing) ? new FormData(thing) : thing);\n\naxios.getAdapter = adapters.getAdapter;\n\naxios.HttpStatusCode = HttpStatusCode;\n\naxios.default = axios;\n\n// this module should only have a default export\nexport default axios\n","/*! safe-buffer. MIT License. Feross Aboukhadijeh */\n/* eslint-disable node/no-deprecated-api */\nvar buffer = require('buffer')\nvar Buffer = buffer.Buffer\n\n// alternative to using Object.keys for old browsers\nfunction copyProps (src, dst) {\n for (var key in src) {\n dst[key] = src[key]\n }\n}\nif (Buffer.from && Buffer.alloc && Buffer.allocUnsafe && Buffer.allocUnsafeSlow) {\n module.exports = buffer\n} else {\n // Copy properties from require('buffer')\n copyProps(buffer, exports)\n exports.Buffer = SafeBuffer\n}\n\nfunction SafeBuffer (arg, encodingOrOffset, length) {\n return Buffer(arg, encodingOrOffset, length)\n}\n\nSafeBuffer.prototype = Object.create(Buffer.prototype)\n\n// Copy static methods from Buffer\ncopyProps(Buffer, SafeBuffer)\n\nSafeBuffer.from = function (arg, encodingOrOffset, length) {\n if (typeof arg === 'number') {\n throw new TypeError('Argument must not be a number')\n }\n return Buffer(arg, encodingOrOffset, length)\n}\n\nSafeBuffer.alloc = function (size, fill, encoding) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n var buf = Buffer(size)\n if (fill !== undefined) {\n if (typeof encoding === 'string') {\n buf.fill(fill, encoding)\n } else {\n buf.fill(fill)\n }\n } else {\n buf.fill(0)\n }\n return buf\n}\n\nSafeBuffer.allocUnsafe = function (size) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n return Buffer(size)\n}\n\nSafeBuffer.allocUnsafeSlow = function (size) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n return buffer.SlowBuffer(size)\n}\n","/*global module, process*/\nvar Buffer = require('safe-buffer').Buffer;\nvar Stream = require('stream');\nvar util = require('util');\n\nfunction DataStream(data) {\n this.buffer = null;\n this.writable = true;\n this.readable = true;\n\n // No input\n if (!data) {\n this.buffer = Buffer.alloc(0);\n return this;\n }\n\n // Stream\n if (typeof data.pipe === 'function') {\n this.buffer = Buffer.alloc(0);\n data.pipe(this);\n return this;\n }\n\n // Buffer or String\n // or Object (assumedly a passworded key)\n if (data.length || typeof data === 'object') {\n this.buffer = data;\n this.writable = false;\n process.nextTick(function () {\n this.emit('end', data);\n this.readable = false;\n this.emit('close');\n }.bind(this));\n return this;\n }\n\n throw new TypeError('Unexpected data type ('+ typeof data + ')');\n}\nutil.inherits(DataStream, Stream);\n\nDataStream.prototype.write = function write(data) {\n this.buffer = Buffer.concat([this.buffer, Buffer.from(data)]);\n this.emit('data', data);\n};\n\nDataStream.prototype.end = function end(data) {\n if (data)\n this.write(data);\n this.emit('end', data);\n this.emit('close');\n this.writable = false;\n this.readable = false;\n};\n\nmodule.exports = DataStream;\n","/*jshint node:true */\n'use strict';\nvar Buffer = require('buffer').Buffer; // browserify\nvar SlowBuffer = require('buffer').SlowBuffer;\n\nmodule.exports = bufferEq;\n\nfunction bufferEq(a, b) {\n\n // shortcutting on type is necessary for correctness\n if (!Buffer.isBuffer(a) || !Buffer.isBuffer(b)) {\n return false;\n }\n\n // buffer sizes should be well-known information, so despite this\n // shortcutting, it doesn't leak any information about the *contents* of the\n // buffers.\n if (a.length !== b.length) {\n return false;\n }\n\n var c = 0;\n for (var i = 0; i < a.length; i++) {\n /*jshint bitwise:false */\n c |= a[i] ^ b[i]; // XOR\n }\n return c === 0;\n}\n\nbufferEq.install = function() {\n Buffer.prototype.equal = SlowBuffer.prototype.equal = function equal(that) {\n return bufferEq(this, that);\n };\n};\n\nvar origBufEqual = Buffer.prototype.equal;\nvar origSlowBufEqual = SlowBuffer.prototype.equal;\nbufferEq.restore = function() {\n Buffer.prototype.equal = origBufEqual;\n SlowBuffer.prototype.equal = origSlowBufEqual;\n};\n","'use strict';\n\nfunction getParamSize(keySize) {\n\tvar result = ((keySize / 8) | 0) + (keySize % 8 === 0 ? 0 : 1);\n\treturn result;\n}\n\nvar paramBytesForAlg = {\n\tES256: getParamSize(256),\n\tES384: getParamSize(384),\n\tES512: getParamSize(521)\n};\n\nfunction getParamBytesForAlg(alg) {\n\tvar paramBytes = paramBytesForAlg[alg];\n\tif (paramBytes) {\n\t\treturn paramBytes;\n\t}\n\n\tthrow new Error('Unknown algorithm \"' + alg + '\"');\n}\n\nmodule.exports = getParamBytesForAlg;\n","'use strict';\n\nvar Buffer = require('safe-buffer').Buffer;\n\nvar getParamBytesForAlg = require('./param-bytes-for-alg');\n\nvar MAX_OCTET = 0x80,\n\tCLASS_UNIVERSAL = 0,\n\tPRIMITIVE_BIT = 0x20,\n\tTAG_SEQ = 0x10,\n\tTAG_INT = 0x02,\n\tENCODED_TAG_SEQ = (TAG_SEQ | PRIMITIVE_BIT) | (CLASS_UNIVERSAL << 6),\n\tENCODED_TAG_INT = TAG_INT | (CLASS_UNIVERSAL << 6);\n\nfunction base64Url(base64) {\n\treturn base64\n\t\t.replace(/=/g, '')\n\t\t.replace(/\\+/g, '-')\n\t\t.replace(/\\//g, '_');\n}\n\nfunction signatureAsBuffer(signature) {\n\tif (Buffer.isBuffer(signature)) {\n\t\treturn signature;\n\t} else if ('string' === typeof signature) {\n\t\treturn Buffer.from(signature, 'base64');\n\t}\n\n\tthrow new TypeError('ECDSA signature must be a Base64 string or a Buffer');\n}\n\nfunction derToJose(signature, alg) {\n\tsignature = signatureAsBuffer(signature);\n\tvar paramBytes = getParamBytesForAlg(alg);\n\n\t// the DER encoded param should at most be the param size, plus a padding\n\t// zero, since due to being a signed integer\n\tvar maxEncodedParamLength = paramBytes + 1;\n\n\tvar inputLength = signature.length;\n\n\tvar offset = 0;\n\tif (signature[offset++] !== ENCODED_TAG_SEQ) {\n\t\tthrow new Error('Could not find expected \"seq\"');\n\t}\n\n\tvar seqLength = signature[offset++];\n\tif (seqLength === (MAX_OCTET | 1)) {\n\t\tseqLength = signature[offset++];\n\t}\n\n\tif (inputLength - offset < seqLength) {\n\t\tthrow new Error('\"seq\" specified length of \"' + seqLength + '\", only \"' + (inputLength - offset) + '\" remaining');\n\t}\n\n\tif (signature[offset++] !== ENCODED_TAG_INT) {\n\t\tthrow new Error('Could not find expected \"int\" for \"r\"');\n\t}\n\n\tvar rLength = signature[offset++];\n\n\tif (inputLength - offset - 2 < rLength) {\n\t\tthrow new Error('\"r\" specified length of \"' + rLength + '\", only \"' + (inputLength - offset - 2) + '\" available');\n\t}\n\n\tif (maxEncodedParamLength < rLength) {\n\t\tthrow new Error('\"r\" specified length of \"' + rLength + '\", max of \"' + maxEncodedParamLength + '\" is acceptable');\n\t}\n\n\tvar rOffset = offset;\n\toffset += rLength;\n\n\tif (signature[offset++] !== ENCODED_TAG_INT) {\n\t\tthrow new Error('Could not find expected \"int\" for \"s\"');\n\t}\n\n\tvar sLength = signature[offset++];\n\n\tif (inputLength - offset !== sLength) {\n\t\tthrow new Error('\"s\" specified length of \"' + sLength + '\", expected \"' + (inputLength - offset) + '\"');\n\t}\n\n\tif (maxEncodedParamLength < sLength) {\n\t\tthrow new Error('\"s\" specified length of \"' + sLength + '\", max of \"' + maxEncodedParamLength + '\" is acceptable');\n\t}\n\n\tvar sOffset = offset;\n\toffset += sLength;\n\n\tif (offset !== inputLength) {\n\t\tthrow new Error('Expected to consume entire buffer, but \"' + (inputLength - offset) + '\" bytes remain');\n\t}\n\n\tvar rPadding = paramBytes - rLength,\n\t\tsPadding = paramBytes - sLength;\n\n\tvar dst = Buffer.allocUnsafe(rPadding + rLength + sPadding + sLength);\n\n\tfor (offset = 0; offset < rPadding; ++offset) {\n\t\tdst[offset] = 0;\n\t}\n\tsignature.copy(dst, offset, rOffset + Math.max(-rPadding, 0), rOffset + rLength);\n\n\toffset = paramBytes;\n\n\tfor (var o = offset; offset < o + sPadding; ++offset) {\n\t\tdst[offset] = 0;\n\t}\n\tsignature.copy(dst, offset, sOffset + Math.max(-sPadding, 0), sOffset + sLength);\n\n\tdst = dst.toString('base64');\n\tdst = base64Url(dst);\n\n\treturn dst;\n}\n\nfunction countPadding(buf, start, stop) {\n\tvar padding = 0;\n\twhile (start + padding < stop && buf[start + padding] === 0) {\n\t\t++padding;\n\t}\n\n\tvar needsSign = buf[start + padding] >= MAX_OCTET;\n\tif (needsSign) {\n\t\t--padding;\n\t}\n\n\treturn padding;\n}\n\nfunction joseToDer(signature, alg) {\n\tsignature = signatureAsBuffer(signature);\n\tvar paramBytes = getParamBytesForAlg(alg);\n\n\tvar signatureBytes = signature.length;\n\tif (signatureBytes !== paramBytes * 2) {\n\t\tthrow new TypeError('\"' + alg + '\" signatures must be \"' + paramBytes * 2 + '\" bytes, saw \"' + signatureBytes + '\"');\n\t}\n\n\tvar rPadding = countPadding(signature, 0, paramBytes);\n\tvar sPadding = countPadding(signature, paramBytes, signature.length);\n\tvar rLength = paramBytes - rPadding;\n\tvar sLength = paramBytes - sPadding;\n\n\tvar rsBytes = 1 + 1 + rLength + 1 + 1 + sLength;\n\n\tvar shortLength = rsBytes < MAX_OCTET;\n\n\tvar dst = Buffer.allocUnsafe((shortLength ? 2 : 3) + rsBytes);\n\n\tvar offset = 0;\n\tdst[offset++] = ENCODED_TAG_SEQ;\n\tif (shortLength) {\n\t\t// Bit 8 has value \"0\"\n\t\t// bits 7-1 give the length.\n\t\tdst[offset++] = rsBytes;\n\t} else {\n\t\t// Bit 8 of first octet has value \"1\"\n\t\t// bits 7-1 give the number of additional length octets.\n\t\tdst[offset++] = MAX_OCTET\t| 1;\n\t\t// length, base 256\n\t\tdst[offset++] = rsBytes & 0xff;\n\t}\n\tdst[offset++] = ENCODED_TAG_INT;\n\tdst[offset++] = rLength;\n\tif (rPadding < 0) {\n\t\tdst[offset++] = 0;\n\t\toffset += signature.copy(dst, offset, 0, paramBytes);\n\t} else {\n\t\toffset += signature.copy(dst, offset, rPadding, paramBytes);\n\t}\n\tdst[offset++] = ENCODED_TAG_INT;\n\tdst[offset++] = sLength;\n\tif (sPadding < 0) {\n\t\tdst[offset++] = 0;\n\t\tsignature.copy(dst, offset, paramBytes);\n\t} else {\n\t\tsignature.copy(dst, offset, paramBytes + sPadding);\n\t}\n\n\treturn dst;\n}\n\nmodule.exports = {\n\tderToJose: derToJose,\n\tjoseToDer: joseToDer\n};\n","var bufferEqual = require('buffer-equal-constant-time');\nvar Buffer = require('safe-buffer').Buffer;\nvar crypto = require('crypto');\nvar formatEcdsa = require('ecdsa-sig-formatter');\nvar util = require('util');\n\nvar MSG_INVALID_ALGORITHM = '\"%s\" is not a valid algorithm.\\n Supported algorithms are:\\n \"HS256\", \"HS384\", \"HS512\", \"RS256\", \"RS384\", \"RS512\", \"PS256\", \"PS384\", \"PS512\", \"ES256\", \"ES384\", \"ES512\" and \"none\".'\nvar MSG_INVALID_SECRET = 'secret must be a string or buffer';\nvar MSG_INVALID_VERIFIER_KEY = 'key must be a string or a buffer';\nvar MSG_INVALID_SIGNER_KEY = 'key must be a string, a buffer or an object';\n\nvar supportsKeyObjects = typeof crypto.createPublicKey === 'function';\nif (supportsKeyObjects) {\n MSG_INVALID_VERIFIER_KEY += ' or a KeyObject';\n MSG_INVALID_SECRET += 'or a KeyObject';\n}\n\nfunction checkIsPublicKey(key) {\n if (Buffer.isBuffer(key)) {\n return;\n }\n\n if (typeof key === 'string') {\n return;\n }\n\n if (!supportsKeyObjects) {\n throw typeError(MSG_INVALID_VERIFIER_KEY);\n }\n\n if (typeof key !== 'object') {\n throw typeError(MSG_INVALID_VERIFIER_KEY);\n }\n\n if (typeof key.type !== 'string') {\n throw typeError(MSG_INVALID_VERIFIER_KEY);\n }\n\n if (typeof key.asymmetricKeyType !== 'string') {\n throw typeError(MSG_INVALID_VERIFIER_KEY);\n }\n\n if (typeof key.export !== 'function') {\n throw typeError(MSG_INVALID_VERIFIER_KEY);\n }\n};\n\nfunction checkIsPrivateKey(key) {\n if (Buffer.isBuffer(key)) {\n return;\n }\n\n if (typeof key === 'string') {\n return;\n }\n\n if (typeof key === 'object') {\n return;\n }\n\n throw typeError(MSG_INVALID_SIGNER_KEY);\n};\n\nfunction checkIsSecretKey(key) {\n if (Buffer.isBuffer(key)) {\n return;\n }\n\n if (typeof key === 'string') {\n return key;\n }\n\n if (!supportsKeyObjects) {\n throw typeError(MSG_INVALID_SECRET);\n }\n\n if (typeof key !== 'object') {\n throw typeError(MSG_INVALID_SECRET);\n }\n\n if (key.type !== 'secret') {\n throw typeError(MSG_INVALID_SECRET);\n }\n\n if (typeof key.export !== 'function') {\n throw typeError(MSG_INVALID_SECRET);\n }\n}\n\nfunction fromBase64(base64) {\n return base64\n .replace(/=/g, '')\n .replace(/\\+/g, '-')\n .replace(/\\//g, '_');\n}\n\nfunction toBase64(base64url) {\n base64url = base64url.toString();\n\n var padding = 4 - base64url.length % 4;\n if (padding !== 4) {\n for (var i = 0; i < padding; ++i) {\n base64url += '=';\n }\n }\n\n return base64url\n .replace(/\\-/g, '+')\n .replace(/_/g, '/');\n}\n\nfunction typeError(template) {\n var args = [].slice.call(arguments, 1);\n var errMsg = util.format.bind(util, template).apply(null, args);\n return new TypeError(errMsg);\n}\n\nfunction bufferOrString(obj) {\n return Buffer.isBuffer(obj) || typeof obj === 'string';\n}\n\nfunction normalizeInput(thing) {\n if (!bufferOrString(thing))\n thing = JSON.stringify(thing);\n return thing;\n}\n\nfunction createHmacSigner(bits) {\n return function sign(thing, secret) {\n checkIsSecretKey(secret);\n thing = normalizeInput(thing);\n var hmac = crypto.createHmac('sha' + bits, secret);\n var sig = (hmac.update(thing), hmac.digest('base64'))\n return fromBase64(sig);\n }\n}\n\nfunction createHmacVerifier(bits) {\n return function verify(thing, signature, secret) {\n var computedSig = createHmacSigner(bits)(thing, secret);\n return bufferEqual(Buffer.from(signature), Buffer.from(computedSig));\n }\n}\n\nfunction createKeySigner(bits) {\n return function sign(thing, privateKey) {\n checkIsPrivateKey(privateKey);\n thing = normalizeInput(thing);\n // Even though we are specifying \"RSA\" here, this works with ECDSA\n // keys as well.\n var signer = crypto.createSign('RSA-SHA' + bits);\n var sig = (signer.update(thing), signer.sign(privateKey, 'base64'));\n return fromBase64(sig);\n }\n}\n\nfunction createKeyVerifier(bits) {\n return function verify(thing, signature, publicKey) {\n checkIsPublicKey(publicKey);\n thing = normalizeInput(thing);\n signature = toBase64(signature);\n var verifier = crypto.createVerify('RSA-SHA' + bits);\n verifier.update(thing);\n return verifier.verify(publicKey, signature, 'base64');\n }\n}\n\nfunction createPSSKeySigner(bits) {\n return function sign(thing, privateKey) {\n checkIsPrivateKey(privateKey);\n thing = normalizeInput(thing);\n var signer = crypto.createSign('RSA-SHA' + bits);\n var sig = (signer.update(thing), signer.sign({\n key: privateKey,\n padding: crypto.constants.RSA_PKCS1_PSS_PADDING,\n saltLength: crypto.constants.RSA_PSS_SALTLEN_DIGEST\n }, 'base64'));\n return fromBase64(sig);\n }\n}\n\nfunction createPSSKeyVerifier(bits) {\n return function verify(thing, signature, publicKey) {\n checkIsPublicKey(publicKey);\n thing = normalizeInput(thing);\n signature = toBase64(signature);\n var verifier = crypto.createVerify('RSA-SHA' + bits);\n verifier.update(thing);\n return verifier.verify({\n key: publicKey,\n padding: crypto.constants.RSA_PKCS1_PSS_PADDING,\n saltLength: crypto.constants.RSA_PSS_SALTLEN_DIGEST\n }, signature, 'base64');\n }\n}\n\nfunction createECDSASigner(bits) {\n var inner = createKeySigner(bits);\n return function sign() {\n var signature = inner.apply(null, arguments);\n signature = formatEcdsa.derToJose(signature, 'ES' + bits);\n return signature;\n };\n}\n\nfunction createECDSAVerifer(bits) {\n var inner = createKeyVerifier(bits);\n return function verify(thing, signature, publicKey) {\n signature = formatEcdsa.joseToDer(signature, 'ES' + bits).toString('base64');\n var result = inner(thing, signature, publicKey);\n return result;\n };\n}\n\nfunction createNoneSigner() {\n return function sign() {\n return '';\n }\n}\n\nfunction createNoneVerifier() {\n return function verify(thing, signature) {\n return signature === '';\n }\n}\n\nmodule.exports = function jwa(algorithm) {\n var signerFactories = {\n hs: createHmacSigner,\n rs: createKeySigner,\n ps: createPSSKeySigner,\n es: createECDSASigner,\n none: createNoneSigner,\n }\n var verifierFactories = {\n hs: createHmacVerifier,\n rs: createKeyVerifier,\n ps: createPSSKeyVerifier,\n es: createECDSAVerifer,\n none: createNoneVerifier,\n }\n var match = algorithm.match(/^(RS|PS|ES|HS)(256|384|512)$|^(none)$/i);\n if (!match)\n throw typeError(MSG_INVALID_ALGORITHM, algorithm);\n var algo = (match[1] || match[3]).toLowerCase();\n var bits = match[2];\n\n return {\n sign: signerFactories[algo](bits),\n verify: verifierFactories[algo](bits),\n }\n};\n","/*global module*/\nvar Buffer = require('buffer').Buffer;\n\nmodule.exports = function toString(obj) {\n if (typeof obj === 'string')\n return obj;\n if (typeof obj === 'number' || Buffer.isBuffer(obj))\n return obj.toString();\n return JSON.stringify(obj);\n};\n","/*global module*/\nvar Buffer = require('safe-buffer').Buffer;\nvar DataStream = require('./data-stream');\nvar jwa = require('jwa');\nvar Stream = require('stream');\nvar toString = require('./tostring');\nvar util = require('util');\n\nfunction base64url(string, encoding) {\n return Buffer\n .from(string, encoding)\n .toString('base64')\n .replace(/=/g, '')\n .replace(/\\+/g, '-')\n .replace(/\\//g, '_');\n}\n\nfunction jwsSecuredInput(header, payload, encoding) {\n encoding = encoding || 'utf8';\n var encodedHeader = base64url(toString(header), 'binary');\n var encodedPayload = base64url(toString(payload), encoding);\n return util.format('%s.%s', encodedHeader, encodedPayload);\n}\n\nfunction jwsSign(opts) {\n var header = opts.header;\n var payload = opts.payload;\n var secretOrKey = opts.secret || opts.privateKey;\n var encoding = opts.encoding;\n var algo = jwa(header.alg);\n var securedInput = jwsSecuredInput(header, payload, encoding);\n var signature = algo.sign(securedInput, secretOrKey);\n return util.format('%s.%s', securedInput, signature);\n}\n\nfunction SignStream(opts) {\n var secret = opts.secret||opts.privateKey||opts.key;\n var secretStream = new DataStream(secret);\n this.readable = true;\n this.header = opts.header;\n this.encoding = opts.encoding;\n this.secret = this.privateKey = this.key = secretStream;\n this.payload = new DataStream(opts.payload);\n this.secret.once('close', function () {\n if (!this.payload.writable && this.readable)\n this.sign();\n }.bind(this));\n\n this.payload.once('close', function () {\n if (!this.secret.writable && this.readable)\n this.sign();\n }.bind(this));\n}\nutil.inherits(SignStream, Stream);\n\nSignStream.prototype.sign = function sign() {\n try {\n var signature = jwsSign({\n header: this.header,\n payload: this.payload.buffer,\n secret: this.secret.buffer,\n encoding: this.encoding\n });\n this.emit('done', signature);\n this.emit('data', signature);\n this.emit('end');\n this.readable = false;\n return signature;\n } catch (e) {\n this.readable = false;\n this.emit('error', e);\n this.emit('close');\n }\n};\n\nSignStream.sign = jwsSign;\n\nmodule.exports = SignStream;\n","/*global module*/\nvar Buffer = require('safe-buffer').Buffer;\nvar DataStream = require('./data-stream');\nvar jwa = require('jwa');\nvar Stream = require('stream');\nvar toString = require('./tostring');\nvar util = require('util');\nvar JWS_REGEX = /^[a-zA-Z0-9\\-_]+?\\.[a-zA-Z0-9\\-_]+?\\.([a-zA-Z0-9\\-_]+)?$/;\n\nfunction isObject(thing) {\n return Object.prototype.toString.call(thing) === '[object Object]';\n}\n\nfunction safeJsonParse(thing) {\n if (isObject(thing))\n return thing;\n try { return JSON.parse(thing); }\n catch (e) { return undefined; }\n}\n\nfunction headerFromJWS(jwsSig) {\n var encodedHeader = jwsSig.split('.', 1)[0];\n return safeJsonParse(Buffer.from(encodedHeader, 'base64').toString('binary'));\n}\n\nfunction securedInputFromJWS(jwsSig) {\n return jwsSig.split('.', 2).join('.');\n}\n\nfunction signatureFromJWS(jwsSig) {\n return jwsSig.split('.')[2];\n}\n\nfunction payloadFromJWS(jwsSig, encoding) {\n encoding = encoding || 'utf8';\n var payload = jwsSig.split('.')[1];\n return Buffer.from(payload, 'base64').toString(encoding);\n}\n\nfunction isValidJws(string) {\n return JWS_REGEX.test(string) && !!headerFromJWS(string);\n}\n\nfunction jwsVerify(jwsSig, algorithm, secretOrKey) {\n if (!algorithm) {\n var err = new Error(\"Missing algorithm parameter for jws.verify\");\n err.code = \"MISSING_ALGORITHM\";\n throw err;\n }\n jwsSig = toString(jwsSig);\n var signature = signatureFromJWS(jwsSig);\n var securedInput = securedInputFromJWS(jwsSig);\n var algo = jwa(algorithm);\n return algo.verify(securedInput, signature, secretOrKey);\n}\n\nfunction jwsDecode(jwsSig, opts) {\n opts = opts || {};\n jwsSig = toString(jwsSig);\n\n if (!isValidJws(jwsSig))\n return null;\n\n var header = headerFromJWS(jwsSig);\n\n if (!header)\n return null;\n\n var payload = payloadFromJWS(jwsSig);\n if (header.typ === 'JWT' || opts.json)\n payload = JSON.parse(payload, opts.encoding);\n\n return {\n header: header,\n payload: payload,\n signature: signatureFromJWS(jwsSig)\n };\n}\n\nfunction VerifyStream(opts) {\n opts = opts || {};\n var secretOrKey = opts.secret||opts.publicKey||opts.key;\n var secretStream = new DataStream(secretOrKey);\n this.readable = true;\n this.algorithm = opts.algorithm;\n this.encoding = opts.encoding;\n this.secret = this.publicKey = this.key = secretStream;\n this.signature = new DataStream(opts.signature);\n this.secret.once('close', function () {\n if (!this.signature.writable && this.readable)\n this.verify();\n }.bind(this));\n\n this.signature.once('close', function () {\n if (!this.secret.writable && this.readable)\n this.verify();\n }.bind(this));\n}\nutil.inherits(VerifyStream, Stream);\nVerifyStream.prototype.verify = function verify() {\n try {\n var valid = jwsVerify(this.signature.buffer, this.algorithm, this.key.buffer);\n var obj = jwsDecode(this.signature.buffer, this.encoding);\n this.emit('done', valid, obj);\n this.emit('data', valid);\n this.emit('end');\n this.readable = false;\n return valid;\n } catch (e) {\n this.readable = false;\n this.emit('error', e);\n this.emit('close');\n }\n};\n\nVerifyStream.decode = jwsDecode;\nVerifyStream.isValid = isValidJws;\nVerifyStream.verify = jwsVerify;\n\nmodule.exports = VerifyStream;\n","/*global exports*/\nvar SignStream = require('./lib/sign-stream');\nvar VerifyStream = require('./lib/verify-stream');\n\nvar ALGORITHMS = [\n 'HS256', 'HS384', 'HS512',\n 'RS256', 'RS384', 'RS512',\n 'PS256', 'PS384', 'PS512',\n 'ES256', 'ES384', 'ES512'\n];\n\nexports.ALGORITHMS = ALGORITHMS;\nexports.sign = SignStream.sign;\nexports.verify = VerifyStream.verify;\nexports.decode = VerifyStream.decode;\nexports.isValid = VerifyStream.isValid;\nexports.createSign = function createSign(opts) {\n return new SignStream(opts);\n};\nexports.createVerify = function createVerify(opts) {\n return new VerifyStream(opts);\n};\n","var jws = require('jws');\n\nmodule.exports = function (jwt, options) {\n options = options || {};\n var decoded = jws.decode(jwt, options);\n if (!decoded) { return null; }\n var payload = decoded.payload;\n\n //try parse the payload\n if(typeof payload === 'string') {\n try {\n var obj = JSON.parse(payload);\n if(obj !== null && typeof obj === 'object') {\n payload = obj;\n }\n } catch (e) { }\n }\n\n //return header if `complete` option is enabled. header includes claims\n //such as `kid` and `alg` used to select the key within a JWKS needed to\n //verify the signature\n if (options.complete === true) {\n return {\n header: decoded.header,\n payload: payload,\n signature: decoded.signature\n };\n }\n return payload;\n};\n","var JsonWebTokenError = function (message, error) {\n Error.call(this, message);\n if(Error.captureStackTrace) {\n Error.captureStackTrace(this, this.constructor);\n }\n this.name = 'JsonWebTokenError';\n this.message = message;\n if (error) this.inner = error;\n};\n\nJsonWebTokenError.prototype = Object.create(Error.prototype);\nJsonWebTokenError.prototype.constructor = JsonWebTokenError;\n\nmodule.exports = JsonWebTokenError;\n","var JsonWebTokenError = require('./JsonWebTokenError');\n\nvar NotBeforeError = function (message, date) {\n JsonWebTokenError.call(this, message);\n this.name = 'NotBeforeError';\n this.date = date;\n};\n\nNotBeforeError.prototype = Object.create(JsonWebTokenError.prototype);\n\nNotBeforeError.prototype.constructor = NotBeforeError;\n\nmodule.exports = NotBeforeError;","var JsonWebTokenError = require('./JsonWebTokenError');\n\nvar TokenExpiredError = function (message, expiredAt) {\n JsonWebTokenError.call(this, message);\n this.name = 'TokenExpiredError';\n this.expiredAt = expiredAt;\n};\n\nTokenExpiredError.prototype = Object.create(JsonWebTokenError.prototype);\n\nTokenExpiredError.prototype.constructor = TokenExpiredError;\n\nmodule.exports = TokenExpiredError;","var ms = require('ms');\n\nmodule.exports = function (time, iat) {\n var timestamp = iat || Math.floor(Date.now() / 1000);\n\n if (typeof time === 'string') {\n var milliseconds = ms(time);\n if (typeof milliseconds === 'undefined') {\n return;\n }\n return Math.floor(timestamp + milliseconds / 1000);\n } else if (typeof time === 'number') {\n return timestamp + time;\n } else {\n return;\n }\n\n};","// Note: this is the semver.org version of the spec that it implements\n// Not necessarily the package version of this code.\nconst SEMVER_SPEC_VERSION = '2.0.0'\n\nconst MAX_LENGTH = 256\nconst MAX_SAFE_INTEGER = Number.MAX_SAFE_INTEGER ||\n/* istanbul ignore next */ 9007199254740991\n\n// Max safe segment length for coercion.\nconst MAX_SAFE_COMPONENT_LENGTH = 16\n\n// Max safe length for a build identifier. The max length minus 6 characters for\n// the shortest version with a build 0.0.0+BUILD.\nconst MAX_SAFE_BUILD_LENGTH = MAX_LENGTH - 6\n\nconst RELEASE_TYPES = [\n 'major',\n 'premajor',\n 'minor',\n 'preminor',\n 'patch',\n 'prepatch',\n 'prerelease',\n]\n\nmodule.exports = {\n MAX_LENGTH,\n MAX_SAFE_COMPONENT_LENGTH,\n MAX_SAFE_BUILD_LENGTH,\n MAX_SAFE_INTEGER,\n RELEASE_TYPES,\n SEMVER_SPEC_VERSION,\n FLAG_INCLUDE_PRERELEASE: 0b001,\n FLAG_LOOSE: 0b010,\n}\n","const debug = (\n typeof process === 'object' &&\n process.env &&\n process.env.NODE_DEBUG &&\n /\\bsemver\\b/i.test(process.env.NODE_DEBUG)\n) ? (...args) => console.error('SEMVER', ...args)\n : () => {}\n\nmodule.exports = debug\n","const {\n MAX_SAFE_COMPONENT_LENGTH,\n MAX_SAFE_BUILD_LENGTH,\n MAX_LENGTH,\n} = require('./constants')\nconst debug = require('./debug')\nexports = module.exports = {}\n\n// The actual regexps go on exports.re\nconst re = exports.re = []\nconst safeRe = exports.safeRe = []\nconst src = exports.src = []\nconst t = exports.t = {}\nlet R = 0\n\nconst LETTERDASHNUMBER = '[a-zA-Z0-9-]'\n\n// Replace some greedy regex tokens to prevent regex dos issues. These regex are\n// used internally via the safeRe object since all inputs in this library get\n// normalized first to trim and collapse all extra whitespace. The original\n// regexes are exported for userland consumption and lower level usage. A\n// future breaking change could export the safer regex only with a note that\n// all input should have extra whitespace removed.\nconst safeRegexReplacements = [\n ['\\\\s', 1],\n ['\\\\d', MAX_LENGTH],\n [LETTERDASHNUMBER, MAX_SAFE_BUILD_LENGTH],\n]\n\nconst makeSafeRegex = (value) => {\n for (const [token, max] of safeRegexReplacements) {\n value = value\n .split(`${token}*`).join(`${token}{0,${max}}`)\n .split(`${token}+`).join(`${token}{1,${max}}`)\n }\n return value\n}\n\nconst createToken = (name, value, isGlobal) => {\n const safe = makeSafeRegex(value)\n const index = R++\n debug(name, index, value)\n t[name] = index\n src[index] = value\n re[index] = new RegExp(value, isGlobal ? 'g' : undefined)\n safeRe[index] = new RegExp(safe, isGlobal ? 'g' : undefined)\n}\n\n// The following Regular Expressions can be used for tokenizing,\n// validating, and parsing SemVer version strings.\n\n// ## Numeric Identifier\n// A single `0`, or a non-zero digit followed by zero or more digits.\n\ncreateToken('NUMERICIDENTIFIER', '0|[1-9]\\\\d*')\ncreateToken('NUMERICIDENTIFIERLOOSE', '\\\\d+')\n\n// ## Non-numeric Identifier\n// Zero or more digits, followed by a letter or hyphen, and then zero or\n// more letters, digits, or hyphens.\n\ncreateToken('NONNUMERICIDENTIFIER', `\\\\d*[a-zA-Z-]${LETTERDASHNUMBER}*`)\n\n// ## Main Version\n// Three dot-separated numeric identifiers.\n\ncreateToken('MAINVERSION', `(${src[t.NUMERICIDENTIFIER]})\\\\.` +\n `(${src[t.NUMERICIDENTIFIER]})\\\\.` +\n `(${src[t.NUMERICIDENTIFIER]})`)\n\ncreateToken('MAINVERSIONLOOSE', `(${src[t.NUMERICIDENTIFIERLOOSE]})\\\\.` +\n `(${src[t.NUMERICIDENTIFIERLOOSE]})\\\\.` +\n `(${src[t.NUMERICIDENTIFIERLOOSE]})`)\n\n// ## Pre-release Version Identifier\n// A numeric identifier, or a non-numeric identifier.\n\ncreateToken('PRERELEASEIDENTIFIER', `(?:${src[t.NUMERICIDENTIFIER]\n}|${src[t.NONNUMERICIDENTIFIER]})`)\n\ncreateToken('PRERELEASEIDENTIFIERLOOSE', `(?:${src[t.NUMERICIDENTIFIERLOOSE]\n}|${src[t.NONNUMERICIDENTIFIER]})`)\n\n// ## Pre-release Version\n// Hyphen, followed by one or more dot-separated pre-release version\n// identifiers.\n\ncreateToken('PRERELEASE', `(?:-(${src[t.PRERELEASEIDENTIFIER]\n}(?:\\\\.${src[t.PRERELEASEIDENTIFIER]})*))`)\n\ncreateToken('PRERELEASELOOSE', `(?:-?(${src[t.PRERELEASEIDENTIFIERLOOSE]\n}(?:\\\\.${src[t.PRERELEASEIDENTIFIERLOOSE]})*))`)\n\n// ## Build Metadata Identifier\n// Any combination of digits, letters, or hyphens.\n\ncreateToken('BUILDIDENTIFIER', `${LETTERDASHNUMBER}+`)\n\n// ## Build Metadata\n// Plus sign, followed by one or more period-separated build metadata\n// identifiers.\n\ncreateToken('BUILD', `(?:\\\\+(${src[t.BUILDIDENTIFIER]\n}(?:\\\\.${src[t.BUILDIDENTIFIER]})*))`)\n\n// ## Full Version String\n// A main version, followed optionally by a pre-release version and\n// build metadata.\n\n// Note that the only major, minor, patch, and pre-release sections of\n// the version string are capturing groups. The build metadata is not a\n// capturing group, because it should not ever be used in version\n// comparison.\n\ncreateToken('FULLPLAIN', `v?${src[t.MAINVERSION]\n}${src[t.PRERELEASE]}?${\n src[t.BUILD]}?`)\n\ncreateToken('FULL', `^${src[t.FULLPLAIN]}$`)\n\n// like full, but allows v1.2.3 and =1.2.3, which people do sometimes.\n// also, 1.0.0alpha1 (prerelease without the hyphen) which is pretty\n// common in the npm registry.\ncreateToken('LOOSEPLAIN', `[v=\\\\s]*${src[t.MAINVERSIONLOOSE]\n}${src[t.PRERELEASELOOSE]}?${\n src[t.BUILD]}?`)\n\ncreateToken('LOOSE', `^${src[t.LOOSEPLAIN]}$`)\n\ncreateToken('GTLT', '((?:<|>)?=?)')\n\n// Something like \"2.*\" or \"1.2.x\".\n// Note that \"x.x\" is a valid xRange identifer, meaning \"any version\"\n// Only the first item is strictly required.\ncreateToken('XRANGEIDENTIFIERLOOSE', `${src[t.NUMERICIDENTIFIERLOOSE]}|x|X|\\\\*`)\ncreateToken('XRANGEIDENTIFIER', `${src[t.NUMERICIDENTIFIER]}|x|X|\\\\*`)\n\ncreateToken('XRANGEPLAIN', `[v=\\\\s]*(${src[t.XRANGEIDENTIFIER]})` +\n `(?:\\\\.(${src[t.XRANGEIDENTIFIER]})` +\n `(?:\\\\.(${src[t.XRANGEIDENTIFIER]})` +\n `(?:${src[t.PRERELEASE]})?${\n src[t.BUILD]}?` +\n `)?)?`)\n\ncreateToken('XRANGEPLAINLOOSE', `[v=\\\\s]*(${src[t.XRANGEIDENTIFIERLOOSE]})` +\n `(?:\\\\.(${src[t.XRANGEIDENTIFIERLOOSE]})` +\n `(?:\\\\.(${src[t.XRANGEIDENTIFIERLOOSE]})` +\n `(?:${src[t.PRERELEASELOOSE]})?${\n src[t.BUILD]}?` +\n `)?)?`)\n\ncreateToken('XRANGE', `^${src[t.GTLT]}\\\\s*${src[t.XRANGEPLAIN]}$`)\ncreateToken('XRANGELOOSE', `^${src[t.GTLT]}\\\\s*${src[t.XRANGEPLAINLOOSE]}$`)\n\n// Coercion.\n// Extract anything that could conceivably be a part of a valid semver\ncreateToken('COERCE', `${'(^|[^\\\\d])' +\n '(\\\\d{1,'}${MAX_SAFE_COMPONENT_LENGTH}})` +\n `(?:\\\\.(\\\\d{1,${MAX_SAFE_COMPONENT_LENGTH}}))?` +\n `(?:\\\\.(\\\\d{1,${MAX_SAFE_COMPONENT_LENGTH}}))?` +\n `(?:$|[^\\\\d])`)\ncreateToken('COERCERTL', src[t.COERCE], true)\n\n// Tilde ranges.\n// Meaning is \"reasonably at or greater than\"\ncreateToken('LONETILDE', '(?:~>?)')\n\ncreateToken('TILDETRIM', `(\\\\s*)${src[t.LONETILDE]}\\\\s+`, true)\nexports.tildeTrimReplace = '$1~'\n\ncreateToken('TILDE', `^${src[t.LONETILDE]}${src[t.XRANGEPLAIN]}$`)\ncreateToken('TILDELOOSE', `^${src[t.LONETILDE]}${src[t.XRANGEPLAINLOOSE]}$`)\n\n// Caret ranges.\n// Meaning is \"at least and backwards compatible with\"\ncreateToken('LONECARET', '(?:\\\\^)')\n\ncreateToken('CARETTRIM', `(\\\\s*)${src[t.LONECARET]}\\\\s+`, true)\nexports.caretTrimReplace = '$1^'\n\ncreateToken('CARET', `^${src[t.LONECARET]}${src[t.XRANGEPLAIN]}$`)\ncreateToken('CARETLOOSE', `^${src[t.LONECARET]}${src[t.XRANGEPLAINLOOSE]}$`)\n\n// A simple gt/lt/eq thing, or just \"\" to indicate \"any version\"\ncreateToken('COMPARATORLOOSE', `^${src[t.GTLT]}\\\\s*(${src[t.LOOSEPLAIN]})$|^$`)\ncreateToken('COMPARATOR', `^${src[t.GTLT]}\\\\s*(${src[t.FULLPLAIN]})$|^$`)\n\n// An expression to strip any whitespace between the gtlt and the thing\n// it modifies, so that `> 1.2.3` ==> `>1.2.3`\ncreateToken('COMPARATORTRIM', `(\\\\s*)${src[t.GTLT]\n}\\\\s*(${src[t.LOOSEPLAIN]}|${src[t.XRANGEPLAIN]})`, true)\nexports.comparatorTrimReplace = '$1$2$3'\n\n// Something like `1.2.3 - 1.2.4`\n// Note that these all use the loose form, because they'll be\n// checked against either the strict or loose comparator form\n// later.\ncreateToken('HYPHENRANGE', `^\\\\s*(${src[t.XRANGEPLAIN]})` +\n `\\\\s+-\\\\s+` +\n `(${src[t.XRANGEPLAIN]})` +\n `\\\\s*$`)\n\ncreateToken('HYPHENRANGELOOSE', `^\\\\s*(${src[t.XRANGEPLAINLOOSE]})` +\n `\\\\s+-\\\\s+` +\n `(${src[t.XRANGEPLAINLOOSE]})` +\n `\\\\s*$`)\n\n// Star ranges basically just allow anything at all.\ncreateToken('STAR', '(<|>)?=?\\\\s*\\\\*')\n// >=0.0.0 is like a star\ncreateToken('GTE0', '^\\\\s*>=\\\\s*0\\\\.0\\\\.0\\\\s*$')\ncreateToken('GTE0PRE', '^\\\\s*>=\\\\s*0\\\\.0\\\\.0-0\\\\s*$')\n","// parse out just the options we care about\nconst looseOption = Object.freeze({ loose: true })\nconst emptyOpts = Object.freeze({ })\nconst parseOptions = options => {\n if (!options) {\n return emptyOpts\n }\n\n if (typeof options !== 'object') {\n return looseOption\n }\n\n return options\n}\nmodule.exports = parseOptions\n","const numeric = /^[0-9]+$/\nconst compareIdentifiers = (a, b) => {\n const anum = numeric.test(a)\n const bnum = numeric.test(b)\n\n if (anum && bnum) {\n a = +a\n b = +b\n }\n\n return a === b ? 0\n : (anum && !bnum) ? -1\n : (bnum && !anum) ? 1\n : a < b ? -1\n : 1\n}\n\nconst rcompareIdentifiers = (a, b) => compareIdentifiers(b, a)\n\nmodule.exports = {\n compareIdentifiers,\n rcompareIdentifiers,\n}\n","const debug = require('../internal/debug')\nconst { MAX_LENGTH, MAX_SAFE_INTEGER } = require('../internal/constants')\nconst { safeRe: re, t } = require('../internal/re')\n\nconst parseOptions = require('../internal/parse-options')\nconst { compareIdentifiers } = require('../internal/identifiers')\nclass SemVer {\n constructor (version, options) {\n options = parseOptions(options)\n\n if (version instanceof SemVer) {\n if (version.loose === !!options.loose &&\n version.includePrerelease === !!options.includePrerelease) {\n return version\n } else {\n version = version.version\n }\n } else if (typeof version !== 'string') {\n throw new TypeError(`Invalid version. Must be a string. Got type \"${typeof version}\".`)\n }\n\n if (version.length > MAX_LENGTH) {\n throw new TypeError(\n `version is longer than ${MAX_LENGTH} characters`\n )\n }\n\n debug('SemVer', version, options)\n this.options = options\n this.loose = !!options.loose\n // this isn't actually relevant for versions, but keep it so that we\n // don't run into trouble passing this.options around.\n this.includePrerelease = !!options.includePrerelease\n\n const m = version.trim().match(options.loose ? re[t.LOOSE] : re[t.FULL])\n\n if (!m) {\n throw new TypeError(`Invalid Version: ${version}`)\n }\n\n this.raw = version\n\n // these are actually numbers\n this.major = +m[1]\n this.minor = +m[2]\n this.patch = +m[3]\n\n if (this.major > MAX_SAFE_INTEGER || this.major < 0) {\n throw new TypeError('Invalid major version')\n }\n\n if (this.minor > MAX_SAFE_INTEGER || this.minor < 0) {\n throw new TypeError('Invalid minor version')\n }\n\n if (this.patch > MAX_SAFE_INTEGER || this.patch < 0) {\n throw new TypeError('Invalid patch version')\n }\n\n // numberify any prerelease numeric ids\n if (!m[4]) {\n this.prerelease = []\n } else {\n this.prerelease = m[4].split('.').map((id) => {\n if (/^[0-9]+$/.test(id)) {\n const num = +id\n if (num >= 0 && num < MAX_SAFE_INTEGER) {\n return num\n }\n }\n return id\n })\n }\n\n this.build = m[5] ? m[5].split('.') : []\n this.format()\n }\n\n format () {\n this.version = `${this.major}.${this.minor}.${this.patch}`\n if (this.prerelease.length) {\n this.version += `-${this.prerelease.join('.')}`\n }\n return this.version\n }\n\n toString () {\n return this.version\n }\n\n compare (other) {\n debug('SemVer.compare', this.version, this.options, other)\n if (!(other instanceof SemVer)) {\n if (typeof other === 'string' && other === this.version) {\n return 0\n }\n other = new SemVer(other, this.options)\n }\n\n if (other.version === this.version) {\n return 0\n }\n\n return this.compareMain(other) || this.comparePre(other)\n }\n\n compareMain (other) {\n if (!(other instanceof SemVer)) {\n other = new SemVer(other, this.options)\n }\n\n return (\n compareIdentifiers(this.major, other.major) ||\n compareIdentifiers(this.minor, other.minor) ||\n compareIdentifiers(this.patch, other.patch)\n )\n }\n\n comparePre (other) {\n if (!(other instanceof SemVer)) {\n other = new SemVer(other, this.options)\n }\n\n // NOT having a prerelease is > having one\n if (this.prerelease.length && !other.prerelease.length) {\n return -1\n } else if (!this.prerelease.length && other.prerelease.length) {\n return 1\n } else if (!this.prerelease.length && !other.prerelease.length) {\n return 0\n }\n\n let i = 0\n do {\n const a = this.prerelease[i]\n const b = other.prerelease[i]\n debug('prerelease compare', i, a, b)\n if (a === undefined && b === undefined) {\n return 0\n } else if (b === undefined) {\n return 1\n } else if (a === undefined) {\n return -1\n } else if (a === b) {\n continue\n } else {\n return compareIdentifiers(a, b)\n }\n } while (++i)\n }\n\n compareBuild (other) {\n if (!(other instanceof SemVer)) {\n other = new SemVer(other, this.options)\n }\n\n let i = 0\n do {\n const a = this.build[i]\n const b = other.build[i]\n debug('prerelease compare', i, a, b)\n if (a === undefined && b === undefined) {\n return 0\n } else if (b === undefined) {\n return 1\n } else if (a === undefined) {\n return -1\n } else if (a === b) {\n continue\n } else {\n return compareIdentifiers(a, b)\n }\n } while (++i)\n }\n\n // preminor will bump the version up to the next minor release, and immediately\n // down to pre-release. premajor and prepatch work the same way.\n inc (release, identifier, identifierBase) {\n switch (release) {\n case 'premajor':\n this.prerelease.length = 0\n this.patch = 0\n this.minor = 0\n this.major++\n this.inc('pre', identifier, identifierBase)\n break\n case 'preminor':\n this.prerelease.length = 0\n this.patch = 0\n this.minor++\n this.inc('pre', identifier, identifierBase)\n break\n case 'prepatch':\n // If this is already a prerelease, it will bump to the next version\n // drop any prereleases that might already exist, since they are not\n // relevant at this point.\n this.prerelease.length = 0\n this.inc('patch', identifier, identifierBase)\n this.inc('pre', identifier, identifierBase)\n break\n // If the input is a non-prerelease version, this acts the same as\n // prepatch.\n case 'prerelease':\n if (this.prerelease.length === 0) {\n this.inc('patch', identifier, identifierBase)\n }\n this.inc('pre', identifier, identifierBase)\n break\n\n case 'major':\n // If this is a pre-major version, bump up to the same major version.\n // Otherwise increment major.\n // 1.0.0-5 bumps to 1.0.0\n // 1.1.0 bumps to 2.0.0\n if (\n this.minor !== 0 ||\n this.patch !== 0 ||\n this.prerelease.length === 0\n ) {\n this.major++\n }\n this.minor = 0\n this.patch = 0\n this.prerelease = []\n break\n case 'minor':\n // If this is a pre-minor version, bump up to the same minor version.\n // Otherwise increment minor.\n // 1.2.0-5 bumps to 1.2.0\n // 1.2.1 bumps to 1.3.0\n if (this.patch !== 0 || this.prerelease.length === 0) {\n this.minor++\n }\n this.patch = 0\n this.prerelease = []\n break\n case 'patch':\n // If this is not a pre-release version, it will increment the patch.\n // If it is a pre-release it will bump up to the same patch version.\n // 1.2.0-5 patches to 1.2.0\n // 1.2.0 patches to 1.2.1\n if (this.prerelease.length === 0) {\n this.patch++\n }\n this.prerelease = []\n break\n // This probably shouldn't be used publicly.\n // 1.0.0 'pre' would become 1.0.0-0 which is the wrong direction.\n case 'pre': {\n const base = Number(identifierBase) ? 1 : 0\n\n if (!identifier && identifierBase === false) {\n throw new Error('invalid increment argument: identifier is empty')\n }\n\n if (this.prerelease.length === 0) {\n this.prerelease = [base]\n } else {\n let i = this.prerelease.length\n while (--i >= 0) {\n if (typeof this.prerelease[i] === 'number') {\n this.prerelease[i]++\n i = -2\n }\n }\n if (i === -1) {\n // didn't increment anything\n if (identifier === this.prerelease.join('.') && identifierBase === false) {\n throw new Error('invalid increment argument: identifier already exists')\n }\n this.prerelease.push(base)\n }\n }\n if (identifier) {\n // 1.2.0-beta.1 bumps to 1.2.0-beta.2,\n // 1.2.0-beta.fooblz or 1.2.0-beta bumps to 1.2.0-beta.0\n let prerelease = [identifier, base]\n if (identifierBase === false) {\n prerelease = [identifier]\n }\n if (compareIdentifiers(this.prerelease[0], identifier) === 0) {\n if (isNaN(this.prerelease[1])) {\n this.prerelease = prerelease\n }\n } else {\n this.prerelease = prerelease\n }\n }\n break\n }\n default:\n throw new Error(`invalid increment argument: ${release}`)\n }\n this.raw = this.format()\n if (this.build.length) {\n this.raw += `+${this.build.join('.')}`\n }\n return this\n }\n}\n\nmodule.exports = SemVer\n","const SemVer = require('../classes/semver')\nconst parse = (version, options, throwErrors = false) => {\n if (version instanceof SemVer) {\n return version\n }\n try {\n return new SemVer(version, options)\n } catch (er) {\n if (!throwErrors) {\n return null\n }\n throw er\n }\n}\n\nmodule.exports = parse\n","const parse = require('./parse')\nconst valid = (version, options) => {\n const v = parse(version, options)\n return v ? v.version : null\n}\nmodule.exports = valid\n","const parse = require('./parse')\nconst clean = (version, options) => {\n const s = parse(version.trim().replace(/^[=v]+/, ''), options)\n return s ? s.version : null\n}\nmodule.exports = clean\n","const SemVer = require('../classes/semver')\n\nconst inc = (version, release, options, identifier, identifierBase) => {\n if (typeof (options) === 'string') {\n identifierBase = identifier\n identifier = options\n options = undefined\n }\n\n try {\n return new SemVer(\n version instanceof SemVer ? version.version : version,\n options\n ).inc(release, identifier, identifierBase).version\n } catch (er) {\n return null\n }\n}\nmodule.exports = inc\n","const parse = require('./parse.js')\n\nconst diff = (version1, version2) => {\n const v1 = parse(version1, null, true)\n const v2 = parse(version2, null, true)\n const comparison = v1.compare(v2)\n\n if (comparison === 0) {\n return null\n }\n\n const v1Higher = comparison > 0\n const highVersion = v1Higher ? v1 : v2\n const lowVersion = v1Higher ? v2 : v1\n const highHasPre = !!highVersion.prerelease.length\n const lowHasPre = !!lowVersion.prerelease.length\n\n if (lowHasPre && !highHasPre) {\n // Going from prerelease -> no prerelease requires some special casing\n\n // If the low version has only a major, then it will always be a major\n // Some examples:\n // 1.0.0-1 -> 1.0.0\n // 1.0.0-1 -> 1.1.1\n // 1.0.0-1 -> 2.0.0\n if (!lowVersion.patch && !lowVersion.minor) {\n return 'major'\n }\n\n // Otherwise it can be determined by checking the high version\n\n if (highVersion.patch) {\n // anything higher than a patch bump would result in the wrong version\n return 'patch'\n }\n\n if (highVersion.minor) {\n // anything higher than a minor bump would result in the wrong version\n return 'minor'\n }\n\n // bumping major/minor/patch all have same result\n return 'major'\n }\n\n // add the `pre` prefix if we are going to a prerelease version\n const prefix = highHasPre ? 'pre' : ''\n\n if (v1.major !== v2.major) {\n return prefix + 'major'\n }\n\n if (v1.minor !== v2.minor) {\n return prefix + 'minor'\n }\n\n if (v1.patch !== v2.patch) {\n return prefix + 'patch'\n }\n\n // high and low are preleases\n return 'prerelease'\n}\n\nmodule.exports = diff\n","const SemVer = require('../classes/semver')\nconst major = (a, loose) => new SemVer(a, loose).major\nmodule.exports = major\n","const SemVer = require('../classes/semver')\nconst minor = (a, loose) => new SemVer(a, loose).minor\nmodule.exports = minor\n","const SemVer = require('../classes/semver')\nconst patch = (a, loose) => new SemVer(a, loose).patch\nmodule.exports = patch\n","const parse = require('./parse')\nconst prerelease = (version, options) => {\n const parsed = parse(version, options)\n return (parsed && parsed.prerelease.length) ? parsed.prerelease : null\n}\nmodule.exports = prerelease\n","const SemVer = require('../classes/semver')\nconst compare = (a, b, loose) =>\n new SemVer(a, loose).compare(new SemVer(b, loose))\n\nmodule.exports = compare\n","const compare = require('./compare')\nconst rcompare = (a, b, loose) => compare(b, a, loose)\nmodule.exports = rcompare\n","const compare = require('./compare')\nconst compareLoose = (a, b) => compare(a, b, true)\nmodule.exports = compareLoose\n","const SemVer = require('../classes/semver')\nconst compareBuild = (a, b, loose) => {\n const versionA = new SemVer(a, loose)\n const versionB = new SemVer(b, loose)\n return versionA.compare(versionB) || versionA.compareBuild(versionB)\n}\nmodule.exports = compareBuild\n","const compareBuild = require('./compare-build')\nconst sort = (list, loose) => list.sort((a, b) => compareBuild(a, b, loose))\nmodule.exports = sort\n","const compareBuild = require('./compare-build')\nconst rsort = (list, loose) => list.sort((a, b) => compareBuild(b, a, loose))\nmodule.exports = rsort\n","const compare = require('./compare')\nconst gt = (a, b, loose) => compare(a, b, loose) > 0\nmodule.exports = gt\n","const compare = require('./compare')\nconst lt = (a, b, loose) => compare(a, b, loose) < 0\nmodule.exports = lt\n","const compare = require('./compare')\nconst eq = (a, b, loose) => compare(a, b, loose) === 0\nmodule.exports = eq\n","const compare = require('./compare')\nconst neq = (a, b, loose) => compare(a, b, loose) !== 0\nmodule.exports = neq\n","const compare = require('./compare')\nconst gte = (a, b, loose) => compare(a, b, loose) >= 0\nmodule.exports = gte\n","const compare = require('./compare')\nconst lte = (a, b, loose) => compare(a, b, loose) <= 0\nmodule.exports = lte\n","const eq = require('./eq')\nconst neq = require('./neq')\nconst gt = require('./gt')\nconst gte = require('./gte')\nconst lt = require('./lt')\nconst lte = require('./lte')\n\nconst cmp = (a, op, b, loose) => {\n switch (op) {\n case '===':\n if (typeof a === 'object') {\n a = a.version\n }\n if (typeof b === 'object') {\n b = b.version\n }\n return a === b\n\n case '!==':\n if (typeof a === 'object') {\n a = a.version\n }\n if (typeof b === 'object') {\n b = b.version\n }\n return a !== b\n\n case '':\n case '=':\n case '==':\n return eq(a, b, loose)\n\n case '!=':\n return neq(a, b, loose)\n\n case '>':\n return gt(a, b, loose)\n\n case '>=':\n return gte(a, b, loose)\n\n case '<':\n return lt(a, b, loose)\n\n case '<=':\n return lte(a, b, loose)\n\n default:\n throw new TypeError(`Invalid operator: ${op}`)\n }\n}\nmodule.exports = cmp\n","const SemVer = require('../classes/semver')\nconst parse = require('./parse')\nconst { safeRe: re, t } = require('../internal/re')\n\nconst coerce = (version, options) => {\n if (version instanceof SemVer) {\n return version\n }\n\n if (typeof version === 'number') {\n version = String(version)\n }\n\n if (typeof version !== 'string') {\n return null\n }\n\n options = options || {}\n\n let match = null\n if (!options.rtl) {\n match = version.match(re[t.COERCE])\n } else {\n // Find the right-most coercible string that does not share\n // a terminus with a more left-ward coercible string.\n // Eg, '1.2.3.4' wants to coerce '2.3.4', not '3.4' or '4'\n //\n // Walk through the string checking with a /g regexp\n // Manually set the index so as to pick up overlapping matches.\n // Stop when we get a match that ends at the string end, since no\n // coercible string can be more right-ward without the same terminus.\n let next\n while ((next = re[t.COERCERTL].exec(version)) &&\n (!match || match.index + match[0].length !== version.length)\n ) {\n if (!match ||\n next.index + next[0].length !== match.index + match[0].length) {\n match = next\n }\n re[t.COERCERTL].lastIndex = next.index + next[1].length + next[2].length\n }\n // leave it in a clean state\n re[t.COERCERTL].lastIndex = -1\n }\n\n if (match === null) {\n return null\n }\n\n return parse(`${match[2]}.${match[3] || '0'}.${match[4] || '0'}`, options)\n}\nmodule.exports = coerce\n","'use strict'\nmodule.exports = function (Yallist) {\n Yallist.prototype[Symbol.iterator] = function* () {\n for (let walker = this.head; walker; walker = walker.next) {\n yield walker.value\n }\n }\n}\n","'use strict'\nmodule.exports = Yallist\n\nYallist.Node = Node\nYallist.create = Yallist\n\nfunction Yallist (list) {\n var self = this\n if (!(self instanceof Yallist)) {\n self = new Yallist()\n }\n\n self.tail = null\n self.head = null\n self.length = 0\n\n if (list && typeof list.forEach === 'function') {\n list.forEach(function (item) {\n self.push(item)\n })\n } else if (arguments.length > 0) {\n for (var i = 0, l = arguments.length; i < l; i++) {\n self.push(arguments[i])\n }\n }\n\n return self\n}\n\nYallist.prototype.removeNode = function (node) {\n if (node.list !== this) {\n throw new Error('removing node which does not belong to this list')\n }\n\n var next = node.next\n var prev = node.prev\n\n if (next) {\n next.prev = prev\n }\n\n if (prev) {\n prev.next = next\n }\n\n if (node === this.head) {\n this.head = next\n }\n if (node === this.tail) {\n this.tail = prev\n }\n\n node.list.length--\n node.next = null\n node.prev = null\n node.list = null\n\n return next\n}\n\nYallist.prototype.unshiftNode = function (node) {\n if (node === this.head) {\n return\n }\n\n if (node.list) {\n node.list.removeNode(node)\n }\n\n var head = this.head\n node.list = this\n node.next = head\n if (head) {\n head.prev = node\n }\n\n this.head = node\n if (!this.tail) {\n this.tail = node\n }\n this.length++\n}\n\nYallist.prototype.pushNode = function (node) {\n if (node === this.tail) {\n return\n }\n\n if (node.list) {\n node.list.removeNode(node)\n }\n\n var tail = this.tail\n node.list = this\n node.prev = tail\n if (tail) {\n tail.next = node\n }\n\n this.tail = node\n if (!this.head) {\n this.head = node\n }\n this.length++\n}\n\nYallist.prototype.push = function () {\n for (var i = 0, l = arguments.length; i < l; i++) {\n push(this, arguments[i])\n }\n return this.length\n}\n\nYallist.prototype.unshift = function () {\n for (var i = 0, l = arguments.length; i < l; i++) {\n unshift(this, arguments[i])\n }\n return this.length\n}\n\nYallist.prototype.pop = function () {\n if (!this.tail) {\n return undefined\n }\n\n var res = this.tail.value\n this.tail = this.tail.prev\n if (this.tail) {\n this.tail.next = null\n } else {\n this.head = null\n }\n this.length--\n return res\n}\n\nYallist.prototype.shift = function () {\n if (!this.head) {\n return undefined\n }\n\n var res = this.head.value\n this.head = this.head.next\n if (this.head) {\n this.head.prev = null\n } else {\n this.tail = null\n }\n this.length--\n return res\n}\n\nYallist.prototype.forEach = function (fn, thisp) {\n thisp = thisp || this\n for (var walker = this.head, i = 0; walker !== null; i++) {\n fn.call(thisp, walker.value, i, this)\n walker = walker.next\n }\n}\n\nYallist.prototype.forEachReverse = function (fn, thisp) {\n thisp = thisp || this\n for (var walker = this.tail, i = this.length - 1; walker !== null; i--) {\n fn.call(thisp, walker.value, i, this)\n walker = walker.prev\n }\n}\n\nYallist.prototype.get = function (n) {\n for (var i = 0, walker = this.head; walker !== null && i < n; i++) {\n // abort out of the list early if we hit a cycle\n walker = walker.next\n }\n if (i === n && walker !== null) {\n return walker.value\n }\n}\n\nYallist.prototype.getReverse = function (n) {\n for (var i = 0, walker = this.tail; walker !== null && i < n; i++) {\n // abort out of the list early if we hit a cycle\n walker = walker.prev\n }\n if (i === n && walker !== null) {\n return walker.value\n }\n}\n\nYallist.prototype.map = function (fn, thisp) {\n thisp = thisp || this\n var res = new Yallist()\n for (var walker = this.head; walker !== null;) {\n res.push(fn.call(thisp, walker.value, this))\n walker = walker.next\n }\n return res\n}\n\nYallist.prototype.mapReverse = function (fn, thisp) {\n thisp = thisp || this\n var res = new Yallist()\n for (var walker = this.tail; walker !== null;) {\n res.push(fn.call(thisp, walker.value, this))\n walker = walker.prev\n }\n return res\n}\n\nYallist.prototype.reduce = function (fn, initial) {\n var acc\n var walker = this.head\n if (arguments.length > 1) {\n acc = initial\n } else if (this.head) {\n walker = this.head.next\n acc = this.head.value\n } else {\n throw new TypeError('Reduce of empty list with no initial value')\n }\n\n for (var i = 0; walker !== null; i++) {\n acc = fn(acc, walker.value, i)\n walker = walker.next\n }\n\n return acc\n}\n\nYallist.prototype.reduceReverse = function (fn, initial) {\n var acc\n var walker = this.tail\n if (arguments.length > 1) {\n acc = initial\n } else if (this.tail) {\n walker = this.tail.prev\n acc = this.tail.value\n } else {\n throw new TypeError('Reduce of empty list with no initial value')\n }\n\n for (var i = this.length - 1; walker !== null; i--) {\n acc = fn(acc, walker.value, i)\n walker = walker.prev\n }\n\n return acc\n}\n\nYallist.prototype.toArray = function () {\n var arr = new Array(this.length)\n for (var i = 0, walker = this.head; walker !== null; i++) {\n arr[i] = walker.value\n walker = walker.next\n }\n return arr\n}\n\nYallist.prototype.toArrayReverse = function () {\n var arr = new Array(this.length)\n for (var i = 0, walker = this.tail; walker !== null; i++) {\n arr[i] = walker.value\n walker = walker.prev\n }\n return arr\n}\n\nYallist.prototype.slice = function (from, to) {\n to = to || this.length\n if (to < 0) {\n to += this.length\n }\n from = from || 0\n if (from < 0) {\n from += this.length\n }\n var ret = new Yallist()\n if (to < from || to < 0) {\n return ret\n }\n if (from < 0) {\n from = 0\n }\n if (to > this.length) {\n to = this.length\n }\n for (var i = 0, walker = this.head; walker !== null && i < from; i++) {\n walker = walker.next\n }\n for (; walker !== null && i < to; i++, walker = walker.next) {\n ret.push(walker.value)\n }\n return ret\n}\n\nYallist.prototype.sliceReverse = function (from, to) {\n to = to || this.length\n if (to < 0) {\n to += this.length\n }\n from = from || 0\n if (from < 0) {\n from += this.length\n }\n var ret = new Yallist()\n if (to < from || to < 0) {\n return ret\n }\n if (from < 0) {\n from = 0\n }\n if (to > this.length) {\n to = this.length\n }\n for (var i = this.length, walker = this.tail; walker !== null && i > to; i--) {\n walker = walker.prev\n }\n for (; walker !== null && i > from; i--, walker = walker.prev) {\n ret.push(walker.value)\n }\n return ret\n}\n\nYallist.prototype.splice = function (start, deleteCount, ...nodes) {\n if (start > this.length) {\n start = this.length - 1\n }\n if (start < 0) {\n start = this.length + start;\n }\n\n for (var i = 0, walker = this.head; walker !== null && i < start; i++) {\n walker = walker.next\n }\n\n var ret = []\n for (var i = 0; walker && i < deleteCount; i++) {\n ret.push(walker.value)\n walker = this.removeNode(walker)\n }\n if (walker === null) {\n walker = this.tail\n }\n\n if (walker !== this.head && walker !== this.tail) {\n walker = walker.prev\n }\n\n for (var i = 0; i < nodes.length; i++) {\n walker = insert(this, walker, nodes[i])\n }\n return ret;\n}\n\nYallist.prototype.reverse = function () {\n var head = this.head\n var tail = this.tail\n for (var walker = head; walker !== null; walker = walker.prev) {\n var p = walker.prev\n walker.prev = walker.next\n walker.next = p\n }\n this.head = tail\n this.tail = head\n return this\n}\n\nfunction insert (self, node, value) {\n var inserted = node === self.head ?\n new Node(value, null, node, self) :\n new Node(value, node, node.next, self)\n\n if (inserted.next === null) {\n self.tail = inserted\n }\n if (inserted.prev === null) {\n self.head = inserted\n }\n\n self.length++\n\n return inserted\n}\n\nfunction push (self, item) {\n self.tail = new Node(item, self.tail, null, self)\n if (!self.head) {\n self.head = self.tail\n }\n self.length++\n}\n\nfunction unshift (self, item) {\n self.head = new Node(item, null, self.head, self)\n if (!self.tail) {\n self.tail = self.head\n }\n self.length++\n}\n\nfunction Node (value, prev, next, list) {\n if (!(this instanceof Node)) {\n return new Node(value, prev, next, list)\n }\n\n this.list = list\n this.value = value\n\n if (prev) {\n prev.next = this\n this.prev = prev\n } else {\n this.prev = null\n }\n\n if (next) {\n next.prev = this\n this.next = next\n } else {\n this.next = null\n }\n}\n\ntry {\n // add if support for Symbol.iterator is present\n require('./iterator.js')(Yallist)\n} catch (er) {}\n","'use strict'\n\n// A linked list to keep track of recently-used-ness\nconst Yallist = require('yallist')\n\nconst MAX = Symbol('max')\nconst LENGTH = Symbol('length')\nconst LENGTH_CALCULATOR = Symbol('lengthCalculator')\nconst ALLOW_STALE = Symbol('allowStale')\nconst MAX_AGE = Symbol('maxAge')\nconst DISPOSE = Symbol('dispose')\nconst NO_DISPOSE_ON_SET = Symbol('noDisposeOnSet')\nconst LRU_LIST = Symbol('lruList')\nconst CACHE = Symbol('cache')\nconst UPDATE_AGE_ON_GET = Symbol('updateAgeOnGet')\n\nconst naiveLength = () => 1\n\n// lruList is a yallist where the head is the youngest\n// item, and the tail is the oldest. the list contains the Hit\n// objects as the entries.\n// Each Hit object has a reference to its Yallist.Node. This\n// never changes.\n//\n// cache is a Map (or PseudoMap) that matches the keys to\n// the Yallist.Node object.\nclass LRUCache {\n constructor (options) {\n if (typeof options === 'number')\n options = { max: options }\n\n if (!options)\n options = {}\n\n if (options.max && (typeof options.max !== 'number' || options.max < 0))\n throw new TypeError('max must be a non-negative number')\n // Kind of weird to have a default max of Infinity, but oh well.\n const max = this[MAX] = options.max || Infinity\n\n const lc = options.length || naiveLength\n this[LENGTH_CALCULATOR] = (typeof lc !== 'function') ? naiveLength : lc\n this[ALLOW_STALE] = options.stale || false\n if (options.maxAge && typeof options.maxAge !== 'number')\n throw new TypeError('maxAge must be a number')\n this[MAX_AGE] = options.maxAge || 0\n this[DISPOSE] = options.dispose\n this[NO_DISPOSE_ON_SET] = options.noDisposeOnSet || false\n this[UPDATE_AGE_ON_GET] = options.updateAgeOnGet || false\n this.reset()\n }\n\n // resize the cache when the max changes.\n set max (mL) {\n if (typeof mL !== 'number' || mL < 0)\n throw new TypeError('max must be a non-negative number')\n\n this[MAX] = mL || Infinity\n trim(this)\n }\n get max () {\n return this[MAX]\n }\n\n set allowStale (allowStale) {\n this[ALLOW_STALE] = !!allowStale\n }\n get allowStale () {\n return this[ALLOW_STALE]\n }\n\n set maxAge (mA) {\n if (typeof mA !== 'number')\n throw new TypeError('maxAge must be a non-negative number')\n\n this[MAX_AGE] = mA\n trim(this)\n }\n get maxAge () {\n return this[MAX_AGE]\n }\n\n // resize the cache when the lengthCalculator changes.\n set lengthCalculator (lC) {\n if (typeof lC !== 'function')\n lC = naiveLength\n\n if (lC !== this[LENGTH_CALCULATOR]) {\n this[LENGTH_CALCULATOR] = lC\n this[LENGTH] = 0\n this[LRU_LIST].forEach(hit => {\n hit.length = this[LENGTH_CALCULATOR](hit.value, hit.key)\n this[LENGTH] += hit.length\n })\n }\n trim(this)\n }\n get lengthCalculator () { return this[LENGTH_CALCULATOR] }\n\n get length () { return this[LENGTH] }\n get itemCount () { return this[LRU_LIST].length }\n\n rforEach (fn, thisp) {\n thisp = thisp || this\n for (let walker = this[LRU_LIST].tail; walker !== null;) {\n const prev = walker.prev\n forEachStep(this, fn, walker, thisp)\n walker = prev\n }\n }\n\n forEach (fn, thisp) {\n thisp = thisp || this\n for (let walker = this[LRU_LIST].head; walker !== null;) {\n const next = walker.next\n forEachStep(this, fn, walker, thisp)\n walker = next\n }\n }\n\n keys () {\n return this[LRU_LIST].toArray().map(k => k.key)\n }\n\n values () {\n return this[LRU_LIST].toArray().map(k => k.value)\n }\n\n reset () {\n if (this[DISPOSE] &&\n this[LRU_LIST] &&\n this[LRU_LIST].length) {\n this[LRU_LIST].forEach(hit => this[DISPOSE](hit.key, hit.value))\n }\n\n this[CACHE] = new Map() // hash of items by key\n this[LRU_LIST] = new Yallist() // list of items in order of use recency\n this[LENGTH] = 0 // length of items in the list\n }\n\n dump () {\n return this[LRU_LIST].map(hit =>\n isStale(this, hit) ? false : {\n k: hit.key,\n v: hit.value,\n e: hit.now + (hit.maxAge || 0)\n }).toArray().filter(h => h)\n }\n\n dumpLru () {\n return this[LRU_LIST]\n }\n\n set (key, value, maxAge) {\n maxAge = maxAge || this[MAX_AGE]\n\n if (maxAge && typeof maxAge !== 'number')\n throw new TypeError('maxAge must be a number')\n\n const now = maxAge ? Date.now() : 0\n const len = this[LENGTH_CALCULATOR](value, key)\n\n if (this[CACHE].has(key)) {\n if (len > this[MAX]) {\n del(this, this[CACHE].get(key))\n return false\n }\n\n const node = this[CACHE].get(key)\n const item = node.value\n\n // dispose of the old one before overwriting\n // split out into 2 ifs for better coverage tracking\n if (this[DISPOSE]) {\n if (!this[NO_DISPOSE_ON_SET])\n this[DISPOSE](key, item.value)\n }\n\n item.now = now\n item.maxAge = maxAge\n item.value = value\n this[LENGTH] += len - item.length\n item.length = len\n this.get(key)\n trim(this)\n return true\n }\n\n const hit = new Entry(key, value, len, now, maxAge)\n\n // oversized objects fall out of cache automatically.\n if (hit.length > this[MAX]) {\n if (this[DISPOSE])\n this[DISPOSE](key, value)\n\n return false\n }\n\n this[LENGTH] += hit.length\n this[LRU_LIST].unshift(hit)\n this[CACHE].set(key, this[LRU_LIST].head)\n trim(this)\n return true\n }\n\n has (key) {\n if (!this[CACHE].has(key)) return false\n const hit = this[CACHE].get(key).value\n return !isStale(this, hit)\n }\n\n get (key) {\n return get(this, key, true)\n }\n\n peek (key) {\n return get(this, key, false)\n }\n\n pop () {\n const node = this[LRU_LIST].tail\n if (!node)\n return null\n\n del(this, node)\n return node.value\n }\n\n del (key) {\n del(this, this[CACHE].get(key))\n }\n\n load (arr) {\n // reset the cache\n this.reset()\n\n const now = Date.now()\n // A previous serialized cache has the most recent items first\n for (let l = arr.length - 1; l >= 0; l--) {\n const hit = arr[l]\n const expiresAt = hit.e || 0\n if (expiresAt === 0)\n // the item was created without expiration in a non aged cache\n this.set(hit.k, hit.v)\n else {\n const maxAge = expiresAt - now\n // dont add already expired items\n if (maxAge > 0) {\n this.set(hit.k, hit.v, maxAge)\n }\n }\n }\n }\n\n prune () {\n this[CACHE].forEach((value, key) => get(this, key, false))\n }\n}\n\nconst get = (self, key, doUse) => {\n const node = self[CACHE].get(key)\n if (node) {\n const hit = node.value\n if (isStale(self, hit)) {\n del(self, node)\n if (!self[ALLOW_STALE])\n return undefined\n } else {\n if (doUse) {\n if (self[UPDATE_AGE_ON_GET])\n node.value.now = Date.now()\n self[LRU_LIST].unshiftNode(node)\n }\n }\n return hit.value\n }\n}\n\nconst isStale = (self, hit) => {\n if (!hit || (!hit.maxAge && !self[MAX_AGE]))\n return false\n\n const diff = Date.now() - hit.now\n return hit.maxAge ? diff > hit.maxAge\n : self[MAX_AGE] && (diff > self[MAX_AGE])\n}\n\nconst trim = self => {\n if (self[LENGTH] > self[MAX]) {\n for (let walker = self[LRU_LIST].tail;\n self[LENGTH] > self[MAX] && walker !== null;) {\n // We know that we're about to delete this one, and also\n // what the next least recently used key will be, so just\n // go ahead and set it now.\n const prev = walker.prev\n del(self, walker)\n walker = prev\n }\n }\n}\n\nconst del = (self, node) => {\n if (node) {\n const hit = node.value\n if (self[DISPOSE])\n self[DISPOSE](hit.key, hit.value)\n\n self[LENGTH] -= hit.length\n self[CACHE].delete(hit.key)\n self[LRU_LIST].removeNode(node)\n }\n}\n\nclass Entry {\n constructor (key, value, length, now, maxAge) {\n this.key = key\n this.value = value\n this.length = length\n this.now = now\n this.maxAge = maxAge || 0\n }\n}\n\nconst forEachStep = (self, fn, node, thisp) => {\n let hit = node.value\n if (isStale(self, hit)) {\n del(self, node)\n if (!self[ALLOW_STALE])\n hit = undefined\n }\n if (hit)\n fn.call(thisp, hit.value, hit.key, self)\n}\n\nmodule.exports = LRUCache\n","// hoisted class for cyclic dependency\nclass Range {\n constructor (range, options) {\n options = parseOptions(options)\n\n if (range instanceof Range) {\n if (\n range.loose === !!options.loose &&\n range.includePrerelease === !!options.includePrerelease\n ) {\n return range\n } else {\n return new Range(range.raw, options)\n }\n }\n\n if (range instanceof Comparator) {\n // just put it in the set and return\n this.raw = range.value\n this.set = [[range]]\n this.format()\n return this\n }\n\n this.options = options\n this.loose = !!options.loose\n this.includePrerelease = !!options.includePrerelease\n\n // First reduce all whitespace as much as possible so we do not have to rely\n // on potentially slow regexes like \\s*. This is then stored and used for\n // future error messages as well.\n this.raw = range\n .trim()\n .split(/\\s+/)\n .join(' ')\n\n // First, split on ||\n this.set = this.raw\n .split('||')\n // map the range to a 2d array of comparators\n .map(r => this.parseRange(r.trim()))\n // throw out any comparator lists that are empty\n // this generally means that it was not a valid range, which is allowed\n // in loose mode, but will still throw if the WHOLE range is invalid.\n .filter(c => c.length)\n\n if (!this.set.length) {\n throw new TypeError(`Invalid SemVer Range: ${this.raw}`)\n }\n\n // if we have any that are not the null set, throw out null sets.\n if (this.set.length > 1) {\n // keep the first one, in case they're all null sets\n const first = this.set[0]\n this.set = this.set.filter(c => !isNullSet(c[0]))\n if (this.set.length === 0) {\n this.set = [first]\n } else if (this.set.length > 1) {\n // if we have any that are *, then the range is just *\n for (const c of this.set) {\n if (c.length === 1 && isAny(c[0])) {\n this.set = [c]\n break\n }\n }\n }\n }\n\n this.format()\n }\n\n format () {\n this.range = this.set\n .map((comps) => comps.join(' ').trim())\n .join('||')\n .trim()\n return this.range\n }\n\n toString () {\n return this.range\n }\n\n parseRange (range) {\n // memoize range parsing for performance.\n // this is a very hot path, and fully deterministic.\n const memoOpts =\n (this.options.includePrerelease && FLAG_INCLUDE_PRERELEASE) |\n (this.options.loose && FLAG_LOOSE)\n const memoKey = memoOpts + ':' + range\n const cached = cache.get(memoKey)\n if (cached) {\n return cached\n }\n\n const loose = this.options.loose\n // `1.2.3 - 1.2.4` => `>=1.2.3 <=1.2.4`\n const hr = loose ? re[t.HYPHENRANGELOOSE] : re[t.HYPHENRANGE]\n range = range.replace(hr, hyphenReplace(this.options.includePrerelease))\n debug('hyphen replace', range)\n\n // `> 1.2.3 < 1.2.5` => `>1.2.3 <1.2.5`\n range = range.replace(re[t.COMPARATORTRIM], comparatorTrimReplace)\n debug('comparator trim', range)\n\n // `~ 1.2.3` => `~1.2.3`\n range = range.replace(re[t.TILDETRIM], tildeTrimReplace)\n debug('tilde trim', range)\n\n // `^ 1.2.3` => `^1.2.3`\n range = range.replace(re[t.CARETTRIM], caretTrimReplace)\n debug('caret trim', range)\n\n // At this point, the range is completely trimmed and\n // ready to be split into comparators.\n\n let rangeList = range\n .split(' ')\n .map(comp => parseComparator(comp, this.options))\n .join(' ')\n .split(/\\s+/)\n // >=0.0.0 is equivalent to *\n .map(comp => replaceGTE0(comp, this.options))\n\n if (loose) {\n // in loose mode, throw out any that are not valid comparators\n rangeList = rangeList.filter(comp => {\n debug('loose invalid filter', comp, this.options)\n return !!comp.match(re[t.COMPARATORLOOSE])\n })\n }\n debug('range list', rangeList)\n\n // if any comparators are the null set, then replace with JUST null set\n // if more than one comparator, remove any * comparators\n // also, don't include the same comparator more than once\n const rangeMap = new Map()\n const comparators = rangeList.map(comp => new Comparator(comp, this.options))\n for (const comp of comparators) {\n if (isNullSet(comp)) {\n return [comp]\n }\n rangeMap.set(comp.value, comp)\n }\n if (rangeMap.size > 1 && rangeMap.has('')) {\n rangeMap.delete('')\n }\n\n const result = [...rangeMap.values()]\n cache.set(memoKey, result)\n return result\n }\n\n intersects (range, options) {\n if (!(range instanceof Range)) {\n throw new TypeError('a Range is required')\n }\n\n return this.set.some((thisComparators) => {\n return (\n isSatisfiable(thisComparators, options) &&\n range.set.some((rangeComparators) => {\n return (\n isSatisfiable(rangeComparators, options) &&\n thisComparators.every((thisComparator) => {\n return rangeComparators.every((rangeComparator) => {\n return thisComparator.intersects(rangeComparator, options)\n })\n })\n )\n })\n )\n })\n }\n\n // if ANY of the sets match ALL of its comparators, then pass\n test (version) {\n if (!version) {\n return false\n }\n\n if (typeof version === 'string') {\n try {\n version = new SemVer(version, this.options)\n } catch (er) {\n return false\n }\n }\n\n for (let i = 0; i < this.set.length; i++) {\n if (testSet(this.set[i], version, this.options)) {\n return true\n }\n }\n return false\n }\n}\n\nmodule.exports = Range\n\nconst LRU = require('lru-cache')\nconst cache = new LRU({ max: 1000 })\n\nconst parseOptions = require('../internal/parse-options')\nconst Comparator = require('./comparator')\nconst debug = require('../internal/debug')\nconst SemVer = require('./semver')\nconst {\n safeRe: re,\n t,\n comparatorTrimReplace,\n tildeTrimReplace,\n caretTrimReplace,\n} = require('../internal/re')\nconst { FLAG_INCLUDE_PRERELEASE, FLAG_LOOSE } = require('../internal/constants')\n\nconst isNullSet = c => c.value === '<0.0.0-0'\nconst isAny = c => c.value === ''\n\n// take a set of comparators and determine whether there\n// exists a version which can satisfy it\nconst isSatisfiable = (comparators, options) => {\n let result = true\n const remainingComparators = comparators.slice()\n let testComparator = remainingComparators.pop()\n\n while (result && remainingComparators.length) {\n result = remainingComparators.every((otherComparator) => {\n return testComparator.intersects(otherComparator, options)\n })\n\n testComparator = remainingComparators.pop()\n }\n\n return result\n}\n\n// comprised of xranges, tildes, stars, and gtlt's at this point.\n// already replaced the hyphen ranges\n// turn into a set of JUST comparators.\nconst parseComparator = (comp, options) => {\n debug('comp', comp, options)\n comp = replaceCarets(comp, options)\n debug('caret', comp)\n comp = replaceTildes(comp, options)\n debug('tildes', comp)\n comp = replaceXRanges(comp, options)\n debug('xrange', comp)\n comp = replaceStars(comp, options)\n debug('stars', comp)\n return comp\n}\n\nconst isX = id => !id || id.toLowerCase() === 'x' || id === '*'\n\n// ~, ~> --> * (any, kinda silly)\n// ~2, ~2.x, ~2.x.x, ~>2, ~>2.x ~>2.x.x --> >=2.0.0 <3.0.0-0\n// ~2.0, ~2.0.x, ~>2.0, ~>2.0.x --> >=2.0.0 <2.1.0-0\n// ~1.2, ~1.2.x, ~>1.2, ~>1.2.x --> >=1.2.0 <1.3.0-0\n// ~1.2.3, ~>1.2.3 --> >=1.2.3 <1.3.0-0\n// ~1.2.0, ~>1.2.0 --> >=1.2.0 <1.3.0-0\n// ~0.0.1 --> >=0.0.1 <0.1.0-0\nconst replaceTildes = (comp, options) => {\n return comp\n .trim()\n .split(/\\s+/)\n .map((c) => replaceTilde(c, options))\n .join(' ')\n}\n\nconst replaceTilde = (comp, options) => {\n const r = options.loose ? re[t.TILDELOOSE] : re[t.TILDE]\n return comp.replace(r, (_, M, m, p, pr) => {\n debug('tilde', comp, _, M, m, p, pr)\n let ret\n\n if (isX(M)) {\n ret = ''\n } else if (isX(m)) {\n ret = `>=${M}.0.0 <${+M + 1}.0.0-0`\n } else if (isX(p)) {\n // ~1.2 == >=1.2.0 <1.3.0-0\n ret = `>=${M}.${m}.0 <${M}.${+m + 1}.0-0`\n } else if (pr) {\n debug('replaceTilde pr', pr)\n ret = `>=${M}.${m}.${p}-${pr\n } <${M}.${+m + 1}.0-0`\n } else {\n // ~1.2.3 == >=1.2.3 <1.3.0-0\n ret = `>=${M}.${m}.${p\n } <${M}.${+m + 1}.0-0`\n }\n\n debug('tilde return', ret)\n return ret\n })\n}\n\n// ^ --> * (any, kinda silly)\n// ^2, ^2.x, ^2.x.x --> >=2.0.0 <3.0.0-0\n// ^2.0, ^2.0.x --> >=2.0.0 <3.0.0-0\n// ^1.2, ^1.2.x --> >=1.2.0 <2.0.0-0\n// ^1.2.3 --> >=1.2.3 <2.0.0-0\n// ^1.2.0 --> >=1.2.0 <2.0.0-0\n// ^0.0.1 --> >=0.0.1 <0.0.2-0\n// ^0.1.0 --> >=0.1.0 <0.2.0-0\nconst replaceCarets = (comp, options) => {\n return comp\n .trim()\n .split(/\\s+/)\n .map((c) => replaceCaret(c, options))\n .join(' ')\n}\n\nconst replaceCaret = (comp, options) => {\n debug('caret', comp, options)\n const r = options.loose ? re[t.CARETLOOSE] : re[t.CARET]\n const z = options.includePrerelease ? '-0' : ''\n return comp.replace(r, (_, M, m, p, pr) => {\n debug('caret', comp, _, M, m, p, pr)\n let ret\n\n if (isX(M)) {\n ret = ''\n } else if (isX(m)) {\n ret = `>=${M}.0.0${z} <${+M + 1}.0.0-0`\n } else if (isX(p)) {\n if (M === '0') {\n ret = `>=${M}.${m}.0${z} <${M}.${+m + 1}.0-0`\n } else {\n ret = `>=${M}.${m}.0${z} <${+M + 1}.0.0-0`\n }\n } else if (pr) {\n debug('replaceCaret pr', pr)\n if (M === '0') {\n if (m === '0') {\n ret = `>=${M}.${m}.${p}-${pr\n } <${M}.${m}.${+p + 1}-0`\n } else {\n ret = `>=${M}.${m}.${p}-${pr\n } <${M}.${+m + 1}.0-0`\n }\n } else {\n ret = `>=${M}.${m}.${p}-${pr\n } <${+M + 1}.0.0-0`\n }\n } else {\n debug('no pr')\n if (M === '0') {\n if (m === '0') {\n ret = `>=${M}.${m}.${p\n }${z} <${M}.${m}.${+p + 1}-0`\n } else {\n ret = `>=${M}.${m}.${p\n }${z} <${M}.${+m + 1}.0-0`\n }\n } else {\n ret = `>=${M}.${m}.${p\n } <${+M + 1}.0.0-0`\n }\n }\n\n debug('caret return', ret)\n return ret\n })\n}\n\nconst replaceXRanges = (comp, options) => {\n debug('replaceXRanges', comp, options)\n return comp\n .split(/\\s+/)\n .map((c) => replaceXRange(c, options))\n .join(' ')\n}\n\nconst replaceXRange = (comp, options) => {\n comp = comp.trim()\n const r = options.loose ? re[t.XRANGELOOSE] : re[t.XRANGE]\n return comp.replace(r, (ret, gtlt, M, m, p, pr) => {\n debug('xRange', comp, ret, gtlt, M, m, p, pr)\n const xM = isX(M)\n const xm = xM || isX(m)\n const xp = xm || isX(p)\n const anyX = xp\n\n if (gtlt === '=' && anyX) {\n gtlt = ''\n }\n\n // if we're including prereleases in the match, then we need\n // to fix this to -0, the lowest possible prerelease value\n pr = options.includePrerelease ? '-0' : ''\n\n if (xM) {\n if (gtlt === '>' || gtlt === '<') {\n // nothing is allowed\n ret = '<0.0.0-0'\n } else {\n // nothing is forbidden\n ret = '*'\n }\n } else if (gtlt && anyX) {\n // we know patch is an x, because we have any x at all.\n // replace X with 0\n if (xm) {\n m = 0\n }\n p = 0\n\n if (gtlt === '>') {\n // >1 => >=2.0.0\n // >1.2 => >=1.3.0\n gtlt = '>='\n if (xm) {\n M = +M + 1\n m = 0\n p = 0\n } else {\n m = +m + 1\n p = 0\n }\n } else if (gtlt === '<=') {\n // <=0.7.x is actually <0.8.0, since any 0.7.x should\n // pass. Similarly, <=7.x is actually <8.0.0, etc.\n gtlt = '<'\n if (xm) {\n M = +M + 1\n } else {\n m = +m + 1\n }\n }\n\n if (gtlt === '<') {\n pr = '-0'\n }\n\n ret = `${gtlt + M}.${m}.${p}${pr}`\n } else if (xm) {\n ret = `>=${M}.0.0${pr} <${+M + 1}.0.0-0`\n } else if (xp) {\n ret = `>=${M}.${m}.0${pr\n } <${M}.${+m + 1}.0-0`\n }\n\n debug('xRange return', ret)\n\n return ret\n })\n}\n\n// Because * is AND-ed with everything else in the comparator,\n// and '' means \"any version\", just remove the *s entirely.\nconst replaceStars = (comp, options) => {\n debug('replaceStars', comp, options)\n // Looseness is ignored here. star is always as loose as it gets!\n return comp\n .trim()\n .replace(re[t.STAR], '')\n}\n\nconst replaceGTE0 = (comp, options) => {\n debug('replaceGTE0', comp, options)\n return comp\n .trim()\n .replace(re[options.includePrerelease ? t.GTE0PRE : t.GTE0], '')\n}\n\n// This function is passed to string.replace(re[t.HYPHENRANGE])\n// M, m, patch, prerelease, build\n// 1.2 - 3.4.5 => >=1.2.0 <=3.4.5\n// 1.2.3 - 3.4 => >=1.2.0 <3.5.0-0 Any 3.4.x will do\n// 1.2 - 3.4 => >=1.2.0 <3.5.0-0\nconst hyphenReplace = incPr => ($0,\n from, fM, fm, fp, fpr, fb,\n to, tM, tm, tp, tpr, tb) => {\n if (isX(fM)) {\n from = ''\n } else if (isX(fm)) {\n from = `>=${fM}.0.0${incPr ? '-0' : ''}`\n } else if (isX(fp)) {\n from = `>=${fM}.${fm}.0${incPr ? '-0' : ''}`\n } else if (fpr) {\n from = `>=${from}`\n } else {\n from = `>=${from}${incPr ? '-0' : ''}`\n }\n\n if (isX(tM)) {\n to = ''\n } else if (isX(tm)) {\n to = `<${+tM + 1}.0.0-0`\n } else if (isX(tp)) {\n to = `<${tM}.${+tm + 1}.0-0`\n } else if (tpr) {\n to = `<=${tM}.${tm}.${tp}-${tpr}`\n } else if (incPr) {\n to = `<${tM}.${tm}.${+tp + 1}-0`\n } else {\n to = `<=${to}`\n }\n\n return `${from} ${to}`.trim()\n}\n\nconst testSet = (set, version, options) => {\n for (let i = 0; i < set.length; i++) {\n if (!set[i].test(version)) {\n return false\n }\n }\n\n if (version.prerelease.length && !options.includePrerelease) {\n // Find the set of versions that are allowed to have prereleases\n // For example, ^1.2.3-pr.1 desugars to >=1.2.3-pr.1 <2.0.0\n // That should allow `1.2.3-pr.2` to pass.\n // However, `1.2.4-alpha.notready` should NOT be allowed,\n // even though it's within the range set by the comparators.\n for (let i = 0; i < set.length; i++) {\n debug(set[i].semver)\n if (set[i].semver === Comparator.ANY) {\n continue\n }\n\n if (set[i].semver.prerelease.length > 0) {\n const allowed = set[i].semver\n if (allowed.major === version.major &&\n allowed.minor === version.minor &&\n allowed.patch === version.patch) {\n return true\n }\n }\n }\n\n // Version has a -pre, but it's not one of the ones we like.\n return false\n }\n\n return true\n}\n","const ANY = Symbol('SemVer ANY')\n// hoisted class for cyclic dependency\nclass Comparator {\n static get ANY () {\n return ANY\n }\n\n constructor (comp, options) {\n options = parseOptions(options)\n\n if (comp instanceof Comparator) {\n if (comp.loose === !!options.loose) {\n return comp\n } else {\n comp = comp.value\n }\n }\n\n comp = comp.trim().split(/\\s+/).join(' ')\n debug('comparator', comp, options)\n this.options = options\n this.loose = !!options.loose\n this.parse(comp)\n\n if (this.semver === ANY) {\n this.value = ''\n } else {\n this.value = this.operator + this.semver.version\n }\n\n debug('comp', this)\n }\n\n parse (comp) {\n const r = this.options.loose ? re[t.COMPARATORLOOSE] : re[t.COMPARATOR]\n const m = comp.match(r)\n\n if (!m) {\n throw new TypeError(`Invalid comparator: ${comp}`)\n }\n\n this.operator = m[1] !== undefined ? m[1] : ''\n if (this.operator === '=') {\n this.operator = ''\n }\n\n // if it literally is just '>' or '' then allow anything.\n if (!m[2]) {\n this.semver = ANY\n } else {\n this.semver = new SemVer(m[2], this.options.loose)\n }\n }\n\n toString () {\n return this.value\n }\n\n test (version) {\n debug('Comparator.test', version, this.options.loose)\n\n if (this.semver === ANY || version === ANY) {\n return true\n }\n\n if (typeof version === 'string') {\n try {\n version = new SemVer(version, this.options)\n } catch (er) {\n return false\n }\n }\n\n return cmp(version, this.operator, this.semver, this.options)\n }\n\n intersects (comp, options) {\n if (!(comp instanceof Comparator)) {\n throw new TypeError('a Comparator is required')\n }\n\n if (this.operator === '') {\n if (this.value === '') {\n return true\n }\n return new Range(comp.value, options).test(this.value)\n } else if (comp.operator === '') {\n if (comp.value === '') {\n return true\n }\n return new Range(this.value, options).test(comp.semver)\n }\n\n options = parseOptions(options)\n\n // Special cases where nothing can possibly be lower\n if (options.includePrerelease &&\n (this.value === '<0.0.0-0' || comp.value === '<0.0.0-0')) {\n return false\n }\n if (!options.includePrerelease &&\n (this.value.startsWith('<0.0.0') || comp.value.startsWith('<0.0.0'))) {\n return false\n }\n\n // Same direction increasing (> or >=)\n if (this.operator.startsWith('>') && comp.operator.startsWith('>')) {\n return true\n }\n // Same direction decreasing (< or <=)\n if (this.operator.startsWith('<') && comp.operator.startsWith('<')) {\n return true\n }\n // same SemVer and both sides are inclusive (<= or >=)\n if (\n (this.semver.version === comp.semver.version) &&\n this.operator.includes('=') && comp.operator.includes('=')) {\n return true\n }\n // opposite directions less than\n if (cmp(this.semver, '<', comp.semver, options) &&\n this.operator.startsWith('>') && comp.operator.startsWith('<')) {\n return true\n }\n // opposite directions greater than\n if (cmp(this.semver, '>', comp.semver, options) &&\n this.operator.startsWith('<') && comp.operator.startsWith('>')) {\n return true\n }\n return false\n }\n}\n\nmodule.exports = Comparator\n\nconst parseOptions = require('../internal/parse-options')\nconst { safeRe: re, t } = require('../internal/re')\nconst cmp = require('../functions/cmp')\nconst debug = require('../internal/debug')\nconst SemVer = require('./semver')\nconst Range = require('./range')\n","const Range = require('../classes/range')\nconst satisfies = (version, range, options) => {\n try {\n range = new Range(range, options)\n } catch (er) {\n return false\n }\n return range.test(version)\n}\nmodule.exports = satisfies\n","const Range = require('../classes/range')\n\n// Mostly just for testing and legacy API reasons\nconst toComparators = (range, options) =>\n new Range(range, options).set\n .map(comp => comp.map(c => c.value).join(' ').trim().split(' '))\n\nmodule.exports = toComparators\n","const SemVer = require('../classes/semver')\nconst Range = require('../classes/range')\n\nconst maxSatisfying = (versions, range, options) => {\n let max = null\n let maxSV = null\n let rangeObj = null\n try {\n rangeObj = new Range(range, options)\n } catch (er) {\n return null\n }\n versions.forEach((v) => {\n if (rangeObj.test(v)) {\n // satisfies(v, range, options)\n if (!max || maxSV.compare(v) === -1) {\n // compare(max, v, true)\n max = v\n maxSV = new SemVer(max, options)\n }\n }\n })\n return max\n}\nmodule.exports = maxSatisfying\n","const SemVer = require('../classes/semver')\nconst Range = require('../classes/range')\nconst minSatisfying = (versions, range, options) => {\n let min = null\n let minSV = null\n let rangeObj = null\n try {\n rangeObj = new Range(range, options)\n } catch (er) {\n return null\n }\n versions.forEach((v) => {\n if (rangeObj.test(v)) {\n // satisfies(v, range, options)\n if (!min || minSV.compare(v) === 1) {\n // compare(min, v, true)\n min = v\n minSV = new SemVer(min, options)\n }\n }\n })\n return min\n}\nmodule.exports = minSatisfying\n","const SemVer = require('../classes/semver')\nconst Range = require('../classes/range')\nconst gt = require('../functions/gt')\n\nconst minVersion = (range, loose) => {\n range = new Range(range, loose)\n\n let minver = new SemVer('0.0.0')\n if (range.test(minver)) {\n return minver\n }\n\n minver = new SemVer('0.0.0-0')\n if (range.test(minver)) {\n return minver\n }\n\n minver = null\n for (let i = 0; i < range.set.length; ++i) {\n const comparators = range.set[i]\n\n let setMin = null\n comparators.forEach((comparator) => {\n // Clone to avoid manipulating the comparator's semver object.\n const compver = new SemVer(comparator.semver.version)\n switch (comparator.operator) {\n case '>':\n if (compver.prerelease.length === 0) {\n compver.patch++\n } else {\n compver.prerelease.push(0)\n }\n compver.raw = compver.format()\n /* fallthrough */\n case '':\n case '>=':\n if (!setMin || gt(compver, setMin)) {\n setMin = compver\n }\n break\n case '<':\n case '<=':\n /* Ignore maximum versions */\n break\n /* istanbul ignore next */\n default:\n throw new Error(`Unexpected operation: ${comparator.operator}`)\n }\n })\n if (setMin && (!minver || gt(minver, setMin))) {\n minver = setMin\n }\n }\n\n if (minver && range.test(minver)) {\n return minver\n }\n\n return null\n}\nmodule.exports = minVersion\n","const Range = require('../classes/range')\nconst validRange = (range, options) => {\n try {\n // Return '*' instead of '' so that truthiness works.\n // This will throw if it's invalid anyway\n return new Range(range, options).range || '*'\n } catch (er) {\n return null\n }\n}\nmodule.exports = validRange\n","const SemVer = require('../classes/semver')\nconst Comparator = require('../classes/comparator')\nconst { ANY } = Comparator\nconst Range = require('../classes/range')\nconst satisfies = require('../functions/satisfies')\nconst gt = require('../functions/gt')\nconst lt = require('../functions/lt')\nconst lte = require('../functions/lte')\nconst gte = require('../functions/gte')\n\nconst outside = (version, range, hilo, options) => {\n version = new SemVer(version, options)\n range = new Range(range, options)\n\n let gtfn, ltefn, ltfn, comp, ecomp\n switch (hilo) {\n case '>':\n gtfn = gt\n ltefn = lte\n ltfn = lt\n comp = '>'\n ecomp = '>='\n break\n case '<':\n gtfn = lt\n ltefn = gte\n ltfn = gt\n comp = '<'\n ecomp = '<='\n break\n default:\n throw new TypeError('Must provide a hilo val of \"<\" or \">\"')\n }\n\n // If it satisfies the range it is not outside\n if (satisfies(version, range, options)) {\n return false\n }\n\n // From now on, variable terms are as if we're in \"gtr\" mode.\n // but note that everything is flipped for the \"ltr\" function.\n\n for (let i = 0; i < range.set.length; ++i) {\n const comparators = range.set[i]\n\n let high = null\n let low = null\n\n comparators.forEach((comparator) => {\n if (comparator.semver === ANY) {\n comparator = new Comparator('>=0.0.0')\n }\n high = high || comparator\n low = low || comparator\n if (gtfn(comparator.semver, high.semver, options)) {\n high = comparator\n } else if (ltfn(comparator.semver, low.semver, options)) {\n low = comparator\n }\n })\n\n // If the edge version comparator has a operator then our version\n // isn't outside it\n if (high.operator === comp || high.operator === ecomp) {\n return false\n }\n\n // If the lowest version comparator has an operator and our version\n // is less than it then it isn't higher than the range\n if ((!low.operator || low.operator === comp) &&\n ltefn(version, low.semver)) {\n return false\n } else if (low.operator === ecomp && ltfn(version, low.semver)) {\n return false\n }\n }\n return true\n}\n\nmodule.exports = outside\n","// Determine if version is greater than all the versions possible in the range.\nconst outside = require('./outside')\nconst gtr = (version, range, options) => outside(version, range, '>', options)\nmodule.exports = gtr\n","const outside = require('./outside')\n// Determine if version is less than all the versions possible in the range\nconst ltr = (version, range, options) => outside(version, range, '<', options)\nmodule.exports = ltr\n","const Range = require('../classes/range')\nconst intersects = (r1, r2, options) => {\n r1 = new Range(r1, options)\n r2 = new Range(r2, options)\n return r1.intersects(r2, options)\n}\nmodule.exports = intersects\n","// given a set of versions and a range, create a \"simplified\" range\n// that includes the same versions that the original range does\n// If the original range is shorter than the simplified one, return that.\nconst satisfies = require('../functions/satisfies.js')\nconst compare = require('../functions/compare.js')\nmodule.exports = (versions, range, options) => {\n const set = []\n let first = null\n let prev = null\n const v = versions.sort((a, b) => compare(a, b, options))\n for (const version of v) {\n const included = satisfies(version, range, options)\n if (included) {\n prev = version\n if (!first) {\n first = version\n }\n } else {\n if (prev) {\n set.push([first, prev])\n }\n prev = null\n first = null\n }\n }\n if (first) {\n set.push([first, null])\n }\n\n const ranges = []\n for (const [min, max] of set) {\n if (min === max) {\n ranges.push(min)\n } else if (!max && min === v[0]) {\n ranges.push('*')\n } else if (!max) {\n ranges.push(`>=${min}`)\n } else if (min === v[0]) {\n ranges.push(`<=${max}`)\n } else {\n ranges.push(`${min} - ${max}`)\n }\n }\n const simplified = ranges.join(' || ')\n const original = typeof range.raw === 'string' ? range.raw : String(range)\n return simplified.length < original.length ? simplified : range\n}\n","const Range = require('../classes/range.js')\nconst Comparator = require('../classes/comparator.js')\nconst { ANY } = Comparator\nconst satisfies = require('../functions/satisfies.js')\nconst compare = require('../functions/compare.js')\n\n// Complex range `r1 || r2 || ...` is a subset of `R1 || R2 || ...` iff:\n// - Every simple range `r1, r2, ...` is a null set, OR\n// - Every simple range `r1, r2, ...` which is not a null set is a subset of\n// some `R1, R2, ...`\n//\n// Simple range `c1 c2 ...` is a subset of simple range `C1 C2 ...` iff:\n// - If c is only the ANY comparator\n// - If C is only the ANY comparator, return true\n// - Else if in prerelease mode, return false\n// - else replace c with `[>=0.0.0]`\n// - If C is only the ANY comparator\n// - if in prerelease mode, return true\n// - else replace C with `[>=0.0.0]`\n// - Let EQ be the set of = comparators in c\n// - If EQ is more than one, return true (null set)\n// - Let GT be the highest > or >= comparator in c\n// - Let LT be the lowest < or <= comparator in c\n// - If GT and LT, and GT.semver > LT.semver, return true (null set)\n// - If any C is a = range, and GT or LT are set, return false\n// - If EQ\n// - If GT, and EQ does not satisfy GT, return true (null set)\n// - If LT, and EQ does not satisfy LT, return true (null set)\n// - If EQ satisfies every C, return true\n// - Else return false\n// - If GT\n// - If GT.semver is lower than any > or >= comp in C, return false\n// - If GT is >=, and GT.semver does not satisfy every C, return false\n// - If GT.semver has a prerelease, and not in prerelease mode\n// - If no C has a prerelease and the GT.semver tuple, return false\n// - If LT\n// - If LT.semver is greater than any < or <= comp in C, return false\n// - If LT is <=, and LT.semver does not satisfy every C, return false\n// - If GT.semver has a prerelease, and not in prerelease mode\n// - If no C has a prerelease and the LT.semver tuple, return false\n// - Else return true\n\nconst subset = (sub, dom, options = {}) => {\n if (sub === dom) {\n return true\n }\n\n sub = new Range(sub, options)\n dom = new Range(dom, options)\n let sawNonNull = false\n\n OUTER: for (const simpleSub of sub.set) {\n for (const simpleDom of dom.set) {\n const isSub = simpleSubset(simpleSub, simpleDom, options)\n sawNonNull = sawNonNull || isSub !== null\n if (isSub) {\n continue OUTER\n }\n }\n // the null set is a subset of everything, but null simple ranges in\n // a complex range should be ignored. so if we saw a non-null range,\n // then we know this isn't a subset, but if EVERY simple range was null,\n // then it is a subset.\n if (sawNonNull) {\n return false\n }\n }\n return true\n}\n\nconst minimumVersionWithPreRelease = [new Comparator('>=0.0.0-0')]\nconst minimumVersion = [new Comparator('>=0.0.0')]\n\nconst simpleSubset = (sub, dom, options) => {\n if (sub === dom) {\n return true\n }\n\n if (sub.length === 1 && sub[0].semver === ANY) {\n if (dom.length === 1 && dom[0].semver === ANY) {\n return true\n } else if (options.includePrerelease) {\n sub = minimumVersionWithPreRelease\n } else {\n sub = minimumVersion\n }\n }\n\n if (dom.length === 1 && dom[0].semver === ANY) {\n if (options.includePrerelease) {\n return true\n } else {\n dom = minimumVersion\n }\n }\n\n const eqSet = new Set()\n let gt, lt\n for (const c of sub) {\n if (c.operator === '>' || c.operator === '>=') {\n gt = higherGT(gt, c, options)\n } else if (c.operator === '<' || c.operator === '<=') {\n lt = lowerLT(lt, c, options)\n } else {\n eqSet.add(c.semver)\n }\n }\n\n if (eqSet.size > 1) {\n return null\n }\n\n let gtltComp\n if (gt && lt) {\n gtltComp = compare(gt.semver, lt.semver, options)\n if (gtltComp > 0) {\n return null\n } else if (gtltComp === 0 && (gt.operator !== '>=' || lt.operator !== '<=')) {\n return null\n }\n }\n\n // will iterate one or zero times\n for (const eq of eqSet) {\n if (gt && !satisfies(eq, String(gt), options)) {\n return null\n }\n\n if (lt && !satisfies(eq, String(lt), options)) {\n return null\n }\n\n for (const c of dom) {\n if (!satisfies(eq, String(c), options)) {\n return false\n }\n }\n\n return true\n }\n\n let higher, lower\n let hasDomLT, hasDomGT\n // if the subset has a prerelease, we need a comparator in the superset\n // with the same tuple and a prerelease, or it's not a subset\n let needDomLTPre = lt &&\n !options.includePrerelease &&\n lt.semver.prerelease.length ? lt.semver : false\n let needDomGTPre = gt &&\n !options.includePrerelease &&\n gt.semver.prerelease.length ? gt.semver : false\n // exception: <1.2.3-0 is the same as <1.2.3\n if (needDomLTPre && needDomLTPre.prerelease.length === 1 &&\n lt.operator === '<' && needDomLTPre.prerelease[0] === 0) {\n needDomLTPre = false\n }\n\n for (const c of dom) {\n hasDomGT = hasDomGT || c.operator === '>' || c.operator === '>='\n hasDomLT = hasDomLT || c.operator === '<' || c.operator === '<='\n if (gt) {\n if (needDomGTPre) {\n if (c.semver.prerelease && c.semver.prerelease.length &&\n c.semver.major === needDomGTPre.major &&\n c.semver.minor === needDomGTPre.minor &&\n c.semver.patch === needDomGTPre.patch) {\n needDomGTPre = false\n }\n }\n if (c.operator === '>' || c.operator === '>=') {\n higher = higherGT(gt, c, options)\n if (higher === c && higher !== gt) {\n return false\n }\n } else if (gt.operator === '>=' && !satisfies(gt.semver, String(c), options)) {\n return false\n }\n }\n if (lt) {\n if (needDomLTPre) {\n if (c.semver.prerelease && c.semver.prerelease.length &&\n c.semver.major === needDomLTPre.major &&\n c.semver.minor === needDomLTPre.minor &&\n c.semver.patch === needDomLTPre.patch) {\n needDomLTPre = false\n }\n }\n if (c.operator === '<' || c.operator === '<=') {\n lower = lowerLT(lt, c, options)\n if (lower === c && lower !== lt) {\n return false\n }\n } else if (lt.operator === '<=' && !satisfies(lt.semver, String(c), options)) {\n return false\n }\n }\n if (!c.operator && (lt || gt) && gtltComp !== 0) {\n return false\n }\n }\n\n // if there was a < or >, and nothing in the dom, then must be false\n // UNLESS it was limited by another range in the other direction.\n // Eg, >1.0.0 <1.0.1 is still a subset of <2.0.0\n if (gt && hasDomLT && !lt && gtltComp !== 0) {\n return false\n }\n\n if (lt && hasDomGT && !gt && gtltComp !== 0) {\n return false\n }\n\n // we needed a prerelease range in a specific tuple, but didn't get one\n // then this isn't a subset. eg >=1.2.3-pre is not a subset of >=1.0.0,\n // because it includes prereleases in the 1.2.3 tuple\n if (needDomGTPre || needDomLTPre) {\n return false\n }\n\n return true\n}\n\n// >=1.2.3 is lower than >1.2.3\nconst higherGT = (a, b, options) => {\n if (!a) {\n return b\n }\n const comp = compare(a.semver, b.semver, options)\n return comp > 0 ? a\n : comp < 0 ? b\n : b.operator === '>' && a.operator === '>=' ? b\n : a\n}\n\n// <=1.2.3 is higher than <1.2.3\nconst lowerLT = (a, b, options) => {\n if (!a) {\n return b\n }\n const comp = compare(a.semver, b.semver, options)\n return comp < 0 ? a\n : comp > 0 ? b\n : b.operator === '<' && a.operator === '<=' ? b\n : a\n}\n\nmodule.exports = subset\n","// just pre-load all the stuff that index.js lazily exports\nconst internalRe = require('./internal/re')\nconst constants = require('./internal/constants')\nconst SemVer = require('./classes/semver')\nconst identifiers = require('./internal/identifiers')\nconst parse = require('./functions/parse')\nconst valid = require('./functions/valid')\nconst clean = require('./functions/clean')\nconst inc = require('./functions/inc')\nconst diff = require('./functions/diff')\nconst major = require('./functions/major')\nconst minor = require('./functions/minor')\nconst patch = require('./functions/patch')\nconst prerelease = require('./functions/prerelease')\nconst compare = require('./functions/compare')\nconst rcompare = require('./functions/rcompare')\nconst compareLoose = require('./functions/compare-loose')\nconst compareBuild = require('./functions/compare-build')\nconst sort = require('./functions/sort')\nconst rsort = require('./functions/rsort')\nconst gt = require('./functions/gt')\nconst lt = require('./functions/lt')\nconst eq = require('./functions/eq')\nconst neq = require('./functions/neq')\nconst gte = require('./functions/gte')\nconst lte = require('./functions/lte')\nconst cmp = require('./functions/cmp')\nconst coerce = require('./functions/coerce')\nconst Comparator = require('./classes/comparator')\nconst Range = require('./classes/range')\nconst satisfies = require('./functions/satisfies')\nconst toComparators = require('./ranges/to-comparators')\nconst maxSatisfying = require('./ranges/max-satisfying')\nconst minSatisfying = require('./ranges/min-satisfying')\nconst minVersion = require('./ranges/min-version')\nconst validRange = require('./ranges/valid')\nconst outside = require('./ranges/outside')\nconst gtr = require('./ranges/gtr')\nconst ltr = require('./ranges/ltr')\nconst intersects = require('./ranges/intersects')\nconst simplifyRange = require('./ranges/simplify')\nconst subset = require('./ranges/subset')\nmodule.exports = {\n parse,\n valid,\n clean,\n inc,\n diff,\n major,\n minor,\n patch,\n prerelease,\n compare,\n rcompare,\n compareLoose,\n compareBuild,\n sort,\n rsort,\n gt,\n lt,\n eq,\n neq,\n gte,\n lte,\n cmp,\n coerce,\n Comparator,\n Range,\n satisfies,\n toComparators,\n maxSatisfying,\n minSatisfying,\n minVersion,\n validRange,\n outside,\n gtr,\n ltr,\n intersects,\n simplifyRange,\n subset,\n SemVer,\n re: internalRe.re,\n src: internalRe.src,\n tokens: internalRe.t,\n SEMVER_SPEC_VERSION: constants.SEMVER_SPEC_VERSION,\n RELEASE_TYPES: constants.RELEASE_TYPES,\n compareIdentifiers: identifiers.compareIdentifiers,\n rcompareIdentifiers: identifiers.rcompareIdentifiers,\n}\n","const semver = require('semver');\n\nmodule.exports = semver.satisfies(process.version, '>=15.7.0');\n","const semver = require('semver');\n\nmodule.exports = semver.satisfies(process.version, '>=16.9.0');\n","const ASYMMETRIC_KEY_DETAILS_SUPPORTED = require('./asymmetricKeyDetailsSupported');\nconst RSA_PSS_KEY_DETAILS_SUPPORTED = require('./rsaPssKeyDetailsSupported');\n\nconst allowedAlgorithmsForKeys = {\n 'ec': ['ES256', 'ES384', 'ES512'],\n 'rsa': ['RS256', 'PS256', 'RS384', 'PS384', 'RS512', 'PS512'],\n 'rsa-pss': ['PS256', 'PS384', 'PS512']\n};\n\nconst allowedCurves = {\n ES256: 'prime256v1',\n ES384: 'secp384r1',\n ES512: 'secp521r1',\n};\n\nmodule.exports = function(algorithm, key) {\n if (!algorithm || !key) return;\n\n const keyType = key.asymmetricKeyType;\n if (!keyType) return;\n\n const allowedAlgorithms = allowedAlgorithmsForKeys[keyType];\n\n if (!allowedAlgorithms) {\n throw new Error(`Unknown key type \"${keyType}\".`);\n }\n\n if (!allowedAlgorithms.includes(algorithm)) {\n throw new Error(`\"alg\" parameter for \"${keyType}\" key type must be one of: ${allowedAlgorithms.join(', ')}.`)\n }\n\n /*\n * Ignore the next block from test coverage because it gets executed\n * conditionally depending on the Node version. Not ignoring it would\n * prevent us from reaching the target % of coverage for versions of\n * Node under 15.7.0.\n */\n /* istanbul ignore next */\n if (ASYMMETRIC_KEY_DETAILS_SUPPORTED) {\n switch (keyType) {\n case 'ec':\n const keyCurve = key.asymmetricKeyDetails.namedCurve;\n const allowedCurve = allowedCurves[algorithm];\n\n if (keyCurve !== allowedCurve) {\n throw new Error(`\"alg\" parameter \"${algorithm}\" requires curve \"${allowedCurve}\".`);\n }\n break;\n\n case 'rsa-pss':\n if (RSA_PSS_KEY_DETAILS_SUPPORTED) {\n const length = parseInt(algorithm.slice(-3), 10);\n const { hashAlgorithm, mgf1HashAlgorithm, saltLength } = key.asymmetricKeyDetails;\n\n if (hashAlgorithm !== `sha${length}` || mgf1HashAlgorithm !== hashAlgorithm) {\n throw new Error(`Invalid key for this operation, its RSA-PSS parameters do not meet the requirements of \"alg\" ${algorithm}.`);\n }\n\n if (saltLength !== undefined && saltLength > length >> 3) {\n throw new Error(`Invalid key for this operation, its RSA-PSS parameter saltLength does not meet the requirements of \"alg\" ${algorithm}.`)\n }\n }\n break;\n }\n }\n}\n","var semver = require('semver');\n\nmodule.exports = semver.satisfies(process.version, '^6.12.0 || >=8.0.0');\n","const JsonWebTokenError = require('./lib/JsonWebTokenError');\nconst NotBeforeError = require('./lib/NotBeforeError');\nconst TokenExpiredError = require('./lib/TokenExpiredError');\nconst decode = require('./decode');\nconst timespan = require('./lib/timespan');\nconst validateAsymmetricKey = require('./lib/validateAsymmetricKey');\nconst PS_SUPPORTED = require('./lib/psSupported');\nconst jws = require('jws');\nconst {KeyObject, createSecretKey, createPublicKey} = require(\"crypto\");\n\nconst PUB_KEY_ALGS = ['RS256', 'RS384', 'RS512'];\nconst EC_KEY_ALGS = ['ES256', 'ES384', 'ES512'];\nconst RSA_KEY_ALGS = ['RS256', 'RS384', 'RS512'];\nconst HS_ALGS = ['HS256', 'HS384', 'HS512'];\n\nif (PS_SUPPORTED) {\n PUB_KEY_ALGS.splice(PUB_KEY_ALGS.length, 0, 'PS256', 'PS384', 'PS512');\n RSA_KEY_ALGS.splice(RSA_KEY_ALGS.length, 0, 'PS256', 'PS384', 'PS512');\n}\n\nmodule.exports = function (jwtString, secretOrPublicKey, options, callback) {\n if ((typeof options === 'function') && !callback) {\n callback = options;\n options = {};\n }\n\n if (!options) {\n options = {};\n }\n\n //clone this object since we are going to mutate it.\n options = Object.assign({}, options);\n\n let done;\n\n if (callback) {\n done = callback;\n } else {\n done = function(err, data) {\n if (err) throw err;\n return data;\n };\n }\n\n if (options.clockTimestamp && typeof options.clockTimestamp !== 'number') {\n return done(new JsonWebTokenError('clockTimestamp must be a number'));\n }\n\n if (options.nonce !== undefined && (typeof options.nonce !== 'string' || options.nonce.trim() === '')) {\n return done(new JsonWebTokenError('nonce must be a non-empty string'));\n }\n\n if (options.allowInvalidAsymmetricKeyTypes !== undefined && typeof options.allowInvalidAsymmetricKeyTypes !== 'boolean') {\n return done(new JsonWebTokenError('allowInvalidAsymmetricKeyTypes must be a boolean'));\n }\n\n const clockTimestamp = options.clockTimestamp || Math.floor(Date.now() / 1000);\n\n if (!jwtString){\n return done(new JsonWebTokenError('jwt must be provided'));\n }\n\n if (typeof jwtString !== 'string') {\n return done(new JsonWebTokenError('jwt must be a string'));\n }\n\n const parts = jwtString.split('.');\n\n if (parts.length !== 3){\n return done(new JsonWebTokenError('jwt malformed'));\n }\n\n let decodedToken;\n\n try {\n decodedToken = decode(jwtString, { complete: true });\n } catch(err) {\n return done(err);\n }\n\n if (!decodedToken) {\n return done(new JsonWebTokenError('invalid token'));\n }\n\n const header = decodedToken.header;\n let getSecret;\n\n if(typeof secretOrPublicKey === 'function') {\n if(!callback) {\n return done(new JsonWebTokenError('verify must be called asynchronous if secret or public key is provided as a callback'));\n }\n\n getSecret = secretOrPublicKey;\n }\n else {\n getSecret = function(header, secretCallback) {\n return secretCallback(null, secretOrPublicKey);\n };\n }\n\n return getSecret(header, function(err, secretOrPublicKey) {\n if(err) {\n return done(new JsonWebTokenError('error in secret or public key callback: ' + err.message));\n }\n\n const hasSignature = parts[2].trim() !== '';\n\n if (!hasSignature && secretOrPublicKey){\n return done(new JsonWebTokenError('jwt signature is required'));\n }\n\n if (hasSignature && !secretOrPublicKey) {\n return done(new JsonWebTokenError('secret or public key must be provided'));\n }\n\n if (!hasSignature && !options.algorithms) {\n return done(new JsonWebTokenError('please specify \"none\" in \"algorithms\" to verify unsigned tokens'));\n }\n\n if (secretOrPublicKey != null && !(secretOrPublicKey instanceof KeyObject)) {\n try {\n secretOrPublicKey = createPublicKey(secretOrPublicKey);\n } catch (_) {\n try {\n secretOrPublicKey = createSecretKey(typeof secretOrPublicKey === 'string' ? Buffer.from(secretOrPublicKey) : secretOrPublicKey);\n } catch (_) {\n return done(new JsonWebTokenError('secretOrPublicKey is not valid key material'))\n }\n }\n }\n\n if (!options.algorithms) {\n if (secretOrPublicKey.type === 'secret') {\n options.algorithms = HS_ALGS;\n } else if (['rsa', 'rsa-pss'].includes(secretOrPublicKey.asymmetricKeyType)) {\n options.algorithms = RSA_KEY_ALGS\n } else if (secretOrPublicKey.asymmetricKeyType === 'ec') {\n options.algorithms = EC_KEY_ALGS\n } else {\n options.algorithms = PUB_KEY_ALGS\n }\n }\n\n if (options.algorithms.indexOf(decodedToken.header.alg) === -1) {\n return done(new JsonWebTokenError('invalid algorithm'));\n }\n\n if (header.alg.startsWith('HS') && secretOrPublicKey.type !== 'secret') {\n return done(new JsonWebTokenError((`secretOrPublicKey must be a symmetric key when using ${header.alg}`)))\n } else if (/^(?:RS|PS|ES)/.test(header.alg) && secretOrPublicKey.type !== 'public') {\n return done(new JsonWebTokenError((`secretOrPublicKey must be an asymmetric key when using ${header.alg}`)))\n }\n\n if (!options.allowInvalidAsymmetricKeyTypes) {\n try {\n validateAsymmetricKey(header.alg, secretOrPublicKey);\n } catch (e) {\n return done(e);\n }\n }\n\n let valid;\n\n try {\n valid = jws.verify(jwtString, decodedToken.header.alg, secretOrPublicKey);\n } catch (e) {\n return done(e);\n }\n\n if (!valid) {\n return done(new JsonWebTokenError('invalid signature'));\n }\n\n const payload = decodedToken.payload;\n\n if (typeof payload.nbf !== 'undefined' && !options.ignoreNotBefore) {\n if (typeof payload.nbf !== 'number') {\n return done(new JsonWebTokenError('invalid nbf value'));\n }\n if (payload.nbf > clockTimestamp + (options.clockTolerance || 0)) {\n return done(new NotBeforeError('jwt not active', new Date(payload.nbf * 1000)));\n }\n }\n\n if (typeof payload.exp !== 'undefined' && !options.ignoreExpiration) {\n if (typeof payload.exp !== 'number') {\n return done(new JsonWebTokenError('invalid exp value'));\n }\n if (clockTimestamp >= payload.exp + (options.clockTolerance || 0)) {\n return done(new TokenExpiredError('jwt expired', new Date(payload.exp * 1000)));\n }\n }\n\n if (options.audience) {\n const audiences = Array.isArray(options.audience) ? options.audience : [options.audience];\n const target = Array.isArray(payload.aud) ? payload.aud : [payload.aud];\n\n const match = target.some(function (targetAudience) {\n return audiences.some(function (audience) {\n return audience instanceof RegExp ? audience.test(targetAudience) : audience === targetAudience;\n });\n });\n\n if (!match) {\n return done(new JsonWebTokenError('jwt audience invalid. expected: ' + audiences.join(' or ')));\n }\n }\n\n if (options.issuer) {\n const invalid_issuer =\n (typeof options.issuer === 'string' && payload.iss !== options.issuer) ||\n (Array.isArray(options.issuer) && options.issuer.indexOf(payload.iss) === -1);\n\n if (invalid_issuer) {\n return done(new JsonWebTokenError('jwt issuer invalid. expected: ' + options.issuer));\n }\n }\n\n if (options.subject) {\n if (payload.sub !== options.subject) {\n return done(new JsonWebTokenError('jwt subject invalid. expected: ' + options.subject));\n }\n }\n\n if (options.jwtid) {\n if (payload.jti !== options.jwtid) {\n return done(new JsonWebTokenError('jwt jwtid invalid. expected: ' + options.jwtid));\n }\n }\n\n if (options.nonce) {\n if (payload.nonce !== options.nonce) {\n return done(new JsonWebTokenError('jwt nonce invalid. expected: ' + options.nonce));\n }\n }\n\n if (options.maxAge) {\n if (typeof payload.iat !== 'number') {\n return done(new JsonWebTokenError('iat required when maxAge is specified'));\n }\n\n const maxAgeTimestamp = timespan(options.maxAge, payload.iat);\n if (typeof maxAgeTimestamp === 'undefined') {\n return done(new JsonWebTokenError('\"maxAge\" should be a number of seconds or string representing a timespan eg: \"1d\", \"20h\", 60'));\n }\n if (clockTimestamp >= maxAgeTimestamp + (options.clockTolerance || 0)) {\n return done(new TokenExpiredError('maxAge exceeded', new Date(maxAgeTimestamp * 1000)));\n }\n }\n\n if (options.complete === true) {\n const signature = decodedToken.signature;\n\n return done(null, {\n header: header,\n payload: payload,\n signature: signature\n });\n }\n\n return done(null, payload);\n });\n};\n","/**\n * lodash (Custom Build) \n * Build: `lodash modularize exports=\"npm\" -o ./`\n * Copyright jQuery Foundation and other contributors \n * Released under MIT license \n * Based on Underscore.js 1.8.3 \n * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n */\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0,\n MAX_SAFE_INTEGER = 9007199254740991,\n MAX_INTEGER = 1.7976931348623157e+308,\n NAN = 0 / 0;\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n stringTag = '[object String]',\n symbolTag = '[object Symbol]';\n\n/** Used to match leading and trailing whitespace. */\nvar reTrim = /^\\s+|\\s+$/g;\n\n/** Used to detect bad signed hexadecimal string values. */\nvar reIsBadHex = /^[-+]0x[0-9a-f]+$/i;\n\n/** Used to detect binary string values. */\nvar reIsBinary = /^0b[01]+$/i;\n\n/** Used to detect octal string values. */\nvar reIsOctal = /^0o[0-7]+$/i;\n\n/** Used to detect unsigned integer values. */\nvar reIsUint = /^(?:0|[1-9]\\d*)$/;\n\n/** Built-in method references without a dependency on `root`. */\nvar freeParseInt = parseInt;\n\n/**\n * A specialized version of `_.map` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n */\nfunction arrayMap(array, iteratee) {\n var index = -1,\n length = array ? array.length : 0,\n result = Array(length);\n\n while (++index < length) {\n result[index] = iteratee(array[index], index, array);\n }\n return result;\n}\n\n/**\n * The base implementation of `_.findIndex` and `_.findLastIndex` without\n * support for iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {Function} predicate The function invoked per iteration.\n * @param {number} fromIndex The index to search from.\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction baseFindIndex(array, predicate, fromIndex, fromRight) {\n var length = array.length,\n index = fromIndex + (fromRight ? 1 : -1);\n\n while ((fromRight ? index-- : ++index < length)) {\n if (predicate(array[index], index, array)) {\n return index;\n }\n }\n return -1;\n}\n\n/**\n * The base implementation of `_.indexOf` without `fromIndex` bounds checks.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} value The value to search for.\n * @param {number} fromIndex The index to search from.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction baseIndexOf(array, value, fromIndex) {\n if (value !== value) {\n return baseFindIndex(array, baseIsNaN, fromIndex);\n }\n var index = fromIndex - 1,\n length = array.length;\n\n while (++index < length) {\n if (array[index] === value) {\n return index;\n }\n }\n return -1;\n}\n\n/**\n * The base implementation of `_.isNaN` without support for number objects.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is `NaN`, else `false`.\n */\nfunction baseIsNaN(value) {\n return value !== value;\n}\n\n/**\n * The base implementation of `_.times` without support for iteratee shorthands\n * or max array length checks.\n *\n * @private\n * @param {number} n The number of times to invoke `iteratee`.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the array of results.\n */\nfunction baseTimes(n, iteratee) {\n var index = -1,\n result = Array(n);\n\n while (++index < n) {\n result[index] = iteratee(index);\n }\n return result;\n}\n\n/**\n * The base implementation of `_.values` and `_.valuesIn` which creates an\n * array of `object` property values corresponding to the property names\n * of `props`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array} props The property names to get values for.\n * @returns {Object} Returns the array of property values.\n */\nfunction baseValues(object, props) {\n return arrayMap(props, function(key) {\n return object[key];\n });\n}\n\n/**\n * Creates a unary function that invokes `func` with its argument transformed.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {Function} transform The argument transform.\n * @returns {Function} Returns the new function.\n */\nfunction overArg(func, transform) {\n return function(arg) {\n return func(transform(arg));\n };\n}\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar objectToString = objectProto.toString;\n\n/** Built-in value references. */\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeKeys = overArg(Object.keys, Object),\n nativeMax = Math.max;\n\n/**\n * Creates an array of the enumerable property names of the array-like `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @param {boolean} inherited Specify returning inherited property names.\n * @returns {Array} Returns the array of property names.\n */\nfunction arrayLikeKeys(value, inherited) {\n // Safari 8.1 makes `arguments.callee` enumerable in strict mode.\n // Safari 9 makes `arguments.length` enumerable in strict mode.\n var result = (isArray(value) || isArguments(value))\n ? baseTimes(value.length, String)\n : [];\n\n var length = result.length,\n skipIndexes = !!length;\n\n for (var key in value) {\n if ((inherited || hasOwnProperty.call(value, key)) &&\n !(skipIndexes && (key == 'length' || isIndex(key, length)))) {\n result.push(key);\n }\n }\n return result;\n}\n\n/**\n * The base implementation of `_.keys` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction baseKeys(object) {\n if (!isPrototype(object)) {\n return nativeKeys(object);\n }\n var result = [];\n for (var key in Object(object)) {\n if (hasOwnProperty.call(object, key) && key != 'constructor') {\n result.push(key);\n }\n }\n return result;\n}\n\n/**\n * Checks if `value` is a valid array-like index.\n *\n * @private\n * @param {*} value The value to check.\n * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.\n * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.\n */\nfunction isIndex(value, length) {\n length = length == null ? MAX_SAFE_INTEGER : length;\n return !!length &&\n (typeof value == 'number' || reIsUint.test(value)) &&\n (value > -1 && value % 1 == 0 && value < length);\n}\n\n/**\n * Checks if `value` is likely a prototype object.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a prototype, else `false`.\n */\nfunction isPrototype(value) {\n var Ctor = value && value.constructor,\n proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto;\n\n return value === proto;\n}\n\n/**\n * Checks if `value` is in `collection`. If `collection` is a string, it's\n * checked for a substring of `value`, otherwise\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * is used for equality comparisons. If `fromIndex` is negative, it's used as\n * the offset from the end of `collection`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object|string} collection The collection to inspect.\n * @param {*} value The value to search for.\n * @param {number} [fromIndex=0] The index to search from.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.reduce`.\n * @returns {boolean} Returns `true` if `value` is found, else `false`.\n * @example\n *\n * _.includes([1, 2, 3], 1);\n * // => true\n *\n * _.includes([1, 2, 3], 1, 2);\n * // => false\n *\n * _.includes({ 'a': 1, 'b': 2 }, 1);\n * // => true\n *\n * _.includes('abcd', 'bc');\n * // => true\n */\nfunction includes(collection, value, fromIndex, guard) {\n collection = isArrayLike(collection) ? collection : values(collection);\n fromIndex = (fromIndex && !guard) ? toInteger(fromIndex) : 0;\n\n var length = collection.length;\n if (fromIndex < 0) {\n fromIndex = nativeMax(length + fromIndex, 0);\n }\n return isString(collection)\n ? (fromIndex <= length && collection.indexOf(value, fromIndex) > -1)\n : (!!length && baseIndexOf(collection, value, fromIndex) > -1);\n}\n\n/**\n * Checks if `value` is likely an `arguments` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n * else `false`.\n * @example\n *\n * _.isArguments(function() { return arguments; }());\n * // => true\n *\n * _.isArguments([1, 2, 3]);\n * // => false\n */\nfunction isArguments(value) {\n // Safari 8.1 makes `arguments.callee` enumerable in strict mode.\n return isArrayLikeObject(value) && hasOwnProperty.call(value, 'callee') &&\n (!propertyIsEnumerable.call(value, 'callee') || objectToString.call(value) == argsTag);\n}\n\n/**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\nvar isArray = Array.isArray;\n\n/**\n * Checks if `value` is array-like. A value is considered array-like if it's\n * not a function and has a `value.length` that's an integer greater than or\n * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is array-like, else `false`.\n * @example\n *\n * _.isArrayLike([1, 2, 3]);\n * // => true\n *\n * _.isArrayLike(document.body.children);\n * // => true\n *\n * _.isArrayLike('abc');\n * // => true\n *\n * _.isArrayLike(_.noop);\n * // => false\n */\nfunction isArrayLike(value) {\n return value != null && isLength(value.length) && !isFunction(value);\n}\n\n/**\n * This method is like `_.isArrayLike` except that it also checks if `value`\n * is an object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array-like object,\n * else `false`.\n * @example\n *\n * _.isArrayLikeObject([1, 2, 3]);\n * // => true\n *\n * _.isArrayLikeObject(document.body.children);\n * // => true\n *\n * _.isArrayLikeObject('abc');\n * // => false\n *\n * _.isArrayLikeObject(_.noop);\n * // => false\n */\nfunction isArrayLikeObject(value) {\n return isObjectLike(value) && isArrayLike(value);\n}\n\n/**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a function, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\nfunction isFunction(value) {\n // The use of `Object#toString` avoids issues with the `typeof` operator\n // in Safari 8-9 which returns 'object' for typed array and other constructors.\n var tag = isObject(value) ? objectToString.call(value) : '';\n return tag == funcTag || tag == genTag;\n}\n\n/**\n * Checks if `value` is a valid array-like length.\n *\n * **Note:** This method is loosely based on\n * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.\n * @example\n *\n * _.isLength(3);\n * // => true\n *\n * _.isLength(Number.MIN_VALUE);\n * // => false\n *\n * _.isLength(Infinity);\n * // => false\n *\n * _.isLength('3');\n * // => false\n */\nfunction isLength(value) {\n return typeof value == 'number' &&\n value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n}\n\n/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return !!value && (type == 'object' || type == 'function');\n}\n\n/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return !!value && typeof value == 'object';\n}\n\n/**\n * Checks if `value` is classified as a `String` primitive or object.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a string, else `false`.\n * @example\n *\n * _.isString('abc');\n * // => true\n *\n * _.isString(1);\n * // => false\n */\nfunction isString(value) {\n return typeof value == 'string' ||\n (!isArray(value) && isObjectLike(value) && objectToString.call(value) == stringTag);\n}\n\n/**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\nfunction isSymbol(value) {\n return typeof value == 'symbol' ||\n (isObjectLike(value) && objectToString.call(value) == symbolTag);\n}\n\n/**\n * Converts `value` to a finite number.\n *\n * @static\n * @memberOf _\n * @since 4.12.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {number} Returns the converted number.\n * @example\n *\n * _.toFinite(3.2);\n * // => 3.2\n *\n * _.toFinite(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toFinite(Infinity);\n * // => 1.7976931348623157e+308\n *\n * _.toFinite('3.2');\n * // => 3.2\n */\nfunction toFinite(value) {\n if (!value) {\n return value === 0 ? value : 0;\n }\n value = toNumber(value);\n if (value === INFINITY || value === -INFINITY) {\n var sign = (value < 0 ? -1 : 1);\n return sign * MAX_INTEGER;\n }\n return value === value ? value : 0;\n}\n\n/**\n * Converts `value` to an integer.\n *\n * **Note:** This method is loosely based on\n * [`ToInteger`](http://www.ecma-international.org/ecma-262/7.0/#sec-tointeger).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {number} Returns the converted integer.\n * @example\n *\n * _.toInteger(3.2);\n * // => 3\n *\n * _.toInteger(Number.MIN_VALUE);\n * // => 0\n *\n * _.toInteger(Infinity);\n * // => 1.7976931348623157e+308\n *\n * _.toInteger('3.2');\n * // => 3\n */\nfunction toInteger(value) {\n var result = toFinite(value),\n remainder = result % 1;\n\n return result === result ? (remainder ? result - remainder : result) : 0;\n}\n\n/**\n * Converts `value` to a number.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to process.\n * @returns {number} Returns the number.\n * @example\n *\n * _.toNumber(3.2);\n * // => 3.2\n *\n * _.toNumber(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toNumber(Infinity);\n * // => Infinity\n *\n * _.toNumber('3.2');\n * // => 3.2\n */\nfunction toNumber(value) {\n if (typeof value == 'number') {\n return value;\n }\n if (isSymbol(value)) {\n return NAN;\n }\n if (isObject(value)) {\n var other = typeof value.valueOf == 'function' ? value.valueOf() : value;\n value = isObject(other) ? (other + '') : other;\n }\n if (typeof value != 'string') {\n return value === 0 ? value : +value;\n }\n value = value.replace(reTrim, '');\n var isBinary = reIsBinary.test(value);\n return (isBinary || reIsOctal.test(value))\n ? freeParseInt(value.slice(2), isBinary ? 2 : 8)\n : (reIsBadHex.test(value) ? NAN : +value);\n}\n\n/**\n * Creates an array of the own enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects. See the\n * [ES spec](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * for more details.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keys(new Foo);\n * // => ['a', 'b'] (iteration order is not guaranteed)\n *\n * _.keys('hi');\n * // => ['0', '1']\n */\nfunction keys(object) {\n return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object);\n}\n\n/**\n * Creates an array of the own enumerable string keyed property values of `object`.\n *\n * **Note:** Non-object values are coerced to objects.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property values.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.values(new Foo);\n * // => [1, 2] (iteration order is not guaranteed)\n *\n * _.values('hi');\n * // => ['h', 'i']\n */\nfunction values(object) {\n return object ? baseValues(object, keys(object)) : [];\n}\n\nmodule.exports = includes;\n","/**\n * lodash 3.0.3 (Custom Build) \n * Build: `lodash modularize exports=\"npm\" -o ./`\n * Copyright 2012-2016 The Dojo Foundation \n * Based on Underscore.js 1.8.3 \n * Copyright 2009-2016 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n * Available under MIT license \n */\n\n/** `Object#toString` result references. */\nvar boolTag = '[object Boolean]';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the [`toStringTag`](http://ecma-international.org/ecma-262/6.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar objectToString = objectProto.toString;\n\n/**\n * Checks if `value` is classified as a boolean primitive or object.\n *\n * @static\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is correctly classified, else `false`.\n * @example\n *\n * _.isBoolean(false);\n * // => true\n *\n * _.isBoolean(null);\n * // => false\n */\nfunction isBoolean(value) {\n return value === true || value === false ||\n (isObjectLike(value) && objectToString.call(value) == boolTag);\n}\n\n/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return !!value && typeof value == 'object';\n}\n\nmodule.exports = isBoolean;\n","/**\n * lodash (Custom Build) \n * Build: `lodash modularize exports=\"npm\" -o ./`\n * Copyright jQuery Foundation and other contributors \n * Released under MIT license \n * Based on Underscore.js 1.8.3 \n * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n */\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0,\n MAX_INTEGER = 1.7976931348623157e+308,\n NAN = 0 / 0;\n\n/** `Object#toString` result references. */\nvar symbolTag = '[object Symbol]';\n\n/** Used to match leading and trailing whitespace. */\nvar reTrim = /^\\s+|\\s+$/g;\n\n/** Used to detect bad signed hexadecimal string values. */\nvar reIsBadHex = /^[-+]0x[0-9a-f]+$/i;\n\n/** Used to detect binary string values. */\nvar reIsBinary = /^0b[01]+$/i;\n\n/** Used to detect octal string values. */\nvar reIsOctal = /^0o[0-7]+$/i;\n\n/** Built-in method references without a dependency on `root`. */\nvar freeParseInt = parseInt;\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar objectToString = objectProto.toString;\n\n/**\n * Checks if `value` is an integer.\n *\n * **Note:** This method is based on\n * [`Number.isInteger`](https://mdn.io/Number/isInteger).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an integer, else `false`.\n * @example\n *\n * _.isInteger(3);\n * // => true\n *\n * _.isInteger(Number.MIN_VALUE);\n * // => false\n *\n * _.isInteger(Infinity);\n * // => false\n *\n * _.isInteger('3');\n * // => false\n */\nfunction isInteger(value) {\n return typeof value == 'number' && value == toInteger(value);\n}\n\n/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return !!value && (type == 'object' || type == 'function');\n}\n\n/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return !!value && typeof value == 'object';\n}\n\n/**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\nfunction isSymbol(value) {\n return typeof value == 'symbol' ||\n (isObjectLike(value) && objectToString.call(value) == symbolTag);\n}\n\n/**\n * Converts `value` to a finite number.\n *\n * @static\n * @memberOf _\n * @since 4.12.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {number} Returns the converted number.\n * @example\n *\n * _.toFinite(3.2);\n * // => 3.2\n *\n * _.toFinite(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toFinite(Infinity);\n * // => 1.7976931348623157e+308\n *\n * _.toFinite('3.2');\n * // => 3.2\n */\nfunction toFinite(value) {\n if (!value) {\n return value === 0 ? value : 0;\n }\n value = toNumber(value);\n if (value === INFINITY || value === -INFINITY) {\n var sign = (value < 0 ? -1 : 1);\n return sign * MAX_INTEGER;\n }\n return value === value ? value : 0;\n}\n\n/**\n * Converts `value` to an integer.\n *\n * **Note:** This method is loosely based on\n * [`ToInteger`](http://www.ecma-international.org/ecma-262/7.0/#sec-tointeger).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {number} Returns the converted integer.\n * @example\n *\n * _.toInteger(3.2);\n * // => 3\n *\n * _.toInteger(Number.MIN_VALUE);\n * // => 0\n *\n * _.toInteger(Infinity);\n * // => 1.7976931348623157e+308\n *\n * _.toInteger('3.2');\n * // => 3\n */\nfunction toInteger(value) {\n var result = toFinite(value),\n remainder = result % 1;\n\n return result === result ? (remainder ? result - remainder : result) : 0;\n}\n\n/**\n * Converts `value` to a number.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to process.\n * @returns {number} Returns the number.\n * @example\n *\n * _.toNumber(3.2);\n * // => 3.2\n *\n * _.toNumber(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toNumber(Infinity);\n * // => Infinity\n *\n * _.toNumber('3.2');\n * // => 3.2\n */\nfunction toNumber(value) {\n if (typeof value == 'number') {\n return value;\n }\n if (isSymbol(value)) {\n return NAN;\n }\n if (isObject(value)) {\n var other = typeof value.valueOf == 'function' ? value.valueOf() : value;\n value = isObject(other) ? (other + '') : other;\n }\n if (typeof value != 'string') {\n return value === 0 ? value : +value;\n }\n value = value.replace(reTrim, '');\n var isBinary = reIsBinary.test(value);\n return (isBinary || reIsOctal.test(value))\n ? freeParseInt(value.slice(2), isBinary ? 2 : 8)\n : (reIsBadHex.test(value) ? NAN : +value);\n}\n\nmodule.exports = isInteger;\n","/**\n * lodash 3.0.3 (Custom Build) \n * Build: `lodash modularize exports=\"npm\" -o ./`\n * Copyright 2012-2016 The Dojo Foundation \n * Based on Underscore.js 1.8.3 \n * Copyright 2009-2016 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n * Available under MIT license \n */\n\n/** `Object#toString` result references. */\nvar numberTag = '[object Number]';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the [`toStringTag`](http://ecma-international.org/ecma-262/6.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar objectToString = objectProto.toString;\n\n/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return !!value && typeof value == 'object';\n}\n\n/**\n * Checks if `value` is classified as a `Number` primitive or object.\n *\n * **Note:** To exclude `Infinity`, `-Infinity`, and `NaN`, which are classified\n * as numbers, use the `_.isFinite` method.\n *\n * @static\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is correctly classified, else `false`.\n * @example\n *\n * _.isNumber(3);\n * // => true\n *\n * _.isNumber(Number.MIN_VALUE);\n * // => true\n *\n * _.isNumber(Infinity);\n * // => true\n *\n * _.isNumber('3');\n * // => false\n */\nfunction isNumber(value) {\n return typeof value == 'number' ||\n (isObjectLike(value) && objectToString.call(value) == numberTag);\n}\n\nmodule.exports = isNumber;\n","/**\n * lodash (Custom Build) \n * Build: `lodash modularize exports=\"npm\" -o ./`\n * Copyright jQuery Foundation and other contributors \n * Released under MIT license \n * Based on Underscore.js 1.8.3 \n * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n */\n\n/** `Object#toString` result references. */\nvar objectTag = '[object Object]';\n\n/**\n * Checks if `value` is a host object in IE < 9.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a host object, else `false`.\n */\nfunction isHostObject(value) {\n // Many host objects are `Object` objects that can coerce to strings\n // despite having improperly defined `toString` methods.\n var result = false;\n if (value != null && typeof value.toString != 'function') {\n try {\n result = !!(value + '');\n } catch (e) {}\n }\n return result;\n}\n\n/**\n * Creates a unary function that invokes `func` with its argument transformed.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {Function} transform The argument transform.\n * @returns {Function} Returns the new function.\n */\nfunction overArg(func, transform) {\n return function(arg) {\n return func(transform(arg));\n };\n}\n\n/** Used for built-in method references. */\nvar funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Used to infer the `Object` constructor. */\nvar objectCtorString = funcToString.call(Object);\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar objectToString = objectProto.toString;\n\n/** Built-in value references. */\nvar getPrototype = overArg(Object.getPrototypeOf, Object);\n\n/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return !!value && typeof value == 'object';\n}\n\n/**\n * Checks if `value` is a plain object, that is, an object created by the\n * `Object` constructor or one with a `[[Prototype]]` of `null`.\n *\n * @static\n * @memberOf _\n * @since 0.8.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a plain object, else `false`.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * }\n *\n * _.isPlainObject(new Foo);\n * // => false\n *\n * _.isPlainObject([1, 2, 3]);\n * // => false\n *\n * _.isPlainObject({ 'x': 0, 'y': 0 });\n * // => true\n *\n * _.isPlainObject(Object.create(null));\n * // => true\n */\nfunction isPlainObject(value) {\n if (!isObjectLike(value) ||\n objectToString.call(value) != objectTag || isHostObject(value)) {\n return false;\n }\n var proto = getPrototype(value);\n if (proto === null) {\n return true;\n }\n var Ctor = hasOwnProperty.call(proto, 'constructor') && proto.constructor;\n return (typeof Ctor == 'function' &&\n Ctor instanceof Ctor && funcToString.call(Ctor) == objectCtorString);\n}\n\nmodule.exports = isPlainObject;\n","/**\n * lodash 4.0.1 (Custom Build) \n * Build: `lodash modularize exports=\"npm\" -o ./`\n * Copyright 2012-2016 The Dojo Foundation \n * Based on Underscore.js 1.8.3 \n * Copyright 2009-2016 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n * Available under MIT license \n */\n\n/** `Object#toString` result references. */\nvar stringTag = '[object String]';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the [`toStringTag`](http://ecma-international.org/ecma-262/6.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar objectToString = objectProto.toString;\n\n/**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @type Function\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is correctly classified, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\nvar isArray = Array.isArray;\n\n/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return !!value && typeof value == 'object';\n}\n\n/**\n * Checks if `value` is classified as a `String` primitive or object.\n *\n * @static\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is correctly classified, else `false`.\n * @example\n *\n * _.isString('abc');\n * // => true\n *\n * _.isString(1);\n * // => false\n */\nfunction isString(value) {\n return typeof value == 'string' ||\n (!isArray(value) && isObjectLike(value) && objectToString.call(value) == stringTag);\n}\n\nmodule.exports = isString;\n","/**\n * lodash (Custom Build) \n * Build: `lodash modularize exports=\"npm\" -o ./`\n * Copyright jQuery Foundation and other contributors \n * Released under MIT license \n * Based on Underscore.js 1.8.3 \n * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n */\n\n/** Used as the `TypeError` message for \"Functions\" methods. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0,\n MAX_INTEGER = 1.7976931348623157e+308,\n NAN = 0 / 0;\n\n/** `Object#toString` result references. */\nvar symbolTag = '[object Symbol]';\n\n/** Used to match leading and trailing whitespace. */\nvar reTrim = /^\\s+|\\s+$/g;\n\n/** Used to detect bad signed hexadecimal string values. */\nvar reIsBadHex = /^[-+]0x[0-9a-f]+$/i;\n\n/** Used to detect binary string values. */\nvar reIsBinary = /^0b[01]+$/i;\n\n/** Used to detect octal string values. */\nvar reIsOctal = /^0o[0-7]+$/i;\n\n/** Built-in method references without a dependency on `root`. */\nvar freeParseInt = parseInt;\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar objectToString = objectProto.toString;\n\n/**\n * Creates a function that invokes `func`, with the `this` binding and arguments\n * of the created function, while it's called less than `n` times. Subsequent\n * calls to the created function return the result of the last `func` invocation.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Function\n * @param {number} n The number of calls at which `func` is no longer invoked.\n * @param {Function} func The function to restrict.\n * @returns {Function} Returns the new restricted function.\n * @example\n *\n * jQuery(element).on('click', _.before(5, addContactToList));\n * // => Allows adding up to 4 contacts to the list.\n */\nfunction before(n, func) {\n var result;\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n n = toInteger(n);\n return function() {\n if (--n > 0) {\n result = func.apply(this, arguments);\n }\n if (n <= 1) {\n func = undefined;\n }\n return result;\n };\n}\n\n/**\n * Creates a function that is restricted to invoking `func` once. Repeat calls\n * to the function return the value of the first invocation. The `func` is\n * invoked with the `this` binding and arguments of the created function.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to restrict.\n * @returns {Function} Returns the new restricted function.\n * @example\n *\n * var initialize = _.once(createApplication);\n * initialize();\n * initialize();\n * // => `createApplication` is invoked once\n */\nfunction once(func) {\n return before(2, func);\n}\n\n/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return !!value && (type == 'object' || type == 'function');\n}\n\n/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return !!value && typeof value == 'object';\n}\n\n/**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\nfunction isSymbol(value) {\n return typeof value == 'symbol' ||\n (isObjectLike(value) && objectToString.call(value) == symbolTag);\n}\n\n/**\n * Converts `value` to a finite number.\n *\n * @static\n * @memberOf _\n * @since 4.12.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {number} Returns the converted number.\n * @example\n *\n * _.toFinite(3.2);\n * // => 3.2\n *\n * _.toFinite(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toFinite(Infinity);\n * // => 1.7976931348623157e+308\n *\n * _.toFinite('3.2');\n * // => 3.2\n */\nfunction toFinite(value) {\n if (!value) {\n return value === 0 ? value : 0;\n }\n value = toNumber(value);\n if (value === INFINITY || value === -INFINITY) {\n var sign = (value < 0 ? -1 : 1);\n return sign * MAX_INTEGER;\n }\n return value === value ? value : 0;\n}\n\n/**\n * Converts `value` to an integer.\n *\n * **Note:** This method is loosely based on\n * [`ToInteger`](http://www.ecma-international.org/ecma-262/7.0/#sec-tointeger).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {number} Returns the converted integer.\n * @example\n *\n * _.toInteger(3.2);\n * // => 3\n *\n * _.toInteger(Number.MIN_VALUE);\n * // => 0\n *\n * _.toInteger(Infinity);\n * // => 1.7976931348623157e+308\n *\n * _.toInteger('3.2');\n * // => 3\n */\nfunction toInteger(value) {\n var result = toFinite(value),\n remainder = result % 1;\n\n return result === result ? (remainder ? result - remainder : result) : 0;\n}\n\n/**\n * Converts `value` to a number.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to process.\n * @returns {number} Returns the number.\n * @example\n *\n * _.toNumber(3.2);\n * // => 3.2\n *\n * _.toNumber(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toNumber(Infinity);\n * // => Infinity\n *\n * _.toNumber('3.2');\n * // => 3.2\n */\nfunction toNumber(value) {\n if (typeof value == 'number') {\n return value;\n }\n if (isSymbol(value)) {\n return NAN;\n }\n if (isObject(value)) {\n var other = typeof value.valueOf == 'function' ? value.valueOf() : value;\n value = isObject(other) ? (other + '') : other;\n }\n if (typeof value != 'string') {\n return value === 0 ? value : +value;\n }\n value = value.replace(reTrim, '');\n var isBinary = reIsBinary.test(value);\n return (isBinary || reIsOctal.test(value))\n ? freeParseInt(value.slice(2), isBinary ? 2 : 8)\n : (reIsBadHex.test(value) ? NAN : +value);\n}\n\nmodule.exports = once;\n","const timespan = require('./lib/timespan');\nconst PS_SUPPORTED = require('./lib/psSupported');\nconst validateAsymmetricKey = require('./lib/validateAsymmetricKey');\nconst jws = require('jws');\nconst includes = require('lodash.includes');\nconst isBoolean = require('lodash.isboolean');\nconst isInteger = require('lodash.isinteger');\nconst isNumber = require('lodash.isnumber');\nconst isPlainObject = require('lodash.isplainobject');\nconst isString = require('lodash.isstring');\nconst once = require('lodash.once');\nconst { KeyObject, createSecretKey, createPrivateKey } = require('crypto')\n\nconst SUPPORTED_ALGS = ['RS256', 'RS384', 'RS512', 'ES256', 'ES384', 'ES512', 'HS256', 'HS384', 'HS512', 'none'];\nif (PS_SUPPORTED) {\n SUPPORTED_ALGS.splice(3, 0, 'PS256', 'PS384', 'PS512');\n}\n\nconst sign_options_schema = {\n expiresIn: { isValid: function(value) { return isInteger(value) || (isString(value) && value); }, message: '\"expiresIn\" should be a number of seconds or string representing a timespan' },\n notBefore: { isValid: function(value) { return isInteger(value) || (isString(value) && value); }, message: '\"notBefore\" should be a number of seconds or string representing a timespan' },\n audience: { isValid: function(value) { return isString(value) || Array.isArray(value); }, message: '\"audience\" must be a string or array' },\n algorithm: { isValid: includes.bind(null, SUPPORTED_ALGS), message: '\"algorithm\" must be a valid string enum value' },\n header: { isValid: isPlainObject, message: '\"header\" must be an object' },\n encoding: { isValid: isString, message: '\"encoding\" must be a string' },\n issuer: { isValid: isString, message: '\"issuer\" must be a string' },\n subject: { isValid: isString, message: '\"subject\" must be a string' },\n jwtid: { isValid: isString, message: '\"jwtid\" must be a string' },\n noTimestamp: { isValid: isBoolean, message: '\"noTimestamp\" must be a boolean' },\n keyid: { isValid: isString, message: '\"keyid\" must be a string' },\n mutatePayload: { isValid: isBoolean, message: '\"mutatePayload\" must be a boolean' },\n allowInsecureKeySizes: { isValid: isBoolean, message: '\"allowInsecureKeySizes\" must be a boolean'},\n allowInvalidAsymmetricKeyTypes: { isValid: isBoolean, message: '\"allowInvalidAsymmetricKeyTypes\" must be a boolean'}\n};\n\nconst registered_claims_schema = {\n iat: { isValid: isNumber, message: '\"iat\" should be a number of seconds' },\n exp: { isValid: isNumber, message: '\"exp\" should be a number of seconds' },\n nbf: { isValid: isNumber, message: '\"nbf\" should be a number of seconds' }\n};\n\nfunction validate(schema, allowUnknown, object, parameterName) {\n if (!isPlainObject(object)) {\n throw new Error('Expected \"' + parameterName + '\" to be a plain object.');\n }\n Object.keys(object)\n .forEach(function(key) {\n const validator = schema[key];\n if (!validator) {\n if (!allowUnknown) {\n throw new Error('\"' + key + '\" is not allowed in \"' + parameterName + '\"');\n }\n return;\n }\n if (!validator.isValid(object[key])) {\n throw new Error(validator.message);\n }\n });\n}\n\nfunction validateOptions(options) {\n return validate(sign_options_schema, false, options, 'options');\n}\n\nfunction validatePayload(payload) {\n return validate(registered_claims_schema, true, payload, 'payload');\n}\n\nconst options_to_payload = {\n 'audience': 'aud',\n 'issuer': 'iss',\n 'subject': 'sub',\n 'jwtid': 'jti'\n};\n\nconst options_for_objects = [\n 'expiresIn',\n 'notBefore',\n 'noTimestamp',\n 'audience',\n 'issuer',\n 'subject',\n 'jwtid',\n];\n\nmodule.exports = function (payload, secretOrPrivateKey, options, callback) {\n if (typeof options === 'function') {\n callback = options;\n options = {};\n } else {\n options = options || {};\n }\n\n const isObjectPayload = typeof payload === 'object' &&\n !Buffer.isBuffer(payload);\n\n const header = Object.assign({\n alg: options.algorithm || 'HS256',\n typ: isObjectPayload ? 'JWT' : undefined,\n kid: options.keyid\n }, options.header);\n\n function failure(err) {\n if (callback) {\n return callback(err);\n }\n throw err;\n }\n\n if (!secretOrPrivateKey && options.algorithm !== 'none') {\n return failure(new Error('secretOrPrivateKey must have a value'));\n }\n\n if (secretOrPrivateKey != null && !(secretOrPrivateKey instanceof KeyObject)) {\n try {\n secretOrPrivateKey = createPrivateKey(secretOrPrivateKey)\n } catch (_) {\n try {\n secretOrPrivateKey = createSecretKey(typeof secretOrPrivateKey === 'string' ? Buffer.from(secretOrPrivateKey) : secretOrPrivateKey)\n } catch (_) {\n return failure(new Error('secretOrPrivateKey is not valid key material'));\n }\n }\n }\n\n if (header.alg.startsWith('HS') && secretOrPrivateKey.type !== 'secret') {\n return failure(new Error((`secretOrPrivateKey must be a symmetric key when using ${header.alg}`)))\n } else if (/^(?:RS|PS|ES)/.test(header.alg)) {\n if (secretOrPrivateKey.type !== 'private') {\n return failure(new Error((`secretOrPrivateKey must be an asymmetric key when using ${header.alg}`)))\n }\n if (!options.allowInsecureKeySizes &&\n !header.alg.startsWith('ES') &&\n secretOrPrivateKey.asymmetricKeyDetails !== undefined && //KeyObject.asymmetricKeyDetails is supported in Node 15+\n secretOrPrivateKey.asymmetricKeyDetails.modulusLength < 2048) {\n return failure(new Error(`secretOrPrivateKey has a minimum key size of 2048 bits for ${header.alg}`));\n }\n }\n\n if (typeof payload === 'undefined') {\n return failure(new Error('payload is required'));\n } else if (isObjectPayload) {\n try {\n validatePayload(payload);\n }\n catch (error) {\n return failure(error);\n }\n if (!options.mutatePayload) {\n payload = Object.assign({},payload);\n }\n } else {\n const invalid_options = options_for_objects.filter(function (opt) {\n return typeof options[opt] !== 'undefined';\n });\n\n if (invalid_options.length > 0) {\n return failure(new Error('invalid ' + invalid_options.join(',') + ' option for ' + (typeof payload ) + ' payload'));\n }\n }\n\n if (typeof payload.exp !== 'undefined' && typeof options.expiresIn !== 'undefined') {\n return failure(new Error('Bad \"options.expiresIn\" option the payload already has an \"exp\" property.'));\n }\n\n if (typeof payload.nbf !== 'undefined' && typeof options.notBefore !== 'undefined') {\n return failure(new Error('Bad \"options.notBefore\" option the payload already has an \"nbf\" property.'));\n }\n\n try {\n validateOptions(options);\n }\n catch (error) {\n return failure(error);\n }\n\n if (!options.allowInvalidAsymmetricKeyTypes) {\n try {\n validateAsymmetricKey(header.alg, secretOrPrivateKey);\n } catch (error) {\n return failure(error);\n }\n }\n\n const timestamp = payload.iat || Math.floor(Date.now() / 1000);\n\n if (options.noTimestamp) {\n delete payload.iat;\n } else if (isObjectPayload) {\n payload.iat = timestamp;\n }\n\n if (typeof options.notBefore !== 'undefined') {\n try {\n payload.nbf = timespan(options.notBefore, timestamp);\n }\n catch (err) {\n return failure(err);\n }\n if (typeof payload.nbf === 'undefined') {\n return failure(new Error('\"notBefore\" should be a number of seconds or string representing a timespan eg: \"1d\", \"20h\", 60'));\n }\n }\n\n if (typeof options.expiresIn !== 'undefined' && typeof payload === 'object') {\n try {\n payload.exp = timespan(options.expiresIn, timestamp);\n }\n catch (err) {\n return failure(err);\n }\n if (typeof payload.exp === 'undefined') {\n return failure(new Error('\"expiresIn\" should be a number of seconds or string representing a timespan eg: \"1d\", \"20h\", 60'));\n }\n }\n\n Object.keys(options_to_payload).forEach(function (key) {\n const claim = options_to_payload[key];\n if (typeof options[key] !== 'undefined') {\n if (typeof payload[claim] !== 'undefined') {\n return failure(new Error('Bad \"options.' + key + '\" option. The payload already has an \"' + claim + '\" property.'));\n }\n payload[claim] = options[key];\n }\n });\n\n const encoding = options.encoding || 'utf8';\n\n if (typeof callback === 'function') {\n callback = callback && once(callback);\n\n jws.createSign({\n header: header,\n privateKey: secretOrPrivateKey,\n payload: payload,\n encoding: encoding\n }).once('error', callback)\n .once('done', function (signature) {\n // TODO: Remove in favor of the modulus length check before signing once node 15+ is the minimum supported version\n if(!options.allowInsecureKeySizes && /^(?:RS|PS)/.test(header.alg) && signature.length < 256) {\n return callback(new Error(`secretOrPrivateKey has a minimum key size of 2048 bits for ${header.alg}`))\n }\n callback(null, signature);\n });\n } else {\n let signature = jws.sign({header: header, payload: payload, secret: secretOrPrivateKey, encoding: encoding});\n // TODO: Remove in favor of the modulus length check before signing once node 15+ is the minimum supported version\n if(!options.allowInsecureKeySizes && /^(?:RS|PS)/.test(header.alg) && signature.length < 256) {\n throw new Error(`secretOrPrivateKey has a minimum key size of 2048 bits for ${header.alg}`)\n }\n return signature\n }\n};\n","module.exports = {\n decode: require('./decode'),\n verify: require('./verify'),\n sign: require('./sign'),\n JsonWebTokenError: require('./lib/JsonWebTokenError'),\n NotBeforeError: require('./lib/NotBeforeError'),\n TokenExpiredError: require('./lib/TokenExpiredError'),\n};\n","import axios from \"axios\";\nimport jwt from \"jsonwebtoken\";\nimport { r as redirect } from \"./index.js\";\nfunction generateAuthLink(tenantUrl) {\n return `${tenantUrl}/oauth/authorize?client_id=sailpoint-cli&response_type=code&redirect_uri=http://localhost:3000/callback`;\n}\nasync function refreshToken(apiUrl, refreshToken2) {\n const url = `${apiUrl}/oauth/token?grant_type=refresh_token&client_id=sailpoint-cli&refresh_token=${refreshToken2}`;\n const response = await axios.post(url).catch(function(err) {\n if (err.response) {\n console.log(err.response.data);\n console.log(err.response.status);\n console.log(err.response.headers);\n }\n return void 0;\n });\n const idnSession = response.data;\n return idnSession;\n}\nasync function getToken(cookies) {\n const idnSession = JSON.parse(cookies.get(\"idnSession\"));\n const session = JSON.parse(cookies.get(\"session\"));\n if (!idnSession && session) {\n throw redirect(302, generateAuthLink(session.tenantUrl));\n }\n if (!idnSession && !session) {\n throw redirect(302, \"/\");\n }\n if (isJwtExpired(idnSession.access_token)) {\n console.log(\"refreshing token\");\n const newSession = await refreshToken(session.baseUrl, idnSession.refresh_token);\n cookies.set(\"idnSession\", JSON.stringify(newSession));\n return Promise.resolve(newSession);\n } else {\n console.log(\"token is good\");\n return Promise.resolve(idnSession);\n }\n}\nfunction isJwtExpired(token) {\n try {\n const decodedToken = jwt.decode(token, { complete: true });\n if (!decodedToken || !decodedToken.payload || !decodedToken.payload.exp) {\n return true;\n }\n const expirationTimestamp = decodedToken.payload.exp;\n const currentTimestamp = Math.floor(Date.now() / 1e3);\n return currentTimestamp >= expirationTimestamp;\n } catch (error) {\n return true;\n }\n}\nexport {\n generateAuthLink as a,\n getToken as g\n};\n"],"names":["utils","prototype","Stream","require$$0","require$$1","require$$2","serialOrderedModule","serialOrdered","http","require$$3","require$$5","require$$6","require$$7","require$$8","require$$9","require$$10","PlatformFormData","encode","url","FormData","platform","defaults","AxiosHeaders","srcModule","debug_1","require$$4","followRedirectsModule","stream","readBlob","getProxyForUrl","callbackify","formDataToStream","util","AxiosTransformStream","https","ZlibHeaderTransformStream","validators","InterceptorManager","Axios","CancelToken","HttpStatusCode","semver","require$$11","require$$12","require$$13","require$$14","require$$15","require$$16","require$$17","require$$18","require$$19","require$$20","require$$21","require$$22","require$$23","require$$24","require$$25","require$$26","require$$27","require$$28","require$$29","require$$30","require$$31","require$$32","require$$33","require$$34","require$$35","require$$36","require$$37","require$$38","require$$39","require$$40","axios"],"mappings":"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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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V,GAAC,SAAS;AACV,GAAC,SAAS;AACV,GAAC,SAAS;AACV,GAAC,SAAS;AACV,GAAC,SAAS;AACV,GAAC,SAAS;AACV,GAAC,SAAS;AACV,GAAC,SAAS;AACV,GAAC,SAAS;AACV,GAAC,SAAS;AACV,GAAC,SAAS;AACV,GAAC,SAAS;AACV,GAAC,SAAS;AACV,GAAC,SAAS;AACV,GAAC,SAAS;AACV,GAAC,SAAS;AACV,GAAC,SAAS;AACV,GAAC,SAAS;AACV,GAAC,SAAS;AACV,GAAC,SAAS;AACV,GAAC,SAAS;AACV,GAAC,SAAS;AACV,GAAC,SAAS;AACV,GAAC,SAAS;AACV,GAAC,SAAS;AACV,GAAC,SAAS;AACV,GAAC,SAAS;AACV,GAAC,SAAS;AACV,GAAC,SAAS;AACV,GAAC,SAAS;AACV,GAAC,SAAS;AACV,GAAC,SAAS;AACV,GAAC,SAAS;AACV,GAAC,SAAS;AACV,GAAC,SAAS;AACV,GAAC,SAAS;AACV,GAAC,SAAS;AACV,GAAC,SAAS;AACV,GAAC,SAAS;AACV,GAAC,SAAS;AACV,GAAC,SAAS;AACV,GAAC,SAAS;AACV,GAAC,SAAS;AACV,GAAC,SAAS;AACV,GAAC,SAAS;AACV,GAAC,SAAS;AACV,GAAC,SAAS;AACV,GAAC,SAAS;AACV,GAAC,SAAS;AACV,GAAC,SAAS;AACV,GAAC,SAAS;AACV,GAAC,SAAS;AACV,GAAC,SAAS;AACV,GAAC,SAAS;AACV,GAAC,SAAS;AACV,GAAC,SAAS;AACV,GAAC,SAAS;AACV,GAAC,SAAS;AACV,GAAC,SAAS;AACV,GAAC,SAAS;AACV,GAAC,SAAS;AACV,GAAC,SAAS;AACV,GAAC,SAAS;AACV,GAAC,SAAS;AACV,GAAC,SAAS;AACV,GAAC,SAAS;AACV,GAAC,SAAS;AACV,GAAC,SAAS;AACV,GAAC,SAAS;AACV,GAAC,SAAS;AACV,GAAC,SAAS;AACV,GAAC,SAAS;AACV,GAAC,SAAS;AACV,GAAC,SAAS;AACV,GAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAA,SAAS,SAAS,GAAG;AACrB;AACA;AACA;GACC,IAAI,OAAO,MAAM,KAAK,WAAW,IAAI,MAAM,CAAC,OAAO,KAAK,MAAM,CAAC,OAAO,CAAC,IAAI,KAAK,UAAU,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;IACrH,OAAO,IAAI,CAAC;IACZ;AACF;AACA;GACC,IAAI,OAAO,SAAS,KAAK,WAAW,IAAI,SAAS,CAAC,SAAS,IAAI,SAAS,CAAC,SAAS,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,uBAAuB,CAAC,EAAE;IAChI,OAAO,KAAK,CAAC;IACb;AACF;AACA;AACA;GACC,OAAO,CAAC,OAAO,QAAQ,KAAK,WAAW,IAAI,QAAQ,CAAC,eAAe,IAAI,QAAQ,CAAC,eAAe,CAAC,KAAK,IAAI,QAAQ,CAAC,eAAe,CAAC,KAAK,CAAC,gBAAgB;AACzJ;AACA,KAAG,OAAO,MAAM,KAAK,WAAW,IAAI,MAAM,CAAC,OAAO,KAAK,MAAM,CAAC,OAAO,CAAC,OAAO,KAAK,MAAM,CAAC,OAAO,CAAC,SAAS,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;AACrI;AACA;AACA,KAAG,OAAO,SAAS,KAAK,WAAW,IAAI,SAAS,CAAC,SAAS,IAAI,SAAS,CAAC,SAAS,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,gBAAgB,CAAC,IAAI,QAAQ,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,CAAC,IAAI,EAAE,CAAC;AACzJ;KACG,OAAO,SAAS,KAAK,WAAW,IAAI,SAAS,CAAC,SAAS,IAAI,SAAS,CAAC,SAAS,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAC,CAAC;GAC5H;AACD;AACA;AACA;AACA;AACA;AACA;AACA;EACA,SAAS,UAAU,CAAC,IAAI,EAAE;AAC1B,GAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,GAAG,IAAI,GAAG,EAAE;IACpC,IAAI,CAAC,SAAS;AAChB,KAAG,IAAI,CAAC,SAAS,GAAG,KAAK,GAAG,GAAG,CAAC;IAC9B,IAAI,CAAC,CAAC,CAAC;AACT,KAAG,IAAI,CAAC,SAAS,GAAG,KAAK,GAAG,GAAG,CAAC;AAChC,IAAE,GAAG,GAAG,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC3C;AACA,GAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;AACtB,IAAE,OAAO;IACP;AACF;GACC,MAAM,CAAC,GAAG,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC;AAClC,GAAC,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,gBAAgB,CAAC,CAAC;AACxC;AACA;AACA;AACA;AACA,GAAC,IAAI,KAAK,GAAG,CAAC,CAAC;AACf,GAAC,IAAI,KAAK,GAAG,CAAC,CAAC;GACd,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,aAAa,EAAE,KAAK,IAAI;AACzC,IAAE,IAAI,KAAK,KAAK,IAAI,EAAE;AACtB,KAAG,OAAO;KACP;IACD,KAAK,EAAE,CAAC;AACV,IAAE,IAAI,KAAK,KAAK,IAAI,EAAE;AACtB;AACA;KACG,KAAK,GAAG,KAAK,CAAC;KACd;AACH,IAAE,CAAC,CAAC;AACJ;GACC,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;GACzB;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACA,OAAc,CAAA,GAAA,GAAA,OAAO,CAAC,KAAK,IAAI,OAAO,CAAC,GAAG,KAAK,MAAM,EAAE,CAAC,CAAC;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;EACA,SAAS,IAAI,CAAC,UAAU,EAAE;AAC1B,GAAC,IAAI;IACH,IAAI,UAAU,EAAE;KACf,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;AAChD,KAAG,MAAM;KACN,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;KACpC;IACD,CAAC,OAAO,KAAK,EAAE;AACjB;AACA;IACE;GACD;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAA,SAAS,IAAI,GAAG;GACf,IAAI,CAAC,CAAC;AACP,GAAC,IAAI;IACH,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IACrC,CAAC,OAAO,KAAK,EAAE;AACjB;AACA;IACE;AACF;AACA;AACA,GAAC,IAAI,CAAC,CAAC,IAAI,OAAO,OAAO,KAAK,WAAW,IAAI,KAAK,IAAI,OAAO,EAAE;AAC/D,IAAE,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC;IACtB;AACF;GACC,OAAO,CAAC,CAAC;GACT;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAA,SAAS,YAAY,GAAG;AACxB,GAAC,IAAI;AACL;AACA;IACE,OAAO,YAAY,CAAC;IACpB,CAAC,OAAO,KAAK,EAAE;AACjB;AACA;IACE;GACD;AACD;AACA,EAAA,MAAA,CAAA,OAAA,GAAiBA,aAAmB,EAAA,CAAC,OAAO,CAAC,CAAC;AAC9C;AACA,EAAA,MAAM,CAAC,UAAU,CAAC,GAAG,MAAM,CAAC,OAAO,CAAC;AACpC;AACA;AACA;AACA;AACA;AACA,EAAA,UAAU,CAAC,CAAC,GAAG,UAAU,CAAC,EAAE;AAC5B,GAAC,IAAI;AACL,IAAE,OAAO,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;IACzB,CAAC,OAAO,KAAK,EAAE;AACjB,IAAE,OAAO,8BAA8B,GAAG,KAAK,CAAC,OAAO,CAAC;IACtD;GACD,CAAA;;;;;;;;;;;;;AC3QD;AACA,CAAc,OAAA,GAAG,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,IAAI,KAAK;EAC/C,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,GAAG,GAAG,GAAG,IAAI,CAAC,CAAC;EAC5E,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;EAC7C,MAAM,kBAAkB,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;AAC/C,EAAC,OAAO,QAAQ,KAAK,CAAC,CAAC,KAAK,kBAAkB,KAAK,CAAC,CAAC,IAAI,QAAQ,GAAG,kBAAkB,CAAC,CAAC;EACvF,CAAA;;;;;;;;;;CCND,MAAM,EAAE,GAAGA,YAAa,CAAC;CACzB,MAAM,GAAG,GAAGC,YAAc,CAAC;CAC3B,MAAM,OAAO,GAAGC,cAAA,EAAmB,CAAC;AACpC;AACA,CAAA,MAAM,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC;AACtB;AACA,CAAA,IAAI,UAAU,CAAC;CACf,IAAI,OAAO,CAAC,UAAU,CAAC;EACtB,OAAO,CAAC,WAAW,CAAC;EACpB,OAAO,CAAC,aAAa,CAAC;AACvB,EAAC,OAAO,CAAC,aAAa,CAAC,EAAE;EACxB,UAAU,GAAG,CAAC,CAAC;AAChB,EAAC,MAAM,IAAI,OAAO,CAAC,OAAO,CAAC;EAC1B,OAAO,CAAC,QAAQ,CAAC;EACjB,OAAO,CAAC,YAAY,CAAC;AACtB,EAAC,OAAO,CAAC,cAAc,CAAC,EAAE;EACzB,UAAU,GAAG,CAAC,CAAC;EACf;AACD;CACA,IAAI,aAAa,IAAI,GAAG,EAAE;AAC1B,EAAC,IAAI,GAAG,CAAC,WAAW,KAAK,MAAM,EAAE;GAC/B,UAAU,GAAG,CAAC,CAAC;AACjB,GAAE,MAAM,IAAI,GAAG,CAAC,WAAW,KAAK,OAAO,EAAE;GACvC,UAAU,GAAG,CAAC,CAAC;AACjB,GAAE,MAAM;GACN,UAAU,GAAG,GAAG,CAAC,WAAW,CAAC,MAAM,KAAK,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,WAAW,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;GAC3F;EACD;AACD;CACA,SAAS,cAAc,CAAC,KAAK,EAAE;AAC/B,EAAC,IAAI,KAAK,KAAK,CAAC,EAAE;GAChB,OAAO,KAAK,CAAC;GACb;AACF;AACA,EAAC,OAAO;AACR,GAAE,KAAK;GACL,QAAQ,EAAE,IAAI;AAChB,GAAE,MAAM,EAAE,KAAK,IAAI,CAAC;AACpB,GAAE,MAAM,EAAE,KAAK,IAAI,CAAC;AACpB,GAAE,CAAC;EACF;AACD;AACA,CAAA,SAAS,aAAa,CAAC,UAAU,EAAE,WAAW,EAAE;AAChD,EAAC,IAAI,UAAU,KAAK,CAAC,EAAE;GACrB,OAAO,CAAC,CAAC;GACT;AACF;AACA,EAAC,IAAI,OAAO,CAAC,WAAW,CAAC;GACvB,OAAO,CAAC,YAAY,CAAC;AACvB,GAAE,OAAO,CAAC,iBAAiB,CAAC,EAAE;GAC5B,OAAO,CAAC,CAAC;GACT;AACF;AACA,EAAC,IAAI,OAAO,CAAC,WAAW,CAAC,EAAE;GACzB,OAAO,CAAC,CAAC;GACT;AACF;EACC,IAAI,UAAU,IAAI,CAAC,WAAW,IAAI,UAAU,KAAK,SAAS,EAAE;GAC3D,OAAO,CAAC,CAAC;GACT;AACF;AACA,EAAC,MAAM,GAAG,GAAG,UAAU,IAAI,CAAC,CAAC;AAC7B;AACA,EAAC,IAAI,GAAG,CAAC,IAAI,KAAK,MAAM,EAAE;GACxB,OAAO,GAAG,CAAC;GACX;AACF;AACA,EAAC,IAAI,OAAO,CAAC,QAAQ,KAAK,OAAO,EAAE;AACnC;AACA;AACA,GAAE,MAAM,SAAS,GAAG,EAAE,CAAC,OAAO,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;GAC1C;IACC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE;IAC1B,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK;KAC5B;AACJ,IAAG,OAAO,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,GAAG,CAAC,GAAG,CAAC,CAAC;IAC7C;AACH;GACE,OAAO,CAAC,CAAC;GACT;AACF;AACA,EAAC,IAAI,IAAI,IAAI,GAAG,EAAE;AAClB,GAAE,IAAI,CAAC,QAAQ,EAAE,UAAU,EAAE,UAAU,EAAE,WAAW,EAAE,gBAAgB,EAAE,WAAW,CAAC,CAAC,IAAI,CAAC,IAAI,IAAI,IAAI,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,OAAO,KAAK,UAAU,EAAE;IAC3I,OAAO,CAAC,CAAC;IACT;AACH;GACE,OAAO,GAAG,CAAC;GACX;AACF;AACA,EAAC,IAAI,kBAAkB,IAAI,GAAG,EAAE;AAChC,GAAE,OAAO,+BAA+B,CAAC,IAAI,CAAC,GAAG,CAAC,gBAAgB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;GAC1E;AACF;AACA,EAAC,IAAI,GAAG,CAAC,SAAS,KAAK,WAAW,EAAE;GAClC,OAAO,CAAC,CAAC;GACT;AACF;AACA,EAAC,IAAI,cAAc,IAAI,GAAG,EAAE;GAC1B,MAAM,OAAO,GAAG,QAAQ,CAAC,CAAC,GAAG,CAAC,oBAAoB,IAAI,EAAE,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;AAC/E;GACE,QAAQ,GAAG,CAAC,YAAY;AAC1B,IAAG,KAAK,WAAW;KACf,OAAO,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AAChC,IAAG,KAAK,gBAAgB;KACpB,OAAO,CAAC,CAAC;AACb;IACG;GACD;AACF;EACC,IAAI,gBAAgB,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;GACpC,OAAO,CAAC,CAAC;GACT;AACF;EACC,IAAI,6DAA6D,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;GACjF,OAAO,CAAC,CAAC;GACT;AACF;AACA,EAAC,IAAI,WAAW,IAAI,GAAG,EAAE;GACvB,OAAO,CAAC,CAAC;GACT;AACF;EACC,OAAO,GAAG,CAAC;EACX;AACD;CACA,SAAS,eAAe,CAAC,MAAM,EAAE;AACjC,EAAC,MAAM,KAAK,GAAG,aAAa,CAAC,MAAM,EAAE,MAAM,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC;AAC7D,EAAC,OAAO,cAAc,CAAC,KAAK,CAAC,CAAC;EAC7B;AACD;AACA,CAAA,eAAc,GAAG;EAChB,aAAa,EAAE,eAAe;AAC/B,EAAC,MAAM,EAAE,cAAc,CAAC,aAAa,CAAC,IAAI,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;AAC3D,EAAC,MAAM,EAAE,cAAc,CAAC,aAAa,CAAC,IAAI,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;EAC1D,CAAA;;;;;;;;;;;;;;EClID,MAAM,GAAG,GAAGF,YAAc,CAAC;EAC3B,MAAM,IAAI,GAAG,UAAe,CAAC;AAC7B;AACA;AACA;AACA;AACA;AACA,EAAA,OAAA,CAAA,IAAA,GAAe,IAAI,CAAC;AACpB,EAAA,OAAA,CAAA,GAAA,GAAc,GAAG,CAAC;AAClB,EAAA,OAAA,CAAA,UAAA,GAAqB,UAAU,CAAC;AAChC,EAAA,OAAA,CAAA,IAAA,GAAe,IAAI,CAAC;AACpB,EAAA,OAAA,CAAA,IAAA,GAAe,IAAI,CAAC;AACpB,EAAA,OAAA,CAAA,SAAA,GAAoB,SAAS,CAAC;EAC9B,OAAkB,CAAA,OAAA,GAAA,IAAI,CAAC,SAAS;AAChC,GAAC,MAAM,EAAE;AACT,GAAC,uIAAuI;AACxI,GAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACA,EAAA,OAAA,CAAA,MAAA,GAAiB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AACpC;EACA,IAAI;AACJ;AACA;AACA,GAAC,MAAM,aAAa,GAAGE,oBAAA,EAAyB,CAAC;AACjD;AACA,GAAC,IAAI,aAAa,IAAI,CAAC,aAAa,CAAC,MAAM,IAAI,aAAa,EAAE,KAAK,IAAI,CAAC,EAAE;AAC1E,IAAE,OAAiB,CAAA,MAAA,GAAA;AACnB,KAAG,EAAE;AACL,KAAG,EAAE;AACL,KAAG,EAAE;AACL,KAAG,EAAE;AACL,KAAG,EAAE;AACL,KAAG,EAAE;AACL,KAAG,EAAE;AACL,KAAG,EAAE;AACL,KAAG,EAAE;AACL,KAAG,EAAE;AACL,KAAG,EAAE;AACL,KAAG,EAAE;AACL,KAAG,EAAE;AACL,KAAG,EAAE;AACL,KAAG,EAAE;AACL,KAAG,EAAE;AACL,KAAG,EAAE;AACL,KAAG,EAAE;AACL,KAAG,EAAE;AACL,KAAG,EAAE;AACL,KAAG,EAAE;AACL,KAAG,EAAE;AACL,KAAG,EAAE;AACL,KAAG,EAAE;AACL,KAAG,EAAE;AACL,KAAG,EAAE;AACL,KAAG,EAAE;AACL,KAAG,EAAE;AACL,KAAG,EAAE;AACL,KAAG,EAAE;AACL,KAAG,EAAE;AACL,KAAG,EAAE;AACL,KAAG,GAAG;AACN,KAAG,GAAG;AACN,KAAG,GAAG;AACN,KAAG,GAAG;AACN,KAAG,GAAG;AACN,KAAG,GAAG;AACN,KAAG,GAAG;AACN,KAAG,GAAG;AACN,KAAG,GAAG;AACN,KAAG,GAAG;AACN,KAAG,GAAG;AACN,KAAG,GAAG;AACN,KAAG,GAAG;AACN,KAAG,GAAG;AACN,KAAG,GAAG;AACN,KAAG,GAAG;AACN,KAAG,GAAG;AACN,KAAG,GAAG;AACN,KAAG,GAAG;AACN,KAAG,GAAG;AACN,KAAG,GAAG;AACN,KAAG,GAAG;AACN,KAAG,GAAG;AACN,KAAG,GAAG;AACN,KAAG,GAAG;AACN,KAAG,GAAG;AACN,KAAG,GAAG;AACN,KAAG,GAAG;AACN,KAAG,GAAG;AACN,KAAG,GAAG;AACN,KAAG,GAAG;AACN,KAAG,GAAG;AACN,KAAG,GAAG;AACN,KAAG,GAAG;AACN,KAAG,GAAG;AACN,KAAG,GAAG;AACN,KAAG,GAAG;AACN,KAAG,GAAG;AACN,KAAG,GAAG;AACN,KAAG,GAAG;AACN,KAAG,GAAG;AACN,KAAG,GAAG;AACN,KAAG,GAAG;AACN,KAAG,GAAG;AACN,KAAG,CAAC;IACF;GACD,CAAC,OAAO,KAAK,EAAE;AAChB;GACC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAA,OAAA,CAAA,WAAA,GAAsB,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,GAAG,IAAI;AAC7D,GAAC,OAAO,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;GAC5B,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,GAAG,KAAK;AACxB;GACC,MAAM,IAAI,GAAG,GAAG;KACd,SAAS,CAAC,CAAC,CAAC;AACf,KAAG,WAAW,EAAE;KACb,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK;AAClC,KAAG,OAAO,CAAC,CAAC,WAAW,EAAE,CAAC;AAC1B,KAAG,CAAC,CAAC;AACL;AACA;GACC,IAAI,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AAC5B,GAAC,IAAI,0BAA0B,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;IACzC,GAAG,GAAG,IAAI,CAAC;IACX,MAAM,IAAI,4BAA4B,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;IAClD,GAAG,GAAG,KAAK,CAAC;AACd,IAAE,MAAM,IAAI,GAAG,KAAK,MAAM,EAAE;IAC1B,GAAG,GAAG,IAAI,CAAC;AACb,IAAE,MAAM;AACR,IAAE,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;IAClB;AACF;AACA,GAAC,GAAG,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC;GAChB,OAAO,GAAG,CAAC;GACX,EAAE,EAAE,CAAC,CAAC;AACP;AACA;AACA;AACA;AACA;AACA,EAAA,SAAS,SAAS,GAAG;AACrB,GAAC,OAAO,QAAQ,IAAI,OAAO,CAAC,WAAW;AACvC,IAAE,OAAO,CAAC,OAAO,CAAC,WAAW,CAAC,MAAM,CAAC;IACnC,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;GAC/B;AACD;AACA;AACA;AACA;AACA;AACA;AACA;EACA,SAAS,UAAU,CAAC,IAAI,EAAE;GACzB,MAAM,CAAC,SAAS,EAAE,IAAI,EAAE,SAAS,CAAC,GAAG,IAAI,CAAC;AAC3C;GACC,IAAI,SAAS,EAAE;AAChB,IAAE,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC;AACvB,IAAE,MAAM,SAAS,GAAG,UAAU,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,MAAM,GAAG,CAAC,CAAC,CAAC;AAC1D,IAAE,MAAM,MAAM,GAAG,CAAC,EAAE,EAAE,SAAS,CAAC,GAAG,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;AACtD;IACE,IAAI,CAAC,CAAC,CAAC,GAAG,MAAM,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,CAAC;IAC3D,IAAI,CAAC,IAAI,CAAC,SAAS,GAAG,IAAI,GAAG,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,WAAW,CAAC,CAAC;AACjF,IAAE,MAAM;AACR,IAAE,IAAI,CAAC,CAAC,CAAC,GAAG,OAAO,EAAE,GAAG,IAAI,GAAG,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;IAC3C;GACD;AACD;AACA,EAAA,SAAS,OAAO,GAAG;AACnB,GAAC,IAAI,OAAO,CAAC,WAAW,CAAC,QAAQ,EAAE;IACjC,OAAO,EAAE,CAAC;IACV;GACD,OAAO,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,GAAG,GAAG,CAAC;GACtC;AACD;AACA;AACA;AACA;AACA;AACA,EAAA,SAAS,GAAG,CAAC,GAAG,IAAI,EAAE;AACtB,GAAC,OAAO,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;GACzD;AACD;AACA;AACA;AACA;AACA;AACA;AACA;EACA,SAAS,IAAI,CAAC,UAAU,EAAE;GACzB,IAAI,UAAU,EAAE;AACjB,IAAE,OAAO,CAAC,GAAG,CAAC,KAAK,GAAG,UAAU,CAAC;AACjC,IAAE,MAAM;AACR;AACA;AACA,IAAE,OAAO,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC;IACzB;GACD;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAA,SAAS,IAAI,GAAG;AAChB,GAAC,OAAO,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC;GACzB;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACA,SAAS,IAAI,CAAC,KAAK,EAAE;AACrB,GAAC,KAAK,CAAC,WAAW,GAAG,EAAE,CAAC;AACxB;GACC,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;AAC/C,GAAC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AACvC,IAAE,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;IAC1D;GACD;AACD;AACA,EAAA,MAAA,CAAA,OAAA,GAAiBI,aAAmB,EAAA,CAAC,OAAO,CAAC,CAAC;AAC9C;AACA,EAAA,MAAM,CAAC,UAAU,CAAC,GAAG,MAAM,CAAC,OAAO,CAAC;AACpC;AACA;AACA;AACA;AACA;AACA,EAAA,UAAU,CAAC,CAAC,GAAG,UAAU,CAAC,EAAE;GAC3B,IAAI,CAAC,WAAW,CAAC,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC;GACzC,OAAO,IAAI,CAAC,OAAO,CAAC,CAAC,EAAE,IAAI,CAAC,WAAW,CAAC;KACtC,KAAK,CAAC,IAAI,CAAC;KACX,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,IAAI,EAAE,CAAC;AACzB,KAAG,IAAI,CAAC,GAAG,CAAC,CAAC;AACb,GAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACA,EAAA,UAAU,CAAC,CAAC,GAAG,UAAU,CAAC,EAAE;GAC3B,IAAI,CAAC,WAAW,CAAC,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC;GACzC,OAAO,IAAI,CAAC,OAAO,CAAC,CAAC,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;GACzC,CAAA;;;;;;;;;;;;;;;CCjQD,IAAI,OAAO,OAAO,KAAK,WAAW,IAAI,OAAO,CAAC,IAAI,KAAK,UAAU,IAAI,OAAO,CAAC,OAAO,KAAK,IAAI,IAAI,OAAO,CAAC,MAAM,EAAE;EAChHc,GAAA,CAAA,OAAc,GAAGpB,cAAA,EAAuB,CAAC;AAC1C,EAAC,MAAM;EACNoB,GAAA,CAAA,OAAc,GAAGnB,WAAA,EAAoB,CAAC;AACvC,EAAA;;;;;;;;;;ACTA,CAAA,IAAI,KAAK,CAAC;AACV;AACA,CAAAoB,SAAc,GAAG,YAAY;GAC3B,IAAI,CAAC,KAAK,EAAE;AACd,KAAI,IAAI;AACR;AACA,OAAM,KAAK,GAAGrB,UAAA,EAAgB,CAAC,kBAAkB,CAAC,CAAC;MAC9C;KACD,OAAO,KAAK,EAAE,SAAS;AAC3B,KAAI,IAAI,OAAO,KAAK,KAAK,UAAU,EAAE;AACrC,OAAM,KAAK,GAAG,YAAY,SAAS,CAAC;MAC/B;IACF;GACD,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;EAC9B,CAAA;;;;;;;;;CCdD,IAAI,GAAG,GAAGA,GAAc,CAAC;AACzB,CAAA,IAAI,GAAG,GAAG,GAAG,CAAC,GAAG,CAAC;CAClB,IAAIK,MAAI,GAAGJ,IAAe,CAAC;CAC3B,IAAI,KAAK,GAAGC,UAAgB,CAAC;AAC7B,CAAA,IAAI,QAAQ,GAAGI,MAAiB,CAAC,QAAQ,CAAC;CAC1C,IAAI,MAAM,GAAGgB,YAAiB,CAAC;CAC/B,IAAI,KAAK,GAAGf,cAAA,EAAkB,CAAC;AAC/B;AACA;AACA,CAAA,IAAI,MAAM,GAAG,CAAC,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC;CAC3E,IAAI,aAAa,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;AACxC,CAAA,MAAM,CAAC,OAAO,CAAC,UAAU,KAAK,EAAE;GAC9B,aAAa,CAAC,KAAK,CAAC,GAAG,UAAU,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE;AACrD,KAAI,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;AACrD,IAAG,CAAC;AACJ,EAAC,CAAC,CAAC;AACH;CACA,IAAI,eAAe,GAAG,eAAe;AACrC,GAAE,iBAAiB;AACnB,GAAE,aAAa;AACf,GAAE,SAAS;AACX,EAAC,CAAC;AACF;CACA,IAAI,gBAAgB,GAAG,eAAe;AACtC,GAAE,4BAA4B;AAC9B,GAAE,2BAA2B;AAC7B,EAAC,CAAC;CACF,IAAI,qBAAqB,GAAG,eAAe;AAC3C,GAAE,2BAA2B;AAC7B,GAAE,sCAAsC;AACxC,EAAC,CAAC;CACF,IAAI,0BAA0B,GAAG,eAAe;AAChD,GAAE,iCAAiC;AACnC,GAAE,8CAA8C;AAChD,EAAC,CAAC;CACF,IAAI,kBAAkB,GAAG,eAAe;AACxC,GAAE,4BAA4B;AAC9B,GAAE,iBAAiB;AACnB,EAAC,CAAC;AACF;AACA;CACA,IAAI,OAAO,GAAG,QAAQ,CAAC,SAAS,CAAC,OAAO,IAAI,IAAI,CAAC;AACjD;AACA;AACA,CAAA,SAAS,mBAAmB,CAAC,OAAO,EAAE,gBAAgB,EAAE;AACxD;AACA,GAAE,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACtB,GAAE,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC;AACjC,GAAE,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC;AAC1B,GAAE,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;AACtB,GAAE,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;AACvB,GAAE,IAAI,CAAC,cAAc,GAAG,CAAC,CAAC;AAC1B,GAAE,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;AACvB,GAAE,IAAI,CAAC,kBAAkB,GAAG,CAAC,CAAC;AAC9B,GAAE,IAAI,CAAC,mBAAmB,GAAG,EAAE,CAAC;AAChC;AACA;GACE,IAAI,gBAAgB,EAAE;KACpB,IAAI,CAAC,EAAE,CAAC,UAAU,EAAE,gBAAgB,CAAC,CAAC;IACvC;AACH;AACA;AACA,GAAE,IAAI,IAAI,GAAG,IAAI,CAAC;AAClB,GAAE,IAAI,CAAC,iBAAiB,GAAG,UAAU,QAAQ,EAAE;AAC/C,KAAI,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC;AACpC,IAAG,CAAC;AACJ;AACA;AACA,GAAE,IAAI,CAAC,eAAe,EAAE,CAAC;EACxB;CACD,mBAAmB,CAAC,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;AAClE;AACA,CAAA,mBAAmB,CAAC,SAAS,CAAC,KAAK,GAAG,YAAY;AAClD,GAAE,cAAc,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;AACvC,GAAE,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,CAAC;AAC/B,GAAE,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AACrB,EAAC,CAAC;AACF;AACA,CAAA,mBAAmB,CAAC,SAAS,CAAC,OAAO,GAAG,UAAU,KAAK,EAAE;GACvD,cAAc,CAAC,IAAI,CAAC,eAAe,EAAE,KAAK,CAAC,CAAC;GAC5C,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;GAC1B,OAAO,IAAI,CAAC;AACd,EAAC,CAAC;AACF;AACA;CACA,mBAAmB,CAAC,SAAS,CAAC,KAAK,GAAG,UAAU,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE;AAC1E;AACA,GAAE,IAAI,IAAI,CAAC,OAAO,EAAE;AACpB,KAAI,MAAM,IAAI,kBAAkB,EAAE,CAAC;IAChC;AACH;AACA;AACA,GAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE;AAC1C,KAAI,MAAM,IAAI,SAAS,CAAC,+CAA+C,CAAC,CAAC;IACtE;AACH,GAAE,IAAI,UAAU,CAAC,QAAQ,CAAC,EAAE;KACxB,QAAQ,GAAG,QAAQ,CAAC;KACpB,QAAQ,GAAG,IAAI,CAAC;IACjB;AACH;AACA;AACA;AACA,GAAE,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE;KACrB,IAAI,QAAQ,EAAE;OACZ,QAAQ,EAAE,CAAC;MACZ;AACL,KAAI,OAAO;IACR;AACH;AACA,GAAE,IAAI,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,QAAQ,CAAC,aAAa,EAAE;AAC5E,KAAI,IAAI,CAAC,kBAAkB,IAAI,IAAI,CAAC,MAAM,CAAC;AAC3C,KAAI,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,CAAC;AACtE,KAAI,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,IAAI,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;IACtD;AACH;QACO;KACH,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,0BAA0B,EAAE,CAAC,CAAC;AACzD,KAAI,IAAI,CAAC,KAAK,EAAE,CAAC;IACd;AACH,EAAC,CAAC;AACF;AACA;CACA,mBAAmB,CAAC,SAAS,CAAC,GAAG,GAAG,UAAU,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE;AACxE;AACA,GAAE,IAAI,UAAU,CAAC,IAAI,CAAC,EAAE;KACpB,QAAQ,GAAG,IAAI,CAAC;AACpB,KAAI,IAAI,GAAG,QAAQ,GAAG,IAAI,CAAC;IACxB;AACH,QAAO,IAAI,UAAU,CAAC,QAAQ,CAAC,EAAE;KAC7B,QAAQ,GAAG,QAAQ,CAAC;KACpB,QAAQ,GAAG,IAAI,CAAC;IACjB;AACH;AACA;GACE,IAAI,CAAC,IAAI,EAAE;KACT,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;AACtC,KAAI,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC;IAChD;QACI;AACP,KAAI,IAAI,IAAI,GAAG,IAAI,CAAC;AACpB,KAAI,IAAI,cAAc,GAAG,IAAI,CAAC,eAAe,CAAC;KAC1C,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,QAAQ,EAAE,YAAY;AAC3C,OAAM,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;OACnB,cAAc,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC;AAC/C,MAAK,CAAC,CAAC;AACP,KAAI,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;IACrB;AACH,EAAC,CAAC;AACF;AACA;CACA,mBAAmB,CAAC,SAAS,CAAC,SAAS,GAAG,UAAU,IAAI,EAAE,KAAK,EAAE;GAC/D,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC;GACpC,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;AAC9C,EAAC,CAAC;AACF;AACA;AACA,CAAA,mBAAmB,CAAC,SAAS,CAAC,YAAY,GAAG,UAAU,IAAI,EAAE;GAC3D,OAAO,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;GACnC,IAAI,CAAC,eAAe,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;AAC1C,EAAC,CAAC;AACF;AACA;CACA,mBAAmB,CAAC,SAAS,CAAC,UAAU,GAAG,UAAU,KAAK,EAAE,QAAQ,EAAE;AACtE,GAAE,IAAI,IAAI,GAAG,IAAI,CAAC;AAClB;AACA;AACA,GAAE,SAAS,gBAAgB,CAAC,MAAM,EAAE;AACpC,KAAI,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;KACzB,MAAM,CAAC,cAAc,CAAC,SAAS,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;KACjD,MAAM,CAAC,WAAW,CAAC,SAAS,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;IAC/C;AACH;AACA;AACA,GAAE,SAAS,UAAU,CAAC,MAAM,EAAE;AAC9B,KAAI,IAAI,IAAI,CAAC,QAAQ,EAAE;AACvB,OAAM,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;MAC7B;AACL,KAAI,IAAI,CAAC,QAAQ,GAAG,UAAU,CAAC,YAAY;AAC3C,OAAM,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;OACrB,UAAU,EAAE,CAAC;MACd,EAAE,KAAK,CAAC,CAAC;AACd,KAAI,gBAAgB,CAAC,MAAM,CAAC,CAAC;IAC1B;AACH;AACA;GACE,SAAS,UAAU,GAAG;AACxB;AACA,KAAI,IAAI,IAAI,CAAC,QAAQ,EAAE;AACvB,OAAM,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AAClC,OAAM,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;MACtB;AACL;AACA;KACI,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;KACzC,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;KACzC,IAAI,CAAC,cAAc,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;KAC5C,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;KACzC,IAAI,QAAQ,EAAE;OACZ,IAAI,CAAC,cAAc,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;MAC1C;AACL,KAAI,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;OAChB,IAAI,CAAC,eAAe,CAAC,cAAc,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;MAC3D;IACF;AACH;AACA;GACE,IAAI,QAAQ,EAAE;KACZ,IAAI,CAAC,EAAE,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;IAC9B;AACH;AACA;AACA,GAAE,IAAI,IAAI,CAAC,MAAM,EAAE;AACnB,KAAI,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACzB;QACI;KACH,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;IACjD;AACH;AACA;GACE,IAAI,CAAC,EAAE,CAAC,QAAQ,EAAE,gBAAgB,CAAC,CAAC;GACpC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;GAC7B,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;GAC7B,IAAI,CAAC,EAAE,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;GAChC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;AAC/B;GACE,OAAO,IAAI,CAAC;AACd,EAAC,CAAC;AACF;AACA;AACA,CAAA;GACE,cAAc,EAAE,WAAW;GAC3B,YAAY,EAAE,oBAAoB;AACpC,EAAC,CAAC,OAAO,CAAC,UAAU,MAAM,EAAE;GAC1B,mBAAmB,CAAC,SAAS,CAAC,MAAM,CAAC,GAAG,UAAU,CAAC,EAAE,CAAC,EAAE;AAC1D,KAAI,OAAO,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAC9C,IAAG,CAAC;AACJ,EAAC,CAAC,CAAC;AACH;AACA;CACA,CAAC,SAAS,EAAE,YAAY,EAAE,QAAQ,CAAC,CAAC,OAAO,CAAC,UAAU,QAAQ,EAAE;GAC9D,MAAM,CAAC,cAAc,CAAC,mBAAmB,CAAC,SAAS,EAAE,QAAQ,EAAE;AACjE,KAAI,GAAG,EAAE,YAAY,EAAE,OAAO,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC,EAAE;AAC/D,IAAG,CAAC,CAAC;AACL,EAAC,CAAC,CAAC;AACH;AACA,CAAA,mBAAmB,CAAC,SAAS,CAAC,gBAAgB,GAAG,UAAU,OAAO,EAAE;AACpE;AACA,GAAE,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE;AACxB,KAAI,OAAO,CAAC,OAAO,GAAG,EAAE,CAAC;IACtB;AACH;AACA;AACA;AACA;AACA,GAAE,IAAI,OAAO,CAAC,IAAI,EAAE;AACpB;AACA,KAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE;AAC3B,OAAM,OAAO,CAAC,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;MACjC;AACL,KAAI,OAAO,OAAO,CAAC,IAAI,CAAC;IACrB;AACH;AACA;GACE,IAAI,CAAC,OAAO,CAAC,QAAQ,IAAI,OAAO,CAAC,IAAI,EAAE;KACrC,IAAI,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;AAC9C,KAAI,IAAI,SAAS,GAAG,CAAC,EAAE;AACvB,OAAM,OAAO,CAAC,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;MACjC;UACI;AACT,OAAM,OAAO,CAAC,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;AAC9D,OAAM,OAAO,CAAC,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;MACpD;IACF;AACH,EAAC,CAAC;AACF;AACA;AACA;AACA,CAAA,mBAAmB,CAAC,SAAS,CAAC,eAAe,GAAG,YAAY;AAC5D;GACE,IAAI,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC;GACtC,IAAI,cAAc,GAAG,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC;GAC7D,IAAI,CAAC,cAAc,EAAE;AACvB,KAAI,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,SAAS,CAAC,uBAAuB,GAAG,QAAQ,CAAC,CAAC,CAAC;AAC1E,KAAI,OAAO;IACR;AACH;AACA;AACA;AACA,GAAE,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE;AAC5B,KAAI,IAAI,MAAM,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AACvC,KAAI,IAAI,CAAC,QAAQ,CAAC,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IACpD;AACH;AACA;AACA,GAAE,IAAI,OAAO,GAAG,IAAI,CAAC,eAAe;AACpC,SAAQ,cAAc,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,iBAAiB,CAAC,CAAC;AACtE,GAAE,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC;AAC/B,GAAE,KAAK,IAAI,KAAK,IAAI,MAAM,EAAE;KACxB,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC;IACzC;AACH;AACA;AACA;AACA,GAAE,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;AACnD,KAAI,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC;AAC7B;AACA;AACA,KAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;AACvB;AACA;AACA;AACA,GAAE,IAAI,IAAI,CAAC,WAAW,EAAE;AACxB;AACA,KAAI,IAAI,CAAC,GAAG,CAAC,CAAC;AACd,KAAI,IAAI,IAAI,GAAG,IAAI,CAAC;AACpB,KAAI,IAAI,OAAO,GAAG,IAAI,CAAC,mBAAmB,CAAC;AAC3C,KAAI,CAAC,SAAS,SAAS,CAAC,KAAK,EAAE;AAC/B;AACA;AACA,OAAM,IAAI,OAAO,KAAK,IAAI,CAAC,eAAe,EAAE;AAC5C;AACA;SACQ,IAAI,KAAK,EAAE;WACT,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;UAC3B;AACT;AACA,cAAa,IAAI,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE;WAC3B,IAAI,MAAM,GAAG,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC;AACpC;AACA,WAAU,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE;AACjC,aAAY,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;YACxD;UACF;AACT;AACA,cAAa,IAAI,IAAI,CAAC,MAAM,EAAE;AAC9B,WAAU,OAAO,CAAC,GAAG,EAAE,CAAC;UACf;QACF;AACP,MAAK,EAAE,EAAE;IACN;AACH,EAAC,CAAC;AACF;AACA;AACA,CAAA,mBAAmB,CAAC,SAAS,CAAC,gBAAgB,GAAG,UAAU,QAAQ,EAAE;AACrE;AACA,GAAE,IAAI,UAAU,GAAG,QAAQ,CAAC,UAAU,CAAC;AACvC,GAAE,IAAI,IAAI,CAAC,QAAQ,CAAC,cAAc,EAAE;AACpC,KAAI,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;AACzB,OAAM,GAAG,EAAE,IAAI,CAAC,WAAW;AAC3B,OAAM,OAAO,EAAE,QAAQ,CAAC,OAAO;OACzB,UAAU,EAAE,UAAU;AAC5B,MAAK,CAAC,CAAC;IACJ;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;GACE,IAAI,QAAQ,GAAG,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC;GACzC,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,eAAe,KAAK,KAAK;AAC1D,OAAM,UAAU,GAAG,GAAG,IAAI,UAAU,IAAI,GAAG,EAAE;AAC7C,KAAI,QAAQ,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;AAC5C,KAAI,QAAQ,CAAC,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC;KACrC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;AACpC;AACA;AACA,KAAI,IAAI,CAAC,mBAAmB,GAAG,EAAE,CAAC;AAClC,KAAI,OAAO;IACR;AACH;AACA;AACA,GAAE,cAAc,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;AACvC;AACA,GAAE,QAAQ,CAAC,OAAO,EAAE,CAAC;AACrB;AACA;AACA;GACE,IAAI,EAAE,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,QAAQ,CAAC,YAAY,EAAE;KACtD,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,qBAAqB,EAAE,CAAC,CAAC;AACpD,KAAI,OAAO;IACR;AACH;AACA;GACE,IAAI,cAAc,CAAC;GACnB,IAAI,cAAc,GAAG,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC;GAClD,IAAI,cAAc,EAAE;AACtB,KAAI,cAAc,GAAG,MAAM,CAAC,MAAM,CAAC;AACnC;OACM,IAAI,EAAE,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,MAAM,CAAC;AAC1C,MAAK,EAAE,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;IAC3B;AACH;AACA;AACA;AACA;AACA;GACE,IAAI,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;AACpC,GAAE,IAAI,CAAC,UAAU,KAAK,GAAG,IAAI,UAAU,KAAK,GAAG,KAAK,IAAI,CAAC,QAAQ,CAAC,MAAM,KAAK,MAAM;AACnF;AACA;AACA;AACA;AACA,OAAM,CAAC,UAAU,KAAK,GAAG,KAAK,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE;AAC5E,KAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,KAAK,CAAC;AACjC;AACA,KAAI,IAAI,CAAC,mBAAmB,GAAG,EAAE,CAAC;KAC9B,qBAAqB,CAAC,YAAY,EAAE,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;IAC5D;AACH;AACA;AACA,GAAE,IAAI,iBAAiB,GAAG,qBAAqB,CAAC,SAAS,EAAE,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;AAClF;AACA;GACE,IAAI,eAAe,GAAG,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;GAClD,IAAI,WAAW,GAAG,iBAAiB,IAAI,eAAe,CAAC,IAAI,CAAC;AAC9D,GAAE,IAAI,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,WAAW;AAC5D,KAAI,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,eAAe,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC;AACtE;AACA;GACE,IAAI,WAAW,CAAC;AAClB,GAAE,IAAI;KACF,WAAW,GAAG,GAAG,CAAC,OAAO,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;IACjD;GACD,OAAO,KAAK,EAAE;AAChB,KAAI,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,gBAAgB,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;AAC/D,KAAI,OAAO;IACR;AACH;AACA;AACA,GAAE,KAAK,CAAC,gBAAgB,EAAE,WAAW,CAAC,CAAC;AACvC,GAAE,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;GACxB,IAAI,gBAAgB,GAAG,GAAG,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;GAC9C,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,gBAAgB,CAAC,CAAC;AACjD;AACA;AACA;AACA,GAAE,IAAI,gBAAgB,CAAC,QAAQ,KAAK,eAAe,CAAC,QAAQ;AAC5D,MAAK,gBAAgB,CAAC,QAAQ,KAAK,QAAQ;AAC3C,MAAK,gBAAgB,CAAC,IAAI,KAAK,WAAW;MACrC,CAAC,WAAW,CAAC,gBAAgB,CAAC,IAAI,EAAE,WAAW,CAAC,EAAE;KACnD,qBAAqB,CAAC,6BAA6B,EAAE,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;IAC7E;AACH;AACA;AACA,GAAE,IAAI,UAAU,CAAC,cAAc,CAAC,EAAE;KAC9B,IAAI,eAAe,GAAG;AAC1B,OAAM,OAAO,EAAE,QAAQ,CAAC,OAAO;OACzB,UAAU,EAAE,UAAU;AAC5B,MAAK,CAAC;KACF,IAAI,cAAc,GAAG;OACnB,GAAG,EAAE,UAAU;OACf,MAAM,EAAE,MAAM;OACd,OAAO,EAAE,cAAc;AAC7B,MAAK,CAAC;AACN,KAAI,IAAI;OACF,cAAc,CAAC,IAAI,CAAC,QAAQ,EAAE,eAAe,EAAE,cAAc,CAAC,CAAC;MAChE;KACD,OAAO,GAAG,EAAE;OACV,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;AAC9B,OAAM,OAAO;MACR;KACD,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACtC;AACH;AACA;AACA,GAAE,IAAI;AACN,KAAI,IAAI,CAAC,eAAe,EAAE,CAAC;IACxB;GACD,OAAO,KAAK,EAAE;AAChB,KAAI,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,gBAAgB,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;IAC5D;AACH,EAAC,CAAC;AACF;AACA;CACA,SAAS,IAAI,CAAC,SAAS,EAAE;AACzB;GACE,IAAI,OAAO,GAAG;KACZ,YAAY,EAAE,EAAE;AACpB,KAAI,aAAa,EAAE,EAAE,GAAG,IAAI,GAAG,IAAI;AACnC,IAAG,CAAC;AACJ;AACA;AACA,GAAE,IAAI,eAAe,GAAG,EAAE,CAAC;GACzB,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,UAAU,MAAM,EAAE;AACnD,KAAI,IAAI,QAAQ,GAAG,MAAM,GAAG,GAAG,CAAC;AAChC,KAAI,IAAI,cAAc,GAAG,eAAe,CAAC,QAAQ,CAAC,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC;AACvE,KAAI,IAAI,eAAe,GAAG,OAAO,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;AAC1E;AACA;KACI,SAAS,OAAO,CAAC,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE;AAC/C;AACA,OAAM,IAAI,QAAQ,CAAC,KAAK,CAAC,EAAE;SACnB,IAAI,MAAM,CAAC;AACnB,SAAQ,IAAI;WACF,MAAM,GAAG,YAAY,CAAC,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC;UACvC;SACD,OAAO,GAAG,EAAE;AACpB;WACU,MAAM,GAAG,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;UAC3B;SACD,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE;WAC9B,MAAM,IAAI,eAAe,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;UACtC;SACD,KAAK,GAAG,MAAM,CAAC;QAChB;AACP,YAAW,IAAI,GAAG,KAAK,KAAK,YAAY,GAAG,CAAC,EAAE;AAC9C,SAAQ,KAAK,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC;QAC7B;YACI;SACH,QAAQ,GAAG,OAAO,CAAC;SACnB,OAAO,GAAG,KAAK,CAAC;AACxB,SAAQ,KAAK,GAAG,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC;QAChC;AACP,OAAM,IAAI,UAAU,CAAC,OAAO,CAAC,EAAE;SACvB,QAAQ,GAAG,OAAO,CAAC;SACnB,OAAO,GAAG,IAAI,CAAC;QAChB;AACP;AACA;AACA,OAAM,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC;AAC9B,SAAQ,YAAY,EAAE,OAAO,CAAC,YAAY;AAC1C,SAAQ,aAAa,EAAE,OAAO,CAAC,aAAa;AAC5C,QAAO,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;AACzB,OAAM,OAAO,CAAC,eAAe,GAAG,eAAe,CAAC;AAChD,OAAM,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE;AAClE,SAAQ,OAAO,CAAC,QAAQ,GAAG,KAAK,CAAC;QAC1B;AACP;AACA,OAAM,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,EAAE,QAAQ,EAAE,mBAAmB,CAAC,CAAC;AACpE,OAAM,KAAK,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;OAC1B,OAAO,IAAI,mBAAmB,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;MACnD;AACL;AACA;KACI,SAAS,GAAG,CAAC,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE;AAC3C,OAAM,IAAI,cAAc,GAAG,eAAe,CAAC,OAAO,CAAC,KAAK,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC;AAC7E,OAAM,cAAc,CAAC,GAAG,EAAE,CAAC;OACrB,OAAO,cAAc,CAAC;MACvB;AACL;AACA;AACA,KAAI,MAAM,CAAC,gBAAgB,CAAC,eAAe,EAAE;AAC7C,OAAM,OAAO,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,YAAY,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE;AACvF,OAAM,GAAG,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,YAAY,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE;AAC/E,MAAK,CAAC,CAAC;AACP,IAAG,CAAC,CAAC;GACH,OAAO,OAAO,CAAC;EAChB;AACD;AACA;CACA,SAAS,IAAI,GAAG,eAAe;AAC/B;AACA;CACA,SAAS,YAAY,CAAC,SAAS,EAAE;GAC/B,IAAI,OAAO,GAAG;AAChB,KAAI,QAAQ,EAAE,SAAS,CAAC,QAAQ;KAC5B,QAAQ,EAAE,SAAS,CAAC,QAAQ,CAAC,UAAU,CAAC,GAAG,CAAC;AAChD;OACM,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;OAC/B,SAAS,CAAC,QAAQ;AACxB,KAAI,IAAI,EAAE,SAAS,CAAC,IAAI;AACxB,KAAI,MAAM,EAAE,SAAS,CAAC,MAAM;AAC5B,KAAI,QAAQ,EAAE,SAAS,CAAC,QAAQ;KAC5B,IAAI,EAAE,SAAS,CAAC,QAAQ,GAAG,SAAS,CAAC,MAAM;AAC/C,KAAI,IAAI,EAAE,SAAS,CAAC,IAAI;AACxB,IAAG,CAAC;AACJ,GAAE,IAAI,SAAS,CAAC,IAAI,KAAK,EAAE,EAAE;KACzB,OAAO,CAAC,IAAI,GAAG,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;IACvC;GACD,OAAO,OAAO,CAAC;EAChB;AACD;AACA,CAAA,SAAS,qBAAqB,CAAC,KAAK,EAAE,OAAO,EAAE;GAC7C,IAAI,SAAS,CAAC;AAChB,GAAE,KAAK,IAAI,MAAM,IAAI,OAAO,EAAE;AAC9B,KAAI,IAAI,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE;AAC5B,OAAM,SAAS,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;AAClC,OAAM,OAAO,OAAO,CAAC,MAAM,CAAC,CAAC;MACxB;IACF;GACD,OAAO,CAAC,SAAS,KAAK,IAAI,IAAI,OAAO,SAAS,KAAK,WAAW;KAC5D,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,CAAC;EACxC;AACD;AACA,CAAA,SAAS,eAAe,CAAC,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE;AACnD;AACA,GAAE,SAAS,WAAW,CAAC,UAAU,EAAE;KAC/B,KAAK,CAAC,iBAAiB,CAAC,IAAI,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;KAChD,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,UAAU,IAAI,EAAE,CAAC,CAAC;AAC1C,KAAI,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;AACrB,KAAI,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,KAAK,GAAG,OAAO,GAAG,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,OAAO,CAAC;IAC3E;AACH;AACA;GACE,WAAW,CAAC,SAAS,GAAG,KAAK,SAAS,IAAI,KAAK,GAAG,CAAC;AACrD,GAAE,WAAW,CAAC,SAAS,CAAC,WAAW,GAAG,WAAW,CAAC;GAChD,WAAW,CAAC,SAAS,CAAC,IAAI,GAAG,SAAS,GAAG,IAAI,GAAG,GAAG,CAAC;GACpD,OAAO,WAAW,CAAC;EACpB;AACD;AACA,CAAA,SAAS,cAAc,CAAC,OAAO,EAAE,KAAK,EAAE;AACxC,GAAE,KAAK,IAAI,KAAK,IAAI,MAAM,EAAE;KACxB,OAAO,CAAC,cAAc,CAAC,KAAK,EAAE,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC;IACrD;GACD,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;AAC5B,GAAE,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;EACxB;AACD;AACA,CAAA,SAAS,WAAW,CAAC,SAAS,EAAE,MAAM,EAAE;AACxC,GAAE,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;AAClD,GAAE,IAAI,GAAG,GAAG,SAAS,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;AACjD,GAAE,OAAO,GAAG,GAAG,CAAC,IAAI,SAAS,CAAC,GAAG,CAAC,KAAK,GAAG,IAAI,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;EACxE;AACD;CACA,SAAS,QAAQ,CAAC,KAAK,EAAE;GACvB,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,YAAY,MAAM,CAAC;EAC7D;AACD;CACA,SAAS,UAAU,CAAC,KAAK,EAAE;AAC3B,GAAE,OAAO,OAAO,KAAK,KAAK,UAAU,CAAC;EACpC;AACD;CACA,SAAS,QAAQ,CAAC,KAAK,EAAE;GACvB,OAAO,OAAO,KAAK,KAAK,QAAQ,KAAK,QAAQ,IAAI,KAAK,CAAC,CAAC;EACzD;AACD;AACA;AACA,CAAAgB,iBAAA,CAAA,OAAc,GAAG,IAAI,CAAC,EAAE,IAAI,EAAElB,MAAI,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;AACpD,CAAAkB,iBAAA,CAAA,OAAA,CAAA,IAAmB,GAAG,IAAI,CAAA;;;;;;;ACxnBnB,MAAM,OAAO,GAAG,OAAO;;ACEf,SAAS,aAAa,CAAC,GAAG,EAAE;AAC3C,EAAE,MAAM,KAAK,GAAG,2BAA2B,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACtD,EAAE,OAAO,KAAK,IAAI,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;AACjC;;ACCA,MAAM,gBAAgB,GAAG,+CAA+C,CAAC;AACzE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACe,SAAS,WAAW,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE;AAC1D,EAAE,MAAM,KAAK,GAAG,OAAO,IAAI,OAAO,CAAC,IAAI,IAAI,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC;AACjE,EAAE,MAAM,QAAQ,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC;AACtC;AACA,EAAE,IAAI,MAAM,KAAK,SAAS,IAAI,KAAK,EAAE;AACrC,IAAI,MAAM,GAAG,IAAI,CAAC;AAClB,GAAG;AACH;AACA,EAAE,IAAI,QAAQ,KAAK,MAAM,EAAE;AAC3B,IAAI,GAAG,GAAG,QAAQ,CAAC,MAAM,GAAG,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC;AACjE;AACA,IAAI,MAAM,KAAK,GAAG,gBAAgB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC7C;AACA,IAAI,IAAI,CAAC,KAAK,EAAE;AAChB,MAAM,MAAM,IAAI,UAAU,CAAC,aAAa,EAAE,UAAU,CAAC,eAAe,CAAC,CAAC;AACtE,KAAK;AACL;AACA,IAAI,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;AAC1B,IAAI,MAAM,QAAQ,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;AAC9B,IAAI,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;AAC1B,IAAI,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,EAAE,QAAQ,GAAG,QAAQ,GAAG,MAAM,CAAC,CAAC;AACvF;AACA,IAAI,IAAI,MAAM,EAAE;AAChB,MAAM,IAAI,CAAC,KAAK,EAAE;AAClB,QAAQ,MAAM,IAAI,UAAU,CAAC,uBAAuB,EAAE,UAAU,CAAC,eAAe,CAAC,CAAC;AAClF,OAAO;AACP;AACA,MAAM,OAAO,IAAI,KAAK,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;AAC/C,KAAK;AACL;AACA,IAAI,OAAO,MAAM,CAAC;AAClB,GAAG;AACH;AACA,EAAE,MAAM,IAAI,UAAU,CAAC,uBAAuB,GAAG,QAAQ,EAAE,UAAU,CAAC,eAAe,CAAC,CAAC;AACvF;;AClDA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,QAAQ,CAAC,EAAE,EAAE,IAAI,EAAE;AAC5B,EAAE,IAAI,SAAS,GAAG,CAAC,CAAC;AACpB,EAAE,MAAM,SAAS,GAAG,IAAI,GAAG,IAAI,CAAC;AAChC,EAAE,IAAI,KAAK,GAAG,IAAI,CAAC;AACnB,EAAE,OAAO,SAAS,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE;AACzC,IAAI,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;AAC3B,IAAI,IAAI,KAAK,IAAI,GAAG,GAAG,SAAS,GAAG,SAAS,EAAE;AAC9C,MAAM,IAAI,KAAK,EAAE;AACjB,QAAQ,YAAY,CAAC,KAAK,CAAC,CAAC;AAC5B,QAAQ,KAAK,GAAG,IAAI,CAAC;AACrB,OAAO;AACP,MAAM,SAAS,GAAG,GAAG,CAAC;AACtB,MAAM,OAAO,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;AAClC,KAAK;AACL,IAAI,IAAI,CAAC,KAAK,EAAE;AAChB,MAAM,KAAK,GAAG,UAAU,CAAC,MAAM;AAC/B,QAAQ,KAAK,GAAG,IAAI,CAAC;AACrB,QAAQ,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;AAC/B,QAAQ,OAAO,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;AACpC,OAAO,EAAE,SAAS,IAAI,GAAG,GAAG,SAAS,CAAC,CAAC,CAAC;AACxC,KAAK;AACL,GAAG,CAAC;AACJ;;AC5BA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,WAAW,CAAC,YAAY,EAAE,GAAG,EAAE;AACxC,EAAE,YAAY,GAAG,YAAY,IAAI,EAAE,CAAC;AACpC,EAAE,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,YAAY,CAAC,CAAC;AACxC,EAAE,MAAM,UAAU,GAAG,IAAI,KAAK,CAAC,YAAY,CAAC,CAAC;AAC7C,EAAE,IAAI,IAAI,GAAG,CAAC,CAAC;AACf,EAAE,IAAI,IAAI,GAAG,CAAC,CAAC;AACf,EAAE,IAAI,aAAa,CAAC;AACpB;AACA,EAAE,GAAG,GAAG,GAAG,KAAK,SAAS,GAAG,GAAG,GAAG,IAAI,CAAC;AACvC;AACA,EAAE,OAAO,SAAS,IAAI,CAAC,WAAW,EAAE;AACpC,IAAI,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;AAC3B;AACA,IAAI,MAAM,SAAS,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC;AACvC;AACA,IAAI,IAAI,CAAC,aAAa,EAAE;AACxB,MAAM,aAAa,GAAG,GAAG,CAAC;AAC1B,KAAK;AACL;AACA,IAAI,KAAK,CAAC,IAAI,CAAC,GAAG,WAAW,CAAC;AAC9B,IAAI,UAAU,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC;AAC3B;AACA,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC;AACjB,IAAI,IAAI,UAAU,GAAG,CAAC,CAAC;AACvB;AACA,IAAI,OAAO,CAAC,KAAK,IAAI,EAAE;AACvB,MAAM,UAAU,IAAI,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;AAC/B,MAAM,CAAC,GAAG,CAAC,GAAG,YAAY,CAAC;AAC3B,KAAK;AACL;AACA,IAAI,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,YAAY,CAAC;AACrC;AACA,IAAI,IAAI,IAAI,KAAK,IAAI,EAAE;AACvB,MAAM,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,YAAY,CAAC;AACvC,KAAK;AACL;AACA,IAAI,IAAI,GAAG,GAAG,aAAa,GAAG,GAAG,EAAE;AACnC,MAAM,OAAO;AACb,KAAK;AACL;AACA,IAAI,MAAM,MAAM,GAAG,SAAS,IAAI,GAAG,GAAG,SAAS,CAAC;AAChD;AACA,IAAI,OAAO,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,GAAG,IAAI,GAAG,MAAM,CAAC,GAAG,SAAS,CAAC;AACvE,GAAG,CAAC;AACJ;;AC7CA,MAAM,UAAU,GAAG,MAAM,CAAC,WAAW,CAAC,CAAC;AACvC;AACA,MAAM,oBAAoB,SAASC,MAAM,CAAC,SAAS;AACnD,EAAE,WAAW,CAAC,OAAO,EAAE;AACvB,IAAI,OAAO,GAAG3B,OAAK,CAAC,YAAY,CAAC,OAAO,EAAE;AAC1C,MAAM,OAAO,EAAE,CAAC;AAChB,MAAM,SAAS,EAAE,EAAE,GAAG,IAAI;AAC1B,MAAM,YAAY,EAAE,GAAG;AACvB,MAAM,UAAU,EAAE,GAAG;AACrB,MAAM,SAAS,EAAE,CAAC;AAClB,MAAM,YAAY,EAAE,EAAE;AACtB,KAAK,EAAE,IAAI,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK;AAC/B,MAAM,OAAO,CAACA,OAAK,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;AAC9C,KAAK,CAAC,CAAC;AACP;AACA,IAAI,KAAK,CAAC;AACV,MAAM,qBAAqB,EAAE,OAAO,CAAC,SAAS;AAC9C,KAAK,CAAC,CAAC;AACP;AACA,IAAI,MAAM,IAAI,GAAG,IAAI,CAAC;AACtB;AACA,IAAI,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG;AACzC,MAAM,MAAM,EAAE,OAAO,CAAC,MAAM;AAC5B,MAAM,UAAU,EAAE,OAAO,CAAC,UAAU;AACpC,MAAM,SAAS,EAAE,OAAO,CAAC,SAAS;AAClC,MAAM,SAAS,EAAE,OAAO,CAAC,SAAS;AAClC,MAAM,OAAO,EAAE,OAAO,CAAC,OAAO;AAC9B,MAAM,YAAY,EAAE,OAAO,CAAC,YAAY;AACxC,MAAM,SAAS,EAAE,CAAC;AAClB,MAAM,UAAU,EAAE,KAAK;AACvB,MAAM,mBAAmB,EAAE,CAAC;AAC5B,MAAM,EAAE,EAAE,IAAI,CAAC,GAAG,EAAE;AACpB,MAAM,KAAK,EAAE,CAAC;AACd,MAAM,cAAc,EAAE,IAAI;AAC1B,KAAK,CAAC;AACN;AACA,IAAI,MAAM,YAAY,GAAG,WAAW,CAAC,SAAS,CAAC,SAAS,GAAG,OAAO,CAAC,YAAY,EAAE,SAAS,CAAC,UAAU,CAAC,CAAC;AACvG;AACA,IAAI,IAAI,CAAC,EAAE,CAAC,aAAa,EAAE,KAAK,IAAI;AACpC,MAAM,IAAI,KAAK,KAAK,UAAU,EAAE;AAChC,QAAQ,IAAI,CAAC,SAAS,CAAC,UAAU,EAAE;AACnC,UAAU,SAAS,CAAC,UAAU,GAAG,IAAI,CAAC;AACtC,SAAS;AACT,OAAO;AACP,KAAK,CAAC,CAAC;AACP;AACA,IAAI,IAAI,aAAa,GAAG,CAAC,CAAC;AAC1B;AACA,IAAI,SAAS,CAAC,cAAc,GAAG,QAAQ,CAAC,SAAS,gBAAgB,GAAG;AACpE,MAAM,MAAM,UAAU,GAAG,SAAS,CAAC,MAAM,CAAC;AAC1C,MAAM,MAAM,gBAAgB,GAAG,SAAS,CAAC,SAAS,CAAC;AACnD,MAAM,MAAM,aAAa,GAAG,gBAAgB,GAAG,aAAa,CAAC;AAC7D,MAAM,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,SAAS,EAAE,OAAO;AACnD;AACA,MAAM,MAAM,IAAI,GAAG,YAAY,CAAC,aAAa,CAAC,CAAC;AAC/C;AACA,MAAM,aAAa,GAAG,gBAAgB,CAAC;AACvC;AACA,MAAM,OAAO,CAAC,QAAQ,CAAC,MAAM;AAC7B,QAAQ,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE;AAC9B,UAAU,QAAQ,EAAE,gBAAgB;AACpC,UAAU,OAAO,EAAE,UAAU;AAC7B,UAAU,UAAU,EAAE,UAAU,IAAI,gBAAgB,GAAG,UAAU,IAAI,SAAS;AAC9E,UAAU,OAAO,EAAE,aAAa;AAChC,UAAU,MAAM,EAAE,IAAI,GAAG,IAAI,GAAG,SAAS;AACzC,UAAU,WAAW,EAAE,IAAI,IAAI,UAAU,IAAI,gBAAgB,IAAI,UAAU;AAC3E,YAAY,CAAC,UAAU,GAAG,gBAAgB,IAAI,IAAI,GAAG,SAAS;AAC9D,SAAS,CAAC,CAAC;AACX,OAAO,CAAC,CAAC;AACT,KAAK,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;AAC5B;AACA,IAAI,MAAM,QAAQ,GAAG,MAAM;AAC3B,MAAM,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;AACrC,KAAK,CAAC;AACN;AACA,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;AAC/B,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;AACjC,GAAG;AACH;AACA,EAAE,KAAK,CAAC,IAAI,EAAE;AACd,IAAI,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC;AACvC;AACA,IAAI,IAAI,SAAS,CAAC,cAAc,EAAE;AAClC,MAAM,SAAS,CAAC,cAAc,EAAE,CAAC;AACjC,KAAK;AACL;AACA,IAAI,OAAO,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;AAC7B,GAAG;AACH;AACA,EAAE,UAAU,CAAC,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE;AACxC,IAAI,MAAM,IAAI,GAAG,IAAI,CAAC;AACtB,IAAI,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC;AACvC,IAAI,MAAM,OAAO,GAAG,SAAS,CAAC,OAAO,CAAC;AACtC;AACA,IAAI,MAAM,qBAAqB,GAAG,IAAI,CAAC,qBAAqB,CAAC;AAC7D;AACA,IAAI,MAAM,UAAU,GAAG,SAAS,CAAC,UAAU,CAAC;AAC5C;AACA,IAAI,MAAM,OAAO,GAAG,IAAI,GAAG,UAAU,CAAC;AACtC,IAAI,MAAM,cAAc,IAAI,OAAO,GAAG,OAAO,CAAC,CAAC;AAC/C,IAAI,MAAM,YAAY,GAAG,SAAS,CAAC,YAAY,KAAK,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,YAAY,EAAE,cAAc,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC;AACxH;AACA,IAAI,SAAS,SAAS,CAAC,MAAM,EAAE,SAAS,EAAE;AAC1C,MAAM,MAAM,KAAK,GAAG,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;AAC9C,MAAM,SAAS,CAAC,SAAS,IAAI,KAAK,CAAC;AACnC,MAAM,SAAS,CAAC,KAAK,IAAI,KAAK,CAAC;AAC/B;AACA,MAAM,IAAI,SAAS,CAAC,UAAU,EAAE;AAChC,QAAQ,SAAS,CAAC,cAAc,EAAE,CAAC;AACnC,OAAO;AACP;AACA,MAAM,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE;AAC7B,QAAQ,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;AACpC,OAAO,MAAM;AACb,QAAQ,SAAS,CAAC,cAAc,GAAG,MAAM;AACzC,UAAU,SAAS,CAAC,cAAc,GAAG,IAAI,CAAC;AAC1C,UAAU,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;AACtC,SAAS,CAAC;AACV,OAAO;AACP,KAAK;AACL;AACA,IAAI,MAAM,cAAc,GAAG,CAAC,MAAM,EAAE,SAAS,KAAK;AAClD,MAAM,MAAM,SAAS,GAAG,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;AAClD,MAAM,IAAI,cAAc,GAAG,IAAI,CAAC;AAChC,MAAM,IAAI,YAAY,GAAG,qBAAqB,CAAC;AAC/C,MAAM,IAAI,SAAS,CAAC;AACpB,MAAM,IAAI,MAAM,GAAG,CAAC,CAAC;AACrB;AACA,MAAM,IAAI,OAAO,EAAE;AACnB,QAAQ,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;AAC/B;AACA,QAAQ,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,CAAC,MAAM,IAAI,GAAG,GAAG,SAAS,CAAC,EAAE,CAAC,KAAK,UAAU,EAAE;AAC5E,UAAU,SAAS,CAAC,EAAE,GAAG,GAAG,CAAC;AAC7B,UAAU,SAAS,GAAG,cAAc,GAAG,SAAS,CAAC,KAAK,CAAC;AACvD,UAAU,SAAS,CAAC,KAAK,GAAG,SAAS,GAAG,CAAC,GAAG,CAAC,SAAS,GAAG,CAAC,CAAC;AAC3D,UAAU,MAAM,GAAG,CAAC,CAAC;AACrB,SAAS;AACT;AACA,QAAQ,SAAS,GAAG,cAAc,GAAG,SAAS,CAAC,KAAK,CAAC;AACrD,OAAO;AACP;AACA,MAAM,IAAI,OAAO,EAAE;AACnB,QAAQ,IAAI,SAAS,IAAI,CAAC,EAAE;AAC5B;AACA,UAAU,OAAO,UAAU,CAAC,MAAM;AAClC,YAAY,SAAS,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;AACpC,WAAW,EAAE,UAAU,GAAG,MAAM,CAAC,CAAC;AAClC,SAAS;AACT;AACA,QAAQ,IAAI,SAAS,GAAG,YAAY,EAAE;AACtC,UAAU,YAAY,GAAG,SAAS,CAAC;AACnC,SAAS;AACT,OAAO;AACP;AACA,MAAM,IAAI,YAAY,IAAI,SAAS,GAAG,YAAY,IAAI,CAAC,SAAS,GAAG,YAAY,IAAI,YAAY,EAAE;AACjG,QAAQ,cAAc,GAAG,MAAM,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;AACvD,QAAQ,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,YAAY,CAAC,CAAC;AAClD,OAAO;AACP;AACA,MAAM,SAAS,CAAC,MAAM,EAAE,cAAc,GAAG,MAAM;AAC/C,QAAQ,OAAO,CAAC,QAAQ,CAAC,SAAS,EAAE,IAAI,EAAE,cAAc,CAAC,CAAC;AAC1D,OAAO,GAAG,SAAS,CAAC,CAAC;AACrB,KAAK,CAAC;AACN;AACA,IAAI,cAAc,CAAC,KAAK,EAAE,SAAS,kBAAkB,CAAC,GAAG,EAAE,MAAM,EAAE;AACnE,MAAM,IAAI,GAAG,EAAE;AACf,QAAQ,OAAO,QAAQ,CAAC,GAAG,CAAC,CAAC;AAC7B,OAAO;AACP;AACA,MAAM,IAAI,MAAM,EAAE;AAClB,QAAQ,cAAc,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAC;AACnD,OAAO,MAAM;AACb,QAAQ,QAAQ,CAAC,IAAI,CAAC,CAAC;AACvB,OAAO;AACP,KAAK,CAAC,CAAC;AACP,GAAG;AACH;AACA,EAAE,SAAS,CAAC,MAAM,EAAE;AACpB,IAAI,IAAI,CAAC,UAAU,CAAC,CAAC,MAAM,GAAG,CAAC,MAAM,CAAC;AACtC,IAAI,OAAO,IAAI,CAAC;AAChB,GAAG;AACH,CAAC;AACD;AACA,6BAAe,oBAAoB;;AC9LnC,MAAM,CAAC,aAAa,CAAC,GAAG,MAAM,CAAC;AAC/B;AACA,MAAM,QAAQ,GAAG,iBAAiB,IAAI,EAAE;AACxC,EAAE,IAAI,IAAI,CAAC,MAAM,EAAE;AACnB,IAAI,OAAO,IAAI,CAAC,MAAM,GAAE;AACxB,GAAG,MAAM,IAAI,IAAI,CAAC,WAAW,EAAE;AAC/B,IAAI,MAAM,MAAM,IAAI,CAAC,WAAW,GAAE;AAClC,GAAG,MAAM,IAAI,IAAI,CAAC,aAAa,CAAC,EAAE;AAClC,IAAI,OAAO,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC;AACjC,GAAG,MAAM;AACT,IAAI,MAAM,IAAI,CAAC;AACf,GAAG;AACH,EAAC;AACD;AACA,iBAAe,QAAQ;;ACTvB,MAAM,iBAAiB,GAAGA,OAAK,CAAC,QAAQ,CAAC,WAAW,GAAG,IAAI,CAAC;AAC5D;AACA,MAAM,WAAW,GAAG,IAAI,WAAW,EAAE,CAAC;AACtC;AACA,MAAM,IAAI,GAAG,MAAM,CAAC;AACpB,MAAM,UAAU,GAAG,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;AAC5C,MAAM,gBAAgB,GAAG,CAAC,CAAC;AAC3B;AACA,MAAM,YAAY,CAAC;AACnB,EAAE,WAAW,CAAC,IAAI,EAAE,KAAK,EAAE;AAC3B,IAAI,MAAM,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC;AAC1C,IAAI,MAAM,aAAa,GAAGA,OAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AAChD;AACA,IAAI,IAAI,OAAO,GAAG,CAAC,sCAAsC,EAAE,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC;AAC7E,MAAM,CAAC,aAAa,IAAI,KAAK,CAAC,IAAI,GAAG,CAAC,YAAY,EAAE,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE;AAClF,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC;AACd;AACA,IAAI,IAAI,aAAa,EAAE;AACvB,MAAM,KAAK,GAAG,WAAW,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,cAAc,EAAE,IAAI,CAAC,CAAC,CAAC;AAC9E,KAAK,MAAM;AACX,MAAM,OAAO,IAAI,CAAC,cAAc,EAAE,KAAK,CAAC,IAAI,IAAI,0BAA0B,CAAC,EAAE,IAAI,CAAC,EAAC;AACnF,KAAK;AACL;AACA,IAAI,IAAI,CAAC,OAAO,GAAG,WAAW,CAAC,MAAM,CAAC,OAAO,GAAG,IAAI,CAAC,CAAC;AACtD;AACA,IAAI,IAAI,CAAC,aAAa,GAAG,aAAa,GAAG,KAAK,CAAC,UAAU,GAAG,KAAK,CAAC,IAAI,CAAC;AACvE;AACA,IAAI,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC,aAAa,GAAG,gBAAgB,CAAC;AAChF;AACA,IAAI,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;AACrB,IAAI,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;AACvB,GAAG;AACH;AACA,EAAE,OAAO,MAAM,EAAE;AACjB,IAAI,MAAM,IAAI,CAAC,OAAO,CAAC;AACvB;AACA,IAAI,MAAM,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC;AACzB;AACA,IAAI,GAAGA,OAAK,CAAC,YAAY,CAAC,KAAK,CAAC,EAAE;AAClC,MAAM,MAAM,KAAK,CAAC;AAClB,KAAK,MAAM;AACX,MAAM,OAAO4B,UAAQ,CAAC,KAAK,CAAC,CAAC;AAC7B,KAAK;AACL;AACA,IAAI,MAAM,UAAU,CAAC;AACrB,GAAG;AACH;AACA,EAAE,OAAO,UAAU,CAAC,IAAI,EAAE;AAC1B,MAAM,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC,KAAK,MAAM;AAC1D,QAAQ,IAAI,GAAG,KAAK;AACpB,QAAQ,IAAI,GAAG,KAAK;AACpB,QAAQ,GAAG,GAAG,KAAK;AACnB,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AACjB,GAAG;AACH,CAAC;AACD;AACA,MAAM,gBAAgB,GAAG,CAAC,IAAI,EAAE,cAAc,EAAE,OAAO,KAAK;AAC5D,EAAE,MAAM;AACR,IAAI,GAAG,GAAG,oBAAoB;AAC9B,IAAI,IAAI,GAAG,EAAE;AACb,IAAI,QAAQ,GAAG,GAAG,GAAG,GAAG,GAAG5B,OAAK,CAAC,cAAc,CAAC,IAAI,EAAE,iBAAiB,CAAC;AACxE,GAAG,GAAG,OAAO,IAAI,EAAE,CAAC;AACpB;AACA,EAAE,GAAG,CAACA,OAAK,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE;AAC9B,IAAI,MAAM,SAAS,CAAC,4BAA4B,CAAC,CAAC;AAClD,GAAG;AACH;AACA,EAAE,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,IAAI,QAAQ,CAAC,MAAM,GAAG,EAAE,EAAE;AACnD,IAAI,MAAM,KAAK,CAAC,wCAAwC,CAAC;AACzD,GAAG;AACH;AACA,EAAE,MAAM,aAAa,GAAG,WAAW,CAAC,MAAM,CAAC,IAAI,GAAG,QAAQ,GAAG,IAAI,CAAC,CAAC;AACnE,EAAE,MAAM,WAAW,GAAG,WAAW,CAAC,MAAM,CAAC,IAAI,GAAG,QAAQ,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC,CAAC;AAC/E,EAAE,IAAI,aAAa,GAAG,WAAW,CAAC,UAAU,CAAC;AAC7C;AACA,EAAE,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,KAAK;AAClE,IAAI,MAAM,IAAI,GAAG,IAAI,YAAY,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;AAC/C,IAAI,aAAa,IAAI,IAAI,CAAC,IAAI,CAAC;AAC/B,IAAI,OAAO,IAAI,CAAC;AAChB,GAAG,CAAC,CAAC;AACL;AACA,EAAE,aAAa,IAAI,aAAa,CAAC,UAAU,GAAG,KAAK,CAAC,MAAM,CAAC;AAC3D;AACA,EAAE,aAAa,GAAGA,OAAK,CAAC,cAAc,CAAC,aAAa,CAAC,CAAC;AACtD;AACA,EAAE,MAAM,eAAe,GAAG;AAC1B,IAAI,cAAc,EAAE,CAAC,8BAA8B,EAAE,QAAQ,CAAC,CAAC;AAC/D,IAAG;AACH;AACA,EAAE,IAAI,MAAM,CAAC,QAAQ,CAAC,aAAa,CAAC,EAAE;AACtC,IAAI,eAAe,CAAC,gBAAgB,CAAC,GAAG,aAAa,CAAC;AACtD,GAAG;AACH;AACA,EAAE,cAAc,IAAI,cAAc,CAAC,eAAe,CAAC,CAAC;AACpD;AACA,EAAE,OAAO,QAAQ,CAAC,IAAI,CAAC,CAAC,mBAAmB;AAC3C,IAAI,IAAI,MAAM,IAAI,IAAI,KAAK,EAAE;AAC7B,MAAM,MAAM,aAAa,CAAC;AAC1B,MAAM,OAAO,IAAI,CAAC,MAAM,EAAE,CAAC;AAC3B,KAAK;AACL;AACA,IAAI,MAAM,WAAW,CAAC;AACtB,GAAG,GAAG,CAAC,CAAC;AACR,CAAC,CAAC;AACF;AACA,yBAAe,gBAAgB;;AC1G/B,MAAM,yBAAyB,SAAS2B,MAAM,CAAC,SAAS,CAAC;AACzD,EAAE,WAAW,CAAC,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE;AACzC,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACrB,IAAI,QAAQ,EAAE,CAAC;AACf,GAAG;AACH;AACA,EAAE,UAAU,CAAC,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE;AACxC,IAAI,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE;AAC5B,MAAM,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,WAAW,CAAC;AACzC;AACA;AACA,MAAM,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE;AAC5B,QAAQ,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AACvC,QAAQ,MAAM,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC;AACxB,QAAQ,MAAM,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC;AACxB,QAAQ,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;AACpC,OAAO;AACP,KAAK;AACL;AACA,IAAI,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;AAChD,GAAG;AACH,CAAC;AACD;AACA,kCAAe,yBAAyB;;ACzBxC,MAAM,WAAW,GAAG,CAAC,EAAE,EAAE,OAAO,KAAK;AACrC,EAAE,OAAO3B,OAAK,CAAC,SAAS,CAAC,EAAE,CAAC,GAAG,UAAU,GAAG,IAAI,EAAE;AAClD,IAAI,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;AAC1B,IAAI,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,KAAK;AACzC,MAAM,IAAI;AACV,QAAQ,OAAO,GAAG,EAAE,CAAC,IAAI,EAAE,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;AAChE,OAAO,CAAC,OAAO,GAAG,EAAE;AACpB,QAAQ,EAAE,CAAC,GAAG,CAAC,CAAC;AAChB,OAAO;AACP,KAAK,EAAE,EAAE,CAAC,CAAC;AACX,GAAG,GAAG,EAAE,CAAC;AACT,EAAC;AACD;AACA,oBAAe,WAAW;;ACY1B,MAAM,WAAW,GAAG;AACpB,EAAE,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,YAAY;AACpC,EAAE,WAAW,EAAE,IAAI,CAAC,SAAS,CAAC,YAAY;AAC1C,CAAC,CAAC;AACF;AACA,MAAM,aAAa,GAAG;AACtB,EAAE,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,sBAAsB;AAC9C,EAAE,WAAW,EAAE,IAAI,CAAC,SAAS,CAAC,sBAAsB;AACpD,EAAC;AACD;AACA,MAAM,iBAAiB,GAAGA,OAAK,CAAC,UAAU,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;AACxE;AACA,MAAM,CAAC,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,WAAW,CAAC,GAAG,eAAe,CAAC;AAC/D;AACA,MAAM,OAAO,GAAG,SAAS,CAAC;AAC1B;AACA,MAAM,kBAAkB,GAAG,QAAQ,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,IAAI;AAC9D,EAAE,OAAO,QAAQ,GAAG,GAAG,CAAC;AACxB,CAAC,CAAC,CAAC;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,sBAAsB,CAAC,OAAO,EAAE;AACzC,EAAE,IAAI,OAAO,CAAC,eAAe,CAAC,KAAK,EAAE;AACrC,IAAI,OAAO,CAAC,eAAe,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;AAC3C,GAAG;AACH,EAAE,IAAI,OAAO,CAAC,eAAe,CAAC,MAAM,EAAE;AACtC,IAAI,OAAO,CAAC,eAAe,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;AAC5C,GAAG;AACH,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,QAAQ,CAAC,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE;AAClD,EAAE,IAAI,KAAK,GAAG,WAAW,CAAC;AAC1B,EAAE,IAAI,CAAC,KAAK,IAAI,KAAK,KAAK,KAAK,EAAE;AACjC,IAAI,MAAM,QAAQ,GAAG6B,kCAAc,CAAC,QAAQ,CAAC,CAAC;AAC9C,IAAI,IAAI,QAAQ,EAAE;AAClB,MAAM,KAAK,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,CAAC;AAChC,KAAK;AACL,GAAG;AACH,EAAE,IAAI,KAAK,EAAE;AACb;AACA,IAAI,IAAI,KAAK,CAAC,QAAQ,EAAE;AACxB,MAAM,KAAK,CAAC,IAAI,GAAG,CAAC,KAAK,CAAC,QAAQ,IAAI,EAAE,IAAI,GAAG,IAAI,KAAK,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC;AACzE,KAAK;AACL;AACA,IAAI,IAAI,KAAK,CAAC,IAAI,EAAE;AACpB;AACA,MAAM,IAAI,KAAK,CAAC,IAAI,CAAC,QAAQ,IAAI,KAAK,CAAC,IAAI,CAAC,QAAQ,EAAE;AACtD,QAAQ,KAAK,CAAC,IAAI,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,IAAI,EAAE,IAAI,GAAG,IAAI,KAAK,CAAC,IAAI,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC;AACrF,OAAO;AACP,MAAM,MAAM,MAAM,GAAG,MAAM;AAC3B,SAAS,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,MAAM,CAAC;AACjC,SAAS,QAAQ,CAAC,QAAQ,CAAC,CAAC;AAC5B,MAAM,OAAO,CAAC,OAAO,CAAC,qBAAqB,CAAC,GAAG,QAAQ,GAAG,MAAM,CAAC;AACjE,KAAK;AACL;AACA,IAAI,OAAO,CAAC,OAAO,CAAC,IAAI,GAAG,OAAO,CAAC,QAAQ,IAAI,OAAO,CAAC,IAAI,GAAG,GAAG,GAAG,OAAO,CAAC,IAAI,GAAG,EAAE,CAAC,CAAC;AACvF,IAAI,MAAM,SAAS,GAAG,KAAK,CAAC,QAAQ,IAAI,KAAK,CAAC,IAAI,CAAC;AACnD,IAAI,OAAO,CAAC,QAAQ,GAAG,SAAS,CAAC;AACjC;AACA,IAAI,OAAO,CAAC,IAAI,GAAG,SAAS,CAAC;AAC7B,IAAI,OAAO,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC;AAC9B,IAAI,OAAO,CAAC,IAAI,GAAG,QAAQ,CAAC;AAC5B,IAAI,IAAI,KAAK,CAAC,QAAQ,EAAE;AACxB,MAAM,OAAO,CAAC,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,QAAQ,GAAG,CAAC,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;AAC9F,KAAK;AACL,GAAG;AACH;AACA,EAAE,OAAO,CAAC,eAAe,CAAC,KAAK,GAAG,SAAS,cAAc,CAAC,eAAe,EAAE;AAC3E;AACA;AACA,IAAI,QAAQ,CAAC,eAAe,EAAE,WAAW,EAAE,eAAe,CAAC,IAAI,CAAC,CAAC;AACjE,GAAG,CAAC;AACJ,CAAC;AACD;AACA,MAAM,sBAAsB,GAAG,OAAO,OAAO,KAAK,WAAW,IAAI7B,OAAK,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,SAAS,CAAC;AACrG;AACA;AACA;AACA,MAAM,SAAS,GAAG,CAAC,aAAa,KAAK;AACrC,EAAE,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,KAAK;AAC1C,IAAI,IAAI,MAAM,CAAC;AACf,IAAI,IAAI,MAAM,CAAC;AACf;AACA,IAAI,MAAM,IAAI,GAAG,CAAC,KAAK,EAAE,UAAU,KAAK;AACxC,MAAM,IAAI,MAAM,EAAE,OAAO;AACzB,MAAM,MAAM,GAAG,IAAI,CAAC;AACpB,MAAM,MAAM,IAAI,MAAM,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;AAC1C,MAAK;AACL;AACA,IAAI,MAAM,QAAQ,GAAG,CAAC,KAAK,KAAK;AAChC,MAAM,IAAI,CAAC,KAAK,CAAC,CAAC;AAClB,MAAM,OAAO,CAAC,KAAK,CAAC,CAAC;AACrB,KAAK,CAAC;AACN;AACA,IAAI,MAAM,OAAO,GAAG,CAAC,MAAM,KAAK;AAChC,MAAM,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;AACzB,MAAM,MAAM,CAAC,MAAM,CAAC,CAAC;AACrB,MAAK;AACL;AACA,IAAI,aAAa,CAAC,QAAQ,EAAE,OAAO,EAAE,CAAC,aAAa,MAAM,MAAM,GAAG,aAAa,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;AACjG,GAAG,CAAC;AACJ,CAAC,CAAC;AACF;AACA,MAAM,aAAa,GAAG,CAAC,CAAC,OAAO,EAAE,MAAM,CAAC,KAAK;AAC7C,EAAE,IAAI,CAACA,OAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE;AAChC,IAAI,MAAM,SAAS,CAAC,0BAA0B,CAAC,CAAC;AAChD,GAAG;AACH,EAAE,QAAQ;AACV,IAAI,OAAO;AACX,IAAI,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AACxD,GAAG,EAAE;AACL,EAAC;AACD;AACA,MAAM,iBAAiB,GAAG,CAAC,OAAO,EAAE,MAAM,KAAK,aAAa,CAACA,OAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,OAAO,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC;AACpH;AACA;AACA,kBAAe,sBAAsB,IAAI,SAAS,WAAW,CAAC,MAAM,EAAE;AACtE,EAAE,OAAO,SAAS,CAAC,eAAe,mBAAmB,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE;AAC/E,IAAI,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM,CAAC;AACxC,IAAI,MAAM,CAAC,YAAY,EAAE,gBAAgB,CAAC,GAAG,MAAM,CAAC;AACpD,IAAI,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC;AAC/C,IAAI,IAAI,MAAM,CAAC;AACf,IAAI,IAAI,QAAQ,GAAG,KAAK,CAAC;AACzB,IAAI,IAAI,GAAG,CAAC;AACZ;AACA,IAAI,IAAI,MAAM,EAAE;AAChB,MAAM,MAAM,OAAO,GAAG8B,aAAW,CAAC,MAAM,EAAE,CAAC,KAAK,KAAK9B,OAAK,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,KAAK,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC;AAC7F;AACA,MAAM,MAAM,GAAG,CAAC,QAAQ,EAAE,GAAG,EAAE,EAAE,KAAK;AACtC,QAAQ,OAAO,CAAC,QAAQ,EAAE,GAAG,EAAE,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,KAAK;AACpD,UAAU,MAAM,SAAS,GAAGA,OAAK,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,iBAAiB,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,iBAAiB,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;AAC9H;AACA,UAAU,GAAG,CAAC,GAAG,GAAG,EAAE,CAAC,GAAG,EAAE,SAAS,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;AAC5F,SAAS,CAAC,CAAC;AACX,QAAO;AACP,KAAK;AACL;AACA;AACA,IAAI,MAAM,OAAO,GAAG,IAAI,YAAY,EAAE,CAAC;AACvC;AACA,IAAI,MAAM,UAAU,GAAG,MAAM;AAC7B,MAAM,IAAI,MAAM,CAAC,WAAW,EAAE;AAC9B,QAAQ,MAAM,CAAC,WAAW,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;AAC9C,OAAO;AACP;AACA,MAAM,IAAI,MAAM,CAAC,MAAM,EAAE;AACzB,QAAQ,MAAM,CAAC,MAAM,CAAC,mBAAmB,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;AAC1D,OAAO;AACP;AACA,MAAM,OAAO,CAAC,kBAAkB,EAAE,CAAC;AACnC,MAAK;AACL;AACA,IAAI,MAAM,CAAC,CAAC,KAAK,EAAE,UAAU,KAAK;AAClC,MAAM,MAAM,GAAG,IAAI,CAAC;AACpB,MAAM,IAAI,UAAU,EAAE;AACtB,QAAQ,QAAQ,GAAG,IAAI,CAAC;AACxB,QAAQ,UAAU,EAAE,CAAC;AACrB,OAAO;AACP,KAAK,CAAC,CAAC;AACP;AACA,IAAI,SAAS,KAAK,CAAC,MAAM,EAAE;AAC3B,MAAM,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,MAAM,IAAI,MAAM,CAAC,IAAI,GAAG,IAAI,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,CAAC,GAAG,MAAM,CAAC,CAAC;AACpG,KAAK;AACL;AACA,IAAI,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;AAClC;AACA,IAAI,IAAI,MAAM,CAAC,WAAW,IAAI,MAAM,CAAC,MAAM,EAAE;AAC7C,MAAM,MAAM,CAAC,WAAW,IAAI,MAAM,CAAC,WAAW,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;AAChE,MAAM,IAAI,MAAM,CAAC,MAAM,EAAE;AACzB,QAAQ,MAAM,CAAC,MAAM,CAAC,OAAO,GAAG,KAAK,EAAE,GAAG,MAAM,CAAC,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;AACzF,OAAO;AACP,KAAK;AACL;AACA;AACA,IAAI,MAAM,QAAQ,GAAG,aAAa,CAAC,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC;AAC/D,IAAI,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,QAAQ,EAAE,kBAAkB,CAAC,CAAC;AACzD,IAAI,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,IAAI,kBAAkB,CAAC,CAAC,CAAC,CAAC;AAC9D;AACA,IAAI,IAAI,QAAQ,KAAK,OAAO,EAAE;AAC9B,MAAM,IAAI,aAAa,CAAC;AACxB;AACA,MAAM,IAAI,MAAM,KAAK,KAAK,EAAE;AAC5B,QAAQ,OAAO,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE;AACvC,UAAU,MAAM,EAAE,GAAG;AACrB,UAAU,UAAU,EAAE,oBAAoB;AAC1C,UAAU,OAAO,EAAE,EAAE;AACrB,UAAU,MAAM;AAChB,SAAS,CAAC,CAAC;AACX,OAAO;AACP;AACA,MAAM,IAAI;AACV,QAAQ,aAAa,GAAG,WAAW,CAAC,MAAM,CAAC,GAAG,EAAE,YAAY,KAAK,MAAM,EAAE;AACzE,UAAU,IAAI,EAAE,MAAM,CAAC,GAAG,IAAI,MAAM,CAAC,GAAG,CAAC,IAAI;AAC7C,SAAS,CAAC,CAAC;AACX,OAAO,CAAC,OAAO,GAAG,EAAE;AACpB,QAAQ,MAAM,UAAU,CAAC,IAAI,CAAC,GAAG,EAAE,UAAU,CAAC,eAAe,EAAE,MAAM,CAAC,CAAC;AACvE,OAAO;AACP;AACA,MAAM,IAAI,YAAY,KAAK,MAAM,EAAE;AACnC,QAAQ,aAAa,GAAG,aAAa,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC;AACjE;AACA,QAAQ,IAAI,CAAC,gBAAgB,IAAI,gBAAgB,KAAK,MAAM,EAAE;AAC9D,UAAU,aAAa,GAAGA,OAAK,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;AACxD,SAAS;AACT,OAAO,MAAM,IAAI,YAAY,KAAK,QAAQ,EAAE;AAC5C,QAAQ,aAAa,GAAG2B,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;AAC5D,OAAO;AACP;AACA,MAAM,OAAO,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE;AACrC,QAAQ,IAAI,EAAE,aAAa;AAC3B,QAAQ,MAAM,EAAE,GAAG;AACnB,QAAQ,UAAU,EAAE,IAAI;AACxB,QAAQ,OAAO,EAAE,IAAIL,cAAY,EAAE;AACnC,QAAQ,MAAM;AACd,OAAO,CAAC,CAAC;AACT,KAAK;AACL;AACA,IAAI,IAAI,kBAAkB,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE;AACrD,MAAM,OAAO,MAAM,CAAC,IAAI,UAAU;AAClC,QAAQ,uBAAuB,GAAG,QAAQ;AAC1C,QAAQ,UAAU,CAAC,eAAe;AAClC,QAAQ,MAAM;AACd,OAAO,CAAC,CAAC;AACT,KAAK;AACL;AACA,IAAI,MAAM,OAAO,GAAGA,cAAY,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,SAAS,EAAE,CAAC;AAClE;AACA;AACA;AACA;AACA;AACA,IAAI,OAAO,CAAC,GAAG,CAAC,YAAY,EAAE,QAAQ,GAAG,OAAO,EAAE,KAAK,CAAC,CAAC;AACzD;AACA,IAAI,MAAM,kBAAkB,GAAG,MAAM,CAAC,kBAAkB,CAAC;AACzD,IAAI,MAAM,gBAAgB,GAAG,MAAM,CAAC,gBAAgB,CAAC;AACrD,IAAI,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;AACnC,IAAI,IAAI,aAAa,GAAG,SAAS,CAAC;AAClC,IAAI,IAAI,eAAe,GAAG,SAAS,CAAC;AACpC;AACA;AACA,IAAI,IAAItB,OAAK,CAAC,mBAAmB,CAAC,IAAI,CAAC,EAAE;AACzC,MAAM,MAAM,YAAY,GAAG,OAAO,CAAC,cAAc,CAAC,6BAA6B,CAAC,CAAC;AACjF;AACA,MAAM,IAAI,GAAG+B,kBAAgB,CAAC,IAAI,EAAE,CAAC,WAAW,KAAK;AACrD,QAAQ,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;AACjC,OAAO,EAAE;AACT,QAAQ,GAAG,EAAE,CAAC,MAAM,EAAE,OAAO,CAAC,SAAS,CAAC;AACxC,QAAQ,QAAQ,EAAE,YAAY,IAAI,YAAY,CAAC,CAAC,CAAC,IAAI,SAAS;AAC9D,OAAO,CAAC,CAAC;AACT;AACA,KAAK,MAAM,IAAI/B,OAAK,CAAC,UAAU,CAAC,IAAI,CAAC,IAAIA,OAAK,CAAC,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE;AAC5E,MAAM,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC;AACrC;AACA,MAAM,IAAI,CAAC,OAAO,CAAC,gBAAgB,EAAE,EAAE;AACvC,QAAQ,IAAI;AACZ,UAAU,MAAM,WAAW,GAAG,MAAMgC,UAAI,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC9E,UAAU,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,WAAW,IAAI,CAAC,IAAI,OAAO,CAAC,gBAAgB,CAAC,WAAW,CAAC,CAAC;AACpG;AACA,SAAS,CAAC,OAAO,CAAC,EAAE;AACpB,SAAS;AACT,OAAO;AACP,KAAK,MAAM,IAAIhC,OAAK,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE;AACnC,MAAM,IAAI,CAAC,IAAI,IAAI,OAAO,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,IAAI,0BAA0B,CAAC,CAAC;AACnF,MAAM,OAAO,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC;AAC/C,MAAM,IAAI,GAAG2B,MAAM,CAAC,QAAQ,CAAC,IAAI,CAACC,UAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;AAClD,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC5B,OAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE;AAC9C,MAAM,IAAI,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAE1B,MAAM,IAAIA,OAAK,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE;AAC5C,QAAQ,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC;AACjD,OAAO,MAAM,IAAIA,OAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE;AACvC,QAAQ,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;AAC1C,OAAO,MAAM;AACb,QAAQ,OAAO,MAAM,CAAC,IAAI,UAAU;AACpC,UAAU,mFAAmF;AAC7F,UAAU,UAAU,CAAC,eAAe;AACpC,UAAU,MAAM;AAChB,SAAS,CAAC,CAAC;AACX,OAAO;AACP;AACA;AACA,MAAM,OAAO,CAAC,gBAAgB,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;AACnD;AACA,MAAM,IAAI,MAAM,CAAC,aAAa,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,aAAa,EAAE;AAC3E,QAAQ,OAAO,MAAM,CAAC,IAAI,UAAU;AACpC,UAAU,8CAA8C;AACxD,UAAU,UAAU,CAAC,eAAe;AACpC,UAAU,MAAM;AAChB,SAAS,CAAC,CAAC;AACX,OAAO;AACP,KAAK;AACL;AACA,IAAI,MAAM,aAAa,GAAGA,OAAK,CAAC,cAAc,CAAC,OAAO,CAAC,gBAAgB,EAAE,CAAC,CAAC;AAC3E;AACA,IAAI,IAAIA,OAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE;AAChC,MAAM,aAAa,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;AACjC,MAAM,eAAe,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;AACnC,KAAK,MAAM;AACX,MAAM,aAAa,GAAG,eAAe,GAAG,OAAO,CAAC;AAChD,KAAK;AACL;AACA,IAAI,IAAI,IAAI,KAAK,gBAAgB,IAAI,aAAa,CAAC,EAAE;AACrD,MAAM,IAAI,CAACA,OAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE;AACjC,QAAQ,IAAI,GAAG2B,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC,CAAC;AAC/D,OAAO;AACP;AACA,MAAM,IAAI,GAAGA,MAAM,CAAC,QAAQ,CAAC,CAAC,IAAI,EAAE,IAAIM,sBAAoB,CAAC;AAC7D,QAAQ,MAAM,EAAE,aAAa;AAC7B,QAAQ,OAAO,EAAEjC,OAAK,CAAC,cAAc,CAAC,aAAa,CAAC;AACpD,OAAO,CAAC,CAAC,EAAEA,OAAK,CAAC,IAAI,CAAC,CAAC;AACvB;AACA,MAAM,gBAAgB,IAAI,IAAI,CAAC,EAAE,CAAC,UAAU,EAAE,QAAQ,IAAI;AAC1D,QAAQ,gBAAgB,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE;AACjD,UAAU,MAAM,EAAE,IAAI;AACtB,SAAS,CAAC,CAAC,CAAC;AACZ,OAAO,CAAC,CAAC;AACT,KAAK;AACL;AACA;AACA,IAAI,IAAI,IAAI,GAAG,SAAS,CAAC;AACzB,IAAI,IAAI,MAAM,CAAC,IAAI,EAAE;AACrB,MAAM,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,EAAE,CAAC;AAClD,MAAM,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,EAAE,CAAC;AAClD,MAAM,IAAI,GAAG,QAAQ,GAAG,GAAG,GAAG,QAAQ,CAAC;AACvC,KAAK;AACL;AACA,IAAI,IAAI,CAAC,IAAI,IAAI,MAAM,CAAC,QAAQ,EAAE;AAClC,MAAM,MAAM,WAAW,GAAG,MAAM,CAAC,QAAQ,CAAC;AAC1C,MAAM,MAAM,WAAW,GAAG,MAAM,CAAC,QAAQ,CAAC;AAC1C,MAAM,IAAI,GAAG,WAAW,GAAG,GAAG,GAAG,WAAW,CAAC;AAC7C,KAAK;AACL;AACA,IAAI,IAAI,IAAI,OAAO,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC;AAC5C;AACA,IAAI,IAAI,IAAI,CAAC;AACb;AACA,IAAI,IAAI;AACR,MAAM,IAAI,GAAG,QAAQ;AACrB,QAAQ,MAAM,CAAC,QAAQ,GAAG,MAAM,CAAC,MAAM;AACvC,QAAQ,MAAM,CAAC,MAAM;AACrB,QAAQ,MAAM,CAAC,gBAAgB;AAC/B,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;AAC3B,KAAK,CAAC,OAAO,GAAG,EAAE;AAClB,MAAM,MAAM,SAAS,GAAG,IAAI,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;AAC/C,MAAM,SAAS,CAAC,MAAM,GAAG,MAAM,CAAC;AAChC,MAAM,SAAS,CAAC,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC;AACjC,MAAM,SAAS,CAAC,MAAM,GAAG,IAAI,CAAC;AAC9B,MAAM,OAAO,MAAM,CAAC,SAAS,CAAC,CAAC;AAC/B,KAAK;AACL;AACA,IAAI,OAAO,CAAC,GAAG;AACf,MAAM,iBAAiB;AACvB,MAAM,yBAAyB,IAAI,iBAAiB,GAAG,MAAM,GAAG,EAAE,CAAC,EAAE,KAAK;AAC1E,OAAO,CAAC;AACR;AACA,IAAI,MAAM,OAAO,GAAG;AACpB,MAAM,IAAI;AACV,MAAM,MAAM,EAAE,MAAM;AACpB,MAAM,OAAO,EAAE,OAAO,CAAC,MAAM,EAAE;AAC/B,MAAM,MAAM,EAAE,EAAE,IAAI,EAAE,MAAM,CAAC,SAAS,EAAE,KAAK,EAAE,MAAM,CAAC,UAAU,EAAE;AAClE,MAAM,IAAI;AACV,MAAM,QAAQ;AACd,MAAM,MAAM;AACZ,MAAM,cAAc,EAAE,sBAAsB;AAC5C,MAAM,eAAe,EAAE,EAAE;AACzB,KAAK,CAAC;AACN;AACA;AACA,IAAI,CAACA,OAAK,CAAC,WAAW,CAAC,MAAM,CAAC,KAAK,OAAO,CAAC,MAAM,GAAG,MAAM,CAAC,CAAC;AAC5D;AACA,IAAI,IAAI,MAAM,CAAC,UAAU,EAAE;AAC3B,MAAM,OAAO,CAAC,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC;AAC7C,KAAK,MAAM;AACX,MAAM,OAAO,CAAC,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;AACzC,MAAM,OAAO,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;AACjC,MAAM,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC,KAAK,EAAE,QAAQ,GAAG,IAAI,GAAG,MAAM,CAAC,QAAQ,IAAI,MAAM,CAAC,IAAI,GAAG,GAAG,GAAG,MAAM,CAAC,IAAI,GAAG,EAAE,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;AACjI,KAAK;AACL;AACA,IAAI,IAAI,SAAS,CAAC;AAClB,IAAI,MAAM,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;AAC1D,IAAI,OAAO,CAAC,KAAK,GAAG,cAAc,GAAG,MAAM,CAAC,UAAU,GAAG,MAAM,CAAC,SAAS,CAAC;AAC1E,IAAI,IAAI,MAAM,CAAC,SAAS,EAAE;AAC1B,MAAM,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC;AACnC,KAAK,MAAM,IAAI,MAAM,CAAC,YAAY,KAAK,CAAC,EAAE;AAC1C,MAAM,SAAS,GAAG,cAAc,GAAGkC,UAAK,GAAG,IAAI,CAAC;AAChD,KAAK,MAAM;AACX,MAAM,IAAI,MAAM,CAAC,YAAY,EAAE;AAC/B,QAAQ,OAAO,CAAC,YAAY,GAAG,MAAM,CAAC,YAAY,CAAC;AACnD,OAAO;AACP,MAAM,IAAI,MAAM,CAAC,cAAc,EAAE;AACjC,QAAQ,OAAO,CAAC,eAAe,CAAC,MAAM,GAAG,MAAM,CAAC,cAAc,CAAC;AAC/D,OAAO;AACP,MAAM,SAAS,GAAG,cAAc,GAAG,WAAW,GAAG,UAAU,CAAC;AAC5D,KAAK;AACL;AACA,IAAI,IAAI,MAAM,CAAC,aAAa,GAAG,CAAC,CAAC,EAAE;AACnC,MAAM,OAAO,CAAC,aAAa,GAAG,MAAM,CAAC,aAAa,CAAC;AACnD,KAAK,MAAM;AACX;AACA,MAAM,OAAO,CAAC,aAAa,GAAG,QAAQ,CAAC;AACvC,KAAK;AACL;AACA,IAAI,IAAI,MAAM,CAAC,kBAAkB,EAAE;AACnC,MAAM,OAAO,CAAC,kBAAkB,GAAG,MAAM,CAAC,kBAAkB,CAAC;AAC7D,KAAK;AACL;AACA;AACA,IAAI,GAAG,GAAG,SAAS,CAAC,OAAO,CAAC,OAAO,EAAE,SAAS,cAAc,CAAC,GAAG,EAAE;AAClE,MAAM,IAAI,GAAG,CAAC,SAAS,EAAE,OAAO;AAChC;AACA,MAAM,MAAM,OAAO,GAAG,CAAC,GAAG,CAAC,CAAC;AAC5B;AACA,MAAM,MAAM,cAAc,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC;AAC5D;AACA,MAAM,IAAI,kBAAkB,EAAE;AAC9B,QAAQ,MAAM,eAAe,GAAG,IAAID,sBAAoB,CAAC;AACzD,UAAU,MAAM,EAAEjC,OAAK,CAAC,cAAc,CAAC,cAAc,CAAC;AACtD,UAAU,OAAO,EAAEA,OAAK,CAAC,cAAc,CAAC,eAAe,CAAC;AACxD,SAAS,CAAC,CAAC;AACX;AACA,QAAQ,kBAAkB,IAAI,eAAe,CAAC,EAAE,CAAC,UAAU,EAAE,QAAQ,IAAI;AACzE,UAAU,kBAAkB,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE;AACrD,YAAY,QAAQ,EAAE,IAAI;AAC1B,WAAW,CAAC,CAAC,CAAC;AACd,SAAS,CAAC,CAAC;AACX;AACA,QAAQ,OAAO,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;AACtC,OAAO;AACP;AACA;AACA,MAAM,IAAI,cAAc,GAAG,GAAG,CAAC;AAC/B;AACA;AACA,MAAM,MAAM,WAAW,GAAG,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC;AACzC;AACA;AACA,MAAM,IAAI,MAAM,CAAC,UAAU,KAAK,KAAK,IAAI,GAAG,CAAC,OAAO,CAAC,kBAAkB,CAAC,EAAE;AAC1E;AACA;AACA,QAAQ,IAAI,MAAM,KAAK,MAAM,IAAI,GAAG,CAAC,UAAU,KAAK,GAAG,EAAE;AACzD,UAAU,OAAO,GAAG,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC;AACjD,SAAS;AACT;AACA,QAAQ,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,kBAAkB,CAAC,IAAI,EAAE,EAAE,WAAW,EAAE;AACrE;AACA,QAAQ,KAAK,MAAM,CAAC;AACpB,QAAQ,KAAK,QAAQ,CAAC;AACtB,QAAQ,KAAK,UAAU,CAAC;AACxB,QAAQ,KAAK,YAAY;AACzB;AACA,UAAU,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC,CAAC;AACtD;AACA;AACA,UAAU,OAAO,GAAG,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC;AACjD,UAAU,MAAM;AAChB,QAAQ,KAAK,SAAS;AACtB,UAAU,OAAO,CAAC,IAAI,CAAC,IAAImC,2BAAyB,EAAE,CAAC,CAAC;AACxD;AACA;AACA,UAAU,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC,CAAC;AACtD;AACA;AACA,UAAU,OAAO,GAAG,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC;AACjD,UAAU,MAAM;AAChB,QAAQ,KAAK,IAAI;AACjB,UAAU,IAAI,iBAAiB,EAAE;AACjC,YAAY,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,sBAAsB,CAAC,aAAa,CAAC,CAAC,CAAC;AACrE,YAAY,OAAO,GAAG,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC;AACnD,WAAW;AACX,SAAS;AACT,OAAO;AACP;AACA,MAAM,cAAc,GAAG,OAAO,CAAC,MAAM,GAAG,CAAC,GAAGR,MAAM,CAAC,QAAQ,CAAC,OAAO,EAAE3B,OAAK,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;AAC9F;AACA,MAAM,MAAM,YAAY,GAAG2B,MAAM,CAAC,QAAQ,CAAC,cAAc,EAAE,MAAM;AACjE,QAAQ,YAAY,EAAE,CAAC;AACvB,QAAQ,UAAU,EAAE,CAAC;AACrB,OAAO,CAAC,CAAC;AACT;AACA,MAAM,MAAM,QAAQ,GAAG;AACvB,QAAQ,MAAM,EAAE,GAAG,CAAC,UAAU;AAC9B,QAAQ,UAAU,EAAE,GAAG,CAAC,aAAa;AACrC,QAAQ,OAAO,EAAE,IAAIL,cAAY,CAAC,GAAG,CAAC,OAAO,CAAC;AAC9C,QAAQ,MAAM;AACd,QAAQ,OAAO,EAAE,WAAW;AAC5B,OAAO,CAAC;AACR;AACA,MAAM,IAAI,YAAY,KAAK,QAAQ,EAAE;AACrC,QAAQ,QAAQ,CAAC,IAAI,GAAG,cAAc,CAAC;AACvC,QAAQ,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;AAC1C,OAAO,MAAM;AACb,QAAQ,MAAM,cAAc,GAAG,EAAE,CAAC;AAClC,QAAQ,IAAI,kBAAkB,GAAG,CAAC,CAAC;AACnC;AACA,QAAQ,cAAc,CAAC,EAAE,CAAC,MAAM,EAAE,SAAS,gBAAgB,CAAC,KAAK,EAAE;AACnE,UAAU,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACrC,UAAU,kBAAkB,IAAI,KAAK,CAAC,MAAM,CAAC;AAC7C;AACA;AACA,UAAU,IAAI,MAAM,CAAC,gBAAgB,GAAG,CAAC,CAAC,IAAI,kBAAkB,GAAG,MAAM,CAAC,gBAAgB,EAAE;AAC5F;AACA,YAAY,QAAQ,GAAG,IAAI,CAAC;AAC5B,YAAY,cAAc,CAAC,OAAO,EAAE,CAAC;AACrC,YAAY,MAAM,CAAC,IAAI,UAAU,CAAC,2BAA2B,GAAG,MAAM,CAAC,gBAAgB,GAAG,WAAW;AACrG,cAAc,UAAU,CAAC,gBAAgB,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC,CAAC;AACjE,WAAW;AACX,SAAS,CAAC,CAAC;AACX;AACA,QAAQ,cAAc,CAAC,EAAE,CAAC,SAAS,EAAE,SAAS,oBAAoB,GAAG;AACrE,UAAU,IAAI,QAAQ,EAAE;AACxB,YAAY,OAAO;AACnB,WAAW;AACX;AACA,UAAU,MAAM,GAAG,GAAG,IAAI,UAAU;AACpC,YAAY,2BAA2B,GAAG,MAAM,CAAC,gBAAgB,GAAG,WAAW;AAC/E,YAAY,UAAU,CAAC,gBAAgB;AACvC,YAAY,MAAM;AAClB,YAAY,WAAW;AACvB,WAAW,CAAC;AACZ,UAAU,cAAc,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;AACtC,UAAU,MAAM,CAAC,GAAG,CAAC,CAAC;AACtB,SAAS,CAAC,CAAC;AACX;AACA,QAAQ,cAAc,CAAC,EAAE,CAAC,OAAO,EAAE,SAAS,iBAAiB,CAAC,GAAG,EAAE;AACnE,UAAU,IAAI,GAAG,CAAC,SAAS,EAAE,OAAO;AACpC,UAAU,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC,CAAC;AAClE,SAAS,CAAC,CAAC;AACX;AACA,QAAQ,cAAc,CAAC,EAAE,CAAC,KAAK,EAAE,SAAS,eAAe,GAAG;AAC5D,UAAU,IAAI;AACd,YAAY,IAAI,YAAY,GAAG,cAAc,CAAC,MAAM,KAAK,CAAC,GAAG,cAAc,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;AAC/G,YAAY,IAAI,YAAY,KAAK,aAAa,EAAE;AAChD,cAAc,YAAY,GAAG,YAAY,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC;AACrE,cAAc,IAAI,CAAC,gBAAgB,IAAI,gBAAgB,KAAK,MAAM,EAAE;AACpE,gBAAgB,YAAY,GAAGtB,OAAK,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;AAC5D,eAAe;AACf,aAAa;AACb,YAAY,QAAQ,CAAC,IAAI,GAAG,YAAY,CAAC;AACzC,WAAW,CAAC,OAAO,GAAG,EAAE;AACxB,YAAY,OAAO,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC;AAC1F,WAAW;AACX,UAAU,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;AAC5C,SAAS,CAAC,CAAC;AACX,OAAO;AACP;AACA,MAAM,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,IAAI;AACnC,QAAQ,IAAI,CAAC,cAAc,CAAC,SAAS,EAAE;AACvC,UAAU,cAAc,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;AAC5C,UAAU,cAAc,CAAC,OAAO,EAAE,CAAC;AACnC,SAAS;AACT,OAAO,CAAC,CAAC;AACT,KAAK,CAAC,CAAC;AACP;AACA,IAAI,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,IAAI;AACjC,MAAM,MAAM,CAAC,GAAG,CAAC,CAAC;AAClB,MAAM,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;AACvB,KAAK,CAAC,CAAC;AACP;AACA;AACA,IAAI,GAAG,CAAC,EAAE,CAAC,OAAO,EAAE,SAAS,kBAAkB,CAAC,GAAG,EAAE;AACrD;AACA;AACA,MAAM,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC;AACtD,KAAK,CAAC,CAAC;AACP;AACA;AACA,IAAI,GAAG,CAAC,EAAE,CAAC,QAAQ,EAAE,SAAS,mBAAmB,CAAC,MAAM,EAAE;AAC1D;AACA,MAAM,MAAM,CAAC,YAAY,CAAC,IAAI,EAAE,IAAI,GAAG,EAAE,CAAC,CAAC;AAC3C,KAAK,CAAC,CAAC;AACP;AACA;AACA,IAAI,IAAI,MAAM,CAAC,OAAO,EAAE;AACxB;AACA,MAAM,MAAM,OAAO,GAAG,QAAQ,CAAC,MAAM,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;AACnD;AACA,MAAM,IAAI,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE;AACjC,QAAQ,MAAM,CAAC,IAAI,UAAU;AAC7B,UAAU,+CAA+C;AACzD,UAAU,UAAU,CAAC,oBAAoB;AACzC,UAAU,MAAM;AAChB,UAAU,GAAG;AACb,SAAS,CAAC,CAAC;AACX;AACA,QAAQ,OAAO;AACf,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,GAAG,CAAC,UAAU,CAAC,OAAO,EAAE,SAAS,oBAAoB,GAAG;AAC9D,QAAQ,IAAI,MAAM,EAAE,OAAO;AAC3B,QAAQ,IAAI,mBAAmB,GAAG,MAAM,CAAC,OAAO,GAAG,aAAa,GAAG,MAAM,CAAC,OAAO,GAAG,aAAa,GAAG,kBAAkB,CAAC;AACvH,QAAQ,MAAM,YAAY,GAAG,MAAM,CAAC,YAAY,IAAI,oBAAoB,CAAC;AACzE,QAAQ,IAAI,MAAM,CAAC,mBAAmB,EAAE;AACxC,UAAU,mBAAmB,GAAG,MAAM,CAAC,mBAAmB,CAAC;AAC3D,SAAS;AACT,QAAQ,MAAM,CAAC,IAAI,UAAU;AAC7B,UAAU,mBAAmB;AAC7B,UAAU,YAAY,CAAC,mBAAmB,GAAG,UAAU,CAAC,SAAS,GAAG,UAAU,CAAC,YAAY;AAC3F,UAAU,MAAM;AAChB,UAAU,GAAG;AACb,SAAS,CAAC,CAAC;AACX,QAAQ,KAAK,EAAE,CAAC;AAChB,OAAO,CAAC,CAAC;AACT,KAAK;AACL;AACA;AACA;AACA,IAAI,IAAIA,OAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE;AAC9B,MAAM,IAAI,KAAK,GAAG,KAAK,CAAC;AACxB,MAAM,IAAI,OAAO,GAAG,KAAK,CAAC;AAC1B;AACA,MAAM,IAAI,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM;AAC3B,QAAQ,KAAK,GAAG,IAAI,CAAC;AACrB,OAAO,CAAC,CAAC;AACT;AACA,MAAM,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,IAAI;AAChC,QAAQ,OAAO,GAAG,IAAI,CAAC;AACvB,QAAQ,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;AACzB,OAAO,CAAC,CAAC;AACT;AACA,MAAM,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM;AAC7B,QAAQ,IAAI,CAAC,KAAK,IAAI,CAAC,OAAO,EAAE;AAChC,UAAU,KAAK,CAAC,IAAI,aAAa,CAAC,iCAAiC,EAAE,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC;AACnF,SAAS;AACT,OAAO,CAAC,CAAC;AACT;AACA,MAAM,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACrB,KAAK,MAAM;AACX,MAAM,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AACpB,KAAK;AACL,GAAG,CAAC,CAAC;AACL;;ACnqBA,cAAe,QAAQ,CAAC,qBAAqB;AAC7C;AACA;AACA,EAAE;AACF,IAAI,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE;AACtD,MAAM,MAAM,MAAM,GAAG,CAAC,IAAI,GAAG,GAAG,GAAG,kBAAkB,CAAC,KAAK,CAAC,CAAC,CAAC;AAC9D;AACA,MAAMA,OAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,UAAU,GAAG,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC;AAC3F;AACA,MAAMA,OAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,CAAC;AAC1D;AACA,MAAMA,OAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC,CAAC;AAChE;AACA,MAAM,MAAM,KAAK,IAAI,IAAI,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AAC/C;AACA,MAAM,QAAQ,CAAC,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1C,KAAK;AACL;AACA,IAAI,IAAI,CAAC,IAAI,EAAE;AACf,MAAM,MAAM,KAAK,GAAG,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,YAAY,GAAG,IAAI,GAAG,WAAW,CAAC,CAAC,CAAC;AACzF,MAAM,QAAQ,KAAK,GAAG,kBAAkB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,EAAE;AAC3D,KAAK;AACL;AACA,IAAI,MAAM,CAAC,IAAI,EAAE;AACjB,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,EAAE,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,QAAQ,CAAC,CAAC;AAClD,KAAK;AACL,GAAG;AACH;AACA;AACA;AACA;AACA,EAAE;AACF,IAAI,KAAK,GAAG,EAAE;AACd,IAAI,IAAI,GAAG;AACX,MAAM,OAAO,IAAI,CAAC;AAClB,KAAK;AACL,IAAI,MAAM,GAAG,EAAE;AACf,GAAG;;ACnCH,sBAAe,QAAQ,CAAC,qBAAqB;AAC7C;AACA;AACA;AACA,EAAE,CAAC,SAAS,kBAAkB,GAAG;AACjC,IAAI,MAAM,IAAI,GAAG,iBAAiB,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;AAC7D,IAAI,MAAM,cAAc,GAAG,QAAQ,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;AACvD,IAAI,IAAI,SAAS,CAAC;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,SAAS,UAAU,CAAC,GAAG,EAAE;AAC7B,MAAM,IAAI,IAAI,GAAG,GAAG,CAAC;AACrB;AACA,MAAM,IAAI,IAAI,EAAE;AAChB;AACA,QAAQ,cAAc,CAAC,YAAY,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;AAClD,QAAQ,IAAI,GAAG,cAAc,CAAC,IAAI,CAAC;AACnC,OAAO;AACP;AACA,MAAM,cAAc,CAAC,YAAY,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;AAChD;AACA;AACA,MAAM,OAAO;AACb,QAAQ,IAAI,EAAE,cAAc,CAAC,IAAI;AACjC,QAAQ,QAAQ,EAAE,cAAc,CAAC,QAAQ,GAAG,cAAc,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,EAAE;AAC1F,QAAQ,IAAI,EAAE,cAAc,CAAC,IAAI;AACjC,QAAQ,MAAM,EAAE,cAAc,CAAC,MAAM,GAAG,cAAc,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,GAAG,EAAE;AACrF,QAAQ,IAAI,EAAE,cAAc,CAAC,IAAI,GAAG,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,EAAE;AAC9E,QAAQ,QAAQ,EAAE,cAAc,CAAC,QAAQ;AACzC,QAAQ,IAAI,EAAE,cAAc,CAAC,IAAI;AACjC,QAAQ,QAAQ,EAAE,CAAC,cAAc,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,GAAG;AAC5D,UAAU,cAAc,CAAC,QAAQ;AACjC,UAAU,GAAG,GAAG,cAAc,CAAC,QAAQ;AACvC,OAAO,CAAC;AACR,KAAK;AACL;AACA,IAAI,SAAS,GAAG,UAAU,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,OAAO,SAAS,eAAe,CAAC,UAAU,EAAE;AAChD,MAAM,MAAM,MAAM,GAAG,CAACA,OAAK,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,UAAU,CAAC,UAAU,CAAC,GAAG,UAAU,CAAC;AACxF,MAAM,QAAQ,MAAM,CAAC,QAAQ,KAAK,SAAS,CAAC,QAAQ;AACpD,UAAU,MAAM,CAAC,IAAI,KAAK,SAAS,CAAC,IAAI,EAAE;AAC1C,KAAK,CAAC;AACN,GAAG,GAAG;AACN;AACA;AACA,EAAE,CAAC,SAAS,qBAAqB,GAAG;AACpC,IAAI,OAAO,SAAS,eAAe,GAAG;AACtC,MAAM,OAAO,IAAI,CAAC;AAClB,KAAK,CAAC;AACN,GAAG,GAAG;;AClDN,SAAS,oBAAoB,CAAC,QAAQ,EAAE,gBAAgB,EAAE;AAC1D,EAAE,IAAI,aAAa,GAAG,CAAC,CAAC;AACxB,EAAE,MAAM,YAAY,GAAG,WAAW,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;AAC5C;AACA,EAAE,OAAO,CAAC,IAAI;AACd,IAAI,MAAM,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC;AAC5B,IAAI,MAAM,KAAK,GAAG,CAAC,CAAC,gBAAgB,GAAG,CAAC,CAAC,KAAK,GAAG,SAAS,CAAC;AAC3D,IAAI,MAAM,aAAa,GAAG,MAAM,GAAG,aAAa,CAAC;AACjD,IAAI,MAAM,IAAI,GAAG,YAAY,CAAC,aAAa,CAAC,CAAC;AAC7C,IAAI,MAAM,OAAO,GAAG,MAAM,IAAI,KAAK,CAAC;AACpC;AACA,IAAI,aAAa,GAAG,MAAM,CAAC;AAC3B;AACA,IAAI,MAAM,IAAI,GAAG;AACjB,MAAM,MAAM;AACZ,MAAM,KAAK;AACX,MAAM,QAAQ,EAAE,KAAK,IAAI,MAAM,GAAG,KAAK,IAAI,SAAS;AACpD,MAAM,KAAK,EAAE,aAAa;AAC1B,MAAM,IAAI,EAAE,IAAI,GAAG,IAAI,GAAG,SAAS;AACnC,MAAM,SAAS,EAAE,IAAI,IAAI,KAAK,IAAI,OAAO,GAAG,CAAC,KAAK,GAAG,MAAM,IAAI,IAAI,GAAG,SAAS;AAC/E,MAAM,KAAK,EAAE,CAAC;AACd,KAAK,CAAC;AACN;AACA,IAAI,IAAI,CAAC,gBAAgB,GAAG,UAAU,GAAG,QAAQ,CAAC,GAAG,IAAI,CAAC;AAC1D;AACA,IAAI,QAAQ,CAAC,IAAI,CAAC,CAAC;AACnB,GAAG,CAAC;AACJ,CAAC;AACD;AACA,MAAM,qBAAqB,GAAG,OAAO,cAAc,KAAK,WAAW,CAAC;AACpE;AACA,iBAAe,qBAAqB,IAAI,UAAU,MAAM,EAAE;AAC1D,EAAE,OAAO,IAAI,OAAO,CAAC,SAAS,kBAAkB,CAAC,OAAO,EAAE,MAAM,EAAE;AAClE,IAAI,IAAI,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC;AAClC,IAAI,MAAM,cAAc,GAAGsB,cAAY,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,SAAS,EAAE,CAAC;AACzE,IAAI,IAAI,CAAC,YAAY,EAAE,aAAa,CAAC,GAAG,MAAM,CAAC;AAC/C,IAAI,IAAI,UAAU,CAAC;AACnB,IAAI,SAAS,IAAI,GAAG;AACpB,MAAM,IAAI,MAAM,CAAC,WAAW,EAAE;AAC9B,QAAQ,MAAM,CAAC,WAAW,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;AACnD,OAAO;AACP;AACA,MAAM,IAAI,MAAM,CAAC,MAAM,EAAE;AACzB,QAAQ,MAAM,CAAC,MAAM,CAAC,mBAAmB,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;AAC/D,OAAO;AACP,KAAK;AACL;AACA,IAAI,IAAI,WAAW,CAAC;AACpB;AACA,IAAI,IAAItB,OAAK,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE;AACvC,MAAM,IAAI,QAAQ,CAAC,qBAAqB,IAAI,QAAQ,CAAC,8BAA8B,EAAE;AACrF,QAAQ,cAAc,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;AAC7C,OAAO,MAAM,IAAI,CAAC,WAAW,GAAG,cAAc,CAAC,cAAc,EAAE,MAAM,KAAK,EAAE;AAC5E;AACA,QAAQ,MAAM,CAAC,IAAI,EAAE,GAAG,MAAM,CAAC,GAAG,WAAW,GAAG,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC;AACvH,QAAQ,cAAc,CAAC,cAAc,CAAC,CAAC,IAAI,IAAI,qBAAqB,EAAE,GAAG,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;AAC7F,OAAO;AACP,KAAK;AACL;AACA,IAAI,IAAI,OAAO,GAAG,IAAI,cAAc,EAAE,CAAC;AACvC;AACA;AACA,IAAI,IAAI,MAAM,CAAC,IAAI,EAAE;AACrB,MAAM,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,EAAE,CAAC;AAClD,MAAM,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC,kBAAkB,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,GAAG,EAAE,CAAC;AACtG,MAAM,cAAc,CAAC,GAAG,CAAC,eAAe,EAAE,QAAQ,GAAG,IAAI,CAAC,QAAQ,GAAG,GAAG,GAAG,QAAQ,CAAC,CAAC,CAAC;AACtF,KAAK;AACL;AACA,IAAI,MAAM,QAAQ,GAAG,aAAa,CAAC,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC;AAC/D;AACA,IAAI,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,WAAW,EAAE,EAAE,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,gBAAgB,CAAC,EAAE,IAAI,CAAC,CAAC;AAChH;AACA;AACA,IAAI,OAAO,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;AACrC;AACA,IAAI,SAAS,SAAS,GAAG;AACzB,MAAM,IAAI,CAAC,OAAO,EAAE;AACpB,QAAQ,OAAO;AACf,OAAO;AACP;AACA,MAAM,MAAM,eAAe,GAAGsB,cAAY,CAAC,IAAI;AAC/C,QAAQ,uBAAuB,IAAI,OAAO,IAAI,OAAO,CAAC,qBAAqB,EAAE;AAC7E,OAAO,CAAC;AACR,MAAM,MAAM,YAAY,GAAG,CAAC,YAAY,IAAI,YAAY,KAAK,MAAM,IAAI,YAAY,KAAK,MAAM;AAC9F,QAAQ,OAAO,CAAC,YAAY,GAAG,OAAO,CAAC,QAAQ,CAAC;AAChD,MAAM,MAAM,QAAQ,GAAG;AACvB,QAAQ,IAAI,EAAE,YAAY;AAC1B,QAAQ,MAAM,EAAE,OAAO,CAAC,MAAM;AAC9B,QAAQ,UAAU,EAAE,OAAO,CAAC,UAAU;AACtC,QAAQ,OAAO,EAAE,eAAe;AAChC,QAAQ,MAAM;AACd,QAAQ,OAAO;AACf,OAAO,CAAC;AACR;AACA,MAAM,MAAM,CAAC,SAAS,QAAQ,CAAC,KAAK,EAAE;AACtC,QAAQ,OAAO,CAAC,KAAK,CAAC,CAAC;AACvB,QAAQ,IAAI,EAAE,CAAC;AACf,OAAO,EAAE,SAAS,OAAO,CAAC,GAAG,EAAE;AAC/B,QAAQ,MAAM,CAAC,GAAG,CAAC,CAAC;AACpB,QAAQ,IAAI,EAAE,CAAC;AACf,OAAO,EAAE,QAAQ,CAAC,CAAC;AACnB;AACA;AACA,MAAM,OAAO,GAAG,IAAI,CAAC;AACrB,KAAK;AACL;AACA,IAAI,IAAI,WAAW,IAAI,OAAO,EAAE;AAChC;AACA,MAAM,OAAO,CAAC,SAAS,GAAG,SAAS,CAAC;AACpC,KAAK,MAAM;AACX;AACA,MAAM,OAAO,CAAC,kBAAkB,GAAG,SAAS,UAAU,GAAG;AACzD,QAAQ,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,UAAU,KAAK,CAAC,EAAE;AAClD,UAAU,OAAO;AACjB,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,QAAQ,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,IAAI,EAAE,OAAO,CAAC,WAAW,IAAI,OAAO,CAAC,WAAW,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE;AAC1G,UAAU,OAAO;AACjB,SAAS;AACT;AACA;AACA,QAAQ,UAAU,CAAC,SAAS,CAAC,CAAC;AAC9B,OAAO,CAAC;AACR,KAAK;AACL;AACA;AACA,IAAI,OAAO,CAAC,OAAO,GAAG,SAAS,WAAW,GAAG;AAC7C,MAAM,IAAI,CAAC,OAAO,EAAE;AACpB,QAAQ,OAAO;AACf,OAAO;AACP;AACA,MAAM,MAAM,CAAC,IAAI,UAAU,CAAC,iBAAiB,EAAE,UAAU,CAAC,YAAY,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;AAC1F;AACA;AACA,MAAM,OAAO,GAAG,IAAI,CAAC;AACrB,KAAK,CAAC;AACN;AACA;AACA,IAAI,OAAO,CAAC,OAAO,GAAG,SAAS,WAAW,GAAG;AAC7C;AACA;AACA,MAAM,MAAM,CAAC,IAAI,UAAU,CAAC,eAAe,EAAE,UAAU,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;AACvF;AACA;AACA,MAAM,OAAO,GAAG,IAAI,CAAC;AACrB,KAAK,CAAC;AACN;AACA;AACA,IAAI,OAAO,CAAC,SAAS,GAAG,SAAS,aAAa,GAAG;AACjD,MAAM,IAAI,mBAAmB,GAAG,MAAM,CAAC,OAAO,GAAG,aAAa,GAAG,MAAM,CAAC,OAAO,GAAG,aAAa,GAAG,kBAAkB,CAAC;AACrH,MAAM,MAAM,YAAY,GAAG,MAAM,CAAC,YAAY,IAAI,oBAAoB,CAAC;AACvE,MAAM,IAAI,MAAM,CAAC,mBAAmB,EAAE;AACtC,QAAQ,mBAAmB,GAAG,MAAM,CAAC,mBAAmB,CAAC;AACzD,OAAO;AACP,MAAM,MAAM,CAAC,IAAI,UAAU;AAC3B,QAAQ,mBAAmB;AAC3B,QAAQ,YAAY,CAAC,mBAAmB,GAAG,UAAU,CAAC,SAAS,GAAG,UAAU,CAAC,YAAY;AACzF,QAAQ,MAAM;AACd,QAAQ,OAAO,CAAC,CAAC,CAAC;AAClB;AACA;AACA,MAAM,OAAO,GAAG,IAAI,CAAC;AACrB,KAAK,CAAC;AACN;AACA;AACA;AACA;AACA,IAAI,GAAG,QAAQ,CAAC,qBAAqB,EAAE;AACvC,MAAM,aAAa,IAAItB,OAAK,CAAC,UAAU,CAAC,aAAa,CAAC,KAAK,aAAa,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC;AAClG;AACA,MAAM,IAAI,aAAa,KAAK,aAAa,KAAK,KAAK,IAAI,eAAe,CAAC,QAAQ,CAAC,CAAC,EAAE;AACnF;AACA,QAAQ,MAAM,SAAS,GAAG,MAAM,CAAC,cAAc,IAAI,MAAM,CAAC,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;AAChH;AACA,QAAQ,IAAI,SAAS,EAAE;AACvB,UAAU,cAAc,CAAC,GAAG,CAAC,MAAM,CAAC,cAAc,EAAE,SAAS,CAAC,CAAC;AAC/D,SAAS;AACT,OAAO;AACP,KAAK;AACL;AACA;AACA,IAAI,WAAW,KAAK,SAAS,IAAI,cAAc,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;AACrE;AACA;AACA,IAAI,IAAI,kBAAkB,IAAI,OAAO,EAAE;AACvC,MAAMA,OAAK,CAAC,OAAO,CAAC,cAAc,CAAC,MAAM,EAAE,EAAE,SAAS,gBAAgB,CAAC,GAAG,EAAE,GAAG,EAAE;AACjF,QAAQ,OAAO,CAAC,gBAAgB,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;AAC3C,OAAO,CAAC,CAAC;AACT,KAAK;AACL;AACA;AACA,IAAI,IAAI,CAACA,OAAK,CAAC,WAAW,CAAC,MAAM,CAAC,eAAe,CAAC,EAAE;AACpD,MAAM,OAAO,CAAC,eAAe,GAAG,CAAC,CAAC,MAAM,CAAC,eAAe,CAAC;AACzD,KAAK;AACL;AACA;AACA,IAAI,IAAI,YAAY,IAAI,YAAY,KAAK,MAAM,EAAE;AACjD,MAAM,OAAO,CAAC,YAAY,GAAG,MAAM,CAAC,YAAY,CAAC;AACjD,KAAK;AACL;AACA;AACA,IAAI,IAAI,OAAO,MAAM,CAAC,kBAAkB,KAAK,UAAU,EAAE;AACzD,MAAM,OAAO,CAAC,gBAAgB,CAAC,UAAU,EAAE,oBAAoB,CAAC,MAAM,CAAC,kBAAkB,EAAE,IAAI,CAAC,CAAC,CAAC;AAClG,KAAK;AACL;AACA;AACA,IAAI,IAAI,OAAO,MAAM,CAAC,gBAAgB,KAAK,UAAU,IAAI,OAAO,CAAC,MAAM,EAAE;AACzE,MAAM,OAAO,CAAC,MAAM,CAAC,gBAAgB,CAAC,UAAU,EAAE,oBAAoB,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC,CAAC;AACjG,KAAK;AACL;AACA,IAAI,IAAI,MAAM,CAAC,WAAW,IAAI,MAAM,CAAC,MAAM,EAAE;AAC7C;AACA;AACA,MAAM,UAAU,GAAG,MAAM,IAAI;AAC7B,QAAQ,IAAI,CAAC,OAAO,EAAE;AACtB,UAAU,OAAO;AACjB,SAAS;AACT,QAAQ,MAAM,CAAC,CAAC,MAAM,IAAI,MAAM,CAAC,IAAI,GAAG,IAAI,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,CAAC;AAC3F,QAAQ,OAAO,CAAC,KAAK,EAAE,CAAC;AACxB,QAAQ,OAAO,GAAG,IAAI,CAAC;AACvB,OAAO,CAAC;AACR;AACA,MAAM,MAAM,CAAC,WAAW,IAAI,MAAM,CAAC,WAAW,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;AACrE,MAAM,IAAI,MAAM,CAAC,MAAM,EAAE;AACzB,QAAQ,MAAM,CAAC,MAAM,CAAC,OAAO,GAAG,UAAU,EAAE,GAAG,MAAM,CAAC,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;AACnG,OAAO;AACP,KAAK;AACL;AACA,IAAI,MAAM,QAAQ,GAAG,aAAa,CAAC,QAAQ,CAAC,CAAC;AAC7C;AACA,IAAI,IAAI,QAAQ,IAAI,QAAQ,CAAC,SAAS,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE;AACjE,MAAM,MAAM,CAAC,IAAI,UAAU,CAAC,uBAAuB,GAAG,QAAQ,GAAG,GAAG,EAAE,UAAU,CAAC,eAAe,EAAE,MAAM,CAAC,CAAC,CAAC;AAC3G,MAAM,OAAO;AACb,KAAK;AACL;AACA;AACA;AACA,IAAI,OAAO,CAAC,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,CAAC;AACtC,GAAG,CAAC,CAAC;AACL;;AC9PA,MAAM,aAAa,GAAG;AACtB,EAAE,IAAI,EAAE,WAAW;AACnB,EAAE,GAAG,EAAE,UAAU;AACjB,EAAC;AACD;AACAA,OAAK,CAAC,OAAO,CAAC,aAAa,EAAE,CAAC,EAAE,EAAE,KAAK,KAAK;AAC5C,EAAE,IAAI,EAAE,EAAE;AACV,IAAI,IAAI;AACR,MAAM,MAAM,CAAC,cAAc,CAAC,EAAE,EAAE,MAAM,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;AACjD,KAAK,CAAC,OAAO,CAAC,EAAE;AAChB;AACA,KAAK;AACL,IAAI,MAAM,CAAC,cAAc,CAAC,EAAE,EAAE,aAAa,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;AACtD,GAAG;AACH,CAAC,CAAC,CAAC;AACH;AACA,MAAM,YAAY,GAAG,CAAC,MAAM,KAAK,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC,CAAC;AAC/C;AACA,MAAM,gBAAgB,GAAG,CAAC,OAAO,KAAKA,OAAK,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,OAAO,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,CAAC;AACzG;AACA,eAAe;AACf,EAAE,UAAU,EAAE,CAAC,QAAQ,KAAK;AAC5B,IAAI,QAAQ,GAAGA,OAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,QAAQ,GAAG,CAAC,QAAQ,CAAC,CAAC;AAC/D;AACA,IAAI,MAAM,CAAC,MAAM,CAAC,GAAG,QAAQ,CAAC;AAC9B,IAAI,IAAI,aAAa,CAAC;AACtB,IAAI,IAAI,OAAO,CAAC;AAChB;AACA,IAAI,MAAM,eAAe,GAAG,EAAE,CAAC;AAC/B;AACA,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,EAAE;AACrC,MAAM,aAAa,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;AAClC,MAAM,IAAI,EAAE,CAAC;AACb;AACA,MAAM,OAAO,GAAG,aAAa,CAAC;AAC9B;AACA,MAAM,IAAI,CAAC,gBAAgB,CAAC,aAAa,CAAC,EAAE;AAC5C,QAAQ,OAAO,GAAG,aAAa,CAAC,CAAC,EAAE,GAAG,MAAM,CAAC,aAAa,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC;AAC5E;AACA,QAAQ,IAAI,OAAO,KAAK,SAAS,EAAE;AACnC,UAAU,MAAM,IAAI,UAAU,CAAC,CAAC,iBAAiB,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;AAC1D,SAAS;AACT,OAAO;AACP;AACA,MAAM,IAAI,OAAO,EAAE;AACnB,QAAQ,MAAM;AACd,OAAO;AACP;AACA,MAAM,eAAe,CAAC,EAAE,IAAI,GAAG,GAAG,CAAC,CAAC,GAAG,OAAO,CAAC;AAC/C,KAAK;AACL;AACA,IAAI,IAAI,CAAC,OAAO,EAAE;AAClB;AACA,MAAM,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,eAAe,CAAC;AACrD,SAAS,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,KAAK,CAAC,KAAK,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC;AAC9C,WAAW,KAAK,KAAK,KAAK,GAAG,qCAAqC,GAAG,+BAA+B,CAAC;AACrG,SAAS,CAAC;AACV;AACA,MAAM,IAAI,CAAC,GAAG,MAAM;AACpB,SAAS,OAAO,CAAC,MAAM,GAAG,CAAC,GAAG,WAAW,GAAG,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,GAAG,GAAG,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;AACjH,QAAQ,yBAAyB,CAAC;AAClC;AACA,MAAM,MAAM,IAAI,UAAU;AAC1B,QAAQ,CAAC,qDAAqD,CAAC,GAAG,CAAC;AACnE,QAAQ,iBAAiB;AACzB,OAAO,CAAC;AACR,KAAK;AACL;AACA,IAAI,OAAO,OAAO,CAAC;AACnB,GAAG;AACH,EAAE,QAAQ,EAAE,aAAa;AACzB;;ACnEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,4BAA4B,CAAC,MAAM,EAAE;AAC9C,EAAE,IAAI,MAAM,CAAC,WAAW,EAAE;AAC1B,IAAI,MAAM,CAAC,WAAW,CAAC,gBAAgB,EAAE,CAAC;AAC1C,GAAG;AACH;AACA,EAAE,IAAI,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE;AAC9C,IAAI,MAAM,IAAI,aAAa,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;AAC1C,GAAG;AACH,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACe,SAAS,eAAe,CAAC,MAAM,EAAE;AAChD,EAAE,4BAA4B,CAAC,MAAM,CAAC,CAAC;AACvC;AACA,EAAE,MAAM,CAAC,OAAO,GAAGsB,cAAY,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;AACrD;AACA;AACA,EAAE,MAAM,CAAC,IAAI,GAAG,aAAa,CAAC,IAAI;AAClC,IAAI,MAAM;AACV,IAAI,MAAM,CAAC,gBAAgB;AAC3B,GAAG,CAAC;AACJ;AACA,EAAE,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE;AAC9D,IAAI,MAAM,CAAC,OAAO,CAAC,cAAc,CAAC,mCAAmC,EAAE,KAAK,CAAC,CAAC;AAC9E,GAAG;AACH;AACA,EAAE,MAAM,OAAO,GAAG,QAAQ,CAAC,UAAU,CAAC,MAAM,CAAC,OAAO,IAAID,UAAQ,CAAC,OAAO,CAAC,CAAC;AAC1E;AACA,EAAE,OAAO,OAAO,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,SAAS,mBAAmB,CAAC,QAAQ,EAAE;AACrE,IAAI,4BAA4B,CAAC,MAAM,CAAC,CAAC;AACzC;AACA;AACA,IAAI,QAAQ,CAAC,IAAI,GAAG,aAAa,CAAC,IAAI;AACtC,MAAM,MAAM;AACZ,MAAM,MAAM,CAAC,iBAAiB;AAC9B,MAAM,QAAQ;AACd,KAAK,CAAC;AACN;AACA,IAAI,QAAQ,CAAC,OAAO,GAAGC,cAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;AAC3D;AACA,IAAI,OAAO,QAAQ,CAAC;AACpB,GAAG,EAAE,SAAS,kBAAkB,CAAC,MAAM,EAAE;AACzC,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE;AAC3B,MAAM,4BAA4B,CAAC,MAAM,CAAC,CAAC;AAC3C;AACA;AACA,MAAM,IAAI,MAAM,IAAI,MAAM,CAAC,QAAQ,EAAE;AACrC,QAAQ,MAAM,CAAC,QAAQ,CAAC,IAAI,GAAG,aAAa,CAAC,IAAI;AACjD,UAAU,MAAM;AAChB,UAAU,MAAM,CAAC,iBAAiB;AAClC,UAAU,MAAM,CAAC,QAAQ;AACzB,SAAS,CAAC;AACV,QAAQ,MAAM,CAAC,QAAQ,CAAC,OAAO,GAAGA,cAAY,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;AAC7E,OAAO;AACP,KAAK;AACL;AACA,IAAI,OAAO,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;AAClC,GAAG,CAAC,CAAC;AACL;;AC3EA,MAAM,eAAe,GAAG,CAAC,KAAK,KAAK,KAAK,YAAYA,cAAY,GAAG,KAAK,CAAC,MAAM,EAAE,GAAG,KAAK,CAAC;AAC1F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACe,SAAS,WAAW,CAAC,OAAO,EAAE,OAAO,EAAE;AACtD;AACA,EAAE,OAAO,GAAG,OAAO,IAAI,EAAE,CAAC;AAC1B,EAAE,MAAM,MAAM,GAAG,EAAE,CAAC;AACpB;AACA,EAAE,SAAS,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE;AACpD,IAAI,IAAItB,OAAK,CAAC,aAAa,CAAC,MAAM,CAAC,IAAIA,OAAK,CAAC,aAAa,CAAC,MAAM,CAAC,EAAE;AACpE,MAAM,OAAOA,OAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;AAC1D,KAAK,MAAM,IAAIA,OAAK,CAAC,aAAa,CAAC,MAAM,CAAC,EAAE;AAC5C,MAAM,OAAOA,OAAK,CAAC,KAAK,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;AACrC,KAAK,MAAM,IAAIA,OAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;AACtC,MAAM,OAAO,MAAM,CAAC,KAAK,EAAE,CAAC;AAC5B,KAAK;AACL,IAAI,OAAO,MAAM,CAAC;AAClB,GAAG;AACH;AACA;AACA,EAAE,SAAS,mBAAmB,CAAC,CAAC,EAAE,CAAC,EAAE,QAAQ,EAAE;AAC/C,IAAI,IAAI,CAACA,OAAK,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE;AAC/B,MAAM,OAAO,cAAc,CAAC,CAAC,EAAE,CAAC,EAAE,QAAQ,CAAC,CAAC;AAC5C,KAAK,MAAM,IAAI,CAACA,OAAK,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE;AACtC,MAAM,OAAO,cAAc,CAAC,SAAS,EAAE,CAAC,EAAE,QAAQ,CAAC,CAAC;AACpD,KAAK;AACL,GAAG;AACH;AACA;AACA,EAAE,SAAS,gBAAgB,CAAC,CAAC,EAAE,CAAC,EAAE;AAClC,IAAI,IAAI,CAACA,OAAK,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE;AAC/B,MAAM,OAAO,cAAc,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;AAC1C,KAAK;AACL,GAAG;AACH;AACA;AACA,EAAE,SAAS,gBAAgB,CAAC,CAAC,EAAE,CAAC,EAAE;AAClC,IAAI,IAAI,CAACA,OAAK,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE;AAC/B,MAAM,OAAO,cAAc,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;AAC1C,KAAK,MAAM,IAAI,CAACA,OAAK,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE;AACtC,MAAM,OAAO,cAAc,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;AAC1C,KAAK;AACL,GAAG;AACH;AACA;AACA,EAAE,SAAS,eAAe,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE;AACvC,IAAI,IAAI,IAAI,IAAI,OAAO,EAAE;AACzB,MAAM,OAAO,cAAc,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAClC,KAAK,MAAM,IAAI,IAAI,IAAI,OAAO,EAAE;AAChC,MAAM,OAAO,cAAc,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;AAC1C,KAAK;AACL,GAAG;AACH;AACA,EAAE,MAAM,QAAQ,GAAG;AACnB,IAAI,GAAG,EAAE,gBAAgB;AACzB,IAAI,MAAM,EAAE,gBAAgB;AAC5B,IAAI,IAAI,EAAE,gBAAgB;AAC1B,IAAI,OAAO,EAAE,gBAAgB;AAC7B,IAAI,gBAAgB,EAAE,gBAAgB;AACtC,IAAI,iBAAiB,EAAE,gBAAgB;AACvC,IAAI,gBAAgB,EAAE,gBAAgB;AACtC,IAAI,OAAO,EAAE,gBAAgB;AAC7B,IAAI,cAAc,EAAE,gBAAgB;AACpC,IAAI,eAAe,EAAE,gBAAgB;AACrC,IAAI,aAAa,EAAE,gBAAgB;AACnC,IAAI,OAAO,EAAE,gBAAgB;AAC7B,IAAI,YAAY,EAAE,gBAAgB;AAClC,IAAI,cAAc,EAAE,gBAAgB;AACpC,IAAI,cAAc,EAAE,gBAAgB;AACpC,IAAI,gBAAgB,EAAE,gBAAgB;AACtC,IAAI,kBAAkB,EAAE,gBAAgB;AACxC,IAAI,UAAU,EAAE,gBAAgB;AAChC,IAAI,gBAAgB,EAAE,gBAAgB;AACtC,IAAI,aAAa,EAAE,gBAAgB;AACnC,IAAI,cAAc,EAAE,gBAAgB;AACpC,IAAI,SAAS,EAAE,gBAAgB;AAC/B,IAAI,SAAS,EAAE,gBAAgB;AAC/B,IAAI,UAAU,EAAE,gBAAgB;AAChC,IAAI,WAAW,EAAE,gBAAgB;AACjC,IAAI,UAAU,EAAE,gBAAgB;AAChC,IAAI,gBAAgB,EAAE,gBAAgB;AACtC,IAAI,cAAc,EAAE,eAAe;AACnC,IAAI,OAAO,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,mBAAmB,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,eAAe,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC;AACxF,GAAG,CAAC;AACJ;AACA,EAAEA,OAAK,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,EAAE,SAAS,kBAAkB,CAAC,IAAI,EAAE;AACpG,IAAI,MAAM,KAAK,GAAG,QAAQ,CAAC,IAAI,CAAC,IAAI,mBAAmB,CAAC;AACxD,IAAI,MAAM,WAAW,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,CAAC;AAClE,IAAI,CAACA,OAAK,CAAC,WAAW,CAAC,WAAW,CAAC,IAAI,KAAK,KAAK,eAAe,MAAM,MAAM,CAAC,IAAI,CAAC,GAAG,WAAW,CAAC,CAAC;AAClG,GAAG,CAAC,CAAC;AACL;AACA,EAAE,OAAO,MAAM,CAAC;AAChB;;ACpGA,MAAMoC,YAAU,GAAG,EAAE,CAAC;AACtB;AACA;AACA,CAAC,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,UAAU,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC,KAAK;AACrF,EAAEA,YAAU,CAAC,IAAI,CAAC,GAAG,SAAS,SAAS,CAAC,KAAK,EAAE;AAC/C,IAAI,OAAO,OAAO,KAAK,KAAK,IAAI,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,GAAG,GAAG,CAAC,GAAG,IAAI,CAAC;AACtE,GAAG,CAAC;AACJ,CAAC,CAAC,CAAC;AACH;AACA,MAAM,kBAAkB,GAAG,EAAE,CAAC;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACAA,YAAU,CAAC,YAAY,GAAG,SAAS,YAAY,CAAC,SAAS,EAAE,OAAO,EAAE,OAAO,EAAE;AAC7E,EAAE,SAAS,aAAa,CAAC,GAAG,EAAE,IAAI,EAAE;AACpC,IAAI,OAAO,UAAU,GAAG,OAAO,GAAG,0BAA0B,GAAG,GAAG,GAAG,IAAI,GAAG,IAAI,IAAI,OAAO,GAAG,IAAI,GAAG,OAAO,GAAG,EAAE,CAAC,CAAC;AACnH,GAAG;AACH;AACA;AACA,EAAE,OAAO,CAAC,KAAK,EAAE,GAAG,EAAE,IAAI,KAAK;AAC/B,IAAI,IAAI,SAAS,KAAK,KAAK,EAAE;AAC7B,MAAM,MAAM,IAAI,UAAU;AAC1B,QAAQ,aAAa,CAAC,GAAG,EAAE,mBAAmB,IAAI,OAAO,GAAG,MAAM,GAAG,OAAO,GAAG,EAAE,CAAC,CAAC;AACnF,QAAQ,UAAU,CAAC,cAAc;AACjC,OAAO,CAAC;AACR,KAAK;AACL;AACA,IAAI,IAAI,OAAO,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,EAAE;AAC7C,MAAM,kBAAkB,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;AACrC;AACA,MAAM,OAAO,CAAC,IAAI;AAClB,QAAQ,aAAa;AACrB,UAAU,GAAG;AACb,UAAU,8BAA8B,GAAG,OAAO,GAAG,yCAAyC;AAC9F,SAAS;AACT,OAAO,CAAC;AACR,KAAK;AACL;AACA,IAAI,OAAO,SAAS,GAAG,SAAS,CAAC,KAAK,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,IAAI,CAAC;AAC1D,GAAG,CAAC;AACJ,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,aAAa,CAAC,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE;AACtD,EAAE,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE;AACnC,IAAI,MAAM,IAAI,UAAU,CAAC,2BAA2B,EAAE,UAAU,CAAC,oBAAoB,CAAC,CAAC;AACvF,GAAG;AACH,EAAE,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AACpC,EAAE,IAAI,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC;AACtB,EAAE,OAAO,CAAC,EAAE,GAAG,CAAC,EAAE;AAClB,IAAI,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;AACxB,IAAI,MAAM,SAAS,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;AAClC,IAAI,IAAI,SAAS,EAAE;AACnB,MAAM,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;AACjC,MAAM,MAAM,MAAM,GAAG,KAAK,KAAK,SAAS,IAAI,SAAS,CAAC,KAAK,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC;AAC3E,MAAM,IAAI,MAAM,KAAK,IAAI,EAAE;AAC3B,QAAQ,MAAM,IAAI,UAAU,CAAC,SAAS,GAAG,GAAG,GAAG,WAAW,GAAG,MAAM,EAAE,UAAU,CAAC,oBAAoB,CAAC,CAAC;AACtG,OAAO;AACP,MAAM,SAAS;AACf,KAAK;AACL,IAAI,IAAI,YAAY,KAAK,IAAI,EAAE;AAC/B,MAAM,MAAM,IAAI,UAAU,CAAC,iBAAiB,GAAG,GAAG,EAAE,UAAU,CAAC,cAAc,CAAC,CAAC;AAC/E,KAAK;AACL,GAAG;AACH,CAAC;AACD;AACA,gBAAe;AACf,EAAE,aAAa;AACf,cAAEA,YAAU;AACZ,CAAC;;AC/ED,MAAM,UAAU,GAAG,SAAS,CAAC,UAAU,CAAC;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,KAAK,CAAC;AACZ,EAAE,WAAW,CAAC,cAAc,EAAE;AAC9B,IAAI,IAAI,CAAC,QAAQ,GAAG,cAAc,CAAC;AACnC,IAAI,IAAI,CAAC,YAAY,GAAG;AACxB,MAAM,OAAO,EAAE,IAAIC,oBAAkB,EAAE;AACvC,MAAM,QAAQ,EAAE,IAAIA,oBAAkB,EAAE;AACxC,KAAK,CAAC;AACN,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE,OAAO,CAAC,WAAW,EAAE,MAAM,EAAE;AAC/B;AACA;AACA,IAAI,IAAI,OAAO,WAAW,KAAK,QAAQ,EAAE;AACzC,MAAM,MAAM,GAAG,MAAM,IAAI,EAAE,CAAC;AAC5B,MAAM,MAAM,CAAC,GAAG,GAAG,WAAW,CAAC;AAC/B,KAAK,MAAM;AACX,MAAM,MAAM,GAAG,WAAW,IAAI,EAAE,CAAC;AACjC,KAAK;AACL;AACA,IAAI,MAAM,GAAG,WAAW,CAAC,IAAI,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;AAChD;AACA,IAAI,MAAM,CAAC,YAAY,EAAE,gBAAgB,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC;AAC7D;AACA,IAAI,IAAI,YAAY,KAAK,SAAS,EAAE;AACpC,MAAM,SAAS,CAAC,aAAa,CAAC,YAAY,EAAE;AAC5C,QAAQ,iBAAiB,EAAE,UAAU,CAAC,YAAY,CAAC,UAAU,CAAC,OAAO,CAAC;AACtE,QAAQ,iBAAiB,EAAE,UAAU,CAAC,YAAY,CAAC,UAAU,CAAC,OAAO,CAAC;AACtE,QAAQ,mBAAmB,EAAE,UAAU,CAAC,YAAY,CAAC,UAAU,CAAC,OAAO,CAAC;AACxE,OAAO,EAAE,KAAK,CAAC,CAAC;AAChB,KAAK;AACL;AACA,IAAI,IAAI,gBAAgB,IAAI,IAAI,EAAE;AAClC,MAAM,IAAIrC,OAAK,CAAC,UAAU,CAAC,gBAAgB,CAAC,EAAE;AAC9C,QAAQ,MAAM,CAAC,gBAAgB,GAAG;AAClC,UAAU,SAAS,EAAE,gBAAgB;AACrC,UAAS;AACT,OAAO,MAAM;AACb,QAAQ,SAAS,CAAC,aAAa,CAAC,gBAAgB,EAAE;AAClD,UAAU,MAAM,EAAE,UAAU,CAAC,QAAQ;AACrC,UAAU,SAAS,EAAE,UAAU,CAAC,QAAQ;AACxC,SAAS,EAAE,IAAI,CAAC,CAAC;AACjB,OAAO;AACP,KAAK;AACL;AACA;AACA,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,MAAM,CAAC,MAAM,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,IAAI,KAAK,EAAE,WAAW,EAAE,CAAC;AACnF;AACA;AACA,IAAI,IAAI,cAAc,GAAG,OAAO,IAAIA,OAAK,CAAC,KAAK;AAC/C,MAAM,OAAO,CAAC,MAAM;AACpB,MAAM,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC;AAC5B,KAAK,CAAC;AACN;AACA,IAAI,OAAO,IAAIA,OAAK,CAAC,OAAO;AAC5B,MAAM,CAAC,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,CAAC;AACjE,MAAM,CAAC,MAAM,KAAK;AAClB,QAAQ,OAAO,OAAO,CAAC,MAAM,CAAC,CAAC;AAC/B,OAAO;AACP,KAAK,CAAC;AACN;AACA,IAAI,MAAM,CAAC,OAAO,GAAGsB,cAAY,CAAC,MAAM,CAAC,cAAc,EAAE,OAAO,CAAC,CAAC;AAClE;AACA;AACA,IAAI,MAAM,uBAAuB,GAAG,EAAE,CAAC;AACvC,IAAI,IAAI,8BAA8B,GAAG,IAAI,CAAC;AAC9C,IAAI,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,OAAO,CAAC,SAAS,0BAA0B,CAAC,WAAW,EAAE;AACvF,MAAM,IAAI,OAAO,WAAW,CAAC,OAAO,KAAK,UAAU,IAAI,WAAW,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,KAAK,EAAE;AAC9F,QAAQ,OAAO;AACf,OAAO;AACP;AACA,MAAM,8BAA8B,GAAG,8BAA8B,IAAI,WAAW,CAAC,WAAW,CAAC;AACjG;AACA,MAAM,uBAAuB,CAAC,OAAO,CAAC,WAAW,CAAC,SAAS,EAAE,WAAW,CAAC,QAAQ,CAAC,CAAC;AACnF,KAAK,CAAC,CAAC;AACP;AACA,IAAI,MAAM,wBAAwB,GAAG,EAAE,CAAC;AACxC,IAAI,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,OAAO,CAAC,SAAS,wBAAwB,CAAC,WAAW,EAAE;AACtF,MAAM,wBAAwB,CAAC,IAAI,CAAC,WAAW,CAAC,SAAS,EAAE,WAAW,CAAC,QAAQ,CAAC,CAAC;AACjF,KAAK,CAAC,CAAC;AACP;AACA,IAAI,IAAI,OAAO,CAAC;AAChB,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC;AACd,IAAI,IAAI,GAAG,CAAC;AACZ;AACA,IAAI,IAAI,CAAC,8BAA8B,EAAE;AACzC,MAAM,MAAM,KAAK,GAAG,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,SAAS,CAAC,CAAC;AAC5D,MAAM,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,EAAE,uBAAuB,CAAC,CAAC;AAC1D,MAAM,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,wBAAwB,CAAC,CAAC;AACxD,MAAM,GAAG,GAAG,KAAK,CAAC,MAAM,CAAC;AACzB;AACA,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;AACxC;AACA,MAAM,OAAO,CAAC,GAAG,GAAG,EAAE;AACtB,QAAQ,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AACvD,OAAO;AACP;AACA,MAAM,OAAO,OAAO,CAAC;AACrB,KAAK;AACL;AACA,IAAI,GAAG,GAAG,uBAAuB,CAAC,MAAM,CAAC;AACzC;AACA,IAAI,IAAI,SAAS,GAAG,MAAM,CAAC;AAC3B;AACA,IAAI,CAAC,GAAG,CAAC,CAAC;AACV;AACA,IAAI,OAAO,CAAC,GAAG,GAAG,EAAE;AACpB,MAAM,MAAM,WAAW,GAAG,uBAAuB,CAAC,CAAC,EAAE,CAAC,CAAC;AACvD,MAAM,MAAM,UAAU,GAAG,uBAAuB,CAAC,CAAC,EAAE,CAAC,CAAC;AACtD,MAAM,IAAI;AACV,QAAQ,SAAS,GAAG,WAAW,CAAC,SAAS,CAAC,CAAC;AAC3C,OAAO,CAAC,OAAO,KAAK,EAAE;AACtB,QAAQ,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;AACrC,QAAQ,MAAM;AACd,OAAO;AACP,KAAK;AACL;AACA,IAAI,IAAI;AACR,MAAM,OAAO,GAAG,eAAe,CAAC,IAAI,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;AACtD,KAAK,CAAC,OAAO,KAAK,EAAE;AACpB,MAAM,OAAO,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AACnC,KAAK;AACL;AACA,IAAI,CAAC,GAAG,CAAC,CAAC;AACV,IAAI,GAAG,GAAG,wBAAwB,CAAC,MAAM,CAAC;AAC1C;AACA,IAAI,OAAO,CAAC,GAAG,GAAG,EAAE;AACpB,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC,EAAE,CAAC,EAAE,wBAAwB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAC3F,KAAK;AACL;AACA,IAAI,OAAO,OAAO,CAAC;AACnB,GAAG;AACH;AACA,EAAE,MAAM,CAAC,MAAM,EAAE;AACjB,IAAI,MAAM,GAAG,WAAW,CAAC,IAAI,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;AAChD,IAAI,MAAM,QAAQ,GAAG,aAAa,CAAC,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC;AAC/D,IAAI,OAAO,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,gBAAgB,CAAC,CAAC;AACtE,GAAG;AACH,CAAC;AACD;AACA;AACAtB,OAAK,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,SAAS,mBAAmB,CAAC,MAAM,EAAE;AACzF;AACA,EAAE,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,GAAG,SAAS,GAAG,EAAE,MAAM,EAAE;AAClD,IAAI,OAAO,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,MAAM,IAAI,EAAE,EAAE;AAClD,MAAM,MAAM;AACZ,MAAM,GAAG;AACT,MAAM,IAAI,EAAE,CAAC,MAAM,IAAI,EAAE,EAAE,IAAI;AAC/B,KAAK,CAAC,CAAC,CAAC;AACR,GAAG,CAAC;AACJ,CAAC,CAAC,CAAC;AACH;AACAA,OAAK,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,OAAO,CAAC,EAAE,SAAS,qBAAqB,CAAC,MAAM,EAAE;AAC/E;AACA;AACA,EAAE,SAAS,kBAAkB,CAAC,MAAM,EAAE;AACtC,IAAI,OAAO,SAAS,UAAU,CAAC,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE;AAClD,MAAM,OAAO,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,MAAM,IAAI,EAAE,EAAE;AACpD,QAAQ,MAAM;AACd,QAAQ,OAAO,EAAE,MAAM,GAAG;AAC1B,UAAU,cAAc,EAAE,qBAAqB;AAC/C,SAAS,GAAG,EAAE;AACd,QAAQ,GAAG;AACX,QAAQ,IAAI;AACZ,OAAO,CAAC,CAAC,CAAC;AACV,KAAK,CAAC;AACN,GAAG;AACH;AACA,EAAE,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,GAAG,kBAAkB,EAAE,CAAC;AACjD;AACA,EAAE,KAAK,CAAC,SAAS,CAAC,MAAM,GAAG,MAAM,CAAC,GAAG,kBAAkB,CAAC,IAAI,CAAC,CAAC;AAC9D,CAAC,CAAC,CAAC;AACH;AACA,cAAe,KAAK;;ACpMpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,WAAW,CAAC;AAClB,EAAE,WAAW,CAAC,QAAQ,EAAE;AACxB,IAAI,IAAI,OAAO,QAAQ,KAAK,UAAU,EAAE;AACxC,MAAM,MAAM,IAAI,SAAS,CAAC,8BAA8B,CAAC,CAAC;AAC1D,KAAK;AACL;AACA,IAAI,IAAI,cAAc,CAAC;AACvB;AACA,IAAI,IAAI,CAAC,OAAO,GAAG,IAAI,OAAO,CAAC,SAAS,eAAe,CAAC,OAAO,EAAE;AACjE,MAAM,cAAc,GAAG,OAAO,CAAC;AAC/B,KAAK,CAAC,CAAC;AACP;AACA,IAAI,MAAM,KAAK,GAAG,IAAI,CAAC;AACvB;AACA;AACA,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,IAAI;AAChC,MAAM,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,OAAO;AACpC;AACA,MAAM,IAAI,CAAC,GAAG,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC;AACtC;AACA,MAAM,OAAO,CAAC,EAAE,GAAG,CAAC,EAAE;AACtB,QAAQ,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;AACpC,OAAO;AACP,MAAM,KAAK,CAAC,UAAU,GAAG,IAAI,CAAC;AAC9B,KAAK,CAAC,CAAC;AACP;AACA;AACA,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,GAAG,WAAW,IAAI;AACvC,MAAM,IAAI,QAAQ,CAAC;AACnB;AACA,MAAM,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC,OAAO,IAAI;AAC7C,QAAQ,KAAK,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;AACjC,QAAQ,QAAQ,GAAG,OAAO,CAAC;AAC3B,OAAO,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;AAC3B;AACA,MAAM,OAAO,CAAC,MAAM,GAAG,SAAS,MAAM,GAAG;AACzC,QAAQ,KAAK,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;AACpC,OAAO,CAAC;AACR;AACA,MAAM,OAAO,OAAO,CAAC;AACrB,KAAK,CAAC;AACN;AACA,IAAI,QAAQ,CAAC,SAAS,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE;AACvD,MAAM,IAAI,KAAK,CAAC,MAAM,EAAE;AACxB;AACA,QAAQ,OAAO;AACf,OAAO;AACP;AACA,MAAM,KAAK,CAAC,MAAM,GAAG,IAAI,aAAa,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;AACjE,MAAM,cAAc,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;AACnC,KAAK,CAAC,CAAC;AACP,GAAG;AACH;AACA;AACA;AACA;AACA,EAAE,gBAAgB,GAAG;AACrB,IAAI,IAAI,IAAI,CAAC,MAAM,EAAE;AACrB,MAAM,MAAM,IAAI,CAAC,MAAM,CAAC;AACxB,KAAK;AACL,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,EAAE,SAAS,CAAC,QAAQ,EAAE;AACtB,IAAI,IAAI,IAAI,CAAC,MAAM,EAAE;AACrB,MAAM,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AAC5B,MAAM,OAAO;AACb,KAAK;AACL;AACA,IAAI,IAAI,IAAI,CAAC,UAAU,EAAE;AACzB,MAAM,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AACrC,KAAK,MAAM;AACX,MAAM,IAAI,CAAC,UAAU,GAAG,CAAC,QAAQ,CAAC,CAAC;AACnC,KAAK;AACL,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,EAAE,WAAW,CAAC,QAAQ,EAAE;AACxB,IAAI,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE;AAC1B,MAAM,OAAO;AACb,KAAK;AACL,IAAI,MAAM,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;AACpD,IAAI,IAAI,KAAK,KAAK,CAAC,CAAC,EAAE;AACtB,MAAM,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;AACvC,KAAK;AACL,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,EAAE,OAAO,MAAM,GAAG;AAClB,IAAI,IAAI,MAAM,CAAC;AACf,IAAI,MAAM,KAAK,GAAG,IAAI,WAAW,CAAC,SAAS,QAAQ,CAAC,CAAC,EAAE;AACvD,MAAM,MAAM,GAAG,CAAC,CAAC;AACjB,KAAK,CAAC,CAAC;AACP,IAAI,OAAO;AACX,MAAM,KAAK;AACX,MAAM,MAAM;AACZ,KAAK,CAAC;AACN,GAAG;AACH,CAAC;AACD;AACA,oBAAe,WAAW;;ACtH1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACe,SAAS,MAAM,CAAC,QAAQ,EAAE;AACzC,EAAE,OAAO,SAAS,IAAI,CAAC,GAAG,EAAE;AAC5B,IAAI,OAAO,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;AACrC,GAAG,CAAC;AACJ;;ACvBA;AACA;AACA;AACA;AACA;AACA;AACA;AACe,SAAS,YAAY,CAAC,OAAO,EAAE;AAC9C,EAAE,OAAOA,OAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,OAAO,CAAC,YAAY,KAAK,IAAI,CAAC,CAAC;AACpE;;ACbA,MAAM,cAAc,GAAG;AACvB,EAAE,QAAQ,EAAE,GAAG;AACf,EAAE,kBAAkB,EAAE,GAAG;AACzB,EAAE,UAAU,EAAE,GAAG;AACjB,EAAE,UAAU,EAAE,GAAG;AACjB,EAAE,EAAE,EAAE,GAAG;AACT,EAAE,OAAO,EAAE,GAAG;AACd,EAAE,QAAQ,EAAE,GAAG;AACf,EAAE,2BAA2B,EAAE,GAAG;AAClC,EAAE,SAAS,EAAE,GAAG;AAChB,EAAE,YAAY,EAAE,GAAG;AACnB,EAAE,cAAc,EAAE,GAAG;AACrB,EAAE,WAAW,EAAE,GAAG;AAClB,EAAE,eAAe,EAAE,GAAG;AACtB,EAAE,MAAM,EAAE,GAAG;AACb,EAAE,eAAe,EAAE,GAAG;AACtB,EAAE,gBAAgB,EAAE,GAAG;AACvB,EAAE,KAAK,EAAE,GAAG;AACZ,EAAE,QAAQ,EAAE,GAAG;AACf,EAAE,WAAW,EAAE,GAAG;AAClB,EAAE,QAAQ,EAAE,GAAG;AACf,EAAE,MAAM,EAAE,GAAG;AACb,EAAE,iBAAiB,EAAE,GAAG;AACxB,EAAE,iBAAiB,EAAE,GAAG;AACxB,EAAE,UAAU,EAAE,GAAG;AACjB,EAAE,YAAY,EAAE,GAAG;AACnB,EAAE,eAAe,EAAE,GAAG;AACtB,EAAE,SAAS,EAAE,GAAG;AAChB,EAAE,QAAQ,EAAE,GAAG;AACf,EAAE,gBAAgB,EAAE,GAAG;AACvB,EAAE,aAAa,EAAE,GAAG;AACpB,EAAE,2BAA2B,EAAE,GAAG;AAClC,EAAE,cAAc,EAAE,GAAG;AACrB,EAAE,QAAQ,EAAE,GAAG;AACf,EAAE,IAAI,EAAE,GAAG;AACX,EAAE,cAAc,EAAE,GAAG;AACrB,EAAE,kBAAkB,EAAE,GAAG;AACzB,EAAE,eAAe,EAAE,GAAG;AACtB,EAAE,UAAU,EAAE,GAAG;AACjB,EAAE,oBAAoB,EAAE,GAAG;AAC3B,EAAE,mBAAmB,EAAE,GAAG;AAC1B,EAAE,iBAAiB,EAAE,GAAG;AACxB,EAAE,SAAS,EAAE,GAAG;AAChB,EAAE,kBAAkB,EAAE,GAAG;AACzB,EAAE,mBAAmB,EAAE,GAAG;AAC1B,EAAE,MAAM,EAAE,GAAG;AACb,EAAE,gBAAgB,EAAE,GAAG;AACvB,EAAE,QAAQ,EAAE,GAAG;AACf,EAAE,eAAe,EAAE,GAAG;AACtB,EAAE,oBAAoB,EAAE,GAAG;AAC3B,EAAE,eAAe,EAAE,GAAG;AACtB,EAAE,2BAA2B,EAAE,GAAG;AAClC,EAAE,0BAA0B,EAAE,GAAG;AACjC,EAAE,mBAAmB,EAAE,GAAG;AAC1B,EAAE,cAAc,EAAE,GAAG;AACrB,EAAE,UAAU,EAAE,GAAG;AACjB,EAAE,kBAAkB,EAAE,GAAG;AACzB,EAAE,cAAc,EAAE,GAAG;AACrB,EAAE,uBAAuB,EAAE,GAAG;AAC9B,EAAE,qBAAqB,EAAE,GAAG;AAC5B,EAAE,mBAAmB,EAAE,GAAG;AAC1B,EAAE,YAAY,EAAE,GAAG;AACnB,EAAE,WAAW,EAAE,GAAG;AAClB,EAAE,6BAA6B,EAAE,GAAG;AACpC,CAAC,CAAC;AACF;AACA,MAAM,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,KAAK;AACzD,EAAE,cAAc,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC;AAC9B,CAAC,CAAC,CAAC;AACH;AACA,uBAAe,cAAc;;AClD7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,cAAc,CAAC,aAAa,EAAE;AACvC,EAAE,MAAM,OAAO,GAAG,IAAIsC,OAAK,CAAC,aAAa,CAAC,CAAC;AAC3C,EAAE,MAAM,QAAQ,GAAG,IAAI,CAACA,OAAK,CAAC,SAAS,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;AAC1D;AACA;AACA,EAAEtC,OAAK,CAAC,MAAM,CAAC,QAAQ,EAAEsC,OAAK,CAAC,SAAS,EAAE,OAAO,EAAE,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC,CAAC;AACvE;AACA;AACA,EAAEtC,OAAK,CAAC,MAAM,CAAC,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC,CAAC;AAC5D;AACA;AACA,EAAE,QAAQ,CAAC,MAAM,GAAG,SAAS,MAAM,CAAC,cAAc,EAAE;AACpD,IAAI,OAAO,cAAc,CAAC,WAAW,CAAC,aAAa,EAAE,cAAc,CAAC,CAAC,CAAC;AACtE,GAAG,CAAC;AACJ;AACA,EAAE,OAAO,QAAQ,CAAC;AAClB,CAAC;AACD;AACA;AACA,MAAM,KAAK,GAAG,cAAc,CAACqB,UAAQ,CAAC,CAAC;AACvC;AACA;AACA,KAAK,CAAC,KAAK,GAAGiB,OAAK,CAAC;AACpB;AACA;AACA,KAAK,CAAC,aAAa,GAAG,aAAa,CAAC;AACpC,KAAK,CAAC,WAAW,GAAGC,aAAW,CAAC;AAChC,KAAK,CAAC,QAAQ,GAAG,QAAQ,CAAC;AAC1B,KAAK,CAAC,OAAO,GAAG,OAAO,CAAC;AACxB,KAAK,CAAC,UAAU,GAAG,UAAU,CAAC;AAC9B;AACA;AACA,KAAK,CAAC,UAAU,GAAG,UAAU,CAAC;AAC9B;AACA;AACA,KAAK,CAAC,MAAM,GAAG,KAAK,CAAC,aAAa,CAAC;AACnC;AACA;AACA,KAAK,CAAC,GAAG,GAAG,SAAS,GAAG,CAAC,QAAQ,EAAE;AACnC,EAAE,OAAO,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;AAC/B,CAAC,CAAC;AACF;AACA,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC;AACtB;AACA;AACA,KAAK,CAAC,YAAY,GAAG,YAAY,CAAC;AAClC;AACA;AACA,KAAK,CAAC,WAAW,GAAG,WAAW,CAAC;AAChC;AACA,KAAK,CAAC,YAAY,GAAGjB,cAAY,CAAC;AAClC;AACA,KAAK,CAAC,UAAU,GAAG,KAAK,IAAI,cAAc,CAACtB,OAAK,CAAC,UAAU,CAAC,KAAK,CAAC,GAAG,IAAI,QAAQ,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,CAAC;AAClG;AACA,KAAK,CAAC,UAAU,GAAG,QAAQ,CAAC,UAAU,CAAC;AACvC;AACA,KAAK,CAAC,cAAc,GAAGwC,gBAAc,CAAC;AACtC;AACA,KAAK,CAAC,OAAO,GAAG,KAAK,CAAC;AACtB;AACA;AACA,cAAe;;;;;;;;;;;;;;ACvFf;EACA,IAAI,MAAM,GAAGrC,aAAiB;AAC9B,EAAA,IAAI,MAAM,GAAG,MAAM,CAAC,OAAM;AAC1B;AACA;AACA,EAAA,SAAS,SAAS,EAAE,GAAG,EAAE,GAAG,EAAE;AAC9B,IAAE,KAAK,IAAI,GAAG,IAAI,GAAG,EAAE;MACnB,GAAG,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,EAAC;KACpB;GACF;AACD,EAAA,IAAI,MAAM,CAAC,IAAI,IAAI,MAAM,CAAC,KAAK,IAAI,MAAM,CAAC,WAAW,IAAI,MAAM,CAAC,eAAe,EAAE;AACjF,IAAE,iBAAiB,OAAM;AACzB,GAAC,MAAM;AACP;AACA,IAAE,SAAS,CAAC,MAAM,EAAE,OAAO,EAAC;AAC5B,IAAE,iBAAiB,WAAU;GAC5B;AACD;AACA,EAAA,SAAS,UAAU,EAAE,GAAG,EAAE,gBAAgB,EAAE,MAAM,EAAE;IAClD,OAAO,MAAM,CAAC,GAAG,EAAE,gBAAgB,EAAE,MAAM,CAAC;GAC7C;AACD;EACA,UAAU,CAAC,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,EAAC;AACtD;AACA;AACA,EAAA,SAAS,CAAC,MAAM,EAAE,UAAU,EAAC;AAC7B;EACA,UAAU,CAAC,IAAI,GAAG,UAAU,GAAG,EAAE,gBAAgB,EAAE,MAAM,EAAE;AAC3D,IAAE,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE;AAC/B,MAAI,MAAM,IAAI,SAAS,CAAC,+BAA+B,CAAC;KACrD;IACD,OAAO,MAAM,CAAC,GAAG,EAAE,gBAAgB,EAAE,MAAM,CAAC;IAC7C;AACD;EACA,UAAU,CAAC,KAAK,GAAG,UAAU,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE;AACnD,IAAE,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE;AAChC,MAAI,MAAM,IAAI,SAAS,CAAC,2BAA2B,CAAC;KACjD;AACH,IAAE,IAAI,GAAG,GAAG,MAAM,CAAC,IAAI,EAAC;AACxB,IAAE,IAAI,IAAI,KAAK,SAAS,EAAE;AAC1B,MAAI,IAAI,OAAO,QAAQ,KAAK,QAAQ,EAAE;AACtC,QAAM,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,EAAC;AAC9B,OAAK,MAAM;AACX,QAAM,GAAG,CAAC,IAAI,CAAC,IAAI,EAAC;OACf;AACL,KAAG,MAAM;AACT,MAAI,GAAG,CAAC,IAAI,CAAC,CAAC,EAAC;KACZ;AACH,IAAE,OAAO,GAAG;IACX;AACD;AACA,EAAA,UAAU,CAAC,WAAW,GAAG,UAAU,IAAI,EAAE;AACzC,IAAE,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE;AAChC,MAAI,MAAM,IAAI,SAAS,CAAC,2BAA2B,CAAC;KACjD;AACH,IAAE,OAAO,MAAM,CAAC,IAAI,CAAC;IACpB;AACD;AACA,EAAA,UAAU,CAAC,eAAe,GAAG,UAAU,IAAI,EAAE;AAC7C,IAAE,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE;AAChC,MAAI,MAAM,IAAI,SAAS,CAAC,2BAA2B,CAAC;KACjD;AACH,IAAE,OAAO,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC;AAChC,IAAA;;;;;;;;;;;;;AC/DA,CAAA,IAAI,MAAM,GAAGA,iBAAsB,EAAA,CAAC,MAAM,CAAC;CAC3C,IAAID,QAAM,GAAGE,MAAiB,CAAC;CAC/B,IAAI,IAAI,GAAGC,UAAe,CAAC;AAC3B;CACA,SAAS,UAAU,CAAC,IAAI,EAAE;AAC1B,GAAE,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;AACrB,GAAE,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;AACvB,GAAE,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;AACvB;AACA;GACE,IAAI,CAAC,IAAI,EAAE;KACT,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;KAC9B,OAAO,IAAI,CAAC;IACb;AACH;AACA;AACA,GAAE,IAAI,OAAO,IAAI,CAAC,IAAI,KAAK,UAAU,EAAE;KACnC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAClC,KAAI,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;KAChB,OAAO,IAAI,CAAC;IACb;AACH;AACA;AACA;GACE,IAAI,IAAI,CAAC,MAAM,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE;AAC/C,KAAI,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;AACvB,KAAI,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;AAC1B,KAAI,OAAO,CAAC,QAAQ,CAAC,YAAY;OAC3B,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;AAC7B,OAAM,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;AAC5B,OAAM,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AACzB,MAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;KACd,OAAO,IAAI,CAAC;IACb;AACH;GACE,MAAM,IAAI,SAAS,CAAC,wBAAwB,EAAE,OAAO,IAAI,GAAG,GAAG,CAAC,CAAC;EAClE;AACD,CAAA,IAAI,CAAC,QAAQ,CAAC,UAAU,EAAEH,QAAM,CAAC,CAAC;AAClC;CACA,UAAU,CAAC,SAAS,CAAC,KAAK,GAAG,SAAS,KAAK,CAAC,IAAI,EAAE;GAChD,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;GAC9D,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;AAC1B,EAAC,CAAC;AACF;CACA,UAAU,CAAC,SAAS,CAAC,GAAG,GAAG,SAAS,GAAG,CAAC,IAAI,EAAE;AAC9C,GAAE,IAAI,IAAI;AACV,KAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;GACnB,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;AACzB,GAAE,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AACrB,GAAE,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;AACxB,GAAE,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;AACxB,EAAC,CAAC;AACF;AACA,CAAA,UAAc,GAAG,UAAU,CAAA;;;;;;;;;;;;ACpD3B,CAAA,IAAI,MAAM,GAAGC,YAAiB,CAAC,MAAM,CAAC;AACtC,CAAA,IAAI,UAAU,GAAGA,YAAiB,CAAC,UAAU,CAAC;AAC9C;AACA,CAAc,uBAAA,GAAG,QAAQ,CAAC;AAC1B;AACA,CAAA,SAAS,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE;AACxB;AACA;AACA,GAAE,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE;KAC9C,OAAO,KAAK,CAAC;IACd;AACH;AACA;AACA;AACA;GACE,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,MAAM,EAAE;KACzB,OAAO,KAAK,CAAC;IACd;AACH;AACA,GAAE,IAAI,CAAC,GAAG,CAAC,CAAC;AACZ,GAAE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AACrC;KACI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IAClB;AACH,GAAE,OAAO,CAAC,KAAK,CAAC,CAAC;EAChB;AACD;CACA,QAAQ,CAAC,OAAO,GAAG,WAAW;AAC9B,GAAE,MAAM,CAAC,SAAS,CAAC,KAAK,GAAG,UAAU,CAAC,SAAS,CAAC,KAAK,GAAG,SAAS,KAAK,CAAC,IAAI,EAAE;AAC7E,KAAI,OAAO,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;AAChC,IAAG,CAAC;AACJ,EAAC,CAAC;AACF;AACA,CAAA,IAAI,YAAY,GAAG,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC;AAC1C,CAAA,IAAI,gBAAgB,GAAG,UAAU,CAAC,SAAS,CAAC,KAAK,CAAC;CAClD,QAAQ,CAAC,OAAO,GAAG,WAAW;AAC9B,GAAE,MAAM,CAAC,SAAS,CAAC,KAAK,GAAG,YAAY,CAAC;AACxC,GAAE,UAAU,CAAC,SAAS,CAAC,KAAK,GAAG,gBAAgB,CAAC;EAC/C,CAAA;;;;;;;;;;ACvCD;CACA,SAAS,YAAY,CAAC,OAAO,EAAE;EAC9B,IAAI,MAAM,GAAG,CAAC,CAAC,OAAO,GAAG,CAAC,IAAI,CAAC,KAAK,OAAO,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;EAC/D,OAAO,MAAM,CAAC;EACd;AACD;AACA,CAAA,IAAI,gBAAgB,GAAG;AACvB,EAAC,KAAK,EAAE,YAAY,CAAC,GAAG,CAAC;AACzB,EAAC,KAAK,EAAE,YAAY,CAAC,GAAG,CAAC;AACzB,EAAC,KAAK,EAAE,YAAY,CAAC,GAAG,CAAC;AACzB,EAAC,CAAC;AACF;CACA,SAAS,mBAAmB,CAAC,GAAG,EAAE;AAClC,EAAC,IAAI,UAAU,GAAG,gBAAgB,CAAC,GAAG,CAAC,CAAC;EACvC,IAAI,UAAU,EAAE;GACf,OAAO,UAAU,CAAC;GAClB;AACF;EACC,MAAM,IAAI,KAAK,CAAC,qBAAqB,GAAG,GAAG,GAAG,GAAG,CAAC,CAAC;EACnD;AACD;AACA,CAAA,kBAAc,GAAG,mBAAmB,CAAA;;;;;;;;;;ACrBpC;AACA,CAAA,IAAI,MAAM,GAAGA,iBAAsB,EAAA,CAAC,MAAM,CAAC;AAC3C;CACA,IAAI,mBAAmB,GAAGC,uBAAA,EAAgC,CAAC;AAC3D;CACA,IAAI,SAAS,GAAG,IAAI;EACnB,eAAe,GAAG,CAAC;EACnB,aAAa,GAAG,IAAI;EACpB,OAAO,GAAG,IAAI;EACd,OAAO,GAAG,IAAI;EACd,eAAe,GAAG,CAAC,OAAO,GAAG,aAAa,KAAK,eAAe,IAAI,CAAC,CAAC;EACpE,eAAe,GAAG,OAAO,IAAI,eAAe,IAAI,CAAC,CAAC,CAAC;AACpD;CACA,SAAS,SAAS,CAAC,MAAM,EAAE;AAC3B,EAAC,OAAO,MAAM;AACd,IAAG,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC;AACpB,IAAG,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC;AACtB,IAAG,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;EACtB;AACD;CACA,SAAS,iBAAiB,CAAC,SAAS,EAAE;AACtC,EAAC,IAAI,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE;GAC/B,OAAO,SAAS,CAAC;AACnB,GAAE,MAAM,IAAI,QAAQ,KAAK,OAAO,SAAS,EAAE;GACzC,OAAO,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;GACxC;AACF;AACA,EAAC,MAAM,IAAI,SAAS,CAAC,qDAAqD,CAAC,CAAC;EAC3E;AACD;AACA,CAAA,SAAS,SAAS,CAAC,SAAS,EAAE,GAAG,EAAE;AACnC,EAAC,SAAS,GAAG,iBAAiB,CAAC,SAAS,CAAC,CAAC;AAC1C,EAAC,IAAI,UAAU,GAAG,mBAAmB,CAAC,GAAG,CAAC,CAAC;AAC3C;AACA;AACA;AACA,EAAC,IAAI,qBAAqB,GAAG,UAAU,GAAG,CAAC,CAAC;AAC5C;AACA,EAAC,IAAI,WAAW,GAAG,SAAS,CAAC,MAAM,CAAC;AACpC;AACA,EAAC,IAAI,MAAM,GAAG,CAAC,CAAC;EACf,IAAI,SAAS,CAAC,MAAM,EAAE,CAAC,KAAK,eAAe,EAAE;AAC9C,GAAE,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAC;GACjD;AACF;EACC,IAAI,SAAS,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,CAAC;AACrC,EAAC,IAAI,SAAS,MAAM,SAAS,GAAG,CAAC,CAAC,EAAE;AACpC,GAAE,SAAS,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,CAAC;GAChC;AACF;AACA,EAAC,IAAI,WAAW,GAAG,MAAM,GAAG,SAAS,EAAE;AACvC,GAAE,MAAM,IAAI,KAAK,CAAC,6BAA6B,GAAG,SAAS,GAAG,WAAW,IAAI,WAAW,GAAG,MAAM,CAAC,GAAG,aAAa,CAAC,CAAC;GAClH;AACF;EACC,IAAI,SAAS,CAAC,MAAM,EAAE,CAAC,KAAK,eAAe,EAAE;AAC9C,GAAE,MAAM,IAAI,KAAK,CAAC,uCAAuC,CAAC,CAAC;GACzD;AACF;EACC,IAAI,OAAO,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,CAAC;AACnC;EACC,IAAI,WAAW,GAAG,MAAM,GAAG,CAAC,GAAG,OAAO,EAAE;AACzC,GAAE,MAAM,IAAI,KAAK,CAAC,2BAA2B,GAAG,OAAO,GAAG,WAAW,IAAI,WAAW,GAAG,MAAM,GAAG,CAAC,CAAC,GAAG,aAAa,CAAC,CAAC;GAClH;AACF;AACA,EAAC,IAAI,qBAAqB,GAAG,OAAO,EAAE;AACtC,GAAE,MAAM,IAAI,KAAK,CAAC,2BAA2B,GAAG,OAAO,GAAG,aAAa,GAAG,qBAAqB,GAAG,iBAAiB,CAAC,CAAC;GACnH;AACF;AACA,EAAC,IAAI,OAAO,GAAG,MAAM,CAAC;EACrB,MAAM,IAAI,OAAO,CAAC;AACnB;EACC,IAAI,SAAS,CAAC,MAAM,EAAE,CAAC,KAAK,eAAe,EAAE;AAC9C,GAAE,MAAM,IAAI,KAAK,CAAC,uCAAuC,CAAC,CAAC;GACzD;AACF;EACC,IAAI,OAAO,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,CAAC;AACnC;AACA,EAAC,IAAI,WAAW,GAAG,MAAM,KAAK,OAAO,EAAE;AACvC,GAAE,MAAM,IAAI,KAAK,CAAC,2BAA2B,GAAG,OAAO,GAAG,eAAe,IAAI,WAAW,GAAG,MAAM,CAAC,GAAG,GAAG,CAAC,CAAC;GACxG;AACF;AACA,EAAC,IAAI,qBAAqB,GAAG,OAAO,EAAE;AACtC,GAAE,MAAM,IAAI,KAAK,CAAC,2BAA2B,GAAG,OAAO,GAAG,aAAa,GAAG,qBAAqB,GAAG,iBAAiB,CAAC,CAAC;GACnH;AACF;AACA,EAAC,IAAI,OAAO,GAAG,MAAM,CAAC;EACrB,MAAM,IAAI,OAAO,CAAC;AACnB;AACA,EAAC,IAAI,MAAM,KAAK,WAAW,EAAE;AAC7B,GAAE,MAAM,IAAI,KAAK,CAAC,0CAA0C,IAAI,WAAW,GAAG,MAAM,CAAC,GAAG,gBAAgB,CAAC,CAAC;GACxG;AACF;AACA,EAAC,IAAI,QAAQ,GAAG,UAAU,GAAG,OAAO;AACpC,GAAE,QAAQ,GAAG,UAAU,GAAG,OAAO,CAAC;AAClC;AACA,EAAC,IAAI,GAAG,GAAG,MAAM,CAAC,WAAW,CAAC,QAAQ,GAAG,OAAO,GAAG,QAAQ,GAAG,OAAO,CAAC,CAAC;AACvE;EACC,KAAK,MAAM,GAAG,CAAC,EAAE,MAAM,GAAG,QAAQ,EAAE,EAAE,MAAM,EAAE;AAC/C,GAAE,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;GAChB;EACD,SAAS,CAAC,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,CAAC;AAClF;EACC,MAAM,GAAG,UAAU,CAAC;AACrB;AACA,EAAC,KAAK,IAAI,CAAC,GAAG,MAAM,EAAE,MAAM,GAAG,CAAC,GAAG,QAAQ,EAAE,EAAE,MAAM,EAAE;AACvD,GAAE,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;GAChB;EACD,SAAS,CAAC,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,CAAC;AAClF;EACC,GAAG,GAAG,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;AAC9B,EAAC,GAAG,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC;AACtB;EACC,OAAO,GAAG,CAAC;EACX;AACD;AACA,CAAA,SAAS,YAAY,CAAC,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE;AACxC,EAAC,IAAI,OAAO,GAAG,CAAC,CAAC;AACjB,EAAC,OAAO,KAAK,GAAG,OAAO,GAAG,IAAI,IAAI,GAAG,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,EAAE;GAC5D,EAAE,OAAO,CAAC;GACV;AACF;EACC,IAAI,SAAS,GAAG,GAAG,CAAC,KAAK,GAAG,OAAO,CAAC,IAAI,SAAS,CAAC;EAClD,IAAI,SAAS,EAAE;GACd,EAAE,OAAO,CAAC;GACV;AACF;EACC,OAAO,OAAO,CAAC;EACf;AACD;AACA,CAAA,SAAS,SAAS,CAAC,SAAS,EAAE,GAAG,EAAE;AACnC,EAAC,SAAS,GAAG,iBAAiB,CAAC,SAAS,CAAC,CAAC;AAC1C,EAAC,IAAI,UAAU,GAAG,mBAAmB,CAAC,GAAG,CAAC,CAAC;AAC3C;AACA,EAAC,IAAI,cAAc,GAAG,SAAS,CAAC,MAAM,CAAC;AACvC,EAAC,IAAI,cAAc,KAAK,UAAU,GAAG,CAAC,EAAE;GACtC,MAAM,IAAI,SAAS,CAAC,GAAG,GAAG,GAAG,GAAG,wBAAwB,GAAG,UAAU,GAAG,CAAC,GAAG,gBAAgB,GAAG,cAAc,GAAG,GAAG,CAAC,CAAC;GACrH;AACF;EACC,IAAI,QAAQ,GAAG,YAAY,CAAC,SAAS,EAAE,CAAC,EAAE,UAAU,CAAC,CAAC;AACvD,EAAC,IAAI,QAAQ,GAAG,YAAY,CAAC,SAAS,EAAE,UAAU,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC;AACtE,EAAC,IAAI,OAAO,GAAG,UAAU,GAAG,QAAQ,CAAC;AACrC,EAAC,IAAI,OAAO,GAAG,UAAU,GAAG,QAAQ,CAAC;AACrC;AACA,EAAC,IAAI,OAAO,GAAG,CAAC,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC;AACjD;AACA,EAAC,IAAI,WAAW,GAAG,OAAO,GAAG,SAAS,CAAC;AACvC;AACA,EAAC,IAAI,GAAG,GAAG,MAAM,CAAC,WAAW,CAAC,CAAC,WAAW,GAAG,CAAC,GAAG,CAAC,IAAI,OAAO,CAAC,CAAC;AAC/D;AACA,EAAC,IAAI,MAAM,GAAG,CAAC,CAAC;AAChB,EAAC,GAAG,CAAC,MAAM,EAAE,CAAC,GAAG,eAAe,CAAC;EAChC,IAAI,WAAW,EAAE;AAClB;AACA;AACA,GAAE,GAAG,CAAC,MAAM,EAAE,CAAC,GAAG,OAAO,CAAC;AAC1B,GAAE,MAAM;AACR;AACA;GACE,GAAG,CAAC,MAAM,EAAE,CAAC,GAAG,SAAS,GAAG,CAAC,CAAC;AAChC;GACE,GAAG,CAAC,MAAM,EAAE,CAAC,GAAG,OAAO,GAAG,IAAI,CAAC;GAC/B;AACF,EAAC,GAAG,CAAC,MAAM,EAAE,CAAC,GAAG,eAAe,CAAC;AACjC,EAAC,GAAG,CAAC,MAAM,EAAE,CAAC,GAAG,OAAO,CAAC;AACzB,EAAC,IAAI,QAAQ,GAAG,CAAC,EAAE;AACnB,GAAE,GAAG,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC;AACpB,GAAE,MAAM,IAAI,SAAS,CAAC,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,CAAC,EAAE,UAAU,CAAC,CAAC;AACvD,GAAE,MAAM;AACR,GAAE,MAAM,IAAI,SAAS,CAAC,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC;GAC5D;AACF,EAAC,GAAG,CAAC,MAAM,EAAE,CAAC,GAAG,eAAe,CAAC;AACjC,EAAC,GAAG,CAAC,MAAM,EAAE,CAAC,GAAG,OAAO,CAAC;AACzB,EAAC,IAAI,QAAQ,GAAG,CAAC,EAAE;AACnB,GAAE,GAAG,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC;GAClB,SAAS,CAAC,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC;AAC1C,GAAE,MAAM;AACR,GAAE,SAAS,CAAC,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,UAAU,GAAG,QAAQ,CAAC,CAAC;GACnD;AACF;EACC,OAAO,GAAG,CAAC;EACX;AACD;AACA,CAAA,iBAAc,GAAG;EAChB,SAAS,EAAE,SAAS;EACpB,SAAS,EAAE,SAAS;EACpB,CAAA;;;;;;;;;;CC1LD,IAAI,WAAW,GAAGD,8BAAA,EAAqC,CAAC;AACxD,CAAA,IAAI,MAAM,GAAGC,iBAAsB,EAAA,CAAC,MAAM,CAAC;CAC3C,IAAI,MAAM,GAAGC,YAAiB,CAAC;CAC/B,IAAI,WAAW,GAAGI,wBAAA,EAA8B,CAAC;CACjD,IAAI,IAAI,GAAGgB,UAAe,CAAC;AAC3B;CACA,IAAI,qBAAqB,GAAG,wLAAuL;CACnN,IAAI,kBAAkB,GAAG,mCAAmC,CAAC;CAC7D,IAAI,wBAAwB,GAAG,kCAAkC,CAAC;CAClE,IAAI,sBAAsB,GAAG,6CAA6C,CAAC;AAC3E;CACA,IAAI,kBAAkB,GAAG,OAAO,MAAM,CAAC,eAAe,KAAK,UAAU,CAAC;AACtE,CAAA,IAAI,kBAAkB,EAAE;GACtB,wBAAwB,IAAI,iBAAiB,CAAC;GAC9C,kBAAkB,IAAI,gBAAgB,CAAC;EACxC;AACD;CACA,SAAS,gBAAgB,CAAC,GAAG,EAAE;AAC/B,GAAE,IAAI,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;AAC5B,KAAI,OAAO;IACR;AACH;AACA,GAAE,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE;AAC/B,KAAI,OAAO;IACR;AACH;GACE,IAAI,CAAC,kBAAkB,EAAE;AAC3B,KAAI,MAAM,SAAS,CAAC,wBAAwB,CAAC,CAAC;IAC3C;AACH;AACA,GAAE,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE;AAC/B,KAAI,MAAM,SAAS,CAAC,wBAAwB,CAAC,CAAC;IAC3C;AACH;AACA,GAAE,IAAI,OAAO,GAAG,CAAC,IAAI,KAAK,QAAQ,EAAE;AACpC,KAAI,MAAM,SAAS,CAAC,wBAAwB,CAAC,CAAC;IAC3C;AACH;AACA,GAAE,IAAI,OAAO,GAAG,CAAC,iBAAiB,KAAK,QAAQ,EAAE;AACjD,KAAI,MAAM,SAAS,CAAC,wBAAwB,CAAC,CAAC;IAC3C;AACH;AACA,GAAE,IAAI,OAAO,GAAG,CAAC,MAAM,KAAK,UAAU,EAAE;AACxC,KAAI,MAAM,SAAS,CAAC,wBAAwB,CAAC,CAAC;IAC3C;AACH,EACA;CACA,SAAS,iBAAiB,CAAC,GAAG,EAAE;AAChC,GAAE,IAAI,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;AAC5B,KAAI,OAAO;IACR;AACH;AACA,GAAE,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE;AAC/B,KAAI,OAAO;IACR;AACH;AACA,GAAE,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE;AAC/B,KAAI,OAAO;IACR;AACH;AACA,GAAE,MAAM,SAAS,CAAC,sBAAsB,CAAC,CAAC;AAC1C,EACA;CACA,SAAS,gBAAgB,CAAC,GAAG,EAAE;AAC/B,GAAE,IAAI,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;AAC5B,KAAI,OAAO;IACR;AACH;AACA,GAAE,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE;KAC3B,OAAO,GAAG,CAAC;IACZ;AACH;GACE,IAAI,CAAC,kBAAkB,EAAE;AAC3B,KAAI,MAAM,SAAS,CAAC,kBAAkB,CAAC,CAAC;IACrC;AACH;AACA,GAAE,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE;AAC/B,KAAI,MAAM,SAAS,CAAC,kBAAkB,CAAC,CAAC;IACrC;AACH;AACA,GAAE,IAAI,GAAG,CAAC,IAAI,KAAK,QAAQ,EAAE;AAC7B,KAAI,MAAM,SAAS,CAAC,kBAAkB,CAAC,CAAC;IACrC;AACH;AACA,GAAE,IAAI,OAAO,GAAG,CAAC,MAAM,KAAK,UAAU,EAAE;AACxC,KAAI,MAAM,SAAS,CAAC,kBAAkB,CAAC,CAAC;IACrC;EACF;AACD;CACA,SAAS,UAAU,CAAC,MAAM,EAAE;AAC5B,GAAE,OAAO,MAAM;AACf,MAAK,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC;AACtB,MAAK,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC;AACxB,MAAK,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;EACxB;AACD;CACA,SAAS,QAAQ,CAAC,SAAS,EAAE;AAC7B,GAAE,SAAS,GAAG,SAAS,CAAC,QAAQ,EAAE,CAAC;AACnC;GACE,IAAI,OAAO,GAAG,CAAC,GAAG,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC;AACzC,GAAE,IAAI,OAAO,KAAK,CAAC,EAAE;AACrB,KAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,EAAE,EAAE,CAAC,EAAE;OAChC,SAAS,IAAI,GAAG,CAAC;MAClB;IACF;AACH;AACA,GAAE,OAAO,SAAS;AAClB,MAAK,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC;AACxB,MAAK,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;EACvB;AACD;CACA,SAAS,SAAS,CAAC,QAAQ,EAAE;AAC7B,GAAE,IAAI,IAAI,GAAG,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;GACvC,IAAI,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;AAClE,GAAE,OAAO,IAAI,SAAS,CAAC,MAAM,CAAC,CAAC;EAC9B;AACD;CACA,SAAS,cAAc,CAAC,GAAG,EAAE;AAC7B,GAAE,OAAO,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,OAAO,GAAG,KAAK,QAAQ,CAAC;EACxD;AACD;CACA,SAAS,cAAc,CAAC,KAAK,EAAE;AAC/B,GAAE,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC;KACxB,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;GAChC,OAAO,KAAK,CAAC;EACd;AACD;CACA,SAAS,gBAAgB,CAAC,IAAI,EAAE;AAChC,GAAE,OAAO,SAAS,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE;AACtC,KAAI,gBAAgB,CAAC,MAAM,CAAC,CAAC;AAC7B,KAAI,KAAK,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC;AAClC,KAAI,IAAI,IAAI,GAAG,MAAM,CAAC,UAAU,CAAC,KAAK,GAAG,IAAI,EAAE,MAAM,CAAC,CAAC;AACvD,KAAI,IAAI,GAAG,IAAI,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAC;AACzD,KAAI,OAAO,UAAU,CAAC,GAAG,CAAC,CAAC;IACxB;EACF;AACD;CACA,SAAS,kBAAkB,CAAC,IAAI,EAAE;GAChC,OAAO,SAAS,MAAM,CAAC,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE;AACnD,KAAI,IAAI,WAAW,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;AAC5D,KAAI,OAAO,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC;IACtE;EACF;AACD;CACA,SAAS,eAAe,CAAC,IAAI,EAAE;AAC/B,EAAC,OAAO,SAAS,IAAI,CAAC,KAAK,EAAE,UAAU,EAAE;AACzC,KAAI,iBAAiB,CAAC,UAAU,CAAC,CAAC;AAClC,KAAI,KAAK,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC;AAClC;AACA;KACI,IAAI,MAAM,GAAG,MAAM,CAAC,UAAU,CAAC,SAAS,GAAG,IAAI,CAAC,CAAC;AACrD,KAAI,IAAI,GAAG,IAAI,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC,CAAC;AACxE,KAAI,OAAO,UAAU,CAAC,GAAG,CAAC,CAAC;IACxB;EACF;AACD;CACA,SAAS,iBAAiB,CAAC,IAAI,EAAE;GAC/B,OAAO,SAAS,MAAM,CAAC,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE;AACtD,KAAI,gBAAgB,CAAC,SAAS,CAAC,CAAC;AAChC,KAAI,KAAK,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC;AAClC,KAAI,SAAS,GAAG,QAAQ,CAAC,SAAS,CAAC,CAAC;KAChC,IAAI,QAAQ,GAAG,MAAM,CAAC,YAAY,CAAC,SAAS,GAAG,IAAI,CAAC,CAAC;AACzD,KAAI,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;KACvB,OAAO,QAAQ,CAAC,MAAM,CAAC,SAAS,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;IACxD;EACF;AACD;CACA,SAAS,kBAAkB,CAAC,IAAI,EAAE;AAClC,GAAE,OAAO,SAAS,IAAI,CAAC,KAAK,EAAE,UAAU,EAAE;AAC1C,KAAI,iBAAiB,CAAC,UAAU,CAAC,CAAC;AAClC,KAAI,KAAK,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC;KAC9B,IAAI,MAAM,GAAG,MAAM,CAAC,UAAU,CAAC,SAAS,GAAG,IAAI,CAAC,CAAC;AACrD,KAAI,IAAI,GAAG,IAAI,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC;OAC3C,GAAG,EAAE,UAAU;AACrB,OAAM,OAAO,EAAE,MAAM,CAAC,SAAS,CAAC,qBAAqB;AACrD,OAAM,UAAU,EAAE,MAAM,CAAC,SAAS,CAAC,sBAAsB;AACzD,MAAK,EAAE,QAAQ,CAAC,CAAC,CAAC;AAClB,KAAI,OAAO,UAAU,CAAC,GAAG,CAAC,CAAC;IACxB;EACF;AACD;CACA,SAAS,oBAAoB,CAAC,IAAI,EAAE;GAClC,OAAO,SAAS,MAAM,CAAC,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE;AACtD,KAAI,gBAAgB,CAAC,SAAS,CAAC,CAAC;AAChC,KAAI,KAAK,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC;AAClC,KAAI,SAAS,GAAG,QAAQ,CAAC,SAAS,CAAC,CAAC;KAChC,IAAI,QAAQ,GAAG,MAAM,CAAC,YAAY,CAAC,SAAS,GAAG,IAAI,CAAC,CAAC;AACzD,KAAI,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AAC3B,KAAI,OAAO,QAAQ,CAAC,MAAM,CAAC;OACrB,GAAG,EAAE,SAAS;AACpB,OAAM,OAAO,EAAE,MAAM,CAAC,SAAS,CAAC,qBAAqB;AACrD,OAAM,UAAU,EAAE,MAAM,CAAC,SAAS,CAAC,sBAAsB;AACzD,MAAK,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;IACzB;EACF;AACD;CACA,SAAS,iBAAiB,CAAC,IAAI,EAAE;AACjC,GAAE,IAAI,KAAK,GAAG,eAAe,CAAC,IAAI,CAAC,CAAC;GAClC,OAAO,SAAS,IAAI,GAAG;KACrB,IAAI,SAAS,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;AACjD,KAAI,SAAS,GAAG,WAAW,CAAC,SAAS,CAAC,SAAS,EAAE,IAAI,GAAG,IAAI,CAAC,CAAC;KAC1D,OAAO,SAAS,CAAC;AACrB,IAAG,CAAC;EACH;AACD;CACA,SAAS,kBAAkB,CAAC,IAAI,EAAE;AAClC,GAAE,IAAI,KAAK,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAC;GACpC,OAAO,SAAS,MAAM,CAAC,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE;AACtD,KAAI,SAAS,GAAG,WAAW,CAAC,SAAS,CAAC,SAAS,EAAE,IAAI,GAAG,IAAI,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;KAC7E,IAAI,MAAM,GAAG,KAAK,CAAC,KAAK,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;KAChD,OAAO,MAAM,CAAC;AAClB,IAAG,CAAC;EACH;AACD;AACA,CAAA,SAAS,gBAAgB,GAAG;GAC1B,OAAO,SAAS,IAAI,GAAG;KACrB,OAAO,EAAE,CAAC;IACX;EACF;AACD;AACA,CAAA,SAAS,kBAAkB,GAAG;AAC9B,GAAE,OAAO,SAAS,MAAM,CAAC,KAAK,EAAE,SAAS,EAAE;AAC3C,KAAI,OAAO,SAAS,KAAK,EAAE,CAAC;IACzB;EACF;AACD;AACA,CAAA,GAAc,GAAG,SAAS,GAAG,CAAC,SAAS,EAAE;GACvC,IAAI,eAAe,GAAG;KACpB,EAAE,EAAE,gBAAgB;KACpB,EAAE,EAAE,eAAe;KACnB,EAAE,EAAE,kBAAkB;KACtB,EAAE,EAAE,iBAAiB;KACrB,IAAI,EAAE,gBAAgB;KACvB;GACD,IAAI,iBAAiB,GAAG;KACtB,EAAE,EAAE,kBAAkB;KACtB,EAAE,EAAE,iBAAiB;KACrB,EAAE,EAAE,oBAAoB;KACxB,EAAE,EAAE,kBAAkB;KACtB,IAAI,EAAE,kBAAkB;KACzB;GACD,IAAI,KAAK,GAAG,SAAS,CAAC,KAAK,CAAC,wCAAwC,CAAC,CAAC;GACtE,IAAI,CAAC,KAAK;AACZ,KAAI,MAAM,SAAS,CAAC,qBAAqB,EAAE,SAAS,CAAC,CAAC;AACtD,GAAE,IAAI,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC;AAClD,GAAE,IAAI,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;AACtB;AACA,GAAE,OAAO;KACL,IAAI,EAAE,eAAe,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC;KACjC,MAAM,EAAE,iBAAiB,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC;IACtC;EACF,CAAA;;;;;;;;;;;;AC1PD,CAAA,IAAI,MAAM,GAAGtB,YAAiB,CAAC,MAAM,CAAC;AACtC;AACA,CAAA,QAAc,GAAG,SAAS,QAAQ,CAAC,GAAG,EAAE;AACxC,GAAE,IAAI,OAAO,GAAG,KAAK,QAAQ;KACzB,OAAO,GAAG,CAAC;GACb,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC;AACrD,KAAI,OAAO,GAAG,CAAC,QAAQ,EAAE,CAAC;AAC1B,GAAE,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;EAC5B,CAAA;;;;;;;;;;;;ACRD,CAAA,IAAI,MAAM,GAAGA,iBAAsB,EAAA,CAAC,MAAM,CAAC;CAC3C,IAAI,UAAU,GAAGC,iBAAA,EAAwB,CAAC;CAC1C,IAAI,GAAG,GAAGC,UAAA,EAAc,CAAC;CACzB,IAAIH,QAAM,GAAGO,MAAiB,CAAC;CAC/B,IAAI,QAAQ,GAAGgB,eAAA,EAAqB,CAAC;CACrC,IAAI,IAAI,GAAGf,UAAe,CAAC;AAC3B;AACA,CAAA,SAAS,SAAS,CAAC,MAAM,EAAE,QAAQ,EAAE;AACrC,GAAE,OAAO,MAAM;AACf,MAAK,IAAI,CAAC,MAAM,EAAE,QAAQ,CAAC;MACtB,QAAQ,CAAC,QAAQ,CAAC;AACvB,MAAK,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC;AACtB,MAAK,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC;AACxB,MAAK,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;EACxB;AACD;AACA,CAAA,SAAS,eAAe,CAAC,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE;AACpD,GAAE,QAAQ,GAAG,QAAQ,IAAI,MAAM,CAAC;AAChC,GAAE,IAAI,aAAa,GAAG,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,QAAQ,CAAC,CAAC;AAC5D,GAAE,IAAI,cAAc,GAAG,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,QAAQ,CAAC,CAAC;GAC5D,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,aAAa,EAAE,cAAc,CAAC,CAAC;EAC5D;AACD;CACA,SAAS,OAAO,CAAC,IAAI,EAAE;AACvB,GAAE,IAAI,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;AAC3B,GAAE,IAAI,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;GAC3B,IAAI,WAAW,GAAG,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,UAAU,CAAC;AACnD,GAAE,IAAI,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;GAC7B,IAAI,IAAI,GAAG,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;GAC3B,IAAI,YAAY,GAAG,eAAe,CAAC,MAAM,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC;GAC9D,IAAI,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,WAAW,CAAC,CAAC;GACrD,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,YAAY,EAAE,SAAS,CAAC,CAAC;EACtD;AACD;CACA,SAAS,UAAU,CAAC,IAAI,EAAE;AAC1B,GAAE,IAAI,MAAM,GAAG,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,GAAG,CAAC;GACpD,IAAI,YAAY,GAAG,IAAI,UAAU,CAAC,MAAM,CAAC,CAAC;AAC5C,GAAE,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;AACvB,GAAE,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;AAC5B,GAAE,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;AAChC,GAAE,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,GAAG,GAAG,YAAY,CAAC;GACxD,IAAI,CAAC,OAAO,GAAG,IAAI,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;GAC5C,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,YAAY;KACpC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ;AAC/C,OAAM,IAAI,CAAC,IAAI,EAAE,CAAC;AAClB,IAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;AAChB;GACE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,YAAY;KACrC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ;AAC9C,OAAM,IAAI,CAAC,IAAI,EAAE,CAAC;AAClB,IAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;EACf;AACD,CAAA,IAAI,CAAC,QAAQ,CAAC,UAAU,EAAER,QAAM,CAAC,CAAC;AAClC;AACA,CAAA,UAAU,CAAC,SAAS,CAAC,IAAI,GAAG,SAAS,IAAI,GAAG;AAC5C,GAAE,IAAI;AACN,KAAI,IAAI,SAAS,GAAG,OAAO,CAAC;AAC5B,OAAM,MAAM,EAAE,IAAI,CAAC,MAAM;AACzB,OAAM,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,MAAM;AAClC,OAAM,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM;AAChC,OAAM,QAAQ,EAAE,IAAI,CAAC,QAAQ;AAC7B,MAAK,CAAC,CAAC;KACH,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;KAC7B,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;AACjC,KAAI,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACrB,KAAI,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;KACtB,OAAO,SAAS,CAAC;IAClB,CAAC,OAAO,CAAC,EAAE;AACd,KAAI,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;KACtB,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;AAC1B,KAAI,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACpB;AACH,EAAC,CAAC;AACF;AACA,CAAA,UAAU,CAAC,IAAI,GAAG,OAAO,CAAC;AAC1B;AACA,CAAA,UAAc,GAAG,UAAU,CAAA;;;;;;;;;;;;AC5E3B,CAAA,IAAI,MAAM,GAAGC,iBAAsB,EAAA,CAAC,MAAM,CAAC;CAC3C,IAAI,UAAU,GAAGC,iBAAA,EAAwB,CAAC;CAC1C,IAAI,GAAG,GAAGC,UAAA,EAAc,CAAC;CACzB,IAAIH,QAAM,GAAGO,MAAiB,CAAC;CAC/B,IAAI,QAAQ,GAAGgB,eAAA,EAAqB,CAAC;CACrC,IAAI,IAAI,GAAGf,UAAe,CAAC;CAC3B,IAAI,SAAS,GAAG,0DAA0D,CAAC;AAC3E;CACA,SAAS,QAAQ,CAAC,KAAK,EAAE;AACzB,GAAE,OAAO,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,iBAAiB,CAAC;EACpE;AACD;CACA,SAAS,aAAa,CAAC,KAAK,EAAE;AAC9B,GAAE,IAAI,QAAQ,CAAC,KAAK,CAAC;KACjB,OAAO,KAAK,CAAC;GACf,IAAI,EAAE,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE;AACnC,GAAE,OAAO,CAAC,EAAE,EAAE,OAAO,SAAS,CAAC,EAAE;EAChC;AACD;CACA,SAAS,aAAa,CAAC,MAAM,EAAE;AAC/B,GAAE,IAAI,aAAa,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC9C,GAAE,OAAO,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,aAAa,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC;EAC/E;AACD;CACA,SAAS,mBAAmB,CAAC,MAAM,EAAE;AACrC,GAAE,OAAO,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;EACvC;AACD;CACA,SAAS,gBAAgB,CAAC,MAAM,EAAE;GAChC,OAAO,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;EAC7B;AACD;AACA,CAAA,SAAS,cAAc,CAAC,MAAM,EAAE,QAAQ,EAAE;AAC1C,GAAE,QAAQ,GAAG,QAAQ,IAAI,MAAM,CAAC;AAChC,GAAE,IAAI,OAAO,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AACrC,GAAE,OAAO,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;EAC1D;AACD;CACA,SAAS,UAAU,CAAC,MAAM,EAAE;AAC5B,GAAE,OAAO,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;EAC1D;AACD;AACA,CAAA,SAAS,SAAS,CAAC,MAAM,EAAE,SAAS,EAAE,WAAW,EAAE;GACjD,IAAI,CAAC,SAAS,EAAE;KACd,IAAI,GAAG,GAAG,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAC;AACtE,KAAI,GAAG,CAAC,IAAI,GAAG,mBAAmB,CAAC;KAC/B,MAAM,GAAG,CAAC;IACX;AACH,GAAE,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC;AAC5B,GAAE,IAAI,SAAS,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAC;AAC3C,GAAE,IAAI,YAAY,GAAG,mBAAmB,CAAC,MAAM,CAAC,CAAC;AACjD,GAAE,IAAI,IAAI,GAAG,GAAG,CAAC,SAAS,CAAC,CAAC;GAC1B,OAAO,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE,SAAS,EAAE,WAAW,CAAC,CAAC;EAC1D;AACD;AACA,CAAA,SAAS,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE;AACjC,GAAE,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC;AACpB,GAAE,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC;AAC5B;AACA,GAAE,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC;KACrB,OAAO,IAAI,CAAC;AAChB;AACA,GAAE,IAAI,MAAM,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC;AACrC;GACE,IAAI,CAAC,MAAM;KACT,OAAO,IAAI,CAAC;AAChB;AACA,GAAE,IAAI,OAAO,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC;GACrC,IAAI,MAAM,CAAC,GAAG,KAAK,KAAK,IAAI,IAAI,CAAC,IAAI;AACvC,KAAI,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;AACjD;AACA,GAAE,OAAO;KACL,MAAM,EAAE,MAAM;KACd,OAAO,EAAE,OAAO;AACpB,KAAI,SAAS,EAAE,gBAAgB,CAAC,MAAM,CAAC;AACvC,IAAG,CAAC;EACH;AACD;CACA,SAAS,YAAY,CAAC,IAAI,EAAE;AAC5B,GAAE,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC;AACpB,GAAE,IAAI,WAAW,GAAG,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,GAAG,CAAC;GACxD,IAAI,YAAY,GAAG,IAAI,UAAU,CAAC,WAAW,CAAC,CAAC;AACjD,GAAE,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;AACvB,GAAE,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;AAClC,GAAE,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;AAChC,GAAE,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,GAAG,GAAG,YAAY,CAAC;GACvD,IAAI,CAAC,SAAS,GAAG,IAAI,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;GAChD,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,YAAY;KACpC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ;AACjD,OAAM,IAAI,CAAC,MAAM,EAAE,CAAC;AACpB,IAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;AAChB;GACE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,EAAE,YAAY;KACvC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ;AAC9C,OAAM,IAAI,CAAC,MAAM,EAAE,CAAC;AACpB,IAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;EACf;AACD,CAAA,IAAI,CAAC,QAAQ,CAAC,YAAY,EAAER,QAAM,CAAC,CAAC;AACpC,CAAA,YAAY,CAAC,SAAS,CAAC,MAAM,GAAG,SAAS,MAAM,GAAG;AAClD,GAAE,IAAI;KACF,IAAI,KAAK,GAAG,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;AAClF,KAAI,IAAI,GAAG,GAAG,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;KAC1D,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC;KAC9B,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;AAC7B,KAAI,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACrB,KAAI,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;KACtB,OAAO,KAAK,CAAC;IACd,CAAC,OAAO,CAAC,EAAE;AACd,KAAI,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;KACtB,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;AAC1B,KAAI,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACpB;AACH,EAAC,CAAC;AACF;AACA,CAAA,YAAY,CAAC,MAAM,GAAG,SAAS,CAAC;AAChC,CAAA,YAAY,CAAC,OAAO,GAAG,UAAU,CAAC;AAClC,CAAA,YAAY,CAAC,MAAM,GAAG,SAAS,CAAC;AAChC;AACA,CAAA,YAAc,GAAG,YAAY,CAAA;;;;;;;;;;;CCtH7B,IAAI,UAAU,GAAGC,iBAAA,EAA4B,CAAC;CAC9C,IAAI,YAAY,GAAGC,mBAAA,EAA8B,CAAC;AAClD;AACA,CAAA,IAAI,UAAU,GAAG;AACjB,GAAE,OAAO,EAAE,OAAO,EAAE,OAAO;AAC3B,GAAE,OAAO,EAAE,OAAO,EAAE,OAAO;AAC3B,GAAE,OAAO,EAAE,OAAO,EAAE,OAAO;AAC3B,GAAE,OAAO,EAAE,OAAO,EAAE,OAAO;AAC3B,EAAC,CAAC;AACF;AACA,CAAkB,GAAA,CAAA,UAAA,GAAG,UAAU,CAAC;AAChC,CAAA,GAAA,CAAA,IAAY,GAAG,UAAU,CAAC,IAAI,CAAC;AAC/B,CAAA,GAAA,CAAA,MAAc,GAAG,YAAY,CAAC,MAAM,CAAC;AACrC,CAAA,GAAA,CAAA,MAAc,GAAG,YAAY,CAAC,MAAM,CAAC;AACrC,CAAA,GAAA,CAAA,OAAe,GAAG,YAAY,CAAC,OAAO,CAAC;AACvC,CAAA,GAAA,CAAA,UAAkB,GAAG,SAAS,UAAU,CAAC,IAAI,EAAE;AAC/C,GAAE,OAAO,IAAI,UAAU,CAAC,IAAI,CAAC,CAAC;AAC9B,EAAC,CAAC;AACF,CAAA,GAAA,CAAA,YAAoB,GAAG,SAAS,YAAY,CAAC,IAAI,EAAE;AACnD,GAAE,OAAO,IAAI,YAAY,CAAC,IAAI,CAAC,CAAC;EAC/B,CAAA;;;;;;;;;;CCrBD,IAAI,GAAG,GAAGD,UAAA,EAAc,CAAC;AACzB;AACA,CAAA,MAAc,GAAG,UAAU,GAAG,EAAE,OAAO,EAAE;AACzC,GAAE,OAAO,GAAG,OAAO,IAAI,EAAE,CAAC;GACxB,IAAI,OAAO,GAAG,GAAG,CAAC,MAAM,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;GACvC,IAAI,CAAC,OAAO,EAAE,EAAE,OAAO,IAAI,CAAC,EAAE;AAChC,GAAE,IAAI,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;AAChC;AACA;AACA,GAAE,GAAG,OAAO,OAAO,KAAK,QAAQ,EAAE;AAClC,KAAI,IAAI;OACF,IAAI,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;OAC9B,GAAG,GAAG,KAAK,IAAI,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE;SAC1C,OAAO,GAAG,GAAG,CAAC;QACf;AACP,MAAK,CAAC,OAAO,CAAC,EAAE,GAAG;IAChB;AACH;AACA;AACA;AACA;AACA,GAAE,IAAI,OAAO,CAAC,QAAQ,KAAK,IAAI,EAAE;AACjC,KAAI,OAAO;AACX,OAAM,MAAM,EAAE,OAAO,CAAC,MAAM;OACtB,OAAO,EAAE,OAAO;AACtB,OAAM,SAAS,EAAE,OAAO,CAAC,SAAS;AAClC,MAAK,CAAC;IACH;GACD,OAAO,OAAO,CAAC;EAChB,CAAA;;;;;;;;;;AC7BD,CAAA,IAAI,iBAAiB,GAAG,UAAU,OAAO,EAAE,KAAK,EAAE;GAChD,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;AAC5B,GAAE,GAAG,KAAK,CAAC,iBAAiB,EAAE;KAC1B,KAAK,CAAC,iBAAiB,CAAC,IAAI,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;IACjD;AACH,GAAE,IAAI,CAAC,IAAI,GAAG,mBAAmB,CAAC;AAClC,GAAE,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;GACvB,IAAI,KAAK,EAAE,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;AAChC,EAAC,CAAC;AACF;CACA,iBAAiB,CAAC,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;AAC7D,CAAA,iBAAiB,CAAC,SAAS,CAAC,WAAW,GAAG,iBAAiB,CAAC;AAC5D;AACA,CAAA,mBAAc,GAAG,iBAAiB,CAAA;;;;;;;;;;CCblC,IAAI,iBAAiB,GAAGA,wBAAA,EAA8B,CAAC;AACvD;AACA,CAAA,IAAI,cAAc,GAAG,UAAU,OAAO,EAAE,IAAI,EAAE;GAC5C,iBAAiB,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;AACxC,GAAE,IAAI,CAAC,IAAI,GAAG,gBAAgB,CAAC;AAC/B,GAAE,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;AACnB,EAAC,CAAC;AACF;CACA,cAAc,CAAC,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC;AACtE;AACA,CAAA,cAAc,CAAC,SAAS,CAAC,WAAW,GAAG,cAAc,CAAC;AACtD;AACA,CAAA,gBAAc,GAAG,cAAc,CAAA;;;;;;;;;;CCZ/B,IAAI,iBAAiB,GAAGA,wBAAA,EAA8B,CAAC;AACvD;AACA,CAAA,IAAI,iBAAiB,GAAG,UAAU,OAAO,EAAE,SAAS,EAAE;GACpD,iBAAiB,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;AACxC,GAAE,IAAI,CAAC,IAAI,GAAG,mBAAmB,CAAC;AAClC,GAAE,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;AAC7B,EAAC,CAAC;AACF;CACA,iBAAiB,CAAC,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC;AACzE;AACA,CAAA,iBAAiB,CAAC,SAAS,CAAC,WAAW,GAAG,iBAAiB,CAAC;AAC5D;AACA,CAAA,mBAAc,GAAG,iBAAiB,CAAA;;;;;;;;;;CCZlC,IAAI,EAAE,GAAGA,SAAA,EAAa,CAAC;AACvB;AACA,CAAA,QAAc,GAAG,UAAU,IAAI,EAAE,GAAG,EAAE;AACtC,GAAE,IAAI,SAAS,GAAG,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC;AACvD;AACA,GAAE,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE;AAChC,KAAI,IAAI,YAAY,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC;AAChC,KAAI,IAAI,OAAO,YAAY,KAAK,WAAW,EAAE;AAC7C,OAAM,OAAO;MACR;KACD,OAAO,IAAI,CAAC,KAAK,CAAC,SAAS,GAAG,YAAY,GAAG,IAAI,CAAC,CAAC;AACvD,IAAG,MAAM,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE;AACvC,KAAI,OAAO,SAAS,GAAG,IAAI,CAAC;AAC5B,IAAG,MAAM;AACT,KAAI,OAAO;IACR;AACH;EACC,CAAA;;;;;;;;;;;;ACjBD;AACA;CACA,MAAM,mBAAmB,GAAG,QAAO;AACnC;CACA,MAAM,UAAU,GAAG,IAAG;AACtB,CAAA,MAAM,gBAAgB,GAAG,MAAM,CAAC,gBAAgB;AAChD,4BAA2B,iBAAgB;AAC3C;AACA;CACA,MAAM,yBAAyB,GAAG,GAAE;AACpC;AACA;AACA;AACA,CAAA,MAAM,qBAAqB,GAAG,UAAU,GAAG,EAAC;AAC5C;AACA,CAAA,MAAM,aAAa,GAAG;AACtB,GAAE,OAAO;AACT,GAAE,UAAU;AACZ,GAAE,OAAO;AACT,GAAE,UAAU;AACZ,GAAE,OAAO;AACT,GAAE,UAAU;AACZ,GAAE,YAAY;GACb;AACD;AACA,CAAA,SAAc,GAAG;AACjB,GAAE,UAAU;AACZ,GAAE,yBAAyB;AAC3B,GAAE,qBAAqB;AACvB,GAAE,gBAAgB;AAClB,GAAE,aAAa;AACf,GAAE,mBAAmB;GACnB,uBAAuB,EAAE,KAAK;GAC9B,UAAU,EAAE,KAAK;AACnB,GAAA;;;;;;;;;;AClCA,CAAA,MAAM,KAAK,GAAG;GACZ,OAAO,OAAO,KAAK,QAAQ;GAC3B,OAAO,CAAC,GAAG;AACb,GAAE,OAAO,CAAC,GAAG,CAAC,UAAU;GACtB,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC;AAC5C,KAAI,CAAC,GAAG,IAAI,KAAK,OAAO,CAAC,KAAK,CAAC,QAAQ,EAAE,GAAG,IAAI,CAAC;AACjD,KAAI,MAAM,GAAE;AACZ;AACA,CAAA,OAAc,GAAG,MAAA;;;;;;;;;;ECRjB,MAAM;AACN,IAAE,yBAAyB;AAC3B,IAAE,qBAAqB;AACvB,IAAE,UAAU;AACZ,GAAC,GAAGA,gBAAsB,GAAA;EAC1B,MAAM,KAAK,GAAGC,YAAkB,GAAA;EAChC,OAAO,GAAG,iBAAiB,GAAE;AAC7B;AACA;EACA,MAAM,EAAE,GAAG,OAAA,CAAA,EAAA,GAAa,GAAE;EAC1B,MAAM,MAAM,GAAG,OAAA,CAAA,MAAA,GAAiB,GAAE;EAClC,MAAM,GAAG,GAAG,OAAA,CAAA,GAAA,GAAc,GAAE;EAC5B,MAAM,CAAC,GAAG,OAAA,CAAA,CAAA,GAAY,GAAE;EACxB,IAAI,CAAC,GAAG,EAAC;AACT;EACA,MAAM,gBAAgB,GAAG,eAAc;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAA,MAAM,qBAAqB,GAAG;AAC9B,IAAE,CAAC,KAAK,EAAE,CAAC,CAAC;AACZ,IAAE,CAAC,KAAK,EAAE,UAAU,CAAC;AACrB,IAAE,CAAC,gBAAgB,EAAE,qBAAqB,CAAC;IAC1C;AACD;AACA,EAAA,MAAM,aAAa,GAAG,CAAC,KAAK,KAAK;IAC/B,KAAK,MAAM,CAAC,KAAK,EAAE,GAAG,CAAC,IAAI,qBAAqB,EAAE;MAChD,KAAK,GAAG,KAAK;SACV,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,KAAK,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;SAC7C,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,KAAK,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,EAAC;KACjD;AACH,IAAE,OAAO,KAAK;IACb;AACD;EACA,MAAM,WAAW,GAAG,CAAC,IAAI,EAAE,KAAK,EAAE,QAAQ,KAAK;AAC/C,IAAE,MAAM,IAAI,GAAG,aAAa,CAAC,KAAK,EAAC;AACnC,IAAE,MAAM,KAAK,GAAG,CAAC,GAAE;AACnB,IAAE,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,EAAC;AAC3B,IAAE,CAAC,CAAC,IAAI,CAAC,GAAG,MAAK;AACjB,IAAE,GAAG,CAAC,KAAK,CAAC,GAAG,MAAK;AACpB,IAAE,EAAE,CAAC,KAAK,CAAC,GAAG,IAAI,MAAM,CAAC,KAAK,EAAE,QAAQ,GAAG,GAAG,GAAG,SAAS,EAAC;AAC3D,IAAE,MAAM,CAAC,KAAK,CAAC,GAAG,IAAI,MAAM,CAAC,IAAI,EAAE,QAAQ,GAAG,GAAG,GAAG,SAAS,EAAC;IAC7D;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAA,WAAW,CAAC,mBAAmB,EAAE,aAAa,EAAC;AAC/C,EAAA,WAAW,CAAC,wBAAwB,EAAE,MAAM,EAAC;AAC7C;AACA;AACA;AACA;AACA;EACA,WAAW,CAAC,sBAAsB,EAAE,CAAC,aAAa,EAAE,gBAAgB,CAAC,CAAC,CAAC,EAAC;AACxE;AACA;AACA;AACA;AACA,EAAA,WAAW,CAAC,aAAa,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,IAAI,CAAC;qBAC1C,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,IAAI,CAAC;AACrD,qBAAmB,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,EAAC;AACnD;AACA,EAAA,WAAW,CAAC,kBAAkB,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,sBAAsB,CAAC,CAAC,IAAI,CAAC;0BAC/C,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,sBAAsB,CAAC,CAAC,IAAI,CAAC;AAC/D,0BAAwB,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC,EAAC;AAC7D;AACA;AACA;AACA;EACA,WAAW,CAAC,sBAAsB,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,iBAAiB,CAAC;GACjE,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,CAAC,EAAC;AACnC;EACA,WAAW,CAAC,2BAA2B,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,sBAAsB,CAAC;GAC3E,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,CAAC,EAAC;AACnC;AACA;AACA;AACA;AACA;EACA,WAAW,CAAC,YAAY,EAAE,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC,oBAAoB,CAAC;GAC5D,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,IAAI,CAAC,EAAC;AAC3C;EACA,WAAW,CAAC,iBAAiB,EAAE,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,yBAAyB,CAAC;GACvE,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,yBAAyB,CAAC,CAAC,IAAI,CAAC,EAAC;AAChD;AACA;AACA;AACA;EACA,WAAW,CAAC,iBAAiB,EAAE,CAAC,EAAE,gBAAgB,CAAC,CAAC,CAAC,EAAC;AACtD;AACA;AACA;AACA;AACA;EACA,WAAW,CAAC,OAAO,EAAE,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC,eAAe,CAAC;GACpD,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,IAAI,CAAC,EAAC;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACA,WAAW,CAAC,WAAW,EAAE,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,CAAC,WAAW,CAAC;GAC/C,EAAE,GAAG,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC;IACpB,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAC;AAClB;AACA,EAAA,WAAW,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EAAC;AAC5C;AACA;AACA;AACA;EACA,WAAW,CAAC,YAAY,EAAE,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAC,gBAAgB,CAAC;GAC3D,EAAE,GAAG,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC;IACzB,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAC;AAClB;AACA,EAAA,WAAW,CAAC,OAAO,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,EAAC;AAC9C;AACA,EAAA,WAAW,CAAC,MAAM,EAAE,cAAc,EAAC;AACnC;AACA;AACA;AACA;AACA,EAAA,WAAW,CAAC,uBAAuB,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,sBAAsB,CAAC,CAAC,QAAQ,CAAC,EAAC;AAChF,EAAA,WAAW,CAAC,kBAAkB,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,QAAQ,CAAC,EAAC;AACtE;AACA,EAAA,WAAW,CAAC,aAAa,EAAE,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC;qBAC9C,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC;qBACpC,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC;qBACpC,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,EAAE;uBACxB,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;qBACjB,CAAC,IAAI,CAAC,EAAC;AAC1B;AACA,EAAA,WAAW,CAAC,kBAAkB,EAAE,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;0BACnD,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;0BACzC,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;0BACzC,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,EAAE;4BAC7B,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;0BACjB,CAAC,IAAI,CAAC,EAAC;AAC/B;EACA,WAAW,CAAC,QAAQ,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,EAAC;EAClE,WAAW,CAAC,aAAa,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,EAAC;AAC5E;AACA;AACA;AACA,EAAA,WAAW,CAAC,QAAQ,EAAE,CAAC,EAAE,YAAY;AACrC,gBAAc,SAAS,CAAC,EAAE,yBAAyB,CAAC,EAAE,CAAC;AACvD,gBAAc,CAAC,aAAa,EAAE,yBAAyB,CAAC,IAAI,CAAC;AAC7D,gBAAc,CAAC,aAAa,EAAE,yBAAyB,CAAC,IAAI,CAAC;gBAC/C,CAAC,YAAY,CAAC,EAAC;EAC7B,WAAW,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,IAAI,EAAC;AAC7C;AACA;AACA;AACA,EAAA,WAAW,CAAC,WAAW,EAAE,SAAS,EAAC;AACnC;AACA,EAAA,WAAW,CAAC,WAAW,EAAE,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,EAAE,IAAI,EAAC;AAC/D,EAAA,OAAA,CAAA,gBAAA,GAA2B,MAAK;AAChC;EACA,WAAW,CAAC,OAAO,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,EAAC;EAClE,WAAW,CAAC,YAAY,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,EAAC;AAC5E;AACA;AACA;AACA,EAAA,WAAW,CAAC,WAAW,EAAE,SAAS,EAAC;AACnC;AACA,EAAA,WAAW,CAAC,WAAW,EAAE,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,EAAE,IAAI,EAAC;AAC/D,EAAA,OAAA,CAAA,gBAAA,GAA2B,MAAK;AAChC;EACA,WAAW,CAAC,OAAO,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,EAAC;EAClE,WAAW,CAAC,YAAY,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,EAAC;AAC5E;AACA;EACA,WAAW,CAAC,iBAAiB,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,KAAK,CAAC,EAAC;EAC/E,WAAW,CAAC,YAAY,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,KAAK,CAAC,EAAC;AACzE;AACA;AACA;EACA,WAAW,CAAC,gBAAgB,EAAE,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC;GACjD,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAC;AACzD,EAAA,OAAA,CAAA,qBAAA,GAAgC,SAAQ;AACxC;AACA;AACA;AACA;AACA;AACA,EAAA,WAAW,CAAC,aAAa,EAAE,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;qBACtC,CAAC,SAAS,CAAC;qBACX,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;qBACzB,CAAC,KAAK,CAAC,EAAC;AAC3B;AACA,EAAA,WAAW,CAAC,kBAAkB,EAAE,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC;0BAC3C,CAAC,SAAS,CAAC;0BACX,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC;0BAC9B,CAAC,KAAK,CAAC,EAAC;AAChC;AACA;AACA,EAAA,WAAW,CAAC,MAAM,EAAE,iBAAiB,EAAC;AACtC;AACA,EAAA,WAAW,CAAC,MAAM,EAAE,2BAA2B,EAAC;EAChD,WAAW,CAAC,SAAS,EAAE,6BAA6B,EAAA;;;;;;;;;;;ACnNpD;CACA,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,EAAC;AAClD,CAAA,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,GAAG,EAAC;CACpC,MAAM,YAAY,GAAG,OAAO,IAAI;GAC9B,IAAI,CAAC,OAAO,EAAE;AAChB,KAAI,OAAO,SAAS;IACjB;AACH;AACA,GAAE,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE;AACnC,KAAI,OAAO,WAAW;IACnB;AACH;AACA,GAAE,OAAO,OAAO;GACf;AACD,CAAA,cAAc,GAAG,aAAA;;;;;;;;;;CCdjB,MAAM,OAAO,GAAG,WAAU;AAC1B,CAAA,MAAM,kBAAkB,GAAG,CAAC,CAAC,EAAE,CAAC,KAAK;GACnC,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,EAAC;GAC5B,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,EAAC;AAC9B;AACA,GAAE,IAAI,IAAI,IAAI,IAAI,EAAE;KAChB,CAAC,GAAG,CAAC,EAAC;KACN,CAAC,GAAG,CAAC,EAAC;IACP;AACH;AACA,GAAE,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC;AACpB,OAAM,CAAC,IAAI,IAAI,CAAC,IAAI,IAAI,CAAC,CAAC;AAC1B,OAAM,CAAC,IAAI,IAAI,CAAC,IAAI,IAAI,CAAC;AACzB,OAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AAChB,OAAM,CAAC;GACN;AACD;AACA,CAAA,MAAM,mBAAmB,GAAG,CAAC,CAAC,EAAE,CAAC,KAAK,kBAAkB,CAAC,CAAC,EAAE,CAAC,EAAC;AAC9D;AACA,CAAA,WAAc,GAAG;AACjB,GAAE,kBAAkB;AACpB,GAAE,mBAAmB;AACrB,GAAA;;;;;;;;;;CCtBA,MAAM,KAAK,GAAGD,YAA4B,GAAA;AAC1C,CAAA,MAAM,EAAE,UAAU,EAAE,gBAAgB,EAAE,GAAGC,gBAAgC,GAAA;CACzE,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,EAAE,GAAGC,SAAyB,GAAA;AACnD;CACA,MAAM,YAAY,GAAGI,mBAAoC,GAAA;AACzD,CAAA,MAAM,EAAE,kBAAkB,EAAE,GAAGgB,kBAAkC,GAAA;AACjE,CAAA,MAAM,MAAM,CAAC;AACb,GAAE,WAAW,CAAC,CAAC,OAAO,EAAE,OAAO,EAAE;AACjC,KAAI,OAAO,GAAG,YAAY,CAAC,OAAO,EAAC;AACnC;AACA,KAAI,IAAI,OAAO,YAAY,MAAM,EAAE;OAC7B,IAAI,OAAO,CAAC,KAAK,KAAK,CAAC,CAAC,OAAO,CAAC,KAAK;WACjC,OAAO,CAAC,iBAAiB,KAAK,CAAC,CAAC,OAAO,CAAC,iBAAiB,EAAE;AACrE,SAAQ,OAAO,OAAO;AACtB,QAAO,MAAM;AACb,SAAQ,OAAO,GAAG,OAAO,CAAC,QAAO;QAC1B;AACP,MAAK,MAAM,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE;AAC5C,OAAM,MAAM,IAAI,SAAS,CAAC,CAAC,6CAA6C,EAAE,OAAO,OAAO,CAAC,EAAE,CAAC,CAAC;MACxF;AACL;AACA,KAAI,IAAI,OAAO,CAAC,MAAM,GAAG,UAAU,EAAE;OAC/B,MAAM,IAAI,SAAS;AACzB,SAAQ,CAAC,uBAAuB,EAAE,UAAU,CAAC,WAAW,CAAC;QAClD;MACF;AACL;AACA,KAAI,KAAK,CAAC,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAC;AACrC,KAAI,IAAI,CAAC,OAAO,GAAG,QAAO;KACtB,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,OAAO,CAAC,MAAK;AAChC;AACA;KACI,IAAI,CAAC,iBAAiB,GAAG,CAAC,CAAC,OAAO,CAAC,kBAAiB;AACxD;KACI,MAAM,CAAC,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,GAAG,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAC;AAC5E;KACI,IAAI,CAAC,CAAC,EAAE;OACN,MAAM,IAAI,SAAS,CAAC,CAAC,iBAAiB,EAAE,OAAO,CAAC,CAAC,CAAC;MACnD;AACL;AACA,KAAI,IAAI,CAAC,GAAG,GAAG,QAAO;AACtB;AACA;KACI,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,EAAC;KAClB,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,EAAC;KAClB,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,EAAC;AACtB;AACA,KAAI,IAAI,IAAI,CAAC,KAAK,GAAG,gBAAgB,IAAI,IAAI,CAAC,KAAK,GAAG,CAAC,EAAE;AACzD,OAAM,MAAM,IAAI,SAAS,CAAC,uBAAuB,CAAC;MAC7C;AACL;AACA,KAAI,IAAI,IAAI,CAAC,KAAK,GAAG,gBAAgB,IAAI,IAAI,CAAC,KAAK,GAAG,CAAC,EAAE;AACzD,OAAM,MAAM,IAAI,SAAS,CAAC,uBAAuB,CAAC;MAC7C;AACL;AACA,KAAI,IAAI,IAAI,CAAC,KAAK,GAAG,gBAAgB,IAAI,IAAI,CAAC,KAAK,GAAG,CAAC,EAAE;AACzD,OAAM,MAAM,IAAI,SAAS,CAAC,uBAAuB,CAAC;MAC7C;AACL;AACA;AACA,KAAI,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE;AACf,OAAM,IAAI,CAAC,UAAU,GAAG,GAAE;AAC1B,MAAK,MAAM;AACX,OAAM,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK;AACpD,SAAQ,IAAI,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE;AACjC,WAAU,MAAM,GAAG,GAAG,CAAC,GAAE;WACf,IAAI,GAAG,IAAI,CAAC,IAAI,GAAG,GAAG,gBAAgB,EAAE;AAClD,aAAY,OAAO,GAAG;YACX;UACF;AACT,SAAQ,OAAO,EAAE;AACjB,QAAO,EAAC;MACH;AACL;AACA,KAAI,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,GAAE;KACxC,IAAI,CAAC,MAAM,GAAE;IACd;AACH;GACE,MAAM,CAAC,GAAG;KACR,IAAI,CAAC,OAAO,GAAG,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,EAAC;AAC9D,KAAI,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE;AAChC,OAAM,IAAI,CAAC,OAAO,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAC;MAChD;KACD,OAAO,IAAI,CAAC,OAAO;IACpB;AACH;GACE,QAAQ,CAAC,GAAG;KACV,OAAO,IAAI,CAAC,OAAO;IACpB;AACH;AACA,GAAE,OAAO,CAAC,CAAC,KAAK,EAAE;AAClB,KAAI,KAAK,CAAC,gBAAgB,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,KAAK,EAAC;AAC9D,KAAI,IAAI,EAAE,KAAK,YAAY,MAAM,CAAC,EAAE;OAC9B,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,CAAC,OAAO,EAAE;AAC/D,SAAQ,OAAO,CAAC;QACT;OACD,KAAK,GAAG,IAAI,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,OAAO,EAAC;MACxC;AACL;KACI,IAAI,KAAK,CAAC,OAAO,KAAK,IAAI,CAAC,OAAO,EAAE;AACxC,OAAM,OAAO,CAAC;MACT;AACL;AACA,KAAI,OAAO,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC;IACzD;AACH;AACA,GAAE,WAAW,CAAC,CAAC,KAAK,EAAE;AACtB,KAAI,IAAI,EAAE,KAAK,YAAY,MAAM,CAAC,EAAE;OAC9B,KAAK,GAAG,IAAI,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,OAAO,EAAC;MACxC;AACL;KACI;OACE,kBAAkB,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC;OAC3C,kBAAkB,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC;OAC3C,kBAAkB,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC;MAC5C;IACF;AACH;AACA,GAAE,UAAU,CAAC,CAAC,KAAK,EAAE;AACrB,KAAI,IAAI,EAAE,KAAK,YAAY,MAAM,CAAC,EAAE;OAC9B,KAAK,GAAG,IAAI,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,OAAO,EAAC;MACxC;AACL;AACA;AACA,KAAI,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,MAAM,EAAE;OACtD,OAAO,CAAC,CAAC;AACf,MAAK,MAAM,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,IAAI,KAAK,CAAC,UAAU,CAAC,MAAM,EAAE;AACnE,OAAM,OAAO,CAAC;AACd,MAAK,MAAM,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,MAAM,EAAE;AACpE,OAAM,OAAO,CAAC;MACT;AACL;KACI,IAAI,CAAC,GAAG,EAAC;AACb,KAAI,GAAG;OACD,MAAM,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,EAAC;OAC5B,MAAM,CAAC,GAAG,KAAK,CAAC,UAAU,CAAC,CAAC,EAAC;OAC7B,KAAK,CAAC,oBAAoB,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAC;OACpC,IAAI,CAAC,KAAK,SAAS,IAAI,CAAC,KAAK,SAAS,EAAE;AAC9C,SAAQ,OAAO,CAAC;AAChB,QAAO,MAAM,IAAI,CAAC,KAAK,SAAS,EAAE;AAClC,SAAQ,OAAO,CAAC;AAChB,QAAO,MAAM,IAAI,CAAC,KAAK,SAAS,EAAE;SAC1B,OAAO,CAAC,CAAC;AACjB,QAAO,MAAM,IAAI,CAAC,KAAK,CAAC,EAAE;AAC1B,SAAQ,QAAQ;AAChB,QAAO,MAAM;AACb,SAAQ,OAAO,kBAAkB,CAAC,CAAC,EAAE,CAAC,CAAC;QAChC;MACF,QAAQ,EAAE,CAAC,CAAC;IACd;AACH;AACA,GAAE,YAAY,CAAC,CAAC,KAAK,EAAE;AACvB,KAAI,IAAI,EAAE,KAAK,YAAY,MAAM,CAAC,EAAE;OAC9B,KAAK,GAAG,IAAI,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,OAAO,EAAC;MACxC;AACL;KACI,IAAI,CAAC,GAAG,EAAC;AACb,KAAI,GAAG;OACD,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAC;OACvB,MAAM,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAC;OACxB,KAAK,CAAC,oBAAoB,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAC;OACpC,IAAI,CAAC,KAAK,SAAS,IAAI,CAAC,KAAK,SAAS,EAAE;AAC9C,SAAQ,OAAO,CAAC;AAChB,QAAO,MAAM,IAAI,CAAC,KAAK,SAAS,EAAE;AAClC,SAAQ,OAAO,CAAC;AAChB,QAAO,MAAM,IAAI,CAAC,KAAK,SAAS,EAAE;SAC1B,OAAO,CAAC,CAAC;AACjB,QAAO,MAAM,IAAI,CAAC,KAAK,CAAC,EAAE;AAC1B,SAAQ,QAAQ;AAChB,QAAO,MAAM;AACb,SAAQ,OAAO,kBAAkB,CAAC,CAAC,EAAE,CAAC,CAAC;QAChC;MACF,QAAQ,EAAE,CAAC,CAAC;IACd;AACH;AACA;AACA;GACE,GAAG,CAAC,CAAC,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE;AAC5C,KAAI,QAAQ,OAAO;AACnB,OAAM,KAAK,UAAU;AACrB,SAAQ,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,EAAC;AAClC,SAAQ,IAAI,CAAC,KAAK,GAAG,EAAC;AACtB,SAAQ,IAAI,CAAC,KAAK,GAAG,EAAC;SACd,IAAI,CAAC,KAAK,GAAE;SACZ,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,UAAU,EAAE,cAAc,EAAC;AACnD,SAAQ,KAAK;AACb,OAAM,KAAK,UAAU;AACrB,SAAQ,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,EAAC;AAClC,SAAQ,IAAI,CAAC,KAAK,GAAG,EAAC;SACd,IAAI,CAAC,KAAK,GAAE;SACZ,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,UAAU,EAAE,cAAc,EAAC;AACnD,SAAQ,KAAK;AACb,OAAM,KAAK,UAAU;AACrB;AACA;AACA;AACA,SAAQ,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,EAAC;SAC1B,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,UAAU,EAAE,cAAc,EAAC;SAC7C,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,UAAU,EAAE,cAAc,EAAC;AACnD,SAAQ,KAAK;AACb;AACA;AACA,OAAM,KAAK,YAAY;SACf,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE;WAChC,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,UAAU,EAAE,cAAc,EAAC;UAC9C;SACD,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,UAAU,EAAE,cAAc,EAAC;AACnD,SAAQ,KAAK;AACb;AACA,OAAM,KAAK,OAAO;AAClB;AACA;AACA;AACA;SACQ;AACR,WAAU,IAAI,CAAC,KAAK,KAAK,CAAC;AAC1B,WAAU,IAAI,CAAC,KAAK,KAAK,CAAC;AAC1B,WAAU,IAAI,CAAC,UAAU,CAAC,MAAM,KAAK,CAAC;WAC5B;WACA,IAAI,CAAC,KAAK,GAAE;UACb;AACT,SAAQ,IAAI,CAAC,KAAK,GAAG,EAAC;AACtB,SAAQ,IAAI,CAAC,KAAK,GAAG,EAAC;AACtB,SAAQ,IAAI,CAAC,UAAU,GAAG,GAAE;AAC5B,SAAQ,KAAK;AACb,OAAM,KAAK,OAAO;AAClB;AACA;AACA;AACA;AACA,SAAQ,IAAI,IAAI,CAAC,KAAK,KAAK,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE;WACpD,IAAI,CAAC,KAAK,GAAE;UACb;AACT,SAAQ,IAAI,CAAC,KAAK,GAAG,EAAC;AACtB,SAAQ,IAAI,CAAC,UAAU,GAAG,GAAE;AAC5B,SAAQ,KAAK;AACb,OAAM,KAAK,OAAO;AAClB;AACA;AACA;AACA;SACQ,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE;WAChC,IAAI,CAAC,KAAK,GAAE;UACb;AACT,SAAQ,IAAI,CAAC,UAAU,GAAG,GAAE;AAC5B,SAAQ,KAAK;AACb;AACA;OACM,KAAK,KAAK,EAAE;SACV,MAAM,IAAI,GAAG,MAAM,CAAC,cAAc,CAAC,GAAG,CAAC,GAAG,EAAC;AACnD;AACA,SAAQ,IAAI,CAAC,UAAU,IAAI,cAAc,KAAK,KAAK,EAAE;AACrD,WAAU,MAAM,IAAI,KAAK,CAAC,iDAAiD,CAAC;UACnE;AACT;SACQ,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE;AAC1C,WAAU,IAAI,CAAC,UAAU,GAAG,CAAC,IAAI,EAAC;AAClC,UAAS,MAAM;AACf,WAAU,IAAI,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,OAAM;AACxC,WAAU,OAAO,EAAE,CAAC,IAAI,CAAC,EAAE;aACf,IAAI,OAAO,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,QAAQ,EAAE;AACxD,eAAc,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,GAAE;eACpB,CAAC,GAAG,CAAC,EAAC;cACP;YACF;AACX,WAAU,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE;AACxB;AACA,aAAY,IAAI,UAAU,KAAK,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,cAAc,KAAK,KAAK,EAAE;AACtF,eAAc,MAAM,IAAI,KAAK,CAAC,uDAAuD,CAAC;cACzE;AACb,aAAY,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,EAAC;YAC3B;UACF;SACD,IAAI,UAAU,EAAE;AACxB;AACA;AACA,WAAU,IAAI,UAAU,GAAG,CAAC,UAAU,EAAE,IAAI,EAAC;AAC7C,WAAU,IAAI,cAAc,KAAK,KAAK,EAAE;AACxC,aAAY,UAAU,GAAG,CAAC,UAAU,EAAC;YAC1B;AACX,WAAU,IAAI,kBAAkB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC,KAAK,CAAC,EAAE;aAC5D,IAAI,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,EAAE;AAC3C,eAAc,IAAI,CAAC,UAAU,GAAG,WAAU;cAC7B;AACb,YAAW,MAAM;AACjB,aAAY,IAAI,CAAC,UAAU,GAAG,WAAU;YAC7B;UACF;AACT,SAAQ,KAAK;QACN;OACD;SACE,MAAM,IAAI,KAAK,CAAC,CAAC,4BAA4B,EAAE,OAAO,CAAC,CAAC,CAAC;MAC5D;AACL,KAAI,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,MAAM,GAAE;AAC5B,KAAI,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE;AAC3B,OAAM,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAC;MACvC;AACL,KAAI,OAAO,IAAI;IACZ;EACF;AACD;AACA,CAAAgB,QAAc,GAAG,OAAA;;;;;;;;;;CC7SjB,MAAM,MAAM,GAAGtC,eAA4B,GAAA;CAC3C,MAAM,KAAK,GAAG,CAAC,OAAO,EAAE,OAAO,EAAE,WAAW,GAAG,KAAK,KAAK;AACzD,GAAE,IAAI,OAAO,YAAY,MAAM,EAAE;AACjC,KAAI,OAAO,OAAO;IACf;AACH,GAAE,IAAI;AACN,KAAI,OAAO,IAAI,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC;IACpC,CAAC,OAAO,EAAE,EAAE;KACX,IAAI,CAAC,WAAW,EAAE;AACtB,OAAM,OAAO,IAAI;MACZ;AACL,KAAI,MAAM,EAAE;IACT;GACF;AACD;AACA,CAAA,OAAc,GAAG,MAAA;;;;;;;;;;CCfjB,MAAM,KAAK,GAAGA,YAAkB,GAAA;AAChC,CAAA,MAAM,KAAK,GAAG,CAAC,OAAO,EAAE,OAAO,KAAK;GAClC,MAAM,CAAC,GAAG,KAAK,CAAC,OAAO,EAAE,OAAO,EAAC;AACnC,GAAE,OAAO,CAAC,GAAG,CAAC,CAAC,OAAO,GAAG,IAAI;GAC5B;AACD,CAAA,OAAc,GAAG,MAAA;;;;;;;;;;CCLjB,MAAM,KAAK,GAAGA,YAAkB,GAAA;AAChC,CAAA,MAAM,KAAK,GAAG,CAAC,OAAO,EAAE,OAAO,KAAK;AACpC,GAAE,MAAM,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,EAAE,OAAO,EAAC;AAChE,GAAE,OAAO,CAAC,GAAG,CAAC,CAAC,OAAO,GAAG,IAAI;GAC5B;AACD,CAAA,OAAc,GAAG,MAAA;;;;;;;;;;CCLjB,MAAM,MAAM,GAAGA,eAA4B,GAAA;AAC3C;AACA,CAAA,MAAM,GAAG,GAAG,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,cAAc,KAAK;AACvE,GAAE,IAAI,QAAQ,OAAO,CAAC,KAAK,QAAQ,EAAE;KACjC,cAAc,GAAG,WAAU;KAC3B,UAAU,GAAG,QAAO;KACpB,OAAO,GAAG,UAAS;IACpB;AACH;AACA,GAAE,IAAI;KACF,OAAO,IAAI,MAAM;OACf,OAAO,YAAY,MAAM,GAAG,OAAO,CAAC,OAAO,GAAG,OAAO;AAC3D,OAAM,OAAO;MACR,CAAC,GAAG,CAAC,OAAO,EAAE,UAAU,EAAE,cAAc,CAAC,CAAC,OAAO;IACnD,CAAC,OAAO,EAAE,EAAE;AACf,KAAI,OAAO,IAAI;IACZ;GACF;AACD,CAAA,KAAc,GAAG,IAAA;;;;;;;;;;CClBjB,MAAM,KAAK,GAAGA,YAAqB,GAAA;AACnC;AACA,CAAA,MAAM,IAAI,GAAG,CAAC,QAAQ,EAAE,QAAQ,KAAK;GACnC,MAAM,EAAE,GAAG,KAAK,CAAC,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAC;GACtC,MAAM,EAAE,GAAG,KAAK,CAAC,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAC;GACtC,MAAM,UAAU,GAAG,EAAE,CAAC,OAAO,CAAC,EAAE,EAAC;AACnC;AACA,GAAE,IAAI,UAAU,KAAK,CAAC,EAAE;AACxB,KAAI,OAAO,IAAI;IACZ;AACH;AACA,GAAE,MAAM,QAAQ,GAAG,UAAU,GAAG,EAAC;AACjC,GAAE,MAAM,WAAW,GAAG,QAAQ,GAAG,EAAE,GAAG,GAAE;AACxC,GAAE,MAAM,UAAU,GAAG,QAAQ,GAAG,EAAE,GAAG,GAAE;GACrC,MAAM,UAAU,GAAG,CAAC,CAAC,WAAW,CAAC,UAAU,CAAC,OAAM;GAClD,MAAM,SAAS,GAAG,CAAC,CAAC,UAAU,CAAC,UAAU,CAAC,OAAM;AAClD;AACA,GAAE,IAAI,SAAS,IAAI,CAAC,UAAU,EAAE;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;KACI,IAAI,CAAC,UAAU,CAAC,KAAK,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE;AAChD,OAAM,OAAO,OAAO;MACf;AACL;AACA;AACA;AACA,KAAI,IAAI,WAAW,CAAC,KAAK,EAAE;AAC3B;AACA,OAAM,OAAO,OAAO;MACf;AACL;AACA,KAAI,IAAI,WAAW,CAAC,KAAK,EAAE;AAC3B;AACA,OAAM,OAAO,OAAO;MACf;AACL;AACA;AACA,KAAI,OAAO,OAAO;IACf;AACH;AACA;AACA,GAAE,MAAM,MAAM,GAAG,UAAU,GAAG,KAAK,GAAG,GAAE;AACxC;GACE,IAAI,EAAE,CAAC,KAAK,KAAK,EAAE,CAAC,KAAK,EAAE;KACzB,OAAO,MAAM,GAAG,OAAO;IACxB;AACH;GACE,IAAI,EAAE,CAAC,KAAK,KAAK,EAAE,CAAC,KAAK,EAAE;KACzB,OAAO,MAAM,GAAG,OAAO;IACxB;AACH;GACE,IAAI,EAAE,CAAC,KAAK,KAAK,EAAE,CAAC,KAAK,EAAE;KACzB,OAAO,MAAM,GAAG,OAAO;IACxB;AACH;AACA;AACA,GAAE,OAAO,YAAY;GACpB;AACD;AACA,CAAA,MAAc,GAAG,KAAA;;;;;;;;;;CChEjB,MAAM,MAAM,GAAGA,eAA4B,GAAA;AAC3C,CAAA,MAAM,KAAK,GAAG,CAAC,CAAC,EAAE,KAAK,KAAK,IAAI,MAAM,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,MAAK;AACtD,CAAA,OAAc,GAAG,MAAA;;;;;;;;;;CCFjB,MAAM,MAAM,GAAGA,eAA4B,GAAA;AAC3C,CAAA,MAAM,KAAK,GAAG,CAAC,CAAC,EAAE,KAAK,KAAK,IAAI,MAAM,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,MAAK;AACtD,CAAA,OAAc,GAAG,MAAA;;;;;;;;;;CCFjB,MAAM,MAAM,GAAGA,eAA4B,GAAA;AAC3C,CAAA,MAAM,KAAK,GAAG,CAAC,CAAC,EAAE,KAAK,KAAK,IAAI,MAAM,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,MAAK;AACtD,CAAA,OAAc,GAAG,MAAA;;;;;;;;;;CCFjB,MAAM,KAAK,GAAGA,YAAkB,GAAA;AAChC,CAAA,MAAM,UAAU,GAAG,CAAC,OAAO,EAAE,OAAO,KAAK;GACvC,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,EAAE,OAAO,EAAC;AACxC,GAAE,OAAO,CAAC,MAAM,IAAI,MAAM,CAAC,UAAU,CAAC,MAAM,IAAI,MAAM,CAAC,UAAU,GAAG,IAAI;GACvE;AACD,CAAA,YAAc,GAAG,WAAA;;;;;;;;;;CCLjB,MAAM,MAAM,GAAGA,eAA4B,GAAA;AAC3C,CAAA,MAAM,OAAO,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK;AAC5B,GAAE,IAAI,MAAM,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,OAAO,CAAC,IAAI,MAAM,CAAC,CAAC,EAAE,KAAK,CAAC,EAAC;AACpD;AACA,CAAA,SAAc,GAAG,QAAA;;;;;;;;;;CCJjB,MAAM,OAAO,GAAGA,cAAoB,GAAA;AACpC,CAAA,MAAM,QAAQ,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,KAAK,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,EAAC;AACtD,CAAA,UAAc,GAAG,SAAA;;;;;;;;;;CCFjB,MAAM,OAAO,GAAGA,cAAoB,GAAA;AACpC,CAAA,MAAM,YAAY,GAAG,CAAC,CAAC,EAAE,CAAC,KAAK,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,EAAC;AAClD,CAAA,cAAc,GAAG,aAAA;;;;;;;;;;CCFjB,MAAM,MAAM,GAAGA,eAA4B,GAAA;CAC3C,MAAM,YAAY,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,KAAK;GACpC,MAAM,QAAQ,GAAG,IAAI,MAAM,CAAC,CAAC,EAAE,KAAK,EAAC;GACrC,MAAM,QAAQ,GAAG,IAAI,MAAM,CAAC,CAAC,EAAE,KAAK,EAAC;AACvC,GAAE,OAAO,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,QAAQ,CAAC,YAAY,CAAC,QAAQ,CAAC;GACrE;AACD,CAAA,cAAc,GAAG,aAAA;;;;;;;;;;CCNjB,MAAM,YAAY,GAAGA,mBAA0B,GAAA;CAC/C,MAAM,IAAI,GAAG,CAAC,IAAI,EAAE,KAAK,KAAK,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,YAAY,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,EAAC;AAC5E,CAAA,MAAc,GAAG,KAAA;;;;;;;;;;CCFjB,MAAM,YAAY,GAAGA,mBAA0B,GAAA;CAC/C,MAAM,KAAK,GAAG,CAAC,IAAI,EAAE,KAAK,KAAK,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,YAAY,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,EAAC;AAC7E,CAAA,OAAc,GAAG,MAAA;;;;;;;;;;CCFjB,MAAM,OAAO,GAAGA,cAAoB,GAAA;AACpC,CAAA,MAAM,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,KAAK,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,GAAG,EAAC;AACpD,CAAA,IAAc,GAAG,GAAA;;;;;;;;;;CCFjB,MAAM,OAAO,GAAGA,cAAoB,GAAA;AACpC,CAAA,MAAM,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,KAAK,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,GAAG,EAAC;AACpD,CAAA,IAAc,GAAG,GAAA;;;;;;;;;;CCFjB,MAAM,OAAO,GAAGA,cAAoB,GAAA;AACpC,CAAA,MAAM,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,KAAK,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,KAAK,EAAC;AACtD,CAAA,IAAc,GAAG,GAAA;;;;;;;;;;CCFjB,MAAM,OAAO,GAAGA,cAAoB,GAAA;AACpC,CAAA,MAAM,GAAG,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,KAAK,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,KAAK,EAAC;AACvD,CAAA,KAAc,GAAG,IAAA;;;;;;;;;;CCFjB,MAAM,OAAO,GAAGA,cAAoB,GAAA;AACpC,CAAA,MAAM,GAAG,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,KAAK,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,IAAI,EAAC;AACtD,CAAA,KAAc,GAAG,IAAA;;;;;;;;;;CCFjB,MAAM,OAAO,GAAGA,cAAoB,GAAA;AACpC,CAAA,MAAM,GAAG,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,KAAK,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,IAAI,EAAC;AACtD,CAAA,KAAc,GAAG,IAAA;;;;;;;;;;CCFjB,MAAM,EAAE,GAAGA,SAAe,GAAA;CAC1B,MAAM,GAAG,GAAGC,UAAgB,GAAA;CAC5B,MAAM,EAAE,GAAGC,SAAe,GAAA;CAC1B,MAAM,GAAG,GAAGI,UAAgB,GAAA;CAC5B,MAAM,EAAE,GAAGgB,SAAe,GAAA;CAC1B,MAAM,GAAG,GAAGf,UAAgB,GAAA;AAC5B;CACA,MAAM,GAAG,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,KAAK,KAAK;AACjC,GAAE,QAAQ,EAAE;AACZ,KAAI,KAAK,KAAK;AACd,OAAM,IAAI,OAAO,CAAC,KAAK,QAAQ,EAAE;AACjC,SAAQ,CAAC,GAAG,CAAC,CAAC,QAAO;QACd;AACP,OAAM,IAAI,OAAO,CAAC,KAAK,QAAQ,EAAE;AACjC,SAAQ,CAAC,GAAG,CAAC,CAAC,QAAO;QACd;OACD,OAAO,CAAC,KAAK,CAAC;AACpB;AACA,KAAI,KAAK,KAAK;AACd,OAAM,IAAI,OAAO,CAAC,KAAK,QAAQ,EAAE;AACjC,SAAQ,CAAC,GAAG,CAAC,CAAC,QAAO;QACd;AACP,OAAM,IAAI,OAAO,CAAC,KAAK,QAAQ,EAAE;AACjC,SAAQ,CAAC,GAAG,CAAC,CAAC,QAAO;QACd;OACD,OAAO,CAAC,KAAK,CAAC;AACpB;KACI,KAAK,EAAE,CAAC;KACR,KAAK,GAAG,CAAC;AACb,KAAI,KAAK,IAAI;OACP,OAAO,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC;AAC5B;AACA,KAAI,KAAK,IAAI;OACP,OAAO,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC;AAC7B;AACA,KAAI,KAAK,GAAG;OACN,OAAO,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC;AAC5B;AACA,KAAI,KAAK,IAAI;OACP,OAAO,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC;AAC7B;AACA,KAAI,KAAK,GAAG;OACN,OAAO,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC;AAC5B;AACA,KAAI,KAAK,IAAI;OACP,OAAO,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC;AAC7B;KACI;OACE,MAAM,IAAI,SAAS,CAAC,CAAC,kBAAkB,EAAE,EAAE,CAAC,CAAC,CAAC;IACjD;GACF;AACD,CAAA,KAAc,GAAG,IAAA;;;;;;;;;;CCnDjB,MAAM,MAAM,GAAGP,eAA4B,GAAA;CAC3C,MAAM,KAAK,GAAGC,YAAkB,GAAA;CAChC,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,EAAE,GAAGC,SAAyB,GAAA;AACnD;AACA,CAAA,MAAM,MAAM,GAAG,CAAC,OAAO,EAAE,OAAO,KAAK;AACrC,GAAE,IAAI,OAAO,YAAY,MAAM,EAAE;AACjC,KAAI,OAAO,OAAO;IACf;AACH;AACA,GAAE,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE;AACnC,KAAI,OAAO,GAAG,MAAM,CAAC,OAAO,EAAC;IAC1B;AACH;AACA,GAAE,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE;AACnC,KAAI,OAAO,IAAI;IACZ;AACH;AACA,GAAE,OAAO,GAAG,OAAO,IAAI,GAAE;AACzB;GACE,IAAI,KAAK,GAAG,KAAI;AAClB,GAAE,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE;AACpB,KAAI,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,EAAC;AACvC,IAAG,MAAM;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAI,IAAI,KAAI;AACZ,KAAI,OAAO,CAAC,IAAI,GAAG,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC;AAChD,UAAS,CAAC,KAAK,IAAI,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC;OAC9D;OACA,IAAI,CAAC,KAAK;aACJ,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,KAAK,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE;SACnE,KAAK,GAAG,KAAI;QACb;OACD,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,SAAS,GAAG,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,OAAM;MACzE;AACL;KACI,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,SAAS,GAAG,CAAC,EAAC;IAC/B;AACH;AACA,GAAE,IAAI,KAAK,KAAK,IAAI,EAAE;AACtB,KAAI,OAAO,IAAI;IACZ;AACH;AACA,GAAE,OAAO,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,EAAE,OAAO,CAAC;GAC3E;AACD,CAAA,QAAc,GAAG,OAAA;;;;;;;;;;AClDjB,CAAc,QAAA,GAAG,UAAU,OAAO,EAAE;GAClC,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,aAAa;AACpD,KAAI,KAAK,IAAI,MAAM,GAAG,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,IAAI,EAAE;OACzD,MAAM,MAAM,CAAC,MAAK;MACnB;KACF;AACH,GAAA;;;;;;;;;;ACNA,CAAA,OAAc,GAAG,QAAO;AACxB;CACA,OAAO,CAAC,IAAI,GAAG,KAAI;CACnB,OAAO,CAAC,MAAM,GAAG,QAAO;AACxB;CACA,SAAS,OAAO,EAAE,IAAI,EAAE;GACtB,IAAI,IAAI,GAAG,KAAI;AACjB,GAAE,IAAI,EAAE,IAAI,YAAY,OAAO,CAAC,EAAE;AAClC,KAAI,IAAI,GAAG,IAAI,OAAO,GAAE;IACrB;AACH;AACA,GAAE,IAAI,CAAC,IAAI,GAAG,KAAI;AAClB,GAAE,IAAI,CAAC,IAAI,GAAG,KAAI;AAClB,GAAE,IAAI,CAAC,MAAM,GAAG,EAAC;AACjB;GACE,IAAI,IAAI,IAAI,OAAO,IAAI,CAAC,OAAO,KAAK,UAAU,EAAE;AAClD,KAAI,IAAI,CAAC,OAAO,CAAC,UAAU,IAAI,EAAE;AACjC,OAAM,IAAI,CAAC,IAAI,CAAC,IAAI,EAAC;AACrB,MAAK,EAAC;AACN,IAAG,MAAM,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE;AACnC,KAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;OAChD,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,EAAC;MACxB;IACF;AACH;AACA,GAAE,OAAO,IAAI;EACZ;AACD;AACA,CAAA,OAAO,CAAC,SAAS,CAAC,UAAU,GAAG,UAAU,IAAI,EAAE;AAC/C,GAAE,IAAI,IAAI,CAAC,IAAI,KAAK,IAAI,EAAE;AAC1B,KAAI,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC;IACpE;AACH;AACA,GAAE,IAAI,IAAI,GAAG,IAAI,CAAC,KAAI;AACtB,GAAE,IAAI,IAAI,GAAG,IAAI,CAAC,KAAI;AACtB;GACE,IAAI,IAAI,EAAE;AACZ,KAAI,IAAI,CAAC,IAAI,GAAG,KAAI;IACjB;AACH;GACE,IAAI,IAAI,EAAE;AACZ,KAAI,IAAI,CAAC,IAAI,GAAG,KAAI;IACjB;AACH;AACA,GAAE,IAAI,IAAI,KAAK,IAAI,CAAC,IAAI,EAAE;AAC1B,KAAI,IAAI,CAAC,IAAI,GAAG,KAAI;IACjB;AACH,GAAE,IAAI,IAAI,KAAK,IAAI,CAAC,IAAI,EAAE;AAC1B,KAAI,IAAI,CAAC,IAAI,GAAG,KAAI;IACjB;AACH;AACA,GAAE,IAAI,CAAC,IAAI,CAAC,MAAM,GAAE;AACpB,GAAE,IAAI,CAAC,IAAI,GAAG,KAAI;AAClB,GAAE,IAAI,CAAC,IAAI,GAAG,KAAI;AAClB,GAAE,IAAI,CAAC,IAAI,GAAG,KAAI;AAClB;AACA,GAAE,OAAO,IAAI;GACZ;AACD;AACA,CAAA,OAAO,CAAC,SAAS,CAAC,WAAW,GAAG,UAAU,IAAI,EAAE;AAChD,GAAE,IAAI,IAAI,KAAK,IAAI,CAAC,IAAI,EAAE;AAC1B,KAAI,MAAM;IACP;AACH;AACA,GAAE,IAAI,IAAI,CAAC,IAAI,EAAE;AACjB,KAAI,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,EAAC;IAC3B;AACH;AACA,GAAE,IAAI,IAAI,GAAG,IAAI,CAAC,KAAI;AACtB,GAAE,IAAI,CAAC,IAAI,GAAG,KAAI;AAClB,GAAE,IAAI,CAAC,IAAI,GAAG,KAAI;GAChB,IAAI,IAAI,EAAE;AACZ,KAAI,IAAI,CAAC,IAAI,GAAG,KAAI;IACjB;AACH;AACA,GAAE,IAAI,CAAC,IAAI,GAAG,KAAI;AAClB,GAAE,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;AAClB,KAAI,IAAI,CAAC,IAAI,GAAG,KAAI;IACjB;GACD,IAAI,CAAC,MAAM,GAAE;GACd;AACD;AACA,CAAA,OAAO,CAAC,SAAS,CAAC,QAAQ,GAAG,UAAU,IAAI,EAAE;AAC7C,GAAE,IAAI,IAAI,KAAK,IAAI,CAAC,IAAI,EAAE;AAC1B,KAAI,MAAM;IACP;AACH;AACA,GAAE,IAAI,IAAI,CAAC,IAAI,EAAE;AACjB,KAAI,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,EAAC;IAC3B;AACH;AACA,GAAE,IAAI,IAAI,GAAG,IAAI,CAAC,KAAI;AACtB,GAAE,IAAI,CAAC,IAAI,GAAG,KAAI;AAClB,GAAE,IAAI,CAAC,IAAI,GAAG,KAAI;GAChB,IAAI,IAAI,EAAE;AACZ,KAAI,IAAI,CAAC,IAAI,GAAG,KAAI;IACjB;AACH;AACA,GAAE,IAAI,CAAC,IAAI,GAAG,KAAI;AAClB,GAAE,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;AAClB,KAAI,IAAI,CAAC,IAAI,GAAG,KAAI;IACjB;GACD,IAAI,CAAC,MAAM,GAAE;GACd;AACD;AACA,CAAA,OAAO,CAAC,SAAS,CAAC,IAAI,GAAG,YAAY;AACrC,GAAE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;KAChD,IAAI,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC,EAAC;IACzB;GACD,OAAO,IAAI,CAAC,MAAM;GACnB;AACD;AACA,CAAA,OAAO,CAAC,SAAS,CAAC,OAAO,GAAG,YAAY;AACxC,GAAE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;KAChD,OAAO,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC,EAAC;IAC5B;GACD,OAAO,IAAI,CAAC,MAAM;GACnB;AACD;AACA,CAAA,OAAO,CAAC,SAAS,CAAC,GAAG,GAAG,YAAY;AACpC,GAAE,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;AAClB,KAAI,OAAO,SAAS;IACjB;AACH;AACA,GAAE,IAAI,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,MAAK;GACzB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,KAAI;AAC5B,GAAE,IAAI,IAAI,CAAC,IAAI,EAAE;AACjB,KAAI,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG,KAAI;AACzB,IAAG,MAAM;AACT,KAAI,IAAI,CAAC,IAAI,GAAG,KAAI;IACjB;GACD,IAAI,CAAC,MAAM,GAAE;AACf,GAAE,OAAO,GAAG;GACX;AACD;AACA,CAAA,OAAO,CAAC,SAAS,CAAC,KAAK,GAAG,YAAY;AACtC,GAAE,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;AAClB,KAAI,OAAO,SAAS;IACjB;AACH;AACA,GAAE,IAAI,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,MAAK;GACzB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,KAAI;AAC5B,GAAE,IAAI,IAAI,CAAC,IAAI,EAAE;AACjB,KAAI,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG,KAAI;AACzB,IAAG,MAAM;AACT,KAAI,IAAI,CAAC,IAAI,GAAG,KAAI;IACjB;GACD,IAAI,CAAC,MAAM,GAAE;AACf,GAAE,OAAO,GAAG;GACX;AACD;CACA,OAAO,CAAC,SAAS,CAAC,OAAO,GAAG,UAAU,EAAE,EAAE,KAAK,EAAE;AACjD,GAAE,KAAK,GAAG,KAAK,IAAI,KAAI;AACvB,GAAE,KAAK,IAAI,MAAM,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,EAAE,MAAM,KAAK,IAAI,EAAE,CAAC,EAAE,EAAE;AAC5D,KAAI,EAAE,CAAC,IAAI,CAAC,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,CAAC,EAAE,IAAI,EAAC;AACzC,KAAI,MAAM,GAAG,MAAM,CAAC,KAAI;IACrB;GACF;AACD;CACA,OAAO,CAAC,SAAS,CAAC,cAAc,GAAG,UAAU,EAAE,EAAE,KAAK,EAAE;AACxD,GAAE,KAAK,GAAG,KAAK,IAAI,KAAI;GACrB,KAAK,IAAI,MAAM,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,MAAM,KAAK,IAAI,EAAE,CAAC,EAAE,EAAE;AAC1E,KAAI,EAAE,CAAC,IAAI,CAAC,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,CAAC,EAAE,IAAI,EAAC;AACzC,KAAI,MAAM,GAAG,MAAM,CAAC,KAAI;IACrB;GACF;AACD;AACA,CAAA,OAAO,CAAC,SAAS,CAAC,GAAG,GAAG,UAAU,CAAC,EAAE;GACnC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;AACrE;AACA,KAAI,MAAM,GAAG,MAAM,CAAC,KAAI;IACrB;GACD,IAAI,CAAC,KAAK,CAAC,IAAI,MAAM,KAAK,IAAI,EAAE;KAC9B,OAAO,MAAM,CAAC,KAAK;IACpB;GACF;AACD;AACA,CAAA,OAAO,CAAC,SAAS,CAAC,UAAU,GAAG,UAAU,CAAC,EAAE;GAC1C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;AACrE;AACA,KAAI,MAAM,GAAG,MAAM,CAAC,KAAI;IACrB;GACD,IAAI,CAAC,KAAK,CAAC,IAAI,MAAM,KAAK,IAAI,EAAE;KAC9B,OAAO,MAAM,CAAC,KAAK;IACpB;GACF;AACD;CACA,OAAO,CAAC,SAAS,CAAC,GAAG,GAAG,UAAU,EAAE,EAAE,KAAK,EAAE;AAC7C,GAAE,KAAK,GAAG,KAAK,IAAI,KAAI;AACvB,GAAE,IAAI,GAAG,GAAG,IAAI,OAAO,GAAE;GACvB,KAAK,IAAI,MAAM,GAAG,IAAI,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,GAAG;AACjD,KAAI,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,EAAC;AAChD,KAAI,MAAM,GAAG,MAAM,CAAC,KAAI;IACrB;AACH,GAAE,OAAO,GAAG;GACX;AACD;CACA,OAAO,CAAC,SAAS,CAAC,UAAU,GAAG,UAAU,EAAE,EAAE,KAAK,EAAE;AACpD,GAAE,KAAK,GAAG,KAAK,IAAI,KAAI;AACvB,GAAE,IAAI,GAAG,GAAG,IAAI,OAAO,GAAE;GACvB,KAAK,IAAI,MAAM,GAAG,IAAI,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,GAAG;AACjD,KAAI,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,EAAC;AAChD,KAAI,MAAM,GAAG,MAAM,CAAC,KAAI;IACrB;AACH,GAAE,OAAO,GAAG;GACX;AACD;CACA,OAAO,CAAC,SAAS,CAAC,MAAM,GAAG,UAAU,EAAE,EAAE,OAAO,EAAE;AAClD,GAAE,IAAI,IAAG;AACT,GAAE,IAAI,MAAM,GAAG,IAAI,CAAC,KAAI;AACxB,GAAE,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE;KACxB,GAAG,GAAG,QAAO;AACjB,IAAG,MAAM,IAAI,IAAI,CAAC,IAAI,EAAE;AACxB,KAAI,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,KAAI;AAC3B,KAAI,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,MAAK;AACzB,IAAG,MAAM;AACT,KAAI,MAAM,IAAI,SAAS,CAAC,4CAA4C,CAAC;IAClE;AACH;AACA,GAAE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,MAAM,KAAK,IAAI,EAAE,CAAC,EAAE,EAAE;KACpC,GAAG,GAAG,EAAE,CAAC,GAAG,EAAE,MAAM,CAAC,KAAK,EAAE,CAAC,EAAC;AAClC,KAAI,MAAM,GAAG,MAAM,CAAC,KAAI;IACrB;AACH;AACA,GAAE,OAAO,GAAG;GACX;AACD;CACA,OAAO,CAAC,SAAS,CAAC,aAAa,GAAG,UAAU,EAAE,EAAE,OAAO,EAAE;AACzD,GAAE,IAAI,IAAG;AACT,GAAE,IAAI,MAAM,GAAG,IAAI,CAAC,KAAI;AACxB,GAAE,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE;KACxB,GAAG,GAAG,QAAO;AACjB,IAAG,MAAM,IAAI,IAAI,CAAC,IAAI,EAAE;AACxB,KAAI,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,KAAI;AAC3B,KAAI,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,MAAK;AACzB,IAAG,MAAM;AACT,KAAI,MAAM,IAAI,SAAS,CAAC,4CAA4C,CAAC;IAClE;AACH;AACA,GAAE,KAAK,IAAI,CAAC,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,MAAM,KAAK,IAAI,EAAE,CAAC,EAAE,EAAE;KAClD,GAAG,GAAG,EAAE,CAAC,GAAG,EAAE,MAAM,CAAC,KAAK,EAAE,CAAC,EAAC;AAClC,KAAI,MAAM,GAAG,MAAM,CAAC,KAAI;IACrB;AACH;AACA,GAAE,OAAO,GAAG;GACX;AACD;AACA,CAAA,OAAO,CAAC,SAAS,CAAC,OAAO,GAAG,YAAY;GACtC,IAAI,GAAG,GAAG,IAAI,KAAK,CAAC,IAAI,CAAC,MAAM,EAAC;AAClC,GAAE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,EAAE,CAAC,EAAE,EAAE;AAC5D,KAAI,GAAG,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,MAAK;AACzB,KAAI,MAAM,GAAG,MAAM,CAAC,KAAI;IACrB;AACH,GAAE,OAAO,GAAG;GACX;AACD;AACA,CAAA,OAAO,CAAC,SAAS,CAAC,cAAc,GAAG,YAAY;GAC7C,IAAI,GAAG,GAAG,IAAI,KAAK,CAAC,IAAI,CAAC,MAAM,EAAC;AAClC,GAAE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,EAAE,CAAC,EAAE,EAAE;AAC5D,KAAI,GAAG,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,MAAK;AACzB,KAAI,MAAM,GAAG,MAAM,CAAC,KAAI;IACrB;AACH,GAAE,OAAO,GAAG;GACX;AACD;CACA,OAAO,CAAC,SAAS,CAAC,KAAK,GAAG,UAAU,IAAI,EAAE,EAAE,EAAE;AAC9C,GAAE,EAAE,GAAG,EAAE,IAAI,IAAI,CAAC,OAAM;AACxB,GAAE,IAAI,EAAE,GAAG,CAAC,EAAE;AACd,KAAI,EAAE,IAAI,IAAI,CAAC,OAAM;IAClB;AACH,GAAE,IAAI,GAAG,IAAI,IAAI,EAAC;AAClB,GAAE,IAAI,IAAI,GAAG,CAAC,EAAE;AAChB,KAAI,IAAI,IAAI,IAAI,CAAC,OAAM;IACpB;AACH,GAAE,IAAI,GAAG,GAAG,IAAI,OAAO,GAAE;GACvB,IAAI,EAAE,GAAG,IAAI,IAAI,EAAE,GAAG,CAAC,EAAE;AAC3B,KAAI,OAAO,GAAG;IACX;AACH,GAAE,IAAI,IAAI,GAAG,CAAC,EAAE;KACZ,IAAI,GAAG,EAAC;IACT;AACH,GAAE,IAAI,EAAE,GAAG,IAAI,CAAC,MAAM,EAAE;AACxB,KAAI,EAAE,GAAG,IAAI,CAAC,OAAM;IACjB;GACD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,IAAI,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,EAAE;AACxE,KAAI,MAAM,GAAG,MAAM,CAAC,KAAI;IACrB;AACH,GAAE,OAAO,MAAM,KAAK,IAAI,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,CAAC,IAAI,EAAE;AAC/D,KAAI,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,EAAC;IACvB;AACH,GAAE,OAAO,GAAG;GACX;AACD;CACA,OAAO,CAAC,SAAS,CAAC,YAAY,GAAG,UAAU,IAAI,EAAE,EAAE,EAAE;AACrD,GAAE,EAAE,GAAG,EAAE,IAAI,IAAI,CAAC,OAAM;AACxB,GAAE,IAAI,EAAE,GAAG,CAAC,EAAE;AACd,KAAI,EAAE,IAAI,IAAI,CAAC,OAAM;IAClB;AACH,GAAE,IAAI,GAAG,IAAI,IAAI,EAAC;AAClB,GAAE,IAAI,IAAI,GAAG,CAAC,EAAE;AAChB,KAAI,IAAI,IAAI,IAAI,CAAC,OAAM;IACpB;AACH,GAAE,IAAI,GAAG,GAAG,IAAI,OAAO,GAAE;GACvB,IAAI,EAAE,GAAG,IAAI,IAAI,EAAE,GAAG,CAAC,EAAE;AAC3B,KAAI,OAAO,GAAG;IACX;AACH,GAAE,IAAI,IAAI,GAAG,CAAC,EAAE;KACZ,IAAI,GAAG,EAAC;IACT;AACH,GAAE,IAAI,EAAE,GAAG,IAAI,CAAC,MAAM,EAAE;AACxB,KAAI,EAAE,GAAG,IAAI,CAAC,OAAM;IACjB;GACD,KAAK,IAAI,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE;AAChF,KAAI,MAAM,GAAG,MAAM,CAAC,KAAI;IACrB;AACH,GAAE,OAAO,MAAM,KAAK,IAAI,IAAI,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,CAAC,IAAI,EAAE;AACjE,KAAI,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,EAAC;IACvB;AACH,GAAE,OAAO,GAAG;GACX;AACD;AACA,CAAA,OAAO,CAAC,SAAS,CAAC,MAAM,GAAG,UAAU,KAAK,EAAE,WAAW,EAAE,GAAG,KAAK,EAAE;AACnE,GAAE,IAAI,KAAK,GAAG,IAAI,CAAC,MAAM,EAAE;AAC3B,KAAI,KAAK,GAAG,IAAI,CAAC,MAAM,GAAG,EAAC;IACxB;AACH,GAAE,IAAI,KAAK,GAAG,CAAC,EAAE;AACjB,KAAI,KAAK,GAAG,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;IAC7B;AACH;GACE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,IAAI,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,EAAE;AACzE,KAAI,MAAM,GAAG,MAAM,CAAC,KAAI;IACrB;AACH;GACE,IAAI,GAAG,GAAG,GAAE;AACd,GAAE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,MAAM,IAAI,CAAC,GAAG,WAAW,EAAE,CAAC,EAAE,EAAE;AAClD,KAAI,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,EAAC;AAC1B,KAAI,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,EAAC;IACjC;AACH,GAAE,IAAI,MAAM,KAAK,IAAI,EAAE;AACvB,KAAI,MAAM,GAAG,IAAI,CAAC,KAAI;IACnB;AACH;AACA,GAAE,IAAI,MAAM,KAAK,IAAI,CAAC,IAAI,IAAI,MAAM,KAAK,IAAI,CAAC,IAAI,EAAE;AACpD,KAAI,MAAM,GAAG,MAAM,CAAC,KAAI;IACrB;AACH;AACA,GAAE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AACzC,KAAI,MAAM,GAAG,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC,EAAC;IACxC;GACD,OAAO,GAAG,CAAC;GACZ;AACD;AACA,CAAA,OAAO,CAAC,SAAS,CAAC,OAAO,GAAG,YAAY;AACxC,GAAE,IAAI,IAAI,GAAG,IAAI,CAAC,KAAI;AACtB,GAAE,IAAI,IAAI,GAAG,IAAI,CAAC,KAAI;AACtB,GAAE,KAAK,IAAI,MAAM,GAAG,IAAI,EAAE,MAAM,KAAK,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC,IAAI,EAAE;AACjE,KAAI,IAAI,CAAC,GAAG,MAAM,CAAC,KAAI;AACvB,KAAI,MAAM,CAAC,IAAI,GAAG,MAAM,CAAC,KAAI;AAC7B,KAAI,MAAM,CAAC,IAAI,GAAG,EAAC;IAChB;AACH,GAAE,IAAI,CAAC,IAAI,GAAG,KAAI;AAClB,GAAE,IAAI,CAAC,IAAI,GAAG,KAAI;AAClB,GAAE,OAAO,IAAI;GACZ;AACD;AACA,CAAA,SAAS,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE;AACpC,GAAE,IAAI,QAAQ,GAAG,IAAI,KAAK,IAAI,CAAC,IAAI;KAC/B,IAAI,IAAI,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC;AACrC,KAAI,IAAI,IAAI,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,EAAC;AAC1C;AACA,GAAE,IAAI,QAAQ,CAAC,IAAI,KAAK,IAAI,EAAE;AAC9B,KAAI,IAAI,CAAC,IAAI,GAAG,SAAQ;IACrB;AACH,GAAE,IAAI,QAAQ,CAAC,IAAI,KAAK,IAAI,EAAE;AAC9B,KAAI,IAAI,CAAC,IAAI,GAAG,SAAQ;IACrB;AACH;GACE,IAAI,CAAC,MAAM,GAAE;AACf;AACA,GAAE,OAAO,QAAQ;EAChB;AACD;AACA,CAAA,SAAS,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE;AAC3B,GAAE,IAAI,CAAC,IAAI,GAAG,IAAI,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAC;AACnD,GAAE,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;AAClB,KAAI,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,KAAI;IACtB;GACD,IAAI,CAAC,MAAM,GAAE;EACd;AACD;AACA,CAAA,SAAS,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE;AAC9B,GAAE,IAAI,CAAC,IAAI,GAAG,IAAI,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,EAAC;AACnD,GAAE,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;AAClB,KAAI,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,KAAI;IACtB;GACD,IAAI,CAAC,MAAM,GAAE;EACd;AACD;CACA,SAAS,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE;AACxC,GAAE,IAAI,EAAE,IAAI,YAAY,IAAI,CAAC,EAAE;KAC3B,OAAO,IAAI,IAAI,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC;IACzC;AACH;AACA,GAAE,IAAI,CAAC,IAAI,GAAG,KAAI;AAClB,GAAE,IAAI,CAAC,KAAK,GAAG,MAAK;AACpB;GACE,IAAI,IAAI,EAAE;AACZ,KAAI,IAAI,CAAC,IAAI,GAAG,KAAI;AACpB,KAAI,IAAI,CAAC,IAAI,GAAG,KAAI;AACpB,IAAG,MAAM;AACT,KAAI,IAAI,CAAC,IAAI,GAAG,KAAI;IACjB;AACH;GACE,IAAI,IAAI,EAAE;AACZ,KAAI,IAAI,CAAC,IAAI,GAAG,KAAI;AACpB,KAAI,IAAI,CAAC,IAAI,GAAG,KAAI;AACpB,IAAG,MAAM;AACT,KAAI,IAAI,CAAC,IAAI,GAAG,KAAI;IACjB;EACF;AACD;CACA,IAAI;AACJ;GACEF,eAAA,EAAwB,CAAC,OAAO,EAAC;EAClC,CAAC,OAAO,EAAE,EAAE,EAAA;;;;;;;;;;ACxab;AACA;CACA,MAAM,OAAO,GAAGA,cAAkB,GAAA;AAClC;AACA,CAAA,MAAM,GAAG,GAAG,MAAM,CAAC,KAAK,EAAC;AACzB,CAAA,MAAM,MAAM,GAAG,MAAM,CAAC,QAAQ,EAAC;AAC/B,CAAA,MAAM,iBAAiB,GAAG,MAAM,CAAC,kBAAkB,EAAC;AACpD,CAAA,MAAM,WAAW,GAAG,MAAM,CAAC,YAAY,EAAC;AACxC,CAAA,MAAM,OAAO,GAAG,MAAM,CAAC,QAAQ,EAAC;AAChC,CAAA,MAAM,OAAO,GAAG,MAAM,CAAC,SAAS,EAAC;AACjC,CAAA,MAAM,iBAAiB,GAAG,MAAM,CAAC,gBAAgB,EAAC;AAClD,CAAA,MAAM,QAAQ,GAAG,MAAM,CAAC,SAAS,EAAC;AAClC,CAAA,MAAM,KAAK,GAAG,MAAM,CAAC,OAAO,EAAC;AAC7B,CAAA,MAAM,iBAAiB,GAAG,MAAM,CAAC,gBAAgB,EAAC;AAClD;CACA,MAAM,WAAW,GAAG,MAAM,EAAC;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAA,MAAM,QAAQ,CAAC;AACf,GAAE,WAAW,CAAC,CAAC,OAAO,EAAE;AACxB,KAAI,IAAI,OAAO,OAAO,KAAK,QAAQ;AACnC,OAAM,OAAO,GAAG,EAAE,GAAG,EAAE,OAAO,GAAE;AAChC;KACI,IAAI,CAAC,OAAO;OACV,OAAO,GAAG,GAAE;AAClB;AACA,KAAI,IAAI,OAAO,CAAC,GAAG,KAAK,OAAO,OAAO,CAAC,GAAG,KAAK,QAAQ,IAAI,OAAO,CAAC,GAAG,GAAG,CAAC,CAAC;AAC3E,OAAM,MAAM,IAAI,SAAS,CAAC,mCAAmC,CAAC;AAC9D;AACA,KAAgB,IAAI,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,GAAG,IAAI,SAAQ;AACnD;AACA,KAAI,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,IAAI,YAAW;AAC5C,KAAI,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,OAAO,EAAE,KAAK,UAAU,IAAI,WAAW,GAAG,GAAE;KACvE,IAAI,CAAC,WAAW,CAAC,GAAG,OAAO,CAAC,KAAK,IAAI,MAAK;KAC1C,IAAI,OAAO,CAAC,MAAM,IAAI,OAAO,OAAO,CAAC,MAAM,KAAK,QAAQ;AAC5D,OAAM,MAAM,IAAI,SAAS,CAAC,yBAAyB,CAAC;KAChD,IAAI,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC,MAAM,IAAI,EAAC;AACvC,KAAI,IAAI,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC,QAAO;KAC/B,IAAI,CAAC,iBAAiB,CAAC,GAAG,OAAO,CAAC,cAAc,IAAI,MAAK;KACzD,IAAI,CAAC,iBAAiB,CAAC,GAAG,OAAO,CAAC,cAAc,IAAI,MAAK;KACzD,IAAI,CAAC,KAAK,GAAE;IACb;AACH;AACA;AACA,GAAE,IAAI,GAAG,CAAC,CAAC,EAAE,EAAE;KACX,IAAI,OAAO,EAAE,KAAK,QAAQ,IAAI,EAAE,GAAG,CAAC;AACxC,OAAM,MAAM,IAAI,SAAS,CAAC,mCAAmC,CAAC;AAC9D;AACA,KAAI,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,SAAQ;KAC1B,IAAI,CAAC,IAAI,EAAC;IACX;GACD,IAAI,GAAG,CAAC,GAAG;AACb,KAAI,OAAO,IAAI,CAAC,GAAG,CAAC;IACjB;AACH;AACA,GAAE,IAAI,UAAU,CAAC,CAAC,UAAU,EAAE;AAC9B,KAAI,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,WAAU;IACjC;GACD,IAAI,UAAU,CAAC,GAAG;AACpB,KAAI,OAAO,IAAI,CAAC,WAAW,CAAC;IACzB;AACH;AACA,GAAE,IAAI,MAAM,CAAC,CAAC,EAAE,EAAE;AAClB,KAAI,IAAI,OAAO,EAAE,KAAK,QAAQ;AAC9B,OAAM,MAAM,IAAI,SAAS,CAAC,sCAAsC,CAAC;AACjE;AACA,KAAI,IAAI,CAAC,OAAO,CAAC,GAAG,GAAE;KAClB,IAAI,CAAC,IAAI,EAAC;IACX;GACD,IAAI,MAAM,CAAC,GAAG;AAChB,KAAI,OAAO,IAAI,CAAC,OAAO,CAAC;IACrB;AACH;AACA;AACA,GAAE,IAAI,gBAAgB,CAAC,CAAC,EAAE,EAAE;AAC5B,KAAI,IAAI,OAAO,EAAE,KAAK,UAAU;OAC1B,EAAE,GAAG,YAAW;AACtB;AACA,KAAI,IAAI,EAAE,KAAK,IAAI,CAAC,iBAAiB,CAAC,EAAE;AACxC,OAAM,IAAI,CAAC,iBAAiB,CAAC,GAAG,GAAE;AAClC,OAAM,IAAI,CAAC,MAAM,CAAC,GAAG,EAAC;OAChB,IAAI,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,GAAG,IAAI;AACpC,SAAQ,GAAG,CAAC,MAAM,GAAG,IAAI,CAAC,iBAAiB,CAAC,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,GAAG,EAAC;AAChE,SAAQ,IAAI,CAAC,MAAM,CAAC,IAAI,GAAG,CAAC,OAAM;AAClC,QAAO,EAAC;MACH;KACD,IAAI,CAAC,IAAI,EAAC;IACX;GACD,IAAI,gBAAgB,CAAC,GAAG,EAAE,OAAO,IAAI,CAAC,iBAAiB,CAAC,EAAE;AAC5D;GACE,IAAI,MAAM,CAAC,GAAG,EAAE,OAAO,IAAI,CAAC,MAAM,CAAC,EAAE;AACvC,GAAE,IAAI,SAAS,CAAC,GAAG,EAAE,OAAO,IAAI,CAAC,QAAQ,CAAC,CAAC,MAAM,EAAE;AACnD;AACA,GAAE,QAAQ,CAAC,CAAC,EAAE,EAAE,KAAK,EAAE;AACvB,KAAI,KAAK,GAAG,KAAK,IAAI,KAAI;AACzB,KAAI,KAAK,IAAI,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,GAAG;AAC7D,OAAM,MAAM,IAAI,GAAG,MAAM,CAAC,KAAI;OACxB,WAAW,CAAC,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,KAAK,EAAC;OACpC,MAAM,GAAG,KAAI;MACd;IACF;AACH;AACA,GAAE,OAAO,CAAC,CAAC,EAAE,EAAE,KAAK,EAAE;AACtB,KAAI,KAAK,GAAG,KAAK,IAAI,KAAI;AACzB,KAAI,KAAK,IAAI,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,GAAG;AAC7D,OAAM,MAAM,IAAI,GAAG,MAAM,CAAC,KAAI;OACxB,WAAW,CAAC,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,KAAK,EAAC;OACpC,MAAM,GAAG,KAAI;MACd;IACF;AACH;GACE,IAAI,CAAC,GAAG;AACV,KAAI,OAAO,IAAI,CAAC,QAAQ,CAAC,CAAC,OAAO,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC;IAChD;AACH;GACE,MAAM,CAAC,GAAG;AACZ,KAAI,OAAO,IAAI,CAAC,QAAQ,CAAC,CAAC,OAAO,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC;IAClD;AACH;GACE,KAAK,CAAC,GAAG;AACX,KAAI,IAAI,IAAI,CAAC,OAAO,CAAC;SACb,IAAI,CAAC,QAAQ,CAAC;AACtB,SAAQ,IAAI,CAAC,QAAQ,CAAC,CAAC,MAAM,EAAE;OACzB,IAAI,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,GAAG,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,KAAK,CAAC,EAAC;MACjE;AACL;AACA,KAAI,IAAI,CAAC,KAAK,CAAC,GAAG,IAAI,GAAG,GAAE;AAC3B,KAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,IAAI,OAAO,GAAE;AAClC,KAAI,IAAI,CAAC,MAAM,CAAC,GAAG,EAAC;IACjB;AACH;GACE,IAAI,CAAC,GAAG;KACN,OAAO,IAAI,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,GAAG;OAC3B,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,GAAG,KAAK,GAAG;AACnC,SAAQ,CAAC,EAAE,GAAG,CAAC,GAAG;AAClB,SAAQ,CAAC,EAAE,GAAG,CAAC,KAAK;SACZ,CAAC,EAAE,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,MAAM,IAAI,CAAC,CAAC;QAC/B,CAAC,CAAC,OAAO,EAAE,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC;IAC9B;AACH;GACE,OAAO,CAAC,GAAG;AACb,KAAI,OAAO,IAAI,CAAC,QAAQ,CAAC;IACtB;AACH;GACE,GAAG,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE;AAC3B,KAAI,MAAM,GAAG,MAAM,IAAI,IAAI,CAAC,OAAO,EAAC;AACpC;AACA,KAAI,IAAI,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ;AAC5C,OAAM,MAAM,IAAI,SAAS,CAAC,yBAAyB,CAAC;AACpD;KACI,MAAM,GAAG,GAAG,MAAM,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,EAAC;KACnC,MAAM,GAAG,GAAG,IAAI,CAAC,iBAAiB,CAAC,CAAC,KAAK,EAAE,GAAG,EAAC;AACnD;KACI,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;AAC9B,OAAM,IAAI,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE;AAC3B,SAAQ,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,EAAC;AACvC,SAAQ,OAAO,KAAK;QACb;AACP;OACM,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,GAAG,EAAC;AACvC,OAAM,MAAM,IAAI,GAAG,IAAI,CAAC,MAAK;AAC7B;AACA;AACA;AACA,OAAM,IAAI,IAAI,CAAC,OAAO,CAAC,EAAE;AACzB,SAAQ,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC;WAC1B,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,EAAC;QACjC;AACP;AACA,OAAM,IAAI,CAAC,GAAG,GAAG,IAAG;AACpB,OAAM,IAAI,CAAC,MAAM,GAAG,OAAM;AAC1B,OAAM,IAAI,CAAC,KAAK,GAAG,MAAK;OAClB,IAAI,CAAC,MAAM,CAAC,IAAI,GAAG,GAAG,IAAI,CAAC,OAAM;AACvC,OAAM,IAAI,CAAC,MAAM,GAAG,IAAG;AACvB,OAAM,IAAI,CAAC,GAAG,CAAC,GAAG,EAAC;OACb,IAAI,CAAC,IAAI,EAAC;AAChB,OAAM,OAAO,IAAI;MACZ;AACL;AACA,KAAI,MAAM,GAAG,GAAG,IAAI,KAAK,CAAC,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,MAAM,EAAC;AACvD;AACA;KACI,IAAI,GAAG,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE;AAChC,OAAM,IAAI,IAAI,CAAC,OAAO,CAAC;SACf,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,KAAK,EAAC;AACjC;AACA,OAAM,OAAO,KAAK;MACb;AACL;AACA,KAAI,IAAI,CAAC,MAAM,CAAC,IAAI,GAAG,CAAC,OAAM;KAC1B,IAAI,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,GAAG,EAAC;AAC/B,KAAI,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,IAAI,EAAC;KACzC,IAAI,CAAC,IAAI,EAAC;AACd,KAAI,OAAO,IAAI;IACZ;AACH;AACA,GAAE,GAAG,CAAC,CAAC,GAAG,EAAE;AACZ,KAAI,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,OAAO,KAAK;AAC3C,KAAI,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,MAAK;AAC1C,KAAI,OAAO,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC;IAC3B;AACH;AACA,GAAE,GAAG,CAAC,CAAC,GAAG,EAAE;KACR,OAAO,GAAG,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,CAAC;IAC5B;AACH;AACA,GAAE,IAAI,CAAC,CAAC,GAAG,EAAE;KACT,OAAO,GAAG,CAAC,IAAI,EAAE,GAAG,EAAE,KAAK,CAAC;IAC7B;AACH;GACE,GAAG,CAAC,GAAG;KACL,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,KAAI;KAChC,IAAI,CAAC,IAAI;AACb,OAAM,OAAO,IAAI;AACjB;AACA,KAAI,GAAG,CAAC,IAAI,EAAE,IAAI,EAAC;KACf,OAAO,IAAI,CAAC,KAAK;IAClB;AACH;AACA,GAAE,GAAG,CAAC,CAAC,GAAG,EAAE;AACZ,KAAI,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,EAAC;IAChC;AACH;AACA,GAAE,IAAI,CAAC,CAAC,GAAG,EAAE;AACb;KACI,IAAI,CAAC,KAAK,GAAE;AAChB;AACA,KAAI,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,GAAE;AAC1B;AACA,KAAI,KAAK,IAAI,CAAC,GAAG,GAAG,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE;AAC9C,OAAM,MAAM,GAAG,GAAG,GAAG,CAAC,CAAC,EAAC;AACxB,OAAM,MAAM,SAAS,GAAG,GAAG,CAAC,CAAC,IAAI,EAAC;OAC5B,IAAI,SAAS,KAAK,CAAC;AACzB;SACQ,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,EAAC;YACnB;AACX,SAAQ,MAAM,MAAM,GAAG,SAAS,GAAG,IAAG;AACtC;AACA,SAAQ,IAAI,MAAM,GAAG,CAAC,EAAE;AACxB,WAAU,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,MAAM,EAAC;UAC/B;QACF;MACF;IACF;AACH;GACE,KAAK,CAAC,GAAG;KACP,IAAI,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,GAAG,KAAK,GAAG,CAAC,IAAI,EAAE,GAAG,EAAE,KAAK,CAAC,EAAC;IAC3D;EACF;AACD;CACA,MAAM,GAAG,GAAG,CAAC,IAAI,EAAE,GAAG,EAAE,KAAK,KAAK;GAChC,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,GAAG,EAAC;GACjC,IAAI,IAAI,EAAE;AACZ,KAAI,MAAM,GAAG,GAAG,IAAI,CAAC,MAAK;AAC1B,KAAI,IAAI,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE;AAC5B,OAAM,GAAG,CAAC,IAAI,EAAE,IAAI,EAAC;AACrB,OAAM,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC;AAC5B,SAAQ,OAAO,SAAS;AACxB,MAAK,MAAM;OACL,IAAI,KAAK,EAAE;AACjB,SAAQ,IAAI,IAAI,CAAC,iBAAiB,CAAC;WACzB,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,GAAE;SAC7B,IAAI,CAAC,QAAQ,CAAC,CAAC,WAAW,CAAC,IAAI,EAAC;QACjC;MACF;KACD,OAAO,GAAG,CAAC,KAAK;IACjB;GACF;AACD;AACA,CAAA,MAAM,OAAO,GAAG,CAAC,IAAI,EAAE,GAAG,KAAK;AAC/B,GAAE,IAAI,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AAC7C,KAAI,OAAO,KAAK;AAChB;GACE,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,GAAG,CAAC,IAAG;GACjC,OAAO,GAAG,CAAC,MAAM,GAAG,IAAI,GAAG,GAAG,CAAC,MAAM;OACjC,IAAI,CAAC,OAAO,CAAC,KAAK,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC;GAC5C;AACD;CACA,MAAM,IAAI,GAAG,IAAI,IAAI;GACnB,IAAI,IAAI,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE;KAC5B,KAAK,IAAI,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,IAAI;AACzC,OAAM,IAAI,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,MAAM,KAAK,IAAI,GAAG;AACpD;AACA;AACA;AACA,OAAM,MAAM,IAAI,GAAG,MAAM,CAAC,KAAI;AAC9B,OAAM,GAAG,CAAC,IAAI,EAAE,MAAM,EAAC;OACjB,MAAM,GAAG,KAAI;MACd;IACF;GACF;AACD;AACA,CAAA,MAAM,GAAG,GAAG,CAAC,IAAI,EAAE,IAAI,KAAK;GAC1B,IAAI,IAAI,EAAE;AACZ,KAAI,MAAM,GAAG,GAAG,IAAI,CAAC,MAAK;AAC1B,KAAI,IAAI,IAAI,CAAC,OAAO,CAAC;AACrB,OAAM,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,KAAK,EAAC;AACvC;AACA,KAAI,IAAI,CAAC,MAAM,CAAC,IAAI,GAAG,CAAC,OAAM;KAC1B,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,EAAC;KAC3B,IAAI,CAAC,QAAQ,CAAC,CAAC,UAAU,CAAC,IAAI,EAAC;IAChC;GACF;AACD;AACA,CAAA,MAAM,KAAK,CAAC;AACZ,GAAE,WAAW,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE;AAChD,KAAI,IAAI,CAAC,GAAG,GAAG,IAAG;AAClB,KAAI,IAAI,CAAC,KAAK,GAAG,MAAK;AACtB,KAAI,IAAI,CAAC,MAAM,GAAG,OAAM;AACxB,KAAI,IAAI,CAAC,GAAG,GAAG,IAAG;AAClB,KAAI,IAAI,CAAC,MAAM,GAAG,MAAM,IAAI,EAAC;IAC1B;EACF;AACD;CACA,MAAM,WAAW,GAAG,CAAC,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,KAAK;AAC/C,GAAE,IAAI,GAAG,GAAG,IAAI,CAAC,MAAK;AACtB,GAAE,IAAI,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE;AAC1B,KAAI,GAAG,CAAC,IAAI,EAAE,IAAI,EAAC;AACnB,KAAI,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC;OACpB,GAAG,GAAG,UAAS;IAClB;AACH,GAAE,IAAI,GAAG;AACT,KAAI,EAAE,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,GAAG,EAAE,IAAI,EAAC;GAC3C;AACD;AACA,CAAA,QAAc,GAAG,SAAA;;;;;;;;;;AC7UjB;AACA,CAAA,MAAM,KAAK,CAAC;AACZ,GAAE,WAAW,CAAC,CAAC,KAAK,EAAE,OAAO,EAAE;AAC/B,KAAI,OAAO,GAAG,YAAY,CAAC,OAAO,EAAC;AACnC;AACA,KAAI,IAAI,KAAK,YAAY,KAAK,EAAE;OAC1B;SACE,KAAK,CAAC,KAAK,KAAK,CAAC,CAAC,OAAO,CAAC,KAAK;SAC/B,KAAK,CAAC,iBAAiB,KAAK,CAAC,CAAC,OAAO,CAAC,iBAAiB;SACvD;AACR,SAAQ,OAAO,KAAK;AACpB,QAAO,MAAM;SACL,OAAO,IAAI,KAAK,CAAC,KAAK,CAAC,GAAG,EAAE,OAAO,CAAC;QACrC;MACF;AACL;AACA,KAAI,IAAI,KAAK,YAAY,UAAU,EAAE;AACrC;AACA,OAAM,IAAI,CAAC,GAAG,GAAG,KAAK,CAAC,MAAK;OACtB,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC,KAAK,CAAC,EAAC;OACpB,IAAI,CAAC,MAAM,GAAE;AACnB,OAAM,OAAO,IAAI;MACZ;AACL;AACA,KAAI,IAAI,CAAC,OAAO,GAAG,QAAO;KACtB,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,OAAO,CAAC,MAAK;KAC5B,IAAI,CAAC,iBAAiB,GAAG,CAAC,CAAC,OAAO,CAAC,kBAAiB;AACxD;AACA;AACA;AACA;AACA,KAAI,IAAI,CAAC,GAAG,GAAG,KAAK;AACpB,QAAO,IAAI,EAAE;QACN,KAAK,CAAC,KAAK,CAAC;QACZ,IAAI,CAAC,GAAG,EAAC;AAChB;AACA;AACA,KAAI,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG;QAChB,KAAK,CAAC,IAAI,CAAC;AAClB;AACA,QAAO,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;AAC1C;AACA;AACA;AACA,QAAO,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAC;AAC5B;AACA,KAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE;AAC1B,OAAM,MAAM,IAAI,SAAS,CAAC,CAAC,sBAAsB,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;MACzD;AACL;AACA;KACI,IAAI,IAAI,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,EAAE;AAC7B;OACM,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAC;OACzB,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAC;OACjD,IAAI,IAAI,CAAC,GAAG,CAAC,MAAM,KAAK,CAAC,EAAE;AACjC,SAAQ,IAAI,CAAC,GAAG,GAAG,CAAC,KAAK,EAAC;QACnB,MAAM,IAAI,IAAI,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,EAAE;AACtC;AACA,SAAQ,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,GAAG,EAAE;AAClC,WAAU,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE;AAC7C,aAAY,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC,EAAC;AAC1B,aAAY,KAAK;YACN;UACF;QACF;MACF;AACL;KACI,IAAI,CAAC,MAAM,GAAE;IACd;AACH;GACE,MAAM,CAAC,GAAG;AACZ,KAAI,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,GAAG;AACzB,QAAO,GAAG,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;QACtC,IAAI,CAAC,IAAI,CAAC;AACjB,QAAO,IAAI,GAAE;KACT,OAAO,IAAI,CAAC,KAAK;IAClB;AACH;GACE,QAAQ,CAAC,GAAG;KACV,OAAO,IAAI,CAAC,KAAK;IAClB;AACH;AACA,GAAE,UAAU,CAAC,CAAC,KAAK,EAAE;AACrB;AACA;AACA,KAAI,MAAM,QAAQ;AAClB,OAAM,CAAC,IAAI,CAAC,OAAO,CAAC,iBAAiB,IAAI,uBAAuB;AAChE,QAAO,IAAI,CAAC,OAAO,CAAC,KAAK,IAAI,UAAU,EAAC;AACxC,KAAI,MAAM,OAAO,GAAG,QAAQ,GAAG,GAAG,GAAG,MAAK;KACtC,MAAM,MAAM,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,EAAC;KACjC,IAAI,MAAM,EAAE;AAChB,OAAM,OAAO,MAAM;MACd;AACL;AACA,KAAI,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,MAAK;AACpC;AACA,KAAI,MAAM,EAAE,GAAG,KAAK,GAAG,EAAE,CAAC,CAAC,CAAC,gBAAgB,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,WAAW,EAAC;AACjE,KAAI,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,EAAE,EAAE,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC,EAAC;AAC5E,KAAI,KAAK,CAAC,gBAAgB,EAAE,KAAK,EAAC;AAClC;AACA;AACA,KAAI,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,cAAc,CAAC,EAAE,qBAAqB,EAAC;AACtE,KAAI,KAAK,CAAC,iBAAiB,EAAE,KAAK,EAAC;AACnC;AACA;AACA,KAAI,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,EAAE,gBAAgB,EAAC;AAC5D,KAAI,KAAK,CAAC,YAAY,EAAE,KAAK,EAAC;AAC9B;AACA;AACA,KAAI,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,EAAE,gBAAgB,EAAC;AAC5D,KAAI,KAAK,CAAC,YAAY,EAAE,KAAK,EAAC;AAC9B;AACA;AACA;AACA;KACI,IAAI,SAAS,GAAG,KAAK;QAClB,KAAK,CAAC,GAAG,CAAC;AACjB,QAAO,GAAG,CAAC,IAAI,IAAI,eAAe,CAAC,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;QAChD,IAAI,CAAC,GAAG,CAAC;QACT,KAAK,CAAC,KAAK,CAAC;AACnB;AACA,QAAO,GAAG,CAAC,IAAI,IAAI,WAAW,CAAC,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,EAAC;AACnD;KACI,IAAI,KAAK,EAAE;AACf;AACA,OAAM,SAAS,GAAG,SAAS,CAAC,MAAM,CAAC,IAAI,IAAI;SACnC,KAAK,CAAC,sBAAsB,EAAE,IAAI,EAAE,IAAI,CAAC,OAAO,EAAC;AACzD,SAAQ,OAAO,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC;AAClD,QAAO,EAAC;MACH;AACL,KAAI,KAAK,CAAC,YAAY,EAAE,SAAS,EAAC;AAClC;AACA;AACA;AACA;AACA,KAAI,MAAM,QAAQ,GAAG,IAAI,GAAG,GAAE;AAC9B,KAAI,MAAM,WAAW,GAAG,SAAS,CAAC,GAAG,CAAC,IAAI,IAAI,IAAI,UAAU,CAAC,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,EAAC;AACjF,KAAI,KAAK,MAAM,IAAI,IAAI,WAAW,EAAE;AACpC,OAAM,IAAI,SAAS,CAAC,IAAI,CAAC,EAAE;SACnB,OAAO,CAAC,IAAI,CAAC;QACd;OACD,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,EAAC;MAC/B;AACL,KAAI,IAAI,QAAQ,CAAC,IAAI,GAAG,CAAC,IAAI,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE;AAC/C,OAAM,QAAQ,CAAC,MAAM,CAAC,EAAE,EAAC;MACpB;AACL;KACI,MAAM,MAAM,GAAG,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,EAAC;AACzC,KAAI,KAAK,CAAC,GAAG,CAAC,OAAO,EAAE,MAAM,EAAC;AAC9B,KAAI,OAAO,MAAM;IACd;AACH;AACA,GAAE,UAAU,CAAC,CAAC,KAAK,EAAE,OAAO,EAAE;AAC9B,KAAI,IAAI,EAAE,KAAK,YAAY,KAAK,CAAC,EAAE;AACnC,OAAM,MAAM,IAAI,SAAS,CAAC,qBAAqB,CAAC;MAC3C;AACL;KACI,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,eAAe,KAAK;OACxC;AACN,SAAQ,aAAa,CAAC,eAAe,EAAE,OAAO,CAAC;SACvC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,gBAAgB,KAAK;WACnC;AACV,aAAY,aAAa,CAAC,gBAAgB,EAAE,OAAO,CAAC;AACpD,aAAY,eAAe,CAAC,KAAK,CAAC,CAAC,cAAc,KAAK;AACtD,eAAc,OAAO,gBAAgB,CAAC,KAAK,CAAC,CAAC,eAAe,KAAK;iBACjD,OAAO,cAAc,CAAC,UAAU,CAAC,eAAe,EAAE,OAAO,CAAC;AAC1E,gBAAe,CAAC;AAChB,cAAa,CAAC;YACH;AACX,UAAS,CAAC;QACH;AACP,MAAK,CAAC;IACH;AACH;AACA;AACA,GAAE,IAAI,CAAC,CAAC,OAAO,EAAE;KACb,IAAI,CAAC,OAAO,EAAE;AAClB,OAAM,OAAO,KAAK;MACb;AACL;AACA,KAAI,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE;AACrC,OAAM,IAAI;SACF,OAAO,GAAG,IAAI,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,EAAC;QAC5C,CAAC,OAAO,EAAE,EAAE;AACnB,SAAQ,OAAO,KAAK;QACb;MACF;AACL;AACA,KAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AAC9C,OAAM,IAAI,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,EAAE;AACvD,SAAQ,OAAO,IAAI;QACZ;MACF;AACL,KAAI,OAAO,KAAK;IACb;EACF;AACD;AACA,CAAA,KAAc,GAAG,MAAK;AACtB;CACA,MAAM,GAAG,GAAGA,eAAoB,GAAA;CAChC,MAAM,KAAK,GAAG,IAAI,GAAG,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,EAAC;AACpC;CACA,MAAM,YAAY,GAAGC,mBAAoC,GAAA;CACzD,MAAM,UAAU,GAAGC,iBAAuB,GAAA;CAC1C,MAAM,KAAK,GAAGI,YAA4B,GAAA;CAC1C,MAAM,MAAM,GAAGgB,eAAmB,GAAA;CAClC,MAAM;GACJ,MAAM,EAAE,EAAE;AACZ,GAAE,CAAC;AACH,GAAE,qBAAqB;AACvB,GAAE,gBAAgB;AAClB,GAAE,gBAAgB;AAClB,EAAC,GAAGf,SAAyB,GAAA;AAC7B,CAAA,MAAM,EAAE,uBAAuB,EAAE,UAAU,EAAE,GAAGC,gBAAgC,GAAA;AAChF;CACA,MAAM,SAAS,GAAG,CAAC,IAAI,CAAC,CAAC,KAAK,KAAK,WAAU;CAC7C,MAAM,KAAK,GAAG,CAAC,IAAI,CAAC,CAAC,KAAK,KAAK,GAAE;AACjC;AACA;AACA;AACA,CAAA,MAAM,aAAa,GAAG,CAAC,WAAW,EAAE,OAAO,KAAK;GAC9C,IAAI,MAAM,GAAG,KAAI;AACnB,GAAE,MAAM,oBAAoB,GAAG,WAAW,CAAC,KAAK,GAAE;AAClD,GAAE,IAAI,cAAc,GAAG,oBAAoB,CAAC,GAAG,GAAE;AACjD;AACA,GAAE,OAAO,MAAM,IAAI,oBAAoB,CAAC,MAAM,EAAE;KAC5C,MAAM,GAAG,oBAAoB,CAAC,KAAK,CAAC,CAAC,eAAe,KAAK;OACvD,OAAO,cAAc,CAAC,UAAU,CAAC,eAAe,EAAE,OAAO,CAAC;AAChE,MAAK,EAAC;AACN;AACA,KAAI,cAAc,GAAG,oBAAoB,CAAC,GAAG,GAAE;IAC5C;AACH;AACA,GAAE,OAAO,MAAM;GACd;AACD;AACA;AACA;AACA;AACA,CAAA,MAAM,eAAe,GAAG,CAAC,IAAI,EAAE,OAAO,KAAK;AAC3C,GAAE,KAAK,CAAC,MAAM,EAAE,IAAI,EAAE,OAAO,EAAC;AAC9B,GAAE,IAAI,GAAG,aAAa,CAAC,IAAI,EAAE,OAAO,EAAC;AACrC,GAAE,KAAK,CAAC,OAAO,EAAE,IAAI,EAAC;AACtB,GAAE,IAAI,GAAG,aAAa,CAAC,IAAI,EAAE,OAAO,EAAC;AACrC,GAAE,KAAK,CAAC,QAAQ,EAAE,IAAI,EAAC;AACvB,GAAE,IAAI,GAAG,cAAc,CAAC,IAAI,EAAE,OAAO,EAAC;AACtC,GAAE,KAAK,CAAC,QAAQ,EAAE,IAAI,EAAC;AACvB,GAAE,IAAI,GAAG,YAAY,CAAC,IAAI,EAAE,OAAO,EAAC;AACpC,GAAE,KAAK,CAAC,OAAO,EAAE,IAAI,EAAC;AACtB,GAAE,OAAO,IAAI;GACZ;AACD;AACA,CAAA,MAAM,GAAG,GAAG,EAAE,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC,WAAW,EAAE,KAAK,GAAG,IAAI,EAAE,KAAK,IAAG;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAA,MAAM,aAAa,GAAG,CAAC,IAAI,EAAE,OAAO,KAAK;AACzC,GAAE,OAAO,IAAI;AACb,MAAK,IAAI,EAAE;MACN,KAAK,CAAC,KAAK,CAAC;MACZ,GAAG,CAAC,CAAC,CAAC,KAAK,YAAY,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;MACpC,IAAI,CAAC,GAAG,CAAC;GACb;AACD;AACA,CAAA,MAAM,YAAY,GAAG,CAAC,IAAI,EAAE,OAAO,KAAK;AACxC,GAAE,MAAM,CAAC,GAAG,OAAO,CAAC,KAAK,GAAG,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,KAAK,EAAC;AAC1D,GAAE,OAAO,IAAI,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,KAAK;AAC7C,KAAI,KAAK,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAC;AACxC,KAAI,IAAI,IAAG;AACX;AACA,KAAI,IAAI,GAAG,CAAC,CAAC,CAAC,EAAE;OACV,GAAG,GAAG,GAAE;AACd,MAAK,MAAM,IAAI,GAAG,CAAC,CAAC,CAAC,EAAE;AACvB,OAAM,GAAG,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,EAAC;AACzC,MAAK,MAAM,IAAI,GAAG,CAAC,CAAC,CAAC,EAAE;AACvB;OACM,GAAG,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAC;MAC1C,MAAM,IAAI,EAAE,EAAE;AACnB,OAAM,KAAK,CAAC,iBAAiB,EAAE,EAAE,EAAC;AAClC,OAAM,GAAG,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE;AAClC,QAAO,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAC;AAC5B,MAAK,MAAM;AACX;AACA,OAAM,GAAG,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;AAC5B,QAAO,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAC;MACvB;AACL;AACA,KAAI,KAAK,CAAC,cAAc,EAAE,GAAG,EAAC;AAC9B,KAAI,OAAO,GAAG;AACd,IAAG,CAAC;GACH;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAA,MAAM,aAAa,GAAG,CAAC,IAAI,EAAE,OAAO,KAAK;AACzC,GAAE,OAAO,IAAI;AACb,MAAK,IAAI,EAAE;MACN,KAAK,CAAC,KAAK,CAAC;MACZ,GAAG,CAAC,CAAC,CAAC,KAAK,YAAY,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;MACpC,IAAI,CAAC,GAAG,CAAC;GACb;AACD;AACA,CAAA,MAAM,YAAY,GAAG,CAAC,IAAI,EAAE,OAAO,KAAK;AACxC,GAAE,KAAK,CAAC,OAAO,EAAE,IAAI,EAAE,OAAO,EAAC;AAC/B,GAAE,MAAM,CAAC,GAAG,OAAO,CAAC,KAAK,GAAG,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,KAAK,EAAC;GACxD,MAAM,CAAC,GAAG,OAAO,CAAC,iBAAiB,GAAG,IAAI,GAAG,GAAE;AACjD,GAAE,OAAO,IAAI,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,KAAK;AAC7C,KAAI,KAAK,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAC;AACxC,KAAI,IAAI,IAAG;AACX;AACA,KAAI,IAAI,GAAG,CAAC,CAAC,CAAC,EAAE;OACV,GAAG,GAAG,GAAE;AACd,MAAK,MAAM,IAAI,GAAG,CAAC,CAAC,CAAC,EAAE;AACvB,OAAM,GAAG,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,EAAC;AAC7C,MAAK,MAAM,IAAI,GAAG,CAAC,CAAC,CAAC,EAAE;AACvB,OAAM,IAAI,CAAC,KAAK,GAAG,EAAE;SACb,GAAG,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAC;AACrD,QAAO,MAAM;SACL,GAAG,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,EAAC;QAC3C;MACF,MAAM,IAAI,EAAE,EAAE;AACnB,OAAM,KAAK,CAAC,iBAAiB,EAAE,EAAE,EAAC;AAClC,OAAM,IAAI,CAAC,KAAK,GAAG,EAAE;AACrB,SAAQ,IAAI,CAAC,KAAK,GAAG,EAAE;AACvB,WAAU,GAAG,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE;AACtC,YAAW,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,EAAC;AACnC,UAAS,MAAM;AACf,WAAU,GAAG,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE;AACtC,YAAW,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAC;UACvB;AACT,QAAO,MAAM;AACb,SAAQ,GAAG,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE;UAC3B,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,EAAC;QACpB;AACP,MAAK,MAAM;OACL,KAAK,CAAC,OAAO,EAAC;AACpB,OAAM,IAAI,CAAC,KAAK,GAAG,EAAE;AACrB,SAAQ,IAAI,CAAC,KAAK,GAAG,EAAE;AACvB,WAAU,GAAG,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;AAChC,YAAW,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,EAAC;AACvC,UAAS,MAAM;AACf,WAAU,GAAG,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;AAChC,YAAW,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAC;UAC3B;AACT,QAAO,MAAM;AACb,SAAQ,GAAG,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;UACrB,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,EAAC;QACpB;MACF;AACL;AACA,KAAI,KAAK,CAAC,cAAc,EAAE,GAAG,EAAC;AAC9B,KAAI,OAAO,GAAG;AACd,IAAG,CAAC;GACH;AACD;AACA,CAAA,MAAM,cAAc,GAAG,CAAC,IAAI,EAAE,OAAO,KAAK;AAC1C,GAAE,KAAK,CAAC,gBAAgB,EAAE,IAAI,EAAE,OAAO,EAAC;AACxC,GAAE,OAAO,IAAI;MACR,KAAK,CAAC,KAAK,CAAC;MACZ,GAAG,CAAC,CAAC,CAAC,KAAK,aAAa,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;MACrC,IAAI,CAAC,GAAG,CAAC;GACb;AACD;AACA,CAAA,MAAM,aAAa,GAAG,CAAC,IAAI,EAAE,OAAO,KAAK;AACzC,GAAE,IAAI,GAAG,IAAI,CAAC,IAAI,GAAE;AACpB,GAAE,MAAM,CAAC,GAAG,OAAO,CAAC,KAAK,GAAG,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,MAAM,EAAC;AAC5D,GAAE,OAAO,IAAI,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,KAAK;AACrD,KAAI,KAAK,CAAC,QAAQ,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAC;AACjD,KAAI,MAAM,EAAE,GAAG,GAAG,CAAC,CAAC,EAAC;KACjB,MAAM,EAAE,GAAG,EAAE,IAAI,GAAG,CAAC,CAAC,EAAC;KACvB,MAAM,EAAE,GAAG,EAAE,IAAI,GAAG,CAAC,CAAC,EAAC;KACvB,MAAM,IAAI,GAAG,GAAE;AACnB;AACA,KAAI,IAAI,IAAI,KAAK,GAAG,IAAI,IAAI,EAAE;OACxB,IAAI,GAAG,GAAE;MACV;AACL;AACA;AACA;KACI,EAAE,GAAG,OAAO,CAAC,iBAAiB,GAAG,IAAI,GAAG,GAAE;AAC9C;KACI,IAAI,EAAE,EAAE;OACN,IAAI,IAAI,KAAK,GAAG,IAAI,IAAI,KAAK,GAAG,EAAE;AACxC;SACQ,GAAG,GAAG,WAAU;AACxB,QAAO,MAAM;AACb;SACQ,GAAG,GAAG,IAAG;QACV;AACP,MAAK,MAAM,IAAI,IAAI,IAAI,IAAI,EAAE;AAC7B;AACA;OACM,IAAI,EAAE,EAAE;SACN,CAAC,GAAG,EAAC;QACN;OACD,CAAC,GAAG,EAAC;AACX;AACA,OAAM,IAAI,IAAI,KAAK,GAAG,EAAE;AACxB;AACA;SACQ,IAAI,GAAG,KAAI;SACX,IAAI,EAAE,EAAE;AAChB,WAAU,CAAC,GAAG,CAAC,CAAC,GAAG,EAAC;WACV,CAAC,GAAG,EAAC;WACL,CAAC,GAAG,EAAC;AACf,UAAS,MAAM;AACf,WAAU,CAAC,GAAG,CAAC,CAAC,GAAG,EAAC;WACV,CAAC,GAAG,EAAC;UACN;AACT,QAAO,MAAM,IAAI,IAAI,KAAK,IAAI,EAAE;AAChC;AACA;SACQ,IAAI,GAAG,IAAG;SACV,IAAI,EAAE,EAAE;AAChB,WAAU,CAAC,GAAG,CAAC,CAAC,GAAG,EAAC;AACpB,UAAS,MAAM;AACf,WAAU,CAAC,GAAG,CAAC,CAAC,GAAG,EAAC;UACX;QACF;AACP;AACA,OAAM,IAAI,IAAI,KAAK,GAAG,EAAE;SAChB,EAAE,GAAG,KAAI;QACV;AACP;AACA,OAAM,GAAG,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAC;MACnC,MAAM,IAAI,EAAE,EAAE;AACnB,OAAM,GAAG,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,EAAC;MACzC,MAAM,IAAI,EAAE,EAAE;AACnB,OAAM,GAAG,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE;AAC9B,QAAO,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAC;MACvB;AACL;AACA,KAAI,KAAK,CAAC,eAAe,EAAE,GAAG,EAAC;AAC/B;AACA,KAAI,OAAO,GAAG;AACd,IAAG,CAAC;GACH;AACD;AACA;AACA;AACA,CAAA,MAAM,YAAY,GAAG,CAAC,IAAI,EAAE,OAAO,KAAK;AACxC,GAAE,KAAK,CAAC,cAAc,EAAE,IAAI,EAAE,OAAO,EAAC;AACtC;AACA,GAAE,OAAO,IAAI;AACb,MAAK,IAAI,EAAE;MACN,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;GAC3B;AACD;AACA,CAAA,MAAM,WAAW,GAAG,CAAC,IAAI,EAAE,OAAO,KAAK;AACvC,GAAE,KAAK,CAAC,aAAa,EAAE,IAAI,EAAE,OAAO,EAAC;AACrC,GAAE,OAAO,IAAI;AACb,MAAK,IAAI,EAAE;AACX,MAAK,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,iBAAiB,GAAG,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;GACnE;AACD;AACA;AACA;AACA;AACA;AACA;AACA,CAAA,MAAM,aAAa,GAAG,KAAK,IAAI,CAAC,EAAE;GAChC,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE;GACzB,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,KAAK;AAC9B,GAAE,IAAI,GAAG,CAAC,EAAE,CAAC,EAAE;KACX,IAAI,GAAG,GAAE;AACb,IAAG,MAAM,IAAI,GAAG,CAAC,EAAE,CAAC,EAAE;AACtB,KAAI,IAAI,GAAG,CAAC,EAAE,EAAE,EAAE,CAAC,IAAI,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,CAAC,EAAC;AAC5C,IAAG,MAAM,IAAI,GAAG,CAAC,EAAE,CAAC,EAAE;AACtB,KAAI,IAAI,GAAG,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,CAAC,EAAC;IAC7C,MAAM,IAAI,GAAG,EAAE;AAClB,KAAI,IAAI,GAAG,CAAC,EAAE,EAAE,IAAI,CAAC,EAAC;AACtB,IAAG,MAAM;AACT,KAAI,IAAI,GAAG,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,CAAC,EAAC;IACvC;AACH;AACA,GAAE,IAAI,GAAG,CAAC,EAAE,CAAC,EAAE;KACX,EAAE,GAAG,GAAE;AACX,IAAG,MAAM,IAAI,GAAG,CAAC,EAAE,CAAC,EAAE;KAClB,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC,MAAM,EAAC;AAC5B,IAAG,MAAM,IAAI,GAAG,CAAC,EAAE,CAAC,EAAE;AACtB,KAAI,EAAE,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC,IAAI,EAAC;IAC7B,MAAM,IAAI,GAAG,EAAE;AAClB,KAAI,EAAE,GAAG,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,EAAC;IAClC,MAAM,IAAI,KAAK,EAAE;AACpB,KAAI,EAAE,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,EAAC;AACpC,IAAG,MAAM;AACT,KAAI,EAAE,GAAG,CAAC,EAAE,EAAE,EAAE,CAAC,EAAC;IACf;AACH;AACA,GAAE,OAAO,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE;GAC9B;AACD;CACA,MAAM,OAAO,GAAG,CAAC,GAAG,EAAE,OAAO,EAAE,OAAO,KAAK;AAC3C,GAAE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;KACnC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE;AAC/B,OAAM,OAAO,KAAK;MACb;IACF;AACH;GACE,IAAI,OAAO,CAAC,UAAU,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,iBAAiB,EAAE;AAC/D;AACA;AACA;AACA;AACA;AACA,KAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;OACnC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,EAAC;OACpB,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,KAAK,UAAU,CAAC,GAAG,EAAE;AAC5C,SAAQ,QAAQ;QACT;AACP;AACA,OAAM,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE;SACvC,MAAM,OAAO,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,OAAM;AACrC,SAAQ,IAAI,OAAO,CAAC,KAAK,KAAK,OAAO,CAAC,KAAK;AAC3C,aAAY,OAAO,CAAC,KAAK,KAAK,OAAO,CAAC,KAAK;AAC3C,aAAY,OAAO,CAAC,KAAK,KAAK,OAAO,CAAC,KAAK,EAAE;AAC7C,WAAU,OAAO,IAAI;UACZ;QACF;MACF;AACL;AACA;AACA,KAAI,OAAO,KAAK;IACb;AACH;AACA,GAAE,OAAO,IAAI;AACb,GAAA;;;;;;;;;;AC1hBA,CAAA,MAAM,GAAG,GAAG,MAAM,CAAC,YAAY,EAAC;AAChC;AACA,CAAA,MAAM,UAAU,CAAC;GACf,WAAW,GAAG,CAAC,GAAG;AACpB,KAAI,OAAO,GAAG;IACX;AACH;AACA,GAAE,WAAW,CAAC,CAAC,IAAI,EAAE,OAAO,EAAE;AAC9B,KAAI,OAAO,GAAG,YAAY,CAAC,OAAO,EAAC;AACnC;AACA,KAAI,IAAI,IAAI,YAAY,UAAU,EAAE;OAC9B,IAAI,IAAI,CAAC,KAAK,KAAK,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE;AAC1C,SAAQ,OAAO,IAAI;AACnB,QAAO,MAAM;AACb,SAAQ,IAAI,GAAG,IAAI,CAAC,MAAK;QAClB;MACF;AACL;AACA,KAAI,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,GAAG,EAAC;AAC7C,KAAI,KAAK,CAAC,YAAY,EAAE,IAAI,EAAE,OAAO,EAAC;AACtC,KAAI,IAAI,CAAC,OAAO,GAAG,QAAO;KACtB,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,OAAO,CAAC,MAAK;AAChC,KAAI,IAAI,CAAC,KAAK,CAAC,IAAI,EAAC;AACpB;AACA,KAAI,IAAI,IAAI,CAAC,MAAM,KAAK,GAAG,EAAE;AAC7B,OAAM,IAAI,CAAC,KAAK,GAAG,GAAE;AACrB,MAAK,MAAM;AACX,OAAM,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,QAAO;MACjD;AACL;AACA,KAAI,KAAK,CAAC,MAAM,EAAE,IAAI,EAAC;IACpB;AACH;AACA,GAAE,KAAK,CAAC,CAAC,IAAI,EAAE;KACX,MAAM,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,GAAG,EAAE,CAAC,CAAC,CAAC,eAAe,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,UAAU,EAAC;KACvE,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAC;AAC3B;KACI,IAAI,CAAC,CAAC,EAAE;OACN,MAAM,IAAI,SAAS,CAAC,CAAC,oBAAoB,EAAE,IAAI,CAAC,CAAC,CAAC;MACnD;AACL;AACA,KAAI,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,SAAS,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,GAAE;AAClD,KAAI,IAAI,IAAI,CAAC,QAAQ,KAAK,GAAG,EAAE;AAC/B,OAAM,IAAI,CAAC,QAAQ,GAAG,GAAE;MACnB;AACL;AACA;AACA,KAAI,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE;AACf,OAAM,IAAI,CAAC,MAAM,GAAG,IAAG;AACvB,MAAK,MAAM;AACX,OAAM,IAAI,CAAC,MAAM,GAAG,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,KAAK,EAAC;MACnD;IACF;AACH;GACE,QAAQ,CAAC,GAAG;KACV,OAAO,IAAI,CAAC,KAAK;IAClB;AACH;AACA,GAAE,IAAI,CAAC,CAAC,OAAO,EAAE;KACb,KAAK,CAAC,iBAAiB,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,KAAK,EAAC;AACzD;KACI,IAAI,IAAI,CAAC,MAAM,KAAK,GAAG,IAAI,OAAO,KAAK,GAAG,EAAE;AAChD,OAAM,OAAO,IAAI;MACZ;AACL;AACA,KAAI,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE;AACrC,OAAM,IAAI;SACF,OAAO,GAAG,IAAI,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,EAAC;QAC5C,CAAC,OAAO,EAAE,EAAE;AACnB,SAAQ,OAAO,KAAK;QACb;MACF;AACL;AACA,KAAI,OAAO,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC;IAC9D;AACH;AACA,GAAE,UAAU,CAAC,CAAC,IAAI,EAAE,OAAO,EAAE;AAC7B,KAAI,IAAI,EAAE,IAAI,YAAY,UAAU,CAAC,EAAE;AACvC,OAAM,MAAM,IAAI,SAAS,CAAC,0BAA0B,CAAC;MAChD;AACL;AACA,KAAI,IAAI,IAAI,CAAC,QAAQ,KAAK,EAAE,EAAE;AAC9B,OAAM,IAAI,IAAI,CAAC,KAAK,KAAK,EAAE,EAAE;AAC7B,SAAQ,OAAO,IAAI;QACZ;AACP,OAAM,OAAO,IAAI,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC;AAC5D,MAAK,MAAM,IAAI,IAAI,CAAC,QAAQ,KAAK,EAAE,EAAE;AACrC,OAAM,IAAI,IAAI,CAAC,KAAK,KAAK,EAAE,EAAE;AAC7B,SAAQ,OAAO,IAAI;QACZ;AACP,OAAM,OAAO,IAAI,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;MACxD;AACL;AACA,KAAI,OAAO,GAAG,YAAY,CAAC,OAAO,EAAC;AACnC;AACA;KACI,IAAI,OAAO,CAAC,iBAAiB;AACjC,QAAO,IAAI,CAAC,KAAK,KAAK,UAAU,IAAI,IAAI,CAAC,KAAK,KAAK,UAAU,CAAC,EAAE;AAChE,OAAM,OAAO,KAAK;MACb;AACL,KAAI,IAAI,CAAC,OAAO,CAAC,iBAAiB;AAClC,QAAO,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,EAAE;AAC5E,OAAM,OAAO,KAAK;MACb;AACL;AACA;AACA,KAAI,IAAI,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE;AACxE,OAAM,OAAO,IAAI;MACZ;AACL;AACA,KAAI,IAAI,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE;AACxE,OAAM,OAAO,IAAI;MACZ;AACL;KACI;OACE,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,KAAK,IAAI,CAAC,MAAM,CAAC,OAAO;AAClD,OAAM,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;AAClE,OAAM,OAAO,IAAI;MACZ;AACL;AACA,KAAI,IAAI,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,EAAE,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC;AACnD,OAAM,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE;AACtE,OAAM,OAAO,IAAI;MACZ;AACL;AACA,KAAI,IAAI,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,EAAE,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC;AACnD,OAAM,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE;AACtE,OAAM,OAAO,IAAI;MACZ;AACL,KAAI,OAAO,KAAK;IACb;EACF;AACD;AACA,CAAA,UAAc,GAAG,WAAU;AAC3B;CACA,MAAM,YAAY,GAAGR,mBAAoC,GAAA;CACzD,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,EAAE,GAAGC,SAAyB,GAAA;CACnD,MAAM,GAAG,GAAGC,UAA2B,GAAA;CACvC,MAAM,KAAK,GAAGI,YAA4B,GAAA;CAC1C,MAAM,MAAM,GAAGgB,eAAmB,GAAA;AAClC,CAAA,MAAM,KAAK,GAAGf,YAAA,GAAA;;;;;;;;;;CC5Id,MAAM,KAAK,GAAGP,YAA2B,GAAA;CACzC,MAAM,SAAS,GAAG,CAAC,OAAO,EAAE,KAAK,EAAE,OAAO,KAAK;AAC/C,GAAE,IAAI;KACF,KAAK,GAAG,IAAI,KAAK,CAAC,KAAK,EAAE,OAAO,EAAC;IAClC,CAAC,OAAO,EAAE,EAAE;AACf,KAAI,OAAO,KAAK;IACb;AACH,GAAE,OAAO,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC;GAC3B;AACD,CAAA,WAAc,GAAG,UAAA;;;;;;;;;;CCTjB,MAAM,KAAK,GAAGA,YAA2B,GAAA;AACzC;AACA;AACA,CAAA,MAAM,aAAa,GAAG,CAAC,KAAK,EAAE,OAAO;GACnC,IAAI,KAAK,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,GAAG;MAC1B,GAAG,CAAC,IAAI,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,EAAC;AACpE;AACA,CAAA,eAAc,GAAG,cAAA;;;;;;;;;;CCPjB,MAAM,MAAM,GAAGA,eAA4B,GAAA;CAC3C,MAAM,KAAK,GAAGC,YAA2B,GAAA;AACzC;CACA,MAAM,aAAa,GAAG,CAAC,QAAQ,EAAE,KAAK,EAAE,OAAO,KAAK;GAClD,IAAI,GAAG,GAAG,KAAI;GACd,IAAI,KAAK,GAAG,KAAI;GAChB,IAAI,QAAQ,GAAG,KAAI;AACrB,GAAE,IAAI;KACF,QAAQ,GAAG,IAAI,KAAK,CAAC,KAAK,EAAE,OAAO,EAAC;IACrC,CAAC,OAAO,EAAE,EAAE;AACf,KAAI,OAAO,IAAI;IACZ;AACH,GAAE,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK;AAC1B,KAAI,IAAI,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE;AAC1B;AACA,OAAM,IAAI,CAAC,GAAG,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE;AAC3C;SACQ,GAAG,GAAG,EAAC;SACP,KAAK,GAAG,IAAI,MAAM,CAAC,GAAG,EAAE,OAAO,EAAC;QACjC;MACF;AACL,IAAG,EAAC;AACJ,GAAE,OAAO,GAAG;GACX;AACD,CAAA,eAAc,GAAG,cAAA;;;;;;;;;;CCxBjB,MAAM,MAAM,GAAGD,eAA4B,GAAA;CAC3C,MAAM,KAAK,GAAGC,YAA2B,GAAA;CACzC,MAAM,aAAa,GAAG,CAAC,QAAQ,EAAE,KAAK,EAAE,OAAO,KAAK;GAClD,IAAI,GAAG,GAAG,KAAI;GACd,IAAI,KAAK,GAAG,KAAI;GAChB,IAAI,QAAQ,GAAG,KAAI;AACrB,GAAE,IAAI;KACF,QAAQ,GAAG,IAAI,KAAK,CAAC,KAAK,EAAE,OAAO,EAAC;IACrC,CAAC,OAAO,EAAE,EAAE;AACf,KAAI,OAAO,IAAI;IACZ;AACH,GAAE,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK;AAC1B,KAAI,IAAI,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE;AAC1B;AACA,OAAM,IAAI,CAAC,GAAG,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE;AAC1C;SACQ,GAAG,GAAG,EAAC;SACP,KAAK,GAAG,IAAI,MAAM,CAAC,GAAG,EAAE,OAAO,EAAC;QACjC;MACF;AACL,IAAG,EAAC;AACJ,GAAE,OAAO,GAAG;GACX;AACD,CAAA,eAAc,GAAG,cAAA;;;;;;;;;;CCvBjB,MAAM,MAAM,GAAGD,eAA4B,GAAA;CAC3C,MAAM,KAAK,GAAGC,YAA2B,GAAA;CACzC,MAAM,EAAE,GAAGC,SAA0B,GAAA;AACrC;AACA,CAAA,MAAM,UAAU,GAAG,CAAC,KAAK,EAAE,KAAK,KAAK;GACnC,KAAK,GAAG,IAAI,KAAK,CAAC,KAAK,EAAE,KAAK,EAAC;AACjC;AACA,GAAE,IAAI,MAAM,GAAG,IAAI,MAAM,CAAC,OAAO,EAAC;AAClC,GAAE,IAAI,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE;AAC1B,KAAI,OAAO,MAAM;IACd;AACH;AACA,GAAE,MAAM,GAAG,IAAI,MAAM,CAAC,SAAS,EAAC;AAChC,GAAE,IAAI,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE;AAC1B,KAAI,OAAO,MAAM;IACd;AACH;GACE,MAAM,GAAG,KAAI;AACf,GAAE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE;KACzC,MAAM,WAAW,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,EAAC;AACpC;KACI,IAAI,MAAM,GAAG,KAAI;AACrB,KAAI,WAAW,CAAC,OAAO,CAAC,CAAC,UAAU,KAAK;AACxC;OACM,MAAM,OAAO,GAAG,IAAI,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,OAAO,EAAC;OACrD,QAAQ,UAAU,CAAC,QAAQ;AACjC,SAAQ,KAAK,GAAG;WACN,IAAI,OAAO,CAAC,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE;aACnC,OAAO,CAAC,KAAK,GAAE;AAC3B,YAAW,MAAM;AACjB,aAAY,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,EAAC;YAC3B;AACX,WAAU,OAAO,CAAC,GAAG,GAAG,OAAO,CAAC,MAAM,GAAE;AACxC;SACQ,KAAK,EAAE,CAAC;AAChB,SAAQ,KAAK,IAAI;WACP,IAAI,CAAC,MAAM,IAAI,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,EAAE;aAClC,MAAM,GAAG,QAAO;YACjB;AACX,WAAU,KAAK;SACP,KAAK,GAAG,CAAC;AACjB,SAAQ,KAAK,IAAI;AACjB;AACA,WAAU,KAAK;AACf;SACQ;AACR,WAAU,MAAM,IAAI,KAAK,CAAC,CAAC,sBAAsB,EAAE,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC;QAClE;AACP,MAAK,EAAC;AACN,KAAI,IAAI,MAAM,KAAK,CAAC,MAAM,IAAI,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,EAAE;OAC7C,MAAM,GAAG,OAAM;MAChB;IACF;AACH;GACE,IAAI,MAAM,IAAI,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE;AACpC,KAAI,OAAO,MAAM;IACd;AACH;AACA,GAAE,OAAO,IAAI;GACZ;AACD,CAAA,YAAc,GAAG,WAAA;;;;;;;;;;CC5DjB,MAAM,KAAK,GAAGF,YAA2B,GAAA;AACzC,CAAA,MAAM,UAAU,GAAG,CAAC,KAAK,EAAE,OAAO,KAAK;AACvC,GAAE,IAAI;AACN;AACA;KACI,OAAO,IAAI,KAAK,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,KAAK,IAAI,GAAG;IAC9C,CAAC,OAAO,EAAE,EAAE;AACf,KAAI,OAAO,IAAI;IACZ;GACF;AACD,CAAA,KAAc,GAAG,WAAA;;;;;;;;;;CCVjB,MAAM,MAAM,GAAGA,eAA4B,GAAA;CAC3C,MAAM,UAAU,GAAGC,iBAAgC,GAAA;AACnD,CAAA,MAAM,EAAE,GAAG,EAAE,GAAG,WAAU;CAC1B,MAAM,KAAK,GAAGC,YAA2B,GAAA;CACzC,MAAM,SAAS,GAAGI,gBAAiC,GAAA;CACnD,MAAM,EAAE,GAAGgB,SAA0B,GAAA;CACrC,MAAM,EAAE,GAAGf,SAA0B,GAAA;CACrC,MAAM,GAAG,GAAGC,UAA2B,GAAA;CACvC,MAAM,GAAG,GAAGC,UAA2B,GAAA;AACvC;CACA,MAAM,OAAO,GAAG,CAAC,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,KAAK;GACjD,OAAO,GAAG,IAAI,MAAM,CAAC,OAAO,EAAE,OAAO,EAAC;GACtC,KAAK,GAAG,IAAI,KAAK,CAAC,KAAK,EAAE,OAAO,EAAC;AACnC;GACE,IAAI,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,MAAK;AACpC,GAAE,QAAQ,IAAI;AACd,KAAI,KAAK,GAAG;OACN,IAAI,GAAG,GAAE;OACT,KAAK,GAAG,IAAG;OACX,IAAI,GAAG,GAAE;OACT,IAAI,GAAG,IAAG;OACV,KAAK,GAAG,KAAI;AAClB,OAAM,KAAK;AACX,KAAI,KAAK,GAAG;OACN,IAAI,GAAG,GAAE;OACT,KAAK,GAAG,IAAG;OACX,IAAI,GAAG,GAAE;OACT,IAAI,GAAG,IAAG;OACV,KAAK,GAAG,KAAI;AAClB,OAAM,KAAK;KACP;AACJ,OAAM,MAAM,IAAI,SAAS,CAAC,uCAAuC,CAAC;IAC/D;AACH;AACA;GACE,IAAI,SAAS,CAAC,OAAO,EAAE,KAAK,EAAE,OAAO,CAAC,EAAE;AAC1C,KAAI,OAAO,KAAK;IACb;AACH;AACA;AACA;AACA;AACA,GAAE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE;KACzC,MAAM,WAAW,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,EAAC;AACpC;KACI,IAAI,IAAI,GAAG,KAAI;KACf,IAAI,GAAG,GAAG,KAAI;AAClB;AACA,KAAI,WAAW,CAAC,OAAO,CAAC,CAAC,UAAU,KAAK;AACxC,OAAM,IAAI,UAAU,CAAC,MAAM,KAAK,GAAG,EAAE;AACrC,SAAQ,UAAU,GAAG,IAAI,UAAU,CAAC,SAAS,EAAC;QACvC;AACP,OAAM,IAAI,GAAG,IAAI,IAAI,WAAU;AAC/B,OAAM,GAAG,GAAG,GAAG,IAAI,WAAU;AAC7B,OAAM,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE;SACjD,IAAI,GAAG,WAAU;AACzB,QAAO,MAAM,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE;SACvD,GAAG,GAAG,WAAU;QACjB;AACP,MAAK,EAAC;AACN;AACA;AACA;AACA,KAAI,IAAI,IAAI,CAAC,QAAQ,KAAK,IAAI,IAAI,IAAI,CAAC,QAAQ,KAAK,KAAK,EAAE;AAC3D,OAAM,OAAO,KAAK;MACb;AACL;AACA;AACA;KACI,IAAI,CAAC,CAAC,GAAG,CAAC,QAAQ,IAAI,GAAG,CAAC,QAAQ,KAAK,IAAI;SACvC,KAAK,CAAC,OAAO,EAAE,GAAG,CAAC,MAAM,CAAC,EAAE;AACpC,OAAM,OAAO,KAAK;AAClB,MAAK,MAAM,IAAI,GAAG,CAAC,QAAQ,KAAK,KAAK,IAAI,IAAI,CAAC,OAAO,EAAE,GAAG,CAAC,MAAM,CAAC,EAAE;AACpE,OAAM,OAAO,KAAK;MACb;IACF;AACH,GAAE,OAAO,IAAI;GACZ;AACD;AACA,CAAA,SAAc,GAAG,QAAA;;;;;;;;;;AC/EjB;CACA,MAAM,OAAO,GAAGT,cAAoB,GAAA;AACpC,CAAA,MAAM,GAAG,GAAG,CAAC,OAAO,EAAE,KAAK,EAAE,OAAO,KAAK,OAAO,CAAC,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,OAAO,EAAC;AAC9E,CAAA,KAAc,GAAG,IAAA;;;;;;;;;;CCHjB,MAAM,OAAO,GAAGA,cAAoB,GAAA;AACpC;AACA,CAAA,MAAM,GAAG,GAAG,CAAC,OAAO,EAAE,KAAK,EAAE,OAAO,KAAK,OAAO,CAAC,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,OAAO,EAAC;AAC9E,CAAA,KAAc,GAAG,IAAA;;;;;;;;;;CCHjB,MAAM,KAAK,GAAGA,YAA2B,GAAA;CACzC,MAAM,UAAU,GAAG,CAAC,EAAE,EAAE,EAAE,EAAE,OAAO,KAAK;GACtC,EAAE,GAAG,IAAI,KAAK,CAAC,EAAE,EAAE,OAAO,EAAC;GAC3B,EAAE,GAAG,IAAI,KAAK,CAAC,EAAE,EAAE,OAAO,EAAC;GAC3B,OAAO,EAAE,CAAC,UAAU,CAAC,EAAE,EAAE,OAAO,CAAC;GAClC;AACD,CAAA,YAAc,GAAG,WAAA;;;;;;;;;;ACNjB;AACA;AACA;CACA,MAAM,SAAS,GAAGA,gBAAoC,GAAA;CACtD,MAAM,OAAO,GAAGC,cAAkC,GAAA;AAClD,CAAA,QAAc,GAAG,CAAC,QAAQ,EAAE,KAAK,EAAE,OAAO,KAAK;GAC7C,MAAM,GAAG,GAAG,GAAE;GACd,IAAI,KAAK,GAAG,KAAI;GAChB,IAAI,IAAI,GAAG,KAAI;GACf,MAAM,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC,EAAC;AAC3D,GAAE,KAAK,MAAM,OAAO,IAAI,CAAC,EAAE;KACvB,MAAM,QAAQ,GAAG,SAAS,CAAC,OAAO,EAAE,KAAK,EAAE,OAAO,EAAC;KACnD,IAAI,QAAQ,EAAE;OACZ,IAAI,GAAG,QAAO;OACd,IAAI,CAAC,KAAK,EAAE;SACV,KAAK,GAAG,QAAO;QAChB;AACP,MAAK,MAAM;OACL,IAAI,IAAI,EAAE;SACR,GAAG,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,IAAI,CAAC,EAAC;QACxB;OACD,IAAI,GAAG,KAAI;OACX,KAAK,GAAG,KAAI;MACb;IACF;GACD,IAAI,KAAK,EAAE;KACT,GAAG,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,IAAI,CAAC,EAAC;IACxB;AACH;GACE,MAAM,MAAM,GAAG,GAAE;GACjB,KAAK,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,GAAG,EAAE;AAChC,KAAI,IAAI,GAAG,KAAK,GAAG,EAAE;AACrB,OAAM,MAAM,CAAC,IAAI,CAAC,GAAG,EAAC;MACjB,MAAM,IAAI,CAAC,GAAG,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE;AACrC,OAAM,MAAM,CAAC,IAAI,CAAC,GAAG,EAAC;AACtB,MAAK,MAAM,IAAI,CAAC,GAAG,EAAE;OACf,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,EAAC;MACxB,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE;OACvB,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,EAAC;AAC7B,MAAK,MAAM;AACX,OAAM,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,EAAC;MAC/B;IACF;GACD,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,EAAC;AACxC,GAAE,MAAM,QAAQ,GAAG,OAAO,KAAK,CAAC,GAAG,KAAK,QAAQ,GAAG,KAAK,CAAC,GAAG,GAAG,MAAM,CAAC,KAAK,EAAC;GAC1E,OAAO,UAAU,CAAC,MAAM,GAAG,QAAQ,CAAC,MAAM,GAAG,UAAU,GAAG,KAAK;AACjE,GAAA;;;;;;;;;;CC9CA,MAAM,KAAK,GAAGD,YAA8B,GAAA;CAC5C,MAAM,UAAU,GAAGC,iBAAmC,GAAA;AACtD,CAAA,MAAM,EAAE,GAAG,EAAE,GAAG,WAAU;CAC1B,MAAM,SAAS,GAAGC,gBAAoC,GAAA;CACtD,MAAM,OAAO,GAAGI,cAAkC,GAAA;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;CACA,MAAM,MAAM,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,OAAO,GAAG,EAAE,KAAK;AAC3C,GAAE,IAAI,GAAG,KAAK,GAAG,EAAE;AACnB,KAAI,OAAO,IAAI;IACZ;AACH;GACE,GAAG,GAAG,IAAI,KAAK,CAAC,GAAG,EAAE,OAAO,EAAC;GAC7B,GAAG,GAAG,IAAI,KAAK,CAAC,GAAG,EAAE,OAAO,EAAC;GAC7B,IAAI,UAAU,GAAG,MAAK;AACxB;GACE,KAAK,EAAE,KAAK,MAAM,SAAS,IAAI,GAAG,CAAC,GAAG,EAAE;AAC1C,KAAI,KAAK,MAAM,SAAS,IAAI,GAAG,CAAC,GAAG,EAAE;OAC/B,MAAM,KAAK,GAAG,YAAY,CAAC,SAAS,EAAE,SAAS,EAAE,OAAO,EAAC;AAC/D,OAAM,UAAU,GAAG,UAAU,IAAI,KAAK,KAAK,KAAI;OACzC,IAAI,KAAK,EAAE;AACjB,SAAQ,SAAS,KAAK;QACf;MACF;AACL;AACA;AACA;AACA;KACI,IAAI,UAAU,EAAE;AACpB,OAAM,OAAO,KAAK;MACb;IACF;AACH,GAAE,OAAO,IAAI;GACZ;AACD;CACA,MAAM,4BAA4B,GAAG,CAAC,IAAI,UAAU,CAAC,WAAW,CAAC,EAAC;CAClE,MAAM,cAAc,GAAG,CAAC,IAAI,UAAU,CAAC,SAAS,CAAC,EAAC;AAClD;CACA,MAAM,YAAY,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,OAAO,KAAK;AAC5C,GAAE,IAAI,GAAG,KAAK,GAAG,EAAE;AACnB,KAAI,OAAO,IAAI;IACZ;AACH;AACA,GAAE,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,KAAK,GAAG,EAAE;AACjD,KAAI,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,KAAK,GAAG,EAAE;AACnD,OAAM,OAAO,IAAI;AACjB,MAAK,MAAM,IAAI,OAAO,CAAC,iBAAiB,EAAE;OACpC,GAAG,GAAG,6BAA4B;AACxC,MAAK,MAAM;OACL,GAAG,GAAG,eAAc;MACrB;IACF;AACH;AACA,GAAE,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,KAAK,GAAG,EAAE;AACjD,KAAI,IAAI,OAAO,CAAC,iBAAiB,EAAE;AACnC,OAAM,OAAO,IAAI;AACjB,MAAK,MAAM;OACL,GAAG,GAAG,eAAc;MACrB;IACF;AACH;AACA,GAAE,MAAM,KAAK,GAAG,IAAI,GAAG,GAAE;GACvB,IAAI,EAAE,EAAE,GAAE;AACZ,GAAE,KAAK,MAAM,CAAC,IAAI,GAAG,EAAE;AACvB,KAAI,IAAI,CAAC,CAAC,QAAQ,KAAK,GAAG,IAAI,CAAC,CAAC,QAAQ,KAAK,IAAI,EAAE;OAC7C,EAAE,GAAG,QAAQ,CAAC,EAAE,EAAE,CAAC,EAAE,OAAO,EAAC;AACnC,MAAK,MAAM,IAAI,CAAC,CAAC,QAAQ,KAAK,GAAG,IAAI,CAAC,CAAC,QAAQ,KAAK,IAAI,EAAE;OACpD,EAAE,GAAG,OAAO,CAAC,EAAE,EAAE,CAAC,EAAE,OAAO,EAAC;AAClC,MAAK,MAAM;AACX,OAAM,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,EAAC;MACpB;IACF;AACH;AACA,GAAE,IAAI,KAAK,CAAC,IAAI,GAAG,CAAC,EAAE;AACtB,KAAI,OAAO,IAAI;IACZ;AACH;AACA,GAAE,IAAI,SAAQ;AACd,GAAE,IAAI,EAAE,IAAI,EAAE,EAAE;AAChB,KAAI,QAAQ,GAAG,OAAO,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,EAAE,OAAO,EAAC;AACrD,KAAI,IAAI,QAAQ,GAAG,CAAC,EAAE;AACtB,OAAM,OAAO,IAAI;AACjB,MAAK,MAAM,IAAI,QAAQ,KAAK,CAAC,KAAK,EAAE,CAAC,QAAQ,KAAK,IAAI,IAAI,EAAE,CAAC,QAAQ,KAAK,IAAI,CAAC,EAAE;AACjF,OAAM,OAAO,IAAI;MACZ;IACF;AACH;AACA;AACA,GAAE,KAAK,MAAM,EAAE,IAAI,KAAK,EAAE;AAC1B,KAAI,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE,MAAM,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC,EAAE;AACnD,OAAM,OAAO,IAAI;MACZ;AACL;AACA,KAAI,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE,MAAM,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC,EAAE;AACnD,OAAM,OAAO,IAAI;MACZ;AACL;AACA,KAAI,KAAK,MAAM,CAAC,IAAI,GAAG,EAAE;AACzB,OAAM,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,EAAE;AAC9C,SAAQ,OAAO,KAAK;QACb;MACF;AACL;AACA,KAAI,OAAO,IAAI;IACZ;AACH;GACE,IAAI,MAAM,EAAE,MAAK;GACjB,IAAI,QAAQ,EAAE,SAAQ;AACxB;AACA;GACE,IAAI,YAAY,GAAG,EAAE;KACnB,CAAC,OAAO,CAAC,iBAAiB;AAC9B,KAAI,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,MAAM,GAAG,EAAE,CAAC,MAAM,GAAG,MAAK;GACjD,IAAI,YAAY,GAAG,EAAE;KACnB,CAAC,OAAO,CAAC,iBAAiB;AAC9B,KAAI,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,MAAM,GAAG,EAAE,CAAC,MAAM,GAAG,MAAK;AACnD;GACE,IAAI,YAAY,IAAI,YAAY,CAAC,UAAU,CAAC,MAAM,KAAK,CAAC;AAC1D,OAAM,EAAE,CAAC,QAAQ,KAAK,GAAG,IAAI,YAAY,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE;KAC3D,YAAY,GAAG,MAAK;IACrB;AACH;AACA,GAAE,KAAK,MAAM,CAAC,IAAI,GAAG,EAAE;AACvB,KAAI,QAAQ,GAAG,QAAQ,IAAI,CAAC,CAAC,QAAQ,KAAK,GAAG,IAAI,CAAC,CAAC,QAAQ,KAAK,KAAI;AACpE,KAAI,QAAQ,GAAG,QAAQ,IAAI,CAAC,CAAC,QAAQ,KAAK,GAAG,IAAI,CAAC,CAAC,QAAQ,KAAK,KAAI;KAChE,IAAI,EAAE,EAAE;OACN,IAAI,YAAY,EAAE;AACxB,SAAQ,IAAI,CAAC,CAAC,MAAM,CAAC,UAAU,IAAI,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,MAAM;aACjD,CAAC,CAAC,MAAM,CAAC,KAAK,KAAK,YAAY,CAAC,KAAK;aACrC,CAAC,CAAC,MAAM,CAAC,KAAK,KAAK,YAAY,CAAC,KAAK;aACrC,CAAC,CAAC,MAAM,CAAC,KAAK,KAAK,YAAY,CAAC,KAAK,EAAE;WACzC,YAAY,GAAG,MAAK;UACrB;QACF;AACP,OAAM,IAAI,CAAC,CAAC,QAAQ,KAAK,GAAG,IAAI,CAAC,CAAC,QAAQ,KAAK,IAAI,EAAE;SAC7C,MAAM,GAAG,QAAQ,CAAC,EAAE,EAAE,CAAC,EAAE,OAAO,EAAC;SACjC,IAAI,MAAM,KAAK,CAAC,IAAI,MAAM,KAAK,EAAE,EAAE;AAC3C,WAAU,OAAO,KAAK;UACb;QACF,MAAM,IAAI,EAAE,CAAC,QAAQ,KAAK,IAAI,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,EAAE;AACpF,SAAQ,OAAO,KAAK;QACb;MACF;KACD,IAAI,EAAE,EAAE;OACN,IAAI,YAAY,EAAE;AACxB,SAAQ,IAAI,CAAC,CAAC,MAAM,CAAC,UAAU,IAAI,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,MAAM;aACjD,CAAC,CAAC,MAAM,CAAC,KAAK,KAAK,YAAY,CAAC,KAAK;aACrC,CAAC,CAAC,MAAM,CAAC,KAAK,KAAK,YAAY,CAAC,KAAK;aACrC,CAAC,CAAC,MAAM,CAAC,KAAK,KAAK,YAAY,CAAC,KAAK,EAAE;WACzC,YAAY,GAAG,MAAK;UACrB;QACF;AACP,OAAM,IAAI,CAAC,CAAC,QAAQ,KAAK,GAAG,IAAI,CAAC,CAAC,QAAQ,KAAK,IAAI,EAAE;SAC7C,KAAK,GAAG,OAAO,CAAC,EAAE,EAAE,CAAC,EAAE,OAAO,EAAC;SAC/B,IAAI,KAAK,KAAK,CAAC,IAAI,KAAK,KAAK,EAAE,EAAE;AACzC,WAAU,OAAO,KAAK;UACb;QACF,MAAM,IAAI,EAAE,CAAC,QAAQ,KAAK,IAAI,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,EAAE;AACpF,SAAQ,OAAO,KAAK;QACb;MACF;AACL,KAAI,IAAI,CAAC,CAAC,CAAC,QAAQ,KAAK,EAAE,IAAI,EAAE,CAAC,IAAI,QAAQ,KAAK,CAAC,EAAE;AACrD,OAAM,OAAO,KAAK;MACb;IACF;AACH;AACA;AACA;AACA;GACE,IAAI,EAAE,IAAI,QAAQ,IAAI,CAAC,EAAE,IAAI,QAAQ,KAAK,CAAC,EAAE;AAC/C,KAAI,OAAO,KAAK;IACb;AACH;GACE,IAAI,EAAE,IAAI,QAAQ,IAAI,CAAC,EAAE,IAAI,QAAQ,KAAK,CAAC,EAAE;AAC/C,KAAI,OAAO,KAAK;IACb;AACH;AACA;AACA;AACA;AACA,GAAE,IAAI,YAAY,IAAI,YAAY,EAAE;AACpC,KAAI,OAAO,KAAK;IACb;AACH;AACA,GAAE,OAAO,IAAI;GACZ;AACD;AACA;CACA,MAAM,QAAQ,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,OAAO,KAAK;GAClC,IAAI,CAAC,CAAC,EAAE;AACV,KAAI,OAAO,CAAC;IACT;AACH,GAAE,MAAM,IAAI,GAAG,OAAO,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,OAAO,EAAC;AACnD,GAAE,OAAO,IAAI,GAAG,CAAC,GAAG,CAAC;AACrB,OAAM,IAAI,GAAG,CAAC,GAAG,CAAC;AAClB,OAAM,CAAC,CAAC,QAAQ,KAAK,GAAG,IAAI,CAAC,CAAC,QAAQ,KAAK,IAAI,GAAG,CAAC;AACnD,OAAM,CAAC;GACN;AACD;AACA;CACA,MAAM,OAAO,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,OAAO,KAAK;GACjC,IAAI,CAAC,CAAC,EAAE;AACV,KAAI,OAAO,CAAC;IACT;AACH,GAAE,MAAM,IAAI,GAAG,OAAO,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,OAAO,EAAC;AACnD,GAAE,OAAO,IAAI,GAAG,CAAC,GAAG,CAAC;AACrB,OAAM,IAAI,GAAG,CAAC,GAAG,CAAC;AAClB,OAAM,CAAC,CAAC,QAAQ,KAAK,GAAG,IAAI,CAAC,CAAC,QAAQ,KAAK,IAAI,GAAG,CAAC;AACnD,OAAM,CAAC;GACN;AACD;AACA,CAAA,QAAc,GAAG,OAAA;;;;;;;;;;ACtPjB;CACA,MAAM,UAAU,GAAGN,SAAwB,GAAA;CAC3C,MAAM,SAAS,GAAGC,gBAA+B,GAAA;CACjD,MAAM,MAAM,GAAGC,eAA2B,GAAA;CAC1C,MAAM,WAAW,GAAGI,kBAAiC,GAAA;CACrD,MAAM,KAAK,GAAGgB,YAA4B,GAAA;CAC1C,MAAM,KAAK,GAAGf,cAA4B,GAAA;CAC1C,MAAM,KAAK,GAAGC,YAA4B,GAAA;CAC1C,MAAM,GAAG,GAAGC,UAA0B,GAAA;CACtC,MAAM,IAAI,GAAGC,WAA2B,GAAA;CACxC,MAAM,KAAK,GAAGC,YAA4B,GAAA;CAC1C,MAAM,KAAK,GAAGC,YAA4B,GAAA;CAC1C,MAAM,KAAK,GAAG2B,YAA4B,GAAA;CAC1C,MAAM,UAAU,GAAGC,iBAAiC,GAAA;CACpD,MAAM,OAAO,GAAGC,cAA8B,GAAA;CAC9C,MAAM,QAAQ,GAAGC,eAA+B,GAAA;CAChD,MAAM,YAAY,GAAGC,mBAAoC,GAAA;CACzD,MAAM,YAAY,GAAGC,mBAAoC,GAAA;CACzD,MAAM,IAAI,GAAGC,WAA2B,GAAA;CACxC,MAAM,KAAK,GAAGC,YAA4B,GAAA;CAC1C,MAAM,EAAE,GAAGC,SAAyB,GAAA;CACpC,MAAM,EAAE,GAAGC,SAAyB,GAAA;CACpC,MAAM,EAAE,GAAGC,SAAyB,GAAA;CACpC,MAAM,GAAG,GAAGC,UAA0B,GAAA;CACtC,MAAM,GAAG,GAAGC,UAA0B,GAAA;CACtC,MAAM,GAAG,GAAGC,UAA0B,GAAA;CACtC,MAAM,GAAG,GAAGC,UAA0B,GAAA;CACtC,MAAM,MAAM,GAAGC,aAA6B,GAAA;CAC5C,MAAM,UAAU,GAAGC,iBAA+B,GAAA;CAClD,MAAM,KAAK,GAAGC,YAA0B,GAAA;CACxC,MAAM,SAAS,GAAGC,gBAAgC,GAAA;CAClD,MAAM,aAAa,GAAGC,oBAAkC,GAAA;CACxD,MAAM,aAAa,GAAGC,oBAAkC,GAAA;CACxD,MAAM,aAAa,GAAGC,oBAAkC,GAAA;CACxD,MAAM,UAAU,GAAGC,iBAA+B,GAAA;CAClD,MAAM,UAAU,GAAGC,YAAyB,GAAA;CAC5C,MAAM,OAAO,GAAGC,cAA2B,GAAA;CAC3C,MAAM,GAAG,GAAGC,UAAuB,GAAA;CACnC,MAAM,GAAG,GAAGC,UAAuB,GAAA;CACnC,MAAM,UAAU,GAAGC,iBAA8B,GAAA;CACjD,MAAM,aAAa,GAAGC,eAA4B,GAAA;CAClD,MAAM,MAAM,GAAGC,aAA0B,GAAA;AACzC,CAAA,MAAc,GAAG;AACjB,GAAE,KAAK;AACP,GAAE,KAAK;AACP,GAAE,KAAK;AACP,GAAE,GAAG;AACL,GAAE,IAAI;AACN,GAAE,KAAK;AACP,GAAE,KAAK;AACP,GAAE,KAAK;AACP,GAAE,UAAU;AACZ,GAAE,OAAO;AACT,GAAE,QAAQ;AACV,GAAE,YAAY;AACd,GAAE,YAAY;AACd,GAAE,IAAI;AACN,GAAE,KAAK;AACP,GAAE,EAAE;AACJ,GAAE,EAAE;AACJ,GAAE,EAAE;AACJ,GAAE,GAAG;AACL,GAAE,GAAG;AACL,GAAE,GAAG;AACL,GAAE,GAAG;AACL,GAAE,MAAM;AACR,GAAE,UAAU;AACZ,GAAE,KAAK;AACP,GAAE,SAAS;AACX,GAAE,aAAa;AACf,GAAE,aAAa;AACf,GAAE,aAAa;AACf,GAAE,UAAU;AACZ,GAAE,UAAU;AACZ,GAAE,OAAO;AACT,GAAE,GAAG;AACL,GAAE,GAAG;AACL,GAAE,UAAU;AACZ,GAAE,aAAa;AACf,GAAE,MAAM;AACR,GAAE,MAAM;AACR,GAAE,EAAE,EAAE,UAAU,CAAC,EAAE;AACnB,GAAE,GAAG,EAAE,UAAU,CAAC,GAAG;AACrB,GAAE,MAAM,EAAE,UAAU,CAAC,CAAC;AACtB,GAAE,mBAAmB,EAAE,SAAS,CAAC,mBAAmB;AACpD,GAAE,aAAa,EAAE,SAAS,CAAC,aAAa;AACxC,GAAE,kBAAkB,EAAE,WAAW,CAAC,kBAAkB;AACpD,GAAE,mBAAmB,EAAE,WAAW,CAAC,mBAAmB;AACtD,GAAA;;;;;;;;;;CCxFA,MAAM,MAAM,GAAGpE,aAAA,EAAiB,CAAC;AACjC;AACA,CAAc,6BAAA,GAAG,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,OAAO,EAAE,UAAU,CAAC,CAAA;;;;;;;;;;CCF9D,MAAM,MAAM,GAAGA,aAAA,EAAiB,CAAC;AACjC;AACA,CAAc,yBAAA,GAAG,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,OAAO,EAAE,UAAU,CAAC,CAAA;;;;;;;;;;CCF9D,MAAM,gCAAgC,GAAGA,oCAAA,EAA0C,CAAC;CACpF,MAAM,6BAA6B,GAAGC,gCAAA,EAAsC,CAAC;AAC7E;AACA,CAAA,MAAM,wBAAwB,GAAG;GAC/B,IAAI,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC;AACnC,GAAE,KAAK,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC;GAC7D,SAAS,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC;AACxC,EAAC,CAAC;AACF;AACA,CAAA,MAAM,aAAa,GAAG;GACpB,KAAK,EAAE,YAAY;GACnB,KAAK,EAAE,WAAW;GAClB,KAAK,EAAE,WAAW;AACpB,EAAC,CAAC;AACF;AACA,CAAA,qBAAc,GAAG,SAAS,SAAS,EAAE,GAAG,EAAE;AAC1C,GAAE,IAAI,CAAC,SAAS,IAAI,CAAC,GAAG,EAAE,OAAO;AACjC;AACA,GAAE,MAAM,OAAO,GAAG,GAAG,CAAC,iBAAiB,CAAC;AACxC,GAAE,IAAI,CAAC,OAAO,EAAE,OAAO;AACvB;AACA,GAAE,MAAM,iBAAiB,GAAG,wBAAwB,CAAC,OAAO,CAAC,CAAC;AAC9D;GACE,IAAI,CAAC,iBAAiB,EAAE;AAC1B,KAAI,MAAM,IAAI,KAAK,CAAC,CAAC,kBAAkB,EAAE,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC;IACnD;AACH;GACE,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE;KAC1C,MAAM,IAAI,KAAK,CAAC,CAAC,qBAAqB,EAAE,OAAO,CAAC,2BAA2B,EAAE,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;IAC9G;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;GACE,IAAI,gCAAgC,EAAE;AACxC,KAAI,QAAQ,OAAO;AACnB,KAAI,KAAK,IAAI;OACP,MAAM,QAAQ,GAAG,GAAG,CAAC,oBAAoB,CAAC,UAAU,CAAC;AAC3D,OAAM,MAAM,YAAY,GAAG,aAAa,CAAC,SAAS,CAAC,CAAC;AACpD;AACA,OAAM,IAAI,QAAQ,KAAK,YAAY,EAAE;AACrC,SAAQ,MAAM,IAAI,KAAK,CAAC,CAAC,iBAAiB,EAAE,SAAS,CAAC,kBAAkB,EAAE,YAAY,CAAC,EAAE,CAAC,CAAC,CAAC;QACrF;AACP,OAAM,MAAM;AACZ;AACA,KAAI,KAAK,SAAS;OACZ,IAAI,6BAA6B,EAAE;AACzC,SAAQ,MAAM,MAAM,GAAG,QAAQ,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;AACzD,SAAQ,MAAM,EAAE,aAAa,EAAE,iBAAiB,EAAE,UAAU,EAAE,GAAG,GAAG,CAAC,oBAAoB,CAAC;AAC1F;AACA,SAAQ,IAAI,aAAa,KAAK,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,IAAI,iBAAiB,KAAK,aAAa,EAAE;AACrF,WAAU,MAAM,IAAI,KAAK,CAAC,CAAC,6FAA6F,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;UAC/H;AACT;SACQ,IAAI,UAAU,KAAK,SAAS,IAAI,UAAU,GAAG,MAAM,IAAI,CAAC,EAAE;WACxD,MAAM,IAAI,KAAK,CAAC,CAAC,yGAAyG,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC;UAC1I;QACF;AACP,OAAM,MAAM;MACP;IACF;AACH,GAAA;;;;;;;;;;CCjEA,IAAI,MAAM,GAAGD,aAAA,EAAiB,CAAC;AAC/B;AACA,CAAc,WAAA,GAAG,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,OAAO,EAAE,oBAAoB,CAAC,CAAA;;;;;;;;;;CCFxE,MAAM,iBAAiB,GAAGA,wBAAA,EAAkC,CAAC;CAC7D,MAAM,cAAc,GAAGC,qBAAA,EAA+B,CAAC;CACvD,MAAM,iBAAiB,GAAGC,wBAAA,EAAkC,CAAC;CAC7D,MAAM,MAAM,GAAGI,aAAA,EAAmB,CAAC;CACnC,MAAM,QAAQ,GAAGgB,eAAA,EAAyB,CAAC;CAC3C,MAAM,qBAAqB,GAAGf,4BAAA,EAAsC,CAAC;CACrE,MAAM,YAAY,GAAGC,kBAAA,EAA4B,CAAC;CAClD,MAAM,GAAG,GAAGC,UAAA,EAAc,CAAC;CAC3B,MAAM,CAAC,SAAS,EAAE,eAAe,EAAE,eAAe,CAAC,GAAGC,YAAiB,CAAC;AACxE;CACA,MAAM,YAAY,GAAG,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;CACjD,MAAM,WAAW,GAAG,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;CAChD,MAAM,YAAY,GAAG,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;CACjD,MAAM,OAAO,GAAG,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;AAC5C;AACA,CAAA,IAAI,YAAY,EAAE;AAClB,GAAE,YAAY,CAAC,MAAM,CAAC,YAAY,CAAC,MAAM,EAAE,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;AACzE,GAAE,YAAY,CAAC,MAAM,CAAC,YAAY,CAAC,MAAM,EAAE,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;EACxE;AACD;AACA,CAAc,MAAA,GAAG,UAAU,SAAS,EAAE,iBAAiB,EAAE,OAAO,EAAE,QAAQ,EAAE;GAC1E,IAAI,CAAC,OAAO,OAAO,KAAK,UAAU,KAAK,CAAC,QAAQ,EAAE;KAChD,QAAQ,GAAG,OAAO,CAAC;KACnB,OAAO,GAAG,EAAE,CAAC;IACd;AACH;GACE,IAAI,CAAC,OAAO,EAAE;KACZ,OAAO,GAAG,EAAE,CAAC;IACd;AACH;AACA;GACE,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;AACvC;GACE,IAAI,IAAI,CAAC;AACX;GACE,IAAI,QAAQ,EAAE;KACZ,IAAI,GAAG,QAAQ,CAAC;AACpB,IAAG,MAAM;AACT,KAAI,IAAI,GAAG,SAAS,GAAG,EAAE,IAAI,EAAE;AAC/B,OAAM,IAAI,GAAG,EAAE,MAAM,GAAG,CAAC;OACnB,OAAO,IAAI,CAAC;AAClB,MAAK,CAAC;IACH;AACH;GACE,IAAI,OAAO,CAAC,cAAc,IAAI,OAAO,OAAO,CAAC,cAAc,KAAK,QAAQ,EAAE;KACxE,OAAO,IAAI,CAAC,IAAI,iBAAiB,CAAC,iCAAiC,CAAC,CAAC,CAAC;IACvE;AACH;GACE,IAAI,OAAO,CAAC,KAAK,KAAK,SAAS,KAAK,OAAO,OAAO,CAAC,KAAK,KAAK,QAAQ,IAAI,OAAO,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,EAAE;KACrG,OAAO,IAAI,CAAC,IAAI,iBAAiB,CAAC,kCAAkC,CAAC,CAAC,CAAC;IACxE;AACH;AACA,GAAE,IAAI,OAAO,CAAC,8BAA8B,KAAK,SAAS,IAAI,OAAO,OAAO,CAAC,8BAA8B,KAAK,SAAS,EAAE;KACvH,OAAO,IAAI,CAAC,IAAI,iBAAiB,CAAC,kDAAkD,CAAC,CAAC,CAAC;IACxF;AACH;AACA,GAAE,MAAM,cAAc,GAAG,OAAO,CAAC,cAAc,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC;AACjF;GACE,IAAI,CAAC,SAAS,CAAC;KACb,OAAO,IAAI,CAAC,IAAI,iBAAiB,CAAC,sBAAsB,CAAC,CAAC,CAAC;IAC5D;AACH;AACA,GAAE,IAAI,OAAO,SAAS,KAAK,QAAQ,EAAE;KACjC,OAAO,IAAI,CAAC,IAAI,iBAAiB,CAAC,sBAAsB,CAAC,CAAC,CAAC;IAC5D;AACH;GACE,MAAM,KAAK,GAAG,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AACrC;AACA,GAAE,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,CAAC;KACrB,OAAO,IAAI,CAAC,IAAI,iBAAiB,CAAC,eAAe,CAAC,CAAC,CAAC;IACrD;AACH;GACE,IAAI,YAAY,CAAC;AACnB;AACA,GAAE,IAAI;AACN,KAAI,YAAY,GAAG,MAAM,CAAC,SAAS,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;IACtD,CAAC,MAAM,GAAG,EAAE;AACf,KAAI,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC;IAClB;AACH;GACE,IAAI,CAAC,YAAY,EAAE;KACjB,OAAO,IAAI,CAAC,IAAI,iBAAiB,CAAC,eAAe,CAAC,CAAC,CAAC;IACrD;AACH;AACA,GAAE,MAAM,MAAM,GAAG,YAAY,CAAC,MAAM,CAAC;GACnC,IAAI,SAAS,CAAC;AAChB;AACA,GAAE,GAAG,OAAO,iBAAiB,KAAK,UAAU,EAAE;KAC1C,GAAG,CAAC,QAAQ,EAAE;OACZ,OAAO,IAAI,CAAC,IAAI,iBAAiB,CAAC,sFAAsF,CAAC,CAAC,CAAC;MAC5H;AACL;KACI,SAAS,GAAG,iBAAiB,CAAC;IAC/B;QACI;AACP,KAAI,SAAS,GAAG,SAAS,MAAM,EAAE,cAAc,EAAE;AACjD,OAAM,OAAO,cAAc,CAAC,IAAI,EAAE,iBAAiB,CAAC,CAAC;AACrD,MAAK,CAAC;IACH;AACH;GACE,OAAO,SAAS,CAAC,MAAM,EAAE,SAAS,GAAG,EAAE,iBAAiB,EAAE;KACxD,GAAG,GAAG,EAAE;AACZ,OAAM,OAAO,IAAI,CAAC,IAAI,iBAAiB,CAAC,0CAA0C,GAAG,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC;MAC9F;AACL;AACA,KAAI,MAAM,YAAY,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC;AAChD;AACA,KAAI,IAAI,CAAC,YAAY,IAAI,iBAAiB,CAAC;OACrC,OAAO,IAAI,CAAC,IAAI,iBAAiB,CAAC,2BAA2B,CAAC,CAAC,CAAC;MACjE;AACL;AACA,KAAI,IAAI,YAAY,IAAI,CAAC,iBAAiB,EAAE;OACtC,OAAO,IAAI,CAAC,IAAI,iBAAiB,CAAC,uCAAuC,CAAC,CAAC,CAAC;MAC7E;AACL;KACI,IAAI,CAAC,YAAY,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE;OACxC,OAAO,IAAI,CAAC,IAAI,iBAAiB,CAAC,iEAAiE,CAAC,CAAC,CAAC;MACvG;AACL;KACI,IAAI,iBAAiB,IAAI,IAAI,IAAI,EAAE,iBAAiB,YAAY,SAAS,CAAC,EAAE;AAChF,OAAM,IAAI;AACV,SAAQ,iBAAiB,GAAG,eAAe,CAAC,iBAAiB,CAAC,CAAC;QACxD,CAAC,OAAO,CAAC,EAAE;AAClB,SAAQ,IAAI;AACZ,WAAU,iBAAiB,GAAG,eAAe,CAAC,OAAO,iBAAiB,KAAK,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC,GAAG,iBAAiB,CAAC,CAAC;UACjI,CAAC,OAAO,CAAC,EAAE;WACV,OAAO,IAAI,CAAC,IAAI,iBAAiB,CAAC,6CAA6C,CAAC,CAAC;UAClF;QACF;MACF;AACL;AACA,KAAI,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE;AAC7B,OAAM,IAAI,iBAAiB,CAAC,IAAI,KAAK,QAAQ,EAAE;AAC/C,SAAQ,OAAO,CAAC,UAAU,GAAG,OAAO,CAAC;AACrC,QAAO,MAAM,IAAI,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC,QAAQ,CAAC,iBAAiB,CAAC,iBAAiB,CAAC,EAAE;AACnF,SAAQ,OAAO,CAAC,UAAU,GAAG,aAAY;AACzC,QAAO,MAAM,IAAI,iBAAiB,CAAC,iBAAiB,KAAK,IAAI,EAAE;AAC/D,SAAQ,OAAO,CAAC,UAAU,GAAG,YAAW;AACxC,QAAO,MAAM;AACb,SAAQ,OAAO,CAAC,UAAU,GAAG,aAAY;QAClC;MACF;AACL;AACA,KAAI,IAAI,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,YAAY,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE;OAC9D,OAAO,IAAI,CAAC,IAAI,iBAAiB,CAAC,mBAAmB,CAAC,CAAC,CAAC;MACzD;AACL;AACA,KAAI,IAAI,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,iBAAiB,CAAC,IAAI,KAAK,QAAQ,EAAE;AAC5E,OAAM,OAAO,IAAI,CAAC,IAAI,iBAAiB,EAAE,CAAC,qDAAqD,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;AAChH,MAAK,MAAM,IAAI,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,iBAAiB,CAAC,IAAI,KAAK,QAAQ,EAAE;AACxF,OAAM,OAAO,IAAI,CAAC,IAAI,iBAAiB,EAAE,CAAC,uDAAuD,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;MAC7G;AACL;AACA,KAAI,IAAI,CAAC,OAAO,CAAC,8BAA8B,EAAE;AACjD,OAAM,IAAI;SACF,qBAAqB,CAAC,MAAM,CAAC,GAAG,EAAE,iBAAiB,CAAC,CAAC;QACtD,CAAC,OAAO,CAAC,EAAE;AAClB,SAAQ,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC;QAChB;MACF;AACL;KACI,IAAI,KAAK,CAAC;AACd;AACA,KAAI,IAAI;AACR,OAAM,KAAK,GAAG,GAAG,CAAC,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,MAAM,CAAC,GAAG,EAAE,iBAAiB,CAAC,CAAC;MAC3E,CAAC,OAAO,CAAC,EAAE;AAChB,OAAM,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC;MAChB;AACL;KACI,IAAI,CAAC,KAAK,EAAE;OACV,OAAO,IAAI,CAAC,IAAI,iBAAiB,CAAC,mBAAmB,CAAC,CAAC,CAAC;MACzD;AACL;AACA,KAAI,MAAM,OAAO,GAAG,YAAY,CAAC,OAAO,CAAC;AACzC;AACA,KAAI,IAAI,OAAO,OAAO,CAAC,GAAG,KAAK,WAAW,IAAI,CAAC,OAAO,CAAC,eAAe,EAAE;AACxE,OAAM,IAAI,OAAO,OAAO,CAAC,GAAG,KAAK,QAAQ,EAAE;SACnC,OAAO,IAAI,CAAC,IAAI,iBAAiB,CAAC,mBAAmB,CAAC,CAAC,CAAC;QACzD;AACP,OAAM,IAAI,OAAO,CAAC,GAAG,GAAG,cAAc,IAAI,OAAO,CAAC,cAAc,IAAI,CAAC,CAAC,EAAE;AACxE,SAAQ,OAAO,IAAI,CAAC,IAAI,cAAc,CAAC,gBAAgB,EAAE,IAAI,IAAI,CAAC,OAAO,CAAC,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;QACjF;MACF;AACL;AACA,KAAI,IAAI,OAAO,OAAO,CAAC,GAAG,KAAK,WAAW,IAAI,CAAC,OAAO,CAAC,gBAAgB,EAAE;AACzE,OAAM,IAAI,OAAO,OAAO,CAAC,GAAG,KAAK,QAAQ,EAAE;SACnC,OAAO,IAAI,CAAC,IAAI,iBAAiB,CAAC,mBAAmB,CAAC,CAAC,CAAC;QACzD;AACP,OAAM,IAAI,cAAc,IAAI,OAAO,CAAC,GAAG,IAAI,OAAO,CAAC,cAAc,IAAI,CAAC,CAAC,EAAE;AACzE,SAAQ,OAAO,IAAI,CAAC,IAAI,iBAAiB,CAAC,aAAa,EAAE,IAAI,IAAI,CAAC,OAAO,CAAC,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;QACjF;MACF;AACL;AACA,KAAI,IAAI,OAAO,CAAC,QAAQ,EAAE;OACpB,MAAM,SAAS,GAAG,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,OAAO,CAAC,QAAQ,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;OAC1F,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;AAC9E;OACM,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,UAAU,cAAc,EAAE;AAC1D,SAAQ,OAAO,SAAS,CAAC,IAAI,CAAC,UAAU,QAAQ,EAAE;AAClD,WAAU,OAAO,QAAQ,YAAY,MAAM,GAAG,QAAQ,CAAC,IAAI,CAAC,cAAc,CAAC,GAAG,QAAQ,KAAK,cAAc,CAAC;AAC1G,UAAS,CAAC,CAAC;AACX,QAAO,CAAC,CAAC;AACT;OACM,IAAI,CAAC,KAAK,EAAE;AAClB,SAAQ,OAAO,IAAI,CAAC,IAAI,iBAAiB,CAAC,kCAAkC,GAAG,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QACjG;MACF;AACL;AACA,KAAI,IAAI,OAAO,CAAC,MAAM,EAAE;AACxB,OAAM,MAAM,cAAc;AAC1B,eAAc,CAAC,OAAO,OAAO,CAAC,MAAM,KAAK,QAAQ,IAAI,OAAO,CAAC,GAAG,KAAK,OAAO,CAAC,MAAM;gBACpE,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAC5F;OACM,IAAI,cAAc,EAAE;AAC1B,SAAQ,OAAO,IAAI,CAAC,IAAI,iBAAiB,CAAC,gCAAgC,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;QACvF;MACF;AACL;AACA,KAAI,IAAI,OAAO,CAAC,OAAO,EAAE;OACnB,IAAI,OAAO,CAAC,GAAG,KAAK,OAAO,CAAC,OAAO,EAAE;AAC3C,SAAQ,OAAO,IAAI,CAAC,IAAI,iBAAiB,CAAC,iCAAiC,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;QACzF;MACF;AACL;AACA,KAAI,IAAI,OAAO,CAAC,KAAK,EAAE;OACjB,IAAI,OAAO,CAAC,GAAG,KAAK,OAAO,CAAC,KAAK,EAAE;AACzC,SAAQ,OAAO,IAAI,CAAC,IAAI,iBAAiB,CAAC,+BAA+B,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;QACrF;MACF;AACL;AACA,KAAI,IAAI,OAAO,CAAC,KAAK,EAAE;OACjB,IAAI,OAAO,CAAC,KAAK,KAAK,OAAO,CAAC,KAAK,EAAE;AAC3C,SAAQ,OAAO,IAAI,CAAC,IAAI,iBAAiB,CAAC,+BAA+B,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;QACrF;MACF;AACL;AACA,KAAI,IAAI,OAAO,CAAC,MAAM,EAAE;AACxB,OAAM,IAAI,OAAO,OAAO,CAAC,GAAG,KAAK,QAAQ,EAAE;SACnC,OAAO,IAAI,CAAC,IAAI,iBAAiB,CAAC,uCAAuC,CAAC,CAAC,CAAC;QAC7E;AACP;AACA,OAAM,MAAM,eAAe,GAAG,QAAQ,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC;AACpE,OAAM,IAAI,OAAO,eAAe,KAAK,WAAW,EAAE;SAC1C,OAAO,IAAI,CAAC,IAAI,iBAAiB,CAAC,8FAA8F,CAAC,CAAC,CAAC;QACpI;OACD,IAAI,cAAc,IAAI,eAAe,IAAI,OAAO,CAAC,cAAc,IAAI,CAAC,CAAC,EAAE;AAC7E,SAAQ,OAAO,IAAI,CAAC,IAAI,iBAAiB,CAAC,iBAAiB,EAAE,IAAI,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;QACzF;MACF;AACL;AACA,KAAI,IAAI,OAAO,CAAC,QAAQ,KAAK,IAAI,EAAE;AACnC,OAAM,MAAM,SAAS,GAAG,YAAY,CAAC,SAAS,CAAC;AAC/C;AACA,OAAM,OAAO,IAAI,CAAC,IAAI,EAAE;SAChB,MAAM,EAAE,MAAM;SACd,OAAO,EAAE,OAAO;SAChB,SAAS,EAAE,SAAS;AAC5B,QAAO,CAAC,CAAC;MACJ;AACL;AACA,KAAI,OAAO,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;AAC/B,IAAG,CAAC,CAAC;EACJ,CAAA;;;;;;;;;;;;;;;;;;;AC7PD;AACA,CAAA,IAAI,QAAQ,GAAG,CAAC,GAAG,CAAC;KAChB,gBAAgB,GAAG,gBAAgB;KACnC,WAAW,GAAG,uBAAuB;AACzC,KAAI,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC;AAChB;AACA;CACA,IAAI,OAAO,GAAG,oBAAoB;KAC9B,OAAO,GAAG,mBAAmB;KAC7B,MAAM,GAAG,4BAA4B;KACrC,SAAS,GAAG,iBAAiB;KAC7B,SAAS,GAAG,iBAAiB,CAAC;AAClC;AACA;CACA,IAAI,MAAM,GAAG,YAAY,CAAC;AAC1B;AACA;CACA,IAAI,UAAU,GAAG,oBAAoB,CAAC;AACtC;AACA;CACA,IAAI,UAAU,GAAG,YAAY,CAAC;AAC9B;AACA;CACA,IAAI,SAAS,GAAG,aAAa,CAAC;AAC9B;AACA;CACA,IAAI,QAAQ,GAAG,kBAAkB,CAAC;AAClC;AACA;CACA,IAAI,YAAY,GAAG,QAAQ,CAAC;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAA,SAAS,QAAQ,CAAC,KAAK,EAAE,QAAQ,EAAE;AACnC,GAAE,IAAI,KAAK,GAAG,CAAC,CAAC;OACV,MAAM,GAAG,KAAK,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC;AACvC,OAAM,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC;AAC7B;AACA,GAAE,OAAO,EAAE,KAAK,GAAG,MAAM,EAAE;AAC3B,KAAI,MAAM,CAAC,KAAK,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;IACtD;GACD,OAAO,MAAM,CAAC;EACf;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;CACA,SAAS,aAAa,CAAC,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE;AAC/D,GAAE,IAAI,MAAM,GAAG,KAAK,CAAC,MAAM;OACrB,KAAK,GAAG,SAAS,IAAI,SAAS,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AAC/C;GACE,QAAQ,SAAS,GAAG,KAAK,EAAE,GAAG,EAAE,KAAK,GAAG,MAAM,GAAG;AACnD,KAAI,IAAI,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,EAAE;OACzC,OAAO,KAAK,CAAC;MACd;IACF;GACD,OAAO,CAAC,CAAC,CAAC;EACX;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAA,SAAS,WAAW,CAAC,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE;AAC9C,GAAE,IAAI,KAAK,KAAK,KAAK,EAAE;KACnB,OAAO,aAAa,CAAC,KAAK,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;IACnD;AACH,GAAE,IAAI,KAAK,GAAG,SAAS,GAAG,CAAC;AAC3B,OAAM,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC;AAC5B;AACA,GAAE,OAAO,EAAE,KAAK,GAAG,MAAM,EAAE;AAC3B,KAAI,IAAI,KAAK,CAAC,KAAK,CAAC,KAAK,KAAK,EAAE;OAC1B,OAAO,KAAK,CAAC;MACd;IACF;GACD,OAAO,CAAC,CAAC,CAAC;EACX;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;CACA,SAAS,SAAS,CAAC,KAAK,EAAE;AAC1B,GAAE,OAAO,KAAK,KAAK,KAAK,CAAC;EACxB;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAA,SAAS,SAAS,CAAC,CAAC,EAAE,QAAQ,EAAE;AAChC,GAAE,IAAI,KAAK,GAAG,CAAC,CAAC;AAChB,OAAM,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;AACxB;AACA,GAAE,OAAO,EAAE,KAAK,GAAG,CAAC,EAAE;KAClB,MAAM,CAAC,KAAK,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IACjC;GACD,OAAO,MAAM,CAAC;EACf;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAA,SAAS,UAAU,CAAC,MAAM,EAAE,KAAK,EAAE;AACnC,GAAE,OAAO,QAAQ,CAAC,KAAK,EAAE,SAAS,GAAG,EAAE;AACvC,KAAI,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC;AACvB,IAAG,CAAC,CAAC;EACJ;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAA,SAAS,OAAO,CAAC,IAAI,EAAE,SAAS,EAAE;GAChC,OAAO,SAAS,GAAG,EAAE;KACnB,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC;AAChC,IAAG,CAAC;EACH;AACD;AACA;AACA,CAAA,IAAI,WAAW,GAAG,MAAM,CAAC,SAAS,CAAC;AACnC;AACA;AACA,CAAA,IAAI,cAAc,GAAG,WAAW,CAAC,cAAc,CAAC;AAChD;AACA;AACA;AACA;AACA;AACA;AACA,CAAA,IAAI,cAAc,GAAG,WAAW,CAAC,QAAQ,CAAC;AAC1C;AACA;AACA,CAAA,IAAI,oBAAoB,GAAG,WAAW,CAAC,oBAAoB,CAAC;AAC5D;AACA;CACA,IAAI,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC;AAC7C,KAAI,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAA,SAAS,aAAa,CAAC,KAAK,EAAE,SAAS,EAAE;AACzC;AACA;AACA,GAAE,IAAI,MAAM,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,WAAW,CAAC,KAAK,CAAC;AACpD,OAAM,SAAS,CAAC,KAAK,CAAC,MAAM,EAAE,MAAM,CAAC;AACrC,OAAM,EAAE,CAAC;AACT;AACA,GAAE,IAAI,MAAM,GAAG,MAAM,CAAC,MAAM;AAC5B,OAAM,WAAW,GAAG,CAAC,CAAC,MAAM,CAAC;AAC7B;AACA,GAAE,KAAK,IAAI,GAAG,IAAI,KAAK,EAAE;KACrB,IAAI,CAAC,SAAS,IAAI,cAAc,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,CAAC;AACrD,SAAQ,EAAE,WAAW,KAAK,GAAG,IAAI,QAAQ,IAAI,OAAO,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE;AACrE,OAAM,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;MAClB;IACF;GACD,OAAO,MAAM,CAAC;EACf;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;CACA,SAAS,QAAQ,CAAC,MAAM,EAAE;AAC1B,GAAE,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,EAAE;AAC5B,KAAI,OAAO,UAAU,CAAC,MAAM,CAAC,CAAC;IAC3B;AACH,GAAE,IAAI,MAAM,GAAG,EAAE,CAAC;GAChB,KAAK,IAAI,GAAG,IAAI,MAAM,CAAC,MAAM,CAAC,EAAE;AAClC,KAAI,IAAI,cAAc,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,IAAI,GAAG,IAAI,aAAa,EAAE;AAClE,OAAM,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;MAClB;IACF;GACD,OAAO,MAAM,CAAC;EACf;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAA,SAAS,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE;GAC9B,MAAM,GAAG,MAAM,IAAI,IAAI,GAAG,gBAAgB,GAAG,MAAM,CAAC;GACpD,OAAO,CAAC,CAAC,MAAM;MACZ,OAAO,KAAK,IAAI,QAAQ,IAAI,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACtD,MAAK,KAAK,GAAG,CAAC,CAAC,IAAI,KAAK,GAAG,CAAC,IAAI,CAAC,IAAI,KAAK,GAAG,MAAM,CAAC,CAAC;EACpD;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;CACA,SAAS,WAAW,CAAC,KAAK,EAAE;AAC5B,GAAE,IAAI,IAAI,GAAG,KAAK,IAAI,KAAK,CAAC,WAAW;AACvC,OAAM,KAAK,GAAG,CAAC,OAAO,IAAI,IAAI,UAAU,IAAI,IAAI,CAAC,SAAS,KAAK,WAAW,CAAC;AAC3E;AACA,GAAE,OAAO,KAAK,KAAK,KAAK,CAAC;EACxB;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;CACA,SAAS,QAAQ,CAAC,UAAU,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE;AACvD,GAAE,UAAU,GAAG,WAAW,CAAC,UAAU,CAAC,GAAG,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC;AACzE,GAAE,SAAS,GAAG,CAAC,SAAS,IAAI,CAAC,KAAK,IAAI,SAAS,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;AAC/D;AACA,GAAE,IAAI,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC;AACjC,GAAE,IAAI,SAAS,GAAG,CAAC,EAAE;KACjB,SAAS,GAAG,SAAS,CAAC,MAAM,GAAG,SAAS,EAAE,CAAC,CAAC,CAAC;IAC9C;AACH,GAAE,OAAO,QAAQ,CAAC,UAAU,CAAC;AAC7B,QAAO,SAAS,IAAI,MAAM,IAAI,UAAU,CAAC,OAAO,CAAC,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,CAAC;AACvE,QAAO,CAAC,CAAC,MAAM,IAAI,WAAW,CAAC,UAAU,EAAE,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;EAClE;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;CACA,SAAS,WAAW,CAAC,KAAK,EAAE;AAC5B;AACA,GAAE,OAAO,iBAAiB,CAAC,KAAK,CAAC,IAAI,cAAc,CAAC,IAAI,CAAC,KAAK,EAAE,QAAQ,CAAC;AACzE,MAAK,CAAC,oBAAoB,CAAC,IAAI,CAAC,KAAK,EAAE,QAAQ,CAAC,IAAI,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,OAAO,CAAC,CAAC;EAC1F;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAA,IAAI,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;CACA,SAAS,WAAW,CAAC,KAAK,EAAE;AAC5B,GAAE,OAAO,KAAK,IAAI,IAAI,IAAI,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;EACtE;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;CACA,SAAS,iBAAiB,CAAC,KAAK,EAAE;GAChC,OAAO,YAAY,CAAC,KAAK,CAAC,IAAI,WAAW,CAAC,KAAK,CAAC,CAAC;EAClD;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;CACA,SAAS,UAAU,CAAC,KAAK,EAAE;AAC3B;AACA;AACA,GAAE,IAAI,GAAG,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC;GAC5D,OAAO,GAAG,IAAI,OAAO,IAAI,GAAG,IAAI,MAAM,CAAC;EACxC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAC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AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;CACA,SAAS,SAAS,CAAC,KAAK,EAAE;AAC1B,GAAE,OAAO,OAAO,KAAK,IAAI,QAAQ,IAAI,KAAK,IAAI,SAAS,CAAC,KAAK,CAAC,CAAC;EAC9D;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;CACA,SAAS,QAAQ,CAAC,KAAK,EAAE;AACzB,GAAE,IAAI,IAAI,GAAG,OAAO,KAAK,CAAC;AAC1B,GAAE,OAAO,CAAC,CAAC,KAAK,KAAK,IAAI,IAAI,QAAQ,IAAI,IAAI,IAAI,UAAU,CAAC,CAAC;EAC5D;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;CACA,SAAS,YAAY,CAAC,KAAK,EAAE;GAC3B,OAAO,CAAC,CAAC,KAAK,IAAI,OAAO,KAAK,IAAI,QAAQ,CAAC;EAC5C;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;CACA,SAAS,QAAQ,CAAC,KAAK,EAAE;AACzB,GAAE,OAAO,OAAO,KAAK,IAAI,QAAQ;AACjC,MAAK,YAAY,CAAC,KAAK,CAAC,IAAI,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,SAAS,CAAC,CAAC;EACpE;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;CACA,SAAS,QAAQ,CAAC,KAAK,EAAE;GACvB,IAAI,CAAC,KAAK,EAAE;KACV,OAAO,KAAK,KAAK,CAAC,GAAG,KAAK,GAAG,CAAC,CAAC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AG,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;MACtC;AACL,KAAI,IAAI,CAAC,IAAI,CAAC,EAAE;OACV,IAAI,GAAG,SAAS,CAAC;MAClB;KACD,OAAO,MAAM,CAAC;AAClB,IAAG,CAAC;EACH;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;CACA,SAAS,IAAI,CAAC,IAAI,EAAE;AACpB,GAAE,OAAO,MAAM,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;EACxB;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;CACA,SAAS,QAAQ,CAAC,KAAK,EAAE;AACzB,GAAE,IAAI,IAAI,GAAG,OAAO,KAAK,CAAC;AAC1B,GAAE,OAAO,CAAC,CAAC,KAAK,KAAK,IAAI,IAAI,QAAQ,IAAI,IAAI,IAAI,UAAU,CAAC,CAAC;EAC5D;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;CACA,SAAS,YAAY,CAAC,KAAK,EAAE;GAC3B,OAAO,CAAC,CAAC,KAAK,IAAI,OAAO,KAAK,IAAI,QAAQ,CAAC;EAC5C;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;CACA,SAAS,QAAQ,CAAC,KAAK,EAAE;AACzB,GAAE,OAAO,OAAO,KAAK,IAAI,QAAQ;AACjC,MAAK,YAAY,CAAC,KAAK,CAAC,IAAI,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,SAAS,CAAC,CAAC;EACpE;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA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","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149]} \ No newline at end of file diff --git a/Sveltekit-Build/src/server/chunks/prod-ssr-7cc47430.js b/Sveltekit-Build/src/server/chunks/prod-ssr-7cc47430.js new file mode 100644 index 0000000..d5c4ad3 --- /dev/null +++ b/Sveltekit-Build/src/server/chunks/prod-ssr-7cc47430.js @@ -0,0 +1,5 @@ +const BROWSER = false; +const DEV = false; + +export { BROWSER as B, DEV as D }; +//# sourceMappingURL=prod-ssr-7cc47430.js.map diff --git a/Sveltekit-Build/src/server/chunks/prod-ssr-7cc47430.js.map b/Sveltekit-Build/src/server/chunks/prod-ssr-7cc47430.js.map new file mode 100644 index 0000000..0e15700 --- /dev/null +++ b/Sveltekit-Build/src/server/chunks/prod-ssr-7cc47430.js.map @@ -0,0 +1 @@ +{"version":3,"file":"prod-ssr-7cc47430.js","sources":["../../../../Sveltekit-App/.svelte-kit/adapter-node/chunks/prod-ssr.js"],"sourcesContent":["const BROWSER = false;\nconst DEV = false;\nexport {\n BROWSER as B,\n DEV as D\n};\n"],"names":[],"mappings":"AAAK,MAAC,OAAO,GAAG,MAAM;AACjB,MAAC,GAAG,GAAG;;;;"} \ No newline at end of file diff --git a/Sveltekit-Build/src/server/chunks/reports-881f004a.js b/Sveltekit-Build/src/server/chunks/reports-881f004a.js new file mode 100644 index 0000000..2342df5 --- /dev/null +++ b/Sveltekit-Build/src/server/chunks/reports-881f004a.js @@ -0,0 +1,35 @@ +const reports = [ + { + url: "/home/source-account-create-error", + name: "Source Account Create Error", + description: "This report will show all source accounts for which there is a create error associated with the source" + }, + { + url: "/home/identity-inactive-but-has-access", + name: "Inactive Identities With Access", + description: "This report will show all identities that are inactive but still have access in sources" + }, + { + url: "/home/missing-cloud-life-cycle-state", + name: "Missing Cloud Life Cycle State", + description: "This report will show all identities that are missing a cloud life cycle state" + }, + { + url: "/home/source-delete-threshold", + name: "Sources Delete Threshold", + description: "This report will show all sources and their delete threshold" + }, + { + url: "/home/source-owner-configured", + name: "Sources Owner Configured", + description: "This report will show all sources and their configured owners" + }, + { + url: "/home/source-aggregations", + name: "Source Aggregations", + description: "This report will show all sources and their most recent aggregation events" + } +]; + +export { reports as r }; +//# sourceMappingURL=reports-881f004a.js.map diff --git a/Sveltekit-Build/src/server/chunks/reports-881f004a.js.map b/Sveltekit-Build/src/server/chunks/reports-881f004a.js.map new file mode 100644 index 0000000..b41d8a6 --- /dev/null +++ b/Sveltekit-Build/src/server/chunks/reports-881f004a.js.map @@ -0,0 +1 @@ +{"version":3,"file":"reports-881f004a.js","sources":["../../../../Sveltekit-App/.svelte-kit/adapter-node/chunks/reports.js"],"sourcesContent":["const reports = [\n {\n url: \"/home/source-account-create-error\",\n name: \"Source Account Create Error\",\n description: \"This report will show all source accounts for which there is a create error associated with the source\"\n },\n {\n url: \"/home/identity-inactive-but-has-access\",\n name: \"Inactive Identities With Access\",\n description: \"This report will show all identities that are inactive but still have access in sources\"\n },\n {\n url: \"/home/missing-cloud-life-cycle-state\",\n name: \"Missing Cloud Life Cycle State\",\n description: \"This report will show all identities that are missing a cloud life cycle state\"\n },\n {\n url: \"/home/source-delete-threshold\",\n name: \"Sources Delete Threshold\",\n description: \"This report will show all sources and their delete threshold\"\n },\n {\n url: \"/home/source-owner-configured\",\n name: \"Sources Owner Configured\",\n description: \"This report will show all sources and their configured owners\"\n },\n {\n url: \"/home/source-aggregations\",\n name: \"Source Aggregations\",\n description: \"This report will show all sources and their most recent aggregation events\"\n }\n];\nexport {\n reports as r\n};\n"],"names":[],"mappings":"AAAK,MAAC,OAAO,GAAG;AAChB,EAAE;AACF,IAAI,GAAG,EAAE,mCAAmC;AAC5C,IAAI,IAAI,EAAE,6BAA6B;AACvC,IAAI,WAAW,EAAE,wGAAwG;AACzH,GAAG;AACH,EAAE;AACF,IAAI,GAAG,EAAE,wCAAwC;AACjD,IAAI,IAAI,EAAE,iCAAiC;AAC3C,IAAI,WAAW,EAAE,yFAAyF;AAC1G,GAAG;AACH,EAAE;AACF,IAAI,GAAG,EAAE,sCAAsC;AAC/C,IAAI,IAAI,EAAE,gCAAgC;AAC1C,IAAI,WAAW,EAAE,gFAAgF;AACjG,GAAG;AACH,EAAE;AACF,IAAI,GAAG,EAAE,+BAA+B;AACxC,IAAI,IAAI,EAAE,0BAA0B;AACpC,IAAI,WAAW,EAAE,8DAA8D;AAC/E,GAAG;AACH,EAAE;AACF,IAAI,GAAG,EAAE,+BAA+B;AACxC,IAAI,IAAI,EAAE,0BAA0B;AACpC,IAAI,WAAW,EAAE,+DAA+D;AAChF,GAAG;AACH,EAAE;AACF,IAAI,GAAG,EAAE,2BAA2B;AACpC,IAAI,IAAI,EAAE,qBAAqB;AAC/B,IAAI,WAAW,EAAE,4EAA4E;AAC7F,GAAG;AACH;;;;"} \ No newline at end of file diff --git a/Sveltekit-Build/src/server/chunks/sdk-9eeff2de.js b/Sveltekit-Build/src/server/chunks/sdk-9eeff2de.js new file mode 100644 index 0000000..6e09310 --- /dev/null +++ b/Sveltekit-Build/src/server/chunks/sdk-9eeff2de.js @@ -0,0 +1,95280 @@ +import { e as error } from './index-64aa7a5e.js'; +import { r as requireForm_data, c as requireProxyFromEnv, d as requireFollowRedirects, a as axios } from './oauth-017ba109.js'; +import { c as commonjsGlobal } from './_commonjsHelpers-2155838d.js'; +import Url from 'url'; +import http from 'http'; +import require$$4 from 'https'; +import require$$1 from 'util'; +import zlib from 'zlib'; +import Stream from 'stream'; +import EventEmitter from 'events'; +import require$$0 from 'os'; +import require$$2 from 'path'; +import require$$0$1 from 'fs'; + +var dist = {}; + +var api$3 = {}; + +var axios_1; +var hasRequiredAxios; + +function requireAxios () { + if (hasRequiredAxios) return axios_1; + hasRequiredAxios = 1; + + const FormData$1 = requireForm_data(); + const url = Url; + const proxyFromEnv = requireProxyFromEnv(); + const http$1 = http; + const https = require$$4; + const util = require$$1; + const followRedirects = requireFollowRedirects(); + const zlib$1 = zlib; + const stream = Stream; + const EventEmitter$1 = EventEmitter; + + function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; } + + const FormData__default = /*#__PURE__*/_interopDefaultLegacy(FormData$1); + const url__default = /*#__PURE__*/_interopDefaultLegacy(url); + const http__default = /*#__PURE__*/_interopDefaultLegacy(http$1); + const https__default = /*#__PURE__*/_interopDefaultLegacy(https); + const util__default = /*#__PURE__*/_interopDefaultLegacy(util); + const followRedirects__default = /*#__PURE__*/_interopDefaultLegacy(followRedirects); + const zlib__default = /*#__PURE__*/_interopDefaultLegacy(zlib$1); + const stream__default = /*#__PURE__*/_interopDefaultLegacy(stream); + const EventEmitter__default = /*#__PURE__*/_interopDefaultLegacy(EventEmitter$1); + + function bind(fn, thisArg) { + return function wrap() { + return fn.apply(thisArg, arguments); + }; + } + + // utils is a library of generic helper functions non-specific to axios + + const {toString} = Object.prototype; + const {getPrototypeOf} = Object; + + const kindOf = (cache => thing => { + const str = toString.call(thing); + return cache[str] || (cache[str] = str.slice(8, -1).toLowerCase()); + })(Object.create(null)); + + const kindOfTest = (type) => { + type = type.toLowerCase(); + return (thing) => kindOf(thing) === type + }; + + const typeOfTest = type => thing => typeof thing === type; + + /** + * Determine if a value is an Array + * + * @param {Object} val The value to test + * + * @returns {boolean} True if value is an Array, otherwise false + */ + const {isArray} = Array; + + /** + * Determine if a value is undefined + * + * @param {*} val The value to test + * + * @returns {boolean} True if the value is undefined, otherwise false + */ + const isUndefined = typeOfTest('undefined'); + + /** + * Determine if a value is a Buffer + * + * @param {*} val The value to test + * + * @returns {boolean} True if value is a Buffer, otherwise false + */ + function isBuffer(val) { + return val !== null && !isUndefined(val) && val.constructor !== null && !isUndefined(val.constructor) + && isFunction(val.constructor.isBuffer) && val.constructor.isBuffer(val); + } + + /** + * Determine if a value is an ArrayBuffer + * + * @param {*} val The value to test + * + * @returns {boolean} True if value is an ArrayBuffer, otherwise false + */ + const isArrayBuffer = kindOfTest('ArrayBuffer'); + + + /** + * Determine if a value is a view on an ArrayBuffer + * + * @param {*} val The value to test + * + * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false + */ + function isArrayBufferView(val) { + let result; + if ((typeof ArrayBuffer !== 'undefined') && (ArrayBuffer.isView)) { + result = ArrayBuffer.isView(val); + } else { + result = (val) && (val.buffer) && (isArrayBuffer(val.buffer)); + } + return result; + } + + /** + * Determine if a value is a String + * + * @param {*} val The value to test + * + * @returns {boolean} True if value is a String, otherwise false + */ + const isString = typeOfTest('string'); + + /** + * Determine if a value is a Function + * + * @param {*} val The value to test + * @returns {boolean} True if value is a Function, otherwise false + */ + const isFunction = typeOfTest('function'); + + /** + * Determine if a value is a Number + * + * @param {*} val The value to test + * + * @returns {boolean} True if value is a Number, otherwise false + */ + const isNumber = typeOfTest('number'); + + /** + * Determine if a value is an Object + * + * @param {*} thing The value to test + * + * @returns {boolean} True if value is an Object, otherwise false + */ + const isObject = (thing) => thing !== null && typeof thing === 'object'; + + /** + * Determine if a value is a Boolean + * + * @param {*} thing The value to test + * @returns {boolean} True if value is a Boolean, otherwise false + */ + const isBoolean = thing => thing === true || thing === false; + + /** + * Determine if a value is a plain Object + * + * @param {*} val The value to test + * + * @returns {boolean} True if value is a plain Object, otherwise false + */ + const isPlainObject = (val) => { + if (kindOf(val) !== 'object') { + return false; + } + + const prototype = getPrototypeOf(val); + return (prototype === null || prototype === Object.prototype || Object.getPrototypeOf(prototype) === null) && !(Symbol.toStringTag in val) && !(Symbol.iterator in val); + }; + + /** + * Determine if a value is a Date + * + * @param {*} val The value to test + * + * @returns {boolean} True if value is a Date, otherwise false + */ + const isDate = kindOfTest('Date'); + + /** + * Determine if a value is a File + * + * @param {*} val The value to test + * + * @returns {boolean} True if value is a File, otherwise false + */ + const isFile = kindOfTest('File'); + + /** + * Determine if a value is a Blob + * + * @param {*} val The value to test + * + * @returns {boolean} True if value is a Blob, otherwise false + */ + const isBlob = kindOfTest('Blob'); + + /** + * Determine if a value is a FileList + * + * @param {*} val The value to test + * + * @returns {boolean} True if value is a File, otherwise false + */ + const isFileList = kindOfTest('FileList'); + + /** + * Determine if a value is a Stream + * + * @param {*} val The value to test + * + * @returns {boolean} True if value is a Stream, otherwise false + */ + const isStream = (val) => isObject(val) && isFunction(val.pipe); + + /** + * Determine if a value is a FormData + * + * @param {*} thing The value to test + * + * @returns {boolean} True if value is an FormData, otherwise false + */ + const isFormData = (thing) => { + let kind; + return thing && ( + (typeof FormData === 'function' && thing instanceof FormData) || ( + isFunction(thing.append) && ( + (kind = kindOf(thing)) === 'formdata' || + // detect form-data instance + (kind === 'object' && isFunction(thing.toString) && thing.toString() === '[object FormData]') + ) + ) + ) + }; + + /** + * Determine if a value is a URLSearchParams object + * + * @param {*} val The value to test + * + * @returns {boolean} True if value is a URLSearchParams object, otherwise false + */ + const isURLSearchParams = kindOfTest('URLSearchParams'); + + /** + * Trim excess whitespace off the beginning and end of a string + * + * @param {String} str The String to trim + * + * @returns {String} The String freed of excess whitespace + */ + const trim = (str) => str.trim ? + str.trim() : str.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g, ''); + + /** + * Iterate over an Array or an Object invoking a function for each item. + * + * If `obj` is an Array callback will be called passing + * the value, index, and complete array for each item. + * + * If 'obj' is an Object callback will be called passing + * the value, key, and complete object for each property. + * + * @param {Object|Array} obj The object to iterate + * @param {Function} fn The callback to invoke for each item + * + * @param {Boolean} [allOwnKeys = false] + * @returns {any} + */ + function forEach(obj, fn, {allOwnKeys = false} = {}) { + // Don't bother if no value provided + if (obj === null || typeof obj === 'undefined') { + return; + } + + let i; + let l; + + // Force an array if not already something iterable + if (typeof obj !== 'object') { + /*eslint no-param-reassign:0*/ + obj = [obj]; + } + + if (isArray(obj)) { + // Iterate over array values + for (i = 0, l = obj.length; i < l; i++) { + fn.call(null, obj[i], i, obj); + } + } else { + // Iterate over object keys + const keys = allOwnKeys ? Object.getOwnPropertyNames(obj) : Object.keys(obj); + const len = keys.length; + let key; + + for (i = 0; i < len; i++) { + key = keys[i]; + fn.call(null, obj[key], key, obj); + } + } + } + + function findKey(obj, key) { + key = key.toLowerCase(); + const keys = Object.keys(obj); + let i = keys.length; + let _key; + while (i-- > 0) { + _key = keys[i]; + if (key === _key.toLowerCase()) { + return _key; + } + } + return null; + } + + const _global = (() => { + /*eslint no-undef:0*/ + if (typeof globalThis !== "undefined") return globalThis; + return typeof self !== "undefined" ? self : (typeof window !== 'undefined' ? window : commonjsGlobal) + })(); + + const isContextDefined = (context) => !isUndefined(context) && context !== _global; + + /** + * Accepts varargs expecting each argument to be an object, then + * immutably merges the properties of each object and returns result. + * + * When multiple objects contain the same key the later object in + * the arguments list will take precedence. + * + * Example: + * + * ```js + * var result = merge({foo: 123}, {foo: 456}); + * console.log(result.foo); // outputs 456 + * ``` + * + * @param {Object} obj1 Object to merge + * + * @returns {Object} Result of all merge properties + */ + function merge(/* obj1, obj2, obj3, ... */) { + const {caseless} = isContextDefined(this) && this || {}; + const result = {}; + const assignValue = (val, key) => { + const targetKey = caseless && findKey(result, key) || key; + if (isPlainObject(result[targetKey]) && isPlainObject(val)) { + result[targetKey] = merge(result[targetKey], val); + } else if (isPlainObject(val)) { + result[targetKey] = merge({}, val); + } else if (isArray(val)) { + result[targetKey] = val.slice(); + } else { + result[targetKey] = val; + } + }; + + for (let i = 0, l = arguments.length; i < l; i++) { + arguments[i] && forEach(arguments[i], assignValue); + } + return result; + } + + /** + * Extends object a by mutably adding to it the properties of object b. + * + * @param {Object} a The object to be extended + * @param {Object} b The object to copy properties from + * @param {Object} thisArg The object to bind function to + * + * @param {Boolean} [allOwnKeys] + * @returns {Object} The resulting value of object a + */ + const extend = (a, b, thisArg, {allOwnKeys}= {}) => { + forEach(b, (val, key) => { + if (thisArg && isFunction(val)) { + a[key] = bind(val, thisArg); + } else { + a[key] = val; + } + }, {allOwnKeys}); + return a; + }; + + /** + * Remove byte order marker. This catches EF BB BF (the UTF-8 BOM) + * + * @param {string} content with BOM + * + * @returns {string} content value without BOM + */ + const stripBOM = (content) => { + if (content.charCodeAt(0) === 0xFEFF) { + content = content.slice(1); + } + return content; + }; + + /** + * Inherit the prototype methods from one constructor into another + * @param {function} constructor + * @param {function} superConstructor + * @param {object} [props] + * @param {object} [descriptors] + * + * @returns {void} + */ + const inherits = (constructor, superConstructor, props, descriptors) => { + constructor.prototype = Object.create(superConstructor.prototype, descriptors); + constructor.prototype.constructor = constructor; + Object.defineProperty(constructor, 'super', { + value: superConstructor.prototype + }); + props && Object.assign(constructor.prototype, props); + }; + + /** + * Resolve object with deep prototype chain to a flat object + * @param {Object} sourceObj source object + * @param {Object} [destObj] + * @param {Function|Boolean} [filter] + * @param {Function} [propFilter] + * + * @returns {Object} + */ + const toFlatObject = (sourceObj, destObj, filter, propFilter) => { + let props; + let i; + let prop; + const merged = {}; + + destObj = destObj || {}; + // eslint-disable-next-line no-eq-null,eqeqeq + if (sourceObj == null) return destObj; + + do { + props = Object.getOwnPropertyNames(sourceObj); + i = props.length; + while (i-- > 0) { + prop = props[i]; + if ((!propFilter || propFilter(prop, sourceObj, destObj)) && !merged[prop]) { + destObj[prop] = sourceObj[prop]; + merged[prop] = true; + } + } + sourceObj = filter !== false && getPrototypeOf(sourceObj); + } while (sourceObj && (!filter || filter(sourceObj, destObj)) && sourceObj !== Object.prototype); + + return destObj; + }; + + /** + * Determines whether a string ends with the characters of a specified string + * + * @param {String} str + * @param {String} searchString + * @param {Number} [position= 0] + * + * @returns {boolean} + */ + const endsWith = (str, searchString, position) => { + str = String(str); + if (position === undefined || position > str.length) { + position = str.length; + } + position -= searchString.length; + const lastIndex = str.indexOf(searchString, position); + return lastIndex !== -1 && lastIndex === position; + }; + + + /** + * Returns new array from array like object or null if failed + * + * @param {*} [thing] + * + * @returns {?Array} + */ + const toArray = (thing) => { + if (!thing) return null; + if (isArray(thing)) return thing; + let i = thing.length; + if (!isNumber(i)) return null; + const arr = new Array(i); + while (i-- > 0) { + arr[i] = thing[i]; + } + return arr; + }; + + /** + * Checking if the Uint8Array exists and if it does, it returns a function that checks if the + * thing passed in is an instance of Uint8Array + * + * @param {TypedArray} + * + * @returns {Array} + */ + // eslint-disable-next-line func-names + const isTypedArray = (TypedArray => { + // eslint-disable-next-line func-names + return thing => { + return TypedArray && thing instanceof TypedArray; + }; + })(typeof Uint8Array !== 'undefined' && getPrototypeOf(Uint8Array)); + + /** + * For each entry in the object, call the function with the key and value. + * + * @param {Object} obj - The object to iterate over. + * @param {Function} fn - The function to call for each entry. + * + * @returns {void} + */ + const forEachEntry = (obj, fn) => { + const generator = obj && obj[Symbol.iterator]; + + const iterator = generator.call(obj); + + let result; + + while ((result = iterator.next()) && !result.done) { + const pair = result.value; + fn.call(obj, pair[0], pair[1]); + } + }; + + /** + * It takes a regular expression and a string, and returns an array of all the matches + * + * @param {string} regExp - The regular expression to match against. + * @param {string} str - The string to search. + * + * @returns {Array} + */ + const matchAll = (regExp, str) => { + let matches; + const arr = []; + + while ((matches = regExp.exec(str)) !== null) { + arr.push(matches); + } + + return arr; + }; + + /* Checking if the kindOfTest function returns true when passed an HTMLFormElement. */ + const isHTMLForm = kindOfTest('HTMLFormElement'); + + const toCamelCase = str => { + return str.toLowerCase().replace(/[-_\s]([a-z\d])(\w*)/g, + function replacer(m, p1, p2) { + return p1.toUpperCase() + p2; + } + ); + }; + + /* Creating a function that will check if an object has a property. */ + const hasOwnProperty = (({hasOwnProperty}) => (obj, prop) => hasOwnProperty.call(obj, prop))(Object.prototype); + + /** + * Determine if a value is a RegExp object + * + * @param {*} val The value to test + * + * @returns {boolean} True if value is a RegExp object, otherwise false + */ + const isRegExp = kindOfTest('RegExp'); + + const reduceDescriptors = (obj, reducer) => { + const descriptors = Object.getOwnPropertyDescriptors(obj); + const reducedDescriptors = {}; + + forEach(descriptors, (descriptor, name) => { + let ret; + if ((ret = reducer(descriptor, name, obj)) !== false) { + reducedDescriptors[name] = ret || descriptor; + } + }); + + Object.defineProperties(obj, reducedDescriptors); + }; + + /** + * Makes all methods read-only + * @param {Object} obj + */ + + const freezeMethods = (obj) => { + reduceDescriptors(obj, (descriptor, name) => { + // skip restricted props in strict mode + if (isFunction(obj) && ['arguments', 'caller', 'callee'].indexOf(name) !== -1) { + return false; + } + + const value = obj[name]; + + if (!isFunction(value)) return; + + descriptor.enumerable = false; + + if ('writable' in descriptor) { + descriptor.writable = false; + return; + } + + if (!descriptor.set) { + descriptor.set = () => { + throw Error('Can not rewrite read-only method \'' + name + '\''); + }; + } + }); + }; + + const toObjectSet = (arrayOrString, delimiter) => { + const obj = {}; + + const define = (arr) => { + arr.forEach(value => { + obj[value] = true; + }); + }; + + isArray(arrayOrString) ? define(arrayOrString) : define(String(arrayOrString).split(delimiter)); + + return obj; + }; + + const noop = () => {}; + + const toFiniteNumber = (value, defaultValue) => { + value = +value; + return Number.isFinite(value) ? value : defaultValue; + }; + + const ALPHA = 'abcdefghijklmnopqrstuvwxyz'; + + const DIGIT = '0123456789'; + + const ALPHABET = { + DIGIT, + ALPHA, + ALPHA_DIGIT: ALPHA + ALPHA.toUpperCase() + DIGIT + }; + + const generateString = (size = 16, alphabet = ALPHABET.ALPHA_DIGIT) => { + let str = ''; + const {length} = alphabet; + while (size--) { + str += alphabet[Math.random() * length|0]; + } + + return str; + }; + + /** + * If the thing is a FormData object, return true, otherwise return false. + * + * @param {unknown} thing - The thing to check. + * + * @returns {boolean} + */ + function isSpecCompliantForm(thing) { + return !!(thing && isFunction(thing.append) && thing[Symbol.toStringTag] === 'FormData' && thing[Symbol.iterator]); + } + + const toJSONObject = (obj) => { + const stack = new Array(10); + + const visit = (source, i) => { + + if (isObject(source)) { + if (stack.indexOf(source) >= 0) { + return; + } + + if(!('toJSON' in source)) { + stack[i] = source; + const target = isArray(source) ? [] : {}; + + forEach(source, (value, key) => { + const reducedValue = visit(value, i + 1); + !isUndefined(reducedValue) && (target[key] = reducedValue); + }); + + stack[i] = undefined; + + return target; + } + } + + return source; + }; + + return visit(obj, 0); + }; + + const isAsyncFn = kindOfTest('AsyncFunction'); + + const isThenable = (thing) => + thing && (isObject(thing) || isFunction(thing)) && isFunction(thing.then) && isFunction(thing.catch); + + const utils$1 = { + isArray, + isArrayBuffer, + isBuffer, + isFormData, + isArrayBufferView, + isString, + isNumber, + isBoolean, + isObject, + isPlainObject, + isUndefined, + isDate, + isFile, + isBlob, + isRegExp, + isFunction, + isStream, + isURLSearchParams, + isTypedArray, + isFileList, + forEach, + merge, + extend, + trim, + stripBOM, + inherits, + toFlatObject, + kindOf, + kindOfTest, + endsWith, + toArray, + forEachEntry, + matchAll, + isHTMLForm, + hasOwnProperty, + hasOwnProp: hasOwnProperty, // an alias to avoid ESLint no-prototype-builtins detection + reduceDescriptors, + freezeMethods, + toObjectSet, + toCamelCase, + noop, + toFiniteNumber, + findKey, + global: _global, + isContextDefined, + ALPHABET, + generateString, + isSpecCompliantForm, + toJSONObject, + isAsyncFn, + isThenable + }; + + /** + * Create an Error with the specified message, config, error code, request and response. + * + * @param {string} message The error message. + * @param {string} [code] The error code (for example, 'ECONNABORTED'). + * @param {Object} [config] The config. + * @param {Object} [request] The request. + * @param {Object} [response] The response. + * + * @returns {Error} The created error. + */ + function AxiosError(message, code, config, request, response) { + Error.call(this); + + if (Error.captureStackTrace) { + Error.captureStackTrace(this, this.constructor); + } else { + this.stack = (new Error()).stack; + } + + this.message = message; + this.name = 'AxiosError'; + code && (this.code = code); + config && (this.config = config); + request && (this.request = request); + response && (this.response = response); + } + + utils$1.inherits(AxiosError, Error, { + toJSON: function toJSON() { + return { + // Standard + message: this.message, + name: this.name, + // Microsoft + description: this.description, + number: this.number, + // Mozilla + fileName: this.fileName, + lineNumber: this.lineNumber, + columnNumber: this.columnNumber, + stack: this.stack, + // Axios + config: utils$1.toJSONObject(this.config), + code: this.code, + status: this.response && this.response.status ? this.response.status : null + }; + } + }); + + const prototype$1 = AxiosError.prototype; + const descriptors = {}; + + [ + 'ERR_BAD_OPTION_VALUE', + 'ERR_BAD_OPTION', + 'ECONNABORTED', + 'ETIMEDOUT', + 'ERR_NETWORK', + 'ERR_FR_TOO_MANY_REDIRECTS', + 'ERR_DEPRECATED', + 'ERR_BAD_RESPONSE', + 'ERR_BAD_REQUEST', + 'ERR_CANCELED', + 'ERR_NOT_SUPPORT', + 'ERR_INVALID_URL' + // eslint-disable-next-line func-names + ].forEach(code => { + descriptors[code] = {value: code}; + }); + + Object.defineProperties(AxiosError, descriptors); + Object.defineProperty(prototype$1, 'isAxiosError', {value: true}); + + // eslint-disable-next-line func-names + AxiosError.from = (error, code, config, request, response, customProps) => { + const axiosError = Object.create(prototype$1); + + utils$1.toFlatObject(error, axiosError, function filter(obj) { + return obj !== Error.prototype; + }, prop => { + return prop !== 'isAxiosError'; + }); + + AxiosError.call(axiosError, error.message, code, config, request, response); + + axiosError.cause = error; + + axiosError.name = error.name; + + customProps && Object.assign(axiosError, customProps); + + return axiosError; + }; + + /** + * Determines if the given thing is a array or js object. + * + * @param {string} thing - The object or array to be visited. + * + * @returns {boolean} + */ + function isVisitable(thing) { + return utils$1.isPlainObject(thing) || utils$1.isArray(thing); + } + + /** + * It removes the brackets from the end of a string + * + * @param {string} key - The key of the parameter. + * + * @returns {string} the key without the brackets. + */ + function removeBrackets(key) { + return utils$1.endsWith(key, '[]') ? key.slice(0, -2) : key; + } + + /** + * It takes a path, a key, and a boolean, and returns a string + * + * @param {string} path - The path to the current key. + * @param {string} key - The key of the current object being iterated over. + * @param {string} dots - If true, the key will be rendered with dots instead of brackets. + * + * @returns {string} The path to the current key. + */ + function renderKey(path, key, dots) { + if (!path) return key; + return path.concat(key).map(function each(token, i) { + // eslint-disable-next-line no-param-reassign + token = removeBrackets(token); + return !dots && i ? '[' + token + ']' : token; + }).join(dots ? '.' : ''); + } + + /** + * If the array is an array and none of its elements are visitable, then it's a flat array. + * + * @param {Array} arr - The array to check + * + * @returns {boolean} + */ + function isFlatArray(arr) { + return utils$1.isArray(arr) && !arr.some(isVisitable); + } + + const predicates = utils$1.toFlatObject(utils$1, {}, null, function filter(prop) { + return /^is[A-Z]/.test(prop); + }); + + /** + * Convert a data object to FormData + * + * @param {Object} obj + * @param {?Object} [formData] + * @param {?Object} [options] + * @param {Function} [options.visitor] + * @param {Boolean} [options.metaTokens = true] + * @param {Boolean} [options.dots = false] + * @param {?Boolean} [options.indexes = false] + * + * @returns {Object} + **/ + + /** + * It converts an object into a FormData object + * + * @param {Object} obj - The object to convert to form data. + * @param {string} formData - The FormData object to append to. + * @param {Object} options + * + * @returns + */ + function toFormData(obj, formData, options) { + if (!utils$1.isObject(obj)) { + throw new TypeError('target must be an object'); + } + + // eslint-disable-next-line no-param-reassign + formData = formData || new (FormData__default["default"] || FormData)(); + + // eslint-disable-next-line no-param-reassign + options = utils$1.toFlatObject(options, { + metaTokens: true, + dots: false, + indexes: false + }, false, function defined(option, source) { + // eslint-disable-next-line no-eq-null,eqeqeq + return !utils$1.isUndefined(source[option]); + }); + + const metaTokens = options.metaTokens; + // eslint-disable-next-line no-use-before-define + const visitor = options.visitor || defaultVisitor; + const dots = options.dots; + const indexes = options.indexes; + const _Blob = options.Blob || typeof Blob !== 'undefined' && Blob; + const useBlob = _Blob && utils$1.isSpecCompliantForm(formData); + + if (!utils$1.isFunction(visitor)) { + throw new TypeError('visitor must be a function'); + } + + function convertValue(value) { + if (value === null) return ''; + + if (utils$1.isDate(value)) { + return value.toISOString(); + } + + if (!useBlob && utils$1.isBlob(value)) { + throw new AxiosError('Blob is not supported. Use a Buffer instead.'); + } + + if (utils$1.isArrayBuffer(value) || utils$1.isTypedArray(value)) { + return useBlob && typeof Blob === 'function' ? new Blob([value]) : Buffer.from(value); + } + + return value; + } + + /** + * Default visitor. + * + * @param {*} value + * @param {String|Number} key + * @param {Array} path + * @this {FormData} + * + * @returns {boolean} return true to visit the each prop of the value recursively + */ + function defaultVisitor(value, key, path) { + let arr = value; + + if (value && !path && typeof value === 'object') { + if (utils$1.endsWith(key, '{}')) { + // eslint-disable-next-line no-param-reassign + key = metaTokens ? key : key.slice(0, -2); + // eslint-disable-next-line no-param-reassign + value = JSON.stringify(value); + } else if ( + (utils$1.isArray(value) && isFlatArray(value)) || + ((utils$1.isFileList(value) || utils$1.endsWith(key, '[]')) && (arr = utils$1.toArray(value)) + )) { + // eslint-disable-next-line no-param-reassign + key = removeBrackets(key); + + arr.forEach(function each(el, index) { + !(utils$1.isUndefined(el) || el === null) && formData.append( + // eslint-disable-next-line no-nested-ternary + indexes === true ? renderKey([key], index, dots) : (indexes === null ? key : key + '[]'), + convertValue(el) + ); + }); + return false; + } + } + + if (isVisitable(value)) { + return true; + } + + formData.append(renderKey(path, key, dots), convertValue(value)); + + return false; + } + + const stack = []; + + const exposedHelpers = Object.assign(predicates, { + defaultVisitor, + convertValue, + isVisitable + }); + + function build(value, path) { + if (utils$1.isUndefined(value)) return; + + if (stack.indexOf(value) !== -1) { + throw Error('Circular reference detected in ' + path.join('.')); + } + + stack.push(value); + + utils$1.forEach(value, function each(el, key) { + const result = !(utils$1.isUndefined(el) || el === null) && visitor.call( + formData, el, utils$1.isString(key) ? key.trim() : key, path, exposedHelpers + ); + + if (result === true) { + build(el, path ? path.concat(key) : [key]); + } + }); + + stack.pop(); + } + + if (!utils$1.isObject(obj)) { + throw new TypeError('data must be an object'); + } + + build(obj); + + return formData; + } + + /** + * It encodes a string by replacing all characters that are not in the unreserved set with + * their percent-encoded equivalents + * + * @param {string} str - The string to encode. + * + * @returns {string} The encoded string. + */ + function encode$1(str) { + const charMap = { + '!': '%21', + "'": '%27', + '(': '%28', + ')': '%29', + '~': '%7E', + '%20': '+', + '%00': '\x00' + }; + return encodeURIComponent(str).replace(/[!'()~]|%20|%00/g, function replacer(match) { + return charMap[match]; + }); + } + + /** + * It takes a params object and converts it to a FormData object + * + * @param {Object} params - The parameters to be converted to a FormData object. + * @param {Object} options - The options object passed to the Axios constructor. + * + * @returns {void} + */ + function AxiosURLSearchParams(params, options) { + this._pairs = []; + + params && toFormData(params, this, options); + } + + const prototype = AxiosURLSearchParams.prototype; + + prototype.append = function append(name, value) { + this._pairs.push([name, value]); + }; + + prototype.toString = function toString(encoder) { + const _encode = encoder ? function(value) { + return encoder.call(this, value, encode$1); + } : encode$1; + + return this._pairs.map(function each(pair) { + return _encode(pair[0]) + '=' + _encode(pair[1]); + }, '').join('&'); + }; + + /** + * It replaces all instances of the characters `:`, `$`, `,`, `+`, `[`, and `]` with their + * URI encoded counterparts + * + * @param {string} val The value to be encoded. + * + * @returns {string} The encoded value. + */ + function encode(val) { + return encodeURIComponent(val). + replace(/%3A/gi, ':'). + replace(/%24/g, '$'). + replace(/%2C/gi, ','). + replace(/%20/g, '+'). + replace(/%5B/gi, '['). + replace(/%5D/gi, ']'); + } + + /** + * Build a URL by appending params to the end + * + * @param {string} url The base of the url (e.g., http://www.google.com) + * @param {object} [params] The params to be appended + * @param {?object} options + * + * @returns {string} The formatted url + */ + function buildURL(url, params, options) { + /*eslint no-param-reassign:0*/ + if (!params) { + return url; + } + + const _encode = options && options.encode || encode; + + const serializeFn = options && options.serialize; + + let serializedParams; + + if (serializeFn) { + serializedParams = serializeFn(params, options); + } else { + serializedParams = utils$1.isURLSearchParams(params) ? + params.toString() : + new AxiosURLSearchParams(params, options).toString(_encode); + } + + if (serializedParams) { + const hashmarkIndex = url.indexOf("#"); + + if (hashmarkIndex !== -1) { + url = url.slice(0, hashmarkIndex); + } + url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams; + } + + return url; + } + + class InterceptorManager { + constructor() { + this.handlers = []; + } + + /** + * Add a new interceptor to the stack + * + * @param {Function} fulfilled The function to handle `then` for a `Promise` + * @param {Function} rejected The function to handle `reject` for a `Promise` + * + * @return {Number} An ID used to remove interceptor later + */ + use(fulfilled, rejected, options) { + this.handlers.push({ + fulfilled, + rejected, + synchronous: options ? options.synchronous : false, + runWhen: options ? options.runWhen : null + }); + return this.handlers.length - 1; + } + + /** + * Remove an interceptor from the stack + * + * @param {Number} id The ID that was returned by `use` + * + * @returns {Boolean} `true` if the interceptor was removed, `false` otherwise + */ + eject(id) { + if (this.handlers[id]) { + this.handlers[id] = null; + } + } + + /** + * Clear all interceptors from the stack + * + * @returns {void} + */ + clear() { + if (this.handlers) { + this.handlers = []; + } + } + + /** + * Iterate over all the registered interceptors + * + * This method is particularly useful for skipping over any + * interceptors that may have become `null` calling `eject`. + * + * @param {Function} fn The function to call for each interceptor + * + * @returns {void} + */ + forEach(fn) { + utils$1.forEach(this.handlers, function forEachHandler(h) { + if (h !== null) { + fn(h); + } + }); + } + } + + const InterceptorManager$1 = InterceptorManager; + + const transitionalDefaults = { + silentJSONParsing: true, + forcedJSONParsing: true, + clarifyTimeoutError: false + }; + + const URLSearchParams = url__default["default"].URLSearchParams; + + const platform$1 = { + isNode: true, + classes: { + URLSearchParams, + FormData: FormData__default["default"], + Blob: typeof Blob !== 'undefined' && Blob || null + }, + protocols: [ 'http', 'https', 'file', 'data' ] + }; + + const hasBrowserEnv = typeof window !== 'undefined' && typeof document !== 'undefined'; + + /** + * Determine if we're running in a standard browser environment + * + * This allows axios to run in a web worker, and react-native. + * Both environments support XMLHttpRequest, but not fully standard globals. + * + * web workers: + * typeof window -> undefined + * typeof document -> undefined + * + * react-native: + * navigator.product -> 'ReactNative' + * nativescript + * navigator.product -> 'NativeScript' or 'NS' + * + * @returns {boolean} + */ + const hasStandardBrowserEnv = ( + (product) => { + return hasBrowserEnv && ['ReactNative', 'NativeScript', 'NS'].indexOf(product) < 0 + })(typeof navigator !== 'undefined' && navigator.product); + + /** + * Determine if we're running in a standard browser webWorker environment + * + * Although the `isStandardBrowserEnv` method indicates that + * `allows axios to run in a web worker`, the WebWorker will still be + * filtered out due to its judgment standard + * `typeof window !== 'undefined' && typeof document !== 'undefined'`. + * This leads to a problem when axios post `FormData` in webWorker + */ + const hasStandardBrowserWebWorkerEnv = (() => { + return ( + typeof WorkerGlobalScope !== 'undefined' && + // eslint-disable-next-line no-undef + self instanceof WorkerGlobalScope && + typeof self.importScripts === 'function' + ); + })(); + + const utils = /*#__PURE__*/Object.freeze({ + __proto__: null, + hasBrowserEnv: hasBrowserEnv, + hasStandardBrowserWebWorkerEnv: hasStandardBrowserWebWorkerEnv, + hasStandardBrowserEnv: hasStandardBrowserEnv + }); + + const platform = { + ...utils, + ...platform$1 + }; + + function toURLEncodedForm(data, options) { + return toFormData(data, new platform.classes.URLSearchParams(), Object.assign({ + visitor: function(value, key, path, helpers) { + if (platform.isNode && utils$1.isBuffer(value)) { + this.append(key, value.toString('base64')); + return false; + } + + return helpers.defaultVisitor.apply(this, arguments); + } + }, options)); + } + + /** + * It takes a string like `foo[x][y][z]` and returns an array like `['foo', 'x', 'y', 'z'] + * + * @param {string} name - The name of the property to get. + * + * @returns An array of strings. + */ + function parsePropPath(name) { + // foo[x][y][z] + // foo.x.y.z + // foo-x-y-z + // foo x y z + return utils$1.matchAll(/\w+|\[(\w*)]/g, name).map(match => { + return match[0] === '[]' ? '' : match[1] || match[0]; + }); + } + + /** + * Convert an array to an object. + * + * @param {Array} arr - The array to convert to an object. + * + * @returns An object with the same keys and values as the array. + */ + function arrayToObject(arr) { + const obj = {}; + const keys = Object.keys(arr); + let i; + const len = keys.length; + let key; + for (i = 0; i < len; i++) { + key = keys[i]; + obj[key] = arr[key]; + } + return obj; + } + + /** + * It takes a FormData object and returns a JavaScript object + * + * @param {string} formData The FormData object to convert to JSON. + * + * @returns {Object | null} The converted object. + */ + function formDataToJSON(formData) { + function buildPath(path, value, target, index) { + let name = path[index++]; + const isNumericKey = Number.isFinite(+name); + const isLast = index >= path.length; + name = !name && utils$1.isArray(target) ? target.length : name; + + if (isLast) { + if (utils$1.hasOwnProp(target, name)) { + target[name] = [target[name], value]; + } else { + target[name] = value; + } + + return !isNumericKey; + } + + if (!target[name] || !utils$1.isObject(target[name])) { + target[name] = []; + } + + const result = buildPath(path, value, target[name], index); + + if (result && utils$1.isArray(target[name])) { + target[name] = arrayToObject(target[name]); + } + + return !isNumericKey; + } + + if (utils$1.isFormData(formData) && utils$1.isFunction(formData.entries)) { + const obj = {}; + + utils$1.forEachEntry(formData, (name, value) => { + buildPath(parsePropPath(name), value, obj, 0); + }); + + return obj; + } + + return null; + } + + /** + * It takes a string, tries to parse it, and if it fails, it returns the stringified version + * of the input + * + * @param {any} rawValue - The value to be stringified. + * @param {Function} parser - A function that parses a string into a JavaScript object. + * @param {Function} encoder - A function that takes a value and returns a string. + * + * @returns {string} A stringified version of the rawValue. + */ + function stringifySafely(rawValue, parser, encoder) { + if (utils$1.isString(rawValue)) { + try { + (parser || JSON.parse)(rawValue); + return utils$1.trim(rawValue); + } catch (e) { + if (e.name !== 'SyntaxError') { + throw e; + } + } + } + + return (encoder || JSON.stringify)(rawValue); + } + + const defaults = { + + transitional: transitionalDefaults, + + adapter: ['xhr', 'http'], + + transformRequest: [function transformRequest(data, headers) { + const contentType = headers.getContentType() || ''; + const hasJSONContentType = contentType.indexOf('application/json') > -1; + const isObjectPayload = utils$1.isObject(data); + + if (isObjectPayload && utils$1.isHTMLForm(data)) { + data = new FormData(data); + } + + const isFormData = utils$1.isFormData(data); + + if (isFormData) { + if (!hasJSONContentType) { + return data; + } + return hasJSONContentType ? JSON.stringify(formDataToJSON(data)) : data; + } + + if (utils$1.isArrayBuffer(data) || + utils$1.isBuffer(data) || + utils$1.isStream(data) || + utils$1.isFile(data) || + utils$1.isBlob(data) + ) { + return data; + } + if (utils$1.isArrayBufferView(data)) { + return data.buffer; + } + if (utils$1.isURLSearchParams(data)) { + headers.setContentType('application/x-www-form-urlencoded;charset=utf-8', false); + return data.toString(); + } + + let isFileList; + + if (isObjectPayload) { + if (contentType.indexOf('application/x-www-form-urlencoded') > -1) { + return toURLEncodedForm(data, this.formSerializer).toString(); + } + + if ((isFileList = utils$1.isFileList(data)) || contentType.indexOf('multipart/form-data') > -1) { + const _FormData = this.env && this.env.FormData; + + return toFormData( + isFileList ? {'files[]': data} : data, + _FormData && new _FormData(), + this.formSerializer + ); + } + } + + if (isObjectPayload || hasJSONContentType ) { + headers.setContentType('application/json', false); + return stringifySafely(data); + } + + return data; + }], + + transformResponse: [function transformResponse(data) { + const transitional = this.transitional || defaults.transitional; + const forcedJSONParsing = transitional && transitional.forcedJSONParsing; + const JSONRequested = this.responseType === 'json'; + + if (data && utils$1.isString(data) && ((forcedJSONParsing && !this.responseType) || JSONRequested)) { + const silentJSONParsing = transitional && transitional.silentJSONParsing; + const strictJSONParsing = !silentJSONParsing && JSONRequested; + + try { + return JSON.parse(data); + } catch (e) { + if (strictJSONParsing) { + if (e.name === 'SyntaxError') { + throw AxiosError.from(e, AxiosError.ERR_BAD_RESPONSE, this, null, this.response); + } + throw e; + } + } + } + + return data; + }], + + /** + * A timeout in milliseconds to abort a request. If set to 0 (default) a + * timeout is not created. + */ + timeout: 0, + + xsrfCookieName: 'XSRF-TOKEN', + xsrfHeaderName: 'X-XSRF-TOKEN', + + maxContentLength: -1, + maxBodyLength: -1, + + env: { + FormData: platform.classes.FormData, + Blob: platform.classes.Blob + }, + + validateStatus: function validateStatus(status) { + return status >= 200 && status < 300; + }, + + headers: { + common: { + 'Accept': 'application/json, text/plain, */*', + 'Content-Type': undefined + } + } + }; + + utils$1.forEach(['delete', 'get', 'head', 'post', 'put', 'patch'], (method) => { + defaults.headers[method] = {}; + }); + + const defaults$1 = defaults; + + // RawAxiosHeaders whose duplicates are ignored by node + // c.f. https://nodejs.org/api/http.html#http_message_headers + const ignoreDuplicateOf = utils$1.toObjectSet([ + 'age', 'authorization', 'content-length', 'content-type', 'etag', + 'expires', 'from', 'host', 'if-modified-since', 'if-unmodified-since', + 'last-modified', 'location', 'max-forwards', 'proxy-authorization', + 'referer', 'retry-after', 'user-agent' + ]); + + /** + * Parse headers into an object + * + * ``` + * Date: Wed, 27 Aug 2014 08:58:49 GMT + * Content-Type: application/json + * Connection: keep-alive + * Transfer-Encoding: chunked + * ``` + * + * @param {String} rawHeaders Headers needing to be parsed + * + * @returns {Object} Headers parsed into an object + */ + const parseHeaders = rawHeaders => { + const parsed = {}; + let key; + let val; + let i; + + rawHeaders && rawHeaders.split('\n').forEach(function parser(line) { + i = line.indexOf(':'); + key = line.substring(0, i).trim().toLowerCase(); + val = line.substring(i + 1).trim(); + + if (!key || (parsed[key] && ignoreDuplicateOf[key])) { + return; + } + + if (key === 'set-cookie') { + if (parsed[key]) { + parsed[key].push(val); + } else { + parsed[key] = [val]; + } + } else { + parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val; + } + }); + + return parsed; + }; + + const $internals = Symbol('internals'); + + function normalizeHeader(header) { + return header && String(header).trim().toLowerCase(); + } + + function normalizeValue(value) { + if (value === false || value == null) { + return value; + } + + return utils$1.isArray(value) ? value.map(normalizeValue) : String(value); + } + + function parseTokens(str) { + const tokens = Object.create(null); + const tokensRE = /([^\s,;=]+)\s*(?:=\s*([^,;]+))?/g; + let match; + + while ((match = tokensRE.exec(str))) { + tokens[match[1]] = match[2]; + } + + return tokens; + } + + const isValidHeaderName = (str) => /^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(str.trim()); + + function matchHeaderValue(context, value, header, filter, isHeaderNameFilter) { + if (utils$1.isFunction(filter)) { + return filter.call(this, value, header); + } + + if (isHeaderNameFilter) { + value = header; + } + + if (!utils$1.isString(value)) return; + + if (utils$1.isString(filter)) { + return value.indexOf(filter) !== -1; + } + + if (utils$1.isRegExp(filter)) { + return filter.test(value); + } + } + + function formatHeader(header) { + return header.trim() + .toLowerCase().replace(/([a-z\d])(\w*)/g, (w, char, str) => { + return char.toUpperCase() + str; + }); + } + + function buildAccessors(obj, header) { + const accessorName = utils$1.toCamelCase(' ' + header); + + ['get', 'set', 'has'].forEach(methodName => { + Object.defineProperty(obj, methodName + accessorName, { + value: function(arg1, arg2, arg3) { + return this[methodName].call(this, header, arg1, arg2, arg3); + }, + configurable: true + }); + }); + } + + class AxiosHeaders { + constructor(headers) { + headers && this.set(headers); + } + + set(header, valueOrRewrite, rewrite) { + const self = this; + + function setHeader(_value, _header, _rewrite) { + const lHeader = normalizeHeader(_header); + + if (!lHeader) { + throw new Error('header name must be a non-empty string'); + } + + const key = utils$1.findKey(self, lHeader); + + if(!key || self[key] === undefined || _rewrite === true || (_rewrite === undefined && self[key] !== false)) { + self[key || _header] = normalizeValue(_value); + } + } + + const setHeaders = (headers, _rewrite) => + utils$1.forEach(headers, (_value, _header) => setHeader(_value, _header, _rewrite)); + + if (utils$1.isPlainObject(header) || header instanceof this.constructor) { + setHeaders(header, valueOrRewrite); + } else if(utils$1.isString(header) && (header = header.trim()) && !isValidHeaderName(header)) { + setHeaders(parseHeaders(header), valueOrRewrite); + } else { + header != null && setHeader(valueOrRewrite, header, rewrite); + } + + return this; + } + + get(header, parser) { + header = normalizeHeader(header); + + if (header) { + const key = utils$1.findKey(this, header); + + if (key) { + const value = this[key]; + + if (!parser) { + return value; + } + + if (parser === true) { + return parseTokens(value); + } + + if (utils$1.isFunction(parser)) { + return parser.call(this, value, key); + } + + if (utils$1.isRegExp(parser)) { + return parser.exec(value); + } + + throw new TypeError('parser must be boolean|regexp|function'); + } + } + } + + has(header, matcher) { + header = normalizeHeader(header); + + if (header) { + const key = utils$1.findKey(this, header); + + return !!(key && this[key] !== undefined && (!matcher || matchHeaderValue(this, this[key], key, matcher))); + } + + return false; + } + + delete(header, matcher) { + const self = this; + let deleted = false; + + function deleteHeader(_header) { + _header = normalizeHeader(_header); + + if (_header) { + const key = utils$1.findKey(self, _header); + + if (key && (!matcher || matchHeaderValue(self, self[key], key, matcher))) { + delete self[key]; + + deleted = true; + } + } + } + + if (utils$1.isArray(header)) { + header.forEach(deleteHeader); + } else { + deleteHeader(header); + } + + return deleted; + } + + clear(matcher) { + const keys = Object.keys(this); + let i = keys.length; + let deleted = false; + + while (i--) { + const key = keys[i]; + if(!matcher || matchHeaderValue(this, this[key], key, matcher, true)) { + delete this[key]; + deleted = true; + } + } + + return deleted; + } + + normalize(format) { + const self = this; + const headers = {}; + + utils$1.forEach(this, (value, header) => { + const key = utils$1.findKey(headers, header); + + if (key) { + self[key] = normalizeValue(value); + delete self[header]; + return; + } + + const normalized = format ? formatHeader(header) : String(header).trim(); + + if (normalized !== header) { + delete self[header]; + } + + self[normalized] = normalizeValue(value); + + headers[normalized] = true; + }); + + return this; + } + + concat(...targets) { + return this.constructor.concat(this, ...targets); + } + + toJSON(asStrings) { + const obj = Object.create(null); + + utils$1.forEach(this, (value, header) => { + value != null && value !== false && (obj[header] = asStrings && utils$1.isArray(value) ? value.join(', ') : value); + }); + + return obj; + } + + [Symbol.iterator]() { + return Object.entries(this.toJSON())[Symbol.iterator](); + } + + toString() { + return Object.entries(this.toJSON()).map(([header, value]) => header + ': ' + value).join('\n'); + } + + get [Symbol.toStringTag]() { + return 'AxiosHeaders'; + } + + static from(thing) { + return thing instanceof this ? thing : new this(thing); + } + + static concat(first, ...targets) { + const computed = new this(first); + + targets.forEach((target) => computed.set(target)); + + return computed; + } + + static accessor(header) { + const internals = this[$internals] = (this[$internals] = { + accessors: {} + }); + + const accessors = internals.accessors; + const prototype = this.prototype; + + function defineAccessor(_header) { + const lHeader = normalizeHeader(_header); + + if (!accessors[lHeader]) { + buildAccessors(prototype, _header); + accessors[lHeader] = true; + } + } + + utils$1.isArray(header) ? header.forEach(defineAccessor) : defineAccessor(header); + + return this; + } + } + + AxiosHeaders.accessor(['Content-Type', 'Content-Length', 'Accept', 'Accept-Encoding', 'User-Agent', 'Authorization']); + + // reserved names hotfix + utils$1.reduceDescriptors(AxiosHeaders.prototype, ({value}, key) => { + let mapped = key[0].toUpperCase() + key.slice(1); // map `set` => `Set` + return { + get: () => value, + set(headerValue) { + this[mapped] = headerValue; + } + } + }); + + utils$1.freezeMethods(AxiosHeaders); + + const AxiosHeaders$1 = AxiosHeaders; + + /** + * Transform the data for a request or a response + * + * @param {Array|Function} fns A single function or Array of functions + * @param {?Object} response The response object + * + * @returns {*} The resulting transformed data + */ + function transformData(fns, response) { + const config = this || defaults$1; + const context = response || config; + const headers = AxiosHeaders$1.from(context.headers); + let data = context.data; + + utils$1.forEach(fns, function transform(fn) { + data = fn.call(config, data, headers.normalize(), response ? response.status : undefined); + }); + + headers.normalize(); + + return data; + } + + function isCancel(value) { + return !!(value && value.__CANCEL__); + } + + /** + * A `CanceledError` is an object that is thrown when an operation is canceled. + * + * @param {string=} message The message. + * @param {Object=} config The config. + * @param {Object=} request The request. + * + * @returns {CanceledError} The created error. + */ + function CanceledError(message, config, request) { + // eslint-disable-next-line no-eq-null,eqeqeq + AxiosError.call(this, message == null ? 'canceled' : message, AxiosError.ERR_CANCELED, config, request); + this.name = 'CanceledError'; + } + + utils$1.inherits(CanceledError, AxiosError, { + __CANCEL__: true + }); + + /** + * Resolve or reject a Promise based on response status. + * + * @param {Function} resolve A function that resolves the promise. + * @param {Function} reject A function that rejects the promise. + * @param {object} response The response. + * + * @returns {object} The response. + */ + function settle(resolve, reject, response) { + const validateStatus = response.config.validateStatus; + if (!response.status || !validateStatus || validateStatus(response.status)) { + resolve(response); + } else { + reject(new AxiosError( + 'Request failed with status code ' + response.status, + [AxiosError.ERR_BAD_REQUEST, AxiosError.ERR_BAD_RESPONSE][Math.floor(response.status / 100) - 4], + response.config, + response.request, + response + )); + } + } + + /** + * Determines whether the specified URL is absolute + * + * @param {string} url The URL to test + * + * @returns {boolean} True if the specified URL is absolute, otherwise false + */ + function isAbsoluteURL(url) { + // A URL is considered absolute if it begins with "://" or "//" (protocol-relative URL). + // RFC 3986 defines scheme name as a sequence of characters beginning with a letter and followed + // by any combination of letters, digits, plus, period, or hyphen. + return /^([a-z][a-z\d+\-.]*:)?\/\//i.test(url); + } + + /** + * Creates a new URL by combining the specified URLs + * + * @param {string} baseURL The base URL + * @param {string} relativeURL The relative URL + * + * @returns {string} The combined URL + */ + function combineURLs(baseURL, relativeURL) { + return relativeURL + ? baseURL.replace(/\/+$/, '') + '/' + relativeURL.replace(/^\/+/, '') + : baseURL; + } + + /** + * Creates a new URL by combining the baseURL with the requestedURL, + * only when the requestedURL is not already an absolute URL. + * If the requestURL is absolute, this function returns the requestedURL untouched. + * + * @param {string} baseURL The base URL + * @param {string} requestedURL Absolute or relative URL to combine + * + * @returns {string} The combined full path + */ + function buildFullPath(baseURL, requestedURL) { + if (baseURL && !isAbsoluteURL(requestedURL)) { + return combineURLs(baseURL, requestedURL); + } + return requestedURL; + } + + const VERSION = "1.6.2"; + + function parseProtocol(url) { + const match = /^([-+\w]{1,25})(:?\/\/|:)/.exec(url); + return match && match[1] || ''; + } + + const DATA_URL_PATTERN = /^(?:([^;]+);)?(?:[^;]+;)?(base64|),([\s\S]*)$/; + + /** + * Parse data uri to a Buffer or Blob + * + * @param {String} uri + * @param {?Boolean} asBlob + * @param {?Object} options + * @param {?Function} options.Blob + * + * @returns {Buffer|Blob} + */ + function fromDataURI(uri, asBlob, options) { + const _Blob = options && options.Blob || platform.classes.Blob; + const protocol = parseProtocol(uri); + + if (asBlob === undefined && _Blob) { + asBlob = true; + } + + if (protocol === 'data') { + uri = protocol.length ? uri.slice(protocol.length + 1) : uri; + + const match = DATA_URL_PATTERN.exec(uri); + + if (!match) { + throw new AxiosError('Invalid URL', AxiosError.ERR_INVALID_URL); + } + + const mime = match[1]; + const isBase64 = match[2]; + const body = match[3]; + const buffer = Buffer.from(decodeURIComponent(body), isBase64 ? 'base64' : 'utf8'); + + if (asBlob) { + if (!_Blob) { + throw new AxiosError('Blob is not supported', AxiosError.ERR_NOT_SUPPORT); + } + + return new _Blob([buffer], {type: mime}); + } + + return buffer; + } + + throw new AxiosError('Unsupported protocol ' + protocol, AxiosError.ERR_NOT_SUPPORT); + } + + /** + * Throttle decorator + * @param {Function} fn + * @param {Number} freq + * @return {Function} + */ + function throttle(fn, freq) { + let timestamp = 0; + const threshold = 1000 / freq; + let timer = null; + return function throttled(force, args) { + const now = Date.now(); + if (force || now - timestamp > threshold) { + if (timer) { + clearTimeout(timer); + timer = null; + } + timestamp = now; + return fn.apply(null, args); + } + if (!timer) { + timer = setTimeout(() => { + timer = null; + timestamp = Date.now(); + return fn.apply(null, args); + }, threshold - (now - timestamp)); + } + }; + } + + /** + * Calculate data maxRate + * @param {Number} [samplesCount= 10] + * @param {Number} [min= 1000] + * @returns {Function} + */ + function speedometer(samplesCount, min) { + samplesCount = samplesCount || 10; + const bytes = new Array(samplesCount); + const timestamps = new Array(samplesCount); + let head = 0; + let tail = 0; + let firstSampleTS; + + min = min !== undefined ? min : 1000; + + return function push(chunkLength) { + const now = Date.now(); + + const startedAt = timestamps[tail]; + + if (!firstSampleTS) { + firstSampleTS = now; + } + + bytes[head] = chunkLength; + timestamps[head] = now; + + let i = tail; + let bytesCount = 0; + + while (i !== head) { + bytesCount += bytes[i++]; + i = i % samplesCount; + } + + head = (head + 1) % samplesCount; + + if (head === tail) { + tail = (tail + 1) % samplesCount; + } + + if (now - firstSampleTS < min) { + return; + } + + const passed = startedAt && now - startedAt; + + return passed ? Math.round(bytesCount * 1000 / passed) : undefined; + }; + } + + const kInternals = Symbol('internals'); + + class AxiosTransformStream extends stream__default["default"].Transform{ + constructor(options) { + options = utils$1.toFlatObject(options, { + maxRate: 0, + chunkSize: 64 * 1024, + minChunkSize: 100, + timeWindow: 500, + ticksRate: 2, + samplesCount: 15 + }, null, (prop, source) => { + return !utils$1.isUndefined(source[prop]); + }); + + super({ + readableHighWaterMark: options.chunkSize + }); + + const self = this; + + const internals = this[kInternals] = { + length: options.length, + timeWindow: options.timeWindow, + ticksRate: options.ticksRate, + chunkSize: options.chunkSize, + maxRate: options.maxRate, + minChunkSize: options.minChunkSize, + bytesSeen: 0, + isCaptured: false, + notifiedBytesLoaded: 0, + ts: Date.now(), + bytes: 0, + onReadCallback: null + }; + + const _speedometer = speedometer(internals.ticksRate * options.samplesCount, internals.timeWindow); + + this.on('newListener', event => { + if (event === 'progress') { + if (!internals.isCaptured) { + internals.isCaptured = true; + } + } + }); + + let bytesNotified = 0; + + internals.updateProgress = throttle(function throttledHandler() { + const totalBytes = internals.length; + const bytesTransferred = internals.bytesSeen; + const progressBytes = bytesTransferred - bytesNotified; + if (!progressBytes || self.destroyed) return; + + const rate = _speedometer(progressBytes); + + bytesNotified = bytesTransferred; + + process.nextTick(() => { + self.emit('progress', { + 'loaded': bytesTransferred, + 'total': totalBytes, + 'progress': totalBytes ? (bytesTransferred / totalBytes) : undefined, + 'bytes': progressBytes, + 'rate': rate ? rate : undefined, + 'estimated': rate && totalBytes && bytesTransferred <= totalBytes ? + (totalBytes - bytesTransferred) / rate : undefined + }); + }); + }, internals.ticksRate); + + const onFinish = () => { + internals.updateProgress(true); + }; + + this.once('end', onFinish); + this.once('error', onFinish); + } + + _read(size) { + const internals = this[kInternals]; + + if (internals.onReadCallback) { + internals.onReadCallback(); + } + + return super._read(size); + } + + _transform(chunk, encoding, callback) { + const self = this; + const internals = this[kInternals]; + const maxRate = internals.maxRate; + + const readableHighWaterMark = this.readableHighWaterMark; + + const timeWindow = internals.timeWindow; + + const divider = 1000 / timeWindow; + const bytesThreshold = (maxRate / divider); + const minChunkSize = internals.minChunkSize !== false ? Math.max(internals.minChunkSize, bytesThreshold * 0.01) : 0; + + function pushChunk(_chunk, _callback) { + const bytes = Buffer.byteLength(_chunk); + internals.bytesSeen += bytes; + internals.bytes += bytes; + + if (internals.isCaptured) { + internals.updateProgress(); + } + + if (self.push(_chunk)) { + process.nextTick(_callback); + } else { + internals.onReadCallback = () => { + internals.onReadCallback = null; + process.nextTick(_callback); + }; + } + } + + const transformChunk = (_chunk, _callback) => { + const chunkSize = Buffer.byteLength(_chunk); + let chunkRemainder = null; + let maxChunkSize = readableHighWaterMark; + let bytesLeft; + let passed = 0; + + if (maxRate) { + const now = Date.now(); + + if (!internals.ts || (passed = (now - internals.ts)) >= timeWindow) { + internals.ts = now; + bytesLeft = bytesThreshold - internals.bytes; + internals.bytes = bytesLeft < 0 ? -bytesLeft : 0; + passed = 0; + } + + bytesLeft = bytesThreshold - internals.bytes; + } + + if (maxRate) { + if (bytesLeft <= 0) { + // next time window + return setTimeout(() => { + _callback(null, _chunk); + }, timeWindow - passed); + } + + if (bytesLeft < maxChunkSize) { + maxChunkSize = bytesLeft; + } + } + + if (maxChunkSize && chunkSize > maxChunkSize && (chunkSize - maxChunkSize) > minChunkSize) { + chunkRemainder = _chunk.subarray(maxChunkSize); + _chunk = _chunk.subarray(0, maxChunkSize); + } + + pushChunk(_chunk, chunkRemainder ? () => { + process.nextTick(_callback, null, chunkRemainder); + } : _callback); + }; + + transformChunk(chunk, function transformNextChunk(err, _chunk) { + if (err) { + return callback(err); + } + + if (_chunk) { + transformChunk(_chunk, transformNextChunk); + } else { + callback(null); + } + }); + } + + setLength(length) { + this[kInternals].length = +length; + return this; + } + } + + const AxiosTransformStream$1 = AxiosTransformStream; + + const {asyncIterator} = Symbol; + + const readBlob = async function* (blob) { + if (blob.stream) { + yield* blob.stream(); + } else if (blob.arrayBuffer) { + yield await blob.arrayBuffer(); + } else if (blob[asyncIterator]) { + yield* blob[asyncIterator](); + } else { + yield blob; + } + }; + + const readBlob$1 = readBlob; + + const BOUNDARY_ALPHABET = utils$1.ALPHABET.ALPHA_DIGIT + '-_'; + + const textEncoder = new util.TextEncoder(); + + const CRLF = '\r\n'; + const CRLF_BYTES = textEncoder.encode(CRLF); + const CRLF_BYTES_COUNT = 2; + + class FormDataPart { + constructor(name, value) { + const {escapeName} = this.constructor; + const isStringValue = utils$1.isString(value); + + let headers = `Content-Disposition: form-data; name="${escapeName(name)}"${ + !isStringValue && value.name ? `; filename="${escapeName(value.name)}"` : '' + }${CRLF}`; + + if (isStringValue) { + value = textEncoder.encode(String(value).replace(/\r?\n|\r\n?/g, CRLF)); + } else { + headers += `Content-Type: ${value.type || "application/octet-stream"}${CRLF}`; + } + + this.headers = textEncoder.encode(headers + CRLF); + + this.contentLength = isStringValue ? value.byteLength : value.size; + + this.size = this.headers.byteLength + this.contentLength + CRLF_BYTES_COUNT; + + this.name = name; + this.value = value; + } + + async *encode(){ + yield this.headers; + + const {value} = this; + + if(utils$1.isTypedArray(value)) { + yield value; + } else { + yield* readBlob$1(value); + } + + yield CRLF_BYTES; + } + + static escapeName(name) { + return String(name).replace(/[\r\n"]/g, (match) => ({ + '\r' : '%0D', + '\n' : '%0A', + '"' : '%22', + }[match])); + } + } + + const formDataToStream = (form, headersHandler, options) => { + const { + tag = 'form-data-boundary', + size = 25, + boundary = tag + '-' + utils$1.generateString(size, BOUNDARY_ALPHABET) + } = options || {}; + + if(!utils$1.isFormData(form)) { + throw TypeError('FormData instance required'); + } + + if (boundary.length < 1 || boundary.length > 70) { + throw Error('boundary must be 10-70 characters long') + } + + const boundaryBytes = textEncoder.encode('--' + boundary + CRLF); + const footerBytes = textEncoder.encode('--' + boundary + '--' + CRLF + CRLF); + let contentLength = footerBytes.byteLength; + + const parts = Array.from(form.entries()).map(([name, value]) => { + const part = new FormDataPart(name, value); + contentLength += part.size; + return part; + }); + + contentLength += boundaryBytes.byteLength * parts.length; + + contentLength = utils$1.toFiniteNumber(contentLength); + + const computedHeaders = { + 'Content-Type': `multipart/form-data; boundary=${boundary}` + }; + + if (Number.isFinite(contentLength)) { + computedHeaders['Content-Length'] = contentLength; + } + + headersHandler && headersHandler(computedHeaders); + + return stream.Readable.from((async function *() { + for(const part of parts) { + yield boundaryBytes; + yield* part.encode(); + } + + yield footerBytes; + })()); + }; + + const formDataToStream$1 = formDataToStream; + + class ZlibHeaderTransformStream extends stream__default["default"].Transform { + __transform(chunk, encoding, callback) { + this.push(chunk); + callback(); + } + + _transform(chunk, encoding, callback) { + if (chunk.length !== 0) { + this._transform = this.__transform; + + // Add Default Compression headers if no zlib headers are present + if (chunk[0] !== 120) { // Hex: 78 + const header = Buffer.alloc(2); + header[0] = 120; // Hex: 78 + header[1] = 156; // Hex: 9C + this.push(header, encoding); + } + } + + this.__transform(chunk, encoding, callback); + } + } + + const ZlibHeaderTransformStream$1 = ZlibHeaderTransformStream; + + const callbackify = (fn, reducer) => { + return utils$1.isAsyncFn(fn) ? function (...args) { + const cb = args.pop(); + fn.apply(this, args).then((value) => { + try { + reducer ? cb(null, ...reducer(value)) : cb(null, value); + } catch (err) { + cb(err); + } + }, cb); + } : fn; + }; + + const callbackify$1 = callbackify; + + const zlibOptions = { + flush: zlib__default["default"].constants.Z_SYNC_FLUSH, + finishFlush: zlib__default["default"].constants.Z_SYNC_FLUSH + }; + + const brotliOptions = { + flush: zlib__default["default"].constants.BROTLI_OPERATION_FLUSH, + finishFlush: zlib__default["default"].constants.BROTLI_OPERATION_FLUSH + }; + + const isBrotliSupported = utils$1.isFunction(zlib__default["default"].createBrotliDecompress); + + const {http: httpFollow, https: httpsFollow} = followRedirects__default["default"]; + + const isHttps = /https:?/; + + const supportedProtocols = platform.protocols.map(protocol => { + return protocol + ':'; + }); + + /** + * If the proxy or config beforeRedirects functions are defined, call them with the options + * object. + * + * @param {Object} options - The options object that was passed to the request. + * + * @returns {Object} + */ + function dispatchBeforeRedirect(options) { + if (options.beforeRedirects.proxy) { + options.beforeRedirects.proxy(options); + } + if (options.beforeRedirects.config) { + options.beforeRedirects.config(options); + } + } + + /** + * If the proxy or config afterRedirects functions are defined, call them with the options + * + * @param {http.ClientRequestArgs} options + * @param {AxiosProxyConfig} configProxy configuration from Axios options object + * @param {string} location + * + * @returns {http.ClientRequestArgs} + */ + function setProxy(options, configProxy, location) { + let proxy = configProxy; + if (!proxy && proxy !== false) { + const proxyUrl = proxyFromEnv.getProxyForUrl(location); + if (proxyUrl) { + proxy = new URL(proxyUrl); + } + } + if (proxy) { + // Basic proxy authorization + if (proxy.username) { + proxy.auth = (proxy.username || '') + ':' + (proxy.password || ''); + } + + if (proxy.auth) { + // Support proxy auth object form + if (proxy.auth.username || proxy.auth.password) { + proxy.auth = (proxy.auth.username || '') + ':' + (proxy.auth.password || ''); + } + const base64 = Buffer + .from(proxy.auth, 'utf8') + .toString('base64'); + options.headers['Proxy-Authorization'] = 'Basic ' + base64; + } + + options.headers.host = options.hostname + (options.port ? ':' + options.port : ''); + const proxyHost = proxy.hostname || proxy.host; + options.hostname = proxyHost; + // Replace 'host' since options is not a URL object + options.host = proxyHost; + options.port = proxy.port; + options.path = location; + if (proxy.protocol) { + options.protocol = proxy.protocol.includes(':') ? proxy.protocol : `${proxy.protocol}:`; + } + } + + options.beforeRedirects.proxy = function beforeRedirect(redirectOptions) { + // Configure proxy for redirected request, passing the original config proxy to apply + // the exact same logic as if the redirected request was performed by axios directly. + setProxy(redirectOptions, configProxy, redirectOptions.href); + }; + } + + const isHttpAdapterSupported = typeof process !== 'undefined' && utils$1.kindOf(process) === 'process'; + + // temporary hotfix + + const wrapAsync = (asyncExecutor) => { + return new Promise((resolve, reject) => { + let onDone; + let isDone; + + const done = (value, isRejected) => { + if (isDone) return; + isDone = true; + onDone && onDone(value, isRejected); + }; + + const _resolve = (value) => { + done(value); + resolve(value); + }; + + const _reject = (reason) => { + done(reason, true); + reject(reason); + }; + + asyncExecutor(_resolve, _reject, (onDoneHandler) => (onDone = onDoneHandler)).catch(_reject); + }) + }; + + const resolveFamily = ({address, family}) => { + if (!utils$1.isString(address)) { + throw TypeError('address must be a string'); + } + return ({ + address, + family: family || (address.indexOf('.') < 0 ? 6 : 4) + }); + }; + + const buildAddressEntry = (address, family) => resolveFamily(utils$1.isObject(address) ? address : {address, family}); + + /*eslint consistent-return:0*/ + const httpAdapter = isHttpAdapterSupported && function httpAdapter(config) { + return wrapAsync(async function dispatchHttpRequest(resolve, reject, onDone) { + let {data, lookup, family} = config; + const {responseType, responseEncoding} = config; + const method = config.method.toUpperCase(); + let isDone; + let rejected = false; + let req; + + if (lookup) { + const _lookup = callbackify$1(lookup, (value) => utils$1.isArray(value) ? value : [value]); + // hotfix to support opt.all option which is required for node 20.x + lookup = (hostname, opt, cb) => { + _lookup(hostname, opt, (err, arg0, arg1) => { + const addresses = utils$1.isArray(arg0) ? arg0.map(addr => buildAddressEntry(addr)) : [buildAddressEntry(arg0, arg1)]; + + opt.all ? cb(err, addresses) : cb(err, addresses[0].address, addresses[0].family); + }); + }; + } + + // temporary internal emitter until the AxiosRequest class will be implemented + const emitter = new EventEmitter__default["default"](); + + const onFinished = () => { + if (config.cancelToken) { + config.cancelToken.unsubscribe(abort); + } + + if (config.signal) { + config.signal.removeEventListener('abort', abort); + } + + emitter.removeAllListeners(); + }; + + onDone((value, isRejected) => { + isDone = true; + if (isRejected) { + rejected = true; + onFinished(); + } + }); + + function abort(reason) { + emitter.emit('abort', !reason || reason.type ? new CanceledError(null, config, req) : reason); + } + + emitter.once('abort', reject); + + if (config.cancelToken || config.signal) { + config.cancelToken && config.cancelToken.subscribe(abort); + if (config.signal) { + config.signal.aborted ? abort() : config.signal.addEventListener('abort', abort); + } + } + + // Parse url + const fullPath = buildFullPath(config.baseURL, config.url); + const parsed = new URL(fullPath, 'http://localhost'); + const protocol = parsed.protocol || supportedProtocols[0]; + + if (protocol === 'data:') { + let convertedData; + + if (method !== 'GET') { + return settle(resolve, reject, { + status: 405, + statusText: 'method not allowed', + headers: {}, + config + }); + } + + try { + convertedData = fromDataURI(config.url, responseType === 'blob', { + Blob: config.env && config.env.Blob + }); + } catch (err) { + throw AxiosError.from(err, AxiosError.ERR_BAD_REQUEST, config); + } + + if (responseType === 'text') { + convertedData = convertedData.toString(responseEncoding); + + if (!responseEncoding || responseEncoding === 'utf8') { + convertedData = utils$1.stripBOM(convertedData); + } + } else if (responseType === 'stream') { + convertedData = stream__default["default"].Readable.from(convertedData); + } + + return settle(resolve, reject, { + data: convertedData, + status: 200, + statusText: 'OK', + headers: new AxiosHeaders$1(), + config + }); + } + + if (supportedProtocols.indexOf(protocol) === -1) { + return reject(new AxiosError( + 'Unsupported protocol ' + protocol, + AxiosError.ERR_BAD_REQUEST, + config + )); + } + + const headers = AxiosHeaders$1.from(config.headers).normalize(); + + // Set User-Agent (required by some servers) + // See https://github.com/axios/axios/issues/69 + // User-Agent is specified; handle case where no UA header is desired + // Only set header if it hasn't been set in config + headers.set('User-Agent', 'axios/' + VERSION, false); + + const onDownloadProgress = config.onDownloadProgress; + const onUploadProgress = config.onUploadProgress; + const maxRate = config.maxRate; + let maxUploadRate = undefined; + let maxDownloadRate = undefined; + + // support for spec compliant FormData objects + if (utils$1.isSpecCompliantForm(data)) { + const userBoundary = headers.getContentType(/boundary=([-_\w\d]{10,70})/i); + + data = formDataToStream$1(data, (formHeaders) => { + headers.set(formHeaders); + }, { + tag: `axios-${VERSION}-boundary`, + boundary: userBoundary && userBoundary[1] || undefined + }); + // support for https://www.npmjs.com/package/form-data api + } else if (utils$1.isFormData(data) && utils$1.isFunction(data.getHeaders)) { + headers.set(data.getHeaders()); + + if (!headers.hasContentLength()) { + try { + const knownLength = await util__default["default"].promisify(data.getLength).call(data); + Number.isFinite(knownLength) && knownLength >= 0 && headers.setContentLength(knownLength); + /*eslint no-empty:0*/ + } catch (e) { + } + } + } else if (utils$1.isBlob(data)) { + data.size && headers.setContentType(data.type || 'application/octet-stream'); + headers.setContentLength(data.size || 0); + data = stream__default["default"].Readable.from(readBlob$1(data)); + } else if (data && !utils$1.isStream(data)) { + if (Buffer.isBuffer(data)) ; else if (utils$1.isArrayBuffer(data)) { + data = Buffer.from(new Uint8Array(data)); + } else if (utils$1.isString(data)) { + data = Buffer.from(data, 'utf-8'); + } else { + return reject(new AxiosError( + 'Data after transformation must be a string, an ArrayBuffer, a Buffer, or a Stream', + AxiosError.ERR_BAD_REQUEST, + config + )); + } + + // Add Content-Length header if data exists + headers.setContentLength(data.length, false); + + if (config.maxBodyLength > -1 && data.length > config.maxBodyLength) { + return reject(new AxiosError( + 'Request body larger than maxBodyLength limit', + AxiosError.ERR_BAD_REQUEST, + config + )); + } + } + + const contentLength = utils$1.toFiniteNumber(headers.getContentLength()); + + if (utils$1.isArray(maxRate)) { + maxUploadRate = maxRate[0]; + maxDownloadRate = maxRate[1]; + } else { + maxUploadRate = maxDownloadRate = maxRate; + } + + if (data && (onUploadProgress || maxUploadRate)) { + if (!utils$1.isStream(data)) { + data = stream__default["default"].Readable.from(data, {objectMode: false}); + } + + data = stream__default["default"].pipeline([data, new AxiosTransformStream$1({ + length: contentLength, + maxRate: utils$1.toFiniteNumber(maxUploadRate) + })], utils$1.noop); + + onUploadProgress && data.on('progress', progress => { + onUploadProgress(Object.assign(progress, { + upload: true + })); + }); + } + + // HTTP basic authentication + let auth = undefined; + if (config.auth) { + const username = config.auth.username || ''; + const password = config.auth.password || ''; + auth = username + ':' + password; + } + + if (!auth && parsed.username) { + const urlUsername = parsed.username; + const urlPassword = parsed.password; + auth = urlUsername + ':' + urlPassword; + } + + auth && headers.delete('authorization'); + + let path; + + try { + path = buildURL( + parsed.pathname + parsed.search, + config.params, + config.paramsSerializer + ).replace(/^\?/, ''); + } catch (err) { + const customErr = new Error(err.message); + customErr.config = config; + customErr.url = config.url; + customErr.exists = true; + return reject(customErr); + } + + headers.set( + 'Accept-Encoding', + 'gzip, compress, deflate' + (isBrotliSupported ? ', br' : ''), false + ); + + const options = { + path, + method: method, + headers: headers.toJSON(), + agents: { http: config.httpAgent, https: config.httpsAgent }, + auth, + protocol, + family, + beforeRedirect: dispatchBeforeRedirect, + beforeRedirects: {} + }; + + // cacheable-lookup integration hotfix + !utils$1.isUndefined(lookup) && (options.lookup = lookup); + + if (config.socketPath) { + options.socketPath = config.socketPath; + } else { + options.hostname = parsed.hostname; + options.port = parsed.port; + setProxy(options, config.proxy, protocol + '//' + parsed.hostname + (parsed.port ? ':' + parsed.port : '') + options.path); + } + + let transport; + const isHttpsRequest = isHttps.test(options.protocol); + options.agent = isHttpsRequest ? config.httpsAgent : config.httpAgent; + if (config.transport) { + transport = config.transport; + } else if (config.maxRedirects === 0) { + transport = isHttpsRequest ? https__default["default"] : http__default["default"]; + } else { + if (config.maxRedirects) { + options.maxRedirects = config.maxRedirects; + } + if (config.beforeRedirect) { + options.beforeRedirects.config = config.beforeRedirect; + } + transport = isHttpsRequest ? httpsFollow : httpFollow; + } + + if (config.maxBodyLength > -1) { + options.maxBodyLength = config.maxBodyLength; + } else { + // follow-redirects does not skip comparison, so it should always succeed for axios -1 unlimited + options.maxBodyLength = Infinity; + } + + if (config.insecureHTTPParser) { + options.insecureHTTPParser = config.insecureHTTPParser; + } + + // Create the request + req = transport.request(options, function handleResponse(res) { + if (req.destroyed) return; + + const streams = [res]; + + const responseLength = +res.headers['content-length']; + + if (onDownloadProgress) { + const transformStream = new AxiosTransformStream$1({ + length: utils$1.toFiniteNumber(responseLength), + maxRate: utils$1.toFiniteNumber(maxDownloadRate) + }); + + onDownloadProgress && transformStream.on('progress', progress => { + onDownloadProgress(Object.assign(progress, { + download: true + })); + }); + + streams.push(transformStream); + } + + // decompress the response body transparently if required + let responseStream = res; + + // return the last request in case of redirects + const lastRequest = res.req || req; + + // if decompress disabled we should not decompress + if (config.decompress !== false && res.headers['content-encoding']) { + // if no content, but headers still say that it is encoded, + // remove the header not confuse downstream operations + if (method === 'HEAD' || res.statusCode === 204) { + delete res.headers['content-encoding']; + } + + switch ((res.headers['content-encoding'] || '').toLowerCase()) { + /*eslint default-case:0*/ + case 'gzip': + case 'x-gzip': + case 'compress': + case 'x-compress': + // add the unzipper to the body stream processing pipeline + streams.push(zlib__default["default"].createUnzip(zlibOptions)); + + // remove the content-encoding in order to not confuse downstream operations + delete res.headers['content-encoding']; + break; + case 'deflate': + streams.push(new ZlibHeaderTransformStream$1()); + + // add the unzipper to the body stream processing pipeline + streams.push(zlib__default["default"].createUnzip(zlibOptions)); + + // remove the content-encoding in order to not confuse downstream operations + delete res.headers['content-encoding']; + break; + case 'br': + if (isBrotliSupported) { + streams.push(zlib__default["default"].createBrotliDecompress(brotliOptions)); + delete res.headers['content-encoding']; + } + } + } + + responseStream = streams.length > 1 ? stream__default["default"].pipeline(streams, utils$1.noop) : streams[0]; + + const offListeners = stream__default["default"].finished(responseStream, () => { + offListeners(); + onFinished(); + }); + + const response = { + status: res.statusCode, + statusText: res.statusMessage, + headers: new AxiosHeaders$1(res.headers), + config, + request: lastRequest + }; + + if (responseType === 'stream') { + response.data = responseStream; + settle(resolve, reject, response); + } else { + const responseBuffer = []; + let totalResponseBytes = 0; + + responseStream.on('data', function handleStreamData(chunk) { + responseBuffer.push(chunk); + totalResponseBytes += chunk.length; + + // make sure the content length is not over the maxContentLength if specified + if (config.maxContentLength > -1 && totalResponseBytes > config.maxContentLength) { + // stream.destroy() emit aborted event before calling reject() on Node.js v16 + rejected = true; + responseStream.destroy(); + reject(new AxiosError('maxContentLength size of ' + config.maxContentLength + ' exceeded', + AxiosError.ERR_BAD_RESPONSE, config, lastRequest)); + } + }); + + responseStream.on('aborted', function handlerStreamAborted() { + if (rejected) { + return; + } + + const err = new AxiosError( + 'maxContentLength size of ' + config.maxContentLength + ' exceeded', + AxiosError.ERR_BAD_RESPONSE, + config, + lastRequest + ); + responseStream.destroy(err); + reject(err); + }); + + responseStream.on('error', function handleStreamError(err) { + if (req.destroyed) return; + reject(AxiosError.from(err, null, config, lastRequest)); + }); + + responseStream.on('end', function handleStreamEnd() { + try { + let responseData = responseBuffer.length === 1 ? responseBuffer[0] : Buffer.concat(responseBuffer); + if (responseType !== 'arraybuffer') { + responseData = responseData.toString(responseEncoding); + if (!responseEncoding || responseEncoding === 'utf8') { + responseData = utils$1.stripBOM(responseData); + } + } + response.data = responseData; + } catch (err) { + return reject(AxiosError.from(err, null, config, response.request, response)); + } + settle(resolve, reject, response); + }); + } + + emitter.once('abort', err => { + if (!responseStream.destroyed) { + responseStream.emit('error', err); + responseStream.destroy(); + } + }); + }); + + emitter.once('abort', err => { + reject(err); + req.destroy(err); + }); + + // Handle errors + req.on('error', function handleRequestError(err) { + // @todo remove + // if (req.aborted && err.code !== AxiosError.ERR_FR_TOO_MANY_REDIRECTS) return; + reject(AxiosError.from(err, null, config, req)); + }); + + // set tcp keep alive to prevent drop connection by peer + req.on('socket', function handleRequestSocket(socket) { + // default interval of sending ack packet is 1 minute + socket.setKeepAlive(true, 1000 * 60); + }); + + // Handle request timeout + if (config.timeout) { + // This is forcing a int timeout to avoid problems if the `req` interface doesn't handle other types. + const timeout = parseInt(config.timeout, 10); + + if (Number.isNaN(timeout)) { + reject(new AxiosError( + 'error trying to parse `config.timeout` to int', + AxiosError.ERR_BAD_OPTION_VALUE, + config, + req + )); + + return; + } + + // Sometime, the response will be very slow, and does not respond, the connect event will be block by event loop system. + // And timer callback will be fired, and abort() will be invoked before connection, then get "socket hang up" and code ECONNRESET. + // At this time, if we have a large number of request, nodejs will hang up some socket on background. and the number will up and up. + // And then these socket which be hang up will devouring CPU little by little. + // ClientRequest.setTimeout will be fired on the specify milliseconds, and can make sure that abort() will be fired after connect. + req.setTimeout(timeout, function handleRequestTimeout() { + if (isDone) return; + let timeoutErrorMessage = config.timeout ? 'timeout of ' + config.timeout + 'ms exceeded' : 'timeout exceeded'; + const transitional = config.transitional || transitionalDefaults; + if (config.timeoutErrorMessage) { + timeoutErrorMessage = config.timeoutErrorMessage; + } + reject(new AxiosError( + timeoutErrorMessage, + transitional.clarifyTimeoutError ? AxiosError.ETIMEDOUT : AxiosError.ECONNABORTED, + config, + req + )); + abort(); + }); + } + + + // Send the request + if (utils$1.isStream(data)) { + let ended = false; + let errored = false; + + data.on('end', () => { + ended = true; + }); + + data.once('error', err => { + errored = true; + req.destroy(err); + }); + + data.on('close', () => { + if (!ended && !errored) { + abort(new CanceledError('Request stream has been aborted', config, req)); + } + }); + + data.pipe(req); + } else { + req.end(data); + } + }); + }; + + const cookies = platform.hasStandardBrowserEnv ? + + // Standard browser envs support document.cookie + { + write(name, value, expires, path, domain, secure) { + const cookie = [name + '=' + encodeURIComponent(value)]; + + utils$1.isNumber(expires) && cookie.push('expires=' + new Date(expires).toGMTString()); + + utils$1.isString(path) && cookie.push('path=' + path); + + utils$1.isString(domain) && cookie.push('domain=' + domain); + + secure === true && cookie.push('secure'); + + document.cookie = cookie.join('; '); + }, + + read(name) { + const match = document.cookie.match(new RegExp('(^|;\\s*)(' + name + ')=([^;]*)')); + return (match ? decodeURIComponent(match[3]) : null); + }, + + remove(name) { + this.write(name, '', Date.now() - 86400000); + } + } + + : + + // Non-standard browser env (web workers, react-native) lack needed support. + { + write() {}, + read() { + return null; + }, + remove() {} + }; + + const isURLSameOrigin = platform.hasStandardBrowserEnv ? + + // Standard browser envs have full support of the APIs needed to test + // whether the request URL is of the same origin as current location. + (function standardBrowserEnv() { + const msie = /(msie|trident)/i.test(navigator.userAgent); + const urlParsingNode = document.createElement('a'); + let originURL; + + /** + * Parse a URL to discover its components + * + * @param {String} url The URL to be parsed + * @returns {Object} + */ + function resolveURL(url) { + let href = url; + + if (msie) { + // IE needs attribute set twice to normalize properties + urlParsingNode.setAttribute('href', href); + href = urlParsingNode.href; + } + + urlParsingNode.setAttribute('href', href); + + // urlParsingNode provides the UrlUtils interface - http://url.spec.whatwg.org/#urlutils + return { + href: urlParsingNode.href, + protocol: urlParsingNode.protocol ? urlParsingNode.protocol.replace(/:$/, '') : '', + host: urlParsingNode.host, + search: urlParsingNode.search ? urlParsingNode.search.replace(/^\?/, '') : '', + hash: urlParsingNode.hash ? urlParsingNode.hash.replace(/^#/, '') : '', + hostname: urlParsingNode.hostname, + port: urlParsingNode.port, + pathname: (urlParsingNode.pathname.charAt(0) === '/') ? + urlParsingNode.pathname : + '/' + urlParsingNode.pathname + }; + } + + originURL = resolveURL(window.location.href); + + /** + * Determine if a URL shares the same origin as the current location + * + * @param {String} requestURL The URL to test + * @returns {boolean} True if URL shares the same origin, otherwise false + */ + return function isURLSameOrigin(requestURL) { + const parsed = (utils$1.isString(requestURL)) ? resolveURL(requestURL) : requestURL; + return (parsed.protocol === originURL.protocol && + parsed.host === originURL.host); + }; + })() : + + // Non standard browser envs (web workers, react-native) lack needed support. + (function nonStandardBrowserEnv() { + return function isURLSameOrigin() { + return true; + }; + })(); + + function progressEventReducer(listener, isDownloadStream) { + let bytesNotified = 0; + const _speedometer = speedometer(50, 250); + + return e => { + const loaded = e.loaded; + const total = e.lengthComputable ? e.total : undefined; + const progressBytes = loaded - bytesNotified; + const rate = _speedometer(progressBytes); + const inRange = loaded <= total; + + bytesNotified = loaded; + + const data = { + loaded, + total, + progress: total ? (loaded / total) : undefined, + bytes: progressBytes, + rate: rate ? rate : undefined, + estimated: rate && total && inRange ? (total - loaded) / rate : undefined, + event: e + }; + + data[isDownloadStream ? 'download' : 'upload'] = true; + + listener(data); + }; + } + + const isXHRAdapterSupported = typeof XMLHttpRequest !== 'undefined'; + + const xhrAdapter = isXHRAdapterSupported && function (config) { + return new Promise(function dispatchXhrRequest(resolve, reject) { + let requestData = config.data; + const requestHeaders = AxiosHeaders$1.from(config.headers).normalize(); + let {responseType, withXSRFToken} = config; + let onCanceled; + function done() { + if (config.cancelToken) { + config.cancelToken.unsubscribe(onCanceled); + } + + if (config.signal) { + config.signal.removeEventListener('abort', onCanceled); + } + } + + let contentType; + + if (utils$1.isFormData(requestData)) { + if (platform.hasStandardBrowserEnv || platform.hasStandardBrowserWebWorkerEnv) { + requestHeaders.setContentType(false); // Let the browser set it + } else if ((contentType = requestHeaders.getContentType()) !== false) { + // fix semicolon duplication issue for ReactNative FormData implementation + const [type, ...tokens] = contentType ? contentType.split(';').map(token => token.trim()).filter(Boolean) : []; + requestHeaders.setContentType([type || 'multipart/form-data', ...tokens].join('; ')); + } + } + + let request = new XMLHttpRequest(); + + // HTTP basic authentication + if (config.auth) { + const username = config.auth.username || ''; + const password = config.auth.password ? unescape(encodeURIComponent(config.auth.password)) : ''; + requestHeaders.set('Authorization', 'Basic ' + btoa(username + ':' + password)); + } + + const fullPath = buildFullPath(config.baseURL, config.url); + + request.open(config.method.toUpperCase(), buildURL(fullPath, config.params, config.paramsSerializer), true); + + // Set the request timeout in MS + request.timeout = config.timeout; + + function onloadend() { + if (!request) { + return; + } + // Prepare the response + const responseHeaders = AxiosHeaders$1.from( + 'getAllResponseHeaders' in request && request.getAllResponseHeaders() + ); + const responseData = !responseType || responseType === 'text' || responseType === 'json' ? + request.responseText : request.response; + const response = { + data: responseData, + status: request.status, + statusText: request.statusText, + headers: responseHeaders, + config, + request + }; + + settle(function _resolve(value) { + resolve(value); + done(); + }, function _reject(err) { + reject(err); + done(); + }, response); + + // Clean up request + request = null; + } + + if ('onloadend' in request) { + // Use onloadend if available + request.onloadend = onloadend; + } else { + // Listen for ready state to emulate onloadend + request.onreadystatechange = function handleLoad() { + if (!request || request.readyState !== 4) { + return; + } + + // The request errored out and we didn't get a response, this will be + // handled by onerror instead + // With one exception: request that using file: protocol, most browsers + // will return status as 0 even though it's a successful request + if (request.status === 0 && !(request.responseURL && request.responseURL.indexOf('file:') === 0)) { + return; + } + // readystate handler is calling before onerror or ontimeout handlers, + // so we should call onloadend on the next 'tick' + setTimeout(onloadend); + }; + } + + // Handle browser request cancellation (as opposed to a manual cancellation) + request.onabort = function handleAbort() { + if (!request) { + return; + } + + reject(new AxiosError('Request aborted', AxiosError.ECONNABORTED, config, request)); + + // Clean up request + request = null; + }; + + // Handle low level network errors + request.onerror = function handleError() { + // Real errors are hidden from us by the browser + // onerror should only fire if it's a network error + reject(new AxiosError('Network Error', AxiosError.ERR_NETWORK, config, request)); + + // Clean up request + request = null; + }; + + // Handle timeout + request.ontimeout = function handleTimeout() { + let timeoutErrorMessage = config.timeout ? 'timeout of ' + config.timeout + 'ms exceeded' : 'timeout exceeded'; + const transitional = config.transitional || transitionalDefaults; + if (config.timeoutErrorMessage) { + timeoutErrorMessage = config.timeoutErrorMessage; + } + reject(new AxiosError( + timeoutErrorMessage, + transitional.clarifyTimeoutError ? AxiosError.ETIMEDOUT : AxiosError.ECONNABORTED, + config, + request)); + + // Clean up request + request = null; + }; + + // Add xsrf header + // This is only done if running in a standard browser environment. + // Specifically not if we're in a web worker, or react-native. + if(platform.hasStandardBrowserEnv) { + withXSRFToken && utils$1.isFunction(withXSRFToken) && (withXSRFToken = withXSRFToken(config)); + + if (withXSRFToken || (withXSRFToken !== false && isURLSameOrigin(fullPath))) { + // Add xsrf header + const xsrfValue = config.xsrfHeaderName && config.xsrfCookieName && cookies.read(config.xsrfCookieName); + + if (xsrfValue) { + requestHeaders.set(config.xsrfHeaderName, xsrfValue); + } + } + } + + // Remove Content-Type if data is undefined + requestData === undefined && requestHeaders.setContentType(null); + + // Add headers to the request + if ('setRequestHeader' in request) { + utils$1.forEach(requestHeaders.toJSON(), function setRequestHeader(val, key) { + request.setRequestHeader(key, val); + }); + } + + // Add withCredentials to request if needed + if (!utils$1.isUndefined(config.withCredentials)) { + request.withCredentials = !!config.withCredentials; + } + + // Add responseType to request if needed + if (responseType && responseType !== 'json') { + request.responseType = config.responseType; + } + + // Handle progress if needed + if (typeof config.onDownloadProgress === 'function') { + request.addEventListener('progress', progressEventReducer(config.onDownloadProgress, true)); + } + + // Not all browsers support upload events + if (typeof config.onUploadProgress === 'function' && request.upload) { + request.upload.addEventListener('progress', progressEventReducer(config.onUploadProgress)); + } + + if (config.cancelToken || config.signal) { + // Handle cancellation + // eslint-disable-next-line func-names + onCanceled = cancel => { + if (!request) { + return; + } + reject(!cancel || cancel.type ? new CanceledError(null, config, request) : cancel); + request.abort(); + request = null; + }; + + config.cancelToken && config.cancelToken.subscribe(onCanceled); + if (config.signal) { + config.signal.aborted ? onCanceled() : config.signal.addEventListener('abort', onCanceled); + } + } + + const protocol = parseProtocol(fullPath); + + if (protocol && platform.protocols.indexOf(protocol) === -1) { + reject(new AxiosError('Unsupported protocol ' + protocol + ':', AxiosError.ERR_BAD_REQUEST, config)); + return; + } + + + // Send the request + request.send(requestData || null); + }); + }; + + const knownAdapters = { + http: httpAdapter, + xhr: xhrAdapter + }; + + utils$1.forEach(knownAdapters, (fn, value) => { + if (fn) { + try { + Object.defineProperty(fn, 'name', {value}); + } catch (e) { + // eslint-disable-next-line no-empty + } + Object.defineProperty(fn, 'adapterName', {value}); + } + }); + + const renderReason = (reason) => `- ${reason}`; + + const isResolvedHandle = (adapter) => utils$1.isFunction(adapter) || adapter === null || adapter === false; + + const adapters = { + getAdapter: (adapters) => { + adapters = utils$1.isArray(adapters) ? adapters : [adapters]; + + const {length} = adapters; + let nameOrAdapter; + let adapter; + + const rejectedReasons = {}; + + for (let i = 0; i < length; i++) { + nameOrAdapter = adapters[i]; + let id; + + adapter = nameOrAdapter; + + if (!isResolvedHandle(nameOrAdapter)) { + adapter = knownAdapters[(id = String(nameOrAdapter)).toLowerCase()]; + + if (adapter === undefined) { + throw new AxiosError(`Unknown adapter '${id}'`); + } + } + + if (adapter) { + break; + } + + rejectedReasons[id || '#' + i] = adapter; + } + + if (!adapter) { + + const reasons = Object.entries(rejectedReasons) + .map(([id, state]) => `adapter ${id} ` + + (state === false ? 'is not supported by the environment' : 'is not available in the build') + ); + + let s = length ? + (reasons.length > 1 ? 'since :\n' + reasons.map(renderReason).join('\n') : ' ' + renderReason(reasons[0])) : + 'as no adapter specified'; + + throw new AxiosError( + `There is no suitable adapter to dispatch the request ` + s, + 'ERR_NOT_SUPPORT' + ); + } + + return adapter; + }, + adapters: knownAdapters + }; + + /** + * Throws a `CanceledError` if cancellation has been requested. + * + * @param {Object} config The config that is to be used for the request + * + * @returns {void} + */ + function throwIfCancellationRequested(config) { + if (config.cancelToken) { + config.cancelToken.throwIfRequested(); + } + + if (config.signal && config.signal.aborted) { + throw new CanceledError(null, config); + } + } + + /** + * Dispatch a request to the server using the configured adapter. + * + * @param {object} config The config that is to be used for the request + * + * @returns {Promise} The Promise to be fulfilled + */ + function dispatchRequest(config) { + throwIfCancellationRequested(config); + + config.headers = AxiosHeaders$1.from(config.headers); + + // Transform request data + config.data = transformData.call( + config, + config.transformRequest + ); + + if (['post', 'put', 'patch'].indexOf(config.method) !== -1) { + config.headers.setContentType('application/x-www-form-urlencoded', false); + } + + const adapter = adapters.getAdapter(config.adapter || defaults$1.adapter); + + return adapter(config).then(function onAdapterResolution(response) { + throwIfCancellationRequested(config); + + // Transform response data + response.data = transformData.call( + config, + config.transformResponse, + response + ); + + response.headers = AxiosHeaders$1.from(response.headers); + + return response; + }, function onAdapterRejection(reason) { + if (!isCancel(reason)) { + throwIfCancellationRequested(config); + + // Transform response data + if (reason && reason.response) { + reason.response.data = transformData.call( + config, + config.transformResponse, + reason.response + ); + reason.response.headers = AxiosHeaders$1.from(reason.response.headers); + } + } + + return Promise.reject(reason); + }); + } + + const headersToObject = (thing) => thing instanceof AxiosHeaders$1 ? thing.toJSON() : thing; + + /** + * Config-specific merge-function which creates a new config-object + * by merging two configuration objects together. + * + * @param {Object} config1 + * @param {Object} config2 + * + * @returns {Object} New object resulting from merging config2 to config1 + */ + function mergeConfig(config1, config2) { + // eslint-disable-next-line no-param-reassign + config2 = config2 || {}; + const config = {}; + + function getMergedValue(target, source, caseless) { + if (utils$1.isPlainObject(target) && utils$1.isPlainObject(source)) { + return utils$1.merge.call({caseless}, target, source); + } else if (utils$1.isPlainObject(source)) { + return utils$1.merge({}, source); + } else if (utils$1.isArray(source)) { + return source.slice(); + } + return source; + } + + // eslint-disable-next-line consistent-return + function mergeDeepProperties(a, b, caseless) { + if (!utils$1.isUndefined(b)) { + return getMergedValue(a, b, caseless); + } else if (!utils$1.isUndefined(a)) { + return getMergedValue(undefined, a, caseless); + } + } + + // eslint-disable-next-line consistent-return + function valueFromConfig2(a, b) { + if (!utils$1.isUndefined(b)) { + return getMergedValue(undefined, b); + } + } + + // eslint-disable-next-line consistent-return + function defaultToConfig2(a, b) { + if (!utils$1.isUndefined(b)) { + return getMergedValue(undefined, b); + } else if (!utils$1.isUndefined(a)) { + return getMergedValue(undefined, a); + } + } + + // eslint-disable-next-line consistent-return + function mergeDirectKeys(a, b, prop) { + if (prop in config2) { + return getMergedValue(a, b); + } else if (prop in config1) { + return getMergedValue(undefined, a); + } + } + + const mergeMap = { + url: valueFromConfig2, + method: valueFromConfig2, + data: valueFromConfig2, + baseURL: defaultToConfig2, + transformRequest: defaultToConfig2, + transformResponse: defaultToConfig2, + paramsSerializer: defaultToConfig2, + timeout: defaultToConfig2, + timeoutMessage: defaultToConfig2, + withCredentials: defaultToConfig2, + withXSRFToken: defaultToConfig2, + adapter: defaultToConfig2, + responseType: defaultToConfig2, + xsrfCookieName: defaultToConfig2, + xsrfHeaderName: defaultToConfig2, + onUploadProgress: defaultToConfig2, + onDownloadProgress: defaultToConfig2, + decompress: defaultToConfig2, + maxContentLength: defaultToConfig2, + maxBodyLength: defaultToConfig2, + beforeRedirect: defaultToConfig2, + transport: defaultToConfig2, + httpAgent: defaultToConfig2, + httpsAgent: defaultToConfig2, + cancelToken: defaultToConfig2, + socketPath: defaultToConfig2, + responseEncoding: defaultToConfig2, + validateStatus: mergeDirectKeys, + headers: (a, b) => mergeDeepProperties(headersToObject(a), headersToObject(b), true) + }; + + utils$1.forEach(Object.keys(Object.assign({}, config1, config2)), function computeConfigValue(prop) { + const merge = mergeMap[prop] || mergeDeepProperties; + const configValue = merge(config1[prop], config2[prop], prop); + (utils$1.isUndefined(configValue) && merge !== mergeDirectKeys) || (config[prop] = configValue); + }); + + return config; + } + + const validators$1 = {}; + + // eslint-disable-next-line func-names + ['object', 'boolean', 'number', 'function', 'string', 'symbol'].forEach((type, i) => { + validators$1[type] = function validator(thing) { + return typeof thing === type || 'a' + (i < 1 ? 'n ' : ' ') + type; + }; + }); + + const deprecatedWarnings = {}; + + /** + * Transitional option validator + * + * @param {function|boolean?} validator - set to false if the transitional option has been removed + * @param {string?} version - deprecated version / removed since version + * @param {string?} message - some message with additional info + * + * @returns {function} + */ + validators$1.transitional = function transitional(validator, version, message) { + function formatMessage(opt, desc) { + return '[Axios v' + VERSION + '] Transitional option \'' + opt + '\'' + desc + (message ? '. ' + message : ''); + } + + // eslint-disable-next-line func-names + return (value, opt, opts) => { + if (validator === false) { + throw new AxiosError( + formatMessage(opt, ' has been removed' + (version ? ' in ' + version : '')), + AxiosError.ERR_DEPRECATED + ); + } + + if (version && !deprecatedWarnings[opt]) { + deprecatedWarnings[opt] = true; + // eslint-disable-next-line no-console + console.warn( + formatMessage( + opt, + ' has been deprecated since v' + version + ' and will be removed in the near future' + ) + ); + } + + return validator ? validator(value, opt, opts) : true; + }; + }; + + /** + * Assert object's properties type + * + * @param {object} options + * @param {object} schema + * @param {boolean?} allowUnknown + * + * @returns {object} + */ + + function assertOptions(options, schema, allowUnknown) { + if (typeof options !== 'object') { + throw new AxiosError('options must be an object', AxiosError.ERR_BAD_OPTION_VALUE); + } + const keys = Object.keys(options); + let i = keys.length; + while (i-- > 0) { + const opt = keys[i]; + const validator = schema[opt]; + if (validator) { + const value = options[opt]; + const result = value === undefined || validator(value, opt, options); + if (result !== true) { + throw new AxiosError('option ' + opt + ' must be ' + result, AxiosError.ERR_BAD_OPTION_VALUE); + } + continue; + } + if (allowUnknown !== true) { + throw new AxiosError('Unknown option ' + opt, AxiosError.ERR_BAD_OPTION); + } + } + } + + const validator = { + assertOptions, + validators: validators$1 + }; + + const validators = validator.validators; + + /** + * Create a new instance of Axios + * + * @param {Object} instanceConfig The default config for the instance + * + * @return {Axios} A new instance of Axios + */ + class Axios { + constructor(instanceConfig) { + this.defaults = instanceConfig; + this.interceptors = { + request: new InterceptorManager$1(), + response: new InterceptorManager$1() + }; + } + + /** + * Dispatch a request + * + * @param {String|Object} configOrUrl The config specific for this request (merged with this.defaults) + * @param {?Object} config + * + * @returns {Promise} The Promise to be fulfilled + */ + request(configOrUrl, config) { + /*eslint no-param-reassign:0*/ + // Allow for axios('example/url'[, config]) a la fetch API + if (typeof configOrUrl === 'string') { + config = config || {}; + config.url = configOrUrl; + } else { + config = configOrUrl || {}; + } + + config = mergeConfig(this.defaults, config); + + const {transitional, paramsSerializer, headers} = config; + + if (transitional !== undefined) { + validator.assertOptions(transitional, { + silentJSONParsing: validators.transitional(validators.boolean), + forcedJSONParsing: validators.transitional(validators.boolean), + clarifyTimeoutError: validators.transitional(validators.boolean) + }, false); + } + + if (paramsSerializer != null) { + if (utils$1.isFunction(paramsSerializer)) { + config.paramsSerializer = { + serialize: paramsSerializer + }; + } else { + validator.assertOptions(paramsSerializer, { + encode: validators.function, + serialize: validators.function + }, true); + } + } + + // Set config.method + config.method = (config.method || this.defaults.method || 'get').toLowerCase(); + + // Flatten headers + let contextHeaders = headers && utils$1.merge( + headers.common, + headers[config.method] + ); + + headers && utils$1.forEach( + ['delete', 'get', 'head', 'post', 'put', 'patch', 'common'], + (method) => { + delete headers[method]; + } + ); + + config.headers = AxiosHeaders$1.concat(contextHeaders, headers); + + // filter out skipped interceptors + const requestInterceptorChain = []; + let synchronousRequestInterceptors = true; + this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) { + if (typeof interceptor.runWhen === 'function' && interceptor.runWhen(config) === false) { + return; + } + + synchronousRequestInterceptors = synchronousRequestInterceptors && interceptor.synchronous; + + requestInterceptorChain.unshift(interceptor.fulfilled, interceptor.rejected); + }); + + const responseInterceptorChain = []; + this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) { + responseInterceptorChain.push(interceptor.fulfilled, interceptor.rejected); + }); + + let promise; + let i = 0; + let len; + + if (!synchronousRequestInterceptors) { + const chain = [dispatchRequest.bind(this), undefined]; + chain.unshift.apply(chain, requestInterceptorChain); + chain.push.apply(chain, responseInterceptorChain); + len = chain.length; + + promise = Promise.resolve(config); + + while (i < len) { + promise = promise.then(chain[i++], chain[i++]); + } + + return promise; + } + + len = requestInterceptorChain.length; + + let newConfig = config; + + i = 0; + + while (i < len) { + const onFulfilled = requestInterceptorChain[i++]; + const onRejected = requestInterceptorChain[i++]; + try { + newConfig = onFulfilled(newConfig); + } catch (error) { + onRejected.call(this, error); + break; + } + } + + try { + promise = dispatchRequest.call(this, newConfig); + } catch (error) { + return Promise.reject(error); + } + + i = 0; + len = responseInterceptorChain.length; + + while (i < len) { + promise = promise.then(responseInterceptorChain[i++], responseInterceptorChain[i++]); + } + + return promise; + } + + getUri(config) { + config = mergeConfig(this.defaults, config); + const fullPath = buildFullPath(config.baseURL, config.url); + return buildURL(fullPath, config.params, config.paramsSerializer); + } + } + + // Provide aliases for supported request methods + utils$1.forEach(['delete', 'get', 'head', 'options'], function forEachMethodNoData(method) { + /*eslint func-names:0*/ + Axios.prototype[method] = function(url, config) { + return this.request(mergeConfig(config || {}, { + method, + url, + data: (config || {}).data + })); + }; + }); + + utils$1.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) { + /*eslint func-names:0*/ + + function generateHTTPMethod(isForm) { + return function httpMethod(url, data, config) { + return this.request(mergeConfig(config || {}, { + method, + headers: isForm ? { + 'Content-Type': 'multipart/form-data' + } : {}, + url, + data + })); + }; + } + + Axios.prototype[method] = generateHTTPMethod(); + + Axios.prototype[method + 'Form'] = generateHTTPMethod(true); + }); + + const Axios$1 = Axios; + + /** + * A `CancelToken` is an object that can be used to request cancellation of an operation. + * + * @param {Function} executor The executor function. + * + * @returns {CancelToken} + */ + class CancelToken { + constructor(executor) { + if (typeof executor !== 'function') { + throw new TypeError('executor must be a function.'); + } + + let resolvePromise; + + this.promise = new Promise(function promiseExecutor(resolve) { + resolvePromise = resolve; + }); + + const token = this; + + // eslint-disable-next-line func-names + this.promise.then(cancel => { + if (!token._listeners) return; + + let i = token._listeners.length; + + while (i-- > 0) { + token._listeners[i](cancel); + } + token._listeners = null; + }); + + // eslint-disable-next-line func-names + this.promise.then = onfulfilled => { + let _resolve; + // eslint-disable-next-line func-names + const promise = new Promise(resolve => { + token.subscribe(resolve); + _resolve = resolve; + }).then(onfulfilled); + + promise.cancel = function reject() { + token.unsubscribe(_resolve); + }; + + return promise; + }; + + executor(function cancel(message, config, request) { + if (token.reason) { + // Cancellation has already been requested + return; + } + + token.reason = new CanceledError(message, config, request); + resolvePromise(token.reason); + }); + } + + /** + * Throws a `CanceledError` if cancellation has been requested. + */ + throwIfRequested() { + if (this.reason) { + throw this.reason; + } + } + + /** + * Subscribe to the cancel signal + */ + + subscribe(listener) { + if (this.reason) { + listener(this.reason); + return; + } + + if (this._listeners) { + this._listeners.push(listener); + } else { + this._listeners = [listener]; + } + } + + /** + * Unsubscribe from the cancel signal + */ + + unsubscribe(listener) { + if (!this._listeners) { + return; + } + const index = this._listeners.indexOf(listener); + if (index !== -1) { + this._listeners.splice(index, 1); + } + } + + /** + * Returns an object that contains a new `CancelToken` and a function that, when called, + * cancels the `CancelToken`. + */ + static source() { + let cancel; + const token = new CancelToken(function executor(c) { + cancel = c; + }); + return { + token, + cancel + }; + } + } + + const CancelToken$1 = CancelToken; + + /** + * Syntactic sugar for invoking a function and expanding an array for arguments. + * + * Common use case would be to use `Function.prototype.apply`. + * + * ```js + * function f(x, y, z) {} + * var args = [1, 2, 3]; + * f.apply(null, args); + * ``` + * + * With `spread` this example can be re-written. + * + * ```js + * spread(function(x, y, z) {})([1, 2, 3]); + * ``` + * + * @param {Function} callback + * + * @returns {Function} + */ + function spread(callback) { + return function wrap(arr) { + return callback.apply(null, arr); + }; + } + + /** + * Determines whether the payload is an error thrown by Axios + * + * @param {*} payload The value to test + * + * @returns {boolean} True if the payload is an error thrown by Axios, otherwise false + */ + function isAxiosError(payload) { + return utils$1.isObject(payload) && (payload.isAxiosError === true); + } + + const HttpStatusCode = { + Continue: 100, + SwitchingProtocols: 101, + Processing: 102, + EarlyHints: 103, + Ok: 200, + Created: 201, + Accepted: 202, + NonAuthoritativeInformation: 203, + NoContent: 204, + ResetContent: 205, + PartialContent: 206, + MultiStatus: 207, + AlreadyReported: 208, + ImUsed: 226, + MultipleChoices: 300, + MovedPermanently: 301, + Found: 302, + SeeOther: 303, + NotModified: 304, + UseProxy: 305, + Unused: 306, + TemporaryRedirect: 307, + PermanentRedirect: 308, + BadRequest: 400, + Unauthorized: 401, + PaymentRequired: 402, + Forbidden: 403, + NotFound: 404, + MethodNotAllowed: 405, + NotAcceptable: 406, + ProxyAuthenticationRequired: 407, + RequestTimeout: 408, + Conflict: 409, + Gone: 410, + LengthRequired: 411, + PreconditionFailed: 412, + PayloadTooLarge: 413, + UriTooLong: 414, + UnsupportedMediaType: 415, + RangeNotSatisfiable: 416, + ExpectationFailed: 417, + ImATeapot: 418, + MisdirectedRequest: 421, + UnprocessableEntity: 422, + Locked: 423, + FailedDependency: 424, + TooEarly: 425, + UpgradeRequired: 426, + PreconditionRequired: 428, + TooManyRequests: 429, + RequestHeaderFieldsTooLarge: 431, + UnavailableForLegalReasons: 451, + InternalServerError: 500, + NotImplemented: 501, + BadGateway: 502, + ServiceUnavailable: 503, + GatewayTimeout: 504, + HttpVersionNotSupported: 505, + VariantAlsoNegotiates: 506, + InsufficientStorage: 507, + LoopDetected: 508, + NotExtended: 510, + NetworkAuthenticationRequired: 511, + }; + + Object.entries(HttpStatusCode).forEach(([key, value]) => { + HttpStatusCode[value] = key; + }); + + const HttpStatusCode$1 = HttpStatusCode; + + /** + * Create an instance of Axios + * + * @param {Object} defaultConfig The default config for the instance + * + * @returns {Axios} A new instance of Axios + */ + function createInstance(defaultConfig) { + const context = new Axios$1(defaultConfig); + const instance = bind(Axios$1.prototype.request, context); + + // Copy axios.prototype to instance + utils$1.extend(instance, Axios$1.prototype, context, {allOwnKeys: true}); + + // Copy context to instance + utils$1.extend(instance, context, null, {allOwnKeys: true}); + + // Factory for creating new instances + instance.create = function create(instanceConfig) { + return createInstance(mergeConfig(defaultConfig, instanceConfig)); + }; + + return instance; + } + + // Create the default instance to be exported + const axios = createInstance(defaults$1); + + // Expose Axios class to allow class inheritance + axios.Axios = Axios$1; + + // Expose Cancel & CancelToken + axios.CanceledError = CanceledError; + axios.CancelToken = CancelToken$1; + axios.isCancel = isCancel; + axios.VERSION = VERSION; + axios.toFormData = toFormData; + + // Expose AxiosError class + axios.AxiosError = AxiosError; + + // alias for CanceledError for backward compatibility + axios.Cancel = axios.CanceledError; + + // Expose all/spread + axios.all = function all(promises) { + return Promise.all(promises); + }; + + axios.spread = spread; + + // Expose isAxiosError + axios.isAxiosError = isAxiosError; + + // Expose mergeConfig + axios.mergeConfig = mergeConfig; + + axios.AxiosHeaders = AxiosHeaders$1; + + axios.formToJSON = thing => formDataToJSON(utils$1.isHTMLForm(thing) ? new FormData(thing) : thing); + + axios.getAdapter = adapters.getAdapter; + + axios.HttpStatusCode = HttpStatusCode$1; + + axios.default = axios; + + axios_1 = axios; + + return axios_1; +} + +var common$4 = {}; + +var base$3 = {}; + +var hasRequiredBase$3; + +function requireBase$3 () { + if (hasRequiredBase$3) return base$3; + hasRequiredBase$3 = 1; + (function (exports) { + /* tslint:disable */ + /* eslint-disable */ + /** + * IdentityNow Beta API + * Use these APIs to interact with the IdentityNow platform to achieve repeatable, automated processes with greater scalability. These APIs are in beta and are subject to change. We encourage you to join the SailPoint Developer Community forum at https://developer.sailpoint.com/discuss to connect with other developers using our APIs. + * + * The version of the OpenAPI document: 3.1.0-beta + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + var __extends = (commonjsGlobal && commonjsGlobal.__extends) || (function () { + var extendStatics = function (d, b) { + extendStatics = Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || + function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; }; + return extendStatics(d, b); + }; + return function (d, b) { + if (typeof b !== "function" && b !== null) + throw new TypeError("Class extends value " + String(b) + " is not a constructor or null"); + extendStatics(d, b); + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; + })(); + var __importDefault = (commonjsGlobal && commonjsGlobal.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; + }; + Object.defineProperty(exports, "__esModule", { value: true }); + exports.RequiredError = exports.BaseAPI = exports.COLLECTION_FORMATS = exports.BASE_PATH = void 0; + // Some imports not used depending on template conditions + // @ts-ignore + var axios_1 = __importDefault(requireAxios()); + exports.BASE_PATH = "https://sailpoint.api.identitynow.com/beta".replace(/\/+$/, ""); + /** + * + * @export + */ + exports.COLLECTION_FORMATS = { + csv: ",", + ssv: " ", + tsv: "\t", + pipes: "|", + }; + /** + * + * @export + * @class BaseAPI + */ + var BaseAPI = /** @class */ (function () { + function BaseAPI(configuration, basePath, axios) { + if (basePath === void 0) { basePath = exports.BASE_PATH; } + if (axios === void 0) { axios = axios_1.default; } + this.basePath = basePath; + this.axios = axios; + if (configuration) { + this.configuration = configuration; + this.basePath = configuration.basePathBeta || this.basePath; + } + } + return BaseAPI; + }()); + exports.BaseAPI = BaseAPI; + /** + * + * @export + * @class RequiredError + * @extends {Error} + */ + var RequiredError = /** @class */ (function (_super) { + __extends(RequiredError, _super); + function RequiredError(field, msg) { + var _this = _super.call(this, msg) || this; + _this.field = field; + _this.name = "RequiredError"; + return _this; + } + return RequiredError; + }(Error)); + exports.RequiredError = RequiredError; + + } (base$3)); + return base$3; +} + +var axiosRetry = {exports: {}}; + +var cjs = {}; + +var interopRequireDefault = {exports: {}}; + +var hasRequiredInteropRequireDefault; + +function requireInteropRequireDefault () { + if (hasRequiredInteropRequireDefault) return interopRequireDefault.exports; + hasRequiredInteropRequireDefault = 1; + (function (module) { + function _interopRequireDefault(obj) { + return obj && obj.__esModule ? obj : { + "default": obj + }; + } + module.exports = _interopRequireDefault, module.exports.__esModule = true, module.exports["default"] = module.exports; + } (interopRequireDefault)); + return interopRequireDefault.exports; +} + +var regeneratorRuntime$1 = {exports: {}}; + +var _typeof = {exports: {}}; + +var hasRequired_typeof; + +function require_typeof () { + if (hasRequired_typeof) return _typeof.exports; + hasRequired_typeof = 1; + (function (module) { + function _typeof(o) { + "@babel/helpers - typeof"; + + return (module.exports = _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { + return typeof o; + } : function (o) { + return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; + }, module.exports.__esModule = true, module.exports["default"] = module.exports), _typeof(o); + } + module.exports = _typeof, module.exports.__esModule = true, module.exports["default"] = module.exports; + } (_typeof)); + return _typeof.exports; +} + +var hasRequiredRegeneratorRuntime; + +function requireRegeneratorRuntime () { + if (hasRequiredRegeneratorRuntime) return regeneratorRuntime$1.exports; + hasRequiredRegeneratorRuntime = 1; + (function (module) { + var _typeof = require_typeof()["default"]; + function _regeneratorRuntime() { + module.exports = _regeneratorRuntime = function _regeneratorRuntime() { + return e; + }, module.exports.__esModule = true, module.exports["default"] = module.exports; + var t, + e = {}, + r = Object.prototype, + n = r.hasOwnProperty, + o = Object.defineProperty || function (t, e, r) { + t[e] = r.value; + }, + i = "function" == typeof Symbol ? Symbol : {}, + a = i.iterator || "@@iterator", + c = i.asyncIterator || "@@asyncIterator", + u = i.toStringTag || "@@toStringTag"; + function define(t, e, r) { + return Object.defineProperty(t, e, { + value: r, + enumerable: !0, + configurable: !0, + writable: !0 + }), t[e]; + } + try { + define({}, ""); + } catch (t) { + define = function define(t, e, r) { + return t[e] = r; + }; + } + function wrap(t, e, r, n) { + var i = e && e.prototype instanceof Generator ? e : Generator, + a = Object.create(i.prototype), + c = new Context(n || []); + return o(a, "_invoke", { + value: makeInvokeMethod(t, r, c) + }), a; + } + function tryCatch(t, e, r) { + try { + return { + type: "normal", + arg: t.call(e, r) + }; + } catch (t) { + return { + type: "throw", + arg: t + }; + } + } + e.wrap = wrap; + var h = "suspendedStart", + l = "suspendedYield", + f = "executing", + s = "completed", + y = {}; + function Generator() {} + function GeneratorFunction() {} + function GeneratorFunctionPrototype() {} + var p = {}; + define(p, a, function () { + return this; + }); + var d = Object.getPrototypeOf, + v = d && d(d(values([]))); + v && v !== r && n.call(v, a) && (p = v); + var g = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(p); + function defineIteratorMethods(t) { + ["next", "throw", "return"].forEach(function (e) { + define(t, e, function (t) { + return this._invoke(e, t); + }); + }); + } + function AsyncIterator(t, e) { + function invoke(r, o, i, a) { + var c = tryCatch(t[r], t, o); + if ("throw" !== c.type) { + var u = c.arg, + h = u.value; + return h && "object" == _typeof(h) && n.call(h, "__await") ? e.resolve(h.__await).then(function (t) { + invoke("next", t, i, a); + }, function (t) { + invoke("throw", t, i, a); + }) : e.resolve(h).then(function (t) { + u.value = t, i(u); + }, function (t) { + return invoke("throw", t, i, a); + }); + } + a(c.arg); + } + var r; + o(this, "_invoke", { + value: function value(t, n) { + function callInvokeWithMethodAndArg() { + return new e(function (e, r) { + invoke(t, n, e, r); + }); + } + return r = r ? r.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); + } + }); + } + function makeInvokeMethod(e, r, n) { + var o = h; + return function (i, a) { + if (o === f) throw new Error("Generator is already running"); + if (o === s) { + if ("throw" === i) throw a; + return { + value: t, + done: !0 + }; + } + for (n.method = i, n.arg = a;;) { + var c = n.delegate; + if (c) { + var u = maybeInvokeDelegate(c, n); + if (u) { + if (u === y) continue; + return u; + } + } + if ("next" === n.method) n.sent = n._sent = n.arg;else if ("throw" === n.method) { + if (o === h) throw o = s, n.arg; + n.dispatchException(n.arg); + } else "return" === n.method && n.abrupt("return", n.arg); + o = f; + var p = tryCatch(e, r, n); + if ("normal" === p.type) { + if (o = n.done ? s : l, p.arg === y) continue; + return { + value: p.arg, + done: n.done + }; + } + "throw" === p.type && (o = s, n.method = "throw", n.arg = p.arg); + } + }; + } + function maybeInvokeDelegate(e, r) { + var n = r.method, + o = e.iterator[n]; + if (o === t) return r.delegate = null, "throw" === n && e.iterator["return"] && (r.method = "return", r.arg = t, maybeInvokeDelegate(e, r), "throw" === r.method) || "return" !== n && (r.method = "throw", r.arg = new TypeError("The iterator does not provide a '" + n + "' method")), y; + var i = tryCatch(o, e.iterator, r.arg); + if ("throw" === i.type) return r.method = "throw", r.arg = i.arg, r.delegate = null, y; + var a = i.arg; + return a ? a.done ? (r[e.resultName] = a.value, r.next = e.nextLoc, "return" !== r.method && (r.method = "next", r.arg = t), r.delegate = null, y) : a : (r.method = "throw", r.arg = new TypeError("iterator result is not an object"), r.delegate = null, y); + } + function pushTryEntry(t) { + var e = { + tryLoc: t[0] + }; + 1 in t && (e.catchLoc = t[1]), 2 in t && (e.finallyLoc = t[2], e.afterLoc = t[3]), this.tryEntries.push(e); + } + function resetTryEntry(t) { + var e = t.completion || {}; + e.type = "normal", delete e.arg, t.completion = e; + } + function Context(t) { + this.tryEntries = [{ + tryLoc: "root" + }], t.forEach(pushTryEntry, this), this.reset(!0); + } + function values(e) { + if (e || "" === e) { + var r = e[a]; + if (r) return r.call(e); + if ("function" == typeof e.next) return e; + if (!isNaN(e.length)) { + var o = -1, + i = function next() { + for (; ++o < e.length;) if (n.call(e, o)) return next.value = e[o], next.done = !1, next; + return next.value = t, next.done = !0, next; + }; + return i.next = i; + } + } + throw new TypeError(_typeof(e) + " is not iterable"); + } + return GeneratorFunction.prototype = GeneratorFunctionPrototype, o(g, "constructor", { + value: GeneratorFunctionPrototype, + configurable: !0 + }), o(GeneratorFunctionPrototype, "constructor", { + value: GeneratorFunction, + configurable: !0 + }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, u, "GeneratorFunction"), e.isGeneratorFunction = function (t) { + var e = "function" == typeof t && t.constructor; + return !!e && (e === GeneratorFunction || "GeneratorFunction" === (e.displayName || e.name)); + }, e.mark = function (t) { + return Object.setPrototypeOf ? Object.setPrototypeOf(t, GeneratorFunctionPrototype) : (t.__proto__ = GeneratorFunctionPrototype, define(t, u, "GeneratorFunction")), t.prototype = Object.create(g), t; + }, e.awrap = function (t) { + return { + __await: t + }; + }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, c, function () { + return this; + }), e.AsyncIterator = AsyncIterator, e.async = function (t, r, n, o, i) { + void 0 === i && (i = Promise); + var a = new AsyncIterator(wrap(t, r, n, o), i); + return e.isGeneratorFunction(r) ? a : a.next().then(function (t) { + return t.done ? t.value : a.next(); + }); + }, defineIteratorMethods(g), define(g, u, "Generator"), define(g, a, function () { + return this; + }), define(g, "toString", function () { + return "[object Generator]"; + }), e.keys = function (t) { + var e = Object(t), + r = []; + for (var n in e) r.push(n); + return r.reverse(), function next() { + for (; r.length;) { + var t = r.pop(); + if (t in e) return next.value = t, next.done = !1, next; + } + return next.done = !0, next; + }; + }, e.values = values, Context.prototype = { + constructor: Context, + reset: function reset(e) { + if (this.prev = 0, this.next = 0, this.sent = this._sent = t, this.done = !1, this.delegate = null, this.method = "next", this.arg = t, this.tryEntries.forEach(resetTryEntry), !e) for (var r in this) "t" === r.charAt(0) && n.call(this, r) && !isNaN(+r.slice(1)) && (this[r] = t); + }, + stop: function stop() { + this.done = !0; + var t = this.tryEntries[0].completion; + if ("throw" === t.type) throw t.arg; + return this.rval; + }, + dispatchException: function dispatchException(e) { + if (this.done) throw e; + var r = this; + function handle(n, o) { + return a.type = "throw", a.arg = e, r.next = n, o && (r.method = "next", r.arg = t), !!o; + } + for (var o = this.tryEntries.length - 1; o >= 0; --o) { + var i = this.tryEntries[o], + a = i.completion; + if ("root" === i.tryLoc) return handle("end"); + if (i.tryLoc <= this.prev) { + var c = n.call(i, "catchLoc"), + u = n.call(i, "finallyLoc"); + if (c && u) { + if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); + if (this.prev < i.finallyLoc) return handle(i.finallyLoc); + } else if (c) { + if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); + } else { + if (!u) throw new Error("try statement without catch or finally"); + if (this.prev < i.finallyLoc) return handle(i.finallyLoc); + } + } + } + }, + abrupt: function abrupt(t, e) { + for (var r = this.tryEntries.length - 1; r >= 0; --r) { + var o = this.tryEntries[r]; + if (o.tryLoc <= this.prev && n.call(o, "finallyLoc") && this.prev < o.finallyLoc) { + var i = o; + break; + } + } + i && ("break" === t || "continue" === t) && i.tryLoc <= e && e <= i.finallyLoc && (i = null); + var a = i ? i.completion : {}; + return a.type = t, a.arg = e, i ? (this.method = "next", this.next = i.finallyLoc, y) : this.complete(a); + }, + complete: function complete(t, e) { + if ("throw" === t.type) throw t.arg; + return "break" === t.type || "continue" === t.type ? this.next = t.arg : "return" === t.type ? (this.rval = this.arg = t.arg, this.method = "return", this.next = "end") : "normal" === t.type && e && (this.next = e), y; + }, + finish: function finish(t) { + for (var e = this.tryEntries.length - 1; e >= 0; --e) { + var r = this.tryEntries[e]; + if (r.finallyLoc === t) return this.complete(r.completion, r.afterLoc), resetTryEntry(r), y; + } + }, + "catch": function _catch(t) { + for (var e = this.tryEntries.length - 1; e >= 0; --e) { + var r = this.tryEntries[e]; + if (r.tryLoc === t) { + var n = r.completion; + if ("throw" === n.type) { + var o = n.arg; + resetTryEntry(r); + } + return o; + } + } + throw new Error("illegal catch attempt"); + }, + delegateYield: function delegateYield(e, r, n) { + return this.delegate = { + iterator: values(e), + resultName: r, + nextLoc: n + }, "next" === this.method && (this.arg = t), y; + } + }, e; + } + module.exports = _regeneratorRuntime, module.exports.__esModule = true, module.exports["default"] = module.exports; + } (regeneratorRuntime$1)); + return regeneratorRuntime$1.exports; +} + +var regenerator; +var hasRequiredRegenerator; + +function requireRegenerator () { + if (hasRequiredRegenerator) return regenerator; + hasRequiredRegenerator = 1; + // TODO(Babel 8): Remove this file. + + var runtime = requireRegeneratorRuntime()(); + regenerator = runtime; + + // Copied from https://github.com/facebook/regenerator/blob/main/packages/runtime/runtime.js#L736= + try { + regeneratorRuntime = runtime; + } catch (accidentalStrictMode) { + if (typeof globalThis === "object") { + globalThis.regeneratorRuntime = runtime; + } else { + Function("r", "regeneratorRuntime = r")(runtime); + } + } + return regenerator; +} + +var asyncToGenerator = {exports: {}}; + +var hasRequiredAsyncToGenerator; + +function requireAsyncToGenerator () { + if (hasRequiredAsyncToGenerator) return asyncToGenerator.exports; + hasRequiredAsyncToGenerator = 1; + (function (module) { + function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { + try { + var info = gen[key](arg); + var value = info.value; + } catch (error) { + reject(error); + return; + } + if (info.done) { + resolve(value); + } else { + Promise.resolve(value).then(_next, _throw); + } + } + function _asyncToGenerator(fn) { + return function () { + var self = this, + args = arguments; + return new Promise(function (resolve, reject) { + var gen = fn.apply(self, args); + function _next(value) { + asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); + } + function _throw(err) { + asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); + } + _next(undefined); + }); + }; + } + module.exports = _asyncToGenerator, module.exports.__esModule = true, module.exports["default"] = module.exports; + } (asyncToGenerator)); + return asyncToGenerator.exports; +} + +var defineProperty = {exports: {}}; + +var toPropertyKey = {exports: {}}; + +var toPrimitive = {exports: {}}; + +var hasRequiredToPrimitive; + +function requireToPrimitive () { + if (hasRequiredToPrimitive) return toPrimitive.exports; + hasRequiredToPrimitive = 1; + (function (module) { + var _typeof = require_typeof()["default"]; + function _toPrimitive(input, hint) { + if (_typeof(input) !== "object" || input === null) return input; + var prim = input[Symbol.toPrimitive]; + if (prim !== undefined) { + var res = prim.call(input, hint || "default"); + if (_typeof(res) !== "object") return res; + throw new TypeError("@@toPrimitive must return a primitive value."); + } + return (hint === "string" ? String : Number)(input); + } + module.exports = _toPrimitive, module.exports.__esModule = true, module.exports["default"] = module.exports; + } (toPrimitive)); + return toPrimitive.exports; +} + +var hasRequiredToPropertyKey; + +function requireToPropertyKey () { + if (hasRequiredToPropertyKey) return toPropertyKey.exports; + hasRequiredToPropertyKey = 1; + (function (module) { + var _typeof = require_typeof()["default"]; + var toPrimitive = requireToPrimitive(); + function _toPropertyKey(arg) { + var key = toPrimitive(arg, "string"); + return _typeof(key) === "symbol" ? key : String(key); + } + module.exports = _toPropertyKey, module.exports.__esModule = true, module.exports["default"] = module.exports; + } (toPropertyKey)); + return toPropertyKey.exports; +} + +var hasRequiredDefineProperty; + +function requireDefineProperty () { + if (hasRequiredDefineProperty) return defineProperty.exports; + hasRequiredDefineProperty = 1; + (function (module) { + var toPropertyKey = requireToPropertyKey(); + function _defineProperty(obj, key, value) { + key = toPropertyKey(key); + if (key in obj) { + Object.defineProperty(obj, key, { + value: value, + enumerable: true, + configurable: true, + writable: true + }); + } else { + obj[key] = value; + } + return obj; + } + module.exports = _defineProperty, module.exports.__esModule = true, module.exports["default"] = module.exports; + } (defineProperty)); + return defineProperty.exports; +} + +var isRetryAllowed; +var hasRequiredIsRetryAllowed; + +function requireIsRetryAllowed () { + if (hasRequiredIsRetryAllowed) return isRetryAllowed; + hasRequiredIsRetryAllowed = 1; + + const denyList = new Set([ + 'ENOTFOUND', + 'ENETUNREACH', + + // SSL errors from https://github.com/nodejs/node/blob/fc8e3e2cdc521978351de257030db0076d79e0ab/src/crypto/crypto_common.cc#L301-L328 + 'UNABLE_TO_GET_ISSUER_CERT', + 'UNABLE_TO_GET_CRL', + 'UNABLE_TO_DECRYPT_CERT_SIGNATURE', + 'UNABLE_TO_DECRYPT_CRL_SIGNATURE', + 'UNABLE_TO_DECODE_ISSUER_PUBLIC_KEY', + 'CERT_SIGNATURE_FAILURE', + 'CRL_SIGNATURE_FAILURE', + 'CERT_NOT_YET_VALID', + 'CERT_HAS_EXPIRED', + 'CRL_NOT_YET_VALID', + 'CRL_HAS_EXPIRED', + 'ERROR_IN_CERT_NOT_BEFORE_FIELD', + 'ERROR_IN_CERT_NOT_AFTER_FIELD', + 'ERROR_IN_CRL_LAST_UPDATE_FIELD', + 'ERROR_IN_CRL_NEXT_UPDATE_FIELD', + 'OUT_OF_MEM', + 'DEPTH_ZERO_SELF_SIGNED_CERT', + 'SELF_SIGNED_CERT_IN_CHAIN', + 'UNABLE_TO_GET_ISSUER_CERT_LOCALLY', + 'UNABLE_TO_VERIFY_LEAF_SIGNATURE', + 'CERT_CHAIN_TOO_LONG', + 'CERT_REVOKED', + 'INVALID_CA', + 'PATH_LENGTH_EXCEEDED', + 'INVALID_PURPOSE', + 'CERT_UNTRUSTED', + 'CERT_REJECTED', + 'HOSTNAME_MISMATCH' + ]); + + // TODO: Use `error?.code` when targeting Node.js 14 + isRetryAllowed = error => !denyList.has(error && error.code); + return isRetryAllowed; +} + +var hasRequiredCjs; + +function requireCjs () { + if (hasRequiredCjs) return cjs; + hasRequiredCjs = 1; + + var _interopRequireDefault = requireInteropRequireDefault(); + + Object.defineProperty(cjs, "__esModule", { + value: true + }); + cjs.isNetworkError = isNetworkError; + cjs.isRetryableError = isRetryableError; + cjs.isSafeRequestError = isSafeRequestError; + cjs.isIdempotentRequestError = isIdempotentRequestError; + cjs.isNetworkOrIdempotentRequestError = isNetworkOrIdempotentRequestError; + cjs.exponentialDelay = exponentialDelay; + cjs.default = axiosRetry; + cjs.DEFAULT_OPTIONS = cjs.namespace = void 0; + + var _regenerator = _interopRequireDefault(requireRegenerator()); + + var _typeof2 = _interopRequireDefault(require_typeof()); + + var _asyncToGenerator2 = _interopRequireDefault(requireAsyncToGenerator()); + + var _defineProperty2 = _interopRequireDefault(requireDefineProperty()); + + var _isRetryAllowed = _interopRequireDefault(requireIsRetryAllowed()); + + function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; } + + function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; } + + var namespace = 'axios-retry'; + /** + * @param {Error} error + * @return {boolean} + */ + + cjs.namespace = namespace; + + function isNetworkError(error) { + var CODE_EXCLUDE_LIST = ['ERR_CANCELED', 'ECONNABORTED']; + return !error.response && Boolean(error.code) && // Prevents retrying cancelled requests + !CODE_EXCLUDE_LIST.includes(error.code) && // Prevents retrying timed out & cancelled requests + (0, _isRetryAllowed.default)(error) // Prevents retrying unsafe errors + ; + } + + var SAFE_HTTP_METHODS = ['get', 'head', 'options']; + var IDEMPOTENT_HTTP_METHODS = SAFE_HTTP_METHODS.concat(['put', 'delete']); + /** + * @param {Error} error + * @return {boolean} + */ + + function isRetryableError(error) { + return error.code !== 'ECONNABORTED' && (!error.response || error.response.status >= 500 && error.response.status <= 599); + } + /** + * @param {Error} error + * @return {boolean} + */ + + + function isSafeRequestError(error) { + if (!error.config) { + // Cannot determine if the request can be retried + return false; + } + + return isRetryableError(error) && SAFE_HTTP_METHODS.indexOf(error.config.method) !== -1; + } + /** + * @param {Error} error + * @return {boolean} + */ + + + function isIdempotentRequestError(error) { + if (!error.config) { + // Cannot determine if the request can be retried + return false; + } + + return isRetryableError(error) && IDEMPOTENT_HTTP_METHODS.indexOf(error.config.method) !== -1; + } + /** + * @param {Error} error + * @return {boolean} + */ + + + function isNetworkOrIdempotentRequestError(error) { + return isNetworkError(error) || isIdempotentRequestError(error); + } + /** + * @return {number} - delay in milliseconds, always 0 + */ + + + function noDelay() { + return 0; + } + /** + * Set delayFactor 1000 for an exponential delay to occur on the order + * of seconds + * @param {number} [retryNumber=0] + * @param {Error} error - unused; for existing API of retryDelay callback + * @param {number} [delayFactor=100] milliseconds + * @return {number} - delay in milliseconds + */ + + + function exponentialDelay() { + var retryNumber = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0; + var delayFactor = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 100; + var delay = Math.pow(2, retryNumber) * delayFactor; + var randomSum = delay * 0.2 * Math.random(); // 0-20% of the delay + + return delay + randomSum; + } + /** @type {IAxiosRetryConfig} */ + + + var DEFAULT_OPTIONS = { + retries: 3, + retryCondition: isNetworkOrIdempotentRequestError, + retryDelay: noDelay, + shouldResetTimeout: false, + onRetry: function onRetry() {} + }; + /** + * Returns the axios-retry options for the current request + * @param {AxiosRequestConfig} config + * @param {IAxiosRetryConfig} defaultOptions + * @return {IAxiosRetryConfigExtended} + */ + + cjs.DEFAULT_OPTIONS = DEFAULT_OPTIONS; + + function getRequestOptions(config, defaultOptions) { + return _objectSpread(_objectSpread(_objectSpread({}, DEFAULT_OPTIONS), defaultOptions), config[namespace]); + } + /** + * Initializes and returns the retry state for the given request/config + * @param {AxiosRequestConfig} config + * @param {IAxiosRetryConfig} defaultOptions + * @return {IAxiosRetryConfigExtended} + */ + + + function getCurrentState(config, defaultOptions) { + var currentState = getRequestOptions(config, defaultOptions); + currentState.retryCount = currentState.retryCount || 0; + config[namespace] = currentState; + return currentState; + } + /** + * @param {Axios} axios + * @param {AxiosRequestConfig} config + */ + + + function fixConfig(axios, config) { + if (axios.defaults.agent === config.agent) { + delete config.agent; + } + + if (axios.defaults.httpAgent === config.httpAgent) { + delete config.httpAgent; + } + + if (axios.defaults.httpsAgent === config.httpsAgent) { + delete config.httpsAgent; + } + } + /** + * Checks retryCondition if request can be retried. Handles it's returning value or Promise. + * @param {IAxiosRetryConfigExtended} currentState + * @param {Error} error + * @return {Promise} + */ + + + function shouldRetry(_x, _x2) { + return _shouldRetry.apply(this, arguments); + } + /** + * Adds response interceptors to an axios instance to retry requests failed due to network issues + * + * @example + * + * import axios from 'axios'; + * + * axiosRetry(axios, { retries: 3 }); + * + * axios.get('http://example.com/test') // The first request fails and the second returns 'ok' + * .then(result => { + * result.data; // 'ok' + * }); + * + * // Exponential back-off retry delay between requests + * axiosRetry(axios, { retryDelay : axiosRetry.exponentialDelay}); + * + * // Custom retry delay + * axiosRetry(axios, { retryDelay : (retryCount) => { + * return retryCount * 1000; + * }}); + * + * // Also works with custom axios instances + * const client = axios.create({ baseURL: 'http://example.com' }); + * axiosRetry(client, { retries: 3 }); + * + * client.get('/test') // The first request fails and the second returns 'ok' + * .then(result => { + * result.data; // 'ok' + * }); + * + * // Allows request-specific configuration + * client + * .get('/test', { + * 'axios-retry': { + * retries: 0 + * } + * }) + * .catch(error => { // The first request fails + * error !== undefined + * }); + * + * @param {Axios} axios An axios instance (the axios object or one created from axios.create) + * @param {Object} [defaultOptions] + * @param {number} [defaultOptions.retries=3] Number of retries + * @param {boolean} [defaultOptions.shouldResetTimeout=false] + * Defines if the timeout should be reset between retries + * @param {Function} [defaultOptions.retryCondition=isNetworkOrIdempotentRequestError] + * A function to determine if the error can be retried + * @param {Function} [defaultOptions.retryDelay=noDelay] + * A function to determine the delay between retry requests + * @param {Function} [defaultOptions.onRetry=()=>{}] + * A function to get notified when a retry occurs + * @return {{ requestInterceptorId: number, responseInterceptorId: number }} + * The ids of the interceptors added to the request and to the response (so they can be ejected at a later time) + */ + + + function _shouldRetry() { + _shouldRetry = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee2(currentState, error) { + var retries, retryCondition, shouldRetryOrPromise, shouldRetryPromiseResult; + return _regenerator.default.wrap(function _callee2$(_context2) { + while (1) { + switch (_context2.prev = _context2.next) { + case 0: + retries = currentState.retries, retryCondition = currentState.retryCondition; + shouldRetryOrPromise = currentState.retryCount < retries && retryCondition(error); // This could be a promise + + if (!((0, _typeof2.default)(shouldRetryOrPromise) === 'object')) { + _context2.next = 13; + break; + } + + _context2.prev = 3; + _context2.next = 6; + return shouldRetryOrPromise; + + case 6: + shouldRetryPromiseResult = _context2.sent; + return _context2.abrupt("return", shouldRetryPromiseResult !== false); + + case 10: + _context2.prev = 10; + _context2.t0 = _context2["catch"](3); + return _context2.abrupt("return", false); + + case 13: + return _context2.abrupt("return", shouldRetryOrPromise); + + case 14: + case "end": + return _context2.stop(); + } + } + }, _callee2, null, [[3, 10]]); + })); + return _shouldRetry.apply(this, arguments); + } + + function axiosRetry(axios, defaultOptions) { + var requestInterceptorId = axios.interceptors.request.use(function (config) { + var currentState = getCurrentState(config, defaultOptions); + currentState.lastRequestTime = Date.now(); + return config; + }); + var responseInterceptorId = axios.interceptors.response.use(null, /*#__PURE__*/function () { + var _ref = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee(error) { + var config, currentState, retryDelay, shouldResetTimeout, onRetry, delay, lastRequestDuration, timeout; + return _regenerator.default.wrap(function _callee$(_context) { + while (1) { + switch (_context.prev = _context.next) { + case 0: + config = error.config; // If we have no information to retry the request + + if (config) { + _context.next = 3; + break; + } + + return _context.abrupt("return", Promise.reject(error)); + + case 3: + currentState = getCurrentState(config, defaultOptions); + _context.next = 6; + return shouldRetry(currentState, error); + + case 6: + if (!_context.sent) { + _context.next = 21; + break; + } + + currentState.retryCount += 1; + retryDelay = currentState.retryDelay, shouldResetTimeout = currentState.shouldResetTimeout, onRetry = currentState.onRetry; + delay = retryDelay(currentState.retryCount, error); // Axios fails merging this configuration to the default configuration because it has an issue + // with circular structures: https://github.com/mzabriskie/axios/issues/370 + + fixConfig(axios, config); + + if (!(!shouldResetTimeout && config.timeout && currentState.lastRequestTime)) { + _context.next = 17; + break; + } + + lastRequestDuration = Date.now() - currentState.lastRequestTime; + timeout = config.timeout - lastRequestDuration - delay; + + if (!(timeout <= 0)) { + _context.next = 16; + break; + } + + return _context.abrupt("return", Promise.reject(error)); + + case 16: + config.timeout = timeout; + + case 17: + config.transformRequest = [function (data) { + return data; + }]; + _context.next = 20; + return onRetry(currentState.retryCount, error, config); + + case 20: + return _context.abrupt("return", new Promise(function (resolve) { + return setTimeout(function () { + return resolve(axios(config)); + }, delay); + })); + + case 21: + return _context.abrupt("return", Promise.reject(error)); + + case 22: + case "end": + return _context.stop(); + } + } + }, _callee); + })); + + return function (_x3) { + return _ref.apply(this, arguments); + }; + }()); + return { + requestInterceptorId: requestInterceptorId, + responseInterceptorId: responseInterceptorId + }; + } // Compatibility with CommonJS + + + axiosRetry.isNetworkError = isNetworkError; + axiosRetry.isSafeRequestError = isSafeRequestError; + axiosRetry.isIdempotentRequestError = isIdempotentRequestError; + axiosRetry.isNetworkOrIdempotentRequestError = isNetworkOrIdempotentRequestError; + axiosRetry.exponentialDelay = exponentialDelay; + axiosRetry.isRetryableError = isRetryableError; + + return cjs; +} + +var hasRequiredAxiosRetry; + +function requireAxiosRetry () { + if (hasRequiredAxiosRetry) return axiosRetry.exports; + hasRequiredAxiosRetry = 1; + const axiosRetry$1 = requireCjs().default; + + axiosRetry.exports = axiosRetry$1; + axiosRetry.exports.default = axiosRetry$1; + return axiosRetry.exports; +} + +var hasRequiredCommon$4; + +function requireCommon$4 () { + if (hasRequiredCommon$4) return common$4; + hasRequiredCommon$4 = 1; + /* tslint:disable */ + /* eslint-disable */ + /** + * IdentityNow Beta API + * Use these APIs to interact with the IdentityNow platform to achieve repeatable, automated processes with greater scalability. These APIs are in beta and are subject to change. We encourage you to join the SailPoint Developer Community forum at https://developer.sailpoint.com/discuss to connect with other developers using our APIs. + * + * The version of the OpenAPI document: 3.1.0-beta + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + var __assign = (commonjsGlobal && commonjsGlobal.__assign) || function () { + __assign = Object.assign || function(t) { + for (var s, i = 1, n = arguments.length; i < n; i++) { + s = arguments[i]; + for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) + t[p] = s[p]; + } + return t; + }; + return __assign.apply(this, arguments); + }; + var __awaiter = (commonjsGlobal && commonjsGlobal.__awaiter) || function (thisArg, _arguments, P, generator) { + function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); + }; + var __generator = (commonjsGlobal && commonjsGlobal.__generator) || function (thisArg, body) { + var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g; + return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; + function verb(n) { return function (v) { return step([n, v]); }; } + function step(op) { + if (f) throw new TypeError("Generator is already executing."); + while (g && (g = 0, op[0] && (_ = 0)), _) try { + if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; + if (y = 0, t) op = [op[0] & 2, t.value]; + switch (op[0]) { + case 0: case 1: t = op; break; + case 4: _.label++; return { value: op[1], done: false }; + case 5: _.label++; y = op[1]; op = [0]; continue; + case 7: op = _.ops.pop(); _.trys.pop(); continue; + default: + if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } + if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } + if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } + if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } + if (t[2]) _.ops.pop(); + _.trys.pop(); continue; + } + op = body.call(thisArg, _); + } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } + if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; + } + }; + var __importDefault = (commonjsGlobal && commonjsGlobal.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; + }; + Object.defineProperty(common$4, "__esModule", { value: true }); + common$4.createRequestFunction = common$4.toPathString = common$4.serializeDataIfNeeded = common$4.setSearchParams = common$4.setOAuthToObject = common$4.setBearerAuthToObject = common$4.setBasicAuthToObject = common$4.setApiKeyToObject = common$4.assertParamExists = common$4.DUMMY_BASE_URL = void 0; + var base_1 = requireBase$3(); + var axios_retry_1 = __importDefault(requireAxiosRetry()); + /** + * + * @export + */ + common$4.DUMMY_BASE_URL = 'https://example.com'; + /** + * + * @throws {RequiredError} + * @export + */ + var assertParamExists = function (functionName, paramName, paramValue) { + if (paramValue === null || paramValue === undefined) { + throw new base_1.RequiredError(paramName, "Required parameter ".concat(paramName, " was null or undefined when calling ").concat(functionName, ".")); + } + }; + common$4.assertParamExists = assertParamExists; + /** + * + * @export + */ + var setApiKeyToObject = function (object, keyParamName, configuration) { + return __awaiter(this, void 0, void 0, function () { + var localVarApiKeyValue, _a; + return __generator(this, function (_b) { + switch (_b.label) { + case 0: + if (!(configuration && configuration.apiKey)) return [3 /*break*/, 5]; + if (!(typeof configuration.apiKey === 'function')) return [3 /*break*/, 2]; + return [4 /*yield*/, configuration.apiKey(keyParamName)]; + case 1: + _a = _b.sent(); + return [3 /*break*/, 4]; + case 2: return [4 /*yield*/, configuration.apiKey]; + case 3: + _a = _b.sent(); + _b.label = 4; + case 4: + localVarApiKeyValue = _a; + object[keyParamName] = localVarApiKeyValue; + _b.label = 5; + case 5: return [2 /*return*/]; + } + }); + }); + }; + common$4.setApiKeyToObject = setApiKeyToObject; + /** + * + * @export + */ + var setBasicAuthToObject = function (object, configuration) { + if (configuration && (configuration.username || configuration.password)) { + object["auth"] = { username: configuration.username, password: configuration.password }; + } + }; + common$4.setBasicAuthToObject = setBasicAuthToObject; + /** + * + * @export + */ + var setBearerAuthToObject = function (object, configuration) { + return __awaiter(this, void 0, void 0, function () { + var accessToken, _a; + return __generator(this, function (_b) { + switch (_b.label) { + case 0: + if (!(configuration && configuration.accessToken)) return [3 /*break*/, 5]; + if (!(typeof configuration.accessToken === 'function')) return [3 /*break*/, 2]; + return [4 /*yield*/, configuration.accessToken()]; + case 1: + _a = _b.sent(); + return [3 /*break*/, 4]; + case 2: return [4 /*yield*/, configuration.accessToken]; + case 3: + _a = _b.sent(); + _b.label = 4; + case 4: + accessToken = _a; + object["Authorization"] = "Bearer " + accessToken; + _b.label = 5; + case 5: return [2 /*return*/]; + } + }); + }); + }; + common$4.setBearerAuthToObject = setBearerAuthToObject; + /** + * + * @export + */ + var setOAuthToObject = function (object, name, scopes, configuration) { + return __awaiter(this, void 0, void 0, function () { + var localVarAccessTokenValue, _a; + return __generator(this, function (_b) { + switch (_b.label) { + case 0: + if (!(configuration && configuration.accessToken)) return [3 /*break*/, 5]; + if (!(typeof configuration.accessToken === 'function')) return [3 /*break*/, 2]; + return [4 /*yield*/, configuration.accessToken(name, scopes)]; + case 1: + _a = _b.sent(); + return [3 /*break*/, 4]; + case 2: return [4 /*yield*/, configuration.accessToken]; + case 3: + _a = _b.sent(); + _b.label = 4; + case 4: + localVarAccessTokenValue = _a; + object["Authorization"] = "Bearer " + localVarAccessTokenValue; + _b.label = 5; + case 5: return [2 /*return*/]; + } + }); + }); + }; + common$4.setOAuthToObject = setOAuthToObject; + /** + * + * @export + */ + var setSearchParams = function (url) { + var objects = []; + for (var _i = 1; _i < arguments.length; _i++) { + objects[_i - 1] = arguments[_i]; + } + var searchParams = new URLSearchParams(url.search); + for (var _a = 0, objects_1 = objects; _a < objects_1.length; _a++) { + var object = objects_1[_a]; + for (var key in object) { + if (Array.isArray(object[key])) { + searchParams.delete(key); + for (var _b = 0, _c = object[key]; _b < _c.length; _b++) { + var item = _c[_b]; + searchParams.append(key, item); + } + } + else { + searchParams.set(key, object[key]); + } + } + } + url.search = searchParams.toString(); + }; + common$4.setSearchParams = setSearchParams; + /** + * + * @export + */ + var serializeDataIfNeeded = function (value, requestOptions, configuration) { + var nonString = typeof value !== 'string'; + var needsSerialization = nonString && configuration && configuration.isJsonMime + ? configuration.isJsonMime(requestOptions.headers['Content-Type']) + : nonString; + return needsSerialization + ? JSON.stringify(value !== undefined ? value : {}) + : (value || ""); + }; + common$4.serializeDataIfNeeded = serializeDataIfNeeded; + /** + * + * @export + */ + var toPathString = function (url) { + return url.pathname + url.search + url.hash; + }; + common$4.toPathString = toPathString; + /** + * + * @export + */ + var createRequestFunction = function (axiosArgs, globalAxios, BASE_PATH, configuration) { + return function (axios, basePath) { + if (axios === void 0) { axios = globalAxios; } + if (basePath === void 0) { basePath = BASE_PATH; } + (0, axios_retry_1.default)(globalAxios, configuration.retriesConfig); + axiosArgs.axiosOptions.headers['X-SailPoint-SDK'] = 'typescript-1.3.0'; + axiosArgs.axiosOptions.headers['User-Agent'] = 'OpenAPI-Generator/1.3.0/ts'; + var axiosRequestArgs = __assign(__assign({}, axiosArgs.axiosOptions), { url: ((configuration === null || configuration === void 0 ? void 0 : configuration.basePathBeta) || basePath) + axiosArgs.url }); + return axios.request(axiosRequestArgs); + }; + }; + common$4.createRequestFunction = createRequestFunction; + + return common$4; +} + +var hasRequiredApi$3; + +function requireApi$3 () { + if (hasRequiredApi$3) return api$3; + hasRequiredApi$3 = 1; + (function (exports) { + /* tslint:disable */ + /* eslint-disable */ + /** + * IdentityNow Beta API + * Use these APIs to interact with the IdentityNow platform to achieve repeatable, automated processes with greater scalability. These APIs are in beta and are subject to change. We encourage you to join the SailPoint Developer Community forum at https://developer.sailpoint.com/discuss to connect with other developers using our APIs. + * + * The version of the OpenAPI document: 3.1.0-beta + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + var __extends = (commonjsGlobal && commonjsGlobal.__extends) || (function () { + var extendStatics = function (d, b) { + extendStatics = Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || + function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; }; + return extendStatics(d, b); + }; + return function (d, b) { + if (typeof b !== "function" && b !== null) + throw new TypeError("Class extends value " + String(b) + " is not a constructor or null"); + extendStatics(d, b); + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; + })(); + var __assign = (commonjsGlobal && commonjsGlobal.__assign) || function () { + __assign = Object.assign || function(t) { + for (var s, i = 1, n = arguments.length; i < n; i++) { + s = arguments[i]; + for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) + t[p] = s[p]; + } + return t; + }; + return __assign.apply(this, arguments); + }; + var __awaiter = (commonjsGlobal && commonjsGlobal.__awaiter) || function (thisArg, _arguments, P, generator) { + function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); + }; + var __generator = (commonjsGlobal && commonjsGlobal.__generator) || function (thisArg, body) { + var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g; + return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; + function verb(n) { return function (v) { return step([n, v]); }; } + function step(op) { + if (f) throw new TypeError("Generator is already executing."); + while (g && (g = 0, op[0] && (_ = 0)), _) try { + if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; + if (y = 0, t) op = [op[0] & 2, t.value]; + switch (op[0]) { + case 0: case 1: t = op; break; + case 4: _.label++; return { value: op[1], done: false }; + case 5: _.label++; y = op[1]; op = [0]; continue; + case 7: op = _.ops.pop(); _.trys.pop(); continue; + default: + if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } + if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } + if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } + if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } + if (t[2]) _.ops.pop(); + _.trys.pop(); continue; + } + op = body.call(thisArg, _); + } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } + if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; + } + }; + var __importDefault = (commonjsGlobal && commonjsGlobal.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; + }; + Object.defineProperty(exports, "__esModule", { value: true }); + exports.AccountStatusChangedStatusChangeBetaNewStatusEnum = exports.AccountStatusChangedStatusChangeBetaPreviousStatusEnum = exports.AccountCorrelatedSourceBetaTypeEnum = exports.AccountCorrelatedIdentityBetaTypeEnum = exports.AccountCorrelatedAccountBetaTypeEnum = exports.AccountAttributesChangedSourceBetaTypeEnum = exports.AccountAttributesChangedIdentityBetaTypeEnum = exports.AccountAttributesChangedAccountBetaTypeEnum = exports.AccountAggregationStatusBetaStatusEnum = exports.AccountAggregationCompletedSourceBetaTypeEnum = exports.AccountAggregationCompletedBetaStatusEnum = exports.AccountAggregationBetaStatusEnum = exports.AccountActivityItemOperationBeta = exports.AccountActionBetaActionEnum = exports.AccessTypeBeta = exports.AccessRequestTypeBeta = exports.AccessRequestRecommendationItemTypeBeta = exports.AccessRequestPreApprovalRequestedItemsInnerBetaOperationEnum = exports.AccessRequestPreApprovalRequestedItemsInnerBetaTypeEnum = exports.AccessRequestPostApprovalRequestedItemsStatusInnerBetaOperationEnum = exports.AccessRequestPostApprovalRequestedItemsStatusInnerBetaTypeEnum = exports.AccessRequestPostApprovalRequestedItemsStatusInnerApprovalInfoInnerBetaApprovalDecisionEnum = exports.AccessRequestPostApprovalRequestedItemsStatusInnerApprovalInfoInnerApproverBetaTypeEnum = exports.AccessRequestPostApprovalRequestedForBetaTypeEnum = exports.AccessRequestPostApprovalRequestedByBetaTypeEnum = exports.AccessRequestPhasesBetaResultEnum = exports.AccessRequestPhasesBetaStateEnum = exports.AccessRequestItemResponseBetaDecisionEnum = exports.AccessRequestItemBetaTypeEnum = exports.AccessRequestDynamicApproverRequestedItemsInnerBetaOperationEnum = exports.AccessRequestDynamicApproverRequestedItemsInnerBetaTypeEnum = exports.AccessRequestDynamicApproverRequestedForBetaTypeEnum = exports.AccessRequestDynamicApproverRequestedByBetaTypeEnum = exports.AccessRequestDynamicApprover1BetaTypeEnum = exports.AccessProfileUsageUsedByInnerBetaTypeEnum = exports.AccessProfileSourceRefBetaTypeEnum = exports.AccessProfileRefBetaTypeEnum = exports.AccessProfileApprovalSchemeBetaApproverTypeEnum = exports.AccessItemReviewedByBetaTypeEnum = exports.AccessItemRequesterDtoBetaTypeEnum = exports.AccessItemRequesterBetaTypeEnum = exports.AccessItemRequestedForDtoBetaTypeEnum = exports.AccessItemRequestedForBetaTypeEnum = exports.AccessItemRefBetaTypeEnum = exports.AccessItemOwnerDtoBetaTypeEnum = exports.AccessItemDiffBetaEventTypeEnum = exports.AccessItemApproverDtoBetaTypeEnum = exports.AccessCriteriaCriteriaListInnerBetaTypeEnum = exports.AccessConstraintBetaOperatorEnum = exports.AccessConstraintBetaTypeEnum = void 0; + exports.CompletionStatusBeta = exports.CompletedApprovalStateBeta = exports.CompletedApprovalReviewedByBetaTypeEnum = exports.CompleteCampaignOptionsBetaAutoCompleteActionEnum = exports.CommonAccessTypeBeta = exports.CommonAccessItemStateBeta = exports.CommentDtoAuthorBetaTypeEnum = exports.CloseAccessRequestBetaCompletionStatusEnum = exports.CloseAccessRequestBetaExecutionStatusEnum = exports.ClientTypeBeta = exports.CertificationTaskBetaStatusEnum = exports.CertificationTaskBetaTargetTypeEnum = exports.CertificationTaskBetaTypeEnum = exports.CertificationReferenceDtoBetaTypeEnum = exports.CertificationReferenceBetaTypeEnum = exports.CertificationPhaseBeta = exports.CampaignTemplateOwnerRefBetaTypeEnum = exports.CampaignReportBetaStatusEnum = exports.CampaignReportBetaTypeEnum = exports.CampaignReferenceBetaMandatoryCommentRequirementEnum = exports.CampaignReferenceBetaCorrelatedStatusEnum = exports.CampaignReferenceBetaCampaignTypeEnum = exports.CampaignReferenceBetaTypeEnum = exports.CampaignGeneratedCampaignBetaStatusEnum = exports.CampaignGeneratedCampaignBetaTypeEnum = exports.CampaignEndedCampaignBetaStatusEnum = exports.CampaignEndedCampaignBetaTypeEnum = exports.CampaignBetaMandatoryCommentRequirementEnum = exports.CampaignBetaCorrelatedStatusEnum = exports.CampaignBetaStatusEnum = exports.CampaignBetaTypeEnum = exports.CampaignAlertBetaLevelEnum = exports.CampaignActivatedCampaignBetaStatusEnum = exports.CampaignActivatedCampaignBetaTypeEnum = exports.BulkWorkgroupMembersRequestInnerBetaTypeEnum = exports.BulkTaggedObjectBetaOperationEnum = exports.BeforeProvisioningRuleDtoBetaTypeEnum = exports.AttributeDefinitionTypeBeta = exports.AttributeDefinitionSchemaBetaTypeEnum = exports.AttrSyncSourceBetaTypeEnum = exports.ApprovalStatusDtoOriginalOwnerBetaTypeEnum = exports.ApprovalStatusBeta = exports.ApprovalSchemeForRoleBetaApproverTypeEnum = exports.ApprovalSchemeBeta = exports.AdminReviewReassignReassignToBetaTypeEnum = exports.AccountsCollectedForAggregationSourceBetaTypeEnum = exports.AccountsCollectedForAggregationBetaStatusEnum = exports.AccountUncorrelatedSourceBetaTypeEnum = exports.AccountUncorrelatedIdentityBetaTypeEnum = exports.AccountUncorrelatedAccountBetaTypeEnum = void 0; + exports.HttpAuthenticationTypeBeta = exports.GrantTypeBeta = exports.FullcampaignBetaMandatoryCommentRequirementEnum = exports.FullcampaignBetaCorrelatedStatusEnum = exports.FullcampaignBetaStatusEnum = exports.FullcampaignBetaTypeEnum = exports.FullcampaignAllOfSourcesWithOrphanEntitlementsBetaTypeEnum = exports.FullcampaignAllOfSearchCampaignInfoReviewerBetaTypeEnum = exports.FullcampaignAllOfSearchCampaignInfoBetaTypeEnum = exports.FullcampaignAllOfRoleCompositionCampaignInfoRemediatorRefBetaTypeEnum = exports.FullcampaignAllOfFilterBetaTypeEnum = exports.FullcampaignAllOfBetaMandatoryCommentRequirementEnum = exports.FullcampaignAllOfBetaCorrelatedStatusEnum = exports.FormUsedByBetaTypeEnum = exports.FormOwnerBetaTypeEnum = exports.FormInstanceResponseBetaStateEnum = exports.FormInstanceRecipientBetaTypeEnum = exports.FormInstanceCreatedByBetaTypeEnum = exports.FormElementDynamicDataSourceConfigBetaObjectTypeEnum = exports.FormElementDynamicDataSourceConfigBetaIndicesEnum = exports.FormElementDynamicDataSourceBetaDataSourceTypeEnum = exports.FormElementBetaElementTypeEnum = exports.FormDefinitionInputBetaTypeEnum = exports.FormConditionBetaRuleOperatorEnum = exports.ExpressionBetaOperatorEnum = exports.ExportPayloadBetaIncludeTypesEnum = exports.ExportPayloadBetaExcludeTypesEnum = exports.ExportOptionsBetaIncludeTypesEnum = exports.ExportOptionsBetaExcludeTypesEnum = exports.ExecutionStatusBeta = exports.ExceptionCriteriaCriteriaListInnerBetaTypeEnum = exports.EntitlementRefBetaTypeEnum = exports.EntitlementApprovalSchemeBetaApproverTypeEnum = exports.EmailStatusDtoBetaVerificationStatusEnum = exports.DtoTypeBeta = exports.Delete202ResponseBetaTypeEnum = exports.DateCompareBetaOperatorEnum = exports.CustomPasswordInstructionBetaPageIdEnum = exports.CreateFormInstanceRequestBetaStateEnum = exports.CorrelatedGovernanceEventBetaTypeEnum = exports.ConnectorRuleValidationResponseBetaStateEnum = exports.ConnectorRuleUpdateRequestBetaTypeEnum = exports.ConnectorRuleResponseBetaTypeEnum = exports.ConnectorRuleCreateRequestBetaTypeEnum = exports.ConnectedObjectTypeBeta = exports.ConfigTypeEnumBeta = exports.ConditionRuleBetaValueTypeEnum = exports.ConditionRuleBetaOperatorEnum = exports.ConditionRuleBetaSourceTypeEnum = exports.ConditionEffectBetaEffectTypeEnum = void 0; + exports.PasswordChangeResponseBetaStateEnum = exports.OwnerReferenceSegmentsBetaTypeEnum = exports.OwnerReferenceDtoBetaTypeEnum = exports.OwnerReferenceBetaTypeEnum = exports.OwnerDtoBetaTypeEnum = exports.OutliersContributingFeatureAccessItemsBetaAccessTypeEnum = exports.OutlierSummaryBetaTypeEnum = exports.OutlierFeatureSummaryOutlierFeatureDisplayValuesInnerBetaValueTypeEnum = exports.OutlierContributingFeatureBetaValueTypeEnum = exports.OutlierBetaUnignoreTypeEnum = exports.OutlierBetaTypeEnum = exports.NonEmployeeSchemaAttributeTypeBeta = exports.NonEmployeeBulkUploadStatusBetaStatusEnum = exports.NonEmployeeBulkUploadJobBetaStatusEnum = exports.NativeChangeDetectionConfigBetaOperationsEnum = exports.NamedConstructsBeta = exports.MfaConfigTestResponseBetaStateEnum = exports.MediumBeta = exports.ManualWorkItemStateBeta = exports.ManualWorkItemDetailsOriginalOwnerBetaTypeEnum = exports.ManualWorkItemDetailsCurrentOwnerBetaTypeEnum = exports.ManagedClusterTypesBeta = exports.ManagedClientTypeBeta = exports.ManagedClientStatusEnumBeta = exports.MailFromAttributesBetaMailFromDomainStatusEnum = exports.LocaleOriginBeta = exports.ListWorkgroupMembers200ResponseInnerBetaTypeEnum = exports.LatestOutlierSummaryBetaTypeEnum = exports.JsonPatchOperationBetaOpEnum = exports.InvocationStatusTypeBeta = exports.ImportOptionsBetaDefaultReferencesEnum = exports.ImportOptionsBetaIncludeTypesEnum = exports.ImportOptionsBetaExcludeTypesEnum = exports.ImportObjectBetaTypeEnum = exports.IdentityWithNewAccessAccessRefsInnerBetaTypeEnum = exports.IdentitySyncJobBetaStatusEnum = exports.IdentityProfileAllOfOwnerBetaTypeEnum = exports.IdentityProfileAllOfAuthoritativeSourceBetaTypeEnum = exports.IdentityProfile1AllOfAuthoritativeSourceBetaTypeEnum = exports.IdentityDtoManagerRefBetaTypeEnum = exports.IdentityDtoBetaIdentityStatusEnum = exports.IdentityDtoBetaProcessingStateEnum = exports.IdentityDeletedIdentityBetaTypeEnum = exports.IdentityCreatedIdentityBetaTypeEnum = exports.IdentityCertificationTaskBetaStatusEnum = exports.IdentityCertificationTaskBetaTypeEnum = exports.IdentityBetaIdentityStatusEnum = exports.IdentityBetaProcessingStateEnum = exports.IdentityAttributesChangedIdentityBetaTypeEnum = exports.HttpDispatchModeBeta = void 0; + exports.SodPolicyBetaStateEnum = exports.SlimcampaignBetaCorrelatedStatusEnum = exports.SlimcampaignBetaStatusEnum = exports.SlimcampaignBetaTypeEnum = exports.ServiceDeskSourceBetaTypeEnum = exports.SendTestNotificationRequestDtoBetaMediumEnum = exports.SelfImportExportDtoBetaTypeEnum = exports.SelectorTypeBeta = exports.ScheduleTypeBeta = exports.ScheduleMonthsBetaTypeEnum = exports.ScheduleHoursBetaTypeEnum = exports.ScheduleDaysBetaTypeEnum = exports.ScheduleBetaTypeEnum = exports.RoleMiningSessionStateBeta = exports.RoleMiningSessionScopingMethodBeta = exports.RoleMiningRoleTypeBeta = exports.RoleMiningPotentialRoleProvisionStateBeta = exports.RoleMiningPotentialRoleExportStateBeta = exports.RoleMembershipSelectorTypeBeta = exports.RoleInsightsResponseBetaStatusEnum = exports.RoleCriteriaOperationBeta = exports.RoleCriteriaKeyTypeBeta = exports.RoleAssignmentSourceTypeBeta = exports.ReviewerBetaTypeEnum = exports.RequestedItemStatusRequestStateBeta = exports.RequestedItemStatusBetaTypeEnum = exports.RequestableObjectTypeBeta = exports.RequestableObjectRequestStatusBeta = exports.RequestableObjectReferenceBetaTypeEnum = exports.ReportTypeBeta = exports.ReportResultReferenceBetaStatusEnum = exports.ReportResultReferenceBetaTypeEnum = exports.ReportResultReferenceAllOfBetaStatusEnum = exports.RecommendationResponseBetaRecommendationEnum = exports.ReassignmentTypeEnumBeta = exports.ReassignmentTypeBeta = exports.ReassignReferenceBetaTypeEnum = exports.ProvisioningStateBeta = exports.ProvisioningCriteriaOperationBeta = exports.ProvisioningConfigManagedResourceRefsInnerBetaTypeEnum = exports.ProvisioningCompletedRequesterBetaTypeEnum = exports.ProvisioningCompletedRecipientBetaTypeEnum = exports.ProvisioningCompletedAccountRequestsInnerSourceBetaTypeEnum = exports.ProvisioningCompletedAccountRequestsInnerBetaProvisioningResultEnum = exports.ProvisioningCompletedAccountRequestsInnerAttributeRequestsInnerBetaOperationEnum = exports.PreApprovalTriggerDetailsBetaDecisionEnum = exports.PendingApprovalActionBeta = exports.PatchPotentialRoleRequestInnerBetaOpEnum = exports.PatOwnerBetaTypeEnum = exports.PasswordStatusBetaStateEnum = void 0; + exports.WorkItemTypeBeta = exports.WorkItemStateBeta = exports.ViolationOwnerAssignmentConfigOwnerRefBetaTypeEnum = exports.ViolationOwnerAssignmentConfigBetaAssignmentRuleEnum = exports.ViolationContextPolicyBetaTypeEnum = exports.VAClusterStatusChangeEventPreviousHealthCheckResultBetaStatusEnum = exports.VAClusterStatusChangeEventHealthCheckResultBetaStatusEnum = exports.VAClusterStatusChangeEventBetaTypeEnum = exports.UsageTypeBeta = exports.TriggerTypeBeta = exports.TransformReadBetaTypeEnum = exports.TransformBetaTypeEnum = exports.TemplateDtoDefaultBetaMediumEnum = exports.TemplateDtoBetaMediumEnum = exports.TemplateBulkDeleteDtoBetaMediumEnum = exports.TaskStatusMessageBetaTypeEnum = exports.TaskStatusBetaCompletionStatusEnum = exports.TaskStatusBetaTypeEnum = exports.TaskResultSimplifiedBetaCompletionStatusEnum = exports.TaskResultDtoBetaTypeEnum = exports.TaggedObjectObjectRefBetaTypeEnum = exports.TaggedObjectDtoBetaTypeEnum = exports.SubscriptionTypeBeta = exports.SubscriptionPatchRequestInnerBetaOpEnum = exports.StatusResponseBetaStatusEnum = exports.StandardLevelBeta = exports.SpConfigJobBetaTypeEnum = exports.SpConfigJobBetaStatusEnum = exports.SourceUsageStatusBetaStatusEnum = exports.SourceUpdatedActorBetaTypeEnum = exports.SourceSyncJobBetaStatusEnum = exports.SourceSchemasInnerBetaTypeEnum = exports.SourcePasswordPoliciesInnerBetaTypeEnum = exports.SourceOwnerBetaTypeEnum = exports.SourceManagerCorrelationRuleBetaTypeEnum = exports.SourceManagementWorkgroupBetaTypeEnum = exports.SourceFeatureBeta = exports.SourceDeletedActorBetaTypeEnum = exports.SourceCreatedActorBetaTypeEnum = exports.SourceClusterDtoBetaTypeEnum = exports.SourceClusterBetaTypeEnum = exports.SourceBeforeProvisioningRuleBetaTypeEnum = exports.SourceAccountCorrelationRuleBetaTypeEnum = exports.SourceAccountCorrelationConfigBetaTypeEnum = exports.SodViolationContextCheckCompletedBetaStateEnum = exports.SodViolationContextCheckCompleted1BetaStateEnum = exports.SodReportResultDtoBetaTypeEnum = exports.SodRecipientBetaTypeEnum = exports.SodPolicyDtoBetaTypeEnum = exports.SodPolicyBetaTypeEnum = void 0; + exports.ConnectorsBetaApiFp = exports.ConnectorsBetaApiAxiosParamCreator = exports.ConnectorRuleManagementBetaApi = exports.ConnectorRuleManagementBetaApiFactory = exports.ConnectorRuleManagementBetaApiFp = exports.ConnectorRuleManagementBetaApiAxiosParamCreator = exports.CertificationsBetaApi = exports.CertificationsBetaApiFactory = exports.CertificationsBetaApiFp = exports.CertificationsBetaApiAxiosParamCreator = exports.CertificationCampaignsBetaApi = exports.CertificationCampaignsBetaApiFactory = exports.CertificationCampaignsBetaApiFp = exports.CertificationCampaignsBetaApiAxiosParamCreator = exports.AccountsBetaApi = exports.AccountsBetaApiFactory = exports.AccountsBetaApiFp = exports.AccountsBetaApiAxiosParamCreator = exports.AccountUsagesBetaApi = exports.AccountUsagesBetaApiFactory = exports.AccountUsagesBetaApiFp = exports.AccountUsagesBetaApiAxiosParamCreator = exports.AccountAggregationsBetaApi = exports.AccountAggregationsBetaApiFactory = exports.AccountAggregationsBetaApiFp = exports.AccountAggregationsBetaApiAxiosParamCreator = exports.AccountActivitiesBetaApi = exports.AccountActivitiesBetaApiFactory = exports.AccountActivitiesBetaApiFp = exports.AccountActivitiesBetaApiAxiosParamCreator = exports.AccessRequestsBetaApi = exports.AccessRequestsBetaApiFactory = exports.AccessRequestsBetaApiFp = exports.AccessRequestsBetaApiAxiosParamCreator = exports.AccessRequestApprovalsBetaApi = exports.AccessRequestApprovalsBetaApiFactory = exports.AccessRequestApprovalsBetaApiFp = exports.AccessRequestApprovalsBetaApiAxiosParamCreator = exports.AccessProfilesBetaApi = exports.AccessProfilesBetaApiFactory = exports.AccessProfilesBetaApiFp = exports.AccessProfilesBetaApiAxiosParamCreator = exports.WorkgroupConnectionDtoBetaConnectionTypeEnum = exports.WorkflowTriggerBetaTypeEnum = exports.WorkflowLibraryTriggerBetaTypeEnum = exports.WorkflowLibraryFormFieldsBetaTypeEnum = exports.WorkflowExecutionEventBetaTypeEnum = exports.WorkflowExecutionBetaStatusEnum = exports.WorkflowBodyOwnerBetaTypeEnum = exports.WorkflowAllOfCreatorBetaTypeEnum = void 0; + exports.IdentityAttributesBetaApi = exports.IdentityAttributesBetaApiFactory = exports.IdentityAttributesBetaApiFp = exports.IdentityAttributesBetaApiAxiosParamCreator = exports.IdentitiesBetaApi = exports.IdentitiesBetaApiFactory = exports.IdentitiesBetaApiFp = exports.IdentitiesBetaApiAxiosParamCreator = exports.IAIRoleMiningBetaApi = exports.IAIRoleMiningBetaApiFactory = exports.IAIRoleMiningBetaApiFp = exports.IAIRoleMiningBetaApiAxiosParamCreator = exports.IAIRecommendationsBetaApi = exports.IAIRecommendationsBetaApiFactory = exports.IAIRecommendationsBetaApiFp = exports.IAIRecommendationsBetaApiAxiosParamCreator = exports.IAIPeerGroupStrategiesBetaApi = exports.IAIPeerGroupStrategiesBetaApiFactory = exports.IAIPeerGroupStrategiesBetaApiFp = exports.IAIPeerGroupStrategiesBetaApiAxiosParamCreator = exports.IAIOutliersBetaApi = exports.IAIOutliersBetaApiFactory = exports.IAIOutliersBetaApiFp = exports.IAIOutliersBetaApiAxiosParamCreator = exports.IAICommonAccessBetaApi = exports.IAICommonAccessBetaApiFactory = exports.IAICommonAccessBetaApiFp = exports.IAICommonAccessBetaApiAxiosParamCreator = exports.IAIAccessRequestRecommendationsBetaApi = exports.IAIAccessRequestRecommendationsBetaApiFactory = exports.IAIAccessRequestRecommendationsBetaApiFp = exports.IAIAccessRequestRecommendationsBetaApiAxiosParamCreator = exports.GovernanceGroupsBetaApi = exports.GovernanceGroupsBetaApiFactory = exports.GovernanceGroupsBetaApiFp = exports.GovernanceGroupsBetaApiAxiosParamCreator = exports.EntitlementsBetaApi = exports.EntitlementsBetaApiFactory = exports.EntitlementsBetaApiFp = exports.EntitlementsBetaApiAxiosParamCreator = exports.CustomPasswordInstructionsBetaApi = exports.CustomPasswordInstructionsBetaApiFactory = exports.CustomPasswordInstructionsBetaApiFp = exports.CustomPasswordInstructionsBetaApiAxiosParamCreator = exports.CustomFormsBetaApi = exports.CustomFormsBetaApiFactory = exports.CustomFormsBetaApiFp = exports.CustomFormsBetaApiAxiosParamCreator = exports.ConnectorsBetaApi = exports.ConnectorsBetaApiFactory = void 0; + exports.PasswordManagementBetaApiFp = exports.PasswordManagementBetaApiAxiosParamCreator = exports.PasswordDictionaryBetaApi = exports.PasswordDictionaryBetaApiFactory = exports.PasswordDictionaryBetaApiFp = exports.PasswordDictionaryBetaApiAxiosParamCreator = exports.PasswordConfigurationBetaApi = exports.PasswordConfigurationBetaApiFactory = exports.PasswordConfigurationBetaApiFp = exports.PasswordConfigurationBetaApiAxiosParamCreator = exports.OrgConfigBetaApi = exports.OrgConfigBetaApiFactory = exports.OrgConfigBetaApiFp = exports.OrgConfigBetaApiAxiosParamCreator = exports.OAuthClientsBetaApi = exports.OAuthClientsBetaApiFactory = exports.OAuthClientsBetaApiFp = exports.OAuthClientsBetaApiAxiosParamCreator = exports.NotificationsBetaApi = exports.NotificationsBetaApiFactory = exports.NotificationsBetaApiFp = exports.NotificationsBetaApiAxiosParamCreator = exports.NonEmployeeLifecycleManagementBetaApi = exports.NonEmployeeLifecycleManagementBetaApiFactory = exports.NonEmployeeLifecycleManagementBetaApiFp = exports.NonEmployeeLifecycleManagementBetaApiAxiosParamCreator = exports.ManagedClustersBetaApi = exports.ManagedClustersBetaApiFactory = exports.ManagedClustersBetaApiFp = exports.ManagedClustersBetaApiAxiosParamCreator = exports.ManagedClientsBetaApi = exports.ManagedClientsBetaApiFactory = exports.ManagedClientsBetaApiFp = exports.ManagedClientsBetaApiAxiosParamCreator = exports.MFAConfigurationBetaApi = exports.MFAConfigurationBetaApiFactory = exports.MFAConfigurationBetaApiFp = exports.MFAConfigurationBetaApiAxiosParamCreator = exports.LifecycleStatesBetaApi = exports.LifecycleStatesBetaApiFactory = exports.LifecycleStatesBetaApiFp = exports.LifecycleStatesBetaApiAxiosParamCreator = exports.IdentityProfilesBetaApi = exports.IdentityProfilesBetaApiFactory = exports.IdentityProfilesBetaApiFp = exports.IdentityProfilesBetaApiAxiosParamCreator = exports.IdentityHistoryBetaApi = exports.IdentityHistoryBetaApiFactory = exports.IdentityHistoryBetaApiFp = exports.IdentityHistoryBetaApiAxiosParamCreator = void 0; + exports.ServiceDeskIntegrationBetaApi = exports.ServiceDeskIntegrationBetaApiFactory = exports.ServiceDeskIntegrationBetaApiFp = exports.ServiceDeskIntegrationBetaApiAxiosParamCreator = exports.SegmentsBetaApi = exports.SegmentsBetaApiFactory = exports.SegmentsBetaApiFp = exports.SegmentsBetaApiAxiosParamCreator = exports.SearchAttributeConfigurationBetaApi = exports.SearchAttributeConfigurationBetaApiFactory = exports.SearchAttributeConfigurationBetaApiFp = exports.SearchAttributeConfigurationBetaApiAxiosParamCreator = exports.SPConfigBetaApi = exports.SPConfigBetaApiFactory = exports.SPConfigBetaApiFp = exports.SPConfigBetaApiAxiosParamCreator = exports.SODViolationsBetaApi = exports.SODViolationsBetaApiFactory = exports.SODViolationsBetaApiFp = exports.SODViolationsBetaApiAxiosParamCreator = exports.SODPolicyBetaApi = exports.SODPolicyBetaApiFactory = exports.SODPolicyBetaApiFp = exports.SODPolicyBetaApiAxiosParamCreator = exports.RolesBetaApi = exports.RolesBetaApiFactory = exports.RolesBetaApiFp = exports.RolesBetaApiAxiosParamCreator = exports.RoleInsightsBetaApi = exports.RoleInsightsBetaApiFactory = exports.RoleInsightsBetaApiFp = exports.RoleInsightsBetaApiAxiosParamCreator = exports.RequestableObjectsBetaApi = exports.RequestableObjectsBetaApiFactory = exports.RequestableObjectsBetaApiFp = exports.RequestableObjectsBetaApiAxiosParamCreator = exports.PublicIdentitiesConfigBetaApi = exports.PublicIdentitiesConfigBetaApiFactory = exports.PublicIdentitiesConfigBetaApiFp = exports.PublicIdentitiesConfigBetaApiAxiosParamCreator = exports.PersonalAccessTokensBetaApi = exports.PersonalAccessTokensBetaApiFactory = exports.PersonalAccessTokensBetaApiFp = exports.PersonalAccessTokensBetaApiAxiosParamCreator = exports.PasswordSyncGroupsBetaApi = exports.PasswordSyncGroupsBetaApiFactory = exports.PasswordSyncGroupsBetaApiFp = exports.PasswordSyncGroupsBetaApiAxiosParamCreator = exports.PasswordManagementBetaApi = exports.PasswordManagementBetaApiFactory = void 0; + exports.WorkflowsBetaApi = exports.WorkflowsBetaApiFactory = exports.WorkflowsBetaApiFp = exports.WorkflowsBetaApiAxiosParamCreator = exports.WorkReassignmentBetaApi = exports.WorkReassignmentBetaApiFactory = exports.WorkReassignmentBetaApiFp = exports.WorkReassignmentBetaApiAxiosParamCreator = exports.WorkItemsBetaApi = exports.WorkItemsBetaApiFactory = exports.WorkItemsBetaApiFp = exports.WorkItemsBetaApiAxiosParamCreator = exports.TriggersBetaApi = exports.TriggersBetaApiFactory = exports.TriggersBetaApiFp = exports.TriggersBetaApiAxiosParamCreator = exports.TransformsBetaApi = exports.TransformsBetaApiFactory = exports.TransformsBetaApiFp = exports.TransformsBetaApiAxiosParamCreator = exports.TaskManagementBetaApi = exports.TaskManagementBetaApiFactory = exports.TaskManagementBetaApiFp = exports.TaskManagementBetaApiAxiosParamCreator = exports.TaggedObjectsBetaApi = exports.TaggedObjectsBetaApiFactory = exports.TaggedObjectsBetaApiFp = exports.TaggedObjectsBetaApiAxiosParamCreator = exports.SourcesBetaApi = exports.SourcesBetaApiFactory = exports.SourcesBetaApiFp = exports.SourcesBetaApiAxiosParamCreator = exports.SourceUsagesBetaApi = exports.SourceUsagesBetaApiFactory = exports.SourceUsagesBetaApiFp = exports.SourceUsagesBetaApiAxiosParamCreator = void 0; + var axios_1 = __importDefault(requireAxios()); + // Some imports not used depending on template conditions + // @ts-ignore + var common_1 = requireCommon$4(); + // @ts-ignore + var base_1 = requireBase$3(); + exports.AccessConstraintBetaTypeEnum = { + Entitlement: 'ENTITLEMENT', + AccessProfile: 'ACCESS_PROFILE', + Role: 'ROLE' + }; + exports.AccessConstraintBetaOperatorEnum = { + All: 'ALL', + Selected: 'SELECTED' + }; + exports.AccessCriteriaCriteriaListInnerBetaTypeEnum = { + Entitlement: 'ENTITLEMENT' + }; + exports.AccessItemApproverDtoBetaTypeEnum = { + Identity: 'IDENTITY' + }; + exports.AccessItemDiffBetaEventTypeEnum = { + Add: 'ADD', + Remove: 'REMOVE' + }; + exports.AccessItemOwnerDtoBetaTypeEnum = { + Identity: 'IDENTITY' + }; + exports.AccessItemRefBetaTypeEnum = { + Entitlement: 'ENTITLEMENT', + AccessProfile: 'ACCESS_PROFILE', + Role: 'ROLE' + }; + exports.AccessItemRequestedForBetaTypeEnum = { + Identity: 'IDENTITY' + }; + exports.AccessItemRequestedForDtoBetaTypeEnum = { + Identity: 'IDENTITY' + }; + exports.AccessItemRequesterBetaTypeEnum = { + Identity: 'IDENTITY' + }; + exports.AccessItemRequesterDtoBetaTypeEnum = { + Identity: 'IDENTITY' + }; + exports.AccessItemReviewedByBetaTypeEnum = { + Identity: 'IDENTITY' + }; + exports.AccessProfileApprovalSchemeBetaApproverTypeEnum = { + AppOwner: 'APP_OWNER', + Owner: 'OWNER', + SourceOwner: 'SOURCE_OWNER', + Manager: 'MANAGER', + GovernanceGroup: 'GOVERNANCE_GROUP' + }; + exports.AccessProfileRefBetaTypeEnum = { + AccessProfile: 'ACCESS_PROFILE' + }; + exports.AccessProfileSourceRefBetaTypeEnum = { + Source: 'SOURCE' + }; + exports.AccessProfileUsageUsedByInnerBetaTypeEnum = { + Role: 'ROLE' + }; + exports.AccessRequestDynamicApprover1BetaTypeEnum = { + Identity: 'IDENTITY', + GovernanceGroup: 'GOVERNANCE_GROUP' + }; + exports.AccessRequestDynamicApproverRequestedByBetaTypeEnum = { + Identity: 'IDENTITY' + }; + exports.AccessRequestDynamicApproverRequestedForBetaTypeEnum = { + Identity: 'IDENTITY' + }; + exports.AccessRequestDynamicApproverRequestedItemsInnerBetaTypeEnum = { + AccessProfile: 'ACCESS_PROFILE', + Role: 'ROLE', + Entitlement: 'ENTITLEMENT' + }; + exports.AccessRequestDynamicApproverRequestedItemsInnerBetaOperationEnum = { + Add: 'Add', + Remove: 'Remove' + }; + exports.AccessRequestItemBetaTypeEnum = { + AccessProfile: 'ACCESS_PROFILE', + Role: 'ROLE', + Entitlement: 'ENTITLEMENT' + }; + exports.AccessRequestItemResponseBetaDecisionEnum = { + Approved: 'APPROVED', + Rejected: 'REJECTED' + }; + exports.AccessRequestPhasesBetaStateEnum = { + Pending: 'PENDING', + Executing: 'EXECUTING', + Completed: 'COMPLETED', + Cancelled: 'CANCELLED' + }; + exports.AccessRequestPhasesBetaResultEnum = { + Successful: 'SUCCESSFUL', + Failed: 'FAILED' + }; + exports.AccessRequestPostApprovalRequestedByBetaTypeEnum = { + Identity: 'IDENTITY' + }; + exports.AccessRequestPostApprovalRequestedForBetaTypeEnum = { + Identity: 'IDENTITY' + }; + exports.AccessRequestPostApprovalRequestedItemsStatusInnerApprovalInfoInnerApproverBetaTypeEnum = { + Identity: 'IDENTITY' + }; + exports.AccessRequestPostApprovalRequestedItemsStatusInnerApprovalInfoInnerBetaApprovalDecisionEnum = { + Approved: 'APPROVED', + Denied: 'DENIED' + }; + exports.AccessRequestPostApprovalRequestedItemsStatusInnerBetaTypeEnum = { + AccessProfile: 'ACCESS_PROFILE', + Role: 'ROLE', + Entitlement: 'ENTITLEMENT' + }; + exports.AccessRequestPostApprovalRequestedItemsStatusInnerBetaOperationEnum = { + Add: 'Add', + Remove: 'Remove' + }; + exports.AccessRequestPreApprovalRequestedItemsInnerBetaTypeEnum = { + AccessProfile: 'ACCESS_PROFILE', + Role: 'ROLE', + Entitlement: 'ENTITLEMENT' + }; + exports.AccessRequestPreApprovalRequestedItemsInnerBetaOperationEnum = { + Add: 'Add', + Remove: 'Remove' + }; + /** + * The type of access item. + * @export + * @enum {string} + */ + exports.AccessRequestRecommendationItemTypeBeta = { + AccessProfile: 'ACCESS_PROFILE', + Role: 'ROLE' + }; + /** + * Access request type. Defaults to GRANT_ACCESS. REVOKE_ACCESS type can only have a single Identity ID in the requestedFor field. + * @export + * @enum {string} + */ + exports.AccessRequestTypeBeta = { + GrantAccess: 'GRANT_ACCESS', + RevokeAccess: 'REVOKE_ACCESS' + }; + /** + * Access type of API Client indicating online or offline use + * @export + * @enum {string} + */ + exports.AccessTypeBeta = { + Online: 'ONLINE', + Offline: 'OFFLINE' + }; + exports.AccountActionBetaActionEnum = { + Enable: 'ENABLE', + Disable: 'DISABLE' + }; + /** + * Represents an operation in an account activity item + * @export + * @enum {string} + */ + exports.AccountActivityItemOperationBeta = { + Add: 'ADD', + Create: 'CREATE', + Modify: 'MODIFY', + Delete: 'DELETE', + Disable: 'DISABLE', + Enable: 'ENABLE', + Unlock: 'UNLOCK', + Lock: 'LOCK', + Remove: 'REMOVE' + }; + exports.AccountAggregationBetaStatusEnum = { + Started: 'STARTED', + AccountsCollected: 'ACCOUNTS_COLLECTED', + Completed: 'COMPLETED', + Cancelled: 'CANCELLED', + Retried: 'RETRIED', + Terminated: 'TERMINATED' + }; + exports.AccountAggregationCompletedBetaStatusEnum = { + Success: 'Success', + Failed: 'Failed', + Terminated: 'Terminated' + }; + exports.AccountAggregationCompletedSourceBetaTypeEnum = { + Source: 'SOURCE' + }; + exports.AccountAggregationStatusBetaStatusEnum = { + Started: 'STARTED', + AccountsCollected: 'ACCOUNTS_COLLECTED', + Completed: 'COMPLETED', + Cancelled: 'CANCELLED', + Retried: 'RETRIED', + Terminated: 'TERMINATED' + }; + exports.AccountAttributesChangedAccountBetaTypeEnum = { + Account: 'ACCOUNT' + }; + exports.AccountAttributesChangedIdentityBetaTypeEnum = { + Identity: 'IDENTITY' + }; + exports.AccountAttributesChangedSourceBetaTypeEnum = { + Source: 'SOURCE' + }; + exports.AccountCorrelatedAccountBetaTypeEnum = { + Account: 'ACCOUNT' + }; + exports.AccountCorrelatedIdentityBetaTypeEnum = { + Identity: 'IDENTITY' + }; + exports.AccountCorrelatedSourceBetaTypeEnum = { + Source: 'SOURCE' + }; + exports.AccountStatusChangedStatusChangeBetaPreviousStatusEnum = { + Enabled: 'enabled', + Disabled: 'disabled', + Locked: 'locked' + }; + exports.AccountStatusChangedStatusChangeBetaNewStatusEnum = { + Enabled: 'enabled', + Disabled: 'disabled', + Locked: 'locked' + }; + exports.AccountUncorrelatedAccountBetaTypeEnum = { + Account: 'ACCOUNT' + }; + exports.AccountUncorrelatedIdentityBetaTypeEnum = { + Identity: 'IDENTITY' + }; + exports.AccountUncorrelatedSourceBetaTypeEnum = { + Source: 'SOURCE' + }; + exports.AccountsCollectedForAggregationBetaStatusEnum = { + Success: 'Success', + Failed: 'Failed', + Terminated: 'Terminated' + }; + exports.AccountsCollectedForAggregationSourceBetaTypeEnum = { + Source: 'SOURCE' + }; + exports.AdminReviewReassignReassignToBetaTypeEnum = { + Identity: 'IDENTITY' + }; + /** + * Describes the individual or group that is responsible for an approval step. + * @export + * @enum {string} + */ + exports.ApprovalSchemeBeta = { + AppOwner: 'APP_OWNER', + SourceOwner: 'SOURCE_OWNER', + Manager: 'MANAGER', + RoleOwner: 'ROLE_OWNER', + AccessProfileOwner: 'ACCESS_PROFILE_OWNER', + EntitlementOwner: 'ENTITLEMENT_OWNER', + GovernanceGroup: 'GOVERNANCE_GROUP' + }; + exports.ApprovalSchemeForRoleBetaApproverTypeEnum = { + Owner: 'OWNER', + Manager: 'MANAGER', + GovernanceGroup: 'GOVERNANCE_GROUP' + }; + /** + * Enum representing the non-employee request approval status + * @export + * @enum {string} + */ + exports.ApprovalStatusBeta = { + Approved: 'APPROVED', + Rejected: 'REJECTED', + Pending: 'PENDING', + NotReady: 'NOT_READY', + Cancelled: 'CANCELLED' + }; + exports.ApprovalStatusDtoOriginalOwnerBetaTypeEnum = { + GovernanceGroup: 'GOVERNANCE_GROUP', + Identity: 'IDENTITY' + }; + exports.AttrSyncSourceBetaTypeEnum = { + Source: 'SOURCE' + }; + exports.AttributeDefinitionSchemaBetaTypeEnum = { + ConnectorSchema: 'CONNECTOR_SCHEMA' + }; + /** + * The underlying type of the value which an AttributeDefinition represents. + * @export + * @enum {string} + */ + exports.AttributeDefinitionTypeBeta = { + String: 'STRING', + Long: 'LONG', + Int: 'INT', + Boolean: 'BOOLEAN' + }; + exports.BeforeProvisioningRuleDtoBetaTypeEnum = { + Rule: 'RULE' + }; + exports.BulkTaggedObjectBetaOperationEnum = { + Append: 'APPEND', + Merge: 'MERGE' + }; + exports.BulkWorkgroupMembersRequestInnerBetaTypeEnum = { + Identity: 'IDENTITY' + }; + exports.CampaignActivatedCampaignBetaTypeEnum = { + Manager: 'MANAGER', + SourceOwner: 'SOURCE_OWNER', + Search: 'SEARCH', + RoleComposition: 'ROLE_COMPOSITION' + }; + exports.CampaignActivatedCampaignBetaStatusEnum = { + Active: 'ACTIVE' + }; + exports.CampaignAlertBetaLevelEnum = { + Error: 'ERROR', + Warn: 'WARN', + Info: 'INFO' + }; + exports.CampaignBetaTypeEnum = { + Manager: 'MANAGER', + SourceOwner: 'SOURCE_OWNER', + Search: 'SEARCH', + RoleComposition: 'ROLE_COMPOSITION' + }; + exports.CampaignBetaStatusEnum = { + Pending: 'PENDING', + Staged: 'STAGED', + Canceling: 'CANCELING', + Activating: 'ACTIVATING', + Active: 'ACTIVE', + Completing: 'COMPLETING', + Completed: 'COMPLETED', + Error: 'ERROR', + Archived: 'ARCHIVED' + }; + exports.CampaignBetaCorrelatedStatusEnum = { + Correlated: 'CORRELATED', + Uncorrelated: 'UNCORRELATED' + }; + exports.CampaignBetaMandatoryCommentRequirementEnum = { + AllDecisions: 'ALL_DECISIONS', + RevokeOnlyDecisions: 'REVOKE_ONLY_DECISIONS', + NoDecisions: 'NO_DECISIONS' + }; + exports.CampaignEndedCampaignBetaTypeEnum = { + Manager: 'MANAGER', + SourceOwner: 'SOURCE_OWNER', + Search: 'SEARCH', + RoleComposition: 'ROLE_COMPOSITION' + }; + exports.CampaignEndedCampaignBetaStatusEnum = { + Completed: 'COMPLETED' + }; + exports.CampaignGeneratedCampaignBetaTypeEnum = { + Manager: 'MANAGER', + SourceOwner: 'SOURCE_OWNER', + Search: 'SEARCH', + RoleComposition: 'ROLE_COMPOSITION' + }; + exports.CampaignGeneratedCampaignBetaStatusEnum = { + Staged: 'STAGED', + Activating: 'ACTIVATING', + Active: 'ACTIVE' + }; + exports.CampaignReferenceBetaTypeEnum = { + Campaign: 'CAMPAIGN' + }; + exports.CampaignReferenceBetaCampaignTypeEnum = { + Manager: 'MANAGER', + SourceOwner: 'SOURCE_OWNER', + Search: 'SEARCH' + }; + exports.CampaignReferenceBetaCorrelatedStatusEnum = { + Correlated: 'CORRELATED', + Uncorrelated: 'UNCORRELATED' + }; + exports.CampaignReferenceBetaMandatoryCommentRequirementEnum = { + AllDecisions: 'ALL_DECISIONS', + RevokeOnlyDecisions: 'REVOKE_ONLY_DECISIONS', + NoDecisions: 'NO_DECISIONS' + }; + exports.CampaignReportBetaTypeEnum = { + ReportResult: 'REPORT_RESULT' + }; + exports.CampaignReportBetaStatusEnum = { + Success: 'SUCCESS', + Warning: 'WARNING', + Error: 'ERROR', + Terminated: 'TERMINATED', + TempError: 'TEMP_ERROR', + Pending: 'PENDING' + }; + exports.CampaignTemplateOwnerRefBetaTypeEnum = { + Identity: 'IDENTITY' + }; + /** + * The current phase of the campaign. * `STAGED`: The campaign is waiting to be activated. * `ACTIVE`: The campaign is active. * `SIGNED`: The reviewer has signed off on the campaign, and it is considered complete. + * @export + * @enum {string} + */ + exports.CertificationPhaseBeta = { + Staged: 'STAGED', + Active: 'ACTIVE', + Signed: 'SIGNED' + }; + exports.CertificationReferenceBetaTypeEnum = { + Certification: 'CERTIFICATION' + }; + exports.CertificationReferenceDtoBetaTypeEnum = { + Certification: 'CERTIFICATION' + }; + exports.CertificationTaskBetaTypeEnum = { + Reassign: 'REASSIGN', + AdminReassign: 'ADMIN_REASSIGN', + CompleteCertification: 'COMPLETE_CERTIFICATION', + FinishCertification: 'FINISH_CERTIFICATION', + CompleteCampaign: 'COMPLETE_CAMPAIGN', + ActivateCampaign: 'ACTIVATE_CAMPAIGN', + CampaignCreate: 'CAMPAIGN_CREATE', + CampaignDelete: 'CAMPAIGN_DELETE' + }; + exports.CertificationTaskBetaTargetTypeEnum = { + Certification: 'CERTIFICATION', + Campaign: 'CAMPAIGN' + }; + exports.CertificationTaskBetaStatusEnum = { + Queued: 'QUEUED', + InProgress: 'IN_PROGRESS', + Success: 'SUCCESS', + Error: 'ERROR' + }; + /** + * Type of an API Client indicating public or confidentials use + * @export + * @enum {string} + */ + exports.ClientTypeBeta = { + Confidential: 'CONFIDENTIAL', + Public: 'PUBLIC' + }; + exports.CloseAccessRequestBetaExecutionStatusEnum = { + Terminated: 'Terminated', + Completed: 'Completed' + }; + exports.CloseAccessRequestBetaCompletionStatusEnum = { + Success: 'Success', + Incomplete: 'Incomplete', + Failure: 'Failure' + }; + exports.CommentDtoAuthorBetaTypeEnum = { + Identity: 'IDENTITY' + }; + /** + * State of common access item. + * @export + * @enum {string} + */ + exports.CommonAccessItemStateBeta = { + Confirmed: 'CONFIRMED', + Denied: 'DENIED' + }; + /** + * The type of access item. + * @export + * @enum {string} + */ + exports.CommonAccessTypeBeta = { + AccessProfile: 'ACCESS_PROFILE', + Role: 'ROLE' + }; + exports.CompleteCampaignOptionsBetaAutoCompleteActionEnum = { + Approve: 'APPROVE', + Revoke: 'REVOKE' + }; + exports.CompletedApprovalReviewedByBetaTypeEnum = { + Identity: 'IDENTITY' + }; + /** + * Enum represents completed approval object\'s state. + * @export + * @enum {string} + */ + exports.CompletedApprovalStateBeta = { + Approved: 'APPROVED', + Rejected: 'REJECTED' + }; + /** + * The status after completion. + * @export + * @enum {string} + */ + exports.CompletionStatusBeta = { + Success: 'SUCCESS', + Failure: 'FAILURE', + Incomplete: 'INCOMPLETE', + Pending: 'PENDING' + }; + exports.ConditionEffectBetaEffectTypeEnum = { + Hide: 'HIDE', + Show: 'SHOW', + Disable: 'DISABLE', + Enable: 'ENABLE', + Require: 'REQUIRE', + Optional: 'OPTIONAL', + SubmitMessage: 'SUBMIT_MESSAGE', + SubmitNotification: 'SUBMIT_NOTIFICATION', + SetDefaultValue: 'SET_DEFAULT_VALUE' + }; + exports.ConditionRuleBetaSourceTypeEnum = { + Input: 'INPUT', + Element: 'ELEMENT' + }; + exports.ConditionRuleBetaOperatorEnum = { + Eq: 'EQ', + Ne: 'NE', + Co: 'CO', + NotCo: 'NOT_CO', + In: 'IN', + NotIn: 'NOT_IN', + Em: 'EM', + NotEm: 'NOT_EM', + Sw: 'SW', + NotSw: 'NOT_SW', + Ew: 'EW', + NotEw: 'NOT_EW' + }; + exports.ConditionRuleBetaValueTypeEnum = { + String: 'STRING', + StringList: 'STRING_LIST', + Input: 'INPUT', + Element: 'ELEMENT', + List: 'LIST', + Boolean: 'BOOLEAN' + }; + /** + * Enum list of valid work types that can be selected for a Reassignment Configuration + * @export + * @enum {string} + */ + exports.ConfigTypeEnumBeta = { + AccessRequests: 'ACCESS_REQUESTS', + Certifications: 'CERTIFICATIONS', + ManualTasks: 'MANUAL_TASKS' + }; + /** + * An enumeration of the types of Objects associated with a Governance Group. Supported object types are ACCESS_PROFILE, ROLE, SOD_POLICY and SOURCE. + * @export + * @enum {string} + */ + exports.ConnectedObjectTypeBeta = { + AccessProfile: 'ACCESS_PROFILE', + Role: 'ROLE', + SodPolicy: 'SOD_POLICY', + Source: 'SOURCE' + }; + exports.ConnectorRuleCreateRequestBetaTypeEnum = { + BuildMap: 'BuildMap', + ConnectorAfterCreate: 'ConnectorAfterCreate', + ConnectorAfterDelete: 'ConnectorAfterDelete', + ConnectorAfterModify: 'ConnectorAfterModify', + ConnectorBeforeCreate: 'ConnectorBeforeCreate', + ConnectorBeforeDelete: 'ConnectorBeforeDelete', + ConnectorBeforeModify: 'ConnectorBeforeModify', + JdbcBuildMap: 'JDBCBuildMap', + JdbcOperationProvisioning: 'JDBCOperationProvisioning', + JdbcProvision: 'JDBCProvision', + PeopleSoftHrmsBuildMap: 'PeopleSoftHRMSBuildMap', + PeopleSoftHrmsOperationProvisioning: 'PeopleSoftHRMSOperationProvisioning', + PeopleSoftHrmsProvision: 'PeopleSoftHRMSProvision', + RacfPermissionCustomization: 'RACFPermissionCustomization', + SapBuildMap: 'SAPBuildMap', + SapHrManagerRule: 'SapHrManagerRule', + SapHrOperationProvisioning: 'SapHrOperationProvisioning', + SapHrProvision: 'SapHrProvision', + SuccessFactorsOperationProvisioning: 'SuccessFactorsOperationProvisioning', + WebServiceAfterOperationRule: 'WebServiceAfterOperationRule', + WebServiceBeforeOperationRule: 'WebServiceBeforeOperationRule' + }; + exports.ConnectorRuleResponseBetaTypeEnum = { + BuildMap: 'BuildMap', + ConnectorAfterCreate: 'ConnectorAfterCreate', + ConnectorAfterDelete: 'ConnectorAfterDelete', + ConnectorAfterModify: 'ConnectorAfterModify', + ConnectorBeforeCreate: 'ConnectorBeforeCreate', + ConnectorBeforeDelete: 'ConnectorBeforeDelete', + ConnectorBeforeModify: 'ConnectorBeforeModify', + JdbcBuildMap: 'JDBCBuildMap', + JdbcOperationProvisioning: 'JDBCOperationProvisioning', + JdbcProvision: 'JDBCProvision', + PeopleSoftHrmsBuildMap: 'PeopleSoftHRMSBuildMap', + PeopleSoftHrmsOperationProvisioning: 'PeopleSoftHRMSOperationProvisioning', + PeopleSoftHrmsProvision: 'PeopleSoftHRMSProvision', + RacfPermissionCustomization: 'RACFPermissionCustomization', + SapBuildMap: 'SAPBuildMap', + SapHrManagerRule: 'SapHrManagerRule', + SapHrOperationProvisioning: 'SapHrOperationProvisioning', + SapHrProvision: 'SapHrProvision', + SuccessFactorsOperationProvisioning: 'SuccessFactorsOperationProvisioning', + WebServiceAfterOperationRule: 'WebServiceAfterOperationRule', + WebServiceBeforeOperationRule: 'WebServiceBeforeOperationRule' + }; + exports.ConnectorRuleUpdateRequestBetaTypeEnum = { + BuildMap: 'BuildMap', + ConnectorAfterCreate: 'ConnectorAfterCreate', + ConnectorAfterDelete: 'ConnectorAfterDelete', + ConnectorAfterModify: 'ConnectorAfterModify', + ConnectorBeforeCreate: 'ConnectorBeforeCreate', + ConnectorBeforeDelete: 'ConnectorBeforeDelete', + ConnectorBeforeModify: 'ConnectorBeforeModify', + JdbcBuildMap: 'JDBCBuildMap', + JdbcOperationProvisioning: 'JDBCOperationProvisioning', + JdbcProvision: 'JDBCProvision', + PeopleSoftHrmsBuildMap: 'PeopleSoftHRMSBuildMap', + PeopleSoftHrmsOperationProvisioning: 'PeopleSoftHRMSOperationProvisioning', + PeopleSoftHrmsProvision: 'PeopleSoftHRMSProvision', + RacfPermissionCustomization: 'RACFPermissionCustomization', + SapBuildMap: 'SAPBuildMap', + SapHrManagerRule: 'SapHrManagerRule', + SapHrOperationProvisioning: 'SapHrOperationProvisioning', + SapHrProvision: 'SapHrProvision', + SuccessFactorsOperationProvisioning: 'SuccessFactorsOperationProvisioning', + WebServiceAfterOperationRule: 'WebServiceAfterOperationRule', + WebServiceBeforeOperationRule: 'WebServiceBeforeOperationRule' + }; + exports.ConnectorRuleValidationResponseBetaStateEnum = { + Ok: 'OK', + Error: 'ERROR' + }; + exports.CorrelatedGovernanceEventBetaTypeEnum = { + Certification: 'certification', + AccessRequest: 'accessRequest' + }; + exports.CreateFormInstanceRequestBetaStateEnum = { + Assigned: 'ASSIGNED', + InProgress: 'IN_PROGRESS', + Submitted: 'SUBMITTED', + Completed: 'COMPLETED', + Cancelled: 'CANCELLED' + }; + exports.CustomPasswordInstructionBetaPageIdEnum = { + ChangePasswordenterPassword: 'change-password:enter-password', + ChangePasswordfinish: 'change-password:finish', + FlowSelectionselect: 'flow-selection:select', + ForgetUsernameuserEmail: 'forget-username:user-email', + MfaenterCode: 'mfa:enter-code', + MfaenterKba: 'mfa:enter-kba', + Mfaselect: 'mfa:select', + ResetPasswordenterPassword: 'reset-password:enter-password', + ResetPasswordenterUsername: 'reset-password:enter-username', + ResetPasswordfinish: 'reset-password:finish', + UnlockAccountenterUsername: 'unlock-account:enter-username', + UnlockAccountfinish: 'unlock-account:finish' + }; + exports.DateCompareBetaOperatorEnum = { + Lt: 'LT', + Lte: 'LTE', + Gt: 'GT', + Gte: 'GTE' + }; + exports.Delete202ResponseBetaTypeEnum = { + TaskResult: 'TASK_RESULT' + }; + /** + * An enumeration of the types of DTOs supported within the IdentityNow infrastructure. + * @export + * @enum {string} + */ + exports.DtoTypeBeta = { + AccountCorrelationConfig: 'ACCOUNT_CORRELATION_CONFIG', + AccessProfile: 'ACCESS_PROFILE', + AccessRequestApproval: 'ACCESS_REQUEST_APPROVAL', + Account: 'ACCOUNT', + Application: 'APPLICATION', + Campaign: 'CAMPAIGN', + CampaignFilter: 'CAMPAIGN_FILTER', + Certification: 'CERTIFICATION', + Cluster: 'CLUSTER', + ConnectorSchema: 'CONNECTOR_SCHEMA', + Entitlement: 'ENTITLEMENT', + GovernanceGroup: 'GOVERNANCE_GROUP', + Identity: 'IDENTITY', + IdentityProfile: 'IDENTITY_PROFILE', + IdentityRequest: 'IDENTITY_REQUEST', + LifecycleState: 'LIFECYCLE_STATE', + PasswordPolicy: 'PASSWORD_POLICY', + Role: 'ROLE', + Rule: 'RULE', + SodPolicy: 'SOD_POLICY', + Source: 'SOURCE', + Tag: 'TAG', + TagCategory: 'TAG_CATEGORY', + TaskResult: 'TASK_RESULT', + ReportResult: 'REPORT_RESULT', + SodViolation: 'SOD_VIOLATION', + AccountActivity: 'ACCOUNT_ACTIVITY', + Workgroup: 'WORKGROUP' + }; + exports.EmailStatusDtoBetaVerificationStatusEnum = { + Pending: 'PENDING', + Success: 'SUCCESS', + Failed: 'FAILED' + }; + exports.EntitlementApprovalSchemeBetaApproverTypeEnum = { + EntitlementOwner: 'ENTITLEMENT_OWNER', + SourceOwner: 'SOURCE_OWNER', + Manager: 'MANAGER', + GovernanceGroup: 'GOVERNANCE_GROUP' + }; + exports.EntitlementRefBetaTypeEnum = { + Entitlement: 'ENTITLEMENT' + }; + exports.ExceptionCriteriaCriteriaListInnerBetaTypeEnum = { + Entitlement: 'ENTITLEMENT' + }; + /** + * The current state of execution. + * @export + * @enum {string} + */ + exports.ExecutionStatusBeta = { + Executing: 'EXECUTING', + Verifying: 'VERIFYING', + Terminated: 'TERMINATED', + Completed: 'COMPLETED' + }; + exports.ExportOptionsBetaExcludeTypesEnum = { + AccessProfile: 'ACCESS_PROFILE', + AccessRequestConfig: 'ACCESS_REQUEST_CONFIG', + AttrSyncSourceConfig: 'ATTR_SYNC_SOURCE_CONFIG', + AuthOrg: 'AUTH_ORG', + CampaignFilter: 'CAMPAIGN_FILTER', + FormDefinition: 'FORM_DEFINITION', + GovernanceGroup: 'GOVERNANCE_GROUP', + IdentityObjectConfig: 'IDENTITY_OBJECT_CONFIG', + IdentityProfile: 'IDENTITY_PROFILE', + LifecycleState: 'LIFECYCLE_STATE', + NotificationTemplate: 'NOTIFICATION_TEMPLATE', + PasswordPolicy: 'PASSWORD_POLICY', + PasswordSyncGroup: 'PASSWORD_SYNC_GROUP', + PublicIdentitiesConfig: 'PUBLIC_IDENTITIES_CONFIG', + Role: 'ROLE', + Rule: 'RULE', + Segment: 'SEGMENT', + ServiceDeskIntegration: 'SERVICE_DESK_INTEGRATION', + SodPolicy: 'SOD_POLICY', + Source: 'SOURCE', + Tag: 'TAG', + Transform: 'TRANSFORM', + TriggerSubscription: 'TRIGGER_SUBSCRIPTION', + Workflow: 'WORKFLOW' + }; + exports.ExportOptionsBetaIncludeTypesEnum = { + AccessProfile: 'ACCESS_PROFILE', + AccessRequestConfig: 'ACCESS_REQUEST_CONFIG', + AttrSyncSourceConfig: 'ATTR_SYNC_SOURCE_CONFIG', + AuthOrg: 'AUTH_ORG', + CampaignFilter: 'CAMPAIGN_FILTER', + FormDefinition: 'FORM_DEFINITION', + GovernanceGroup: 'GOVERNANCE_GROUP', + IdentityObjectConfig: 'IDENTITY_OBJECT_CONFIG', + IdentityProfile: 'IDENTITY_PROFILE', + LifecycleState: 'LIFECYCLE_STATE', + NotificationTemplate: 'NOTIFICATION_TEMPLATE', + PasswordPolicy: 'PASSWORD_POLICY', + PasswordSyncGroup: 'PASSWORD_SYNC_GROUP', + PublicIdentitiesConfig: 'PUBLIC_IDENTITIES_CONFIG', + Role: 'ROLE', + Rule: 'RULE', + Segment: 'SEGMENT', + ServiceDeskIntegration: 'SERVICE_DESK_INTEGRATION', + SodPolicy: 'SOD_POLICY', + Source: 'SOURCE', + Tag: 'TAG', + Transform: 'TRANSFORM', + TriggerSubscription: 'TRIGGER_SUBSCRIPTION', + Workflow: 'WORKFLOW' + }; + exports.ExportPayloadBetaExcludeTypesEnum = { + AccessProfile: 'ACCESS_PROFILE', + AccessRequestConfig: 'ACCESS_REQUEST_CONFIG', + AttrSyncSourceConfig: 'ATTR_SYNC_SOURCE_CONFIG', + AuthOrg: 'AUTH_ORG', + CampaignFilter: 'CAMPAIGN_FILTER', + FormDefinition: 'FORM_DEFINITION', + GovernanceGroup: 'GOVERNANCE_GROUP', + IdentityObjectConfig: 'IDENTITY_OBJECT_CONFIG', + IdentityProfile: 'IDENTITY_PROFILE', + LifecycleState: 'LIFECYCLE_STATE', + NotificationTemplate: 'NOTIFICATION_TEMPLATE', + PasswordPolicy: 'PASSWORD_POLICY', + PasswordSyncGroup: 'PASSWORD_SYNC_GROUP', + PublicIdentitiesConfig: 'PUBLIC_IDENTITIES_CONFIG', + Role: 'ROLE', + Rule: 'RULE', + Segment: 'SEGMENT', + ServiceDeskIntegration: 'SERVICE_DESK_INTEGRATION', + SodPolicy: 'SOD_POLICY', + Source: 'SOURCE', + Tag: 'TAG', + Transform: 'TRANSFORM', + TriggerSubscription: 'TRIGGER_SUBSCRIPTION', + Workflow: 'WORKFLOW' + }; + exports.ExportPayloadBetaIncludeTypesEnum = { + AccessProfile: 'ACCESS_PROFILE', + AccessRequestConfig: 'ACCESS_REQUEST_CONFIG', + AttrSyncSourceConfig: 'ATTR_SYNC_SOURCE_CONFIG', + AuthOrg: 'AUTH_ORG', + CampaignFilter: 'CAMPAIGN_FILTER', + FormDefinition: 'FORM_DEFINITION', + GovernanceGroup: 'GOVERNANCE_GROUP', + IdentityObjectConfig: 'IDENTITY_OBJECT_CONFIG', + IdentityProfile: 'IDENTITY_PROFILE', + LifecycleState: 'LIFECYCLE_STATE', + NotificationTemplate: 'NOTIFICATION_TEMPLATE', + PasswordPolicy: 'PASSWORD_POLICY', + PasswordSyncGroup: 'PASSWORD_SYNC_GROUP', + PublicIdentitiesConfig: 'PUBLIC_IDENTITIES_CONFIG', + Role: 'ROLE', + Rule: 'RULE', + Segment: 'SEGMENT', + ServiceDeskIntegration: 'SERVICE_DESK_INTEGRATION', + SodPolicy: 'SOD_POLICY', + Source: 'SOURCE', + Tag: 'TAG', + Transform: 'TRANSFORM', + TriggerSubscription: 'TRIGGER_SUBSCRIPTION', + Workflow: 'WORKFLOW' + }; + exports.ExpressionBetaOperatorEnum = { + And: 'AND', + Equals: 'EQUALS' + }; + exports.FormConditionBetaRuleOperatorEnum = { + And: 'AND', + Or: 'OR' + }; + exports.FormDefinitionInputBetaTypeEnum = { + String: 'STRING' + }; + exports.FormElementBetaElementTypeEnum = { + Text: 'TEXT', + Toggle: 'TOGGLE', + Textarea: 'TEXTAREA', + Hidden: 'HIDDEN', + Phone: 'PHONE', + Email: 'EMAIL', + Select: 'SELECT', + Date: 'DATE', + Section: 'SECTION', + Columns: 'COLUMNS' + }; + exports.FormElementDynamicDataSourceBetaDataSourceTypeEnum = { + Static: 'STATIC', + Internal: 'INTERNAL', + Search: 'SEARCH' + }; + exports.FormElementDynamicDataSourceConfigBetaIndicesEnum = { + Accessprofiles: 'accessprofiles', + Accountactivities: 'accountactivities', + Entitlements: 'entitlements', + Identities: 'identities', + Events: 'events', + Roles: 'roles', + Star: '*' + }; + exports.FormElementDynamicDataSourceConfigBetaObjectTypeEnum = { + Identity: 'IDENTITY', + AccessProfile: 'ACCESS_PROFILE', + Sources: 'SOURCES', + Role: 'ROLE', + Entitlement: 'ENTITLEMENT' + }; + exports.FormInstanceCreatedByBetaTypeEnum = { + WorkflowExecution: 'WORKFLOW_EXECUTION', + Source: 'SOURCE' + }; + exports.FormInstanceRecipientBetaTypeEnum = { + Identity: 'IDENTITY' + }; + exports.FormInstanceResponseBetaStateEnum = { + Assigned: 'ASSIGNED', + InProgress: 'IN_PROGRESS', + Submitted: 'SUBMITTED', + Completed: 'COMPLETED', + Cancelled: 'CANCELLED' + }; + exports.FormOwnerBetaTypeEnum = { + Identity: 'IDENTITY' + }; + exports.FormUsedByBetaTypeEnum = { + Workflow: 'WORKFLOW', + Source: 'SOURCE' + }; + exports.FullcampaignAllOfBetaCorrelatedStatusEnum = { + Correlated: 'CORRELATED', + Uncorrelated: 'UNCORRELATED' + }; + exports.FullcampaignAllOfBetaMandatoryCommentRequirementEnum = { + AllDecisions: 'ALL_DECISIONS', + RevokeOnlyDecisions: 'REVOKE_ONLY_DECISIONS', + NoDecisions: 'NO_DECISIONS' + }; + exports.FullcampaignAllOfFilterBetaTypeEnum = { + CampaignFilter: 'CAMPAIGN_FILTER', + Rule: 'RULE' + }; + exports.FullcampaignAllOfRoleCompositionCampaignInfoRemediatorRefBetaTypeEnum = { + Identity: 'IDENTITY' + }; + exports.FullcampaignAllOfSearchCampaignInfoBetaTypeEnum = { + Identity: 'IDENTITY', + Access: 'ACCESS' + }; + exports.FullcampaignAllOfSearchCampaignInfoReviewerBetaTypeEnum = { + GovernanceGroup: 'GOVERNANCE_GROUP', + Identity: 'IDENTITY' + }; + exports.FullcampaignAllOfSourcesWithOrphanEntitlementsBetaTypeEnum = { + Source: 'SOURCE' + }; + exports.FullcampaignBetaTypeEnum = { + Manager: 'MANAGER', + SourceOwner: 'SOURCE_OWNER', + Search: 'SEARCH', + RoleComposition: 'ROLE_COMPOSITION' + }; + exports.FullcampaignBetaStatusEnum = { + Pending: 'PENDING', + Staged: 'STAGED', + Canceling: 'CANCELING', + Activating: 'ACTIVATING', + Active: 'ACTIVE', + Completing: 'COMPLETING', + Completed: 'COMPLETED', + Error: 'ERROR', + Archived: 'ARCHIVED' + }; + exports.FullcampaignBetaCorrelatedStatusEnum = { + Correlated: 'CORRELATED', + Uncorrelated: 'UNCORRELATED' + }; + exports.FullcampaignBetaMandatoryCommentRequirementEnum = { + AllDecisions: 'ALL_DECISIONS', + RevokeOnlyDecisions: 'REVOKE_ONLY_DECISIONS', + NoDecisions: 'NO_DECISIONS' + }; + /** + * OAuth2 Grant Type + * @export + * @enum {string} + */ + exports.GrantTypeBeta = { + ClientCredentials: 'CLIENT_CREDENTIALS', + AuthorizationCode: 'AUTHORIZATION_CODE', + RefreshToken: 'REFRESH_TOKEN' + }; + /** + * Defines the HTTP Authentication type. Additional values may be added in the future. If *NO_AUTH* is selected, no extra information will be in HttpConfig. If *BASIC_AUTH* is selected, HttpConfig will include BasicAuthConfig with Username and Password as strings. If *BEARER_TOKEN* is selected, HttpConfig will include BearerTokenAuthConfig with Token as string. + * @export + * @enum {string} + */ + exports.HttpAuthenticationTypeBeta = { + NoAuth: 'NO_AUTH', + BasicAuth: 'BASIC_AUTH', + BearerToken: 'BEARER_TOKEN' + }; + /** + * HTTP response modes, i.e. SYNC, ASYNC, or DYNAMIC. + * @export + * @enum {string} + */ + exports.HttpDispatchModeBeta = { + Sync: 'SYNC', + Async: 'ASYNC', + Dynamic: 'DYNAMIC' + }; + exports.IdentityAttributesChangedIdentityBetaTypeEnum = { + Identity: 'IDENTITY' + }; + exports.IdentityBetaProcessingStateEnum = { + Error: 'ERROR', + Ok: 'OK' + }; + exports.IdentityBetaIdentityStatusEnum = { + Unregistered: 'UNREGISTERED', + Registered: 'REGISTERED', + Pending: 'PENDING', + Warning: 'WARNING', + Disabled: 'DISABLED', + Active: 'ACTIVE', + Deactivated: 'DEACTIVATED', + Terminated: 'TERMINATED', + Error: 'ERROR', + Locked: 'LOCKED' + }; + exports.IdentityCertificationTaskBetaTypeEnum = { + Reassign: 'REASSIGN' + }; + exports.IdentityCertificationTaskBetaStatusEnum = { + Queued: 'QUEUED', + InProgress: 'IN_PROGRESS', + Success: 'SUCCESS', + Error: 'ERROR' + }; + exports.IdentityCreatedIdentityBetaTypeEnum = { + Identity: 'IDENTITY' + }; + exports.IdentityDeletedIdentityBetaTypeEnum = { + Identity: 'IDENTITY' + }; + exports.IdentityDtoBetaProcessingStateEnum = { + Error: 'ERROR', + Ok: 'OK' + }; + exports.IdentityDtoBetaIdentityStatusEnum = { + Unregistered: 'UNREGISTERED', + Registered: 'REGISTERED', + Pending: 'PENDING', + Warning: 'WARNING', + Disabled: 'DISABLED', + Active: 'ACTIVE', + Deactivated: 'DEACTIVATED', + Terminated: 'TERMINATED', + Error: 'ERROR', + Locked: 'LOCKED' + }; + exports.IdentityDtoManagerRefBetaTypeEnum = { + Identity: 'IDENTITY' + }; + exports.IdentityProfile1AllOfAuthoritativeSourceBetaTypeEnum = { + Source: 'SOURCE' + }; + exports.IdentityProfileAllOfAuthoritativeSourceBetaTypeEnum = { + Source: 'SOURCE' + }; + exports.IdentityProfileAllOfOwnerBetaTypeEnum = { + Identity: 'IDENTITY' + }; + exports.IdentitySyncJobBetaStatusEnum = { + Queued: 'QUEUED', + InProgress: 'IN_PROGRESS', + Success: 'SUCCESS', + Error: 'ERROR' + }; + exports.IdentityWithNewAccessAccessRefsInnerBetaTypeEnum = { + Entitlement: 'ENTITLEMENT' + }; + exports.ImportObjectBetaTypeEnum = { + IdentityObjectConfig: 'IDENTITY_OBJECT_CONFIG', + IdentityProfile: 'IDENTITY_PROFILE', + Rule: 'RULE', + Source: 'SOURCE', + Transform: 'TRANSFORM', + TriggerSubscription: 'TRIGGER_SUBSCRIPTION' + }; + exports.ImportOptionsBetaExcludeTypesEnum = { + IdentityObjectConfig: 'IDENTITY_OBJECT_CONFIG', + IdentityProfile: 'IDENTITY_PROFILE', + Rule: 'RULE', + Source: 'SOURCE', + Transform: 'TRANSFORM', + TriggerSubscription: 'TRIGGER_SUBSCRIPTION' + }; + exports.ImportOptionsBetaIncludeTypesEnum = { + IdentityObjectConfig: 'IDENTITY_OBJECT_CONFIG', + IdentityProfile: 'IDENTITY_PROFILE', + Rule: 'RULE', + Source: 'SOURCE', + Transform: 'TRANSFORM', + TriggerSubscription: 'TRIGGER_SUBSCRIPTION' + }; + exports.ImportOptionsBetaDefaultReferencesEnum = { + IdentityObjectConfig: 'IDENTITY_OBJECT_CONFIG', + IdentityProfile: 'IDENTITY_PROFILE', + Rule: 'RULE', + Source: 'SOURCE', + Transform: 'TRANSFORM', + TriggerSubscription: 'TRIGGER_SUBSCRIPTION' + }; + /** + * Defines the Invocation type. **TEST** The trigger was invocated as a test, either via the test subscription button in the UI or via the start test invocation API. **REAL_TIME** The trigger subscription is live and was invocated by a real event in IdentityNow. + * @export + * @enum {string} + */ + exports.InvocationStatusTypeBeta = { + Test: 'TEST', + RealTime: 'REAL_TIME' + }; + exports.JsonPatchOperationBetaOpEnum = { + Add: 'add', + Remove: 'remove', + Replace: 'replace', + Move: 'move', + Copy: 'copy', + Test: 'test' + }; + exports.LatestOutlierSummaryBetaTypeEnum = { + LowSimilarity: 'LOW_SIMILARITY', + Structural: 'STRUCTURAL' + }; + exports.ListWorkgroupMembers200ResponseInnerBetaTypeEnum = { + Identity: 'IDENTITY' + }; + /** + * An indicator of how the locale was selected. *DEFAULT* means the locale is the system default. *REQUEST* means the locale was selected from the request context (i.e., best match based on the *Accept-Language* header). Additional values may be added in the future without notice. + * @export + * @enum {string} + */ + exports.LocaleOriginBeta = { + Default: 'DEFAULT', + Request: 'REQUEST' + }; + exports.MailFromAttributesBetaMailFromDomainStatusEnum = { + Pending: 'PENDING', + Success: 'SUCCESS', + Failed: 'FAILED' + }; + /** + * + * @export + * @enum {string} + */ + exports.ManagedClientStatusEnumBeta = { + Normal: 'NORMAL', + Undefined: 'UNDEFINED', + NotConfigured: 'NOT_CONFIGURED', + Configuring: 'CONFIGURING', + Warning: 'WARNING', + Error: 'ERROR', + Failed: 'FAILED' + }; + /** + * Managed Client type + * @export + * @enum {string} + */ + exports.ManagedClientTypeBeta = { + Ccg: 'CCG', + Va: 'VA', + Internal: 'INTERNAL', + IiqHarvester: 'IIQ_HARVESTER', + Null: 'null' + }; + /** + * The Type of Cluster + * @export + * @enum {string} + */ + exports.ManagedClusterTypesBeta = { + Idn: 'idn', + Iai: 'iai' + }; + exports.ManualWorkItemDetailsCurrentOwnerBetaTypeEnum = { + GovernanceGroup: 'GOVERNANCE_GROUP', + Identity: 'IDENTITY' + }; + exports.ManualWorkItemDetailsOriginalOwnerBetaTypeEnum = { + GovernanceGroup: 'GOVERNANCE_GROUP', + Identity: 'IDENTITY' + }; + /** + * Indicates the state of the request processing for this item: * PENDING: The request for this item is awaiting processing. * APPROVED: The request for this item has been approved. * REJECTED: The request for this item was rejected. * EXPIRED: The request for this item expired with no action taken. * CANCELLED: The request for this item was cancelled with no user action. * ARCHIVED: The request for this item has been archived after completion. + * @export + * @enum {string} + */ + exports.ManualWorkItemStateBeta = { + Pending: 'PENDING', + Approved: 'APPROVED', + Rejected: 'REJECTED', + Expired: 'EXPIRED', + Cancelled: 'CANCELLED', + Archived: 'ARCHIVED' + }; + /** + * + * @export + * @enum {string} + */ + exports.MediumBeta = { + Email: 'EMAIL', + Sms: 'SMS', + Phone: 'PHONE', + Slack: 'SLACK', + Teams: 'TEAMS' + }; + exports.MfaConfigTestResponseBetaStateEnum = { + Success: 'SUCCESS', + Failed: 'FAILED' + }; + /** + * | Construct | Date Time Pattern | Description | | --------- | ----------------- | ----------- | | ISO8601 | `yyyy-MM-dd\'T\'HH:mm:ss.SSSX` | The ISO8601 standard. | | LDAP | `yyyyMMddHHmmss.Z` | The LDAP standard. | | PEOPLE_SOFT | `MM/dd/yyyy` | The date format People Soft uses. | | EPOCH_TIME_JAVA | # ms from midnight, January 1st, 1970 | The incoming date value as elapsed time in milliseconds from midnight, January 1st, 1970. | | EPOCH_TIME_WIN32| # intervals of 100ns from midnight, January 1st, 1601 | The incoming date value as elapsed time in 100-nanosecond intervals from midnight, January 1st, 1601. | + * @export + * @enum {string} + */ + exports.NamedConstructsBeta = { + Iso8601: 'ISO8601', + Ldap: 'LDAP', + PeopleSoft: 'PEOPLE_SOFT', + EpochTimeJava: 'EPOCH_TIME_JAVA', + EpochTimeWin32: 'EPOCH_TIME_WIN32' + }; + exports.NativeChangeDetectionConfigBetaOperationsEnum = { + Updated: 'ACCOUNT_UPDATED', + Created: 'ACCOUNT_CREATED', + Deleted: 'ACCOUNT_DELETED' + }; + exports.NonEmployeeBulkUploadJobBetaStatusEnum = { + Pending: 'PENDING', + InProgress: 'IN_PROGRESS', + Completed: 'COMPLETED', + Error: 'ERROR' + }; + exports.NonEmployeeBulkUploadStatusBetaStatusEnum = { + Pending: 'PENDING', + InProgress: 'IN_PROGRESS', + Completed: 'COMPLETED', + Error: 'ERROR' + }; + /** + * Enum representing the type of data a schema attribute accepts. + * @export + * @enum {string} + */ + exports.NonEmployeeSchemaAttributeTypeBeta = { + Text: 'TEXT', + Date: 'DATE', + Identity: 'IDENTITY' + }; + exports.OutlierBetaTypeEnum = { + LowSimilarity: 'LOW_SIMILARITY', + Structural: 'STRUCTURAL' + }; + exports.OutlierBetaUnignoreTypeEnum = { + Manual: 'MANUAL', + Automatic: 'AUTOMATIC' + }; + exports.OutlierContributingFeatureBetaValueTypeEnum = { + Integer: 'INTEGER', + Float: 'FLOAT' + }; + exports.OutlierFeatureSummaryOutlierFeatureDisplayValuesInnerBetaValueTypeEnum = { + Integer: 'INTEGER', + Float: 'FLOAT' + }; + exports.OutlierSummaryBetaTypeEnum = { + LowSimilarity: 'LOW_SIMILARITY', + Structural: 'STRUCTURAL' + }; + exports.OutliersContributingFeatureAccessItemsBetaAccessTypeEnum = { + Entitlement: 'ENTITLEMENT', + AccessProfile: 'ACCESS_PROFILE', + Role: 'ROLE' + }; + exports.OwnerDtoBetaTypeEnum = { + Identity: 'IDENTITY' + }; + exports.OwnerReferenceBetaTypeEnum = { + Identity: 'IDENTITY' + }; + exports.OwnerReferenceDtoBetaTypeEnum = { + Identity: 'IDENTITY' + }; + exports.OwnerReferenceSegmentsBetaTypeEnum = { + Identity: 'IDENTITY' + }; + exports.PasswordChangeResponseBetaStateEnum = { + InProgress: 'IN_PROGRESS', + Finished: 'FINISHED', + Failed: 'FAILED' + }; + exports.PasswordStatusBetaStateEnum = { + InProgress: 'IN_PROGRESS', + Finished: 'FINISHED', + Failed: 'FAILED' + }; + exports.PatOwnerBetaTypeEnum = { + Identity: 'IDENTITY' + }; + exports.PatchPotentialRoleRequestInnerBetaOpEnum = { + Remove: 'remove', + Replace: 'replace' + }; + /** + * Enum represents action that is being processed on an approval. + * @export + * @enum {string} + */ + exports.PendingApprovalActionBeta = { + Approved: 'APPROVED', + Rejected: 'REJECTED', + Forwarded: 'FORWARDED' + }; + exports.PreApprovalTriggerDetailsBetaDecisionEnum = { + Approved: 'APPROVED', + Rejected: 'REJECTED' + }; + exports.ProvisioningCompletedAccountRequestsInnerAttributeRequestsInnerBetaOperationEnum = { + Add: 'Add', + Set: 'Set', + Remove: 'Remove' + }; + exports.ProvisioningCompletedAccountRequestsInnerBetaProvisioningResultEnum = { + Success: 'SUCCESS', + Pending: 'PENDING', + Failed: 'FAILED' + }; + exports.ProvisioningCompletedAccountRequestsInnerSourceBetaTypeEnum = { + Source: 'SOURCE' + }; + exports.ProvisioningCompletedRecipientBetaTypeEnum = { + Identity: 'IDENTITY' + }; + exports.ProvisioningCompletedRequesterBetaTypeEnum = { + Identity: 'IDENTITY' + }; + exports.ProvisioningConfigManagedResourceRefsInnerBetaTypeEnum = { + Source: 'SOURCE' + }; + /** + * Supported operations on ProvisioningCriteria + * @export + * @enum {string} + */ + exports.ProvisioningCriteriaOperationBeta = { + Equals: 'EQUALS', + NotEquals: 'NOT_EQUALS', + Contains: 'CONTAINS', + Has: 'HAS', + And: 'AND', + Or: 'OR' + }; + /** + * Provisioning state of an account activity item + * @export + * @enum {string} + */ + exports.ProvisioningStateBeta = { + Pending: 'PENDING', + Finished: 'FINISHED', + Unverifiable: 'UNVERIFIABLE', + Commited: 'COMMITED', + Failed: 'FAILED', + Retry: 'RETRY' + }; + exports.ReassignReferenceBetaTypeEnum = { + TargetSummary: 'TARGET_SUMMARY', + Item: 'ITEM', + IdentitySummary: 'IDENTITY_SUMMARY' + }; + /** + * The approval reassignment type. * MANUAL_REASSIGNMENT: An approval with this reassignment type has been specifically reassigned by the approval task\'s owner, from their queue to someone else\'s. * AUTOMATIC_REASSIGNMENT: An approval with this reassignment type has been automatically reassigned from another approver\'s queue, according to that approver\'s reassignment configuration. The approver\'s reassignment configuration may be set up to automatically reassign approval tasks for a defined (or possibly open-ended) period of time. * AUTO_ESCALATION: An approval with this reassignment type has been automatically reassigned from another approver\'s queue, according to the request\'s escalation configuration. For more information about escalation configuration, refer to [Setting Global Reminders and Escalation Policies](https://documentation.sailpoint.com/saas/help/requests/config_emails.html). * SELF_REVIEW_DELEGATION: An approval with this reassignment type has been automatically reassigned by the system to prevent self-review. This helps prevent situations like a requester being tasked with approving their own request. For more information about preventing self-review, refer to [Self-review Prevention](https://documentation.sailpoint.com/saas/help/users/work_reassignment.html#self-review-prevention) and [Preventing Self-approval](https://documentation.sailpoint.com/saas/help/requests/config_ap_roles.html#preventing-self-approval). + * @export + * @enum {string} + */ + exports.ReassignmentTypeBeta = { + ManualReassignment: 'MANUAL_REASSIGNMENT', + AutomaticReassignment: 'AUTOMATIC_REASSIGNMENT', + AutoEscalation: 'AUTO_ESCALATION', + SelfReviewDelegation: 'SELF_REVIEW_DELEGATION' + }; + /** + * Enum list containing types of Reassignment that can be found in the evaluate response. + * @export + * @enum {string} + */ + exports.ReassignmentTypeEnumBeta = { + ManualReassignment: 'MANUAL_REASSIGNMENT,', + AutomaticReassignment: 'AUTOMATIC_REASSIGNMENT,', + AutoEscalation: 'AUTO_ESCALATION,', + SelfReviewDelegation: 'SELF_REVIEW_DELEGATION' + }; + exports.RecommendationResponseBetaRecommendationEnum = { + True: 'true', + False: 'false', + Maybe: 'MAYBE', + NotFound: 'NOT_FOUND' + }; + exports.ReportResultReferenceAllOfBetaStatusEnum = { + Success: 'SUCCESS', + Warning: 'WARNING', + Error: 'ERROR', + Terminated: 'TERMINATED', + TempError: 'TEMP_ERROR', + Pending: 'PENDING' + }; + exports.ReportResultReferenceBetaTypeEnum = { + ReportResult: 'REPORT_RESULT' + }; + exports.ReportResultReferenceBetaStatusEnum = { + Success: 'SUCCESS', + Warning: 'WARNING', + Error: 'ERROR', + Terminated: 'TERMINATED', + TempError: 'TEMP_ERROR', + Pending: 'PENDING' + }; + /** + * type of a Report + * @export + * @enum {string} + */ + exports.ReportTypeBeta = { + CampaignCompositionReport: 'CAMPAIGN_COMPOSITION_REPORT', + CampaignRemediationStatusReport: 'CAMPAIGN_REMEDIATION_STATUS_REPORT', + CampaignStatusReport: 'CAMPAIGN_STATUS_REPORT', + CertificationSignoffReport: 'CERTIFICATION_SIGNOFF_REPORT' + }; + exports.RequestableObjectReferenceBetaTypeEnum = { + AccessProfile: 'ACCESS_PROFILE', + Role: 'ROLE', + Entitlement: 'ENTITLEMENT' + }; + /** + * Status indicating the ability of an access request for the object to be made by or on behalf of the identity specified by *identity-id*. *AVAILABLE* indicates the object is available to request. *PENDING* indicates the object is unavailable because the identity has a pending request in flight. *ASSIGNED* indicates the object is unavailable because the identity already has the indicated role or access profile. If *identity-id* is not specified (allowed only for admin users), then status will be *AVAILABLE* for all results. + * @export + * @enum {string} + */ + exports.RequestableObjectRequestStatusBeta = { + Available: 'AVAILABLE', + Pending: 'PENDING', + Assigned: 'ASSIGNED' + }; + /** + * The currently supported requestable object types. + * @export + * @enum {string} + */ + exports.RequestableObjectTypeBeta = { + AccessProfile: 'ACCESS_PROFILE', + Role: 'ROLE' + }; + exports.RequestedItemStatusBetaTypeEnum = { + AccessProfile: 'ACCESS_PROFILE', + Role: 'ROLE', + Entitlement: 'ENTITLEMENT' + }; + /** + * Indicates the state of an access request: * EXECUTING: The request is executing, which indicates the system is doing some processing. * REQUEST_COMPLETED: Indicates the request has been completed. * CANCELLED: The request was cancelled with no user input. * TERMINATED: The request has been terminated before it was able to complete. * PROVISIONING_VERIFICATION_PENDING: The request has finished any approval steps and provisioning is waiting to be verified. * REJECTED: The request was rejected. * PROVISIONING_FAILED: The request has failed to complete. * NOT_ALL_ITEMS_PROVISIONED: One or more of the requested items failed to complete, but there were one or more successes. * ERROR: An error occurred during request processing. + * @export + * @enum {string} + */ + exports.RequestedItemStatusRequestStateBeta = { + Executing: 'EXECUTING', + RequestCompleted: 'REQUEST_COMPLETED', + Cancelled: 'CANCELLED', + Terminated: 'TERMINATED', + ProvisioningVerificationPending: 'PROVISIONING_VERIFICATION_PENDING', + Rejected: 'REJECTED', + ProvisioningFailed: 'PROVISIONING_FAILED', + NotAllItemsProvisioned: 'NOT_ALL_ITEMS_PROVISIONED', + Error: 'ERROR' + }; + exports.ReviewerBetaTypeEnum = { + Identity: 'IDENTITY', + GovernanceGroup: 'GOVERNANCE_GROUP' + }; + /** + * Type which indicates how a particular Identity obtained a particular Role + * @export + * @enum {string} + */ + exports.RoleAssignmentSourceTypeBeta = { + AccessRequest: 'ACCESS_REQUEST', + RoleMembership: 'ROLE_MEMBERSHIP' + }; + /** + * Indicates whether the associated criteria represents an expression on identity attributes, account attributes, or entitlements, respectively. + * @export + * @enum {string} + */ + exports.RoleCriteriaKeyTypeBeta = { + Identity: 'IDENTITY', + Account: 'ACCOUNT', + Entitlement: 'ENTITLEMENT' + }; + /** + * An operation + * @export + * @enum {string} + */ + exports.RoleCriteriaOperationBeta = { + Equals: 'EQUALS', + NotEquals: 'NOT_EQUALS', + Contains: 'CONTAINS', + StartsWith: 'STARTS_WITH', + EndsWith: 'ENDS_WITH', + And: 'AND', + Or: 'OR' + }; + exports.RoleInsightsResponseBetaStatusEnum = { + Created: 'CREATED', + InProgress: 'IN PROGRESS', + Completed: 'COMPLETED', + Failed: 'FAILED' + }; + /** + * This enum characterizes the type of a Role\'s membership selector. Only the following two are fully supported: STANDARD: Indicates that Role membership is defined in terms of a criteria expression IDENTITY_LIST: Indicates that Role membership is conferred on the specific identities listed + * @export + * @enum {string} + */ + exports.RoleMembershipSelectorTypeBeta = { + Standard: 'STANDARD', + IdentityList: 'IDENTITY_LIST' + }; + /** + * + * @export + * @enum {string} + */ + exports.RoleMiningPotentialRoleExportStateBeta = { + Queued: 'QUEUED', + InProgress: 'IN_PROGRESS', + Success: 'SUCCESS', + Error: 'ERROR' + }; + /** + * Provision state + * @export + * @enum {string} + */ + exports.RoleMiningPotentialRoleProvisionStateBeta = { + Potential: 'POTENTIAL', + Pending: 'PENDING', + Complete: 'COMPLETE', + Failed: 'FAILED' + }; + /** + * Role type + * @export + * @enum {string} + */ + exports.RoleMiningRoleTypeBeta = { + Specialized: 'SPECIALIZED', + Common: 'COMMON' + }; + /** + * The scoping method used in the current role mining session. + * @export + * @enum {string} + */ + exports.RoleMiningSessionScopingMethodBeta = { + Manual: 'MANUAL', + AutoRm: 'AUTO_RM' + }; + /** + * Role mining session status + * @export + * @enum {string} + */ + exports.RoleMiningSessionStateBeta = { + Created: 'CREATED', + Updated: 'UPDATED', + IdentitiesObtained: 'IDENTITIES_OBTAINED', + PruneThresholdObtained: 'PRUNE_THRESHOLD_OBTAINED', + PotentialRolesProcessing: 'POTENTIAL_ROLES_PROCESSING', + PotentialRolesCreated: 'POTENTIAL_ROLES_CREATED' + }; + exports.ScheduleBetaTypeEnum = { + Weekly: 'WEEKLY', + Monthly: 'MONTHLY', + Annually: 'ANNUALLY', + Calendar: 'CALENDAR' + }; + exports.ScheduleDaysBetaTypeEnum = { + List: 'LIST', + Range: 'RANGE' + }; + exports.ScheduleHoursBetaTypeEnum = { + List: 'LIST', + Range: 'RANGE' + }; + exports.ScheduleMonthsBetaTypeEnum = { + List: 'LIST', + Range: 'RANGE' + }; + /** + * Enum representing the currently supported schedule types. Additional values may be added in the future without notice. + * @export + * @enum {string} + */ + exports.ScheduleTypeBeta = { + Daily: 'DAILY', + Weekly: 'WEEKLY', + Monthly: 'MONTHLY', + Calendar: 'CALENDAR' + }; + /** + * Enum representing the currently supported selector types. LIST - the *values* array contains one or more distinct values. RANGE - the *values* array contains two values: the start and end of the range, inclusive. Additional values may be added in the future without notice. + * @export + * @enum {string} + */ + exports.SelectorTypeBeta = { + List: 'LIST', + Range: 'RANGE' + }; + exports.SelfImportExportDtoBetaTypeEnum = { + AccessProfile: 'ACCESS_PROFILE', + AccessRequestConfig: 'ACCESS_REQUEST_CONFIG', + AttrSyncSourceConfig: 'ATTR_SYNC_SOURCE_CONFIG', + AuthOrg: 'AUTH_ORG', + CampaignFilter: 'CAMPAIGN_FILTER', + FormDefinition: 'FORM_DEFINITION', + GovernanceGroup: 'GOVERNANCE_GROUP', + IdentityObjectConfig: 'IDENTITY_OBJECT_CONFIG', + IdentityProfile: 'IDENTITY_PROFILE', + LifecycleState: 'LIFECYCLE_STATE', + NotificationTemplate: 'NOTIFICATION_TEMPLATE', + PasswordPolicy: 'PASSWORD_POLICY', + PasswordSyncGroup: 'PASSWORD_SYNC_GROUP', + PublicIdentitiesConfig: 'PUBLIC_IDENTITIES_CONFIG', + Role: 'ROLE', + Rule: 'RULE', + Segment: 'SEGMENT', + ServiceDeskIntegration: 'SERVICE_DESK_INTEGRATION', + SodPolicy: 'SOD_POLICY', + Source: 'SOURCE', + Tag: 'TAG', + Transform: 'TRANSFORM', + TriggerSubscription: 'TRIGGER_SUBSCRIPTION', + Workflow: 'WORKFLOW' + }; + exports.SendTestNotificationRequestDtoBetaMediumEnum = { + Email: 'EMAIL', + Slack: 'SLACK', + Teams: 'TEAMS' + }; + exports.ServiceDeskSourceBetaTypeEnum = { + Source: 'SOURCE' + }; + exports.SlimcampaignBetaTypeEnum = { + Manager: 'MANAGER', + SourceOwner: 'SOURCE_OWNER', + Search: 'SEARCH', + RoleComposition: 'ROLE_COMPOSITION' + }; + exports.SlimcampaignBetaStatusEnum = { + Pending: 'PENDING', + Staged: 'STAGED', + Canceling: 'CANCELING', + Activating: 'ACTIVATING', + Active: 'ACTIVE', + Completing: 'COMPLETING', + Completed: 'COMPLETED', + Error: 'ERROR', + Archived: 'ARCHIVED' + }; + exports.SlimcampaignBetaCorrelatedStatusEnum = { + Correlated: 'CORRELATED', + Uncorrelated: 'UNCORRELATED' + }; + exports.SodPolicyBetaStateEnum = { + Enforced: 'ENFORCED', + NotEnforced: 'NOT_ENFORCED' + }; + exports.SodPolicyBetaTypeEnum = { + General: 'GENERAL', + ConflictingAccessBased: 'CONFLICTING_ACCESS_BASED' + }; + exports.SodPolicyDtoBetaTypeEnum = { + SodPolicy: 'SOD_POLICY' + }; + exports.SodRecipientBetaTypeEnum = { + Identity: 'IDENTITY' + }; + exports.SodReportResultDtoBetaTypeEnum = { + ReportResult: 'REPORT_RESULT' + }; + exports.SodViolationContextCheckCompleted1BetaStateEnum = { + Success: 'SUCCESS', + Error: 'ERROR' + }; + exports.SodViolationContextCheckCompletedBetaStateEnum = { + Success: 'SUCCESS', + Error: 'ERROR' + }; + exports.SourceAccountCorrelationConfigBetaTypeEnum = { + AccountCorrelationConfig: 'ACCOUNT_CORRELATION_CONFIG' + }; + exports.SourceAccountCorrelationRuleBetaTypeEnum = { + Rule: 'RULE' + }; + exports.SourceBeforeProvisioningRuleBetaTypeEnum = { + Rule: 'RULE' + }; + exports.SourceClusterBetaTypeEnum = { + Cluster: 'CLUSTER' + }; + exports.SourceClusterDtoBetaTypeEnum = { + Cluster: 'CLUSTER' + }; + exports.SourceCreatedActorBetaTypeEnum = { + Identity: 'IDENTITY' + }; + exports.SourceDeletedActorBetaTypeEnum = { + Identity: 'IDENTITY' + }; + /** + * Optional features that can be supported by an source. * AUTHENTICATE: The source supports pass-through authentication. * COMPOSITE: The source supports composite source creation. * DIRECT_PERMISSIONS: The source supports returning DirectPermissions. * DISCOVER_SCHEMA: The source supports discovering schemas for users and groups. * ENABLE The source supports reading if an account is enabled or disabled. * MANAGER_LOOKUP: The source supports looking up managers as they are encountered in a feed. This is the opposite of NO_RANDOM_ACCESS. * NO_RANDOM_ACCESS: The source does not support random access and the getObject() methods should not be called and expected to perform. * PROXY: The source can serve as a proxy for another source. When an source has a proxy, all connector calls made with that source are redirected through the connector for the proxy source. * SEARCH * TEMPLATE * UNLOCK: The source supports reading if an account is locked or unlocked. * UNSTRUCTURED_TARGETS: The source supports returning unstructured Targets. * SHAREPOINT_TARGET: The source supports returning unstructured Target data for SharePoint. It will be typically used by AD, LDAP sources. * PROVISIONING: The source can both read and write accounts. Having this feature implies that the provision() method is implemented. It also means that direct and target permissions can also be provisioned if they can be returned by aggregation. * GROUP_PROVISIONING: The source can both read and write groups. Having this feature implies that the provision() method is implemented. * SYNC_PROVISIONING: The source can provision accounts synchronously. * PASSWORD: The source can provision password changes. Since sources can never read passwords, this is should only be used in conjunction with the PROVISIONING feature. * CURRENT_PASSWORD: Some source types support verification of the current password * ACCOUNT_ONLY_REQUEST: The source supports requesting accounts without entitlements. * ADDITIONAL_ACCOUNT_REQUEST: The source supports requesting additional accounts. * NO_AGGREGATION: A source that does not support aggregation. * GROUPS_HAVE_MEMBERS: The source models group memberships with a member attribute on the group object rather than a groups attribute on the account object. This effects the implementation of delta account aggregation. * NO_PERMISSIONS_PROVISIONING: Indicates that the connector cannot provision direct or target permissions for accounts. When DIRECT_PERMISSIONS and PROVISIONING features are present, it is assumed that the connector can also provision direct permissions. This feature disables that assumption and causes permission request to be converted to work items for accounts. * NO_GROUP_PERMISSIONS_PROVISIONING: Indicates that the connector cannot provision direct or target permissions for groups. When DIRECT_PERMISSIONS and PROVISIONING features are present, it is assumed that the connector can also provision direct permissions. This feature disables that assumption and causes permission request to be converted to work items for groups. * NO_UNSTRUCTURED_TARGETS_PROVISIONING: This string will be replaced by NO_GROUP_PERMISSIONS_PROVISIONING and NO_PERMISSIONS_PROVISIONING. * NO_DIRECT_PERMISSIONS_PROVISIONING: This string will be replaced by NO_GROUP_PERMISSIONS_PROVISIONING and NO_PERMISSIONS_PROVISIONING. + * @export + * @enum {string} + */ + exports.SourceFeatureBeta = { + Authenticate: 'AUTHENTICATE', + Composite: 'COMPOSITE', + DirectPermissions: 'DIRECT_PERMISSIONS', + DiscoverSchema: 'DISCOVER_SCHEMA', + Enable: 'ENABLE', + ManagerLookup: 'MANAGER_LOOKUP', + NoRandomAccess: 'NO_RANDOM_ACCESS', + Proxy: 'PROXY', + Search: 'SEARCH', + Template: 'TEMPLATE', + Unlock: 'UNLOCK', + UnstructuredTargets: 'UNSTRUCTURED_TARGETS', + SharepointTarget: 'SHAREPOINT_TARGET', + Provisioning: 'PROVISIONING', + GroupProvisioning: 'GROUP_PROVISIONING', + SyncProvisioning: 'SYNC_PROVISIONING', + Password: 'PASSWORD', + CurrentPassword: 'CURRENT_PASSWORD', + AccountOnlyRequest: 'ACCOUNT_ONLY_REQUEST', + AdditionalAccountRequest: 'ADDITIONAL_ACCOUNT_REQUEST', + NoAggregation: 'NO_AGGREGATION', + GroupsHaveMembers: 'GROUPS_HAVE_MEMBERS', + NoPermissionsProvisioning: 'NO_PERMISSIONS_PROVISIONING', + NoGroupPermissionsProvisioning: 'NO_GROUP_PERMISSIONS_PROVISIONING', + NoUnstructuredTargetsProvisioning: 'NO_UNSTRUCTURED_TARGETS_PROVISIONING', + NoDirectPermissionsProvisioning: 'NO_DIRECT_PERMISSIONS_PROVISIONING', + PreferUuid: 'PREFER_UUID' + }; + exports.SourceManagementWorkgroupBetaTypeEnum = { + GovernanceGroup: 'GOVERNANCE_GROUP' + }; + exports.SourceManagerCorrelationRuleBetaTypeEnum = { + Rule: 'RULE' + }; + exports.SourceOwnerBetaTypeEnum = { + Identity: 'IDENTITY' + }; + exports.SourcePasswordPoliciesInnerBetaTypeEnum = { + PasswordPolicy: 'PASSWORD_POLICY' + }; + exports.SourceSchemasInnerBetaTypeEnum = { + ConnectorSchema: 'CONNECTOR_SCHEMA' + }; + exports.SourceSyncJobBetaStatusEnum = { + Queued: 'QUEUED', + InProgress: 'IN_PROGRESS', + Success: 'SUCCESS', + Error: 'ERROR' + }; + exports.SourceUpdatedActorBetaTypeEnum = { + Identity: 'IDENTITY' + }; + exports.SourceUsageStatusBetaStatusEnum = { + Complete: 'COMPLETE', + Incomplete: 'INCOMPLETE' + }; + exports.SpConfigJobBetaStatusEnum = { + NotStarted: 'NOT_STARTED', + InProgress: 'IN_PROGRESS', + Complete: 'COMPLETE', + Cancelled: 'CANCELLED', + Failed: 'FAILED' + }; + exports.SpConfigJobBetaTypeEnum = { + Export: 'EXPORT', + Import: 'IMPORT' + }; + /** + * Standard Log4j log level + * @export + * @enum {string} + */ + exports.StandardLevelBeta = { + False: 'false', + Fatal: 'FATAL', + Error: 'ERROR', + Warn: 'WARN', + Info: 'INFO', + Debug: 'DEBUG', + Trace: 'TRACE' + }; + exports.StatusResponseBetaStatusEnum = { + Success: 'SUCCESS', + Failure: 'FAILURE' + }; + exports.SubscriptionPatchRequestInnerBetaOpEnum = { + Add: 'add', + Remove: 'remove', + Replace: 'replace', + Move: 'move', + Copy: 'copy' + }; + /** + * Subscription type. **NOTE** If type is EVENTBRIDGE, then eventBridgeConfig is required. If type is HTTP, then httpConfig is required. + * @export + * @enum {string} + */ + exports.SubscriptionTypeBeta = { + Http: 'HTTP', + Eventbridge: 'EVENTBRIDGE', + Inline: 'INLINE', + Script: 'SCRIPT', + Workflow: 'WORKFLOW' + }; + exports.TaggedObjectDtoBetaTypeEnum = { + AccessProfile: 'ACCESS_PROFILE', + Application: 'APPLICATION', + Campaign: 'CAMPAIGN', + Entitlement: 'ENTITLEMENT', + Identity: 'IDENTITY', + Role: 'ROLE', + SodPolicy: 'SOD_POLICY', + Source: 'SOURCE' + }; + exports.TaggedObjectObjectRefBetaTypeEnum = { + AccessProfile: 'ACCESS_PROFILE', + Application: 'APPLICATION', + Campaign: 'CAMPAIGN', + Entitlement: 'ENTITLEMENT', + Identity: 'IDENTITY', + Role: 'ROLE', + SodPolicy: 'SOD_POLICY', + Source: 'SOURCE' + }; + exports.TaskResultDtoBetaTypeEnum = { + TaskResult: 'TASK_RESULT' + }; + exports.TaskResultSimplifiedBetaCompletionStatusEnum = { + Success: 'Success', + Warning: 'Warning', + Error: 'Error', + Terminated: 'Terminated', + TempError: 'TempError' + }; + exports.TaskStatusBetaTypeEnum = { + Quartz: 'QUARTZ', + Qpoc: 'QPOC', + QueuedTask: 'QUEUED_TASK' + }; + exports.TaskStatusBetaCompletionStatusEnum = { + Success: 'Success', + Warning: 'Warning', + Error: 'Error', + Terminated: 'Terminated', + TempError: 'TempError' + }; + exports.TaskStatusMessageBetaTypeEnum = { + Info: 'INFO', + Warn: 'WARN', + Error: 'ERROR' + }; + exports.TemplateBulkDeleteDtoBetaMediumEnum = { + Email: 'EMAIL', + Phone: 'PHONE', + Sms: 'SMS' + }; + exports.TemplateDtoBetaMediumEnum = { + Email: 'EMAIL', + Phone: 'PHONE', + Sms: 'SMS', + Slack: 'SLACK', + Teams: 'TEAMS' + }; + exports.TemplateDtoDefaultBetaMediumEnum = { + Email: 'EMAIL', + Phone: 'PHONE', + Sms: 'SMS', + Slack: 'SLACK', + Teams: 'TEAMS' + }; + exports.TransformBetaTypeEnum = { + AccountAttribute: 'accountAttribute', + Base64Decode: 'base64Decode', + Base64Encode: 'base64Encode', + Concat: 'concat', + Conditional: 'conditional', + DateCompare: 'dateCompare', + DateFormat: 'dateFormat', + DateMath: 'dateMath', + DecomposeDiacriticalMarks: 'decomposeDiacriticalMarks', + E164phone: 'e164phone', + FirstValid: 'firstValid', + Rule: 'rule', + IdentityAttribute: 'identityAttribute', + IndexOf: 'indexOf', + Iso3166: 'iso3166', + LastIndexOf: 'lastIndexOf', + LeftPad: 'leftPad', + Lookup: 'lookup', + Lower: 'lower', + NormalizeNames: 'normalizeNames', + RandomAlphaNumeric: 'randomAlphaNumeric', + RandomNumeric: 'randomNumeric', + Reference: 'reference', + ReplaceAll: 'replaceAll', + Replace: 'replace', + RightPad: 'rightPad', + Split: 'split', + Static: 'static', + Substring: 'substring', + Trim: 'trim', + Upper: 'upper', + UsernameGenerator: 'usernameGenerator', + Uuid: 'uuid' + }; + exports.TransformReadBetaTypeEnum = { + AccountAttribute: 'accountAttribute', + Base64Decode: 'base64Decode', + Base64Encode: 'base64Encode', + Concat: 'concat', + Conditional: 'conditional', + DateCompare: 'dateCompare', + DateFormat: 'dateFormat', + DateMath: 'dateMath', + DecomposeDiacriticalMarks: 'decomposeDiacriticalMarks', + E164phone: 'e164phone', + FirstValid: 'firstValid', + Rule: 'rule', + IdentityAttribute: 'identityAttribute', + IndexOf: 'indexOf', + Iso3166: 'iso3166', + LastIndexOf: 'lastIndexOf', + LeftPad: 'leftPad', + Lookup: 'lookup', + Lower: 'lower', + NormalizeNames: 'normalizeNames', + RandomAlphaNumeric: 'randomAlphaNumeric', + RandomNumeric: 'randomNumeric', + Reference: 'reference', + ReplaceAll: 'replaceAll', + Replace: 'replace', + RightPad: 'rightPad', + Split: 'split', + Static: 'static', + Substring: 'substring', + Trim: 'trim', + Upper: 'upper', + UsernameGenerator: 'usernameGenerator', + Uuid: 'uuid' + }; + /** + * The type of trigger. + * @export + * @enum {string} + */ + exports.TriggerTypeBeta = { + RequestResponse: 'REQUEST_RESPONSE', + FireAndForget: 'FIRE_AND_FORGET' + }; + /** + * The type of provisioning policy usage. In IdentityNow, a source can support various provisioning operations. For example, when a joiner is added to a source, this may trigger both CREATE and UPDATE provisioning operations. Each usage type is considered a provisioning policy. A source can have any number of these provisioning policies defined. These are the common usage types: CREATE - This usage type relates to \'Create Account Profile\', the provisioning template for the account to be created. For example, this would be used for a joiner on a source. UPDATE - This usage type relates to \'Update Account Profile\', the provisioning template for the \'Update\' connector operations. For example, this would be used for an attribute sync on a source. ENABLE - This usage type relates to \'Enable Account Profile\', the provisioning template for the account to be enabled. For example, this could be used for a joiner on a source once the joiner\'s account is created. DISABLE - This usage type relates to \'Disable Account Profile\', the provisioning template for the account to be disabled. For example, this could be used when a leaver is removed temporarily from a source. You can use these four usage types for all your provisioning policy needs. + * @export + * @enum {string} + */ + exports.UsageTypeBeta = { + Create: 'CREATE', + Update: 'UPDATE', + Enable: 'ENABLE', + Disable: 'DISABLE', + Delete: 'DELETE', + Assign: 'ASSIGN', + Unassign: 'UNASSIGN', + CreateGroup: 'CREATE_GROUP', + UpdateGroup: 'UPDATE_GROUP', + DeleteGroup: 'DELETE_GROUP', + Register: 'REGISTER', + CreateIdentity: 'CREATE_IDENTITY', + UpdateIdentity: 'UPDATE_IDENTITY', + EditGroup: 'EDIT_GROUP', + Unlock: 'UNLOCK', + ChangePassword: 'CHANGE_PASSWORD' + }; + exports.VAClusterStatusChangeEventBetaTypeEnum = { + Source: 'SOURCE', + Cluster: 'CLUSTER' + }; + exports.VAClusterStatusChangeEventHealthCheckResultBetaStatusEnum = { + Succeeded: 'Succeeded', + Failed: 'Failed' + }; + exports.VAClusterStatusChangeEventPreviousHealthCheckResultBetaStatusEnum = { + Succeeded: 'Succeeded', + Failed: 'Failed' + }; + exports.ViolationContextPolicyBetaTypeEnum = { + Entitlement: 'ENTITLEMENT' + }; + exports.ViolationOwnerAssignmentConfigBetaAssignmentRuleEnum = { + Manager: 'MANAGER', + Static: 'STATIC', + Null: 'null' + }; + exports.ViolationOwnerAssignmentConfigOwnerRefBetaTypeEnum = { + Identity: 'IDENTITY' + }; + /** + * The state of a work item + * @export + * @enum {string} + */ + exports.WorkItemStateBeta = { + Finished: 'FINISHED', + Rejected: 'REJECTED', + Returned: 'RETURNED', + Expired: 'EXPIRED', + Pending: 'PENDING', + Canceled: 'CANCELED' + }; + /** + * The type of the work item + * @export + * @enum {string} + */ + exports.WorkItemTypeBeta = { + Unknown: 'UNKNOWN', + Generic: 'GENERIC', + Certification: 'CERTIFICATION', + Remediation: 'REMEDIATION', + Delegation: 'DELEGATION', + Approval: 'APPROVAL', + Violationreview: 'VIOLATIONREVIEW', + Form: 'FORM', + Policyviolation: 'POLICYVIOLATION', + Challenge: 'CHALLENGE', + Impactanalysis: 'IMPACTANALYSIS', + Signoff: 'SIGNOFF', + Event: 'EVENT', + Manualaction: 'MANUALACTION', + Test: 'TEST' + }; + exports.WorkflowAllOfCreatorBetaTypeEnum = { + Identity: 'IDENTITY' + }; + exports.WorkflowBodyOwnerBetaTypeEnum = { + Identity: 'IDENTITY' + }; + exports.WorkflowExecutionBetaStatusEnum = { + Completed: 'Completed', + Failed: 'Failed', + Canceled: 'Canceled', + Running: 'Running' + }; + exports.WorkflowExecutionEventBetaTypeEnum = { + WorkflowExecutionScheduled: 'WorkflowExecutionScheduled', + WorkflowExecutionStarted: 'WorkflowExecutionStarted', + WorkflowExecutionCompleted: 'WorkflowExecutionCompleted', + WorkflowExecutionFailed: 'WorkflowExecutionFailed', + WorkflowTaskScheduled: 'WorkflowTaskScheduled', + WorkflowTaskStarted: 'WorkflowTaskStarted', + WorkflowTaskCompleted: 'WorkflowTaskCompleted', + WorkflowTaskFailed: 'WorkflowTaskFailed', + ActivityTaskScheduled: 'ActivityTaskScheduled', + ActivityTaskStarted: 'ActivityTaskStarted', + ActivityTaskCompleted: 'ActivityTaskCompleted', + ActivityTaskFailed: 'ActivityTaskFailed' + }; + exports.WorkflowLibraryFormFieldsBetaTypeEnum = { + Text: 'text', + Textarea: 'textarea', + Boolean: 'boolean', + Email: 'email', + Url: 'url', + Number: 'number', + Json: 'json', + Checkbox: 'checkbox', + Jsonpath: 'jsonpath', + Select: 'select', + MultiType: 'multiType', + Duration: 'duration', + Toggle: 'toggle', + IdentityPicker: 'identityPicker', + GovernanceGroupPicker: 'governanceGroupPicker', + String: 'string', + Object: 'object', + Array: 'array', + Secret: 'secret', + KeyValuePairs: 'keyValuePairs', + EmailPicker: 'emailPicker', + AdvancedToggle: 'advancedToggle' + }; + exports.WorkflowLibraryTriggerBetaTypeEnum = { + Event: 'EVENT', + Scheduled: 'SCHEDULED', + External: 'EXTERNAL' + }; + exports.WorkflowTriggerBetaTypeEnum = { + Event: 'EVENT', + External: 'EXTERNAL', + Scheduled: 'SCHEDULED' + }; + exports.WorkgroupConnectionDtoBetaConnectionTypeEnum = { + AccessRequestReviewer: 'AccessRequestReviewer', + Owner: 'Owner', + ManagementWorkgroup: 'ManagementWorkgroup' + }; + /** + * AccessProfilesBetaApi - axios parameter creator + * @export + */ + var AccessProfilesBetaApiAxiosParamCreator = function (configuration) { + var _this = this; + return { + /** + * This API creates an Access Profile. A token with API, ORG_ADMIN, ROLE_ADMIN, ROLE_SUBADMIN, SOURCE_ADMIN, or SOURCE_SUBADMIN authority is required to call this API. In addition, a token with only ROLE_SUBADMIN or SOURCE_SUBADMIN authority must be associated with the Access Profile\'s Source. The maximum supported length for the description field is 2000 characters. Longer descriptions will be preserved for existing access profiles, however, any new access profiles as well as any updates to existing descriptions will be limited to 2000 characters. + * @summary Create an Access Profile + * @param {AccessProfileBeta} accessProfileBeta + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + createAccessProfile: function (accessProfileBeta, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'accessProfileBeta' is not null or undefined + (0, common_1.assertParamExists)('createAccessProfile', 'accessProfileBeta', accessProfileBeta); + localVarPath = "/access-profiles"; + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + localVarHeaderParameter['Content-Type'] = 'application/json'; + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(accessProfileBeta, localVarRequestOptions, configuration); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This API deletes an existing Access Profile. The Access Profile must not be in use, for example, Access Profile can not be deleted if they belong to an Application, Life Cycle State or a Role. If it is, a 400 error is returned. A token with API, ORG_ADMIN, SOURCE_ADMIN, or SOURCE_SUBADMIN authority is required to invoke this API. In addition, a SOURCE_SUBADMIN token must be able to administer the Source associated with the Access Profile. + * @summary Delete the specified Access Profile + * @param {string} id ID of the Access Profile to delete + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + deleteAccessProfile: function (id, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'id' is not null or undefined + (0, common_1.assertParamExists)('deleteAccessProfile', 'id', id); + localVarPath = "/access-profiles/{id}" + .replace("{".concat("id", "}"), encodeURIComponent(String(id))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'DELETE' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This API initiates a bulk deletion of one or more Access Profiles. By default, if any of the indicated Access Profiles are in use, no deletions will be performed and the **inUse** field of the response indicates the usages that must be removed first. If the request field **bestEffortOnly** is **true**, however, usages are reported in the **inUse** response field but all other indicated Access Profiles will be deleted. A token with API, ORG_ADMIN, SOURCE_ADMIN, or SOURCE_SUBADMIN authority is required to call this API. In addition, a SOURCE_SUBADMIN may only use this API to delete Access Profiles which are associated with Sources they are able to administer. + * @summary Delete Access Profile(s) + * @param {AccessProfileBulkDeleteRequestBeta} accessProfileBulkDeleteRequestBeta + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + deleteAccessProfilesInBulk: function (accessProfileBulkDeleteRequestBeta, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'accessProfileBulkDeleteRequestBeta' is not null or undefined + (0, common_1.assertParamExists)('deleteAccessProfilesInBulk', 'accessProfileBulkDeleteRequestBeta', accessProfileBulkDeleteRequestBeta); + localVarPath = "/access-profiles/bulk-delete"; + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + localVarHeaderParameter['Content-Type'] = 'application/json'; + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(accessProfileBulkDeleteRequestBeta, localVarRequestOptions, configuration); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This API returns an Access Profile by its ID. A token with API, ORG_ADMIN, ROLE_ADMIN, ROLE_SUBADMIN, SOURCE_ADMIN, or SOURCE_SUBADMIN authority is required to call this API. + * @summary Get an Access Profile + * @param {string} id ID of the Access Profile + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getAccessProfile: function (id, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'id' is not null or undefined + (0, common_1.assertParamExists)('getAccessProfile', 'id', id); + localVarPath = "/access-profiles/{id}" + .replace("{".concat("id", "}"), encodeURIComponent(String(id))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This API lists the Entitlements associated with a given Access Profile A token with API, ORG_ADMIN, SOURCE_ADMIN, or SOURCE_SUBADMIN authority is required to invoke this API. In addition, a token with SOURCE_SUBADMIN authority must have access to the Source associated with the given Access Profile + * @summary List Access Profile\'s Entitlements + * @param {string} id ID of the containing Access Profile + * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **id**: *eq, in* **name**: *eq, sw* **attribute**: *eq, sw* **value**: *eq, sw* **created**: *gt, lt, ge, le* **modified**: *gt, lt, ge, le* **owner.id**: *eq, in* **source.id**: *eq, in* + * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **name, attribute, value, created, modified** + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getAccessProfileEntitlements: function (id, limit, offset, count, filters, sorters, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'id' is not null or undefined + (0, common_1.assertParamExists)('getAccessProfileEntitlements', 'id', id); + localVarPath = "/access-profiles/{id}/entitlements" + .replace("{".concat("id", "}"), encodeURIComponent(String(id))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + if (limit !== undefined) { + localVarQueryParameter['limit'] = limit; + } + if (offset !== undefined) { + localVarQueryParameter['offset'] = offset; + } + if (count !== undefined) { + localVarQueryParameter['count'] = count; + } + if (filters !== undefined) { + localVarQueryParameter['filters'] = filters; + } + if (sorters !== undefined) { + localVarQueryParameter['sorters'] = sorters; + } + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This API returns a list of Access Profiles. A token with API, ORG_ADMIN, ROLE_ADMIN, ROLE_SUBADMIN, SOURCE_ADMIN, or SOURCE_SUBADMIN authority is required to call this API. + * @summary List Access Profiles + * @param {string} [forSubadmin] If provided, filters the returned list according to what is visible to the indicated ROLE_SUBADMIN or SOURCE_SUBADMIN Identity. The value of the parameter is either an Identity ID, or the special value **me**, which is shorthand for the calling Identity\'s ID. A 400 Bad Request error is returned if the **for-subadmin** parameter is specified for an Identity that is not a subadmin. + * @param {number} [limit] Note that for this API the maximum value for limit is 50. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **id**: *eq, in* **name**: *eq, sw, co* **created**: *gt, lt, ge, le* **modified**: *gt, lt, ge, le* **owner.id**: *eq, in* **requestable**: *eq* **source.id**: *eq, in* + * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **name, created, modified** + * @param {string} [forSegmentIds] If present and not empty, additionally filters Access Profiles to those which are assigned to the Segment(s) with the specified IDs. If segmentation is currently unavailable, specifying this parameter results in an error. + * @param {boolean} [includeUnsegmented] Whether or not the response list should contain unsegmented Access Profiles. If *for-segment-ids* is absent or empty, specifying *include-unsegmented* as false results in an error. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + listAccessProfiles: function (forSubadmin, limit, offset, count, filters, sorters, forSegmentIds, includeUnsegmented, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + localVarPath = "/access-profiles"; + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + if (forSubadmin !== undefined) { + localVarQueryParameter['for-subadmin'] = forSubadmin; + } + if (limit !== undefined) { + localVarQueryParameter['limit'] = limit; + } + if (offset !== undefined) { + localVarQueryParameter['offset'] = offset; + } + if (count !== undefined) { + localVarQueryParameter['count'] = count; + } + if (filters !== undefined) { + localVarQueryParameter['filters'] = filters; + } + if (sorters !== undefined) { + localVarQueryParameter['sorters'] = sorters; + } + if (forSegmentIds !== undefined) { + localVarQueryParameter['for-segment-ids'] = forSegmentIds; + } + if (includeUnsegmented !== undefined) { + localVarQueryParameter['include-unsegmented'] = includeUnsegmented; + } + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This API updates an existing Access Profile. The following fields are patchable: **name**, **description**, **enabled**, **owner**, **requestable**, **accessRequestConfig**, **revokeRequestConfig**, **segments**, **entitlements**, **provisioningCriteria** A token with API, ORG_ADMIN, SOURCE_ADMIN, or SOURCE_SUBADMIN authority is required to call this API. In addition, a SOURCE_SUBADMIN may only use this API to patch Access Profiles which are associated with Sources they are able to administer. > The maximum supported length for the description field is 2000 characters. Longer descriptions will be preserved for existing access profiles, however, any new access profiles as well as any updates to existing descriptions will be limited to 2000 characters. > You can only add or replace **entitlements** that exist on the source that the access profile is attached to. You can use the **list entitlements** endpoint with the **filters** query parameter to get a list of available entitlements on the access profile\'s source. > Patching the value of the **requestable** field is only supported for customers enabled with the new Request Center. Otherwise, attempting to modify this field results in a 400 error. + * @summary Patch a specified Access Profile + * @param {string} id ID of the Access Profile to patch + * @param {Array} jsonPatchOperationBeta + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + patchAccessProfile: function (id, jsonPatchOperationBeta, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'id' is not null or undefined + (0, common_1.assertParamExists)('patchAccessProfile', 'id', id); + // verify required parameter 'jsonPatchOperationBeta' is not null or undefined + (0, common_1.assertParamExists)('patchAccessProfile', 'jsonPatchOperationBeta', jsonPatchOperationBeta); + localVarPath = "/access-profiles/{id}" + .replace("{".concat("id", "}"), encodeURIComponent(String(id))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'PATCH' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + localVarHeaderParameter['Content-Type'] = 'application/json-patch+json'; + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(jsonPatchOperationBeta, localVarRequestOptions, configuration); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + }; + }; + exports.AccessProfilesBetaApiAxiosParamCreator = AccessProfilesBetaApiAxiosParamCreator; + /** + * AccessProfilesBetaApi - functional programming interface + * @export + */ + var AccessProfilesBetaApiFp = function (configuration) { + var localVarAxiosParamCreator = (0, exports.AccessProfilesBetaApiAxiosParamCreator)(configuration); + return { + /** + * This API creates an Access Profile. A token with API, ORG_ADMIN, ROLE_ADMIN, ROLE_SUBADMIN, SOURCE_ADMIN, or SOURCE_SUBADMIN authority is required to call this API. In addition, a token with only ROLE_SUBADMIN or SOURCE_SUBADMIN authority must be associated with the Access Profile\'s Source. The maximum supported length for the description field is 2000 characters. Longer descriptions will be preserved for existing access profiles, however, any new access profiles as well as any updates to existing descriptions will be limited to 2000 characters. + * @summary Create an Access Profile + * @param {AccessProfileBeta} accessProfileBeta + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + createAccessProfile: function (accessProfileBeta, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.createAccessProfile(accessProfileBeta, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This API deletes an existing Access Profile. The Access Profile must not be in use, for example, Access Profile can not be deleted if they belong to an Application, Life Cycle State or a Role. If it is, a 400 error is returned. A token with API, ORG_ADMIN, SOURCE_ADMIN, or SOURCE_SUBADMIN authority is required to invoke this API. In addition, a SOURCE_SUBADMIN token must be able to administer the Source associated with the Access Profile. + * @summary Delete the specified Access Profile + * @param {string} id ID of the Access Profile to delete + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + deleteAccessProfile: function (id, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.deleteAccessProfile(id, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This API initiates a bulk deletion of one or more Access Profiles. By default, if any of the indicated Access Profiles are in use, no deletions will be performed and the **inUse** field of the response indicates the usages that must be removed first. If the request field **bestEffortOnly** is **true**, however, usages are reported in the **inUse** response field but all other indicated Access Profiles will be deleted. A token with API, ORG_ADMIN, SOURCE_ADMIN, or SOURCE_SUBADMIN authority is required to call this API. In addition, a SOURCE_SUBADMIN may only use this API to delete Access Profiles which are associated with Sources they are able to administer. + * @summary Delete Access Profile(s) + * @param {AccessProfileBulkDeleteRequestBeta} accessProfileBulkDeleteRequestBeta + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + deleteAccessProfilesInBulk: function (accessProfileBulkDeleteRequestBeta, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.deleteAccessProfilesInBulk(accessProfileBulkDeleteRequestBeta, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This API returns an Access Profile by its ID. A token with API, ORG_ADMIN, ROLE_ADMIN, ROLE_SUBADMIN, SOURCE_ADMIN, or SOURCE_SUBADMIN authority is required to call this API. + * @summary Get an Access Profile + * @param {string} id ID of the Access Profile + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getAccessProfile: function (id, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.getAccessProfile(id, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This API lists the Entitlements associated with a given Access Profile A token with API, ORG_ADMIN, SOURCE_ADMIN, or SOURCE_SUBADMIN authority is required to invoke this API. In addition, a token with SOURCE_SUBADMIN authority must have access to the Source associated with the given Access Profile + * @summary List Access Profile\'s Entitlements + * @param {string} id ID of the containing Access Profile + * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **id**: *eq, in* **name**: *eq, sw* **attribute**: *eq, sw* **value**: *eq, sw* **created**: *gt, lt, ge, le* **modified**: *gt, lt, ge, le* **owner.id**: *eq, in* **source.id**: *eq, in* + * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **name, attribute, value, created, modified** + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getAccessProfileEntitlements: function (id, limit, offset, count, filters, sorters, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.getAccessProfileEntitlements(id, limit, offset, count, filters, sorters, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This API returns a list of Access Profiles. A token with API, ORG_ADMIN, ROLE_ADMIN, ROLE_SUBADMIN, SOURCE_ADMIN, or SOURCE_SUBADMIN authority is required to call this API. + * @summary List Access Profiles + * @param {string} [forSubadmin] If provided, filters the returned list according to what is visible to the indicated ROLE_SUBADMIN or SOURCE_SUBADMIN Identity. The value of the parameter is either an Identity ID, or the special value **me**, which is shorthand for the calling Identity\'s ID. A 400 Bad Request error is returned if the **for-subadmin** parameter is specified for an Identity that is not a subadmin. + * @param {number} [limit] Note that for this API the maximum value for limit is 50. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **id**: *eq, in* **name**: *eq, sw, co* **created**: *gt, lt, ge, le* **modified**: *gt, lt, ge, le* **owner.id**: *eq, in* **requestable**: *eq* **source.id**: *eq, in* + * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **name, created, modified** + * @param {string} [forSegmentIds] If present and not empty, additionally filters Access Profiles to those which are assigned to the Segment(s) with the specified IDs. If segmentation is currently unavailable, specifying this parameter results in an error. + * @param {boolean} [includeUnsegmented] Whether or not the response list should contain unsegmented Access Profiles. If *for-segment-ids* is absent or empty, specifying *include-unsegmented* as false results in an error. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + listAccessProfiles: function (forSubadmin, limit, offset, count, filters, sorters, forSegmentIds, includeUnsegmented, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.listAccessProfiles(forSubadmin, limit, offset, count, filters, sorters, forSegmentIds, includeUnsegmented, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This API updates an existing Access Profile. The following fields are patchable: **name**, **description**, **enabled**, **owner**, **requestable**, **accessRequestConfig**, **revokeRequestConfig**, **segments**, **entitlements**, **provisioningCriteria** A token with API, ORG_ADMIN, SOURCE_ADMIN, or SOURCE_SUBADMIN authority is required to call this API. In addition, a SOURCE_SUBADMIN may only use this API to patch Access Profiles which are associated with Sources they are able to administer. > The maximum supported length for the description field is 2000 characters. Longer descriptions will be preserved for existing access profiles, however, any new access profiles as well as any updates to existing descriptions will be limited to 2000 characters. > You can only add or replace **entitlements** that exist on the source that the access profile is attached to. You can use the **list entitlements** endpoint with the **filters** query parameter to get a list of available entitlements on the access profile\'s source. > Patching the value of the **requestable** field is only supported for customers enabled with the new Request Center. Otherwise, attempting to modify this field results in a 400 error. + * @summary Patch a specified Access Profile + * @param {string} id ID of the Access Profile to patch + * @param {Array} jsonPatchOperationBeta + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + patchAccessProfile: function (id, jsonPatchOperationBeta, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.patchAccessProfile(id, jsonPatchOperationBeta, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + }; + }; + exports.AccessProfilesBetaApiFp = AccessProfilesBetaApiFp; + /** + * AccessProfilesBetaApi - factory interface + * @export + */ + var AccessProfilesBetaApiFactory = function (configuration, basePath, axios) { + var localVarFp = (0, exports.AccessProfilesBetaApiFp)(configuration); + return { + /** + * This API creates an Access Profile. A token with API, ORG_ADMIN, ROLE_ADMIN, ROLE_SUBADMIN, SOURCE_ADMIN, or SOURCE_SUBADMIN authority is required to call this API. In addition, a token with only ROLE_SUBADMIN or SOURCE_SUBADMIN authority must be associated with the Access Profile\'s Source. The maximum supported length for the description field is 2000 characters. Longer descriptions will be preserved for existing access profiles, however, any new access profiles as well as any updates to existing descriptions will be limited to 2000 characters. + * @summary Create an Access Profile + * @param {AccessProfileBeta} accessProfileBeta + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + createAccessProfile: function (accessProfileBeta, axiosOptions) { + return localVarFp.createAccessProfile(accessProfileBeta, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This API deletes an existing Access Profile. The Access Profile must not be in use, for example, Access Profile can not be deleted if they belong to an Application, Life Cycle State or a Role. If it is, a 400 error is returned. A token with API, ORG_ADMIN, SOURCE_ADMIN, or SOURCE_SUBADMIN authority is required to invoke this API. In addition, a SOURCE_SUBADMIN token must be able to administer the Source associated with the Access Profile. + * @summary Delete the specified Access Profile + * @param {string} id ID of the Access Profile to delete + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + deleteAccessProfile: function (id, axiosOptions) { + return localVarFp.deleteAccessProfile(id, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This API initiates a bulk deletion of one or more Access Profiles. By default, if any of the indicated Access Profiles are in use, no deletions will be performed and the **inUse** field of the response indicates the usages that must be removed first. If the request field **bestEffortOnly** is **true**, however, usages are reported in the **inUse** response field but all other indicated Access Profiles will be deleted. A token with API, ORG_ADMIN, SOURCE_ADMIN, or SOURCE_SUBADMIN authority is required to call this API. In addition, a SOURCE_SUBADMIN may only use this API to delete Access Profiles which are associated with Sources they are able to administer. + * @summary Delete Access Profile(s) + * @param {AccessProfileBulkDeleteRequestBeta} accessProfileBulkDeleteRequestBeta + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + deleteAccessProfilesInBulk: function (accessProfileBulkDeleteRequestBeta, axiosOptions) { + return localVarFp.deleteAccessProfilesInBulk(accessProfileBulkDeleteRequestBeta, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This API returns an Access Profile by its ID. A token with API, ORG_ADMIN, ROLE_ADMIN, ROLE_SUBADMIN, SOURCE_ADMIN, or SOURCE_SUBADMIN authority is required to call this API. + * @summary Get an Access Profile + * @param {string} id ID of the Access Profile + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getAccessProfile: function (id, axiosOptions) { + return localVarFp.getAccessProfile(id, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This API lists the Entitlements associated with a given Access Profile A token with API, ORG_ADMIN, SOURCE_ADMIN, or SOURCE_SUBADMIN authority is required to invoke this API. In addition, a token with SOURCE_SUBADMIN authority must have access to the Source associated with the given Access Profile + * @summary List Access Profile\'s Entitlements + * @param {string} id ID of the containing Access Profile + * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **id**: *eq, in* **name**: *eq, sw* **attribute**: *eq, sw* **value**: *eq, sw* **created**: *gt, lt, ge, le* **modified**: *gt, lt, ge, le* **owner.id**: *eq, in* **source.id**: *eq, in* + * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **name, attribute, value, created, modified** + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getAccessProfileEntitlements: function (id, limit, offset, count, filters, sorters, axiosOptions) { + return localVarFp.getAccessProfileEntitlements(id, limit, offset, count, filters, sorters, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This API returns a list of Access Profiles. A token with API, ORG_ADMIN, ROLE_ADMIN, ROLE_SUBADMIN, SOURCE_ADMIN, or SOURCE_SUBADMIN authority is required to call this API. + * @summary List Access Profiles + * @param {string} [forSubadmin] If provided, filters the returned list according to what is visible to the indicated ROLE_SUBADMIN or SOURCE_SUBADMIN Identity. The value of the parameter is either an Identity ID, or the special value **me**, which is shorthand for the calling Identity\'s ID. A 400 Bad Request error is returned if the **for-subadmin** parameter is specified for an Identity that is not a subadmin. + * @param {number} [limit] Note that for this API the maximum value for limit is 50. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **id**: *eq, in* **name**: *eq, sw, co* **created**: *gt, lt, ge, le* **modified**: *gt, lt, ge, le* **owner.id**: *eq, in* **requestable**: *eq* **source.id**: *eq, in* + * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **name, created, modified** + * @param {string} [forSegmentIds] If present and not empty, additionally filters Access Profiles to those which are assigned to the Segment(s) with the specified IDs. If segmentation is currently unavailable, specifying this parameter results in an error. + * @param {boolean} [includeUnsegmented] Whether or not the response list should contain unsegmented Access Profiles. If *for-segment-ids* is absent or empty, specifying *include-unsegmented* as false results in an error. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + listAccessProfiles: function (forSubadmin, limit, offset, count, filters, sorters, forSegmentIds, includeUnsegmented, axiosOptions) { + return localVarFp.listAccessProfiles(forSubadmin, limit, offset, count, filters, sorters, forSegmentIds, includeUnsegmented, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This API updates an existing Access Profile. The following fields are patchable: **name**, **description**, **enabled**, **owner**, **requestable**, **accessRequestConfig**, **revokeRequestConfig**, **segments**, **entitlements**, **provisioningCriteria** A token with API, ORG_ADMIN, SOURCE_ADMIN, or SOURCE_SUBADMIN authority is required to call this API. In addition, a SOURCE_SUBADMIN may only use this API to patch Access Profiles which are associated with Sources they are able to administer. > The maximum supported length for the description field is 2000 characters. Longer descriptions will be preserved for existing access profiles, however, any new access profiles as well as any updates to existing descriptions will be limited to 2000 characters. > You can only add or replace **entitlements** that exist on the source that the access profile is attached to. You can use the **list entitlements** endpoint with the **filters** query parameter to get a list of available entitlements on the access profile\'s source. > Patching the value of the **requestable** field is only supported for customers enabled with the new Request Center. Otherwise, attempting to modify this field results in a 400 error. + * @summary Patch a specified Access Profile + * @param {string} id ID of the Access Profile to patch + * @param {Array} jsonPatchOperationBeta + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + patchAccessProfile: function (id, jsonPatchOperationBeta, axiosOptions) { + return localVarFp.patchAccessProfile(id, jsonPatchOperationBeta, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + }; + }; + exports.AccessProfilesBetaApiFactory = AccessProfilesBetaApiFactory; + /** + * AccessProfilesBetaApi - object-oriented interface + * @export + * @class AccessProfilesBetaApi + * @extends {BaseAPI} + */ + var AccessProfilesBetaApi = /** @class */ (function (_super) { + __extends(AccessProfilesBetaApi, _super); + function AccessProfilesBetaApi() { + return _super !== null && _super.apply(this, arguments) || this; + } + /** + * This API creates an Access Profile. A token with API, ORG_ADMIN, ROLE_ADMIN, ROLE_SUBADMIN, SOURCE_ADMIN, or SOURCE_SUBADMIN authority is required to call this API. In addition, a token with only ROLE_SUBADMIN or SOURCE_SUBADMIN authority must be associated with the Access Profile\'s Source. The maximum supported length for the description field is 2000 characters. Longer descriptions will be preserved for existing access profiles, however, any new access profiles as well as any updates to existing descriptions will be limited to 2000 characters. + * @summary Create an Access Profile + * @param {AccessProfilesBetaApiCreateAccessProfileRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof AccessProfilesBetaApi + */ + AccessProfilesBetaApi.prototype.createAccessProfile = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.AccessProfilesBetaApiFp)(this.configuration).createAccessProfile(requestParameters.accessProfileBeta, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This API deletes an existing Access Profile. The Access Profile must not be in use, for example, Access Profile can not be deleted if they belong to an Application, Life Cycle State or a Role. If it is, a 400 error is returned. A token with API, ORG_ADMIN, SOURCE_ADMIN, or SOURCE_SUBADMIN authority is required to invoke this API. In addition, a SOURCE_SUBADMIN token must be able to administer the Source associated with the Access Profile. + * @summary Delete the specified Access Profile + * @param {AccessProfilesBetaApiDeleteAccessProfileRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof AccessProfilesBetaApi + */ + AccessProfilesBetaApi.prototype.deleteAccessProfile = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.AccessProfilesBetaApiFp)(this.configuration).deleteAccessProfile(requestParameters.id, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This API initiates a bulk deletion of one or more Access Profiles. By default, if any of the indicated Access Profiles are in use, no deletions will be performed and the **inUse** field of the response indicates the usages that must be removed first. If the request field **bestEffortOnly** is **true**, however, usages are reported in the **inUse** response field but all other indicated Access Profiles will be deleted. A token with API, ORG_ADMIN, SOURCE_ADMIN, or SOURCE_SUBADMIN authority is required to call this API. In addition, a SOURCE_SUBADMIN may only use this API to delete Access Profiles which are associated with Sources they are able to administer. + * @summary Delete Access Profile(s) + * @param {AccessProfilesBetaApiDeleteAccessProfilesInBulkRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof AccessProfilesBetaApi + */ + AccessProfilesBetaApi.prototype.deleteAccessProfilesInBulk = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.AccessProfilesBetaApiFp)(this.configuration).deleteAccessProfilesInBulk(requestParameters.accessProfileBulkDeleteRequestBeta, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This API returns an Access Profile by its ID. A token with API, ORG_ADMIN, ROLE_ADMIN, ROLE_SUBADMIN, SOURCE_ADMIN, or SOURCE_SUBADMIN authority is required to call this API. + * @summary Get an Access Profile + * @param {AccessProfilesBetaApiGetAccessProfileRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof AccessProfilesBetaApi + */ + AccessProfilesBetaApi.prototype.getAccessProfile = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.AccessProfilesBetaApiFp)(this.configuration).getAccessProfile(requestParameters.id, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This API lists the Entitlements associated with a given Access Profile A token with API, ORG_ADMIN, SOURCE_ADMIN, or SOURCE_SUBADMIN authority is required to invoke this API. In addition, a token with SOURCE_SUBADMIN authority must have access to the Source associated with the given Access Profile + * @summary List Access Profile\'s Entitlements + * @param {AccessProfilesBetaApiGetAccessProfileEntitlementsRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof AccessProfilesBetaApi + */ + AccessProfilesBetaApi.prototype.getAccessProfileEntitlements = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.AccessProfilesBetaApiFp)(this.configuration).getAccessProfileEntitlements(requestParameters.id, requestParameters.limit, requestParameters.offset, requestParameters.count, requestParameters.filters, requestParameters.sorters, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This API returns a list of Access Profiles. A token with API, ORG_ADMIN, ROLE_ADMIN, ROLE_SUBADMIN, SOURCE_ADMIN, or SOURCE_SUBADMIN authority is required to call this API. + * @summary List Access Profiles + * @param {AccessProfilesBetaApiListAccessProfilesRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof AccessProfilesBetaApi + */ + AccessProfilesBetaApi.prototype.listAccessProfiles = function (requestParameters, axiosOptions) { + var _this = this; + if (requestParameters === void 0) { requestParameters = {}; } + return (0, exports.AccessProfilesBetaApiFp)(this.configuration).listAccessProfiles(requestParameters.forSubadmin, requestParameters.limit, requestParameters.offset, requestParameters.count, requestParameters.filters, requestParameters.sorters, requestParameters.forSegmentIds, requestParameters.includeUnsegmented, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This API updates an existing Access Profile. The following fields are patchable: **name**, **description**, **enabled**, **owner**, **requestable**, **accessRequestConfig**, **revokeRequestConfig**, **segments**, **entitlements**, **provisioningCriteria** A token with API, ORG_ADMIN, SOURCE_ADMIN, or SOURCE_SUBADMIN authority is required to call this API. In addition, a SOURCE_SUBADMIN may only use this API to patch Access Profiles which are associated with Sources they are able to administer. > The maximum supported length for the description field is 2000 characters. Longer descriptions will be preserved for existing access profiles, however, any new access profiles as well as any updates to existing descriptions will be limited to 2000 characters. > You can only add or replace **entitlements** that exist on the source that the access profile is attached to. You can use the **list entitlements** endpoint with the **filters** query parameter to get a list of available entitlements on the access profile\'s source. > Patching the value of the **requestable** field is only supported for customers enabled with the new Request Center. Otherwise, attempting to modify this field results in a 400 error. + * @summary Patch a specified Access Profile + * @param {AccessProfilesBetaApiPatchAccessProfileRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof AccessProfilesBetaApi + */ + AccessProfilesBetaApi.prototype.patchAccessProfile = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.AccessProfilesBetaApiFp)(this.configuration).patchAccessProfile(requestParameters.id, requestParameters.jsonPatchOperationBeta, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + return AccessProfilesBetaApi; + }(base_1.BaseAPI)); + exports.AccessProfilesBetaApi = AccessProfilesBetaApi; + /** + * AccessRequestApprovalsBetaApi - axios parameter creator + * @export + */ + var AccessRequestApprovalsBetaApiAxiosParamCreator = function (configuration) { + var _this = this; + return { + /** + * This endpoint approves an access request approval. Only the owner of the approval and ORG_ADMIN users are allowed to perform this action. + * @summary Approves an access request approval. + * @param {string} approvalId The id of the approval. + * @param {CommentDtoBeta} [commentDtoBeta] Reviewer\'s comment. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + approveAccessRequest: function (approvalId, commentDtoBeta, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'approvalId' is not null or undefined + (0, common_1.assertParamExists)('approveAccessRequest', 'approvalId', approvalId); + localVarPath = "/access-request-approvals/{approvalId}/approve" + .replace("{".concat("approvalId", "}"), encodeURIComponent(String(approvalId))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + localVarHeaderParameter['Content-Type'] = 'application/json'; + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(commentDtoBeta, localVarRequestOptions, configuration); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This endpoint forwards an access request approval. Only the owner of the approval and ORG_ADMIN users are allowed to perform this action. + * @summary Forwards an access request approval to a new owner. + * @param {string} approvalId The id of the approval. + * @param {ForwardApprovalDtoBeta} forwardApprovalDtoBeta Information about the forwarded approval. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + forwardAccessRequest: function (approvalId, forwardApprovalDtoBeta, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'approvalId' is not null or undefined + (0, common_1.assertParamExists)('forwardAccessRequest', 'approvalId', approvalId); + // verify required parameter 'forwardApprovalDtoBeta' is not null or undefined + (0, common_1.assertParamExists)('forwardAccessRequest', 'forwardApprovalDtoBeta', forwardApprovalDtoBeta); + localVarPath = "/access-request-approvals/{approvalId}/forward" + .replace("{".concat("approvalId", "}"), encodeURIComponent(String(approvalId))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + localVarHeaderParameter['Content-Type'] = 'application/json'; + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(forwardApprovalDtoBeta, localVarRequestOptions, configuration); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This endpoint returns the number of pending, approved and rejected access requests approvals. See \"owner-id\" query parameter below for authorization info. + * @summary Get the number of pending, approved and rejected access requests approvals + * @param {string} [ownerId] The id of the owner or approver identity of the approvals. If present, the value returns approval summary for the specified identity. * ORG_ADMIN users can call this with any identity ID value. * ORG_ADMIN user can also fetch all the approvals in the org, when owner-id is not used. * Non ORG_ADMIN users can only specify *me* or pass their own identity ID value. + * @param {string} [fromDate] From date is the date and time from which the results will be shown. It should be in a valid ISO-8601 format example: from-date=2020-03-19T19:59:11Z + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getAccessRequestApprovalSummary: function (ownerId, fromDate, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + localVarPath = "/access-request-approvals/approval-summary"; + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + if (ownerId !== undefined) { + localVarQueryParameter['owner-id'] = ownerId; + } + if (fromDate !== undefined) { + localVarQueryParameter['from-date'] = fromDate; + } + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This endpoint returns list of completed approvals. See *owner-id* query parameter below for authorization info. + * @summary Completed Access Request Approvals List + * @param {string} [ownerId] If present, the value returns only completed approvals for the specified identity. * ORG_ADMIN users can call this with any identity ID value. * ORG_ADMIN users can also fetch all the approvals in the org, when owner-id is not used. * Non-ORG_ADMIN users can only specify *me* or pass their own identity ID value. + * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **id**: *eq, in, co, ge, gt, le, lt, ne, isnull, sw* **requestedFor.id**: *eq, in, co, ge, gt, le, lt, ne, isnull, sw* **modified**: *gt, lt, ge, le, co, eq, in, ne, sw* + * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **created, modified** + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + listCompletedApprovals: function (ownerId, limit, offset, count, filters, sorters, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + localVarPath = "/access-request-approvals/completed"; + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + if (ownerId !== undefined) { + localVarQueryParameter['owner-id'] = ownerId; + } + if (limit !== undefined) { + localVarQueryParameter['limit'] = limit; + } + if (offset !== undefined) { + localVarQueryParameter['offset'] = offset; + } + if (count !== undefined) { + localVarQueryParameter['count'] = count; + } + if (filters !== undefined) { + localVarQueryParameter['filters'] = filters; + } + if (sorters !== undefined) { + localVarQueryParameter['sorters'] = sorters; + } + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This endpoint returns a list of pending approvals. See \"owner-id\" query parameter below for authorization info. + * @summary Pending Access Request Approvals List + * @param {string} [ownerId] If present, the value returns only pending approvals for the specified identity. * ORG_ADMIN users can call this with any identity ID value. * ORG_ADMIN users can also fetch all the approvals in the org, when owner-id is not used. * Non-ORG_ADMIN users can only specify *me* or pass their own identity ID value. + * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **id**: *eq, in* **requestedFor.id**: *eq, in* **modified**: *gt, lt, ge, le, eq, in* + * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **created, modified** + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + listPendingApprovals: function (ownerId, limit, offset, count, filters, sorters, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + localVarPath = "/access-request-approvals/pending"; + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + if (ownerId !== undefined) { + localVarQueryParameter['owner-id'] = ownerId; + } + if (limit !== undefined) { + localVarQueryParameter['limit'] = limit; + } + if (offset !== undefined) { + localVarQueryParameter['offset'] = offset; + } + if (count !== undefined) { + localVarQueryParameter['count'] = count; + } + if (filters !== undefined) { + localVarQueryParameter['filters'] = filters; + } + if (sorters !== undefined) { + localVarQueryParameter['sorters'] = sorters; + } + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This endpoint rejects an access request approval. Only the owner of the approval and admin users are allowed to perform this action. + * @summary Rejects an access request approval. + * @param {string} approvalId The id of the approval. + * @param {CommentDtoBeta} [commentDtoBeta] Reviewer\'s comment. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + rejectAccessRequest: function (approvalId, commentDtoBeta, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'approvalId' is not null or undefined + (0, common_1.assertParamExists)('rejectAccessRequest', 'approvalId', approvalId); + localVarPath = "/access-request-approvals/{approvalId}/reject" + .replace("{".concat("approvalId", "}"), encodeURIComponent(String(approvalId))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + localVarHeaderParameter['Content-Type'] = 'application/json'; + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(commentDtoBeta, localVarRequestOptions, configuration); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + }; + }; + exports.AccessRequestApprovalsBetaApiAxiosParamCreator = AccessRequestApprovalsBetaApiAxiosParamCreator; + /** + * AccessRequestApprovalsBetaApi - functional programming interface + * @export + */ + var AccessRequestApprovalsBetaApiFp = function (configuration) { + var localVarAxiosParamCreator = (0, exports.AccessRequestApprovalsBetaApiAxiosParamCreator)(configuration); + return { + /** + * This endpoint approves an access request approval. Only the owner of the approval and ORG_ADMIN users are allowed to perform this action. + * @summary Approves an access request approval. + * @param {string} approvalId The id of the approval. + * @param {CommentDtoBeta} [commentDtoBeta] Reviewer\'s comment. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + approveAccessRequest: function (approvalId, commentDtoBeta, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.approveAccessRequest(approvalId, commentDtoBeta, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This endpoint forwards an access request approval. Only the owner of the approval and ORG_ADMIN users are allowed to perform this action. + * @summary Forwards an access request approval to a new owner. + * @param {string} approvalId The id of the approval. + * @param {ForwardApprovalDtoBeta} forwardApprovalDtoBeta Information about the forwarded approval. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + forwardAccessRequest: function (approvalId, forwardApprovalDtoBeta, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.forwardAccessRequest(approvalId, forwardApprovalDtoBeta, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This endpoint returns the number of pending, approved and rejected access requests approvals. See \"owner-id\" query parameter below for authorization info. + * @summary Get the number of pending, approved and rejected access requests approvals + * @param {string} [ownerId] The id of the owner or approver identity of the approvals. If present, the value returns approval summary for the specified identity. * ORG_ADMIN users can call this with any identity ID value. * ORG_ADMIN user can also fetch all the approvals in the org, when owner-id is not used. * Non ORG_ADMIN users can only specify *me* or pass their own identity ID value. + * @param {string} [fromDate] From date is the date and time from which the results will be shown. It should be in a valid ISO-8601 format example: from-date=2020-03-19T19:59:11Z + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getAccessRequestApprovalSummary: function (ownerId, fromDate, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.getAccessRequestApprovalSummary(ownerId, fromDate, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This endpoint returns list of completed approvals. See *owner-id* query parameter below for authorization info. + * @summary Completed Access Request Approvals List + * @param {string} [ownerId] If present, the value returns only completed approvals for the specified identity. * ORG_ADMIN users can call this with any identity ID value. * ORG_ADMIN users can also fetch all the approvals in the org, when owner-id is not used. * Non-ORG_ADMIN users can only specify *me* or pass their own identity ID value. + * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **id**: *eq, in, co, ge, gt, le, lt, ne, isnull, sw* **requestedFor.id**: *eq, in, co, ge, gt, le, lt, ne, isnull, sw* **modified**: *gt, lt, ge, le, co, eq, in, ne, sw* + * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **created, modified** + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + listCompletedApprovals: function (ownerId, limit, offset, count, filters, sorters, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.listCompletedApprovals(ownerId, limit, offset, count, filters, sorters, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This endpoint returns a list of pending approvals. See \"owner-id\" query parameter below for authorization info. + * @summary Pending Access Request Approvals List + * @param {string} [ownerId] If present, the value returns only pending approvals for the specified identity. * ORG_ADMIN users can call this with any identity ID value. * ORG_ADMIN users can also fetch all the approvals in the org, when owner-id is not used. * Non-ORG_ADMIN users can only specify *me* or pass their own identity ID value. + * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **id**: *eq, in* **requestedFor.id**: *eq, in* **modified**: *gt, lt, ge, le, eq, in* + * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **created, modified** + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + listPendingApprovals: function (ownerId, limit, offset, count, filters, sorters, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.listPendingApprovals(ownerId, limit, offset, count, filters, sorters, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This endpoint rejects an access request approval. Only the owner of the approval and admin users are allowed to perform this action. + * @summary Rejects an access request approval. + * @param {string} approvalId The id of the approval. + * @param {CommentDtoBeta} [commentDtoBeta] Reviewer\'s comment. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + rejectAccessRequest: function (approvalId, commentDtoBeta, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.rejectAccessRequest(approvalId, commentDtoBeta, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + }; + }; + exports.AccessRequestApprovalsBetaApiFp = AccessRequestApprovalsBetaApiFp; + /** + * AccessRequestApprovalsBetaApi - factory interface + * @export + */ + var AccessRequestApprovalsBetaApiFactory = function (configuration, basePath, axios) { + var localVarFp = (0, exports.AccessRequestApprovalsBetaApiFp)(configuration); + return { + /** + * This endpoint approves an access request approval. Only the owner of the approval and ORG_ADMIN users are allowed to perform this action. + * @summary Approves an access request approval. + * @param {string} approvalId The id of the approval. + * @param {CommentDtoBeta} [commentDtoBeta] Reviewer\'s comment. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + approveAccessRequest: function (approvalId, commentDtoBeta, axiosOptions) { + return localVarFp.approveAccessRequest(approvalId, commentDtoBeta, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This endpoint forwards an access request approval. Only the owner of the approval and ORG_ADMIN users are allowed to perform this action. + * @summary Forwards an access request approval to a new owner. + * @param {string} approvalId The id of the approval. + * @param {ForwardApprovalDtoBeta} forwardApprovalDtoBeta Information about the forwarded approval. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + forwardAccessRequest: function (approvalId, forwardApprovalDtoBeta, axiosOptions) { + return localVarFp.forwardAccessRequest(approvalId, forwardApprovalDtoBeta, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This endpoint returns the number of pending, approved and rejected access requests approvals. See \"owner-id\" query parameter below for authorization info. + * @summary Get the number of pending, approved and rejected access requests approvals + * @param {string} [ownerId] The id of the owner or approver identity of the approvals. If present, the value returns approval summary for the specified identity. * ORG_ADMIN users can call this with any identity ID value. * ORG_ADMIN user can also fetch all the approvals in the org, when owner-id is not used. * Non ORG_ADMIN users can only specify *me* or pass their own identity ID value. + * @param {string} [fromDate] From date is the date and time from which the results will be shown. It should be in a valid ISO-8601 format example: from-date=2020-03-19T19:59:11Z + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getAccessRequestApprovalSummary: function (ownerId, fromDate, axiosOptions) { + return localVarFp.getAccessRequestApprovalSummary(ownerId, fromDate, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This endpoint returns list of completed approvals. See *owner-id* query parameter below for authorization info. + * @summary Completed Access Request Approvals List + * @param {string} [ownerId] If present, the value returns only completed approvals for the specified identity. * ORG_ADMIN users can call this with any identity ID value. * ORG_ADMIN users can also fetch all the approvals in the org, when owner-id is not used. * Non-ORG_ADMIN users can only specify *me* or pass their own identity ID value. + * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **id**: *eq, in, co, ge, gt, le, lt, ne, isnull, sw* **requestedFor.id**: *eq, in, co, ge, gt, le, lt, ne, isnull, sw* **modified**: *gt, lt, ge, le, co, eq, in, ne, sw* + * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **created, modified** + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + listCompletedApprovals: function (ownerId, limit, offset, count, filters, sorters, axiosOptions) { + return localVarFp.listCompletedApprovals(ownerId, limit, offset, count, filters, sorters, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This endpoint returns a list of pending approvals. See \"owner-id\" query parameter below for authorization info. + * @summary Pending Access Request Approvals List + * @param {string} [ownerId] If present, the value returns only pending approvals for the specified identity. * ORG_ADMIN users can call this with any identity ID value. * ORG_ADMIN users can also fetch all the approvals in the org, when owner-id is not used. * Non-ORG_ADMIN users can only specify *me* or pass their own identity ID value. + * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **id**: *eq, in* **requestedFor.id**: *eq, in* **modified**: *gt, lt, ge, le, eq, in* + * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **created, modified** + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + listPendingApprovals: function (ownerId, limit, offset, count, filters, sorters, axiosOptions) { + return localVarFp.listPendingApprovals(ownerId, limit, offset, count, filters, sorters, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This endpoint rejects an access request approval. Only the owner of the approval and admin users are allowed to perform this action. + * @summary Rejects an access request approval. + * @param {string} approvalId The id of the approval. + * @param {CommentDtoBeta} [commentDtoBeta] Reviewer\'s comment. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + rejectAccessRequest: function (approvalId, commentDtoBeta, axiosOptions) { + return localVarFp.rejectAccessRequest(approvalId, commentDtoBeta, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + }; + }; + exports.AccessRequestApprovalsBetaApiFactory = AccessRequestApprovalsBetaApiFactory; + /** + * AccessRequestApprovalsBetaApi - object-oriented interface + * @export + * @class AccessRequestApprovalsBetaApi + * @extends {BaseAPI} + */ + var AccessRequestApprovalsBetaApi = /** @class */ (function (_super) { + __extends(AccessRequestApprovalsBetaApi, _super); + function AccessRequestApprovalsBetaApi() { + return _super !== null && _super.apply(this, arguments) || this; + } + /** + * This endpoint approves an access request approval. Only the owner of the approval and ORG_ADMIN users are allowed to perform this action. + * @summary Approves an access request approval. + * @param {AccessRequestApprovalsBetaApiApproveAccessRequestRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof AccessRequestApprovalsBetaApi + */ + AccessRequestApprovalsBetaApi.prototype.approveAccessRequest = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.AccessRequestApprovalsBetaApiFp)(this.configuration).approveAccessRequest(requestParameters.approvalId, requestParameters.commentDtoBeta, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This endpoint forwards an access request approval. Only the owner of the approval and ORG_ADMIN users are allowed to perform this action. + * @summary Forwards an access request approval to a new owner. + * @param {AccessRequestApprovalsBetaApiForwardAccessRequestRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof AccessRequestApprovalsBetaApi + */ + AccessRequestApprovalsBetaApi.prototype.forwardAccessRequest = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.AccessRequestApprovalsBetaApiFp)(this.configuration).forwardAccessRequest(requestParameters.approvalId, requestParameters.forwardApprovalDtoBeta, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This endpoint returns the number of pending, approved and rejected access requests approvals. See \"owner-id\" query parameter below for authorization info. + * @summary Get the number of pending, approved and rejected access requests approvals + * @param {AccessRequestApprovalsBetaApiGetAccessRequestApprovalSummaryRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof AccessRequestApprovalsBetaApi + */ + AccessRequestApprovalsBetaApi.prototype.getAccessRequestApprovalSummary = function (requestParameters, axiosOptions) { + var _this = this; + if (requestParameters === void 0) { requestParameters = {}; } + return (0, exports.AccessRequestApprovalsBetaApiFp)(this.configuration).getAccessRequestApprovalSummary(requestParameters.ownerId, requestParameters.fromDate, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This endpoint returns list of completed approvals. See *owner-id* query parameter below for authorization info. + * @summary Completed Access Request Approvals List + * @param {AccessRequestApprovalsBetaApiListCompletedApprovalsRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof AccessRequestApprovalsBetaApi + */ + AccessRequestApprovalsBetaApi.prototype.listCompletedApprovals = function (requestParameters, axiosOptions) { + var _this = this; + if (requestParameters === void 0) { requestParameters = {}; } + return (0, exports.AccessRequestApprovalsBetaApiFp)(this.configuration).listCompletedApprovals(requestParameters.ownerId, requestParameters.limit, requestParameters.offset, requestParameters.count, requestParameters.filters, requestParameters.sorters, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This endpoint returns a list of pending approvals. See \"owner-id\" query parameter below for authorization info. + * @summary Pending Access Request Approvals List + * @param {AccessRequestApprovalsBetaApiListPendingApprovalsRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof AccessRequestApprovalsBetaApi + */ + AccessRequestApprovalsBetaApi.prototype.listPendingApprovals = function (requestParameters, axiosOptions) { + var _this = this; + if (requestParameters === void 0) { requestParameters = {}; } + return (0, exports.AccessRequestApprovalsBetaApiFp)(this.configuration).listPendingApprovals(requestParameters.ownerId, requestParameters.limit, requestParameters.offset, requestParameters.count, requestParameters.filters, requestParameters.sorters, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This endpoint rejects an access request approval. Only the owner of the approval and admin users are allowed to perform this action. + * @summary Rejects an access request approval. + * @param {AccessRequestApprovalsBetaApiRejectAccessRequestRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof AccessRequestApprovalsBetaApi + */ + AccessRequestApprovalsBetaApi.prototype.rejectAccessRequest = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.AccessRequestApprovalsBetaApiFp)(this.configuration).rejectAccessRequest(requestParameters.approvalId, requestParameters.commentDtoBeta, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + return AccessRequestApprovalsBetaApi; + }(base_1.BaseAPI)); + exports.AccessRequestApprovalsBetaApi = AccessRequestApprovalsBetaApi; + /** + * AccessRequestsBetaApi - axios parameter creator + * @export + */ + var AccessRequestsBetaApiAxiosParamCreator = function (configuration) { + var _this = this; + return { + /** + * This API endpoint cancels a pending access request. An access request can be cancelled only if it has not passed the approval step. Any token with ORG_ADMIN authority or token of the user who originally requested the access request is required to cancel it. + * @summary Cancel Access Request + * @param {CancelAccessRequestBeta} cancelAccessRequestBeta + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + cancelAccessRequest: function (cancelAccessRequestBeta, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'cancelAccessRequestBeta' is not null or undefined + (0, common_1.assertParamExists)('cancelAccessRequest', 'cancelAccessRequestBeta', cancelAccessRequestBeta); + localVarPath = "/access-requests/cancel"; + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + localVarHeaderParameter['Content-Type'] = 'application/json'; + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(cancelAccessRequestBeta, localVarRequestOptions, configuration); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This endpoint closes access requests that are stuck in a pending state. It can be used throughout a request\'s lifecycle (even after the approval state, unlike
Cancel Access Request). A token with ORG_ADMIN authority is required. To find pending access requests via the UI, navigate to Search and use this query: status: Pending AND \"Access Request\". Use the Column Chooser to select \"Tracking Number,\" and the Download button to export a CSV containing the Tracking Numbers. To find pending access requests via the API, use List Account Activities. Input the ids from either source To track the status of endpoint requests, navigate to Search and use this query: name:\"Close Identity Requests\". Search will include \"Close Identity Requests Started\" audits when requests are initiated, and \"Close Identity Requests Completed\" audits when requests are completed. The completion audit will list the Identity Request IDs that finished in error. This API triggers the Provisioning Action Completed event trigger for each access request that is closed. + * @summary Close Access Request + * @param {CloseAccessRequestBeta} closeAccessRequestBeta + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + closeAccessRequest: function (closeAccessRequestBeta, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'closeAccessRequestBeta' is not null or undefined + (0, common_1.assertParamExists)('closeAccessRequest', 'closeAccessRequestBeta', closeAccessRequestBeta); + localVarPath = "/access-requests/close"; + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + localVarHeaderParameter['Content-Type'] = 'application/json'; + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(closeAccessRequestBeta, localVarRequestOptions, configuration); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This submits the access request into IdentityNow, where it will follow any IdentityNow approval processes. Access requests are processed asynchronously by IdentityNow. A success response from this endpoint means the request has been submitted to IDN and is queued for processing. Because this endpoint is asynchronous, it will not return an error if you submit duplicate access requests in quick succession, or you submit an access request for access that is already in progress, approved, or rejected. It is best practice to check for any existing access requests that reference the same access items before submitting a new access request. This can be accomplished by using the [access request status](https://developer.sailpoint.com/idn/api/v3/list-access-request-status) or the [pending access request approvals](https://developer.sailpoint.com/idn/api/v3/list-pending-approvals) endpoints. You can also use the [search API](https://developer.sailpoint.com/idn/api/v3/search) to check the existing access items that an identity has before submitting an access request to ensure you are not requesting access that is already granted. There are two types of access request: __GRANT_ACCESS__ * Can be requested for multiple identities in a single request. * Supports self request and request on behalf of other users. Refer to the [Get Access Request Configuration](https://developer.sailpoint.com/idn/api/v3/get-access-request-config) endpoint for request configuration options. * Allows any authenticated token (except API) to call this endpoint to request to grant access to themselves. Depending on the configuration, a user can request access for others. * Roles, access profiles and entitlements can be requested. * While requesting entitlements, maximum of 25 entitlements and 10 recipients are allowed in a request. __REVOKE_ACCESS__ * Can only be requested for a single identity at a time. * Does not support self request. Only manager can request to revoke access for their directly managed employees. * If a `removeDate` is specified, then the access will be removed on that date and time only for roles and access profiles. Entitlements are currently unsupported for `removeDate`. * Roles, access profiles, and entitlements can be requested for revocation. * Revoke requests for entitlements are limited to 1 entitlement per access request currently. * [Roles, Access Profiles] You can specify a `removeDate` if the access doesn\'t already have a sunset date. The `removeDate` must be a future date, in the UTC timezone. * Allows a manager to request to revoke access for direct employees. A token with ORG_ADMIN authority can also request to revoke access from anyone. >**Note:** There is no indication to the approver in the IdentityNow UI that the approval request is for a revoke action. Take this into consideration when calling this API. A token with API authority cannot be used to call this endpoint. + * @summary Submit an Access Request + * @param {AccessRequestBeta} accessRequestBeta + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + createAccessRequest: function (accessRequestBeta, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'accessRequestBeta' is not null or undefined + (0, common_1.assertParamExists)('createAccessRequest', 'accessRequestBeta', accessRequestBeta); + localVarPath = "/access-requests"; + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + localVarHeaderParameter['Content-Type'] = 'application/json'; + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(accessRequestBeta, localVarRequestOptions, configuration); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This endpoint returns the current access-request configuration. + * @summary Get Access Request Configuration + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getAccessRequestConfig: function (axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + localVarPath = "/access-request-config"; + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * The Access Request Status API returns a list of access request statuses based on the specified query parameters. Any token with any authority can request their own status. A token with ORG_ADMIN authority is required to call this API to get a list of statuses for other users. + * @summary Access Request Status + * @param {string} [requestedFor] Filter the results by the identity for which the requests were made. *me* indicates the current user. Mutually exclusive with *regarding-identity*. + * @param {string} [requestedBy] Filter the results by the identity that made the requests. *me* indicates the current user. Mutually exclusive with *regarding-identity*. + * @param {string} [regardingIdentity] Filter the results by the specified identity which is either the requester or target of the requests. *me* indicates the current user. Mutually exclusive with *requested-for* and *requested-by*. + * @param {string} [assignedTo] Filter the results by the specified identity which is the owner of the Identity Request Work Item. *me* indicates the current user. + * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. + * @param {number} [limit] Max number of results to return. + * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. Defaults to 0 if not specified. + * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **accountActivityItemId**: *eq, in, co, ge, gt, le, lt, ne, isnull, sw* + * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **created, modified, accountActivityItemId, name** + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + listAccessRequestStatus: function (requestedFor, requestedBy, regardingIdentity, assignedTo, count, limit, offset, filters, sorters, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + localVarPath = "/access-request-status"; + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + if (requestedFor !== undefined) { + localVarQueryParameter['requested-for'] = requestedFor; + } + if (requestedBy !== undefined) { + localVarQueryParameter['requested-by'] = requestedBy; + } + if (regardingIdentity !== undefined) { + localVarQueryParameter['regarding-identity'] = regardingIdentity; + } + if (assignedTo !== undefined) { + localVarQueryParameter['assigned-to'] = assignedTo; + } + if (count !== undefined) { + localVarQueryParameter['count'] = count; + } + if (limit !== undefined) { + localVarQueryParameter['limit'] = limit; + } + if (offset !== undefined) { + localVarQueryParameter['offset'] = offset; + } + if (filters !== undefined) { + localVarQueryParameter['filters'] = filters; + } + if (sorters !== undefined) { + localVarQueryParameter['sorters'] = sorters; + } + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This endpoint replaces the current access-request configuration. A token with ORG_ADMIN authority is required to call this API. + * @summary Update Access Request Configuration + * @param {AccessRequestConfigBeta} accessRequestConfigBeta + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + setAccessRequestConfig: function (accessRequestConfigBeta, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'accessRequestConfigBeta' is not null or undefined + (0, common_1.assertParamExists)('setAccessRequestConfig', 'accessRequestConfigBeta', accessRequestConfigBeta); + localVarPath = "/access-request-config"; + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'PUT' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + localVarHeaderParameter['Content-Type'] = 'application/json'; + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(accessRequestConfigBeta, localVarRequestOptions, configuration); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + }; + }; + exports.AccessRequestsBetaApiAxiosParamCreator = AccessRequestsBetaApiAxiosParamCreator; + /** + * AccessRequestsBetaApi - functional programming interface + * @export + */ + var AccessRequestsBetaApiFp = function (configuration) { + var localVarAxiosParamCreator = (0, exports.AccessRequestsBetaApiAxiosParamCreator)(configuration); + return { + /** + * This API endpoint cancels a pending access request. An access request can be cancelled only if it has not passed the approval step. Any token with ORG_ADMIN authority or token of the user who originally requested the access request is required to cancel it. + * @summary Cancel Access Request + * @param {CancelAccessRequestBeta} cancelAccessRequestBeta + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + cancelAccessRequest: function (cancelAccessRequestBeta, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.cancelAccessRequest(cancelAccessRequestBeta, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This endpoint closes access requests that are stuck in a pending state. It can be used throughout a request\'s lifecycle (even after the approval state, unlike Cancel Access Request). A token with ORG_ADMIN authority is required. To find pending access requests via the UI, navigate to Search and use this query: status: Pending AND \"Access Request\". Use the Column Chooser to select \"Tracking Number,\" and the Download button to export a CSV containing the Tracking Numbers. To find pending access requests via the API, use List Account Activities. Input the ids from either source To track the status of endpoint requests, navigate to Search and use this query: name:\"Close Identity Requests\". Search will include \"Close Identity Requests Started\" audits when requests are initiated, and \"Close Identity Requests Completed\" audits when requests are completed. The completion audit will list the Identity Request IDs that finished in error. This API triggers the Provisioning Action Completed event trigger for each access request that is closed. + * @summary Close Access Request + * @param {CloseAccessRequestBeta} closeAccessRequestBeta + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + closeAccessRequest: function (closeAccessRequestBeta, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.closeAccessRequest(closeAccessRequestBeta, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This submits the access request into IdentityNow, where it will follow any IdentityNow approval processes. Access requests are processed asynchronously by IdentityNow. A success response from this endpoint means the request has been submitted to IDN and is queued for processing. Because this endpoint is asynchronous, it will not return an error if you submit duplicate access requests in quick succession, or you submit an access request for access that is already in progress, approved, or rejected. It is best practice to check for any existing access requests that reference the same access items before submitting a new access request. This can be accomplished by using the [access request status](https://developer.sailpoint.com/idn/api/v3/list-access-request-status) or the [pending access request approvals](https://developer.sailpoint.com/idn/api/v3/list-pending-approvals) endpoints. You can also use the [search API](https://developer.sailpoint.com/idn/api/v3/search) to check the existing access items that an identity has before submitting an access request to ensure you are not requesting access that is already granted. There are two types of access request: __GRANT_ACCESS__ * Can be requested for multiple identities in a single request. * Supports self request and request on behalf of other users. Refer to the [Get Access Request Configuration](https://developer.sailpoint.com/idn/api/v3/get-access-request-config) endpoint for request configuration options. * Allows any authenticated token (except API) to call this endpoint to request to grant access to themselves. Depending on the configuration, a user can request access for others. * Roles, access profiles and entitlements can be requested. * While requesting entitlements, maximum of 25 entitlements and 10 recipients are allowed in a request. __REVOKE_ACCESS__ * Can only be requested for a single identity at a time. * Does not support self request. Only manager can request to revoke access for their directly managed employees. * If a `removeDate` is specified, then the access will be removed on that date and time only for roles and access profiles. Entitlements are currently unsupported for `removeDate`. * Roles, access profiles, and entitlements can be requested for revocation. * Revoke requests for entitlements are limited to 1 entitlement per access request currently. * [Roles, Access Profiles] You can specify a `removeDate` if the access doesn\'t already have a sunset date. The `removeDate` must be a future date, in the UTC timezone. * Allows a manager to request to revoke access for direct employees. A token with ORG_ADMIN authority can also request to revoke access from anyone. >**Note:** There is no indication to the approver in the IdentityNow UI that the approval request is for a revoke action. Take this into consideration when calling this API. A token with API authority cannot be used to call this endpoint. + * @summary Submit an Access Request + * @param {AccessRequestBeta} accessRequestBeta + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + createAccessRequest: function (accessRequestBeta, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.createAccessRequest(accessRequestBeta, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This endpoint returns the current access-request configuration. + * @summary Get Access Request Configuration + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getAccessRequestConfig: function (axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.getAccessRequestConfig(axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * The Access Request Status API returns a list of access request statuses based on the specified query parameters. Any token with any authority can request their own status. A token with ORG_ADMIN authority is required to call this API to get a list of statuses for other users. + * @summary Access Request Status + * @param {string} [requestedFor] Filter the results by the identity for which the requests were made. *me* indicates the current user. Mutually exclusive with *regarding-identity*. + * @param {string} [requestedBy] Filter the results by the identity that made the requests. *me* indicates the current user. Mutually exclusive with *regarding-identity*. + * @param {string} [regardingIdentity] Filter the results by the specified identity which is either the requester or target of the requests. *me* indicates the current user. Mutually exclusive with *requested-for* and *requested-by*. + * @param {string} [assignedTo] Filter the results by the specified identity which is the owner of the Identity Request Work Item. *me* indicates the current user. + * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. + * @param {number} [limit] Max number of results to return. + * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. Defaults to 0 if not specified. + * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **accountActivityItemId**: *eq, in, co, ge, gt, le, lt, ne, isnull, sw* + * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **created, modified, accountActivityItemId, name** + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + listAccessRequestStatus: function (requestedFor, requestedBy, regardingIdentity, assignedTo, count, limit, offset, filters, sorters, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.listAccessRequestStatus(requestedFor, requestedBy, regardingIdentity, assignedTo, count, limit, offset, filters, sorters, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This endpoint replaces the current access-request configuration. A token with ORG_ADMIN authority is required to call this API. + * @summary Update Access Request Configuration + * @param {AccessRequestConfigBeta} accessRequestConfigBeta + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + setAccessRequestConfig: function (accessRequestConfigBeta, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.setAccessRequestConfig(accessRequestConfigBeta, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + }; + }; + exports.AccessRequestsBetaApiFp = AccessRequestsBetaApiFp; + /** + * AccessRequestsBetaApi - factory interface + * @export + */ + var AccessRequestsBetaApiFactory = function (configuration, basePath, axios) { + var localVarFp = (0, exports.AccessRequestsBetaApiFp)(configuration); + return { + /** + * This API endpoint cancels a pending access request. An access request can be cancelled only if it has not passed the approval step. Any token with ORG_ADMIN authority or token of the user who originally requested the access request is required to cancel it. + * @summary Cancel Access Request + * @param {CancelAccessRequestBeta} cancelAccessRequestBeta + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + cancelAccessRequest: function (cancelAccessRequestBeta, axiosOptions) { + return localVarFp.cancelAccessRequest(cancelAccessRequestBeta, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This endpoint closes access requests that are stuck in a pending state. It can be used throughout a request\'s lifecycle (even after the approval state, unlike Cancel Access Request). A token with ORG_ADMIN authority is required. To find pending access requests via the UI, navigate to Search and use this query: status: Pending AND \"Access Request\". Use the Column Chooser to select \"Tracking Number,\" and the Download button to export a CSV containing the Tracking Numbers. To find pending access requests via the API, use List Account Activities. Input the ids from either source To track the status of endpoint requests, navigate to Search and use this query: name:\"Close Identity Requests\". Search will include \"Close Identity Requests Started\" audits when requests are initiated, and \"Close Identity Requests Completed\" audits when requests are completed. The completion audit will list the Identity Request IDs that finished in error. This API triggers the Provisioning Action Completed event trigger for each access request that is closed. + * @summary Close Access Request + * @param {CloseAccessRequestBeta} closeAccessRequestBeta + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + closeAccessRequest: function (closeAccessRequestBeta, axiosOptions) { + return localVarFp.closeAccessRequest(closeAccessRequestBeta, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This submits the access request into IdentityNow, where it will follow any IdentityNow approval processes. Access requests are processed asynchronously by IdentityNow. A success response from this endpoint means the request has been submitted to IDN and is queued for processing. Because this endpoint is asynchronous, it will not return an error if you submit duplicate access requests in quick succession, or you submit an access request for access that is already in progress, approved, or rejected. It is best practice to check for any existing access requests that reference the same access items before submitting a new access request. This can be accomplished by using the [access request status](https://developer.sailpoint.com/idn/api/v3/list-access-request-status) or the [pending access request approvals](https://developer.sailpoint.com/idn/api/v3/list-pending-approvals) endpoints. You can also use the [search API](https://developer.sailpoint.com/idn/api/v3/search) to check the existing access items that an identity has before submitting an access request to ensure you are not requesting access that is already granted. There are two types of access request: __GRANT_ACCESS__ * Can be requested for multiple identities in a single request. * Supports self request and request on behalf of other users. Refer to the [Get Access Request Configuration](https://developer.sailpoint.com/idn/api/v3/get-access-request-config) endpoint for request configuration options. * Allows any authenticated token (except API) to call this endpoint to request to grant access to themselves. Depending on the configuration, a user can request access for others. * Roles, access profiles and entitlements can be requested. * While requesting entitlements, maximum of 25 entitlements and 10 recipients are allowed in a request. __REVOKE_ACCESS__ * Can only be requested for a single identity at a time. * Does not support self request. Only manager can request to revoke access for their directly managed employees. * If a `removeDate` is specified, then the access will be removed on that date and time only for roles and access profiles. Entitlements are currently unsupported for `removeDate`. * Roles, access profiles, and entitlements can be requested for revocation. * Revoke requests for entitlements are limited to 1 entitlement per access request currently. * [Roles, Access Profiles] You can specify a `removeDate` if the access doesn\'t already have a sunset date. The `removeDate` must be a future date, in the UTC timezone. * Allows a manager to request to revoke access for direct employees. A token with ORG_ADMIN authority can also request to revoke access from anyone. >**Note:** There is no indication to the approver in the IdentityNow UI that the approval request is for a revoke action. Take this into consideration when calling this API. A token with API authority cannot be used to call this endpoint. + * @summary Submit an Access Request + * @param {AccessRequestBeta} accessRequestBeta + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + createAccessRequest: function (accessRequestBeta, axiosOptions) { + return localVarFp.createAccessRequest(accessRequestBeta, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This endpoint returns the current access-request configuration. + * @summary Get Access Request Configuration + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getAccessRequestConfig: function (axiosOptions) { + return localVarFp.getAccessRequestConfig(axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * The Access Request Status API returns a list of access request statuses based on the specified query parameters. Any token with any authority can request their own status. A token with ORG_ADMIN authority is required to call this API to get a list of statuses for other users. + * @summary Access Request Status + * @param {string} [requestedFor] Filter the results by the identity for which the requests were made. *me* indicates the current user. Mutually exclusive with *regarding-identity*. + * @param {string} [requestedBy] Filter the results by the identity that made the requests. *me* indicates the current user. Mutually exclusive with *regarding-identity*. + * @param {string} [regardingIdentity] Filter the results by the specified identity which is either the requester or target of the requests. *me* indicates the current user. Mutually exclusive with *requested-for* and *requested-by*. + * @param {string} [assignedTo] Filter the results by the specified identity which is the owner of the Identity Request Work Item. *me* indicates the current user. + * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. + * @param {number} [limit] Max number of results to return. + * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. Defaults to 0 if not specified. + * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **accountActivityItemId**: *eq, in, co, ge, gt, le, lt, ne, isnull, sw* + * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **created, modified, accountActivityItemId, name** + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + listAccessRequestStatus: function (requestedFor, requestedBy, regardingIdentity, assignedTo, count, limit, offset, filters, sorters, axiosOptions) { + return localVarFp.listAccessRequestStatus(requestedFor, requestedBy, regardingIdentity, assignedTo, count, limit, offset, filters, sorters, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This endpoint replaces the current access-request configuration. A token with ORG_ADMIN authority is required to call this API. + * @summary Update Access Request Configuration + * @param {AccessRequestConfigBeta} accessRequestConfigBeta + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + setAccessRequestConfig: function (accessRequestConfigBeta, axiosOptions) { + return localVarFp.setAccessRequestConfig(accessRequestConfigBeta, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + }; + }; + exports.AccessRequestsBetaApiFactory = AccessRequestsBetaApiFactory; + /** + * AccessRequestsBetaApi - object-oriented interface + * @export + * @class AccessRequestsBetaApi + * @extends {BaseAPI} + */ + var AccessRequestsBetaApi = /** @class */ (function (_super) { + __extends(AccessRequestsBetaApi, _super); + function AccessRequestsBetaApi() { + return _super !== null && _super.apply(this, arguments) || this; + } + /** + * This API endpoint cancels a pending access request. An access request can be cancelled only if it has not passed the approval step. Any token with ORG_ADMIN authority or token of the user who originally requested the access request is required to cancel it. + * @summary Cancel Access Request + * @param {AccessRequestsBetaApiCancelAccessRequestRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof AccessRequestsBetaApi + */ + AccessRequestsBetaApi.prototype.cancelAccessRequest = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.AccessRequestsBetaApiFp)(this.configuration).cancelAccessRequest(requestParameters.cancelAccessRequestBeta, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This endpoint closes access requests that are stuck in a pending state. It can be used throughout a request\'s lifecycle (even after the approval state, unlike Cancel Access Request). A token with ORG_ADMIN authority is required. To find pending access requests via the UI, navigate to Search and use this query: status: Pending AND \"Access Request\". Use the Column Chooser to select \"Tracking Number,\" and the Download button to export a CSV containing the Tracking Numbers. To find pending access requests via the API, use List Account Activities. Input the ids from either source To track the status of endpoint requests, navigate to Search and use this query: name:\"Close Identity Requests\". Search will include \"Close Identity Requests Started\" audits when requests are initiated, and \"Close Identity Requests Completed\" audits when requests are completed. The completion audit will list the Identity Request IDs that finished in error. This API triggers the Provisioning Action Completed event trigger for each access request that is closed. + * @summary Close Access Request + * @param {AccessRequestsBetaApiCloseAccessRequestRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof AccessRequestsBetaApi + */ + AccessRequestsBetaApi.prototype.closeAccessRequest = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.AccessRequestsBetaApiFp)(this.configuration).closeAccessRequest(requestParameters.closeAccessRequestBeta, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This submits the access request into IdentityNow, where it will follow any IdentityNow approval processes. Access requests are processed asynchronously by IdentityNow. A success response from this endpoint means the request has been submitted to IDN and is queued for processing. Because this endpoint is asynchronous, it will not return an error if you submit duplicate access requests in quick succession, or you submit an access request for access that is already in progress, approved, or rejected. It is best practice to check for any existing access requests that reference the same access items before submitting a new access request. This can be accomplished by using the [access request status](https://developer.sailpoint.com/idn/api/v3/list-access-request-status) or the [pending access request approvals](https://developer.sailpoint.com/idn/api/v3/list-pending-approvals) endpoints. You can also use the [search API](https://developer.sailpoint.com/idn/api/v3/search) to check the existing access items that an identity has before submitting an access request to ensure you are not requesting access that is already granted. There are two types of access request: __GRANT_ACCESS__ * Can be requested for multiple identities in a single request. * Supports self request and request on behalf of other users. Refer to the [Get Access Request Configuration](https://developer.sailpoint.com/idn/api/v3/get-access-request-config) endpoint for request configuration options. * Allows any authenticated token (except API) to call this endpoint to request to grant access to themselves. Depending on the configuration, a user can request access for others. * Roles, access profiles and entitlements can be requested. * While requesting entitlements, maximum of 25 entitlements and 10 recipients are allowed in a request. __REVOKE_ACCESS__ * Can only be requested for a single identity at a time. * Does not support self request. Only manager can request to revoke access for their directly managed employees. * If a `removeDate` is specified, then the access will be removed on that date and time only for roles and access profiles. Entitlements are currently unsupported for `removeDate`. * Roles, access profiles, and entitlements can be requested for revocation. * Revoke requests for entitlements are limited to 1 entitlement per access request currently. * [Roles, Access Profiles] You can specify a `removeDate` if the access doesn\'t already have a sunset date. The `removeDate` must be a future date, in the UTC timezone. * Allows a manager to request to revoke access for direct employees. A token with ORG_ADMIN authority can also request to revoke access from anyone. >**Note:** There is no indication to the approver in the IdentityNow UI that the approval request is for a revoke action. Take this into consideration when calling this API. A token with API authority cannot be used to call this endpoint. + * @summary Submit an Access Request + * @param {AccessRequestsBetaApiCreateAccessRequestRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof AccessRequestsBetaApi + */ + AccessRequestsBetaApi.prototype.createAccessRequest = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.AccessRequestsBetaApiFp)(this.configuration).createAccessRequest(requestParameters.accessRequestBeta, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This endpoint returns the current access-request configuration. + * @summary Get Access Request Configuration + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof AccessRequestsBetaApi + */ + AccessRequestsBetaApi.prototype.getAccessRequestConfig = function (axiosOptions) { + var _this = this; + return (0, exports.AccessRequestsBetaApiFp)(this.configuration).getAccessRequestConfig(axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * The Access Request Status API returns a list of access request statuses based on the specified query parameters. Any token with any authority can request their own status. A token with ORG_ADMIN authority is required to call this API to get a list of statuses for other users. + * @summary Access Request Status + * @param {AccessRequestsBetaApiListAccessRequestStatusRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof AccessRequestsBetaApi + */ + AccessRequestsBetaApi.prototype.listAccessRequestStatus = function (requestParameters, axiosOptions) { + var _this = this; + if (requestParameters === void 0) { requestParameters = {}; } + return (0, exports.AccessRequestsBetaApiFp)(this.configuration).listAccessRequestStatus(requestParameters.requestedFor, requestParameters.requestedBy, requestParameters.regardingIdentity, requestParameters.assignedTo, requestParameters.count, requestParameters.limit, requestParameters.offset, requestParameters.filters, requestParameters.sorters, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This endpoint replaces the current access-request configuration. A token with ORG_ADMIN authority is required to call this API. + * @summary Update Access Request Configuration + * @param {AccessRequestsBetaApiSetAccessRequestConfigRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof AccessRequestsBetaApi + */ + AccessRequestsBetaApi.prototype.setAccessRequestConfig = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.AccessRequestsBetaApiFp)(this.configuration).setAccessRequestConfig(requestParameters.accessRequestConfigBeta, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + return AccessRequestsBetaApi; + }(base_1.BaseAPI)); + exports.AccessRequestsBetaApi = AccessRequestsBetaApi; + /** + * AccountActivitiesBetaApi - axios parameter creator + * @export + */ + var AccountActivitiesBetaApiAxiosParamCreator = function (configuration) { + var _this = this; + return { + /** + * This gets a single account activity by its id. + * @summary Get Account Activity + * @param {string} id The account activity id + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getAccountActivity: function (id, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'id' is not null or undefined + (0, common_1.assertParamExists)('getAccountActivity', 'id', id); + localVarPath = "/account-activities/{id}" + .replace("{".concat("id", "}"), encodeURIComponent(String(id))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This gets a collection of account activities that satisfy the given query parameters. + * @summary List Account Activities + * @param {string} [requestedFor] The identity that the activity was requested for. *me* indicates the current user. Mutually exclusive with *regarding-identity*. + * @param {string} [requestedBy] The identity that requested the activity. *me* indicates the current user. Mutually exclusive with *regarding-identity*. + * @param {string} [regardingIdentity] The specified identity will be either the requester or target of the account activity. *me* indicates the current user. Mutually exclusive with *requested-for* and *requested-by*. + * @param {string} [type] The type of account activity. + * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **type**: *eq, in, co, ge, gt, le, lt, ne, isnull, sw* **created**: *gt, lt, ge, le, co, eq, in, ne, isnull, sw* **modified**: *gt, lt, ge, le, co, eq, in, ne, isnull, sw* + * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **type, created, modified** + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + listAccountActivities: function (requestedFor, requestedBy, regardingIdentity, type, limit, offset, count, filters, sorters, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + localVarPath = "/account-activities"; + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + if (requestedFor !== undefined) { + localVarQueryParameter['requested-for'] = requestedFor; + } + if (requestedBy !== undefined) { + localVarQueryParameter['requested-by'] = requestedBy; + } + if (regardingIdentity !== undefined) { + localVarQueryParameter['regarding-identity'] = regardingIdentity; + } + if (type !== undefined) { + localVarQueryParameter['type'] = type; + } + if (limit !== undefined) { + localVarQueryParameter['limit'] = limit; + } + if (offset !== undefined) { + localVarQueryParameter['offset'] = offset; + } + if (count !== undefined) { + localVarQueryParameter['count'] = count; + } + if (filters !== undefined) { + localVarQueryParameter['filters'] = filters; + } + if (sorters !== undefined) { + localVarQueryParameter['sorters'] = sorters; + } + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + }; + }; + exports.AccountActivitiesBetaApiAxiosParamCreator = AccountActivitiesBetaApiAxiosParamCreator; + /** + * AccountActivitiesBetaApi - functional programming interface + * @export + */ + var AccountActivitiesBetaApiFp = function (configuration) { + var localVarAxiosParamCreator = (0, exports.AccountActivitiesBetaApiAxiosParamCreator)(configuration); + return { + /** + * This gets a single account activity by its id. + * @summary Get Account Activity + * @param {string} id The account activity id + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getAccountActivity: function (id, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.getAccountActivity(id, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This gets a collection of account activities that satisfy the given query parameters. + * @summary List Account Activities + * @param {string} [requestedFor] The identity that the activity was requested for. *me* indicates the current user. Mutually exclusive with *regarding-identity*. + * @param {string} [requestedBy] The identity that requested the activity. *me* indicates the current user. Mutually exclusive with *regarding-identity*. + * @param {string} [regardingIdentity] The specified identity will be either the requester or target of the account activity. *me* indicates the current user. Mutually exclusive with *requested-for* and *requested-by*. + * @param {string} [type] The type of account activity. + * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **type**: *eq, in, co, ge, gt, le, lt, ne, isnull, sw* **created**: *gt, lt, ge, le, co, eq, in, ne, isnull, sw* **modified**: *gt, lt, ge, le, co, eq, in, ne, isnull, sw* + * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **type, created, modified** + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + listAccountActivities: function (requestedFor, requestedBy, regardingIdentity, type, limit, offset, count, filters, sorters, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.listAccountActivities(requestedFor, requestedBy, regardingIdentity, type, limit, offset, count, filters, sorters, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + }; + }; + exports.AccountActivitiesBetaApiFp = AccountActivitiesBetaApiFp; + /** + * AccountActivitiesBetaApi - factory interface + * @export + */ + var AccountActivitiesBetaApiFactory = function (configuration, basePath, axios) { + var localVarFp = (0, exports.AccountActivitiesBetaApiFp)(configuration); + return { + /** + * This gets a single account activity by its id. + * @summary Get Account Activity + * @param {string} id The account activity id + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getAccountActivity: function (id, axiosOptions) { + return localVarFp.getAccountActivity(id, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This gets a collection of account activities that satisfy the given query parameters. + * @summary List Account Activities + * @param {string} [requestedFor] The identity that the activity was requested for. *me* indicates the current user. Mutually exclusive with *regarding-identity*. + * @param {string} [requestedBy] The identity that requested the activity. *me* indicates the current user. Mutually exclusive with *regarding-identity*. + * @param {string} [regardingIdentity] The specified identity will be either the requester or target of the account activity. *me* indicates the current user. Mutually exclusive with *requested-for* and *requested-by*. + * @param {string} [type] The type of account activity. + * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **type**: *eq, in, co, ge, gt, le, lt, ne, isnull, sw* **created**: *gt, lt, ge, le, co, eq, in, ne, isnull, sw* **modified**: *gt, lt, ge, le, co, eq, in, ne, isnull, sw* + * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **type, created, modified** + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + listAccountActivities: function (requestedFor, requestedBy, regardingIdentity, type, limit, offset, count, filters, sorters, axiosOptions) { + return localVarFp.listAccountActivities(requestedFor, requestedBy, regardingIdentity, type, limit, offset, count, filters, sorters, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + }; + }; + exports.AccountActivitiesBetaApiFactory = AccountActivitiesBetaApiFactory; + /** + * AccountActivitiesBetaApi - object-oriented interface + * @export + * @class AccountActivitiesBetaApi + * @extends {BaseAPI} + */ + var AccountActivitiesBetaApi = /** @class */ (function (_super) { + __extends(AccountActivitiesBetaApi, _super); + function AccountActivitiesBetaApi() { + return _super !== null && _super.apply(this, arguments) || this; + } + /** + * This gets a single account activity by its id. + * @summary Get Account Activity + * @param {AccountActivitiesBetaApiGetAccountActivityRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof AccountActivitiesBetaApi + */ + AccountActivitiesBetaApi.prototype.getAccountActivity = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.AccountActivitiesBetaApiFp)(this.configuration).getAccountActivity(requestParameters.id, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This gets a collection of account activities that satisfy the given query parameters. + * @summary List Account Activities + * @param {AccountActivitiesBetaApiListAccountActivitiesRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof AccountActivitiesBetaApi + */ + AccountActivitiesBetaApi.prototype.listAccountActivities = function (requestParameters, axiosOptions) { + var _this = this; + if (requestParameters === void 0) { requestParameters = {}; } + return (0, exports.AccountActivitiesBetaApiFp)(this.configuration).listAccountActivities(requestParameters.requestedFor, requestParameters.requestedBy, requestParameters.regardingIdentity, requestParameters.type, requestParameters.limit, requestParameters.offset, requestParameters.count, requestParameters.filters, requestParameters.sorters, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + return AccountActivitiesBetaApi; + }(base_1.BaseAPI)); + exports.AccountActivitiesBetaApi = AccountActivitiesBetaApi; + /** + * AccountAggregationsBetaApi - axios parameter creator + * @export + */ + var AccountAggregationsBetaApiAxiosParamCreator = function (configuration) { + var _this = this; + return { + /** + * This API returns the status of an *in-progress* account aggregation, along with the total number of **NEW**, **CHANGED** and **DELETED** accounts found since the previous aggregation, and the number of those accounts that have been processed so far. Accounts that have not changed since the previous aggregation are not included in **totalAccounts** and **processedAccounts** counts returned by this API. This is distinct from **Accounts Scanned** shown in the Aggregation UI, which indicates total accounts scanned regardless of whether they changed or not. Since this endpoint reports on the status of an *in-progress* account aggregation, totalAccounts and processedAccounts may change between calls to this endpoint. *Only available up to an hour after the aggregation completes. May respond with *404 Not Found* after that.* A token with ORG_ADMIN, SOURCE_ADMIN, SOURCE_SUBADMIN or DASHBOARD authority is required to call this API. + * @summary In-progress Account Aggregation status + * @param {string} id The account aggregation id + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getAccountAggregationStatus: function (id, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'id' is not null or undefined + (0, common_1.assertParamExists)('getAccountAggregationStatus', 'id', id); + localVarPath = "/account-aggregations/{id}/status" + .replace("{".concat("id", "}"), encodeURIComponent(String(id))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + }; + }; + exports.AccountAggregationsBetaApiAxiosParamCreator = AccountAggregationsBetaApiAxiosParamCreator; + /** + * AccountAggregationsBetaApi - functional programming interface + * @export + */ + var AccountAggregationsBetaApiFp = function (configuration) { + var localVarAxiosParamCreator = (0, exports.AccountAggregationsBetaApiAxiosParamCreator)(configuration); + return { + /** + * This API returns the status of an *in-progress* account aggregation, along with the total number of **NEW**, **CHANGED** and **DELETED** accounts found since the previous aggregation, and the number of those accounts that have been processed so far. Accounts that have not changed since the previous aggregation are not included in **totalAccounts** and **processedAccounts** counts returned by this API. This is distinct from **Accounts Scanned** shown in the Aggregation UI, which indicates total accounts scanned regardless of whether they changed or not. Since this endpoint reports on the status of an *in-progress* account aggregation, totalAccounts and processedAccounts may change between calls to this endpoint. *Only available up to an hour after the aggregation completes. May respond with *404 Not Found* after that.* A token with ORG_ADMIN, SOURCE_ADMIN, SOURCE_SUBADMIN or DASHBOARD authority is required to call this API. + * @summary In-progress Account Aggregation status + * @param {string} id The account aggregation id + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getAccountAggregationStatus: function (id, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.getAccountAggregationStatus(id, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + }; + }; + exports.AccountAggregationsBetaApiFp = AccountAggregationsBetaApiFp; + /** + * AccountAggregationsBetaApi - factory interface + * @export + */ + var AccountAggregationsBetaApiFactory = function (configuration, basePath, axios) { + var localVarFp = (0, exports.AccountAggregationsBetaApiFp)(configuration); + return { + /** + * This API returns the status of an *in-progress* account aggregation, along with the total number of **NEW**, **CHANGED** and **DELETED** accounts found since the previous aggregation, and the number of those accounts that have been processed so far. Accounts that have not changed since the previous aggregation are not included in **totalAccounts** and **processedAccounts** counts returned by this API. This is distinct from **Accounts Scanned** shown in the Aggregation UI, which indicates total accounts scanned regardless of whether they changed or not. Since this endpoint reports on the status of an *in-progress* account aggregation, totalAccounts and processedAccounts may change between calls to this endpoint. *Only available up to an hour after the aggregation completes. May respond with *404 Not Found* after that.* A token with ORG_ADMIN, SOURCE_ADMIN, SOURCE_SUBADMIN or DASHBOARD authority is required to call this API. + * @summary In-progress Account Aggregation status + * @param {string} id The account aggregation id + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getAccountAggregationStatus: function (id, axiosOptions) { + return localVarFp.getAccountAggregationStatus(id, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + }; + }; + exports.AccountAggregationsBetaApiFactory = AccountAggregationsBetaApiFactory; + /** + * AccountAggregationsBetaApi - object-oriented interface + * @export + * @class AccountAggregationsBetaApi + * @extends {BaseAPI} + */ + var AccountAggregationsBetaApi = /** @class */ (function (_super) { + __extends(AccountAggregationsBetaApi, _super); + function AccountAggregationsBetaApi() { + return _super !== null && _super.apply(this, arguments) || this; + } + /** + * This API returns the status of an *in-progress* account aggregation, along with the total number of **NEW**, **CHANGED** and **DELETED** accounts found since the previous aggregation, and the number of those accounts that have been processed so far. Accounts that have not changed since the previous aggregation are not included in **totalAccounts** and **processedAccounts** counts returned by this API. This is distinct from **Accounts Scanned** shown in the Aggregation UI, which indicates total accounts scanned regardless of whether they changed or not. Since this endpoint reports on the status of an *in-progress* account aggregation, totalAccounts and processedAccounts may change between calls to this endpoint. *Only available up to an hour after the aggregation completes. May respond with *404 Not Found* after that.* A token with ORG_ADMIN, SOURCE_ADMIN, SOURCE_SUBADMIN or DASHBOARD authority is required to call this API. + * @summary In-progress Account Aggregation status + * @param {AccountAggregationsBetaApiGetAccountAggregationStatusRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof AccountAggregationsBetaApi + */ + AccountAggregationsBetaApi.prototype.getAccountAggregationStatus = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.AccountAggregationsBetaApiFp)(this.configuration).getAccountAggregationStatus(requestParameters.id, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + return AccountAggregationsBetaApi; + }(base_1.BaseAPI)); + exports.AccountAggregationsBetaApi = AccountAggregationsBetaApi; + /** + * AccountUsagesBetaApi - axios parameter creator + * @export + */ + var AccountUsagesBetaApiAxiosParamCreator = function (configuration) { + var _this = this; + return { + /** + * This API returns a summary of account usage insights for past 12 months. + * @summary Returns account usage insights + * @param {string} accountId ID of IDN account + * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **date** + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getUsagesByAccountId: function (accountId, limit, offset, count, sorters, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'accountId' is not null or undefined + (0, common_1.assertParamExists)('getUsagesByAccountId', 'accountId', accountId); + localVarPath = "/account-usages/{accountId}/summaries" + .replace("{".concat("accountId", "}"), encodeURIComponent(String(accountId))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + if (limit !== undefined) { + localVarQueryParameter['limit'] = limit; + } + if (offset !== undefined) { + localVarQueryParameter['offset'] = offset; + } + if (count !== undefined) { + localVarQueryParameter['count'] = count; + } + if (sorters !== undefined) { + localVarQueryParameter['sorters'] = sorters; + } + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + }; + }; + exports.AccountUsagesBetaApiAxiosParamCreator = AccountUsagesBetaApiAxiosParamCreator; + /** + * AccountUsagesBetaApi - functional programming interface + * @export + */ + var AccountUsagesBetaApiFp = function (configuration) { + var localVarAxiosParamCreator = (0, exports.AccountUsagesBetaApiAxiosParamCreator)(configuration); + return { + /** + * This API returns a summary of account usage insights for past 12 months. + * @summary Returns account usage insights + * @param {string} accountId ID of IDN account + * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **date** + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getUsagesByAccountId: function (accountId, limit, offset, count, sorters, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.getUsagesByAccountId(accountId, limit, offset, count, sorters, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + }; + }; + exports.AccountUsagesBetaApiFp = AccountUsagesBetaApiFp; + /** + * AccountUsagesBetaApi - factory interface + * @export + */ + var AccountUsagesBetaApiFactory = function (configuration, basePath, axios) { + var localVarFp = (0, exports.AccountUsagesBetaApiFp)(configuration); + return { + /** + * This API returns a summary of account usage insights for past 12 months. + * @summary Returns account usage insights + * @param {string} accountId ID of IDN account + * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **date** + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getUsagesByAccountId: function (accountId, limit, offset, count, sorters, axiosOptions) { + return localVarFp.getUsagesByAccountId(accountId, limit, offset, count, sorters, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + }; + }; + exports.AccountUsagesBetaApiFactory = AccountUsagesBetaApiFactory; + /** + * AccountUsagesBetaApi - object-oriented interface + * @export + * @class AccountUsagesBetaApi + * @extends {BaseAPI} + */ + var AccountUsagesBetaApi = /** @class */ (function (_super) { + __extends(AccountUsagesBetaApi, _super); + function AccountUsagesBetaApi() { + return _super !== null && _super.apply(this, arguments) || this; + } + /** + * This API returns a summary of account usage insights for past 12 months. + * @summary Returns account usage insights + * @param {AccountUsagesBetaApiGetUsagesByAccountIdRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof AccountUsagesBetaApi + */ + AccountUsagesBetaApi.prototype.getUsagesByAccountId = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.AccountUsagesBetaApiFp)(this.configuration).getUsagesByAccountId(requestParameters.accountId, requestParameters.limit, requestParameters.offset, requestParameters.count, requestParameters.sorters, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + return AccountUsagesBetaApi; + }(base_1.BaseAPI)); + exports.AccountUsagesBetaApi = AccountUsagesBetaApi; + /** + * AccountsBetaApi - axios parameter creator + * @export + */ + var AccountsBetaApiAxiosParamCreator = function (configuration) { + var _this = this; + return { + /** + * This API submits an account creation task and returns the task ID. The `sourceId` where this account will be created must be included in the `attributes` object. A token with ORG_ADMIN authority is required to call this API. + * @summary Create Account + * @param {AccountAttributesCreateBeta} accountAttributesCreateBeta + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + createAccount: function (accountAttributesCreateBeta, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'accountAttributesCreateBeta' is not null or undefined + (0, common_1.assertParamExists)('createAccount', 'accountAttributesCreateBeta', accountAttributesCreateBeta); + localVarPath = "/accounts"; + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + localVarHeaderParameter['Content-Type'] = 'application/json'; + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(accountAttributesCreateBeta, localVarRequestOptions, configuration); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This API submits an account delete task and returns the task ID. A token with ORG_ADMIN authority is required to call this API. + * @summary Delete Account + * @param {string} id The account ID + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + deleteAccount: function (id, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'id' is not null or undefined + (0, common_1.assertParamExists)('deleteAccount', 'id', id); + localVarPath = "/accounts/{id}" + .replace("{".concat("id", "}"), encodeURIComponent(String(id))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'DELETE' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This API submits a task to disable the account and returns the task ID. A token with ORG_ADMIN authority is required to call this API. + * @summary Disable Account + * @param {string} id The account id + * @param {AccountToggleRequestBeta} accountToggleRequestBeta + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + disableAccount: function (id, accountToggleRequestBeta, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'id' is not null or undefined + (0, common_1.assertParamExists)('disableAccount', 'id', id); + // verify required parameter 'accountToggleRequestBeta' is not null or undefined + (0, common_1.assertParamExists)('disableAccount', 'accountToggleRequestBeta', accountToggleRequestBeta); + localVarPath = "/accounts/{id}/disable" + .replace("{".concat("id", "}"), encodeURIComponent(String(id))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + localVarHeaderParameter['Content-Type'] = 'application/json'; + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(accountToggleRequestBeta, localVarRequestOptions, configuration); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This API submits a task to disable IDN account for a single identity. + * @summary Disable IDN Account for Identity + * @param {string} id The identity id. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + disableAccountForIdentity: function (id, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'id' is not null or undefined + (0, common_1.assertParamExists)('disableAccountForIdentity', 'id', id); + localVarPath = "/identities-accounts/{id}/disable" + .replace("{".concat("id", "}"), encodeURIComponent(String(id))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This API submits tasks to disable IDN account for each identity provided in the request body. + * @summary Disable IDN Accounts for Identities + * @param {IdentitiesAccountsBulkRequestBeta} identitiesAccountsBulkRequestBeta + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + disableAccountsForIdentities: function (identitiesAccountsBulkRequestBeta, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'identitiesAccountsBulkRequestBeta' is not null or undefined + (0, common_1.assertParamExists)('disableAccountsForIdentities', 'identitiesAccountsBulkRequestBeta', identitiesAccountsBulkRequestBeta); + localVarPath = "/identities-accounts/disable"; + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + localVarHeaderParameter['Content-Type'] = 'application/json'; + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(identitiesAccountsBulkRequestBeta, localVarRequestOptions, configuration); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This API submits a task to enable account and returns the task ID. A token with ORG_ADMIN authority is required to call this API. + * @summary Enable Account + * @param {string} id The account id + * @param {AccountToggleRequestBeta} accountToggleRequestBeta + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + enableAccount: function (id, accountToggleRequestBeta, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'id' is not null or undefined + (0, common_1.assertParamExists)('enableAccount', 'id', id); + // verify required parameter 'accountToggleRequestBeta' is not null or undefined + (0, common_1.assertParamExists)('enableAccount', 'accountToggleRequestBeta', accountToggleRequestBeta); + localVarPath = "/accounts/{id}/enable" + .replace("{".concat("id", "}"), encodeURIComponent(String(id))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + localVarHeaderParameter['Content-Type'] = 'application/json'; + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(accountToggleRequestBeta, localVarRequestOptions, configuration); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This API submits a task to enable IDN account for a single identity. + * @summary Enable IDN Account for Identity + * @param {string} id The identity id. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + enableAccountForIdentity: function (id, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'id' is not null or undefined + (0, common_1.assertParamExists)('enableAccountForIdentity', 'id', id); + localVarPath = "/identities-accounts/{id}/enable" + .replace("{".concat("id", "}"), encodeURIComponent(String(id))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This API submits tasks to enable IDN account for each identity provided in the request body. + * @summary Enable IDN Accounts for Identities + * @param {IdentitiesAccountsBulkRequestBeta} identitiesAccountsBulkRequestBeta + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + enableAccountsForIdentities: function (identitiesAccountsBulkRequestBeta, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'identitiesAccountsBulkRequestBeta' is not null or undefined + (0, common_1.assertParamExists)('enableAccountsForIdentities', 'identitiesAccountsBulkRequestBeta', identitiesAccountsBulkRequestBeta); + localVarPath = "/identities-accounts/enable"; + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + localVarHeaderParameter['Content-Type'] = 'application/json'; + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(identitiesAccountsBulkRequestBeta, localVarRequestOptions, configuration); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This API returns the details for a single account based on the ID. A token with ORG_ADMIN authority is required to call this API. + * @summary Account Details + * @param {string} id The account ID + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getAccount: function (id, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'id' is not null or undefined + (0, common_1.assertParamExists)('getAccount', 'id', id); + localVarPath = "/accounts/{id}" + .replace("{".concat("id", "}"), encodeURIComponent(String(id))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This API returns entitlements of the account. A token with ORG_ADMIN authority is required to call this API. + * @summary Account Entitlements + * @param {string} id The account id + * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getAccountEntitlements: function (id, offset, limit, count, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'id' is not null or undefined + (0, common_1.assertParamExists)('getAccountEntitlements', 'id', id); + localVarPath = "/accounts/{id}/entitlements" + .replace("{".concat("id", "}"), encodeURIComponent(String(id))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + if (offset !== undefined) { + localVarQueryParameter['offset'] = offset; + } + if (limit !== undefined) { + localVarQueryParameter['limit'] = limit; + } + if (count !== undefined) { + localVarQueryParameter['count'] = count; + } + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This returns a list of accounts. A token with ORG_ADMIN authority is required to call this API. + * @summary Accounts List + * @param {'SLIM' | 'FULL'} [detailLevel] Determines whether Slim, or increased level of detail is provided for each account in the returned list. FULL is the default behavior. + * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **id**: *eq, in* **identityId**: *eq* **name**: *eq, in* **nativeIdentity**: *eq, in* **sourceId**: *eq, in* **uncorrelated**: *eq* + * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **id, name, created, modified** + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + listAccounts: function (detailLevel, limit, offset, count, filters, sorters, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + localVarPath = "/accounts"; + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + if (detailLevel !== undefined) { + localVarQueryParameter['detailLevel'] = detailLevel; + } + if (limit !== undefined) { + localVarQueryParameter['limit'] = limit; + } + if (offset !== undefined) { + localVarQueryParameter['offset'] = offset; + } + if (count !== undefined) { + localVarQueryParameter['count'] = count; + } + if (filters !== undefined) { + localVarQueryParameter['filters'] = filters; + } + if (sorters !== undefined) { + localVarQueryParameter['sorters'] = sorters; + } + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This API submits an account update task and returns the task ID. A token with ORG_ADMIN authority is required to call this API. + * @summary Update Account + * @param {string} id The account ID + * @param {AccountAttributesBeta} accountAttributesBeta + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + putAccount: function (id, accountAttributesBeta, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'id' is not null or undefined + (0, common_1.assertParamExists)('putAccount', 'id', id); + // verify required parameter 'accountAttributesBeta' is not null or undefined + (0, common_1.assertParamExists)('putAccount', 'accountAttributesBeta', accountAttributesBeta); + localVarPath = "/accounts/{id}" + .replace("{".concat("id", "}"), encodeURIComponent(String(id))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'PUT' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + localVarHeaderParameter['Content-Type'] = 'application/json'; + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(accountAttributesBeta, localVarRequestOptions, configuration); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This API asynchronously reloads the account directly from the connector and performs a one-time aggregation process. A token with ORG_ADMIN authority is required to call this API. + * @summary Reload Account + * @param {string} id The account id + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + reloadAccount: function (id, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'id' is not null or undefined + (0, common_1.assertParamExists)('reloadAccount', 'id', id); + localVarPath = "/accounts/{id}/reload" + .replace("{".concat("id", "}"), encodeURIComponent(String(id))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This API submits a task to unlock an account and returns the task ID. A token with ORG_ADMIN authority is required to call this API. + * @summary Unlock Account + * @param {string} id The account id + * @param {AccountUnlockRequestBeta} accountUnlockRequestBeta + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + unlockAccount: function (id, accountUnlockRequestBeta, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'id' is not null or undefined + (0, common_1.assertParamExists)('unlockAccount', 'id', id); + // verify required parameter 'accountUnlockRequestBeta' is not null or undefined + (0, common_1.assertParamExists)('unlockAccount', 'accountUnlockRequestBeta', accountUnlockRequestBeta); + localVarPath = "/accounts/{id}/unlock" + .replace("{".concat("id", "}"), encodeURIComponent(String(id))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + localVarHeaderParameter['Content-Type'] = 'application/json'; + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(accountUnlockRequestBeta, localVarRequestOptions, configuration); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This updates account details. A token with ORG_ADMIN authority is required to call this API. + * @summary Update Account + * @param {string} id The account ID + * @param {Array} requestBody A list of account update operations according to the [JSON Patch](https://tools.ietf.org/html/rfc6902) standard. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + updateAccount: function (id, requestBody, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'id' is not null or undefined + (0, common_1.assertParamExists)('updateAccount', 'id', id); + // verify required parameter 'requestBody' is not null or undefined + (0, common_1.assertParamExists)('updateAccount', 'requestBody', requestBody); + localVarPath = "/accounts/{id}" + .replace("{".concat("id", "}"), encodeURIComponent(String(id))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'PATCH' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + localVarHeaderParameter['Content-Type'] = 'application/json-patch+json'; + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(requestBody, localVarRequestOptions, configuration); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + }; + }; + exports.AccountsBetaApiAxiosParamCreator = AccountsBetaApiAxiosParamCreator; + /** + * AccountsBetaApi - functional programming interface + * @export + */ + var AccountsBetaApiFp = function (configuration) { + var localVarAxiosParamCreator = (0, exports.AccountsBetaApiAxiosParamCreator)(configuration); + return { + /** + * This API submits an account creation task and returns the task ID. The `sourceId` where this account will be created must be included in the `attributes` object. A token with ORG_ADMIN authority is required to call this API. + * @summary Create Account + * @param {AccountAttributesCreateBeta} accountAttributesCreateBeta + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + createAccount: function (accountAttributesCreateBeta, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.createAccount(accountAttributesCreateBeta, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This API submits an account delete task and returns the task ID. A token with ORG_ADMIN authority is required to call this API. + * @summary Delete Account + * @param {string} id The account ID + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + deleteAccount: function (id, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.deleteAccount(id, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This API submits a task to disable the account and returns the task ID. A token with ORG_ADMIN authority is required to call this API. + * @summary Disable Account + * @param {string} id The account id + * @param {AccountToggleRequestBeta} accountToggleRequestBeta + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + disableAccount: function (id, accountToggleRequestBeta, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.disableAccount(id, accountToggleRequestBeta, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This API submits a task to disable IDN account for a single identity. + * @summary Disable IDN Account for Identity + * @param {string} id The identity id. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + disableAccountForIdentity: function (id, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.disableAccountForIdentity(id, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This API submits tasks to disable IDN account for each identity provided in the request body. + * @summary Disable IDN Accounts for Identities + * @param {IdentitiesAccountsBulkRequestBeta} identitiesAccountsBulkRequestBeta + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + disableAccountsForIdentities: function (identitiesAccountsBulkRequestBeta, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.disableAccountsForIdentities(identitiesAccountsBulkRequestBeta, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This API submits a task to enable account and returns the task ID. A token with ORG_ADMIN authority is required to call this API. + * @summary Enable Account + * @param {string} id The account id + * @param {AccountToggleRequestBeta} accountToggleRequestBeta + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + enableAccount: function (id, accountToggleRequestBeta, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.enableAccount(id, accountToggleRequestBeta, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This API submits a task to enable IDN account for a single identity. + * @summary Enable IDN Account for Identity + * @param {string} id The identity id. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + enableAccountForIdentity: function (id, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.enableAccountForIdentity(id, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This API submits tasks to enable IDN account for each identity provided in the request body. + * @summary Enable IDN Accounts for Identities + * @param {IdentitiesAccountsBulkRequestBeta} identitiesAccountsBulkRequestBeta + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + enableAccountsForIdentities: function (identitiesAccountsBulkRequestBeta, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.enableAccountsForIdentities(identitiesAccountsBulkRequestBeta, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This API returns the details for a single account based on the ID. A token with ORG_ADMIN authority is required to call this API. + * @summary Account Details + * @param {string} id The account ID + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getAccount: function (id, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.getAccount(id, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This API returns entitlements of the account. A token with ORG_ADMIN authority is required to call this API. + * @summary Account Entitlements + * @param {string} id The account id + * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getAccountEntitlements: function (id, offset, limit, count, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.getAccountEntitlements(id, offset, limit, count, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This returns a list of accounts. A token with ORG_ADMIN authority is required to call this API. + * @summary Accounts List + * @param {'SLIM' | 'FULL'} [detailLevel] Determines whether Slim, or increased level of detail is provided for each account in the returned list. FULL is the default behavior. + * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **id**: *eq, in* **identityId**: *eq* **name**: *eq, in* **nativeIdentity**: *eq, in* **sourceId**: *eq, in* **uncorrelated**: *eq* + * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **id, name, created, modified** + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + listAccounts: function (detailLevel, limit, offset, count, filters, sorters, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.listAccounts(detailLevel, limit, offset, count, filters, sorters, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This API submits an account update task and returns the task ID. A token with ORG_ADMIN authority is required to call this API. + * @summary Update Account + * @param {string} id The account ID + * @param {AccountAttributesBeta} accountAttributesBeta + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + putAccount: function (id, accountAttributesBeta, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.putAccount(id, accountAttributesBeta, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This API asynchronously reloads the account directly from the connector and performs a one-time aggregation process. A token with ORG_ADMIN authority is required to call this API. + * @summary Reload Account + * @param {string} id The account id + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + reloadAccount: function (id, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.reloadAccount(id, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This API submits a task to unlock an account and returns the task ID. A token with ORG_ADMIN authority is required to call this API. + * @summary Unlock Account + * @param {string} id The account id + * @param {AccountUnlockRequestBeta} accountUnlockRequestBeta + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + unlockAccount: function (id, accountUnlockRequestBeta, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.unlockAccount(id, accountUnlockRequestBeta, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This updates account details. A token with ORG_ADMIN authority is required to call this API. + * @summary Update Account + * @param {string} id The account ID + * @param {Array} requestBody A list of account update operations according to the [JSON Patch](https://tools.ietf.org/html/rfc6902) standard. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + updateAccount: function (id, requestBody, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.updateAccount(id, requestBody, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + }; + }; + exports.AccountsBetaApiFp = AccountsBetaApiFp; + /** + * AccountsBetaApi - factory interface + * @export + */ + var AccountsBetaApiFactory = function (configuration, basePath, axios) { + var localVarFp = (0, exports.AccountsBetaApiFp)(configuration); + return { + /** + * This API submits an account creation task and returns the task ID. The `sourceId` where this account will be created must be included in the `attributes` object. A token with ORG_ADMIN authority is required to call this API. + * @summary Create Account + * @param {AccountAttributesCreateBeta} accountAttributesCreateBeta + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + createAccount: function (accountAttributesCreateBeta, axiosOptions) { + return localVarFp.createAccount(accountAttributesCreateBeta, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This API submits an account delete task and returns the task ID. A token with ORG_ADMIN authority is required to call this API. + * @summary Delete Account + * @param {string} id The account ID + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + deleteAccount: function (id, axiosOptions) { + return localVarFp.deleteAccount(id, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This API submits a task to disable the account and returns the task ID. A token with ORG_ADMIN authority is required to call this API. + * @summary Disable Account + * @param {string} id The account id + * @param {AccountToggleRequestBeta} accountToggleRequestBeta + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + disableAccount: function (id, accountToggleRequestBeta, axiosOptions) { + return localVarFp.disableAccount(id, accountToggleRequestBeta, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This API submits a task to disable IDN account for a single identity. + * @summary Disable IDN Account for Identity + * @param {string} id The identity id. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + disableAccountForIdentity: function (id, axiosOptions) { + return localVarFp.disableAccountForIdentity(id, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This API submits tasks to disable IDN account for each identity provided in the request body. + * @summary Disable IDN Accounts for Identities + * @param {IdentitiesAccountsBulkRequestBeta} identitiesAccountsBulkRequestBeta + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + disableAccountsForIdentities: function (identitiesAccountsBulkRequestBeta, axiosOptions) { + return localVarFp.disableAccountsForIdentities(identitiesAccountsBulkRequestBeta, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This API submits a task to enable account and returns the task ID. A token with ORG_ADMIN authority is required to call this API. + * @summary Enable Account + * @param {string} id The account id + * @param {AccountToggleRequestBeta} accountToggleRequestBeta + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + enableAccount: function (id, accountToggleRequestBeta, axiosOptions) { + return localVarFp.enableAccount(id, accountToggleRequestBeta, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This API submits a task to enable IDN account for a single identity. + * @summary Enable IDN Account for Identity + * @param {string} id The identity id. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + enableAccountForIdentity: function (id, axiosOptions) { + return localVarFp.enableAccountForIdentity(id, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This API submits tasks to enable IDN account for each identity provided in the request body. + * @summary Enable IDN Accounts for Identities + * @param {IdentitiesAccountsBulkRequestBeta} identitiesAccountsBulkRequestBeta + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + enableAccountsForIdentities: function (identitiesAccountsBulkRequestBeta, axiosOptions) { + return localVarFp.enableAccountsForIdentities(identitiesAccountsBulkRequestBeta, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This API returns the details for a single account based on the ID. A token with ORG_ADMIN authority is required to call this API. + * @summary Account Details + * @param {string} id The account ID + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getAccount: function (id, axiosOptions) { + return localVarFp.getAccount(id, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This API returns entitlements of the account. A token with ORG_ADMIN authority is required to call this API. + * @summary Account Entitlements + * @param {string} id The account id + * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getAccountEntitlements: function (id, offset, limit, count, axiosOptions) { + return localVarFp.getAccountEntitlements(id, offset, limit, count, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This returns a list of accounts. A token with ORG_ADMIN authority is required to call this API. + * @summary Accounts List + * @param {'SLIM' | 'FULL'} [detailLevel] Determines whether Slim, or increased level of detail is provided for each account in the returned list. FULL is the default behavior. + * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **id**: *eq, in* **identityId**: *eq* **name**: *eq, in* **nativeIdentity**: *eq, in* **sourceId**: *eq, in* **uncorrelated**: *eq* + * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **id, name, created, modified** + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + listAccounts: function (detailLevel, limit, offset, count, filters, sorters, axiosOptions) { + return localVarFp.listAccounts(detailLevel, limit, offset, count, filters, sorters, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This API submits an account update task and returns the task ID. A token with ORG_ADMIN authority is required to call this API. + * @summary Update Account + * @param {string} id The account ID + * @param {AccountAttributesBeta} accountAttributesBeta + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + putAccount: function (id, accountAttributesBeta, axiosOptions) { + return localVarFp.putAccount(id, accountAttributesBeta, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This API asynchronously reloads the account directly from the connector and performs a one-time aggregation process. A token with ORG_ADMIN authority is required to call this API. + * @summary Reload Account + * @param {string} id The account id + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + reloadAccount: function (id, axiosOptions) { + return localVarFp.reloadAccount(id, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This API submits a task to unlock an account and returns the task ID. A token with ORG_ADMIN authority is required to call this API. + * @summary Unlock Account + * @param {string} id The account id + * @param {AccountUnlockRequestBeta} accountUnlockRequestBeta + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + unlockAccount: function (id, accountUnlockRequestBeta, axiosOptions) { + return localVarFp.unlockAccount(id, accountUnlockRequestBeta, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This updates account details. A token with ORG_ADMIN authority is required to call this API. + * @summary Update Account + * @param {string} id The account ID + * @param {Array} requestBody A list of account update operations according to the [JSON Patch](https://tools.ietf.org/html/rfc6902) standard. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + updateAccount: function (id, requestBody, axiosOptions) { + return localVarFp.updateAccount(id, requestBody, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + }; + }; + exports.AccountsBetaApiFactory = AccountsBetaApiFactory; + /** + * AccountsBetaApi - object-oriented interface + * @export + * @class AccountsBetaApi + * @extends {BaseAPI} + */ + var AccountsBetaApi = /** @class */ (function (_super) { + __extends(AccountsBetaApi, _super); + function AccountsBetaApi() { + return _super !== null && _super.apply(this, arguments) || this; + } + /** + * This API submits an account creation task and returns the task ID. The `sourceId` where this account will be created must be included in the `attributes` object. A token with ORG_ADMIN authority is required to call this API. + * @summary Create Account + * @param {AccountsBetaApiCreateAccountRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof AccountsBetaApi + */ + AccountsBetaApi.prototype.createAccount = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.AccountsBetaApiFp)(this.configuration).createAccount(requestParameters.accountAttributesCreateBeta, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This API submits an account delete task and returns the task ID. A token with ORG_ADMIN authority is required to call this API. + * @summary Delete Account + * @param {AccountsBetaApiDeleteAccountRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof AccountsBetaApi + */ + AccountsBetaApi.prototype.deleteAccount = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.AccountsBetaApiFp)(this.configuration).deleteAccount(requestParameters.id, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This API submits a task to disable the account and returns the task ID. A token with ORG_ADMIN authority is required to call this API. + * @summary Disable Account + * @param {AccountsBetaApiDisableAccountRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof AccountsBetaApi + */ + AccountsBetaApi.prototype.disableAccount = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.AccountsBetaApiFp)(this.configuration).disableAccount(requestParameters.id, requestParameters.accountToggleRequestBeta, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This API submits a task to disable IDN account for a single identity. + * @summary Disable IDN Account for Identity + * @param {AccountsBetaApiDisableAccountForIdentityRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof AccountsBetaApi + */ + AccountsBetaApi.prototype.disableAccountForIdentity = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.AccountsBetaApiFp)(this.configuration).disableAccountForIdentity(requestParameters.id, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This API submits tasks to disable IDN account for each identity provided in the request body. + * @summary Disable IDN Accounts for Identities + * @param {AccountsBetaApiDisableAccountsForIdentitiesRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof AccountsBetaApi + */ + AccountsBetaApi.prototype.disableAccountsForIdentities = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.AccountsBetaApiFp)(this.configuration).disableAccountsForIdentities(requestParameters.identitiesAccountsBulkRequestBeta, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This API submits a task to enable account and returns the task ID. A token with ORG_ADMIN authority is required to call this API. + * @summary Enable Account + * @param {AccountsBetaApiEnableAccountRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof AccountsBetaApi + */ + AccountsBetaApi.prototype.enableAccount = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.AccountsBetaApiFp)(this.configuration).enableAccount(requestParameters.id, requestParameters.accountToggleRequestBeta, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This API submits a task to enable IDN account for a single identity. + * @summary Enable IDN Account for Identity + * @param {AccountsBetaApiEnableAccountForIdentityRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof AccountsBetaApi + */ + AccountsBetaApi.prototype.enableAccountForIdentity = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.AccountsBetaApiFp)(this.configuration).enableAccountForIdentity(requestParameters.id, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This API submits tasks to enable IDN account for each identity provided in the request body. + * @summary Enable IDN Accounts for Identities + * @param {AccountsBetaApiEnableAccountsForIdentitiesRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof AccountsBetaApi + */ + AccountsBetaApi.prototype.enableAccountsForIdentities = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.AccountsBetaApiFp)(this.configuration).enableAccountsForIdentities(requestParameters.identitiesAccountsBulkRequestBeta, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This API returns the details for a single account based on the ID. A token with ORG_ADMIN authority is required to call this API. + * @summary Account Details + * @param {AccountsBetaApiGetAccountRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof AccountsBetaApi + */ + AccountsBetaApi.prototype.getAccount = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.AccountsBetaApiFp)(this.configuration).getAccount(requestParameters.id, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This API returns entitlements of the account. A token with ORG_ADMIN authority is required to call this API. + * @summary Account Entitlements + * @param {AccountsBetaApiGetAccountEntitlementsRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof AccountsBetaApi + */ + AccountsBetaApi.prototype.getAccountEntitlements = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.AccountsBetaApiFp)(this.configuration).getAccountEntitlements(requestParameters.id, requestParameters.offset, requestParameters.limit, requestParameters.count, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This returns a list of accounts. A token with ORG_ADMIN authority is required to call this API. + * @summary Accounts List + * @param {AccountsBetaApiListAccountsRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof AccountsBetaApi + */ + AccountsBetaApi.prototype.listAccounts = function (requestParameters, axiosOptions) { + var _this = this; + if (requestParameters === void 0) { requestParameters = {}; } + return (0, exports.AccountsBetaApiFp)(this.configuration).listAccounts(requestParameters.detailLevel, requestParameters.limit, requestParameters.offset, requestParameters.count, requestParameters.filters, requestParameters.sorters, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This API submits an account update task and returns the task ID. A token with ORG_ADMIN authority is required to call this API. + * @summary Update Account + * @param {AccountsBetaApiPutAccountRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof AccountsBetaApi + */ + AccountsBetaApi.prototype.putAccount = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.AccountsBetaApiFp)(this.configuration).putAccount(requestParameters.id, requestParameters.accountAttributesBeta, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This API asynchronously reloads the account directly from the connector and performs a one-time aggregation process. A token with ORG_ADMIN authority is required to call this API. + * @summary Reload Account + * @param {AccountsBetaApiReloadAccountRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof AccountsBetaApi + */ + AccountsBetaApi.prototype.reloadAccount = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.AccountsBetaApiFp)(this.configuration).reloadAccount(requestParameters.id, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This API submits a task to unlock an account and returns the task ID. A token with ORG_ADMIN authority is required to call this API. + * @summary Unlock Account + * @param {AccountsBetaApiUnlockAccountRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof AccountsBetaApi + */ + AccountsBetaApi.prototype.unlockAccount = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.AccountsBetaApiFp)(this.configuration).unlockAccount(requestParameters.id, requestParameters.accountUnlockRequestBeta, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This updates account details. A token with ORG_ADMIN authority is required to call this API. + * @summary Update Account + * @param {AccountsBetaApiUpdateAccountRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof AccountsBetaApi + */ + AccountsBetaApi.prototype.updateAccount = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.AccountsBetaApiFp)(this.configuration).updateAccount(requestParameters.id, requestParameters.requestBody, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + return AccountsBetaApi; + }(base_1.BaseAPI)); + exports.AccountsBetaApi = AccountsBetaApi; + /** + * CertificationCampaignsBetaApi - axios parameter creator + * @export + */ + var CertificationCampaignsBetaApiAxiosParamCreator = function (configuration) { + var _this = this; + return { + /** + * :::caution This endpoint will run successfully for any campaigns that are **past due**. This endpoint will return a content error if the campaign is **not past due**. ::: Completes a certification campaign. This is provided to admins so that they can complete a certification even if all items have not been completed. Requires roles of CERT_ADMIN and ORG_ADMIN + * @summary Complete a Campaign + * @param {string} id The campaign id + * @param {CompleteCampaignOptionsBeta} [completeCampaignOptionsBeta] Optional. Default behavior is for the campaign to auto-approve upon completion, unless autoCompleteAction=REVOKE + * @param {*} [axiosOptions] Override http request option. + * @deprecated + * @throws {RequiredError} + */ + completeCampaign: function (id, completeCampaignOptionsBeta, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'id' is not null or undefined + (0, common_1.assertParamExists)('completeCampaign', 'id', id); + localVarPath = "/campaigns/{id}/complete" + .replace("{".concat("id", "}"), encodeURIComponent(String(id))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + localVarHeaderParameter['Content-Type'] = 'application/json'; + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(completeCampaignOptionsBeta, localVarRequestOptions, configuration); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * Creates a new Certification Campaign with the information provided in the request body. + * @summary Create a campaign + * @param {CampaignBeta} campaignBeta + * @param {*} [axiosOptions] Override http request option. + * @deprecated + * @throws {RequiredError} + */ + createCampaign: function (campaignBeta, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'campaignBeta' is not null or undefined + (0, common_1.assertParamExists)('createCampaign', 'campaignBeta', campaignBeta); + localVarPath = "/campaigns"; + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + localVarHeaderParameter['Content-Type'] = 'application/json'; + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(campaignBeta, localVarRequestOptions, configuration); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * Create a campaign Template based on campaign. + * @summary Create a Campaign Template + * @param {CampaignTemplateBeta} campaignTemplateBeta + * @param {*} [axiosOptions] Override http request option. + * @deprecated + * @throws {RequiredError} + */ + createCampaignTemplate: function (campaignTemplateBeta, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'campaignTemplateBeta' is not null or undefined + (0, common_1.assertParamExists)('createCampaignTemplate', 'campaignTemplateBeta', campaignTemplateBeta); + localVarPath = "/campaign-templates"; + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + localVarHeaderParameter['Content-Type'] = 'application/json'; + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(campaignTemplateBeta, localVarRequestOptions, configuration); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * Deletes a campaign template by ID. + * @summary Delete a Campaign Template + * @param {string} id The ID of the campaign template being deleted. + * @param {*} [axiosOptions] Override http request option. + * @deprecated + * @throws {RequiredError} + */ + deleteCampaignTemplate: function (id, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'id' is not null or undefined + (0, common_1.assertParamExists)('deleteCampaignTemplate', 'id', id); + localVarPath = "/campaign-templates/{id}" + .replace("{".concat("id", "}"), encodeURIComponent(String(id))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'DELETE' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * Deletes the schedule for a campaign template. Returns a 404 if there is no schedule set. + * @summary Deletes a Campaign Template\'s Schedule + * @param {string} id The ID of the campaign template whose schedule is being deleted. + * @param {*} [axiosOptions] Override http request option. + * @deprecated + * @throws {RequiredError} + */ + deleteCampaignTemplateSchedule: function (id, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'id' is not null or undefined + (0, common_1.assertParamExists)('deleteCampaignTemplateSchedule', 'id', id); + localVarPath = "/campaign-templates/{id}/schedule" + .replace("{".concat("id", "}"), encodeURIComponent(String(id))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'DELETE' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * Deletes campaigns whose Ids are specified in the provided list of campaign Ids. Authorized callers must be an ORG_ADMIN or a CERT_ADMIN. + * @summary Deletes Campaigns + * @param {DeleteCampaignsRequestBeta} deleteCampaignsRequestBeta The ids of the campaigns to delete. + * @param {*} [axiosOptions] Override http request option. + * @deprecated + * @throws {RequiredError} + */ + deleteCampaigns: function (deleteCampaignsRequestBeta, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'deleteCampaignsRequestBeta' is not null or undefined + (0, common_1.assertParamExists)('deleteCampaigns', 'deleteCampaignsRequestBeta', deleteCampaignsRequestBeta); + localVarPath = "/campaigns/delete"; + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + localVarHeaderParameter['Content-Type'] = 'application/json'; + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(deleteCampaignsRequestBeta, localVarRequestOptions, configuration); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * Gets campaigns and returns them in a list. Can provide increased level of detail for each campaign if provided the correct query. + * @summary List Campaigns + * @param {'SLIM' | 'FULL'} [detail] Determines whether slim, or increased level of detail is provided for each campaign in the returned list. Slim is the default behavior. + * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **id**: *eq, in* **name**: *eq, sw* **status**: *eq, in* + * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **name, created** + * @param {*} [axiosOptions] Override http request option. + * @deprecated + * @throws {RequiredError} + */ + getActiveCampaigns: function (detail, limit, offset, count, filters, sorters, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + localVarPath = "/campaigns"; + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + if (detail !== undefined) { + localVarQueryParameter['detail'] = detail; + } + if (limit !== undefined) { + localVarQueryParameter['limit'] = limit; + } + if (offset !== undefined) { + localVarQueryParameter['offset'] = offset; + } + if (count !== undefined) { + localVarQueryParameter['count'] = count; + } + if (filters !== undefined) { + localVarQueryParameter['filters'] = filters; + } + if (sorters !== undefined) { + localVarQueryParameter['sorters'] = sorters; + } + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * Retrieves information for an existing campaign using the campaign\'s ID. Authorized callers must be a reviewer for this campaign, an ORG_ADMIN, or a CERT_ADMIN. + * @summary Get a campaign + * @param {string} id The ID of the campaign to be retrieved + * @param {*} [axiosOptions] Override http request option. + * @deprecated + * @throws {RequiredError} + */ + getCampaign: function (id, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'id' is not null or undefined + (0, common_1.assertParamExists)('getCampaign', 'id', id); + localVarPath = "/campaigns/{id}" + .replace("{".concat("id", "}"), encodeURIComponent(String(id))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * Fetches all reports for a certification campaign by campaign ID. Requires roles of CERT_ADMIN, DASHBOARD, ORG_ADMIN and REPORT_ADMIN + * @summary Get Campaign Reports + * @param {string} id The ID of the campaign for which reports are being fetched. + * @param {*} [axiosOptions] Override http request option. + * @deprecated + * @throws {RequiredError} + */ + getCampaignReports: function (id, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'id' is not null or undefined + (0, common_1.assertParamExists)('getCampaignReports', 'id', id); + localVarPath = "/campaigns/{id}/reports" + .replace("{".concat("id", "}"), encodeURIComponent(String(id))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * Fetches configuration for campaign reports. Currently it includes only one element - identity attributes defined as custom report columns. Requires roles of CERT_ADMIN and ORG_ADMIN. + * @summary Get Campaign Reports Configuration + * @param {*} [axiosOptions] Override http request option. + * @deprecated + * @throws {RequiredError} + */ + getCampaignReportsConfig: function (axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + localVarPath = "/campaigns/reports-configuration"; + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * Fetches a campaign template by ID. + * @summary Get a Campaign Template + * @param {string} id The desired campaign template\'s ID. + * @param {*} [axiosOptions] Override http request option. + * @deprecated + * @throws {RequiredError} + */ + getCampaignTemplate: function (id, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'id' is not null or undefined + (0, common_1.assertParamExists)('getCampaignTemplate', 'id', id); + localVarPath = "/campaign-templates/{id}" + .replace("{".concat("id", "}"), encodeURIComponent(String(id))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * Gets the schedule for a campaign template. Returns a 404 if there is no schedule set. + * @summary Gets a Campaign Template\'s Schedule + * @param {string} id The ID of the campaign template whose schedule is being fetched. + * @param {*} [axiosOptions] Override http request option. + * @deprecated + * @throws {RequiredError} + */ + getCampaignTemplateSchedule: function (id, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'id' is not null or undefined + (0, common_1.assertParamExists)('getCampaignTemplateSchedule', 'id', id); + localVarPath = "/campaign-templates/{id}/schedule" + .replace("{".concat("id", "}"), encodeURIComponent(String(id))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * Lists all CampaignTemplates. Scope can be reduced via standard V3 query params. All CampaignTemplates matching the query params + * @summary List Campaign Templates + * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **name, created, modified** + * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **name**: *eq, ge, gt, in, le, lt, ne, sw* **id**: *eq, ge, gt, in, le, lt, ne, sw* + * @param {*} [axiosOptions] Override http request option. + * @deprecated + * @throws {RequiredError} + */ + listCampaignTemplates: function (limit, offset, count, sorters, filters, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + localVarPath = "/campaign-templates"; + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + if (limit !== undefined) { + localVarQueryParameter['limit'] = limit; + } + if (offset !== undefined) { + localVarQueryParameter['offset'] = offset; + } + if (count !== undefined) { + localVarQueryParameter['count'] = count; + } + if (sorters !== undefined) { + localVarQueryParameter['sorters'] = sorters; + } + if (filters !== undefined) { + localVarQueryParameter['filters'] = filters; + } + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This API reassigns the specified certifications from one identity to another. A token with ORG_ADMIN or CERT_ADMIN authority is required to call this API. + * @summary Reassign Certifications + * @param {string} id The certification campaign ID + * @param {AdminReviewReassignBeta} adminReviewReassignBeta + * @param {*} [axiosOptions] Override http request option. + * @deprecated + * @throws {RequiredError} + */ + move: function (id, adminReviewReassignBeta, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'id' is not null or undefined + (0, common_1.assertParamExists)('move', 'id', id); + // verify required parameter 'adminReviewReassignBeta' is not null or undefined + (0, common_1.assertParamExists)('move', 'adminReviewReassignBeta', adminReviewReassignBeta); + localVarPath = "/campaigns/{id}/reassign" + .replace("{".concat("id", "}"), encodeURIComponent(String(id))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + localVarHeaderParameter['Content-Type'] = 'application/json'; + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(adminReviewReassignBeta, localVarRequestOptions, configuration); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * Allows updating individual fields on a campaign template using the [JSON Patch](https://tools.ietf.org/html/rfc6902) standard. + * @summary Update a Campaign Template + * @param {string} id The ID of the campaign template being modified. + * @param {Array} jsonPatchOperationBeta A list of campaign update operations according to the [JSON Patch](https://tools.ietf.org/html/rfc6902) standard. The following fields are patchable: * name * description * deadlineDuration * campaign (all fields that are allowed during create) + * @param {*} [axiosOptions] Override http request option. + * @deprecated + * @throws {RequiredError} + */ + patchCampaignTemplate: function (id, jsonPatchOperationBeta, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'id' is not null or undefined + (0, common_1.assertParamExists)('patchCampaignTemplate', 'id', id); + // verify required parameter 'jsonPatchOperationBeta' is not null or undefined + (0, common_1.assertParamExists)('patchCampaignTemplate', 'jsonPatchOperationBeta', jsonPatchOperationBeta); + localVarPath = "/campaign-templates/{id}" + .replace("{".concat("id", "}"), encodeURIComponent(String(id))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'PATCH' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + localVarHeaderParameter['Content-Type'] = 'application/json-patch+json'; + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(jsonPatchOperationBeta, localVarRequestOptions, configuration); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * Overwrites configuration for campaign reports. Requires roles CERT_ADMIN and ORG_ADMIN. + * @summary Set Campaign Reports Configuration + * @param {CampaignReportsConfigBeta} campaignReportsConfigBeta Campaign Report Configuration + * @param {*} [axiosOptions] Override http request option. + * @deprecated + * @throws {RequiredError} + */ + setCampaignReportsConfig: function (campaignReportsConfigBeta, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'campaignReportsConfigBeta' is not null or undefined + (0, common_1.assertParamExists)('setCampaignReportsConfig', 'campaignReportsConfigBeta', campaignReportsConfigBeta); + localVarPath = "/campaigns/reports-configuration"; + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'PUT' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + localVarHeaderParameter['Content-Type'] = 'application/json'; + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(campaignReportsConfigBeta, localVarRequestOptions, configuration); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * Sets the schedule for a campaign template. If a schedule already exists, it will be overwritten with the new one. + * @summary Sets a Campaign Template\'s Schedule + * @param {string} id The ID of the campaign template being scheduled. + * @param {ScheduleBeta} [scheduleBeta] + * @param {*} [axiosOptions] Override http request option. + * @deprecated + * @throws {RequiredError} + */ + setCampaignTemplateSchedule: function (id, scheduleBeta, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'id' is not null or undefined + (0, common_1.assertParamExists)('setCampaignTemplateSchedule', 'id', id); + localVarPath = "/campaign-templates/{id}/schedule" + .replace("{".concat("id", "}"), encodeURIComponent(String(id))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'PUT' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + localVarHeaderParameter['Content-Type'] = 'application/json'; + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(scheduleBeta, localVarRequestOptions, configuration); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * Submits a job to activate the campaign with the given Id. The campaign must be staged. Requires roles of CERT_ADMIN and ORG_ADMIN + * @summary Activate a Campaign + * @param {string} id The campaign id + * @param {ActivateCampaignOptionsBeta} [activateCampaignOptionsBeta] Optional. If no timezone is specified, the standard UTC timezone is used (i.e. UTC+00:00). Although this can take any timezone, the intended value is the caller\'s timezone. The activation time calculated from the given timezone may cause the campaign deadline time to be modified, but it will remain within the original date. The timezone must be in a valid ISO 8601 format. + * @param {*} [axiosOptions] Override http request option. + * @deprecated + * @throws {RequiredError} + */ + startCampaign: function (id, activateCampaignOptionsBeta, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'id' is not null or undefined + (0, common_1.assertParamExists)('startCampaign', 'id', id); + localVarPath = "/campaigns/{id}/activate" + .replace("{".concat("id", "}"), encodeURIComponent(String(id))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + localVarHeaderParameter['Content-Type'] = 'application/json'; + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(activateCampaignOptionsBeta, localVarRequestOptions, configuration); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * Kicks off remediation scan task for a certification campaign. Requires roles of CERT_ADMIN and ORG_ADMIN + * @summary Run Campaign Remediation Scan + * @param {string} id The ID of the campaign for which remediation scan is being run. + * @param {*} [axiosOptions] Override http request option. + * @deprecated + * @throws {RequiredError} + */ + startCampaignRemediationScan: function (id, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'id' is not null or undefined + (0, common_1.assertParamExists)('startCampaignRemediationScan', 'id', id); + localVarPath = "/campaigns/{id}/run-remediation-scan" + .replace("{".concat("id", "}"), encodeURIComponent(String(id))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * Runs a report for a certification campaign. Requires the following roles: CERT_ADMIN, DASHBOARD, ORG_ADMIN and REPORT_ADMIN. + * @summary Run Campaign Report + * @param {string} id The ID of the campaign for which report is being run. + * @param {ReportTypeBeta} type The type of the report to run. + * @param {*} [axiosOptions] Override http request option. + * @deprecated + * @throws {RequiredError} + */ + startCampaignReport: function (id, type, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'id' is not null or undefined + (0, common_1.assertParamExists)('startCampaignReport', 'id', id); + // verify required parameter 'type' is not null or undefined + (0, common_1.assertParamExists)('startCampaignReport', 'type', type); + localVarPath = "/campaigns/{id}/run-report/{type}" + .replace("{".concat("id", "}"), encodeURIComponent(String(id))) + .replace("{".concat("type", "}"), encodeURIComponent(String(type))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * Generates a new campaign from a campaign template. The campaign object contained in the template has special formatting applied to its name and description fields in order to determine the generated campaign\'s name/description. Placeholders in those fields are formatted with the current date and time upon generation. Placeholders consist of a percent sign followed by a letter indicating what should be inserted; for example, \"%Y\" will insert the current year; a campaign template named \"Campaign for %y\" would generate a campaign called \"Campaign for 2020\" (assuming the year at generation time is 2020). Valid placeholders are the date/time conversion suffix characters supported by [java.util.Formatter](https://docs.oracle.com/javase/8/docs/api/java/util/Formatter.html). Requires roles ORG_ADMIN. + * @summary Generate a Campaign from Template + * @param {string} id The ID of the campaign template to use for generation. + * @param {*} [axiosOptions] Override http request option. + * @deprecated + * @throws {RequiredError} + */ + startGenerateCampaignTemplate: function (id, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'id' is not null or undefined + (0, common_1.assertParamExists)('startGenerateCampaignTemplate', 'id', id); + localVarPath = "/campaign-templates/{id}/generate" + .replace("{".concat("id", "}"), encodeURIComponent(String(id))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * Allows updating individual fields on a campaign using the [JSON Patch](https://tools.ietf.org/html/rfc6902) standard. + * @summary Update a Campaign + * @param {string} id The ID of the campaign template being modified. + * @param {Array} requestBody A list of campaign update operations according to the [JSON Patch](https://tools.ietf.org/html/rfc6902) standard. The fields that can be patched differ based on the status of the campaign. In the *STAGED* status, the following fields can be patched: * name * description * recommendationsEnabled * deadline * emailNotificationEnabled * autoRevokeAllowed In the *ACTIVE* status, the following fields can be patched: * deadline + * @param {*} [axiosOptions] Override http request option. + * @deprecated + * @throws {RequiredError} + */ + updateCampaign: function (id, requestBody, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'id' is not null or undefined + (0, common_1.assertParamExists)('updateCampaign', 'id', id); + // verify required parameter 'requestBody' is not null or undefined + (0, common_1.assertParamExists)('updateCampaign', 'requestBody', requestBody); + localVarPath = "/campaigns/{id}" + .replace("{".concat("id", "}"), encodeURIComponent(String(id))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'PATCH' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + localVarHeaderParameter['Content-Type'] = 'application/json-patch+json'; + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(requestBody, localVarRequestOptions, configuration); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + }; + }; + exports.CertificationCampaignsBetaApiAxiosParamCreator = CertificationCampaignsBetaApiAxiosParamCreator; + /** + * CertificationCampaignsBetaApi - functional programming interface + * @export + */ + var CertificationCampaignsBetaApiFp = function (configuration) { + var localVarAxiosParamCreator = (0, exports.CertificationCampaignsBetaApiAxiosParamCreator)(configuration); + return { + /** + * :::caution This endpoint will run successfully for any campaigns that are **past due**. This endpoint will return a content error if the campaign is **not past due**. ::: Completes a certification campaign. This is provided to admins so that they can complete a certification even if all items have not been completed. Requires roles of CERT_ADMIN and ORG_ADMIN + * @summary Complete a Campaign + * @param {string} id The campaign id + * @param {CompleteCampaignOptionsBeta} [completeCampaignOptionsBeta] Optional. Default behavior is for the campaign to auto-approve upon completion, unless autoCompleteAction=REVOKE + * @param {*} [axiosOptions] Override http request option. + * @deprecated + * @throws {RequiredError} + */ + completeCampaign: function (id, completeCampaignOptionsBeta, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.completeCampaign(id, completeCampaignOptionsBeta, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * Creates a new Certification Campaign with the information provided in the request body. + * @summary Create a campaign + * @param {CampaignBeta} campaignBeta + * @param {*} [axiosOptions] Override http request option. + * @deprecated + * @throws {RequiredError} + */ + createCampaign: function (campaignBeta, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.createCampaign(campaignBeta, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * Create a campaign Template based on campaign. + * @summary Create a Campaign Template + * @param {CampaignTemplateBeta} campaignTemplateBeta + * @param {*} [axiosOptions] Override http request option. + * @deprecated + * @throws {RequiredError} + */ + createCampaignTemplate: function (campaignTemplateBeta, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.createCampaignTemplate(campaignTemplateBeta, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * Deletes a campaign template by ID. + * @summary Delete a Campaign Template + * @param {string} id The ID of the campaign template being deleted. + * @param {*} [axiosOptions] Override http request option. + * @deprecated + * @throws {RequiredError} + */ + deleteCampaignTemplate: function (id, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.deleteCampaignTemplate(id, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * Deletes the schedule for a campaign template. Returns a 404 if there is no schedule set. + * @summary Deletes a Campaign Template\'s Schedule + * @param {string} id The ID of the campaign template whose schedule is being deleted. + * @param {*} [axiosOptions] Override http request option. + * @deprecated + * @throws {RequiredError} + */ + deleteCampaignTemplateSchedule: function (id, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.deleteCampaignTemplateSchedule(id, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * Deletes campaigns whose Ids are specified in the provided list of campaign Ids. Authorized callers must be an ORG_ADMIN or a CERT_ADMIN. + * @summary Deletes Campaigns + * @param {DeleteCampaignsRequestBeta} deleteCampaignsRequestBeta The ids of the campaigns to delete. + * @param {*} [axiosOptions] Override http request option. + * @deprecated + * @throws {RequiredError} + */ + deleteCampaigns: function (deleteCampaignsRequestBeta, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.deleteCampaigns(deleteCampaignsRequestBeta, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * Gets campaigns and returns them in a list. Can provide increased level of detail for each campaign if provided the correct query. + * @summary List Campaigns + * @param {'SLIM' | 'FULL'} [detail] Determines whether slim, or increased level of detail is provided for each campaign in the returned list. Slim is the default behavior. + * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **id**: *eq, in* **name**: *eq, sw* **status**: *eq, in* + * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **name, created** + * @param {*} [axiosOptions] Override http request option. + * @deprecated + * @throws {RequiredError} + */ + getActiveCampaigns: function (detail, limit, offset, count, filters, sorters, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.getActiveCampaigns(detail, limit, offset, count, filters, sorters, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * Retrieves information for an existing campaign using the campaign\'s ID. Authorized callers must be a reviewer for this campaign, an ORG_ADMIN, or a CERT_ADMIN. + * @summary Get a campaign + * @param {string} id The ID of the campaign to be retrieved + * @param {*} [axiosOptions] Override http request option. + * @deprecated + * @throws {RequiredError} + */ + getCampaign: function (id, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.getCampaign(id, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * Fetches all reports for a certification campaign by campaign ID. Requires roles of CERT_ADMIN, DASHBOARD, ORG_ADMIN and REPORT_ADMIN + * @summary Get Campaign Reports + * @param {string} id The ID of the campaign for which reports are being fetched. + * @param {*} [axiosOptions] Override http request option. + * @deprecated + * @throws {RequiredError} + */ + getCampaignReports: function (id, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.getCampaignReports(id, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * Fetches configuration for campaign reports. Currently it includes only one element - identity attributes defined as custom report columns. Requires roles of CERT_ADMIN and ORG_ADMIN. + * @summary Get Campaign Reports Configuration + * @param {*} [axiosOptions] Override http request option. + * @deprecated + * @throws {RequiredError} + */ + getCampaignReportsConfig: function (axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.getCampaignReportsConfig(axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * Fetches a campaign template by ID. + * @summary Get a Campaign Template + * @param {string} id The desired campaign template\'s ID. + * @param {*} [axiosOptions] Override http request option. + * @deprecated + * @throws {RequiredError} + */ + getCampaignTemplate: function (id, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.getCampaignTemplate(id, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * Gets the schedule for a campaign template. Returns a 404 if there is no schedule set. + * @summary Gets a Campaign Template\'s Schedule + * @param {string} id The ID of the campaign template whose schedule is being fetched. + * @param {*} [axiosOptions] Override http request option. + * @deprecated + * @throws {RequiredError} + */ + getCampaignTemplateSchedule: function (id, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.getCampaignTemplateSchedule(id, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * Lists all CampaignTemplates. Scope can be reduced via standard V3 query params. All CampaignTemplates matching the query params + * @summary List Campaign Templates + * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **name, created, modified** + * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **name**: *eq, ge, gt, in, le, lt, ne, sw* **id**: *eq, ge, gt, in, le, lt, ne, sw* + * @param {*} [axiosOptions] Override http request option. + * @deprecated + * @throws {RequiredError} + */ + listCampaignTemplates: function (limit, offset, count, sorters, filters, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.listCampaignTemplates(limit, offset, count, sorters, filters, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This API reassigns the specified certifications from one identity to another. A token with ORG_ADMIN or CERT_ADMIN authority is required to call this API. + * @summary Reassign Certifications + * @param {string} id The certification campaign ID + * @param {AdminReviewReassignBeta} adminReviewReassignBeta + * @param {*} [axiosOptions] Override http request option. + * @deprecated + * @throws {RequiredError} + */ + move: function (id, adminReviewReassignBeta, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.move(id, adminReviewReassignBeta, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * Allows updating individual fields on a campaign template using the [JSON Patch](https://tools.ietf.org/html/rfc6902) standard. + * @summary Update a Campaign Template + * @param {string} id The ID of the campaign template being modified. + * @param {Array} jsonPatchOperationBeta A list of campaign update operations according to the [JSON Patch](https://tools.ietf.org/html/rfc6902) standard. The following fields are patchable: * name * description * deadlineDuration * campaign (all fields that are allowed during create) + * @param {*} [axiosOptions] Override http request option. + * @deprecated + * @throws {RequiredError} + */ + patchCampaignTemplate: function (id, jsonPatchOperationBeta, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.patchCampaignTemplate(id, jsonPatchOperationBeta, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * Overwrites configuration for campaign reports. Requires roles CERT_ADMIN and ORG_ADMIN. + * @summary Set Campaign Reports Configuration + * @param {CampaignReportsConfigBeta} campaignReportsConfigBeta Campaign Report Configuration + * @param {*} [axiosOptions] Override http request option. + * @deprecated + * @throws {RequiredError} + */ + setCampaignReportsConfig: function (campaignReportsConfigBeta, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.setCampaignReportsConfig(campaignReportsConfigBeta, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * Sets the schedule for a campaign template. If a schedule already exists, it will be overwritten with the new one. + * @summary Sets a Campaign Template\'s Schedule + * @param {string} id The ID of the campaign template being scheduled. + * @param {ScheduleBeta} [scheduleBeta] + * @param {*} [axiosOptions] Override http request option. + * @deprecated + * @throws {RequiredError} + */ + setCampaignTemplateSchedule: function (id, scheduleBeta, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.setCampaignTemplateSchedule(id, scheduleBeta, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * Submits a job to activate the campaign with the given Id. The campaign must be staged. Requires roles of CERT_ADMIN and ORG_ADMIN + * @summary Activate a Campaign + * @param {string} id The campaign id + * @param {ActivateCampaignOptionsBeta} [activateCampaignOptionsBeta] Optional. If no timezone is specified, the standard UTC timezone is used (i.e. UTC+00:00). Although this can take any timezone, the intended value is the caller\'s timezone. The activation time calculated from the given timezone may cause the campaign deadline time to be modified, but it will remain within the original date. The timezone must be in a valid ISO 8601 format. + * @param {*} [axiosOptions] Override http request option. + * @deprecated + * @throws {RequiredError} + */ + startCampaign: function (id, activateCampaignOptionsBeta, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.startCampaign(id, activateCampaignOptionsBeta, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * Kicks off remediation scan task for a certification campaign. Requires roles of CERT_ADMIN and ORG_ADMIN + * @summary Run Campaign Remediation Scan + * @param {string} id The ID of the campaign for which remediation scan is being run. + * @param {*} [axiosOptions] Override http request option. + * @deprecated + * @throws {RequiredError} + */ + startCampaignRemediationScan: function (id, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.startCampaignRemediationScan(id, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * Runs a report for a certification campaign. Requires the following roles: CERT_ADMIN, DASHBOARD, ORG_ADMIN and REPORT_ADMIN. + * @summary Run Campaign Report + * @param {string} id The ID of the campaign for which report is being run. + * @param {ReportTypeBeta} type The type of the report to run. + * @param {*} [axiosOptions] Override http request option. + * @deprecated + * @throws {RequiredError} + */ + startCampaignReport: function (id, type, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.startCampaignReport(id, type, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * Generates a new campaign from a campaign template. The campaign object contained in the template has special formatting applied to its name and description fields in order to determine the generated campaign\'s name/description. Placeholders in those fields are formatted with the current date and time upon generation. Placeholders consist of a percent sign followed by a letter indicating what should be inserted; for example, \"%Y\" will insert the current year; a campaign template named \"Campaign for %y\" would generate a campaign called \"Campaign for 2020\" (assuming the year at generation time is 2020). Valid placeholders are the date/time conversion suffix characters supported by [java.util.Formatter](https://docs.oracle.com/javase/8/docs/api/java/util/Formatter.html). Requires roles ORG_ADMIN. + * @summary Generate a Campaign from Template + * @param {string} id The ID of the campaign template to use for generation. + * @param {*} [axiosOptions] Override http request option. + * @deprecated + * @throws {RequiredError} + */ + startGenerateCampaignTemplate: function (id, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.startGenerateCampaignTemplate(id, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * Allows updating individual fields on a campaign using the [JSON Patch](https://tools.ietf.org/html/rfc6902) standard. + * @summary Update a Campaign + * @param {string} id The ID of the campaign template being modified. + * @param {Array} requestBody A list of campaign update operations according to the [JSON Patch](https://tools.ietf.org/html/rfc6902) standard. The fields that can be patched differ based on the status of the campaign. In the *STAGED* status, the following fields can be patched: * name * description * recommendationsEnabled * deadline * emailNotificationEnabled * autoRevokeAllowed In the *ACTIVE* status, the following fields can be patched: * deadline + * @param {*} [axiosOptions] Override http request option. + * @deprecated + * @throws {RequiredError} + */ + updateCampaign: function (id, requestBody, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.updateCampaign(id, requestBody, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + }; + }; + exports.CertificationCampaignsBetaApiFp = CertificationCampaignsBetaApiFp; + /** + * CertificationCampaignsBetaApi - factory interface + * @export + */ + var CertificationCampaignsBetaApiFactory = function (configuration, basePath, axios) { + var localVarFp = (0, exports.CertificationCampaignsBetaApiFp)(configuration); + return { + /** + * :::caution This endpoint will run successfully for any campaigns that are **past due**. This endpoint will return a content error if the campaign is **not past due**. ::: Completes a certification campaign. This is provided to admins so that they can complete a certification even if all items have not been completed. Requires roles of CERT_ADMIN and ORG_ADMIN + * @summary Complete a Campaign + * @param {string} id The campaign id + * @param {CompleteCampaignOptionsBeta} [completeCampaignOptionsBeta] Optional. Default behavior is for the campaign to auto-approve upon completion, unless autoCompleteAction=REVOKE + * @param {*} [axiosOptions] Override http request option. + * @deprecated + * @throws {RequiredError} + */ + completeCampaign: function (id, completeCampaignOptionsBeta, axiosOptions) { + return localVarFp.completeCampaign(id, completeCampaignOptionsBeta, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * Creates a new Certification Campaign with the information provided in the request body. + * @summary Create a campaign + * @param {CampaignBeta} campaignBeta + * @param {*} [axiosOptions] Override http request option. + * @deprecated + * @throws {RequiredError} + */ + createCampaign: function (campaignBeta, axiosOptions) { + return localVarFp.createCampaign(campaignBeta, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * Create a campaign Template based on campaign. + * @summary Create a Campaign Template + * @param {CampaignTemplateBeta} campaignTemplateBeta + * @param {*} [axiosOptions] Override http request option. + * @deprecated + * @throws {RequiredError} + */ + createCampaignTemplate: function (campaignTemplateBeta, axiosOptions) { + return localVarFp.createCampaignTemplate(campaignTemplateBeta, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * Deletes a campaign template by ID. + * @summary Delete a Campaign Template + * @param {string} id The ID of the campaign template being deleted. + * @param {*} [axiosOptions] Override http request option. + * @deprecated + * @throws {RequiredError} + */ + deleteCampaignTemplate: function (id, axiosOptions) { + return localVarFp.deleteCampaignTemplate(id, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * Deletes the schedule for a campaign template. Returns a 404 if there is no schedule set. + * @summary Deletes a Campaign Template\'s Schedule + * @param {string} id The ID of the campaign template whose schedule is being deleted. + * @param {*} [axiosOptions] Override http request option. + * @deprecated + * @throws {RequiredError} + */ + deleteCampaignTemplateSchedule: function (id, axiosOptions) { + return localVarFp.deleteCampaignTemplateSchedule(id, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * Deletes campaigns whose Ids are specified in the provided list of campaign Ids. Authorized callers must be an ORG_ADMIN or a CERT_ADMIN. + * @summary Deletes Campaigns + * @param {DeleteCampaignsRequestBeta} deleteCampaignsRequestBeta The ids of the campaigns to delete. + * @param {*} [axiosOptions] Override http request option. + * @deprecated + * @throws {RequiredError} + */ + deleteCampaigns: function (deleteCampaignsRequestBeta, axiosOptions) { + return localVarFp.deleteCampaigns(deleteCampaignsRequestBeta, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * Gets campaigns and returns them in a list. Can provide increased level of detail for each campaign if provided the correct query. + * @summary List Campaigns + * @param {'SLIM' | 'FULL'} [detail] Determines whether slim, or increased level of detail is provided for each campaign in the returned list. Slim is the default behavior. + * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **id**: *eq, in* **name**: *eq, sw* **status**: *eq, in* + * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **name, created** + * @param {*} [axiosOptions] Override http request option. + * @deprecated + * @throws {RequiredError} + */ + getActiveCampaigns: function (detail, limit, offset, count, filters, sorters, axiosOptions) { + return localVarFp.getActiveCampaigns(detail, limit, offset, count, filters, sorters, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * Retrieves information for an existing campaign using the campaign\'s ID. Authorized callers must be a reviewer for this campaign, an ORG_ADMIN, or a CERT_ADMIN. + * @summary Get a campaign + * @param {string} id The ID of the campaign to be retrieved + * @param {*} [axiosOptions] Override http request option. + * @deprecated + * @throws {RequiredError} + */ + getCampaign: function (id, axiosOptions) { + return localVarFp.getCampaign(id, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * Fetches all reports for a certification campaign by campaign ID. Requires roles of CERT_ADMIN, DASHBOARD, ORG_ADMIN and REPORT_ADMIN + * @summary Get Campaign Reports + * @param {string} id The ID of the campaign for which reports are being fetched. + * @param {*} [axiosOptions] Override http request option. + * @deprecated + * @throws {RequiredError} + */ + getCampaignReports: function (id, axiosOptions) { + return localVarFp.getCampaignReports(id, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * Fetches configuration for campaign reports. Currently it includes only one element - identity attributes defined as custom report columns. Requires roles of CERT_ADMIN and ORG_ADMIN. + * @summary Get Campaign Reports Configuration + * @param {*} [axiosOptions] Override http request option. + * @deprecated + * @throws {RequiredError} + */ + getCampaignReportsConfig: function (axiosOptions) { + return localVarFp.getCampaignReportsConfig(axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * Fetches a campaign template by ID. + * @summary Get a Campaign Template + * @param {string} id The desired campaign template\'s ID. + * @param {*} [axiosOptions] Override http request option. + * @deprecated + * @throws {RequiredError} + */ + getCampaignTemplate: function (id, axiosOptions) { + return localVarFp.getCampaignTemplate(id, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * Gets the schedule for a campaign template. Returns a 404 if there is no schedule set. + * @summary Gets a Campaign Template\'s Schedule + * @param {string} id The ID of the campaign template whose schedule is being fetched. + * @param {*} [axiosOptions] Override http request option. + * @deprecated + * @throws {RequiredError} + */ + getCampaignTemplateSchedule: function (id, axiosOptions) { + return localVarFp.getCampaignTemplateSchedule(id, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * Lists all CampaignTemplates. Scope can be reduced via standard V3 query params. All CampaignTemplates matching the query params + * @summary List Campaign Templates + * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **name, created, modified** + * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **name**: *eq, ge, gt, in, le, lt, ne, sw* **id**: *eq, ge, gt, in, le, lt, ne, sw* + * @param {*} [axiosOptions] Override http request option. + * @deprecated + * @throws {RequiredError} + */ + listCampaignTemplates: function (limit, offset, count, sorters, filters, axiosOptions) { + return localVarFp.listCampaignTemplates(limit, offset, count, sorters, filters, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This API reassigns the specified certifications from one identity to another. A token with ORG_ADMIN or CERT_ADMIN authority is required to call this API. + * @summary Reassign Certifications + * @param {string} id The certification campaign ID + * @param {AdminReviewReassignBeta} adminReviewReassignBeta + * @param {*} [axiosOptions] Override http request option. + * @deprecated + * @throws {RequiredError} + */ + move: function (id, adminReviewReassignBeta, axiosOptions) { + return localVarFp.move(id, adminReviewReassignBeta, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * Allows updating individual fields on a campaign template using the [JSON Patch](https://tools.ietf.org/html/rfc6902) standard. + * @summary Update a Campaign Template + * @param {string} id The ID of the campaign template being modified. + * @param {Array} jsonPatchOperationBeta A list of campaign update operations according to the [JSON Patch](https://tools.ietf.org/html/rfc6902) standard. The following fields are patchable: * name * description * deadlineDuration * campaign (all fields that are allowed during create) + * @param {*} [axiosOptions] Override http request option. + * @deprecated + * @throws {RequiredError} + */ + patchCampaignTemplate: function (id, jsonPatchOperationBeta, axiosOptions) { + return localVarFp.patchCampaignTemplate(id, jsonPatchOperationBeta, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * Overwrites configuration for campaign reports. Requires roles CERT_ADMIN and ORG_ADMIN. + * @summary Set Campaign Reports Configuration + * @param {CampaignReportsConfigBeta} campaignReportsConfigBeta Campaign Report Configuration + * @param {*} [axiosOptions] Override http request option. + * @deprecated + * @throws {RequiredError} + */ + setCampaignReportsConfig: function (campaignReportsConfigBeta, axiosOptions) { + return localVarFp.setCampaignReportsConfig(campaignReportsConfigBeta, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * Sets the schedule for a campaign template. If a schedule already exists, it will be overwritten with the new one. + * @summary Sets a Campaign Template\'s Schedule + * @param {string} id The ID of the campaign template being scheduled. + * @param {ScheduleBeta} [scheduleBeta] + * @param {*} [axiosOptions] Override http request option. + * @deprecated + * @throws {RequiredError} + */ + setCampaignTemplateSchedule: function (id, scheduleBeta, axiosOptions) { + return localVarFp.setCampaignTemplateSchedule(id, scheduleBeta, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * Submits a job to activate the campaign with the given Id. The campaign must be staged. Requires roles of CERT_ADMIN and ORG_ADMIN + * @summary Activate a Campaign + * @param {string} id The campaign id + * @param {ActivateCampaignOptionsBeta} [activateCampaignOptionsBeta] Optional. If no timezone is specified, the standard UTC timezone is used (i.e. UTC+00:00). Although this can take any timezone, the intended value is the caller\'s timezone. The activation time calculated from the given timezone may cause the campaign deadline time to be modified, but it will remain within the original date. The timezone must be in a valid ISO 8601 format. + * @param {*} [axiosOptions] Override http request option. + * @deprecated + * @throws {RequiredError} + */ + startCampaign: function (id, activateCampaignOptionsBeta, axiosOptions) { + return localVarFp.startCampaign(id, activateCampaignOptionsBeta, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * Kicks off remediation scan task for a certification campaign. Requires roles of CERT_ADMIN and ORG_ADMIN + * @summary Run Campaign Remediation Scan + * @param {string} id The ID of the campaign for which remediation scan is being run. + * @param {*} [axiosOptions] Override http request option. + * @deprecated + * @throws {RequiredError} + */ + startCampaignRemediationScan: function (id, axiosOptions) { + return localVarFp.startCampaignRemediationScan(id, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * Runs a report for a certification campaign. Requires the following roles: CERT_ADMIN, DASHBOARD, ORG_ADMIN and REPORT_ADMIN. + * @summary Run Campaign Report + * @param {string} id The ID of the campaign for which report is being run. + * @param {ReportTypeBeta} type The type of the report to run. + * @param {*} [axiosOptions] Override http request option. + * @deprecated + * @throws {RequiredError} + */ + startCampaignReport: function (id, type, axiosOptions) { + return localVarFp.startCampaignReport(id, type, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * Generates a new campaign from a campaign template. The campaign object contained in the template has special formatting applied to its name and description fields in order to determine the generated campaign\'s name/description. Placeholders in those fields are formatted with the current date and time upon generation. Placeholders consist of a percent sign followed by a letter indicating what should be inserted; for example, \"%Y\" will insert the current year; a campaign template named \"Campaign for %y\" would generate a campaign called \"Campaign for 2020\" (assuming the year at generation time is 2020). Valid placeholders are the date/time conversion suffix characters supported by [java.util.Formatter](https://docs.oracle.com/javase/8/docs/api/java/util/Formatter.html). Requires roles ORG_ADMIN. + * @summary Generate a Campaign from Template + * @param {string} id The ID of the campaign template to use for generation. + * @param {*} [axiosOptions] Override http request option. + * @deprecated + * @throws {RequiredError} + */ + startGenerateCampaignTemplate: function (id, axiosOptions) { + return localVarFp.startGenerateCampaignTemplate(id, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * Allows updating individual fields on a campaign using the [JSON Patch](https://tools.ietf.org/html/rfc6902) standard. + * @summary Update a Campaign + * @param {string} id The ID of the campaign template being modified. + * @param {Array} requestBody A list of campaign update operations according to the [JSON Patch](https://tools.ietf.org/html/rfc6902) standard. The fields that can be patched differ based on the status of the campaign. In the *STAGED* status, the following fields can be patched: * name * description * recommendationsEnabled * deadline * emailNotificationEnabled * autoRevokeAllowed In the *ACTIVE* status, the following fields can be patched: * deadline + * @param {*} [axiosOptions] Override http request option. + * @deprecated + * @throws {RequiredError} + */ + updateCampaign: function (id, requestBody, axiosOptions) { + return localVarFp.updateCampaign(id, requestBody, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + }; + }; + exports.CertificationCampaignsBetaApiFactory = CertificationCampaignsBetaApiFactory; + /** + * CertificationCampaignsBetaApi - object-oriented interface + * @export + * @class CertificationCampaignsBetaApi + * @extends {BaseAPI} + */ + var CertificationCampaignsBetaApi = /** @class */ (function (_super) { + __extends(CertificationCampaignsBetaApi, _super); + function CertificationCampaignsBetaApi() { + return _super !== null && _super.apply(this, arguments) || this; + } + /** + * :::caution This endpoint will run successfully for any campaigns that are **past due**. This endpoint will return a content error if the campaign is **not past due**. ::: Completes a certification campaign. This is provided to admins so that they can complete a certification even if all items have not been completed. Requires roles of CERT_ADMIN and ORG_ADMIN + * @summary Complete a Campaign + * @param {CertificationCampaignsBetaApiCompleteCampaignRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @deprecated + * @throws {RequiredError} + * @memberof CertificationCampaignsBetaApi + */ + CertificationCampaignsBetaApi.prototype.completeCampaign = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.CertificationCampaignsBetaApiFp)(this.configuration).completeCampaign(requestParameters.id, requestParameters.completeCampaignOptionsBeta, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * Creates a new Certification Campaign with the information provided in the request body. + * @summary Create a campaign + * @param {CertificationCampaignsBetaApiCreateCampaignRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @deprecated + * @throws {RequiredError} + * @memberof CertificationCampaignsBetaApi + */ + CertificationCampaignsBetaApi.prototype.createCampaign = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.CertificationCampaignsBetaApiFp)(this.configuration).createCampaign(requestParameters.campaignBeta, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * Create a campaign Template based on campaign. + * @summary Create a Campaign Template + * @param {CertificationCampaignsBetaApiCreateCampaignTemplateRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @deprecated + * @throws {RequiredError} + * @memberof CertificationCampaignsBetaApi + */ + CertificationCampaignsBetaApi.prototype.createCampaignTemplate = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.CertificationCampaignsBetaApiFp)(this.configuration).createCampaignTemplate(requestParameters.campaignTemplateBeta, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * Deletes a campaign template by ID. + * @summary Delete a Campaign Template + * @param {CertificationCampaignsBetaApiDeleteCampaignTemplateRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @deprecated + * @throws {RequiredError} + * @memberof CertificationCampaignsBetaApi + */ + CertificationCampaignsBetaApi.prototype.deleteCampaignTemplate = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.CertificationCampaignsBetaApiFp)(this.configuration).deleteCampaignTemplate(requestParameters.id, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * Deletes the schedule for a campaign template. Returns a 404 if there is no schedule set. + * @summary Deletes a Campaign Template\'s Schedule + * @param {CertificationCampaignsBetaApiDeleteCampaignTemplateScheduleRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @deprecated + * @throws {RequiredError} + * @memberof CertificationCampaignsBetaApi + */ + CertificationCampaignsBetaApi.prototype.deleteCampaignTemplateSchedule = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.CertificationCampaignsBetaApiFp)(this.configuration).deleteCampaignTemplateSchedule(requestParameters.id, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * Deletes campaigns whose Ids are specified in the provided list of campaign Ids. Authorized callers must be an ORG_ADMIN or a CERT_ADMIN. + * @summary Deletes Campaigns + * @param {CertificationCampaignsBetaApiDeleteCampaignsRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @deprecated + * @throws {RequiredError} + * @memberof CertificationCampaignsBetaApi + */ + CertificationCampaignsBetaApi.prototype.deleteCampaigns = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.CertificationCampaignsBetaApiFp)(this.configuration).deleteCampaigns(requestParameters.deleteCampaignsRequestBeta, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * Gets campaigns and returns them in a list. Can provide increased level of detail for each campaign if provided the correct query. + * @summary List Campaigns + * @param {CertificationCampaignsBetaApiGetActiveCampaignsRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @deprecated + * @throws {RequiredError} + * @memberof CertificationCampaignsBetaApi + */ + CertificationCampaignsBetaApi.prototype.getActiveCampaigns = function (requestParameters, axiosOptions) { + var _this = this; + if (requestParameters === void 0) { requestParameters = {}; } + return (0, exports.CertificationCampaignsBetaApiFp)(this.configuration).getActiveCampaigns(requestParameters.detail, requestParameters.limit, requestParameters.offset, requestParameters.count, requestParameters.filters, requestParameters.sorters, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * Retrieves information for an existing campaign using the campaign\'s ID. Authorized callers must be a reviewer for this campaign, an ORG_ADMIN, or a CERT_ADMIN. + * @summary Get a campaign + * @param {CertificationCampaignsBetaApiGetCampaignRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @deprecated + * @throws {RequiredError} + * @memberof CertificationCampaignsBetaApi + */ + CertificationCampaignsBetaApi.prototype.getCampaign = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.CertificationCampaignsBetaApiFp)(this.configuration).getCampaign(requestParameters.id, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * Fetches all reports for a certification campaign by campaign ID. Requires roles of CERT_ADMIN, DASHBOARD, ORG_ADMIN and REPORT_ADMIN + * @summary Get Campaign Reports + * @param {CertificationCampaignsBetaApiGetCampaignReportsRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @deprecated + * @throws {RequiredError} + * @memberof CertificationCampaignsBetaApi + */ + CertificationCampaignsBetaApi.prototype.getCampaignReports = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.CertificationCampaignsBetaApiFp)(this.configuration).getCampaignReports(requestParameters.id, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * Fetches configuration for campaign reports. Currently it includes only one element - identity attributes defined as custom report columns. Requires roles of CERT_ADMIN and ORG_ADMIN. + * @summary Get Campaign Reports Configuration + * @param {*} [axiosOptions] Override http request option. + * @deprecated + * @throws {RequiredError} + * @memberof CertificationCampaignsBetaApi + */ + CertificationCampaignsBetaApi.prototype.getCampaignReportsConfig = function (axiosOptions) { + var _this = this; + return (0, exports.CertificationCampaignsBetaApiFp)(this.configuration).getCampaignReportsConfig(axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * Fetches a campaign template by ID. + * @summary Get a Campaign Template + * @param {CertificationCampaignsBetaApiGetCampaignTemplateRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @deprecated + * @throws {RequiredError} + * @memberof CertificationCampaignsBetaApi + */ + CertificationCampaignsBetaApi.prototype.getCampaignTemplate = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.CertificationCampaignsBetaApiFp)(this.configuration).getCampaignTemplate(requestParameters.id, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * Gets the schedule for a campaign template. Returns a 404 if there is no schedule set. + * @summary Gets a Campaign Template\'s Schedule + * @param {CertificationCampaignsBetaApiGetCampaignTemplateScheduleRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @deprecated + * @throws {RequiredError} + * @memberof CertificationCampaignsBetaApi + */ + CertificationCampaignsBetaApi.prototype.getCampaignTemplateSchedule = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.CertificationCampaignsBetaApiFp)(this.configuration).getCampaignTemplateSchedule(requestParameters.id, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * Lists all CampaignTemplates. Scope can be reduced via standard V3 query params. All CampaignTemplates matching the query params + * @summary List Campaign Templates + * @param {CertificationCampaignsBetaApiListCampaignTemplatesRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @deprecated + * @throws {RequiredError} + * @memberof CertificationCampaignsBetaApi + */ + CertificationCampaignsBetaApi.prototype.listCampaignTemplates = function (requestParameters, axiosOptions) { + var _this = this; + if (requestParameters === void 0) { requestParameters = {}; } + return (0, exports.CertificationCampaignsBetaApiFp)(this.configuration).listCampaignTemplates(requestParameters.limit, requestParameters.offset, requestParameters.count, requestParameters.sorters, requestParameters.filters, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This API reassigns the specified certifications from one identity to another. A token with ORG_ADMIN or CERT_ADMIN authority is required to call this API. + * @summary Reassign Certifications + * @param {CertificationCampaignsBetaApiMoveRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @deprecated + * @throws {RequiredError} + * @memberof CertificationCampaignsBetaApi + */ + CertificationCampaignsBetaApi.prototype.move = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.CertificationCampaignsBetaApiFp)(this.configuration).move(requestParameters.id, requestParameters.adminReviewReassignBeta, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * Allows updating individual fields on a campaign template using the [JSON Patch](https://tools.ietf.org/html/rfc6902) standard. + * @summary Update a Campaign Template + * @param {CertificationCampaignsBetaApiPatchCampaignTemplateRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @deprecated + * @throws {RequiredError} + * @memberof CertificationCampaignsBetaApi + */ + CertificationCampaignsBetaApi.prototype.patchCampaignTemplate = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.CertificationCampaignsBetaApiFp)(this.configuration).patchCampaignTemplate(requestParameters.id, requestParameters.jsonPatchOperationBeta, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * Overwrites configuration for campaign reports. Requires roles CERT_ADMIN and ORG_ADMIN. + * @summary Set Campaign Reports Configuration + * @param {CertificationCampaignsBetaApiSetCampaignReportsConfigRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @deprecated + * @throws {RequiredError} + * @memberof CertificationCampaignsBetaApi + */ + CertificationCampaignsBetaApi.prototype.setCampaignReportsConfig = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.CertificationCampaignsBetaApiFp)(this.configuration).setCampaignReportsConfig(requestParameters.campaignReportsConfigBeta, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * Sets the schedule for a campaign template. If a schedule already exists, it will be overwritten with the new one. + * @summary Sets a Campaign Template\'s Schedule + * @param {CertificationCampaignsBetaApiSetCampaignTemplateScheduleRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @deprecated + * @throws {RequiredError} + * @memberof CertificationCampaignsBetaApi + */ + CertificationCampaignsBetaApi.prototype.setCampaignTemplateSchedule = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.CertificationCampaignsBetaApiFp)(this.configuration).setCampaignTemplateSchedule(requestParameters.id, requestParameters.scheduleBeta, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * Submits a job to activate the campaign with the given Id. The campaign must be staged. Requires roles of CERT_ADMIN and ORG_ADMIN + * @summary Activate a Campaign + * @param {CertificationCampaignsBetaApiStartCampaignRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @deprecated + * @throws {RequiredError} + * @memberof CertificationCampaignsBetaApi + */ + CertificationCampaignsBetaApi.prototype.startCampaign = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.CertificationCampaignsBetaApiFp)(this.configuration).startCampaign(requestParameters.id, requestParameters.activateCampaignOptionsBeta, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * Kicks off remediation scan task for a certification campaign. Requires roles of CERT_ADMIN and ORG_ADMIN + * @summary Run Campaign Remediation Scan + * @param {CertificationCampaignsBetaApiStartCampaignRemediationScanRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @deprecated + * @throws {RequiredError} + * @memberof CertificationCampaignsBetaApi + */ + CertificationCampaignsBetaApi.prototype.startCampaignRemediationScan = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.CertificationCampaignsBetaApiFp)(this.configuration).startCampaignRemediationScan(requestParameters.id, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * Runs a report for a certification campaign. Requires the following roles: CERT_ADMIN, DASHBOARD, ORG_ADMIN and REPORT_ADMIN. + * @summary Run Campaign Report + * @param {CertificationCampaignsBetaApiStartCampaignReportRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @deprecated + * @throws {RequiredError} + * @memberof CertificationCampaignsBetaApi + */ + CertificationCampaignsBetaApi.prototype.startCampaignReport = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.CertificationCampaignsBetaApiFp)(this.configuration).startCampaignReport(requestParameters.id, requestParameters.type, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * Generates a new campaign from a campaign template. The campaign object contained in the template has special formatting applied to its name and description fields in order to determine the generated campaign\'s name/description. Placeholders in those fields are formatted with the current date and time upon generation. Placeholders consist of a percent sign followed by a letter indicating what should be inserted; for example, \"%Y\" will insert the current year; a campaign template named \"Campaign for %y\" would generate a campaign called \"Campaign for 2020\" (assuming the year at generation time is 2020). Valid placeholders are the date/time conversion suffix characters supported by [java.util.Formatter](https://docs.oracle.com/javase/8/docs/api/java/util/Formatter.html). Requires roles ORG_ADMIN. + * @summary Generate a Campaign from Template + * @param {CertificationCampaignsBetaApiStartGenerateCampaignTemplateRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @deprecated + * @throws {RequiredError} + * @memberof CertificationCampaignsBetaApi + */ + CertificationCampaignsBetaApi.prototype.startGenerateCampaignTemplate = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.CertificationCampaignsBetaApiFp)(this.configuration).startGenerateCampaignTemplate(requestParameters.id, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * Allows updating individual fields on a campaign using the [JSON Patch](https://tools.ietf.org/html/rfc6902) standard. + * @summary Update a Campaign + * @param {CertificationCampaignsBetaApiUpdateCampaignRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @deprecated + * @throws {RequiredError} + * @memberof CertificationCampaignsBetaApi + */ + CertificationCampaignsBetaApi.prototype.updateCampaign = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.CertificationCampaignsBetaApiFp)(this.configuration).updateCampaign(requestParameters.id, requestParameters.requestBody, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + return CertificationCampaignsBetaApi; + }(base_1.BaseAPI)); + exports.CertificationCampaignsBetaApi = CertificationCampaignsBetaApi; + /** + * CertificationsBetaApi - axios parameter creator + * @export + */ + var CertificationsBetaApiAxiosParamCreator = function (configuration) { + var _this = this; + return { + /** + * This API returns the permissions associated with an entitlement certification item based on the certification item\'s ID. A token with ORG_ADMIN or CERT_ADMIN authority is required to call this API. Reviewers for this certification can also call this API. + * @summary Permissions for Entitlement Certification Item + * @param {string} certificationId The certification ID + * @param {string} itemId The certification item ID + * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **target**: *eq, sw* **rights**: *ca* All field values (second filter operands) are case-insensitive for this API. Only a single *and* or *or* composite filter operator may be used. It must also be used between a target filter and a rights filter, not between 2 filters for the same field. For example, the following is valid: `?filters=rights+ca+(%22CREATE%22)+and+target+eq+%22SYS.OBJAUTH2%22` The following is invalid: `?filters=rights+ca+(%22CREATE%22)+and+rights+ca+(%SELECT%22)` + * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {*} [axiosOptions] Override http request option. + * @deprecated + * @throws {RequiredError} + */ + getIdentityCertificationItemPermissions: function (certificationId, itemId, filters, limit, offset, count, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'certificationId' is not null or undefined + (0, common_1.assertParamExists)('getIdentityCertificationItemPermissions', 'certificationId', certificationId); + // verify required parameter 'itemId' is not null or undefined + (0, common_1.assertParamExists)('getIdentityCertificationItemPermissions', 'itemId', itemId); + localVarPath = "/certifications/{certificationId}/access-review-items/{itemId}/permissions" + .replace("{".concat("certificationId", "}"), encodeURIComponent(String(certificationId))) + .replace("{".concat("itemId", "}"), encodeURIComponent(String(itemId))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + if (filters !== undefined) { + localVarQueryParameter['filters'] = filters; + } + if (limit !== undefined) { + localVarQueryParameter['limit'] = limit; + } + if (offset !== undefined) { + localVarQueryParameter['offset'] = offset; + } + if (count !== undefined) { + localVarQueryParameter['count'] = count; + } + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This API returns the status of all pending (`QUEUED` or `IN_PROGRESS`) tasks for an identity campaign certification. A token with ORG_ADMIN or CERT_ADMIN authority is required to call this API. Reviewers for this certification can also call this API. + * @summary Pending Certification Tasks + * @param {string} id The identity campaign certification ID + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getIdentityCertificationPendingTasks: function (id, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'id' is not null or undefined + (0, common_1.assertParamExists)('getIdentityCertificationPendingTasks', 'id', id); + localVarPath = "/certifications/{id}/tasks-pending" + .replace("{".concat("id", "}"), encodeURIComponent(String(id))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This API returns the status of a certification task. A token with ORG_ADMIN or CERT_ADMIN authority is required to call this API. Reviewers for this certification can also call this API. + * @summary Certification Task Status + * @param {string} id The identity campaign certification ID + * @param {string} taskId The certification task ID + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getIdentityCertificationTaskStatus: function (id, taskId, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'id' is not null or undefined + (0, common_1.assertParamExists)('getIdentityCertificationTaskStatus', 'id', id); + // verify required parameter 'taskId' is not null or undefined + (0, common_1.assertParamExists)('getIdentityCertificationTaskStatus', 'taskId', taskId); + localVarPath = "/certifications/{id}/tasks/{taskId}" + .replace("{".concat("id", "}"), encodeURIComponent(String(id))) + .replace("{".concat("taskId", "}"), encodeURIComponent(String(taskId))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This API returns a list of reviewers for the certification. A token with ORG_ADMIN or CERT_ADMIN authority is required to call this API. Reviewers for this certification can also call this API. + * @summary List of Reviewers for certification + * @param {string} id The certification ID + * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **id**: *eq, in* **name**: *eq, sw* **email**: *eq, sw* + * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **name, email** + * @param {*} [axiosOptions] Override http request option. + * @deprecated + * @throws {RequiredError} + */ + listCertificationReviewers: function (id, limit, offset, count, filters, sorters, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'id' is not null or undefined + (0, common_1.assertParamExists)('listCertificationReviewers', 'id', id); + localVarPath = "/certifications/{id}/reviewers" + .replace("{".concat("id", "}"), encodeURIComponent(String(id))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + if (limit !== undefined) { + localVarQueryParameter['limit'] = limit; + } + if (offset !== undefined) { + localVarQueryParameter['offset'] = offset; + } + if (count !== undefined) { + localVarQueryParameter['count'] = count; + } + if (filters !== undefined) { + localVarQueryParameter['filters'] = filters; + } + if (sorters !== undefined) { + localVarQueryParameter['sorters'] = sorters; + } + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This API initiates a task to reassign up to 500 identities or items in an identity campaign certification to another reviewer. The `certification-tasks` API can be used to get an updated status on the task and determine when the reassignment is complete. A token with ORG_ADMIN or CERT_ADMIN authority is required to call this API. Reviewers for this certification can also call this API. + * @summary Reassign Certifications Asynchronously + * @param {string} id The identity campaign certification ID + * @param {ReviewReassignBeta} reviewReassignBeta + * @param {*} [axiosOptions] Override http request option. + * @deprecated + * @throws {RequiredError} + */ + submitReassignCertsAsync: function (id, reviewReassignBeta, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'id' is not null or undefined + (0, common_1.assertParamExists)('submitReassignCertsAsync', 'id', id); + // verify required parameter 'reviewReassignBeta' is not null or undefined + (0, common_1.assertParamExists)('submitReassignCertsAsync', 'reviewReassignBeta', reviewReassignBeta); + localVarPath = "/certifications/{id}/reassign-async" + .replace("{".concat("id", "}"), encodeURIComponent(String(id))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + localVarHeaderParameter['Content-Type'] = 'application/json'; + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(reviewReassignBeta, localVarRequestOptions, configuration); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + }; + }; + exports.CertificationsBetaApiAxiosParamCreator = CertificationsBetaApiAxiosParamCreator; + /** + * CertificationsBetaApi - functional programming interface + * @export + */ + var CertificationsBetaApiFp = function (configuration) { + var localVarAxiosParamCreator = (0, exports.CertificationsBetaApiAxiosParamCreator)(configuration); + return { + /** + * This API returns the permissions associated with an entitlement certification item based on the certification item\'s ID. A token with ORG_ADMIN or CERT_ADMIN authority is required to call this API. Reviewers for this certification can also call this API. + * @summary Permissions for Entitlement Certification Item + * @param {string} certificationId The certification ID + * @param {string} itemId The certification item ID + * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **target**: *eq, sw* **rights**: *ca* All field values (second filter operands) are case-insensitive for this API. Only a single *and* or *or* composite filter operator may be used. It must also be used between a target filter and a rights filter, not between 2 filters for the same field. For example, the following is valid: `?filters=rights+ca+(%22CREATE%22)+and+target+eq+%22SYS.OBJAUTH2%22` The following is invalid: `?filters=rights+ca+(%22CREATE%22)+and+rights+ca+(%SELECT%22)` + * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {*} [axiosOptions] Override http request option. + * @deprecated + * @throws {RequiredError} + */ + getIdentityCertificationItemPermissions: function (certificationId, itemId, filters, limit, offset, count, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.getIdentityCertificationItemPermissions(certificationId, itemId, filters, limit, offset, count, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This API returns the status of all pending (`QUEUED` or `IN_PROGRESS`) tasks for an identity campaign certification. A token with ORG_ADMIN or CERT_ADMIN authority is required to call this API. Reviewers for this certification can also call this API. + * @summary Pending Certification Tasks + * @param {string} id The identity campaign certification ID + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getIdentityCertificationPendingTasks: function (id, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.getIdentityCertificationPendingTasks(id, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This API returns the status of a certification task. A token with ORG_ADMIN or CERT_ADMIN authority is required to call this API. Reviewers for this certification can also call this API. + * @summary Certification Task Status + * @param {string} id The identity campaign certification ID + * @param {string} taskId The certification task ID + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getIdentityCertificationTaskStatus: function (id, taskId, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.getIdentityCertificationTaskStatus(id, taskId, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This API returns a list of reviewers for the certification. A token with ORG_ADMIN or CERT_ADMIN authority is required to call this API. Reviewers for this certification can also call this API. + * @summary List of Reviewers for certification + * @param {string} id The certification ID + * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **id**: *eq, in* **name**: *eq, sw* **email**: *eq, sw* + * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **name, email** + * @param {*} [axiosOptions] Override http request option. + * @deprecated + * @throws {RequiredError} + */ + listCertificationReviewers: function (id, limit, offset, count, filters, sorters, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.listCertificationReviewers(id, limit, offset, count, filters, sorters, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This API initiates a task to reassign up to 500 identities or items in an identity campaign certification to another reviewer. The `certification-tasks` API can be used to get an updated status on the task and determine when the reassignment is complete. A token with ORG_ADMIN or CERT_ADMIN authority is required to call this API. Reviewers for this certification can also call this API. + * @summary Reassign Certifications Asynchronously + * @param {string} id The identity campaign certification ID + * @param {ReviewReassignBeta} reviewReassignBeta + * @param {*} [axiosOptions] Override http request option. + * @deprecated + * @throws {RequiredError} + */ + submitReassignCertsAsync: function (id, reviewReassignBeta, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.submitReassignCertsAsync(id, reviewReassignBeta, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + }; + }; + exports.CertificationsBetaApiFp = CertificationsBetaApiFp; + /** + * CertificationsBetaApi - factory interface + * @export + */ + var CertificationsBetaApiFactory = function (configuration, basePath, axios) { + var localVarFp = (0, exports.CertificationsBetaApiFp)(configuration); + return { + /** + * This API returns the permissions associated with an entitlement certification item based on the certification item\'s ID. A token with ORG_ADMIN or CERT_ADMIN authority is required to call this API. Reviewers for this certification can also call this API. + * @summary Permissions for Entitlement Certification Item + * @param {string} certificationId The certification ID + * @param {string} itemId The certification item ID + * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **target**: *eq, sw* **rights**: *ca* All field values (second filter operands) are case-insensitive for this API. Only a single *and* or *or* composite filter operator may be used. It must also be used between a target filter and a rights filter, not between 2 filters for the same field. For example, the following is valid: `?filters=rights+ca+(%22CREATE%22)+and+target+eq+%22SYS.OBJAUTH2%22` The following is invalid: `?filters=rights+ca+(%22CREATE%22)+and+rights+ca+(%SELECT%22)` + * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {*} [axiosOptions] Override http request option. + * @deprecated + * @throws {RequiredError} + */ + getIdentityCertificationItemPermissions: function (certificationId, itemId, filters, limit, offset, count, axiosOptions) { + return localVarFp.getIdentityCertificationItemPermissions(certificationId, itemId, filters, limit, offset, count, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This API returns the status of all pending (`QUEUED` or `IN_PROGRESS`) tasks for an identity campaign certification. A token with ORG_ADMIN or CERT_ADMIN authority is required to call this API. Reviewers for this certification can also call this API. + * @summary Pending Certification Tasks + * @param {string} id The identity campaign certification ID + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getIdentityCertificationPendingTasks: function (id, axiosOptions) { + return localVarFp.getIdentityCertificationPendingTasks(id, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This API returns the status of a certification task. A token with ORG_ADMIN or CERT_ADMIN authority is required to call this API. Reviewers for this certification can also call this API. + * @summary Certification Task Status + * @param {string} id The identity campaign certification ID + * @param {string} taskId The certification task ID + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getIdentityCertificationTaskStatus: function (id, taskId, axiosOptions) { + return localVarFp.getIdentityCertificationTaskStatus(id, taskId, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This API returns a list of reviewers for the certification. A token with ORG_ADMIN or CERT_ADMIN authority is required to call this API. Reviewers for this certification can also call this API. + * @summary List of Reviewers for certification + * @param {string} id The certification ID + * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **id**: *eq, in* **name**: *eq, sw* **email**: *eq, sw* + * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **name, email** + * @param {*} [axiosOptions] Override http request option. + * @deprecated + * @throws {RequiredError} + */ + listCertificationReviewers: function (id, limit, offset, count, filters, sorters, axiosOptions) { + return localVarFp.listCertificationReviewers(id, limit, offset, count, filters, sorters, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This API initiates a task to reassign up to 500 identities or items in an identity campaign certification to another reviewer. The `certification-tasks` API can be used to get an updated status on the task and determine when the reassignment is complete. A token with ORG_ADMIN or CERT_ADMIN authority is required to call this API. Reviewers for this certification can also call this API. + * @summary Reassign Certifications Asynchronously + * @param {string} id The identity campaign certification ID + * @param {ReviewReassignBeta} reviewReassignBeta + * @param {*} [axiosOptions] Override http request option. + * @deprecated + * @throws {RequiredError} + */ + submitReassignCertsAsync: function (id, reviewReassignBeta, axiosOptions) { + return localVarFp.submitReassignCertsAsync(id, reviewReassignBeta, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + }; + }; + exports.CertificationsBetaApiFactory = CertificationsBetaApiFactory; + /** + * CertificationsBetaApi - object-oriented interface + * @export + * @class CertificationsBetaApi + * @extends {BaseAPI} + */ + var CertificationsBetaApi = /** @class */ (function (_super) { + __extends(CertificationsBetaApi, _super); + function CertificationsBetaApi() { + return _super !== null && _super.apply(this, arguments) || this; + } + /** + * This API returns the permissions associated with an entitlement certification item based on the certification item\'s ID. A token with ORG_ADMIN or CERT_ADMIN authority is required to call this API. Reviewers for this certification can also call this API. + * @summary Permissions for Entitlement Certification Item + * @param {CertificationsBetaApiGetIdentityCertificationItemPermissionsRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @deprecated + * @throws {RequiredError} + * @memberof CertificationsBetaApi + */ + CertificationsBetaApi.prototype.getIdentityCertificationItemPermissions = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.CertificationsBetaApiFp)(this.configuration).getIdentityCertificationItemPermissions(requestParameters.certificationId, requestParameters.itemId, requestParameters.filters, requestParameters.limit, requestParameters.offset, requestParameters.count, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This API returns the status of all pending (`QUEUED` or `IN_PROGRESS`) tasks for an identity campaign certification. A token with ORG_ADMIN or CERT_ADMIN authority is required to call this API. Reviewers for this certification can also call this API. + * @summary Pending Certification Tasks + * @param {CertificationsBetaApiGetIdentityCertificationPendingTasksRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof CertificationsBetaApi + */ + CertificationsBetaApi.prototype.getIdentityCertificationPendingTasks = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.CertificationsBetaApiFp)(this.configuration).getIdentityCertificationPendingTasks(requestParameters.id, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This API returns the status of a certification task. A token with ORG_ADMIN or CERT_ADMIN authority is required to call this API. Reviewers for this certification can also call this API. + * @summary Certification Task Status + * @param {CertificationsBetaApiGetIdentityCertificationTaskStatusRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof CertificationsBetaApi + */ + CertificationsBetaApi.prototype.getIdentityCertificationTaskStatus = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.CertificationsBetaApiFp)(this.configuration).getIdentityCertificationTaskStatus(requestParameters.id, requestParameters.taskId, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This API returns a list of reviewers for the certification. A token with ORG_ADMIN or CERT_ADMIN authority is required to call this API. Reviewers for this certification can also call this API. + * @summary List of Reviewers for certification + * @param {CertificationsBetaApiListCertificationReviewersRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @deprecated + * @throws {RequiredError} + * @memberof CertificationsBetaApi + */ + CertificationsBetaApi.prototype.listCertificationReviewers = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.CertificationsBetaApiFp)(this.configuration).listCertificationReviewers(requestParameters.id, requestParameters.limit, requestParameters.offset, requestParameters.count, requestParameters.filters, requestParameters.sorters, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This API initiates a task to reassign up to 500 identities or items in an identity campaign certification to another reviewer. The `certification-tasks` API can be used to get an updated status on the task and determine when the reassignment is complete. A token with ORG_ADMIN or CERT_ADMIN authority is required to call this API. Reviewers for this certification can also call this API. + * @summary Reassign Certifications Asynchronously + * @param {CertificationsBetaApiSubmitReassignCertsAsyncRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @deprecated + * @throws {RequiredError} + * @memberof CertificationsBetaApi + */ + CertificationsBetaApi.prototype.submitReassignCertsAsync = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.CertificationsBetaApiFp)(this.configuration).submitReassignCertsAsync(requestParameters.id, requestParameters.reviewReassignBeta, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + return CertificationsBetaApi; + }(base_1.BaseAPI)); + exports.CertificationsBetaApi = CertificationsBetaApi; + /** + * ConnectorRuleManagementBetaApi - axios parameter creator + * @export + */ + var ConnectorRuleManagementBetaApiAxiosParamCreator = function (configuration) { + var _this = this; + return { + /** + * Creates a new connector rule. A token with ORG_ADMIN authority is required to call this API. + * @summary Create Connector Rule + * @param {ConnectorRuleCreateRequestBeta} connectorRuleCreateRequestBeta The connector rule to create + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + createConnectorRule: function (connectorRuleCreateRequestBeta, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'connectorRuleCreateRequestBeta' is not null or undefined + (0, common_1.assertParamExists)('createConnectorRule', 'connectorRuleCreateRequestBeta', connectorRuleCreateRequestBeta); + localVarPath = "/connector-rules"; + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + localVarHeaderParameter['Content-Type'] = 'application/json'; + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(connectorRuleCreateRequestBeta, localVarRequestOptions, configuration); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * Deletes the connector rule specified by the given ID. A token with ORG_ADMIN authority is required to call this API. + * @summary Delete a Connector-Rule + * @param {string} id ID of the connector rule to delete + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + deleteConnectorRule: function (id, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'id' is not null or undefined + (0, common_1.assertParamExists)('deleteConnectorRule', 'id', id); + localVarPath = "/connector-rules/{id}" + .replace("{".concat("id", "}"), encodeURIComponent(String(id))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'DELETE' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * Returns the connector rule specified by ID. A token with ORG_ADMIN authority is required to call this API. + * @summary Connector-Rule by ID + * @param {string} id ID of the connector rule to retrieve + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getConnectorRule: function (id, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'id' is not null or undefined + (0, common_1.assertParamExists)('getConnectorRule', 'id', id); + localVarPath = "/connector-rules/{id}" + .replace("{".concat("id", "}"), encodeURIComponent(String(id))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * Returns the list of connector rules. A token with ORG_ADMIN authority is required to call this API. + * @summary List Connector Rules + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getConnectorRuleList: function (axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + localVarPath = "/connector-rules"; + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * Updates an existing connector rule with the one provided in the request body. Note that the fields \'id\', \'name\', and \'type\' are immutable. A token with ORG_ADMIN authority is required to call this API. + * @summary Update a Connector Rule + * @param {string} id ID of the connector rule to update + * @param {ConnectorRuleUpdateRequestBeta} [connectorRuleUpdateRequestBeta] The connector rule with updated data + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + updateConnectorRule: function (id, connectorRuleUpdateRequestBeta, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'id' is not null or undefined + (0, common_1.assertParamExists)('updateConnectorRule', 'id', id); + localVarPath = "/connector-rules/{id}" + .replace("{".concat("id", "}"), encodeURIComponent(String(id))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'PUT' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + localVarHeaderParameter['Content-Type'] = 'application/json'; + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(connectorRuleUpdateRequestBeta, localVarRequestOptions, configuration); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * Returns a list of issues within the code to fix, if any. A token with ORG_ADMIN authority is required to call this API. + * @summary Validate Connector Rule + * @param {SourceCodeBeta} sourceCodeBeta The code to validate + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + validateConnectorRule: function (sourceCodeBeta, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'sourceCodeBeta' is not null or undefined + (0, common_1.assertParamExists)('validateConnectorRule', 'sourceCodeBeta', sourceCodeBeta); + localVarPath = "/connector-rules/validate"; + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + localVarHeaderParameter['Content-Type'] = 'application/json'; + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(sourceCodeBeta, localVarRequestOptions, configuration); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + }; + }; + exports.ConnectorRuleManagementBetaApiAxiosParamCreator = ConnectorRuleManagementBetaApiAxiosParamCreator; + /** + * ConnectorRuleManagementBetaApi - functional programming interface + * @export + */ + var ConnectorRuleManagementBetaApiFp = function (configuration) { + var localVarAxiosParamCreator = (0, exports.ConnectorRuleManagementBetaApiAxiosParamCreator)(configuration); + return { + /** + * Creates a new connector rule. A token with ORG_ADMIN authority is required to call this API. + * @summary Create Connector Rule + * @param {ConnectorRuleCreateRequestBeta} connectorRuleCreateRequestBeta The connector rule to create + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + createConnectorRule: function (connectorRuleCreateRequestBeta, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.createConnectorRule(connectorRuleCreateRequestBeta, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * Deletes the connector rule specified by the given ID. A token with ORG_ADMIN authority is required to call this API. + * @summary Delete a Connector-Rule + * @param {string} id ID of the connector rule to delete + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + deleteConnectorRule: function (id, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.deleteConnectorRule(id, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * Returns the connector rule specified by ID. A token with ORG_ADMIN authority is required to call this API. + * @summary Connector-Rule by ID + * @param {string} id ID of the connector rule to retrieve + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getConnectorRule: function (id, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.getConnectorRule(id, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * Returns the list of connector rules. A token with ORG_ADMIN authority is required to call this API. + * @summary List Connector Rules + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getConnectorRuleList: function (axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.getConnectorRuleList(axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * Updates an existing connector rule with the one provided in the request body. Note that the fields \'id\', \'name\', and \'type\' are immutable. A token with ORG_ADMIN authority is required to call this API. + * @summary Update a Connector Rule + * @param {string} id ID of the connector rule to update + * @param {ConnectorRuleUpdateRequestBeta} [connectorRuleUpdateRequestBeta] The connector rule with updated data + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + updateConnectorRule: function (id, connectorRuleUpdateRequestBeta, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.updateConnectorRule(id, connectorRuleUpdateRequestBeta, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * Returns a list of issues within the code to fix, if any. A token with ORG_ADMIN authority is required to call this API. + * @summary Validate Connector Rule + * @param {SourceCodeBeta} sourceCodeBeta The code to validate + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + validateConnectorRule: function (sourceCodeBeta, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.validateConnectorRule(sourceCodeBeta, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + }; + }; + exports.ConnectorRuleManagementBetaApiFp = ConnectorRuleManagementBetaApiFp; + /** + * ConnectorRuleManagementBetaApi - factory interface + * @export + */ + var ConnectorRuleManagementBetaApiFactory = function (configuration, basePath, axios) { + var localVarFp = (0, exports.ConnectorRuleManagementBetaApiFp)(configuration); + return { + /** + * Creates a new connector rule. A token with ORG_ADMIN authority is required to call this API. + * @summary Create Connector Rule + * @param {ConnectorRuleCreateRequestBeta} connectorRuleCreateRequestBeta The connector rule to create + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + createConnectorRule: function (connectorRuleCreateRequestBeta, axiosOptions) { + return localVarFp.createConnectorRule(connectorRuleCreateRequestBeta, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * Deletes the connector rule specified by the given ID. A token with ORG_ADMIN authority is required to call this API. + * @summary Delete a Connector-Rule + * @param {string} id ID of the connector rule to delete + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + deleteConnectorRule: function (id, axiosOptions) { + return localVarFp.deleteConnectorRule(id, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * Returns the connector rule specified by ID. A token with ORG_ADMIN authority is required to call this API. + * @summary Connector-Rule by ID + * @param {string} id ID of the connector rule to retrieve + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getConnectorRule: function (id, axiosOptions) { + return localVarFp.getConnectorRule(id, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * Returns the list of connector rules. A token with ORG_ADMIN authority is required to call this API. + * @summary List Connector Rules + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getConnectorRuleList: function (axiosOptions) { + return localVarFp.getConnectorRuleList(axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * Updates an existing connector rule with the one provided in the request body. Note that the fields \'id\', \'name\', and \'type\' are immutable. A token with ORG_ADMIN authority is required to call this API. + * @summary Update a Connector Rule + * @param {string} id ID of the connector rule to update + * @param {ConnectorRuleUpdateRequestBeta} [connectorRuleUpdateRequestBeta] The connector rule with updated data + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + updateConnectorRule: function (id, connectorRuleUpdateRequestBeta, axiosOptions) { + return localVarFp.updateConnectorRule(id, connectorRuleUpdateRequestBeta, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * Returns a list of issues within the code to fix, if any. A token with ORG_ADMIN authority is required to call this API. + * @summary Validate Connector Rule + * @param {SourceCodeBeta} sourceCodeBeta The code to validate + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + validateConnectorRule: function (sourceCodeBeta, axiosOptions) { + return localVarFp.validateConnectorRule(sourceCodeBeta, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + }; + }; + exports.ConnectorRuleManagementBetaApiFactory = ConnectorRuleManagementBetaApiFactory; + /** + * ConnectorRuleManagementBetaApi - object-oriented interface + * @export + * @class ConnectorRuleManagementBetaApi + * @extends {BaseAPI} + */ + var ConnectorRuleManagementBetaApi = /** @class */ (function (_super) { + __extends(ConnectorRuleManagementBetaApi, _super); + function ConnectorRuleManagementBetaApi() { + return _super !== null && _super.apply(this, arguments) || this; + } + /** + * Creates a new connector rule. A token with ORG_ADMIN authority is required to call this API. + * @summary Create Connector Rule + * @param {ConnectorRuleManagementBetaApiCreateConnectorRuleRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof ConnectorRuleManagementBetaApi + */ + ConnectorRuleManagementBetaApi.prototype.createConnectorRule = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.ConnectorRuleManagementBetaApiFp)(this.configuration).createConnectorRule(requestParameters.connectorRuleCreateRequestBeta, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * Deletes the connector rule specified by the given ID. A token with ORG_ADMIN authority is required to call this API. + * @summary Delete a Connector-Rule + * @param {ConnectorRuleManagementBetaApiDeleteConnectorRuleRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof ConnectorRuleManagementBetaApi + */ + ConnectorRuleManagementBetaApi.prototype.deleteConnectorRule = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.ConnectorRuleManagementBetaApiFp)(this.configuration).deleteConnectorRule(requestParameters.id, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * Returns the connector rule specified by ID. A token with ORG_ADMIN authority is required to call this API. + * @summary Connector-Rule by ID + * @param {ConnectorRuleManagementBetaApiGetConnectorRuleRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof ConnectorRuleManagementBetaApi + */ + ConnectorRuleManagementBetaApi.prototype.getConnectorRule = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.ConnectorRuleManagementBetaApiFp)(this.configuration).getConnectorRule(requestParameters.id, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * Returns the list of connector rules. A token with ORG_ADMIN authority is required to call this API. + * @summary List Connector Rules + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof ConnectorRuleManagementBetaApi + */ + ConnectorRuleManagementBetaApi.prototype.getConnectorRuleList = function (axiosOptions) { + var _this = this; + return (0, exports.ConnectorRuleManagementBetaApiFp)(this.configuration).getConnectorRuleList(axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * Updates an existing connector rule with the one provided in the request body. Note that the fields \'id\', \'name\', and \'type\' are immutable. A token with ORG_ADMIN authority is required to call this API. + * @summary Update a Connector Rule + * @param {ConnectorRuleManagementBetaApiUpdateConnectorRuleRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof ConnectorRuleManagementBetaApi + */ + ConnectorRuleManagementBetaApi.prototype.updateConnectorRule = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.ConnectorRuleManagementBetaApiFp)(this.configuration).updateConnectorRule(requestParameters.id, requestParameters.connectorRuleUpdateRequestBeta, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * Returns a list of issues within the code to fix, if any. A token with ORG_ADMIN authority is required to call this API. + * @summary Validate Connector Rule + * @param {ConnectorRuleManagementBetaApiValidateConnectorRuleRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof ConnectorRuleManagementBetaApi + */ + ConnectorRuleManagementBetaApi.prototype.validateConnectorRule = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.ConnectorRuleManagementBetaApiFp)(this.configuration).validateConnectorRule(requestParameters.sourceCodeBeta, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + return ConnectorRuleManagementBetaApi; + }(base_1.BaseAPI)); + exports.ConnectorRuleManagementBetaApi = ConnectorRuleManagementBetaApi; + /** + * ConnectorsBetaApi - axios parameter creator + * @export + */ + var ConnectorsBetaApiAxiosParamCreator = function (configuration) { + var _this = this; + return { + /** + * Fetches list of connectors that have \'RELEASED\' status using filtering and pagination. A token with ORG_ADMIN authority is required to call this API. + * @summary Gets connector list + * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **name**: *sw, co* **type**: *eq* **directConnect**: *eq* **category**: *eq* **features**: *ca* + * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {'de' | 'false' | 'fi' | 'sv' | 'ru' | 'pt' | 'ko' | 'zh-TW' | 'en' | 'it' | 'fr' | 'zh-CN' | 'hu' | 'es' | 'cs' | 'ja' | 'pl' | 'da' | 'nl'} [locale] The locale to apply to the config. If no viable locale is given, it will default to \"en\" + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getConnectorList: function (filters, limit, offset, count, locale, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + localVarPath = "/connectors"; + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + if (filters !== undefined) { + localVarQueryParameter['filters'] = filters; + } + if (limit !== undefined) { + localVarQueryParameter['limit'] = limit; + } + if (offset !== undefined) { + localVarQueryParameter['offset'] = offset; + } + if (count !== undefined) { + localVarQueryParameter['count'] = count; + } + if (locale !== undefined) { + localVarQueryParameter['locale'] = locale; + } + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + }; + }; + exports.ConnectorsBetaApiAxiosParamCreator = ConnectorsBetaApiAxiosParamCreator; + /** + * ConnectorsBetaApi - functional programming interface + * @export + */ + var ConnectorsBetaApiFp = function (configuration) { + var localVarAxiosParamCreator = (0, exports.ConnectorsBetaApiAxiosParamCreator)(configuration); + return { + /** + * Fetches list of connectors that have \'RELEASED\' status using filtering and pagination. A token with ORG_ADMIN authority is required to call this API. + * @summary Gets connector list + * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **name**: *sw, co* **type**: *eq* **directConnect**: *eq* **category**: *eq* **features**: *ca* + * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {'de' | 'false' | 'fi' | 'sv' | 'ru' | 'pt' | 'ko' | 'zh-TW' | 'en' | 'it' | 'fr' | 'zh-CN' | 'hu' | 'es' | 'cs' | 'ja' | 'pl' | 'da' | 'nl'} [locale] The locale to apply to the config. If no viable locale is given, it will default to \"en\" + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getConnectorList: function (filters, limit, offset, count, locale, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.getConnectorList(filters, limit, offset, count, locale, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + }; + }; + exports.ConnectorsBetaApiFp = ConnectorsBetaApiFp; + /** + * ConnectorsBetaApi - factory interface + * @export + */ + var ConnectorsBetaApiFactory = function (configuration, basePath, axios) { + var localVarFp = (0, exports.ConnectorsBetaApiFp)(configuration); + return { + /** + * Fetches list of connectors that have \'RELEASED\' status using filtering and pagination. A token with ORG_ADMIN authority is required to call this API. + * @summary Gets connector list + * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **name**: *sw, co* **type**: *eq* **directConnect**: *eq* **category**: *eq* **features**: *ca* + * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {'de' | 'false' | 'fi' | 'sv' | 'ru' | 'pt' | 'ko' | 'zh-TW' | 'en' | 'it' | 'fr' | 'zh-CN' | 'hu' | 'es' | 'cs' | 'ja' | 'pl' | 'da' | 'nl'} [locale] The locale to apply to the config. If no viable locale is given, it will default to \"en\" + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getConnectorList: function (filters, limit, offset, count, locale, axiosOptions) { + return localVarFp.getConnectorList(filters, limit, offset, count, locale, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + }; + }; + exports.ConnectorsBetaApiFactory = ConnectorsBetaApiFactory; + /** + * ConnectorsBetaApi - object-oriented interface + * @export + * @class ConnectorsBetaApi + * @extends {BaseAPI} + */ + var ConnectorsBetaApi = /** @class */ (function (_super) { + __extends(ConnectorsBetaApi, _super); + function ConnectorsBetaApi() { + return _super !== null && _super.apply(this, arguments) || this; + } + /** + * Fetches list of connectors that have \'RELEASED\' status using filtering and pagination. A token with ORG_ADMIN authority is required to call this API. + * @summary Gets connector list + * @param {ConnectorsBetaApiGetConnectorListRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof ConnectorsBetaApi + */ + ConnectorsBetaApi.prototype.getConnectorList = function (requestParameters, axiosOptions) { + var _this = this; + if (requestParameters === void 0) { requestParameters = {}; } + return (0, exports.ConnectorsBetaApiFp)(this.configuration).getConnectorList(requestParameters.filters, requestParameters.limit, requestParameters.offset, requestParameters.count, requestParameters.locale, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + return ConnectorsBetaApi; + }(base_1.BaseAPI)); + exports.ConnectorsBetaApi = ConnectorsBetaApi; + /** + * CustomFormsBetaApi - axios parameter creator + * @export + */ + var CustomFormsBetaApiAxiosParamCreator = function (configuration) { + var _this = this; + return { + /** + * + * @summary Creates a form definition. + * @param {CreateFormDefinitionRequestBeta} [body] Body is the request payload to create form definition request + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + createFormDefinition: function (body, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + localVarPath = "/form-definitions"; + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + localVarHeaderParameter['Content-Type'] = 'application/json'; + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(body, localVarRequestOptions, configuration); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * + * @summary Generate JSON Schema dynamically. + * @param {FormDefinitionDynamicSchemaRequestBeta} [body] Body is the request payload to create a form definition dynamic schema + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + createFormDefinitionDynamicSchema: function (body, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + localVarPath = "/form-definitions/forms-action-dynamic-schema"; + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + localVarHeaderParameter['Content-Type'] = 'application/json'; + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(body, localVarRequestOptions, configuration); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * + * @summary Creates a form instance. + * @param {CreateFormInstanceRequestBeta} [body] Body is the request payload to create a form instance + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + createFormInstance: function (body, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + localVarPath = "/form-instances"; + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + localVarHeaderParameter['Content-Type'] = 'application/json'; + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(body, localVarRequestOptions, configuration); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * Parameter `{formDefinitionID}` should match a form definition ID. + * @summary Deletes a form definition. + * @param {string} formDefinitionID Form definition ID + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + deleteFormDefinition: function (formDefinitionID, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'formDefinitionID' is not null or undefined + (0, common_1.assertParamExists)('deleteFormDefinition', 'formDefinitionID', formDefinitionID); + localVarPath = "/form-definitions/{formDefinitionID}" + .replace("{".concat("formDefinitionID", "}"), encodeURIComponent(String(formDefinitionID))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'DELETE' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * No parameters required. + * @summary List form definitions by tenant. + * @param {number} [offset] Offset Integer specifying the offset of the first result from the beginning of the collection. The standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#paginating-results). The offset value is record-based, not page-based, and the index starts at 0. + * @param {number} [limit] Limit Integer specifying the maximum number of records to return in a single API call. The standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#paginating-results). If it is not specified, a default limit is used. + * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **name**: *eq, gt, sw, in* **description**: *eq, gt, sw, in* **created**: *eq, gt, sw, in* **modified**: *eq, gt, sw, in* + * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **name, description, created, modified** + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + exportFormDefinitionsByTenant: function (offset, limit, filters, sorters, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + localVarPath = "/form-definitions/export"; + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + if (offset !== undefined) { + localVarQueryParameter['offset'] = offset; + } + if (limit !== undefined) { + localVarQueryParameter['limit'] = limit; + } + if (filters !== undefined) { + localVarQueryParameter['filters'] = filters; + } + if (sorters !== undefined) { + localVarQueryParameter['sorters'] = sorters; + } + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * Parameter `{formDefinitionID}` should match a form definition ID. + * @summary Return a form definition. + * @param {string} formDefinitionID Form definition ID + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getFormDefinitionByKey: function (formDefinitionID, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'formDefinitionID' is not null or undefined + (0, common_1.assertParamExists)('getFormDefinitionByKey', 'formDefinitionID', formDefinitionID); + localVarPath = "/form-definitions/{formDefinitionID}" + .replace("{".concat("formDefinitionID", "}"), encodeURIComponent(String(formDefinitionID))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * Parameter `{formInstanceID}` should match a form instance ID. + * @summary Returns a form instance. + * @param {string} formInstanceID Form instance ID + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getFormInstanceByKey: function (formInstanceID, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'formInstanceID' is not null or undefined + (0, common_1.assertParamExists)('getFormInstanceByKey', 'formInstanceID', formInstanceID); + localVarPath = "/form-instances/{formInstanceID}" + .replace("{".concat("formInstanceID", "}"), encodeURIComponent(String(formInstanceID))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * + * @summary Import form definitions from export. + * @param {Array} [body] Body is the request payload to import form definitions + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + importFormDefinitions: function (body, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + localVarPath = "/form-definitions/import"; + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + localVarHeaderParameter['Content-Type'] = 'application/json'; + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(body, localVarRequestOptions, configuration); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * Parameter `{formDefinitionID}` should match a form definition ID. + * @summary Patch a form definition. + * @param {string} formDefinitionID Form definition ID + * @param {Array<{ [key: string]: object; }>} [body] Body is the request payload to patch a form definition, check: https://jsonpatch.com + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + patchFormDefinition: function (formDefinitionID, body, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'formDefinitionID' is not null or undefined + (0, common_1.assertParamExists)('patchFormDefinition', 'formDefinitionID', formDefinitionID); + localVarPath = "/form-definitions/{formDefinitionID}" + .replace("{".concat("formDefinitionID", "}"), encodeURIComponent(String(formDefinitionID))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'PATCH' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + localVarHeaderParameter['Content-Type'] = 'application/json'; + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(body, localVarRequestOptions, configuration); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * Parameter `{formInstanceID}` should match a form instance ID. + * @summary Patch a form instance. + * @param {string} formInstanceID Form instance ID + * @param {Array<{ [key: string]: object; }>} [body] Body is the request payload to patch a form instance, check: https://jsonpatch.com + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + patchFormInstance: function (formInstanceID, body, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'formInstanceID' is not null or undefined + (0, common_1.assertParamExists)('patchFormInstance', 'formInstanceID', formInstanceID); + localVarPath = "/form-instances/{formInstanceID}" + .replace("{".concat("formInstanceID", "}"), encodeURIComponent(String(formInstanceID))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'PATCH' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + localVarHeaderParameter['Content-Type'] = 'application/json'; + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(body, localVarRequestOptions, configuration); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * No parameters required. + * @summary Export form definitions by tenant. + * @param {number} [offset] Offset Integer specifying the offset of the first result from the beginning of the collection. The standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#paginating-results). The offset value is record-based, not page-based, and the index starts at 0. + * @param {number} [limit] Limit Integer specifying the maximum number of records to return in a single API call. The standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#paginating-results). If it is not specified, a default limit is used. + * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **name**: *eq, gt, sw, in* **description**: *eq, gt, sw, in* **created**: *eq, gt, sw, in* **modified**: *eq, gt, sw, in* + * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **name, description, created, modified** + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + searchFormDefinitionsByTenant: function (offset, limit, filters, sorters, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + localVarPath = "/form-definitions"; + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + if (offset !== undefined) { + localVarQueryParameter['offset'] = offset; + } + if (limit !== undefined) { + localVarQueryParameter['limit'] = limit; + } + if (filters !== undefined) { + localVarQueryParameter['filters'] = filters; + } + if (sorters !== undefined) { + localVarQueryParameter['sorters'] = sorters; + } + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * Parameter `{formInstanceID}` should match a form instance ID. Parameter `{formElementID}` should match a form element ID at the data source configuration. + * @summary Retrieves dynamic data by element. + * @param {string} formInstanceID Form instance ID + * @param {string} formElementID Form element ID + * @param {number} [limit] Limit Integer specifying the maximum number of records to return in a single API call. The standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#paginating-results). If it is not specified, a default limit is used. + * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **value**: *eq, ne, in* **label**: *eq, ne, in* **subLabel**: *eq, ne, in* + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + searchFormElementDataByElementID: function (formInstanceID, formElementID, limit, filters, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'formInstanceID' is not null or undefined + (0, common_1.assertParamExists)('searchFormElementDataByElementID', 'formInstanceID', formInstanceID); + // verify required parameter 'formElementID' is not null or undefined + (0, common_1.assertParamExists)('searchFormElementDataByElementID', 'formElementID', formElementID); + localVarPath = "/form-instances/{formInstanceID}/data-source/{formElementID}" + .replace("{".concat("formInstanceID", "}"), encodeURIComponent(String(formInstanceID))) + .replace("{".concat("formElementID", "}"), encodeURIComponent(String(formElementID))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + if (limit !== undefined) { + localVarQueryParameter['limit'] = limit; + } + if (filters !== undefined) { + localVarQueryParameter['filters'] = filters; + } + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * No parameters required. + * @summary List form instances by tenant. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + searchFormInstancesByTenant: function (axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + localVarPath = "/form-instances"; + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * No parameters required. + * @summary List predefined select options. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + searchPreDefinedSelectOptions: function (axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + localVarPath = "/form-definitions/predefined-select-options"; + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * + * @summary Preview form definition data source. + * @param {string} formDefinitionID Form definition ID + * @param {number} [limit] Limit Integer specifying the maximum number of records to return in a single API call. The standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#paginating-results). If it is not specified, a default limit is used. + * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **value**: *eq, gt, sw, in* **label**: *eq, gt, sw, in* **subLabel**: *eq, gt, sw, in* + * @param {string} [query] Query String specifying to query against + * @param {FormElementPreviewRequestBeta} [formElementPreviewRequestBeta] Body is the request payload to create a form definition dynamic schema + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + showPreviewDataSource: function (formDefinitionID, limit, filters, query, formElementPreviewRequestBeta, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'formDefinitionID' is not null or undefined + (0, common_1.assertParamExists)('showPreviewDataSource', 'formDefinitionID', formDefinitionID); + localVarPath = "/form-definitions/{formDefinitionID}/data-source" + .replace("{".concat("formDefinitionID", "}"), encodeURIComponent(String(formDefinitionID))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + if (limit !== undefined) { + localVarQueryParameter['limit'] = limit; + } + if (filters !== undefined) { + localVarQueryParameter['filters'] = filters; + } + if (query !== undefined) { + localVarQueryParameter['query'] = query; + } + localVarHeaderParameter['Content-Type'] = 'application/json'; + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(formElementPreviewRequestBeta, localVarRequestOptions, configuration); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + }; + }; + exports.CustomFormsBetaApiAxiosParamCreator = CustomFormsBetaApiAxiosParamCreator; + /** + * CustomFormsBetaApi - functional programming interface + * @export + */ + var CustomFormsBetaApiFp = function (configuration) { + var localVarAxiosParamCreator = (0, exports.CustomFormsBetaApiAxiosParamCreator)(configuration); + return { + /** + * + * @summary Creates a form definition. + * @param {CreateFormDefinitionRequestBeta} [body] Body is the request payload to create form definition request + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + createFormDefinition: function (body, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.createFormDefinition(body, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * + * @summary Generate JSON Schema dynamically. + * @param {FormDefinitionDynamicSchemaRequestBeta} [body] Body is the request payload to create a form definition dynamic schema + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + createFormDefinitionDynamicSchema: function (body, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.createFormDefinitionDynamicSchema(body, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * + * @summary Creates a form instance. + * @param {CreateFormInstanceRequestBeta} [body] Body is the request payload to create a form instance + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + createFormInstance: function (body, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.createFormInstance(body, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * Parameter `{formDefinitionID}` should match a form definition ID. + * @summary Deletes a form definition. + * @param {string} formDefinitionID Form definition ID + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + deleteFormDefinition: function (formDefinitionID, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.deleteFormDefinition(formDefinitionID, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * No parameters required. + * @summary List form definitions by tenant. + * @param {number} [offset] Offset Integer specifying the offset of the first result from the beginning of the collection. The standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#paginating-results). The offset value is record-based, not page-based, and the index starts at 0. + * @param {number} [limit] Limit Integer specifying the maximum number of records to return in a single API call. The standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#paginating-results). If it is not specified, a default limit is used. + * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **name**: *eq, gt, sw, in* **description**: *eq, gt, sw, in* **created**: *eq, gt, sw, in* **modified**: *eq, gt, sw, in* + * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **name, description, created, modified** + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + exportFormDefinitionsByTenant: function (offset, limit, filters, sorters, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.exportFormDefinitionsByTenant(offset, limit, filters, sorters, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * Parameter `{formDefinitionID}` should match a form definition ID. + * @summary Return a form definition. + * @param {string} formDefinitionID Form definition ID + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getFormDefinitionByKey: function (formDefinitionID, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.getFormDefinitionByKey(formDefinitionID, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * Parameter `{formInstanceID}` should match a form instance ID. + * @summary Returns a form instance. + * @param {string} formInstanceID Form instance ID + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getFormInstanceByKey: function (formInstanceID, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.getFormInstanceByKey(formInstanceID, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * + * @summary Import form definitions from export. + * @param {Array} [body] Body is the request payload to import form definitions + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + importFormDefinitions: function (body, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.importFormDefinitions(body, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * Parameter `{formDefinitionID}` should match a form definition ID. + * @summary Patch a form definition. + * @param {string} formDefinitionID Form definition ID + * @param {Array<{ [key: string]: object; }>} [body] Body is the request payload to patch a form definition, check: https://jsonpatch.com + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + patchFormDefinition: function (formDefinitionID, body, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.patchFormDefinition(formDefinitionID, body, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * Parameter `{formInstanceID}` should match a form instance ID. + * @summary Patch a form instance. + * @param {string} formInstanceID Form instance ID + * @param {Array<{ [key: string]: object; }>} [body] Body is the request payload to patch a form instance, check: https://jsonpatch.com + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + patchFormInstance: function (formInstanceID, body, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.patchFormInstance(formInstanceID, body, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * No parameters required. + * @summary Export form definitions by tenant. + * @param {number} [offset] Offset Integer specifying the offset of the first result from the beginning of the collection. The standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#paginating-results). The offset value is record-based, not page-based, and the index starts at 0. + * @param {number} [limit] Limit Integer specifying the maximum number of records to return in a single API call. The standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#paginating-results). If it is not specified, a default limit is used. + * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **name**: *eq, gt, sw, in* **description**: *eq, gt, sw, in* **created**: *eq, gt, sw, in* **modified**: *eq, gt, sw, in* + * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **name, description, created, modified** + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + searchFormDefinitionsByTenant: function (offset, limit, filters, sorters, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.searchFormDefinitionsByTenant(offset, limit, filters, sorters, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * Parameter `{formInstanceID}` should match a form instance ID. Parameter `{formElementID}` should match a form element ID at the data source configuration. + * @summary Retrieves dynamic data by element. + * @param {string} formInstanceID Form instance ID + * @param {string} formElementID Form element ID + * @param {number} [limit] Limit Integer specifying the maximum number of records to return in a single API call. The standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#paginating-results). If it is not specified, a default limit is used. + * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **value**: *eq, ne, in* **label**: *eq, ne, in* **subLabel**: *eq, ne, in* + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + searchFormElementDataByElementID: function (formInstanceID, formElementID, limit, filters, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.searchFormElementDataByElementID(formInstanceID, formElementID, limit, filters, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * No parameters required. + * @summary List form instances by tenant. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + searchFormInstancesByTenant: function (axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.searchFormInstancesByTenant(axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * No parameters required. + * @summary List predefined select options. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + searchPreDefinedSelectOptions: function (axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.searchPreDefinedSelectOptions(axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * + * @summary Preview form definition data source. + * @param {string} formDefinitionID Form definition ID + * @param {number} [limit] Limit Integer specifying the maximum number of records to return in a single API call. The standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#paginating-results). If it is not specified, a default limit is used. + * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **value**: *eq, gt, sw, in* **label**: *eq, gt, sw, in* **subLabel**: *eq, gt, sw, in* + * @param {string} [query] Query String specifying to query against + * @param {FormElementPreviewRequestBeta} [formElementPreviewRequestBeta] Body is the request payload to create a form definition dynamic schema + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + showPreviewDataSource: function (formDefinitionID, limit, filters, query, formElementPreviewRequestBeta, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.showPreviewDataSource(formDefinitionID, limit, filters, query, formElementPreviewRequestBeta, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + }; + }; + exports.CustomFormsBetaApiFp = CustomFormsBetaApiFp; + /** + * CustomFormsBetaApi - factory interface + * @export + */ + var CustomFormsBetaApiFactory = function (configuration, basePath, axios) { + var localVarFp = (0, exports.CustomFormsBetaApiFp)(configuration); + return { + /** + * + * @summary Creates a form definition. + * @param {CreateFormDefinitionRequestBeta} [body] Body is the request payload to create form definition request + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + createFormDefinition: function (body, axiosOptions) { + return localVarFp.createFormDefinition(body, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * + * @summary Generate JSON Schema dynamically. + * @param {FormDefinitionDynamicSchemaRequestBeta} [body] Body is the request payload to create a form definition dynamic schema + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + createFormDefinitionDynamicSchema: function (body, axiosOptions) { + return localVarFp.createFormDefinitionDynamicSchema(body, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * + * @summary Creates a form instance. + * @param {CreateFormInstanceRequestBeta} [body] Body is the request payload to create a form instance + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + createFormInstance: function (body, axiosOptions) { + return localVarFp.createFormInstance(body, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * Parameter `{formDefinitionID}` should match a form definition ID. + * @summary Deletes a form definition. + * @param {string} formDefinitionID Form definition ID + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + deleteFormDefinition: function (formDefinitionID, axiosOptions) { + return localVarFp.deleteFormDefinition(formDefinitionID, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * No parameters required. + * @summary List form definitions by tenant. + * @param {number} [offset] Offset Integer specifying the offset of the first result from the beginning of the collection. The standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#paginating-results). The offset value is record-based, not page-based, and the index starts at 0. + * @param {number} [limit] Limit Integer specifying the maximum number of records to return in a single API call. The standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#paginating-results). If it is not specified, a default limit is used. + * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **name**: *eq, gt, sw, in* **description**: *eq, gt, sw, in* **created**: *eq, gt, sw, in* **modified**: *eq, gt, sw, in* + * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **name, description, created, modified** + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + exportFormDefinitionsByTenant: function (offset, limit, filters, sorters, axiosOptions) { + return localVarFp.exportFormDefinitionsByTenant(offset, limit, filters, sorters, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * Parameter `{formDefinitionID}` should match a form definition ID. + * @summary Return a form definition. + * @param {string} formDefinitionID Form definition ID + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getFormDefinitionByKey: function (formDefinitionID, axiosOptions) { + return localVarFp.getFormDefinitionByKey(formDefinitionID, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * Parameter `{formInstanceID}` should match a form instance ID. + * @summary Returns a form instance. + * @param {string} formInstanceID Form instance ID + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getFormInstanceByKey: function (formInstanceID, axiosOptions) { + return localVarFp.getFormInstanceByKey(formInstanceID, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * + * @summary Import form definitions from export. + * @param {Array} [body] Body is the request payload to import form definitions + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + importFormDefinitions: function (body, axiosOptions) { + return localVarFp.importFormDefinitions(body, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * Parameter `{formDefinitionID}` should match a form definition ID. + * @summary Patch a form definition. + * @param {string} formDefinitionID Form definition ID + * @param {Array<{ [key: string]: object; }>} [body] Body is the request payload to patch a form definition, check: https://jsonpatch.com + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + patchFormDefinition: function (formDefinitionID, body, axiosOptions) { + return localVarFp.patchFormDefinition(formDefinitionID, body, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * Parameter `{formInstanceID}` should match a form instance ID. + * @summary Patch a form instance. + * @param {string} formInstanceID Form instance ID + * @param {Array<{ [key: string]: object; }>} [body] Body is the request payload to patch a form instance, check: https://jsonpatch.com + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + patchFormInstance: function (formInstanceID, body, axiosOptions) { + return localVarFp.patchFormInstance(formInstanceID, body, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * No parameters required. + * @summary Export form definitions by tenant. + * @param {number} [offset] Offset Integer specifying the offset of the first result from the beginning of the collection. The standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#paginating-results). The offset value is record-based, not page-based, and the index starts at 0. + * @param {number} [limit] Limit Integer specifying the maximum number of records to return in a single API call. The standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#paginating-results). If it is not specified, a default limit is used. + * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **name**: *eq, gt, sw, in* **description**: *eq, gt, sw, in* **created**: *eq, gt, sw, in* **modified**: *eq, gt, sw, in* + * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **name, description, created, modified** + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + searchFormDefinitionsByTenant: function (offset, limit, filters, sorters, axiosOptions) { + return localVarFp.searchFormDefinitionsByTenant(offset, limit, filters, sorters, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * Parameter `{formInstanceID}` should match a form instance ID. Parameter `{formElementID}` should match a form element ID at the data source configuration. + * @summary Retrieves dynamic data by element. + * @param {string} formInstanceID Form instance ID + * @param {string} formElementID Form element ID + * @param {number} [limit] Limit Integer specifying the maximum number of records to return in a single API call. The standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#paginating-results). If it is not specified, a default limit is used. + * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **value**: *eq, ne, in* **label**: *eq, ne, in* **subLabel**: *eq, ne, in* + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + searchFormElementDataByElementID: function (formInstanceID, formElementID, limit, filters, axiosOptions) { + return localVarFp.searchFormElementDataByElementID(formInstanceID, formElementID, limit, filters, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * No parameters required. + * @summary List form instances by tenant. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + searchFormInstancesByTenant: function (axiosOptions) { + return localVarFp.searchFormInstancesByTenant(axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * No parameters required. + * @summary List predefined select options. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + searchPreDefinedSelectOptions: function (axiosOptions) { + return localVarFp.searchPreDefinedSelectOptions(axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * + * @summary Preview form definition data source. + * @param {string} formDefinitionID Form definition ID + * @param {number} [limit] Limit Integer specifying the maximum number of records to return in a single API call. The standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#paginating-results). If it is not specified, a default limit is used. + * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **value**: *eq, gt, sw, in* **label**: *eq, gt, sw, in* **subLabel**: *eq, gt, sw, in* + * @param {string} [query] Query String specifying to query against + * @param {FormElementPreviewRequestBeta} [formElementPreviewRequestBeta] Body is the request payload to create a form definition dynamic schema + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + showPreviewDataSource: function (formDefinitionID, limit, filters, query, formElementPreviewRequestBeta, axiosOptions) { + return localVarFp.showPreviewDataSource(formDefinitionID, limit, filters, query, formElementPreviewRequestBeta, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + }; + }; + exports.CustomFormsBetaApiFactory = CustomFormsBetaApiFactory; + /** + * CustomFormsBetaApi - object-oriented interface + * @export + * @class CustomFormsBetaApi + * @extends {BaseAPI} + */ + var CustomFormsBetaApi = /** @class */ (function (_super) { + __extends(CustomFormsBetaApi, _super); + function CustomFormsBetaApi() { + return _super !== null && _super.apply(this, arguments) || this; + } + /** + * + * @summary Creates a form definition. + * @param {CustomFormsBetaApiCreateFormDefinitionRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof CustomFormsBetaApi + */ + CustomFormsBetaApi.prototype.createFormDefinition = function (requestParameters, axiosOptions) { + var _this = this; + if (requestParameters === void 0) { requestParameters = {}; } + return (0, exports.CustomFormsBetaApiFp)(this.configuration).createFormDefinition(requestParameters.body, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * + * @summary Generate JSON Schema dynamically. + * @param {CustomFormsBetaApiCreateFormDefinitionDynamicSchemaRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof CustomFormsBetaApi + */ + CustomFormsBetaApi.prototype.createFormDefinitionDynamicSchema = function (requestParameters, axiosOptions) { + var _this = this; + if (requestParameters === void 0) { requestParameters = {}; } + return (0, exports.CustomFormsBetaApiFp)(this.configuration).createFormDefinitionDynamicSchema(requestParameters.body, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * + * @summary Creates a form instance. + * @param {CustomFormsBetaApiCreateFormInstanceRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof CustomFormsBetaApi + */ + CustomFormsBetaApi.prototype.createFormInstance = function (requestParameters, axiosOptions) { + var _this = this; + if (requestParameters === void 0) { requestParameters = {}; } + return (0, exports.CustomFormsBetaApiFp)(this.configuration).createFormInstance(requestParameters.body, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * Parameter `{formDefinitionID}` should match a form definition ID. + * @summary Deletes a form definition. + * @param {CustomFormsBetaApiDeleteFormDefinitionRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof CustomFormsBetaApi + */ + CustomFormsBetaApi.prototype.deleteFormDefinition = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.CustomFormsBetaApiFp)(this.configuration).deleteFormDefinition(requestParameters.formDefinitionID, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * No parameters required. + * @summary List form definitions by tenant. + * @param {CustomFormsBetaApiExportFormDefinitionsByTenantRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof CustomFormsBetaApi + */ + CustomFormsBetaApi.prototype.exportFormDefinitionsByTenant = function (requestParameters, axiosOptions) { + var _this = this; + if (requestParameters === void 0) { requestParameters = {}; } + return (0, exports.CustomFormsBetaApiFp)(this.configuration).exportFormDefinitionsByTenant(requestParameters.offset, requestParameters.limit, requestParameters.filters, requestParameters.sorters, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * Parameter `{formDefinitionID}` should match a form definition ID. + * @summary Return a form definition. + * @param {CustomFormsBetaApiGetFormDefinitionByKeyRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof CustomFormsBetaApi + */ + CustomFormsBetaApi.prototype.getFormDefinitionByKey = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.CustomFormsBetaApiFp)(this.configuration).getFormDefinitionByKey(requestParameters.formDefinitionID, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * Parameter `{formInstanceID}` should match a form instance ID. + * @summary Returns a form instance. + * @param {CustomFormsBetaApiGetFormInstanceByKeyRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof CustomFormsBetaApi + */ + CustomFormsBetaApi.prototype.getFormInstanceByKey = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.CustomFormsBetaApiFp)(this.configuration).getFormInstanceByKey(requestParameters.formInstanceID, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * + * @summary Import form definitions from export. + * @param {CustomFormsBetaApiImportFormDefinitionsRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof CustomFormsBetaApi + */ + CustomFormsBetaApi.prototype.importFormDefinitions = function (requestParameters, axiosOptions) { + var _this = this; + if (requestParameters === void 0) { requestParameters = {}; } + return (0, exports.CustomFormsBetaApiFp)(this.configuration).importFormDefinitions(requestParameters.body, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * Parameter `{formDefinitionID}` should match a form definition ID. + * @summary Patch a form definition. + * @param {CustomFormsBetaApiPatchFormDefinitionRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof CustomFormsBetaApi + */ + CustomFormsBetaApi.prototype.patchFormDefinition = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.CustomFormsBetaApiFp)(this.configuration).patchFormDefinition(requestParameters.formDefinitionID, requestParameters.body, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * Parameter `{formInstanceID}` should match a form instance ID. + * @summary Patch a form instance. + * @param {CustomFormsBetaApiPatchFormInstanceRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof CustomFormsBetaApi + */ + CustomFormsBetaApi.prototype.patchFormInstance = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.CustomFormsBetaApiFp)(this.configuration).patchFormInstance(requestParameters.formInstanceID, requestParameters.body, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * No parameters required. + * @summary Export form definitions by tenant. + * @param {CustomFormsBetaApiSearchFormDefinitionsByTenantRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof CustomFormsBetaApi + */ + CustomFormsBetaApi.prototype.searchFormDefinitionsByTenant = function (requestParameters, axiosOptions) { + var _this = this; + if (requestParameters === void 0) { requestParameters = {}; } + return (0, exports.CustomFormsBetaApiFp)(this.configuration).searchFormDefinitionsByTenant(requestParameters.offset, requestParameters.limit, requestParameters.filters, requestParameters.sorters, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * Parameter `{formInstanceID}` should match a form instance ID. Parameter `{formElementID}` should match a form element ID at the data source configuration. + * @summary Retrieves dynamic data by element. + * @param {CustomFormsBetaApiSearchFormElementDataByElementIDRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof CustomFormsBetaApi + */ + CustomFormsBetaApi.prototype.searchFormElementDataByElementID = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.CustomFormsBetaApiFp)(this.configuration).searchFormElementDataByElementID(requestParameters.formInstanceID, requestParameters.formElementID, requestParameters.limit, requestParameters.filters, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * No parameters required. + * @summary List form instances by tenant. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof CustomFormsBetaApi + */ + CustomFormsBetaApi.prototype.searchFormInstancesByTenant = function (axiosOptions) { + var _this = this; + return (0, exports.CustomFormsBetaApiFp)(this.configuration).searchFormInstancesByTenant(axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * No parameters required. + * @summary List predefined select options. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof CustomFormsBetaApi + */ + CustomFormsBetaApi.prototype.searchPreDefinedSelectOptions = function (axiosOptions) { + var _this = this; + return (0, exports.CustomFormsBetaApiFp)(this.configuration).searchPreDefinedSelectOptions(axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * + * @summary Preview form definition data source. + * @param {CustomFormsBetaApiShowPreviewDataSourceRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof CustomFormsBetaApi + */ + CustomFormsBetaApi.prototype.showPreviewDataSource = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.CustomFormsBetaApiFp)(this.configuration).showPreviewDataSource(requestParameters.formDefinitionID, requestParameters.limit, requestParameters.filters, requestParameters.query, requestParameters.formElementPreviewRequestBeta, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + return CustomFormsBetaApi; + }(base_1.BaseAPI)); + exports.CustomFormsBetaApi = CustomFormsBetaApi; + /** + * CustomPasswordInstructionsBetaApi - axios parameter creator + * @export + */ + var CustomPasswordInstructionsBetaApiAxiosParamCreator = function (configuration) { + var _this = this; + return { + /** + * This API creates the custom password instructions for the specified page ID. A token with ORG_ADMIN authority is required to call this API. + * @summary Create Custom Password Instructions + * @param {CustomPasswordInstructionBeta} customPasswordInstructionBeta + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + createCustomPasswordInstructions: function (customPasswordInstructionBeta, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'customPasswordInstructionBeta' is not null or undefined + (0, common_1.assertParamExists)('createCustomPasswordInstructions', 'customPasswordInstructionBeta', customPasswordInstructionBeta); + localVarPath = "/custom-password-instructions"; + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + localVarHeaderParameter['Content-Type'] = 'application/json'; + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(customPasswordInstructionBeta, localVarRequestOptions, configuration); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This API delete the custom password instructions for the specified page ID. A token with ORG_ADMIN authority is required to call this API. + * @summary Delete Custom Password Instructions by page ID + * @param {'change-password:enter-password' | 'change-password:finish' | 'flow-selection:select' | 'forget-username:user-email' | 'mfa:enter-code' | 'mfa:enter-kba' | 'mfa:select' | 'reset-password:enter-password' | 'reset-password:enter-username' | 'reset-password:finish' | 'unlock-account:enter-username' | 'unlock-account:finish'} pageId The page ID of custom password instructions to delete. + * @param {string} [locale] The locale for the custom instructions, a BCP47 language tag. The default value is \\\"default\\\". + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + deleteCustomPasswordInstructions: function (pageId, locale, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'pageId' is not null or undefined + (0, common_1.assertParamExists)('deleteCustomPasswordInstructions', 'pageId', pageId); + localVarPath = "/custom-password-instructions/{pageId}" + .replace("{".concat("pageId", "}"), encodeURIComponent(String(pageId))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'DELETE' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + if (locale !== undefined) { + localVarQueryParameter['locale'] = locale; + } + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This API returns the custom password instructions for the specified page ID. A token with ORG_ADMIN authority is required to call this API. + * @summary Get Custom Password Instructions by Page ID + * @param {'change-password:enter-password' | 'change-password:finish' | 'flow-selection:select' | 'forget-username:user-email' | 'mfa:enter-code' | 'mfa:enter-kba' | 'mfa:select' | 'reset-password:enter-password' | 'reset-password:enter-username' | 'reset-password:finish' | 'unlock-account:enter-username' | 'unlock-account:finish'} pageId The page ID of custom password instructions to query. + * @param {string} [locale] The locale for the custom instructions, a BCP47 language tag. The default value is \\\"default\\\". + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getCustomPasswordInstructions: function (pageId, locale, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'pageId' is not null or undefined + (0, common_1.assertParamExists)('getCustomPasswordInstructions', 'pageId', pageId); + localVarPath = "/custom-password-instructions/{pageId}" + .replace("{".concat("pageId", "}"), encodeURIComponent(String(pageId))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + if (locale !== undefined) { + localVarQueryParameter['locale'] = locale; + } + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + }; + }; + exports.CustomPasswordInstructionsBetaApiAxiosParamCreator = CustomPasswordInstructionsBetaApiAxiosParamCreator; + /** + * CustomPasswordInstructionsBetaApi - functional programming interface + * @export + */ + var CustomPasswordInstructionsBetaApiFp = function (configuration) { + var localVarAxiosParamCreator = (0, exports.CustomPasswordInstructionsBetaApiAxiosParamCreator)(configuration); + return { + /** + * This API creates the custom password instructions for the specified page ID. A token with ORG_ADMIN authority is required to call this API. + * @summary Create Custom Password Instructions + * @param {CustomPasswordInstructionBeta} customPasswordInstructionBeta + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + createCustomPasswordInstructions: function (customPasswordInstructionBeta, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.createCustomPasswordInstructions(customPasswordInstructionBeta, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This API delete the custom password instructions for the specified page ID. A token with ORG_ADMIN authority is required to call this API. + * @summary Delete Custom Password Instructions by page ID + * @param {'change-password:enter-password' | 'change-password:finish' | 'flow-selection:select' | 'forget-username:user-email' | 'mfa:enter-code' | 'mfa:enter-kba' | 'mfa:select' | 'reset-password:enter-password' | 'reset-password:enter-username' | 'reset-password:finish' | 'unlock-account:enter-username' | 'unlock-account:finish'} pageId The page ID of custom password instructions to delete. + * @param {string} [locale] The locale for the custom instructions, a BCP47 language tag. The default value is \\\"default\\\". + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + deleteCustomPasswordInstructions: function (pageId, locale, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.deleteCustomPasswordInstructions(pageId, locale, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This API returns the custom password instructions for the specified page ID. A token with ORG_ADMIN authority is required to call this API. + * @summary Get Custom Password Instructions by Page ID + * @param {'change-password:enter-password' | 'change-password:finish' | 'flow-selection:select' | 'forget-username:user-email' | 'mfa:enter-code' | 'mfa:enter-kba' | 'mfa:select' | 'reset-password:enter-password' | 'reset-password:enter-username' | 'reset-password:finish' | 'unlock-account:enter-username' | 'unlock-account:finish'} pageId The page ID of custom password instructions to query. + * @param {string} [locale] The locale for the custom instructions, a BCP47 language tag. The default value is \\\"default\\\". + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getCustomPasswordInstructions: function (pageId, locale, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.getCustomPasswordInstructions(pageId, locale, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + }; + }; + exports.CustomPasswordInstructionsBetaApiFp = CustomPasswordInstructionsBetaApiFp; + /** + * CustomPasswordInstructionsBetaApi - factory interface + * @export + */ + var CustomPasswordInstructionsBetaApiFactory = function (configuration, basePath, axios) { + var localVarFp = (0, exports.CustomPasswordInstructionsBetaApiFp)(configuration); + return { + /** + * This API creates the custom password instructions for the specified page ID. A token with ORG_ADMIN authority is required to call this API. + * @summary Create Custom Password Instructions + * @param {CustomPasswordInstructionBeta} customPasswordInstructionBeta + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + createCustomPasswordInstructions: function (customPasswordInstructionBeta, axiosOptions) { + return localVarFp.createCustomPasswordInstructions(customPasswordInstructionBeta, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This API delete the custom password instructions for the specified page ID. A token with ORG_ADMIN authority is required to call this API. + * @summary Delete Custom Password Instructions by page ID + * @param {'change-password:enter-password' | 'change-password:finish' | 'flow-selection:select' | 'forget-username:user-email' | 'mfa:enter-code' | 'mfa:enter-kba' | 'mfa:select' | 'reset-password:enter-password' | 'reset-password:enter-username' | 'reset-password:finish' | 'unlock-account:enter-username' | 'unlock-account:finish'} pageId The page ID of custom password instructions to delete. + * @param {string} [locale] The locale for the custom instructions, a BCP47 language tag. The default value is \\\"default\\\". + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + deleteCustomPasswordInstructions: function (pageId, locale, axiosOptions) { + return localVarFp.deleteCustomPasswordInstructions(pageId, locale, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This API returns the custom password instructions for the specified page ID. A token with ORG_ADMIN authority is required to call this API. + * @summary Get Custom Password Instructions by Page ID + * @param {'change-password:enter-password' | 'change-password:finish' | 'flow-selection:select' | 'forget-username:user-email' | 'mfa:enter-code' | 'mfa:enter-kba' | 'mfa:select' | 'reset-password:enter-password' | 'reset-password:enter-username' | 'reset-password:finish' | 'unlock-account:enter-username' | 'unlock-account:finish'} pageId The page ID of custom password instructions to query. + * @param {string} [locale] The locale for the custom instructions, a BCP47 language tag. The default value is \\\"default\\\". + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getCustomPasswordInstructions: function (pageId, locale, axiosOptions) { + return localVarFp.getCustomPasswordInstructions(pageId, locale, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + }; + }; + exports.CustomPasswordInstructionsBetaApiFactory = CustomPasswordInstructionsBetaApiFactory; + /** + * CustomPasswordInstructionsBetaApi - object-oriented interface + * @export + * @class CustomPasswordInstructionsBetaApi + * @extends {BaseAPI} + */ + var CustomPasswordInstructionsBetaApi = /** @class */ (function (_super) { + __extends(CustomPasswordInstructionsBetaApi, _super); + function CustomPasswordInstructionsBetaApi() { + return _super !== null && _super.apply(this, arguments) || this; + } + /** + * This API creates the custom password instructions for the specified page ID. A token with ORG_ADMIN authority is required to call this API. + * @summary Create Custom Password Instructions + * @param {CustomPasswordInstructionsBetaApiCreateCustomPasswordInstructionsRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof CustomPasswordInstructionsBetaApi + */ + CustomPasswordInstructionsBetaApi.prototype.createCustomPasswordInstructions = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.CustomPasswordInstructionsBetaApiFp)(this.configuration).createCustomPasswordInstructions(requestParameters.customPasswordInstructionBeta, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This API delete the custom password instructions for the specified page ID. A token with ORG_ADMIN authority is required to call this API. + * @summary Delete Custom Password Instructions by page ID + * @param {CustomPasswordInstructionsBetaApiDeleteCustomPasswordInstructionsRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof CustomPasswordInstructionsBetaApi + */ + CustomPasswordInstructionsBetaApi.prototype.deleteCustomPasswordInstructions = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.CustomPasswordInstructionsBetaApiFp)(this.configuration).deleteCustomPasswordInstructions(requestParameters.pageId, requestParameters.locale, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This API returns the custom password instructions for the specified page ID. A token with ORG_ADMIN authority is required to call this API. + * @summary Get Custom Password Instructions by Page ID + * @param {CustomPasswordInstructionsBetaApiGetCustomPasswordInstructionsRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof CustomPasswordInstructionsBetaApi + */ + CustomPasswordInstructionsBetaApi.prototype.getCustomPasswordInstructions = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.CustomPasswordInstructionsBetaApiFp)(this.configuration).getCustomPasswordInstructions(requestParameters.pageId, requestParameters.locale, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + return CustomPasswordInstructionsBetaApi; + }(base_1.BaseAPI)); + exports.CustomPasswordInstructionsBetaApi = CustomPasswordInstructionsBetaApi; + /** + * EntitlementsBetaApi - axios parameter creator + * @export + */ + var EntitlementsBetaApiAxiosParamCreator = function (configuration) { + var _this = this; + return { + /** + * This API returns an entitlement by its ID. + * @summary Get an entitlement + * @param {string} id The entitlement ID + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getEntitlement: function (id, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'id' is not null or undefined + (0, common_1.assertParamExists)('getEntitlement', 'id', id); + localVarPath = "/entitlements/{id}" + .replace("{".concat("id", "}"), encodeURIComponent(String(id))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This API returns the entitlement request config for a specified entitlement. + * @summary Get Entitlement Request Config + * @param {string} id Entitlement Id + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getEntitlementRequestConfig: function (id, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'id' is not null or undefined + (0, common_1.assertParamExists)('getEntitlementRequestConfig', 'id', id); + localVarPath = "/entitlements/{id}/entitlement-request-config" + .replace("{".concat("id", "}"), encodeURIComponent(String(id))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This API returns a list of all child entitlements of a given entitlement. + * @summary List of entitlements children + * @param {string} id Entitlement Id + * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **id, name, created, modified, type, attribute, value, source.id** + * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **id**: *eq, in* **name**: *eq, in, sw* **type**: *eq, in* **attribute**: *eq, in* **value**: *eq, in, sw* **source.id**: *eq, in* **requestable**: *eq* **created**: *gt, lt, ge, le* **modified**: *gt, lt, ge, le* + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + listEntitlementChildren: function (id, limit, offset, count, sorters, filters, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'id' is not null or undefined + (0, common_1.assertParamExists)('listEntitlementChildren', 'id', id); + localVarPath = "/entitlements/{id}/children" + .replace("{".concat("id", "}"), encodeURIComponent(String(id))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + if (limit !== undefined) { + localVarQueryParameter['limit'] = limit; + } + if (offset !== undefined) { + localVarQueryParameter['offset'] = offset; + } + if (count !== undefined) { + localVarQueryParameter['count'] = count; + } + if (sorters !== undefined) { + localVarQueryParameter['sorters'] = sorters; + } + if (filters !== undefined) { + localVarQueryParameter['filters'] = filters; + } + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This API returns a list of all parent entitlements of a given entitlement. + * @summary List of entitlements parents + * @param {string} id Entitlement Id + * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **id, name, created, modified, type, attribute, value, source.id** + * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **id**: *eq, in* **name**: *eq, in, sw* **type**: *eq, in* **attribute**: *eq, in* **value**: *eq, in, sw* **source.id**: *eq, in* **requestable**: *eq* **created**: *gt, lt, ge, le* **modified**: *gt, lt, ge, le* + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + listEntitlementParents: function (id, limit, offset, count, sorters, filters, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'id' is not null or undefined + (0, common_1.assertParamExists)('listEntitlementParents', 'id', id); + localVarPath = "/entitlements/{id}/parents" + .replace("{".concat("id", "}"), encodeURIComponent(String(id))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + if (limit !== undefined) { + localVarQueryParameter['limit'] = limit; + } + if (offset !== undefined) { + localVarQueryParameter['offset'] = offset; + } + if (count !== undefined) { + localVarQueryParameter['count'] = count; + } + if (sorters !== undefined) { + localVarQueryParameter['sorters'] = sorters; + } + if (filters !== undefined) { + localVarQueryParameter['filters'] = filters; + } + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This API returns a list of entitlements. This API can be used in one of the two following ways: either getting entitlements for a specific **account-id**, or getting via use of **filters** (those two options are exclusive). Any authenticated token can call this API. + * @summary Gets a list of entitlements. + * @param {string} [accountId] The account ID. If specified, returns only entitlements associated with the given Account. Cannot be specified with the **filters**, **segmented-for-identity**, **for-segment-ids**, or **include-unsegmented** param(s). + * @param {string} [segmentedForIdentity] If present and not empty, additionally filters Entitlements to those which are assigned to the Segment(s) which are visible to the Identity with the specified ID. By convention, the value **me** can stand in for the current user\'s Identity ID. Cannot be specified with the **account-id** or **for-segment-ids** param(s). It is also illegal to specify a value that refers to a different user\'s Identity. + * @param {string} [forSegmentIds] If present and not empty, additionally filters Access Profiles to those which are assigned to the Segment(s) with the specified IDs. Cannot be specified with the **account-id** or **segmented-for-identity** param(s). + * @param {boolean} [includeUnsegmented] Whether or not the response list should contain unsegmented Entitlements. If **for-segment-ids** and **segmented-for-identity** are both absent or empty, specifying **include-unsegmented=false** results in an error. + * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **id, name, created, modified, type, attribute, value, source.id, requestable** + * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **id**: *eq, in* **name**: *eq, in, sw* **type**: *eq, in* **attribute**: *eq, in* **value**: *eq, in, sw* **source.id**: *eq, in* **requestable**: *eq* **created**: *gt, lt, ge, le* **modified**: *gt, lt, ge, le* + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + listEntitlements: function (accountId, segmentedForIdentity, forSegmentIds, includeUnsegmented, offset, limit, count, sorters, filters, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + localVarPath = "/entitlements"; + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + if (accountId !== undefined) { + localVarQueryParameter['account-id'] = accountId; + } + if (segmentedForIdentity !== undefined) { + localVarQueryParameter['segmented-for-identity'] = segmentedForIdentity; + } + if (forSegmentIds !== undefined) { + localVarQueryParameter['for-segment-ids'] = forSegmentIds; + } + if (includeUnsegmented !== undefined) { + localVarQueryParameter['include-unsegmented'] = includeUnsegmented; + } + if (offset !== undefined) { + localVarQueryParameter['offset'] = offset; + } + if (limit !== undefined) { + localVarQueryParameter['limit'] = limit; + } + if (count !== undefined) { + localVarQueryParameter['count'] = count; + } + if (sorters !== undefined) { + localVarQueryParameter['sorters'] = sorters; + } + if (filters !== undefined) { + localVarQueryParameter['filters'] = filters; + } + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This API updates an existing entitlement using [JSON Patch](https://tools.ietf.org/html/rfc6902) syntax. The following fields are patchable: **requestable**, **privileged**, **segments**, **owner**, **name**, **description**. When you\'re patching owner, only owner type and owner id must be provided. Owner name is optional, and it won\'t be modified. If the owner name is provided, it should correspond to the real name. The only owner type currently supported is IDENTITY. A token with ORG_ADMIN or SOURCE_ADMIN authority is required to call this API. + * @summary Patch an entitlement + * @param {string} id ID of the entitlement to patch + * @param {Array} [jsonPatchOperationBeta] + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + patchEntitlement: function (id, jsonPatchOperationBeta, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'id' is not null or undefined + (0, common_1.assertParamExists)('patchEntitlement', 'id', id); + localVarPath = "/entitlements/{id}" + .replace("{".concat("id", "}"), encodeURIComponent(String(id))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'PATCH' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + localVarHeaderParameter['Content-Type'] = 'application/json-patch+json'; + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(jsonPatchOperationBeta, localVarRequestOptions, configuration); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This API replaces the entitlement request config for a specified entitlement. + * @summary Replace Entitlement Request Config + * @param {string} id Entitlement ID + * @param {EntitlementRequestConfigBeta} entitlementRequestConfigBeta + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + putEntitlementRequestConfig: function (id, entitlementRequestConfigBeta, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'id' is not null or undefined + (0, common_1.assertParamExists)('putEntitlementRequestConfig', 'id', id); + // verify required parameter 'entitlementRequestConfigBeta' is not null or undefined + (0, common_1.assertParamExists)('putEntitlementRequestConfig', 'entitlementRequestConfigBeta', entitlementRequestConfigBeta); + localVarPath = "/entitlements/{id}/entitlement-request-config" + .replace("{".concat("id", "}"), encodeURIComponent(String(id))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'PUT' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + localVarHeaderParameter['Content-Type'] = 'application/json'; + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(entitlementRequestConfigBeta, localVarRequestOptions, configuration); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This API applies an update to every entitlement of the list. The number of entitlements to update is limited to 50 items maximum. The JsonPatch update follows the [JSON Patch](https://tools.ietf.org/html/rfc6902) standard. allowed operations : **{ \"op\": \"replace\", \"path\": \"/privileged\", \"value\": boolean }** **{ \"op\": \"replace\", \"path\": \"/requestable\",\"value\": boolean }** A token with ORG_ADMIN or API authority is required to call this API. + * @summary Bulk update an entitlement list + * @param {EntitlementBulkUpdateRequestBeta} entitlementBulkUpdateRequestBeta + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + updateEntitlementsInBulk: function (entitlementBulkUpdateRequestBeta, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'entitlementBulkUpdateRequestBeta' is not null or undefined + (0, common_1.assertParamExists)('updateEntitlementsInBulk', 'entitlementBulkUpdateRequestBeta', entitlementBulkUpdateRequestBeta); + localVarPath = "/entitlements/bulk-update"; + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + localVarHeaderParameter['Content-Type'] = 'application/json'; + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(entitlementBulkUpdateRequestBeta, localVarRequestOptions, configuration); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + }; + }; + exports.EntitlementsBetaApiAxiosParamCreator = EntitlementsBetaApiAxiosParamCreator; + /** + * EntitlementsBetaApi - functional programming interface + * @export + */ + var EntitlementsBetaApiFp = function (configuration) { + var localVarAxiosParamCreator = (0, exports.EntitlementsBetaApiAxiosParamCreator)(configuration); + return { + /** + * This API returns an entitlement by its ID. + * @summary Get an entitlement + * @param {string} id The entitlement ID + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getEntitlement: function (id, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.getEntitlement(id, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This API returns the entitlement request config for a specified entitlement. + * @summary Get Entitlement Request Config + * @param {string} id Entitlement Id + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getEntitlementRequestConfig: function (id, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.getEntitlementRequestConfig(id, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This API returns a list of all child entitlements of a given entitlement. + * @summary List of entitlements children + * @param {string} id Entitlement Id + * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **id, name, created, modified, type, attribute, value, source.id** + * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **id**: *eq, in* **name**: *eq, in, sw* **type**: *eq, in* **attribute**: *eq, in* **value**: *eq, in, sw* **source.id**: *eq, in* **requestable**: *eq* **created**: *gt, lt, ge, le* **modified**: *gt, lt, ge, le* + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + listEntitlementChildren: function (id, limit, offset, count, sorters, filters, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.listEntitlementChildren(id, limit, offset, count, sorters, filters, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This API returns a list of all parent entitlements of a given entitlement. + * @summary List of entitlements parents + * @param {string} id Entitlement Id + * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **id, name, created, modified, type, attribute, value, source.id** + * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **id**: *eq, in* **name**: *eq, in, sw* **type**: *eq, in* **attribute**: *eq, in* **value**: *eq, in, sw* **source.id**: *eq, in* **requestable**: *eq* **created**: *gt, lt, ge, le* **modified**: *gt, lt, ge, le* + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + listEntitlementParents: function (id, limit, offset, count, sorters, filters, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.listEntitlementParents(id, limit, offset, count, sorters, filters, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This API returns a list of entitlements. This API can be used in one of the two following ways: either getting entitlements for a specific **account-id**, or getting via use of **filters** (those two options are exclusive). Any authenticated token can call this API. + * @summary Gets a list of entitlements. + * @param {string} [accountId] The account ID. If specified, returns only entitlements associated with the given Account. Cannot be specified with the **filters**, **segmented-for-identity**, **for-segment-ids**, or **include-unsegmented** param(s). + * @param {string} [segmentedForIdentity] If present and not empty, additionally filters Entitlements to those which are assigned to the Segment(s) which are visible to the Identity with the specified ID. By convention, the value **me** can stand in for the current user\'s Identity ID. Cannot be specified with the **account-id** or **for-segment-ids** param(s). It is also illegal to specify a value that refers to a different user\'s Identity. + * @param {string} [forSegmentIds] If present and not empty, additionally filters Access Profiles to those which are assigned to the Segment(s) with the specified IDs. Cannot be specified with the **account-id** or **segmented-for-identity** param(s). + * @param {boolean} [includeUnsegmented] Whether or not the response list should contain unsegmented Entitlements. If **for-segment-ids** and **segmented-for-identity** are both absent or empty, specifying **include-unsegmented=false** results in an error. + * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **id, name, created, modified, type, attribute, value, source.id, requestable** + * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **id**: *eq, in* **name**: *eq, in, sw* **type**: *eq, in* **attribute**: *eq, in* **value**: *eq, in, sw* **source.id**: *eq, in* **requestable**: *eq* **created**: *gt, lt, ge, le* **modified**: *gt, lt, ge, le* + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + listEntitlements: function (accountId, segmentedForIdentity, forSegmentIds, includeUnsegmented, offset, limit, count, sorters, filters, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.listEntitlements(accountId, segmentedForIdentity, forSegmentIds, includeUnsegmented, offset, limit, count, sorters, filters, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This API updates an existing entitlement using [JSON Patch](https://tools.ietf.org/html/rfc6902) syntax. The following fields are patchable: **requestable**, **privileged**, **segments**, **owner**, **name**, **description**. When you\'re patching owner, only owner type and owner id must be provided. Owner name is optional, and it won\'t be modified. If the owner name is provided, it should correspond to the real name. The only owner type currently supported is IDENTITY. A token with ORG_ADMIN or SOURCE_ADMIN authority is required to call this API. + * @summary Patch an entitlement + * @param {string} id ID of the entitlement to patch + * @param {Array} [jsonPatchOperationBeta] + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + patchEntitlement: function (id, jsonPatchOperationBeta, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.patchEntitlement(id, jsonPatchOperationBeta, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This API replaces the entitlement request config for a specified entitlement. + * @summary Replace Entitlement Request Config + * @param {string} id Entitlement ID + * @param {EntitlementRequestConfigBeta} entitlementRequestConfigBeta + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + putEntitlementRequestConfig: function (id, entitlementRequestConfigBeta, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.putEntitlementRequestConfig(id, entitlementRequestConfigBeta, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This API applies an update to every entitlement of the list. The number of entitlements to update is limited to 50 items maximum. The JsonPatch update follows the [JSON Patch](https://tools.ietf.org/html/rfc6902) standard. allowed operations : **{ \"op\": \"replace\", \"path\": \"/privileged\", \"value\": boolean }** **{ \"op\": \"replace\", \"path\": \"/requestable\",\"value\": boolean }** A token with ORG_ADMIN or API authority is required to call this API. + * @summary Bulk update an entitlement list + * @param {EntitlementBulkUpdateRequestBeta} entitlementBulkUpdateRequestBeta + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + updateEntitlementsInBulk: function (entitlementBulkUpdateRequestBeta, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.updateEntitlementsInBulk(entitlementBulkUpdateRequestBeta, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + }; + }; + exports.EntitlementsBetaApiFp = EntitlementsBetaApiFp; + /** + * EntitlementsBetaApi - factory interface + * @export + */ + var EntitlementsBetaApiFactory = function (configuration, basePath, axios) { + var localVarFp = (0, exports.EntitlementsBetaApiFp)(configuration); + return { + /** + * This API returns an entitlement by its ID. + * @summary Get an entitlement + * @param {string} id The entitlement ID + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getEntitlement: function (id, axiosOptions) { + return localVarFp.getEntitlement(id, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This API returns the entitlement request config for a specified entitlement. + * @summary Get Entitlement Request Config + * @param {string} id Entitlement Id + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getEntitlementRequestConfig: function (id, axiosOptions) { + return localVarFp.getEntitlementRequestConfig(id, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This API returns a list of all child entitlements of a given entitlement. + * @summary List of entitlements children + * @param {string} id Entitlement Id + * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **id, name, created, modified, type, attribute, value, source.id** + * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **id**: *eq, in* **name**: *eq, in, sw* **type**: *eq, in* **attribute**: *eq, in* **value**: *eq, in, sw* **source.id**: *eq, in* **requestable**: *eq* **created**: *gt, lt, ge, le* **modified**: *gt, lt, ge, le* + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + listEntitlementChildren: function (id, limit, offset, count, sorters, filters, axiosOptions) { + return localVarFp.listEntitlementChildren(id, limit, offset, count, sorters, filters, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This API returns a list of all parent entitlements of a given entitlement. + * @summary List of entitlements parents + * @param {string} id Entitlement Id + * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **id, name, created, modified, type, attribute, value, source.id** + * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **id**: *eq, in* **name**: *eq, in, sw* **type**: *eq, in* **attribute**: *eq, in* **value**: *eq, in, sw* **source.id**: *eq, in* **requestable**: *eq* **created**: *gt, lt, ge, le* **modified**: *gt, lt, ge, le* + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + listEntitlementParents: function (id, limit, offset, count, sorters, filters, axiosOptions) { + return localVarFp.listEntitlementParents(id, limit, offset, count, sorters, filters, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This API returns a list of entitlements. This API can be used in one of the two following ways: either getting entitlements for a specific **account-id**, or getting via use of **filters** (those two options are exclusive). Any authenticated token can call this API. + * @summary Gets a list of entitlements. + * @param {string} [accountId] The account ID. If specified, returns only entitlements associated with the given Account. Cannot be specified with the **filters**, **segmented-for-identity**, **for-segment-ids**, or **include-unsegmented** param(s). + * @param {string} [segmentedForIdentity] If present and not empty, additionally filters Entitlements to those which are assigned to the Segment(s) which are visible to the Identity with the specified ID. By convention, the value **me** can stand in for the current user\'s Identity ID. Cannot be specified with the **account-id** or **for-segment-ids** param(s). It is also illegal to specify a value that refers to a different user\'s Identity. + * @param {string} [forSegmentIds] If present and not empty, additionally filters Access Profiles to those which are assigned to the Segment(s) with the specified IDs. Cannot be specified with the **account-id** or **segmented-for-identity** param(s). + * @param {boolean} [includeUnsegmented] Whether or not the response list should contain unsegmented Entitlements. If **for-segment-ids** and **segmented-for-identity** are both absent or empty, specifying **include-unsegmented=false** results in an error. + * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **id, name, created, modified, type, attribute, value, source.id, requestable** + * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **id**: *eq, in* **name**: *eq, in, sw* **type**: *eq, in* **attribute**: *eq, in* **value**: *eq, in, sw* **source.id**: *eq, in* **requestable**: *eq* **created**: *gt, lt, ge, le* **modified**: *gt, lt, ge, le* + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + listEntitlements: function (accountId, segmentedForIdentity, forSegmentIds, includeUnsegmented, offset, limit, count, sorters, filters, axiosOptions) { + return localVarFp.listEntitlements(accountId, segmentedForIdentity, forSegmentIds, includeUnsegmented, offset, limit, count, sorters, filters, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This API updates an existing entitlement using [JSON Patch](https://tools.ietf.org/html/rfc6902) syntax. The following fields are patchable: **requestable**, **privileged**, **segments**, **owner**, **name**, **description**. When you\'re patching owner, only owner type and owner id must be provided. Owner name is optional, and it won\'t be modified. If the owner name is provided, it should correspond to the real name. The only owner type currently supported is IDENTITY. A token with ORG_ADMIN or SOURCE_ADMIN authority is required to call this API. + * @summary Patch an entitlement + * @param {string} id ID of the entitlement to patch + * @param {Array} [jsonPatchOperationBeta] + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + patchEntitlement: function (id, jsonPatchOperationBeta, axiosOptions) { + return localVarFp.patchEntitlement(id, jsonPatchOperationBeta, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This API replaces the entitlement request config for a specified entitlement. + * @summary Replace Entitlement Request Config + * @param {string} id Entitlement ID + * @param {EntitlementRequestConfigBeta} entitlementRequestConfigBeta + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + putEntitlementRequestConfig: function (id, entitlementRequestConfigBeta, axiosOptions) { + return localVarFp.putEntitlementRequestConfig(id, entitlementRequestConfigBeta, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This API applies an update to every entitlement of the list. The number of entitlements to update is limited to 50 items maximum. The JsonPatch update follows the [JSON Patch](https://tools.ietf.org/html/rfc6902) standard. allowed operations : **{ \"op\": \"replace\", \"path\": \"/privileged\", \"value\": boolean }** **{ \"op\": \"replace\", \"path\": \"/requestable\",\"value\": boolean }** A token with ORG_ADMIN or API authority is required to call this API. + * @summary Bulk update an entitlement list + * @param {EntitlementBulkUpdateRequestBeta} entitlementBulkUpdateRequestBeta + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + updateEntitlementsInBulk: function (entitlementBulkUpdateRequestBeta, axiosOptions) { + return localVarFp.updateEntitlementsInBulk(entitlementBulkUpdateRequestBeta, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + }; + }; + exports.EntitlementsBetaApiFactory = EntitlementsBetaApiFactory; + /** + * EntitlementsBetaApi - object-oriented interface + * @export + * @class EntitlementsBetaApi + * @extends {BaseAPI} + */ + var EntitlementsBetaApi = /** @class */ (function (_super) { + __extends(EntitlementsBetaApi, _super); + function EntitlementsBetaApi() { + return _super !== null && _super.apply(this, arguments) || this; + } + /** + * This API returns an entitlement by its ID. + * @summary Get an entitlement + * @param {EntitlementsBetaApiGetEntitlementRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof EntitlementsBetaApi + */ + EntitlementsBetaApi.prototype.getEntitlement = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.EntitlementsBetaApiFp)(this.configuration).getEntitlement(requestParameters.id, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This API returns the entitlement request config for a specified entitlement. + * @summary Get Entitlement Request Config + * @param {EntitlementsBetaApiGetEntitlementRequestConfigRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof EntitlementsBetaApi + */ + EntitlementsBetaApi.prototype.getEntitlementRequestConfig = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.EntitlementsBetaApiFp)(this.configuration).getEntitlementRequestConfig(requestParameters.id, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This API returns a list of all child entitlements of a given entitlement. + * @summary List of entitlements children + * @param {EntitlementsBetaApiListEntitlementChildrenRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof EntitlementsBetaApi + */ + EntitlementsBetaApi.prototype.listEntitlementChildren = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.EntitlementsBetaApiFp)(this.configuration).listEntitlementChildren(requestParameters.id, requestParameters.limit, requestParameters.offset, requestParameters.count, requestParameters.sorters, requestParameters.filters, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This API returns a list of all parent entitlements of a given entitlement. + * @summary List of entitlements parents + * @param {EntitlementsBetaApiListEntitlementParentsRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof EntitlementsBetaApi + */ + EntitlementsBetaApi.prototype.listEntitlementParents = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.EntitlementsBetaApiFp)(this.configuration).listEntitlementParents(requestParameters.id, requestParameters.limit, requestParameters.offset, requestParameters.count, requestParameters.sorters, requestParameters.filters, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This API returns a list of entitlements. This API can be used in one of the two following ways: either getting entitlements for a specific **account-id**, or getting via use of **filters** (those two options are exclusive). Any authenticated token can call this API. + * @summary Gets a list of entitlements. + * @param {EntitlementsBetaApiListEntitlementsRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof EntitlementsBetaApi + */ + EntitlementsBetaApi.prototype.listEntitlements = function (requestParameters, axiosOptions) { + var _this = this; + if (requestParameters === void 0) { requestParameters = {}; } + return (0, exports.EntitlementsBetaApiFp)(this.configuration).listEntitlements(requestParameters.accountId, requestParameters.segmentedForIdentity, requestParameters.forSegmentIds, requestParameters.includeUnsegmented, requestParameters.offset, requestParameters.limit, requestParameters.count, requestParameters.sorters, requestParameters.filters, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This API updates an existing entitlement using [JSON Patch](https://tools.ietf.org/html/rfc6902) syntax. The following fields are patchable: **requestable**, **privileged**, **segments**, **owner**, **name**, **description**. When you\'re patching owner, only owner type and owner id must be provided. Owner name is optional, and it won\'t be modified. If the owner name is provided, it should correspond to the real name. The only owner type currently supported is IDENTITY. A token with ORG_ADMIN or SOURCE_ADMIN authority is required to call this API. + * @summary Patch an entitlement + * @param {EntitlementsBetaApiPatchEntitlementRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof EntitlementsBetaApi + */ + EntitlementsBetaApi.prototype.patchEntitlement = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.EntitlementsBetaApiFp)(this.configuration).patchEntitlement(requestParameters.id, requestParameters.jsonPatchOperationBeta, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This API replaces the entitlement request config for a specified entitlement. + * @summary Replace Entitlement Request Config + * @param {EntitlementsBetaApiPutEntitlementRequestConfigRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof EntitlementsBetaApi + */ + EntitlementsBetaApi.prototype.putEntitlementRequestConfig = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.EntitlementsBetaApiFp)(this.configuration).putEntitlementRequestConfig(requestParameters.id, requestParameters.entitlementRequestConfigBeta, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This API applies an update to every entitlement of the list. The number of entitlements to update is limited to 50 items maximum. The JsonPatch update follows the [JSON Patch](https://tools.ietf.org/html/rfc6902) standard. allowed operations : **{ \"op\": \"replace\", \"path\": \"/privileged\", \"value\": boolean }** **{ \"op\": \"replace\", \"path\": \"/requestable\",\"value\": boolean }** A token with ORG_ADMIN or API authority is required to call this API. + * @summary Bulk update an entitlement list + * @param {EntitlementsBetaApiUpdateEntitlementsInBulkRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof EntitlementsBetaApi + */ + EntitlementsBetaApi.prototype.updateEntitlementsInBulk = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.EntitlementsBetaApiFp)(this.configuration).updateEntitlementsInBulk(requestParameters.entitlementBulkUpdateRequestBeta, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + return EntitlementsBetaApi; + }(base_1.BaseAPI)); + exports.EntitlementsBetaApi = EntitlementsBetaApi; + /** + * GovernanceGroupsBetaApi - axios parameter creator + * @export + */ + var GovernanceGroupsBetaApiAxiosParamCreator = function (configuration) { + var _this = this; + return { + /** + * This API creates a new Governance Group. + * @summary Create a new Governance Group. + * @param {WorkgroupDtoBeta} workgroupDtoBeta + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + createWorkgroup: function (workgroupDtoBeta, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'workgroupDtoBeta' is not null or undefined + (0, common_1.assertParamExists)('createWorkgroup', 'workgroupDtoBeta', workgroupDtoBeta); + localVarPath = "/workgroups"; + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + localVarHeaderParameter['Content-Type'] = 'application/json'; + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(workgroupDtoBeta, localVarRequestOptions, configuration); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This API deletes a Governance Group by its ID. + * @summary Delete a Governance Group + * @param {string} id ID of the Governance Group + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + deleteWorkgroup: function (id, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'id' is not null or undefined + (0, common_1.assertParamExists)('deleteWorkgroup', 'id', id); + localVarPath = "/workgroups/{id}" + .replace("{".concat("id", "}"), encodeURIComponent(String(id))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'DELETE' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This API removes one or more members from a Governance Group. A token with API, ORG_ADMIN authority is required to call this API. > **Following field of Identity is an optional field in the request.** > **name** + * @summary Remove members from Governance Group + * @param {string} workgroupId ID of the Governance Group. + * @param {Array} bulkWorkgroupMembersRequestInnerBeta List of identities to be removed from a Governance Group members list. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + deleteWorkgroupMembers: function (workgroupId, bulkWorkgroupMembersRequestInnerBeta, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'workgroupId' is not null or undefined + (0, common_1.assertParamExists)('deleteWorkgroupMembers', 'workgroupId', workgroupId); + // verify required parameter 'bulkWorkgroupMembersRequestInnerBeta' is not null or undefined + (0, common_1.assertParamExists)('deleteWorkgroupMembers', 'bulkWorkgroupMembersRequestInnerBeta', bulkWorkgroupMembersRequestInnerBeta); + localVarPath = "/workgroups/{workgroupId}/members/bulk-delete" + .replace("{".concat("workgroupId", "}"), encodeURIComponent(String(workgroupId))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + localVarHeaderParameter['Content-Type'] = 'application/json'; + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(bulkWorkgroupMembersRequestInnerBeta, localVarRequestOptions, configuration); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This API initiates a bulk deletion of one or more Governance Groups. > If any of the indicated Governance Groups have one or more connections associated with it,then those Governance Groups will be added in **inUse** list of the response. Governance Group(s) marked as **inUse** can not be deleted. > If any of the indicated Governance Groups is not does not exists in Organization,then those Governance Groups will be added in **notFound** list of the response. Governance Groups marked as **notFound** will not be deleted. > If any of the indicated Governance Groups does not have any connections associated with it,then those Governance Groups will be added in **deleted** list of the response. A Governance Group marked as **deleted** will be deleted from current Organization. > If the request contains any **inUse** or **notFound** Governance Group IDs then it skips only these Governance Groups for deletion and deletes the rest of Governance Groups which have no connections associated with it. > **This API has limit number of Governance Groups can be deleted at one time. If the request contains more then 100 Governance Groups IDs to be deleted then the API will throw an exception.** + * @summary Delete Governance Group(s) + * @param {WorkgroupBulkDeleteRequestBeta} workgroupBulkDeleteRequestBeta + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + deleteWorkgroupsInBulk: function (workgroupBulkDeleteRequestBeta, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'workgroupBulkDeleteRequestBeta' is not null or undefined + (0, common_1.assertParamExists)('deleteWorkgroupsInBulk', 'workgroupBulkDeleteRequestBeta', workgroupBulkDeleteRequestBeta); + localVarPath = "/workgroups/bulk-delete"; + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + localVarHeaderParameter['Content-Type'] = 'application/json'; + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(workgroupBulkDeleteRequestBeta, localVarRequestOptions, configuration); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This API returns a Governance Groups by its ID. + * @summary Get Governance Group by Id + * @param {string} id ID of the Governance Group + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getWorkgroup: function (id, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'id' is not null or undefined + (0, common_1.assertParamExists)('getWorkgroup', 'id', id); + localVarPath = "/workgroups/{id}" + .replace("{".concat("id", "}"), encodeURIComponent(String(id))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This API returns list of connections associated with a Governance Group. + * @summary List connections for Governance Group + * @param {string} workgroupId ID of the Governance Group. + * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {number} [limit] Note that for this API the maximum value for limit is 50. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **name, created, modified** + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + listConnections: function (workgroupId, offset, limit, count, sorters, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'workgroupId' is not null or undefined + (0, common_1.assertParamExists)('listConnections', 'workgroupId', workgroupId); + localVarPath = "/workgroups/{workgroupId}/connections" + .replace("{".concat("workgroupId", "}"), encodeURIComponent(String(workgroupId))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + if (offset !== undefined) { + localVarQueryParameter['offset'] = offset; + } + if (limit !== undefined) { + localVarQueryParameter['limit'] = limit; + } + if (count !== undefined) { + localVarQueryParameter['count'] = count; + } + if (sorters !== undefined) { + localVarQueryParameter['sorters'] = sorters; + } + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This API returns list of members associated with a Governance Group. + * @summary List Governance Group Members + * @param {string} workgroupId ID of the Governance Group. + * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {number} [limit] Note that for this API the maximum value for limit is 50. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **name, created, modified** + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + listWorkgroupMembers: function (workgroupId, offset, limit, count, sorters, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'workgroupId' is not null or undefined + (0, common_1.assertParamExists)('listWorkgroupMembers', 'workgroupId', workgroupId); + localVarPath = "/workgroups/{workgroupId}/members" + .replace("{".concat("workgroupId", "}"), encodeURIComponent(String(workgroupId))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + if (offset !== undefined) { + localVarQueryParameter['offset'] = offset; + } + if (limit !== undefined) { + localVarQueryParameter['limit'] = limit; + } + if (count !== undefined) { + localVarQueryParameter['count'] = count; + } + if (sorters !== undefined) { + localVarQueryParameter['sorters'] = sorters; + } + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This API returns list of Governance Groups + * @summary List Governance Groups + * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {number} [limit] Note that for this API the maximum value for limit is 50. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **id**: *eq, in, sw* **name**: *eq, sw, in* + * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **name, created, modified, id, description** + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + listWorkgroups: function (offset, limit, count, filters, sorters, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + localVarPath = "/workgroups"; + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + if (offset !== undefined) { + localVarQueryParameter['offset'] = offset; + } + if (limit !== undefined) { + localVarQueryParameter['limit'] = limit; + } + if (count !== undefined) { + localVarQueryParameter['count'] = count; + } + if (filters !== undefined) { + localVarQueryParameter['filters'] = filters; + } + if (sorters !== undefined) { + localVarQueryParameter['sorters'] = sorters; + } + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This API updates existing Governance Group by its ID. Following fields are patchable. **name**, **description** A token with API, ORG_ADMIN is required to call this API. In addition. + * @summary Patch a Governance Group + * @param {string} id ID of the Governance Group + * @param {Array} [jsonPatchOperationBeta] + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + patchWorkgroup: function (id, jsonPatchOperationBeta, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'id' is not null or undefined + (0, common_1.assertParamExists)('patchWorkgroup', 'id', id); + localVarPath = "/workgroups/{id}" + .replace("{".concat("id", "}"), encodeURIComponent(String(id))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'PATCH' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + localVarHeaderParameter['Content-Type'] = 'application/json-patch+json'; + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(jsonPatchOperationBeta, localVarRequestOptions, configuration); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This API adds one or more members to a Governance Group. A token with API, ORG_ADMIN authority is required to call this API. > **Following field of Identity is an optional field in the request.** > **name** + * @summary Add members to Governance Group + * @param {string} workgroupId ID of the Governance Group. + * @param {Array} bulkWorkgroupMembersRequestInnerBeta List of identities to be added to a Governance Group members list. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + updateWorkgroupMembers: function (workgroupId, bulkWorkgroupMembersRequestInnerBeta, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'workgroupId' is not null or undefined + (0, common_1.assertParamExists)('updateWorkgroupMembers', 'workgroupId', workgroupId); + // verify required parameter 'bulkWorkgroupMembersRequestInnerBeta' is not null or undefined + (0, common_1.assertParamExists)('updateWorkgroupMembers', 'bulkWorkgroupMembersRequestInnerBeta', bulkWorkgroupMembersRequestInnerBeta); + localVarPath = "/workgroups/{workgroupId}/members/bulk-add" + .replace("{".concat("workgroupId", "}"), encodeURIComponent(String(workgroupId))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + localVarHeaderParameter['Content-Type'] = 'application/json'; + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(bulkWorkgroupMembersRequestInnerBeta, localVarRequestOptions, configuration); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + }; + }; + exports.GovernanceGroupsBetaApiAxiosParamCreator = GovernanceGroupsBetaApiAxiosParamCreator; + /** + * GovernanceGroupsBetaApi - functional programming interface + * @export + */ + var GovernanceGroupsBetaApiFp = function (configuration) { + var localVarAxiosParamCreator = (0, exports.GovernanceGroupsBetaApiAxiosParamCreator)(configuration); + return { + /** + * This API creates a new Governance Group. + * @summary Create a new Governance Group. + * @param {WorkgroupDtoBeta} workgroupDtoBeta + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + createWorkgroup: function (workgroupDtoBeta, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.createWorkgroup(workgroupDtoBeta, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This API deletes a Governance Group by its ID. + * @summary Delete a Governance Group + * @param {string} id ID of the Governance Group + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + deleteWorkgroup: function (id, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.deleteWorkgroup(id, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This API removes one or more members from a Governance Group. A token with API, ORG_ADMIN authority is required to call this API. > **Following field of Identity is an optional field in the request.** > **name** + * @summary Remove members from Governance Group + * @param {string} workgroupId ID of the Governance Group. + * @param {Array} bulkWorkgroupMembersRequestInnerBeta List of identities to be removed from a Governance Group members list. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + deleteWorkgroupMembers: function (workgroupId, bulkWorkgroupMembersRequestInnerBeta, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.deleteWorkgroupMembers(workgroupId, bulkWorkgroupMembersRequestInnerBeta, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This API initiates a bulk deletion of one or more Governance Groups. > If any of the indicated Governance Groups have one or more connections associated with it,then those Governance Groups will be added in **inUse** list of the response. Governance Group(s) marked as **inUse** can not be deleted. > If any of the indicated Governance Groups is not does not exists in Organization,then those Governance Groups will be added in **notFound** list of the response. Governance Groups marked as **notFound** will not be deleted. > If any of the indicated Governance Groups does not have any connections associated with it,then those Governance Groups will be added in **deleted** list of the response. A Governance Group marked as **deleted** will be deleted from current Organization. > If the request contains any **inUse** or **notFound** Governance Group IDs then it skips only these Governance Groups for deletion and deletes the rest of Governance Groups which have no connections associated with it. > **This API has limit number of Governance Groups can be deleted at one time. If the request contains more then 100 Governance Groups IDs to be deleted then the API will throw an exception.** + * @summary Delete Governance Group(s) + * @param {WorkgroupBulkDeleteRequestBeta} workgroupBulkDeleteRequestBeta + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + deleteWorkgroupsInBulk: function (workgroupBulkDeleteRequestBeta, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.deleteWorkgroupsInBulk(workgroupBulkDeleteRequestBeta, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This API returns a Governance Groups by its ID. + * @summary Get Governance Group by Id + * @param {string} id ID of the Governance Group + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getWorkgroup: function (id, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.getWorkgroup(id, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This API returns list of connections associated with a Governance Group. + * @summary List connections for Governance Group + * @param {string} workgroupId ID of the Governance Group. + * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {number} [limit] Note that for this API the maximum value for limit is 50. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **name, created, modified** + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + listConnections: function (workgroupId, offset, limit, count, sorters, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.listConnections(workgroupId, offset, limit, count, sorters, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This API returns list of members associated with a Governance Group. + * @summary List Governance Group Members + * @param {string} workgroupId ID of the Governance Group. + * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {number} [limit] Note that for this API the maximum value for limit is 50. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **name, created, modified** + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + listWorkgroupMembers: function (workgroupId, offset, limit, count, sorters, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.listWorkgroupMembers(workgroupId, offset, limit, count, sorters, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This API returns list of Governance Groups + * @summary List Governance Groups + * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {number} [limit] Note that for this API the maximum value for limit is 50. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **id**: *eq, in, sw* **name**: *eq, sw, in* + * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **name, created, modified, id, description** + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + listWorkgroups: function (offset, limit, count, filters, sorters, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.listWorkgroups(offset, limit, count, filters, sorters, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This API updates existing Governance Group by its ID. Following fields are patchable. **name**, **description** A token with API, ORG_ADMIN is required to call this API. In addition. + * @summary Patch a Governance Group + * @param {string} id ID of the Governance Group + * @param {Array} [jsonPatchOperationBeta] + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + patchWorkgroup: function (id, jsonPatchOperationBeta, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.patchWorkgroup(id, jsonPatchOperationBeta, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This API adds one or more members to a Governance Group. A token with API, ORG_ADMIN authority is required to call this API. > **Following field of Identity is an optional field in the request.** > **name** + * @summary Add members to Governance Group + * @param {string} workgroupId ID of the Governance Group. + * @param {Array} bulkWorkgroupMembersRequestInnerBeta List of identities to be added to a Governance Group members list. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + updateWorkgroupMembers: function (workgroupId, bulkWorkgroupMembersRequestInnerBeta, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.updateWorkgroupMembers(workgroupId, bulkWorkgroupMembersRequestInnerBeta, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + }; + }; + exports.GovernanceGroupsBetaApiFp = GovernanceGroupsBetaApiFp; + /** + * GovernanceGroupsBetaApi - factory interface + * @export + */ + var GovernanceGroupsBetaApiFactory = function (configuration, basePath, axios) { + var localVarFp = (0, exports.GovernanceGroupsBetaApiFp)(configuration); + return { + /** + * This API creates a new Governance Group. + * @summary Create a new Governance Group. + * @param {WorkgroupDtoBeta} workgroupDtoBeta + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + createWorkgroup: function (workgroupDtoBeta, axiosOptions) { + return localVarFp.createWorkgroup(workgroupDtoBeta, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This API deletes a Governance Group by its ID. + * @summary Delete a Governance Group + * @param {string} id ID of the Governance Group + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + deleteWorkgroup: function (id, axiosOptions) { + return localVarFp.deleteWorkgroup(id, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This API removes one or more members from a Governance Group. A token with API, ORG_ADMIN authority is required to call this API. > **Following field of Identity is an optional field in the request.** > **name** + * @summary Remove members from Governance Group + * @param {string} workgroupId ID of the Governance Group. + * @param {Array} bulkWorkgroupMembersRequestInnerBeta List of identities to be removed from a Governance Group members list. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + deleteWorkgroupMembers: function (workgroupId, bulkWorkgroupMembersRequestInnerBeta, axiosOptions) { + return localVarFp.deleteWorkgroupMembers(workgroupId, bulkWorkgroupMembersRequestInnerBeta, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This API initiates a bulk deletion of one or more Governance Groups. > If any of the indicated Governance Groups have one or more connections associated with it,then those Governance Groups will be added in **inUse** list of the response. Governance Group(s) marked as **inUse** can not be deleted. > If any of the indicated Governance Groups is not does not exists in Organization,then those Governance Groups will be added in **notFound** list of the response. Governance Groups marked as **notFound** will not be deleted. > If any of the indicated Governance Groups does not have any connections associated with it,then those Governance Groups will be added in **deleted** list of the response. A Governance Group marked as **deleted** will be deleted from current Organization. > If the request contains any **inUse** or **notFound** Governance Group IDs then it skips only these Governance Groups for deletion and deletes the rest of Governance Groups which have no connections associated with it. > **This API has limit number of Governance Groups can be deleted at one time. If the request contains more then 100 Governance Groups IDs to be deleted then the API will throw an exception.** + * @summary Delete Governance Group(s) + * @param {WorkgroupBulkDeleteRequestBeta} workgroupBulkDeleteRequestBeta + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + deleteWorkgroupsInBulk: function (workgroupBulkDeleteRequestBeta, axiosOptions) { + return localVarFp.deleteWorkgroupsInBulk(workgroupBulkDeleteRequestBeta, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This API returns a Governance Groups by its ID. + * @summary Get Governance Group by Id + * @param {string} id ID of the Governance Group + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getWorkgroup: function (id, axiosOptions) { + return localVarFp.getWorkgroup(id, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This API returns list of connections associated with a Governance Group. + * @summary List connections for Governance Group + * @param {string} workgroupId ID of the Governance Group. + * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {number} [limit] Note that for this API the maximum value for limit is 50. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **name, created, modified** + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + listConnections: function (workgroupId, offset, limit, count, sorters, axiosOptions) { + return localVarFp.listConnections(workgroupId, offset, limit, count, sorters, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This API returns list of members associated with a Governance Group. + * @summary List Governance Group Members + * @param {string} workgroupId ID of the Governance Group. + * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {number} [limit] Note that for this API the maximum value for limit is 50. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **name, created, modified** + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + listWorkgroupMembers: function (workgroupId, offset, limit, count, sorters, axiosOptions) { + return localVarFp.listWorkgroupMembers(workgroupId, offset, limit, count, sorters, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This API returns list of Governance Groups + * @summary List Governance Groups + * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {number} [limit] Note that for this API the maximum value for limit is 50. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **id**: *eq, in, sw* **name**: *eq, sw, in* + * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **name, created, modified, id, description** + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + listWorkgroups: function (offset, limit, count, filters, sorters, axiosOptions) { + return localVarFp.listWorkgroups(offset, limit, count, filters, sorters, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This API updates existing Governance Group by its ID. Following fields are patchable. **name**, **description** A token with API, ORG_ADMIN is required to call this API. In addition. + * @summary Patch a Governance Group + * @param {string} id ID of the Governance Group + * @param {Array} [jsonPatchOperationBeta] + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + patchWorkgroup: function (id, jsonPatchOperationBeta, axiosOptions) { + return localVarFp.patchWorkgroup(id, jsonPatchOperationBeta, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This API adds one or more members to a Governance Group. A token with API, ORG_ADMIN authority is required to call this API. > **Following field of Identity is an optional field in the request.** > **name** + * @summary Add members to Governance Group + * @param {string} workgroupId ID of the Governance Group. + * @param {Array} bulkWorkgroupMembersRequestInnerBeta List of identities to be added to a Governance Group members list. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + updateWorkgroupMembers: function (workgroupId, bulkWorkgroupMembersRequestInnerBeta, axiosOptions) { + return localVarFp.updateWorkgroupMembers(workgroupId, bulkWorkgroupMembersRequestInnerBeta, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + }; + }; + exports.GovernanceGroupsBetaApiFactory = GovernanceGroupsBetaApiFactory; + /** + * GovernanceGroupsBetaApi - object-oriented interface + * @export + * @class GovernanceGroupsBetaApi + * @extends {BaseAPI} + */ + var GovernanceGroupsBetaApi = /** @class */ (function (_super) { + __extends(GovernanceGroupsBetaApi, _super); + function GovernanceGroupsBetaApi() { + return _super !== null && _super.apply(this, arguments) || this; + } + /** + * This API creates a new Governance Group. + * @summary Create a new Governance Group. + * @param {GovernanceGroupsBetaApiCreateWorkgroupRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof GovernanceGroupsBetaApi + */ + GovernanceGroupsBetaApi.prototype.createWorkgroup = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.GovernanceGroupsBetaApiFp)(this.configuration).createWorkgroup(requestParameters.workgroupDtoBeta, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This API deletes a Governance Group by its ID. + * @summary Delete a Governance Group + * @param {GovernanceGroupsBetaApiDeleteWorkgroupRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof GovernanceGroupsBetaApi + */ + GovernanceGroupsBetaApi.prototype.deleteWorkgroup = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.GovernanceGroupsBetaApiFp)(this.configuration).deleteWorkgroup(requestParameters.id, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This API removes one or more members from a Governance Group. A token with API, ORG_ADMIN authority is required to call this API. > **Following field of Identity is an optional field in the request.** > **name** + * @summary Remove members from Governance Group + * @param {GovernanceGroupsBetaApiDeleteWorkgroupMembersRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof GovernanceGroupsBetaApi + */ + GovernanceGroupsBetaApi.prototype.deleteWorkgroupMembers = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.GovernanceGroupsBetaApiFp)(this.configuration).deleteWorkgroupMembers(requestParameters.workgroupId, requestParameters.bulkWorkgroupMembersRequestInnerBeta, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This API initiates a bulk deletion of one or more Governance Groups. > If any of the indicated Governance Groups have one or more connections associated with it,then those Governance Groups will be added in **inUse** list of the response. Governance Group(s) marked as **inUse** can not be deleted. > If any of the indicated Governance Groups is not does not exists in Organization,then those Governance Groups will be added in **notFound** list of the response. Governance Groups marked as **notFound** will not be deleted. > If any of the indicated Governance Groups does not have any connections associated with it,then those Governance Groups will be added in **deleted** list of the response. A Governance Group marked as **deleted** will be deleted from current Organization. > If the request contains any **inUse** or **notFound** Governance Group IDs then it skips only these Governance Groups for deletion and deletes the rest of Governance Groups which have no connections associated with it. > **This API has limit number of Governance Groups can be deleted at one time. If the request contains more then 100 Governance Groups IDs to be deleted then the API will throw an exception.** + * @summary Delete Governance Group(s) + * @param {GovernanceGroupsBetaApiDeleteWorkgroupsInBulkRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof GovernanceGroupsBetaApi + */ + GovernanceGroupsBetaApi.prototype.deleteWorkgroupsInBulk = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.GovernanceGroupsBetaApiFp)(this.configuration).deleteWorkgroupsInBulk(requestParameters.workgroupBulkDeleteRequestBeta, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This API returns a Governance Groups by its ID. + * @summary Get Governance Group by Id + * @param {GovernanceGroupsBetaApiGetWorkgroupRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof GovernanceGroupsBetaApi + */ + GovernanceGroupsBetaApi.prototype.getWorkgroup = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.GovernanceGroupsBetaApiFp)(this.configuration).getWorkgroup(requestParameters.id, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This API returns list of connections associated with a Governance Group. + * @summary List connections for Governance Group + * @param {GovernanceGroupsBetaApiListConnectionsRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof GovernanceGroupsBetaApi + */ + GovernanceGroupsBetaApi.prototype.listConnections = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.GovernanceGroupsBetaApiFp)(this.configuration).listConnections(requestParameters.workgroupId, requestParameters.offset, requestParameters.limit, requestParameters.count, requestParameters.sorters, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This API returns list of members associated with a Governance Group. + * @summary List Governance Group Members + * @param {GovernanceGroupsBetaApiListWorkgroupMembersRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof GovernanceGroupsBetaApi + */ + GovernanceGroupsBetaApi.prototype.listWorkgroupMembers = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.GovernanceGroupsBetaApiFp)(this.configuration).listWorkgroupMembers(requestParameters.workgroupId, requestParameters.offset, requestParameters.limit, requestParameters.count, requestParameters.sorters, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This API returns list of Governance Groups + * @summary List Governance Groups + * @param {GovernanceGroupsBetaApiListWorkgroupsRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof GovernanceGroupsBetaApi + */ + GovernanceGroupsBetaApi.prototype.listWorkgroups = function (requestParameters, axiosOptions) { + var _this = this; + if (requestParameters === void 0) { requestParameters = {}; } + return (0, exports.GovernanceGroupsBetaApiFp)(this.configuration).listWorkgroups(requestParameters.offset, requestParameters.limit, requestParameters.count, requestParameters.filters, requestParameters.sorters, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This API updates existing Governance Group by its ID. Following fields are patchable. **name**, **description** A token with API, ORG_ADMIN is required to call this API. In addition. + * @summary Patch a Governance Group + * @param {GovernanceGroupsBetaApiPatchWorkgroupRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof GovernanceGroupsBetaApi + */ + GovernanceGroupsBetaApi.prototype.patchWorkgroup = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.GovernanceGroupsBetaApiFp)(this.configuration).patchWorkgroup(requestParameters.id, requestParameters.jsonPatchOperationBeta, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This API adds one or more members to a Governance Group. A token with API, ORG_ADMIN authority is required to call this API. > **Following field of Identity is an optional field in the request.** > **name** + * @summary Add members to Governance Group + * @param {GovernanceGroupsBetaApiUpdateWorkgroupMembersRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof GovernanceGroupsBetaApi + */ + GovernanceGroupsBetaApi.prototype.updateWorkgroupMembers = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.GovernanceGroupsBetaApiFp)(this.configuration).updateWorkgroupMembers(requestParameters.workgroupId, requestParameters.bulkWorkgroupMembersRequestInnerBeta, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + return GovernanceGroupsBetaApi; + }(base_1.BaseAPI)); + exports.GovernanceGroupsBetaApi = GovernanceGroupsBetaApi; + /** + * IAIAccessRequestRecommendationsBetaApi - axios parameter creator + * @export + */ + var IAIAccessRequestRecommendationsBetaApiAxiosParamCreator = function (configuration) { + var _this = this; + return { + /** + * This API ignores a recommended access request item. Once an item is ignored, it will be marked as ignored=true if it is still a recommended item. The consumer can decide to hide ignored recommendations. + * @summary Notification of Ignored Access Request Recommendations + * @param {AccessRequestRecommendationActionItemDtoBeta} accessRequestRecommendationActionItemDtoBeta The recommended access item to ignore for an identity. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + addAccessRequestRecommendationsIgnoredItem: function (accessRequestRecommendationActionItemDtoBeta, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'accessRequestRecommendationActionItemDtoBeta' is not null or undefined + (0, common_1.assertParamExists)('addAccessRequestRecommendationsIgnoredItem', 'accessRequestRecommendationActionItemDtoBeta', accessRequestRecommendationActionItemDtoBeta); + localVarPath = "/ai-access-request-recommendations/ignored-items"; + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + localVarHeaderParameter['Content-Type'] = 'application/json'; + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(accessRequestRecommendationActionItemDtoBeta, localVarRequestOptions, configuration); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This API consumes a notification that a recommended access request item was requested. This API does not actually make the request, it is just a notification. This will help provide feedback in order to improve our recommendations. + * @summary Notification of Requested Access Request Recommendations + * @param {AccessRequestRecommendationActionItemDtoBeta} accessRequestRecommendationActionItemDtoBeta The recommended access item that was requested for an identity. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + addAccessRequestRecommendationsRequestedItem: function (accessRequestRecommendationActionItemDtoBeta, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'accessRequestRecommendationActionItemDtoBeta' is not null or undefined + (0, common_1.assertParamExists)('addAccessRequestRecommendationsRequestedItem', 'accessRequestRecommendationActionItemDtoBeta', accessRequestRecommendationActionItemDtoBeta); + localVarPath = "/ai-access-request-recommendations/requested-items"; + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + localVarHeaderParameter['Content-Type'] = 'application/json'; + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(accessRequestRecommendationActionItemDtoBeta, localVarRequestOptions, configuration); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This API consumes a notification that a recommended access request item was viewed. Future recommendations with this item will be marked with viewed=true. This can be useful for the consumer to determine if there are any new/unviewed recommendations. + * @summary Notification of Viewed Access Request Recommendations + * @param {AccessRequestRecommendationActionItemDtoBeta} accessRequestRecommendationActionItemDtoBeta The recommended access that was viewed for an identity. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + addAccessRequestRecommendationsViewedItem: function (accessRequestRecommendationActionItemDtoBeta, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'accessRequestRecommendationActionItemDtoBeta' is not null or undefined + (0, common_1.assertParamExists)('addAccessRequestRecommendationsViewedItem', 'accessRequestRecommendationActionItemDtoBeta', accessRequestRecommendationActionItemDtoBeta); + localVarPath = "/ai-access-request-recommendations/viewed-items"; + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + localVarHeaderParameter['Content-Type'] = 'application/json'; + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(accessRequestRecommendationActionItemDtoBeta, localVarRequestOptions, configuration); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This API consumes a notification that a set of recommended access request item were viewed. Future recommendations with these items will be marked with viewed=true. This can be useful for the consumer to determine if there are any new/unviewed recommendations. + * @summary Notification of Viewed Access Request Recommendations in Bulk + * @param {Array} accessRequestRecommendationActionItemDtoBeta The recommended access items that were viewed for an identity. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + addAccessRequestRecommendationsViewedItems: function (accessRequestRecommendationActionItemDtoBeta, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'accessRequestRecommendationActionItemDtoBeta' is not null or undefined + (0, common_1.assertParamExists)('addAccessRequestRecommendationsViewedItems', 'accessRequestRecommendationActionItemDtoBeta', accessRequestRecommendationActionItemDtoBeta); + localVarPath = "/ai-access-request-recommendations/viewed-items/bulk-create"; + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + localVarHeaderParameter['Content-Type'] = 'application/json'; + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(accessRequestRecommendationActionItemDtoBeta, localVarRequestOptions, configuration); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This API returns the access request recommendations for the specified identity. The default identity is *me* which indicates the current user. + * @summary Identity Access Request Recommendations + * @param {string} [identityId] Get access request recommendations for an identityId. *me* indicates the current user. + * @param {number} [limit] Max number of results to return. + * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {boolean} [includeTranslationMessages] If *true* it will populate a list of translation messages in the response. + * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **access.name**: *co* **access.type**: *eq, in* **access.description**: *co, eq, in* + * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **access.name, access.type** By default the recommendations are sorted by highest confidence first. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getAccessRequestRecommendations: function (identityId, limit, offset, count, includeTranslationMessages, filters, sorters, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + localVarPath = "/ai-access-request-recommendations"; + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + if (identityId !== undefined) { + localVarQueryParameter['identity-id'] = identityId; + } + if (limit !== undefined) { + localVarQueryParameter['limit'] = limit; + } + if (offset !== undefined) { + localVarQueryParameter['offset'] = offset; + } + if (count !== undefined) { + localVarQueryParameter['count'] = count; + } + if (includeTranslationMessages !== undefined) { + localVarQueryParameter['include-translation-messages'] = includeTranslationMessages; + } + if (filters !== undefined) { + localVarQueryParameter['filters'] = filters; + } + if (sorters !== undefined) { + localVarQueryParameter['sorters'] = sorters; + } + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This API returns the list of ignored access request recommendations. + * @summary List of Ignored Access Request Recommendations + * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **access.id**: *eq, in* **access.type**: *eq, in* **identityId**: *eq, in* + * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **access.id, access.type, identityId, timestamp** + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getAccessRequestRecommendationsIgnoredItems: function (limit, offset, count, filters, sorters, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + localVarPath = "/ai-access-request-recommendations/ignored-items"; + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + if (limit !== undefined) { + localVarQueryParameter['limit'] = limit; + } + if (offset !== undefined) { + localVarQueryParameter['offset'] = offset; + } + if (count !== undefined) { + localVarQueryParameter['count'] = count; + } + if (filters !== undefined) { + localVarQueryParameter['filters'] = filters; + } + if (sorters !== undefined) { + localVarQueryParameter['sorters'] = sorters; + } + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This API returns a list of requested access request recommendations. + * @summary List of Requested Access Request Recommendations + * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **access.id**: *eq, in* **access.type**: *eq, in* **identityId**: *eq, in* + * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **access.id, access.type, identityId, timestamp** + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getAccessRequestRecommendationsRequestedItems: function (limit, offset, count, filters, sorters, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + localVarPath = "/ai-access-request-recommendations/requested-items"; + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + if (limit !== undefined) { + localVarQueryParameter['limit'] = limit; + } + if (offset !== undefined) { + localVarQueryParameter['offset'] = offset; + } + if (count !== undefined) { + localVarQueryParameter['count'] = count; + } + if (filters !== undefined) { + localVarQueryParameter['filters'] = filters; + } + if (sorters !== undefined) { + localVarQueryParameter['sorters'] = sorters; + } + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This API returns the list of viewed access request recommendations. + * @summary List of Viewed Access Request Recommendations + * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **access.id**: *eq, in* **access.type**: *eq, in* **identityId**: *eq, in* + * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **access.id, access.type, identityId, timestamp** + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getAccessRequestRecommendationsViewedItems: function (limit, offset, count, filters, sorters, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + localVarPath = "/ai-access-request-recommendations/viewed-items"; + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + if (limit !== undefined) { + localVarQueryParameter['limit'] = limit; + } + if (offset !== undefined) { + localVarQueryParameter['offset'] = offset; + } + if (count !== undefined) { + localVarQueryParameter['count'] = count; + } + if (filters !== undefined) { + localVarQueryParameter['filters'] = filters; + } + if (sorters !== undefined) { + localVarQueryParameter['sorters'] = sorters; + } + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * The getMessageCatalogs API returns message catalog based on the language headers in the requested object. + * @summary Get Message catalogs + * @param {'recommender' | 'access-request-recommender'} catalogId The ID of the message catalog. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getMessageCatalogs: function (catalogId, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'catalogId' is not null or undefined + (0, common_1.assertParamExists)('getMessageCatalogs', 'catalogId', catalogId); + localVarPath = "/translation-catalogs/{catalog-id}" + .replace("{".concat("catalog-id", "}"), encodeURIComponent(String(catalogId))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + }; + }; + exports.IAIAccessRequestRecommendationsBetaApiAxiosParamCreator = IAIAccessRequestRecommendationsBetaApiAxiosParamCreator; + /** + * IAIAccessRequestRecommendationsBetaApi - functional programming interface + * @export + */ + var IAIAccessRequestRecommendationsBetaApiFp = function (configuration) { + var localVarAxiosParamCreator = (0, exports.IAIAccessRequestRecommendationsBetaApiAxiosParamCreator)(configuration); + return { + /** + * This API ignores a recommended access request item. Once an item is ignored, it will be marked as ignored=true if it is still a recommended item. The consumer can decide to hide ignored recommendations. + * @summary Notification of Ignored Access Request Recommendations + * @param {AccessRequestRecommendationActionItemDtoBeta} accessRequestRecommendationActionItemDtoBeta The recommended access item to ignore for an identity. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + addAccessRequestRecommendationsIgnoredItem: function (accessRequestRecommendationActionItemDtoBeta, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.addAccessRequestRecommendationsIgnoredItem(accessRequestRecommendationActionItemDtoBeta, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This API consumes a notification that a recommended access request item was requested. This API does not actually make the request, it is just a notification. This will help provide feedback in order to improve our recommendations. + * @summary Notification of Requested Access Request Recommendations + * @param {AccessRequestRecommendationActionItemDtoBeta} accessRequestRecommendationActionItemDtoBeta The recommended access item that was requested for an identity. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + addAccessRequestRecommendationsRequestedItem: function (accessRequestRecommendationActionItemDtoBeta, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.addAccessRequestRecommendationsRequestedItem(accessRequestRecommendationActionItemDtoBeta, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This API consumes a notification that a recommended access request item was viewed. Future recommendations with this item will be marked with viewed=true. This can be useful for the consumer to determine if there are any new/unviewed recommendations. + * @summary Notification of Viewed Access Request Recommendations + * @param {AccessRequestRecommendationActionItemDtoBeta} accessRequestRecommendationActionItemDtoBeta The recommended access that was viewed for an identity. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + addAccessRequestRecommendationsViewedItem: function (accessRequestRecommendationActionItemDtoBeta, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.addAccessRequestRecommendationsViewedItem(accessRequestRecommendationActionItemDtoBeta, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This API consumes a notification that a set of recommended access request item were viewed. Future recommendations with these items will be marked with viewed=true. This can be useful for the consumer to determine if there are any new/unviewed recommendations. + * @summary Notification of Viewed Access Request Recommendations in Bulk + * @param {Array} accessRequestRecommendationActionItemDtoBeta The recommended access items that were viewed for an identity. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + addAccessRequestRecommendationsViewedItems: function (accessRequestRecommendationActionItemDtoBeta, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.addAccessRequestRecommendationsViewedItems(accessRequestRecommendationActionItemDtoBeta, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This API returns the access request recommendations for the specified identity. The default identity is *me* which indicates the current user. + * @summary Identity Access Request Recommendations + * @param {string} [identityId] Get access request recommendations for an identityId. *me* indicates the current user. + * @param {number} [limit] Max number of results to return. + * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {boolean} [includeTranslationMessages] If *true* it will populate a list of translation messages in the response. + * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **access.name**: *co* **access.type**: *eq, in* **access.description**: *co, eq, in* + * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **access.name, access.type** By default the recommendations are sorted by highest confidence first. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getAccessRequestRecommendations: function (identityId, limit, offset, count, includeTranslationMessages, filters, sorters, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.getAccessRequestRecommendations(identityId, limit, offset, count, includeTranslationMessages, filters, sorters, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This API returns the list of ignored access request recommendations. + * @summary List of Ignored Access Request Recommendations + * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **access.id**: *eq, in* **access.type**: *eq, in* **identityId**: *eq, in* + * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **access.id, access.type, identityId, timestamp** + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getAccessRequestRecommendationsIgnoredItems: function (limit, offset, count, filters, sorters, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.getAccessRequestRecommendationsIgnoredItems(limit, offset, count, filters, sorters, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This API returns a list of requested access request recommendations. + * @summary List of Requested Access Request Recommendations + * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **access.id**: *eq, in* **access.type**: *eq, in* **identityId**: *eq, in* + * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **access.id, access.type, identityId, timestamp** + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getAccessRequestRecommendationsRequestedItems: function (limit, offset, count, filters, sorters, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.getAccessRequestRecommendationsRequestedItems(limit, offset, count, filters, sorters, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This API returns the list of viewed access request recommendations. + * @summary List of Viewed Access Request Recommendations + * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **access.id**: *eq, in* **access.type**: *eq, in* **identityId**: *eq, in* + * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **access.id, access.type, identityId, timestamp** + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getAccessRequestRecommendationsViewedItems: function (limit, offset, count, filters, sorters, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.getAccessRequestRecommendationsViewedItems(limit, offset, count, filters, sorters, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * The getMessageCatalogs API returns message catalog based on the language headers in the requested object. + * @summary Get Message catalogs + * @param {'recommender' | 'access-request-recommender'} catalogId The ID of the message catalog. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getMessageCatalogs: function (catalogId, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.getMessageCatalogs(catalogId, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + }; + }; + exports.IAIAccessRequestRecommendationsBetaApiFp = IAIAccessRequestRecommendationsBetaApiFp; + /** + * IAIAccessRequestRecommendationsBetaApi - factory interface + * @export + */ + var IAIAccessRequestRecommendationsBetaApiFactory = function (configuration, basePath, axios) { + var localVarFp = (0, exports.IAIAccessRequestRecommendationsBetaApiFp)(configuration); + return { + /** + * This API ignores a recommended access request item. Once an item is ignored, it will be marked as ignored=true if it is still a recommended item. The consumer can decide to hide ignored recommendations. + * @summary Notification of Ignored Access Request Recommendations + * @param {AccessRequestRecommendationActionItemDtoBeta} accessRequestRecommendationActionItemDtoBeta The recommended access item to ignore for an identity. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + addAccessRequestRecommendationsIgnoredItem: function (accessRequestRecommendationActionItemDtoBeta, axiosOptions) { + return localVarFp.addAccessRequestRecommendationsIgnoredItem(accessRequestRecommendationActionItemDtoBeta, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This API consumes a notification that a recommended access request item was requested. This API does not actually make the request, it is just a notification. This will help provide feedback in order to improve our recommendations. + * @summary Notification of Requested Access Request Recommendations + * @param {AccessRequestRecommendationActionItemDtoBeta} accessRequestRecommendationActionItemDtoBeta The recommended access item that was requested for an identity. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + addAccessRequestRecommendationsRequestedItem: function (accessRequestRecommendationActionItemDtoBeta, axiosOptions) { + return localVarFp.addAccessRequestRecommendationsRequestedItem(accessRequestRecommendationActionItemDtoBeta, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This API consumes a notification that a recommended access request item was viewed. Future recommendations with this item will be marked with viewed=true. This can be useful for the consumer to determine if there are any new/unviewed recommendations. + * @summary Notification of Viewed Access Request Recommendations + * @param {AccessRequestRecommendationActionItemDtoBeta} accessRequestRecommendationActionItemDtoBeta The recommended access that was viewed for an identity. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + addAccessRequestRecommendationsViewedItem: function (accessRequestRecommendationActionItemDtoBeta, axiosOptions) { + return localVarFp.addAccessRequestRecommendationsViewedItem(accessRequestRecommendationActionItemDtoBeta, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This API consumes a notification that a set of recommended access request item were viewed. Future recommendations with these items will be marked with viewed=true. This can be useful for the consumer to determine if there are any new/unviewed recommendations. + * @summary Notification of Viewed Access Request Recommendations in Bulk + * @param {Array} accessRequestRecommendationActionItemDtoBeta The recommended access items that were viewed for an identity. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + addAccessRequestRecommendationsViewedItems: function (accessRequestRecommendationActionItemDtoBeta, axiosOptions) { + return localVarFp.addAccessRequestRecommendationsViewedItems(accessRequestRecommendationActionItemDtoBeta, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This API returns the access request recommendations for the specified identity. The default identity is *me* which indicates the current user. + * @summary Identity Access Request Recommendations + * @param {string} [identityId] Get access request recommendations for an identityId. *me* indicates the current user. + * @param {number} [limit] Max number of results to return. + * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {boolean} [includeTranslationMessages] If *true* it will populate a list of translation messages in the response. + * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **access.name**: *co* **access.type**: *eq, in* **access.description**: *co, eq, in* + * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **access.name, access.type** By default the recommendations are sorted by highest confidence first. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getAccessRequestRecommendations: function (identityId, limit, offset, count, includeTranslationMessages, filters, sorters, axiosOptions) { + return localVarFp.getAccessRequestRecommendations(identityId, limit, offset, count, includeTranslationMessages, filters, sorters, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This API returns the list of ignored access request recommendations. + * @summary List of Ignored Access Request Recommendations + * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **access.id**: *eq, in* **access.type**: *eq, in* **identityId**: *eq, in* + * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **access.id, access.type, identityId, timestamp** + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getAccessRequestRecommendationsIgnoredItems: function (limit, offset, count, filters, sorters, axiosOptions) { + return localVarFp.getAccessRequestRecommendationsIgnoredItems(limit, offset, count, filters, sorters, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This API returns a list of requested access request recommendations. + * @summary List of Requested Access Request Recommendations + * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **access.id**: *eq, in* **access.type**: *eq, in* **identityId**: *eq, in* + * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **access.id, access.type, identityId, timestamp** + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getAccessRequestRecommendationsRequestedItems: function (limit, offset, count, filters, sorters, axiosOptions) { + return localVarFp.getAccessRequestRecommendationsRequestedItems(limit, offset, count, filters, sorters, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This API returns the list of viewed access request recommendations. + * @summary List of Viewed Access Request Recommendations + * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **access.id**: *eq, in* **access.type**: *eq, in* **identityId**: *eq, in* + * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **access.id, access.type, identityId, timestamp** + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getAccessRequestRecommendationsViewedItems: function (limit, offset, count, filters, sorters, axiosOptions) { + return localVarFp.getAccessRequestRecommendationsViewedItems(limit, offset, count, filters, sorters, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * The getMessageCatalogs API returns message catalog based on the language headers in the requested object. + * @summary Get Message catalogs + * @param {'recommender' | 'access-request-recommender'} catalogId The ID of the message catalog. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getMessageCatalogs: function (catalogId, axiosOptions) { + return localVarFp.getMessageCatalogs(catalogId, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + }; + }; + exports.IAIAccessRequestRecommendationsBetaApiFactory = IAIAccessRequestRecommendationsBetaApiFactory; + /** + * IAIAccessRequestRecommendationsBetaApi - object-oriented interface + * @export + * @class IAIAccessRequestRecommendationsBetaApi + * @extends {BaseAPI} + */ + var IAIAccessRequestRecommendationsBetaApi = /** @class */ (function (_super) { + __extends(IAIAccessRequestRecommendationsBetaApi, _super); + function IAIAccessRequestRecommendationsBetaApi() { + return _super !== null && _super.apply(this, arguments) || this; + } + /** + * This API ignores a recommended access request item. Once an item is ignored, it will be marked as ignored=true if it is still a recommended item. The consumer can decide to hide ignored recommendations. + * @summary Notification of Ignored Access Request Recommendations + * @param {IAIAccessRequestRecommendationsBetaApiAddAccessRequestRecommendationsIgnoredItemRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof IAIAccessRequestRecommendationsBetaApi + */ + IAIAccessRequestRecommendationsBetaApi.prototype.addAccessRequestRecommendationsIgnoredItem = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.IAIAccessRequestRecommendationsBetaApiFp)(this.configuration).addAccessRequestRecommendationsIgnoredItem(requestParameters.accessRequestRecommendationActionItemDtoBeta, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This API consumes a notification that a recommended access request item was requested. This API does not actually make the request, it is just a notification. This will help provide feedback in order to improve our recommendations. + * @summary Notification of Requested Access Request Recommendations + * @param {IAIAccessRequestRecommendationsBetaApiAddAccessRequestRecommendationsRequestedItemRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof IAIAccessRequestRecommendationsBetaApi + */ + IAIAccessRequestRecommendationsBetaApi.prototype.addAccessRequestRecommendationsRequestedItem = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.IAIAccessRequestRecommendationsBetaApiFp)(this.configuration).addAccessRequestRecommendationsRequestedItem(requestParameters.accessRequestRecommendationActionItemDtoBeta, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This API consumes a notification that a recommended access request item was viewed. Future recommendations with this item will be marked with viewed=true. This can be useful for the consumer to determine if there are any new/unviewed recommendations. + * @summary Notification of Viewed Access Request Recommendations + * @param {IAIAccessRequestRecommendationsBetaApiAddAccessRequestRecommendationsViewedItemRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof IAIAccessRequestRecommendationsBetaApi + */ + IAIAccessRequestRecommendationsBetaApi.prototype.addAccessRequestRecommendationsViewedItem = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.IAIAccessRequestRecommendationsBetaApiFp)(this.configuration).addAccessRequestRecommendationsViewedItem(requestParameters.accessRequestRecommendationActionItemDtoBeta, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This API consumes a notification that a set of recommended access request item were viewed. Future recommendations with these items will be marked with viewed=true. This can be useful for the consumer to determine if there are any new/unviewed recommendations. + * @summary Notification of Viewed Access Request Recommendations in Bulk + * @param {IAIAccessRequestRecommendationsBetaApiAddAccessRequestRecommendationsViewedItemsRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof IAIAccessRequestRecommendationsBetaApi + */ + IAIAccessRequestRecommendationsBetaApi.prototype.addAccessRequestRecommendationsViewedItems = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.IAIAccessRequestRecommendationsBetaApiFp)(this.configuration).addAccessRequestRecommendationsViewedItems(requestParameters.accessRequestRecommendationActionItemDtoBeta, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This API returns the access request recommendations for the specified identity. The default identity is *me* which indicates the current user. + * @summary Identity Access Request Recommendations + * @param {IAIAccessRequestRecommendationsBetaApiGetAccessRequestRecommendationsRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof IAIAccessRequestRecommendationsBetaApi + */ + IAIAccessRequestRecommendationsBetaApi.prototype.getAccessRequestRecommendations = function (requestParameters, axiosOptions) { + var _this = this; + if (requestParameters === void 0) { requestParameters = {}; } + return (0, exports.IAIAccessRequestRecommendationsBetaApiFp)(this.configuration).getAccessRequestRecommendations(requestParameters.identityId, requestParameters.limit, requestParameters.offset, requestParameters.count, requestParameters.includeTranslationMessages, requestParameters.filters, requestParameters.sorters, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This API returns the list of ignored access request recommendations. + * @summary List of Ignored Access Request Recommendations + * @param {IAIAccessRequestRecommendationsBetaApiGetAccessRequestRecommendationsIgnoredItemsRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof IAIAccessRequestRecommendationsBetaApi + */ + IAIAccessRequestRecommendationsBetaApi.prototype.getAccessRequestRecommendationsIgnoredItems = function (requestParameters, axiosOptions) { + var _this = this; + if (requestParameters === void 0) { requestParameters = {}; } + return (0, exports.IAIAccessRequestRecommendationsBetaApiFp)(this.configuration).getAccessRequestRecommendationsIgnoredItems(requestParameters.limit, requestParameters.offset, requestParameters.count, requestParameters.filters, requestParameters.sorters, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This API returns a list of requested access request recommendations. + * @summary List of Requested Access Request Recommendations + * @param {IAIAccessRequestRecommendationsBetaApiGetAccessRequestRecommendationsRequestedItemsRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof IAIAccessRequestRecommendationsBetaApi + */ + IAIAccessRequestRecommendationsBetaApi.prototype.getAccessRequestRecommendationsRequestedItems = function (requestParameters, axiosOptions) { + var _this = this; + if (requestParameters === void 0) { requestParameters = {}; } + return (0, exports.IAIAccessRequestRecommendationsBetaApiFp)(this.configuration).getAccessRequestRecommendationsRequestedItems(requestParameters.limit, requestParameters.offset, requestParameters.count, requestParameters.filters, requestParameters.sorters, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This API returns the list of viewed access request recommendations. + * @summary List of Viewed Access Request Recommendations + * @param {IAIAccessRequestRecommendationsBetaApiGetAccessRequestRecommendationsViewedItemsRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof IAIAccessRequestRecommendationsBetaApi + */ + IAIAccessRequestRecommendationsBetaApi.prototype.getAccessRequestRecommendationsViewedItems = function (requestParameters, axiosOptions) { + var _this = this; + if (requestParameters === void 0) { requestParameters = {}; } + return (0, exports.IAIAccessRequestRecommendationsBetaApiFp)(this.configuration).getAccessRequestRecommendationsViewedItems(requestParameters.limit, requestParameters.offset, requestParameters.count, requestParameters.filters, requestParameters.sorters, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * The getMessageCatalogs API returns message catalog based on the language headers in the requested object. + * @summary Get Message catalogs + * @param {IAIAccessRequestRecommendationsBetaApiGetMessageCatalogsRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof IAIAccessRequestRecommendationsBetaApi + */ + IAIAccessRequestRecommendationsBetaApi.prototype.getMessageCatalogs = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.IAIAccessRequestRecommendationsBetaApiFp)(this.configuration).getMessageCatalogs(requestParameters.catalogId, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + return IAIAccessRequestRecommendationsBetaApi; + }(base_1.BaseAPI)); + exports.IAIAccessRequestRecommendationsBetaApi = IAIAccessRequestRecommendationsBetaApi; + /** + * IAICommonAccessBetaApi - axios parameter creator + * @export + */ + var IAICommonAccessBetaApiAxiosParamCreator = function (configuration) { + var _this = this; + return { + /** + * This API is used to add roles/access profiles to the list of common access for a customer. Requires authorization scope of iai:access-modeling:create + * @summary Create common access items + * @param {CommonAccessItemRequestBeta} commonAccessItemRequestBeta + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + createCommonAccess: function (commonAccessItemRequestBeta, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'commonAccessItemRequestBeta' is not null or undefined + (0, common_1.assertParamExists)('createCommonAccess', 'commonAccessItemRequestBeta', commonAccessItemRequestBeta); + localVarPath = "/common-access"; + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + localVarHeaderParameter['Content-Type'] = 'application/json'; + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(commonAccessItemRequestBeta, localVarRequestOptions, configuration); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This endpoint returns the current common access for a customer. The returned items can be filtered and sorted. Requires authorization scope of iai:access-modeling:read + * @summary Get a paginated list of common access + * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **status**: *eq, sw* **reviewedByUser** *eq* **access.id**: *eq, sw* **access.type**: *eq* **access.name**: *sw, eq* **access.description**: *sw, eq* + * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **access.name, status** By default the common access items are sorted by name, ascending. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getCommonAccess: function (offset, limit, count, filters, sorters, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + localVarPath = "/common-access"; + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + if (offset !== undefined) { + localVarQueryParameter['offset'] = offset; + } + if (limit !== undefined) { + localVarQueryParameter['limit'] = limit; + } + if (count !== undefined) { + localVarQueryParameter['count'] = count; + } + if (filters !== undefined) { + localVarQueryParameter['filters'] = filters; + } + if (sorters !== undefined) { + localVarQueryParameter['sorters'] = sorters; + } + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This submits an update request to the common access application. At this time there are no parameters. Requires authorization scope of iai:access-modeling:update + * @summary Bulk update common access status + * @param {Array} commonAccessIDStatusBeta Confirm or deny in bulk the common access ids that are (or aren\'t) common access + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + updateCommonAccessStatusInBulk: function (commonAccessIDStatusBeta, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'commonAccessIDStatusBeta' is not null or undefined + (0, common_1.assertParamExists)('updateCommonAccessStatusInBulk', 'commonAccessIDStatusBeta', commonAccessIDStatusBeta); + localVarPath = "/common-access/update-status"; + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + localVarHeaderParameter['Content-Type'] = 'application/json'; + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(commonAccessIDStatusBeta, localVarRequestOptions, configuration); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + }; + }; + exports.IAICommonAccessBetaApiAxiosParamCreator = IAICommonAccessBetaApiAxiosParamCreator; + /** + * IAICommonAccessBetaApi - functional programming interface + * @export + */ + var IAICommonAccessBetaApiFp = function (configuration) { + var localVarAxiosParamCreator = (0, exports.IAICommonAccessBetaApiAxiosParamCreator)(configuration); + return { + /** + * This API is used to add roles/access profiles to the list of common access for a customer. Requires authorization scope of iai:access-modeling:create + * @summary Create common access items + * @param {CommonAccessItemRequestBeta} commonAccessItemRequestBeta + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + createCommonAccess: function (commonAccessItemRequestBeta, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.createCommonAccess(commonAccessItemRequestBeta, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This endpoint returns the current common access for a customer. The returned items can be filtered and sorted. Requires authorization scope of iai:access-modeling:read + * @summary Get a paginated list of common access + * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **status**: *eq, sw* **reviewedByUser** *eq* **access.id**: *eq, sw* **access.type**: *eq* **access.name**: *sw, eq* **access.description**: *sw, eq* + * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **access.name, status** By default the common access items are sorted by name, ascending. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getCommonAccess: function (offset, limit, count, filters, sorters, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.getCommonAccess(offset, limit, count, filters, sorters, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This submits an update request to the common access application. At this time there are no parameters. Requires authorization scope of iai:access-modeling:update + * @summary Bulk update common access status + * @param {Array} commonAccessIDStatusBeta Confirm or deny in bulk the common access ids that are (or aren\'t) common access + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + updateCommonAccessStatusInBulk: function (commonAccessIDStatusBeta, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.updateCommonAccessStatusInBulk(commonAccessIDStatusBeta, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + }; + }; + exports.IAICommonAccessBetaApiFp = IAICommonAccessBetaApiFp; + /** + * IAICommonAccessBetaApi - factory interface + * @export + */ + var IAICommonAccessBetaApiFactory = function (configuration, basePath, axios) { + var localVarFp = (0, exports.IAICommonAccessBetaApiFp)(configuration); + return { + /** + * This API is used to add roles/access profiles to the list of common access for a customer. Requires authorization scope of iai:access-modeling:create + * @summary Create common access items + * @param {CommonAccessItemRequestBeta} commonAccessItemRequestBeta + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + createCommonAccess: function (commonAccessItemRequestBeta, axiosOptions) { + return localVarFp.createCommonAccess(commonAccessItemRequestBeta, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This endpoint returns the current common access for a customer. The returned items can be filtered and sorted. Requires authorization scope of iai:access-modeling:read + * @summary Get a paginated list of common access + * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **status**: *eq, sw* **reviewedByUser** *eq* **access.id**: *eq, sw* **access.type**: *eq* **access.name**: *sw, eq* **access.description**: *sw, eq* + * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **access.name, status** By default the common access items are sorted by name, ascending. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getCommonAccess: function (offset, limit, count, filters, sorters, axiosOptions) { + return localVarFp.getCommonAccess(offset, limit, count, filters, sorters, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This submits an update request to the common access application. At this time there are no parameters. Requires authorization scope of iai:access-modeling:update + * @summary Bulk update common access status + * @param {Array} commonAccessIDStatusBeta Confirm or deny in bulk the common access ids that are (or aren\'t) common access + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + updateCommonAccessStatusInBulk: function (commonAccessIDStatusBeta, axiosOptions) { + return localVarFp.updateCommonAccessStatusInBulk(commonAccessIDStatusBeta, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + }; + }; + exports.IAICommonAccessBetaApiFactory = IAICommonAccessBetaApiFactory; + /** + * IAICommonAccessBetaApi - object-oriented interface + * @export + * @class IAICommonAccessBetaApi + * @extends {BaseAPI} + */ + var IAICommonAccessBetaApi = /** @class */ (function (_super) { + __extends(IAICommonAccessBetaApi, _super); + function IAICommonAccessBetaApi() { + return _super !== null && _super.apply(this, arguments) || this; + } + /** + * This API is used to add roles/access profiles to the list of common access for a customer. Requires authorization scope of iai:access-modeling:create + * @summary Create common access items + * @param {IAICommonAccessBetaApiCreateCommonAccessRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof IAICommonAccessBetaApi + */ + IAICommonAccessBetaApi.prototype.createCommonAccess = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.IAICommonAccessBetaApiFp)(this.configuration).createCommonAccess(requestParameters.commonAccessItemRequestBeta, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This endpoint returns the current common access for a customer. The returned items can be filtered and sorted. Requires authorization scope of iai:access-modeling:read + * @summary Get a paginated list of common access + * @param {IAICommonAccessBetaApiGetCommonAccessRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof IAICommonAccessBetaApi + */ + IAICommonAccessBetaApi.prototype.getCommonAccess = function (requestParameters, axiosOptions) { + var _this = this; + if (requestParameters === void 0) { requestParameters = {}; } + return (0, exports.IAICommonAccessBetaApiFp)(this.configuration).getCommonAccess(requestParameters.offset, requestParameters.limit, requestParameters.count, requestParameters.filters, requestParameters.sorters, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This submits an update request to the common access application. At this time there are no parameters. Requires authorization scope of iai:access-modeling:update + * @summary Bulk update common access status + * @param {IAICommonAccessBetaApiUpdateCommonAccessStatusInBulkRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof IAICommonAccessBetaApi + */ + IAICommonAccessBetaApi.prototype.updateCommonAccessStatusInBulk = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.IAICommonAccessBetaApiFp)(this.configuration).updateCommonAccessStatusInBulk(requestParameters.commonAccessIDStatusBeta, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + return IAICommonAccessBetaApi; + }(base_1.BaseAPI)); + exports.IAICommonAccessBetaApi = IAICommonAccessBetaApi; + /** + * IAIOutliersBetaApi - axios parameter creator + * @export + */ + var IAIOutliersBetaApiAxiosParamCreator = function (configuration) { + var _this = this; + return { + /** + * This API exports a list of ignored outliers to a CSV as well as list of non-ignored outliers to a CSV. These two CSVs will be zipped and exported Columns will include: identityID, type, firstDetectionDate, latestDetectionDate, ignored, & attributes (defined set of identity attributes) Requires authorization scope of \'iai:outliers-management:read\' + * @summary IAI Identity Outliers Export + * @param {'LOW_SIMILARITY' | 'STRUCTURAL'} [type] Type of the identity outliers snapshot to filter on + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + exportOutliersZip: function (type, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + localVarPath = "/outliers/export"; + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + if (type !== undefined) { + localVarQueryParameter['type'] = type; + } + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This API receives a summary containing: the number of identities that customer has, the number of outliers, and the type of outlier Requires authorization scope of \'iai:outliers-management:read\' + * @summary IAI Identity Outliers Summary + * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {'LOW_SIMILARITY' | 'STRUCTURAL'} [type] Type of the identity outliers snapshot to filter on + * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **snapshotDate**: *ge, le* + * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **snapshotDate** + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getIdentityOutlierSnapshots: function (limit, offset, type, filters, sorters, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + localVarPath = "/outlier-summaries"; + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + if (limit !== undefined) { + localVarQueryParameter['limit'] = limit; + } + if (offset !== undefined) { + localVarQueryParameter['offset'] = offset; + } + if (type !== undefined) { + localVarQueryParameter['type'] = type; + } + if (filters !== undefined) { + localVarQueryParameter['filters'] = filters; + } + if (sorters !== undefined) { + localVarQueryParameter['sorters'] = sorters; + } + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This API receives a list of outliers, containing data such as: identityId, outlier type, detection dates, identity attributes, if identity is ignore, and certification information Requires authorization scope of \'iai:outliers-management:read\' + * @summary IAI Get Identity Outliers + * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {'LOW_SIMILARITY' | 'STRUCTURAL'} [type] Type of the identity outliers snapshot to filter on + * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **attributes**: *eq, sw, co, in* **firstDetectionDate**: *ge, le* **certStatus**: *eq* **ignored**: *eq* **score**: *ge, le* + * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **firstDetectionDate, attributes, score** + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getIdentityOutliers: function (limit, offset, count, type, filters, sorters, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + localVarPath = "/outliers"; + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + if (limit !== undefined) { + localVarQueryParameter['limit'] = limit; + } + if (offset !== undefined) { + localVarQueryParameter['offset'] = offset; + } + if (count !== undefined) { + localVarQueryParameter['count'] = count; + } + if (type !== undefined) { + localVarQueryParameter['type'] = type; + } + if (filters !== undefined) { + localVarQueryParameter['filters'] = filters; + } + if (sorters !== undefined) { + localVarQueryParameter['sorters'] = sorters; + } + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This API returns a most recent snapshot of each outlier type, each containing: the number of identities that customer has, the number of outliers, and the type of outlier Requires authorization scope of \'iai:outliers-management:read\' + * @summary IAI Identity Outliers Latest Summary + * @param {'LOW_SIMILARITY' | 'STRUCTURAL'} [type] Type of the identity outliers snapshot to filter on + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getLatestIdentityOutlierSnapshots: function (type, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + localVarPath = "/outlier-summaries/latest"; + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + if (type !== undefined) { + localVarQueryParameter['type'] = type; + } + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This API returns a summary of a contributing feature for an identity outlier. The object contains: contributing feature name (translated text or message key), identity outlier display name, feature values, feature definition and explanation (translated text or message key), peer display name and identityId, access item reference, translation messages object Requires authorization scope of \'iai:outliers-management:read\' + * @summary Get identity outlier contibuting feature summary + * @param {string} outlierFeatureId Contributing feature id + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getOutlierContributingFeatureSummary: function (outlierFeatureId, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'outlierFeatureId' is not null or undefined + (0, common_1.assertParamExists)('getOutlierContributingFeatureSummary', 'outlierFeatureId', outlierFeatureId); + localVarPath = "/outlier-feature-summaries/{outlierFeatureId}" + .replace("{".concat("outlierFeatureId", "}"), encodeURIComponent(String(outlierFeatureId))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This API returns a list of contributing feature objects for a single outlier. The object contains: feature name, feature value type, value, importance, display name (translated text or message key), description (translated text or message key), translation messages object Requires authorization scope of \'iai:outliers-management:read\' + * @summary Get identity outlier\'s contibuting features + * @param {string} outlierId The outlier id + * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {string} [includeTranslationMessages] Whether or not to include translation messages object in returned response + * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **importance** + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getPeerGroupOutliersContributingFeatures: function (outlierId, limit, offset, count, includeTranslationMessages, sorters, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'outlierId' is not null or undefined + (0, common_1.assertParamExists)('getPeerGroupOutliersContributingFeatures', 'outlierId', outlierId); + localVarPath = "/outliers/{outlierId}/contributing-features" + .replace("{".concat("outlierId", "}"), encodeURIComponent(String(outlierId))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + if (limit !== undefined) { + localVarQueryParameter['limit'] = limit; + } + if (offset !== undefined) { + localVarQueryParameter['offset'] = offset; + } + if (count !== undefined) { + localVarQueryParameter['count'] = count; + } + if (includeTranslationMessages !== undefined) { + localVarQueryParameter['include-translation-messages'] = includeTranslationMessages; + } + if (sorters !== undefined) { + localVarQueryParameter['sorters'] = sorters; + } + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This API receives a list of IdentityIDs in the request, changes the outliers to be ignored--returning a 204 if successful. Requires authorization scope of \'iai:outliers-management:update\' + * @summary IAI Identity Outliers Ignore + * @param {Array} requestBody + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + ignoreIdentityOutliers: function (requestBody, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'requestBody' is not null or undefined + (0, common_1.assertParamExists)('ignoreIdentityOutliers', 'requestBody', requestBody); + localVarPath = "/outliers/ignore"; + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + localVarHeaderParameter['Content-Type'] = 'application/json'; + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(requestBody, localVarRequestOptions, configuration); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This API returns a list of the enriched access items associated with each feature filtered by the access item type The object contains: accessItemId, display name (translated text or message key), description (translated text or message key), accessType, sourceName, extremelyRare Requires authorization scope of \'iai:outliers-management:read\' + * @summary Gets a list of access items associated with each identity outlier contributing feature + * @param {string} outlierId The outlier id + * @param {'radical_entitlement_count' | 'entitlement_count' | 'max_jaccard_similarity' | 'mean_max_bundle_concurrency' | 'single_entitlement_bundle_count' | 'peerless_score'} contributingFeatureName The name of contributing feature + * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {string} [accessType] The type of access item for the identity outlier contributing feature. If not provided, it returns all + * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **displayName** + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + listOutliersContributingFeatureAccessItems: function (outlierId, contributingFeatureName, limit, offset, count, accessType, sorters, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'outlierId' is not null or undefined + (0, common_1.assertParamExists)('listOutliersContributingFeatureAccessItems', 'outlierId', outlierId); + // verify required parameter 'contributingFeatureName' is not null or undefined + (0, common_1.assertParamExists)('listOutliersContributingFeatureAccessItems', 'contributingFeatureName', contributingFeatureName); + localVarPath = "/outliers/{outlierId}/feature-details/{contributingFeatureName}/access-items" + .replace("{".concat("outlierId", "}"), encodeURIComponent(String(outlierId))) + .replace("{".concat("contributingFeatureName", "}"), encodeURIComponent(String(contributingFeatureName))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + if (limit !== undefined) { + localVarQueryParameter['limit'] = limit; + } + if (offset !== undefined) { + localVarQueryParameter['offset'] = offset; + } + if (count !== undefined) { + localVarQueryParameter['count'] = count; + } + if (accessType !== undefined) { + localVarQueryParameter['accessType'] = accessType; + } + if (sorters !== undefined) { + localVarQueryParameter['sorters'] = sorters; + } + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This API receives a list of IdentityIDs in the request, changes the outliers to be un-ignored--returning a 204 if successful. Requires authorization scope of \'iai:outliers-management:update\' + * @summary IAI Identity Outliers Unignore + * @param {Array} requestBody + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + unIgnoreIdentityOutliers: function (requestBody, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'requestBody' is not null or undefined + (0, common_1.assertParamExists)('unIgnoreIdentityOutliers', 'requestBody', requestBody); + localVarPath = "/outliers/unignore"; + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + localVarHeaderParameter['Content-Type'] = 'application/json'; + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(requestBody, localVarRequestOptions, configuration); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + }; + }; + exports.IAIOutliersBetaApiAxiosParamCreator = IAIOutliersBetaApiAxiosParamCreator; + /** + * IAIOutliersBetaApi - functional programming interface + * @export + */ + var IAIOutliersBetaApiFp = function (configuration) { + var localVarAxiosParamCreator = (0, exports.IAIOutliersBetaApiAxiosParamCreator)(configuration); + return { + /** + * This API exports a list of ignored outliers to a CSV as well as list of non-ignored outliers to a CSV. These two CSVs will be zipped and exported Columns will include: identityID, type, firstDetectionDate, latestDetectionDate, ignored, & attributes (defined set of identity attributes) Requires authorization scope of \'iai:outliers-management:read\' + * @summary IAI Identity Outliers Export + * @param {'LOW_SIMILARITY' | 'STRUCTURAL'} [type] Type of the identity outliers snapshot to filter on + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + exportOutliersZip: function (type, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.exportOutliersZip(type, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This API receives a summary containing: the number of identities that customer has, the number of outliers, and the type of outlier Requires authorization scope of \'iai:outliers-management:read\' + * @summary IAI Identity Outliers Summary + * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {'LOW_SIMILARITY' | 'STRUCTURAL'} [type] Type of the identity outliers snapshot to filter on + * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **snapshotDate**: *ge, le* + * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **snapshotDate** + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getIdentityOutlierSnapshots: function (limit, offset, type, filters, sorters, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.getIdentityOutlierSnapshots(limit, offset, type, filters, sorters, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This API receives a list of outliers, containing data such as: identityId, outlier type, detection dates, identity attributes, if identity is ignore, and certification information Requires authorization scope of \'iai:outliers-management:read\' + * @summary IAI Get Identity Outliers + * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {'LOW_SIMILARITY' | 'STRUCTURAL'} [type] Type of the identity outliers snapshot to filter on + * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **attributes**: *eq, sw, co, in* **firstDetectionDate**: *ge, le* **certStatus**: *eq* **ignored**: *eq* **score**: *ge, le* + * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **firstDetectionDate, attributes, score** + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getIdentityOutliers: function (limit, offset, count, type, filters, sorters, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.getIdentityOutliers(limit, offset, count, type, filters, sorters, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This API returns a most recent snapshot of each outlier type, each containing: the number of identities that customer has, the number of outliers, and the type of outlier Requires authorization scope of \'iai:outliers-management:read\' + * @summary IAI Identity Outliers Latest Summary + * @param {'LOW_SIMILARITY' | 'STRUCTURAL'} [type] Type of the identity outliers snapshot to filter on + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getLatestIdentityOutlierSnapshots: function (type, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.getLatestIdentityOutlierSnapshots(type, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This API returns a summary of a contributing feature for an identity outlier. The object contains: contributing feature name (translated text or message key), identity outlier display name, feature values, feature definition and explanation (translated text or message key), peer display name and identityId, access item reference, translation messages object Requires authorization scope of \'iai:outliers-management:read\' + * @summary Get identity outlier contibuting feature summary + * @param {string} outlierFeatureId Contributing feature id + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getOutlierContributingFeatureSummary: function (outlierFeatureId, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.getOutlierContributingFeatureSummary(outlierFeatureId, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This API returns a list of contributing feature objects for a single outlier. The object contains: feature name, feature value type, value, importance, display name (translated text or message key), description (translated text or message key), translation messages object Requires authorization scope of \'iai:outliers-management:read\' + * @summary Get identity outlier\'s contibuting features + * @param {string} outlierId The outlier id + * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {string} [includeTranslationMessages] Whether or not to include translation messages object in returned response + * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **importance** + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getPeerGroupOutliersContributingFeatures: function (outlierId, limit, offset, count, includeTranslationMessages, sorters, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.getPeerGroupOutliersContributingFeatures(outlierId, limit, offset, count, includeTranslationMessages, sorters, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This API receives a list of IdentityIDs in the request, changes the outliers to be ignored--returning a 204 if successful. Requires authorization scope of \'iai:outliers-management:update\' + * @summary IAI Identity Outliers Ignore + * @param {Array} requestBody + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + ignoreIdentityOutliers: function (requestBody, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.ignoreIdentityOutliers(requestBody, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This API returns a list of the enriched access items associated with each feature filtered by the access item type The object contains: accessItemId, display name (translated text or message key), description (translated text or message key), accessType, sourceName, extremelyRare Requires authorization scope of \'iai:outliers-management:read\' + * @summary Gets a list of access items associated with each identity outlier contributing feature + * @param {string} outlierId The outlier id + * @param {'radical_entitlement_count' | 'entitlement_count' | 'max_jaccard_similarity' | 'mean_max_bundle_concurrency' | 'single_entitlement_bundle_count' | 'peerless_score'} contributingFeatureName The name of contributing feature + * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {string} [accessType] The type of access item for the identity outlier contributing feature. If not provided, it returns all + * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **displayName** + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + listOutliersContributingFeatureAccessItems: function (outlierId, contributingFeatureName, limit, offset, count, accessType, sorters, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.listOutliersContributingFeatureAccessItems(outlierId, contributingFeatureName, limit, offset, count, accessType, sorters, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This API receives a list of IdentityIDs in the request, changes the outliers to be un-ignored--returning a 204 if successful. Requires authorization scope of \'iai:outliers-management:update\' + * @summary IAI Identity Outliers Unignore + * @param {Array} requestBody + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + unIgnoreIdentityOutliers: function (requestBody, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.unIgnoreIdentityOutliers(requestBody, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + }; + }; + exports.IAIOutliersBetaApiFp = IAIOutliersBetaApiFp; + /** + * IAIOutliersBetaApi - factory interface + * @export + */ + var IAIOutliersBetaApiFactory = function (configuration, basePath, axios) { + var localVarFp = (0, exports.IAIOutliersBetaApiFp)(configuration); + return { + /** + * This API exports a list of ignored outliers to a CSV as well as list of non-ignored outliers to a CSV. These two CSVs will be zipped and exported Columns will include: identityID, type, firstDetectionDate, latestDetectionDate, ignored, & attributes (defined set of identity attributes) Requires authorization scope of \'iai:outliers-management:read\' + * @summary IAI Identity Outliers Export + * @param {'LOW_SIMILARITY' | 'STRUCTURAL'} [type] Type of the identity outliers snapshot to filter on + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + exportOutliersZip: function (type, axiosOptions) { + return localVarFp.exportOutliersZip(type, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This API receives a summary containing: the number of identities that customer has, the number of outliers, and the type of outlier Requires authorization scope of \'iai:outliers-management:read\' + * @summary IAI Identity Outliers Summary + * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {'LOW_SIMILARITY' | 'STRUCTURAL'} [type] Type of the identity outliers snapshot to filter on + * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **snapshotDate**: *ge, le* + * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **snapshotDate** + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getIdentityOutlierSnapshots: function (limit, offset, type, filters, sorters, axiosOptions) { + return localVarFp.getIdentityOutlierSnapshots(limit, offset, type, filters, sorters, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This API receives a list of outliers, containing data such as: identityId, outlier type, detection dates, identity attributes, if identity is ignore, and certification information Requires authorization scope of \'iai:outliers-management:read\' + * @summary IAI Get Identity Outliers + * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {'LOW_SIMILARITY' | 'STRUCTURAL'} [type] Type of the identity outliers snapshot to filter on + * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **attributes**: *eq, sw, co, in* **firstDetectionDate**: *ge, le* **certStatus**: *eq* **ignored**: *eq* **score**: *ge, le* + * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **firstDetectionDate, attributes, score** + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getIdentityOutliers: function (limit, offset, count, type, filters, sorters, axiosOptions) { + return localVarFp.getIdentityOutliers(limit, offset, count, type, filters, sorters, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This API returns a most recent snapshot of each outlier type, each containing: the number of identities that customer has, the number of outliers, and the type of outlier Requires authorization scope of \'iai:outliers-management:read\' + * @summary IAI Identity Outliers Latest Summary + * @param {'LOW_SIMILARITY' | 'STRUCTURAL'} [type] Type of the identity outliers snapshot to filter on + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getLatestIdentityOutlierSnapshots: function (type, axiosOptions) { + return localVarFp.getLatestIdentityOutlierSnapshots(type, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This API returns a summary of a contributing feature for an identity outlier. The object contains: contributing feature name (translated text or message key), identity outlier display name, feature values, feature definition and explanation (translated text or message key), peer display name and identityId, access item reference, translation messages object Requires authorization scope of \'iai:outliers-management:read\' + * @summary Get identity outlier contibuting feature summary + * @param {string} outlierFeatureId Contributing feature id + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getOutlierContributingFeatureSummary: function (outlierFeatureId, axiosOptions) { + return localVarFp.getOutlierContributingFeatureSummary(outlierFeatureId, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This API returns a list of contributing feature objects for a single outlier. The object contains: feature name, feature value type, value, importance, display name (translated text or message key), description (translated text or message key), translation messages object Requires authorization scope of \'iai:outliers-management:read\' + * @summary Get identity outlier\'s contibuting features + * @param {string} outlierId The outlier id + * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {string} [includeTranslationMessages] Whether or not to include translation messages object in returned response + * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **importance** + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getPeerGroupOutliersContributingFeatures: function (outlierId, limit, offset, count, includeTranslationMessages, sorters, axiosOptions) { + return localVarFp.getPeerGroupOutliersContributingFeatures(outlierId, limit, offset, count, includeTranslationMessages, sorters, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This API receives a list of IdentityIDs in the request, changes the outliers to be ignored--returning a 204 if successful. Requires authorization scope of \'iai:outliers-management:update\' + * @summary IAI Identity Outliers Ignore + * @param {Array} requestBody + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + ignoreIdentityOutliers: function (requestBody, axiosOptions) { + return localVarFp.ignoreIdentityOutliers(requestBody, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This API returns a list of the enriched access items associated with each feature filtered by the access item type The object contains: accessItemId, display name (translated text or message key), description (translated text or message key), accessType, sourceName, extremelyRare Requires authorization scope of \'iai:outliers-management:read\' + * @summary Gets a list of access items associated with each identity outlier contributing feature + * @param {string} outlierId The outlier id + * @param {'radical_entitlement_count' | 'entitlement_count' | 'max_jaccard_similarity' | 'mean_max_bundle_concurrency' | 'single_entitlement_bundle_count' | 'peerless_score'} contributingFeatureName The name of contributing feature + * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {string} [accessType] The type of access item for the identity outlier contributing feature. If not provided, it returns all + * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **displayName** + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + listOutliersContributingFeatureAccessItems: function (outlierId, contributingFeatureName, limit, offset, count, accessType, sorters, axiosOptions) { + return localVarFp.listOutliersContributingFeatureAccessItems(outlierId, contributingFeatureName, limit, offset, count, accessType, sorters, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This API receives a list of IdentityIDs in the request, changes the outliers to be un-ignored--returning a 204 if successful. Requires authorization scope of \'iai:outliers-management:update\' + * @summary IAI Identity Outliers Unignore + * @param {Array} requestBody + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + unIgnoreIdentityOutliers: function (requestBody, axiosOptions) { + return localVarFp.unIgnoreIdentityOutliers(requestBody, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + }; + }; + exports.IAIOutliersBetaApiFactory = IAIOutliersBetaApiFactory; + /** + * IAIOutliersBetaApi - object-oriented interface + * @export + * @class IAIOutliersBetaApi + * @extends {BaseAPI} + */ + var IAIOutliersBetaApi = /** @class */ (function (_super) { + __extends(IAIOutliersBetaApi, _super); + function IAIOutliersBetaApi() { + return _super !== null && _super.apply(this, arguments) || this; + } + /** + * This API exports a list of ignored outliers to a CSV as well as list of non-ignored outliers to a CSV. These two CSVs will be zipped and exported Columns will include: identityID, type, firstDetectionDate, latestDetectionDate, ignored, & attributes (defined set of identity attributes) Requires authorization scope of \'iai:outliers-management:read\' + * @summary IAI Identity Outliers Export + * @param {IAIOutliersBetaApiExportOutliersZipRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof IAIOutliersBetaApi + */ + IAIOutliersBetaApi.prototype.exportOutliersZip = function (requestParameters, axiosOptions) { + var _this = this; + if (requestParameters === void 0) { requestParameters = {}; } + return (0, exports.IAIOutliersBetaApiFp)(this.configuration).exportOutliersZip(requestParameters.type, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This API receives a summary containing: the number of identities that customer has, the number of outliers, and the type of outlier Requires authorization scope of \'iai:outliers-management:read\' + * @summary IAI Identity Outliers Summary + * @param {IAIOutliersBetaApiGetIdentityOutlierSnapshotsRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof IAIOutliersBetaApi + */ + IAIOutliersBetaApi.prototype.getIdentityOutlierSnapshots = function (requestParameters, axiosOptions) { + var _this = this; + if (requestParameters === void 0) { requestParameters = {}; } + return (0, exports.IAIOutliersBetaApiFp)(this.configuration).getIdentityOutlierSnapshots(requestParameters.limit, requestParameters.offset, requestParameters.type, requestParameters.filters, requestParameters.sorters, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This API receives a list of outliers, containing data such as: identityId, outlier type, detection dates, identity attributes, if identity is ignore, and certification information Requires authorization scope of \'iai:outliers-management:read\' + * @summary IAI Get Identity Outliers + * @param {IAIOutliersBetaApiGetIdentityOutliersRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof IAIOutliersBetaApi + */ + IAIOutliersBetaApi.prototype.getIdentityOutliers = function (requestParameters, axiosOptions) { + var _this = this; + if (requestParameters === void 0) { requestParameters = {}; } + return (0, exports.IAIOutliersBetaApiFp)(this.configuration).getIdentityOutliers(requestParameters.limit, requestParameters.offset, requestParameters.count, requestParameters.type, requestParameters.filters, requestParameters.sorters, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This API returns a most recent snapshot of each outlier type, each containing: the number of identities that customer has, the number of outliers, and the type of outlier Requires authorization scope of \'iai:outliers-management:read\' + * @summary IAI Identity Outliers Latest Summary + * @param {IAIOutliersBetaApiGetLatestIdentityOutlierSnapshotsRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof IAIOutliersBetaApi + */ + IAIOutliersBetaApi.prototype.getLatestIdentityOutlierSnapshots = function (requestParameters, axiosOptions) { + var _this = this; + if (requestParameters === void 0) { requestParameters = {}; } + return (0, exports.IAIOutliersBetaApiFp)(this.configuration).getLatestIdentityOutlierSnapshots(requestParameters.type, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This API returns a summary of a contributing feature for an identity outlier. The object contains: contributing feature name (translated text or message key), identity outlier display name, feature values, feature definition and explanation (translated text or message key), peer display name and identityId, access item reference, translation messages object Requires authorization scope of \'iai:outliers-management:read\' + * @summary Get identity outlier contibuting feature summary + * @param {IAIOutliersBetaApiGetOutlierContributingFeatureSummaryRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof IAIOutliersBetaApi + */ + IAIOutliersBetaApi.prototype.getOutlierContributingFeatureSummary = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.IAIOutliersBetaApiFp)(this.configuration).getOutlierContributingFeatureSummary(requestParameters.outlierFeatureId, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This API returns a list of contributing feature objects for a single outlier. The object contains: feature name, feature value type, value, importance, display name (translated text or message key), description (translated text or message key), translation messages object Requires authorization scope of \'iai:outliers-management:read\' + * @summary Get identity outlier\'s contibuting features + * @param {IAIOutliersBetaApiGetPeerGroupOutliersContributingFeaturesRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof IAIOutliersBetaApi + */ + IAIOutliersBetaApi.prototype.getPeerGroupOutliersContributingFeatures = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.IAIOutliersBetaApiFp)(this.configuration).getPeerGroupOutliersContributingFeatures(requestParameters.outlierId, requestParameters.limit, requestParameters.offset, requestParameters.count, requestParameters.includeTranslationMessages, requestParameters.sorters, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This API receives a list of IdentityIDs in the request, changes the outliers to be ignored--returning a 204 if successful. Requires authorization scope of \'iai:outliers-management:update\' + * @summary IAI Identity Outliers Ignore + * @param {IAIOutliersBetaApiIgnoreIdentityOutliersRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof IAIOutliersBetaApi + */ + IAIOutliersBetaApi.prototype.ignoreIdentityOutliers = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.IAIOutliersBetaApiFp)(this.configuration).ignoreIdentityOutliers(requestParameters.requestBody, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This API returns a list of the enriched access items associated with each feature filtered by the access item type The object contains: accessItemId, display name (translated text or message key), description (translated text or message key), accessType, sourceName, extremelyRare Requires authorization scope of \'iai:outliers-management:read\' + * @summary Gets a list of access items associated with each identity outlier contributing feature + * @param {IAIOutliersBetaApiListOutliersContributingFeatureAccessItemsRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof IAIOutliersBetaApi + */ + IAIOutliersBetaApi.prototype.listOutliersContributingFeatureAccessItems = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.IAIOutliersBetaApiFp)(this.configuration).listOutliersContributingFeatureAccessItems(requestParameters.outlierId, requestParameters.contributingFeatureName, requestParameters.limit, requestParameters.offset, requestParameters.count, requestParameters.accessType, requestParameters.sorters, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This API receives a list of IdentityIDs in the request, changes the outliers to be un-ignored--returning a 204 if successful. Requires authorization scope of \'iai:outliers-management:update\' + * @summary IAI Identity Outliers Unignore + * @param {IAIOutliersBetaApiUnIgnoreIdentityOutliersRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof IAIOutliersBetaApi + */ + IAIOutliersBetaApi.prototype.unIgnoreIdentityOutliers = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.IAIOutliersBetaApiFp)(this.configuration).unIgnoreIdentityOutliers(requestParameters.requestBody, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + return IAIOutliersBetaApi; + }(base_1.BaseAPI)); + exports.IAIOutliersBetaApi = IAIOutliersBetaApi; + /** + * IAIPeerGroupStrategiesBetaApi - axios parameter creator + * @export + */ + var IAIPeerGroupStrategiesBetaApiAxiosParamCreator = function (configuration) { + var _this = this; + return { + /** + * -- Deprecated : See \'IAI Outliers\' This API will be used by Identity Governance systems to identify identities that are not included in an organization\'s peer groups. By default, 250 identities are returned. You can specify between 1 and 1000 number of identities that can be returned. + * @summary Identity Outliers List + * @param {string} strategy The strategy used to create peer groups. Currently, \'entitlement\' is supported. + * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {*} [axiosOptions] Override http request option. + * @deprecated + * @throws {RequiredError} + */ + getPeerGroupOutliers: function (strategy, limit, offset, count, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'strategy' is not null or undefined + (0, common_1.assertParamExists)('getPeerGroupOutliers', 'strategy', strategy); + localVarPath = "/peer-group-strategies/{strategy}/identity-outliers" + .replace("{".concat("strategy", "}"), encodeURIComponent(String(strategy))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + if (limit !== undefined) { + localVarQueryParameter['limit'] = limit; + } + if (offset !== undefined) { + localVarQueryParameter['offset'] = offset; + } + if (count !== undefined) { + localVarQueryParameter['count'] = count; + } + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + }; + }; + exports.IAIPeerGroupStrategiesBetaApiAxiosParamCreator = IAIPeerGroupStrategiesBetaApiAxiosParamCreator; + /** + * IAIPeerGroupStrategiesBetaApi - functional programming interface + * @export + */ + var IAIPeerGroupStrategiesBetaApiFp = function (configuration) { + var localVarAxiosParamCreator = (0, exports.IAIPeerGroupStrategiesBetaApiAxiosParamCreator)(configuration); + return { + /** + * -- Deprecated : See \'IAI Outliers\' This API will be used by Identity Governance systems to identify identities that are not included in an organization\'s peer groups. By default, 250 identities are returned. You can specify between 1 and 1000 number of identities that can be returned. + * @summary Identity Outliers List + * @param {string} strategy The strategy used to create peer groups. Currently, \'entitlement\' is supported. + * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {*} [axiosOptions] Override http request option. + * @deprecated + * @throws {RequiredError} + */ + getPeerGroupOutliers: function (strategy, limit, offset, count, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.getPeerGroupOutliers(strategy, limit, offset, count, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + }; + }; + exports.IAIPeerGroupStrategiesBetaApiFp = IAIPeerGroupStrategiesBetaApiFp; + /** + * IAIPeerGroupStrategiesBetaApi - factory interface + * @export + */ + var IAIPeerGroupStrategiesBetaApiFactory = function (configuration, basePath, axios) { + var localVarFp = (0, exports.IAIPeerGroupStrategiesBetaApiFp)(configuration); + return { + /** + * -- Deprecated : See \'IAI Outliers\' This API will be used by Identity Governance systems to identify identities that are not included in an organization\'s peer groups. By default, 250 identities are returned. You can specify between 1 and 1000 number of identities that can be returned. + * @summary Identity Outliers List + * @param {string} strategy The strategy used to create peer groups. Currently, \'entitlement\' is supported. + * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {*} [axiosOptions] Override http request option. + * @deprecated + * @throws {RequiredError} + */ + getPeerGroupOutliers: function (strategy, limit, offset, count, axiosOptions) { + return localVarFp.getPeerGroupOutliers(strategy, limit, offset, count, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + }; + }; + exports.IAIPeerGroupStrategiesBetaApiFactory = IAIPeerGroupStrategiesBetaApiFactory; + /** + * IAIPeerGroupStrategiesBetaApi - object-oriented interface + * @export + * @class IAIPeerGroupStrategiesBetaApi + * @extends {BaseAPI} + */ + var IAIPeerGroupStrategiesBetaApi = /** @class */ (function (_super) { + __extends(IAIPeerGroupStrategiesBetaApi, _super); + function IAIPeerGroupStrategiesBetaApi() { + return _super !== null && _super.apply(this, arguments) || this; + } + /** + * -- Deprecated : See \'IAI Outliers\' This API will be used by Identity Governance systems to identify identities that are not included in an organization\'s peer groups. By default, 250 identities are returned. You can specify between 1 and 1000 number of identities that can be returned. + * @summary Identity Outliers List + * @param {IAIPeerGroupStrategiesBetaApiGetPeerGroupOutliersRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @deprecated + * @throws {RequiredError} + * @memberof IAIPeerGroupStrategiesBetaApi + */ + IAIPeerGroupStrategiesBetaApi.prototype.getPeerGroupOutliers = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.IAIPeerGroupStrategiesBetaApiFp)(this.configuration).getPeerGroupOutliers(requestParameters.strategy, requestParameters.limit, requestParameters.offset, requestParameters.count, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + return IAIPeerGroupStrategiesBetaApi; + }(base_1.BaseAPI)); + exports.IAIPeerGroupStrategiesBetaApi = IAIPeerGroupStrategiesBetaApi; + /** + * IAIRecommendationsBetaApi - axios parameter creator + * @export + */ + var IAIRecommendationsBetaApiAxiosParamCreator = function (configuration) { + var _this = this; + return { + /** + * The getMessageCatalogs API returns message catalog based on the language headers in the requested object. + * @summary Get Message catalogs + * @param {'recommender' | 'access-request-recommender'} catalogId The ID of the message catalog. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getMessageCatalogs: function (catalogId, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'catalogId' is not null or undefined + (0, common_1.assertParamExists)('getMessageCatalogs', 'catalogId', catalogId); + localVarPath = "/translation-catalogs/{catalog-id}" + .replace("{".concat("catalog-id", "}"), encodeURIComponent(String(catalogId))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * The getRecommendations API returns recommendations based on the requested object. The recommendations are invoked by IdentityIQ and IdentityNow plug-ins that retrieve recommendations based on the performed calculations. + * @summary Returns a Recommendation Based on Object + * @param {RecommendationRequestDtoBeta} recommendationRequestDtoBeta + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getRecommendations: function (recommendationRequestDtoBeta, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'recommendationRequestDtoBeta' is not null or undefined + (0, common_1.assertParamExists)('getRecommendations', 'recommendationRequestDtoBeta', recommendationRequestDtoBeta); + localVarPath = "/recommendations/request"; + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + localVarHeaderParameter['Content-Type'] = 'application/json'; + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(recommendationRequestDtoBeta, localVarRequestOptions, configuration); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * Retrieves configuration attributes used by certification recommendations. + * @summary Get certification recommendation config values + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getRecommendationsConfig: function (axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + localVarPath = "/recommendations/config"; + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * Updates configuration attributes used by certification recommendations. + * @summary Update certification recommendation config values + * @param {RecommendationConfigDtoBeta} recommendationConfigDtoBeta + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + updateRecommendationsConfig: function (recommendationConfigDtoBeta, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'recommendationConfigDtoBeta' is not null or undefined + (0, common_1.assertParamExists)('updateRecommendationsConfig', 'recommendationConfigDtoBeta', recommendationConfigDtoBeta); + localVarPath = "/recommendations/config"; + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'PUT' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + localVarHeaderParameter['Content-Type'] = 'application/json'; + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(recommendationConfigDtoBeta, localVarRequestOptions, configuration); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + }; + }; + exports.IAIRecommendationsBetaApiAxiosParamCreator = IAIRecommendationsBetaApiAxiosParamCreator; + /** + * IAIRecommendationsBetaApi - functional programming interface + * @export + */ + var IAIRecommendationsBetaApiFp = function (configuration) { + var localVarAxiosParamCreator = (0, exports.IAIRecommendationsBetaApiAxiosParamCreator)(configuration); + return { + /** + * The getMessageCatalogs API returns message catalog based on the language headers in the requested object. + * @summary Get Message catalogs + * @param {'recommender' | 'access-request-recommender'} catalogId The ID of the message catalog. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getMessageCatalogs: function (catalogId, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.getMessageCatalogs(catalogId, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * The getRecommendations API returns recommendations based on the requested object. The recommendations are invoked by IdentityIQ and IdentityNow plug-ins that retrieve recommendations based on the performed calculations. + * @summary Returns a Recommendation Based on Object + * @param {RecommendationRequestDtoBeta} recommendationRequestDtoBeta + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getRecommendations: function (recommendationRequestDtoBeta, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.getRecommendations(recommendationRequestDtoBeta, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * Retrieves configuration attributes used by certification recommendations. + * @summary Get certification recommendation config values + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getRecommendationsConfig: function (axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.getRecommendationsConfig(axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * Updates configuration attributes used by certification recommendations. + * @summary Update certification recommendation config values + * @param {RecommendationConfigDtoBeta} recommendationConfigDtoBeta + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + updateRecommendationsConfig: function (recommendationConfigDtoBeta, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.updateRecommendationsConfig(recommendationConfigDtoBeta, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + }; + }; + exports.IAIRecommendationsBetaApiFp = IAIRecommendationsBetaApiFp; + /** + * IAIRecommendationsBetaApi - factory interface + * @export + */ + var IAIRecommendationsBetaApiFactory = function (configuration, basePath, axios) { + var localVarFp = (0, exports.IAIRecommendationsBetaApiFp)(configuration); + return { + /** + * The getMessageCatalogs API returns message catalog based on the language headers in the requested object. + * @summary Get Message catalogs + * @param {'recommender' | 'access-request-recommender'} catalogId The ID of the message catalog. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getMessageCatalogs: function (catalogId, axiosOptions) { + return localVarFp.getMessageCatalogs(catalogId, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * The getRecommendations API returns recommendations based on the requested object. The recommendations are invoked by IdentityIQ and IdentityNow plug-ins that retrieve recommendations based on the performed calculations. + * @summary Returns a Recommendation Based on Object + * @param {RecommendationRequestDtoBeta} recommendationRequestDtoBeta + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getRecommendations: function (recommendationRequestDtoBeta, axiosOptions) { + return localVarFp.getRecommendations(recommendationRequestDtoBeta, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * Retrieves configuration attributes used by certification recommendations. + * @summary Get certification recommendation config values + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getRecommendationsConfig: function (axiosOptions) { + return localVarFp.getRecommendationsConfig(axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * Updates configuration attributes used by certification recommendations. + * @summary Update certification recommendation config values + * @param {RecommendationConfigDtoBeta} recommendationConfigDtoBeta + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + updateRecommendationsConfig: function (recommendationConfigDtoBeta, axiosOptions) { + return localVarFp.updateRecommendationsConfig(recommendationConfigDtoBeta, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + }; + }; + exports.IAIRecommendationsBetaApiFactory = IAIRecommendationsBetaApiFactory; + /** + * IAIRecommendationsBetaApi - object-oriented interface + * @export + * @class IAIRecommendationsBetaApi + * @extends {BaseAPI} + */ + var IAIRecommendationsBetaApi = /** @class */ (function (_super) { + __extends(IAIRecommendationsBetaApi, _super); + function IAIRecommendationsBetaApi() { + return _super !== null && _super.apply(this, arguments) || this; + } + /** + * The getMessageCatalogs API returns message catalog based on the language headers in the requested object. + * @summary Get Message catalogs + * @param {IAIRecommendationsBetaApiGetMessageCatalogsRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof IAIRecommendationsBetaApi + */ + IAIRecommendationsBetaApi.prototype.getMessageCatalogs = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.IAIRecommendationsBetaApiFp)(this.configuration).getMessageCatalogs(requestParameters.catalogId, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * The getRecommendations API returns recommendations based on the requested object. The recommendations are invoked by IdentityIQ and IdentityNow plug-ins that retrieve recommendations based on the performed calculations. + * @summary Returns a Recommendation Based on Object + * @param {IAIRecommendationsBetaApiGetRecommendationsRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof IAIRecommendationsBetaApi + */ + IAIRecommendationsBetaApi.prototype.getRecommendations = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.IAIRecommendationsBetaApiFp)(this.configuration).getRecommendations(requestParameters.recommendationRequestDtoBeta, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * Retrieves configuration attributes used by certification recommendations. + * @summary Get certification recommendation config values + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof IAIRecommendationsBetaApi + */ + IAIRecommendationsBetaApi.prototype.getRecommendationsConfig = function (axiosOptions) { + var _this = this; + return (0, exports.IAIRecommendationsBetaApiFp)(this.configuration).getRecommendationsConfig(axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * Updates configuration attributes used by certification recommendations. + * @summary Update certification recommendation config values + * @param {IAIRecommendationsBetaApiUpdateRecommendationsConfigRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof IAIRecommendationsBetaApi + */ + IAIRecommendationsBetaApi.prototype.updateRecommendationsConfig = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.IAIRecommendationsBetaApiFp)(this.configuration).updateRecommendationsConfig(requestParameters.recommendationConfigDtoBeta, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + return IAIRecommendationsBetaApi; + }(base_1.BaseAPI)); + exports.IAIRecommendationsBetaApi = IAIRecommendationsBetaApi; + /** + * IAIRoleMiningBetaApi - axios parameter creator + * @export + */ + var IAIRoleMiningBetaApiAxiosParamCreator = function (configuration) { + var _this = this; + return { + /** + * This method starts a job to provision a potential role + * @summary Create request to provision a potential role into an actual role. + * @param {string} sessionId The role mining session id + * @param {string} potentialRoleId A potential role id in a role mining session + * @param {number} [minEntitlementPopularity] Minimum popularity required for an entitlement to be included in the provisioned role. + * @param {boolean} [includeCommonAccess] Boolean determining whether common access entitlements will be included in the provisioned role. + * @param {RoleMiningPotentialRoleProvisionRequestBeta} [roleMiningPotentialRoleProvisionRequestBeta] Required information to create a new role + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + createPotentialRoleProvisionRequest: function (sessionId, potentialRoleId, minEntitlementPopularity, includeCommonAccess, roleMiningPotentialRoleProvisionRequestBeta, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'sessionId' is not null or undefined + (0, common_1.assertParamExists)('createPotentialRoleProvisionRequest', 'sessionId', sessionId); + // verify required parameter 'potentialRoleId' is not null or undefined + (0, common_1.assertParamExists)('createPotentialRoleProvisionRequest', 'potentialRoleId', potentialRoleId); + localVarPath = "/role-mining-sessions/{sessionId}/potential-roles/{potentialRoleId}/provision" + .replace("{".concat("sessionId", "}"), encodeURIComponent(String(sessionId))) + .replace("{".concat("potentialRoleId", "}"), encodeURIComponent(String(potentialRoleId))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + if (minEntitlementPopularity !== undefined) { + localVarQueryParameter['min-entitlement-popularity'] = minEntitlementPopularity; + } + if (includeCommonAccess !== undefined) { + localVarQueryParameter['include-common-access'] = includeCommonAccess; + } + localVarHeaderParameter['Content-Type'] = 'application/json'; + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(roleMiningPotentialRoleProvisionRequestBeta, localVarRequestOptions, configuration); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This submits a create role mining session request to the role mining application. + * @summary Create a role mining session + * @param {RoleMiningSessionDtoBeta} roleMiningSessionDtoBeta Role mining session parameters + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + createRoleMiningSessions: function (roleMiningSessionDtoBeta, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'roleMiningSessionDtoBeta' is not null or undefined + (0, common_1.assertParamExists)('createRoleMiningSessions', 'roleMiningSessionDtoBeta', roleMiningSessionDtoBeta); + localVarPath = "/role-mining-sessions"; + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + localVarHeaderParameter['Content-Type'] = 'application/json'; + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(roleMiningSessionDtoBeta, localVarRequestOptions, configuration); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This endpoint downloads a completed export of information for a potential role in a role mining session. + * @summary Export (download) details for a potential role in a role mining session + * @param {string} sessionId The role mining session id + * @param {string} potentialRoleId A potential role id in a role mining session + * @param {string} exportId The id of a previously run export job for this potential role + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + downloadRoleMiningPotentialRoleZip: function (sessionId, potentialRoleId, exportId, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'sessionId' is not null or undefined + (0, common_1.assertParamExists)('downloadRoleMiningPotentialRoleZip', 'sessionId', sessionId); + // verify required parameter 'potentialRoleId' is not null or undefined + (0, common_1.assertParamExists)('downloadRoleMiningPotentialRoleZip', 'potentialRoleId', potentialRoleId); + // verify required parameter 'exportId' is not null or undefined + (0, common_1.assertParamExists)('downloadRoleMiningPotentialRoleZip', 'exportId', exportId); + localVarPath = "/role-mining-sessions/{sessionId}/potential-roles/{potentialRoleId}/export-async/{exportId}/download" + .replace("{".concat("sessionId", "}"), encodeURIComponent(String(sessionId))) + .replace("{".concat("potentialRoleId", "}"), encodeURIComponent(String(potentialRoleId))) + .replace("{".concat("exportId", "}"), encodeURIComponent(String(exportId))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This endpoint downloads all the information for a potential role in a role mining session. Includes identities and entitlements in the potential role. + * @summary Export (download) details for a potential role in a role mining session + * @param {string} sessionId The role mining session id + * @param {string} potentialRoleId A potential role id in a role mining session + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + exportRoleMiningPotentialRole: function (sessionId, potentialRoleId, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'sessionId' is not null or undefined + (0, common_1.assertParamExists)('exportRoleMiningPotentialRole', 'sessionId', sessionId); + // verify required parameter 'potentialRoleId' is not null or undefined + (0, common_1.assertParamExists)('exportRoleMiningPotentialRole', 'potentialRoleId', potentialRoleId); + localVarPath = "/role-mining-sessions/{sessionId}/potential-roles/{potentialRoleId}/export" + .replace("{".concat("sessionId", "}"), encodeURIComponent(String(sessionId))) + .replace("{".concat("potentialRoleId", "}"), encodeURIComponent(String(potentialRoleId))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This endpoint uploads all the information for a potential role in a role mining session to S3 as a downloadable zip archive. Includes identities and entitlements in the potential role. + * @summary Asynchronously export details for a potential role in a role mining session and upload to S3 + * @param {string} sessionId The role mining session id + * @param {string} potentialRoleId A potential role id in a role mining session + * @param {RoleMiningPotentialRoleExportRequestBeta} [roleMiningPotentialRoleExportRequestBeta] + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + exportRoleMiningPotentialRoleAsync: function (sessionId, potentialRoleId, roleMiningPotentialRoleExportRequestBeta, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'sessionId' is not null or undefined + (0, common_1.assertParamExists)('exportRoleMiningPotentialRoleAsync', 'sessionId', sessionId); + // verify required parameter 'potentialRoleId' is not null or undefined + (0, common_1.assertParamExists)('exportRoleMiningPotentialRoleAsync', 'potentialRoleId', potentialRoleId); + localVarPath = "/role-mining-sessions/{sessionId}/potential-roles/{potentialRoleId}/export-async" + .replace("{".concat("sessionId", "}"), encodeURIComponent(String(sessionId))) + .replace("{".concat("potentialRoleId", "}"), encodeURIComponent(String(potentialRoleId))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + localVarHeaderParameter['Content-Type'] = 'application/json'; + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(roleMiningPotentialRoleExportRequestBeta, localVarRequestOptions, configuration); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This endpoint retrieves information about the current status of a potential role export. + * @summary Retrieve status of a potential role export job + * @param {string} sessionId The role mining session id + * @param {string} potentialRoleId A potential role id in a role mining session + * @param {string} exportId The id of a previously run export job for this potential role + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + exportRoleMiningPotentialRoleStatus: function (sessionId, potentialRoleId, exportId, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'sessionId' is not null or undefined + (0, common_1.assertParamExists)('exportRoleMiningPotentialRoleStatus', 'sessionId', sessionId); + // verify required parameter 'potentialRoleId' is not null or undefined + (0, common_1.assertParamExists)('exportRoleMiningPotentialRoleStatus', 'potentialRoleId', potentialRoleId); + // verify required parameter 'exportId' is not null or undefined + (0, common_1.assertParamExists)('exportRoleMiningPotentialRoleStatus', 'exportId', exportId); + localVarPath = "/role-mining-sessions/{sessionId}/potential-roles/{potentialRoleId}/export-async/{exportId}" + .replace("{".concat("sessionId", "}"), encodeURIComponent(String(sessionId))) + .replace("{".concat("potentialRoleId", "}"), encodeURIComponent(String(potentialRoleId))) + .replace("{".concat("exportId", "}"), encodeURIComponent(String(exportId))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * Returns all potential role summaries that match the query parameters + * @summary Retrieves all potential role summaries + * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **createdDate, identityCount, entitlementCount, freshness, quality** + * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **createdById**: *eq, sw, co* **createdByName**: *eq, sw, co* **description**: *sw, co* **endDate**: *le, lt* **freshness**: *eq, ge, gt, le, lt* **name**: *eq, sw, co, ge, gt, le, lt* **quality**: *eq, ge, gt, le, lt* **startDate**: *ge, gt* **saved**: *eq* **type**: *eq, ge, gt, le, lt* **scopingMethod**: *eq* **sessionState**: *eq* **identityAttribute**: *co* + * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getAllPotentialRoleSummaries: function (sorters, filters, offset, limit, count, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + localVarPath = "/role-mining-potential-roles"; + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + if (sorters !== undefined) { + localVarQueryParameter['sorters'] = sorters; + } + if (filters !== undefined) { + localVarQueryParameter['filters'] = filters; + } + if (offset !== undefined) { + localVarQueryParameter['offset'] = offset; + } + if (limit !== undefined) { + localVarQueryParameter['limit'] = limit; + } + if (count !== undefined) { + localVarQueryParameter['count'] = count; + } + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This method returns entitlement popularity distribution for a potential role in a role mining session. + * @summary Retrieves entitlement popularity distribution for a potential role in a role mining session + * @param {string} sessionId The role mining session id + * @param {string} potentialRoleId A potential role id in a role mining session + * @param {boolean} [includeCommonAccess] Boolean determining whether common access entitlements will be included or not + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getEntitlementDistributionPotentialRole: function (sessionId, potentialRoleId, includeCommonAccess, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'sessionId' is not null or undefined + (0, common_1.assertParamExists)('getEntitlementDistributionPotentialRole', 'sessionId', sessionId); + // verify required parameter 'potentialRoleId' is not null or undefined + (0, common_1.assertParamExists)('getEntitlementDistributionPotentialRole', 'potentialRoleId', potentialRoleId); + localVarPath = "/role-mining-sessions/{sessionId}/potential-roles/{potentialRoleId}/entitlement-popularity-distribution" + .replace("{".concat("sessionId", "}"), encodeURIComponent(String(sessionId))) + .replace("{".concat("potentialRoleId", "}"), encodeURIComponent(String(potentialRoleId))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + if (includeCommonAccess !== undefined) { + localVarQueryParameter['includeCommonAccess'] = includeCommonAccess; + } + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This method returns entitlements for a potential role in a role mining session. + * @summary Retrieves entitlements for a potential role in a role mining session + * @param {string} sessionId The role mining session id + * @param {string} potentialRoleId A potential role id in a role mining session + * @param {boolean} [includeCommonAccess] Boolean determining whether common access entitlements will be included or not + * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **popularity** The default sort is **popularity** in descending order. + * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **applicationName**: *sw* **entitlementRef.name**: *sw* + * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getEntitlementsPotentialRole: function (sessionId, potentialRoleId, includeCommonAccess, sorters, filters, offset, limit, count, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'sessionId' is not null or undefined + (0, common_1.assertParamExists)('getEntitlementsPotentialRole', 'sessionId', sessionId); + // verify required parameter 'potentialRoleId' is not null or undefined + (0, common_1.assertParamExists)('getEntitlementsPotentialRole', 'potentialRoleId', potentialRoleId); + localVarPath = "/role-mining-sessions/{sessionId}/potential-roles/{potentialRoleId}/entitlement-popularities" + .replace("{".concat("sessionId", "}"), encodeURIComponent(String(sessionId))) + .replace("{".concat("potentialRoleId", "}"), encodeURIComponent(String(potentialRoleId))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + if (includeCommonAccess !== undefined) { + localVarQueryParameter['includeCommonAccess'] = includeCommonAccess; + } + if (sorters !== undefined) { + localVarQueryParameter['sorters'] = sorters; + } + if (filters !== undefined) { + localVarQueryParameter['filters'] = filters; + } + if (offset !== undefined) { + localVarQueryParameter['offset'] = offset; + } + if (limit !== undefined) { + localVarQueryParameter['limit'] = limit; + } + if (count !== undefined) { + localVarQueryParameter['count'] = count; + } + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This method returns excluded entitlements for a potential role in a role mining session. + * @summary Retrieves excluded entitlements for a potential role in a role mining session + * @param {string} sessionId The role mining session id + * @param {string} potentialRoleId A potential role id in a role mining session + * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **popularity** + * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **applicationName**: *sw* **entitlementRef.name**: *sw* + * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getExcludedEntitlementsPotentialRole: function (sessionId, potentialRoleId, sorters, filters, offset, limit, count, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'sessionId' is not null or undefined + (0, common_1.assertParamExists)('getExcludedEntitlementsPotentialRole', 'sessionId', sessionId); + // verify required parameter 'potentialRoleId' is not null or undefined + (0, common_1.assertParamExists)('getExcludedEntitlementsPotentialRole', 'potentialRoleId', potentialRoleId); + localVarPath = "/role-mining-sessions/{sessionId}/potential-roles/{potentialRoleId}/excluded-entitlements" + .replace("{".concat("sessionId", "}"), encodeURIComponent(String(sessionId))) + .replace("{".concat("potentialRoleId", "}"), encodeURIComponent(String(potentialRoleId))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + if (sorters !== undefined) { + localVarQueryParameter['sorters'] = sorters; + } + if (filters !== undefined) { + localVarQueryParameter['filters'] = filters; + } + if (offset !== undefined) { + localVarQueryParameter['offset'] = offset; + } + if (limit !== undefined) { + localVarQueryParameter['limit'] = limit; + } + if (count !== undefined) { + localVarQueryParameter['count'] = count; + } + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This method returns identities for a potential role in a role mining session. + * @summary Retrieves identities for a potential role in a role mining session + * @param {string} sessionId The role mining session id + * @param {string} potentialRoleId A potential role id in a role mining session + * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **name** + * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **name**: *sw* + * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getIdentitiesPotentialRole: function (sessionId, potentialRoleId, sorters, filters, offset, limit, count, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'sessionId' is not null or undefined + (0, common_1.assertParamExists)('getIdentitiesPotentialRole', 'sessionId', sessionId); + // verify required parameter 'potentialRoleId' is not null or undefined + (0, common_1.assertParamExists)('getIdentitiesPotentialRole', 'potentialRoleId', potentialRoleId); + localVarPath = "/role-mining-sessions/{sessionId}/potential-roles/{potentialRoleId}/identities" + .replace("{".concat("sessionId", "}"), encodeURIComponent(String(sessionId))) + .replace("{".concat("potentialRoleId", "}"), encodeURIComponent(String(potentialRoleId))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + if (sorters !== undefined) { + localVarQueryParameter['sorters'] = sorters; + } + if (filters !== undefined) { + localVarQueryParameter['filters'] = filters; + } + if (offset !== undefined) { + localVarQueryParameter['offset'] = offset; + } + if (limit !== undefined) { + localVarQueryParameter['limit'] = limit; + } + if (count !== undefined) { + localVarQueryParameter['count'] = count; + } + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This method returns a specific potential role for a role mining session. + * @summary Retrieves a specific potential role + * @param {string} sessionId The role mining session id + * @param {string} potentialRoleId A potential role id in a role mining session + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getPotentialRole: function (sessionId, potentialRoleId, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'sessionId' is not null or undefined + (0, common_1.assertParamExists)('getPotentialRole', 'sessionId', sessionId); + // verify required parameter 'potentialRoleId' is not null or undefined + (0, common_1.assertParamExists)('getPotentialRole', 'potentialRoleId', potentialRoleId); + localVarPath = "/role-mining-sessions/{sessionId}/potential-role-summaries/{potentialRoleId}" + .replace("{".concat("sessionId", "}"), encodeURIComponent(String(sessionId))) + .replace("{".concat("potentialRoleId", "}"), encodeURIComponent(String(potentialRoleId))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This method returns the applications of a potential role for a role mining session. + * @summary Retrieves the applications of a potential role for a role mining session + * @param {string} sessionId The role mining session id + * @param {string} potentialRoleId A potential role id in a role mining session + * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getPotentialRoleApplications: function (sessionId, potentialRoleId, offset, limit, count, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'sessionId' is not null or undefined + (0, common_1.assertParamExists)('getPotentialRoleApplications', 'sessionId', sessionId); + // verify required parameter 'potentialRoleId' is not null or undefined + (0, common_1.assertParamExists)('getPotentialRoleApplications', 'potentialRoleId', potentialRoleId); + localVarPath = "/role-mining-sessions/{sessionId}/potential-role-summaries/{potentialRoleId}/applications" + .replace("{".concat("sessionId", "}"), encodeURIComponent(String(sessionId))) + .replace("{".concat("potentialRoleId", "}"), encodeURIComponent(String(potentialRoleId))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + if (offset !== undefined) { + localVarQueryParameter['offset'] = offset; + } + if (limit !== undefined) { + localVarQueryParameter['limit'] = limit; + } + if (count !== undefined) { + localVarQueryParameter['count'] = count; + } + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This method returns source usageCount (as number of days in the last 90 days) for each identity in a potential role. + * @summary Retrieves potential role source usage + * @param {string} potentialRoleId A potential role id + * @param {string} sourceId A source id + * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters/) Sorting is supported for the following fields: **displayName, email, usageCount** + * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getPotentialRoleSourceIdentityUsage: function (potentialRoleId, sourceId, sorters, offset, limit, count, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'potentialRoleId' is not null or undefined + (0, common_1.assertParamExists)('getPotentialRoleSourceIdentityUsage', 'potentialRoleId', potentialRoleId); + // verify required parameter 'sourceId' is not null or undefined + (0, common_1.assertParamExists)('getPotentialRoleSourceIdentityUsage', 'sourceId', sourceId); + localVarPath = "/role-mining-potential-roles/{potentialRoleId}/sources/{sourceId}/identityUsage" + .replace("{".concat("potentialRoleId", "}"), encodeURIComponent(String(potentialRoleId))) + .replace("{".concat("sourceId", "}"), encodeURIComponent(String(sourceId))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + if (sorters !== undefined) { + localVarQueryParameter['sorters'] = sorters; + } + if (offset !== undefined) { + localVarQueryParameter['offset'] = offset; + } + if (limit !== undefined) { + localVarQueryParameter['limit'] = limit; + } + if (count !== undefined) { + localVarQueryParameter['count'] = count; + } + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This method returns the potential role summaries for a role mining session. + * @summary Retrieves all potential role summaries + * @param {string} sessionId The role mining session id + * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **createdDate** + * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **createdById**: *eq, sw, co* **createdByName**: *eq, sw, co* **description**: *sw, co* **endDate**: *le, lt* **freshness**: *eq, ge, gt, le, lt* **name**: *eq, sw, co* **quality**: *eq, ge, gt, le, lt* **startDate**: *ge, gt* **saved**: *eq* **type**: *eq* + * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getPotentialRoleSummaries: function (sessionId, sorters, filters, offset, limit, count, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'sessionId' is not null or undefined + (0, common_1.assertParamExists)('getPotentialRoleSummaries', 'sessionId', sessionId); + localVarPath = "/role-mining-sessions/{sessionId}/potential-role-summaries" + .replace("{".concat("sessionId", "}"), encodeURIComponent(String(sessionId))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + if (sorters !== undefined) { + localVarQueryParameter['sorters'] = sorters; + } + if (filters !== undefined) { + localVarQueryParameter['filters'] = filters; + } + if (offset !== undefined) { + localVarQueryParameter['offset'] = offset; + } + if (limit !== undefined) { + localVarQueryParameter['limit'] = limit; + } + if (count !== undefined) { + localVarQueryParameter['count'] = count; + } + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This method returns a specific potential role. + * @summary Retrieves a specific potential role + * @param {string} potentialRoleId A potential role id + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getRoleMiningPotentialRole: function (potentialRoleId, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'potentialRoleId' is not null or undefined + (0, common_1.assertParamExists)('getRoleMiningPotentialRole', 'potentialRoleId', potentialRoleId); + localVarPath = "/role-mining-potential-roles/{potentialRoleId}" + .replace("{".concat("potentialRoleId", "}"), encodeURIComponent(String(potentialRoleId))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * The method retrieves a role mining session. + * @summary Get a role mining session + * @param {string} sessionId The role mining session id to be retrieved. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getRoleMiningSession: function (sessionId, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'sessionId' is not null or undefined + (0, common_1.assertParamExists)('getRoleMiningSession', 'sessionId', sessionId); + localVarPath = "/role-mining-sessions/{sessionId}" + .replace("{".concat("sessionId", "}"), encodeURIComponent(String(sessionId))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This method returns a role mining session status for a customer. + * @summary Get role mining session status state + * @param {string} sessionId The role mining session id + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getRoleMiningSessionStatus: function (sessionId, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'sessionId' is not null or undefined + (0, common_1.assertParamExists)('getRoleMiningSessionStatus', 'sessionId', sessionId); + localVarPath = "/role-mining-sessions/{sessionId}/status" + .replace("{".concat("sessionId", "}"), encodeURIComponent(String(sessionId))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * Returns all role mining sessions that match the query parameters + * @summary Retrieves all role mining sessions + * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **saved**: *eq* **name**: *eq, sw* + * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **createdBy, createdDate** + * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getRoleMiningSessions: function (filters, sorters, offset, limit, count, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + localVarPath = "/role-mining-sessions"; + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + if (filters !== undefined) { + localVarQueryParameter['filters'] = filters; + } + if (sorters !== undefined) { + localVarQueryParameter['sorters'] = sorters; + } + if (offset !== undefined) { + localVarQueryParameter['offset'] = offset; + } + if (limit !== undefined) { + localVarQueryParameter['limit'] = limit; + } + if (count !== undefined) { + localVarQueryParameter['count'] = count; + } + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This method returns all saved potential roles (draft roles). + * @summary Retrieves all saved potential roles + * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters/) Sorting is supported for the following fields: **modified** + * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getSavedPotentialRoles: function (sorters, offset, limit, count, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + localVarPath = "/role-mining-potential-roles/saved"; + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + if (sorters !== undefined) { + localVarQueryParameter['sorters'] = sorters; + } + if (offset !== undefined) { + localVarQueryParameter['offset'] = offset; + } + if (limit !== undefined) { + localVarQueryParameter['limit'] = limit; + } + if (count !== undefined) { + localVarQueryParameter['count'] = count; + } + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * The method updates an existing potential role using. The following fields can be modified: * `description` * `name` * `saved` >**NOTE: All other fields cannot be modified.** + * @summary Update a potential role + * @param {string} sessionId The role mining session id + * @param {string} potentialRoleId The potential role summary id + * @param {Array} patchPotentialRoleRequestInnerBeta + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + patchPotentialRole: function (sessionId, potentialRoleId, patchPotentialRoleRequestInnerBeta, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'sessionId' is not null or undefined + (0, common_1.assertParamExists)('patchPotentialRole', 'sessionId', sessionId); + // verify required parameter 'potentialRoleId' is not null or undefined + (0, common_1.assertParamExists)('patchPotentialRole', 'potentialRoleId', potentialRoleId); + // verify required parameter 'patchPotentialRoleRequestInnerBeta' is not null or undefined + (0, common_1.assertParamExists)('patchPotentialRole', 'patchPotentialRoleRequestInnerBeta', patchPotentialRoleRequestInnerBeta); + localVarPath = "/role-mining-sessions/{sessionId}/potential-role-summaries/{potentialRoleId}" + .replace("{".concat("sessionId", "}"), encodeURIComponent(String(sessionId))) + .replace("{".concat("potentialRoleId", "}"), encodeURIComponent(String(potentialRoleId))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'PATCH' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + localVarHeaderParameter['Content-Type'] = 'application/json-patch+json'; + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(patchPotentialRoleRequestInnerBeta, localVarRequestOptions, configuration); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * The method updates an existing potential role using. The following fields can be modified: * `description` * `name` * `saved` >**NOTE: All other fields cannot be modified.** + * @summary Update a potential role + * @param {string} sessionId The role mining session id + * @param {string} potentialRoleId The potential role summary id + * @param {Array} patchPotentialRoleRequestInnerBeta + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + patchPotentialRole_1: function (sessionId, potentialRoleId, patchPotentialRoleRequestInnerBeta, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'sessionId' is not null or undefined + (0, common_1.assertParamExists)('patchPotentialRole_1', 'sessionId', sessionId); + // verify required parameter 'potentialRoleId' is not null or undefined + (0, common_1.assertParamExists)('patchPotentialRole_1', 'potentialRoleId', potentialRoleId); + // verify required parameter 'patchPotentialRoleRequestInnerBeta' is not null or undefined + (0, common_1.assertParamExists)('patchPotentialRole_1', 'patchPotentialRoleRequestInnerBeta', patchPotentialRoleRequestInnerBeta); + localVarPath = "/role-mining-potential-roles/{potentialRoleId}" + .replace("{".concat("sessionId", "}"), encodeURIComponent(String(sessionId))) + .replace("{".concat("potentialRoleId", "}"), encodeURIComponent(String(potentialRoleId))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'PATCH' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + localVarHeaderParameter['Content-Type'] = 'application/json-patch+json'; + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(patchPotentialRoleRequestInnerBeta, localVarRequestOptions, configuration); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * The method updates an existing role mining session using PATCH. Supports op in {\"replace\"} and changes to pruneThreshold and/or minNumIdentitiesInPotentialRole. The potential roles in this role mining session is then re-calculated. + * @summary Patch a role mining session + * @param {string} sessionId The role mining session id to be patched + * @param {Array} jsonPatchOperationBeta Replace pruneThreshold and/or minNumIdentitiesInPotentialRole in role mining session. Update saved status or saved name for a role mining session. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + patchRoleMiningSession: function (sessionId, jsonPatchOperationBeta, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'sessionId' is not null or undefined + (0, common_1.assertParamExists)('patchRoleMiningSession', 'sessionId', sessionId); + // verify required parameter 'jsonPatchOperationBeta' is not null or undefined + (0, common_1.assertParamExists)('patchRoleMiningSession', 'jsonPatchOperationBeta', jsonPatchOperationBeta); + localVarPath = "/role-mining-sessions/{sessionId}" + .replace("{".concat("sessionId", "}"), encodeURIComponent(String(sessionId))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'PATCH' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + localVarHeaderParameter['Content-Type'] = 'application/json-patch+json'; + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(jsonPatchOperationBeta, localVarRequestOptions, configuration); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This endpoint adds or removes entitlements from an exclusion list for a potential role. + * @summary Edit entitlements for a potential role to exclude some entitlements + * @param {string} sessionId The role mining session id + * @param {string} potentialRoleId A potential role id in a role mining session + * @param {RoleMiningPotentialRoleEditEntitlementsBeta} roleMiningPotentialRoleEditEntitlementsBeta Role mining session parameters + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + updateEntitlementsPotentialRole: function (sessionId, potentialRoleId, roleMiningPotentialRoleEditEntitlementsBeta, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'sessionId' is not null or undefined + (0, common_1.assertParamExists)('updateEntitlementsPotentialRole', 'sessionId', sessionId); + // verify required parameter 'potentialRoleId' is not null or undefined + (0, common_1.assertParamExists)('updateEntitlementsPotentialRole', 'potentialRoleId', potentialRoleId); + // verify required parameter 'roleMiningPotentialRoleEditEntitlementsBeta' is not null or undefined + (0, common_1.assertParamExists)('updateEntitlementsPotentialRole', 'roleMiningPotentialRoleEditEntitlementsBeta', roleMiningPotentialRoleEditEntitlementsBeta); + localVarPath = "/role-mining-sessions/{sessionId}/potential-roles/{potentialRoleId}/edit-entitlements" + .replace("{".concat("sessionId", "}"), encodeURIComponent(String(sessionId))) + .replace("{".concat("potentialRoleId", "}"), encodeURIComponent(String(potentialRoleId))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + localVarHeaderParameter['Content-Type'] = 'application/json'; + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(roleMiningPotentialRoleEditEntitlementsBeta, localVarRequestOptions, configuration); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + }; + }; + exports.IAIRoleMiningBetaApiAxiosParamCreator = IAIRoleMiningBetaApiAxiosParamCreator; + /** + * IAIRoleMiningBetaApi - functional programming interface + * @export + */ + var IAIRoleMiningBetaApiFp = function (configuration) { + var localVarAxiosParamCreator = (0, exports.IAIRoleMiningBetaApiAxiosParamCreator)(configuration); + return { + /** + * This method starts a job to provision a potential role + * @summary Create request to provision a potential role into an actual role. + * @param {string} sessionId The role mining session id + * @param {string} potentialRoleId A potential role id in a role mining session + * @param {number} [minEntitlementPopularity] Minimum popularity required for an entitlement to be included in the provisioned role. + * @param {boolean} [includeCommonAccess] Boolean determining whether common access entitlements will be included in the provisioned role. + * @param {RoleMiningPotentialRoleProvisionRequestBeta} [roleMiningPotentialRoleProvisionRequestBeta] Required information to create a new role + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + createPotentialRoleProvisionRequest: function (sessionId, potentialRoleId, minEntitlementPopularity, includeCommonAccess, roleMiningPotentialRoleProvisionRequestBeta, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.createPotentialRoleProvisionRequest(sessionId, potentialRoleId, minEntitlementPopularity, includeCommonAccess, roleMiningPotentialRoleProvisionRequestBeta, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This submits a create role mining session request to the role mining application. + * @summary Create a role mining session + * @param {RoleMiningSessionDtoBeta} roleMiningSessionDtoBeta Role mining session parameters + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + createRoleMiningSessions: function (roleMiningSessionDtoBeta, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.createRoleMiningSessions(roleMiningSessionDtoBeta, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This endpoint downloads a completed export of information for a potential role in a role mining session. + * @summary Export (download) details for a potential role in a role mining session + * @param {string} sessionId The role mining session id + * @param {string} potentialRoleId A potential role id in a role mining session + * @param {string} exportId The id of a previously run export job for this potential role + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + downloadRoleMiningPotentialRoleZip: function (sessionId, potentialRoleId, exportId, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.downloadRoleMiningPotentialRoleZip(sessionId, potentialRoleId, exportId, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This endpoint downloads all the information for a potential role in a role mining session. Includes identities and entitlements in the potential role. + * @summary Export (download) details for a potential role in a role mining session + * @param {string} sessionId The role mining session id + * @param {string} potentialRoleId A potential role id in a role mining session + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + exportRoleMiningPotentialRole: function (sessionId, potentialRoleId, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.exportRoleMiningPotentialRole(sessionId, potentialRoleId, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This endpoint uploads all the information for a potential role in a role mining session to S3 as a downloadable zip archive. Includes identities and entitlements in the potential role. + * @summary Asynchronously export details for a potential role in a role mining session and upload to S3 + * @param {string} sessionId The role mining session id + * @param {string} potentialRoleId A potential role id in a role mining session + * @param {RoleMiningPotentialRoleExportRequestBeta} [roleMiningPotentialRoleExportRequestBeta] + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + exportRoleMiningPotentialRoleAsync: function (sessionId, potentialRoleId, roleMiningPotentialRoleExportRequestBeta, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.exportRoleMiningPotentialRoleAsync(sessionId, potentialRoleId, roleMiningPotentialRoleExportRequestBeta, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This endpoint retrieves information about the current status of a potential role export. + * @summary Retrieve status of a potential role export job + * @param {string} sessionId The role mining session id + * @param {string} potentialRoleId A potential role id in a role mining session + * @param {string} exportId The id of a previously run export job for this potential role + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + exportRoleMiningPotentialRoleStatus: function (sessionId, potentialRoleId, exportId, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.exportRoleMiningPotentialRoleStatus(sessionId, potentialRoleId, exportId, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * Returns all potential role summaries that match the query parameters + * @summary Retrieves all potential role summaries + * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **createdDate, identityCount, entitlementCount, freshness, quality** + * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **createdById**: *eq, sw, co* **createdByName**: *eq, sw, co* **description**: *sw, co* **endDate**: *le, lt* **freshness**: *eq, ge, gt, le, lt* **name**: *eq, sw, co, ge, gt, le, lt* **quality**: *eq, ge, gt, le, lt* **startDate**: *ge, gt* **saved**: *eq* **type**: *eq, ge, gt, le, lt* **scopingMethod**: *eq* **sessionState**: *eq* **identityAttribute**: *co* + * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getAllPotentialRoleSummaries: function (sorters, filters, offset, limit, count, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.getAllPotentialRoleSummaries(sorters, filters, offset, limit, count, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This method returns entitlement popularity distribution for a potential role in a role mining session. + * @summary Retrieves entitlement popularity distribution for a potential role in a role mining session + * @param {string} sessionId The role mining session id + * @param {string} potentialRoleId A potential role id in a role mining session + * @param {boolean} [includeCommonAccess] Boolean determining whether common access entitlements will be included or not + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getEntitlementDistributionPotentialRole: function (sessionId, potentialRoleId, includeCommonAccess, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.getEntitlementDistributionPotentialRole(sessionId, potentialRoleId, includeCommonAccess, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This method returns entitlements for a potential role in a role mining session. + * @summary Retrieves entitlements for a potential role in a role mining session + * @param {string} sessionId The role mining session id + * @param {string} potentialRoleId A potential role id in a role mining session + * @param {boolean} [includeCommonAccess] Boolean determining whether common access entitlements will be included or not + * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **popularity** The default sort is **popularity** in descending order. + * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **applicationName**: *sw* **entitlementRef.name**: *sw* + * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getEntitlementsPotentialRole: function (sessionId, potentialRoleId, includeCommonAccess, sorters, filters, offset, limit, count, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.getEntitlementsPotentialRole(sessionId, potentialRoleId, includeCommonAccess, sorters, filters, offset, limit, count, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This method returns excluded entitlements for a potential role in a role mining session. + * @summary Retrieves excluded entitlements for a potential role in a role mining session + * @param {string} sessionId The role mining session id + * @param {string} potentialRoleId A potential role id in a role mining session + * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **popularity** + * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **applicationName**: *sw* **entitlementRef.name**: *sw* + * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getExcludedEntitlementsPotentialRole: function (sessionId, potentialRoleId, sorters, filters, offset, limit, count, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.getExcludedEntitlementsPotentialRole(sessionId, potentialRoleId, sorters, filters, offset, limit, count, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This method returns identities for a potential role in a role mining session. + * @summary Retrieves identities for a potential role in a role mining session + * @param {string} sessionId The role mining session id + * @param {string} potentialRoleId A potential role id in a role mining session + * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **name** + * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **name**: *sw* + * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getIdentitiesPotentialRole: function (sessionId, potentialRoleId, sorters, filters, offset, limit, count, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.getIdentitiesPotentialRole(sessionId, potentialRoleId, sorters, filters, offset, limit, count, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This method returns a specific potential role for a role mining session. + * @summary Retrieves a specific potential role + * @param {string} sessionId The role mining session id + * @param {string} potentialRoleId A potential role id in a role mining session + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getPotentialRole: function (sessionId, potentialRoleId, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.getPotentialRole(sessionId, potentialRoleId, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This method returns the applications of a potential role for a role mining session. + * @summary Retrieves the applications of a potential role for a role mining session + * @param {string} sessionId The role mining session id + * @param {string} potentialRoleId A potential role id in a role mining session + * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getPotentialRoleApplications: function (sessionId, potentialRoleId, offset, limit, count, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.getPotentialRoleApplications(sessionId, potentialRoleId, offset, limit, count, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This method returns source usageCount (as number of days in the last 90 days) for each identity in a potential role. + * @summary Retrieves potential role source usage + * @param {string} potentialRoleId A potential role id + * @param {string} sourceId A source id + * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters/) Sorting is supported for the following fields: **displayName, email, usageCount** + * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getPotentialRoleSourceIdentityUsage: function (potentialRoleId, sourceId, sorters, offset, limit, count, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.getPotentialRoleSourceIdentityUsage(potentialRoleId, sourceId, sorters, offset, limit, count, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This method returns the potential role summaries for a role mining session. + * @summary Retrieves all potential role summaries + * @param {string} sessionId The role mining session id + * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **createdDate** + * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **createdById**: *eq, sw, co* **createdByName**: *eq, sw, co* **description**: *sw, co* **endDate**: *le, lt* **freshness**: *eq, ge, gt, le, lt* **name**: *eq, sw, co* **quality**: *eq, ge, gt, le, lt* **startDate**: *ge, gt* **saved**: *eq* **type**: *eq* + * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getPotentialRoleSummaries: function (sessionId, sorters, filters, offset, limit, count, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.getPotentialRoleSummaries(sessionId, sorters, filters, offset, limit, count, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This method returns a specific potential role. + * @summary Retrieves a specific potential role + * @param {string} potentialRoleId A potential role id + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getRoleMiningPotentialRole: function (potentialRoleId, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.getRoleMiningPotentialRole(potentialRoleId, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * The method retrieves a role mining session. + * @summary Get a role mining session + * @param {string} sessionId The role mining session id to be retrieved. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getRoleMiningSession: function (sessionId, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.getRoleMiningSession(sessionId, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This method returns a role mining session status for a customer. + * @summary Get role mining session status state + * @param {string} sessionId The role mining session id + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getRoleMiningSessionStatus: function (sessionId, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.getRoleMiningSessionStatus(sessionId, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * Returns all role mining sessions that match the query parameters + * @summary Retrieves all role mining sessions + * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **saved**: *eq* **name**: *eq, sw* + * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **createdBy, createdDate** + * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getRoleMiningSessions: function (filters, sorters, offset, limit, count, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.getRoleMiningSessions(filters, sorters, offset, limit, count, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This method returns all saved potential roles (draft roles). + * @summary Retrieves all saved potential roles + * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters/) Sorting is supported for the following fields: **modified** + * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getSavedPotentialRoles: function (sorters, offset, limit, count, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.getSavedPotentialRoles(sorters, offset, limit, count, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * The method updates an existing potential role using. The following fields can be modified: * `description` * `name` * `saved` >**NOTE: All other fields cannot be modified.** + * @summary Update a potential role + * @param {string} sessionId The role mining session id + * @param {string} potentialRoleId The potential role summary id + * @param {Array} patchPotentialRoleRequestInnerBeta + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + patchPotentialRole: function (sessionId, potentialRoleId, patchPotentialRoleRequestInnerBeta, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.patchPotentialRole(sessionId, potentialRoleId, patchPotentialRoleRequestInnerBeta, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * The method updates an existing potential role using. The following fields can be modified: * `description` * `name` * `saved` >**NOTE: All other fields cannot be modified.** + * @summary Update a potential role + * @param {string} sessionId The role mining session id + * @param {string} potentialRoleId The potential role summary id + * @param {Array} patchPotentialRoleRequestInnerBeta + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + patchPotentialRole_1: function (sessionId, potentialRoleId, patchPotentialRoleRequestInnerBeta, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.patchPotentialRole_1(sessionId, potentialRoleId, patchPotentialRoleRequestInnerBeta, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * The method updates an existing role mining session using PATCH. Supports op in {\"replace\"} and changes to pruneThreshold and/or minNumIdentitiesInPotentialRole. The potential roles in this role mining session is then re-calculated. + * @summary Patch a role mining session + * @param {string} sessionId The role mining session id to be patched + * @param {Array} jsonPatchOperationBeta Replace pruneThreshold and/or minNumIdentitiesInPotentialRole in role mining session. Update saved status or saved name for a role mining session. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + patchRoleMiningSession: function (sessionId, jsonPatchOperationBeta, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.patchRoleMiningSession(sessionId, jsonPatchOperationBeta, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This endpoint adds or removes entitlements from an exclusion list for a potential role. + * @summary Edit entitlements for a potential role to exclude some entitlements + * @param {string} sessionId The role mining session id + * @param {string} potentialRoleId A potential role id in a role mining session + * @param {RoleMiningPotentialRoleEditEntitlementsBeta} roleMiningPotentialRoleEditEntitlementsBeta Role mining session parameters + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + updateEntitlementsPotentialRole: function (sessionId, potentialRoleId, roleMiningPotentialRoleEditEntitlementsBeta, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.updateEntitlementsPotentialRole(sessionId, potentialRoleId, roleMiningPotentialRoleEditEntitlementsBeta, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + }; + }; + exports.IAIRoleMiningBetaApiFp = IAIRoleMiningBetaApiFp; + /** + * IAIRoleMiningBetaApi - factory interface + * @export + */ + var IAIRoleMiningBetaApiFactory = function (configuration, basePath, axios) { + var localVarFp = (0, exports.IAIRoleMiningBetaApiFp)(configuration); + return { + /** + * This method starts a job to provision a potential role + * @summary Create request to provision a potential role into an actual role. + * @param {string} sessionId The role mining session id + * @param {string} potentialRoleId A potential role id in a role mining session + * @param {number} [minEntitlementPopularity] Minimum popularity required for an entitlement to be included in the provisioned role. + * @param {boolean} [includeCommonAccess] Boolean determining whether common access entitlements will be included in the provisioned role. + * @param {RoleMiningPotentialRoleProvisionRequestBeta} [roleMiningPotentialRoleProvisionRequestBeta] Required information to create a new role + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + createPotentialRoleProvisionRequest: function (sessionId, potentialRoleId, minEntitlementPopularity, includeCommonAccess, roleMiningPotentialRoleProvisionRequestBeta, axiosOptions) { + return localVarFp.createPotentialRoleProvisionRequest(sessionId, potentialRoleId, minEntitlementPopularity, includeCommonAccess, roleMiningPotentialRoleProvisionRequestBeta, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This submits a create role mining session request to the role mining application. + * @summary Create a role mining session + * @param {RoleMiningSessionDtoBeta} roleMiningSessionDtoBeta Role mining session parameters + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + createRoleMiningSessions: function (roleMiningSessionDtoBeta, axiosOptions) { + return localVarFp.createRoleMiningSessions(roleMiningSessionDtoBeta, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This endpoint downloads a completed export of information for a potential role in a role mining session. + * @summary Export (download) details for a potential role in a role mining session + * @param {string} sessionId The role mining session id + * @param {string} potentialRoleId A potential role id in a role mining session + * @param {string} exportId The id of a previously run export job for this potential role + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + downloadRoleMiningPotentialRoleZip: function (sessionId, potentialRoleId, exportId, axiosOptions) { + return localVarFp.downloadRoleMiningPotentialRoleZip(sessionId, potentialRoleId, exportId, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This endpoint downloads all the information for a potential role in a role mining session. Includes identities and entitlements in the potential role. + * @summary Export (download) details for a potential role in a role mining session + * @param {string} sessionId The role mining session id + * @param {string} potentialRoleId A potential role id in a role mining session + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + exportRoleMiningPotentialRole: function (sessionId, potentialRoleId, axiosOptions) { + return localVarFp.exportRoleMiningPotentialRole(sessionId, potentialRoleId, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This endpoint uploads all the information for a potential role in a role mining session to S3 as a downloadable zip archive. Includes identities and entitlements in the potential role. + * @summary Asynchronously export details for a potential role in a role mining session and upload to S3 + * @param {string} sessionId The role mining session id + * @param {string} potentialRoleId A potential role id in a role mining session + * @param {RoleMiningPotentialRoleExportRequestBeta} [roleMiningPotentialRoleExportRequestBeta] + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + exportRoleMiningPotentialRoleAsync: function (sessionId, potentialRoleId, roleMiningPotentialRoleExportRequestBeta, axiosOptions) { + return localVarFp.exportRoleMiningPotentialRoleAsync(sessionId, potentialRoleId, roleMiningPotentialRoleExportRequestBeta, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This endpoint retrieves information about the current status of a potential role export. + * @summary Retrieve status of a potential role export job + * @param {string} sessionId The role mining session id + * @param {string} potentialRoleId A potential role id in a role mining session + * @param {string} exportId The id of a previously run export job for this potential role + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + exportRoleMiningPotentialRoleStatus: function (sessionId, potentialRoleId, exportId, axiosOptions) { + return localVarFp.exportRoleMiningPotentialRoleStatus(sessionId, potentialRoleId, exportId, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * Returns all potential role summaries that match the query parameters + * @summary Retrieves all potential role summaries + * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **createdDate, identityCount, entitlementCount, freshness, quality** + * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **createdById**: *eq, sw, co* **createdByName**: *eq, sw, co* **description**: *sw, co* **endDate**: *le, lt* **freshness**: *eq, ge, gt, le, lt* **name**: *eq, sw, co, ge, gt, le, lt* **quality**: *eq, ge, gt, le, lt* **startDate**: *ge, gt* **saved**: *eq* **type**: *eq, ge, gt, le, lt* **scopingMethod**: *eq* **sessionState**: *eq* **identityAttribute**: *co* + * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getAllPotentialRoleSummaries: function (sorters, filters, offset, limit, count, axiosOptions) { + return localVarFp.getAllPotentialRoleSummaries(sorters, filters, offset, limit, count, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This method returns entitlement popularity distribution for a potential role in a role mining session. + * @summary Retrieves entitlement popularity distribution for a potential role in a role mining session + * @param {string} sessionId The role mining session id + * @param {string} potentialRoleId A potential role id in a role mining session + * @param {boolean} [includeCommonAccess] Boolean determining whether common access entitlements will be included or not + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getEntitlementDistributionPotentialRole: function (sessionId, potentialRoleId, includeCommonAccess, axiosOptions) { + return localVarFp.getEntitlementDistributionPotentialRole(sessionId, potentialRoleId, includeCommonAccess, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This method returns entitlements for a potential role in a role mining session. + * @summary Retrieves entitlements for a potential role in a role mining session + * @param {string} sessionId The role mining session id + * @param {string} potentialRoleId A potential role id in a role mining session + * @param {boolean} [includeCommonAccess] Boolean determining whether common access entitlements will be included or not + * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **popularity** The default sort is **popularity** in descending order. + * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **applicationName**: *sw* **entitlementRef.name**: *sw* + * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getEntitlementsPotentialRole: function (sessionId, potentialRoleId, includeCommonAccess, sorters, filters, offset, limit, count, axiosOptions) { + return localVarFp.getEntitlementsPotentialRole(sessionId, potentialRoleId, includeCommonAccess, sorters, filters, offset, limit, count, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This method returns excluded entitlements for a potential role in a role mining session. + * @summary Retrieves excluded entitlements for a potential role in a role mining session + * @param {string} sessionId The role mining session id + * @param {string} potentialRoleId A potential role id in a role mining session + * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **popularity** + * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **applicationName**: *sw* **entitlementRef.name**: *sw* + * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getExcludedEntitlementsPotentialRole: function (sessionId, potentialRoleId, sorters, filters, offset, limit, count, axiosOptions) { + return localVarFp.getExcludedEntitlementsPotentialRole(sessionId, potentialRoleId, sorters, filters, offset, limit, count, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This method returns identities for a potential role in a role mining session. + * @summary Retrieves identities for a potential role in a role mining session + * @param {string} sessionId The role mining session id + * @param {string} potentialRoleId A potential role id in a role mining session + * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **name** + * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **name**: *sw* + * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getIdentitiesPotentialRole: function (sessionId, potentialRoleId, sorters, filters, offset, limit, count, axiosOptions) { + return localVarFp.getIdentitiesPotentialRole(sessionId, potentialRoleId, sorters, filters, offset, limit, count, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This method returns a specific potential role for a role mining session. + * @summary Retrieves a specific potential role + * @param {string} sessionId The role mining session id + * @param {string} potentialRoleId A potential role id in a role mining session + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getPotentialRole: function (sessionId, potentialRoleId, axiosOptions) { + return localVarFp.getPotentialRole(sessionId, potentialRoleId, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This method returns the applications of a potential role for a role mining session. + * @summary Retrieves the applications of a potential role for a role mining session + * @param {string} sessionId The role mining session id + * @param {string} potentialRoleId A potential role id in a role mining session + * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getPotentialRoleApplications: function (sessionId, potentialRoleId, offset, limit, count, axiosOptions) { + return localVarFp.getPotentialRoleApplications(sessionId, potentialRoleId, offset, limit, count, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This method returns source usageCount (as number of days in the last 90 days) for each identity in a potential role. + * @summary Retrieves potential role source usage + * @param {string} potentialRoleId A potential role id + * @param {string} sourceId A source id + * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters/) Sorting is supported for the following fields: **displayName, email, usageCount** + * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getPotentialRoleSourceIdentityUsage: function (potentialRoleId, sourceId, sorters, offset, limit, count, axiosOptions) { + return localVarFp.getPotentialRoleSourceIdentityUsage(potentialRoleId, sourceId, sorters, offset, limit, count, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This method returns the potential role summaries for a role mining session. + * @summary Retrieves all potential role summaries + * @param {string} sessionId The role mining session id + * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **createdDate** + * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **createdById**: *eq, sw, co* **createdByName**: *eq, sw, co* **description**: *sw, co* **endDate**: *le, lt* **freshness**: *eq, ge, gt, le, lt* **name**: *eq, sw, co* **quality**: *eq, ge, gt, le, lt* **startDate**: *ge, gt* **saved**: *eq* **type**: *eq* + * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getPotentialRoleSummaries: function (sessionId, sorters, filters, offset, limit, count, axiosOptions) { + return localVarFp.getPotentialRoleSummaries(sessionId, sorters, filters, offset, limit, count, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This method returns a specific potential role. + * @summary Retrieves a specific potential role + * @param {string} potentialRoleId A potential role id + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getRoleMiningPotentialRole: function (potentialRoleId, axiosOptions) { + return localVarFp.getRoleMiningPotentialRole(potentialRoleId, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * The method retrieves a role mining session. + * @summary Get a role mining session + * @param {string} sessionId The role mining session id to be retrieved. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getRoleMiningSession: function (sessionId, axiosOptions) { + return localVarFp.getRoleMiningSession(sessionId, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This method returns a role mining session status for a customer. + * @summary Get role mining session status state + * @param {string} sessionId The role mining session id + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getRoleMiningSessionStatus: function (sessionId, axiosOptions) { + return localVarFp.getRoleMiningSessionStatus(sessionId, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * Returns all role mining sessions that match the query parameters + * @summary Retrieves all role mining sessions + * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **saved**: *eq* **name**: *eq, sw* + * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **createdBy, createdDate** + * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getRoleMiningSessions: function (filters, sorters, offset, limit, count, axiosOptions) { + return localVarFp.getRoleMiningSessions(filters, sorters, offset, limit, count, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This method returns all saved potential roles (draft roles). + * @summary Retrieves all saved potential roles + * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters/) Sorting is supported for the following fields: **modified** + * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getSavedPotentialRoles: function (sorters, offset, limit, count, axiosOptions) { + return localVarFp.getSavedPotentialRoles(sorters, offset, limit, count, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * The method updates an existing potential role using. The following fields can be modified: * `description` * `name` * `saved` >**NOTE: All other fields cannot be modified.** + * @summary Update a potential role + * @param {string} sessionId The role mining session id + * @param {string} potentialRoleId The potential role summary id + * @param {Array} patchPotentialRoleRequestInnerBeta + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + patchPotentialRole: function (sessionId, potentialRoleId, patchPotentialRoleRequestInnerBeta, axiosOptions) { + return localVarFp.patchPotentialRole(sessionId, potentialRoleId, patchPotentialRoleRequestInnerBeta, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * The method updates an existing potential role using. The following fields can be modified: * `description` * `name` * `saved` >**NOTE: All other fields cannot be modified.** + * @summary Update a potential role + * @param {string} sessionId The role mining session id + * @param {string} potentialRoleId The potential role summary id + * @param {Array} patchPotentialRoleRequestInnerBeta + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + patchPotentialRole_1: function (sessionId, potentialRoleId, patchPotentialRoleRequestInnerBeta, axiosOptions) { + return localVarFp.patchPotentialRole_1(sessionId, potentialRoleId, patchPotentialRoleRequestInnerBeta, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * The method updates an existing role mining session using PATCH. Supports op in {\"replace\"} and changes to pruneThreshold and/or minNumIdentitiesInPotentialRole. The potential roles in this role mining session is then re-calculated. + * @summary Patch a role mining session + * @param {string} sessionId The role mining session id to be patched + * @param {Array} jsonPatchOperationBeta Replace pruneThreshold and/or minNumIdentitiesInPotentialRole in role mining session. Update saved status or saved name for a role mining session. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + patchRoleMiningSession: function (sessionId, jsonPatchOperationBeta, axiosOptions) { + return localVarFp.patchRoleMiningSession(sessionId, jsonPatchOperationBeta, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This endpoint adds or removes entitlements from an exclusion list for a potential role. + * @summary Edit entitlements for a potential role to exclude some entitlements + * @param {string} sessionId The role mining session id + * @param {string} potentialRoleId A potential role id in a role mining session + * @param {RoleMiningPotentialRoleEditEntitlementsBeta} roleMiningPotentialRoleEditEntitlementsBeta Role mining session parameters + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + updateEntitlementsPotentialRole: function (sessionId, potentialRoleId, roleMiningPotentialRoleEditEntitlementsBeta, axiosOptions) { + return localVarFp.updateEntitlementsPotentialRole(sessionId, potentialRoleId, roleMiningPotentialRoleEditEntitlementsBeta, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + }; + }; + exports.IAIRoleMiningBetaApiFactory = IAIRoleMiningBetaApiFactory; + /** + * IAIRoleMiningBetaApi - object-oriented interface + * @export + * @class IAIRoleMiningBetaApi + * @extends {BaseAPI} + */ + var IAIRoleMiningBetaApi = /** @class */ (function (_super) { + __extends(IAIRoleMiningBetaApi, _super); + function IAIRoleMiningBetaApi() { + return _super !== null && _super.apply(this, arguments) || this; + } + /** + * This method starts a job to provision a potential role + * @summary Create request to provision a potential role into an actual role. + * @param {IAIRoleMiningBetaApiCreatePotentialRoleProvisionRequestRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof IAIRoleMiningBetaApi + */ + IAIRoleMiningBetaApi.prototype.createPotentialRoleProvisionRequest = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.IAIRoleMiningBetaApiFp)(this.configuration).createPotentialRoleProvisionRequest(requestParameters.sessionId, requestParameters.potentialRoleId, requestParameters.minEntitlementPopularity, requestParameters.includeCommonAccess, requestParameters.roleMiningPotentialRoleProvisionRequestBeta, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This submits a create role mining session request to the role mining application. + * @summary Create a role mining session + * @param {IAIRoleMiningBetaApiCreateRoleMiningSessionsRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof IAIRoleMiningBetaApi + */ + IAIRoleMiningBetaApi.prototype.createRoleMiningSessions = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.IAIRoleMiningBetaApiFp)(this.configuration).createRoleMiningSessions(requestParameters.roleMiningSessionDtoBeta, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This endpoint downloads a completed export of information for a potential role in a role mining session. + * @summary Export (download) details for a potential role in a role mining session + * @param {IAIRoleMiningBetaApiDownloadRoleMiningPotentialRoleZipRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof IAIRoleMiningBetaApi + */ + IAIRoleMiningBetaApi.prototype.downloadRoleMiningPotentialRoleZip = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.IAIRoleMiningBetaApiFp)(this.configuration).downloadRoleMiningPotentialRoleZip(requestParameters.sessionId, requestParameters.potentialRoleId, requestParameters.exportId, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This endpoint downloads all the information for a potential role in a role mining session. Includes identities and entitlements in the potential role. + * @summary Export (download) details for a potential role in a role mining session + * @param {IAIRoleMiningBetaApiExportRoleMiningPotentialRoleRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof IAIRoleMiningBetaApi + */ + IAIRoleMiningBetaApi.prototype.exportRoleMiningPotentialRole = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.IAIRoleMiningBetaApiFp)(this.configuration).exportRoleMiningPotentialRole(requestParameters.sessionId, requestParameters.potentialRoleId, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This endpoint uploads all the information for a potential role in a role mining session to S3 as a downloadable zip archive. Includes identities and entitlements in the potential role. + * @summary Asynchronously export details for a potential role in a role mining session and upload to S3 + * @param {IAIRoleMiningBetaApiExportRoleMiningPotentialRoleAsyncRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof IAIRoleMiningBetaApi + */ + IAIRoleMiningBetaApi.prototype.exportRoleMiningPotentialRoleAsync = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.IAIRoleMiningBetaApiFp)(this.configuration).exportRoleMiningPotentialRoleAsync(requestParameters.sessionId, requestParameters.potentialRoleId, requestParameters.roleMiningPotentialRoleExportRequestBeta, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This endpoint retrieves information about the current status of a potential role export. + * @summary Retrieve status of a potential role export job + * @param {IAIRoleMiningBetaApiExportRoleMiningPotentialRoleStatusRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof IAIRoleMiningBetaApi + */ + IAIRoleMiningBetaApi.prototype.exportRoleMiningPotentialRoleStatus = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.IAIRoleMiningBetaApiFp)(this.configuration).exportRoleMiningPotentialRoleStatus(requestParameters.sessionId, requestParameters.potentialRoleId, requestParameters.exportId, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * Returns all potential role summaries that match the query parameters + * @summary Retrieves all potential role summaries + * @param {IAIRoleMiningBetaApiGetAllPotentialRoleSummariesRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof IAIRoleMiningBetaApi + */ + IAIRoleMiningBetaApi.prototype.getAllPotentialRoleSummaries = function (requestParameters, axiosOptions) { + var _this = this; + if (requestParameters === void 0) { requestParameters = {}; } + return (0, exports.IAIRoleMiningBetaApiFp)(this.configuration).getAllPotentialRoleSummaries(requestParameters.sorters, requestParameters.filters, requestParameters.offset, requestParameters.limit, requestParameters.count, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This method returns entitlement popularity distribution for a potential role in a role mining session. + * @summary Retrieves entitlement popularity distribution for a potential role in a role mining session + * @param {IAIRoleMiningBetaApiGetEntitlementDistributionPotentialRoleRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof IAIRoleMiningBetaApi + */ + IAIRoleMiningBetaApi.prototype.getEntitlementDistributionPotentialRole = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.IAIRoleMiningBetaApiFp)(this.configuration).getEntitlementDistributionPotentialRole(requestParameters.sessionId, requestParameters.potentialRoleId, requestParameters.includeCommonAccess, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This method returns entitlements for a potential role in a role mining session. + * @summary Retrieves entitlements for a potential role in a role mining session + * @param {IAIRoleMiningBetaApiGetEntitlementsPotentialRoleRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof IAIRoleMiningBetaApi + */ + IAIRoleMiningBetaApi.prototype.getEntitlementsPotentialRole = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.IAIRoleMiningBetaApiFp)(this.configuration).getEntitlementsPotentialRole(requestParameters.sessionId, requestParameters.potentialRoleId, requestParameters.includeCommonAccess, requestParameters.sorters, requestParameters.filters, requestParameters.offset, requestParameters.limit, requestParameters.count, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This method returns excluded entitlements for a potential role in a role mining session. + * @summary Retrieves excluded entitlements for a potential role in a role mining session + * @param {IAIRoleMiningBetaApiGetExcludedEntitlementsPotentialRoleRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof IAIRoleMiningBetaApi + */ + IAIRoleMiningBetaApi.prototype.getExcludedEntitlementsPotentialRole = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.IAIRoleMiningBetaApiFp)(this.configuration).getExcludedEntitlementsPotentialRole(requestParameters.sessionId, requestParameters.potentialRoleId, requestParameters.sorters, requestParameters.filters, requestParameters.offset, requestParameters.limit, requestParameters.count, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This method returns identities for a potential role in a role mining session. + * @summary Retrieves identities for a potential role in a role mining session + * @param {IAIRoleMiningBetaApiGetIdentitiesPotentialRoleRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof IAIRoleMiningBetaApi + */ + IAIRoleMiningBetaApi.prototype.getIdentitiesPotentialRole = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.IAIRoleMiningBetaApiFp)(this.configuration).getIdentitiesPotentialRole(requestParameters.sessionId, requestParameters.potentialRoleId, requestParameters.sorters, requestParameters.filters, requestParameters.offset, requestParameters.limit, requestParameters.count, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This method returns a specific potential role for a role mining session. + * @summary Retrieves a specific potential role + * @param {IAIRoleMiningBetaApiGetPotentialRoleRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof IAIRoleMiningBetaApi + */ + IAIRoleMiningBetaApi.prototype.getPotentialRole = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.IAIRoleMiningBetaApiFp)(this.configuration).getPotentialRole(requestParameters.sessionId, requestParameters.potentialRoleId, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This method returns the applications of a potential role for a role mining session. + * @summary Retrieves the applications of a potential role for a role mining session + * @param {IAIRoleMiningBetaApiGetPotentialRoleApplicationsRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof IAIRoleMiningBetaApi + */ + IAIRoleMiningBetaApi.prototype.getPotentialRoleApplications = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.IAIRoleMiningBetaApiFp)(this.configuration).getPotentialRoleApplications(requestParameters.sessionId, requestParameters.potentialRoleId, requestParameters.offset, requestParameters.limit, requestParameters.count, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This method returns source usageCount (as number of days in the last 90 days) for each identity in a potential role. + * @summary Retrieves potential role source usage + * @param {IAIRoleMiningBetaApiGetPotentialRoleSourceIdentityUsageRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof IAIRoleMiningBetaApi + */ + IAIRoleMiningBetaApi.prototype.getPotentialRoleSourceIdentityUsage = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.IAIRoleMiningBetaApiFp)(this.configuration).getPotentialRoleSourceIdentityUsage(requestParameters.potentialRoleId, requestParameters.sourceId, requestParameters.sorters, requestParameters.offset, requestParameters.limit, requestParameters.count, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This method returns the potential role summaries for a role mining session. + * @summary Retrieves all potential role summaries + * @param {IAIRoleMiningBetaApiGetPotentialRoleSummariesRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof IAIRoleMiningBetaApi + */ + IAIRoleMiningBetaApi.prototype.getPotentialRoleSummaries = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.IAIRoleMiningBetaApiFp)(this.configuration).getPotentialRoleSummaries(requestParameters.sessionId, requestParameters.sorters, requestParameters.filters, requestParameters.offset, requestParameters.limit, requestParameters.count, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This method returns a specific potential role. + * @summary Retrieves a specific potential role + * @param {IAIRoleMiningBetaApiGetRoleMiningPotentialRoleRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof IAIRoleMiningBetaApi + */ + IAIRoleMiningBetaApi.prototype.getRoleMiningPotentialRole = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.IAIRoleMiningBetaApiFp)(this.configuration).getRoleMiningPotentialRole(requestParameters.potentialRoleId, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * The method retrieves a role mining session. + * @summary Get a role mining session + * @param {IAIRoleMiningBetaApiGetRoleMiningSessionRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof IAIRoleMiningBetaApi + */ + IAIRoleMiningBetaApi.prototype.getRoleMiningSession = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.IAIRoleMiningBetaApiFp)(this.configuration).getRoleMiningSession(requestParameters.sessionId, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This method returns a role mining session status for a customer. + * @summary Get role mining session status state + * @param {IAIRoleMiningBetaApiGetRoleMiningSessionStatusRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof IAIRoleMiningBetaApi + */ + IAIRoleMiningBetaApi.prototype.getRoleMiningSessionStatus = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.IAIRoleMiningBetaApiFp)(this.configuration).getRoleMiningSessionStatus(requestParameters.sessionId, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * Returns all role mining sessions that match the query parameters + * @summary Retrieves all role mining sessions + * @param {IAIRoleMiningBetaApiGetRoleMiningSessionsRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof IAIRoleMiningBetaApi + */ + IAIRoleMiningBetaApi.prototype.getRoleMiningSessions = function (requestParameters, axiosOptions) { + var _this = this; + if (requestParameters === void 0) { requestParameters = {}; } + return (0, exports.IAIRoleMiningBetaApiFp)(this.configuration).getRoleMiningSessions(requestParameters.filters, requestParameters.sorters, requestParameters.offset, requestParameters.limit, requestParameters.count, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This method returns all saved potential roles (draft roles). + * @summary Retrieves all saved potential roles + * @param {IAIRoleMiningBetaApiGetSavedPotentialRolesRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof IAIRoleMiningBetaApi + */ + IAIRoleMiningBetaApi.prototype.getSavedPotentialRoles = function (requestParameters, axiosOptions) { + var _this = this; + if (requestParameters === void 0) { requestParameters = {}; } + return (0, exports.IAIRoleMiningBetaApiFp)(this.configuration).getSavedPotentialRoles(requestParameters.sorters, requestParameters.offset, requestParameters.limit, requestParameters.count, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * The method updates an existing potential role using. The following fields can be modified: * `description` * `name` * `saved` >**NOTE: All other fields cannot be modified.** + * @summary Update a potential role + * @param {IAIRoleMiningBetaApiPatchPotentialRoleRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof IAIRoleMiningBetaApi + */ + IAIRoleMiningBetaApi.prototype.patchPotentialRole = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.IAIRoleMiningBetaApiFp)(this.configuration).patchPotentialRole(requestParameters.sessionId, requestParameters.potentialRoleId, requestParameters.patchPotentialRoleRequestInnerBeta, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * The method updates an existing potential role using. The following fields can be modified: * `description` * `name` * `saved` >**NOTE: All other fields cannot be modified.** + * @summary Update a potential role + * @param {IAIRoleMiningBetaApiPatchPotentialRole0Request} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof IAIRoleMiningBetaApi + */ + IAIRoleMiningBetaApi.prototype.patchPotentialRole_1 = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.IAIRoleMiningBetaApiFp)(this.configuration).patchPotentialRole_1(requestParameters.sessionId, requestParameters.potentialRoleId, requestParameters.patchPotentialRoleRequestInnerBeta, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * The method updates an existing role mining session using PATCH. Supports op in {\"replace\"} and changes to pruneThreshold and/or minNumIdentitiesInPotentialRole. The potential roles in this role mining session is then re-calculated. + * @summary Patch a role mining session + * @param {IAIRoleMiningBetaApiPatchRoleMiningSessionRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof IAIRoleMiningBetaApi + */ + IAIRoleMiningBetaApi.prototype.patchRoleMiningSession = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.IAIRoleMiningBetaApiFp)(this.configuration).patchRoleMiningSession(requestParameters.sessionId, requestParameters.jsonPatchOperationBeta, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This endpoint adds or removes entitlements from an exclusion list for a potential role. + * @summary Edit entitlements for a potential role to exclude some entitlements + * @param {IAIRoleMiningBetaApiUpdateEntitlementsPotentialRoleRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof IAIRoleMiningBetaApi + */ + IAIRoleMiningBetaApi.prototype.updateEntitlementsPotentialRole = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.IAIRoleMiningBetaApiFp)(this.configuration).updateEntitlementsPotentialRole(requestParameters.sessionId, requestParameters.potentialRoleId, requestParameters.roleMiningPotentialRoleEditEntitlementsBeta, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + return IAIRoleMiningBetaApi; + }(base_1.BaseAPI)); + exports.IAIRoleMiningBetaApi = IAIRoleMiningBetaApi; + /** + * IdentitiesBetaApi - axios parameter creator + * @export + */ + var IdentitiesBetaApiAxiosParamCreator = function (configuration) { + var _this = this; + return { + /** + * The API returns successful response if the requested identity was deleted. + * @summary Deletes an identity. + * @param {string} id Identity Id + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + deleteIdentity: function (id, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'id' is not null or undefined + (0, common_1.assertParamExists)('deleteIdentity', 'id', id); + localVarPath = "/identities/{id}" + .replace("{".concat("id", "}"), encodeURIComponent(String(id))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'DELETE' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This API returns a single identity using the Identity ID. + * @summary Identity Details + * @param {string} id Identity Id + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getIdentity: function (id, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'id' is not null or undefined + (0, common_1.assertParamExists)('getIdentity', 'id', id); + localVarPath = "/identities/{id}" + .replace("{".concat("id", "}"), encodeURIComponent(String(id))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * Get Ownership association details of an Identity + * @summary Get ownership details + * @param {string} identityId The identity id + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getIdentityOwnershipDetails: function (identityId, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'identityId' is not null or undefined + (0, common_1.assertParamExists)('getIdentityOwnershipDetails', 'identityId', identityId); + localVarPath = "/identities/{identityId}/ownership" + .replace("{".concat("identityId", "}"), encodeURIComponent(String(identityId))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This API returns a list of identities. + * @summary List Identities + * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **id**: *eq, in* **name**: *eq, sw* **alias**: *eq, sw* **firstname**: *eq, sw* **lastname**: *eq, sw* **email**: *eq, sw* **cloudStatus**: *eq* **processingState**: *eq* **correlated**: *eq* **protected**: *eq* + * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **name, alias, cloudStatus** + * @param {'CORRELATED_ONLY' | 'NONE'} [defaultFilter] Adds additional filter to filters query parameter. CORRELATED_ONLY adds correlated=true and returns only identities that are correlated. NONE does not add any and returns all identities that satisfy filters query parameter. + * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + listIdentities: function (filters, sorters, defaultFilter, count, limit, offset, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + localVarPath = "/identities"; + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + if (filters !== undefined) { + localVarQueryParameter['filters'] = filters; + } + if (sorters !== undefined) { + localVarQueryParameter['sorters'] = sorters; + } + if (defaultFilter !== undefined) { + localVarQueryParameter['defaultFilter'] = defaultFilter; + } + if (count !== undefined) { + localVarQueryParameter['count'] = count; + } + if (limit !== undefined) { + localVarQueryParameter['limit'] = limit; + } + if (offset !== undefined) { + localVarQueryParameter['offset'] = offset; + } + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * You could use this endpoint to: 1. Calculate identity attributes, including applying or running any rules or transforms (e.g. calculate Lifecycle State at a point-in-time it\'s expected to change). 2. Evaluate role assignments, leading to assignment of new roles and removal of existing roles. 3. Enforce provisioning for any assigned accesses that haven\'t been fulfilled (e.g. failure due to source health). 4. Recalculate manager relationships. 5. Potentially clean-up identity processing errors, assuming the error has been resolved. To learn more, refer to the [identity processing documentation](https://documentation.sailpoint.com/saas/help/setup/identity_processing.html). A token with ORG_ADMIN or HELPDESK authority is required to call this API. + * @summary Process a list of identityIds + * @param {ProcessIdentitiesRequestBeta} processIdentitiesRequestBeta + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + startIdentityProcessing: function (processIdentitiesRequestBeta, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'processIdentitiesRequestBeta' is not null or undefined + (0, common_1.assertParamExists)('startIdentityProcessing', 'processIdentitiesRequestBeta', processIdentitiesRequestBeta); + localVarPath = "/identities/process"; + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + localVarHeaderParameter['Content-Type'] = 'application/json'; + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(processIdentitiesRequestBeta, localVarRequestOptions, configuration); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This end-point performs attribute synchronization for a selected identity. The endpoint can be called once in 10 seconds per identity. A token with ORG_ADMIN or API authority is required to call this API. + * @summary Attribute synchronization for single identity. + * @param {string} identityId The Identity id + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + synchronizeAttributesForIdentity: function (identityId, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'identityId' is not null or undefined + (0, common_1.assertParamExists)('synchronizeAttributesForIdentity', 'identityId', identityId); + localVarPath = "/identities/{identityId}/synchronize-attributes" + .replace("{".concat("identityId", "}"), encodeURIComponent(String(identityId))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + }; + }; + exports.IdentitiesBetaApiAxiosParamCreator = IdentitiesBetaApiAxiosParamCreator; + /** + * IdentitiesBetaApi - functional programming interface + * @export + */ + var IdentitiesBetaApiFp = function (configuration) { + var localVarAxiosParamCreator = (0, exports.IdentitiesBetaApiAxiosParamCreator)(configuration); + return { + /** + * The API returns successful response if the requested identity was deleted. + * @summary Deletes an identity. + * @param {string} id Identity Id + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + deleteIdentity: function (id, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.deleteIdentity(id, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This API returns a single identity using the Identity ID. + * @summary Identity Details + * @param {string} id Identity Id + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getIdentity: function (id, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.getIdentity(id, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * Get Ownership association details of an Identity + * @summary Get ownership details + * @param {string} identityId The identity id + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getIdentityOwnershipDetails: function (identityId, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.getIdentityOwnershipDetails(identityId, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This API returns a list of identities. + * @summary List Identities + * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **id**: *eq, in* **name**: *eq, sw* **alias**: *eq, sw* **firstname**: *eq, sw* **lastname**: *eq, sw* **email**: *eq, sw* **cloudStatus**: *eq* **processingState**: *eq* **correlated**: *eq* **protected**: *eq* + * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **name, alias, cloudStatus** + * @param {'CORRELATED_ONLY' | 'NONE'} [defaultFilter] Adds additional filter to filters query parameter. CORRELATED_ONLY adds correlated=true and returns only identities that are correlated. NONE does not add any and returns all identities that satisfy filters query parameter. + * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + listIdentities: function (filters, sorters, defaultFilter, count, limit, offset, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.listIdentities(filters, sorters, defaultFilter, count, limit, offset, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * You could use this endpoint to: 1. Calculate identity attributes, including applying or running any rules or transforms (e.g. calculate Lifecycle State at a point-in-time it\'s expected to change). 2. Evaluate role assignments, leading to assignment of new roles and removal of existing roles. 3. Enforce provisioning for any assigned accesses that haven\'t been fulfilled (e.g. failure due to source health). 4. Recalculate manager relationships. 5. Potentially clean-up identity processing errors, assuming the error has been resolved. To learn more, refer to the [identity processing documentation](https://documentation.sailpoint.com/saas/help/setup/identity_processing.html). A token with ORG_ADMIN or HELPDESK authority is required to call this API. + * @summary Process a list of identityIds + * @param {ProcessIdentitiesRequestBeta} processIdentitiesRequestBeta + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + startIdentityProcessing: function (processIdentitiesRequestBeta, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.startIdentityProcessing(processIdentitiesRequestBeta, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This end-point performs attribute synchronization for a selected identity. The endpoint can be called once in 10 seconds per identity. A token with ORG_ADMIN or API authority is required to call this API. + * @summary Attribute synchronization for single identity. + * @param {string} identityId The Identity id + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + synchronizeAttributesForIdentity: function (identityId, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.synchronizeAttributesForIdentity(identityId, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + }; + }; + exports.IdentitiesBetaApiFp = IdentitiesBetaApiFp; + /** + * IdentitiesBetaApi - factory interface + * @export + */ + var IdentitiesBetaApiFactory = function (configuration, basePath, axios) { + var localVarFp = (0, exports.IdentitiesBetaApiFp)(configuration); + return { + /** + * The API returns successful response if the requested identity was deleted. + * @summary Deletes an identity. + * @param {string} id Identity Id + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + deleteIdentity: function (id, axiosOptions) { + return localVarFp.deleteIdentity(id, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This API returns a single identity using the Identity ID. + * @summary Identity Details + * @param {string} id Identity Id + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getIdentity: function (id, axiosOptions) { + return localVarFp.getIdentity(id, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * Get Ownership association details of an Identity + * @summary Get ownership details + * @param {string} identityId The identity id + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getIdentityOwnershipDetails: function (identityId, axiosOptions) { + return localVarFp.getIdentityOwnershipDetails(identityId, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This API returns a list of identities. + * @summary List Identities + * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **id**: *eq, in* **name**: *eq, sw* **alias**: *eq, sw* **firstname**: *eq, sw* **lastname**: *eq, sw* **email**: *eq, sw* **cloudStatus**: *eq* **processingState**: *eq* **correlated**: *eq* **protected**: *eq* + * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **name, alias, cloudStatus** + * @param {'CORRELATED_ONLY' | 'NONE'} [defaultFilter] Adds additional filter to filters query parameter. CORRELATED_ONLY adds correlated=true and returns only identities that are correlated. NONE does not add any and returns all identities that satisfy filters query parameter. + * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + listIdentities: function (filters, sorters, defaultFilter, count, limit, offset, axiosOptions) { + return localVarFp.listIdentities(filters, sorters, defaultFilter, count, limit, offset, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * You could use this endpoint to: 1. Calculate identity attributes, including applying or running any rules or transforms (e.g. calculate Lifecycle State at a point-in-time it\'s expected to change). 2. Evaluate role assignments, leading to assignment of new roles and removal of existing roles. 3. Enforce provisioning for any assigned accesses that haven\'t been fulfilled (e.g. failure due to source health). 4. Recalculate manager relationships. 5. Potentially clean-up identity processing errors, assuming the error has been resolved. To learn more, refer to the [identity processing documentation](https://documentation.sailpoint.com/saas/help/setup/identity_processing.html). A token with ORG_ADMIN or HELPDESK authority is required to call this API. + * @summary Process a list of identityIds + * @param {ProcessIdentitiesRequestBeta} processIdentitiesRequestBeta + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + startIdentityProcessing: function (processIdentitiesRequestBeta, axiosOptions) { + return localVarFp.startIdentityProcessing(processIdentitiesRequestBeta, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This end-point performs attribute synchronization for a selected identity. The endpoint can be called once in 10 seconds per identity. A token with ORG_ADMIN or API authority is required to call this API. + * @summary Attribute synchronization for single identity. + * @param {string} identityId The Identity id + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + synchronizeAttributesForIdentity: function (identityId, axiosOptions) { + return localVarFp.synchronizeAttributesForIdentity(identityId, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + }; + }; + exports.IdentitiesBetaApiFactory = IdentitiesBetaApiFactory; + /** + * IdentitiesBetaApi - object-oriented interface + * @export + * @class IdentitiesBetaApi + * @extends {BaseAPI} + */ + var IdentitiesBetaApi = /** @class */ (function (_super) { + __extends(IdentitiesBetaApi, _super); + function IdentitiesBetaApi() { + return _super !== null && _super.apply(this, arguments) || this; + } + /** + * The API returns successful response if the requested identity was deleted. + * @summary Deletes an identity. + * @param {IdentitiesBetaApiDeleteIdentityRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof IdentitiesBetaApi + */ + IdentitiesBetaApi.prototype.deleteIdentity = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.IdentitiesBetaApiFp)(this.configuration).deleteIdentity(requestParameters.id, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This API returns a single identity using the Identity ID. + * @summary Identity Details + * @param {IdentitiesBetaApiGetIdentityRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof IdentitiesBetaApi + */ + IdentitiesBetaApi.prototype.getIdentity = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.IdentitiesBetaApiFp)(this.configuration).getIdentity(requestParameters.id, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * Get Ownership association details of an Identity + * @summary Get ownership details + * @param {IdentitiesBetaApiGetIdentityOwnershipDetailsRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof IdentitiesBetaApi + */ + IdentitiesBetaApi.prototype.getIdentityOwnershipDetails = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.IdentitiesBetaApiFp)(this.configuration).getIdentityOwnershipDetails(requestParameters.identityId, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This API returns a list of identities. + * @summary List Identities + * @param {IdentitiesBetaApiListIdentitiesRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof IdentitiesBetaApi + */ + IdentitiesBetaApi.prototype.listIdentities = function (requestParameters, axiosOptions) { + var _this = this; + if (requestParameters === void 0) { requestParameters = {}; } + return (0, exports.IdentitiesBetaApiFp)(this.configuration).listIdentities(requestParameters.filters, requestParameters.sorters, requestParameters.defaultFilter, requestParameters.count, requestParameters.limit, requestParameters.offset, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * You could use this endpoint to: 1. Calculate identity attributes, including applying or running any rules or transforms (e.g. calculate Lifecycle State at a point-in-time it\'s expected to change). 2. Evaluate role assignments, leading to assignment of new roles and removal of existing roles. 3. Enforce provisioning for any assigned accesses that haven\'t been fulfilled (e.g. failure due to source health). 4. Recalculate manager relationships. 5. Potentially clean-up identity processing errors, assuming the error has been resolved. To learn more, refer to the [identity processing documentation](https://documentation.sailpoint.com/saas/help/setup/identity_processing.html). A token with ORG_ADMIN or HELPDESK authority is required to call this API. + * @summary Process a list of identityIds + * @param {IdentitiesBetaApiStartIdentityProcessingRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof IdentitiesBetaApi + */ + IdentitiesBetaApi.prototype.startIdentityProcessing = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.IdentitiesBetaApiFp)(this.configuration).startIdentityProcessing(requestParameters.processIdentitiesRequestBeta, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This end-point performs attribute synchronization for a selected identity. The endpoint can be called once in 10 seconds per identity. A token with ORG_ADMIN or API authority is required to call this API. + * @summary Attribute synchronization for single identity. + * @param {IdentitiesBetaApiSynchronizeAttributesForIdentityRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof IdentitiesBetaApi + */ + IdentitiesBetaApi.prototype.synchronizeAttributesForIdentity = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.IdentitiesBetaApiFp)(this.configuration).synchronizeAttributesForIdentity(requestParameters.identityId, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + return IdentitiesBetaApi; + }(base_1.BaseAPI)); + exports.IdentitiesBetaApi = IdentitiesBetaApi; + /** + * IdentityAttributesBetaApi - axios parameter creator + * @export + */ + var IdentityAttributesBetaApiAxiosParamCreator = function (configuration) { + var _this = this; + return { + /** + * This creates a new identity attribute. + * @summary Create Identity Attribute + * @param {IdentityAttributeBeta} identityAttributeBeta + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + createIdentityAttribute: function (identityAttributeBeta, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'identityAttributeBeta' is not null or undefined + (0, common_1.assertParamExists)('createIdentityAttribute', 'identityAttributeBeta', identityAttributeBeta); + localVarPath = "/identity-attributes/{name}"; + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + localVarHeaderParameter['Content-Type'] = 'application/json'; + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(identityAttributeBeta, localVarRequestOptions, configuration); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This deletes an identity attribute for a given technical name. + * @summary Delete Identity Attribute + * @param {string} name The attribute\'s technical name. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + deleteIdentityAttribute: function (name, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'name' is not null or undefined + (0, common_1.assertParamExists)('deleteIdentityAttribute', 'name', name); + localVarPath = "/identity-attributes/{name}" + .replace("{".concat("name", "}"), encodeURIComponent(String(name))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'DELETE' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This deletes identity attributes for a given set of technical names. + * @summary Bulk delete Identity Attributes + * @param {IdentityAttributeNamesBeta} identityAttributeNamesBeta + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + deleteIdentityAttributesInBulk: function (identityAttributeNamesBeta, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'identityAttributeNamesBeta' is not null or undefined + (0, common_1.assertParamExists)('deleteIdentityAttributesInBulk', 'identityAttributeNamesBeta', identityAttributeNamesBeta); + localVarPath = "/identity-attributes/bulk-delete"; + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + localVarHeaderParameter['Content-Type'] = 'application/json'; + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(identityAttributeNamesBeta, localVarRequestOptions, configuration); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This gets an identity attribute for a given technical name. + * @summary Get Identity Attribute + * @param {string} name The attribute\'s technical name. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getIdentityAttribute: function (name, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'name' is not null or undefined + (0, common_1.assertParamExists)('getIdentityAttribute', 'name', name); + localVarPath = "/identity-attributes/{name}" + .replace("{".concat("name", "}"), encodeURIComponent(String(name))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This gets a collection of identity attributes. + * @summary List Identity Attributes + * @param {boolean} [includeSystem] Include \"system\" attributes in the response. + * @param {boolean} [includeSilent] Include \"silent\" attributes in the response. + * @param {boolean} [searchableOnly] Include only \"searchable\" attributes in the response. + * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + listIdentityAttributes: function (includeSystem, includeSilent, searchableOnly, count, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + localVarPath = "/identity-attributes"; + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + if (includeSystem !== undefined) { + localVarQueryParameter['includeSystem'] = includeSystem; + } + if (includeSilent !== undefined) { + localVarQueryParameter['includeSilent'] = includeSilent; + } + if (searchableOnly !== undefined) { + localVarQueryParameter['searchableOnly'] = searchableOnly; + } + if (count !== undefined) { + localVarQueryParameter['count'] = count; + } + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This updates an existing identity attribute. + * @summary Update Identity Attribute + * @param {string} name The attribute\'s technical name. + * @param {IdentityAttributeBeta} identityAttributeBeta + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + putIdentityAttribute: function (name, identityAttributeBeta, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'name' is not null or undefined + (0, common_1.assertParamExists)('putIdentityAttribute', 'name', name); + // verify required parameter 'identityAttributeBeta' is not null or undefined + (0, common_1.assertParamExists)('putIdentityAttribute', 'identityAttributeBeta', identityAttributeBeta); + localVarPath = "/identity-attributes/{name}" + .replace("{".concat("name", "}"), encodeURIComponent(String(name))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'PUT' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + localVarHeaderParameter['Content-Type'] = 'application/json'; + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(identityAttributeBeta, localVarRequestOptions, configuration); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + }; + }; + exports.IdentityAttributesBetaApiAxiosParamCreator = IdentityAttributesBetaApiAxiosParamCreator; + /** + * IdentityAttributesBetaApi - functional programming interface + * @export + */ + var IdentityAttributesBetaApiFp = function (configuration) { + var localVarAxiosParamCreator = (0, exports.IdentityAttributesBetaApiAxiosParamCreator)(configuration); + return { + /** + * This creates a new identity attribute. + * @summary Create Identity Attribute + * @param {IdentityAttributeBeta} identityAttributeBeta + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + createIdentityAttribute: function (identityAttributeBeta, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.createIdentityAttribute(identityAttributeBeta, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This deletes an identity attribute for a given technical name. + * @summary Delete Identity Attribute + * @param {string} name The attribute\'s technical name. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + deleteIdentityAttribute: function (name, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.deleteIdentityAttribute(name, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This deletes identity attributes for a given set of technical names. + * @summary Bulk delete Identity Attributes + * @param {IdentityAttributeNamesBeta} identityAttributeNamesBeta + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + deleteIdentityAttributesInBulk: function (identityAttributeNamesBeta, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.deleteIdentityAttributesInBulk(identityAttributeNamesBeta, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This gets an identity attribute for a given technical name. + * @summary Get Identity Attribute + * @param {string} name The attribute\'s technical name. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getIdentityAttribute: function (name, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.getIdentityAttribute(name, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This gets a collection of identity attributes. + * @summary List Identity Attributes + * @param {boolean} [includeSystem] Include \"system\" attributes in the response. + * @param {boolean} [includeSilent] Include \"silent\" attributes in the response. + * @param {boolean} [searchableOnly] Include only \"searchable\" attributes in the response. + * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + listIdentityAttributes: function (includeSystem, includeSilent, searchableOnly, count, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.listIdentityAttributes(includeSystem, includeSilent, searchableOnly, count, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This updates an existing identity attribute. + * @summary Update Identity Attribute + * @param {string} name The attribute\'s technical name. + * @param {IdentityAttributeBeta} identityAttributeBeta + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + putIdentityAttribute: function (name, identityAttributeBeta, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.putIdentityAttribute(name, identityAttributeBeta, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + }; + }; + exports.IdentityAttributesBetaApiFp = IdentityAttributesBetaApiFp; + /** + * IdentityAttributesBetaApi - factory interface + * @export + */ + var IdentityAttributesBetaApiFactory = function (configuration, basePath, axios) { + var localVarFp = (0, exports.IdentityAttributesBetaApiFp)(configuration); + return { + /** + * This creates a new identity attribute. + * @summary Create Identity Attribute + * @param {IdentityAttributeBeta} identityAttributeBeta + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + createIdentityAttribute: function (identityAttributeBeta, axiosOptions) { + return localVarFp.createIdentityAttribute(identityAttributeBeta, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This deletes an identity attribute for a given technical name. + * @summary Delete Identity Attribute + * @param {string} name The attribute\'s technical name. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + deleteIdentityAttribute: function (name, axiosOptions) { + return localVarFp.deleteIdentityAttribute(name, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This deletes identity attributes for a given set of technical names. + * @summary Bulk delete Identity Attributes + * @param {IdentityAttributeNamesBeta} identityAttributeNamesBeta + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + deleteIdentityAttributesInBulk: function (identityAttributeNamesBeta, axiosOptions) { + return localVarFp.deleteIdentityAttributesInBulk(identityAttributeNamesBeta, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This gets an identity attribute for a given technical name. + * @summary Get Identity Attribute + * @param {string} name The attribute\'s technical name. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getIdentityAttribute: function (name, axiosOptions) { + return localVarFp.getIdentityAttribute(name, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This gets a collection of identity attributes. + * @summary List Identity Attributes + * @param {boolean} [includeSystem] Include \"system\" attributes in the response. + * @param {boolean} [includeSilent] Include \"silent\" attributes in the response. + * @param {boolean} [searchableOnly] Include only \"searchable\" attributes in the response. + * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + listIdentityAttributes: function (includeSystem, includeSilent, searchableOnly, count, axiosOptions) { + return localVarFp.listIdentityAttributes(includeSystem, includeSilent, searchableOnly, count, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This updates an existing identity attribute. + * @summary Update Identity Attribute + * @param {string} name The attribute\'s technical name. + * @param {IdentityAttributeBeta} identityAttributeBeta + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + putIdentityAttribute: function (name, identityAttributeBeta, axiosOptions) { + return localVarFp.putIdentityAttribute(name, identityAttributeBeta, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + }; + }; + exports.IdentityAttributesBetaApiFactory = IdentityAttributesBetaApiFactory; + /** + * IdentityAttributesBetaApi - object-oriented interface + * @export + * @class IdentityAttributesBetaApi + * @extends {BaseAPI} + */ + var IdentityAttributesBetaApi = /** @class */ (function (_super) { + __extends(IdentityAttributesBetaApi, _super); + function IdentityAttributesBetaApi() { + return _super !== null && _super.apply(this, arguments) || this; + } + /** + * This creates a new identity attribute. + * @summary Create Identity Attribute + * @param {IdentityAttributesBetaApiCreateIdentityAttributeRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof IdentityAttributesBetaApi + */ + IdentityAttributesBetaApi.prototype.createIdentityAttribute = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.IdentityAttributesBetaApiFp)(this.configuration).createIdentityAttribute(requestParameters.identityAttributeBeta, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This deletes an identity attribute for a given technical name. + * @summary Delete Identity Attribute + * @param {IdentityAttributesBetaApiDeleteIdentityAttributeRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof IdentityAttributesBetaApi + */ + IdentityAttributesBetaApi.prototype.deleteIdentityAttribute = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.IdentityAttributesBetaApiFp)(this.configuration).deleteIdentityAttribute(requestParameters.name, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This deletes identity attributes for a given set of technical names. + * @summary Bulk delete Identity Attributes + * @param {IdentityAttributesBetaApiDeleteIdentityAttributesInBulkRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof IdentityAttributesBetaApi + */ + IdentityAttributesBetaApi.prototype.deleteIdentityAttributesInBulk = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.IdentityAttributesBetaApiFp)(this.configuration).deleteIdentityAttributesInBulk(requestParameters.identityAttributeNamesBeta, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This gets an identity attribute for a given technical name. + * @summary Get Identity Attribute + * @param {IdentityAttributesBetaApiGetIdentityAttributeRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof IdentityAttributesBetaApi + */ + IdentityAttributesBetaApi.prototype.getIdentityAttribute = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.IdentityAttributesBetaApiFp)(this.configuration).getIdentityAttribute(requestParameters.name, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This gets a collection of identity attributes. + * @summary List Identity Attributes + * @param {IdentityAttributesBetaApiListIdentityAttributesRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof IdentityAttributesBetaApi + */ + IdentityAttributesBetaApi.prototype.listIdentityAttributes = function (requestParameters, axiosOptions) { + var _this = this; + if (requestParameters === void 0) { requestParameters = {}; } + return (0, exports.IdentityAttributesBetaApiFp)(this.configuration).listIdentityAttributes(requestParameters.includeSystem, requestParameters.includeSilent, requestParameters.searchableOnly, requestParameters.count, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This updates an existing identity attribute. + * @summary Update Identity Attribute + * @param {IdentityAttributesBetaApiPutIdentityAttributeRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof IdentityAttributesBetaApi + */ + IdentityAttributesBetaApi.prototype.putIdentityAttribute = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.IdentityAttributesBetaApiFp)(this.configuration).putIdentityAttribute(requestParameters.name, requestParameters.identityAttributeBeta, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + return IdentityAttributesBetaApi; + }(base_1.BaseAPI)); + exports.IdentityAttributesBetaApi = IdentityAttributesBetaApi; + /** + * IdentityHistoryBetaApi - axios parameter creator + * @export + */ + var IdentityHistoryBetaApiAxiosParamCreator = function (configuration) { + var _this = this; + return { + /** + * This method gets a difference of count for each access item types for the given identity between 2 snapshots Requires authorization scope of \'idn:identity-history:read\' + * @summary Gets a difference of count for each access item types for the given identity between 2 snapshots + * @param {string} id The identity id + * @param {string} [snapshot1] The snapshot 1 of identity + * @param {string} [snapshot2] The snapshot 2 of identity + * @param {Array} [accessItemTypes] An optional list of access item types (app, account, entitlement, etc...) to return. If null or empty, all access items types are returned + * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + compareIdentitySnapshots: function (id, snapshot1, snapshot2, accessItemTypes, limit, offset, count, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'id' is not null or undefined + (0, common_1.assertParamExists)('compareIdentitySnapshots', 'id', id); + localVarPath = "/historical-identities/{id}/compare" + .replace("{".concat("id", "}"), encodeURIComponent(String(id))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + if (snapshot1 !== undefined) { + localVarQueryParameter['snapshot1'] = snapshot1; + } + if (snapshot2 !== undefined) { + localVarQueryParameter['snapshot2'] = snapshot2; + } + if (accessItemTypes) { + localVarQueryParameter['accessItemTypes'] = accessItemTypes.join(base_1.COLLECTION_FORMATS.csv); + } + if (limit !== undefined) { + localVarQueryParameter['limit'] = limit; + } + if (offset !== undefined) { + localVarQueryParameter['offset'] = offset; + } + if (count !== undefined) { + localVarQueryParameter['count'] = count; + } + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This method gets a list of differences of specific accessType for the given identity between 2 snapshots Requires authorization scope of \'idn:identity-history:read\' + * @summary Gets a list of differences of specific accessType for the given identity between 2 snapshots + * @param {string} id The identity id + * @param {string} accessType The specific type which needs to be compared + * @param {boolean} [accessAssociated] Indicates if added or removed access needs to be returned. true - added, false - removed, null - both added & removed + * @param {string} [snapshot1] The snapshot 1 of identity + * @param {string} [snapshot2] The snapshot 2 of identity + * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + compareIdentitySnapshotsAccessType: function (id, accessType, accessAssociated, snapshot1, snapshot2, limit, offset, count, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'id' is not null or undefined + (0, common_1.assertParamExists)('compareIdentitySnapshotsAccessType', 'id', id); + // verify required parameter 'accessType' is not null or undefined + (0, common_1.assertParamExists)('compareIdentitySnapshotsAccessType', 'accessType', accessType); + localVarPath = "/historical-identities/{id}/compare/{access-type}" + .replace("{".concat("id", "}"), encodeURIComponent(String(id))) + .replace("{".concat("accessType", "}"), encodeURIComponent(String(accessType))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + if (accessAssociated !== undefined) { + localVarQueryParameter['access-associated'] = accessAssociated; + } + if (snapshot1 !== undefined) { + localVarQueryParameter['snapshot1'] = snapshot1; + } + if (snapshot2 !== undefined) { + localVarQueryParameter['snapshot2'] = snapshot2; + } + if (limit !== undefined) { + localVarQueryParameter['limit'] = limit; + } + if (offset !== undefined) { + localVarQueryParameter['offset'] = offset; + } + if (count !== undefined) { + localVarQueryParameter['count'] = count; + } + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This method retrieves a specified identity Requires authorization scope of \'idn:identity-history:read\' + * @summary Get latest snapshot of identity + * @param {string} id The identity id + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getHistoricalIdentity: function (id, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'id' is not null or undefined + (0, common_1.assertParamExists)('getHistoricalIdentity', 'id', id); + localVarPath = "/historical-identities/{id}" + .replace("{".concat("id", "}"), encodeURIComponent(String(id))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This method retrieves all access events for the identity Requires authorization scope of \'idn:identity-history:read\' + * @summary Lists all events for the given identity + * @param {string} id The identity id + * @param {string} [from] The optional instant from which to return the access events + * @param {Array} [eventTypes] An optional list of event types to return. If null or empty, all events are returned + * @param {Array} [accessItemTypes] An optional list of access item types (app, account, entitlement, etc...) to return. If null or empty, all access items types are returned + * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getHistoricalIdentityEvents: function (id, from, eventTypes, accessItemTypes, limit, offset, count, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'id' is not null or undefined + (0, common_1.assertParamExists)('getHistoricalIdentityEvents', 'id', id); + localVarPath = "/historical-identities/{id}/events" + .replace("{".concat("id", "}"), encodeURIComponent(String(id))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + if (from !== undefined) { + localVarQueryParameter['from'] = from; + } + if (eventTypes) { + localVarQueryParameter['eventTypes'] = eventTypes.join(base_1.COLLECTION_FORMATS.csv); + } + if (accessItemTypes) { + localVarQueryParameter['accessItemTypes'] = accessItemTypes.join(base_1.COLLECTION_FORMATS.csv); + } + if (limit !== undefined) { + localVarQueryParameter['limit'] = limit; + } + if (offset !== undefined) { + localVarQueryParameter['offset'] = offset; + } + if (count !== undefined) { + localVarQueryParameter['count'] = count; + } + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This method retrieves a specified identity snapshot at a given date Requires authorization scope of \'idn:identity-history:read\' + * @summary Gets an identity snapshot at a given date + * @param {string} id The identity id + * @param {string} date The specified date + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getIdentitySnapshot: function (id, date, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'id' is not null or undefined + (0, common_1.assertParamExists)('getIdentitySnapshot', 'id', id); + // verify required parameter 'date' is not null or undefined + (0, common_1.assertParamExists)('getIdentitySnapshot', 'date', date); + localVarPath = "/historical-identities/{id}/snapshots/{date}" + .replace("{".concat("id", "}"), encodeURIComponent(String(id))) + .replace("{".concat("date", "}"), encodeURIComponent(String(date))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This method gets the summary for the event count for a specific identity by month/day Requires authorization scope of \'idn:identity-history:read\' + * @summary Gets the summary for the event count for a specific identity + * @param {string} id The identity id + * @param {string} [before] The date before which snapshot summary is required + * @param {'day' | 'month'} [interval] The interval indicating day or month. Defaults to month if not specified + * @param {string} [timeZone] The time zone. Defaults to UTC if not provided + * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getIdentitySnapshotSummary: function (id, before, interval, timeZone, limit, offset, count, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'id' is not null or undefined + (0, common_1.assertParamExists)('getIdentitySnapshotSummary', 'id', id); + localVarPath = "/historical-identities/{id}/snapshot-summary" + .replace("{".concat("id", "}"), encodeURIComponent(String(id))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + if (before !== undefined) { + localVarQueryParameter['before'] = before; + } + if (interval !== undefined) { + localVarQueryParameter['interval'] = interval; + } + if (timeZone !== undefined) { + localVarQueryParameter['time-zone'] = timeZone; + } + if (limit !== undefined) { + localVarQueryParameter['limit'] = limit; + } + if (offset !== undefined) { + localVarQueryParameter['offset'] = offset; + } + if (count !== undefined) { + localVarQueryParameter['count'] = count; + } + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This method retrieves start date of the identity Requires authorization scope of \'idn:identity-history:read\' + * @summary Gets the start date of the identity + * @param {string} id The identity id + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getIdentityStartDate: function (id, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'id' is not null or undefined + (0, common_1.assertParamExists)('getIdentityStartDate', 'id', id); + localVarPath = "/historical-identities/{id}/start-date" + .replace("{".concat("id", "}"), encodeURIComponent(String(id))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This gets the list of identities for the customer. This list end point does not support count=true request param. The total count of identities would never be returned even if the count param is specified in the request Requires authorization scope of \'idn:identity-history:read\' + * @summary Lists all the identities + * @param {string} [startsWithQuery] This param is used for starts-with search for first, last and display name of the identity + * @param {boolean} [isDeleted] Indicates if we want to only list down deleted identities or not. + * @param {boolean} [isActive] Indicates if we want to only list active or inactive identities. + * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + listHistoricalIdentities: function (startsWithQuery, isDeleted, isActive, limit, offset, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + localVarPath = "/historical-identities"; + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + if (startsWithQuery !== undefined) { + localVarQueryParameter['starts-with-query'] = startsWithQuery; + } + if (isDeleted !== undefined) { + localVarQueryParameter['is-deleted'] = isDeleted; + } + if (isActive !== undefined) { + localVarQueryParameter['is-active'] = isActive; + } + if (limit !== undefined) { + localVarQueryParameter['limit'] = limit; + } + if (offset !== undefined) { + localVarQueryParameter['offset'] = offset; + } + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This method retrieves a list of access item for the identity filtered by the access item type Requires authorization scope of \'idn:identity-history:read\' + * @summary Gets a list of access items for the identity filtered by item type + * @param {string} id The identity id + * @param {string} [type] The type of access item for the identity. If not provided, it defaults to account + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + listIdentityAccessItems: function (id, type, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'id' is not null or undefined + (0, common_1.assertParamExists)('listIdentityAccessItems', 'id', id); + localVarPath = "/historical-identities/{id}/access-items" + .replace("{".concat("id", "}"), encodeURIComponent(String(id))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + if (type !== undefined) { + localVarQueryParameter['type'] = type; + } + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This method retrieves the list of identity access items at a given date filterd by item type Requires authorization scope of \'idn:identity-history:read\' + * @summary Gets the list of identity access items at a given date filterd by item type + * @param {string} id The identity id + * @param {string} date The specified date + * @param {string} [type] The access item type + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + listIdentitySnapshotAccessItems: function (id, date, type, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'id' is not null or undefined + (0, common_1.assertParamExists)('listIdentitySnapshotAccessItems', 'id', id); + // verify required parameter 'date' is not null or undefined + (0, common_1.assertParamExists)('listIdentitySnapshotAccessItems', 'date', date); + localVarPath = "/historical-identities/{id}/snapshots/{date}/access-items" + .replace("{".concat("id", "}"), encodeURIComponent(String(id))) + .replace("{".concat("date", "}"), encodeURIComponent(String(date))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + if (type !== undefined) { + localVarQueryParameter['type'] = type; + } + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This method retrieves all the snapshots for the identity Requires authorization scope of \'idn:identity-history:read\' + * @summary Lists all the snapshots for the identity + * @param {string} id The identity id + * @param {string} [start] The specified start date + * @param {'day' | 'month'} [interval] The interval indicating the range in day or month for the specified interval-name + * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + listIdentitySnapshots: function (id, start, interval, limit, offset, count, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'id' is not null or undefined + (0, common_1.assertParamExists)('listIdentitySnapshots', 'id', id); + localVarPath = "/historical-identities/{id}/snapshots" + .replace("{".concat("id", "}"), encodeURIComponent(String(id))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + if (start !== undefined) { + localVarQueryParameter['start'] = start; + } + if (interval !== undefined) { + localVarQueryParameter['interval'] = interval; + } + if (limit !== undefined) { + localVarQueryParameter['limit'] = limit; + } + if (offset !== undefined) { + localVarQueryParameter['offset'] = offset; + } + if (count !== undefined) { + localVarQueryParameter['count'] = count; + } + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + }; + }; + exports.IdentityHistoryBetaApiAxiosParamCreator = IdentityHistoryBetaApiAxiosParamCreator; + /** + * IdentityHistoryBetaApi - functional programming interface + * @export + */ + var IdentityHistoryBetaApiFp = function (configuration) { + var localVarAxiosParamCreator = (0, exports.IdentityHistoryBetaApiAxiosParamCreator)(configuration); + return { + /** + * This method gets a difference of count for each access item types for the given identity between 2 snapshots Requires authorization scope of \'idn:identity-history:read\' + * @summary Gets a difference of count for each access item types for the given identity between 2 snapshots + * @param {string} id The identity id + * @param {string} [snapshot1] The snapshot 1 of identity + * @param {string} [snapshot2] The snapshot 2 of identity + * @param {Array} [accessItemTypes] An optional list of access item types (app, account, entitlement, etc...) to return. If null or empty, all access items types are returned + * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + compareIdentitySnapshots: function (id, snapshot1, snapshot2, accessItemTypes, limit, offset, count, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.compareIdentitySnapshots(id, snapshot1, snapshot2, accessItemTypes, limit, offset, count, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This method gets a list of differences of specific accessType for the given identity between 2 snapshots Requires authorization scope of \'idn:identity-history:read\' + * @summary Gets a list of differences of specific accessType for the given identity between 2 snapshots + * @param {string} id The identity id + * @param {string} accessType The specific type which needs to be compared + * @param {boolean} [accessAssociated] Indicates if added or removed access needs to be returned. true - added, false - removed, null - both added & removed + * @param {string} [snapshot1] The snapshot 1 of identity + * @param {string} [snapshot2] The snapshot 2 of identity + * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + compareIdentitySnapshotsAccessType: function (id, accessType, accessAssociated, snapshot1, snapshot2, limit, offset, count, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.compareIdentitySnapshotsAccessType(id, accessType, accessAssociated, snapshot1, snapshot2, limit, offset, count, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This method retrieves a specified identity Requires authorization scope of \'idn:identity-history:read\' + * @summary Get latest snapshot of identity + * @param {string} id The identity id + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getHistoricalIdentity: function (id, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.getHistoricalIdentity(id, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This method retrieves all access events for the identity Requires authorization scope of \'idn:identity-history:read\' + * @summary Lists all events for the given identity + * @param {string} id The identity id + * @param {string} [from] The optional instant from which to return the access events + * @param {Array} [eventTypes] An optional list of event types to return. If null or empty, all events are returned + * @param {Array} [accessItemTypes] An optional list of access item types (app, account, entitlement, etc...) to return. If null or empty, all access items types are returned + * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getHistoricalIdentityEvents: function (id, from, eventTypes, accessItemTypes, limit, offset, count, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.getHistoricalIdentityEvents(id, from, eventTypes, accessItemTypes, limit, offset, count, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This method retrieves a specified identity snapshot at a given date Requires authorization scope of \'idn:identity-history:read\' + * @summary Gets an identity snapshot at a given date + * @param {string} id The identity id + * @param {string} date The specified date + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getIdentitySnapshot: function (id, date, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.getIdentitySnapshot(id, date, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This method gets the summary for the event count for a specific identity by month/day Requires authorization scope of \'idn:identity-history:read\' + * @summary Gets the summary for the event count for a specific identity + * @param {string} id The identity id + * @param {string} [before] The date before which snapshot summary is required + * @param {'day' | 'month'} [interval] The interval indicating day or month. Defaults to month if not specified + * @param {string} [timeZone] The time zone. Defaults to UTC if not provided + * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getIdentitySnapshotSummary: function (id, before, interval, timeZone, limit, offset, count, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.getIdentitySnapshotSummary(id, before, interval, timeZone, limit, offset, count, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This method retrieves start date of the identity Requires authorization scope of \'idn:identity-history:read\' + * @summary Gets the start date of the identity + * @param {string} id The identity id + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getIdentityStartDate: function (id, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.getIdentityStartDate(id, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This gets the list of identities for the customer. This list end point does not support count=true request param. The total count of identities would never be returned even if the count param is specified in the request Requires authorization scope of \'idn:identity-history:read\' + * @summary Lists all the identities + * @param {string} [startsWithQuery] This param is used for starts-with search for first, last and display name of the identity + * @param {boolean} [isDeleted] Indicates if we want to only list down deleted identities or not. + * @param {boolean} [isActive] Indicates if we want to only list active or inactive identities. + * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + listHistoricalIdentities: function (startsWithQuery, isDeleted, isActive, limit, offset, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.listHistoricalIdentities(startsWithQuery, isDeleted, isActive, limit, offset, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This method retrieves a list of access item for the identity filtered by the access item type Requires authorization scope of \'idn:identity-history:read\' + * @summary Gets a list of access items for the identity filtered by item type + * @param {string} id The identity id + * @param {string} [type] The type of access item for the identity. If not provided, it defaults to account + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + listIdentityAccessItems: function (id, type, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.listIdentityAccessItems(id, type, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This method retrieves the list of identity access items at a given date filterd by item type Requires authorization scope of \'idn:identity-history:read\' + * @summary Gets the list of identity access items at a given date filterd by item type + * @param {string} id The identity id + * @param {string} date The specified date + * @param {string} [type] The access item type + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + listIdentitySnapshotAccessItems: function (id, date, type, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.listIdentitySnapshotAccessItems(id, date, type, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This method retrieves all the snapshots for the identity Requires authorization scope of \'idn:identity-history:read\' + * @summary Lists all the snapshots for the identity + * @param {string} id The identity id + * @param {string} [start] The specified start date + * @param {'day' | 'month'} [interval] The interval indicating the range in day or month for the specified interval-name + * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + listIdentitySnapshots: function (id, start, interval, limit, offset, count, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.listIdentitySnapshots(id, start, interval, limit, offset, count, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + }; + }; + exports.IdentityHistoryBetaApiFp = IdentityHistoryBetaApiFp; + /** + * IdentityHistoryBetaApi - factory interface + * @export + */ + var IdentityHistoryBetaApiFactory = function (configuration, basePath, axios) { + var localVarFp = (0, exports.IdentityHistoryBetaApiFp)(configuration); + return { + /** + * This method gets a difference of count for each access item types for the given identity between 2 snapshots Requires authorization scope of \'idn:identity-history:read\' + * @summary Gets a difference of count for each access item types for the given identity between 2 snapshots + * @param {string} id The identity id + * @param {string} [snapshot1] The snapshot 1 of identity + * @param {string} [snapshot2] The snapshot 2 of identity + * @param {Array} [accessItemTypes] An optional list of access item types (app, account, entitlement, etc...) to return. If null or empty, all access items types are returned + * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + compareIdentitySnapshots: function (id, snapshot1, snapshot2, accessItemTypes, limit, offset, count, axiosOptions) { + return localVarFp.compareIdentitySnapshots(id, snapshot1, snapshot2, accessItemTypes, limit, offset, count, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This method gets a list of differences of specific accessType for the given identity between 2 snapshots Requires authorization scope of \'idn:identity-history:read\' + * @summary Gets a list of differences of specific accessType for the given identity between 2 snapshots + * @param {string} id The identity id + * @param {string} accessType The specific type which needs to be compared + * @param {boolean} [accessAssociated] Indicates if added or removed access needs to be returned. true - added, false - removed, null - both added & removed + * @param {string} [snapshot1] The snapshot 1 of identity + * @param {string} [snapshot2] The snapshot 2 of identity + * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + compareIdentitySnapshotsAccessType: function (id, accessType, accessAssociated, snapshot1, snapshot2, limit, offset, count, axiosOptions) { + return localVarFp.compareIdentitySnapshotsAccessType(id, accessType, accessAssociated, snapshot1, snapshot2, limit, offset, count, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This method retrieves a specified identity Requires authorization scope of \'idn:identity-history:read\' + * @summary Get latest snapshot of identity + * @param {string} id The identity id + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getHistoricalIdentity: function (id, axiosOptions) { + return localVarFp.getHistoricalIdentity(id, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This method retrieves all access events for the identity Requires authorization scope of \'idn:identity-history:read\' + * @summary Lists all events for the given identity + * @param {string} id The identity id + * @param {string} [from] The optional instant from which to return the access events + * @param {Array} [eventTypes] An optional list of event types to return. If null or empty, all events are returned + * @param {Array} [accessItemTypes] An optional list of access item types (app, account, entitlement, etc...) to return. If null or empty, all access items types are returned + * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getHistoricalIdentityEvents: function (id, from, eventTypes, accessItemTypes, limit, offset, count, axiosOptions) { + return localVarFp.getHistoricalIdentityEvents(id, from, eventTypes, accessItemTypes, limit, offset, count, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This method retrieves a specified identity snapshot at a given date Requires authorization scope of \'idn:identity-history:read\' + * @summary Gets an identity snapshot at a given date + * @param {string} id The identity id + * @param {string} date The specified date + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getIdentitySnapshot: function (id, date, axiosOptions) { + return localVarFp.getIdentitySnapshot(id, date, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This method gets the summary for the event count for a specific identity by month/day Requires authorization scope of \'idn:identity-history:read\' + * @summary Gets the summary for the event count for a specific identity + * @param {string} id The identity id + * @param {string} [before] The date before which snapshot summary is required + * @param {'day' | 'month'} [interval] The interval indicating day or month. Defaults to month if not specified + * @param {string} [timeZone] The time zone. Defaults to UTC if not provided + * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getIdentitySnapshotSummary: function (id, before, interval, timeZone, limit, offset, count, axiosOptions) { + return localVarFp.getIdentitySnapshotSummary(id, before, interval, timeZone, limit, offset, count, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This method retrieves start date of the identity Requires authorization scope of \'idn:identity-history:read\' + * @summary Gets the start date of the identity + * @param {string} id The identity id + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getIdentityStartDate: function (id, axiosOptions) { + return localVarFp.getIdentityStartDate(id, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This gets the list of identities for the customer. This list end point does not support count=true request param. The total count of identities would never be returned even if the count param is specified in the request Requires authorization scope of \'idn:identity-history:read\' + * @summary Lists all the identities + * @param {string} [startsWithQuery] This param is used for starts-with search for first, last and display name of the identity + * @param {boolean} [isDeleted] Indicates if we want to only list down deleted identities or not. + * @param {boolean} [isActive] Indicates if we want to only list active or inactive identities. + * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + listHistoricalIdentities: function (startsWithQuery, isDeleted, isActive, limit, offset, axiosOptions) { + return localVarFp.listHistoricalIdentities(startsWithQuery, isDeleted, isActive, limit, offset, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This method retrieves a list of access item for the identity filtered by the access item type Requires authorization scope of \'idn:identity-history:read\' + * @summary Gets a list of access items for the identity filtered by item type + * @param {string} id The identity id + * @param {string} [type] The type of access item for the identity. If not provided, it defaults to account + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + listIdentityAccessItems: function (id, type, axiosOptions) { + return localVarFp.listIdentityAccessItems(id, type, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This method retrieves the list of identity access items at a given date filterd by item type Requires authorization scope of \'idn:identity-history:read\' + * @summary Gets the list of identity access items at a given date filterd by item type + * @param {string} id The identity id + * @param {string} date The specified date + * @param {string} [type] The access item type + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + listIdentitySnapshotAccessItems: function (id, date, type, axiosOptions) { + return localVarFp.listIdentitySnapshotAccessItems(id, date, type, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This method retrieves all the snapshots for the identity Requires authorization scope of \'idn:identity-history:read\' + * @summary Lists all the snapshots for the identity + * @param {string} id The identity id + * @param {string} [start] The specified start date + * @param {'day' | 'month'} [interval] The interval indicating the range in day or month for the specified interval-name + * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + listIdentitySnapshots: function (id, start, interval, limit, offset, count, axiosOptions) { + return localVarFp.listIdentitySnapshots(id, start, interval, limit, offset, count, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + }; + }; + exports.IdentityHistoryBetaApiFactory = IdentityHistoryBetaApiFactory; + /** + * IdentityHistoryBetaApi - object-oriented interface + * @export + * @class IdentityHistoryBetaApi + * @extends {BaseAPI} + */ + var IdentityHistoryBetaApi = /** @class */ (function (_super) { + __extends(IdentityHistoryBetaApi, _super); + function IdentityHistoryBetaApi() { + return _super !== null && _super.apply(this, arguments) || this; + } + /** + * This method gets a difference of count for each access item types for the given identity between 2 snapshots Requires authorization scope of \'idn:identity-history:read\' + * @summary Gets a difference of count for each access item types for the given identity between 2 snapshots + * @param {IdentityHistoryBetaApiCompareIdentitySnapshotsRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof IdentityHistoryBetaApi + */ + IdentityHistoryBetaApi.prototype.compareIdentitySnapshots = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.IdentityHistoryBetaApiFp)(this.configuration).compareIdentitySnapshots(requestParameters.id, requestParameters.snapshot1, requestParameters.snapshot2, requestParameters.accessItemTypes, requestParameters.limit, requestParameters.offset, requestParameters.count, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This method gets a list of differences of specific accessType for the given identity between 2 snapshots Requires authorization scope of \'idn:identity-history:read\' + * @summary Gets a list of differences of specific accessType for the given identity between 2 snapshots + * @param {IdentityHistoryBetaApiCompareIdentitySnapshotsAccessTypeRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof IdentityHistoryBetaApi + */ + IdentityHistoryBetaApi.prototype.compareIdentitySnapshotsAccessType = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.IdentityHistoryBetaApiFp)(this.configuration).compareIdentitySnapshotsAccessType(requestParameters.id, requestParameters.accessType, requestParameters.accessAssociated, requestParameters.snapshot1, requestParameters.snapshot2, requestParameters.limit, requestParameters.offset, requestParameters.count, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This method retrieves a specified identity Requires authorization scope of \'idn:identity-history:read\' + * @summary Get latest snapshot of identity + * @param {IdentityHistoryBetaApiGetHistoricalIdentityRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof IdentityHistoryBetaApi + */ + IdentityHistoryBetaApi.prototype.getHistoricalIdentity = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.IdentityHistoryBetaApiFp)(this.configuration).getHistoricalIdentity(requestParameters.id, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This method retrieves all access events for the identity Requires authorization scope of \'idn:identity-history:read\' + * @summary Lists all events for the given identity + * @param {IdentityHistoryBetaApiGetHistoricalIdentityEventsRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof IdentityHistoryBetaApi + */ + IdentityHistoryBetaApi.prototype.getHistoricalIdentityEvents = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.IdentityHistoryBetaApiFp)(this.configuration).getHistoricalIdentityEvents(requestParameters.id, requestParameters.from, requestParameters.eventTypes, requestParameters.accessItemTypes, requestParameters.limit, requestParameters.offset, requestParameters.count, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This method retrieves a specified identity snapshot at a given date Requires authorization scope of \'idn:identity-history:read\' + * @summary Gets an identity snapshot at a given date + * @param {IdentityHistoryBetaApiGetIdentitySnapshotRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof IdentityHistoryBetaApi + */ + IdentityHistoryBetaApi.prototype.getIdentitySnapshot = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.IdentityHistoryBetaApiFp)(this.configuration).getIdentitySnapshot(requestParameters.id, requestParameters.date, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This method gets the summary for the event count for a specific identity by month/day Requires authorization scope of \'idn:identity-history:read\' + * @summary Gets the summary for the event count for a specific identity + * @param {IdentityHistoryBetaApiGetIdentitySnapshotSummaryRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof IdentityHistoryBetaApi + */ + IdentityHistoryBetaApi.prototype.getIdentitySnapshotSummary = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.IdentityHistoryBetaApiFp)(this.configuration).getIdentitySnapshotSummary(requestParameters.id, requestParameters.before, requestParameters.interval, requestParameters.timeZone, requestParameters.limit, requestParameters.offset, requestParameters.count, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This method retrieves start date of the identity Requires authorization scope of \'idn:identity-history:read\' + * @summary Gets the start date of the identity + * @param {IdentityHistoryBetaApiGetIdentityStartDateRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof IdentityHistoryBetaApi + */ + IdentityHistoryBetaApi.prototype.getIdentityStartDate = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.IdentityHistoryBetaApiFp)(this.configuration).getIdentityStartDate(requestParameters.id, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This gets the list of identities for the customer. This list end point does not support count=true request param. The total count of identities would never be returned even if the count param is specified in the request Requires authorization scope of \'idn:identity-history:read\' + * @summary Lists all the identities + * @param {IdentityHistoryBetaApiListHistoricalIdentitiesRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof IdentityHistoryBetaApi + */ + IdentityHistoryBetaApi.prototype.listHistoricalIdentities = function (requestParameters, axiosOptions) { + var _this = this; + if (requestParameters === void 0) { requestParameters = {}; } + return (0, exports.IdentityHistoryBetaApiFp)(this.configuration).listHistoricalIdentities(requestParameters.startsWithQuery, requestParameters.isDeleted, requestParameters.isActive, requestParameters.limit, requestParameters.offset, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This method retrieves a list of access item for the identity filtered by the access item type Requires authorization scope of \'idn:identity-history:read\' + * @summary Gets a list of access items for the identity filtered by item type + * @param {IdentityHistoryBetaApiListIdentityAccessItemsRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof IdentityHistoryBetaApi + */ + IdentityHistoryBetaApi.prototype.listIdentityAccessItems = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.IdentityHistoryBetaApiFp)(this.configuration).listIdentityAccessItems(requestParameters.id, requestParameters.type, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This method retrieves the list of identity access items at a given date filterd by item type Requires authorization scope of \'idn:identity-history:read\' + * @summary Gets the list of identity access items at a given date filterd by item type + * @param {IdentityHistoryBetaApiListIdentitySnapshotAccessItemsRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof IdentityHistoryBetaApi + */ + IdentityHistoryBetaApi.prototype.listIdentitySnapshotAccessItems = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.IdentityHistoryBetaApiFp)(this.configuration).listIdentitySnapshotAccessItems(requestParameters.id, requestParameters.date, requestParameters.type, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This method retrieves all the snapshots for the identity Requires authorization scope of \'idn:identity-history:read\' + * @summary Lists all the snapshots for the identity + * @param {IdentityHistoryBetaApiListIdentitySnapshotsRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof IdentityHistoryBetaApi + */ + IdentityHistoryBetaApi.prototype.listIdentitySnapshots = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.IdentityHistoryBetaApiFp)(this.configuration).listIdentitySnapshots(requestParameters.id, requestParameters.start, requestParameters.interval, requestParameters.limit, requestParameters.offset, requestParameters.count, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + return IdentityHistoryBetaApi; + }(base_1.BaseAPI)); + exports.IdentityHistoryBetaApi = IdentityHistoryBetaApi; + /** + * IdentityProfilesBetaApi - axios parameter creator + * @export + */ + var IdentityProfilesBetaApiAxiosParamCreator = function (configuration) { + var _this = this; + return { + /** + * This creates an Identity Profile A token with ORG_ADMIN authority is required to call this API to create an Identity Profile. + * @summary Create an Identity Profile + * @param {IdentityProfileBeta} identityProfileBeta + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + createIdentityProfile: function (identityProfileBeta, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'identityProfileBeta' is not null or undefined + (0, common_1.assertParamExists)('createIdentityProfile', 'identityProfileBeta', identityProfileBeta); + localVarPath = "/identity-profiles"; + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + localVarHeaderParameter['Content-Type'] = 'application/json'; + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(identityProfileBeta, localVarRequestOptions, configuration); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This deletes an Identity Profile based on ID. On success, this endpoint will return a reference to the bulk delete task result. A token with ORG_ADMIN authority is required to call this API. The following rights are required to access this endpoint: idn:identity-profile:delete + * @summary Delete an Identity Profile + * @param {string} identityProfileId The Identity Profile ID. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + deleteIdentityProfile: function (identityProfileId, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'identityProfileId' is not null or undefined + (0, common_1.assertParamExists)('deleteIdentityProfile', 'identityProfileId', identityProfileId); + localVarPath = "/identity-profiles/{identity-profile-id}" + .replace("{".concat("identity-profile-id", "}"), encodeURIComponent(String(identityProfileId))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'DELETE' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This deletes multiple Identity Profiles via a list of supplied IDs. On success, this endpoint will return a reference to the bulk delete task result. A token with ORG_ADMIN authority is required to call this API. The following rights are required to access this endpoint: idn:identity-profile:delete + * @summary Delete Identity Profiles + * @param {Array} requestBody Identity Profile bulk delete request body. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + deleteIdentityProfiles: function (requestBody, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'requestBody' is not null or undefined + (0, common_1.assertParamExists)('deleteIdentityProfiles', 'requestBody', requestBody); + localVarPath = "/identity-profiles/bulk-delete"; + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + localVarHeaderParameter['Content-Type'] = 'application/json'; + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(requestBody, localVarRequestOptions, configuration); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This exports existing identity profiles in the format specified by the sp-config service. + * @summary Export Identity Profiles + * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **id**: *eq, ne* **name**: *eq, ne* **priority**: *eq, ne* + * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **id, name, priority** + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + exportIdentityProfiles: function (limit, offset, count, filters, sorters, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + localVarPath = "/identity-profiles/export"; + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + if (limit !== undefined) { + localVarQueryParameter['limit'] = limit; + } + if (offset !== undefined) { + localVarQueryParameter['offset'] = offset; + } + if (count !== undefined) { + localVarQueryParameter['count'] = count; + } + if (filters !== undefined) { + localVarQueryParameter['filters'] = filters; + } + if (sorters !== undefined) { + localVarQueryParameter['sorters'] = sorters; + } + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This generates a non-persisted IdentityDetails object that will represent as the preview of the identities attribute when the given policy\'s attribute config is applied. A token with ORG_ADMIN authority is required to call this API to generate an identity preview. + * @summary Generate Identity Profile Preview + * @param {IdentityPreviewRequestBeta} identityPreviewRequestBeta Identity Preview request body. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + generateIdentityPreview: function (identityPreviewRequestBeta, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'identityPreviewRequestBeta' is not null or undefined + (0, common_1.assertParamExists)('generateIdentityPreview', 'identityPreviewRequestBeta', identityPreviewRequestBeta); + localVarPath = "/identity-profiles/identity-preview"; + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + localVarHeaderParameter['Content-Type'] = 'application/json'; + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(identityPreviewRequestBeta, localVarRequestOptions, configuration); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This returns the default identity attribute config A token with ORG_ADMIN authority is required to call this API to get the default identity attribute config. + * @summary Default identity attribute config + * @param {string} identityProfileId The Identity Profile ID + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getDefaultIdentityAttributeConfig: function (identityProfileId, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'identityProfileId' is not null or undefined + (0, common_1.assertParamExists)('getDefaultIdentityAttributeConfig', 'identityProfileId', identityProfileId); + localVarPath = "/identity-profiles/{identity-profile-id}/default-identity-attribute-config" + .replace("{".concat("identity-profile-id", "}"), encodeURIComponent(String(identityProfileId))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This returns a single Identity Profile based on ID. A token with ORG_ADMIN or API authority is required to call this API. + * @summary Gets a single Identity Profile + * @param {string} identityProfileId The Identity Profile ID + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getIdentityProfile: function (identityProfileId, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'identityProfileId' is not null or undefined + (0, common_1.assertParamExists)('getIdentityProfile', 'identityProfileId', identityProfileId); + localVarPath = "/identity-profiles/{identity-profile-id}" + .replace("{".concat("identity-profile-id", "}"), encodeURIComponent(String(identityProfileId))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This imports previously exported identity profiles. + * @summary Import Identity Profiles + * @param {Array} identityProfileExportedObjectBeta Previously exported Identity Profiles. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + importIdentityProfiles: function (identityProfileExportedObjectBeta, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'identityProfileExportedObjectBeta' is not null or undefined + (0, common_1.assertParamExists)('importIdentityProfiles', 'identityProfileExportedObjectBeta', identityProfileExportedObjectBeta); + localVarPath = "/identity-profiles/import"; + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + localVarHeaderParameter['Content-Type'] = 'application/json'; + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(identityProfileExportedObjectBeta, localVarRequestOptions, configuration); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This returns a list of Identity Profiles based on the specified query parameters. A token with ORG_ADMIN or API authority is required to call this API to get a list of Identity Profiles. + * @summary Identity Profiles list + * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **id**: *eq, ne, co, ge, gt, in, le, lt, isnull, sw* **name**: *eq, ne, co, in, le, lt, isnull, sw* **priority**: *eq, ne* + * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **id, name, priority, created, modified, owner.id, owner.name** + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + listIdentityProfiles: function (limit, offset, count, filters, sorters, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + localVarPath = "/identity-profiles"; + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + if (limit !== undefined) { + localVarQueryParameter['limit'] = limit; + } + if (offset !== undefined) { + localVarQueryParameter['offset'] = offset; + } + if (count !== undefined) { + localVarQueryParameter['count'] = count; + } + if (filters !== undefined) { + localVarQueryParameter['filters'] = filters; + } + if (sorters !== undefined) { + localVarQueryParameter['sorters'] = sorters; + } + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * Process identities under the profile A token with ORG_ADMIN authority is required to call this API. + * @summary Process identities under profile + * @param {string} identityProfileId The Identity Profile ID to be processed + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + syncIdentityProfile: function (identityProfileId, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'identityProfileId' is not null or undefined + (0, common_1.assertParamExists)('syncIdentityProfile', 'identityProfileId', identityProfileId); + localVarPath = "/identity-profiles/{identity-profile-id}/process-identities" + .replace("{".concat("identity-profile-id", "}"), encodeURIComponent(String(identityProfileId))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This updates the specified Identity Profile. A token with ORG_ADMIN authority is required to call this API to update the Identity Profile. Some fields of the Schema cannot be updated. These fields are listed below. * id * name * created * modified + * @summary Update the Identity Profile + * @param {string} identityProfileId The Identity Profile ID + * @param {Array} jsonPatchOperationBeta A list of Identity Profile update operations according to the [JSON Patch](https://tools.ietf.org/html/rfc6902) standard. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + updateIdentityProfile: function (identityProfileId, jsonPatchOperationBeta, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'identityProfileId' is not null or undefined + (0, common_1.assertParamExists)('updateIdentityProfile', 'identityProfileId', identityProfileId); + // verify required parameter 'jsonPatchOperationBeta' is not null or undefined + (0, common_1.assertParamExists)('updateIdentityProfile', 'jsonPatchOperationBeta', jsonPatchOperationBeta); + localVarPath = "/identity-profiles/{identity-profile-id}" + .replace("{".concat("identity-profile-id", "}"), encodeURIComponent(String(identityProfileId))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'PATCH' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + localVarHeaderParameter['Content-Type'] = 'application/json-patch+json'; + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(jsonPatchOperationBeta, localVarRequestOptions, configuration); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + }; + }; + exports.IdentityProfilesBetaApiAxiosParamCreator = IdentityProfilesBetaApiAxiosParamCreator; + /** + * IdentityProfilesBetaApi - functional programming interface + * @export + */ + var IdentityProfilesBetaApiFp = function (configuration) { + var localVarAxiosParamCreator = (0, exports.IdentityProfilesBetaApiAxiosParamCreator)(configuration); + return { + /** + * This creates an Identity Profile A token with ORG_ADMIN authority is required to call this API to create an Identity Profile. + * @summary Create an Identity Profile + * @param {IdentityProfileBeta} identityProfileBeta + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + createIdentityProfile: function (identityProfileBeta, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.createIdentityProfile(identityProfileBeta, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This deletes an Identity Profile based on ID. On success, this endpoint will return a reference to the bulk delete task result. A token with ORG_ADMIN authority is required to call this API. The following rights are required to access this endpoint: idn:identity-profile:delete + * @summary Delete an Identity Profile + * @param {string} identityProfileId The Identity Profile ID. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + deleteIdentityProfile: function (identityProfileId, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.deleteIdentityProfile(identityProfileId, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This deletes multiple Identity Profiles via a list of supplied IDs. On success, this endpoint will return a reference to the bulk delete task result. A token with ORG_ADMIN authority is required to call this API. The following rights are required to access this endpoint: idn:identity-profile:delete + * @summary Delete Identity Profiles + * @param {Array} requestBody Identity Profile bulk delete request body. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + deleteIdentityProfiles: function (requestBody, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.deleteIdentityProfiles(requestBody, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This exports existing identity profiles in the format specified by the sp-config service. + * @summary Export Identity Profiles + * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **id**: *eq, ne* **name**: *eq, ne* **priority**: *eq, ne* + * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **id, name, priority** + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + exportIdentityProfiles: function (limit, offset, count, filters, sorters, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.exportIdentityProfiles(limit, offset, count, filters, sorters, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This generates a non-persisted IdentityDetails object that will represent as the preview of the identities attribute when the given policy\'s attribute config is applied. A token with ORG_ADMIN authority is required to call this API to generate an identity preview. + * @summary Generate Identity Profile Preview + * @param {IdentityPreviewRequestBeta} identityPreviewRequestBeta Identity Preview request body. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + generateIdentityPreview: function (identityPreviewRequestBeta, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.generateIdentityPreview(identityPreviewRequestBeta, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This returns the default identity attribute config A token with ORG_ADMIN authority is required to call this API to get the default identity attribute config. + * @summary Default identity attribute config + * @param {string} identityProfileId The Identity Profile ID + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getDefaultIdentityAttributeConfig: function (identityProfileId, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.getDefaultIdentityAttributeConfig(identityProfileId, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This returns a single Identity Profile based on ID. A token with ORG_ADMIN or API authority is required to call this API. + * @summary Gets a single Identity Profile + * @param {string} identityProfileId The Identity Profile ID + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getIdentityProfile: function (identityProfileId, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.getIdentityProfile(identityProfileId, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This imports previously exported identity profiles. + * @summary Import Identity Profiles + * @param {Array} identityProfileExportedObjectBeta Previously exported Identity Profiles. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + importIdentityProfiles: function (identityProfileExportedObjectBeta, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.importIdentityProfiles(identityProfileExportedObjectBeta, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This returns a list of Identity Profiles based on the specified query parameters. A token with ORG_ADMIN or API authority is required to call this API to get a list of Identity Profiles. + * @summary Identity Profiles list + * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **id**: *eq, ne, co, ge, gt, in, le, lt, isnull, sw* **name**: *eq, ne, co, in, le, lt, isnull, sw* **priority**: *eq, ne* + * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **id, name, priority, created, modified, owner.id, owner.name** + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + listIdentityProfiles: function (limit, offset, count, filters, sorters, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.listIdentityProfiles(limit, offset, count, filters, sorters, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * Process identities under the profile A token with ORG_ADMIN authority is required to call this API. + * @summary Process identities under profile + * @param {string} identityProfileId The Identity Profile ID to be processed + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + syncIdentityProfile: function (identityProfileId, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.syncIdentityProfile(identityProfileId, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This updates the specified Identity Profile. A token with ORG_ADMIN authority is required to call this API to update the Identity Profile. Some fields of the Schema cannot be updated. These fields are listed below. * id * name * created * modified + * @summary Update the Identity Profile + * @param {string} identityProfileId The Identity Profile ID + * @param {Array} jsonPatchOperationBeta A list of Identity Profile update operations according to the [JSON Patch](https://tools.ietf.org/html/rfc6902) standard. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + updateIdentityProfile: function (identityProfileId, jsonPatchOperationBeta, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.updateIdentityProfile(identityProfileId, jsonPatchOperationBeta, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + }; + }; + exports.IdentityProfilesBetaApiFp = IdentityProfilesBetaApiFp; + /** + * IdentityProfilesBetaApi - factory interface + * @export + */ + var IdentityProfilesBetaApiFactory = function (configuration, basePath, axios) { + var localVarFp = (0, exports.IdentityProfilesBetaApiFp)(configuration); + return { + /** + * This creates an Identity Profile A token with ORG_ADMIN authority is required to call this API to create an Identity Profile. + * @summary Create an Identity Profile + * @param {IdentityProfileBeta} identityProfileBeta + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + createIdentityProfile: function (identityProfileBeta, axiosOptions) { + return localVarFp.createIdentityProfile(identityProfileBeta, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This deletes an Identity Profile based on ID. On success, this endpoint will return a reference to the bulk delete task result. A token with ORG_ADMIN authority is required to call this API. The following rights are required to access this endpoint: idn:identity-profile:delete + * @summary Delete an Identity Profile + * @param {string} identityProfileId The Identity Profile ID. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + deleteIdentityProfile: function (identityProfileId, axiosOptions) { + return localVarFp.deleteIdentityProfile(identityProfileId, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This deletes multiple Identity Profiles via a list of supplied IDs. On success, this endpoint will return a reference to the bulk delete task result. A token with ORG_ADMIN authority is required to call this API. The following rights are required to access this endpoint: idn:identity-profile:delete + * @summary Delete Identity Profiles + * @param {Array} requestBody Identity Profile bulk delete request body. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + deleteIdentityProfiles: function (requestBody, axiosOptions) { + return localVarFp.deleteIdentityProfiles(requestBody, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This exports existing identity profiles in the format specified by the sp-config service. + * @summary Export Identity Profiles + * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **id**: *eq, ne* **name**: *eq, ne* **priority**: *eq, ne* + * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **id, name, priority** + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + exportIdentityProfiles: function (limit, offset, count, filters, sorters, axiosOptions) { + return localVarFp.exportIdentityProfiles(limit, offset, count, filters, sorters, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This generates a non-persisted IdentityDetails object that will represent as the preview of the identities attribute when the given policy\'s attribute config is applied. A token with ORG_ADMIN authority is required to call this API to generate an identity preview. + * @summary Generate Identity Profile Preview + * @param {IdentityPreviewRequestBeta} identityPreviewRequestBeta Identity Preview request body. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + generateIdentityPreview: function (identityPreviewRequestBeta, axiosOptions) { + return localVarFp.generateIdentityPreview(identityPreviewRequestBeta, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This returns the default identity attribute config A token with ORG_ADMIN authority is required to call this API to get the default identity attribute config. + * @summary Default identity attribute config + * @param {string} identityProfileId The Identity Profile ID + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getDefaultIdentityAttributeConfig: function (identityProfileId, axiosOptions) { + return localVarFp.getDefaultIdentityAttributeConfig(identityProfileId, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This returns a single Identity Profile based on ID. A token with ORG_ADMIN or API authority is required to call this API. + * @summary Gets a single Identity Profile + * @param {string} identityProfileId The Identity Profile ID + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getIdentityProfile: function (identityProfileId, axiosOptions) { + return localVarFp.getIdentityProfile(identityProfileId, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This imports previously exported identity profiles. + * @summary Import Identity Profiles + * @param {Array} identityProfileExportedObjectBeta Previously exported Identity Profiles. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + importIdentityProfiles: function (identityProfileExportedObjectBeta, axiosOptions) { + return localVarFp.importIdentityProfiles(identityProfileExportedObjectBeta, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This returns a list of Identity Profiles based on the specified query parameters. A token with ORG_ADMIN or API authority is required to call this API to get a list of Identity Profiles. + * @summary Identity Profiles list + * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **id**: *eq, ne, co, ge, gt, in, le, lt, isnull, sw* **name**: *eq, ne, co, in, le, lt, isnull, sw* **priority**: *eq, ne* + * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **id, name, priority, created, modified, owner.id, owner.name** + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + listIdentityProfiles: function (limit, offset, count, filters, sorters, axiosOptions) { + return localVarFp.listIdentityProfiles(limit, offset, count, filters, sorters, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * Process identities under the profile A token with ORG_ADMIN authority is required to call this API. + * @summary Process identities under profile + * @param {string} identityProfileId The Identity Profile ID to be processed + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + syncIdentityProfile: function (identityProfileId, axiosOptions) { + return localVarFp.syncIdentityProfile(identityProfileId, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This updates the specified Identity Profile. A token with ORG_ADMIN authority is required to call this API to update the Identity Profile. Some fields of the Schema cannot be updated. These fields are listed below. * id * name * created * modified + * @summary Update the Identity Profile + * @param {string} identityProfileId The Identity Profile ID + * @param {Array} jsonPatchOperationBeta A list of Identity Profile update operations according to the [JSON Patch](https://tools.ietf.org/html/rfc6902) standard. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + updateIdentityProfile: function (identityProfileId, jsonPatchOperationBeta, axiosOptions) { + return localVarFp.updateIdentityProfile(identityProfileId, jsonPatchOperationBeta, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + }; + }; + exports.IdentityProfilesBetaApiFactory = IdentityProfilesBetaApiFactory; + /** + * IdentityProfilesBetaApi - object-oriented interface + * @export + * @class IdentityProfilesBetaApi + * @extends {BaseAPI} + */ + var IdentityProfilesBetaApi = /** @class */ (function (_super) { + __extends(IdentityProfilesBetaApi, _super); + function IdentityProfilesBetaApi() { + return _super !== null && _super.apply(this, arguments) || this; + } + /** + * This creates an Identity Profile A token with ORG_ADMIN authority is required to call this API to create an Identity Profile. + * @summary Create an Identity Profile + * @param {IdentityProfilesBetaApiCreateIdentityProfileRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof IdentityProfilesBetaApi + */ + IdentityProfilesBetaApi.prototype.createIdentityProfile = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.IdentityProfilesBetaApiFp)(this.configuration).createIdentityProfile(requestParameters.identityProfileBeta, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This deletes an Identity Profile based on ID. On success, this endpoint will return a reference to the bulk delete task result. A token with ORG_ADMIN authority is required to call this API. The following rights are required to access this endpoint: idn:identity-profile:delete + * @summary Delete an Identity Profile + * @param {IdentityProfilesBetaApiDeleteIdentityProfileRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof IdentityProfilesBetaApi + */ + IdentityProfilesBetaApi.prototype.deleteIdentityProfile = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.IdentityProfilesBetaApiFp)(this.configuration).deleteIdentityProfile(requestParameters.identityProfileId, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This deletes multiple Identity Profiles via a list of supplied IDs. On success, this endpoint will return a reference to the bulk delete task result. A token with ORG_ADMIN authority is required to call this API. The following rights are required to access this endpoint: idn:identity-profile:delete + * @summary Delete Identity Profiles + * @param {IdentityProfilesBetaApiDeleteIdentityProfilesRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof IdentityProfilesBetaApi + */ + IdentityProfilesBetaApi.prototype.deleteIdentityProfiles = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.IdentityProfilesBetaApiFp)(this.configuration).deleteIdentityProfiles(requestParameters.requestBody, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This exports existing identity profiles in the format specified by the sp-config service. + * @summary Export Identity Profiles + * @param {IdentityProfilesBetaApiExportIdentityProfilesRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof IdentityProfilesBetaApi + */ + IdentityProfilesBetaApi.prototype.exportIdentityProfiles = function (requestParameters, axiosOptions) { + var _this = this; + if (requestParameters === void 0) { requestParameters = {}; } + return (0, exports.IdentityProfilesBetaApiFp)(this.configuration).exportIdentityProfiles(requestParameters.limit, requestParameters.offset, requestParameters.count, requestParameters.filters, requestParameters.sorters, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This generates a non-persisted IdentityDetails object that will represent as the preview of the identities attribute when the given policy\'s attribute config is applied. A token with ORG_ADMIN authority is required to call this API to generate an identity preview. + * @summary Generate Identity Profile Preview + * @param {IdentityProfilesBetaApiGenerateIdentityPreviewRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof IdentityProfilesBetaApi + */ + IdentityProfilesBetaApi.prototype.generateIdentityPreview = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.IdentityProfilesBetaApiFp)(this.configuration).generateIdentityPreview(requestParameters.identityPreviewRequestBeta, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This returns the default identity attribute config A token with ORG_ADMIN authority is required to call this API to get the default identity attribute config. + * @summary Default identity attribute config + * @param {IdentityProfilesBetaApiGetDefaultIdentityAttributeConfigRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof IdentityProfilesBetaApi + */ + IdentityProfilesBetaApi.prototype.getDefaultIdentityAttributeConfig = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.IdentityProfilesBetaApiFp)(this.configuration).getDefaultIdentityAttributeConfig(requestParameters.identityProfileId, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This returns a single Identity Profile based on ID. A token with ORG_ADMIN or API authority is required to call this API. + * @summary Gets a single Identity Profile + * @param {IdentityProfilesBetaApiGetIdentityProfileRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof IdentityProfilesBetaApi + */ + IdentityProfilesBetaApi.prototype.getIdentityProfile = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.IdentityProfilesBetaApiFp)(this.configuration).getIdentityProfile(requestParameters.identityProfileId, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This imports previously exported identity profiles. + * @summary Import Identity Profiles + * @param {IdentityProfilesBetaApiImportIdentityProfilesRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof IdentityProfilesBetaApi + */ + IdentityProfilesBetaApi.prototype.importIdentityProfiles = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.IdentityProfilesBetaApiFp)(this.configuration).importIdentityProfiles(requestParameters.identityProfileExportedObjectBeta, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This returns a list of Identity Profiles based on the specified query parameters. A token with ORG_ADMIN or API authority is required to call this API to get a list of Identity Profiles. + * @summary Identity Profiles list + * @param {IdentityProfilesBetaApiListIdentityProfilesRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof IdentityProfilesBetaApi + */ + IdentityProfilesBetaApi.prototype.listIdentityProfiles = function (requestParameters, axiosOptions) { + var _this = this; + if (requestParameters === void 0) { requestParameters = {}; } + return (0, exports.IdentityProfilesBetaApiFp)(this.configuration).listIdentityProfiles(requestParameters.limit, requestParameters.offset, requestParameters.count, requestParameters.filters, requestParameters.sorters, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * Process identities under the profile A token with ORG_ADMIN authority is required to call this API. + * @summary Process identities under profile + * @param {IdentityProfilesBetaApiSyncIdentityProfileRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof IdentityProfilesBetaApi + */ + IdentityProfilesBetaApi.prototype.syncIdentityProfile = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.IdentityProfilesBetaApiFp)(this.configuration).syncIdentityProfile(requestParameters.identityProfileId, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This updates the specified Identity Profile. A token with ORG_ADMIN authority is required to call this API to update the Identity Profile. Some fields of the Schema cannot be updated. These fields are listed below. * id * name * created * modified + * @summary Update the Identity Profile + * @param {IdentityProfilesBetaApiUpdateIdentityProfileRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof IdentityProfilesBetaApi + */ + IdentityProfilesBetaApi.prototype.updateIdentityProfile = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.IdentityProfilesBetaApiFp)(this.configuration).updateIdentityProfile(requestParameters.identityProfileId, requestParameters.jsonPatchOperationBeta, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + return IdentityProfilesBetaApi; + }(base_1.BaseAPI)); + exports.IdentityProfilesBetaApi = IdentityProfilesBetaApi; + /** + * LifecycleStatesBetaApi - axios parameter creator + * @export + */ + var LifecycleStatesBetaApiAxiosParamCreator = function (configuration) { + var _this = this; + return { + /** + * This endpoint returns a lifecycle state. A token with ORG_ADMIN or API authority is required to call this API. + * @summary Lifecycle State + * @param {string} identityProfileId Identity Profile ID + * @param {string} lifecycleStateId Lifecycle State ID + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + listLifecycleStates: function (identityProfileId, lifecycleStateId, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'identityProfileId' is not null or undefined + (0, common_1.assertParamExists)('listLifecycleStates', 'identityProfileId', identityProfileId); + // verify required parameter 'lifecycleStateId' is not null or undefined + (0, common_1.assertParamExists)('listLifecycleStates', 'lifecycleStateId', lifecycleStateId); + localVarPath = "/identity-profiles/{identity-profile-id}/lifecycle-states/{lifecycle-state-id}" + .replace("{".concat("identity-profile-id", "}"), encodeURIComponent(String(identityProfileId))) + .replace("{".concat("lifecycle-state-id", "}"), encodeURIComponent(String(lifecycleStateId))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This API updates individual lifecycle state fields using the [JSON Patch](https://tools.ietf.org/html/rfc6902) standard. A token with ORG_ADMIN or API authority is required to call this API. + * @summary Update Lifecycle State + * @param {string} identityProfileId Identity Profile ID + * @param {string} lifecycleStateId Lifecycle State ID + * @param {Array} jsonPatchOperationBeta A list of lifecycle state update operations according to the [JSON Patch](https://tools.ietf.org/html/rfc6902) standard. The following fields can be updated: * enabled * description * accountActions * accessProfileIds * emailNotificationOption + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + updateLifecycleStates: function (identityProfileId, lifecycleStateId, jsonPatchOperationBeta, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'identityProfileId' is not null or undefined + (0, common_1.assertParamExists)('updateLifecycleStates', 'identityProfileId', identityProfileId); + // verify required parameter 'lifecycleStateId' is not null or undefined + (0, common_1.assertParamExists)('updateLifecycleStates', 'lifecycleStateId', lifecycleStateId); + // verify required parameter 'jsonPatchOperationBeta' is not null or undefined + (0, common_1.assertParamExists)('updateLifecycleStates', 'jsonPatchOperationBeta', jsonPatchOperationBeta); + localVarPath = "/identity-profiles/{identity-profile-id}/lifecycle-states/{lifecycle-state-id}" + .replace("{".concat("identity-profile-id", "}"), encodeURIComponent(String(identityProfileId))) + .replace("{".concat("lifecycle-state-id", "}"), encodeURIComponent(String(lifecycleStateId))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'PATCH' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + localVarHeaderParameter['Content-Type'] = 'application/json-patch+json'; + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(jsonPatchOperationBeta, localVarRequestOptions, configuration); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + }; + }; + exports.LifecycleStatesBetaApiAxiosParamCreator = LifecycleStatesBetaApiAxiosParamCreator; + /** + * LifecycleStatesBetaApi - functional programming interface + * @export + */ + var LifecycleStatesBetaApiFp = function (configuration) { + var localVarAxiosParamCreator = (0, exports.LifecycleStatesBetaApiAxiosParamCreator)(configuration); + return { + /** + * This endpoint returns a lifecycle state. A token with ORG_ADMIN or API authority is required to call this API. + * @summary Lifecycle State + * @param {string} identityProfileId Identity Profile ID + * @param {string} lifecycleStateId Lifecycle State ID + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + listLifecycleStates: function (identityProfileId, lifecycleStateId, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.listLifecycleStates(identityProfileId, lifecycleStateId, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This API updates individual lifecycle state fields using the [JSON Patch](https://tools.ietf.org/html/rfc6902) standard. A token with ORG_ADMIN or API authority is required to call this API. + * @summary Update Lifecycle State + * @param {string} identityProfileId Identity Profile ID + * @param {string} lifecycleStateId Lifecycle State ID + * @param {Array} jsonPatchOperationBeta A list of lifecycle state update operations according to the [JSON Patch](https://tools.ietf.org/html/rfc6902) standard. The following fields can be updated: * enabled * description * accountActions * accessProfileIds * emailNotificationOption + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + updateLifecycleStates: function (identityProfileId, lifecycleStateId, jsonPatchOperationBeta, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.updateLifecycleStates(identityProfileId, lifecycleStateId, jsonPatchOperationBeta, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + }; + }; + exports.LifecycleStatesBetaApiFp = LifecycleStatesBetaApiFp; + /** + * LifecycleStatesBetaApi - factory interface + * @export + */ + var LifecycleStatesBetaApiFactory = function (configuration, basePath, axios) { + var localVarFp = (0, exports.LifecycleStatesBetaApiFp)(configuration); + return { + /** + * This endpoint returns a lifecycle state. A token with ORG_ADMIN or API authority is required to call this API. + * @summary Lifecycle State + * @param {string} identityProfileId Identity Profile ID + * @param {string} lifecycleStateId Lifecycle State ID + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + listLifecycleStates: function (identityProfileId, lifecycleStateId, axiosOptions) { + return localVarFp.listLifecycleStates(identityProfileId, lifecycleStateId, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This API updates individual lifecycle state fields using the [JSON Patch](https://tools.ietf.org/html/rfc6902) standard. A token with ORG_ADMIN or API authority is required to call this API. + * @summary Update Lifecycle State + * @param {string} identityProfileId Identity Profile ID + * @param {string} lifecycleStateId Lifecycle State ID + * @param {Array} jsonPatchOperationBeta A list of lifecycle state update operations according to the [JSON Patch](https://tools.ietf.org/html/rfc6902) standard. The following fields can be updated: * enabled * description * accountActions * accessProfileIds * emailNotificationOption + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + updateLifecycleStates: function (identityProfileId, lifecycleStateId, jsonPatchOperationBeta, axiosOptions) { + return localVarFp.updateLifecycleStates(identityProfileId, lifecycleStateId, jsonPatchOperationBeta, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + }; + }; + exports.LifecycleStatesBetaApiFactory = LifecycleStatesBetaApiFactory; + /** + * LifecycleStatesBetaApi - object-oriented interface + * @export + * @class LifecycleStatesBetaApi + * @extends {BaseAPI} + */ + var LifecycleStatesBetaApi = /** @class */ (function (_super) { + __extends(LifecycleStatesBetaApi, _super); + function LifecycleStatesBetaApi() { + return _super !== null && _super.apply(this, arguments) || this; + } + /** + * This endpoint returns a lifecycle state. A token with ORG_ADMIN or API authority is required to call this API. + * @summary Lifecycle State + * @param {LifecycleStatesBetaApiListLifecycleStatesRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof LifecycleStatesBetaApi + */ + LifecycleStatesBetaApi.prototype.listLifecycleStates = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.LifecycleStatesBetaApiFp)(this.configuration).listLifecycleStates(requestParameters.identityProfileId, requestParameters.lifecycleStateId, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This API updates individual lifecycle state fields using the [JSON Patch](https://tools.ietf.org/html/rfc6902) standard. A token with ORG_ADMIN or API authority is required to call this API. + * @summary Update Lifecycle State + * @param {LifecycleStatesBetaApiUpdateLifecycleStatesRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof LifecycleStatesBetaApi + */ + LifecycleStatesBetaApi.prototype.updateLifecycleStates = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.LifecycleStatesBetaApiFp)(this.configuration).updateLifecycleStates(requestParameters.identityProfileId, requestParameters.lifecycleStateId, requestParameters.jsonPatchOperationBeta, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + return LifecycleStatesBetaApi; + }(base_1.BaseAPI)); + exports.LifecycleStatesBetaApi = LifecycleStatesBetaApi; + /** + * MFAConfigurationBetaApi - axios parameter creator + * @export + */ + var MFAConfigurationBetaApiAxiosParamCreator = function (configuration) { + var _this = this; + return { + /** + * This API removes the configuration for the specified MFA method. A token with ORG_ADMIN authority is required to call this API. + * @summary Delete MFA method configuration + * @param {string} method The name of the MFA method. The currently supported method names are \'okta-verify\' and \'duo-web\'. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + deleteMFAConfig: function (method, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'method' is not null or undefined + (0, common_1.assertParamExists)('deleteMFAConfig', 'method', method); + localVarPath = "/mfa/{method}/delete" + .replace("{".concat("method", "}"), encodeURIComponent(String(method))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'DELETE' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This API returns the configuration of an Duo MFA method. A token with ORG_ADMIN authority is required to call this API. + * @summary Configuration of Duo MFA method + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getMFADuoConfig: function (axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + localVarPath = "/mfa/duo-web/config"; + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This API returns the configuration of an Okta MFA method. A token with ORG_ADMIN authority is required to call this API. + * @summary Configuration of Okta MFA method + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getMFAOktaConfig: function (axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + localVarPath = "/mfa/okta-verify/config"; + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This API sets the configuration of an Duo MFA method. A token with ORG_ADMIN authority is required to call this API. + * @summary Set Duo MFA configuration + * @param {MfaDuoConfigBeta} mfaDuoConfigBeta + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + setMFADuoConfig: function (mfaDuoConfigBeta, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'mfaDuoConfigBeta' is not null or undefined + (0, common_1.assertParamExists)('setMFADuoConfig', 'mfaDuoConfigBeta', mfaDuoConfigBeta); + localVarPath = "/mfa/duo-web/config"; + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'PUT' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + localVarHeaderParameter['Content-Type'] = 'application/json'; + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(mfaDuoConfigBeta, localVarRequestOptions, configuration); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This API sets the configuration of an Okta MFA method. A token with ORG_ADMIN authority is required to call this API. + * @summary Set Okta MFA configuration + * @param {MfaOktaConfigBeta} mfaOktaConfigBeta + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + setMFAOktaConfig: function (mfaOktaConfigBeta, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'mfaOktaConfigBeta' is not null or undefined + (0, common_1.assertParamExists)('setMFAOktaConfig', 'mfaOktaConfigBeta', mfaOktaConfigBeta); + localVarPath = "/mfa/okta-verify/config"; + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'PUT' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + localVarHeaderParameter['Content-Type'] = 'application/json'; + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(mfaOktaConfigBeta, localVarRequestOptions, configuration); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This API validates that the configuration is valid and will properly authenticate with the MFA provider identified by the method path parameter. A token with ORG_ADMIN authority is required to call this API. + * @summary MFA method\'s test configuration + * @param {string} method The name of the MFA method. The currently supported method names are \'okta-verify\' and \'duo-web\'. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + testMFAConfig: function (method, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'method' is not null or undefined + (0, common_1.assertParamExists)('testMFAConfig', 'method', method); + localVarPath = "/mfa/{method}/test" + .replace("{".concat("method", "}"), encodeURIComponent(String(method))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + }; + }; + exports.MFAConfigurationBetaApiAxiosParamCreator = MFAConfigurationBetaApiAxiosParamCreator; + /** + * MFAConfigurationBetaApi - functional programming interface + * @export + */ + var MFAConfigurationBetaApiFp = function (configuration) { + var localVarAxiosParamCreator = (0, exports.MFAConfigurationBetaApiAxiosParamCreator)(configuration); + return { + /** + * This API removes the configuration for the specified MFA method. A token with ORG_ADMIN authority is required to call this API. + * @summary Delete MFA method configuration + * @param {string} method The name of the MFA method. The currently supported method names are \'okta-verify\' and \'duo-web\'. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + deleteMFAConfig: function (method, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.deleteMFAConfig(method, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This API returns the configuration of an Duo MFA method. A token with ORG_ADMIN authority is required to call this API. + * @summary Configuration of Duo MFA method + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getMFADuoConfig: function (axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.getMFADuoConfig(axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This API returns the configuration of an Okta MFA method. A token with ORG_ADMIN authority is required to call this API. + * @summary Configuration of Okta MFA method + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getMFAOktaConfig: function (axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.getMFAOktaConfig(axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This API sets the configuration of an Duo MFA method. A token with ORG_ADMIN authority is required to call this API. + * @summary Set Duo MFA configuration + * @param {MfaDuoConfigBeta} mfaDuoConfigBeta + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + setMFADuoConfig: function (mfaDuoConfigBeta, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.setMFADuoConfig(mfaDuoConfigBeta, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This API sets the configuration of an Okta MFA method. A token with ORG_ADMIN authority is required to call this API. + * @summary Set Okta MFA configuration + * @param {MfaOktaConfigBeta} mfaOktaConfigBeta + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + setMFAOktaConfig: function (mfaOktaConfigBeta, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.setMFAOktaConfig(mfaOktaConfigBeta, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This API validates that the configuration is valid and will properly authenticate with the MFA provider identified by the method path parameter. A token with ORG_ADMIN authority is required to call this API. + * @summary MFA method\'s test configuration + * @param {string} method The name of the MFA method. The currently supported method names are \'okta-verify\' and \'duo-web\'. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + testMFAConfig: function (method, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.testMFAConfig(method, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + }; + }; + exports.MFAConfigurationBetaApiFp = MFAConfigurationBetaApiFp; + /** + * MFAConfigurationBetaApi - factory interface + * @export + */ + var MFAConfigurationBetaApiFactory = function (configuration, basePath, axios) { + var localVarFp = (0, exports.MFAConfigurationBetaApiFp)(configuration); + return { + /** + * This API removes the configuration for the specified MFA method. A token with ORG_ADMIN authority is required to call this API. + * @summary Delete MFA method configuration + * @param {string} method The name of the MFA method. The currently supported method names are \'okta-verify\' and \'duo-web\'. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + deleteMFAConfig: function (method, axiosOptions) { + return localVarFp.deleteMFAConfig(method, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This API returns the configuration of an Duo MFA method. A token with ORG_ADMIN authority is required to call this API. + * @summary Configuration of Duo MFA method + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getMFADuoConfig: function (axiosOptions) { + return localVarFp.getMFADuoConfig(axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This API returns the configuration of an Okta MFA method. A token with ORG_ADMIN authority is required to call this API. + * @summary Configuration of Okta MFA method + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getMFAOktaConfig: function (axiosOptions) { + return localVarFp.getMFAOktaConfig(axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This API sets the configuration of an Duo MFA method. A token with ORG_ADMIN authority is required to call this API. + * @summary Set Duo MFA configuration + * @param {MfaDuoConfigBeta} mfaDuoConfigBeta + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + setMFADuoConfig: function (mfaDuoConfigBeta, axiosOptions) { + return localVarFp.setMFADuoConfig(mfaDuoConfigBeta, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This API sets the configuration of an Okta MFA method. A token with ORG_ADMIN authority is required to call this API. + * @summary Set Okta MFA configuration + * @param {MfaOktaConfigBeta} mfaOktaConfigBeta + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + setMFAOktaConfig: function (mfaOktaConfigBeta, axiosOptions) { + return localVarFp.setMFAOktaConfig(mfaOktaConfigBeta, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This API validates that the configuration is valid and will properly authenticate with the MFA provider identified by the method path parameter. A token with ORG_ADMIN authority is required to call this API. + * @summary MFA method\'s test configuration + * @param {string} method The name of the MFA method. The currently supported method names are \'okta-verify\' and \'duo-web\'. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + testMFAConfig: function (method, axiosOptions) { + return localVarFp.testMFAConfig(method, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + }; + }; + exports.MFAConfigurationBetaApiFactory = MFAConfigurationBetaApiFactory; + /** + * MFAConfigurationBetaApi - object-oriented interface + * @export + * @class MFAConfigurationBetaApi + * @extends {BaseAPI} + */ + var MFAConfigurationBetaApi = /** @class */ (function (_super) { + __extends(MFAConfigurationBetaApi, _super); + function MFAConfigurationBetaApi() { + return _super !== null && _super.apply(this, arguments) || this; + } + /** + * This API removes the configuration for the specified MFA method. A token with ORG_ADMIN authority is required to call this API. + * @summary Delete MFA method configuration + * @param {MFAConfigurationBetaApiDeleteMFAConfigRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof MFAConfigurationBetaApi + */ + MFAConfigurationBetaApi.prototype.deleteMFAConfig = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.MFAConfigurationBetaApiFp)(this.configuration).deleteMFAConfig(requestParameters.method, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This API returns the configuration of an Duo MFA method. A token with ORG_ADMIN authority is required to call this API. + * @summary Configuration of Duo MFA method + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof MFAConfigurationBetaApi + */ + MFAConfigurationBetaApi.prototype.getMFADuoConfig = function (axiosOptions) { + var _this = this; + return (0, exports.MFAConfigurationBetaApiFp)(this.configuration).getMFADuoConfig(axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This API returns the configuration of an Okta MFA method. A token with ORG_ADMIN authority is required to call this API. + * @summary Configuration of Okta MFA method + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof MFAConfigurationBetaApi + */ + MFAConfigurationBetaApi.prototype.getMFAOktaConfig = function (axiosOptions) { + var _this = this; + return (0, exports.MFAConfigurationBetaApiFp)(this.configuration).getMFAOktaConfig(axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This API sets the configuration of an Duo MFA method. A token with ORG_ADMIN authority is required to call this API. + * @summary Set Duo MFA configuration + * @param {MFAConfigurationBetaApiSetMFADuoConfigRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof MFAConfigurationBetaApi + */ + MFAConfigurationBetaApi.prototype.setMFADuoConfig = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.MFAConfigurationBetaApiFp)(this.configuration).setMFADuoConfig(requestParameters.mfaDuoConfigBeta, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This API sets the configuration of an Okta MFA method. A token with ORG_ADMIN authority is required to call this API. + * @summary Set Okta MFA configuration + * @param {MFAConfigurationBetaApiSetMFAOktaConfigRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof MFAConfigurationBetaApi + */ + MFAConfigurationBetaApi.prototype.setMFAOktaConfig = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.MFAConfigurationBetaApiFp)(this.configuration).setMFAOktaConfig(requestParameters.mfaOktaConfigBeta, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This API validates that the configuration is valid and will properly authenticate with the MFA provider identified by the method path parameter. A token with ORG_ADMIN authority is required to call this API. + * @summary MFA method\'s test configuration + * @param {MFAConfigurationBetaApiTestMFAConfigRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof MFAConfigurationBetaApi + */ + MFAConfigurationBetaApi.prototype.testMFAConfig = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.MFAConfigurationBetaApiFp)(this.configuration).testMFAConfig(requestParameters.method, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + return MFAConfigurationBetaApi; + }(base_1.BaseAPI)); + exports.MFAConfigurationBetaApi = MFAConfigurationBetaApi; + /** + * ManagedClientsBetaApi - axios parameter creator + * @export + */ + var ManagedClientsBetaApiAxiosParamCreator = function (configuration) { + var _this = this; + return { + /** + * Retrieve Managed Client Status by ID. + * @summary Specified Managed Client Status. + * @param {string} id ID of the Managed Client Status to get + * @param {ManagedClientTypeBeta} type Type of the Managed Client Status to get + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getManagedClientStatus: function (id, type, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'id' is not null or undefined + (0, common_1.assertParamExists)('getManagedClientStatus', 'id', id); + // verify required parameter 'type' is not null or undefined + (0, common_1.assertParamExists)('getManagedClientStatus', 'type', type); + localVarPath = "/managed-clients/{id}/status" + .replace("{".concat("id", "}"), encodeURIComponent(String(id))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + if (type !== undefined) { + localVarQueryParameter['type'] = type; + } + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * Update a status detail passed in from the client + * @summary Handle status request from client + * @param {string} id ID of the Managed Client Status to update + * @param {ManagedClientStatusBeta} managedClientStatusBeta + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + updateManagedClientStatus: function (id, managedClientStatusBeta, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'id' is not null or undefined + (0, common_1.assertParamExists)('updateManagedClientStatus', 'id', id); + // verify required parameter 'managedClientStatusBeta' is not null or undefined + (0, common_1.assertParamExists)('updateManagedClientStatus', 'managedClientStatusBeta', managedClientStatusBeta); + localVarPath = "/managed-clients/{id}/status" + .replace("{".concat("id", "}"), encodeURIComponent(String(id))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + localVarHeaderParameter['Content-Type'] = 'application/json'; + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(managedClientStatusBeta, localVarRequestOptions, configuration); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + }; + }; + exports.ManagedClientsBetaApiAxiosParamCreator = ManagedClientsBetaApiAxiosParamCreator; + /** + * ManagedClientsBetaApi - functional programming interface + * @export + */ + var ManagedClientsBetaApiFp = function (configuration) { + var localVarAxiosParamCreator = (0, exports.ManagedClientsBetaApiAxiosParamCreator)(configuration); + return { + /** + * Retrieve Managed Client Status by ID. + * @summary Specified Managed Client Status. + * @param {string} id ID of the Managed Client Status to get + * @param {ManagedClientTypeBeta} type Type of the Managed Client Status to get + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getManagedClientStatus: function (id, type, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.getManagedClientStatus(id, type, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * Update a status detail passed in from the client + * @summary Handle status request from client + * @param {string} id ID of the Managed Client Status to update + * @param {ManagedClientStatusBeta} managedClientStatusBeta + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + updateManagedClientStatus: function (id, managedClientStatusBeta, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.updateManagedClientStatus(id, managedClientStatusBeta, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + }; + }; + exports.ManagedClientsBetaApiFp = ManagedClientsBetaApiFp; + /** + * ManagedClientsBetaApi - factory interface + * @export + */ + var ManagedClientsBetaApiFactory = function (configuration, basePath, axios) { + var localVarFp = (0, exports.ManagedClientsBetaApiFp)(configuration); + return { + /** + * Retrieve Managed Client Status by ID. + * @summary Specified Managed Client Status. + * @param {string} id ID of the Managed Client Status to get + * @param {ManagedClientTypeBeta} type Type of the Managed Client Status to get + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getManagedClientStatus: function (id, type, axiosOptions) { + return localVarFp.getManagedClientStatus(id, type, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * Update a status detail passed in from the client + * @summary Handle status request from client + * @param {string} id ID of the Managed Client Status to update + * @param {ManagedClientStatusBeta} managedClientStatusBeta + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + updateManagedClientStatus: function (id, managedClientStatusBeta, axiosOptions) { + return localVarFp.updateManagedClientStatus(id, managedClientStatusBeta, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + }; + }; + exports.ManagedClientsBetaApiFactory = ManagedClientsBetaApiFactory; + /** + * ManagedClientsBetaApi - object-oriented interface + * @export + * @class ManagedClientsBetaApi + * @extends {BaseAPI} + */ + var ManagedClientsBetaApi = /** @class */ (function (_super) { + __extends(ManagedClientsBetaApi, _super); + function ManagedClientsBetaApi() { + return _super !== null && _super.apply(this, arguments) || this; + } + /** + * Retrieve Managed Client Status by ID. + * @summary Specified Managed Client Status. + * @param {ManagedClientsBetaApiGetManagedClientStatusRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof ManagedClientsBetaApi + */ + ManagedClientsBetaApi.prototype.getManagedClientStatus = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.ManagedClientsBetaApiFp)(this.configuration).getManagedClientStatus(requestParameters.id, requestParameters.type, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * Update a status detail passed in from the client + * @summary Handle status request from client + * @param {ManagedClientsBetaApiUpdateManagedClientStatusRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof ManagedClientsBetaApi + */ + ManagedClientsBetaApi.prototype.updateManagedClientStatus = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.ManagedClientsBetaApiFp)(this.configuration).updateManagedClientStatus(requestParameters.id, requestParameters.managedClientStatusBeta, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + return ManagedClientsBetaApi; + }(base_1.BaseAPI)); + exports.ManagedClientsBetaApi = ManagedClientsBetaApi; + /** + * ManagedClustersBetaApi - axios parameter creator + * @export + */ + var ManagedClustersBetaApiAxiosParamCreator = function (configuration) { + var _this = this; + return { + /** + * Get managed cluster\'s log configuration. + * @summary Get managed cluster\'s log configuration + * @param {string} id ID of ManagedCluster to get log configuration for + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getClientLogConfiguration: function (id, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'id' is not null or undefined + (0, common_1.assertParamExists)('getClientLogConfiguration', 'id', id); + localVarPath = "/managed-clusters/{id}/log-config" + .replace("{".concat("id", "}"), encodeURIComponent(String(id))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * Retrieve a ManagedCluster by ID. + * @summary Get a specified ManagedCluster. + * @param {string} id ID of the ManagedCluster to get + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getManagedCluster: function (id, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'id' is not null or undefined + (0, common_1.assertParamExists)('getManagedCluster', 'id', id); + localVarPath = "/managed-clusters/{id}" + .replace("{".concat("id", "}"), encodeURIComponent(String(id))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * Retrieve all Managed Clusters for the current Org, based on request context. + * @summary Retrieve all Managed Clusters. + * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **operational**: *eq* + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getManagedClusters: function (offset, limit, count, filters, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + localVarPath = "/managed-clusters"; + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + if (offset !== undefined) { + localVarQueryParameter['offset'] = offset; + } + if (limit !== undefined) { + localVarQueryParameter['limit'] = limit; + } + if (count !== undefined) { + localVarQueryParameter['count'] = count; + } + if (filters !== undefined) { + localVarQueryParameter['filters'] = filters; + } + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * Update managed cluster\'s log configuration + * @summary Update managed cluster\'s log configuration + * @param {string} id ID of ManagedCluster to update log configuration for + * @param {ClientLogConfigurationBeta} clientLogConfigurationBeta ClientLogConfiguration for given ManagedCluster + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + putClientLogConfiguration: function (id, clientLogConfigurationBeta, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'id' is not null or undefined + (0, common_1.assertParamExists)('putClientLogConfiguration', 'id', id); + // verify required parameter 'clientLogConfigurationBeta' is not null or undefined + (0, common_1.assertParamExists)('putClientLogConfiguration', 'clientLogConfigurationBeta', clientLogConfigurationBeta); + localVarPath = "/managed-clusters/{id}/log-config" + .replace("{".concat("id", "}"), encodeURIComponent(String(id))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'PUT' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + localVarHeaderParameter['Content-Type'] = 'application/json'; + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(clientLogConfigurationBeta, localVarRequestOptions, configuration); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + }; + }; + exports.ManagedClustersBetaApiAxiosParamCreator = ManagedClustersBetaApiAxiosParamCreator; + /** + * ManagedClustersBetaApi - functional programming interface + * @export + */ + var ManagedClustersBetaApiFp = function (configuration) { + var localVarAxiosParamCreator = (0, exports.ManagedClustersBetaApiAxiosParamCreator)(configuration); + return { + /** + * Get managed cluster\'s log configuration. + * @summary Get managed cluster\'s log configuration + * @param {string} id ID of ManagedCluster to get log configuration for + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getClientLogConfiguration: function (id, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.getClientLogConfiguration(id, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * Retrieve a ManagedCluster by ID. + * @summary Get a specified ManagedCluster. + * @param {string} id ID of the ManagedCluster to get + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getManagedCluster: function (id, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.getManagedCluster(id, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * Retrieve all Managed Clusters for the current Org, based on request context. + * @summary Retrieve all Managed Clusters. + * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **operational**: *eq* + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getManagedClusters: function (offset, limit, count, filters, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.getManagedClusters(offset, limit, count, filters, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * Update managed cluster\'s log configuration + * @summary Update managed cluster\'s log configuration + * @param {string} id ID of ManagedCluster to update log configuration for + * @param {ClientLogConfigurationBeta} clientLogConfigurationBeta ClientLogConfiguration for given ManagedCluster + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + putClientLogConfiguration: function (id, clientLogConfigurationBeta, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.putClientLogConfiguration(id, clientLogConfigurationBeta, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + }; + }; + exports.ManagedClustersBetaApiFp = ManagedClustersBetaApiFp; + /** + * ManagedClustersBetaApi - factory interface + * @export + */ + var ManagedClustersBetaApiFactory = function (configuration, basePath, axios) { + var localVarFp = (0, exports.ManagedClustersBetaApiFp)(configuration); + return { + /** + * Get managed cluster\'s log configuration. + * @summary Get managed cluster\'s log configuration + * @param {string} id ID of ManagedCluster to get log configuration for + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getClientLogConfiguration: function (id, axiosOptions) { + return localVarFp.getClientLogConfiguration(id, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * Retrieve a ManagedCluster by ID. + * @summary Get a specified ManagedCluster. + * @param {string} id ID of the ManagedCluster to get + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getManagedCluster: function (id, axiosOptions) { + return localVarFp.getManagedCluster(id, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * Retrieve all Managed Clusters for the current Org, based on request context. + * @summary Retrieve all Managed Clusters. + * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **operational**: *eq* + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getManagedClusters: function (offset, limit, count, filters, axiosOptions) { + return localVarFp.getManagedClusters(offset, limit, count, filters, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * Update managed cluster\'s log configuration + * @summary Update managed cluster\'s log configuration + * @param {string} id ID of ManagedCluster to update log configuration for + * @param {ClientLogConfigurationBeta} clientLogConfigurationBeta ClientLogConfiguration for given ManagedCluster + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + putClientLogConfiguration: function (id, clientLogConfigurationBeta, axiosOptions) { + return localVarFp.putClientLogConfiguration(id, clientLogConfigurationBeta, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + }; + }; + exports.ManagedClustersBetaApiFactory = ManagedClustersBetaApiFactory; + /** + * ManagedClustersBetaApi - object-oriented interface + * @export + * @class ManagedClustersBetaApi + * @extends {BaseAPI} + */ + var ManagedClustersBetaApi = /** @class */ (function (_super) { + __extends(ManagedClustersBetaApi, _super); + function ManagedClustersBetaApi() { + return _super !== null && _super.apply(this, arguments) || this; + } + /** + * Get managed cluster\'s log configuration. + * @summary Get managed cluster\'s log configuration + * @param {ManagedClustersBetaApiGetClientLogConfigurationRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof ManagedClustersBetaApi + */ + ManagedClustersBetaApi.prototype.getClientLogConfiguration = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.ManagedClustersBetaApiFp)(this.configuration).getClientLogConfiguration(requestParameters.id, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * Retrieve a ManagedCluster by ID. + * @summary Get a specified ManagedCluster. + * @param {ManagedClustersBetaApiGetManagedClusterRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof ManagedClustersBetaApi + */ + ManagedClustersBetaApi.prototype.getManagedCluster = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.ManagedClustersBetaApiFp)(this.configuration).getManagedCluster(requestParameters.id, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * Retrieve all Managed Clusters for the current Org, based on request context. + * @summary Retrieve all Managed Clusters. + * @param {ManagedClustersBetaApiGetManagedClustersRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof ManagedClustersBetaApi + */ + ManagedClustersBetaApi.prototype.getManagedClusters = function (requestParameters, axiosOptions) { + var _this = this; + if (requestParameters === void 0) { requestParameters = {}; } + return (0, exports.ManagedClustersBetaApiFp)(this.configuration).getManagedClusters(requestParameters.offset, requestParameters.limit, requestParameters.count, requestParameters.filters, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * Update managed cluster\'s log configuration + * @summary Update managed cluster\'s log configuration + * @param {ManagedClustersBetaApiPutClientLogConfigurationRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof ManagedClustersBetaApi + */ + ManagedClustersBetaApi.prototype.putClientLogConfiguration = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.ManagedClustersBetaApiFp)(this.configuration).putClientLogConfiguration(requestParameters.id, requestParameters.clientLogConfigurationBeta, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + return ManagedClustersBetaApi; + }(base_1.BaseAPI)); + exports.ManagedClustersBetaApi = ManagedClustersBetaApi; + /** + * NonEmployeeLifecycleManagementBetaApi - axios parameter creator + * @export + */ + var NonEmployeeLifecycleManagementBetaApiAxiosParamCreator = function (configuration) { + var _this = this; + return { + /** + * Approves a non-employee approval request and notifies the next approver. + * @summary Approve a Non-Employee Request + * @param {string} id Non-Employee approval item id (UUID) + * @param {NonEmployeeApprovalDecisionBeta} nonEmployeeApprovalDecisionBeta + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + approveNonEmployeeRequest: function (id, nonEmployeeApprovalDecisionBeta, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'id' is not null or undefined + (0, common_1.assertParamExists)('approveNonEmployeeRequest', 'id', id); + // verify required parameter 'nonEmployeeApprovalDecisionBeta' is not null or undefined + (0, common_1.assertParamExists)('approveNonEmployeeRequest', 'nonEmployeeApprovalDecisionBeta', nonEmployeeApprovalDecisionBeta); + localVarPath = "/non-employee-approvals/{id}/approve" + .replace("{".concat("id", "}"), encodeURIComponent(String(id))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + localVarHeaderParameter['Content-Type'] = 'application/json'; + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(nonEmployeeApprovalDecisionBeta, localVarRequestOptions, configuration); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This request will create a non-employee record. Request will require the following security scope: \'idn:nesr:create\' + * @summary Create Non-Employee Record + * @param {NonEmployeeRequestBodyBeta} nonEmployeeRequestBodyBeta Non-Employee record creation request body. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + createNonEmployeeRecord: function (nonEmployeeRequestBodyBeta, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'nonEmployeeRequestBodyBeta' is not null or undefined + (0, common_1.assertParamExists)('createNonEmployeeRecord', 'nonEmployeeRequestBodyBeta', nonEmployeeRequestBodyBeta); + localVarPath = "/non-employee-records"; + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + localVarHeaderParameter['Content-Type'] = 'application/json'; + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(nonEmployeeRequestBodyBeta, localVarRequestOptions, configuration); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This request will create a non-employee request and notify the approver + * @summary Create Non-Employee Request + * @param {NonEmployeeRequestBodyBeta} nonEmployeeRequestBodyBeta Non-Employee creation request body + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + createNonEmployeeRequest: function (nonEmployeeRequestBodyBeta, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'nonEmployeeRequestBodyBeta' is not null or undefined + (0, common_1.assertParamExists)('createNonEmployeeRequest', 'nonEmployeeRequestBodyBeta', nonEmployeeRequestBodyBeta); + localVarPath = "/non-employee-requests"; + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + localVarHeaderParameter['Content-Type'] = 'application/json'; + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(nonEmployeeRequestBodyBeta, localVarRequestOptions, configuration); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This request will create a non-employee source. Request will require the following security scope: \'idn:nesr:create\' + * @summary Create Non-Employee Source + * @param {NonEmployeeSourceRequestBodyBeta} nonEmployeeSourceRequestBodyBeta Non-Employee source creation request body. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + createNonEmployeeSource: function (nonEmployeeSourceRequestBodyBeta, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'nonEmployeeSourceRequestBodyBeta' is not null or undefined + (0, common_1.assertParamExists)('createNonEmployeeSource', 'nonEmployeeSourceRequestBodyBeta', nonEmployeeSourceRequestBodyBeta); + localVarPath = "/non-employee-sources"; + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + localVarHeaderParameter['Content-Type'] = 'application/json'; + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(nonEmployeeSourceRequestBodyBeta, localVarRequestOptions, configuration); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This API creates a new schema attribute for Non-Employee Source. The schema technical name must be unique in the source. Attempts to create a schema attribute with an existing name will result in a \"400.1.409 Reference conflict\" response. At most, 10 custom attributes can be created per schema. Attempts to create more than 10 will result in a \"400.1.4 Limit violation\" response. + * @summary Create Non-Employee Source Schema Attribute + * @param {string} sourceId The Source id + * @param {NonEmployeeSchemaAttributeBodyBeta} nonEmployeeSchemaAttributeBodyBeta + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + createNonEmployeeSourceSchemaAttributes: function (sourceId, nonEmployeeSchemaAttributeBodyBeta, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'sourceId' is not null or undefined + (0, common_1.assertParamExists)('createNonEmployeeSourceSchemaAttributes', 'sourceId', sourceId); + // verify required parameter 'nonEmployeeSchemaAttributeBodyBeta' is not null or undefined + (0, common_1.assertParamExists)('createNonEmployeeSourceSchemaAttributes', 'nonEmployeeSchemaAttributeBodyBeta', nonEmployeeSchemaAttributeBodyBeta); + localVarPath = "/non-employee-sources/{sourceId}/schema-attributes" + .replace("{".concat("sourceId", "}"), encodeURIComponent(String(sourceId))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + localVarHeaderParameter['Content-Type'] = 'application/json'; + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(nonEmployeeSchemaAttributeBodyBeta, localVarRequestOptions, configuration); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This request will delete a non-employee record. + * @summary Delete Non-Employee Record + * @param {string} id Non-Employee record id (UUID) + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + deleteNonEmployeeRecord: function (id, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'id' is not null or undefined + (0, common_1.assertParamExists)('deleteNonEmployeeRecord', 'id', id); + localVarPath = "/non-employee-records/{id}" + .replace("{".concat("id", "}"), encodeURIComponent(String(id))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'DELETE' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This request will delete multiple non-employee records based on the non-employee ids provided. Request will require the following scope: \'idn:nesr:delete\' + * @summary Delete Multiple Non-Employee Records + * @param {DeleteNonEmployeeRecordInBulkRequestBeta} deleteNonEmployeeRecordInBulkRequestBeta Non-Employee bulk delete request body. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + deleteNonEmployeeRecordInBulk: function (deleteNonEmployeeRecordInBulkRequestBeta, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'deleteNonEmployeeRecordInBulkRequestBeta' is not null or undefined + (0, common_1.assertParamExists)('deleteNonEmployeeRecordInBulk', 'deleteNonEmployeeRecordInBulkRequestBeta', deleteNonEmployeeRecordInBulkRequestBeta); + localVarPath = "/non-employee-records/bulk-delete"; + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + localVarHeaderParameter['Content-Type'] = 'application/json'; + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(deleteNonEmployeeRecordInBulkRequestBeta, localVarRequestOptions, configuration); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This request will delete a non-employee request. + * @summary Delete Non-Employee Request + * @param {string} id Non-Employee request id in the UUID format + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + deleteNonEmployeeRequest: function (id, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'id' is not null or undefined + (0, common_1.assertParamExists)('deleteNonEmployeeRequest', 'id', id); + localVarPath = "/non-employee-requests/{id}" + .replace("{".concat("id", "}"), encodeURIComponent(String(id))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'DELETE' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This end-point deletes a specific schema attribute for a non-employee source. + * @summary Delete Non-Employee Source\'s Schema Attribute + * @param {string} attributeId The Schema Attribute Id (UUID) + * @param {string} sourceId The Source id + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + deleteNonEmployeeSchemaAttribute: function (attributeId, sourceId, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'attributeId' is not null or undefined + (0, common_1.assertParamExists)('deleteNonEmployeeSchemaAttribute', 'attributeId', attributeId); + // verify required parameter 'sourceId' is not null or undefined + (0, common_1.assertParamExists)('deleteNonEmployeeSchemaAttribute', 'sourceId', sourceId); + localVarPath = "/non-employee-sources/{sourceId}/schema-attributes/{attributeId}" + .replace("{".concat("attributeId", "}"), encodeURIComponent(String(attributeId))) + .replace("{".concat("sourceId", "}"), encodeURIComponent(String(sourceId))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'DELETE' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This request will delete a non-employee source. + * @summary Delete Non-Employee Source + * @param {string} sourceId Source Id + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + deleteNonEmployeeSource: function (sourceId, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'sourceId' is not null or undefined + (0, common_1.assertParamExists)('deleteNonEmployeeSource', 'sourceId', sourceId); + localVarPath = "/non-employee-sources/{sourceId}" + .replace("{".concat("sourceId", "}"), encodeURIComponent(String(sourceId))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'DELETE' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This end-point deletes all custom schema attributes for a non-employee source. + * @summary Delete all custom schema attributes + * @param {string} sourceId The Source id + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + deleteNonEmployeeSourceSchemaAttributes: function (sourceId, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'sourceId' is not null or undefined + (0, common_1.assertParamExists)('deleteNonEmployeeSourceSchemaAttributes', 'sourceId', sourceId); + localVarPath = "/non-employee-sources/{sourceId}/schema-attributes" + .replace("{".concat("sourceId", "}"), encodeURIComponent(String(sourceId))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'DELETE' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This requests a CSV download for all non-employees from a provided source. + * @summary Exports Non-Employee Records to CSV + * @param {string} id Source Id (UUID) + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + exportNonEmployeeRecords: function (id, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'id' is not null or undefined + (0, common_1.assertParamExists)('exportNonEmployeeRecords', 'id', id); + localVarPath = "/non-employee-sources/{id}/non-employees/download" + .replace("{".concat("id", "}"), encodeURIComponent(String(id))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This requests a download for the Source Schema Template for a provided source. Request will require the following security scope: idn:nesr:read\' + * @summary Exports Source Schema Template + * @param {string} id Source Id (UUID) + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + exportNonEmployeeSourceSchemaTemplate: function (id, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'id' is not null or undefined + (0, common_1.assertParamExists)('exportNonEmployeeSourceSchemaTemplate', 'id', id); + localVarPath = "/non-employee-sources/{id}/schema-attributes-template/download" + .replace("{".concat("id", "}"), encodeURIComponent(String(id))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * Approves a non-employee approval request and notifies the next approver. + * @summary Get a non-employee approval item detail + * @param {string} id Non-Employee approval item id (UUID) + * @param {string} [includeDetail] The object nonEmployeeRequest will not be included detail when set to false. *Default value is true* + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getNonEmployeeApproval: function (id, includeDetail, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'id' is not null or undefined + (0, common_1.assertParamExists)('getNonEmployeeApproval', 'id', id); + localVarPath = "/non-employee-approvals/{id}" + .replace("{".concat("id", "}"), encodeURIComponent(String(id))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + if (includeDetail !== undefined) { + localVarQueryParameter['include-detail'] = includeDetail; + } + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This request will retrieve a summary of non-employee approval requests. There are two contextual uses for the `requested-for` path parameter: 1. The current user is the Org Admin, in which case he or she may request a summary of all non-employee approval requests assigned to a particular approver by passing in that approver\'s id. 2. The current user is an approver, in which case \"me\" should be provided as the `requested-for` value. This will provide the approver with a summary of the approval items assigned to him or her. + * @summary Get Summary of Non-Employee Approval Requests + * @param {string} requestedFor The identity (UUID) of the approver for whom for whom the summary is being retrieved. Use \"me\" instead to indicate the current user. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getNonEmployeeApprovalSummary: function (requestedFor, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'requestedFor' is not null or undefined + (0, common_1.assertParamExists)('getNonEmployeeApprovalSummary', 'requestedFor', requestedFor); + localVarPath = "/non-employee-approvals/summary/{requested-for}" + .replace("{".concat("requested-for", "}"), encodeURIComponent(String(requestedFor))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * The nonEmployeeBulkUploadStatus API returns the status of the newest bulk upload job for the specified source. + * @summary Bulk upload status on source + * @param {string} id Source ID (UUID) + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getNonEmployeeBulkUploadStatus: function (id, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'id' is not null or undefined + (0, common_1.assertParamExists)('getNonEmployeeBulkUploadStatus', 'id', id); + localVarPath = "/non-employee-sources/{id}/non-employee-bulk-upload/status" + .replace("{".concat("id", "}"), encodeURIComponent(String(id))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This gets a non-employee record. + * @summary Get a Non-Employee Record + * @param {string} id Non-Employee record id (UUID) + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getNonEmployeeRecord: function (id, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'id' is not null or undefined + (0, common_1.assertParamExists)('getNonEmployeeRecord', 'id', id); + localVarPath = "/non-employee-records/{id}" + .replace("{".concat("id", "}"), encodeURIComponent(String(id))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This gets a non-employee request. + * @summary Get a Non-Employee Request + * @param {string} id Non-Employee request id (UUID) + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getNonEmployeeRequest: function (id, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'id' is not null or undefined + (0, common_1.assertParamExists)('getNonEmployeeRequest', 'id', id); + localVarPath = "/non-employee-requests/{id}" + .replace("{".concat("id", "}"), encodeURIComponent(String(id))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This request will retrieve a summary of non-employee requests. There are two contextual uses for the `requested-for` path parameter: 1. The current user is the Org Admin, in which case he or she may request a summary of all non-employee approval requests assigned to a particular account manager by passing in that manager\'s id. 2. The current user is an account manager, in which case \"me\" should be provided as the `requested-for` value. This will provide the user with a summary of the non-employee requests in the source(s) he or she manages. + * @summary Get Summary of Non-Employee Requests + * @param {string} requestedFor The identity (UUID) of the non-employee account manager for whom the summary is being retrieved. Use \"me\" instead to indicate the current user. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getNonEmployeeRequestSummary: function (requestedFor, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'requestedFor' is not null or undefined + (0, common_1.assertParamExists)('getNonEmployeeRequestSummary', 'requestedFor', requestedFor); + localVarPath = "/non-employee-requests/summary/{requested-for}" + .replace("{".concat("requested-for", "}"), encodeURIComponent(String(requestedFor))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This API gets a schema attribute by Id for the specified Non-Employee SourceId. + * @summary Get Schema Attribute Non-Employee Source + * @param {string} attributeId The Schema Attribute Id (UUID) + * @param {string} sourceId The Source id + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getNonEmployeeSchemaAttribute: function (attributeId, sourceId, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'attributeId' is not null or undefined + (0, common_1.assertParamExists)('getNonEmployeeSchemaAttribute', 'attributeId', attributeId); + // verify required parameter 'sourceId' is not null or undefined + (0, common_1.assertParamExists)('getNonEmployeeSchemaAttribute', 'sourceId', sourceId); + localVarPath = "/non-employee-sources/{sourceId}/schema-attributes/{attributeId}" + .replace("{".concat("attributeId", "}"), encodeURIComponent(String(attributeId))) + .replace("{".concat("sourceId", "}"), encodeURIComponent(String(sourceId))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This gets a non-employee source. + * @summary Get a Non-Employee Source + * @param {string} sourceId Source Id + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getNonEmployeeSource: function (sourceId, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'sourceId' is not null or undefined + (0, common_1.assertParamExists)('getNonEmployeeSource', 'sourceId', sourceId); + localVarPath = "/non-employee-sources/{sourceId}" + .replace("{".concat("sourceId", "}"), encodeURIComponent(String(sourceId))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This API gets the list of schema attributes for the specified Non-Employee SourceId. There are 8 mandatory attributes added to each new Non-Employee Source automatically. Additionaly, user can add up to 10 custom attributes. This interface returns all the mandatory attributes followed by any custom attributes. At most, a total of 18 attributes will be returned. + * @summary List Schema Attributes Non-Employee Source + * @param {string} sourceId The Source id + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getNonEmployeeSourceSchemaAttributes: function (sourceId, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'sourceId' is not null or undefined + (0, common_1.assertParamExists)('getNonEmployeeSourceSchemaAttributes', 'sourceId', sourceId); + localVarPath = "/non-employee-sources/{sourceId}/schema-attributes" + .replace("{".concat("sourceId", "}"), encodeURIComponent(String(sourceId))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This post will import, or update, Non-Employee records found in the CSV. Request will need the following security scope: \'idn:nesr:create\' + * @summary Imports, or Updates, Non-Employee Records + * @param {string} id Source Id (UUID) + * @param {any} data + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + importNonEmployeeRecordsInBulk: function (id, data, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, localVarFormParams, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'id' is not null or undefined + (0, common_1.assertParamExists)('importNonEmployeeRecordsInBulk', 'id', id); + // verify required parameter 'data' is not null or undefined + (0, common_1.assertParamExists)('importNonEmployeeRecordsInBulk', 'data', data); + localVarPath = "/non-employee-sources/{id}/non-employee-bulk-upload" + .replace("{".concat("id", "}"), encodeURIComponent(String(id))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + localVarFormParams = new ((configuration && configuration.formDataCtor) || FormData)(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + if (data !== undefined) { + localVarFormParams.append('data', data); + } + localVarHeaderParameter['Content-Type'] = 'multipart/form-data'; + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + localVarRequestOptions.data = localVarFormParams; + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This gets a list of non-employee approval requests. + * @summary Get List of Non-Employee Approval Requests + * @param {string} [requestedFor] The identity for whom the request was made. *me* indicates the current user. + * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **approvalStatus**: *eq* + * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **created, modified** + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + listNonEmployeeApproval: function (requestedFor, limit, offset, count, filters, sorters, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + localVarPath = "/non-employee-approvals"; + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + if (requestedFor !== undefined) { + localVarQueryParameter['requested-for'] = requestedFor; + } + if (limit !== undefined) { + localVarQueryParameter['limit'] = limit; + } + if (offset !== undefined) { + localVarQueryParameter['offset'] = offset; + } + if (count !== undefined) { + localVarQueryParameter['count'] = count; + } + if (filters !== undefined) { + localVarQueryParameter['filters'] = filters; + } + if (sorters !== undefined) { + localVarQueryParameter['sorters'] = sorters; + } + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This gets a list of non-employee records. + * @summary List Non-Employee Records + * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **id, accountName, sourceId, manager, firstName, lastName, email, phone, startDate, endDate, created, modified** + * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **sourceId**: *eq* + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + listNonEmployeeRecords: function (limit, offset, count, sorters, filters, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + localVarPath = "/non-employee-records"; + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + if (limit !== undefined) { + localVarQueryParameter['limit'] = limit; + } + if (offset !== undefined) { + localVarQueryParameter['offset'] = offset; + } + if (count !== undefined) { + localVarQueryParameter['count'] = count; + } + if (sorters !== undefined) { + localVarQueryParameter['sorters'] = sorters; + } + if (filters !== undefined) { + localVarQueryParameter['filters'] = filters; + } + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This gets a list of non-employee requests. + * @summary List Non-Employee Requests + * @param {string} requestedFor The identity for whom the request was made. *me* indicates the current user. + * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **created, approvalStatus, firstName, lastName, email, phone, accountName, startDate, endDate** + * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **sourceId**: *eq* + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + listNonEmployeeRequests: function (requestedFor, limit, offset, count, sorters, filters, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'requestedFor' is not null or undefined + (0, common_1.assertParamExists)('listNonEmployeeRequests', 'requestedFor', requestedFor); + localVarPath = "/non-employee-requests"; + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + if (limit !== undefined) { + localVarQueryParameter['limit'] = limit; + } + if (offset !== undefined) { + localVarQueryParameter['offset'] = offset; + } + if (count !== undefined) { + localVarQueryParameter['count'] = count; + } + if (requestedFor !== undefined) { + localVarQueryParameter['requested-for'] = requestedFor; + } + if (sorters !== undefined) { + localVarQueryParameter['sorters'] = sorters; + } + if (filters !== undefined) { + localVarQueryParameter['filters'] = filters; + } + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This gets a list of non-employee sources. + * @summary List Non-Employee Sources + * @param {string} requestedFor The identity for whom the request was made. *me* indicates the current user. + * @param {boolean} nonEmployeeCount The flag to determine whether return a non-employee count associate with source. + * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **name, created, sourceId** + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + listNonEmployeeSources: function (requestedFor, nonEmployeeCount, limit, offset, count, sorters, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'requestedFor' is not null or undefined + (0, common_1.assertParamExists)('listNonEmployeeSources', 'requestedFor', requestedFor); + // verify required parameter 'nonEmployeeCount' is not null or undefined + (0, common_1.assertParamExists)('listNonEmployeeSources', 'nonEmployeeCount', nonEmployeeCount); + localVarPath = "/non-employee-sources"; + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + if (limit !== undefined) { + localVarQueryParameter['limit'] = limit; + } + if (offset !== undefined) { + localVarQueryParameter['offset'] = offset; + } + if (count !== undefined) { + localVarQueryParameter['count'] = count; + } + if (requestedFor !== undefined) { + localVarQueryParameter['requested-for'] = requestedFor; + } + if (nonEmployeeCount !== undefined) { + localVarQueryParameter['non-employee-count'] = nonEmployeeCount; + } + if (sorters !== undefined) { + localVarQueryParameter['sorters'] = sorters; + } + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This request will patch a non-employee record. + * @summary Patch Non-Employee Record + * @param {string} id Non-employee record id (UUID) + * @param {Array} jsonPatchOperationBeta A list of non-employee update operations according to the [JSON Patch](https://tools.ietf.org/html/rfc6902) standard. Attributes are restricted by user type. Owner of source can update end date. Organization admins can update all available fields. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + patchNonEmployeeRecord: function (id, jsonPatchOperationBeta, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'id' is not null or undefined + (0, common_1.assertParamExists)('patchNonEmployeeRecord', 'id', id); + // verify required parameter 'jsonPatchOperationBeta' is not null or undefined + (0, common_1.assertParamExists)('patchNonEmployeeRecord', 'jsonPatchOperationBeta', jsonPatchOperationBeta); + localVarPath = "/non-employee-records/{id}" + .replace("{".concat("id", "}"), encodeURIComponent(String(id))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'PATCH' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + localVarHeaderParameter['Content-Type'] = 'application/json-patch+json'; + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(jsonPatchOperationBeta, localVarRequestOptions, configuration); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This end-point patches a specific schema attribute for a non-employee SourceId. + * @summary Patch Non-Employee Source\'s Schema Attribute + * @param {string} attributeId The Schema Attribute Id (UUID) + * @param {string} sourceId The Source id + * @param {Array} jsonPatchOperationBeta A list of schema attribute update operations according to the [JSON Patch](https://tools.ietf.org/html/rfc6902) standard. The following properties are allowed for update \':\' \'label\', \'helpText\', \'placeholder\', \'required\'. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + patchNonEmployeeSchemaAttribute: function (attributeId, sourceId, jsonPatchOperationBeta, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'attributeId' is not null or undefined + (0, common_1.assertParamExists)('patchNonEmployeeSchemaAttribute', 'attributeId', attributeId); + // verify required parameter 'sourceId' is not null or undefined + (0, common_1.assertParamExists)('patchNonEmployeeSchemaAttribute', 'sourceId', sourceId); + // verify required parameter 'jsonPatchOperationBeta' is not null or undefined + (0, common_1.assertParamExists)('patchNonEmployeeSchemaAttribute', 'jsonPatchOperationBeta', jsonPatchOperationBeta); + localVarPath = "/non-employee-sources/{sourceId}/schema-attributes/{attributeId}" + .replace("{".concat("attributeId", "}"), encodeURIComponent(String(attributeId))) + .replace("{".concat("sourceId", "}"), encodeURIComponent(String(sourceId))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'PATCH' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + localVarHeaderParameter['Content-Type'] = 'application/json-patch+json'; + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(jsonPatchOperationBeta, localVarRequestOptions, configuration); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * patch a non-employee source. (Partial Update) Patchable field: **name, description, approvers, accountManagers** + * @summary Patch a Non-Employee Source + * @param {string} sourceId Source Id + * @param {Array} jsonPatchOperationBeta A list of non-employee source update operations according to the [JSON Patch](https://tools.ietf.org/html/rfc6902) standard. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + patchNonEmployeeSource: function (sourceId, jsonPatchOperationBeta, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'sourceId' is not null or undefined + (0, common_1.assertParamExists)('patchNonEmployeeSource', 'sourceId', sourceId); + // verify required parameter 'jsonPatchOperationBeta' is not null or undefined + (0, common_1.assertParamExists)('patchNonEmployeeSource', 'jsonPatchOperationBeta', jsonPatchOperationBeta); + localVarPath = "/non-employee-sources/{sourceId}" + .replace("{".concat("sourceId", "}"), encodeURIComponent(String(sourceId))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'PATCH' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + localVarHeaderParameter['Content-Type'] = 'application/json-patch+json'; + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(jsonPatchOperationBeta, localVarRequestOptions, configuration); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This endpoint will reject an approval item request and notify user. + * @summary Reject a Non-Employee Request + * @param {string} id Non-Employee approval item id (UUID) + * @param {NonEmployeeRejectApprovalDecisionBeta} nonEmployeeRejectApprovalDecisionBeta + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + rejectNonEmployeeRequest: function (id, nonEmployeeRejectApprovalDecisionBeta, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'id' is not null or undefined + (0, common_1.assertParamExists)('rejectNonEmployeeRequest', 'id', id); + // verify required parameter 'nonEmployeeRejectApprovalDecisionBeta' is not null or undefined + (0, common_1.assertParamExists)('rejectNonEmployeeRequest', 'nonEmployeeRejectApprovalDecisionBeta', nonEmployeeRejectApprovalDecisionBeta); + localVarPath = "/non-employee-approvals/{id}/reject" + .replace("{".concat("id", "}"), encodeURIComponent(String(id))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + localVarHeaderParameter['Content-Type'] = 'application/json'; + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(nonEmployeeRejectApprovalDecisionBeta, localVarRequestOptions, configuration); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This request will update a non-employee record. + * @summary Update Non-Employee Record + * @param {string} id Non-employee record id (UUID) + * @param {NonEmployeeRequestBodyBeta} nonEmployeeRequestBodyBeta Non-employee record creation request body. Attributes are restricted by user type. Owner of source can update end date. Organization admins can update all available fields. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + updateNonEmployeeRecord: function (id, nonEmployeeRequestBodyBeta, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'id' is not null or undefined + (0, common_1.assertParamExists)('updateNonEmployeeRecord', 'id', id); + // verify required parameter 'nonEmployeeRequestBodyBeta' is not null or undefined + (0, common_1.assertParamExists)('updateNonEmployeeRecord', 'nonEmployeeRequestBodyBeta', nonEmployeeRequestBodyBeta); + localVarPath = "/non-employee-records/{id}" + .replace("{".concat("id", "}"), encodeURIComponent(String(id))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'PUT' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + localVarHeaderParameter['Content-Type'] = 'application/json'; + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(nonEmployeeRequestBodyBeta, localVarRequestOptions, configuration); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + }; + }; + exports.NonEmployeeLifecycleManagementBetaApiAxiosParamCreator = NonEmployeeLifecycleManagementBetaApiAxiosParamCreator; + /** + * NonEmployeeLifecycleManagementBetaApi - functional programming interface + * @export + */ + var NonEmployeeLifecycleManagementBetaApiFp = function (configuration) { + var localVarAxiosParamCreator = (0, exports.NonEmployeeLifecycleManagementBetaApiAxiosParamCreator)(configuration); + return { + /** + * Approves a non-employee approval request and notifies the next approver. + * @summary Approve a Non-Employee Request + * @param {string} id Non-Employee approval item id (UUID) + * @param {NonEmployeeApprovalDecisionBeta} nonEmployeeApprovalDecisionBeta + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + approveNonEmployeeRequest: function (id, nonEmployeeApprovalDecisionBeta, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.approveNonEmployeeRequest(id, nonEmployeeApprovalDecisionBeta, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This request will create a non-employee record. Request will require the following security scope: \'idn:nesr:create\' + * @summary Create Non-Employee Record + * @param {NonEmployeeRequestBodyBeta} nonEmployeeRequestBodyBeta Non-Employee record creation request body. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + createNonEmployeeRecord: function (nonEmployeeRequestBodyBeta, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.createNonEmployeeRecord(nonEmployeeRequestBodyBeta, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This request will create a non-employee request and notify the approver + * @summary Create Non-Employee Request + * @param {NonEmployeeRequestBodyBeta} nonEmployeeRequestBodyBeta Non-Employee creation request body + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + createNonEmployeeRequest: function (nonEmployeeRequestBodyBeta, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.createNonEmployeeRequest(nonEmployeeRequestBodyBeta, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This request will create a non-employee source. Request will require the following security scope: \'idn:nesr:create\' + * @summary Create Non-Employee Source + * @param {NonEmployeeSourceRequestBodyBeta} nonEmployeeSourceRequestBodyBeta Non-Employee source creation request body. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + createNonEmployeeSource: function (nonEmployeeSourceRequestBodyBeta, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.createNonEmployeeSource(nonEmployeeSourceRequestBodyBeta, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This API creates a new schema attribute for Non-Employee Source. The schema technical name must be unique in the source. Attempts to create a schema attribute with an existing name will result in a \"400.1.409 Reference conflict\" response. At most, 10 custom attributes can be created per schema. Attempts to create more than 10 will result in a \"400.1.4 Limit violation\" response. + * @summary Create Non-Employee Source Schema Attribute + * @param {string} sourceId The Source id + * @param {NonEmployeeSchemaAttributeBodyBeta} nonEmployeeSchemaAttributeBodyBeta + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + createNonEmployeeSourceSchemaAttributes: function (sourceId, nonEmployeeSchemaAttributeBodyBeta, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.createNonEmployeeSourceSchemaAttributes(sourceId, nonEmployeeSchemaAttributeBodyBeta, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This request will delete a non-employee record. + * @summary Delete Non-Employee Record + * @param {string} id Non-Employee record id (UUID) + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + deleteNonEmployeeRecord: function (id, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.deleteNonEmployeeRecord(id, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This request will delete multiple non-employee records based on the non-employee ids provided. Request will require the following scope: \'idn:nesr:delete\' + * @summary Delete Multiple Non-Employee Records + * @param {DeleteNonEmployeeRecordInBulkRequestBeta} deleteNonEmployeeRecordInBulkRequestBeta Non-Employee bulk delete request body. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + deleteNonEmployeeRecordInBulk: function (deleteNonEmployeeRecordInBulkRequestBeta, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.deleteNonEmployeeRecordInBulk(deleteNonEmployeeRecordInBulkRequestBeta, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This request will delete a non-employee request. + * @summary Delete Non-Employee Request + * @param {string} id Non-Employee request id in the UUID format + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + deleteNonEmployeeRequest: function (id, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.deleteNonEmployeeRequest(id, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This end-point deletes a specific schema attribute for a non-employee source. + * @summary Delete Non-Employee Source\'s Schema Attribute + * @param {string} attributeId The Schema Attribute Id (UUID) + * @param {string} sourceId The Source id + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + deleteNonEmployeeSchemaAttribute: function (attributeId, sourceId, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.deleteNonEmployeeSchemaAttribute(attributeId, sourceId, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This request will delete a non-employee source. + * @summary Delete Non-Employee Source + * @param {string} sourceId Source Id + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + deleteNonEmployeeSource: function (sourceId, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.deleteNonEmployeeSource(sourceId, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This end-point deletes all custom schema attributes for a non-employee source. + * @summary Delete all custom schema attributes + * @param {string} sourceId The Source id + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + deleteNonEmployeeSourceSchemaAttributes: function (sourceId, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.deleteNonEmployeeSourceSchemaAttributes(sourceId, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This requests a CSV download for all non-employees from a provided source. + * @summary Exports Non-Employee Records to CSV + * @param {string} id Source Id (UUID) + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + exportNonEmployeeRecords: function (id, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.exportNonEmployeeRecords(id, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This requests a download for the Source Schema Template for a provided source. Request will require the following security scope: idn:nesr:read\' + * @summary Exports Source Schema Template + * @param {string} id Source Id (UUID) + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + exportNonEmployeeSourceSchemaTemplate: function (id, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.exportNonEmployeeSourceSchemaTemplate(id, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * Approves a non-employee approval request and notifies the next approver. + * @summary Get a non-employee approval item detail + * @param {string} id Non-Employee approval item id (UUID) + * @param {string} [includeDetail] The object nonEmployeeRequest will not be included detail when set to false. *Default value is true* + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getNonEmployeeApproval: function (id, includeDetail, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.getNonEmployeeApproval(id, includeDetail, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This request will retrieve a summary of non-employee approval requests. There are two contextual uses for the `requested-for` path parameter: 1. The current user is the Org Admin, in which case he or she may request a summary of all non-employee approval requests assigned to a particular approver by passing in that approver\'s id. 2. The current user is an approver, in which case \"me\" should be provided as the `requested-for` value. This will provide the approver with a summary of the approval items assigned to him or her. + * @summary Get Summary of Non-Employee Approval Requests + * @param {string} requestedFor The identity (UUID) of the approver for whom for whom the summary is being retrieved. Use \"me\" instead to indicate the current user. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getNonEmployeeApprovalSummary: function (requestedFor, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.getNonEmployeeApprovalSummary(requestedFor, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * The nonEmployeeBulkUploadStatus API returns the status of the newest bulk upload job for the specified source. + * @summary Bulk upload status on source + * @param {string} id Source ID (UUID) + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getNonEmployeeBulkUploadStatus: function (id, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.getNonEmployeeBulkUploadStatus(id, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This gets a non-employee record. + * @summary Get a Non-Employee Record + * @param {string} id Non-Employee record id (UUID) + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getNonEmployeeRecord: function (id, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.getNonEmployeeRecord(id, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This gets a non-employee request. + * @summary Get a Non-Employee Request + * @param {string} id Non-Employee request id (UUID) + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getNonEmployeeRequest: function (id, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.getNonEmployeeRequest(id, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This request will retrieve a summary of non-employee requests. There are two contextual uses for the `requested-for` path parameter: 1. The current user is the Org Admin, in which case he or she may request a summary of all non-employee approval requests assigned to a particular account manager by passing in that manager\'s id. 2. The current user is an account manager, in which case \"me\" should be provided as the `requested-for` value. This will provide the user with a summary of the non-employee requests in the source(s) he or she manages. + * @summary Get Summary of Non-Employee Requests + * @param {string} requestedFor The identity (UUID) of the non-employee account manager for whom the summary is being retrieved. Use \"me\" instead to indicate the current user. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getNonEmployeeRequestSummary: function (requestedFor, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.getNonEmployeeRequestSummary(requestedFor, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This API gets a schema attribute by Id for the specified Non-Employee SourceId. + * @summary Get Schema Attribute Non-Employee Source + * @param {string} attributeId The Schema Attribute Id (UUID) + * @param {string} sourceId The Source id + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getNonEmployeeSchemaAttribute: function (attributeId, sourceId, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.getNonEmployeeSchemaAttribute(attributeId, sourceId, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This gets a non-employee source. + * @summary Get a Non-Employee Source + * @param {string} sourceId Source Id + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getNonEmployeeSource: function (sourceId, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.getNonEmployeeSource(sourceId, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This API gets the list of schema attributes for the specified Non-Employee SourceId. There are 8 mandatory attributes added to each new Non-Employee Source automatically. Additionaly, user can add up to 10 custom attributes. This interface returns all the mandatory attributes followed by any custom attributes. At most, a total of 18 attributes will be returned. + * @summary List Schema Attributes Non-Employee Source + * @param {string} sourceId The Source id + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getNonEmployeeSourceSchemaAttributes: function (sourceId, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.getNonEmployeeSourceSchemaAttributes(sourceId, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This post will import, or update, Non-Employee records found in the CSV. Request will need the following security scope: \'idn:nesr:create\' + * @summary Imports, or Updates, Non-Employee Records + * @param {string} id Source Id (UUID) + * @param {any} data + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + importNonEmployeeRecordsInBulk: function (id, data, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.importNonEmployeeRecordsInBulk(id, data, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This gets a list of non-employee approval requests. + * @summary Get List of Non-Employee Approval Requests + * @param {string} [requestedFor] The identity for whom the request was made. *me* indicates the current user. + * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **approvalStatus**: *eq* + * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **created, modified** + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + listNonEmployeeApproval: function (requestedFor, limit, offset, count, filters, sorters, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.listNonEmployeeApproval(requestedFor, limit, offset, count, filters, sorters, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This gets a list of non-employee records. + * @summary List Non-Employee Records + * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **id, accountName, sourceId, manager, firstName, lastName, email, phone, startDate, endDate, created, modified** + * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **sourceId**: *eq* + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + listNonEmployeeRecords: function (limit, offset, count, sorters, filters, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.listNonEmployeeRecords(limit, offset, count, sorters, filters, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This gets a list of non-employee requests. + * @summary List Non-Employee Requests + * @param {string} requestedFor The identity for whom the request was made. *me* indicates the current user. + * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **created, approvalStatus, firstName, lastName, email, phone, accountName, startDate, endDate** + * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **sourceId**: *eq* + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + listNonEmployeeRequests: function (requestedFor, limit, offset, count, sorters, filters, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.listNonEmployeeRequests(requestedFor, limit, offset, count, sorters, filters, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This gets a list of non-employee sources. + * @summary List Non-Employee Sources + * @param {string} requestedFor The identity for whom the request was made. *me* indicates the current user. + * @param {boolean} nonEmployeeCount The flag to determine whether return a non-employee count associate with source. + * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **name, created, sourceId** + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + listNonEmployeeSources: function (requestedFor, nonEmployeeCount, limit, offset, count, sorters, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.listNonEmployeeSources(requestedFor, nonEmployeeCount, limit, offset, count, sorters, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This request will patch a non-employee record. + * @summary Patch Non-Employee Record + * @param {string} id Non-employee record id (UUID) + * @param {Array} jsonPatchOperationBeta A list of non-employee update operations according to the [JSON Patch](https://tools.ietf.org/html/rfc6902) standard. Attributes are restricted by user type. Owner of source can update end date. Organization admins can update all available fields. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + patchNonEmployeeRecord: function (id, jsonPatchOperationBeta, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.patchNonEmployeeRecord(id, jsonPatchOperationBeta, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This end-point patches a specific schema attribute for a non-employee SourceId. + * @summary Patch Non-Employee Source\'s Schema Attribute + * @param {string} attributeId The Schema Attribute Id (UUID) + * @param {string} sourceId The Source id + * @param {Array} jsonPatchOperationBeta A list of schema attribute update operations according to the [JSON Patch](https://tools.ietf.org/html/rfc6902) standard. The following properties are allowed for update \':\' \'label\', \'helpText\', \'placeholder\', \'required\'. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + patchNonEmployeeSchemaAttribute: function (attributeId, sourceId, jsonPatchOperationBeta, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.patchNonEmployeeSchemaAttribute(attributeId, sourceId, jsonPatchOperationBeta, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * patch a non-employee source. (Partial Update) Patchable field: **name, description, approvers, accountManagers** + * @summary Patch a Non-Employee Source + * @param {string} sourceId Source Id + * @param {Array} jsonPatchOperationBeta A list of non-employee source update operations according to the [JSON Patch](https://tools.ietf.org/html/rfc6902) standard. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + patchNonEmployeeSource: function (sourceId, jsonPatchOperationBeta, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.patchNonEmployeeSource(sourceId, jsonPatchOperationBeta, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This endpoint will reject an approval item request and notify user. + * @summary Reject a Non-Employee Request + * @param {string} id Non-Employee approval item id (UUID) + * @param {NonEmployeeRejectApprovalDecisionBeta} nonEmployeeRejectApprovalDecisionBeta + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + rejectNonEmployeeRequest: function (id, nonEmployeeRejectApprovalDecisionBeta, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.rejectNonEmployeeRequest(id, nonEmployeeRejectApprovalDecisionBeta, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This request will update a non-employee record. + * @summary Update Non-Employee Record + * @param {string} id Non-employee record id (UUID) + * @param {NonEmployeeRequestBodyBeta} nonEmployeeRequestBodyBeta Non-employee record creation request body. Attributes are restricted by user type. Owner of source can update end date. Organization admins can update all available fields. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + updateNonEmployeeRecord: function (id, nonEmployeeRequestBodyBeta, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.updateNonEmployeeRecord(id, nonEmployeeRequestBodyBeta, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + }; + }; + exports.NonEmployeeLifecycleManagementBetaApiFp = NonEmployeeLifecycleManagementBetaApiFp; + /** + * NonEmployeeLifecycleManagementBetaApi - factory interface + * @export + */ + var NonEmployeeLifecycleManagementBetaApiFactory = function (configuration, basePath, axios) { + var localVarFp = (0, exports.NonEmployeeLifecycleManagementBetaApiFp)(configuration); + return { + /** + * Approves a non-employee approval request and notifies the next approver. + * @summary Approve a Non-Employee Request + * @param {string} id Non-Employee approval item id (UUID) + * @param {NonEmployeeApprovalDecisionBeta} nonEmployeeApprovalDecisionBeta + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + approveNonEmployeeRequest: function (id, nonEmployeeApprovalDecisionBeta, axiosOptions) { + return localVarFp.approveNonEmployeeRequest(id, nonEmployeeApprovalDecisionBeta, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This request will create a non-employee record. Request will require the following security scope: \'idn:nesr:create\' + * @summary Create Non-Employee Record + * @param {NonEmployeeRequestBodyBeta} nonEmployeeRequestBodyBeta Non-Employee record creation request body. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + createNonEmployeeRecord: function (nonEmployeeRequestBodyBeta, axiosOptions) { + return localVarFp.createNonEmployeeRecord(nonEmployeeRequestBodyBeta, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This request will create a non-employee request and notify the approver + * @summary Create Non-Employee Request + * @param {NonEmployeeRequestBodyBeta} nonEmployeeRequestBodyBeta Non-Employee creation request body + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + createNonEmployeeRequest: function (nonEmployeeRequestBodyBeta, axiosOptions) { + return localVarFp.createNonEmployeeRequest(nonEmployeeRequestBodyBeta, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This request will create a non-employee source. Request will require the following security scope: \'idn:nesr:create\' + * @summary Create Non-Employee Source + * @param {NonEmployeeSourceRequestBodyBeta} nonEmployeeSourceRequestBodyBeta Non-Employee source creation request body. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + createNonEmployeeSource: function (nonEmployeeSourceRequestBodyBeta, axiosOptions) { + return localVarFp.createNonEmployeeSource(nonEmployeeSourceRequestBodyBeta, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This API creates a new schema attribute for Non-Employee Source. The schema technical name must be unique in the source. Attempts to create a schema attribute with an existing name will result in a \"400.1.409 Reference conflict\" response. At most, 10 custom attributes can be created per schema. Attempts to create more than 10 will result in a \"400.1.4 Limit violation\" response. + * @summary Create Non-Employee Source Schema Attribute + * @param {string} sourceId The Source id + * @param {NonEmployeeSchemaAttributeBodyBeta} nonEmployeeSchemaAttributeBodyBeta + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + createNonEmployeeSourceSchemaAttributes: function (sourceId, nonEmployeeSchemaAttributeBodyBeta, axiosOptions) { + return localVarFp.createNonEmployeeSourceSchemaAttributes(sourceId, nonEmployeeSchemaAttributeBodyBeta, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This request will delete a non-employee record. + * @summary Delete Non-Employee Record + * @param {string} id Non-Employee record id (UUID) + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + deleteNonEmployeeRecord: function (id, axiosOptions) { + return localVarFp.deleteNonEmployeeRecord(id, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This request will delete multiple non-employee records based on the non-employee ids provided. Request will require the following scope: \'idn:nesr:delete\' + * @summary Delete Multiple Non-Employee Records + * @param {DeleteNonEmployeeRecordInBulkRequestBeta} deleteNonEmployeeRecordInBulkRequestBeta Non-Employee bulk delete request body. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + deleteNonEmployeeRecordInBulk: function (deleteNonEmployeeRecordInBulkRequestBeta, axiosOptions) { + return localVarFp.deleteNonEmployeeRecordInBulk(deleteNonEmployeeRecordInBulkRequestBeta, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This request will delete a non-employee request. + * @summary Delete Non-Employee Request + * @param {string} id Non-Employee request id in the UUID format + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + deleteNonEmployeeRequest: function (id, axiosOptions) { + return localVarFp.deleteNonEmployeeRequest(id, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This end-point deletes a specific schema attribute for a non-employee source. + * @summary Delete Non-Employee Source\'s Schema Attribute + * @param {string} attributeId The Schema Attribute Id (UUID) + * @param {string} sourceId The Source id + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + deleteNonEmployeeSchemaAttribute: function (attributeId, sourceId, axiosOptions) { + return localVarFp.deleteNonEmployeeSchemaAttribute(attributeId, sourceId, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This request will delete a non-employee source. + * @summary Delete Non-Employee Source + * @param {string} sourceId Source Id + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + deleteNonEmployeeSource: function (sourceId, axiosOptions) { + return localVarFp.deleteNonEmployeeSource(sourceId, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This end-point deletes all custom schema attributes for a non-employee source. + * @summary Delete all custom schema attributes + * @param {string} sourceId The Source id + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + deleteNonEmployeeSourceSchemaAttributes: function (sourceId, axiosOptions) { + return localVarFp.deleteNonEmployeeSourceSchemaAttributes(sourceId, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This requests a CSV download for all non-employees from a provided source. + * @summary Exports Non-Employee Records to CSV + * @param {string} id Source Id (UUID) + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + exportNonEmployeeRecords: function (id, axiosOptions) { + return localVarFp.exportNonEmployeeRecords(id, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This requests a download for the Source Schema Template for a provided source. Request will require the following security scope: idn:nesr:read\' + * @summary Exports Source Schema Template + * @param {string} id Source Id (UUID) + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + exportNonEmployeeSourceSchemaTemplate: function (id, axiosOptions) { + return localVarFp.exportNonEmployeeSourceSchemaTemplate(id, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * Approves a non-employee approval request and notifies the next approver. + * @summary Get a non-employee approval item detail + * @param {string} id Non-Employee approval item id (UUID) + * @param {string} [includeDetail] The object nonEmployeeRequest will not be included detail when set to false. *Default value is true* + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getNonEmployeeApproval: function (id, includeDetail, axiosOptions) { + return localVarFp.getNonEmployeeApproval(id, includeDetail, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This request will retrieve a summary of non-employee approval requests. There are two contextual uses for the `requested-for` path parameter: 1. The current user is the Org Admin, in which case he or she may request a summary of all non-employee approval requests assigned to a particular approver by passing in that approver\'s id. 2. The current user is an approver, in which case \"me\" should be provided as the `requested-for` value. This will provide the approver with a summary of the approval items assigned to him or her. + * @summary Get Summary of Non-Employee Approval Requests + * @param {string} requestedFor The identity (UUID) of the approver for whom for whom the summary is being retrieved. Use \"me\" instead to indicate the current user. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getNonEmployeeApprovalSummary: function (requestedFor, axiosOptions) { + return localVarFp.getNonEmployeeApprovalSummary(requestedFor, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * The nonEmployeeBulkUploadStatus API returns the status of the newest bulk upload job for the specified source. + * @summary Bulk upload status on source + * @param {string} id Source ID (UUID) + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getNonEmployeeBulkUploadStatus: function (id, axiosOptions) { + return localVarFp.getNonEmployeeBulkUploadStatus(id, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This gets a non-employee record. + * @summary Get a Non-Employee Record + * @param {string} id Non-Employee record id (UUID) + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getNonEmployeeRecord: function (id, axiosOptions) { + return localVarFp.getNonEmployeeRecord(id, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This gets a non-employee request. + * @summary Get a Non-Employee Request + * @param {string} id Non-Employee request id (UUID) + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getNonEmployeeRequest: function (id, axiosOptions) { + return localVarFp.getNonEmployeeRequest(id, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This request will retrieve a summary of non-employee requests. There are two contextual uses for the `requested-for` path parameter: 1. The current user is the Org Admin, in which case he or she may request a summary of all non-employee approval requests assigned to a particular account manager by passing in that manager\'s id. 2. The current user is an account manager, in which case \"me\" should be provided as the `requested-for` value. This will provide the user with a summary of the non-employee requests in the source(s) he or she manages. + * @summary Get Summary of Non-Employee Requests + * @param {string} requestedFor The identity (UUID) of the non-employee account manager for whom the summary is being retrieved. Use \"me\" instead to indicate the current user. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getNonEmployeeRequestSummary: function (requestedFor, axiosOptions) { + return localVarFp.getNonEmployeeRequestSummary(requestedFor, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This API gets a schema attribute by Id for the specified Non-Employee SourceId. + * @summary Get Schema Attribute Non-Employee Source + * @param {string} attributeId The Schema Attribute Id (UUID) + * @param {string} sourceId The Source id + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getNonEmployeeSchemaAttribute: function (attributeId, sourceId, axiosOptions) { + return localVarFp.getNonEmployeeSchemaAttribute(attributeId, sourceId, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This gets a non-employee source. + * @summary Get a Non-Employee Source + * @param {string} sourceId Source Id + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getNonEmployeeSource: function (sourceId, axiosOptions) { + return localVarFp.getNonEmployeeSource(sourceId, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This API gets the list of schema attributes for the specified Non-Employee SourceId. There are 8 mandatory attributes added to each new Non-Employee Source automatically. Additionaly, user can add up to 10 custom attributes. This interface returns all the mandatory attributes followed by any custom attributes. At most, a total of 18 attributes will be returned. + * @summary List Schema Attributes Non-Employee Source + * @param {string} sourceId The Source id + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getNonEmployeeSourceSchemaAttributes: function (sourceId, axiosOptions) { + return localVarFp.getNonEmployeeSourceSchemaAttributes(sourceId, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This post will import, or update, Non-Employee records found in the CSV. Request will need the following security scope: \'idn:nesr:create\' + * @summary Imports, or Updates, Non-Employee Records + * @param {string} id Source Id (UUID) + * @param {any} data + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + importNonEmployeeRecordsInBulk: function (id, data, axiosOptions) { + return localVarFp.importNonEmployeeRecordsInBulk(id, data, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This gets a list of non-employee approval requests. + * @summary Get List of Non-Employee Approval Requests + * @param {string} [requestedFor] The identity for whom the request was made. *me* indicates the current user. + * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **approvalStatus**: *eq* + * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **created, modified** + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + listNonEmployeeApproval: function (requestedFor, limit, offset, count, filters, sorters, axiosOptions) { + return localVarFp.listNonEmployeeApproval(requestedFor, limit, offset, count, filters, sorters, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This gets a list of non-employee records. + * @summary List Non-Employee Records + * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **id, accountName, sourceId, manager, firstName, lastName, email, phone, startDate, endDate, created, modified** + * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **sourceId**: *eq* + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + listNonEmployeeRecords: function (limit, offset, count, sorters, filters, axiosOptions) { + return localVarFp.listNonEmployeeRecords(limit, offset, count, sorters, filters, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This gets a list of non-employee requests. + * @summary List Non-Employee Requests + * @param {string} requestedFor The identity for whom the request was made. *me* indicates the current user. + * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **created, approvalStatus, firstName, lastName, email, phone, accountName, startDate, endDate** + * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **sourceId**: *eq* + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + listNonEmployeeRequests: function (requestedFor, limit, offset, count, sorters, filters, axiosOptions) { + return localVarFp.listNonEmployeeRequests(requestedFor, limit, offset, count, sorters, filters, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This gets a list of non-employee sources. + * @summary List Non-Employee Sources + * @param {string} requestedFor The identity for whom the request was made. *me* indicates the current user. + * @param {boolean} nonEmployeeCount The flag to determine whether return a non-employee count associate with source. + * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **name, created, sourceId** + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + listNonEmployeeSources: function (requestedFor, nonEmployeeCount, limit, offset, count, sorters, axiosOptions) { + return localVarFp.listNonEmployeeSources(requestedFor, nonEmployeeCount, limit, offset, count, sorters, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This request will patch a non-employee record. + * @summary Patch Non-Employee Record + * @param {string} id Non-employee record id (UUID) + * @param {Array} jsonPatchOperationBeta A list of non-employee update operations according to the [JSON Patch](https://tools.ietf.org/html/rfc6902) standard. Attributes are restricted by user type. Owner of source can update end date. Organization admins can update all available fields. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + patchNonEmployeeRecord: function (id, jsonPatchOperationBeta, axiosOptions) { + return localVarFp.patchNonEmployeeRecord(id, jsonPatchOperationBeta, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This end-point patches a specific schema attribute for a non-employee SourceId. + * @summary Patch Non-Employee Source\'s Schema Attribute + * @param {string} attributeId The Schema Attribute Id (UUID) + * @param {string} sourceId The Source id + * @param {Array} jsonPatchOperationBeta A list of schema attribute update operations according to the [JSON Patch](https://tools.ietf.org/html/rfc6902) standard. The following properties are allowed for update \':\' \'label\', \'helpText\', \'placeholder\', \'required\'. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + patchNonEmployeeSchemaAttribute: function (attributeId, sourceId, jsonPatchOperationBeta, axiosOptions) { + return localVarFp.patchNonEmployeeSchemaAttribute(attributeId, sourceId, jsonPatchOperationBeta, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * patch a non-employee source. (Partial Update) Patchable field: **name, description, approvers, accountManagers** + * @summary Patch a Non-Employee Source + * @param {string} sourceId Source Id + * @param {Array} jsonPatchOperationBeta A list of non-employee source update operations according to the [JSON Patch](https://tools.ietf.org/html/rfc6902) standard. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + patchNonEmployeeSource: function (sourceId, jsonPatchOperationBeta, axiosOptions) { + return localVarFp.patchNonEmployeeSource(sourceId, jsonPatchOperationBeta, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This endpoint will reject an approval item request and notify user. + * @summary Reject a Non-Employee Request + * @param {string} id Non-Employee approval item id (UUID) + * @param {NonEmployeeRejectApprovalDecisionBeta} nonEmployeeRejectApprovalDecisionBeta + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + rejectNonEmployeeRequest: function (id, nonEmployeeRejectApprovalDecisionBeta, axiosOptions) { + return localVarFp.rejectNonEmployeeRequest(id, nonEmployeeRejectApprovalDecisionBeta, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This request will update a non-employee record. + * @summary Update Non-Employee Record + * @param {string} id Non-employee record id (UUID) + * @param {NonEmployeeRequestBodyBeta} nonEmployeeRequestBodyBeta Non-employee record creation request body. Attributes are restricted by user type. Owner of source can update end date. Organization admins can update all available fields. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + updateNonEmployeeRecord: function (id, nonEmployeeRequestBodyBeta, axiosOptions) { + return localVarFp.updateNonEmployeeRecord(id, nonEmployeeRequestBodyBeta, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + }; + }; + exports.NonEmployeeLifecycleManagementBetaApiFactory = NonEmployeeLifecycleManagementBetaApiFactory; + /** + * NonEmployeeLifecycleManagementBetaApi - object-oriented interface + * @export + * @class NonEmployeeLifecycleManagementBetaApi + * @extends {BaseAPI} + */ + var NonEmployeeLifecycleManagementBetaApi = /** @class */ (function (_super) { + __extends(NonEmployeeLifecycleManagementBetaApi, _super); + function NonEmployeeLifecycleManagementBetaApi() { + return _super !== null && _super.apply(this, arguments) || this; + } + /** + * Approves a non-employee approval request and notifies the next approver. + * @summary Approve a Non-Employee Request + * @param {NonEmployeeLifecycleManagementBetaApiApproveNonEmployeeRequestRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof NonEmployeeLifecycleManagementBetaApi + */ + NonEmployeeLifecycleManagementBetaApi.prototype.approveNonEmployeeRequest = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.NonEmployeeLifecycleManagementBetaApiFp)(this.configuration).approveNonEmployeeRequest(requestParameters.id, requestParameters.nonEmployeeApprovalDecisionBeta, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This request will create a non-employee record. Request will require the following security scope: \'idn:nesr:create\' + * @summary Create Non-Employee Record + * @param {NonEmployeeLifecycleManagementBetaApiCreateNonEmployeeRecordRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof NonEmployeeLifecycleManagementBetaApi + */ + NonEmployeeLifecycleManagementBetaApi.prototype.createNonEmployeeRecord = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.NonEmployeeLifecycleManagementBetaApiFp)(this.configuration).createNonEmployeeRecord(requestParameters.nonEmployeeRequestBodyBeta, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This request will create a non-employee request and notify the approver + * @summary Create Non-Employee Request + * @param {NonEmployeeLifecycleManagementBetaApiCreateNonEmployeeRequestRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof NonEmployeeLifecycleManagementBetaApi + */ + NonEmployeeLifecycleManagementBetaApi.prototype.createNonEmployeeRequest = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.NonEmployeeLifecycleManagementBetaApiFp)(this.configuration).createNonEmployeeRequest(requestParameters.nonEmployeeRequestBodyBeta, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This request will create a non-employee source. Request will require the following security scope: \'idn:nesr:create\' + * @summary Create Non-Employee Source + * @param {NonEmployeeLifecycleManagementBetaApiCreateNonEmployeeSourceRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof NonEmployeeLifecycleManagementBetaApi + */ + NonEmployeeLifecycleManagementBetaApi.prototype.createNonEmployeeSource = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.NonEmployeeLifecycleManagementBetaApiFp)(this.configuration).createNonEmployeeSource(requestParameters.nonEmployeeSourceRequestBodyBeta, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This API creates a new schema attribute for Non-Employee Source. The schema technical name must be unique in the source. Attempts to create a schema attribute with an existing name will result in a \"400.1.409 Reference conflict\" response. At most, 10 custom attributes can be created per schema. Attempts to create more than 10 will result in a \"400.1.4 Limit violation\" response. + * @summary Create Non-Employee Source Schema Attribute + * @param {NonEmployeeLifecycleManagementBetaApiCreateNonEmployeeSourceSchemaAttributesRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof NonEmployeeLifecycleManagementBetaApi + */ + NonEmployeeLifecycleManagementBetaApi.prototype.createNonEmployeeSourceSchemaAttributes = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.NonEmployeeLifecycleManagementBetaApiFp)(this.configuration).createNonEmployeeSourceSchemaAttributes(requestParameters.sourceId, requestParameters.nonEmployeeSchemaAttributeBodyBeta, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This request will delete a non-employee record. + * @summary Delete Non-Employee Record + * @param {NonEmployeeLifecycleManagementBetaApiDeleteNonEmployeeRecordRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof NonEmployeeLifecycleManagementBetaApi + */ + NonEmployeeLifecycleManagementBetaApi.prototype.deleteNonEmployeeRecord = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.NonEmployeeLifecycleManagementBetaApiFp)(this.configuration).deleteNonEmployeeRecord(requestParameters.id, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This request will delete multiple non-employee records based on the non-employee ids provided. Request will require the following scope: \'idn:nesr:delete\' + * @summary Delete Multiple Non-Employee Records + * @param {NonEmployeeLifecycleManagementBetaApiDeleteNonEmployeeRecordInBulkRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof NonEmployeeLifecycleManagementBetaApi + */ + NonEmployeeLifecycleManagementBetaApi.prototype.deleteNonEmployeeRecordInBulk = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.NonEmployeeLifecycleManagementBetaApiFp)(this.configuration).deleteNonEmployeeRecordInBulk(requestParameters.deleteNonEmployeeRecordInBulkRequestBeta, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This request will delete a non-employee request. + * @summary Delete Non-Employee Request + * @param {NonEmployeeLifecycleManagementBetaApiDeleteNonEmployeeRequestRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof NonEmployeeLifecycleManagementBetaApi + */ + NonEmployeeLifecycleManagementBetaApi.prototype.deleteNonEmployeeRequest = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.NonEmployeeLifecycleManagementBetaApiFp)(this.configuration).deleteNonEmployeeRequest(requestParameters.id, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This end-point deletes a specific schema attribute for a non-employee source. + * @summary Delete Non-Employee Source\'s Schema Attribute + * @param {NonEmployeeLifecycleManagementBetaApiDeleteNonEmployeeSchemaAttributeRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof NonEmployeeLifecycleManagementBetaApi + */ + NonEmployeeLifecycleManagementBetaApi.prototype.deleteNonEmployeeSchemaAttribute = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.NonEmployeeLifecycleManagementBetaApiFp)(this.configuration).deleteNonEmployeeSchemaAttribute(requestParameters.attributeId, requestParameters.sourceId, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This request will delete a non-employee source. + * @summary Delete Non-Employee Source + * @param {NonEmployeeLifecycleManagementBetaApiDeleteNonEmployeeSourceRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof NonEmployeeLifecycleManagementBetaApi + */ + NonEmployeeLifecycleManagementBetaApi.prototype.deleteNonEmployeeSource = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.NonEmployeeLifecycleManagementBetaApiFp)(this.configuration).deleteNonEmployeeSource(requestParameters.sourceId, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This end-point deletes all custom schema attributes for a non-employee source. + * @summary Delete all custom schema attributes + * @param {NonEmployeeLifecycleManagementBetaApiDeleteNonEmployeeSourceSchemaAttributesRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof NonEmployeeLifecycleManagementBetaApi + */ + NonEmployeeLifecycleManagementBetaApi.prototype.deleteNonEmployeeSourceSchemaAttributes = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.NonEmployeeLifecycleManagementBetaApiFp)(this.configuration).deleteNonEmployeeSourceSchemaAttributes(requestParameters.sourceId, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This requests a CSV download for all non-employees from a provided source. + * @summary Exports Non-Employee Records to CSV + * @param {NonEmployeeLifecycleManagementBetaApiExportNonEmployeeRecordsRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof NonEmployeeLifecycleManagementBetaApi + */ + NonEmployeeLifecycleManagementBetaApi.prototype.exportNonEmployeeRecords = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.NonEmployeeLifecycleManagementBetaApiFp)(this.configuration).exportNonEmployeeRecords(requestParameters.id, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This requests a download for the Source Schema Template for a provided source. Request will require the following security scope: idn:nesr:read\' + * @summary Exports Source Schema Template + * @param {NonEmployeeLifecycleManagementBetaApiExportNonEmployeeSourceSchemaTemplateRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof NonEmployeeLifecycleManagementBetaApi + */ + NonEmployeeLifecycleManagementBetaApi.prototype.exportNonEmployeeSourceSchemaTemplate = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.NonEmployeeLifecycleManagementBetaApiFp)(this.configuration).exportNonEmployeeSourceSchemaTemplate(requestParameters.id, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * Approves a non-employee approval request and notifies the next approver. + * @summary Get a non-employee approval item detail + * @param {NonEmployeeLifecycleManagementBetaApiGetNonEmployeeApprovalRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof NonEmployeeLifecycleManagementBetaApi + */ + NonEmployeeLifecycleManagementBetaApi.prototype.getNonEmployeeApproval = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.NonEmployeeLifecycleManagementBetaApiFp)(this.configuration).getNonEmployeeApproval(requestParameters.id, requestParameters.includeDetail, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This request will retrieve a summary of non-employee approval requests. There are two contextual uses for the `requested-for` path parameter: 1. The current user is the Org Admin, in which case he or she may request a summary of all non-employee approval requests assigned to a particular approver by passing in that approver\'s id. 2. The current user is an approver, in which case \"me\" should be provided as the `requested-for` value. This will provide the approver with a summary of the approval items assigned to him or her. + * @summary Get Summary of Non-Employee Approval Requests + * @param {NonEmployeeLifecycleManagementBetaApiGetNonEmployeeApprovalSummaryRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof NonEmployeeLifecycleManagementBetaApi + */ + NonEmployeeLifecycleManagementBetaApi.prototype.getNonEmployeeApprovalSummary = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.NonEmployeeLifecycleManagementBetaApiFp)(this.configuration).getNonEmployeeApprovalSummary(requestParameters.requestedFor, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * The nonEmployeeBulkUploadStatus API returns the status of the newest bulk upload job for the specified source. + * @summary Bulk upload status on source + * @param {NonEmployeeLifecycleManagementBetaApiGetNonEmployeeBulkUploadStatusRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof NonEmployeeLifecycleManagementBetaApi + */ + NonEmployeeLifecycleManagementBetaApi.prototype.getNonEmployeeBulkUploadStatus = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.NonEmployeeLifecycleManagementBetaApiFp)(this.configuration).getNonEmployeeBulkUploadStatus(requestParameters.id, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This gets a non-employee record. + * @summary Get a Non-Employee Record + * @param {NonEmployeeLifecycleManagementBetaApiGetNonEmployeeRecordRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof NonEmployeeLifecycleManagementBetaApi + */ + NonEmployeeLifecycleManagementBetaApi.prototype.getNonEmployeeRecord = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.NonEmployeeLifecycleManagementBetaApiFp)(this.configuration).getNonEmployeeRecord(requestParameters.id, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This gets a non-employee request. + * @summary Get a Non-Employee Request + * @param {NonEmployeeLifecycleManagementBetaApiGetNonEmployeeRequestRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof NonEmployeeLifecycleManagementBetaApi + */ + NonEmployeeLifecycleManagementBetaApi.prototype.getNonEmployeeRequest = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.NonEmployeeLifecycleManagementBetaApiFp)(this.configuration).getNonEmployeeRequest(requestParameters.id, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This request will retrieve a summary of non-employee requests. There are two contextual uses for the `requested-for` path parameter: 1. The current user is the Org Admin, in which case he or she may request a summary of all non-employee approval requests assigned to a particular account manager by passing in that manager\'s id. 2. The current user is an account manager, in which case \"me\" should be provided as the `requested-for` value. This will provide the user with a summary of the non-employee requests in the source(s) he or she manages. + * @summary Get Summary of Non-Employee Requests + * @param {NonEmployeeLifecycleManagementBetaApiGetNonEmployeeRequestSummaryRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof NonEmployeeLifecycleManagementBetaApi + */ + NonEmployeeLifecycleManagementBetaApi.prototype.getNonEmployeeRequestSummary = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.NonEmployeeLifecycleManagementBetaApiFp)(this.configuration).getNonEmployeeRequestSummary(requestParameters.requestedFor, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This API gets a schema attribute by Id for the specified Non-Employee SourceId. + * @summary Get Schema Attribute Non-Employee Source + * @param {NonEmployeeLifecycleManagementBetaApiGetNonEmployeeSchemaAttributeRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof NonEmployeeLifecycleManagementBetaApi + */ + NonEmployeeLifecycleManagementBetaApi.prototype.getNonEmployeeSchemaAttribute = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.NonEmployeeLifecycleManagementBetaApiFp)(this.configuration).getNonEmployeeSchemaAttribute(requestParameters.attributeId, requestParameters.sourceId, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This gets a non-employee source. + * @summary Get a Non-Employee Source + * @param {NonEmployeeLifecycleManagementBetaApiGetNonEmployeeSourceRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof NonEmployeeLifecycleManagementBetaApi + */ + NonEmployeeLifecycleManagementBetaApi.prototype.getNonEmployeeSource = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.NonEmployeeLifecycleManagementBetaApiFp)(this.configuration).getNonEmployeeSource(requestParameters.sourceId, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This API gets the list of schema attributes for the specified Non-Employee SourceId. There are 8 mandatory attributes added to each new Non-Employee Source automatically. Additionaly, user can add up to 10 custom attributes. This interface returns all the mandatory attributes followed by any custom attributes. At most, a total of 18 attributes will be returned. + * @summary List Schema Attributes Non-Employee Source + * @param {NonEmployeeLifecycleManagementBetaApiGetNonEmployeeSourceSchemaAttributesRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof NonEmployeeLifecycleManagementBetaApi + */ + NonEmployeeLifecycleManagementBetaApi.prototype.getNonEmployeeSourceSchemaAttributes = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.NonEmployeeLifecycleManagementBetaApiFp)(this.configuration).getNonEmployeeSourceSchemaAttributes(requestParameters.sourceId, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This post will import, or update, Non-Employee records found in the CSV. Request will need the following security scope: \'idn:nesr:create\' + * @summary Imports, or Updates, Non-Employee Records + * @param {NonEmployeeLifecycleManagementBetaApiImportNonEmployeeRecordsInBulkRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof NonEmployeeLifecycleManagementBetaApi + */ + NonEmployeeLifecycleManagementBetaApi.prototype.importNonEmployeeRecordsInBulk = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.NonEmployeeLifecycleManagementBetaApiFp)(this.configuration).importNonEmployeeRecordsInBulk(requestParameters.id, requestParameters.data, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This gets a list of non-employee approval requests. + * @summary Get List of Non-Employee Approval Requests + * @param {NonEmployeeLifecycleManagementBetaApiListNonEmployeeApprovalRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof NonEmployeeLifecycleManagementBetaApi + */ + NonEmployeeLifecycleManagementBetaApi.prototype.listNonEmployeeApproval = function (requestParameters, axiosOptions) { + var _this = this; + if (requestParameters === void 0) { requestParameters = {}; } + return (0, exports.NonEmployeeLifecycleManagementBetaApiFp)(this.configuration).listNonEmployeeApproval(requestParameters.requestedFor, requestParameters.limit, requestParameters.offset, requestParameters.count, requestParameters.filters, requestParameters.sorters, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This gets a list of non-employee records. + * @summary List Non-Employee Records + * @param {NonEmployeeLifecycleManagementBetaApiListNonEmployeeRecordsRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof NonEmployeeLifecycleManagementBetaApi + */ + NonEmployeeLifecycleManagementBetaApi.prototype.listNonEmployeeRecords = function (requestParameters, axiosOptions) { + var _this = this; + if (requestParameters === void 0) { requestParameters = {}; } + return (0, exports.NonEmployeeLifecycleManagementBetaApiFp)(this.configuration).listNonEmployeeRecords(requestParameters.limit, requestParameters.offset, requestParameters.count, requestParameters.sorters, requestParameters.filters, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This gets a list of non-employee requests. + * @summary List Non-Employee Requests + * @param {NonEmployeeLifecycleManagementBetaApiListNonEmployeeRequestsRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof NonEmployeeLifecycleManagementBetaApi + */ + NonEmployeeLifecycleManagementBetaApi.prototype.listNonEmployeeRequests = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.NonEmployeeLifecycleManagementBetaApiFp)(this.configuration).listNonEmployeeRequests(requestParameters.requestedFor, requestParameters.limit, requestParameters.offset, requestParameters.count, requestParameters.sorters, requestParameters.filters, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This gets a list of non-employee sources. + * @summary List Non-Employee Sources + * @param {NonEmployeeLifecycleManagementBetaApiListNonEmployeeSourcesRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof NonEmployeeLifecycleManagementBetaApi + */ + NonEmployeeLifecycleManagementBetaApi.prototype.listNonEmployeeSources = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.NonEmployeeLifecycleManagementBetaApiFp)(this.configuration).listNonEmployeeSources(requestParameters.requestedFor, requestParameters.nonEmployeeCount, requestParameters.limit, requestParameters.offset, requestParameters.count, requestParameters.sorters, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This request will patch a non-employee record. + * @summary Patch Non-Employee Record + * @param {NonEmployeeLifecycleManagementBetaApiPatchNonEmployeeRecordRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof NonEmployeeLifecycleManagementBetaApi + */ + NonEmployeeLifecycleManagementBetaApi.prototype.patchNonEmployeeRecord = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.NonEmployeeLifecycleManagementBetaApiFp)(this.configuration).patchNonEmployeeRecord(requestParameters.id, requestParameters.jsonPatchOperationBeta, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This end-point patches a specific schema attribute for a non-employee SourceId. + * @summary Patch Non-Employee Source\'s Schema Attribute + * @param {NonEmployeeLifecycleManagementBetaApiPatchNonEmployeeSchemaAttributeRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof NonEmployeeLifecycleManagementBetaApi + */ + NonEmployeeLifecycleManagementBetaApi.prototype.patchNonEmployeeSchemaAttribute = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.NonEmployeeLifecycleManagementBetaApiFp)(this.configuration).patchNonEmployeeSchemaAttribute(requestParameters.attributeId, requestParameters.sourceId, requestParameters.jsonPatchOperationBeta, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * patch a non-employee source. (Partial Update) Patchable field: **name, description, approvers, accountManagers** + * @summary Patch a Non-Employee Source + * @param {NonEmployeeLifecycleManagementBetaApiPatchNonEmployeeSourceRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof NonEmployeeLifecycleManagementBetaApi + */ + NonEmployeeLifecycleManagementBetaApi.prototype.patchNonEmployeeSource = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.NonEmployeeLifecycleManagementBetaApiFp)(this.configuration).patchNonEmployeeSource(requestParameters.sourceId, requestParameters.jsonPatchOperationBeta, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This endpoint will reject an approval item request and notify user. + * @summary Reject a Non-Employee Request + * @param {NonEmployeeLifecycleManagementBetaApiRejectNonEmployeeRequestRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof NonEmployeeLifecycleManagementBetaApi + */ + NonEmployeeLifecycleManagementBetaApi.prototype.rejectNonEmployeeRequest = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.NonEmployeeLifecycleManagementBetaApiFp)(this.configuration).rejectNonEmployeeRequest(requestParameters.id, requestParameters.nonEmployeeRejectApprovalDecisionBeta, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This request will update a non-employee record. + * @summary Update Non-Employee Record + * @param {NonEmployeeLifecycleManagementBetaApiUpdateNonEmployeeRecordRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof NonEmployeeLifecycleManagementBetaApi + */ + NonEmployeeLifecycleManagementBetaApi.prototype.updateNonEmployeeRecord = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.NonEmployeeLifecycleManagementBetaApiFp)(this.configuration).updateNonEmployeeRecord(requestParameters.id, requestParameters.nonEmployeeRequestBodyBeta, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + return NonEmployeeLifecycleManagementBetaApi; + }(base_1.BaseAPI)); + exports.NonEmployeeLifecycleManagementBetaApi = NonEmployeeLifecycleManagementBetaApi; + /** + * NotificationsBetaApi - axios parameter creator + * @export + */ + var NotificationsBetaApiAxiosParamCreator = function (configuration) { + var _this = this; + return { + /** + * Create a domain to be verified via DKIM (DomainKeys Identified Mail) + * @summary Verify domain address via DKIM + * @param {DomainAddressBeta} domainAddressBeta + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + createDomainDkim: function (domainAddressBeta, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'domainAddressBeta' is not null or undefined + (0, common_1.assertParamExists)('createDomainDkim', 'domainAddressBeta', domainAddressBeta); + localVarPath = "/verified-domains"; + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + localVarHeaderParameter['Content-Type'] = 'application/json'; + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(domainAddressBeta, localVarRequestOptions, configuration); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This creates a template for your site. You can also use this endpoint to update a template. First, copy the response body from the [get notification template endpoint](https://developer.sailpoint.com/idn/api/beta/get-notification-template) for a template you wish to update and paste it into the request body for this endpoint. Modify the fields you want to change and submit the POST request when ready. + * @summary Create Notification Template + * @param {TemplateDtoBeta} templateDtoBeta + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + createNotificationTemplate: function (templateDtoBeta, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'templateDtoBeta' is not null or undefined + (0, common_1.assertParamExists)('createNotificationTemplate', 'templateDtoBeta', templateDtoBeta); + localVarPath = "/notification-templates"; + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + localVarHeaderParameter['Content-Type'] = 'application/json'; + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(templateDtoBeta, localVarRequestOptions, configuration); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * Create a new sender email address and initiate verification process. + * @summary Create Verified From Address + * @param {EmailStatusDtoBeta} emailStatusDtoBeta + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + createVerifiedFromAddress: function (emailStatusDtoBeta, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'emailStatusDtoBeta' is not null or undefined + (0, common_1.assertParamExists)('createVerifiedFromAddress', 'emailStatusDtoBeta', emailStatusDtoBeta); + localVarPath = "/verified-from-addresses"; + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + localVarHeaderParameter['Content-Type'] = 'application/json'; + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(emailStatusDtoBeta, localVarRequestOptions, configuration); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This lets you bulk delete templates that you previously created for your site. Since this is a beta feature, you can only delete a subset of your notifications, i.e. ones that show up in the list call. + * @summary Bulk Delete Notification Templates + * @param {Array} templateBulkDeleteDtoBeta + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + deleteNotificationTemplatesInBulk: function (templateBulkDeleteDtoBeta, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'templateBulkDeleteDtoBeta' is not null or undefined + (0, common_1.assertParamExists)('deleteNotificationTemplatesInBulk', 'templateBulkDeleteDtoBeta', templateBulkDeleteDtoBeta); + localVarPath = "/notification-templates/bulk-delete"; + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + localVarHeaderParameter['Content-Type'] = 'application/json'; + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(templateBulkDeleteDtoBeta, localVarRequestOptions, configuration); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * Delete a verified sender email address + * @summary Delete Verified From Address + * @param {string} id + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + deleteVerifiedFromAddress: function (id, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'id' is not null or undefined + (0, common_1.assertParamExists)('deleteVerifiedFromAddress', 'id', id); + localVarPath = "/verified-from-addresses/{id}" + .replace("{".concat("id", "}"), encodeURIComponent(String(id))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'DELETE' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * Retrieve DKIM (DomainKeys Identified Mail) attributes for all your tenants\' AWS SES identities. Limits retrieval to 100 identities per call. + * @summary Get DKIM Attributes + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getDkimAttributes: function (axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + localVarPath = "/verified-domains"; + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * Retrieve MAIL FROM attributes for a given AWS SES identity. + * @summary Get MAIL FROM Attributes + * @param {string} id Returns the MX and TXT record to be put in your DNS, as well as the MAIL FROM domain status + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getMailFromAttributes: function (id, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'id' is not null or undefined + (0, common_1.assertParamExists)('getMailFromAttributes', 'id', id); + localVarPath = "/mail-from-attributes/{identity}"; + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + if (id !== undefined) { + localVarQueryParameter['id'] = id; + } + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * Returns the notification preferences for tenant. Note that if the key doesn\'t exist, then a 404 will be returned. Request will require the following legacy roles: ORG_ADMIN and API + * @summary Get Notification Preferences for tenant. + * @param {string} key The notification key. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getNotificationPreference: function (key, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'key' is not null or undefined + (0, common_1.assertParamExists)('getNotificationPreference', 'key', key); + localVarPath = "/notification-preferences/{key}" + .replace("{".concat("key", "}"), encodeURIComponent(String(key))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This gets a template that you have modified for your site by Id. + * @summary Get Notification Template By Id + * @param {string} id Id of the Notification Template + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getNotificationTemplate: function (id, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'id' is not null or undefined + (0, common_1.assertParamExists)('getNotificationTemplate', 'id', id); + localVarPath = "/notification-templates/{id}" + .replace("{".concat("id", "}"), encodeURIComponent(String(id))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * The notification service (Hermes) maintains metadata to construct the notification templates or supply any information during the event propagation. The data-store where this information is retrieved is called \"Global Context\" (a.k.a. notification template context). It defines a set of attributes that will be available per tenant (organization). Regarding authorization, the access token contains the tenant and will grant access to the one requested. Requires the following security scope: idn:notification-templates:read + * @summary Get Notification Template Context + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getNotificationsTemplateContext: function (axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + localVarPath = "/notification-template-context"; + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * Retrieve a list of sender email addresses and their verification statuses + * @summary List From Addresses + * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **email**: *eq, co, ge, le, sw* + * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **email** + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + listFromAddresses: function (limit, offset, count, filters, sorters, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + localVarPath = "/verified-from-addresses"; + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + if (limit !== undefined) { + localVarQueryParameter['limit'] = limit; + } + if (offset !== undefined) { + localVarQueryParameter['offset'] = offset; + } + if (count !== undefined) { + localVarQueryParameter['count'] = count; + } + if (filters !== undefined) { + localVarQueryParameter['filters'] = filters; + } + if (sorters !== undefined) { + localVarQueryParameter['sorters'] = sorters; + } + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This lists the default templates used for notifications, such as emails from IdentityNow. Since this is a beta feature, it doesn\'t include all the templates. + * @summary List Notification Template Defaults + * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **key**: *eq, in, co, sw* **medium**: *eq, co, sw* **locale**: *eq, co, sw* + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + listNotificationTemplateDefaults: function (limit, offset, filters, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + localVarPath = "/notification-template-defaults"; + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + if (limit !== undefined) { + localVarQueryParameter['limit'] = limit; + } + if (offset !== undefined) { + localVarQueryParameter['offset'] = offset; + } + if (filters !== undefined) { + localVarQueryParameter['filters'] = filters; + } + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This lists the templates that you have modified for your site. Since this is a beta feature, it doesn\'t include all your modified templates. + * @summary List Notification Templates + * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **key**: *eq, in, co, sw* **medium**: *eq, co, sw* **locale**: *eq, co, sw* + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + listNotificationTemplates: function (limit, offset, filters, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + localVarPath = "/notification-templates"; + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + if (limit !== undefined) { + localVarQueryParameter['limit'] = limit; + } + if (offset !== undefined) { + localVarQueryParameter['offset'] = offset; + } + if (filters !== undefined) { + localVarQueryParameter['filters'] = filters; + } + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * Change the MAIL FROM domain of an AWS SES email identity and provide the MX and TXT records to be placed in the caller\'s DNS + * @summary Change MAIL FROM domain + * @param {MailFromAttributesDtoBeta} mailFromAttributesDtoBeta + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + putMailFromAttributes: function (mailFromAttributesDtoBeta, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'mailFromAttributesDtoBeta' is not null or undefined + (0, common_1.assertParamExists)('putMailFromAttributes', 'mailFromAttributesDtoBeta', mailFromAttributesDtoBeta); + localVarPath = "/mail-from-attributes"; + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'PUT' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + localVarHeaderParameter['Content-Type'] = 'application/json'; + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(mailFromAttributesDtoBeta, localVarRequestOptions, configuration); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * In the notification world, a notification flows through these salient stages - 1. Interest matching, 2. Preferences 3. Template Rendering. The default notification preferences make up a part of the second stage, along with user preferences (which is a future goal). The expectation is for admins to be able to set default preferences for their org, like opting in to or out of certain notifications, and configuring future preferences as we tack on more features. The key in the Dto is not necessary but if it is provided and doesn\'t match the key in the URI, then a 400 will be thrown. Request will require the following legacy roles: ORG_ADMIN and API + * @summary Overwrite the preferences for the given notification key. + * @param {string} key The notification key. + * @param {PreferencesDtoBeta} preferencesDtoBeta + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + putNotificationPreference: function (key, preferencesDtoBeta, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'key' is not null or undefined + (0, common_1.assertParamExists)('putNotificationPreference', 'key', key); + // verify required parameter 'preferencesDtoBeta' is not null or undefined + (0, common_1.assertParamExists)('putNotificationPreference', 'preferencesDtoBeta', preferencesDtoBeta); + localVarPath = "/notification-preferences/{key}" + .replace("{".concat("key", "}"), encodeURIComponent(String(key))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'PUT' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + localVarHeaderParameter['Content-Type'] = 'application/json'; + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(preferencesDtoBeta, localVarRequestOptions, configuration); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * Send a Test Notification + * @summary Send Test Notification + * @param {SendTestNotificationRequestDtoBeta} sendTestNotificationRequestDtoBeta + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + sendTestNotification: function (sendTestNotificationRequestDtoBeta, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'sendTestNotificationRequestDtoBeta' is not null or undefined + (0, common_1.assertParamExists)('sendTestNotification', 'sendTestNotificationRequestDtoBeta', sendTestNotificationRequestDtoBeta); + localVarPath = "/send-test-notification"; + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + localVarHeaderParameter['Content-Type'] = 'application/json'; + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(sendTestNotificationRequestDtoBeta, localVarRequestOptions, configuration); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + }; + }; + exports.NotificationsBetaApiAxiosParamCreator = NotificationsBetaApiAxiosParamCreator; + /** + * NotificationsBetaApi - functional programming interface + * @export + */ + var NotificationsBetaApiFp = function (configuration) { + var localVarAxiosParamCreator = (0, exports.NotificationsBetaApiAxiosParamCreator)(configuration); + return { + /** + * Create a domain to be verified via DKIM (DomainKeys Identified Mail) + * @summary Verify domain address via DKIM + * @param {DomainAddressBeta} domainAddressBeta + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + createDomainDkim: function (domainAddressBeta, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.createDomainDkim(domainAddressBeta, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This creates a template for your site. You can also use this endpoint to update a template. First, copy the response body from the [get notification template endpoint](https://developer.sailpoint.com/idn/api/beta/get-notification-template) for a template you wish to update and paste it into the request body for this endpoint. Modify the fields you want to change and submit the POST request when ready. + * @summary Create Notification Template + * @param {TemplateDtoBeta} templateDtoBeta + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + createNotificationTemplate: function (templateDtoBeta, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.createNotificationTemplate(templateDtoBeta, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * Create a new sender email address and initiate verification process. + * @summary Create Verified From Address + * @param {EmailStatusDtoBeta} emailStatusDtoBeta + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + createVerifiedFromAddress: function (emailStatusDtoBeta, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.createVerifiedFromAddress(emailStatusDtoBeta, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This lets you bulk delete templates that you previously created for your site. Since this is a beta feature, you can only delete a subset of your notifications, i.e. ones that show up in the list call. + * @summary Bulk Delete Notification Templates + * @param {Array} templateBulkDeleteDtoBeta + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + deleteNotificationTemplatesInBulk: function (templateBulkDeleteDtoBeta, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.deleteNotificationTemplatesInBulk(templateBulkDeleteDtoBeta, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * Delete a verified sender email address + * @summary Delete Verified From Address + * @param {string} id + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + deleteVerifiedFromAddress: function (id, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.deleteVerifiedFromAddress(id, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * Retrieve DKIM (DomainKeys Identified Mail) attributes for all your tenants\' AWS SES identities. Limits retrieval to 100 identities per call. + * @summary Get DKIM Attributes + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getDkimAttributes: function (axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.getDkimAttributes(axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * Retrieve MAIL FROM attributes for a given AWS SES identity. + * @summary Get MAIL FROM Attributes + * @param {string} id Returns the MX and TXT record to be put in your DNS, as well as the MAIL FROM domain status + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getMailFromAttributes: function (id, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.getMailFromAttributes(id, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * Returns the notification preferences for tenant. Note that if the key doesn\'t exist, then a 404 will be returned. Request will require the following legacy roles: ORG_ADMIN and API + * @summary Get Notification Preferences for tenant. + * @param {string} key The notification key. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getNotificationPreference: function (key, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.getNotificationPreference(key, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This gets a template that you have modified for your site by Id. + * @summary Get Notification Template By Id + * @param {string} id Id of the Notification Template + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getNotificationTemplate: function (id, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.getNotificationTemplate(id, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * The notification service (Hermes) maintains metadata to construct the notification templates or supply any information during the event propagation. The data-store where this information is retrieved is called \"Global Context\" (a.k.a. notification template context). It defines a set of attributes that will be available per tenant (organization). Regarding authorization, the access token contains the tenant and will grant access to the one requested. Requires the following security scope: idn:notification-templates:read + * @summary Get Notification Template Context + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getNotificationsTemplateContext: function (axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.getNotificationsTemplateContext(axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * Retrieve a list of sender email addresses and their verification statuses + * @summary List From Addresses + * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **email**: *eq, co, ge, le, sw* + * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **email** + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + listFromAddresses: function (limit, offset, count, filters, sorters, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.listFromAddresses(limit, offset, count, filters, sorters, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This lists the default templates used for notifications, such as emails from IdentityNow. Since this is a beta feature, it doesn\'t include all the templates. + * @summary List Notification Template Defaults + * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **key**: *eq, in, co, sw* **medium**: *eq, co, sw* **locale**: *eq, co, sw* + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + listNotificationTemplateDefaults: function (limit, offset, filters, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.listNotificationTemplateDefaults(limit, offset, filters, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This lists the templates that you have modified for your site. Since this is a beta feature, it doesn\'t include all your modified templates. + * @summary List Notification Templates + * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **key**: *eq, in, co, sw* **medium**: *eq, co, sw* **locale**: *eq, co, sw* + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + listNotificationTemplates: function (limit, offset, filters, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.listNotificationTemplates(limit, offset, filters, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * Change the MAIL FROM domain of an AWS SES email identity and provide the MX and TXT records to be placed in the caller\'s DNS + * @summary Change MAIL FROM domain + * @param {MailFromAttributesDtoBeta} mailFromAttributesDtoBeta + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + putMailFromAttributes: function (mailFromAttributesDtoBeta, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.putMailFromAttributes(mailFromAttributesDtoBeta, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * In the notification world, a notification flows through these salient stages - 1. Interest matching, 2. Preferences 3. Template Rendering. The default notification preferences make up a part of the second stage, along with user preferences (which is a future goal). The expectation is for admins to be able to set default preferences for their org, like opting in to or out of certain notifications, and configuring future preferences as we tack on more features. The key in the Dto is not necessary but if it is provided and doesn\'t match the key in the URI, then a 400 will be thrown. Request will require the following legacy roles: ORG_ADMIN and API + * @summary Overwrite the preferences for the given notification key. + * @param {string} key The notification key. + * @param {PreferencesDtoBeta} preferencesDtoBeta + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + putNotificationPreference: function (key, preferencesDtoBeta, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.putNotificationPreference(key, preferencesDtoBeta, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * Send a Test Notification + * @summary Send Test Notification + * @param {SendTestNotificationRequestDtoBeta} sendTestNotificationRequestDtoBeta + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + sendTestNotification: function (sendTestNotificationRequestDtoBeta, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.sendTestNotification(sendTestNotificationRequestDtoBeta, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + }; + }; + exports.NotificationsBetaApiFp = NotificationsBetaApiFp; + /** + * NotificationsBetaApi - factory interface + * @export + */ + var NotificationsBetaApiFactory = function (configuration, basePath, axios) { + var localVarFp = (0, exports.NotificationsBetaApiFp)(configuration); + return { + /** + * Create a domain to be verified via DKIM (DomainKeys Identified Mail) + * @summary Verify domain address via DKIM + * @param {DomainAddressBeta} domainAddressBeta + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + createDomainDkim: function (domainAddressBeta, axiosOptions) { + return localVarFp.createDomainDkim(domainAddressBeta, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This creates a template for your site. You can also use this endpoint to update a template. First, copy the response body from the [get notification template endpoint](https://developer.sailpoint.com/idn/api/beta/get-notification-template) for a template you wish to update and paste it into the request body for this endpoint. Modify the fields you want to change and submit the POST request when ready. + * @summary Create Notification Template + * @param {TemplateDtoBeta} templateDtoBeta + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + createNotificationTemplate: function (templateDtoBeta, axiosOptions) { + return localVarFp.createNotificationTemplate(templateDtoBeta, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * Create a new sender email address and initiate verification process. + * @summary Create Verified From Address + * @param {EmailStatusDtoBeta} emailStatusDtoBeta + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + createVerifiedFromAddress: function (emailStatusDtoBeta, axiosOptions) { + return localVarFp.createVerifiedFromAddress(emailStatusDtoBeta, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This lets you bulk delete templates that you previously created for your site. Since this is a beta feature, you can only delete a subset of your notifications, i.e. ones that show up in the list call. + * @summary Bulk Delete Notification Templates + * @param {Array} templateBulkDeleteDtoBeta + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + deleteNotificationTemplatesInBulk: function (templateBulkDeleteDtoBeta, axiosOptions) { + return localVarFp.deleteNotificationTemplatesInBulk(templateBulkDeleteDtoBeta, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * Delete a verified sender email address + * @summary Delete Verified From Address + * @param {string} id + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + deleteVerifiedFromAddress: function (id, axiosOptions) { + return localVarFp.deleteVerifiedFromAddress(id, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * Retrieve DKIM (DomainKeys Identified Mail) attributes for all your tenants\' AWS SES identities. Limits retrieval to 100 identities per call. + * @summary Get DKIM Attributes + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getDkimAttributes: function (axiosOptions) { + return localVarFp.getDkimAttributes(axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * Retrieve MAIL FROM attributes for a given AWS SES identity. + * @summary Get MAIL FROM Attributes + * @param {string} id Returns the MX and TXT record to be put in your DNS, as well as the MAIL FROM domain status + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getMailFromAttributes: function (id, axiosOptions) { + return localVarFp.getMailFromAttributes(id, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * Returns the notification preferences for tenant. Note that if the key doesn\'t exist, then a 404 will be returned. Request will require the following legacy roles: ORG_ADMIN and API + * @summary Get Notification Preferences for tenant. + * @param {string} key The notification key. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getNotificationPreference: function (key, axiosOptions) { + return localVarFp.getNotificationPreference(key, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This gets a template that you have modified for your site by Id. + * @summary Get Notification Template By Id + * @param {string} id Id of the Notification Template + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getNotificationTemplate: function (id, axiosOptions) { + return localVarFp.getNotificationTemplate(id, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * The notification service (Hermes) maintains metadata to construct the notification templates or supply any information during the event propagation. The data-store where this information is retrieved is called \"Global Context\" (a.k.a. notification template context). It defines a set of attributes that will be available per tenant (organization). Regarding authorization, the access token contains the tenant and will grant access to the one requested. Requires the following security scope: idn:notification-templates:read + * @summary Get Notification Template Context + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getNotificationsTemplateContext: function (axiosOptions) { + return localVarFp.getNotificationsTemplateContext(axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * Retrieve a list of sender email addresses and their verification statuses + * @summary List From Addresses + * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **email**: *eq, co, ge, le, sw* + * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **email** + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + listFromAddresses: function (limit, offset, count, filters, sorters, axiosOptions) { + return localVarFp.listFromAddresses(limit, offset, count, filters, sorters, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This lists the default templates used for notifications, such as emails from IdentityNow. Since this is a beta feature, it doesn\'t include all the templates. + * @summary List Notification Template Defaults + * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **key**: *eq, in, co, sw* **medium**: *eq, co, sw* **locale**: *eq, co, sw* + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + listNotificationTemplateDefaults: function (limit, offset, filters, axiosOptions) { + return localVarFp.listNotificationTemplateDefaults(limit, offset, filters, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This lists the templates that you have modified for your site. Since this is a beta feature, it doesn\'t include all your modified templates. + * @summary List Notification Templates + * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **key**: *eq, in, co, sw* **medium**: *eq, co, sw* **locale**: *eq, co, sw* + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + listNotificationTemplates: function (limit, offset, filters, axiosOptions) { + return localVarFp.listNotificationTemplates(limit, offset, filters, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * Change the MAIL FROM domain of an AWS SES email identity and provide the MX and TXT records to be placed in the caller\'s DNS + * @summary Change MAIL FROM domain + * @param {MailFromAttributesDtoBeta} mailFromAttributesDtoBeta + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + putMailFromAttributes: function (mailFromAttributesDtoBeta, axiosOptions) { + return localVarFp.putMailFromAttributes(mailFromAttributesDtoBeta, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * In the notification world, a notification flows through these salient stages - 1. Interest matching, 2. Preferences 3. Template Rendering. The default notification preferences make up a part of the second stage, along with user preferences (which is a future goal). The expectation is for admins to be able to set default preferences for their org, like opting in to or out of certain notifications, and configuring future preferences as we tack on more features. The key in the Dto is not necessary but if it is provided and doesn\'t match the key in the URI, then a 400 will be thrown. Request will require the following legacy roles: ORG_ADMIN and API + * @summary Overwrite the preferences for the given notification key. + * @param {string} key The notification key. + * @param {PreferencesDtoBeta} preferencesDtoBeta + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + putNotificationPreference: function (key, preferencesDtoBeta, axiosOptions) { + return localVarFp.putNotificationPreference(key, preferencesDtoBeta, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * Send a Test Notification + * @summary Send Test Notification + * @param {SendTestNotificationRequestDtoBeta} sendTestNotificationRequestDtoBeta + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + sendTestNotification: function (sendTestNotificationRequestDtoBeta, axiosOptions) { + return localVarFp.sendTestNotification(sendTestNotificationRequestDtoBeta, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + }; + }; + exports.NotificationsBetaApiFactory = NotificationsBetaApiFactory; + /** + * NotificationsBetaApi - object-oriented interface + * @export + * @class NotificationsBetaApi + * @extends {BaseAPI} + */ + var NotificationsBetaApi = /** @class */ (function (_super) { + __extends(NotificationsBetaApi, _super); + function NotificationsBetaApi() { + return _super !== null && _super.apply(this, arguments) || this; + } + /** + * Create a domain to be verified via DKIM (DomainKeys Identified Mail) + * @summary Verify domain address via DKIM + * @param {NotificationsBetaApiCreateDomainDkimRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof NotificationsBetaApi + */ + NotificationsBetaApi.prototype.createDomainDkim = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.NotificationsBetaApiFp)(this.configuration).createDomainDkim(requestParameters.domainAddressBeta, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This creates a template for your site. You can also use this endpoint to update a template. First, copy the response body from the [get notification template endpoint](https://developer.sailpoint.com/idn/api/beta/get-notification-template) for a template you wish to update and paste it into the request body for this endpoint. Modify the fields you want to change and submit the POST request when ready. + * @summary Create Notification Template + * @param {NotificationsBetaApiCreateNotificationTemplateRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof NotificationsBetaApi + */ + NotificationsBetaApi.prototype.createNotificationTemplate = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.NotificationsBetaApiFp)(this.configuration).createNotificationTemplate(requestParameters.templateDtoBeta, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * Create a new sender email address and initiate verification process. + * @summary Create Verified From Address + * @param {NotificationsBetaApiCreateVerifiedFromAddressRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof NotificationsBetaApi + */ + NotificationsBetaApi.prototype.createVerifiedFromAddress = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.NotificationsBetaApiFp)(this.configuration).createVerifiedFromAddress(requestParameters.emailStatusDtoBeta, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This lets you bulk delete templates that you previously created for your site. Since this is a beta feature, you can only delete a subset of your notifications, i.e. ones that show up in the list call. + * @summary Bulk Delete Notification Templates + * @param {NotificationsBetaApiDeleteNotificationTemplatesInBulkRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof NotificationsBetaApi + */ + NotificationsBetaApi.prototype.deleteNotificationTemplatesInBulk = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.NotificationsBetaApiFp)(this.configuration).deleteNotificationTemplatesInBulk(requestParameters.templateBulkDeleteDtoBeta, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * Delete a verified sender email address + * @summary Delete Verified From Address + * @param {NotificationsBetaApiDeleteVerifiedFromAddressRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof NotificationsBetaApi + */ + NotificationsBetaApi.prototype.deleteVerifiedFromAddress = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.NotificationsBetaApiFp)(this.configuration).deleteVerifiedFromAddress(requestParameters.id, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * Retrieve DKIM (DomainKeys Identified Mail) attributes for all your tenants\' AWS SES identities. Limits retrieval to 100 identities per call. + * @summary Get DKIM Attributes + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof NotificationsBetaApi + */ + NotificationsBetaApi.prototype.getDkimAttributes = function (axiosOptions) { + var _this = this; + return (0, exports.NotificationsBetaApiFp)(this.configuration).getDkimAttributes(axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * Retrieve MAIL FROM attributes for a given AWS SES identity. + * @summary Get MAIL FROM Attributes + * @param {NotificationsBetaApiGetMailFromAttributesRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof NotificationsBetaApi + */ + NotificationsBetaApi.prototype.getMailFromAttributes = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.NotificationsBetaApiFp)(this.configuration).getMailFromAttributes(requestParameters.id, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * Returns the notification preferences for tenant. Note that if the key doesn\'t exist, then a 404 will be returned. Request will require the following legacy roles: ORG_ADMIN and API + * @summary Get Notification Preferences for tenant. + * @param {NotificationsBetaApiGetNotificationPreferenceRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof NotificationsBetaApi + */ + NotificationsBetaApi.prototype.getNotificationPreference = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.NotificationsBetaApiFp)(this.configuration).getNotificationPreference(requestParameters.key, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This gets a template that you have modified for your site by Id. + * @summary Get Notification Template By Id + * @param {NotificationsBetaApiGetNotificationTemplateRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof NotificationsBetaApi + */ + NotificationsBetaApi.prototype.getNotificationTemplate = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.NotificationsBetaApiFp)(this.configuration).getNotificationTemplate(requestParameters.id, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * The notification service (Hermes) maintains metadata to construct the notification templates or supply any information during the event propagation. The data-store where this information is retrieved is called \"Global Context\" (a.k.a. notification template context). It defines a set of attributes that will be available per tenant (organization). Regarding authorization, the access token contains the tenant and will grant access to the one requested. Requires the following security scope: idn:notification-templates:read + * @summary Get Notification Template Context + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof NotificationsBetaApi + */ + NotificationsBetaApi.prototype.getNotificationsTemplateContext = function (axiosOptions) { + var _this = this; + return (0, exports.NotificationsBetaApiFp)(this.configuration).getNotificationsTemplateContext(axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * Retrieve a list of sender email addresses and their verification statuses + * @summary List From Addresses + * @param {NotificationsBetaApiListFromAddressesRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof NotificationsBetaApi + */ + NotificationsBetaApi.prototype.listFromAddresses = function (requestParameters, axiosOptions) { + var _this = this; + if (requestParameters === void 0) { requestParameters = {}; } + return (0, exports.NotificationsBetaApiFp)(this.configuration).listFromAddresses(requestParameters.limit, requestParameters.offset, requestParameters.count, requestParameters.filters, requestParameters.sorters, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This lists the default templates used for notifications, such as emails from IdentityNow. Since this is a beta feature, it doesn\'t include all the templates. + * @summary List Notification Template Defaults + * @param {NotificationsBetaApiListNotificationTemplateDefaultsRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof NotificationsBetaApi + */ + NotificationsBetaApi.prototype.listNotificationTemplateDefaults = function (requestParameters, axiosOptions) { + var _this = this; + if (requestParameters === void 0) { requestParameters = {}; } + return (0, exports.NotificationsBetaApiFp)(this.configuration).listNotificationTemplateDefaults(requestParameters.limit, requestParameters.offset, requestParameters.filters, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This lists the templates that you have modified for your site. Since this is a beta feature, it doesn\'t include all your modified templates. + * @summary List Notification Templates + * @param {NotificationsBetaApiListNotificationTemplatesRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof NotificationsBetaApi + */ + NotificationsBetaApi.prototype.listNotificationTemplates = function (requestParameters, axiosOptions) { + var _this = this; + if (requestParameters === void 0) { requestParameters = {}; } + return (0, exports.NotificationsBetaApiFp)(this.configuration).listNotificationTemplates(requestParameters.limit, requestParameters.offset, requestParameters.filters, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * Change the MAIL FROM domain of an AWS SES email identity and provide the MX and TXT records to be placed in the caller\'s DNS + * @summary Change MAIL FROM domain + * @param {NotificationsBetaApiPutMailFromAttributesRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof NotificationsBetaApi + */ + NotificationsBetaApi.prototype.putMailFromAttributes = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.NotificationsBetaApiFp)(this.configuration).putMailFromAttributes(requestParameters.mailFromAttributesDtoBeta, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * In the notification world, a notification flows through these salient stages - 1. Interest matching, 2. Preferences 3. Template Rendering. The default notification preferences make up a part of the second stage, along with user preferences (which is a future goal). The expectation is for admins to be able to set default preferences for their org, like opting in to or out of certain notifications, and configuring future preferences as we tack on more features. The key in the Dto is not necessary but if it is provided and doesn\'t match the key in the URI, then a 400 will be thrown. Request will require the following legacy roles: ORG_ADMIN and API + * @summary Overwrite the preferences for the given notification key. + * @param {NotificationsBetaApiPutNotificationPreferenceRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof NotificationsBetaApi + */ + NotificationsBetaApi.prototype.putNotificationPreference = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.NotificationsBetaApiFp)(this.configuration).putNotificationPreference(requestParameters.key, requestParameters.preferencesDtoBeta, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * Send a Test Notification + * @summary Send Test Notification + * @param {NotificationsBetaApiSendTestNotificationRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof NotificationsBetaApi + */ + NotificationsBetaApi.prototype.sendTestNotification = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.NotificationsBetaApiFp)(this.configuration).sendTestNotification(requestParameters.sendTestNotificationRequestDtoBeta, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + return NotificationsBetaApi; + }(base_1.BaseAPI)); + exports.NotificationsBetaApi = NotificationsBetaApi; + /** + * OAuthClientsBetaApi - axios parameter creator + * @export + */ + var OAuthClientsBetaApiAxiosParamCreator = function (configuration) { + var _this = this; + return { + /** + * This creates an OAuth client. + * @summary Create OAuth Client + * @param {CreateOAuthClientRequestBeta} createOAuthClientRequestBeta + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + createOauthClient: function (createOAuthClientRequestBeta, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'createOAuthClientRequestBeta' is not null or undefined + (0, common_1.assertParamExists)('createOauthClient', 'createOAuthClientRequestBeta', createOAuthClientRequestBeta); + localVarPath = "/oauth-clients"; + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + localVarHeaderParameter['Content-Type'] = 'application/json'; + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(createOAuthClientRequestBeta, localVarRequestOptions, configuration); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This deletes an OAuth client. + * @summary Delete OAuth Client + * @param {string} id The OAuth client id + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + deleteOauthClient: function (id, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'id' is not null or undefined + (0, common_1.assertParamExists)('deleteOauthClient', 'id', id); + localVarPath = "/oauth-clients/{id}" + .replace("{".concat("id", "}"), encodeURIComponent(String(id))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'DELETE' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This gets details of an OAuth client. + * @summary Get OAuth Client + * @param {string} id The OAuth client id + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getOauthClient: function (id, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'id' is not null or undefined + (0, common_1.assertParamExists)('getOauthClient', 'id', id); + localVarPath = "/oauth-clients/{id}" + .replace("{".concat("id", "}"), encodeURIComponent(String(id))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This gets a list of OAuth clients. + * @summary List OAuth Clients + * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **lastUsed**: *le, isnull* + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + listOauthClients: function (filters, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + localVarPath = "/oauth-clients"; + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + if (filters !== undefined) { + localVarQueryParameter['filters'] = filters; + } + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This performs a targeted update to the field(s) of an OAuth client. Request will require a security scope of - sp:oauth-client:manage + * @summary Patch OAuth Client + * @param {string} id The OAuth client id + * @param {Array} jsonPatchOperationBeta A list of OAuth client update operations according to the [JSON Patch](https://tools.ietf.org/html/rfc6902) standard. The following fields are patchable: * tenant * businessName * homepageUrl * name * description * accessTokenValiditySeconds * refreshTokenValiditySeconds * redirectUris * grantTypes * accessType * enabled * strongAuthSupported * claimsSupported + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + patchOauthClient: function (id, jsonPatchOperationBeta, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'id' is not null or undefined + (0, common_1.assertParamExists)('patchOauthClient', 'id', id); + // verify required parameter 'jsonPatchOperationBeta' is not null or undefined + (0, common_1.assertParamExists)('patchOauthClient', 'jsonPatchOperationBeta', jsonPatchOperationBeta); + localVarPath = "/oauth-clients/{id}" + .replace("{".concat("id", "}"), encodeURIComponent(String(id))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'PATCH' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + localVarHeaderParameter['Content-Type'] = 'application/json-patch+json'; + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(jsonPatchOperationBeta, localVarRequestOptions, configuration); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + }; + }; + exports.OAuthClientsBetaApiAxiosParamCreator = OAuthClientsBetaApiAxiosParamCreator; + /** + * OAuthClientsBetaApi - functional programming interface + * @export + */ + var OAuthClientsBetaApiFp = function (configuration) { + var localVarAxiosParamCreator = (0, exports.OAuthClientsBetaApiAxiosParamCreator)(configuration); + return { + /** + * This creates an OAuth client. + * @summary Create OAuth Client + * @param {CreateOAuthClientRequestBeta} createOAuthClientRequestBeta + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + createOauthClient: function (createOAuthClientRequestBeta, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.createOauthClient(createOAuthClientRequestBeta, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This deletes an OAuth client. + * @summary Delete OAuth Client + * @param {string} id The OAuth client id + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + deleteOauthClient: function (id, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.deleteOauthClient(id, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This gets details of an OAuth client. + * @summary Get OAuth Client + * @param {string} id The OAuth client id + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getOauthClient: function (id, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.getOauthClient(id, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This gets a list of OAuth clients. + * @summary List OAuth Clients + * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **lastUsed**: *le, isnull* + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + listOauthClients: function (filters, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.listOauthClients(filters, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This performs a targeted update to the field(s) of an OAuth client. Request will require a security scope of - sp:oauth-client:manage + * @summary Patch OAuth Client + * @param {string} id The OAuth client id + * @param {Array} jsonPatchOperationBeta A list of OAuth client update operations according to the [JSON Patch](https://tools.ietf.org/html/rfc6902) standard. The following fields are patchable: * tenant * businessName * homepageUrl * name * description * accessTokenValiditySeconds * refreshTokenValiditySeconds * redirectUris * grantTypes * accessType * enabled * strongAuthSupported * claimsSupported + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + patchOauthClient: function (id, jsonPatchOperationBeta, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.patchOauthClient(id, jsonPatchOperationBeta, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + }; + }; + exports.OAuthClientsBetaApiFp = OAuthClientsBetaApiFp; + /** + * OAuthClientsBetaApi - factory interface + * @export + */ + var OAuthClientsBetaApiFactory = function (configuration, basePath, axios) { + var localVarFp = (0, exports.OAuthClientsBetaApiFp)(configuration); + return { + /** + * This creates an OAuth client. + * @summary Create OAuth Client + * @param {CreateOAuthClientRequestBeta} createOAuthClientRequestBeta + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + createOauthClient: function (createOAuthClientRequestBeta, axiosOptions) { + return localVarFp.createOauthClient(createOAuthClientRequestBeta, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This deletes an OAuth client. + * @summary Delete OAuth Client + * @param {string} id The OAuth client id + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + deleteOauthClient: function (id, axiosOptions) { + return localVarFp.deleteOauthClient(id, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This gets details of an OAuth client. + * @summary Get OAuth Client + * @param {string} id The OAuth client id + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getOauthClient: function (id, axiosOptions) { + return localVarFp.getOauthClient(id, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This gets a list of OAuth clients. + * @summary List OAuth Clients + * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **lastUsed**: *le, isnull* + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + listOauthClients: function (filters, axiosOptions) { + return localVarFp.listOauthClients(filters, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This performs a targeted update to the field(s) of an OAuth client. Request will require a security scope of - sp:oauth-client:manage + * @summary Patch OAuth Client + * @param {string} id The OAuth client id + * @param {Array} jsonPatchOperationBeta A list of OAuth client update operations according to the [JSON Patch](https://tools.ietf.org/html/rfc6902) standard. The following fields are patchable: * tenant * businessName * homepageUrl * name * description * accessTokenValiditySeconds * refreshTokenValiditySeconds * redirectUris * grantTypes * accessType * enabled * strongAuthSupported * claimsSupported + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + patchOauthClient: function (id, jsonPatchOperationBeta, axiosOptions) { + return localVarFp.patchOauthClient(id, jsonPatchOperationBeta, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + }; + }; + exports.OAuthClientsBetaApiFactory = OAuthClientsBetaApiFactory; + /** + * OAuthClientsBetaApi - object-oriented interface + * @export + * @class OAuthClientsBetaApi + * @extends {BaseAPI} + */ + var OAuthClientsBetaApi = /** @class */ (function (_super) { + __extends(OAuthClientsBetaApi, _super); + function OAuthClientsBetaApi() { + return _super !== null && _super.apply(this, arguments) || this; + } + /** + * This creates an OAuth client. + * @summary Create OAuth Client + * @param {OAuthClientsBetaApiCreateOauthClientRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof OAuthClientsBetaApi + */ + OAuthClientsBetaApi.prototype.createOauthClient = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.OAuthClientsBetaApiFp)(this.configuration).createOauthClient(requestParameters.createOAuthClientRequestBeta, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This deletes an OAuth client. + * @summary Delete OAuth Client + * @param {OAuthClientsBetaApiDeleteOauthClientRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof OAuthClientsBetaApi + */ + OAuthClientsBetaApi.prototype.deleteOauthClient = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.OAuthClientsBetaApiFp)(this.configuration).deleteOauthClient(requestParameters.id, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This gets details of an OAuth client. + * @summary Get OAuth Client + * @param {OAuthClientsBetaApiGetOauthClientRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof OAuthClientsBetaApi + */ + OAuthClientsBetaApi.prototype.getOauthClient = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.OAuthClientsBetaApiFp)(this.configuration).getOauthClient(requestParameters.id, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This gets a list of OAuth clients. + * @summary List OAuth Clients + * @param {OAuthClientsBetaApiListOauthClientsRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof OAuthClientsBetaApi + */ + OAuthClientsBetaApi.prototype.listOauthClients = function (requestParameters, axiosOptions) { + var _this = this; + if (requestParameters === void 0) { requestParameters = {}; } + return (0, exports.OAuthClientsBetaApiFp)(this.configuration).listOauthClients(requestParameters.filters, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This performs a targeted update to the field(s) of an OAuth client. Request will require a security scope of - sp:oauth-client:manage + * @summary Patch OAuth Client + * @param {OAuthClientsBetaApiPatchOauthClientRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof OAuthClientsBetaApi + */ + OAuthClientsBetaApi.prototype.patchOauthClient = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.OAuthClientsBetaApiFp)(this.configuration).patchOauthClient(requestParameters.id, requestParameters.jsonPatchOperationBeta, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + return OAuthClientsBetaApi; + }(base_1.BaseAPI)); + exports.OAuthClientsBetaApi = OAuthClientsBetaApi; + /** + * OrgConfigBetaApi - axios parameter creator + * @export + */ + var OrgConfigBetaApiAxiosParamCreator = function (configuration) { + var _this = this; + return { + /** + * Get org configuration with only external (org admin) accessible properties for the current org. + * @summary Get Org configuration settings + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getOrgConfig: function (axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + localVarPath = "/org-config"; + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * Get a list of valid time zones that can be set in org configurations. + * @summary Get list of time zones + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getValidTimeZones: function (axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + localVarPath = "/org-config/valid-time-zones"; + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * Patch configuration of the current org using http://jsonpatch.com/ syntax. Commonly used for changing the time zone of an org. + * @summary Patch an Org configuration property + * @param {Array} jsonPatchOperationBeta A list of schema attribute update operations according to the [JSON Patch](https://tools.ietf.org/html/rfc6902) standard. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + patchOrgConfig: function (jsonPatchOperationBeta, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'jsonPatchOperationBeta' is not null or undefined + (0, common_1.assertParamExists)('patchOrgConfig', 'jsonPatchOperationBeta', jsonPatchOperationBeta); + localVarPath = "/org-config"; + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'PATCH' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + localVarHeaderParameter['Content-Type'] = 'application/json-patch+json'; + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(jsonPatchOperationBeta, localVarRequestOptions, configuration); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + }; + }; + exports.OrgConfigBetaApiAxiosParamCreator = OrgConfigBetaApiAxiosParamCreator; + /** + * OrgConfigBetaApi - functional programming interface + * @export + */ + var OrgConfigBetaApiFp = function (configuration) { + var localVarAxiosParamCreator = (0, exports.OrgConfigBetaApiAxiosParamCreator)(configuration); + return { + /** + * Get org configuration with only external (org admin) accessible properties for the current org. + * @summary Get Org configuration settings + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getOrgConfig: function (axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.getOrgConfig(axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * Get a list of valid time zones that can be set in org configurations. + * @summary Get list of time zones + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getValidTimeZones: function (axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.getValidTimeZones(axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * Patch configuration of the current org using http://jsonpatch.com/ syntax. Commonly used for changing the time zone of an org. + * @summary Patch an Org configuration property + * @param {Array} jsonPatchOperationBeta A list of schema attribute update operations according to the [JSON Patch](https://tools.ietf.org/html/rfc6902) standard. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + patchOrgConfig: function (jsonPatchOperationBeta, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.patchOrgConfig(jsonPatchOperationBeta, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + }; + }; + exports.OrgConfigBetaApiFp = OrgConfigBetaApiFp; + /** + * OrgConfigBetaApi - factory interface + * @export + */ + var OrgConfigBetaApiFactory = function (configuration, basePath, axios) { + var localVarFp = (0, exports.OrgConfigBetaApiFp)(configuration); + return { + /** + * Get org configuration with only external (org admin) accessible properties for the current org. + * @summary Get Org configuration settings + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getOrgConfig: function (axiosOptions) { + return localVarFp.getOrgConfig(axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * Get a list of valid time zones that can be set in org configurations. + * @summary Get list of time zones + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getValidTimeZones: function (axiosOptions) { + return localVarFp.getValidTimeZones(axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * Patch configuration of the current org using http://jsonpatch.com/ syntax. Commonly used for changing the time zone of an org. + * @summary Patch an Org configuration property + * @param {Array} jsonPatchOperationBeta A list of schema attribute update operations according to the [JSON Patch](https://tools.ietf.org/html/rfc6902) standard. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + patchOrgConfig: function (jsonPatchOperationBeta, axiosOptions) { + return localVarFp.patchOrgConfig(jsonPatchOperationBeta, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + }; + }; + exports.OrgConfigBetaApiFactory = OrgConfigBetaApiFactory; + /** + * OrgConfigBetaApi - object-oriented interface + * @export + * @class OrgConfigBetaApi + * @extends {BaseAPI} + */ + var OrgConfigBetaApi = /** @class */ (function (_super) { + __extends(OrgConfigBetaApi, _super); + function OrgConfigBetaApi() { + return _super !== null && _super.apply(this, arguments) || this; + } + /** + * Get org configuration with only external (org admin) accessible properties for the current org. + * @summary Get Org configuration settings + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof OrgConfigBetaApi + */ + OrgConfigBetaApi.prototype.getOrgConfig = function (axiosOptions) { + var _this = this; + return (0, exports.OrgConfigBetaApiFp)(this.configuration).getOrgConfig(axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * Get a list of valid time zones that can be set in org configurations. + * @summary Get list of time zones + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof OrgConfigBetaApi + */ + OrgConfigBetaApi.prototype.getValidTimeZones = function (axiosOptions) { + var _this = this; + return (0, exports.OrgConfigBetaApiFp)(this.configuration).getValidTimeZones(axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * Patch configuration of the current org using http://jsonpatch.com/ syntax. Commonly used for changing the time zone of an org. + * @summary Patch an Org configuration property + * @param {OrgConfigBetaApiPatchOrgConfigRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof OrgConfigBetaApi + */ + OrgConfigBetaApi.prototype.patchOrgConfig = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.OrgConfigBetaApiFp)(this.configuration).patchOrgConfig(requestParameters.jsonPatchOperationBeta, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + return OrgConfigBetaApi; + }(base_1.BaseAPI)); + exports.OrgConfigBetaApi = OrgConfigBetaApi; + /** + * PasswordConfigurationBetaApi - axios parameter creator + * @export + */ + var PasswordConfigurationBetaApiAxiosParamCreator = function (configuration) { + var _this = this; + return { + /** + * This API creates the password org config. Unspecified fields will use default value. To be able to use the custom password instructions, you must set the `customInstructionsEnabled` field to \"true\". Requires ORG_ADMIN, API role or authorization scope of \'idn:password-org-config:write\' + * @summary Create Password Org Config + * @param {PasswordOrgConfigBeta} passwordOrgConfigBeta + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + createPasswordOrgConfig: function (passwordOrgConfigBeta, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'passwordOrgConfigBeta' is not null or undefined + (0, common_1.assertParamExists)('createPasswordOrgConfig', 'passwordOrgConfigBeta', passwordOrgConfigBeta); + localVarPath = "/password-org-config"; + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + localVarHeaderParameter['Content-Type'] = 'application/json'; + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(passwordOrgConfigBeta, localVarRequestOptions, configuration); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This API returns the password org config . Requires ORG_ADMIN, API role or authorization scope of \'idn:password-org-config:read\' + * @summary Get Password Org Config + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getPasswordOrgConfig: function (axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + localVarPath = "/password-org-config"; + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This API updates the password org config for specified fields. Other fields will keep original value. You must set the `customInstructionsEnabled` field to \"true\" to be able to use custom password instructions. Requires ORG_ADMIN, API role or authorization scope of \'idn:password-org-config:write\' + * @summary Update Password Org Config + * @param {PasswordOrgConfigBeta} passwordOrgConfigBeta + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + putPasswordOrgConfig: function (passwordOrgConfigBeta, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'passwordOrgConfigBeta' is not null or undefined + (0, common_1.assertParamExists)('putPasswordOrgConfig', 'passwordOrgConfigBeta', passwordOrgConfigBeta); + localVarPath = "/password-org-config"; + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'PUT' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + localVarHeaderParameter['Content-Type'] = 'application/json'; + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(passwordOrgConfigBeta, localVarRequestOptions, configuration); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + }; + }; + exports.PasswordConfigurationBetaApiAxiosParamCreator = PasswordConfigurationBetaApiAxiosParamCreator; + /** + * PasswordConfigurationBetaApi - functional programming interface + * @export + */ + var PasswordConfigurationBetaApiFp = function (configuration) { + var localVarAxiosParamCreator = (0, exports.PasswordConfigurationBetaApiAxiosParamCreator)(configuration); + return { + /** + * This API creates the password org config. Unspecified fields will use default value. To be able to use the custom password instructions, you must set the `customInstructionsEnabled` field to \"true\". Requires ORG_ADMIN, API role or authorization scope of \'idn:password-org-config:write\' + * @summary Create Password Org Config + * @param {PasswordOrgConfigBeta} passwordOrgConfigBeta + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + createPasswordOrgConfig: function (passwordOrgConfigBeta, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.createPasswordOrgConfig(passwordOrgConfigBeta, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This API returns the password org config . Requires ORG_ADMIN, API role or authorization scope of \'idn:password-org-config:read\' + * @summary Get Password Org Config + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getPasswordOrgConfig: function (axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.getPasswordOrgConfig(axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This API updates the password org config for specified fields. Other fields will keep original value. You must set the `customInstructionsEnabled` field to \"true\" to be able to use custom password instructions. Requires ORG_ADMIN, API role or authorization scope of \'idn:password-org-config:write\' + * @summary Update Password Org Config + * @param {PasswordOrgConfigBeta} passwordOrgConfigBeta + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + putPasswordOrgConfig: function (passwordOrgConfigBeta, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.putPasswordOrgConfig(passwordOrgConfigBeta, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + }; + }; + exports.PasswordConfigurationBetaApiFp = PasswordConfigurationBetaApiFp; + /** + * PasswordConfigurationBetaApi - factory interface + * @export + */ + var PasswordConfigurationBetaApiFactory = function (configuration, basePath, axios) { + var localVarFp = (0, exports.PasswordConfigurationBetaApiFp)(configuration); + return { + /** + * This API creates the password org config. Unspecified fields will use default value. To be able to use the custom password instructions, you must set the `customInstructionsEnabled` field to \"true\". Requires ORG_ADMIN, API role or authorization scope of \'idn:password-org-config:write\' + * @summary Create Password Org Config + * @param {PasswordOrgConfigBeta} passwordOrgConfigBeta + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + createPasswordOrgConfig: function (passwordOrgConfigBeta, axiosOptions) { + return localVarFp.createPasswordOrgConfig(passwordOrgConfigBeta, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This API returns the password org config . Requires ORG_ADMIN, API role or authorization scope of \'idn:password-org-config:read\' + * @summary Get Password Org Config + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getPasswordOrgConfig: function (axiosOptions) { + return localVarFp.getPasswordOrgConfig(axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This API updates the password org config for specified fields. Other fields will keep original value. You must set the `customInstructionsEnabled` field to \"true\" to be able to use custom password instructions. Requires ORG_ADMIN, API role or authorization scope of \'idn:password-org-config:write\' + * @summary Update Password Org Config + * @param {PasswordOrgConfigBeta} passwordOrgConfigBeta + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + putPasswordOrgConfig: function (passwordOrgConfigBeta, axiosOptions) { + return localVarFp.putPasswordOrgConfig(passwordOrgConfigBeta, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + }; + }; + exports.PasswordConfigurationBetaApiFactory = PasswordConfigurationBetaApiFactory; + /** + * PasswordConfigurationBetaApi - object-oriented interface + * @export + * @class PasswordConfigurationBetaApi + * @extends {BaseAPI} + */ + var PasswordConfigurationBetaApi = /** @class */ (function (_super) { + __extends(PasswordConfigurationBetaApi, _super); + function PasswordConfigurationBetaApi() { + return _super !== null && _super.apply(this, arguments) || this; + } + /** + * This API creates the password org config. Unspecified fields will use default value. To be able to use the custom password instructions, you must set the `customInstructionsEnabled` field to \"true\". Requires ORG_ADMIN, API role or authorization scope of \'idn:password-org-config:write\' + * @summary Create Password Org Config + * @param {PasswordConfigurationBetaApiCreatePasswordOrgConfigRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof PasswordConfigurationBetaApi + */ + PasswordConfigurationBetaApi.prototype.createPasswordOrgConfig = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.PasswordConfigurationBetaApiFp)(this.configuration).createPasswordOrgConfig(requestParameters.passwordOrgConfigBeta, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This API returns the password org config . Requires ORG_ADMIN, API role or authorization scope of \'idn:password-org-config:read\' + * @summary Get Password Org Config + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof PasswordConfigurationBetaApi + */ + PasswordConfigurationBetaApi.prototype.getPasswordOrgConfig = function (axiosOptions) { + var _this = this; + return (0, exports.PasswordConfigurationBetaApiFp)(this.configuration).getPasswordOrgConfig(axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This API updates the password org config for specified fields. Other fields will keep original value. You must set the `customInstructionsEnabled` field to \"true\" to be able to use custom password instructions. Requires ORG_ADMIN, API role or authorization scope of \'idn:password-org-config:write\' + * @summary Update Password Org Config + * @param {PasswordConfigurationBetaApiPutPasswordOrgConfigRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof PasswordConfigurationBetaApi + */ + PasswordConfigurationBetaApi.prototype.putPasswordOrgConfig = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.PasswordConfigurationBetaApiFp)(this.configuration).putPasswordOrgConfig(requestParameters.passwordOrgConfigBeta, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + return PasswordConfigurationBetaApi; + }(base_1.BaseAPI)); + exports.PasswordConfigurationBetaApi = PasswordConfigurationBetaApi; + /** + * PasswordDictionaryBetaApi - axios parameter creator + * @export + */ + var PasswordDictionaryBetaApiAxiosParamCreator = function (configuration) { + var _this = this; + return { + /** + * This gets password dictionary for the organization. A token with ORG_ADMIN authority is required to call this API. + * @summary Get Password Dictionary + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getPasswordDictionary: function (axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + localVarPath = "/password-dictionary"; + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This updates password dictionary for the organization. A token with ORG_ADMIN authority is required to call this API. + * @summary Update Password Dictionary + * @param {any} [file] + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + updatePasswordDictionary: function (file, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, localVarFormParams, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + localVarPath = "/password-dictionary"; + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'PUT' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + localVarFormParams = new ((configuration && configuration.formDataCtor) || FormData)(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + if (file !== undefined) { + localVarFormParams.append('file', file); + } + localVarHeaderParameter['Content-Type'] = 'multipart/form-data'; + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + localVarRequestOptions.data = localVarFormParams; + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + }; + }; + exports.PasswordDictionaryBetaApiAxiosParamCreator = PasswordDictionaryBetaApiAxiosParamCreator; + /** + * PasswordDictionaryBetaApi - functional programming interface + * @export + */ + var PasswordDictionaryBetaApiFp = function (configuration) { + var localVarAxiosParamCreator = (0, exports.PasswordDictionaryBetaApiAxiosParamCreator)(configuration); + return { + /** + * This gets password dictionary for the organization. A token with ORG_ADMIN authority is required to call this API. + * @summary Get Password Dictionary + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getPasswordDictionary: function (axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.getPasswordDictionary(axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This updates password dictionary for the organization. A token with ORG_ADMIN authority is required to call this API. + * @summary Update Password Dictionary + * @param {any} [file] + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + updatePasswordDictionary: function (file, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.updatePasswordDictionary(file, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + }; + }; + exports.PasswordDictionaryBetaApiFp = PasswordDictionaryBetaApiFp; + /** + * PasswordDictionaryBetaApi - factory interface + * @export + */ + var PasswordDictionaryBetaApiFactory = function (configuration, basePath, axios) { + var localVarFp = (0, exports.PasswordDictionaryBetaApiFp)(configuration); + return { + /** + * This gets password dictionary for the organization. A token with ORG_ADMIN authority is required to call this API. + * @summary Get Password Dictionary + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getPasswordDictionary: function (axiosOptions) { + return localVarFp.getPasswordDictionary(axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This updates password dictionary for the organization. A token with ORG_ADMIN authority is required to call this API. + * @summary Update Password Dictionary + * @param {any} [file] + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + updatePasswordDictionary: function (file, axiosOptions) { + return localVarFp.updatePasswordDictionary(file, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + }; + }; + exports.PasswordDictionaryBetaApiFactory = PasswordDictionaryBetaApiFactory; + /** + * PasswordDictionaryBetaApi - object-oriented interface + * @export + * @class PasswordDictionaryBetaApi + * @extends {BaseAPI} + */ + var PasswordDictionaryBetaApi = /** @class */ (function (_super) { + __extends(PasswordDictionaryBetaApi, _super); + function PasswordDictionaryBetaApi() { + return _super !== null && _super.apply(this, arguments) || this; + } + /** + * This gets password dictionary for the organization. A token with ORG_ADMIN authority is required to call this API. + * @summary Get Password Dictionary + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof PasswordDictionaryBetaApi + */ + PasswordDictionaryBetaApi.prototype.getPasswordDictionary = function (axiosOptions) { + var _this = this; + return (0, exports.PasswordDictionaryBetaApiFp)(this.configuration).getPasswordDictionary(axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This updates password dictionary for the organization. A token with ORG_ADMIN authority is required to call this API. + * @summary Update Password Dictionary + * @param {PasswordDictionaryBetaApiUpdatePasswordDictionaryRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof PasswordDictionaryBetaApi + */ + PasswordDictionaryBetaApi.prototype.updatePasswordDictionary = function (requestParameters, axiosOptions) { + var _this = this; + if (requestParameters === void 0) { requestParameters = {}; } + return (0, exports.PasswordDictionaryBetaApiFp)(this.configuration).updatePasswordDictionary(requestParameters.file, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + return PasswordDictionaryBetaApi; + }(base_1.BaseAPI)); + exports.PasswordDictionaryBetaApi = PasswordDictionaryBetaApi; + /** + * PasswordManagementBetaApi - axios parameter creator + * @export + */ + var PasswordManagementBetaApiAxiosParamCreator = function (configuration) { + var _this = this; + return { + /** + * This API is used to generate a digit token for password management. Requires authorization scope of \"idn:password-digit-token:create\". + * @summary Generate a digit token + * @param {PasswordDigitTokenResetBeta} passwordDigitTokenResetBeta + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + generateDigitToken: function (passwordDigitTokenResetBeta, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'passwordDigitTokenResetBeta' is not null or undefined + (0, common_1.assertParamExists)('generateDigitToken', 'passwordDigitTokenResetBeta', passwordDigitTokenResetBeta); + localVarPath = "/generate-password-reset-token/digit"; + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + localVarHeaderParameter['Content-Type'] = 'application/json'; + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(passwordDigitTokenResetBeta, localVarRequestOptions, configuration); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This API returns the status of a password change request. A token with identity owner or trusted API client application authority is required to call this API. + * @summary Get Password Change Request Status + * @param {string} id + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getIdentityPasswordChangeStatus: function (id, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'id' is not null or undefined + (0, common_1.assertParamExists)('getIdentityPasswordChangeStatus', 'id', id); + localVarPath = "/password-change-status/{id}" + .replace("{".concat("id", "}"), encodeURIComponent(String(id))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This API is used to query password related information. A token with [API authority](https://developer.sailpoint.com/idn/api/authentication#client-credentials-grant-flow) is required to call this API. \"API authority\" refers to a token that only has the \"client_credentials\" grant type, and therefore no user context. A [personal access token](https://developer.sailpoint.com/idn/api/authentication#personal-access-tokens) or a token generated with the [authorization_code](https://developer.sailpoint.com/idn/api/authentication#authorization-code-grant-flow) grant type will **NOT** work on this endpoint, and a `403 Forbidden` response will be returned. + * @summary Query Password Info + * @param {PasswordInfoQueryDTOBeta} passwordInfoQueryDTOBeta + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + queryPasswordInfo: function (passwordInfoQueryDTOBeta, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'passwordInfoQueryDTOBeta' is not null or undefined + (0, common_1.assertParamExists)('queryPasswordInfo', 'passwordInfoQueryDTOBeta', passwordInfoQueryDTOBeta); + localVarPath = "/query-password-info"; + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + localVarHeaderParameter['Content-Type'] = 'application/json'; + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(passwordInfoQueryDTOBeta, localVarRequestOptions, configuration); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This API is used to set a password for an identity. An identity can change their own password (as well as any of their accounts\' passwords) if they use a token generated by their IDN user, such as a [personal access token](https://developer.sailpoint.com/idn/api/authentication#personal-access-tokens) or [\"authorization_code\" derived OAuth token](https://developer.sailpoint.com/idn/api/authentication#authorization-code-grant-flow). A token with [API authority](https://developer.sailpoint.com/idn/api/authentication#client-credentials-grant-flow) can be used to change **any** identity\'s password or the password of any of the identity\'s accounts. \"API authority\" refers to a token that only has the \"client_credentials\" grant type. You can use this endpoint to generate an `encryptedPassword` (RSA encrypted using publicKey). To do so, follow these steps: 1. Use [Query Password Info](https://developer.sailpoint.com/idn/api/v3/query-password-info) to get the following information: `identityId`, `sourceId`, `publicKeyId`, `publicKey`, `accounts`, and `policies`. 2. Choose an account from the previous response that you will provide as an `accountId` in your request to set an encrypted password. 3. Use [Set Identity\'s Password](https://developer.sailpoint.com/idn/api/v3/set-password) and provide the information you got from your earlier query. Then add this code to your request to get the encrypted password: ```java import javax.crypto.Cipher; import java.security.KeyFactory; import java.security.PublicKey; import java.security.spec.X509EncodedKeySpec; import java util.Base64; String encrypt(String publicKey, String toEncrypt) throws Exception { byte[] publicKeyBytes = Base64.getDecoder().decode(publicKey); byte[] encryptedBytes = encryptRsa(publicKeyBytes, toEncrypt.getBytes(\"UTF-8\")); return Base64.getEncoder().encodeToString(encryptedBytes); } private byte[] encryptRsa(byte[] publicKeyBytes, byte[] toEncryptBytes) throws Exception { PublicKey key = KeyFactory.getInstance(\"RSA\").generatePublic(new X509EncodedKeySpec(publicKeyBytes)); String transformation = \"RSA/ECB/PKCS1Padding\"; Cipher cipher = Cipher.getInstance(transformation); cipher.init(1, key); return cipher.doFinal(toEncryptBytes); } ``` In this example, `toEncrypt` refers to the plain text password you are setting and then encrypting, and the `publicKey` refers to the publicKey you got from the first request you sent. You can then use [Get Password Change Request Status](https://developer.sailpoint.com/idn/api/v3/get-password-change-status) to check the password change request status. To do so, you must provide the `requestId` from your earlier request to set the password. + * @summary Set Identity\'s Password + * @param {PasswordChangeRequestBeta} passwordChangeRequestBeta + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + setIdentityPassword: function (passwordChangeRequestBeta, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'passwordChangeRequestBeta' is not null or undefined + (0, common_1.assertParamExists)('setIdentityPassword', 'passwordChangeRequestBeta', passwordChangeRequestBeta); + localVarPath = "/set-password"; + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + localVarHeaderParameter['Content-Type'] = 'application/json'; + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(passwordChangeRequestBeta, localVarRequestOptions, configuration); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + }; + }; + exports.PasswordManagementBetaApiAxiosParamCreator = PasswordManagementBetaApiAxiosParamCreator; + /** + * PasswordManagementBetaApi - functional programming interface + * @export + */ + var PasswordManagementBetaApiFp = function (configuration) { + var localVarAxiosParamCreator = (0, exports.PasswordManagementBetaApiAxiosParamCreator)(configuration); + return { + /** + * This API is used to generate a digit token for password management. Requires authorization scope of \"idn:password-digit-token:create\". + * @summary Generate a digit token + * @param {PasswordDigitTokenResetBeta} passwordDigitTokenResetBeta + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + generateDigitToken: function (passwordDigitTokenResetBeta, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.generateDigitToken(passwordDigitTokenResetBeta, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This API returns the status of a password change request. A token with identity owner or trusted API client application authority is required to call this API. + * @summary Get Password Change Request Status + * @param {string} id + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getIdentityPasswordChangeStatus: function (id, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.getIdentityPasswordChangeStatus(id, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This API is used to query password related information. A token with [API authority](https://developer.sailpoint.com/idn/api/authentication#client-credentials-grant-flow) is required to call this API. \"API authority\" refers to a token that only has the \"client_credentials\" grant type, and therefore no user context. A [personal access token](https://developer.sailpoint.com/idn/api/authentication#personal-access-tokens) or a token generated with the [authorization_code](https://developer.sailpoint.com/idn/api/authentication#authorization-code-grant-flow) grant type will **NOT** work on this endpoint, and a `403 Forbidden` response will be returned. + * @summary Query Password Info + * @param {PasswordInfoQueryDTOBeta} passwordInfoQueryDTOBeta + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + queryPasswordInfo: function (passwordInfoQueryDTOBeta, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.queryPasswordInfo(passwordInfoQueryDTOBeta, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This API is used to set a password for an identity. An identity can change their own password (as well as any of their accounts\' passwords) if they use a token generated by their IDN user, such as a [personal access token](https://developer.sailpoint.com/idn/api/authentication#personal-access-tokens) or [\"authorization_code\" derived OAuth token](https://developer.sailpoint.com/idn/api/authentication#authorization-code-grant-flow). A token with [API authority](https://developer.sailpoint.com/idn/api/authentication#client-credentials-grant-flow) can be used to change **any** identity\'s password or the password of any of the identity\'s accounts. \"API authority\" refers to a token that only has the \"client_credentials\" grant type. You can use this endpoint to generate an `encryptedPassword` (RSA encrypted using publicKey). To do so, follow these steps: 1. Use [Query Password Info](https://developer.sailpoint.com/idn/api/v3/query-password-info) to get the following information: `identityId`, `sourceId`, `publicKeyId`, `publicKey`, `accounts`, and `policies`. 2. Choose an account from the previous response that you will provide as an `accountId` in your request to set an encrypted password. 3. Use [Set Identity\'s Password](https://developer.sailpoint.com/idn/api/v3/set-password) and provide the information you got from your earlier query. Then add this code to your request to get the encrypted password: ```java import javax.crypto.Cipher; import java.security.KeyFactory; import java.security.PublicKey; import java.security.spec.X509EncodedKeySpec; import java util.Base64; String encrypt(String publicKey, String toEncrypt) throws Exception { byte[] publicKeyBytes = Base64.getDecoder().decode(publicKey); byte[] encryptedBytes = encryptRsa(publicKeyBytes, toEncrypt.getBytes(\"UTF-8\")); return Base64.getEncoder().encodeToString(encryptedBytes); } private byte[] encryptRsa(byte[] publicKeyBytes, byte[] toEncryptBytes) throws Exception { PublicKey key = KeyFactory.getInstance(\"RSA\").generatePublic(new X509EncodedKeySpec(publicKeyBytes)); String transformation = \"RSA/ECB/PKCS1Padding\"; Cipher cipher = Cipher.getInstance(transformation); cipher.init(1, key); return cipher.doFinal(toEncryptBytes); } ``` In this example, `toEncrypt` refers to the plain text password you are setting and then encrypting, and the `publicKey` refers to the publicKey you got from the first request you sent. You can then use [Get Password Change Request Status](https://developer.sailpoint.com/idn/api/v3/get-password-change-status) to check the password change request status. To do so, you must provide the `requestId` from your earlier request to set the password. + * @summary Set Identity\'s Password + * @param {PasswordChangeRequestBeta} passwordChangeRequestBeta + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + setIdentityPassword: function (passwordChangeRequestBeta, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.setIdentityPassword(passwordChangeRequestBeta, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + }; + }; + exports.PasswordManagementBetaApiFp = PasswordManagementBetaApiFp; + /** + * PasswordManagementBetaApi - factory interface + * @export + */ + var PasswordManagementBetaApiFactory = function (configuration, basePath, axios) { + var localVarFp = (0, exports.PasswordManagementBetaApiFp)(configuration); + return { + /** + * This API is used to generate a digit token for password management. Requires authorization scope of \"idn:password-digit-token:create\". + * @summary Generate a digit token + * @param {PasswordDigitTokenResetBeta} passwordDigitTokenResetBeta + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + generateDigitToken: function (passwordDigitTokenResetBeta, axiosOptions) { + return localVarFp.generateDigitToken(passwordDigitTokenResetBeta, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This API returns the status of a password change request. A token with identity owner or trusted API client application authority is required to call this API. + * @summary Get Password Change Request Status + * @param {string} id + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getIdentityPasswordChangeStatus: function (id, axiosOptions) { + return localVarFp.getIdentityPasswordChangeStatus(id, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This API is used to query password related information. A token with [API authority](https://developer.sailpoint.com/idn/api/authentication#client-credentials-grant-flow) is required to call this API. \"API authority\" refers to a token that only has the \"client_credentials\" grant type, and therefore no user context. A [personal access token](https://developer.sailpoint.com/idn/api/authentication#personal-access-tokens) or a token generated with the [authorization_code](https://developer.sailpoint.com/idn/api/authentication#authorization-code-grant-flow) grant type will **NOT** work on this endpoint, and a `403 Forbidden` response will be returned. + * @summary Query Password Info + * @param {PasswordInfoQueryDTOBeta} passwordInfoQueryDTOBeta + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + queryPasswordInfo: function (passwordInfoQueryDTOBeta, axiosOptions) { + return localVarFp.queryPasswordInfo(passwordInfoQueryDTOBeta, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This API is used to set a password for an identity. An identity can change their own password (as well as any of their accounts\' passwords) if they use a token generated by their IDN user, such as a [personal access token](https://developer.sailpoint.com/idn/api/authentication#personal-access-tokens) or [\"authorization_code\" derived OAuth token](https://developer.sailpoint.com/idn/api/authentication#authorization-code-grant-flow). A token with [API authority](https://developer.sailpoint.com/idn/api/authentication#client-credentials-grant-flow) can be used to change **any** identity\'s password or the password of any of the identity\'s accounts. \"API authority\" refers to a token that only has the \"client_credentials\" grant type. You can use this endpoint to generate an `encryptedPassword` (RSA encrypted using publicKey). To do so, follow these steps: 1. Use [Query Password Info](https://developer.sailpoint.com/idn/api/v3/query-password-info) to get the following information: `identityId`, `sourceId`, `publicKeyId`, `publicKey`, `accounts`, and `policies`. 2. Choose an account from the previous response that you will provide as an `accountId` in your request to set an encrypted password. 3. Use [Set Identity\'s Password](https://developer.sailpoint.com/idn/api/v3/set-password) and provide the information you got from your earlier query. Then add this code to your request to get the encrypted password: ```java import javax.crypto.Cipher; import java.security.KeyFactory; import java.security.PublicKey; import java.security.spec.X509EncodedKeySpec; import java util.Base64; String encrypt(String publicKey, String toEncrypt) throws Exception { byte[] publicKeyBytes = Base64.getDecoder().decode(publicKey); byte[] encryptedBytes = encryptRsa(publicKeyBytes, toEncrypt.getBytes(\"UTF-8\")); return Base64.getEncoder().encodeToString(encryptedBytes); } private byte[] encryptRsa(byte[] publicKeyBytes, byte[] toEncryptBytes) throws Exception { PublicKey key = KeyFactory.getInstance(\"RSA\").generatePublic(new X509EncodedKeySpec(publicKeyBytes)); String transformation = \"RSA/ECB/PKCS1Padding\"; Cipher cipher = Cipher.getInstance(transformation); cipher.init(1, key); return cipher.doFinal(toEncryptBytes); } ``` In this example, `toEncrypt` refers to the plain text password you are setting and then encrypting, and the `publicKey` refers to the publicKey you got from the first request you sent. You can then use [Get Password Change Request Status](https://developer.sailpoint.com/idn/api/v3/get-password-change-status) to check the password change request status. To do so, you must provide the `requestId` from your earlier request to set the password. + * @summary Set Identity\'s Password + * @param {PasswordChangeRequestBeta} passwordChangeRequestBeta + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + setIdentityPassword: function (passwordChangeRequestBeta, axiosOptions) { + return localVarFp.setIdentityPassword(passwordChangeRequestBeta, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + }; + }; + exports.PasswordManagementBetaApiFactory = PasswordManagementBetaApiFactory; + /** + * PasswordManagementBetaApi - object-oriented interface + * @export + * @class PasswordManagementBetaApi + * @extends {BaseAPI} + */ + var PasswordManagementBetaApi = /** @class */ (function (_super) { + __extends(PasswordManagementBetaApi, _super); + function PasswordManagementBetaApi() { + return _super !== null && _super.apply(this, arguments) || this; + } + /** + * This API is used to generate a digit token for password management. Requires authorization scope of \"idn:password-digit-token:create\". + * @summary Generate a digit token + * @param {PasswordManagementBetaApiGenerateDigitTokenRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof PasswordManagementBetaApi + */ + PasswordManagementBetaApi.prototype.generateDigitToken = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.PasswordManagementBetaApiFp)(this.configuration).generateDigitToken(requestParameters.passwordDigitTokenResetBeta, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This API returns the status of a password change request. A token with identity owner or trusted API client application authority is required to call this API. + * @summary Get Password Change Request Status + * @param {PasswordManagementBetaApiGetIdentityPasswordChangeStatusRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof PasswordManagementBetaApi + */ + PasswordManagementBetaApi.prototype.getIdentityPasswordChangeStatus = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.PasswordManagementBetaApiFp)(this.configuration).getIdentityPasswordChangeStatus(requestParameters.id, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This API is used to query password related information. A token with [API authority](https://developer.sailpoint.com/idn/api/authentication#client-credentials-grant-flow) is required to call this API. \"API authority\" refers to a token that only has the \"client_credentials\" grant type, and therefore no user context. A [personal access token](https://developer.sailpoint.com/idn/api/authentication#personal-access-tokens) or a token generated with the [authorization_code](https://developer.sailpoint.com/idn/api/authentication#authorization-code-grant-flow) grant type will **NOT** work on this endpoint, and a `403 Forbidden` response will be returned. + * @summary Query Password Info + * @param {PasswordManagementBetaApiQueryPasswordInfoRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof PasswordManagementBetaApi + */ + PasswordManagementBetaApi.prototype.queryPasswordInfo = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.PasswordManagementBetaApiFp)(this.configuration).queryPasswordInfo(requestParameters.passwordInfoQueryDTOBeta, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This API is used to set a password for an identity. An identity can change their own password (as well as any of their accounts\' passwords) if they use a token generated by their IDN user, such as a [personal access token](https://developer.sailpoint.com/idn/api/authentication#personal-access-tokens) or [\"authorization_code\" derived OAuth token](https://developer.sailpoint.com/idn/api/authentication#authorization-code-grant-flow). A token with [API authority](https://developer.sailpoint.com/idn/api/authentication#client-credentials-grant-flow) can be used to change **any** identity\'s password or the password of any of the identity\'s accounts. \"API authority\" refers to a token that only has the \"client_credentials\" grant type. You can use this endpoint to generate an `encryptedPassword` (RSA encrypted using publicKey). To do so, follow these steps: 1. Use [Query Password Info](https://developer.sailpoint.com/idn/api/v3/query-password-info) to get the following information: `identityId`, `sourceId`, `publicKeyId`, `publicKey`, `accounts`, and `policies`. 2. Choose an account from the previous response that you will provide as an `accountId` in your request to set an encrypted password. 3. Use [Set Identity\'s Password](https://developer.sailpoint.com/idn/api/v3/set-password) and provide the information you got from your earlier query. Then add this code to your request to get the encrypted password: ```java import javax.crypto.Cipher; import java.security.KeyFactory; import java.security.PublicKey; import java.security.spec.X509EncodedKeySpec; import java util.Base64; String encrypt(String publicKey, String toEncrypt) throws Exception { byte[] publicKeyBytes = Base64.getDecoder().decode(publicKey); byte[] encryptedBytes = encryptRsa(publicKeyBytes, toEncrypt.getBytes(\"UTF-8\")); return Base64.getEncoder().encodeToString(encryptedBytes); } private byte[] encryptRsa(byte[] publicKeyBytes, byte[] toEncryptBytes) throws Exception { PublicKey key = KeyFactory.getInstance(\"RSA\").generatePublic(new X509EncodedKeySpec(publicKeyBytes)); String transformation = \"RSA/ECB/PKCS1Padding\"; Cipher cipher = Cipher.getInstance(transformation); cipher.init(1, key); return cipher.doFinal(toEncryptBytes); } ``` In this example, `toEncrypt` refers to the plain text password you are setting and then encrypting, and the `publicKey` refers to the publicKey you got from the first request you sent. You can then use [Get Password Change Request Status](https://developer.sailpoint.com/idn/api/v3/get-password-change-status) to check the password change request status. To do so, you must provide the `requestId` from your earlier request to set the password. + * @summary Set Identity\'s Password + * @param {PasswordManagementBetaApiSetIdentityPasswordRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof PasswordManagementBetaApi + */ + PasswordManagementBetaApi.prototype.setIdentityPassword = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.PasswordManagementBetaApiFp)(this.configuration).setIdentityPassword(requestParameters.passwordChangeRequestBeta, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + return PasswordManagementBetaApi; + }(base_1.BaseAPI)); + exports.PasswordManagementBetaApi = PasswordManagementBetaApi; + /** + * PasswordSyncGroupsBetaApi - axios parameter creator + * @export + */ + var PasswordSyncGroupsBetaApiAxiosParamCreator = function (configuration) { + var _this = this; + return { + /** + * This API creates a password sync group based on the specifications provided. A token with ORG_ADMIN authority is required to call this API. + * @summary Create Password Sync Group + * @param {PasswordSyncGroupBeta} passwordSyncGroupBeta + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + createPasswordSyncGroup: function (passwordSyncGroupBeta, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'passwordSyncGroupBeta' is not null or undefined + (0, common_1.assertParamExists)('createPasswordSyncGroup', 'passwordSyncGroupBeta', passwordSyncGroupBeta); + localVarPath = "/password-sync-groups"; + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + localVarHeaderParameter['Content-Type'] = 'application/json'; + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(passwordSyncGroupBeta, localVarRequestOptions, configuration); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This API deletes the specified password sync group. A token with ORG_ADMIN authority is required to call this API. + * @summary Delete Password Sync Group by ID + * @param {string} id The ID of password sync group to delete. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + deletePasswordSyncGroup: function (id, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'id' is not null or undefined + (0, common_1.assertParamExists)('deletePasswordSyncGroup', 'id', id); + localVarPath = "/password-sync-groups/{id}" + .replace("{".concat("id", "}"), encodeURIComponent(String(id))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'DELETE' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This API returns the sync group for the specified ID. A token with ORG_ADMIN authority is required to call this API. + * @summary Get Password Sync Group by ID + * @param {string} id The ID of password sync group to retrieve. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getPasswordSyncGroup: function (id, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'id' is not null or undefined + (0, common_1.assertParamExists)('getPasswordSyncGroup', 'id', id); + localVarPath = "/password-sync-groups/{id}" + .replace("{".concat("id", "}"), encodeURIComponent(String(id))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This API returns a list of password sync groups. A token with ORG_ADMIN authority is required to call this API. + * @summary Get Password Sync Group List + * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getPasswordSyncGroups: function (limit, offset, count, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + localVarPath = "/password-sync-groups"; + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + if (limit !== undefined) { + localVarQueryParameter['limit'] = limit; + } + if (offset !== undefined) { + localVarQueryParameter['offset'] = offset; + } + if (count !== undefined) { + localVarQueryParameter['count'] = count; + } + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This API updates the specified password sync group. A token with ORG_ADMIN authority is required to call this API. + * @summary Update Password Sync Group by ID + * @param {string} id The ID of password sync group to update. + * @param {PasswordSyncGroupBeta} passwordSyncGroupBeta + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + updatePasswordSyncGroup: function (id, passwordSyncGroupBeta, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'id' is not null or undefined + (0, common_1.assertParamExists)('updatePasswordSyncGroup', 'id', id); + // verify required parameter 'passwordSyncGroupBeta' is not null or undefined + (0, common_1.assertParamExists)('updatePasswordSyncGroup', 'passwordSyncGroupBeta', passwordSyncGroupBeta); + localVarPath = "/password-sync-groups/{id}" + .replace("{".concat("id", "}"), encodeURIComponent(String(id))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'PUT' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + localVarHeaderParameter['Content-Type'] = 'application/json'; + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(passwordSyncGroupBeta, localVarRequestOptions, configuration); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + }; + }; + exports.PasswordSyncGroupsBetaApiAxiosParamCreator = PasswordSyncGroupsBetaApiAxiosParamCreator; + /** + * PasswordSyncGroupsBetaApi - functional programming interface + * @export + */ + var PasswordSyncGroupsBetaApiFp = function (configuration) { + var localVarAxiosParamCreator = (0, exports.PasswordSyncGroupsBetaApiAxiosParamCreator)(configuration); + return { + /** + * This API creates a password sync group based on the specifications provided. A token with ORG_ADMIN authority is required to call this API. + * @summary Create Password Sync Group + * @param {PasswordSyncGroupBeta} passwordSyncGroupBeta + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + createPasswordSyncGroup: function (passwordSyncGroupBeta, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.createPasswordSyncGroup(passwordSyncGroupBeta, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This API deletes the specified password sync group. A token with ORG_ADMIN authority is required to call this API. + * @summary Delete Password Sync Group by ID + * @param {string} id The ID of password sync group to delete. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + deletePasswordSyncGroup: function (id, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.deletePasswordSyncGroup(id, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This API returns the sync group for the specified ID. A token with ORG_ADMIN authority is required to call this API. + * @summary Get Password Sync Group by ID + * @param {string} id The ID of password sync group to retrieve. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getPasswordSyncGroup: function (id, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.getPasswordSyncGroup(id, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This API returns a list of password sync groups. A token with ORG_ADMIN authority is required to call this API. + * @summary Get Password Sync Group List + * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getPasswordSyncGroups: function (limit, offset, count, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.getPasswordSyncGroups(limit, offset, count, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This API updates the specified password sync group. A token with ORG_ADMIN authority is required to call this API. + * @summary Update Password Sync Group by ID + * @param {string} id The ID of password sync group to update. + * @param {PasswordSyncGroupBeta} passwordSyncGroupBeta + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + updatePasswordSyncGroup: function (id, passwordSyncGroupBeta, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.updatePasswordSyncGroup(id, passwordSyncGroupBeta, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + }; + }; + exports.PasswordSyncGroupsBetaApiFp = PasswordSyncGroupsBetaApiFp; + /** + * PasswordSyncGroupsBetaApi - factory interface + * @export + */ + var PasswordSyncGroupsBetaApiFactory = function (configuration, basePath, axios) { + var localVarFp = (0, exports.PasswordSyncGroupsBetaApiFp)(configuration); + return { + /** + * This API creates a password sync group based on the specifications provided. A token with ORG_ADMIN authority is required to call this API. + * @summary Create Password Sync Group + * @param {PasswordSyncGroupBeta} passwordSyncGroupBeta + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + createPasswordSyncGroup: function (passwordSyncGroupBeta, axiosOptions) { + return localVarFp.createPasswordSyncGroup(passwordSyncGroupBeta, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This API deletes the specified password sync group. A token with ORG_ADMIN authority is required to call this API. + * @summary Delete Password Sync Group by ID + * @param {string} id The ID of password sync group to delete. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + deletePasswordSyncGroup: function (id, axiosOptions) { + return localVarFp.deletePasswordSyncGroup(id, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This API returns the sync group for the specified ID. A token with ORG_ADMIN authority is required to call this API. + * @summary Get Password Sync Group by ID + * @param {string} id The ID of password sync group to retrieve. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getPasswordSyncGroup: function (id, axiosOptions) { + return localVarFp.getPasswordSyncGroup(id, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This API returns a list of password sync groups. A token with ORG_ADMIN authority is required to call this API. + * @summary Get Password Sync Group List + * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getPasswordSyncGroups: function (limit, offset, count, axiosOptions) { + return localVarFp.getPasswordSyncGroups(limit, offset, count, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This API updates the specified password sync group. A token with ORG_ADMIN authority is required to call this API. + * @summary Update Password Sync Group by ID + * @param {string} id The ID of password sync group to update. + * @param {PasswordSyncGroupBeta} passwordSyncGroupBeta + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + updatePasswordSyncGroup: function (id, passwordSyncGroupBeta, axiosOptions) { + return localVarFp.updatePasswordSyncGroup(id, passwordSyncGroupBeta, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + }; + }; + exports.PasswordSyncGroupsBetaApiFactory = PasswordSyncGroupsBetaApiFactory; + /** + * PasswordSyncGroupsBetaApi - object-oriented interface + * @export + * @class PasswordSyncGroupsBetaApi + * @extends {BaseAPI} + */ + var PasswordSyncGroupsBetaApi = /** @class */ (function (_super) { + __extends(PasswordSyncGroupsBetaApi, _super); + function PasswordSyncGroupsBetaApi() { + return _super !== null && _super.apply(this, arguments) || this; + } + /** + * This API creates a password sync group based on the specifications provided. A token with ORG_ADMIN authority is required to call this API. + * @summary Create Password Sync Group + * @param {PasswordSyncGroupsBetaApiCreatePasswordSyncGroupRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof PasswordSyncGroupsBetaApi + */ + PasswordSyncGroupsBetaApi.prototype.createPasswordSyncGroup = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.PasswordSyncGroupsBetaApiFp)(this.configuration).createPasswordSyncGroup(requestParameters.passwordSyncGroupBeta, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This API deletes the specified password sync group. A token with ORG_ADMIN authority is required to call this API. + * @summary Delete Password Sync Group by ID + * @param {PasswordSyncGroupsBetaApiDeletePasswordSyncGroupRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof PasswordSyncGroupsBetaApi + */ + PasswordSyncGroupsBetaApi.prototype.deletePasswordSyncGroup = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.PasswordSyncGroupsBetaApiFp)(this.configuration).deletePasswordSyncGroup(requestParameters.id, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This API returns the sync group for the specified ID. A token with ORG_ADMIN authority is required to call this API. + * @summary Get Password Sync Group by ID + * @param {PasswordSyncGroupsBetaApiGetPasswordSyncGroupRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof PasswordSyncGroupsBetaApi + */ + PasswordSyncGroupsBetaApi.prototype.getPasswordSyncGroup = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.PasswordSyncGroupsBetaApiFp)(this.configuration).getPasswordSyncGroup(requestParameters.id, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This API returns a list of password sync groups. A token with ORG_ADMIN authority is required to call this API. + * @summary Get Password Sync Group List + * @param {PasswordSyncGroupsBetaApiGetPasswordSyncGroupsRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof PasswordSyncGroupsBetaApi + */ + PasswordSyncGroupsBetaApi.prototype.getPasswordSyncGroups = function (requestParameters, axiosOptions) { + var _this = this; + if (requestParameters === void 0) { requestParameters = {}; } + return (0, exports.PasswordSyncGroupsBetaApiFp)(this.configuration).getPasswordSyncGroups(requestParameters.limit, requestParameters.offset, requestParameters.count, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This API updates the specified password sync group. A token with ORG_ADMIN authority is required to call this API. + * @summary Update Password Sync Group by ID + * @param {PasswordSyncGroupsBetaApiUpdatePasswordSyncGroupRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof PasswordSyncGroupsBetaApi + */ + PasswordSyncGroupsBetaApi.prototype.updatePasswordSyncGroup = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.PasswordSyncGroupsBetaApiFp)(this.configuration).updatePasswordSyncGroup(requestParameters.id, requestParameters.passwordSyncGroupBeta, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + return PasswordSyncGroupsBetaApi; + }(base_1.BaseAPI)); + exports.PasswordSyncGroupsBetaApi = PasswordSyncGroupsBetaApi; + /** + * PersonalAccessTokensBetaApi - axios parameter creator + * @export + */ + var PersonalAccessTokensBetaApiAxiosParamCreator = function (configuration) { + var _this = this; + return { + /** + * This creates a personal access token. + * @summary Create Personal Access Token + * @param {CreatePersonalAccessTokenRequestBeta} createPersonalAccessTokenRequestBeta Name and scope of personal access token. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + createPersonalAccessToken: function (createPersonalAccessTokenRequestBeta, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'createPersonalAccessTokenRequestBeta' is not null or undefined + (0, common_1.assertParamExists)('createPersonalAccessToken', 'createPersonalAccessTokenRequestBeta', createPersonalAccessTokenRequestBeta); + localVarPath = "/personal-access-tokens"; + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + localVarHeaderParameter['Content-Type'] = 'application/json'; + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(createPersonalAccessTokenRequestBeta, localVarRequestOptions, configuration); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This deletes a personal access token. + * @summary Delete Personal Access Token + * @param {string} id The personal access token id + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + deletePersonalAccessToken: function (id, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'id' is not null or undefined + (0, common_1.assertParamExists)('deletePersonalAccessToken', 'id', id); + localVarPath = "/personal-access-tokens/{id}" + .replace("{".concat("id", "}"), encodeURIComponent(String(id))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'DELETE' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This gets a collection of personal access tokens associated with the optional `owner-id`. query parameter. If the `owner-id` query parameter is omitted, all personal access tokens for a tenant will be retrieved, but the caller must have the \'idn:all-personal-access-tokens:read\' right. + * @summary List Personal Access Tokens + * @param {string} [ownerId] The identity ID of the owner whose personal access tokens should be listed. If \"me\", the caller should have the following right: \'idn:my-personal-access-tokens:read\' If an actual owner ID or if the `owner-id` parameter is omitted in the request, the caller should have the following right: \'idn:all-personal-access-tokens:read\'. If the caller has the following right, then managed personal access tokens associated with `owner-id` will be retrieved: \'idn:managed-personal-access-tokens:read\' + * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **lastUsed**: *le, isnull* + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + listPersonalAccessTokens: function (ownerId, filters, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + localVarPath = "/personal-access-tokens"; + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + if (ownerId !== undefined) { + localVarQueryParameter['owner-id'] = ownerId; + } + if (filters !== undefined) { + localVarQueryParameter['filters'] = filters; + } + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This performs a targeted update to the field(s) of a Personal Access Token. + * @summary Patch Personal Access Token + * @param {string} id The Personal Access Token id + * @param {Array} jsonPatchOperationBeta A list of OAuth client update operations according to the [JSON Patch](https://tools.ietf.org/html/rfc6902) standard. The following fields are patchable: * name * scope + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + patchPersonalAccessToken: function (id, jsonPatchOperationBeta, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'id' is not null or undefined + (0, common_1.assertParamExists)('patchPersonalAccessToken', 'id', id); + // verify required parameter 'jsonPatchOperationBeta' is not null or undefined + (0, common_1.assertParamExists)('patchPersonalAccessToken', 'jsonPatchOperationBeta', jsonPatchOperationBeta); + localVarPath = "/personal-access-tokens/{id}" + .replace("{".concat("id", "}"), encodeURIComponent(String(id))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'PATCH' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + localVarHeaderParameter['Content-Type'] = 'application/json-patch+json'; + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(jsonPatchOperationBeta, localVarRequestOptions, configuration); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + }; + }; + exports.PersonalAccessTokensBetaApiAxiosParamCreator = PersonalAccessTokensBetaApiAxiosParamCreator; + /** + * PersonalAccessTokensBetaApi - functional programming interface + * @export + */ + var PersonalAccessTokensBetaApiFp = function (configuration) { + var localVarAxiosParamCreator = (0, exports.PersonalAccessTokensBetaApiAxiosParamCreator)(configuration); + return { + /** + * This creates a personal access token. + * @summary Create Personal Access Token + * @param {CreatePersonalAccessTokenRequestBeta} createPersonalAccessTokenRequestBeta Name and scope of personal access token. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + createPersonalAccessToken: function (createPersonalAccessTokenRequestBeta, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.createPersonalAccessToken(createPersonalAccessTokenRequestBeta, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This deletes a personal access token. + * @summary Delete Personal Access Token + * @param {string} id The personal access token id + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + deletePersonalAccessToken: function (id, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.deletePersonalAccessToken(id, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This gets a collection of personal access tokens associated with the optional `owner-id`. query parameter. If the `owner-id` query parameter is omitted, all personal access tokens for a tenant will be retrieved, but the caller must have the \'idn:all-personal-access-tokens:read\' right. + * @summary List Personal Access Tokens + * @param {string} [ownerId] The identity ID of the owner whose personal access tokens should be listed. If \"me\", the caller should have the following right: \'idn:my-personal-access-tokens:read\' If an actual owner ID or if the `owner-id` parameter is omitted in the request, the caller should have the following right: \'idn:all-personal-access-tokens:read\'. If the caller has the following right, then managed personal access tokens associated with `owner-id` will be retrieved: \'idn:managed-personal-access-tokens:read\' + * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **lastUsed**: *le, isnull* + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + listPersonalAccessTokens: function (ownerId, filters, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.listPersonalAccessTokens(ownerId, filters, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This performs a targeted update to the field(s) of a Personal Access Token. + * @summary Patch Personal Access Token + * @param {string} id The Personal Access Token id + * @param {Array} jsonPatchOperationBeta A list of OAuth client update operations according to the [JSON Patch](https://tools.ietf.org/html/rfc6902) standard. The following fields are patchable: * name * scope + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + patchPersonalAccessToken: function (id, jsonPatchOperationBeta, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.patchPersonalAccessToken(id, jsonPatchOperationBeta, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + }; + }; + exports.PersonalAccessTokensBetaApiFp = PersonalAccessTokensBetaApiFp; + /** + * PersonalAccessTokensBetaApi - factory interface + * @export + */ + var PersonalAccessTokensBetaApiFactory = function (configuration, basePath, axios) { + var localVarFp = (0, exports.PersonalAccessTokensBetaApiFp)(configuration); + return { + /** + * This creates a personal access token. + * @summary Create Personal Access Token + * @param {CreatePersonalAccessTokenRequestBeta} createPersonalAccessTokenRequestBeta Name and scope of personal access token. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + createPersonalAccessToken: function (createPersonalAccessTokenRequestBeta, axiosOptions) { + return localVarFp.createPersonalAccessToken(createPersonalAccessTokenRequestBeta, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This deletes a personal access token. + * @summary Delete Personal Access Token + * @param {string} id The personal access token id + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + deletePersonalAccessToken: function (id, axiosOptions) { + return localVarFp.deletePersonalAccessToken(id, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This gets a collection of personal access tokens associated with the optional `owner-id`. query parameter. If the `owner-id` query parameter is omitted, all personal access tokens for a tenant will be retrieved, but the caller must have the \'idn:all-personal-access-tokens:read\' right. + * @summary List Personal Access Tokens + * @param {string} [ownerId] The identity ID of the owner whose personal access tokens should be listed. If \"me\", the caller should have the following right: \'idn:my-personal-access-tokens:read\' If an actual owner ID or if the `owner-id` parameter is omitted in the request, the caller should have the following right: \'idn:all-personal-access-tokens:read\'. If the caller has the following right, then managed personal access tokens associated with `owner-id` will be retrieved: \'idn:managed-personal-access-tokens:read\' + * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **lastUsed**: *le, isnull* + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + listPersonalAccessTokens: function (ownerId, filters, axiosOptions) { + return localVarFp.listPersonalAccessTokens(ownerId, filters, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This performs a targeted update to the field(s) of a Personal Access Token. + * @summary Patch Personal Access Token + * @param {string} id The Personal Access Token id + * @param {Array} jsonPatchOperationBeta A list of OAuth client update operations according to the [JSON Patch](https://tools.ietf.org/html/rfc6902) standard. The following fields are patchable: * name * scope + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + patchPersonalAccessToken: function (id, jsonPatchOperationBeta, axiosOptions) { + return localVarFp.patchPersonalAccessToken(id, jsonPatchOperationBeta, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + }; + }; + exports.PersonalAccessTokensBetaApiFactory = PersonalAccessTokensBetaApiFactory; + /** + * PersonalAccessTokensBetaApi - object-oriented interface + * @export + * @class PersonalAccessTokensBetaApi + * @extends {BaseAPI} + */ + var PersonalAccessTokensBetaApi = /** @class */ (function (_super) { + __extends(PersonalAccessTokensBetaApi, _super); + function PersonalAccessTokensBetaApi() { + return _super !== null && _super.apply(this, arguments) || this; + } + /** + * This creates a personal access token. + * @summary Create Personal Access Token + * @param {PersonalAccessTokensBetaApiCreatePersonalAccessTokenRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof PersonalAccessTokensBetaApi + */ + PersonalAccessTokensBetaApi.prototype.createPersonalAccessToken = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.PersonalAccessTokensBetaApiFp)(this.configuration).createPersonalAccessToken(requestParameters.createPersonalAccessTokenRequestBeta, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This deletes a personal access token. + * @summary Delete Personal Access Token + * @param {PersonalAccessTokensBetaApiDeletePersonalAccessTokenRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof PersonalAccessTokensBetaApi + */ + PersonalAccessTokensBetaApi.prototype.deletePersonalAccessToken = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.PersonalAccessTokensBetaApiFp)(this.configuration).deletePersonalAccessToken(requestParameters.id, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This gets a collection of personal access tokens associated with the optional `owner-id`. query parameter. If the `owner-id` query parameter is omitted, all personal access tokens for a tenant will be retrieved, but the caller must have the \'idn:all-personal-access-tokens:read\' right. + * @summary List Personal Access Tokens + * @param {PersonalAccessTokensBetaApiListPersonalAccessTokensRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof PersonalAccessTokensBetaApi + */ + PersonalAccessTokensBetaApi.prototype.listPersonalAccessTokens = function (requestParameters, axiosOptions) { + var _this = this; + if (requestParameters === void 0) { requestParameters = {}; } + return (0, exports.PersonalAccessTokensBetaApiFp)(this.configuration).listPersonalAccessTokens(requestParameters.ownerId, requestParameters.filters, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This performs a targeted update to the field(s) of a Personal Access Token. + * @summary Patch Personal Access Token + * @param {PersonalAccessTokensBetaApiPatchPersonalAccessTokenRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof PersonalAccessTokensBetaApi + */ + PersonalAccessTokensBetaApi.prototype.patchPersonalAccessToken = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.PersonalAccessTokensBetaApiFp)(this.configuration).patchPersonalAccessToken(requestParameters.id, requestParameters.jsonPatchOperationBeta, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + return PersonalAccessTokensBetaApi; + }(base_1.BaseAPI)); + exports.PersonalAccessTokensBetaApi = PersonalAccessTokensBetaApi; + /** + * PublicIdentitiesConfigBetaApi - axios parameter creator + * @export + */ + var PublicIdentitiesConfigBetaApiAxiosParamCreator = function (configuration) { + var _this = this; + return { + /** + * This gets details of public identity config. + * @summary Get Public Identity Config + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getPublicIdentityConfig: function (axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + localVarPath = "/public-identities-config"; + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This updates the details of public identity config. + * @summary Update Public Identity Config + * @param {PublicIdentityConfigBeta} publicIdentityConfigBeta + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + updatePublicIdentityConfig: function (publicIdentityConfigBeta, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'publicIdentityConfigBeta' is not null or undefined + (0, common_1.assertParamExists)('updatePublicIdentityConfig', 'publicIdentityConfigBeta', publicIdentityConfigBeta); + localVarPath = "/public-identities-config"; + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'PUT' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + localVarHeaderParameter['Content-Type'] = 'application/json'; + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(publicIdentityConfigBeta, localVarRequestOptions, configuration); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + }; + }; + exports.PublicIdentitiesConfigBetaApiAxiosParamCreator = PublicIdentitiesConfigBetaApiAxiosParamCreator; + /** + * PublicIdentitiesConfigBetaApi - functional programming interface + * @export + */ + var PublicIdentitiesConfigBetaApiFp = function (configuration) { + var localVarAxiosParamCreator = (0, exports.PublicIdentitiesConfigBetaApiAxiosParamCreator)(configuration); + return { + /** + * This gets details of public identity config. + * @summary Get Public Identity Config + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getPublicIdentityConfig: function (axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.getPublicIdentityConfig(axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This updates the details of public identity config. + * @summary Update Public Identity Config + * @param {PublicIdentityConfigBeta} publicIdentityConfigBeta + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + updatePublicIdentityConfig: function (publicIdentityConfigBeta, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.updatePublicIdentityConfig(publicIdentityConfigBeta, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + }; + }; + exports.PublicIdentitiesConfigBetaApiFp = PublicIdentitiesConfigBetaApiFp; + /** + * PublicIdentitiesConfigBetaApi - factory interface + * @export + */ + var PublicIdentitiesConfigBetaApiFactory = function (configuration, basePath, axios) { + var localVarFp = (0, exports.PublicIdentitiesConfigBetaApiFp)(configuration); + return { + /** + * This gets details of public identity config. + * @summary Get Public Identity Config + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getPublicIdentityConfig: function (axiosOptions) { + return localVarFp.getPublicIdentityConfig(axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This updates the details of public identity config. + * @summary Update Public Identity Config + * @param {PublicIdentityConfigBeta} publicIdentityConfigBeta + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + updatePublicIdentityConfig: function (publicIdentityConfigBeta, axiosOptions) { + return localVarFp.updatePublicIdentityConfig(publicIdentityConfigBeta, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + }; + }; + exports.PublicIdentitiesConfigBetaApiFactory = PublicIdentitiesConfigBetaApiFactory; + /** + * PublicIdentitiesConfigBetaApi - object-oriented interface + * @export + * @class PublicIdentitiesConfigBetaApi + * @extends {BaseAPI} + */ + var PublicIdentitiesConfigBetaApi = /** @class */ (function (_super) { + __extends(PublicIdentitiesConfigBetaApi, _super); + function PublicIdentitiesConfigBetaApi() { + return _super !== null && _super.apply(this, arguments) || this; + } + /** + * This gets details of public identity config. + * @summary Get Public Identity Config + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof PublicIdentitiesConfigBetaApi + */ + PublicIdentitiesConfigBetaApi.prototype.getPublicIdentityConfig = function (axiosOptions) { + var _this = this; + return (0, exports.PublicIdentitiesConfigBetaApiFp)(this.configuration).getPublicIdentityConfig(axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This updates the details of public identity config. + * @summary Update Public Identity Config + * @param {PublicIdentitiesConfigBetaApiUpdatePublicIdentityConfigRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof PublicIdentitiesConfigBetaApi + */ + PublicIdentitiesConfigBetaApi.prototype.updatePublicIdentityConfig = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.PublicIdentitiesConfigBetaApiFp)(this.configuration).updatePublicIdentityConfig(requestParameters.publicIdentityConfigBeta, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + return PublicIdentitiesConfigBetaApi; + }(base_1.BaseAPI)); + exports.PublicIdentitiesConfigBetaApi = PublicIdentitiesConfigBetaApi; + /** + * RequestableObjectsBetaApi - axios parameter creator + * @export + */ + var RequestableObjectsBetaApiAxiosParamCreator = function (configuration) { + var _this = this; + return { + /** + * This endpoint returns a list of acccess items that that can be requested through the Access Request endpoints. Access items are marked with AVAILABLE, PENDING or ASSIGNED with respect to the identity provided using *identity-id* query param. Any authenticated token can call this endpoint to see their requestable access items. A token with ORG_ADMIN authority is required to call this endpoint to return a list of all of the requestable access items for the org or for another identity. + * @summary Requestable Objects List + * @param {string} [identityId] If present, the value returns only requestable objects for the specified identity. * Admin users can call this with any identity ID value. * Non-admin users can only specify *me* or pass their own identity ID value. * If absent, returns a list of all requestable objects for the tenant. Only admin users can make such a call. In this case, the available, pending, assigned accesses will not be annotated in the result. + * @param {Array} [types] Filters the results to the specified type/types, where each type is one of ROLE or ACCESS_PROFILE. If absent, all types are returned. Support for additional types may be added in the future without notice. + * @param {string} [term] It allows searching requestable access items with a partial match on the name or description. If term is provided, then the *filter* query parameter will be ignored. + * @param {Array} [statuses] Filters the result to the specified status/statuses, where each status is one of AVAILABLE, ASSIGNED, or PENDING. It is an error to specify this parameter without also specifying an *identity-id* parameter. Additional statuses may be added in the future without notice. + * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **id**: *eq, in* **name**: *eq, in, sw, co* + * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **name** + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + listRequestableObjects: function (identityId, types, term, statuses, limit, offset, count, filters, sorters, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + localVarPath = "/requestable-objects"; + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + if (identityId !== undefined) { + localVarQueryParameter['identity-id'] = identityId; + } + if (types) { + localVarQueryParameter['types'] = types.join(base_1.COLLECTION_FORMATS.csv); + } + if (term !== undefined) { + localVarQueryParameter['term'] = term; + } + if (statuses) { + localVarQueryParameter['statuses'] = statuses.join(base_1.COLLECTION_FORMATS.csv); + } + if (limit !== undefined) { + localVarQueryParameter['limit'] = limit; + } + if (offset !== undefined) { + localVarQueryParameter['offset'] = offset; + } + if (count !== undefined) { + localVarQueryParameter['count'] = count; + } + if (filters !== undefined) { + localVarQueryParameter['filters'] = filters; + } + if (sorters !== undefined) { + localVarQueryParameter['sorters'] = sorters; + } + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + }; + }; + exports.RequestableObjectsBetaApiAxiosParamCreator = RequestableObjectsBetaApiAxiosParamCreator; + /** + * RequestableObjectsBetaApi - functional programming interface + * @export + */ + var RequestableObjectsBetaApiFp = function (configuration) { + var localVarAxiosParamCreator = (0, exports.RequestableObjectsBetaApiAxiosParamCreator)(configuration); + return { + /** + * This endpoint returns a list of acccess items that that can be requested through the Access Request endpoints. Access items are marked with AVAILABLE, PENDING or ASSIGNED with respect to the identity provided using *identity-id* query param. Any authenticated token can call this endpoint to see their requestable access items. A token with ORG_ADMIN authority is required to call this endpoint to return a list of all of the requestable access items for the org or for another identity. + * @summary Requestable Objects List + * @param {string} [identityId] If present, the value returns only requestable objects for the specified identity. * Admin users can call this with any identity ID value. * Non-admin users can only specify *me* or pass their own identity ID value. * If absent, returns a list of all requestable objects for the tenant. Only admin users can make such a call. In this case, the available, pending, assigned accesses will not be annotated in the result. + * @param {Array} [types] Filters the results to the specified type/types, where each type is one of ROLE or ACCESS_PROFILE. If absent, all types are returned. Support for additional types may be added in the future without notice. + * @param {string} [term] It allows searching requestable access items with a partial match on the name or description. If term is provided, then the *filter* query parameter will be ignored. + * @param {Array} [statuses] Filters the result to the specified status/statuses, where each status is one of AVAILABLE, ASSIGNED, or PENDING. It is an error to specify this parameter without also specifying an *identity-id* parameter. Additional statuses may be added in the future without notice. + * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **id**: *eq, in* **name**: *eq, in, sw, co* + * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **name** + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + listRequestableObjects: function (identityId, types, term, statuses, limit, offset, count, filters, sorters, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.listRequestableObjects(identityId, types, term, statuses, limit, offset, count, filters, sorters, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + }; + }; + exports.RequestableObjectsBetaApiFp = RequestableObjectsBetaApiFp; + /** + * RequestableObjectsBetaApi - factory interface + * @export + */ + var RequestableObjectsBetaApiFactory = function (configuration, basePath, axios) { + var localVarFp = (0, exports.RequestableObjectsBetaApiFp)(configuration); + return { + /** + * This endpoint returns a list of acccess items that that can be requested through the Access Request endpoints. Access items are marked with AVAILABLE, PENDING or ASSIGNED with respect to the identity provided using *identity-id* query param. Any authenticated token can call this endpoint to see their requestable access items. A token with ORG_ADMIN authority is required to call this endpoint to return a list of all of the requestable access items for the org or for another identity. + * @summary Requestable Objects List + * @param {string} [identityId] If present, the value returns only requestable objects for the specified identity. * Admin users can call this with any identity ID value. * Non-admin users can only specify *me* or pass their own identity ID value. * If absent, returns a list of all requestable objects for the tenant. Only admin users can make such a call. In this case, the available, pending, assigned accesses will not be annotated in the result. + * @param {Array} [types] Filters the results to the specified type/types, where each type is one of ROLE or ACCESS_PROFILE. If absent, all types are returned. Support for additional types may be added in the future without notice. + * @param {string} [term] It allows searching requestable access items with a partial match on the name or description. If term is provided, then the *filter* query parameter will be ignored. + * @param {Array} [statuses] Filters the result to the specified status/statuses, where each status is one of AVAILABLE, ASSIGNED, or PENDING. It is an error to specify this parameter without also specifying an *identity-id* parameter. Additional statuses may be added in the future without notice. + * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **id**: *eq, in* **name**: *eq, in, sw, co* + * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **name** + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + listRequestableObjects: function (identityId, types, term, statuses, limit, offset, count, filters, sorters, axiosOptions) { + return localVarFp.listRequestableObjects(identityId, types, term, statuses, limit, offset, count, filters, sorters, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + }; + }; + exports.RequestableObjectsBetaApiFactory = RequestableObjectsBetaApiFactory; + /** + * RequestableObjectsBetaApi - object-oriented interface + * @export + * @class RequestableObjectsBetaApi + * @extends {BaseAPI} + */ + var RequestableObjectsBetaApi = /** @class */ (function (_super) { + __extends(RequestableObjectsBetaApi, _super); + function RequestableObjectsBetaApi() { + return _super !== null && _super.apply(this, arguments) || this; + } + /** + * This endpoint returns a list of acccess items that that can be requested through the Access Request endpoints. Access items are marked with AVAILABLE, PENDING or ASSIGNED with respect to the identity provided using *identity-id* query param. Any authenticated token can call this endpoint to see their requestable access items. A token with ORG_ADMIN authority is required to call this endpoint to return a list of all of the requestable access items for the org or for another identity. + * @summary Requestable Objects List + * @param {RequestableObjectsBetaApiListRequestableObjectsRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof RequestableObjectsBetaApi + */ + RequestableObjectsBetaApi.prototype.listRequestableObjects = function (requestParameters, axiosOptions) { + var _this = this; + if (requestParameters === void 0) { requestParameters = {}; } + return (0, exports.RequestableObjectsBetaApiFp)(this.configuration).listRequestableObjects(requestParameters.identityId, requestParameters.types, requestParameters.term, requestParameters.statuses, requestParameters.limit, requestParameters.offset, requestParameters.count, requestParameters.filters, requestParameters.sorters, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + return RequestableObjectsBetaApi; + }(base_1.BaseAPI)); + exports.RequestableObjectsBetaApi = RequestableObjectsBetaApi; + /** + * RoleInsightsBetaApi - axios parameter creator + * @export + */ + var RoleInsightsBetaApiAxiosParamCreator = function (configuration) { + var _this = this; + return { + /** + * Submits a create role insights request to the role insights application. At this time there are no parameters. All business roles will be processed for the customer. + * @summary Generate insights for roles + * @param {*} [axiosOptions] Override http request option. + * @deprecated + * @throws {RequiredError} + */ + createRoleInsightRequests: function (axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + localVarPath = "/role-insights/requests"; + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This endpoint returns the entitlement insights for a role. + * @summary Download entitlement insights for a role + * @param {string} insightId The role insight id + * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **identitiesWithAccess** The default sort is **identitiesWithAccess** in descending order. + * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **name**: *sw* **description**: *sw* + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + downloadRoleInsightsEntitlementsChanges: function (insightId, sorters, filters, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'insightId' is not null or undefined + (0, common_1.assertParamExists)('downloadRoleInsightsEntitlementsChanges', 'insightId', insightId); + localVarPath = "/role-insights/{insightId}/entitlement-changes/download" + .replace("{".concat("insightId", "}"), encodeURIComponent(String(insightId))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + if (sorters !== undefined) { + localVarQueryParameter['sorters'] = sorters; + } + if (filters !== undefined) { + localVarQueryParameter['filters'] = filters; + } + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * Role insights suggests entitlements to be added for a role. This endpoint returns a list of identities in the role, with or without the entitlements, for a suggested entitlement so that the user can see which identities would be affected if the suggested entitlement were to be added to the role. + * @summary Get identities for a suggested entitlement (for a role) + * @param {string} insightId The role insight id + * @param {string} entitlementId The entitlement id + * @param {boolean} [hasEntitlement] Identity has this entitlement or not + * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **name** + * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **name**: *sw* + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getEntitlementChangesIdentities: function (insightId, entitlementId, hasEntitlement, offset, limit, count, sorters, filters, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'insightId' is not null or undefined + (0, common_1.assertParamExists)('getEntitlementChangesIdentities', 'insightId', insightId); + // verify required parameter 'entitlementId' is not null or undefined + (0, common_1.assertParamExists)('getEntitlementChangesIdentities', 'entitlementId', entitlementId); + localVarPath = "/role-insights/{insightId}/entitlement-changes/{entitlementId}/identities" + .replace("{".concat("insightId", "}"), encodeURIComponent(String(insightId))) + .replace("{".concat("entitlementId", "}"), encodeURIComponent(String(entitlementId))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + if (hasEntitlement !== undefined) { + localVarQueryParameter['hasEntitlement'] = hasEntitlement; + } + if (offset !== undefined) { + localVarQueryParameter['offset'] = offset; + } + if (limit !== undefined) { + localVarQueryParameter['limit'] = limit; + } + if (count !== undefined) { + localVarQueryParameter['count'] = count; + } + if (sorters !== undefined) { + localVarQueryParameter['sorters'] = sorters; + } + if (filters !== undefined) { + localVarQueryParameter['filters'] = filters; + } + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This endpoint gets role insights information for a role. + * @summary Get a single role insight + * @param {string} insightId The role insight id + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getRoleInsight: function (insightId, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'insightId' is not null or undefined + (0, common_1.assertParamExists)('getRoleInsight', 'insightId', insightId); + localVarPath = "/role-insights/{insightId}" + .replace("{".concat("insightId", "}"), encodeURIComponent(String(insightId))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This method returns detailed role insights for each role. + * @summary Get role insights + * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **numberOfUpdates, identitiesWithAccess, totalNumberOfIdentities** + * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **name**: *sw* **ownerName**: *sw* **description**: *sw* + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getRoleInsights: function (offset, limit, count, sorters, filters, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + localVarPath = "/role-insights"; + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + if (offset !== undefined) { + localVarQueryParameter['offset'] = offset; + } + if (limit !== undefined) { + localVarQueryParameter['limit'] = limit; + } + if (count !== undefined) { + localVarQueryParameter['count'] = count; + } + if (sorters !== undefined) { + localVarQueryParameter['sorters'] = sorters; + } + if (filters !== undefined) { + localVarQueryParameter['filters'] = filters; + } + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This endpoint gets the entitlements for a role. The term \"current\" is to distinguish from the entitlement(s) an insight might recommend adding. + * @summary Get current entitlement for a role + * @param {string} insightId The role insight id + * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **name**: *sw* **description**: *sw* + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getRoleInsightsCurrentEntitlements: function (insightId, filters, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'insightId' is not null or undefined + (0, common_1.assertParamExists)('getRoleInsightsCurrentEntitlements', 'insightId', insightId); + localVarPath = "/role-insights/{insightId}/current-entitlements" + .replace("{".concat("insightId", "}"), encodeURIComponent(String(insightId))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + if (filters !== undefined) { + localVarQueryParameter['filters'] = filters; + } + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This endpoint returns entitlement insights for a role. + * @summary Get entitlement insights for a role + * @param {string} insightId The role insight id + * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **identitiesWithAccess, name** + * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **name**: *sw* **description**: *sw* + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getRoleInsightsEntitlementsChanges: function (insightId, sorters, filters, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'insightId' is not null or undefined + (0, common_1.assertParamExists)('getRoleInsightsEntitlementsChanges', 'insightId', insightId); + localVarPath = "/role-insights/{insightId}/entitlement-changes" + .replace("{".concat("insightId", "}"), encodeURIComponent(String(insightId))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + if (sorters !== undefined) { + localVarQueryParameter['sorters'] = sorters; + } + if (filters !== undefined) { + localVarQueryParameter['filters'] = filters; + } + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This endpoint returns details of a prior role insights request. + * @summary Returns metadata from prior request. + * @param {string} id The role insights request id + * @param {*} [axiosOptions] Override http request option. + * @deprecated + * @throws {RequiredError} + */ + getRoleInsightsRequests: function (id, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'id' is not null or undefined + (0, common_1.assertParamExists)('getRoleInsightsRequests', 'id', id); + localVarPath = "/role-insights/requests/{id}" + .replace("{".concat("id", "}"), encodeURIComponent(String(id))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This method returns high level summary information for role insights for a customer. + * @summary Get role insights summary information + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getRoleInsightsSummary: function (axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + localVarPath = "/role-insights/summary"; + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + }; + }; + exports.RoleInsightsBetaApiAxiosParamCreator = RoleInsightsBetaApiAxiosParamCreator; + /** + * RoleInsightsBetaApi - functional programming interface + * @export + */ + var RoleInsightsBetaApiFp = function (configuration) { + var localVarAxiosParamCreator = (0, exports.RoleInsightsBetaApiAxiosParamCreator)(configuration); + return { + /** + * Submits a create role insights request to the role insights application. At this time there are no parameters. All business roles will be processed for the customer. + * @summary Generate insights for roles + * @param {*} [axiosOptions] Override http request option. + * @deprecated + * @throws {RequiredError} + */ + createRoleInsightRequests: function (axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.createRoleInsightRequests(axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This endpoint returns the entitlement insights for a role. + * @summary Download entitlement insights for a role + * @param {string} insightId The role insight id + * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **identitiesWithAccess** The default sort is **identitiesWithAccess** in descending order. + * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **name**: *sw* **description**: *sw* + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + downloadRoleInsightsEntitlementsChanges: function (insightId, sorters, filters, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.downloadRoleInsightsEntitlementsChanges(insightId, sorters, filters, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * Role insights suggests entitlements to be added for a role. This endpoint returns a list of identities in the role, with or without the entitlements, for a suggested entitlement so that the user can see which identities would be affected if the suggested entitlement were to be added to the role. + * @summary Get identities for a suggested entitlement (for a role) + * @param {string} insightId The role insight id + * @param {string} entitlementId The entitlement id + * @param {boolean} [hasEntitlement] Identity has this entitlement or not + * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **name** + * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **name**: *sw* + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getEntitlementChangesIdentities: function (insightId, entitlementId, hasEntitlement, offset, limit, count, sorters, filters, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.getEntitlementChangesIdentities(insightId, entitlementId, hasEntitlement, offset, limit, count, sorters, filters, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This endpoint gets role insights information for a role. + * @summary Get a single role insight + * @param {string} insightId The role insight id + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getRoleInsight: function (insightId, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.getRoleInsight(insightId, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This method returns detailed role insights for each role. + * @summary Get role insights + * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **numberOfUpdates, identitiesWithAccess, totalNumberOfIdentities** + * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **name**: *sw* **ownerName**: *sw* **description**: *sw* + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getRoleInsights: function (offset, limit, count, sorters, filters, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.getRoleInsights(offset, limit, count, sorters, filters, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This endpoint gets the entitlements for a role. The term \"current\" is to distinguish from the entitlement(s) an insight might recommend adding. + * @summary Get current entitlement for a role + * @param {string} insightId The role insight id + * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **name**: *sw* **description**: *sw* + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getRoleInsightsCurrentEntitlements: function (insightId, filters, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.getRoleInsightsCurrentEntitlements(insightId, filters, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This endpoint returns entitlement insights for a role. + * @summary Get entitlement insights for a role + * @param {string} insightId The role insight id + * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **identitiesWithAccess, name** + * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **name**: *sw* **description**: *sw* + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getRoleInsightsEntitlementsChanges: function (insightId, sorters, filters, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.getRoleInsightsEntitlementsChanges(insightId, sorters, filters, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This endpoint returns details of a prior role insights request. + * @summary Returns metadata from prior request. + * @param {string} id The role insights request id + * @param {*} [axiosOptions] Override http request option. + * @deprecated + * @throws {RequiredError} + */ + getRoleInsightsRequests: function (id, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.getRoleInsightsRequests(id, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This method returns high level summary information for role insights for a customer. + * @summary Get role insights summary information + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getRoleInsightsSummary: function (axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.getRoleInsightsSummary(axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + }; + }; + exports.RoleInsightsBetaApiFp = RoleInsightsBetaApiFp; + /** + * RoleInsightsBetaApi - factory interface + * @export + */ + var RoleInsightsBetaApiFactory = function (configuration, basePath, axios) { + var localVarFp = (0, exports.RoleInsightsBetaApiFp)(configuration); + return { + /** + * Submits a create role insights request to the role insights application. At this time there are no parameters. All business roles will be processed for the customer. + * @summary Generate insights for roles + * @param {*} [axiosOptions] Override http request option. + * @deprecated + * @throws {RequiredError} + */ + createRoleInsightRequests: function (axiosOptions) { + return localVarFp.createRoleInsightRequests(axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This endpoint returns the entitlement insights for a role. + * @summary Download entitlement insights for a role + * @param {string} insightId The role insight id + * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **identitiesWithAccess** The default sort is **identitiesWithAccess** in descending order. + * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **name**: *sw* **description**: *sw* + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + downloadRoleInsightsEntitlementsChanges: function (insightId, sorters, filters, axiosOptions) { + return localVarFp.downloadRoleInsightsEntitlementsChanges(insightId, sorters, filters, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * Role insights suggests entitlements to be added for a role. This endpoint returns a list of identities in the role, with or without the entitlements, for a suggested entitlement so that the user can see which identities would be affected if the suggested entitlement were to be added to the role. + * @summary Get identities for a suggested entitlement (for a role) + * @param {string} insightId The role insight id + * @param {string} entitlementId The entitlement id + * @param {boolean} [hasEntitlement] Identity has this entitlement or not + * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **name** + * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **name**: *sw* + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getEntitlementChangesIdentities: function (insightId, entitlementId, hasEntitlement, offset, limit, count, sorters, filters, axiosOptions) { + return localVarFp.getEntitlementChangesIdentities(insightId, entitlementId, hasEntitlement, offset, limit, count, sorters, filters, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This endpoint gets role insights information for a role. + * @summary Get a single role insight + * @param {string} insightId The role insight id + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getRoleInsight: function (insightId, axiosOptions) { + return localVarFp.getRoleInsight(insightId, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This method returns detailed role insights for each role. + * @summary Get role insights + * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **numberOfUpdates, identitiesWithAccess, totalNumberOfIdentities** + * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **name**: *sw* **ownerName**: *sw* **description**: *sw* + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getRoleInsights: function (offset, limit, count, sorters, filters, axiosOptions) { + return localVarFp.getRoleInsights(offset, limit, count, sorters, filters, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This endpoint gets the entitlements for a role. The term \"current\" is to distinguish from the entitlement(s) an insight might recommend adding. + * @summary Get current entitlement for a role + * @param {string} insightId The role insight id + * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **name**: *sw* **description**: *sw* + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getRoleInsightsCurrentEntitlements: function (insightId, filters, axiosOptions) { + return localVarFp.getRoleInsightsCurrentEntitlements(insightId, filters, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This endpoint returns entitlement insights for a role. + * @summary Get entitlement insights for a role + * @param {string} insightId The role insight id + * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **identitiesWithAccess, name** + * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **name**: *sw* **description**: *sw* + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getRoleInsightsEntitlementsChanges: function (insightId, sorters, filters, axiosOptions) { + return localVarFp.getRoleInsightsEntitlementsChanges(insightId, sorters, filters, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This endpoint returns details of a prior role insights request. + * @summary Returns metadata from prior request. + * @param {string} id The role insights request id + * @param {*} [axiosOptions] Override http request option. + * @deprecated + * @throws {RequiredError} + */ + getRoleInsightsRequests: function (id, axiosOptions) { + return localVarFp.getRoleInsightsRequests(id, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This method returns high level summary information for role insights for a customer. + * @summary Get role insights summary information + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getRoleInsightsSummary: function (axiosOptions) { + return localVarFp.getRoleInsightsSummary(axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + }; + }; + exports.RoleInsightsBetaApiFactory = RoleInsightsBetaApiFactory; + /** + * RoleInsightsBetaApi - object-oriented interface + * @export + * @class RoleInsightsBetaApi + * @extends {BaseAPI} + */ + var RoleInsightsBetaApi = /** @class */ (function (_super) { + __extends(RoleInsightsBetaApi, _super); + function RoleInsightsBetaApi() { + return _super !== null && _super.apply(this, arguments) || this; + } + /** + * Submits a create role insights request to the role insights application. At this time there are no parameters. All business roles will be processed for the customer. + * @summary Generate insights for roles + * @param {*} [axiosOptions] Override http request option. + * @deprecated + * @throws {RequiredError} + * @memberof RoleInsightsBetaApi + */ + RoleInsightsBetaApi.prototype.createRoleInsightRequests = function (axiosOptions) { + var _this = this; + return (0, exports.RoleInsightsBetaApiFp)(this.configuration).createRoleInsightRequests(axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This endpoint returns the entitlement insights for a role. + * @summary Download entitlement insights for a role + * @param {RoleInsightsBetaApiDownloadRoleInsightsEntitlementsChangesRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof RoleInsightsBetaApi + */ + RoleInsightsBetaApi.prototype.downloadRoleInsightsEntitlementsChanges = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.RoleInsightsBetaApiFp)(this.configuration).downloadRoleInsightsEntitlementsChanges(requestParameters.insightId, requestParameters.sorters, requestParameters.filters, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * Role insights suggests entitlements to be added for a role. This endpoint returns a list of identities in the role, with or without the entitlements, for a suggested entitlement so that the user can see which identities would be affected if the suggested entitlement were to be added to the role. + * @summary Get identities for a suggested entitlement (for a role) + * @param {RoleInsightsBetaApiGetEntitlementChangesIdentitiesRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof RoleInsightsBetaApi + */ + RoleInsightsBetaApi.prototype.getEntitlementChangesIdentities = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.RoleInsightsBetaApiFp)(this.configuration).getEntitlementChangesIdentities(requestParameters.insightId, requestParameters.entitlementId, requestParameters.hasEntitlement, requestParameters.offset, requestParameters.limit, requestParameters.count, requestParameters.sorters, requestParameters.filters, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This endpoint gets role insights information for a role. + * @summary Get a single role insight + * @param {RoleInsightsBetaApiGetRoleInsightRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof RoleInsightsBetaApi + */ + RoleInsightsBetaApi.prototype.getRoleInsight = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.RoleInsightsBetaApiFp)(this.configuration).getRoleInsight(requestParameters.insightId, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This method returns detailed role insights for each role. + * @summary Get role insights + * @param {RoleInsightsBetaApiGetRoleInsightsRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof RoleInsightsBetaApi + */ + RoleInsightsBetaApi.prototype.getRoleInsights = function (requestParameters, axiosOptions) { + var _this = this; + if (requestParameters === void 0) { requestParameters = {}; } + return (0, exports.RoleInsightsBetaApiFp)(this.configuration).getRoleInsights(requestParameters.offset, requestParameters.limit, requestParameters.count, requestParameters.sorters, requestParameters.filters, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This endpoint gets the entitlements for a role. The term \"current\" is to distinguish from the entitlement(s) an insight might recommend adding. + * @summary Get current entitlement for a role + * @param {RoleInsightsBetaApiGetRoleInsightsCurrentEntitlementsRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof RoleInsightsBetaApi + */ + RoleInsightsBetaApi.prototype.getRoleInsightsCurrentEntitlements = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.RoleInsightsBetaApiFp)(this.configuration).getRoleInsightsCurrentEntitlements(requestParameters.insightId, requestParameters.filters, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This endpoint returns entitlement insights for a role. + * @summary Get entitlement insights for a role + * @param {RoleInsightsBetaApiGetRoleInsightsEntitlementsChangesRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof RoleInsightsBetaApi + */ + RoleInsightsBetaApi.prototype.getRoleInsightsEntitlementsChanges = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.RoleInsightsBetaApiFp)(this.configuration).getRoleInsightsEntitlementsChanges(requestParameters.insightId, requestParameters.sorters, requestParameters.filters, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This endpoint returns details of a prior role insights request. + * @summary Returns metadata from prior request. + * @param {RoleInsightsBetaApiGetRoleInsightsRequestsRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @deprecated + * @throws {RequiredError} + * @memberof RoleInsightsBetaApi + */ + RoleInsightsBetaApi.prototype.getRoleInsightsRequests = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.RoleInsightsBetaApiFp)(this.configuration).getRoleInsightsRequests(requestParameters.id, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This method returns high level summary information for role insights for a customer. + * @summary Get role insights summary information + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof RoleInsightsBetaApi + */ + RoleInsightsBetaApi.prototype.getRoleInsightsSummary = function (axiosOptions) { + var _this = this; + return (0, exports.RoleInsightsBetaApiFp)(this.configuration).getRoleInsightsSummary(axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + return RoleInsightsBetaApi; + }(base_1.BaseAPI)); + exports.RoleInsightsBetaApi = RoleInsightsBetaApi; + /** + * RolesBetaApi - axios parameter creator + * @export + */ + var RolesBetaApiAxiosParamCreator = function (configuration) { + var _this = this; + return { + /** + * This API initiates a bulk deletion of one or more Roles. A token with API, ORG_ADMIN, ROLE_ADMIN, or ROLE_SUBADMIN authority is required to call this API. In addition, a token with ROLE_SUBADMIN authority may only call this API if all Roles included in the request are associated to Sources with management workgroups of which the ROLE_SUBADMIN is a member. + * @summary Delete Role(s) + * @param {RoleBulkDeleteRequestBeta} roleBulkDeleteRequestBeta + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + bulkDeleteRoles: function (roleBulkDeleteRequestBeta, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'roleBulkDeleteRequestBeta' is not null or undefined + (0, common_1.assertParamExists)('bulkDeleteRoles', 'roleBulkDeleteRequestBeta', roleBulkDeleteRequestBeta); + localVarPath = "/roles/bulk-delete"; + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + localVarHeaderParameter['Content-Type'] = 'application/json'; + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(roleBulkDeleteRequestBeta, localVarRequestOptions, configuration); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This API creates a role. You must have a token with API, ORG_ADMIN, ROLE_ADMIN, or ROLE_SUBADMIN authority to call this API. In addition, a ROLE_SUBADMIN may not create a role including an access profile if that access profile is associated with a source the ROLE_SUBADMIN is not associated with themselves. The maximum supported length for the description field is 2000 characters. Longer descriptions will be preserved for existing roles. However, any new roles as well as any updates to existing descriptions will be limited to 2000 characters. + * @summary Create a Role + * @param {RoleBeta} roleBeta + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + createRole: function (roleBeta, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'roleBeta' is not null or undefined + (0, common_1.assertParamExists)('createRole', 'roleBeta', roleBeta); + localVarPath = "/roles"; + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + localVarHeaderParameter['Content-Type'] = 'application/json'; + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(roleBeta, localVarRequestOptions, configuration); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This API deletes a Role by its ID. A token with API, ORG_ADMIN, ROLE_ADMIN, or ROLE_SUBADMIN authority is required to call this API. In addition, a token with ROLE_SUBADMIN authority may only call this API if all Access Profiles included in the Role are associated to Sources with management workgroups of which the ROLE_SUBADMIN is a member. + * @summary Delete a Role + * @param {string} id ID of the Role + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + deleteRole: function (id, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'id' is not null or undefined + (0, common_1.assertParamExists)('deleteRole', 'id', id); + localVarPath = "/roles/{id}" + .replace("{".concat("id", "}"), encodeURIComponent(String(id))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'DELETE' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This API returns a Role by its ID. A token with API, ORG_ADMIN, ROLE_ADMIN, or ROLE_SUBADMIN authority is required to call this API. In addition, a token with ROLE_SUBADMIN authority may only call this API if all Access Profiles included in the Role are associated to Sources with management workgroups of which the ROLE_SUBADMIN is a member. + * @summary Get a Role + * @param {string} id ID of the Role + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getRole: function (id, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'id' is not null or undefined + (0, common_1.assertParamExists)('getRole', 'id', id); + localVarPath = "/roles/{id}" + .replace("{".concat("id", "}"), encodeURIComponent(String(id))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * + * @summary Identities assigned a Role + * @param {string} id ID of the Role for which the assigned Identities are to be listed + * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **id**: *eq, in* **aliasName**: *eq, sw* **email**: *eq, sw* **name**: *eq, sw, co* + * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **id, name, aliasName, email** + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getRoleAssignedIdentities: function (id, limit, offset, count, filters, sorters, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'id' is not null or undefined + (0, common_1.assertParamExists)('getRoleAssignedIdentities', 'id', id); + localVarPath = "/roles/{id}/assigned-identities" + .replace("{".concat("id", "}"), encodeURIComponent(String(id))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + if (limit !== undefined) { + localVarQueryParameter['limit'] = limit; + } + if (offset !== undefined) { + localVarQueryParameter['offset'] = offset; + } + if (count !== undefined) { + localVarQueryParameter['count'] = count; + } + if (filters !== undefined) { + localVarQueryParameter['filters'] = filters; + } + if (sorters !== undefined) { + localVarQueryParameter['sorters'] = sorters; + } + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This API returns a list of Roles. A token with API, ORG_ADMIN, ROLE_ADMIN, or ROLE_SUBADMIN authority is required to call this API. + * @summary List Roles + * @param {string} [forSubadmin] If provided, filters the returned list according to what is visible to the indicated ROLE_SUBADMIN Identity. The value of the parameter is either an Identity ID, or the special value **me**, which is shorthand for the calling Identity\'s ID. A 400 Bad Request error is returned if the **for-subadmin** parameter is specified for an Identity that is not a subadmin. + * @param {number} [limit] Note that for this API the maximum value for limit is 50. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **id**: *eq, in* **name**: *eq, sw, co* **created**: *gt, lt, ge, le* **modified**: *gt, lt, ge, le* **owner.id**: *eq, in* **requestable**: *eq* + * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **name, created, modified** + * @param {string} [forSegmentIds] If present and not empty, additionally filters Roles to those which are assigned to the Segment(s) with the specified IDs. If segmentation is currently unavailable, specifying this parameter results in an error. + * @param {boolean} [includeUnsegmented] Whether or not the response list should contain unsegmented Roles. If *for-segment-ids* is absent or empty, specifying *include-unsegmented* as false results in an error. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + listRoles: function (forSubadmin, limit, offset, count, filters, sorters, forSegmentIds, includeUnsegmented, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + localVarPath = "/roles"; + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + if (forSubadmin !== undefined) { + localVarQueryParameter['for-subadmin'] = forSubadmin; + } + if (limit !== undefined) { + localVarQueryParameter['limit'] = limit; + } + if (offset !== undefined) { + localVarQueryParameter['offset'] = offset; + } + if (count !== undefined) { + localVarQueryParameter['count'] = count; + } + if (filters !== undefined) { + localVarQueryParameter['filters'] = filters; + } + if (sorters !== undefined) { + localVarQueryParameter['sorters'] = sorters; + } + if (forSegmentIds !== undefined) { + localVarQueryParameter['for-segment-ids'] = forSegmentIds; + } + if (includeUnsegmented !== undefined) { + localVarQueryParameter['include-unsegmented'] = includeUnsegmented; + } + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This API updates an existing Role using [JSON Patch](https://tools.ietf.org/html/rfc6902) syntax. The following fields are patchable: **name**, **description**, **enabled**, **owner**, **accessProfiles**, **membership**, **requestable**, **accessRequestConfig**, **revokeRequestConfig**, **segments** A token with API, ORG_ADMIN, ROLE_ADMIN, or ROLE_SUBADMIN authority is required to call this API. In addition, a token with ROLE_SUBADMIN authority may only call this API if all Access Profiles included in the Role are associated to Sources with management workgroups of which the ROLE_SUBADMIN is a member. The maximum supported length for the description field is 2000 characters. Longer descriptions will be preserved for existing roles, however, any new roles as well as any updates to existing descriptions will be limited to 2000 characters. + * @summary Patch a specified Role + * @param {string} id ID of the Role to patch + * @param {Array} jsonPatchOperationBeta + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + patchRole: function (id, jsonPatchOperationBeta, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'id' is not null or undefined + (0, common_1.assertParamExists)('patchRole', 'id', id); + // verify required parameter 'jsonPatchOperationBeta' is not null or undefined + (0, common_1.assertParamExists)('patchRole', 'jsonPatchOperationBeta', jsonPatchOperationBeta); + localVarPath = "/roles/{id}" + .replace("{".concat("id", "}"), encodeURIComponent(String(id))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'PATCH' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + localVarHeaderParameter['Content-Type'] = 'application/json-patch+json'; + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(jsonPatchOperationBeta, localVarRequestOptions, configuration); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + }; + }; + exports.RolesBetaApiAxiosParamCreator = RolesBetaApiAxiosParamCreator; + /** + * RolesBetaApi - functional programming interface + * @export + */ + var RolesBetaApiFp = function (configuration) { + var localVarAxiosParamCreator = (0, exports.RolesBetaApiAxiosParamCreator)(configuration); + return { + /** + * This API initiates a bulk deletion of one or more Roles. A token with API, ORG_ADMIN, ROLE_ADMIN, or ROLE_SUBADMIN authority is required to call this API. In addition, a token with ROLE_SUBADMIN authority may only call this API if all Roles included in the request are associated to Sources with management workgroups of which the ROLE_SUBADMIN is a member. + * @summary Delete Role(s) + * @param {RoleBulkDeleteRequestBeta} roleBulkDeleteRequestBeta + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + bulkDeleteRoles: function (roleBulkDeleteRequestBeta, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.bulkDeleteRoles(roleBulkDeleteRequestBeta, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This API creates a role. You must have a token with API, ORG_ADMIN, ROLE_ADMIN, or ROLE_SUBADMIN authority to call this API. In addition, a ROLE_SUBADMIN may not create a role including an access profile if that access profile is associated with a source the ROLE_SUBADMIN is not associated with themselves. The maximum supported length for the description field is 2000 characters. Longer descriptions will be preserved for existing roles. However, any new roles as well as any updates to existing descriptions will be limited to 2000 characters. + * @summary Create a Role + * @param {RoleBeta} roleBeta + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + createRole: function (roleBeta, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.createRole(roleBeta, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This API deletes a Role by its ID. A token with API, ORG_ADMIN, ROLE_ADMIN, or ROLE_SUBADMIN authority is required to call this API. In addition, a token with ROLE_SUBADMIN authority may only call this API if all Access Profiles included in the Role are associated to Sources with management workgroups of which the ROLE_SUBADMIN is a member. + * @summary Delete a Role + * @param {string} id ID of the Role + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + deleteRole: function (id, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.deleteRole(id, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This API returns a Role by its ID. A token with API, ORG_ADMIN, ROLE_ADMIN, or ROLE_SUBADMIN authority is required to call this API. In addition, a token with ROLE_SUBADMIN authority may only call this API if all Access Profiles included in the Role are associated to Sources with management workgroups of which the ROLE_SUBADMIN is a member. + * @summary Get a Role + * @param {string} id ID of the Role + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getRole: function (id, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.getRole(id, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * + * @summary Identities assigned a Role + * @param {string} id ID of the Role for which the assigned Identities are to be listed + * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **id**: *eq, in* **aliasName**: *eq, sw* **email**: *eq, sw* **name**: *eq, sw, co* + * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **id, name, aliasName, email** + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getRoleAssignedIdentities: function (id, limit, offset, count, filters, sorters, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.getRoleAssignedIdentities(id, limit, offset, count, filters, sorters, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This API returns a list of Roles. A token with API, ORG_ADMIN, ROLE_ADMIN, or ROLE_SUBADMIN authority is required to call this API. + * @summary List Roles + * @param {string} [forSubadmin] If provided, filters the returned list according to what is visible to the indicated ROLE_SUBADMIN Identity. The value of the parameter is either an Identity ID, or the special value **me**, which is shorthand for the calling Identity\'s ID. A 400 Bad Request error is returned if the **for-subadmin** parameter is specified for an Identity that is not a subadmin. + * @param {number} [limit] Note that for this API the maximum value for limit is 50. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **id**: *eq, in* **name**: *eq, sw, co* **created**: *gt, lt, ge, le* **modified**: *gt, lt, ge, le* **owner.id**: *eq, in* **requestable**: *eq* + * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **name, created, modified** + * @param {string} [forSegmentIds] If present and not empty, additionally filters Roles to those which are assigned to the Segment(s) with the specified IDs. If segmentation is currently unavailable, specifying this parameter results in an error. + * @param {boolean} [includeUnsegmented] Whether or not the response list should contain unsegmented Roles. If *for-segment-ids* is absent or empty, specifying *include-unsegmented* as false results in an error. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + listRoles: function (forSubadmin, limit, offset, count, filters, sorters, forSegmentIds, includeUnsegmented, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.listRoles(forSubadmin, limit, offset, count, filters, sorters, forSegmentIds, includeUnsegmented, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This API updates an existing Role using [JSON Patch](https://tools.ietf.org/html/rfc6902) syntax. The following fields are patchable: **name**, **description**, **enabled**, **owner**, **accessProfiles**, **membership**, **requestable**, **accessRequestConfig**, **revokeRequestConfig**, **segments** A token with API, ORG_ADMIN, ROLE_ADMIN, or ROLE_SUBADMIN authority is required to call this API. In addition, a token with ROLE_SUBADMIN authority may only call this API if all Access Profiles included in the Role are associated to Sources with management workgroups of which the ROLE_SUBADMIN is a member. The maximum supported length for the description field is 2000 characters. Longer descriptions will be preserved for existing roles, however, any new roles as well as any updates to existing descriptions will be limited to 2000 characters. + * @summary Patch a specified Role + * @param {string} id ID of the Role to patch + * @param {Array} jsonPatchOperationBeta + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + patchRole: function (id, jsonPatchOperationBeta, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.patchRole(id, jsonPatchOperationBeta, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + }; + }; + exports.RolesBetaApiFp = RolesBetaApiFp; + /** + * RolesBetaApi - factory interface + * @export + */ + var RolesBetaApiFactory = function (configuration, basePath, axios) { + var localVarFp = (0, exports.RolesBetaApiFp)(configuration); + return { + /** + * This API initiates a bulk deletion of one or more Roles. A token with API, ORG_ADMIN, ROLE_ADMIN, or ROLE_SUBADMIN authority is required to call this API. In addition, a token with ROLE_SUBADMIN authority may only call this API if all Roles included in the request are associated to Sources with management workgroups of which the ROLE_SUBADMIN is a member. + * @summary Delete Role(s) + * @param {RoleBulkDeleteRequestBeta} roleBulkDeleteRequestBeta + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + bulkDeleteRoles: function (roleBulkDeleteRequestBeta, axiosOptions) { + return localVarFp.bulkDeleteRoles(roleBulkDeleteRequestBeta, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This API creates a role. You must have a token with API, ORG_ADMIN, ROLE_ADMIN, or ROLE_SUBADMIN authority to call this API. In addition, a ROLE_SUBADMIN may not create a role including an access profile if that access profile is associated with a source the ROLE_SUBADMIN is not associated with themselves. The maximum supported length for the description field is 2000 characters. Longer descriptions will be preserved for existing roles. However, any new roles as well as any updates to existing descriptions will be limited to 2000 characters. + * @summary Create a Role + * @param {RoleBeta} roleBeta + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + createRole: function (roleBeta, axiosOptions) { + return localVarFp.createRole(roleBeta, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This API deletes a Role by its ID. A token with API, ORG_ADMIN, ROLE_ADMIN, or ROLE_SUBADMIN authority is required to call this API. In addition, a token with ROLE_SUBADMIN authority may only call this API if all Access Profiles included in the Role are associated to Sources with management workgroups of which the ROLE_SUBADMIN is a member. + * @summary Delete a Role + * @param {string} id ID of the Role + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + deleteRole: function (id, axiosOptions) { + return localVarFp.deleteRole(id, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This API returns a Role by its ID. A token with API, ORG_ADMIN, ROLE_ADMIN, or ROLE_SUBADMIN authority is required to call this API. In addition, a token with ROLE_SUBADMIN authority may only call this API if all Access Profiles included in the Role are associated to Sources with management workgroups of which the ROLE_SUBADMIN is a member. + * @summary Get a Role + * @param {string} id ID of the Role + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getRole: function (id, axiosOptions) { + return localVarFp.getRole(id, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * + * @summary Identities assigned a Role + * @param {string} id ID of the Role for which the assigned Identities are to be listed + * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **id**: *eq, in* **aliasName**: *eq, sw* **email**: *eq, sw* **name**: *eq, sw, co* + * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **id, name, aliasName, email** + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getRoleAssignedIdentities: function (id, limit, offset, count, filters, sorters, axiosOptions) { + return localVarFp.getRoleAssignedIdentities(id, limit, offset, count, filters, sorters, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This API returns a list of Roles. A token with API, ORG_ADMIN, ROLE_ADMIN, or ROLE_SUBADMIN authority is required to call this API. + * @summary List Roles + * @param {string} [forSubadmin] If provided, filters the returned list according to what is visible to the indicated ROLE_SUBADMIN Identity. The value of the parameter is either an Identity ID, or the special value **me**, which is shorthand for the calling Identity\'s ID. A 400 Bad Request error is returned if the **for-subadmin** parameter is specified for an Identity that is not a subadmin. + * @param {number} [limit] Note that for this API the maximum value for limit is 50. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **id**: *eq, in* **name**: *eq, sw, co* **created**: *gt, lt, ge, le* **modified**: *gt, lt, ge, le* **owner.id**: *eq, in* **requestable**: *eq* + * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **name, created, modified** + * @param {string} [forSegmentIds] If present and not empty, additionally filters Roles to those which are assigned to the Segment(s) with the specified IDs. If segmentation is currently unavailable, specifying this parameter results in an error. + * @param {boolean} [includeUnsegmented] Whether or not the response list should contain unsegmented Roles. If *for-segment-ids* is absent or empty, specifying *include-unsegmented* as false results in an error. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + listRoles: function (forSubadmin, limit, offset, count, filters, sorters, forSegmentIds, includeUnsegmented, axiosOptions) { + return localVarFp.listRoles(forSubadmin, limit, offset, count, filters, sorters, forSegmentIds, includeUnsegmented, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This API updates an existing Role using [JSON Patch](https://tools.ietf.org/html/rfc6902) syntax. The following fields are patchable: **name**, **description**, **enabled**, **owner**, **accessProfiles**, **membership**, **requestable**, **accessRequestConfig**, **revokeRequestConfig**, **segments** A token with API, ORG_ADMIN, ROLE_ADMIN, or ROLE_SUBADMIN authority is required to call this API. In addition, a token with ROLE_SUBADMIN authority may only call this API if all Access Profiles included in the Role are associated to Sources with management workgroups of which the ROLE_SUBADMIN is a member. The maximum supported length for the description field is 2000 characters. Longer descriptions will be preserved for existing roles, however, any new roles as well as any updates to existing descriptions will be limited to 2000 characters. + * @summary Patch a specified Role + * @param {string} id ID of the Role to patch + * @param {Array} jsonPatchOperationBeta + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + patchRole: function (id, jsonPatchOperationBeta, axiosOptions) { + return localVarFp.patchRole(id, jsonPatchOperationBeta, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + }; + }; + exports.RolesBetaApiFactory = RolesBetaApiFactory; + /** + * RolesBetaApi - object-oriented interface + * @export + * @class RolesBetaApi + * @extends {BaseAPI} + */ + var RolesBetaApi = /** @class */ (function (_super) { + __extends(RolesBetaApi, _super); + function RolesBetaApi() { + return _super !== null && _super.apply(this, arguments) || this; + } + /** + * This API initiates a bulk deletion of one or more Roles. A token with API, ORG_ADMIN, ROLE_ADMIN, or ROLE_SUBADMIN authority is required to call this API. In addition, a token with ROLE_SUBADMIN authority may only call this API if all Roles included in the request are associated to Sources with management workgroups of which the ROLE_SUBADMIN is a member. + * @summary Delete Role(s) + * @param {RolesBetaApiBulkDeleteRolesRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof RolesBetaApi + */ + RolesBetaApi.prototype.bulkDeleteRoles = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.RolesBetaApiFp)(this.configuration).bulkDeleteRoles(requestParameters.roleBulkDeleteRequestBeta, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This API creates a role. You must have a token with API, ORG_ADMIN, ROLE_ADMIN, or ROLE_SUBADMIN authority to call this API. In addition, a ROLE_SUBADMIN may not create a role including an access profile if that access profile is associated with a source the ROLE_SUBADMIN is not associated with themselves. The maximum supported length for the description field is 2000 characters. Longer descriptions will be preserved for existing roles. However, any new roles as well as any updates to existing descriptions will be limited to 2000 characters. + * @summary Create a Role + * @param {RolesBetaApiCreateRoleRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof RolesBetaApi + */ + RolesBetaApi.prototype.createRole = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.RolesBetaApiFp)(this.configuration).createRole(requestParameters.roleBeta, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This API deletes a Role by its ID. A token with API, ORG_ADMIN, ROLE_ADMIN, or ROLE_SUBADMIN authority is required to call this API. In addition, a token with ROLE_SUBADMIN authority may only call this API if all Access Profiles included in the Role are associated to Sources with management workgroups of which the ROLE_SUBADMIN is a member. + * @summary Delete a Role + * @param {RolesBetaApiDeleteRoleRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof RolesBetaApi + */ + RolesBetaApi.prototype.deleteRole = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.RolesBetaApiFp)(this.configuration).deleteRole(requestParameters.id, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This API returns a Role by its ID. A token with API, ORG_ADMIN, ROLE_ADMIN, or ROLE_SUBADMIN authority is required to call this API. In addition, a token with ROLE_SUBADMIN authority may only call this API if all Access Profiles included in the Role are associated to Sources with management workgroups of which the ROLE_SUBADMIN is a member. + * @summary Get a Role + * @param {RolesBetaApiGetRoleRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof RolesBetaApi + */ + RolesBetaApi.prototype.getRole = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.RolesBetaApiFp)(this.configuration).getRole(requestParameters.id, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * + * @summary Identities assigned a Role + * @param {RolesBetaApiGetRoleAssignedIdentitiesRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof RolesBetaApi + */ + RolesBetaApi.prototype.getRoleAssignedIdentities = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.RolesBetaApiFp)(this.configuration).getRoleAssignedIdentities(requestParameters.id, requestParameters.limit, requestParameters.offset, requestParameters.count, requestParameters.filters, requestParameters.sorters, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This API returns a list of Roles. A token with API, ORG_ADMIN, ROLE_ADMIN, or ROLE_SUBADMIN authority is required to call this API. + * @summary List Roles + * @param {RolesBetaApiListRolesRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof RolesBetaApi + */ + RolesBetaApi.prototype.listRoles = function (requestParameters, axiosOptions) { + var _this = this; + if (requestParameters === void 0) { requestParameters = {}; } + return (0, exports.RolesBetaApiFp)(this.configuration).listRoles(requestParameters.forSubadmin, requestParameters.limit, requestParameters.offset, requestParameters.count, requestParameters.filters, requestParameters.sorters, requestParameters.forSegmentIds, requestParameters.includeUnsegmented, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This API updates an existing Role using [JSON Patch](https://tools.ietf.org/html/rfc6902) syntax. The following fields are patchable: **name**, **description**, **enabled**, **owner**, **accessProfiles**, **membership**, **requestable**, **accessRequestConfig**, **revokeRequestConfig**, **segments** A token with API, ORG_ADMIN, ROLE_ADMIN, or ROLE_SUBADMIN authority is required to call this API. In addition, a token with ROLE_SUBADMIN authority may only call this API if all Access Profiles included in the Role are associated to Sources with management workgroups of which the ROLE_SUBADMIN is a member. The maximum supported length for the description field is 2000 characters. Longer descriptions will be preserved for existing roles, however, any new roles as well as any updates to existing descriptions will be limited to 2000 characters. + * @summary Patch a specified Role + * @param {RolesBetaApiPatchRoleRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof RolesBetaApi + */ + RolesBetaApi.prototype.patchRole = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.RolesBetaApiFp)(this.configuration).patchRole(requestParameters.id, requestParameters.jsonPatchOperationBeta, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + return RolesBetaApi; + }(base_1.BaseAPI)); + exports.RolesBetaApi = RolesBetaApi; + /** + * SODPolicyBetaApi - axios parameter creator + * @export + */ + var SODPolicyBetaApiAxiosParamCreator = function (configuration) { + var _this = this; + return { + /** + * This creates both General and Conflicting Access Based policy, with a limit of 50 entitlements for each (left & right) criteria for Conflicting Access Based SOD policy. Requires role of ORG_ADMIN. + * @summary Create SOD policy + * @param {SodPolicyBeta} sodPolicyBeta + * @param {*} [axiosOptions] Override http request option. + * @deprecated + * @throws {RequiredError} + */ + createSodPolicy: function (sodPolicyBeta, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'sodPolicyBeta' is not null or undefined + (0, common_1.assertParamExists)('createSodPolicy', 'sodPolicyBeta', sodPolicyBeta); + localVarPath = "/sod-policies"; + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + localVarHeaderParameter['Content-Type'] = 'application/json'; + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(sodPolicyBeta, localVarRequestOptions, configuration); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This deletes a specified SOD policy. Requires role of ORG_ADMIN. + * @summary Delete SOD policy by ID + * @param {string} id The ID of the SOD Policy to delete. + * @param {boolean} [logical] Indicates whether this is a soft delete (logical true) or a hard delete. + * @param {*} [axiosOptions] Override http request option. + * @deprecated + * @throws {RequiredError} + */ + deleteSodPolicy: function (id, logical, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'id' is not null or undefined + (0, common_1.assertParamExists)('deleteSodPolicy', 'id', id); + localVarPath = "/sod-policies/{id}" + .replace("{".concat("id", "}"), encodeURIComponent(String(id))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'DELETE' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + if (logical !== undefined) { + localVarQueryParameter['logical'] = logical; + } + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This deletes schedule for a specified SOD policy. Requires role of ORG_ADMIN. + * @summary Delete SOD policy schedule + * @param {string} id The ID of the SOD policy the schedule must be deleted for. + * @param {*} [axiosOptions] Override http request option. + * @deprecated + * @throws {RequiredError} + */ + deleteSodPolicySchedule: function (id, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'id' is not null or undefined + (0, common_1.assertParamExists)('deleteSodPolicySchedule', 'id', id); + localVarPath = "/sod-policies/{id}/schedule" + .replace("{".concat("id", "}"), encodeURIComponent(String(id))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'DELETE' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This allows to download a specified named violation report for a given report reference. Requires role of ORG_ADMIN. + * @summary Download custom violation report + * @param {string} reportResultId The ID of the report reference to download. + * @param {string} fileName Custom Name for the file. + * @param {*} [axiosOptions] Override http request option. + * @deprecated + * @throws {RequiredError} + */ + getCustomViolationReport: function (reportResultId, fileName, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'reportResultId' is not null or undefined + (0, common_1.assertParamExists)('getCustomViolationReport', 'reportResultId', reportResultId); + // verify required parameter 'fileName' is not null or undefined + (0, common_1.assertParamExists)('getCustomViolationReport', 'fileName', fileName); + localVarPath = "/sod-violation-report/{reportResultId}/download/{fileName}" + .replace("{".concat("reportResultId", "}"), encodeURIComponent(String(reportResultId))) + .replace("{".concat("fileName", "}"), encodeURIComponent(String(fileName))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This allows to download a violation report for a given report reference. Requires role of ORG_ADMIN. + * @summary Download violation report + * @param {string} reportResultId The ID of the report reference to download. + * @param {*} [axiosOptions] Override http request option. + * @deprecated + * @throws {RequiredError} + */ + getDefaultViolationReport: function (reportResultId, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'reportResultId' is not null or undefined + (0, common_1.assertParamExists)('getDefaultViolationReport', 'reportResultId', reportResultId); + localVarPath = "/sod-violation-report/{reportResultId}/download" + .replace("{".concat("reportResultId", "}"), encodeURIComponent(String(reportResultId))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This endpoint gets the status for a violation report for all policy run. Requires role of ORG_ADMIN. + * @summary Get multi-report run task status + * @param {*} [axiosOptions] Override http request option. + * @deprecated + * @throws {RequiredError} + */ + getSodAllReportRunStatus: function (axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + localVarPath = "/sod-violation-report"; + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This gets specified SOD policy. Requires role of ORG_ADMIN. + * @summary Get SOD policy by ID + * @param {string} id The ID of the object reference to retrieve. + * @param {*} [axiosOptions] Override http request option. + * @deprecated + * @throws {RequiredError} + */ + getSodPolicy: function (id, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'id' is not null or undefined + (0, common_1.assertParamExists)('getSodPolicy', 'id', id); + localVarPath = "/sod-policies/{id}" + .replace("{".concat("id", "}"), encodeURIComponent(String(id))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This endpoint gets a specified SOD policy\'s schedule. Requires the role of ORG_ADMIN. + * @summary Get SOD policy schedule + * @param {string} id The ID of the object reference to retrieve. + * @param {*} [axiosOptions] Override http request option. + * @deprecated + * @throws {RequiredError} + */ + getSodPolicySchedule: function (id, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'id' is not null or undefined + (0, common_1.assertParamExists)('getSodPolicySchedule', 'id', id); + localVarPath = "/sod-policies/{id}/schedule" + .replace("{".concat("id", "}"), encodeURIComponent(String(id))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This gets the status for a violation report run task that has already been invoked. Requires role of ORG_ADMIN. + * @summary Get violation report run status + * @param {string} reportResultId The ID of the report reference to retrieve. + * @param {*} [axiosOptions] Override http request option. + * @deprecated + * @throws {RequiredError} + */ + getSodViolationReportRunStatus: function (reportResultId, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'reportResultId' is not null or undefined + (0, common_1.assertParamExists)('getSodViolationReportRunStatus', 'reportResultId', reportResultId); + localVarPath = "/sod-policies/sod-violation-report-status/{reportResultId}" + .replace("{".concat("reportResultId", "}"), encodeURIComponent(String(reportResultId))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This gets the status for a violation report run task that has already been invoked. Requires role of ORG_ADMIN. + * @summary Get SOD violation report status + * @param {string} id The ID of the object reference to retrieve. + * @param {*} [axiosOptions] Override http request option. + * @deprecated + * @throws {RequiredError} + */ + getSodViolationReportStatus: function (id, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'id' is not null or undefined + (0, common_1.assertParamExists)('getSodViolationReportStatus', 'id', id); + localVarPath = "/sod-policies/{id}/violation-report" + .replace("{".concat("id", "}"), encodeURIComponent(String(id))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This gets list of all SOD policies. Requires role of ORG_ADMIN + * @summary List SOD policies + * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **id**: *eq* **name**: *eq* **state**: *eq* + * @param {*} [axiosOptions] Override http request option. + * @deprecated + * @throws {RequiredError} + */ + listSodPolicies: function (limit, offset, count, filters, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + localVarPath = "/sod-policies"; + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + if (limit !== undefined) { + localVarQueryParameter['limit'] = limit; + } + if (offset !== undefined) { + localVarQueryParameter['offset'] = offset; + } + if (count !== undefined) { + localVarQueryParameter['count'] = count; + } + if (filters !== undefined) { + localVarQueryParameter['filters'] = filters; + } + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * Allows updating SOD Policy fields other than [\"id\",\"created\",\"creatorId\",\"policyQuery\",\"type\"] using the [JSON Patch](https://tools.ietf.org/html/rfc6902) standard. Requires role of ORG_ADMIN. This endpoint can only patch CONFLICTING_ACCESS_BASED type policies. Do not use this endpoint to patch general policies - doing so will build an API exception. + * @summary Patch a SOD policy + * @param {string} id The ID of the SOD policy being modified. + * @param {Array} requestBody A list of SOD Policy update operations according to the [JSON Patch](https://tools.ietf.org/html/rfc6902) standard. The following fields are patchable: * name * description * ownerRef * externalPolicyReference * compensatingControls * correctionAdvice * state * tags * violationOwnerAssignmentConfig * scheduled * conflictingAccessCriteria + * @param {*} [axiosOptions] Override http request option. + * @deprecated + * @throws {RequiredError} + */ + patchSodPolicy: function (id, requestBody, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'id' is not null or undefined + (0, common_1.assertParamExists)('patchSodPolicy', 'id', id); + // verify required parameter 'requestBody' is not null or undefined + (0, common_1.assertParamExists)('patchSodPolicy', 'requestBody', requestBody); + localVarPath = "/sod-policies/{id}" + .replace("{".concat("id", "}"), encodeURIComponent(String(id))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'PATCH' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + localVarHeaderParameter['Content-Type'] = 'application/json-patch+json'; + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(requestBody, localVarRequestOptions, configuration); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This updates schedule for a specified SOD policy. Requires role of ORG_ADMIN. + * @summary Update SOD Policy schedule + * @param {string} id The ID of the SOD policy to update its schedule. + * @param {SodPolicyScheduleBeta} sodPolicyScheduleBeta + * @param {*} [axiosOptions] Override http request option. + * @deprecated + * @throws {RequiredError} + */ + putPolicySchedule: function (id, sodPolicyScheduleBeta, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'id' is not null or undefined + (0, common_1.assertParamExists)('putPolicySchedule', 'id', id); + // verify required parameter 'sodPolicyScheduleBeta' is not null or undefined + (0, common_1.assertParamExists)('putPolicySchedule', 'sodPolicyScheduleBeta', sodPolicyScheduleBeta); + localVarPath = "/sod-policies/{id}/schedule" + .replace("{".concat("id", "}"), encodeURIComponent(String(id))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'PUT' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + localVarHeaderParameter['Content-Type'] = 'application/json'; + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(sodPolicyScheduleBeta, localVarRequestOptions, configuration); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This updates a specified SOD policy. Requires role of ORG_ADMIN. + * @summary Update SOD policy by ID + * @param {string} id The ID of the SOD policy to update. + * @param {SodPolicyBeta} sodPolicyBeta + * @param {*} [axiosOptions] Override http request option. + * @deprecated + * @throws {RequiredError} + */ + putSodPolicy: function (id, sodPolicyBeta, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'id' is not null or undefined + (0, common_1.assertParamExists)('putSodPolicy', 'id', id); + // verify required parameter 'sodPolicyBeta' is not null or undefined + (0, common_1.assertParamExists)('putSodPolicy', 'sodPolicyBeta', sodPolicyBeta); + localVarPath = "/sod-policies/{id}" + .replace("{".concat("id", "}"), encodeURIComponent(String(id))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'PUT' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + localVarHeaderParameter['Content-Type'] = 'application/json'; + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(sodPolicyBeta, localVarRequestOptions, configuration); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * Runs multi-policy report for the org. If a policy reports more than 5000 violations, the report mentions that the violation limit was exceeded for that policy. If the request is empty, the report runs for all policies. Otherwise, the report runs for only the filtered policy list provided. Requires role of ORG_ADMIN. + * @summary Runs all policies for org + * @param {MultiPolicyRequestBeta} [multiPolicyRequestBeta] + * @param {*} [axiosOptions] Override http request option. + * @deprecated + * @throws {RequiredError} + */ + startSodAllPoliciesForOrg: function (multiPolicyRequestBeta, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + localVarPath = "/sod-violation-report/run"; + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + localVarHeaderParameter['Content-Type'] = 'application/json'; + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(multiPolicyRequestBeta, localVarRequestOptions, configuration); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This invokes processing of violation report for given SOD policy. If the policy reports more than 5000 violations, the report returns with violation limit exceeded message. Requires role of ORG_ADMIN. + * @summary Runs SOD policy violation report + * @param {string} id The SOD policy ID to run. + * @param {*} [axiosOptions] Override http request option. + * @deprecated + * @throws {RequiredError} + */ + startSodPolicy: function (id, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'id' is not null or undefined + (0, common_1.assertParamExists)('startSodPolicy', 'id', id); + localVarPath = "/sod-policies/{id}/violation-report/run" + .replace("{".concat("id", "}"), encodeURIComponent(String(id))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + }; + }; + exports.SODPolicyBetaApiAxiosParamCreator = SODPolicyBetaApiAxiosParamCreator; + /** + * SODPolicyBetaApi - functional programming interface + * @export + */ + var SODPolicyBetaApiFp = function (configuration) { + var localVarAxiosParamCreator = (0, exports.SODPolicyBetaApiAxiosParamCreator)(configuration); + return { + /** + * This creates both General and Conflicting Access Based policy, with a limit of 50 entitlements for each (left & right) criteria for Conflicting Access Based SOD policy. Requires role of ORG_ADMIN. + * @summary Create SOD policy + * @param {SodPolicyBeta} sodPolicyBeta + * @param {*} [axiosOptions] Override http request option. + * @deprecated + * @throws {RequiredError} + */ + createSodPolicy: function (sodPolicyBeta, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.createSodPolicy(sodPolicyBeta, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This deletes a specified SOD policy. Requires role of ORG_ADMIN. + * @summary Delete SOD policy by ID + * @param {string} id The ID of the SOD Policy to delete. + * @param {boolean} [logical] Indicates whether this is a soft delete (logical true) or a hard delete. + * @param {*} [axiosOptions] Override http request option. + * @deprecated + * @throws {RequiredError} + */ + deleteSodPolicy: function (id, logical, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.deleteSodPolicy(id, logical, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This deletes schedule for a specified SOD policy. Requires role of ORG_ADMIN. + * @summary Delete SOD policy schedule + * @param {string} id The ID of the SOD policy the schedule must be deleted for. + * @param {*} [axiosOptions] Override http request option. + * @deprecated + * @throws {RequiredError} + */ + deleteSodPolicySchedule: function (id, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.deleteSodPolicySchedule(id, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This allows to download a specified named violation report for a given report reference. Requires role of ORG_ADMIN. + * @summary Download custom violation report + * @param {string} reportResultId The ID of the report reference to download. + * @param {string} fileName Custom Name for the file. + * @param {*} [axiosOptions] Override http request option. + * @deprecated + * @throws {RequiredError} + */ + getCustomViolationReport: function (reportResultId, fileName, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.getCustomViolationReport(reportResultId, fileName, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This allows to download a violation report for a given report reference. Requires role of ORG_ADMIN. + * @summary Download violation report + * @param {string} reportResultId The ID of the report reference to download. + * @param {*} [axiosOptions] Override http request option. + * @deprecated + * @throws {RequiredError} + */ + getDefaultViolationReport: function (reportResultId, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.getDefaultViolationReport(reportResultId, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This endpoint gets the status for a violation report for all policy run. Requires role of ORG_ADMIN. + * @summary Get multi-report run task status + * @param {*} [axiosOptions] Override http request option. + * @deprecated + * @throws {RequiredError} + */ + getSodAllReportRunStatus: function (axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.getSodAllReportRunStatus(axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This gets specified SOD policy. Requires role of ORG_ADMIN. + * @summary Get SOD policy by ID + * @param {string} id The ID of the object reference to retrieve. + * @param {*} [axiosOptions] Override http request option. + * @deprecated + * @throws {RequiredError} + */ + getSodPolicy: function (id, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.getSodPolicy(id, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This endpoint gets a specified SOD policy\'s schedule. Requires the role of ORG_ADMIN. + * @summary Get SOD policy schedule + * @param {string} id The ID of the object reference to retrieve. + * @param {*} [axiosOptions] Override http request option. + * @deprecated + * @throws {RequiredError} + */ + getSodPolicySchedule: function (id, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.getSodPolicySchedule(id, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This gets the status for a violation report run task that has already been invoked. Requires role of ORG_ADMIN. + * @summary Get violation report run status + * @param {string} reportResultId The ID of the report reference to retrieve. + * @param {*} [axiosOptions] Override http request option. + * @deprecated + * @throws {RequiredError} + */ + getSodViolationReportRunStatus: function (reportResultId, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.getSodViolationReportRunStatus(reportResultId, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This gets the status for a violation report run task that has already been invoked. Requires role of ORG_ADMIN. + * @summary Get SOD violation report status + * @param {string} id The ID of the object reference to retrieve. + * @param {*} [axiosOptions] Override http request option. + * @deprecated + * @throws {RequiredError} + */ + getSodViolationReportStatus: function (id, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.getSodViolationReportStatus(id, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This gets list of all SOD policies. Requires role of ORG_ADMIN + * @summary List SOD policies + * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **id**: *eq* **name**: *eq* **state**: *eq* + * @param {*} [axiosOptions] Override http request option. + * @deprecated + * @throws {RequiredError} + */ + listSodPolicies: function (limit, offset, count, filters, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.listSodPolicies(limit, offset, count, filters, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * Allows updating SOD Policy fields other than [\"id\",\"created\",\"creatorId\",\"policyQuery\",\"type\"] using the [JSON Patch](https://tools.ietf.org/html/rfc6902) standard. Requires role of ORG_ADMIN. This endpoint can only patch CONFLICTING_ACCESS_BASED type policies. Do not use this endpoint to patch general policies - doing so will build an API exception. + * @summary Patch a SOD policy + * @param {string} id The ID of the SOD policy being modified. + * @param {Array} requestBody A list of SOD Policy update operations according to the [JSON Patch](https://tools.ietf.org/html/rfc6902) standard. The following fields are patchable: * name * description * ownerRef * externalPolicyReference * compensatingControls * correctionAdvice * state * tags * violationOwnerAssignmentConfig * scheduled * conflictingAccessCriteria + * @param {*} [axiosOptions] Override http request option. + * @deprecated + * @throws {RequiredError} + */ + patchSodPolicy: function (id, requestBody, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.patchSodPolicy(id, requestBody, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This updates schedule for a specified SOD policy. Requires role of ORG_ADMIN. + * @summary Update SOD Policy schedule + * @param {string} id The ID of the SOD policy to update its schedule. + * @param {SodPolicyScheduleBeta} sodPolicyScheduleBeta + * @param {*} [axiosOptions] Override http request option. + * @deprecated + * @throws {RequiredError} + */ + putPolicySchedule: function (id, sodPolicyScheduleBeta, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.putPolicySchedule(id, sodPolicyScheduleBeta, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This updates a specified SOD policy. Requires role of ORG_ADMIN. + * @summary Update SOD policy by ID + * @param {string} id The ID of the SOD policy to update. + * @param {SodPolicyBeta} sodPolicyBeta + * @param {*} [axiosOptions] Override http request option. + * @deprecated + * @throws {RequiredError} + */ + putSodPolicy: function (id, sodPolicyBeta, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.putSodPolicy(id, sodPolicyBeta, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * Runs multi-policy report for the org. If a policy reports more than 5000 violations, the report mentions that the violation limit was exceeded for that policy. If the request is empty, the report runs for all policies. Otherwise, the report runs for only the filtered policy list provided. Requires role of ORG_ADMIN. + * @summary Runs all policies for org + * @param {MultiPolicyRequestBeta} [multiPolicyRequestBeta] + * @param {*} [axiosOptions] Override http request option. + * @deprecated + * @throws {RequiredError} + */ + startSodAllPoliciesForOrg: function (multiPolicyRequestBeta, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.startSodAllPoliciesForOrg(multiPolicyRequestBeta, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This invokes processing of violation report for given SOD policy. If the policy reports more than 5000 violations, the report returns with violation limit exceeded message. Requires role of ORG_ADMIN. + * @summary Runs SOD policy violation report + * @param {string} id The SOD policy ID to run. + * @param {*} [axiosOptions] Override http request option. + * @deprecated + * @throws {RequiredError} + */ + startSodPolicy: function (id, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.startSodPolicy(id, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + }; + }; + exports.SODPolicyBetaApiFp = SODPolicyBetaApiFp; + /** + * SODPolicyBetaApi - factory interface + * @export + */ + var SODPolicyBetaApiFactory = function (configuration, basePath, axios) { + var localVarFp = (0, exports.SODPolicyBetaApiFp)(configuration); + return { + /** + * This creates both General and Conflicting Access Based policy, with a limit of 50 entitlements for each (left & right) criteria for Conflicting Access Based SOD policy. Requires role of ORG_ADMIN. + * @summary Create SOD policy + * @param {SodPolicyBeta} sodPolicyBeta + * @param {*} [axiosOptions] Override http request option. + * @deprecated + * @throws {RequiredError} + */ + createSodPolicy: function (sodPolicyBeta, axiosOptions) { + return localVarFp.createSodPolicy(sodPolicyBeta, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This deletes a specified SOD policy. Requires role of ORG_ADMIN. + * @summary Delete SOD policy by ID + * @param {string} id The ID of the SOD Policy to delete. + * @param {boolean} [logical] Indicates whether this is a soft delete (logical true) or a hard delete. + * @param {*} [axiosOptions] Override http request option. + * @deprecated + * @throws {RequiredError} + */ + deleteSodPolicy: function (id, logical, axiosOptions) { + return localVarFp.deleteSodPolicy(id, logical, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This deletes schedule for a specified SOD policy. Requires role of ORG_ADMIN. + * @summary Delete SOD policy schedule + * @param {string} id The ID of the SOD policy the schedule must be deleted for. + * @param {*} [axiosOptions] Override http request option. + * @deprecated + * @throws {RequiredError} + */ + deleteSodPolicySchedule: function (id, axiosOptions) { + return localVarFp.deleteSodPolicySchedule(id, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This allows to download a specified named violation report for a given report reference. Requires role of ORG_ADMIN. + * @summary Download custom violation report + * @param {string} reportResultId The ID of the report reference to download. + * @param {string} fileName Custom Name for the file. + * @param {*} [axiosOptions] Override http request option. + * @deprecated + * @throws {RequiredError} + */ + getCustomViolationReport: function (reportResultId, fileName, axiosOptions) { + return localVarFp.getCustomViolationReport(reportResultId, fileName, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This allows to download a violation report for a given report reference. Requires role of ORG_ADMIN. + * @summary Download violation report + * @param {string} reportResultId The ID of the report reference to download. + * @param {*} [axiosOptions] Override http request option. + * @deprecated + * @throws {RequiredError} + */ + getDefaultViolationReport: function (reportResultId, axiosOptions) { + return localVarFp.getDefaultViolationReport(reportResultId, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This endpoint gets the status for a violation report for all policy run. Requires role of ORG_ADMIN. + * @summary Get multi-report run task status + * @param {*} [axiosOptions] Override http request option. + * @deprecated + * @throws {RequiredError} + */ + getSodAllReportRunStatus: function (axiosOptions) { + return localVarFp.getSodAllReportRunStatus(axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This gets specified SOD policy. Requires role of ORG_ADMIN. + * @summary Get SOD policy by ID + * @param {string} id The ID of the object reference to retrieve. + * @param {*} [axiosOptions] Override http request option. + * @deprecated + * @throws {RequiredError} + */ + getSodPolicy: function (id, axiosOptions) { + return localVarFp.getSodPolicy(id, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This endpoint gets a specified SOD policy\'s schedule. Requires the role of ORG_ADMIN. + * @summary Get SOD policy schedule + * @param {string} id The ID of the object reference to retrieve. + * @param {*} [axiosOptions] Override http request option. + * @deprecated + * @throws {RequiredError} + */ + getSodPolicySchedule: function (id, axiosOptions) { + return localVarFp.getSodPolicySchedule(id, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This gets the status for a violation report run task that has already been invoked. Requires role of ORG_ADMIN. + * @summary Get violation report run status + * @param {string} reportResultId The ID of the report reference to retrieve. + * @param {*} [axiosOptions] Override http request option. + * @deprecated + * @throws {RequiredError} + */ + getSodViolationReportRunStatus: function (reportResultId, axiosOptions) { + return localVarFp.getSodViolationReportRunStatus(reportResultId, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This gets the status for a violation report run task that has already been invoked. Requires role of ORG_ADMIN. + * @summary Get SOD violation report status + * @param {string} id The ID of the object reference to retrieve. + * @param {*} [axiosOptions] Override http request option. + * @deprecated + * @throws {RequiredError} + */ + getSodViolationReportStatus: function (id, axiosOptions) { + return localVarFp.getSodViolationReportStatus(id, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This gets list of all SOD policies. Requires role of ORG_ADMIN + * @summary List SOD policies + * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **id**: *eq* **name**: *eq* **state**: *eq* + * @param {*} [axiosOptions] Override http request option. + * @deprecated + * @throws {RequiredError} + */ + listSodPolicies: function (limit, offset, count, filters, axiosOptions) { + return localVarFp.listSodPolicies(limit, offset, count, filters, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * Allows updating SOD Policy fields other than [\"id\",\"created\",\"creatorId\",\"policyQuery\",\"type\"] using the [JSON Patch](https://tools.ietf.org/html/rfc6902) standard. Requires role of ORG_ADMIN. This endpoint can only patch CONFLICTING_ACCESS_BASED type policies. Do not use this endpoint to patch general policies - doing so will build an API exception. + * @summary Patch a SOD policy + * @param {string} id The ID of the SOD policy being modified. + * @param {Array} requestBody A list of SOD Policy update operations according to the [JSON Patch](https://tools.ietf.org/html/rfc6902) standard. The following fields are patchable: * name * description * ownerRef * externalPolicyReference * compensatingControls * correctionAdvice * state * tags * violationOwnerAssignmentConfig * scheduled * conflictingAccessCriteria + * @param {*} [axiosOptions] Override http request option. + * @deprecated + * @throws {RequiredError} + */ + patchSodPolicy: function (id, requestBody, axiosOptions) { + return localVarFp.patchSodPolicy(id, requestBody, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This updates schedule for a specified SOD policy. Requires role of ORG_ADMIN. + * @summary Update SOD Policy schedule + * @param {string} id The ID of the SOD policy to update its schedule. + * @param {SodPolicyScheduleBeta} sodPolicyScheduleBeta + * @param {*} [axiosOptions] Override http request option. + * @deprecated + * @throws {RequiredError} + */ + putPolicySchedule: function (id, sodPolicyScheduleBeta, axiosOptions) { + return localVarFp.putPolicySchedule(id, sodPolicyScheduleBeta, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This updates a specified SOD policy. Requires role of ORG_ADMIN. + * @summary Update SOD policy by ID + * @param {string} id The ID of the SOD policy to update. + * @param {SodPolicyBeta} sodPolicyBeta + * @param {*} [axiosOptions] Override http request option. + * @deprecated + * @throws {RequiredError} + */ + putSodPolicy: function (id, sodPolicyBeta, axiosOptions) { + return localVarFp.putSodPolicy(id, sodPolicyBeta, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * Runs multi-policy report for the org. If a policy reports more than 5000 violations, the report mentions that the violation limit was exceeded for that policy. If the request is empty, the report runs for all policies. Otherwise, the report runs for only the filtered policy list provided. Requires role of ORG_ADMIN. + * @summary Runs all policies for org + * @param {MultiPolicyRequestBeta} [multiPolicyRequestBeta] + * @param {*} [axiosOptions] Override http request option. + * @deprecated + * @throws {RequiredError} + */ + startSodAllPoliciesForOrg: function (multiPolicyRequestBeta, axiosOptions) { + return localVarFp.startSodAllPoliciesForOrg(multiPolicyRequestBeta, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This invokes processing of violation report for given SOD policy. If the policy reports more than 5000 violations, the report returns with violation limit exceeded message. Requires role of ORG_ADMIN. + * @summary Runs SOD policy violation report + * @param {string} id The SOD policy ID to run. + * @param {*} [axiosOptions] Override http request option. + * @deprecated + * @throws {RequiredError} + */ + startSodPolicy: function (id, axiosOptions) { + return localVarFp.startSodPolicy(id, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + }; + }; + exports.SODPolicyBetaApiFactory = SODPolicyBetaApiFactory; + /** + * SODPolicyBetaApi - object-oriented interface + * @export + * @class SODPolicyBetaApi + * @extends {BaseAPI} + */ + var SODPolicyBetaApi = /** @class */ (function (_super) { + __extends(SODPolicyBetaApi, _super); + function SODPolicyBetaApi() { + return _super !== null && _super.apply(this, arguments) || this; + } + /** + * This creates both General and Conflicting Access Based policy, with a limit of 50 entitlements for each (left & right) criteria for Conflicting Access Based SOD policy. Requires role of ORG_ADMIN. + * @summary Create SOD policy + * @param {SODPolicyBetaApiCreateSodPolicyRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @deprecated + * @throws {RequiredError} + * @memberof SODPolicyBetaApi + */ + SODPolicyBetaApi.prototype.createSodPolicy = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.SODPolicyBetaApiFp)(this.configuration).createSodPolicy(requestParameters.sodPolicyBeta, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This deletes a specified SOD policy. Requires role of ORG_ADMIN. + * @summary Delete SOD policy by ID + * @param {SODPolicyBetaApiDeleteSodPolicyRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @deprecated + * @throws {RequiredError} + * @memberof SODPolicyBetaApi + */ + SODPolicyBetaApi.prototype.deleteSodPolicy = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.SODPolicyBetaApiFp)(this.configuration).deleteSodPolicy(requestParameters.id, requestParameters.logical, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This deletes schedule for a specified SOD policy. Requires role of ORG_ADMIN. + * @summary Delete SOD policy schedule + * @param {SODPolicyBetaApiDeleteSodPolicyScheduleRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @deprecated + * @throws {RequiredError} + * @memberof SODPolicyBetaApi + */ + SODPolicyBetaApi.prototype.deleteSodPolicySchedule = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.SODPolicyBetaApiFp)(this.configuration).deleteSodPolicySchedule(requestParameters.id, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This allows to download a specified named violation report for a given report reference. Requires role of ORG_ADMIN. + * @summary Download custom violation report + * @param {SODPolicyBetaApiGetCustomViolationReportRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @deprecated + * @throws {RequiredError} + * @memberof SODPolicyBetaApi + */ + SODPolicyBetaApi.prototype.getCustomViolationReport = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.SODPolicyBetaApiFp)(this.configuration).getCustomViolationReport(requestParameters.reportResultId, requestParameters.fileName, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This allows to download a violation report for a given report reference. Requires role of ORG_ADMIN. + * @summary Download violation report + * @param {SODPolicyBetaApiGetDefaultViolationReportRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @deprecated + * @throws {RequiredError} + * @memberof SODPolicyBetaApi + */ + SODPolicyBetaApi.prototype.getDefaultViolationReport = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.SODPolicyBetaApiFp)(this.configuration).getDefaultViolationReport(requestParameters.reportResultId, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This endpoint gets the status for a violation report for all policy run. Requires role of ORG_ADMIN. + * @summary Get multi-report run task status + * @param {*} [axiosOptions] Override http request option. + * @deprecated + * @throws {RequiredError} + * @memberof SODPolicyBetaApi + */ + SODPolicyBetaApi.prototype.getSodAllReportRunStatus = function (axiosOptions) { + var _this = this; + return (0, exports.SODPolicyBetaApiFp)(this.configuration).getSodAllReportRunStatus(axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This gets specified SOD policy. Requires role of ORG_ADMIN. + * @summary Get SOD policy by ID + * @param {SODPolicyBetaApiGetSodPolicyRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @deprecated + * @throws {RequiredError} + * @memberof SODPolicyBetaApi + */ + SODPolicyBetaApi.prototype.getSodPolicy = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.SODPolicyBetaApiFp)(this.configuration).getSodPolicy(requestParameters.id, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This endpoint gets a specified SOD policy\'s schedule. Requires the role of ORG_ADMIN. + * @summary Get SOD policy schedule + * @param {SODPolicyBetaApiGetSodPolicyScheduleRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @deprecated + * @throws {RequiredError} + * @memberof SODPolicyBetaApi + */ + SODPolicyBetaApi.prototype.getSodPolicySchedule = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.SODPolicyBetaApiFp)(this.configuration).getSodPolicySchedule(requestParameters.id, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This gets the status for a violation report run task that has already been invoked. Requires role of ORG_ADMIN. + * @summary Get violation report run status + * @param {SODPolicyBetaApiGetSodViolationReportRunStatusRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @deprecated + * @throws {RequiredError} + * @memberof SODPolicyBetaApi + */ + SODPolicyBetaApi.prototype.getSodViolationReportRunStatus = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.SODPolicyBetaApiFp)(this.configuration).getSodViolationReportRunStatus(requestParameters.reportResultId, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This gets the status for a violation report run task that has already been invoked. Requires role of ORG_ADMIN. + * @summary Get SOD violation report status + * @param {SODPolicyBetaApiGetSodViolationReportStatusRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @deprecated + * @throws {RequiredError} + * @memberof SODPolicyBetaApi + */ + SODPolicyBetaApi.prototype.getSodViolationReportStatus = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.SODPolicyBetaApiFp)(this.configuration).getSodViolationReportStatus(requestParameters.id, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This gets list of all SOD policies. Requires role of ORG_ADMIN + * @summary List SOD policies + * @param {SODPolicyBetaApiListSodPoliciesRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @deprecated + * @throws {RequiredError} + * @memberof SODPolicyBetaApi + */ + SODPolicyBetaApi.prototype.listSodPolicies = function (requestParameters, axiosOptions) { + var _this = this; + if (requestParameters === void 0) { requestParameters = {}; } + return (0, exports.SODPolicyBetaApiFp)(this.configuration).listSodPolicies(requestParameters.limit, requestParameters.offset, requestParameters.count, requestParameters.filters, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * Allows updating SOD Policy fields other than [\"id\",\"created\",\"creatorId\",\"policyQuery\",\"type\"] using the [JSON Patch](https://tools.ietf.org/html/rfc6902) standard. Requires role of ORG_ADMIN. This endpoint can only patch CONFLICTING_ACCESS_BASED type policies. Do not use this endpoint to patch general policies - doing so will build an API exception. + * @summary Patch a SOD policy + * @param {SODPolicyBetaApiPatchSodPolicyRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @deprecated + * @throws {RequiredError} + * @memberof SODPolicyBetaApi + */ + SODPolicyBetaApi.prototype.patchSodPolicy = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.SODPolicyBetaApiFp)(this.configuration).patchSodPolicy(requestParameters.id, requestParameters.requestBody, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This updates schedule for a specified SOD policy. Requires role of ORG_ADMIN. + * @summary Update SOD Policy schedule + * @param {SODPolicyBetaApiPutPolicyScheduleRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @deprecated + * @throws {RequiredError} + * @memberof SODPolicyBetaApi + */ + SODPolicyBetaApi.prototype.putPolicySchedule = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.SODPolicyBetaApiFp)(this.configuration).putPolicySchedule(requestParameters.id, requestParameters.sodPolicyScheduleBeta, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This updates a specified SOD policy. Requires role of ORG_ADMIN. + * @summary Update SOD policy by ID + * @param {SODPolicyBetaApiPutSodPolicyRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @deprecated + * @throws {RequiredError} + * @memberof SODPolicyBetaApi + */ + SODPolicyBetaApi.prototype.putSodPolicy = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.SODPolicyBetaApiFp)(this.configuration).putSodPolicy(requestParameters.id, requestParameters.sodPolicyBeta, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * Runs multi-policy report for the org. If a policy reports more than 5000 violations, the report mentions that the violation limit was exceeded for that policy. If the request is empty, the report runs for all policies. Otherwise, the report runs for only the filtered policy list provided. Requires role of ORG_ADMIN. + * @summary Runs all policies for org + * @param {SODPolicyBetaApiStartSodAllPoliciesForOrgRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @deprecated + * @throws {RequiredError} + * @memberof SODPolicyBetaApi + */ + SODPolicyBetaApi.prototype.startSodAllPoliciesForOrg = function (requestParameters, axiosOptions) { + var _this = this; + if (requestParameters === void 0) { requestParameters = {}; } + return (0, exports.SODPolicyBetaApiFp)(this.configuration).startSodAllPoliciesForOrg(requestParameters.multiPolicyRequestBeta, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This invokes processing of violation report for given SOD policy. If the policy reports more than 5000 violations, the report returns with violation limit exceeded message. Requires role of ORG_ADMIN. + * @summary Runs SOD policy violation report + * @param {SODPolicyBetaApiStartSodPolicyRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @deprecated + * @throws {RequiredError} + * @memberof SODPolicyBetaApi + */ + SODPolicyBetaApi.prototype.startSodPolicy = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.SODPolicyBetaApiFp)(this.configuration).startSodPolicy(requestParameters.id, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + return SODPolicyBetaApi; + }(base_1.BaseAPI)); + exports.SODPolicyBetaApi = SODPolicyBetaApi; + /** + * SODViolationsBetaApi - axios parameter creator + * @export + */ + var SODViolationsBetaApiAxiosParamCreator = function (configuration) { + var _this = this; + return { + /** + * This API is used to check if granting some additional accesses would cause the subject to be in violation of any SOD policies. Returns the violations that would be caused. A token with ORG_ADMIN or API authority is required to call this API. + * @summary Predict SOD violations for identity. + * @param {IdentityWithNewAccessBeta} identityWithNewAccessBeta + * @param {*} [axiosOptions] Override http request option. + * @deprecated + * @throws {RequiredError} + */ + startPredictSodViolations: function (identityWithNewAccessBeta, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'identityWithNewAccessBeta' is not null or undefined + (0, common_1.assertParamExists)('startPredictSodViolations', 'identityWithNewAccessBeta', identityWithNewAccessBeta); + localVarPath = "/sod-violations/predict"; + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + localVarHeaderParameter['Content-Type'] = 'application/json'; + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(identityWithNewAccessBeta, localVarRequestOptions, configuration); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + }; + }; + exports.SODViolationsBetaApiAxiosParamCreator = SODViolationsBetaApiAxiosParamCreator; + /** + * SODViolationsBetaApi - functional programming interface + * @export + */ + var SODViolationsBetaApiFp = function (configuration) { + var localVarAxiosParamCreator = (0, exports.SODViolationsBetaApiAxiosParamCreator)(configuration); + return { + /** + * This API is used to check if granting some additional accesses would cause the subject to be in violation of any SOD policies. Returns the violations that would be caused. A token with ORG_ADMIN or API authority is required to call this API. + * @summary Predict SOD violations for identity. + * @param {IdentityWithNewAccessBeta} identityWithNewAccessBeta + * @param {*} [axiosOptions] Override http request option. + * @deprecated + * @throws {RequiredError} + */ + startPredictSodViolations: function (identityWithNewAccessBeta, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.startPredictSodViolations(identityWithNewAccessBeta, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + }; + }; + exports.SODViolationsBetaApiFp = SODViolationsBetaApiFp; + /** + * SODViolationsBetaApi - factory interface + * @export + */ + var SODViolationsBetaApiFactory = function (configuration, basePath, axios) { + var localVarFp = (0, exports.SODViolationsBetaApiFp)(configuration); + return { + /** + * This API is used to check if granting some additional accesses would cause the subject to be in violation of any SOD policies. Returns the violations that would be caused. A token with ORG_ADMIN or API authority is required to call this API. + * @summary Predict SOD violations for identity. + * @param {IdentityWithNewAccessBeta} identityWithNewAccessBeta + * @param {*} [axiosOptions] Override http request option. + * @deprecated + * @throws {RequiredError} + */ + startPredictSodViolations: function (identityWithNewAccessBeta, axiosOptions) { + return localVarFp.startPredictSodViolations(identityWithNewAccessBeta, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + }; + }; + exports.SODViolationsBetaApiFactory = SODViolationsBetaApiFactory; + /** + * SODViolationsBetaApi - object-oriented interface + * @export + * @class SODViolationsBetaApi + * @extends {BaseAPI} + */ + var SODViolationsBetaApi = /** @class */ (function (_super) { + __extends(SODViolationsBetaApi, _super); + function SODViolationsBetaApi() { + return _super !== null && _super.apply(this, arguments) || this; + } + /** + * This API is used to check if granting some additional accesses would cause the subject to be in violation of any SOD policies. Returns the violations that would be caused. A token with ORG_ADMIN or API authority is required to call this API. + * @summary Predict SOD violations for identity. + * @param {SODViolationsBetaApiStartPredictSodViolationsRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @deprecated + * @throws {RequiredError} + * @memberof SODViolationsBetaApi + */ + SODViolationsBetaApi.prototype.startPredictSodViolations = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.SODViolationsBetaApiFp)(this.configuration).startPredictSodViolations(requestParameters.identityWithNewAccessBeta, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + return SODViolationsBetaApi; + }(base_1.BaseAPI)); + exports.SODViolationsBetaApi = SODViolationsBetaApi; + /** + * SPConfigBetaApi - axios parameter creator + * @export + */ + var SPConfigBetaApiAxiosParamCreator = function (configuration) { + var _this = this; + return { + /** + * This post will export objects from the tenant to a JSON configuration file. For more information about the object types that currently support export functionality, refer to [SaaS Configuration](https://developer.sailpoint.com/idn/docs/saas-configuration/#supported-objects). + * @summary Initiates configuration objects export job + * @param {ExportPayloadBeta} exportPayloadBeta Export options control what will be included in the export. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + exportSpConfig: function (exportPayloadBeta, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'exportPayloadBeta' is not null or undefined + (0, common_1.assertParamExists)('exportSpConfig', 'exportPayloadBeta', exportPayloadBeta); + localVarPath = "/sp-config/export"; + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + localVarHeaderParameter['Content-Type'] = 'application/json'; + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(exportPayloadBeta, localVarRequestOptions, configuration); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This endpoint gets the export file resulting from the export job with the requested `id` and downloads it to a file. The request will need one of the following security scopes: - sp:config:read - sp:config:manage + * @summary Download export job result. + * @param {string} id The ID of the export job whose results will be downloaded. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getSpConfigExport: function (id, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'id' is not null or undefined + (0, common_1.assertParamExists)('getSpConfigExport', 'id', id); + localVarPath = "/sp-config/export/{id}/download" + .replace("{".concat("id", "}"), encodeURIComponent(String(id))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This gets the status of the export job identified by the `id` parameter. The request will need one of the following security scopes: - sp:config:read - sp:config:manage + * @summary Get export job status + * @param {string} id The ID of the export job whose status will be returned. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getSpConfigExportStatus: function (id, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'id' is not null or undefined + (0, common_1.assertParamExists)('getSpConfigExportStatus', 'id', id); + localVarPath = "/sp-config/export/{id}" + .replace("{".concat("id", "}"), encodeURIComponent(String(id))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This gets import file resulting from the import job with the requested id and downloads it to a file. The downloaded file will contain the results of the import operation, including any error, warning or informational messages associated with the import. The request will need the following security scope: - sp:config:manage + * @summary Download import job result + * @param {string} id The ID of the import job whose results will be downloaded. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getSpConfigImport: function (id, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'id' is not null or undefined + (0, common_1.assertParamExists)('getSpConfigImport', 'id', id); + localVarPath = "/sp-config/import/{id}/download" + .replace("{".concat("id", "}"), encodeURIComponent(String(id))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This gets the status of the import job identified by the `id` parameter. For more information about the object types that currently support import functionality, refer to [SaaS Configuration](https://developer.sailpoint.com/idn/docs/saas-configuration/#supported-objects). The request will need the following security scope: - sp:config:manage + * @summary Get import job status + * @param {string} id The ID of the import job whose status will be returned. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getSpConfigImportStatus: function (id, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'id' is not null or undefined + (0, common_1.assertParamExists)('getSpConfigImportStatus', 'id', id); + localVarPath = "/sp-config/import/{id}" + .replace("{".concat("id", "}"), encodeURIComponent(String(id))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This post will import objects from a JSON configuration file into a tenant. By default, every import will first export all existing objects supported by sp-config as a backup before the import is attempted. The backup is provided so that the state of the configuration prior to the import is available for inspection or restore if needed. The backup can be skipped by setting \"excludeBackup\" to true in the import options. If a backup is performed, the id of the backup will be provided in the ImportResult as the \"exportJobId\". This can be downloaded using the /sp-config/export/{exportJobId}/download endpoint. You cannot currently import from the Non-Employee Lifecycle Management (NELM) source. You cannot use this endpoint to back up or store NELM data. For more information about the object types that currently support import functionality, refer to [SaaS Configuration](https://developer.sailpoint.com/idn/docs/saas-configuration/#supported-objects). The request will need the following security scope: - sp:config:manage + * @summary Initiates configuration objects import job + * @param {any} data JSON file containing the objects to be imported. + * @param {boolean} [preview] This option is intended to give the user information about how an import operation would proceed, without having any effect on the target tenant. If this parameter is \"true\", no objects will be imported. Instead, the import process will pre-process the import file and attempt to resolve references within imported objects. The import result file will contain messages pertaining to how specific references were resolved, any errors associated with the preprocessing, and messages indicating which objects would be imported. + * @param {ImportOptionsBeta} [options] + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + importSpConfig: function (data, preview, options, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, localVarFormParams, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'data' is not null or undefined + (0, common_1.assertParamExists)('importSpConfig', 'data', data); + localVarPath = "/sp-config/import"; + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + localVarFormParams = new ((configuration && configuration.formDataCtor) || FormData)(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + if (preview !== undefined) { + localVarQueryParameter['preview'] = preview; + } + if (data !== undefined) { + localVarFormParams.append('data', data); + } + if (options !== undefined) { + localVarFormParams.append('options', new Blob([JSON.stringify(options)], { type: "application/json", })); + } + localVarHeaderParameter['Content-Type'] = 'multipart/form-data'; + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + localVarRequestOptions.data = localVarFormParams; + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This gets the list of object configurations which are known to the tenant export/import service. Object configurations that contain \"importUrl\" and \"exportUrl\" are available for export/import. + * @summary Get config object details + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + listSpConfigObjects: function (axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + localVarPath = "/sp-config/config-objects"; + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + }; + }; + exports.SPConfigBetaApiAxiosParamCreator = SPConfigBetaApiAxiosParamCreator; + /** + * SPConfigBetaApi - functional programming interface + * @export + */ + var SPConfigBetaApiFp = function (configuration) { + var localVarAxiosParamCreator = (0, exports.SPConfigBetaApiAxiosParamCreator)(configuration); + return { + /** + * This post will export objects from the tenant to a JSON configuration file. For more information about the object types that currently support export functionality, refer to [SaaS Configuration](https://developer.sailpoint.com/idn/docs/saas-configuration/#supported-objects). + * @summary Initiates configuration objects export job + * @param {ExportPayloadBeta} exportPayloadBeta Export options control what will be included in the export. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + exportSpConfig: function (exportPayloadBeta, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.exportSpConfig(exportPayloadBeta, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This endpoint gets the export file resulting from the export job with the requested `id` and downloads it to a file. The request will need one of the following security scopes: - sp:config:read - sp:config:manage + * @summary Download export job result. + * @param {string} id The ID of the export job whose results will be downloaded. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getSpConfigExport: function (id, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.getSpConfigExport(id, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This gets the status of the export job identified by the `id` parameter. The request will need one of the following security scopes: - sp:config:read - sp:config:manage + * @summary Get export job status + * @param {string} id The ID of the export job whose status will be returned. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getSpConfigExportStatus: function (id, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.getSpConfigExportStatus(id, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This gets import file resulting from the import job with the requested id and downloads it to a file. The downloaded file will contain the results of the import operation, including any error, warning or informational messages associated with the import. The request will need the following security scope: - sp:config:manage + * @summary Download import job result + * @param {string} id The ID of the import job whose results will be downloaded. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getSpConfigImport: function (id, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.getSpConfigImport(id, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This gets the status of the import job identified by the `id` parameter. For more information about the object types that currently support import functionality, refer to [SaaS Configuration](https://developer.sailpoint.com/idn/docs/saas-configuration/#supported-objects). The request will need the following security scope: - sp:config:manage + * @summary Get import job status + * @param {string} id The ID of the import job whose status will be returned. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getSpConfigImportStatus: function (id, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.getSpConfigImportStatus(id, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This post will import objects from a JSON configuration file into a tenant. By default, every import will first export all existing objects supported by sp-config as a backup before the import is attempted. The backup is provided so that the state of the configuration prior to the import is available for inspection or restore if needed. The backup can be skipped by setting \"excludeBackup\" to true in the import options. If a backup is performed, the id of the backup will be provided in the ImportResult as the \"exportJobId\". This can be downloaded using the /sp-config/export/{exportJobId}/download endpoint. You cannot currently import from the Non-Employee Lifecycle Management (NELM) source. You cannot use this endpoint to back up or store NELM data. For more information about the object types that currently support import functionality, refer to [SaaS Configuration](https://developer.sailpoint.com/idn/docs/saas-configuration/#supported-objects). The request will need the following security scope: - sp:config:manage + * @summary Initiates configuration objects import job + * @param {any} data JSON file containing the objects to be imported. + * @param {boolean} [preview] This option is intended to give the user information about how an import operation would proceed, without having any effect on the target tenant. If this parameter is \"true\", no objects will be imported. Instead, the import process will pre-process the import file and attempt to resolve references within imported objects. The import result file will contain messages pertaining to how specific references were resolved, any errors associated with the preprocessing, and messages indicating which objects would be imported. + * @param {ImportOptionsBeta} [options] + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + importSpConfig: function (data, preview, options, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.importSpConfig(data, preview, options, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This gets the list of object configurations which are known to the tenant export/import service. Object configurations that contain \"importUrl\" and \"exportUrl\" are available for export/import. + * @summary Get config object details + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + listSpConfigObjects: function (axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.listSpConfigObjects(axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + }; + }; + exports.SPConfigBetaApiFp = SPConfigBetaApiFp; + /** + * SPConfigBetaApi - factory interface + * @export + */ + var SPConfigBetaApiFactory = function (configuration, basePath, axios) { + var localVarFp = (0, exports.SPConfigBetaApiFp)(configuration); + return { + /** + * This post will export objects from the tenant to a JSON configuration file. For more information about the object types that currently support export functionality, refer to [SaaS Configuration](https://developer.sailpoint.com/idn/docs/saas-configuration/#supported-objects). + * @summary Initiates configuration objects export job + * @param {ExportPayloadBeta} exportPayloadBeta Export options control what will be included in the export. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + exportSpConfig: function (exportPayloadBeta, axiosOptions) { + return localVarFp.exportSpConfig(exportPayloadBeta, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This endpoint gets the export file resulting from the export job with the requested `id` and downloads it to a file. The request will need one of the following security scopes: - sp:config:read - sp:config:manage + * @summary Download export job result. + * @param {string} id The ID of the export job whose results will be downloaded. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getSpConfigExport: function (id, axiosOptions) { + return localVarFp.getSpConfigExport(id, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This gets the status of the export job identified by the `id` parameter. The request will need one of the following security scopes: - sp:config:read - sp:config:manage + * @summary Get export job status + * @param {string} id The ID of the export job whose status will be returned. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getSpConfigExportStatus: function (id, axiosOptions) { + return localVarFp.getSpConfigExportStatus(id, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This gets import file resulting from the import job with the requested id and downloads it to a file. The downloaded file will contain the results of the import operation, including any error, warning or informational messages associated with the import. The request will need the following security scope: - sp:config:manage + * @summary Download import job result + * @param {string} id The ID of the import job whose results will be downloaded. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getSpConfigImport: function (id, axiosOptions) { + return localVarFp.getSpConfigImport(id, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This gets the status of the import job identified by the `id` parameter. For more information about the object types that currently support import functionality, refer to [SaaS Configuration](https://developer.sailpoint.com/idn/docs/saas-configuration/#supported-objects). The request will need the following security scope: - sp:config:manage + * @summary Get import job status + * @param {string} id The ID of the import job whose status will be returned. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getSpConfigImportStatus: function (id, axiosOptions) { + return localVarFp.getSpConfigImportStatus(id, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This post will import objects from a JSON configuration file into a tenant. By default, every import will first export all existing objects supported by sp-config as a backup before the import is attempted. The backup is provided so that the state of the configuration prior to the import is available for inspection or restore if needed. The backup can be skipped by setting \"excludeBackup\" to true in the import options. If a backup is performed, the id of the backup will be provided in the ImportResult as the \"exportJobId\". This can be downloaded using the /sp-config/export/{exportJobId}/download endpoint. You cannot currently import from the Non-Employee Lifecycle Management (NELM) source. You cannot use this endpoint to back up or store NELM data. For more information about the object types that currently support import functionality, refer to [SaaS Configuration](https://developer.sailpoint.com/idn/docs/saas-configuration/#supported-objects). The request will need the following security scope: - sp:config:manage + * @summary Initiates configuration objects import job + * @param {any} data JSON file containing the objects to be imported. + * @param {boolean} [preview] This option is intended to give the user information about how an import operation would proceed, without having any effect on the target tenant. If this parameter is \"true\", no objects will be imported. Instead, the import process will pre-process the import file and attempt to resolve references within imported objects. The import result file will contain messages pertaining to how specific references were resolved, any errors associated with the preprocessing, and messages indicating which objects would be imported. + * @param {ImportOptionsBeta} [options] + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + importSpConfig: function (data, preview, options, axiosOptions) { + return localVarFp.importSpConfig(data, preview, options, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This gets the list of object configurations which are known to the tenant export/import service. Object configurations that contain \"importUrl\" and \"exportUrl\" are available for export/import. + * @summary Get config object details + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + listSpConfigObjects: function (axiosOptions) { + return localVarFp.listSpConfigObjects(axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + }; + }; + exports.SPConfigBetaApiFactory = SPConfigBetaApiFactory; + /** + * SPConfigBetaApi - object-oriented interface + * @export + * @class SPConfigBetaApi + * @extends {BaseAPI} + */ + var SPConfigBetaApi = /** @class */ (function (_super) { + __extends(SPConfigBetaApi, _super); + function SPConfigBetaApi() { + return _super !== null && _super.apply(this, arguments) || this; + } + /** + * This post will export objects from the tenant to a JSON configuration file. For more information about the object types that currently support export functionality, refer to [SaaS Configuration](https://developer.sailpoint.com/idn/docs/saas-configuration/#supported-objects). + * @summary Initiates configuration objects export job + * @param {SPConfigBetaApiExportSpConfigRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof SPConfigBetaApi + */ + SPConfigBetaApi.prototype.exportSpConfig = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.SPConfigBetaApiFp)(this.configuration).exportSpConfig(requestParameters.exportPayloadBeta, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This endpoint gets the export file resulting from the export job with the requested `id` and downloads it to a file. The request will need one of the following security scopes: - sp:config:read - sp:config:manage + * @summary Download export job result. + * @param {SPConfigBetaApiGetSpConfigExportRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof SPConfigBetaApi + */ + SPConfigBetaApi.prototype.getSpConfigExport = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.SPConfigBetaApiFp)(this.configuration).getSpConfigExport(requestParameters.id, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This gets the status of the export job identified by the `id` parameter. The request will need one of the following security scopes: - sp:config:read - sp:config:manage + * @summary Get export job status + * @param {SPConfigBetaApiGetSpConfigExportStatusRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof SPConfigBetaApi + */ + SPConfigBetaApi.prototype.getSpConfigExportStatus = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.SPConfigBetaApiFp)(this.configuration).getSpConfigExportStatus(requestParameters.id, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This gets import file resulting from the import job with the requested id and downloads it to a file. The downloaded file will contain the results of the import operation, including any error, warning or informational messages associated with the import. The request will need the following security scope: - sp:config:manage + * @summary Download import job result + * @param {SPConfigBetaApiGetSpConfigImportRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof SPConfigBetaApi + */ + SPConfigBetaApi.prototype.getSpConfigImport = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.SPConfigBetaApiFp)(this.configuration).getSpConfigImport(requestParameters.id, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This gets the status of the import job identified by the `id` parameter. For more information about the object types that currently support import functionality, refer to [SaaS Configuration](https://developer.sailpoint.com/idn/docs/saas-configuration/#supported-objects). The request will need the following security scope: - sp:config:manage + * @summary Get import job status + * @param {SPConfigBetaApiGetSpConfigImportStatusRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof SPConfigBetaApi + */ + SPConfigBetaApi.prototype.getSpConfigImportStatus = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.SPConfigBetaApiFp)(this.configuration).getSpConfigImportStatus(requestParameters.id, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This post will import objects from a JSON configuration file into a tenant. By default, every import will first export all existing objects supported by sp-config as a backup before the import is attempted. The backup is provided so that the state of the configuration prior to the import is available for inspection or restore if needed. The backup can be skipped by setting \"excludeBackup\" to true in the import options. If a backup is performed, the id of the backup will be provided in the ImportResult as the \"exportJobId\". This can be downloaded using the /sp-config/export/{exportJobId}/download endpoint. You cannot currently import from the Non-Employee Lifecycle Management (NELM) source. You cannot use this endpoint to back up or store NELM data. For more information about the object types that currently support import functionality, refer to [SaaS Configuration](https://developer.sailpoint.com/idn/docs/saas-configuration/#supported-objects). The request will need the following security scope: - sp:config:manage + * @summary Initiates configuration objects import job + * @param {SPConfigBetaApiImportSpConfigRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof SPConfigBetaApi + */ + SPConfigBetaApi.prototype.importSpConfig = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.SPConfigBetaApiFp)(this.configuration).importSpConfig(requestParameters.data, requestParameters.preview, requestParameters.options, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This gets the list of object configurations which are known to the tenant export/import service. Object configurations that contain \"importUrl\" and \"exportUrl\" are available for export/import. + * @summary Get config object details + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof SPConfigBetaApi + */ + SPConfigBetaApi.prototype.listSpConfigObjects = function (axiosOptions) { + var _this = this; + return (0, exports.SPConfigBetaApiFp)(this.configuration).listSpConfigObjects(axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + return SPConfigBetaApi; + }(base_1.BaseAPI)); + exports.SPConfigBetaApi = SPConfigBetaApi; + /** + * SearchAttributeConfigurationBetaApi - axios parameter creator + * @export + */ + var SearchAttributeConfigurationBetaApiAxiosParamCreator = function (configuration) { + var _this = this; + return { + /** + * This API accepts an attribute name, an attribute display name and a list of name/value pair associates of application IDs to attribute names. It will then validate the inputs and configure/create and attribute promotion configuration in the Link ObjectConfig. A token with ORG_ADMIN authority is required to call this API. + * @summary Configure/create extended search attributes in IdentityNow. + * @param {SearchAttributeConfigBeta} searchAttributeConfigBeta + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + createSearchAttributeConfig: function (searchAttributeConfigBeta, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'searchAttributeConfigBeta' is not null or undefined + (0, common_1.assertParamExists)('createSearchAttributeConfig', 'searchAttributeConfigBeta', searchAttributeConfigBeta); + localVarPath = "/accounts/search-attribute-config"; + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + localVarHeaderParameter['Content-Type'] = 'application/json'; + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(searchAttributeConfigBeta, localVarRequestOptions, configuration); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This API accepts an extended attribute name and deletes the corresponding extended attribute configuration. A token with ORG_ADMIN authority is required to call this API. + * @summary Delete an extended search attribute in IdentityNow. + * @param {string} name Name of the extended search attribute configuration to delete. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + deleteSearchAttributeConfig: function (name, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'name' is not null or undefined + (0, common_1.assertParamExists)('deleteSearchAttributeConfig', 'name', name); + localVarPath = "/accounts/search-attribute-config/{name}" + .replace("{".concat("name", "}"), encodeURIComponent(String(name))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'DELETE' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This API retrieves a list of attribute/application associates currently configured in IdentityNow. A token with ORG_ADMIN authority is required to call this API. + * @summary Retrieve a list of extended search attributes in IdentityNow. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getSearchAttributeConfig: function (axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + localVarPath = "/accounts/search-attribute-config"; + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This API accepts an extended attribute name and retrieves the corresponding extended attribute configuration. A token with ORG_ADMIN authority is required to call this API. + * @summary Get the details of a specific extended search attribute in IdentityNow. + * @param {string} name Name of the extended search attribute configuration to delete. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getSingleSearchAttributeConfig: function (name, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'name' is not null or undefined + (0, common_1.assertParamExists)('getSingleSearchAttributeConfig', 'name', name); + localVarPath = "/accounts/search-attribute-config/{name}" + .replace("{".concat("name", "}"), encodeURIComponent(String(name))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This API updates an existing Search Attribute Configuration. The following fields are patchable: **name**, **displayName**, **applicationAttributes** A token with ORG_ADMIN authority is required to call this API. + * @summary Update the details of a specific extended search attribute in IdentityNow. + * @param {string} name Name of the Search Attribute Configuration to patch. + * @param {Array} jsonPatchOperationBeta + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + patchSearchAttributeConfig: function (name, jsonPatchOperationBeta, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'name' is not null or undefined + (0, common_1.assertParamExists)('patchSearchAttributeConfig', 'name', name); + // verify required parameter 'jsonPatchOperationBeta' is not null or undefined + (0, common_1.assertParamExists)('patchSearchAttributeConfig', 'jsonPatchOperationBeta', jsonPatchOperationBeta); + localVarPath = "/accounts/search-attribute-config/{name}" + .replace("{".concat("name", "}"), encodeURIComponent(String(name))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'PATCH' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + localVarHeaderParameter['Content-Type'] = 'application/json-patch+json'; + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(jsonPatchOperationBeta, localVarRequestOptions, configuration); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + }; + }; + exports.SearchAttributeConfigurationBetaApiAxiosParamCreator = SearchAttributeConfigurationBetaApiAxiosParamCreator; + /** + * SearchAttributeConfigurationBetaApi - functional programming interface + * @export + */ + var SearchAttributeConfigurationBetaApiFp = function (configuration) { + var localVarAxiosParamCreator = (0, exports.SearchAttributeConfigurationBetaApiAxiosParamCreator)(configuration); + return { + /** + * This API accepts an attribute name, an attribute display name and a list of name/value pair associates of application IDs to attribute names. It will then validate the inputs and configure/create and attribute promotion configuration in the Link ObjectConfig. A token with ORG_ADMIN authority is required to call this API. + * @summary Configure/create extended search attributes in IdentityNow. + * @param {SearchAttributeConfigBeta} searchAttributeConfigBeta + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + createSearchAttributeConfig: function (searchAttributeConfigBeta, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.createSearchAttributeConfig(searchAttributeConfigBeta, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This API accepts an extended attribute name and deletes the corresponding extended attribute configuration. A token with ORG_ADMIN authority is required to call this API. + * @summary Delete an extended search attribute in IdentityNow. + * @param {string} name Name of the extended search attribute configuration to delete. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + deleteSearchAttributeConfig: function (name, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.deleteSearchAttributeConfig(name, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This API retrieves a list of attribute/application associates currently configured in IdentityNow. A token with ORG_ADMIN authority is required to call this API. + * @summary Retrieve a list of extended search attributes in IdentityNow. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getSearchAttributeConfig: function (axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.getSearchAttributeConfig(axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This API accepts an extended attribute name and retrieves the corresponding extended attribute configuration. A token with ORG_ADMIN authority is required to call this API. + * @summary Get the details of a specific extended search attribute in IdentityNow. + * @param {string} name Name of the extended search attribute configuration to delete. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getSingleSearchAttributeConfig: function (name, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.getSingleSearchAttributeConfig(name, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This API updates an existing Search Attribute Configuration. The following fields are patchable: **name**, **displayName**, **applicationAttributes** A token with ORG_ADMIN authority is required to call this API. + * @summary Update the details of a specific extended search attribute in IdentityNow. + * @param {string} name Name of the Search Attribute Configuration to patch. + * @param {Array} jsonPatchOperationBeta + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + patchSearchAttributeConfig: function (name, jsonPatchOperationBeta, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.patchSearchAttributeConfig(name, jsonPatchOperationBeta, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + }; + }; + exports.SearchAttributeConfigurationBetaApiFp = SearchAttributeConfigurationBetaApiFp; + /** + * SearchAttributeConfigurationBetaApi - factory interface + * @export + */ + var SearchAttributeConfigurationBetaApiFactory = function (configuration, basePath, axios) { + var localVarFp = (0, exports.SearchAttributeConfigurationBetaApiFp)(configuration); + return { + /** + * This API accepts an attribute name, an attribute display name and a list of name/value pair associates of application IDs to attribute names. It will then validate the inputs and configure/create and attribute promotion configuration in the Link ObjectConfig. A token with ORG_ADMIN authority is required to call this API. + * @summary Configure/create extended search attributes in IdentityNow. + * @param {SearchAttributeConfigBeta} searchAttributeConfigBeta + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + createSearchAttributeConfig: function (searchAttributeConfigBeta, axiosOptions) { + return localVarFp.createSearchAttributeConfig(searchAttributeConfigBeta, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This API accepts an extended attribute name and deletes the corresponding extended attribute configuration. A token with ORG_ADMIN authority is required to call this API. + * @summary Delete an extended search attribute in IdentityNow. + * @param {string} name Name of the extended search attribute configuration to delete. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + deleteSearchAttributeConfig: function (name, axiosOptions) { + return localVarFp.deleteSearchAttributeConfig(name, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This API retrieves a list of attribute/application associates currently configured in IdentityNow. A token with ORG_ADMIN authority is required to call this API. + * @summary Retrieve a list of extended search attributes in IdentityNow. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getSearchAttributeConfig: function (axiosOptions) { + return localVarFp.getSearchAttributeConfig(axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This API accepts an extended attribute name and retrieves the corresponding extended attribute configuration. A token with ORG_ADMIN authority is required to call this API. + * @summary Get the details of a specific extended search attribute in IdentityNow. + * @param {string} name Name of the extended search attribute configuration to delete. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getSingleSearchAttributeConfig: function (name, axiosOptions) { + return localVarFp.getSingleSearchAttributeConfig(name, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This API updates an existing Search Attribute Configuration. The following fields are patchable: **name**, **displayName**, **applicationAttributes** A token with ORG_ADMIN authority is required to call this API. + * @summary Update the details of a specific extended search attribute in IdentityNow. + * @param {string} name Name of the Search Attribute Configuration to patch. + * @param {Array} jsonPatchOperationBeta + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + patchSearchAttributeConfig: function (name, jsonPatchOperationBeta, axiosOptions) { + return localVarFp.patchSearchAttributeConfig(name, jsonPatchOperationBeta, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + }; + }; + exports.SearchAttributeConfigurationBetaApiFactory = SearchAttributeConfigurationBetaApiFactory; + /** + * SearchAttributeConfigurationBetaApi - object-oriented interface + * @export + * @class SearchAttributeConfigurationBetaApi + * @extends {BaseAPI} + */ + var SearchAttributeConfigurationBetaApi = /** @class */ (function (_super) { + __extends(SearchAttributeConfigurationBetaApi, _super); + function SearchAttributeConfigurationBetaApi() { + return _super !== null && _super.apply(this, arguments) || this; + } + /** + * This API accepts an attribute name, an attribute display name and a list of name/value pair associates of application IDs to attribute names. It will then validate the inputs and configure/create and attribute promotion configuration in the Link ObjectConfig. A token with ORG_ADMIN authority is required to call this API. + * @summary Configure/create extended search attributes in IdentityNow. + * @param {SearchAttributeConfigurationBetaApiCreateSearchAttributeConfigRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof SearchAttributeConfigurationBetaApi + */ + SearchAttributeConfigurationBetaApi.prototype.createSearchAttributeConfig = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.SearchAttributeConfigurationBetaApiFp)(this.configuration).createSearchAttributeConfig(requestParameters.searchAttributeConfigBeta, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This API accepts an extended attribute name and deletes the corresponding extended attribute configuration. A token with ORG_ADMIN authority is required to call this API. + * @summary Delete an extended search attribute in IdentityNow. + * @param {SearchAttributeConfigurationBetaApiDeleteSearchAttributeConfigRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof SearchAttributeConfigurationBetaApi + */ + SearchAttributeConfigurationBetaApi.prototype.deleteSearchAttributeConfig = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.SearchAttributeConfigurationBetaApiFp)(this.configuration).deleteSearchAttributeConfig(requestParameters.name, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This API retrieves a list of attribute/application associates currently configured in IdentityNow. A token with ORG_ADMIN authority is required to call this API. + * @summary Retrieve a list of extended search attributes in IdentityNow. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof SearchAttributeConfigurationBetaApi + */ + SearchAttributeConfigurationBetaApi.prototype.getSearchAttributeConfig = function (axiosOptions) { + var _this = this; + return (0, exports.SearchAttributeConfigurationBetaApiFp)(this.configuration).getSearchAttributeConfig(axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This API accepts an extended attribute name and retrieves the corresponding extended attribute configuration. A token with ORG_ADMIN authority is required to call this API. + * @summary Get the details of a specific extended search attribute in IdentityNow. + * @param {SearchAttributeConfigurationBetaApiGetSingleSearchAttributeConfigRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof SearchAttributeConfigurationBetaApi + */ + SearchAttributeConfigurationBetaApi.prototype.getSingleSearchAttributeConfig = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.SearchAttributeConfigurationBetaApiFp)(this.configuration).getSingleSearchAttributeConfig(requestParameters.name, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This API updates an existing Search Attribute Configuration. The following fields are patchable: **name**, **displayName**, **applicationAttributes** A token with ORG_ADMIN authority is required to call this API. + * @summary Update the details of a specific extended search attribute in IdentityNow. + * @param {SearchAttributeConfigurationBetaApiPatchSearchAttributeConfigRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof SearchAttributeConfigurationBetaApi + */ + SearchAttributeConfigurationBetaApi.prototype.patchSearchAttributeConfig = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.SearchAttributeConfigurationBetaApiFp)(this.configuration).patchSearchAttributeConfig(requestParameters.name, requestParameters.jsonPatchOperationBeta, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + return SearchAttributeConfigurationBetaApi; + }(base_1.BaseAPI)); + exports.SearchAttributeConfigurationBetaApi = SearchAttributeConfigurationBetaApi; + /** + * SegmentsBetaApi - axios parameter creator + * @export + */ + var SegmentsBetaApiAxiosParamCreator = function (configuration) { + var _this = this; + return { + /** + * This API creates a segment. >**Note:** Segment definitions may take time to propagate to all identities. A token with ORG_ADMIN or API authority is required to call this API. + * @summary Create Segment + * @param {SegmentBeta} segmentBeta + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + createSegment: function (segmentBeta, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'segmentBeta' is not null or undefined + (0, common_1.assertParamExists)('createSegment', 'segmentBeta', segmentBeta); + localVarPath = "/segments"; + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + localVarHeaderParameter['Content-Type'] = 'application/json'; + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(segmentBeta, localVarRequestOptions, configuration); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This API deletes the segment specified by the given ID. >**Note:** Segment deletion may take some time to go into effect. A token with ORG_ADMIN or API authority is required to call this API. + * @summary Delete Segment by ID + * @param {string} id The segment ID to delete. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + deleteSegment: function (id, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'id' is not null or undefined + (0, common_1.assertParamExists)('deleteSegment', 'id', id); + localVarPath = "/segments/{id}" + .replace("{".concat("id", "}"), encodeURIComponent(String(id))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'DELETE' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This API returns the segment specified by the given ID. A token with ORG_ADMIN or API authority is required to call this API. + * @summary Get Segment by ID + * @param {string} id The segment ID to retrieve. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getSegment: function (id, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'id' is not null or undefined + (0, common_1.assertParamExists)('getSegment', 'id', id); + localVarPath = "/segments/{id}" + .replace("{".concat("id", "}"), encodeURIComponent(String(id))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This API returns a list of all segments. A token with ORG_ADMIN or API authority is required to call this API. + * @summary List Segments + * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + listSegments: function (limit, offset, count, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + localVarPath = "/segments"; + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + if (limit !== undefined) { + localVarQueryParameter['limit'] = limit; + } + if (offset !== undefined) { + localVarQueryParameter['offset'] = offset; + } + if (count !== undefined) { + localVarQueryParameter['count'] = count; + } + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * Use this API to update segment fields by using the [JSON Patch](https://tools.ietf.org/html/rfc6902) standard. >**Note:** Changes to a segment may take some time to propagate to all identities. A token with ORG_ADMIN or API authority is required to call this API. + * @summary Update Segment + * @param {string} id The segment ID to modify. + * @param {Array} requestBody A list of segment update operations according to the [JSON Patch](https://tools.ietf.org/html/rfc6902) standard. The following fields are patchable: * name * description * owner * visibilityCriteria * active + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + patchSegment: function (id, requestBody, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'id' is not null or undefined + (0, common_1.assertParamExists)('patchSegment', 'id', id); + // verify required parameter 'requestBody' is not null or undefined + (0, common_1.assertParamExists)('patchSegment', 'requestBody', requestBody); + localVarPath = "/segments/{id}" + .replace("{".concat("id", "}"), encodeURIComponent(String(id))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'PATCH' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + localVarHeaderParameter['Content-Type'] = 'application/json-patch+json'; + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(requestBody, localVarRequestOptions, configuration); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + }; + }; + exports.SegmentsBetaApiAxiosParamCreator = SegmentsBetaApiAxiosParamCreator; + /** + * SegmentsBetaApi - functional programming interface + * @export + */ + var SegmentsBetaApiFp = function (configuration) { + var localVarAxiosParamCreator = (0, exports.SegmentsBetaApiAxiosParamCreator)(configuration); + return { + /** + * This API creates a segment. >**Note:** Segment definitions may take time to propagate to all identities. A token with ORG_ADMIN or API authority is required to call this API. + * @summary Create Segment + * @param {SegmentBeta} segmentBeta + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + createSegment: function (segmentBeta, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.createSegment(segmentBeta, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This API deletes the segment specified by the given ID. >**Note:** Segment deletion may take some time to go into effect. A token with ORG_ADMIN or API authority is required to call this API. + * @summary Delete Segment by ID + * @param {string} id The segment ID to delete. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + deleteSegment: function (id, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.deleteSegment(id, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This API returns the segment specified by the given ID. A token with ORG_ADMIN or API authority is required to call this API. + * @summary Get Segment by ID + * @param {string} id The segment ID to retrieve. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getSegment: function (id, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.getSegment(id, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This API returns a list of all segments. A token with ORG_ADMIN or API authority is required to call this API. + * @summary List Segments + * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + listSegments: function (limit, offset, count, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.listSegments(limit, offset, count, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * Use this API to update segment fields by using the [JSON Patch](https://tools.ietf.org/html/rfc6902) standard. >**Note:** Changes to a segment may take some time to propagate to all identities. A token with ORG_ADMIN or API authority is required to call this API. + * @summary Update Segment + * @param {string} id The segment ID to modify. + * @param {Array} requestBody A list of segment update operations according to the [JSON Patch](https://tools.ietf.org/html/rfc6902) standard. The following fields are patchable: * name * description * owner * visibilityCriteria * active + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + patchSegment: function (id, requestBody, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.patchSegment(id, requestBody, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + }; + }; + exports.SegmentsBetaApiFp = SegmentsBetaApiFp; + /** + * SegmentsBetaApi - factory interface + * @export + */ + var SegmentsBetaApiFactory = function (configuration, basePath, axios) { + var localVarFp = (0, exports.SegmentsBetaApiFp)(configuration); + return { + /** + * This API creates a segment. >**Note:** Segment definitions may take time to propagate to all identities. A token with ORG_ADMIN or API authority is required to call this API. + * @summary Create Segment + * @param {SegmentBeta} segmentBeta + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + createSegment: function (segmentBeta, axiosOptions) { + return localVarFp.createSegment(segmentBeta, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This API deletes the segment specified by the given ID. >**Note:** Segment deletion may take some time to go into effect. A token with ORG_ADMIN or API authority is required to call this API. + * @summary Delete Segment by ID + * @param {string} id The segment ID to delete. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + deleteSegment: function (id, axiosOptions) { + return localVarFp.deleteSegment(id, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This API returns the segment specified by the given ID. A token with ORG_ADMIN or API authority is required to call this API. + * @summary Get Segment by ID + * @param {string} id The segment ID to retrieve. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getSegment: function (id, axiosOptions) { + return localVarFp.getSegment(id, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This API returns a list of all segments. A token with ORG_ADMIN or API authority is required to call this API. + * @summary List Segments + * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + listSegments: function (limit, offset, count, axiosOptions) { + return localVarFp.listSegments(limit, offset, count, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * Use this API to update segment fields by using the [JSON Patch](https://tools.ietf.org/html/rfc6902) standard. >**Note:** Changes to a segment may take some time to propagate to all identities. A token with ORG_ADMIN or API authority is required to call this API. + * @summary Update Segment + * @param {string} id The segment ID to modify. + * @param {Array} requestBody A list of segment update operations according to the [JSON Patch](https://tools.ietf.org/html/rfc6902) standard. The following fields are patchable: * name * description * owner * visibilityCriteria * active + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + patchSegment: function (id, requestBody, axiosOptions) { + return localVarFp.patchSegment(id, requestBody, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + }; + }; + exports.SegmentsBetaApiFactory = SegmentsBetaApiFactory; + /** + * SegmentsBetaApi - object-oriented interface + * @export + * @class SegmentsBetaApi + * @extends {BaseAPI} + */ + var SegmentsBetaApi = /** @class */ (function (_super) { + __extends(SegmentsBetaApi, _super); + function SegmentsBetaApi() { + return _super !== null && _super.apply(this, arguments) || this; + } + /** + * This API creates a segment. >**Note:** Segment definitions may take time to propagate to all identities. A token with ORG_ADMIN or API authority is required to call this API. + * @summary Create Segment + * @param {SegmentsBetaApiCreateSegmentRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof SegmentsBetaApi + */ + SegmentsBetaApi.prototype.createSegment = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.SegmentsBetaApiFp)(this.configuration).createSegment(requestParameters.segmentBeta, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This API deletes the segment specified by the given ID. >**Note:** Segment deletion may take some time to go into effect. A token with ORG_ADMIN or API authority is required to call this API. + * @summary Delete Segment by ID + * @param {SegmentsBetaApiDeleteSegmentRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof SegmentsBetaApi + */ + SegmentsBetaApi.prototype.deleteSegment = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.SegmentsBetaApiFp)(this.configuration).deleteSegment(requestParameters.id, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This API returns the segment specified by the given ID. A token with ORG_ADMIN or API authority is required to call this API. + * @summary Get Segment by ID + * @param {SegmentsBetaApiGetSegmentRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof SegmentsBetaApi + */ + SegmentsBetaApi.prototype.getSegment = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.SegmentsBetaApiFp)(this.configuration).getSegment(requestParameters.id, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This API returns a list of all segments. A token with ORG_ADMIN or API authority is required to call this API. + * @summary List Segments + * @param {SegmentsBetaApiListSegmentsRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof SegmentsBetaApi + */ + SegmentsBetaApi.prototype.listSegments = function (requestParameters, axiosOptions) { + var _this = this; + if (requestParameters === void 0) { requestParameters = {}; } + return (0, exports.SegmentsBetaApiFp)(this.configuration).listSegments(requestParameters.limit, requestParameters.offset, requestParameters.count, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * Use this API to update segment fields by using the [JSON Patch](https://tools.ietf.org/html/rfc6902) standard. >**Note:** Changes to a segment may take some time to propagate to all identities. A token with ORG_ADMIN or API authority is required to call this API. + * @summary Update Segment + * @param {SegmentsBetaApiPatchSegmentRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof SegmentsBetaApi + */ + SegmentsBetaApi.prototype.patchSegment = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.SegmentsBetaApiFp)(this.configuration).patchSegment(requestParameters.id, requestParameters.requestBody, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + return SegmentsBetaApi; + }(base_1.BaseAPI)); + exports.SegmentsBetaApi = SegmentsBetaApi; + /** + * ServiceDeskIntegrationBetaApi - axios parameter creator + * @export + */ + var ServiceDeskIntegrationBetaApiAxiosParamCreator = function (configuration) { + var _this = this; + return { + /** + * Create a new Service Desk Integrations. A token with Org Admin or Service Desk Admin authority is required to access this endpoint. + * @summary Create new Service Desk integration + * @param {ServiceDeskIntegrationDtoBeta} serviceDeskIntegrationDtoBeta The specifics of a new integration to create + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + createServiceDeskIntegration: function (serviceDeskIntegrationDtoBeta, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'serviceDeskIntegrationDtoBeta' is not null or undefined + (0, common_1.assertParamExists)('createServiceDeskIntegration', 'serviceDeskIntegrationDtoBeta', serviceDeskIntegrationDtoBeta); + localVarPath = "/service-desk-integrations"; + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + localVarHeaderParameter['Content-Type'] = 'application/json'; + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(serviceDeskIntegrationDtoBeta, localVarRequestOptions, configuration); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * Delete an existing Service Desk integration by ID. A token with Org Admin or Service Desk Admin authority is required to access this endpoint. + * @summary Delete a Service Desk integration + * @param {string} id ID of Service Desk integration to delete + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + deleteServiceDeskIntegration: function (id, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'id' is not null or undefined + (0, common_1.assertParamExists)('deleteServiceDeskIntegration', 'id', id); + localVarPath = "/service-desk-integrations/{id}" + .replace("{".concat("id", "}"), encodeURIComponent(String(id))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'DELETE' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * Get an existing Service Desk integration by ID. A token with Org Admin or Service Desk Admin authority is required to access this endpoint. + * @summary Get a Service Desk integration + * @param {string} id ID of the Service Desk integration to get + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getServiceDeskIntegration: function (id, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'id' is not null or undefined + (0, common_1.assertParamExists)('getServiceDeskIntegration', 'id', id); + localVarPath = "/service-desk-integrations/{id}" + .replace("{".concat("id", "}"), encodeURIComponent(String(id))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * Get a list of ServiceDeskIntegrationDto for existing Service Desk Integrations. A token with Org Admin or Service Desk Admin authority is required to access this endpoint. + * @summary List existing Service Desk Integrations + * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **name** + * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **id**: *eq, in* **name**: *eq* **type**: *eq, in* **cluster**: *eq, in* + * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getServiceDeskIntegrationList: function (offset, limit, sorters, filters, count, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + localVarPath = "/service-desk-integrations"; + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + if (offset !== undefined) { + localVarQueryParameter['offset'] = offset; + } + if (limit !== undefined) { + localVarQueryParameter['limit'] = limit; + } + if (sorters !== undefined) { + localVarQueryParameter['sorters'] = sorters; + } + if (filters !== undefined) { + localVarQueryParameter['filters'] = filters; + } + if (count !== undefined) { + localVarQueryParameter['count'] = count; + } + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This API endpoint returns an existing Service Desk integration template by scriptName. A token with Org Admin or Service Desk Admin authority is required to access this endpoint. + * @summary Service Desk integration template by scriptName. + * @param {string} scriptName The scriptName value of the Service Desk integration template to get + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getServiceDeskIntegrationTemplate: function (scriptName, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'scriptName' is not null or undefined + (0, common_1.assertParamExists)('getServiceDeskIntegrationTemplate', 'scriptName', scriptName); + localVarPath = "/service-desk-integrations/templates/{scriptName}" + .replace("{".concat("scriptName", "}"), encodeURIComponent(String(scriptName))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This API endpoint returns the current list of supported Service Desk integration types. A token with Org Admin or Service Desk Admin authority is required to access this endpoint. + * @summary Service Desk Integration Types List. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getServiceDeskIntegrationTypes: function (axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + localVarPath = "/service-desk-integrations/types"; + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * Get the time check configuration of queued SDIM tickets. A token with Org Admin or Service Desk Admin authority is required to access this endpoint. + * @summary Get the time check configuration + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getStatusCheckDetails: function (axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + localVarPath = "/service-desk-integrations/status-check-configuration"; + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * Update an existing ServiceDeskIntegration by ID with a PATCH request. + * @summary Service Desk Integration Update PATCH + * @param {string} id ID of the Service Desk integration to update + * @param {JsonPatchBeta} jsonPatchBeta A list of SDIM update operations according to the [JSON Patch](https://tools.ietf.org/html/rfc6902) standard. PATCH can only be applied to the following fields: * `beforeProvisioningRule` * `description` * `ownerRef` A 403 Forbidden Error indicates that you attempted to PATCH a field that is not allowed. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + patchServiceDeskIntegration: function (id, jsonPatchBeta, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'id' is not null or undefined + (0, common_1.assertParamExists)('patchServiceDeskIntegration', 'id', id); + // verify required parameter 'jsonPatchBeta' is not null or undefined + (0, common_1.assertParamExists)('patchServiceDeskIntegration', 'jsonPatchBeta', jsonPatchBeta); + localVarPath = "/service-desk-integrations/{id}" + .replace("{".concat("id", "}"), encodeURIComponent(String(id))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'PATCH' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + localVarHeaderParameter['Content-Type'] = 'application/json-patch+json'; + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(jsonPatchBeta, localVarRequestOptions, configuration); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * Update an existing Service Desk integration by ID with updated value in JSON form as the request body. A token with Org Admin or Service Desk Admin authority is required to access this endpoint. + * @summary Update a Service Desk integration + * @param {string} id ID of the Service Desk integration to update + * @param {ServiceDeskIntegrationDtoBeta} serviceDeskIntegrationDtoBeta The specifics of the integration to update + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + putServiceDeskIntegration: function (id, serviceDeskIntegrationDtoBeta, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'id' is not null or undefined + (0, common_1.assertParamExists)('putServiceDeskIntegration', 'id', id); + // verify required parameter 'serviceDeskIntegrationDtoBeta' is not null or undefined + (0, common_1.assertParamExists)('putServiceDeskIntegration', 'serviceDeskIntegrationDtoBeta', serviceDeskIntegrationDtoBeta); + localVarPath = "/service-desk-integrations/{id}" + .replace("{".concat("id", "}"), encodeURIComponent(String(id))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'PUT' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + localVarHeaderParameter['Content-Type'] = 'application/json'; + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(serviceDeskIntegrationDtoBeta, localVarRequestOptions, configuration); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * Update the time check configuration of queued SDIM tickets. A token with Org Admin or Service Desk Admin authority is required to access this endpoint. + * @summary Update the time check configuration + * @param {QueuedCheckConfigDetailsBeta} queuedCheckConfigDetailsBeta the modified time check configuration + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + updateStatusCheckDetails: function (queuedCheckConfigDetailsBeta, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'queuedCheckConfigDetailsBeta' is not null or undefined + (0, common_1.assertParamExists)('updateStatusCheckDetails', 'queuedCheckConfigDetailsBeta', queuedCheckConfigDetailsBeta); + localVarPath = "/service-desk-integrations/status-check-configuration"; + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'PUT' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + localVarHeaderParameter['Content-Type'] = 'application/json'; + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(queuedCheckConfigDetailsBeta, localVarRequestOptions, configuration); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + }; + }; + exports.ServiceDeskIntegrationBetaApiAxiosParamCreator = ServiceDeskIntegrationBetaApiAxiosParamCreator; + /** + * ServiceDeskIntegrationBetaApi - functional programming interface + * @export + */ + var ServiceDeskIntegrationBetaApiFp = function (configuration) { + var localVarAxiosParamCreator = (0, exports.ServiceDeskIntegrationBetaApiAxiosParamCreator)(configuration); + return { + /** + * Create a new Service Desk Integrations. A token with Org Admin or Service Desk Admin authority is required to access this endpoint. + * @summary Create new Service Desk integration + * @param {ServiceDeskIntegrationDtoBeta} serviceDeskIntegrationDtoBeta The specifics of a new integration to create + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + createServiceDeskIntegration: function (serviceDeskIntegrationDtoBeta, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.createServiceDeskIntegration(serviceDeskIntegrationDtoBeta, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * Delete an existing Service Desk integration by ID. A token with Org Admin or Service Desk Admin authority is required to access this endpoint. + * @summary Delete a Service Desk integration + * @param {string} id ID of Service Desk integration to delete + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + deleteServiceDeskIntegration: function (id, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.deleteServiceDeskIntegration(id, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * Get an existing Service Desk integration by ID. A token with Org Admin or Service Desk Admin authority is required to access this endpoint. + * @summary Get a Service Desk integration + * @param {string} id ID of the Service Desk integration to get + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getServiceDeskIntegration: function (id, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.getServiceDeskIntegration(id, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * Get a list of ServiceDeskIntegrationDto for existing Service Desk Integrations. A token with Org Admin or Service Desk Admin authority is required to access this endpoint. + * @summary List existing Service Desk Integrations + * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **name** + * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **id**: *eq, in* **name**: *eq* **type**: *eq, in* **cluster**: *eq, in* + * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getServiceDeskIntegrationList: function (offset, limit, sorters, filters, count, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.getServiceDeskIntegrationList(offset, limit, sorters, filters, count, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This API endpoint returns an existing Service Desk integration template by scriptName. A token with Org Admin or Service Desk Admin authority is required to access this endpoint. + * @summary Service Desk integration template by scriptName. + * @param {string} scriptName The scriptName value of the Service Desk integration template to get + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getServiceDeskIntegrationTemplate: function (scriptName, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.getServiceDeskIntegrationTemplate(scriptName, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This API endpoint returns the current list of supported Service Desk integration types. A token with Org Admin or Service Desk Admin authority is required to access this endpoint. + * @summary Service Desk Integration Types List. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getServiceDeskIntegrationTypes: function (axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.getServiceDeskIntegrationTypes(axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * Get the time check configuration of queued SDIM tickets. A token with Org Admin or Service Desk Admin authority is required to access this endpoint. + * @summary Get the time check configuration + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getStatusCheckDetails: function (axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.getStatusCheckDetails(axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * Update an existing ServiceDeskIntegration by ID with a PATCH request. + * @summary Service Desk Integration Update PATCH + * @param {string} id ID of the Service Desk integration to update + * @param {JsonPatchBeta} jsonPatchBeta A list of SDIM update operations according to the [JSON Patch](https://tools.ietf.org/html/rfc6902) standard. PATCH can only be applied to the following fields: * `beforeProvisioningRule` * `description` * `ownerRef` A 403 Forbidden Error indicates that you attempted to PATCH a field that is not allowed. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + patchServiceDeskIntegration: function (id, jsonPatchBeta, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.patchServiceDeskIntegration(id, jsonPatchBeta, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * Update an existing Service Desk integration by ID with updated value in JSON form as the request body. A token with Org Admin or Service Desk Admin authority is required to access this endpoint. + * @summary Update a Service Desk integration + * @param {string} id ID of the Service Desk integration to update + * @param {ServiceDeskIntegrationDtoBeta} serviceDeskIntegrationDtoBeta The specifics of the integration to update + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + putServiceDeskIntegration: function (id, serviceDeskIntegrationDtoBeta, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.putServiceDeskIntegration(id, serviceDeskIntegrationDtoBeta, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * Update the time check configuration of queued SDIM tickets. A token with Org Admin or Service Desk Admin authority is required to access this endpoint. + * @summary Update the time check configuration + * @param {QueuedCheckConfigDetailsBeta} queuedCheckConfigDetailsBeta the modified time check configuration + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + updateStatusCheckDetails: function (queuedCheckConfigDetailsBeta, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.updateStatusCheckDetails(queuedCheckConfigDetailsBeta, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + }; + }; + exports.ServiceDeskIntegrationBetaApiFp = ServiceDeskIntegrationBetaApiFp; + /** + * ServiceDeskIntegrationBetaApi - factory interface + * @export + */ + var ServiceDeskIntegrationBetaApiFactory = function (configuration, basePath, axios) { + var localVarFp = (0, exports.ServiceDeskIntegrationBetaApiFp)(configuration); + return { + /** + * Create a new Service Desk Integrations. A token with Org Admin or Service Desk Admin authority is required to access this endpoint. + * @summary Create new Service Desk integration + * @param {ServiceDeskIntegrationDtoBeta} serviceDeskIntegrationDtoBeta The specifics of a new integration to create + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + createServiceDeskIntegration: function (serviceDeskIntegrationDtoBeta, axiosOptions) { + return localVarFp.createServiceDeskIntegration(serviceDeskIntegrationDtoBeta, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * Delete an existing Service Desk integration by ID. A token with Org Admin or Service Desk Admin authority is required to access this endpoint. + * @summary Delete a Service Desk integration + * @param {string} id ID of Service Desk integration to delete + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + deleteServiceDeskIntegration: function (id, axiosOptions) { + return localVarFp.deleteServiceDeskIntegration(id, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * Get an existing Service Desk integration by ID. A token with Org Admin or Service Desk Admin authority is required to access this endpoint. + * @summary Get a Service Desk integration + * @param {string} id ID of the Service Desk integration to get + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getServiceDeskIntegration: function (id, axiosOptions) { + return localVarFp.getServiceDeskIntegration(id, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * Get a list of ServiceDeskIntegrationDto for existing Service Desk Integrations. A token with Org Admin or Service Desk Admin authority is required to access this endpoint. + * @summary List existing Service Desk Integrations + * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **name** + * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **id**: *eq, in* **name**: *eq* **type**: *eq, in* **cluster**: *eq, in* + * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getServiceDeskIntegrationList: function (offset, limit, sorters, filters, count, axiosOptions) { + return localVarFp.getServiceDeskIntegrationList(offset, limit, sorters, filters, count, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This API endpoint returns an existing Service Desk integration template by scriptName. A token with Org Admin or Service Desk Admin authority is required to access this endpoint. + * @summary Service Desk integration template by scriptName. + * @param {string} scriptName The scriptName value of the Service Desk integration template to get + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getServiceDeskIntegrationTemplate: function (scriptName, axiosOptions) { + return localVarFp.getServiceDeskIntegrationTemplate(scriptName, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This API endpoint returns the current list of supported Service Desk integration types. A token with Org Admin or Service Desk Admin authority is required to access this endpoint. + * @summary Service Desk Integration Types List. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getServiceDeskIntegrationTypes: function (axiosOptions) { + return localVarFp.getServiceDeskIntegrationTypes(axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * Get the time check configuration of queued SDIM tickets. A token with Org Admin or Service Desk Admin authority is required to access this endpoint. + * @summary Get the time check configuration + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getStatusCheckDetails: function (axiosOptions) { + return localVarFp.getStatusCheckDetails(axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * Update an existing ServiceDeskIntegration by ID with a PATCH request. + * @summary Service Desk Integration Update PATCH + * @param {string} id ID of the Service Desk integration to update + * @param {JsonPatchBeta} jsonPatchBeta A list of SDIM update operations according to the [JSON Patch](https://tools.ietf.org/html/rfc6902) standard. PATCH can only be applied to the following fields: * `beforeProvisioningRule` * `description` * `ownerRef` A 403 Forbidden Error indicates that you attempted to PATCH a field that is not allowed. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + patchServiceDeskIntegration: function (id, jsonPatchBeta, axiosOptions) { + return localVarFp.patchServiceDeskIntegration(id, jsonPatchBeta, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * Update an existing Service Desk integration by ID with updated value in JSON form as the request body. A token with Org Admin or Service Desk Admin authority is required to access this endpoint. + * @summary Update a Service Desk integration + * @param {string} id ID of the Service Desk integration to update + * @param {ServiceDeskIntegrationDtoBeta} serviceDeskIntegrationDtoBeta The specifics of the integration to update + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + putServiceDeskIntegration: function (id, serviceDeskIntegrationDtoBeta, axiosOptions) { + return localVarFp.putServiceDeskIntegration(id, serviceDeskIntegrationDtoBeta, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * Update the time check configuration of queued SDIM tickets. A token with Org Admin or Service Desk Admin authority is required to access this endpoint. + * @summary Update the time check configuration + * @param {QueuedCheckConfigDetailsBeta} queuedCheckConfigDetailsBeta the modified time check configuration + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + updateStatusCheckDetails: function (queuedCheckConfigDetailsBeta, axiosOptions) { + return localVarFp.updateStatusCheckDetails(queuedCheckConfigDetailsBeta, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + }; + }; + exports.ServiceDeskIntegrationBetaApiFactory = ServiceDeskIntegrationBetaApiFactory; + /** + * ServiceDeskIntegrationBetaApi - object-oriented interface + * @export + * @class ServiceDeskIntegrationBetaApi + * @extends {BaseAPI} + */ + var ServiceDeskIntegrationBetaApi = /** @class */ (function (_super) { + __extends(ServiceDeskIntegrationBetaApi, _super); + function ServiceDeskIntegrationBetaApi() { + return _super !== null && _super.apply(this, arguments) || this; + } + /** + * Create a new Service Desk Integrations. A token with Org Admin or Service Desk Admin authority is required to access this endpoint. + * @summary Create new Service Desk integration + * @param {ServiceDeskIntegrationBetaApiCreateServiceDeskIntegrationRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof ServiceDeskIntegrationBetaApi + */ + ServiceDeskIntegrationBetaApi.prototype.createServiceDeskIntegration = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.ServiceDeskIntegrationBetaApiFp)(this.configuration).createServiceDeskIntegration(requestParameters.serviceDeskIntegrationDtoBeta, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * Delete an existing Service Desk integration by ID. A token with Org Admin or Service Desk Admin authority is required to access this endpoint. + * @summary Delete a Service Desk integration + * @param {ServiceDeskIntegrationBetaApiDeleteServiceDeskIntegrationRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof ServiceDeskIntegrationBetaApi + */ + ServiceDeskIntegrationBetaApi.prototype.deleteServiceDeskIntegration = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.ServiceDeskIntegrationBetaApiFp)(this.configuration).deleteServiceDeskIntegration(requestParameters.id, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * Get an existing Service Desk integration by ID. A token with Org Admin or Service Desk Admin authority is required to access this endpoint. + * @summary Get a Service Desk integration + * @param {ServiceDeskIntegrationBetaApiGetServiceDeskIntegrationRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof ServiceDeskIntegrationBetaApi + */ + ServiceDeskIntegrationBetaApi.prototype.getServiceDeskIntegration = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.ServiceDeskIntegrationBetaApiFp)(this.configuration).getServiceDeskIntegration(requestParameters.id, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * Get a list of ServiceDeskIntegrationDto for existing Service Desk Integrations. A token with Org Admin or Service Desk Admin authority is required to access this endpoint. + * @summary List existing Service Desk Integrations + * @param {ServiceDeskIntegrationBetaApiGetServiceDeskIntegrationListRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof ServiceDeskIntegrationBetaApi + */ + ServiceDeskIntegrationBetaApi.prototype.getServiceDeskIntegrationList = function (requestParameters, axiosOptions) { + var _this = this; + if (requestParameters === void 0) { requestParameters = {}; } + return (0, exports.ServiceDeskIntegrationBetaApiFp)(this.configuration).getServiceDeskIntegrationList(requestParameters.offset, requestParameters.limit, requestParameters.sorters, requestParameters.filters, requestParameters.count, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This API endpoint returns an existing Service Desk integration template by scriptName. A token with Org Admin or Service Desk Admin authority is required to access this endpoint. + * @summary Service Desk integration template by scriptName. + * @param {ServiceDeskIntegrationBetaApiGetServiceDeskIntegrationTemplateRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof ServiceDeskIntegrationBetaApi + */ + ServiceDeskIntegrationBetaApi.prototype.getServiceDeskIntegrationTemplate = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.ServiceDeskIntegrationBetaApiFp)(this.configuration).getServiceDeskIntegrationTemplate(requestParameters.scriptName, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This API endpoint returns the current list of supported Service Desk integration types. A token with Org Admin or Service Desk Admin authority is required to access this endpoint. + * @summary Service Desk Integration Types List. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof ServiceDeskIntegrationBetaApi + */ + ServiceDeskIntegrationBetaApi.prototype.getServiceDeskIntegrationTypes = function (axiosOptions) { + var _this = this; + return (0, exports.ServiceDeskIntegrationBetaApiFp)(this.configuration).getServiceDeskIntegrationTypes(axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * Get the time check configuration of queued SDIM tickets. A token with Org Admin or Service Desk Admin authority is required to access this endpoint. + * @summary Get the time check configuration + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof ServiceDeskIntegrationBetaApi + */ + ServiceDeskIntegrationBetaApi.prototype.getStatusCheckDetails = function (axiosOptions) { + var _this = this; + return (0, exports.ServiceDeskIntegrationBetaApiFp)(this.configuration).getStatusCheckDetails(axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * Update an existing ServiceDeskIntegration by ID with a PATCH request. + * @summary Service Desk Integration Update PATCH + * @param {ServiceDeskIntegrationBetaApiPatchServiceDeskIntegrationRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof ServiceDeskIntegrationBetaApi + */ + ServiceDeskIntegrationBetaApi.prototype.patchServiceDeskIntegration = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.ServiceDeskIntegrationBetaApiFp)(this.configuration).patchServiceDeskIntegration(requestParameters.id, requestParameters.jsonPatchBeta, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * Update an existing Service Desk integration by ID with updated value in JSON form as the request body. A token with Org Admin or Service Desk Admin authority is required to access this endpoint. + * @summary Update a Service Desk integration + * @param {ServiceDeskIntegrationBetaApiPutServiceDeskIntegrationRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof ServiceDeskIntegrationBetaApi + */ + ServiceDeskIntegrationBetaApi.prototype.putServiceDeskIntegration = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.ServiceDeskIntegrationBetaApiFp)(this.configuration).putServiceDeskIntegration(requestParameters.id, requestParameters.serviceDeskIntegrationDtoBeta, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * Update the time check configuration of queued SDIM tickets. A token with Org Admin or Service Desk Admin authority is required to access this endpoint. + * @summary Update the time check configuration + * @param {ServiceDeskIntegrationBetaApiUpdateStatusCheckDetailsRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof ServiceDeskIntegrationBetaApi + */ + ServiceDeskIntegrationBetaApi.prototype.updateStatusCheckDetails = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.ServiceDeskIntegrationBetaApiFp)(this.configuration).updateStatusCheckDetails(requestParameters.queuedCheckConfigDetailsBeta, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + return ServiceDeskIntegrationBetaApi; + }(base_1.BaseAPI)); + exports.ServiceDeskIntegrationBetaApi = ServiceDeskIntegrationBetaApi; + /** + * SourceUsagesBetaApi - axios parameter creator + * @export + */ + var SourceUsagesBetaApiAxiosParamCreator = function (configuration) { + var _this = this; + return { + /** + * This API returns the status of the source usage insights setup by IDN source ID. + * @summary Finds status of source usage + * @param {string} sourceId ID of IDN source + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getStatusBySourceId: function (sourceId, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'sourceId' is not null or undefined + (0, common_1.assertParamExists)('getStatusBySourceId', 'sourceId', sourceId); + localVarPath = "/source-usages/{sourceId}/status" + .replace("{".concat("sourceId", "}"), encodeURIComponent(String(sourceId))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This API returns a summary of source usage insights for past 12 months. + * @summary Returns source usage insights + * @param {string} sourceId ID of IDN source + * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **date** + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getUsagesBySourceId: function (sourceId, limit, offset, count, sorters, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'sourceId' is not null or undefined + (0, common_1.assertParamExists)('getUsagesBySourceId', 'sourceId', sourceId); + localVarPath = "/source-usages/{sourceId}/summaries" + .replace("{".concat("sourceId", "}"), encodeURIComponent(String(sourceId))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + if (limit !== undefined) { + localVarQueryParameter['limit'] = limit; + } + if (offset !== undefined) { + localVarQueryParameter['offset'] = offset; + } + if (count !== undefined) { + localVarQueryParameter['count'] = count; + } + if (sorters !== undefined) { + localVarQueryParameter['sorters'] = sorters; + } + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + }; + }; + exports.SourceUsagesBetaApiAxiosParamCreator = SourceUsagesBetaApiAxiosParamCreator; + /** + * SourceUsagesBetaApi - functional programming interface + * @export + */ + var SourceUsagesBetaApiFp = function (configuration) { + var localVarAxiosParamCreator = (0, exports.SourceUsagesBetaApiAxiosParamCreator)(configuration); + return { + /** + * This API returns the status of the source usage insights setup by IDN source ID. + * @summary Finds status of source usage + * @param {string} sourceId ID of IDN source + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getStatusBySourceId: function (sourceId, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.getStatusBySourceId(sourceId, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This API returns a summary of source usage insights for past 12 months. + * @summary Returns source usage insights + * @param {string} sourceId ID of IDN source + * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **date** + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getUsagesBySourceId: function (sourceId, limit, offset, count, sorters, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.getUsagesBySourceId(sourceId, limit, offset, count, sorters, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + }; + }; + exports.SourceUsagesBetaApiFp = SourceUsagesBetaApiFp; + /** + * SourceUsagesBetaApi - factory interface + * @export + */ + var SourceUsagesBetaApiFactory = function (configuration, basePath, axios) { + var localVarFp = (0, exports.SourceUsagesBetaApiFp)(configuration); + return { + /** + * This API returns the status of the source usage insights setup by IDN source ID. + * @summary Finds status of source usage + * @param {string} sourceId ID of IDN source + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getStatusBySourceId: function (sourceId, axiosOptions) { + return localVarFp.getStatusBySourceId(sourceId, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This API returns a summary of source usage insights for past 12 months. + * @summary Returns source usage insights + * @param {string} sourceId ID of IDN source + * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **date** + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getUsagesBySourceId: function (sourceId, limit, offset, count, sorters, axiosOptions) { + return localVarFp.getUsagesBySourceId(sourceId, limit, offset, count, sorters, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + }; + }; + exports.SourceUsagesBetaApiFactory = SourceUsagesBetaApiFactory; + /** + * SourceUsagesBetaApi - object-oriented interface + * @export + * @class SourceUsagesBetaApi + * @extends {BaseAPI} + */ + var SourceUsagesBetaApi = /** @class */ (function (_super) { + __extends(SourceUsagesBetaApi, _super); + function SourceUsagesBetaApi() { + return _super !== null && _super.apply(this, arguments) || this; + } + /** + * This API returns the status of the source usage insights setup by IDN source ID. + * @summary Finds status of source usage + * @param {SourceUsagesBetaApiGetStatusBySourceIdRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof SourceUsagesBetaApi + */ + SourceUsagesBetaApi.prototype.getStatusBySourceId = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.SourceUsagesBetaApiFp)(this.configuration).getStatusBySourceId(requestParameters.sourceId, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This API returns a summary of source usage insights for past 12 months. + * @summary Returns source usage insights + * @param {SourceUsagesBetaApiGetUsagesBySourceIdRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof SourceUsagesBetaApi + */ + SourceUsagesBetaApi.prototype.getUsagesBySourceId = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.SourceUsagesBetaApiFp)(this.configuration).getUsagesBySourceId(requestParameters.sourceId, requestParameters.limit, requestParameters.offset, requestParameters.count, requestParameters.sorters, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + return SourceUsagesBetaApi; + }(base_1.BaseAPI)); + exports.SourceUsagesBetaApi = SourceUsagesBetaApi; + /** + * SourcesBetaApi - axios parameter creator + * @export + */ + var SourcesBetaApiAxiosParamCreator = function (configuration) { + var _this = this; + return { + /** + * This end-point deletes a specific source in IdentityNow. A token with ORG_ADMIN, SOURCE_ADMIN, or SOURCE_SUBADMIN authority is required to call this API. All of accounts on the source will be removed first, then the source will be deleted. Actual status of task execution can be retrieved via method GET `/task-status/{id}` + * @summary Delete Source by ID + * @param {string} id The Source ID + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + _delete: function (id, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'id' is not null or undefined + (0, common_1.assertParamExists)('_delete', 'id', id); + localVarPath = "/sources/{id}" + .replace("{".concat("id", "}"), encodeURIComponent(String(id))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'DELETE' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This API generates a create policy/template based on field value transforms. This API is intended for use when setting up JDBC Provisioning type sources, but it will also work on other source types. Transforms can be used in the provisioning policy to create a new attribute that you only need during provisioning. Refer to [Transforms in Provisioning Policies](https://developer.sailpoint.com/idn/docs/transforms/guides/transforms-in-provisioning-policies) for more information. A token with ORG_ADMIN authority is required to call this API. + * @summary Create Provisioning Policy + * @param {string} sourceId The Source id + * @param {ProvisioningPolicyDtoBeta} provisioningPolicyDtoBeta + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + createProvisioningPolicy: function (sourceId, provisioningPolicyDtoBeta, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'sourceId' is not null or undefined + (0, common_1.assertParamExists)('createProvisioningPolicy', 'sourceId', sourceId); + // verify required parameter 'provisioningPolicyDtoBeta' is not null or undefined + (0, common_1.assertParamExists)('createProvisioningPolicy', 'provisioningPolicyDtoBeta', provisioningPolicyDtoBeta); + localVarPath = "/sources/{sourceId}/provisioning-policies" + .replace("{".concat("sourceId", "}"), encodeURIComponent(String(sourceId))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + localVarHeaderParameter['Content-Type'] = 'application/json'; + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(provisioningPolicyDtoBeta, localVarRequestOptions, configuration); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This creates a specific source with a full source JSON representation. Any passwords are submitted as plain-text and encrypted upon receipt in IdentityNow. A token with ORG_ADMIN, SOURCE_ADMIN, or SOURCE_SUBADMIN authority is required to call this API. + * @summary Creates a source in IdentityNow. + * @param {SourceBeta} sourceBeta + * @param {boolean} [provisionAsCsv] If this parameter is `true`, it configures the source as a Delimited File (CSV) source. Setting this to `true` will automatically set the `type` of the source to `DelimitedFile`. You must use this query parameter to create a Delimited File source as you would in the UI. If you don\'t set this query parameter and you attempt to set the `type` attribute directly, the request won\'t correctly generate the source. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + createSource: function (sourceBeta, provisionAsCsv, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'sourceBeta' is not null or undefined + (0, common_1.assertParamExists)('createSource', 'sourceBeta', sourceBeta); + localVarPath = "/sources"; + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + if (provisionAsCsv !== undefined) { + localVarQueryParameter['provisionAsCsv'] = provisionAsCsv; + } + localVarHeaderParameter['Content-Type'] = 'application/json'; + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(sourceBeta, localVarRequestOptions, configuration); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * + * @summary Creates a new Schema on the specified Source in IdentityNow. + * @param {string} sourceId The Source id. + * @param {SchemaBeta} schemaBeta + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + createSourceSchema: function (sourceId, schemaBeta, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'sourceId' is not null or undefined + (0, common_1.assertParamExists)('createSourceSchema', 'sourceId', sourceId); + // verify required parameter 'schemaBeta' is not null or undefined + (0, common_1.assertParamExists)('createSourceSchema', 'schemaBeta', schemaBeta); + localVarPath = "/sources/{sourceId}/schemas" + .replace("{".concat("sourceId", "}"), encodeURIComponent(String(sourceId))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + localVarHeaderParameter['Content-Type'] = 'application/json'; + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(schemaBeta, localVarRequestOptions, configuration); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * Deletes the native change detection configuration for the source specified by the given ID. A token with API, or ORG_ADMIN authority is required to call this API. + * @summary Delete Native Change Detection Configuration + * @param {string} id The source id + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + deleteNativeChangeDetectionConfig: function (id, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'id' is not null or undefined + (0, common_1.assertParamExists)('deleteNativeChangeDetectionConfig', 'id', id); + localVarPath = "/sources/{sourceId}/native-change-detection-config" + .replace("{".concat("id", "}"), encodeURIComponent(String(id))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'DELETE' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * Deletes the provisioning policy with the specified usage on an application. A token with API, or ORG_ADMIN authority is required to call this API. + * @summary Delete Provisioning Policy by UsageType + * @param {string} sourceId The Source ID. + * @param {UsageTypeBeta} usageType The type of provisioning policy usage. In IdentityNow, a source can support various provisioning operations. For example, when a joiner is added to a source, this may trigger both CREATE and UPDATE provisioning operations. Each usage type is considered a provisioning policy. A source can have any number of these provisioning policies defined. These are the common usage types: CREATE - This usage type relates to \'Create Account Profile\', the provisioning template for the account to be created. For example, this would be used for a joiner on a source. UPDATE - This usage type relates to \'Update Account Profile\', the provisioning template for the \'Update\' connector operations. For example, this would be used for an attribute sync on a source. ENABLE - This usage type relates to \'Enable Account Profile\', the provisioning template for the account to be enabled. For example, this could be used for a joiner on a source once the joiner\'s account is created. DISABLE - This usage type relates to \'Disable Account Profile\', the provisioning template for the account to be disabled. For example, this could be used when a leaver is removed temporarily from a source. You can use these four usage types for all your provisioning policy needs. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + deleteProvisioningPolicy: function (sourceId, usageType, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'sourceId' is not null or undefined + (0, common_1.assertParamExists)('deleteProvisioningPolicy', 'sourceId', sourceId); + // verify required parameter 'usageType' is not null or undefined + (0, common_1.assertParamExists)('deleteProvisioningPolicy', 'usageType', usageType); + localVarPath = "/sources/{sourceId}/provisioning-policies/{usageType}" + .replace("{".concat("sourceId", "}"), encodeURIComponent(String(sourceId))) + .replace("{".concat("usageType", "}"), encodeURIComponent(String(usageType))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'DELETE' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * + * @summary Delete Source Schema by ID + * @param {string} sourceId The Source ID. + * @param {string} schemaId The Schema ID. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + deleteSourceSchema: function (sourceId, schemaId, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'sourceId' is not null or undefined + (0, common_1.assertParamExists)('deleteSourceSchema', 'sourceId', sourceId); + // verify required parameter 'schemaId' is not null or undefined + (0, common_1.assertParamExists)('deleteSourceSchema', 'schemaId', schemaId); + localVarPath = "/sources/{sourceId}/schemas/{schemaId}" + .replace("{".concat("sourceId", "}"), encodeURIComponent(String(sourceId))) + .replace("{".concat("schemaId", "}"), encodeURIComponent(String(schemaId))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'DELETE' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This API returns the existing native change detection configuration for a source specified by the given ID. A token with ORG_ADMIN authority is required to call this API. + * @summary Native Change Detection Configuration + * @param {string} id The source id + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getNativeChangeDetectionConfig: function (id, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'id' is not null or undefined + (0, common_1.assertParamExists)('getNativeChangeDetectionConfig', 'id', id); + localVarPath = "/sources/{sourceId}/native-change-detection-config" + .replace("{".concat("id", "}"), encodeURIComponent(String(id))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This end-point retrieves the ProvisioningPolicy with the specified usage on the specified Source in IdentityNow. A token with API, ORG_ADMIN, SOURCE_ADMIN, or SOURCE_SUBADMIN authority is required to call this API. + * @summary Get Provisioning Policy by UsageType + * @param {string} sourceId The Source ID. + * @param {UsageTypeBeta} usageType The type of provisioning policy usage. In IdentityNow, a source can support various provisioning operations. For example, when a joiner is added to a source, this may trigger both CREATE and UPDATE provisioning operations. Each usage type is considered a provisioning policy. A source can have any number of these provisioning policies defined. These are the common usage types: CREATE - This usage type relates to \'Create Account Profile\', the provisioning template for the account to be created. For example, this would be used for a joiner on a source. UPDATE - This usage type relates to \'Update Account Profile\', the provisioning template for the \'Update\' connector operations. For example, this would be used for an attribute sync on a source. ENABLE - This usage type relates to \'Enable Account Profile\', the provisioning template for the account to be enabled. For example, this could be used for a joiner on a source once the joiner\'s account is created. DISABLE - This usage type relates to \'Disable Account Profile\', the provisioning template for the account to be disabled. For example, this could be used when a leaver is removed temporarily from a source. You can use these four usage types for all your provisioning policy needs. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getProvisioningPolicy: function (sourceId, usageType, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'sourceId' is not null or undefined + (0, common_1.assertParamExists)('getProvisioningPolicy', 'sourceId', sourceId); + // verify required parameter 'usageType' is not null or undefined + (0, common_1.assertParamExists)('getProvisioningPolicy', 'usageType', usageType); + localVarPath = "/sources/{sourceId}/provisioning-policies/{usageType}" + .replace("{".concat("sourceId", "}"), encodeURIComponent(String(sourceId))) + .replace("{".concat("usageType", "}"), encodeURIComponent(String(usageType))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This end-point gets a specific source in IdentityNow. A token with ORG_ADMIN, SOURCE_ADMIN, or SOURCE_SUBADMIN authority is required to call this API. + * @summary Get Source by ID + * @param {string} id The Source ID + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getSource: function (id, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'id' is not null or undefined + (0, common_1.assertParamExists)('getSource', 'id', id); + localVarPath = "/sources/{id}" + .replace("{".concat("id", "}"), encodeURIComponent(String(id))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * + * @summary Downloads source accounts schema template + * @param {string} id The Source id + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getSourceAccountsSchema: function (id, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'id' is not null or undefined + (0, common_1.assertParamExists)('getSourceAccountsSchema', 'id', id); + localVarPath = "/sources/{id}/schemas/accounts" + .replace("{".concat("id", "}"), encodeURIComponent(String(id))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This API returns the existing attribute synchronization configuration for a source specified by the given ID. The response contains all attributes, regardless of whether they enabled or not. A token with ORG_ADMIN authority is required to call this API. + * @summary Attribute Sync Config + * @param {string} id The source id + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getSourceAttrSyncConfig: function (id, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'id' is not null or undefined + (0, common_1.assertParamExists)('getSourceAttrSyncConfig', 'id', id); + localVarPath = "/sources/{id}/attribute-sync-config" + .replace("{".concat("id", "}"), encodeURIComponent(String(id))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * Looks up and returns the source config for the requested source id after populating the source config values and applying language translations. A token with ORG_ADMIN authority is required to call this API. + * @summary Gets source config with language translations + * @param {string} id The Source id + * @param {'de' | 'false' | 'fi' | 'sv' | 'ru' | 'pt' | 'ko' | 'zh-TW' | 'en' | 'it' | 'fr' | 'zh-CN' | 'hu' | 'es' | 'cs' | 'ja' | 'pl' | 'da' | 'nl'} [locale] The locale to apply to the config. If no viable locale is given, it will default to \"en\" + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getSourceConfig: function (id, locale, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'id' is not null or undefined + (0, common_1.assertParamExists)('getSourceConfig', 'id', id); + localVarPath = "/sources/{id}/connectors/source-config" + .replace("{".concat("id", "}"), encodeURIComponent(String(id))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + if (locale !== undefined) { + localVarQueryParameter['locale'] = locale; + } + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This API gets the current entitlement request configuration for a source. This source-level configuration should apply for all the entitlements in the source. Access request to any entitlements in the source should follow this configuration unless a separate entitlement-level configuration is defined. - During access request, this source-level entitlement request configuration overrides the global organization-level configuration. - However, the entitlement-level configuration (if defined) overrides this source-level configuration. A token with ORG_ADMIN, SOURCE_ADMIN, or SOURCE_SUBADMIN authority is required to call this API. + * @summary Get Source Entitlement Request Configuration + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getSourceEntitlementRequestConfig: function (axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + localVarPath = "/sources/{id}/entitlement-request-config"; + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * + * @summary Downloads source entitlements schema template + * @param {string} id The Source id + * @param {string} [schemaName] Name of entitlement schema + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getSourceEntitlementsSchema: function (id, schemaName, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'id' is not null or undefined + (0, common_1.assertParamExists)('getSourceEntitlementsSchema', 'id', id); + localVarPath = "/sources/{id}/schemas/entitlements" + .replace("{".concat("id", "}"), encodeURIComponent(String(id))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + if (schemaName !== undefined) { + localVarQueryParameter['schemaName'] = schemaName; + } + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * Get the Source Schema by ID in IdentityNow. + * @summary Get Source Schema by ID + * @param {string} sourceId The Source ID. + * @param {string} schemaId The Schema ID. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getSourceSchema: function (sourceId, schemaId, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'sourceId' is not null or undefined + (0, common_1.assertParamExists)('getSourceSchema', 'sourceId', sourceId); + // verify required parameter 'schemaId' is not null or undefined + (0, common_1.assertParamExists)('getSourceSchema', 'schemaId', schemaId); + localVarPath = "/sources/{sourceId}/schemas/{schemaId}" + .replace("{".concat("sourceId", "}"), encodeURIComponent(String(sourceId))) + .replace("{".concat("schemaId", "}"), encodeURIComponent(String(schemaId))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This API uploads a source schema template file to configure a source\'s account attributes. + * @summary Uploads source accounts schema template + * @param {string} id The Source id + * @param {any} [file] + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + importSourceAccountsSchema: function (id, file, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, localVarFormParams, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'id' is not null or undefined + (0, common_1.assertParamExists)('importSourceAccountsSchema', 'id', id); + localVarPath = "/sources/{id}/schemas/accounts" + .replace("{".concat("id", "}"), encodeURIComponent(String(id))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + localVarFormParams = new ((configuration && configuration.formDataCtor) || FormData)(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + if (file !== undefined) { + localVarFormParams.append('file', file); + } + localVarHeaderParameter['Content-Type'] = 'multipart/form-data'; + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + localVarRequestOptions.data = localVarFormParams; + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This uploads a supplemental source connector file (like jdbc driver jars) to a source\'s S3 bucket. This also sends ETS and Audit events. A token with ORG_ADMIN authority is required to call this API. + * @summary Upload connector file to source + * @param {string} sourceId The Source id + * @param {any} [file] + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + importSourceConnectorFile: function (sourceId, file, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, localVarFormParams, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'sourceId' is not null or undefined + (0, common_1.assertParamExists)('importSourceConnectorFile', 'sourceId', sourceId); + localVarPath = "/sources/{sourceId}/upload-connector-file" + .replace("{".concat("sourceId", "}"), encodeURIComponent(String(sourceId))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + localVarFormParams = new ((configuration && configuration.formDataCtor) || FormData)(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + if (file !== undefined) { + localVarFormParams.append('file', file); + } + localVarHeaderParameter['Content-Type'] = 'multipart/form-data'; + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + localVarRequestOptions.data = localVarFormParams; + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This API uploads a source schema template file to configure a source\'s entitlement attributes. + * @summary Uploads source entitlements schema template + * @param {string} id The Source id + * @param {string} [schemaName] Name of entitlement schema + * @param {any} [file] + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + importSourceEntitlementsSchema: function (id, schemaName, file, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, localVarFormParams, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'id' is not null or undefined + (0, common_1.assertParamExists)('importSourceEntitlementsSchema', 'id', id); + localVarPath = "/sources/{id}/schemas/entitlements" + .replace("{".concat("id", "}"), encodeURIComponent(String(id))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + localVarFormParams = new ((configuration && configuration.formDataCtor) || FormData)(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + if (schemaName !== undefined) { + localVarQueryParameter['schemaName'] = schemaName; + } + if (file !== undefined) { + localVarFormParams.append('file', file); + } + localVarHeaderParameter['Content-Type'] = 'multipart/form-data'; + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + localVarRequestOptions.data = localVarFormParams; + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This end-point lists all the ProvisioningPolicies in IdentityNow. A token with API, or ORG_ADMIN authority is required to call this API. + * @summary Lists ProvisioningPolicies + * @param {string} sourceId The Source id + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + listProvisioningPolicies: function (sourceId, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'sourceId' is not null or undefined + (0, common_1.assertParamExists)('listProvisioningPolicies', 'sourceId', sourceId); + localVarPath = "/sources/{sourceId}/provisioning-policies" + .replace("{".concat("sourceId", "}"), encodeURIComponent(String(sourceId))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * + * @summary Lists the Schemas that exist on the specified Source in IdentityNow. + * @param {string} sourceId The Source id. + * @param {string} [includeTypes] If set to \'group\', then the account schema is filtered and only group schemas are returned. Only a value of \'group\' is recognized. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + listSourceSchemas: function (sourceId, includeTypes, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'sourceId' is not null or undefined + (0, common_1.assertParamExists)('listSourceSchemas', 'sourceId', sourceId); + localVarPath = "/sources/{sourceId}/schemas" + .replace("{".concat("sourceId", "}"), encodeURIComponent(String(sourceId))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + if (includeTypes !== undefined) { + localVarQueryParameter['include-types'] = includeTypes; + } + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This end-point lists all the sources in IdentityNow. A token with ORG_ADMIN, SOURCE_ADMIN, SOURCE_SUBADMIN, or ROLE_SUBADMIN authority is required to call this API. + * @summary Lists all sources in IdentityNow. + * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **id**: *eq, in, co, ge, gt, le, lt, ne, isnull, sw* **name**: *co, eq, in, sw, ge, gt, ne, isnull* **type**: *eq, in, co, ge, gt, ne, isnull, sw* **owner.id**: *eq, in, co, ge, gt, le, lt, ne, isnull, sw* **features**: *ca, co* **created**: *eq* **modified**: *eq* **managementWorkgroup.id**: *eq, co, ge, gt, in, le, lt, ne, isnull, sw* **description**: *eq, sw* **authoritative**: *eq, ne, isnull* **healthy**: *isnull* **status**: *eq, in, co, ge, gt, le, lt, ne, isnull, sw* **connectionType**: *eq, co, ge, gt, in, le, lt, ne, isnull, sw* **connectorName**: *eq, co, ge, gt, in, ne, isnull, sw* + * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **type, created, modified, name, owner.name, healthy, status, id, description, owner.id, accountCorrelationConfig.id, accountCorrelationConfig.name, managerCorrelationRule.type, managerCorrelationRule.id, managerCorrelationRule.name, authoritative, managementWorkgroup.id, connectorName, connectionType** + * @param {string} [forSubadmin] Filter the returned list of sources for the identity specified by the parameter, which is the id of an identity with the role SOURCE_SUBADMIN. By convention, the value **me** indicates the identity id of the current user. Subadmins may only view Sources which they are able to administer; all other Sources will be filtered out when this parameter is set. If the current user is a SOURCE_SUBADMIN but fails to pass a valid value for this parameter, a 403 Forbidden is returned. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + listSources: function (limit, offset, count, filters, sorters, forSubadmin, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + localVarPath = "/sources"; + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + if (limit !== undefined) { + localVarQueryParameter['limit'] = limit; + } + if (offset !== undefined) { + localVarQueryParameter['offset'] = offset; + } + if (count !== undefined) { + localVarQueryParameter['count'] = count; + } + if (filters !== undefined) { + localVarQueryParameter['filters'] = filters; + } + if (sorters !== undefined) { + localVarQueryParameter['sorters'] = sorters; + } + if (forSubadmin !== undefined) { + localVarQueryParameter['for-subadmin'] = forSubadmin; + } + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * Retrieves a sample of data returned from account and group aggregation requests. A token with ORG_ADMIN authority is required to call this API. + * @summary Peek source connector\'s resource objects + * @param {string} sourceId The ID of the Source + * @param {ResourceObjectsRequestBeta} resourceObjectsRequestBeta + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + peekResourceObjects: function (sourceId, resourceObjectsRequestBeta, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'sourceId' is not null or undefined + (0, common_1.assertParamExists)('peekResourceObjects', 'sourceId', sourceId); + // verify required parameter 'resourceObjectsRequestBeta' is not null or undefined + (0, common_1.assertParamExists)('peekResourceObjects', 'resourceObjectsRequestBeta', resourceObjectsRequestBeta); + localVarPath = "/sources/{sourceId}/connector/peek-resource-objects" + .replace("{".concat("sourceId", "}"), encodeURIComponent(String(sourceId))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + localVarHeaderParameter['Content-Type'] = 'application/json'; + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(resourceObjectsRequestBeta, localVarRequestOptions, configuration); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This endpoint validates that the cluster being used by the source is reachable from IdentityNow. A token with ORG_ADMIN authority is required to call this API. + * @summary Ping cluster for source connector + * @param {string} sourceId The ID of the Source + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + pingCluster: function (sourceId, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'sourceId' is not null or undefined + (0, common_1.assertParamExists)('pingCluster', 'sourceId', sourceId); + localVarPath = "/sources/{sourceId}/connector/ping-cluster" + .replace("{".concat("sourceId", "}"), encodeURIComponent(String(sourceId))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * Replaces the native change detection configuration for the source specified by the given ID with the configuration provided in the request body. A token with ORG_ADMIN authority is required to call this API. + * @summary Update Native Change Detection Configuration + * @param {string} id The source id + * @param {NativeChangeDetectionConfigBeta} nativeChangeDetectionConfigBeta + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + putNativeChangeDetectionConfig: function (id, nativeChangeDetectionConfigBeta, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'id' is not null or undefined + (0, common_1.assertParamExists)('putNativeChangeDetectionConfig', 'id', id); + // verify required parameter 'nativeChangeDetectionConfigBeta' is not null or undefined + (0, common_1.assertParamExists)('putNativeChangeDetectionConfig', 'nativeChangeDetectionConfigBeta', nativeChangeDetectionConfigBeta); + localVarPath = "/sources/{sourceId}/native-change-detection-config" + .replace("{".concat("id", "}"), encodeURIComponent(String(id))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'PUT' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + localVarHeaderParameter['Content-Type'] = 'application/json'; + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(nativeChangeDetectionConfigBeta, localVarRequestOptions, configuration); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This end-point updates the provisioning policy with the specified usage on the specified source in IdentityNow. Transforms can be used in the provisioning policy to create a new attribute that you only need during provisioning. Refer to [Transforms in Provisioning Policies](https://developer.sailpoint.com/idn/docs/transforms/guides/transforms-in-provisioning-policies) for more information. A token with API, ORG_ADMIN, SOURCE_ADMIN, or SOURCE_SUBADMIN authority is required to call this API. + * @summary Update Provisioning Policy by UsageType + * @param {string} sourceId The Source ID. + * @param {UsageTypeBeta} usageType The type of provisioning policy usage. In IdentityNow, a source can support various provisioning operations. For example, when a joiner is added to a source, this may trigger both CREATE and UPDATE provisioning operations. Each usage type is considered a provisioning policy. A source can have any number of these provisioning policies defined. These are the common usage types: CREATE - This usage type relates to \'Create Account Profile\', the provisioning template for the account to be created. For example, this would be used for a joiner on a source. UPDATE - This usage type relates to \'Update Account Profile\', the provisioning template for the \'Update\' connector operations. For example, this would be used for an attribute sync on a source. ENABLE - This usage type relates to \'Enable Account Profile\', the provisioning template for the account to be enabled. For example, this could be used for a joiner on a source once the joiner\'s account is created. DISABLE - This usage type relates to \'Disable Account Profile\', the provisioning template for the account to be disabled. For example, this could be used when a leaver is removed temporarily from a source. You can use these four usage types for all your provisioning policy needs. + * @param {ProvisioningPolicyDtoBeta} provisioningPolicyDtoBeta + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + putProvisioningPolicy: function (sourceId, usageType, provisioningPolicyDtoBeta, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'sourceId' is not null or undefined + (0, common_1.assertParamExists)('putProvisioningPolicy', 'sourceId', sourceId); + // verify required parameter 'usageType' is not null or undefined + (0, common_1.assertParamExists)('putProvisioningPolicy', 'usageType', usageType); + // verify required parameter 'provisioningPolicyDtoBeta' is not null or undefined + (0, common_1.assertParamExists)('putProvisioningPolicy', 'provisioningPolicyDtoBeta', provisioningPolicyDtoBeta); + localVarPath = "/sources/{sourceId}/provisioning-policies/{usageType}" + .replace("{".concat("sourceId", "}"), encodeURIComponent(String(sourceId))) + .replace("{".concat("usageType", "}"), encodeURIComponent(String(usageType))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'PUT' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + localVarHeaderParameter['Content-Type'] = 'application/json'; + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(provisioningPolicyDtoBeta, localVarRequestOptions, configuration); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This API updates a source in IdentityNow, using a full object representation. In other words, the existing Source configuration is completely replaced. Some fields are immutable and cannot be changed, such as: * id * type * authoritative * connector * connectorClass * passwordPolicies Attempts to modify these fields will result in a 400 error. A token with ORG_ADMIN, SOURCE_ADMIN, or SOURCE_SUBADMIN authority is required to call this API. + * @summary Update Source (Full) + * @param {string} id The Source id + * @param {SourceBeta} sourceBeta + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + putSource: function (id, sourceBeta, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'id' is not null or undefined + (0, common_1.assertParamExists)('putSource', 'id', id); + // verify required parameter 'sourceBeta' is not null or undefined + (0, common_1.assertParamExists)('putSource', 'sourceBeta', sourceBeta); + localVarPath = "/sources/{id}" + .replace("{".concat("id", "}"), encodeURIComponent(String(id))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'PUT' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + localVarHeaderParameter['Content-Type'] = 'application/json'; + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(sourceBeta, localVarRequestOptions, configuration); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * Replaces the attribute synchronization configuration for the source specified by the given ID with the configuration provided in the request body. Only the \"enabled\" field of the values in the \"attributes\" array is mutable. Attempting to change other attributes or add new values to the \"attributes\" array will result in an error. A token with ORG_ADMIN authority is required to call this API. + * @summary Update Attribute Sync Config + * @param {string} id The source id + * @param {AttrSyncSourceConfigBeta} attrSyncSourceConfigBeta + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + putSourceAttrSyncConfig: function (id, attrSyncSourceConfigBeta, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'id' is not null or undefined + (0, common_1.assertParamExists)('putSourceAttrSyncConfig', 'id', id); + // verify required parameter 'attrSyncSourceConfigBeta' is not null or undefined + (0, common_1.assertParamExists)('putSourceAttrSyncConfig', 'attrSyncSourceConfigBeta', attrSyncSourceConfigBeta); + localVarPath = "/sources/{id}/attribute-sync-config" + .replace("{".concat("id", "}"), encodeURIComponent(String(id))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'PUT' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + localVarHeaderParameter['Content-Type'] = 'application/json'; + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(attrSyncSourceConfigBeta, localVarRequestOptions, configuration); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This API will completely replace an existing Schema with the submitted payload. Some fields of the Schema cannot be updated. These fields are listed below. * id * name * created * modified Any attempt to modify these fields will result in an error response with a status code of 400. + * @summary Update Source Schema (Full) + * @param {string} sourceId The Source ID. + * @param {string} schemaId The Schema ID. + * @param {SchemaBeta} schemaBeta + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + putSourceSchema: function (sourceId, schemaId, schemaBeta, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'sourceId' is not null or undefined + (0, common_1.assertParamExists)('putSourceSchema', 'sourceId', sourceId); + // verify required parameter 'schemaId' is not null or undefined + (0, common_1.assertParamExists)('putSourceSchema', 'schemaId', schemaId); + // verify required parameter 'schemaBeta' is not null or undefined + (0, common_1.assertParamExists)('putSourceSchema', 'schemaBeta', schemaBeta); + localVarPath = "/sources/{sourceId}/schemas/{schemaId}" + .replace("{".concat("sourceId", "}"), encodeURIComponent(String(sourceId))) + .replace("{".concat("schemaId", "}"), encodeURIComponent(String(schemaId))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'PUT' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + localVarHeaderParameter['Content-Type'] = 'application/json'; + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(schemaBeta, localVarRequestOptions, configuration); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This end-point performs attribute synchronization for a selected source. A token with ORG_ADMIN or SOURCE_ADMIN authority is required to call this API. + * @summary Synchronize single source attributes. + * @param {string} id The Source id + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + syncAttributesForSource: function (id, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'id' is not null or undefined + (0, common_1.assertParamExists)('syncAttributesForSource', 'id', id); + localVarPath = "/sources/{id}/synchronize-attributes" + .replace("{".concat("id", "}"), encodeURIComponent(String(id))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This endpoint performs a more detailed validation of the source\'s configuration that can take longer than the lighter weight credential validation performed by the checkConnection API. A token with ORG_ADMIN authority is required to call this API. + * @summary Test configuration for source connector + * @param {string} sourceId The ID of the Source + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + testSourceConfiguration: function (sourceId, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'sourceId' is not null or undefined + (0, common_1.assertParamExists)('testSourceConfiguration', 'sourceId', sourceId); + localVarPath = "/sources/{sourceId}/connector/test-configuration" + .replace("{".concat("sourceId", "}"), encodeURIComponent(String(sourceId))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This endpoint validates that the configured credentials are valid and will properly authenticate with the source identified by the sourceId path parameter. A token with ORG_ADMIN authority is required to call this API. + * @summary Check connection for source connector. + * @param {string} sourceId The ID of the Source. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + testSourceConnection: function (sourceId, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'sourceId' is not null or undefined + (0, common_1.assertParamExists)('testSourceConnection', 'sourceId', sourceId); + localVarPath = "/sources/{sourceId}/connector/check-connection" + .replace("{".concat("sourceId", "}"), encodeURIComponent(String(sourceId))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This end-point updates a list of provisioning policies on the specified source in IdentityNow. A token with API, or ORG_ADMIN authority is required to call this API. + * @summary Bulk Update Provisioning Policies + * @param {string} sourceId The Source id. + * @param {Array} provisioningPolicyDtoBeta + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + updateProvisioningPoliciesInBulk: function (sourceId, provisioningPolicyDtoBeta, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'sourceId' is not null or undefined + (0, common_1.assertParamExists)('updateProvisioningPoliciesInBulk', 'sourceId', sourceId); + // verify required parameter 'provisioningPolicyDtoBeta' is not null or undefined + (0, common_1.assertParamExists)('updateProvisioningPoliciesInBulk', 'provisioningPolicyDtoBeta', provisioningPolicyDtoBeta); + localVarPath = "/sources/{sourceId}/provisioning-policies/bulk-update" + .replace("{".concat("sourceId", "}"), encodeURIComponent(String(sourceId))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + localVarHeaderParameter['Content-Type'] = 'application/json'; + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(provisioningPolicyDtoBeta, localVarRequestOptions, configuration); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This API selectively updates an existing Provisioning Policy using a JSONPatch payload. Transforms can be used in the provisioning policy to create a new attribute that you only need during provisioning. Refer to [Transforms in Provisioning Policies](https://developer.sailpoint.com/idn/docs/transforms/guides/transforms-in-provisioning-policies) for more information. A token with API, ORG_ADMIN, SOURCE_ADMIN, or SOURCE_SUBADMIN authority is required to call this API. + * @summary Partial update of Provisioning Policy + * @param {string} sourceId The Source id. + * @param {UsageTypeBeta} usageType The type of provisioning policy usage. In IdentityNow, a source can support various provisioning operations. For example, when a joiner is added to a source, this may trigger both CREATE and UPDATE provisioning operations. Each usage type is considered a provisioning policy. A source can have any number of these provisioning policies defined. These are the common usage types: CREATE - This usage type relates to \'Create Account Profile\', the provisioning template for the account to be created. For example, this would be used for a joiner on a source. UPDATE - This usage type relates to \'Update Account Profile\', the provisioning template for the \'Update\' connector operations. For example, this would be used for an attribute sync on a source. ENABLE - This usage type relates to \'Enable Account Profile\', the provisioning template for the account to be enabled. For example, this could be used for a joiner on a source once the joiner\'s account is created. DISABLE - This usage type relates to \'Disable Account Profile\', the provisioning template for the account to be disabled. For example, this could be used when a leaver is removed temporarily from a source. You can use these four usage types for all your provisioning policy needs. + * @param {Array} jsonPatchOperationBeta The JSONPatch payload used to update the schema. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + updateProvisioningPolicy: function (sourceId, usageType, jsonPatchOperationBeta, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'sourceId' is not null or undefined + (0, common_1.assertParamExists)('updateProvisioningPolicy', 'sourceId', sourceId); + // verify required parameter 'usageType' is not null or undefined + (0, common_1.assertParamExists)('updateProvisioningPolicy', 'usageType', usageType); + // verify required parameter 'jsonPatchOperationBeta' is not null or undefined + (0, common_1.assertParamExists)('updateProvisioningPolicy', 'jsonPatchOperationBeta', jsonPatchOperationBeta); + localVarPath = "/sources/{sourceId}/provisioning-policies/{usageType}" + .replace("{".concat("sourceId", "}"), encodeURIComponent(String(sourceId))) + .replace("{".concat("usageType", "}"), encodeURIComponent(String(usageType))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'PATCH' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + localVarHeaderParameter['Content-Type'] = 'application/json-patch+json'; + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(jsonPatchOperationBeta, localVarRequestOptions, configuration); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This API partially updates a source in IdentityNow, using a list of patch operations according to the [JSON Patch](https://tools.ietf.org/html/rfc6902) standard. Some fields are immutable and cannot be changed, such as: * id * type * authoritative * created * modified * connector * connectorClass * passwordPolicies Attempts to modify these fields will result in a 400 error. A token with ORG_ADMIN, SOURCE_ADMIN, SOURCE_SUBADMIN, or API authority is required to call this API. + * @summary Update Source (Partial) + * @param {string} id The Source id + * @param {Array} jsonPatchOperationBeta A list of account update operations according to the [JSON Patch](https://tools.ietf.org/html/rfc6902) standard. Any password changes are submitted as plain-text and encrypted upon receipt in IdentityNow. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + updateSource: function (id, jsonPatchOperationBeta, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'id' is not null or undefined + (0, common_1.assertParamExists)('updateSource', 'id', id); + // verify required parameter 'jsonPatchOperationBeta' is not null or undefined + (0, common_1.assertParamExists)('updateSource', 'jsonPatchOperationBeta', jsonPatchOperationBeta); + localVarPath = "/sources/{id}" + .replace("{".concat("id", "}"), encodeURIComponent(String(id))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'PATCH' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + localVarHeaderParameter['Content-Type'] = 'application/json-patch+json'; + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(jsonPatchOperationBeta, localVarRequestOptions, configuration); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This API replaces the current entitlement request configuration for a source. This source-level configuration should apply for all the entitlements in the source. Access request to any entitlements in the source should follow this configuration unless a separate entitlement-level configuration is defined. - During access request, this source-level entitlement request configuration overrides the global organization-level configuration. - However, the entitlement-level configuration (if defined) overrides this source-level configuration. A token with ORG_ADMIN, SOURCE_ADMIN, or SOURCE_SUBADMIN authority is required to call this API. + * @summary Update Source Entitlement Request Configuration + * @param {SourceEntitlementRequestConfigBeta} sourceEntitlementRequestConfigBeta + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + updateSourceEntitlementRequestConfig: function (sourceEntitlementRequestConfigBeta, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'sourceEntitlementRequestConfigBeta' is not null or undefined + (0, common_1.assertParamExists)('updateSourceEntitlementRequestConfig', 'sourceEntitlementRequestConfigBeta', sourceEntitlementRequestConfigBeta); + localVarPath = "/sources/{id}/entitlement-request-config"; + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'PUT' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + localVarHeaderParameter['Content-Type'] = 'application/json'; + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(sourceEntitlementRequestConfigBeta, localVarRequestOptions, configuration); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * Use this API to selectively update an existing Schema using a JSONPatch payload. The following schema fields are immutable and cannot be updated: - id - name - created - modified To switch an account attribute to a group entitlement, you need to have the following in place: - `isEntitlement: true` - Must define a schema for the group and [add it to the source](https://developer.sailpoint.com/idn/api/beta/create-source-schema) before updating the `isGroup` flag. For example, here is the `group` account attribute referencing a schema that defines the group: ```json { \"name\": \"groups\", \"type\": \"STRING\", \"schema\": { \"type\": \"CONNECTOR_SCHEMA\", \"id\": \"2c9180887671ff8c01767b4671fc7d60\", \"name\": \"group\" }, \"description\": \"The groups, roles etc. that reference account group objects\", \"isMulti\": true, \"isEntitlement\": true, \"isGroup\": true } ``` + * @summary Update Source Schema (Partial) + * @param {string} sourceId The Source id. + * @param {string} schemaId The Schema id. + * @param {Array} jsonPatchOperationBeta The JSONPatch payload used to update the schema. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + updateSourceSchema: function (sourceId, schemaId, jsonPatchOperationBeta, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'sourceId' is not null or undefined + (0, common_1.assertParamExists)('updateSourceSchema', 'sourceId', sourceId); + // verify required parameter 'schemaId' is not null or undefined + (0, common_1.assertParamExists)('updateSourceSchema', 'schemaId', schemaId); + // verify required parameter 'jsonPatchOperationBeta' is not null or undefined + (0, common_1.assertParamExists)('updateSourceSchema', 'jsonPatchOperationBeta', jsonPatchOperationBeta); + localVarPath = "/sources/{sourceId}/schemas/{schemaId}" + .replace("{".concat("sourceId", "}"), encodeURIComponent(String(sourceId))) + .replace("{".concat("schemaId", "}"), encodeURIComponent(String(schemaId))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'PATCH' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + localVarHeaderParameter['Content-Type'] = 'application/json-patch+json'; + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(jsonPatchOperationBeta, localVarRequestOptions, configuration); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + }; + }; + exports.SourcesBetaApiAxiosParamCreator = SourcesBetaApiAxiosParamCreator; + /** + * SourcesBetaApi - functional programming interface + * @export + */ + var SourcesBetaApiFp = function (configuration) { + var localVarAxiosParamCreator = (0, exports.SourcesBetaApiAxiosParamCreator)(configuration); + return { + /** + * This end-point deletes a specific source in IdentityNow. A token with ORG_ADMIN, SOURCE_ADMIN, or SOURCE_SUBADMIN authority is required to call this API. All of accounts on the source will be removed first, then the source will be deleted. Actual status of task execution can be retrieved via method GET `/task-status/{id}` + * @summary Delete Source by ID + * @param {string} id The Source ID + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + _delete: function (id, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator._delete(id, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This API generates a create policy/template based on field value transforms. This API is intended for use when setting up JDBC Provisioning type sources, but it will also work on other source types. Transforms can be used in the provisioning policy to create a new attribute that you only need during provisioning. Refer to [Transforms in Provisioning Policies](https://developer.sailpoint.com/idn/docs/transforms/guides/transforms-in-provisioning-policies) for more information. A token with ORG_ADMIN authority is required to call this API. + * @summary Create Provisioning Policy + * @param {string} sourceId The Source id + * @param {ProvisioningPolicyDtoBeta} provisioningPolicyDtoBeta + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + createProvisioningPolicy: function (sourceId, provisioningPolicyDtoBeta, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.createProvisioningPolicy(sourceId, provisioningPolicyDtoBeta, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This creates a specific source with a full source JSON representation. Any passwords are submitted as plain-text and encrypted upon receipt in IdentityNow. A token with ORG_ADMIN, SOURCE_ADMIN, or SOURCE_SUBADMIN authority is required to call this API. + * @summary Creates a source in IdentityNow. + * @param {SourceBeta} sourceBeta + * @param {boolean} [provisionAsCsv] If this parameter is `true`, it configures the source as a Delimited File (CSV) source. Setting this to `true` will automatically set the `type` of the source to `DelimitedFile`. You must use this query parameter to create a Delimited File source as you would in the UI. If you don\'t set this query parameter and you attempt to set the `type` attribute directly, the request won\'t correctly generate the source. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + createSource: function (sourceBeta, provisionAsCsv, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.createSource(sourceBeta, provisionAsCsv, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * + * @summary Creates a new Schema on the specified Source in IdentityNow. + * @param {string} sourceId The Source id. + * @param {SchemaBeta} schemaBeta + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + createSourceSchema: function (sourceId, schemaBeta, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.createSourceSchema(sourceId, schemaBeta, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * Deletes the native change detection configuration for the source specified by the given ID. A token with API, or ORG_ADMIN authority is required to call this API. + * @summary Delete Native Change Detection Configuration + * @param {string} id The source id + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + deleteNativeChangeDetectionConfig: function (id, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.deleteNativeChangeDetectionConfig(id, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * Deletes the provisioning policy with the specified usage on an application. A token with API, or ORG_ADMIN authority is required to call this API. + * @summary Delete Provisioning Policy by UsageType + * @param {string} sourceId The Source ID. + * @param {UsageTypeBeta} usageType The type of provisioning policy usage. In IdentityNow, a source can support various provisioning operations. For example, when a joiner is added to a source, this may trigger both CREATE and UPDATE provisioning operations. Each usage type is considered a provisioning policy. A source can have any number of these provisioning policies defined. These are the common usage types: CREATE - This usage type relates to \'Create Account Profile\', the provisioning template for the account to be created. For example, this would be used for a joiner on a source. UPDATE - This usage type relates to \'Update Account Profile\', the provisioning template for the \'Update\' connector operations. For example, this would be used for an attribute sync on a source. ENABLE - This usage type relates to \'Enable Account Profile\', the provisioning template for the account to be enabled. For example, this could be used for a joiner on a source once the joiner\'s account is created. DISABLE - This usage type relates to \'Disable Account Profile\', the provisioning template for the account to be disabled. For example, this could be used when a leaver is removed temporarily from a source. You can use these four usage types for all your provisioning policy needs. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + deleteProvisioningPolicy: function (sourceId, usageType, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.deleteProvisioningPolicy(sourceId, usageType, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * + * @summary Delete Source Schema by ID + * @param {string} sourceId The Source ID. + * @param {string} schemaId The Schema ID. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + deleteSourceSchema: function (sourceId, schemaId, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.deleteSourceSchema(sourceId, schemaId, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This API returns the existing native change detection configuration for a source specified by the given ID. A token with ORG_ADMIN authority is required to call this API. + * @summary Native Change Detection Configuration + * @param {string} id The source id + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getNativeChangeDetectionConfig: function (id, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.getNativeChangeDetectionConfig(id, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This end-point retrieves the ProvisioningPolicy with the specified usage on the specified Source in IdentityNow. A token with API, ORG_ADMIN, SOURCE_ADMIN, or SOURCE_SUBADMIN authority is required to call this API. + * @summary Get Provisioning Policy by UsageType + * @param {string} sourceId The Source ID. + * @param {UsageTypeBeta} usageType The type of provisioning policy usage. In IdentityNow, a source can support various provisioning operations. For example, when a joiner is added to a source, this may trigger both CREATE and UPDATE provisioning operations. Each usage type is considered a provisioning policy. A source can have any number of these provisioning policies defined. These are the common usage types: CREATE - This usage type relates to \'Create Account Profile\', the provisioning template for the account to be created. For example, this would be used for a joiner on a source. UPDATE - This usage type relates to \'Update Account Profile\', the provisioning template for the \'Update\' connector operations. For example, this would be used for an attribute sync on a source. ENABLE - This usage type relates to \'Enable Account Profile\', the provisioning template for the account to be enabled. For example, this could be used for a joiner on a source once the joiner\'s account is created. DISABLE - This usage type relates to \'Disable Account Profile\', the provisioning template for the account to be disabled. For example, this could be used when a leaver is removed temporarily from a source. You can use these four usage types for all your provisioning policy needs. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getProvisioningPolicy: function (sourceId, usageType, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.getProvisioningPolicy(sourceId, usageType, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This end-point gets a specific source in IdentityNow. A token with ORG_ADMIN, SOURCE_ADMIN, or SOURCE_SUBADMIN authority is required to call this API. + * @summary Get Source by ID + * @param {string} id The Source ID + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getSource: function (id, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.getSource(id, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * + * @summary Downloads source accounts schema template + * @param {string} id The Source id + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getSourceAccountsSchema: function (id, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.getSourceAccountsSchema(id, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This API returns the existing attribute synchronization configuration for a source specified by the given ID. The response contains all attributes, regardless of whether they enabled or not. A token with ORG_ADMIN authority is required to call this API. + * @summary Attribute Sync Config + * @param {string} id The source id + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getSourceAttrSyncConfig: function (id, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.getSourceAttrSyncConfig(id, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * Looks up and returns the source config for the requested source id after populating the source config values and applying language translations. A token with ORG_ADMIN authority is required to call this API. + * @summary Gets source config with language translations + * @param {string} id The Source id + * @param {'de' | 'false' | 'fi' | 'sv' | 'ru' | 'pt' | 'ko' | 'zh-TW' | 'en' | 'it' | 'fr' | 'zh-CN' | 'hu' | 'es' | 'cs' | 'ja' | 'pl' | 'da' | 'nl'} [locale] The locale to apply to the config. If no viable locale is given, it will default to \"en\" + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getSourceConfig: function (id, locale, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.getSourceConfig(id, locale, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This API gets the current entitlement request configuration for a source. This source-level configuration should apply for all the entitlements in the source. Access request to any entitlements in the source should follow this configuration unless a separate entitlement-level configuration is defined. - During access request, this source-level entitlement request configuration overrides the global organization-level configuration. - However, the entitlement-level configuration (if defined) overrides this source-level configuration. A token with ORG_ADMIN, SOURCE_ADMIN, or SOURCE_SUBADMIN authority is required to call this API. + * @summary Get Source Entitlement Request Configuration + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getSourceEntitlementRequestConfig: function (axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.getSourceEntitlementRequestConfig(axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * + * @summary Downloads source entitlements schema template + * @param {string} id The Source id + * @param {string} [schemaName] Name of entitlement schema + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getSourceEntitlementsSchema: function (id, schemaName, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.getSourceEntitlementsSchema(id, schemaName, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * Get the Source Schema by ID in IdentityNow. + * @summary Get Source Schema by ID + * @param {string} sourceId The Source ID. + * @param {string} schemaId The Schema ID. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getSourceSchema: function (sourceId, schemaId, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.getSourceSchema(sourceId, schemaId, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This API uploads a source schema template file to configure a source\'s account attributes. + * @summary Uploads source accounts schema template + * @param {string} id The Source id + * @param {any} [file] + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + importSourceAccountsSchema: function (id, file, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.importSourceAccountsSchema(id, file, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This uploads a supplemental source connector file (like jdbc driver jars) to a source\'s S3 bucket. This also sends ETS and Audit events. A token with ORG_ADMIN authority is required to call this API. + * @summary Upload connector file to source + * @param {string} sourceId The Source id + * @param {any} [file] + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + importSourceConnectorFile: function (sourceId, file, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.importSourceConnectorFile(sourceId, file, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This API uploads a source schema template file to configure a source\'s entitlement attributes. + * @summary Uploads source entitlements schema template + * @param {string} id The Source id + * @param {string} [schemaName] Name of entitlement schema + * @param {any} [file] + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + importSourceEntitlementsSchema: function (id, schemaName, file, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.importSourceEntitlementsSchema(id, schemaName, file, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This end-point lists all the ProvisioningPolicies in IdentityNow. A token with API, or ORG_ADMIN authority is required to call this API. + * @summary Lists ProvisioningPolicies + * @param {string} sourceId The Source id + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + listProvisioningPolicies: function (sourceId, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.listProvisioningPolicies(sourceId, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * + * @summary Lists the Schemas that exist on the specified Source in IdentityNow. + * @param {string} sourceId The Source id. + * @param {string} [includeTypes] If set to \'group\', then the account schema is filtered and only group schemas are returned. Only a value of \'group\' is recognized. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + listSourceSchemas: function (sourceId, includeTypes, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.listSourceSchemas(sourceId, includeTypes, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This end-point lists all the sources in IdentityNow. A token with ORG_ADMIN, SOURCE_ADMIN, SOURCE_SUBADMIN, or ROLE_SUBADMIN authority is required to call this API. + * @summary Lists all sources in IdentityNow. + * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **id**: *eq, in, co, ge, gt, le, lt, ne, isnull, sw* **name**: *co, eq, in, sw, ge, gt, ne, isnull* **type**: *eq, in, co, ge, gt, ne, isnull, sw* **owner.id**: *eq, in, co, ge, gt, le, lt, ne, isnull, sw* **features**: *ca, co* **created**: *eq* **modified**: *eq* **managementWorkgroup.id**: *eq, co, ge, gt, in, le, lt, ne, isnull, sw* **description**: *eq, sw* **authoritative**: *eq, ne, isnull* **healthy**: *isnull* **status**: *eq, in, co, ge, gt, le, lt, ne, isnull, sw* **connectionType**: *eq, co, ge, gt, in, le, lt, ne, isnull, sw* **connectorName**: *eq, co, ge, gt, in, ne, isnull, sw* + * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **type, created, modified, name, owner.name, healthy, status, id, description, owner.id, accountCorrelationConfig.id, accountCorrelationConfig.name, managerCorrelationRule.type, managerCorrelationRule.id, managerCorrelationRule.name, authoritative, managementWorkgroup.id, connectorName, connectionType** + * @param {string} [forSubadmin] Filter the returned list of sources for the identity specified by the parameter, which is the id of an identity with the role SOURCE_SUBADMIN. By convention, the value **me** indicates the identity id of the current user. Subadmins may only view Sources which they are able to administer; all other Sources will be filtered out when this parameter is set. If the current user is a SOURCE_SUBADMIN but fails to pass a valid value for this parameter, a 403 Forbidden is returned. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + listSources: function (limit, offset, count, filters, sorters, forSubadmin, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.listSources(limit, offset, count, filters, sorters, forSubadmin, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * Retrieves a sample of data returned from account and group aggregation requests. A token with ORG_ADMIN authority is required to call this API. + * @summary Peek source connector\'s resource objects + * @param {string} sourceId The ID of the Source + * @param {ResourceObjectsRequestBeta} resourceObjectsRequestBeta + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + peekResourceObjects: function (sourceId, resourceObjectsRequestBeta, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.peekResourceObjects(sourceId, resourceObjectsRequestBeta, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This endpoint validates that the cluster being used by the source is reachable from IdentityNow. A token with ORG_ADMIN authority is required to call this API. + * @summary Ping cluster for source connector + * @param {string} sourceId The ID of the Source + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + pingCluster: function (sourceId, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.pingCluster(sourceId, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * Replaces the native change detection configuration for the source specified by the given ID with the configuration provided in the request body. A token with ORG_ADMIN authority is required to call this API. + * @summary Update Native Change Detection Configuration + * @param {string} id The source id + * @param {NativeChangeDetectionConfigBeta} nativeChangeDetectionConfigBeta + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + putNativeChangeDetectionConfig: function (id, nativeChangeDetectionConfigBeta, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.putNativeChangeDetectionConfig(id, nativeChangeDetectionConfigBeta, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This end-point updates the provisioning policy with the specified usage on the specified source in IdentityNow. Transforms can be used in the provisioning policy to create a new attribute that you only need during provisioning. Refer to [Transforms in Provisioning Policies](https://developer.sailpoint.com/idn/docs/transforms/guides/transforms-in-provisioning-policies) for more information. A token with API, ORG_ADMIN, SOURCE_ADMIN, or SOURCE_SUBADMIN authority is required to call this API. + * @summary Update Provisioning Policy by UsageType + * @param {string} sourceId The Source ID. + * @param {UsageTypeBeta} usageType The type of provisioning policy usage. In IdentityNow, a source can support various provisioning operations. For example, when a joiner is added to a source, this may trigger both CREATE and UPDATE provisioning operations. Each usage type is considered a provisioning policy. A source can have any number of these provisioning policies defined. These are the common usage types: CREATE - This usage type relates to \'Create Account Profile\', the provisioning template for the account to be created. For example, this would be used for a joiner on a source. UPDATE - This usage type relates to \'Update Account Profile\', the provisioning template for the \'Update\' connector operations. For example, this would be used for an attribute sync on a source. ENABLE - This usage type relates to \'Enable Account Profile\', the provisioning template for the account to be enabled. For example, this could be used for a joiner on a source once the joiner\'s account is created. DISABLE - This usage type relates to \'Disable Account Profile\', the provisioning template for the account to be disabled. For example, this could be used when a leaver is removed temporarily from a source. You can use these four usage types for all your provisioning policy needs. + * @param {ProvisioningPolicyDtoBeta} provisioningPolicyDtoBeta + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + putProvisioningPolicy: function (sourceId, usageType, provisioningPolicyDtoBeta, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.putProvisioningPolicy(sourceId, usageType, provisioningPolicyDtoBeta, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This API updates a source in IdentityNow, using a full object representation. In other words, the existing Source configuration is completely replaced. Some fields are immutable and cannot be changed, such as: * id * type * authoritative * connector * connectorClass * passwordPolicies Attempts to modify these fields will result in a 400 error. A token with ORG_ADMIN, SOURCE_ADMIN, or SOURCE_SUBADMIN authority is required to call this API. + * @summary Update Source (Full) + * @param {string} id The Source id + * @param {SourceBeta} sourceBeta + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + putSource: function (id, sourceBeta, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.putSource(id, sourceBeta, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * Replaces the attribute synchronization configuration for the source specified by the given ID with the configuration provided in the request body. Only the \"enabled\" field of the values in the \"attributes\" array is mutable. Attempting to change other attributes or add new values to the \"attributes\" array will result in an error. A token with ORG_ADMIN authority is required to call this API. + * @summary Update Attribute Sync Config + * @param {string} id The source id + * @param {AttrSyncSourceConfigBeta} attrSyncSourceConfigBeta + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + putSourceAttrSyncConfig: function (id, attrSyncSourceConfigBeta, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.putSourceAttrSyncConfig(id, attrSyncSourceConfigBeta, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This API will completely replace an existing Schema with the submitted payload. Some fields of the Schema cannot be updated. These fields are listed below. * id * name * created * modified Any attempt to modify these fields will result in an error response with a status code of 400. + * @summary Update Source Schema (Full) + * @param {string} sourceId The Source ID. + * @param {string} schemaId The Schema ID. + * @param {SchemaBeta} schemaBeta + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + putSourceSchema: function (sourceId, schemaId, schemaBeta, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.putSourceSchema(sourceId, schemaId, schemaBeta, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This end-point performs attribute synchronization for a selected source. A token with ORG_ADMIN or SOURCE_ADMIN authority is required to call this API. + * @summary Synchronize single source attributes. + * @param {string} id The Source id + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + syncAttributesForSource: function (id, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.syncAttributesForSource(id, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This endpoint performs a more detailed validation of the source\'s configuration that can take longer than the lighter weight credential validation performed by the checkConnection API. A token with ORG_ADMIN authority is required to call this API. + * @summary Test configuration for source connector + * @param {string} sourceId The ID of the Source + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + testSourceConfiguration: function (sourceId, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.testSourceConfiguration(sourceId, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This endpoint validates that the configured credentials are valid and will properly authenticate with the source identified by the sourceId path parameter. A token with ORG_ADMIN authority is required to call this API. + * @summary Check connection for source connector. + * @param {string} sourceId The ID of the Source. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + testSourceConnection: function (sourceId, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.testSourceConnection(sourceId, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This end-point updates a list of provisioning policies on the specified source in IdentityNow. A token with API, or ORG_ADMIN authority is required to call this API. + * @summary Bulk Update Provisioning Policies + * @param {string} sourceId The Source id. + * @param {Array} provisioningPolicyDtoBeta + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + updateProvisioningPoliciesInBulk: function (sourceId, provisioningPolicyDtoBeta, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.updateProvisioningPoliciesInBulk(sourceId, provisioningPolicyDtoBeta, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This API selectively updates an existing Provisioning Policy using a JSONPatch payload. Transforms can be used in the provisioning policy to create a new attribute that you only need during provisioning. Refer to [Transforms in Provisioning Policies](https://developer.sailpoint.com/idn/docs/transforms/guides/transforms-in-provisioning-policies) for more information. A token with API, ORG_ADMIN, SOURCE_ADMIN, or SOURCE_SUBADMIN authority is required to call this API. + * @summary Partial update of Provisioning Policy + * @param {string} sourceId The Source id. + * @param {UsageTypeBeta} usageType The type of provisioning policy usage. In IdentityNow, a source can support various provisioning operations. For example, when a joiner is added to a source, this may trigger both CREATE and UPDATE provisioning operations. Each usage type is considered a provisioning policy. A source can have any number of these provisioning policies defined. These are the common usage types: CREATE - This usage type relates to \'Create Account Profile\', the provisioning template for the account to be created. For example, this would be used for a joiner on a source. UPDATE - This usage type relates to \'Update Account Profile\', the provisioning template for the \'Update\' connector operations. For example, this would be used for an attribute sync on a source. ENABLE - This usage type relates to \'Enable Account Profile\', the provisioning template for the account to be enabled. For example, this could be used for a joiner on a source once the joiner\'s account is created. DISABLE - This usage type relates to \'Disable Account Profile\', the provisioning template for the account to be disabled. For example, this could be used when a leaver is removed temporarily from a source. You can use these four usage types for all your provisioning policy needs. + * @param {Array} jsonPatchOperationBeta The JSONPatch payload used to update the schema. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + updateProvisioningPolicy: function (sourceId, usageType, jsonPatchOperationBeta, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.updateProvisioningPolicy(sourceId, usageType, jsonPatchOperationBeta, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This API partially updates a source in IdentityNow, using a list of patch operations according to the [JSON Patch](https://tools.ietf.org/html/rfc6902) standard. Some fields are immutable and cannot be changed, such as: * id * type * authoritative * created * modified * connector * connectorClass * passwordPolicies Attempts to modify these fields will result in a 400 error. A token with ORG_ADMIN, SOURCE_ADMIN, SOURCE_SUBADMIN, or API authority is required to call this API. + * @summary Update Source (Partial) + * @param {string} id The Source id + * @param {Array} jsonPatchOperationBeta A list of account update operations according to the [JSON Patch](https://tools.ietf.org/html/rfc6902) standard. Any password changes are submitted as plain-text and encrypted upon receipt in IdentityNow. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + updateSource: function (id, jsonPatchOperationBeta, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.updateSource(id, jsonPatchOperationBeta, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This API replaces the current entitlement request configuration for a source. This source-level configuration should apply for all the entitlements in the source. Access request to any entitlements in the source should follow this configuration unless a separate entitlement-level configuration is defined. - During access request, this source-level entitlement request configuration overrides the global organization-level configuration. - However, the entitlement-level configuration (if defined) overrides this source-level configuration. A token with ORG_ADMIN, SOURCE_ADMIN, or SOURCE_SUBADMIN authority is required to call this API. + * @summary Update Source Entitlement Request Configuration + * @param {SourceEntitlementRequestConfigBeta} sourceEntitlementRequestConfigBeta + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + updateSourceEntitlementRequestConfig: function (sourceEntitlementRequestConfigBeta, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.updateSourceEntitlementRequestConfig(sourceEntitlementRequestConfigBeta, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * Use this API to selectively update an existing Schema using a JSONPatch payload. The following schema fields are immutable and cannot be updated: - id - name - created - modified To switch an account attribute to a group entitlement, you need to have the following in place: - `isEntitlement: true` - Must define a schema for the group and [add it to the source](https://developer.sailpoint.com/idn/api/beta/create-source-schema) before updating the `isGroup` flag. For example, here is the `group` account attribute referencing a schema that defines the group: ```json { \"name\": \"groups\", \"type\": \"STRING\", \"schema\": { \"type\": \"CONNECTOR_SCHEMA\", \"id\": \"2c9180887671ff8c01767b4671fc7d60\", \"name\": \"group\" }, \"description\": \"The groups, roles etc. that reference account group objects\", \"isMulti\": true, \"isEntitlement\": true, \"isGroup\": true } ``` + * @summary Update Source Schema (Partial) + * @param {string} sourceId The Source id. + * @param {string} schemaId The Schema id. + * @param {Array} jsonPatchOperationBeta The JSONPatch payload used to update the schema. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + updateSourceSchema: function (sourceId, schemaId, jsonPatchOperationBeta, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.updateSourceSchema(sourceId, schemaId, jsonPatchOperationBeta, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + }; + }; + exports.SourcesBetaApiFp = SourcesBetaApiFp; + /** + * SourcesBetaApi - factory interface + * @export + */ + var SourcesBetaApiFactory = function (configuration, basePath, axios) { + var localVarFp = (0, exports.SourcesBetaApiFp)(configuration); + return { + /** + * This end-point deletes a specific source in IdentityNow. A token with ORG_ADMIN, SOURCE_ADMIN, or SOURCE_SUBADMIN authority is required to call this API. All of accounts on the source will be removed first, then the source will be deleted. Actual status of task execution can be retrieved via method GET `/task-status/{id}` + * @summary Delete Source by ID + * @param {string} id The Source ID + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + _delete: function (id, axiosOptions) { + return localVarFp._delete(id, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This API generates a create policy/template based on field value transforms. This API is intended for use when setting up JDBC Provisioning type sources, but it will also work on other source types. Transforms can be used in the provisioning policy to create a new attribute that you only need during provisioning. Refer to [Transforms in Provisioning Policies](https://developer.sailpoint.com/idn/docs/transforms/guides/transforms-in-provisioning-policies) for more information. A token with ORG_ADMIN authority is required to call this API. + * @summary Create Provisioning Policy + * @param {string} sourceId The Source id + * @param {ProvisioningPolicyDtoBeta} provisioningPolicyDtoBeta + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + createProvisioningPolicy: function (sourceId, provisioningPolicyDtoBeta, axiosOptions) { + return localVarFp.createProvisioningPolicy(sourceId, provisioningPolicyDtoBeta, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This creates a specific source with a full source JSON representation. Any passwords are submitted as plain-text and encrypted upon receipt in IdentityNow. A token with ORG_ADMIN, SOURCE_ADMIN, or SOURCE_SUBADMIN authority is required to call this API. + * @summary Creates a source in IdentityNow. + * @param {SourceBeta} sourceBeta + * @param {boolean} [provisionAsCsv] If this parameter is `true`, it configures the source as a Delimited File (CSV) source. Setting this to `true` will automatically set the `type` of the source to `DelimitedFile`. You must use this query parameter to create a Delimited File source as you would in the UI. If you don\'t set this query parameter and you attempt to set the `type` attribute directly, the request won\'t correctly generate the source. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + createSource: function (sourceBeta, provisionAsCsv, axiosOptions) { + return localVarFp.createSource(sourceBeta, provisionAsCsv, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * + * @summary Creates a new Schema on the specified Source in IdentityNow. + * @param {string} sourceId The Source id. + * @param {SchemaBeta} schemaBeta + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + createSourceSchema: function (sourceId, schemaBeta, axiosOptions) { + return localVarFp.createSourceSchema(sourceId, schemaBeta, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * Deletes the native change detection configuration for the source specified by the given ID. A token with API, or ORG_ADMIN authority is required to call this API. + * @summary Delete Native Change Detection Configuration + * @param {string} id The source id + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + deleteNativeChangeDetectionConfig: function (id, axiosOptions) { + return localVarFp.deleteNativeChangeDetectionConfig(id, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * Deletes the provisioning policy with the specified usage on an application. A token with API, or ORG_ADMIN authority is required to call this API. + * @summary Delete Provisioning Policy by UsageType + * @param {string} sourceId The Source ID. + * @param {UsageTypeBeta} usageType The type of provisioning policy usage. In IdentityNow, a source can support various provisioning operations. For example, when a joiner is added to a source, this may trigger both CREATE and UPDATE provisioning operations. Each usage type is considered a provisioning policy. A source can have any number of these provisioning policies defined. These are the common usage types: CREATE - This usage type relates to \'Create Account Profile\', the provisioning template for the account to be created. For example, this would be used for a joiner on a source. UPDATE - This usage type relates to \'Update Account Profile\', the provisioning template for the \'Update\' connector operations. For example, this would be used for an attribute sync on a source. ENABLE - This usage type relates to \'Enable Account Profile\', the provisioning template for the account to be enabled. For example, this could be used for a joiner on a source once the joiner\'s account is created. DISABLE - This usage type relates to \'Disable Account Profile\', the provisioning template for the account to be disabled. For example, this could be used when a leaver is removed temporarily from a source. You can use these four usage types for all your provisioning policy needs. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + deleteProvisioningPolicy: function (sourceId, usageType, axiosOptions) { + return localVarFp.deleteProvisioningPolicy(sourceId, usageType, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * + * @summary Delete Source Schema by ID + * @param {string} sourceId The Source ID. + * @param {string} schemaId The Schema ID. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + deleteSourceSchema: function (sourceId, schemaId, axiosOptions) { + return localVarFp.deleteSourceSchema(sourceId, schemaId, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This API returns the existing native change detection configuration for a source specified by the given ID. A token with ORG_ADMIN authority is required to call this API. + * @summary Native Change Detection Configuration + * @param {string} id The source id + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getNativeChangeDetectionConfig: function (id, axiosOptions) { + return localVarFp.getNativeChangeDetectionConfig(id, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This end-point retrieves the ProvisioningPolicy with the specified usage on the specified Source in IdentityNow. A token with API, ORG_ADMIN, SOURCE_ADMIN, or SOURCE_SUBADMIN authority is required to call this API. + * @summary Get Provisioning Policy by UsageType + * @param {string} sourceId The Source ID. + * @param {UsageTypeBeta} usageType The type of provisioning policy usage. In IdentityNow, a source can support various provisioning operations. For example, when a joiner is added to a source, this may trigger both CREATE and UPDATE provisioning operations. Each usage type is considered a provisioning policy. A source can have any number of these provisioning policies defined. These are the common usage types: CREATE - This usage type relates to \'Create Account Profile\', the provisioning template for the account to be created. For example, this would be used for a joiner on a source. UPDATE - This usage type relates to \'Update Account Profile\', the provisioning template for the \'Update\' connector operations. For example, this would be used for an attribute sync on a source. ENABLE - This usage type relates to \'Enable Account Profile\', the provisioning template for the account to be enabled. For example, this could be used for a joiner on a source once the joiner\'s account is created. DISABLE - This usage type relates to \'Disable Account Profile\', the provisioning template for the account to be disabled. For example, this could be used when a leaver is removed temporarily from a source. You can use these four usage types for all your provisioning policy needs. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getProvisioningPolicy: function (sourceId, usageType, axiosOptions) { + return localVarFp.getProvisioningPolicy(sourceId, usageType, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This end-point gets a specific source in IdentityNow. A token with ORG_ADMIN, SOURCE_ADMIN, or SOURCE_SUBADMIN authority is required to call this API. + * @summary Get Source by ID + * @param {string} id The Source ID + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getSource: function (id, axiosOptions) { + return localVarFp.getSource(id, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * + * @summary Downloads source accounts schema template + * @param {string} id The Source id + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getSourceAccountsSchema: function (id, axiosOptions) { + return localVarFp.getSourceAccountsSchema(id, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This API returns the existing attribute synchronization configuration for a source specified by the given ID. The response contains all attributes, regardless of whether they enabled or not. A token with ORG_ADMIN authority is required to call this API. + * @summary Attribute Sync Config + * @param {string} id The source id + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getSourceAttrSyncConfig: function (id, axiosOptions) { + return localVarFp.getSourceAttrSyncConfig(id, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * Looks up and returns the source config for the requested source id after populating the source config values and applying language translations. A token with ORG_ADMIN authority is required to call this API. + * @summary Gets source config with language translations + * @param {string} id The Source id + * @param {'de' | 'false' | 'fi' | 'sv' | 'ru' | 'pt' | 'ko' | 'zh-TW' | 'en' | 'it' | 'fr' | 'zh-CN' | 'hu' | 'es' | 'cs' | 'ja' | 'pl' | 'da' | 'nl'} [locale] The locale to apply to the config. If no viable locale is given, it will default to \"en\" + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getSourceConfig: function (id, locale, axiosOptions) { + return localVarFp.getSourceConfig(id, locale, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This API gets the current entitlement request configuration for a source. This source-level configuration should apply for all the entitlements in the source. Access request to any entitlements in the source should follow this configuration unless a separate entitlement-level configuration is defined. - During access request, this source-level entitlement request configuration overrides the global organization-level configuration. - However, the entitlement-level configuration (if defined) overrides this source-level configuration. A token with ORG_ADMIN, SOURCE_ADMIN, or SOURCE_SUBADMIN authority is required to call this API. + * @summary Get Source Entitlement Request Configuration + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getSourceEntitlementRequestConfig: function (axiosOptions) { + return localVarFp.getSourceEntitlementRequestConfig(axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * + * @summary Downloads source entitlements schema template + * @param {string} id The Source id + * @param {string} [schemaName] Name of entitlement schema + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getSourceEntitlementsSchema: function (id, schemaName, axiosOptions) { + return localVarFp.getSourceEntitlementsSchema(id, schemaName, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * Get the Source Schema by ID in IdentityNow. + * @summary Get Source Schema by ID + * @param {string} sourceId The Source ID. + * @param {string} schemaId The Schema ID. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getSourceSchema: function (sourceId, schemaId, axiosOptions) { + return localVarFp.getSourceSchema(sourceId, schemaId, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This API uploads a source schema template file to configure a source\'s account attributes. + * @summary Uploads source accounts schema template + * @param {string} id The Source id + * @param {any} [file] + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + importSourceAccountsSchema: function (id, file, axiosOptions) { + return localVarFp.importSourceAccountsSchema(id, file, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This uploads a supplemental source connector file (like jdbc driver jars) to a source\'s S3 bucket. This also sends ETS and Audit events. A token with ORG_ADMIN authority is required to call this API. + * @summary Upload connector file to source + * @param {string} sourceId The Source id + * @param {any} [file] + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + importSourceConnectorFile: function (sourceId, file, axiosOptions) { + return localVarFp.importSourceConnectorFile(sourceId, file, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This API uploads a source schema template file to configure a source\'s entitlement attributes. + * @summary Uploads source entitlements schema template + * @param {string} id The Source id + * @param {string} [schemaName] Name of entitlement schema + * @param {any} [file] + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + importSourceEntitlementsSchema: function (id, schemaName, file, axiosOptions) { + return localVarFp.importSourceEntitlementsSchema(id, schemaName, file, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This end-point lists all the ProvisioningPolicies in IdentityNow. A token with API, or ORG_ADMIN authority is required to call this API. + * @summary Lists ProvisioningPolicies + * @param {string} sourceId The Source id + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + listProvisioningPolicies: function (sourceId, axiosOptions) { + return localVarFp.listProvisioningPolicies(sourceId, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * + * @summary Lists the Schemas that exist on the specified Source in IdentityNow. + * @param {string} sourceId The Source id. + * @param {string} [includeTypes] If set to \'group\', then the account schema is filtered and only group schemas are returned. Only a value of \'group\' is recognized. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + listSourceSchemas: function (sourceId, includeTypes, axiosOptions) { + return localVarFp.listSourceSchemas(sourceId, includeTypes, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This end-point lists all the sources in IdentityNow. A token with ORG_ADMIN, SOURCE_ADMIN, SOURCE_SUBADMIN, or ROLE_SUBADMIN authority is required to call this API. + * @summary Lists all sources in IdentityNow. + * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **id**: *eq, in, co, ge, gt, le, lt, ne, isnull, sw* **name**: *co, eq, in, sw, ge, gt, ne, isnull* **type**: *eq, in, co, ge, gt, ne, isnull, sw* **owner.id**: *eq, in, co, ge, gt, le, lt, ne, isnull, sw* **features**: *ca, co* **created**: *eq* **modified**: *eq* **managementWorkgroup.id**: *eq, co, ge, gt, in, le, lt, ne, isnull, sw* **description**: *eq, sw* **authoritative**: *eq, ne, isnull* **healthy**: *isnull* **status**: *eq, in, co, ge, gt, le, lt, ne, isnull, sw* **connectionType**: *eq, co, ge, gt, in, le, lt, ne, isnull, sw* **connectorName**: *eq, co, ge, gt, in, ne, isnull, sw* + * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **type, created, modified, name, owner.name, healthy, status, id, description, owner.id, accountCorrelationConfig.id, accountCorrelationConfig.name, managerCorrelationRule.type, managerCorrelationRule.id, managerCorrelationRule.name, authoritative, managementWorkgroup.id, connectorName, connectionType** + * @param {string} [forSubadmin] Filter the returned list of sources for the identity specified by the parameter, which is the id of an identity with the role SOURCE_SUBADMIN. By convention, the value **me** indicates the identity id of the current user. Subadmins may only view Sources which they are able to administer; all other Sources will be filtered out when this parameter is set. If the current user is a SOURCE_SUBADMIN but fails to pass a valid value for this parameter, a 403 Forbidden is returned. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + listSources: function (limit, offset, count, filters, sorters, forSubadmin, axiosOptions) { + return localVarFp.listSources(limit, offset, count, filters, sorters, forSubadmin, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * Retrieves a sample of data returned from account and group aggregation requests. A token with ORG_ADMIN authority is required to call this API. + * @summary Peek source connector\'s resource objects + * @param {string} sourceId The ID of the Source + * @param {ResourceObjectsRequestBeta} resourceObjectsRequestBeta + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + peekResourceObjects: function (sourceId, resourceObjectsRequestBeta, axiosOptions) { + return localVarFp.peekResourceObjects(sourceId, resourceObjectsRequestBeta, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This endpoint validates that the cluster being used by the source is reachable from IdentityNow. A token with ORG_ADMIN authority is required to call this API. + * @summary Ping cluster for source connector + * @param {string} sourceId The ID of the Source + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + pingCluster: function (sourceId, axiosOptions) { + return localVarFp.pingCluster(sourceId, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * Replaces the native change detection configuration for the source specified by the given ID with the configuration provided in the request body. A token with ORG_ADMIN authority is required to call this API. + * @summary Update Native Change Detection Configuration + * @param {string} id The source id + * @param {NativeChangeDetectionConfigBeta} nativeChangeDetectionConfigBeta + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + putNativeChangeDetectionConfig: function (id, nativeChangeDetectionConfigBeta, axiosOptions) { + return localVarFp.putNativeChangeDetectionConfig(id, nativeChangeDetectionConfigBeta, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This end-point updates the provisioning policy with the specified usage on the specified source in IdentityNow. Transforms can be used in the provisioning policy to create a new attribute that you only need during provisioning. Refer to [Transforms in Provisioning Policies](https://developer.sailpoint.com/idn/docs/transforms/guides/transforms-in-provisioning-policies) for more information. A token with API, ORG_ADMIN, SOURCE_ADMIN, or SOURCE_SUBADMIN authority is required to call this API. + * @summary Update Provisioning Policy by UsageType + * @param {string} sourceId The Source ID. + * @param {UsageTypeBeta} usageType The type of provisioning policy usage. In IdentityNow, a source can support various provisioning operations. For example, when a joiner is added to a source, this may trigger both CREATE and UPDATE provisioning operations. Each usage type is considered a provisioning policy. A source can have any number of these provisioning policies defined. These are the common usage types: CREATE - This usage type relates to \'Create Account Profile\', the provisioning template for the account to be created. For example, this would be used for a joiner on a source. UPDATE - This usage type relates to \'Update Account Profile\', the provisioning template for the \'Update\' connector operations. For example, this would be used for an attribute sync on a source. ENABLE - This usage type relates to \'Enable Account Profile\', the provisioning template for the account to be enabled. For example, this could be used for a joiner on a source once the joiner\'s account is created. DISABLE - This usage type relates to \'Disable Account Profile\', the provisioning template for the account to be disabled. For example, this could be used when a leaver is removed temporarily from a source. You can use these four usage types for all your provisioning policy needs. + * @param {ProvisioningPolicyDtoBeta} provisioningPolicyDtoBeta + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + putProvisioningPolicy: function (sourceId, usageType, provisioningPolicyDtoBeta, axiosOptions) { + return localVarFp.putProvisioningPolicy(sourceId, usageType, provisioningPolicyDtoBeta, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This API updates a source in IdentityNow, using a full object representation. In other words, the existing Source configuration is completely replaced. Some fields are immutable and cannot be changed, such as: * id * type * authoritative * connector * connectorClass * passwordPolicies Attempts to modify these fields will result in a 400 error. A token with ORG_ADMIN, SOURCE_ADMIN, or SOURCE_SUBADMIN authority is required to call this API. + * @summary Update Source (Full) + * @param {string} id The Source id + * @param {SourceBeta} sourceBeta + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + putSource: function (id, sourceBeta, axiosOptions) { + return localVarFp.putSource(id, sourceBeta, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * Replaces the attribute synchronization configuration for the source specified by the given ID with the configuration provided in the request body. Only the \"enabled\" field of the values in the \"attributes\" array is mutable. Attempting to change other attributes or add new values to the \"attributes\" array will result in an error. A token with ORG_ADMIN authority is required to call this API. + * @summary Update Attribute Sync Config + * @param {string} id The source id + * @param {AttrSyncSourceConfigBeta} attrSyncSourceConfigBeta + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + putSourceAttrSyncConfig: function (id, attrSyncSourceConfigBeta, axiosOptions) { + return localVarFp.putSourceAttrSyncConfig(id, attrSyncSourceConfigBeta, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This API will completely replace an existing Schema with the submitted payload. Some fields of the Schema cannot be updated. These fields are listed below. * id * name * created * modified Any attempt to modify these fields will result in an error response with a status code of 400. + * @summary Update Source Schema (Full) + * @param {string} sourceId The Source ID. + * @param {string} schemaId The Schema ID. + * @param {SchemaBeta} schemaBeta + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + putSourceSchema: function (sourceId, schemaId, schemaBeta, axiosOptions) { + return localVarFp.putSourceSchema(sourceId, schemaId, schemaBeta, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This end-point performs attribute synchronization for a selected source. A token with ORG_ADMIN or SOURCE_ADMIN authority is required to call this API. + * @summary Synchronize single source attributes. + * @param {string} id The Source id + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + syncAttributesForSource: function (id, axiosOptions) { + return localVarFp.syncAttributesForSource(id, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This endpoint performs a more detailed validation of the source\'s configuration that can take longer than the lighter weight credential validation performed by the checkConnection API. A token with ORG_ADMIN authority is required to call this API. + * @summary Test configuration for source connector + * @param {string} sourceId The ID of the Source + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + testSourceConfiguration: function (sourceId, axiosOptions) { + return localVarFp.testSourceConfiguration(sourceId, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This endpoint validates that the configured credentials are valid and will properly authenticate with the source identified by the sourceId path parameter. A token with ORG_ADMIN authority is required to call this API. + * @summary Check connection for source connector. + * @param {string} sourceId The ID of the Source. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + testSourceConnection: function (sourceId, axiosOptions) { + return localVarFp.testSourceConnection(sourceId, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This end-point updates a list of provisioning policies on the specified source in IdentityNow. A token with API, or ORG_ADMIN authority is required to call this API. + * @summary Bulk Update Provisioning Policies + * @param {string} sourceId The Source id. + * @param {Array} provisioningPolicyDtoBeta + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + updateProvisioningPoliciesInBulk: function (sourceId, provisioningPolicyDtoBeta, axiosOptions) { + return localVarFp.updateProvisioningPoliciesInBulk(sourceId, provisioningPolicyDtoBeta, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This API selectively updates an existing Provisioning Policy using a JSONPatch payload. Transforms can be used in the provisioning policy to create a new attribute that you only need during provisioning. Refer to [Transforms in Provisioning Policies](https://developer.sailpoint.com/idn/docs/transforms/guides/transforms-in-provisioning-policies) for more information. A token with API, ORG_ADMIN, SOURCE_ADMIN, or SOURCE_SUBADMIN authority is required to call this API. + * @summary Partial update of Provisioning Policy + * @param {string} sourceId The Source id. + * @param {UsageTypeBeta} usageType The type of provisioning policy usage. In IdentityNow, a source can support various provisioning operations. For example, when a joiner is added to a source, this may trigger both CREATE and UPDATE provisioning operations. Each usage type is considered a provisioning policy. A source can have any number of these provisioning policies defined. These are the common usage types: CREATE - This usage type relates to \'Create Account Profile\', the provisioning template for the account to be created. For example, this would be used for a joiner on a source. UPDATE - This usage type relates to \'Update Account Profile\', the provisioning template for the \'Update\' connector operations. For example, this would be used for an attribute sync on a source. ENABLE - This usage type relates to \'Enable Account Profile\', the provisioning template for the account to be enabled. For example, this could be used for a joiner on a source once the joiner\'s account is created. DISABLE - This usage type relates to \'Disable Account Profile\', the provisioning template for the account to be disabled. For example, this could be used when a leaver is removed temporarily from a source. You can use these four usage types for all your provisioning policy needs. + * @param {Array} jsonPatchOperationBeta The JSONPatch payload used to update the schema. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + updateProvisioningPolicy: function (sourceId, usageType, jsonPatchOperationBeta, axiosOptions) { + return localVarFp.updateProvisioningPolicy(sourceId, usageType, jsonPatchOperationBeta, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This API partially updates a source in IdentityNow, using a list of patch operations according to the [JSON Patch](https://tools.ietf.org/html/rfc6902) standard. Some fields are immutable and cannot be changed, such as: * id * type * authoritative * created * modified * connector * connectorClass * passwordPolicies Attempts to modify these fields will result in a 400 error. A token with ORG_ADMIN, SOURCE_ADMIN, SOURCE_SUBADMIN, or API authority is required to call this API. + * @summary Update Source (Partial) + * @param {string} id The Source id + * @param {Array} jsonPatchOperationBeta A list of account update operations according to the [JSON Patch](https://tools.ietf.org/html/rfc6902) standard. Any password changes are submitted as plain-text and encrypted upon receipt in IdentityNow. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + updateSource: function (id, jsonPatchOperationBeta, axiosOptions) { + return localVarFp.updateSource(id, jsonPatchOperationBeta, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This API replaces the current entitlement request configuration for a source. This source-level configuration should apply for all the entitlements in the source. Access request to any entitlements in the source should follow this configuration unless a separate entitlement-level configuration is defined. - During access request, this source-level entitlement request configuration overrides the global organization-level configuration. - However, the entitlement-level configuration (if defined) overrides this source-level configuration. A token with ORG_ADMIN, SOURCE_ADMIN, or SOURCE_SUBADMIN authority is required to call this API. + * @summary Update Source Entitlement Request Configuration + * @param {SourceEntitlementRequestConfigBeta} sourceEntitlementRequestConfigBeta + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + updateSourceEntitlementRequestConfig: function (sourceEntitlementRequestConfigBeta, axiosOptions) { + return localVarFp.updateSourceEntitlementRequestConfig(sourceEntitlementRequestConfigBeta, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * Use this API to selectively update an existing Schema using a JSONPatch payload. The following schema fields are immutable and cannot be updated: - id - name - created - modified To switch an account attribute to a group entitlement, you need to have the following in place: - `isEntitlement: true` - Must define a schema for the group and [add it to the source](https://developer.sailpoint.com/idn/api/beta/create-source-schema) before updating the `isGroup` flag. For example, here is the `group` account attribute referencing a schema that defines the group: ```json { \"name\": \"groups\", \"type\": \"STRING\", \"schema\": { \"type\": \"CONNECTOR_SCHEMA\", \"id\": \"2c9180887671ff8c01767b4671fc7d60\", \"name\": \"group\" }, \"description\": \"The groups, roles etc. that reference account group objects\", \"isMulti\": true, \"isEntitlement\": true, \"isGroup\": true } ``` + * @summary Update Source Schema (Partial) + * @param {string} sourceId The Source id. + * @param {string} schemaId The Schema id. + * @param {Array} jsonPatchOperationBeta The JSONPatch payload used to update the schema. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + updateSourceSchema: function (sourceId, schemaId, jsonPatchOperationBeta, axiosOptions) { + return localVarFp.updateSourceSchema(sourceId, schemaId, jsonPatchOperationBeta, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + }; + }; + exports.SourcesBetaApiFactory = SourcesBetaApiFactory; + /** + * SourcesBetaApi - object-oriented interface + * @export + * @class SourcesBetaApi + * @extends {BaseAPI} + */ + var SourcesBetaApi = /** @class */ (function (_super) { + __extends(SourcesBetaApi, _super); + function SourcesBetaApi() { + return _super !== null && _super.apply(this, arguments) || this; + } + /** + * This end-point deletes a specific source in IdentityNow. A token with ORG_ADMIN, SOURCE_ADMIN, or SOURCE_SUBADMIN authority is required to call this API. All of accounts on the source will be removed first, then the source will be deleted. Actual status of task execution can be retrieved via method GET `/task-status/{id}` + * @summary Delete Source by ID + * @param {SourcesBetaApiDeleteRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof SourcesBetaApi + */ + SourcesBetaApi.prototype._delete = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.SourcesBetaApiFp)(this.configuration)._delete(requestParameters.id, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This API generates a create policy/template based on field value transforms. This API is intended for use when setting up JDBC Provisioning type sources, but it will also work on other source types. Transforms can be used in the provisioning policy to create a new attribute that you only need during provisioning. Refer to [Transforms in Provisioning Policies](https://developer.sailpoint.com/idn/docs/transforms/guides/transforms-in-provisioning-policies) for more information. A token with ORG_ADMIN authority is required to call this API. + * @summary Create Provisioning Policy + * @param {SourcesBetaApiCreateProvisioningPolicyRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof SourcesBetaApi + */ + SourcesBetaApi.prototype.createProvisioningPolicy = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.SourcesBetaApiFp)(this.configuration).createProvisioningPolicy(requestParameters.sourceId, requestParameters.provisioningPolicyDtoBeta, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This creates a specific source with a full source JSON representation. Any passwords are submitted as plain-text and encrypted upon receipt in IdentityNow. A token with ORG_ADMIN, SOURCE_ADMIN, or SOURCE_SUBADMIN authority is required to call this API. + * @summary Creates a source in IdentityNow. + * @param {SourcesBetaApiCreateSourceRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof SourcesBetaApi + */ + SourcesBetaApi.prototype.createSource = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.SourcesBetaApiFp)(this.configuration).createSource(requestParameters.sourceBeta, requestParameters.provisionAsCsv, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * + * @summary Creates a new Schema on the specified Source in IdentityNow. + * @param {SourcesBetaApiCreateSourceSchemaRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof SourcesBetaApi + */ + SourcesBetaApi.prototype.createSourceSchema = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.SourcesBetaApiFp)(this.configuration).createSourceSchema(requestParameters.sourceId, requestParameters.schemaBeta, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * Deletes the native change detection configuration for the source specified by the given ID. A token with API, or ORG_ADMIN authority is required to call this API. + * @summary Delete Native Change Detection Configuration + * @param {SourcesBetaApiDeleteNativeChangeDetectionConfigRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof SourcesBetaApi + */ + SourcesBetaApi.prototype.deleteNativeChangeDetectionConfig = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.SourcesBetaApiFp)(this.configuration).deleteNativeChangeDetectionConfig(requestParameters.id, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * Deletes the provisioning policy with the specified usage on an application. A token with API, or ORG_ADMIN authority is required to call this API. + * @summary Delete Provisioning Policy by UsageType + * @param {SourcesBetaApiDeleteProvisioningPolicyRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof SourcesBetaApi + */ + SourcesBetaApi.prototype.deleteProvisioningPolicy = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.SourcesBetaApiFp)(this.configuration).deleteProvisioningPolicy(requestParameters.sourceId, requestParameters.usageType, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * + * @summary Delete Source Schema by ID + * @param {SourcesBetaApiDeleteSourceSchemaRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof SourcesBetaApi + */ + SourcesBetaApi.prototype.deleteSourceSchema = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.SourcesBetaApiFp)(this.configuration).deleteSourceSchema(requestParameters.sourceId, requestParameters.schemaId, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This API returns the existing native change detection configuration for a source specified by the given ID. A token with ORG_ADMIN authority is required to call this API. + * @summary Native Change Detection Configuration + * @param {SourcesBetaApiGetNativeChangeDetectionConfigRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof SourcesBetaApi + */ + SourcesBetaApi.prototype.getNativeChangeDetectionConfig = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.SourcesBetaApiFp)(this.configuration).getNativeChangeDetectionConfig(requestParameters.id, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This end-point retrieves the ProvisioningPolicy with the specified usage on the specified Source in IdentityNow. A token with API, ORG_ADMIN, SOURCE_ADMIN, or SOURCE_SUBADMIN authority is required to call this API. + * @summary Get Provisioning Policy by UsageType + * @param {SourcesBetaApiGetProvisioningPolicyRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof SourcesBetaApi + */ + SourcesBetaApi.prototype.getProvisioningPolicy = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.SourcesBetaApiFp)(this.configuration).getProvisioningPolicy(requestParameters.sourceId, requestParameters.usageType, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This end-point gets a specific source in IdentityNow. A token with ORG_ADMIN, SOURCE_ADMIN, or SOURCE_SUBADMIN authority is required to call this API. + * @summary Get Source by ID + * @param {SourcesBetaApiGetSourceRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof SourcesBetaApi + */ + SourcesBetaApi.prototype.getSource = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.SourcesBetaApiFp)(this.configuration).getSource(requestParameters.id, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * + * @summary Downloads source accounts schema template + * @param {SourcesBetaApiGetSourceAccountsSchemaRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof SourcesBetaApi + */ + SourcesBetaApi.prototype.getSourceAccountsSchema = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.SourcesBetaApiFp)(this.configuration).getSourceAccountsSchema(requestParameters.id, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This API returns the existing attribute synchronization configuration for a source specified by the given ID. The response contains all attributes, regardless of whether they enabled or not. A token with ORG_ADMIN authority is required to call this API. + * @summary Attribute Sync Config + * @param {SourcesBetaApiGetSourceAttrSyncConfigRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof SourcesBetaApi + */ + SourcesBetaApi.prototype.getSourceAttrSyncConfig = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.SourcesBetaApiFp)(this.configuration).getSourceAttrSyncConfig(requestParameters.id, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * Looks up and returns the source config for the requested source id after populating the source config values and applying language translations. A token with ORG_ADMIN authority is required to call this API. + * @summary Gets source config with language translations + * @param {SourcesBetaApiGetSourceConfigRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof SourcesBetaApi + */ + SourcesBetaApi.prototype.getSourceConfig = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.SourcesBetaApiFp)(this.configuration).getSourceConfig(requestParameters.id, requestParameters.locale, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This API gets the current entitlement request configuration for a source. This source-level configuration should apply for all the entitlements in the source. Access request to any entitlements in the source should follow this configuration unless a separate entitlement-level configuration is defined. - During access request, this source-level entitlement request configuration overrides the global organization-level configuration. - However, the entitlement-level configuration (if defined) overrides this source-level configuration. A token with ORG_ADMIN, SOURCE_ADMIN, or SOURCE_SUBADMIN authority is required to call this API. + * @summary Get Source Entitlement Request Configuration + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof SourcesBetaApi + */ + SourcesBetaApi.prototype.getSourceEntitlementRequestConfig = function (axiosOptions) { + var _this = this; + return (0, exports.SourcesBetaApiFp)(this.configuration).getSourceEntitlementRequestConfig(axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * + * @summary Downloads source entitlements schema template + * @param {SourcesBetaApiGetSourceEntitlementsSchemaRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof SourcesBetaApi + */ + SourcesBetaApi.prototype.getSourceEntitlementsSchema = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.SourcesBetaApiFp)(this.configuration).getSourceEntitlementsSchema(requestParameters.id, requestParameters.schemaName, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * Get the Source Schema by ID in IdentityNow. + * @summary Get Source Schema by ID + * @param {SourcesBetaApiGetSourceSchemaRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof SourcesBetaApi + */ + SourcesBetaApi.prototype.getSourceSchema = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.SourcesBetaApiFp)(this.configuration).getSourceSchema(requestParameters.sourceId, requestParameters.schemaId, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This API uploads a source schema template file to configure a source\'s account attributes. + * @summary Uploads source accounts schema template + * @param {SourcesBetaApiImportSourceAccountsSchemaRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof SourcesBetaApi + */ + SourcesBetaApi.prototype.importSourceAccountsSchema = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.SourcesBetaApiFp)(this.configuration).importSourceAccountsSchema(requestParameters.id, requestParameters.file, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This uploads a supplemental source connector file (like jdbc driver jars) to a source\'s S3 bucket. This also sends ETS and Audit events. A token with ORG_ADMIN authority is required to call this API. + * @summary Upload connector file to source + * @param {SourcesBetaApiImportSourceConnectorFileRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof SourcesBetaApi + */ + SourcesBetaApi.prototype.importSourceConnectorFile = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.SourcesBetaApiFp)(this.configuration).importSourceConnectorFile(requestParameters.sourceId, requestParameters.file, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This API uploads a source schema template file to configure a source\'s entitlement attributes. + * @summary Uploads source entitlements schema template + * @param {SourcesBetaApiImportSourceEntitlementsSchemaRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof SourcesBetaApi + */ + SourcesBetaApi.prototype.importSourceEntitlementsSchema = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.SourcesBetaApiFp)(this.configuration).importSourceEntitlementsSchema(requestParameters.id, requestParameters.schemaName, requestParameters.file, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This end-point lists all the ProvisioningPolicies in IdentityNow. A token with API, or ORG_ADMIN authority is required to call this API. + * @summary Lists ProvisioningPolicies + * @param {SourcesBetaApiListProvisioningPoliciesRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof SourcesBetaApi + */ + SourcesBetaApi.prototype.listProvisioningPolicies = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.SourcesBetaApiFp)(this.configuration).listProvisioningPolicies(requestParameters.sourceId, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * + * @summary Lists the Schemas that exist on the specified Source in IdentityNow. + * @param {SourcesBetaApiListSourceSchemasRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof SourcesBetaApi + */ + SourcesBetaApi.prototype.listSourceSchemas = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.SourcesBetaApiFp)(this.configuration).listSourceSchemas(requestParameters.sourceId, requestParameters.includeTypes, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This end-point lists all the sources in IdentityNow. A token with ORG_ADMIN, SOURCE_ADMIN, SOURCE_SUBADMIN, or ROLE_SUBADMIN authority is required to call this API. + * @summary Lists all sources in IdentityNow. + * @param {SourcesBetaApiListSourcesRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof SourcesBetaApi + */ + SourcesBetaApi.prototype.listSources = function (requestParameters, axiosOptions) { + var _this = this; + if (requestParameters === void 0) { requestParameters = {}; } + return (0, exports.SourcesBetaApiFp)(this.configuration).listSources(requestParameters.limit, requestParameters.offset, requestParameters.count, requestParameters.filters, requestParameters.sorters, requestParameters.forSubadmin, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * Retrieves a sample of data returned from account and group aggregation requests. A token with ORG_ADMIN authority is required to call this API. + * @summary Peek source connector\'s resource objects + * @param {SourcesBetaApiPeekResourceObjectsRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof SourcesBetaApi + */ + SourcesBetaApi.prototype.peekResourceObjects = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.SourcesBetaApiFp)(this.configuration).peekResourceObjects(requestParameters.sourceId, requestParameters.resourceObjectsRequestBeta, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This endpoint validates that the cluster being used by the source is reachable from IdentityNow. A token with ORG_ADMIN authority is required to call this API. + * @summary Ping cluster for source connector + * @param {SourcesBetaApiPingClusterRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof SourcesBetaApi + */ + SourcesBetaApi.prototype.pingCluster = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.SourcesBetaApiFp)(this.configuration).pingCluster(requestParameters.sourceId, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * Replaces the native change detection configuration for the source specified by the given ID with the configuration provided in the request body. A token with ORG_ADMIN authority is required to call this API. + * @summary Update Native Change Detection Configuration + * @param {SourcesBetaApiPutNativeChangeDetectionConfigRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof SourcesBetaApi + */ + SourcesBetaApi.prototype.putNativeChangeDetectionConfig = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.SourcesBetaApiFp)(this.configuration).putNativeChangeDetectionConfig(requestParameters.id, requestParameters.nativeChangeDetectionConfigBeta, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This end-point updates the provisioning policy with the specified usage on the specified source in IdentityNow. Transforms can be used in the provisioning policy to create a new attribute that you only need during provisioning. Refer to [Transforms in Provisioning Policies](https://developer.sailpoint.com/idn/docs/transforms/guides/transforms-in-provisioning-policies) for more information. A token with API, ORG_ADMIN, SOURCE_ADMIN, or SOURCE_SUBADMIN authority is required to call this API. + * @summary Update Provisioning Policy by UsageType + * @param {SourcesBetaApiPutProvisioningPolicyRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof SourcesBetaApi + */ + SourcesBetaApi.prototype.putProvisioningPolicy = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.SourcesBetaApiFp)(this.configuration).putProvisioningPolicy(requestParameters.sourceId, requestParameters.usageType, requestParameters.provisioningPolicyDtoBeta, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This API updates a source in IdentityNow, using a full object representation. In other words, the existing Source configuration is completely replaced. Some fields are immutable and cannot be changed, such as: * id * type * authoritative * connector * connectorClass * passwordPolicies Attempts to modify these fields will result in a 400 error. A token with ORG_ADMIN, SOURCE_ADMIN, or SOURCE_SUBADMIN authority is required to call this API. + * @summary Update Source (Full) + * @param {SourcesBetaApiPutSourceRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof SourcesBetaApi + */ + SourcesBetaApi.prototype.putSource = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.SourcesBetaApiFp)(this.configuration).putSource(requestParameters.id, requestParameters.sourceBeta, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * Replaces the attribute synchronization configuration for the source specified by the given ID with the configuration provided in the request body. Only the \"enabled\" field of the values in the \"attributes\" array is mutable. Attempting to change other attributes or add new values to the \"attributes\" array will result in an error. A token with ORG_ADMIN authority is required to call this API. + * @summary Update Attribute Sync Config + * @param {SourcesBetaApiPutSourceAttrSyncConfigRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof SourcesBetaApi + */ + SourcesBetaApi.prototype.putSourceAttrSyncConfig = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.SourcesBetaApiFp)(this.configuration).putSourceAttrSyncConfig(requestParameters.id, requestParameters.attrSyncSourceConfigBeta, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This API will completely replace an existing Schema with the submitted payload. Some fields of the Schema cannot be updated. These fields are listed below. * id * name * created * modified Any attempt to modify these fields will result in an error response with a status code of 400. + * @summary Update Source Schema (Full) + * @param {SourcesBetaApiPutSourceSchemaRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof SourcesBetaApi + */ + SourcesBetaApi.prototype.putSourceSchema = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.SourcesBetaApiFp)(this.configuration).putSourceSchema(requestParameters.sourceId, requestParameters.schemaId, requestParameters.schemaBeta, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This end-point performs attribute synchronization for a selected source. A token with ORG_ADMIN or SOURCE_ADMIN authority is required to call this API. + * @summary Synchronize single source attributes. + * @param {SourcesBetaApiSyncAttributesForSourceRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof SourcesBetaApi + */ + SourcesBetaApi.prototype.syncAttributesForSource = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.SourcesBetaApiFp)(this.configuration).syncAttributesForSource(requestParameters.id, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This endpoint performs a more detailed validation of the source\'s configuration that can take longer than the lighter weight credential validation performed by the checkConnection API. A token with ORG_ADMIN authority is required to call this API. + * @summary Test configuration for source connector + * @param {SourcesBetaApiTestSourceConfigurationRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof SourcesBetaApi + */ + SourcesBetaApi.prototype.testSourceConfiguration = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.SourcesBetaApiFp)(this.configuration).testSourceConfiguration(requestParameters.sourceId, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This endpoint validates that the configured credentials are valid and will properly authenticate with the source identified by the sourceId path parameter. A token with ORG_ADMIN authority is required to call this API. + * @summary Check connection for source connector. + * @param {SourcesBetaApiTestSourceConnectionRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof SourcesBetaApi + */ + SourcesBetaApi.prototype.testSourceConnection = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.SourcesBetaApiFp)(this.configuration).testSourceConnection(requestParameters.sourceId, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This end-point updates a list of provisioning policies on the specified source in IdentityNow. A token with API, or ORG_ADMIN authority is required to call this API. + * @summary Bulk Update Provisioning Policies + * @param {SourcesBetaApiUpdateProvisioningPoliciesInBulkRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof SourcesBetaApi + */ + SourcesBetaApi.prototype.updateProvisioningPoliciesInBulk = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.SourcesBetaApiFp)(this.configuration).updateProvisioningPoliciesInBulk(requestParameters.sourceId, requestParameters.provisioningPolicyDtoBeta, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This API selectively updates an existing Provisioning Policy using a JSONPatch payload. Transforms can be used in the provisioning policy to create a new attribute that you only need during provisioning. Refer to [Transforms in Provisioning Policies](https://developer.sailpoint.com/idn/docs/transforms/guides/transforms-in-provisioning-policies) for more information. A token with API, ORG_ADMIN, SOURCE_ADMIN, or SOURCE_SUBADMIN authority is required to call this API. + * @summary Partial update of Provisioning Policy + * @param {SourcesBetaApiUpdateProvisioningPolicyRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof SourcesBetaApi + */ + SourcesBetaApi.prototype.updateProvisioningPolicy = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.SourcesBetaApiFp)(this.configuration).updateProvisioningPolicy(requestParameters.sourceId, requestParameters.usageType, requestParameters.jsonPatchOperationBeta, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This API partially updates a source in IdentityNow, using a list of patch operations according to the [JSON Patch](https://tools.ietf.org/html/rfc6902) standard. Some fields are immutable and cannot be changed, such as: * id * type * authoritative * created * modified * connector * connectorClass * passwordPolicies Attempts to modify these fields will result in a 400 error. A token with ORG_ADMIN, SOURCE_ADMIN, SOURCE_SUBADMIN, or API authority is required to call this API. + * @summary Update Source (Partial) + * @param {SourcesBetaApiUpdateSourceRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof SourcesBetaApi + */ + SourcesBetaApi.prototype.updateSource = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.SourcesBetaApiFp)(this.configuration).updateSource(requestParameters.id, requestParameters.jsonPatchOperationBeta, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This API replaces the current entitlement request configuration for a source. This source-level configuration should apply for all the entitlements in the source. Access request to any entitlements in the source should follow this configuration unless a separate entitlement-level configuration is defined. - During access request, this source-level entitlement request configuration overrides the global organization-level configuration. - However, the entitlement-level configuration (if defined) overrides this source-level configuration. A token with ORG_ADMIN, SOURCE_ADMIN, or SOURCE_SUBADMIN authority is required to call this API. + * @summary Update Source Entitlement Request Configuration + * @param {SourcesBetaApiUpdateSourceEntitlementRequestConfigRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof SourcesBetaApi + */ + SourcesBetaApi.prototype.updateSourceEntitlementRequestConfig = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.SourcesBetaApiFp)(this.configuration).updateSourceEntitlementRequestConfig(requestParameters.sourceEntitlementRequestConfigBeta, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * Use this API to selectively update an existing Schema using a JSONPatch payload. The following schema fields are immutable and cannot be updated: - id - name - created - modified To switch an account attribute to a group entitlement, you need to have the following in place: - `isEntitlement: true` - Must define a schema for the group and [add it to the source](https://developer.sailpoint.com/idn/api/beta/create-source-schema) before updating the `isGroup` flag. For example, here is the `group` account attribute referencing a schema that defines the group: ```json { \"name\": \"groups\", \"type\": \"STRING\", \"schema\": { \"type\": \"CONNECTOR_SCHEMA\", \"id\": \"2c9180887671ff8c01767b4671fc7d60\", \"name\": \"group\" }, \"description\": \"The groups, roles etc. that reference account group objects\", \"isMulti\": true, \"isEntitlement\": true, \"isGroup\": true } ``` + * @summary Update Source Schema (Partial) + * @param {SourcesBetaApiUpdateSourceSchemaRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof SourcesBetaApi + */ + SourcesBetaApi.prototype.updateSourceSchema = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.SourcesBetaApiFp)(this.configuration).updateSourceSchema(requestParameters.sourceId, requestParameters.schemaId, requestParameters.jsonPatchOperationBeta, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + return SourcesBetaApi; + }(base_1.BaseAPI)); + exports.SourcesBetaApi = SourcesBetaApi; + /** + * TaggedObjectsBetaApi - axios parameter creator + * @export + */ + var TaggedObjectsBetaApiAxiosParamCreator = function (configuration) { + var _this = this; + return { + /** + * This deletes a tagged object for the specified type. + * @summary Delete Tagged Object + * @param {'ACCESS_PROFILE' | 'APPLICATION' | 'CAMPAIGN' | 'ENTITLEMENT' | 'IDENTITY' | 'ROLE' | 'SOD_POLICY' | 'SOURCE'} type The type of tagged object to delete. + * @param {string} id The ID of the object reference to delete. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + deleteTaggedObject: function (type, id, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'type' is not null or undefined + (0, common_1.assertParamExists)('deleteTaggedObject', 'type', type); + // verify required parameter 'id' is not null or undefined + (0, common_1.assertParamExists)('deleteTaggedObject', 'id', id); + localVarPath = "/tagged-objects/{type}/{id}" + .replace("{".concat("type", "}"), encodeURIComponent(String(type))) + .replace("{".concat("id", "}"), encodeURIComponent(String(id))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'DELETE' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This API removes tags from multiple objects. A token with API, CERT_ADMIN, ORG_ADMIN, REPORT_ADMIN, ROLE_ADMIN, ROLE_SUBADMIN, SOURCE_ADMIN, or SOURCE_SUBADMIN authority is required to call this API. + * @summary Remove Tags from Multiple Objects + * @param {BulkTaggedObjectBeta} bulkTaggedObjectBeta Supported object types are ACCESS_PROFILE, APPLICATION, CAMPAIGN, ENTITLEMENT, IDENTITY, ROLE, SOD_POLICY, SOURCE. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + deleteTagsToManyObject: function (bulkTaggedObjectBeta, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'bulkTaggedObjectBeta' is not null or undefined + (0, common_1.assertParamExists)('deleteTagsToManyObject', 'bulkTaggedObjectBeta', bulkTaggedObjectBeta); + localVarPath = "/tagged-objects/bulk-remove"; + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + localVarHeaderParameter['Content-Type'] = 'application/json'; + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(bulkTaggedObjectBeta, localVarRequestOptions, configuration); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This gets a tagged object for the specified type. + * @summary Get Tagged Object + * @param {'ACCESS_PROFILE' | 'APPLICATION' | 'CAMPAIGN' | 'ENTITLEMENT' | 'IDENTITY' | 'ROLE' | 'SOD_POLICY' | 'SOURCE'} type The type of tagged object to retrieve. + * @param {string} id The ID of the object reference to retrieve. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getTaggedObject: function (type, id, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'type' is not null or undefined + (0, common_1.assertParamExists)('getTaggedObject', 'type', type); + // verify required parameter 'id' is not null or undefined + (0, common_1.assertParamExists)('getTaggedObject', 'id', id); + localVarPath = "/tagged-objects/{type}/{id}" + .replace("{".concat("type", "}"), encodeURIComponent(String(type))) + .replace("{".concat("id", "}"), encodeURIComponent(String(id))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This API returns a list of all tagged objects. Any authenticated token may be used to call this API. + * @summary List Tagged Objects + * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **objectRef.id**: *eq, in* **objectRef.type**: *eq, in* **tagName**: *eq, in* + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + listTaggedObjects: function (limit, offset, count, filters, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + localVarPath = "/tagged-objects"; + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + if (limit !== undefined) { + localVarQueryParameter['limit'] = limit; + } + if (offset !== undefined) { + localVarQueryParameter['offset'] = offset; + } + if (count !== undefined) { + localVarQueryParameter['count'] = count; + } + if (filters !== undefined) { + localVarQueryParameter['filters'] = filters; + } + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This API returns a list of all tagged objects by type. Any authenticated token may be used to call this API. + * @summary List Tagged Objects + * @param {'ROLE' | 'IDENTITY' | 'SOD_POLICY'} type The type of tagged object to retrieve. + * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **objectRef.id**: *eq* **objectRef.type**: *eq* + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + listTaggedObjectsByType: function (type, limit, offset, count, filters, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'type' is not null or undefined + (0, common_1.assertParamExists)('listTaggedObjectsByType', 'type', type); + localVarPath = "/tagged-objects/{type}" + .replace("{".concat("type", "}"), encodeURIComponent(String(type))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + if (limit !== undefined) { + localVarQueryParameter['limit'] = limit; + } + if (offset !== undefined) { + localVarQueryParameter['offset'] = offset; + } + if (count !== undefined) { + localVarQueryParameter['count'] = count; + } + if (filters !== undefined) { + localVarQueryParameter['filters'] = filters; + } + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This updates a tagged object for the specified type. + * @summary Update Tagged Object + * @param {'ACCESS_PROFILE' | 'APPLICATION' | 'CAMPAIGN' | 'ENTITLEMENT' | 'IDENTITY' | 'ROLE' | 'SOD_POLICY' | 'SOURCE'} type The type of tagged object to update. + * @param {string} id The ID of the object reference to update. + * @param {TaggedObjectBeta} taggedObjectBeta + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + putTaggedObject: function (type, id, taggedObjectBeta, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'type' is not null or undefined + (0, common_1.assertParamExists)('putTaggedObject', 'type', type); + // verify required parameter 'id' is not null or undefined + (0, common_1.assertParamExists)('putTaggedObject', 'id', id); + // verify required parameter 'taggedObjectBeta' is not null or undefined + (0, common_1.assertParamExists)('putTaggedObject', 'taggedObjectBeta', taggedObjectBeta); + localVarPath = "/tagged-objects/{type}/{id}" + .replace("{".concat("type", "}"), encodeURIComponent(String(type))) + .replace("{".concat("id", "}"), encodeURIComponent(String(id))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'PUT' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + localVarHeaderParameter['Content-Type'] = 'application/json'; + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(taggedObjectBeta, localVarRequestOptions, configuration); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This adds a tag to an object. Any authenticated token may be used to call this API. + * @summary Add Tag to Object + * @param {TaggedObjectBeta} taggedObjectBeta + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + setTagToObject: function (taggedObjectBeta, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'taggedObjectBeta' is not null or undefined + (0, common_1.assertParamExists)('setTagToObject', 'taggedObjectBeta', taggedObjectBeta); + localVarPath = "/tagged-objects"; + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + localVarHeaderParameter['Content-Type'] = 'application/json'; + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(taggedObjectBeta, localVarRequestOptions, configuration); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This API adds tags to multiple objects. A token with API, CERT_ADMIN, ORG_ADMIN, REPORT_ADMIN, ROLE_ADMIN, ROLE_SUBADMIN, SOURCE_ADMIN, or SOURCE_SUBADMIN authority is required to call this API. + * @summary Tag Multiple Objects + * @param {BulkTaggedObjectBeta} bulkTaggedObjectBeta Supported object types are ACCESS_PROFILE, APPLICATION, CAMPAIGN, ENTITLEMENT, IDENTITY, ROLE, SOD_POLICY, SOURCE. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + setTagsToManyObjects: function (bulkTaggedObjectBeta, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'bulkTaggedObjectBeta' is not null or undefined + (0, common_1.assertParamExists)('setTagsToManyObjects', 'bulkTaggedObjectBeta', bulkTaggedObjectBeta); + localVarPath = "/tagged-objects/bulk-add"; + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + localVarHeaderParameter['Content-Type'] = 'application/json'; + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(bulkTaggedObjectBeta, localVarRequestOptions, configuration); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + }; + }; + exports.TaggedObjectsBetaApiAxiosParamCreator = TaggedObjectsBetaApiAxiosParamCreator; + /** + * TaggedObjectsBetaApi - functional programming interface + * @export + */ + var TaggedObjectsBetaApiFp = function (configuration) { + var localVarAxiosParamCreator = (0, exports.TaggedObjectsBetaApiAxiosParamCreator)(configuration); + return { + /** + * This deletes a tagged object for the specified type. + * @summary Delete Tagged Object + * @param {'ACCESS_PROFILE' | 'APPLICATION' | 'CAMPAIGN' | 'ENTITLEMENT' | 'IDENTITY' | 'ROLE' | 'SOD_POLICY' | 'SOURCE'} type The type of tagged object to delete. + * @param {string} id The ID of the object reference to delete. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + deleteTaggedObject: function (type, id, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.deleteTaggedObject(type, id, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This API removes tags from multiple objects. A token with API, CERT_ADMIN, ORG_ADMIN, REPORT_ADMIN, ROLE_ADMIN, ROLE_SUBADMIN, SOURCE_ADMIN, or SOURCE_SUBADMIN authority is required to call this API. + * @summary Remove Tags from Multiple Objects + * @param {BulkTaggedObjectBeta} bulkTaggedObjectBeta Supported object types are ACCESS_PROFILE, APPLICATION, CAMPAIGN, ENTITLEMENT, IDENTITY, ROLE, SOD_POLICY, SOURCE. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + deleteTagsToManyObject: function (bulkTaggedObjectBeta, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.deleteTagsToManyObject(bulkTaggedObjectBeta, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This gets a tagged object for the specified type. + * @summary Get Tagged Object + * @param {'ACCESS_PROFILE' | 'APPLICATION' | 'CAMPAIGN' | 'ENTITLEMENT' | 'IDENTITY' | 'ROLE' | 'SOD_POLICY' | 'SOURCE'} type The type of tagged object to retrieve. + * @param {string} id The ID of the object reference to retrieve. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getTaggedObject: function (type, id, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.getTaggedObject(type, id, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This API returns a list of all tagged objects. Any authenticated token may be used to call this API. + * @summary List Tagged Objects + * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **objectRef.id**: *eq, in* **objectRef.type**: *eq, in* **tagName**: *eq, in* + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + listTaggedObjects: function (limit, offset, count, filters, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.listTaggedObjects(limit, offset, count, filters, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This API returns a list of all tagged objects by type. Any authenticated token may be used to call this API. + * @summary List Tagged Objects + * @param {'ROLE' | 'IDENTITY' | 'SOD_POLICY'} type The type of tagged object to retrieve. + * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **objectRef.id**: *eq* **objectRef.type**: *eq* + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + listTaggedObjectsByType: function (type, limit, offset, count, filters, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.listTaggedObjectsByType(type, limit, offset, count, filters, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This updates a tagged object for the specified type. + * @summary Update Tagged Object + * @param {'ACCESS_PROFILE' | 'APPLICATION' | 'CAMPAIGN' | 'ENTITLEMENT' | 'IDENTITY' | 'ROLE' | 'SOD_POLICY' | 'SOURCE'} type The type of tagged object to update. + * @param {string} id The ID of the object reference to update. + * @param {TaggedObjectBeta} taggedObjectBeta + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + putTaggedObject: function (type, id, taggedObjectBeta, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.putTaggedObject(type, id, taggedObjectBeta, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This adds a tag to an object. Any authenticated token may be used to call this API. + * @summary Add Tag to Object + * @param {TaggedObjectBeta} taggedObjectBeta + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + setTagToObject: function (taggedObjectBeta, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.setTagToObject(taggedObjectBeta, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This API adds tags to multiple objects. A token with API, CERT_ADMIN, ORG_ADMIN, REPORT_ADMIN, ROLE_ADMIN, ROLE_SUBADMIN, SOURCE_ADMIN, or SOURCE_SUBADMIN authority is required to call this API. + * @summary Tag Multiple Objects + * @param {BulkTaggedObjectBeta} bulkTaggedObjectBeta Supported object types are ACCESS_PROFILE, APPLICATION, CAMPAIGN, ENTITLEMENT, IDENTITY, ROLE, SOD_POLICY, SOURCE. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + setTagsToManyObjects: function (bulkTaggedObjectBeta, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.setTagsToManyObjects(bulkTaggedObjectBeta, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + }; + }; + exports.TaggedObjectsBetaApiFp = TaggedObjectsBetaApiFp; + /** + * TaggedObjectsBetaApi - factory interface + * @export + */ + var TaggedObjectsBetaApiFactory = function (configuration, basePath, axios) { + var localVarFp = (0, exports.TaggedObjectsBetaApiFp)(configuration); + return { + /** + * This deletes a tagged object for the specified type. + * @summary Delete Tagged Object + * @param {'ACCESS_PROFILE' | 'APPLICATION' | 'CAMPAIGN' | 'ENTITLEMENT' | 'IDENTITY' | 'ROLE' | 'SOD_POLICY' | 'SOURCE'} type The type of tagged object to delete. + * @param {string} id The ID of the object reference to delete. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + deleteTaggedObject: function (type, id, axiosOptions) { + return localVarFp.deleteTaggedObject(type, id, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This API removes tags from multiple objects. A token with API, CERT_ADMIN, ORG_ADMIN, REPORT_ADMIN, ROLE_ADMIN, ROLE_SUBADMIN, SOURCE_ADMIN, or SOURCE_SUBADMIN authority is required to call this API. + * @summary Remove Tags from Multiple Objects + * @param {BulkTaggedObjectBeta} bulkTaggedObjectBeta Supported object types are ACCESS_PROFILE, APPLICATION, CAMPAIGN, ENTITLEMENT, IDENTITY, ROLE, SOD_POLICY, SOURCE. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + deleteTagsToManyObject: function (bulkTaggedObjectBeta, axiosOptions) { + return localVarFp.deleteTagsToManyObject(bulkTaggedObjectBeta, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This gets a tagged object for the specified type. + * @summary Get Tagged Object + * @param {'ACCESS_PROFILE' | 'APPLICATION' | 'CAMPAIGN' | 'ENTITLEMENT' | 'IDENTITY' | 'ROLE' | 'SOD_POLICY' | 'SOURCE'} type The type of tagged object to retrieve. + * @param {string} id The ID of the object reference to retrieve. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getTaggedObject: function (type, id, axiosOptions) { + return localVarFp.getTaggedObject(type, id, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This API returns a list of all tagged objects. Any authenticated token may be used to call this API. + * @summary List Tagged Objects + * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **objectRef.id**: *eq, in* **objectRef.type**: *eq, in* **tagName**: *eq, in* + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + listTaggedObjects: function (limit, offset, count, filters, axiosOptions) { + return localVarFp.listTaggedObjects(limit, offset, count, filters, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This API returns a list of all tagged objects by type. Any authenticated token may be used to call this API. + * @summary List Tagged Objects + * @param {'ROLE' | 'IDENTITY' | 'SOD_POLICY'} type The type of tagged object to retrieve. + * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **objectRef.id**: *eq* **objectRef.type**: *eq* + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + listTaggedObjectsByType: function (type, limit, offset, count, filters, axiosOptions) { + return localVarFp.listTaggedObjectsByType(type, limit, offset, count, filters, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This updates a tagged object for the specified type. + * @summary Update Tagged Object + * @param {'ACCESS_PROFILE' | 'APPLICATION' | 'CAMPAIGN' | 'ENTITLEMENT' | 'IDENTITY' | 'ROLE' | 'SOD_POLICY' | 'SOURCE'} type The type of tagged object to update. + * @param {string} id The ID of the object reference to update. + * @param {TaggedObjectBeta} taggedObjectBeta + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + putTaggedObject: function (type, id, taggedObjectBeta, axiosOptions) { + return localVarFp.putTaggedObject(type, id, taggedObjectBeta, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This adds a tag to an object. Any authenticated token may be used to call this API. + * @summary Add Tag to Object + * @param {TaggedObjectBeta} taggedObjectBeta + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + setTagToObject: function (taggedObjectBeta, axiosOptions) { + return localVarFp.setTagToObject(taggedObjectBeta, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This API adds tags to multiple objects. A token with API, CERT_ADMIN, ORG_ADMIN, REPORT_ADMIN, ROLE_ADMIN, ROLE_SUBADMIN, SOURCE_ADMIN, or SOURCE_SUBADMIN authority is required to call this API. + * @summary Tag Multiple Objects + * @param {BulkTaggedObjectBeta} bulkTaggedObjectBeta Supported object types are ACCESS_PROFILE, APPLICATION, CAMPAIGN, ENTITLEMENT, IDENTITY, ROLE, SOD_POLICY, SOURCE. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + setTagsToManyObjects: function (bulkTaggedObjectBeta, axiosOptions) { + return localVarFp.setTagsToManyObjects(bulkTaggedObjectBeta, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + }; + }; + exports.TaggedObjectsBetaApiFactory = TaggedObjectsBetaApiFactory; + /** + * TaggedObjectsBetaApi - object-oriented interface + * @export + * @class TaggedObjectsBetaApi + * @extends {BaseAPI} + */ + var TaggedObjectsBetaApi = /** @class */ (function (_super) { + __extends(TaggedObjectsBetaApi, _super); + function TaggedObjectsBetaApi() { + return _super !== null && _super.apply(this, arguments) || this; + } + /** + * This deletes a tagged object for the specified type. + * @summary Delete Tagged Object + * @param {TaggedObjectsBetaApiDeleteTaggedObjectRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof TaggedObjectsBetaApi + */ + TaggedObjectsBetaApi.prototype.deleteTaggedObject = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.TaggedObjectsBetaApiFp)(this.configuration).deleteTaggedObject(requestParameters.type, requestParameters.id, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This API removes tags from multiple objects. A token with API, CERT_ADMIN, ORG_ADMIN, REPORT_ADMIN, ROLE_ADMIN, ROLE_SUBADMIN, SOURCE_ADMIN, or SOURCE_SUBADMIN authority is required to call this API. + * @summary Remove Tags from Multiple Objects + * @param {TaggedObjectsBetaApiDeleteTagsToManyObjectRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof TaggedObjectsBetaApi + */ + TaggedObjectsBetaApi.prototype.deleteTagsToManyObject = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.TaggedObjectsBetaApiFp)(this.configuration).deleteTagsToManyObject(requestParameters.bulkTaggedObjectBeta, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This gets a tagged object for the specified type. + * @summary Get Tagged Object + * @param {TaggedObjectsBetaApiGetTaggedObjectRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof TaggedObjectsBetaApi + */ + TaggedObjectsBetaApi.prototype.getTaggedObject = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.TaggedObjectsBetaApiFp)(this.configuration).getTaggedObject(requestParameters.type, requestParameters.id, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This API returns a list of all tagged objects. Any authenticated token may be used to call this API. + * @summary List Tagged Objects + * @param {TaggedObjectsBetaApiListTaggedObjectsRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof TaggedObjectsBetaApi + */ + TaggedObjectsBetaApi.prototype.listTaggedObjects = function (requestParameters, axiosOptions) { + var _this = this; + if (requestParameters === void 0) { requestParameters = {}; } + return (0, exports.TaggedObjectsBetaApiFp)(this.configuration).listTaggedObjects(requestParameters.limit, requestParameters.offset, requestParameters.count, requestParameters.filters, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This API returns a list of all tagged objects by type. Any authenticated token may be used to call this API. + * @summary List Tagged Objects + * @param {TaggedObjectsBetaApiListTaggedObjectsByTypeRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof TaggedObjectsBetaApi + */ + TaggedObjectsBetaApi.prototype.listTaggedObjectsByType = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.TaggedObjectsBetaApiFp)(this.configuration).listTaggedObjectsByType(requestParameters.type, requestParameters.limit, requestParameters.offset, requestParameters.count, requestParameters.filters, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This updates a tagged object for the specified type. + * @summary Update Tagged Object + * @param {TaggedObjectsBetaApiPutTaggedObjectRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof TaggedObjectsBetaApi + */ + TaggedObjectsBetaApi.prototype.putTaggedObject = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.TaggedObjectsBetaApiFp)(this.configuration).putTaggedObject(requestParameters.type, requestParameters.id, requestParameters.taggedObjectBeta, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This adds a tag to an object. Any authenticated token may be used to call this API. + * @summary Add Tag to Object + * @param {TaggedObjectsBetaApiSetTagToObjectRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof TaggedObjectsBetaApi + */ + TaggedObjectsBetaApi.prototype.setTagToObject = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.TaggedObjectsBetaApiFp)(this.configuration).setTagToObject(requestParameters.taggedObjectBeta, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This API adds tags to multiple objects. A token with API, CERT_ADMIN, ORG_ADMIN, REPORT_ADMIN, ROLE_ADMIN, ROLE_SUBADMIN, SOURCE_ADMIN, or SOURCE_SUBADMIN authority is required to call this API. + * @summary Tag Multiple Objects + * @param {TaggedObjectsBetaApiSetTagsToManyObjectsRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof TaggedObjectsBetaApi + */ + TaggedObjectsBetaApi.prototype.setTagsToManyObjects = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.TaggedObjectsBetaApiFp)(this.configuration).setTagsToManyObjects(requestParameters.bulkTaggedObjectBeta, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + return TaggedObjectsBetaApi; + }(base_1.BaseAPI)); + exports.TaggedObjectsBetaApi = TaggedObjectsBetaApi; + /** + * TaskManagementBetaApi - axios parameter creator + * @export + */ + var TaskManagementBetaApiAxiosParamCreator = function (configuration) { + var _this = this; + return { + /** + * Retrieve headers for a list of TaskStatus for pending tasks. + * @summary Retrieve headers only for pending task list. + * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getPendingTaskHeaders: function (offset, limit, count, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + localVarPath = "/task-status/pending-tasks"; + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'HEAD' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + if (offset !== undefined) { + localVarQueryParameter['offset'] = offset; + } + if (limit !== undefined) { + localVarQueryParameter['limit'] = limit; + } + if (count !== undefined) { + localVarQueryParameter['count'] = count; + } + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * Retrieve a list of TaskStatus for pending tasks. + * @summary Retrieve a pending task list. + * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getPendingTasks: function (offset, limit, count, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + localVarPath = "/task-status/pending-tasks"; + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + if (offset !== undefined) { + localVarQueryParameter['offset'] = offset; + } + if (limit !== undefined) { + localVarQueryParameter['limit'] = limit; + } + if (count !== undefined) { + localVarQueryParameter['count'] = count; + } + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * Get a TaskStatus for a task by task ID. + * @summary Get task status by ID. + * @param {string} id Task ID of the TaskStatus to get + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getTaskStatus: function (id, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'id' is not null or undefined + (0, common_1.assertParamExists)('getTaskStatus', 'id', id); + localVarPath = "/task-status/{id}" + .replace("{".concat("id", "}"), encodeURIComponent(String(id))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * Get a TaskStatus list. + * @summary Retrieve a task status list. + * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **id**: *eq, in* **sourceId**: *eq, in* **completionStatus**: *eq, in* **type**: *eq, in* + * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **created** + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getTaskStatusList: function (limit, offset, count, filters, sorters, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + localVarPath = "/task-status"; + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + if (limit !== undefined) { + localVarQueryParameter['limit'] = limit; + } + if (offset !== undefined) { + localVarQueryParameter['offset'] = offset; + } + if (count !== undefined) { + localVarQueryParameter['count'] = count; + } + if (filters !== undefined) { + localVarQueryParameter['filters'] = filters; + } + if (sorters !== undefined) { + localVarQueryParameter['sorters'] = sorters; + } + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * Update a current TaskStatus for a task by task ID. + * @summary Update task status by ID + * @param {string} id Task ID of the task whose TaskStatus to update + * @param {JsonPatchBeta} jsonPatchBeta + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + updateTaskStatus: function (id, jsonPatchBeta, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'id' is not null or undefined + (0, common_1.assertParamExists)('updateTaskStatus', 'id', id); + // verify required parameter 'jsonPatchBeta' is not null or undefined + (0, common_1.assertParamExists)('updateTaskStatus', 'jsonPatchBeta', jsonPatchBeta); + localVarPath = "/task-status/{id}" + .replace("{".concat("id", "}"), encodeURIComponent(String(id))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'PATCH' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + localVarHeaderParameter['Content-Type'] = 'application/json-patch+json'; + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(jsonPatchBeta, localVarRequestOptions, configuration); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + }; + }; + exports.TaskManagementBetaApiAxiosParamCreator = TaskManagementBetaApiAxiosParamCreator; + /** + * TaskManagementBetaApi - functional programming interface + * @export + */ + var TaskManagementBetaApiFp = function (configuration) { + var localVarAxiosParamCreator = (0, exports.TaskManagementBetaApiAxiosParamCreator)(configuration); + return { + /** + * Retrieve headers for a list of TaskStatus for pending tasks. + * @summary Retrieve headers only for pending task list. + * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getPendingTaskHeaders: function (offset, limit, count, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.getPendingTaskHeaders(offset, limit, count, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * Retrieve a list of TaskStatus for pending tasks. + * @summary Retrieve a pending task list. + * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getPendingTasks: function (offset, limit, count, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.getPendingTasks(offset, limit, count, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * Get a TaskStatus for a task by task ID. + * @summary Get task status by ID. + * @param {string} id Task ID of the TaskStatus to get + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getTaskStatus: function (id, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.getTaskStatus(id, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * Get a TaskStatus list. + * @summary Retrieve a task status list. + * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **id**: *eq, in* **sourceId**: *eq, in* **completionStatus**: *eq, in* **type**: *eq, in* + * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **created** + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getTaskStatusList: function (limit, offset, count, filters, sorters, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.getTaskStatusList(limit, offset, count, filters, sorters, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * Update a current TaskStatus for a task by task ID. + * @summary Update task status by ID + * @param {string} id Task ID of the task whose TaskStatus to update + * @param {JsonPatchBeta} jsonPatchBeta + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + updateTaskStatus: function (id, jsonPatchBeta, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.updateTaskStatus(id, jsonPatchBeta, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + }; + }; + exports.TaskManagementBetaApiFp = TaskManagementBetaApiFp; + /** + * TaskManagementBetaApi - factory interface + * @export + */ + var TaskManagementBetaApiFactory = function (configuration, basePath, axios) { + var localVarFp = (0, exports.TaskManagementBetaApiFp)(configuration); + return { + /** + * Retrieve headers for a list of TaskStatus for pending tasks. + * @summary Retrieve headers only for pending task list. + * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getPendingTaskHeaders: function (offset, limit, count, axiosOptions) { + return localVarFp.getPendingTaskHeaders(offset, limit, count, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * Retrieve a list of TaskStatus for pending tasks. + * @summary Retrieve a pending task list. + * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getPendingTasks: function (offset, limit, count, axiosOptions) { + return localVarFp.getPendingTasks(offset, limit, count, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * Get a TaskStatus for a task by task ID. + * @summary Get task status by ID. + * @param {string} id Task ID of the TaskStatus to get + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getTaskStatus: function (id, axiosOptions) { + return localVarFp.getTaskStatus(id, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * Get a TaskStatus list. + * @summary Retrieve a task status list. + * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **id**: *eq, in* **sourceId**: *eq, in* **completionStatus**: *eq, in* **type**: *eq, in* + * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **created** + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getTaskStatusList: function (limit, offset, count, filters, sorters, axiosOptions) { + return localVarFp.getTaskStatusList(limit, offset, count, filters, sorters, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * Update a current TaskStatus for a task by task ID. + * @summary Update task status by ID + * @param {string} id Task ID of the task whose TaskStatus to update + * @param {JsonPatchBeta} jsonPatchBeta + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + updateTaskStatus: function (id, jsonPatchBeta, axiosOptions) { + return localVarFp.updateTaskStatus(id, jsonPatchBeta, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + }; + }; + exports.TaskManagementBetaApiFactory = TaskManagementBetaApiFactory; + /** + * TaskManagementBetaApi - object-oriented interface + * @export + * @class TaskManagementBetaApi + * @extends {BaseAPI} + */ + var TaskManagementBetaApi = /** @class */ (function (_super) { + __extends(TaskManagementBetaApi, _super); + function TaskManagementBetaApi() { + return _super !== null && _super.apply(this, arguments) || this; + } + /** + * Retrieve headers for a list of TaskStatus for pending tasks. + * @summary Retrieve headers only for pending task list. + * @param {TaskManagementBetaApiGetPendingTaskHeadersRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof TaskManagementBetaApi + */ + TaskManagementBetaApi.prototype.getPendingTaskHeaders = function (requestParameters, axiosOptions) { + var _this = this; + if (requestParameters === void 0) { requestParameters = {}; } + return (0, exports.TaskManagementBetaApiFp)(this.configuration).getPendingTaskHeaders(requestParameters.offset, requestParameters.limit, requestParameters.count, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * Retrieve a list of TaskStatus for pending tasks. + * @summary Retrieve a pending task list. + * @param {TaskManagementBetaApiGetPendingTasksRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof TaskManagementBetaApi + */ + TaskManagementBetaApi.prototype.getPendingTasks = function (requestParameters, axiosOptions) { + var _this = this; + if (requestParameters === void 0) { requestParameters = {}; } + return (0, exports.TaskManagementBetaApiFp)(this.configuration).getPendingTasks(requestParameters.offset, requestParameters.limit, requestParameters.count, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * Get a TaskStatus for a task by task ID. + * @summary Get task status by ID. + * @param {TaskManagementBetaApiGetTaskStatusRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof TaskManagementBetaApi + */ + TaskManagementBetaApi.prototype.getTaskStatus = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.TaskManagementBetaApiFp)(this.configuration).getTaskStatus(requestParameters.id, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * Get a TaskStatus list. + * @summary Retrieve a task status list. + * @param {TaskManagementBetaApiGetTaskStatusListRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof TaskManagementBetaApi + */ + TaskManagementBetaApi.prototype.getTaskStatusList = function (requestParameters, axiosOptions) { + var _this = this; + if (requestParameters === void 0) { requestParameters = {}; } + return (0, exports.TaskManagementBetaApiFp)(this.configuration).getTaskStatusList(requestParameters.limit, requestParameters.offset, requestParameters.count, requestParameters.filters, requestParameters.sorters, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * Update a current TaskStatus for a task by task ID. + * @summary Update task status by ID + * @param {TaskManagementBetaApiUpdateTaskStatusRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof TaskManagementBetaApi + */ + TaskManagementBetaApi.prototype.updateTaskStatus = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.TaskManagementBetaApiFp)(this.configuration).updateTaskStatus(requestParameters.id, requestParameters.jsonPatchBeta, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + return TaskManagementBetaApi; + }(base_1.BaseAPI)); + exports.TaskManagementBetaApi = TaskManagementBetaApi; + /** + * TransformsBetaApi - axios parameter creator + * @export + */ + var TransformsBetaApiAxiosParamCreator = function (configuration) { + var _this = this; + return { + /** + * Creates a new transform object immediately. By default, the internal flag is set to false to indicate that this is a custom transform. Only SailPoint employees have the ability to create a transform with internal set to true. Newly created Transforms can be used in the Identity Profile mappings within the UI. A token with transform write authority is required to call this API. + * @summary Create transform + * @param {TransformBeta} transformBeta The transform to be created. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + createTransform: function (transformBeta, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'transformBeta' is not null or undefined + (0, common_1.assertParamExists)('createTransform', 'transformBeta', transformBeta); + localVarPath = "/transforms"; + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + localVarHeaderParameter['Content-Type'] = 'application/json'; + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(transformBeta, localVarRequestOptions, configuration); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * Deletes the transform specified by the given ID. Attempting to delete a transform that is used in one or more Identity Profile mappings will result in an error. If this occurs, you must first remove the transform from all mappings before deleting the transform. A token with transform delete authority is required to call this API. + * @summary Delete a transform + * @param {string} id ID of the transform to delete + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + deleteTransform: function (id, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'id' is not null or undefined + (0, common_1.assertParamExists)('deleteTransform', 'id', id); + localVarPath = "/transforms/{id}" + .replace("{".concat("id", "}"), encodeURIComponent(String(id))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'DELETE' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This API returns the transform specified by the given ID. A token with transform read authority is required to call this API. + * @summary Transform by ID + * @param {string} id ID of the transform to retrieve + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getTransform: function (id, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'id' is not null or undefined + (0, common_1.assertParamExists)('getTransform', 'id', id); + localVarPath = "/transforms/{id}" + .replace("{".concat("id", "}"), encodeURIComponent(String(id))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * Gets a list of all saved transform objects. A token with transforms-list read authority is required to call this API. + * @summary List transforms + * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {string} [name] Name of the transform to retrieve from the list. + * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **internal**: *eq* **name**: *eq, sw* + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + listTransforms: function (offset, limit, count, name, filters, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + localVarPath = "/transforms"; + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + if (offset !== undefined) { + localVarQueryParameter['offset'] = offset; + } + if (limit !== undefined) { + localVarQueryParameter['limit'] = limit; + } + if (count !== undefined) { + localVarQueryParameter['count'] = count; + } + if (name !== undefined) { + localVarQueryParameter['name'] = name; + } + if (filters !== undefined) { + localVarQueryParameter['filters'] = filters; + } + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * Replaces the transform specified by the given ID with the transform provided in the request body. Only the \"attributes\" field is mutable. Attempting to change other properties (ex. \"name\" and \"type\") will result in an error. A token with transform write authority is required to call this API. + * @summary Update a transform + * @param {string} id ID of the transform to update + * @param {TransformBeta} [transformBeta] The updated transform object. Must include \"name\", \"type\", and \"attributes\" fields, but \"name\" and \"type\" must not be modified. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + updateTransform: function (id, transformBeta, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'id' is not null or undefined + (0, common_1.assertParamExists)('updateTransform', 'id', id); + localVarPath = "/transforms/{id}" + .replace("{".concat("id", "}"), encodeURIComponent(String(id))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'PUT' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + localVarHeaderParameter['Content-Type'] = 'application/json'; + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(transformBeta, localVarRequestOptions, configuration); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + }; + }; + exports.TransformsBetaApiAxiosParamCreator = TransformsBetaApiAxiosParamCreator; + /** + * TransformsBetaApi - functional programming interface + * @export + */ + var TransformsBetaApiFp = function (configuration) { + var localVarAxiosParamCreator = (0, exports.TransformsBetaApiAxiosParamCreator)(configuration); + return { + /** + * Creates a new transform object immediately. By default, the internal flag is set to false to indicate that this is a custom transform. Only SailPoint employees have the ability to create a transform with internal set to true. Newly created Transforms can be used in the Identity Profile mappings within the UI. A token with transform write authority is required to call this API. + * @summary Create transform + * @param {TransformBeta} transformBeta The transform to be created. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + createTransform: function (transformBeta, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.createTransform(transformBeta, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * Deletes the transform specified by the given ID. Attempting to delete a transform that is used in one or more Identity Profile mappings will result in an error. If this occurs, you must first remove the transform from all mappings before deleting the transform. A token with transform delete authority is required to call this API. + * @summary Delete a transform + * @param {string} id ID of the transform to delete + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + deleteTransform: function (id, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.deleteTransform(id, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This API returns the transform specified by the given ID. A token with transform read authority is required to call this API. + * @summary Transform by ID + * @param {string} id ID of the transform to retrieve + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getTransform: function (id, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.getTransform(id, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * Gets a list of all saved transform objects. A token with transforms-list read authority is required to call this API. + * @summary List transforms + * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {string} [name] Name of the transform to retrieve from the list. + * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **internal**: *eq* **name**: *eq, sw* + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + listTransforms: function (offset, limit, count, name, filters, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.listTransforms(offset, limit, count, name, filters, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * Replaces the transform specified by the given ID with the transform provided in the request body. Only the \"attributes\" field is mutable. Attempting to change other properties (ex. \"name\" and \"type\") will result in an error. A token with transform write authority is required to call this API. + * @summary Update a transform + * @param {string} id ID of the transform to update + * @param {TransformBeta} [transformBeta] The updated transform object. Must include \"name\", \"type\", and \"attributes\" fields, but \"name\" and \"type\" must not be modified. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + updateTransform: function (id, transformBeta, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.updateTransform(id, transformBeta, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + }; + }; + exports.TransformsBetaApiFp = TransformsBetaApiFp; + /** + * TransformsBetaApi - factory interface + * @export + */ + var TransformsBetaApiFactory = function (configuration, basePath, axios) { + var localVarFp = (0, exports.TransformsBetaApiFp)(configuration); + return { + /** + * Creates a new transform object immediately. By default, the internal flag is set to false to indicate that this is a custom transform. Only SailPoint employees have the ability to create a transform with internal set to true. Newly created Transforms can be used in the Identity Profile mappings within the UI. A token with transform write authority is required to call this API. + * @summary Create transform + * @param {TransformBeta} transformBeta The transform to be created. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + createTransform: function (transformBeta, axiosOptions) { + return localVarFp.createTransform(transformBeta, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * Deletes the transform specified by the given ID. Attempting to delete a transform that is used in one or more Identity Profile mappings will result in an error. If this occurs, you must first remove the transform from all mappings before deleting the transform. A token with transform delete authority is required to call this API. + * @summary Delete a transform + * @param {string} id ID of the transform to delete + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + deleteTransform: function (id, axiosOptions) { + return localVarFp.deleteTransform(id, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This API returns the transform specified by the given ID. A token with transform read authority is required to call this API. + * @summary Transform by ID + * @param {string} id ID of the transform to retrieve + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getTransform: function (id, axiosOptions) { + return localVarFp.getTransform(id, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * Gets a list of all saved transform objects. A token with transforms-list read authority is required to call this API. + * @summary List transforms + * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {string} [name] Name of the transform to retrieve from the list. + * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **internal**: *eq* **name**: *eq, sw* + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + listTransforms: function (offset, limit, count, name, filters, axiosOptions) { + return localVarFp.listTransforms(offset, limit, count, name, filters, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * Replaces the transform specified by the given ID with the transform provided in the request body. Only the \"attributes\" field is mutable. Attempting to change other properties (ex. \"name\" and \"type\") will result in an error. A token with transform write authority is required to call this API. + * @summary Update a transform + * @param {string} id ID of the transform to update + * @param {TransformBeta} [transformBeta] The updated transform object. Must include \"name\", \"type\", and \"attributes\" fields, but \"name\" and \"type\" must not be modified. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + updateTransform: function (id, transformBeta, axiosOptions) { + return localVarFp.updateTransform(id, transformBeta, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + }; + }; + exports.TransformsBetaApiFactory = TransformsBetaApiFactory; + /** + * TransformsBetaApi - object-oriented interface + * @export + * @class TransformsBetaApi + * @extends {BaseAPI} + */ + var TransformsBetaApi = /** @class */ (function (_super) { + __extends(TransformsBetaApi, _super); + function TransformsBetaApi() { + return _super !== null && _super.apply(this, arguments) || this; + } + /** + * Creates a new transform object immediately. By default, the internal flag is set to false to indicate that this is a custom transform. Only SailPoint employees have the ability to create a transform with internal set to true. Newly created Transforms can be used in the Identity Profile mappings within the UI. A token with transform write authority is required to call this API. + * @summary Create transform + * @param {TransformsBetaApiCreateTransformRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof TransformsBetaApi + */ + TransformsBetaApi.prototype.createTransform = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.TransformsBetaApiFp)(this.configuration).createTransform(requestParameters.transformBeta, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * Deletes the transform specified by the given ID. Attempting to delete a transform that is used in one or more Identity Profile mappings will result in an error. If this occurs, you must first remove the transform from all mappings before deleting the transform. A token with transform delete authority is required to call this API. + * @summary Delete a transform + * @param {TransformsBetaApiDeleteTransformRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof TransformsBetaApi + */ + TransformsBetaApi.prototype.deleteTransform = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.TransformsBetaApiFp)(this.configuration).deleteTransform(requestParameters.id, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This API returns the transform specified by the given ID. A token with transform read authority is required to call this API. + * @summary Transform by ID + * @param {TransformsBetaApiGetTransformRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof TransformsBetaApi + */ + TransformsBetaApi.prototype.getTransform = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.TransformsBetaApiFp)(this.configuration).getTransform(requestParameters.id, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * Gets a list of all saved transform objects. A token with transforms-list read authority is required to call this API. + * @summary List transforms + * @param {TransformsBetaApiListTransformsRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof TransformsBetaApi + */ + TransformsBetaApi.prototype.listTransforms = function (requestParameters, axiosOptions) { + var _this = this; + if (requestParameters === void 0) { requestParameters = {}; } + return (0, exports.TransformsBetaApiFp)(this.configuration).listTransforms(requestParameters.offset, requestParameters.limit, requestParameters.count, requestParameters.name, requestParameters.filters, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * Replaces the transform specified by the given ID with the transform provided in the request body. Only the \"attributes\" field is mutable. Attempting to change other properties (ex. \"name\" and \"type\") will result in an error. A token with transform write authority is required to call this API. + * @summary Update a transform + * @param {TransformsBetaApiUpdateTransformRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof TransformsBetaApi + */ + TransformsBetaApi.prototype.updateTransform = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.TransformsBetaApiFp)(this.configuration).updateTransform(requestParameters.id, requestParameters.transformBeta, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + return TransformsBetaApi; + }(base_1.BaseAPI)); + exports.TransformsBetaApi = TransformsBetaApi; + /** + * TriggersBetaApi - axios parameter creator + * @export + */ + var TriggersBetaApiAxiosParamCreator = function (configuration) { + var _this = this; + return { + /** + * Completes an invocation to a REQUEST_RESPONSE type trigger. + * @summary Complete Trigger Invocation + * @param {string} id The ID of the invocation to complete. + * @param {CompleteInvocationBeta} completeInvocationBeta + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + completeTriggerInvocation: function (id, completeInvocationBeta, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'id' is not null or undefined + (0, common_1.assertParamExists)('completeTriggerInvocation', 'id', id); + // verify required parameter 'completeInvocationBeta' is not null or undefined + (0, common_1.assertParamExists)('completeTriggerInvocation', 'completeInvocationBeta', completeInvocationBeta); + localVarPath = "/trigger-invocations/{id}/complete" + .replace("{".concat("id", "}"), encodeURIComponent(String(id))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + localVarHeaderParameter['Content-Type'] = 'application/json'; + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(completeInvocationBeta, localVarRequestOptions, configuration); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This API creates a new subscription to a trigger and defines trigger invocation details. The type of subscription determines which config object is required: * HTTP subscriptions require httpConfig * EventBridge subscriptions require eventBridgeConfig + * @summary Create a Subscription + * @param {SubscriptionPostRequestBeta} subscriptionPostRequestBeta + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + createSubscription: function (subscriptionPostRequestBeta, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'subscriptionPostRequestBeta' is not null or undefined + (0, common_1.assertParamExists)('createSubscription', 'subscriptionPostRequestBeta', subscriptionPostRequestBeta); + localVarPath = "/trigger-subscriptions"; + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + localVarHeaderParameter['Content-Type'] = 'application/json'; + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(subscriptionPostRequestBeta, localVarRequestOptions, configuration); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * Deletes an existing subscription to a trigger. + * @summary Delete a Subscription + * @param {string} id Subscription ID + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + deleteSubscription: function (id, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'id' is not null or undefined + (0, common_1.assertParamExists)('deleteSubscription', 'id', id); + localVarPath = "/trigger-subscriptions/{id}" + .replace("{".concat("id", "}"), encodeURIComponent(String(id))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'DELETE' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * Gets a list of all trigger subscriptions. + * @summary List Subscriptions + * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **id**: *eq* **triggerId**: *eq* **type**: *eq, le* + * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **triggerId, triggerName** + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + listSubscriptions: function (limit, offset, count, filters, sorters, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + localVarPath = "/trigger-subscriptions"; + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + if (limit !== undefined) { + localVarQueryParameter['limit'] = limit; + } + if (offset !== undefined) { + localVarQueryParameter['offset'] = offset; + } + if (count !== undefined) { + localVarQueryParameter['count'] = count; + } + if (filters !== undefined) { + localVarQueryParameter['filters'] = filters; + } + if (sorters !== undefined) { + localVarQueryParameter['sorters'] = sorters; + } + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * Gets a list of latest invocation statuses. Statuses of successful invocations are available for up to 24 hours. Statuses of failed invocations are available for up to 48 hours. This endpoint may only fetch up to 2000 invocations, and should not be treated as a representation of the full history of invocations. + * @summary List Latest Invocation Statuses + * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **triggerId**: *eq* **subscriptionId**: *eq* + * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **triggerId, subscriptionName, created, completed** + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + listTriggerInvocationStatus: function (limit, offset, count, filters, sorters, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + localVarPath = "/trigger-invocations/status"; + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + if (limit !== undefined) { + localVarQueryParameter['limit'] = limit; + } + if (offset !== undefined) { + localVarQueryParameter['offset'] = offset; + } + if (count !== undefined) { + localVarQueryParameter['count'] = count; + } + if (filters !== undefined) { + localVarQueryParameter['filters'] = filters; + } + if (sorters !== undefined) { + localVarQueryParameter['sorters'] = sorters; + } + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * Gets a list of triggers that are available in the tenant. + * @summary List Triggers + * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **id**: *eq, ge, le* + * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **id, name** + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + listTriggers: function (limit, offset, count, filters, sorters, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + localVarPath = "/triggers"; + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + if (limit !== undefined) { + localVarQueryParameter['limit'] = limit; + } + if (offset !== undefined) { + localVarQueryParameter['offset'] = offset; + } + if (count !== undefined) { + localVarQueryParameter['count'] = count; + } + if (filters !== undefined) { + localVarQueryParameter['filters'] = filters; + } + if (sorters !== undefined) { + localVarQueryParameter['sorters'] = sorters; + } + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This API updates a trigger subscription in IdentityNow, using a set of instructions to modify a subscription partially. The following fields are patchable: **name**, **description**, **enabled**, **type**, **filter**, **responseDeadline**, **httpConfig**, **eventBridgeConfig**, **workflowConfig** + * @summary Patch a Subscription + * @param {string} id ID of the Subscription to patch + * @param {Array} subscriptionPatchRequestInnerBeta + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + patchSubscription: function (id, subscriptionPatchRequestInnerBeta, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'id' is not null or undefined + (0, common_1.assertParamExists)('patchSubscription', 'id', id); + // verify required parameter 'subscriptionPatchRequestInnerBeta' is not null or undefined + (0, common_1.assertParamExists)('patchSubscription', 'subscriptionPatchRequestInnerBeta', subscriptionPatchRequestInnerBeta); + localVarPath = "/trigger-subscriptions/{id}" + .replace("{".concat("id", "}"), encodeURIComponent(String(id))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'PATCH' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + localVarHeaderParameter['Content-Type'] = 'application/json-patch+json'; + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(subscriptionPatchRequestInnerBeta, localVarRequestOptions, configuration); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * Initiate a test event for all subscribers of the specified event trigger. If there are no subscribers to the specified trigger in the tenant, then no test event will be sent. + * @summary Start a Test Invocation + * @param {TestInvocationBeta} testInvocationBeta + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + startTestTriggerInvocation: function (testInvocationBeta, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'testInvocationBeta' is not null or undefined + (0, common_1.assertParamExists)('startTestTriggerInvocation', 'testInvocationBeta', testInvocationBeta); + localVarPath = "/trigger-invocations/test"; + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + localVarHeaderParameter['Content-Type'] = 'application/json'; + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(testInvocationBeta, localVarRequestOptions, configuration); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * Validates a JSONPath filter expression against a provided mock input. Request requires a security scope of: + * @summary Validate a Subscription Filter + * @param {ValidateFilterInputDtoBeta} validateFilterInputDtoBeta + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + testSubscriptionFilter: function (validateFilterInputDtoBeta, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'validateFilterInputDtoBeta' is not null or undefined + (0, common_1.assertParamExists)('testSubscriptionFilter', 'validateFilterInputDtoBeta', validateFilterInputDtoBeta); + localVarPath = "/trigger-subscriptions/validate-filter"; + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + localVarHeaderParameter['Content-Type'] = 'application/json'; + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(validateFilterInputDtoBeta, localVarRequestOptions, configuration); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This API updates a trigger subscription in IdentityNow, using a full object representation. In other words, the existing Subscription is completely replaced. The following fields are immutable: * id * triggerId Attempts to modify these fields result in 400. + * @summary Update a Subscription + * @param {string} id Subscription ID + * @param {SubscriptionPutRequestBeta} subscriptionPutRequestBeta + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + updateSubscription: function (id, subscriptionPutRequestBeta, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'id' is not null or undefined + (0, common_1.assertParamExists)('updateSubscription', 'id', id); + // verify required parameter 'subscriptionPutRequestBeta' is not null or undefined + (0, common_1.assertParamExists)('updateSubscription', 'subscriptionPutRequestBeta', subscriptionPutRequestBeta); + localVarPath = "/trigger-subscriptions/{id}" + .replace("{".concat("id", "}"), encodeURIComponent(String(id))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'PUT' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + localVarHeaderParameter['Content-Type'] = 'application/json'; + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(subscriptionPutRequestBeta, localVarRequestOptions, configuration); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + }; + }; + exports.TriggersBetaApiAxiosParamCreator = TriggersBetaApiAxiosParamCreator; + /** + * TriggersBetaApi - functional programming interface + * @export + */ + var TriggersBetaApiFp = function (configuration) { + var localVarAxiosParamCreator = (0, exports.TriggersBetaApiAxiosParamCreator)(configuration); + return { + /** + * Completes an invocation to a REQUEST_RESPONSE type trigger. + * @summary Complete Trigger Invocation + * @param {string} id The ID of the invocation to complete. + * @param {CompleteInvocationBeta} completeInvocationBeta + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + completeTriggerInvocation: function (id, completeInvocationBeta, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.completeTriggerInvocation(id, completeInvocationBeta, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This API creates a new subscription to a trigger and defines trigger invocation details. The type of subscription determines which config object is required: * HTTP subscriptions require httpConfig * EventBridge subscriptions require eventBridgeConfig + * @summary Create a Subscription + * @param {SubscriptionPostRequestBeta} subscriptionPostRequestBeta + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + createSubscription: function (subscriptionPostRequestBeta, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.createSubscription(subscriptionPostRequestBeta, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * Deletes an existing subscription to a trigger. + * @summary Delete a Subscription + * @param {string} id Subscription ID + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + deleteSubscription: function (id, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.deleteSubscription(id, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * Gets a list of all trigger subscriptions. + * @summary List Subscriptions + * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **id**: *eq* **triggerId**: *eq* **type**: *eq, le* + * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **triggerId, triggerName** + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + listSubscriptions: function (limit, offset, count, filters, sorters, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.listSubscriptions(limit, offset, count, filters, sorters, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * Gets a list of latest invocation statuses. Statuses of successful invocations are available for up to 24 hours. Statuses of failed invocations are available for up to 48 hours. This endpoint may only fetch up to 2000 invocations, and should not be treated as a representation of the full history of invocations. + * @summary List Latest Invocation Statuses + * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **triggerId**: *eq* **subscriptionId**: *eq* + * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **triggerId, subscriptionName, created, completed** + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + listTriggerInvocationStatus: function (limit, offset, count, filters, sorters, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.listTriggerInvocationStatus(limit, offset, count, filters, sorters, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * Gets a list of triggers that are available in the tenant. + * @summary List Triggers + * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **id**: *eq, ge, le* + * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **id, name** + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + listTriggers: function (limit, offset, count, filters, sorters, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.listTriggers(limit, offset, count, filters, sorters, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This API updates a trigger subscription in IdentityNow, using a set of instructions to modify a subscription partially. The following fields are patchable: **name**, **description**, **enabled**, **type**, **filter**, **responseDeadline**, **httpConfig**, **eventBridgeConfig**, **workflowConfig** + * @summary Patch a Subscription + * @param {string} id ID of the Subscription to patch + * @param {Array} subscriptionPatchRequestInnerBeta + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + patchSubscription: function (id, subscriptionPatchRequestInnerBeta, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.patchSubscription(id, subscriptionPatchRequestInnerBeta, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * Initiate a test event for all subscribers of the specified event trigger. If there are no subscribers to the specified trigger in the tenant, then no test event will be sent. + * @summary Start a Test Invocation + * @param {TestInvocationBeta} testInvocationBeta + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + startTestTriggerInvocation: function (testInvocationBeta, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.startTestTriggerInvocation(testInvocationBeta, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * Validates a JSONPath filter expression against a provided mock input. Request requires a security scope of: + * @summary Validate a Subscription Filter + * @param {ValidateFilterInputDtoBeta} validateFilterInputDtoBeta + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + testSubscriptionFilter: function (validateFilterInputDtoBeta, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.testSubscriptionFilter(validateFilterInputDtoBeta, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This API updates a trigger subscription in IdentityNow, using a full object representation. In other words, the existing Subscription is completely replaced. The following fields are immutable: * id * triggerId Attempts to modify these fields result in 400. + * @summary Update a Subscription + * @param {string} id Subscription ID + * @param {SubscriptionPutRequestBeta} subscriptionPutRequestBeta + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + updateSubscription: function (id, subscriptionPutRequestBeta, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.updateSubscription(id, subscriptionPutRequestBeta, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + }; + }; + exports.TriggersBetaApiFp = TriggersBetaApiFp; + /** + * TriggersBetaApi - factory interface + * @export + */ + var TriggersBetaApiFactory = function (configuration, basePath, axios) { + var localVarFp = (0, exports.TriggersBetaApiFp)(configuration); + return { + /** + * Completes an invocation to a REQUEST_RESPONSE type trigger. + * @summary Complete Trigger Invocation + * @param {string} id The ID of the invocation to complete. + * @param {CompleteInvocationBeta} completeInvocationBeta + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + completeTriggerInvocation: function (id, completeInvocationBeta, axiosOptions) { + return localVarFp.completeTriggerInvocation(id, completeInvocationBeta, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This API creates a new subscription to a trigger and defines trigger invocation details. The type of subscription determines which config object is required: * HTTP subscriptions require httpConfig * EventBridge subscriptions require eventBridgeConfig + * @summary Create a Subscription + * @param {SubscriptionPostRequestBeta} subscriptionPostRequestBeta + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + createSubscription: function (subscriptionPostRequestBeta, axiosOptions) { + return localVarFp.createSubscription(subscriptionPostRequestBeta, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * Deletes an existing subscription to a trigger. + * @summary Delete a Subscription + * @param {string} id Subscription ID + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + deleteSubscription: function (id, axiosOptions) { + return localVarFp.deleteSubscription(id, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * Gets a list of all trigger subscriptions. + * @summary List Subscriptions + * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **id**: *eq* **triggerId**: *eq* **type**: *eq, le* + * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **triggerId, triggerName** + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + listSubscriptions: function (limit, offset, count, filters, sorters, axiosOptions) { + return localVarFp.listSubscriptions(limit, offset, count, filters, sorters, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * Gets a list of latest invocation statuses. Statuses of successful invocations are available for up to 24 hours. Statuses of failed invocations are available for up to 48 hours. This endpoint may only fetch up to 2000 invocations, and should not be treated as a representation of the full history of invocations. + * @summary List Latest Invocation Statuses + * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **triggerId**: *eq* **subscriptionId**: *eq* + * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **triggerId, subscriptionName, created, completed** + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + listTriggerInvocationStatus: function (limit, offset, count, filters, sorters, axiosOptions) { + return localVarFp.listTriggerInvocationStatus(limit, offset, count, filters, sorters, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * Gets a list of triggers that are available in the tenant. + * @summary List Triggers + * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **id**: *eq, ge, le* + * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **id, name** + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + listTriggers: function (limit, offset, count, filters, sorters, axiosOptions) { + return localVarFp.listTriggers(limit, offset, count, filters, sorters, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This API updates a trigger subscription in IdentityNow, using a set of instructions to modify a subscription partially. The following fields are patchable: **name**, **description**, **enabled**, **type**, **filter**, **responseDeadline**, **httpConfig**, **eventBridgeConfig**, **workflowConfig** + * @summary Patch a Subscription + * @param {string} id ID of the Subscription to patch + * @param {Array} subscriptionPatchRequestInnerBeta + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + patchSubscription: function (id, subscriptionPatchRequestInnerBeta, axiosOptions) { + return localVarFp.patchSubscription(id, subscriptionPatchRequestInnerBeta, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * Initiate a test event for all subscribers of the specified event trigger. If there are no subscribers to the specified trigger in the tenant, then no test event will be sent. + * @summary Start a Test Invocation + * @param {TestInvocationBeta} testInvocationBeta + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + startTestTriggerInvocation: function (testInvocationBeta, axiosOptions) { + return localVarFp.startTestTriggerInvocation(testInvocationBeta, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * Validates a JSONPath filter expression against a provided mock input. Request requires a security scope of: + * @summary Validate a Subscription Filter + * @param {ValidateFilterInputDtoBeta} validateFilterInputDtoBeta + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + testSubscriptionFilter: function (validateFilterInputDtoBeta, axiosOptions) { + return localVarFp.testSubscriptionFilter(validateFilterInputDtoBeta, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This API updates a trigger subscription in IdentityNow, using a full object representation. In other words, the existing Subscription is completely replaced. The following fields are immutable: * id * triggerId Attempts to modify these fields result in 400. + * @summary Update a Subscription + * @param {string} id Subscription ID + * @param {SubscriptionPutRequestBeta} subscriptionPutRequestBeta + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + updateSubscription: function (id, subscriptionPutRequestBeta, axiosOptions) { + return localVarFp.updateSubscription(id, subscriptionPutRequestBeta, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + }; + }; + exports.TriggersBetaApiFactory = TriggersBetaApiFactory; + /** + * TriggersBetaApi - object-oriented interface + * @export + * @class TriggersBetaApi + * @extends {BaseAPI} + */ + var TriggersBetaApi = /** @class */ (function (_super) { + __extends(TriggersBetaApi, _super); + function TriggersBetaApi() { + return _super !== null && _super.apply(this, arguments) || this; + } + /** + * Completes an invocation to a REQUEST_RESPONSE type trigger. + * @summary Complete Trigger Invocation + * @param {TriggersBetaApiCompleteTriggerInvocationRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof TriggersBetaApi + */ + TriggersBetaApi.prototype.completeTriggerInvocation = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.TriggersBetaApiFp)(this.configuration).completeTriggerInvocation(requestParameters.id, requestParameters.completeInvocationBeta, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This API creates a new subscription to a trigger and defines trigger invocation details. The type of subscription determines which config object is required: * HTTP subscriptions require httpConfig * EventBridge subscriptions require eventBridgeConfig + * @summary Create a Subscription + * @param {TriggersBetaApiCreateSubscriptionRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof TriggersBetaApi + */ + TriggersBetaApi.prototype.createSubscription = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.TriggersBetaApiFp)(this.configuration).createSubscription(requestParameters.subscriptionPostRequestBeta, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * Deletes an existing subscription to a trigger. + * @summary Delete a Subscription + * @param {TriggersBetaApiDeleteSubscriptionRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof TriggersBetaApi + */ + TriggersBetaApi.prototype.deleteSubscription = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.TriggersBetaApiFp)(this.configuration).deleteSubscription(requestParameters.id, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * Gets a list of all trigger subscriptions. + * @summary List Subscriptions + * @param {TriggersBetaApiListSubscriptionsRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof TriggersBetaApi + */ + TriggersBetaApi.prototype.listSubscriptions = function (requestParameters, axiosOptions) { + var _this = this; + if (requestParameters === void 0) { requestParameters = {}; } + return (0, exports.TriggersBetaApiFp)(this.configuration).listSubscriptions(requestParameters.limit, requestParameters.offset, requestParameters.count, requestParameters.filters, requestParameters.sorters, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * Gets a list of latest invocation statuses. Statuses of successful invocations are available for up to 24 hours. Statuses of failed invocations are available for up to 48 hours. This endpoint may only fetch up to 2000 invocations, and should not be treated as a representation of the full history of invocations. + * @summary List Latest Invocation Statuses + * @param {TriggersBetaApiListTriggerInvocationStatusRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof TriggersBetaApi + */ + TriggersBetaApi.prototype.listTriggerInvocationStatus = function (requestParameters, axiosOptions) { + var _this = this; + if (requestParameters === void 0) { requestParameters = {}; } + return (0, exports.TriggersBetaApiFp)(this.configuration).listTriggerInvocationStatus(requestParameters.limit, requestParameters.offset, requestParameters.count, requestParameters.filters, requestParameters.sorters, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * Gets a list of triggers that are available in the tenant. + * @summary List Triggers + * @param {TriggersBetaApiListTriggersRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof TriggersBetaApi + */ + TriggersBetaApi.prototype.listTriggers = function (requestParameters, axiosOptions) { + var _this = this; + if (requestParameters === void 0) { requestParameters = {}; } + return (0, exports.TriggersBetaApiFp)(this.configuration).listTriggers(requestParameters.limit, requestParameters.offset, requestParameters.count, requestParameters.filters, requestParameters.sorters, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This API updates a trigger subscription in IdentityNow, using a set of instructions to modify a subscription partially. The following fields are patchable: **name**, **description**, **enabled**, **type**, **filter**, **responseDeadline**, **httpConfig**, **eventBridgeConfig**, **workflowConfig** + * @summary Patch a Subscription + * @param {TriggersBetaApiPatchSubscriptionRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof TriggersBetaApi + */ + TriggersBetaApi.prototype.patchSubscription = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.TriggersBetaApiFp)(this.configuration).patchSubscription(requestParameters.id, requestParameters.subscriptionPatchRequestInnerBeta, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * Initiate a test event for all subscribers of the specified event trigger. If there are no subscribers to the specified trigger in the tenant, then no test event will be sent. + * @summary Start a Test Invocation + * @param {TriggersBetaApiStartTestTriggerInvocationRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof TriggersBetaApi + */ + TriggersBetaApi.prototype.startTestTriggerInvocation = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.TriggersBetaApiFp)(this.configuration).startTestTriggerInvocation(requestParameters.testInvocationBeta, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * Validates a JSONPath filter expression against a provided mock input. Request requires a security scope of: + * @summary Validate a Subscription Filter + * @param {TriggersBetaApiTestSubscriptionFilterRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof TriggersBetaApi + */ + TriggersBetaApi.prototype.testSubscriptionFilter = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.TriggersBetaApiFp)(this.configuration).testSubscriptionFilter(requestParameters.validateFilterInputDtoBeta, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This API updates a trigger subscription in IdentityNow, using a full object representation. In other words, the existing Subscription is completely replaced. The following fields are immutable: * id * triggerId Attempts to modify these fields result in 400. + * @summary Update a Subscription + * @param {TriggersBetaApiUpdateSubscriptionRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof TriggersBetaApi + */ + TriggersBetaApi.prototype.updateSubscription = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.TriggersBetaApiFp)(this.configuration).updateSubscription(requestParameters.id, requestParameters.subscriptionPutRequestBeta, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + return TriggersBetaApi; + }(base_1.BaseAPI)); + exports.TriggersBetaApi = TriggersBetaApi; + /** + * WorkItemsBetaApi - axios parameter creator + * @export + */ + var WorkItemsBetaApiAxiosParamCreator = function (configuration) { + var _this = this; + return { + /** + * This API approves an Approval Item. Either an admin, or the owning/current user must make this request. + * @summary Approve an Approval Item + * @param {string} id The ID of the work item + * @param {string} approvalItemId The ID of the approval item. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + approveApprovalItem: function (id, approvalItemId, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'id' is not null or undefined + (0, common_1.assertParamExists)('approveApprovalItem', 'id', id); + // verify required parameter 'approvalItemId' is not null or undefined + (0, common_1.assertParamExists)('approveApprovalItem', 'approvalItemId', approvalItemId); + localVarPath = "/work-items/{id}/approve/{approvalItemId}" + .replace("{".concat("id", "}"), encodeURIComponent(String(id))) + .replace("{".concat("approvalItemId", "}"), encodeURIComponent(String(approvalItemId))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This API bulk approves Approval Items. Either an admin, or the owning/current user must make this request. + * @summary Bulk approve Approval Items + * @param {string} id The ID of the work item + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + approveApprovalItemsInBulk: function (id, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'id' is not null or undefined + (0, common_1.assertParamExists)('approveApprovalItemsInBulk', 'id', id); + localVarPath = "/work-items/bulk-approve/{id}" + .replace("{".concat("id", "}"), encodeURIComponent(String(id))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This API completes a work item. Either an admin, or the owning/current user must make this request. + * @summary Complete a Work Item + * @param {string} id The ID of the work item + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + completeWorkItem: function (id, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'id' is not null or undefined + (0, common_1.assertParamExists)('completeWorkItem', 'id', id); + localVarPath = "/work-items/{id}" + .replace("{".concat("id", "}"), encodeURIComponent(String(id))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This API forwards a work item to a new owner. Either an admin, or the owning/current user must make this request. + * @summary Forward a Work Item + * @param {string} id The ID of the work item + * @param {WorkItemForwardBeta} workItemForwardBeta + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + forwardWorkItem: function (id, workItemForwardBeta, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'id' is not null or undefined + (0, common_1.assertParamExists)('forwardWorkItem', 'id', id); + // verify required parameter 'workItemForwardBeta' is not null or undefined + (0, common_1.assertParamExists)('forwardWorkItem', 'workItemForwardBeta', workItemForwardBeta); + localVarPath = "/work-items/{id}/forward" + .replace("{".concat("id", "}"), encodeURIComponent(String(id))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + localVarHeaderParameter['Content-Type'] = 'application/json'; + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(workItemForwardBeta, localVarRequestOptions, configuration); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This gets a collection of completed work items belonging to either the specified user(admin required), or the current user. + * @summary Completed Work Items + * @param {string} [ownerId] The id of the owner of the work item list being requested. Either an admin, or the owning/current user must make this request. + * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getCompletedWorkItems: function (ownerId, limit, offset, count, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + localVarPath = "/work-items/completed"; + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + if (ownerId !== undefined) { + localVarQueryParameter['ownerId'] = ownerId; + } + if (limit !== undefined) { + localVarQueryParameter['limit'] = limit; + } + if (offset !== undefined) { + localVarQueryParameter['offset'] = offset; + } + if (count !== undefined) { + localVarQueryParameter['count'] = count; + } + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This gets a count of completed work items belonging to either the specified user(admin required), or the current user. + * @summary Count Completed Work Items + * @param {string} [ownerId] ID of the work item owner. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getCountCompletedWorkItems: function (ownerId, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + localVarPath = "/work-items/count/completed"; + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + if (ownerId !== undefined) { + localVarQueryParameter['ownerId'] = ownerId; + } + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This gets a count of work items belonging to either the specified user(admin required), or the current user. + * @summary Count Work Items + * @param {string} [ownerId] ID of the work item owner. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getCountWorkItems: function (ownerId, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + localVarPath = "/work-items/count"; + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + if (ownerId !== undefined) { + localVarQueryParameter['ownerId'] = ownerId; + } + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This gets the details of a Work Item belonging to either the specified user(admin required), or the current user. + * @summary Get a Work Item + * @param {string} id ID of the work item. + * @param {string} [ownerId] ID of the work item owner. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getWorkItem: function (id, ownerId, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'id' is not null or undefined + (0, common_1.assertParamExists)('getWorkItem', 'id', id); + localVarPath = "/work-items/{id}" + .replace("{".concat("id", "}"), encodeURIComponent(String(id))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + if (ownerId !== undefined) { + localVarQueryParameter['ownerId'] = ownerId; + } + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This gets a summary of work items belonging to either the specified user(admin required), or the current user. + * @summary Work Items Summary + * @param {string} [ownerId] ID of the work item owner. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getWorkItemsSummary: function (ownerId, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + localVarPath = "/work-items/summary"; + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + if (ownerId !== undefined) { + localVarQueryParameter['ownerId'] = ownerId; + } + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This gets a collection of work items belonging to either the specified user(admin required), or the current user. + * @summary List Work Items + * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {string} [ownerId] ID of the work item owner. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + listWorkItems: function (limit, offset, count, ownerId, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + localVarPath = "/work-items"; + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + if (limit !== undefined) { + localVarQueryParameter['limit'] = limit; + } + if (offset !== undefined) { + localVarQueryParameter['offset'] = offset; + } + if (count !== undefined) { + localVarQueryParameter['count'] = count; + } + if (ownerId !== undefined) { + localVarQueryParameter['ownerId'] = ownerId; + } + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This API rejects an Approval Item. Either an admin, or the owning/current user must make this request. + * @summary Reject an Approval Item + * @param {string} id The ID of the work item + * @param {string} approvalItemId The ID of the approval item. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + rejectApprovalItem: function (id, approvalItemId, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'id' is not null or undefined + (0, common_1.assertParamExists)('rejectApprovalItem', 'id', id); + // verify required parameter 'approvalItemId' is not null or undefined + (0, common_1.assertParamExists)('rejectApprovalItem', 'approvalItemId', approvalItemId); + localVarPath = "/work-items/{id}/reject/{approvalItemId}" + .replace("{".concat("id", "}"), encodeURIComponent(String(id))) + .replace("{".concat("approvalItemId", "}"), encodeURIComponent(String(approvalItemId))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This API bulk rejects Approval Items. Either an admin, or the owning/current user must make this request. + * @summary Bulk reject Approval Items + * @param {string} id The ID of the work item + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + rejectApprovalItemsInBulk: function (id, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'id' is not null or undefined + (0, common_1.assertParamExists)('rejectApprovalItemsInBulk', 'id', id); + localVarPath = "/work-items/bulk-reject/{id}" + .replace("{".concat("id", "}"), encodeURIComponent(String(id))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This API submits account selections. Either an admin, or the owning/current user must make this request. + * @summary Submit Account Selections + * @param {string} id The ID of the work item + * @param {{ [key: string]: any; }} requestBody Account Selection Data map, keyed on fieldName + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + submitAccountSelection: function (id, requestBody, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'id' is not null or undefined + (0, common_1.assertParamExists)('submitAccountSelection', 'id', id); + // verify required parameter 'requestBody' is not null or undefined + (0, common_1.assertParamExists)('submitAccountSelection', 'requestBody', requestBody); + localVarPath = "/work-items/{id}/submit-account-selection" + .replace("{".concat("id", "}"), encodeURIComponent(String(id))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + localVarHeaderParameter['Content-Type'] = 'application/json'; + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(requestBody, localVarRequestOptions, configuration); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + }; + }; + exports.WorkItemsBetaApiAxiosParamCreator = WorkItemsBetaApiAxiosParamCreator; + /** + * WorkItemsBetaApi - functional programming interface + * @export + */ + var WorkItemsBetaApiFp = function (configuration) { + var localVarAxiosParamCreator = (0, exports.WorkItemsBetaApiAxiosParamCreator)(configuration); + return { + /** + * This API approves an Approval Item. Either an admin, or the owning/current user must make this request. + * @summary Approve an Approval Item + * @param {string} id The ID of the work item + * @param {string} approvalItemId The ID of the approval item. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + approveApprovalItem: function (id, approvalItemId, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.approveApprovalItem(id, approvalItemId, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This API bulk approves Approval Items. Either an admin, or the owning/current user must make this request. + * @summary Bulk approve Approval Items + * @param {string} id The ID of the work item + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + approveApprovalItemsInBulk: function (id, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.approveApprovalItemsInBulk(id, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This API completes a work item. Either an admin, or the owning/current user must make this request. + * @summary Complete a Work Item + * @param {string} id The ID of the work item + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + completeWorkItem: function (id, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.completeWorkItem(id, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This API forwards a work item to a new owner. Either an admin, or the owning/current user must make this request. + * @summary Forward a Work Item + * @param {string} id The ID of the work item + * @param {WorkItemForwardBeta} workItemForwardBeta + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + forwardWorkItem: function (id, workItemForwardBeta, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.forwardWorkItem(id, workItemForwardBeta, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This gets a collection of completed work items belonging to either the specified user(admin required), or the current user. + * @summary Completed Work Items + * @param {string} [ownerId] The id of the owner of the work item list being requested. Either an admin, or the owning/current user must make this request. + * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getCompletedWorkItems: function (ownerId, limit, offset, count, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.getCompletedWorkItems(ownerId, limit, offset, count, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This gets a count of completed work items belonging to either the specified user(admin required), or the current user. + * @summary Count Completed Work Items + * @param {string} [ownerId] ID of the work item owner. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getCountCompletedWorkItems: function (ownerId, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.getCountCompletedWorkItems(ownerId, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This gets a count of work items belonging to either the specified user(admin required), or the current user. + * @summary Count Work Items + * @param {string} [ownerId] ID of the work item owner. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getCountWorkItems: function (ownerId, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.getCountWorkItems(ownerId, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This gets the details of a Work Item belonging to either the specified user(admin required), or the current user. + * @summary Get a Work Item + * @param {string} id ID of the work item. + * @param {string} [ownerId] ID of the work item owner. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getWorkItem: function (id, ownerId, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.getWorkItem(id, ownerId, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This gets a summary of work items belonging to either the specified user(admin required), or the current user. + * @summary Work Items Summary + * @param {string} [ownerId] ID of the work item owner. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getWorkItemsSummary: function (ownerId, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.getWorkItemsSummary(ownerId, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This gets a collection of work items belonging to either the specified user(admin required), or the current user. + * @summary List Work Items + * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {string} [ownerId] ID of the work item owner. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + listWorkItems: function (limit, offset, count, ownerId, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.listWorkItems(limit, offset, count, ownerId, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This API rejects an Approval Item. Either an admin, or the owning/current user must make this request. + * @summary Reject an Approval Item + * @param {string} id The ID of the work item + * @param {string} approvalItemId The ID of the approval item. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + rejectApprovalItem: function (id, approvalItemId, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.rejectApprovalItem(id, approvalItemId, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This API bulk rejects Approval Items. Either an admin, or the owning/current user must make this request. + * @summary Bulk reject Approval Items + * @param {string} id The ID of the work item + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + rejectApprovalItemsInBulk: function (id, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.rejectApprovalItemsInBulk(id, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This API submits account selections. Either an admin, or the owning/current user must make this request. + * @summary Submit Account Selections + * @param {string} id The ID of the work item + * @param {{ [key: string]: any; }} requestBody Account Selection Data map, keyed on fieldName + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + submitAccountSelection: function (id, requestBody, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.submitAccountSelection(id, requestBody, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + }; + }; + exports.WorkItemsBetaApiFp = WorkItemsBetaApiFp; + /** + * WorkItemsBetaApi - factory interface + * @export + */ + var WorkItemsBetaApiFactory = function (configuration, basePath, axios) { + var localVarFp = (0, exports.WorkItemsBetaApiFp)(configuration); + return { + /** + * This API approves an Approval Item. Either an admin, or the owning/current user must make this request. + * @summary Approve an Approval Item + * @param {string} id The ID of the work item + * @param {string} approvalItemId The ID of the approval item. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + approveApprovalItem: function (id, approvalItemId, axiosOptions) { + return localVarFp.approveApprovalItem(id, approvalItemId, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This API bulk approves Approval Items. Either an admin, or the owning/current user must make this request. + * @summary Bulk approve Approval Items + * @param {string} id The ID of the work item + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + approveApprovalItemsInBulk: function (id, axiosOptions) { + return localVarFp.approveApprovalItemsInBulk(id, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This API completes a work item. Either an admin, or the owning/current user must make this request. + * @summary Complete a Work Item + * @param {string} id The ID of the work item + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + completeWorkItem: function (id, axiosOptions) { + return localVarFp.completeWorkItem(id, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This API forwards a work item to a new owner. Either an admin, or the owning/current user must make this request. + * @summary Forward a Work Item + * @param {string} id The ID of the work item + * @param {WorkItemForwardBeta} workItemForwardBeta + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + forwardWorkItem: function (id, workItemForwardBeta, axiosOptions) { + return localVarFp.forwardWorkItem(id, workItemForwardBeta, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This gets a collection of completed work items belonging to either the specified user(admin required), or the current user. + * @summary Completed Work Items + * @param {string} [ownerId] The id of the owner of the work item list being requested. Either an admin, or the owning/current user must make this request. + * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getCompletedWorkItems: function (ownerId, limit, offset, count, axiosOptions) { + return localVarFp.getCompletedWorkItems(ownerId, limit, offset, count, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This gets a count of completed work items belonging to either the specified user(admin required), or the current user. + * @summary Count Completed Work Items + * @param {string} [ownerId] ID of the work item owner. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getCountCompletedWorkItems: function (ownerId, axiosOptions) { + return localVarFp.getCountCompletedWorkItems(ownerId, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This gets a count of work items belonging to either the specified user(admin required), or the current user. + * @summary Count Work Items + * @param {string} [ownerId] ID of the work item owner. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getCountWorkItems: function (ownerId, axiosOptions) { + return localVarFp.getCountWorkItems(ownerId, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This gets the details of a Work Item belonging to either the specified user(admin required), or the current user. + * @summary Get a Work Item + * @param {string} id ID of the work item. + * @param {string} [ownerId] ID of the work item owner. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getWorkItem: function (id, ownerId, axiosOptions) { + return localVarFp.getWorkItem(id, ownerId, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This gets a summary of work items belonging to either the specified user(admin required), or the current user. + * @summary Work Items Summary + * @param {string} [ownerId] ID of the work item owner. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getWorkItemsSummary: function (ownerId, axiosOptions) { + return localVarFp.getWorkItemsSummary(ownerId, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This gets a collection of work items belonging to either the specified user(admin required), or the current user. + * @summary List Work Items + * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {string} [ownerId] ID of the work item owner. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + listWorkItems: function (limit, offset, count, ownerId, axiosOptions) { + return localVarFp.listWorkItems(limit, offset, count, ownerId, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This API rejects an Approval Item. Either an admin, or the owning/current user must make this request. + * @summary Reject an Approval Item + * @param {string} id The ID of the work item + * @param {string} approvalItemId The ID of the approval item. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + rejectApprovalItem: function (id, approvalItemId, axiosOptions) { + return localVarFp.rejectApprovalItem(id, approvalItemId, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This API bulk rejects Approval Items. Either an admin, or the owning/current user must make this request. + * @summary Bulk reject Approval Items + * @param {string} id The ID of the work item + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + rejectApprovalItemsInBulk: function (id, axiosOptions) { + return localVarFp.rejectApprovalItemsInBulk(id, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This API submits account selections. Either an admin, or the owning/current user must make this request. + * @summary Submit Account Selections + * @param {string} id The ID of the work item + * @param {{ [key: string]: any; }} requestBody Account Selection Data map, keyed on fieldName + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + submitAccountSelection: function (id, requestBody, axiosOptions) { + return localVarFp.submitAccountSelection(id, requestBody, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + }; + }; + exports.WorkItemsBetaApiFactory = WorkItemsBetaApiFactory; + /** + * WorkItemsBetaApi - object-oriented interface + * @export + * @class WorkItemsBetaApi + * @extends {BaseAPI} + */ + var WorkItemsBetaApi = /** @class */ (function (_super) { + __extends(WorkItemsBetaApi, _super); + function WorkItemsBetaApi() { + return _super !== null && _super.apply(this, arguments) || this; + } + /** + * This API approves an Approval Item. Either an admin, or the owning/current user must make this request. + * @summary Approve an Approval Item + * @param {WorkItemsBetaApiApproveApprovalItemRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof WorkItemsBetaApi + */ + WorkItemsBetaApi.prototype.approveApprovalItem = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.WorkItemsBetaApiFp)(this.configuration).approveApprovalItem(requestParameters.id, requestParameters.approvalItemId, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This API bulk approves Approval Items. Either an admin, or the owning/current user must make this request. + * @summary Bulk approve Approval Items + * @param {WorkItemsBetaApiApproveApprovalItemsInBulkRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof WorkItemsBetaApi + */ + WorkItemsBetaApi.prototype.approveApprovalItemsInBulk = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.WorkItemsBetaApiFp)(this.configuration).approveApprovalItemsInBulk(requestParameters.id, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This API completes a work item. Either an admin, or the owning/current user must make this request. + * @summary Complete a Work Item + * @param {WorkItemsBetaApiCompleteWorkItemRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof WorkItemsBetaApi + */ + WorkItemsBetaApi.prototype.completeWorkItem = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.WorkItemsBetaApiFp)(this.configuration).completeWorkItem(requestParameters.id, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This API forwards a work item to a new owner. Either an admin, or the owning/current user must make this request. + * @summary Forward a Work Item + * @param {WorkItemsBetaApiForwardWorkItemRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof WorkItemsBetaApi + */ + WorkItemsBetaApi.prototype.forwardWorkItem = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.WorkItemsBetaApiFp)(this.configuration).forwardWorkItem(requestParameters.id, requestParameters.workItemForwardBeta, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This gets a collection of completed work items belonging to either the specified user(admin required), or the current user. + * @summary Completed Work Items + * @param {WorkItemsBetaApiGetCompletedWorkItemsRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof WorkItemsBetaApi + */ + WorkItemsBetaApi.prototype.getCompletedWorkItems = function (requestParameters, axiosOptions) { + var _this = this; + if (requestParameters === void 0) { requestParameters = {}; } + return (0, exports.WorkItemsBetaApiFp)(this.configuration).getCompletedWorkItems(requestParameters.ownerId, requestParameters.limit, requestParameters.offset, requestParameters.count, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This gets a count of completed work items belonging to either the specified user(admin required), or the current user. + * @summary Count Completed Work Items + * @param {WorkItemsBetaApiGetCountCompletedWorkItemsRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof WorkItemsBetaApi + */ + WorkItemsBetaApi.prototype.getCountCompletedWorkItems = function (requestParameters, axiosOptions) { + var _this = this; + if (requestParameters === void 0) { requestParameters = {}; } + return (0, exports.WorkItemsBetaApiFp)(this.configuration).getCountCompletedWorkItems(requestParameters.ownerId, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This gets a count of work items belonging to either the specified user(admin required), or the current user. + * @summary Count Work Items + * @param {WorkItemsBetaApiGetCountWorkItemsRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof WorkItemsBetaApi + */ + WorkItemsBetaApi.prototype.getCountWorkItems = function (requestParameters, axiosOptions) { + var _this = this; + if (requestParameters === void 0) { requestParameters = {}; } + return (0, exports.WorkItemsBetaApiFp)(this.configuration).getCountWorkItems(requestParameters.ownerId, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This gets the details of a Work Item belonging to either the specified user(admin required), or the current user. + * @summary Get a Work Item + * @param {WorkItemsBetaApiGetWorkItemRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof WorkItemsBetaApi + */ + WorkItemsBetaApi.prototype.getWorkItem = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.WorkItemsBetaApiFp)(this.configuration).getWorkItem(requestParameters.id, requestParameters.ownerId, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This gets a summary of work items belonging to either the specified user(admin required), or the current user. + * @summary Work Items Summary + * @param {WorkItemsBetaApiGetWorkItemsSummaryRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof WorkItemsBetaApi + */ + WorkItemsBetaApi.prototype.getWorkItemsSummary = function (requestParameters, axiosOptions) { + var _this = this; + if (requestParameters === void 0) { requestParameters = {}; } + return (0, exports.WorkItemsBetaApiFp)(this.configuration).getWorkItemsSummary(requestParameters.ownerId, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This gets a collection of work items belonging to either the specified user(admin required), or the current user. + * @summary List Work Items + * @param {WorkItemsBetaApiListWorkItemsRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof WorkItemsBetaApi + */ + WorkItemsBetaApi.prototype.listWorkItems = function (requestParameters, axiosOptions) { + var _this = this; + if (requestParameters === void 0) { requestParameters = {}; } + return (0, exports.WorkItemsBetaApiFp)(this.configuration).listWorkItems(requestParameters.limit, requestParameters.offset, requestParameters.count, requestParameters.ownerId, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This API rejects an Approval Item. Either an admin, or the owning/current user must make this request. + * @summary Reject an Approval Item + * @param {WorkItemsBetaApiRejectApprovalItemRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof WorkItemsBetaApi + */ + WorkItemsBetaApi.prototype.rejectApprovalItem = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.WorkItemsBetaApiFp)(this.configuration).rejectApprovalItem(requestParameters.id, requestParameters.approvalItemId, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This API bulk rejects Approval Items. Either an admin, or the owning/current user must make this request. + * @summary Bulk reject Approval Items + * @param {WorkItemsBetaApiRejectApprovalItemsInBulkRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof WorkItemsBetaApi + */ + WorkItemsBetaApi.prototype.rejectApprovalItemsInBulk = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.WorkItemsBetaApiFp)(this.configuration).rejectApprovalItemsInBulk(requestParameters.id, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This API submits account selections. Either an admin, or the owning/current user must make this request. + * @summary Submit Account Selections + * @param {WorkItemsBetaApiSubmitAccountSelectionRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof WorkItemsBetaApi + */ + WorkItemsBetaApi.prototype.submitAccountSelection = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.WorkItemsBetaApiFp)(this.configuration).submitAccountSelection(requestParameters.id, requestParameters.requestBody, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + return WorkItemsBetaApi; + }(base_1.BaseAPI)); + exports.WorkItemsBetaApi = WorkItemsBetaApi; + /** + * WorkReassignmentBetaApi - axios parameter creator + * @export + */ + var WorkReassignmentBetaApiAxiosParamCreator = function (configuration) { + var _this = this; + return { + /** + * Creates a new Reassignment Configuration for the specified identity. + * @summary Create a Reassignment Configuration + * @param {ConfigurationItemRequestBeta} configurationItemRequestBeta + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + createReassignmentConfiguration: function (configurationItemRequestBeta, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'configurationItemRequestBeta' is not null or undefined + (0, common_1.assertParamExists)('createReassignmentConfiguration', 'configurationItemRequestBeta', configurationItemRequestBeta); + localVarPath = "/reassignment-configurations"; + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + localVarHeaderParameter['Content-Type'] = 'application/json'; + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(configurationItemRequestBeta, localVarRequestOptions, configuration); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * Deletes all Reassignment Configuration for the specified identity + * @summary Delete Reassignment Configuration + * @param {string} identityId unique identity id + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + deleteReassignmentConfiguration: function (identityId, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'identityId' is not null or undefined + (0, common_1.assertParamExists)('deleteReassignmentConfiguration', 'identityId', identityId); + localVarPath = "/reassignment-configurations/{identityId}" + .replace("{".concat("identityId", "}"), encodeURIComponent(String(identityId))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'DELETE' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * Evaluates the Reassignment Configuration for an `Identity` to determine if work items for the specified type should be reassigned. If a valid Reassignment Configuration is found for the identity & work type, then a lookup is initiated which recursively fetches the Reassignment Configuration for the next `TargetIdentity` until no more results are found or a max depth of 5. That lookup trail is provided in the response and the final reassigned identity in the lookup list is returned as the `reassignToId` property. If no Reassignment Configuration is found for the specified identity & config type then the requested Identity ID will be used as the `reassignToId` value and the lookupTrail node will be empty. + * @summary Evaluate Reassignment Configuration + * @param {string} identityId unique identity id + * @param {ConfigTypeEnumBeta} configType Reassignment work type + * @param {Array} [exclusionFilters] Exclusion filters that disable parts of the reassignment evaluation. Possible values are listed below: - `SELF_REVIEW_DELEGATION`: This will exclude delegations of self-review reassignments + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getEvaluateReassignmentConfiguration: function (identityId, configType, exclusionFilters, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'identityId' is not null or undefined + (0, common_1.assertParamExists)('getEvaluateReassignmentConfiguration', 'identityId', identityId); + // verify required parameter 'configType' is not null or undefined + (0, common_1.assertParamExists)('getEvaluateReassignmentConfiguration', 'configType', configType); + localVarPath = "/reassignment-configurations/{identityId}/evaluate/{configType}" + .replace("{".concat("identityId", "}"), encodeURIComponent(String(identityId))) + .replace("{".concat("configType", "}"), encodeURIComponent(String(configType))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + if (exclusionFilters) { + localVarQueryParameter['exclusionFilters'] = exclusionFilters.join(base_1.COLLECTION_FORMATS.csv); + } + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * Gets a collection of types which are available in the Reassignment Configuration UI. + * @summary List Reassignment Config Types + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getReassignmentConfigTypes: function (axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + localVarPath = "/reassignment-configurations/types"; + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * Gets the Reassignment Configuration for an identity. + * @summary Get Reassignment Configuration + * @param {string} identityId unique identity id + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getReassignmentConfiguration: function (identityId, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'identityId' is not null or undefined + (0, common_1.assertParamExists)('getReassignmentConfiguration', 'identityId', identityId); + localVarPath = "/reassignment-configurations/{identityId}" + .replace("{".concat("identityId", "}"), encodeURIComponent(String(identityId))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * Gets the global Reassignment Configuration settings for the requestor\'s tenant. + * @summary Get Tenant-wide Reassignment Configuration settings + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getTenantConfigConfiguration: function (axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + localVarPath = "/reassignment-configurations/tenant-config"; + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * Gets all Reassignment configuration for the current org. + * @summary List Reassignment Configurations + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + listReassignmentConfigurations: function (axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + localVarPath = "/reassignment-configurations"; + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * Replaces existing Reassignment configuration for an identity with the newly provided configuration. + * @summary Update Reassignment Configuration + * @param {string} identityId unique identity id + * @param {ConfigurationItemRequestBeta} configurationItemRequestBeta + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + putReassignmentConfig: function (identityId, configurationItemRequestBeta, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'identityId' is not null or undefined + (0, common_1.assertParamExists)('putReassignmentConfig', 'identityId', identityId); + // verify required parameter 'configurationItemRequestBeta' is not null or undefined + (0, common_1.assertParamExists)('putReassignmentConfig', 'configurationItemRequestBeta', configurationItemRequestBeta); + localVarPath = "/reassignment-configurations/{identityId}" + .replace("{".concat("identityId", "}"), encodeURIComponent(String(identityId))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'PUT' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + localVarHeaderParameter['Content-Type'] = 'application/json'; + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(configurationItemRequestBeta, localVarRequestOptions, configuration); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * Replaces existing Tenant-wide Reassignment Configuration settings with the newly provided settings. + * @summary Update Tenant-wide Reassignment Configuration settings + * @param {TenantConfigurationRequestBeta} tenantConfigurationRequestBeta + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + putTenantConfiguration: function (tenantConfigurationRequestBeta, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'tenantConfigurationRequestBeta' is not null or undefined + (0, common_1.assertParamExists)('putTenantConfiguration', 'tenantConfigurationRequestBeta', tenantConfigurationRequestBeta); + localVarPath = "/reassignment-configurations/tenant-config"; + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'PUT' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + localVarHeaderParameter['Content-Type'] = 'application/json'; + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(tenantConfigurationRequestBeta, localVarRequestOptions, configuration); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + }; + }; + exports.WorkReassignmentBetaApiAxiosParamCreator = WorkReassignmentBetaApiAxiosParamCreator; + /** + * WorkReassignmentBetaApi - functional programming interface + * @export + */ + var WorkReassignmentBetaApiFp = function (configuration) { + var localVarAxiosParamCreator = (0, exports.WorkReassignmentBetaApiAxiosParamCreator)(configuration); + return { + /** + * Creates a new Reassignment Configuration for the specified identity. + * @summary Create a Reassignment Configuration + * @param {ConfigurationItemRequestBeta} configurationItemRequestBeta + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + createReassignmentConfiguration: function (configurationItemRequestBeta, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.createReassignmentConfiguration(configurationItemRequestBeta, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * Deletes all Reassignment Configuration for the specified identity + * @summary Delete Reassignment Configuration + * @param {string} identityId unique identity id + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + deleteReassignmentConfiguration: function (identityId, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.deleteReassignmentConfiguration(identityId, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * Evaluates the Reassignment Configuration for an `Identity` to determine if work items for the specified type should be reassigned. If a valid Reassignment Configuration is found for the identity & work type, then a lookup is initiated which recursively fetches the Reassignment Configuration for the next `TargetIdentity` until no more results are found or a max depth of 5. That lookup trail is provided in the response and the final reassigned identity in the lookup list is returned as the `reassignToId` property. If no Reassignment Configuration is found for the specified identity & config type then the requested Identity ID will be used as the `reassignToId` value and the lookupTrail node will be empty. + * @summary Evaluate Reassignment Configuration + * @param {string} identityId unique identity id + * @param {ConfigTypeEnumBeta} configType Reassignment work type + * @param {Array} [exclusionFilters] Exclusion filters that disable parts of the reassignment evaluation. Possible values are listed below: - `SELF_REVIEW_DELEGATION`: This will exclude delegations of self-review reassignments + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getEvaluateReassignmentConfiguration: function (identityId, configType, exclusionFilters, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.getEvaluateReassignmentConfiguration(identityId, configType, exclusionFilters, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * Gets a collection of types which are available in the Reassignment Configuration UI. + * @summary List Reassignment Config Types + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getReassignmentConfigTypes: function (axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.getReassignmentConfigTypes(axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * Gets the Reassignment Configuration for an identity. + * @summary Get Reassignment Configuration + * @param {string} identityId unique identity id + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getReassignmentConfiguration: function (identityId, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.getReassignmentConfiguration(identityId, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * Gets the global Reassignment Configuration settings for the requestor\'s tenant. + * @summary Get Tenant-wide Reassignment Configuration settings + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getTenantConfigConfiguration: function (axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.getTenantConfigConfiguration(axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * Gets all Reassignment configuration for the current org. + * @summary List Reassignment Configurations + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + listReassignmentConfigurations: function (axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.listReassignmentConfigurations(axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * Replaces existing Reassignment configuration for an identity with the newly provided configuration. + * @summary Update Reassignment Configuration + * @param {string} identityId unique identity id + * @param {ConfigurationItemRequestBeta} configurationItemRequestBeta + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + putReassignmentConfig: function (identityId, configurationItemRequestBeta, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.putReassignmentConfig(identityId, configurationItemRequestBeta, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * Replaces existing Tenant-wide Reassignment Configuration settings with the newly provided settings. + * @summary Update Tenant-wide Reassignment Configuration settings + * @param {TenantConfigurationRequestBeta} tenantConfigurationRequestBeta + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + putTenantConfiguration: function (tenantConfigurationRequestBeta, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.putTenantConfiguration(tenantConfigurationRequestBeta, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + }; + }; + exports.WorkReassignmentBetaApiFp = WorkReassignmentBetaApiFp; + /** + * WorkReassignmentBetaApi - factory interface + * @export + */ + var WorkReassignmentBetaApiFactory = function (configuration, basePath, axios) { + var localVarFp = (0, exports.WorkReassignmentBetaApiFp)(configuration); + return { + /** + * Creates a new Reassignment Configuration for the specified identity. + * @summary Create a Reassignment Configuration + * @param {ConfigurationItemRequestBeta} configurationItemRequestBeta + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + createReassignmentConfiguration: function (configurationItemRequestBeta, axiosOptions) { + return localVarFp.createReassignmentConfiguration(configurationItemRequestBeta, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * Deletes all Reassignment Configuration for the specified identity + * @summary Delete Reassignment Configuration + * @param {string} identityId unique identity id + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + deleteReassignmentConfiguration: function (identityId, axiosOptions) { + return localVarFp.deleteReassignmentConfiguration(identityId, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * Evaluates the Reassignment Configuration for an `Identity` to determine if work items for the specified type should be reassigned. If a valid Reassignment Configuration is found for the identity & work type, then a lookup is initiated which recursively fetches the Reassignment Configuration for the next `TargetIdentity` until no more results are found or a max depth of 5. That lookup trail is provided in the response and the final reassigned identity in the lookup list is returned as the `reassignToId` property. If no Reassignment Configuration is found for the specified identity & config type then the requested Identity ID will be used as the `reassignToId` value and the lookupTrail node will be empty. + * @summary Evaluate Reassignment Configuration + * @param {string} identityId unique identity id + * @param {ConfigTypeEnumBeta} configType Reassignment work type + * @param {Array} [exclusionFilters] Exclusion filters that disable parts of the reassignment evaluation. Possible values are listed below: - `SELF_REVIEW_DELEGATION`: This will exclude delegations of self-review reassignments + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getEvaluateReassignmentConfiguration: function (identityId, configType, exclusionFilters, axiosOptions) { + return localVarFp.getEvaluateReassignmentConfiguration(identityId, configType, exclusionFilters, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * Gets a collection of types which are available in the Reassignment Configuration UI. + * @summary List Reassignment Config Types + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getReassignmentConfigTypes: function (axiosOptions) { + return localVarFp.getReassignmentConfigTypes(axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * Gets the Reassignment Configuration for an identity. + * @summary Get Reassignment Configuration + * @param {string} identityId unique identity id + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getReassignmentConfiguration: function (identityId, axiosOptions) { + return localVarFp.getReassignmentConfiguration(identityId, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * Gets the global Reassignment Configuration settings for the requestor\'s tenant. + * @summary Get Tenant-wide Reassignment Configuration settings + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getTenantConfigConfiguration: function (axiosOptions) { + return localVarFp.getTenantConfigConfiguration(axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * Gets all Reassignment configuration for the current org. + * @summary List Reassignment Configurations + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + listReassignmentConfigurations: function (axiosOptions) { + return localVarFp.listReassignmentConfigurations(axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * Replaces existing Reassignment configuration for an identity with the newly provided configuration. + * @summary Update Reassignment Configuration + * @param {string} identityId unique identity id + * @param {ConfigurationItemRequestBeta} configurationItemRequestBeta + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + putReassignmentConfig: function (identityId, configurationItemRequestBeta, axiosOptions) { + return localVarFp.putReassignmentConfig(identityId, configurationItemRequestBeta, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * Replaces existing Tenant-wide Reassignment Configuration settings with the newly provided settings. + * @summary Update Tenant-wide Reassignment Configuration settings + * @param {TenantConfigurationRequestBeta} tenantConfigurationRequestBeta + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + putTenantConfiguration: function (tenantConfigurationRequestBeta, axiosOptions) { + return localVarFp.putTenantConfiguration(tenantConfigurationRequestBeta, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + }; + }; + exports.WorkReassignmentBetaApiFactory = WorkReassignmentBetaApiFactory; + /** + * WorkReassignmentBetaApi - object-oriented interface + * @export + * @class WorkReassignmentBetaApi + * @extends {BaseAPI} + */ + var WorkReassignmentBetaApi = /** @class */ (function (_super) { + __extends(WorkReassignmentBetaApi, _super); + function WorkReassignmentBetaApi() { + return _super !== null && _super.apply(this, arguments) || this; + } + /** + * Creates a new Reassignment Configuration for the specified identity. + * @summary Create a Reassignment Configuration + * @param {WorkReassignmentBetaApiCreateReassignmentConfigurationRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof WorkReassignmentBetaApi + */ + WorkReassignmentBetaApi.prototype.createReassignmentConfiguration = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.WorkReassignmentBetaApiFp)(this.configuration).createReassignmentConfiguration(requestParameters.configurationItemRequestBeta, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * Deletes all Reassignment Configuration for the specified identity + * @summary Delete Reassignment Configuration + * @param {WorkReassignmentBetaApiDeleteReassignmentConfigurationRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof WorkReassignmentBetaApi + */ + WorkReassignmentBetaApi.prototype.deleteReassignmentConfiguration = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.WorkReassignmentBetaApiFp)(this.configuration).deleteReassignmentConfiguration(requestParameters.identityId, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * Evaluates the Reassignment Configuration for an `Identity` to determine if work items for the specified type should be reassigned. If a valid Reassignment Configuration is found for the identity & work type, then a lookup is initiated which recursively fetches the Reassignment Configuration for the next `TargetIdentity` until no more results are found or a max depth of 5. That lookup trail is provided in the response and the final reassigned identity in the lookup list is returned as the `reassignToId` property. If no Reassignment Configuration is found for the specified identity & config type then the requested Identity ID will be used as the `reassignToId` value and the lookupTrail node will be empty. + * @summary Evaluate Reassignment Configuration + * @param {WorkReassignmentBetaApiGetEvaluateReassignmentConfigurationRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof WorkReassignmentBetaApi + */ + WorkReassignmentBetaApi.prototype.getEvaluateReassignmentConfiguration = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.WorkReassignmentBetaApiFp)(this.configuration).getEvaluateReassignmentConfiguration(requestParameters.identityId, requestParameters.configType, requestParameters.exclusionFilters, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * Gets a collection of types which are available in the Reassignment Configuration UI. + * @summary List Reassignment Config Types + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof WorkReassignmentBetaApi + */ + WorkReassignmentBetaApi.prototype.getReassignmentConfigTypes = function (axiosOptions) { + var _this = this; + return (0, exports.WorkReassignmentBetaApiFp)(this.configuration).getReassignmentConfigTypes(axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * Gets the Reassignment Configuration for an identity. + * @summary Get Reassignment Configuration + * @param {WorkReassignmentBetaApiGetReassignmentConfigurationRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof WorkReassignmentBetaApi + */ + WorkReassignmentBetaApi.prototype.getReassignmentConfiguration = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.WorkReassignmentBetaApiFp)(this.configuration).getReassignmentConfiguration(requestParameters.identityId, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * Gets the global Reassignment Configuration settings for the requestor\'s tenant. + * @summary Get Tenant-wide Reassignment Configuration settings + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof WorkReassignmentBetaApi + */ + WorkReassignmentBetaApi.prototype.getTenantConfigConfiguration = function (axiosOptions) { + var _this = this; + return (0, exports.WorkReassignmentBetaApiFp)(this.configuration).getTenantConfigConfiguration(axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * Gets all Reassignment configuration for the current org. + * @summary List Reassignment Configurations + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof WorkReassignmentBetaApi + */ + WorkReassignmentBetaApi.prototype.listReassignmentConfigurations = function (axiosOptions) { + var _this = this; + return (0, exports.WorkReassignmentBetaApiFp)(this.configuration).listReassignmentConfigurations(axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * Replaces existing Reassignment configuration for an identity with the newly provided configuration. + * @summary Update Reassignment Configuration + * @param {WorkReassignmentBetaApiPutReassignmentConfigRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof WorkReassignmentBetaApi + */ + WorkReassignmentBetaApi.prototype.putReassignmentConfig = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.WorkReassignmentBetaApiFp)(this.configuration).putReassignmentConfig(requestParameters.identityId, requestParameters.configurationItemRequestBeta, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * Replaces existing Tenant-wide Reassignment Configuration settings with the newly provided settings. + * @summary Update Tenant-wide Reassignment Configuration settings + * @param {WorkReassignmentBetaApiPutTenantConfigurationRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof WorkReassignmentBetaApi + */ + WorkReassignmentBetaApi.prototype.putTenantConfiguration = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.WorkReassignmentBetaApiFp)(this.configuration).putTenantConfiguration(requestParameters.tenantConfigurationRequestBeta, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + return WorkReassignmentBetaApi; + }(base_1.BaseAPI)); + exports.WorkReassignmentBetaApi = WorkReassignmentBetaApi; + /** + * WorkflowsBetaApi - axios parameter creator + * @export + */ + var WorkflowsBetaApiAxiosParamCreator = function (configuration) { + var _this = this; + return { + /** + * Use this API to cancel a running workflow execution. + * @summary Cancel Workflow Execution by ID + * @param {string} id The workflow execution ID + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + cancelWorkflowExecution: function (id, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'id' is not null or undefined + (0, common_1.assertParamExists)('cancelWorkflowExecution', 'id', id); + localVarPath = "/workflow-executions/{id}/cancel" + .replace("{".concat("id", "}"), encodeURIComponent(String(id))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * Create a new workflow with the desired trigger and steps specified in the request body. + * @summary Create Workflow + * @param {CreateWorkflowRequestBeta} createWorkflowRequestBeta + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + createWorkflow: function (createWorkflowRequestBeta, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'createWorkflowRequestBeta' is not null or undefined + (0, common_1.assertParamExists)('createWorkflow', 'createWorkflowRequestBeta', createWorkflowRequestBeta); + localVarPath = "/workflows"; + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + localVarHeaderParameter['Content-Type'] = 'application/json'; + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(createWorkflowRequestBeta, localVarRequestOptions, configuration); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * Delete a workflow. **Enabled workflows cannot be deleted**. They must first be disabled. + * @summary Delete Workflow By Id + * @param {string} id Id of the Workflow + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + deleteWorkflow: function (id, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'id' is not null or undefined + (0, common_1.assertParamExists)('deleteWorkflow', 'id', id); + localVarPath = "/workflows/{id}" + .replace("{".concat("id", "}"), encodeURIComponent(String(id))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'DELETE' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * Get a single workflow by id. + * @summary Get Workflow By Id + * @param {string} id Id of the workflow + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getWorkflow: function (id, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'id' is not null or undefined + (0, common_1.assertParamExists)('getWorkflow', 'id', id); + localVarPath = "/workflows/{id}" + .replace("{".concat("id", "}"), encodeURIComponent(String(id))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * Get a single workflow execution. Workflow executions are available for up to 90 days before being archived. If you attempt to access a workflow execution that has been archived, you will receive a 404 Not Found. + * @summary Get a Workflow Execution + * @param {string} id Id of the workflow execution + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getWorkflowExecution: function (id, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'id' is not null or undefined + (0, common_1.assertParamExists)('getWorkflowExecution', 'id', id); + localVarPath = "/workflow-executions/{id}" + .replace("{".concat("id", "}"), encodeURIComponent(String(id))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * Get a detailed history of a single workflow execution. Workflow executions are available for up to 90 days before being archived. If you attempt to access a workflow execution that has been archived, you will receive a 404 Not Found. + * @summary Get Workflow Execution History + * @param {string} id Id of the workflow execution + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getWorkflowExecutionHistory: function (id, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'id' is not null or undefined + (0, common_1.assertParamExists)('getWorkflowExecutionHistory', 'id', id); + localVarPath = "/workflow-executions/{id}/history" + .replace("{".concat("id", "}"), encodeURIComponent(String(id))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This lists all triggers, actions, and operators in the library + * @summary List Complete Workflow Library + * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + listCompleteWorkflowLibrary: function (limit, offset, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + localVarPath = "/workflow-library"; + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + if (limit !== undefined) { + localVarQueryParameter['limit'] = limit; + } + if (offset !== undefined) { + localVarQueryParameter['offset'] = offset; + } + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This lists the executions for a given workflow. Workflow executions are available for up to 90 days before being archived. By default, you can get a maximum of 250 executions. To get executions past the first 250 records, you can do the following: 1. Use the [Get Workflows](https://developer.sailpoint.com/idn/api/beta/list-workflows) endpoint to get your workflows. 2. Get your workflow ID from the response. 3. You can then do either of the following: - Filter to find relevant workflow executions. For example, you can filter for failed workflow executions: `GET /workflows/:workflowID/executions?filters=status eq \"Failed\"` - You can paginate through results with the `offset` parameter. For example, you can page through 50 executions per page and use that as a way to get to the records past the first 250. Refer to [Paginating Results](https://developer.sailpoint.com/idn/api/standard-collection-parameters#paginating-results) for more information about the query parameters you can use to achieve pagination. + * @summary List Workflow Executions + * @param {string} id Id of the workflow + * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **startTime**: *eq, lt, le, gt, ge* **status**: *eq* + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + listWorkflowExecutions: function (id, limit, offset, count, filters, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'id' is not null or undefined + (0, common_1.assertParamExists)('listWorkflowExecutions', 'id', id); + localVarPath = "/workflows/{id}/executions" + .replace("{".concat("id", "}"), encodeURIComponent(String(id))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + if (limit !== undefined) { + localVarQueryParameter['limit'] = limit; + } + if (offset !== undefined) { + localVarQueryParameter['offset'] = offset; + } + if (count !== undefined) { + localVarQueryParameter['count'] = count; + } + if (filters !== undefined) { + localVarQueryParameter['filters'] = filters; + } + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This lists the workflow actions available to you. + * @summary List Workflow Library Actions + * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **id**: *eq* + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + listWorkflowLibraryActions: function (limit, offset, filters, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + localVarPath = "/workflow-library/actions"; + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + if (limit !== undefined) { + localVarQueryParameter['limit'] = limit; + } + if (offset !== undefined) { + localVarQueryParameter['offset'] = offset; + } + if (filters !== undefined) { + localVarQueryParameter['filters'] = filters; + } + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This lists the workflow operators available to you + * @summary List Workflow Library Operators + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + listWorkflowLibraryOperators: function (axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + localVarPath = "/workflow-library/operators"; + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This lists the workflow triggers available to you + * @summary List Workflow Library Triggers + * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **id**: *eq* + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + listWorkflowLibraryTriggers: function (limit, offset, filters, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + localVarPath = "/workflow-library/triggers"; + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + if (limit !== undefined) { + localVarQueryParameter['limit'] = limit; + } + if (offset !== undefined) { + localVarQueryParameter['offset'] = offset; + } + if (filters !== undefined) { + localVarQueryParameter['filters'] = filters; + } + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * List all workflows in the tenant. + * @summary List Workflows + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + listWorkflows: function (axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + localVarPath = "/workflows"; + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * Partially update an existing Workflow using [JSON Patch](https://tools.ietf.org/html/rfc6902) syntax. + * @summary Patch Workflow + * @param {string} id Id of the Workflow + * @param {Array} jsonPatchOperationBeta + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + patchWorkflow: function (id, jsonPatchOperationBeta, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'id' is not null or undefined + (0, common_1.assertParamExists)('patchWorkflow', 'id', id); + // verify required parameter 'jsonPatchOperationBeta' is not null or undefined + (0, common_1.assertParamExists)('patchWorkflow', 'jsonPatchOperationBeta', jsonPatchOperationBeta); + localVarPath = "/workflows/{id}" + .replace("{".concat("id", "}"), encodeURIComponent(String(id))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'PATCH' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + localVarHeaderParameter['Content-Type'] = 'application/json-patch+json'; + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(jsonPatchOperationBeta, localVarRequestOptions, configuration); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This endpoint allows a service outside of IdentityNow to initiate a workflow that uses the \"External Trigger\" step. The external service will invoke this endpoint with the input data it wants to send to the workflow in the body. + * @summary Execute Workflow via External Trigger + * @param {string} id Id of the workflow + * @param {PostExternalExecuteWorkflowRequestBeta} [postExternalExecuteWorkflowRequestBeta] + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + postExternalExecuteWorkflow: function (id, postExternalExecuteWorkflowRequestBeta, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'id' is not null or undefined + (0, common_1.assertParamExists)('postExternalExecuteWorkflow', 'id', id); + localVarPath = "/workflows/execute/external/{id}" + .replace("{".concat("id", "}"), encodeURIComponent(String(id))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + localVarHeaderParameter['Content-Type'] = 'application/json'; + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(postExternalExecuteWorkflowRequestBeta, localVarRequestOptions, configuration); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * Create OAuth client ID, client secret, and callback URL for use in an external trigger. External triggers will need this information to generate an access token to authenticate to the callback URL and submit a trigger payload that will initiate the workflow. + * @summary Generate External Trigger OAuth Client + * @param {string} id Id of the workflow + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + postWorkflowExternalTrigger: function (id, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'id' is not null or undefined + (0, common_1.assertParamExists)('postWorkflowExternalTrigger', 'id', id); + localVarPath = "/workflows/{id}/external/oauth-clients" + .replace("{".concat("id", "}"), encodeURIComponent(String(id))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * Validate a workflow with an \"External Trigger\" can receive input. The response includes the input that the workflow received, which can be used to validate that the input is intact when it reaches the workflow. + * @summary Test Workflow via External Trigger + * @param {string} id Id of the workflow + * @param {TestExternalExecuteWorkflowRequestBeta} [testExternalExecuteWorkflowRequestBeta] + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + testExternalExecuteWorkflow: function (id, testExternalExecuteWorkflowRequestBeta, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'id' is not null or undefined + (0, common_1.assertParamExists)('testExternalExecuteWorkflow', 'id', id); + localVarPath = "/workflows/execute/external/{id}/test" + .replace("{".concat("id", "}"), encodeURIComponent(String(id))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + localVarHeaderParameter['Content-Type'] = 'application/json'; + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(testExternalExecuteWorkflowRequestBeta, localVarRequestOptions, configuration); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * Test a workflow with the provided input data. The input data should resemble the input that the trigger will send the workflow. See the [event trigger documentation](https://developer.sailpoint.com/idn/docs/event-triggers/available) for an example input for the trigger that initiates this workflow. This endpoint will return an execution ID, which can be used to lookup more information about the execution using the `Get a Workflow Execution` endpoint. **This will cause a live run of the workflow, which could result in unintended modifications to your IDN tenant.** + * @summary Test Workflow By Id + * @param {string} id Id of the workflow + * @param {TestWorkflowRequestBeta} testWorkflowRequestBeta + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + testWorkflow: function (id, testWorkflowRequestBeta, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'id' is not null or undefined + (0, common_1.assertParamExists)('testWorkflow', 'id', id); + // verify required parameter 'testWorkflowRequestBeta' is not null or undefined + (0, common_1.assertParamExists)('testWorkflow', 'testWorkflowRequestBeta', testWorkflowRequestBeta); + localVarPath = "/workflows/{id}/test" + .replace("{".concat("id", "}"), encodeURIComponent(String(id))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + localVarHeaderParameter['Content-Type'] = 'application/json'; + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(testWorkflowRequestBeta, localVarRequestOptions, configuration); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * Perform a full update of a workflow. The updated workflow object is returned in the response. + * @summary Update Workflow + * @param {string} id Id of the Workflow + * @param {WorkflowBodyBeta} workflowBodyBeta + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + updateWorkflow: function (id, workflowBodyBeta, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'id' is not null or undefined + (0, common_1.assertParamExists)('updateWorkflow', 'id', id); + // verify required parameter 'workflowBodyBeta' is not null or undefined + (0, common_1.assertParamExists)('updateWorkflow', 'workflowBodyBeta', workflowBodyBeta); + localVarPath = "/workflows/{id}" + .replace("{".concat("id", "}"), encodeURIComponent(String(id))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'PUT' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + localVarHeaderParameter['Content-Type'] = 'application/json'; + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(workflowBodyBeta, localVarRequestOptions, configuration); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + }; + }; + exports.WorkflowsBetaApiAxiosParamCreator = WorkflowsBetaApiAxiosParamCreator; + /** + * WorkflowsBetaApi - functional programming interface + * @export + */ + var WorkflowsBetaApiFp = function (configuration) { + var localVarAxiosParamCreator = (0, exports.WorkflowsBetaApiAxiosParamCreator)(configuration); + return { + /** + * Use this API to cancel a running workflow execution. + * @summary Cancel Workflow Execution by ID + * @param {string} id The workflow execution ID + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + cancelWorkflowExecution: function (id, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.cancelWorkflowExecution(id, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * Create a new workflow with the desired trigger and steps specified in the request body. + * @summary Create Workflow + * @param {CreateWorkflowRequestBeta} createWorkflowRequestBeta + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + createWorkflow: function (createWorkflowRequestBeta, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.createWorkflow(createWorkflowRequestBeta, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * Delete a workflow. **Enabled workflows cannot be deleted**. They must first be disabled. + * @summary Delete Workflow By Id + * @param {string} id Id of the Workflow + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + deleteWorkflow: function (id, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.deleteWorkflow(id, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * Get a single workflow by id. + * @summary Get Workflow By Id + * @param {string} id Id of the workflow + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getWorkflow: function (id, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.getWorkflow(id, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * Get a single workflow execution. Workflow executions are available for up to 90 days before being archived. If you attempt to access a workflow execution that has been archived, you will receive a 404 Not Found. + * @summary Get a Workflow Execution + * @param {string} id Id of the workflow execution + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getWorkflowExecution: function (id, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.getWorkflowExecution(id, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * Get a detailed history of a single workflow execution. Workflow executions are available for up to 90 days before being archived. If you attempt to access a workflow execution that has been archived, you will receive a 404 Not Found. + * @summary Get Workflow Execution History + * @param {string} id Id of the workflow execution + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getWorkflowExecutionHistory: function (id, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.getWorkflowExecutionHistory(id, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This lists all triggers, actions, and operators in the library + * @summary List Complete Workflow Library + * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + listCompleteWorkflowLibrary: function (limit, offset, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.listCompleteWorkflowLibrary(limit, offset, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This lists the executions for a given workflow. Workflow executions are available for up to 90 days before being archived. By default, you can get a maximum of 250 executions. To get executions past the first 250 records, you can do the following: 1. Use the [Get Workflows](https://developer.sailpoint.com/idn/api/beta/list-workflows) endpoint to get your workflows. 2. Get your workflow ID from the response. 3. You can then do either of the following: - Filter to find relevant workflow executions. For example, you can filter for failed workflow executions: `GET /workflows/:workflowID/executions?filters=status eq \"Failed\"` - You can paginate through results with the `offset` parameter. For example, you can page through 50 executions per page and use that as a way to get to the records past the first 250. Refer to [Paginating Results](https://developer.sailpoint.com/idn/api/standard-collection-parameters#paginating-results) for more information about the query parameters you can use to achieve pagination. + * @summary List Workflow Executions + * @param {string} id Id of the workflow + * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **startTime**: *eq, lt, le, gt, ge* **status**: *eq* + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + listWorkflowExecutions: function (id, limit, offset, count, filters, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.listWorkflowExecutions(id, limit, offset, count, filters, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This lists the workflow actions available to you. + * @summary List Workflow Library Actions + * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **id**: *eq* + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + listWorkflowLibraryActions: function (limit, offset, filters, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.listWorkflowLibraryActions(limit, offset, filters, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This lists the workflow operators available to you + * @summary List Workflow Library Operators + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + listWorkflowLibraryOperators: function (axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.listWorkflowLibraryOperators(axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This lists the workflow triggers available to you + * @summary List Workflow Library Triggers + * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **id**: *eq* + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + listWorkflowLibraryTriggers: function (limit, offset, filters, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.listWorkflowLibraryTriggers(limit, offset, filters, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * List all workflows in the tenant. + * @summary List Workflows + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + listWorkflows: function (axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.listWorkflows(axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * Partially update an existing Workflow using [JSON Patch](https://tools.ietf.org/html/rfc6902) syntax. + * @summary Patch Workflow + * @param {string} id Id of the Workflow + * @param {Array} jsonPatchOperationBeta + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + patchWorkflow: function (id, jsonPatchOperationBeta, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.patchWorkflow(id, jsonPatchOperationBeta, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This endpoint allows a service outside of IdentityNow to initiate a workflow that uses the \"External Trigger\" step. The external service will invoke this endpoint with the input data it wants to send to the workflow in the body. + * @summary Execute Workflow via External Trigger + * @param {string} id Id of the workflow + * @param {PostExternalExecuteWorkflowRequestBeta} [postExternalExecuteWorkflowRequestBeta] + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + postExternalExecuteWorkflow: function (id, postExternalExecuteWorkflowRequestBeta, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.postExternalExecuteWorkflow(id, postExternalExecuteWorkflowRequestBeta, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * Create OAuth client ID, client secret, and callback URL for use in an external trigger. External triggers will need this information to generate an access token to authenticate to the callback URL and submit a trigger payload that will initiate the workflow. + * @summary Generate External Trigger OAuth Client + * @param {string} id Id of the workflow + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + postWorkflowExternalTrigger: function (id, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.postWorkflowExternalTrigger(id, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * Validate a workflow with an \"External Trigger\" can receive input. The response includes the input that the workflow received, which can be used to validate that the input is intact when it reaches the workflow. + * @summary Test Workflow via External Trigger + * @param {string} id Id of the workflow + * @param {TestExternalExecuteWorkflowRequestBeta} [testExternalExecuteWorkflowRequestBeta] + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + testExternalExecuteWorkflow: function (id, testExternalExecuteWorkflowRequestBeta, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.testExternalExecuteWorkflow(id, testExternalExecuteWorkflowRequestBeta, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * Test a workflow with the provided input data. The input data should resemble the input that the trigger will send the workflow. See the [event trigger documentation](https://developer.sailpoint.com/idn/docs/event-triggers/available) for an example input for the trigger that initiates this workflow. This endpoint will return an execution ID, which can be used to lookup more information about the execution using the `Get a Workflow Execution` endpoint. **This will cause a live run of the workflow, which could result in unintended modifications to your IDN tenant.** + * @summary Test Workflow By Id + * @param {string} id Id of the workflow + * @param {TestWorkflowRequestBeta} testWorkflowRequestBeta + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + testWorkflow: function (id, testWorkflowRequestBeta, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.testWorkflow(id, testWorkflowRequestBeta, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * Perform a full update of a workflow. The updated workflow object is returned in the response. + * @summary Update Workflow + * @param {string} id Id of the Workflow + * @param {WorkflowBodyBeta} workflowBodyBeta + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + updateWorkflow: function (id, workflowBodyBeta, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.updateWorkflow(id, workflowBodyBeta, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + }; + }; + exports.WorkflowsBetaApiFp = WorkflowsBetaApiFp; + /** + * WorkflowsBetaApi - factory interface + * @export + */ + var WorkflowsBetaApiFactory = function (configuration, basePath, axios) { + var localVarFp = (0, exports.WorkflowsBetaApiFp)(configuration); + return { + /** + * Use this API to cancel a running workflow execution. + * @summary Cancel Workflow Execution by ID + * @param {string} id The workflow execution ID + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + cancelWorkflowExecution: function (id, axiosOptions) { + return localVarFp.cancelWorkflowExecution(id, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * Create a new workflow with the desired trigger and steps specified in the request body. + * @summary Create Workflow + * @param {CreateWorkflowRequestBeta} createWorkflowRequestBeta + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + createWorkflow: function (createWorkflowRequestBeta, axiosOptions) { + return localVarFp.createWorkflow(createWorkflowRequestBeta, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * Delete a workflow. **Enabled workflows cannot be deleted**. They must first be disabled. + * @summary Delete Workflow By Id + * @param {string} id Id of the Workflow + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + deleteWorkflow: function (id, axiosOptions) { + return localVarFp.deleteWorkflow(id, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * Get a single workflow by id. + * @summary Get Workflow By Id + * @param {string} id Id of the workflow + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getWorkflow: function (id, axiosOptions) { + return localVarFp.getWorkflow(id, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * Get a single workflow execution. Workflow executions are available for up to 90 days before being archived. If you attempt to access a workflow execution that has been archived, you will receive a 404 Not Found. + * @summary Get a Workflow Execution + * @param {string} id Id of the workflow execution + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getWorkflowExecution: function (id, axiosOptions) { + return localVarFp.getWorkflowExecution(id, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * Get a detailed history of a single workflow execution. Workflow executions are available for up to 90 days before being archived. If you attempt to access a workflow execution that has been archived, you will receive a 404 Not Found. + * @summary Get Workflow Execution History + * @param {string} id Id of the workflow execution + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getWorkflowExecutionHistory: function (id, axiosOptions) { + return localVarFp.getWorkflowExecutionHistory(id, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This lists all triggers, actions, and operators in the library + * @summary List Complete Workflow Library + * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + listCompleteWorkflowLibrary: function (limit, offset, axiosOptions) { + return localVarFp.listCompleteWorkflowLibrary(limit, offset, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This lists the executions for a given workflow. Workflow executions are available for up to 90 days before being archived. By default, you can get a maximum of 250 executions. To get executions past the first 250 records, you can do the following: 1. Use the [Get Workflows](https://developer.sailpoint.com/idn/api/beta/list-workflows) endpoint to get your workflows. 2. Get your workflow ID from the response. 3. You can then do either of the following: - Filter to find relevant workflow executions. For example, you can filter for failed workflow executions: `GET /workflows/:workflowID/executions?filters=status eq \"Failed\"` - You can paginate through results with the `offset` parameter. For example, you can page through 50 executions per page and use that as a way to get to the records past the first 250. Refer to [Paginating Results](https://developer.sailpoint.com/idn/api/standard-collection-parameters#paginating-results) for more information about the query parameters you can use to achieve pagination. + * @summary List Workflow Executions + * @param {string} id Id of the workflow + * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **startTime**: *eq, lt, le, gt, ge* **status**: *eq* + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + listWorkflowExecutions: function (id, limit, offset, count, filters, axiosOptions) { + return localVarFp.listWorkflowExecutions(id, limit, offset, count, filters, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This lists the workflow actions available to you. + * @summary List Workflow Library Actions + * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **id**: *eq* + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + listWorkflowLibraryActions: function (limit, offset, filters, axiosOptions) { + return localVarFp.listWorkflowLibraryActions(limit, offset, filters, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This lists the workflow operators available to you + * @summary List Workflow Library Operators + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + listWorkflowLibraryOperators: function (axiosOptions) { + return localVarFp.listWorkflowLibraryOperators(axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This lists the workflow triggers available to you + * @summary List Workflow Library Triggers + * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **id**: *eq* + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + listWorkflowLibraryTriggers: function (limit, offset, filters, axiosOptions) { + return localVarFp.listWorkflowLibraryTriggers(limit, offset, filters, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * List all workflows in the tenant. + * @summary List Workflows + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + listWorkflows: function (axiosOptions) { + return localVarFp.listWorkflows(axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * Partially update an existing Workflow using [JSON Patch](https://tools.ietf.org/html/rfc6902) syntax. + * @summary Patch Workflow + * @param {string} id Id of the Workflow + * @param {Array} jsonPatchOperationBeta + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + patchWorkflow: function (id, jsonPatchOperationBeta, axiosOptions) { + return localVarFp.patchWorkflow(id, jsonPatchOperationBeta, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This endpoint allows a service outside of IdentityNow to initiate a workflow that uses the \"External Trigger\" step. The external service will invoke this endpoint with the input data it wants to send to the workflow in the body. + * @summary Execute Workflow via External Trigger + * @param {string} id Id of the workflow + * @param {PostExternalExecuteWorkflowRequestBeta} [postExternalExecuteWorkflowRequestBeta] + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + postExternalExecuteWorkflow: function (id, postExternalExecuteWorkflowRequestBeta, axiosOptions) { + return localVarFp.postExternalExecuteWorkflow(id, postExternalExecuteWorkflowRequestBeta, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * Create OAuth client ID, client secret, and callback URL for use in an external trigger. External triggers will need this information to generate an access token to authenticate to the callback URL and submit a trigger payload that will initiate the workflow. + * @summary Generate External Trigger OAuth Client + * @param {string} id Id of the workflow + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + postWorkflowExternalTrigger: function (id, axiosOptions) { + return localVarFp.postWorkflowExternalTrigger(id, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * Validate a workflow with an \"External Trigger\" can receive input. The response includes the input that the workflow received, which can be used to validate that the input is intact when it reaches the workflow. + * @summary Test Workflow via External Trigger + * @param {string} id Id of the workflow + * @param {TestExternalExecuteWorkflowRequestBeta} [testExternalExecuteWorkflowRequestBeta] + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + testExternalExecuteWorkflow: function (id, testExternalExecuteWorkflowRequestBeta, axiosOptions) { + return localVarFp.testExternalExecuteWorkflow(id, testExternalExecuteWorkflowRequestBeta, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * Test a workflow with the provided input data. The input data should resemble the input that the trigger will send the workflow. See the [event trigger documentation](https://developer.sailpoint.com/idn/docs/event-triggers/available) for an example input for the trigger that initiates this workflow. This endpoint will return an execution ID, which can be used to lookup more information about the execution using the `Get a Workflow Execution` endpoint. **This will cause a live run of the workflow, which could result in unintended modifications to your IDN tenant.** + * @summary Test Workflow By Id + * @param {string} id Id of the workflow + * @param {TestWorkflowRequestBeta} testWorkflowRequestBeta + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + testWorkflow: function (id, testWorkflowRequestBeta, axiosOptions) { + return localVarFp.testWorkflow(id, testWorkflowRequestBeta, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * Perform a full update of a workflow. The updated workflow object is returned in the response. + * @summary Update Workflow + * @param {string} id Id of the Workflow + * @param {WorkflowBodyBeta} workflowBodyBeta + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + updateWorkflow: function (id, workflowBodyBeta, axiosOptions) { + return localVarFp.updateWorkflow(id, workflowBodyBeta, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + }; + }; + exports.WorkflowsBetaApiFactory = WorkflowsBetaApiFactory; + /** + * WorkflowsBetaApi - object-oriented interface + * @export + * @class WorkflowsBetaApi + * @extends {BaseAPI} + */ + var WorkflowsBetaApi = /** @class */ (function (_super) { + __extends(WorkflowsBetaApi, _super); + function WorkflowsBetaApi() { + return _super !== null && _super.apply(this, arguments) || this; + } + /** + * Use this API to cancel a running workflow execution. + * @summary Cancel Workflow Execution by ID + * @param {WorkflowsBetaApiCancelWorkflowExecutionRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof WorkflowsBetaApi + */ + WorkflowsBetaApi.prototype.cancelWorkflowExecution = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.WorkflowsBetaApiFp)(this.configuration).cancelWorkflowExecution(requestParameters.id, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * Create a new workflow with the desired trigger and steps specified in the request body. + * @summary Create Workflow + * @param {WorkflowsBetaApiCreateWorkflowRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof WorkflowsBetaApi + */ + WorkflowsBetaApi.prototype.createWorkflow = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.WorkflowsBetaApiFp)(this.configuration).createWorkflow(requestParameters.createWorkflowRequestBeta, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * Delete a workflow. **Enabled workflows cannot be deleted**. They must first be disabled. + * @summary Delete Workflow By Id + * @param {WorkflowsBetaApiDeleteWorkflowRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof WorkflowsBetaApi + */ + WorkflowsBetaApi.prototype.deleteWorkflow = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.WorkflowsBetaApiFp)(this.configuration).deleteWorkflow(requestParameters.id, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * Get a single workflow by id. + * @summary Get Workflow By Id + * @param {WorkflowsBetaApiGetWorkflowRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof WorkflowsBetaApi + */ + WorkflowsBetaApi.prototype.getWorkflow = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.WorkflowsBetaApiFp)(this.configuration).getWorkflow(requestParameters.id, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * Get a single workflow execution. Workflow executions are available for up to 90 days before being archived. If you attempt to access a workflow execution that has been archived, you will receive a 404 Not Found. + * @summary Get a Workflow Execution + * @param {WorkflowsBetaApiGetWorkflowExecutionRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof WorkflowsBetaApi + */ + WorkflowsBetaApi.prototype.getWorkflowExecution = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.WorkflowsBetaApiFp)(this.configuration).getWorkflowExecution(requestParameters.id, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * Get a detailed history of a single workflow execution. Workflow executions are available for up to 90 days before being archived. If you attempt to access a workflow execution that has been archived, you will receive a 404 Not Found. + * @summary Get Workflow Execution History + * @param {WorkflowsBetaApiGetWorkflowExecutionHistoryRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof WorkflowsBetaApi + */ + WorkflowsBetaApi.prototype.getWorkflowExecutionHistory = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.WorkflowsBetaApiFp)(this.configuration).getWorkflowExecutionHistory(requestParameters.id, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This lists all triggers, actions, and operators in the library + * @summary List Complete Workflow Library + * @param {WorkflowsBetaApiListCompleteWorkflowLibraryRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof WorkflowsBetaApi + */ + WorkflowsBetaApi.prototype.listCompleteWorkflowLibrary = function (requestParameters, axiosOptions) { + var _this = this; + if (requestParameters === void 0) { requestParameters = {}; } + return (0, exports.WorkflowsBetaApiFp)(this.configuration).listCompleteWorkflowLibrary(requestParameters.limit, requestParameters.offset, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This lists the executions for a given workflow. Workflow executions are available for up to 90 days before being archived. By default, you can get a maximum of 250 executions. To get executions past the first 250 records, you can do the following: 1. Use the [Get Workflows](https://developer.sailpoint.com/idn/api/beta/list-workflows) endpoint to get your workflows. 2. Get your workflow ID from the response. 3. You can then do either of the following: - Filter to find relevant workflow executions. For example, you can filter for failed workflow executions: `GET /workflows/:workflowID/executions?filters=status eq \"Failed\"` - You can paginate through results with the `offset` parameter. For example, you can page through 50 executions per page and use that as a way to get to the records past the first 250. Refer to [Paginating Results](https://developer.sailpoint.com/idn/api/standard-collection-parameters#paginating-results) for more information about the query parameters you can use to achieve pagination. + * @summary List Workflow Executions + * @param {WorkflowsBetaApiListWorkflowExecutionsRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof WorkflowsBetaApi + */ + WorkflowsBetaApi.prototype.listWorkflowExecutions = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.WorkflowsBetaApiFp)(this.configuration).listWorkflowExecutions(requestParameters.id, requestParameters.limit, requestParameters.offset, requestParameters.count, requestParameters.filters, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This lists the workflow actions available to you. + * @summary List Workflow Library Actions + * @param {WorkflowsBetaApiListWorkflowLibraryActionsRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof WorkflowsBetaApi + */ + WorkflowsBetaApi.prototype.listWorkflowLibraryActions = function (requestParameters, axiosOptions) { + var _this = this; + if (requestParameters === void 0) { requestParameters = {}; } + return (0, exports.WorkflowsBetaApiFp)(this.configuration).listWorkflowLibraryActions(requestParameters.limit, requestParameters.offset, requestParameters.filters, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This lists the workflow operators available to you + * @summary List Workflow Library Operators + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof WorkflowsBetaApi + */ + WorkflowsBetaApi.prototype.listWorkflowLibraryOperators = function (axiosOptions) { + var _this = this; + return (0, exports.WorkflowsBetaApiFp)(this.configuration).listWorkflowLibraryOperators(axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This lists the workflow triggers available to you + * @summary List Workflow Library Triggers + * @param {WorkflowsBetaApiListWorkflowLibraryTriggersRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof WorkflowsBetaApi + */ + WorkflowsBetaApi.prototype.listWorkflowLibraryTriggers = function (requestParameters, axiosOptions) { + var _this = this; + if (requestParameters === void 0) { requestParameters = {}; } + return (0, exports.WorkflowsBetaApiFp)(this.configuration).listWorkflowLibraryTriggers(requestParameters.limit, requestParameters.offset, requestParameters.filters, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * List all workflows in the tenant. + * @summary List Workflows + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof WorkflowsBetaApi + */ + WorkflowsBetaApi.prototype.listWorkflows = function (axiosOptions) { + var _this = this; + return (0, exports.WorkflowsBetaApiFp)(this.configuration).listWorkflows(axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * Partially update an existing Workflow using [JSON Patch](https://tools.ietf.org/html/rfc6902) syntax. + * @summary Patch Workflow + * @param {WorkflowsBetaApiPatchWorkflowRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof WorkflowsBetaApi + */ + WorkflowsBetaApi.prototype.patchWorkflow = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.WorkflowsBetaApiFp)(this.configuration).patchWorkflow(requestParameters.id, requestParameters.jsonPatchOperationBeta, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This endpoint allows a service outside of IdentityNow to initiate a workflow that uses the \"External Trigger\" step. The external service will invoke this endpoint with the input data it wants to send to the workflow in the body. + * @summary Execute Workflow via External Trigger + * @param {WorkflowsBetaApiPostExternalExecuteWorkflowRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof WorkflowsBetaApi + */ + WorkflowsBetaApi.prototype.postExternalExecuteWorkflow = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.WorkflowsBetaApiFp)(this.configuration).postExternalExecuteWorkflow(requestParameters.id, requestParameters.postExternalExecuteWorkflowRequestBeta, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * Create OAuth client ID, client secret, and callback URL for use in an external trigger. External triggers will need this information to generate an access token to authenticate to the callback URL and submit a trigger payload that will initiate the workflow. + * @summary Generate External Trigger OAuth Client + * @param {WorkflowsBetaApiPostWorkflowExternalTriggerRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof WorkflowsBetaApi + */ + WorkflowsBetaApi.prototype.postWorkflowExternalTrigger = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.WorkflowsBetaApiFp)(this.configuration).postWorkflowExternalTrigger(requestParameters.id, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * Validate a workflow with an \"External Trigger\" can receive input. The response includes the input that the workflow received, which can be used to validate that the input is intact when it reaches the workflow. + * @summary Test Workflow via External Trigger + * @param {WorkflowsBetaApiTestExternalExecuteWorkflowRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof WorkflowsBetaApi + */ + WorkflowsBetaApi.prototype.testExternalExecuteWorkflow = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.WorkflowsBetaApiFp)(this.configuration).testExternalExecuteWorkflow(requestParameters.id, requestParameters.testExternalExecuteWorkflowRequestBeta, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * Test a workflow with the provided input data. The input data should resemble the input that the trigger will send the workflow. See the [event trigger documentation](https://developer.sailpoint.com/idn/docs/event-triggers/available) for an example input for the trigger that initiates this workflow. This endpoint will return an execution ID, which can be used to lookup more information about the execution using the `Get a Workflow Execution` endpoint. **This will cause a live run of the workflow, which could result in unintended modifications to your IDN tenant.** + * @summary Test Workflow By Id + * @param {WorkflowsBetaApiTestWorkflowRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof WorkflowsBetaApi + */ + WorkflowsBetaApi.prototype.testWorkflow = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.WorkflowsBetaApiFp)(this.configuration).testWorkflow(requestParameters.id, requestParameters.testWorkflowRequestBeta, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * Perform a full update of a workflow. The updated workflow object is returned in the response. + * @summary Update Workflow + * @param {WorkflowsBetaApiUpdateWorkflowRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof WorkflowsBetaApi + */ + WorkflowsBetaApi.prototype.updateWorkflow = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.WorkflowsBetaApiFp)(this.configuration).updateWorkflow(requestParameters.id, requestParameters.workflowBodyBeta, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + return WorkflowsBetaApi; + }(base_1.BaseAPI)); + exports.WorkflowsBetaApi = WorkflowsBetaApi; + + } (api$3)); + return api$3; +} + +var configuration$4 = {}; + +var hasRequiredConfiguration$4; + +function requireConfiguration$4 () { + if (hasRequiredConfiguration$4) return configuration$4; + hasRequiredConfiguration$4 = 1; + /* tslint:disable */ + /* eslint-disable */ + /** + * IdentityNow Beta API + * Use these APIs to interact with the IdentityNow platform to achieve repeatable, automated processes with greater scalability. These APIs are in beta and are subject to change. We encourage you to join the SailPoint Developer Community forum at https://developer.sailpoint.com/discuss to connect with other developers using our APIs. + * + * The version of the OpenAPI document: 3.1.0-beta + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + Object.defineProperty(configuration$4, "__esModule", { value: true }); + configuration$4.Configuration = void 0; + var Configuration = /** @class */ (function () { + function Configuration(param) { + if (param === void 0) { param = {}; } + this.apiKey = param.apiKey; + this.username = param.username; + this.password = param.password; + this.accessToken = param.accessToken; + this.basePath = param.basePath; + this.baseOptions = param.baseOptions; + this.formDataCtor = param.formDataCtor; + } + /** + * Check if the given MIME is a JSON MIME. + * JSON MIME examples: + * application/json + * application/json; charset=UTF8 + * APPLICATION/JSON + * application/vnd.company+json + * @param mime - MIME (Multipurpose Internet Mail Extensions) + * @return True if the given MIME is JSON, false otherwise. + */ + Configuration.prototype.isJsonMime = function (mime) { + var jsonMime = new RegExp('^(application\/json|[^;/ \t]+\/[^;/ \t]+[+]json)[ \t]*(;.*)?$', 'i'); + return mime !== null && (jsonMime.test(mime) || mime.toLowerCase() === 'application/json-patch+json'); + }; + return Configuration; + }()); + configuration$4.Configuration = Configuration; + + return configuration$4; +} + +var api$2 = {}; + +var common$3 = {}; + +var base$2 = {}; + +var hasRequiredBase$2; + +function requireBase$2 () { + if (hasRequiredBase$2) return base$2; + hasRequiredBase$2 = 1; + (function (exports) { + /* tslint:disable */ + /* eslint-disable */ + /** + * IdentityNow V3 API + * Use these APIs to interact with the IdentityNow platform to achieve repeatable, automated processes with greater scalability. We encourage you to join the SailPoint Developer Community forum at https://developer.sailpoint.com/discuss to connect with other developers using our APIs. + * + * The version of the OpenAPI document: 3.0.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + var __extends = (commonjsGlobal && commonjsGlobal.__extends) || (function () { + var extendStatics = function (d, b) { + extendStatics = Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || + function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; }; + return extendStatics(d, b); + }; + return function (d, b) { + if (typeof b !== "function" && b !== null) + throw new TypeError("Class extends value " + String(b) + " is not a constructor or null"); + extendStatics(d, b); + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; + })(); + var __importDefault = (commonjsGlobal && commonjsGlobal.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; + }; + Object.defineProperty(exports, "__esModule", { value: true }); + exports.RequiredError = exports.BaseAPI = exports.COLLECTION_FORMATS = exports.BASE_PATH = void 0; + // Some imports not used depending on template conditions + // @ts-ignore + var axios_1 = __importDefault(requireAxios()); + exports.BASE_PATH = "https://sailpoint.api.identitynow.com/v3".replace(/\/+$/, ""); + /** + * + * @export + */ + exports.COLLECTION_FORMATS = { + csv: ",", + ssv: " ", + tsv: "\t", + pipes: "|", + }; + /** + * + * @export + * @class BaseAPI + */ + var BaseAPI = /** @class */ (function () { + function BaseAPI(configuration, basePath, axios) { + if (basePath === void 0) { basePath = exports.BASE_PATH; } + if (axios === void 0) { axios = axios_1.default; } + this.basePath = basePath; + this.axios = axios; + if (configuration) { + this.configuration = configuration; + this.basePath = configuration.basePathV3 || this.basePath; + } + } + return BaseAPI; + }()); + exports.BaseAPI = BaseAPI; + /** + * + * @export + * @class RequiredError + * @extends {Error} + */ + var RequiredError = /** @class */ (function (_super) { + __extends(RequiredError, _super); + function RequiredError(field, msg) { + var _this = _super.call(this, msg) || this; + _this.field = field; + _this.name = "RequiredError"; + return _this; + } + return RequiredError; + }(Error)); + exports.RequiredError = RequiredError; + + } (base$2)); + return base$2; +} + +var hasRequiredCommon$3; + +function requireCommon$3 () { + if (hasRequiredCommon$3) return common$3; + hasRequiredCommon$3 = 1; + /* tslint:disable */ + /* eslint-disable */ + /** + * IdentityNow V3 API + * Use these APIs to interact with the IdentityNow platform to achieve repeatable, automated processes with greater scalability. We encourage you to join the SailPoint Developer Community forum at https://developer.sailpoint.com/discuss to connect with other developers using our APIs. + * + * The version of the OpenAPI document: 3.0.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + var __assign = (commonjsGlobal && commonjsGlobal.__assign) || function () { + __assign = Object.assign || function(t) { + for (var s, i = 1, n = arguments.length; i < n; i++) { + s = arguments[i]; + for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) + t[p] = s[p]; + } + return t; + }; + return __assign.apply(this, arguments); + }; + var __awaiter = (commonjsGlobal && commonjsGlobal.__awaiter) || function (thisArg, _arguments, P, generator) { + function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); + }; + var __generator = (commonjsGlobal && commonjsGlobal.__generator) || function (thisArg, body) { + var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g; + return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; + function verb(n) { return function (v) { return step([n, v]); }; } + function step(op) { + if (f) throw new TypeError("Generator is already executing."); + while (g && (g = 0, op[0] && (_ = 0)), _) try { + if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; + if (y = 0, t) op = [op[0] & 2, t.value]; + switch (op[0]) { + case 0: case 1: t = op; break; + case 4: _.label++; return { value: op[1], done: false }; + case 5: _.label++; y = op[1]; op = [0]; continue; + case 7: op = _.ops.pop(); _.trys.pop(); continue; + default: + if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } + if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } + if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } + if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } + if (t[2]) _.ops.pop(); + _.trys.pop(); continue; + } + op = body.call(thisArg, _); + } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } + if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; + } + }; + var __importDefault = (commonjsGlobal && commonjsGlobal.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; + }; + Object.defineProperty(common$3, "__esModule", { value: true }); + common$3.createRequestFunction = common$3.toPathString = common$3.serializeDataIfNeeded = common$3.setSearchParams = common$3.setOAuthToObject = common$3.setBearerAuthToObject = common$3.setBasicAuthToObject = common$3.setApiKeyToObject = common$3.assertParamExists = common$3.DUMMY_BASE_URL = void 0; + var base_1 = requireBase$2(); + var axios_retry_1 = __importDefault(requireAxiosRetry()); + /** + * + * @export + */ + common$3.DUMMY_BASE_URL = 'https://example.com'; + /** + * + * @throws {RequiredError} + * @export + */ + var assertParamExists = function (functionName, paramName, paramValue) { + if (paramValue === null || paramValue === undefined) { + throw new base_1.RequiredError(paramName, "Required parameter ".concat(paramName, " was null or undefined when calling ").concat(functionName, ".")); + } + }; + common$3.assertParamExists = assertParamExists; + /** + * + * @export + */ + var setApiKeyToObject = function (object, keyParamName, configuration) { + return __awaiter(this, void 0, void 0, function () { + var localVarApiKeyValue, _a; + return __generator(this, function (_b) { + switch (_b.label) { + case 0: + if (!(configuration && configuration.apiKey)) return [3 /*break*/, 5]; + if (!(typeof configuration.apiKey === 'function')) return [3 /*break*/, 2]; + return [4 /*yield*/, configuration.apiKey(keyParamName)]; + case 1: + _a = _b.sent(); + return [3 /*break*/, 4]; + case 2: return [4 /*yield*/, configuration.apiKey]; + case 3: + _a = _b.sent(); + _b.label = 4; + case 4: + localVarApiKeyValue = _a; + object[keyParamName] = localVarApiKeyValue; + _b.label = 5; + case 5: return [2 /*return*/]; + } + }); + }); + }; + common$3.setApiKeyToObject = setApiKeyToObject; + /** + * + * @export + */ + var setBasicAuthToObject = function (object, configuration) { + if (configuration && (configuration.username || configuration.password)) { + object["auth"] = { username: configuration.username, password: configuration.password }; + } + }; + common$3.setBasicAuthToObject = setBasicAuthToObject; + /** + * + * @export + */ + var setBearerAuthToObject = function (object, configuration) { + return __awaiter(this, void 0, void 0, function () { + var accessToken, _a; + return __generator(this, function (_b) { + switch (_b.label) { + case 0: + if (!(configuration && configuration.accessToken)) return [3 /*break*/, 5]; + if (!(typeof configuration.accessToken === 'function')) return [3 /*break*/, 2]; + return [4 /*yield*/, configuration.accessToken()]; + case 1: + _a = _b.sent(); + return [3 /*break*/, 4]; + case 2: return [4 /*yield*/, configuration.accessToken]; + case 3: + _a = _b.sent(); + _b.label = 4; + case 4: + accessToken = _a; + object["Authorization"] = "Bearer " + accessToken; + _b.label = 5; + case 5: return [2 /*return*/]; + } + }); + }); + }; + common$3.setBearerAuthToObject = setBearerAuthToObject; + /** + * + * @export + */ + var setOAuthToObject = function (object, name, scopes, configuration) { + return __awaiter(this, void 0, void 0, function () { + var localVarAccessTokenValue, _a; + return __generator(this, function (_b) { + switch (_b.label) { + case 0: + if (!(configuration && configuration.accessToken)) return [3 /*break*/, 5]; + if (!(typeof configuration.accessToken === 'function')) return [3 /*break*/, 2]; + return [4 /*yield*/, configuration.accessToken(name, scopes)]; + case 1: + _a = _b.sent(); + return [3 /*break*/, 4]; + case 2: return [4 /*yield*/, configuration.accessToken]; + case 3: + _a = _b.sent(); + _b.label = 4; + case 4: + localVarAccessTokenValue = _a; + object["Authorization"] = "Bearer " + localVarAccessTokenValue; + _b.label = 5; + case 5: return [2 /*return*/]; + } + }); + }); + }; + common$3.setOAuthToObject = setOAuthToObject; + /** + * + * @export + */ + var setSearchParams = function (url) { + var objects = []; + for (var _i = 1; _i < arguments.length; _i++) { + objects[_i - 1] = arguments[_i]; + } + var searchParams = new URLSearchParams(url.search); + for (var _a = 0, objects_1 = objects; _a < objects_1.length; _a++) { + var object = objects_1[_a]; + for (var key in object) { + if (Array.isArray(object[key])) { + searchParams.delete(key); + for (var _b = 0, _c = object[key]; _b < _c.length; _b++) { + var item = _c[_b]; + searchParams.append(key, item); + } + } + else { + searchParams.set(key, object[key]); + } + } + } + url.search = searchParams.toString(); + }; + common$3.setSearchParams = setSearchParams; + /** + * + * @export + */ + var serializeDataIfNeeded = function (value, requestOptions, configuration) { + var nonString = typeof value !== 'string'; + var needsSerialization = nonString && configuration && configuration.isJsonMime + ? configuration.isJsonMime(requestOptions.headers['Content-Type']) + : nonString; + return needsSerialization + ? JSON.stringify(value !== undefined ? value : {}) + : (value || ""); + }; + common$3.serializeDataIfNeeded = serializeDataIfNeeded; + /** + * + * @export + */ + var toPathString = function (url) { + return url.pathname + url.search + url.hash; + }; + common$3.toPathString = toPathString; + /** + * + * @export + */ + var createRequestFunction = function (axiosArgs, globalAxios, BASE_PATH, configuration) { + return function (axios, basePath) { + if (axios === void 0) { axios = globalAxios; } + if (basePath === void 0) { basePath = BASE_PATH; } + (0, axios_retry_1.default)(globalAxios, configuration.retriesConfig); + axiosArgs.axiosOptions.headers['X-SailPoint-SDK'] = 'typescript-1.3.0'; + axiosArgs.axiosOptions.headers['User-Agent'] = 'OpenAPI-Generator/1.3.0/ts'; + var axiosRequestArgs = __assign(__assign({}, axiosArgs.axiosOptions), { url: ((configuration === null || configuration === void 0 ? void 0 : configuration.basePathV3) || basePath) + axiosArgs.url }); + return axios.request(axiosRequestArgs); + }; + }; + common$3.createRequestFunction = createRequestFunction; + + return common$3; +} + +var hasRequiredApi$2; + +function requireApi$2 () { + if (hasRequiredApi$2) return api$2; + hasRequiredApi$2 = 1; + (function (exports) { + /* tslint:disable */ + /* eslint-disable */ + /** + * IdentityNow V3 API + * Use these APIs to interact with the IdentityNow platform to achieve repeatable, automated processes with greater scalability. We encourage you to join the SailPoint Developer Community forum at https://developer.sailpoint.com/discuss to connect with other developers using our APIs. + * + * The version of the OpenAPI document: 3.0.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + var __extends = (commonjsGlobal && commonjsGlobal.__extends) || (function () { + var extendStatics = function (d, b) { + extendStatics = Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || + function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; }; + return extendStatics(d, b); + }; + return function (d, b) { + if (typeof b !== "function" && b !== null) + throw new TypeError("Class extends value " + String(b) + " is not a constructor or null"); + extendStatics(d, b); + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; + })(); + var __assign = (commonjsGlobal && commonjsGlobal.__assign) || function () { + __assign = Object.assign || function(t) { + for (var s, i = 1, n = arguments.length; i < n; i++) { + s = arguments[i]; + for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) + t[p] = s[p]; + } + return t; + }; + return __assign.apply(this, arguments); + }; + var __awaiter = (commonjsGlobal && commonjsGlobal.__awaiter) || function (thisArg, _arguments, P, generator) { + function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); + }; + var __generator = (commonjsGlobal && commonjsGlobal.__generator) || function (thisArg, body) { + var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g; + return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; + function verb(n) { return function (v) { return step([n, v]); }; } + function step(op) { + if (f) throw new TypeError("Generator is already executing."); + while (g && (g = 0, op[0] && (_ = 0)), _) try { + if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; + if (y = 0, t) op = [op[0] & 2, t.value]; + switch (op[0]) { + case 0: case 1: t = op; break; + case 4: _.label++; return { value: op[1], done: false }; + case 5: _.label++; y = op[1]; op = [0]; continue; + case 7: op = _.ops.pop(); _.trys.pop(); continue; + default: + if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } + if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } + if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } + if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } + if (t[2]) _.ops.pop(); + _.trys.pop(); continue; + } + op = body.call(thisArg, _); + } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } + if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; + } + }; + var __importDefault = (commonjsGlobal && commonjsGlobal.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; + }; + Object.defineProperty(exports, "__esModule", { value: true }); + exports.CertificationDecision = exports.CampaignTemplateOwnerRefTypeEnum = exports.CampaignReportStatusEnum = exports.CampaignReportTypeEnum = exports.CampaignReferenceMandatoryCommentRequirementEnum = exports.CampaignReferenceCorrelatedStatusEnum = exports.CampaignReferenceCampaignTypeEnum = exports.CampaignReferenceTypeEnum = exports.CampaignFilterDetailsModeEnum = exports.CampaignCompleteOptionsAutoCompleteActionEnum = exports.CampaignAllOfSourcesWithOrphanEntitlementsTypeEnum = exports.CampaignAllOfSearchCampaignInfoReviewerTypeEnum = exports.CampaignAllOfSearchCampaignInfoTypeEnum = exports.CampaignAllOfRoleCompositionCampaignInfoRemediatorRefTypeEnum = exports.CampaignAllOfFilterTypeEnum = exports.CampaignAllOfMandatoryCommentRequirementEnum = exports.CampaignAllOfCorrelatedStatusEnum = exports.CampaignAlertLevelEnum = exports.CampaignMandatoryCommentRequirementEnum = exports.CampaignCorrelatedStatusEnum = exports.CampaignStatusEnum = exports.CampaignTypeEnum = exports.BulkTaggedObjectOperationEnum = exports.BucketType = exports.BeforeProvisioningRuleDtoTypeEnum = exports.AttributeDefinitionType = exports.AttributeDefinitionSchemaTypeEnum = exports.ApprovalStatusDtoOriginalOwnerTypeEnum = exports.ApprovalStatus = exports.ApprovalSchemeForRoleApproverTypeEnum = exports.ApprovalScheme = exports.AggregationType = exports.AdminReviewReassignReassignToTypeEnum = exports.AccountActivityItemOperation = exports.AccountActionActionEnum = exports.AccessType = exports.AccessRequestType = exports.AccessRequestPhasesResultEnum = exports.AccessRequestPhasesStateEnum = exports.AccessRequestItemTypeEnum = exports.AccessProfileUsageUsedByInnerTypeEnum = exports.AccessProfileSourceRefTypeEnum = exports.AccessProfileRefTypeEnum = exports.AccessProfileApprovalSchemeApproverTypeEnum = exports.AccessItemReviewedByTypeEnum = exports.AccessItemRequesterTypeEnum = exports.AccessItemRequestedForTypeEnum = exports.AccessCriteriaCriteriaListInnerTypeEnum = exports.AccessConstraintOperatorEnum = exports.AccessConstraintTypeEnum = void 0; + exports.ProvisioningConfigManagedResourceRefsInnerTypeEnum = exports.PreApprovalTriggerDetailsDecisionEnum = exports.PendingApprovalOwnerTypeEnum = exports.PendingApprovalAction = exports.PatOwnerTypeEnum = exports.PasswordStatusStateEnum = exports.PasswordChangeResponseStateEnum = exports.OwnerReferenceSegmentsTypeEnum = exports.OwnerReferenceTypeEnum = exports.OwnerDtoTypeEnum = exports.Operation = exports.NonEmployeeSchemaAttributeType = exports.NonEmployeeIdentityDtoType = exports.NonEmployeeBulkUploadStatusStatusEnum = exports.NonEmployeeBulkUploadJobStatusEnum = exports.NamedConstructs = exports.MetricType = exports.ManualWorkItemState = exports.ManualWorkItemDetailsOriginalOwnerTypeEnum = exports.ManualWorkItemDetailsCurrentOwnerTypeEnum = exports.LocaleOrigin = exports.LifecyclestateDeletedTypeEnum = exports.JsonPatchOperationOpEnum = exports.Index = exports.ImportObjectTypeEnum = exports.IdentityWithNewAccessAccessRefsInnerTypeEnum = exports.IdentityWithNewAccess1AccessRefsInnerTypeEnum = exports.IdentityProfileExportedObjectSelfTypeEnum = exports.IdentityProfileAllOfOwnerTypeEnum = exports.IdentityProfileAllOfAuthoritativeSourceTypeEnum = exports.GrantType = exports.FilterType = exports.ExpressionOperatorEnum = exports.ExecutionStatus = exports.ExceptionCriteriaCriteriaListInnerTypeEnum = exports.EntitlementRefTypeEnum = exports.DtoType = exports.DocumentType = exports.DeleteSource202ResponseTypeEnum = exports.DateCompareOperatorEnum = exports.CriteriaType = exports.CompletionStatus = exports.CompletedApprovalState = exports.CommentDtoAuthorTypeEnum = exports.ClientType = exports.CertificationTaskStatusEnum = exports.CertificationTaskTargetTypeEnum = exports.CertificationTaskTypeEnum = exports.CertificationReferenceTypeEnum = exports.CertificationPhase = void 0; + exports.SourceOwnerTypeEnum = exports.SourceManagerCorrelationRuleTypeEnum = exports.SourceManagementWorkgroupTypeEnum = exports.SourceHealthDtoStatusEnum = exports.SourceFeature = exports.SourceClusterDtoTypeEnum = exports.SourceClusterTypeEnum = exports.SourceBeforeProvisioningRuleTypeEnum = exports.SourceAccountCorrelationRuleTypeEnum = exports.SourceAccountCorrelationConfigTypeEnum = exports.SodViolationContextCheckCompletedStateEnum = exports.SodReportResultDtoTypeEnum = exports.SodRecipientTypeEnum = exports.SodPolicyDtoTypeEnum = exports.SodPolicyTypeEnum = exports.SodPolicyStateEnum = exports.SlimCampaignCorrelatedStatusEnum = exports.SlimCampaignStatusEnum = exports.SlimCampaignTypeEnum = exports.ServiceDeskSourceTypeEnum = exports.ServiceDeskIntegrationDtoAllOfOwnerRefTypeEnum = exports.SelectorType = exports.SearchScheduleRecipientsInnerTypeEnum = exports.SearchFilterType = exports.ScheduledSearchAllOfOwnerTypeEnum = exports.ScheduleType = exports.ScheduleMonthsTypeEnum = exports.ScheduleHoursTypeEnum = exports.ScheduleDaysTypeEnum = exports.ScheduleTypeEnum = exports.RoleMembershipSelectorType = exports.RoleCriteriaOperation = exports.RoleCriteriaKeyType = exports.RoleAssignmentSourceType = exports.ReviewerTypeEnum = exports.RequestedItemStatusRequestState = exports.RequestedItemStatusTypeEnum = exports.RequestableObjectType = exports.RequestableObjectRequestStatus = exports.RequestableObjectReferenceTypeEnum = exports.ReportType = exports.ReportResultReferenceAllOfStatusEnum = exports.ReportResultReferenceStatusEnum = exports.ReportResultReferenceTypeEnum = exports.ReassignmentType = exports.ReassignmentReferenceTypeEnum = exports.ReassignReferenceTypeEnum = exports.QueryType = exports.ProvisioningState = exports.ProvisioningCriteriaOperation = void 0; + exports.CertificationCampaignsApi = exports.CertificationCampaignsApiFactory = exports.CertificationCampaignsApiFp = exports.CertificationCampaignsApiAxiosParamCreator = exports.CertificationCampaignFiltersApi = exports.CertificationCampaignFiltersApiFactory = exports.CertificationCampaignFiltersApiFp = exports.CertificationCampaignFiltersApiAxiosParamCreator = exports.AuthUserApi = exports.AuthUserApiFactory = exports.AuthUserApiFp = exports.AuthUserApiAxiosParamCreator = exports.AccountsApi = exports.AccountsApiFactory = exports.AccountsApiFp = exports.AccountsApiAxiosParamCreator = exports.AccountUsagesApi = exports.AccountUsagesApiFactory = exports.AccountUsagesApiFp = exports.AccountUsagesApiAxiosParamCreator = exports.AccountActivitiesApi = exports.AccountActivitiesApiFactory = exports.AccountActivitiesApiFp = exports.AccountActivitiesApiAxiosParamCreator = exports.AccessRequestsApi = exports.AccessRequestsApiFactory = exports.AccessRequestsApiFp = exports.AccessRequestsApiAxiosParamCreator = exports.AccessRequestApprovalsApi = exports.AccessRequestApprovalsApiFactory = exports.AccessRequestApprovalsApiFp = exports.AccessRequestApprovalsApiAxiosParamCreator = exports.AccessProfilesApi = exports.AccessProfilesApiFactory = exports.AccessProfilesApiFp = exports.AccessProfilesApiAxiosParamCreator = exports.WorkItemType = exports.WorkItemState = exports.ViolationOwnerAssignmentConfigOwnerRefTypeEnum = exports.ViolationOwnerAssignmentConfigAssignmentRuleEnum = exports.ViolationContextPolicyTypeEnum = exports.UsageType = exports.TransformReadTypeEnum = exports.TransformTypeEnum = exports.TaskResultSimplifiedCompletionStatusEnum = exports.TaskResultDtoTypeEnum = exports.TaggedObjectDtoTypeEnum = exports.SourceUsageStatusStatusEnum = exports.SourceSchemasInnerTypeEnum = exports.SourcePasswordPoliciesInnerTypeEnum = void 0; + exports.PublicIdentitiesApiFp = exports.PublicIdentitiesApiAxiosParamCreator = exports.PersonalAccessTokensApi = exports.PersonalAccessTokensApiFactory = exports.PersonalAccessTokensApiFp = exports.PersonalAccessTokensApiAxiosParamCreator = exports.PasswordSyncGroupsApi = exports.PasswordSyncGroupsApiFactory = exports.PasswordSyncGroupsApiFp = exports.PasswordSyncGroupsApiAxiosParamCreator = exports.PasswordManagementApi = exports.PasswordManagementApiFactory = exports.PasswordManagementApiFp = exports.PasswordManagementApiAxiosParamCreator = exports.PasswordDictionaryApi = exports.PasswordDictionaryApiFactory = exports.PasswordDictionaryApiFp = exports.PasswordDictionaryApiAxiosParamCreator = exports.PasswordConfigurationApi = exports.PasswordConfigurationApiFactory = exports.PasswordConfigurationApiFp = exports.PasswordConfigurationApiAxiosParamCreator = exports.OAuthClientsApi = exports.OAuthClientsApiFactory = exports.OAuthClientsApiFp = exports.OAuthClientsApiAxiosParamCreator = exports.NonEmployeeLifecycleManagementApi = exports.NonEmployeeLifecycleManagementApiFactory = exports.NonEmployeeLifecycleManagementApiFp = exports.NonEmployeeLifecycleManagementApiAxiosParamCreator = exports.LifecycleStatesApi = exports.LifecycleStatesApiFactory = exports.LifecycleStatesApiFp = exports.LifecycleStatesApiAxiosParamCreator = exports.IdentityProfilesApi = exports.IdentityProfilesApiFactory = exports.IdentityProfilesApiFp = exports.IdentityProfilesApiAxiosParamCreator = exports.GlobalTenantSecuritySettingsApi = exports.GlobalTenantSecuritySettingsApiFactory = exports.GlobalTenantSecuritySettingsApiFp = exports.GlobalTenantSecuritySettingsApiAxiosParamCreator = exports.CertificationsApi = exports.CertificationsApiFactory = exports.CertificationsApiFp = exports.CertificationsApiAxiosParamCreator = exports.CertificationSummariesApi = exports.CertificationSummariesApiFactory = exports.CertificationSummariesApiFp = exports.CertificationSummariesApiAxiosParamCreator = void 0; + exports.SourcesApi = exports.SourcesApiFactory = exports.SourcesApiFp = exports.SourcesApiAxiosParamCreator = exports.SourceUsagesApi = exports.SourceUsagesApiFactory = exports.SourceUsagesApiFp = exports.SourceUsagesApiAxiosParamCreator = exports.ServiceDeskIntegrationApi = exports.ServiceDeskIntegrationApiFactory = exports.ServiceDeskIntegrationApiFp = exports.ServiceDeskIntegrationApiAxiosParamCreator = exports.SegmentsApi = exports.SegmentsApiFactory = exports.SegmentsApiFp = exports.SegmentsApiAxiosParamCreator = exports.SearchApi = exports.SearchApiFactory = exports.SearchApiFp = exports.SearchApiAxiosParamCreator = exports.ScheduledSearchApi = exports.ScheduledSearchApiFactory = exports.ScheduledSearchApiFp = exports.ScheduledSearchApiAxiosParamCreator = exports.SavedSearchApi = exports.SavedSearchApiFactory = exports.SavedSearchApiFp = exports.SavedSearchApiAxiosParamCreator = exports.SODViolationsApi = exports.SODViolationsApiFactory = exports.SODViolationsApiFp = exports.SODViolationsApiAxiosParamCreator = exports.SODPolicyApi = exports.SODPolicyApiFactory = exports.SODPolicyApiFp = exports.SODPolicyApiAxiosParamCreator = exports.RolesApi = exports.RolesApiFactory = exports.RolesApiFp = exports.RolesApiAxiosParamCreator = exports.RequestableObjectsApi = exports.RequestableObjectsApiFactory = exports.RequestableObjectsApiFp = exports.RequestableObjectsApiAxiosParamCreator = exports.PublicIdentitiesConfigApi = exports.PublicIdentitiesConfigApiFactory = exports.PublicIdentitiesConfigApiFp = exports.PublicIdentitiesConfigApiAxiosParamCreator = exports.PublicIdentitiesApi = exports.PublicIdentitiesApiFactory = void 0; + exports.WorkItemsApi = exports.WorkItemsApiFactory = exports.WorkItemsApiFp = exports.WorkItemsApiAxiosParamCreator = exports.TransformsApi = exports.TransformsApiFactory = exports.TransformsApiFp = exports.TransformsApiAxiosParamCreator = exports.TaggedObjectsApi = exports.TaggedObjectsApiFactory = exports.TaggedObjectsApiFp = exports.TaggedObjectsApiAxiosParamCreator = void 0; + var axios_1 = __importDefault(requireAxios()); + // Some imports not used depending on template conditions + // @ts-ignore + var common_1 = requireCommon$3(); + // @ts-ignore + var base_1 = requireBase$2(); + exports.AccessConstraintTypeEnum = { + Entitlement: 'ENTITLEMENT', + AccessProfile: 'ACCESS_PROFILE', + Role: 'ROLE' + }; + exports.AccessConstraintOperatorEnum = { + All: 'ALL', + Selected: 'SELECTED' + }; + exports.AccessCriteriaCriteriaListInnerTypeEnum = { + Entitlement: 'ENTITLEMENT' + }; + exports.AccessItemRequestedForTypeEnum = { + Identity: 'IDENTITY' + }; + exports.AccessItemRequesterTypeEnum = { + Identity: 'IDENTITY' + }; + exports.AccessItemReviewedByTypeEnum = { + Identity: 'IDENTITY' + }; + exports.AccessProfileApprovalSchemeApproverTypeEnum = { + AppOwner: 'APP_OWNER', + Owner: 'OWNER', + SourceOwner: 'SOURCE_OWNER', + Manager: 'MANAGER', + GovernanceGroup: 'GOVERNANCE_GROUP' + }; + exports.AccessProfileRefTypeEnum = { + AccessProfile: 'ACCESS_PROFILE' + }; + exports.AccessProfileSourceRefTypeEnum = { + Source: 'SOURCE' + }; + exports.AccessProfileUsageUsedByInnerTypeEnum = { + Role: 'ROLE' + }; + exports.AccessRequestItemTypeEnum = { + AccessProfile: 'ACCESS_PROFILE', + Role: 'ROLE', + Entitlement: 'ENTITLEMENT' + }; + exports.AccessRequestPhasesStateEnum = { + Pending: 'PENDING', + Executing: 'EXECUTING', + Completed: 'COMPLETED', + Cancelled: 'CANCELLED' + }; + exports.AccessRequestPhasesResultEnum = { + Successful: 'SUCCESSFUL', + Failed: 'FAILED' + }; + /** + * Access request type. Defaults to GRANT_ACCESS. REVOKE_ACCESS type can only have a single Identity ID in the requestedFor field. + * @export + * @enum {string} + */ + exports.AccessRequestType = { + GrantAccess: 'GRANT_ACCESS', + RevokeAccess: 'REVOKE_ACCESS' + }; + /** + * Access type of API Client indicating online or offline use + * @export + * @enum {string} + */ + exports.AccessType = { + Online: 'ONLINE', + Offline: 'OFFLINE' + }; + exports.AccountActionActionEnum = { + Enable: 'ENABLE', + Disable: 'DISABLE' + }; + /** + * Represents an operation in an account activity item + * @export + * @enum {string} + */ + exports.AccountActivityItemOperation = { + Add: 'ADD', + Create: 'CREATE', + Modify: 'MODIFY', + Delete: 'DELETE', + Disable: 'DISABLE', + Enable: 'ENABLE', + Unlock: 'UNLOCK', + Lock: 'LOCK', + Remove: 'REMOVE' + }; + exports.AdminReviewReassignReassignToTypeEnum = { + Identity: 'IDENTITY' + }; + /** + * Enum representing the currently available query languages for aggregations, which are used to perform calculations or groupings on search results. Additional values may be added in the future without notice. + * @export + * @enum {string} + */ + exports.AggregationType = { + Dsl: 'DSL', + Sailpoint: 'SAILPOINT' + }; + /** + * Describes the individual or group that is responsible for an approval step. + * @export + * @enum {string} + */ + exports.ApprovalScheme = { + AppOwner: 'APP_OWNER', + SourceOwner: 'SOURCE_OWNER', + Manager: 'MANAGER', + RoleOwner: 'ROLE_OWNER', + AccessProfileOwner: 'ACCESS_PROFILE_OWNER', + EntitlementOwner: 'ENTITLEMENT_OWNER', + GovernanceGroup: 'GOVERNANCE_GROUP' + }; + exports.ApprovalSchemeForRoleApproverTypeEnum = { + Owner: 'OWNER', + Manager: 'MANAGER', + GovernanceGroup: 'GOVERNANCE_GROUP' + }; + /** + * Enum representing the non-employee request approval status + * @export + * @enum {string} + */ + exports.ApprovalStatus = { + Approved: 'APPROVED', + Rejected: 'REJECTED', + Pending: 'PENDING', + NotReady: 'NOT_READY', + Cancelled: 'CANCELLED' + }; + exports.ApprovalStatusDtoOriginalOwnerTypeEnum = { + GovernanceGroup: 'GOVERNANCE_GROUP', + Identity: 'IDENTITY' + }; + exports.AttributeDefinitionSchemaTypeEnum = { + ConnectorSchema: 'CONNECTOR_SCHEMA' + }; + /** + * The underlying type of the value which an AttributeDefinition represents. + * @export + * @enum {string} + */ + exports.AttributeDefinitionType = { + String: 'STRING', + Long: 'LONG', + Int: 'INT', + Boolean: 'BOOLEAN' + }; + exports.BeforeProvisioningRuleDtoTypeEnum = { + Rule: 'RULE' + }; + /** + * Enum representing the currently supported bucket aggregation types. Additional values may be added in the future without notice. + * @export + * @enum {string} + */ + exports.BucketType = { + Terms: 'TERMS' + }; + exports.BulkTaggedObjectOperationEnum = { + Append: 'APPEND', + Merge: 'MERGE' + }; + exports.CampaignTypeEnum = { + Manager: 'MANAGER', + SourceOwner: 'SOURCE_OWNER', + Search: 'SEARCH', + RoleComposition: 'ROLE_COMPOSITION' + }; + exports.CampaignStatusEnum = { + Pending: 'PENDING', + Staged: 'STAGED', + Canceling: 'CANCELING', + Activating: 'ACTIVATING', + Active: 'ACTIVE', + Completing: 'COMPLETING', + Completed: 'COMPLETED', + Error: 'ERROR', + Archived: 'ARCHIVED' + }; + exports.CampaignCorrelatedStatusEnum = { + Correlated: 'CORRELATED', + Uncorrelated: 'UNCORRELATED' + }; + exports.CampaignMandatoryCommentRequirementEnum = { + AllDecisions: 'ALL_DECISIONS', + RevokeOnlyDecisions: 'REVOKE_ONLY_DECISIONS', + NoDecisions: 'NO_DECISIONS' + }; + exports.CampaignAlertLevelEnum = { + Error: 'ERROR', + Warn: 'WARN', + Info: 'INFO' + }; + exports.CampaignAllOfCorrelatedStatusEnum = { + Correlated: 'CORRELATED', + Uncorrelated: 'UNCORRELATED' + }; + exports.CampaignAllOfMandatoryCommentRequirementEnum = { + AllDecisions: 'ALL_DECISIONS', + RevokeOnlyDecisions: 'REVOKE_ONLY_DECISIONS', + NoDecisions: 'NO_DECISIONS' + }; + exports.CampaignAllOfFilterTypeEnum = { + CampaignFilter: 'CAMPAIGN_FILTER', + Rule: 'RULE' + }; + exports.CampaignAllOfRoleCompositionCampaignInfoRemediatorRefTypeEnum = { + Identity: 'IDENTITY' + }; + exports.CampaignAllOfSearchCampaignInfoTypeEnum = { + Identity: 'IDENTITY', + Access: 'ACCESS' + }; + exports.CampaignAllOfSearchCampaignInfoReviewerTypeEnum = { + GovernanceGroup: 'GOVERNANCE_GROUP', + Identity: 'IDENTITY' + }; + exports.CampaignAllOfSourcesWithOrphanEntitlementsTypeEnum = { + Source: 'SOURCE' + }; + exports.CampaignCompleteOptionsAutoCompleteActionEnum = { + Approve: 'APPROVE', + Revoke: 'REVOKE' + }; + exports.CampaignFilterDetailsModeEnum = { + Inclusion: 'INCLUSION', + Exclusion: 'EXCLUSION' + }; + exports.CampaignReferenceTypeEnum = { + Campaign: 'CAMPAIGN' + }; + exports.CampaignReferenceCampaignTypeEnum = { + Manager: 'MANAGER', + SourceOwner: 'SOURCE_OWNER', + Search: 'SEARCH' + }; + exports.CampaignReferenceCorrelatedStatusEnum = { + Correlated: 'CORRELATED', + Uncorrelated: 'UNCORRELATED' + }; + exports.CampaignReferenceMandatoryCommentRequirementEnum = { + AllDecisions: 'ALL_DECISIONS', + RevokeOnlyDecisions: 'REVOKE_ONLY_DECISIONS', + NoDecisions: 'NO_DECISIONS' + }; + exports.CampaignReportTypeEnum = { + ReportResult: 'REPORT_RESULT' + }; + exports.CampaignReportStatusEnum = { + Success: 'SUCCESS', + Warning: 'WARNING', + Error: 'ERROR', + Terminated: 'TERMINATED', + TempError: 'TEMP_ERROR', + Pending: 'PENDING' + }; + exports.CampaignTemplateOwnerRefTypeEnum = { + Identity: 'IDENTITY' + }; + /** + * The decision to approve or revoke the review item + * @export + * @enum {string} + */ + exports.CertificationDecision = { + Approve: 'APPROVE', + Revoke: 'REVOKE' + }; + /** + * The current phase of the campaign. * `STAGED`: The campaign is waiting to be activated. * `ACTIVE`: The campaign is active. * `SIGNED`: The reviewer has signed off on the campaign, and it is considered complete. + * @export + * @enum {string} + */ + exports.CertificationPhase = { + Staged: 'STAGED', + Active: 'ACTIVE', + Signed: 'SIGNED' + }; + exports.CertificationReferenceTypeEnum = { + Certification: 'CERTIFICATION' + }; + exports.CertificationTaskTypeEnum = { + Reassign: 'REASSIGN', + AdminReassign: 'ADMIN_REASSIGN', + CompleteCertification: 'COMPLETE_CERTIFICATION', + FinishCertification: 'FINISH_CERTIFICATION', + CompleteCampaign: 'COMPLETE_CAMPAIGN', + ActivateCampaign: 'ACTIVATE_CAMPAIGN', + CampaignCreate: 'CAMPAIGN_CREATE', + CampaignDelete: 'CAMPAIGN_DELETE' + }; + exports.CertificationTaskTargetTypeEnum = { + Certification: 'CERTIFICATION', + Campaign: 'CAMPAIGN' + }; + exports.CertificationTaskStatusEnum = { + Queued: 'QUEUED', + InProgress: 'IN_PROGRESS', + Success: 'SUCCESS', + Error: 'ERROR' + }; + /** + * Type of an API Client indicating public or confidentials use + * @export + * @enum {string} + */ + exports.ClientType = { + Confidential: 'CONFIDENTIAL', + Public: 'PUBLIC' + }; + exports.CommentDtoAuthorTypeEnum = { + Identity: 'IDENTITY' + }; + /** + * Enum represents completed approval object\'s state. + * @export + * @enum {string} + */ + exports.CompletedApprovalState = { + Approved: 'APPROVED', + Rejected: 'REJECTED' + }; + /** + * The status after completion. + * @export + * @enum {string} + */ + exports.CompletionStatus = { + Success: 'SUCCESS', + Failure: 'FAILURE', + Incomplete: 'INCOMPLETE', + Pending: 'PENDING' + }; + /** + * Type of the criteria in the filter. + * @export + * @enum {string} + */ + exports.CriteriaType = { + Composite: 'COMPOSITE', + Role: 'ROLE', + Identity: 'IDENTITY', + IdentityAttribute: 'IDENTITY_ATTRIBUTE', + Entitlement: 'ENTITLEMENT', + InvalidCertifiableEntity: 'INVALID_CERTIFIABLE_ENTITY', + AccessProfile: 'ACCESS_PROFILE', + Source: 'SOURCE', + Account: 'ACCOUNT', + InvalidCertifiableBundle: 'INVALID_CERTIFIABLE_BUNDLE', + AggregatedEntitlement: 'AGGREGATED_ENTITLEMENT' + }; + exports.DateCompareOperatorEnum = { + Lt: 'LT', + Lte: 'LTE', + Gt: 'GT', + Gte: 'GTE' + }; + exports.DeleteSource202ResponseTypeEnum = { + TaskResult: 'TASK_RESULT' + }; + /** + * Enum representing the currently supported document types. Additional values may be added in the future without notice. + * @export + * @enum {string} + */ + exports.DocumentType = { + Accessprofile: 'accessprofile', + Accountactivity: 'accountactivity', + Account: 'account', + Aggregation: 'aggregation', + Entitlement: 'entitlement', + Event: 'event', + Identity: 'identity', + Role: 'role' + }; + /** + * An enumeration of the types of DTOs supported within the IdentityNow infrastructure. + * @export + * @enum {string} + */ + exports.DtoType = { + AccountCorrelationConfig: 'ACCOUNT_CORRELATION_CONFIG', + AccessProfile: 'ACCESS_PROFILE', + AccessRequestApproval: 'ACCESS_REQUEST_APPROVAL', + Account: 'ACCOUNT', + Application: 'APPLICATION', + Campaign: 'CAMPAIGN', + CampaignFilter: 'CAMPAIGN_FILTER', + Certification: 'CERTIFICATION', + Cluster: 'CLUSTER', + ConnectorSchema: 'CONNECTOR_SCHEMA', + Entitlement: 'ENTITLEMENT', + GovernanceGroup: 'GOVERNANCE_GROUP', + Identity: 'IDENTITY', + IdentityProfile: 'IDENTITY_PROFILE', + IdentityRequest: 'IDENTITY_REQUEST', + LifecycleState: 'LIFECYCLE_STATE', + PasswordPolicy: 'PASSWORD_POLICY', + Role: 'ROLE', + Rule: 'RULE', + SodPolicy: 'SOD_POLICY', + Source: 'SOURCE', + Tag: 'TAG', + TagCategory: 'TAG_CATEGORY', + TaskResult: 'TASK_RESULT', + ReportResult: 'REPORT_RESULT', + SodViolation: 'SOD_VIOLATION', + AccountActivity: 'ACCOUNT_ACTIVITY', + Workgroup: 'WORKGROUP' + }; + exports.EntitlementRefTypeEnum = { + Entitlement: 'ENTITLEMENT' + }; + exports.ExceptionCriteriaCriteriaListInnerTypeEnum = { + Entitlement: 'ENTITLEMENT' + }; + /** + * The current state of execution. + * @export + * @enum {string} + */ + exports.ExecutionStatus = { + Executing: 'EXECUTING', + Verifying: 'VERIFYING', + Terminated: 'TERMINATED', + Completed: 'COMPLETED' + }; + exports.ExpressionOperatorEnum = { + And: 'AND', + Equals: 'EQUALS' + }; + /** + * Enum representing the currently supported filter types. Additional values may be added in the future without notice. + * @export + * @enum {string} + */ + exports.FilterType = { + Exists: 'EXISTS', + Range: 'RANGE', + Terms: 'TERMS' + }; + /** + * OAuth2 Grant Type + * @export + * @enum {string} + */ + exports.GrantType = { + ClientCredentials: 'CLIENT_CREDENTIALS', + AuthorizationCode: 'AUTHORIZATION_CODE', + RefreshToken: 'REFRESH_TOKEN' + }; + exports.IdentityProfileAllOfAuthoritativeSourceTypeEnum = { + Source: 'SOURCE' + }; + exports.IdentityProfileAllOfOwnerTypeEnum = { + Identity: 'IDENTITY' + }; + exports.IdentityProfileExportedObjectSelfTypeEnum = { + AccessProfile: 'ACCESS_PROFILE', + AccessRequestConfig: 'ACCESS_REQUEST_CONFIG', + AttrSyncSourceConfig: 'ATTR_SYNC_SOURCE_CONFIG', + AuthOrg: 'AUTH_ORG', + CampaignFilter: 'CAMPAIGN_FILTER', + FormDefinition: 'FORM_DEFINITION', + GovernanceGroup: 'GOVERNANCE_GROUP', + IdentityObjectConfig: 'IDENTITY_OBJECT_CONFIG', + IdentityProfile: 'IDENTITY_PROFILE', + LifecycleState: 'LIFECYCLE_STATE', + NotificationTemplate: 'NOTIFICATION_TEMPLATE', + PasswordPolicy: 'PASSWORD_POLICY', + PasswordSyncGroup: 'PASSWORD_SYNC_GROUP', + PublicIdentitiesConfig: 'PUBLIC_IDENTITIES_CONFIG', + Role: 'ROLE', + Rule: 'RULE', + Segment: 'SEGMENT', + ServiceDeskIntegration: 'SERVICE_DESK_INTEGRATION', + SodPolicy: 'SOD_POLICY', + Source: 'SOURCE', + Tag: 'TAG', + Transform: 'TRANSFORM', + TriggerSubscription: 'TRIGGER_SUBSCRIPTION', + Workflow: 'WORKFLOW' + }; + exports.IdentityWithNewAccess1AccessRefsInnerTypeEnum = { + Entitlement: 'ENTITLEMENT' + }; + exports.IdentityWithNewAccessAccessRefsInnerTypeEnum = { + Entitlement: 'ENTITLEMENT' + }; + exports.ImportObjectTypeEnum = { + IdentityObjectConfig: 'IDENTITY_OBJECT_CONFIG', + IdentityProfile: 'IDENTITY_PROFILE', + Rule: 'RULE', + Source: 'SOURCE', + Transform: 'TRANSFORM', + TriggerSubscription: 'TRIGGER_SUBSCRIPTION' + }; + /** + * Enum representing the currently supported indices. Additional values may be added in the future without notice. + * @export + * @enum {string} + */ + exports.Index = { + Accessprofiles: 'accessprofiles', + Accountactivities: 'accountactivities', + Entitlements: 'entitlements', + Events: 'events', + Identities: 'identities', + Roles: 'roles', + Star: '*' + }; + exports.JsonPatchOperationOpEnum = { + Add: 'add', + Remove: 'remove', + Replace: 'replace', + Move: 'move', + Copy: 'copy', + Test: 'test' + }; + exports.LifecyclestateDeletedTypeEnum = { + LifecycleState: 'LIFECYCLE_STATE' + }; + /** + * An indicator of how the locale was selected. *DEFAULT* means the locale is the system default. *REQUEST* means the locale was selected from the request context (i.e., best match based on the *Accept-Language* header). Additional values may be added in the future without notice. + * @export + * @enum {string} + */ + exports.LocaleOrigin = { + Default: 'DEFAULT', + Request: 'REQUEST' + }; + exports.ManualWorkItemDetailsCurrentOwnerTypeEnum = { + GovernanceGroup: 'GOVERNANCE_GROUP', + Identity: 'IDENTITY' + }; + exports.ManualWorkItemDetailsOriginalOwnerTypeEnum = { + GovernanceGroup: 'GOVERNANCE_GROUP', + Identity: 'IDENTITY' + }; + /** + * Indicates the state of the request processing for this item: * PENDING: The request for this item is awaiting processing. * APPROVED: The request for this item has been approved. * REJECTED: The request for this item was rejected. * EXPIRED: The request for this item expired with no action taken. * CANCELLED: The request for this item was cancelled with no user action. * ARCHIVED: The request for this item has been archived after completion. + * @export + * @enum {string} + */ + exports.ManualWorkItemState = { + Pending: 'PENDING', + Approved: 'APPROVED', + Rejected: 'REJECTED', + Expired: 'EXPIRED', + Cancelled: 'CANCELLED', + Archived: 'ARCHIVED' + }; + /** + * Enum representing the currently supported metric aggregation types. Additional values may be added in the future without notice. + * @export + * @enum {string} + */ + exports.MetricType = { + Count: 'COUNT', + UniqueCount: 'UNIQUE_COUNT', + Avg: 'AVG', + Sum: 'SUM', + Median: 'MEDIAN', + Min: 'MIN', + Max: 'MAX' + }; + /** + * | Construct | Date Time Pattern | Description | | --------- | ----------------- | ----------- | | ISO8601 | `yyyy-MM-dd\'T\'HH:mm:ss.SSSX` | The ISO8601 standard. | | LDAP | `yyyyMMddHHmmss.Z` | The LDAP standard. | | PEOPLE_SOFT | `MM/dd/yyyy` | The date format People Soft uses. | | EPOCH_TIME_JAVA | # ms from midnight, January 1st, 1970 | The incoming date value as elapsed time in milliseconds from midnight, January 1st, 1970. | | EPOCH_TIME_WIN32| # intervals of 100ns from midnight, January 1st, 1601 | The incoming date value as elapsed time in 100-nanosecond intervals from midnight, January 1st, 1601. | + * @export + * @enum {string} + */ + exports.NamedConstructs = { + Iso8601: 'ISO8601', + Ldap: 'LDAP', + PeopleSoft: 'PEOPLE_SOFT', + EpochTimeJava: 'EPOCH_TIME_JAVA', + EpochTimeWin32: 'EPOCH_TIME_WIN32' + }; + exports.NonEmployeeBulkUploadJobStatusEnum = { + Pending: 'PENDING', + InProgress: 'IN_PROGRESS', + Completed: 'COMPLETED', + Error: 'ERROR' + }; + exports.NonEmployeeBulkUploadStatusStatusEnum = { + Pending: 'PENDING', + InProgress: 'IN_PROGRESS', + Completed: 'COMPLETED', + Error: 'ERROR' + }; + /** + * Identifies if the identity is a normal identity or a governance group + * @export + * @enum {string} + */ + exports.NonEmployeeIdentityDtoType = { + GovernanceGroup: 'GOVERNANCE_GROUP', + Identity: 'IDENTITY' + }; + /** + * Enum representing the type of data a schema attribute accepts. + * @export + * @enum {string} + */ + exports.NonEmployeeSchemaAttributeType = { + Text: 'TEXT', + Date: 'DATE', + Identity: 'IDENTITY' + }; + /** + * Operation on a specific criteria + * @export + * @enum {string} + */ + exports.Operation = { + Equals: 'EQUALS', + NotEquals: 'NOT_EQUALS', + Contains: 'CONTAINS', + StartsWith: 'STARTS_WITH', + EndsWith: 'ENDS_WITH', + And: 'AND', + Or: 'OR' + }; + exports.OwnerDtoTypeEnum = { + Identity: 'IDENTITY' + }; + exports.OwnerReferenceTypeEnum = { + Identity: 'IDENTITY' + }; + exports.OwnerReferenceSegmentsTypeEnum = { + Identity: 'IDENTITY' + }; + exports.PasswordChangeResponseStateEnum = { + InProgress: 'IN_PROGRESS', + Finished: 'FINISHED', + Failed: 'FAILED' + }; + exports.PasswordStatusStateEnum = { + InProgress: 'IN_PROGRESS', + Finished: 'FINISHED', + Failed: 'FAILED' + }; + exports.PatOwnerTypeEnum = { + Identity: 'IDENTITY' + }; + /** + * Enum represents action that is being processed on an approval. + * @export + * @enum {string} + */ + exports.PendingApprovalAction = { + Approved: 'APPROVED', + Rejected: 'REJECTED', + Forwarded: 'FORWARDED' + }; + exports.PendingApprovalOwnerTypeEnum = { + Identity: 'IDENTITY' + }; + exports.PreApprovalTriggerDetailsDecisionEnum = { + Approved: 'APPROVED', + Rejected: 'REJECTED' + }; + exports.ProvisioningConfigManagedResourceRefsInnerTypeEnum = { + Source: 'SOURCE' + }; + /** + * Supported operations on ProvisioningCriteria + * @export + * @enum {string} + */ + exports.ProvisioningCriteriaOperation = { + Equals: 'EQUALS', + NotEquals: 'NOT_EQUALS', + Contains: 'CONTAINS', + Has: 'HAS', + And: 'AND', + Or: 'OR' + }; + /** + * Provisioning state of an account activity item + * @export + * @enum {string} + */ + exports.ProvisioningState = { + Pending: 'PENDING', + Finished: 'FINISHED', + Unverifiable: 'UNVERIFIABLE', + Commited: 'COMMITED', + Failed: 'FAILED', + Retry: 'RETRY' + }; + /** + * The type of query to use. By default, the `SAILPOINT` query type is used, which requires the `query` object to be defined in the request body. To use the `queryDsl` or `typeAheadQuery` objects in the request, you must set the type to `DSL` or `TYPEAHEAD` accordingly. Additional values may be added in the future without notice. + * @export + * @enum {string} + */ + exports.QueryType = { + Dsl: 'DSL', + Sailpoint: 'SAILPOINT', + Text: 'TEXT', + Typeahead: 'TYPEAHEAD' + }; + exports.ReassignReferenceTypeEnum = { + TargetSummary: 'TARGET_SUMMARY', + Item: 'ITEM', + IdentitySummary: 'IDENTITY_SUMMARY' + }; + exports.ReassignmentReferenceTypeEnum = { + TargetSummary: 'TARGET_SUMMARY', + Item: 'ITEM', + IdentitySummary: 'IDENTITY_SUMMARY' + }; + /** + * The approval reassignment type. * MANUAL_REASSIGNMENT: An approval with this reassignment type has been specifically reassigned by the approval task\'s owner, from their queue to someone else\'s. * AUTOMATIC_REASSIGNMENT: An approval with this reassignment type has been automatically reassigned from another approver\'s queue, according to that approver\'s reassignment configuration. The approver\'s reassignment configuration may be set up to automatically reassign approval tasks for a defined (or possibly open-ended) period of time. * AUTO_ESCALATION: An approval with this reassignment type has been automatically reassigned from another approver\'s queue, according to the request\'s escalation configuration. For more information about escalation configuration, refer to [Setting Global Reminders and Escalation Policies](https://documentation.sailpoint.com/saas/help/requests/config_emails.html). * SELF_REVIEW_DELEGATION: An approval with this reassignment type has been automatically reassigned by the system to prevent self-review. This helps prevent situations like a requester being tasked with approving their own request. For more information about preventing self-review, refer to [Self-review Prevention](https://documentation.sailpoint.com/saas/help/users/work_reassignment.html#self-review-prevention) and [Preventing Self-approval](https://documentation.sailpoint.com/saas/help/requests/config_ap_roles.html#preventing-self-approval). + * @export + * @enum {string} + */ + exports.ReassignmentType = { + ManualReassignment: 'MANUAL_REASSIGNMENT', + AutomaticReassignment: 'AUTOMATIC_REASSIGNMENT', + AutoEscalation: 'AUTO_ESCALATION', + SelfReviewDelegation: 'SELF_REVIEW_DELEGATION' + }; + exports.ReportResultReferenceTypeEnum = { + ReportResult: 'REPORT_RESULT' + }; + exports.ReportResultReferenceStatusEnum = { + Success: 'SUCCESS', + Warning: 'WARNING', + Error: 'ERROR', + Terminated: 'TERMINATED', + TempError: 'TEMP_ERROR', + Pending: 'PENDING' + }; + exports.ReportResultReferenceAllOfStatusEnum = { + Success: 'SUCCESS', + Warning: 'WARNING', + Error: 'ERROR', + Terminated: 'TERMINATED', + TempError: 'TEMP_ERROR', + Pending: 'PENDING' + }; + /** + * type of a Report + * @export + * @enum {string} + */ + exports.ReportType = { + CampaignCompositionReport: 'CAMPAIGN_COMPOSITION_REPORT', + CampaignRemediationStatusReport: 'CAMPAIGN_REMEDIATION_STATUS_REPORT', + CampaignStatusReport: 'CAMPAIGN_STATUS_REPORT', + CertificationSignoffReport: 'CERTIFICATION_SIGNOFF_REPORT' + }; + exports.RequestableObjectReferenceTypeEnum = { + AccessProfile: 'ACCESS_PROFILE', + Role: 'ROLE', + Entitlement: 'ENTITLEMENT' + }; + /** + * Status indicating the ability of an access request for the object to be made by or on behalf of the identity specified by *identity-id*. *AVAILABLE* indicates the object is available to request. *PENDING* indicates the object is unavailable because the identity has a pending request in flight. *ASSIGNED* indicates the object is unavailable because the identity already has the indicated role or access profile. If *identity-id* is not specified (allowed only for admin users), then status will be *AVAILABLE* for all results. + * @export + * @enum {string} + */ + exports.RequestableObjectRequestStatus = { + Available: 'AVAILABLE', + Pending: 'PENDING', + Assigned: 'ASSIGNED' + }; + /** + * The currently supported requestable object types. + * @export + * @enum {string} + */ + exports.RequestableObjectType = { + AccessProfile: 'ACCESS_PROFILE', + Role: 'ROLE' + }; + exports.RequestedItemStatusTypeEnum = { + AccessProfile: 'ACCESS_PROFILE', + Role: 'ROLE', + Entitlement: 'ENTITLEMENT' + }; + /** + * Indicates the state of an access request: * EXECUTING: The request is executing, which indicates the system is doing some processing. * REQUEST_COMPLETED: Indicates the request has been completed. * CANCELLED: The request was cancelled with no user input. * TERMINATED: The request has been terminated before it was able to complete. * PROVISIONING_VERIFICATION_PENDING: The request has finished any approval steps and provisioning is waiting to be verified. * REJECTED: The request was rejected. * PROVISIONING_FAILED: The request has failed to complete. * NOT_ALL_ITEMS_PROVISIONED: One or more of the requested items failed to complete, but there were one or more successes. * ERROR: An error occurred during request processing. + * @export + * @enum {string} + */ + exports.RequestedItemStatusRequestState = { + Executing: 'EXECUTING', + RequestCompleted: 'REQUEST_COMPLETED', + Cancelled: 'CANCELLED', + Terminated: 'TERMINATED', + ProvisioningVerificationPending: 'PROVISIONING_VERIFICATION_PENDING', + Rejected: 'REJECTED', + ProvisioningFailed: 'PROVISIONING_FAILED', + NotAllItemsProvisioned: 'NOT_ALL_ITEMS_PROVISIONED', + Error: 'ERROR' + }; + exports.ReviewerTypeEnum = { + Identity: 'IDENTITY' + }; + /** + * Type which indicates how a particular Identity obtained a particular Role + * @export + * @enum {string} + */ + exports.RoleAssignmentSourceType = { + AccessRequest: 'ACCESS_REQUEST', + RoleMembership: 'ROLE_MEMBERSHIP' + }; + /** + * Indicates whether the associated criteria represents an expression on identity attributes, account attributes, or entitlements, respectively. + * @export + * @enum {string} + */ + exports.RoleCriteriaKeyType = { + Identity: 'IDENTITY', + Account: 'ACCOUNT', + Entitlement: 'ENTITLEMENT' + }; + /** + * An operation + * @export + * @enum {string} + */ + exports.RoleCriteriaOperation = { + Equals: 'EQUALS', + NotEquals: 'NOT_EQUALS', + Contains: 'CONTAINS', + StartsWith: 'STARTS_WITH', + EndsWith: 'ENDS_WITH', + And: 'AND', + Or: 'OR' + }; + /** + * This enum characterizes the type of a Role\'s membership selector. Only the following two are fully supported: STANDARD: Indicates that Role membership is defined in terms of a criteria expression IDENTITY_LIST: Indicates that Role membership is conferred on the specific identities listed + * @export + * @enum {string} + */ + exports.RoleMembershipSelectorType = { + Standard: 'STANDARD', + IdentityList: 'IDENTITY_LIST' + }; + exports.ScheduleTypeEnum = { + Weekly: 'WEEKLY', + Monthly: 'MONTHLY', + Annually: 'ANNUALLY', + Calendar: 'CALENDAR' + }; + exports.ScheduleDaysTypeEnum = { + List: 'LIST', + Range: 'RANGE' + }; + exports.ScheduleHoursTypeEnum = { + List: 'LIST', + Range: 'RANGE' + }; + exports.ScheduleMonthsTypeEnum = { + List: 'LIST', + Range: 'RANGE' + }; + /** + * Enum representing the currently supported schedule types. Additional values may be added in the future without notice. + * @export + * @enum {string} + */ + exports.ScheduleType = { + Daily: 'DAILY', + Weekly: 'WEEKLY', + Monthly: 'MONTHLY', + Calendar: 'CALENDAR' + }; + exports.ScheduledSearchAllOfOwnerTypeEnum = { + Identity: 'IDENTITY' + }; + /** + * Enum representing the currently supported filter aggregation types. Additional values may be added in the future without notice. + * @export + * @enum {string} + */ + exports.SearchFilterType = { + Term: 'TERM' + }; + exports.SearchScheduleRecipientsInnerTypeEnum = { + Identity: 'IDENTITY' + }; + /** + * Enum representing the currently supported selector types. LIST - the *values* array contains one or more distinct values. RANGE - the *values* array contains two values: the start and end of the range, inclusive. Additional values may be added in the future without notice. + * @export + * @enum {string} + */ + exports.SelectorType = { + List: 'LIST', + Range: 'RANGE' + }; + exports.ServiceDeskIntegrationDtoAllOfOwnerRefTypeEnum = { + Source: 'SOURCE' + }; + exports.ServiceDeskSourceTypeEnum = { + Source: 'SOURCE' + }; + exports.SlimCampaignTypeEnum = { + Manager: 'MANAGER', + SourceOwner: 'SOURCE_OWNER', + Search: 'SEARCH', + RoleComposition: 'ROLE_COMPOSITION' + }; + exports.SlimCampaignStatusEnum = { + Pending: 'PENDING', + Staged: 'STAGED', + Canceling: 'CANCELING', + Activating: 'ACTIVATING', + Active: 'ACTIVE', + Completing: 'COMPLETING', + Completed: 'COMPLETED', + Error: 'ERROR', + Archived: 'ARCHIVED' + }; + exports.SlimCampaignCorrelatedStatusEnum = { + Correlated: 'CORRELATED', + Uncorrelated: 'UNCORRELATED' + }; + exports.SodPolicyStateEnum = { + Enforced: 'ENFORCED', + NotEnforced: 'NOT_ENFORCED' + }; + exports.SodPolicyTypeEnum = { + General: 'GENERAL', + ConflictingAccessBased: 'CONFLICTING_ACCESS_BASED' + }; + exports.SodPolicyDtoTypeEnum = { + SodPolicy: 'SOD_POLICY' + }; + exports.SodRecipientTypeEnum = { + Identity: 'IDENTITY' + }; + exports.SodReportResultDtoTypeEnum = { + ReportResult: 'REPORT_RESULT' + }; + exports.SodViolationContextCheckCompletedStateEnum = { + Success: 'SUCCESS', + Error: 'ERROR' + }; + exports.SourceAccountCorrelationConfigTypeEnum = { + AccountCorrelationConfig: 'ACCOUNT_CORRELATION_CONFIG' + }; + exports.SourceAccountCorrelationRuleTypeEnum = { + Rule: 'RULE' + }; + exports.SourceBeforeProvisioningRuleTypeEnum = { + Rule: 'RULE' + }; + exports.SourceClusterTypeEnum = { + Cluster: 'CLUSTER' + }; + exports.SourceClusterDtoTypeEnum = { + Cluster: 'CLUSTER' + }; + /** + * Optional features that can be supported by an source. * AUTHENTICATE: The source supports pass-through authentication. * COMPOSITE: The source supports composite source creation. * DIRECT_PERMISSIONS: The source supports returning DirectPermissions. * DISCOVER_SCHEMA: The source supports discovering schemas for users and groups. * ENABLE The source supports reading if an account is enabled or disabled. * MANAGER_LOOKUP: The source supports looking up managers as they are encountered in a feed. This is the opposite of NO_RANDOM_ACCESS. * NO_RANDOM_ACCESS: The source does not support random access and the getObject() methods should not be called and expected to perform. * PROXY: The source can serve as a proxy for another source. When an source has a proxy, all connector calls made with that source are redirected through the connector for the proxy source. * SEARCH * TEMPLATE * UNLOCK: The source supports reading if an account is locked or unlocked. * UNSTRUCTURED_TARGETS: The source supports returning unstructured Targets. * SHAREPOINT_TARGET: The source supports returning unstructured Target data for SharePoint. It will be typically used by AD, LDAP sources. * PROVISIONING: The source can both read and write accounts. Having this feature implies that the provision() method is implemented. It also means that direct and target permissions can also be provisioned if they can be returned by aggregation. * GROUP_PROVISIONING: The source can both read and write groups. Having this feature implies that the provision() method is implemented. * SYNC_PROVISIONING: The source can provision accounts synchronously. * PASSWORD: The source can provision password changes. Since sources can never read passwords, this is should only be used in conjunction with the PROVISIONING feature. * CURRENT_PASSWORD: Some source types support verification of the current password * ACCOUNT_ONLY_REQUEST: The source supports requesting accounts without entitlements. * ADDITIONAL_ACCOUNT_REQUEST: The source supports requesting additional accounts. * NO_AGGREGATION: A source that does not support aggregation. * GROUPS_HAVE_MEMBERS: The source models group memberships with a member attribute on the group object rather than a groups attribute on the account object. This effects the implementation of delta account aggregation. * NO_PERMISSIONS_PROVISIONING: Indicates that the connector cannot provision direct or target permissions for accounts. When DIRECT_PERMISSIONS and PROVISIONING features are present, it is assumed that the connector can also provision direct permissions. This feature disables that assumption and causes permission request to be converted to work items for accounts. * NO_GROUP_PERMISSIONS_PROVISIONING: Indicates that the connector cannot provision direct or target permissions for groups. When DIRECT_PERMISSIONS and PROVISIONING features are present, it is assumed that the connector can also provision direct permissions. This feature disables that assumption and causes permission request to be converted to work items for groups. * NO_UNSTRUCTURED_TARGETS_PROVISIONING: This string will be replaced by NO_GROUP_PERMISSIONS_PROVISIONING and NO_PERMISSIONS_PROVISIONING. * NO_DIRECT_PERMISSIONS_PROVISIONING: This string will be replaced by NO_GROUP_PERMISSIONS_PROVISIONING and NO_PERMISSIONS_PROVISIONING. + * @export + * @enum {string} + */ + exports.SourceFeature = { + Authenticate: 'AUTHENTICATE', + Composite: 'COMPOSITE', + DirectPermissions: 'DIRECT_PERMISSIONS', + DiscoverSchema: 'DISCOVER_SCHEMA', + Enable: 'ENABLE', + ManagerLookup: 'MANAGER_LOOKUP', + NoRandomAccess: 'NO_RANDOM_ACCESS', + Proxy: 'PROXY', + Search: 'SEARCH', + Template: 'TEMPLATE', + Unlock: 'UNLOCK', + UnstructuredTargets: 'UNSTRUCTURED_TARGETS', + SharepointTarget: 'SHAREPOINT_TARGET', + Provisioning: 'PROVISIONING', + GroupProvisioning: 'GROUP_PROVISIONING', + SyncProvisioning: 'SYNC_PROVISIONING', + Password: 'PASSWORD', + CurrentPassword: 'CURRENT_PASSWORD', + AccountOnlyRequest: 'ACCOUNT_ONLY_REQUEST', + AdditionalAccountRequest: 'ADDITIONAL_ACCOUNT_REQUEST', + NoAggregation: 'NO_AGGREGATION', + GroupsHaveMembers: 'GROUPS_HAVE_MEMBERS', + NoPermissionsProvisioning: 'NO_PERMISSIONS_PROVISIONING', + NoGroupPermissionsProvisioning: 'NO_GROUP_PERMISSIONS_PROVISIONING', + NoUnstructuredTargetsProvisioning: 'NO_UNSTRUCTURED_TARGETS_PROVISIONING', + NoDirectPermissionsProvisioning: 'NO_DIRECT_PERMISSIONS_PROVISIONING', + PreferUuid: 'PREFER_UUID' + }; + exports.SourceHealthDtoStatusEnum = { + ErrorCluster: 'SOURCE_STATE_ERROR_CLUSTER', + ErrorSource: 'SOURCE_STATE_ERROR_SOURCE', + ErrorVa: 'SOURCE_STATE_ERROR_VA', + FailureCluster: 'SOURCE_STATE_FAILURE_CLUSTER', + FailureSource: 'SOURCE_STATE_FAILURE_SOURCE', + Healthy: 'SOURCE_STATE_HEALTHY', + UncheckedCluster: 'SOURCE_STATE_UNCHECKED_CLUSTER', + UncheckedClusterNoSources: 'SOURCE_STATE_UNCHECKED_CLUSTER_NO_SOURCES', + UncheckedSource: 'SOURCE_STATE_UNCHECKED_SOURCE', + UncheckedSourceNoAccounts: 'SOURCE_STATE_UNCHECKED_SOURCE_NO_ACCOUNTS' + }; + exports.SourceManagementWorkgroupTypeEnum = { + GovernanceGroup: 'GOVERNANCE_GROUP' + }; + exports.SourceManagerCorrelationRuleTypeEnum = { + Rule: 'RULE' + }; + exports.SourceOwnerTypeEnum = { + Identity: 'IDENTITY' + }; + exports.SourcePasswordPoliciesInnerTypeEnum = { + PasswordPolicy: 'PASSWORD_POLICY' + }; + exports.SourceSchemasInnerTypeEnum = { + ConnectorSchema: 'CONNECTOR_SCHEMA' + }; + exports.SourceUsageStatusStatusEnum = { + Complete: 'COMPLETE', + Incomplete: 'INCOMPLETE' + }; + exports.TaggedObjectDtoTypeEnum = { + AccessProfile: 'ACCESS_PROFILE', + Application: 'APPLICATION', + Campaign: 'CAMPAIGN', + Entitlement: 'ENTITLEMENT', + Identity: 'IDENTITY', + Role: 'ROLE', + SodPolicy: 'SOD_POLICY', + Source: 'SOURCE' + }; + exports.TaskResultDtoTypeEnum = { + TaskResult: 'TASK_RESULT' + }; + exports.TaskResultSimplifiedCompletionStatusEnum = { + Success: 'Success', + Warning: 'Warning', + Error: 'Error', + Terminated: 'Terminated', + TempError: 'TempError' + }; + exports.TransformTypeEnum = { + AccountAttribute: 'accountAttribute', + Base64Decode: 'base64Decode', + Base64Encode: 'base64Encode', + Concat: 'concat', + Conditional: 'conditional', + DateCompare: 'dateCompare', + DateFormat: 'dateFormat', + DateMath: 'dateMath', + DecomposeDiacriticalMarks: 'decomposeDiacriticalMarks', + E164phone: 'e164phone', + FirstValid: 'firstValid', + Rule: 'rule', + IdentityAttribute: 'identityAttribute', + IndexOf: 'indexOf', + Iso3166: 'iso3166', + LastIndexOf: 'lastIndexOf', + LeftPad: 'leftPad', + Lookup: 'lookup', + Lower: 'lower', + NormalizeNames: 'normalizeNames', + RandomAlphaNumeric: 'randomAlphaNumeric', + RandomNumeric: 'randomNumeric', + Reference: 'reference', + ReplaceAll: 'replaceAll', + Replace: 'replace', + RightPad: 'rightPad', + Split: 'split', + Static: 'static', + Substring: 'substring', + Trim: 'trim', + Upper: 'upper', + UsernameGenerator: 'usernameGenerator', + Uuid: 'uuid' + }; + exports.TransformReadTypeEnum = { + AccountAttribute: 'accountAttribute', + Base64Decode: 'base64Decode', + Base64Encode: 'base64Encode', + Concat: 'concat', + Conditional: 'conditional', + DateCompare: 'dateCompare', + DateFormat: 'dateFormat', + DateMath: 'dateMath', + DecomposeDiacriticalMarks: 'decomposeDiacriticalMarks', + E164phone: 'e164phone', + FirstValid: 'firstValid', + Rule: 'rule', + IdentityAttribute: 'identityAttribute', + IndexOf: 'indexOf', + Iso3166: 'iso3166', + LastIndexOf: 'lastIndexOf', + LeftPad: 'leftPad', + Lookup: 'lookup', + Lower: 'lower', + NormalizeNames: 'normalizeNames', + RandomAlphaNumeric: 'randomAlphaNumeric', + RandomNumeric: 'randomNumeric', + Reference: 'reference', + ReplaceAll: 'replaceAll', + Replace: 'replace', + RightPad: 'rightPad', + Split: 'split', + Static: 'static', + Substring: 'substring', + Trim: 'trim', + Upper: 'upper', + UsernameGenerator: 'usernameGenerator', + Uuid: 'uuid' + }; + /** + * The type of provisioning policy usage. In IdentityNow, a source can support various provisioning operations. For example, when a joiner is added to a source, this may trigger both CREATE and UPDATE provisioning operations. Each usage type is considered a provisioning policy. A source can have any number of these provisioning policies defined. These are the common usage types: CREATE - This usage type relates to \'Create Account Profile\', the provisioning template for the account to be created. For example, this would be used for a joiner on a source. UPDATE - This usage type relates to \'Update Account Profile\', the provisioning template for the \'Update\' connector operations. For example, this would be used for an attribute sync on a source. ENABLE - This usage type relates to \'Enable Account Profile\', the provisioning template for the account to be enabled. For example, this could be used for a joiner on a source once the joiner\'s account is created. DISABLE - This usage type relates to \'Disable Account Profile\', the provisioning template for the account to be disabled. For example, this could be used when a leaver is removed temporarily from a source. You can use these four usage types for all your provisioning policy needs. + * @export + * @enum {string} + */ + exports.UsageType = { + Create: 'CREATE', + Update: 'UPDATE', + Enable: 'ENABLE', + Disable: 'DISABLE', + Delete: 'DELETE', + Assign: 'ASSIGN', + Unassign: 'UNASSIGN', + CreateGroup: 'CREATE_GROUP', + UpdateGroup: 'UPDATE_GROUP', + DeleteGroup: 'DELETE_GROUP', + Register: 'REGISTER', + CreateIdentity: 'CREATE_IDENTITY', + UpdateIdentity: 'UPDATE_IDENTITY', + EditGroup: 'EDIT_GROUP', + Unlock: 'UNLOCK', + ChangePassword: 'CHANGE_PASSWORD' + }; + exports.ViolationContextPolicyTypeEnum = { + Entitlement: 'ENTITLEMENT' + }; + exports.ViolationOwnerAssignmentConfigAssignmentRuleEnum = { + Manager: 'MANAGER', + Static: 'STATIC', + Null: 'null' + }; + exports.ViolationOwnerAssignmentConfigOwnerRefTypeEnum = { + Identity: 'IDENTITY' + }; + /** + * The state of a work item + * @export + * @enum {string} + */ + exports.WorkItemState = { + Finished: 'FINISHED', + Rejected: 'REJECTED', + Returned: 'RETURNED', + Expired: 'EXPIRED', + Pending: 'PENDING', + Canceled: 'CANCELED' + }; + /** + * The type of the work item + * @export + * @enum {string} + */ + exports.WorkItemType = { + Unknown: 'UNKNOWN', + Generic: 'GENERIC', + Certification: 'CERTIFICATION', + Remediation: 'REMEDIATION', + Delegation: 'DELEGATION', + Approval: 'APPROVAL', + Violationreview: 'VIOLATIONREVIEW', + Form: 'FORM', + Policyviolation: 'POLICYVIOLATION', + Challenge: 'CHALLENGE', + Impactanalysis: 'IMPACTANALYSIS', + Signoff: 'SIGNOFF', + Event: 'EVENT', + Manualaction: 'MANUALACTION', + Test: 'TEST' + }; + /** + * AccessProfilesApi - axios parameter creator + * @export + */ + var AccessProfilesApiAxiosParamCreator = function (configuration) { + var _this = this; + return { + /** + * This API creates an Access Profile. A token with API, ORG_ADMIN, ROLE_ADMIN, ROLE_SUBADMIN, SOURCE_ADMIN, or SOURCE_SUBADMIN authority is required to call this API. In addition, a token with only ROLE_SUBADMIN or SOURCE_SUBADMIN authority must be associated with the Access Profile\'s Source. The maximum supported length for the description field is 2000 characters. Longer descriptions will be preserved for existing access profiles, however, any new access profiles as well as any updates to existing descriptions will be limited to 2000 characters. + * @summary Create an Access Profile + * @param {AccessProfile} accessProfile + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + createAccessProfile: function (accessProfile, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'accessProfile' is not null or undefined + (0, common_1.assertParamExists)('createAccessProfile', 'accessProfile', accessProfile); + localVarPath = "/access-profiles"; + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + localVarHeaderParameter['Content-Type'] = 'application/json'; + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(accessProfile, localVarRequestOptions, configuration); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This API deletes an existing Access Profile. The Access Profile must not be in use, for example, Access Profile can not be deleted if they belong to an Application, Life Cycle State or a Role. If it is, a 400 error is returned. A token with API, ORG_ADMIN, SOURCE_ADMIN, or SOURCE_SUBADMIN authority is required to invoke this API. In addition, a SOURCE_SUBADMIN token must be able to administer the Source associated with the Access Profile. + * @summary Delete the specified Access Profile + * @param {string} id ID of the Access Profile to delete + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + deleteAccessProfile: function (id, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'id' is not null or undefined + (0, common_1.assertParamExists)('deleteAccessProfile', 'id', id); + localVarPath = "/access-profiles/{id}" + .replace("{".concat("id", "}"), encodeURIComponent(String(id))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'DELETE' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This API initiates a bulk deletion of one or more Access Profiles. By default, if any of the indicated Access Profiles are in use, no deletions will be performed and the **inUse** field of the response indicates the usages that must be removed first. If the request field **bestEffortOnly** is **true**, however, usages are reported in the **inUse** response field but all other indicated Access Profiles will be deleted. A token with API, ORG_ADMIN, SOURCE_ADMIN, or SOURCE_SUBADMIN authority is required to call this API. In addition, a SOURCE_SUBADMIN may only use this API to delete Access Profiles which are associated with Sources they are able to administer. + * @summary Delete Access Profile(s) + * @param {AccessProfileBulkDeleteRequest} accessProfileBulkDeleteRequest + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + deleteAccessProfilesInBulk: function (accessProfileBulkDeleteRequest, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'accessProfileBulkDeleteRequest' is not null or undefined + (0, common_1.assertParamExists)('deleteAccessProfilesInBulk', 'accessProfileBulkDeleteRequest', accessProfileBulkDeleteRequest); + localVarPath = "/access-profiles/bulk-delete"; + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + localVarHeaderParameter['Content-Type'] = 'application/json'; + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(accessProfileBulkDeleteRequest, localVarRequestOptions, configuration); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This API returns an Access Profile by its ID. A token with API, ORG_ADMIN, ROLE_ADMIN, ROLE_SUBADMIN, SOURCE_ADMIN, or SOURCE_SUBADMIN authority is required to call this API. + * @summary Get an Access Profile + * @param {string} id ID of the Access Profile + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getAccessProfile: function (id, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'id' is not null or undefined + (0, common_1.assertParamExists)('getAccessProfile', 'id', id); + localVarPath = "/access-profiles/{id}" + .replace("{".concat("id", "}"), encodeURIComponent(String(id))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This API lists the Entitlements associated with a given Access Profile A token with API, ORG_ADMIN, SOURCE_ADMIN, or SOURCE_SUBADMIN authority is required to invoke this API. In addition, a token with SOURCE_SUBADMIN authority must have access to the Source associated with the given Access Profile + * @summary List Access Profile\'s Entitlements + * @param {string} id ID of the containing Access Profile + * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **id**: *eq, in* **name**: *eq, sw* **attribute**: *eq, sw* **value**: *eq, sw* **created**: *gt, lt, ge, le* **modified**: *gt, lt, ge, le* **owner.id**: *eq, in* **source.id**: *eq, in* + * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **name, attribute, value, created, modified** + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getAccessProfileEntitlements: function (id, limit, offset, count, filters, sorters, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'id' is not null or undefined + (0, common_1.assertParamExists)('getAccessProfileEntitlements', 'id', id); + localVarPath = "/access-profiles/{id}/entitlements" + .replace("{".concat("id", "}"), encodeURIComponent(String(id))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + if (limit !== undefined) { + localVarQueryParameter['limit'] = limit; + } + if (offset !== undefined) { + localVarQueryParameter['offset'] = offset; + } + if (count !== undefined) { + localVarQueryParameter['count'] = count; + } + if (filters !== undefined) { + localVarQueryParameter['filters'] = filters; + } + if (sorters !== undefined) { + localVarQueryParameter['sorters'] = sorters; + } + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This API returns a list of Access Profiles. A token with API, ORG_ADMIN, ROLE_ADMIN, ROLE_SUBADMIN, SOURCE_ADMIN, or SOURCE_SUBADMIN authority is required to call this API. + * @summary List Access Profiles + * @param {string} [forSubadmin] If provided, filters the returned list according to what is visible to the indicated ROLE_SUBADMIN or SOURCE_SUBADMIN Identity. The value of the parameter is either an Identity ID, or the special value **me**, which is shorthand for the calling Identity\'s ID. A 400 Bad Request error is returned if the **for-subadmin** parameter is specified for an Identity that is not a subadmin. + * @param {number} [limit] Note that for this API the maximum value for limit is 50. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **id**: *eq, in* **name**: *eq, sw, co* **created**: *gt, lt, ge, le* **modified**: *gt, lt, ge, le* **owner.id**: *eq, in* **requestable**: *eq* **source.id**: *eq, in* Composite operators supported: *and, or* + * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **name, created, modified** + * @param {string} [forSegmentIds] If present and not empty, additionally filters Access Profiles to those which are assigned to the Segment(s) with the specified IDs. If segmentation is currently unavailable, specifying this parameter results in an error. + * @param {boolean} [includeUnsegmented] Whether or not the response list should contain unsegmented Access Profiles. If *for-segment-ids* is absent or empty, specifying *include-unsegmented* as false results in an error. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + listAccessProfiles: function (forSubadmin, limit, offset, count, filters, sorters, forSegmentIds, includeUnsegmented, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + localVarPath = "/access-profiles"; + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + if (forSubadmin !== undefined) { + localVarQueryParameter['for-subadmin'] = forSubadmin; + } + if (limit !== undefined) { + localVarQueryParameter['limit'] = limit; + } + if (offset !== undefined) { + localVarQueryParameter['offset'] = offset; + } + if (count !== undefined) { + localVarQueryParameter['count'] = count; + } + if (filters !== undefined) { + localVarQueryParameter['filters'] = filters; + } + if (sorters !== undefined) { + localVarQueryParameter['sorters'] = sorters; + } + if (forSegmentIds !== undefined) { + localVarQueryParameter['for-segment-ids'] = forSegmentIds; + } + if (includeUnsegmented !== undefined) { + localVarQueryParameter['include-unsegmented'] = includeUnsegmented; + } + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This API updates an existing Access Profile. The following fields are patchable: **name** **description** **enabled** **owner** **requestable** **accessRequestConfig** **revokeRequestConfig** **segments** **entitlements** **provisioningCriteria** **source** (must be updated with entitlements belonging to new source in the same API call) If you need to change the `source` of the access profile, you can do so only if you update the `entitlements` in the same API call. The new entitlements can only come from the target source that you want to change to. Look for the example \"Replace Source\" in the examples dropdown. A token with API, ORG_ADMIN, SOURCE_ADMIN, or SOURCE_SUBADMIN authority is required to call this API. In addition, a SOURCE_SUBADMIN may only use this API to patch Access Profiles which are associated with Sources they are able to administer. > The maximum supported length for the description field is 2000 characters. Longer descriptions will be preserved for existing access profiles, however, any new access profiles as well as any updates to existing descriptions will be limited to 2000 characters. > You can only add or replace **entitlements** that exist on the source that the access profile is attached to. You can use the **list entitlements** endpoint with the **filters** query parameter to get a list of available entitlements on the access profile\'s source. > Patching the value of the **requestable** field is only supported for customers enabled with the new Request Center. Otherwise, attempting to modify this field results in a 400 error. + * @summary Patch a specified Access Profile + * @param {string} id ID of the Access Profile to patch + * @param {Array} jsonPatchOperation + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + patchAccessProfile: function (id, jsonPatchOperation, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'id' is not null or undefined + (0, common_1.assertParamExists)('patchAccessProfile', 'id', id); + // verify required parameter 'jsonPatchOperation' is not null or undefined + (0, common_1.assertParamExists)('patchAccessProfile', 'jsonPatchOperation', jsonPatchOperation); + localVarPath = "/access-profiles/{id}" + .replace("{".concat("id", "}"), encodeURIComponent(String(id))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'PATCH' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + localVarHeaderParameter['Content-Type'] = 'application/json-patch+json'; + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(jsonPatchOperation, localVarRequestOptions, configuration); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + }; + }; + exports.AccessProfilesApiAxiosParamCreator = AccessProfilesApiAxiosParamCreator; + /** + * AccessProfilesApi - functional programming interface + * @export + */ + var AccessProfilesApiFp = function (configuration) { + var localVarAxiosParamCreator = (0, exports.AccessProfilesApiAxiosParamCreator)(configuration); + return { + /** + * This API creates an Access Profile. A token with API, ORG_ADMIN, ROLE_ADMIN, ROLE_SUBADMIN, SOURCE_ADMIN, or SOURCE_SUBADMIN authority is required to call this API. In addition, a token with only ROLE_SUBADMIN or SOURCE_SUBADMIN authority must be associated with the Access Profile\'s Source. The maximum supported length for the description field is 2000 characters. Longer descriptions will be preserved for existing access profiles, however, any new access profiles as well as any updates to existing descriptions will be limited to 2000 characters. + * @summary Create an Access Profile + * @param {AccessProfile} accessProfile + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + createAccessProfile: function (accessProfile, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.createAccessProfile(accessProfile, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This API deletes an existing Access Profile. The Access Profile must not be in use, for example, Access Profile can not be deleted if they belong to an Application, Life Cycle State or a Role. If it is, a 400 error is returned. A token with API, ORG_ADMIN, SOURCE_ADMIN, or SOURCE_SUBADMIN authority is required to invoke this API. In addition, a SOURCE_SUBADMIN token must be able to administer the Source associated with the Access Profile. + * @summary Delete the specified Access Profile + * @param {string} id ID of the Access Profile to delete + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + deleteAccessProfile: function (id, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.deleteAccessProfile(id, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This API initiates a bulk deletion of one or more Access Profiles. By default, if any of the indicated Access Profiles are in use, no deletions will be performed and the **inUse** field of the response indicates the usages that must be removed first. If the request field **bestEffortOnly** is **true**, however, usages are reported in the **inUse** response field but all other indicated Access Profiles will be deleted. A token with API, ORG_ADMIN, SOURCE_ADMIN, or SOURCE_SUBADMIN authority is required to call this API. In addition, a SOURCE_SUBADMIN may only use this API to delete Access Profiles which are associated with Sources they are able to administer. + * @summary Delete Access Profile(s) + * @param {AccessProfileBulkDeleteRequest} accessProfileBulkDeleteRequest + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + deleteAccessProfilesInBulk: function (accessProfileBulkDeleteRequest, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.deleteAccessProfilesInBulk(accessProfileBulkDeleteRequest, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This API returns an Access Profile by its ID. A token with API, ORG_ADMIN, ROLE_ADMIN, ROLE_SUBADMIN, SOURCE_ADMIN, or SOURCE_SUBADMIN authority is required to call this API. + * @summary Get an Access Profile + * @param {string} id ID of the Access Profile + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getAccessProfile: function (id, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.getAccessProfile(id, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This API lists the Entitlements associated with a given Access Profile A token with API, ORG_ADMIN, SOURCE_ADMIN, or SOURCE_SUBADMIN authority is required to invoke this API. In addition, a token with SOURCE_SUBADMIN authority must have access to the Source associated with the given Access Profile + * @summary List Access Profile\'s Entitlements + * @param {string} id ID of the containing Access Profile + * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **id**: *eq, in* **name**: *eq, sw* **attribute**: *eq, sw* **value**: *eq, sw* **created**: *gt, lt, ge, le* **modified**: *gt, lt, ge, le* **owner.id**: *eq, in* **source.id**: *eq, in* + * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **name, attribute, value, created, modified** + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getAccessProfileEntitlements: function (id, limit, offset, count, filters, sorters, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.getAccessProfileEntitlements(id, limit, offset, count, filters, sorters, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This API returns a list of Access Profiles. A token with API, ORG_ADMIN, ROLE_ADMIN, ROLE_SUBADMIN, SOURCE_ADMIN, or SOURCE_SUBADMIN authority is required to call this API. + * @summary List Access Profiles + * @param {string} [forSubadmin] If provided, filters the returned list according to what is visible to the indicated ROLE_SUBADMIN or SOURCE_SUBADMIN Identity. The value of the parameter is either an Identity ID, or the special value **me**, which is shorthand for the calling Identity\'s ID. A 400 Bad Request error is returned if the **for-subadmin** parameter is specified for an Identity that is not a subadmin. + * @param {number} [limit] Note that for this API the maximum value for limit is 50. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **id**: *eq, in* **name**: *eq, sw, co* **created**: *gt, lt, ge, le* **modified**: *gt, lt, ge, le* **owner.id**: *eq, in* **requestable**: *eq* **source.id**: *eq, in* Composite operators supported: *and, or* + * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **name, created, modified** + * @param {string} [forSegmentIds] If present and not empty, additionally filters Access Profiles to those which are assigned to the Segment(s) with the specified IDs. If segmentation is currently unavailable, specifying this parameter results in an error. + * @param {boolean} [includeUnsegmented] Whether or not the response list should contain unsegmented Access Profiles. If *for-segment-ids* is absent or empty, specifying *include-unsegmented* as false results in an error. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + listAccessProfiles: function (forSubadmin, limit, offset, count, filters, sorters, forSegmentIds, includeUnsegmented, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.listAccessProfiles(forSubadmin, limit, offset, count, filters, sorters, forSegmentIds, includeUnsegmented, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This API updates an existing Access Profile. The following fields are patchable: **name** **description** **enabled** **owner** **requestable** **accessRequestConfig** **revokeRequestConfig** **segments** **entitlements** **provisioningCriteria** **source** (must be updated with entitlements belonging to new source in the same API call) If you need to change the `source` of the access profile, you can do so only if you update the `entitlements` in the same API call. The new entitlements can only come from the target source that you want to change to. Look for the example \"Replace Source\" in the examples dropdown. A token with API, ORG_ADMIN, SOURCE_ADMIN, or SOURCE_SUBADMIN authority is required to call this API. In addition, a SOURCE_SUBADMIN may only use this API to patch Access Profiles which are associated with Sources they are able to administer. > The maximum supported length for the description field is 2000 characters. Longer descriptions will be preserved for existing access profiles, however, any new access profiles as well as any updates to existing descriptions will be limited to 2000 characters. > You can only add or replace **entitlements** that exist on the source that the access profile is attached to. You can use the **list entitlements** endpoint with the **filters** query parameter to get a list of available entitlements on the access profile\'s source. > Patching the value of the **requestable** field is only supported for customers enabled with the new Request Center. Otherwise, attempting to modify this field results in a 400 error. + * @summary Patch a specified Access Profile + * @param {string} id ID of the Access Profile to patch + * @param {Array} jsonPatchOperation + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + patchAccessProfile: function (id, jsonPatchOperation, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.patchAccessProfile(id, jsonPatchOperation, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + }; + }; + exports.AccessProfilesApiFp = AccessProfilesApiFp; + /** + * AccessProfilesApi - factory interface + * @export + */ + var AccessProfilesApiFactory = function (configuration, basePath, axios) { + var localVarFp = (0, exports.AccessProfilesApiFp)(configuration); + return { + /** + * This API creates an Access Profile. A token with API, ORG_ADMIN, ROLE_ADMIN, ROLE_SUBADMIN, SOURCE_ADMIN, or SOURCE_SUBADMIN authority is required to call this API. In addition, a token with only ROLE_SUBADMIN or SOURCE_SUBADMIN authority must be associated with the Access Profile\'s Source. The maximum supported length for the description field is 2000 characters. Longer descriptions will be preserved for existing access profiles, however, any new access profiles as well as any updates to existing descriptions will be limited to 2000 characters. + * @summary Create an Access Profile + * @param {AccessProfile} accessProfile + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + createAccessProfile: function (accessProfile, axiosOptions) { + return localVarFp.createAccessProfile(accessProfile, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This API deletes an existing Access Profile. The Access Profile must not be in use, for example, Access Profile can not be deleted if they belong to an Application, Life Cycle State or a Role. If it is, a 400 error is returned. A token with API, ORG_ADMIN, SOURCE_ADMIN, or SOURCE_SUBADMIN authority is required to invoke this API. In addition, a SOURCE_SUBADMIN token must be able to administer the Source associated with the Access Profile. + * @summary Delete the specified Access Profile + * @param {string} id ID of the Access Profile to delete + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + deleteAccessProfile: function (id, axiosOptions) { + return localVarFp.deleteAccessProfile(id, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This API initiates a bulk deletion of one or more Access Profiles. By default, if any of the indicated Access Profiles are in use, no deletions will be performed and the **inUse** field of the response indicates the usages that must be removed first. If the request field **bestEffortOnly** is **true**, however, usages are reported in the **inUse** response field but all other indicated Access Profiles will be deleted. A token with API, ORG_ADMIN, SOURCE_ADMIN, or SOURCE_SUBADMIN authority is required to call this API. In addition, a SOURCE_SUBADMIN may only use this API to delete Access Profiles which are associated with Sources they are able to administer. + * @summary Delete Access Profile(s) + * @param {AccessProfileBulkDeleteRequest} accessProfileBulkDeleteRequest + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + deleteAccessProfilesInBulk: function (accessProfileBulkDeleteRequest, axiosOptions) { + return localVarFp.deleteAccessProfilesInBulk(accessProfileBulkDeleteRequest, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This API returns an Access Profile by its ID. A token with API, ORG_ADMIN, ROLE_ADMIN, ROLE_SUBADMIN, SOURCE_ADMIN, or SOURCE_SUBADMIN authority is required to call this API. + * @summary Get an Access Profile + * @param {string} id ID of the Access Profile + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getAccessProfile: function (id, axiosOptions) { + return localVarFp.getAccessProfile(id, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This API lists the Entitlements associated with a given Access Profile A token with API, ORG_ADMIN, SOURCE_ADMIN, or SOURCE_SUBADMIN authority is required to invoke this API. In addition, a token with SOURCE_SUBADMIN authority must have access to the Source associated with the given Access Profile + * @summary List Access Profile\'s Entitlements + * @param {string} id ID of the containing Access Profile + * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **id**: *eq, in* **name**: *eq, sw* **attribute**: *eq, sw* **value**: *eq, sw* **created**: *gt, lt, ge, le* **modified**: *gt, lt, ge, le* **owner.id**: *eq, in* **source.id**: *eq, in* + * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **name, attribute, value, created, modified** + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getAccessProfileEntitlements: function (id, limit, offset, count, filters, sorters, axiosOptions) { + return localVarFp.getAccessProfileEntitlements(id, limit, offset, count, filters, sorters, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This API returns a list of Access Profiles. A token with API, ORG_ADMIN, ROLE_ADMIN, ROLE_SUBADMIN, SOURCE_ADMIN, or SOURCE_SUBADMIN authority is required to call this API. + * @summary List Access Profiles + * @param {string} [forSubadmin] If provided, filters the returned list according to what is visible to the indicated ROLE_SUBADMIN or SOURCE_SUBADMIN Identity. The value of the parameter is either an Identity ID, or the special value **me**, which is shorthand for the calling Identity\'s ID. A 400 Bad Request error is returned if the **for-subadmin** parameter is specified for an Identity that is not a subadmin. + * @param {number} [limit] Note that for this API the maximum value for limit is 50. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **id**: *eq, in* **name**: *eq, sw, co* **created**: *gt, lt, ge, le* **modified**: *gt, lt, ge, le* **owner.id**: *eq, in* **requestable**: *eq* **source.id**: *eq, in* Composite operators supported: *and, or* + * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **name, created, modified** + * @param {string} [forSegmentIds] If present and not empty, additionally filters Access Profiles to those which are assigned to the Segment(s) with the specified IDs. If segmentation is currently unavailable, specifying this parameter results in an error. + * @param {boolean} [includeUnsegmented] Whether or not the response list should contain unsegmented Access Profiles. If *for-segment-ids* is absent or empty, specifying *include-unsegmented* as false results in an error. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + listAccessProfiles: function (forSubadmin, limit, offset, count, filters, sorters, forSegmentIds, includeUnsegmented, axiosOptions) { + return localVarFp.listAccessProfiles(forSubadmin, limit, offset, count, filters, sorters, forSegmentIds, includeUnsegmented, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This API updates an existing Access Profile. The following fields are patchable: **name** **description** **enabled** **owner** **requestable** **accessRequestConfig** **revokeRequestConfig** **segments** **entitlements** **provisioningCriteria** **source** (must be updated with entitlements belonging to new source in the same API call) If you need to change the `source` of the access profile, you can do so only if you update the `entitlements` in the same API call. The new entitlements can only come from the target source that you want to change to. Look for the example \"Replace Source\" in the examples dropdown. A token with API, ORG_ADMIN, SOURCE_ADMIN, or SOURCE_SUBADMIN authority is required to call this API. In addition, a SOURCE_SUBADMIN may only use this API to patch Access Profiles which are associated with Sources they are able to administer. > The maximum supported length for the description field is 2000 characters. Longer descriptions will be preserved for existing access profiles, however, any new access profiles as well as any updates to existing descriptions will be limited to 2000 characters. > You can only add or replace **entitlements** that exist on the source that the access profile is attached to. You can use the **list entitlements** endpoint with the **filters** query parameter to get a list of available entitlements on the access profile\'s source. > Patching the value of the **requestable** field is only supported for customers enabled with the new Request Center. Otherwise, attempting to modify this field results in a 400 error. + * @summary Patch a specified Access Profile + * @param {string} id ID of the Access Profile to patch + * @param {Array} jsonPatchOperation + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + patchAccessProfile: function (id, jsonPatchOperation, axiosOptions) { + return localVarFp.patchAccessProfile(id, jsonPatchOperation, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + }; + }; + exports.AccessProfilesApiFactory = AccessProfilesApiFactory; + /** + * AccessProfilesApi - object-oriented interface + * @export + * @class AccessProfilesApi + * @extends {BaseAPI} + */ + var AccessProfilesApi = /** @class */ (function (_super) { + __extends(AccessProfilesApi, _super); + function AccessProfilesApi() { + return _super !== null && _super.apply(this, arguments) || this; + } + /** + * This API creates an Access Profile. A token with API, ORG_ADMIN, ROLE_ADMIN, ROLE_SUBADMIN, SOURCE_ADMIN, or SOURCE_SUBADMIN authority is required to call this API. In addition, a token with only ROLE_SUBADMIN or SOURCE_SUBADMIN authority must be associated with the Access Profile\'s Source. The maximum supported length for the description field is 2000 characters. Longer descriptions will be preserved for existing access profiles, however, any new access profiles as well as any updates to existing descriptions will be limited to 2000 characters. + * @summary Create an Access Profile + * @param {AccessProfilesApiCreateAccessProfileRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof AccessProfilesApi + */ + AccessProfilesApi.prototype.createAccessProfile = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.AccessProfilesApiFp)(this.configuration).createAccessProfile(requestParameters.accessProfile, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This API deletes an existing Access Profile. The Access Profile must not be in use, for example, Access Profile can not be deleted if they belong to an Application, Life Cycle State or a Role. If it is, a 400 error is returned. A token with API, ORG_ADMIN, SOURCE_ADMIN, or SOURCE_SUBADMIN authority is required to invoke this API. In addition, a SOURCE_SUBADMIN token must be able to administer the Source associated with the Access Profile. + * @summary Delete the specified Access Profile + * @param {AccessProfilesApiDeleteAccessProfileRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof AccessProfilesApi + */ + AccessProfilesApi.prototype.deleteAccessProfile = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.AccessProfilesApiFp)(this.configuration).deleteAccessProfile(requestParameters.id, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This API initiates a bulk deletion of one or more Access Profiles. By default, if any of the indicated Access Profiles are in use, no deletions will be performed and the **inUse** field of the response indicates the usages that must be removed first. If the request field **bestEffortOnly** is **true**, however, usages are reported in the **inUse** response field but all other indicated Access Profiles will be deleted. A token with API, ORG_ADMIN, SOURCE_ADMIN, or SOURCE_SUBADMIN authority is required to call this API. In addition, a SOURCE_SUBADMIN may only use this API to delete Access Profiles which are associated with Sources they are able to administer. + * @summary Delete Access Profile(s) + * @param {AccessProfilesApiDeleteAccessProfilesInBulkRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof AccessProfilesApi + */ + AccessProfilesApi.prototype.deleteAccessProfilesInBulk = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.AccessProfilesApiFp)(this.configuration).deleteAccessProfilesInBulk(requestParameters.accessProfileBulkDeleteRequest, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This API returns an Access Profile by its ID. A token with API, ORG_ADMIN, ROLE_ADMIN, ROLE_SUBADMIN, SOURCE_ADMIN, or SOURCE_SUBADMIN authority is required to call this API. + * @summary Get an Access Profile + * @param {AccessProfilesApiGetAccessProfileRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof AccessProfilesApi + */ + AccessProfilesApi.prototype.getAccessProfile = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.AccessProfilesApiFp)(this.configuration).getAccessProfile(requestParameters.id, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This API lists the Entitlements associated with a given Access Profile A token with API, ORG_ADMIN, SOURCE_ADMIN, or SOURCE_SUBADMIN authority is required to invoke this API. In addition, a token with SOURCE_SUBADMIN authority must have access to the Source associated with the given Access Profile + * @summary List Access Profile\'s Entitlements + * @param {AccessProfilesApiGetAccessProfileEntitlementsRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof AccessProfilesApi + */ + AccessProfilesApi.prototype.getAccessProfileEntitlements = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.AccessProfilesApiFp)(this.configuration).getAccessProfileEntitlements(requestParameters.id, requestParameters.limit, requestParameters.offset, requestParameters.count, requestParameters.filters, requestParameters.sorters, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This API returns a list of Access Profiles. A token with API, ORG_ADMIN, ROLE_ADMIN, ROLE_SUBADMIN, SOURCE_ADMIN, or SOURCE_SUBADMIN authority is required to call this API. + * @summary List Access Profiles + * @param {AccessProfilesApiListAccessProfilesRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof AccessProfilesApi + */ + AccessProfilesApi.prototype.listAccessProfiles = function (requestParameters, axiosOptions) { + var _this = this; + if (requestParameters === void 0) { requestParameters = {}; } + return (0, exports.AccessProfilesApiFp)(this.configuration).listAccessProfiles(requestParameters.forSubadmin, requestParameters.limit, requestParameters.offset, requestParameters.count, requestParameters.filters, requestParameters.sorters, requestParameters.forSegmentIds, requestParameters.includeUnsegmented, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This API updates an existing Access Profile. The following fields are patchable: **name** **description** **enabled** **owner** **requestable** **accessRequestConfig** **revokeRequestConfig** **segments** **entitlements** **provisioningCriteria** **source** (must be updated with entitlements belonging to new source in the same API call) If you need to change the `source` of the access profile, you can do so only if you update the `entitlements` in the same API call. The new entitlements can only come from the target source that you want to change to. Look for the example \"Replace Source\" in the examples dropdown. A token with API, ORG_ADMIN, SOURCE_ADMIN, or SOURCE_SUBADMIN authority is required to call this API. In addition, a SOURCE_SUBADMIN may only use this API to patch Access Profiles which are associated with Sources they are able to administer. > The maximum supported length for the description field is 2000 characters. Longer descriptions will be preserved for existing access profiles, however, any new access profiles as well as any updates to existing descriptions will be limited to 2000 characters. > You can only add or replace **entitlements** that exist on the source that the access profile is attached to. You can use the **list entitlements** endpoint with the **filters** query parameter to get a list of available entitlements on the access profile\'s source. > Patching the value of the **requestable** field is only supported for customers enabled with the new Request Center. Otherwise, attempting to modify this field results in a 400 error. + * @summary Patch a specified Access Profile + * @param {AccessProfilesApiPatchAccessProfileRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof AccessProfilesApi + */ + AccessProfilesApi.prototype.patchAccessProfile = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.AccessProfilesApiFp)(this.configuration).patchAccessProfile(requestParameters.id, requestParameters.jsonPatchOperation, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + return AccessProfilesApi; + }(base_1.BaseAPI)); + exports.AccessProfilesApi = AccessProfilesApi; + /** + * AccessRequestApprovalsApi - axios parameter creator + * @export + */ + var AccessRequestApprovalsApiAxiosParamCreator = function (configuration) { + var _this = this; + return { + /** + * This endpoint approves an access request approval. Only the owner of the approval and ORG_ADMIN users are allowed to perform this action. + * @summary Approves an access request approval. + * @param {string} approvalId The id of the approval. + * @param {CommentDto} [commentDto] Reviewer\'s comment. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + approveAccessRequest: function (approvalId, commentDto, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'approvalId' is not null or undefined + (0, common_1.assertParamExists)('approveAccessRequest', 'approvalId', approvalId); + localVarPath = "/access-request-approvals/{approvalId}/approve" + .replace("{".concat("approvalId", "}"), encodeURIComponent(String(approvalId))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + localVarHeaderParameter['Content-Type'] = 'application/json'; + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(commentDto, localVarRequestOptions, configuration); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This endpoint forwards an access request approval to a new owner. Only the owner of the approval and ORG_ADMIN users are allowed to perform this action. + * @summary Forwards an access request approval. + * @param {string} approvalId The id of the approval. + * @param {ForwardApprovalDto} forwardApprovalDto Information about the forwarded approval. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + forwardAccessRequest: function (approvalId, forwardApprovalDto, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'approvalId' is not null or undefined + (0, common_1.assertParamExists)('forwardAccessRequest', 'approvalId', approvalId); + // verify required parameter 'forwardApprovalDto' is not null or undefined + (0, common_1.assertParamExists)('forwardAccessRequest', 'forwardApprovalDto', forwardApprovalDto); + localVarPath = "/access-request-approvals/{approvalId}/forward" + .replace("{".concat("approvalId", "}"), encodeURIComponent(String(approvalId))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + localVarHeaderParameter['Content-Type'] = 'application/json'; + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(forwardApprovalDto, localVarRequestOptions, configuration); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This endpoint returns the number of pending, approved and rejected access requests approvals. See \"owner-id\" query parameter below for authorization info. + * @summary Get the number of access-requests-approvals + * @param {string} [ownerId] The id of the owner or approver identity of the approvals. If present, the value returns approval summary for the specified identity. * ORG_ADMIN users can call this with any identity ID value. * ORG_ADMIN user can also fetch all the approvals in the org, when owner-id is not used. * Non ORG_ADMIN users can only specify *me* or pass their own identity ID value. + * @param {string} [fromDate] From date is the date and time from which the results will be shown. It should be in a valid ISO-8601 format + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getAccessRequestApprovalSummary: function (ownerId, fromDate, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + localVarPath = "/access-request-approvals/approval-summary"; + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + if (ownerId !== undefined) { + localVarQueryParameter['owner-id'] = ownerId; + } + if (fromDate !== undefined) { + localVarQueryParameter['from-date'] = fromDate; + } + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This endpoint returns list of completed approvals. See *owner-id* query parameter below for authorization info. + * @summary Completed Access Request Approvals List + * @param {string} [ownerId] If present, the value returns only completed approvals for the specified identity. * ORG_ADMIN users can call this with any identity ID value. * ORG_ADMIN users can also fetch all the approvals in the org, when owner-id is not used. * Non-ORG_ADMIN users can only specify *me* or pass their own identity ID value. + * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **id**: *eq, in, co, ge, gt, le, lt, ne, isnull, sw* **requestedFor.id**: *eq, in, co, ge, gt, le, lt, ne, isnull, sw* **modified**: *gt, lt, ge, le, co, eq, in, ne, sw* + * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **created, modified** + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + listCompletedApprovals: function (ownerId, limit, offset, count, filters, sorters, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + localVarPath = "/access-request-approvals/completed"; + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + if (ownerId !== undefined) { + localVarQueryParameter['owner-id'] = ownerId; + } + if (limit !== undefined) { + localVarQueryParameter['limit'] = limit; + } + if (offset !== undefined) { + localVarQueryParameter['offset'] = offset; + } + if (count !== undefined) { + localVarQueryParameter['count'] = count; + } + if (filters !== undefined) { + localVarQueryParameter['filters'] = filters; + } + if (sorters !== undefined) { + localVarQueryParameter['sorters'] = sorters; + } + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This endpoint returns a list of pending approvals. See \"owner-id\" query parameter below for authorization info. + * @summary Pending Access Request Approvals List + * @param {string} [ownerId] If present, the value returns only pending approvals for the specified identity. * ORG_ADMIN users can call this with any identity ID value. * ORG_ADMIN users can also fetch all the approvals in the org, when owner-id is not used. * Non-ORG_ADMIN users can only specify *me* or pass their own identity ID value. + * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **id**: *eq, in* **requestedFor.id**: *eq, in* **modified**: *gt, lt, ge, le, eq, in* + * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **created, modified** + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + listPendingApprovals: function (ownerId, limit, offset, count, filters, sorters, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + localVarPath = "/access-request-approvals/pending"; + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + if (ownerId !== undefined) { + localVarQueryParameter['owner-id'] = ownerId; + } + if (limit !== undefined) { + localVarQueryParameter['limit'] = limit; + } + if (offset !== undefined) { + localVarQueryParameter['offset'] = offset; + } + if (count !== undefined) { + localVarQueryParameter['count'] = count; + } + if (filters !== undefined) { + localVarQueryParameter['filters'] = filters; + } + if (sorters !== undefined) { + localVarQueryParameter['sorters'] = sorters; + } + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This endpoint rejects an access request approval. Only the owner of the approval and admin users are allowed to perform this action. + * @summary Rejects an access request approval. + * @param {string} approvalId The id of the approval. + * @param {CommentDto} [commentDto] Reviewer\'s comment. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + rejectAccessRequest: function (approvalId, commentDto, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'approvalId' is not null or undefined + (0, common_1.assertParamExists)('rejectAccessRequest', 'approvalId', approvalId); + localVarPath = "/access-request-approvals/{approvalId}/reject" + .replace("{".concat("approvalId", "}"), encodeURIComponent(String(approvalId))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + localVarHeaderParameter['Content-Type'] = 'application/json'; + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(commentDto, localVarRequestOptions, configuration); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + }; + }; + exports.AccessRequestApprovalsApiAxiosParamCreator = AccessRequestApprovalsApiAxiosParamCreator; + /** + * AccessRequestApprovalsApi - functional programming interface + * @export + */ + var AccessRequestApprovalsApiFp = function (configuration) { + var localVarAxiosParamCreator = (0, exports.AccessRequestApprovalsApiAxiosParamCreator)(configuration); + return { + /** + * This endpoint approves an access request approval. Only the owner of the approval and ORG_ADMIN users are allowed to perform this action. + * @summary Approves an access request approval. + * @param {string} approvalId The id of the approval. + * @param {CommentDto} [commentDto] Reviewer\'s comment. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + approveAccessRequest: function (approvalId, commentDto, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.approveAccessRequest(approvalId, commentDto, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This endpoint forwards an access request approval to a new owner. Only the owner of the approval and ORG_ADMIN users are allowed to perform this action. + * @summary Forwards an access request approval. + * @param {string} approvalId The id of the approval. + * @param {ForwardApprovalDto} forwardApprovalDto Information about the forwarded approval. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + forwardAccessRequest: function (approvalId, forwardApprovalDto, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.forwardAccessRequest(approvalId, forwardApprovalDto, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This endpoint returns the number of pending, approved and rejected access requests approvals. See \"owner-id\" query parameter below for authorization info. + * @summary Get the number of access-requests-approvals + * @param {string} [ownerId] The id of the owner or approver identity of the approvals. If present, the value returns approval summary for the specified identity. * ORG_ADMIN users can call this with any identity ID value. * ORG_ADMIN user can also fetch all the approvals in the org, when owner-id is not used. * Non ORG_ADMIN users can only specify *me* or pass their own identity ID value. + * @param {string} [fromDate] From date is the date and time from which the results will be shown. It should be in a valid ISO-8601 format + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getAccessRequestApprovalSummary: function (ownerId, fromDate, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.getAccessRequestApprovalSummary(ownerId, fromDate, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This endpoint returns list of completed approvals. See *owner-id* query parameter below for authorization info. + * @summary Completed Access Request Approvals List + * @param {string} [ownerId] If present, the value returns only completed approvals for the specified identity. * ORG_ADMIN users can call this with any identity ID value. * ORG_ADMIN users can also fetch all the approvals in the org, when owner-id is not used. * Non-ORG_ADMIN users can only specify *me* or pass their own identity ID value. + * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **id**: *eq, in, co, ge, gt, le, lt, ne, isnull, sw* **requestedFor.id**: *eq, in, co, ge, gt, le, lt, ne, isnull, sw* **modified**: *gt, lt, ge, le, co, eq, in, ne, sw* + * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **created, modified** + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + listCompletedApprovals: function (ownerId, limit, offset, count, filters, sorters, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.listCompletedApprovals(ownerId, limit, offset, count, filters, sorters, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This endpoint returns a list of pending approvals. See \"owner-id\" query parameter below for authorization info. + * @summary Pending Access Request Approvals List + * @param {string} [ownerId] If present, the value returns only pending approvals for the specified identity. * ORG_ADMIN users can call this with any identity ID value. * ORG_ADMIN users can also fetch all the approvals in the org, when owner-id is not used. * Non-ORG_ADMIN users can only specify *me* or pass their own identity ID value. + * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **id**: *eq, in* **requestedFor.id**: *eq, in* **modified**: *gt, lt, ge, le, eq, in* + * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **created, modified** + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + listPendingApprovals: function (ownerId, limit, offset, count, filters, sorters, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.listPendingApprovals(ownerId, limit, offset, count, filters, sorters, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This endpoint rejects an access request approval. Only the owner of the approval and admin users are allowed to perform this action. + * @summary Rejects an access request approval. + * @param {string} approvalId The id of the approval. + * @param {CommentDto} [commentDto] Reviewer\'s comment. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + rejectAccessRequest: function (approvalId, commentDto, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.rejectAccessRequest(approvalId, commentDto, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + }; + }; + exports.AccessRequestApprovalsApiFp = AccessRequestApprovalsApiFp; + /** + * AccessRequestApprovalsApi - factory interface + * @export + */ + var AccessRequestApprovalsApiFactory = function (configuration, basePath, axios) { + var localVarFp = (0, exports.AccessRequestApprovalsApiFp)(configuration); + return { + /** + * This endpoint approves an access request approval. Only the owner of the approval and ORG_ADMIN users are allowed to perform this action. + * @summary Approves an access request approval. + * @param {string} approvalId The id of the approval. + * @param {CommentDto} [commentDto] Reviewer\'s comment. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + approveAccessRequest: function (approvalId, commentDto, axiosOptions) { + return localVarFp.approveAccessRequest(approvalId, commentDto, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This endpoint forwards an access request approval to a new owner. Only the owner of the approval and ORG_ADMIN users are allowed to perform this action. + * @summary Forwards an access request approval. + * @param {string} approvalId The id of the approval. + * @param {ForwardApprovalDto} forwardApprovalDto Information about the forwarded approval. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + forwardAccessRequest: function (approvalId, forwardApprovalDto, axiosOptions) { + return localVarFp.forwardAccessRequest(approvalId, forwardApprovalDto, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This endpoint returns the number of pending, approved and rejected access requests approvals. See \"owner-id\" query parameter below for authorization info. + * @summary Get the number of access-requests-approvals + * @param {string} [ownerId] The id of the owner or approver identity of the approvals. If present, the value returns approval summary for the specified identity. * ORG_ADMIN users can call this with any identity ID value. * ORG_ADMIN user can also fetch all the approvals in the org, when owner-id is not used. * Non ORG_ADMIN users can only specify *me* or pass their own identity ID value. + * @param {string} [fromDate] From date is the date and time from which the results will be shown. It should be in a valid ISO-8601 format + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getAccessRequestApprovalSummary: function (ownerId, fromDate, axiosOptions) { + return localVarFp.getAccessRequestApprovalSummary(ownerId, fromDate, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This endpoint returns list of completed approvals. See *owner-id* query parameter below for authorization info. + * @summary Completed Access Request Approvals List + * @param {string} [ownerId] If present, the value returns only completed approvals for the specified identity. * ORG_ADMIN users can call this with any identity ID value. * ORG_ADMIN users can also fetch all the approvals in the org, when owner-id is not used. * Non-ORG_ADMIN users can only specify *me* or pass their own identity ID value. + * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **id**: *eq, in, co, ge, gt, le, lt, ne, isnull, sw* **requestedFor.id**: *eq, in, co, ge, gt, le, lt, ne, isnull, sw* **modified**: *gt, lt, ge, le, co, eq, in, ne, sw* + * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **created, modified** + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + listCompletedApprovals: function (ownerId, limit, offset, count, filters, sorters, axiosOptions) { + return localVarFp.listCompletedApprovals(ownerId, limit, offset, count, filters, sorters, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This endpoint returns a list of pending approvals. See \"owner-id\" query parameter below for authorization info. + * @summary Pending Access Request Approvals List + * @param {string} [ownerId] If present, the value returns only pending approvals for the specified identity. * ORG_ADMIN users can call this with any identity ID value. * ORG_ADMIN users can also fetch all the approvals in the org, when owner-id is not used. * Non-ORG_ADMIN users can only specify *me* or pass their own identity ID value. + * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **id**: *eq, in* **requestedFor.id**: *eq, in* **modified**: *gt, lt, ge, le, eq, in* + * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **created, modified** + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + listPendingApprovals: function (ownerId, limit, offset, count, filters, sorters, axiosOptions) { + return localVarFp.listPendingApprovals(ownerId, limit, offset, count, filters, sorters, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This endpoint rejects an access request approval. Only the owner of the approval and admin users are allowed to perform this action. + * @summary Rejects an access request approval. + * @param {string} approvalId The id of the approval. + * @param {CommentDto} [commentDto] Reviewer\'s comment. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + rejectAccessRequest: function (approvalId, commentDto, axiosOptions) { + return localVarFp.rejectAccessRequest(approvalId, commentDto, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + }; + }; + exports.AccessRequestApprovalsApiFactory = AccessRequestApprovalsApiFactory; + /** + * AccessRequestApprovalsApi - object-oriented interface + * @export + * @class AccessRequestApprovalsApi + * @extends {BaseAPI} + */ + var AccessRequestApprovalsApi = /** @class */ (function (_super) { + __extends(AccessRequestApprovalsApi, _super); + function AccessRequestApprovalsApi() { + return _super !== null && _super.apply(this, arguments) || this; + } + /** + * This endpoint approves an access request approval. Only the owner of the approval and ORG_ADMIN users are allowed to perform this action. + * @summary Approves an access request approval. + * @param {AccessRequestApprovalsApiApproveAccessRequestRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof AccessRequestApprovalsApi + */ + AccessRequestApprovalsApi.prototype.approveAccessRequest = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.AccessRequestApprovalsApiFp)(this.configuration).approveAccessRequest(requestParameters.approvalId, requestParameters.commentDto, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This endpoint forwards an access request approval to a new owner. Only the owner of the approval and ORG_ADMIN users are allowed to perform this action. + * @summary Forwards an access request approval. + * @param {AccessRequestApprovalsApiForwardAccessRequestRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof AccessRequestApprovalsApi + */ + AccessRequestApprovalsApi.prototype.forwardAccessRequest = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.AccessRequestApprovalsApiFp)(this.configuration).forwardAccessRequest(requestParameters.approvalId, requestParameters.forwardApprovalDto, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This endpoint returns the number of pending, approved and rejected access requests approvals. See \"owner-id\" query parameter below for authorization info. + * @summary Get the number of access-requests-approvals + * @param {AccessRequestApprovalsApiGetAccessRequestApprovalSummaryRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof AccessRequestApprovalsApi + */ + AccessRequestApprovalsApi.prototype.getAccessRequestApprovalSummary = function (requestParameters, axiosOptions) { + var _this = this; + if (requestParameters === void 0) { requestParameters = {}; } + return (0, exports.AccessRequestApprovalsApiFp)(this.configuration).getAccessRequestApprovalSummary(requestParameters.ownerId, requestParameters.fromDate, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This endpoint returns list of completed approvals. See *owner-id* query parameter below for authorization info. + * @summary Completed Access Request Approvals List + * @param {AccessRequestApprovalsApiListCompletedApprovalsRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof AccessRequestApprovalsApi + */ + AccessRequestApprovalsApi.prototype.listCompletedApprovals = function (requestParameters, axiosOptions) { + var _this = this; + if (requestParameters === void 0) { requestParameters = {}; } + return (0, exports.AccessRequestApprovalsApiFp)(this.configuration).listCompletedApprovals(requestParameters.ownerId, requestParameters.limit, requestParameters.offset, requestParameters.count, requestParameters.filters, requestParameters.sorters, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This endpoint returns a list of pending approvals. See \"owner-id\" query parameter below for authorization info. + * @summary Pending Access Request Approvals List + * @param {AccessRequestApprovalsApiListPendingApprovalsRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof AccessRequestApprovalsApi + */ + AccessRequestApprovalsApi.prototype.listPendingApprovals = function (requestParameters, axiosOptions) { + var _this = this; + if (requestParameters === void 0) { requestParameters = {}; } + return (0, exports.AccessRequestApprovalsApiFp)(this.configuration).listPendingApprovals(requestParameters.ownerId, requestParameters.limit, requestParameters.offset, requestParameters.count, requestParameters.filters, requestParameters.sorters, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This endpoint rejects an access request approval. Only the owner of the approval and admin users are allowed to perform this action. + * @summary Rejects an access request approval. + * @param {AccessRequestApprovalsApiRejectAccessRequestRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof AccessRequestApprovalsApi + */ + AccessRequestApprovalsApi.prototype.rejectAccessRequest = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.AccessRequestApprovalsApiFp)(this.configuration).rejectAccessRequest(requestParameters.approvalId, requestParameters.commentDto, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + return AccessRequestApprovalsApi; + }(base_1.BaseAPI)); + exports.AccessRequestApprovalsApi = AccessRequestApprovalsApi; + /** + * AccessRequestsApi - axios parameter creator + * @export + */ + var AccessRequestsApiAxiosParamCreator = function (configuration) { + var _this = this; + return { + /** + * This API endpoint cancels a pending access request. An access request can be cancelled only if it has not passed the approval step. Any token with ORG_ADMIN authority or token of the user who originally requested the access request is required to cancel it. + * @summary Cancel Access Request + * @param {CancelAccessRequest} cancelAccessRequest + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + cancelAccessRequest: function (cancelAccessRequest, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'cancelAccessRequest' is not null or undefined + (0, common_1.assertParamExists)('cancelAccessRequest', 'cancelAccessRequest', cancelAccessRequest); + localVarPath = "/access-requests/cancel"; + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + localVarHeaderParameter['Content-Type'] = 'application/json'; + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(cancelAccessRequest, localVarRequestOptions, configuration); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This submits the access request into IdentityNow, where it will follow any IdentityNow approval processes. Access requests are processed asynchronously by IdentityNow. A success response from this endpoint means the request has been submitted to IDN and is queued for processing. Because this endpoint is asynchronous, it will not return an error if you submit duplicate access requests in quick succession, or you submit an access request for access that is already in progress, approved, or rejected. It is best practice to check for any existing access requests that reference the same access items before submitting a new access request. This can be accomplished by using the [access request status](https://developer.sailpoint.com/idn/api/v3/list-access-request-status) or the [pending access request approvals](https://developer.sailpoint.com/idn/api/v3/list-pending-approvals) endpoints. You can also use the [search API](https://developer.sailpoint.com/idn/api/v3/search) to check the existing access items that an identity has before submitting an access request to ensure you are not requesting access that is already granted. There are two types of access request: __GRANT_ACCESS__ * Can be requested for multiple identities in a single request. * Supports self request and request on behalf of other users. Refer to the [Get Access Request Configuration](https://developer.sailpoint.com/idn/api/v3/get-access-request-config) endpoint for request configuration options. * Allows any authenticated token (except API) to call this endpoint to request to grant access to themselves. Depending on the configuration, a user can request access for others. * Roles, access profiles and entitlements can be requested. * While requesting entitlements, maximum of 25 entitlements and 10 recipients are allowed in a request. __REVOKE_ACCESS__ * Can only be requested for a single identity at a time. * Does not support self request. Only manager can request to revoke access for their directly managed employees. * If a `removeDate` is specified, then the access will be removed on that date and time only for roles and access profiles. Entitlements are currently unsupported for `removeDate`. * Roles, access profiles, and entitlements can be requested for revocation. * Revoke requests for entitlements are limited to 1 entitlement per access request currently. * [Roles, Access Profiles] You can specify a `removeDate` if the access doesn\'t already have a sunset date. The `removeDate` must be a future date, in the UTC timezone. * Allows a manager to request to revoke access for direct employees. A token with ORG_ADMIN authority can also request to revoke access from anyone. >**Note:** There is no indication to the approver in the IdentityNow UI that the approval request is for a revoke action. Take this into consideration when calling this API. A token with API authority cannot be used to call this endpoint. + * @summary Submit an Access Request + * @param {AccessRequest} accessRequest + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + createAccessRequest: function (accessRequest, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'accessRequest' is not null or undefined + (0, common_1.assertParamExists)('createAccessRequest', 'accessRequest', accessRequest); + localVarPath = "/access-requests"; + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + localVarHeaderParameter['Content-Type'] = 'application/json'; + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(accessRequest, localVarRequestOptions, configuration); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This endpoint returns the current access-request configuration. + * @summary Get Access Request Configuration + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getAccessRequestConfig: function (axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + localVarPath = "/access-request-config"; + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * The Access Request Status API returns a list of access request statuses based on the specified query parameters. Any token with any authority can request their own status. A token with ORG_ADMIN authority is required to call this API to get a list of statuses for other users. + * @summary Access Request Status + * @param {string} [requestedFor] Filter the results by the identity for which the requests were made. *me* indicates the current user. Mutually exclusive with *regarding-identity*. + * @param {string} [requestedBy] Filter the results by the identity that made the requests. *me* indicates the current user. Mutually exclusive with *regarding-identity*. + * @param {string} [regardingIdentity] Filter the results by the specified identity which is either the requester or target of the requests. *me* indicates the current user. Mutually exclusive with *requested-for* and *requested-by*. + * @param {string} [assignedTo] Filter the results by the specified identity which is the owner of the Identity Request Work Item. *me* indicates the current user. + * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. + * @param {number} [limit] Max number of results to return. + * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. Defaults to 0 if not specified. + * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **accountActivityItemId**: *eq, in, co, ge, gt, le, lt, ne, isnull, sw* + * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **created, modified, accountActivityItemId, name** + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + listAccessRequestStatus: function (requestedFor, requestedBy, regardingIdentity, assignedTo, count, limit, offset, filters, sorters, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + localVarPath = "/access-request-status"; + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + if (requestedFor !== undefined) { + localVarQueryParameter['requested-for'] = requestedFor; + } + if (requestedBy !== undefined) { + localVarQueryParameter['requested-by'] = requestedBy; + } + if (regardingIdentity !== undefined) { + localVarQueryParameter['regarding-identity'] = regardingIdentity; + } + if (assignedTo !== undefined) { + localVarQueryParameter['assigned-to'] = assignedTo; + } + if (count !== undefined) { + localVarQueryParameter['count'] = count; + } + if (limit !== undefined) { + localVarQueryParameter['limit'] = limit; + } + if (offset !== undefined) { + localVarQueryParameter['offset'] = offset; + } + if (filters !== undefined) { + localVarQueryParameter['filters'] = filters; + } + if (sorters !== undefined) { + localVarQueryParameter['sorters'] = sorters; + } + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This endpoint replaces the current access-request configuration. A token with ORG_ADMIN authority is required to call this API. + * @summary Update Access Request Configuration + * @param {AccessRequestConfig} accessRequestConfig + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + setAccessRequestConfig: function (accessRequestConfig, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'accessRequestConfig' is not null or undefined + (0, common_1.assertParamExists)('setAccessRequestConfig', 'accessRequestConfig', accessRequestConfig); + localVarPath = "/access-request-config"; + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'PUT' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + localVarHeaderParameter['Content-Type'] = 'application/json'; + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(accessRequestConfig, localVarRequestOptions, configuration); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + }; + }; + exports.AccessRequestsApiAxiosParamCreator = AccessRequestsApiAxiosParamCreator; + /** + * AccessRequestsApi - functional programming interface + * @export + */ + var AccessRequestsApiFp = function (configuration) { + var localVarAxiosParamCreator = (0, exports.AccessRequestsApiAxiosParamCreator)(configuration); + return { + /** + * This API endpoint cancels a pending access request. An access request can be cancelled only if it has not passed the approval step. Any token with ORG_ADMIN authority or token of the user who originally requested the access request is required to cancel it. + * @summary Cancel Access Request + * @param {CancelAccessRequest} cancelAccessRequest + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + cancelAccessRequest: function (cancelAccessRequest, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.cancelAccessRequest(cancelAccessRequest, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This submits the access request into IdentityNow, where it will follow any IdentityNow approval processes. Access requests are processed asynchronously by IdentityNow. A success response from this endpoint means the request has been submitted to IDN and is queued for processing. Because this endpoint is asynchronous, it will not return an error if you submit duplicate access requests in quick succession, or you submit an access request for access that is already in progress, approved, or rejected. It is best practice to check for any existing access requests that reference the same access items before submitting a new access request. This can be accomplished by using the [access request status](https://developer.sailpoint.com/idn/api/v3/list-access-request-status) or the [pending access request approvals](https://developer.sailpoint.com/idn/api/v3/list-pending-approvals) endpoints. You can also use the [search API](https://developer.sailpoint.com/idn/api/v3/search) to check the existing access items that an identity has before submitting an access request to ensure you are not requesting access that is already granted. There are two types of access request: __GRANT_ACCESS__ * Can be requested for multiple identities in a single request. * Supports self request and request on behalf of other users. Refer to the [Get Access Request Configuration](https://developer.sailpoint.com/idn/api/v3/get-access-request-config) endpoint for request configuration options. * Allows any authenticated token (except API) to call this endpoint to request to grant access to themselves. Depending on the configuration, a user can request access for others. * Roles, access profiles and entitlements can be requested. * While requesting entitlements, maximum of 25 entitlements and 10 recipients are allowed in a request. __REVOKE_ACCESS__ * Can only be requested for a single identity at a time. * Does not support self request. Only manager can request to revoke access for their directly managed employees. * If a `removeDate` is specified, then the access will be removed on that date and time only for roles and access profiles. Entitlements are currently unsupported for `removeDate`. * Roles, access profiles, and entitlements can be requested for revocation. * Revoke requests for entitlements are limited to 1 entitlement per access request currently. * [Roles, Access Profiles] You can specify a `removeDate` if the access doesn\'t already have a sunset date. The `removeDate` must be a future date, in the UTC timezone. * Allows a manager to request to revoke access for direct employees. A token with ORG_ADMIN authority can also request to revoke access from anyone. >**Note:** There is no indication to the approver in the IdentityNow UI that the approval request is for a revoke action. Take this into consideration when calling this API. A token with API authority cannot be used to call this endpoint. + * @summary Submit an Access Request + * @param {AccessRequest} accessRequest + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + createAccessRequest: function (accessRequest, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.createAccessRequest(accessRequest, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This endpoint returns the current access-request configuration. + * @summary Get Access Request Configuration + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getAccessRequestConfig: function (axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.getAccessRequestConfig(axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * The Access Request Status API returns a list of access request statuses based on the specified query parameters. Any token with any authority can request their own status. A token with ORG_ADMIN authority is required to call this API to get a list of statuses for other users. + * @summary Access Request Status + * @param {string} [requestedFor] Filter the results by the identity for which the requests were made. *me* indicates the current user. Mutually exclusive with *regarding-identity*. + * @param {string} [requestedBy] Filter the results by the identity that made the requests. *me* indicates the current user. Mutually exclusive with *regarding-identity*. + * @param {string} [regardingIdentity] Filter the results by the specified identity which is either the requester or target of the requests. *me* indicates the current user. Mutually exclusive with *requested-for* and *requested-by*. + * @param {string} [assignedTo] Filter the results by the specified identity which is the owner of the Identity Request Work Item. *me* indicates the current user. + * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. + * @param {number} [limit] Max number of results to return. + * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. Defaults to 0 if not specified. + * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **accountActivityItemId**: *eq, in, co, ge, gt, le, lt, ne, isnull, sw* + * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **created, modified, accountActivityItemId, name** + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + listAccessRequestStatus: function (requestedFor, requestedBy, regardingIdentity, assignedTo, count, limit, offset, filters, sorters, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.listAccessRequestStatus(requestedFor, requestedBy, regardingIdentity, assignedTo, count, limit, offset, filters, sorters, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This endpoint replaces the current access-request configuration. A token with ORG_ADMIN authority is required to call this API. + * @summary Update Access Request Configuration + * @param {AccessRequestConfig} accessRequestConfig + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + setAccessRequestConfig: function (accessRequestConfig, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.setAccessRequestConfig(accessRequestConfig, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + }; + }; + exports.AccessRequestsApiFp = AccessRequestsApiFp; + /** + * AccessRequestsApi - factory interface + * @export + */ + var AccessRequestsApiFactory = function (configuration, basePath, axios) { + var localVarFp = (0, exports.AccessRequestsApiFp)(configuration); + return { + /** + * This API endpoint cancels a pending access request. An access request can be cancelled only if it has not passed the approval step. Any token with ORG_ADMIN authority or token of the user who originally requested the access request is required to cancel it. + * @summary Cancel Access Request + * @param {CancelAccessRequest} cancelAccessRequest + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + cancelAccessRequest: function (cancelAccessRequest, axiosOptions) { + return localVarFp.cancelAccessRequest(cancelAccessRequest, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This submits the access request into IdentityNow, where it will follow any IdentityNow approval processes. Access requests are processed asynchronously by IdentityNow. A success response from this endpoint means the request has been submitted to IDN and is queued for processing. Because this endpoint is asynchronous, it will not return an error if you submit duplicate access requests in quick succession, or you submit an access request for access that is already in progress, approved, or rejected. It is best practice to check for any existing access requests that reference the same access items before submitting a new access request. This can be accomplished by using the [access request status](https://developer.sailpoint.com/idn/api/v3/list-access-request-status) or the [pending access request approvals](https://developer.sailpoint.com/idn/api/v3/list-pending-approvals) endpoints. You can also use the [search API](https://developer.sailpoint.com/idn/api/v3/search) to check the existing access items that an identity has before submitting an access request to ensure you are not requesting access that is already granted. There are two types of access request: __GRANT_ACCESS__ * Can be requested for multiple identities in a single request. * Supports self request and request on behalf of other users. Refer to the [Get Access Request Configuration](https://developer.sailpoint.com/idn/api/v3/get-access-request-config) endpoint for request configuration options. * Allows any authenticated token (except API) to call this endpoint to request to grant access to themselves. Depending on the configuration, a user can request access for others. * Roles, access profiles and entitlements can be requested. * While requesting entitlements, maximum of 25 entitlements and 10 recipients are allowed in a request. __REVOKE_ACCESS__ * Can only be requested for a single identity at a time. * Does not support self request. Only manager can request to revoke access for their directly managed employees. * If a `removeDate` is specified, then the access will be removed on that date and time only for roles and access profiles. Entitlements are currently unsupported for `removeDate`. * Roles, access profiles, and entitlements can be requested for revocation. * Revoke requests for entitlements are limited to 1 entitlement per access request currently. * [Roles, Access Profiles] You can specify a `removeDate` if the access doesn\'t already have a sunset date. The `removeDate` must be a future date, in the UTC timezone. * Allows a manager to request to revoke access for direct employees. A token with ORG_ADMIN authority can also request to revoke access from anyone. >**Note:** There is no indication to the approver in the IdentityNow UI that the approval request is for a revoke action. Take this into consideration when calling this API. A token with API authority cannot be used to call this endpoint. + * @summary Submit an Access Request + * @param {AccessRequest} accessRequest + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + createAccessRequest: function (accessRequest, axiosOptions) { + return localVarFp.createAccessRequest(accessRequest, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This endpoint returns the current access-request configuration. + * @summary Get Access Request Configuration + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getAccessRequestConfig: function (axiosOptions) { + return localVarFp.getAccessRequestConfig(axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * The Access Request Status API returns a list of access request statuses based on the specified query parameters. Any token with any authority can request their own status. A token with ORG_ADMIN authority is required to call this API to get a list of statuses for other users. + * @summary Access Request Status + * @param {string} [requestedFor] Filter the results by the identity for which the requests were made. *me* indicates the current user. Mutually exclusive with *regarding-identity*. + * @param {string} [requestedBy] Filter the results by the identity that made the requests. *me* indicates the current user. Mutually exclusive with *regarding-identity*. + * @param {string} [regardingIdentity] Filter the results by the specified identity which is either the requester or target of the requests. *me* indicates the current user. Mutually exclusive with *requested-for* and *requested-by*. + * @param {string} [assignedTo] Filter the results by the specified identity which is the owner of the Identity Request Work Item. *me* indicates the current user. + * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. + * @param {number} [limit] Max number of results to return. + * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. Defaults to 0 if not specified. + * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **accountActivityItemId**: *eq, in, co, ge, gt, le, lt, ne, isnull, sw* + * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **created, modified, accountActivityItemId, name** + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + listAccessRequestStatus: function (requestedFor, requestedBy, regardingIdentity, assignedTo, count, limit, offset, filters, sorters, axiosOptions) { + return localVarFp.listAccessRequestStatus(requestedFor, requestedBy, regardingIdentity, assignedTo, count, limit, offset, filters, sorters, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This endpoint replaces the current access-request configuration. A token with ORG_ADMIN authority is required to call this API. + * @summary Update Access Request Configuration + * @param {AccessRequestConfig} accessRequestConfig + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + setAccessRequestConfig: function (accessRequestConfig, axiosOptions) { + return localVarFp.setAccessRequestConfig(accessRequestConfig, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + }; + }; + exports.AccessRequestsApiFactory = AccessRequestsApiFactory; + /** + * AccessRequestsApi - object-oriented interface + * @export + * @class AccessRequestsApi + * @extends {BaseAPI} + */ + var AccessRequestsApi = /** @class */ (function (_super) { + __extends(AccessRequestsApi, _super); + function AccessRequestsApi() { + return _super !== null && _super.apply(this, arguments) || this; + } + /** + * This API endpoint cancels a pending access request. An access request can be cancelled only if it has not passed the approval step. Any token with ORG_ADMIN authority or token of the user who originally requested the access request is required to cancel it. + * @summary Cancel Access Request + * @param {AccessRequestsApiCancelAccessRequestRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof AccessRequestsApi + */ + AccessRequestsApi.prototype.cancelAccessRequest = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.AccessRequestsApiFp)(this.configuration).cancelAccessRequest(requestParameters.cancelAccessRequest, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This submits the access request into IdentityNow, where it will follow any IdentityNow approval processes. Access requests are processed asynchronously by IdentityNow. A success response from this endpoint means the request has been submitted to IDN and is queued for processing. Because this endpoint is asynchronous, it will not return an error if you submit duplicate access requests in quick succession, or you submit an access request for access that is already in progress, approved, or rejected. It is best practice to check for any existing access requests that reference the same access items before submitting a new access request. This can be accomplished by using the [access request status](https://developer.sailpoint.com/idn/api/v3/list-access-request-status) or the [pending access request approvals](https://developer.sailpoint.com/idn/api/v3/list-pending-approvals) endpoints. You can also use the [search API](https://developer.sailpoint.com/idn/api/v3/search) to check the existing access items that an identity has before submitting an access request to ensure you are not requesting access that is already granted. There are two types of access request: __GRANT_ACCESS__ * Can be requested for multiple identities in a single request. * Supports self request and request on behalf of other users. Refer to the [Get Access Request Configuration](https://developer.sailpoint.com/idn/api/v3/get-access-request-config) endpoint for request configuration options. * Allows any authenticated token (except API) to call this endpoint to request to grant access to themselves. Depending on the configuration, a user can request access for others. * Roles, access profiles and entitlements can be requested. * While requesting entitlements, maximum of 25 entitlements and 10 recipients are allowed in a request. __REVOKE_ACCESS__ * Can only be requested for a single identity at a time. * Does not support self request. Only manager can request to revoke access for their directly managed employees. * If a `removeDate` is specified, then the access will be removed on that date and time only for roles and access profiles. Entitlements are currently unsupported for `removeDate`. * Roles, access profiles, and entitlements can be requested for revocation. * Revoke requests for entitlements are limited to 1 entitlement per access request currently. * [Roles, Access Profiles] You can specify a `removeDate` if the access doesn\'t already have a sunset date. The `removeDate` must be a future date, in the UTC timezone. * Allows a manager to request to revoke access for direct employees. A token with ORG_ADMIN authority can also request to revoke access from anyone. >**Note:** There is no indication to the approver in the IdentityNow UI that the approval request is for a revoke action. Take this into consideration when calling this API. A token with API authority cannot be used to call this endpoint. + * @summary Submit an Access Request + * @param {AccessRequestsApiCreateAccessRequestRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof AccessRequestsApi + */ + AccessRequestsApi.prototype.createAccessRequest = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.AccessRequestsApiFp)(this.configuration).createAccessRequest(requestParameters.accessRequest, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This endpoint returns the current access-request configuration. + * @summary Get Access Request Configuration + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof AccessRequestsApi + */ + AccessRequestsApi.prototype.getAccessRequestConfig = function (axiosOptions) { + var _this = this; + return (0, exports.AccessRequestsApiFp)(this.configuration).getAccessRequestConfig(axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * The Access Request Status API returns a list of access request statuses based on the specified query parameters. Any token with any authority can request their own status. A token with ORG_ADMIN authority is required to call this API to get a list of statuses for other users. + * @summary Access Request Status + * @param {AccessRequestsApiListAccessRequestStatusRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof AccessRequestsApi + */ + AccessRequestsApi.prototype.listAccessRequestStatus = function (requestParameters, axiosOptions) { + var _this = this; + if (requestParameters === void 0) { requestParameters = {}; } + return (0, exports.AccessRequestsApiFp)(this.configuration).listAccessRequestStatus(requestParameters.requestedFor, requestParameters.requestedBy, requestParameters.regardingIdentity, requestParameters.assignedTo, requestParameters.count, requestParameters.limit, requestParameters.offset, requestParameters.filters, requestParameters.sorters, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This endpoint replaces the current access-request configuration. A token with ORG_ADMIN authority is required to call this API. + * @summary Update Access Request Configuration + * @param {AccessRequestsApiSetAccessRequestConfigRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof AccessRequestsApi + */ + AccessRequestsApi.prototype.setAccessRequestConfig = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.AccessRequestsApiFp)(this.configuration).setAccessRequestConfig(requestParameters.accessRequestConfig, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + return AccessRequestsApi; + }(base_1.BaseAPI)); + exports.AccessRequestsApi = AccessRequestsApi; + /** + * AccountActivitiesApi - axios parameter creator + * @export + */ + var AccountActivitiesApiAxiosParamCreator = function (configuration) { + var _this = this; + return { + /** + * This gets a single account activity by its id. + * @summary Get an Account Activity + * @param {string} id The account activity id + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getAccountActivity: function (id, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'id' is not null or undefined + (0, common_1.assertParamExists)('getAccountActivity', 'id', id); + localVarPath = "/account-activities/{id}" + .replace("{".concat("id", "}"), encodeURIComponent(String(id))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This gets a collection of account activities that satisfy the given query parameters. + * @summary List Account Activities + * @param {string} [requestedFor] The identity that the activity was requested for. *me* indicates the current user. Mutually exclusive with *regarding-identity*. + * @param {string} [requestedBy] The identity that requested the activity. *me* indicates the current user. Mutually exclusive with *regarding-identity*. + * @param {string} [regardingIdentity] The specified identity will be either the requester or target of the account activity. *me* indicates the current user. Mutually exclusive with *requested-for* and *requested-by*. + * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **type**: *eq, in, co, ge, gt, le, lt, ne, isnull, sw* **created**: *gt, lt, ge, le, co, eq, in, ne, isnull, sw* **modified**: *gt, lt, ge, le, co, eq, in, ne, isnull, sw* + * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **type, created, modified** + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + listAccountActivities: function (requestedFor, requestedBy, regardingIdentity, limit, offset, count, filters, sorters, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + localVarPath = "/account-activities"; + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + if (requestedFor !== undefined) { + localVarQueryParameter['requested-for'] = requestedFor; + } + if (requestedBy !== undefined) { + localVarQueryParameter['requested-by'] = requestedBy; + } + if (regardingIdentity !== undefined) { + localVarQueryParameter['regarding-identity'] = regardingIdentity; + } + if (limit !== undefined) { + localVarQueryParameter['limit'] = limit; + } + if (offset !== undefined) { + localVarQueryParameter['offset'] = offset; + } + if (count !== undefined) { + localVarQueryParameter['count'] = count; + } + if (filters !== undefined) { + localVarQueryParameter['filters'] = filters; + } + if (sorters !== undefined) { + localVarQueryParameter['sorters'] = sorters; + } + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + }; + }; + exports.AccountActivitiesApiAxiosParamCreator = AccountActivitiesApiAxiosParamCreator; + /** + * AccountActivitiesApi - functional programming interface + * @export + */ + var AccountActivitiesApiFp = function (configuration) { + var localVarAxiosParamCreator = (0, exports.AccountActivitiesApiAxiosParamCreator)(configuration); + return { + /** + * This gets a single account activity by its id. + * @summary Get an Account Activity + * @param {string} id The account activity id + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getAccountActivity: function (id, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.getAccountActivity(id, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This gets a collection of account activities that satisfy the given query parameters. + * @summary List Account Activities + * @param {string} [requestedFor] The identity that the activity was requested for. *me* indicates the current user. Mutually exclusive with *regarding-identity*. + * @param {string} [requestedBy] The identity that requested the activity. *me* indicates the current user. Mutually exclusive with *regarding-identity*. + * @param {string} [regardingIdentity] The specified identity will be either the requester or target of the account activity. *me* indicates the current user. Mutually exclusive with *requested-for* and *requested-by*. + * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **type**: *eq, in, co, ge, gt, le, lt, ne, isnull, sw* **created**: *gt, lt, ge, le, co, eq, in, ne, isnull, sw* **modified**: *gt, lt, ge, le, co, eq, in, ne, isnull, sw* + * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **type, created, modified** + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + listAccountActivities: function (requestedFor, requestedBy, regardingIdentity, limit, offset, count, filters, sorters, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.listAccountActivities(requestedFor, requestedBy, regardingIdentity, limit, offset, count, filters, sorters, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + }; + }; + exports.AccountActivitiesApiFp = AccountActivitiesApiFp; + /** + * AccountActivitiesApi - factory interface + * @export + */ + var AccountActivitiesApiFactory = function (configuration, basePath, axios) { + var localVarFp = (0, exports.AccountActivitiesApiFp)(configuration); + return { + /** + * This gets a single account activity by its id. + * @summary Get an Account Activity + * @param {string} id The account activity id + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getAccountActivity: function (id, axiosOptions) { + return localVarFp.getAccountActivity(id, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This gets a collection of account activities that satisfy the given query parameters. + * @summary List Account Activities + * @param {string} [requestedFor] The identity that the activity was requested for. *me* indicates the current user. Mutually exclusive with *regarding-identity*. + * @param {string} [requestedBy] The identity that requested the activity. *me* indicates the current user. Mutually exclusive with *regarding-identity*. + * @param {string} [regardingIdentity] The specified identity will be either the requester or target of the account activity. *me* indicates the current user. Mutually exclusive with *requested-for* and *requested-by*. + * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **type**: *eq, in, co, ge, gt, le, lt, ne, isnull, sw* **created**: *gt, lt, ge, le, co, eq, in, ne, isnull, sw* **modified**: *gt, lt, ge, le, co, eq, in, ne, isnull, sw* + * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **type, created, modified** + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + listAccountActivities: function (requestedFor, requestedBy, regardingIdentity, limit, offset, count, filters, sorters, axiosOptions) { + return localVarFp.listAccountActivities(requestedFor, requestedBy, regardingIdentity, limit, offset, count, filters, sorters, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + }; + }; + exports.AccountActivitiesApiFactory = AccountActivitiesApiFactory; + /** + * AccountActivitiesApi - object-oriented interface + * @export + * @class AccountActivitiesApi + * @extends {BaseAPI} + */ + var AccountActivitiesApi = /** @class */ (function (_super) { + __extends(AccountActivitiesApi, _super); + function AccountActivitiesApi() { + return _super !== null && _super.apply(this, arguments) || this; + } + /** + * This gets a single account activity by its id. + * @summary Get an Account Activity + * @param {AccountActivitiesApiGetAccountActivityRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof AccountActivitiesApi + */ + AccountActivitiesApi.prototype.getAccountActivity = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.AccountActivitiesApiFp)(this.configuration).getAccountActivity(requestParameters.id, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This gets a collection of account activities that satisfy the given query parameters. + * @summary List Account Activities + * @param {AccountActivitiesApiListAccountActivitiesRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof AccountActivitiesApi + */ + AccountActivitiesApi.prototype.listAccountActivities = function (requestParameters, axiosOptions) { + var _this = this; + if (requestParameters === void 0) { requestParameters = {}; } + return (0, exports.AccountActivitiesApiFp)(this.configuration).listAccountActivities(requestParameters.requestedFor, requestParameters.requestedBy, requestParameters.regardingIdentity, requestParameters.limit, requestParameters.offset, requestParameters.count, requestParameters.filters, requestParameters.sorters, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + return AccountActivitiesApi; + }(base_1.BaseAPI)); + exports.AccountActivitiesApi = AccountActivitiesApi; + /** + * AccountUsagesApi - axios parameter creator + * @export + */ + var AccountUsagesApiAxiosParamCreator = function (configuration) { + var _this = this; + return { + /** + * This API returns a summary of account usage insights for past 12 months. + * @summary Returns account usage insights + * @param {string} accountId ID of IDN account + * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **date** + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getUsagesByAccountId: function (accountId, limit, offset, count, sorters, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'accountId' is not null or undefined + (0, common_1.assertParamExists)('getUsagesByAccountId', 'accountId', accountId); + localVarPath = "/account-usages/{accountId}/summaries" + .replace("{".concat("accountId", "}"), encodeURIComponent(String(accountId))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + if (limit !== undefined) { + localVarQueryParameter['limit'] = limit; + } + if (offset !== undefined) { + localVarQueryParameter['offset'] = offset; + } + if (count !== undefined) { + localVarQueryParameter['count'] = count; + } + if (sorters !== undefined) { + localVarQueryParameter['sorters'] = sorters; + } + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + }; + }; + exports.AccountUsagesApiAxiosParamCreator = AccountUsagesApiAxiosParamCreator; + /** + * AccountUsagesApi - functional programming interface + * @export + */ + var AccountUsagesApiFp = function (configuration) { + var localVarAxiosParamCreator = (0, exports.AccountUsagesApiAxiosParamCreator)(configuration); + return { + /** + * This API returns a summary of account usage insights for past 12 months. + * @summary Returns account usage insights + * @param {string} accountId ID of IDN account + * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **date** + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getUsagesByAccountId: function (accountId, limit, offset, count, sorters, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.getUsagesByAccountId(accountId, limit, offset, count, sorters, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + }; + }; + exports.AccountUsagesApiFp = AccountUsagesApiFp; + /** + * AccountUsagesApi - factory interface + * @export + */ + var AccountUsagesApiFactory = function (configuration, basePath, axios) { + var localVarFp = (0, exports.AccountUsagesApiFp)(configuration); + return { + /** + * This API returns a summary of account usage insights for past 12 months. + * @summary Returns account usage insights + * @param {string} accountId ID of IDN account + * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **date** + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getUsagesByAccountId: function (accountId, limit, offset, count, sorters, axiosOptions) { + return localVarFp.getUsagesByAccountId(accountId, limit, offset, count, sorters, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + }; + }; + exports.AccountUsagesApiFactory = AccountUsagesApiFactory; + /** + * AccountUsagesApi - object-oriented interface + * @export + * @class AccountUsagesApi + * @extends {BaseAPI} + */ + var AccountUsagesApi = /** @class */ (function (_super) { + __extends(AccountUsagesApi, _super); + function AccountUsagesApi() { + return _super !== null && _super.apply(this, arguments) || this; + } + /** + * This API returns a summary of account usage insights for past 12 months. + * @summary Returns account usage insights + * @param {AccountUsagesApiGetUsagesByAccountIdRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof AccountUsagesApi + */ + AccountUsagesApi.prototype.getUsagesByAccountId = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.AccountUsagesApiFp)(this.configuration).getUsagesByAccountId(requestParameters.accountId, requestParameters.limit, requestParameters.offset, requestParameters.count, requestParameters.sorters, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + return AccountUsagesApi; + }(base_1.BaseAPI)); + exports.AccountUsagesApi = AccountUsagesApi; + /** + * AccountsApi - axios parameter creator + * @export + */ + var AccountsApiAxiosParamCreator = function (configuration) { + var _this = this; + return { + /** + * This API submits an account creation task and returns the task ID. The `sourceId` where this account will be created must be included in the `attributes` object. A token with ORG_ADMIN authority is required to call this API. + * @summary Create Account + * @param {AccountAttributesCreate} accountAttributesCreate + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + createAccount: function (accountAttributesCreate, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'accountAttributesCreate' is not null or undefined + (0, common_1.assertParamExists)('createAccount', 'accountAttributesCreate', accountAttributesCreate); + localVarPath = "/accounts"; + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + localVarHeaderParameter['Content-Type'] = 'application/json'; + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(accountAttributesCreate, localVarRequestOptions, configuration); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This API submits an account delete task and returns the task ID. This operation can only be used on Flat File Sources. Any attempt to execute this request on the source of other type will result in an error response with a status code of 400. A token with ORG_ADMIN authority is required to call this API. + * @summary Delete Account + * @param {string} id The account ID + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + deleteAccount: function (id, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'id' is not null or undefined + (0, common_1.assertParamExists)('deleteAccount', 'id', id); + localVarPath = "/accounts/{id}" + .replace("{".concat("id", "}"), encodeURIComponent(String(id))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'DELETE' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This API submits a task to disable the account and returns the task ID. A token with ORG_ADMIN authority is required to call this API. + * @summary Disable Account + * @param {string} id The account id + * @param {AccountToggleRequest} accountToggleRequest + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + disableAccount: function (id, accountToggleRequest, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'id' is not null or undefined + (0, common_1.assertParamExists)('disableAccount', 'id', id); + // verify required parameter 'accountToggleRequest' is not null or undefined + (0, common_1.assertParamExists)('disableAccount', 'accountToggleRequest', accountToggleRequest); + localVarPath = "/accounts/{id}/disable" + .replace("{".concat("id", "}"), encodeURIComponent(String(id))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + localVarHeaderParameter['Content-Type'] = 'application/json'; + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(accountToggleRequest, localVarRequestOptions, configuration); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This API submits a task to enable account and returns the task ID. A token with ORG_ADMIN authority is required to call this API. + * @summary Enable Account + * @param {string} id The account id + * @param {AccountToggleRequest} accountToggleRequest + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + enableAccount: function (id, accountToggleRequest, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'id' is not null or undefined + (0, common_1.assertParamExists)('enableAccount', 'id', id); + // verify required parameter 'accountToggleRequest' is not null or undefined + (0, common_1.assertParamExists)('enableAccount', 'accountToggleRequest', accountToggleRequest); + localVarPath = "/accounts/{id}/enable" + .replace("{".concat("id", "}"), encodeURIComponent(String(id))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + localVarHeaderParameter['Content-Type'] = 'application/json'; + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(accountToggleRequest, localVarRequestOptions, configuration); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This API returns the details for a single account based on the ID. A token with ORG_ADMIN authority is required to call this API. + * @summary Account Details + * @param {string} id The account ID + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getAccount: function (id, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'id' is not null or undefined + (0, common_1.assertParamExists)('getAccount', 'id', id); + localVarPath = "/accounts/{id}" + .replace("{".concat("id", "}"), encodeURIComponent(String(id))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This API returns entitlements of the account. A token with ORG_ADMIN authority is required to call this API. + * @summary Account Entitlements + * @param {string} id The account id + * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getAccountEntitlements: function (id, limit, offset, count, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'id' is not null or undefined + (0, common_1.assertParamExists)('getAccountEntitlements', 'id', id); + localVarPath = "/accounts/{id}/entitlements" + .replace("{".concat("id", "}"), encodeURIComponent(String(id))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + if (limit !== undefined) { + localVarQueryParameter['limit'] = limit; + } + if (offset !== undefined) { + localVarQueryParameter['offset'] = offset; + } + if (count !== undefined) { + localVarQueryParameter['count'] = count; + } + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This returns a list of accounts. A token with ORG_ADMIN authority is required to call this API. + * @summary Accounts List + * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **id**: *eq, in, co, ge, gt, le, lt, ne, isnull, sw* **identityId**: *eq, co, ge, gt, in, le, lt, ne, isnull, sw* **name**: *eq, in, co, ge, gt, ne, isnull, sw* **nativeIdentity**: *eq, in, co, ge, gt, le, lt, ne, isnull, sw* **sourceId**: *eq, in, co, ge, gt, le, lt, ne, isnull, sw* **uncorrelated**: *eq* + * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **id, name, created, modified, sourceId, identityId, nativeIdentity, uuid, manuallyCorrelated** + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + listAccounts: function (limit, offset, count, filters, sorters, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + localVarPath = "/accounts"; + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + if (limit !== undefined) { + localVarQueryParameter['limit'] = limit; + } + if (offset !== undefined) { + localVarQueryParameter['offset'] = offset; + } + if (count !== undefined) { + localVarQueryParameter['count'] = count; + } + if (filters !== undefined) { + localVarQueryParameter['filters'] = filters; + } + if (sorters !== undefined) { + localVarQueryParameter['sorters'] = sorters; + } + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This API submits an account update task and returns the task ID. A token with ORG_ADMIN authority is required to call this API. >**NOTE: The PUT Account API is designated only for Delimited File sources.** + * @summary Update Account + * @param {string} id The account ID + * @param {AccountAttributes} accountAttributes + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + putAccount: function (id, accountAttributes, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'id' is not null or undefined + (0, common_1.assertParamExists)('putAccount', 'id', id); + // verify required parameter 'accountAttributes' is not null or undefined + (0, common_1.assertParamExists)('putAccount', 'accountAttributes', accountAttributes); + localVarPath = "/accounts/{id}" + .replace("{".concat("id", "}"), encodeURIComponent(String(id))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'PUT' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + localVarHeaderParameter['Content-Type'] = 'application/json'; + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(accountAttributes, localVarRequestOptions, configuration); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This API asynchronously reloads the account directly from the connector and performs a one-time aggregation process. A token with ORG_ADMIN authority is required to call this API. + * @summary Reload Account + * @param {string} id The account id + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + reloadAccount: function (id, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'id' is not null or undefined + (0, common_1.assertParamExists)('reloadAccount', 'id', id); + localVarPath = "/accounts/{id}/reload" + .replace("{".concat("id", "}"), encodeURIComponent(String(id))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This API submits a task to unlock an account and returns the task ID. A token with ORG_ADMIN authority is required to call this API. + * @summary Unlock Account + * @param {string} id The account id + * @param {AccountUnlockRequest} accountUnlockRequest + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + unlockAccount: function (id, accountUnlockRequest, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'id' is not null or undefined + (0, common_1.assertParamExists)('unlockAccount', 'id', id); + // verify required parameter 'accountUnlockRequest' is not null or undefined + (0, common_1.assertParamExists)('unlockAccount', 'accountUnlockRequest', accountUnlockRequest); + localVarPath = "/accounts/{id}/unlock" + .replace("{".concat("id", "}"), encodeURIComponent(String(id))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + localVarHeaderParameter['Content-Type'] = 'application/json'; + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(accountUnlockRequest, localVarRequestOptions, configuration); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * Use this API to modify the following fields: * `identityId` * `manuallyCorrelated` >**NOTE: All other fields cannot be modified.** The request must provide a JSONPatch payload. A token with ORG_ADMIN authority is required to call this API. + * @summary Update Account + * @param {string} id The account ID + * @param {Array} jsonPatchOperation A list of account update operations according to the [JSON Patch](https://tools.ietf.org/html/rfc6902) standard. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + updateAccount: function (id, jsonPatchOperation, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'id' is not null or undefined + (0, common_1.assertParamExists)('updateAccount', 'id', id); + // verify required parameter 'jsonPatchOperation' is not null or undefined + (0, common_1.assertParamExists)('updateAccount', 'jsonPatchOperation', jsonPatchOperation); + localVarPath = "/accounts/{id}" + .replace("{".concat("id", "}"), encodeURIComponent(String(id))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'PATCH' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + localVarHeaderParameter['Content-Type'] = 'application/json-patch+json'; + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(jsonPatchOperation, localVarRequestOptions, configuration); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + }; + }; + exports.AccountsApiAxiosParamCreator = AccountsApiAxiosParamCreator; + /** + * AccountsApi - functional programming interface + * @export + */ + var AccountsApiFp = function (configuration) { + var localVarAxiosParamCreator = (0, exports.AccountsApiAxiosParamCreator)(configuration); + return { + /** + * This API submits an account creation task and returns the task ID. The `sourceId` where this account will be created must be included in the `attributes` object. A token with ORG_ADMIN authority is required to call this API. + * @summary Create Account + * @param {AccountAttributesCreate} accountAttributesCreate + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + createAccount: function (accountAttributesCreate, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.createAccount(accountAttributesCreate, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This API submits an account delete task and returns the task ID. This operation can only be used on Flat File Sources. Any attempt to execute this request on the source of other type will result in an error response with a status code of 400. A token with ORG_ADMIN authority is required to call this API. + * @summary Delete Account + * @param {string} id The account ID + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + deleteAccount: function (id, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.deleteAccount(id, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This API submits a task to disable the account and returns the task ID. A token with ORG_ADMIN authority is required to call this API. + * @summary Disable Account + * @param {string} id The account id + * @param {AccountToggleRequest} accountToggleRequest + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + disableAccount: function (id, accountToggleRequest, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.disableAccount(id, accountToggleRequest, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This API submits a task to enable account and returns the task ID. A token with ORG_ADMIN authority is required to call this API. + * @summary Enable Account + * @param {string} id The account id + * @param {AccountToggleRequest} accountToggleRequest + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + enableAccount: function (id, accountToggleRequest, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.enableAccount(id, accountToggleRequest, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This API returns the details for a single account based on the ID. A token with ORG_ADMIN authority is required to call this API. + * @summary Account Details + * @param {string} id The account ID + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getAccount: function (id, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.getAccount(id, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This API returns entitlements of the account. A token with ORG_ADMIN authority is required to call this API. + * @summary Account Entitlements + * @param {string} id The account id + * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getAccountEntitlements: function (id, limit, offset, count, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.getAccountEntitlements(id, limit, offset, count, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This returns a list of accounts. A token with ORG_ADMIN authority is required to call this API. + * @summary Accounts List + * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **id**: *eq, in, co, ge, gt, le, lt, ne, isnull, sw* **identityId**: *eq, co, ge, gt, in, le, lt, ne, isnull, sw* **name**: *eq, in, co, ge, gt, ne, isnull, sw* **nativeIdentity**: *eq, in, co, ge, gt, le, lt, ne, isnull, sw* **sourceId**: *eq, in, co, ge, gt, le, lt, ne, isnull, sw* **uncorrelated**: *eq* + * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **id, name, created, modified, sourceId, identityId, nativeIdentity, uuid, manuallyCorrelated** + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + listAccounts: function (limit, offset, count, filters, sorters, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.listAccounts(limit, offset, count, filters, sorters, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This API submits an account update task and returns the task ID. A token with ORG_ADMIN authority is required to call this API. >**NOTE: The PUT Account API is designated only for Delimited File sources.** + * @summary Update Account + * @param {string} id The account ID + * @param {AccountAttributes} accountAttributes + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + putAccount: function (id, accountAttributes, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.putAccount(id, accountAttributes, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This API asynchronously reloads the account directly from the connector and performs a one-time aggregation process. A token with ORG_ADMIN authority is required to call this API. + * @summary Reload Account + * @param {string} id The account id + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + reloadAccount: function (id, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.reloadAccount(id, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This API submits a task to unlock an account and returns the task ID. A token with ORG_ADMIN authority is required to call this API. + * @summary Unlock Account + * @param {string} id The account id + * @param {AccountUnlockRequest} accountUnlockRequest + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + unlockAccount: function (id, accountUnlockRequest, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.unlockAccount(id, accountUnlockRequest, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * Use this API to modify the following fields: * `identityId` * `manuallyCorrelated` >**NOTE: All other fields cannot be modified.** The request must provide a JSONPatch payload. A token with ORG_ADMIN authority is required to call this API. + * @summary Update Account + * @param {string} id The account ID + * @param {Array} jsonPatchOperation A list of account update operations according to the [JSON Patch](https://tools.ietf.org/html/rfc6902) standard. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + updateAccount: function (id, jsonPatchOperation, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.updateAccount(id, jsonPatchOperation, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + }; + }; + exports.AccountsApiFp = AccountsApiFp; + /** + * AccountsApi - factory interface + * @export + */ + var AccountsApiFactory = function (configuration, basePath, axios) { + var localVarFp = (0, exports.AccountsApiFp)(configuration); + return { + /** + * This API submits an account creation task and returns the task ID. The `sourceId` where this account will be created must be included in the `attributes` object. A token with ORG_ADMIN authority is required to call this API. + * @summary Create Account + * @param {AccountAttributesCreate} accountAttributesCreate + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + createAccount: function (accountAttributesCreate, axiosOptions) { + return localVarFp.createAccount(accountAttributesCreate, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This API submits an account delete task and returns the task ID. This operation can only be used on Flat File Sources. Any attempt to execute this request on the source of other type will result in an error response with a status code of 400. A token with ORG_ADMIN authority is required to call this API. + * @summary Delete Account + * @param {string} id The account ID + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + deleteAccount: function (id, axiosOptions) { + return localVarFp.deleteAccount(id, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This API submits a task to disable the account and returns the task ID. A token with ORG_ADMIN authority is required to call this API. + * @summary Disable Account + * @param {string} id The account id + * @param {AccountToggleRequest} accountToggleRequest + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + disableAccount: function (id, accountToggleRequest, axiosOptions) { + return localVarFp.disableAccount(id, accountToggleRequest, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This API submits a task to enable account and returns the task ID. A token with ORG_ADMIN authority is required to call this API. + * @summary Enable Account + * @param {string} id The account id + * @param {AccountToggleRequest} accountToggleRequest + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + enableAccount: function (id, accountToggleRequest, axiosOptions) { + return localVarFp.enableAccount(id, accountToggleRequest, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This API returns the details for a single account based on the ID. A token with ORG_ADMIN authority is required to call this API. + * @summary Account Details + * @param {string} id The account ID + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getAccount: function (id, axiosOptions) { + return localVarFp.getAccount(id, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This API returns entitlements of the account. A token with ORG_ADMIN authority is required to call this API. + * @summary Account Entitlements + * @param {string} id The account id + * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getAccountEntitlements: function (id, limit, offset, count, axiosOptions) { + return localVarFp.getAccountEntitlements(id, limit, offset, count, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This returns a list of accounts. A token with ORG_ADMIN authority is required to call this API. + * @summary Accounts List + * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **id**: *eq, in, co, ge, gt, le, lt, ne, isnull, sw* **identityId**: *eq, co, ge, gt, in, le, lt, ne, isnull, sw* **name**: *eq, in, co, ge, gt, ne, isnull, sw* **nativeIdentity**: *eq, in, co, ge, gt, le, lt, ne, isnull, sw* **sourceId**: *eq, in, co, ge, gt, le, lt, ne, isnull, sw* **uncorrelated**: *eq* + * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **id, name, created, modified, sourceId, identityId, nativeIdentity, uuid, manuallyCorrelated** + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + listAccounts: function (limit, offset, count, filters, sorters, axiosOptions) { + return localVarFp.listAccounts(limit, offset, count, filters, sorters, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This API submits an account update task and returns the task ID. A token with ORG_ADMIN authority is required to call this API. >**NOTE: The PUT Account API is designated only for Delimited File sources.** + * @summary Update Account + * @param {string} id The account ID + * @param {AccountAttributes} accountAttributes + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + putAccount: function (id, accountAttributes, axiosOptions) { + return localVarFp.putAccount(id, accountAttributes, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This API asynchronously reloads the account directly from the connector and performs a one-time aggregation process. A token with ORG_ADMIN authority is required to call this API. + * @summary Reload Account + * @param {string} id The account id + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + reloadAccount: function (id, axiosOptions) { + return localVarFp.reloadAccount(id, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This API submits a task to unlock an account and returns the task ID. A token with ORG_ADMIN authority is required to call this API. + * @summary Unlock Account + * @param {string} id The account id + * @param {AccountUnlockRequest} accountUnlockRequest + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + unlockAccount: function (id, accountUnlockRequest, axiosOptions) { + return localVarFp.unlockAccount(id, accountUnlockRequest, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * Use this API to modify the following fields: * `identityId` * `manuallyCorrelated` >**NOTE: All other fields cannot be modified.** The request must provide a JSONPatch payload. A token with ORG_ADMIN authority is required to call this API. + * @summary Update Account + * @param {string} id The account ID + * @param {Array} jsonPatchOperation A list of account update operations according to the [JSON Patch](https://tools.ietf.org/html/rfc6902) standard. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + updateAccount: function (id, jsonPatchOperation, axiosOptions) { + return localVarFp.updateAccount(id, jsonPatchOperation, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + }; + }; + exports.AccountsApiFactory = AccountsApiFactory; + /** + * AccountsApi - object-oriented interface + * @export + * @class AccountsApi + * @extends {BaseAPI} + */ + var AccountsApi = /** @class */ (function (_super) { + __extends(AccountsApi, _super); + function AccountsApi() { + return _super !== null && _super.apply(this, arguments) || this; + } + /** + * This API submits an account creation task and returns the task ID. The `sourceId` where this account will be created must be included in the `attributes` object. A token with ORG_ADMIN authority is required to call this API. + * @summary Create Account + * @param {AccountsApiCreateAccountRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof AccountsApi + */ + AccountsApi.prototype.createAccount = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.AccountsApiFp)(this.configuration).createAccount(requestParameters.accountAttributesCreate, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This API submits an account delete task and returns the task ID. This operation can only be used on Flat File Sources. Any attempt to execute this request on the source of other type will result in an error response with a status code of 400. A token with ORG_ADMIN authority is required to call this API. + * @summary Delete Account + * @param {AccountsApiDeleteAccountRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof AccountsApi + */ + AccountsApi.prototype.deleteAccount = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.AccountsApiFp)(this.configuration).deleteAccount(requestParameters.id, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This API submits a task to disable the account and returns the task ID. A token with ORG_ADMIN authority is required to call this API. + * @summary Disable Account + * @param {AccountsApiDisableAccountRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof AccountsApi + */ + AccountsApi.prototype.disableAccount = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.AccountsApiFp)(this.configuration).disableAccount(requestParameters.id, requestParameters.accountToggleRequest, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This API submits a task to enable account and returns the task ID. A token with ORG_ADMIN authority is required to call this API. + * @summary Enable Account + * @param {AccountsApiEnableAccountRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof AccountsApi + */ + AccountsApi.prototype.enableAccount = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.AccountsApiFp)(this.configuration).enableAccount(requestParameters.id, requestParameters.accountToggleRequest, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This API returns the details for a single account based on the ID. A token with ORG_ADMIN authority is required to call this API. + * @summary Account Details + * @param {AccountsApiGetAccountRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof AccountsApi + */ + AccountsApi.prototype.getAccount = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.AccountsApiFp)(this.configuration).getAccount(requestParameters.id, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This API returns entitlements of the account. A token with ORG_ADMIN authority is required to call this API. + * @summary Account Entitlements + * @param {AccountsApiGetAccountEntitlementsRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof AccountsApi + */ + AccountsApi.prototype.getAccountEntitlements = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.AccountsApiFp)(this.configuration).getAccountEntitlements(requestParameters.id, requestParameters.limit, requestParameters.offset, requestParameters.count, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This returns a list of accounts. A token with ORG_ADMIN authority is required to call this API. + * @summary Accounts List + * @param {AccountsApiListAccountsRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof AccountsApi + */ + AccountsApi.prototype.listAccounts = function (requestParameters, axiosOptions) { + var _this = this; + if (requestParameters === void 0) { requestParameters = {}; } + return (0, exports.AccountsApiFp)(this.configuration).listAccounts(requestParameters.limit, requestParameters.offset, requestParameters.count, requestParameters.filters, requestParameters.sorters, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This API submits an account update task and returns the task ID. A token with ORG_ADMIN authority is required to call this API. >**NOTE: The PUT Account API is designated only for Delimited File sources.** + * @summary Update Account + * @param {AccountsApiPutAccountRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof AccountsApi + */ + AccountsApi.prototype.putAccount = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.AccountsApiFp)(this.configuration).putAccount(requestParameters.id, requestParameters.accountAttributes, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This API asynchronously reloads the account directly from the connector and performs a one-time aggregation process. A token with ORG_ADMIN authority is required to call this API. + * @summary Reload Account + * @param {AccountsApiReloadAccountRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof AccountsApi + */ + AccountsApi.prototype.reloadAccount = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.AccountsApiFp)(this.configuration).reloadAccount(requestParameters.id, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This API submits a task to unlock an account and returns the task ID. A token with ORG_ADMIN authority is required to call this API. + * @summary Unlock Account + * @param {AccountsApiUnlockAccountRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof AccountsApi + */ + AccountsApi.prototype.unlockAccount = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.AccountsApiFp)(this.configuration).unlockAccount(requestParameters.id, requestParameters.accountUnlockRequest, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * Use this API to modify the following fields: * `identityId` * `manuallyCorrelated` >**NOTE: All other fields cannot be modified.** The request must provide a JSONPatch payload. A token with ORG_ADMIN authority is required to call this API. + * @summary Update Account + * @param {AccountsApiUpdateAccountRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof AccountsApi + */ + AccountsApi.prototype.updateAccount = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.AccountsApiFp)(this.configuration).updateAccount(requestParameters.id, requestParameters.jsonPatchOperation, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + return AccountsApi; + }(base_1.BaseAPI)); + exports.AccountsApi = AccountsApi; + /** + * AuthUserApi - axios parameter creator + * @export + */ + var AuthUserApiAxiosParamCreator = function (configuration) { + var _this = this; + return { + /** + * This API returns the specified user\'s authentication system details. Requires security scope of: \'sp:auth-user:read\' + * @summary Auth User Details + * @param {string} id Identity ID + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getAuthUser: function (id, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'id' is not null or undefined + (0, common_1.assertParamExists)('getAuthUser', 'id', id); + localVarPath = "/auth-users/{id}" + .replace("{".concat("id", "}"), encodeURIComponent(String(id))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * Update an existing user in the authentication system with a PATCH request. + * @summary Auth User Update + * @param {string} id Identity ID + * @param {Array} jsonPatchOperation A list of auth user update operations according to the [JSON Patch](https://tools.ietf.org/html/rfc6902) standard. PATCH can only be applied to the following fields: * \"capabilities\" A list of valid capabilities can be found using the GET ams/v3/authorization/authorization-capabilities/ endpoint. Capabilities can only be patched if they are administrator assignable, as indicated by the \'adminAssignable\' field from the output of list authorization-capabilities. Capabilities that have a legacy group (\'legacyGroup\' field) need to be patched using the legacyGroup name (e.g. \'ORG_ADMIN\'). Capabilities that are adminAssignable but do not have a legacyGroup can be patched using the ams id (e.g. \'cam:new-role\'). A 400.1.1 Illegal update attempt detail code indicates that you attempted to PATCH a field that is not allowed. Requires security scope of \'sp:auth-user:update\' + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + patchAuthUser: function (id, jsonPatchOperation, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'id' is not null or undefined + (0, common_1.assertParamExists)('patchAuthUser', 'id', id); + // verify required parameter 'jsonPatchOperation' is not null or undefined + (0, common_1.assertParamExists)('patchAuthUser', 'jsonPatchOperation', jsonPatchOperation); + localVarPath = "/auth-users/{id}" + .replace("{".concat("id", "}"), encodeURIComponent(String(id))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'PATCH' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + localVarHeaderParameter['Content-Type'] = 'application/json-patch+json'; + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(jsonPatchOperation, localVarRequestOptions, configuration); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + }; + }; + exports.AuthUserApiAxiosParamCreator = AuthUserApiAxiosParamCreator; + /** + * AuthUserApi - functional programming interface + * @export + */ + var AuthUserApiFp = function (configuration) { + var localVarAxiosParamCreator = (0, exports.AuthUserApiAxiosParamCreator)(configuration); + return { + /** + * This API returns the specified user\'s authentication system details. Requires security scope of: \'sp:auth-user:read\' + * @summary Auth User Details + * @param {string} id Identity ID + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getAuthUser: function (id, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.getAuthUser(id, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * Update an existing user in the authentication system with a PATCH request. + * @summary Auth User Update + * @param {string} id Identity ID + * @param {Array} jsonPatchOperation A list of auth user update operations according to the [JSON Patch](https://tools.ietf.org/html/rfc6902) standard. PATCH can only be applied to the following fields: * \"capabilities\" A list of valid capabilities can be found using the GET ams/v3/authorization/authorization-capabilities/ endpoint. Capabilities can only be patched if they are administrator assignable, as indicated by the \'adminAssignable\' field from the output of list authorization-capabilities. Capabilities that have a legacy group (\'legacyGroup\' field) need to be patched using the legacyGroup name (e.g. \'ORG_ADMIN\'). Capabilities that are adminAssignable but do not have a legacyGroup can be patched using the ams id (e.g. \'cam:new-role\'). A 400.1.1 Illegal update attempt detail code indicates that you attempted to PATCH a field that is not allowed. Requires security scope of \'sp:auth-user:update\' + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + patchAuthUser: function (id, jsonPatchOperation, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.patchAuthUser(id, jsonPatchOperation, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + }; + }; + exports.AuthUserApiFp = AuthUserApiFp; + /** + * AuthUserApi - factory interface + * @export + */ + var AuthUserApiFactory = function (configuration, basePath, axios) { + var localVarFp = (0, exports.AuthUserApiFp)(configuration); + return { + /** + * This API returns the specified user\'s authentication system details. Requires security scope of: \'sp:auth-user:read\' + * @summary Auth User Details + * @param {string} id Identity ID + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getAuthUser: function (id, axiosOptions) { + return localVarFp.getAuthUser(id, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * Update an existing user in the authentication system with a PATCH request. + * @summary Auth User Update + * @param {string} id Identity ID + * @param {Array} jsonPatchOperation A list of auth user update operations according to the [JSON Patch](https://tools.ietf.org/html/rfc6902) standard. PATCH can only be applied to the following fields: * \"capabilities\" A list of valid capabilities can be found using the GET ams/v3/authorization/authorization-capabilities/ endpoint. Capabilities can only be patched if they are administrator assignable, as indicated by the \'adminAssignable\' field from the output of list authorization-capabilities. Capabilities that have a legacy group (\'legacyGroup\' field) need to be patched using the legacyGroup name (e.g. \'ORG_ADMIN\'). Capabilities that are adminAssignable but do not have a legacyGroup can be patched using the ams id (e.g. \'cam:new-role\'). A 400.1.1 Illegal update attempt detail code indicates that you attempted to PATCH a field that is not allowed. Requires security scope of \'sp:auth-user:update\' + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + patchAuthUser: function (id, jsonPatchOperation, axiosOptions) { + return localVarFp.patchAuthUser(id, jsonPatchOperation, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + }; + }; + exports.AuthUserApiFactory = AuthUserApiFactory; + /** + * AuthUserApi - object-oriented interface + * @export + * @class AuthUserApi + * @extends {BaseAPI} + */ + var AuthUserApi = /** @class */ (function (_super) { + __extends(AuthUserApi, _super); + function AuthUserApi() { + return _super !== null && _super.apply(this, arguments) || this; + } + /** + * This API returns the specified user\'s authentication system details. Requires security scope of: \'sp:auth-user:read\' + * @summary Auth User Details + * @param {AuthUserApiGetAuthUserRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof AuthUserApi + */ + AuthUserApi.prototype.getAuthUser = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.AuthUserApiFp)(this.configuration).getAuthUser(requestParameters.id, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * Update an existing user in the authentication system with a PATCH request. + * @summary Auth User Update + * @param {AuthUserApiPatchAuthUserRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof AuthUserApi + */ + AuthUserApi.prototype.patchAuthUser = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.AuthUserApiFp)(this.configuration).patchAuthUser(requestParameters.id, requestParameters.jsonPatchOperation, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + return AuthUserApi; + }(base_1.BaseAPI)); + exports.AuthUserApi = AuthUserApi; + /** + * CertificationCampaignFiltersApi - axios parameter creator + * @export + */ + var CertificationCampaignFiltersApiAxiosParamCreator = function (configuration) { + var _this = this; + return { + /** + * Create a campaign Filter based on filter details and criteria. + * @summary Create a Campaign Filter + * @param {CampaignFilterDetails} campaignFilterDetails + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + createCampaignFilter: function (campaignFilterDetails, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'campaignFilterDetails' is not null or undefined + (0, common_1.assertParamExists)('createCampaignFilter', 'campaignFilterDetails', campaignFilterDetails); + localVarPath = "/campaign-filters"; + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + localVarHeaderParameter['Content-Type'] = 'application/json'; + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(campaignFilterDetails, localVarRequestOptions, configuration); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * Deletes campaign filters whose Ids are specified in the provided list of campaign filter Ids. Authorized callers must be an ORG_ADMIN or a CERT_ADMIN. + * @summary Deletes Campaign Filters + * @param {Array} requestBody A json list of IDs of campaign filters to delete. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + deleteCampaignFilters: function (requestBody, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'requestBody' is not null or undefined + (0, common_1.assertParamExists)('deleteCampaignFilters', 'requestBody', requestBody); + localVarPath = "/campaign-filters/delete"; + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + localVarHeaderParameter['Content-Type'] = 'application/json'; + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(requestBody, localVarRequestOptions, configuration); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * Retrieves information for an existing campaign filter using the filter\'s ID. + * @summary Get Campaign Filter by ID + * @param {string} filterId The ID of the campaign filter to be retrieved. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getCampaignFilterById: function (filterId, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'filterId' is not null or undefined + (0, common_1.assertParamExists)('getCampaignFilterById', 'filterId', filterId); + localVarPath = "/campaign-filters/{id}" + .replace("{".concat("filterId", "}"), encodeURIComponent(String(filterId))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * Lists all Campaign Filters. Scope can be reduced via standard V3 query params. All Campaign Filters matching the query params + * @summary List Campaign Filters + * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {number} [start] Start/Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {boolean} [includeSystemFilters] If true, include system filters in the count and results, exclude them otherwise. If not provided any value for it then by default it is true. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + listCampaignFilters: function (limit, start, includeSystemFilters, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + localVarPath = "/campaign-filters"; + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + if (limit !== undefined) { + localVarQueryParameter['limit'] = limit; + } + if (start !== undefined) { + localVarQueryParameter['start'] = start; + } + if (includeSystemFilters !== undefined) { + localVarQueryParameter['includeSystemFilters'] = includeSystemFilters; + } + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * Updates an existing campaign filter using the filter\'s ID. + * @summary Updates a Campaign Filter + * @param {string} filterId The ID of the campaign filter being modified. + * @param {CampaignFilterDetails} campaignFilterDetails A campaign filter details with updated field values. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + updateCampaignFilter: function (filterId, campaignFilterDetails, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'filterId' is not null or undefined + (0, common_1.assertParamExists)('updateCampaignFilter', 'filterId', filterId); + // verify required parameter 'campaignFilterDetails' is not null or undefined + (0, common_1.assertParamExists)('updateCampaignFilter', 'campaignFilterDetails', campaignFilterDetails); + localVarPath = "/campaign-filters/{id}" + .replace("{".concat("filterId", "}"), encodeURIComponent(String(filterId))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + localVarHeaderParameter['Content-Type'] = 'application/json'; + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(campaignFilterDetails, localVarRequestOptions, configuration); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + }; + }; + exports.CertificationCampaignFiltersApiAxiosParamCreator = CertificationCampaignFiltersApiAxiosParamCreator; + /** + * CertificationCampaignFiltersApi - functional programming interface + * @export + */ + var CertificationCampaignFiltersApiFp = function (configuration) { + var localVarAxiosParamCreator = (0, exports.CertificationCampaignFiltersApiAxiosParamCreator)(configuration); + return { + /** + * Create a campaign Filter based on filter details and criteria. + * @summary Create a Campaign Filter + * @param {CampaignFilterDetails} campaignFilterDetails + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + createCampaignFilter: function (campaignFilterDetails, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.createCampaignFilter(campaignFilterDetails, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * Deletes campaign filters whose Ids are specified in the provided list of campaign filter Ids. Authorized callers must be an ORG_ADMIN or a CERT_ADMIN. + * @summary Deletes Campaign Filters + * @param {Array} requestBody A json list of IDs of campaign filters to delete. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + deleteCampaignFilters: function (requestBody, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.deleteCampaignFilters(requestBody, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * Retrieves information for an existing campaign filter using the filter\'s ID. + * @summary Get Campaign Filter by ID + * @param {string} filterId The ID of the campaign filter to be retrieved. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getCampaignFilterById: function (filterId, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.getCampaignFilterById(filterId, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * Lists all Campaign Filters. Scope can be reduced via standard V3 query params. All Campaign Filters matching the query params + * @summary List Campaign Filters + * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {number} [start] Start/Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {boolean} [includeSystemFilters] If true, include system filters in the count and results, exclude them otherwise. If not provided any value for it then by default it is true. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + listCampaignFilters: function (limit, start, includeSystemFilters, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.listCampaignFilters(limit, start, includeSystemFilters, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * Updates an existing campaign filter using the filter\'s ID. + * @summary Updates a Campaign Filter + * @param {string} filterId The ID of the campaign filter being modified. + * @param {CampaignFilterDetails} campaignFilterDetails A campaign filter details with updated field values. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + updateCampaignFilter: function (filterId, campaignFilterDetails, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.updateCampaignFilter(filterId, campaignFilterDetails, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + }; + }; + exports.CertificationCampaignFiltersApiFp = CertificationCampaignFiltersApiFp; + /** + * CertificationCampaignFiltersApi - factory interface + * @export + */ + var CertificationCampaignFiltersApiFactory = function (configuration, basePath, axios) { + var localVarFp = (0, exports.CertificationCampaignFiltersApiFp)(configuration); + return { + /** + * Create a campaign Filter based on filter details and criteria. + * @summary Create a Campaign Filter + * @param {CampaignFilterDetails} campaignFilterDetails + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + createCampaignFilter: function (campaignFilterDetails, axiosOptions) { + return localVarFp.createCampaignFilter(campaignFilterDetails, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * Deletes campaign filters whose Ids are specified in the provided list of campaign filter Ids. Authorized callers must be an ORG_ADMIN or a CERT_ADMIN. + * @summary Deletes Campaign Filters + * @param {Array} requestBody A json list of IDs of campaign filters to delete. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + deleteCampaignFilters: function (requestBody, axiosOptions) { + return localVarFp.deleteCampaignFilters(requestBody, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * Retrieves information for an existing campaign filter using the filter\'s ID. + * @summary Get Campaign Filter by ID + * @param {string} filterId The ID of the campaign filter to be retrieved. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getCampaignFilterById: function (filterId, axiosOptions) { + return localVarFp.getCampaignFilterById(filterId, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * Lists all Campaign Filters. Scope can be reduced via standard V3 query params. All Campaign Filters matching the query params + * @summary List Campaign Filters + * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {number} [start] Start/Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {boolean} [includeSystemFilters] If true, include system filters in the count and results, exclude them otherwise. If not provided any value for it then by default it is true. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + listCampaignFilters: function (limit, start, includeSystemFilters, axiosOptions) { + return localVarFp.listCampaignFilters(limit, start, includeSystemFilters, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * Updates an existing campaign filter using the filter\'s ID. + * @summary Updates a Campaign Filter + * @param {string} filterId The ID of the campaign filter being modified. + * @param {CampaignFilterDetails} campaignFilterDetails A campaign filter details with updated field values. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + updateCampaignFilter: function (filterId, campaignFilterDetails, axiosOptions) { + return localVarFp.updateCampaignFilter(filterId, campaignFilterDetails, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + }; + }; + exports.CertificationCampaignFiltersApiFactory = CertificationCampaignFiltersApiFactory; + /** + * CertificationCampaignFiltersApi - object-oriented interface + * @export + * @class CertificationCampaignFiltersApi + * @extends {BaseAPI} + */ + var CertificationCampaignFiltersApi = /** @class */ (function (_super) { + __extends(CertificationCampaignFiltersApi, _super); + function CertificationCampaignFiltersApi() { + return _super !== null && _super.apply(this, arguments) || this; + } + /** + * Create a campaign Filter based on filter details and criteria. + * @summary Create a Campaign Filter + * @param {CertificationCampaignFiltersApiCreateCampaignFilterRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof CertificationCampaignFiltersApi + */ + CertificationCampaignFiltersApi.prototype.createCampaignFilter = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.CertificationCampaignFiltersApiFp)(this.configuration).createCampaignFilter(requestParameters.campaignFilterDetails, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * Deletes campaign filters whose Ids are specified in the provided list of campaign filter Ids. Authorized callers must be an ORG_ADMIN or a CERT_ADMIN. + * @summary Deletes Campaign Filters + * @param {CertificationCampaignFiltersApiDeleteCampaignFiltersRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof CertificationCampaignFiltersApi + */ + CertificationCampaignFiltersApi.prototype.deleteCampaignFilters = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.CertificationCampaignFiltersApiFp)(this.configuration).deleteCampaignFilters(requestParameters.requestBody, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * Retrieves information for an existing campaign filter using the filter\'s ID. + * @summary Get Campaign Filter by ID + * @param {CertificationCampaignFiltersApiGetCampaignFilterByIdRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof CertificationCampaignFiltersApi + */ + CertificationCampaignFiltersApi.prototype.getCampaignFilterById = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.CertificationCampaignFiltersApiFp)(this.configuration).getCampaignFilterById(requestParameters.filterId, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * Lists all Campaign Filters. Scope can be reduced via standard V3 query params. All Campaign Filters matching the query params + * @summary List Campaign Filters + * @param {CertificationCampaignFiltersApiListCampaignFiltersRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof CertificationCampaignFiltersApi + */ + CertificationCampaignFiltersApi.prototype.listCampaignFilters = function (requestParameters, axiosOptions) { + var _this = this; + if (requestParameters === void 0) { requestParameters = {}; } + return (0, exports.CertificationCampaignFiltersApiFp)(this.configuration).listCampaignFilters(requestParameters.limit, requestParameters.start, requestParameters.includeSystemFilters, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * Updates an existing campaign filter using the filter\'s ID. + * @summary Updates a Campaign Filter + * @param {CertificationCampaignFiltersApiUpdateCampaignFilterRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof CertificationCampaignFiltersApi + */ + CertificationCampaignFiltersApi.prototype.updateCampaignFilter = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.CertificationCampaignFiltersApiFp)(this.configuration).updateCampaignFilter(requestParameters.filterId, requestParameters.campaignFilterDetails, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + return CertificationCampaignFiltersApi; + }(base_1.BaseAPI)); + exports.CertificationCampaignFiltersApi = CertificationCampaignFiltersApi; + /** + * CertificationCampaignsApi - axios parameter creator + * @export + */ + var CertificationCampaignsApiAxiosParamCreator = function (configuration) { + var _this = this; + return { + /** + * :::caution This endpoint will run successfully for any campaigns that are **past due**. This endpoint will return a content error if the campaign is **not past due**. ::: Completes a certification campaign. This is provided to admins so that they can complete a certification even if all items have not been completed. Requires roles of CERT_ADMIN and ORG_ADMIN + * @summary Complete a Campaign + * @param {string} id The campaign id + * @param {CampaignCompleteOptions} [campaignCompleteOptions] Optional. Default behavior is for the campaign to auto-approve upon completion, unless autoCompleteAction=REVOKE + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + completeCampaign: function (id, campaignCompleteOptions, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'id' is not null or undefined + (0, common_1.assertParamExists)('completeCampaign', 'id', id); + localVarPath = "/campaigns/{id}/complete" + .replace("{".concat("id", "}"), encodeURIComponent(String(id))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + localVarHeaderParameter['Content-Type'] = 'application/json'; + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(campaignCompleteOptions, localVarRequestOptions, configuration); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * Creates a new Certification Campaign with the information provided in the request body. + * @summary Create a campaign + * @param {Campaign} campaign + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + createCampaign: function (campaign, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'campaign' is not null or undefined + (0, common_1.assertParamExists)('createCampaign', 'campaign', campaign); + localVarPath = "/campaigns"; + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + localVarHeaderParameter['Content-Type'] = 'application/json'; + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(campaign, localVarRequestOptions, configuration); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * Create a campaign Template based on campaign. + * @summary Create a Campaign Template + * @param {CampaignTemplate} campaignTemplate + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + createCampaignTemplate: function (campaignTemplate, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'campaignTemplate' is not null or undefined + (0, common_1.assertParamExists)('createCampaignTemplate', 'campaignTemplate', campaignTemplate); + localVarPath = "/campaign-templates"; + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + localVarHeaderParameter['Content-Type'] = 'application/json'; + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(campaignTemplate, localVarRequestOptions, configuration); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * Deletes a campaign template by ID. + * @summary Delete a Campaign Template + * @param {string} id The ID of the campaign template being deleted. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + deleteCampaignTemplate: function (id, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'id' is not null or undefined + (0, common_1.assertParamExists)('deleteCampaignTemplate', 'id', id); + localVarPath = "/campaign-templates/{id}" + .replace("{".concat("id", "}"), encodeURIComponent(String(id))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'DELETE' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * Deletes the schedule for a campaign template. Returns a 404 if there is no schedule set. + * @summary Deletes a Campaign Template\'s Schedule + * @param {string} id The ID of the campaign template whose schedule is being deleted. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + deleteCampaignTemplateSchedule: function (id, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'id' is not null or undefined + (0, common_1.assertParamExists)('deleteCampaignTemplateSchedule', 'id', id); + localVarPath = "/campaign-templates/{id}/schedule" + .replace("{".concat("id", "}"), encodeURIComponent(String(id))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'DELETE' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * Deletes campaigns whose Ids are specified in the provided list of campaign Ids. Authorized callers must be an ORG_ADMIN or a CERT_ADMIN. + * @summary Deletes Campaigns + * @param {CampaignsDeleteRequest} campaignsDeleteRequest The ids of the campaigns to delete. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + deleteCampaigns: function (campaignsDeleteRequest, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'campaignsDeleteRequest' is not null or undefined + (0, common_1.assertParamExists)('deleteCampaigns', 'campaignsDeleteRequest', campaignsDeleteRequest); + localVarPath = "/campaigns/delete"; + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + localVarHeaderParameter['Content-Type'] = 'application/json'; + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(campaignsDeleteRequest, localVarRequestOptions, configuration); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * Gets campaigns and returns them in a list. Can provide increased level of detail for each campaign if provided the correct query. + * @summary List Campaigns + * @param {'SLIM' | 'FULL'} [detail] Determines whether slim, or increased level of detail is provided for each campaign in the returned list. Slim is the default behavior. + * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **id**: *eq, in* **name**: *eq, sw* **status**: *eq, in* + * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **name, created** + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getActiveCampaigns: function (detail, limit, offset, count, filters, sorters, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + localVarPath = "/campaigns"; + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + if (detail !== undefined) { + localVarQueryParameter['detail'] = detail; + } + if (limit !== undefined) { + localVarQueryParameter['limit'] = limit; + } + if (offset !== undefined) { + localVarQueryParameter['offset'] = offset; + } + if (count !== undefined) { + localVarQueryParameter['count'] = count; + } + if (filters !== undefined) { + localVarQueryParameter['filters'] = filters; + } + if (sorters !== undefined) { + localVarQueryParameter['sorters'] = sorters; + } + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * Retrieves information for an existing campaign using the campaign\'s ID. Authorized callers must be a reviewer for this campaign, an ORG_ADMIN, or a CERT_ADMIN. + * @summary Get a campaign + * @param {string} id The ID of the campaign to be retrieved + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getCampaign: function (id, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'id' is not null or undefined + (0, common_1.assertParamExists)('getCampaign', 'id', id); + localVarPath = "/campaigns/{id}" + .replace("{".concat("id", "}"), encodeURIComponent(String(id))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * Fetches all reports for a certification campaign by campaign ID. Requires roles of CERT_ADMIN, DASHBOARD, ORG_ADMIN and REPORT_ADMIN + * @summary Get Campaign Reports + * @param {string} id The ID of the campaign for which reports are being fetched. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getCampaignReports: function (id, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'id' is not null or undefined + (0, common_1.assertParamExists)('getCampaignReports', 'id', id); + localVarPath = "/campaigns/{id}/reports" + .replace("{".concat("id", "}"), encodeURIComponent(String(id))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * Fetches configuration for campaign reports. Currently it includes only one element - identity attributes defined as custom report columns. Requires roles of CERT_ADMIN and ORG_ADMIN. + * @summary Get Campaign Reports Configuration + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getCampaignReportsConfig: function (axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + localVarPath = "/campaigns/reports-configuration"; + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * Fetches a campaign template by ID. + * @summary Get a Campaign Template + * @param {string} id The desired campaign template\'s ID. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getCampaignTemplate: function (id, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'id' is not null or undefined + (0, common_1.assertParamExists)('getCampaignTemplate', 'id', id); + localVarPath = "/campaign-templates/{id}" + .replace("{".concat("id", "}"), encodeURIComponent(String(id))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * Gets the schedule for a campaign template. Returns a 404 if there is no schedule set. + * @summary Gets a Campaign Template\'s Schedule + * @param {string} id The ID of the campaign template whose schedule is being fetched. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getCampaignTemplateSchedule: function (id, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'id' is not null or undefined + (0, common_1.assertParamExists)('getCampaignTemplateSchedule', 'id', id); + localVarPath = "/campaign-templates/{id}/schedule" + .replace("{".concat("id", "}"), encodeURIComponent(String(id))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * Lists all CampaignTemplates. Scope can be reduced via standard V3 query params. All CampaignTemplates matching the query params + * @summary List Campaign Templates + * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **name, created, modified** + * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **name**: *eq, ge, gt, in, le, lt, ne, sw* **id**: *eq, ge, gt, in, le, lt, ne, sw* + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + listCampaignTemplates: function (limit, offset, count, sorters, filters, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + localVarPath = "/campaign-templates"; + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + if (limit !== undefined) { + localVarQueryParameter['limit'] = limit; + } + if (offset !== undefined) { + localVarQueryParameter['offset'] = offset; + } + if (count !== undefined) { + localVarQueryParameter['count'] = count; + } + if (sorters !== undefined) { + localVarQueryParameter['sorters'] = sorters; + } + if (filters !== undefined) { + localVarQueryParameter['filters'] = filters; + } + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This API reassigns the specified certifications from one identity to another. A token with ORG_ADMIN or CERT_ADMIN authority is required to call this API. + * @summary Reassign Certifications + * @param {string} id The certification campaign ID + * @param {AdminReviewReassign} adminReviewReassign + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + move: function (id, adminReviewReassign, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'id' is not null or undefined + (0, common_1.assertParamExists)('move', 'id', id); + // verify required parameter 'adminReviewReassign' is not null or undefined + (0, common_1.assertParamExists)('move', 'adminReviewReassign', adminReviewReassign); + localVarPath = "/campaigns/{id}/reassign" + .replace("{".concat("id", "}"), encodeURIComponent(String(id))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + localVarHeaderParameter['Content-Type'] = 'application/json'; + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(adminReviewReassign, localVarRequestOptions, configuration); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * Allows updating individual fields on a campaign template using the [JSON Patch](https://tools.ietf.org/html/rfc6902) standard. + * @summary Update a Campaign Template + * @param {string} id The ID of the campaign template being modified. + * @param {Array} jsonPatchOperation A list of campaign update operations according to the [JSON Patch](https://tools.ietf.org/html/rfc6902) standard. The following fields are patchable: * name * description * deadlineDuration * campaign (all fields that are allowed during create) + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + patchCampaignTemplate: function (id, jsonPatchOperation, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'id' is not null or undefined + (0, common_1.assertParamExists)('patchCampaignTemplate', 'id', id); + // verify required parameter 'jsonPatchOperation' is not null or undefined + (0, common_1.assertParamExists)('patchCampaignTemplate', 'jsonPatchOperation', jsonPatchOperation); + localVarPath = "/campaign-templates/{id}" + .replace("{".concat("id", "}"), encodeURIComponent(String(id))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'PATCH' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + localVarHeaderParameter['Content-Type'] = 'application/json-patch+json'; + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(jsonPatchOperation, localVarRequestOptions, configuration); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * Overwrites configuration for campaign reports. Requires roles CERT_ADMIN and ORG_ADMIN. + * @summary Set Campaign Reports Configuration + * @param {CampaignReportsConfig} campaignReportsConfig Campaign Report Configuration + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + setCampaignReportsConfig: function (campaignReportsConfig, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'campaignReportsConfig' is not null or undefined + (0, common_1.assertParamExists)('setCampaignReportsConfig', 'campaignReportsConfig', campaignReportsConfig); + localVarPath = "/campaigns/reports-configuration"; + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'PUT' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + localVarHeaderParameter['Content-Type'] = 'application/json'; + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(campaignReportsConfig, localVarRequestOptions, configuration); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * Sets the schedule for a campaign template. If a schedule already exists, it will be overwritten with the new one. + * @summary Sets a Campaign Template\'s Schedule + * @param {string} id The ID of the campaign template being scheduled. + * @param {Schedule} [schedule] + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + setCampaignTemplateSchedule: function (id, schedule, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'id' is not null or undefined + (0, common_1.assertParamExists)('setCampaignTemplateSchedule', 'id', id); + localVarPath = "/campaign-templates/{id}/schedule" + .replace("{".concat("id", "}"), encodeURIComponent(String(id))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'PUT' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + localVarHeaderParameter['Content-Type'] = 'application/json'; + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(schedule, localVarRequestOptions, configuration); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * Submits a job to activate the campaign with the given Id. The campaign must be staged. Requires roles of CERT_ADMIN and ORG_ADMIN + * @summary Activate a Campaign + * @param {string} id The campaign id + * @param {ActivateCampaignOptions} [activateCampaignOptions] Optional. If no timezone is specified, the standard UTC timezone is used (i.e. UTC+00:00). Although this can take any timezone, the intended value is the caller\'s timezone. The activation time calculated from the given timezone may cause the campaign deadline time to be modified, but it will remain within the original date. The timezone must be in a valid ISO 8601 format. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + startCampaign: function (id, activateCampaignOptions, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'id' is not null or undefined + (0, common_1.assertParamExists)('startCampaign', 'id', id); + localVarPath = "/campaigns/{id}/activate" + .replace("{".concat("id", "}"), encodeURIComponent(String(id))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + localVarHeaderParameter['Content-Type'] = 'application/json'; + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(activateCampaignOptions, localVarRequestOptions, configuration); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * Kicks off remediation scan task for a certification campaign. Requires roles of CERT_ADMIN and ORG_ADMIN + * @summary Run Campaign Remediation Scan + * @param {string} id The ID of the campaign for which remediation scan is being run. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + startCampaignRemediationScan: function (id, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'id' is not null or undefined + (0, common_1.assertParamExists)('startCampaignRemediationScan', 'id', id); + localVarPath = "/campaigns/{id}/run-remediation-scan" + .replace("{".concat("id", "}"), encodeURIComponent(String(id))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * Runs a report for a certification campaign. Requires the following roles: CERT_ADMIN, DASHBOARD, ORG_ADMIN and REPORT_ADMIN. + * @summary Run Campaign Report + * @param {string} id The ID of the campaign for which report is being run. + * @param {ReportType} type The type of the report to run. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + startCampaignReport: function (id, type, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'id' is not null or undefined + (0, common_1.assertParamExists)('startCampaignReport', 'id', id); + // verify required parameter 'type' is not null or undefined + (0, common_1.assertParamExists)('startCampaignReport', 'type', type); + localVarPath = "/campaigns/{id}/run-report/{type}" + .replace("{".concat("id", "}"), encodeURIComponent(String(id))) + .replace("{".concat("type", "}"), encodeURIComponent(String(type))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * Generates a new campaign from a campaign template. The campaign object contained in the template has special formatting applied to its name and description fields in order to determine the generated campaign\'s name/description. Placeholders in those fields are formatted with the current date and time upon generation. Placeholders consist of a percent sign followed by a letter indicating what should be inserted; for example, \"%Y\" will insert the current year; a campaign template named \"Campaign for %y\" would generate a campaign called \"Campaign for 2020\" (assuming the year at generation time is 2020). Valid placeholders are the date/time conversion suffix characters supported by [java.util.Formatter](https://docs.oracle.com/javase/8/docs/api/java/util/Formatter.html). Requires roles ORG_ADMIN. + * @summary Generate a Campaign from Template + * @param {string} id The ID of the campaign template to use for generation. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + startGenerateCampaignTemplate: function (id, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'id' is not null or undefined + (0, common_1.assertParamExists)('startGenerateCampaignTemplate', 'id', id); + localVarPath = "/campaign-templates/{id}/generate" + .replace("{".concat("id", "}"), encodeURIComponent(String(id))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * Allows updating individual fields on a campaign using the [JSON Patch](https://tools.ietf.org/html/rfc6902) standard. + * @summary Update a Campaign + * @param {string} id The ID of the campaign template being modified. + * @param {Array} jsonPatchOperation A list of campaign update operations according to the [JSON Patch](https://tools.ietf.org/html/rfc6902) standard. The fields that can be patched differ based on the status of the campaign. In the *STAGED* status, the following fields can be patched: * name * description * recommendationsEnabled * deadline * emailNotificationEnabled * autoRevokeAllowed In the *ACTIVE* status, the following fields can be patched: * deadline + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + updateCampaign: function (id, jsonPatchOperation, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'id' is not null or undefined + (0, common_1.assertParamExists)('updateCampaign', 'id', id); + // verify required parameter 'jsonPatchOperation' is not null or undefined + (0, common_1.assertParamExists)('updateCampaign', 'jsonPatchOperation', jsonPatchOperation); + localVarPath = "/campaigns/{id}" + .replace("{".concat("id", "}"), encodeURIComponent(String(id))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'PATCH' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + localVarHeaderParameter['Content-Type'] = 'application/json-patch+json'; + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(jsonPatchOperation, localVarRequestOptions, configuration); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + }; + }; + exports.CertificationCampaignsApiAxiosParamCreator = CertificationCampaignsApiAxiosParamCreator; + /** + * CertificationCampaignsApi - functional programming interface + * @export + */ + var CertificationCampaignsApiFp = function (configuration) { + var localVarAxiosParamCreator = (0, exports.CertificationCampaignsApiAxiosParamCreator)(configuration); + return { + /** + * :::caution This endpoint will run successfully for any campaigns that are **past due**. This endpoint will return a content error if the campaign is **not past due**. ::: Completes a certification campaign. This is provided to admins so that they can complete a certification even if all items have not been completed. Requires roles of CERT_ADMIN and ORG_ADMIN + * @summary Complete a Campaign + * @param {string} id The campaign id + * @param {CampaignCompleteOptions} [campaignCompleteOptions] Optional. Default behavior is for the campaign to auto-approve upon completion, unless autoCompleteAction=REVOKE + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + completeCampaign: function (id, campaignCompleteOptions, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.completeCampaign(id, campaignCompleteOptions, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * Creates a new Certification Campaign with the information provided in the request body. + * @summary Create a campaign + * @param {Campaign} campaign + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + createCampaign: function (campaign, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.createCampaign(campaign, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * Create a campaign Template based on campaign. + * @summary Create a Campaign Template + * @param {CampaignTemplate} campaignTemplate + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + createCampaignTemplate: function (campaignTemplate, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.createCampaignTemplate(campaignTemplate, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * Deletes a campaign template by ID. + * @summary Delete a Campaign Template + * @param {string} id The ID of the campaign template being deleted. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + deleteCampaignTemplate: function (id, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.deleteCampaignTemplate(id, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * Deletes the schedule for a campaign template. Returns a 404 if there is no schedule set. + * @summary Deletes a Campaign Template\'s Schedule + * @param {string} id The ID of the campaign template whose schedule is being deleted. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + deleteCampaignTemplateSchedule: function (id, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.deleteCampaignTemplateSchedule(id, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * Deletes campaigns whose Ids are specified in the provided list of campaign Ids. Authorized callers must be an ORG_ADMIN or a CERT_ADMIN. + * @summary Deletes Campaigns + * @param {CampaignsDeleteRequest} campaignsDeleteRequest The ids of the campaigns to delete. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + deleteCampaigns: function (campaignsDeleteRequest, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.deleteCampaigns(campaignsDeleteRequest, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * Gets campaigns and returns them in a list. Can provide increased level of detail for each campaign if provided the correct query. + * @summary List Campaigns + * @param {'SLIM' | 'FULL'} [detail] Determines whether slim, or increased level of detail is provided for each campaign in the returned list. Slim is the default behavior. + * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **id**: *eq, in* **name**: *eq, sw* **status**: *eq, in* + * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **name, created** + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getActiveCampaigns: function (detail, limit, offset, count, filters, sorters, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.getActiveCampaigns(detail, limit, offset, count, filters, sorters, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * Retrieves information for an existing campaign using the campaign\'s ID. Authorized callers must be a reviewer for this campaign, an ORG_ADMIN, or a CERT_ADMIN. + * @summary Get a campaign + * @param {string} id The ID of the campaign to be retrieved + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getCampaign: function (id, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.getCampaign(id, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * Fetches all reports for a certification campaign by campaign ID. Requires roles of CERT_ADMIN, DASHBOARD, ORG_ADMIN and REPORT_ADMIN + * @summary Get Campaign Reports + * @param {string} id The ID of the campaign for which reports are being fetched. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getCampaignReports: function (id, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.getCampaignReports(id, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * Fetches configuration for campaign reports. Currently it includes only one element - identity attributes defined as custom report columns. Requires roles of CERT_ADMIN and ORG_ADMIN. + * @summary Get Campaign Reports Configuration + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getCampaignReportsConfig: function (axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.getCampaignReportsConfig(axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * Fetches a campaign template by ID. + * @summary Get a Campaign Template + * @param {string} id The desired campaign template\'s ID. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getCampaignTemplate: function (id, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.getCampaignTemplate(id, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * Gets the schedule for a campaign template. Returns a 404 if there is no schedule set. + * @summary Gets a Campaign Template\'s Schedule + * @param {string} id The ID of the campaign template whose schedule is being fetched. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getCampaignTemplateSchedule: function (id, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.getCampaignTemplateSchedule(id, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * Lists all CampaignTemplates. Scope can be reduced via standard V3 query params. All CampaignTemplates matching the query params + * @summary List Campaign Templates + * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **name, created, modified** + * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **name**: *eq, ge, gt, in, le, lt, ne, sw* **id**: *eq, ge, gt, in, le, lt, ne, sw* + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + listCampaignTemplates: function (limit, offset, count, sorters, filters, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.listCampaignTemplates(limit, offset, count, sorters, filters, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This API reassigns the specified certifications from one identity to another. A token with ORG_ADMIN or CERT_ADMIN authority is required to call this API. + * @summary Reassign Certifications + * @param {string} id The certification campaign ID + * @param {AdminReviewReassign} adminReviewReassign + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + move: function (id, adminReviewReassign, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.move(id, adminReviewReassign, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * Allows updating individual fields on a campaign template using the [JSON Patch](https://tools.ietf.org/html/rfc6902) standard. + * @summary Update a Campaign Template + * @param {string} id The ID of the campaign template being modified. + * @param {Array} jsonPatchOperation A list of campaign update operations according to the [JSON Patch](https://tools.ietf.org/html/rfc6902) standard. The following fields are patchable: * name * description * deadlineDuration * campaign (all fields that are allowed during create) + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + patchCampaignTemplate: function (id, jsonPatchOperation, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.patchCampaignTemplate(id, jsonPatchOperation, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * Overwrites configuration for campaign reports. Requires roles CERT_ADMIN and ORG_ADMIN. + * @summary Set Campaign Reports Configuration + * @param {CampaignReportsConfig} campaignReportsConfig Campaign Report Configuration + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + setCampaignReportsConfig: function (campaignReportsConfig, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.setCampaignReportsConfig(campaignReportsConfig, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * Sets the schedule for a campaign template. If a schedule already exists, it will be overwritten with the new one. + * @summary Sets a Campaign Template\'s Schedule + * @param {string} id The ID of the campaign template being scheduled. + * @param {Schedule} [schedule] + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + setCampaignTemplateSchedule: function (id, schedule, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.setCampaignTemplateSchedule(id, schedule, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * Submits a job to activate the campaign with the given Id. The campaign must be staged. Requires roles of CERT_ADMIN and ORG_ADMIN + * @summary Activate a Campaign + * @param {string} id The campaign id + * @param {ActivateCampaignOptions} [activateCampaignOptions] Optional. If no timezone is specified, the standard UTC timezone is used (i.e. UTC+00:00). Although this can take any timezone, the intended value is the caller\'s timezone. The activation time calculated from the given timezone may cause the campaign deadline time to be modified, but it will remain within the original date. The timezone must be in a valid ISO 8601 format. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + startCampaign: function (id, activateCampaignOptions, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.startCampaign(id, activateCampaignOptions, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * Kicks off remediation scan task for a certification campaign. Requires roles of CERT_ADMIN and ORG_ADMIN + * @summary Run Campaign Remediation Scan + * @param {string} id The ID of the campaign for which remediation scan is being run. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + startCampaignRemediationScan: function (id, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.startCampaignRemediationScan(id, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * Runs a report for a certification campaign. Requires the following roles: CERT_ADMIN, DASHBOARD, ORG_ADMIN and REPORT_ADMIN. + * @summary Run Campaign Report + * @param {string} id The ID of the campaign for which report is being run. + * @param {ReportType} type The type of the report to run. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + startCampaignReport: function (id, type, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.startCampaignReport(id, type, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * Generates a new campaign from a campaign template. The campaign object contained in the template has special formatting applied to its name and description fields in order to determine the generated campaign\'s name/description. Placeholders in those fields are formatted with the current date and time upon generation. Placeholders consist of a percent sign followed by a letter indicating what should be inserted; for example, \"%Y\" will insert the current year; a campaign template named \"Campaign for %y\" would generate a campaign called \"Campaign for 2020\" (assuming the year at generation time is 2020). Valid placeholders are the date/time conversion suffix characters supported by [java.util.Formatter](https://docs.oracle.com/javase/8/docs/api/java/util/Formatter.html). Requires roles ORG_ADMIN. + * @summary Generate a Campaign from Template + * @param {string} id The ID of the campaign template to use for generation. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + startGenerateCampaignTemplate: function (id, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.startGenerateCampaignTemplate(id, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * Allows updating individual fields on a campaign using the [JSON Patch](https://tools.ietf.org/html/rfc6902) standard. + * @summary Update a Campaign + * @param {string} id The ID of the campaign template being modified. + * @param {Array} jsonPatchOperation A list of campaign update operations according to the [JSON Patch](https://tools.ietf.org/html/rfc6902) standard. The fields that can be patched differ based on the status of the campaign. In the *STAGED* status, the following fields can be patched: * name * description * recommendationsEnabled * deadline * emailNotificationEnabled * autoRevokeAllowed In the *ACTIVE* status, the following fields can be patched: * deadline + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + updateCampaign: function (id, jsonPatchOperation, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.updateCampaign(id, jsonPatchOperation, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + }; + }; + exports.CertificationCampaignsApiFp = CertificationCampaignsApiFp; + /** + * CertificationCampaignsApi - factory interface + * @export + */ + var CertificationCampaignsApiFactory = function (configuration, basePath, axios) { + var localVarFp = (0, exports.CertificationCampaignsApiFp)(configuration); + return { + /** + * :::caution This endpoint will run successfully for any campaigns that are **past due**. This endpoint will return a content error if the campaign is **not past due**. ::: Completes a certification campaign. This is provided to admins so that they can complete a certification even if all items have not been completed. Requires roles of CERT_ADMIN and ORG_ADMIN + * @summary Complete a Campaign + * @param {string} id The campaign id + * @param {CampaignCompleteOptions} [campaignCompleteOptions] Optional. Default behavior is for the campaign to auto-approve upon completion, unless autoCompleteAction=REVOKE + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + completeCampaign: function (id, campaignCompleteOptions, axiosOptions) { + return localVarFp.completeCampaign(id, campaignCompleteOptions, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * Creates a new Certification Campaign with the information provided in the request body. + * @summary Create a campaign + * @param {Campaign} campaign + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + createCampaign: function (campaign, axiosOptions) { + return localVarFp.createCampaign(campaign, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * Create a campaign Template based on campaign. + * @summary Create a Campaign Template + * @param {CampaignTemplate} campaignTemplate + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + createCampaignTemplate: function (campaignTemplate, axiosOptions) { + return localVarFp.createCampaignTemplate(campaignTemplate, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * Deletes a campaign template by ID. + * @summary Delete a Campaign Template + * @param {string} id The ID of the campaign template being deleted. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + deleteCampaignTemplate: function (id, axiosOptions) { + return localVarFp.deleteCampaignTemplate(id, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * Deletes the schedule for a campaign template. Returns a 404 if there is no schedule set. + * @summary Deletes a Campaign Template\'s Schedule + * @param {string} id The ID of the campaign template whose schedule is being deleted. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + deleteCampaignTemplateSchedule: function (id, axiosOptions) { + return localVarFp.deleteCampaignTemplateSchedule(id, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * Deletes campaigns whose Ids are specified in the provided list of campaign Ids. Authorized callers must be an ORG_ADMIN or a CERT_ADMIN. + * @summary Deletes Campaigns + * @param {CampaignsDeleteRequest} campaignsDeleteRequest The ids of the campaigns to delete. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + deleteCampaigns: function (campaignsDeleteRequest, axiosOptions) { + return localVarFp.deleteCampaigns(campaignsDeleteRequest, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * Gets campaigns and returns them in a list. Can provide increased level of detail for each campaign if provided the correct query. + * @summary List Campaigns + * @param {'SLIM' | 'FULL'} [detail] Determines whether slim, or increased level of detail is provided for each campaign in the returned list. Slim is the default behavior. + * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **id**: *eq, in* **name**: *eq, sw* **status**: *eq, in* + * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **name, created** + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getActiveCampaigns: function (detail, limit, offset, count, filters, sorters, axiosOptions) { + return localVarFp.getActiveCampaigns(detail, limit, offset, count, filters, sorters, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * Retrieves information for an existing campaign using the campaign\'s ID. Authorized callers must be a reviewer for this campaign, an ORG_ADMIN, or a CERT_ADMIN. + * @summary Get a campaign + * @param {string} id The ID of the campaign to be retrieved + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getCampaign: function (id, axiosOptions) { + return localVarFp.getCampaign(id, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * Fetches all reports for a certification campaign by campaign ID. Requires roles of CERT_ADMIN, DASHBOARD, ORG_ADMIN and REPORT_ADMIN + * @summary Get Campaign Reports + * @param {string} id The ID of the campaign for which reports are being fetched. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getCampaignReports: function (id, axiosOptions) { + return localVarFp.getCampaignReports(id, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * Fetches configuration for campaign reports. Currently it includes only one element - identity attributes defined as custom report columns. Requires roles of CERT_ADMIN and ORG_ADMIN. + * @summary Get Campaign Reports Configuration + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getCampaignReportsConfig: function (axiosOptions) { + return localVarFp.getCampaignReportsConfig(axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * Fetches a campaign template by ID. + * @summary Get a Campaign Template + * @param {string} id The desired campaign template\'s ID. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getCampaignTemplate: function (id, axiosOptions) { + return localVarFp.getCampaignTemplate(id, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * Gets the schedule for a campaign template. Returns a 404 if there is no schedule set. + * @summary Gets a Campaign Template\'s Schedule + * @param {string} id The ID of the campaign template whose schedule is being fetched. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getCampaignTemplateSchedule: function (id, axiosOptions) { + return localVarFp.getCampaignTemplateSchedule(id, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * Lists all CampaignTemplates. Scope can be reduced via standard V3 query params. All CampaignTemplates matching the query params + * @summary List Campaign Templates + * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **name, created, modified** + * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **name**: *eq, ge, gt, in, le, lt, ne, sw* **id**: *eq, ge, gt, in, le, lt, ne, sw* + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + listCampaignTemplates: function (limit, offset, count, sorters, filters, axiosOptions) { + return localVarFp.listCampaignTemplates(limit, offset, count, sorters, filters, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This API reassigns the specified certifications from one identity to another. A token with ORG_ADMIN or CERT_ADMIN authority is required to call this API. + * @summary Reassign Certifications + * @param {string} id The certification campaign ID + * @param {AdminReviewReassign} adminReviewReassign + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + move: function (id, adminReviewReassign, axiosOptions) { + return localVarFp.move(id, adminReviewReassign, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * Allows updating individual fields on a campaign template using the [JSON Patch](https://tools.ietf.org/html/rfc6902) standard. + * @summary Update a Campaign Template + * @param {string} id The ID of the campaign template being modified. + * @param {Array} jsonPatchOperation A list of campaign update operations according to the [JSON Patch](https://tools.ietf.org/html/rfc6902) standard. The following fields are patchable: * name * description * deadlineDuration * campaign (all fields that are allowed during create) + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + patchCampaignTemplate: function (id, jsonPatchOperation, axiosOptions) { + return localVarFp.patchCampaignTemplate(id, jsonPatchOperation, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * Overwrites configuration for campaign reports. Requires roles CERT_ADMIN and ORG_ADMIN. + * @summary Set Campaign Reports Configuration + * @param {CampaignReportsConfig} campaignReportsConfig Campaign Report Configuration + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + setCampaignReportsConfig: function (campaignReportsConfig, axiosOptions) { + return localVarFp.setCampaignReportsConfig(campaignReportsConfig, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * Sets the schedule for a campaign template. If a schedule already exists, it will be overwritten with the new one. + * @summary Sets a Campaign Template\'s Schedule + * @param {string} id The ID of the campaign template being scheduled. + * @param {Schedule} [schedule] + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + setCampaignTemplateSchedule: function (id, schedule, axiosOptions) { + return localVarFp.setCampaignTemplateSchedule(id, schedule, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * Submits a job to activate the campaign with the given Id. The campaign must be staged. Requires roles of CERT_ADMIN and ORG_ADMIN + * @summary Activate a Campaign + * @param {string} id The campaign id + * @param {ActivateCampaignOptions} [activateCampaignOptions] Optional. If no timezone is specified, the standard UTC timezone is used (i.e. UTC+00:00). Although this can take any timezone, the intended value is the caller\'s timezone. The activation time calculated from the given timezone may cause the campaign deadline time to be modified, but it will remain within the original date. The timezone must be in a valid ISO 8601 format. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + startCampaign: function (id, activateCampaignOptions, axiosOptions) { + return localVarFp.startCampaign(id, activateCampaignOptions, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * Kicks off remediation scan task for a certification campaign. Requires roles of CERT_ADMIN and ORG_ADMIN + * @summary Run Campaign Remediation Scan + * @param {string} id The ID of the campaign for which remediation scan is being run. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + startCampaignRemediationScan: function (id, axiosOptions) { + return localVarFp.startCampaignRemediationScan(id, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * Runs a report for a certification campaign. Requires the following roles: CERT_ADMIN, DASHBOARD, ORG_ADMIN and REPORT_ADMIN. + * @summary Run Campaign Report + * @param {string} id The ID of the campaign for which report is being run. + * @param {ReportType} type The type of the report to run. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + startCampaignReport: function (id, type, axiosOptions) { + return localVarFp.startCampaignReport(id, type, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * Generates a new campaign from a campaign template. The campaign object contained in the template has special formatting applied to its name and description fields in order to determine the generated campaign\'s name/description. Placeholders in those fields are formatted with the current date and time upon generation. Placeholders consist of a percent sign followed by a letter indicating what should be inserted; for example, \"%Y\" will insert the current year; a campaign template named \"Campaign for %y\" would generate a campaign called \"Campaign for 2020\" (assuming the year at generation time is 2020). Valid placeholders are the date/time conversion suffix characters supported by [java.util.Formatter](https://docs.oracle.com/javase/8/docs/api/java/util/Formatter.html). Requires roles ORG_ADMIN. + * @summary Generate a Campaign from Template + * @param {string} id The ID of the campaign template to use for generation. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + startGenerateCampaignTemplate: function (id, axiosOptions) { + return localVarFp.startGenerateCampaignTemplate(id, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * Allows updating individual fields on a campaign using the [JSON Patch](https://tools.ietf.org/html/rfc6902) standard. + * @summary Update a Campaign + * @param {string} id The ID of the campaign template being modified. + * @param {Array} jsonPatchOperation A list of campaign update operations according to the [JSON Patch](https://tools.ietf.org/html/rfc6902) standard. The fields that can be patched differ based on the status of the campaign. In the *STAGED* status, the following fields can be patched: * name * description * recommendationsEnabled * deadline * emailNotificationEnabled * autoRevokeAllowed In the *ACTIVE* status, the following fields can be patched: * deadline + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + updateCampaign: function (id, jsonPatchOperation, axiosOptions) { + return localVarFp.updateCampaign(id, jsonPatchOperation, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + }; + }; + exports.CertificationCampaignsApiFactory = CertificationCampaignsApiFactory; + /** + * CertificationCampaignsApi - object-oriented interface + * @export + * @class CertificationCampaignsApi + * @extends {BaseAPI} + */ + var CertificationCampaignsApi = /** @class */ (function (_super) { + __extends(CertificationCampaignsApi, _super); + function CertificationCampaignsApi() { + return _super !== null && _super.apply(this, arguments) || this; + } + /** + * :::caution This endpoint will run successfully for any campaigns that are **past due**. This endpoint will return a content error if the campaign is **not past due**. ::: Completes a certification campaign. This is provided to admins so that they can complete a certification even if all items have not been completed. Requires roles of CERT_ADMIN and ORG_ADMIN + * @summary Complete a Campaign + * @param {CertificationCampaignsApiCompleteCampaignRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof CertificationCampaignsApi + */ + CertificationCampaignsApi.prototype.completeCampaign = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.CertificationCampaignsApiFp)(this.configuration).completeCampaign(requestParameters.id, requestParameters.campaignCompleteOptions, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * Creates a new Certification Campaign with the information provided in the request body. + * @summary Create a campaign + * @param {CertificationCampaignsApiCreateCampaignRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof CertificationCampaignsApi + */ + CertificationCampaignsApi.prototype.createCampaign = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.CertificationCampaignsApiFp)(this.configuration).createCampaign(requestParameters.campaign, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * Create a campaign Template based on campaign. + * @summary Create a Campaign Template + * @param {CertificationCampaignsApiCreateCampaignTemplateRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof CertificationCampaignsApi + */ + CertificationCampaignsApi.prototype.createCampaignTemplate = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.CertificationCampaignsApiFp)(this.configuration).createCampaignTemplate(requestParameters.campaignTemplate, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * Deletes a campaign template by ID. + * @summary Delete a Campaign Template + * @param {CertificationCampaignsApiDeleteCampaignTemplateRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof CertificationCampaignsApi + */ + CertificationCampaignsApi.prototype.deleteCampaignTemplate = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.CertificationCampaignsApiFp)(this.configuration).deleteCampaignTemplate(requestParameters.id, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * Deletes the schedule for a campaign template. Returns a 404 if there is no schedule set. + * @summary Deletes a Campaign Template\'s Schedule + * @param {CertificationCampaignsApiDeleteCampaignTemplateScheduleRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof CertificationCampaignsApi + */ + CertificationCampaignsApi.prototype.deleteCampaignTemplateSchedule = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.CertificationCampaignsApiFp)(this.configuration).deleteCampaignTemplateSchedule(requestParameters.id, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * Deletes campaigns whose Ids are specified in the provided list of campaign Ids. Authorized callers must be an ORG_ADMIN or a CERT_ADMIN. + * @summary Deletes Campaigns + * @param {CertificationCampaignsApiDeleteCampaignsRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof CertificationCampaignsApi + */ + CertificationCampaignsApi.prototype.deleteCampaigns = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.CertificationCampaignsApiFp)(this.configuration).deleteCampaigns(requestParameters.campaignsDeleteRequest, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * Gets campaigns and returns them in a list. Can provide increased level of detail for each campaign if provided the correct query. + * @summary List Campaigns + * @param {CertificationCampaignsApiGetActiveCampaignsRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof CertificationCampaignsApi + */ + CertificationCampaignsApi.prototype.getActiveCampaigns = function (requestParameters, axiosOptions) { + var _this = this; + if (requestParameters === void 0) { requestParameters = {}; } + return (0, exports.CertificationCampaignsApiFp)(this.configuration).getActiveCampaigns(requestParameters.detail, requestParameters.limit, requestParameters.offset, requestParameters.count, requestParameters.filters, requestParameters.sorters, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * Retrieves information for an existing campaign using the campaign\'s ID. Authorized callers must be a reviewer for this campaign, an ORG_ADMIN, or a CERT_ADMIN. + * @summary Get a campaign + * @param {CertificationCampaignsApiGetCampaignRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof CertificationCampaignsApi + */ + CertificationCampaignsApi.prototype.getCampaign = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.CertificationCampaignsApiFp)(this.configuration).getCampaign(requestParameters.id, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * Fetches all reports for a certification campaign by campaign ID. Requires roles of CERT_ADMIN, DASHBOARD, ORG_ADMIN and REPORT_ADMIN + * @summary Get Campaign Reports + * @param {CertificationCampaignsApiGetCampaignReportsRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof CertificationCampaignsApi + */ + CertificationCampaignsApi.prototype.getCampaignReports = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.CertificationCampaignsApiFp)(this.configuration).getCampaignReports(requestParameters.id, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * Fetches configuration for campaign reports. Currently it includes only one element - identity attributes defined as custom report columns. Requires roles of CERT_ADMIN and ORG_ADMIN. + * @summary Get Campaign Reports Configuration + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof CertificationCampaignsApi + */ + CertificationCampaignsApi.prototype.getCampaignReportsConfig = function (axiosOptions) { + var _this = this; + return (0, exports.CertificationCampaignsApiFp)(this.configuration).getCampaignReportsConfig(axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * Fetches a campaign template by ID. + * @summary Get a Campaign Template + * @param {CertificationCampaignsApiGetCampaignTemplateRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof CertificationCampaignsApi + */ + CertificationCampaignsApi.prototype.getCampaignTemplate = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.CertificationCampaignsApiFp)(this.configuration).getCampaignTemplate(requestParameters.id, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * Gets the schedule for a campaign template. Returns a 404 if there is no schedule set. + * @summary Gets a Campaign Template\'s Schedule + * @param {CertificationCampaignsApiGetCampaignTemplateScheduleRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof CertificationCampaignsApi + */ + CertificationCampaignsApi.prototype.getCampaignTemplateSchedule = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.CertificationCampaignsApiFp)(this.configuration).getCampaignTemplateSchedule(requestParameters.id, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * Lists all CampaignTemplates. Scope can be reduced via standard V3 query params. All CampaignTemplates matching the query params + * @summary List Campaign Templates + * @param {CertificationCampaignsApiListCampaignTemplatesRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof CertificationCampaignsApi + */ + CertificationCampaignsApi.prototype.listCampaignTemplates = function (requestParameters, axiosOptions) { + var _this = this; + if (requestParameters === void 0) { requestParameters = {}; } + return (0, exports.CertificationCampaignsApiFp)(this.configuration).listCampaignTemplates(requestParameters.limit, requestParameters.offset, requestParameters.count, requestParameters.sorters, requestParameters.filters, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This API reassigns the specified certifications from one identity to another. A token with ORG_ADMIN or CERT_ADMIN authority is required to call this API. + * @summary Reassign Certifications + * @param {CertificationCampaignsApiMoveRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof CertificationCampaignsApi + */ + CertificationCampaignsApi.prototype.move = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.CertificationCampaignsApiFp)(this.configuration).move(requestParameters.id, requestParameters.adminReviewReassign, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * Allows updating individual fields on a campaign template using the [JSON Patch](https://tools.ietf.org/html/rfc6902) standard. + * @summary Update a Campaign Template + * @param {CertificationCampaignsApiPatchCampaignTemplateRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof CertificationCampaignsApi + */ + CertificationCampaignsApi.prototype.patchCampaignTemplate = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.CertificationCampaignsApiFp)(this.configuration).patchCampaignTemplate(requestParameters.id, requestParameters.jsonPatchOperation, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * Overwrites configuration for campaign reports. Requires roles CERT_ADMIN and ORG_ADMIN. + * @summary Set Campaign Reports Configuration + * @param {CertificationCampaignsApiSetCampaignReportsConfigRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof CertificationCampaignsApi + */ + CertificationCampaignsApi.prototype.setCampaignReportsConfig = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.CertificationCampaignsApiFp)(this.configuration).setCampaignReportsConfig(requestParameters.campaignReportsConfig, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * Sets the schedule for a campaign template. If a schedule already exists, it will be overwritten with the new one. + * @summary Sets a Campaign Template\'s Schedule + * @param {CertificationCampaignsApiSetCampaignTemplateScheduleRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof CertificationCampaignsApi + */ + CertificationCampaignsApi.prototype.setCampaignTemplateSchedule = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.CertificationCampaignsApiFp)(this.configuration).setCampaignTemplateSchedule(requestParameters.id, requestParameters.schedule, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * Submits a job to activate the campaign with the given Id. The campaign must be staged. Requires roles of CERT_ADMIN and ORG_ADMIN + * @summary Activate a Campaign + * @param {CertificationCampaignsApiStartCampaignRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof CertificationCampaignsApi + */ + CertificationCampaignsApi.prototype.startCampaign = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.CertificationCampaignsApiFp)(this.configuration).startCampaign(requestParameters.id, requestParameters.activateCampaignOptions, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * Kicks off remediation scan task for a certification campaign. Requires roles of CERT_ADMIN and ORG_ADMIN + * @summary Run Campaign Remediation Scan + * @param {CertificationCampaignsApiStartCampaignRemediationScanRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof CertificationCampaignsApi + */ + CertificationCampaignsApi.prototype.startCampaignRemediationScan = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.CertificationCampaignsApiFp)(this.configuration).startCampaignRemediationScan(requestParameters.id, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * Runs a report for a certification campaign. Requires the following roles: CERT_ADMIN, DASHBOARD, ORG_ADMIN and REPORT_ADMIN. + * @summary Run Campaign Report + * @param {CertificationCampaignsApiStartCampaignReportRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof CertificationCampaignsApi + */ + CertificationCampaignsApi.prototype.startCampaignReport = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.CertificationCampaignsApiFp)(this.configuration).startCampaignReport(requestParameters.id, requestParameters.type, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * Generates a new campaign from a campaign template. The campaign object contained in the template has special formatting applied to its name and description fields in order to determine the generated campaign\'s name/description. Placeholders in those fields are formatted with the current date and time upon generation. Placeholders consist of a percent sign followed by a letter indicating what should be inserted; for example, \"%Y\" will insert the current year; a campaign template named \"Campaign for %y\" would generate a campaign called \"Campaign for 2020\" (assuming the year at generation time is 2020). Valid placeholders are the date/time conversion suffix characters supported by [java.util.Formatter](https://docs.oracle.com/javase/8/docs/api/java/util/Formatter.html). Requires roles ORG_ADMIN. + * @summary Generate a Campaign from Template + * @param {CertificationCampaignsApiStartGenerateCampaignTemplateRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof CertificationCampaignsApi + */ + CertificationCampaignsApi.prototype.startGenerateCampaignTemplate = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.CertificationCampaignsApiFp)(this.configuration).startGenerateCampaignTemplate(requestParameters.id, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * Allows updating individual fields on a campaign using the [JSON Patch](https://tools.ietf.org/html/rfc6902) standard. + * @summary Update a Campaign + * @param {CertificationCampaignsApiUpdateCampaignRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof CertificationCampaignsApi + */ + CertificationCampaignsApi.prototype.updateCampaign = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.CertificationCampaignsApiFp)(this.configuration).updateCampaign(requestParameters.id, requestParameters.jsonPatchOperation, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + return CertificationCampaignsApi; + }(base_1.BaseAPI)); + exports.CertificationCampaignsApi = CertificationCampaignsApi; + /** + * CertificationSummariesApi - axios parameter creator + * @export + */ + var CertificationSummariesApiAxiosParamCreator = function (configuration) { + var _this = this; + return { + /** + * This API returns a list of access summaries for the specified identity campaign certification and type. A token with ORG_ADMIN or CERT_ADMIN authority is required to call this API. Reviewers for this certification can also call this API. + * @summary Access Summaries + * @param {string} id The identity campaign certification ID + * @param {'ROLE' | 'ACCESS_PROFILE' | 'ENTITLEMENT'} type The type of access review item to retrieve summaries for + * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **completed**: *eq, ne* **access.id**: *eq, in* **access.name**: *eq, sw* **entitlement.sourceName**: *eq, sw* **accessProfile.sourceName**: *eq, sw* + * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **access.name** + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getIdentityAccessSummaries: function (id, type, limit, offset, count, filters, sorters, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'id' is not null or undefined + (0, common_1.assertParamExists)('getIdentityAccessSummaries', 'id', id); + // verify required parameter 'type' is not null or undefined + (0, common_1.assertParamExists)('getIdentityAccessSummaries', 'type', type); + localVarPath = "/certifications/{id}/access-summaries/{type}" + .replace("{".concat("id", "}"), encodeURIComponent(String(id))) + .replace("{".concat("type", "}"), encodeURIComponent(String(type))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + if (limit !== undefined) { + localVarQueryParameter['limit'] = limit; + } + if (offset !== undefined) { + localVarQueryParameter['offset'] = offset; + } + if (count !== undefined) { + localVarQueryParameter['count'] = count; + } + if (filters !== undefined) { + localVarQueryParameter['filters'] = filters; + } + if (sorters !== undefined) { + localVarQueryParameter['sorters'] = sorters; + } + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This API returns a summary of the decisions made on an identity campaign certification. The decisions are summarized by type. A token with ORG_ADMIN or CERT_ADMIN authority is required to call this API. Reviewers for this certification can also call this API. + * @summary Summary of Certification Decisions + * @param {string} id The certification ID + * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **identitySummary.id**: *eq, in* + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getIdentityDecisionSummary: function (id, filters, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'id' is not null or undefined + (0, common_1.assertParamExists)('getIdentityDecisionSummary', 'id', id); + localVarPath = "/certifications/{id}/decision-summary" + .replace("{".concat("id", "}"), encodeURIComponent(String(id))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + if (filters !== undefined) { + localVarQueryParameter['filters'] = filters; + } + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This API returns a list of the identity summaries for a specific identity campaign certification. A token with ORG_ADMIN or CERT_ADMIN authority is required to call this API. Reviewers for this certification can also call this API. + * @summary Identity Summaries for Campaign Certification + * @param {string} id The identity campaign certification ID + * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **id**: *eq, in* **completed**: *eq, ne* **name**: *eq, sw* + * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **name** + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getIdentitySummaries: function (id, limit, offset, count, filters, sorters, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'id' is not null or undefined + (0, common_1.assertParamExists)('getIdentitySummaries', 'id', id); + localVarPath = "/certifications/{id}/identity-summaries" + .replace("{".concat("id", "}"), encodeURIComponent(String(id))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + if (limit !== undefined) { + localVarQueryParameter['limit'] = limit; + } + if (offset !== undefined) { + localVarQueryParameter['offset'] = offset; + } + if (count !== undefined) { + localVarQueryParameter['count'] = count; + } + if (filters !== undefined) { + localVarQueryParameter['filters'] = filters; + } + if (sorters !== undefined) { + localVarQueryParameter['sorters'] = sorters; + } + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This API returns the summary for an identity on a specified identity campaign certification. A token with ORG_ADMIN or CERT_ADMIN authority is required to call this API. Reviewers for this certification can also call this API. + * @summary Summary for Identity + * @param {string} id The identity campaign certification ID + * @param {string} identitySummaryId The identity summary ID + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getIdentitySummary: function (id, identitySummaryId, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'id' is not null or undefined + (0, common_1.assertParamExists)('getIdentitySummary', 'id', id); + // verify required parameter 'identitySummaryId' is not null or undefined + (0, common_1.assertParamExists)('getIdentitySummary', 'identitySummaryId', identitySummaryId); + localVarPath = "/certifications/{id}/identity-summaries/{identitySummaryId}" + .replace("{".concat("id", "}"), encodeURIComponent(String(id))) + .replace("{".concat("identitySummaryId", "}"), encodeURIComponent(String(identitySummaryId))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + }; + }; + exports.CertificationSummariesApiAxiosParamCreator = CertificationSummariesApiAxiosParamCreator; + /** + * CertificationSummariesApi - functional programming interface + * @export + */ + var CertificationSummariesApiFp = function (configuration) { + var localVarAxiosParamCreator = (0, exports.CertificationSummariesApiAxiosParamCreator)(configuration); + return { + /** + * This API returns a list of access summaries for the specified identity campaign certification and type. A token with ORG_ADMIN or CERT_ADMIN authority is required to call this API. Reviewers for this certification can also call this API. + * @summary Access Summaries + * @param {string} id The identity campaign certification ID + * @param {'ROLE' | 'ACCESS_PROFILE' | 'ENTITLEMENT'} type The type of access review item to retrieve summaries for + * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **completed**: *eq, ne* **access.id**: *eq, in* **access.name**: *eq, sw* **entitlement.sourceName**: *eq, sw* **accessProfile.sourceName**: *eq, sw* + * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **access.name** + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getIdentityAccessSummaries: function (id, type, limit, offset, count, filters, sorters, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.getIdentityAccessSummaries(id, type, limit, offset, count, filters, sorters, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This API returns a summary of the decisions made on an identity campaign certification. The decisions are summarized by type. A token with ORG_ADMIN or CERT_ADMIN authority is required to call this API. Reviewers for this certification can also call this API. + * @summary Summary of Certification Decisions + * @param {string} id The certification ID + * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **identitySummary.id**: *eq, in* + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getIdentityDecisionSummary: function (id, filters, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.getIdentityDecisionSummary(id, filters, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This API returns a list of the identity summaries for a specific identity campaign certification. A token with ORG_ADMIN or CERT_ADMIN authority is required to call this API. Reviewers for this certification can also call this API. + * @summary Identity Summaries for Campaign Certification + * @param {string} id The identity campaign certification ID + * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **id**: *eq, in* **completed**: *eq, ne* **name**: *eq, sw* + * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **name** + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getIdentitySummaries: function (id, limit, offset, count, filters, sorters, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.getIdentitySummaries(id, limit, offset, count, filters, sorters, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This API returns the summary for an identity on a specified identity campaign certification. A token with ORG_ADMIN or CERT_ADMIN authority is required to call this API. Reviewers for this certification can also call this API. + * @summary Summary for Identity + * @param {string} id The identity campaign certification ID + * @param {string} identitySummaryId The identity summary ID + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getIdentitySummary: function (id, identitySummaryId, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.getIdentitySummary(id, identitySummaryId, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + }; + }; + exports.CertificationSummariesApiFp = CertificationSummariesApiFp; + /** + * CertificationSummariesApi - factory interface + * @export + */ + var CertificationSummariesApiFactory = function (configuration, basePath, axios) { + var localVarFp = (0, exports.CertificationSummariesApiFp)(configuration); + return { + /** + * This API returns a list of access summaries for the specified identity campaign certification and type. A token with ORG_ADMIN or CERT_ADMIN authority is required to call this API. Reviewers for this certification can also call this API. + * @summary Access Summaries + * @param {string} id The identity campaign certification ID + * @param {'ROLE' | 'ACCESS_PROFILE' | 'ENTITLEMENT'} type The type of access review item to retrieve summaries for + * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **completed**: *eq, ne* **access.id**: *eq, in* **access.name**: *eq, sw* **entitlement.sourceName**: *eq, sw* **accessProfile.sourceName**: *eq, sw* + * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **access.name** + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getIdentityAccessSummaries: function (id, type, limit, offset, count, filters, sorters, axiosOptions) { + return localVarFp.getIdentityAccessSummaries(id, type, limit, offset, count, filters, sorters, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This API returns a summary of the decisions made on an identity campaign certification. The decisions are summarized by type. A token with ORG_ADMIN or CERT_ADMIN authority is required to call this API. Reviewers for this certification can also call this API. + * @summary Summary of Certification Decisions + * @param {string} id The certification ID + * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **identitySummary.id**: *eq, in* + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getIdentityDecisionSummary: function (id, filters, axiosOptions) { + return localVarFp.getIdentityDecisionSummary(id, filters, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This API returns a list of the identity summaries for a specific identity campaign certification. A token with ORG_ADMIN or CERT_ADMIN authority is required to call this API. Reviewers for this certification can also call this API. + * @summary Identity Summaries for Campaign Certification + * @param {string} id The identity campaign certification ID + * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **id**: *eq, in* **completed**: *eq, ne* **name**: *eq, sw* + * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **name** + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getIdentitySummaries: function (id, limit, offset, count, filters, sorters, axiosOptions) { + return localVarFp.getIdentitySummaries(id, limit, offset, count, filters, sorters, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This API returns the summary for an identity on a specified identity campaign certification. A token with ORG_ADMIN or CERT_ADMIN authority is required to call this API. Reviewers for this certification can also call this API. + * @summary Summary for Identity + * @param {string} id The identity campaign certification ID + * @param {string} identitySummaryId The identity summary ID + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getIdentitySummary: function (id, identitySummaryId, axiosOptions) { + return localVarFp.getIdentitySummary(id, identitySummaryId, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + }; + }; + exports.CertificationSummariesApiFactory = CertificationSummariesApiFactory; + /** + * CertificationSummariesApi - object-oriented interface + * @export + * @class CertificationSummariesApi + * @extends {BaseAPI} + */ + var CertificationSummariesApi = /** @class */ (function (_super) { + __extends(CertificationSummariesApi, _super); + function CertificationSummariesApi() { + return _super !== null && _super.apply(this, arguments) || this; + } + /** + * This API returns a list of access summaries for the specified identity campaign certification and type. A token with ORG_ADMIN or CERT_ADMIN authority is required to call this API. Reviewers for this certification can also call this API. + * @summary Access Summaries + * @param {CertificationSummariesApiGetIdentityAccessSummariesRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof CertificationSummariesApi + */ + CertificationSummariesApi.prototype.getIdentityAccessSummaries = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.CertificationSummariesApiFp)(this.configuration).getIdentityAccessSummaries(requestParameters.id, requestParameters.type, requestParameters.limit, requestParameters.offset, requestParameters.count, requestParameters.filters, requestParameters.sorters, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This API returns a summary of the decisions made on an identity campaign certification. The decisions are summarized by type. A token with ORG_ADMIN or CERT_ADMIN authority is required to call this API. Reviewers for this certification can also call this API. + * @summary Summary of Certification Decisions + * @param {CertificationSummariesApiGetIdentityDecisionSummaryRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof CertificationSummariesApi + */ + CertificationSummariesApi.prototype.getIdentityDecisionSummary = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.CertificationSummariesApiFp)(this.configuration).getIdentityDecisionSummary(requestParameters.id, requestParameters.filters, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This API returns a list of the identity summaries for a specific identity campaign certification. A token with ORG_ADMIN or CERT_ADMIN authority is required to call this API. Reviewers for this certification can also call this API. + * @summary Identity Summaries for Campaign Certification + * @param {CertificationSummariesApiGetIdentitySummariesRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof CertificationSummariesApi + */ + CertificationSummariesApi.prototype.getIdentitySummaries = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.CertificationSummariesApiFp)(this.configuration).getIdentitySummaries(requestParameters.id, requestParameters.limit, requestParameters.offset, requestParameters.count, requestParameters.filters, requestParameters.sorters, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This API returns the summary for an identity on a specified identity campaign certification. A token with ORG_ADMIN or CERT_ADMIN authority is required to call this API. Reviewers for this certification can also call this API. + * @summary Summary for Identity + * @param {CertificationSummariesApiGetIdentitySummaryRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof CertificationSummariesApi + */ + CertificationSummariesApi.prototype.getIdentitySummary = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.CertificationSummariesApiFp)(this.configuration).getIdentitySummary(requestParameters.id, requestParameters.identitySummaryId, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + return CertificationSummariesApi; + }(base_1.BaseAPI)); + exports.CertificationSummariesApi = CertificationSummariesApi; + /** + * CertificationsApi - axios parameter creator + * @export + */ + var CertificationsApiAxiosParamCreator = function (configuration) { + var _this = this; + return { + /** + * This API returns the certification task for the specified ID. A token with ORG_ADMIN or CERT_ADMIN authority is required to call this API. Reviewers for the specified certification can also call this API. + * @summary Certification Task by ID + * @param {string} id The task ID + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getCertificationTask: function (id, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'id' is not null or undefined + (0, common_1.assertParamExists)('getCertificationTask', 'id', id); + localVarPath = "/certification-tasks/{id}" + .replace("{".concat("id", "}"), encodeURIComponent(String(id))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This API returns a single identity campaign certification by its ID. A token with ORG_ADMIN or CERT_ADMIN authority is required to call this API. Reviewers for this certification can also call this API. This API does not support requests for certifications assigned to Governance Groups. + * @summary Identity Certification by ID + * @param {string} id The certification id + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getIdentityCertification: function (id, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'id' is not null or undefined + (0, common_1.assertParamExists)('getIdentityCertification', 'id', id); + localVarPath = "/certifications/{id}" + .replace("{".concat("id", "}"), encodeURIComponent(String(id))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This API returns the permissions associated with an entitlement certification item based on the certification item\'s ID. A token with ORG_ADMIN or CERT_ADMIN authority is required to call this API. Reviewers for this certification can also call this API. + * @summary Permissions for Entitlement Certification Item + * @param {string} certificationId The certification ID + * @param {string} itemId The certification item ID + * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **target**: *eq, sw* **rights**: *ca* Supported composite operators: *and, or* All field values (second filter operands) are case-insensitive for this API. Only a single *and* or *or* composite filter operator may be used. It must also be used between a target filter and a rights filter, not between 2 filters for the same field. For example, the following is valid: `?filters=rights+ca+(%22CREATE%22)+and+target+eq+%22SYS.OBJAUTH2%22` The following is invalid: 1?filters=rights+ca+(%22CREATE%22)+and+rights+ca+(%SELECT%22)1 + * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getIdentityCertificationItemPermissions: function (certificationId, itemId, filters, limit, offset, count, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'certificationId' is not null or undefined + (0, common_1.assertParamExists)('getIdentityCertificationItemPermissions', 'certificationId', certificationId); + // verify required parameter 'itemId' is not null or undefined + (0, common_1.assertParamExists)('getIdentityCertificationItemPermissions', 'itemId', itemId); + localVarPath = "/certifications/{certificationId}/access-review-items/{itemId}/permissions" + .replace("{".concat("certificationId", "}"), encodeURIComponent(String(certificationId))) + .replace("{".concat("itemId", "}"), encodeURIComponent(String(itemId))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + if (filters !== undefined) { + localVarQueryParameter['filters'] = filters; + } + if (limit !== undefined) { + localVarQueryParameter['limit'] = limit; + } + if (offset !== undefined) { + localVarQueryParameter['offset'] = offset; + } + if (count !== undefined) { + localVarQueryParameter['count'] = count; + } + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This API returns a list of pending (`QUEUED` or `IN_PROGRESS`) certification tasks. Any authenticated token can call this API, but only certification tasks you are authorized to review will be returned. + * @summary List of Pending Certification Tasks + * @param {string} [reviewerIdentity] The ID of reviewer identity. *me* indicates the current user. + * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **id**: *eq, in* **targetId**: *eq, in* **type**: *eq, in* + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getPendingCertificationTasks: function (reviewerIdentity, limit, offset, count, filters, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + localVarPath = "/certification-tasks"; + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + if (reviewerIdentity !== undefined) { + localVarQueryParameter['reviewer-identity'] = reviewerIdentity; + } + if (limit !== undefined) { + localVarQueryParameter['limit'] = limit; + } + if (offset !== undefined) { + localVarQueryParameter['offset'] = offset; + } + if (count !== undefined) { + localVarQueryParameter['count'] = count; + } + if (filters !== undefined) { + localVarQueryParameter['filters'] = filters; + } + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This API returns a list of reviewers for the certification. A token with ORG_ADMIN or CERT_ADMIN authority is required to call this API. Reviewers for this certification can also call this API. + * @summary List of Reviewers for certification + * @param {string} id The certification ID + * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **id**: *eq, in* **name**: *eq, sw* **email**: *eq, sw* + * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **name, email** + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + listCertificationReviewers: function (id, limit, offset, count, filters, sorters, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'id' is not null or undefined + (0, common_1.assertParamExists)('listCertificationReviewers', 'id', id); + localVarPath = "/certifications/{id}/reviewers" + .replace("{".concat("id", "}"), encodeURIComponent(String(id))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + if (limit !== undefined) { + localVarQueryParameter['limit'] = limit; + } + if (offset !== undefined) { + localVarQueryParameter['offset'] = offset; + } + if (count !== undefined) { + localVarQueryParameter['count'] = count; + } + if (filters !== undefined) { + localVarQueryParameter['filters'] = filters; + } + if (sorters !== undefined) { + localVarQueryParameter['sorters'] = sorters; + } + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This API returns a list of access review items for an identity campaign certification. A token with ORG_ADMIN or CERT_ADMIN authority is required to call this API. Reviewers for this certification can also call this API. This API does not support requests for certifications assigned to Governance Groups. + * @summary List of Access Review Items + * @param {string} id The identity campaign certification ID + * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **id**: *eq, in* **type**: *eq* **access.type**: *eq* **completed**: *eq, ne* **identitySummary.id**: *eq, in* **identitySummary.name**: *eq, sw* **access.id**: *eq, in* **access.name**: *eq, sw* **entitlement.sourceName**: *eq, sw* **accessProfile.sourceName**: *eq, sw* + * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **identitySummary.name, access.name, access.type, entitlement.sourceName, accessProfile.sourceName** + * @param {string} [entitlements] Filter results to view access review items that pertain to any of the specified comma-separated entitlement IDs. An error will occur if this param is used with **access-profiles** or **roles** as only one of these query params can be used at a time. + * @param {string} [accessProfiles] Filter results to view access review items that pertain to any of the specified comma-separated access-profle IDs. An error will occur if this param is used with **entitlements** or **roles** as only one of these query params can be used at a time. + * @param {string} [roles] Filter results to view access review items that pertain to any of the specified comma-separated role IDs. An error will occur if this param is used with **entitlements** or **access-profiles** as only one of these query params can be used at a time. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + listIdentityAccessReviewItems: function (id, limit, offset, count, filters, sorters, entitlements, accessProfiles, roles, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'id' is not null or undefined + (0, common_1.assertParamExists)('listIdentityAccessReviewItems', 'id', id); + localVarPath = "/certifications/{id}/access-review-items" + .replace("{".concat("id", "}"), encodeURIComponent(String(id))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + if (limit !== undefined) { + localVarQueryParameter['limit'] = limit; + } + if (offset !== undefined) { + localVarQueryParameter['offset'] = offset; + } + if (count !== undefined) { + localVarQueryParameter['count'] = count; + } + if (filters !== undefined) { + localVarQueryParameter['filters'] = filters; + } + if (sorters !== undefined) { + localVarQueryParameter['sorters'] = sorters; + } + if (entitlements !== undefined) { + localVarQueryParameter['entitlements'] = entitlements; + } + if (accessProfiles !== undefined) { + localVarQueryParameter['access-profiles'] = accessProfiles; + } + if (roles !== undefined) { + localVarQueryParameter['roles'] = roles; + } + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This API returns a list of identity campaign certifications that satisfy the given query parameters. Any authenticated token can call this API, but only certifications you are authorized to review will be returned. This API does not support requests for certifications assigned to Governance Groups. + * @summary Identity Campaign Certifications by IDs + * @param {string} [reviewerIdentity] The ID of reviewer identity. *me* indicates the current user. + * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **id**: *eq, in* **campaign.id**: *eq, in* **phase**: *eq* **completed**: *eq, ne* + * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **name, due, signed** + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + listIdentityCertifications: function (reviewerIdentity, limit, offset, count, filters, sorters, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + localVarPath = "/certifications"; + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + if (reviewerIdentity !== undefined) { + localVarQueryParameter['reviewer-identity'] = reviewerIdentity; + } + if (limit !== undefined) { + localVarQueryParameter['limit'] = limit; + } + if (offset !== undefined) { + localVarQueryParameter['offset'] = offset; + } + if (count !== undefined) { + localVarQueryParameter['count'] = count; + } + if (filters !== undefined) { + localVarQueryParameter['filters'] = filters; + } + if (sorters !== undefined) { + localVarQueryParameter['sorters'] = sorters; + } + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * The API makes a decision to approve or revoke one or more identity campaign certification items. A token with ORG_ADMIN or CERT_ADMIN authority is required to call this API. Reviewers for this certification can also call this API. This API does not support requests for certifications assigned to Governance Groups. + * @summary Decide on a Certification Item + * @param {string} id The ID of the identity campaign certification on which to make decisions + * @param {Array} reviewDecision A non-empty array of decisions to be made. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + makeIdentityDecision: function (id, reviewDecision, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'id' is not null or undefined + (0, common_1.assertParamExists)('makeIdentityDecision', 'id', id); + // verify required parameter 'reviewDecision' is not null or undefined + (0, common_1.assertParamExists)('makeIdentityDecision', 'reviewDecision', reviewDecision); + localVarPath = "/certifications/{id}/decide" + .replace("{".concat("id", "}"), encodeURIComponent(String(id))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + localVarHeaderParameter['Content-Type'] = 'application/json'; + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(reviewDecision, localVarRequestOptions, configuration); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This API reassigns up to 50 identities or items in an identity campaign certification to another reviewer. A token with ORG_ADMIN or CERT_ADMIN authority is required to call this API. Reviewers for this certification can also call this API. This API does not support requests for certifications assigned to Governance Groups. + * @summary Reassign Identities or Items + * @param {string} id The identity campaign certification ID + * @param {ReviewReassign} reviewReassign + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + reassignIdentityCertifications: function (id, reviewReassign, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'id' is not null or undefined + (0, common_1.assertParamExists)('reassignIdentityCertifications', 'id', id); + // verify required parameter 'reviewReassign' is not null or undefined + (0, common_1.assertParamExists)('reassignIdentityCertifications', 'reviewReassign', reviewReassign); + localVarPath = "/certifications/{id}/reassign" + .replace("{".concat("id", "}"), encodeURIComponent(String(id))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + localVarHeaderParameter['Content-Type'] = 'application/json'; + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(reviewReassign, localVarRequestOptions, configuration); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This API finalizes all decisions made on an identity campaign certification and initiates any remediations required. A token with ORG_ADMIN or CERT_ADMIN authority is required to call this API. Reviewers for this certification can also call this API. This API does not support requests for certifications assigned to Governance Groups. + * @summary Finalize Identity Certification Decisions + * @param {string} id The identity campaign certification ID + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + signOffIdentityCertification: function (id, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'id' is not null or undefined + (0, common_1.assertParamExists)('signOffIdentityCertification', 'id', id); + localVarPath = "/certifications/{id}/sign-off" + .replace("{".concat("id", "}"), encodeURIComponent(String(id))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This API initiates a task to reassign up to 500 identities or items in an identity campaign certification to another reviewer. The `certification-tasks` API can be used to get an updated status on the task and determine when the reassignment is complete. A token with ORG_ADMIN or CERT_ADMIN authority is required to call this API. Reviewers for this certification can also call this API. + * @summary Reassign Certifications Asynchronously + * @param {string} id The identity campaign certification ID + * @param {ReviewReassign} reviewReassign + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + submitReassignCertsAsync: function (id, reviewReassign, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'id' is not null or undefined + (0, common_1.assertParamExists)('submitReassignCertsAsync', 'id', id); + // verify required parameter 'reviewReassign' is not null or undefined + (0, common_1.assertParamExists)('submitReassignCertsAsync', 'reviewReassign', reviewReassign); + localVarPath = "/certifications/{id}/reassign-async" + .replace("{".concat("id", "}"), encodeURIComponent(String(id))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + localVarHeaderParameter['Content-Type'] = 'application/json'; + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(reviewReassign, localVarRequestOptions, configuration); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + }; + }; + exports.CertificationsApiAxiosParamCreator = CertificationsApiAxiosParamCreator; + /** + * CertificationsApi - functional programming interface + * @export + */ + var CertificationsApiFp = function (configuration) { + var localVarAxiosParamCreator = (0, exports.CertificationsApiAxiosParamCreator)(configuration); + return { + /** + * This API returns the certification task for the specified ID. A token with ORG_ADMIN or CERT_ADMIN authority is required to call this API. Reviewers for the specified certification can also call this API. + * @summary Certification Task by ID + * @param {string} id The task ID + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getCertificationTask: function (id, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.getCertificationTask(id, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This API returns a single identity campaign certification by its ID. A token with ORG_ADMIN or CERT_ADMIN authority is required to call this API. Reviewers for this certification can also call this API. This API does not support requests for certifications assigned to Governance Groups. + * @summary Identity Certification by ID + * @param {string} id The certification id + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getIdentityCertification: function (id, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.getIdentityCertification(id, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This API returns the permissions associated with an entitlement certification item based on the certification item\'s ID. A token with ORG_ADMIN or CERT_ADMIN authority is required to call this API. Reviewers for this certification can also call this API. + * @summary Permissions for Entitlement Certification Item + * @param {string} certificationId The certification ID + * @param {string} itemId The certification item ID + * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **target**: *eq, sw* **rights**: *ca* Supported composite operators: *and, or* All field values (second filter operands) are case-insensitive for this API. Only a single *and* or *or* composite filter operator may be used. It must also be used between a target filter and a rights filter, not between 2 filters for the same field. For example, the following is valid: `?filters=rights+ca+(%22CREATE%22)+and+target+eq+%22SYS.OBJAUTH2%22` The following is invalid: 1?filters=rights+ca+(%22CREATE%22)+and+rights+ca+(%SELECT%22)1 + * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getIdentityCertificationItemPermissions: function (certificationId, itemId, filters, limit, offset, count, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.getIdentityCertificationItemPermissions(certificationId, itemId, filters, limit, offset, count, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This API returns a list of pending (`QUEUED` or `IN_PROGRESS`) certification tasks. Any authenticated token can call this API, but only certification tasks you are authorized to review will be returned. + * @summary List of Pending Certification Tasks + * @param {string} [reviewerIdentity] The ID of reviewer identity. *me* indicates the current user. + * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **id**: *eq, in* **targetId**: *eq, in* **type**: *eq, in* + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getPendingCertificationTasks: function (reviewerIdentity, limit, offset, count, filters, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.getPendingCertificationTasks(reviewerIdentity, limit, offset, count, filters, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This API returns a list of reviewers for the certification. A token with ORG_ADMIN or CERT_ADMIN authority is required to call this API. Reviewers for this certification can also call this API. + * @summary List of Reviewers for certification + * @param {string} id The certification ID + * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **id**: *eq, in* **name**: *eq, sw* **email**: *eq, sw* + * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **name, email** + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + listCertificationReviewers: function (id, limit, offset, count, filters, sorters, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.listCertificationReviewers(id, limit, offset, count, filters, sorters, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This API returns a list of access review items for an identity campaign certification. A token with ORG_ADMIN or CERT_ADMIN authority is required to call this API. Reviewers for this certification can also call this API. This API does not support requests for certifications assigned to Governance Groups. + * @summary List of Access Review Items + * @param {string} id The identity campaign certification ID + * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **id**: *eq, in* **type**: *eq* **access.type**: *eq* **completed**: *eq, ne* **identitySummary.id**: *eq, in* **identitySummary.name**: *eq, sw* **access.id**: *eq, in* **access.name**: *eq, sw* **entitlement.sourceName**: *eq, sw* **accessProfile.sourceName**: *eq, sw* + * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **identitySummary.name, access.name, access.type, entitlement.sourceName, accessProfile.sourceName** + * @param {string} [entitlements] Filter results to view access review items that pertain to any of the specified comma-separated entitlement IDs. An error will occur if this param is used with **access-profiles** or **roles** as only one of these query params can be used at a time. + * @param {string} [accessProfiles] Filter results to view access review items that pertain to any of the specified comma-separated access-profle IDs. An error will occur if this param is used with **entitlements** or **roles** as only one of these query params can be used at a time. + * @param {string} [roles] Filter results to view access review items that pertain to any of the specified comma-separated role IDs. An error will occur if this param is used with **entitlements** or **access-profiles** as only one of these query params can be used at a time. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + listIdentityAccessReviewItems: function (id, limit, offset, count, filters, sorters, entitlements, accessProfiles, roles, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.listIdentityAccessReviewItems(id, limit, offset, count, filters, sorters, entitlements, accessProfiles, roles, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This API returns a list of identity campaign certifications that satisfy the given query parameters. Any authenticated token can call this API, but only certifications you are authorized to review will be returned. This API does not support requests for certifications assigned to Governance Groups. + * @summary Identity Campaign Certifications by IDs + * @param {string} [reviewerIdentity] The ID of reviewer identity. *me* indicates the current user. + * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **id**: *eq, in* **campaign.id**: *eq, in* **phase**: *eq* **completed**: *eq, ne* + * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **name, due, signed** + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + listIdentityCertifications: function (reviewerIdentity, limit, offset, count, filters, sorters, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.listIdentityCertifications(reviewerIdentity, limit, offset, count, filters, sorters, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * The API makes a decision to approve or revoke one or more identity campaign certification items. A token with ORG_ADMIN or CERT_ADMIN authority is required to call this API. Reviewers for this certification can also call this API. This API does not support requests for certifications assigned to Governance Groups. + * @summary Decide on a Certification Item + * @param {string} id The ID of the identity campaign certification on which to make decisions + * @param {Array} reviewDecision A non-empty array of decisions to be made. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + makeIdentityDecision: function (id, reviewDecision, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.makeIdentityDecision(id, reviewDecision, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This API reassigns up to 50 identities or items in an identity campaign certification to another reviewer. A token with ORG_ADMIN or CERT_ADMIN authority is required to call this API. Reviewers for this certification can also call this API. This API does not support requests for certifications assigned to Governance Groups. + * @summary Reassign Identities or Items + * @param {string} id The identity campaign certification ID + * @param {ReviewReassign} reviewReassign + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + reassignIdentityCertifications: function (id, reviewReassign, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.reassignIdentityCertifications(id, reviewReassign, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This API finalizes all decisions made on an identity campaign certification and initiates any remediations required. A token with ORG_ADMIN or CERT_ADMIN authority is required to call this API. Reviewers for this certification can also call this API. This API does not support requests for certifications assigned to Governance Groups. + * @summary Finalize Identity Certification Decisions + * @param {string} id The identity campaign certification ID + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + signOffIdentityCertification: function (id, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.signOffIdentityCertification(id, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This API initiates a task to reassign up to 500 identities or items in an identity campaign certification to another reviewer. The `certification-tasks` API can be used to get an updated status on the task and determine when the reassignment is complete. A token with ORG_ADMIN or CERT_ADMIN authority is required to call this API. Reviewers for this certification can also call this API. + * @summary Reassign Certifications Asynchronously + * @param {string} id The identity campaign certification ID + * @param {ReviewReassign} reviewReassign + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + submitReassignCertsAsync: function (id, reviewReassign, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.submitReassignCertsAsync(id, reviewReassign, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + }; + }; + exports.CertificationsApiFp = CertificationsApiFp; + /** + * CertificationsApi - factory interface + * @export + */ + var CertificationsApiFactory = function (configuration, basePath, axios) { + var localVarFp = (0, exports.CertificationsApiFp)(configuration); + return { + /** + * This API returns the certification task for the specified ID. A token with ORG_ADMIN or CERT_ADMIN authority is required to call this API. Reviewers for the specified certification can also call this API. + * @summary Certification Task by ID + * @param {string} id The task ID + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getCertificationTask: function (id, axiosOptions) { + return localVarFp.getCertificationTask(id, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This API returns a single identity campaign certification by its ID. A token with ORG_ADMIN or CERT_ADMIN authority is required to call this API. Reviewers for this certification can also call this API. This API does not support requests for certifications assigned to Governance Groups. + * @summary Identity Certification by ID + * @param {string} id The certification id + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getIdentityCertification: function (id, axiosOptions) { + return localVarFp.getIdentityCertification(id, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This API returns the permissions associated with an entitlement certification item based on the certification item\'s ID. A token with ORG_ADMIN or CERT_ADMIN authority is required to call this API. Reviewers for this certification can also call this API. + * @summary Permissions for Entitlement Certification Item + * @param {string} certificationId The certification ID + * @param {string} itemId The certification item ID + * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **target**: *eq, sw* **rights**: *ca* Supported composite operators: *and, or* All field values (second filter operands) are case-insensitive for this API. Only a single *and* or *or* composite filter operator may be used. It must also be used between a target filter and a rights filter, not between 2 filters for the same field. For example, the following is valid: `?filters=rights+ca+(%22CREATE%22)+and+target+eq+%22SYS.OBJAUTH2%22` The following is invalid: 1?filters=rights+ca+(%22CREATE%22)+and+rights+ca+(%SELECT%22)1 + * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getIdentityCertificationItemPermissions: function (certificationId, itemId, filters, limit, offset, count, axiosOptions) { + return localVarFp.getIdentityCertificationItemPermissions(certificationId, itemId, filters, limit, offset, count, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This API returns a list of pending (`QUEUED` or `IN_PROGRESS`) certification tasks. Any authenticated token can call this API, but only certification tasks you are authorized to review will be returned. + * @summary List of Pending Certification Tasks + * @param {string} [reviewerIdentity] The ID of reviewer identity. *me* indicates the current user. + * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **id**: *eq, in* **targetId**: *eq, in* **type**: *eq, in* + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getPendingCertificationTasks: function (reviewerIdentity, limit, offset, count, filters, axiosOptions) { + return localVarFp.getPendingCertificationTasks(reviewerIdentity, limit, offset, count, filters, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This API returns a list of reviewers for the certification. A token with ORG_ADMIN or CERT_ADMIN authority is required to call this API. Reviewers for this certification can also call this API. + * @summary List of Reviewers for certification + * @param {string} id The certification ID + * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **id**: *eq, in* **name**: *eq, sw* **email**: *eq, sw* + * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **name, email** + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + listCertificationReviewers: function (id, limit, offset, count, filters, sorters, axiosOptions) { + return localVarFp.listCertificationReviewers(id, limit, offset, count, filters, sorters, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This API returns a list of access review items for an identity campaign certification. A token with ORG_ADMIN or CERT_ADMIN authority is required to call this API. Reviewers for this certification can also call this API. This API does not support requests for certifications assigned to Governance Groups. + * @summary List of Access Review Items + * @param {string} id The identity campaign certification ID + * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **id**: *eq, in* **type**: *eq* **access.type**: *eq* **completed**: *eq, ne* **identitySummary.id**: *eq, in* **identitySummary.name**: *eq, sw* **access.id**: *eq, in* **access.name**: *eq, sw* **entitlement.sourceName**: *eq, sw* **accessProfile.sourceName**: *eq, sw* + * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **identitySummary.name, access.name, access.type, entitlement.sourceName, accessProfile.sourceName** + * @param {string} [entitlements] Filter results to view access review items that pertain to any of the specified comma-separated entitlement IDs. An error will occur if this param is used with **access-profiles** or **roles** as only one of these query params can be used at a time. + * @param {string} [accessProfiles] Filter results to view access review items that pertain to any of the specified comma-separated access-profle IDs. An error will occur if this param is used with **entitlements** or **roles** as only one of these query params can be used at a time. + * @param {string} [roles] Filter results to view access review items that pertain to any of the specified comma-separated role IDs. An error will occur if this param is used with **entitlements** or **access-profiles** as only one of these query params can be used at a time. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + listIdentityAccessReviewItems: function (id, limit, offset, count, filters, sorters, entitlements, accessProfiles, roles, axiosOptions) { + return localVarFp.listIdentityAccessReviewItems(id, limit, offset, count, filters, sorters, entitlements, accessProfiles, roles, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This API returns a list of identity campaign certifications that satisfy the given query parameters. Any authenticated token can call this API, but only certifications you are authorized to review will be returned. This API does not support requests for certifications assigned to Governance Groups. + * @summary Identity Campaign Certifications by IDs + * @param {string} [reviewerIdentity] The ID of reviewer identity. *me* indicates the current user. + * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **id**: *eq, in* **campaign.id**: *eq, in* **phase**: *eq* **completed**: *eq, ne* + * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **name, due, signed** + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + listIdentityCertifications: function (reviewerIdentity, limit, offset, count, filters, sorters, axiosOptions) { + return localVarFp.listIdentityCertifications(reviewerIdentity, limit, offset, count, filters, sorters, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * The API makes a decision to approve or revoke one or more identity campaign certification items. A token with ORG_ADMIN or CERT_ADMIN authority is required to call this API. Reviewers for this certification can also call this API. This API does not support requests for certifications assigned to Governance Groups. + * @summary Decide on a Certification Item + * @param {string} id The ID of the identity campaign certification on which to make decisions + * @param {Array} reviewDecision A non-empty array of decisions to be made. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + makeIdentityDecision: function (id, reviewDecision, axiosOptions) { + return localVarFp.makeIdentityDecision(id, reviewDecision, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This API reassigns up to 50 identities or items in an identity campaign certification to another reviewer. A token with ORG_ADMIN or CERT_ADMIN authority is required to call this API. Reviewers for this certification can also call this API. This API does not support requests for certifications assigned to Governance Groups. + * @summary Reassign Identities or Items + * @param {string} id The identity campaign certification ID + * @param {ReviewReassign} reviewReassign + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + reassignIdentityCertifications: function (id, reviewReassign, axiosOptions) { + return localVarFp.reassignIdentityCertifications(id, reviewReassign, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This API finalizes all decisions made on an identity campaign certification and initiates any remediations required. A token with ORG_ADMIN or CERT_ADMIN authority is required to call this API. Reviewers for this certification can also call this API. This API does not support requests for certifications assigned to Governance Groups. + * @summary Finalize Identity Certification Decisions + * @param {string} id The identity campaign certification ID + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + signOffIdentityCertification: function (id, axiosOptions) { + return localVarFp.signOffIdentityCertification(id, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This API initiates a task to reassign up to 500 identities or items in an identity campaign certification to another reviewer. The `certification-tasks` API can be used to get an updated status on the task and determine when the reassignment is complete. A token with ORG_ADMIN or CERT_ADMIN authority is required to call this API. Reviewers for this certification can also call this API. + * @summary Reassign Certifications Asynchronously + * @param {string} id The identity campaign certification ID + * @param {ReviewReassign} reviewReassign + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + submitReassignCertsAsync: function (id, reviewReassign, axiosOptions) { + return localVarFp.submitReassignCertsAsync(id, reviewReassign, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + }; + }; + exports.CertificationsApiFactory = CertificationsApiFactory; + /** + * CertificationsApi - object-oriented interface + * @export + * @class CertificationsApi + * @extends {BaseAPI} + */ + var CertificationsApi = /** @class */ (function (_super) { + __extends(CertificationsApi, _super); + function CertificationsApi() { + return _super !== null && _super.apply(this, arguments) || this; + } + /** + * This API returns the certification task for the specified ID. A token with ORG_ADMIN or CERT_ADMIN authority is required to call this API. Reviewers for the specified certification can also call this API. + * @summary Certification Task by ID + * @param {CertificationsApiGetCertificationTaskRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof CertificationsApi + */ + CertificationsApi.prototype.getCertificationTask = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.CertificationsApiFp)(this.configuration).getCertificationTask(requestParameters.id, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This API returns a single identity campaign certification by its ID. A token with ORG_ADMIN or CERT_ADMIN authority is required to call this API. Reviewers for this certification can also call this API. This API does not support requests for certifications assigned to Governance Groups. + * @summary Identity Certification by ID + * @param {CertificationsApiGetIdentityCertificationRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof CertificationsApi + */ + CertificationsApi.prototype.getIdentityCertification = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.CertificationsApiFp)(this.configuration).getIdentityCertification(requestParameters.id, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This API returns the permissions associated with an entitlement certification item based on the certification item\'s ID. A token with ORG_ADMIN or CERT_ADMIN authority is required to call this API. Reviewers for this certification can also call this API. + * @summary Permissions for Entitlement Certification Item + * @param {CertificationsApiGetIdentityCertificationItemPermissionsRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof CertificationsApi + */ + CertificationsApi.prototype.getIdentityCertificationItemPermissions = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.CertificationsApiFp)(this.configuration).getIdentityCertificationItemPermissions(requestParameters.certificationId, requestParameters.itemId, requestParameters.filters, requestParameters.limit, requestParameters.offset, requestParameters.count, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This API returns a list of pending (`QUEUED` or `IN_PROGRESS`) certification tasks. Any authenticated token can call this API, but only certification tasks you are authorized to review will be returned. + * @summary List of Pending Certification Tasks + * @param {CertificationsApiGetPendingCertificationTasksRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof CertificationsApi + */ + CertificationsApi.prototype.getPendingCertificationTasks = function (requestParameters, axiosOptions) { + var _this = this; + if (requestParameters === void 0) { requestParameters = {}; } + return (0, exports.CertificationsApiFp)(this.configuration).getPendingCertificationTasks(requestParameters.reviewerIdentity, requestParameters.limit, requestParameters.offset, requestParameters.count, requestParameters.filters, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This API returns a list of reviewers for the certification. A token with ORG_ADMIN or CERT_ADMIN authority is required to call this API. Reviewers for this certification can also call this API. + * @summary List of Reviewers for certification + * @param {CertificationsApiListCertificationReviewersRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof CertificationsApi + */ + CertificationsApi.prototype.listCertificationReviewers = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.CertificationsApiFp)(this.configuration).listCertificationReviewers(requestParameters.id, requestParameters.limit, requestParameters.offset, requestParameters.count, requestParameters.filters, requestParameters.sorters, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This API returns a list of access review items for an identity campaign certification. A token with ORG_ADMIN or CERT_ADMIN authority is required to call this API. Reviewers for this certification can also call this API. This API does not support requests for certifications assigned to Governance Groups. + * @summary List of Access Review Items + * @param {CertificationsApiListIdentityAccessReviewItemsRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof CertificationsApi + */ + CertificationsApi.prototype.listIdentityAccessReviewItems = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.CertificationsApiFp)(this.configuration).listIdentityAccessReviewItems(requestParameters.id, requestParameters.limit, requestParameters.offset, requestParameters.count, requestParameters.filters, requestParameters.sorters, requestParameters.entitlements, requestParameters.accessProfiles, requestParameters.roles, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This API returns a list of identity campaign certifications that satisfy the given query parameters. Any authenticated token can call this API, but only certifications you are authorized to review will be returned. This API does not support requests for certifications assigned to Governance Groups. + * @summary Identity Campaign Certifications by IDs + * @param {CertificationsApiListIdentityCertificationsRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof CertificationsApi + */ + CertificationsApi.prototype.listIdentityCertifications = function (requestParameters, axiosOptions) { + var _this = this; + if (requestParameters === void 0) { requestParameters = {}; } + return (0, exports.CertificationsApiFp)(this.configuration).listIdentityCertifications(requestParameters.reviewerIdentity, requestParameters.limit, requestParameters.offset, requestParameters.count, requestParameters.filters, requestParameters.sorters, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * The API makes a decision to approve or revoke one or more identity campaign certification items. A token with ORG_ADMIN or CERT_ADMIN authority is required to call this API. Reviewers for this certification can also call this API. This API does not support requests for certifications assigned to Governance Groups. + * @summary Decide on a Certification Item + * @param {CertificationsApiMakeIdentityDecisionRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof CertificationsApi + */ + CertificationsApi.prototype.makeIdentityDecision = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.CertificationsApiFp)(this.configuration).makeIdentityDecision(requestParameters.id, requestParameters.reviewDecision, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This API reassigns up to 50 identities or items in an identity campaign certification to another reviewer. A token with ORG_ADMIN or CERT_ADMIN authority is required to call this API. Reviewers for this certification can also call this API. This API does not support requests for certifications assigned to Governance Groups. + * @summary Reassign Identities or Items + * @param {CertificationsApiReassignIdentityCertificationsRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof CertificationsApi + */ + CertificationsApi.prototype.reassignIdentityCertifications = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.CertificationsApiFp)(this.configuration).reassignIdentityCertifications(requestParameters.id, requestParameters.reviewReassign, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This API finalizes all decisions made on an identity campaign certification and initiates any remediations required. A token with ORG_ADMIN or CERT_ADMIN authority is required to call this API. Reviewers for this certification can also call this API. This API does not support requests for certifications assigned to Governance Groups. + * @summary Finalize Identity Certification Decisions + * @param {CertificationsApiSignOffIdentityCertificationRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof CertificationsApi + */ + CertificationsApi.prototype.signOffIdentityCertification = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.CertificationsApiFp)(this.configuration).signOffIdentityCertification(requestParameters.id, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This API initiates a task to reassign up to 500 identities or items in an identity campaign certification to another reviewer. The `certification-tasks` API can be used to get an updated status on the task and determine when the reassignment is complete. A token with ORG_ADMIN or CERT_ADMIN authority is required to call this API. Reviewers for this certification can also call this API. + * @summary Reassign Certifications Asynchronously + * @param {CertificationsApiSubmitReassignCertsAsyncRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof CertificationsApi + */ + CertificationsApi.prototype.submitReassignCertsAsync = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.CertificationsApiFp)(this.configuration).submitReassignCertsAsync(requestParameters.id, requestParameters.reviewReassign, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + return CertificationsApi; + }(base_1.BaseAPI)); + exports.CertificationsApi = CertificationsApi; + /** + * GlobalTenantSecuritySettingsApi - axios parameter creator + * @export + */ + var GlobalTenantSecuritySettingsApiAxiosParamCreator = function (configuration) { + var _this = this; + return { + /** + * This API returns the details of an org\'s network auth configuration. Requires security scope of: \'sp:auth-org:create\' + * @summary Create security network configuration. + * @param {NetworkConfiguration} networkConfiguration Network configuration creation request body. The following constraints ensure the request body conforms to certain logical guidelines, which are: 1. Each string element in the range array must be a valid ip address or ip subnet mask. 2. Each string element in the geolocation array must be 2 characters, and they can only be uppercase letters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + createAuthOrgNetworkConfig: function (networkConfiguration, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'networkConfiguration' is not null or undefined + (0, common_1.assertParamExists)('createAuthOrgNetworkConfig', 'networkConfiguration', networkConfiguration); + localVarPath = "/auth-org/network-config"; + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + localVarHeaderParameter['Content-Type'] = 'application/json'; + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(networkConfiguration, localVarRequestOptions, configuration); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This API returns the details of an org\'s network auth configuration. Requires security scope of: \'sp:auth-org:read\' + * @summary Get security network configuration. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getAuthOrgNetworkConfig: function (axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + localVarPath = "/auth-org/network-config"; + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This API updates an existing network configuration for an org using PATCH Requires security scope of: \'sp:auth-org:update\' + * @summary Update security network configuration. + * @param {Array} jsonPatchOperation A list of auth org network configuration update operations according to the [JSON Patch](https://tools.ietf.org/html/rfc6902) standard. Ensures that the patched Network Config conforms to certain logical guidelines, which are: 1. Each string element in the range array must be a valid ip address or ip subnet mask. 2. Each string element in the geolocation array must be 2 characters, and they can only be uppercase letters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + patchAuthOrgNetworkConfig: function (jsonPatchOperation, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'jsonPatchOperation' is not null or undefined + (0, common_1.assertParamExists)('patchAuthOrgNetworkConfig', 'jsonPatchOperation', jsonPatchOperation); + localVarPath = "/auth-org/network-config"; + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'PATCH' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + localVarHeaderParameter['Content-Type'] = 'application/json-patch+json'; + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(jsonPatchOperation, localVarRequestOptions, configuration); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + }; + }; + exports.GlobalTenantSecuritySettingsApiAxiosParamCreator = GlobalTenantSecuritySettingsApiAxiosParamCreator; + /** + * GlobalTenantSecuritySettingsApi - functional programming interface + * @export + */ + var GlobalTenantSecuritySettingsApiFp = function (configuration) { + var localVarAxiosParamCreator = (0, exports.GlobalTenantSecuritySettingsApiAxiosParamCreator)(configuration); + return { + /** + * This API returns the details of an org\'s network auth configuration. Requires security scope of: \'sp:auth-org:create\' + * @summary Create security network configuration. + * @param {NetworkConfiguration} networkConfiguration Network configuration creation request body. The following constraints ensure the request body conforms to certain logical guidelines, which are: 1. Each string element in the range array must be a valid ip address or ip subnet mask. 2. Each string element in the geolocation array must be 2 characters, and they can only be uppercase letters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + createAuthOrgNetworkConfig: function (networkConfiguration, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.createAuthOrgNetworkConfig(networkConfiguration, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This API returns the details of an org\'s network auth configuration. Requires security scope of: \'sp:auth-org:read\' + * @summary Get security network configuration. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getAuthOrgNetworkConfig: function (axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.getAuthOrgNetworkConfig(axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This API updates an existing network configuration for an org using PATCH Requires security scope of: \'sp:auth-org:update\' + * @summary Update security network configuration. + * @param {Array} jsonPatchOperation A list of auth org network configuration update operations according to the [JSON Patch](https://tools.ietf.org/html/rfc6902) standard. Ensures that the patched Network Config conforms to certain logical guidelines, which are: 1. Each string element in the range array must be a valid ip address or ip subnet mask. 2. Each string element in the geolocation array must be 2 characters, and they can only be uppercase letters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + patchAuthOrgNetworkConfig: function (jsonPatchOperation, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.patchAuthOrgNetworkConfig(jsonPatchOperation, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + }; + }; + exports.GlobalTenantSecuritySettingsApiFp = GlobalTenantSecuritySettingsApiFp; + /** + * GlobalTenantSecuritySettingsApi - factory interface + * @export + */ + var GlobalTenantSecuritySettingsApiFactory = function (configuration, basePath, axios) { + var localVarFp = (0, exports.GlobalTenantSecuritySettingsApiFp)(configuration); + return { + /** + * This API returns the details of an org\'s network auth configuration. Requires security scope of: \'sp:auth-org:create\' + * @summary Create security network configuration. + * @param {NetworkConfiguration} networkConfiguration Network configuration creation request body. The following constraints ensure the request body conforms to certain logical guidelines, which are: 1. Each string element in the range array must be a valid ip address or ip subnet mask. 2. Each string element in the geolocation array must be 2 characters, and they can only be uppercase letters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + createAuthOrgNetworkConfig: function (networkConfiguration, axiosOptions) { + return localVarFp.createAuthOrgNetworkConfig(networkConfiguration, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This API returns the details of an org\'s network auth configuration. Requires security scope of: \'sp:auth-org:read\' + * @summary Get security network configuration. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getAuthOrgNetworkConfig: function (axiosOptions) { + return localVarFp.getAuthOrgNetworkConfig(axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This API updates an existing network configuration for an org using PATCH Requires security scope of: \'sp:auth-org:update\' + * @summary Update security network configuration. + * @param {Array} jsonPatchOperation A list of auth org network configuration update operations according to the [JSON Patch](https://tools.ietf.org/html/rfc6902) standard. Ensures that the patched Network Config conforms to certain logical guidelines, which are: 1. Each string element in the range array must be a valid ip address or ip subnet mask. 2. Each string element in the geolocation array must be 2 characters, and they can only be uppercase letters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + patchAuthOrgNetworkConfig: function (jsonPatchOperation, axiosOptions) { + return localVarFp.patchAuthOrgNetworkConfig(jsonPatchOperation, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + }; + }; + exports.GlobalTenantSecuritySettingsApiFactory = GlobalTenantSecuritySettingsApiFactory; + /** + * GlobalTenantSecuritySettingsApi - object-oriented interface + * @export + * @class GlobalTenantSecuritySettingsApi + * @extends {BaseAPI} + */ + var GlobalTenantSecuritySettingsApi = /** @class */ (function (_super) { + __extends(GlobalTenantSecuritySettingsApi, _super); + function GlobalTenantSecuritySettingsApi() { + return _super !== null && _super.apply(this, arguments) || this; + } + /** + * This API returns the details of an org\'s network auth configuration. Requires security scope of: \'sp:auth-org:create\' + * @summary Create security network configuration. + * @param {GlobalTenantSecuritySettingsApiCreateAuthOrgNetworkConfigRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof GlobalTenantSecuritySettingsApi + */ + GlobalTenantSecuritySettingsApi.prototype.createAuthOrgNetworkConfig = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.GlobalTenantSecuritySettingsApiFp)(this.configuration).createAuthOrgNetworkConfig(requestParameters.networkConfiguration, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This API returns the details of an org\'s network auth configuration. Requires security scope of: \'sp:auth-org:read\' + * @summary Get security network configuration. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof GlobalTenantSecuritySettingsApi + */ + GlobalTenantSecuritySettingsApi.prototype.getAuthOrgNetworkConfig = function (axiosOptions) { + var _this = this; + return (0, exports.GlobalTenantSecuritySettingsApiFp)(this.configuration).getAuthOrgNetworkConfig(axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This API updates an existing network configuration for an org using PATCH Requires security scope of: \'sp:auth-org:update\' + * @summary Update security network configuration. + * @param {GlobalTenantSecuritySettingsApiPatchAuthOrgNetworkConfigRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof GlobalTenantSecuritySettingsApi + */ + GlobalTenantSecuritySettingsApi.prototype.patchAuthOrgNetworkConfig = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.GlobalTenantSecuritySettingsApiFp)(this.configuration).patchAuthOrgNetworkConfig(requestParameters.jsonPatchOperation, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + return GlobalTenantSecuritySettingsApi; + }(base_1.BaseAPI)); + exports.GlobalTenantSecuritySettingsApi = GlobalTenantSecuritySettingsApi; + /** + * IdentityProfilesApi - axios parameter creator + * @export + */ + var IdentityProfilesApiAxiosParamCreator = function (configuration) { + var _this = this; + return { + /** + * This deletes an Identity Profile based on ID. On success, this endpoint will return a reference to the bulk delete task result. A token with ORG_ADMIN authority is required to call this API. The following rights are required to access this endpoint: idn:identity-profile:delete + * @summary Delete an Identity Profile + * @param {string} identityProfileId The Identity Profile ID. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + deleteIdentityProfile: function (identityProfileId, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'identityProfileId' is not null or undefined + (0, common_1.assertParamExists)('deleteIdentityProfile', 'identityProfileId', identityProfileId); + localVarPath = "/identity-profiles/{identity-profile-id}" + .replace("{".concat("identity-profile-id", "}"), encodeURIComponent(String(identityProfileId))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'DELETE' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This deletes multiple Identity Profiles via a list of supplied IDs. On success, this endpoint will return a reference to the bulk delete task result. A token with ORG_ADMIN authority is required to call this API. The following rights are required to access this endpoint: idn:identity-profile:delete + * @summary Delete Identity Profiles + * @param {Array} requestBody Identity Profile bulk delete request body. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + deleteIdentityProfiles: function (requestBody, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'requestBody' is not null or undefined + (0, common_1.assertParamExists)('deleteIdentityProfiles', 'requestBody', requestBody); + localVarPath = "/identity-profiles/bulk-delete"; + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + localVarHeaderParameter['Content-Type'] = 'application/json'; + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(requestBody, localVarRequestOptions, configuration); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This exports existing identity profiles in the format specified by the sp-config service. + * @summary Export Identity Profiles + * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **id**: *eq, ne* **name**: *eq, ne* **priority**: *eq, ne* + * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **id, name, priority** + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + exportIdentityProfiles: function (limit, offset, count, filters, sorters, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + localVarPath = "/identity-profiles/export"; + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + if (limit !== undefined) { + localVarQueryParameter['limit'] = limit; + } + if (offset !== undefined) { + localVarQueryParameter['offset'] = offset; + } + if (count !== undefined) { + localVarQueryParameter['count'] = count; + } + if (filters !== undefined) { + localVarQueryParameter['filters'] = filters; + } + if (sorters !== undefined) { + localVarQueryParameter['sorters'] = sorters; + } + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This returns the default identity attribute config. A token with ORG_ADMIN authority is required to call this API to get the default identity attribute config. + * @summary Get default Identity Attribute Config + * @param {string} identityProfileId The Identity Profile ID. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getDefaultIdentityAttributeConfig: function (identityProfileId, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'identityProfileId' is not null or undefined + (0, common_1.assertParamExists)('getDefaultIdentityAttributeConfig', 'identityProfileId', identityProfileId); + localVarPath = "/identity-profiles/{identity-profile-id}/default-identity-attribute-config" + .replace("{".concat("identity-profile-id", "}"), encodeURIComponent(String(identityProfileId))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This returns a single Identity Profile based on ID. A token with ORG_ADMIN or API authority is required to call this API. + * @summary Get single Identity Profile + * @param {string} identityProfileId The Identity Profile ID. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getIdentityProfile: function (identityProfileId, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'identityProfileId' is not null or undefined + (0, common_1.assertParamExists)('getIdentityProfile', 'identityProfileId', identityProfileId); + localVarPath = "/identity-profiles/{identity-profile-id}" + .replace("{".concat("identity-profile-id", "}"), encodeURIComponent(String(identityProfileId))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This imports previously exported identity profiles. + * @summary Import Identity Profiles + * @param {Array} identityProfileExportedObject Previously exported Identity Profiles. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + importIdentityProfiles: function (identityProfileExportedObject, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'identityProfileExportedObject' is not null or undefined + (0, common_1.assertParamExists)('importIdentityProfiles', 'identityProfileExportedObject', identityProfileExportedObject); + localVarPath = "/identity-profiles/import"; + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + localVarHeaderParameter['Content-Type'] = 'application/json'; + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(identityProfileExportedObject, localVarRequestOptions, configuration); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This returns a list of Identity Profiles based on the specified query parameters. A token with ORG_ADMIN or API authority is required to call this API to get a list of Identity Profiles. + * @summary Identity Profiles List + * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **id**: *eq, ne, co, ge, gt, in, le, lt, isnull, sw* **name**: *eq, ne, co, in, le, lt, isnull, sw* **priority**: *eq, ne* + * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **id, name, priority, created, modified, owner.id, owner.name** + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + listIdentityProfiles: function (limit, offset, count, filters, sorters, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + localVarPath = "/identity-profiles"; + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + if (limit !== undefined) { + localVarQueryParameter['limit'] = limit; + } + if (offset !== undefined) { + localVarQueryParameter['offset'] = offset; + } + if (count !== undefined) { + localVarQueryParameter['count'] = count; + } + if (filters !== undefined) { + localVarQueryParameter['filters'] = filters; + } + if (sorters !== undefined) { + localVarQueryParameter['sorters'] = sorters; + } + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * Process identities under the profile A token with ORG_ADMIN authority is required to call this API. + * @summary Process identities under profile + * @param {string} identityProfileId The Identity Profile ID to be processed + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + syncIdentityProfile: function (identityProfileId, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'identityProfileId' is not null or undefined + (0, common_1.assertParamExists)('syncIdentityProfile', 'identityProfileId', identityProfileId); + localVarPath = "/identity-profiles/{identity-profile-id}/process-identities" + .replace("{".concat("identity-profile-id", "}"), encodeURIComponent(String(identityProfileId))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + }; + }; + exports.IdentityProfilesApiAxiosParamCreator = IdentityProfilesApiAxiosParamCreator; + /** + * IdentityProfilesApi - functional programming interface + * @export + */ + var IdentityProfilesApiFp = function (configuration) { + var localVarAxiosParamCreator = (0, exports.IdentityProfilesApiAxiosParamCreator)(configuration); + return { + /** + * This deletes an Identity Profile based on ID. On success, this endpoint will return a reference to the bulk delete task result. A token with ORG_ADMIN authority is required to call this API. The following rights are required to access this endpoint: idn:identity-profile:delete + * @summary Delete an Identity Profile + * @param {string} identityProfileId The Identity Profile ID. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + deleteIdentityProfile: function (identityProfileId, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.deleteIdentityProfile(identityProfileId, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This deletes multiple Identity Profiles via a list of supplied IDs. On success, this endpoint will return a reference to the bulk delete task result. A token with ORG_ADMIN authority is required to call this API. The following rights are required to access this endpoint: idn:identity-profile:delete + * @summary Delete Identity Profiles + * @param {Array} requestBody Identity Profile bulk delete request body. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + deleteIdentityProfiles: function (requestBody, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.deleteIdentityProfiles(requestBody, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This exports existing identity profiles in the format specified by the sp-config service. + * @summary Export Identity Profiles + * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **id**: *eq, ne* **name**: *eq, ne* **priority**: *eq, ne* + * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **id, name, priority** + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + exportIdentityProfiles: function (limit, offset, count, filters, sorters, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.exportIdentityProfiles(limit, offset, count, filters, sorters, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This returns the default identity attribute config. A token with ORG_ADMIN authority is required to call this API to get the default identity attribute config. + * @summary Get default Identity Attribute Config + * @param {string} identityProfileId The Identity Profile ID. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getDefaultIdentityAttributeConfig: function (identityProfileId, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.getDefaultIdentityAttributeConfig(identityProfileId, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This returns a single Identity Profile based on ID. A token with ORG_ADMIN or API authority is required to call this API. + * @summary Get single Identity Profile + * @param {string} identityProfileId The Identity Profile ID. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getIdentityProfile: function (identityProfileId, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.getIdentityProfile(identityProfileId, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This imports previously exported identity profiles. + * @summary Import Identity Profiles + * @param {Array} identityProfileExportedObject Previously exported Identity Profiles. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + importIdentityProfiles: function (identityProfileExportedObject, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.importIdentityProfiles(identityProfileExportedObject, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This returns a list of Identity Profiles based on the specified query parameters. A token with ORG_ADMIN or API authority is required to call this API to get a list of Identity Profiles. + * @summary Identity Profiles List + * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **id**: *eq, ne, co, ge, gt, in, le, lt, isnull, sw* **name**: *eq, ne, co, in, le, lt, isnull, sw* **priority**: *eq, ne* + * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **id, name, priority, created, modified, owner.id, owner.name** + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + listIdentityProfiles: function (limit, offset, count, filters, sorters, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.listIdentityProfiles(limit, offset, count, filters, sorters, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * Process identities under the profile A token with ORG_ADMIN authority is required to call this API. + * @summary Process identities under profile + * @param {string} identityProfileId The Identity Profile ID to be processed + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + syncIdentityProfile: function (identityProfileId, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.syncIdentityProfile(identityProfileId, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + }; + }; + exports.IdentityProfilesApiFp = IdentityProfilesApiFp; + /** + * IdentityProfilesApi - factory interface + * @export + */ + var IdentityProfilesApiFactory = function (configuration, basePath, axios) { + var localVarFp = (0, exports.IdentityProfilesApiFp)(configuration); + return { + /** + * This deletes an Identity Profile based on ID. On success, this endpoint will return a reference to the bulk delete task result. A token with ORG_ADMIN authority is required to call this API. The following rights are required to access this endpoint: idn:identity-profile:delete + * @summary Delete an Identity Profile + * @param {string} identityProfileId The Identity Profile ID. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + deleteIdentityProfile: function (identityProfileId, axiosOptions) { + return localVarFp.deleteIdentityProfile(identityProfileId, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This deletes multiple Identity Profiles via a list of supplied IDs. On success, this endpoint will return a reference to the bulk delete task result. A token with ORG_ADMIN authority is required to call this API. The following rights are required to access this endpoint: idn:identity-profile:delete + * @summary Delete Identity Profiles + * @param {Array} requestBody Identity Profile bulk delete request body. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + deleteIdentityProfiles: function (requestBody, axiosOptions) { + return localVarFp.deleteIdentityProfiles(requestBody, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This exports existing identity profiles in the format specified by the sp-config service. + * @summary Export Identity Profiles + * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **id**: *eq, ne* **name**: *eq, ne* **priority**: *eq, ne* + * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **id, name, priority** + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + exportIdentityProfiles: function (limit, offset, count, filters, sorters, axiosOptions) { + return localVarFp.exportIdentityProfiles(limit, offset, count, filters, sorters, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This returns the default identity attribute config. A token with ORG_ADMIN authority is required to call this API to get the default identity attribute config. + * @summary Get default Identity Attribute Config + * @param {string} identityProfileId The Identity Profile ID. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getDefaultIdentityAttributeConfig: function (identityProfileId, axiosOptions) { + return localVarFp.getDefaultIdentityAttributeConfig(identityProfileId, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This returns a single Identity Profile based on ID. A token with ORG_ADMIN or API authority is required to call this API. + * @summary Get single Identity Profile + * @param {string} identityProfileId The Identity Profile ID. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getIdentityProfile: function (identityProfileId, axiosOptions) { + return localVarFp.getIdentityProfile(identityProfileId, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This imports previously exported identity profiles. + * @summary Import Identity Profiles + * @param {Array} identityProfileExportedObject Previously exported Identity Profiles. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + importIdentityProfiles: function (identityProfileExportedObject, axiosOptions) { + return localVarFp.importIdentityProfiles(identityProfileExportedObject, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This returns a list of Identity Profiles based on the specified query parameters. A token with ORG_ADMIN or API authority is required to call this API to get a list of Identity Profiles. + * @summary Identity Profiles List + * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **id**: *eq, ne, co, ge, gt, in, le, lt, isnull, sw* **name**: *eq, ne, co, in, le, lt, isnull, sw* **priority**: *eq, ne* + * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **id, name, priority, created, modified, owner.id, owner.name** + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + listIdentityProfiles: function (limit, offset, count, filters, sorters, axiosOptions) { + return localVarFp.listIdentityProfiles(limit, offset, count, filters, sorters, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * Process identities under the profile A token with ORG_ADMIN authority is required to call this API. + * @summary Process identities under profile + * @param {string} identityProfileId The Identity Profile ID to be processed + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + syncIdentityProfile: function (identityProfileId, axiosOptions) { + return localVarFp.syncIdentityProfile(identityProfileId, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + }; + }; + exports.IdentityProfilesApiFactory = IdentityProfilesApiFactory; + /** + * IdentityProfilesApi - object-oriented interface + * @export + * @class IdentityProfilesApi + * @extends {BaseAPI} + */ + var IdentityProfilesApi = /** @class */ (function (_super) { + __extends(IdentityProfilesApi, _super); + function IdentityProfilesApi() { + return _super !== null && _super.apply(this, arguments) || this; + } + /** + * This deletes an Identity Profile based on ID. On success, this endpoint will return a reference to the bulk delete task result. A token with ORG_ADMIN authority is required to call this API. The following rights are required to access this endpoint: idn:identity-profile:delete + * @summary Delete an Identity Profile + * @param {IdentityProfilesApiDeleteIdentityProfileRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof IdentityProfilesApi + */ + IdentityProfilesApi.prototype.deleteIdentityProfile = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.IdentityProfilesApiFp)(this.configuration).deleteIdentityProfile(requestParameters.identityProfileId, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This deletes multiple Identity Profiles via a list of supplied IDs. On success, this endpoint will return a reference to the bulk delete task result. A token with ORG_ADMIN authority is required to call this API. The following rights are required to access this endpoint: idn:identity-profile:delete + * @summary Delete Identity Profiles + * @param {IdentityProfilesApiDeleteIdentityProfilesRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof IdentityProfilesApi + */ + IdentityProfilesApi.prototype.deleteIdentityProfiles = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.IdentityProfilesApiFp)(this.configuration).deleteIdentityProfiles(requestParameters.requestBody, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This exports existing identity profiles in the format specified by the sp-config service. + * @summary Export Identity Profiles + * @param {IdentityProfilesApiExportIdentityProfilesRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof IdentityProfilesApi + */ + IdentityProfilesApi.prototype.exportIdentityProfiles = function (requestParameters, axiosOptions) { + var _this = this; + if (requestParameters === void 0) { requestParameters = {}; } + return (0, exports.IdentityProfilesApiFp)(this.configuration).exportIdentityProfiles(requestParameters.limit, requestParameters.offset, requestParameters.count, requestParameters.filters, requestParameters.sorters, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This returns the default identity attribute config. A token with ORG_ADMIN authority is required to call this API to get the default identity attribute config. + * @summary Get default Identity Attribute Config + * @param {IdentityProfilesApiGetDefaultIdentityAttributeConfigRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof IdentityProfilesApi + */ + IdentityProfilesApi.prototype.getDefaultIdentityAttributeConfig = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.IdentityProfilesApiFp)(this.configuration).getDefaultIdentityAttributeConfig(requestParameters.identityProfileId, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This returns a single Identity Profile based on ID. A token with ORG_ADMIN or API authority is required to call this API. + * @summary Get single Identity Profile + * @param {IdentityProfilesApiGetIdentityProfileRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof IdentityProfilesApi + */ + IdentityProfilesApi.prototype.getIdentityProfile = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.IdentityProfilesApiFp)(this.configuration).getIdentityProfile(requestParameters.identityProfileId, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This imports previously exported identity profiles. + * @summary Import Identity Profiles + * @param {IdentityProfilesApiImportIdentityProfilesRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof IdentityProfilesApi + */ + IdentityProfilesApi.prototype.importIdentityProfiles = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.IdentityProfilesApiFp)(this.configuration).importIdentityProfiles(requestParameters.identityProfileExportedObject, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This returns a list of Identity Profiles based on the specified query parameters. A token with ORG_ADMIN or API authority is required to call this API to get a list of Identity Profiles. + * @summary Identity Profiles List + * @param {IdentityProfilesApiListIdentityProfilesRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof IdentityProfilesApi + */ + IdentityProfilesApi.prototype.listIdentityProfiles = function (requestParameters, axiosOptions) { + var _this = this; + if (requestParameters === void 0) { requestParameters = {}; } + return (0, exports.IdentityProfilesApiFp)(this.configuration).listIdentityProfiles(requestParameters.limit, requestParameters.offset, requestParameters.count, requestParameters.filters, requestParameters.sorters, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * Process identities under the profile A token with ORG_ADMIN authority is required to call this API. + * @summary Process identities under profile + * @param {IdentityProfilesApiSyncIdentityProfileRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof IdentityProfilesApi + */ + IdentityProfilesApi.prototype.syncIdentityProfile = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.IdentityProfilesApiFp)(this.configuration).syncIdentityProfile(requestParameters.identityProfileId, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + return IdentityProfilesApi; + }(base_1.BaseAPI)); + exports.IdentityProfilesApi = IdentityProfilesApi; + /** + * LifecycleStatesApi - axios parameter creator + * @export + */ + var LifecycleStatesApiAxiosParamCreator = function (configuration) { + var _this = this; + return { + /** + * This API creates a new Lifecycle State. A token with ORG_ADMIN or API authority is required to call this API. + * @summary Create Lifecycle State + * @param {string} identityProfileId Identity Profile ID + * @param {LifecycleState} lifecycleState Lifecycle State + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + createLifecycleState: function (identityProfileId, lifecycleState, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'identityProfileId' is not null or undefined + (0, common_1.assertParamExists)('createLifecycleState', 'identityProfileId', identityProfileId); + // verify required parameter 'lifecycleState' is not null or undefined + (0, common_1.assertParamExists)('createLifecycleState', 'lifecycleState', lifecycleState); + localVarPath = "/identity-profiles/{identity-profile-id}/lifecycle-states" + .replace("{".concat("identity-profile-id", "}"), encodeURIComponent(String(identityProfileId))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + localVarHeaderParameter['Content-Type'] = 'application/json'; + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(lifecycleState, localVarRequestOptions, configuration); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This endpoint deletes the Lifecycle State using its ID. A token with API, or ORG_ADMIN authority is required to call this API. + * @summary Delete Lifecycle State by ID + * @param {string} identityProfileId Identity Profile ID + * @param {string} lifecycleStateId Lifecycle State ID + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + deleteLifecycleState: function (identityProfileId, lifecycleStateId, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'identityProfileId' is not null or undefined + (0, common_1.assertParamExists)('deleteLifecycleState', 'identityProfileId', identityProfileId); + // verify required parameter 'lifecycleStateId' is not null or undefined + (0, common_1.assertParamExists)('deleteLifecycleState', 'lifecycleStateId', lifecycleStateId); + localVarPath = "/identity-profiles/{identity-profile-id}/lifecycle-states/{lifecycle-state-id}" + .replace("{".concat("identity-profile-id", "}"), encodeURIComponent(String(identityProfileId))) + .replace("{".concat("lifecycle-state-id", "}"), encodeURIComponent(String(lifecycleStateId))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'DELETE' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This endpoint retrieves a Lifecycle State. A token with ORG_ADMIN or API authority is required to call this API. + * @summary Retrieves Lifecycle State + * @param {string} identityProfileId Identity Profile ID + * @param {string} lifecycleStateId Lifecycle State ID + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getLifecycleState: function (identityProfileId, lifecycleStateId, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'identityProfileId' is not null or undefined + (0, common_1.assertParamExists)('getLifecycleState', 'identityProfileId', identityProfileId); + // verify required parameter 'lifecycleStateId' is not null or undefined + (0, common_1.assertParamExists)('getLifecycleState', 'lifecycleStateId', lifecycleStateId); + localVarPath = "/identity-profiles/{identity-profile-id}/lifecycle-states/{lifecycle-state-id}" + .replace("{".concat("identity-profile-id", "}"), encodeURIComponent(String(identityProfileId))) + .replace("{".concat("lifecycle-state-id", "}"), encodeURIComponent(String(lifecycleStateId))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This end-point lists all the LifecycleStates associated with IdentityProfiles. A token with API, or ORG_ADMIN authority is required to call this API. + * @summary Lists LifecycleStates + * @param {string} identityProfileId The IdentityProfile id + * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **created, modified** + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + listLifecycleStates: function (identityProfileId, limit, offset, count, sorters, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'identityProfileId' is not null or undefined + (0, common_1.assertParamExists)('listLifecycleStates', 'identityProfileId', identityProfileId); + localVarPath = "/identity-profiles/{identity-profile-id}/lifecycle-states" + .replace("{".concat("identity-profile-id", "}"), encodeURIComponent(String(identityProfileId))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + if (limit !== undefined) { + localVarQueryParameter['limit'] = limit; + } + if (offset !== undefined) { + localVarQueryParameter['offset'] = offset; + } + if (count !== undefined) { + localVarQueryParameter['count'] = count; + } + if (sorters !== undefined) { + localVarQueryParameter['sorters'] = sorters; + } + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This endpoint will set/update an identity\'s lifecycle state to the one provided and updates the corresponding Identity Profile. A token with ORG_ADMIN or API authority is required to call this API. + * @summary Set Lifecycle State + * @param {string} identityId The ID of the identity to update + * @param {SetLifecycleStateRequest} setLifecycleStateRequest + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + setLifecycleState: function (identityId, setLifecycleStateRequest, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'identityId' is not null or undefined + (0, common_1.assertParamExists)('setLifecycleState', 'identityId', identityId); + // verify required parameter 'setLifecycleStateRequest' is not null or undefined + (0, common_1.assertParamExists)('setLifecycleState', 'setLifecycleStateRequest', setLifecycleStateRequest); + localVarPath = "/identities/{identity-id}/set-lifecycle-state" + .replace("{".concat("identity-id", "}"), encodeURIComponent(String(identityId))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + localVarHeaderParameter['Content-Type'] = 'application/json'; + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(setLifecycleStateRequest, localVarRequestOptions, configuration); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This endpoint updates individual Lifecycle State fields using the [JSON Patch](https://tools.ietf.org/html/rfc6902) standard. A token with ORG_ADMIN or API authority is required to call this API. + * @summary Update Lifecycle State + * @param {string} identityProfileId Identity Profile ID + * @param {string} lifecycleStateId Lifecycle State ID + * @param {Array} jsonPatchOperation A list of lifecycle state update operations according to the [JSON Patch](https://tools.ietf.org/html/rfc6902) standard. The following fields can be updated: * enabled * description * accountActions * accessProfileIds * emailNotificationOption + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + updateLifecycleStates: function (identityProfileId, lifecycleStateId, jsonPatchOperation, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'identityProfileId' is not null or undefined + (0, common_1.assertParamExists)('updateLifecycleStates', 'identityProfileId', identityProfileId); + // verify required parameter 'lifecycleStateId' is not null or undefined + (0, common_1.assertParamExists)('updateLifecycleStates', 'lifecycleStateId', lifecycleStateId); + // verify required parameter 'jsonPatchOperation' is not null or undefined + (0, common_1.assertParamExists)('updateLifecycleStates', 'jsonPatchOperation', jsonPatchOperation); + localVarPath = "/identity-profiles/{identity-profile-id}/lifecycle-states/{lifecycle-state-id}" + .replace("{".concat("identity-profile-id", "}"), encodeURIComponent(String(identityProfileId))) + .replace("{".concat("lifecycle-state-id", "}"), encodeURIComponent(String(lifecycleStateId))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'PATCH' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + localVarHeaderParameter['Content-Type'] = 'application/json-patch+json'; + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(jsonPatchOperation, localVarRequestOptions, configuration); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + }; + }; + exports.LifecycleStatesApiAxiosParamCreator = LifecycleStatesApiAxiosParamCreator; + /** + * LifecycleStatesApi - functional programming interface + * @export + */ + var LifecycleStatesApiFp = function (configuration) { + var localVarAxiosParamCreator = (0, exports.LifecycleStatesApiAxiosParamCreator)(configuration); + return { + /** + * This API creates a new Lifecycle State. A token with ORG_ADMIN or API authority is required to call this API. + * @summary Create Lifecycle State + * @param {string} identityProfileId Identity Profile ID + * @param {LifecycleState} lifecycleState Lifecycle State + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + createLifecycleState: function (identityProfileId, lifecycleState, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.createLifecycleState(identityProfileId, lifecycleState, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This endpoint deletes the Lifecycle State using its ID. A token with API, or ORG_ADMIN authority is required to call this API. + * @summary Delete Lifecycle State by ID + * @param {string} identityProfileId Identity Profile ID + * @param {string} lifecycleStateId Lifecycle State ID + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + deleteLifecycleState: function (identityProfileId, lifecycleStateId, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.deleteLifecycleState(identityProfileId, lifecycleStateId, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This endpoint retrieves a Lifecycle State. A token with ORG_ADMIN or API authority is required to call this API. + * @summary Retrieves Lifecycle State + * @param {string} identityProfileId Identity Profile ID + * @param {string} lifecycleStateId Lifecycle State ID + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getLifecycleState: function (identityProfileId, lifecycleStateId, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.getLifecycleState(identityProfileId, lifecycleStateId, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This end-point lists all the LifecycleStates associated with IdentityProfiles. A token with API, or ORG_ADMIN authority is required to call this API. + * @summary Lists LifecycleStates + * @param {string} identityProfileId The IdentityProfile id + * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **created, modified** + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + listLifecycleStates: function (identityProfileId, limit, offset, count, sorters, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.listLifecycleStates(identityProfileId, limit, offset, count, sorters, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This endpoint will set/update an identity\'s lifecycle state to the one provided and updates the corresponding Identity Profile. A token with ORG_ADMIN or API authority is required to call this API. + * @summary Set Lifecycle State + * @param {string} identityId The ID of the identity to update + * @param {SetLifecycleStateRequest} setLifecycleStateRequest + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + setLifecycleState: function (identityId, setLifecycleStateRequest, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.setLifecycleState(identityId, setLifecycleStateRequest, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This endpoint updates individual Lifecycle State fields using the [JSON Patch](https://tools.ietf.org/html/rfc6902) standard. A token with ORG_ADMIN or API authority is required to call this API. + * @summary Update Lifecycle State + * @param {string} identityProfileId Identity Profile ID + * @param {string} lifecycleStateId Lifecycle State ID + * @param {Array} jsonPatchOperation A list of lifecycle state update operations according to the [JSON Patch](https://tools.ietf.org/html/rfc6902) standard. The following fields can be updated: * enabled * description * accountActions * accessProfileIds * emailNotificationOption + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + updateLifecycleStates: function (identityProfileId, lifecycleStateId, jsonPatchOperation, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.updateLifecycleStates(identityProfileId, lifecycleStateId, jsonPatchOperation, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + }; + }; + exports.LifecycleStatesApiFp = LifecycleStatesApiFp; + /** + * LifecycleStatesApi - factory interface + * @export + */ + var LifecycleStatesApiFactory = function (configuration, basePath, axios) { + var localVarFp = (0, exports.LifecycleStatesApiFp)(configuration); + return { + /** + * This API creates a new Lifecycle State. A token with ORG_ADMIN or API authority is required to call this API. + * @summary Create Lifecycle State + * @param {string} identityProfileId Identity Profile ID + * @param {LifecycleState} lifecycleState Lifecycle State + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + createLifecycleState: function (identityProfileId, lifecycleState, axiosOptions) { + return localVarFp.createLifecycleState(identityProfileId, lifecycleState, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This endpoint deletes the Lifecycle State using its ID. A token with API, or ORG_ADMIN authority is required to call this API. + * @summary Delete Lifecycle State by ID + * @param {string} identityProfileId Identity Profile ID + * @param {string} lifecycleStateId Lifecycle State ID + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + deleteLifecycleState: function (identityProfileId, lifecycleStateId, axiosOptions) { + return localVarFp.deleteLifecycleState(identityProfileId, lifecycleStateId, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This endpoint retrieves a Lifecycle State. A token with ORG_ADMIN or API authority is required to call this API. + * @summary Retrieves Lifecycle State + * @param {string} identityProfileId Identity Profile ID + * @param {string} lifecycleStateId Lifecycle State ID + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getLifecycleState: function (identityProfileId, lifecycleStateId, axiosOptions) { + return localVarFp.getLifecycleState(identityProfileId, lifecycleStateId, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This end-point lists all the LifecycleStates associated with IdentityProfiles. A token with API, or ORG_ADMIN authority is required to call this API. + * @summary Lists LifecycleStates + * @param {string} identityProfileId The IdentityProfile id + * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **created, modified** + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + listLifecycleStates: function (identityProfileId, limit, offset, count, sorters, axiosOptions) { + return localVarFp.listLifecycleStates(identityProfileId, limit, offset, count, sorters, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This endpoint will set/update an identity\'s lifecycle state to the one provided and updates the corresponding Identity Profile. A token with ORG_ADMIN or API authority is required to call this API. + * @summary Set Lifecycle State + * @param {string} identityId The ID of the identity to update + * @param {SetLifecycleStateRequest} setLifecycleStateRequest + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + setLifecycleState: function (identityId, setLifecycleStateRequest, axiosOptions) { + return localVarFp.setLifecycleState(identityId, setLifecycleStateRequest, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This endpoint updates individual Lifecycle State fields using the [JSON Patch](https://tools.ietf.org/html/rfc6902) standard. A token with ORG_ADMIN or API authority is required to call this API. + * @summary Update Lifecycle State + * @param {string} identityProfileId Identity Profile ID + * @param {string} lifecycleStateId Lifecycle State ID + * @param {Array} jsonPatchOperation A list of lifecycle state update operations according to the [JSON Patch](https://tools.ietf.org/html/rfc6902) standard. The following fields can be updated: * enabled * description * accountActions * accessProfileIds * emailNotificationOption + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + updateLifecycleStates: function (identityProfileId, lifecycleStateId, jsonPatchOperation, axiosOptions) { + return localVarFp.updateLifecycleStates(identityProfileId, lifecycleStateId, jsonPatchOperation, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + }; + }; + exports.LifecycleStatesApiFactory = LifecycleStatesApiFactory; + /** + * LifecycleStatesApi - object-oriented interface + * @export + * @class LifecycleStatesApi + * @extends {BaseAPI} + */ + var LifecycleStatesApi = /** @class */ (function (_super) { + __extends(LifecycleStatesApi, _super); + function LifecycleStatesApi() { + return _super !== null && _super.apply(this, arguments) || this; + } + /** + * This API creates a new Lifecycle State. A token with ORG_ADMIN or API authority is required to call this API. + * @summary Create Lifecycle State + * @param {LifecycleStatesApiCreateLifecycleStateRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof LifecycleStatesApi + */ + LifecycleStatesApi.prototype.createLifecycleState = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.LifecycleStatesApiFp)(this.configuration).createLifecycleState(requestParameters.identityProfileId, requestParameters.lifecycleState, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This endpoint deletes the Lifecycle State using its ID. A token with API, or ORG_ADMIN authority is required to call this API. + * @summary Delete Lifecycle State by ID + * @param {LifecycleStatesApiDeleteLifecycleStateRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof LifecycleStatesApi + */ + LifecycleStatesApi.prototype.deleteLifecycleState = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.LifecycleStatesApiFp)(this.configuration).deleteLifecycleState(requestParameters.identityProfileId, requestParameters.lifecycleStateId, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This endpoint retrieves a Lifecycle State. A token with ORG_ADMIN or API authority is required to call this API. + * @summary Retrieves Lifecycle State + * @param {LifecycleStatesApiGetLifecycleStateRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof LifecycleStatesApi + */ + LifecycleStatesApi.prototype.getLifecycleState = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.LifecycleStatesApiFp)(this.configuration).getLifecycleState(requestParameters.identityProfileId, requestParameters.lifecycleStateId, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This end-point lists all the LifecycleStates associated with IdentityProfiles. A token with API, or ORG_ADMIN authority is required to call this API. + * @summary Lists LifecycleStates + * @param {LifecycleStatesApiListLifecycleStatesRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof LifecycleStatesApi + */ + LifecycleStatesApi.prototype.listLifecycleStates = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.LifecycleStatesApiFp)(this.configuration).listLifecycleStates(requestParameters.identityProfileId, requestParameters.limit, requestParameters.offset, requestParameters.count, requestParameters.sorters, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This endpoint will set/update an identity\'s lifecycle state to the one provided and updates the corresponding Identity Profile. A token with ORG_ADMIN or API authority is required to call this API. + * @summary Set Lifecycle State + * @param {LifecycleStatesApiSetLifecycleStateRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof LifecycleStatesApi + */ + LifecycleStatesApi.prototype.setLifecycleState = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.LifecycleStatesApiFp)(this.configuration).setLifecycleState(requestParameters.identityId, requestParameters.setLifecycleStateRequest, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This endpoint updates individual Lifecycle State fields using the [JSON Patch](https://tools.ietf.org/html/rfc6902) standard. A token with ORG_ADMIN or API authority is required to call this API. + * @summary Update Lifecycle State + * @param {LifecycleStatesApiUpdateLifecycleStatesRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof LifecycleStatesApi + */ + LifecycleStatesApi.prototype.updateLifecycleStates = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.LifecycleStatesApiFp)(this.configuration).updateLifecycleStates(requestParameters.identityProfileId, requestParameters.lifecycleStateId, requestParameters.jsonPatchOperation, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + return LifecycleStatesApi; + }(base_1.BaseAPI)); + exports.LifecycleStatesApi = LifecycleStatesApi; + /** + * NonEmployeeLifecycleManagementApi - axios parameter creator + * @export + */ + var NonEmployeeLifecycleManagementApiAxiosParamCreator = function (configuration) { + var _this = this; + return { + /** + * Approves a non-employee approval request and notifies the next approver. The current user must be the requested approver. + * @summary Approve a Non-Employee Request + * @param {string} id Non-Employee approval item id (UUID) + * @param {NonEmployeeApprovalDecision} nonEmployeeApprovalDecision + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + approveNonEmployeeRequest: function (id, nonEmployeeApprovalDecision, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'id' is not null or undefined + (0, common_1.assertParamExists)('approveNonEmployeeRequest', 'id', id); + // verify required parameter 'nonEmployeeApprovalDecision' is not null or undefined + (0, common_1.assertParamExists)('approveNonEmployeeRequest', 'nonEmployeeApprovalDecision', nonEmployeeApprovalDecision); + localVarPath = "/non-employee-approvals/{id}/approve" + .replace("{".concat("id", "}"), encodeURIComponent(String(id))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + localVarHeaderParameter['Content-Type'] = 'application/json'; + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(nonEmployeeApprovalDecision, localVarRequestOptions, configuration); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This request will create a non-employee record. Requires role context of `idn:nesr:create` + * @summary Create Non-Employee Record + * @param {NonEmployeeRequestBody} nonEmployeeRequestBody Non-Employee record creation request body. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + createNonEmployeeRecord: function (nonEmployeeRequestBody, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'nonEmployeeRequestBody' is not null or undefined + (0, common_1.assertParamExists)('createNonEmployeeRecord', 'nonEmployeeRequestBody', nonEmployeeRequestBody); + localVarPath = "/non-employee-records"; + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + localVarHeaderParameter['Content-Type'] = 'application/json'; + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(nonEmployeeRequestBody, localVarRequestOptions, configuration); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This request will create a non-employee request and notify the approver. Requires role context of `idn:nesr:create` or the user must own the source. + * @summary Create Non-Employee Request + * @param {NonEmployeeRequestBody} nonEmployeeRequestBody Non-Employee creation request body + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + createNonEmployeeRequest: function (nonEmployeeRequestBody, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'nonEmployeeRequestBody' is not null or undefined + (0, common_1.assertParamExists)('createNonEmployeeRequest', 'nonEmployeeRequestBody', nonEmployeeRequestBody); + localVarPath = "/non-employee-requests"; + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + localVarHeaderParameter['Content-Type'] = 'application/json'; + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(nonEmployeeRequestBody, localVarRequestOptions, configuration); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This request will create a non-employee source. Requires role context of `idn:nesr:create` + * @summary Create Non-Employee Source + * @param {NonEmployeeSourceRequestBody} nonEmployeeSourceRequestBody Non-Employee source creation request body. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + createNonEmployeeSource: function (nonEmployeeSourceRequestBody, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'nonEmployeeSourceRequestBody' is not null or undefined + (0, common_1.assertParamExists)('createNonEmployeeSource', 'nonEmployeeSourceRequestBody', nonEmployeeSourceRequestBody); + localVarPath = "/non-employee-sources"; + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + localVarHeaderParameter['Content-Type'] = 'application/json'; + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(nonEmployeeSourceRequestBody, localVarRequestOptions, configuration); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This API creates a new schema attribute for Non-Employee Source. The schema technical name must be unique in the source. Attempts to create a schema attribute with an existing name will result in a \"400.1.409 Reference conflict\" response. At most, 10 custom attributes can be created per schema. Attempts to create more than 10 will result in a \"400.1.4 Limit violation\" response. Requires role context of `idn:nesr:create` + * @summary Create a new Schema Attribute for Non-Employee Source + * @param {string} sourceId The Source id + * @param {NonEmployeeSchemaAttributeBody} nonEmployeeSchemaAttributeBody + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + createNonEmployeeSourceSchemaAttributes: function (sourceId, nonEmployeeSchemaAttributeBody, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'sourceId' is not null or undefined + (0, common_1.assertParamExists)('createNonEmployeeSourceSchemaAttributes', 'sourceId', sourceId); + // verify required parameter 'nonEmployeeSchemaAttributeBody' is not null or undefined + (0, common_1.assertParamExists)('createNonEmployeeSourceSchemaAttributes', 'nonEmployeeSchemaAttributeBody', nonEmployeeSchemaAttributeBody); + localVarPath = "/non-employee-sources/{sourceId}/schema-attributes" + .replace("{".concat("sourceId", "}"), encodeURIComponent(String(sourceId))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + localVarHeaderParameter['Content-Type'] = 'application/json'; + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(nonEmployeeSchemaAttributeBody, localVarRequestOptions, configuration); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This request will delete a non-employee record. Requires role context of `idn:nesr:delete` + * @summary Delete Non-Employee Record + * @param {string} id Non-Employee record id (UUID) + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + deleteNonEmployeeRecord: function (id, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'id' is not null or undefined + (0, common_1.assertParamExists)('deleteNonEmployeeRecord', 'id', id); + localVarPath = "/non-employee-records/{id}" + .replace("{".concat("id", "}"), encodeURIComponent(String(id))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'DELETE' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This request will delete multiple non-employee records based on the non-employee ids provided. Requires role context of `idn:nesr:delete` + * @summary Delete Multiple Non-Employee Records + * @param {DeleteNonEmployeeRecordsInBulkRequest} deleteNonEmployeeRecordsInBulkRequest Non-Employee bulk delete request body. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + deleteNonEmployeeRecordsInBulk: function (deleteNonEmployeeRecordsInBulkRequest, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'deleteNonEmployeeRecordsInBulkRequest' is not null or undefined + (0, common_1.assertParamExists)('deleteNonEmployeeRecordsInBulk', 'deleteNonEmployeeRecordsInBulkRequest', deleteNonEmployeeRecordsInBulkRequest); + localVarPath = "/non-employee-records/bulk-delete"; + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + localVarHeaderParameter['Content-Type'] = 'application/json'; + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(deleteNonEmployeeRecordsInBulkRequest, localVarRequestOptions, configuration); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This request will delete a non-employee request. Requires role context of `idn:nesr:delete` + * @summary Delete Non-Employee Request + * @param {string} id Non-Employee request id in the UUID format + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + deleteNonEmployeeRequest: function (id, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'id' is not null or undefined + (0, common_1.assertParamExists)('deleteNonEmployeeRequest', 'id', id); + localVarPath = "/non-employee-requests/{id}" + .replace("{".concat("id", "}"), encodeURIComponent(String(id))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'DELETE' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This end-point deletes a specific schema attribute for a non-employee source. Requires role context of `idn:nesr:delete` + * @summary Delete a Schema Attribute for Non-Employee Source + * @param {string} attributeId The Schema Attribute Id (UUID) + * @param {string} sourceId The Source id + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + deleteNonEmployeeSchemaAttribute: function (attributeId, sourceId, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'attributeId' is not null or undefined + (0, common_1.assertParamExists)('deleteNonEmployeeSchemaAttribute', 'attributeId', attributeId); + // verify required parameter 'sourceId' is not null or undefined + (0, common_1.assertParamExists)('deleteNonEmployeeSchemaAttribute', 'sourceId', sourceId); + localVarPath = "/non-employee-sources/{sourceId}/schema-attributes/{attributeId}" + .replace("{".concat("attributeId", "}"), encodeURIComponent(String(attributeId))) + .replace("{".concat("sourceId", "}"), encodeURIComponent(String(sourceId))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'DELETE' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This request will delete a non-employee source. Requires role context of `idn:nesr:delete`. + * @summary Delete Non-Employee Source + * @param {string} sourceId Source Id + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + deleteNonEmployeeSource: function (sourceId, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'sourceId' is not null or undefined + (0, common_1.assertParamExists)('deleteNonEmployeeSource', 'sourceId', sourceId); + localVarPath = "/non-employee-sources/{sourceId}" + .replace("{".concat("sourceId", "}"), encodeURIComponent(String(sourceId))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'DELETE' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This end-point deletes all custom schema attributes for a non-employee source. Requires role context of `idn:nesr:delete` + * @summary Delete all custom schema attributes for Non-Employee Source + * @param {string} sourceId The Source id + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + deleteNonEmployeeSourceSchemaAttributes: function (sourceId, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'sourceId' is not null or undefined + (0, common_1.assertParamExists)('deleteNonEmployeeSourceSchemaAttributes', 'sourceId', sourceId); + localVarPath = "/non-employee-sources/{sourceId}/schema-attributes" + .replace("{".concat("sourceId", "}"), encodeURIComponent(String(sourceId))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'DELETE' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This requests a CSV download for all non-employees from a provided source. Requires role context of `idn:nesr:read` + * @summary Exports Non-Employee Records to CSV + * @param {string} id Source Id (UUID) + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + exportNonEmployeeRecords: function (id, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'id' is not null or undefined + (0, common_1.assertParamExists)('exportNonEmployeeRecords', 'id', id); + localVarPath = "/non-employee-sources/{id}/non-employees/download" + .replace("{".concat("id", "}"), encodeURIComponent(String(id))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This requests a download for the Source Schema Template for a provided source. Requires role context of `idn:nesr:read` + * @summary Exports Source Schema Template + * @param {string} id Source Id (UUID) + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + exportNonEmployeeSourceSchemaTemplate: function (id, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'id' is not null or undefined + (0, common_1.assertParamExists)('exportNonEmployeeSourceSchemaTemplate', 'id', id); + localVarPath = "/non-employee-sources/{id}/schema-attributes-template/download" + .replace("{".concat("id", "}"), encodeURIComponent(String(id))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * Gets a non-employee approval item detail. There are two contextual uses for this endpoint: 1. The user has the role context of `idn:nesr:read`, in which case they can get any approval. 2. The user owns the requested approval. + * @summary Get a non-employee approval item detail + * @param {string} id Non-Employee approval item id (UUID) + * @param {boolean} [includeDetail] The object nonEmployeeRequest will not be included detail when set to false. *Default value is true* + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getNonEmployeeApproval: function (id, includeDetail, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'id' is not null or undefined + (0, common_1.assertParamExists)('getNonEmployeeApproval', 'id', id); + localVarPath = "/non-employee-approvals/{id}" + .replace("{".concat("id", "}"), encodeURIComponent(String(id))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + if (includeDetail !== undefined) { + localVarQueryParameter['include-detail'] = includeDetail; + } + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This request will retrieve a summary of non-employee approval requests. There are two contextual uses for the `requested-for` path parameter: 1. The user has the role context of `idn:nesr:read`, in which case he or she may request a summary of all non-employee approval requests assigned to a particular approver by passing in that approver\'s id. 2. The current user is an approver, in which case \"me\" should be provided as the `requested-for` value. This will provide the approver with a summary of the approval items assigned to him or her. + * @summary Get Summary of Non-Employee Approval Requests + * @param {string} requestedFor The identity (UUID) of the approver for whom for whom the summary is being retrieved. Use \"me\" instead to indicate the current user. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getNonEmployeeApprovalSummary: function (requestedFor, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'requestedFor' is not null or undefined + (0, common_1.assertParamExists)('getNonEmployeeApprovalSummary', 'requestedFor', requestedFor); + localVarPath = "/non-employee-approvals/summary/{requested-for}" + .replace("{".concat("requested-for", "}"), encodeURIComponent(String(requestedFor))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * The nonEmployeeBulkUploadStatus API returns the status of the newest bulk upload job for the specified source. Requires role context of `idn:nesr:read` + * @summary Obtain the status of bulk upload on the source + * @param {string} id Source ID (UUID) + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getNonEmployeeBulkUploadStatus: function (id, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'id' is not null or undefined + (0, common_1.assertParamExists)('getNonEmployeeBulkUploadStatus', 'id', id); + localVarPath = "/non-employee-sources/{id}/non-employee-bulk-upload/status" + .replace("{".concat("id", "}"), encodeURIComponent(String(id))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This gets a non-employee record. Requires role context of `idn:nesr:read` + * @summary Get a Non-Employee Record + * @param {string} id Non-Employee record id (UUID) + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getNonEmployeeRecord: function (id, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'id' is not null or undefined + (0, common_1.assertParamExists)('getNonEmployeeRecord', 'id', id); + localVarPath = "/non-employee-records/{id}" + .replace("{".concat("id", "}"), encodeURIComponent(String(id))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This gets a non-employee request. There are two contextual uses for this endpoint: 1. The user has the role context of `idn:nesr:read`, in this case the user can get the non-employee request for any user. 2. The user must be the owner of the non-employee request. + * @summary Get a Non-Employee Request + * @param {string} id Non-Employee request id (UUID) + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getNonEmployeeRequest: function (id, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'id' is not null or undefined + (0, common_1.assertParamExists)('getNonEmployeeRequest', 'id', id); + localVarPath = "/non-employee-requests/{id}" + .replace("{".concat("id", "}"), encodeURIComponent(String(id))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This request will retrieve a summary of non-employee requests. There are two contextual uses for the `requested-for` path parameter: 1. The user has the role context of `idn:nesr:read`, in which case he or she may request a summary of all non-employee approval requests assigned to a particular account manager by passing in that manager\'s id. 2. The current user is an account manager, in which case \"me\" should be provided as the `requested-for` value. This will provide the user with a summary of the non-employee requests in the source(s) he or she manages. + * @summary Get Summary of Non-Employee Requests + * @param {string} requestedFor The identity (UUID) of the non-employee account manager for whom the summary is being retrieved. Use \"me\" instead to indicate the current user. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getNonEmployeeRequestSummary: function (requestedFor, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'requestedFor' is not null or undefined + (0, common_1.assertParamExists)('getNonEmployeeRequestSummary', 'requestedFor', requestedFor); + localVarPath = "/non-employee-requests/summary/{requested-for}" + .replace("{".concat("requested-for", "}"), encodeURIComponent(String(requestedFor))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This API gets a schema attribute by Id for the specified Non-Employee SourceId. Requires role context of `idn:nesr:read` or the user must be an account manager of the source. + * @summary Get Schema Attribute Non-Employee Source + * @param {string} attributeId The Schema Attribute Id (UUID) + * @param {string} sourceId The Source id + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getNonEmployeeSchemaAttribute: function (attributeId, sourceId, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'attributeId' is not null or undefined + (0, common_1.assertParamExists)('getNonEmployeeSchemaAttribute', 'attributeId', attributeId); + // verify required parameter 'sourceId' is not null or undefined + (0, common_1.assertParamExists)('getNonEmployeeSchemaAttribute', 'sourceId', sourceId); + localVarPath = "/non-employee-sources/{sourceId}/schema-attributes/{attributeId}" + .replace("{".concat("attributeId", "}"), encodeURIComponent(String(attributeId))) + .replace("{".concat("sourceId", "}"), encodeURIComponent(String(sourceId))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This gets a non-employee source. There are two contextual uses for the requested-for path parameter: 1. The user has the role context of `idn:nesr:read`, in which case he or she may request any source. 2. The current user is an account manager, in which case the user can only request sources that they own. + * @summary Get a Non-Employee Source + * @param {string} sourceId Source Id + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getNonEmployeeSource: function (sourceId, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'sourceId' is not null or undefined + (0, common_1.assertParamExists)('getNonEmployeeSource', 'sourceId', sourceId); + localVarPath = "/non-employee-sources/{sourceId}" + .replace("{".concat("sourceId", "}"), encodeURIComponent(String(sourceId))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This API gets the list of schema attributes for the specified Non-Employee SourceId. There are 8 mandatory attributes added to each new Non-Employee Source automatically. Additionaly, user can add up to 10 custom attributes. This interface returns all the mandatory attributes followed by any custom attributes. At most, a total of 18 attributes will be returned. Requires role context of `idn:nesr:read` or the user must be an account manager of the source. + * @summary List Schema Attributes Non-Employee Source + * @param {string} sourceId The Source id + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getNonEmployeeSourceSchemaAttributes: function (sourceId, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'sourceId' is not null or undefined + (0, common_1.assertParamExists)('getNonEmployeeSourceSchemaAttributes', 'sourceId', sourceId); + localVarPath = "/non-employee-sources/{sourceId}/schema-attributes" + .replace("{".concat("sourceId", "}"), encodeURIComponent(String(sourceId))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This post will import, or update, Non-Employee records found in the CSV. Requires role context of `idn:nesr:create` + * @summary Imports, or Updates, Non-Employee Records + * @param {string} id Source Id (UUID) + * @param {any} data + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + importNonEmployeeRecordsInBulk: function (id, data, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, localVarFormParams, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'id' is not null or undefined + (0, common_1.assertParamExists)('importNonEmployeeRecordsInBulk', 'id', id); + // verify required parameter 'data' is not null or undefined + (0, common_1.assertParamExists)('importNonEmployeeRecordsInBulk', 'data', data); + localVarPath = "/non-employee-sources/{id}/non-employee-bulk-upload" + .replace("{".concat("id", "}"), encodeURIComponent(String(id))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + localVarFormParams = new ((configuration && configuration.formDataCtor) || FormData)(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + if (data !== undefined) { + localVarFormParams.append('data', data); + } + localVarHeaderParameter['Content-Type'] = 'multipart/form-data'; + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + localVarRequestOptions.data = localVarFormParams; + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This gets a list of non-employee approval requests. There are two contextual uses for this endpoint: 1. The user has the role context of `idn:nesr:read`, in which case they can list the approvals for any approver. 2. The user owns the requested approval. + * @summary Get List of Non-Employee Approval Requests + * @param {string} [requestedFor] The identity for whom the request was made. *me* indicates the current user. + * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **approvalStatus**: *eq* + * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **created, modified** + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + listNonEmployeeApprovals: function (requestedFor, limit, offset, count, filters, sorters, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + localVarPath = "/non-employee-approvals"; + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + if (requestedFor !== undefined) { + localVarQueryParameter['requested-for'] = requestedFor; + } + if (limit !== undefined) { + localVarQueryParameter['limit'] = limit; + } + if (offset !== undefined) { + localVarQueryParameter['offset'] = offset; + } + if (count !== undefined) { + localVarQueryParameter['count'] = count; + } + if (filters !== undefined) { + localVarQueryParameter['filters'] = filters; + } + if (sorters !== undefined) { + localVarQueryParameter['sorters'] = sorters; + } + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This gets a list of non-employee records. There are two contextual uses for this endpoint: 1. The user has the role context of `idn:nesr:read`, in which case they can get a list of all of the non-employees. 2. The user is an account manager, in which case they can get a list of the non-employees that they manage. + * @summary List Non-Employee Records + * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **id, accountName, sourceId, manager, firstName, lastName, email, phone, startDate, endDate, created, modified** + * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **sourceId**: *eq* + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + listNonEmployeeRecords: function (limit, offset, count, sorters, filters, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + localVarPath = "/non-employee-records"; + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + if (limit !== undefined) { + localVarQueryParameter['limit'] = limit; + } + if (offset !== undefined) { + localVarQueryParameter['offset'] = offset; + } + if (count !== undefined) { + localVarQueryParameter['count'] = count; + } + if (sorters !== undefined) { + localVarQueryParameter['sorters'] = sorters; + } + if (filters !== undefined) { + localVarQueryParameter['filters'] = filters; + } + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This gets a list of non-employee requests. There are two contextual uses for the `requested-for` path parameter: 1. The user has the role context of `idn:nesr:read`, in which case he or she may request a list non-employee requests assigned to a particular account manager by passing in that manager\'s id. 2. The current user is an account manager, in which case \"me\" should be provided as the `requested-for` value. This will provide the user with a list of the non-employee requests in the source(s) he or she manages. + * @summary List Non-Employee Requests + * @param {string} requestedFor The identity for whom the request was made. *me* indicates the current user. + * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **created, approvalStatus, firstName, lastName, email, phone, accountName, startDate, endDate** + * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **sourceId**: *eq* + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + listNonEmployeeRequests: function (requestedFor, limit, offset, count, sorters, filters, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'requestedFor' is not null or undefined + (0, common_1.assertParamExists)('listNonEmployeeRequests', 'requestedFor', requestedFor); + localVarPath = "/non-employee-requests"; + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + if (limit !== undefined) { + localVarQueryParameter['limit'] = limit; + } + if (offset !== undefined) { + localVarQueryParameter['offset'] = offset; + } + if (count !== undefined) { + localVarQueryParameter['count'] = count; + } + if (requestedFor !== undefined) { + localVarQueryParameter['requested-for'] = requestedFor; + } + if (sorters !== undefined) { + localVarQueryParameter['sorters'] = sorters; + } + if (filters !== undefined) { + localVarQueryParameter['filters'] = filters; + } + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This gets a list of non-employee sources. There are two contextual uses for the requested-for path parameter: 1. The user has the role context of `idn:nesr:read`, in which case he or she may request a list sources assigned to a particular account manager by passing in that manager\'s id. 2. The current user is an account manager, in which case \"me\" should be provided as the `requested-for` value. This will provide the user with a list of the sources that he or she owns. + * @summary List Non-Employee Sources + * @param {string} requestedFor The identity for whom the request was made. *me* indicates the current user. + * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {boolean} [nonEmployeeCount] The flag to determine whether return a non-employee count associate with source. + * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **name, created, sourceId** + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + listNonEmployeeSources: function (requestedFor, limit, offset, count, nonEmployeeCount, sorters, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'requestedFor' is not null or undefined + (0, common_1.assertParamExists)('listNonEmployeeSources', 'requestedFor', requestedFor); + localVarPath = "/non-employee-sources"; + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + if (limit !== undefined) { + localVarQueryParameter['limit'] = limit; + } + if (offset !== undefined) { + localVarQueryParameter['offset'] = offset; + } + if (count !== undefined) { + localVarQueryParameter['count'] = count; + } + if (requestedFor !== undefined) { + localVarQueryParameter['requested-for'] = requestedFor; + } + if (nonEmployeeCount !== undefined) { + localVarQueryParameter['non-employee-count'] = nonEmployeeCount; + } + if (sorters !== undefined) { + localVarQueryParameter['sorters'] = sorters; + } + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This request will patch a non-employee record. There are two contextual uses for this endpoint: 1. The user has the role context of `idn:nesr:update`, in which case they update all available fields. 2. The user is owner of the source, in this case they can only update the end date. + * @summary Patch Non-Employee Record + * @param {string} id Non-employee record id (UUID) + * @param {Array} jsonPatchOperation A list of non-employee update operations according to the [JSON Patch](https://tools.ietf.org/html/rfc6902) standard. Attributes are restricted by user type. Owner of source can update end date. Organization admins can update all available fields. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + patchNonEmployeeRecord: function (id, jsonPatchOperation, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'id' is not null or undefined + (0, common_1.assertParamExists)('patchNonEmployeeRecord', 'id', id); + // verify required parameter 'jsonPatchOperation' is not null or undefined + (0, common_1.assertParamExists)('patchNonEmployeeRecord', 'jsonPatchOperation', jsonPatchOperation); + localVarPath = "/non-employee-records/{id}" + .replace("{".concat("id", "}"), encodeURIComponent(String(id))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'PATCH' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + localVarHeaderParameter['Content-Type'] = 'application/json-patch+json'; + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(jsonPatchOperation, localVarRequestOptions, configuration); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This end-point patches a specific schema attribute for a non-employee SourceId. Requires role context of `idn:nesr:update` + * @summary Patch a Schema Attribute for Non-Employee Source + * @param {string} attributeId The Schema Attribute Id (UUID) + * @param {string} sourceId The Source id + * @param {Array} jsonPatchOperation A list of schema attribute update operations according to the [JSON Patch](https://tools.ietf.org/html/rfc6902) standard. The following properties are allowed for update \':\' \'label\', \'helpText\', \'placeholder\', \'required\'. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + patchNonEmployeeSchemaAttribute: function (attributeId, sourceId, jsonPatchOperation, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'attributeId' is not null or undefined + (0, common_1.assertParamExists)('patchNonEmployeeSchemaAttribute', 'attributeId', attributeId); + // verify required parameter 'sourceId' is not null or undefined + (0, common_1.assertParamExists)('patchNonEmployeeSchemaAttribute', 'sourceId', sourceId); + // verify required parameter 'jsonPatchOperation' is not null or undefined + (0, common_1.assertParamExists)('patchNonEmployeeSchemaAttribute', 'jsonPatchOperation', jsonPatchOperation); + localVarPath = "/non-employee-sources/{sourceId}/schema-attributes/{attributeId}" + .replace("{".concat("attributeId", "}"), encodeURIComponent(String(attributeId))) + .replace("{".concat("sourceId", "}"), encodeURIComponent(String(sourceId))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'PATCH' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + localVarHeaderParameter['Content-Type'] = 'application/json-patch+json'; + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(jsonPatchOperation, localVarRequestOptions, configuration); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * patch a non-employee source. (partial update)
Patchable field: **name, description, approvers, accountManagers** Requires role context of `idn:nesr:update`. + * @summary Patch a Non-Employee Source + * @param {string} sourceId Source Id + * @param {Array} jsonPatchOperation A list of non-employee source update operations according to the [JSON Patch](https://tools.ietf.org/html/rfc6902) standard. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + patchNonEmployeeSource: function (sourceId, jsonPatchOperation, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'sourceId' is not null or undefined + (0, common_1.assertParamExists)('patchNonEmployeeSource', 'sourceId', sourceId); + // verify required parameter 'jsonPatchOperation' is not null or undefined + (0, common_1.assertParamExists)('patchNonEmployeeSource', 'jsonPatchOperation', jsonPatchOperation); + localVarPath = "/non-employee-sources/{sourceId}" + .replace("{".concat("sourceId", "}"), encodeURIComponent(String(sourceId))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'PATCH' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + localVarHeaderParameter['Content-Type'] = 'application/json-patch+json'; + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(jsonPatchOperation, localVarRequestOptions, configuration); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This endpoint will reject an approval item request and notify user. The current user must be the requested approver. + * @summary Reject a Non-Employee Request + * @param {string} id Non-Employee approval item id (UUID) + * @param {NonEmployeeRejectApprovalDecision} nonEmployeeRejectApprovalDecision + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + rejectNonEmployeeRequest: function (id, nonEmployeeRejectApprovalDecision, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'id' is not null or undefined + (0, common_1.assertParamExists)('rejectNonEmployeeRequest', 'id', id); + // verify required parameter 'nonEmployeeRejectApprovalDecision' is not null or undefined + (0, common_1.assertParamExists)('rejectNonEmployeeRequest', 'nonEmployeeRejectApprovalDecision', nonEmployeeRejectApprovalDecision); + localVarPath = "/non-employee-approvals/{id}/reject" + .replace("{".concat("id", "}"), encodeURIComponent(String(id))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + localVarHeaderParameter['Content-Type'] = 'application/json'; + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(nonEmployeeRejectApprovalDecision, localVarRequestOptions, configuration); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This request will update a non-employee record. There are two contextual uses for this endpoint: 1. The user has the role context of `idn:nesr:update`, in which case they update all available fields. 2. The user is owner of the source, in this case they can only update the end date. + * @summary Update Non-Employee Record + * @param {string} id Non-employee record id (UUID) + * @param {NonEmployeeRequestBody} nonEmployeeRequestBody Non-employee record creation request body. Attributes are restricted by user type. Owner of source can update end date. Organization admins can update all available fields. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + updateNonEmployeeRecord: function (id, nonEmployeeRequestBody, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'id' is not null or undefined + (0, common_1.assertParamExists)('updateNonEmployeeRecord', 'id', id); + // verify required parameter 'nonEmployeeRequestBody' is not null or undefined + (0, common_1.assertParamExists)('updateNonEmployeeRecord', 'nonEmployeeRequestBody', nonEmployeeRequestBody); + localVarPath = "/non-employee-records/{id}" + .replace("{".concat("id", "}"), encodeURIComponent(String(id))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'PUT' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + localVarHeaderParameter['Content-Type'] = 'application/json'; + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(nonEmployeeRequestBody, localVarRequestOptions, configuration); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + }; + }; + exports.NonEmployeeLifecycleManagementApiAxiosParamCreator = NonEmployeeLifecycleManagementApiAxiosParamCreator; + /** + * NonEmployeeLifecycleManagementApi - functional programming interface + * @export + */ + var NonEmployeeLifecycleManagementApiFp = function (configuration) { + var localVarAxiosParamCreator = (0, exports.NonEmployeeLifecycleManagementApiAxiosParamCreator)(configuration); + return { + /** + * Approves a non-employee approval request and notifies the next approver. The current user must be the requested approver. + * @summary Approve a Non-Employee Request + * @param {string} id Non-Employee approval item id (UUID) + * @param {NonEmployeeApprovalDecision} nonEmployeeApprovalDecision + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + approveNonEmployeeRequest: function (id, nonEmployeeApprovalDecision, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.approveNonEmployeeRequest(id, nonEmployeeApprovalDecision, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This request will create a non-employee record. Requires role context of `idn:nesr:create` + * @summary Create Non-Employee Record + * @param {NonEmployeeRequestBody} nonEmployeeRequestBody Non-Employee record creation request body. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + createNonEmployeeRecord: function (nonEmployeeRequestBody, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.createNonEmployeeRecord(nonEmployeeRequestBody, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This request will create a non-employee request and notify the approver. Requires role context of `idn:nesr:create` or the user must own the source. + * @summary Create Non-Employee Request + * @param {NonEmployeeRequestBody} nonEmployeeRequestBody Non-Employee creation request body + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + createNonEmployeeRequest: function (nonEmployeeRequestBody, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.createNonEmployeeRequest(nonEmployeeRequestBody, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This request will create a non-employee source. Requires role context of `idn:nesr:create` + * @summary Create Non-Employee Source + * @param {NonEmployeeSourceRequestBody} nonEmployeeSourceRequestBody Non-Employee source creation request body. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + createNonEmployeeSource: function (nonEmployeeSourceRequestBody, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.createNonEmployeeSource(nonEmployeeSourceRequestBody, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This API creates a new schema attribute for Non-Employee Source. The schema technical name must be unique in the source. Attempts to create a schema attribute with an existing name will result in a \"400.1.409 Reference conflict\" response. At most, 10 custom attributes can be created per schema. Attempts to create more than 10 will result in a \"400.1.4 Limit violation\" response. Requires role context of `idn:nesr:create` + * @summary Create a new Schema Attribute for Non-Employee Source + * @param {string} sourceId The Source id + * @param {NonEmployeeSchemaAttributeBody} nonEmployeeSchemaAttributeBody + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + createNonEmployeeSourceSchemaAttributes: function (sourceId, nonEmployeeSchemaAttributeBody, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.createNonEmployeeSourceSchemaAttributes(sourceId, nonEmployeeSchemaAttributeBody, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This request will delete a non-employee record. Requires role context of `idn:nesr:delete` + * @summary Delete Non-Employee Record + * @param {string} id Non-Employee record id (UUID) + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + deleteNonEmployeeRecord: function (id, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.deleteNonEmployeeRecord(id, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This request will delete multiple non-employee records based on the non-employee ids provided. Requires role context of `idn:nesr:delete` + * @summary Delete Multiple Non-Employee Records + * @param {DeleteNonEmployeeRecordsInBulkRequest} deleteNonEmployeeRecordsInBulkRequest Non-Employee bulk delete request body. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + deleteNonEmployeeRecordsInBulk: function (deleteNonEmployeeRecordsInBulkRequest, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.deleteNonEmployeeRecordsInBulk(deleteNonEmployeeRecordsInBulkRequest, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This request will delete a non-employee request. Requires role context of `idn:nesr:delete` + * @summary Delete Non-Employee Request + * @param {string} id Non-Employee request id in the UUID format + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + deleteNonEmployeeRequest: function (id, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.deleteNonEmployeeRequest(id, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This end-point deletes a specific schema attribute for a non-employee source. Requires role context of `idn:nesr:delete` + * @summary Delete a Schema Attribute for Non-Employee Source + * @param {string} attributeId The Schema Attribute Id (UUID) + * @param {string} sourceId The Source id + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + deleteNonEmployeeSchemaAttribute: function (attributeId, sourceId, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.deleteNonEmployeeSchemaAttribute(attributeId, sourceId, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This request will delete a non-employee source. Requires role context of `idn:nesr:delete`. + * @summary Delete Non-Employee Source + * @param {string} sourceId Source Id + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + deleteNonEmployeeSource: function (sourceId, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.deleteNonEmployeeSource(sourceId, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This end-point deletes all custom schema attributes for a non-employee source. Requires role context of `idn:nesr:delete` + * @summary Delete all custom schema attributes for Non-Employee Source + * @param {string} sourceId The Source id + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + deleteNonEmployeeSourceSchemaAttributes: function (sourceId, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.deleteNonEmployeeSourceSchemaAttributes(sourceId, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This requests a CSV download for all non-employees from a provided source. Requires role context of `idn:nesr:read` + * @summary Exports Non-Employee Records to CSV + * @param {string} id Source Id (UUID) + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + exportNonEmployeeRecords: function (id, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.exportNonEmployeeRecords(id, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This requests a download for the Source Schema Template for a provided source. Requires role context of `idn:nesr:read` + * @summary Exports Source Schema Template + * @param {string} id Source Id (UUID) + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + exportNonEmployeeSourceSchemaTemplate: function (id, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.exportNonEmployeeSourceSchemaTemplate(id, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * Gets a non-employee approval item detail. There are two contextual uses for this endpoint: 1. The user has the role context of `idn:nesr:read`, in which case they can get any approval. 2. The user owns the requested approval. + * @summary Get a non-employee approval item detail + * @param {string} id Non-Employee approval item id (UUID) + * @param {boolean} [includeDetail] The object nonEmployeeRequest will not be included detail when set to false. *Default value is true* + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getNonEmployeeApproval: function (id, includeDetail, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.getNonEmployeeApproval(id, includeDetail, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This request will retrieve a summary of non-employee approval requests. There are two contextual uses for the `requested-for` path parameter: 1. The user has the role context of `idn:nesr:read`, in which case he or she may request a summary of all non-employee approval requests assigned to a particular approver by passing in that approver\'s id. 2. The current user is an approver, in which case \"me\" should be provided as the `requested-for` value. This will provide the approver with a summary of the approval items assigned to him or her. + * @summary Get Summary of Non-Employee Approval Requests + * @param {string} requestedFor The identity (UUID) of the approver for whom for whom the summary is being retrieved. Use \"me\" instead to indicate the current user. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getNonEmployeeApprovalSummary: function (requestedFor, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.getNonEmployeeApprovalSummary(requestedFor, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * The nonEmployeeBulkUploadStatus API returns the status of the newest bulk upload job for the specified source. Requires role context of `idn:nesr:read` + * @summary Obtain the status of bulk upload on the source + * @param {string} id Source ID (UUID) + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getNonEmployeeBulkUploadStatus: function (id, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.getNonEmployeeBulkUploadStatus(id, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This gets a non-employee record. Requires role context of `idn:nesr:read` + * @summary Get a Non-Employee Record + * @param {string} id Non-Employee record id (UUID) + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getNonEmployeeRecord: function (id, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.getNonEmployeeRecord(id, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This gets a non-employee request. There are two contextual uses for this endpoint: 1. The user has the role context of `idn:nesr:read`, in this case the user can get the non-employee request for any user. 2. The user must be the owner of the non-employee request. + * @summary Get a Non-Employee Request + * @param {string} id Non-Employee request id (UUID) + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getNonEmployeeRequest: function (id, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.getNonEmployeeRequest(id, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This request will retrieve a summary of non-employee requests. There are two contextual uses for the `requested-for` path parameter: 1. The user has the role context of `idn:nesr:read`, in which case he or she may request a summary of all non-employee approval requests assigned to a particular account manager by passing in that manager\'s id. 2. The current user is an account manager, in which case \"me\" should be provided as the `requested-for` value. This will provide the user with a summary of the non-employee requests in the source(s) he or she manages. + * @summary Get Summary of Non-Employee Requests + * @param {string} requestedFor The identity (UUID) of the non-employee account manager for whom the summary is being retrieved. Use \"me\" instead to indicate the current user. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getNonEmployeeRequestSummary: function (requestedFor, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.getNonEmployeeRequestSummary(requestedFor, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This API gets a schema attribute by Id for the specified Non-Employee SourceId. Requires role context of `idn:nesr:read` or the user must be an account manager of the source. + * @summary Get Schema Attribute Non-Employee Source + * @param {string} attributeId The Schema Attribute Id (UUID) + * @param {string} sourceId The Source id + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getNonEmployeeSchemaAttribute: function (attributeId, sourceId, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.getNonEmployeeSchemaAttribute(attributeId, sourceId, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This gets a non-employee source. There are two contextual uses for the requested-for path parameter: 1. The user has the role context of `idn:nesr:read`, in which case he or she may request any source. 2. The current user is an account manager, in which case the user can only request sources that they own. + * @summary Get a Non-Employee Source + * @param {string} sourceId Source Id + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getNonEmployeeSource: function (sourceId, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.getNonEmployeeSource(sourceId, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This API gets the list of schema attributes for the specified Non-Employee SourceId. There are 8 mandatory attributes added to each new Non-Employee Source automatically. Additionaly, user can add up to 10 custom attributes. This interface returns all the mandatory attributes followed by any custom attributes. At most, a total of 18 attributes will be returned. Requires role context of `idn:nesr:read` or the user must be an account manager of the source. + * @summary List Schema Attributes Non-Employee Source + * @param {string} sourceId The Source id + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getNonEmployeeSourceSchemaAttributes: function (sourceId, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.getNonEmployeeSourceSchemaAttributes(sourceId, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This post will import, or update, Non-Employee records found in the CSV. Requires role context of `idn:nesr:create` + * @summary Imports, or Updates, Non-Employee Records + * @param {string} id Source Id (UUID) + * @param {any} data + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + importNonEmployeeRecordsInBulk: function (id, data, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.importNonEmployeeRecordsInBulk(id, data, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This gets a list of non-employee approval requests. There are two contextual uses for this endpoint: 1. The user has the role context of `idn:nesr:read`, in which case they can list the approvals for any approver. 2. The user owns the requested approval. + * @summary Get List of Non-Employee Approval Requests + * @param {string} [requestedFor] The identity for whom the request was made. *me* indicates the current user. + * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **approvalStatus**: *eq* + * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **created, modified** + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + listNonEmployeeApprovals: function (requestedFor, limit, offset, count, filters, sorters, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.listNonEmployeeApprovals(requestedFor, limit, offset, count, filters, sorters, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This gets a list of non-employee records. There are two contextual uses for this endpoint: 1. The user has the role context of `idn:nesr:read`, in which case they can get a list of all of the non-employees. 2. The user is an account manager, in which case they can get a list of the non-employees that they manage. + * @summary List Non-Employee Records + * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **id, accountName, sourceId, manager, firstName, lastName, email, phone, startDate, endDate, created, modified** + * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **sourceId**: *eq* + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + listNonEmployeeRecords: function (limit, offset, count, sorters, filters, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.listNonEmployeeRecords(limit, offset, count, sorters, filters, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This gets a list of non-employee requests. There are two contextual uses for the `requested-for` path parameter: 1. The user has the role context of `idn:nesr:read`, in which case he or she may request a list non-employee requests assigned to a particular account manager by passing in that manager\'s id. 2. The current user is an account manager, in which case \"me\" should be provided as the `requested-for` value. This will provide the user with a list of the non-employee requests in the source(s) he or she manages. + * @summary List Non-Employee Requests + * @param {string} requestedFor The identity for whom the request was made. *me* indicates the current user. + * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **created, approvalStatus, firstName, lastName, email, phone, accountName, startDate, endDate** + * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **sourceId**: *eq* + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + listNonEmployeeRequests: function (requestedFor, limit, offset, count, sorters, filters, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.listNonEmployeeRequests(requestedFor, limit, offset, count, sorters, filters, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This gets a list of non-employee sources. There are two contextual uses for the requested-for path parameter: 1. The user has the role context of `idn:nesr:read`, in which case he or she may request a list sources assigned to a particular account manager by passing in that manager\'s id. 2. The current user is an account manager, in which case \"me\" should be provided as the `requested-for` value. This will provide the user with a list of the sources that he or she owns. + * @summary List Non-Employee Sources + * @param {string} requestedFor The identity for whom the request was made. *me* indicates the current user. + * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {boolean} [nonEmployeeCount] The flag to determine whether return a non-employee count associate with source. + * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **name, created, sourceId** + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + listNonEmployeeSources: function (requestedFor, limit, offset, count, nonEmployeeCount, sorters, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.listNonEmployeeSources(requestedFor, limit, offset, count, nonEmployeeCount, sorters, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This request will patch a non-employee record. There are two contextual uses for this endpoint: 1. The user has the role context of `idn:nesr:update`, in which case they update all available fields. 2. The user is owner of the source, in this case they can only update the end date. + * @summary Patch Non-Employee Record + * @param {string} id Non-employee record id (UUID) + * @param {Array} jsonPatchOperation A list of non-employee update operations according to the [JSON Patch](https://tools.ietf.org/html/rfc6902) standard. Attributes are restricted by user type. Owner of source can update end date. Organization admins can update all available fields. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + patchNonEmployeeRecord: function (id, jsonPatchOperation, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.patchNonEmployeeRecord(id, jsonPatchOperation, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This end-point patches a specific schema attribute for a non-employee SourceId. Requires role context of `idn:nesr:update` + * @summary Patch a Schema Attribute for Non-Employee Source + * @param {string} attributeId The Schema Attribute Id (UUID) + * @param {string} sourceId The Source id + * @param {Array} jsonPatchOperation A list of schema attribute update operations according to the [JSON Patch](https://tools.ietf.org/html/rfc6902) standard. The following properties are allowed for update \':\' \'label\', \'helpText\', \'placeholder\', \'required\'. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + patchNonEmployeeSchemaAttribute: function (attributeId, sourceId, jsonPatchOperation, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.patchNonEmployeeSchemaAttribute(attributeId, sourceId, jsonPatchOperation, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * patch a non-employee source. (partial update)
Patchable field: **name, description, approvers, accountManagers** Requires role context of `idn:nesr:update`. + * @summary Patch a Non-Employee Source + * @param {string} sourceId Source Id + * @param {Array} jsonPatchOperation A list of non-employee source update operations according to the [JSON Patch](https://tools.ietf.org/html/rfc6902) standard. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + patchNonEmployeeSource: function (sourceId, jsonPatchOperation, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.patchNonEmployeeSource(sourceId, jsonPatchOperation, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This endpoint will reject an approval item request and notify user. The current user must be the requested approver. + * @summary Reject a Non-Employee Request + * @param {string} id Non-Employee approval item id (UUID) + * @param {NonEmployeeRejectApprovalDecision} nonEmployeeRejectApprovalDecision + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + rejectNonEmployeeRequest: function (id, nonEmployeeRejectApprovalDecision, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.rejectNonEmployeeRequest(id, nonEmployeeRejectApprovalDecision, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This request will update a non-employee record. There are two contextual uses for this endpoint: 1. The user has the role context of `idn:nesr:update`, in which case they update all available fields. 2. The user is owner of the source, in this case they can only update the end date. + * @summary Update Non-Employee Record + * @param {string} id Non-employee record id (UUID) + * @param {NonEmployeeRequestBody} nonEmployeeRequestBody Non-employee record creation request body. Attributes are restricted by user type. Owner of source can update end date. Organization admins can update all available fields. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + updateNonEmployeeRecord: function (id, nonEmployeeRequestBody, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.updateNonEmployeeRecord(id, nonEmployeeRequestBody, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + }; + }; + exports.NonEmployeeLifecycleManagementApiFp = NonEmployeeLifecycleManagementApiFp; + /** + * NonEmployeeLifecycleManagementApi - factory interface + * @export + */ + var NonEmployeeLifecycleManagementApiFactory = function (configuration, basePath, axios) { + var localVarFp = (0, exports.NonEmployeeLifecycleManagementApiFp)(configuration); + return { + /** + * Approves a non-employee approval request and notifies the next approver. The current user must be the requested approver. + * @summary Approve a Non-Employee Request + * @param {string} id Non-Employee approval item id (UUID) + * @param {NonEmployeeApprovalDecision} nonEmployeeApprovalDecision + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + approveNonEmployeeRequest: function (id, nonEmployeeApprovalDecision, axiosOptions) { + return localVarFp.approveNonEmployeeRequest(id, nonEmployeeApprovalDecision, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This request will create a non-employee record. Requires role context of `idn:nesr:create` + * @summary Create Non-Employee Record + * @param {NonEmployeeRequestBody} nonEmployeeRequestBody Non-Employee record creation request body. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + createNonEmployeeRecord: function (nonEmployeeRequestBody, axiosOptions) { + return localVarFp.createNonEmployeeRecord(nonEmployeeRequestBody, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This request will create a non-employee request and notify the approver. Requires role context of `idn:nesr:create` or the user must own the source. + * @summary Create Non-Employee Request + * @param {NonEmployeeRequestBody} nonEmployeeRequestBody Non-Employee creation request body + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + createNonEmployeeRequest: function (nonEmployeeRequestBody, axiosOptions) { + return localVarFp.createNonEmployeeRequest(nonEmployeeRequestBody, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This request will create a non-employee source. Requires role context of `idn:nesr:create` + * @summary Create Non-Employee Source + * @param {NonEmployeeSourceRequestBody} nonEmployeeSourceRequestBody Non-Employee source creation request body. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + createNonEmployeeSource: function (nonEmployeeSourceRequestBody, axiosOptions) { + return localVarFp.createNonEmployeeSource(nonEmployeeSourceRequestBody, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This API creates a new schema attribute for Non-Employee Source. The schema technical name must be unique in the source. Attempts to create a schema attribute with an existing name will result in a \"400.1.409 Reference conflict\" response. At most, 10 custom attributes can be created per schema. Attempts to create more than 10 will result in a \"400.1.4 Limit violation\" response. Requires role context of `idn:nesr:create` + * @summary Create a new Schema Attribute for Non-Employee Source + * @param {string} sourceId The Source id + * @param {NonEmployeeSchemaAttributeBody} nonEmployeeSchemaAttributeBody + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + createNonEmployeeSourceSchemaAttributes: function (sourceId, nonEmployeeSchemaAttributeBody, axiosOptions) { + return localVarFp.createNonEmployeeSourceSchemaAttributes(sourceId, nonEmployeeSchemaAttributeBody, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This request will delete a non-employee record. Requires role context of `idn:nesr:delete` + * @summary Delete Non-Employee Record + * @param {string} id Non-Employee record id (UUID) + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + deleteNonEmployeeRecord: function (id, axiosOptions) { + return localVarFp.deleteNonEmployeeRecord(id, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This request will delete multiple non-employee records based on the non-employee ids provided. Requires role context of `idn:nesr:delete` + * @summary Delete Multiple Non-Employee Records + * @param {DeleteNonEmployeeRecordsInBulkRequest} deleteNonEmployeeRecordsInBulkRequest Non-Employee bulk delete request body. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + deleteNonEmployeeRecordsInBulk: function (deleteNonEmployeeRecordsInBulkRequest, axiosOptions) { + return localVarFp.deleteNonEmployeeRecordsInBulk(deleteNonEmployeeRecordsInBulkRequest, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This request will delete a non-employee request. Requires role context of `idn:nesr:delete` + * @summary Delete Non-Employee Request + * @param {string} id Non-Employee request id in the UUID format + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + deleteNonEmployeeRequest: function (id, axiosOptions) { + return localVarFp.deleteNonEmployeeRequest(id, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This end-point deletes a specific schema attribute for a non-employee source. Requires role context of `idn:nesr:delete` + * @summary Delete a Schema Attribute for Non-Employee Source + * @param {string} attributeId The Schema Attribute Id (UUID) + * @param {string} sourceId The Source id + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + deleteNonEmployeeSchemaAttribute: function (attributeId, sourceId, axiosOptions) { + return localVarFp.deleteNonEmployeeSchemaAttribute(attributeId, sourceId, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This request will delete a non-employee source. Requires role context of `idn:nesr:delete`. + * @summary Delete Non-Employee Source + * @param {string} sourceId Source Id + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + deleteNonEmployeeSource: function (sourceId, axiosOptions) { + return localVarFp.deleteNonEmployeeSource(sourceId, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This end-point deletes all custom schema attributes for a non-employee source. Requires role context of `idn:nesr:delete` + * @summary Delete all custom schema attributes for Non-Employee Source + * @param {string} sourceId The Source id + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + deleteNonEmployeeSourceSchemaAttributes: function (sourceId, axiosOptions) { + return localVarFp.deleteNonEmployeeSourceSchemaAttributes(sourceId, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This requests a CSV download for all non-employees from a provided source. Requires role context of `idn:nesr:read` + * @summary Exports Non-Employee Records to CSV + * @param {string} id Source Id (UUID) + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + exportNonEmployeeRecords: function (id, axiosOptions) { + return localVarFp.exportNonEmployeeRecords(id, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This requests a download for the Source Schema Template for a provided source. Requires role context of `idn:nesr:read` + * @summary Exports Source Schema Template + * @param {string} id Source Id (UUID) + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + exportNonEmployeeSourceSchemaTemplate: function (id, axiosOptions) { + return localVarFp.exportNonEmployeeSourceSchemaTemplate(id, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * Gets a non-employee approval item detail. There are two contextual uses for this endpoint: 1. The user has the role context of `idn:nesr:read`, in which case they can get any approval. 2. The user owns the requested approval. + * @summary Get a non-employee approval item detail + * @param {string} id Non-Employee approval item id (UUID) + * @param {boolean} [includeDetail] The object nonEmployeeRequest will not be included detail when set to false. *Default value is true* + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getNonEmployeeApproval: function (id, includeDetail, axiosOptions) { + return localVarFp.getNonEmployeeApproval(id, includeDetail, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This request will retrieve a summary of non-employee approval requests. There are two contextual uses for the `requested-for` path parameter: 1. The user has the role context of `idn:nesr:read`, in which case he or she may request a summary of all non-employee approval requests assigned to a particular approver by passing in that approver\'s id. 2. The current user is an approver, in which case \"me\" should be provided as the `requested-for` value. This will provide the approver with a summary of the approval items assigned to him or her. + * @summary Get Summary of Non-Employee Approval Requests + * @param {string} requestedFor The identity (UUID) of the approver for whom for whom the summary is being retrieved. Use \"me\" instead to indicate the current user. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getNonEmployeeApprovalSummary: function (requestedFor, axiosOptions) { + return localVarFp.getNonEmployeeApprovalSummary(requestedFor, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * The nonEmployeeBulkUploadStatus API returns the status of the newest bulk upload job for the specified source. Requires role context of `idn:nesr:read` + * @summary Obtain the status of bulk upload on the source + * @param {string} id Source ID (UUID) + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getNonEmployeeBulkUploadStatus: function (id, axiosOptions) { + return localVarFp.getNonEmployeeBulkUploadStatus(id, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This gets a non-employee record. Requires role context of `idn:nesr:read` + * @summary Get a Non-Employee Record + * @param {string} id Non-Employee record id (UUID) + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getNonEmployeeRecord: function (id, axiosOptions) { + return localVarFp.getNonEmployeeRecord(id, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This gets a non-employee request. There are two contextual uses for this endpoint: 1. The user has the role context of `idn:nesr:read`, in this case the user can get the non-employee request for any user. 2. The user must be the owner of the non-employee request. + * @summary Get a Non-Employee Request + * @param {string} id Non-Employee request id (UUID) + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getNonEmployeeRequest: function (id, axiosOptions) { + return localVarFp.getNonEmployeeRequest(id, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This request will retrieve a summary of non-employee requests. There are two contextual uses for the `requested-for` path parameter: 1. The user has the role context of `idn:nesr:read`, in which case he or she may request a summary of all non-employee approval requests assigned to a particular account manager by passing in that manager\'s id. 2. The current user is an account manager, in which case \"me\" should be provided as the `requested-for` value. This will provide the user with a summary of the non-employee requests in the source(s) he or she manages. + * @summary Get Summary of Non-Employee Requests + * @param {string} requestedFor The identity (UUID) of the non-employee account manager for whom the summary is being retrieved. Use \"me\" instead to indicate the current user. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getNonEmployeeRequestSummary: function (requestedFor, axiosOptions) { + return localVarFp.getNonEmployeeRequestSummary(requestedFor, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This API gets a schema attribute by Id for the specified Non-Employee SourceId. Requires role context of `idn:nesr:read` or the user must be an account manager of the source. + * @summary Get Schema Attribute Non-Employee Source + * @param {string} attributeId The Schema Attribute Id (UUID) + * @param {string} sourceId The Source id + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getNonEmployeeSchemaAttribute: function (attributeId, sourceId, axiosOptions) { + return localVarFp.getNonEmployeeSchemaAttribute(attributeId, sourceId, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This gets a non-employee source. There are two contextual uses for the requested-for path parameter: 1. The user has the role context of `idn:nesr:read`, in which case he or she may request any source. 2. The current user is an account manager, in which case the user can only request sources that they own. + * @summary Get a Non-Employee Source + * @param {string} sourceId Source Id + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getNonEmployeeSource: function (sourceId, axiosOptions) { + return localVarFp.getNonEmployeeSource(sourceId, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This API gets the list of schema attributes for the specified Non-Employee SourceId. There are 8 mandatory attributes added to each new Non-Employee Source automatically. Additionaly, user can add up to 10 custom attributes. This interface returns all the mandatory attributes followed by any custom attributes. At most, a total of 18 attributes will be returned. Requires role context of `idn:nesr:read` or the user must be an account manager of the source. + * @summary List Schema Attributes Non-Employee Source + * @param {string} sourceId The Source id + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getNonEmployeeSourceSchemaAttributes: function (sourceId, axiosOptions) { + return localVarFp.getNonEmployeeSourceSchemaAttributes(sourceId, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This post will import, or update, Non-Employee records found in the CSV. Requires role context of `idn:nesr:create` + * @summary Imports, or Updates, Non-Employee Records + * @param {string} id Source Id (UUID) + * @param {any} data + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + importNonEmployeeRecordsInBulk: function (id, data, axiosOptions) { + return localVarFp.importNonEmployeeRecordsInBulk(id, data, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This gets a list of non-employee approval requests. There are two contextual uses for this endpoint: 1. The user has the role context of `idn:nesr:read`, in which case they can list the approvals for any approver. 2. The user owns the requested approval. + * @summary Get List of Non-Employee Approval Requests + * @param {string} [requestedFor] The identity for whom the request was made. *me* indicates the current user. + * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **approvalStatus**: *eq* + * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **created, modified** + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + listNonEmployeeApprovals: function (requestedFor, limit, offset, count, filters, sorters, axiosOptions) { + return localVarFp.listNonEmployeeApprovals(requestedFor, limit, offset, count, filters, sorters, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This gets a list of non-employee records. There are two contextual uses for this endpoint: 1. The user has the role context of `idn:nesr:read`, in which case they can get a list of all of the non-employees. 2. The user is an account manager, in which case they can get a list of the non-employees that they manage. + * @summary List Non-Employee Records + * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **id, accountName, sourceId, manager, firstName, lastName, email, phone, startDate, endDate, created, modified** + * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **sourceId**: *eq* + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + listNonEmployeeRecords: function (limit, offset, count, sorters, filters, axiosOptions) { + return localVarFp.listNonEmployeeRecords(limit, offset, count, sorters, filters, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This gets a list of non-employee requests. There are two contextual uses for the `requested-for` path parameter: 1. The user has the role context of `idn:nesr:read`, in which case he or she may request a list non-employee requests assigned to a particular account manager by passing in that manager\'s id. 2. The current user is an account manager, in which case \"me\" should be provided as the `requested-for` value. This will provide the user with a list of the non-employee requests in the source(s) he or she manages. + * @summary List Non-Employee Requests + * @param {string} requestedFor The identity for whom the request was made. *me* indicates the current user. + * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **created, approvalStatus, firstName, lastName, email, phone, accountName, startDate, endDate** + * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **sourceId**: *eq* + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + listNonEmployeeRequests: function (requestedFor, limit, offset, count, sorters, filters, axiosOptions) { + return localVarFp.listNonEmployeeRequests(requestedFor, limit, offset, count, sorters, filters, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This gets a list of non-employee sources. There are two contextual uses for the requested-for path parameter: 1. The user has the role context of `idn:nesr:read`, in which case he or she may request a list sources assigned to a particular account manager by passing in that manager\'s id. 2. The current user is an account manager, in which case \"me\" should be provided as the `requested-for` value. This will provide the user with a list of the sources that he or she owns. + * @summary List Non-Employee Sources + * @param {string} requestedFor The identity for whom the request was made. *me* indicates the current user. + * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {boolean} [nonEmployeeCount] The flag to determine whether return a non-employee count associate with source. + * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **name, created, sourceId** + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + listNonEmployeeSources: function (requestedFor, limit, offset, count, nonEmployeeCount, sorters, axiosOptions) { + return localVarFp.listNonEmployeeSources(requestedFor, limit, offset, count, nonEmployeeCount, sorters, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This request will patch a non-employee record. There are two contextual uses for this endpoint: 1. The user has the role context of `idn:nesr:update`, in which case they update all available fields. 2. The user is owner of the source, in this case they can only update the end date. + * @summary Patch Non-Employee Record + * @param {string} id Non-employee record id (UUID) + * @param {Array} jsonPatchOperation A list of non-employee update operations according to the [JSON Patch](https://tools.ietf.org/html/rfc6902) standard. Attributes are restricted by user type. Owner of source can update end date. Organization admins can update all available fields. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + patchNonEmployeeRecord: function (id, jsonPatchOperation, axiosOptions) { + return localVarFp.patchNonEmployeeRecord(id, jsonPatchOperation, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This end-point patches a specific schema attribute for a non-employee SourceId. Requires role context of `idn:nesr:update` + * @summary Patch a Schema Attribute for Non-Employee Source + * @param {string} attributeId The Schema Attribute Id (UUID) + * @param {string} sourceId The Source id + * @param {Array} jsonPatchOperation A list of schema attribute update operations according to the [JSON Patch](https://tools.ietf.org/html/rfc6902) standard. The following properties are allowed for update \':\' \'label\', \'helpText\', \'placeholder\', \'required\'. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + patchNonEmployeeSchemaAttribute: function (attributeId, sourceId, jsonPatchOperation, axiosOptions) { + return localVarFp.patchNonEmployeeSchemaAttribute(attributeId, sourceId, jsonPatchOperation, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * patch a non-employee source. (partial update)
Patchable field: **name, description, approvers, accountManagers** Requires role context of `idn:nesr:update`. + * @summary Patch a Non-Employee Source + * @param {string} sourceId Source Id + * @param {Array} jsonPatchOperation A list of non-employee source update operations according to the [JSON Patch](https://tools.ietf.org/html/rfc6902) standard. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + patchNonEmployeeSource: function (sourceId, jsonPatchOperation, axiosOptions) { + return localVarFp.patchNonEmployeeSource(sourceId, jsonPatchOperation, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This endpoint will reject an approval item request and notify user. The current user must be the requested approver. + * @summary Reject a Non-Employee Request + * @param {string} id Non-Employee approval item id (UUID) + * @param {NonEmployeeRejectApprovalDecision} nonEmployeeRejectApprovalDecision + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + rejectNonEmployeeRequest: function (id, nonEmployeeRejectApprovalDecision, axiosOptions) { + return localVarFp.rejectNonEmployeeRequest(id, nonEmployeeRejectApprovalDecision, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This request will update a non-employee record. There are two contextual uses for this endpoint: 1. The user has the role context of `idn:nesr:update`, in which case they update all available fields. 2. The user is owner of the source, in this case they can only update the end date. + * @summary Update Non-Employee Record + * @param {string} id Non-employee record id (UUID) + * @param {NonEmployeeRequestBody} nonEmployeeRequestBody Non-employee record creation request body. Attributes are restricted by user type. Owner of source can update end date. Organization admins can update all available fields. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + updateNonEmployeeRecord: function (id, nonEmployeeRequestBody, axiosOptions) { + return localVarFp.updateNonEmployeeRecord(id, nonEmployeeRequestBody, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + }; + }; + exports.NonEmployeeLifecycleManagementApiFactory = NonEmployeeLifecycleManagementApiFactory; + /** + * NonEmployeeLifecycleManagementApi - object-oriented interface + * @export + * @class NonEmployeeLifecycleManagementApi + * @extends {BaseAPI} + */ + var NonEmployeeLifecycleManagementApi = /** @class */ (function (_super) { + __extends(NonEmployeeLifecycleManagementApi, _super); + function NonEmployeeLifecycleManagementApi() { + return _super !== null && _super.apply(this, arguments) || this; + } + /** + * Approves a non-employee approval request and notifies the next approver. The current user must be the requested approver. + * @summary Approve a Non-Employee Request + * @param {NonEmployeeLifecycleManagementApiApproveNonEmployeeRequestRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof NonEmployeeLifecycleManagementApi + */ + NonEmployeeLifecycleManagementApi.prototype.approveNonEmployeeRequest = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.NonEmployeeLifecycleManagementApiFp)(this.configuration).approveNonEmployeeRequest(requestParameters.id, requestParameters.nonEmployeeApprovalDecision, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This request will create a non-employee record. Requires role context of `idn:nesr:create` + * @summary Create Non-Employee Record + * @param {NonEmployeeLifecycleManagementApiCreateNonEmployeeRecordRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof NonEmployeeLifecycleManagementApi + */ + NonEmployeeLifecycleManagementApi.prototype.createNonEmployeeRecord = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.NonEmployeeLifecycleManagementApiFp)(this.configuration).createNonEmployeeRecord(requestParameters.nonEmployeeRequestBody, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This request will create a non-employee request and notify the approver. Requires role context of `idn:nesr:create` or the user must own the source. + * @summary Create Non-Employee Request + * @param {NonEmployeeLifecycleManagementApiCreateNonEmployeeRequestRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof NonEmployeeLifecycleManagementApi + */ + NonEmployeeLifecycleManagementApi.prototype.createNonEmployeeRequest = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.NonEmployeeLifecycleManagementApiFp)(this.configuration).createNonEmployeeRequest(requestParameters.nonEmployeeRequestBody, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This request will create a non-employee source. Requires role context of `idn:nesr:create` + * @summary Create Non-Employee Source + * @param {NonEmployeeLifecycleManagementApiCreateNonEmployeeSourceRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof NonEmployeeLifecycleManagementApi + */ + NonEmployeeLifecycleManagementApi.prototype.createNonEmployeeSource = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.NonEmployeeLifecycleManagementApiFp)(this.configuration).createNonEmployeeSource(requestParameters.nonEmployeeSourceRequestBody, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This API creates a new schema attribute for Non-Employee Source. The schema technical name must be unique in the source. Attempts to create a schema attribute with an existing name will result in a \"400.1.409 Reference conflict\" response. At most, 10 custom attributes can be created per schema. Attempts to create more than 10 will result in a \"400.1.4 Limit violation\" response. Requires role context of `idn:nesr:create` + * @summary Create a new Schema Attribute for Non-Employee Source + * @param {NonEmployeeLifecycleManagementApiCreateNonEmployeeSourceSchemaAttributesRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof NonEmployeeLifecycleManagementApi + */ + NonEmployeeLifecycleManagementApi.prototype.createNonEmployeeSourceSchemaAttributes = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.NonEmployeeLifecycleManagementApiFp)(this.configuration).createNonEmployeeSourceSchemaAttributes(requestParameters.sourceId, requestParameters.nonEmployeeSchemaAttributeBody, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This request will delete a non-employee record. Requires role context of `idn:nesr:delete` + * @summary Delete Non-Employee Record + * @param {NonEmployeeLifecycleManagementApiDeleteNonEmployeeRecordRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof NonEmployeeLifecycleManagementApi + */ + NonEmployeeLifecycleManagementApi.prototype.deleteNonEmployeeRecord = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.NonEmployeeLifecycleManagementApiFp)(this.configuration).deleteNonEmployeeRecord(requestParameters.id, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This request will delete multiple non-employee records based on the non-employee ids provided. Requires role context of `idn:nesr:delete` + * @summary Delete Multiple Non-Employee Records + * @param {NonEmployeeLifecycleManagementApiDeleteNonEmployeeRecordsInBulkRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof NonEmployeeLifecycleManagementApi + */ + NonEmployeeLifecycleManagementApi.prototype.deleteNonEmployeeRecordsInBulk = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.NonEmployeeLifecycleManagementApiFp)(this.configuration).deleteNonEmployeeRecordsInBulk(requestParameters.deleteNonEmployeeRecordsInBulkRequest, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This request will delete a non-employee request. Requires role context of `idn:nesr:delete` + * @summary Delete Non-Employee Request + * @param {NonEmployeeLifecycleManagementApiDeleteNonEmployeeRequestRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof NonEmployeeLifecycleManagementApi + */ + NonEmployeeLifecycleManagementApi.prototype.deleteNonEmployeeRequest = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.NonEmployeeLifecycleManagementApiFp)(this.configuration).deleteNonEmployeeRequest(requestParameters.id, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This end-point deletes a specific schema attribute for a non-employee source. Requires role context of `idn:nesr:delete` + * @summary Delete a Schema Attribute for Non-Employee Source + * @param {NonEmployeeLifecycleManagementApiDeleteNonEmployeeSchemaAttributeRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof NonEmployeeLifecycleManagementApi + */ + NonEmployeeLifecycleManagementApi.prototype.deleteNonEmployeeSchemaAttribute = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.NonEmployeeLifecycleManagementApiFp)(this.configuration).deleteNonEmployeeSchemaAttribute(requestParameters.attributeId, requestParameters.sourceId, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This request will delete a non-employee source. Requires role context of `idn:nesr:delete`. + * @summary Delete Non-Employee Source + * @param {NonEmployeeLifecycleManagementApiDeleteNonEmployeeSourceRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof NonEmployeeLifecycleManagementApi + */ + NonEmployeeLifecycleManagementApi.prototype.deleteNonEmployeeSource = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.NonEmployeeLifecycleManagementApiFp)(this.configuration).deleteNonEmployeeSource(requestParameters.sourceId, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This end-point deletes all custom schema attributes for a non-employee source. Requires role context of `idn:nesr:delete` + * @summary Delete all custom schema attributes for Non-Employee Source + * @param {NonEmployeeLifecycleManagementApiDeleteNonEmployeeSourceSchemaAttributesRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof NonEmployeeLifecycleManagementApi + */ + NonEmployeeLifecycleManagementApi.prototype.deleteNonEmployeeSourceSchemaAttributes = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.NonEmployeeLifecycleManagementApiFp)(this.configuration).deleteNonEmployeeSourceSchemaAttributes(requestParameters.sourceId, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This requests a CSV download for all non-employees from a provided source. Requires role context of `idn:nesr:read` + * @summary Exports Non-Employee Records to CSV + * @param {NonEmployeeLifecycleManagementApiExportNonEmployeeRecordsRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof NonEmployeeLifecycleManagementApi + */ + NonEmployeeLifecycleManagementApi.prototype.exportNonEmployeeRecords = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.NonEmployeeLifecycleManagementApiFp)(this.configuration).exportNonEmployeeRecords(requestParameters.id, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This requests a download for the Source Schema Template for a provided source. Requires role context of `idn:nesr:read` + * @summary Exports Source Schema Template + * @param {NonEmployeeLifecycleManagementApiExportNonEmployeeSourceSchemaTemplateRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof NonEmployeeLifecycleManagementApi + */ + NonEmployeeLifecycleManagementApi.prototype.exportNonEmployeeSourceSchemaTemplate = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.NonEmployeeLifecycleManagementApiFp)(this.configuration).exportNonEmployeeSourceSchemaTemplate(requestParameters.id, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * Gets a non-employee approval item detail. There are two contextual uses for this endpoint: 1. The user has the role context of `idn:nesr:read`, in which case they can get any approval. 2. The user owns the requested approval. + * @summary Get a non-employee approval item detail + * @param {NonEmployeeLifecycleManagementApiGetNonEmployeeApprovalRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof NonEmployeeLifecycleManagementApi + */ + NonEmployeeLifecycleManagementApi.prototype.getNonEmployeeApproval = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.NonEmployeeLifecycleManagementApiFp)(this.configuration).getNonEmployeeApproval(requestParameters.id, requestParameters.includeDetail, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This request will retrieve a summary of non-employee approval requests. There are two contextual uses for the `requested-for` path parameter: 1. The user has the role context of `idn:nesr:read`, in which case he or she may request a summary of all non-employee approval requests assigned to a particular approver by passing in that approver\'s id. 2. The current user is an approver, in which case \"me\" should be provided as the `requested-for` value. This will provide the approver with a summary of the approval items assigned to him or her. + * @summary Get Summary of Non-Employee Approval Requests + * @param {NonEmployeeLifecycleManagementApiGetNonEmployeeApprovalSummaryRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof NonEmployeeLifecycleManagementApi + */ + NonEmployeeLifecycleManagementApi.prototype.getNonEmployeeApprovalSummary = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.NonEmployeeLifecycleManagementApiFp)(this.configuration).getNonEmployeeApprovalSummary(requestParameters.requestedFor, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * The nonEmployeeBulkUploadStatus API returns the status of the newest bulk upload job for the specified source. Requires role context of `idn:nesr:read` + * @summary Obtain the status of bulk upload on the source + * @param {NonEmployeeLifecycleManagementApiGetNonEmployeeBulkUploadStatusRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof NonEmployeeLifecycleManagementApi + */ + NonEmployeeLifecycleManagementApi.prototype.getNonEmployeeBulkUploadStatus = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.NonEmployeeLifecycleManagementApiFp)(this.configuration).getNonEmployeeBulkUploadStatus(requestParameters.id, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This gets a non-employee record. Requires role context of `idn:nesr:read` + * @summary Get a Non-Employee Record + * @param {NonEmployeeLifecycleManagementApiGetNonEmployeeRecordRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof NonEmployeeLifecycleManagementApi + */ + NonEmployeeLifecycleManagementApi.prototype.getNonEmployeeRecord = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.NonEmployeeLifecycleManagementApiFp)(this.configuration).getNonEmployeeRecord(requestParameters.id, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This gets a non-employee request. There are two contextual uses for this endpoint: 1. The user has the role context of `idn:nesr:read`, in this case the user can get the non-employee request for any user. 2. The user must be the owner of the non-employee request. + * @summary Get a Non-Employee Request + * @param {NonEmployeeLifecycleManagementApiGetNonEmployeeRequestRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof NonEmployeeLifecycleManagementApi + */ + NonEmployeeLifecycleManagementApi.prototype.getNonEmployeeRequest = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.NonEmployeeLifecycleManagementApiFp)(this.configuration).getNonEmployeeRequest(requestParameters.id, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This request will retrieve a summary of non-employee requests. There are two contextual uses for the `requested-for` path parameter: 1. The user has the role context of `idn:nesr:read`, in which case he or she may request a summary of all non-employee approval requests assigned to a particular account manager by passing in that manager\'s id. 2. The current user is an account manager, in which case \"me\" should be provided as the `requested-for` value. This will provide the user with a summary of the non-employee requests in the source(s) he or she manages. + * @summary Get Summary of Non-Employee Requests + * @param {NonEmployeeLifecycleManagementApiGetNonEmployeeRequestSummaryRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof NonEmployeeLifecycleManagementApi + */ + NonEmployeeLifecycleManagementApi.prototype.getNonEmployeeRequestSummary = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.NonEmployeeLifecycleManagementApiFp)(this.configuration).getNonEmployeeRequestSummary(requestParameters.requestedFor, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This API gets a schema attribute by Id for the specified Non-Employee SourceId. Requires role context of `idn:nesr:read` or the user must be an account manager of the source. + * @summary Get Schema Attribute Non-Employee Source + * @param {NonEmployeeLifecycleManagementApiGetNonEmployeeSchemaAttributeRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof NonEmployeeLifecycleManagementApi + */ + NonEmployeeLifecycleManagementApi.prototype.getNonEmployeeSchemaAttribute = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.NonEmployeeLifecycleManagementApiFp)(this.configuration).getNonEmployeeSchemaAttribute(requestParameters.attributeId, requestParameters.sourceId, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This gets a non-employee source. There are two contextual uses for the requested-for path parameter: 1. The user has the role context of `idn:nesr:read`, in which case he or she may request any source. 2. The current user is an account manager, in which case the user can only request sources that they own. + * @summary Get a Non-Employee Source + * @param {NonEmployeeLifecycleManagementApiGetNonEmployeeSourceRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof NonEmployeeLifecycleManagementApi + */ + NonEmployeeLifecycleManagementApi.prototype.getNonEmployeeSource = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.NonEmployeeLifecycleManagementApiFp)(this.configuration).getNonEmployeeSource(requestParameters.sourceId, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This API gets the list of schema attributes for the specified Non-Employee SourceId. There are 8 mandatory attributes added to each new Non-Employee Source automatically. Additionaly, user can add up to 10 custom attributes. This interface returns all the mandatory attributes followed by any custom attributes. At most, a total of 18 attributes will be returned. Requires role context of `idn:nesr:read` or the user must be an account manager of the source. + * @summary List Schema Attributes Non-Employee Source + * @param {NonEmployeeLifecycleManagementApiGetNonEmployeeSourceSchemaAttributesRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof NonEmployeeLifecycleManagementApi + */ + NonEmployeeLifecycleManagementApi.prototype.getNonEmployeeSourceSchemaAttributes = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.NonEmployeeLifecycleManagementApiFp)(this.configuration).getNonEmployeeSourceSchemaAttributes(requestParameters.sourceId, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This post will import, or update, Non-Employee records found in the CSV. Requires role context of `idn:nesr:create` + * @summary Imports, or Updates, Non-Employee Records + * @param {NonEmployeeLifecycleManagementApiImportNonEmployeeRecordsInBulkRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof NonEmployeeLifecycleManagementApi + */ + NonEmployeeLifecycleManagementApi.prototype.importNonEmployeeRecordsInBulk = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.NonEmployeeLifecycleManagementApiFp)(this.configuration).importNonEmployeeRecordsInBulk(requestParameters.id, requestParameters.data, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This gets a list of non-employee approval requests. There are two contextual uses for this endpoint: 1. The user has the role context of `idn:nesr:read`, in which case they can list the approvals for any approver. 2. The user owns the requested approval. + * @summary Get List of Non-Employee Approval Requests + * @param {NonEmployeeLifecycleManagementApiListNonEmployeeApprovalsRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof NonEmployeeLifecycleManagementApi + */ + NonEmployeeLifecycleManagementApi.prototype.listNonEmployeeApprovals = function (requestParameters, axiosOptions) { + var _this = this; + if (requestParameters === void 0) { requestParameters = {}; } + return (0, exports.NonEmployeeLifecycleManagementApiFp)(this.configuration).listNonEmployeeApprovals(requestParameters.requestedFor, requestParameters.limit, requestParameters.offset, requestParameters.count, requestParameters.filters, requestParameters.sorters, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This gets a list of non-employee records. There are two contextual uses for this endpoint: 1. The user has the role context of `idn:nesr:read`, in which case they can get a list of all of the non-employees. 2. The user is an account manager, in which case they can get a list of the non-employees that they manage. + * @summary List Non-Employee Records + * @param {NonEmployeeLifecycleManagementApiListNonEmployeeRecordsRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof NonEmployeeLifecycleManagementApi + */ + NonEmployeeLifecycleManagementApi.prototype.listNonEmployeeRecords = function (requestParameters, axiosOptions) { + var _this = this; + if (requestParameters === void 0) { requestParameters = {}; } + return (0, exports.NonEmployeeLifecycleManagementApiFp)(this.configuration).listNonEmployeeRecords(requestParameters.limit, requestParameters.offset, requestParameters.count, requestParameters.sorters, requestParameters.filters, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This gets a list of non-employee requests. There are two contextual uses for the `requested-for` path parameter: 1. The user has the role context of `idn:nesr:read`, in which case he or she may request a list non-employee requests assigned to a particular account manager by passing in that manager\'s id. 2. The current user is an account manager, in which case \"me\" should be provided as the `requested-for` value. This will provide the user with a list of the non-employee requests in the source(s) he or she manages. + * @summary List Non-Employee Requests + * @param {NonEmployeeLifecycleManagementApiListNonEmployeeRequestsRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof NonEmployeeLifecycleManagementApi + */ + NonEmployeeLifecycleManagementApi.prototype.listNonEmployeeRequests = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.NonEmployeeLifecycleManagementApiFp)(this.configuration).listNonEmployeeRequests(requestParameters.requestedFor, requestParameters.limit, requestParameters.offset, requestParameters.count, requestParameters.sorters, requestParameters.filters, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This gets a list of non-employee sources. There are two contextual uses for the requested-for path parameter: 1. The user has the role context of `idn:nesr:read`, in which case he or she may request a list sources assigned to a particular account manager by passing in that manager\'s id. 2. The current user is an account manager, in which case \"me\" should be provided as the `requested-for` value. This will provide the user with a list of the sources that he or she owns. + * @summary List Non-Employee Sources + * @param {NonEmployeeLifecycleManagementApiListNonEmployeeSourcesRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof NonEmployeeLifecycleManagementApi + */ + NonEmployeeLifecycleManagementApi.prototype.listNonEmployeeSources = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.NonEmployeeLifecycleManagementApiFp)(this.configuration).listNonEmployeeSources(requestParameters.requestedFor, requestParameters.limit, requestParameters.offset, requestParameters.count, requestParameters.nonEmployeeCount, requestParameters.sorters, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This request will patch a non-employee record. There are two contextual uses for this endpoint: 1. The user has the role context of `idn:nesr:update`, in which case they update all available fields. 2. The user is owner of the source, in this case they can only update the end date. + * @summary Patch Non-Employee Record + * @param {NonEmployeeLifecycleManagementApiPatchNonEmployeeRecordRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof NonEmployeeLifecycleManagementApi + */ + NonEmployeeLifecycleManagementApi.prototype.patchNonEmployeeRecord = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.NonEmployeeLifecycleManagementApiFp)(this.configuration).patchNonEmployeeRecord(requestParameters.id, requestParameters.jsonPatchOperation, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This end-point patches a specific schema attribute for a non-employee SourceId. Requires role context of `idn:nesr:update` + * @summary Patch a Schema Attribute for Non-Employee Source + * @param {NonEmployeeLifecycleManagementApiPatchNonEmployeeSchemaAttributeRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof NonEmployeeLifecycleManagementApi + */ + NonEmployeeLifecycleManagementApi.prototype.patchNonEmployeeSchemaAttribute = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.NonEmployeeLifecycleManagementApiFp)(this.configuration).patchNonEmployeeSchemaAttribute(requestParameters.attributeId, requestParameters.sourceId, requestParameters.jsonPatchOperation, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * patch a non-employee source. (partial update)
Patchable field: **name, description, approvers, accountManagers** Requires role context of `idn:nesr:update`. + * @summary Patch a Non-Employee Source + * @param {NonEmployeeLifecycleManagementApiPatchNonEmployeeSourceRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof NonEmployeeLifecycleManagementApi + */ + NonEmployeeLifecycleManagementApi.prototype.patchNonEmployeeSource = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.NonEmployeeLifecycleManagementApiFp)(this.configuration).patchNonEmployeeSource(requestParameters.sourceId, requestParameters.jsonPatchOperation, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This endpoint will reject an approval item request and notify user. The current user must be the requested approver. + * @summary Reject a Non-Employee Request + * @param {NonEmployeeLifecycleManagementApiRejectNonEmployeeRequestRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof NonEmployeeLifecycleManagementApi + */ + NonEmployeeLifecycleManagementApi.prototype.rejectNonEmployeeRequest = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.NonEmployeeLifecycleManagementApiFp)(this.configuration).rejectNonEmployeeRequest(requestParameters.id, requestParameters.nonEmployeeRejectApprovalDecision, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This request will update a non-employee record. There are two contextual uses for this endpoint: 1. The user has the role context of `idn:nesr:update`, in which case they update all available fields. 2. The user is owner of the source, in this case they can only update the end date. + * @summary Update Non-Employee Record + * @param {NonEmployeeLifecycleManagementApiUpdateNonEmployeeRecordRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof NonEmployeeLifecycleManagementApi + */ + NonEmployeeLifecycleManagementApi.prototype.updateNonEmployeeRecord = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.NonEmployeeLifecycleManagementApiFp)(this.configuration).updateNonEmployeeRecord(requestParameters.id, requestParameters.nonEmployeeRequestBody, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + return NonEmployeeLifecycleManagementApi; + }(base_1.BaseAPI)); + exports.NonEmployeeLifecycleManagementApi = NonEmployeeLifecycleManagementApi; + /** + * OAuthClientsApi - axios parameter creator + * @export + */ + var OAuthClientsApiAxiosParamCreator = function (configuration) { + var _this = this; + return { + /** + * This creates an OAuth client. + * @summary Create OAuth Client + * @param {CreateOAuthClientRequest} createOAuthClientRequest + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + createOauthClient: function (createOAuthClientRequest, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'createOAuthClientRequest' is not null or undefined + (0, common_1.assertParamExists)('createOauthClient', 'createOAuthClientRequest', createOAuthClientRequest); + localVarPath = "/oauth-clients"; + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + localVarHeaderParameter['Content-Type'] = 'application/json'; + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(createOAuthClientRequest, localVarRequestOptions, configuration); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This deletes an OAuth client. + * @summary Delete OAuth Client + * @param {string} id The OAuth client id + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + deleteOauthClient: function (id, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'id' is not null or undefined + (0, common_1.assertParamExists)('deleteOauthClient', 'id', id); + localVarPath = "/oauth-clients/{id}" + .replace("{".concat("id", "}"), encodeURIComponent(String(id))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'DELETE' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This gets details of an OAuth client. + * @summary Get OAuth Client + * @param {string} id The OAuth client id + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getOauthClient: function (id, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'id' is not null or undefined + (0, common_1.assertParamExists)('getOauthClient', 'id', id); + localVarPath = "/oauth-clients/{id}" + .replace("{".concat("id", "}"), encodeURIComponent(String(id))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This gets a list of OAuth clients. + * @summary List OAuth Clients + * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **lastUsed**: *le, isnull* + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + listOauthClients: function (filters, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + localVarPath = "/oauth-clients"; + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + if (filters !== undefined) { + localVarQueryParameter['filters'] = filters; + } + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This performs a targeted update to the field(s) of an OAuth client. + * @summary Patch OAuth Client + * @param {string} id The OAuth client id + * @param {Array} jsonPatchOperation A list of OAuth client update operations according to the [JSON Patch](https://tools.ietf.org/html/rfc6902) standard. The following fields are patchable: * tenant * businessName * homepageUrl * name * description * accessTokenValiditySeconds * refreshTokenValiditySeconds * redirectUris * grantTypes * accessType * enabled * strongAuthSupported * claimsSupported + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + patchOauthClient: function (id, jsonPatchOperation, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'id' is not null or undefined + (0, common_1.assertParamExists)('patchOauthClient', 'id', id); + // verify required parameter 'jsonPatchOperation' is not null or undefined + (0, common_1.assertParamExists)('patchOauthClient', 'jsonPatchOperation', jsonPatchOperation); + localVarPath = "/oauth-clients/{id}" + .replace("{".concat("id", "}"), encodeURIComponent(String(id))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'PATCH' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + localVarHeaderParameter['Content-Type'] = 'application/json-patch+json'; + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(jsonPatchOperation, localVarRequestOptions, configuration); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + }; + }; + exports.OAuthClientsApiAxiosParamCreator = OAuthClientsApiAxiosParamCreator; + /** + * OAuthClientsApi - functional programming interface + * @export + */ + var OAuthClientsApiFp = function (configuration) { + var localVarAxiosParamCreator = (0, exports.OAuthClientsApiAxiosParamCreator)(configuration); + return { + /** + * This creates an OAuth client. + * @summary Create OAuth Client + * @param {CreateOAuthClientRequest} createOAuthClientRequest + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + createOauthClient: function (createOAuthClientRequest, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.createOauthClient(createOAuthClientRequest, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This deletes an OAuth client. + * @summary Delete OAuth Client + * @param {string} id The OAuth client id + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + deleteOauthClient: function (id, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.deleteOauthClient(id, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This gets details of an OAuth client. + * @summary Get OAuth Client + * @param {string} id The OAuth client id + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getOauthClient: function (id, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.getOauthClient(id, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This gets a list of OAuth clients. + * @summary List OAuth Clients + * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **lastUsed**: *le, isnull* + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + listOauthClients: function (filters, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.listOauthClients(filters, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This performs a targeted update to the field(s) of an OAuth client. + * @summary Patch OAuth Client + * @param {string} id The OAuth client id + * @param {Array} jsonPatchOperation A list of OAuth client update operations according to the [JSON Patch](https://tools.ietf.org/html/rfc6902) standard. The following fields are patchable: * tenant * businessName * homepageUrl * name * description * accessTokenValiditySeconds * refreshTokenValiditySeconds * redirectUris * grantTypes * accessType * enabled * strongAuthSupported * claimsSupported + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + patchOauthClient: function (id, jsonPatchOperation, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.patchOauthClient(id, jsonPatchOperation, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + }; + }; + exports.OAuthClientsApiFp = OAuthClientsApiFp; + /** + * OAuthClientsApi - factory interface + * @export + */ + var OAuthClientsApiFactory = function (configuration, basePath, axios) { + var localVarFp = (0, exports.OAuthClientsApiFp)(configuration); + return { + /** + * This creates an OAuth client. + * @summary Create OAuth Client + * @param {CreateOAuthClientRequest} createOAuthClientRequest + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + createOauthClient: function (createOAuthClientRequest, axiosOptions) { + return localVarFp.createOauthClient(createOAuthClientRequest, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This deletes an OAuth client. + * @summary Delete OAuth Client + * @param {string} id The OAuth client id + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + deleteOauthClient: function (id, axiosOptions) { + return localVarFp.deleteOauthClient(id, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This gets details of an OAuth client. + * @summary Get OAuth Client + * @param {string} id The OAuth client id + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getOauthClient: function (id, axiosOptions) { + return localVarFp.getOauthClient(id, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This gets a list of OAuth clients. + * @summary List OAuth Clients + * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **lastUsed**: *le, isnull* + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + listOauthClients: function (filters, axiosOptions) { + return localVarFp.listOauthClients(filters, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This performs a targeted update to the field(s) of an OAuth client. + * @summary Patch OAuth Client + * @param {string} id The OAuth client id + * @param {Array} jsonPatchOperation A list of OAuth client update operations according to the [JSON Patch](https://tools.ietf.org/html/rfc6902) standard. The following fields are patchable: * tenant * businessName * homepageUrl * name * description * accessTokenValiditySeconds * refreshTokenValiditySeconds * redirectUris * grantTypes * accessType * enabled * strongAuthSupported * claimsSupported + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + patchOauthClient: function (id, jsonPatchOperation, axiosOptions) { + return localVarFp.patchOauthClient(id, jsonPatchOperation, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + }; + }; + exports.OAuthClientsApiFactory = OAuthClientsApiFactory; + /** + * OAuthClientsApi - object-oriented interface + * @export + * @class OAuthClientsApi + * @extends {BaseAPI} + */ + var OAuthClientsApi = /** @class */ (function (_super) { + __extends(OAuthClientsApi, _super); + function OAuthClientsApi() { + return _super !== null && _super.apply(this, arguments) || this; + } + /** + * This creates an OAuth client. + * @summary Create OAuth Client + * @param {OAuthClientsApiCreateOauthClientRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof OAuthClientsApi + */ + OAuthClientsApi.prototype.createOauthClient = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.OAuthClientsApiFp)(this.configuration).createOauthClient(requestParameters.createOAuthClientRequest, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This deletes an OAuth client. + * @summary Delete OAuth Client + * @param {OAuthClientsApiDeleteOauthClientRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof OAuthClientsApi + */ + OAuthClientsApi.prototype.deleteOauthClient = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.OAuthClientsApiFp)(this.configuration).deleteOauthClient(requestParameters.id, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This gets details of an OAuth client. + * @summary Get OAuth Client + * @param {OAuthClientsApiGetOauthClientRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof OAuthClientsApi + */ + OAuthClientsApi.prototype.getOauthClient = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.OAuthClientsApiFp)(this.configuration).getOauthClient(requestParameters.id, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This gets a list of OAuth clients. + * @summary List OAuth Clients + * @param {OAuthClientsApiListOauthClientsRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof OAuthClientsApi + */ + OAuthClientsApi.prototype.listOauthClients = function (requestParameters, axiosOptions) { + var _this = this; + if (requestParameters === void 0) { requestParameters = {}; } + return (0, exports.OAuthClientsApiFp)(this.configuration).listOauthClients(requestParameters.filters, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This performs a targeted update to the field(s) of an OAuth client. + * @summary Patch OAuth Client + * @param {OAuthClientsApiPatchOauthClientRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof OAuthClientsApi + */ + OAuthClientsApi.prototype.patchOauthClient = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.OAuthClientsApiFp)(this.configuration).patchOauthClient(requestParameters.id, requestParameters.jsonPatchOperation, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + return OAuthClientsApi; + }(base_1.BaseAPI)); + exports.OAuthClientsApi = OAuthClientsApi; + /** + * PasswordConfigurationApi - axios parameter creator + * @export + */ + var PasswordConfigurationApiAxiosParamCreator = function (configuration) { + var _this = this; + return { + /** + * This API creates the password org config. Unspecified fields will use default value. To be able to use the custom password instructions, you must set the `customInstructionsEnabled` field to \"true\". Requires ORG_ADMIN, API role or authorization scope of \'idn:password-org-config:write\' + * @summary Create Password Org Config + * @param {PasswordOrgConfig} passwordOrgConfig + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + createPasswordOrgConfig: function (passwordOrgConfig, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'passwordOrgConfig' is not null or undefined + (0, common_1.assertParamExists)('createPasswordOrgConfig', 'passwordOrgConfig', passwordOrgConfig); + localVarPath = "/password-org-config"; + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + localVarHeaderParameter['Content-Type'] = 'application/json'; + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(passwordOrgConfig, localVarRequestOptions, configuration); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This API returns the password org config . Requires ORG_ADMIN, API role or authorization scope of \'idn:password-org-config:read\' + * @summary Get Password Org Config + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getPasswordOrgConfig: function (axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + localVarPath = "/password-org-config"; + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This API updates the password org config for specified fields. Other fields will keep original value. You must set the `customInstructionsEnabled` field to \"true\" to be able to use custom password instructions. Requires ORG_ADMIN, API role or authorization scope of \'idn:password-org-config:write\' + * @summary Update Password Org Config + * @param {PasswordOrgConfig} passwordOrgConfig + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + putPasswordOrgConfig: function (passwordOrgConfig, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'passwordOrgConfig' is not null or undefined + (0, common_1.assertParamExists)('putPasswordOrgConfig', 'passwordOrgConfig', passwordOrgConfig); + localVarPath = "/password-org-config"; + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'PUT' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + localVarHeaderParameter['Content-Type'] = 'application/json'; + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(passwordOrgConfig, localVarRequestOptions, configuration); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + }; + }; + exports.PasswordConfigurationApiAxiosParamCreator = PasswordConfigurationApiAxiosParamCreator; + /** + * PasswordConfigurationApi - functional programming interface + * @export + */ + var PasswordConfigurationApiFp = function (configuration) { + var localVarAxiosParamCreator = (0, exports.PasswordConfigurationApiAxiosParamCreator)(configuration); + return { + /** + * This API creates the password org config. Unspecified fields will use default value. To be able to use the custom password instructions, you must set the `customInstructionsEnabled` field to \"true\". Requires ORG_ADMIN, API role or authorization scope of \'idn:password-org-config:write\' + * @summary Create Password Org Config + * @param {PasswordOrgConfig} passwordOrgConfig + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + createPasswordOrgConfig: function (passwordOrgConfig, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.createPasswordOrgConfig(passwordOrgConfig, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This API returns the password org config . Requires ORG_ADMIN, API role or authorization scope of \'idn:password-org-config:read\' + * @summary Get Password Org Config + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getPasswordOrgConfig: function (axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.getPasswordOrgConfig(axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This API updates the password org config for specified fields. Other fields will keep original value. You must set the `customInstructionsEnabled` field to \"true\" to be able to use custom password instructions. Requires ORG_ADMIN, API role or authorization scope of \'idn:password-org-config:write\' + * @summary Update Password Org Config + * @param {PasswordOrgConfig} passwordOrgConfig + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + putPasswordOrgConfig: function (passwordOrgConfig, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.putPasswordOrgConfig(passwordOrgConfig, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + }; + }; + exports.PasswordConfigurationApiFp = PasswordConfigurationApiFp; + /** + * PasswordConfigurationApi - factory interface + * @export + */ + var PasswordConfigurationApiFactory = function (configuration, basePath, axios) { + var localVarFp = (0, exports.PasswordConfigurationApiFp)(configuration); + return { + /** + * This API creates the password org config. Unspecified fields will use default value. To be able to use the custom password instructions, you must set the `customInstructionsEnabled` field to \"true\". Requires ORG_ADMIN, API role or authorization scope of \'idn:password-org-config:write\' + * @summary Create Password Org Config + * @param {PasswordOrgConfig} passwordOrgConfig + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + createPasswordOrgConfig: function (passwordOrgConfig, axiosOptions) { + return localVarFp.createPasswordOrgConfig(passwordOrgConfig, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This API returns the password org config . Requires ORG_ADMIN, API role or authorization scope of \'idn:password-org-config:read\' + * @summary Get Password Org Config + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getPasswordOrgConfig: function (axiosOptions) { + return localVarFp.getPasswordOrgConfig(axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This API updates the password org config for specified fields. Other fields will keep original value. You must set the `customInstructionsEnabled` field to \"true\" to be able to use custom password instructions. Requires ORG_ADMIN, API role or authorization scope of \'idn:password-org-config:write\' + * @summary Update Password Org Config + * @param {PasswordOrgConfig} passwordOrgConfig + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + putPasswordOrgConfig: function (passwordOrgConfig, axiosOptions) { + return localVarFp.putPasswordOrgConfig(passwordOrgConfig, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + }; + }; + exports.PasswordConfigurationApiFactory = PasswordConfigurationApiFactory; + /** + * PasswordConfigurationApi - object-oriented interface + * @export + * @class PasswordConfigurationApi + * @extends {BaseAPI} + */ + var PasswordConfigurationApi = /** @class */ (function (_super) { + __extends(PasswordConfigurationApi, _super); + function PasswordConfigurationApi() { + return _super !== null && _super.apply(this, arguments) || this; + } + /** + * This API creates the password org config. Unspecified fields will use default value. To be able to use the custom password instructions, you must set the `customInstructionsEnabled` field to \"true\". Requires ORG_ADMIN, API role or authorization scope of \'idn:password-org-config:write\' + * @summary Create Password Org Config + * @param {PasswordConfigurationApiCreatePasswordOrgConfigRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof PasswordConfigurationApi + */ + PasswordConfigurationApi.prototype.createPasswordOrgConfig = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.PasswordConfigurationApiFp)(this.configuration).createPasswordOrgConfig(requestParameters.passwordOrgConfig, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This API returns the password org config . Requires ORG_ADMIN, API role or authorization scope of \'idn:password-org-config:read\' + * @summary Get Password Org Config + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof PasswordConfigurationApi + */ + PasswordConfigurationApi.prototype.getPasswordOrgConfig = function (axiosOptions) { + var _this = this; + return (0, exports.PasswordConfigurationApiFp)(this.configuration).getPasswordOrgConfig(axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This API updates the password org config for specified fields. Other fields will keep original value. You must set the `customInstructionsEnabled` field to \"true\" to be able to use custom password instructions. Requires ORG_ADMIN, API role or authorization scope of \'idn:password-org-config:write\' + * @summary Update Password Org Config + * @param {PasswordConfigurationApiPutPasswordOrgConfigRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof PasswordConfigurationApi + */ + PasswordConfigurationApi.prototype.putPasswordOrgConfig = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.PasswordConfigurationApiFp)(this.configuration).putPasswordOrgConfig(requestParameters.passwordOrgConfig, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + return PasswordConfigurationApi; + }(base_1.BaseAPI)); + exports.PasswordConfigurationApi = PasswordConfigurationApi; + /** + * PasswordDictionaryApi - axios parameter creator + * @export + */ + var PasswordDictionaryApiAxiosParamCreator = function (configuration) { + var _this = this; + return { + /** + * This gets password dictionary for the organization. A token with ORG_ADMIN authority is required to call this API. + * @summary Get Password Dictionary + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getPasswordDictionary: function (axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + localVarPath = "/password-dictionary"; + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This updates password dictionary for the organization. A token with ORG_ADMIN authority is required to call this API. + * @summary Update Password Dictionary + * @param {any} [file] + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + updatePasswordDictionary: function (file, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, localVarFormParams, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + localVarPath = "/password-dictionary"; + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'PUT' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + localVarFormParams = new ((configuration && configuration.formDataCtor) || FormData)(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + if (file !== undefined) { + localVarFormParams.append('file', file); + } + localVarHeaderParameter['Content-Type'] = 'multipart/form-data'; + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + localVarRequestOptions.data = localVarFormParams; + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + }; + }; + exports.PasswordDictionaryApiAxiosParamCreator = PasswordDictionaryApiAxiosParamCreator; + /** + * PasswordDictionaryApi - functional programming interface + * @export + */ + var PasswordDictionaryApiFp = function (configuration) { + var localVarAxiosParamCreator = (0, exports.PasswordDictionaryApiAxiosParamCreator)(configuration); + return { + /** + * This gets password dictionary for the organization. A token with ORG_ADMIN authority is required to call this API. + * @summary Get Password Dictionary + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getPasswordDictionary: function (axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.getPasswordDictionary(axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This updates password dictionary for the organization. A token with ORG_ADMIN authority is required to call this API. + * @summary Update Password Dictionary + * @param {any} [file] + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + updatePasswordDictionary: function (file, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.updatePasswordDictionary(file, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + }; + }; + exports.PasswordDictionaryApiFp = PasswordDictionaryApiFp; + /** + * PasswordDictionaryApi - factory interface + * @export + */ + var PasswordDictionaryApiFactory = function (configuration, basePath, axios) { + var localVarFp = (0, exports.PasswordDictionaryApiFp)(configuration); + return { + /** + * This gets password dictionary for the organization. A token with ORG_ADMIN authority is required to call this API. + * @summary Get Password Dictionary + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getPasswordDictionary: function (axiosOptions) { + return localVarFp.getPasswordDictionary(axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This updates password dictionary for the organization. A token with ORG_ADMIN authority is required to call this API. + * @summary Update Password Dictionary + * @param {any} [file] + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + updatePasswordDictionary: function (file, axiosOptions) { + return localVarFp.updatePasswordDictionary(file, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + }; + }; + exports.PasswordDictionaryApiFactory = PasswordDictionaryApiFactory; + /** + * PasswordDictionaryApi - object-oriented interface + * @export + * @class PasswordDictionaryApi + * @extends {BaseAPI} + */ + var PasswordDictionaryApi = /** @class */ (function (_super) { + __extends(PasswordDictionaryApi, _super); + function PasswordDictionaryApi() { + return _super !== null && _super.apply(this, arguments) || this; + } + /** + * This gets password dictionary for the organization. A token with ORG_ADMIN authority is required to call this API. + * @summary Get Password Dictionary + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof PasswordDictionaryApi + */ + PasswordDictionaryApi.prototype.getPasswordDictionary = function (axiosOptions) { + var _this = this; + return (0, exports.PasswordDictionaryApiFp)(this.configuration).getPasswordDictionary(axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This updates password dictionary for the organization. A token with ORG_ADMIN authority is required to call this API. + * @summary Update Password Dictionary + * @param {PasswordDictionaryApiUpdatePasswordDictionaryRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof PasswordDictionaryApi + */ + PasswordDictionaryApi.prototype.updatePasswordDictionary = function (requestParameters, axiosOptions) { + var _this = this; + if (requestParameters === void 0) { requestParameters = {}; } + return (0, exports.PasswordDictionaryApiFp)(this.configuration).updatePasswordDictionary(requestParameters.file, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + return PasswordDictionaryApi; + }(base_1.BaseAPI)); + exports.PasswordDictionaryApi = PasswordDictionaryApi; + /** + * PasswordManagementApi - axios parameter creator + * @export + */ + var PasswordManagementApiAxiosParamCreator = function (configuration) { + var _this = this; + return { + /** + * This API returns the status of a password change request. A token with identity owner or trusted API client application authority is required to call this API. + * @summary Get Password Change Request Status + * @param {string} id Password change request ID + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getPasswordChangeStatus: function (id, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'id' is not null or undefined + (0, common_1.assertParamExists)('getPasswordChangeStatus', 'id', id); + localVarPath = "/password-change-status/{id}" + .replace("{".concat("id", "}"), encodeURIComponent(String(id))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This API is used to query password related information. A token with [API authority](https://developer.sailpoint.com/idn/api/authentication#client-credentials-grant-flow) is required to call this API. \"API authority\" refers to a token that only has the \"client_credentials\" grant type, and therefore no user context. A [personal access token](https://developer.sailpoint.com/idn/api/authentication#personal-access-tokens) or a token generated with the [authorization_code](https://developer.sailpoint.com/idn/api/authentication#authorization-code-grant-flow) grant type will **NOT** work on this endpoint, and a `403 Forbidden` response will be returned. + * @summary Query Password Info + * @param {PasswordInfoQueryDTO} passwordInfoQueryDTO + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + queryPasswordInfo: function (passwordInfoQueryDTO, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'passwordInfoQueryDTO' is not null or undefined + (0, common_1.assertParamExists)('queryPasswordInfo', 'passwordInfoQueryDTO', passwordInfoQueryDTO); + localVarPath = "/query-password-info"; + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + localVarHeaderParameter['Content-Type'] = 'application/json'; + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(passwordInfoQueryDTO, localVarRequestOptions, configuration); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This API is used to set a password for an identity. An identity can change their own password (as well as any of their accounts\' passwords) if they use a token generated by their IDN user, such as a [personal access token](https://developer.sailpoint.com/idn/api/authentication#personal-access-tokens) or [\"authorization_code\" derived OAuth token](https://developer.sailpoint.com/idn/api/authentication#authorization-code-grant-flow). A token with [API authority](https://developer.sailpoint.com/idn/api/authentication#client-credentials-grant-flow) can be used to change **any** identity\'s password or the password of any of the identity\'s accounts. \"API authority\" refers to a token that only has the \"client_credentials\" grant type. You can use this endpoint to generate an `encryptedPassword` (RSA encrypted using publicKey). To do so, follow these steps: 1. Use [Query Password Info](https://developer.sailpoint.com/idn/api/v3/query-password-info) to get the following information: `identityId`, `sourceId`, `publicKeyId`, `publicKey`, `accounts`, and `policies`. 2. Choose an account from the previous response that you will provide as an `accountId` in your request to set an encrypted password. 3. Use [Set Identity\'s Password](https://developer.sailpoint.com/idn/api/v3/set-password) and provide the information you got from your earlier query. Then add this code to your request to get the encrypted password: ```java import javax.crypto.Cipher; import java.security.KeyFactory; import java.security.PublicKey; import java.security.spec.X509EncodedKeySpec; import java util.Base64; String encrypt(String publicKey, String toEncrypt) throws Exception { byte[] publicKeyBytes = Base64.getDecoder().decode(publicKey); byte[] encryptedBytes = encryptRsa(publicKeyBytes, toEncrypt.getBytes(\"UTF-8\")); return Base64.getEncoder().encodeToString(encryptedBytes); } private byte[] encryptRsa(byte[] publicKeyBytes, byte[] toEncryptBytes) throws Exception { PublicKey key = KeyFactory.getInstance(\"RSA\").generatePublic(new X509EncodedKeySpec(publicKeyBytes)); String transformation = \"RSA/ECB/PKCS1Padding\"; Cipher cipher = Cipher.getInstance(transformation); cipher.init(1, key); return cipher.doFinal(toEncryptBytes); } ``` In this example, `toEncrypt` refers to the plain text password you are setting and then encrypting, and the `publicKey` refers to the publicKey you got from the first request you sent. You can then use [Get Password Change Request Status](https://developer.sailpoint.com/idn/api/v3/get-password-change-status) to check the password change request status. To do so, you must provide the `requestId` from your earlier request to set the password. + * @summary Set Identity\'s Password + * @param {PasswordChangeRequest} passwordChangeRequest + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + setPassword: function (passwordChangeRequest, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'passwordChangeRequest' is not null or undefined + (0, common_1.assertParamExists)('setPassword', 'passwordChangeRequest', passwordChangeRequest); + localVarPath = "/set-password"; + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + localVarHeaderParameter['Content-Type'] = 'application/json'; + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(passwordChangeRequest, localVarRequestOptions, configuration); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + }; + }; + exports.PasswordManagementApiAxiosParamCreator = PasswordManagementApiAxiosParamCreator; + /** + * PasswordManagementApi - functional programming interface + * @export + */ + var PasswordManagementApiFp = function (configuration) { + var localVarAxiosParamCreator = (0, exports.PasswordManagementApiAxiosParamCreator)(configuration); + return { + /** + * This API returns the status of a password change request. A token with identity owner or trusted API client application authority is required to call this API. + * @summary Get Password Change Request Status + * @param {string} id Password change request ID + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getPasswordChangeStatus: function (id, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.getPasswordChangeStatus(id, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This API is used to query password related information. A token with [API authority](https://developer.sailpoint.com/idn/api/authentication#client-credentials-grant-flow) is required to call this API. \"API authority\" refers to a token that only has the \"client_credentials\" grant type, and therefore no user context. A [personal access token](https://developer.sailpoint.com/idn/api/authentication#personal-access-tokens) or a token generated with the [authorization_code](https://developer.sailpoint.com/idn/api/authentication#authorization-code-grant-flow) grant type will **NOT** work on this endpoint, and a `403 Forbidden` response will be returned. + * @summary Query Password Info + * @param {PasswordInfoQueryDTO} passwordInfoQueryDTO + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + queryPasswordInfo: function (passwordInfoQueryDTO, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.queryPasswordInfo(passwordInfoQueryDTO, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This API is used to set a password for an identity. An identity can change their own password (as well as any of their accounts\' passwords) if they use a token generated by their IDN user, such as a [personal access token](https://developer.sailpoint.com/idn/api/authentication#personal-access-tokens) or [\"authorization_code\" derived OAuth token](https://developer.sailpoint.com/idn/api/authentication#authorization-code-grant-flow). A token with [API authority](https://developer.sailpoint.com/idn/api/authentication#client-credentials-grant-flow) can be used to change **any** identity\'s password or the password of any of the identity\'s accounts. \"API authority\" refers to a token that only has the \"client_credentials\" grant type. You can use this endpoint to generate an `encryptedPassword` (RSA encrypted using publicKey). To do so, follow these steps: 1. Use [Query Password Info](https://developer.sailpoint.com/idn/api/v3/query-password-info) to get the following information: `identityId`, `sourceId`, `publicKeyId`, `publicKey`, `accounts`, and `policies`. 2. Choose an account from the previous response that you will provide as an `accountId` in your request to set an encrypted password. 3. Use [Set Identity\'s Password](https://developer.sailpoint.com/idn/api/v3/set-password) and provide the information you got from your earlier query. Then add this code to your request to get the encrypted password: ```java import javax.crypto.Cipher; import java.security.KeyFactory; import java.security.PublicKey; import java.security.spec.X509EncodedKeySpec; import java util.Base64; String encrypt(String publicKey, String toEncrypt) throws Exception { byte[] publicKeyBytes = Base64.getDecoder().decode(publicKey); byte[] encryptedBytes = encryptRsa(publicKeyBytes, toEncrypt.getBytes(\"UTF-8\")); return Base64.getEncoder().encodeToString(encryptedBytes); } private byte[] encryptRsa(byte[] publicKeyBytes, byte[] toEncryptBytes) throws Exception { PublicKey key = KeyFactory.getInstance(\"RSA\").generatePublic(new X509EncodedKeySpec(publicKeyBytes)); String transformation = \"RSA/ECB/PKCS1Padding\"; Cipher cipher = Cipher.getInstance(transformation); cipher.init(1, key); return cipher.doFinal(toEncryptBytes); } ``` In this example, `toEncrypt` refers to the plain text password you are setting and then encrypting, and the `publicKey` refers to the publicKey you got from the first request you sent. You can then use [Get Password Change Request Status](https://developer.sailpoint.com/idn/api/v3/get-password-change-status) to check the password change request status. To do so, you must provide the `requestId` from your earlier request to set the password. + * @summary Set Identity\'s Password + * @param {PasswordChangeRequest} passwordChangeRequest + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + setPassword: function (passwordChangeRequest, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.setPassword(passwordChangeRequest, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + }; + }; + exports.PasswordManagementApiFp = PasswordManagementApiFp; + /** + * PasswordManagementApi - factory interface + * @export + */ + var PasswordManagementApiFactory = function (configuration, basePath, axios) { + var localVarFp = (0, exports.PasswordManagementApiFp)(configuration); + return { + /** + * This API returns the status of a password change request. A token with identity owner or trusted API client application authority is required to call this API. + * @summary Get Password Change Request Status + * @param {string} id Password change request ID + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getPasswordChangeStatus: function (id, axiosOptions) { + return localVarFp.getPasswordChangeStatus(id, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This API is used to query password related information. A token with [API authority](https://developer.sailpoint.com/idn/api/authentication#client-credentials-grant-flow) is required to call this API. \"API authority\" refers to a token that only has the \"client_credentials\" grant type, and therefore no user context. A [personal access token](https://developer.sailpoint.com/idn/api/authentication#personal-access-tokens) or a token generated with the [authorization_code](https://developer.sailpoint.com/idn/api/authentication#authorization-code-grant-flow) grant type will **NOT** work on this endpoint, and a `403 Forbidden` response will be returned. + * @summary Query Password Info + * @param {PasswordInfoQueryDTO} passwordInfoQueryDTO + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + queryPasswordInfo: function (passwordInfoQueryDTO, axiosOptions) { + return localVarFp.queryPasswordInfo(passwordInfoQueryDTO, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This API is used to set a password for an identity. An identity can change their own password (as well as any of their accounts\' passwords) if they use a token generated by their IDN user, such as a [personal access token](https://developer.sailpoint.com/idn/api/authentication#personal-access-tokens) or [\"authorization_code\" derived OAuth token](https://developer.sailpoint.com/idn/api/authentication#authorization-code-grant-flow). A token with [API authority](https://developer.sailpoint.com/idn/api/authentication#client-credentials-grant-flow) can be used to change **any** identity\'s password or the password of any of the identity\'s accounts. \"API authority\" refers to a token that only has the \"client_credentials\" grant type. You can use this endpoint to generate an `encryptedPassword` (RSA encrypted using publicKey). To do so, follow these steps: 1. Use [Query Password Info](https://developer.sailpoint.com/idn/api/v3/query-password-info) to get the following information: `identityId`, `sourceId`, `publicKeyId`, `publicKey`, `accounts`, and `policies`. 2. Choose an account from the previous response that you will provide as an `accountId` in your request to set an encrypted password. 3. Use [Set Identity\'s Password](https://developer.sailpoint.com/idn/api/v3/set-password) and provide the information you got from your earlier query. Then add this code to your request to get the encrypted password: ```java import javax.crypto.Cipher; import java.security.KeyFactory; import java.security.PublicKey; import java.security.spec.X509EncodedKeySpec; import java util.Base64; String encrypt(String publicKey, String toEncrypt) throws Exception { byte[] publicKeyBytes = Base64.getDecoder().decode(publicKey); byte[] encryptedBytes = encryptRsa(publicKeyBytes, toEncrypt.getBytes(\"UTF-8\")); return Base64.getEncoder().encodeToString(encryptedBytes); } private byte[] encryptRsa(byte[] publicKeyBytes, byte[] toEncryptBytes) throws Exception { PublicKey key = KeyFactory.getInstance(\"RSA\").generatePublic(new X509EncodedKeySpec(publicKeyBytes)); String transformation = \"RSA/ECB/PKCS1Padding\"; Cipher cipher = Cipher.getInstance(transformation); cipher.init(1, key); return cipher.doFinal(toEncryptBytes); } ``` In this example, `toEncrypt` refers to the plain text password you are setting and then encrypting, and the `publicKey` refers to the publicKey you got from the first request you sent. You can then use [Get Password Change Request Status](https://developer.sailpoint.com/idn/api/v3/get-password-change-status) to check the password change request status. To do so, you must provide the `requestId` from your earlier request to set the password. + * @summary Set Identity\'s Password + * @param {PasswordChangeRequest} passwordChangeRequest + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + setPassword: function (passwordChangeRequest, axiosOptions) { + return localVarFp.setPassword(passwordChangeRequest, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + }; + }; + exports.PasswordManagementApiFactory = PasswordManagementApiFactory; + /** + * PasswordManagementApi - object-oriented interface + * @export + * @class PasswordManagementApi + * @extends {BaseAPI} + */ + var PasswordManagementApi = /** @class */ (function (_super) { + __extends(PasswordManagementApi, _super); + function PasswordManagementApi() { + return _super !== null && _super.apply(this, arguments) || this; + } + /** + * This API returns the status of a password change request. A token with identity owner or trusted API client application authority is required to call this API. + * @summary Get Password Change Request Status + * @param {PasswordManagementApiGetPasswordChangeStatusRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof PasswordManagementApi + */ + PasswordManagementApi.prototype.getPasswordChangeStatus = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.PasswordManagementApiFp)(this.configuration).getPasswordChangeStatus(requestParameters.id, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This API is used to query password related information. A token with [API authority](https://developer.sailpoint.com/idn/api/authentication#client-credentials-grant-flow) is required to call this API. \"API authority\" refers to a token that only has the \"client_credentials\" grant type, and therefore no user context. A [personal access token](https://developer.sailpoint.com/idn/api/authentication#personal-access-tokens) or a token generated with the [authorization_code](https://developer.sailpoint.com/idn/api/authentication#authorization-code-grant-flow) grant type will **NOT** work on this endpoint, and a `403 Forbidden` response will be returned. + * @summary Query Password Info + * @param {PasswordManagementApiQueryPasswordInfoRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof PasswordManagementApi + */ + PasswordManagementApi.prototype.queryPasswordInfo = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.PasswordManagementApiFp)(this.configuration).queryPasswordInfo(requestParameters.passwordInfoQueryDTO, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This API is used to set a password for an identity. An identity can change their own password (as well as any of their accounts\' passwords) if they use a token generated by their IDN user, such as a [personal access token](https://developer.sailpoint.com/idn/api/authentication#personal-access-tokens) or [\"authorization_code\" derived OAuth token](https://developer.sailpoint.com/idn/api/authentication#authorization-code-grant-flow). A token with [API authority](https://developer.sailpoint.com/idn/api/authentication#client-credentials-grant-flow) can be used to change **any** identity\'s password or the password of any of the identity\'s accounts. \"API authority\" refers to a token that only has the \"client_credentials\" grant type. You can use this endpoint to generate an `encryptedPassword` (RSA encrypted using publicKey). To do so, follow these steps: 1. Use [Query Password Info](https://developer.sailpoint.com/idn/api/v3/query-password-info) to get the following information: `identityId`, `sourceId`, `publicKeyId`, `publicKey`, `accounts`, and `policies`. 2. Choose an account from the previous response that you will provide as an `accountId` in your request to set an encrypted password. 3. Use [Set Identity\'s Password](https://developer.sailpoint.com/idn/api/v3/set-password) and provide the information you got from your earlier query. Then add this code to your request to get the encrypted password: ```java import javax.crypto.Cipher; import java.security.KeyFactory; import java.security.PublicKey; import java.security.spec.X509EncodedKeySpec; import java util.Base64; String encrypt(String publicKey, String toEncrypt) throws Exception { byte[] publicKeyBytes = Base64.getDecoder().decode(publicKey); byte[] encryptedBytes = encryptRsa(publicKeyBytes, toEncrypt.getBytes(\"UTF-8\")); return Base64.getEncoder().encodeToString(encryptedBytes); } private byte[] encryptRsa(byte[] publicKeyBytes, byte[] toEncryptBytes) throws Exception { PublicKey key = KeyFactory.getInstance(\"RSA\").generatePublic(new X509EncodedKeySpec(publicKeyBytes)); String transformation = \"RSA/ECB/PKCS1Padding\"; Cipher cipher = Cipher.getInstance(transformation); cipher.init(1, key); return cipher.doFinal(toEncryptBytes); } ``` In this example, `toEncrypt` refers to the plain text password you are setting and then encrypting, and the `publicKey` refers to the publicKey you got from the first request you sent. You can then use [Get Password Change Request Status](https://developer.sailpoint.com/idn/api/v3/get-password-change-status) to check the password change request status. To do so, you must provide the `requestId` from your earlier request to set the password. + * @summary Set Identity\'s Password + * @param {PasswordManagementApiSetPasswordRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof PasswordManagementApi + */ + PasswordManagementApi.prototype.setPassword = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.PasswordManagementApiFp)(this.configuration).setPassword(requestParameters.passwordChangeRequest, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + return PasswordManagementApi; + }(base_1.BaseAPI)); + exports.PasswordManagementApi = PasswordManagementApi; + /** + * PasswordSyncGroupsApi - axios parameter creator + * @export + */ + var PasswordSyncGroupsApiAxiosParamCreator = function (configuration) { + var _this = this; + return { + /** + * This API creates a password sync group based on the specifications provided. A token with ORG_ADMIN authority is required to call this API. + * @summary Create Password Sync Group + * @param {PasswordSyncGroup} passwordSyncGroup + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + createPasswordSyncGroup: function (passwordSyncGroup, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'passwordSyncGroup' is not null or undefined + (0, common_1.assertParamExists)('createPasswordSyncGroup', 'passwordSyncGroup', passwordSyncGroup); + localVarPath = "/password-sync-groups"; + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + localVarHeaderParameter['Content-Type'] = 'application/json'; + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(passwordSyncGroup, localVarRequestOptions, configuration); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This API deletes the specified password sync group. A token with ORG_ADMIN authority is required to call this API. + * @summary Delete Password Sync Group by ID + * @param {string} id The ID of password sync group to delete. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + deletePasswordSyncGroup: function (id, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'id' is not null or undefined + (0, common_1.assertParamExists)('deletePasswordSyncGroup', 'id', id); + localVarPath = "/password-sync-groups/{id}" + .replace("{".concat("id", "}"), encodeURIComponent(String(id))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'DELETE' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This API returns the sync group for the specified ID. A token with ORG_ADMIN authority is required to call this API. + * @summary Get Password Sync Group by ID + * @param {string} id The ID of password sync group to retrieve. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getPasswordSyncGroup: function (id, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'id' is not null or undefined + (0, common_1.assertParamExists)('getPasswordSyncGroup', 'id', id); + localVarPath = "/password-sync-groups/{id}" + .replace("{".concat("id", "}"), encodeURIComponent(String(id))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This API returns a list of password sync groups. A token with ORG_ADMIN authority is required to call this API. + * @summary Get Password Sync Group List + * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getPasswordSyncGroups: function (limit, offset, count, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + localVarPath = "/password-sync-groups"; + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + if (limit !== undefined) { + localVarQueryParameter['limit'] = limit; + } + if (offset !== undefined) { + localVarQueryParameter['offset'] = offset; + } + if (count !== undefined) { + localVarQueryParameter['count'] = count; + } + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This API updates the specified password sync group. A token with ORG_ADMIN authority is required to call this API. + * @summary Update Password Sync Group by ID + * @param {string} id The ID of password sync group to update. + * @param {PasswordSyncGroup} passwordSyncGroup + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + updatePasswordSyncGroup: function (id, passwordSyncGroup, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'id' is not null or undefined + (0, common_1.assertParamExists)('updatePasswordSyncGroup', 'id', id); + // verify required parameter 'passwordSyncGroup' is not null or undefined + (0, common_1.assertParamExists)('updatePasswordSyncGroup', 'passwordSyncGroup', passwordSyncGroup); + localVarPath = "/password-sync-groups/{id}" + .replace("{".concat("id", "}"), encodeURIComponent(String(id))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'PUT' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + localVarHeaderParameter['Content-Type'] = 'application/json'; + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(passwordSyncGroup, localVarRequestOptions, configuration); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + }; + }; + exports.PasswordSyncGroupsApiAxiosParamCreator = PasswordSyncGroupsApiAxiosParamCreator; + /** + * PasswordSyncGroupsApi - functional programming interface + * @export + */ + var PasswordSyncGroupsApiFp = function (configuration) { + var localVarAxiosParamCreator = (0, exports.PasswordSyncGroupsApiAxiosParamCreator)(configuration); + return { + /** + * This API creates a password sync group based on the specifications provided. A token with ORG_ADMIN authority is required to call this API. + * @summary Create Password Sync Group + * @param {PasswordSyncGroup} passwordSyncGroup + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + createPasswordSyncGroup: function (passwordSyncGroup, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.createPasswordSyncGroup(passwordSyncGroup, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This API deletes the specified password sync group. A token with ORG_ADMIN authority is required to call this API. + * @summary Delete Password Sync Group by ID + * @param {string} id The ID of password sync group to delete. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + deletePasswordSyncGroup: function (id, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.deletePasswordSyncGroup(id, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This API returns the sync group for the specified ID. A token with ORG_ADMIN authority is required to call this API. + * @summary Get Password Sync Group by ID + * @param {string} id The ID of password sync group to retrieve. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getPasswordSyncGroup: function (id, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.getPasswordSyncGroup(id, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This API returns a list of password sync groups. A token with ORG_ADMIN authority is required to call this API. + * @summary Get Password Sync Group List + * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getPasswordSyncGroups: function (limit, offset, count, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.getPasswordSyncGroups(limit, offset, count, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This API updates the specified password sync group. A token with ORG_ADMIN authority is required to call this API. + * @summary Update Password Sync Group by ID + * @param {string} id The ID of password sync group to update. + * @param {PasswordSyncGroup} passwordSyncGroup + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + updatePasswordSyncGroup: function (id, passwordSyncGroup, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.updatePasswordSyncGroup(id, passwordSyncGroup, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + }; + }; + exports.PasswordSyncGroupsApiFp = PasswordSyncGroupsApiFp; + /** + * PasswordSyncGroupsApi - factory interface + * @export + */ + var PasswordSyncGroupsApiFactory = function (configuration, basePath, axios) { + var localVarFp = (0, exports.PasswordSyncGroupsApiFp)(configuration); + return { + /** + * This API creates a password sync group based on the specifications provided. A token with ORG_ADMIN authority is required to call this API. + * @summary Create Password Sync Group + * @param {PasswordSyncGroup} passwordSyncGroup + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + createPasswordSyncGroup: function (passwordSyncGroup, axiosOptions) { + return localVarFp.createPasswordSyncGroup(passwordSyncGroup, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This API deletes the specified password sync group. A token with ORG_ADMIN authority is required to call this API. + * @summary Delete Password Sync Group by ID + * @param {string} id The ID of password sync group to delete. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + deletePasswordSyncGroup: function (id, axiosOptions) { + return localVarFp.deletePasswordSyncGroup(id, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This API returns the sync group for the specified ID. A token with ORG_ADMIN authority is required to call this API. + * @summary Get Password Sync Group by ID + * @param {string} id The ID of password sync group to retrieve. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getPasswordSyncGroup: function (id, axiosOptions) { + return localVarFp.getPasswordSyncGroup(id, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This API returns a list of password sync groups. A token with ORG_ADMIN authority is required to call this API. + * @summary Get Password Sync Group List + * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getPasswordSyncGroups: function (limit, offset, count, axiosOptions) { + return localVarFp.getPasswordSyncGroups(limit, offset, count, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This API updates the specified password sync group. A token with ORG_ADMIN authority is required to call this API. + * @summary Update Password Sync Group by ID + * @param {string} id The ID of password sync group to update. + * @param {PasswordSyncGroup} passwordSyncGroup + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + updatePasswordSyncGroup: function (id, passwordSyncGroup, axiosOptions) { + return localVarFp.updatePasswordSyncGroup(id, passwordSyncGroup, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + }; + }; + exports.PasswordSyncGroupsApiFactory = PasswordSyncGroupsApiFactory; + /** + * PasswordSyncGroupsApi - object-oriented interface + * @export + * @class PasswordSyncGroupsApi + * @extends {BaseAPI} + */ + var PasswordSyncGroupsApi = /** @class */ (function (_super) { + __extends(PasswordSyncGroupsApi, _super); + function PasswordSyncGroupsApi() { + return _super !== null && _super.apply(this, arguments) || this; + } + /** + * This API creates a password sync group based on the specifications provided. A token with ORG_ADMIN authority is required to call this API. + * @summary Create Password Sync Group + * @param {PasswordSyncGroupsApiCreatePasswordSyncGroupRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof PasswordSyncGroupsApi + */ + PasswordSyncGroupsApi.prototype.createPasswordSyncGroup = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.PasswordSyncGroupsApiFp)(this.configuration).createPasswordSyncGroup(requestParameters.passwordSyncGroup, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This API deletes the specified password sync group. A token with ORG_ADMIN authority is required to call this API. + * @summary Delete Password Sync Group by ID + * @param {PasswordSyncGroupsApiDeletePasswordSyncGroupRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof PasswordSyncGroupsApi + */ + PasswordSyncGroupsApi.prototype.deletePasswordSyncGroup = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.PasswordSyncGroupsApiFp)(this.configuration).deletePasswordSyncGroup(requestParameters.id, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This API returns the sync group for the specified ID. A token with ORG_ADMIN authority is required to call this API. + * @summary Get Password Sync Group by ID + * @param {PasswordSyncGroupsApiGetPasswordSyncGroupRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof PasswordSyncGroupsApi + */ + PasswordSyncGroupsApi.prototype.getPasswordSyncGroup = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.PasswordSyncGroupsApiFp)(this.configuration).getPasswordSyncGroup(requestParameters.id, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This API returns a list of password sync groups. A token with ORG_ADMIN authority is required to call this API. + * @summary Get Password Sync Group List + * @param {PasswordSyncGroupsApiGetPasswordSyncGroupsRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof PasswordSyncGroupsApi + */ + PasswordSyncGroupsApi.prototype.getPasswordSyncGroups = function (requestParameters, axiosOptions) { + var _this = this; + if (requestParameters === void 0) { requestParameters = {}; } + return (0, exports.PasswordSyncGroupsApiFp)(this.configuration).getPasswordSyncGroups(requestParameters.limit, requestParameters.offset, requestParameters.count, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This API updates the specified password sync group. A token with ORG_ADMIN authority is required to call this API. + * @summary Update Password Sync Group by ID + * @param {PasswordSyncGroupsApiUpdatePasswordSyncGroupRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof PasswordSyncGroupsApi + */ + PasswordSyncGroupsApi.prototype.updatePasswordSyncGroup = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.PasswordSyncGroupsApiFp)(this.configuration).updatePasswordSyncGroup(requestParameters.id, requestParameters.passwordSyncGroup, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + return PasswordSyncGroupsApi; + }(base_1.BaseAPI)); + exports.PasswordSyncGroupsApi = PasswordSyncGroupsApi; + /** + * PersonalAccessTokensApi - axios parameter creator + * @export + */ + var PersonalAccessTokensApiAxiosParamCreator = function (configuration) { + var _this = this; + return { + /** + * This creates a personal access token. + * @summary Create Personal Access Token + * @param {CreatePersonalAccessTokenRequest} createPersonalAccessTokenRequest Name and scope of personal access token. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + createPersonalAccessToken: function (createPersonalAccessTokenRequest, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'createPersonalAccessTokenRequest' is not null or undefined + (0, common_1.assertParamExists)('createPersonalAccessToken', 'createPersonalAccessTokenRequest', createPersonalAccessTokenRequest); + localVarPath = "/personal-access-tokens"; + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + localVarHeaderParameter['Content-Type'] = 'application/json'; + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(createPersonalAccessTokenRequest, localVarRequestOptions, configuration); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This deletes a personal access token. + * @summary Delete Personal Access Token + * @param {string} id The personal access token id + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + deletePersonalAccessToken: function (id, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'id' is not null or undefined + (0, common_1.assertParamExists)('deletePersonalAccessToken', 'id', id); + localVarPath = "/personal-access-tokens/{id}" + .replace("{".concat("id", "}"), encodeURIComponent(String(id))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'DELETE' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This gets a collection of personal access tokens associated with the optional `owner-id`. query parameter. If the `owner-id` query parameter is omitted, all personal access tokens for a tenant will be retrieved, but the caller must have the \'idn:all-personal-access-tokens:read\' right. + * @summary List Personal Access Tokens + * @param {string} [ownerId] The identity ID of the owner whose personal access tokens should be listed. If \"me\", the caller should have the following right: \'idn:my-personal-access-tokens:read\' If an actual owner ID or if the `owner-id` parameter is omitted in the request, the caller should have the following right: \'idn:all-personal-access-tokens:read\'. If the caller has the following right, then managed personal access tokens associated with `owner-id` will be retrieved: \'idn:managed-personal-access-tokens:read\' + * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **lastUsed**: *le, isnull* + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + listPersonalAccessTokens: function (ownerId, filters, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + localVarPath = "/personal-access-tokens"; + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + if (ownerId !== undefined) { + localVarQueryParameter['owner-id'] = ownerId; + } + if (filters !== undefined) { + localVarQueryParameter['filters'] = filters; + } + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This performs a targeted update to the field(s) of a Personal Access Token. + * @summary Patch Personal Access Token + * @param {string} id The Personal Access Token id + * @param {Array} jsonPatchOperation A list of OAuth client update operations according to the [JSON Patch](https://tools.ietf.org/html/rfc6902) standard. The following fields are patchable: * name * scope + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + patchPersonalAccessToken: function (id, jsonPatchOperation, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'id' is not null or undefined + (0, common_1.assertParamExists)('patchPersonalAccessToken', 'id', id); + // verify required parameter 'jsonPatchOperation' is not null or undefined + (0, common_1.assertParamExists)('patchPersonalAccessToken', 'jsonPatchOperation', jsonPatchOperation); + localVarPath = "/personal-access-tokens/{id}" + .replace("{".concat("id", "}"), encodeURIComponent(String(id))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'PATCH' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + localVarHeaderParameter['Content-Type'] = 'application/json-patch+json'; + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(jsonPatchOperation, localVarRequestOptions, configuration); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + }; + }; + exports.PersonalAccessTokensApiAxiosParamCreator = PersonalAccessTokensApiAxiosParamCreator; + /** + * PersonalAccessTokensApi - functional programming interface + * @export + */ + var PersonalAccessTokensApiFp = function (configuration) { + var localVarAxiosParamCreator = (0, exports.PersonalAccessTokensApiAxiosParamCreator)(configuration); + return { + /** + * This creates a personal access token. + * @summary Create Personal Access Token + * @param {CreatePersonalAccessTokenRequest} createPersonalAccessTokenRequest Name and scope of personal access token. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + createPersonalAccessToken: function (createPersonalAccessTokenRequest, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.createPersonalAccessToken(createPersonalAccessTokenRequest, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This deletes a personal access token. + * @summary Delete Personal Access Token + * @param {string} id The personal access token id + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + deletePersonalAccessToken: function (id, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.deletePersonalAccessToken(id, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This gets a collection of personal access tokens associated with the optional `owner-id`. query parameter. If the `owner-id` query parameter is omitted, all personal access tokens for a tenant will be retrieved, but the caller must have the \'idn:all-personal-access-tokens:read\' right. + * @summary List Personal Access Tokens + * @param {string} [ownerId] The identity ID of the owner whose personal access tokens should be listed. If \"me\", the caller should have the following right: \'idn:my-personal-access-tokens:read\' If an actual owner ID or if the `owner-id` parameter is omitted in the request, the caller should have the following right: \'idn:all-personal-access-tokens:read\'. If the caller has the following right, then managed personal access tokens associated with `owner-id` will be retrieved: \'idn:managed-personal-access-tokens:read\' + * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **lastUsed**: *le, isnull* + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + listPersonalAccessTokens: function (ownerId, filters, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.listPersonalAccessTokens(ownerId, filters, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This performs a targeted update to the field(s) of a Personal Access Token. + * @summary Patch Personal Access Token + * @param {string} id The Personal Access Token id + * @param {Array} jsonPatchOperation A list of OAuth client update operations according to the [JSON Patch](https://tools.ietf.org/html/rfc6902) standard. The following fields are patchable: * name * scope + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + patchPersonalAccessToken: function (id, jsonPatchOperation, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.patchPersonalAccessToken(id, jsonPatchOperation, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + }; + }; + exports.PersonalAccessTokensApiFp = PersonalAccessTokensApiFp; + /** + * PersonalAccessTokensApi - factory interface + * @export + */ + var PersonalAccessTokensApiFactory = function (configuration, basePath, axios) { + var localVarFp = (0, exports.PersonalAccessTokensApiFp)(configuration); + return { + /** + * This creates a personal access token. + * @summary Create Personal Access Token + * @param {CreatePersonalAccessTokenRequest} createPersonalAccessTokenRequest Name and scope of personal access token. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + createPersonalAccessToken: function (createPersonalAccessTokenRequest, axiosOptions) { + return localVarFp.createPersonalAccessToken(createPersonalAccessTokenRequest, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This deletes a personal access token. + * @summary Delete Personal Access Token + * @param {string} id The personal access token id + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + deletePersonalAccessToken: function (id, axiosOptions) { + return localVarFp.deletePersonalAccessToken(id, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This gets a collection of personal access tokens associated with the optional `owner-id`. query parameter. If the `owner-id` query parameter is omitted, all personal access tokens for a tenant will be retrieved, but the caller must have the \'idn:all-personal-access-tokens:read\' right. + * @summary List Personal Access Tokens + * @param {string} [ownerId] The identity ID of the owner whose personal access tokens should be listed. If \"me\", the caller should have the following right: \'idn:my-personal-access-tokens:read\' If an actual owner ID or if the `owner-id` parameter is omitted in the request, the caller should have the following right: \'idn:all-personal-access-tokens:read\'. If the caller has the following right, then managed personal access tokens associated with `owner-id` will be retrieved: \'idn:managed-personal-access-tokens:read\' + * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **lastUsed**: *le, isnull* + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + listPersonalAccessTokens: function (ownerId, filters, axiosOptions) { + return localVarFp.listPersonalAccessTokens(ownerId, filters, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This performs a targeted update to the field(s) of a Personal Access Token. + * @summary Patch Personal Access Token + * @param {string} id The Personal Access Token id + * @param {Array} jsonPatchOperation A list of OAuth client update operations according to the [JSON Patch](https://tools.ietf.org/html/rfc6902) standard. The following fields are patchable: * name * scope + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + patchPersonalAccessToken: function (id, jsonPatchOperation, axiosOptions) { + return localVarFp.patchPersonalAccessToken(id, jsonPatchOperation, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + }; + }; + exports.PersonalAccessTokensApiFactory = PersonalAccessTokensApiFactory; + /** + * PersonalAccessTokensApi - object-oriented interface + * @export + * @class PersonalAccessTokensApi + * @extends {BaseAPI} + */ + var PersonalAccessTokensApi = /** @class */ (function (_super) { + __extends(PersonalAccessTokensApi, _super); + function PersonalAccessTokensApi() { + return _super !== null && _super.apply(this, arguments) || this; + } + /** + * This creates a personal access token. + * @summary Create Personal Access Token + * @param {PersonalAccessTokensApiCreatePersonalAccessTokenRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof PersonalAccessTokensApi + */ + PersonalAccessTokensApi.prototype.createPersonalAccessToken = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.PersonalAccessTokensApiFp)(this.configuration).createPersonalAccessToken(requestParameters.createPersonalAccessTokenRequest, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This deletes a personal access token. + * @summary Delete Personal Access Token + * @param {PersonalAccessTokensApiDeletePersonalAccessTokenRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof PersonalAccessTokensApi + */ + PersonalAccessTokensApi.prototype.deletePersonalAccessToken = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.PersonalAccessTokensApiFp)(this.configuration).deletePersonalAccessToken(requestParameters.id, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This gets a collection of personal access tokens associated with the optional `owner-id`. query parameter. If the `owner-id` query parameter is omitted, all personal access tokens for a tenant will be retrieved, but the caller must have the \'idn:all-personal-access-tokens:read\' right. + * @summary List Personal Access Tokens + * @param {PersonalAccessTokensApiListPersonalAccessTokensRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof PersonalAccessTokensApi + */ + PersonalAccessTokensApi.prototype.listPersonalAccessTokens = function (requestParameters, axiosOptions) { + var _this = this; + if (requestParameters === void 0) { requestParameters = {}; } + return (0, exports.PersonalAccessTokensApiFp)(this.configuration).listPersonalAccessTokens(requestParameters.ownerId, requestParameters.filters, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This performs a targeted update to the field(s) of a Personal Access Token. + * @summary Patch Personal Access Token + * @param {PersonalAccessTokensApiPatchPersonalAccessTokenRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof PersonalAccessTokensApi + */ + PersonalAccessTokensApi.prototype.patchPersonalAccessToken = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.PersonalAccessTokensApiFp)(this.configuration).patchPersonalAccessToken(requestParameters.id, requestParameters.jsonPatchOperation, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + return PersonalAccessTokensApi; + }(base_1.BaseAPI)); + exports.PersonalAccessTokensApi = PersonalAccessTokensApi; + /** + * PublicIdentitiesApi - axios parameter creator + * @export + */ + var PublicIdentitiesApiAxiosParamCreator = function (configuration) { + var _this = this; + return { + /** + * + * @summary Get a list of public identities + * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **id**: *eq, in* **alias**: *eq, sw* **email**: *eq, sw* **firstname**: *eq, sw* **lastname**: *eq, sw* + * @param {boolean} [addCoreFilters] If *true*, only get identities which satisfy ALL the following criteria in addition to any criteria specified by *filters*: - Should be either correlated or protected. - Should not be \"spadmin\" or \"cloudadmin\". - uid should not be null. - lastname should not be null. - email should not be null. + * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **name** + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getPublicIdentities: function (limit, offset, count, filters, addCoreFilters, sorters, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + localVarPath = "/public-identities"; + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + if (limit !== undefined) { + localVarQueryParameter['limit'] = limit; + } + if (offset !== undefined) { + localVarQueryParameter['offset'] = offset; + } + if (count !== undefined) { + localVarQueryParameter['count'] = count; + } + if (filters !== undefined) { + localVarQueryParameter['filters'] = filters; + } + if (addCoreFilters !== undefined) { + localVarQueryParameter['add-core-filters'] = addCoreFilters; + } + if (sorters !== undefined) { + localVarQueryParameter['sorters'] = sorters; + } + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + }; + }; + exports.PublicIdentitiesApiAxiosParamCreator = PublicIdentitiesApiAxiosParamCreator; + /** + * PublicIdentitiesApi - functional programming interface + * @export + */ + var PublicIdentitiesApiFp = function (configuration) { + var localVarAxiosParamCreator = (0, exports.PublicIdentitiesApiAxiosParamCreator)(configuration); + return { + /** + * + * @summary Get a list of public identities + * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **id**: *eq, in* **alias**: *eq, sw* **email**: *eq, sw* **firstname**: *eq, sw* **lastname**: *eq, sw* + * @param {boolean} [addCoreFilters] If *true*, only get identities which satisfy ALL the following criteria in addition to any criteria specified by *filters*: - Should be either correlated or protected. - Should not be \"spadmin\" or \"cloudadmin\". - uid should not be null. - lastname should not be null. - email should not be null. + * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **name** + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getPublicIdentities: function (limit, offset, count, filters, addCoreFilters, sorters, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.getPublicIdentities(limit, offset, count, filters, addCoreFilters, sorters, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + }; + }; + exports.PublicIdentitiesApiFp = PublicIdentitiesApiFp; + /** + * PublicIdentitiesApi - factory interface + * @export + */ + var PublicIdentitiesApiFactory = function (configuration, basePath, axios) { + var localVarFp = (0, exports.PublicIdentitiesApiFp)(configuration); + return { + /** + * + * @summary Get a list of public identities + * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **id**: *eq, in* **alias**: *eq, sw* **email**: *eq, sw* **firstname**: *eq, sw* **lastname**: *eq, sw* + * @param {boolean} [addCoreFilters] If *true*, only get identities which satisfy ALL the following criteria in addition to any criteria specified by *filters*: - Should be either correlated or protected. - Should not be \"spadmin\" or \"cloudadmin\". - uid should not be null. - lastname should not be null. - email should not be null. + * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **name** + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getPublicIdentities: function (limit, offset, count, filters, addCoreFilters, sorters, axiosOptions) { + return localVarFp.getPublicIdentities(limit, offset, count, filters, addCoreFilters, sorters, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + }; + }; + exports.PublicIdentitiesApiFactory = PublicIdentitiesApiFactory; + /** + * PublicIdentitiesApi - object-oriented interface + * @export + * @class PublicIdentitiesApi + * @extends {BaseAPI} + */ + var PublicIdentitiesApi = /** @class */ (function (_super) { + __extends(PublicIdentitiesApi, _super); + function PublicIdentitiesApi() { + return _super !== null && _super.apply(this, arguments) || this; + } + /** + * + * @summary Get a list of public identities + * @param {PublicIdentitiesApiGetPublicIdentitiesRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof PublicIdentitiesApi + */ + PublicIdentitiesApi.prototype.getPublicIdentities = function (requestParameters, axiosOptions) { + var _this = this; + if (requestParameters === void 0) { requestParameters = {}; } + return (0, exports.PublicIdentitiesApiFp)(this.configuration).getPublicIdentities(requestParameters.limit, requestParameters.offset, requestParameters.count, requestParameters.filters, requestParameters.addCoreFilters, requestParameters.sorters, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + return PublicIdentitiesApi; + }(base_1.BaseAPI)); + exports.PublicIdentitiesApi = PublicIdentitiesApi; + /** + * PublicIdentitiesConfigApi - axios parameter creator + * @export + */ + var PublicIdentitiesConfigApiAxiosParamCreator = function (configuration) { + var _this = this; + return { + /** + * Returns the publicly visible attributes of an identity available to request approvers for Access Requests and Certification Campaigns. A token with ORG ADMIN authority is required to call this API. + * @summary Get the Public Identities Configuration + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getPublicIdentityConfig: function (axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + localVarPath = "/public-identities-config"; + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * Updates the publicly visible attributes of an identity available to request approvers for Access Requests and Certification Campaigns. A token with ORG ADMIN authority is required to call this API. + * @summary Update the Public Identities Configuration + * @param {PublicIdentityConfig} publicIdentityConfig + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + updatePublicIdentityConfig: function (publicIdentityConfig, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'publicIdentityConfig' is not null or undefined + (0, common_1.assertParamExists)('updatePublicIdentityConfig', 'publicIdentityConfig', publicIdentityConfig); + localVarPath = "/public-identities-config"; + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'PUT' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + localVarHeaderParameter['Content-Type'] = 'application/json'; + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(publicIdentityConfig, localVarRequestOptions, configuration); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + }; + }; + exports.PublicIdentitiesConfigApiAxiosParamCreator = PublicIdentitiesConfigApiAxiosParamCreator; + /** + * PublicIdentitiesConfigApi - functional programming interface + * @export + */ + var PublicIdentitiesConfigApiFp = function (configuration) { + var localVarAxiosParamCreator = (0, exports.PublicIdentitiesConfigApiAxiosParamCreator)(configuration); + return { + /** + * Returns the publicly visible attributes of an identity available to request approvers for Access Requests and Certification Campaigns. A token with ORG ADMIN authority is required to call this API. + * @summary Get the Public Identities Configuration + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getPublicIdentityConfig: function (axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.getPublicIdentityConfig(axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * Updates the publicly visible attributes of an identity available to request approvers for Access Requests and Certification Campaigns. A token with ORG ADMIN authority is required to call this API. + * @summary Update the Public Identities Configuration + * @param {PublicIdentityConfig} publicIdentityConfig + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + updatePublicIdentityConfig: function (publicIdentityConfig, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.updatePublicIdentityConfig(publicIdentityConfig, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + }; + }; + exports.PublicIdentitiesConfigApiFp = PublicIdentitiesConfigApiFp; + /** + * PublicIdentitiesConfigApi - factory interface + * @export + */ + var PublicIdentitiesConfigApiFactory = function (configuration, basePath, axios) { + var localVarFp = (0, exports.PublicIdentitiesConfigApiFp)(configuration); + return { + /** + * Returns the publicly visible attributes of an identity available to request approvers for Access Requests and Certification Campaigns. A token with ORG ADMIN authority is required to call this API. + * @summary Get the Public Identities Configuration + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getPublicIdentityConfig: function (axiosOptions) { + return localVarFp.getPublicIdentityConfig(axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * Updates the publicly visible attributes of an identity available to request approvers for Access Requests and Certification Campaigns. A token with ORG ADMIN authority is required to call this API. + * @summary Update the Public Identities Configuration + * @param {PublicIdentityConfig} publicIdentityConfig + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + updatePublicIdentityConfig: function (publicIdentityConfig, axiosOptions) { + return localVarFp.updatePublicIdentityConfig(publicIdentityConfig, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + }; + }; + exports.PublicIdentitiesConfigApiFactory = PublicIdentitiesConfigApiFactory; + /** + * PublicIdentitiesConfigApi - object-oriented interface + * @export + * @class PublicIdentitiesConfigApi + * @extends {BaseAPI} + */ + var PublicIdentitiesConfigApi = /** @class */ (function (_super) { + __extends(PublicIdentitiesConfigApi, _super); + function PublicIdentitiesConfigApi() { + return _super !== null && _super.apply(this, arguments) || this; + } + /** + * Returns the publicly visible attributes of an identity available to request approvers for Access Requests and Certification Campaigns. A token with ORG ADMIN authority is required to call this API. + * @summary Get the Public Identities Configuration + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof PublicIdentitiesConfigApi + */ + PublicIdentitiesConfigApi.prototype.getPublicIdentityConfig = function (axiosOptions) { + var _this = this; + return (0, exports.PublicIdentitiesConfigApiFp)(this.configuration).getPublicIdentityConfig(axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * Updates the publicly visible attributes of an identity available to request approvers for Access Requests and Certification Campaigns. A token with ORG ADMIN authority is required to call this API. + * @summary Update the Public Identities Configuration + * @param {PublicIdentitiesConfigApiUpdatePublicIdentityConfigRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof PublicIdentitiesConfigApi + */ + PublicIdentitiesConfigApi.prototype.updatePublicIdentityConfig = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.PublicIdentitiesConfigApiFp)(this.configuration).updatePublicIdentityConfig(requestParameters.publicIdentityConfig, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + return PublicIdentitiesConfigApi; + }(base_1.BaseAPI)); + exports.PublicIdentitiesConfigApi = PublicIdentitiesConfigApi; + /** + * RequestableObjectsApi - axios parameter creator + * @export + */ + var RequestableObjectsApiAxiosParamCreator = function (configuration) { + var _this = this; + return { + /** + * This endpoint returns a list of acccess items that that can be requested through the Access Request endpoints. Access items are marked with AVAILABLE, PENDING or ASSIGNED with respect to the identity provided using *identity-id* query param. Any authenticated token can call this endpoint to see their requestable access items. A token with ORG_ADMIN authority is required to call this endpoint to return a list of all of the requestable access items for the org or for another identity. + * @summary Requestable Objects List + * @param {string} [identityId] If present, the value returns only requestable objects for the specified identity. * Admin users can call this with any identity ID value. * Non-admin users can only specify *me* or pass their own identity ID value. * If absent, returns a list of all requestable objects for the tenant. Only admin users can make such a call. In this case, the available, pending, assigned accesses will not be annotated in the result. + * @param {Array} [types] Filters the results to the specified type/types, where each type is one of ROLE or ACCESS_PROFILE. If absent, all types are returned. Support for additional types may be added in the future without notice. + * @param {string} [term] It allows searching requestable access items with a partial match on the name or description. If term is provided, then the *filter* query parameter will be ignored. + * @param {Array} [statuses] Filters the result to the specified status/statuses, where each status is one of AVAILABLE, ASSIGNED, or PENDING. It is an error to specify this parameter without also specifying an *identity-id* parameter. Additional statuses may be added in the future without notice. + * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **id**: *eq, in* **name**: *eq, in, sw, co* + * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **name** + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + listRequestableObjects: function (identityId, types, term, statuses, limit, offset, count, filters, sorters, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + localVarPath = "/requestable-objects"; + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + if (identityId !== undefined) { + localVarQueryParameter['identity-id'] = identityId; + } + if (types) { + localVarQueryParameter['types'] = types.join(base_1.COLLECTION_FORMATS.csv); + } + if (term !== undefined) { + localVarQueryParameter['term'] = term; + } + if (statuses) { + localVarQueryParameter['statuses'] = statuses.join(base_1.COLLECTION_FORMATS.csv); + } + if (limit !== undefined) { + localVarQueryParameter['limit'] = limit; + } + if (offset !== undefined) { + localVarQueryParameter['offset'] = offset; + } + if (count !== undefined) { + localVarQueryParameter['count'] = count; + } + if (filters !== undefined) { + localVarQueryParameter['filters'] = filters; + } + if (sorters !== undefined) { + localVarQueryParameter['sorters'] = sorters; + } + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + }; + }; + exports.RequestableObjectsApiAxiosParamCreator = RequestableObjectsApiAxiosParamCreator; + /** + * RequestableObjectsApi - functional programming interface + * @export + */ + var RequestableObjectsApiFp = function (configuration) { + var localVarAxiosParamCreator = (0, exports.RequestableObjectsApiAxiosParamCreator)(configuration); + return { + /** + * This endpoint returns a list of acccess items that that can be requested through the Access Request endpoints. Access items are marked with AVAILABLE, PENDING or ASSIGNED with respect to the identity provided using *identity-id* query param. Any authenticated token can call this endpoint to see their requestable access items. A token with ORG_ADMIN authority is required to call this endpoint to return a list of all of the requestable access items for the org or for another identity. + * @summary Requestable Objects List + * @param {string} [identityId] If present, the value returns only requestable objects for the specified identity. * Admin users can call this with any identity ID value. * Non-admin users can only specify *me* or pass their own identity ID value. * If absent, returns a list of all requestable objects for the tenant. Only admin users can make such a call. In this case, the available, pending, assigned accesses will not be annotated in the result. + * @param {Array} [types] Filters the results to the specified type/types, where each type is one of ROLE or ACCESS_PROFILE. If absent, all types are returned. Support for additional types may be added in the future without notice. + * @param {string} [term] It allows searching requestable access items with a partial match on the name or description. If term is provided, then the *filter* query parameter will be ignored. + * @param {Array} [statuses] Filters the result to the specified status/statuses, where each status is one of AVAILABLE, ASSIGNED, or PENDING. It is an error to specify this parameter without also specifying an *identity-id* parameter. Additional statuses may be added in the future without notice. + * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **id**: *eq, in* **name**: *eq, in, sw, co* + * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **name** + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + listRequestableObjects: function (identityId, types, term, statuses, limit, offset, count, filters, sorters, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.listRequestableObjects(identityId, types, term, statuses, limit, offset, count, filters, sorters, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + }; + }; + exports.RequestableObjectsApiFp = RequestableObjectsApiFp; + /** + * RequestableObjectsApi - factory interface + * @export + */ + var RequestableObjectsApiFactory = function (configuration, basePath, axios) { + var localVarFp = (0, exports.RequestableObjectsApiFp)(configuration); + return { + /** + * This endpoint returns a list of acccess items that that can be requested through the Access Request endpoints. Access items are marked with AVAILABLE, PENDING or ASSIGNED with respect to the identity provided using *identity-id* query param. Any authenticated token can call this endpoint to see their requestable access items. A token with ORG_ADMIN authority is required to call this endpoint to return a list of all of the requestable access items for the org or for another identity. + * @summary Requestable Objects List + * @param {string} [identityId] If present, the value returns only requestable objects for the specified identity. * Admin users can call this with any identity ID value. * Non-admin users can only specify *me* or pass their own identity ID value. * If absent, returns a list of all requestable objects for the tenant. Only admin users can make such a call. In this case, the available, pending, assigned accesses will not be annotated in the result. + * @param {Array} [types] Filters the results to the specified type/types, where each type is one of ROLE or ACCESS_PROFILE. If absent, all types are returned. Support for additional types may be added in the future without notice. + * @param {string} [term] It allows searching requestable access items with a partial match on the name or description. If term is provided, then the *filter* query parameter will be ignored. + * @param {Array} [statuses] Filters the result to the specified status/statuses, where each status is one of AVAILABLE, ASSIGNED, or PENDING. It is an error to specify this parameter without also specifying an *identity-id* parameter. Additional statuses may be added in the future without notice. + * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **id**: *eq, in* **name**: *eq, in, sw, co* + * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **name** + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + listRequestableObjects: function (identityId, types, term, statuses, limit, offset, count, filters, sorters, axiosOptions) { + return localVarFp.listRequestableObjects(identityId, types, term, statuses, limit, offset, count, filters, sorters, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + }; + }; + exports.RequestableObjectsApiFactory = RequestableObjectsApiFactory; + /** + * RequestableObjectsApi - object-oriented interface + * @export + * @class RequestableObjectsApi + * @extends {BaseAPI} + */ + var RequestableObjectsApi = /** @class */ (function (_super) { + __extends(RequestableObjectsApi, _super); + function RequestableObjectsApi() { + return _super !== null && _super.apply(this, arguments) || this; + } + /** + * This endpoint returns a list of acccess items that that can be requested through the Access Request endpoints. Access items are marked with AVAILABLE, PENDING or ASSIGNED with respect to the identity provided using *identity-id* query param. Any authenticated token can call this endpoint to see their requestable access items. A token with ORG_ADMIN authority is required to call this endpoint to return a list of all of the requestable access items for the org or for another identity. + * @summary Requestable Objects List + * @param {RequestableObjectsApiListRequestableObjectsRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof RequestableObjectsApi + */ + RequestableObjectsApi.prototype.listRequestableObjects = function (requestParameters, axiosOptions) { + var _this = this; + if (requestParameters === void 0) { requestParameters = {}; } + return (0, exports.RequestableObjectsApiFp)(this.configuration).listRequestableObjects(requestParameters.identityId, requestParameters.types, requestParameters.term, requestParameters.statuses, requestParameters.limit, requestParameters.offset, requestParameters.count, requestParameters.filters, requestParameters.sorters, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + return RequestableObjectsApi; + }(base_1.BaseAPI)); + exports.RequestableObjectsApi = RequestableObjectsApi; + /** + * RolesApi - axios parameter creator + * @export + */ + var RolesApiAxiosParamCreator = function (configuration) { + var _this = this; + return { + /** + * This API creates a role. You must have a token with API, ORG_ADMIN, ROLE_ADMIN, or ROLE_SUBADMIN authority to call this API. In addition, a ROLE_SUBADMIN may not create a role including an access profile if that access profile is associated with a source the ROLE_SUBADMIN is not associated with themselves. The maximum supported length for the description field is 2000 characters. Longer descriptions will be preserved for existing roles. However, any new roles as well as any updates to existing descriptions will be limited to 2000 characters. + * @summary Create a Role + * @param {Role} role + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + createRole: function (role, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'role' is not null or undefined + (0, common_1.assertParamExists)('createRole', 'role', role); + localVarPath = "/roles"; + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + localVarHeaderParameter['Content-Type'] = 'application/json'; + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(role, localVarRequestOptions, configuration); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This API initiates a bulk deletion of one or more Roles. A token with API, ORG_ADMIN, ROLE_ADMIN, or ROLE_SUBADMIN authority is required to call this API. In addition, a token with ROLE_SUBADMIN authority may only call this API if all Roles included in the request are associated to Sources with management workgroups of which the ROLE_SUBADMIN is a member. + * @summary Delete Role(s) + * @param {RoleBulkDeleteRequest} roleBulkDeleteRequest + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + deleteBulkRoles: function (roleBulkDeleteRequest, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'roleBulkDeleteRequest' is not null or undefined + (0, common_1.assertParamExists)('deleteBulkRoles', 'roleBulkDeleteRequest', roleBulkDeleteRequest); + localVarPath = "/roles/bulk-delete"; + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + localVarHeaderParameter['Content-Type'] = 'application/json'; + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(roleBulkDeleteRequest, localVarRequestOptions, configuration); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This API deletes a Role by its ID. A token with API, ORG_ADMIN, ROLE_ADMIN, or ROLE_SUBADMIN authority is required to call this API. In addition, a token with ROLE_SUBADMIN authority may only call this API if all Access Profiles included in the Role are associated to Sources with management workgroups of which the ROLE_SUBADMIN is a member. + * @summary Delete a Role + * @param {string} id ID of the Role + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + deleteRole: function (id, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'id' is not null or undefined + (0, common_1.assertParamExists)('deleteRole', 'id', id); + localVarPath = "/roles/{id}" + .replace("{".concat("id", "}"), encodeURIComponent(String(id))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'DELETE' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This API returns a Role by its ID. A token with API, ORG_ADMIN, ROLE_ADMIN, or ROLE_SUBADMIN authority is required to call this API. In addition, a token with ROLE_SUBADMIN authority may only call this API if all Access Profiles included in the Role are associated to Sources with management workgroups of which the ROLE_SUBADMIN is a member. + * @summary Get a Role + * @param {string} id ID of the Role + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getRole: function (id, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'id' is not null or undefined + (0, common_1.assertParamExists)('getRole', 'id', id); + localVarPath = "/roles/{id}" + .replace("{".concat("id", "}"), encodeURIComponent(String(id))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * + * @summary List Identities assigned a Role + * @param {string} id ID of the Role for which the assigned Identities are to be listed + * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **id**: *eq, in* **aliasName**: *eq, sw* **email**: *eq, sw* **name**: *eq, sw, co* + * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **id, name, aliasName, email** + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getRoleAssignedIdentities: function (id, limit, offset, count, filters, sorters, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'id' is not null or undefined + (0, common_1.assertParamExists)('getRoleAssignedIdentities', 'id', id); + localVarPath = "/roles/{id}/assigned-identities" + .replace("{".concat("id", "}"), encodeURIComponent(String(id))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + if (limit !== undefined) { + localVarQueryParameter['limit'] = limit; + } + if (offset !== undefined) { + localVarQueryParameter['offset'] = offset; + } + if (count !== undefined) { + localVarQueryParameter['count'] = count; + } + if (filters !== undefined) { + localVarQueryParameter['filters'] = filters; + } + if (sorters !== undefined) { + localVarQueryParameter['sorters'] = sorters; + } + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This API returns a list of Roles. A token with API, ORG_ADMIN, ROLE_ADMIN, or ROLE_SUBADMIN authority is required to call this API. + * @summary List Roles + * @param {string} [forSubadmin] If provided, filters the returned list according to what is visible to the indicated ROLE_SUBADMIN Identity. The value of the parameter is either an Identity ID, or the special value **me**, which is shorthand for the calling Identity\'s ID. A 400 Bad Request error is returned if the **for-subadmin** parameter is specified for an Identity that is not a subadmin. + * @param {number} [limit] Note that for this API the maximum value for limit is 50. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **id**: *eq, in* **name**: *eq, sw, co* **created**: *gt, lt, ge, le* **modified**: *gt, lt, ge, le* **owner.id**: *eq, in* **requestable**: *eq* + * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **name, created, modified** + * @param {string} [forSegmentIds] If present and not empty, additionally filters Roles to those which are assigned to the Segment(s) with the specified IDs. If segmentation is currently unavailable, specifying this parameter results in an error. + * @param {boolean} [includeUnsegmented] Whether or not the response list should contain unsegmented Roles. If *for-segment-ids* is absent or empty, specifying *include-unsegmented* as false results in an error. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + listRoles: function (forSubadmin, limit, offset, count, filters, sorters, forSegmentIds, includeUnsegmented, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + localVarPath = "/roles"; + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + if (forSubadmin !== undefined) { + localVarQueryParameter['for-subadmin'] = forSubadmin; + } + if (limit !== undefined) { + localVarQueryParameter['limit'] = limit; + } + if (offset !== undefined) { + localVarQueryParameter['offset'] = offset; + } + if (count !== undefined) { + localVarQueryParameter['count'] = count; + } + if (filters !== undefined) { + localVarQueryParameter['filters'] = filters; + } + if (sorters !== undefined) { + localVarQueryParameter['sorters'] = sorters; + } + if (forSegmentIds !== undefined) { + localVarQueryParameter['for-segment-ids'] = forSegmentIds; + } + if (includeUnsegmented !== undefined) { + localVarQueryParameter['include-unsegmented'] = includeUnsegmented; + } + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This API updates an existing Role using [JSON Patch](https://tools.ietf.org/html/rfc6902) syntax. The following fields are patchable: **name**, **description**, **enabled**, **owner**, **accessProfiles**, **membership**, **requestable**, **accessRequestConfig**, **revokeRequestConfig**, **segments** A token with API, ORG_ADMIN, ROLE_ADMIN, or ROLE_SUBADMIN authority is required to call this API. In addition, a token with ROLE_SUBADMIN authority may only call this API if all Access Profiles included in the Role are associated to Sources with management workgroups of which the ROLE_SUBADMIN is a member. The maximum supported length for the description field is 2000 characters. Longer descriptions will be preserved for existing roles, however, any new roles as well as any updates to existing descriptions will be limited to 2000 characters. + * @summary Patch a specified Role + * @param {string} id ID of the Role to patch + * @param {Array} jsonPatchOperation + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + patchRole: function (id, jsonPatchOperation, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'id' is not null or undefined + (0, common_1.assertParamExists)('patchRole', 'id', id); + // verify required parameter 'jsonPatchOperation' is not null or undefined + (0, common_1.assertParamExists)('patchRole', 'jsonPatchOperation', jsonPatchOperation); + localVarPath = "/roles/{id}" + .replace("{".concat("id", "}"), encodeURIComponent(String(id))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'PATCH' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + localVarHeaderParameter['Content-Type'] = 'application/json-patch+json'; + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(jsonPatchOperation, localVarRequestOptions, configuration); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + }; + }; + exports.RolesApiAxiosParamCreator = RolesApiAxiosParamCreator; + /** + * RolesApi - functional programming interface + * @export + */ + var RolesApiFp = function (configuration) { + var localVarAxiosParamCreator = (0, exports.RolesApiAxiosParamCreator)(configuration); + return { + /** + * This API creates a role. You must have a token with API, ORG_ADMIN, ROLE_ADMIN, or ROLE_SUBADMIN authority to call this API. In addition, a ROLE_SUBADMIN may not create a role including an access profile if that access profile is associated with a source the ROLE_SUBADMIN is not associated with themselves. The maximum supported length for the description field is 2000 characters. Longer descriptions will be preserved for existing roles. However, any new roles as well as any updates to existing descriptions will be limited to 2000 characters. + * @summary Create a Role + * @param {Role} role + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + createRole: function (role, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.createRole(role, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This API initiates a bulk deletion of one or more Roles. A token with API, ORG_ADMIN, ROLE_ADMIN, or ROLE_SUBADMIN authority is required to call this API. In addition, a token with ROLE_SUBADMIN authority may only call this API if all Roles included in the request are associated to Sources with management workgroups of which the ROLE_SUBADMIN is a member. + * @summary Delete Role(s) + * @param {RoleBulkDeleteRequest} roleBulkDeleteRequest + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + deleteBulkRoles: function (roleBulkDeleteRequest, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.deleteBulkRoles(roleBulkDeleteRequest, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This API deletes a Role by its ID. A token with API, ORG_ADMIN, ROLE_ADMIN, or ROLE_SUBADMIN authority is required to call this API. In addition, a token with ROLE_SUBADMIN authority may only call this API if all Access Profiles included in the Role are associated to Sources with management workgroups of which the ROLE_SUBADMIN is a member. + * @summary Delete a Role + * @param {string} id ID of the Role + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + deleteRole: function (id, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.deleteRole(id, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This API returns a Role by its ID. A token with API, ORG_ADMIN, ROLE_ADMIN, or ROLE_SUBADMIN authority is required to call this API. In addition, a token with ROLE_SUBADMIN authority may only call this API if all Access Profiles included in the Role are associated to Sources with management workgroups of which the ROLE_SUBADMIN is a member. + * @summary Get a Role + * @param {string} id ID of the Role + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getRole: function (id, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.getRole(id, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * + * @summary List Identities assigned a Role + * @param {string} id ID of the Role for which the assigned Identities are to be listed + * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **id**: *eq, in* **aliasName**: *eq, sw* **email**: *eq, sw* **name**: *eq, sw, co* + * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **id, name, aliasName, email** + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getRoleAssignedIdentities: function (id, limit, offset, count, filters, sorters, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.getRoleAssignedIdentities(id, limit, offset, count, filters, sorters, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This API returns a list of Roles. A token with API, ORG_ADMIN, ROLE_ADMIN, or ROLE_SUBADMIN authority is required to call this API. + * @summary List Roles + * @param {string} [forSubadmin] If provided, filters the returned list according to what is visible to the indicated ROLE_SUBADMIN Identity. The value of the parameter is either an Identity ID, or the special value **me**, which is shorthand for the calling Identity\'s ID. A 400 Bad Request error is returned if the **for-subadmin** parameter is specified for an Identity that is not a subadmin. + * @param {number} [limit] Note that for this API the maximum value for limit is 50. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **id**: *eq, in* **name**: *eq, sw, co* **created**: *gt, lt, ge, le* **modified**: *gt, lt, ge, le* **owner.id**: *eq, in* **requestable**: *eq* + * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **name, created, modified** + * @param {string} [forSegmentIds] If present and not empty, additionally filters Roles to those which are assigned to the Segment(s) with the specified IDs. If segmentation is currently unavailable, specifying this parameter results in an error. + * @param {boolean} [includeUnsegmented] Whether or not the response list should contain unsegmented Roles. If *for-segment-ids* is absent or empty, specifying *include-unsegmented* as false results in an error. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + listRoles: function (forSubadmin, limit, offset, count, filters, sorters, forSegmentIds, includeUnsegmented, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.listRoles(forSubadmin, limit, offset, count, filters, sorters, forSegmentIds, includeUnsegmented, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This API updates an existing Role using [JSON Patch](https://tools.ietf.org/html/rfc6902) syntax. The following fields are patchable: **name**, **description**, **enabled**, **owner**, **accessProfiles**, **membership**, **requestable**, **accessRequestConfig**, **revokeRequestConfig**, **segments** A token with API, ORG_ADMIN, ROLE_ADMIN, or ROLE_SUBADMIN authority is required to call this API. In addition, a token with ROLE_SUBADMIN authority may only call this API if all Access Profiles included in the Role are associated to Sources with management workgroups of which the ROLE_SUBADMIN is a member. The maximum supported length for the description field is 2000 characters. Longer descriptions will be preserved for existing roles, however, any new roles as well as any updates to existing descriptions will be limited to 2000 characters. + * @summary Patch a specified Role + * @param {string} id ID of the Role to patch + * @param {Array} jsonPatchOperation + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + patchRole: function (id, jsonPatchOperation, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.patchRole(id, jsonPatchOperation, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + }; + }; + exports.RolesApiFp = RolesApiFp; + /** + * RolesApi - factory interface + * @export + */ + var RolesApiFactory = function (configuration, basePath, axios) { + var localVarFp = (0, exports.RolesApiFp)(configuration); + return { + /** + * This API creates a role. You must have a token with API, ORG_ADMIN, ROLE_ADMIN, or ROLE_SUBADMIN authority to call this API. In addition, a ROLE_SUBADMIN may not create a role including an access profile if that access profile is associated with a source the ROLE_SUBADMIN is not associated with themselves. The maximum supported length for the description field is 2000 characters. Longer descriptions will be preserved for existing roles. However, any new roles as well as any updates to existing descriptions will be limited to 2000 characters. + * @summary Create a Role + * @param {Role} role + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + createRole: function (role, axiosOptions) { + return localVarFp.createRole(role, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This API initiates a bulk deletion of one or more Roles. A token with API, ORG_ADMIN, ROLE_ADMIN, or ROLE_SUBADMIN authority is required to call this API. In addition, a token with ROLE_SUBADMIN authority may only call this API if all Roles included in the request are associated to Sources with management workgroups of which the ROLE_SUBADMIN is a member. + * @summary Delete Role(s) + * @param {RoleBulkDeleteRequest} roleBulkDeleteRequest + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + deleteBulkRoles: function (roleBulkDeleteRequest, axiosOptions) { + return localVarFp.deleteBulkRoles(roleBulkDeleteRequest, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This API deletes a Role by its ID. A token with API, ORG_ADMIN, ROLE_ADMIN, or ROLE_SUBADMIN authority is required to call this API. In addition, a token with ROLE_SUBADMIN authority may only call this API if all Access Profiles included in the Role are associated to Sources with management workgroups of which the ROLE_SUBADMIN is a member. + * @summary Delete a Role + * @param {string} id ID of the Role + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + deleteRole: function (id, axiosOptions) { + return localVarFp.deleteRole(id, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This API returns a Role by its ID. A token with API, ORG_ADMIN, ROLE_ADMIN, or ROLE_SUBADMIN authority is required to call this API. In addition, a token with ROLE_SUBADMIN authority may only call this API if all Access Profiles included in the Role are associated to Sources with management workgroups of which the ROLE_SUBADMIN is a member. + * @summary Get a Role + * @param {string} id ID of the Role + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getRole: function (id, axiosOptions) { + return localVarFp.getRole(id, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * + * @summary List Identities assigned a Role + * @param {string} id ID of the Role for which the assigned Identities are to be listed + * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **id**: *eq, in* **aliasName**: *eq, sw* **email**: *eq, sw* **name**: *eq, sw, co* + * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **id, name, aliasName, email** + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getRoleAssignedIdentities: function (id, limit, offset, count, filters, sorters, axiosOptions) { + return localVarFp.getRoleAssignedIdentities(id, limit, offset, count, filters, sorters, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This API returns a list of Roles. A token with API, ORG_ADMIN, ROLE_ADMIN, or ROLE_SUBADMIN authority is required to call this API. + * @summary List Roles + * @param {string} [forSubadmin] If provided, filters the returned list according to what is visible to the indicated ROLE_SUBADMIN Identity. The value of the parameter is either an Identity ID, or the special value **me**, which is shorthand for the calling Identity\'s ID. A 400 Bad Request error is returned if the **for-subadmin** parameter is specified for an Identity that is not a subadmin. + * @param {number} [limit] Note that for this API the maximum value for limit is 50. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **id**: *eq, in* **name**: *eq, sw, co* **created**: *gt, lt, ge, le* **modified**: *gt, lt, ge, le* **owner.id**: *eq, in* **requestable**: *eq* + * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **name, created, modified** + * @param {string} [forSegmentIds] If present and not empty, additionally filters Roles to those which are assigned to the Segment(s) with the specified IDs. If segmentation is currently unavailable, specifying this parameter results in an error. + * @param {boolean} [includeUnsegmented] Whether or not the response list should contain unsegmented Roles. If *for-segment-ids* is absent or empty, specifying *include-unsegmented* as false results in an error. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + listRoles: function (forSubadmin, limit, offset, count, filters, sorters, forSegmentIds, includeUnsegmented, axiosOptions) { + return localVarFp.listRoles(forSubadmin, limit, offset, count, filters, sorters, forSegmentIds, includeUnsegmented, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This API updates an existing Role using [JSON Patch](https://tools.ietf.org/html/rfc6902) syntax. The following fields are patchable: **name**, **description**, **enabled**, **owner**, **accessProfiles**, **membership**, **requestable**, **accessRequestConfig**, **revokeRequestConfig**, **segments** A token with API, ORG_ADMIN, ROLE_ADMIN, or ROLE_SUBADMIN authority is required to call this API. In addition, a token with ROLE_SUBADMIN authority may only call this API if all Access Profiles included in the Role are associated to Sources with management workgroups of which the ROLE_SUBADMIN is a member. The maximum supported length for the description field is 2000 characters. Longer descriptions will be preserved for existing roles, however, any new roles as well as any updates to existing descriptions will be limited to 2000 characters. + * @summary Patch a specified Role + * @param {string} id ID of the Role to patch + * @param {Array} jsonPatchOperation + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + patchRole: function (id, jsonPatchOperation, axiosOptions) { + return localVarFp.patchRole(id, jsonPatchOperation, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + }; + }; + exports.RolesApiFactory = RolesApiFactory; + /** + * RolesApi - object-oriented interface + * @export + * @class RolesApi + * @extends {BaseAPI} + */ + var RolesApi = /** @class */ (function (_super) { + __extends(RolesApi, _super); + function RolesApi() { + return _super !== null && _super.apply(this, arguments) || this; + } + /** + * This API creates a role. You must have a token with API, ORG_ADMIN, ROLE_ADMIN, or ROLE_SUBADMIN authority to call this API. In addition, a ROLE_SUBADMIN may not create a role including an access profile if that access profile is associated with a source the ROLE_SUBADMIN is not associated with themselves. The maximum supported length for the description field is 2000 characters. Longer descriptions will be preserved for existing roles. However, any new roles as well as any updates to existing descriptions will be limited to 2000 characters. + * @summary Create a Role + * @param {RolesApiCreateRoleRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof RolesApi + */ + RolesApi.prototype.createRole = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.RolesApiFp)(this.configuration).createRole(requestParameters.role, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This API initiates a bulk deletion of one or more Roles. A token with API, ORG_ADMIN, ROLE_ADMIN, or ROLE_SUBADMIN authority is required to call this API. In addition, a token with ROLE_SUBADMIN authority may only call this API if all Roles included in the request are associated to Sources with management workgroups of which the ROLE_SUBADMIN is a member. + * @summary Delete Role(s) + * @param {RolesApiDeleteBulkRolesRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof RolesApi + */ + RolesApi.prototype.deleteBulkRoles = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.RolesApiFp)(this.configuration).deleteBulkRoles(requestParameters.roleBulkDeleteRequest, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This API deletes a Role by its ID. A token with API, ORG_ADMIN, ROLE_ADMIN, or ROLE_SUBADMIN authority is required to call this API. In addition, a token with ROLE_SUBADMIN authority may only call this API if all Access Profiles included in the Role are associated to Sources with management workgroups of which the ROLE_SUBADMIN is a member. + * @summary Delete a Role + * @param {RolesApiDeleteRoleRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof RolesApi + */ + RolesApi.prototype.deleteRole = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.RolesApiFp)(this.configuration).deleteRole(requestParameters.id, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This API returns a Role by its ID. A token with API, ORG_ADMIN, ROLE_ADMIN, or ROLE_SUBADMIN authority is required to call this API. In addition, a token with ROLE_SUBADMIN authority may only call this API if all Access Profiles included in the Role are associated to Sources with management workgroups of which the ROLE_SUBADMIN is a member. + * @summary Get a Role + * @param {RolesApiGetRoleRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof RolesApi + */ + RolesApi.prototype.getRole = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.RolesApiFp)(this.configuration).getRole(requestParameters.id, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * + * @summary List Identities assigned a Role + * @param {RolesApiGetRoleAssignedIdentitiesRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof RolesApi + */ + RolesApi.prototype.getRoleAssignedIdentities = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.RolesApiFp)(this.configuration).getRoleAssignedIdentities(requestParameters.id, requestParameters.limit, requestParameters.offset, requestParameters.count, requestParameters.filters, requestParameters.sorters, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This API returns a list of Roles. A token with API, ORG_ADMIN, ROLE_ADMIN, or ROLE_SUBADMIN authority is required to call this API. + * @summary List Roles + * @param {RolesApiListRolesRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof RolesApi + */ + RolesApi.prototype.listRoles = function (requestParameters, axiosOptions) { + var _this = this; + if (requestParameters === void 0) { requestParameters = {}; } + return (0, exports.RolesApiFp)(this.configuration).listRoles(requestParameters.forSubadmin, requestParameters.limit, requestParameters.offset, requestParameters.count, requestParameters.filters, requestParameters.sorters, requestParameters.forSegmentIds, requestParameters.includeUnsegmented, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This API updates an existing Role using [JSON Patch](https://tools.ietf.org/html/rfc6902) syntax. The following fields are patchable: **name**, **description**, **enabled**, **owner**, **accessProfiles**, **membership**, **requestable**, **accessRequestConfig**, **revokeRequestConfig**, **segments** A token with API, ORG_ADMIN, ROLE_ADMIN, or ROLE_SUBADMIN authority is required to call this API. In addition, a token with ROLE_SUBADMIN authority may only call this API if all Access Profiles included in the Role are associated to Sources with management workgroups of which the ROLE_SUBADMIN is a member. The maximum supported length for the description field is 2000 characters. Longer descriptions will be preserved for existing roles, however, any new roles as well as any updates to existing descriptions will be limited to 2000 characters. + * @summary Patch a specified Role + * @param {RolesApiPatchRoleRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof RolesApi + */ + RolesApi.prototype.patchRole = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.RolesApiFp)(this.configuration).patchRole(requestParameters.id, requestParameters.jsonPatchOperation, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + return RolesApi; + }(base_1.BaseAPI)); + exports.RolesApi = RolesApi; + /** + * SODPolicyApi - axios parameter creator + * @export + */ + var SODPolicyApiAxiosParamCreator = function (configuration) { + var _this = this; + return { + /** + * This creates both General and Conflicting Access Based policy, with a limit of 50 entitlements for each (left & right) criteria for Conflicting Access Based SOD policy. Requires role of ORG_ADMIN. + * @summary Create SOD policy + * @param {SodPolicy} sodPolicy + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + createSodPolicy: function (sodPolicy, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'sodPolicy' is not null or undefined + (0, common_1.assertParamExists)('createSodPolicy', 'sodPolicy', sodPolicy); + localVarPath = "/sod-policies"; + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + localVarHeaderParameter['Content-Type'] = 'application/json'; + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(sodPolicy, localVarRequestOptions, configuration); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This deletes a specified SOD policy. Requires role of ORG_ADMIN. + * @summary Delete SOD policy by ID + * @param {string} id The ID of the SOD Policy to delete. + * @param {boolean} [logical] Indicates whether this is a soft delete (logical true) or a hard delete. Soft delete marks the policy as deleted and just save it with this status. It could be fully deleted or recovered further. Hard delete vise versa permanently delete SOD request during this call. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + deleteSodPolicy: function (id, logical, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'id' is not null or undefined + (0, common_1.assertParamExists)('deleteSodPolicy', 'id', id); + localVarPath = "/sod-policies/{id}" + .replace("{".concat("id", "}"), encodeURIComponent(String(id))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'DELETE' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + if (logical !== undefined) { + localVarQueryParameter['logical'] = logical; + } + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This deletes schedule for a specified SOD policy by ID. + * @summary Delete SOD policy schedule + * @param {string} id The ID of the SOD policy the schedule must be deleted for. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + deleteSodPolicySchedule: function (id, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'id' is not null or undefined + (0, common_1.assertParamExists)('deleteSodPolicySchedule', 'id', id); + localVarPath = "/sod-policies/{id}/schedule" + .replace("{".concat("id", "}"), encodeURIComponent(String(id))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'DELETE' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This allows to download a specified named violation report for a given report reference. + * @summary Download custom violation report + * @param {string} reportResultId The ID of the report reference to download. + * @param {string} fileName Custom Name for the file. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getCustomViolationReport: function (reportResultId, fileName, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'reportResultId' is not null or undefined + (0, common_1.assertParamExists)('getCustomViolationReport', 'reportResultId', reportResultId); + // verify required parameter 'fileName' is not null or undefined + (0, common_1.assertParamExists)('getCustomViolationReport', 'fileName', fileName); + localVarPath = "/sod-violation-report/{reportResultId}/download/{fileName}" + .replace("{".concat("reportResultId", "}"), encodeURIComponent(String(reportResultId))) + .replace("{".concat("fileName", "}"), encodeURIComponent(String(fileName))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This allows to download a violation report for a given report reference. + * @summary Download violation report + * @param {string} reportResultId The ID of the report reference to download. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getDefaultViolationReport: function (reportResultId, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'reportResultId' is not null or undefined + (0, common_1.assertParamExists)('getDefaultViolationReport', 'reportResultId', reportResultId); + localVarPath = "/sod-violation-report/{reportResultId}/download" + .replace("{".concat("reportResultId", "}"), encodeURIComponent(String(reportResultId))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This endpoint gets the status for a violation report for all policy run. + * @summary Get multi-report run task status + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getSodAllReportRunStatus: function (axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + localVarPath = "/sod-violation-report"; + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This gets specified SOD policy. Requires role of ORG_ADMIN. + * @summary Get SOD policy by ID + * @param {string} id The ID of the SOD Policy to retrieve. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getSodPolicy: function (id, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'id' is not null or undefined + (0, common_1.assertParamExists)('getSodPolicy', 'id', id); + localVarPath = "/sod-policies/{id}" + .replace("{".concat("id", "}"), encodeURIComponent(String(id))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This endpoint gets a specified SOD policy\'s schedule. + * @summary Get SOD policy schedule + * @param {string} id The ID of the SOD policy schedule to retrieve. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getSodPolicySchedule: function (id, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'id' is not null or undefined + (0, common_1.assertParamExists)('getSodPolicySchedule', 'id', id); + localVarPath = "/sod-policies/{id}/schedule" + .replace("{".concat("id", "}"), encodeURIComponent(String(id))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This gets the status for a violation report run task that has already been invoked. + * @summary Get violation report run status + * @param {string} reportResultId The ID of the report reference to retrieve. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getSodViolationReportRunStatus: function (reportResultId, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'reportResultId' is not null or undefined + (0, common_1.assertParamExists)('getSodViolationReportRunStatus', 'reportResultId', reportResultId); + localVarPath = "/sod-policies/sod-violation-report-status/{reportResultId}" + .replace("{".concat("reportResultId", "}"), encodeURIComponent(String(reportResultId))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This gets the status for a violation report run task that has already been invoked. + * @summary Get SOD violation report status + * @param {string} id The ID of the violation report to retrieve status for. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getSodViolationReportStatus: function (id, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'id' is not null or undefined + (0, common_1.assertParamExists)('getSodViolationReportStatus', 'id', id); + localVarPath = "/sod-policies/{id}/violation-report" + .replace("{".concat("id", "}"), encodeURIComponent(String(id))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This gets list of all SOD policies. Requires role of ORG_ADMIN + * @summary List SOD policies + * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **id**: *eq* **name**: *eq* **state**: *eq* + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + listSodPolicies: function (limit, offset, count, filters, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + localVarPath = "/sod-policies"; + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + if (limit !== undefined) { + localVarQueryParameter['limit'] = limit; + } + if (offset !== undefined) { + localVarQueryParameter['offset'] = offset; + } + if (count !== undefined) { + localVarQueryParameter['count'] = count; + } + if (filters !== undefined) { + localVarQueryParameter['filters'] = filters; + } + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * Allows updating SOD Policy fields other than [\"id\",\"created\",\"creatorId\",\"policyQuery\",\"type\"] using the [JSON Patch](https://tools.ietf.org/html/rfc6902) standard. Requires role of ORG_ADMIN. This endpoint can only patch CONFLICTING_ACCESS_BASED type policies. Do not use this endpoint to patch general policies - doing so will build an API exception. + * @summary Patch SOD policy by ID + * @param {string} id The ID of the SOD policy being modified. + * @param {Array} jsonPatchOperation A list of SOD Policy update operations according to the [JSON Patch](https://tools.ietf.org/html/rfc6902) standard. The following fields are patchable: * name * description * ownerRef * externalPolicyReference * compensatingControls * correctionAdvice * state * tags * violationOwnerAssignmentConfig * scheduled * conflictingAccessCriteria + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + patchSodPolicy: function (id, jsonPatchOperation, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'id' is not null or undefined + (0, common_1.assertParamExists)('patchSodPolicy', 'id', id); + // verify required parameter 'jsonPatchOperation' is not null or undefined + (0, common_1.assertParamExists)('patchSodPolicy', 'jsonPatchOperation', jsonPatchOperation); + localVarPath = "/sod-policies/{id}" + .replace("{".concat("id", "}"), encodeURIComponent(String(id))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'PATCH' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + localVarHeaderParameter['Content-Type'] = 'application/json-patch+json'; + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(jsonPatchOperation, localVarRequestOptions, configuration); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This updates schedule for a specified SOD policy. + * @summary Update SOD Policy schedule + * @param {string} id The ID of the SOD policy to update its schedule. + * @param {SodPolicySchedule} sodPolicySchedule + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + putPolicySchedule: function (id, sodPolicySchedule, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'id' is not null or undefined + (0, common_1.assertParamExists)('putPolicySchedule', 'id', id); + // verify required parameter 'sodPolicySchedule' is not null or undefined + (0, common_1.assertParamExists)('putPolicySchedule', 'sodPolicySchedule', sodPolicySchedule); + localVarPath = "/sod-policies/{id}/schedule" + .replace("{".concat("id", "}"), encodeURIComponent(String(id))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'PUT' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + localVarHeaderParameter['Content-Type'] = 'application/json'; + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(sodPolicySchedule, localVarRequestOptions, configuration); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This updates a specified SOD policy. Requires role of ORG_ADMIN. + * @summary Update SOD policy by ID + * @param {string} id The ID of the SOD policy to update. + * @param {SodPolicy} sodPolicy + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + putSodPolicy: function (id, sodPolicy, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'id' is not null or undefined + (0, common_1.assertParamExists)('putSodPolicy', 'id', id); + // verify required parameter 'sodPolicy' is not null or undefined + (0, common_1.assertParamExists)('putSodPolicy', 'sodPolicy', sodPolicy); + localVarPath = "/sod-policies/{id}" + .replace("{".concat("id", "}"), encodeURIComponent(String(id))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'PUT' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + localVarHeaderParameter['Content-Type'] = 'application/json'; + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(sodPolicy, localVarRequestOptions, configuration); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * Runs the scheduled report for the policy retrieved by passed policy ID. The report schedule is fetched from the policy retrieved by ID. + * @summary Evaluate one policy by ID + * @param {string} id The SOD policy ID to run. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + startEvaluateSodPolicy: function (id, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'id' is not null or undefined + (0, common_1.assertParamExists)('startEvaluateSodPolicy', 'id', id); + localVarPath = "/sod-policies/{id}/evaluate" + .replace("{".concat("id", "}"), encodeURIComponent(String(id))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * Runs multi-policy report for the org. If a policy reports more than 5000 violations, the report mentions that the violation limit was exceeded for that policy. If the request is empty, the report runs for all policies. Otherwise, the report runs for only the filtered policy list provided. + * @summary Runs all policies for org + * @param {MultiPolicyRequest} [multiPolicyRequest] + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + startSodAllPoliciesForOrg: function (multiPolicyRequest, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + localVarPath = "/sod-violation-report/run"; + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + localVarHeaderParameter['Content-Type'] = 'application/json'; + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(multiPolicyRequest, localVarRequestOptions, configuration); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This invokes processing of violation report for given SOD policy. If the policy reports more than 5000 violations, the report returns with violation limit exceeded message. + * @summary Runs SOD policy violation report + * @param {string} id The SOD policy ID to run. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + startSodPolicy: function (id, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'id' is not null or undefined + (0, common_1.assertParamExists)('startSodPolicy', 'id', id); + localVarPath = "/sod-policies/{id}/violation-report/run" + .replace("{".concat("id", "}"), encodeURIComponent(String(id))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + }; + }; + exports.SODPolicyApiAxiosParamCreator = SODPolicyApiAxiosParamCreator; + /** + * SODPolicyApi - functional programming interface + * @export + */ + var SODPolicyApiFp = function (configuration) { + var localVarAxiosParamCreator = (0, exports.SODPolicyApiAxiosParamCreator)(configuration); + return { + /** + * This creates both General and Conflicting Access Based policy, with a limit of 50 entitlements for each (left & right) criteria for Conflicting Access Based SOD policy. Requires role of ORG_ADMIN. + * @summary Create SOD policy + * @param {SodPolicy} sodPolicy + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + createSodPolicy: function (sodPolicy, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.createSodPolicy(sodPolicy, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This deletes a specified SOD policy. Requires role of ORG_ADMIN. + * @summary Delete SOD policy by ID + * @param {string} id The ID of the SOD Policy to delete. + * @param {boolean} [logical] Indicates whether this is a soft delete (logical true) or a hard delete. Soft delete marks the policy as deleted and just save it with this status. It could be fully deleted or recovered further. Hard delete vise versa permanently delete SOD request during this call. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + deleteSodPolicy: function (id, logical, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.deleteSodPolicy(id, logical, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This deletes schedule for a specified SOD policy by ID. + * @summary Delete SOD policy schedule + * @param {string} id The ID of the SOD policy the schedule must be deleted for. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + deleteSodPolicySchedule: function (id, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.deleteSodPolicySchedule(id, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This allows to download a specified named violation report for a given report reference. + * @summary Download custom violation report + * @param {string} reportResultId The ID of the report reference to download. + * @param {string} fileName Custom Name for the file. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getCustomViolationReport: function (reportResultId, fileName, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.getCustomViolationReport(reportResultId, fileName, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This allows to download a violation report for a given report reference. + * @summary Download violation report + * @param {string} reportResultId The ID of the report reference to download. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getDefaultViolationReport: function (reportResultId, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.getDefaultViolationReport(reportResultId, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This endpoint gets the status for a violation report for all policy run. + * @summary Get multi-report run task status + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getSodAllReportRunStatus: function (axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.getSodAllReportRunStatus(axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This gets specified SOD policy. Requires role of ORG_ADMIN. + * @summary Get SOD policy by ID + * @param {string} id The ID of the SOD Policy to retrieve. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getSodPolicy: function (id, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.getSodPolicy(id, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This endpoint gets a specified SOD policy\'s schedule. + * @summary Get SOD policy schedule + * @param {string} id The ID of the SOD policy schedule to retrieve. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getSodPolicySchedule: function (id, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.getSodPolicySchedule(id, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This gets the status for a violation report run task that has already been invoked. + * @summary Get violation report run status + * @param {string} reportResultId The ID of the report reference to retrieve. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getSodViolationReportRunStatus: function (reportResultId, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.getSodViolationReportRunStatus(reportResultId, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This gets the status for a violation report run task that has already been invoked. + * @summary Get SOD violation report status + * @param {string} id The ID of the violation report to retrieve status for. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getSodViolationReportStatus: function (id, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.getSodViolationReportStatus(id, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This gets list of all SOD policies. Requires role of ORG_ADMIN + * @summary List SOD policies + * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **id**: *eq* **name**: *eq* **state**: *eq* + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + listSodPolicies: function (limit, offset, count, filters, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.listSodPolicies(limit, offset, count, filters, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * Allows updating SOD Policy fields other than [\"id\",\"created\",\"creatorId\",\"policyQuery\",\"type\"] using the [JSON Patch](https://tools.ietf.org/html/rfc6902) standard. Requires role of ORG_ADMIN. This endpoint can only patch CONFLICTING_ACCESS_BASED type policies. Do not use this endpoint to patch general policies - doing so will build an API exception. + * @summary Patch SOD policy by ID + * @param {string} id The ID of the SOD policy being modified. + * @param {Array} jsonPatchOperation A list of SOD Policy update operations according to the [JSON Patch](https://tools.ietf.org/html/rfc6902) standard. The following fields are patchable: * name * description * ownerRef * externalPolicyReference * compensatingControls * correctionAdvice * state * tags * violationOwnerAssignmentConfig * scheduled * conflictingAccessCriteria + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + patchSodPolicy: function (id, jsonPatchOperation, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.patchSodPolicy(id, jsonPatchOperation, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This updates schedule for a specified SOD policy. + * @summary Update SOD Policy schedule + * @param {string} id The ID of the SOD policy to update its schedule. + * @param {SodPolicySchedule} sodPolicySchedule + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + putPolicySchedule: function (id, sodPolicySchedule, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.putPolicySchedule(id, sodPolicySchedule, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This updates a specified SOD policy. Requires role of ORG_ADMIN. + * @summary Update SOD policy by ID + * @param {string} id The ID of the SOD policy to update. + * @param {SodPolicy} sodPolicy + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + putSodPolicy: function (id, sodPolicy, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.putSodPolicy(id, sodPolicy, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * Runs the scheduled report for the policy retrieved by passed policy ID. The report schedule is fetched from the policy retrieved by ID. + * @summary Evaluate one policy by ID + * @param {string} id The SOD policy ID to run. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + startEvaluateSodPolicy: function (id, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.startEvaluateSodPolicy(id, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * Runs multi-policy report for the org. If a policy reports more than 5000 violations, the report mentions that the violation limit was exceeded for that policy. If the request is empty, the report runs for all policies. Otherwise, the report runs for only the filtered policy list provided. + * @summary Runs all policies for org + * @param {MultiPolicyRequest} [multiPolicyRequest] + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + startSodAllPoliciesForOrg: function (multiPolicyRequest, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.startSodAllPoliciesForOrg(multiPolicyRequest, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This invokes processing of violation report for given SOD policy. If the policy reports more than 5000 violations, the report returns with violation limit exceeded message. + * @summary Runs SOD policy violation report + * @param {string} id The SOD policy ID to run. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + startSodPolicy: function (id, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.startSodPolicy(id, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + }; + }; + exports.SODPolicyApiFp = SODPolicyApiFp; + /** + * SODPolicyApi - factory interface + * @export + */ + var SODPolicyApiFactory = function (configuration, basePath, axios) { + var localVarFp = (0, exports.SODPolicyApiFp)(configuration); + return { + /** + * This creates both General and Conflicting Access Based policy, with a limit of 50 entitlements for each (left & right) criteria for Conflicting Access Based SOD policy. Requires role of ORG_ADMIN. + * @summary Create SOD policy + * @param {SodPolicy} sodPolicy + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + createSodPolicy: function (sodPolicy, axiosOptions) { + return localVarFp.createSodPolicy(sodPolicy, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This deletes a specified SOD policy. Requires role of ORG_ADMIN. + * @summary Delete SOD policy by ID + * @param {string} id The ID of the SOD Policy to delete. + * @param {boolean} [logical] Indicates whether this is a soft delete (logical true) or a hard delete. Soft delete marks the policy as deleted and just save it with this status. It could be fully deleted or recovered further. Hard delete vise versa permanently delete SOD request during this call. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + deleteSodPolicy: function (id, logical, axiosOptions) { + return localVarFp.deleteSodPolicy(id, logical, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This deletes schedule for a specified SOD policy by ID. + * @summary Delete SOD policy schedule + * @param {string} id The ID of the SOD policy the schedule must be deleted for. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + deleteSodPolicySchedule: function (id, axiosOptions) { + return localVarFp.deleteSodPolicySchedule(id, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This allows to download a specified named violation report for a given report reference. + * @summary Download custom violation report + * @param {string} reportResultId The ID of the report reference to download. + * @param {string} fileName Custom Name for the file. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getCustomViolationReport: function (reportResultId, fileName, axiosOptions) { + return localVarFp.getCustomViolationReport(reportResultId, fileName, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This allows to download a violation report for a given report reference. + * @summary Download violation report + * @param {string} reportResultId The ID of the report reference to download. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getDefaultViolationReport: function (reportResultId, axiosOptions) { + return localVarFp.getDefaultViolationReport(reportResultId, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This endpoint gets the status for a violation report for all policy run. + * @summary Get multi-report run task status + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getSodAllReportRunStatus: function (axiosOptions) { + return localVarFp.getSodAllReportRunStatus(axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This gets specified SOD policy. Requires role of ORG_ADMIN. + * @summary Get SOD policy by ID + * @param {string} id The ID of the SOD Policy to retrieve. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getSodPolicy: function (id, axiosOptions) { + return localVarFp.getSodPolicy(id, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This endpoint gets a specified SOD policy\'s schedule. + * @summary Get SOD policy schedule + * @param {string} id The ID of the SOD policy schedule to retrieve. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getSodPolicySchedule: function (id, axiosOptions) { + return localVarFp.getSodPolicySchedule(id, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This gets the status for a violation report run task that has already been invoked. + * @summary Get violation report run status + * @param {string} reportResultId The ID of the report reference to retrieve. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getSodViolationReportRunStatus: function (reportResultId, axiosOptions) { + return localVarFp.getSodViolationReportRunStatus(reportResultId, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This gets the status for a violation report run task that has already been invoked. + * @summary Get SOD violation report status + * @param {string} id The ID of the violation report to retrieve status for. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getSodViolationReportStatus: function (id, axiosOptions) { + return localVarFp.getSodViolationReportStatus(id, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This gets list of all SOD policies. Requires role of ORG_ADMIN + * @summary List SOD policies + * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **id**: *eq* **name**: *eq* **state**: *eq* + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + listSodPolicies: function (limit, offset, count, filters, axiosOptions) { + return localVarFp.listSodPolicies(limit, offset, count, filters, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * Allows updating SOD Policy fields other than [\"id\",\"created\",\"creatorId\",\"policyQuery\",\"type\"] using the [JSON Patch](https://tools.ietf.org/html/rfc6902) standard. Requires role of ORG_ADMIN. This endpoint can only patch CONFLICTING_ACCESS_BASED type policies. Do not use this endpoint to patch general policies - doing so will build an API exception. + * @summary Patch SOD policy by ID + * @param {string} id The ID of the SOD policy being modified. + * @param {Array} jsonPatchOperation A list of SOD Policy update operations according to the [JSON Patch](https://tools.ietf.org/html/rfc6902) standard. The following fields are patchable: * name * description * ownerRef * externalPolicyReference * compensatingControls * correctionAdvice * state * tags * violationOwnerAssignmentConfig * scheduled * conflictingAccessCriteria + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + patchSodPolicy: function (id, jsonPatchOperation, axiosOptions) { + return localVarFp.patchSodPolicy(id, jsonPatchOperation, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This updates schedule for a specified SOD policy. + * @summary Update SOD Policy schedule + * @param {string} id The ID of the SOD policy to update its schedule. + * @param {SodPolicySchedule} sodPolicySchedule + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + putPolicySchedule: function (id, sodPolicySchedule, axiosOptions) { + return localVarFp.putPolicySchedule(id, sodPolicySchedule, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This updates a specified SOD policy. Requires role of ORG_ADMIN. + * @summary Update SOD policy by ID + * @param {string} id The ID of the SOD policy to update. + * @param {SodPolicy} sodPolicy + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + putSodPolicy: function (id, sodPolicy, axiosOptions) { + return localVarFp.putSodPolicy(id, sodPolicy, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * Runs the scheduled report for the policy retrieved by passed policy ID. The report schedule is fetched from the policy retrieved by ID. + * @summary Evaluate one policy by ID + * @param {string} id The SOD policy ID to run. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + startEvaluateSodPolicy: function (id, axiosOptions) { + return localVarFp.startEvaluateSodPolicy(id, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * Runs multi-policy report for the org. If a policy reports more than 5000 violations, the report mentions that the violation limit was exceeded for that policy. If the request is empty, the report runs for all policies. Otherwise, the report runs for only the filtered policy list provided. + * @summary Runs all policies for org + * @param {MultiPolicyRequest} [multiPolicyRequest] + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + startSodAllPoliciesForOrg: function (multiPolicyRequest, axiosOptions) { + return localVarFp.startSodAllPoliciesForOrg(multiPolicyRequest, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This invokes processing of violation report for given SOD policy. If the policy reports more than 5000 violations, the report returns with violation limit exceeded message. + * @summary Runs SOD policy violation report + * @param {string} id The SOD policy ID to run. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + startSodPolicy: function (id, axiosOptions) { + return localVarFp.startSodPolicy(id, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + }; + }; + exports.SODPolicyApiFactory = SODPolicyApiFactory; + /** + * SODPolicyApi - object-oriented interface + * @export + * @class SODPolicyApi + * @extends {BaseAPI} + */ + var SODPolicyApi = /** @class */ (function (_super) { + __extends(SODPolicyApi, _super); + function SODPolicyApi() { + return _super !== null && _super.apply(this, arguments) || this; + } + /** + * This creates both General and Conflicting Access Based policy, with a limit of 50 entitlements for each (left & right) criteria for Conflicting Access Based SOD policy. Requires role of ORG_ADMIN. + * @summary Create SOD policy + * @param {SODPolicyApiCreateSodPolicyRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof SODPolicyApi + */ + SODPolicyApi.prototype.createSodPolicy = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.SODPolicyApiFp)(this.configuration).createSodPolicy(requestParameters.sodPolicy, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This deletes a specified SOD policy. Requires role of ORG_ADMIN. + * @summary Delete SOD policy by ID + * @param {SODPolicyApiDeleteSodPolicyRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof SODPolicyApi + */ + SODPolicyApi.prototype.deleteSodPolicy = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.SODPolicyApiFp)(this.configuration).deleteSodPolicy(requestParameters.id, requestParameters.logical, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This deletes schedule for a specified SOD policy by ID. + * @summary Delete SOD policy schedule + * @param {SODPolicyApiDeleteSodPolicyScheduleRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof SODPolicyApi + */ + SODPolicyApi.prototype.deleteSodPolicySchedule = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.SODPolicyApiFp)(this.configuration).deleteSodPolicySchedule(requestParameters.id, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This allows to download a specified named violation report for a given report reference. + * @summary Download custom violation report + * @param {SODPolicyApiGetCustomViolationReportRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof SODPolicyApi + */ + SODPolicyApi.prototype.getCustomViolationReport = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.SODPolicyApiFp)(this.configuration).getCustomViolationReport(requestParameters.reportResultId, requestParameters.fileName, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This allows to download a violation report for a given report reference. + * @summary Download violation report + * @param {SODPolicyApiGetDefaultViolationReportRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof SODPolicyApi + */ + SODPolicyApi.prototype.getDefaultViolationReport = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.SODPolicyApiFp)(this.configuration).getDefaultViolationReport(requestParameters.reportResultId, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This endpoint gets the status for a violation report for all policy run. + * @summary Get multi-report run task status + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof SODPolicyApi + */ + SODPolicyApi.prototype.getSodAllReportRunStatus = function (axiosOptions) { + var _this = this; + return (0, exports.SODPolicyApiFp)(this.configuration).getSodAllReportRunStatus(axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This gets specified SOD policy. Requires role of ORG_ADMIN. + * @summary Get SOD policy by ID + * @param {SODPolicyApiGetSodPolicyRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof SODPolicyApi + */ + SODPolicyApi.prototype.getSodPolicy = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.SODPolicyApiFp)(this.configuration).getSodPolicy(requestParameters.id, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This endpoint gets a specified SOD policy\'s schedule. + * @summary Get SOD policy schedule + * @param {SODPolicyApiGetSodPolicyScheduleRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof SODPolicyApi + */ + SODPolicyApi.prototype.getSodPolicySchedule = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.SODPolicyApiFp)(this.configuration).getSodPolicySchedule(requestParameters.id, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This gets the status for a violation report run task that has already been invoked. + * @summary Get violation report run status + * @param {SODPolicyApiGetSodViolationReportRunStatusRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof SODPolicyApi + */ + SODPolicyApi.prototype.getSodViolationReportRunStatus = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.SODPolicyApiFp)(this.configuration).getSodViolationReportRunStatus(requestParameters.reportResultId, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This gets the status for a violation report run task that has already been invoked. + * @summary Get SOD violation report status + * @param {SODPolicyApiGetSodViolationReportStatusRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof SODPolicyApi + */ + SODPolicyApi.prototype.getSodViolationReportStatus = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.SODPolicyApiFp)(this.configuration).getSodViolationReportStatus(requestParameters.id, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This gets list of all SOD policies. Requires role of ORG_ADMIN + * @summary List SOD policies + * @param {SODPolicyApiListSodPoliciesRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof SODPolicyApi + */ + SODPolicyApi.prototype.listSodPolicies = function (requestParameters, axiosOptions) { + var _this = this; + if (requestParameters === void 0) { requestParameters = {}; } + return (0, exports.SODPolicyApiFp)(this.configuration).listSodPolicies(requestParameters.limit, requestParameters.offset, requestParameters.count, requestParameters.filters, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * Allows updating SOD Policy fields other than [\"id\",\"created\",\"creatorId\",\"policyQuery\",\"type\"] using the [JSON Patch](https://tools.ietf.org/html/rfc6902) standard. Requires role of ORG_ADMIN. This endpoint can only patch CONFLICTING_ACCESS_BASED type policies. Do not use this endpoint to patch general policies - doing so will build an API exception. + * @summary Patch SOD policy by ID + * @param {SODPolicyApiPatchSodPolicyRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof SODPolicyApi + */ + SODPolicyApi.prototype.patchSodPolicy = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.SODPolicyApiFp)(this.configuration).patchSodPolicy(requestParameters.id, requestParameters.jsonPatchOperation, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This updates schedule for a specified SOD policy. + * @summary Update SOD Policy schedule + * @param {SODPolicyApiPutPolicyScheduleRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof SODPolicyApi + */ + SODPolicyApi.prototype.putPolicySchedule = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.SODPolicyApiFp)(this.configuration).putPolicySchedule(requestParameters.id, requestParameters.sodPolicySchedule, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This updates a specified SOD policy. Requires role of ORG_ADMIN. + * @summary Update SOD policy by ID + * @param {SODPolicyApiPutSodPolicyRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof SODPolicyApi + */ + SODPolicyApi.prototype.putSodPolicy = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.SODPolicyApiFp)(this.configuration).putSodPolicy(requestParameters.id, requestParameters.sodPolicy, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * Runs the scheduled report for the policy retrieved by passed policy ID. The report schedule is fetched from the policy retrieved by ID. + * @summary Evaluate one policy by ID + * @param {SODPolicyApiStartEvaluateSodPolicyRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof SODPolicyApi + */ + SODPolicyApi.prototype.startEvaluateSodPolicy = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.SODPolicyApiFp)(this.configuration).startEvaluateSodPolicy(requestParameters.id, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * Runs multi-policy report for the org. If a policy reports more than 5000 violations, the report mentions that the violation limit was exceeded for that policy. If the request is empty, the report runs for all policies. Otherwise, the report runs for only the filtered policy list provided. + * @summary Runs all policies for org + * @param {SODPolicyApiStartSodAllPoliciesForOrgRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof SODPolicyApi + */ + SODPolicyApi.prototype.startSodAllPoliciesForOrg = function (requestParameters, axiosOptions) { + var _this = this; + if (requestParameters === void 0) { requestParameters = {}; } + return (0, exports.SODPolicyApiFp)(this.configuration).startSodAllPoliciesForOrg(requestParameters.multiPolicyRequest, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This invokes processing of violation report for given SOD policy. If the policy reports more than 5000 violations, the report returns with violation limit exceeded message. + * @summary Runs SOD policy violation report + * @param {SODPolicyApiStartSodPolicyRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof SODPolicyApi + */ + SODPolicyApi.prototype.startSodPolicy = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.SODPolicyApiFp)(this.configuration).startSodPolicy(requestParameters.id, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + return SODPolicyApi; + }(base_1.BaseAPI)); + exports.SODPolicyApi = SODPolicyApi; + /** + * SODViolationsApi - axios parameter creator + * @export + */ + var SODViolationsApiAxiosParamCreator = function (configuration) { + var _this = this; + return { + /** + * This API is used to check if granting some additional accesses would cause the subject to be in violation of any SOD policies. Returns the violations that would be caused. A token with ORG_ADMIN or API authority is required to call this API. + * @summary Predict SOD violations for identity. + * @param {IdentityWithNewAccess} identityWithNewAccess + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + startPredictSodViolations: function (identityWithNewAccess, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'identityWithNewAccess' is not null or undefined + (0, common_1.assertParamExists)('startPredictSodViolations', 'identityWithNewAccess', identityWithNewAccess); + localVarPath = "/sod-violations/predict"; + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + localVarHeaderParameter['Content-Type'] = 'application/json'; + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(identityWithNewAccess, localVarRequestOptions, configuration); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This API initiates a SOD policy verification asynchronously. A token with ORG_ADMIN authority is required to call this API. + * @summary Check SOD violations + * @param {IdentityWithNewAccess1} identityWithNewAccess1 + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + startViolationCheck: function (identityWithNewAccess1, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'identityWithNewAccess1' is not null or undefined + (0, common_1.assertParamExists)('startViolationCheck', 'identityWithNewAccess1', identityWithNewAccess1); + localVarPath = "/sod-violations/check"; + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + localVarHeaderParameter['Content-Type'] = 'application/json'; + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(identityWithNewAccess1, localVarRequestOptions, configuration); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + }; + }; + exports.SODViolationsApiAxiosParamCreator = SODViolationsApiAxiosParamCreator; + /** + * SODViolationsApi - functional programming interface + * @export + */ + var SODViolationsApiFp = function (configuration) { + var localVarAxiosParamCreator = (0, exports.SODViolationsApiAxiosParamCreator)(configuration); + return { + /** + * This API is used to check if granting some additional accesses would cause the subject to be in violation of any SOD policies. Returns the violations that would be caused. A token with ORG_ADMIN or API authority is required to call this API. + * @summary Predict SOD violations for identity. + * @param {IdentityWithNewAccess} identityWithNewAccess + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + startPredictSodViolations: function (identityWithNewAccess, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.startPredictSodViolations(identityWithNewAccess, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This API initiates a SOD policy verification asynchronously. A token with ORG_ADMIN authority is required to call this API. + * @summary Check SOD violations + * @param {IdentityWithNewAccess1} identityWithNewAccess1 + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + startViolationCheck: function (identityWithNewAccess1, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.startViolationCheck(identityWithNewAccess1, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + }; + }; + exports.SODViolationsApiFp = SODViolationsApiFp; + /** + * SODViolationsApi - factory interface + * @export + */ + var SODViolationsApiFactory = function (configuration, basePath, axios) { + var localVarFp = (0, exports.SODViolationsApiFp)(configuration); + return { + /** + * This API is used to check if granting some additional accesses would cause the subject to be in violation of any SOD policies. Returns the violations that would be caused. A token with ORG_ADMIN or API authority is required to call this API. + * @summary Predict SOD violations for identity. + * @param {IdentityWithNewAccess} identityWithNewAccess + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + startPredictSodViolations: function (identityWithNewAccess, axiosOptions) { + return localVarFp.startPredictSodViolations(identityWithNewAccess, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This API initiates a SOD policy verification asynchronously. A token with ORG_ADMIN authority is required to call this API. + * @summary Check SOD violations + * @param {IdentityWithNewAccess1} identityWithNewAccess1 + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + startViolationCheck: function (identityWithNewAccess1, axiosOptions) { + return localVarFp.startViolationCheck(identityWithNewAccess1, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + }; + }; + exports.SODViolationsApiFactory = SODViolationsApiFactory; + /** + * SODViolationsApi - object-oriented interface + * @export + * @class SODViolationsApi + * @extends {BaseAPI} + */ + var SODViolationsApi = /** @class */ (function (_super) { + __extends(SODViolationsApi, _super); + function SODViolationsApi() { + return _super !== null && _super.apply(this, arguments) || this; + } + /** + * This API is used to check if granting some additional accesses would cause the subject to be in violation of any SOD policies. Returns the violations that would be caused. A token with ORG_ADMIN or API authority is required to call this API. + * @summary Predict SOD violations for identity. + * @param {SODViolationsApiStartPredictSodViolationsRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof SODViolationsApi + */ + SODViolationsApi.prototype.startPredictSodViolations = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.SODViolationsApiFp)(this.configuration).startPredictSodViolations(requestParameters.identityWithNewAccess, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This API initiates a SOD policy verification asynchronously. A token with ORG_ADMIN authority is required to call this API. + * @summary Check SOD violations + * @param {SODViolationsApiStartViolationCheckRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof SODViolationsApi + */ + SODViolationsApi.prototype.startViolationCheck = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.SODViolationsApiFp)(this.configuration).startViolationCheck(requestParameters.identityWithNewAccess1, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + return SODViolationsApi; + }(base_1.BaseAPI)); + exports.SODViolationsApi = SODViolationsApi; + /** + * SavedSearchApi - axios parameter creator + * @export + */ + var SavedSearchApiAxiosParamCreator = function (configuration) { + var _this = this; + return { + /** + * Creates a new saved search. + * @summary Create a saved search + * @param {CreateSavedSearchRequest} createSavedSearchRequest The saved search to persist. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + createSavedSearch: function (createSavedSearchRequest, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'createSavedSearchRequest' is not null or undefined + (0, common_1.assertParamExists)('createSavedSearch', 'createSavedSearchRequest', createSavedSearchRequest); + localVarPath = "/saved-searches"; + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + localVarHeaderParameter['Content-Type'] = 'application/json'; + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(createSavedSearchRequest, localVarRequestOptions, configuration); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * Deletes the specified saved search. + * @summary Delete document by ID + * @param {string} id ID of the requested document. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + deleteSavedSearch: function (id, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'id' is not null or undefined + (0, common_1.assertParamExists)('deleteSavedSearch', 'id', id); + localVarPath = "/saved-searches/{id}" + .replace("{".concat("id", "}"), encodeURIComponent(String(id))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'DELETE' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * Executes the specified saved search. + * @summary Execute a saved search by ID + * @param {string} id ID of the requested document. + * @param {SearchArguments} searchArguments When saved search execution is triggered by a scheduled search, *scheduleId* will specify the ID of the triggering scheduled search. If *scheduleId* is not specified (when execution is triggered by a UI test), the *owner* and *recipients* arguments must be provided. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + executeSavedSearch: function (id, searchArguments, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'id' is not null or undefined + (0, common_1.assertParamExists)('executeSavedSearch', 'id', id); + // verify required parameter 'searchArguments' is not null or undefined + (0, common_1.assertParamExists)('executeSavedSearch', 'searchArguments', searchArguments); + localVarPath = "/saved-searches/{id}/execute" + .replace("{".concat("id", "}"), encodeURIComponent(String(id))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + localVarHeaderParameter['Content-Type'] = 'application/json'; + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(searchArguments, localVarRequestOptions, configuration); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * Returns the specified saved search. + * @summary Return saved search by ID + * @param {string} id ID of the requested document. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getSavedSearch: function (id, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'id' is not null or undefined + (0, common_1.assertParamExists)('getSavedSearch', 'id', id); + localVarPath = "/saved-searches/{id}" + .replace("{".concat("id", "}"), encodeURIComponent(String(id))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * Returns a list of saved searches. + * @summary Return a list of Saved Searches + * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **owner.id**: *eq* **publiic**: *eq* + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + listSavedSearches: function (offset, limit, count, filters, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + localVarPath = "/saved-searches"; + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + if (offset !== undefined) { + localVarQueryParameter['offset'] = offset; + } + if (limit !== undefined) { + localVarQueryParameter['limit'] = limit; + } + if (count !== undefined) { + localVarQueryParameter['count'] = count; + } + if (filters !== undefined) { + localVarQueryParameter['filters'] = filters; + } + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * Updates an existing saved search. >**NOTE: You cannot update the `owner` of the saved search.** + * @summary Updates an existing saved search + * @param {string} id ID of the requested document. + * @param {SavedSearch} savedSearch The saved search to persist. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + putSavedSearch: function (id, savedSearch, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'id' is not null or undefined + (0, common_1.assertParamExists)('putSavedSearch', 'id', id); + // verify required parameter 'savedSearch' is not null or undefined + (0, common_1.assertParamExists)('putSavedSearch', 'savedSearch', savedSearch); + localVarPath = "/saved-searches/{id}" + .replace("{".concat("id", "}"), encodeURIComponent(String(id))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'PUT' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + localVarHeaderParameter['Content-Type'] = 'application/json'; + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(savedSearch, localVarRequestOptions, configuration); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + }; + }; + exports.SavedSearchApiAxiosParamCreator = SavedSearchApiAxiosParamCreator; + /** + * SavedSearchApi - functional programming interface + * @export + */ + var SavedSearchApiFp = function (configuration) { + var localVarAxiosParamCreator = (0, exports.SavedSearchApiAxiosParamCreator)(configuration); + return { + /** + * Creates a new saved search. + * @summary Create a saved search + * @param {CreateSavedSearchRequest} createSavedSearchRequest The saved search to persist. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + createSavedSearch: function (createSavedSearchRequest, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.createSavedSearch(createSavedSearchRequest, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * Deletes the specified saved search. + * @summary Delete document by ID + * @param {string} id ID of the requested document. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + deleteSavedSearch: function (id, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.deleteSavedSearch(id, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * Executes the specified saved search. + * @summary Execute a saved search by ID + * @param {string} id ID of the requested document. + * @param {SearchArguments} searchArguments When saved search execution is triggered by a scheduled search, *scheduleId* will specify the ID of the triggering scheduled search. If *scheduleId* is not specified (when execution is triggered by a UI test), the *owner* and *recipients* arguments must be provided. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + executeSavedSearch: function (id, searchArguments, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.executeSavedSearch(id, searchArguments, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * Returns the specified saved search. + * @summary Return saved search by ID + * @param {string} id ID of the requested document. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getSavedSearch: function (id, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.getSavedSearch(id, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * Returns a list of saved searches. + * @summary Return a list of Saved Searches + * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **owner.id**: *eq* **publiic**: *eq* + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + listSavedSearches: function (offset, limit, count, filters, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.listSavedSearches(offset, limit, count, filters, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * Updates an existing saved search. >**NOTE: You cannot update the `owner` of the saved search.** + * @summary Updates an existing saved search + * @param {string} id ID of the requested document. + * @param {SavedSearch} savedSearch The saved search to persist. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + putSavedSearch: function (id, savedSearch, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.putSavedSearch(id, savedSearch, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + }; + }; + exports.SavedSearchApiFp = SavedSearchApiFp; + /** + * SavedSearchApi - factory interface + * @export + */ + var SavedSearchApiFactory = function (configuration, basePath, axios) { + var localVarFp = (0, exports.SavedSearchApiFp)(configuration); + return { + /** + * Creates a new saved search. + * @summary Create a saved search + * @param {CreateSavedSearchRequest} createSavedSearchRequest The saved search to persist. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + createSavedSearch: function (createSavedSearchRequest, axiosOptions) { + return localVarFp.createSavedSearch(createSavedSearchRequest, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * Deletes the specified saved search. + * @summary Delete document by ID + * @param {string} id ID of the requested document. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + deleteSavedSearch: function (id, axiosOptions) { + return localVarFp.deleteSavedSearch(id, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * Executes the specified saved search. + * @summary Execute a saved search by ID + * @param {string} id ID of the requested document. + * @param {SearchArguments} searchArguments When saved search execution is triggered by a scheduled search, *scheduleId* will specify the ID of the triggering scheduled search. If *scheduleId* is not specified (when execution is triggered by a UI test), the *owner* and *recipients* arguments must be provided. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + executeSavedSearch: function (id, searchArguments, axiosOptions) { + return localVarFp.executeSavedSearch(id, searchArguments, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * Returns the specified saved search. + * @summary Return saved search by ID + * @param {string} id ID of the requested document. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getSavedSearch: function (id, axiosOptions) { + return localVarFp.getSavedSearch(id, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * Returns a list of saved searches. + * @summary Return a list of Saved Searches + * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **owner.id**: *eq* **publiic**: *eq* + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + listSavedSearches: function (offset, limit, count, filters, axiosOptions) { + return localVarFp.listSavedSearches(offset, limit, count, filters, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * Updates an existing saved search. >**NOTE: You cannot update the `owner` of the saved search.** + * @summary Updates an existing saved search + * @param {string} id ID of the requested document. + * @param {SavedSearch} savedSearch The saved search to persist. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + putSavedSearch: function (id, savedSearch, axiosOptions) { + return localVarFp.putSavedSearch(id, savedSearch, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + }; + }; + exports.SavedSearchApiFactory = SavedSearchApiFactory; + /** + * SavedSearchApi - object-oriented interface + * @export + * @class SavedSearchApi + * @extends {BaseAPI} + */ + var SavedSearchApi = /** @class */ (function (_super) { + __extends(SavedSearchApi, _super); + function SavedSearchApi() { + return _super !== null && _super.apply(this, arguments) || this; + } + /** + * Creates a new saved search. + * @summary Create a saved search + * @param {SavedSearchApiCreateSavedSearchRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof SavedSearchApi + */ + SavedSearchApi.prototype.createSavedSearch = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.SavedSearchApiFp)(this.configuration).createSavedSearch(requestParameters.createSavedSearchRequest, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * Deletes the specified saved search. + * @summary Delete document by ID + * @param {SavedSearchApiDeleteSavedSearchRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof SavedSearchApi + */ + SavedSearchApi.prototype.deleteSavedSearch = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.SavedSearchApiFp)(this.configuration).deleteSavedSearch(requestParameters.id, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * Executes the specified saved search. + * @summary Execute a saved search by ID + * @param {SavedSearchApiExecuteSavedSearchRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof SavedSearchApi + */ + SavedSearchApi.prototype.executeSavedSearch = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.SavedSearchApiFp)(this.configuration).executeSavedSearch(requestParameters.id, requestParameters.searchArguments, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * Returns the specified saved search. + * @summary Return saved search by ID + * @param {SavedSearchApiGetSavedSearchRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof SavedSearchApi + */ + SavedSearchApi.prototype.getSavedSearch = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.SavedSearchApiFp)(this.configuration).getSavedSearch(requestParameters.id, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * Returns a list of saved searches. + * @summary Return a list of Saved Searches + * @param {SavedSearchApiListSavedSearchesRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof SavedSearchApi + */ + SavedSearchApi.prototype.listSavedSearches = function (requestParameters, axiosOptions) { + var _this = this; + if (requestParameters === void 0) { requestParameters = {}; } + return (0, exports.SavedSearchApiFp)(this.configuration).listSavedSearches(requestParameters.offset, requestParameters.limit, requestParameters.count, requestParameters.filters, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * Updates an existing saved search. >**NOTE: You cannot update the `owner` of the saved search.** + * @summary Updates an existing saved search + * @param {SavedSearchApiPutSavedSearchRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof SavedSearchApi + */ + SavedSearchApi.prototype.putSavedSearch = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.SavedSearchApiFp)(this.configuration).putSavedSearch(requestParameters.id, requestParameters.savedSearch, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + return SavedSearchApi; + }(base_1.BaseAPI)); + exports.SavedSearchApi = SavedSearchApi; + /** + * ScheduledSearchApi - axios parameter creator + * @export + */ + var ScheduledSearchApiAxiosParamCreator = function (configuration) { + var _this = this; + return { + /** + * Creates a new scheduled search. + * @summary Create a new scheduled search + * @param {CreateScheduledSearchRequest} createScheduledSearchRequest The scheduled search to persist. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + createScheduledSearch: function (createScheduledSearchRequest, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'createScheduledSearchRequest' is not null or undefined + (0, common_1.assertParamExists)('createScheduledSearch', 'createScheduledSearchRequest', createScheduledSearchRequest); + localVarPath = "/scheduled-searches"; + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + localVarHeaderParameter['Content-Type'] = 'application/json'; + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(createScheduledSearchRequest, localVarRequestOptions, configuration); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * Deletes the specified scheduled search. + * @summary Delete a Scheduled Search + * @param {string} id ID of the requested document. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + deleteScheduledSearch: function (id, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'id' is not null or undefined + (0, common_1.assertParamExists)('deleteScheduledSearch', 'id', id); + localVarPath = "/scheduled-searches/{id}" + .replace("{".concat("id", "}"), encodeURIComponent(String(id))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'DELETE' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * Returns the specified scheduled search. + * @summary Get a Scheduled Search + * @param {string} id ID of the requested document. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getScheduledSearch: function (id, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'id' is not null or undefined + (0, common_1.assertParamExists)('getScheduledSearch', 'id', id); + localVarPath = "/scheduled-searches/{id}" + .replace("{".concat("id", "}"), encodeURIComponent(String(id))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * Returns a list of scheduled searches. + * @summary List scheduled searches + * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **owner.id**: *eq* **savedSearchId**: *eq* + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + listScheduledSearch: function (offset, limit, count, filters, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + localVarPath = "/scheduled-searches"; + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + if (offset !== undefined) { + localVarQueryParameter['offset'] = offset; + } + if (limit !== undefined) { + localVarQueryParameter['limit'] = limit; + } + if (count !== undefined) { + localVarQueryParameter['count'] = count; + } + if (filters !== undefined) { + localVarQueryParameter['filters'] = filters; + } + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * Unsubscribes a recipient from the specified scheduled search. + * @summary Unsubscribe a recipient from Scheduled Search + * @param {string} id ID of the requested document. + * @param {TypedReference} typedReference The recipient to be removed from the scheduled search. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + unsubscribeScheduledSearch: function (id, typedReference, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'id' is not null or undefined + (0, common_1.assertParamExists)('unsubscribeScheduledSearch', 'id', id); + // verify required parameter 'typedReference' is not null or undefined + (0, common_1.assertParamExists)('unsubscribeScheduledSearch', 'typedReference', typedReference); + localVarPath = "/scheduled-searches/{id}/unsubscribe" + .replace("{".concat("id", "}"), encodeURIComponent(String(id))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + localVarHeaderParameter['Content-Type'] = 'application/json'; + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(typedReference, localVarRequestOptions, configuration); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * Updates an existing scheduled search. + * @summary Update an existing Scheduled Search + * @param {string} id ID of the requested document. + * @param {ScheduledSearch} scheduledSearch The scheduled search to persist. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + updateScheduledSearch: function (id, scheduledSearch, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'id' is not null or undefined + (0, common_1.assertParamExists)('updateScheduledSearch', 'id', id); + // verify required parameter 'scheduledSearch' is not null or undefined + (0, common_1.assertParamExists)('updateScheduledSearch', 'scheduledSearch', scheduledSearch); + localVarPath = "/scheduled-searches/{id}" + .replace("{".concat("id", "}"), encodeURIComponent(String(id))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'PUT' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + localVarHeaderParameter['Content-Type'] = 'application/json'; + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(scheduledSearch, localVarRequestOptions, configuration); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + }; + }; + exports.ScheduledSearchApiAxiosParamCreator = ScheduledSearchApiAxiosParamCreator; + /** + * ScheduledSearchApi - functional programming interface + * @export + */ + var ScheduledSearchApiFp = function (configuration) { + var localVarAxiosParamCreator = (0, exports.ScheduledSearchApiAxiosParamCreator)(configuration); + return { + /** + * Creates a new scheduled search. + * @summary Create a new scheduled search + * @param {CreateScheduledSearchRequest} createScheduledSearchRequest The scheduled search to persist. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + createScheduledSearch: function (createScheduledSearchRequest, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.createScheduledSearch(createScheduledSearchRequest, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * Deletes the specified scheduled search. + * @summary Delete a Scheduled Search + * @param {string} id ID of the requested document. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + deleteScheduledSearch: function (id, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.deleteScheduledSearch(id, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * Returns the specified scheduled search. + * @summary Get a Scheduled Search + * @param {string} id ID of the requested document. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getScheduledSearch: function (id, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.getScheduledSearch(id, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * Returns a list of scheduled searches. + * @summary List scheduled searches + * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **owner.id**: *eq* **savedSearchId**: *eq* + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + listScheduledSearch: function (offset, limit, count, filters, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.listScheduledSearch(offset, limit, count, filters, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * Unsubscribes a recipient from the specified scheduled search. + * @summary Unsubscribe a recipient from Scheduled Search + * @param {string} id ID of the requested document. + * @param {TypedReference} typedReference The recipient to be removed from the scheduled search. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + unsubscribeScheduledSearch: function (id, typedReference, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.unsubscribeScheduledSearch(id, typedReference, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * Updates an existing scheduled search. + * @summary Update an existing Scheduled Search + * @param {string} id ID of the requested document. + * @param {ScheduledSearch} scheduledSearch The scheduled search to persist. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + updateScheduledSearch: function (id, scheduledSearch, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.updateScheduledSearch(id, scheduledSearch, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + }; + }; + exports.ScheduledSearchApiFp = ScheduledSearchApiFp; + /** + * ScheduledSearchApi - factory interface + * @export + */ + var ScheduledSearchApiFactory = function (configuration, basePath, axios) { + var localVarFp = (0, exports.ScheduledSearchApiFp)(configuration); + return { + /** + * Creates a new scheduled search. + * @summary Create a new scheduled search + * @param {CreateScheduledSearchRequest} createScheduledSearchRequest The scheduled search to persist. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + createScheduledSearch: function (createScheduledSearchRequest, axiosOptions) { + return localVarFp.createScheduledSearch(createScheduledSearchRequest, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * Deletes the specified scheduled search. + * @summary Delete a Scheduled Search + * @param {string} id ID of the requested document. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + deleteScheduledSearch: function (id, axiosOptions) { + return localVarFp.deleteScheduledSearch(id, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * Returns the specified scheduled search. + * @summary Get a Scheduled Search + * @param {string} id ID of the requested document. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getScheduledSearch: function (id, axiosOptions) { + return localVarFp.getScheduledSearch(id, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * Returns a list of scheduled searches. + * @summary List scheduled searches + * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **owner.id**: *eq* **savedSearchId**: *eq* + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + listScheduledSearch: function (offset, limit, count, filters, axiosOptions) { + return localVarFp.listScheduledSearch(offset, limit, count, filters, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * Unsubscribes a recipient from the specified scheduled search. + * @summary Unsubscribe a recipient from Scheduled Search + * @param {string} id ID of the requested document. + * @param {TypedReference} typedReference The recipient to be removed from the scheduled search. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + unsubscribeScheduledSearch: function (id, typedReference, axiosOptions) { + return localVarFp.unsubscribeScheduledSearch(id, typedReference, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * Updates an existing scheduled search. + * @summary Update an existing Scheduled Search + * @param {string} id ID of the requested document. + * @param {ScheduledSearch} scheduledSearch The scheduled search to persist. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + updateScheduledSearch: function (id, scheduledSearch, axiosOptions) { + return localVarFp.updateScheduledSearch(id, scheduledSearch, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + }; + }; + exports.ScheduledSearchApiFactory = ScheduledSearchApiFactory; + /** + * ScheduledSearchApi - object-oriented interface + * @export + * @class ScheduledSearchApi + * @extends {BaseAPI} + */ + var ScheduledSearchApi = /** @class */ (function (_super) { + __extends(ScheduledSearchApi, _super); + function ScheduledSearchApi() { + return _super !== null && _super.apply(this, arguments) || this; + } + /** + * Creates a new scheduled search. + * @summary Create a new scheduled search + * @param {ScheduledSearchApiCreateScheduledSearchRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof ScheduledSearchApi + */ + ScheduledSearchApi.prototype.createScheduledSearch = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.ScheduledSearchApiFp)(this.configuration).createScheduledSearch(requestParameters.createScheduledSearchRequest, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * Deletes the specified scheduled search. + * @summary Delete a Scheduled Search + * @param {ScheduledSearchApiDeleteScheduledSearchRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof ScheduledSearchApi + */ + ScheduledSearchApi.prototype.deleteScheduledSearch = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.ScheduledSearchApiFp)(this.configuration).deleteScheduledSearch(requestParameters.id, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * Returns the specified scheduled search. + * @summary Get a Scheduled Search + * @param {ScheduledSearchApiGetScheduledSearchRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof ScheduledSearchApi + */ + ScheduledSearchApi.prototype.getScheduledSearch = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.ScheduledSearchApiFp)(this.configuration).getScheduledSearch(requestParameters.id, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * Returns a list of scheduled searches. + * @summary List scheduled searches + * @param {ScheduledSearchApiListScheduledSearchRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof ScheduledSearchApi + */ + ScheduledSearchApi.prototype.listScheduledSearch = function (requestParameters, axiosOptions) { + var _this = this; + if (requestParameters === void 0) { requestParameters = {}; } + return (0, exports.ScheduledSearchApiFp)(this.configuration).listScheduledSearch(requestParameters.offset, requestParameters.limit, requestParameters.count, requestParameters.filters, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * Unsubscribes a recipient from the specified scheduled search. + * @summary Unsubscribe a recipient from Scheduled Search + * @param {ScheduledSearchApiUnsubscribeScheduledSearchRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof ScheduledSearchApi + */ + ScheduledSearchApi.prototype.unsubscribeScheduledSearch = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.ScheduledSearchApiFp)(this.configuration).unsubscribeScheduledSearch(requestParameters.id, requestParameters.typedReference, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * Updates an existing scheduled search. + * @summary Update an existing Scheduled Search + * @param {ScheduledSearchApiUpdateScheduledSearchRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof ScheduledSearchApi + */ + ScheduledSearchApi.prototype.updateScheduledSearch = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.ScheduledSearchApiFp)(this.configuration).updateScheduledSearch(requestParameters.id, requestParameters.scheduledSearch, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + return ScheduledSearchApi; + }(base_1.BaseAPI)); + exports.ScheduledSearchApi = ScheduledSearchApi; + /** + * SearchApi - axios parameter creator + * @export + */ + var SearchApiAxiosParamCreator = function (configuration) { + var _this = this; + return { + /** + * Performs a search query aggregation and returns the aggregation result. By default, you can page a maximum of 10,000 search result records. To page past 10,000 records, you can use searchAfter paging. Refer to [Paginating Search Queries](https://developer.sailpoint.com/idn/api/standard-collection-parameters#paginating-search-queries) for more information about how to implement searchAfter paging. + * @summary Perform a Search Query Aggregation + * @param {Search} search + * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + searchAggregate: function (search, offset, limit, count, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'search' is not null or undefined + (0, common_1.assertParamExists)('searchAggregate', 'search', search); + localVarPath = "/search/aggregate"; + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + if (offset !== undefined) { + localVarQueryParameter['offset'] = offset; + } + if (limit !== undefined) { + localVarQueryParameter['limit'] = limit; + } + if (count !== undefined) { + localVarQueryParameter['count'] = count; + } + localVarHeaderParameter['Content-Type'] = 'application/json'; + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(search, localVarRequestOptions, configuration); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * Performs a search with a provided query and returns the count of results in the X-Total-Count header. + * @summary Count Documents Satisfying a Query + * @param {Search} search + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + searchCount: function (search, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'search' is not null or undefined + (0, common_1.assertParamExists)('searchCount', 'search', search); + localVarPath = "/search/count"; + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + localVarHeaderParameter['Content-Type'] = 'application/json'; + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(search, localVarRequestOptions, configuration); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * Fetches a single document from the specified index, using the specified document ID. + * @summary Get a Document by ID + * @param {string} index The index from which to fetch the specified document. The currently supported index names are: *accessprofiles*, *accountactivities*, *accounts*, *aggregations*, *entitlements*, *events*, *identities*, and *roles*. + * @param {string} id ID of the requested document. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + searchGet: function (index, id, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'index' is not null or undefined + (0, common_1.assertParamExists)('searchGet', 'index', index); + // verify required parameter 'id' is not null or undefined + (0, common_1.assertParamExists)('searchGet', 'id', id); + localVarPath = "/search/{index}/{id}" + .replace("{".concat("index", "}"), encodeURIComponent(String(index))) + .replace("{".concat("id", "}"), encodeURIComponent(String(id))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * Performs a search with the provided query and returns a matching result collection. By default, you can page a maximum of 10,000 search result records. To page past 10,000 records, you can use searchAfter paging. Refer to [Paginating Search Queries](https://developer.sailpoint.com/idn/api/standard-collection-parameters#paginating-search-queries) for more information about how to implement searchAfter paging. + * @summary Perform Search + * @param {Search} search + * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + searchPost: function (search, offset, limit, count, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'search' is not null or undefined + (0, common_1.assertParamExists)('searchPost', 'search', search); + localVarPath = "/search"; + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + if (offset !== undefined) { + localVarQueryParameter['offset'] = offset; + } + if (limit !== undefined) { + localVarQueryParameter['limit'] = limit; + } + if (count !== undefined) { + localVarQueryParameter['count'] = count; + } + localVarHeaderParameter['Content-Type'] = 'application/json'; + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(search, localVarRequestOptions, configuration); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + }; + }; + exports.SearchApiAxiosParamCreator = SearchApiAxiosParamCreator; + /** + * SearchApi - functional programming interface + * @export + */ + var SearchApiFp = function (configuration) { + var localVarAxiosParamCreator = (0, exports.SearchApiAxiosParamCreator)(configuration); + return { + /** + * Performs a search query aggregation and returns the aggregation result. By default, you can page a maximum of 10,000 search result records. To page past 10,000 records, you can use searchAfter paging. Refer to [Paginating Search Queries](https://developer.sailpoint.com/idn/api/standard-collection-parameters#paginating-search-queries) for more information about how to implement searchAfter paging. + * @summary Perform a Search Query Aggregation + * @param {Search} search + * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + searchAggregate: function (search, offset, limit, count, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.searchAggregate(search, offset, limit, count, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * Performs a search with a provided query and returns the count of results in the X-Total-Count header. + * @summary Count Documents Satisfying a Query + * @param {Search} search + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + searchCount: function (search, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.searchCount(search, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * Fetches a single document from the specified index, using the specified document ID. + * @summary Get a Document by ID + * @param {string} index The index from which to fetch the specified document. The currently supported index names are: *accessprofiles*, *accountactivities*, *accounts*, *aggregations*, *entitlements*, *events*, *identities*, and *roles*. + * @param {string} id ID of the requested document. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + searchGet: function (index, id, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.searchGet(index, id, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * Performs a search with the provided query and returns a matching result collection. By default, you can page a maximum of 10,000 search result records. To page past 10,000 records, you can use searchAfter paging. Refer to [Paginating Search Queries](https://developer.sailpoint.com/idn/api/standard-collection-parameters#paginating-search-queries) for more information about how to implement searchAfter paging. + * @summary Perform Search + * @param {Search} search + * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + searchPost: function (search, offset, limit, count, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.searchPost(search, offset, limit, count, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + }; + }; + exports.SearchApiFp = SearchApiFp; + /** + * SearchApi - factory interface + * @export + */ + var SearchApiFactory = function (configuration, basePath, axios) { + var localVarFp = (0, exports.SearchApiFp)(configuration); + return { + /** + * Performs a search query aggregation and returns the aggregation result. By default, you can page a maximum of 10,000 search result records. To page past 10,000 records, you can use searchAfter paging. Refer to [Paginating Search Queries](https://developer.sailpoint.com/idn/api/standard-collection-parameters#paginating-search-queries) for more information about how to implement searchAfter paging. + * @summary Perform a Search Query Aggregation + * @param {Search} search + * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + searchAggregate: function (search, offset, limit, count, axiosOptions) { + return localVarFp.searchAggregate(search, offset, limit, count, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * Performs a search with a provided query and returns the count of results in the X-Total-Count header. + * @summary Count Documents Satisfying a Query + * @param {Search} search + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + searchCount: function (search, axiosOptions) { + return localVarFp.searchCount(search, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * Fetches a single document from the specified index, using the specified document ID. + * @summary Get a Document by ID + * @param {string} index The index from which to fetch the specified document. The currently supported index names are: *accessprofiles*, *accountactivities*, *accounts*, *aggregations*, *entitlements*, *events*, *identities*, and *roles*. + * @param {string} id ID of the requested document. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + searchGet: function (index, id, axiosOptions) { + return localVarFp.searchGet(index, id, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * Performs a search with the provided query and returns a matching result collection. By default, you can page a maximum of 10,000 search result records. To page past 10,000 records, you can use searchAfter paging. Refer to [Paginating Search Queries](https://developer.sailpoint.com/idn/api/standard-collection-parameters#paginating-search-queries) for more information about how to implement searchAfter paging. + * @summary Perform Search + * @param {Search} search + * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + searchPost: function (search, offset, limit, count, axiosOptions) { + return localVarFp.searchPost(search, offset, limit, count, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + }; + }; + exports.SearchApiFactory = SearchApiFactory; + /** + * SearchApi - object-oriented interface + * @export + * @class SearchApi + * @extends {BaseAPI} + */ + var SearchApi = /** @class */ (function (_super) { + __extends(SearchApi, _super); + function SearchApi() { + return _super !== null && _super.apply(this, arguments) || this; + } + /** + * Performs a search query aggregation and returns the aggregation result. By default, you can page a maximum of 10,000 search result records. To page past 10,000 records, you can use searchAfter paging. Refer to [Paginating Search Queries](https://developer.sailpoint.com/idn/api/standard-collection-parameters#paginating-search-queries) for more information about how to implement searchAfter paging. + * @summary Perform a Search Query Aggregation + * @param {SearchApiSearchAggregateRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof SearchApi + */ + SearchApi.prototype.searchAggregate = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.SearchApiFp)(this.configuration).searchAggregate(requestParameters.search, requestParameters.offset, requestParameters.limit, requestParameters.count, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * Performs a search with a provided query and returns the count of results in the X-Total-Count header. + * @summary Count Documents Satisfying a Query + * @param {SearchApiSearchCountRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof SearchApi + */ + SearchApi.prototype.searchCount = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.SearchApiFp)(this.configuration).searchCount(requestParameters.search, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * Fetches a single document from the specified index, using the specified document ID. + * @summary Get a Document by ID + * @param {SearchApiSearchGetRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof SearchApi + */ + SearchApi.prototype.searchGet = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.SearchApiFp)(this.configuration).searchGet(requestParameters.index, requestParameters.id, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * Performs a search with the provided query and returns a matching result collection. By default, you can page a maximum of 10,000 search result records. To page past 10,000 records, you can use searchAfter paging. Refer to [Paginating Search Queries](https://developer.sailpoint.com/idn/api/standard-collection-parameters#paginating-search-queries) for more information about how to implement searchAfter paging. + * @summary Perform Search + * @param {SearchApiSearchPostRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof SearchApi + */ + SearchApi.prototype.searchPost = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.SearchApiFp)(this.configuration).searchPost(requestParameters.search, requestParameters.offset, requestParameters.limit, requestParameters.count, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + return SearchApi; + }(base_1.BaseAPI)); + exports.SearchApi = SearchApi; + /** + * SegmentsApi - axios parameter creator + * @export + */ + var SegmentsApiAxiosParamCreator = function (configuration) { + var _this = this; + return { + /** + * This API creates a segment. >**Note:** Segment definitions may take time to propagate to all identities. A token with ORG_ADMIN or API authority is required to call this API. + * @summary Create Segment + * @param {Segment} segment + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + createSegment: function (segment, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'segment' is not null or undefined + (0, common_1.assertParamExists)('createSegment', 'segment', segment); + localVarPath = "/segments"; + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + localVarHeaderParameter['Content-Type'] = 'application/json'; + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(segment, localVarRequestOptions, configuration); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This API deletes the segment specified by the given ID. >**Note:** that segment deletion may take some time to become effective. A token with ORG_ADMIN or API authority is required to call this API. + * @summary Delete Segment by ID + * @param {string} id The segment ID to delete. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + deleteSegment: function (id, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'id' is not null or undefined + (0, common_1.assertParamExists)('deleteSegment', 'id', id); + localVarPath = "/segments/{id}" + .replace("{".concat("id", "}"), encodeURIComponent(String(id))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'DELETE' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This API returns the segment specified by the given ID. A token with ORG_ADMIN or API authority is required to call this API. + * @summary Get Segment by ID + * @param {string} id The segment ID to retrieve. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getSegment: function (id, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'id' is not null or undefined + (0, common_1.assertParamExists)('getSegment', 'id', id); + localVarPath = "/segments/{id}" + .replace("{".concat("id", "}"), encodeURIComponent(String(id))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This API returns a list of all segments. A token with ORG_ADMIN or API authority is required to call this API. + * @summary List Segments + * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + listSegments: function (limit, offset, count, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + localVarPath = "/segments"; + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + if (limit !== undefined) { + localVarQueryParameter['limit'] = limit; + } + if (offset !== undefined) { + localVarQueryParameter['offset'] = offset; + } + if (count !== undefined) { + localVarQueryParameter['count'] = count; + } + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * Use this API to update segment fields by using the [JSON Patch](https://tools.ietf.org/html/rfc6902) standard. >**Note:** Changes to a segment may take some time to propagate to all identities. A token with ORG_ADMIN or API authority is required to call this API. + * @summary Update Segment + * @param {string} id The segment ID to modify. + * @param {Array} requestBody A list of segment update operations according to the [JSON Patch](https://tools.ietf.org/html/rfc6902) standard. The following fields are patchable: * name * description * owner * visibilityCriteria * active + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + patchSegment: function (id, requestBody, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'id' is not null or undefined + (0, common_1.assertParamExists)('patchSegment', 'id', id); + // verify required parameter 'requestBody' is not null or undefined + (0, common_1.assertParamExists)('patchSegment', 'requestBody', requestBody); + localVarPath = "/segments/{id}" + .replace("{".concat("id", "}"), encodeURIComponent(String(id))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'PATCH' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + localVarHeaderParameter['Content-Type'] = 'application/json-patch+json'; + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(requestBody, localVarRequestOptions, configuration); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + }; + }; + exports.SegmentsApiAxiosParamCreator = SegmentsApiAxiosParamCreator; + /** + * SegmentsApi - functional programming interface + * @export + */ + var SegmentsApiFp = function (configuration) { + var localVarAxiosParamCreator = (0, exports.SegmentsApiAxiosParamCreator)(configuration); + return { + /** + * This API creates a segment. >**Note:** Segment definitions may take time to propagate to all identities. A token with ORG_ADMIN or API authority is required to call this API. + * @summary Create Segment + * @param {Segment} segment + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + createSegment: function (segment, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.createSegment(segment, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This API deletes the segment specified by the given ID. >**Note:** that segment deletion may take some time to become effective. A token with ORG_ADMIN or API authority is required to call this API. + * @summary Delete Segment by ID + * @param {string} id The segment ID to delete. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + deleteSegment: function (id, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.deleteSegment(id, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This API returns the segment specified by the given ID. A token with ORG_ADMIN or API authority is required to call this API. + * @summary Get Segment by ID + * @param {string} id The segment ID to retrieve. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getSegment: function (id, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.getSegment(id, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This API returns a list of all segments. A token with ORG_ADMIN or API authority is required to call this API. + * @summary List Segments + * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + listSegments: function (limit, offset, count, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.listSegments(limit, offset, count, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * Use this API to update segment fields by using the [JSON Patch](https://tools.ietf.org/html/rfc6902) standard. >**Note:** Changes to a segment may take some time to propagate to all identities. A token with ORG_ADMIN or API authority is required to call this API. + * @summary Update Segment + * @param {string} id The segment ID to modify. + * @param {Array} requestBody A list of segment update operations according to the [JSON Patch](https://tools.ietf.org/html/rfc6902) standard. The following fields are patchable: * name * description * owner * visibilityCriteria * active + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + patchSegment: function (id, requestBody, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.patchSegment(id, requestBody, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + }; + }; + exports.SegmentsApiFp = SegmentsApiFp; + /** + * SegmentsApi - factory interface + * @export + */ + var SegmentsApiFactory = function (configuration, basePath, axios) { + var localVarFp = (0, exports.SegmentsApiFp)(configuration); + return { + /** + * This API creates a segment. >**Note:** Segment definitions may take time to propagate to all identities. A token with ORG_ADMIN or API authority is required to call this API. + * @summary Create Segment + * @param {Segment} segment + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + createSegment: function (segment, axiosOptions) { + return localVarFp.createSegment(segment, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This API deletes the segment specified by the given ID. >**Note:** that segment deletion may take some time to become effective. A token with ORG_ADMIN or API authority is required to call this API. + * @summary Delete Segment by ID + * @param {string} id The segment ID to delete. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + deleteSegment: function (id, axiosOptions) { + return localVarFp.deleteSegment(id, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This API returns the segment specified by the given ID. A token with ORG_ADMIN or API authority is required to call this API. + * @summary Get Segment by ID + * @param {string} id The segment ID to retrieve. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getSegment: function (id, axiosOptions) { + return localVarFp.getSegment(id, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This API returns a list of all segments. A token with ORG_ADMIN or API authority is required to call this API. + * @summary List Segments + * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + listSegments: function (limit, offset, count, axiosOptions) { + return localVarFp.listSegments(limit, offset, count, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * Use this API to update segment fields by using the [JSON Patch](https://tools.ietf.org/html/rfc6902) standard. >**Note:** Changes to a segment may take some time to propagate to all identities. A token with ORG_ADMIN or API authority is required to call this API. + * @summary Update Segment + * @param {string} id The segment ID to modify. + * @param {Array} requestBody A list of segment update operations according to the [JSON Patch](https://tools.ietf.org/html/rfc6902) standard. The following fields are patchable: * name * description * owner * visibilityCriteria * active + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + patchSegment: function (id, requestBody, axiosOptions) { + return localVarFp.patchSegment(id, requestBody, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + }; + }; + exports.SegmentsApiFactory = SegmentsApiFactory; + /** + * SegmentsApi - object-oriented interface + * @export + * @class SegmentsApi + * @extends {BaseAPI} + */ + var SegmentsApi = /** @class */ (function (_super) { + __extends(SegmentsApi, _super); + function SegmentsApi() { + return _super !== null && _super.apply(this, arguments) || this; + } + /** + * This API creates a segment. >**Note:** Segment definitions may take time to propagate to all identities. A token with ORG_ADMIN or API authority is required to call this API. + * @summary Create Segment + * @param {SegmentsApiCreateSegmentRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof SegmentsApi + */ + SegmentsApi.prototype.createSegment = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.SegmentsApiFp)(this.configuration).createSegment(requestParameters.segment, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This API deletes the segment specified by the given ID. >**Note:** that segment deletion may take some time to become effective. A token with ORG_ADMIN or API authority is required to call this API. + * @summary Delete Segment by ID + * @param {SegmentsApiDeleteSegmentRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof SegmentsApi + */ + SegmentsApi.prototype.deleteSegment = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.SegmentsApiFp)(this.configuration).deleteSegment(requestParameters.id, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This API returns the segment specified by the given ID. A token with ORG_ADMIN or API authority is required to call this API. + * @summary Get Segment by ID + * @param {SegmentsApiGetSegmentRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof SegmentsApi + */ + SegmentsApi.prototype.getSegment = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.SegmentsApiFp)(this.configuration).getSegment(requestParameters.id, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This API returns a list of all segments. A token with ORG_ADMIN or API authority is required to call this API. + * @summary List Segments + * @param {SegmentsApiListSegmentsRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof SegmentsApi + */ + SegmentsApi.prototype.listSegments = function (requestParameters, axiosOptions) { + var _this = this; + if (requestParameters === void 0) { requestParameters = {}; } + return (0, exports.SegmentsApiFp)(this.configuration).listSegments(requestParameters.limit, requestParameters.offset, requestParameters.count, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * Use this API to update segment fields by using the [JSON Patch](https://tools.ietf.org/html/rfc6902) standard. >**Note:** Changes to a segment may take some time to propagate to all identities. A token with ORG_ADMIN or API authority is required to call this API. + * @summary Update Segment + * @param {SegmentsApiPatchSegmentRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof SegmentsApi + */ + SegmentsApi.prototype.patchSegment = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.SegmentsApiFp)(this.configuration).patchSegment(requestParameters.id, requestParameters.requestBody, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + return SegmentsApi; + }(base_1.BaseAPI)); + exports.SegmentsApi = SegmentsApi; + /** + * ServiceDeskIntegrationApi - axios parameter creator + * @export + */ + var ServiceDeskIntegrationApiAxiosParamCreator = function (configuration) { + var _this = this; + return { + /** + * Create a new Service Desk Integrations. A token with Org Admin or Service Desk Admin authority is required to access this endpoint. + * @summary Create new Service Desk integration + * @param {ServiceDeskIntegrationDto} serviceDeskIntegrationDto The specifics of a new integration to create + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + createServiceDeskIntegration: function (serviceDeskIntegrationDto, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'serviceDeskIntegrationDto' is not null or undefined + (0, common_1.assertParamExists)('createServiceDeskIntegration', 'serviceDeskIntegrationDto', serviceDeskIntegrationDto); + localVarPath = "/service-desk-integrations"; + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + localVarHeaderParameter['Content-Type'] = 'application/json'; + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(serviceDeskIntegrationDto, localVarRequestOptions, configuration); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * Delete an existing Service Desk integration by ID. A token with Org Admin or Service Desk Admin authority is required to access this endpoint. + * @summary Delete a Service Desk integration + * @param {string} id ID of Service Desk integration to delete + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + deleteServiceDeskIntegration: function (id, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'id' is not null or undefined + (0, common_1.assertParamExists)('deleteServiceDeskIntegration', 'id', id); + localVarPath = "/service-desk-integrations/{id}" + .replace("{".concat("id", "}"), encodeURIComponent(String(id))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'DELETE' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * Get an existing Service Desk integration by ID. A token with Org Admin or Service Desk Admin authority is required to access this endpoint. + * @summary Get a Service Desk integration + * @param {string} id ID of the Service Desk integration to get + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getServiceDeskIntegration: function (id, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'id' is not null or undefined + (0, common_1.assertParamExists)('getServiceDeskIntegration', 'id', id); + localVarPath = "/service-desk-integrations/{id}" + .replace("{".concat("id", "}"), encodeURIComponent(String(id))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This API endpoint returns an existing Service Desk integration template by scriptName. A token with Org Admin or Service Desk Admin authority is required to access this endpoint. + * @summary Service Desk integration template by scriptName. + * @param {string} scriptName The scriptName value of the Service Desk integration template to get + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getServiceDeskIntegrationTemplate: function (scriptName, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'scriptName' is not null or undefined + (0, common_1.assertParamExists)('getServiceDeskIntegrationTemplate', 'scriptName', scriptName); + localVarPath = "/service-desk-integrations/templates/{scriptName}" + .replace("{".concat("scriptName", "}"), encodeURIComponent(String(scriptName))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This API endpoint returns the current list of supported Service Desk integration types. A token with Org Admin or Service Desk Admin authority is required to access this endpoint. + * @summary Service Desk Integration Types List. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getServiceDeskIntegrationTypes: function (axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + localVarPath = "/service-desk-integrations/types"; + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * Get a list of ServiceDeskIntegrationDto for existing Service Desk Integrations. A token with Org Admin or Service Desk Admin authority is required to access this endpoint. + * @summary List existing Service Desk Integrations + * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **name** + * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **id**: *eq, in* **name**: *eq* **type**: *eq, in* **cluster**: *eq, in* + * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getServiceDeskIntegrations: function (offset, limit, sorters, filters, count, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + localVarPath = "/service-desk-integrations"; + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + if (offset !== undefined) { + localVarQueryParameter['offset'] = offset; + } + if (limit !== undefined) { + localVarQueryParameter['limit'] = limit; + } + if (sorters !== undefined) { + localVarQueryParameter['sorters'] = sorters; + } + if (filters !== undefined) { + localVarQueryParameter['filters'] = filters; + } + if (count !== undefined) { + localVarQueryParameter['count'] = count; + } + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * Get the time check configuration of queued SDIM tickets. A token with Org Admin or Service Desk Admin authority is required to access this endpoint. + * @summary Get the time check configuration + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getStatusCheckDetails: function (axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + localVarPath = "/service-desk-integrations/status-check-configuration"; + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * Update an existing ServiceDeskIntegration by ID with a PATCH request. + * @summary Service Desk Integration Update PATCH + * @param {string} id ID of the Service Desk integration to update + * @param {JsonPatch} jsonPatch A list of SDIM update operations according to the [JSON Patch](https://tools.ietf.org/html/rfc6902) standard. PATCH can only be applied to the following fields: * `beforeProvisioningRule` * `description` * `ownerRef` A 403 Forbidden Error indicates that you attempted to PATCH a field that is not allowed. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + patchServiceDeskIntegration: function (id, jsonPatch, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'id' is not null or undefined + (0, common_1.assertParamExists)('patchServiceDeskIntegration', 'id', id); + // verify required parameter 'jsonPatch' is not null or undefined + (0, common_1.assertParamExists)('patchServiceDeskIntegration', 'jsonPatch', jsonPatch); + localVarPath = "/service-desk-integrations/{id}" + .replace("{".concat("id", "}"), encodeURIComponent(String(id))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'PATCH' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + localVarHeaderParameter['Content-Type'] = 'application/json-patch+json'; + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(jsonPatch, localVarRequestOptions, configuration); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * Update an existing Service Desk integration by ID with updated value in JSON form as the request body. A token with Org Admin or Service Desk Admin authority is required to access this endpoint. + * @summary Update a Service Desk integration + * @param {string} id ID of the Service Desk integration to update + * @param {ServiceDeskIntegrationDto} serviceDeskIntegrationDto The specifics of the integration to update + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + putServiceDeskIntegration: function (id, serviceDeskIntegrationDto, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'id' is not null or undefined + (0, common_1.assertParamExists)('putServiceDeskIntegration', 'id', id); + // verify required parameter 'serviceDeskIntegrationDto' is not null or undefined + (0, common_1.assertParamExists)('putServiceDeskIntegration', 'serviceDeskIntegrationDto', serviceDeskIntegrationDto); + localVarPath = "/service-desk-integrations/{id}" + .replace("{".concat("id", "}"), encodeURIComponent(String(id))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'PUT' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + localVarHeaderParameter['Content-Type'] = 'application/json'; + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(serviceDeskIntegrationDto, localVarRequestOptions, configuration); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * Update the time check configuration of queued SDIM tickets. A token with Org Admin or Service Desk Admin authority is required to access this endpoint. + * @summary Update the time check configuration + * @param {QueuedCheckConfigDetails} queuedCheckConfigDetails the modified time check configuration + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + updateStatusCheckDetails: function (queuedCheckConfigDetails, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'queuedCheckConfigDetails' is not null or undefined + (0, common_1.assertParamExists)('updateStatusCheckDetails', 'queuedCheckConfigDetails', queuedCheckConfigDetails); + localVarPath = "/service-desk-integrations/status-check-configuration"; + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'PUT' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + localVarHeaderParameter['Content-Type'] = 'application/json'; + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(queuedCheckConfigDetails, localVarRequestOptions, configuration); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + }; + }; + exports.ServiceDeskIntegrationApiAxiosParamCreator = ServiceDeskIntegrationApiAxiosParamCreator; + /** + * ServiceDeskIntegrationApi - functional programming interface + * @export + */ + var ServiceDeskIntegrationApiFp = function (configuration) { + var localVarAxiosParamCreator = (0, exports.ServiceDeskIntegrationApiAxiosParamCreator)(configuration); + return { + /** + * Create a new Service Desk Integrations. A token with Org Admin or Service Desk Admin authority is required to access this endpoint. + * @summary Create new Service Desk integration + * @param {ServiceDeskIntegrationDto} serviceDeskIntegrationDto The specifics of a new integration to create + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + createServiceDeskIntegration: function (serviceDeskIntegrationDto, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.createServiceDeskIntegration(serviceDeskIntegrationDto, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * Delete an existing Service Desk integration by ID. A token with Org Admin or Service Desk Admin authority is required to access this endpoint. + * @summary Delete a Service Desk integration + * @param {string} id ID of Service Desk integration to delete + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + deleteServiceDeskIntegration: function (id, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.deleteServiceDeskIntegration(id, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * Get an existing Service Desk integration by ID. A token with Org Admin or Service Desk Admin authority is required to access this endpoint. + * @summary Get a Service Desk integration + * @param {string} id ID of the Service Desk integration to get + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getServiceDeskIntegration: function (id, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.getServiceDeskIntegration(id, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This API endpoint returns an existing Service Desk integration template by scriptName. A token with Org Admin or Service Desk Admin authority is required to access this endpoint. + * @summary Service Desk integration template by scriptName. + * @param {string} scriptName The scriptName value of the Service Desk integration template to get + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getServiceDeskIntegrationTemplate: function (scriptName, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.getServiceDeskIntegrationTemplate(scriptName, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This API endpoint returns the current list of supported Service Desk integration types. A token with Org Admin or Service Desk Admin authority is required to access this endpoint. + * @summary Service Desk Integration Types List. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getServiceDeskIntegrationTypes: function (axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.getServiceDeskIntegrationTypes(axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * Get a list of ServiceDeskIntegrationDto for existing Service Desk Integrations. A token with Org Admin or Service Desk Admin authority is required to access this endpoint. + * @summary List existing Service Desk Integrations + * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **name** + * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **id**: *eq, in* **name**: *eq* **type**: *eq, in* **cluster**: *eq, in* + * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getServiceDeskIntegrations: function (offset, limit, sorters, filters, count, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.getServiceDeskIntegrations(offset, limit, sorters, filters, count, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * Get the time check configuration of queued SDIM tickets. A token with Org Admin or Service Desk Admin authority is required to access this endpoint. + * @summary Get the time check configuration + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getStatusCheckDetails: function (axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.getStatusCheckDetails(axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * Update an existing ServiceDeskIntegration by ID with a PATCH request. + * @summary Service Desk Integration Update PATCH + * @param {string} id ID of the Service Desk integration to update + * @param {JsonPatch} jsonPatch A list of SDIM update operations according to the [JSON Patch](https://tools.ietf.org/html/rfc6902) standard. PATCH can only be applied to the following fields: * `beforeProvisioningRule` * `description` * `ownerRef` A 403 Forbidden Error indicates that you attempted to PATCH a field that is not allowed. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + patchServiceDeskIntegration: function (id, jsonPatch, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.patchServiceDeskIntegration(id, jsonPatch, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * Update an existing Service Desk integration by ID with updated value in JSON form as the request body. A token with Org Admin or Service Desk Admin authority is required to access this endpoint. + * @summary Update a Service Desk integration + * @param {string} id ID of the Service Desk integration to update + * @param {ServiceDeskIntegrationDto} serviceDeskIntegrationDto The specifics of the integration to update + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + putServiceDeskIntegration: function (id, serviceDeskIntegrationDto, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.putServiceDeskIntegration(id, serviceDeskIntegrationDto, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * Update the time check configuration of queued SDIM tickets. A token with Org Admin or Service Desk Admin authority is required to access this endpoint. + * @summary Update the time check configuration + * @param {QueuedCheckConfigDetails} queuedCheckConfigDetails the modified time check configuration + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + updateStatusCheckDetails: function (queuedCheckConfigDetails, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.updateStatusCheckDetails(queuedCheckConfigDetails, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + }; + }; + exports.ServiceDeskIntegrationApiFp = ServiceDeskIntegrationApiFp; + /** + * ServiceDeskIntegrationApi - factory interface + * @export + */ + var ServiceDeskIntegrationApiFactory = function (configuration, basePath, axios) { + var localVarFp = (0, exports.ServiceDeskIntegrationApiFp)(configuration); + return { + /** + * Create a new Service Desk Integrations. A token with Org Admin or Service Desk Admin authority is required to access this endpoint. + * @summary Create new Service Desk integration + * @param {ServiceDeskIntegrationDto} serviceDeskIntegrationDto The specifics of a new integration to create + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + createServiceDeskIntegration: function (serviceDeskIntegrationDto, axiosOptions) { + return localVarFp.createServiceDeskIntegration(serviceDeskIntegrationDto, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * Delete an existing Service Desk integration by ID. A token with Org Admin or Service Desk Admin authority is required to access this endpoint. + * @summary Delete a Service Desk integration + * @param {string} id ID of Service Desk integration to delete + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + deleteServiceDeskIntegration: function (id, axiosOptions) { + return localVarFp.deleteServiceDeskIntegration(id, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * Get an existing Service Desk integration by ID. A token with Org Admin or Service Desk Admin authority is required to access this endpoint. + * @summary Get a Service Desk integration + * @param {string} id ID of the Service Desk integration to get + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getServiceDeskIntegration: function (id, axiosOptions) { + return localVarFp.getServiceDeskIntegration(id, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This API endpoint returns an existing Service Desk integration template by scriptName. A token with Org Admin or Service Desk Admin authority is required to access this endpoint. + * @summary Service Desk integration template by scriptName. + * @param {string} scriptName The scriptName value of the Service Desk integration template to get + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getServiceDeskIntegrationTemplate: function (scriptName, axiosOptions) { + return localVarFp.getServiceDeskIntegrationTemplate(scriptName, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This API endpoint returns the current list of supported Service Desk integration types. A token with Org Admin or Service Desk Admin authority is required to access this endpoint. + * @summary Service Desk Integration Types List. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getServiceDeskIntegrationTypes: function (axiosOptions) { + return localVarFp.getServiceDeskIntegrationTypes(axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * Get a list of ServiceDeskIntegrationDto for existing Service Desk Integrations. A token with Org Admin or Service Desk Admin authority is required to access this endpoint. + * @summary List existing Service Desk Integrations + * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **name** + * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **id**: *eq, in* **name**: *eq* **type**: *eq, in* **cluster**: *eq, in* + * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getServiceDeskIntegrations: function (offset, limit, sorters, filters, count, axiosOptions) { + return localVarFp.getServiceDeskIntegrations(offset, limit, sorters, filters, count, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * Get the time check configuration of queued SDIM tickets. A token with Org Admin or Service Desk Admin authority is required to access this endpoint. + * @summary Get the time check configuration + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getStatusCheckDetails: function (axiosOptions) { + return localVarFp.getStatusCheckDetails(axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * Update an existing ServiceDeskIntegration by ID with a PATCH request. + * @summary Service Desk Integration Update PATCH + * @param {string} id ID of the Service Desk integration to update + * @param {JsonPatch} jsonPatch A list of SDIM update operations according to the [JSON Patch](https://tools.ietf.org/html/rfc6902) standard. PATCH can only be applied to the following fields: * `beforeProvisioningRule` * `description` * `ownerRef` A 403 Forbidden Error indicates that you attempted to PATCH a field that is not allowed. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + patchServiceDeskIntegration: function (id, jsonPatch, axiosOptions) { + return localVarFp.patchServiceDeskIntegration(id, jsonPatch, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * Update an existing Service Desk integration by ID with updated value in JSON form as the request body. A token with Org Admin or Service Desk Admin authority is required to access this endpoint. + * @summary Update a Service Desk integration + * @param {string} id ID of the Service Desk integration to update + * @param {ServiceDeskIntegrationDto} serviceDeskIntegrationDto The specifics of the integration to update + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + putServiceDeskIntegration: function (id, serviceDeskIntegrationDto, axiosOptions) { + return localVarFp.putServiceDeskIntegration(id, serviceDeskIntegrationDto, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * Update the time check configuration of queued SDIM tickets. A token with Org Admin or Service Desk Admin authority is required to access this endpoint. + * @summary Update the time check configuration + * @param {QueuedCheckConfigDetails} queuedCheckConfigDetails the modified time check configuration + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + updateStatusCheckDetails: function (queuedCheckConfigDetails, axiosOptions) { + return localVarFp.updateStatusCheckDetails(queuedCheckConfigDetails, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + }; + }; + exports.ServiceDeskIntegrationApiFactory = ServiceDeskIntegrationApiFactory; + /** + * ServiceDeskIntegrationApi - object-oriented interface + * @export + * @class ServiceDeskIntegrationApi + * @extends {BaseAPI} + */ + var ServiceDeskIntegrationApi = /** @class */ (function (_super) { + __extends(ServiceDeskIntegrationApi, _super); + function ServiceDeskIntegrationApi() { + return _super !== null && _super.apply(this, arguments) || this; + } + /** + * Create a new Service Desk Integrations. A token with Org Admin or Service Desk Admin authority is required to access this endpoint. + * @summary Create new Service Desk integration + * @param {ServiceDeskIntegrationApiCreateServiceDeskIntegrationRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof ServiceDeskIntegrationApi + */ + ServiceDeskIntegrationApi.prototype.createServiceDeskIntegration = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.ServiceDeskIntegrationApiFp)(this.configuration).createServiceDeskIntegration(requestParameters.serviceDeskIntegrationDto, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * Delete an existing Service Desk integration by ID. A token with Org Admin or Service Desk Admin authority is required to access this endpoint. + * @summary Delete a Service Desk integration + * @param {ServiceDeskIntegrationApiDeleteServiceDeskIntegrationRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof ServiceDeskIntegrationApi + */ + ServiceDeskIntegrationApi.prototype.deleteServiceDeskIntegration = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.ServiceDeskIntegrationApiFp)(this.configuration).deleteServiceDeskIntegration(requestParameters.id, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * Get an existing Service Desk integration by ID. A token with Org Admin or Service Desk Admin authority is required to access this endpoint. + * @summary Get a Service Desk integration + * @param {ServiceDeskIntegrationApiGetServiceDeskIntegrationRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof ServiceDeskIntegrationApi + */ + ServiceDeskIntegrationApi.prototype.getServiceDeskIntegration = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.ServiceDeskIntegrationApiFp)(this.configuration).getServiceDeskIntegration(requestParameters.id, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This API endpoint returns an existing Service Desk integration template by scriptName. A token with Org Admin or Service Desk Admin authority is required to access this endpoint. + * @summary Service Desk integration template by scriptName. + * @param {ServiceDeskIntegrationApiGetServiceDeskIntegrationTemplateRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof ServiceDeskIntegrationApi + */ + ServiceDeskIntegrationApi.prototype.getServiceDeskIntegrationTemplate = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.ServiceDeskIntegrationApiFp)(this.configuration).getServiceDeskIntegrationTemplate(requestParameters.scriptName, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This API endpoint returns the current list of supported Service Desk integration types. A token with Org Admin or Service Desk Admin authority is required to access this endpoint. + * @summary Service Desk Integration Types List. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof ServiceDeskIntegrationApi + */ + ServiceDeskIntegrationApi.prototype.getServiceDeskIntegrationTypes = function (axiosOptions) { + var _this = this; + return (0, exports.ServiceDeskIntegrationApiFp)(this.configuration).getServiceDeskIntegrationTypes(axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * Get a list of ServiceDeskIntegrationDto for existing Service Desk Integrations. A token with Org Admin or Service Desk Admin authority is required to access this endpoint. + * @summary List existing Service Desk Integrations + * @param {ServiceDeskIntegrationApiGetServiceDeskIntegrationsRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof ServiceDeskIntegrationApi + */ + ServiceDeskIntegrationApi.prototype.getServiceDeskIntegrations = function (requestParameters, axiosOptions) { + var _this = this; + if (requestParameters === void 0) { requestParameters = {}; } + return (0, exports.ServiceDeskIntegrationApiFp)(this.configuration).getServiceDeskIntegrations(requestParameters.offset, requestParameters.limit, requestParameters.sorters, requestParameters.filters, requestParameters.count, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * Get the time check configuration of queued SDIM tickets. A token with Org Admin or Service Desk Admin authority is required to access this endpoint. + * @summary Get the time check configuration + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof ServiceDeskIntegrationApi + */ + ServiceDeskIntegrationApi.prototype.getStatusCheckDetails = function (axiosOptions) { + var _this = this; + return (0, exports.ServiceDeskIntegrationApiFp)(this.configuration).getStatusCheckDetails(axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * Update an existing ServiceDeskIntegration by ID with a PATCH request. + * @summary Service Desk Integration Update PATCH + * @param {ServiceDeskIntegrationApiPatchServiceDeskIntegrationRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof ServiceDeskIntegrationApi + */ + ServiceDeskIntegrationApi.prototype.patchServiceDeskIntegration = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.ServiceDeskIntegrationApiFp)(this.configuration).patchServiceDeskIntegration(requestParameters.id, requestParameters.jsonPatch, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * Update an existing Service Desk integration by ID with updated value in JSON form as the request body. A token with Org Admin or Service Desk Admin authority is required to access this endpoint. + * @summary Update a Service Desk integration + * @param {ServiceDeskIntegrationApiPutServiceDeskIntegrationRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof ServiceDeskIntegrationApi + */ + ServiceDeskIntegrationApi.prototype.putServiceDeskIntegration = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.ServiceDeskIntegrationApiFp)(this.configuration).putServiceDeskIntegration(requestParameters.id, requestParameters.serviceDeskIntegrationDto, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * Update the time check configuration of queued SDIM tickets. A token with Org Admin or Service Desk Admin authority is required to access this endpoint. + * @summary Update the time check configuration + * @param {ServiceDeskIntegrationApiUpdateStatusCheckDetailsRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof ServiceDeskIntegrationApi + */ + ServiceDeskIntegrationApi.prototype.updateStatusCheckDetails = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.ServiceDeskIntegrationApiFp)(this.configuration).updateStatusCheckDetails(requestParameters.queuedCheckConfigDetails, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + return ServiceDeskIntegrationApi; + }(base_1.BaseAPI)); + exports.ServiceDeskIntegrationApi = ServiceDeskIntegrationApi; + /** + * SourceUsagesApi - axios parameter creator + * @export + */ + var SourceUsagesApiAxiosParamCreator = function (configuration) { + var _this = this; + return { + /** + * This API returns the status of the source usage insights setup by IDN source ID. + * @summary Finds status of source usage + * @param {string} sourceId ID of IDN source + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getStatusBySourceId: function (sourceId, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'sourceId' is not null or undefined + (0, common_1.assertParamExists)('getStatusBySourceId', 'sourceId', sourceId); + localVarPath = "/source-usages/{sourceId}/status" + .replace("{".concat("sourceId", "}"), encodeURIComponent(String(sourceId))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This API returns a summary of source usage insights for past 12 months. + * @summary Returns source usage insights + * @param {string} sourceId ID of IDN source + * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **date** + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getUsagesBySourceId: function (sourceId, limit, offset, count, sorters, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'sourceId' is not null or undefined + (0, common_1.assertParamExists)('getUsagesBySourceId', 'sourceId', sourceId); + localVarPath = "/source-usages/{sourceId}/summaries" + .replace("{".concat("sourceId", "}"), encodeURIComponent(String(sourceId))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + if (limit !== undefined) { + localVarQueryParameter['limit'] = limit; + } + if (offset !== undefined) { + localVarQueryParameter['offset'] = offset; + } + if (count !== undefined) { + localVarQueryParameter['count'] = count; + } + if (sorters !== undefined) { + localVarQueryParameter['sorters'] = sorters; + } + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + }; + }; + exports.SourceUsagesApiAxiosParamCreator = SourceUsagesApiAxiosParamCreator; + /** + * SourceUsagesApi - functional programming interface + * @export + */ + var SourceUsagesApiFp = function (configuration) { + var localVarAxiosParamCreator = (0, exports.SourceUsagesApiAxiosParamCreator)(configuration); + return { + /** + * This API returns the status of the source usage insights setup by IDN source ID. + * @summary Finds status of source usage + * @param {string} sourceId ID of IDN source + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getStatusBySourceId: function (sourceId, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.getStatusBySourceId(sourceId, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This API returns a summary of source usage insights for past 12 months. + * @summary Returns source usage insights + * @param {string} sourceId ID of IDN source + * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **date** + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getUsagesBySourceId: function (sourceId, limit, offset, count, sorters, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.getUsagesBySourceId(sourceId, limit, offset, count, sorters, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + }; + }; + exports.SourceUsagesApiFp = SourceUsagesApiFp; + /** + * SourceUsagesApi - factory interface + * @export + */ + var SourceUsagesApiFactory = function (configuration, basePath, axios) { + var localVarFp = (0, exports.SourceUsagesApiFp)(configuration); + return { + /** + * This API returns the status of the source usage insights setup by IDN source ID. + * @summary Finds status of source usage + * @param {string} sourceId ID of IDN source + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getStatusBySourceId: function (sourceId, axiosOptions) { + return localVarFp.getStatusBySourceId(sourceId, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This API returns a summary of source usage insights for past 12 months. + * @summary Returns source usage insights + * @param {string} sourceId ID of IDN source + * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **date** + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getUsagesBySourceId: function (sourceId, limit, offset, count, sorters, axiosOptions) { + return localVarFp.getUsagesBySourceId(sourceId, limit, offset, count, sorters, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + }; + }; + exports.SourceUsagesApiFactory = SourceUsagesApiFactory; + /** + * SourceUsagesApi - object-oriented interface + * @export + * @class SourceUsagesApi + * @extends {BaseAPI} + */ + var SourceUsagesApi = /** @class */ (function (_super) { + __extends(SourceUsagesApi, _super); + function SourceUsagesApi() { + return _super !== null && _super.apply(this, arguments) || this; + } + /** + * This API returns the status of the source usage insights setup by IDN source ID. + * @summary Finds status of source usage + * @param {SourceUsagesApiGetStatusBySourceIdRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof SourceUsagesApi + */ + SourceUsagesApi.prototype.getStatusBySourceId = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.SourceUsagesApiFp)(this.configuration).getStatusBySourceId(requestParameters.sourceId, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This API returns a summary of source usage insights for past 12 months. + * @summary Returns source usage insights + * @param {SourceUsagesApiGetUsagesBySourceIdRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof SourceUsagesApi + */ + SourceUsagesApi.prototype.getUsagesBySourceId = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.SourceUsagesApiFp)(this.configuration).getUsagesBySourceId(requestParameters.sourceId, requestParameters.limit, requestParameters.offset, requestParameters.count, requestParameters.sorters, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + return SourceUsagesApi; + }(base_1.BaseAPI)); + exports.SourceUsagesApi = SourceUsagesApi; + /** + * SourcesApi - axios parameter creator + * @export + */ + var SourcesApiAxiosParamCreator = function (configuration) { + var _this = this; + return { + /** + * This API generates a create policy/template based on field value transforms. This API is intended for use when setting up JDBC Provisioning type sources, but it will also work on other source types. Transforms can be used in the provisioning policy to create a new attribute that you only need during provisioning. Refer to [Transforms in Provisioning Policies](https://developer.sailpoint.com/idn/docs/transforms/guides/transforms-in-provisioning-policies) for more information. A token with ORG_ADMIN authority is required to call this API. + * @summary Create Provisioning Policy + * @param {string} sourceId The Source id + * @param {ProvisioningPolicyDto} provisioningPolicyDto + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + createProvisioningPolicy: function (sourceId, provisioningPolicyDto, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'sourceId' is not null or undefined + (0, common_1.assertParamExists)('createProvisioningPolicy', 'sourceId', sourceId); + // verify required parameter 'provisioningPolicyDto' is not null or undefined + (0, common_1.assertParamExists)('createProvisioningPolicy', 'provisioningPolicyDto', provisioningPolicyDto); + localVarPath = "/sources/{sourceId}/provisioning-policies" + .replace("{".concat("sourceId", "}"), encodeURIComponent(String(sourceId))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + localVarHeaderParameter['Content-Type'] = 'application/json'; + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(provisioningPolicyDto, localVarRequestOptions, configuration); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This creates a specific source with a full source JSON representation. Any passwords are submitted as plain-text and encrypted upon receipt in IdentityNow. A token with ORG_ADMIN, SOURCE_ADMIN, or SOURCE_SUBADMIN authority is required to call this API. + * @summary Creates a source in IdentityNow. + * @param {Source} source + * @param {boolean} [provisionAsCsv] If this parameter is `true`, it configures the source as a Delimited File (CSV) source. Setting this to `true` will automatically set the `type` of the source to `DelimitedFile`. You must use this query parameter to create a Delimited File source as you would in the UI. If you don\'t set this query parameter and you attempt to set the `type` attribute directly, the request won\'t correctly generate the source. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + createSource: function (source, provisionAsCsv, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'source' is not null or undefined + (0, common_1.assertParamExists)('createSource', 'source', source); + localVarPath = "/sources"; + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + if (provisionAsCsv !== undefined) { + localVarQueryParameter['provisionAsCsv'] = provisionAsCsv; + } + localVarHeaderParameter['Content-Type'] = 'application/json'; + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(source, localVarRequestOptions, configuration); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * Creates a new Schema on the specified Source in IdentityNow. + * @summary Create Schema on a Source + * @param {string} sourceId The Source id. + * @param {Schema} schema + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + createSourceSchema: function (sourceId, schema, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'sourceId' is not null or undefined + (0, common_1.assertParamExists)('createSourceSchema', 'sourceId', sourceId); + // verify required parameter 'schema' is not null or undefined + (0, common_1.assertParamExists)('createSourceSchema', 'schema', schema); + localVarPath = "/sources/{sourceId}/schemas" + .replace("{".concat("sourceId", "}"), encodeURIComponent(String(sourceId))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + localVarHeaderParameter['Content-Type'] = 'application/json'; + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(schema, localVarRequestOptions, configuration); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * Deletes the provisioning policy with the specified usage on an application. A token with API, or ORG_ADMIN authority is required to call this API. + * @summary Delete Provisioning Policy by UsageType + * @param {string} sourceId The Source ID. + * @param {UsageType} usageType The type of provisioning policy usage. In IdentityNow, a source can support various provisioning operations. For example, when a joiner is added to a source, this may trigger both CREATE and UPDATE provisioning operations. Each usage type is considered a provisioning policy. A source can have any number of these provisioning policies defined. These are the common usage types: CREATE - This usage type relates to \'Create Account Profile\', the provisioning template for the account to be created. For example, this would be used for a joiner on a source. UPDATE - This usage type relates to \'Update Account Profile\', the provisioning template for the \'Update\' connector operations. For example, this would be used for an attribute sync on a source. ENABLE - This usage type relates to \'Enable Account Profile\', the provisioning template for the account to be enabled. For example, this could be used for a joiner on a source once the joiner\'s account is created. DISABLE - This usage type relates to \'Disable Account Profile\', the provisioning template for the account to be disabled. For example, this could be used when a leaver is removed temporarily from a source. You can use these four usage types for all your provisioning policy needs. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + deleteProvisioningPolicy: function (sourceId, usageType, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'sourceId' is not null or undefined + (0, common_1.assertParamExists)('deleteProvisioningPolicy', 'sourceId', sourceId); + // verify required parameter 'usageType' is not null or undefined + (0, common_1.assertParamExists)('deleteProvisioningPolicy', 'usageType', usageType); + localVarPath = "/sources/{sourceId}/provisioning-policies/{usageType}" + .replace("{".concat("sourceId", "}"), encodeURIComponent(String(sourceId))) + .replace("{".concat("usageType", "}"), encodeURIComponent(String(usageType))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'DELETE' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This end-point deletes a specific source in IdentityNow. A token with ORG_ADMIN, SOURCE_ADMIN, or SOURCE_SUBADMIN authority is required to call this API. All of accounts on the source will be removed first, then the source will be deleted. Actual status of task execution can be retrieved via method GET `/task-status/{id}` + * @summary Delete Source by ID + * @param {string} id The Source id + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + deleteSource: function (id, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'id' is not null or undefined + (0, common_1.assertParamExists)('deleteSource', 'id', id); + localVarPath = "/sources/{id}" + .replace("{".concat("id", "}"), encodeURIComponent(String(id))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'DELETE' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * + * @summary Delete Source Schema by ID + * @param {string} sourceId The Source id. + * @param {string} schemaId The Schema id. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + deleteSourceSchema: function (sourceId, schemaId, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'sourceId' is not null or undefined + (0, common_1.assertParamExists)('deleteSourceSchema', 'sourceId', sourceId); + // verify required parameter 'schemaId' is not null or undefined + (0, common_1.assertParamExists)('deleteSourceSchema', 'schemaId', schemaId); + localVarPath = "/sources/{sourceId}/schemas/{schemaId}" + .replace("{".concat("sourceId", "}"), encodeURIComponent(String(sourceId))) + .replace("{".concat("schemaId", "}"), encodeURIComponent(String(schemaId))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'DELETE' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This API downloads the CSV schema that defines the account attributes on a source. >**NOTE: This API is designated only for Delimited File sources.** + * @summary Downloads source accounts schema template + * @param {string} id The Source id + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getAccountsSchema: function (id, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'id' is not null or undefined + (0, common_1.assertParamExists)('getAccountsSchema', 'id', id); + localVarPath = "/sources/{id}/schemas/accounts" + .replace("{".concat("id", "}"), encodeURIComponent(String(id))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This API downloads the CSV schema that defines the entitlement attributes on a source. >**NOTE: This API is designated only for Delimited File sources.** + * @summary Downloads source entitlements schema template + * @param {string} id The Source id + * @param {string} [schemaName] Name of entitlement schema + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getEntitlementsSchema: function (id, schemaName, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'id' is not null or undefined + (0, common_1.assertParamExists)('getEntitlementsSchema', 'id', id); + localVarPath = "/sources/{id}/schemas/entitlements" + .replace("{".concat("id", "}"), encodeURIComponent(String(id))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + if (schemaName !== undefined) { + localVarQueryParameter['schemaName'] = schemaName; + } + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This end-point retrieves the ProvisioningPolicy with the specified usage on the specified Source in IdentityNow. A token with API, ORG_ADMIN, SOURCE_ADMIN, or SOURCE_SUBADMIN authority is required to call this API. + * @summary Get Provisioning Policy by UsageType + * @param {string} sourceId The Source ID. + * @param {UsageType} usageType The type of provisioning policy usage. In IdentityNow, a source can support various provisioning operations. For example, when a joiner is added to a source, this may trigger both CREATE and UPDATE provisioning operations. Each usage type is considered a provisioning policy. A source can have any number of these provisioning policies defined. These are the common usage types: CREATE - This usage type relates to \'Create Account Profile\', the provisioning template for the account to be created. For example, this would be used for a joiner on a source. UPDATE - This usage type relates to \'Update Account Profile\', the provisioning template for the \'Update\' connector operations. For example, this would be used for an attribute sync on a source. ENABLE - This usage type relates to \'Enable Account Profile\', the provisioning template for the account to be enabled. For example, this could be used for a joiner on a source once the joiner\'s account is created. DISABLE - This usage type relates to \'Disable Account Profile\', the provisioning template for the account to be disabled. For example, this could be used when a leaver is removed temporarily from a source. You can use these four usage types for all your provisioning policy needs. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getProvisioningPolicy: function (sourceId, usageType, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'sourceId' is not null or undefined + (0, common_1.assertParamExists)('getProvisioningPolicy', 'sourceId', sourceId); + // verify required parameter 'usageType' is not null or undefined + (0, common_1.assertParamExists)('getProvisioningPolicy', 'usageType', usageType); + localVarPath = "/sources/{sourceId}/provisioning-policies/{usageType}" + .replace("{".concat("sourceId", "}"), encodeURIComponent(String(sourceId))) + .replace("{".concat("usageType", "}"), encodeURIComponent(String(usageType))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This end-point gets a specific source in IdentityNow. A token with ORG_ADMIN, SOURCE_ADMIN, or SOURCE_SUBADMIN authority is required to call this API. + * @summary Get Source by ID + * @param {string} id The Source id + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getSource: function (id, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'id' is not null or undefined + (0, common_1.assertParamExists)('getSource', 'id', id); + localVarPath = "/sources/{id}" + .replace("{".concat("id", "}"), encodeURIComponent(String(id))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This endpoint fetches source health by source\'s id + * @summary Fetches source health by id + * @param {string} sourceId The Source id. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getSourceHealth: function (sourceId, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'sourceId' is not null or undefined + (0, common_1.assertParamExists)('getSourceHealth', 'sourceId', sourceId); + localVarPath = "/sources/{sourceId}/source-health" + .replace("{".concat("sourceId", "}"), encodeURIComponent(String(sourceId))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * Get the Source Schema by ID in IdentityNow. + * @summary Get Source Schema by ID + * @param {string} sourceId The Source id. + * @param {string} schemaId The Schema id. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getSourceSchema: function (sourceId, schemaId, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'sourceId' is not null or undefined + (0, common_1.assertParamExists)('getSourceSchema', 'sourceId', sourceId); + // verify required parameter 'schemaId' is not null or undefined + (0, common_1.assertParamExists)('getSourceSchema', 'schemaId', schemaId); + localVarPath = "/sources/{sourceId}/schemas/{schemaId}" + .replace("{".concat("sourceId", "}"), encodeURIComponent(String(sourceId))) + .replace("{".concat("schemaId", "}"), encodeURIComponent(String(schemaId))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This API uploads a source schema template file to configure a source\'s account attributes. To retrieve the file to modify and upload, log into Identity Now. Click **Admin** -> **Connections** -> **Sources** -> **`{SourceName}`** -> **Import Data** -> **Account Schema** -> **Options** -> **Download Schema** >**NOTE: This API is designated only for Delimited File sources.** + * @summary Uploads source accounts schema template + * @param {string} id The Source id + * @param {any} [file] + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + importAccountsSchema: function (id, file, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, localVarFormParams, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'id' is not null or undefined + (0, common_1.assertParamExists)('importAccountsSchema', 'id', id); + localVarPath = "/sources/{id}/schemas/accounts" + .replace("{".concat("id", "}"), encodeURIComponent(String(id))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + localVarFormParams = new ((configuration && configuration.formDataCtor) || FormData)(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + if (file !== undefined) { + localVarFormParams.append('file', file); + } + localVarHeaderParameter['Content-Type'] = 'multipart/form-data'; + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + localVarRequestOptions.data = localVarFormParams; + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This uploads a supplemental source connector file (like jdbc driver jars) to a source\'s S3 bucket. This also sends ETS and Audit events. A token with ORG_ADMIN authority is required to call this API. + * @summary Upload connector file to source + * @param {string} sourceId The Source id. + * @param {any} [file] + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + importConnectorFile: function (sourceId, file, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, localVarFormParams, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'sourceId' is not null or undefined + (0, common_1.assertParamExists)('importConnectorFile', 'sourceId', sourceId); + localVarPath = "/sources/{sourceId}/upload-connector-file" + .replace("{".concat("sourceId", "}"), encodeURIComponent(String(sourceId))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + localVarFormParams = new ((configuration && configuration.formDataCtor) || FormData)(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + if (file !== undefined) { + localVarFormParams.append('file', file); + } + localVarHeaderParameter['Content-Type'] = 'multipart/form-data'; + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + localVarRequestOptions.data = localVarFormParams; + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This API uploads a source schema template file to configure a source\'s entitlement attributes. To retrieve the file to modify and upload, log into Identity Now. Click **Admin** -> **Connections** -> **Sources** -> **`{SourceName}`** -> **Import Data** -> **Import Entitlements** -> **Download** >**NOTE: This API is designated only for Delimited File sources.** + * @summary Uploads source entitlements schema template + * @param {string} id The Source id + * @param {string} [schemaName] Name of entitlement schema + * @param {any} [file] + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + importEntitlementsSchema: function (id, schemaName, file, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, localVarFormParams, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'id' is not null or undefined + (0, common_1.assertParamExists)('importEntitlementsSchema', 'id', id); + localVarPath = "/sources/{id}/schemas/entitlements" + .replace("{".concat("id", "}"), encodeURIComponent(String(id))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + localVarFormParams = new ((configuration && configuration.formDataCtor) || FormData)(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + if (schemaName !== undefined) { + localVarQueryParameter['schemaName'] = schemaName; + } + if (file !== undefined) { + localVarFormParams.append('file', file); + } + localVarHeaderParameter['Content-Type'] = 'multipart/form-data'; + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + localVarRequestOptions.data = localVarFormParams; + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This end-point lists all the ProvisioningPolicies in IdentityNow. A token with API, or ORG_ADMIN authority is required to call this API. + * @summary Lists ProvisioningPolicies + * @param {string} sourceId The Source id + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + listProvisioningPolicies: function (sourceId, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'sourceId' is not null or undefined + (0, common_1.assertParamExists)('listProvisioningPolicies', 'sourceId', sourceId); + localVarPath = "/sources/{sourceId}/provisioning-policies" + .replace("{".concat("sourceId", "}"), encodeURIComponent(String(sourceId))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * Lists the Schemas that exist on the specified Source in IdentityNow. + * @summary List Schemas on a Source + * @param {string} sourceId The Source ID. + * @param {string} [includeTypes] If set to \'group\', then the account schema is filtered and only group schemas are returned. Only a value of \'group\' is recognized. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + listSourceSchemas: function (sourceId, includeTypes, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'sourceId' is not null or undefined + (0, common_1.assertParamExists)('listSourceSchemas', 'sourceId', sourceId); + localVarPath = "/sources/{sourceId}/schemas" + .replace("{".concat("sourceId", "}"), encodeURIComponent(String(sourceId))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + if (includeTypes !== undefined) { + localVarQueryParameter['include-types'] = includeTypes; + } + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This end-point lists all the sources in IdentityNow. A token with ORG_ADMIN, SOURCE_ADMIN, SOURCE_SUBADMIN, or ROLE_SUBADMIN authority is required to call this API. + * @summary Lists all sources in IdentityNow. + * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **id**: *eq, in, co, ge, gt, le, lt, ne, isnull, sw* **name**: *co, eq, in, sw, ge, gt, ne, isnull* **type**: *eq, in, co, ge, gt, ne, isnull, sw* **owner.id**: *eq, in, co, ge, gt, le, lt, ne, isnull, sw* **features**: *ca, co* **created**: *eq* **modified**: *eq* **managementWorkgroup.id**: *eq, co, ge, gt, in, le, lt, ne, isnull, sw* **description**: *eq, sw* **authoritative**: *eq, ne, isnull* **healthy**: *isnull* **status**: *eq, in, co, ge, gt, le, lt, ne, isnull, sw* **connectionType**: *eq, co, ge, gt, in, le, lt, ne, isnull, sw* **connectorName**: *eq, co, ge, gt, in, ne, isnull, sw* + * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **type, created, modified, name, owner.name, healthy, status, id, description, owner.id, accountCorrelationConfig.id, accountCorrelationConfig.name, managerCorrelationRule.type, managerCorrelationRule.id, managerCorrelationRule.name, authoritative, managementWorkgroup.id, connectorName, connectionType** + * @param {string} [forSubadmin] Filter the returned list of sources for the identity specified by the parameter, which is the id of an identity with the role SOURCE_SUBADMIN. By convention, the value **me** indicates the identity id of the current user. Subadmins may only view Sources which they are able to administer; all other Sources will be filtered out when this parameter is set. If the current user is a SOURCE_SUBADMIN but fails to pass a valid value for this parameter, a 403 Forbidden is returned. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + listSources: function (limit, offset, count, filters, sorters, forSubadmin, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + localVarPath = "/sources"; + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + if (limit !== undefined) { + localVarQueryParameter['limit'] = limit; + } + if (offset !== undefined) { + localVarQueryParameter['offset'] = offset; + } + if (count !== undefined) { + localVarQueryParameter['count'] = count; + } + if (filters !== undefined) { + localVarQueryParameter['filters'] = filters; + } + if (sorters !== undefined) { + localVarQueryParameter['sorters'] = sorters; + } + if (forSubadmin !== undefined) { + localVarQueryParameter['for-subadmin'] = forSubadmin; + } + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This end-point updates the provisioning policy with the specified usage on the specified source in IdentityNow. Transforms can be used in the provisioning policy to create a new attribute that you only need during provisioning. Refer to [Transforms in Provisioning Policies](https://developer.sailpoint.com/idn/docs/transforms/guides/transforms-in-provisioning-policies) for more information. A token with API, ORG_ADMIN, SOURCE_ADMIN, or SOURCE_SUBADMIN authority is required to call this API. + * @summary Update Provisioning Policy by UsageType + * @param {string} sourceId The Source ID. + * @param {UsageType} usageType The type of provisioning policy usage. In IdentityNow, a source can support various provisioning operations. For example, when a joiner is added to a source, this may trigger both CREATE and UPDATE provisioning operations. Each usage type is considered a provisioning policy. A source can have any number of these provisioning policies defined. These are the common usage types: CREATE - This usage type relates to \'Create Account Profile\', the provisioning template for the account to be created. For example, this would be used for a joiner on a source. UPDATE - This usage type relates to \'Update Account Profile\', the provisioning template for the \'Update\' connector operations. For example, this would be used for an attribute sync on a source. ENABLE - This usage type relates to \'Enable Account Profile\', the provisioning template for the account to be enabled. For example, this could be used for a joiner on a source once the joiner\'s account is created. DISABLE - This usage type relates to \'Disable Account Profile\', the provisioning template for the account to be disabled. For example, this could be used when a leaver is removed temporarily from a source. You can use these four usage types for all your provisioning policy needs. + * @param {ProvisioningPolicyDto} provisioningPolicyDto + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + putProvisioningPolicy: function (sourceId, usageType, provisioningPolicyDto, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'sourceId' is not null or undefined + (0, common_1.assertParamExists)('putProvisioningPolicy', 'sourceId', sourceId); + // verify required parameter 'usageType' is not null or undefined + (0, common_1.assertParamExists)('putProvisioningPolicy', 'usageType', usageType); + // verify required parameter 'provisioningPolicyDto' is not null or undefined + (0, common_1.assertParamExists)('putProvisioningPolicy', 'provisioningPolicyDto', provisioningPolicyDto); + localVarPath = "/sources/{sourceId}/provisioning-policies/{usageType}" + .replace("{".concat("sourceId", "}"), encodeURIComponent(String(sourceId))) + .replace("{".concat("usageType", "}"), encodeURIComponent(String(usageType))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'PUT' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + localVarHeaderParameter['Content-Type'] = 'application/json'; + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(provisioningPolicyDto, localVarRequestOptions, configuration); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This API updates a source in IdentityNow, using a full object representation. In other words, the existing Source configuration is completely replaced. Some fields are immutable and cannot be changed, such as: * id * type * authoritative * connector * connectorClass * passwordPolicies Attempts to modify these fields will result in a 400 error. A token with ORG_ADMIN, SOURCE_ADMIN, or SOURCE_SUBADMIN authority is required to call this API. + * @summary Update Source (Full) + * @param {string} id The Source id + * @param {Source} source + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + putSource: function (id, source, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'id' is not null or undefined + (0, common_1.assertParamExists)('putSource', 'id', id); + // verify required parameter 'source' is not null or undefined + (0, common_1.assertParamExists)('putSource', 'source', source); + localVarPath = "/sources/{id}" + .replace("{".concat("id", "}"), encodeURIComponent(String(id))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'PUT' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + localVarHeaderParameter['Content-Type'] = 'application/json'; + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(source, localVarRequestOptions, configuration); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This API will completely replace an existing Schema with the submitted payload. Some fields of the Schema cannot be updated. These fields are listed below. * id * name * created * modified Any attempt to modify these fields will result in an error response with a status code of 400. > `id` must remain in the request body, but it cannot be changed. If `id` is omitted from the request body, the result will be a 400 error. + * @summary Update Source Schema (Full) + * @param {string} sourceId The Source id. + * @param {string} schemaId The Schema id. + * @param {Schema} schema + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + putSourceSchema: function (sourceId, schemaId, schema, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'sourceId' is not null or undefined + (0, common_1.assertParamExists)('putSourceSchema', 'sourceId', sourceId); + // verify required parameter 'schemaId' is not null or undefined + (0, common_1.assertParamExists)('putSourceSchema', 'schemaId', schemaId); + // verify required parameter 'schema' is not null or undefined + (0, common_1.assertParamExists)('putSourceSchema', 'schema', schema); + localVarPath = "/sources/{sourceId}/schemas/{schemaId}" + .replace("{".concat("sourceId", "}"), encodeURIComponent(String(sourceId))) + .replace("{".concat("schemaId", "}"), encodeURIComponent(String(schemaId))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'PUT' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + localVarHeaderParameter['Content-Type'] = 'application/json'; + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(schema, localVarRequestOptions, configuration); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This end-point updates a list of provisioning policies on the specified source in IdentityNow. A token with API, or ORG_ADMIN authority is required to call this API. + * @summary Bulk Update Provisioning Policies + * @param {string} sourceId The Source id. + * @param {Array} provisioningPolicyDto + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + updateProvisioningPoliciesInBulk: function (sourceId, provisioningPolicyDto, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'sourceId' is not null or undefined + (0, common_1.assertParamExists)('updateProvisioningPoliciesInBulk', 'sourceId', sourceId); + // verify required parameter 'provisioningPolicyDto' is not null or undefined + (0, common_1.assertParamExists)('updateProvisioningPoliciesInBulk', 'provisioningPolicyDto', provisioningPolicyDto); + localVarPath = "/sources/{sourceId}/provisioning-policies/bulk-update" + .replace("{".concat("sourceId", "}"), encodeURIComponent(String(sourceId))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + localVarHeaderParameter['Content-Type'] = 'application/json'; + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(provisioningPolicyDto, localVarRequestOptions, configuration); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This API selectively updates an existing Provisioning Policy using a JSONPatch payload. Transforms can be used in the provisioning policy to create a new attribute that you only need during provisioning. Refer to [Transforms in Provisioning Policies](https://developer.sailpoint.com/idn/docs/transforms/guides/transforms-in-provisioning-policies) for more information. A token with API, ORG_ADMIN, SOURCE_ADMIN, or SOURCE_SUBADMIN authority is required to call this API. + * @summary Partial update of Provisioning Policy + * @param {string} sourceId The Source id. + * @param {UsageType} usageType The type of provisioning policy usage. In IdentityNow, a source can support various provisioning operations. For example, when a joiner is added to a source, this may trigger both CREATE and UPDATE provisioning operations. Each usage type is considered a provisioning policy. A source can have any number of these provisioning policies defined. These are the common usage types: CREATE - This usage type relates to \'Create Account Profile\', the provisioning template for the account to be created. For example, this would be used for a joiner on a source. UPDATE - This usage type relates to \'Update Account Profile\', the provisioning template for the \'Update\' connector operations. For example, this would be used for an attribute sync on a source. ENABLE - This usage type relates to \'Enable Account Profile\', the provisioning template for the account to be enabled. For example, this could be used for a joiner on a source once the joiner\'s account is created. DISABLE - This usage type relates to \'Disable Account Profile\', the provisioning template for the account to be disabled. For example, this could be used when a leaver is removed temporarily from a source. You can use these four usage types for all your provisioning policy needs. + * @param {Array} jsonPatchOperation The JSONPatch payload used to update the schema. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + updateProvisioningPolicy: function (sourceId, usageType, jsonPatchOperation, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'sourceId' is not null or undefined + (0, common_1.assertParamExists)('updateProvisioningPolicy', 'sourceId', sourceId); + // verify required parameter 'usageType' is not null or undefined + (0, common_1.assertParamExists)('updateProvisioningPolicy', 'usageType', usageType); + // verify required parameter 'jsonPatchOperation' is not null or undefined + (0, common_1.assertParamExists)('updateProvisioningPolicy', 'jsonPatchOperation', jsonPatchOperation); + localVarPath = "/sources/{sourceId}/provisioning-policies/{usageType}" + .replace("{".concat("sourceId", "}"), encodeURIComponent(String(sourceId))) + .replace("{".concat("usageType", "}"), encodeURIComponent(String(usageType))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'PATCH' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + localVarHeaderParameter['Content-Type'] = 'application/json-patch+json'; + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(jsonPatchOperation, localVarRequestOptions, configuration); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This API partially updates a source in IdentityNow, using a list of patch operations according to the [JSON Patch](https://tools.ietf.org/html/rfc6902) standard. Some fields are immutable and cannot be changed, such as: * id * type * authoritative * created * modified * connector * connectorClass * passwordPolicies Attempts to modify these fields will result in a 400 error. A token with ORG_ADMIN, SOURCE_ADMIN, SOURCE_SUBADMIN, or API authority is required to call this API. + * @summary Update Source (Partial) + * @param {string} id The Source id + * @param {Array} jsonPatchOperation A list of account update operations according to the [JSON Patch](https://tools.ietf.org/html/rfc6902) standard. Any password changes are submitted as plain-text and encrypted upon receipt in IdentityNow. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + updateSource: function (id, jsonPatchOperation, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'id' is not null or undefined + (0, common_1.assertParamExists)('updateSource', 'id', id); + // verify required parameter 'jsonPatchOperation' is not null or undefined + (0, common_1.assertParamExists)('updateSource', 'jsonPatchOperation', jsonPatchOperation); + localVarPath = "/sources/{id}" + .replace("{".concat("id", "}"), encodeURIComponent(String(id))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'PATCH' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + localVarHeaderParameter['Content-Type'] = 'application/json-patch+json'; + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(jsonPatchOperation, localVarRequestOptions, configuration); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * Use this API to selectively update an existing Schema using a JSONPatch payload. The following schema fields are immutable and cannot be updated: - id - name - created - modified To switch an account attribute to a group entitlement, you need to have the following in place: - `isEntitlement: true` - Must define a schema for the group and [add it to the source](https://developer.sailpoint.com/idn/api/v3/create-source-schema) before updating the `isGroup` flag. For example, here is the `group` account attribute referencing a schema that defines the group: ```json { \"name\": \"groups\", \"type\": \"STRING\", \"schema\": { \"type\": \"CONNECTOR_SCHEMA\", \"id\": \"2c9180887671ff8c01767b4671fc7d60\", \"name\": \"group\" }, \"description\": \"The groups, roles etc. that reference account group objects\", \"isMulti\": true, \"isEntitlement\": true, \"isGroup\": true } ``` + * @summary Update Source Schema (Partial) + * @param {string} sourceId The Source id. + * @param {string} schemaId The Schema id. + * @param {Array} jsonPatchOperation The JSONPatch payload used to update the schema. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + updateSourceSchema: function (sourceId, schemaId, jsonPatchOperation, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'sourceId' is not null or undefined + (0, common_1.assertParamExists)('updateSourceSchema', 'sourceId', sourceId); + // verify required parameter 'schemaId' is not null or undefined + (0, common_1.assertParamExists)('updateSourceSchema', 'schemaId', schemaId); + // verify required parameter 'jsonPatchOperation' is not null or undefined + (0, common_1.assertParamExists)('updateSourceSchema', 'jsonPatchOperation', jsonPatchOperation); + localVarPath = "/sources/{sourceId}/schemas/{schemaId}" + .replace("{".concat("sourceId", "}"), encodeURIComponent(String(sourceId))) + .replace("{".concat("schemaId", "}"), encodeURIComponent(String(schemaId))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'PATCH' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + localVarHeaderParameter['Content-Type'] = 'application/json-patch+json'; + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(jsonPatchOperation, localVarRequestOptions, configuration); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + }; + }; + exports.SourcesApiAxiosParamCreator = SourcesApiAxiosParamCreator; + /** + * SourcesApi - functional programming interface + * @export + */ + var SourcesApiFp = function (configuration) { + var localVarAxiosParamCreator = (0, exports.SourcesApiAxiosParamCreator)(configuration); + return { + /** + * This API generates a create policy/template based on field value transforms. This API is intended for use when setting up JDBC Provisioning type sources, but it will also work on other source types. Transforms can be used in the provisioning policy to create a new attribute that you only need during provisioning. Refer to [Transforms in Provisioning Policies](https://developer.sailpoint.com/idn/docs/transforms/guides/transforms-in-provisioning-policies) for more information. A token with ORG_ADMIN authority is required to call this API. + * @summary Create Provisioning Policy + * @param {string} sourceId The Source id + * @param {ProvisioningPolicyDto} provisioningPolicyDto + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + createProvisioningPolicy: function (sourceId, provisioningPolicyDto, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.createProvisioningPolicy(sourceId, provisioningPolicyDto, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This creates a specific source with a full source JSON representation. Any passwords are submitted as plain-text and encrypted upon receipt in IdentityNow. A token with ORG_ADMIN, SOURCE_ADMIN, or SOURCE_SUBADMIN authority is required to call this API. + * @summary Creates a source in IdentityNow. + * @param {Source} source + * @param {boolean} [provisionAsCsv] If this parameter is `true`, it configures the source as a Delimited File (CSV) source. Setting this to `true` will automatically set the `type` of the source to `DelimitedFile`. You must use this query parameter to create a Delimited File source as you would in the UI. If you don\'t set this query parameter and you attempt to set the `type` attribute directly, the request won\'t correctly generate the source. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + createSource: function (source, provisionAsCsv, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.createSource(source, provisionAsCsv, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * Creates a new Schema on the specified Source in IdentityNow. + * @summary Create Schema on a Source + * @param {string} sourceId The Source id. + * @param {Schema} schema + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + createSourceSchema: function (sourceId, schema, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.createSourceSchema(sourceId, schema, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * Deletes the provisioning policy with the specified usage on an application. A token with API, or ORG_ADMIN authority is required to call this API. + * @summary Delete Provisioning Policy by UsageType + * @param {string} sourceId The Source ID. + * @param {UsageType} usageType The type of provisioning policy usage. In IdentityNow, a source can support various provisioning operations. For example, when a joiner is added to a source, this may trigger both CREATE and UPDATE provisioning operations. Each usage type is considered a provisioning policy. A source can have any number of these provisioning policies defined. These are the common usage types: CREATE - This usage type relates to \'Create Account Profile\', the provisioning template for the account to be created. For example, this would be used for a joiner on a source. UPDATE - This usage type relates to \'Update Account Profile\', the provisioning template for the \'Update\' connector operations. For example, this would be used for an attribute sync on a source. ENABLE - This usage type relates to \'Enable Account Profile\', the provisioning template for the account to be enabled. For example, this could be used for a joiner on a source once the joiner\'s account is created. DISABLE - This usage type relates to \'Disable Account Profile\', the provisioning template for the account to be disabled. For example, this could be used when a leaver is removed temporarily from a source. You can use these four usage types for all your provisioning policy needs. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + deleteProvisioningPolicy: function (sourceId, usageType, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.deleteProvisioningPolicy(sourceId, usageType, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This end-point deletes a specific source in IdentityNow. A token with ORG_ADMIN, SOURCE_ADMIN, or SOURCE_SUBADMIN authority is required to call this API. All of accounts on the source will be removed first, then the source will be deleted. Actual status of task execution can be retrieved via method GET `/task-status/{id}` + * @summary Delete Source by ID + * @param {string} id The Source id + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + deleteSource: function (id, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.deleteSource(id, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * + * @summary Delete Source Schema by ID + * @param {string} sourceId The Source id. + * @param {string} schemaId The Schema id. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + deleteSourceSchema: function (sourceId, schemaId, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.deleteSourceSchema(sourceId, schemaId, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This API downloads the CSV schema that defines the account attributes on a source. >**NOTE: This API is designated only for Delimited File sources.** + * @summary Downloads source accounts schema template + * @param {string} id The Source id + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getAccountsSchema: function (id, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.getAccountsSchema(id, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This API downloads the CSV schema that defines the entitlement attributes on a source. >**NOTE: This API is designated only for Delimited File sources.** + * @summary Downloads source entitlements schema template + * @param {string} id The Source id + * @param {string} [schemaName] Name of entitlement schema + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getEntitlementsSchema: function (id, schemaName, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.getEntitlementsSchema(id, schemaName, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This end-point retrieves the ProvisioningPolicy with the specified usage on the specified Source in IdentityNow. A token with API, ORG_ADMIN, SOURCE_ADMIN, or SOURCE_SUBADMIN authority is required to call this API. + * @summary Get Provisioning Policy by UsageType + * @param {string} sourceId The Source ID. + * @param {UsageType} usageType The type of provisioning policy usage. In IdentityNow, a source can support various provisioning operations. For example, when a joiner is added to a source, this may trigger both CREATE and UPDATE provisioning operations. Each usage type is considered a provisioning policy. A source can have any number of these provisioning policies defined. These are the common usage types: CREATE - This usage type relates to \'Create Account Profile\', the provisioning template for the account to be created. For example, this would be used for a joiner on a source. UPDATE - This usage type relates to \'Update Account Profile\', the provisioning template for the \'Update\' connector operations. For example, this would be used for an attribute sync on a source. ENABLE - This usage type relates to \'Enable Account Profile\', the provisioning template for the account to be enabled. For example, this could be used for a joiner on a source once the joiner\'s account is created. DISABLE - This usage type relates to \'Disable Account Profile\', the provisioning template for the account to be disabled. For example, this could be used when a leaver is removed temporarily from a source. You can use these four usage types for all your provisioning policy needs. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getProvisioningPolicy: function (sourceId, usageType, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.getProvisioningPolicy(sourceId, usageType, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This end-point gets a specific source in IdentityNow. A token with ORG_ADMIN, SOURCE_ADMIN, or SOURCE_SUBADMIN authority is required to call this API. + * @summary Get Source by ID + * @param {string} id The Source id + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getSource: function (id, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.getSource(id, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This endpoint fetches source health by source\'s id + * @summary Fetches source health by id + * @param {string} sourceId The Source id. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getSourceHealth: function (sourceId, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.getSourceHealth(sourceId, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * Get the Source Schema by ID in IdentityNow. + * @summary Get Source Schema by ID + * @param {string} sourceId The Source id. + * @param {string} schemaId The Schema id. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getSourceSchema: function (sourceId, schemaId, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.getSourceSchema(sourceId, schemaId, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This API uploads a source schema template file to configure a source\'s account attributes. To retrieve the file to modify and upload, log into Identity Now. Click **Admin** -> **Connections** -> **Sources** -> **`{SourceName}`** -> **Import Data** -> **Account Schema** -> **Options** -> **Download Schema** >**NOTE: This API is designated only for Delimited File sources.** + * @summary Uploads source accounts schema template + * @param {string} id The Source id + * @param {any} [file] + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + importAccountsSchema: function (id, file, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.importAccountsSchema(id, file, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This uploads a supplemental source connector file (like jdbc driver jars) to a source\'s S3 bucket. This also sends ETS and Audit events. A token with ORG_ADMIN authority is required to call this API. + * @summary Upload connector file to source + * @param {string} sourceId The Source id. + * @param {any} [file] + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + importConnectorFile: function (sourceId, file, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.importConnectorFile(sourceId, file, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This API uploads a source schema template file to configure a source\'s entitlement attributes. To retrieve the file to modify and upload, log into Identity Now. Click **Admin** -> **Connections** -> **Sources** -> **`{SourceName}`** -> **Import Data** -> **Import Entitlements** -> **Download** >**NOTE: This API is designated only for Delimited File sources.** + * @summary Uploads source entitlements schema template + * @param {string} id The Source id + * @param {string} [schemaName] Name of entitlement schema + * @param {any} [file] + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + importEntitlementsSchema: function (id, schemaName, file, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.importEntitlementsSchema(id, schemaName, file, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This end-point lists all the ProvisioningPolicies in IdentityNow. A token with API, or ORG_ADMIN authority is required to call this API. + * @summary Lists ProvisioningPolicies + * @param {string} sourceId The Source id + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + listProvisioningPolicies: function (sourceId, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.listProvisioningPolicies(sourceId, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * Lists the Schemas that exist on the specified Source in IdentityNow. + * @summary List Schemas on a Source + * @param {string} sourceId The Source ID. + * @param {string} [includeTypes] If set to \'group\', then the account schema is filtered and only group schemas are returned. Only a value of \'group\' is recognized. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + listSourceSchemas: function (sourceId, includeTypes, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.listSourceSchemas(sourceId, includeTypes, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This end-point lists all the sources in IdentityNow. A token with ORG_ADMIN, SOURCE_ADMIN, SOURCE_SUBADMIN, or ROLE_SUBADMIN authority is required to call this API. + * @summary Lists all sources in IdentityNow. + * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **id**: *eq, in, co, ge, gt, le, lt, ne, isnull, sw* **name**: *co, eq, in, sw, ge, gt, ne, isnull* **type**: *eq, in, co, ge, gt, ne, isnull, sw* **owner.id**: *eq, in, co, ge, gt, le, lt, ne, isnull, sw* **features**: *ca, co* **created**: *eq* **modified**: *eq* **managementWorkgroup.id**: *eq, co, ge, gt, in, le, lt, ne, isnull, sw* **description**: *eq, sw* **authoritative**: *eq, ne, isnull* **healthy**: *isnull* **status**: *eq, in, co, ge, gt, le, lt, ne, isnull, sw* **connectionType**: *eq, co, ge, gt, in, le, lt, ne, isnull, sw* **connectorName**: *eq, co, ge, gt, in, ne, isnull, sw* + * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **type, created, modified, name, owner.name, healthy, status, id, description, owner.id, accountCorrelationConfig.id, accountCorrelationConfig.name, managerCorrelationRule.type, managerCorrelationRule.id, managerCorrelationRule.name, authoritative, managementWorkgroup.id, connectorName, connectionType** + * @param {string} [forSubadmin] Filter the returned list of sources for the identity specified by the parameter, which is the id of an identity with the role SOURCE_SUBADMIN. By convention, the value **me** indicates the identity id of the current user. Subadmins may only view Sources which they are able to administer; all other Sources will be filtered out when this parameter is set. If the current user is a SOURCE_SUBADMIN but fails to pass a valid value for this parameter, a 403 Forbidden is returned. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + listSources: function (limit, offset, count, filters, sorters, forSubadmin, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.listSources(limit, offset, count, filters, sorters, forSubadmin, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This end-point updates the provisioning policy with the specified usage on the specified source in IdentityNow. Transforms can be used in the provisioning policy to create a new attribute that you only need during provisioning. Refer to [Transforms in Provisioning Policies](https://developer.sailpoint.com/idn/docs/transforms/guides/transforms-in-provisioning-policies) for more information. A token with API, ORG_ADMIN, SOURCE_ADMIN, or SOURCE_SUBADMIN authority is required to call this API. + * @summary Update Provisioning Policy by UsageType + * @param {string} sourceId The Source ID. + * @param {UsageType} usageType The type of provisioning policy usage. In IdentityNow, a source can support various provisioning operations. For example, when a joiner is added to a source, this may trigger both CREATE and UPDATE provisioning operations. Each usage type is considered a provisioning policy. A source can have any number of these provisioning policies defined. These are the common usage types: CREATE - This usage type relates to \'Create Account Profile\', the provisioning template for the account to be created. For example, this would be used for a joiner on a source. UPDATE - This usage type relates to \'Update Account Profile\', the provisioning template for the \'Update\' connector operations. For example, this would be used for an attribute sync on a source. ENABLE - This usage type relates to \'Enable Account Profile\', the provisioning template for the account to be enabled. For example, this could be used for a joiner on a source once the joiner\'s account is created. DISABLE - This usage type relates to \'Disable Account Profile\', the provisioning template for the account to be disabled. For example, this could be used when a leaver is removed temporarily from a source. You can use these four usage types for all your provisioning policy needs. + * @param {ProvisioningPolicyDto} provisioningPolicyDto + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + putProvisioningPolicy: function (sourceId, usageType, provisioningPolicyDto, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.putProvisioningPolicy(sourceId, usageType, provisioningPolicyDto, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This API updates a source in IdentityNow, using a full object representation. In other words, the existing Source configuration is completely replaced. Some fields are immutable and cannot be changed, such as: * id * type * authoritative * connector * connectorClass * passwordPolicies Attempts to modify these fields will result in a 400 error. A token with ORG_ADMIN, SOURCE_ADMIN, or SOURCE_SUBADMIN authority is required to call this API. + * @summary Update Source (Full) + * @param {string} id The Source id + * @param {Source} source + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + putSource: function (id, source, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.putSource(id, source, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This API will completely replace an existing Schema with the submitted payload. Some fields of the Schema cannot be updated. These fields are listed below. * id * name * created * modified Any attempt to modify these fields will result in an error response with a status code of 400. > `id` must remain in the request body, but it cannot be changed. If `id` is omitted from the request body, the result will be a 400 error. + * @summary Update Source Schema (Full) + * @param {string} sourceId The Source id. + * @param {string} schemaId The Schema id. + * @param {Schema} schema + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + putSourceSchema: function (sourceId, schemaId, schema, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.putSourceSchema(sourceId, schemaId, schema, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This end-point updates a list of provisioning policies on the specified source in IdentityNow. A token with API, or ORG_ADMIN authority is required to call this API. + * @summary Bulk Update Provisioning Policies + * @param {string} sourceId The Source id. + * @param {Array} provisioningPolicyDto + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + updateProvisioningPoliciesInBulk: function (sourceId, provisioningPolicyDto, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.updateProvisioningPoliciesInBulk(sourceId, provisioningPolicyDto, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This API selectively updates an existing Provisioning Policy using a JSONPatch payload. Transforms can be used in the provisioning policy to create a new attribute that you only need during provisioning. Refer to [Transforms in Provisioning Policies](https://developer.sailpoint.com/idn/docs/transforms/guides/transforms-in-provisioning-policies) for more information. A token with API, ORG_ADMIN, SOURCE_ADMIN, or SOURCE_SUBADMIN authority is required to call this API. + * @summary Partial update of Provisioning Policy + * @param {string} sourceId The Source id. + * @param {UsageType} usageType The type of provisioning policy usage. In IdentityNow, a source can support various provisioning operations. For example, when a joiner is added to a source, this may trigger both CREATE and UPDATE provisioning operations. Each usage type is considered a provisioning policy. A source can have any number of these provisioning policies defined. These are the common usage types: CREATE - This usage type relates to \'Create Account Profile\', the provisioning template for the account to be created. For example, this would be used for a joiner on a source. UPDATE - This usage type relates to \'Update Account Profile\', the provisioning template for the \'Update\' connector operations. For example, this would be used for an attribute sync on a source. ENABLE - This usage type relates to \'Enable Account Profile\', the provisioning template for the account to be enabled. For example, this could be used for a joiner on a source once the joiner\'s account is created. DISABLE - This usage type relates to \'Disable Account Profile\', the provisioning template for the account to be disabled. For example, this could be used when a leaver is removed temporarily from a source. You can use these four usage types for all your provisioning policy needs. + * @param {Array} jsonPatchOperation The JSONPatch payload used to update the schema. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + updateProvisioningPolicy: function (sourceId, usageType, jsonPatchOperation, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.updateProvisioningPolicy(sourceId, usageType, jsonPatchOperation, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This API partially updates a source in IdentityNow, using a list of patch operations according to the [JSON Patch](https://tools.ietf.org/html/rfc6902) standard. Some fields are immutable and cannot be changed, such as: * id * type * authoritative * created * modified * connector * connectorClass * passwordPolicies Attempts to modify these fields will result in a 400 error. A token with ORG_ADMIN, SOURCE_ADMIN, SOURCE_SUBADMIN, or API authority is required to call this API. + * @summary Update Source (Partial) + * @param {string} id The Source id + * @param {Array} jsonPatchOperation A list of account update operations according to the [JSON Patch](https://tools.ietf.org/html/rfc6902) standard. Any password changes are submitted as plain-text and encrypted upon receipt in IdentityNow. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + updateSource: function (id, jsonPatchOperation, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.updateSource(id, jsonPatchOperation, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * Use this API to selectively update an existing Schema using a JSONPatch payload. The following schema fields are immutable and cannot be updated: - id - name - created - modified To switch an account attribute to a group entitlement, you need to have the following in place: - `isEntitlement: true` - Must define a schema for the group and [add it to the source](https://developer.sailpoint.com/idn/api/v3/create-source-schema) before updating the `isGroup` flag. For example, here is the `group` account attribute referencing a schema that defines the group: ```json { \"name\": \"groups\", \"type\": \"STRING\", \"schema\": { \"type\": \"CONNECTOR_SCHEMA\", \"id\": \"2c9180887671ff8c01767b4671fc7d60\", \"name\": \"group\" }, \"description\": \"The groups, roles etc. that reference account group objects\", \"isMulti\": true, \"isEntitlement\": true, \"isGroup\": true } ``` + * @summary Update Source Schema (Partial) + * @param {string} sourceId The Source id. + * @param {string} schemaId The Schema id. + * @param {Array} jsonPatchOperation The JSONPatch payload used to update the schema. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + updateSourceSchema: function (sourceId, schemaId, jsonPatchOperation, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.updateSourceSchema(sourceId, schemaId, jsonPatchOperation, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + }; + }; + exports.SourcesApiFp = SourcesApiFp; + /** + * SourcesApi - factory interface + * @export + */ + var SourcesApiFactory = function (configuration, basePath, axios) { + var localVarFp = (0, exports.SourcesApiFp)(configuration); + return { + /** + * This API generates a create policy/template based on field value transforms. This API is intended for use when setting up JDBC Provisioning type sources, but it will also work on other source types. Transforms can be used in the provisioning policy to create a new attribute that you only need during provisioning. Refer to [Transforms in Provisioning Policies](https://developer.sailpoint.com/idn/docs/transforms/guides/transforms-in-provisioning-policies) for more information. A token with ORG_ADMIN authority is required to call this API. + * @summary Create Provisioning Policy + * @param {string} sourceId The Source id + * @param {ProvisioningPolicyDto} provisioningPolicyDto + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + createProvisioningPolicy: function (sourceId, provisioningPolicyDto, axiosOptions) { + return localVarFp.createProvisioningPolicy(sourceId, provisioningPolicyDto, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This creates a specific source with a full source JSON representation. Any passwords are submitted as plain-text and encrypted upon receipt in IdentityNow. A token with ORG_ADMIN, SOURCE_ADMIN, or SOURCE_SUBADMIN authority is required to call this API. + * @summary Creates a source in IdentityNow. + * @param {Source} source + * @param {boolean} [provisionAsCsv] If this parameter is `true`, it configures the source as a Delimited File (CSV) source. Setting this to `true` will automatically set the `type` of the source to `DelimitedFile`. You must use this query parameter to create a Delimited File source as you would in the UI. If you don\'t set this query parameter and you attempt to set the `type` attribute directly, the request won\'t correctly generate the source. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + createSource: function (source, provisionAsCsv, axiosOptions) { + return localVarFp.createSource(source, provisionAsCsv, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * Creates a new Schema on the specified Source in IdentityNow. + * @summary Create Schema on a Source + * @param {string} sourceId The Source id. + * @param {Schema} schema + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + createSourceSchema: function (sourceId, schema, axiosOptions) { + return localVarFp.createSourceSchema(sourceId, schema, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * Deletes the provisioning policy with the specified usage on an application. A token with API, or ORG_ADMIN authority is required to call this API. + * @summary Delete Provisioning Policy by UsageType + * @param {string} sourceId The Source ID. + * @param {UsageType} usageType The type of provisioning policy usage. In IdentityNow, a source can support various provisioning operations. For example, when a joiner is added to a source, this may trigger both CREATE and UPDATE provisioning operations. Each usage type is considered a provisioning policy. A source can have any number of these provisioning policies defined. These are the common usage types: CREATE - This usage type relates to \'Create Account Profile\', the provisioning template for the account to be created. For example, this would be used for a joiner on a source. UPDATE - This usage type relates to \'Update Account Profile\', the provisioning template for the \'Update\' connector operations. For example, this would be used for an attribute sync on a source. ENABLE - This usage type relates to \'Enable Account Profile\', the provisioning template for the account to be enabled. For example, this could be used for a joiner on a source once the joiner\'s account is created. DISABLE - This usage type relates to \'Disable Account Profile\', the provisioning template for the account to be disabled. For example, this could be used when a leaver is removed temporarily from a source. You can use these four usage types for all your provisioning policy needs. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + deleteProvisioningPolicy: function (sourceId, usageType, axiosOptions) { + return localVarFp.deleteProvisioningPolicy(sourceId, usageType, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This end-point deletes a specific source in IdentityNow. A token with ORG_ADMIN, SOURCE_ADMIN, or SOURCE_SUBADMIN authority is required to call this API. All of accounts on the source will be removed first, then the source will be deleted. Actual status of task execution can be retrieved via method GET `/task-status/{id}` + * @summary Delete Source by ID + * @param {string} id The Source id + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + deleteSource: function (id, axiosOptions) { + return localVarFp.deleteSource(id, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * + * @summary Delete Source Schema by ID + * @param {string} sourceId The Source id. + * @param {string} schemaId The Schema id. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + deleteSourceSchema: function (sourceId, schemaId, axiosOptions) { + return localVarFp.deleteSourceSchema(sourceId, schemaId, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This API downloads the CSV schema that defines the account attributes on a source. >**NOTE: This API is designated only for Delimited File sources.** + * @summary Downloads source accounts schema template + * @param {string} id The Source id + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getAccountsSchema: function (id, axiosOptions) { + return localVarFp.getAccountsSchema(id, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This API downloads the CSV schema that defines the entitlement attributes on a source. >**NOTE: This API is designated only for Delimited File sources.** + * @summary Downloads source entitlements schema template + * @param {string} id The Source id + * @param {string} [schemaName] Name of entitlement schema + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getEntitlementsSchema: function (id, schemaName, axiosOptions) { + return localVarFp.getEntitlementsSchema(id, schemaName, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This end-point retrieves the ProvisioningPolicy with the specified usage on the specified Source in IdentityNow. A token with API, ORG_ADMIN, SOURCE_ADMIN, or SOURCE_SUBADMIN authority is required to call this API. + * @summary Get Provisioning Policy by UsageType + * @param {string} sourceId The Source ID. + * @param {UsageType} usageType The type of provisioning policy usage. In IdentityNow, a source can support various provisioning operations. For example, when a joiner is added to a source, this may trigger both CREATE and UPDATE provisioning operations. Each usage type is considered a provisioning policy. A source can have any number of these provisioning policies defined. These are the common usage types: CREATE - This usage type relates to \'Create Account Profile\', the provisioning template for the account to be created. For example, this would be used for a joiner on a source. UPDATE - This usage type relates to \'Update Account Profile\', the provisioning template for the \'Update\' connector operations. For example, this would be used for an attribute sync on a source. ENABLE - This usage type relates to \'Enable Account Profile\', the provisioning template for the account to be enabled. For example, this could be used for a joiner on a source once the joiner\'s account is created. DISABLE - This usage type relates to \'Disable Account Profile\', the provisioning template for the account to be disabled. For example, this could be used when a leaver is removed temporarily from a source. You can use these four usage types for all your provisioning policy needs. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getProvisioningPolicy: function (sourceId, usageType, axiosOptions) { + return localVarFp.getProvisioningPolicy(sourceId, usageType, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This end-point gets a specific source in IdentityNow. A token with ORG_ADMIN, SOURCE_ADMIN, or SOURCE_SUBADMIN authority is required to call this API. + * @summary Get Source by ID + * @param {string} id The Source id + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getSource: function (id, axiosOptions) { + return localVarFp.getSource(id, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This endpoint fetches source health by source\'s id + * @summary Fetches source health by id + * @param {string} sourceId The Source id. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getSourceHealth: function (sourceId, axiosOptions) { + return localVarFp.getSourceHealth(sourceId, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * Get the Source Schema by ID in IdentityNow. + * @summary Get Source Schema by ID + * @param {string} sourceId The Source id. + * @param {string} schemaId The Schema id. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getSourceSchema: function (sourceId, schemaId, axiosOptions) { + return localVarFp.getSourceSchema(sourceId, schemaId, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This API uploads a source schema template file to configure a source\'s account attributes. To retrieve the file to modify and upload, log into Identity Now. Click **Admin** -> **Connections** -> **Sources** -> **`{SourceName}`** -> **Import Data** -> **Account Schema** -> **Options** -> **Download Schema** >**NOTE: This API is designated only for Delimited File sources.** + * @summary Uploads source accounts schema template + * @param {string} id The Source id + * @param {any} [file] + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + importAccountsSchema: function (id, file, axiosOptions) { + return localVarFp.importAccountsSchema(id, file, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This uploads a supplemental source connector file (like jdbc driver jars) to a source\'s S3 bucket. This also sends ETS and Audit events. A token with ORG_ADMIN authority is required to call this API. + * @summary Upload connector file to source + * @param {string} sourceId The Source id. + * @param {any} [file] + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + importConnectorFile: function (sourceId, file, axiosOptions) { + return localVarFp.importConnectorFile(sourceId, file, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This API uploads a source schema template file to configure a source\'s entitlement attributes. To retrieve the file to modify and upload, log into Identity Now. Click **Admin** -> **Connections** -> **Sources** -> **`{SourceName}`** -> **Import Data** -> **Import Entitlements** -> **Download** >**NOTE: This API is designated only for Delimited File sources.** + * @summary Uploads source entitlements schema template + * @param {string} id The Source id + * @param {string} [schemaName] Name of entitlement schema + * @param {any} [file] + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + importEntitlementsSchema: function (id, schemaName, file, axiosOptions) { + return localVarFp.importEntitlementsSchema(id, schemaName, file, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This end-point lists all the ProvisioningPolicies in IdentityNow. A token with API, or ORG_ADMIN authority is required to call this API. + * @summary Lists ProvisioningPolicies + * @param {string} sourceId The Source id + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + listProvisioningPolicies: function (sourceId, axiosOptions) { + return localVarFp.listProvisioningPolicies(sourceId, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * Lists the Schemas that exist on the specified Source in IdentityNow. + * @summary List Schemas on a Source + * @param {string} sourceId The Source ID. + * @param {string} [includeTypes] If set to \'group\', then the account schema is filtered and only group schemas are returned. Only a value of \'group\' is recognized. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + listSourceSchemas: function (sourceId, includeTypes, axiosOptions) { + return localVarFp.listSourceSchemas(sourceId, includeTypes, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This end-point lists all the sources in IdentityNow. A token with ORG_ADMIN, SOURCE_ADMIN, SOURCE_SUBADMIN, or ROLE_SUBADMIN authority is required to call this API. + * @summary Lists all sources in IdentityNow. + * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **id**: *eq, in, co, ge, gt, le, lt, ne, isnull, sw* **name**: *co, eq, in, sw, ge, gt, ne, isnull* **type**: *eq, in, co, ge, gt, ne, isnull, sw* **owner.id**: *eq, in, co, ge, gt, le, lt, ne, isnull, sw* **features**: *ca, co* **created**: *eq* **modified**: *eq* **managementWorkgroup.id**: *eq, co, ge, gt, in, le, lt, ne, isnull, sw* **description**: *eq, sw* **authoritative**: *eq, ne, isnull* **healthy**: *isnull* **status**: *eq, in, co, ge, gt, le, lt, ne, isnull, sw* **connectionType**: *eq, co, ge, gt, in, le, lt, ne, isnull, sw* **connectorName**: *eq, co, ge, gt, in, ne, isnull, sw* + * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **type, created, modified, name, owner.name, healthy, status, id, description, owner.id, accountCorrelationConfig.id, accountCorrelationConfig.name, managerCorrelationRule.type, managerCorrelationRule.id, managerCorrelationRule.name, authoritative, managementWorkgroup.id, connectorName, connectionType** + * @param {string} [forSubadmin] Filter the returned list of sources for the identity specified by the parameter, which is the id of an identity with the role SOURCE_SUBADMIN. By convention, the value **me** indicates the identity id of the current user. Subadmins may only view Sources which they are able to administer; all other Sources will be filtered out when this parameter is set. If the current user is a SOURCE_SUBADMIN but fails to pass a valid value for this parameter, a 403 Forbidden is returned. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + listSources: function (limit, offset, count, filters, sorters, forSubadmin, axiosOptions) { + return localVarFp.listSources(limit, offset, count, filters, sorters, forSubadmin, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This end-point updates the provisioning policy with the specified usage on the specified source in IdentityNow. Transforms can be used in the provisioning policy to create a new attribute that you only need during provisioning. Refer to [Transforms in Provisioning Policies](https://developer.sailpoint.com/idn/docs/transforms/guides/transforms-in-provisioning-policies) for more information. A token with API, ORG_ADMIN, SOURCE_ADMIN, or SOURCE_SUBADMIN authority is required to call this API. + * @summary Update Provisioning Policy by UsageType + * @param {string} sourceId The Source ID. + * @param {UsageType} usageType The type of provisioning policy usage. In IdentityNow, a source can support various provisioning operations. For example, when a joiner is added to a source, this may trigger both CREATE and UPDATE provisioning operations. Each usage type is considered a provisioning policy. A source can have any number of these provisioning policies defined. These are the common usage types: CREATE - This usage type relates to \'Create Account Profile\', the provisioning template for the account to be created. For example, this would be used for a joiner on a source. UPDATE - This usage type relates to \'Update Account Profile\', the provisioning template for the \'Update\' connector operations. For example, this would be used for an attribute sync on a source. ENABLE - This usage type relates to \'Enable Account Profile\', the provisioning template for the account to be enabled. For example, this could be used for a joiner on a source once the joiner\'s account is created. DISABLE - This usage type relates to \'Disable Account Profile\', the provisioning template for the account to be disabled. For example, this could be used when a leaver is removed temporarily from a source. You can use these four usage types for all your provisioning policy needs. + * @param {ProvisioningPolicyDto} provisioningPolicyDto + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + putProvisioningPolicy: function (sourceId, usageType, provisioningPolicyDto, axiosOptions) { + return localVarFp.putProvisioningPolicy(sourceId, usageType, provisioningPolicyDto, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This API updates a source in IdentityNow, using a full object representation. In other words, the existing Source configuration is completely replaced. Some fields are immutable and cannot be changed, such as: * id * type * authoritative * connector * connectorClass * passwordPolicies Attempts to modify these fields will result in a 400 error. A token with ORG_ADMIN, SOURCE_ADMIN, or SOURCE_SUBADMIN authority is required to call this API. + * @summary Update Source (Full) + * @param {string} id The Source id + * @param {Source} source + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + putSource: function (id, source, axiosOptions) { + return localVarFp.putSource(id, source, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This API will completely replace an existing Schema with the submitted payload. Some fields of the Schema cannot be updated. These fields are listed below. * id * name * created * modified Any attempt to modify these fields will result in an error response with a status code of 400. > `id` must remain in the request body, but it cannot be changed. If `id` is omitted from the request body, the result will be a 400 error. + * @summary Update Source Schema (Full) + * @param {string} sourceId The Source id. + * @param {string} schemaId The Schema id. + * @param {Schema} schema + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + putSourceSchema: function (sourceId, schemaId, schema, axiosOptions) { + return localVarFp.putSourceSchema(sourceId, schemaId, schema, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This end-point updates a list of provisioning policies on the specified source in IdentityNow. A token with API, or ORG_ADMIN authority is required to call this API. + * @summary Bulk Update Provisioning Policies + * @param {string} sourceId The Source id. + * @param {Array} provisioningPolicyDto + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + updateProvisioningPoliciesInBulk: function (sourceId, provisioningPolicyDto, axiosOptions) { + return localVarFp.updateProvisioningPoliciesInBulk(sourceId, provisioningPolicyDto, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This API selectively updates an existing Provisioning Policy using a JSONPatch payload. Transforms can be used in the provisioning policy to create a new attribute that you only need during provisioning. Refer to [Transforms in Provisioning Policies](https://developer.sailpoint.com/idn/docs/transforms/guides/transforms-in-provisioning-policies) for more information. A token with API, ORG_ADMIN, SOURCE_ADMIN, or SOURCE_SUBADMIN authority is required to call this API. + * @summary Partial update of Provisioning Policy + * @param {string} sourceId The Source id. + * @param {UsageType} usageType The type of provisioning policy usage. In IdentityNow, a source can support various provisioning operations. For example, when a joiner is added to a source, this may trigger both CREATE and UPDATE provisioning operations. Each usage type is considered a provisioning policy. A source can have any number of these provisioning policies defined. These are the common usage types: CREATE - This usage type relates to \'Create Account Profile\', the provisioning template for the account to be created. For example, this would be used for a joiner on a source. UPDATE - This usage type relates to \'Update Account Profile\', the provisioning template for the \'Update\' connector operations. For example, this would be used for an attribute sync on a source. ENABLE - This usage type relates to \'Enable Account Profile\', the provisioning template for the account to be enabled. For example, this could be used for a joiner on a source once the joiner\'s account is created. DISABLE - This usage type relates to \'Disable Account Profile\', the provisioning template for the account to be disabled. For example, this could be used when a leaver is removed temporarily from a source. You can use these four usage types for all your provisioning policy needs. + * @param {Array} jsonPatchOperation The JSONPatch payload used to update the schema. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + updateProvisioningPolicy: function (sourceId, usageType, jsonPatchOperation, axiosOptions) { + return localVarFp.updateProvisioningPolicy(sourceId, usageType, jsonPatchOperation, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This API partially updates a source in IdentityNow, using a list of patch operations according to the [JSON Patch](https://tools.ietf.org/html/rfc6902) standard. Some fields are immutable and cannot be changed, such as: * id * type * authoritative * created * modified * connector * connectorClass * passwordPolicies Attempts to modify these fields will result in a 400 error. A token with ORG_ADMIN, SOURCE_ADMIN, SOURCE_SUBADMIN, or API authority is required to call this API. + * @summary Update Source (Partial) + * @param {string} id The Source id + * @param {Array} jsonPatchOperation A list of account update operations according to the [JSON Patch](https://tools.ietf.org/html/rfc6902) standard. Any password changes are submitted as plain-text and encrypted upon receipt in IdentityNow. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + updateSource: function (id, jsonPatchOperation, axiosOptions) { + return localVarFp.updateSource(id, jsonPatchOperation, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * Use this API to selectively update an existing Schema using a JSONPatch payload. The following schema fields are immutable and cannot be updated: - id - name - created - modified To switch an account attribute to a group entitlement, you need to have the following in place: - `isEntitlement: true` - Must define a schema for the group and [add it to the source](https://developer.sailpoint.com/idn/api/v3/create-source-schema) before updating the `isGroup` flag. For example, here is the `group` account attribute referencing a schema that defines the group: ```json { \"name\": \"groups\", \"type\": \"STRING\", \"schema\": { \"type\": \"CONNECTOR_SCHEMA\", \"id\": \"2c9180887671ff8c01767b4671fc7d60\", \"name\": \"group\" }, \"description\": \"The groups, roles etc. that reference account group objects\", \"isMulti\": true, \"isEntitlement\": true, \"isGroup\": true } ``` + * @summary Update Source Schema (Partial) + * @param {string} sourceId The Source id. + * @param {string} schemaId The Schema id. + * @param {Array} jsonPatchOperation The JSONPatch payload used to update the schema. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + updateSourceSchema: function (sourceId, schemaId, jsonPatchOperation, axiosOptions) { + return localVarFp.updateSourceSchema(sourceId, schemaId, jsonPatchOperation, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + }; + }; + exports.SourcesApiFactory = SourcesApiFactory; + /** + * SourcesApi - object-oriented interface + * @export + * @class SourcesApi + * @extends {BaseAPI} + */ + var SourcesApi = /** @class */ (function (_super) { + __extends(SourcesApi, _super); + function SourcesApi() { + return _super !== null && _super.apply(this, arguments) || this; + } + /** + * This API generates a create policy/template based on field value transforms. This API is intended for use when setting up JDBC Provisioning type sources, but it will also work on other source types. Transforms can be used in the provisioning policy to create a new attribute that you only need during provisioning. Refer to [Transforms in Provisioning Policies](https://developer.sailpoint.com/idn/docs/transforms/guides/transforms-in-provisioning-policies) for more information. A token with ORG_ADMIN authority is required to call this API. + * @summary Create Provisioning Policy + * @param {SourcesApiCreateProvisioningPolicyRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof SourcesApi + */ + SourcesApi.prototype.createProvisioningPolicy = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.SourcesApiFp)(this.configuration).createProvisioningPolicy(requestParameters.sourceId, requestParameters.provisioningPolicyDto, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This creates a specific source with a full source JSON representation. Any passwords are submitted as plain-text and encrypted upon receipt in IdentityNow. A token with ORG_ADMIN, SOURCE_ADMIN, or SOURCE_SUBADMIN authority is required to call this API. + * @summary Creates a source in IdentityNow. + * @param {SourcesApiCreateSourceRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof SourcesApi + */ + SourcesApi.prototype.createSource = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.SourcesApiFp)(this.configuration).createSource(requestParameters.source, requestParameters.provisionAsCsv, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * Creates a new Schema on the specified Source in IdentityNow. + * @summary Create Schema on a Source + * @param {SourcesApiCreateSourceSchemaRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof SourcesApi + */ + SourcesApi.prototype.createSourceSchema = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.SourcesApiFp)(this.configuration).createSourceSchema(requestParameters.sourceId, requestParameters.schema, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * Deletes the provisioning policy with the specified usage on an application. A token with API, or ORG_ADMIN authority is required to call this API. + * @summary Delete Provisioning Policy by UsageType + * @param {SourcesApiDeleteProvisioningPolicyRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof SourcesApi + */ + SourcesApi.prototype.deleteProvisioningPolicy = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.SourcesApiFp)(this.configuration).deleteProvisioningPolicy(requestParameters.sourceId, requestParameters.usageType, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This end-point deletes a specific source in IdentityNow. A token with ORG_ADMIN, SOURCE_ADMIN, or SOURCE_SUBADMIN authority is required to call this API. All of accounts on the source will be removed first, then the source will be deleted. Actual status of task execution can be retrieved via method GET `/task-status/{id}` + * @summary Delete Source by ID + * @param {SourcesApiDeleteSourceRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof SourcesApi + */ + SourcesApi.prototype.deleteSource = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.SourcesApiFp)(this.configuration).deleteSource(requestParameters.id, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * + * @summary Delete Source Schema by ID + * @param {SourcesApiDeleteSourceSchemaRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof SourcesApi + */ + SourcesApi.prototype.deleteSourceSchema = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.SourcesApiFp)(this.configuration).deleteSourceSchema(requestParameters.sourceId, requestParameters.schemaId, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This API downloads the CSV schema that defines the account attributes on a source. >**NOTE: This API is designated only for Delimited File sources.** + * @summary Downloads source accounts schema template + * @param {SourcesApiGetAccountsSchemaRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof SourcesApi + */ + SourcesApi.prototype.getAccountsSchema = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.SourcesApiFp)(this.configuration).getAccountsSchema(requestParameters.id, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This API downloads the CSV schema that defines the entitlement attributes on a source. >**NOTE: This API is designated only for Delimited File sources.** + * @summary Downloads source entitlements schema template + * @param {SourcesApiGetEntitlementsSchemaRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof SourcesApi + */ + SourcesApi.prototype.getEntitlementsSchema = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.SourcesApiFp)(this.configuration).getEntitlementsSchema(requestParameters.id, requestParameters.schemaName, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This end-point retrieves the ProvisioningPolicy with the specified usage on the specified Source in IdentityNow. A token with API, ORG_ADMIN, SOURCE_ADMIN, or SOURCE_SUBADMIN authority is required to call this API. + * @summary Get Provisioning Policy by UsageType + * @param {SourcesApiGetProvisioningPolicyRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof SourcesApi + */ + SourcesApi.prototype.getProvisioningPolicy = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.SourcesApiFp)(this.configuration).getProvisioningPolicy(requestParameters.sourceId, requestParameters.usageType, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This end-point gets a specific source in IdentityNow. A token with ORG_ADMIN, SOURCE_ADMIN, or SOURCE_SUBADMIN authority is required to call this API. + * @summary Get Source by ID + * @param {SourcesApiGetSourceRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof SourcesApi + */ + SourcesApi.prototype.getSource = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.SourcesApiFp)(this.configuration).getSource(requestParameters.id, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This endpoint fetches source health by source\'s id + * @summary Fetches source health by id + * @param {SourcesApiGetSourceHealthRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof SourcesApi + */ + SourcesApi.prototype.getSourceHealth = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.SourcesApiFp)(this.configuration).getSourceHealth(requestParameters.sourceId, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * Get the Source Schema by ID in IdentityNow. + * @summary Get Source Schema by ID + * @param {SourcesApiGetSourceSchemaRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof SourcesApi + */ + SourcesApi.prototype.getSourceSchema = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.SourcesApiFp)(this.configuration).getSourceSchema(requestParameters.sourceId, requestParameters.schemaId, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This API uploads a source schema template file to configure a source\'s account attributes. To retrieve the file to modify and upload, log into Identity Now. Click **Admin** -> **Connections** -> **Sources** -> **`{SourceName}`** -> **Import Data** -> **Account Schema** -> **Options** -> **Download Schema** >**NOTE: This API is designated only for Delimited File sources.** + * @summary Uploads source accounts schema template + * @param {SourcesApiImportAccountsSchemaRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof SourcesApi + */ + SourcesApi.prototype.importAccountsSchema = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.SourcesApiFp)(this.configuration).importAccountsSchema(requestParameters.id, requestParameters.file, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This uploads a supplemental source connector file (like jdbc driver jars) to a source\'s S3 bucket. This also sends ETS and Audit events. A token with ORG_ADMIN authority is required to call this API. + * @summary Upload connector file to source + * @param {SourcesApiImportConnectorFileRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof SourcesApi + */ + SourcesApi.prototype.importConnectorFile = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.SourcesApiFp)(this.configuration).importConnectorFile(requestParameters.sourceId, requestParameters.file, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This API uploads a source schema template file to configure a source\'s entitlement attributes. To retrieve the file to modify and upload, log into Identity Now. Click **Admin** -> **Connections** -> **Sources** -> **`{SourceName}`** -> **Import Data** -> **Import Entitlements** -> **Download** >**NOTE: This API is designated only for Delimited File sources.** + * @summary Uploads source entitlements schema template + * @param {SourcesApiImportEntitlementsSchemaRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof SourcesApi + */ + SourcesApi.prototype.importEntitlementsSchema = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.SourcesApiFp)(this.configuration).importEntitlementsSchema(requestParameters.id, requestParameters.schemaName, requestParameters.file, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This end-point lists all the ProvisioningPolicies in IdentityNow. A token with API, or ORG_ADMIN authority is required to call this API. + * @summary Lists ProvisioningPolicies + * @param {SourcesApiListProvisioningPoliciesRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof SourcesApi + */ + SourcesApi.prototype.listProvisioningPolicies = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.SourcesApiFp)(this.configuration).listProvisioningPolicies(requestParameters.sourceId, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * Lists the Schemas that exist on the specified Source in IdentityNow. + * @summary List Schemas on a Source + * @param {SourcesApiListSourceSchemasRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof SourcesApi + */ + SourcesApi.prototype.listSourceSchemas = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.SourcesApiFp)(this.configuration).listSourceSchemas(requestParameters.sourceId, requestParameters.includeTypes, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This end-point lists all the sources in IdentityNow. A token with ORG_ADMIN, SOURCE_ADMIN, SOURCE_SUBADMIN, or ROLE_SUBADMIN authority is required to call this API. + * @summary Lists all sources in IdentityNow. + * @param {SourcesApiListSourcesRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof SourcesApi + */ + SourcesApi.prototype.listSources = function (requestParameters, axiosOptions) { + var _this = this; + if (requestParameters === void 0) { requestParameters = {}; } + return (0, exports.SourcesApiFp)(this.configuration).listSources(requestParameters.limit, requestParameters.offset, requestParameters.count, requestParameters.filters, requestParameters.sorters, requestParameters.forSubadmin, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This end-point updates the provisioning policy with the specified usage on the specified source in IdentityNow. Transforms can be used in the provisioning policy to create a new attribute that you only need during provisioning. Refer to [Transforms in Provisioning Policies](https://developer.sailpoint.com/idn/docs/transforms/guides/transforms-in-provisioning-policies) for more information. A token with API, ORG_ADMIN, SOURCE_ADMIN, or SOURCE_SUBADMIN authority is required to call this API. + * @summary Update Provisioning Policy by UsageType + * @param {SourcesApiPutProvisioningPolicyRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof SourcesApi + */ + SourcesApi.prototype.putProvisioningPolicy = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.SourcesApiFp)(this.configuration).putProvisioningPolicy(requestParameters.sourceId, requestParameters.usageType, requestParameters.provisioningPolicyDto, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This API updates a source in IdentityNow, using a full object representation. In other words, the existing Source configuration is completely replaced. Some fields are immutable and cannot be changed, such as: * id * type * authoritative * connector * connectorClass * passwordPolicies Attempts to modify these fields will result in a 400 error. A token with ORG_ADMIN, SOURCE_ADMIN, or SOURCE_SUBADMIN authority is required to call this API. + * @summary Update Source (Full) + * @param {SourcesApiPutSourceRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof SourcesApi + */ + SourcesApi.prototype.putSource = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.SourcesApiFp)(this.configuration).putSource(requestParameters.id, requestParameters.source, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This API will completely replace an existing Schema with the submitted payload. Some fields of the Schema cannot be updated. These fields are listed below. * id * name * created * modified Any attempt to modify these fields will result in an error response with a status code of 400. > `id` must remain in the request body, but it cannot be changed. If `id` is omitted from the request body, the result will be a 400 error. + * @summary Update Source Schema (Full) + * @param {SourcesApiPutSourceSchemaRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof SourcesApi + */ + SourcesApi.prototype.putSourceSchema = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.SourcesApiFp)(this.configuration).putSourceSchema(requestParameters.sourceId, requestParameters.schemaId, requestParameters.schema, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This end-point updates a list of provisioning policies on the specified source in IdentityNow. A token with API, or ORG_ADMIN authority is required to call this API. + * @summary Bulk Update Provisioning Policies + * @param {SourcesApiUpdateProvisioningPoliciesInBulkRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof SourcesApi + */ + SourcesApi.prototype.updateProvisioningPoliciesInBulk = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.SourcesApiFp)(this.configuration).updateProvisioningPoliciesInBulk(requestParameters.sourceId, requestParameters.provisioningPolicyDto, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This API selectively updates an existing Provisioning Policy using a JSONPatch payload. Transforms can be used in the provisioning policy to create a new attribute that you only need during provisioning. Refer to [Transforms in Provisioning Policies](https://developer.sailpoint.com/idn/docs/transforms/guides/transforms-in-provisioning-policies) for more information. A token with API, ORG_ADMIN, SOURCE_ADMIN, or SOURCE_SUBADMIN authority is required to call this API. + * @summary Partial update of Provisioning Policy + * @param {SourcesApiUpdateProvisioningPolicyRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof SourcesApi + */ + SourcesApi.prototype.updateProvisioningPolicy = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.SourcesApiFp)(this.configuration).updateProvisioningPolicy(requestParameters.sourceId, requestParameters.usageType, requestParameters.jsonPatchOperation, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This API partially updates a source in IdentityNow, using a list of patch operations according to the [JSON Patch](https://tools.ietf.org/html/rfc6902) standard. Some fields are immutable and cannot be changed, such as: * id * type * authoritative * created * modified * connector * connectorClass * passwordPolicies Attempts to modify these fields will result in a 400 error. A token with ORG_ADMIN, SOURCE_ADMIN, SOURCE_SUBADMIN, or API authority is required to call this API. + * @summary Update Source (Partial) + * @param {SourcesApiUpdateSourceRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof SourcesApi + */ + SourcesApi.prototype.updateSource = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.SourcesApiFp)(this.configuration).updateSource(requestParameters.id, requestParameters.jsonPatchOperation, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * Use this API to selectively update an existing Schema using a JSONPatch payload. The following schema fields are immutable and cannot be updated: - id - name - created - modified To switch an account attribute to a group entitlement, you need to have the following in place: - `isEntitlement: true` - Must define a schema for the group and [add it to the source](https://developer.sailpoint.com/idn/api/v3/create-source-schema) before updating the `isGroup` flag. For example, here is the `group` account attribute referencing a schema that defines the group: ```json { \"name\": \"groups\", \"type\": \"STRING\", \"schema\": { \"type\": \"CONNECTOR_SCHEMA\", \"id\": \"2c9180887671ff8c01767b4671fc7d60\", \"name\": \"group\" }, \"description\": \"The groups, roles etc. that reference account group objects\", \"isMulti\": true, \"isEntitlement\": true, \"isGroup\": true } ``` + * @summary Update Source Schema (Partial) + * @param {SourcesApiUpdateSourceSchemaRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof SourcesApi + */ + SourcesApi.prototype.updateSourceSchema = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.SourcesApiFp)(this.configuration).updateSourceSchema(requestParameters.sourceId, requestParameters.schemaId, requestParameters.jsonPatchOperation, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + return SourcesApi; + }(base_1.BaseAPI)); + exports.SourcesApi = SourcesApi; + /** + * TaggedObjectsApi - axios parameter creator + * @export + */ + var TaggedObjectsApiAxiosParamCreator = function (configuration) { + var _this = this; + return { + /** + * This deletes a tagged object for the specified type. + * @summary Delete Tagged Object + * @param {'ACCESS_PROFILE' | 'APPLICATION' | 'CAMPAIGN' | 'ENTITLEMENT' | 'IDENTITY' | 'ROLE' | 'SOD_POLICY' | 'SOURCE'} type The type of tagged object to delete. + * @param {string} id The ID of the object reference to delete. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + deleteTaggedObject: function (type, id, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'type' is not null or undefined + (0, common_1.assertParamExists)('deleteTaggedObject', 'type', type); + // verify required parameter 'id' is not null or undefined + (0, common_1.assertParamExists)('deleteTaggedObject', 'id', id); + localVarPath = "/tagged-objects/{type}/{id}" + .replace("{".concat("type", "}"), encodeURIComponent(String(type))) + .replace("{".concat("id", "}"), encodeURIComponent(String(id))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'DELETE' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This API removes tags from multiple objects. A token with API, CERT_ADMIN, ORG_ADMIN, REPORT_ADMIN, ROLE_ADMIN, ROLE_SUBADMIN, SOURCE_ADMIN, or SOURCE_SUBADMIN authority is required to call this API. + * @summary Remove Tags from Multiple Objects + * @param {BulkTaggedObject} bulkTaggedObject Supported object types are ACCESS_PROFILE, APPLICATION, CAMPAIGN, ENTITLEMENT, IDENTITY, ROLE, SOD_POLICY, SOURCE. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + deleteTagsToManyObject: function (bulkTaggedObject, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'bulkTaggedObject' is not null or undefined + (0, common_1.assertParamExists)('deleteTagsToManyObject', 'bulkTaggedObject', bulkTaggedObject); + localVarPath = "/tagged-objects/bulk-remove"; + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + localVarHeaderParameter['Content-Type'] = 'application/json'; + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(bulkTaggedObject, localVarRequestOptions, configuration); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This gets a tagged object for the specified type. + * @summary Get Tagged Object + * @param {'ACCESS_PROFILE' | 'APPLICATION' | 'CAMPAIGN' | 'ENTITLEMENT' | 'IDENTITY' | 'ROLE' | 'SOD_POLICY' | 'SOURCE'} type The type of tagged object to retrieve. + * @param {string} id The ID of the object reference to retrieve. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getTaggedObject: function (type, id, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'type' is not null or undefined + (0, common_1.assertParamExists)('getTaggedObject', 'type', type); + // verify required parameter 'id' is not null or undefined + (0, common_1.assertParamExists)('getTaggedObject', 'id', id); + localVarPath = "/tagged-objects/{type}/{id}" + .replace("{".concat("type", "}"), encodeURIComponent(String(type))) + .replace("{".concat("id", "}"), encodeURIComponent(String(id))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This API returns a list of all tagged objects. Any authenticated token may be used to call this API. + * @summary List Tagged Objects + * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **objectRef.id**: *eq, in* **objectRef.type**: *eq, in* **tagName**: *eq, in* + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + listTaggedObjects: function (limit, offset, count, filters, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + localVarPath = "/tagged-objects"; + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + if (limit !== undefined) { + localVarQueryParameter['limit'] = limit; + } + if (offset !== undefined) { + localVarQueryParameter['offset'] = offset; + } + if (count !== undefined) { + localVarQueryParameter['count'] = count; + } + if (filters !== undefined) { + localVarQueryParameter['filters'] = filters; + } + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This API returns a list of all tagged objects by type. Any authenticated token may be used to call this API. + * @summary List Tagged Objects + * @param {'ROLE' | 'IDENTITY' | 'SOD_POLICY'} type The type of tagged object to retrieve. + * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **objectRef.id**: *eq* **objectRef.type**: *eq* + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + listTaggedObjectsByType: function (type, limit, offset, count, filters, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'type' is not null or undefined + (0, common_1.assertParamExists)('listTaggedObjectsByType', 'type', type); + localVarPath = "/tagged-objects/{type}" + .replace("{".concat("type", "}"), encodeURIComponent(String(type))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + if (limit !== undefined) { + localVarQueryParameter['limit'] = limit; + } + if (offset !== undefined) { + localVarQueryParameter['offset'] = offset; + } + if (count !== undefined) { + localVarQueryParameter['count'] = count; + } + if (filters !== undefined) { + localVarQueryParameter['filters'] = filters; + } + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This updates a tagged object for the specified type. + * @summary Update Tagged Object + * @param {'ACCESS_PROFILE' | 'APPLICATION' | 'CAMPAIGN' | 'ENTITLEMENT' | 'IDENTITY' | 'ROLE' | 'SOD_POLICY' | 'SOURCE'} type The type of tagged object to update. + * @param {string} id The ID of the object reference to update. + * @param {TaggedObject} taggedObject + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + putTaggedObject: function (type, id, taggedObject, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'type' is not null or undefined + (0, common_1.assertParamExists)('putTaggedObject', 'type', type); + // verify required parameter 'id' is not null or undefined + (0, common_1.assertParamExists)('putTaggedObject', 'id', id); + // verify required parameter 'taggedObject' is not null or undefined + (0, common_1.assertParamExists)('putTaggedObject', 'taggedObject', taggedObject); + localVarPath = "/tagged-objects/{type}/{id}" + .replace("{".concat("type", "}"), encodeURIComponent(String(type))) + .replace("{".concat("id", "}"), encodeURIComponent(String(id))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'PUT' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + localVarHeaderParameter['Content-Type'] = 'application/json'; + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(taggedObject, localVarRequestOptions, configuration); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This adds a tag to an object. Any authenticated token may be used to call this API. + * @summary Add Tag to Object + * @param {TaggedObject} taggedObject + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + setTagToObject: function (taggedObject, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'taggedObject' is not null or undefined + (0, common_1.assertParamExists)('setTagToObject', 'taggedObject', taggedObject); + localVarPath = "/tagged-objects"; + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + localVarHeaderParameter['Content-Type'] = 'application/json'; + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(taggedObject, localVarRequestOptions, configuration); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This API adds tags to multiple objects. A token with API, CERT_ADMIN, ORG_ADMIN, REPORT_ADMIN, ROLE_ADMIN, ROLE_SUBADMIN, SOURCE_ADMIN, or SOURCE_SUBADMIN authority is required to call this API. + * @summary Tag Multiple Objects + * @param {BulkTaggedObject} bulkTaggedObject Supported object types are ACCESS_PROFILE, APPLICATION, CAMPAIGN, ENTITLEMENT, IDENTITY, ROLE, SOD_POLICY, SOURCE. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + setTagsToManyObjects: function (bulkTaggedObject, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'bulkTaggedObject' is not null or undefined + (0, common_1.assertParamExists)('setTagsToManyObjects', 'bulkTaggedObject', bulkTaggedObject); + localVarPath = "/tagged-objects/bulk-add"; + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + localVarHeaderParameter['Content-Type'] = 'application/json'; + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(bulkTaggedObject, localVarRequestOptions, configuration); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + }; + }; + exports.TaggedObjectsApiAxiosParamCreator = TaggedObjectsApiAxiosParamCreator; + /** + * TaggedObjectsApi - functional programming interface + * @export + */ + var TaggedObjectsApiFp = function (configuration) { + var localVarAxiosParamCreator = (0, exports.TaggedObjectsApiAxiosParamCreator)(configuration); + return { + /** + * This deletes a tagged object for the specified type. + * @summary Delete Tagged Object + * @param {'ACCESS_PROFILE' | 'APPLICATION' | 'CAMPAIGN' | 'ENTITLEMENT' | 'IDENTITY' | 'ROLE' | 'SOD_POLICY' | 'SOURCE'} type The type of tagged object to delete. + * @param {string} id The ID of the object reference to delete. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + deleteTaggedObject: function (type, id, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.deleteTaggedObject(type, id, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This API removes tags from multiple objects. A token with API, CERT_ADMIN, ORG_ADMIN, REPORT_ADMIN, ROLE_ADMIN, ROLE_SUBADMIN, SOURCE_ADMIN, or SOURCE_SUBADMIN authority is required to call this API. + * @summary Remove Tags from Multiple Objects + * @param {BulkTaggedObject} bulkTaggedObject Supported object types are ACCESS_PROFILE, APPLICATION, CAMPAIGN, ENTITLEMENT, IDENTITY, ROLE, SOD_POLICY, SOURCE. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + deleteTagsToManyObject: function (bulkTaggedObject, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.deleteTagsToManyObject(bulkTaggedObject, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This gets a tagged object for the specified type. + * @summary Get Tagged Object + * @param {'ACCESS_PROFILE' | 'APPLICATION' | 'CAMPAIGN' | 'ENTITLEMENT' | 'IDENTITY' | 'ROLE' | 'SOD_POLICY' | 'SOURCE'} type The type of tagged object to retrieve. + * @param {string} id The ID of the object reference to retrieve. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getTaggedObject: function (type, id, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.getTaggedObject(type, id, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This API returns a list of all tagged objects. Any authenticated token may be used to call this API. + * @summary List Tagged Objects + * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **objectRef.id**: *eq, in* **objectRef.type**: *eq, in* **tagName**: *eq, in* + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + listTaggedObjects: function (limit, offset, count, filters, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.listTaggedObjects(limit, offset, count, filters, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This API returns a list of all tagged objects by type. Any authenticated token may be used to call this API. + * @summary List Tagged Objects + * @param {'ROLE' | 'IDENTITY' | 'SOD_POLICY'} type The type of tagged object to retrieve. + * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **objectRef.id**: *eq* **objectRef.type**: *eq* + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + listTaggedObjectsByType: function (type, limit, offset, count, filters, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.listTaggedObjectsByType(type, limit, offset, count, filters, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This updates a tagged object for the specified type. + * @summary Update Tagged Object + * @param {'ACCESS_PROFILE' | 'APPLICATION' | 'CAMPAIGN' | 'ENTITLEMENT' | 'IDENTITY' | 'ROLE' | 'SOD_POLICY' | 'SOURCE'} type The type of tagged object to update. + * @param {string} id The ID of the object reference to update. + * @param {TaggedObject} taggedObject + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + putTaggedObject: function (type, id, taggedObject, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.putTaggedObject(type, id, taggedObject, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This adds a tag to an object. Any authenticated token may be used to call this API. + * @summary Add Tag to Object + * @param {TaggedObject} taggedObject + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + setTagToObject: function (taggedObject, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.setTagToObject(taggedObject, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This API adds tags to multiple objects. A token with API, CERT_ADMIN, ORG_ADMIN, REPORT_ADMIN, ROLE_ADMIN, ROLE_SUBADMIN, SOURCE_ADMIN, or SOURCE_SUBADMIN authority is required to call this API. + * @summary Tag Multiple Objects + * @param {BulkTaggedObject} bulkTaggedObject Supported object types are ACCESS_PROFILE, APPLICATION, CAMPAIGN, ENTITLEMENT, IDENTITY, ROLE, SOD_POLICY, SOURCE. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + setTagsToManyObjects: function (bulkTaggedObject, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.setTagsToManyObjects(bulkTaggedObject, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + }; + }; + exports.TaggedObjectsApiFp = TaggedObjectsApiFp; + /** + * TaggedObjectsApi - factory interface + * @export + */ + var TaggedObjectsApiFactory = function (configuration, basePath, axios) { + var localVarFp = (0, exports.TaggedObjectsApiFp)(configuration); + return { + /** + * This deletes a tagged object for the specified type. + * @summary Delete Tagged Object + * @param {'ACCESS_PROFILE' | 'APPLICATION' | 'CAMPAIGN' | 'ENTITLEMENT' | 'IDENTITY' | 'ROLE' | 'SOD_POLICY' | 'SOURCE'} type The type of tagged object to delete. + * @param {string} id The ID of the object reference to delete. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + deleteTaggedObject: function (type, id, axiosOptions) { + return localVarFp.deleteTaggedObject(type, id, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This API removes tags from multiple objects. A token with API, CERT_ADMIN, ORG_ADMIN, REPORT_ADMIN, ROLE_ADMIN, ROLE_SUBADMIN, SOURCE_ADMIN, or SOURCE_SUBADMIN authority is required to call this API. + * @summary Remove Tags from Multiple Objects + * @param {BulkTaggedObject} bulkTaggedObject Supported object types are ACCESS_PROFILE, APPLICATION, CAMPAIGN, ENTITLEMENT, IDENTITY, ROLE, SOD_POLICY, SOURCE. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + deleteTagsToManyObject: function (bulkTaggedObject, axiosOptions) { + return localVarFp.deleteTagsToManyObject(bulkTaggedObject, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This gets a tagged object for the specified type. + * @summary Get Tagged Object + * @param {'ACCESS_PROFILE' | 'APPLICATION' | 'CAMPAIGN' | 'ENTITLEMENT' | 'IDENTITY' | 'ROLE' | 'SOD_POLICY' | 'SOURCE'} type The type of tagged object to retrieve. + * @param {string} id The ID of the object reference to retrieve. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getTaggedObject: function (type, id, axiosOptions) { + return localVarFp.getTaggedObject(type, id, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This API returns a list of all tagged objects. Any authenticated token may be used to call this API. + * @summary List Tagged Objects + * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **objectRef.id**: *eq, in* **objectRef.type**: *eq, in* **tagName**: *eq, in* + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + listTaggedObjects: function (limit, offset, count, filters, axiosOptions) { + return localVarFp.listTaggedObjects(limit, offset, count, filters, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This API returns a list of all tagged objects by type. Any authenticated token may be used to call this API. + * @summary List Tagged Objects + * @param {'ROLE' | 'IDENTITY' | 'SOD_POLICY'} type The type of tagged object to retrieve. + * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **objectRef.id**: *eq* **objectRef.type**: *eq* + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + listTaggedObjectsByType: function (type, limit, offset, count, filters, axiosOptions) { + return localVarFp.listTaggedObjectsByType(type, limit, offset, count, filters, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This updates a tagged object for the specified type. + * @summary Update Tagged Object + * @param {'ACCESS_PROFILE' | 'APPLICATION' | 'CAMPAIGN' | 'ENTITLEMENT' | 'IDENTITY' | 'ROLE' | 'SOD_POLICY' | 'SOURCE'} type The type of tagged object to update. + * @param {string} id The ID of the object reference to update. + * @param {TaggedObject} taggedObject + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + putTaggedObject: function (type, id, taggedObject, axiosOptions) { + return localVarFp.putTaggedObject(type, id, taggedObject, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This adds a tag to an object. Any authenticated token may be used to call this API. + * @summary Add Tag to Object + * @param {TaggedObject} taggedObject + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + setTagToObject: function (taggedObject, axiosOptions) { + return localVarFp.setTagToObject(taggedObject, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This API adds tags to multiple objects. A token with API, CERT_ADMIN, ORG_ADMIN, REPORT_ADMIN, ROLE_ADMIN, ROLE_SUBADMIN, SOURCE_ADMIN, or SOURCE_SUBADMIN authority is required to call this API. + * @summary Tag Multiple Objects + * @param {BulkTaggedObject} bulkTaggedObject Supported object types are ACCESS_PROFILE, APPLICATION, CAMPAIGN, ENTITLEMENT, IDENTITY, ROLE, SOD_POLICY, SOURCE. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + setTagsToManyObjects: function (bulkTaggedObject, axiosOptions) { + return localVarFp.setTagsToManyObjects(bulkTaggedObject, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + }; + }; + exports.TaggedObjectsApiFactory = TaggedObjectsApiFactory; + /** + * TaggedObjectsApi - object-oriented interface + * @export + * @class TaggedObjectsApi + * @extends {BaseAPI} + */ + var TaggedObjectsApi = /** @class */ (function (_super) { + __extends(TaggedObjectsApi, _super); + function TaggedObjectsApi() { + return _super !== null && _super.apply(this, arguments) || this; + } + /** + * This deletes a tagged object for the specified type. + * @summary Delete Tagged Object + * @param {TaggedObjectsApiDeleteTaggedObjectRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof TaggedObjectsApi + */ + TaggedObjectsApi.prototype.deleteTaggedObject = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.TaggedObjectsApiFp)(this.configuration).deleteTaggedObject(requestParameters.type, requestParameters.id, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This API removes tags from multiple objects. A token with API, CERT_ADMIN, ORG_ADMIN, REPORT_ADMIN, ROLE_ADMIN, ROLE_SUBADMIN, SOURCE_ADMIN, or SOURCE_SUBADMIN authority is required to call this API. + * @summary Remove Tags from Multiple Objects + * @param {TaggedObjectsApiDeleteTagsToManyObjectRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof TaggedObjectsApi + */ + TaggedObjectsApi.prototype.deleteTagsToManyObject = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.TaggedObjectsApiFp)(this.configuration).deleteTagsToManyObject(requestParameters.bulkTaggedObject, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This gets a tagged object for the specified type. + * @summary Get Tagged Object + * @param {TaggedObjectsApiGetTaggedObjectRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof TaggedObjectsApi + */ + TaggedObjectsApi.prototype.getTaggedObject = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.TaggedObjectsApiFp)(this.configuration).getTaggedObject(requestParameters.type, requestParameters.id, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This API returns a list of all tagged objects. Any authenticated token may be used to call this API. + * @summary List Tagged Objects + * @param {TaggedObjectsApiListTaggedObjectsRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof TaggedObjectsApi + */ + TaggedObjectsApi.prototype.listTaggedObjects = function (requestParameters, axiosOptions) { + var _this = this; + if (requestParameters === void 0) { requestParameters = {}; } + return (0, exports.TaggedObjectsApiFp)(this.configuration).listTaggedObjects(requestParameters.limit, requestParameters.offset, requestParameters.count, requestParameters.filters, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This API returns a list of all tagged objects by type. Any authenticated token may be used to call this API. + * @summary List Tagged Objects + * @param {TaggedObjectsApiListTaggedObjectsByTypeRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof TaggedObjectsApi + */ + TaggedObjectsApi.prototype.listTaggedObjectsByType = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.TaggedObjectsApiFp)(this.configuration).listTaggedObjectsByType(requestParameters.type, requestParameters.limit, requestParameters.offset, requestParameters.count, requestParameters.filters, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This updates a tagged object for the specified type. + * @summary Update Tagged Object + * @param {TaggedObjectsApiPutTaggedObjectRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof TaggedObjectsApi + */ + TaggedObjectsApi.prototype.putTaggedObject = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.TaggedObjectsApiFp)(this.configuration).putTaggedObject(requestParameters.type, requestParameters.id, requestParameters.taggedObject, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This adds a tag to an object. Any authenticated token may be used to call this API. + * @summary Add Tag to Object + * @param {TaggedObjectsApiSetTagToObjectRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof TaggedObjectsApi + */ + TaggedObjectsApi.prototype.setTagToObject = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.TaggedObjectsApiFp)(this.configuration).setTagToObject(requestParameters.taggedObject, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This API adds tags to multiple objects. A token with API, CERT_ADMIN, ORG_ADMIN, REPORT_ADMIN, ROLE_ADMIN, ROLE_SUBADMIN, SOURCE_ADMIN, or SOURCE_SUBADMIN authority is required to call this API. + * @summary Tag Multiple Objects + * @param {TaggedObjectsApiSetTagsToManyObjectsRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof TaggedObjectsApi + */ + TaggedObjectsApi.prototype.setTagsToManyObjects = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.TaggedObjectsApiFp)(this.configuration).setTagsToManyObjects(requestParameters.bulkTaggedObject, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + return TaggedObjectsApi; + }(base_1.BaseAPI)); + exports.TaggedObjectsApi = TaggedObjectsApi; + /** + * TransformsApi - axios parameter creator + * @export + */ + var TransformsApiAxiosParamCreator = function (configuration) { + var _this = this; + return { + /** + * Creates a new transform object immediately. By default, the internal flag is set to false to indicate that this is a custom transform. Only SailPoint employees have the ability to create a transform with internal set to true. Newly created Transforms can be used in the Identity Profile mappings within the UI. A token with transform write authority is required to call this API. + * @summary Create transform + * @param {Transform} transform The transform to be created. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + createTransform: function (transform, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'transform' is not null or undefined + (0, common_1.assertParamExists)('createTransform', 'transform', transform); + localVarPath = "/transforms"; + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + localVarHeaderParameter['Content-Type'] = 'application/json'; + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(transform, localVarRequestOptions, configuration); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * Deletes the transform specified by the given ID. Attempting to delete a transform that is used in one or more Identity Profile mappings will result in an error. If this occurs, you must first remove the transform from all mappings before deleting the transform. A token with transform delete authority is required to call this API. + * @summary Delete a transform + * @param {string} id ID of the transform to delete + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + deleteTransform: function (id, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'id' is not null or undefined + (0, common_1.assertParamExists)('deleteTransform', 'id', id); + localVarPath = "/transforms/{id}" + .replace("{".concat("id", "}"), encodeURIComponent(String(id))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'DELETE' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This API returns the transform specified by the given ID. A token with transform read authority is required to call this API. + * @summary Transform by ID + * @param {string} id ID of the transform to retrieve + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getTransform: function (id, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'id' is not null or undefined + (0, common_1.assertParamExists)('getTransform', 'id', id); + localVarPath = "/transforms/{id}" + .replace("{".concat("id", "}"), encodeURIComponent(String(id))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * Gets a list of all saved transform objects. A token with transforms-list read authority is required to call this API. + * @summary List transforms + * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {string} [name] Name of the transform to retrieve from the list. + * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **internal**: *eq* **name**: *eq, sw* + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + listTransforms: function (offset, limit, count, name, filters, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + localVarPath = "/transforms"; + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + if (offset !== undefined) { + localVarQueryParameter['offset'] = offset; + } + if (limit !== undefined) { + localVarQueryParameter['limit'] = limit; + } + if (count !== undefined) { + localVarQueryParameter['count'] = count; + } + if (name !== undefined) { + localVarQueryParameter['name'] = name; + } + if (filters !== undefined) { + localVarQueryParameter['filters'] = filters; + } + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * Replaces the transform specified by the given ID with the transform provided in the request body. Only the \"attributes\" field is mutable. Attempting to change other properties (ex. \"name\" and \"type\") will result in an error. A token with transform write authority is required to call this API. + * @summary Update a transform + * @param {string} id ID of the transform to update + * @param {Transform} [transform] The updated transform object. Must include \"name\", \"type\", and \"attributes\" fields, but \"name\" and \"type\" must not be modified. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + updateTransform: function (id, transform, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'id' is not null or undefined + (0, common_1.assertParamExists)('updateTransform', 'id', id); + localVarPath = "/transforms/{id}" + .replace("{".concat("id", "}"), encodeURIComponent(String(id))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'PUT' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + localVarHeaderParameter['Content-Type'] = 'application/json'; + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(transform, localVarRequestOptions, configuration); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + }; + }; + exports.TransformsApiAxiosParamCreator = TransformsApiAxiosParamCreator; + /** + * TransformsApi - functional programming interface + * @export + */ + var TransformsApiFp = function (configuration) { + var localVarAxiosParamCreator = (0, exports.TransformsApiAxiosParamCreator)(configuration); + return { + /** + * Creates a new transform object immediately. By default, the internal flag is set to false to indicate that this is a custom transform. Only SailPoint employees have the ability to create a transform with internal set to true. Newly created Transforms can be used in the Identity Profile mappings within the UI. A token with transform write authority is required to call this API. + * @summary Create transform + * @param {Transform} transform The transform to be created. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + createTransform: function (transform, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.createTransform(transform, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * Deletes the transform specified by the given ID. Attempting to delete a transform that is used in one or more Identity Profile mappings will result in an error. If this occurs, you must first remove the transform from all mappings before deleting the transform. A token with transform delete authority is required to call this API. + * @summary Delete a transform + * @param {string} id ID of the transform to delete + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + deleteTransform: function (id, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.deleteTransform(id, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This API returns the transform specified by the given ID. A token with transform read authority is required to call this API. + * @summary Transform by ID + * @param {string} id ID of the transform to retrieve + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getTransform: function (id, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.getTransform(id, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * Gets a list of all saved transform objects. A token with transforms-list read authority is required to call this API. + * @summary List transforms + * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {string} [name] Name of the transform to retrieve from the list. + * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **internal**: *eq* **name**: *eq, sw* + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + listTransforms: function (offset, limit, count, name, filters, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.listTransforms(offset, limit, count, name, filters, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * Replaces the transform specified by the given ID with the transform provided in the request body. Only the \"attributes\" field is mutable. Attempting to change other properties (ex. \"name\" and \"type\") will result in an error. A token with transform write authority is required to call this API. + * @summary Update a transform + * @param {string} id ID of the transform to update + * @param {Transform} [transform] The updated transform object. Must include \"name\", \"type\", and \"attributes\" fields, but \"name\" and \"type\" must not be modified. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + updateTransform: function (id, transform, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.updateTransform(id, transform, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + }; + }; + exports.TransformsApiFp = TransformsApiFp; + /** + * TransformsApi - factory interface + * @export + */ + var TransformsApiFactory = function (configuration, basePath, axios) { + var localVarFp = (0, exports.TransformsApiFp)(configuration); + return { + /** + * Creates a new transform object immediately. By default, the internal flag is set to false to indicate that this is a custom transform. Only SailPoint employees have the ability to create a transform with internal set to true. Newly created Transforms can be used in the Identity Profile mappings within the UI. A token with transform write authority is required to call this API. + * @summary Create transform + * @param {Transform} transform The transform to be created. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + createTransform: function (transform, axiosOptions) { + return localVarFp.createTransform(transform, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * Deletes the transform specified by the given ID. Attempting to delete a transform that is used in one or more Identity Profile mappings will result in an error. If this occurs, you must first remove the transform from all mappings before deleting the transform. A token with transform delete authority is required to call this API. + * @summary Delete a transform + * @param {string} id ID of the transform to delete + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + deleteTransform: function (id, axiosOptions) { + return localVarFp.deleteTransform(id, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This API returns the transform specified by the given ID. A token with transform read authority is required to call this API. + * @summary Transform by ID + * @param {string} id ID of the transform to retrieve + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getTransform: function (id, axiosOptions) { + return localVarFp.getTransform(id, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * Gets a list of all saved transform objects. A token with transforms-list read authority is required to call this API. + * @summary List transforms + * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {string} [name] Name of the transform to retrieve from the list. + * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **internal**: *eq* **name**: *eq, sw* + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + listTransforms: function (offset, limit, count, name, filters, axiosOptions) { + return localVarFp.listTransforms(offset, limit, count, name, filters, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * Replaces the transform specified by the given ID with the transform provided in the request body. Only the \"attributes\" field is mutable. Attempting to change other properties (ex. \"name\" and \"type\") will result in an error. A token with transform write authority is required to call this API. + * @summary Update a transform + * @param {string} id ID of the transform to update + * @param {Transform} [transform] The updated transform object. Must include \"name\", \"type\", and \"attributes\" fields, but \"name\" and \"type\" must not be modified. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + updateTransform: function (id, transform, axiosOptions) { + return localVarFp.updateTransform(id, transform, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + }; + }; + exports.TransformsApiFactory = TransformsApiFactory; + /** + * TransformsApi - object-oriented interface + * @export + * @class TransformsApi + * @extends {BaseAPI} + */ + var TransformsApi = /** @class */ (function (_super) { + __extends(TransformsApi, _super); + function TransformsApi() { + return _super !== null && _super.apply(this, arguments) || this; + } + /** + * Creates a new transform object immediately. By default, the internal flag is set to false to indicate that this is a custom transform. Only SailPoint employees have the ability to create a transform with internal set to true. Newly created Transforms can be used in the Identity Profile mappings within the UI. A token with transform write authority is required to call this API. + * @summary Create transform + * @param {TransformsApiCreateTransformRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof TransformsApi + */ + TransformsApi.prototype.createTransform = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.TransformsApiFp)(this.configuration).createTransform(requestParameters.transform, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * Deletes the transform specified by the given ID. Attempting to delete a transform that is used in one or more Identity Profile mappings will result in an error. If this occurs, you must first remove the transform from all mappings before deleting the transform. A token with transform delete authority is required to call this API. + * @summary Delete a transform + * @param {TransformsApiDeleteTransformRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof TransformsApi + */ + TransformsApi.prototype.deleteTransform = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.TransformsApiFp)(this.configuration).deleteTransform(requestParameters.id, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This API returns the transform specified by the given ID. A token with transform read authority is required to call this API. + * @summary Transform by ID + * @param {TransformsApiGetTransformRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof TransformsApi + */ + TransformsApi.prototype.getTransform = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.TransformsApiFp)(this.configuration).getTransform(requestParameters.id, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * Gets a list of all saved transform objects. A token with transforms-list read authority is required to call this API. + * @summary List transforms + * @param {TransformsApiListTransformsRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof TransformsApi + */ + TransformsApi.prototype.listTransforms = function (requestParameters, axiosOptions) { + var _this = this; + if (requestParameters === void 0) { requestParameters = {}; } + return (0, exports.TransformsApiFp)(this.configuration).listTransforms(requestParameters.offset, requestParameters.limit, requestParameters.count, requestParameters.name, requestParameters.filters, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * Replaces the transform specified by the given ID with the transform provided in the request body. Only the \"attributes\" field is mutable. Attempting to change other properties (ex. \"name\" and \"type\") will result in an error. A token with transform write authority is required to call this API. + * @summary Update a transform + * @param {TransformsApiUpdateTransformRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof TransformsApi + */ + TransformsApi.prototype.updateTransform = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.TransformsApiFp)(this.configuration).updateTransform(requestParameters.id, requestParameters.transform, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + return TransformsApi; + }(base_1.BaseAPI)); + exports.TransformsApi = TransformsApi; + /** + * WorkItemsApi - axios parameter creator + * @export + */ + var WorkItemsApiAxiosParamCreator = function (configuration) { + var _this = this; + return { + /** + * This API approves an Approval Item. Either an admin, or the owning/current user must make this request. + * @summary Approve an Approval Item + * @param {string} id The ID of the work item + * @param {string} approvalItemId The ID of the approval item. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + approveApprovalItem: function (id, approvalItemId, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'id' is not null or undefined + (0, common_1.assertParamExists)('approveApprovalItem', 'id', id); + // verify required parameter 'approvalItemId' is not null or undefined + (0, common_1.assertParamExists)('approveApprovalItem', 'approvalItemId', approvalItemId); + localVarPath = "/work-items/{id}/approve/{approvalItemId}" + .replace("{".concat("id", "}"), encodeURIComponent(String(id))) + .replace("{".concat("approvalItemId", "}"), encodeURIComponent(String(approvalItemId))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This API bulk approves Approval Items. Either an admin, or the owning/current user must make this request. + * @summary Bulk approve Approval Items + * @param {string} id The ID of the work item + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + approveApprovalItemsInBulk: function (id, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'id' is not null or undefined + (0, common_1.assertParamExists)('approveApprovalItemsInBulk', 'id', id); + localVarPath = "/work-items/bulk-approve/{id}" + .replace("{".concat("id", "}"), encodeURIComponent(String(id))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This API completes a work item. Either an admin, or the owning/current user must make this request. + * @summary Complete a Work Item + * @param {string} id The ID of the work item + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + completeWorkItem: function (id, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'id' is not null or undefined + (0, common_1.assertParamExists)('completeWorkItem', 'id', id); + localVarPath = "/work-items/{id}" + .replace("{".concat("id", "}"), encodeURIComponent(String(id))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This gets a collection of completed work items belonging to either the specified user(admin required), or the current user. + * @summary Completed Work Items + * @param {string} [ownerId] The id of the owner of the work item list being requested. Either an admin, or the owning/current user must make this request. + * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getCompletedWorkItems: function (ownerId, limit, offset, count, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + localVarPath = "/work-items/completed"; + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + if (ownerId !== undefined) { + localVarQueryParameter['ownerId'] = ownerId; + } + if (limit !== undefined) { + localVarQueryParameter['limit'] = limit; + } + if (offset !== undefined) { + localVarQueryParameter['offset'] = offset; + } + if (count !== undefined) { + localVarQueryParameter['count'] = count; + } + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This gets a count of completed work items belonging to either the specified user(admin required), or the current user. + * @summary Count Completed Work Items + * @param {string} [ownerId] ID of the work item owner. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getCountCompletedWorkItems: function (ownerId, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + localVarPath = "/work-items/completed/count"; + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + if (ownerId !== undefined) { + localVarQueryParameter['ownerId'] = ownerId; + } + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This gets a count of work items belonging to either the specified user(admin required), or the current user. + * @summary Count Work Items + * @param {string} [ownerId] ID of the work item owner. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getCountWorkItems: function (ownerId, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + localVarPath = "/work-items/count"; + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + if (ownerId !== undefined) { + localVarQueryParameter['ownerId'] = ownerId; + } + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This gets the details of a Work Item belonging to either the specified user(admin required), or the current user. + * @summary Get a Work Item + * @param {string} id ID of the work item. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getWorkItem: function (id, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'id' is not null or undefined + (0, common_1.assertParamExists)('getWorkItem', 'id', id); + localVarPath = "/work-items/{id}" + .replace("{".concat("id", "}"), encodeURIComponent(String(id))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This gets a summary of work items belonging to either the specified user(admin required), or the current user. + * @summary Work Items Summary + * @param {string} [ownerId] ID of the work item owner. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getWorkItemsSummary: function (ownerId, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + localVarPath = "/work-items/summary"; + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + if (ownerId !== undefined) { + localVarQueryParameter['ownerId'] = ownerId; + } + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This gets a collection of work items belonging to either the specified user(admin required), or the current user. + * @summary List Work Items + * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {string} [ownerId] ID of the work item owner. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + listWorkItems: function (limit, offset, count, ownerId, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + localVarPath = "/work-items"; + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + if (limit !== undefined) { + localVarQueryParameter['limit'] = limit; + } + if (offset !== undefined) { + localVarQueryParameter['offset'] = offset; + } + if (count !== undefined) { + localVarQueryParameter['count'] = count; + } + if (ownerId !== undefined) { + localVarQueryParameter['ownerId'] = ownerId; + } + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This API rejects an Approval Item. Either an admin, or the owning/current user must make this request. + * @summary Reject an Approval Item + * @param {string} id The ID of the work item + * @param {string} approvalItemId The ID of the approval item. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + rejectApprovalItem: function (id, approvalItemId, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'id' is not null or undefined + (0, common_1.assertParamExists)('rejectApprovalItem', 'id', id); + // verify required parameter 'approvalItemId' is not null or undefined + (0, common_1.assertParamExists)('rejectApprovalItem', 'approvalItemId', approvalItemId); + localVarPath = "/work-items/{id}/reject/{approvalItemId}" + .replace("{".concat("id", "}"), encodeURIComponent(String(id))) + .replace("{".concat("approvalItemId", "}"), encodeURIComponent(String(approvalItemId))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This API bulk rejects Approval Items. Either an admin, or the owning/current user must make this request. + * @summary Bulk reject Approval Items + * @param {string} id The ID of the work item + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + rejectApprovalItemsInBulk: function (id, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'id' is not null or undefined + (0, common_1.assertParamExists)('rejectApprovalItemsInBulk', 'id', id); + localVarPath = "/work-items/bulk-reject/{id}" + .replace("{".concat("id", "}"), encodeURIComponent(String(id))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This API submits account selections. Either an admin, or the owning/current user must make this request. + * @summary Submit Account Selections + * @param {string} id The ID of the work item + * @param {{ [key: string]: any; }} requestBody Account Selection Data map, keyed on fieldName + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + submitAccountSelection: function (id, requestBody, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'id' is not null or undefined + (0, common_1.assertParamExists)('submitAccountSelection', 'id', id); + // verify required parameter 'requestBody' is not null or undefined + (0, common_1.assertParamExists)('submitAccountSelection', 'requestBody', requestBody); + localVarPath = "/work-items/{id}/submit-account-selection" + .replace("{".concat("id", "}"), encodeURIComponent(String(id))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + localVarHeaderParameter['Content-Type'] = 'application/json'; + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(requestBody, localVarRequestOptions, configuration); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + }; + }; + exports.WorkItemsApiAxiosParamCreator = WorkItemsApiAxiosParamCreator; + /** + * WorkItemsApi - functional programming interface + * @export + */ + var WorkItemsApiFp = function (configuration) { + var localVarAxiosParamCreator = (0, exports.WorkItemsApiAxiosParamCreator)(configuration); + return { + /** + * This API approves an Approval Item. Either an admin, or the owning/current user must make this request. + * @summary Approve an Approval Item + * @param {string} id The ID of the work item + * @param {string} approvalItemId The ID of the approval item. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + approveApprovalItem: function (id, approvalItemId, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.approveApprovalItem(id, approvalItemId, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This API bulk approves Approval Items. Either an admin, or the owning/current user must make this request. + * @summary Bulk approve Approval Items + * @param {string} id The ID of the work item + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + approveApprovalItemsInBulk: function (id, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.approveApprovalItemsInBulk(id, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This API completes a work item. Either an admin, or the owning/current user must make this request. + * @summary Complete a Work Item + * @param {string} id The ID of the work item + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + completeWorkItem: function (id, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.completeWorkItem(id, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This gets a collection of completed work items belonging to either the specified user(admin required), or the current user. + * @summary Completed Work Items + * @param {string} [ownerId] The id of the owner of the work item list being requested. Either an admin, or the owning/current user must make this request. + * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getCompletedWorkItems: function (ownerId, limit, offset, count, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.getCompletedWorkItems(ownerId, limit, offset, count, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This gets a count of completed work items belonging to either the specified user(admin required), or the current user. + * @summary Count Completed Work Items + * @param {string} [ownerId] ID of the work item owner. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getCountCompletedWorkItems: function (ownerId, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.getCountCompletedWorkItems(ownerId, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This gets a count of work items belonging to either the specified user(admin required), or the current user. + * @summary Count Work Items + * @param {string} [ownerId] ID of the work item owner. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getCountWorkItems: function (ownerId, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.getCountWorkItems(ownerId, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This gets the details of a Work Item belonging to either the specified user(admin required), or the current user. + * @summary Get a Work Item + * @param {string} id ID of the work item. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getWorkItem: function (id, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.getWorkItem(id, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This gets a summary of work items belonging to either the specified user(admin required), or the current user. + * @summary Work Items Summary + * @param {string} [ownerId] ID of the work item owner. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getWorkItemsSummary: function (ownerId, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.getWorkItemsSummary(ownerId, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This gets a collection of work items belonging to either the specified user(admin required), or the current user. + * @summary List Work Items + * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {string} [ownerId] ID of the work item owner. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + listWorkItems: function (limit, offset, count, ownerId, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.listWorkItems(limit, offset, count, ownerId, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This API rejects an Approval Item. Either an admin, or the owning/current user must make this request. + * @summary Reject an Approval Item + * @param {string} id The ID of the work item + * @param {string} approvalItemId The ID of the approval item. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + rejectApprovalItem: function (id, approvalItemId, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.rejectApprovalItem(id, approvalItemId, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This API bulk rejects Approval Items. Either an admin, or the owning/current user must make this request. + * @summary Bulk reject Approval Items + * @param {string} id The ID of the work item + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + rejectApprovalItemsInBulk: function (id, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.rejectApprovalItemsInBulk(id, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This API submits account selections. Either an admin, or the owning/current user must make this request. + * @summary Submit Account Selections + * @param {string} id The ID of the work item + * @param {{ [key: string]: any; }} requestBody Account Selection Data map, keyed on fieldName + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + submitAccountSelection: function (id, requestBody, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.submitAccountSelection(id, requestBody, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + }; + }; + exports.WorkItemsApiFp = WorkItemsApiFp; + /** + * WorkItemsApi - factory interface + * @export + */ + var WorkItemsApiFactory = function (configuration, basePath, axios) { + var localVarFp = (0, exports.WorkItemsApiFp)(configuration); + return { + /** + * This API approves an Approval Item. Either an admin, or the owning/current user must make this request. + * @summary Approve an Approval Item + * @param {string} id The ID of the work item + * @param {string} approvalItemId The ID of the approval item. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + approveApprovalItem: function (id, approvalItemId, axiosOptions) { + return localVarFp.approveApprovalItem(id, approvalItemId, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This API bulk approves Approval Items. Either an admin, or the owning/current user must make this request. + * @summary Bulk approve Approval Items + * @param {string} id The ID of the work item + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + approveApprovalItemsInBulk: function (id, axiosOptions) { + return localVarFp.approveApprovalItemsInBulk(id, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This API completes a work item. Either an admin, or the owning/current user must make this request. + * @summary Complete a Work Item + * @param {string} id The ID of the work item + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + completeWorkItem: function (id, axiosOptions) { + return localVarFp.completeWorkItem(id, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This gets a collection of completed work items belonging to either the specified user(admin required), or the current user. + * @summary Completed Work Items + * @param {string} [ownerId] The id of the owner of the work item list being requested. Either an admin, or the owning/current user must make this request. + * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getCompletedWorkItems: function (ownerId, limit, offset, count, axiosOptions) { + return localVarFp.getCompletedWorkItems(ownerId, limit, offset, count, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This gets a count of completed work items belonging to either the specified user(admin required), or the current user. + * @summary Count Completed Work Items + * @param {string} [ownerId] ID of the work item owner. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getCountCompletedWorkItems: function (ownerId, axiosOptions) { + return localVarFp.getCountCompletedWorkItems(ownerId, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This gets a count of work items belonging to either the specified user(admin required), or the current user. + * @summary Count Work Items + * @param {string} [ownerId] ID of the work item owner. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getCountWorkItems: function (ownerId, axiosOptions) { + return localVarFp.getCountWorkItems(ownerId, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This gets the details of a Work Item belonging to either the specified user(admin required), or the current user. + * @summary Get a Work Item + * @param {string} id ID of the work item. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getWorkItem: function (id, axiosOptions) { + return localVarFp.getWorkItem(id, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This gets a summary of work items belonging to either the specified user(admin required), or the current user. + * @summary Work Items Summary + * @param {string} [ownerId] ID of the work item owner. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getWorkItemsSummary: function (ownerId, axiosOptions) { + return localVarFp.getWorkItemsSummary(ownerId, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This gets a collection of work items belonging to either the specified user(admin required), or the current user. + * @summary List Work Items + * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. + * @param {string} [ownerId] ID of the work item owner. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + listWorkItems: function (limit, offset, count, ownerId, axiosOptions) { + return localVarFp.listWorkItems(limit, offset, count, ownerId, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This API rejects an Approval Item. Either an admin, or the owning/current user must make this request. + * @summary Reject an Approval Item + * @param {string} id The ID of the work item + * @param {string} approvalItemId The ID of the approval item. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + rejectApprovalItem: function (id, approvalItemId, axiosOptions) { + return localVarFp.rejectApprovalItem(id, approvalItemId, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This API bulk rejects Approval Items. Either an admin, or the owning/current user must make this request. + * @summary Bulk reject Approval Items + * @param {string} id The ID of the work item + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + rejectApprovalItemsInBulk: function (id, axiosOptions) { + return localVarFp.rejectApprovalItemsInBulk(id, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This API submits account selections. Either an admin, or the owning/current user must make this request. + * @summary Submit Account Selections + * @param {string} id The ID of the work item + * @param {{ [key: string]: any; }} requestBody Account Selection Data map, keyed on fieldName + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + submitAccountSelection: function (id, requestBody, axiosOptions) { + return localVarFp.submitAccountSelection(id, requestBody, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + }; + }; + exports.WorkItemsApiFactory = WorkItemsApiFactory; + /** + * WorkItemsApi - object-oriented interface + * @export + * @class WorkItemsApi + * @extends {BaseAPI} + */ + var WorkItemsApi = /** @class */ (function (_super) { + __extends(WorkItemsApi, _super); + function WorkItemsApi() { + return _super !== null && _super.apply(this, arguments) || this; + } + /** + * This API approves an Approval Item. Either an admin, or the owning/current user must make this request. + * @summary Approve an Approval Item + * @param {WorkItemsApiApproveApprovalItemRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof WorkItemsApi + */ + WorkItemsApi.prototype.approveApprovalItem = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.WorkItemsApiFp)(this.configuration).approveApprovalItem(requestParameters.id, requestParameters.approvalItemId, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This API bulk approves Approval Items. Either an admin, or the owning/current user must make this request. + * @summary Bulk approve Approval Items + * @param {WorkItemsApiApproveApprovalItemsInBulkRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof WorkItemsApi + */ + WorkItemsApi.prototype.approveApprovalItemsInBulk = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.WorkItemsApiFp)(this.configuration).approveApprovalItemsInBulk(requestParameters.id, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This API completes a work item. Either an admin, or the owning/current user must make this request. + * @summary Complete a Work Item + * @param {WorkItemsApiCompleteWorkItemRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof WorkItemsApi + */ + WorkItemsApi.prototype.completeWorkItem = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.WorkItemsApiFp)(this.configuration).completeWorkItem(requestParameters.id, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This gets a collection of completed work items belonging to either the specified user(admin required), or the current user. + * @summary Completed Work Items + * @param {WorkItemsApiGetCompletedWorkItemsRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof WorkItemsApi + */ + WorkItemsApi.prototype.getCompletedWorkItems = function (requestParameters, axiosOptions) { + var _this = this; + if (requestParameters === void 0) { requestParameters = {}; } + return (0, exports.WorkItemsApiFp)(this.configuration).getCompletedWorkItems(requestParameters.ownerId, requestParameters.limit, requestParameters.offset, requestParameters.count, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This gets a count of completed work items belonging to either the specified user(admin required), or the current user. + * @summary Count Completed Work Items + * @param {WorkItemsApiGetCountCompletedWorkItemsRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof WorkItemsApi + */ + WorkItemsApi.prototype.getCountCompletedWorkItems = function (requestParameters, axiosOptions) { + var _this = this; + if (requestParameters === void 0) { requestParameters = {}; } + return (0, exports.WorkItemsApiFp)(this.configuration).getCountCompletedWorkItems(requestParameters.ownerId, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This gets a count of work items belonging to either the specified user(admin required), or the current user. + * @summary Count Work Items + * @param {WorkItemsApiGetCountWorkItemsRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof WorkItemsApi + */ + WorkItemsApi.prototype.getCountWorkItems = function (requestParameters, axiosOptions) { + var _this = this; + if (requestParameters === void 0) { requestParameters = {}; } + return (0, exports.WorkItemsApiFp)(this.configuration).getCountWorkItems(requestParameters.ownerId, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This gets the details of a Work Item belonging to either the specified user(admin required), or the current user. + * @summary Get a Work Item + * @param {WorkItemsApiGetWorkItemRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof WorkItemsApi + */ + WorkItemsApi.prototype.getWorkItem = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.WorkItemsApiFp)(this.configuration).getWorkItem(requestParameters.id, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This gets a summary of work items belonging to either the specified user(admin required), or the current user. + * @summary Work Items Summary + * @param {WorkItemsApiGetWorkItemsSummaryRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof WorkItemsApi + */ + WorkItemsApi.prototype.getWorkItemsSummary = function (requestParameters, axiosOptions) { + var _this = this; + if (requestParameters === void 0) { requestParameters = {}; } + return (0, exports.WorkItemsApiFp)(this.configuration).getWorkItemsSummary(requestParameters.ownerId, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This gets a collection of work items belonging to either the specified user(admin required), or the current user. + * @summary List Work Items + * @param {WorkItemsApiListWorkItemsRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof WorkItemsApi + */ + WorkItemsApi.prototype.listWorkItems = function (requestParameters, axiosOptions) { + var _this = this; + if (requestParameters === void 0) { requestParameters = {}; } + return (0, exports.WorkItemsApiFp)(this.configuration).listWorkItems(requestParameters.limit, requestParameters.offset, requestParameters.count, requestParameters.ownerId, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This API rejects an Approval Item. Either an admin, or the owning/current user must make this request. + * @summary Reject an Approval Item + * @param {WorkItemsApiRejectApprovalItemRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof WorkItemsApi + */ + WorkItemsApi.prototype.rejectApprovalItem = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.WorkItemsApiFp)(this.configuration).rejectApprovalItem(requestParameters.id, requestParameters.approvalItemId, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This API bulk rejects Approval Items. Either an admin, or the owning/current user must make this request. + * @summary Bulk reject Approval Items + * @param {WorkItemsApiRejectApprovalItemsInBulkRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof WorkItemsApi + */ + WorkItemsApi.prototype.rejectApprovalItemsInBulk = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.WorkItemsApiFp)(this.configuration).rejectApprovalItemsInBulk(requestParameters.id, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This API submits account selections. Either an admin, or the owning/current user must make this request. + * @summary Submit Account Selections + * @param {WorkItemsApiSubmitAccountSelectionRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof WorkItemsApi + */ + WorkItemsApi.prototype.submitAccountSelection = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.WorkItemsApiFp)(this.configuration).submitAccountSelection(requestParameters.id, requestParameters.requestBody, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + return WorkItemsApi; + }(base_1.BaseAPI)); + exports.WorkItemsApi = WorkItemsApi; + + } (api$2)); + return api$2; +} + +var configuration$3 = {}; + +var hasRequiredConfiguration$3; + +function requireConfiguration$3 () { + if (hasRequiredConfiguration$3) return configuration$3; + hasRequiredConfiguration$3 = 1; + /* tslint:disable */ + /* eslint-disable */ + /** + * IdentityNow V3 API + * Use these APIs to interact with the IdentityNow platform to achieve repeatable, automated processes with greater scalability. We encourage you to join the SailPoint Developer Community forum at https://developer.sailpoint.com/discuss to connect with other developers using our APIs. + * + * The version of the OpenAPI document: 3.0.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + Object.defineProperty(configuration$3, "__esModule", { value: true }); + configuration$3.Configuration = void 0; + var Configuration = /** @class */ (function () { + function Configuration(param) { + if (param === void 0) { param = {}; } + this.apiKey = param.apiKey; + this.username = param.username; + this.password = param.password; + this.accessToken = param.accessToken; + this.basePath = param.basePath; + this.baseOptions = param.baseOptions; + this.formDataCtor = param.formDataCtor; + } + /** + * Check if the given MIME is a JSON MIME. + * JSON MIME examples: + * application/json + * application/json; charset=UTF8 + * APPLICATION/JSON + * application/vnd.company+json + * @param mime - MIME (Multipurpose Internet Mail Extensions) + * @return True if the given MIME is JSON, false otherwise. + */ + Configuration.prototype.isJsonMime = function (mime) { + var jsonMime = new RegExp('^(application\/json|[^;/ \t]+\/[^;/ \t]+[+]json)[ \t]*(;.*)?$', 'i'); + return mime !== null && (jsonMime.test(mime) || mime.toLowerCase() === 'application/json-patch+json'); + }; + return Configuration; + }()); + configuration$3.Configuration = Configuration; + + return configuration$3; +} + +var api$1 = {}; + +var common$2 = {}; + +var base$1 = {}; + +var hasRequiredBase$1; + +function requireBase$1 () { + if (hasRequiredBase$1) return base$1; + hasRequiredBase$1 = 1; + (function (exports) { + /* tslint:disable */ + /* eslint-disable */ + /** + * SailPoint SaaS API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 2.0.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + var __extends = (commonjsGlobal && commonjsGlobal.__extends) || (function () { + var extendStatics = function (d, b) { + extendStatics = Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || + function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; }; + return extendStatics(d, b); + }; + return function (d, b) { + if (typeof b !== "function" && b !== null) + throw new TypeError("Class extends value " + String(b) + " is not a constructor or null"); + extendStatics(d, b); + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; + })(); + var __importDefault = (commonjsGlobal && commonjsGlobal.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; + }; + Object.defineProperty(exports, "__esModule", { value: true }); + exports.RequiredError = exports.BaseAPI = exports.COLLECTION_FORMATS = exports.BASE_PATH = void 0; + // Some imports not used depending on template conditions + // @ts-ignore + var axios_1 = __importDefault(requireAxios()); + exports.BASE_PATH = "https://sailpoint.api.identitynow.com/v2".replace(/\/+$/, ""); + /** + * + * @export + */ + exports.COLLECTION_FORMATS = { + csv: ",", + ssv: " ", + tsv: "\t", + pipes: "|", + }; + /** + * + * @export + * @class BaseAPI + */ + var BaseAPI = /** @class */ (function () { + function BaseAPI(configuration, basePath, axios) { + if (basePath === void 0) { basePath = exports.BASE_PATH; } + if (axios === void 0) { axios = axios_1.default; } + this.basePath = basePath; + this.axios = axios; + if (configuration) { + this.configuration = configuration; + this.basePath = configuration.basePathV2 || this.basePath; + } + } + return BaseAPI; + }()); + exports.BaseAPI = BaseAPI; + /** + * + * @export + * @class RequiredError + * @extends {Error} + */ + var RequiredError = /** @class */ (function (_super) { + __extends(RequiredError, _super); + function RequiredError(field, msg) { + var _this = _super.call(this, msg) || this; + _this.field = field; + _this.name = "RequiredError"; + return _this; + } + return RequiredError; + }(Error)); + exports.RequiredError = RequiredError; + + } (base$1)); + return base$1; +} + +var hasRequiredCommon$2; + +function requireCommon$2 () { + if (hasRequiredCommon$2) return common$2; + hasRequiredCommon$2 = 1; + /* tslint:disable */ + /* eslint-disable */ + /** + * SailPoint SaaS API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 2.0.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + var __assign = (commonjsGlobal && commonjsGlobal.__assign) || function () { + __assign = Object.assign || function(t) { + for (var s, i = 1, n = arguments.length; i < n; i++) { + s = arguments[i]; + for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) + t[p] = s[p]; + } + return t; + }; + return __assign.apply(this, arguments); + }; + var __awaiter = (commonjsGlobal && commonjsGlobal.__awaiter) || function (thisArg, _arguments, P, generator) { + function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); + }; + var __generator = (commonjsGlobal && commonjsGlobal.__generator) || function (thisArg, body) { + var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g; + return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; + function verb(n) { return function (v) { return step([n, v]); }; } + function step(op) { + if (f) throw new TypeError("Generator is already executing."); + while (g && (g = 0, op[0] && (_ = 0)), _) try { + if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; + if (y = 0, t) op = [op[0] & 2, t.value]; + switch (op[0]) { + case 0: case 1: t = op; break; + case 4: _.label++; return { value: op[1], done: false }; + case 5: _.label++; y = op[1]; op = [0]; continue; + case 7: op = _.ops.pop(); _.trys.pop(); continue; + default: + if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } + if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } + if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } + if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } + if (t[2]) _.ops.pop(); + _.trys.pop(); continue; + } + op = body.call(thisArg, _); + } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } + if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; + } + }; + var __importDefault = (commonjsGlobal && commonjsGlobal.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; + }; + Object.defineProperty(common$2, "__esModule", { value: true }); + common$2.createRequestFunction = common$2.toPathString = common$2.serializeDataIfNeeded = common$2.setSearchParams = common$2.setOAuthToObject = common$2.setBearerAuthToObject = common$2.setBasicAuthToObject = common$2.setApiKeyToObject = common$2.assertParamExists = common$2.DUMMY_BASE_URL = void 0; + var base_1 = requireBase$1(); + var axios_retry_1 = __importDefault(requireAxiosRetry()); + /** + * + * @export + */ + common$2.DUMMY_BASE_URL = 'https://example.com'; + /** + * + * @throws {RequiredError} + * @export + */ + var assertParamExists = function (functionName, paramName, paramValue) { + if (paramValue === null || paramValue === undefined) { + throw new base_1.RequiredError(paramName, "Required parameter ".concat(paramName, " was null or undefined when calling ").concat(functionName, ".")); + } + }; + common$2.assertParamExists = assertParamExists; + /** + * + * @export + */ + var setApiKeyToObject = function (object, keyParamName, configuration) { + return __awaiter(this, void 0, void 0, function () { + var localVarApiKeyValue, _a; + return __generator(this, function (_b) { + switch (_b.label) { + case 0: + if (!(configuration && configuration.apiKey)) return [3 /*break*/, 5]; + if (!(typeof configuration.apiKey === 'function')) return [3 /*break*/, 2]; + return [4 /*yield*/, configuration.apiKey(keyParamName)]; + case 1: + _a = _b.sent(); + return [3 /*break*/, 4]; + case 2: return [4 /*yield*/, configuration.apiKey]; + case 3: + _a = _b.sent(); + _b.label = 4; + case 4: + localVarApiKeyValue = _a; + object[keyParamName] = localVarApiKeyValue; + _b.label = 5; + case 5: return [2 /*return*/]; + } + }); + }); + }; + common$2.setApiKeyToObject = setApiKeyToObject; + /** + * + * @export + */ + var setBasicAuthToObject = function (object, configuration) { + if (configuration && (configuration.username || configuration.password)) { + object["auth"] = { username: configuration.username, password: configuration.password }; + } + }; + common$2.setBasicAuthToObject = setBasicAuthToObject; + /** + * + * @export + */ + var setBearerAuthToObject = function (object, configuration) { + return __awaiter(this, void 0, void 0, function () { + var accessToken, _a; + return __generator(this, function (_b) { + switch (_b.label) { + case 0: + if (!(configuration && configuration.accessToken)) return [3 /*break*/, 5]; + if (!(typeof configuration.accessToken === 'function')) return [3 /*break*/, 2]; + return [4 /*yield*/, configuration.accessToken()]; + case 1: + _a = _b.sent(); + return [3 /*break*/, 4]; + case 2: return [4 /*yield*/, configuration.accessToken]; + case 3: + _a = _b.sent(); + _b.label = 4; + case 4: + accessToken = _a; + object["Authorization"] = "Bearer " + accessToken; + _b.label = 5; + case 5: return [2 /*return*/]; + } + }); + }); + }; + common$2.setBearerAuthToObject = setBearerAuthToObject; + /** + * + * @export + */ + var setOAuthToObject = function (object, name, scopes, configuration) { + return __awaiter(this, void 0, void 0, function () { + var localVarAccessTokenValue, _a; + return __generator(this, function (_b) { + switch (_b.label) { + case 0: + if (!(configuration && configuration.accessToken)) return [3 /*break*/, 5]; + if (!(typeof configuration.accessToken === 'function')) return [3 /*break*/, 2]; + return [4 /*yield*/, configuration.accessToken(name, scopes)]; + case 1: + _a = _b.sent(); + return [3 /*break*/, 4]; + case 2: return [4 /*yield*/, configuration.accessToken]; + case 3: + _a = _b.sent(); + _b.label = 4; + case 4: + localVarAccessTokenValue = _a; + object["Authorization"] = "Bearer " + localVarAccessTokenValue; + _b.label = 5; + case 5: return [2 /*return*/]; + } + }); + }); + }; + common$2.setOAuthToObject = setOAuthToObject; + /** + * + * @export + */ + var setSearchParams = function (url) { + var objects = []; + for (var _i = 1; _i < arguments.length; _i++) { + objects[_i - 1] = arguments[_i]; + } + var searchParams = new URLSearchParams(url.search); + for (var _a = 0, objects_1 = objects; _a < objects_1.length; _a++) { + var object = objects_1[_a]; + for (var key in object) { + if (Array.isArray(object[key])) { + searchParams.delete(key); + for (var _b = 0, _c = object[key]; _b < _c.length; _b++) { + var item = _c[_b]; + searchParams.append(key, item); + } + } + else { + searchParams.set(key, object[key]); + } + } + } + url.search = searchParams.toString(); + }; + common$2.setSearchParams = setSearchParams; + /** + * + * @export + */ + var serializeDataIfNeeded = function (value, requestOptions, configuration) { + var nonString = typeof value !== 'string'; + var needsSerialization = nonString && configuration && configuration.isJsonMime + ? configuration.isJsonMime(requestOptions.headers['Content-Type']) + : nonString; + return needsSerialization + ? JSON.stringify(value !== undefined ? value : {}) + : (value || ""); + }; + common$2.serializeDataIfNeeded = serializeDataIfNeeded; + /** + * + * @export + */ + var toPathString = function (url) { + return url.pathname + url.search + url.hash; + }; + common$2.toPathString = toPathString; + /** + * + * @export + */ + var createRequestFunction = function (axiosArgs, globalAxios, BASE_PATH, configuration) { + return function (axios, basePath) { + if (axios === void 0) { axios = globalAxios; } + if (basePath === void 0) { basePath = BASE_PATH; } + (0, axios_retry_1.default)(globalAxios, configuration.retriesConfig); + axiosArgs.axiosOptions.headers['X-SailPoint-SDK'] = 'typescript-1.3.0'; + axiosArgs.axiosOptions.headers['User-Agent'] = 'OpenAPI-Generator/1.3.0/ts'; + var axiosRequestArgs = __assign(__assign({}, axiosArgs.axiosOptions), { url: ((configuration === null || configuration === void 0 ? void 0 : configuration.basePathV2) || basePath) + axiosArgs.url }); + return axios.request(axiosRequestArgs); + }; + }; + common$2.createRequestFunction = createRequestFunction; + + return common$2; +} + +var hasRequiredApi$1; + +function requireApi$1 () { + if (hasRequiredApi$1) return api$1; + hasRequiredApi$1 = 1; + (function (exports) { + /* tslint:disable */ + /* eslint-disable */ + /** + * SailPoint SaaS API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 2.0.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + var __extends = (commonjsGlobal && commonjsGlobal.__extends) || (function () { + var extendStatics = function (d, b) { + extendStatics = Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || + function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; }; + return extendStatics(d, b); + }; + return function (d, b) { + if (typeof b !== "function" && b !== null) + throw new TypeError("Class extends value " + String(b) + " is not a constructor or null"); + extendStatics(d, b); + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; + })(); + var __assign = (commonjsGlobal && commonjsGlobal.__assign) || function () { + __assign = Object.assign || function(t) { + for (var s, i = 1, n = arguments.length; i < n; i++) { + s = arguments[i]; + for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) + t[p] = s[p]; + } + return t; + }; + return __assign.apply(this, arguments); + }; + var __awaiter = (commonjsGlobal && commonjsGlobal.__awaiter) || function (thisArg, _arguments, P, generator) { + function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); + }; + var __generator = (commonjsGlobal && commonjsGlobal.__generator) || function (thisArg, body) { + var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g; + return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; + function verb(n) { return function (v) { return step([n, v]); }; } + function step(op) { + if (f) throw new TypeError("Generator is already executing."); + while (g && (g = 0, op[0] && (_ = 0)), _) try { + if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; + if (y = 0, t) op = [op[0] & 2, t.value]; + switch (op[0]) { + case 0: case 1: t = op; break; + case 4: _.label++; return { value: op[1], done: false }; + case 5: _.label++; y = op[1]; op = [0]; continue; + case 7: op = _.ops.pop(); _.trys.pop(); continue; + default: + if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } + if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } + if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } + if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } + if (t[2]) _.ops.pop(); + _.trys.pop(); continue; + } + op = body.call(thisArg, _); + } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } + if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; + } + }; + var __importDefault = (commonjsGlobal && commonjsGlobal.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; + }; + Object.defineProperty(exports, "__esModule", { value: true }); + exports.OrgV2Api = exports.OrgV2ApiFactory = exports.OrgV2ApiFp = exports.OrgV2ApiAxiosParamCreator = exports.GovernanceGroupsV2Api = exports.GovernanceGroupsV2ApiFactory = exports.GovernanceGroupsV2ApiFp = exports.GovernanceGroupsV2ApiAxiosParamCreator = exports.UpdateOrgSettingsRequestV2PasswordReplayStateEnum = exports.GetOrgSettings200ResponseV2PasswordReplayStateEnum = exports.GetOrgSettings200ResponseV2StatusEnum = exports.GetOrgSettings200ResponseSystemNotificationConfigV2RecipientTypeEnum = void 0; + var axios_1 = __importDefault(requireAxios()); + // Some imports not used depending on template conditions + // @ts-ignore + var common_1 = requireCommon$2(); + // @ts-ignore + var base_1 = requireBase$1(); + exports.GetOrgSettings200ResponseSystemNotificationConfigV2RecipientTypeEnum = { + AllAdmins: 'allAdmins', + SpecificIdentities: 'specificIdentities' + }; + exports.GetOrgSettings200ResponseV2StatusEnum = { + Inactive: 'inactive', + Active: 'active', + Demo: 'demo', + Test: 'test' + }; + exports.GetOrgSettings200ResponseV2PasswordReplayStateEnum = { + Enabled: 'enabled', + Passive: 'passive', + Disabled: 'disabled' + }; + exports.UpdateOrgSettingsRequestV2PasswordReplayStateEnum = { + Enabled: 'enabled', + Passive: 'passive', + Disabled: 'disabled' + }; + /** + * GovernanceGroupsV2Api - axios parameter creator + * @export + */ + var GovernanceGroupsV2ApiAxiosParamCreator = function (configuration) { + var _this = this; + return { + /** + * This API allows you to bulk-delete work groups + * @summary Bulk delete work groups + * @param {BulkDeleteWorkGroupsRequestV2} bulkDeleteWorkGroupsRequestV2 Work group ids to delete + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + bulkDeleteWorkGroups: function (bulkDeleteWorkGroupsRequestV2, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'bulkDeleteWorkGroupsRequestV2' is not null or undefined + (0, common_1.assertParamExists)('bulkDeleteWorkGroups', 'bulkDeleteWorkGroupsRequestV2', bulkDeleteWorkGroupsRequestV2); + localVarPath = "/workgroups/bulk-delete"; + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + localVarHeaderParameter['Content-Type'] = 'application/json'; + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(bulkDeleteWorkGroupsRequestV2, localVarRequestOptions, configuration); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This API allows you to create a work group + * @summary Create Work Group + * @param {CreateWorkgroupRequestV2} createWorkgroupRequestV2 Work group to create. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + createWorkgroup: function (createWorkgroupRequestV2, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'createWorkgroupRequestV2' is not null or undefined + (0, common_1.assertParamExists)('createWorkgroup', 'createWorkgroupRequestV2', createWorkgroupRequestV2); + localVarPath = "/workgroups"; + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + localVarHeaderParameter['Content-Type'] = 'application/json'; + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(createWorkgroupRequestV2, localVarRequestOptions, configuration); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This API deletes a single workgroup based on the ID + * @summary Delete Work Group By Id + * @param {string} workgroupId The workgroup ID + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + deleteWorkgroup: function (workgroupId, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'workgroupId' is not null or undefined + (0, common_1.assertParamExists)('deleteWorkgroup', 'workgroupId', workgroupId); + localVarPath = "/workgroups/{workgroupId}" + .replace("{".concat("workgroupId", "}"), encodeURIComponent(String(workgroupId))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'DELETE' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This API returns the details for a single workgroup based on the ID + * @summary Get Work Group By Id + * @param {string} workgroupId The workgroup ID + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getWorkgroup: function (workgroupId, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'workgroupId' is not null or undefined + (0, common_1.assertParamExists)('getWorkgroup', 'workgroupId', workgroupId); + localVarPath = "/workgroups/{workgroupId}" + .replace("{".concat("workgroupId", "}"), encodeURIComponent(String(workgroupId))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This API returns the connections of a work group + * @summary List Work Group Connections + * @param {string} workgroupId The workgroup ID + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + listWorkgroupConnections: function (workgroupId, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'workgroupId' is not null or undefined + (0, common_1.assertParamExists)('listWorkgroupConnections', 'workgroupId', workgroupId); + localVarPath = "/workgroups/{workgroupId}/connections" + .replace("{".concat("workgroupId", "}"), encodeURIComponent(String(workgroupId))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This API returns the members of a work group + * @summary List Work Group Members + * @param {string} workgroupId The workgroup ID + * @param {number} [limit] Max number of results to return + * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. + * @param {string} [filters] Filter results using the following syntax. [{property:name, value: \"Tyler\", operation: EQ}] + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + listWorkgroupMembers: function (workgroupId, limit, offset, filters, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'workgroupId' is not null or undefined + (0, common_1.assertParamExists)('listWorkgroupMembers', 'workgroupId', workgroupId); + localVarPath = "/workgroups/{workgroupId}/members" + .replace("{".concat("workgroupId", "}"), encodeURIComponent(String(workgroupId))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + if (limit !== undefined) { + localVarQueryParameter['limit'] = limit; + } + if (offset !== undefined) { + localVarQueryParameter['offset'] = offset; + } + if (filters !== undefined) { + localVarQueryParameter['filters'] = filters; + } + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This API returns a list of work groups + * @summary List Work Groups + * @param {number} [limit] Max number of results to return + * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. + * @param {string} [filters] Filter results using the following syntax. [{property:name, value: \"Tyler\", operation: EQ}] + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + listWorkgroups: function (limit, offset, filters, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + localVarPath = "/workgroups"; + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + if (limit !== undefined) { + localVarQueryParameter['limit'] = limit; + } + if (offset !== undefined) { + localVarQueryParameter['offset'] = offset; + } + if (filters !== undefined) { + localVarQueryParameter['filters'] = filters; + } + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This API allows you to modify the members of a work group + * @summary Modify Work Group Members + * @param {string} workgroupId The workgroup ID + * @param {ModifyWorkgroupMembersRequestV2} modifyWorkgroupMembersRequestV2 Add/Remove workgroup member ids. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + modifyWorkgroupMembers: function (workgroupId, modifyWorkgroupMembersRequestV2, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'workgroupId' is not null or undefined + (0, common_1.assertParamExists)('modifyWorkgroupMembers', 'workgroupId', workgroupId); + // verify required parameter 'modifyWorkgroupMembersRequestV2' is not null or undefined + (0, common_1.assertParamExists)('modifyWorkgroupMembers', 'modifyWorkgroupMembersRequestV2', modifyWorkgroupMembersRequestV2); + localVarPath = "/workgroups/{workgroupId}/members" + .replace("{".concat("workgroupId", "}"), encodeURIComponent(String(workgroupId))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + localVarHeaderParameter['Content-Type'] = 'application/json'; + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(modifyWorkgroupMembersRequestV2, localVarRequestOptions, configuration); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * This API updates and returns the details for a single workgroup based on the ID + * @summary Update Work Group By Id + * @param {string} workgroupId The workgroup ID + * @param {CreateWorkgroupRequestV2} createWorkgroupRequestV2 Work group to modify. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + updateWorkgroup: function (workgroupId, createWorkgroupRequestV2, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'workgroupId' is not null or undefined + (0, common_1.assertParamExists)('updateWorkgroup', 'workgroupId', workgroupId); + // verify required parameter 'createWorkgroupRequestV2' is not null or undefined + (0, common_1.assertParamExists)('updateWorkgroup', 'createWorkgroupRequestV2', createWorkgroupRequestV2); + localVarPath = "/workgroups/{workgroupId}" + .replace("{".concat("workgroupId", "}"), encodeURIComponent(String(workgroupId))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'PATCH' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + localVarHeaderParameter['Content-Type'] = 'application/json'; + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(createWorkgroupRequestV2, localVarRequestOptions, configuration); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + }; + }; + exports.GovernanceGroupsV2ApiAxiosParamCreator = GovernanceGroupsV2ApiAxiosParamCreator; + /** + * GovernanceGroupsV2Api - functional programming interface + * @export + */ + var GovernanceGroupsV2ApiFp = function (configuration) { + var localVarAxiosParamCreator = (0, exports.GovernanceGroupsV2ApiAxiosParamCreator)(configuration); + return { + /** + * This API allows you to bulk-delete work groups + * @summary Bulk delete work groups + * @param {BulkDeleteWorkGroupsRequestV2} bulkDeleteWorkGroupsRequestV2 Work group ids to delete + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + bulkDeleteWorkGroups: function (bulkDeleteWorkGroupsRequestV2, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.bulkDeleteWorkGroups(bulkDeleteWorkGroupsRequestV2, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This API allows you to create a work group + * @summary Create Work Group + * @param {CreateWorkgroupRequestV2} createWorkgroupRequestV2 Work group to create. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + createWorkgroup: function (createWorkgroupRequestV2, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.createWorkgroup(createWorkgroupRequestV2, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This API deletes a single workgroup based on the ID + * @summary Delete Work Group By Id + * @param {string} workgroupId The workgroup ID + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + deleteWorkgroup: function (workgroupId, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.deleteWorkgroup(workgroupId, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This API returns the details for a single workgroup based on the ID + * @summary Get Work Group By Id + * @param {string} workgroupId The workgroup ID + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getWorkgroup: function (workgroupId, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.getWorkgroup(workgroupId, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This API returns the connections of a work group + * @summary List Work Group Connections + * @param {string} workgroupId The workgroup ID + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + listWorkgroupConnections: function (workgroupId, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.listWorkgroupConnections(workgroupId, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This API returns the members of a work group + * @summary List Work Group Members + * @param {string} workgroupId The workgroup ID + * @param {number} [limit] Max number of results to return + * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. + * @param {string} [filters] Filter results using the following syntax. [{property:name, value: \"Tyler\", operation: EQ}] + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + listWorkgroupMembers: function (workgroupId, limit, offset, filters, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.listWorkgroupMembers(workgroupId, limit, offset, filters, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This API returns a list of work groups + * @summary List Work Groups + * @param {number} [limit] Max number of results to return + * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. + * @param {string} [filters] Filter results using the following syntax. [{property:name, value: \"Tyler\", operation: EQ}] + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + listWorkgroups: function (limit, offset, filters, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.listWorkgroups(limit, offset, filters, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This API allows you to modify the members of a work group + * @summary Modify Work Group Members + * @param {string} workgroupId The workgroup ID + * @param {ModifyWorkgroupMembersRequestV2} modifyWorkgroupMembersRequestV2 Add/Remove workgroup member ids. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + modifyWorkgroupMembers: function (workgroupId, modifyWorkgroupMembersRequestV2, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.modifyWorkgroupMembers(workgroupId, modifyWorkgroupMembersRequestV2, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * This API updates and returns the details for a single workgroup based on the ID + * @summary Update Work Group By Id + * @param {string} workgroupId The workgroup ID + * @param {CreateWorkgroupRequestV2} createWorkgroupRequestV2 Work group to modify. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + updateWorkgroup: function (workgroupId, createWorkgroupRequestV2, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.updateWorkgroup(workgroupId, createWorkgroupRequestV2, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + }; + }; + exports.GovernanceGroupsV2ApiFp = GovernanceGroupsV2ApiFp; + /** + * GovernanceGroupsV2Api - factory interface + * @export + */ + var GovernanceGroupsV2ApiFactory = function (configuration, basePath, axios) { + var localVarFp = (0, exports.GovernanceGroupsV2ApiFp)(configuration); + return { + /** + * This API allows you to bulk-delete work groups + * @summary Bulk delete work groups + * @param {BulkDeleteWorkGroupsRequestV2} bulkDeleteWorkGroupsRequestV2 Work group ids to delete + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + bulkDeleteWorkGroups: function (bulkDeleteWorkGroupsRequestV2, axiosOptions) { + return localVarFp.bulkDeleteWorkGroups(bulkDeleteWorkGroupsRequestV2, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This API allows you to create a work group + * @summary Create Work Group + * @param {CreateWorkgroupRequestV2} createWorkgroupRequestV2 Work group to create. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + createWorkgroup: function (createWorkgroupRequestV2, axiosOptions) { + return localVarFp.createWorkgroup(createWorkgroupRequestV2, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This API deletes a single workgroup based on the ID + * @summary Delete Work Group By Id + * @param {string} workgroupId The workgroup ID + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + deleteWorkgroup: function (workgroupId, axiosOptions) { + return localVarFp.deleteWorkgroup(workgroupId, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This API returns the details for a single workgroup based on the ID + * @summary Get Work Group By Id + * @param {string} workgroupId The workgroup ID + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getWorkgroup: function (workgroupId, axiosOptions) { + return localVarFp.getWorkgroup(workgroupId, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This API returns the connections of a work group + * @summary List Work Group Connections + * @param {string} workgroupId The workgroup ID + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + listWorkgroupConnections: function (workgroupId, axiosOptions) { + return localVarFp.listWorkgroupConnections(workgroupId, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This API returns the members of a work group + * @summary List Work Group Members + * @param {string} workgroupId The workgroup ID + * @param {number} [limit] Max number of results to return + * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. + * @param {string} [filters] Filter results using the following syntax. [{property:name, value: \"Tyler\", operation: EQ}] + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + listWorkgroupMembers: function (workgroupId, limit, offset, filters, axiosOptions) { + return localVarFp.listWorkgroupMembers(workgroupId, limit, offset, filters, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This API returns a list of work groups + * @summary List Work Groups + * @param {number} [limit] Max number of results to return + * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. + * @param {string} [filters] Filter results using the following syntax. [{property:name, value: \"Tyler\", operation: EQ}] + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + listWorkgroups: function (limit, offset, filters, axiosOptions) { + return localVarFp.listWorkgroups(limit, offset, filters, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This API allows you to modify the members of a work group + * @summary Modify Work Group Members + * @param {string} workgroupId The workgroup ID + * @param {ModifyWorkgroupMembersRequestV2} modifyWorkgroupMembersRequestV2 Add/Remove workgroup member ids. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + modifyWorkgroupMembers: function (workgroupId, modifyWorkgroupMembersRequestV2, axiosOptions) { + return localVarFp.modifyWorkgroupMembers(workgroupId, modifyWorkgroupMembersRequestV2, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * This API updates and returns the details for a single workgroup based on the ID + * @summary Update Work Group By Id + * @param {string} workgroupId The workgroup ID + * @param {CreateWorkgroupRequestV2} createWorkgroupRequestV2 Work group to modify. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + updateWorkgroup: function (workgroupId, createWorkgroupRequestV2, axiosOptions) { + return localVarFp.updateWorkgroup(workgroupId, createWorkgroupRequestV2, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + }; + }; + exports.GovernanceGroupsV2ApiFactory = GovernanceGroupsV2ApiFactory; + /** + * GovernanceGroupsV2Api - object-oriented interface + * @export + * @class GovernanceGroupsV2Api + * @extends {BaseAPI} + */ + var GovernanceGroupsV2Api = /** @class */ (function (_super) { + __extends(GovernanceGroupsV2Api, _super); + function GovernanceGroupsV2Api() { + return _super !== null && _super.apply(this, arguments) || this; + } + /** + * This API allows you to bulk-delete work groups + * @summary Bulk delete work groups + * @param {GovernanceGroupsV2ApiBulkDeleteWorkGroupsRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof GovernanceGroupsV2Api + */ + GovernanceGroupsV2Api.prototype.bulkDeleteWorkGroups = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.GovernanceGroupsV2ApiFp)(this.configuration).bulkDeleteWorkGroups(requestParameters.bulkDeleteWorkGroupsRequestV2, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This API allows you to create a work group + * @summary Create Work Group + * @param {GovernanceGroupsV2ApiCreateWorkgroupRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof GovernanceGroupsV2Api + */ + GovernanceGroupsV2Api.prototype.createWorkgroup = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.GovernanceGroupsV2ApiFp)(this.configuration).createWorkgroup(requestParameters.createWorkgroupRequestV2, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This API deletes a single workgroup based on the ID + * @summary Delete Work Group By Id + * @param {GovernanceGroupsV2ApiDeleteWorkgroupRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof GovernanceGroupsV2Api + */ + GovernanceGroupsV2Api.prototype.deleteWorkgroup = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.GovernanceGroupsV2ApiFp)(this.configuration).deleteWorkgroup(requestParameters.workgroupId, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This API returns the details for a single workgroup based on the ID + * @summary Get Work Group By Id + * @param {GovernanceGroupsV2ApiGetWorkgroupRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof GovernanceGroupsV2Api + */ + GovernanceGroupsV2Api.prototype.getWorkgroup = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.GovernanceGroupsV2ApiFp)(this.configuration).getWorkgroup(requestParameters.workgroupId, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This API returns the connections of a work group + * @summary List Work Group Connections + * @param {GovernanceGroupsV2ApiListWorkgroupConnectionsRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof GovernanceGroupsV2Api + */ + GovernanceGroupsV2Api.prototype.listWorkgroupConnections = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.GovernanceGroupsV2ApiFp)(this.configuration).listWorkgroupConnections(requestParameters.workgroupId, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This API returns the members of a work group + * @summary List Work Group Members + * @param {GovernanceGroupsV2ApiListWorkgroupMembersRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof GovernanceGroupsV2Api + */ + GovernanceGroupsV2Api.prototype.listWorkgroupMembers = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.GovernanceGroupsV2ApiFp)(this.configuration).listWorkgroupMembers(requestParameters.workgroupId, requestParameters.limit, requestParameters.offset, requestParameters.filters, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This API returns a list of work groups + * @summary List Work Groups + * @param {GovernanceGroupsV2ApiListWorkgroupsRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof GovernanceGroupsV2Api + */ + GovernanceGroupsV2Api.prototype.listWorkgroups = function (requestParameters, axiosOptions) { + var _this = this; + if (requestParameters === void 0) { requestParameters = {}; } + return (0, exports.GovernanceGroupsV2ApiFp)(this.configuration).listWorkgroups(requestParameters.limit, requestParameters.offset, requestParameters.filters, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This API allows you to modify the members of a work group + * @summary Modify Work Group Members + * @param {GovernanceGroupsV2ApiModifyWorkgroupMembersRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof GovernanceGroupsV2Api + */ + GovernanceGroupsV2Api.prototype.modifyWorkgroupMembers = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.GovernanceGroupsV2ApiFp)(this.configuration).modifyWorkgroupMembers(requestParameters.workgroupId, requestParameters.modifyWorkgroupMembersRequestV2, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * This API updates and returns the details for a single workgroup based on the ID + * @summary Update Work Group By Id + * @param {GovernanceGroupsV2ApiUpdateWorkgroupRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof GovernanceGroupsV2Api + */ + GovernanceGroupsV2Api.prototype.updateWorkgroup = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.GovernanceGroupsV2ApiFp)(this.configuration).updateWorkgroup(requestParameters.workgroupId, requestParameters.createWorkgroupRequestV2, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + return GovernanceGroupsV2Api; + }(base_1.BaseAPI)); + exports.GovernanceGroupsV2Api = GovernanceGroupsV2Api; + /** + * OrgV2Api - axios parameter creator + * @export + */ + var OrgV2ApiAxiosParamCreator = function (configuration) { + var _this = this; + return { + /** + * Retrieves information and operational settings for your org (as determined by the URL domain). + * @summary Retrieves your org settings. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getOrgSettings: function (axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + localVarPath = "/org"; + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + }); + }); + }, + /** + * Updates one or more attributes for your org. + * @summary Updates one or more org attributes. + * @param {UpdateOrgSettingsRequestV2} updateOrgSettingsRequestV2 Org settings to update. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + updateOrgSettings: function (updateOrgSettingsRequestV2, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + // verify required parameter 'updateOrgSettingsRequestV2' is not null or undefined + (0, common_1.assertParamExists)('updateOrgSettings', 'updateOrgSettingsRequestV2', updateOrgSettingsRequestV2); + localVarPath = "/org"; + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'PATCH' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + localVarHeaderParameter['Content-Type'] = 'application/json'; + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(updateOrgSettingsRequestV2, localVarRequestOptions, configuration); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + }); + }); + }, + }; + }; + exports.OrgV2ApiAxiosParamCreator = OrgV2ApiAxiosParamCreator; + /** + * OrgV2Api - functional programming interface + * @export + */ + var OrgV2ApiFp = function (configuration) { + var localVarAxiosParamCreator = (0, exports.OrgV2ApiAxiosParamCreator)(configuration); + return { + /** + * Retrieves information and operational settings for your org (as determined by the URL domain). + * @summary Retrieves your org settings. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getOrgSettings: function (axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.getOrgSettings(axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * Updates one or more attributes for your org. + * @summary Updates one or more org attributes. + * @param {UpdateOrgSettingsRequestV2} updateOrgSettingsRequestV2 Org settings to update. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + updateOrgSettings: function (updateOrgSettingsRequestV2, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.updateOrgSettings(updateOrgSettingsRequestV2, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + }; + }; + exports.OrgV2ApiFp = OrgV2ApiFp; + /** + * OrgV2Api - factory interface + * @export + */ + var OrgV2ApiFactory = function (configuration, basePath, axios) { + var localVarFp = (0, exports.OrgV2ApiFp)(configuration); + return { + /** + * Retrieves information and operational settings for your org (as determined by the URL domain). + * @summary Retrieves your org settings. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getOrgSettings: function (axiosOptions) { + return localVarFp.getOrgSettings(axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * Updates one or more attributes for your org. + * @summary Updates one or more org attributes. + * @param {UpdateOrgSettingsRequestV2} updateOrgSettingsRequestV2 Org settings to update. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + updateOrgSettings: function (updateOrgSettingsRequestV2, axiosOptions) { + return localVarFp.updateOrgSettings(updateOrgSettingsRequestV2, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + }; + }; + exports.OrgV2ApiFactory = OrgV2ApiFactory; + /** + * OrgV2Api - object-oriented interface + * @export + * @class OrgV2Api + * @extends {BaseAPI} + */ + var OrgV2Api = /** @class */ (function (_super) { + __extends(OrgV2Api, _super); + function OrgV2Api() { + return _super !== null && _super.apply(this, arguments) || this; + } + /** + * Retrieves information and operational settings for your org (as determined by the URL domain). + * @summary Retrieves your org settings. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof OrgV2Api + */ + OrgV2Api.prototype.getOrgSettings = function (axiosOptions) { + var _this = this; + return (0, exports.OrgV2ApiFp)(this.configuration).getOrgSettings(axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * Updates one or more attributes for your org. + * @summary Updates one or more org attributes. + * @param {OrgV2ApiUpdateOrgSettingsRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof OrgV2Api + */ + OrgV2Api.prototype.updateOrgSettings = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.OrgV2ApiFp)(this.configuration).updateOrgSettings(requestParameters.updateOrgSettingsRequestV2, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + return OrgV2Api; + }(base_1.BaseAPI)); + exports.OrgV2Api = OrgV2Api; + + } (api$1)); + return api$1; +} + +var configuration$2 = {}; + +var hasRequiredConfiguration$2; + +function requireConfiguration$2 () { + if (hasRequiredConfiguration$2) return configuration$2; + hasRequiredConfiguration$2 = 1; + /* tslint:disable */ + /* eslint-disable */ + /** + * SailPoint SaaS API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 2.0.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + Object.defineProperty(configuration$2, "__esModule", { value: true }); + configuration$2.Configuration = void 0; + var Configuration = /** @class */ (function () { + function Configuration(param) { + if (param === void 0) { param = {}; } + this.apiKey = param.apiKey; + this.username = param.username; + this.password = param.password; + this.accessToken = param.accessToken; + this.basePath = param.basePath; + this.baseOptions = param.baseOptions; + this.formDataCtor = param.formDataCtor; + } + /** + * Check if the given MIME is a JSON MIME. + * JSON MIME examples: + * application/json + * application/json; charset=UTF8 + * APPLICATION/JSON + * application/vnd.company+json + * @param mime - MIME (Multipurpose Internet Mail Extensions) + * @return True if the given MIME is JSON, false otherwise. + */ + Configuration.prototype.isJsonMime = function (mime) { + var jsonMime = new RegExp('^(application\/json|[^;/ \t]+\/[^;/ \t]+[+]json)[ \t]*(;.*)?$', 'i'); + return mime !== null && (jsonMime.test(mime) || mime.toLowerCase() === 'application/json-patch+json'); + }; + return Configuration; + }()); + configuration$2.Configuration = Configuration; + + return configuration$2; +} + +var api = {}; + +var common$1 = {}; + +var base = {}; + +var hasRequiredBase; + +function requireBase () { + if (hasRequiredBase) return base; + hasRequiredBase = 1; + (function (exports) { + /* tslint:disable */ + /* eslint-disable */ + /** + * IdentityNow cc (private) APIs + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 1.0.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + var __extends = (commonjsGlobal && commonjsGlobal.__extends) || (function () { + var extendStatics = function (d, b) { + extendStatics = Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || + function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; }; + return extendStatics(d, b); + }; + return function (d, b) { + if (typeof b !== "function" && b !== null) + throw new TypeError("Class extends value " + String(b) + " is not a constructor or null"); + extendStatics(d, b); + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; + })(); + var __importDefault = (commonjsGlobal && commonjsGlobal.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; + }; + Object.defineProperty(exports, "__esModule", { value: true }); + exports.RequiredError = exports.BaseAPI = exports.COLLECTION_FORMATS = exports.BASE_PATH = void 0; + // Some imports not used depending on template conditions + // @ts-ignore + var axios_1 = __importDefault(requireAxios()); + exports.BASE_PATH = "https://sailpoint.api.identitynow.com".replace(/\/+$/, ""); + /** + * + * @export + */ + exports.COLLECTION_FORMATS = { + csv: ",", + ssv: " ", + tsv: "\t", + pipes: "|", + }; + /** + * + * @export + * @class BaseAPI + */ + var BaseAPI = /** @class */ (function () { + function BaseAPI(configuration, basePath, axios) { + if (basePath === void 0) { basePath = exports.BASE_PATH; } + if (axios === void 0) { axios = axios_1.default; } + this.basePath = basePath; + this.axios = axios; + if (configuration) { + this.configuration = configuration; + this.basePath = configuration.basePathCC || this.basePath; + } + } + return BaseAPI; + }()); + exports.BaseAPI = BaseAPI; + /** + * + * @export + * @class RequiredError + * @extends {Error} + */ + var RequiredError = /** @class */ (function (_super) { + __extends(RequiredError, _super); + function RequiredError(field, msg) { + var _this = _super.call(this, msg) || this; + _this.field = field; + _this.name = "RequiredError"; + return _this; + } + return RequiredError; + }(Error)); + exports.RequiredError = RequiredError; + + } (base)); + return base; +} + +var hasRequiredCommon$1; + +function requireCommon$1 () { + if (hasRequiredCommon$1) return common$1; + hasRequiredCommon$1 = 1; + /* tslint:disable */ + /* eslint-disable */ + /** + * IdentityNow cc (private) APIs + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 1.0.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + var __assign = (commonjsGlobal && commonjsGlobal.__assign) || function () { + __assign = Object.assign || function(t) { + for (var s, i = 1, n = arguments.length; i < n; i++) { + s = arguments[i]; + for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) + t[p] = s[p]; + } + return t; + }; + return __assign.apply(this, arguments); + }; + var __awaiter = (commonjsGlobal && commonjsGlobal.__awaiter) || function (thisArg, _arguments, P, generator) { + function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); + }; + var __generator = (commonjsGlobal && commonjsGlobal.__generator) || function (thisArg, body) { + var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g; + return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; + function verb(n) { return function (v) { return step([n, v]); }; } + function step(op) { + if (f) throw new TypeError("Generator is already executing."); + while (g && (g = 0, op[0] && (_ = 0)), _) try { + if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; + if (y = 0, t) op = [op[0] & 2, t.value]; + switch (op[0]) { + case 0: case 1: t = op; break; + case 4: _.label++; return { value: op[1], done: false }; + case 5: _.label++; y = op[1]; op = [0]; continue; + case 7: op = _.ops.pop(); _.trys.pop(); continue; + default: + if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } + if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } + if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } + if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } + if (t[2]) _.ops.pop(); + _.trys.pop(); continue; + } + op = body.call(thisArg, _); + } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } + if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; + } + }; + var __importDefault = (commonjsGlobal && commonjsGlobal.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; + }; + Object.defineProperty(common$1, "__esModule", { value: true }); + common$1.createRequestFunction = common$1.toPathString = common$1.serializeDataIfNeeded = common$1.setSearchParams = common$1.setOAuthToObject = common$1.setBearerAuthToObject = common$1.setBasicAuthToObject = common$1.setApiKeyToObject = common$1.assertParamExists = common$1.DUMMY_BASE_URL = void 0; + var base_1 = requireBase(); + var axios_retry_1 = __importDefault(requireAxiosRetry()); + /** + * + * @export + */ + common$1.DUMMY_BASE_URL = 'https://example.com'; + /** + * + * @throws {RequiredError} + * @export + */ + var assertParamExists = function (functionName, paramName, paramValue) { + if (paramValue === null || paramValue === undefined) { + throw new base_1.RequiredError(paramName, "Required parameter ".concat(paramName, " was null or undefined when calling ").concat(functionName, ".")); + } + }; + common$1.assertParamExists = assertParamExists; + /** + * + * @export + */ + var setApiKeyToObject = function (object, keyParamName, configuration) { + return __awaiter(this, void 0, void 0, function () { + var localVarApiKeyValue, _a; + return __generator(this, function (_b) { + switch (_b.label) { + case 0: + if (!(configuration && configuration.apiKey)) return [3 /*break*/, 5]; + if (!(typeof configuration.apiKey === 'function')) return [3 /*break*/, 2]; + return [4 /*yield*/, configuration.apiKey(keyParamName)]; + case 1: + _a = _b.sent(); + return [3 /*break*/, 4]; + case 2: return [4 /*yield*/, configuration.apiKey]; + case 3: + _a = _b.sent(); + _b.label = 4; + case 4: + localVarApiKeyValue = _a; + object[keyParamName] = localVarApiKeyValue; + _b.label = 5; + case 5: return [2 /*return*/]; + } + }); + }); + }; + common$1.setApiKeyToObject = setApiKeyToObject; + /** + * + * @export + */ + var setBasicAuthToObject = function (object, configuration) { + if (configuration && (configuration.username || configuration.password)) { + object["auth"] = { username: configuration.username, password: configuration.password }; + } + }; + common$1.setBasicAuthToObject = setBasicAuthToObject; + /** + * + * @export + */ + var setBearerAuthToObject = function (object, configuration) { + return __awaiter(this, void 0, void 0, function () { + var accessToken, _a; + return __generator(this, function (_b) { + switch (_b.label) { + case 0: + if (!(configuration && configuration.accessToken)) return [3 /*break*/, 5]; + if (!(typeof configuration.accessToken === 'function')) return [3 /*break*/, 2]; + return [4 /*yield*/, configuration.accessToken()]; + case 1: + _a = _b.sent(); + return [3 /*break*/, 4]; + case 2: return [4 /*yield*/, configuration.accessToken]; + case 3: + _a = _b.sent(); + _b.label = 4; + case 4: + accessToken = _a; + object["Authorization"] = "Bearer " + accessToken; + _b.label = 5; + case 5: return [2 /*return*/]; + } + }); + }); + }; + common$1.setBearerAuthToObject = setBearerAuthToObject; + /** + * + * @export + */ + var setOAuthToObject = function (object, name, scopes, configuration) { + return __awaiter(this, void 0, void 0, function () { + var localVarAccessTokenValue, _a; + return __generator(this, function (_b) { + switch (_b.label) { + case 0: + if (!(configuration && configuration.accessToken)) return [3 /*break*/, 5]; + if (!(typeof configuration.accessToken === 'function')) return [3 /*break*/, 2]; + return [4 /*yield*/, configuration.accessToken(name, scopes)]; + case 1: + _a = _b.sent(); + return [3 /*break*/, 4]; + case 2: return [4 /*yield*/, configuration.accessToken]; + case 3: + _a = _b.sent(); + _b.label = 4; + case 4: + localVarAccessTokenValue = _a; + object["Authorization"] = "Bearer " + localVarAccessTokenValue; + _b.label = 5; + case 5: return [2 /*return*/]; + } + }); + }); + }; + common$1.setOAuthToObject = setOAuthToObject; + /** + * + * @export + */ + var setSearchParams = function (url) { + var objects = []; + for (var _i = 1; _i < arguments.length; _i++) { + objects[_i - 1] = arguments[_i]; + } + var searchParams = new URLSearchParams(url.search); + for (var _a = 0, objects_1 = objects; _a < objects_1.length; _a++) { + var object = objects_1[_a]; + for (var key in object) { + if (Array.isArray(object[key])) { + searchParams.delete(key); + for (var _b = 0, _c = object[key]; _b < _c.length; _b++) { + var item = _c[_b]; + searchParams.append(key, item); + } + } + else { + searchParams.set(key, object[key]); + } + } + } + url.search = searchParams.toString(); + }; + common$1.setSearchParams = setSearchParams; + /** + * + * @export + */ + var serializeDataIfNeeded = function (value, requestOptions, configuration) { + var nonString = typeof value !== 'string'; + var needsSerialization = nonString && configuration && configuration.isJsonMime + ? configuration.isJsonMime(requestOptions.headers['Content-Type']) + : nonString; + return needsSerialization + ? JSON.stringify(value !== undefined ? value : {}) + : (value || ""); + }; + common$1.serializeDataIfNeeded = serializeDataIfNeeded; + /** + * + * @export + */ + var toPathString = function (url) { + return url.pathname + url.search + url.hash; + }; + common$1.toPathString = toPathString; + /** + * + * @export + */ + var createRequestFunction = function (axiosArgs, globalAxios, BASE_PATH, configuration) { + return function (axios, basePath) { + if (axios === void 0) { axios = globalAxios; } + if (basePath === void 0) { basePath = BASE_PATH; } + (0, axios_retry_1.default)(globalAxios, configuration.retriesConfig); + axiosArgs.axiosOptions.headers['X-SailPoint-SDK'] = 'typescript-1.3.0'; + axiosArgs.axiosOptions.headers['User-Agent'] = 'OpenAPI-Generator/1.3.0/ts'; + var axiosRequestArgs = __assign(__assign({}, axiosArgs.axiosOptions), { url: ((configuration === null || configuration === void 0 ? void 0 : configuration.basePathCC) || basePath) + axiosArgs.url }); + return axios.request(axiosRequestArgs); + }; + }; + common$1.createRequestFunction = createRequestFunction; + + return common$1; +} + +var hasRequiredApi; + +function requireApi () { + if (hasRequiredApi) return api; + hasRequiredApi = 1; + (function (exports) { + /* tslint:disable */ + /* eslint-disable */ + /** + * IdentityNow cc (private) APIs + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 1.0.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + var __extends = (commonjsGlobal && commonjsGlobal.__extends) || (function () { + var extendStatics = function (d, b) { + extendStatics = Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || + function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; }; + return extendStatics(d, b); + }; + return function (d, b) { + if (typeof b !== "function" && b !== null) + throw new TypeError("Class extends value " + String(b) + " is not a constructor or null"); + extendStatics(d, b); + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; + })(); + var __assign = (commonjsGlobal && commonjsGlobal.__assign) || function () { + __assign = Object.assign || function(t) { + for (var s, i = 1, n = arguments.length; i < n; i++) { + s = arguments[i]; + for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) + t[p] = s[p]; + } + return t; + }; + return __assign.apply(this, arguments); + }; + var __awaiter = (commonjsGlobal && commonjsGlobal.__awaiter) || function (thisArg, _arguments, P, generator) { + function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); + }; + var __generator = (commonjsGlobal && commonjsGlobal.__generator) || function (thisArg, body) { + var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g; + return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; + function verb(n) { return function (v) { return step([n, v]); }; } + function step(op) { + if (f) throw new TypeError("Generator is already executing."); + while (g && (g = 0, op[0] && (_ = 0)), _) try { + if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; + if (y = 0, t) op = [op[0] & 2, t.value]; + switch (op[0]) { + case 0: case 1: t = op; break; + case 4: _.label++; return { value: op[1], done: false }; + case 5: _.label++; y = op[1]; op = [0]; continue; + case 7: op = _.ops.pop(); _.trys.pop(); continue; + default: + if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } + if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } + if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } + if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } + if (t[2]) _.ops.pop(); + _.trys.pop(); continue; + } + op = body.call(thisArg, _); + } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } + if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; + } + }; + var __importDefault = (commonjsGlobal && commonjsGlobal.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; + }; + Object.defineProperty(exports, "__esModule", { value: true }); + exports.UserCCApi = exports.UserCCApiFactory = exports.UserCCApiFp = exports.UserCCApiAxiosParamCreator = exports.SystemCCApi = exports.SystemCCApiFactory = exports.SystemCCApiFp = exports.SystemCCApiAxiosParamCreator = exports.SourcesAggregationCCApi = exports.SourcesAggregationCCApiFactory = exports.SourcesAggregationCCApiFp = exports.SourcesAggregationCCApiAxiosParamCreator = exports.SourcesAccountsCCApi = exports.SourcesAccountsCCApiFactory = exports.SourcesAccountsCCApiFp = exports.SourcesAccountsCCApiAxiosParamCreator = exports.ConnectorsCCApi = exports.ConnectorsCCApiFactory = exports.ConnectorsCCApiFp = exports.ConnectorsCCApiAxiosParamCreator = exports.ApplicationsCCApi = exports.ApplicationsCCApiFactory = exports.ApplicationsCCApiFp = exports.ApplicationsCCApiAxiosParamCreator = exports.AccountsCCApi = exports.AccountsCCApiFactory = exports.AccountsCCApiFp = exports.AccountsCCApiAxiosParamCreator = exports.UpdateUserPermissionsRequestCCAdminTypeEnum = void 0; + var axios_1 = __importDefault(requireAxios()); + // Some imports not used depending on template conditions + // @ts-ignore + var common_1 = requireCommon$1(); + // @ts-ignore + var base_1 = requireBase(); + exports.UpdateUserPermissionsRequestCCAdminTypeEnum = { + Admin: 'ADMIN', + CertAdmin: 'CERT_ADMIN', + Helpdesk: 'HELPDESK', + ReportAdmin: 'REPORT_ADMIN', + RoleAdmin: 'ROLE_ADMIN', + RoleSubadmin: 'ROLE_SUBADMIN', + SourceAdmin: 'SOURCE_ADMIN', + SourceSubadmin: 'SOURCE_SUBADMIN' + }; + /** + * AccountsCCApi - axios parameter creator + * @export + */ + var AccountsCCApiAxiosParamCreator = function (configuration) { + var _this = this; + return { + /** + * + * @summary List Accounts + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + listAccounts: function (axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + localVarPath = "/cc/api/account/list"; + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * + * @summary Remove Account + * @param {string} id + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + removeAccount: function (id, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'id' is not null or undefined + (0, common_1.assertParamExists)('removeAccount', 'id', id); + localVarPath = "/cc/api/account/remove/{id}" + .replace("{".concat("id", "}"), encodeURIComponent(String(id))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + }; + }; + exports.AccountsCCApiAxiosParamCreator = AccountsCCApiAxiosParamCreator; + /** + * AccountsCCApi - functional programming interface + * @export + */ + var AccountsCCApiFp = function (configuration) { + var localVarAxiosParamCreator = (0, exports.AccountsCCApiAxiosParamCreator)(configuration); + return { + /** + * + * @summary List Accounts + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + listAccounts: function (axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.listAccounts(axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * + * @summary Remove Account + * @param {string} id + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + removeAccount: function (id, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.removeAccount(id, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + }; + }; + exports.AccountsCCApiFp = AccountsCCApiFp; + /** + * AccountsCCApi - factory interface + * @export + */ + var AccountsCCApiFactory = function (configuration, basePath, axios) { + var localVarFp = (0, exports.AccountsCCApiFp)(configuration); + return { + /** + * + * @summary List Accounts + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + listAccounts: function (axiosOptions) { + return localVarFp.listAccounts(axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * + * @summary Remove Account + * @param {string} id + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + removeAccount: function (id, axiosOptions) { + return localVarFp.removeAccount(id, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + }; + }; + exports.AccountsCCApiFactory = AccountsCCApiFactory; + /** + * AccountsCCApi - object-oriented interface + * @export + * @class AccountsCCApi + * @extends {BaseAPI} + */ + var AccountsCCApi = /** @class */ (function (_super) { + __extends(AccountsCCApi, _super); + function AccountsCCApi() { + return _super !== null && _super.apply(this, arguments) || this; + } + /** + * + * @summary List Accounts + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof AccountsCCApi + */ + AccountsCCApi.prototype.listAccounts = function (axiosOptions) { + var _this = this; + return (0, exports.AccountsCCApiFp)(this.configuration).listAccounts(axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * + * @summary Remove Account + * @param {AccountsCCApiRemoveAccountRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof AccountsCCApi + */ + AccountsCCApi.prototype.removeAccount = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.AccountsCCApiFp)(this.configuration).removeAccount(requestParameters.id, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + return AccountsCCApi; + }(base_1.BaseAPI)); + exports.AccountsCCApi = AccountsCCApi; + /** + * ApplicationsCCApi - axios parameter creator + * @export + */ + var ApplicationsCCApiAxiosParamCreator = function (configuration) { + var _this = this; + return { + /** + * + * @summary Create Application + * @param {CreateApplicationRequestCC} [createApplicationRequestCC] + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + createApplication: function (createApplicationRequestCC, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + localVarPath = "/cc/api/app/create"; + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + localVarHeaderParameter['Content-Type'] = 'application/json'; + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(createApplicationRequestCC, localVarRequestOptions, configuration); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * + * @summary Delete Application + * @param {string} id + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + deleteApplication: function (id, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'id' is not null or undefined + (0, common_1.assertParamExists)('deleteApplication', 'id', id); + localVarPath = "/cc/api/app/delete/{id}" + .replace("{".concat("id", "}"), encodeURIComponent(String(id))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * + * @summary Get Single Application + * @param {string} id + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getApplication: function (id, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'id' is not null or undefined + (0, common_1.assertParamExists)('getApplication', 'id', id); + localVarPath = "/cc/api/app/get/{id}" + .replace("{".concat("id", "}"), encodeURIComponent(String(id))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * + * @summary Get Access Profiles for Application + * @param {string} id + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getApplicationAccessProfiles: function (id, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + // verify required parameter 'id' is not null or undefined + (0, common_1.assertParamExists)('getApplicationAccessProfiles', 'id', id); + localVarPath = "/cc/api/app/getAccessProfiles/{id}" + .replace("{".concat("id", "}"), encodeURIComponent(String(id))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + }); + }); + }, + /** + * + * @summary List Applications + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + listApplications: function (axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + localVarPath = "/cc/api/app/list"; + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * + * @summary Update Application + * @param {string} id + * @param {{ [key: string]: any; }} [requestBody] + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + updateApplication: function (id, requestBody, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'id' is not null or undefined + (0, common_1.assertParamExists)('updateApplication', 'id', id); + localVarPath = "/cc/api/app/update/{id}" + .replace("{".concat("id", "}"), encodeURIComponent(String(id))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + localVarHeaderParameter['Content-Type'] = 'application/json'; + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(requestBody, localVarRequestOptions, configuration); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + }; + }; + exports.ApplicationsCCApiAxiosParamCreator = ApplicationsCCApiAxiosParamCreator; + /** + * ApplicationsCCApi - functional programming interface + * @export + */ + var ApplicationsCCApiFp = function (configuration) { + var localVarAxiosParamCreator = (0, exports.ApplicationsCCApiAxiosParamCreator)(configuration); + return { + /** + * + * @summary Create Application + * @param {CreateApplicationRequestCC} [createApplicationRequestCC] + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + createApplication: function (createApplicationRequestCC, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.createApplication(createApplicationRequestCC, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * + * @summary Delete Application + * @param {string} id + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + deleteApplication: function (id, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.deleteApplication(id, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * + * @summary Get Single Application + * @param {string} id + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getApplication: function (id, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.getApplication(id, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * + * @summary Get Access Profiles for Application + * @param {string} id + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getApplicationAccessProfiles: function (id, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.getApplicationAccessProfiles(id, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * + * @summary List Applications + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + listApplications: function (axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.listApplications(axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * + * @summary Update Application + * @param {string} id + * @param {{ [key: string]: any; }} [requestBody] + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + updateApplication: function (id, requestBody, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.updateApplication(id, requestBody, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + }; + }; + exports.ApplicationsCCApiFp = ApplicationsCCApiFp; + /** + * ApplicationsCCApi - factory interface + * @export + */ + var ApplicationsCCApiFactory = function (configuration, basePath, axios) { + var localVarFp = (0, exports.ApplicationsCCApiFp)(configuration); + return { + /** + * + * @summary Create Application + * @param {CreateApplicationRequestCC} [createApplicationRequestCC] + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + createApplication: function (createApplicationRequestCC, axiosOptions) { + return localVarFp.createApplication(createApplicationRequestCC, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * + * @summary Delete Application + * @param {string} id + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + deleteApplication: function (id, axiosOptions) { + return localVarFp.deleteApplication(id, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * + * @summary Get Single Application + * @param {string} id + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getApplication: function (id, axiosOptions) { + return localVarFp.getApplication(id, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * + * @summary Get Access Profiles for Application + * @param {string} id + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getApplicationAccessProfiles: function (id, axiosOptions) { + return localVarFp.getApplicationAccessProfiles(id, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * + * @summary List Applications + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + listApplications: function (axiosOptions) { + return localVarFp.listApplications(axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * + * @summary Update Application + * @param {string} id + * @param {{ [key: string]: any; }} [requestBody] + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + updateApplication: function (id, requestBody, axiosOptions) { + return localVarFp.updateApplication(id, requestBody, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + }; + }; + exports.ApplicationsCCApiFactory = ApplicationsCCApiFactory; + /** + * ApplicationsCCApi - object-oriented interface + * @export + * @class ApplicationsCCApi + * @extends {BaseAPI} + */ + var ApplicationsCCApi = /** @class */ (function (_super) { + __extends(ApplicationsCCApi, _super); + function ApplicationsCCApi() { + return _super !== null && _super.apply(this, arguments) || this; + } + /** + * + * @summary Create Application + * @param {ApplicationsCCApiCreateApplicationRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof ApplicationsCCApi + */ + ApplicationsCCApi.prototype.createApplication = function (requestParameters, axiosOptions) { + var _this = this; + if (requestParameters === void 0) { requestParameters = {}; } + return (0, exports.ApplicationsCCApiFp)(this.configuration).createApplication(requestParameters.createApplicationRequestCC, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * + * @summary Delete Application + * @param {ApplicationsCCApiDeleteApplicationRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof ApplicationsCCApi + */ + ApplicationsCCApi.prototype.deleteApplication = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.ApplicationsCCApiFp)(this.configuration).deleteApplication(requestParameters.id, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * + * @summary Get Single Application + * @param {ApplicationsCCApiGetApplicationRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof ApplicationsCCApi + */ + ApplicationsCCApi.prototype.getApplication = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.ApplicationsCCApiFp)(this.configuration).getApplication(requestParameters.id, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * + * @summary Get Access Profiles for Application + * @param {ApplicationsCCApiGetApplicationAccessProfilesRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof ApplicationsCCApi + */ + ApplicationsCCApi.prototype.getApplicationAccessProfiles = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.ApplicationsCCApiFp)(this.configuration).getApplicationAccessProfiles(requestParameters.id, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * + * @summary List Applications + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof ApplicationsCCApi + */ + ApplicationsCCApi.prototype.listApplications = function (axiosOptions) { + var _this = this; + return (0, exports.ApplicationsCCApiFp)(this.configuration).listApplications(axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * + * @summary Update Application + * @param {ApplicationsCCApiUpdateApplicationRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof ApplicationsCCApi + */ + ApplicationsCCApi.prototype.updateApplication = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.ApplicationsCCApiFp)(this.configuration).updateApplication(requestParameters.id, requestParameters.requestBody, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + return ApplicationsCCApi; + }(base_1.BaseAPI)); + exports.ApplicationsCCApi = ApplicationsCCApi; + /** + * ConnectorsCCApi - axios parameter creator + * @export + */ + var ConnectorsCCApiAxiosParamCreator = function (configuration) { + var _this = this; + return { + /** + * + * @summary Create Connector + * @param {string} [contentType] + * @param {string} [name] + * @param {string} [description] + * @param {string} [className] + * @param {boolean} [directConnect] + * @param {string} [status] + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + createConnector: function (contentType, name, description, className, directConnect, status, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, localVarFormParams, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + localVarPath = "/cc/api/connector/create"; + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + localVarFormParams = new URLSearchParams(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + if (contentType !== undefined && contentType !== null) { + localVarHeaderParameter['Content-Type'] = String(contentType); + } + if (name !== undefined) { + localVarFormParams.set('name', name); + } + if (description !== undefined) { + localVarFormParams.set('description', description); + } + if (className !== undefined) { + localVarFormParams.set('className', className); + } + if (directConnect !== undefined) { + localVarFormParams.set('directConnect', directConnect); + } + if (status !== undefined) { + localVarFormParams.set('status', status); + } + localVarHeaderParameter['Content-Type'] = 'application/x-www-form-urlencoded'; + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + localVarRequestOptions.data = localVarFormParams.toString(); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * + * @summary Delete Connector + * @param {string} id + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + deleteConnector: function (id, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'id' is not null or undefined + (0, common_1.assertParamExists)('deleteConnector', 'id', id); + localVarPath = "/cc/api/connector/delete/{id}" + .replace("{".concat("id", "}"), encodeURIComponent(String(id))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * + * @summary Export Connector Config + * @param {string} id + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + exportConnectorConfig: function (id, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'id' is not null or undefined + (0, common_1.assertParamExists)('exportConnectorConfig', 'id', id); + localVarPath = "/cc/api/connector/export/{id}" + .replace("{".concat("id", "}"), encodeURIComponent(String(id))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * + * @summary Import Connector Config + * @param {string} id + * @param {any} [file] This is the connector config zip bundle which gets uploaded. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + importConnectorConfig: function (id, file, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, localVarFormParams, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'id' is not null or undefined + (0, common_1.assertParamExists)('importConnectorConfig', 'id', id); + localVarPath = "/cc/api/connector/import/{id}" + .replace("{".concat("id", "}"), encodeURIComponent(String(id))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + localVarFormParams = new ((configuration && configuration.formDataCtor) || FormData)(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + if (file !== undefined) { + localVarFormParams.append('file', file); + } + localVarHeaderParameter['Content-Type'] = 'multipart/form-data'; + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + localVarRequestOptions.data = localVarFormParams; + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * + * @summary List Connectors + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + listConnectors: function (axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + localVarPath = "/cc/api/connector/list"; + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + }; + }; + exports.ConnectorsCCApiAxiosParamCreator = ConnectorsCCApiAxiosParamCreator; + /** + * ConnectorsCCApi - functional programming interface + * @export + */ + var ConnectorsCCApiFp = function (configuration) { + var localVarAxiosParamCreator = (0, exports.ConnectorsCCApiAxiosParamCreator)(configuration); + return { + /** + * + * @summary Create Connector + * @param {string} [contentType] + * @param {string} [name] + * @param {string} [description] + * @param {string} [className] + * @param {boolean} [directConnect] + * @param {string} [status] + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + createConnector: function (contentType, name, description, className, directConnect, status, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.createConnector(contentType, name, description, className, directConnect, status, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * + * @summary Delete Connector + * @param {string} id + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + deleteConnector: function (id, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.deleteConnector(id, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * + * @summary Export Connector Config + * @param {string} id + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + exportConnectorConfig: function (id, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.exportConnectorConfig(id, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * + * @summary Import Connector Config + * @param {string} id + * @param {any} [file] This is the connector config zip bundle which gets uploaded. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + importConnectorConfig: function (id, file, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.importConnectorConfig(id, file, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * + * @summary List Connectors + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + listConnectors: function (axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.listConnectors(axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + }; + }; + exports.ConnectorsCCApiFp = ConnectorsCCApiFp; + /** + * ConnectorsCCApi - factory interface + * @export + */ + var ConnectorsCCApiFactory = function (configuration, basePath, axios) { + var localVarFp = (0, exports.ConnectorsCCApiFp)(configuration); + return { + /** + * + * @summary Create Connector + * @param {string} [contentType] + * @param {string} [name] + * @param {string} [description] + * @param {string} [className] + * @param {boolean} [directConnect] + * @param {string} [status] + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + createConnector: function (contentType, name, description, className, directConnect, status, axiosOptions) { + return localVarFp.createConnector(contentType, name, description, className, directConnect, status, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * + * @summary Delete Connector + * @param {string} id + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + deleteConnector: function (id, axiosOptions) { + return localVarFp.deleteConnector(id, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * + * @summary Export Connector Config + * @param {string} id + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + exportConnectorConfig: function (id, axiosOptions) { + return localVarFp.exportConnectorConfig(id, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * + * @summary Import Connector Config + * @param {string} id + * @param {any} [file] This is the connector config zip bundle which gets uploaded. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + importConnectorConfig: function (id, file, axiosOptions) { + return localVarFp.importConnectorConfig(id, file, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * + * @summary List Connectors + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + listConnectors: function (axiosOptions) { + return localVarFp.listConnectors(axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + }; + }; + exports.ConnectorsCCApiFactory = ConnectorsCCApiFactory; + /** + * ConnectorsCCApi - object-oriented interface + * @export + * @class ConnectorsCCApi + * @extends {BaseAPI} + */ + var ConnectorsCCApi = /** @class */ (function (_super) { + __extends(ConnectorsCCApi, _super); + function ConnectorsCCApi() { + return _super !== null && _super.apply(this, arguments) || this; + } + /** + * + * @summary Create Connector + * @param {ConnectorsCCApiCreateConnectorRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof ConnectorsCCApi + */ + ConnectorsCCApi.prototype.createConnector = function (requestParameters, axiosOptions) { + var _this = this; + if (requestParameters === void 0) { requestParameters = {}; } + return (0, exports.ConnectorsCCApiFp)(this.configuration).createConnector(requestParameters.contentType, requestParameters.name, requestParameters.description, requestParameters.className, requestParameters.directConnect, requestParameters.status, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * + * @summary Delete Connector + * @param {ConnectorsCCApiDeleteConnectorRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof ConnectorsCCApi + */ + ConnectorsCCApi.prototype.deleteConnector = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.ConnectorsCCApiFp)(this.configuration).deleteConnector(requestParameters.id, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * + * @summary Export Connector Config + * @param {ConnectorsCCApiExportConnectorConfigRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof ConnectorsCCApi + */ + ConnectorsCCApi.prototype.exportConnectorConfig = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.ConnectorsCCApiFp)(this.configuration).exportConnectorConfig(requestParameters.id, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * + * @summary Import Connector Config + * @param {ConnectorsCCApiImportConnectorConfigRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof ConnectorsCCApi + */ + ConnectorsCCApi.prototype.importConnectorConfig = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.ConnectorsCCApiFp)(this.configuration).importConnectorConfig(requestParameters.id, requestParameters.file, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * + * @summary List Connectors + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof ConnectorsCCApi + */ + ConnectorsCCApi.prototype.listConnectors = function (axiosOptions) { + var _this = this; + return (0, exports.ConnectorsCCApiFp)(this.configuration).listConnectors(axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + return ConnectorsCCApi; + }(base_1.BaseAPI)); + exports.ConnectorsCCApi = ConnectorsCCApi; + /** + * SourcesAccountsCCApi - axios parameter creator + * @export + */ + var SourcesAccountsCCApiAxiosParamCreator = function (configuration) { + var _this = this; + return { + /** + * Exports a CSV of the accounts for a particular source. + * @summary Export Account Feed + * @param {string} id + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + exportAccountFeed: function (id, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'id' is not null or undefined + (0, common_1.assertParamExists)('exportAccountFeed', 'id', id); + localVarPath = "/cc/api/source/exportAccountFeed/{id}" + .replace("{".concat("id", "}"), encodeURIComponent(String(id))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + }; + }; + exports.SourcesAccountsCCApiAxiosParamCreator = SourcesAccountsCCApiAxiosParamCreator; + /** + * SourcesAccountsCCApi - functional programming interface + * @export + */ + var SourcesAccountsCCApiFp = function (configuration) { + var localVarAxiosParamCreator = (0, exports.SourcesAccountsCCApiAxiosParamCreator)(configuration); + return { + /** + * Exports a CSV of the accounts for a particular source. + * @summary Export Account Feed + * @param {string} id + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + exportAccountFeed: function (id, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.exportAccountFeed(id, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + }; + }; + exports.SourcesAccountsCCApiFp = SourcesAccountsCCApiFp; + /** + * SourcesAccountsCCApi - factory interface + * @export + */ + var SourcesAccountsCCApiFactory = function (configuration, basePath, axios) { + var localVarFp = (0, exports.SourcesAccountsCCApiFp)(configuration); + return { + /** + * Exports a CSV of the accounts for a particular source. + * @summary Export Account Feed + * @param {string} id + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + exportAccountFeed: function (id, axiosOptions) { + return localVarFp.exportAccountFeed(id, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + }; + }; + exports.SourcesAccountsCCApiFactory = SourcesAccountsCCApiFactory; + /** + * SourcesAccountsCCApi - object-oriented interface + * @export + * @class SourcesAccountsCCApi + * @extends {BaseAPI} + */ + var SourcesAccountsCCApi = /** @class */ (function (_super) { + __extends(SourcesAccountsCCApi, _super); + function SourcesAccountsCCApi() { + return _super !== null && _super.apply(this, arguments) || this; + } + /** + * Exports a CSV of the accounts for a particular source. + * @summary Export Account Feed + * @param {SourcesAccountsCCApiExportAccountFeedRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof SourcesAccountsCCApi + */ + SourcesAccountsCCApi.prototype.exportAccountFeed = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.SourcesAccountsCCApiFp)(this.configuration).exportAccountFeed(requestParameters.id, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + return SourcesAccountsCCApi; + }(base_1.BaseAPI)); + exports.SourcesAccountsCCApi = SourcesAccountsCCApi; + /** + * SourcesAggregationCCApi - axios parameter creator + * @export + */ + var SourcesAggregationCCApiAxiosParamCreator = function (configuration) { + var _this = this; + return { + /** + * Aggregates a delimited file for the given source. This only works for file-based sources. + * @summary Account Aggregation (File) + * @param {string} id + * @param {string} [contentType] + * @param {boolean} [disableOptimization] + * @param {any} [file] + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + loadAccounts: function (id, contentType, disableOptimization, file, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, localVarFormParams, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'id' is not null or undefined + (0, common_1.assertParamExists)('loadAccounts', 'id', id); + localVarPath = "/cc/api/source/loadAccounts/{id}" + .replace("{".concat("id", "}"), encodeURIComponent(String(id))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + localVarFormParams = new ((configuration && configuration.formDataCtor) || FormData)(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + if (contentType !== undefined && contentType !== null) { + localVarHeaderParameter['Content-Type'] = String(contentType); + } + if (disableOptimization !== undefined) { + localVarFormParams.append('disableOptimization', disableOptimization); + } + if (file !== undefined) { + localVarFormParams.append('file', file); + } + localVarHeaderParameter['Content-Type'] = 'multipart/form-data'; + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + localVarRequestOptions.data = localVarFormParams; + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * Aggregates a delimited file for the given source. This only works for file-based sources. + * @summary Account Aggregation (File) + * @param {string} id + * @param {string} [contentType] + * @param {any} [file] + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + loadEntitlements: function (id, contentType, file, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, localVarFormParams, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'id' is not null or undefined + (0, common_1.assertParamExists)('loadEntitlements', 'id', id); + localVarPath = "/cc/api/source/loadEntitlements/{id}" + .replace("{".concat("id", "}"), encodeURIComponent(String(id))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + localVarFormParams = new ((configuration && configuration.formDataCtor) || FormData)(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + if (contentType !== undefined && contentType !== null) { + localVarHeaderParameter['Content-Type'] = String(contentType); + } + if (file !== undefined) { + localVarFormParams.append('file', file); + } + localVarHeaderParameter['Content-Type'] = 'multipart/form-data'; + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + localVarRequestOptions.data = localVarFormParams; + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + }; + }; + exports.SourcesAggregationCCApiAxiosParamCreator = SourcesAggregationCCApiAxiosParamCreator; + /** + * SourcesAggregationCCApi - functional programming interface + * @export + */ + var SourcesAggregationCCApiFp = function (configuration) { + var localVarAxiosParamCreator = (0, exports.SourcesAggregationCCApiAxiosParamCreator)(configuration); + return { + /** + * Aggregates a delimited file for the given source. This only works for file-based sources. + * @summary Account Aggregation (File) + * @param {string} id + * @param {string} [contentType] + * @param {boolean} [disableOptimization] + * @param {any} [file] + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + loadAccounts: function (id, contentType, disableOptimization, file, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.loadAccounts(id, contentType, disableOptimization, file, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * Aggregates a delimited file for the given source. This only works for file-based sources. + * @summary Account Aggregation (File) + * @param {string} id + * @param {string} [contentType] + * @param {any} [file] + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + loadEntitlements: function (id, contentType, file, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.loadEntitlements(id, contentType, file, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + }; + }; + exports.SourcesAggregationCCApiFp = SourcesAggregationCCApiFp; + /** + * SourcesAggregationCCApi - factory interface + * @export + */ + var SourcesAggregationCCApiFactory = function (configuration, basePath, axios) { + var localVarFp = (0, exports.SourcesAggregationCCApiFp)(configuration); + return { + /** + * Aggregates a delimited file for the given source. This only works for file-based sources. + * @summary Account Aggregation (File) + * @param {string} id + * @param {string} [contentType] + * @param {boolean} [disableOptimization] + * @param {any} [file] + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + loadAccounts: function (id, contentType, disableOptimization, file, axiosOptions) { + return localVarFp.loadAccounts(id, contentType, disableOptimization, file, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * Aggregates a delimited file for the given source. This only works for file-based sources. + * @summary Account Aggregation (File) + * @param {string} id + * @param {string} [contentType] + * @param {any} [file] + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + loadEntitlements: function (id, contentType, file, axiosOptions) { + return localVarFp.loadEntitlements(id, contentType, file, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + }; + }; + exports.SourcesAggregationCCApiFactory = SourcesAggregationCCApiFactory; + /** + * SourcesAggregationCCApi - object-oriented interface + * @export + * @class SourcesAggregationCCApi + * @extends {BaseAPI} + */ + var SourcesAggregationCCApi = /** @class */ (function (_super) { + __extends(SourcesAggregationCCApi, _super); + function SourcesAggregationCCApi() { + return _super !== null && _super.apply(this, arguments) || this; + } + /** + * Aggregates a delimited file for the given source. This only works for file-based sources. + * @summary Account Aggregation (File) + * @param {SourcesAggregationCCApiLoadAccountsRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof SourcesAggregationCCApi + */ + SourcesAggregationCCApi.prototype.loadAccounts = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.SourcesAggregationCCApiFp)(this.configuration).loadAccounts(requestParameters.id, requestParameters.contentType, requestParameters.disableOptimization, requestParameters.file, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * Aggregates a delimited file for the given source. This only works for file-based sources. + * @summary Account Aggregation (File) + * @param {SourcesAggregationCCApiLoadEntitlementsRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof SourcesAggregationCCApi + */ + SourcesAggregationCCApi.prototype.loadEntitlements = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.SourcesAggregationCCApiFp)(this.configuration).loadEntitlements(requestParameters.id, requestParameters.contentType, requestParameters.file, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + return SourcesAggregationCCApi; + }(base_1.BaseAPI)); + exports.SourcesAggregationCCApi = SourcesAggregationCCApi; + /** + * SystemCCApi - axios parameter creator + * @export + */ + var SystemCCApiAxiosParamCreator = function (configuration) { + var _this = this; + return { + /** + * This kicks off an identity refresh for a specified set of identity attributes. This can be a long running process. IdentityNow has pre-scheduled versions of this task at set intervals and events already, so only run this when directed by SailPoint. _Note: If the identities specified by the filter do not exist, a full identity refresh will be run. Use with caution._ Refresh Arguments: | Key | Description | |-----------------------|----------------------------------------------------| | correlateEntitlements | Analyzes entitlements, access profiles, and roles. | | promoteAttributes | Calculates identity attributes. | | refreshManagerStatus | Calculates manager correlation and manager status. | | synchronizeAttributes | Performs attribute sync provisioning. | | pruneIdentities | Removes any identities which don\'t have accounts. | | provision | Provisions any assigned roles or access profiles. | + * @summary Refresh Identities + * @param {string} [contentType] + * @param {RefreshIdentitiesRequestCC} [refreshIdentitiesRequestCC] + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + refreshIdentities: function (contentType, refreshIdentitiesRequestCC, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + localVarPath = "/cc/api/system/refreshIdentities"; + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + if (contentType !== undefined && contentType !== null) { + localVarHeaderParameter['Content-Type'] = String(contentType); + } + localVarHeaderParameter['Content-Type'] = 'application/json'; + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(refreshIdentitiesRequestCC, localVarRequestOptions, configuration); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + }; + }; + exports.SystemCCApiAxiosParamCreator = SystemCCApiAxiosParamCreator; + /** + * SystemCCApi - functional programming interface + * @export + */ + var SystemCCApiFp = function (configuration) { + var localVarAxiosParamCreator = (0, exports.SystemCCApiAxiosParamCreator)(configuration); + return { + /** + * This kicks off an identity refresh for a specified set of identity attributes. This can be a long running process. IdentityNow has pre-scheduled versions of this task at set intervals and events already, so only run this when directed by SailPoint. _Note: If the identities specified by the filter do not exist, a full identity refresh will be run. Use with caution._ Refresh Arguments: | Key | Description | |-----------------------|----------------------------------------------------| | correlateEntitlements | Analyzes entitlements, access profiles, and roles. | | promoteAttributes | Calculates identity attributes. | | refreshManagerStatus | Calculates manager correlation and manager status. | | synchronizeAttributes | Performs attribute sync provisioning. | | pruneIdentities | Removes any identities which don\'t have accounts. | | provision | Provisions any assigned roles or access profiles. | + * @summary Refresh Identities + * @param {string} [contentType] + * @param {RefreshIdentitiesRequestCC} [refreshIdentitiesRequestCC] + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + refreshIdentities: function (contentType, refreshIdentitiesRequestCC, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.refreshIdentities(contentType, refreshIdentitiesRequestCC, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + }; + }; + exports.SystemCCApiFp = SystemCCApiFp; + /** + * SystemCCApi - factory interface + * @export + */ + var SystemCCApiFactory = function (configuration, basePath, axios) { + var localVarFp = (0, exports.SystemCCApiFp)(configuration); + return { + /** + * This kicks off an identity refresh for a specified set of identity attributes. This can be a long running process. IdentityNow has pre-scheduled versions of this task at set intervals and events already, so only run this when directed by SailPoint. _Note: If the identities specified by the filter do not exist, a full identity refresh will be run. Use with caution._ Refresh Arguments: | Key | Description | |-----------------------|----------------------------------------------------| | correlateEntitlements | Analyzes entitlements, access profiles, and roles. | | promoteAttributes | Calculates identity attributes. | | refreshManagerStatus | Calculates manager correlation and manager status. | | synchronizeAttributes | Performs attribute sync provisioning. | | pruneIdentities | Removes any identities which don\'t have accounts. | | provision | Provisions any assigned roles or access profiles. | + * @summary Refresh Identities + * @param {string} [contentType] + * @param {RefreshIdentitiesRequestCC} [refreshIdentitiesRequestCC] + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + refreshIdentities: function (contentType, refreshIdentitiesRequestCC, axiosOptions) { + return localVarFp.refreshIdentities(contentType, refreshIdentitiesRequestCC, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + }; + }; + exports.SystemCCApiFactory = SystemCCApiFactory; + /** + * SystemCCApi - object-oriented interface + * @export + * @class SystemCCApi + * @extends {BaseAPI} + */ + var SystemCCApi = /** @class */ (function (_super) { + __extends(SystemCCApi, _super); + function SystemCCApi() { + return _super !== null && _super.apply(this, arguments) || this; + } + /** + * This kicks off an identity refresh for a specified set of identity attributes. This can be a long running process. IdentityNow has pre-scheduled versions of this task at set intervals and events already, so only run this when directed by SailPoint. _Note: If the identities specified by the filter do not exist, a full identity refresh will be run. Use with caution._ Refresh Arguments: | Key | Description | |-----------------------|----------------------------------------------------| | correlateEntitlements | Analyzes entitlements, access profiles, and roles. | | promoteAttributes | Calculates identity attributes. | | refreshManagerStatus | Calculates manager correlation and manager status. | | synchronizeAttributes | Performs attribute sync provisioning. | | pruneIdentities | Removes any identities which don\'t have accounts. | | provision | Provisions any assigned roles or access profiles. | + * @summary Refresh Identities + * @param {SystemCCApiRefreshIdentitiesRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof SystemCCApi + */ + SystemCCApi.prototype.refreshIdentities = function (requestParameters, axiosOptions) { + var _this = this; + if (requestParameters === void 0) { requestParameters = {}; } + return (0, exports.SystemCCApiFp)(this.configuration).refreshIdentities(requestParameters.contentType, requestParameters.refreshIdentitiesRequestCC, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + return SystemCCApi; + }(base_1.BaseAPI)); + exports.SystemCCApi = SystemCCApi; + /** + * UserCCApi - axios parameter creator + * @export + */ + var UserCCApiAxiosParamCreator = function (configuration) { + var _this = this; + return { + /** + * + * @summary Get Single Identity + * @param {string} id + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getIdentity: function (id, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // verify required parameter 'id' is not null or undefined + (0, common_1.assertParamExists)('getIdentity', 'id', id); + localVarPath = "/cc/api/user/get/{id}" + .replace("{".concat("id", "}"), encodeURIComponent(String(id))); + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + /** + * + * @summary Update User Permissions + * @param {UpdateUserPermissionsRequestCC} [updateUserPermissionsRequestCC] + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + updateUserPermissions: function (updateUserPermissionsRequestCC, axiosOptions) { + if (axiosOptions === void 0) { axiosOptions = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + localVarPath = "/cc/api/user/updatePermissions"; + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration) + // authentication UserContextAuth required + // oauth required + ]; + case 1: + // authentication UserContextAuth required + // oauth required + _a.sent(); + // authentication UserContextAuth required + // oauth required + return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, "UserContextAuth", [], configuration)]; + case 2: + // authentication UserContextAuth required + // oauth required + _a.sent(); + localVarHeaderParameter['Content-Type'] = 'application/json'; + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers); + localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(updateUserPermissionsRequestCC, localVarRequestOptions, configuration); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + axiosOptions: localVarRequestOptions, + }]; + } + }); + }); + }, + }; + }; + exports.UserCCApiAxiosParamCreator = UserCCApiAxiosParamCreator; + /** + * UserCCApi - functional programming interface + * @export + */ + var UserCCApiFp = function (configuration) { + var localVarAxiosParamCreator = (0, exports.UserCCApiAxiosParamCreator)(configuration); + return { + /** + * + * @summary Get Single Identity + * @param {string} id + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getIdentity: function (id, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.getIdentity(id, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * + * @summary Update User Permissions + * @param {UpdateUserPermissionsRequestCC} [updateUserPermissionsRequestCC] + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + updateUserPermissions: function (updateUserPermissionsRequestCC, axiosOptions) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.updateUserPermissions(updateUserPermissionsRequestCC, axiosOptions)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + }; + }; + exports.UserCCApiFp = UserCCApiFp; + /** + * UserCCApi - factory interface + * @export + */ + var UserCCApiFactory = function (configuration, basePath, axios) { + var localVarFp = (0, exports.UserCCApiFp)(configuration); + return { + /** + * + * @summary Get Single Identity + * @param {string} id + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + getIdentity: function (id, axiosOptions) { + return localVarFp.getIdentity(id, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + /** + * + * @summary Update User Permissions + * @param {UpdateUserPermissionsRequestCC} [updateUserPermissionsRequestCC] + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + */ + updateUserPermissions: function (updateUserPermissionsRequestCC, axiosOptions) { + return localVarFp.updateUserPermissions(updateUserPermissionsRequestCC, axiosOptions).then(function (request) { return request(axios, basePath); }); + }, + }; + }; + exports.UserCCApiFactory = UserCCApiFactory; + /** + * UserCCApi - object-oriented interface + * @export + * @class UserCCApi + * @extends {BaseAPI} + */ + var UserCCApi = /** @class */ (function (_super) { + __extends(UserCCApi, _super); + function UserCCApi() { + return _super !== null && _super.apply(this, arguments) || this; + } + /** + * + * @summary Get Single Identity + * @param {UserCCApiGetIdentityRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof UserCCApi + */ + UserCCApi.prototype.getIdentity = function (requestParameters, axiosOptions) { + var _this = this; + return (0, exports.UserCCApiFp)(this.configuration).getIdentity(requestParameters.id, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * + * @summary Update User Permissions + * @param {UserCCApiUpdateUserPermissionsRequest} requestParameters Request parameters. + * @param {*} [axiosOptions] Override http request option. + * @throws {RequiredError} + * @memberof UserCCApi + */ + UserCCApi.prototype.updateUserPermissions = function (requestParameters, axiosOptions) { + var _this = this; + if (requestParameters === void 0) { requestParameters = {}; } + return (0, exports.UserCCApiFp)(this.configuration).updateUserPermissions(requestParameters.updateUserPermissionsRequestCC, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + return UserCCApi; + }(base_1.BaseAPI)); + exports.UserCCApi = UserCCApi; + + } (api)); + return api; +} + +var configuration$1 = {}; + +var hasRequiredConfiguration$1; + +function requireConfiguration$1 () { + if (hasRequiredConfiguration$1) return configuration$1; + hasRequiredConfiguration$1 = 1; + /* tslint:disable */ + /* eslint-disable */ + /** + * IdentityNow cc (private) APIs + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 1.0.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + Object.defineProperty(configuration$1, "__esModule", { value: true }); + configuration$1.Configuration = void 0; + var Configuration = /** @class */ (function () { + function Configuration(param) { + if (param === void 0) { param = {}; } + this.apiKey = param.apiKey; + this.username = param.username; + this.password = param.password; + this.accessToken = param.accessToken; + this.basePath = param.basePath; + this.baseOptions = param.baseOptions; + this.formDataCtor = param.formDataCtor; + } + /** + * Check if the given MIME is a JSON MIME. + * JSON MIME examples: + * application/json + * application/json; charset=UTF8 + * APPLICATION/JSON + * application/vnd.company+json + * @param mime - MIME (Multipurpose Internet Mail Extensions) + * @return True if the given MIME is JSON, false otherwise. + */ + Configuration.prototype.isJsonMime = function (mime) { + var jsonMime = new RegExp('^(application\/json|[^;/ \t]+\/[^;/ \t]+[+]json)[ \t]*(;.*)?$', 'i'); + return mime !== null && (jsonMime.test(mime) || mime.toLowerCase() === 'application/json-patch+json'); + }; + return Configuration; + }()); + configuration$1.Configuration = Configuration; + + return configuration$1; +} + +var configuration = {}; + +var jsYaml = {}; + +var loader = {}; + +var common = {}; + +var hasRequiredCommon; + +function requireCommon () { + if (hasRequiredCommon) return common; + hasRequiredCommon = 1; + + + function isNothing(subject) { + return (typeof subject === 'undefined') || (subject === null); + } + + + function isObject(subject) { + return (typeof subject === 'object') && (subject !== null); + } + + + function toArray(sequence) { + if (Array.isArray(sequence)) return sequence; + else if (isNothing(sequence)) return []; + + return [ sequence ]; + } + + + function extend(target, source) { + var index, length, key, sourceKeys; + + if (source) { + sourceKeys = Object.keys(source); + + for (index = 0, length = sourceKeys.length; index < length; index += 1) { + key = sourceKeys[index]; + target[key] = source[key]; + } + } + + return target; + } + + + function repeat(string, count) { + var result = '', cycle; + + for (cycle = 0; cycle < count; cycle += 1) { + result += string; + } + + return result; + } + + + function isNegativeZero(number) { + return (number === 0) && (Number.NEGATIVE_INFINITY === 1 / number); + } + + + common.isNothing = isNothing; + common.isObject = isObject; + common.toArray = toArray; + common.repeat = repeat; + common.isNegativeZero = isNegativeZero; + common.extend = extend; + return common; +} + +var exception; +var hasRequiredException; + +function requireException () { + if (hasRequiredException) return exception; + hasRequiredException = 1; + + + function formatError(exception, compact) { + var where = '', message = exception.reason || '(unknown reason)'; + + if (!exception.mark) return message; + + if (exception.mark.name) { + where += 'in "' + exception.mark.name + '" '; + } + + where += '(' + (exception.mark.line + 1) + ':' + (exception.mark.column + 1) + ')'; + + if (!compact && exception.mark.snippet) { + where += '\n\n' + exception.mark.snippet; + } + + return message + ' ' + where; + } + + + function YAMLException(reason, mark) { + // Super constructor + Error.call(this); + + this.name = 'YAMLException'; + this.reason = reason; + this.mark = mark; + this.message = formatError(this, false); + + // Include stack trace in error object + if (Error.captureStackTrace) { + // Chrome and NodeJS + Error.captureStackTrace(this, this.constructor); + } else { + // FF, IE 10+ and Safari 6+. Fallback for others + this.stack = (new Error()).stack || ''; + } + } + + + // Inherit from Error + YAMLException.prototype = Object.create(Error.prototype); + YAMLException.prototype.constructor = YAMLException; + + + YAMLException.prototype.toString = function toString(compact) { + return this.name + ': ' + formatError(this, compact); + }; + + + exception = YAMLException; + return exception; +} + +var snippet; +var hasRequiredSnippet; + +function requireSnippet () { + if (hasRequiredSnippet) return snippet; + hasRequiredSnippet = 1; + + + var common = requireCommon(); + + + // get snippet for a single line, respecting maxLength + function getLine(buffer, lineStart, lineEnd, position, maxLineLength) { + var head = ''; + var tail = ''; + var maxHalfLength = Math.floor(maxLineLength / 2) - 1; + + if (position - lineStart > maxHalfLength) { + head = ' ... '; + lineStart = position - maxHalfLength + head.length; + } + + if (lineEnd - position > maxHalfLength) { + tail = ' ...'; + lineEnd = position + maxHalfLength - tail.length; + } + + return { + str: head + buffer.slice(lineStart, lineEnd).replace(/\t/g, '→') + tail, + pos: position - lineStart + head.length // relative position + }; + } + + + function padStart(string, max) { + return common.repeat(' ', max - string.length) + string; + } + + + function makeSnippet(mark, options) { + options = Object.create(options || null); + + if (!mark.buffer) return null; + + if (!options.maxLength) options.maxLength = 79; + if (typeof options.indent !== 'number') options.indent = 1; + if (typeof options.linesBefore !== 'number') options.linesBefore = 3; + if (typeof options.linesAfter !== 'number') options.linesAfter = 2; + + var re = /\r?\n|\r|\0/g; + var lineStarts = [ 0 ]; + var lineEnds = []; + var match; + var foundLineNo = -1; + + while ((match = re.exec(mark.buffer))) { + lineEnds.push(match.index); + lineStarts.push(match.index + match[0].length); + + if (mark.position <= match.index && foundLineNo < 0) { + foundLineNo = lineStarts.length - 2; + } + } + + if (foundLineNo < 0) foundLineNo = lineStarts.length - 1; + + var result = '', i, line; + var lineNoLength = Math.min(mark.line + options.linesAfter, lineEnds.length).toString().length; + var maxLineLength = options.maxLength - (options.indent + lineNoLength + 3); + + for (i = 1; i <= options.linesBefore; i++) { + if (foundLineNo - i < 0) break; + line = getLine( + mark.buffer, + lineStarts[foundLineNo - i], + lineEnds[foundLineNo - i], + mark.position - (lineStarts[foundLineNo] - lineStarts[foundLineNo - i]), + maxLineLength + ); + result = common.repeat(' ', options.indent) + padStart((mark.line - i + 1).toString(), lineNoLength) + + ' | ' + line.str + '\n' + result; + } + + line = getLine(mark.buffer, lineStarts[foundLineNo], lineEnds[foundLineNo], mark.position, maxLineLength); + result += common.repeat(' ', options.indent) + padStart((mark.line + 1).toString(), lineNoLength) + + ' | ' + line.str + '\n'; + result += common.repeat('-', options.indent + lineNoLength + 3 + line.pos) + '^' + '\n'; + + for (i = 1; i <= options.linesAfter; i++) { + if (foundLineNo + i >= lineEnds.length) break; + line = getLine( + mark.buffer, + lineStarts[foundLineNo + i], + lineEnds[foundLineNo + i], + mark.position - (lineStarts[foundLineNo] - lineStarts[foundLineNo + i]), + maxLineLength + ); + result += common.repeat(' ', options.indent) + padStart((mark.line + i + 1).toString(), lineNoLength) + + ' | ' + line.str + '\n'; + } + + return result.replace(/\n$/, ''); + } + + + snippet = makeSnippet; + return snippet; +} + +var type; +var hasRequiredType; + +function requireType () { + if (hasRequiredType) return type; + hasRequiredType = 1; + + var YAMLException = requireException(); + + var TYPE_CONSTRUCTOR_OPTIONS = [ + 'kind', + 'multi', + 'resolve', + 'construct', + 'instanceOf', + 'predicate', + 'represent', + 'representName', + 'defaultStyle', + 'styleAliases' + ]; + + var YAML_NODE_KINDS = [ + 'scalar', + 'sequence', + 'mapping' + ]; + + function compileStyleAliases(map) { + var result = {}; + + if (map !== null) { + Object.keys(map).forEach(function (style) { + map[style].forEach(function (alias) { + result[String(alias)] = style; + }); + }); + } + + return result; + } + + function Type(tag, options) { + options = options || {}; + + Object.keys(options).forEach(function (name) { + if (TYPE_CONSTRUCTOR_OPTIONS.indexOf(name) === -1) { + throw new YAMLException('Unknown option "' + name + '" is met in definition of "' + tag + '" YAML type.'); + } + }); + + // TODO: Add tag format check. + this.options = options; // keep original options in case user wants to extend this type later + this.tag = tag; + this.kind = options['kind'] || null; + this.resolve = options['resolve'] || function () { return true; }; + this.construct = options['construct'] || function (data) { return data; }; + this.instanceOf = options['instanceOf'] || null; + this.predicate = options['predicate'] || null; + this.represent = options['represent'] || null; + this.representName = options['representName'] || null; + this.defaultStyle = options['defaultStyle'] || null; + this.multi = options['multi'] || false; + this.styleAliases = compileStyleAliases(options['styleAliases'] || null); + + if (YAML_NODE_KINDS.indexOf(this.kind) === -1) { + throw new YAMLException('Unknown kind "' + this.kind + '" is specified for "' + tag + '" YAML type.'); + } + } + + type = Type; + return type; +} + +var schema; +var hasRequiredSchema; + +function requireSchema () { + if (hasRequiredSchema) return schema; + hasRequiredSchema = 1; + + /*eslint-disable max-len*/ + + var YAMLException = requireException(); + var Type = requireType(); + + + function compileList(schema, name) { + var result = []; + + schema[name].forEach(function (currentType) { + var newIndex = result.length; + + result.forEach(function (previousType, previousIndex) { + if (previousType.tag === currentType.tag && + previousType.kind === currentType.kind && + previousType.multi === currentType.multi) { + + newIndex = previousIndex; + } + }); + + result[newIndex] = currentType; + }); + + return result; + } + + + function compileMap(/* lists... */) { + var result = { + scalar: {}, + sequence: {}, + mapping: {}, + fallback: {}, + multi: { + scalar: [], + sequence: [], + mapping: [], + fallback: [] + } + }, index, length; + + function collectType(type) { + if (type.multi) { + result.multi[type.kind].push(type); + result.multi['fallback'].push(type); + } else { + result[type.kind][type.tag] = result['fallback'][type.tag] = type; + } + } + + for (index = 0, length = arguments.length; index < length; index += 1) { + arguments[index].forEach(collectType); + } + return result; + } + + + function Schema(definition) { + return this.extend(definition); + } + + + Schema.prototype.extend = function extend(definition) { + var implicit = []; + var explicit = []; + + if (definition instanceof Type) { + // Schema.extend(type) + explicit.push(definition); + + } else if (Array.isArray(definition)) { + // Schema.extend([ type1, type2, ... ]) + explicit = explicit.concat(definition); + + } else if (definition && (Array.isArray(definition.implicit) || Array.isArray(definition.explicit))) { + // Schema.extend({ explicit: [ type1, type2, ... ], implicit: [ type1, type2, ... ] }) + if (definition.implicit) implicit = implicit.concat(definition.implicit); + if (definition.explicit) explicit = explicit.concat(definition.explicit); + + } else { + throw new YAMLException('Schema.extend argument should be a Type, [ Type ], ' + + 'or a schema definition ({ implicit: [...], explicit: [...] })'); + } + + implicit.forEach(function (type) { + if (!(type instanceof Type)) { + throw new YAMLException('Specified list of YAML types (or a single Type object) contains a non-Type object.'); + } + + if (type.loadKind && type.loadKind !== 'scalar') { + throw new YAMLException('There is a non-scalar type in the implicit list of a schema. Implicit resolving of such types is not supported.'); + } + + if (type.multi) { + throw new YAMLException('There is a multi type in the implicit list of a schema. Multi tags can only be listed as explicit.'); + } + }); + + explicit.forEach(function (type) { + if (!(type instanceof Type)) { + throw new YAMLException('Specified list of YAML types (or a single Type object) contains a non-Type object.'); + } + }); + + var result = Object.create(Schema.prototype); + + result.implicit = (this.implicit || []).concat(implicit); + result.explicit = (this.explicit || []).concat(explicit); + + result.compiledImplicit = compileList(result, 'implicit'); + result.compiledExplicit = compileList(result, 'explicit'); + result.compiledTypeMap = compileMap(result.compiledImplicit, result.compiledExplicit); + + return result; + }; + + + schema = Schema; + return schema; +} + +var str; +var hasRequiredStr; + +function requireStr () { + if (hasRequiredStr) return str; + hasRequiredStr = 1; + + var Type = requireType(); + + str = new Type('tag:yaml.org,2002:str', { + kind: 'scalar', + construct: function (data) { return data !== null ? data : ''; } + }); + return str; +} + +var seq; +var hasRequiredSeq; + +function requireSeq () { + if (hasRequiredSeq) return seq; + hasRequiredSeq = 1; + + var Type = requireType(); + + seq = new Type('tag:yaml.org,2002:seq', { + kind: 'sequence', + construct: function (data) { return data !== null ? data : []; } + }); + return seq; +} + +var map; +var hasRequiredMap; + +function requireMap () { + if (hasRequiredMap) return map; + hasRequiredMap = 1; + + var Type = requireType(); + + map = new Type('tag:yaml.org,2002:map', { + kind: 'mapping', + construct: function (data) { return data !== null ? data : {}; } + }); + return map; +} + +var failsafe; +var hasRequiredFailsafe; + +function requireFailsafe () { + if (hasRequiredFailsafe) return failsafe; + hasRequiredFailsafe = 1; + + + var Schema = requireSchema(); + + + failsafe = new Schema({ + explicit: [ + requireStr(), + requireSeq(), + requireMap() + ] + }); + return failsafe; +} + +var _null; +var hasRequired_null; + +function require_null () { + if (hasRequired_null) return _null; + hasRequired_null = 1; + + var Type = requireType(); + + function resolveYamlNull(data) { + if (data === null) return true; + + var max = data.length; + + return (max === 1 && data === '~') || + (max === 4 && (data === 'null' || data === 'Null' || data === 'NULL')); + } + + function constructYamlNull() { + return null; + } + + function isNull(object) { + return object === null; + } + + _null = new Type('tag:yaml.org,2002:null', { + kind: 'scalar', + resolve: resolveYamlNull, + construct: constructYamlNull, + predicate: isNull, + represent: { + canonical: function () { return '~'; }, + lowercase: function () { return 'null'; }, + uppercase: function () { return 'NULL'; }, + camelcase: function () { return 'Null'; }, + empty: function () { return ''; } + }, + defaultStyle: 'lowercase' + }); + return _null; +} + +var bool; +var hasRequiredBool; + +function requireBool () { + if (hasRequiredBool) return bool; + hasRequiredBool = 1; + + var Type = requireType(); + + function resolveYamlBoolean(data) { + if (data === null) return false; + + var max = data.length; + + return (max === 4 && (data === 'true' || data === 'True' || data === 'TRUE')) || + (max === 5 && (data === 'false' || data === 'False' || data === 'FALSE')); + } + + function constructYamlBoolean(data) { + return data === 'true' || + data === 'True' || + data === 'TRUE'; + } + + function isBoolean(object) { + return Object.prototype.toString.call(object) === '[object Boolean]'; + } + + bool = new Type('tag:yaml.org,2002:bool', { + kind: 'scalar', + resolve: resolveYamlBoolean, + construct: constructYamlBoolean, + predicate: isBoolean, + represent: { + lowercase: function (object) { return object ? 'true' : 'false'; }, + uppercase: function (object) { return object ? 'TRUE' : 'FALSE'; }, + camelcase: function (object) { return object ? 'True' : 'False'; } + }, + defaultStyle: 'lowercase' + }); + return bool; +} + +var int; +var hasRequiredInt; + +function requireInt () { + if (hasRequiredInt) return int; + hasRequiredInt = 1; + + var common = requireCommon(); + var Type = requireType(); + + function isHexCode(c) { + return ((0x30/* 0 */ <= c) && (c <= 0x39/* 9 */)) || + ((0x41/* A */ <= c) && (c <= 0x46/* F */)) || + ((0x61/* a */ <= c) && (c <= 0x66/* f */)); + } + + function isOctCode(c) { + return ((0x30/* 0 */ <= c) && (c <= 0x37/* 7 */)); + } + + function isDecCode(c) { + return ((0x30/* 0 */ <= c) && (c <= 0x39/* 9 */)); + } + + function resolveYamlInteger(data) { + if (data === null) return false; + + var max = data.length, + index = 0, + hasDigits = false, + ch; + + if (!max) return false; + + ch = data[index]; + + // sign + if (ch === '-' || ch === '+') { + ch = data[++index]; + } + + if (ch === '0') { + // 0 + if (index + 1 === max) return true; + ch = data[++index]; + + // base 2, base 8, base 16 + + if (ch === 'b') { + // base 2 + index++; + + for (; index < max; index++) { + ch = data[index]; + if (ch === '_') continue; + if (ch !== '0' && ch !== '1') return false; + hasDigits = true; + } + return hasDigits && ch !== '_'; + } + + + if (ch === 'x') { + // base 16 + index++; + + for (; index < max; index++) { + ch = data[index]; + if (ch === '_') continue; + if (!isHexCode(data.charCodeAt(index))) return false; + hasDigits = true; + } + return hasDigits && ch !== '_'; + } + + + if (ch === 'o') { + // base 8 + index++; + + for (; index < max; index++) { + ch = data[index]; + if (ch === '_') continue; + if (!isOctCode(data.charCodeAt(index))) return false; + hasDigits = true; + } + return hasDigits && ch !== '_'; + } + } + + // base 10 (except 0) + + // value should not start with `_`; + if (ch === '_') return false; + + for (; index < max; index++) { + ch = data[index]; + if (ch === '_') continue; + if (!isDecCode(data.charCodeAt(index))) { + return false; + } + hasDigits = true; + } + + // Should have digits and should not end with `_` + if (!hasDigits || ch === '_') return false; + + return true; + } + + function constructYamlInteger(data) { + var value = data, sign = 1, ch; + + if (value.indexOf('_') !== -1) { + value = value.replace(/_/g, ''); + } + + ch = value[0]; + + if (ch === '-' || ch === '+') { + if (ch === '-') sign = -1; + value = value.slice(1); + ch = value[0]; + } + + if (value === '0') return 0; + + if (ch === '0') { + if (value[1] === 'b') return sign * parseInt(value.slice(2), 2); + if (value[1] === 'x') return sign * parseInt(value.slice(2), 16); + if (value[1] === 'o') return sign * parseInt(value.slice(2), 8); + } + + return sign * parseInt(value, 10); + } + + function isInteger(object) { + return (Object.prototype.toString.call(object)) === '[object Number]' && + (object % 1 === 0 && !common.isNegativeZero(object)); + } + + int = new Type('tag:yaml.org,2002:int', { + kind: 'scalar', + resolve: resolveYamlInteger, + construct: constructYamlInteger, + predicate: isInteger, + represent: { + binary: function (obj) { return obj >= 0 ? '0b' + obj.toString(2) : '-0b' + obj.toString(2).slice(1); }, + octal: function (obj) { return obj >= 0 ? '0o' + obj.toString(8) : '-0o' + obj.toString(8).slice(1); }, + decimal: function (obj) { return obj.toString(10); }, + /* eslint-disable max-len */ + hexadecimal: function (obj) { return obj >= 0 ? '0x' + obj.toString(16).toUpperCase() : '-0x' + obj.toString(16).toUpperCase().slice(1); } + }, + defaultStyle: 'decimal', + styleAliases: { + binary: [ 2, 'bin' ], + octal: [ 8, 'oct' ], + decimal: [ 10, 'dec' ], + hexadecimal: [ 16, 'hex' ] + } + }); + return int; +} + +var float; +var hasRequiredFloat; + +function requireFloat () { + if (hasRequiredFloat) return float; + hasRequiredFloat = 1; + + var common = requireCommon(); + var Type = requireType(); + + var YAML_FLOAT_PATTERN = new RegExp( + // 2.5e4, 2.5 and integers + '^(?:[-+]?(?:[0-9][0-9_]*)(?:\\.[0-9_]*)?(?:[eE][-+]?[0-9]+)?' + + // .2e4, .2 + // special case, seems not from spec + '|\\.[0-9_]+(?:[eE][-+]?[0-9]+)?' + + // .inf + '|[-+]?\\.(?:inf|Inf|INF)' + + // .nan + '|\\.(?:nan|NaN|NAN))$'); + + function resolveYamlFloat(data) { + if (data === null) return false; + + if (!YAML_FLOAT_PATTERN.test(data) || + // Quick hack to not allow integers end with `_` + // Probably should update regexp & check speed + data[data.length - 1] === '_') { + return false; + } + + return true; + } + + function constructYamlFloat(data) { + var value, sign; + + value = data.replace(/_/g, '').toLowerCase(); + sign = value[0] === '-' ? -1 : 1; + + if ('+-'.indexOf(value[0]) >= 0) { + value = value.slice(1); + } + + if (value === '.inf') { + return (sign === 1) ? Number.POSITIVE_INFINITY : Number.NEGATIVE_INFINITY; + + } else if (value === '.nan') { + return NaN; + } + return sign * parseFloat(value, 10); + } + + + var SCIENTIFIC_WITHOUT_DOT = /^[-+]?[0-9]+e/; + + function representYamlFloat(object, style) { + var res; + + if (isNaN(object)) { + switch (style) { + case 'lowercase': return '.nan'; + case 'uppercase': return '.NAN'; + case 'camelcase': return '.NaN'; + } + } else if (Number.POSITIVE_INFINITY === object) { + switch (style) { + case 'lowercase': return '.inf'; + case 'uppercase': return '.INF'; + case 'camelcase': return '.Inf'; + } + } else if (Number.NEGATIVE_INFINITY === object) { + switch (style) { + case 'lowercase': return '-.inf'; + case 'uppercase': return '-.INF'; + case 'camelcase': return '-.Inf'; + } + } else if (common.isNegativeZero(object)) { + return '-0.0'; + } + + res = object.toString(10); + + // JS stringifier can build scientific format without dots: 5e-100, + // while YAML requres dot: 5.e-100. Fix it with simple hack + + return SCIENTIFIC_WITHOUT_DOT.test(res) ? res.replace('e', '.e') : res; + } + + function isFloat(object) { + return (Object.prototype.toString.call(object) === '[object Number]') && + (object % 1 !== 0 || common.isNegativeZero(object)); + } + + float = new Type('tag:yaml.org,2002:float', { + kind: 'scalar', + resolve: resolveYamlFloat, + construct: constructYamlFloat, + predicate: isFloat, + represent: representYamlFloat, + defaultStyle: 'lowercase' + }); + return float; +} + +var json; +var hasRequiredJson; + +function requireJson () { + if (hasRequiredJson) return json; + hasRequiredJson = 1; + + + json = requireFailsafe().extend({ + implicit: [ + require_null(), + requireBool(), + requireInt(), + requireFloat() + ] + }); + return json; +} + +var core; +var hasRequiredCore; + +function requireCore () { + if (hasRequiredCore) return core; + hasRequiredCore = 1; + + + core = requireJson(); + return core; +} + +var timestamp; +var hasRequiredTimestamp; + +function requireTimestamp () { + if (hasRequiredTimestamp) return timestamp; + hasRequiredTimestamp = 1; + + var Type = requireType(); + + var YAML_DATE_REGEXP = new RegExp( + '^([0-9][0-9][0-9][0-9])' + // [1] year + '-([0-9][0-9])' + // [2] month + '-([0-9][0-9])$'); // [3] day + + var YAML_TIMESTAMP_REGEXP = new RegExp( + '^([0-9][0-9][0-9][0-9])' + // [1] year + '-([0-9][0-9]?)' + // [2] month + '-([0-9][0-9]?)' + // [3] day + '(?:[Tt]|[ \\t]+)' + // ... + '([0-9][0-9]?)' + // [4] hour + ':([0-9][0-9])' + // [5] minute + ':([0-9][0-9])' + // [6] second + '(?:\\.([0-9]*))?' + // [7] fraction + '(?:[ \\t]*(Z|([-+])([0-9][0-9]?)' + // [8] tz [9] tz_sign [10] tz_hour + '(?::([0-9][0-9]))?))?$'); // [11] tz_minute + + function resolveYamlTimestamp(data) { + if (data === null) return false; + if (YAML_DATE_REGEXP.exec(data) !== null) return true; + if (YAML_TIMESTAMP_REGEXP.exec(data) !== null) return true; + return false; + } + + function constructYamlTimestamp(data) { + var match, year, month, day, hour, minute, second, fraction = 0, + delta = null, tz_hour, tz_minute, date; + + match = YAML_DATE_REGEXP.exec(data); + if (match === null) match = YAML_TIMESTAMP_REGEXP.exec(data); + + if (match === null) throw new Error('Date resolve error'); + + // match: [1] year [2] month [3] day + + year = +(match[1]); + month = +(match[2]) - 1; // JS month starts with 0 + day = +(match[3]); + + if (!match[4]) { // no hour + return new Date(Date.UTC(year, month, day)); + } + + // match: [4] hour [5] minute [6] second [7] fraction + + hour = +(match[4]); + minute = +(match[5]); + second = +(match[6]); + + if (match[7]) { + fraction = match[7].slice(0, 3); + while (fraction.length < 3) { // milli-seconds + fraction += '0'; + } + fraction = +fraction; + } + + // match: [8] tz [9] tz_sign [10] tz_hour [11] tz_minute + + if (match[9]) { + tz_hour = +(match[10]); + tz_minute = +(match[11] || 0); + delta = (tz_hour * 60 + tz_minute) * 60000; // delta in mili-seconds + if (match[9] === '-') delta = -delta; + } + + date = new Date(Date.UTC(year, month, day, hour, minute, second, fraction)); + + if (delta) date.setTime(date.getTime() - delta); + + return date; + } + + function representYamlTimestamp(object /*, style*/) { + return object.toISOString(); + } + + timestamp = new Type('tag:yaml.org,2002:timestamp', { + kind: 'scalar', + resolve: resolveYamlTimestamp, + construct: constructYamlTimestamp, + instanceOf: Date, + represent: representYamlTimestamp + }); + return timestamp; +} + +var merge; +var hasRequiredMerge; + +function requireMerge () { + if (hasRequiredMerge) return merge; + hasRequiredMerge = 1; + + var Type = requireType(); + + function resolveYamlMerge(data) { + return data === '<<' || data === null; + } + + merge = new Type('tag:yaml.org,2002:merge', { + kind: 'scalar', + resolve: resolveYamlMerge + }); + return merge; +} + +var binary; +var hasRequiredBinary; + +function requireBinary () { + if (hasRequiredBinary) return binary; + hasRequiredBinary = 1; + + /*eslint-disable no-bitwise*/ + + + var Type = requireType(); + + + // [ 64, 65, 66 ] -> [ padding, CR, LF ] + var BASE64_MAP = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\n\r'; + + + function resolveYamlBinary(data) { + if (data === null) return false; + + var code, idx, bitlen = 0, max = data.length, map = BASE64_MAP; + + // Convert one by one. + for (idx = 0; idx < max; idx++) { + code = map.indexOf(data.charAt(idx)); + + // Skip CR/LF + if (code > 64) continue; + + // Fail on illegal characters + if (code < 0) return false; + + bitlen += 6; + } + + // If there are any bits left, source was corrupted + return (bitlen % 8) === 0; + } + + function constructYamlBinary(data) { + var idx, tailbits, + input = data.replace(/[\r\n=]/g, ''), // remove CR/LF & padding to simplify scan + max = input.length, + map = BASE64_MAP, + bits = 0, + result = []; + + // Collect by 6*4 bits (3 bytes) + + for (idx = 0; idx < max; idx++) { + if ((idx % 4 === 0) && idx) { + result.push((bits >> 16) & 0xFF); + result.push((bits >> 8) & 0xFF); + result.push(bits & 0xFF); + } + + bits = (bits << 6) | map.indexOf(input.charAt(idx)); + } + + // Dump tail + + tailbits = (max % 4) * 6; + + if (tailbits === 0) { + result.push((bits >> 16) & 0xFF); + result.push((bits >> 8) & 0xFF); + result.push(bits & 0xFF); + } else if (tailbits === 18) { + result.push((bits >> 10) & 0xFF); + result.push((bits >> 2) & 0xFF); + } else if (tailbits === 12) { + result.push((bits >> 4) & 0xFF); + } + + return new Uint8Array(result); + } + + function representYamlBinary(object /*, style*/) { + var result = '', bits = 0, idx, tail, + max = object.length, + map = BASE64_MAP; + + // Convert every three bytes to 4 ASCII characters. + + for (idx = 0; idx < max; idx++) { + if ((idx % 3 === 0) && idx) { + result += map[(bits >> 18) & 0x3F]; + result += map[(bits >> 12) & 0x3F]; + result += map[(bits >> 6) & 0x3F]; + result += map[bits & 0x3F]; + } + + bits = (bits << 8) + object[idx]; + } + + // Dump tail + + tail = max % 3; + + if (tail === 0) { + result += map[(bits >> 18) & 0x3F]; + result += map[(bits >> 12) & 0x3F]; + result += map[(bits >> 6) & 0x3F]; + result += map[bits & 0x3F]; + } else if (tail === 2) { + result += map[(bits >> 10) & 0x3F]; + result += map[(bits >> 4) & 0x3F]; + result += map[(bits << 2) & 0x3F]; + result += map[64]; + } else if (tail === 1) { + result += map[(bits >> 2) & 0x3F]; + result += map[(bits << 4) & 0x3F]; + result += map[64]; + result += map[64]; + } + + return result; + } + + function isBinary(obj) { + return Object.prototype.toString.call(obj) === '[object Uint8Array]'; + } + + binary = new Type('tag:yaml.org,2002:binary', { + kind: 'scalar', + resolve: resolveYamlBinary, + construct: constructYamlBinary, + predicate: isBinary, + represent: representYamlBinary + }); + return binary; +} + +var omap; +var hasRequiredOmap; + +function requireOmap () { + if (hasRequiredOmap) return omap; + hasRequiredOmap = 1; + + var Type = requireType(); + + var _hasOwnProperty = Object.prototype.hasOwnProperty; + var _toString = Object.prototype.toString; + + function resolveYamlOmap(data) { + if (data === null) return true; + + var objectKeys = [], index, length, pair, pairKey, pairHasKey, + object = data; + + for (index = 0, length = object.length; index < length; index += 1) { + pair = object[index]; + pairHasKey = false; + + if (_toString.call(pair) !== '[object Object]') return false; + + for (pairKey in pair) { + if (_hasOwnProperty.call(pair, pairKey)) { + if (!pairHasKey) pairHasKey = true; + else return false; + } + } + + if (!pairHasKey) return false; + + if (objectKeys.indexOf(pairKey) === -1) objectKeys.push(pairKey); + else return false; + } + + return true; + } + + function constructYamlOmap(data) { + return data !== null ? data : []; + } + + omap = new Type('tag:yaml.org,2002:omap', { + kind: 'sequence', + resolve: resolveYamlOmap, + construct: constructYamlOmap + }); + return omap; +} + +var pairs; +var hasRequiredPairs; + +function requirePairs () { + if (hasRequiredPairs) return pairs; + hasRequiredPairs = 1; + + var Type = requireType(); + + var _toString = Object.prototype.toString; + + function resolveYamlPairs(data) { + if (data === null) return true; + + var index, length, pair, keys, result, + object = data; + + result = new Array(object.length); + + for (index = 0, length = object.length; index < length; index += 1) { + pair = object[index]; + + if (_toString.call(pair) !== '[object Object]') return false; + + keys = Object.keys(pair); + + if (keys.length !== 1) return false; + + result[index] = [ keys[0], pair[keys[0]] ]; + } + + return true; + } + + function constructYamlPairs(data) { + if (data === null) return []; + + var index, length, pair, keys, result, + object = data; + + result = new Array(object.length); + + for (index = 0, length = object.length; index < length; index += 1) { + pair = object[index]; + + keys = Object.keys(pair); + + result[index] = [ keys[0], pair[keys[0]] ]; + } + + return result; + } + + pairs = new Type('tag:yaml.org,2002:pairs', { + kind: 'sequence', + resolve: resolveYamlPairs, + construct: constructYamlPairs + }); + return pairs; +} + +var set; +var hasRequiredSet; + +function requireSet () { + if (hasRequiredSet) return set; + hasRequiredSet = 1; + + var Type = requireType(); + + var _hasOwnProperty = Object.prototype.hasOwnProperty; + + function resolveYamlSet(data) { + if (data === null) return true; + + var key, object = data; + + for (key in object) { + if (_hasOwnProperty.call(object, key)) { + if (object[key] !== null) return false; + } + } + + return true; + } + + function constructYamlSet(data) { + return data !== null ? data : {}; + } + + set = new Type('tag:yaml.org,2002:set', { + kind: 'mapping', + resolve: resolveYamlSet, + construct: constructYamlSet + }); + return set; +} + +var _default; +var hasRequired_default; + +function require_default () { + if (hasRequired_default) return _default; + hasRequired_default = 1; + + + _default = requireCore().extend({ + implicit: [ + requireTimestamp(), + requireMerge() + ], + explicit: [ + requireBinary(), + requireOmap(), + requirePairs(), + requireSet() + ] + }); + return _default; +} + +var hasRequiredLoader; + +function requireLoader () { + if (hasRequiredLoader) return loader; + hasRequiredLoader = 1; + + /*eslint-disable max-len,no-use-before-define*/ + + var common = requireCommon(); + var YAMLException = requireException(); + var makeSnippet = requireSnippet(); + var DEFAULT_SCHEMA = require_default(); + + + var _hasOwnProperty = Object.prototype.hasOwnProperty; + + + var CONTEXT_FLOW_IN = 1; + var CONTEXT_FLOW_OUT = 2; + var CONTEXT_BLOCK_IN = 3; + var CONTEXT_BLOCK_OUT = 4; + + + var CHOMPING_CLIP = 1; + var CHOMPING_STRIP = 2; + var CHOMPING_KEEP = 3; + + + var PATTERN_NON_PRINTABLE = /[\x00-\x08\x0B\x0C\x0E-\x1F\x7F-\x84\x86-\x9F\uFFFE\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]/; + var PATTERN_NON_ASCII_LINE_BREAKS = /[\x85\u2028\u2029]/; + var PATTERN_FLOW_INDICATORS = /[,\[\]\{\}]/; + var PATTERN_TAG_HANDLE = /^(?:!|!!|![a-z\-]+!)$/i; + var PATTERN_TAG_URI = /^(?:!|[^,\[\]\{\}])(?:%[0-9a-f]{2}|[0-9a-z\-#;\/\?:@&=\+\$,_\.!~\*'\(\)\[\]])*$/i; + + + function _class(obj) { return Object.prototype.toString.call(obj); } + + function is_EOL(c) { + return (c === 0x0A/* LF */) || (c === 0x0D/* CR */); + } + + function is_WHITE_SPACE(c) { + return (c === 0x09/* Tab */) || (c === 0x20/* Space */); + } + + function is_WS_OR_EOL(c) { + return (c === 0x09/* Tab */) || + (c === 0x20/* Space */) || + (c === 0x0A/* LF */) || + (c === 0x0D/* CR */); + } + + function is_FLOW_INDICATOR(c) { + return c === 0x2C/* , */ || + c === 0x5B/* [ */ || + c === 0x5D/* ] */ || + c === 0x7B/* { */ || + c === 0x7D/* } */; + } + + function fromHexCode(c) { + var lc; + + if ((0x30/* 0 */ <= c) && (c <= 0x39/* 9 */)) { + return c - 0x30; + } + + /*eslint-disable no-bitwise*/ + lc = c | 0x20; + + if ((0x61/* a */ <= lc) && (lc <= 0x66/* f */)) { + return lc - 0x61 + 10; + } + + return -1; + } + + function escapedHexLen(c) { + if (c === 0x78/* x */) { return 2; } + if (c === 0x75/* u */) { return 4; } + if (c === 0x55/* U */) { return 8; } + return 0; + } + + function fromDecimalCode(c) { + if ((0x30/* 0 */ <= c) && (c <= 0x39/* 9 */)) { + return c - 0x30; + } + + return -1; + } + + function simpleEscapeSequence(c) { + /* eslint-disable indent */ + return (c === 0x30/* 0 */) ? '\x00' : + (c === 0x61/* a */) ? '\x07' : + (c === 0x62/* b */) ? '\x08' : + (c === 0x74/* t */) ? '\x09' : + (c === 0x09/* Tab */) ? '\x09' : + (c === 0x6E/* n */) ? '\x0A' : + (c === 0x76/* v */) ? '\x0B' : + (c === 0x66/* f */) ? '\x0C' : + (c === 0x72/* r */) ? '\x0D' : + (c === 0x65/* e */) ? '\x1B' : + (c === 0x20/* Space */) ? ' ' : + (c === 0x22/* " */) ? '\x22' : + (c === 0x2F/* / */) ? '/' : + (c === 0x5C/* \ */) ? '\x5C' : + (c === 0x4E/* N */) ? '\x85' : + (c === 0x5F/* _ */) ? '\xA0' : + (c === 0x4C/* L */) ? '\u2028' : + (c === 0x50/* P */) ? '\u2029' : ''; + } + + function charFromCodepoint(c) { + if (c <= 0xFFFF) { + return String.fromCharCode(c); + } + // Encode UTF-16 surrogate pair + // https://en.wikipedia.org/wiki/UTF-16#Code_points_U.2B010000_to_U.2B10FFFF + return String.fromCharCode( + ((c - 0x010000) >> 10) + 0xD800, + ((c - 0x010000) & 0x03FF) + 0xDC00 + ); + } + + var simpleEscapeCheck = new Array(256); // integer, for fast access + var simpleEscapeMap = new Array(256); + for (var i = 0; i < 256; i++) { + simpleEscapeCheck[i] = simpleEscapeSequence(i) ? 1 : 0; + simpleEscapeMap[i] = simpleEscapeSequence(i); + } + + + function State(input, options) { + this.input = input; + + this.filename = options['filename'] || null; + this.schema = options['schema'] || DEFAULT_SCHEMA; + this.onWarning = options['onWarning'] || null; + // (Hidden) Remove? makes the loader to expect YAML 1.1 documents + // if such documents have no explicit %YAML directive + this.legacy = options['legacy'] || false; + + this.json = options['json'] || false; + this.listener = options['listener'] || null; + + this.implicitTypes = this.schema.compiledImplicit; + this.typeMap = this.schema.compiledTypeMap; + + this.length = input.length; + this.position = 0; + this.line = 0; + this.lineStart = 0; + this.lineIndent = 0; + + // position of first leading tab in the current line, + // used to make sure there are no tabs in the indentation + this.firstTabInLine = -1; + + this.documents = []; + + /* + this.version; + this.checkLineBreaks; + this.tagMap; + this.anchorMap; + this.tag; + this.anchor; + this.kind; + this.result;*/ + + } + + + function generateError(state, message) { + var mark = { + name: state.filename, + buffer: state.input.slice(0, -1), // omit trailing \0 + position: state.position, + line: state.line, + column: state.position - state.lineStart + }; + + mark.snippet = makeSnippet(mark); + + return new YAMLException(message, mark); + } + + function throwError(state, message) { + throw generateError(state, message); + } + + function throwWarning(state, message) { + if (state.onWarning) { + state.onWarning.call(null, generateError(state, message)); + } + } + + + var directiveHandlers = { + + YAML: function handleYamlDirective(state, name, args) { + + var match, major, minor; + + if (state.version !== null) { + throwError(state, 'duplication of %YAML directive'); + } + + if (args.length !== 1) { + throwError(state, 'YAML directive accepts exactly one argument'); + } + + match = /^([0-9]+)\.([0-9]+)$/.exec(args[0]); + + if (match === null) { + throwError(state, 'ill-formed argument of the YAML directive'); + } + + major = parseInt(match[1], 10); + minor = parseInt(match[2], 10); + + if (major !== 1) { + throwError(state, 'unacceptable YAML version of the document'); + } + + state.version = args[0]; + state.checkLineBreaks = (minor < 2); + + if (minor !== 1 && minor !== 2) { + throwWarning(state, 'unsupported YAML version of the document'); + } + }, + + TAG: function handleTagDirective(state, name, args) { + + var handle, prefix; + + if (args.length !== 2) { + throwError(state, 'TAG directive accepts exactly two arguments'); + } + + handle = args[0]; + prefix = args[1]; + + if (!PATTERN_TAG_HANDLE.test(handle)) { + throwError(state, 'ill-formed tag handle (first argument) of the TAG directive'); + } + + if (_hasOwnProperty.call(state.tagMap, handle)) { + throwError(state, 'there is a previously declared suffix for "' + handle + '" tag handle'); + } + + if (!PATTERN_TAG_URI.test(prefix)) { + throwError(state, 'ill-formed tag prefix (second argument) of the TAG directive'); + } + + try { + prefix = decodeURIComponent(prefix); + } catch (err) { + throwError(state, 'tag prefix is malformed: ' + prefix); + } + + state.tagMap[handle] = prefix; + } + }; + + + function captureSegment(state, start, end, checkJson) { + var _position, _length, _character, _result; + + if (start < end) { + _result = state.input.slice(start, end); + + if (checkJson) { + for (_position = 0, _length = _result.length; _position < _length; _position += 1) { + _character = _result.charCodeAt(_position); + if (!(_character === 0x09 || + (0x20 <= _character && _character <= 0x10FFFF))) { + throwError(state, 'expected valid JSON character'); + } + } + } else if (PATTERN_NON_PRINTABLE.test(_result)) { + throwError(state, 'the stream contains non-printable characters'); + } + + state.result += _result; + } + } + + function mergeMappings(state, destination, source, overridableKeys) { + var sourceKeys, key, index, quantity; + + if (!common.isObject(source)) { + throwError(state, 'cannot merge mappings; the provided source object is unacceptable'); + } + + sourceKeys = Object.keys(source); + + for (index = 0, quantity = sourceKeys.length; index < quantity; index += 1) { + key = sourceKeys[index]; + + if (!_hasOwnProperty.call(destination, key)) { + destination[key] = source[key]; + overridableKeys[key] = true; + } + } + } + + function storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, valueNode, + startLine, startLineStart, startPos) { + + var index, quantity; + + // The output is a plain object here, so keys can only be strings. + // We need to convert keyNode to a string, but doing so can hang the process + // (deeply nested arrays that explode exponentially using aliases). + if (Array.isArray(keyNode)) { + keyNode = Array.prototype.slice.call(keyNode); + + for (index = 0, quantity = keyNode.length; index < quantity; index += 1) { + if (Array.isArray(keyNode[index])) { + throwError(state, 'nested arrays are not supported inside keys'); + } + + if (typeof keyNode === 'object' && _class(keyNode[index]) === '[object Object]') { + keyNode[index] = '[object Object]'; + } + } + } + + // Avoid code execution in load() via toString property + // (still use its own toString for arrays, timestamps, + // and whatever user schema extensions happen to have @@toStringTag) + if (typeof keyNode === 'object' && _class(keyNode) === '[object Object]') { + keyNode = '[object Object]'; + } + + + keyNode = String(keyNode); + + if (_result === null) { + _result = {}; + } + + if (keyTag === 'tag:yaml.org,2002:merge') { + if (Array.isArray(valueNode)) { + for (index = 0, quantity = valueNode.length; index < quantity; index += 1) { + mergeMappings(state, _result, valueNode[index], overridableKeys); + } + } else { + mergeMappings(state, _result, valueNode, overridableKeys); + } + } else { + if (!state.json && + !_hasOwnProperty.call(overridableKeys, keyNode) && + _hasOwnProperty.call(_result, keyNode)) { + state.line = startLine || state.line; + state.lineStart = startLineStart || state.lineStart; + state.position = startPos || state.position; + throwError(state, 'duplicated mapping key'); + } + + // used for this specific key only because Object.defineProperty is slow + if (keyNode === '__proto__') { + Object.defineProperty(_result, keyNode, { + configurable: true, + enumerable: true, + writable: true, + value: valueNode + }); + } else { + _result[keyNode] = valueNode; + } + delete overridableKeys[keyNode]; + } + + return _result; + } + + function readLineBreak(state) { + var ch; + + ch = state.input.charCodeAt(state.position); + + if (ch === 0x0A/* LF */) { + state.position++; + } else if (ch === 0x0D/* CR */) { + state.position++; + if (state.input.charCodeAt(state.position) === 0x0A/* LF */) { + state.position++; + } + } else { + throwError(state, 'a line break is expected'); + } + + state.line += 1; + state.lineStart = state.position; + state.firstTabInLine = -1; + } + + function skipSeparationSpace(state, allowComments, checkIndent) { + var lineBreaks = 0, + ch = state.input.charCodeAt(state.position); + + while (ch !== 0) { + while (is_WHITE_SPACE(ch)) { + if (ch === 0x09/* Tab */ && state.firstTabInLine === -1) { + state.firstTabInLine = state.position; + } + ch = state.input.charCodeAt(++state.position); + } + + if (allowComments && ch === 0x23/* # */) { + do { + ch = state.input.charCodeAt(++state.position); + } while (ch !== 0x0A/* LF */ && ch !== 0x0D/* CR */ && ch !== 0); + } + + if (is_EOL(ch)) { + readLineBreak(state); + + ch = state.input.charCodeAt(state.position); + lineBreaks++; + state.lineIndent = 0; + + while (ch === 0x20/* Space */) { + state.lineIndent++; + ch = state.input.charCodeAt(++state.position); + } + } else { + break; + } + } + + if (checkIndent !== -1 && lineBreaks !== 0 && state.lineIndent < checkIndent) { + throwWarning(state, 'deficient indentation'); + } + + return lineBreaks; + } + + function testDocumentSeparator(state) { + var _position = state.position, + ch; + + ch = state.input.charCodeAt(_position); + + // Condition state.position === state.lineStart is tested + // in parent on each call, for efficiency. No needs to test here again. + if ((ch === 0x2D/* - */ || ch === 0x2E/* . */) && + ch === state.input.charCodeAt(_position + 1) && + ch === state.input.charCodeAt(_position + 2)) { + + _position += 3; + + ch = state.input.charCodeAt(_position); + + if (ch === 0 || is_WS_OR_EOL(ch)) { + return true; + } + } + + return false; + } + + function writeFoldedLines(state, count) { + if (count === 1) { + state.result += ' '; + } else if (count > 1) { + state.result += common.repeat('\n', count - 1); + } + } + + + function readPlainScalar(state, nodeIndent, withinFlowCollection) { + var preceding, + following, + captureStart, + captureEnd, + hasPendingContent, + _line, + _lineStart, + _lineIndent, + _kind = state.kind, + _result = state.result, + ch; + + ch = state.input.charCodeAt(state.position); + + if (is_WS_OR_EOL(ch) || + is_FLOW_INDICATOR(ch) || + ch === 0x23/* # */ || + ch === 0x26/* & */ || + ch === 0x2A/* * */ || + ch === 0x21/* ! */ || + ch === 0x7C/* | */ || + ch === 0x3E/* > */ || + ch === 0x27/* ' */ || + ch === 0x22/* " */ || + ch === 0x25/* % */ || + ch === 0x40/* @ */ || + ch === 0x60/* ` */) { + return false; + } + + if (ch === 0x3F/* ? */ || ch === 0x2D/* - */) { + following = state.input.charCodeAt(state.position + 1); + + if (is_WS_OR_EOL(following) || + withinFlowCollection && is_FLOW_INDICATOR(following)) { + return false; + } + } + + state.kind = 'scalar'; + state.result = ''; + captureStart = captureEnd = state.position; + hasPendingContent = false; + + while (ch !== 0) { + if (ch === 0x3A/* : */) { + following = state.input.charCodeAt(state.position + 1); + + if (is_WS_OR_EOL(following) || + withinFlowCollection && is_FLOW_INDICATOR(following)) { + break; + } + + } else if (ch === 0x23/* # */) { + preceding = state.input.charCodeAt(state.position - 1); + + if (is_WS_OR_EOL(preceding)) { + break; + } + + } else if ((state.position === state.lineStart && testDocumentSeparator(state)) || + withinFlowCollection && is_FLOW_INDICATOR(ch)) { + break; + + } else if (is_EOL(ch)) { + _line = state.line; + _lineStart = state.lineStart; + _lineIndent = state.lineIndent; + skipSeparationSpace(state, false, -1); + + if (state.lineIndent >= nodeIndent) { + hasPendingContent = true; + ch = state.input.charCodeAt(state.position); + continue; + } else { + state.position = captureEnd; + state.line = _line; + state.lineStart = _lineStart; + state.lineIndent = _lineIndent; + break; + } + } + + if (hasPendingContent) { + captureSegment(state, captureStart, captureEnd, false); + writeFoldedLines(state, state.line - _line); + captureStart = captureEnd = state.position; + hasPendingContent = false; + } + + if (!is_WHITE_SPACE(ch)) { + captureEnd = state.position + 1; + } + + ch = state.input.charCodeAt(++state.position); + } + + captureSegment(state, captureStart, captureEnd, false); + + if (state.result) { + return true; + } + + state.kind = _kind; + state.result = _result; + return false; + } + + function readSingleQuotedScalar(state, nodeIndent) { + var ch, + captureStart, captureEnd; + + ch = state.input.charCodeAt(state.position); + + if (ch !== 0x27/* ' */) { + return false; + } + + state.kind = 'scalar'; + state.result = ''; + state.position++; + captureStart = captureEnd = state.position; + + while ((ch = state.input.charCodeAt(state.position)) !== 0) { + if (ch === 0x27/* ' */) { + captureSegment(state, captureStart, state.position, true); + ch = state.input.charCodeAt(++state.position); + + if (ch === 0x27/* ' */) { + captureStart = state.position; + state.position++; + captureEnd = state.position; + } else { + return true; + } + + } else if (is_EOL(ch)) { + captureSegment(state, captureStart, captureEnd, true); + writeFoldedLines(state, skipSeparationSpace(state, false, nodeIndent)); + captureStart = captureEnd = state.position; + + } else if (state.position === state.lineStart && testDocumentSeparator(state)) { + throwError(state, 'unexpected end of the document within a single quoted scalar'); + + } else { + state.position++; + captureEnd = state.position; + } + } + + throwError(state, 'unexpected end of the stream within a single quoted scalar'); + } + + function readDoubleQuotedScalar(state, nodeIndent) { + var captureStart, + captureEnd, + hexLength, + hexResult, + tmp, + ch; + + ch = state.input.charCodeAt(state.position); + + if (ch !== 0x22/* " */) { + return false; + } + + state.kind = 'scalar'; + state.result = ''; + state.position++; + captureStart = captureEnd = state.position; + + while ((ch = state.input.charCodeAt(state.position)) !== 0) { + if (ch === 0x22/* " */) { + captureSegment(state, captureStart, state.position, true); + state.position++; + return true; + + } else if (ch === 0x5C/* \ */) { + captureSegment(state, captureStart, state.position, true); + ch = state.input.charCodeAt(++state.position); + + if (is_EOL(ch)) { + skipSeparationSpace(state, false, nodeIndent); + + // TODO: rework to inline fn with no type cast? + } else if (ch < 256 && simpleEscapeCheck[ch]) { + state.result += simpleEscapeMap[ch]; + state.position++; + + } else if ((tmp = escapedHexLen(ch)) > 0) { + hexLength = tmp; + hexResult = 0; + + for (; hexLength > 0; hexLength--) { + ch = state.input.charCodeAt(++state.position); + + if ((tmp = fromHexCode(ch)) >= 0) { + hexResult = (hexResult << 4) + tmp; + + } else { + throwError(state, 'expected hexadecimal character'); + } + } + + state.result += charFromCodepoint(hexResult); + + state.position++; + + } else { + throwError(state, 'unknown escape sequence'); + } + + captureStart = captureEnd = state.position; + + } else if (is_EOL(ch)) { + captureSegment(state, captureStart, captureEnd, true); + writeFoldedLines(state, skipSeparationSpace(state, false, nodeIndent)); + captureStart = captureEnd = state.position; + + } else if (state.position === state.lineStart && testDocumentSeparator(state)) { + throwError(state, 'unexpected end of the document within a double quoted scalar'); + + } else { + state.position++; + captureEnd = state.position; + } + } + + throwError(state, 'unexpected end of the stream within a double quoted scalar'); + } + + function readFlowCollection(state, nodeIndent) { + var readNext = true, + _line, + _lineStart, + _pos, + _tag = state.tag, + _result, + _anchor = state.anchor, + following, + terminator, + isPair, + isExplicitPair, + isMapping, + overridableKeys = Object.create(null), + keyNode, + keyTag, + valueNode, + ch; + + ch = state.input.charCodeAt(state.position); + + if (ch === 0x5B/* [ */) { + terminator = 0x5D;/* ] */ + isMapping = false; + _result = []; + } else if (ch === 0x7B/* { */) { + terminator = 0x7D;/* } */ + isMapping = true; + _result = {}; + } else { + return false; + } + + if (state.anchor !== null) { + state.anchorMap[state.anchor] = _result; + } + + ch = state.input.charCodeAt(++state.position); + + while (ch !== 0) { + skipSeparationSpace(state, true, nodeIndent); + + ch = state.input.charCodeAt(state.position); + + if (ch === terminator) { + state.position++; + state.tag = _tag; + state.anchor = _anchor; + state.kind = isMapping ? 'mapping' : 'sequence'; + state.result = _result; + return true; + } else if (!readNext) { + throwError(state, 'missed comma between flow collection entries'); + } else if (ch === 0x2C/* , */) { + // "flow collection entries can never be completely empty", as per YAML 1.2, section 7.4 + throwError(state, "expected the node content, but found ','"); + } + + keyTag = keyNode = valueNode = null; + isPair = isExplicitPair = false; + + if (ch === 0x3F/* ? */) { + following = state.input.charCodeAt(state.position + 1); + + if (is_WS_OR_EOL(following)) { + isPair = isExplicitPair = true; + state.position++; + skipSeparationSpace(state, true, nodeIndent); + } + } + + _line = state.line; // Save the current line. + _lineStart = state.lineStart; + _pos = state.position; + composeNode(state, nodeIndent, CONTEXT_FLOW_IN, false, true); + keyTag = state.tag; + keyNode = state.result; + skipSeparationSpace(state, true, nodeIndent); + + ch = state.input.charCodeAt(state.position); + + if ((isExplicitPair || state.line === _line) && ch === 0x3A/* : */) { + isPair = true; + ch = state.input.charCodeAt(++state.position); + skipSeparationSpace(state, true, nodeIndent); + composeNode(state, nodeIndent, CONTEXT_FLOW_IN, false, true); + valueNode = state.result; + } + + if (isMapping) { + storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, valueNode, _line, _lineStart, _pos); + } else if (isPair) { + _result.push(storeMappingPair(state, null, overridableKeys, keyTag, keyNode, valueNode, _line, _lineStart, _pos)); + } else { + _result.push(keyNode); + } + + skipSeparationSpace(state, true, nodeIndent); + + ch = state.input.charCodeAt(state.position); + + if (ch === 0x2C/* , */) { + readNext = true; + ch = state.input.charCodeAt(++state.position); + } else { + readNext = false; + } + } + + throwError(state, 'unexpected end of the stream within a flow collection'); + } + + function readBlockScalar(state, nodeIndent) { + var captureStart, + folding, + chomping = CHOMPING_CLIP, + didReadContent = false, + detectedIndent = false, + textIndent = nodeIndent, + emptyLines = 0, + atMoreIndented = false, + tmp, + ch; + + ch = state.input.charCodeAt(state.position); + + if (ch === 0x7C/* | */) { + folding = false; + } else if (ch === 0x3E/* > */) { + folding = true; + } else { + return false; + } + + state.kind = 'scalar'; + state.result = ''; + + while (ch !== 0) { + ch = state.input.charCodeAt(++state.position); + + if (ch === 0x2B/* + */ || ch === 0x2D/* - */) { + if (CHOMPING_CLIP === chomping) { + chomping = (ch === 0x2B/* + */) ? CHOMPING_KEEP : CHOMPING_STRIP; + } else { + throwError(state, 'repeat of a chomping mode identifier'); + } + + } else if ((tmp = fromDecimalCode(ch)) >= 0) { + if (tmp === 0) { + throwError(state, 'bad explicit indentation width of a block scalar; it cannot be less than one'); + } else if (!detectedIndent) { + textIndent = nodeIndent + tmp - 1; + detectedIndent = true; + } else { + throwError(state, 'repeat of an indentation width identifier'); + } + + } else { + break; + } + } + + if (is_WHITE_SPACE(ch)) { + do { ch = state.input.charCodeAt(++state.position); } + while (is_WHITE_SPACE(ch)); + + if (ch === 0x23/* # */) { + do { ch = state.input.charCodeAt(++state.position); } + while (!is_EOL(ch) && (ch !== 0)); + } + } + + while (ch !== 0) { + readLineBreak(state); + state.lineIndent = 0; + + ch = state.input.charCodeAt(state.position); + + while ((!detectedIndent || state.lineIndent < textIndent) && + (ch === 0x20/* Space */)) { + state.lineIndent++; + ch = state.input.charCodeAt(++state.position); + } + + if (!detectedIndent && state.lineIndent > textIndent) { + textIndent = state.lineIndent; + } + + if (is_EOL(ch)) { + emptyLines++; + continue; + } + + // End of the scalar. + if (state.lineIndent < textIndent) { + + // Perform the chomping. + if (chomping === CHOMPING_KEEP) { + state.result += common.repeat('\n', didReadContent ? 1 + emptyLines : emptyLines); + } else if (chomping === CHOMPING_CLIP) { + if (didReadContent) { // i.e. only if the scalar is not empty. + state.result += '\n'; + } + } + + // Break this `while` cycle and go to the funciton's epilogue. + break; + } + + // Folded style: use fancy rules to handle line breaks. + if (folding) { + + // Lines starting with white space characters (more-indented lines) are not folded. + if (is_WHITE_SPACE(ch)) { + atMoreIndented = true; + // except for the first content line (cf. Example 8.1) + state.result += common.repeat('\n', didReadContent ? 1 + emptyLines : emptyLines); + + // End of more-indented block. + } else if (atMoreIndented) { + atMoreIndented = false; + state.result += common.repeat('\n', emptyLines + 1); + + // Just one line break - perceive as the same line. + } else if (emptyLines === 0) { + if (didReadContent) { // i.e. only if we have already read some scalar content. + state.result += ' '; + } + + // Several line breaks - perceive as different lines. + } else { + state.result += common.repeat('\n', emptyLines); + } + + // Literal style: just add exact number of line breaks between content lines. + } else { + // Keep all line breaks except the header line break. + state.result += common.repeat('\n', didReadContent ? 1 + emptyLines : emptyLines); + } + + didReadContent = true; + detectedIndent = true; + emptyLines = 0; + captureStart = state.position; + + while (!is_EOL(ch) && (ch !== 0)) { + ch = state.input.charCodeAt(++state.position); + } + + captureSegment(state, captureStart, state.position, false); + } + + return true; + } + + function readBlockSequence(state, nodeIndent) { + var _line, + _tag = state.tag, + _anchor = state.anchor, + _result = [], + following, + detected = false, + ch; + + // there is a leading tab before this token, so it can't be a block sequence/mapping; + // it can still be flow sequence/mapping or a scalar + if (state.firstTabInLine !== -1) return false; + + if (state.anchor !== null) { + state.anchorMap[state.anchor] = _result; + } + + ch = state.input.charCodeAt(state.position); + + while (ch !== 0) { + if (state.firstTabInLine !== -1) { + state.position = state.firstTabInLine; + throwError(state, 'tab characters must not be used in indentation'); + } + + if (ch !== 0x2D/* - */) { + break; + } + + following = state.input.charCodeAt(state.position + 1); + + if (!is_WS_OR_EOL(following)) { + break; + } + + detected = true; + state.position++; + + if (skipSeparationSpace(state, true, -1)) { + if (state.lineIndent <= nodeIndent) { + _result.push(null); + ch = state.input.charCodeAt(state.position); + continue; + } + } + + _line = state.line; + composeNode(state, nodeIndent, CONTEXT_BLOCK_IN, false, true); + _result.push(state.result); + skipSeparationSpace(state, true, -1); + + ch = state.input.charCodeAt(state.position); + + if ((state.line === _line || state.lineIndent > nodeIndent) && (ch !== 0)) { + throwError(state, 'bad indentation of a sequence entry'); + } else if (state.lineIndent < nodeIndent) { + break; + } + } + + if (detected) { + state.tag = _tag; + state.anchor = _anchor; + state.kind = 'sequence'; + state.result = _result; + return true; + } + return false; + } + + function readBlockMapping(state, nodeIndent, flowIndent) { + var following, + allowCompact, + _line, + _keyLine, + _keyLineStart, + _keyPos, + _tag = state.tag, + _anchor = state.anchor, + _result = {}, + overridableKeys = Object.create(null), + keyTag = null, + keyNode = null, + valueNode = null, + atExplicitKey = false, + detected = false, + ch; + + // there is a leading tab before this token, so it can't be a block sequence/mapping; + // it can still be flow sequence/mapping or a scalar + if (state.firstTabInLine !== -1) return false; + + if (state.anchor !== null) { + state.anchorMap[state.anchor] = _result; + } + + ch = state.input.charCodeAt(state.position); + + while (ch !== 0) { + if (!atExplicitKey && state.firstTabInLine !== -1) { + state.position = state.firstTabInLine; + throwError(state, 'tab characters must not be used in indentation'); + } + + following = state.input.charCodeAt(state.position + 1); + _line = state.line; // Save the current line. + + // + // Explicit notation case. There are two separate blocks: + // first for the key (denoted by "?") and second for the value (denoted by ":") + // + if ((ch === 0x3F/* ? */ || ch === 0x3A/* : */) && is_WS_OR_EOL(following)) { + + if (ch === 0x3F/* ? */) { + if (atExplicitKey) { + storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, null, _keyLine, _keyLineStart, _keyPos); + keyTag = keyNode = valueNode = null; + } + + detected = true; + atExplicitKey = true; + allowCompact = true; + + } else if (atExplicitKey) { + // i.e. 0x3A/* : */ === character after the explicit key. + atExplicitKey = false; + allowCompact = true; + + } else { + throwError(state, 'incomplete explicit mapping pair; a key node is missed; or followed by a non-tabulated empty line'); + } + + state.position += 1; + ch = following; + + // + // Implicit notation case. Flow-style node as the key first, then ":", and the value. + // + } else { + _keyLine = state.line; + _keyLineStart = state.lineStart; + _keyPos = state.position; + + if (!composeNode(state, flowIndent, CONTEXT_FLOW_OUT, false, true)) { + // Neither implicit nor explicit notation. + // Reading is done. Go to the epilogue. + break; + } + + if (state.line === _line) { + ch = state.input.charCodeAt(state.position); + + while (is_WHITE_SPACE(ch)) { + ch = state.input.charCodeAt(++state.position); + } + + if (ch === 0x3A/* : */) { + ch = state.input.charCodeAt(++state.position); + + if (!is_WS_OR_EOL(ch)) { + throwError(state, 'a whitespace character is expected after the key-value separator within a block mapping'); + } + + if (atExplicitKey) { + storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, null, _keyLine, _keyLineStart, _keyPos); + keyTag = keyNode = valueNode = null; + } + + detected = true; + atExplicitKey = false; + allowCompact = false; + keyTag = state.tag; + keyNode = state.result; + + } else if (detected) { + throwError(state, 'can not read an implicit mapping pair; a colon is missed'); + + } else { + state.tag = _tag; + state.anchor = _anchor; + return true; // Keep the result of `composeNode`. + } + + } else if (detected) { + throwError(state, 'can not read a block mapping entry; a multiline key may not be an implicit key'); + + } else { + state.tag = _tag; + state.anchor = _anchor; + return true; // Keep the result of `composeNode`. + } + } + + // + // Common reading code for both explicit and implicit notations. + // + if (state.line === _line || state.lineIndent > nodeIndent) { + if (atExplicitKey) { + _keyLine = state.line; + _keyLineStart = state.lineStart; + _keyPos = state.position; + } + + if (composeNode(state, nodeIndent, CONTEXT_BLOCK_OUT, true, allowCompact)) { + if (atExplicitKey) { + keyNode = state.result; + } else { + valueNode = state.result; + } + } + + if (!atExplicitKey) { + storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, valueNode, _keyLine, _keyLineStart, _keyPos); + keyTag = keyNode = valueNode = null; + } + + skipSeparationSpace(state, true, -1); + ch = state.input.charCodeAt(state.position); + } + + if ((state.line === _line || state.lineIndent > nodeIndent) && (ch !== 0)) { + throwError(state, 'bad indentation of a mapping entry'); + } else if (state.lineIndent < nodeIndent) { + break; + } + } + + // + // Epilogue. + // + + // Special case: last mapping's node contains only the key in explicit notation. + if (atExplicitKey) { + storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, null, _keyLine, _keyLineStart, _keyPos); + } + + // Expose the resulting mapping. + if (detected) { + state.tag = _tag; + state.anchor = _anchor; + state.kind = 'mapping'; + state.result = _result; + } + + return detected; + } + + function readTagProperty(state) { + var _position, + isVerbatim = false, + isNamed = false, + tagHandle, + tagName, + ch; + + ch = state.input.charCodeAt(state.position); + + if (ch !== 0x21/* ! */) return false; + + if (state.tag !== null) { + throwError(state, 'duplication of a tag property'); + } + + ch = state.input.charCodeAt(++state.position); + + if (ch === 0x3C/* < */) { + isVerbatim = true; + ch = state.input.charCodeAt(++state.position); + + } else if (ch === 0x21/* ! */) { + isNamed = true; + tagHandle = '!!'; + ch = state.input.charCodeAt(++state.position); + + } else { + tagHandle = '!'; + } + + _position = state.position; + + if (isVerbatim) { + do { ch = state.input.charCodeAt(++state.position); } + while (ch !== 0 && ch !== 0x3E/* > */); + + if (state.position < state.length) { + tagName = state.input.slice(_position, state.position); + ch = state.input.charCodeAt(++state.position); + } else { + throwError(state, 'unexpected end of the stream within a verbatim tag'); + } + } else { + while (ch !== 0 && !is_WS_OR_EOL(ch)) { + + if (ch === 0x21/* ! */) { + if (!isNamed) { + tagHandle = state.input.slice(_position - 1, state.position + 1); + + if (!PATTERN_TAG_HANDLE.test(tagHandle)) { + throwError(state, 'named tag handle cannot contain such characters'); + } + + isNamed = true; + _position = state.position + 1; + } else { + throwError(state, 'tag suffix cannot contain exclamation marks'); + } + } + + ch = state.input.charCodeAt(++state.position); + } + + tagName = state.input.slice(_position, state.position); + + if (PATTERN_FLOW_INDICATORS.test(tagName)) { + throwError(state, 'tag suffix cannot contain flow indicator characters'); + } + } + + if (tagName && !PATTERN_TAG_URI.test(tagName)) { + throwError(state, 'tag name cannot contain such characters: ' + tagName); + } + + try { + tagName = decodeURIComponent(tagName); + } catch (err) { + throwError(state, 'tag name is malformed: ' + tagName); + } + + if (isVerbatim) { + state.tag = tagName; + + } else if (_hasOwnProperty.call(state.tagMap, tagHandle)) { + state.tag = state.tagMap[tagHandle] + tagName; + + } else if (tagHandle === '!') { + state.tag = '!' + tagName; + + } else if (tagHandle === '!!') { + state.tag = 'tag:yaml.org,2002:' + tagName; + + } else { + throwError(state, 'undeclared tag handle "' + tagHandle + '"'); + } + + return true; + } + + function readAnchorProperty(state) { + var _position, + ch; + + ch = state.input.charCodeAt(state.position); + + if (ch !== 0x26/* & */) return false; + + if (state.anchor !== null) { + throwError(state, 'duplication of an anchor property'); + } + + ch = state.input.charCodeAt(++state.position); + _position = state.position; + + while (ch !== 0 && !is_WS_OR_EOL(ch) && !is_FLOW_INDICATOR(ch)) { + ch = state.input.charCodeAt(++state.position); + } + + if (state.position === _position) { + throwError(state, 'name of an anchor node must contain at least one character'); + } + + state.anchor = state.input.slice(_position, state.position); + return true; + } + + function readAlias(state) { + var _position, alias, + ch; + + ch = state.input.charCodeAt(state.position); + + if (ch !== 0x2A/* * */) return false; + + ch = state.input.charCodeAt(++state.position); + _position = state.position; + + while (ch !== 0 && !is_WS_OR_EOL(ch) && !is_FLOW_INDICATOR(ch)) { + ch = state.input.charCodeAt(++state.position); + } + + if (state.position === _position) { + throwError(state, 'name of an alias node must contain at least one character'); + } + + alias = state.input.slice(_position, state.position); + + if (!_hasOwnProperty.call(state.anchorMap, alias)) { + throwError(state, 'unidentified alias "' + alias + '"'); + } + + state.result = state.anchorMap[alias]; + skipSeparationSpace(state, true, -1); + return true; + } + + function composeNode(state, parentIndent, nodeContext, allowToSeek, allowCompact) { + var allowBlockStyles, + allowBlockScalars, + allowBlockCollections, + indentStatus = 1, // 1: this>parent, 0: this=parent, -1: this parentIndent) { + indentStatus = 1; + } else if (state.lineIndent === parentIndent) { + indentStatus = 0; + } else if (state.lineIndent < parentIndent) { + indentStatus = -1; + } + } + } + + if (indentStatus === 1) { + while (readTagProperty(state) || readAnchorProperty(state)) { + if (skipSeparationSpace(state, true, -1)) { + atNewLine = true; + allowBlockCollections = allowBlockStyles; + + if (state.lineIndent > parentIndent) { + indentStatus = 1; + } else if (state.lineIndent === parentIndent) { + indentStatus = 0; + } else if (state.lineIndent < parentIndent) { + indentStatus = -1; + } + } else { + allowBlockCollections = false; + } + } + } + + if (allowBlockCollections) { + allowBlockCollections = atNewLine || allowCompact; + } + + if (indentStatus === 1 || CONTEXT_BLOCK_OUT === nodeContext) { + if (CONTEXT_FLOW_IN === nodeContext || CONTEXT_FLOW_OUT === nodeContext) { + flowIndent = parentIndent; + } else { + flowIndent = parentIndent + 1; + } + + blockIndent = state.position - state.lineStart; + + if (indentStatus === 1) { + if (allowBlockCollections && + (readBlockSequence(state, blockIndent) || + readBlockMapping(state, blockIndent, flowIndent)) || + readFlowCollection(state, flowIndent)) { + hasContent = true; + } else { + if ((allowBlockScalars && readBlockScalar(state, flowIndent)) || + readSingleQuotedScalar(state, flowIndent) || + readDoubleQuotedScalar(state, flowIndent)) { + hasContent = true; + + } else if (readAlias(state)) { + hasContent = true; + + if (state.tag !== null || state.anchor !== null) { + throwError(state, 'alias node should not have any properties'); + } + + } else if (readPlainScalar(state, flowIndent, CONTEXT_FLOW_IN === nodeContext)) { + hasContent = true; + + if (state.tag === null) { + state.tag = '?'; + } + } + + if (state.anchor !== null) { + state.anchorMap[state.anchor] = state.result; + } + } + } else if (indentStatus === 0) { + // Special case: block sequences are allowed to have same indentation level as the parent. + // http://www.yaml.org/spec/1.2/spec.html#id2799784 + hasContent = allowBlockCollections && readBlockSequence(state, blockIndent); + } + } + + if (state.tag === null) { + if (state.anchor !== null) { + state.anchorMap[state.anchor] = state.result; + } + + } else if (state.tag === '?') { + // Implicit resolving is not allowed for non-scalar types, and '?' + // non-specific tag is only automatically assigned to plain scalars. + // + // We only need to check kind conformity in case user explicitly assigns '?' + // tag, for example like this: "! [0]" + // + if (state.result !== null && state.kind !== 'scalar') { + throwError(state, 'unacceptable node kind for ! tag; it should be "scalar", not "' + state.kind + '"'); + } + + for (typeIndex = 0, typeQuantity = state.implicitTypes.length; typeIndex < typeQuantity; typeIndex += 1) { + type = state.implicitTypes[typeIndex]; + + if (type.resolve(state.result)) { // `state.result` updated in resolver if matched + state.result = type.construct(state.result); + state.tag = type.tag; + if (state.anchor !== null) { + state.anchorMap[state.anchor] = state.result; + } + break; + } + } + } else if (state.tag !== '!') { + if (_hasOwnProperty.call(state.typeMap[state.kind || 'fallback'], state.tag)) { + type = state.typeMap[state.kind || 'fallback'][state.tag]; + } else { + // looking for multi type + type = null; + typeList = state.typeMap.multi[state.kind || 'fallback']; + + for (typeIndex = 0, typeQuantity = typeList.length; typeIndex < typeQuantity; typeIndex += 1) { + if (state.tag.slice(0, typeList[typeIndex].tag.length) === typeList[typeIndex].tag) { + type = typeList[typeIndex]; + break; + } + } + } + + if (!type) { + throwError(state, 'unknown tag !<' + state.tag + '>'); + } + + if (state.result !== null && type.kind !== state.kind) { + throwError(state, 'unacceptable node kind for !<' + state.tag + '> tag; it should be "' + type.kind + '", not "' + state.kind + '"'); + } + + if (!type.resolve(state.result, state.tag)) { // `state.result` updated in resolver if matched + throwError(state, 'cannot resolve a node with !<' + state.tag + '> explicit tag'); + } else { + state.result = type.construct(state.result, state.tag); + if (state.anchor !== null) { + state.anchorMap[state.anchor] = state.result; + } + } + } + + if (state.listener !== null) { + state.listener('close', state); + } + return state.tag !== null || state.anchor !== null || hasContent; + } + + function readDocument(state) { + var documentStart = state.position, + _position, + directiveName, + directiveArgs, + hasDirectives = false, + ch; + + state.version = null; + state.checkLineBreaks = state.legacy; + state.tagMap = Object.create(null); + state.anchorMap = Object.create(null); + + while ((ch = state.input.charCodeAt(state.position)) !== 0) { + skipSeparationSpace(state, true, -1); + + ch = state.input.charCodeAt(state.position); + + if (state.lineIndent > 0 || ch !== 0x25/* % */) { + break; + } + + hasDirectives = true; + ch = state.input.charCodeAt(++state.position); + _position = state.position; + + while (ch !== 0 && !is_WS_OR_EOL(ch)) { + ch = state.input.charCodeAt(++state.position); + } + + directiveName = state.input.slice(_position, state.position); + directiveArgs = []; + + if (directiveName.length < 1) { + throwError(state, 'directive name must not be less than one character in length'); + } + + while (ch !== 0) { + while (is_WHITE_SPACE(ch)) { + ch = state.input.charCodeAt(++state.position); + } + + if (ch === 0x23/* # */) { + do { ch = state.input.charCodeAt(++state.position); } + while (ch !== 0 && !is_EOL(ch)); + break; + } + + if (is_EOL(ch)) break; + + _position = state.position; + + while (ch !== 0 && !is_WS_OR_EOL(ch)) { + ch = state.input.charCodeAt(++state.position); + } + + directiveArgs.push(state.input.slice(_position, state.position)); + } + + if (ch !== 0) readLineBreak(state); + + if (_hasOwnProperty.call(directiveHandlers, directiveName)) { + directiveHandlers[directiveName](state, directiveName, directiveArgs); + } else { + throwWarning(state, 'unknown document directive "' + directiveName + '"'); + } + } + + skipSeparationSpace(state, true, -1); + + if (state.lineIndent === 0 && + state.input.charCodeAt(state.position) === 0x2D/* - */ && + state.input.charCodeAt(state.position + 1) === 0x2D/* - */ && + state.input.charCodeAt(state.position + 2) === 0x2D/* - */) { + state.position += 3; + skipSeparationSpace(state, true, -1); + + } else if (hasDirectives) { + throwError(state, 'directives end mark is expected'); + } + + composeNode(state, state.lineIndent - 1, CONTEXT_BLOCK_OUT, false, true); + skipSeparationSpace(state, true, -1); + + if (state.checkLineBreaks && + PATTERN_NON_ASCII_LINE_BREAKS.test(state.input.slice(documentStart, state.position))) { + throwWarning(state, 'non-ASCII line breaks are interpreted as content'); + } + + state.documents.push(state.result); + + if (state.position === state.lineStart && testDocumentSeparator(state)) { + + if (state.input.charCodeAt(state.position) === 0x2E/* . */) { + state.position += 3; + skipSeparationSpace(state, true, -1); + } + return; + } + + if (state.position < (state.length - 1)) { + throwError(state, 'end of the stream or a document separator is expected'); + } else { + return; + } + } + + + function loadDocuments(input, options) { + input = String(input); + options = options || {}; + + if (input.length !== 0) { + + // Add tailing `\n` if not exists + if (input.charCodeAt(input.length - 1) !== 0x0A/* LF */ && + input.charCodeAt(input.length - 1) !== 0x0D/* CR */) { + input += '\n'; + } + + // Strip BOM + if (input.charCodeAt(0) === 0xFEFF) { + input = input.slice(1); + } + } + + var state = new State(input, options); + + var nullpos = input.indexOf('\0'); + + if (nullpos !== -1) { + state.position = nullpos; + throwError(state, 'null byte is not allowed in input'); + } + + // Use 0 as string terminator. That significantly simplifies bounds check. + state.input += '\0'; + + while (state.input.charCodeAt(state.position) === 0x20/* Space */) { + state.lineIndent += 1; + state.position += 1; + } + + while (state.position < (state.length - 1)) { + readDocument(state); + } + + return state.documents; + } + + + function loadAll(input, iterator, options) { + if (iterator !== null && typeof iterator === 'object' && typeof options === 'undefined') { + options = iterator; + iterator = null; + } + + var documents = loadDocuments(input, options); + + if (typeof iterator !== 'function') { + return documents; + } + + for (var index = 0, length = documents.length; index < length; index += 1) { + iterator(documents[index]); + } + } + + + function load(input, options) { + var documents = loadDocuments(input, options); + + if (documents.length === 0) { + /*eslint-disable no-undefined*/ + return undefined; + } else if (documents.length === 1) { + return documents[0]; + } + throw new YAMLException('expected a single document in the stream, but found more'); + } + + + loader.loadAll = loadAll; + loader.load = load; + return loader; +} + +var dumper = {}; + +var hasRequiredDumper; + +function requireDumper () { + if (hasRequiredDumper) return dumper; + hasRequiredDumper = 1; + + /*eslint-disable no-use-before-define*/ + + var common = requireCommon(); + var YAMLException = requireException(); + var DEFAULT_SCHEMA = require_default(); + + var _toString = Object.prototype.toString; + var _hasOwnProperty = Object.prototype.hasOwnProperty; + + var CHAR_BOM = 0xFEFF; + var CHAR_TAB = 0x09; /* Tab */ + var CHAR_LINE_FEED = 0x0A; /* LF */ + var CHAR_CARRIAGE_RETURN = 0x0D; /* CR */ + var CHAR_SPACE = 0x20; /* Space */ + var CHAR_EXCLAMATION = 0x21; /* ! */ + var CHAR_DOUBLE_QUOTE = 0x22; /* " */ + var CHAR_SHARP = 0x23; /* # */ + var CHAR_PERCENT = 0x25; /* % */ + var CHAR_AMPERSAND = 0x26; /* & */ + var CHAR_SINGLE_QUOTE = 0x27; /* ' */ + var CHAR_ASTERISK = 0x2A; /* * */ + var CHAR_COMMA = 0x2C; /* , */ + var CHAR_MINUS = 0x2D; /* - */ + var CHAR_COLON = 0x3A; /* : */ + var CHAR_EQUALS = 0x3D; /* = */ + var CHAR_GREATER_THAN = 0x3E; /* > */ + var CHAR_QUESTION = 0x3F; /* ? */ + var CHAR_COMMERCIAL_AT = 0x40; /* @ */ + var CHAR_LEFT_SQUARE_BRACKET = 0x5B; /* [ */ + var CHAR_RIGHT_SQUARE_BRACKET = 0x5D; /* ] */ + var CHAR_GRAVE_ACCENT = 0x60; /* ` */ + var CHAR_LEFT_CURLY_BRACKET = 0x7B; /* { */ + var CHAR_VERTICAL_LINE = 0x7C; /* | */ + var CHAR_RIGHT_CURLY_BRACKET = 0x7D; /* } */ + + var ESCAPE_SEQUENCES = {}; + + ESCAPE_SEQUENCES[0x00] = '\\0'; + ESCAPE_SEQUENCES[0x07] = '\\a'; + ESCAPE_SEQUENCES[0x08] = '\\b'; + ESCAPE_SEQUENCES[0x09] = '\\t'; + ESCAPE_SEQUENCES[0x0A] = '\\n'; + ESCAPE_SEQUENCES[0x0B] = '\\v'; + ESCAPE_SEQUENCES[0x0C] = '\\f'; + ESCAPE_SEQUENCES[0x0D] = '\\r'; + ESCAPE_SEQUENCES[0x1B] = '\\e'; + ESCAPE_SEQUENCES[0x22] = '\\"'; + ESCAPE_SEQUENCES[0x5C] = '\\\\'; + ESCAPE_SEQUENCES[0x85] = '\\N'; + ESCAPE_SEQUENCES[0xA0] = '\\_'; + ESCAPE_SEQUENCES[0x2028] = '\\L'; + ESCAPE_SEQUENCES[0x2029] = '\\P'; + + var DEPRECATED_BOOLEANS_SYNTAX = [ + 'y', 'Y', 'yes', 'Yes', 'YES', 'on', 'On', 'ON', + 'n', 'N', 'no', 'No', 'NO', 'off', 'Off', 'OFF' + ]; + + var DEPRECATED_BASE60_SYNTAX = /^[-+]?[0-9_]+(?::[0-9_]+)+(?:\.[0-9_]*)?$/; + + function compileStyleMap(schema, map) { + var result, keys, index, length, tag, style, type; + + if (map === null) return {}; + + result = {}; + keys = Object.keys(map); + + for (index = 0, length = keys.length; index < length; index += 1) { + tag = keys[index]; + style = String(map[tag]); + + if (tag.slice(0, 2) === '!!') { + tag = 'tag:yaml.org,2002:' + tag.slice(2); + } + type = schema.compiledTypeMap['fallback'][tag]; + + if (type && _hasOwnProperty.call(type.styleAliases, style)) { + style = type.styleAliases[style]; + } + + result[tag] = style; + } + + return result; + } + + function encodeHex(character) { + var string, handle, length; + + string = character.toString(16).toUpperCase(); + + if (character <= 0xFF) { + handle = 'x'; + length = 2; + } else if (character <= 0xFFFF) { + handle = 'u'; + length = 4; + } else if (character <= 0xFFFFFFFF) { + handle = 'U'; + length = 8; + } else { + throw new YAMLException('code point within a string may not be greater than 0xFFFFFFFF'); + } + + return '\\' + handle + common.repeat('0', length - string.length) + string; + } + + + var QUOTING_TYPE_SINGLE = 1, + QUOTING_TYPE_DOUBLE = 2; + + function State(options) { + this.schema = options['schema'] || DEFAULT_SCHEMA; + this.indent = Math.max(1, (options['indent'] || 2)); + this.noArrayIndent = options['noArrayIndent'] || false; + this.skipInvalid = options['skipInvalid'] || false; + this.flowLevel = (common.isNothing(options['flowLevel']) ? -1 : options['flowLevel']); + this.styleMap = compileStyleMap(this.schema, options['styles'] || null); + this.sortKeys = options['sortKeys'] || false; + this.lineWidth = options['lineWidth'] || 80; + this.noRefs = options['noRefs'] || false; + this.noCompatMode = options['noCompatMode'] || false; + this.condenseFlow = options['condenseFlow'] || false; + this.quotingType = options['quotingType'] === '"' ? QUOTING_TYPE_DOUBLE : QUOTING_TYPE_SINGLE; + this.forceQuotes = options['forceQuotes'] || false; + this.replacer = typeof options['replacer'] === 'function' ? options['replacer'] : null; + + this.implicitTypes = this.schema.compiledImplicit; + this.explicitTypes = this.schema.compiledExplicit; + + this.tag = null; + this.result = ''; + + this.duplicates = []; + this.usedDuplicates = null; + } + + // Indents every line in a string. Empty lines (\n only) are not indented. + function indentString(string, spaces) { + var ind = common.repeat(' ', spaces), + position = 0, + next = -1, + result = '', + line, + length = string.length; + + while (position < length) { + next = string.indexOf('\n', position); + if (next === -1) { + line = string.slice(position); + position = length; + } else { + line = string.slice(position, next + 1); + position = next + 1; + } + + if (line.length && line !== '\n') result += ind; + + result += line; + } + + return result; + } + + function generateNextLine(state, level) { + return '\n' + common.repeat(' ', state.indent * level); + } + + function testImplicitResolving(state, str) { + var index, length, type; + + for (index = 0, length = state.implicitTypes.length; index < length; index += 1) { + type = state.implicitTypes[index]; + + if (type.resolve(str)) { + return true; + } + } + + return false; + } + + // [33] s-white ::= s-space | s-tab + function isWhitespace(c) { + return c === CHAR_SPACE || c === CHAR_TAB; + } + + // Returns true if the character can be printed without escaping. + // From YAML 1.2: "any allowed characters known to be non-printable + // should also be escaped. [However,] This isn’t mandatory" + // Derived from nb-char - \t - #x85 - #xA0 - #x2028 - #x2029. + function isPrintable(c) { + return (0x00020 <= c && c <= 0x00007E) + || ((0x000A1 <= c && c <= 0x00D7FF) && c !== 0x2028 && c !== 0x2029) + || ((0x0E000 <= c && c <= 0x00FFFD) && c !== CHAR_BOM) + || (0x10000 <= c && c <= 0x10FFFF); + } + + // [34] ns-char ::= nb-char - s-white + // [27] nb-char ::= c-printable - b-char - c-byte-order-mark + // [26] b-char ::= b-line-feed | b-carriage-return + // Including s-white (for some reason, examples doesn't match specs in this aspect) + // ns-char ::= c-printable - b-line-feed - b-carriage-return - c-byte-order-mark + function isNsCharOrWhitespace(c) { + return isPrintable(c) + && c !== CHAR_BOM + // - b-char + && c !== CHAR_CARRIAGE_RETURN + && c !== CHAR_LINE_FEED; + } + + // [127] ns-plain-safe(c) ::= c = flow-out ⇒ ns-plain-safe-out + // c = flow-in ⇒ ns-plain-safe-in + // c = block-key ⇒ ns-plain-safe-out + // c = flow-key ⇒ ns-plain-safe-in + // [128] ns-plain-safe-out ::= ns-char + // [129] ns-plain-safe-in ::= ns-char - c-flow-indicator + // [130] ns-plain-char(c) ::= ( ns-plain-safe(c) - “:” - “#” ) + // | ( /* An ns-char preceding */ “#” ) + // | ( “:” /* Followed by an ns-plain-safe(c) */ ) + function isPlainSafe(c, prev, inblock) { + var cIsNsCharOrWhitespace = isNsCharOrWhitespace(c); + var cIsNsChar = cIsNsCharOrWhitespace && !isWhitespace(c); + return ( + // ns-plain-safe + inblock ? // c = flow-in + cIsNsCharOrWhitespace + : cIsNsCharOrWhitespace + // - c-flow-indicator + && c !== CHAR_COMMA + && c !== CHAR_LEFT_SQUARE_BRACKET + && c !== CHAR_RIGHT_SQUARE_BRACKET + && c !== CHAR_LEFT_CURLY_BRACKET + && c !== CHAR_RIGHT_CURLY_BRACKET + ) + // ns-plain-char + && c !== CHAR_SHARP // false on '#' + && !(prev === CHAR_COLON && !cIsNsChar) // false on ': ' + || (isNsCharOrWhitespace(prev) && !isWhitespace(prev) && c === CHAR_SHARP) // change to true on '[^ ]#' + || (prev === CHAR_COLON && cIsNsChar); // change to true on ':[^ ]' + } + + // Simplified test for values allowed as the first character in plain style. + function isPlainSafeFirst(c) { + // Uses a subset of ns-char - c-indicator + // where ns-char = nb-char - s-white. + // No support of ( ( “?” | “:” | “-” ) /* Followed by an ns-plain-safe(c)) */ ) part + return isPrintable(c) && c !== CHAR_BOM + && !isWhitespace(c) // - s-white + // - (c-indicator ::= + // “-” | “?” | “:” | “,” | “[” | “]” | “{” | “}” + && c !== CHAR_MINUS + && c !== CHAR_QUESTION + && c !== CHAR_COLON + && c !== CHAR_COMMA + && c !== CHAR_LEFT_SQUARE_BRACKET + && c !== CHAR_RIGHT_SQUARE_BRACKET + && c !== CHAR_LEFT_CURLY_BRACKET + && c !== CHAR_RIGHT_CURLY_BRACKET + // | “#” | “&” | “*” | “!” | “|” | “=” | “>” | “'” | “"” + && c !== CHAR_SHARP + && c !== CHAR_AMPERSAND + && c !== CHAR_ASTERISK + && c !== CHAR_EXCLAMATION + && c !== CHAR_VERTICAL_LINE + && c !== CHAR_EQUALS + && c !== CHAR_GREATER_THAN + && c !== CHAR_SINGLE_QUOTE + && c !== CHAR_DOUBLE_QUOTE + // | “%” | “@” | “`”) + && c !== CHAR_PERCENT + && c !== CHAR_COMMERCIAL_AT + && c !== CHAR_GRAVE_ACCENT; + } + + // Simplified test for values allowed as the last character in plain style. + function isPlainSafeLast(c) { + // just not whitespace or colon, it will be checked to be plain character later + return !isWhitespace(c) && c !== CHAR_COLON; + } + + // Same as 'string'.codePointAt(pos), but works in older browsers. + function codePointAt(string, pos) { + var first = string.charCodeAt(pos), second; + if (first >= 0xD800 && first <= 0xDBFF && pos + 1 < string.length) { + second = string.charCodeAt(pos + 1); + if (second >= 0xDC00 && second <= 0xDFFF) { + // https://mathiasbynens.be/notes/javascript-encoding#surrogate-formulae + return (first - 0xD800) * 0x400 + second - 0xDC00 + 0x10000; + } + } + return first; + } + + // Determines whether block indentation indicator is required. + function needIndentIndicator(string) { + var leadingSpaceRe = /^\n* /; + return leadingSpaceRe.test(string); + } + + var STYLE_PLAIN = 1, + STYLE_SINGLE = 2, + STYLE_LITERAL = 3, + STYLE_FOLDED = 4, + STYLE_DOUBLE = 5; + + // Determines which scalar styles are possible and returns the preferred style. + // lineWidth = -1 => no limit. + // Pre-conditions: str.length > 0. + // Post-conditions: + // STYLE_PLAIN or STYLE_SINGLE => no \n are in the string. + // STYLE_LITERAL => no lines are suitable for folding (or lineWidth is -1). + // STYLE_FOLDED => a line > lineWidth and can be folded (and lineWidth != -1). + function chooseScalarStyle(string, singleLineOnly, indentPerLevel, lineWidth, + testAmbiguousType, quotingType, forceQuotes, inblock) { + + var i; + var char = 0; + var prevChar = null; + var hasLineBreak = false; + var hasFoldableLine = false; // only checked if shouldTrackWidth + var shouldTrackWidth = lineWidth !== -1; + var previousLineBreak = -1; // count the first line correctly + var plain = isPlainSafeFirst(codePointAt(string, 0)) + && isPlainSafeLast(codePointAt(string, string.length - 1)); + + if (singleLineOnly || forceQuotes) { + // Case: no block styles. + // Check for disallowed characters to rule out plain and single. + for (i = 0; i < string.length; char >= 0x10000 ? i += 2 : i++) { + char = codePointAt(string, i); + if (!isPrintable(char)) { + return STYLE_DOUBLE; + } + plain = plain && isPlainSafe(char, prevChar, inblock); + prevChar = char; + } + } else { + // Case: block styles permitted. + for (i = 0; i < string.length; char >= 0x10000 ? i += 2 : i++) { + char = codePointAt(string, i); + if (char === CHAR_LINE_FEED) { + hasLineBreak = true; + // Check if any line can be folded. + if (shouldTrackWidth) { + hasFoldableLine = hasFoldableLine || + // Foldable line = too long, and not more-indented. + (i - previousLineBreak - 1 > lineWidth && + string[previousLineBreak + 1] !== ' '); + previousLineBreak = i; + } + } else if (!isPrintable(char)) { + return STYLE_DOUBLE; + } + plain = plain && isPlainSafe(char, prevChar, inblock); + prevChar = char; + } + // in case the end is missing a \n + hasFoldableLine = hasFoldableLine || (shouldTrackWidth && + (i - previousLineBreak - 1 > lineWidth && + string[previousLineBreak + 1] !== ' ')); + } + // Although every style can represent \n without escaping, prefer block styles + // for multiline, since they're more readable and they don't add empty lines. + // Also prefer folding a super-long line. + if (!hasLineBreak && !hasFoldableLine) { + // Strings interpretable as another type have to be quoted; + // e.g. the string 'true' vs. the boolean true. + if (plain && !forceQuotes && !testAmbiguousType(string)) { + return STYLE_PLAIN; + } + return quotingType === QUOTING_TYPE_DOUBLE ? STYLE_DOUBLE : STYLE_SINGLE; + } + // Edge case: block indentation indicator can only have one digit. + if (indentPerLevel > 9 && needIndentIndicator(string)) { + return STYLE_DOUBLE; + } + // At this point we know block styles are valid. + // Prefer literal style unless we want to fold. + if (!forceQuotes) { + return hasFoldableLine ? STYLE_FOLDED : STYLE_LITERAL; + } + return quotingType === QUOTING_TYPE_DOUBLE ? STYLE_DOUBLE : STYLE_SINGLE; + } + + // Note: line breaking/folding is implemented for only the folded style. + // NB. We drop the last trailing newline (if any) of a returned block scalar + // since the dumper adds its own newline. This always works: + // • No ending newline => unaffected; already using strip "-" chomping. + // • Ending newline => removed then restored. + // Importantly, this keeps the "+" chomp indicator from gaining an extra line. + function writeScalar(state, string, level, iskey, inblock) { + state.dump = (function () { + if (string.length === 0) { + return state.quotingType === QUOTING_TYPE_DOUBLE ? '""' : "''"; + } + if (!state.noCompatMode) { + if (DEPRECATED_BOOLEANS_SYNTAX.indexOf(string) !== -1 || DEPRECATED_BASE60_SYNTAX.test(string)) { + return state.quotingType === QUOTING_TYPE_DOUBLE ? ('"' + string + '"') : ("'" + string + "'"); + } + } + + var indent = state.indent * Math.max(1, level); // no 0-indent scalars + // As indentation gets deeper, let the width decrease monotonically + // to the lower bound min(state.lineWidth, 40). + // Note that this implies + // state.lineWidth ≤ 40 + state.indent: width is fixed at the lower bound. + // state.lineWidth > 40 + state.indent: width decreases until the lower bound. + // This behaves better than a constant minimum width which disallows narrower options, + // or an indent threshold which causes the width to suddenly increase. + var lineWidth = state.lineWidth === -1 + ? -1 : Math.max(Math.min(state.lineWidth, 40), state.lineWidth - indent); + + // Without knowing if keys are implicit/explicit, assume implicit for safety. + var singleLineOnly = iskey + // No block styles in flow mode. + || (state.flowLevel > -1 && level >= state.flowLevel); + function testAmbiguity(string) { + return testImplicitResolving(state, string); + } + + switch (chooseScalarStyle(string, singleLineOnly, state.indent, lineWidth, + testAmbiguity, state.quotingType, state.forceQuotes && !iskey, inblock)) { + + case STYLE_PLAIN: + return string; + case STYLE_SINGLE: + return "'" + string.replace(/'/g, "''") + "'"; + case STYLE_LITERAL: + return '|' + blockHeader(string, state.indent) + + dropEndingNewline(indentString(string, indent)); + case STYLE_FOLDED: + return '>' + blockHeader(string, state.indent) + + dropEndingNewline(indentString(foldString(string, lineWidth), indent)); + case STYLE_DOUBLE: + return '"' + escapeString(string) + '"'; + default: + throw new YAMLException('impossible error: invalid scalar style'); + } + }()); + } + + // Pre-conditions: string is valid for a block scalar, 1 <= indentPerLevel <= 9. + function blockHeader(string, indentPerLevel) { + var indentIndicator = needIndentIndicator(string) ? String(indentPerLevel) : ''; + + // note the special case: the string '\n' counts as a "trailing" empty line. + var clip = string[string.length - 1] === '\n'; + var keep = clip && (string[string.length - 2] === '\n' || string === '\n'); + var chomp = keep ? '+' : (clip ? '' : '-'); + + return indentIndicator + chomp + '\n'; + } + + // (See the note for writeScalar.) + function dropEndingNewline(string) { + return string[string.length - 1] === '\n' ? string.slice(0, -1) : string; + } + + // Note: a long line without a suitable break point will exceed the width limit. + // Pre-conditions: every char in str isPrintable, str.length > 0, width > 0. + function foldString(string, width) { + // In folded style, $k$ consecutive newlines output as $k+1$ newlines— + // unless they're before or after a more-indented line, or at the very + // beginning or end, in which case $k$ maps to $k$. + // Therefore, parse each chunk as newline(s) followed by a content line. + var lineRe = /(\n+)([^\n]*)/g; + + // first line (possibly an empty line) + var result = (function () { + var nextLF = string.indexOf('\n'); + nextLF = nextLF !== -1 ? nextLF : string.length; + lineRe.lastIndex = nextLF; + return foldLine(string.slice(0, nextLF), width); + }()); + // If we haven't reached the first content line yet, don't add an extra \n. + var prevMoreIndented = string[0] === '\n' || string[0] === ' '; + var moreIndented; + + // rest of the lines + var match; + while ((match = lineRe.exec(string))) { + var prefix = match[1], line = match[2]; + moreIndented = (line[0] === ' '); + result += prefix + + (!prevMoreIndented && !moreIndented && line !== '' + ? '\n' : '') + + foldLine(line, width); + prevMoreIndented = moreIndented; + } + + return result; + } + + // Greedy line breaking. + // Picks the longest line under the limit each time, + // otherwise settles for the shortest line over the limit. + // NB. More-indented lines *cannot* be folded, as that would add an extra \n. + function foldLine(line, width) { + if (line === '' || line[0] === ' ') return line; + + // Since a more-indented line adds a \n, breaks can't be followed by a space. + var breakRe = / [^ ]/g; // note: the match index will always be <= length-2. + var match; + // start is an inclusive index. end, curr, and next are exclusive. + var start = 0, end, curr = 0, next = 0; + var result = ''; + + // Invariants: 0 <= start <= length-1. + // 0 <= curr <= next <= max(0, length-2). curr - start <= width. + // Inside the loop: + // A match implies length >= 2, so curr and next are <= length-2. + while ((match = breakRe.exec(line))) { + next = match.index; + // maintain invariant: curr - start <= width + if (next - start > width) { + end = (curr > start) ? curr : next; // derive end <= length-2 + result += '\n' + line.slice(start, end); + // skip the space that was output as \n + start = end + 1; // derive start <= length-1 + } + curr = next; + } + + // By the invariants, start <= length-1, so there is something left over. + // It is either the whole string or a part starting from non-whitespace. + result += '\n'; + // Insert a break if the remainder is too long and there is a break available. + if (line.length - start > width && curr > start) { + result += line.slice(start, curr) + '\n' + line.slice(curr + 1); + } else { + result += line.slice(start); + } + + return result.slice(1); // drop extra \n joiner + } + + // Escapes a double-quoted string. + function escapeString(string) { + var result = ''; + var char = 0; + var escapeSeq; + + for (var i = 0; i < string.length; char >= 0x10000 ? i += 2 : i++) { + char = codePointAt(string, i); + escapeSeq = ESCAPE_SEQUENCES[char]; + + if (!escapeSeq && isPrintable(char)) { + result += string[i]; + if (char >= 0x10000) result += string[i + 1]; + } else { + result += escapeSeq || encodeHex(char); + } + } + + return result; + } + + function writeFlowSequence(state, level, object) { + var _result = '', + _tag = state.tag, + index, + length, + value; + + for (index = 0, length = object.length; index < length; index += 1) { + value = object[index]; + + if (state.replacer) { + value = state.replacer.call(object, String(index), value); + } + + // Write only valid elements, put null instead of invalid elements. + if (writeNode(state, level, value, false, false) || + (typeof value === 'undefined' && + writeNode(state, level, null, false, false))) { + + if (_result !== '') _result += ',' + (!state.condenseFlow ? ' ' : ''); + _result += state.dump; + } + } + + state.tag = _tag; + state.dump = '[' + _result + ']'; + } + + function writeBlockSequence(state, level, object, compact) { + var _result = '', + _tag = state.tag, + index, + length, + value; + + for (index = 0, length = object.length; index < length; index += 1) { + value = object[index]; + + if (state.replacer) { + value = state.replacer.call(object, String(index), value); + } + + // Write only valid elements, put null instead of invalid elements. + if (writeNode(state, level + 1, value, true, true, false, true) || + (typeof value === 'undefined' && + writeNode(state, level + 1, null, true, true, false, true))) { + + if (!compact || _result !== '') { + _result += generateNextLine(state, level); + } + + if (state.dump && CHAR_LINE_FEED === state.dump.charCodeAt(0)) { + _result += '-'; + } else { + _result += '- '; + } + + _result += state.dump; + } + } + + state.tag = _tag; + state.dump = _result || '[]'; // Empty sequence if no valid values. + } + + function writeFlowMapping(state, level, object) { + var _result = '', + _tag = state.tag, + objectKeyList = Object.keys(object), + index, + length, + objectKey, + objectValue, + pairBuffer; + + for (index = 0, length = objectKeyList.length; index < length; index += 1) { + + pairBuffer = ''; + if (_result !== '') pairBuffer += ', '; + + if (state.condenseFlow) pairBuffer += '"'; + + objectKey = objectKeyList[index]; + objectValue = object[objectKey]; + + if (state.replacer) { + objectValue = state.replacer.call(object, objectKey, objectValue); + } + + if (!writeNode(state, level, objectKey, false, false)) { + continue; // Skip this pair because of invalid key; + } + + if (state.dump.length > 1024) pairBuffer += '? '; + + pairBuffer += state.dump + (state.condenseFlow ? '"' : '') + ':' + (state.condenseFlow ? '' : ' '); + + if (!writeNode(state, level, objectValue, false, false)) { + continue; // Skip this pair because of invalid value. + } + + pairBuffer += state.dump; + + // Both key and value are valid. + _result += pairBuffer; + } + + state.tag = _tag; + state.dump = '{' + _result + '}'; + } + + function writeBlockMapping(state, level, object, compact) { + var _result = '', + _tag = state.tag, + objectKeyList = Object.keys(object), + index, + length, + objectKey, + objectValue, + explicitPair, + pairBuffer; + + // Allow sorting keys so that the output file is deterministic + if (state.sortKeys === true) { + // Default sorting + objectKeyList.sort(); + } else if (typeof state.sortKeys === 'function') { + // Custom sort function + objectKeyList.sort(state.sortKeys); + } else if (state.sortKeys) { + // Something is wrong + throw new YAMLException('sortKeys must be a boolean or a function'); + } + + for (index = 0, length = objectKeyList.length; index < length; index += 1) { + pairBuffer = ''; + + if (!compact || _result !== '') { + pairBuffer += generateNextLine(state, level); + } + + objectKey = objectKeyList[index]; + objectValue = object[objectKey]; + + if (state.replacer) { + objectValue = state.replacer.call(object, objectKey, objectValue); + } + + if (!writeNode(state, level + 1, objectKey, true, true, true)) { + continue; // Skip this pair because of invalid key. + } + + explicitPair = (state.tag !== null && state.tag !== '?') || + (state.dump && state.dump.length > 1024); + + if (explicitPair) { + if (state.dump && CHAR_LINE_FEED === state.dump.charCodeAt(0)) { + pairBuffer += '?'; + } else { + pairBuffer += '? '; + } + } + + pairBuffer += state.dump; + + if (explicitPair) { + pairBuffer += generateNextLine(state, level); + } + + if (!writeNode(state, level + 1, objectValue, true, explicitPair)) { + continue; // Skip this pair because of invalid value. + } + + if (state.dump && CHAR_LINE_FEED === state.dump.charCodeAt(0)) { + pairBuffer += ':'; + } else { + pairBuffer += ': '; + } + + pairBuffer += state.dump; + + // Both key and value are valid. + _result += pairBuffer; + } + + state.tag = _tag; + state.dump = _result || '{}'; // Empty mapping if no valid pairs. + } + + function detectType(state, object, explicit) { + var _result, typeList, index, length, type, style; + + typeList = explicit ? state.explicitTypes : state.implicitTypes; + + for (index = 0, length = typeList.length; index < length; index += 1) { + type = typeList[index]; + + if ((type.instanceOf || type.predicate) && + (!type.instanceOf || ((typeof object === 'object') && (object instanceof type.instanceOf))) && + (!type.predicate || type.predicate(object))) { + + if (explicit) { + if (type.multi && type.representName) { + state.tag = type.representName(object); + } else { + state.tag = type.tag; + } + } else { + state.tag = '?'; + } + + if (type.represent) { + style = state.styleMap[type.tag] || type.defaultStyle; + + if (_toString.call(type.represent) === '[object Function]') { + _result = type.represent(object, style); + } else if (_hasOwnProperty.call(type.represent, style)) { + _result = type.represent[style](object, style); + } else { + throw new YAMLException('!<' + type.tag + '> tag resolver accepts not "' + style + '" style'); + } + + state.dump = _result; + } + + return true; + } + } + + return false; + } + + // Serializes `object` and writes it to global `result`. + // Returns true on success, or false on invalid object. + // + function writeNode(state, level, object, block, compact, iskey, isblockseq) { + state.tag = null; + state.dump = object; + + if (!detectType(state, object, false)) { + detectType(state, object, true); + } + + var type = _toString.call(state.dump); + var inblock = block; + var tagStr; + + if (block) { + block = (state.flowLevel < 0 || state.flowLevel > level); + } + + var objectOrArray = type === '[object Object]' || type === '[object Array]', + duplicateIndex, + duplicate; + + if (objectOrArray) { + duplicateIndex = state.duplicates.indexOf(object); + duplicate = duplicateIndex !== -1; + } + + if ((state.tag !== null && state.tag !== '?') || duplicate || (state.indent !== 2 && level > 0)) { + compact = false; + } + + if (duplicate && state.usedDuplicates[duplicateIndex]) { + state.dump = '*ref_' + duplicateIndex; + } else { + if (objectOrArray && duplicate && !state.usedDuplicates[duplicateIndex]) { + state.usedDuplicates[duplicateIndex] = true; + } + if (type === '[object Object]') { + if (block && (Object.keys(state.dump).length !== 0)) { + writeBlockMapping(state, level, state.dump, compact); + if (duplicate) { + state.dump = '&ref_' + duplicateIndex + state.dump; + } + } else { + writeFlowMapping(state, level, state.dump); + if (duplicate) { + state.dump = '&ref_' + duplicateIndex + ' ' + state.dump; + } + } + } else if (type === '[object Array]') { + if (block && (state.dump.length !== 0)) { + if (state.noArrayIndent && !isblockseq && level > 0) { + writeBlockSequence(state, level - 1, state.dump, compact); + } else { + writeBlockSequence(state, level, state.dump, compact); + } + if (duplicate) { + state.dump = '&ref_' + duplicateIndex + state.dump; + } + } else { + writeFlowSequence(state, level, state.dump); + if (duplicate) { + state.dump = '&ref_' + duplicateIndex + ' ' + state.dump; + } + } + } else if (type === '[object String]') { + if (state.tag !== '?') { + writeScalar(state, state.dump, level, iskey, inblock); + } + } else if (type === '[object Undefined]') { + return false; + } else { + if (state.skipInvalid) return false; + throw new YAMLException('unacceptable kind of an object to dump ' + type); + } + + if (state.tag !== null && state.tag !== '?') { + // Need to encode all characters except those allowed by the spec: + // + // [35] ns-dec-digit ::= [#x30-#x39] /* 0-9 */ + // [36] ns-hex-digit ::= ns-dec-digit + // | [#x41-#x46] /* A-F */ | [#x61-#x66] /* a-f */ + // [37] ns-ascii-letter ::= [#x41-#x5A] /* A-Z */ | [#x61-#x7A] /* a-z */ + // [38] ns-word-char ::= ns-dec-digit | ns-ascii-letter | “-” + // [39] ns-uri-char ::= “%” ns-hex-digit ns-hex-digit | ns-word-char | “#” + // | “;” | “/” | “?” | “:” | “@” | “&” | “=” | “+” | “$” | “,” + // | “_” | “.” | “!” | “~” | “*” | “'” | “(” | “)” | “[” | “]” + // + // Also need to encode '!' because it has special meaning (end of tag prefix). + // + tagStr = encodeURI( + state.tag[0] === '!' ? state.tag.slice(1) : state.tag + ).replace(/!/g, '%21'); + + if (state.tag[0] === '!') { + tagStr = '!' + tagStr; + } else if (tagStr.slice(0, 18) === 'tag:yaml.org,2002:') { + tagStr = '!!' + tagStr.slice(18); + } else { + tagStr = '!<' + tagStr + '>'; + } + + state.dump = tagStr + ' ' + state.dump; + } + } + + return true; + } + + function getDuplicateReferences(object, state) { + var objects = [], + duplicatesIndexes = [], + index, + length; + + inspectNode(object, objects, duplicatesIndexes); + + for (index = 0, length = duplicatesIndexes.length; index < length; index += 1) { + state.duplicates.push(objects[duplicatesIndexes[index]]); + } + state.usedDuplicates = new Array(length); + } + + function inspectNode(object, objects, duplicatesIndexes) { + var objectKeyList, + index, + length; + + if (object !== null && typeof object === 'object') { + index = objects.indexOf(object); + if (index !== -1) { + if (duplicatesIndexes.indexOf(index) === -1) { + duplicatesIndexes.push(index); + } + } else { + objects.push(object); + + if (Array.isArray(object)) { + for (index = 0, length = object.length; index < length; index += 1) { + inspectNode(object[index], objects, duplicatesIndexes); + } + } else { + objectKeyList = Object.keys(object); + + for (index = 0, length = objectKeyList.length; index < length; index += 1) { + inspectNode(object[objectKeyList[index]], objects, duplicatesIndexes); + } + } + } + } + } + + function dump(input, options) { + options = options || {}; + + var state = new State(options); + + if (!state.noRefs) getDuplicateReferences(input, state); + + var value = input; + + if (state.replacer) { + value = state.replacer.call({ '': value }, '', value); + } + + if (writeNode(state, 0, value, true, true)) return state.dump + '\n'; + + return ''; + } + + dumper.dump = dump; + return dumper; +} + +var hasRequiredJsYaml; + +function requireJsYaml () { + if (hasRequiredJsYaml) return jsYaml; + hasRequiredJsYaml = 1; + + + var loader = requireLoader(); + var dumper = requireDumper(); + + + function renamed(from, to) { + return function () { + throw new Error('Function yaml.' + from + ' is removed in js-yaml 4. ' + + 'Use yaml.' + to + ' instead, which is now safe by default.'); + }; + } + + + jsYaml.Type = requireType(); + jsYaml.Schema = requireSchema(); + jsYaml.FAILSAFE_SCHEMA = requireFailsafe(); + jsYaml.JSON_SCHEMA = requireJson(); + jsYaml.CORE_SCHEMA = requireCore(); + jsYaml.DEFAULT_SCHEMA = require_default(); + jsYaml.load = loader.load; + jsYaml.loadAll = loader.loadAll; + jsYaml.dump = dumper.dump; + jsYaml.YAMLException = requireException(); + + // Re-export all types in case user wants to create custom schema + jsYaml.types = { + binary: requireBinary(), + float: requireFloat(), + map: requireMap(), + null: require_null(), + pairs: requirePairs(), + set: requireSet(), + timestamp: requireTimestamp(), + bool: requireBool(), + int: requireInt(), + merge: requireMerge(), + omap: requireOmap(), + seq: requireSeq(), + str: requireStr() + }; + + // Removed functions from JS-YAML 3.0.x + jsYaml.safeLoad = renamed('safeLoad', 'load'); + jsYaml.safeLoadAll = renamed('safeLoadAll', 'loadAll'); + jsYaml.safeDump = renamed('safeDump', 'dump'); + return jsYaml; +} + +var hasRequiredConfiguration; + +function requireConfiguration () { + if (hasRequiredConfiguration) return configuration; + hasRequiredConfiguration = 1; + var __createBinding = (commonjsGlobal && commonjsGlobal.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); + }) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; + })); + var __setModuleDefault = (commonjsGlobal && commonjsGlobal.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); + }) : function(o, v) { + o["default"] = v; + }); + var __importStar = (commonjsGlobal && commonjsGlobal.__importStar) || function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); + __setModuleDefault(result, mod); + return result; + }; + var __awaiter = (commonjsGlobal && commonjsGlobal.__awaiter) || function (thisArg, _arguments, P, generator) { + function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); + }; + var __generator = (commonjsGlobal && commonjsGlobal.__generator) || function (thisArg, body) { + var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g; + return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; + function verb(n) { return function (v) { return step([n, v]); }; } + function step(op) { + if (f) throw new TypeError("Generator is already executing."); + while (g && (g = 0, op[0] && (_ = 0)), _) try { + if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; + if (y = 0, t) op = [op[0] & 2, t.value]; + switch (op[0]) { + case 0: case 1: t = op; break; + case 4: _.label++; return { value: op[1], done: false }; + case 5: _.label++; y = op[1]; op = [0]; continue; + case 7: op = _.ops.pop(); _.trys.pop(); continue; + default: + if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } + if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } + if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } + if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } + if (t[2]) _.ops.pop(); + _.trys.pop(); continue; + } + op = body.call(thisArg, _); + } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } + if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; + } + }; + var __importDefault = (commonjsGlobal && commonjsGlobal.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; + }; + Object.defineProperty(configuration, "__esModule", { value: true }); + configuration.Configuration = void 0; + var axios_1 = __importDefault(requireAxios()); + var os = __importStar(require$$0); + var path = __importStar(require$$2); + var yaml = __importStar(requireJsYaml()); + var fs = __importStar(require$$0$1); + var Configuration = /** @class */ (function () { + function Configuration(param) { + if (!param) { + param = this.getParams(); + } + this.accessToken = param.accessToken; + this.basePathBeta = param.baseurl + "/beta"; + this.basePathV3 = param.baseurl + "/v3"; + this.basePathV2 = param.baseurl + "/v2"; + this.basePathCC = param.baseurl; + this.tokenUrl = param.tokenUrl; + this.clientId = param.clientId; + this.clientSecret = param.clientSecret; + var url = "".concat(this.tokenUrl, "?grant_type=client_credentials&client_id=").concat(this.clientId, "&client_secret=").concat(this.clientSecret); + if (!this.accessToken) { + this.accessToken = this.getAccessToken(url); + } + } + Configuration.prototype.getHomeParams = function () { + var config = {}; + try { + var homeDir = os.homedir(); + var configPath = path.join(homeDir, '.sailpoint', 'config.yaml'); + var doc = yaml.load(fs.readFileSync(configPath, 'utf8')); + if (doc.authtype && doc.authtype.toLowerCase() === 'pat') { + config.baseurl = doc.environments[doc.activeenvironment].baseurl; + config.clientId = doc.environments[doc.activeenvironment].pat.clientid; + config.clientSecret = doc.environments[doc.activeenvironment].pat.clientsecret; + config.tokenUrl = config.baseurl + '/oauth/token'; + } + } + catch (error) { + console.log('unable to find config file in home directory'); + } + return config; + }; + Configuration.prototype.getLocalParams = function () { + var config = {}; + try { + var configPath = './config.json'; + var jsonString = fs.readFileSync(configPath, 'utf-8'); + var jsonData = JSON.parse(jsonString); + config.baseurl = jsonData.BaseURL; + config.clientId = jsonData.ClientId; + config.clientSecret = jsonData.ClientSecret; + config.tokenUrl = config.baseurl + '/oauth/token'; + } + catch (error) { + console.log('unable to find config file in local directory'); + } + return config; + }; + Configuration.prototype.getEnvParams = function () { + var config = {}; + config.baseurl = process.env["SAIL_BASE_URL"] ? process.env["SAIL_BASE_URL"] : ""; + config.clientId = process.env["SAIL_CLIENT_ID"] ? process.env["SAIL_CLIENT_ID"] : ""; + config.clientSecret = process.env["SAIL_CLIENT_SECRET"] ? process.env["SAIL_CLIENT_SECRET"] : ""; + config.tokenUrl = config.baseurl + '/oauth/token'; + return config; + }; + Configuration.prototype.getParams = function () { + var envConfig = this.getEnvParams(); + if (envConfig.baseurl) { + return envConfig; + } + var localConfig = this.getLocalParams(); + if (localConfig.baseurl) { + return localConfig; + } + var homeConfig = this.getHomeParams(); + if (homeConfig.baseurl) { + console.log("Configuration file found in home directory, this approach of loading configuration will be deprecated in future releases, please upgrade the CLI and use the new 'sail sdk init config' command to create a local configuration file"); + return homeConfig; + } + return {}; + }; + Configuration.prototype.getAccessToken = function (url) { + return __awaiter(this, void 0, void 0, function () { + var _a, data, status_1, error_1; + return __generator(this, function (_b) { + switch (_b.label) { + case 0: + _b.trys.push([0, 2, , 3]); + return [4 /*yield*/, axios_1.default.post(url)]; + case 1: + _a = _b.sent(), data = _a.data, status_1 = _a.status; + if (status_1 === 200) { + return [2 /*return*/, data.access_token]; + } + else { + throw new Error("Unauthorized"); + } + case 2: + error_1 = _b.sent(); + console.error("Unable to fetch access token. Aborting."); + throw new Error(error_1); + case 3: return [2 /*return*/]; + } + }); + }); + }; + /** + * Check if the given MIME is a JSON MIME. + * JSON MIME examples: + * application/json + * application/json; charset=UTF8 + * APPLICATION/JSON + * application/vnd.company+json + * @param mime - MIME (Multipurpose Internet Mail Extensions) + * @return True if the given MIME is JSON, false otherwise. + */ + Configuration.prototype.isJsonMime = function (mime) { + var jsonMime = new RegExp('^(application\/json|[^;/ \t]+\/[^;/ \t]+[+]json)[ \t]*(;.*)?$', 'i'); + return mime !== null && (jsonMime.test(mime) || mime.toLowerCase() === 'application/json-patch+json'); + }; + return Configuration; + }()); + configuration.Configuration = Configuration; + + return configuration; +} + +var paginator = {}; + +var hasRequiredPaginator; + +function requirePaginator () { + if (hasRequiredPaginator) return paginator; + hasRequiredPaginator = 1; + var __awaiter = (commonjsGlobal && commonjsGlobal.__awaiter) || function (thisArg, _arguments, P, generator) { + function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); + }; + var __generator = (commonjsGlobal && commonjsGlobal.__generator) || function (thisArg, body) { + var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g; + return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; + function verb(n) { return function (v) { return step([n, v]); }; } + function step(op) { + if (f) throw new TypeError("Generator is already executing."); + while (g && (g = 0, op[0] && (_ = 0)), _) try { + if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; + if (y = 0, t) op = [op[0] & 2, t.value]; + switch (op[0]) { + case 0: case 1: t = op; break; + case 4: _.label++; return { value: op[1], done: false }; + case 5: _.label++; y = op[1]; op = [0]; continue; + case 7: op = _.ops.pop(); _.trys.pop(); continue; + default: + if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } + if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } + if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } + if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } + if (t[2]) _.ops.pop(); + _.trys.pop(); continue; + } + op = body.call(thisArg, _); + } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } + if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; + } + }; + Object.defineProperty(paginator, "__esModule", { value: true }); + paginator.Paginator = void 0; + var Paginator = /** @class */ (function () { + function Paginator() { + } + Paginator.paginate = function (thisArg, callbackFn, args, increment) { + return __awaiter(this, void 0, void 0, function () { + var params, maxLimit, modified, results; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + params = args ? args : { limit: 0, offset: 0 }; + maxLimit = params && params.limit ? params.limit : 0; + if (!params.offset) { + params.offset = 0; + } + if (!increment) { + increment = 250; + } + params.limit = increment; + modified = []; + _a.label = 1; + case 1: + console.log("Paginating call, offset = ".concat(params.offset)); + return [4 /*yield*/, callbackFn.call(thisArg, params)]; + case 2: + results = _a.sent(); + modified.push.apply(modified, results.data); + if (results.data.length < increment || + (modified.length >= maxLimit && maxLimit > 0)) { + results.data = modified; + return [2 /*return*/, results]; + } + params.offset += increment; + return [3 /*break*/, 1]; + case 3: return [2 /*return*/]; + } + }); + }); + }; + Paginator.paginateSearchApi = function (searchAPI, search, increment, limit) { + return __awaiter(this, void 0, void 0, function () { + var searchParams, offset, maxLimit, modified, results, result; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + increment = increment ? increment : 250; + searchParams = { + search: search, + limit: increment, + }; + offset = 0; + maxLimit = limit ? limit : 0; + modified = []; + if (!search.sort || search.sort.length != 1) { + throw "search must include exactly one sort parameter to paginate properly"; + } + _a.label = 1; + case 1: + console.log("Paginating call, offset = ".concat(offset)); + return [4 /*yield*/, searchAPI.searchPost(searchParams)]; + case 2: + results = _a.sent(); + modified.push.apply(modified, results.data); + if (results.data.length < increment || + (modified.length >= maxLimit && maxLimit > 0)) { + results.data = modified; + return [2 /*return*/, results]; + } + else { + result = results.data[results.data.length - 1]; + if (searchParams.search.sort) { + searchParams.search.searchAfter = [ + result[searchParams.search.sort[0].replace("-", "")], + ]; + } + else { + throw "search unexpectedly did not return a result we can search after!"; + } + } + offset += increment; + return [3 /*break*/, 1]; + case 3: return [2 /*return*/]; + } + }); + }); + }; + return Paginator; + }()); + paginator.Paginator = Paginator; + + return paginator; +} + +var hasRequiredDist; + +function requireDist () { + if (hasRequiredDist) return dist; + hasRequiredDist = 1; + (function (exports) { + /* tslint:disable */ + /* eslint-disable */ + /** + * IdentityNow V3 API + * Use these APIs to interact with the IdentityNow platform to achieve repeatable, automated processes with greater scalability. We encourage you to join the SailPoint Developer Community forum at https://developer.sailpoint.com/discuss to connect with other developers using our APIs. + * + * The version of the OpenAPI document: 3.0.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + var __createBinding = (commonjsGlobal && commonjsGlobal.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); + }) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; + })); + var __setModuleDefault = (commonjsGlobal && commonjsGlobal.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); + }) : function(o, v) { + o["default"] = v; + }); + var __exportStar = (commonjsGlobal && commonjsGlobal.__exportStar) || function(m, exports) { + for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p); + }; + var __importStar = (commonjsGlobal && commonjsGlobal.__importStar) || function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); + __setModuleDefault(result, mod); + return result; + }; + Object.defineProperty(exports, "__esModule", { value: true }); + exports.axiosRetry = exports.Configuration = exports.ConfigurationCC = exports.ConfigurationV2 = exports.ConfigurationV3 = exports.ConfigurationBeta = void 0; + __exportStar(requireApi$3(), exports); + var configuration_1 = requireConfiguration$4(); + Object.defineProperty(exports, "ConfigurationBeta", { enumerable: true, get: function () { return configuration_1.Configuration; } }); + __exportStar(requireApi$2(), exports); + var configuration_2 = requireConfiguration$3(); + Object.defineProperty(exports, "ConfigurationV3", { enumerable: true, get: function () { return configuration_2.Configuration; } }); + __exportStar(requireApi$1(), exports); + var configuration_3 = requireConfiguration$2(); + Object.defineProperty(exports, "ConfigurationV2", { enumerable: true, get: function () { return configuration_3.Configuration; } }); + __exportStar(requireApi(), exports); + var configuration_4 = requireConfiguration$1(); + Object.defineProperty(exports, "ConfigurationCC", { enumerable: true, get: function () { return configuration_4.Configuration; } }); + var configuration_5 = requireConfiguration(); + Object.defineProperty(exports, "Configuration", { enumerable: true, get: function () { return configuration_5.Configuration; } }); + __exportStar(requirePaginator(), exports); + var axiosRetry = __importStar(requireAxiosRetry()); + exports.axiosRetry = axiosRetry; + + } (dist)); + return dist; +} + +var distExports = requireDist(); + +function HandleError(message = "issue during fetch", err) { + console.log(err); + if (axios.isAxiosError(err)) { + throw error(500, { message, AxiosError: err }); + } else { + throw error(500, { message, Error: err }); + } +} +function createConfiguration(baseUrl, token) { + const apiConfig = new distExports.Configuration({ baseurl: baseUrl, accessToken: token }); + return apiConfig; +} + +export { HandleError as H, createConfiguration as c, distExports as d }; +//# sourceMappingURL=sdk-9eeff2de.js.map diff --git a/Sveltekit-Build/src/server/chunks/sdk-9eeff2de.js.map b/Sveltekit-Build/src/server/chunks/sdk-9eeff2de.js.map new file mode 100644 index 0000000..2613022 --- /dev/null +++ b/Sveltekit-Build/src/server/chunks/sdk-9eeff2de.js.map @@ -0,0 +1 @@ +{"version":3,"file":"sdk-9eeff2de.js","sources":["../../../../Sveltekit-App/node_modules/axios/dist/node/axios.cjs","../../../../Sveltekit-App/node_modules/sailpoint-api-client/dist/beta/base.js","../../../../Sveltekit-App/node_modules/@babel/runtime/helpers/interopRequireDefault.js","../../../../Sveltekit-App/node_modules/@babel/runtime/helpers/typeof.js","../../../../Sveltekit-App/node_modules/@babel/runtime/helpers/regeneratorRuntime.js","../../../../Sveltekit-App/node_modules/@babel/runtime/regenerator/index.js","../../../../Sveltekit-App/node_modules/@babel/runtime/helpers/asyncToGenerator.js","../../../../Sveltekit-App/node_modules/@babel/runtime/helpers/toPrimitive.js","../../../../Sveltekit-App/node_modules/@babel/runtime/helpers/toPropertyKey.js","../../../../Sveltekit-App/node_modules/@babel/runtime/helpers/defineProperty.js","../../../../Sveltekit-App/node_modules/is-retry-allowed/index.js","../../../../Sveltekit-App/node_modules/axios-retry/lib/cjs/index.js","../../../../Sveltekit-App/node_modules/axios-retry/index.js","../../../../Sveltekit-App/node_modules/sailpoint-api-client/dist/beta/common.js","../../../../Sveltekit-App/node_modules/sailpoint-api-client/dist/beta/api.js","../../../../Sveltekit-App/node_modules/sailpoint-api-client/dist/beta/configuration.js","../../../../Sveltekit-App/node_modules/sailpoint-api-client/dist/v3/base.js","../../../../Sveltekit-App/node_modules/sailpoint-api-client/dist/v3/common.js","../../../../Sveltekit-App/node_modules/sailpoint-api-client/dist/v3/api.js","../../../../Sveltekit-App/node_modules/sailpoint-api-client/dist/v3/configuration.js","../../../../Sveltekit-App/node_modules/sailpoint-api-client/dist/v2/base.js","../../../../Sveltekit-App/node_modules/sailpoint-api-client/dist/v2/common.js","../../../../Sveltekit-App/node_modules/sailpoint-api-client/dist/v2/api.js","../../../../Sveltekit-App/node_modules/sailpoint-api-client/dist/v2/configuration.js","../../../../Sveltekit-App/node_modules/sailpoint-api-client/dist/cc/base.js","../../../../Sveltekit-App/node_modules/sailpoint-api-client/dist/cc/common.js","../../../../Sveltekit-App/node_modules/sailpoint-api-client/dist/cc/api.js","../../../../Sveltekit-App/node_modules/sailpoint-api-client/dist/cc/configuration.js","../../../../Sveltekit-App/node_modules/js-yaml/lib/common.js","../../../../Sveltekit-App/node_modules/js-yaml/lib/exception.js","../../../../Sveltekit-App/node_modules/js-yaml/lib/snippet.js","../../../../Sveltekit-App/node_modules/js-yaml/lib/type.js","../../../../Sveltekit-App/node_modules/js-yaml/lib/schema.js","../../../../Sveltekit-App/node_modules/js-yaml/lib/type/str.js","../../../../Sveltekit-App/node_modules/js-yaml/lib/type/seq.js","../../../../Sveltekit-App/node_modules/js-yaml/lib/type/map.js","../../../../Sveltekit-App/node_modules/js-yaml/lib/schema/failsafe.js","../../../../Sveltekit-App/node_modules/js-yaml/lib/type/null.js","../../../../Sveltekit-App/node_modules/js-yaml/lib/type/bool.js","../../../../Sveltekit-App/node_modules/js-yaml/lib/type/int.js","../../../../Sveltekit-App/node_modules/js-yaml/lib/type/float.js","../../../../Sveltekit-App/node_modules/js-yaml/lib/schema/json.js","../../../../Sveltekit-App/node_modules/js-yaml/lib/schema/core.js","../../../../Sveltekit-App/node_modules/js-yaml/lib/type/timestamp.js","../../../../Sveltekit-App/node_modules/js-yaml/lib/type/merge.js","../../../../Sveltekit-App/node_modules/js-yaml/lib/type/binary.js","../../../../Sveltekit-App/node_modules/js-yaml/lib/type/omap.js","../../../../Sveltekit-App/node_modules/js-yaml/lib/type/pairs.js","../../../../Sveltekit-App/node_modules/js-yaml/lib/type/set.js","../../../../Sveltekit-App/node_modules/js-yaml/lib/schema/default.js","../../../../Sveltekit-App/node_modules/js-yaml/lib/loader.js","../../../../Sveltekit-App/node_modules/js-yaml/lib/dumper.js","../../../../Sveltekit-App/node_modules/js-yaml/index.js","../../../../Sveltekit-App/node_modules/sailpoint-api-client/dist/configuration.js","../../../../Sveltekit-App/node_modules/sailpoint-api-client/dist/paginator.js","../../../../Sveltekit-App/node_modules/sailpoint-api-client/dist/index.js","../../../../Sveltekit-App/.svelte-kit/adapter-node/chunks/sdk.js"],"sourcesContent":["// Axios v1.6.2 Copyright (c) 2023 Matt Zabriskie and contributors\n'use strict';\n\nconst FormData$1 = require('form-data');\nconst url = require('url');\nconst proxyFromEnv = require('proxy-from-env');\nconst http = require('http');\nconst https = require('https');\nconst util = require('util');\nconst followRedirects = require('follow-redirects');\nconst zlib = require('zlib');\nconst stream = require('stream');\nconst EventEmitter = require('events');\n\nfunction _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }\n\nconst FormData__default = /*#__PURE__*/_interopDefaultLegacy(FormData$1);\nconst url__default = /*#__PURE__*/_interopDefaultLegacy(url);\nconst http__default = /*#__PURE__*/_interopDefaultLegacy(http);\nconst https__default = /*#__PURE__*/_interopDefaultLegacy(https);\nconst util__default = /*#__PURE__*/_interopDefaultLegacy(util);\nconst followRedirects__default = /*#__PURE__*/_interopDefaultLegacy(followRedirects);\nconst zlib__default = /*#__PURE__*/_interopDefaultLegacy(zlib);\nconst stream__default = /*#__PURE__*/_interopDefaultLegacy(stream);\nconst EventEmitter__default = /*#__PURE__*/_interopDefaultLegacy(EventEmitter);\n\nfunction bind(fn, thisArg) {\n return function wrap() {\n return fn.apply(thisArg, arguments);\n };\n}\n\n// utils is a library of generic helper functions non-specific to axios\n\nconst {toString} = Object.prototype;\nconst {getPrototypeOf} = Object;\n\nconst kindOf = (cache => thing => {\n const str = toString.call(thing);\n return cache[str] || (cache[str] = str.slice(8, -1).toLowerCase());\n})(Object.create(null));\n\nconst kindOfTest = (type) => {\n type = type.toLowerCase();\n return (thing) => kindOf(thing) === type\n};\n\nconst typeOfTest = type => thing => typeof thing === type;\n\n/**\n * Determine if a value is an Array\n *\n * @param {Object} val The value to test\n *\n * @returns {boolean} True if value is an Array, otherwise false\n */\nconst {isArray} = Array;\n\n/**\n * Determine if a value is undefined\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if the value is undefined, otherwise false\n */\nconst isUndefined = typeOfTest('undefined');\n\n/**\n * Determine if a value is a Buffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Buffer, otherwise false\n */\nfunction isBuffer(val) {\n return val !== null && !isUndefined(val) && val.constructor !== null && !isUndefined(val.constructor)\n && isFunction(val.constructor.isBuffer) && val.constructor.isBuffer(val);\n}\n\n/**\n * Determine if a value is an ArrayBuffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is an ArrayBuffer, otherwise false\n */\nconst isArrayBuffer = kindOfTest('ArrayBuffer');\n\n\n/**\n * Determine if a value is a view on an ArrayBuffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false\n */\nfunction isArrayBufferView(val) {\n let result;\n if ((typeof ArrayBuffer !== 'undefined') && (ArrayBuffer.isView)) {\n result = ArrayBuffer.isView(val);\n } else {\n result = (val) && (val.buffer) && (isArrayBuffer(val.buffer));\n }\n return result;\n}\n\n/**\n * Determine if a value is a String\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a String, otherwise false\n */\nconst isString = typeOfTest('string');\n\n/**\n * Determine if a value is a Function\n *\n * @param {*} val The value to test\n * @returns {boolean} True if value is a Function, otherwise false\n */\nconst isFunction = typeOfTest('function');\n\n/**\n * Determine if a value is a Number\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Number, otherwise false\n */\nconst isNumber = typeOfTest('number');\n\n/**\n * Determine if a value is an Object\n *\n * @param {*} thing The value to test\n *\n * @returns {boolean} True if value is an Object, otherwise false\n */\nconst isObject = (thing) => thing !== null && typeof thing === 'object';\n\n/**\n * Determine if a value is a Boolean\n *\n * @param {*} thing The value to test\n * @returns {boolean} True if value is a Boolean, otherwise false\n */\nconst isBoolean = thing => thing === true || thing === false;\n\n/**\n * Determine if a value is a plain Object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a plain Object, otherwise false\n */\nconst isPlainObject = (val) => {\n if (kindOf(val) !== 'object') {\n return false;\n }\n\n const prototype = getPrototypeOf(val);\n return (prototype === null || prototype === Object.prototype || Object.getPrototypeOf(prototype) === null) && !(Symbol.toStringTag in val) && !(Symbol.iterator in val);\n};\n\n/**\n * Determine if a value is a Date\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Date, otherwise false\n */\nconst isDate = kindOfTest('Date');\n\n/**\n * Determine if a value is a File\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a File, otherwise false\n */\nconst isFile = kindOfTest('File');\n\n/**\n * Determine if a value is a Blob\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Blob, otherwise false\n */\nconst isBlob = kindOfTest('Blob');\n\n/**\n * Determine if a value is a FileList\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a File, otherwise false\n */\nconst isFileList = kindOfTest('FileList');\n\n/**\n * Determine if a value is a Stream\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Stream, otherwise false\n */\nconst isStream = (val) => isObject(val) && isFunction(val.pipe);\n\n/**\n * Determine if a value is a FormData\n *\n * @param {*} thing The value to test\n *\n * @returns {boolean} True if value is an FormData, otherwise false\n */\nconst isFormData = (thing) => {\n let kind;\n return thing && (\n (typeof FormData === 'function' && thing instanceof FormData) || (\n isFunction(thing.append) && (\n (kind = kindOf(thing)) === 'formdata' ||\n // detect form-data instance\n (kind === 'object' && isFunction(thing.toString) && thing.toString() === '[object FormData]')\n )\n )\n )\n};\n\n/**\n * Determine if a value is a URLSearchParams object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a URLSearchParams object, otherwise false\n */\nconst isURLSearchParams = kindOfTest('URLSearchParams');\n\n/**\n * Trim excess whitespace off the beginning and end of a string\n *\n * @param {String} str The String to trim\n *\n * @returns {String} The String freed of excess whitespace\n */\nconst trim = (str) => str.trim ?\n str.trim() : str.replace(/^[\\s\\uFEFF\\xA0]+|[\\s\\uFEFF\\xA0]+$/g, '');\n\n/**\n * Iterate over an Array or an Object invoking a function for each item.\n *\n * If `obj` is an Array callback will be called passing\n * the value, index, and complete array for each item.\n *\n * If 'obj' is an Object callback will be called passing\n * the value, key, and complete object for each property.\n *\n * @param {Object|Array} obj The object to iterate\n * @param {Function} fn The callback to invoke for each item\n *\n * @param {Boolean} [allOwnKeys = false]\n * @returns {any}\n */\nfunction forEach(obj, fn, {allOwnKeys = false} = {}) {\n // Don't bother if no value provided\n if (obj === null || typeof obj === 'undefined') {\n return;\n }\n\n let i;\n let l;\n\n // Force an array if not already something iterable\n if (typeof obj !== 'object') {\n /*eslint no-param-reassign:0*/\n obj = [obj];\n }\n\n if (isArray(obj)) {\n // Iterate over array values\n for (i = 0, l = obj.length; i < l; i++) {\n fn.call(null, obj[i], i, obj);\n }\n } else {\n // Iterate over object keys\n const keys = allOwnKeys ? Object.getOwnPropertyNames(obj) : Object.keys(obj);\n const len = keys.length;\n let key;\n\n for (i = 0; i < len; i++) {\n key = keys[i];\n fn.call(null, obj[key], key, obj);\n }\n }\n}\n\nfunction findKey(obj, key) {\n key = key.toLowerCase();\n const keys = Object.keys(obj);\n let i = keys.length;\n let _key;\n while (i-- > 0) {\n _key = keys[i];\n if (key === _key.toLowerCase()) {\n return _key;\n }\n }\n return null;\n}\n\nconst _global = (() => {\n /*eslint no-undef:0*/\n if (typeof globalThis !== \"undefined\") return globalThis;\n return typeof self !== \"undefined\" ? self : (typeof window !== 'undefined' ? window : global)\n})();\n\nconst isContextDefined = (context) => !isUndefined(context) && context !== _global;\n\n/**\n * Accepts varargs expecting each argument to be an object, then\n * immutably merges the properties of each object and returns result.\n *\n * When multiple objects contain the same key the later object in\n * the arguments list will take precedence.\n *\n * Example:\n *\n * ```js\n * var result = merge({foo: 123}, {foo: 456});\n * console.log(result.foo); // outputs 456\n * ```\n *\n * @param {Object} obj1 Object to merge\n *\n * @returns {Object} Result of all merge properties\n */\nfunction merge(/* obj1, obj2, obj3, ... */) {\n const {caseless} = isContextDefined(this) && this || {};\n const result = {};\n const assignValue = (val, key) => {\n const targetKey = caseless && findKey(result, key) || key;\n if (isPlainObject(result[targetKey]) && isPlainObject(val)) {\n result[targetKey] = merge(result[targetKey], val);\n } else if (isPlainObject(val)) {\n result[targetKey] = merge({}, val);\n } else if (isArray(val)) {\n result[targetKey] = val.slice();\n } else {\n result[targetKey] = val;\n }\n };\n\n for (let i = 0, l = arguments.length; i < l; i++) {\n arguments[i] && forEach(arguments[i], assignValue);\n }\n return result;\n}\n\n/**\n * Extends object a by mutably adding to it the properties of object b.\n *\n * @param {Object} a The object to be extended\n * @param {Object} b The object to copy properties from\n * @param {Object} thisArg The object to bind function to\n *\n * @param {Boolean} [allOwnKeys]\n * @returns {Object} The resulting value of object a\n */\nconst extend = (a, b, thisArg, {allOwnKeys}= {}) => {\n forEach(b, (val, key) => {\n if (thisArg && isFunction(val)) {\n a[key] = bind(val, thisArg);\n } else {\n a[key] = val;\n }\n }, {allOwnKeys});\n return a;\n};\n\n/**\n * Remove byte order marker. This catches EF BB BF (the UTF-8 BOM)\n *\n * @param {string} content with BOM\n *\n * @returns {string} content value without BOM\n */\nconst stripBOM = (content) => {\n if (content.charCodeAt(0) === 0xFEFF) {\n content = content.slice(1);\n }\n return content;\n};\n\n/**\n * Inherit the prototype methods from one constructor into another\n * @param {function} constructor\n * @param {function} superConstructor\n * @param {object} [props]\n * @param {object} [descriptors]\n *\n * @returns {void}\n */\nconst inherits = (constructor, superConstructor, props, descriptors) => {\n constructor.prototype = Object.create(superConstructor.prototype, descriptors);\n constructor.prototype.constructor = constructor;\n Object.defineProperty(constructor, 'super', {\n value: superConstructor.prototype\n });\n props && Object.assign(constructor.prototype, props);\n};\n\n/**\n * Resolve object with deep prototype chain to a flat object\n * @param {Object} sourceObj source object\n * @param {Object} [destObj]\n * @param {Function|Boolean} [filter]\n * @param {Function} [propFilter]\n *\n * @returns {Object}\n */\nconst toFlatObject = (sourceObj, destObj, filter, propFilter) => {\n let props;\n let i;\n let prop;\n const merged = {};\n\n destObj = destObj || {};\n // eslint-disable-next-line no-eq-null,eqeqeq\n if (sourceObj == null) return destObj;\n\n do {\n props = Object.getOwnPropertyNames(sourceObj);\n i = props.length;\n while (i-- > 0) {\n prop = props[i];\n if ((!propFilter || propFilter(prop, sourceObj, destObj)) && !merged[prop]) {\n destObj[prop] = sourceObj[prop];\n merged[prop] = true;\n }\n }\n sourceObj = filter !== false && getPrototypeOf(sourceObj);\n } while (sourceObj && (!filter || filter(sourceObj, destObj)) && sourceObj !== Object.prototype);\n\n return destObj;\n};\n\n/**\n * Determines whether a string ends with the characters of a specified string\n *\n * @param {String} str\n * @param {String} searchString\n * @param {Number} [position= 0]\n *\n * @returns {boolean}\n */\nconst endsWith = (str, searchString, position) => {\n str = String(str);\n if (position === undefined || position > str.length) {\n position = str.length;\n }\n position -= searchString.length;\n const lastIndex = str.indexOf(searchString, position);\n return lastIndex !== -1 && lastIndex === position;\n};\n\n\n/**\n * Returns new array from array like object or null if failed\n *\n * @param {*} [thing]\n *\n * @returns {?Array}\n */\nconst toArray = (thing) => {\n if (!thing) return null;\n if (isArray(thing)) return thing;\n let i = thing.length;\n if (!isNumber(i)) return null;\n const arr = new Array(i);\n while (i-- > 0) {\n arr[i] = thing[i];\n }\n return arr;\n};\n\n/**\n * Checking if the Uint8Array exists and if it does, it returns a function that checks if the\n * thing passed in is an instance of Uint8Array\n *\n * @param {TypedArray}\n *\n * @returns {Array}\n */\n// eslint-disable-next-line func-names\nconst isTypedArray = (TypedArray => {\n // eslint-disable-next-line func-names\n return thing => {\n return TypedArray && thing instanceof TypedArray;\n };\n})(typeof Uint8Array !== 'undefined' && getPrototypeOf(Uint8Array));\n\n/**\n * For each entry in the object, call the function with the key and value.\n *\n * @param {Object} obj - The object to iterate over.\n * @param {Function} fn - The function to call for each entry.\n *\n * @returns {void}\n */\nconst forEachEntry = (obj, fn) => {\n const generator = obj && obj[Symbol.iterator];\n\n const iterator = generator.call(obj);\n\n let result;\n\n while ((result = iterator.next()) && !result.done) {\n const pair = result.value;\n fn.call(obj, pair[0], pair[1]);\n }\n};\n\n/**\n * It takes a regular expression and a string, and returns an array of all the matches\n *\n * @param {string} regExp - The regular expression to match against.\n * @param {string} str - The string to search.\n *\n * @returns {Array}\n */\nconst matchAll = (regExp, str) => {\n let matches;\n const arr = [];\n\n while ((matches = regExp.exec(str)) !== null) {\n arr.push(matches);\n }\n\n return arr;\n};\n\n/* Checking if the kindOfTest function returns true when passed an HTMLFormElement. */\nconst isHTMLForm = kindOfTest('HTMLFormElement');\n\nconst toCamelCase = str => {\n return str.toLowerCase().replace(/[-_\\s]([a-z\\d])(\\w*)/g,\n function replacer(m, p1, p2) {\n return p1.toUpperCase() + p2;\n }\n );\n};\n\n/* Creating a function that will check if an object has a property. */\nconst hasOwnProperty = (({hasOwnProperty}) => (obj, prop) => hasOwnProperty.call(obj, prop))(Object.prototype);\n\n/**\n * Determine if a value is a RegExp object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a RegExp object, otherwise false\n */\nconst isRegExp = kindOfTest('RegExp');\n\nconst reduceDescriptors = (obj, reducer) => {\n const descriptors = Object.getOwnPropertyDescriptors(obj);\n const reducedDescriptors = {};\n\n forEach(descriptors, (descriptor, name) => {\n let ret;\n if ((ret = reducer(descriptor, name, obj)) !== false) {\n reducedDescriptors[name] = ret || descriptor;\n }\n });\n\n Object.defineProperties(obj, reducedDescriptors);\n};\n\n/**\n * Makes all methods read-only\n * @param {Object} obj\n */\n\nconst freezeMethods = (obj) => {\n reduceDescriptors(obj, (descriptor, name) => {\n // skip restricted props in strict mode\n if (isFunction(obj) && ['arguments', 'caller', 'callee'].indexOf(name) !== -1) {\n return false;\n }\n\n const value = obj[name];\n\n if (!isFunction(value)) return;\n\n descriptor.enumerable = false;\n\n if ('writable' in descriptor) {\n descriptor.writable = false;\n return;\n }\n\n if (!descriptor.set) {\n descriptor.set = () => {\n throw Error('Can not rewrite read-only method \\'' + name + '\\'');\n };\n }\n });\n};\n\nconst toObjectSet = (arrayOrString, delimiter) => {\n const obj = {};\n\n const define = (arr) => {\n arr.forEach(value => {\n obj[value] = true;\n });\n };\n\n isArray(arrayOrString) ? define(arrayOrString) : define(String(arrayOrString).split(delimiter));\n\n return obj;\n};\n\nconst noop = () => {};\n\nconst toFiniteNumber = (value, defaultValue) => {\n value = +value;\n return Number.isFinite(value) ? value : defaultValue;\n};\n\nconst ALPHA = 'abcdefghijklmnopqrstuvwxyz';\n\nconst DIGIT = '0123456789';\n\nconst ALPHABET = {\n DIGIT,\n ALPHA,\n ALPHA_DIGIT: ALPHA + ALPHA.toUpperCase() + DIGIT\n};\n\nconst generateString = (size = 16, alphabet = ALPHABET.ALPHA_DIGIT) => {\n let str = '';\n const {length} = alphabet;\n while (size--) {\n str += alphabet[Math.random() * length|0];\n }\n\n return str;\n};\n\n/**\n * If the thing is a FormData object, return true, otherwise return false.\n *\n * @param {unknown} thing - The thing to check.\n *\n * @returns {boolean}\n */\nfunction isSpecCompliantForm(thing) {\n return !!(thing && isFunction(thing.append) && thing[Symbol.toStringTag] === 'FormData' && thing[Symbol.iterator]);\n}\n\nconst toJSONObject = (obj) => {\n const stack = new Array(10);\n\n const visit = (source, i) => {\n\n if (isObject(source)) {\n if (stack.indexOf(source) >= 0) {\n return;\n }\n\n if(!('toJSON' in source)) {\n stack[i] = source;\n const target = isArray(source) ? [] : {};\n\n forEach(source, (value, key) => {\n const reducedValue = visit(value, i + 1);\n !isUndefined(reducedValue) && (target[key] = reducedValue);\n });\n\n stack[i] = undefined;\n\n return target;\n }\n }\n\n return source;\n };\n\n return visit(obj, 0);\n};\n\nconst isAsyncFn = kindOfTest('AsyncFunction');\n\nconst isThenable = (thing) =>\n thing && (isObject(thing) || isFunction(thing)) && isFunction(thing.then) && isFunction(thing.catch);\n\nconst utils$1 = {\n isArray,\n isArrayBuffer,\n isBuffer,\n isFormData,\n isArrayBufferView,\n isString,\n isNumber,\n isBoolean,\n isObject,\n isPlainObject,\n isUndefined,\n isDate,\n isFile,\n isBlob,\n isRegExp,\n isFunction,\n isStream,\n isURLSearchParams,\n isTypedArray,\n isFileList,\n forEach,\n merge,\n extend,\n trim,\n stripBOM,\n inherits,\n toFlatObject,\n kindOf,\n kindOfTest,\n endsWith,\n toArray,\n forEachEntry,\n matchAll,\n isHTMLForm,\n hasOwnProperty,\n hasOwnProp: hasOwnProperty, // an alias to avoid ESLint no-prototype-builtins detection\n reduceDescriptors,\n freezeMethods,\n toObjectSet,\n toCamelCase,\n noop,\n toFiniteNumber,\n findKey,\n global: _global,\n isContextDefined,\n ALPHABET,\n generateString,\n isSpecCompliantForm,\n toJSONObject,\n isAsyncFn,\n isThenable\n};\n\n/**\n * Create an Error with the specified message, config, error code, request and response.\n *\n * @param {string} message The error message.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [config] The config.\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n *\n * @returns {Error} The created error.\n */\nfunction AxiosError(message, code, config, request, response) {\n Error.call(this);\n\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, this.constructor);\n } else {\n this.stack = (new Error()).stack;\n }\n\n this.message = message;\n this.name = 'AxiosError';\n code && (this.code = code);\n config && (this.config = config);\n request && (this.request = request);\n response && (this.response = response);\n}\n\nutils$1.inherits(AxiosError, Error, {\n toJSON: function toJSON() {\n return {\n // Standard\n message: this.message,\n name: this.name,\n // Microsoft\n description: this.description,\n number: this.number,\n // Mozilla\n fileName: this.fileName,\n lineNumber: this.lineNumber,\n columnNumber: this.columnNumber,\n stack: this.stack,\n // Axios\n config: utils$1.toJSONObject(this.config),\n code: this.code,\n status: this.response && this.response.status ? this.response.status : null\n };\n }\n});\n\nconst prototype$1 = AxiosError.prototype;\nconst descriptors = {};\n\n[\n 'ERR_BAD_OPTION_VALUE',\n 'ERR_BAD_OPTION',\n 'ECONNABORTED',\n 'ETIMEDOUT',\n 'ERR_NETWORK',\n 'ERR_FR_TOO_MANY_REDIRECTS',\n 'ERR_DEPRECATED',\n 'ERR_BAD_RESPONSE',\n 'ERR_BAD_REQUEST',\n 'ERR_CANCELED',\n 'ERR_NOT_SUPPORT',\n 'ERR_INVALID_URL'\n// eslint-disable-next-line func-names\n].forEach(code => {\n descriptors[code] = {value: code};\n});\n\nObject.defineProperties(AxiosError, descriptors);\nObject.defineProperty(prototype$1, 'isAxiosError', {value: true});\n\n// eslint-disable-next-line func-names\nAxiosError.from = (error, code, config, request, response, customProps) => {\n const axiosError = Object.create(prototype$1);\n\n utils$1.toFlatObject(error, axiosError, function filter(obj) {\n return obj !== Error.prototype;\n }, prop => {\n return prop !== 'isAxiosError';\n });\n\n AxiosError.call(axiosError, error.message, code, config, request, response);\n\n axiosError.cause = error;\n\n axiosError.name = error.name;\n\n customProps && Object.assign(axiosError, customProps);\n\n return axiosError;\n};\n\n/**\n * Determines if the given thing is a array or js object.\n *\n * @param {string} thing - The object or array to be visited.\n *\n * @returns {boolean}\n */\nfunction isVisitable(thing) {\n return utils$1.isPlainObject(thing) || utils$1.isArray(thing);\n}\n\n/**\n * It removes the brackets from the end of a string\n *\n * @param {string} key - The key of the parameter.\n *\n * @returns {string} the key without the brackets.\n */\nfunction removeBrackets(key) {\n return utils$1.endsWith(key, '[]') ? key.slice(0, -2) : key;\n}\n\n/**\n * It takes a path, a key, and a boolean, and returns a string\n *\n * @param {string} path - The path to the current key.\n * @param {string} key - The key of the current object being iterated over.\n * @param {string} dots - If true, the key will be rendered with dots instead of brackets.\n *\n * @returns {string} The path to the current key.\n */\nfunction renderKey(path, key, dots) {\n if (!path) return key;\n return path.concat(key).map(function each(token, i) {\n // eslint-disable-next-line no-param-reassign\n token = removeBrackets(token);\n return !dots && i ? '[' + token + ']' : token;\n }).join(dots ? '.' : '');\n}\n\n/**\n * If the array is an array and none of its elements are visitable, then it's a flat array.\n *\n * @param {Array} arr - The array to check\n *\n * @returns {boolean}\n */\nfunction isFlatArray(arr) {\n return utils$1.isArray(arr) && !arr.some(isVisitable);\n}\n\nconst predicates = utils$1.toFlatObject(utils$1, {}, null, function filter(prop) {\n return /^is[A-Z]/.test(prop);\n});\n\n/**\n * Convert a data object to FormData\n *\n * @param {Object} obj\n * @param {?Object} [formData]\n * @param {?Object} [options]\n * @param {Function} [options.visitor]\n * @param {Boolean} [options.metaTokens = true]\n * @param {Boolean} [options.dots = false]\n * @param {?Boolean} [options.indexes = false]\n *\n * @returns {Object}\n **/\n\n/**\n * It converts an object into a FormData object\n *\n * @param {Object} obj - The object to convert to form data.\n * @param {string} formData - The FormData object to append to.\n * @param {Object} options\n *\n * @returns\n */\nfunction toFormData(obj, formData, options) {\n if (!utils$1.isObject(obj)) {\n throw new TypeError('target must be an object');\n }\n\n // eslint-disable-next-line no-param-reassign\n formData = formData || new (FormData__default[\"default\"] || FormData)();\n\n // eslint-disable-next-line no-param-reassign\n options = utils$1.toFlatObject(options, {\n metaTokens: true,\n dots: false,\n indexes: false\n }, false, function defined(option, source) {\n // eslint-disable-next-line no-eq-null,eqeqeq\n return !utils$1.isUndefined(source[option]);\n });\n\n const metaTokens = options.metaTokens;\n // eslint-disable-next-line no-use-before-define\n const visitor = options.visitor || defaultVisitor;\n const dots = options.dots;\n const indexes = options.indexes;\n const _Blob = options.Blob || typeof Blob !== 'undefined' && Blob;\n const useBlob = _Blob && utils$1.isSpecCompliantForm(formData);\n\n if (!utils$1.isFunction(visitor)) {\n throw new TypeError('visitor must be a function');\n }\n\n function convertValue(value) {\n if (value === null) return '';\n\n if (utils$1.isDate(value)) {\n return value.toISOString();\n }\n\n if (!useBlob && utils$1.isBlob(value)) {\n throw new AxiosError('Blob is not supported. Use a Buffer instead.');\n }\n\n if (utils$1.isArrayBuffer(value) || utils$1.isTypedArray(value)) {\n return useBlob && typeof Blob === 'function' ? new Blob([value]) : Buffer.from(value);\n }\n\n return value;\n }\n\n /**\n * Default visitor.\n *\n * @param {*} value\n * @param {String|Number} key\n * @param {Array} path\n * @this {FormData}\n *\n * @returns {boolean} return true to visit the each prop of the value recursively\n */\n function defaultVisitor(value, key, path) {\n let arr = value;\n\n if (value && !path && typeof value === 'object') {\n if (utils$1.endsWith(key, '{}')) {\n // eslint-disable-next-line no-param-reassign\n key = metaTokens ? key : key.slice(0, -2);\n // eslint-disable-next-line no-param-reassign\n value = JSON.stringify(value);\n } else if (\n (utils$1.isArray(value) && isFlatArray(value)) ||\n ((utils$1.isFileList(value) || utils$1.endsWith(key, '[]')) && (arr = utils$1.toArray(value))\n )) {\n // eslint-disable-next-line no-param-reassign\n key = removeBrackets(key);\n\n arr.forEach(function each(el, index) {\n !(utils$1.isUndefined(el) || el === null) && formData.append(\n // eslint-disable-next-line no-nested-ternary\n indexes === true ? renderKey([key], index, dots) : (indexes === null ? key : key + '[]'),\n convertValue(el)\n );\n });\n return false;\n }\n }\n\n if (isVisitable(value)) {\n return true;\n }\n\n formData.append(renderKey(path, key, dots), convertValue(value));\n\n return false;\n }\n\n const stack = [];\n\n const exposedHelpers = Object.assign(predicates, {\n defaultVisitor,\n convertValue,\n isVisitable\n });\n\n function build(value, path) {\n if (utils$1.isUndefined(value)) return;\n\n if (stack.indexOf(value) !== -1) {\n throw Error('Circular reference detected in ' + path.join('.'));\n }\n\n stack.push(value);\n\n utils$1.forEach(value, function each(el, key) {\n const result = !(utils$1.isUndefined(el) || el === null) && visitor.call(\n formData, el, utils$1.isString(key) ? key.trim() : key, path, exposedHelpers\n );\n\n if (result === true) {\n build(el, path ? path.concat(key) : [key]);\n }\n });\n\n stack.pop();\n }\n\n if (!utils$1.isObject(obj)) {\n throw new TypeError('data must be an object');\n }\n\n build(obj);\n\n return formData;\n}\n\n/**\n * It encodes a string by replacing all characters that are not in the unreserved set with\n * their percent-encoded equivalents\n *\n * @param {string} str - The string to encode.\n *\n * @returns {string} The encoded string.\n */\nfunction encode$1(str) {\n const charMap = {\n '!': '%21',\n \"'\": '%27',\n '(': '%28',\n ')': '%29',\n '~': '%7E',\n '%20': '+',\n '%00': '\\x00'\n };\n return encodeURIComponent(str).replace(/[!'()~]|%20|%00/g, function replacer(match) {\n return charMap[match];\n });\n}\n\n/**\n * It takes a params object and converts it to a FormData object\n *\n * @param {Object} params - The parameters to be converted to a FormData object.\n * @param {Object} options - The options object passed to the Axios constructor.\n *\n * @returns {void}\n */\nfunction AxiosURLSearchParams(params, options) {\n this._pairs = [];\n\n params && toFormData(params, this, options);\n}\n\nconst prototype = AxiosURLSearchParams.prototype;\n\nprototype.append = function append(name, value) {\n this._pairs.push([name, value]);\n};\n\nprototype.toString = function toString(encoder) {\n const _encode = encoder ? function(value) {\n return encoder.call(this, value, encode$1);\n } : encode$1;\n\n return this._pairs.map(function each(pair) {\n return _encode(pair[0]) + '=' + _encode(pair[1]);\n }, '').join('&');\n};\n\n/**\n * It replaces all instances of the characters `:`, `$`, `,`, `+`, `[`, and `]` with their\n * URI encoded counterparts\n *\n * @param {string} val The value to be encoded.\n *\n * @returns {string} The encoded value.\n */\nfunction encode(val) {\n return encodeURIComponent(val).\n replace(/%3A/gi, ':').\n replace(/%24/g, '$').\n replace(/%2C/gi, ',').\n replace(/%20/g, '+').\n replace(/%5B/gi, '[').\n replace(/%5D/gi, ']');\n}\n\n/**\n * Build a URL by appending params to the end\n *\n * @param {string} url The base of the url (e.g., http://www.google.com)\n * @param {object} [params] The params to be appended\n * @param {?object} options\n *\n * @returns {string} The formatted url\n */\nfunction buildURL(url, params, options) {\n /*eslint no-param-reassign:0*/\n if (!params) {\n return url;\n }\n \n const _encode = options && options.encode || encode;\n\n const serializeFn = options && options.serialize;\n\n let serializedParams;\n\n if (serializeFn) {\n serializedParams = serializeFn(params, options);\n } else {\n serializedParams = utils$1.isURLSearchParams(params) ?\n params.toString() :\n new AxiosURLSearchParams(params, options).toString(_encode);\n }\n\n if (serializedParams) {\n const hashmarkIndex = url.indexOf(\"#\");\n\n if (hashmarkIndex !== -1) {\n url = url.slice(0, hashmarkIndex);\n }\n url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams;\n }\n\n return url;\n}\n\nclass InterceptorManager {\n constructor() {\n this.handlers = [];\n }\n\n /**\n * Add a new interceptor to the stack\n *\n * @param {Function} fulfilled The function to handle `then` for a `Promise`\n * @param {Function} rejected The function to handle `reject` for a `Promise`\n *\n * @return {Number} An ID used to remove interceptor later\n */\n use(fulfilled, rejected, options) {\n this.handlers.push({\n fulfilled,\n rejected,\n synchronous: options ? options.synchronous : false,\n runWhen: options ? options.runWhen : null\n });\n return this.handlers.length - 1;\n }\n\n /**\n * Remove an interceptor from the stack\n *\n * @param {Number} id The ID that was returned by `use`\n *\n * @returns {Boolean} `true` if the interceptor was removed, `false` otherwise\n */\n eject(id) {\n if (this.handlers[id]) {\n this.handlers[id] = null;\n }\n }\n\n /**\n * Clear all interceptors from the stack\n *\n * @returns {void}\n */\n clear() {\n if (this.handlers) {\n this.handlers = [];\n }\n }\n\n /**\n * Iterate over all the registered interceptors\n *\n * This method is particularly useful for skipping over any\n * interceptors that may have become `null` calling `eject`.\n *\n * @param {Function} fn The function to call for each interceptor\n *\n * @returns {void}\n */\n forEach(fn) {\n utils$1.forEach(this.handlers, function forEachHandler(h) {\n if (h !== null) {\n fn(h);\n }\n });\n }\n}\n\nconst InterceptorManager$1 = InterceptorManager;\n\nconst transitionalDefaults = {\n silentJSONParsing: true,\n forcedJSONParsing: true,\n clarifyTimeoutError: false\n};\n\nconst URLSearchParams = url__default[\"default\"].URLSearchParams;\n\nconst platform$1 = {\n isNode: true,\n classes: {\n URLSearchParams,\n FormData: FormData__default[\"default\"],\n Blob: typeof Blob !== 'undefined' && Blob || null\n },\n protocols: [ 'http', 'https', 'file', 'data' ]\n};\n\nconst hasBrowserEnv = typeof window !== 'undefined' && typeof document !== 'undefined';\n\n/**\n * Determine if we're running in a standard browser environment\n *\n * This allows axios to run in a web worker, and react-native.\n * Both environments support XMLHttpRequest, but not fully standard globals.\n *\n * web workers:\n * typeof window -> undefined\n * typeof document -> undefined\n *\n * react-native:\n * navigator.product -> 'ReactNative'\n * nativescript\n * navigator.product -> 'NativeScript' or 'NS'\n *\n * @returns {boolean}\n */\nconst hasStandardBrowserEnv = (\n (product) => {\n return hasBrowserEnv && ['ReactNative', 'NativeScript', 'NS'].indexOf(product) < 0\n })(typeof navigator !== 'undefined' && navigator.product);\n\n/**\n * Determine if we're running in a standard browser webWorker environment\n *\n * Although the `isStandardBrowserEnv` method indicates that\n * `allows axios to run in a web worker`, the WebWorker will still be\n * filtered out due to its judgment standard\n * `typeof window !== 'undefined' && typeof document !== 'undefined'`.\n * This leads to a problem when axios post `FormData` in webWorker\n */\nconst hasStandardBrowserWebWorkerEnv = (() => {\n return (\n typeof WorkerGlobalScope !== 'undefined' &&\n // eslint-disable-next-line no-undef\n self instanceof WorkerGlobalScope &&\n typeof self.importScripts === 'function'\n );\n})();\n\nconst utils = /*#__PURE__*/Object.freeze({\n __proto__: null,\n hasBrowserEnv: hasBrowserEnv,\n hasStandardBrowserWebWorkerEnv: hasStandardBrowserWebWorkerEnv,\n hasStandardBrowserEnv: hasStandardBrowserEnv\n});\n\nconst platform = {\n ...utils,\n ...platform$1\n};\n\nfunction toURLEncodedForm(data, options) {\n return toFormData(data, new platform.classes.URLSearchParams(), Object.assign({\n visitor: function(value, key, path, helpers) {\n if (platform.isNode && utils$1.isBuffer(value)) {\n this.append(key, value.toString('base64'));\n return false;\n }\n\n return helpers.defaultVisitor.apply(this, arguments);\n }\n }, options));\n}\n\n/**\n * It takes a string like `foo[x][y][z]` and returns an array like `['foo', 'x', 'y', 'z']\n *\n * @param {string} name - The name of the property to get.\n *\n * @returns An array of strings.\n */\nfunction parsePropPath(name) {\n // foo[x][y][z]\n // foo.x.y.z\n // foo-x-y-z\n // foo x y z\n return utils$1.matchAll(/\\w+|\\[(\\w*)]/g, name).map(match => {\n return match[0] === '[]' ? '' : match[1] || match[0];\n });\n}\n\n/**\n * Convert an array to an object.\n *\n * @param {Array} arr - The array to convert to an object.\n *\n * @returns An object with the same keys and values as the array.\n */\nfunction arrayToObject(arr) {\n const obj = {};\n const keys = Object.keys(arr);\n let i;\n const len = keys.length;\n let key;\n for (i = 0; i < len; i++) {\n key = keys[i];\n obj[key] = arr[key];\n }\n return obj;\n}\n\n/**\n * It takes a FormData object and returns a JavaScript object\n *\n * @param {string} formData The FormData object to convert to JSON.\n *\n * @returns {Object | null} The converted object.\n */\nfunction formDataToJSON(formData) {\n function buildPath(path, value, target, index) {\n let name = path[index++];\n const isNumericKey = Number.isFinite(+name);\n const isLast = index >= path.length;\n name = !name && utils$1.isArray(target) ? target.length : name;\n\n if (isLast) {\n if (utils$1.hasOwnProp(target, name)) {\n target[name] = [target[name], value];\n } else {\n target[name] = value;\n }\n\n return !isNumericKey;\n }\n\n if (!target[name] || !utils$1.isObject(target[name])) {\n target[name] = [];\n }\n\n const result = buildPath(path, value, target[name], index);\n\n if (result && utils$1.isArray(target[name])) {\n target[name] = arrayToObject(target[name]);\n }\n\n return !isNumericKey;\n }\n\n if (utils$1.isFormData(formData) && utils$1.isFunction(formData.entries)) {\n const obj = {};\n\n utils$1.forEachEntry(formData, (name, value) => {\n buildPath(parsePropPath(name), value, obj, 0);\n });\n\n return obj;\n }\n\n return null;\n}\n\n/**\n * It takes a string, tries to parse it, and if it fails, it returns the stringified version\n * of the input\n *\n * @param {any} rawValue - The value to be stringified.\n * @param {Function} parser - A function that parses a string into a JavaScript object.\n * @param {Function} encoder - A function that takes a value and returns a string.\n *\n * @returns {string} A stringified version of the rawValue.\n */\nfunction stringifySafely(rawValue, parser, encoder) {\n if (utils$1.isString(rawValue)) {\n try {\n (parser || JSON.parse)(rawValue);\n return utils$1.trim(rawValue);\n } catch (e) {\n if (e.name !== 'SyntaxError') {\n throw e;\n }\n }\n }\n\n return (encoder || JSON.stringify)(rawValue);\n}\n\nconst defaults = {\n\n transitional: transitionalDefaults,\n\n adapter: ['xhr', 'http'],\n\n transformRequest: [function transformRequest(data, headers) {\n const contentType = headers.getContentType() || '';\n const hasJSONContentType = contentType.indexOf('application/json') > -1;\n const isObjectPayload = utils$1.isObject(data);\n\n if (isObjectPayload && utils$1.isHTMLForm(data)) {\n data = new FormData(data);\n }\n\n const isFormData = utils$1.isFormData(data);\n\n if (isFormData) {\n if (!hasJSONContentType) {\n return data;\n }\n return hasJSONContentType ? JSON.stringify(formDataToJSON(data)) : data;\n }\n\n if (utils$1.isArrayBuffer(data) ||\n utils$1.isBuffer(data) ||\n utils$1.isStream(data) ||\n utils$1.isFile(data) ||\n utils$1.isBlob(data)\n ) {\n return data;\n }\n if (utils$1.isArrayBufferView(data)) {\n return data.buffer;\n }\n if (utils$1.isURLSearchParams(data)) {\n headers.setContentType('application/x-www-form-urlencoded;charset=utf-8', false);\n return data.toString();\n }\n\n let isFileList;\n\n if (isObjectPayload) {\n if (contentType.indexOf('application/x-www-form-urlencoded') > -1) {\n return toURLEncodedForm(data, this.formSerializer).toString();\n }\n\n if ((isFileList = utils$1.isFileList(data)) || contentType.indexOf('multipart/form-data') > -1) {\n const _FormData = this.env && this.env.FormData;\n\n return toFormData(\n isFileList ? {'files[]': data} : data,\n _FormData && new _FormData(),\n this.formSerializer\n );\n }\n }\n\n if (isObjectPayload || hasJSONContentType ) {\n headers.setContentType('application/json', false);\n return stringifySafely(data);\n }\n\n return data;\n }],\n\n transformResponse: [function transformResponse(data) {\n const transitional = this.transitional || defaults.transitional;\n const forcedJSONParsing = transitional && transitional.forcedJSONParsing;\n const JSONRequested = this.responseType === 'json';\n\n if (data && utils$1.isString(data) && ((forcedJSONParsing && !this.responseType) || JSONRequested)) {\n const silentJSONParsing = transitional && transitional.silentJSONParsing;\n const strictJSONParsing = !silentJSONParsing && JSONRequested;\n\n try {\n return JSON.parse(data);\n } catch (e) {\n if (strictJSONParsing) {\n if (e.name === 'SyntaxError') {\n throw AxiosError.from(e, AxiosError.ERR_BAD_RESPONSE, this, null, this.response);\n }\n throw e;\n }\n }\n }\n\n return data;\n }],\n\n /**\n * A timeout in milliseconds to abort a request. If set to 0 (default) a\n * timeout is not created.\n */\n timeout: 0,\n\n xsrfCookieName: 'XSRF-TOKEN',\n xsrfHeaderName: 'X-XSRF-TOKEN',\n\n maxContentLength: -1,\n maxBodyLength: -1,\n\n env: {\n FormData: platform.classes.FormData,\n Blob: platform.classes.Blob\n },\n\n validateStatus: function validateStatus(status) {\n return status >= 200 && status < 300;\n },\n\n headers: {\n common: {\n 'Accept': 'application/json, text/plain, */*',\n 'Content-Type': undefined\n }\n }\n};\n\nutils$1.forEach(['delete', 'get', 'head', 'post', 'put', 'patch'], (method) => {\n defaults.headers[method] = {};\n});\n\nconst defaults$1 = defaults;\n\n// RawAxiosHeaders whose duplicates are ignored by node\n// c.f. https://nodejs.org/api/http.html#http_message_headers\nconst ignoreDuplicateOf = utils$1.toObjectSet([\n 'age', 'authorization', 'content-length', 'content-type', 'etag',\n 'expires', 'from', 'host', 'if-modified-since', 'if-unmodified-since',\n 'last-modified', 'location', 'max-forwards', 'proxy-authorization',\n 'referer', 'retry-after', 'user-agent'\n]);\n\n/**\n * Parse headers into an object\n *\n * ```\n * Date: Wed, 27 Aug 2014 08:58:49 GMT\n * Content-Type: application/json\n * Connection: keep-alive\n * Transfer-Encoding: chunked\n * ```\n *\n * @param {String} rawHeaders Headers needing to be parsed\n *\n * @returns {Object} Headers parsed into an object\n */\nconst parseHeaders = rawHeaders => {\n const parsed = {};\n let key;\n let val;\n let i;\n\n rawHeaders && rawHeaders.split('\\n').forEach(function parser(line) {\n i = line.indexOf(':');\n key = line.substring(0, i).trim().toLowerCase();\n val = line.substring(i + 1).trim();\n\n if (!key || (parsed[key] && ignoreDuplicateOf[key])) {\n return;\n }\n\n if (key === 'set-cookie') {\n if (parsed[key]) {\n parsed[key].push(val);\n } else {\n parsed[key] = [val];\n }\n } else {\n parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val;\n }\n });\n\n return parsed;\n};\n\nconst $internals = Symbol('internals');\n\nfunction normalizeHeader(header) {\n return header && String(header).trim().toLowerCase();\n}\n\nfunction normalizeValue(value) {\n if (value === false || value == null) {\n return value;\n }\n\n return utils$1.isArray(value) ? value.map(normalizeValue) : String(value);\n}\n\nfunction parseTokens(str) {\n const tokens = Object.create(null);\n const tokensRE = /([^\\s,;=]+)\\s*(?:=\\s*([^,;]+))?/g;\n let match;\n\n while ((match = tokensRE.exec(str))) {\n tokens[match[1]] = match[2];\n }\n\n return tokens;\n}\n\nconst isValidHeaderName = (str) => /^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(str.trim());\n\nfunction matchHeaderValue(context, value, header, filter, isHeaderNameFilter) {\n if (utils$1.isFunction(filter)) {\n return filter.call(this, value, header);\n }\n\n if (isHeaderNameFilter) {\n value = header;\n }\n\n if (!utils$1.isString(value)) return;\n\n if (utils$1.isString(filter)) {\n return value.indexOf(filter) !== -1;\n }\n\n if (utils$1.isRegExp(filter)) {\n return filter.test(value);\n }\n}\n\nfunction formatHeader(header) {\n return header.trim()\n .toLowerCase().replace(/([a-z\\d])(\\w*)/g, (w, char, str) => {\n return char.toUpperCase() + str;\n });\n}\n\nfunction buildAccessors(obj, header) {\n const accessorName = utils$1.toCamelCase(' ' + header);\n\n ['get', 'set', 'has'].forEach(methodName => {\n Object.defineProperty(obj, methodName + accessorName, {\n value: function(arg1, arg2, arg3) {\n return this[methodName].call(this, header, arg1, arg2, arg3);\n },\n configurable: true\n });\n });\n}\n\nclass AxiosHeaders {\n constructor(headers) {\n headers && this.set(headers);\n }\n\n set(header, valueOrRewrite, rewrite) {\n const self = this;\n\n function setHeader(_value, _header, _rewrite) {\n const lHeader = normalizeHeader(_header);\n\n if (!lHeader) {\n throw new Error('header name must be a non-empty string');\n }\n\n const key = utils$1.findKey(self, lHeader);\n\n if(!key || self[key] === undefined || _rewrite === true || (_rewrite === undefined && self[key] !== false)) {\n self[key || _header] = normalizeValue(_value);\n }\n }\n\n const setHeaders = (headers, _rewrite) =>\n utils$1.forEach(headers, (_value, _header) => setHeader(_value, _header, _rewrite));\n\n if (utils$1.isPlainObject(header) || header instanceof this.constructor) {\n setHeaders(header, valueOrRewrite);\n } else if(utils$1.isString(header) && (header = header.trim()) && !isValidHeaderName(header)) {\n setHeaders(parseHeaders(header), valueOrRewrite);\n } else {\n header != null && setHeader(valueOrRewrite, header, rewrite);\n }\n\n return this;\n }\n\n get(header, parser) {\n header = normalizeHeader(header);\n\n if (header) {\n const key = utils$1.findKey(this, header);\n\n if (key) {\n const value = this[key];\n\n if (!parser) {\n return value;\n }\n\n if (parser === true) {\n return parseTokens(value);\n }\n\n if (utils$1.isFunction(parser)) {\n return parser.call(this, value, key);\n }\n\n if (utils$1.isRegExp(parser)) {\n return parser.exec(value);\n }\n\n throw new TypeError('parser must be boolean|regexp|function');\n }\n }\n }\n\n has(header, matcher) {\n header = normalizeHeader(header);\n\n if (header) {\n const key = utils$1.findKey(this, header);\n\n return !!(key && this[key] !== undefined && (!matcher || matchHeaderValue(this, this[key], key, matcher)));\n }\n\n return false;\n }\n\n delete(header, matcher) {\n const self = this;\n let deleted = false;\n\n function deleteHeader(_header) {\n _header = normalizeHeader(_header);\n\n if (_header) {\n const key = utils$1.findKey(self, _header);\n\n if (key && (!matcher || matchHeaderValue(self, self[key], key, matcher))) {\n delete self[key];\n\n deleted = true;\n }\n }\n }\n\n if (utils$1.isArray(header)) {\n header.forEach(deleteHeader);\n } else {\n deleteHeader(header);\n }\n\n return deleted;\n }\n\n clear(matcher) {\n const keys = Object.keys(this);\n let i = keys.length;\n let deleted = false;\n\n while (i--) {\n const key = keys[i];\n if(!matcher || matchHeaderValue(this, this[key], key, matcher, true)) {\n delete this[key];\n deleted = true;\n }\n }\n\n return deleted;\n }\n\n normalize(format) {\n const self = this;\n const headers = {};\n\n utils$1.forEach(this, (value, header) => {\n const key = utils$1.findKey(headers, header);\n\n if (key) {\n self[key] = normalizeValue(value);\n delete self[header];\n return;\n }\n\n const normalized = format ? formatHeader(header) : String(header).trim();\n\n if (normalized !== header) {\n delete self[header];\n }\n\n self[normalized] = normalizeValue(value);\n\n headers[normalized] = true;\n });\n\n return this;\n }\n\n concat(...targets) {\n return this.constructor.concat(this, ...targets);\n }\n\n toJSON(asStrings) {\n const obj = Object.create(null);\n\n utils$1.forEach(this, (value, header) => {\n value != null && value !== false && (obj[header] = asStrings && utils$1.isArray(value) ? value.join(', ') : value);\n });\n\n return obj;\n }\n\n [Symbol.iterator]() {\n return Object.entries(this.toJSON())[Symbol.iterator]();\n }\n\n toString() {\n return Object.entries(this.toJSON()).map(([header, value]) => header + ': ' + value).join('\\n');\n }\n\n get [Symbol.toStringTag]() {\n return 'AxiosHeaders';\n }\n\n static from(thing) {\n return thing instanceof this ? thing : new this(thing);\n }\n\n static concat(first, ...targets) {\n const computed = new this(first);\n\n targets.forEach((target) => computed.set(target));\n\n return computed;\n }\n\n static accessor(header) {\n const internals = this[$internals] = (this[$internals] = {\n accessors: {}\n });\n\n const accessors = internals.accessors;\n const prototype = this.prototype;\n\n function defineAccessor(_header) {\n const lHeader = normalizeHeader(_header);\n\n if (!accessors[lHeader]) {\n buildAccessors(prototype, _header);\n accessors[lHeader] = true;\n }\n }\n\n utils$1.isArray(header) ? header.forEach(defineAccessor) : defineAccessor(header);\n\n return this;\n }\n}\n\nAxiosHeaders.accessor(['Content-Type', 'Content-Length', 'Accept', 'Accept-Encoding', 'User-Agent', 'Authorization']);\n\n// reserved names hotfix\nutils$1.reduceDescriptors(AxiosHeaders.prototype, ({value}, key) => {\n let mapped = key[0].toUpperCase() + key.slice(1); // map `set` => `Set`\n return {\n get: () => value,\n set(headerValue) {\n this[mapped] = headerValue;\n }\n }\n});\n\nutils$1.freezeMethods(AxiosHeaders);\n\nconst AxiosHeaders$1 = AxiosHeaders;\n\n/**\n * Transform the data for a request or a response\n *\n * @param {Array|Function} fns A single function or Array of functions\n * @param {?Object} response The response object\n *\n * @returns {*} The resulting transformed data\n */\nfunction transformData(fns, response) {\n const config = this || defaults$1;\n const context = response || config;\n const headers = AxiosHeaders$1.from(context.headers);\n let data = context.data;\n\n utils$1.forEach(fns, function transform(fn) {\n data = fn.call(config, data, headers.normalize(), response ? response.status : undefined);\n });\n\n headers.normalize();\n\n return data;\n}\n\nfunction isCancel(value) {\n return !!(value && value.__CANCEL__);\n}\n\n/**\n * A `CanceledError` is an object that is thrown when an operation is canceled.\n *\n * @param {string=} message The message.\n * @param {Object=} config The config.\n * @param {Object=} request The request.\n *\n * @returns {CanceledError} The created error.\n */\nfunction CanceledError(message, config, request) {\n // eslint-disable-next-line no-eq-null,eqeqeq\n AxiosError.call(this, message == null ? 'canceled' : message, AxiosError.ERR_CANCELED, config, request);\n this.name = 'CanceledError';\n}\n\nutils$1.inherits(CanceledError, AxiosError, {\n __CANCEL__: true\n});\n\n/**\n * Resolve or reject a Promise based on response status.\n *\n * @param {Function} resolve A function that resolves the promise.\n * @param {Function} reject A function that rejects the promise.\n * @param {object} response The response.\n *\n * @returns {object} The response.\n */\nfunction settle(resolve, reject, response) {\n const validateStatus = response.config.validateStatus;\n if (!response.status || !validateStatus || validateStatus(response.status)) {\n resolve(response);\n } else {\n reject(new AxiosError(\n 'Request failed with status code ' + response.status,\n [AxiosError.ERR_BAD_REQUEST, AxiosError.ERR_BAD_RESPONSE][Math.floor(response.status / 100) - 4],\n response.config,\n response.request,\n response\n ));\n }\n}\n\n/**\n * Determines whether the specified URL is absolute\n *\n * @param {string} url The URL to test\n *\n * @returns {boolean} True if the specified URL is absolute, otherwise false\n */\nfunction isAbsoluteURL(url) {\n // A URL is considered absolute if it begins with \"://\" or \"//\" (protocol-relative URL).\n // RFC 3986 defines scheme name as a sequence of characters beginning with a letter and followed\n // by any combination of letters, digits, plus, period, or hyphen.\n return /^([a-z][a-z\\d+\\-.]*:)?\\/\\//i.test(url);\n}\n\n/**\n * Creates a new URL by combining the specified URLs\n *\n * @param {string} baseURL The base URL\n * @param {string} relativeURL The relative URL\n *\n * @returns {string} The combined URL\n */\nfunction combineURLs(baseURL, relativeURL) {\n return relativeURL\n ? baseURL.replace(/\\/+$/, '') + '/' + relativeURL.replace(/^\\/+/, '')\n : baseURL;\n}\n\n/**\n * Creates a new URL by combining the baseURL with the requestedURL,\n * only when the requestedURL is not already an absolute URL.\n * If the requestURL is absolute, this function returns the requestedURL untouched.\n *\n * @param {string} baseURL The base URL\n * @param {string} requestedURL Absolute or relative URL to combine\n *\n * @returns {string} The combined full path\n */\nfunction buildFullPath(baseURL, requestedURL) {\n if (baseURL && !isAbsoluteURL(requestedURL)) {\n return combineURLs(baseURL, requestedURL);\n }\n return requestedURL;\n}\n\nconst VERSION = \"1.6.2\";\n\nfunction parseProtocol(url) {\n const match = /^([-+\\w]{1,25})(:?\\/\\/|:)/.exec(url);\n return match && match[1] || '';\n}\n\nconst DATA_URL_PATTERN = /^(?:([^;]+);)?(?:[^;]+;)?(base64|),([\\s\\S]*)$/;\n\n/**\n * Parse data uri to a Buffer or Blob\n *\n * @param {String} uri\n * @param {?Boolean} asBlob\n * @param {?Object} options\n * @param {?Function} options.Blob\n *\n * @returns {Buffer|Blob}\n */\nfunction fromDataURI(uri, asBlob, options) {\n const _Blob = options && options.Blob || platform.classes.Blob;\n const protocol = parseProtocol(uri);\n\n if (asBlob === undefined && _Blob) {\n asBlob = true;\n }\n\n if (protocol === 'data') {\n uri = protocol.length ? uri.slice(protocol.length + 1) : uri;\n\n const match = DATA_URL_PATTERN.exec(uri);\n\n if (!match) {\n throw new AxiosError('Invalid URL', AxiosError.ERR_INVALID_URL);\n }\n\n const mime = match[1];\n const isBase64 = match[2];\n const body = match[3];\n const buffer = Buffer.from(decodeURIComponent(body), isBase64 ? 'base64' : 'utf8');\n\n if (asBlob) {\n if (!_Blob) {\n throw new AxiosError('Blob is not supported', AxiosError.ERR_NOT_SUPPORT);\n }\n\n return new _Blob([buffer], {type: mime});\n }\n\n return buffer;\n }\n\n throw new AxiosError('Unsupported protocol ' + protocol, AxiosError.ERR_NOT_SUPPORT);\n}\n\n/**\n * Throttle decorator\n * @param {Function} fn\n * @param {Number} freq\n * @return {Function}\n */\nfunction throttle(fn, freq) {\n let timestamp = 0;\n const threshold = 1000 / freq;\n let timer = null;\n return function throttled(force, args) {\n const now = Date.now();\n if (force || now - timestamp > threshold) {\n if (timer) {\n clearTimeout(timer);\n timer = null;\n }\n timestamp = now;\n return fn.apply(null, args);\n }\n if (!timer) {\n timer = setTimeout(() => {\n timer = null;\n timestamp = Date.now();\n return fn.apply(null, args);\n }, threshold - (now - timestamp));\n }\n };\n}\n\n/**\n * Calculate data maxRate\n * @param {Number} [samplesCount= 10]\n * @param {Number} [min= 1000]\n * @returns {Function}\n */\nfunction speedometer(samplesCount, min) {\n samplesCount = samplesCount || 10;\n const bytes = new Array(samplesCount);\n const timestamps = new Array(samplesCount);\n let head = 0;\n let tail = 0;\n let firstSampleTS;\n\n min = min !== undefined ? min : 1000;\n\n return function push(chunkLength) {\n const now = Date.now();\n\n const startedAt = timestamps[tail];\n\n if (!firstSampleTS) {\n firstSampleTS = now;\n }\n\n bytes[head] = chunkLength;\n timestamps[head] = now;\n\n let i = tail;\n let bytesCount = 0;\n\n while (i !== head) {\n bytesCount += bytes[i++];\n i = i % samplesCount;\n }\n\n head = (head + 1) % samplesCount;\n\n if (head === tail) {\n tail = (tail + 1) % samplesCount;\n }\n\n if (now - firstSampleTS < min) {\n return;\n }\n\n const passed = startedAt && now - startedAt;\n\n return passed ? Math.round(bytesCount * 1000 / passed) : undefined;\n };\n}\n\nconst kInternals = Symbol('internals');\n\nclass AxiosTransformStream extends stream__default[\"default\"].Transform{\n constructor(options) {\n options = utils$1.toFlatObject(options, {\n maxRate: 0,\n chunkSize: 64 * 1024,\n minChunkSize: 100,\n timeWindow: 500,\n ticksRate: 2,\n samplesCount: 15\n }, null, (prop, source) => {\n return !utils$1.isUndefined(source[prop]);\n });\n\n super({\n readableHighWaterMark: options.chunkSize\n });\n\n const self = this;\n\n const internals = this[kInternals] = {\n length: options.length,\n timeWindow: options.timeWindow,\n ticksRate: options.ticksRate,\n chunkSize: options.chunkSize,\n maxRate: options.maxRate,\n minChunkSize: options.minChunkSize,\n bytesSeen: 0,\n isCaptured: false,\n notifiedBytesLoaded: 0,\n ts: Date.now(),\n bytes: 0,\n onReadCallback: null\n };\n\n const _speedometer = speedometer(internals.ticksRate * options.samplesCount, internals.timeWindow);\n\n this.on('newListener', event => {\n if (event === 'progress') {\n if (!internals.isCaptured) {\n internals.isCaptured = true;\n }\n }\n });\n\n let bytesNotified = 0;\n\n internals.updateProgress = throttle(function throttledHandler() {\n const totalBytes = internals.length;\n const bytesTransferred = internals.bytesSeen;\n const progressBytes = bytesTransferred - bytesNotified;\n if (!progressBytes || self.destroyed) return;\n\n const rate = _speedometer(progressBytes);\n\n bytesNotified = bytesTransferred;\n\n process.nextTick(() => {\n self.emit('progress', {\n 'loaded': bytesTransferred,\n 'total': totalBytes,\n 'progress': totalBytes ? (bytesTransferred / totalBytes) : undefined,\n 'bytes': progressBytes,\n 'rate': rate ? rate : undefined,\n 'estimated': rate && totalBytes && bytesTransferred <= totalBytes ?\n (totalBytes - bytesTransferred) / rate : undefined\n });\n });\n }, internals.ticksRate);\n\n const onFinish = () => {\n internals.updateProgress(true);\n };\n\n this.once('end', onFinish);\n this.once('error', onFinish);\n }\n\n _read(size) {\n const internals = this[kInternals];\n\n if (internals.onReadCallback) {\n internals.onReadCallback();\n }\n\n return super._read(size);\n }\n\n _transform(chunk, encoding, callback) {\n const self = this;\n const internals = this[kInternals];\n const maxRate = internals.maxRate;\n\n const readableHighWaterMark = this.readableHighWaterMark;\n\n const timeWindow = internals.timeWindow;\n\n const divider = 1000 / timeWindow;\n const bytesThreshold = (maxRate / divider);\n const minChunkSize = internals.minChunkSize !== false ? Math.max(internals.minChunkSize, bytesThreshold * 0.01) : 0;\n\n function pushChunk(_chunk, _callback) {\n const bytes = Buffer.byteLength(_chunk);\n internals.bytesSeen += bytes;\n internals.bytes += bytes;\n\n if (internals.isCaptured) {\n internals.updateProgress();\n }\n\n if (self.push(_chunk)) {\n process.nextTick(_callback);\n } else {\n internals.onReadCallback = () => {\n internals.onReadCallback = null;\n process.nextTick(_callback);\n };\n }\n }\n\n const transformChunk = (_chunk, _callback) => {\n const chunkSize = Buffer.byteLength(_chunk);\n let chunkRemainder = null;\n let maxChunkSize = readableHighWaterMark;\n let bytesLeft;\n let passed = 0;\n\n if (maxRate) {\n const now = Date.now();\n\n if (!internals.ts || (passed = (now - internals.ts)) >= timeWindow) {\n internals.ts = now;\n bytesLeft = bytesThreshold - internals.bytes;\n internals.bytes = bytesLeft < 0 ? -bytesLeft : 0;\n passed = 0;\n }\n\n bytesLeft = bytesThreshold - internals.bytes;\n }\n\n if (maxRate) {\n if (bytesLeft <= 0) {\n // next time window\n return setTimeout(() => {\n _callback(null, _chunk);\n }, timeWindow - passed);\n }\n\n if (bytesLeft < maxChunkSize) {\n maxChunkSize = bytesLeft;\n }\n }\n\n if (maxChunkSize && chunkSize > maxChunkSize && (chunkSize - maxChunkSize) > minChunkSize) {\n chunkRemainder = _chunk.subarray(maxChunkSize);\n _chunk = _chunk.subarray(0, maxChunkSize);\n }\n\n pushChunk(_chunk, chunkRemainder ? () => {\n process.nextTick(_callback, null, chunkRemainder);\n } : _callback);\n };\n\n transformChunk(chunk, function transformNextChunk(err, _chunk) {\n if (err) {\n return callback(err);\n }\n\n if (_chunk) {\n transformChunk(_chunk, transformNextChunk);\n } else {\n callback(null);\n }\n });\n }\n\n setLength(length) {\n this[kInternals].length = +length;\n return this;\n }\n}\n\nconst AxiosTransformStream$1 = AxiosTransformStream;\n\nconst {asyncIterator} = Symbol;\n\nconst readBlob = async function* (blob) {\n if (blob.stream) {\n yield* blob.stream();\n } else if (blob.arrayBuffer) {\n yield await blob.arrayBuffer();\n } else if (blob[asyncIterator]) {\n yield* blob[asyncIterator]();\n } else {\n yield blob;\n }\n};\n\nconst readBlob$1 = readBlob;\n\nconst BOUNDARY_ALPHABET = utils$1.ALPHABET.ALPHA_DIGIT + '-_';\n\nconst textEncoder = new util.TextEncoder();\n\nconst CRLF = '\\r\\n';\nconst CRLF_BYTES = textEncoder.encode(CRLF);\nconst CRLF_BYTES_COUNT = 2;\n\nclass FormDataPart {\n constructor(name, value) {\n const {escapeName} = this.constructor;\n const isStringValue = utils$1.isString(value);\n\n let headers = `Content-Disposition: form-data; name=\"${escapeName(name)}\"${\n !isStringValue && value.name ? `; filename=\"${escapeName(value.name)}\"` : ''\n }${CRLF}`;\n\n if (isStringValue) {\n value = textEncoder.encode(String(value).replace(/\\r?\\n|\\r\\n?/g, CRLF));\n } else {\n headers += `Content-Type: ${value.type || \"application/octet-stream\"}${CRLF}`;\n }\n\n this.headers = textEncoder.encode(headers + CRLF);\n\n this.contentLength = isStringValue ? value.byteLength : value.size;\n\n this.size = this.headers.byteLength + this.contentLength + CRLF_BYTES_COUNT;\n\n this.name = name;\n this.value = value;\n }\n\n async *encode(){\n yield this.headers;\n\n const {value} = this;\n\n if(utils$1.isTypedArray(value)) {\n yield value;\n } else {\n yield* readBlob$1(value);\n }\n\n yield CRLF_BYTES;\n }\n\n static escapeName(name) {\n return String(name).replace(/[\\r\\n\"]/g, (match) => ({\n '\\r' : '%0D',\n '\\n' : '%0A',\n '\"' : '%22',\n }[match]));\n }\n}\n\nconst formDataToStream = (form, headersHandler, options) => {\n const {\n tag = 'form-data-boundary',\n size = 25,\n boundary = tag + '-' + utils$1.generateString(size, BOUNDARY_ALPHABET)\n } = options || {};\n\n if(!utils$1.isFormData(form)) {\n throw TypeError('FormData instance required');\n }\n\n if (boundary.length < 1 || boundary.length > 70) {\n throw Error('boundary must be 10-70 characters long')\n }\n\n const boundaryBytes = textEncoder.encode('--' + boundary + CRLF);\n const footerBytes = textEncoder.encode('--' + boundary + '--' + CRLF + CRLF);\n let contentLength = footerBytes.byteLength;\n\n const parts = Array.from(form.entries()).map(([name, value]) => {\n const part = new FormDataPart(name, value);\n contentLength += part.size;\n return part;\n });\n\n contentLength += boundaryBytes.byteLength * parts.length;\n\n contentLength = utils$1.toFiniteNumber(contentLength);\n\n const computedHeaders = {\n 'Content-Type': `multipart/form-data; boundary=${boundary}`\n };\n\n if (Number.isFinite(contentLength)) {\n computedHeaders['Content-Length'] = contentLength;\n }\n\n headersHandler && headersHandler(computedHeaders);\n\n return stream.Readable.from((async function *() {\n for(const part of parts) {\n yield boundaryBytes;\n yield* part.encode();\n }\n\n yield footerBytes;\n })());\n};\n\nconst formDataToStream$1 = formDataToStream;\n\nclass ZlibHeaderTransformStream extends stream__default[\"default\"].Transform {\n __transform(chunk, encoding, callback) {\n this.push(chunk);\n callback();\n }\n\n _transform(chunk, encoding, callback) {\n if (chunk.length !== 0) {\n this._transform = this.__transform;\n\n // Add Default Compression headers if no zlib headers are present\n if (chunk[0] !== 120) { // Hex: 78\n const header = Buffer.alloc(2);\n header[0] = 120; // Hex: 78\n header[1] = 156; // Hex: 9C \n this.push(header, encoding);\n }\n }\n\n this.__transform(chunk, encoding, callback);\n }\n}\n\nconst ZlibHeaderTransformStream$1 = ZlibHeaderTransformStream;\n\nconst callbackify = (fn, reducer) => {\n return utils$1.isAsyncFn(fn) ? function (...args) {\n const cb = args.pop();\n fn.apply(this, args).then((value) => {\n try {\n reducer ? cb(null, ...reducer(value)) : cb(null, value);\n } catch (err) {\n cb(err);\n }\n }, cb);\n } : fn;\n};\n\nconst callbackify$1 = callbackify;\n\nconst zlibOptions = {\n flush: zlib__default[\"default\"].constants.Z_SYNC_FLUSH,\n finishFlush: zlib__default[\"default\"].constants.Z_SYNC_FLUSH\n};\n\nconst brotliOptions = {\n flush: zlib__default[\"default\"].constants.BROTLI_OPERATION_FLUSH,\n finishFlush: zlib__default[\"default\"].constants.BROTLI_OPERATION_FLUSH\n};\n\nconst isBrotliSupported = utils$1.isFunction(zlib__default[\"default\"].createBrotliDecompress);\n\nconst {http: httpFollow, https: httpsFollow} = followRedirects__default[\"default\"];\n\nconst isHttps = /https:?/;\n\nconst supportedProtocols = platform.protocols.map(protocol => {\n return protocol + ':';\n});\n\n/**\n * If the proxy or config beforeRedirects functions are defined, call them with the options\n * object.\n *\n * @param {Object} options - The options object that was passed to the request.\n *\n * @returns {Object}\n */\nfunction dispatchBeforeRedirect(options) {\n if (options.beforeRedirects.proxy) {\n options.beforeRedirects.proxy(options);\n }\n if (options.beforeRedirects.config) {\n options.beforeRedirects.config(options);\n }\n}\n\n/**\n * If the proxy or config afterRedirects functions are defined, call them with the options\n *\n * @param {http.ClientRequestArgs} options\n * @param {AxiosProxyConfig} configProxy configuration from Axios options object\n * @param {string} location\n *\n * @returns {http.ClientRequestArgs}\n */\nfunction setProxy(options, configProxy, location) {\n let proxy = configProxy;\n if (!proxy && proxy !== false) {\n const proxyUrl = proxyFromEnv.getProxyForUrl(location);\n if (proxyUrl) {\n proxy = new URL(proxyUrl);\n }\n }\n if (proxy) {\n // Basic proxy authorization\n if (proxy.username) {\n proxy.auth = (proxy.username || '') + ':' + (proxy.password || '');\n }\n\n if (proxy.auth) {\n // Support proxy auth object form\n if (proxy.auth.username || proxy.auth.password) {\n proxy.auth = (proxy.auth.username || '') + ':' + (proxy.auth.password || '');\n }\n const base64 = Buffer\n .from(proxy.auth, 'utf8')\n .toString('base64');\n options.headers['Proxy-Authorization'] = 'Basic ' + base64;\n }\n\n options.headers.host = options.hostname + (options.port ? ':' + options.port : '');\n const proxyHost = proxy.hostname || proxy.host;\n options.hostname = proxyHost;\n // Replace 'host' since options is not a URL object\n options.host = proxyHost;\n options.port = proxy.port;\n options.path = location;\n if (proxy.protocol) {\n options.protocol = proxy.protocol.includes(':') ? proxy.protocol : `${proxy.protocol}:`;\n }\n }\n\n options.beforeRedirects.proxy = function beforeRedirect(redirectOptions) {\n // Configure proxy for redirected request, passing the original config proxy to apply\n // the exact same logic as if the redirected request was performed by axios directly.\n setProxy(redirectOptions, configProxy, redirectOptions.href);\n };\n}\n\nconst isHttpAdapterSupported = typeof process !== 'undefined' && utils$1.kindOf(process) === 'process';\n\n// temporary hotfix\n\nconst wrapAsync = (asyncExecutor) => {\n return new Promise((resolve, reject) => {\n let onDone;\n let isDone;\n\n const done = (value, isRejected) => {\n if (isDone) return;\n isDone = true;\n onDone && onDone(value, isRejected);\n };\n\n const _resolve = (value) => {\n done(value);\n resolve(value);\n };\n\n const _reject = (reason) => {\n done(reason, true);\n reject(reason);\n };\n\n asyncExecutor(_resolve, _reject, (onDoneHandler) => (onDone = onDoneHandler)).catch(_reject);\n })\n};\n\nconst resolveFamily = ({address, family}) => {\n if (!utils$1.isString(address)) {\n throw TypeError('address must be a string');\n }\n return ({\n address,\n family: family || (address.indexOf('.') < 0 ? 6 : 4)\n });\n};\n\nconst buildAddressEntry = (address, family) => resolveFamily(utils$1.isObject(address) ? address : {address, family});\n\n/*eslint consistent-return:0*/\nconst httpAdapter = isHttpAdapterSupported && function httpAdapter(config) {\n return wrapAsync(async function dispatchHttpRequest(resolve, reject, onDone) {\n let {data, lookup, family} = config;\n const {responseType, responseEncoding} = config;\n const method = config.method.toUpperCase();\n let isDone;\n let rejected = false;\n let req;\n\n if (lookup) {\n const _lookup = callbackify$1(lookup, (value) => utils$1.isArray(value) ? value : [value]);\n // hotfix to support opt.all option which is required for node 20.x\n lookup = (hostname, opt, cb) => {\n _lookup(hostname, opt, (err, arg0, arg1) => {\n const addresses = utils$1.isArray(arg0) ? arg0.map(addr => buildAddressEntry(addr)) : [buildAddressEntry(arg0, arg1)];\n\n opt.all ? cb(err, addresses) : cb(err, addresses[0].address, addresses[0].family);\n });\n };\n }\n\n // temporary internal emitter until the AxiosRequest class will be implemented\n const emitter = new EventEmitter__default[\"default\"]();\n\n const onFinished = () => {\n if (config.cancelToken) {\n config.cancelToken.unsubscribe(abort);\n }\n\n if (config.signal) {\n config.signal.removeEventListener('abort', abort);\n }\n\n emitter.removeAllListeners();\n };\n\n onDone((value, isRejected) => {\n isDone = true;\n if (isRejected) {\n rejected = true;\n onFinished();\n }\n });\n\n function abort(reason) {\n emitter.emit('abort', !reason || reason.type ? new CanceledError(null, config, req) : reason);\n }\n\n emitter.once('abort', reject);\n\n if (config.cancelToken || config.signal) {\n config.cancelToken && config.cancelToken.subscribe(abort);\n if (config.signal) {\n config.signal.aborted ? abort() : config.signal.addEventListener('abort', abort);\n }\n }\n\n // Parse url\n const fullPath = buildFullPath(config.baseURL, config.url);\n const parsed = new URL(fullPath, 'http://localhost');\n const protocol = parsed.protocol || supportedProtocols[0];\n\n if (protocol === 'data:') {\n let convertedData;\n\n if (method !== 'GET') {\n return settle(resolve, reject, {\n status: 405,\n statusText: 'method not allowed',\n headers: {},\n config\n });\n }\n\n try {\n convertedData = fromDataURI(config.url, responseType === 'blob', {\n Blob: config.env && config.env.Blob\n });\n } catch (err) {\n throw AxiosError.from(err, AxiosError.ERR_BAD_REQUEST, config);\n }\n\n if (responseType === 'text') {\n convertedData = convertedData.toString(responseEncoding);\n\n if (!responseEncoding || responseEncoding === 'utf8') {\n convertedData = utils$1.stripBOM(convertedData);\n }\n } else if (responseType === 'stream') {\n convertedData = stream__default[\"default\"].Readable.from(convertedData);\n }\n\n return settle(resolve, reject, {\n data: convertedData,\n status: 200,\n statusText: 'OK',\n headers: new AxiosHeaders$1(),\n config\n });\n }\n\n if (supportedProtocols.indexOf(protocol) === -1) {\n return reject(new AxiosError(\n 'Unsupported protocol ' + protocol,\n AxiosError.ERR_BAD_REQUEST,\n config\n ));\n }\n\n const headers = AxiosHeaders$1.from(config.headers).normalize();\n\n // Set User-Agent (required by some servers)\n // See https://github.com/axios/axios/issues/69\n // User-Agent is specified; handle case where no UA header is desired\n // Only set header if it hasn't been set in config\n headers.set('User-Agent', 'axios/' + VERSION, false);\n\n const onDownloadProgress = config.onDownloadProgress;\n const onUploadProgress = config.onUploadProgress;\n const maxRate = config.maxRate;\n let maxUploadRate = undefined;\n let maxDownloadRate = undefined;\n\n // support for spec compliant FormData objects\n if (utils$1.isSpecCompliantForm(data)) {\n const userBoundary = headers.getContentType(/boundary=([-_\\w\\d]{10,70})/i);\n\n data = formDataToStream$1(data, (formHeaders) => {\n headers.set(formHeaders);\n }, {\n tag: `axios-${VERSION}-boundary`,\n boundary: userBoundary && userBoundary[1] || undefined\n });\n // support for https://www.npmjs.com/package/form-data api\n } else if (utils$1.isFormData(data) && utils$1.isFunction(data.getHeaders)) {\n headers.set(data.getHeaders());\n\n if (!headers.hasContentLength()) {\n try {\n const knownLength = await util__default[\"default\"].promisify(data.getLength).call(data);\n Number.isFinite(knownLength) && knownLength >= 0 && headers.setContentLength(knownLength);\n /*eslint no-empty:0*/\n } catch (e) {\n }\n }\n } else if (utils$1.isBlob(data)) {\n data.size && headers.setContentType(data.type || 'application/octet-stream');\n headers.setContentLength(data.size || 0);\n data = stream__default[\"default\"].Readable.from(readBlob$1(data));\n } else if (data && !utils$1.isStream(data)) {\n if (Buffer.isBuffer(data)) ; else if (utils$1.isArrayBuffer(data)) {\n data = Buffer.from(new Uint8Array(data));\n } else if (utils$1.isString(data)) {\n data = Buffer.from(data, 'utf-8');\n } else {\n return reject(new AxiosError(\n 'Data after transformation must be a string, an ArrayBuffer, a Buffer, or a Stream',\n AxiosError.ERR_BAD_REQUEST,\n config\n ));\n }\n\n // Add Content-Length header if data exists\n headers.setContentLength(data.length, false);\n\n if (config.maxBodyLength > -1 && data.length > config.maxBodyLength) {\n return reject(new AxiosError(\n 'Request body larger than maxBodyLength limit',\n AxiosError.ERR_BAD_REQUEST,\n config\n ));\n }\n }\n\n const contentLength = utils$1.toFiniteNumber(headers.getContentLength());\n\n if (utils$1.isArray(maxRate)) {\n maxUploadRate = maxRate[0];\n maxDownloadRate = maxRate[1];\n } else {\n maxUploadRate = maxDownloadRate = maxRate;\n }\n\n if (data && (onUploadProgress || maxUploadRate)) {\n if (!utils$1.isStream(data)) {\n data = stream__default[\"default\"].Readable.from(data, {objectMode: false});\n }\n\n data = stream__default[\"default\"].pipeline([data, new AxiosTransformStream$1({\n length: contentLength,\n maxRate: utils$1.toFiniteNumber(maxUploadRate)\n })], utils$1.noop);\n\n onUploadProgress && data.on('progress', progress => {\n onUploadProgress(Object.assign(progress, {\n upload: true\n }));\n });\n }\n\n // HTTP basic authentication\n let auth = undefined;\n if (config.auth) {\n const username = config.auth.username || '';\n const password = config.auth.password || '';\n auth = username + ':' + password;\n }\n\n if (!auth && parsed.username) {\n const urlUsername = parsed.username;\n const urlPassword = parsed.password;\n auth = urlUsername + ':' + urlPassword;\n }\n\n auth && headers.delete('authorization');\n\n let path;\n\n try {\n path = buildURL(\n parsed.pathname + parsed.search,\n config.params,\n config.paramsSerializer\n ).replace(/^\\?/, '');\n } catch (err) {\n const customErr = new Error(err.message);\n customErr.config = config;\n customErr.url = config.url;\n customErr.exists = true;\n return reject(customErr);\n }\n\n headers.set(\n 'Accept-Encoding',\n 'gzip, compress, deflate' + (isBrotliSupported ? ', br' : ''), false\n );\n\n const options = {\n path,\n method: method,\n headers: headers.toJSON(),\n agents: { http: config.httpAgent, https: config.httpsAgent },\n auth,\n protocol,\n family,\n beforeRedirect: dispatchBeforeRedirect,\n beforeRedirects: {}\n };\n\n // cacheable-lookup integration hotfix\n !utils$1.isUndefined(lookup) && (options.lookup = lookup);\n\n if (config.socketPath) {\n options.socketPath = config.socketPath;\n } else {\n options.hostname = parsed.hostname;\n options.port = parsed.port;\n setProxy(options, config.proxy, protocol + '//' + parsed.hostname + (parsed.port ? ':' + parsed.port : '') + options.path);\n }\n\n let transport;\n const isHttpsRequest = isHttps.test(options.protocol);\n options.agent = isHttpsRequest ? config.httpsAgent : config.httpAgent;\n if (config.transport) {\n transport = config.transport;\n } else if (config.maxRedirects === 0) {\n transport = isHttpsRequest ? https__default[\"default\"] : http__default[\"default\"];\n } else {\n if (config.maxRedirects) {\n options.maxRedirects = config.maxRedirects;\n }\n if (config.beforeRedirect) {\n options.beforeRedirects.config = config.beforeRedirect;\n }\n transport = isHttpsRequest ? httpsFollow : httpFollow;\n }\n\n if (config.maxBodyLength > -1) {\n options.maxBodyLength = config.maxBodyLength;\n } else {\n // follow-redirects does not skip comparison, so it should always succeed for axios -1 unlimited\n options.maxBodyLength = Infinity;\n }\n\n if (config.insecureHTTPParser) {\n options.insecureHTTPParser = config.insecureHTTPParser;\n }\n\n // Create the request\n req = transport.request(options, function handleResponse(res) {\n if (req.destroyed) return;\n\n const streams = [res];\n\n const responseLength = +res.headers['content-length'];\n\n if (onDownloadProgress) {\n const transformStream = new AxiosTransformStream$1({\n length: utils$1.toFiniteNumber(responseLength),\n maxRate: utils$1.toFiniteNumber(maxDownloadRate)\n });\n\n onDownloadProgress && transformStream.on('progress', progress => {\n onDownloadProgress(Object.assign(progress, {\n download: true\n }));\n });\n\n streams.push(transformStream);\n }\n\n // decompress the response body transparently if required\n let responseStream = res;\n\n // return the last request in case of redirects\n const lastRequest = res.req || req;\n\n // if decompress disabled we should not decompress\n if (config.decompress !== false && res.headers['content-encoding']) {\n // if no content, but headers still say that it is encoded,\n // remove the header not confuse downstream operations\n if (method === 'HEAD' || res.statusCode === 204) {\n delete res.headers['content-encoding'];\n }\n\n switch ((res.headers['content-encoding'] || '').toLowerCase()) {\n /*eslint default-case:0*/\n case 'gzip':\n case 'x-gzip':\n case 'compress':\n case 'x-compress':\n // add the unzipper to the body stream processing pipeline\n streams.push(zlib__default[\"default\"].createUnzip(zlibOptions));\n\n // remove the content-encoding in order to not confuse downstream operations\n delete res.headers['content-encoding'];\n break;\n case 'deflate':\n streams.push(new ZlibHeaderTransformStream$1());\n\n // add the unzipper to the body stream processing pipeline\n streams.push(zlib__default[\"default\"].createUnzip(zlibOptions));\n\n // remove the content-encoding in order to not confuse downstream operations\n delete res.headers['content-encoding'];\n break;\n case 'br':\n if (isBrotliSupported) {\n streams.push(zlib__default[\"default\"].createBrotliDecompress(brotliOptions));\n delete res.headers['content-encoding'];\n }\n }\n }\n\n responseStream = streams.length > 1 ? stream__default[\"default\"].pipeline(streams, utils$1.noop) : streams[0];\n\n const offListeners = stream__default[\"default\"].finished(responseStream, () => {\n offListeners();\n onFinished();\n });\n\n const response = {\n status: res.statusCode,\n statusText: res.statusMessage,\n headers: new AxiosHeaders$1(res.headers),\n config,\n request: lastRequest\n };\n\n if (responseType === 'stream') {\n response.data = responseStream;\n settle(resolve, reject, response);\n } else {\n const responseBuffer = [];\n let totalResponseBytes = 0;\n\n responseStream.on('data', function handleStreamData(chunk) {\n responseBuffer.push(chunk);\n totalResponseBytes += chunk.length;\n\n // make sure the content length is not over the maxContentLength if specified\n if (config.maxContentLength > -1 && totalResponseBytes > config.maxContentLength) {\n // stream.destroy() emit aborted event before calling reject() on Node.js v16\n rejected = true;\n responseStream.destroy();\n reject(new AxiosError('maxContentLength size of ' + config.maxContentLength + ' exceeded',\n AxiosError.ERR_BAD_RESPONSE, config, lastRequest));\n }\n });\n\n responseStream.on('aborted', function handlerStreamAborted() {\n if (rejected) {\n return;\n }\n\n const err = new AxiosError(\n 'maxContentLength size of ' + config.maxContentLength + ' exceeded',\n AxiosError.ERR_BAD_RESPONSE,\n config,\n lastRequest\n );\n responseStream.destroy(err);\n reject(err);\n });\n\n responseStream.on('error', function handleStreamError(err) {\n if (req.destroyed) return;\n reject(AxiosError.from(err, null, config, lastRequest));\n });\n\n responseStream.on('end', function handleStreamEnd() {\n try {\n let responseData = responseBuffer.length === 1 ? responseBuffer[0] : Buffer.concat(responseBuffer);\n if (responseType !== 'arraybuffer') {\n responseData = responseData.toString(responseEncoding);\n if (!responseEncoding || responseEncoding === 'utf8') {\n responseData = utils$1.stripBOM(responseData);\n }\n }\n response.data = responseData;\n } catch (err) {\n return reject(AxiosError.from(err, null, config, response.request, response));\n }\n settle(resolve, reject, response);\n });\n }\n\n emitter.once('abort', err => {\n if (!responseStream.destroyed) {\n responseStream.emit('error', err);\n responseStream.destroy();\n }\n });\n });\n\n emitter.once('abort', err => {\n reject(err);\n req.destroy(err);\n });\n\n // Handle errors\n req.on('error', function handleRequestError(err) {\n // @todo remove\n // if (req.aborted && err.code !== AxiosError.ERR_FR_TOO_MANY_REDIRECTS) return;\n reject(AxiosError.from(err, null, config, req));\n });\n\n // set tcp keep alive to prevent drop connection by peer\n req.on('socket', function handleRequestSocket(socket) {\n // default interval of sending ack packet is 1 minute\n socket.setKeepAlive(true, 1000 * 60);\n });\n\n // Handle request timeout\n if (config.timeout) {\n // This is forcing a int timeout to avoid problems if the `req` interface doesn't handle other types.\n const timeout = parseInt(config.timeout, 10);\n\n if (Number.isNaN(timeout)) {\n reject(new AxiosError(\n 'error trying to parse `config.timeout` to int',\n AxiosError.ERR_BAD_OPTION_VALUE,\n config,\n req\n ));\n\n return;\n }\n\n // Sometime, the response will be very slow, and does not respond, the connect event will be block by event loop system.\n // And timer callback will be fired, and abort() will be invoked before connection, then get \"socket hang up\" and code ECONNRESET.\n // At this time, if we have a large number of request, nodejs will hang up some socket on background. and the number will up and up.\n // And then these socket which be hang up will devouring CPU little by little.\n // ClientRequest.setTimeout will be fired on the specify milliseconds, and can make sure that abort() will be fired after connect.\n req.setTimeout(timeout, function handleRequestTimeout() {\n if (isDone) return;\n let timeoutErrorMessage = config.timeout ? 'timeout of ' + config.timeout + 'ms exceeded' : 'timeout exceeded';\n const transitional = config.transitional || transitionalDefaults;\n if (config.timeoutErrorMessage) {\n timeoutErrorMessage = config.timeoutErrorMessage;\n }\n reject(new AxiosError(\n timeoutErrorMessage,\n transitional.clarifyTimeoutError ? AxiosError.ETIMEDOUT : AxiosError.ECONNABORTED,\n config,\n req\n ));\n abort();\n });\n }\n\n\n // Send the request\n if (utils$1.isStream(data)) {\n let ended = false;\n let errored = false;\n\n data.on('end', () => {\n ended = true;\n });\n\n data.once('error', err => {\n errored = true;\n req.destroy(err);\n });\n\n data.on('close', () => {\n if (!ended && !errored) {\n abort(new CanceledError('Request stream has been aborted', config, req));\n }\n });\n\n data.pipe(req);\n } else {\n req.end(data);\n }\n });\n};\n\nconst cookies = platform.hasStandardBrowserEnv ?\n\n // Standard browser envs support document.cookie\n {\n write(name, value, expires, path, domain, secure) {\n const cookie = [name + '=' + encodeURIComponent(value)];\n\n utils$1.isNumber(expires) && cookie.push('expires=' + new Date(expires).toGMTString());\n\n utils$1.isString(path) && cookie.push('path=' + path);\n\n utils$1.isString(domain) && cookie.push('domain=' + domain);\n\n secure === true && cookie.push('secure');\n\n document.cookie = cookie.join('; ');\n },\n\n read(name) {\n const match = document.cookie.match(new RegExp('(^|;\\\\s*)(' + name + ')=([^;]*)'));\n return (match ? decodeURIComponent(match[3]) : null);\n },\n\n remove(name) {\n this.write(name, '', Date.now() - 86400000);\n }\n }\n\n :\n\n // Non-standard browser env (web workers, react-native) lack needed support.\n {\n write() {},\n read() {\n return null;\n },\n remove() {}\n };\n\nconst isURLSameOrigin = platform.hasStandardBrowserEnv ?\n\n// Standard browser envs have full support of the APIs needed to test\n// whether the request URL is of the same origin as current location.\n (function standardBrowserEnv() {\n const msie = /(msie|trident)/i.test(navigator.userAgent);\n const urlParsingNode = document.createElement('a');\n let originURL;\n\n /**\n * Parse a URL to discover its components\n *\n * @param {String} url The URL to be parsed\n * @returns {Object}\n */\n function resolveURL(url) {\n let href = url;\n\n if (msie) {\n // IE needs attribute set twice to normalize properties\n urlParsingNode.setAttribute('href', href);\n href = urlParsingNode.href;\n }\n\n urlParsingNode.setAttribute('href', href);\n\n // urlParsingNode provides the UrlUtils interface - http://url.spec.whatwg.org/#urlutils\n return {\n href: urlParsingNode.href,\n protocol: urlParsingNode.protocol ? urlParsingNode.protocol.replace(/:$/, '') : '',\n host: urlParsingNode.host,\n search: urlParsingNode.search ? urlParsingNode.search.replace(/^\\?/, '') : '',\n hash: urlParsingNode.hash ? urlParsingNode.hash.replace(/^#/, '') : '',\n hostname: urlParsingNode.hostname,\n port: urlParsingNode.port,\n pathname: (urlParsingNode.pathname.charAt(0) === '/') ?\n urlParsingNode.pathname :\n '/' + urlParsingNode.pathname\n };\n }\n\n originURL = resolveURL(window.location.href);\n\n /**\n * Determine if a URL shares the same origin as the current location\n *\n * @param {String} requestURL The URL to test\n * @returns {boolean} True if URL shares the same origin, otherwise false\n */\n return function isURLSameOrigin(requestURL) {\n const parsed = (utils$1.isString(requestURL)) ? resolveURL(requestURL) : requestURL;\n return (parsed.protocol === originURL.protocol &&\n parsed.host === originURL.host);\n };\n })() :\n\n // Non standard browser envs (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return function isURLSameOrigin() {\n return true;\n };\n })();\n\nfunction progressEventReducer(listener, isDownloadStream) {\n let bytesNotified = 0;\n const _speedometer = speedometer(50, 250);\n\n return e => {\n const loaded = e.loaded;\n const total = e.lengthComputable ? e.total : undefined;\n const progressBytes = loaded - bytesNotified;\n const rate = _speedometer(progressBytes);\n const inRange = loaded <= total;\n\n bytesNotified = loaded;\n\n const data = {\n loaded,\n total,\n progress: total ? (loaded / total) : undefined,\n bytes: progressBytes,\n rate: rate ? rate : undefined,\n estimated: rate && total && inRange ? (total - loaded) / rate : undefined,\n event: e\n };\n\n data[isDownloadStream ? 'download' : 'upload'] = true;\n\n listener(data);\n };\n}\n\nconst isXHRAdapterSupported = typeof XMLHttpRequest !== 'undefined';\n\nconst xhrAdapter = isXHRAdapterSupported && function (config) {\n return new Promise(function dispatchXhrRequest(resolve, reject) {\n let requestData = config.data;\n const requestHeaders = AxiosHeaders$1.from(config.headers).normalize();\n let {responseType, withXSRFToken} = config;\n let onCanceled;\n function done() {\n if (config.cancelToken) {\n config.cancelToken.unsubscribe(onCanceled);\n }\n\n if (config.signal) {\n config.signal.removeEventListener('abort', onCanceled);\n }\n }\n\n let contentType;\n\n if (utils$1.isFormData(requestData)) {\n if (platform.hasStandardBrowserEnv || platform.hasStandardBrowserWebWorkerEnv) {\n requestHeaders.setContentType(false); // Let the browser set it\n } else if ((contentType = requestHeaders.getContentType()) !== false) {\n // fix semicolon duplication issue for ReactNative FormData implementation\n const [type, ...tokens] = contentType ? contentType.split(';').map(token => token.trim()).filter(Boolean) : [];\n requestHeaders.setContentType([type || 'multipart/form-data', ...tokens].join('; '));\n }\n }\n\n let request = new XMLHttpRequest();\n\n // HTTP basic authentication\n if (config.auth) {\n const username = config.auth.username || '';\n const password = config.auth.password ? unescape(encodeURIComponent(config.auth.password)) : '';\n requestHeaders.set('Authorization', 'Basic ' + btoa(username + ':' + password));\n }\n\n const fullPath = buildFullPath(config.baseURL, config.url);\n\n request.open(config.method.toUpperCase(), buildURL(fullPath, config.params, config.paramsSerializer), true);\n\n // Set the request timeout in MS\n request.timeout = config.timeout;\n\n function onloadend() {\n if (!request) {\n return;\n }\n // Prepare the response\n const responseHeaders = AxiosHeaders$1.from(\n 'getAllResponseHeaders' in request && request.getAllResponseHeaders()\n );\n const responseData = !responseType || responseType === 'text' || responseType === 'json' ?\n request.responseText : request.response;\n const response = {\n data: responseData,\n status: request.status,\n statusText: request.statusText,\n headers: responseHeaders,\n config,\n request\n };\n\n settle(function _resolve(value) {\n resolve(value);\n done();\n }, function _reject(err) {\n reject(err);\n done();\n }, response);\n\n // Clean up request\n request = null;\n }\n\n if ('onloadend' in request) {\n // Use onloadend if available\n request.onloadend = onloadend;\n } else {\n // Listen for ready state to emulate onloadend\n request.onreadystatechange = function handleLoad() {\n if (!request || request.readyState !== 4) {\n return;\n }\n\n // The request errored out and we didn't get a response, this will be\n // handled by onerror instead\n // With one exception: request that using file: protocol, most browsers\n // will return status as 0 even though it's a successful request\n if (request.status === 0 && !(request.responseURL && request.responseURL.indexOf('file:') === 0)) {\n return;\n }\n // readystate handler is calling before onerror or ontimeout handlers,\n // so we should call onloadend on the next 'tick'\n setTimeout(onloadend);\n };\n }\n\n // Handle browser request cancellation (as opposed to a manual cancellation)\n request.onabort = function handleAbort() {\n if (!request) {\n return;\n }\n\n reject(new AxiosError('Request aborted', AxiosError.ECONNABORTED, config, request));\n\n // Clean up request\n request = null;\n };\n\n // Handle low level network errors\n request.onerror = function handleError() {\n // Real errors are hidden from us by the browser\n // onerror should only fire if it's a network error\n reject(new AxiosError('Network Error', AxiosError.ERR_NETWORK, config, request));\n\n // Clean up request\n request = null;\n };\n\n // Handle timeout\n request.ontimeout = function handleTimeout() {\n let timeoutErrorMessage = config.timeout ? 'timeout of ' + config.timeout + 'ms exceeded' : 'timeout exceeded';\n const transitional = config.transitional || transitionalDefaults;\n if (config.timeoutErrorMessage) {\n timeoutErrorMessage = config.timeoutErrorMessage;\n }\n reject(new AxiosError(\n timeoutErrorMessage,\n transitional.clarifyTimeoutError ? AxiosError.ETIMEDOUT : AxiosError.ECONNABORTED,\n config,\n request));\n\n // Clean up request\n request = null;\n };\n\n // Add xsrf header\n // This is only done if running in a standard browser environment.\n // Specifically not if we're in a web worker, or react-native.\n if(platform.hasStandardBrowserEnv) {\n withXSRFToken && utils$1.isFunction(withXSRFToken) && (withXSRFToken = withXSRFToken(config));\n\n if (withXSRFToken || (withXSRFToken !== false && isURLSameOrigin(fullPath))) {\n // Add xsrf header\n const xsrfValue = config.xsrfHeaderName && config.xsrfCookieName && cookies.read(config.xsrfCookieName);\n\n if (xsrfValue) {\n requestHeaders.set(config.xsrfHeaderName, xsrfValue);\n }\n }\n }\n\n // Remove Content-Type if data is undefined\n requestData === undefined && requestHeaders.setContentType(null);\n\n // Add headers to the request\n if ('setRequestHeader' in request) {\n utils$1.forEach(requestHeaders.toJSON(), function setRequestHeader(val, key) {\n request.setRequestHeader(key, val);\n });\n }\n\n // Add withCredentials to request if needed\n if (!utils$1.isUndefined(config.withCredentials)) {\n request.withCredentials = !!config.withCredentials;\n }\n\n // Add responseType to request if needed\n if (responseType && responseType !== 'json') {\n request.responseType = config.responseType;\n }\n\n // Handle progress if needed\n if (typeof config.onDownloadProgress === 'function') {\n request.addEventListener('progress', progressEventReducer(config.onDownloadProgress, true));\n }\n\n // Not all browsers support upload events\n if (typeof config.onUploadProgress === 'function' && request.upload) {\n request.upload.addEventListener('progress', progressEventReducer(config.onUploadProgress));\n }\n\n if (config.cancelToken || config.signal) {\n // Handle cancellation\n // eslint-disable-next-line func-names\n onCanceled = cancel => {\n if (!request) {\n return;\n }\n reject(!cancel || cancel.type ? new CanceledError(null, config, request) : cancel);\n request.abort();\n request = null;\n };\n\n config.cancelToken && config.cancelToken.subscribe(onCanceled);\n if (config.signal) {\n config.signal.aborted ? onCanceled() : config.signal.addEventListener('abort', onCanceled);\n }\n }\n\n const protocol = parseProtocol(fullPath);\n\n if (protocol && platform.protocols.indexOf(protocol) === -1) {\n reject(new AxiosError('Unsupported protocol ' + protocol + ':', AxiosError.ERR_BAD_REQUEST, config));\n return;\n }\n\n\n // Send the request\n request.send(requestData || null);\n });\n};\n\nconst knownAdapters = {\n http: httpAdapter,\n xhr: xhrAdapter\n};\n\nutils$1.forEach(knownAdapters, (fn, value) => {\n if (fn) {\n try {\n Object.defineProperty(fn, 'name', {value});\n } catch (e) {\n // eslint-disable-next-line no-empty\n }\n Object.defineProperty(fn, 'adapterName', {value});\n }\n});\n\nconst renderReason = (reason) => `- ${reason}`;\n\nconst isResolvedHandle = (adapter) => utils$1.isFunction(adapter) || adapter === null || adapter === false;\n\nconst adapters = {\n getAdapter: (adapters) => {\n adapters = utils$1.isArray(adapters) ? adapters : [adapters];\n\n const {length} = adapters;\n let nameOrAdapter;\n let adapter;\n\n const rejectedReasons = {};\n\n for (let i = 0; i < length; i++) {\n nameOrAdapter = adapters[i];\n let id;\n\n adapter = nameOrAdapter;\n\n if (!isResolvedHandle(nameOrAdapter)) {\n adapter = knownAdapters[(id = String(nameOrAdapter)).toLowerCase()];\n\n if (adapter === undefined) {\n throw new AxiosError(`Unknown adapter '${id}'`);\n }\n }\n\n if (adapter) {\n break;\n }\n\n rejectedReasons[id || '#' + i] = adapter;\n }\n\n if (!adapter) {\n\n const reasons = Object.entries(rejectedReasons)\n .map(([id, state]) => `adapter ${id} ` +\n (state === false ? 'is not supported by the environment' : 'is not available in the build')\n );\n\n let s = length ?\n (reasons.length > 1 ? 'since :\\n' + reasons.map(renderReason).join('\\n') : ' ' + renderReason(reasons[0])) :\n 'as no adapter specified';\n\n throw new AxiosError(\n `There is no suitable adapter to dispatch the request ` + s,\n 'ERR_NOT_SUPPORT'\n );\n }\n\n return adapter;\n },\n adapters: knownAdapters\n};\n\n/**\n * Throws a `CanceledError` if cancellation has been requested.\n *\n * @param {Object} config The config that is to be used for the request\n *\n * @returns {void}\n */\nfunction throwIfCancellationRequested(config) {\n if (config.cancelToken) {\n config.cancelToken.throwIfRequested();\n }\n\n if (config.signal && config.signal.aborted) {\n throw new CanceledError(null, config);\n }\n}\n\n/**\n * Dispatch a request to the server using the configured adapter.\n *\n * @param {object} config The config that is to be used for the request\n *\n * @returns {Promise} The Promise to be fulfilled\n */\nfunction dispatchRequest(config) {\n throwIfCancellationRequested(config);\n\n config.headers = AxiosHeaders$1.from(config.headers);\n\n // Transform request data\n config.data = transformData.call(\n config,\n config.transformRequest\n );\n\n if (['post', 'put', 'patch'].indexOf(config.method) !== -1) {\n config.headers.setContentType('application/x-www-form-urlencoded', false);\n }\n\n const adapter = adapters.getAdapter(config.adapter || defaults$1.adapter);\n\n return adapter(config).then(function onAdapterResolution(response) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n response.data = transformData.call(\n config,\n config.transformResponse,\n response\n );\n\n response.headers = AxiosHeaders$1.from(response.headers);\n\n return response;\n }, function onAdapterRejection(reason) {\n if (!isCancel(reason)) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n if (reason && reason.response) {\n reason.response.data = transformData.call(\n config,\n config.transformResponse,\n reason.response\n );\n reason.response.headers = AxiosHeaders$1.from(reason.response.headers);\n }\n }\n\n return Promise.reject(reason);\n });\n}\n\nconst headersToObject = (thing) => thing instanceof AxiosHeaders$1 ? thing.toJSON() : thing;\n\n/**\n * Config-specific merge-function which creates a new config-object\n * by merging two configuration objects together.\n *\n * @param {Object} config1\n * @param {Object} config2\n *\n * @returns {Object} New object resulting from merging config2 to config1\n */\nfunction mergeConfig(config1, config2) {\n // eslint-disable-next-line no-param-reassign\n config2 = config2 || {};\n const config = {};\n\n function getMergedValue(target, source, caseless) {\n if (utils$1.isPlainObject(target) && utils$1.isPlainObject(source)) {\n return utils$1.merge.call({caseless}, target, source);\n } else if (utils$1.isPlainObject(source)) {\n return utils$1.merge({}, source);\n } else if (utils$1.isArray(source)) {\n return source.slice();\n }\n return source;\n }\n\n // eslint-disable-next-line consistent-return\n function mergeDeepProperties(a, b, caseless) {\n if (!utils$1.isUndefined(b)) {\n return getMergedValue(a, b, caseless);\n } else if (!utils$1.isUndefined(a)) {\n return getMergedValue(undefined, a, caseless);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function valueFromConfig2(a, b) {\n if (!utils$1.isUndefined(b)) {\n return getMergedValue(undefined, b);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function defaultToConfig2(a, b) {\n if (!utils$1.isUndefined(b)) {\n return getMergedValue(undefined, b);\n } else if (!utils$1.isUndefined(a)) {\n return getMergedValue(undefined, a);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function mergeDirectKeys(a, b, prop) {\n if (prop in config2) {\n return getMergedValue(a, b);\n } else if (prop in config1) {\n return getMergedValue(undefined, a);\n }\n }\n\n const mergeMap = {\n url: valueFromConfig2,\n method: valueFromConfig2,\n data: valueFromConfig2,\n baseURL: defaultToConfig2,\n transformRequest: defaultToConfig2,\n transformResponse: defaultToConfig2,\n paramsSerializer: defaultToConfig2,\n timeout: defaultToConfig2,\n timeoutMessage: defaultToConfig2,\n withCredentials: defaultToConfig2,\n withXSRFToken: defaultToConfig2,\n adapter: defaultToConfig2,\n responseType: defaultToConfig2,\n xsrfCookieName: defaultToConfig2,\n xsrfHeaderName: defaultToConfig2,\n onUploadProgress: defaultToConfig2,\n onDownloadProgress: defaultToConfig2,\n decompress: defaultToConfig2,\n maxContentLength: defaultToConfig2,\n maxBodyLength: defaultToConfig2,\n beforeRedirect: defaultToConfig2,\n transport: defaultToConfig2,\n httpAgent: defaultToConfig2,\n httpsAgent: defaultToConfig2,\n cancelToken: defaultToConfig2,\n socketPath: defaultToConfig2,\n responseEncoding: defaultToConfig2,\n validateStatus: mergeDirectKeys,\n headers: (a, b) => mergeDeepProperties(headersToObject(a), headersToObject(b), true)\n };\n\n utils$1.forEach(Object.keys(Object.assign({}, config1, config2)), function computeConfigValue(prop) {\n const merge = mergeMap[prop] || mergeDeepProperties;\n const configValue = merge(config1[prop], config2[prop], prop);\n (utils$1.isUndefined(configValue) && merge !== mergeDirectKeys) || (config[prop] = configValue);\n });\n\n return config;\n}\n\nconst validators$1 = {};\n\n// eslint-disable-next-line func-names\n['object', 'boolean', 'number', 'function', 'string', 'symbol'].forEach((type, i) => {\n validators$1[type] = function validator(thing) {\n return typeof thing === type || 'a' + (i < 1 ? 'n ' : ' ') + type;\n };\n});\n\nconst deprecatedWarnings = {};\n\n/**\n * Transitional option validator\n *\n * @param {function|boolean?} validator - set to false if the transitional option has been removed\n * @param {string?} version - deprecated version / removed since version\n * @param {string?} message - some message with additional info\n *\n * @returns {function}\n */\nvalidators$1.transitional = function transitional(validator, version, message) {\n function formatMessage(opt, desc) {\n return '[Axios v' + VERSION + '] Transitional option \\'' + opt + '\\'' + desc + (message ? '. ' + message : '');\n }\n\n // eslint-disable-next-line func-names\n return (value, opt, opts) => {\n if (validator === false) {\n throw new AxiosError(\n formatMessage(opt, ' has been removed' + (version ? ' in ' + version : '')),\n AxiosError.ERR_DEPRECATED\n );\n }\n\n if (version && !deprecatedWarnings[opt]) {\n deprecatedWarnings[opt] = true;\n // eslint-disable-next-line no-console\n console.warn(\n formatMessage(\n opt,\n ' has been deprecated since v' + version + ' and will be removed in the near future'\n )\n );\n }\n\n return validator ? validator(value, opt, opts) : true;\n };\n};\n\n/**\n * Assert object's properties type\n *\n * @param {object} options\n * @param {object} schema\n * @param {boolean?} allowUnknown\n *\n * @returns {object}\n */\n\nfunction assertOptions(options, schema, allowUnknown) {\n if (typeof options !== 'object') {\n throw new AxiosError('options must be an object', AxiosError.ERR_BAD_OPTION_VALUE);\n }\n const keys = Object.keys(options);\n let i = keys.length;\n while (i-- > 0) {\n const opt = keys[i];\n const validator = schema[opt];\n if (validator) {\n const value = options[opt];\n const result = value === undefined || validator(value, opt, options);\n if (result !== true) {\n throw new AxiosError('option ' + opt + ' must be ' + result, AxiosError.ERR_BAD_OPTION_VALUE);\n }\n continue;\n }\n if (allowUnknown !== true) {\n throw new AxiosError('Unknown option ' + opt, AxiosError.ERR_BAD_OPTION);\n }\n }\n}\n\nconst validator = {\n assertOptions,\n validators: validators$1\n};\n\nconst validators = validator.validators;\n\n/**\n * Create a new instance of Axios\n *\n * @param {Object} instanceConfig The default config for the instance\n *\n * @return {Axios} A new instance of Axios\n */\nclass Axios {\n constructor(instanceConfig) {\n this.defaults = instanceConfig;\n this.interceptors = {\n request: new InterceptorManager$1(),\n response: new InterceptorManager$1()\n };\n }\n\n /**\n * Dispatch a request\n *\n * @param {String|Object} configOrUrl The config specific for this request (merged with this.defaults)\n * @param {?Object} config\n *\n * @returns {Promise} The Promise to be fulfilled\n */\n request(configOrUrl, config) {\n /*eslint no-param-reassign:0*/\n // Allow for axios('example/url'[, config]) a la fetch API\n if (typeof configOrUrl === 'string') {\n config = config || {};\n config.url = configOrUrl;\n } else {\n config = configOrUrl || {};\n }\n\n config = mergeConfig(this.defaults, config);\n\n const {transitional, paramsSerializer, headers} = config;\n\n if (transitional !== undefined) {\n validator.assertOptions(transitional, {\n silentJSONParsing: validators.transitional(validators.boolean),\n forcedJSONParsing: validators.transitional(validators.boolean),\n clarifyTimeoutError: validators.transitional(validators.boolean)\n }, false);\n }\n\n if (paramsSerializer != null) {\n if (utils$1.isFunction(paramsSerializer)) {\n config.paramsSerializer = {\n serialize: paramsSerializer\n };\n } else {\n validator.assertOptions(paramsSerializer, {\n encode: validators.function,\n serialize: validators.function\n }, true);\n }\n }\n\n // Set config.method\n config.method = (config.method || this.defaults.method || 'get').toLowerCase();\n\n // Flatten headers\n let contextHeaders = headers && utils$1.merge(\n headers.common,\n headers[config.method]\n );\n\n headers && utils$1.forEach(\n ['delete', 'get', 'head', 'post', 'put', 'patch', 'common'],\n (method) => {\n delete headers[method];\n }\n );\n\n config.headers = AxiosHeaders$1.concat(contextHeaders, headers);\n\n // filter out skipped interceptors\n const requestInterceptorChain = [];\n let synchronousRequestInterceptors = true;\n this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) {\n if (typeof interceptor.runWhen === 'function' && interceptor.runWhen(config) === false) {\n return;\n }\n\n synchronousRequestInterceptors = synchronousRequestInterceptors && interceptor.synchronous;\n\n requestInterceptorChain.unshift(interceptor.fulfilled, interceptor.rejected);\n });\n\n const responseInterceptorChain = [];\n this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) {\n responseInterceptorChain.push(interceptor.fulfilled, interceptor.rejected);\n });\n\n let promise;\n let i = 0;\n let len;\n\n if (!synchronousRequestInterceptors) {\n const chain = [dispatchRequest.bind(this), undefined];\n chain.unshift.apply(chain, requestInterceptorChain);\n chain.push.apply(chain, responseInterceptorChain);\n len = chain.length;\n\n promise = Promise.resolve(config);\n\n while (i < len) {\n promise = promise.then(chain[i++], chain[i++]);\n }\n\n return promise;\n }\n\n len = requestInterceptorChain.length;\n\n let newConfig = config;\n\n i = 0;\n\n while (i < len) {\n const onFulfilled = requestInterceptorChain[i++];\n const onRejected = requestInterceptorChain[i++];\n try {\n newConfig = onFulfilled(newConfig);\n } catch (error) {\n onRejected.call(this, error);\n break;\n }\n }\n\n try {\n promise = dispatchRequest.call(this, newConfig);\n } catch (error) {\n return Promise.reject(error);\n }\n\n i = 0;\n len = responseInterceptorChain.length;\n\n while (i < len) {\n promise = promise.then(responseInterceptorChain[i++], responseInterceptorChain[i++]);\n }\n\n return promise;\n }\n\n getUri(config) {\n config = mergeConfig(this.defaults, config);\n const fullPath = buildFullPath(config.baseURL, config.url);\n return buildURL(fullPath, config.params, config.paramsSerializer);\n }\n}\n\n// Provide aliases for supported request methods\nutils$1.forEach(['delete', 'get', 'head', 'options'], function forEachMethodNoData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function(url, config) {\n return this.request(mergeConfig(config || {}, {\n method,\n url,\n data: (config || {}).data\n }));\n };\n});\n\nutils$1.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n /*eslint func-names:0*/\n\n function generateHTTPMethod(isForm) {\n return function httpMethod(url, data, config) {\n return this.request(mergeConfig(config || {}, {\n method,\n headers: isForm ? {\n 'Content-Type': 'multipart/form-data'\n } : {},\n url,\n data\n }));\n };\n }\n\n Axios.prototype[method] = generateHTTPMethod();\n\n Axios.prototype[method + 'Form'] = generateHTTPMethod(true);\n});\n\nconst Axios$1 = Axios;\n\n/**\n * A `CancelToken` is an object that can be used to request cancellation of an operation.\n *\n * @param {Function} executor The executor function.\n *\n * @returns {CancelToken}\n */\nclass CancelToken {\n constructor(executor) {\n if (typeof executor !== 'function') {\n throw new TypeError('executor must be a function.');\n }\n\n let resolvePromise;\n\n this.promise = new Promise(function promiseExecutor(resolve) {\n resolvePromise = resolve;\n });\n\n const token = this;\n\n // eslint-disable-next-line func-names\n this.promise.then(cancel => {\n if (!token._listeners) return;\n\n let i = token._listeners.length;\n\n while (i-- > 0) {\n token._listeners[i](cancel);\n }\n token._listeners = null;\n });\n\n // eslint-disable-next-line func-names\n this.promise.then = onfulfilled => {\n let _resolve;\n // eslint-disable-next-line func-names\n const promise = new Promise(resolve => {\n token.subscribe(resolve);\n _resolve = resolve;\n }).then(onfulfilled);\n\n promise.cancel = function reject() {\n token.unsubscribe(_resolve);\n };\n\n return promise;\n };\n\n executor(function cancel(message, config, request) {\n if (token.reason) {\n // Cancellation has already been requested\n return;\n }\n\n token.reason = new CanceledError(message, config, request);\n resolvePromise(token.reason);\n });\n }\n\n /**\n * Throws a `CanceledError` if cancellation has been requested.\n */\n throwIfRequested() {\n if (this.reason) {\n throw this.reason;\n }\n }\n\n /**\n * Subscribe to the cancel signal\n */\n\n subscribe(listener) {\n if (this.reason) {\n listener(this.reason);\n return;\n }\n\n if (this._listeners) {\n this._listeners.push(listener);\n } else {\n this._listeners = [listener];\n }\n }\n\n /**\n * Unsubscribe from the cancel signal\n */\n\n unsubscribe(listener) {\n if (!this._listeners) {\n return;\n }\n const index = this._listeners.indexOf(listener);\n if (index !== -1) {\n this._listeners.splice(index, 1);\n }\n }\n\n /**\n * Returns an object that contains a new `CancelToken` and a function that, when called,\n * cancels the `CancelToken`.\n */\n static source() {\n let cancel;\n const token = new CancelToken(function executor(c) {\n cancel = c;\n });\n return {\n token,\n cancel\n };\n }\n}\n\nconst CancelToken$1 = CancelToken;\n\n/**\n * Syntactic sugar for invoking a function and expanding an array for arguments.\n *\n * Common use case would be to use `Function.prototype.apply`.\n *\n * ```js\n * function f(x, y, z) {}\n * var args = [1, 2, 3];\n * f.apply(null, args);\n * ```\n *\n * With `spread` this example can be re-written.\n *\n * ```js\n * spread(function(x, y, z) {})([1, 2, 3]);\n * ```\n *\n * @param {Function} callback\n *\n * @returns {Function}\n */\nfunction spread(callback) {\n return function wrap(arr) {\n return callback.apply(null, arr);\n };\n}\n\n/**\n * Determines whether the payload is an error thrown by Axios\n *\n * @param {*} payload The value to test\n *\n * @returns {boolean} True if the payload is an error thrown by Axios, otherwise false\n */\nfunction isAxiosError(payload) {\n return utils$1.isObject(payload) && (payload.isAxiosError === true);\n}\n\nconst HttpStatusCode = {\n Continue: 100,\n SwitchingProtocols: 101,\n Processing: 102,\n EarlyHints: 103,\n Ok: 200,\n Created: 201,\n Accepted: 202,\n NonAuthoritativeInformation: 203,\n NoContent: 204,\n ResetContent: 205,\n PartialContent: 206,\n MultiStatus: 207,\n AlreadyReported: 208,\n ImUsed: 226,\n MultipleChoices: 300,\n MovedPermanently: 301,\n Found: 302,\n SeeOther: 303,\n NotModified: 304,\n UseProxy: 305,\n Unused: 306,\n TemporaryRedirect: 307,\n PermanentRedirect: 308,\n BadRequest: 400,\n Unauthorized: 401,\n PaymentRequired: 402,\n Forbidden: 403,\n NotFound: 404,\n MethodNotAllowed: 405,\n NotAcceptable: 406,\n ProxyAuthenticationRequired: 407,\n RequestTimeout: 408,\n Conflict: 409,\n Gone: 410,\n LengthRequired: 411,\n PreconditionFailed: 412,\n PayloadTooLarge: 413,\n UriTooLong: 414,\n UnsupportedMediaType: 415,\n RangeNotSatisfiable: 416,\n ExpectationFailed: 417,\n ImATeapot: 418,\n MisdirectedRequest: 421,\n UnprocessableEntity: 422,\n Locked: 423,\n FailedDependency: 424,\n TooEarly: 425,\n UpgradeRequired: 426,\n PreconditionRequired: 428,\n TooManyRequests: 429,\n RequestHeaderFieldsTooLarge: 431,\n UnavailableForLegalReasons: 451,\n InternalServerError: 500,\n NotImplemented: 501,\n BadGateway: 502,\n ServiceUnavailable: 503,\n GatewayTimeout: 504,\n HttpVersionNotSupported: 505,\n VariantAlsoNegotiates: 506,\n InsufficientStorage: 507,\n LoopDetected: 508,\n NotExtended: 510,\n NetworkAuthenticationRequired: 511,\n};\n\nObject.entries(HttpStatusCode).forEach(([key, value]) => {\n HttpStatusCode[value] = key;\n});\n\nconst HttpStatusCode$1 = HttpStatusCode;\n\n/**\n * Create an instance of Axios\n *\n * @param {Object} defaultConfig The default config for the instance\n *\n * @returns {Axios} A new instance of Axios\n */\nfunction createInstance(defaultConfig) {\n const context = new Axios$1(defaultConfig);\n const instance = bind(Axios$1.prototype.request, context);\n\n // Copy axios.prototype to instance\n utils$1.extend(instance, Axios$1.prototype, context, {allOwnKeys: true});\n\n // Copy context to instance\n utils$1.extend(instance, context, null, {allOwnKeys: true});\n\n // Factory for creating new instances\n instance.create = function create(instanceConfig) {\n return createInstance(mergeConfig(defaultConfig, instanceConfig));\n };\n\n return instance;\n}\n\n// Create the default instance to be exported\nconst axios = createInstance(defaults$1);\n\n// Expose Axios class to allow class inheritance\naxios.Axios = Axios$1;\n\n// Expose Cancel & CancelToken\naxios.CanceledError = CanceledError;\naxios.CancelToken = CancelToken$1;\naxios.isCancel = isCancel;\naxios.VERSION = VERSION;\naxios.toFormData = toFormData;\n\n// Expose AxiosError class\naxios.AxiosError = AxiosError;\n\n// alias for CanceledError for backward compatibility\naxios.Cancel = axios.CanceledError;\n\n// Expose all/spread\naxios.all = function all(promises) {\n return Promise.all(promises);\n};\n\naxios.spread = spread;\n\n// Expose isAxiosError\naxios.isAxiosError = isAxiosError;\n\n// Expose mergeConfig\naxios.mergeConfig = mergeConfig;\n\naxios.AxiosHeaders = AxiosHeaders$1;\n\naxios.formToJSON = thing => formDataToJSON(utils$1.isHTMLForm(thing) ? new FormData(thing) : thing);\n\naxios.getAdapter = adapters.getAdapter;\n\naxios.HttpStatusCode = HttpStatusCode$1;\n\naxios.default = axios;\n\nmodule.exports = axios;\n//# sourceMappingURL=axios.cjs.map\n","\"use strict\";\n/* tslint:disable */\n/* eslint-disable */\n/**\n * IdentityNow Beta API\n * Use these APIs to interact with the IdentityNow platform to achieve repeatable, automated processes with greater scalability. These APIs are in beta and are subject to change. We encourage you to join the SailPoint Developer Community forum at https://developer.sailpoint.com/discuss to connect with other developers using our APIs.\n *\n * The version of the OpenAPI document: 3.1.0-beta\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.RequiredError = exports.BaseAPI = exports.COLLECTION_FORMATS = exports.BASE_PATH = void 0;\n// Some imports not used depending on template conditions\n// @ts-ignore\nvar axios_1 = __importDefault(require(\"axios\"));\nexports.BASE_PATH = \"https://sailpoint.api.identitynow.com/beta\".replace(/\\/+$/, \"\");\n/**\n *\n * @export\n */\nexports.COLLECTION_FORMATS = {\n csv: \",\",\n ssv: \" \",\n tsv: \"\\t\",\n pipes: \"|\",\n};\n/**\n *\n * @export\n * @class BaseAPI\n */\nvar BaseAPI = /** @class */ (function () {\n function BaseAPI(configuration, basePath, axios) {\n if (basePath === void 0) { basePath = exports.BASE_PATH; }\n if (axios === void 0) { axios = axios_1.default; }\n this.basePath = basePath;\n this.axios = axios;\n if (configuration) {\n this.configuration = configuration;\n this.basePath = configuration.basePathBeta || this.basePath;\n }\n }\n return BaseAPI;\n}());\nexports.BaseAPI = BaseAPI;\n;\n/**\n *\n * @export\n * @class RequiredError\n * @extends {Error}\n */\nvar RequiredError = /** @class */ (function (_super) {\n __extends(RequiredError, _super);\n function RequiredError(field, msg) {\n var _this = _super.call(this, msg) || this;\n _this.field = field;\n _this.name = \"RequiredError\";\n return _this;\n }\n return RequiredError;\n}(Error));\nexports.RequiredError = RequiredError;\n//# sourceMappingURL=base.js.map","function _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n}\nmodule.exports = _interopRequireDefault, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _typeof(o) {\n \"@babel/helpers - typeof\";\n\n return (module.exports = _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) {\n return typeof o;\n } : function (o) {\n return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o;\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports), _typeof(o);\n}\nmodule.exports = _typeof, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var _typeof = require(\"./typeof.js\")[\"default\"];\nfunction _regeneratorRuntime() {\n \"use strict\"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */\n module.exports = _regeneratorRuntime = function _regeneratorRuntime() {\n return e;\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n var t,\n e = {},\n r = Object.prototype,\n n = r.hasOwnProperty,\n o = Object.defineProperty || function (t, e, r) {\n t[e] = r.value;\n },\n i = \"function\" == typeof Symbol ? Symbol : {},\n a = i.iterator || \"@@iterator\",\n c = i.asyncIterator || \"@@asyncIterator\",\n u = i.toStringTag || \"@@toStringTag\";\n function define(t, e, r) {\n return Object.defineProperty(t, e, {\n value: r,\n enumerable: !0,\n configurable: !0,\n writable: !0\n }), t[e];\n }\n try {\n define({}, \"\");\n } catch (t) {\n define = function define(t, e, r) {\n return t[e] = r;\n };\n }\n function wrap(t, e, r, n) {\n var i = e && e.prototype instanceof Generator ? e : Generator,\n a = Object.create(i.prototype),\n c = new Context(n || []);\n return o(a, \"_invoke\", {\n value: makeInvokeMethod(t, r, c)\n }), a;\n }\n function tryCatch(t, e, r) {\n try {\n return {\n type: \"normal\",\n arg: t.call(e, r)\n };\n } catch (t) {\n return {\n type: \"throw\",\n arg: t\n };\n }\n }\n e.wrap = wrap;\n var h = \"suspendedStart\",\n l = \"suspendedYield\",\n f = \"executing\",\n s = \"completed\",\n y = {};\n function Generator() {}\n function GeneratorFunction() {}\n function GeneratorFunctionPrototype() {}\n var p = {};\n define(p, a, function () {\n return this;\n });\n var d = Object.getPrototypeOf,\n v = d && d(d(values([])));\n v && v !== r && n.call(v, a) && (p = v);\n var g = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(p);\n function defineIteratorMethods(t) {\n [\"next\", \"throw\", \"return\"].forEach(function (e) {\n define(t, e, function (t) {\n return this._invoke(e, t);\n });\n });\n }\n function AsyncIterator(t, e) {\n function invoke(r, o, i, a) {\n var c = tryCatch(t[r], t, o);\n if (\"throw\" !== c.type) {\n var u = c.arg,\n h = u.value;\n return h && \"object\" == _typeof(h) && n.call(h, \"__await\") ? e.resolve(h.__await).then(function (t) {\n invoke(\"next\", t, i, a);\n }, function (t) {\n invoke(\"throw\", t, i, a);\n }) : e.resolve(h).then(function (t) {\n u.value = t, i(u);\n }, function (t) {\n return invoke(\"throw\", t, i, a);\n });\n }\n a(c.arg);\n }\n var r;\n o(this, \"_invoke\", {\n value: function value(t, n) {\n function callInvokeWithMethodAndArg() {\n return new e(function (e, r) {\n invoke(t, n, e, r);\n });\n }\n return r = r ? r.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg();\n }\n });\n }\n function makeInvokeMethod(e, r, n) {\n var o = h;\n return function (i, a) {\n if (o === f) throw new Error(\"Generator is already running\");\n if (o === s) {\n if (\"throw\" === i) throw a;\n return {\n value: t,\n done: !0\n };\n }\n for (n.method = i, n.arg = a;;) {\n var c = n.delegate;\n if (c) {\n var u = maybeInvokeDelegate(c, n);\n if (u) {\n if (u === y) continue;\n return u;\n }\n }\n if (\"next\" === n.method) n.sent = n._sent = n.arg;else if (\"throw\" === n.method) {\n if (o === h) throw o = s, n.arg;\n n.dispatchException(n.arg);\n } else \"return\" === n.method && n.abrupt(\"return\", n.arg);\n o = f;\n var p = tryCatch(e, r, n);\n if (\"normal\" === p.type) {\n if (o = n.done ? s : l, p.arg === y) continue;\n return {\n value: p.arg,\n done: n.done\n };\n }\n \"throw\" === p.type && (o = s, n.method = \"throw\", n.arg = p.arg);\n }\n };\n }\n function maybeInvokeDelegate(e, r) {\n var n = r.method,\n o = e.iterator[n];\n if (o === t) return r.delegate = null, \"throw\" === n && e.iterator[\"return\"] && (r.method = \"return\", r.arg = t, maybeInvokeDelegate(e, r), \"throw\" === r.method) || \"return\" !== n && (r.method = \"throw\", r.arg = new TypeError(\"The iterator does not provide a '\" + n + \"' method\")), y;\n var i = tryCatch(o, e.iterator, r.arg);\n if (\"throw\" === i.type) return r.method = \"throw\", r.arg = i.arg, r.delegate = null, y;\n var a = i.arg;\n return a ? a.done ? (r[e.resultName] = a.value, r.next = e.nextLoc, \"return\" !== r.method && (r.method = \"next\", r.arg = t), r.delegate = null, y) : a : (r.method = \"throw\", r.arg = new TypeError(\"iterator result is not an object\"), r.delegate = null, y);\n }\n function pushTryEntry(t) {\n var e = {\n tryLoc: t[0]\n };\n 1 in t && (e.catchLoc = t[1]), 2 in t && (e.finallyLoc = t[2], e.afterLoc = t[3]), this.tryEntries.push(e);\n }\n function resetTryEntry(t) {\n var e = t.completion || {};\n e.type = \"normal\", delete e.arg, t.completion = e;\n }\n function Context(t) {\n this.tryEntries = [{\n tryLoc: \"root\"\n }], t.forEach(pushTryEntry, this), this.reset(!0);\n }\n function values(e) {\n if (e || \"\" === e) {\n var r = e[a];\n if (r) return r.call(e);\n if (\"function\" == typeof e.next) return e;\n if (!isNaN(e.length)) {\n var o = -1,\n i = function next() {\n for (; ++o < e.length;) if (n.call(e, o)) return next.value = e[o], next.done = !1, next;\n return next.value = t, next.done = !0, next;\n };\n return i.next = i;\n }\n }\n throw new TypeError(_typeof(e) + \" is not iterable\");\n }\n return GeneratorFunction.prototype = GeneratorFunctionPrototype, o(g, \"constructor\", {\n value: GeneratorFunctionPrototype,\n configurable: !0\n }), o(GeneratorFunctionPrototype, \"constructor\", {\n value: GeneratorFunction,\n configurable: !0\n }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, u, \"GeneratorFunction\"), e.isGeneratorFunction = function (t) {\n var e = \"function\" == typeof t && t.constructor;\n return !!e && (e === GeneratorFunction || \"GeneratorFunction\" === (e.displayName || e.name));\n }, e.mark = function (t) {\n return Object.setPrototypeOf ? Object.setPrototypeOf(t, GeneratorFunctionPrototype) : (t.__proto__ = GeneratorFunctionPrototype, define(t, u, \"GeneratorFunction\")), t.prototype = Object.create(g), t;\n }, e.awrap = function (t) {\n return {\n __await: t\n };\n }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, c, function () {\n return this;\n }), e.AsyncIterator = AsyncIterator, e.async = function (t, r, n, o, i) {\n void 0 === i && (i = Promise);\n var a = new AsyncIterator(wrap(t, r, n, o), i);\n return e.isGeneratorFunction(r) ? a : a.next().then(function (t) {\n return t.done ? t.value : a.next();\n });\n }, defineIteratorMethods(g), define(g, u, \"Generator\"), define(g, a, function () {\n return this;\n }), define(g, \"toString\", function () {\n return \"[object Generator]\";\n }), e.keys = function (t) {\n var e = Object(t),\n r = [];\n for (var n in e) r.push(n);\n return r.reverse(), function next() {\n for (; r.length;) {\n var t = r.pop();\n if (t in e) return next.value = t, next.done = !1, next;\n }\n return next.done = !0, next;\n };\n }, e.values = values, Context.prototype = {\n constructor: Context,\n reset: function reset(e) {\n if (this.prev = 0, this.next = 0, this.sent = this._sent = t, this.done = !1, this.delegate = null, this.method = \"next\", this.arg = t, this.tryEntries.forEach(resetTryEntry), !e) for (var r in this) \"t\" === r.charAt(0) && n.call(this, r) && !isNaN(+r.slice(1)) && (this[r] = t);\n },\n stop: function stop() {\n this.done = !0;\n var t = this.tryEntries[0].completion;\n if (\"throw\" === t.type) throw t.arg;\n return this.rval;\n },\n dispatchException: function dispatchException(e) {\n if (this.done) throw e;\n var r = this;\n function handle(n, o) {\n return a.type = \"throw\", a.arg = e, r.next = n, o && (r.method = \"next\", r.arg = t), !!o;\n }\n for (var o = this.tryEntries.length - 1; o >= 0; --o) {\n var i = this.tryEntries[o],\n a = i.completion;\n if (\"root\" === i.tryLoc) return handle(\"end\");\n if (i.tryLoc <= this.prev) {\n var c = n.call(i, \"catchLoc\"),\n u = n.call(i, \"finallyLoc\");\n if (c && u) {\n if (this.prev < i.catchLoc) return handle(i.catchLoc, !0);\n if (this.prev < i.finallyLoc) return handle(i.finallyLoc);\n } else if (c) {\n if (this.prev < i.catchLoc) return handle(i.catchLoc, !0);\n } else {\n if (!u) throw new Error(\"try statement without catch or finally\");\n if (this.prev < i.finallyLoc) return handle(i.finallyLoc);\n }\n }\n }\n },\n abrupt: function abrupt(t, e) {\n for (var r = this.tryEntries.length - 1; r >= 0; --r) {\n var o = this.tryEntries[r];\n if (o.tryLoc <= this.prev && n.call(o, \"finallyLoc\") && this.prev < o.finallyLoc) {\n var i = o;\n break;\n }\n }\n i && (\"break\" === t || \"continue\" === t) && i.tryLoc <= e && e <= i.finallyLoc && (i = null);\n var a = i ? i.completion : {};\n return a.type = t, a.arg = e, i ? (this.method = \"next\", this.next = i.finallyLoc, y) : this.complete(a);\n },\n complete: function complete(t, e) {\n if (\"throw\" === t.type) throw t.arg;\n return \"break\" === t.type || \"continue\" === t.type ? this.next = t.arg : \"return\" === t.type ? (this.rval = this.arg = t.arg, this.method = \"return\", this.next = \"end\") : \"normal\" === t.type && e && (this.next = e), y;\n },\n finish: function finish(t) {\n for (var e = this.tryEntries.length - 1; e >= 0; --e) {\n var r = this.tryEntries[e];\n if (r.finallyLoc === t) return this.complete(r.completion, r.afterLoc), resetTryEntry(r), y;\n }\n },\n \"catch\": function _catch(t) {\n for (var e = this.tryEntries.length - 1; e >= 0; --e) {\n var r = this.tryEntries[e];\n if (r.tryLoc === t) {\n var n = r.completion;\n if (\"throw\" === n.type) {\n var o = n.arg;\n resetTryEntry(r);\n }\n return o;\n }\n }\n throw new Error(\"illegal catch attempt\");\n },\n delegateYield: function delegateYield(e, r, n) {\n return this.delegate = {\n iterator: values(e),\n resultName: r,\n nextLoc: n\n }, \"next\" === this.method && (this.arg = t), y;\n }\n }, e;\n}\nmodule.exports = _regeneratorRuntime, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","// TODO(Babel 8): Remove this file.\n\nvar runtime = require(\"../helpers/regeneratorRuntime\")();\nmodule.exports = runtime;\n\n// Copied from https://github.com/facebook/regenerator/blob/main/packages/runtime/runtime.js#L736=\ntry {\n regeneratorRuntime = runtime;\n} catch (accidentalStrictMode) {\n if (typeof globalThis === \"object\") {\n globalThis.regeneratorRuntime = runtime;\n } else {\n Function(\"r\", \"regeneratorRuntime = r\")(runtime);\n }\n}\n","function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {\n try {\n var info = gen[key](arg);\n var value = info.value;\n } catch (error) {\n reject(error);\n return;\n }\n if (info.done) {\n resolve(value);\n } else {\n Promise.resolve(value).then(_next, _throw);\n }\n}\nfunction _asyncToGenerator(fn) {\n return function () {\n var self = this,\n args = arguments;\n return new Promise(function (resolve, reject) {\n var gen = fn.apply(self, args);\n function _next(value) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value);\n }\n function _throw(err) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err);\n }\n _next(undefined);\n });\n };\n}\nmodule.exports = _asyncToGenerator, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var _typeof = require(\"./typeof.js\")[\"default\"];\nfunction _toPrimitive(input, hint) {\n if (_typeof(input) !== \"object\" || input === null) return input;\n var prim = input[Symbol.toPrimitive];\n if (prim !== undefined) {\n var res = prim.call(input, hint || \"default\");\n if (_typeof(res) !== \"object\") return res;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (hint === \"string\" ? String : Number)(input);\n}\nmodule.exports = _toPrimitive, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var _typeof = require(\"./typeof.js\")[\"default\"];\nvar toPrimitive = require(\"./toPrimitive.js\");\nfunction _toPropertyKey(arg) {\n var key = toPrimitive(arg, \"string\");\n return _typeof(key) === \"symbol\" ? key : String(key);\n}\nmodule.exports = _toPropertyKey, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var toPropertyKey = require(\"./toPropertyKey.js\");\nfunction _defineProperty(obj, key, value) {\n key = toPropertyKey(key);\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n return obj;\n}\nmodule.exports = _defineProperty, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","'use strict';\n\nconst denyList = new Set([\n\t'ENOTFOUND',\n\t'ENETUNREACH',\n\n\t// SSL errors from https://github.com/nodejs/node/blob/fc8e3e2cdc521978351de257030db0076d79e0ab/src/crypto/crypto_common.cc#L301-L328\n\t'UNABLE_TO_GET_ISSUER_CERT',\n\t'UNABLE_TO_GET_CRL',\n\t'UNABLE_TO_DECRYPT_CERT_SIGNATURE',\n\t'UNABLE_TO_DECRYPT_CRL_SIGNATURE',\n\t'UNABLE_TO_DECODE_ISSUER_PUBLIC_KEY',\n\t'CERT_SIGNATURE_FAILURE',\n\t'CRL_SIGNATURE_FAILURE',\n\t'CERT_NOT_YET_VALID',\n\t'CERT_HAS_EXPIRED',\n\t'CRL_NOT_YET_VALID',\n\t'CRL_HAS_EXPIRED',\n\t'ERROR_IN_CERT_NOT_BEFORE_FIELD',\n\t'ERROR_IN_CERT_NOT_AFTER_FIELD',\n\t'ERROR_IN_CRL_LAST_UPDATE_FIELD',\n\t'ERROR_IN_CRL_NEXT_UPDATE_FIELD',\n\t'OUT_OF_MEM',\n\t'DEPTH_ZERO_SELF_SIGNED_CERT',\n\t'SELF_SIGNED_CERT_IN_CHAIN',\n\t'UNABLE_TO_GET_ISSUER_CERT_LOCALLY',\n\t'UNABLE_TO_VERIFY_LEAF_SIGNATURE',\n\t'CERT_CHAIN_TOO_LONG',\n\t'CERT_REVOKED',\n\t'INVALID_CA',\n\t'PATH_LENGTH_EXCEEDED',\n\t'INVALID_PURPOSE',\n\t'CERT_UNTRUSTED',\n\t'CERT_REJECTED',\n\t'HOSTNAME_MISMATCH'\n]);\n\n// TODO: Use `error?.code` when targeting Node.js 14\nmodule.exports = error => !denyList.has(error && error.code);\n","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.isNetworkError = isNetworkError;\nexports.isRetryableError = isRetryableError;\nexports.isSafeRequestError = isSafeRequestError;\nexports.isIdempotentRequestError = isIdempotentRequestError;\nexports.isNetworkOrIdempotentRequestError = isNetworkOrIdempotentRequestError;\nexports.exponentialDelay = exponentialDelay;\nexports.default = axiosRetry;\nexports.DEFAULT_OPTIONS = exports.namespace = void 0;\n\nvar _regenerator = _interopRequireDefault(require(\"@babel/runtime/regenerator\"));\n\nvar _typeof2 = _interopRequireDefault(require(\"@babel/runtime/helpers/typeof\"));\n\nvar _asyncToGenerator2 = _interopRequireDefault(require(\"@babel/runtime/helpers/asyncToGenerator\"));\n\nvar _defineProperty2 = _interopRequireDefault(require(\"@babel/runtime/helpers/defineProperty\"));\n\nvar _isRetryAllowed = _interopRequireDefault(require(\"is-retry-allowed\"));\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nvar namespace = 'axios-retry';\n/**\n * @param {Error} error\n * @return {boolean}\n */\n\nexports.namespace = namespace;\n\nfunction isNetworkError(error) {\n var CODE_EXCLUDE_LIST = ['ERR_CANCELED', 'ECONNABORTED'];\n return !error.response && Boolean(error.code) && // Prevents retrying cancelled requests\n !CODE_EXCLUDE_LIST.includes(error.code) && // Prevents retrying timed out & cancelled requests\n (0, _isRetryAllowed.default)(error) // Prevents retrying unsafe errors\n ;\n}\n\nvar SAFE_HTTP_METHODS = ['get', 'head', 'options'];\nvar IDEMPOTENT_HTTP_METHODS = SAFE_HTTP_METHODS.concat(['put', 'delete']);\n/**\n * @param {Error} error\n * @return {boolean}\n */\n\nfunction isRetryableError(error) {\n return error.code !== 'ECONNABORTED' && (!error.response || error.response.status >= 500 && error.response.status <= 599);\n}\n/**\n * @param {Error} error\n * @return {boolean}\n */\n\n\nfunction isSafeRequestError(error) {\n if (!error.config) {\n // Cannot determine if the request can be retried\n return false;\n }\n\n return isRetryableError(error) && SAFE_HTTP_METHODS.indexOf(error.config.method) !== -1;\n}\n/**\n * @param {Error} error\n * @return {boolean}\n */\n\n\nfunction isIdempotentRequestError(error) {\n if (!error.config) {\n // Cannot determine if the request can be retried\n return false;\n }\n\n return isRetryableError(error) && IDEMPOTENT_HTTP_METHODS.indexOf(error.config.method) !== -1;\n}\n/**\n * @param {Error} error\n * @return {boolean}\n */\n\n\nfunction isNetworkOrIdempotentRequestError(error) {\n return isNetworkError(error) || isIdempotentRequestError(error);\n}\n/**\n * @return {number} - delay in milliseconds, always 0\n */\n\n\nfunction noDelay() {\n return 0;\n}\n/**\n * Set delayFactor 1000 for an exponential delay to occur on the order\n * of seconds\n * @param {number} [retryNumber=0]\n * @param {Error} error - unused; for existing API of retryDelay callback\n * @param {number} [delayFactor=100] milliseconds\n * @return {number} - delay in milliseconds\n */\n\n\nfunction exponentialDelay() {\n var retryNumber = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;\n var error = arguments.length > 1 ? arguments[1] : undefined;\n var delayFactor = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 100;\n var delay = Math.pow(2, retryNumber) * delayFactor;\n var randomSum = delay * 0.2 * Math.random(); // 0-20% of the delay\n\n return delay + randomSum;\n}\n/** @type {IAxiosRetryConfig} */\n\n\nvar DEFAULT_OPTIONS = {\n retries: 3,\n retryCondition: isNetworkOrIdempotentRequestError,\n retryDelay: noDelay,\n shouldResetTimeout: false,\n onRetry: function onRetry() {}\n};\n/**\n * Returns the axios-retry options for the current request\n * @param {AxiosRequestConfig} config\n * @param {IAxiosRetryConfig} defaultOptions\n * @return {IAxiosRetryConfigExtended}\n */\n\nexports.DEFAULT_OPTIONS = DEFAULT_OPTIONS;\n\nfunction getRequestOptions(config, defaultOptions) {\n return _objectSpread(_objectSpread(_objectSpread({}, DEFAULT_OPTIONS), defaultOptions), config[namespace]);\n}\n/**\n * Initializes and returns the retry state for the given request/config\n * @param {AxiosRequestConfig} config\n * @param {IAxiosRetryConfig} defaultOptions\n * @return {IAxiosRetryConfigExtended}\n */\n\n\nfunction getCurrentState(config, defaultOptions) {\n var currentState = getRequestOptions(config, defaultOptions);\n currentState.retryCount = currentState.retryCount || 0;\n config[namespace] = currentState;\n return currentState;\n}\n/**\n * @param {Axios} axios\n * @param {AxiosRequestConfig} config\n */\n\n\nfunction fixConfig(axios, config) {\n if (axios.defaults.agent === config.agent) {\n delete config.agent;\n }\n\n if (axios.defaults.httpAgent === config.httpAgent) {\n delete config.httpAgent;\n }\n\n if (axios.defaults.httpsAgent === config.httpsAgent) {\n delete config.httpsAgent;\n }\n}\n/**\n * Checks retryCondition if request can be retried. Handles it's returning value or Promise.\n * @param {IAxiosRetryConfigExtended} currentState\n * @param {Error} error\n * @return {Promise}\n */\n\n\nfunction shouldRetry(_x, _x2) {\n return _shouldRetry.apply(this, arguments);\n}\n/**\n * Adds response interceptors to an axios instance to retry requests failed due to network issues\n *\n * @example\n *\n * import axios from 'axios';\n *\n * axiosRetry(axios, { retries: 3 });\n *\n * axios.get('http://example.com/test') // The first request fails and the second returns 'ok'\n * .then(result => {\n * result.data; // 'ok'\n * });\n *\n * // Exponential back-off retry delay between requests\n * axiosRetry(axios, { retryDelay : axiosRetry.exponentialDelay});\n *\n * // Custom retry delay\n * axiosRetry(axios, { retryDelay : (retryCount) => {\n * return retryCount * 1000;\n * }});\n *\n * // Also works with custom axios instances\n * const client = axios.create({ baseURL: 'http://example.com' });\n * axiosRetry(client, { retries: 3 });\n *\n * client.get('/test') // The first request fails and the second returns 'ok'\n * .then(result => {\n * result.data; // 'ok'\n * });\n *\n * // Allows request-specific configuration\n * client\n * .get('/test', {\n * 'axios-retry': {\n * retries: 0\n * }\n * })\n * .catch(error => { // The first request fails\n * error !== undefined\n * });\n *\n * @param {Axios} axios An axios instance (the axios object or one created from axios.create)\n * @param {Object} [defaultOptions]\n * @param {number} [defaultOptions.retries=3] Number of retries\n * @param {boolean} [defaultOptions.shouldResetTimeout=false]\n * Defines if the timeout should be reset between retries\n * @param {Function} [defaultOptions.retryCondition=isNetworkOrIdempotentRequestError]\n * A function to determine if the error can be retried\n * @param {Function} [defaultOptions.retryDelay=noDelay]\n * A function to determine the delay between retry requests\n * @param {Function} [defaultOptions.onRetry=()=>{}]\n * A function to get notified when a retry occurs\n * @return {{ requestInterceptorId: number, responseInterceptorId: number }}\n * The ids of the interceptors added to the request and to the response (so they can be ejected at a later time)\n */\n\n\nfunction _shouldRetry() {\n _shouldRetry = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee2(currentState, error) {\n var retries, retryCondition, shouldRetryOrPromise, shouldRetryPromiseResult;\n return _regenerator.default.wrap(function _callee2$(_context2) {\n while (1) {\n switch (_context2.prev = _context2.next) {\n case 0:\n retries = currentState.retries, retryCondition = currentState.retryCondition;\n shouldRetryOrPromise = currentState.retryCount < retries && retryCondition(error); // This could be a promise\n\n if (!((0, _typeof2.default)(shouldRetryOrPromise) === 'object')) {\n _context2.next = 13;\n break;\n }\n\n _context2.prev = 3;\n _context2.next = 6;\n return shouldRetryOrPromise;\n\n case 6:\n shouldRetryPromiseResult = _context2.sent;\n return _context2.abrupt(\"return\", shouldRetryPromiseResult !== false);\n\n case 10:\n _context2.prev = 10;\n _context2.t0 = _context2[\"catch\"](3);\n return _context2.abrupt(\"return\", false);\n\n case 13:\n return _context2.abrupt(\"return\", shouldRetryOrPromise);\n\n case 14:\n case \"end\":\n return _context2.stop();\n }\n }\n }, _callee2, null, [[3, 10]]);\n }));\n return _shouldRetry.apply(this, arguments);\n}\n\nfunction axiosRetry(axios, defaultOptions) {\n var requestInterceptorId = axios.interceptors.request.use(function (config) {\n var currentState = getCurrentState(config, defaultOptions);\n currentState.lastRequestTime = Date.now();\n return config;\n });\n var responseInterceptorId = axios.interceptors.response.use(null, /*#__PURE__*/function () {\n var _ref = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee(error) {\n var config, currentState, retryDelay, shouldResetTimeout, onRetry, delay, lastRequestDuration, timeout;\n return _regenerator.default.wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n config = error.config; // If we have no information to retry the request\n\n if (config) {\n _context.next = 3;\n break;\n }\n\n return _context.abrupt(\"return\", Promise.reject(error));\n\n case 3:\n currentState = getCurrentState(config, defaultOptions);\n _context.next = 6;\n return shouldRetry(currentState, error);\n\n case 6:\n if (!_context.sent) {\n _context.next = 21;\n break;\n }\n\n currentState.retryCount += 1;\n retryDelay = currentState.retryDelay, shouldResetTimeout = currentState.shouldResetTimeout, onRetry = currentState.onRetry;\n delay = retryDelay(currentState.retryCount, error); // Axios fails merging this configuration to the default configuration because it has an issue\n // with circular structures: https://github.com/mzabriskie/axios/issues/370\n\n fixConfig(axios, config);\n\n if (!(!shouldResetTimeout && config.timeout && currentState.lastRequestTime)) {\n _context.next = 17;\n break;\n }\n\n lastRequestDuration = Date.now() - currentState.lastRequestTime;\n timeout = config.timeout - lastRequestDuration - delay;\n\n if (!(timeout <= 0)) {\n _context.next = 16;\n break;\n }\n\n return _context.abrupt(\"return\", Promise.reject(error));\n\n case 16:\n config.timeout = timeout;\n\n case 17:\n config.transformRequest = [function (data) {\n return data;\n }];\n _context.next = 20;\n return onRetry(currentState.retryCount, error, config);\n\n case 20:\n return _context.abrupt(\"return\", new Promise(function (resolve) {\n return setTimeout(function () {\n return resolve(axios(config));\n }, delay);\n }));\n\n case 21:\n return _context.abrupt(\"return\", Promise.reject(error));\n\n case 22:\n case \"end\":\n return _context.stop();\n }\n }\n }, _callee);\n }));\n\n return function (_x3) {\n return _ref.apply(this, arguments);\n };\n }());\n return {\n requestInterceptorId: requestInterceptorId,\n responseInterceptorId: responseInterceptorId\n };\n} // Compatibility with CommonJS\n\n\naxiosRetry.isNetworkError = isNetworkError;\naxiosRetry.isSafeRequestError = isSafeRequestError;\naxiosRetry.isIdempotentRequestError = isIdempotentRequestError;\naxiosRetry.isNetworkOrIdempotentRequestError = isNetworkOrIdempotentRequestError;\naxiosRetry.exponentialDelay = exponentialDelay;\naxiosRetry.isRetryableError = isRetryableError;\n//# sourceMappingURL=index.js.map","const axiosRetry = require('./lib/cjs/index').default;\n\nmodule.exports = axiosRetry;\nmodule.exports.default = axiosRetry;\n","\"use strict\";\n/* tslint:disable */\n/* eslint-disable */\n/**\n * IdentityNow Beta API\n * Use these APIs to interact with the IdentityNow platform to achieve repeatable, automated processes with greater scalability. These APIs are in beta and are subject to change. We encourage you to join the SailPoint Developer Community forum at https://developer.sailpoint.com/discuss to connect with other developers using our APIs.\n *\n * The version of the OpenAPI document: 3.1.0-beta\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.createRequestFunction = exports.toPathString = exports.serializeDataIfNeeded = exports.setSearchParams = exports.setOAuthToObject = exports.setBearerAuthToObject = exports.setBasicAuthToObject = exports.setApiKeyToObject = exports.assertParamExists = exports.DUMMY_BASE_URL = void 0;\nvar base_1 = require(\"./base\");\nvar axios_retry_1 = __importDefault(require(\"axios-retry\"));\n/**\n *\n * @export\n */\nexports.DUMMY_BASE_URL = 'https://example.com';\n/**\n *\n * @throws {RequiredError}\n * @export\n */\nvar assertParamExists = function (functionName, paramName, paramValue) {\n if (paramValue === null || paramValue === undefined) {\n throw new base_1.RequiredError(paramName, \"Required parameter \".concat(paramName, \" was null or undefined when calling \").concat(functionName, \".\"));\n }\n};\nexports.assertParamExists = assertParamExists;\n/**\n *\n * @export\n */\nvar setApiKeyToObject = function (object, keyParamName, configuration) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarApiKeyValue, _a;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n if (!(configuration && configuration.apiKey)) return [3 /*break*/, 5];\n if (!(typeof configuration.apiKey === 'function')) return [3 /*break*/, 2];\n return [4 /*yield*/, configuration.apiKey(keyParamName)];\n case 1:\n _a = _b.sent();\n return [3 /*break*/, 4];\n case 2: return [4 /*yield*/, configuration.apiKey];\n case 3:\n _a = _b.sent();\n _b.label = 4;\n case 4:\n localVarApiKeyValue = _a;\n object[keyParamName] = localVarApiKeyValue;\n _b.label = 5;\n case 5: return [2 /*return*/];\n }\n });\n });\n};\nexports.setApiKeyToObject = setApiKeyToObject;\n/**\n *\n * @export\n */\nvar setBasicAuthToObject = function (object, configuration) {\n if (configuration && (configuration.username || configuration.password)) {\n object[\"auth\"] = { username: configuration.username, password: configuration.password };\n }\n};\nexports.setBasicAuthToObject = setBasicAuthToObject;\n/**\n *\n * @export\n */\nvar setBearerAuthToObject = function (object, configuration) {\n return __awaiter(this, void 0, void 0, function () {\n var accessToken, _a;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n if (!(configuration && configuration.accessToken)) return [3 /*break*/, 5];\n if (!(typeof configuration.accessToken === 'function')) return [3 /*break*/, 2];\n return [4 /*yield*/, configuration.accessToken()];\n case 1:\n _a = _b.sent();\n return [3 /*break*/, 4];\n case 2: return [4 /*yield*/, configuration.accessToken];\n case 3:\n _a = _b.sent();\n _b.label = 4;\n case 4:\n accessToken = _a;\n object[\"Authorization\"] = \"Bearer \" + accessToken;\n _b.label = 5;\n case 5: return [2 /*return*/];\n }\n });\n });\n};\nexports.setBearerAuthToObject = setBearerAuthToObject;\n/**\n *\n * @export\n */\nvar setOAuthToObject = function (object, name, scopes, configuration) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAccessTokenValue, _a;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n if (!(configuration && configuration.accessToken)) return [3 /*break*/, 5];\n if (!(typeof configuration.accessToken === 'function')) return [3 /*break*/, 2];\n return [4 /*yield*/, configuration.accessToken(name, scopes)];\n case 1:\n _a = _b.sent();\n return [3 /*break*/, 4];\n case 2: return [4 /*yield*/, configuration.accessToken];\n case 3:\n _a = _b.sent();\n _b.label = 4;\n case 4:\n localVarAccessTokenValue = _a;\n object[\"Authorization\"] = \"Bearer \" + localVarAccessTokenValue;\n _b.label = 5;\n case 5: return [2 /*return*/];\n }\n });\n });\n};\nexports.setOAuthToObject = setOAuthToObject;\n/**\n *\n * @export\n */\nvar setSearchParams = function (url) {\n var objects = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n objects[_i - 1] = arguments[_i];\n }\n var searchParams = new URLSearchParams(url.search);\n for (var _a = 0, objects_1 = objects; _a < objects_1.length; _a++) {\n var object = objects_1[_a];\n for (var key in object) {\n if (Array.isArray(object[key])) {\n searchParams.delete(key);\n for (var _b = 0, _c = object[key]; _b < _c.length; _b++) {\n var item = _c[_b];\n searchParams.append(key, item);\n }\n }\n else {\n searchParams.set(key, object[key]);\n }\n }\n }\n url.search = searchParams.toString();\n};\nexports.setSearchParams = setSearchParams;\n/**\n *\n * @export\n */\nvar serializeDataIfNeeded = function (value, requestOptions, configuration) {\n var nonString = typeof value !== 'string';\n var needsSerialization = nonString && configuration && configuration.isJsonMime\n ? configuration.isJsonMime(requestOptions.headers['Content-Type'])\n : nonString;\n return needsSerialization\n ? JSON.stringify(value !== undefined ? value : {})\n : (value || \"\");\n};\nexports.serializeDataIfNeeded = serializeDataIfNeeded;\n/**\n *\n * @export\n */\nvar toPathString = function (url) {\n return url.pathname + url.search + url.hash;\n};\nexports.toPathString = toPathString;\n/**\n *\n * @export\n */\nvar createRequestFunction = function (axiosArgs, globalAxios, BASE_PATH, configuration) {\n return function (axios, basePath) {\n if (axios === void 0) { axios = globalAxios; }\n if (basePath === void 0) { basePath = BASE_PATH; }\n (0, axios_retry_1.default)(globalAxios, configuration.retriesConfig);\n axiosArgs.axiosOptions.headers['X-SailPoint-SDK'] = 'typescript-1.3.0';\n axiosArgs.axiosOptions.headers['User-Agent'] = 'OpenAPI-Generator/1.3.0/ts';\n var axiosRequestArgs = __assign(__assign({}, axiosArgs.axiosOptions), { url: ((configuration === null || configuration === void 0 ? void 0 : configuration.basePathBeta) || basePath) + axiosArgs.url });\n return axios.request(axiosRequestArgs);\n };\n};\nexports.createRequestFunction = createRequestFunction;\n//# sourceMappingURL=common.js.map","\"use strict\";\n/* tslint:disable */\n/* eslint-disable */\n/**\n * IdentityNow Beta API\n * Use these APIs to interact with the IdentityNow platform to achieve repeatable, automated processes with greater scalability. These APIs are in beta and are subject to change. We encourage you to join the SailPoint Developer Community forum at https://developer.sailpoint.com/discuss to connect with other developers using our APIs.\n *\n * The version of the OpenAPI document: 3.1.0-beta\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.AccountStatusChangedStatusChangeBetaNewStatusEnum = exports.AccountStatusChangedStatusChangeBetaPreviousStatusEnum = exports.AccountCorrelatedSourceBetaTypeEnum = exports.AccountCorrelatedIdentityBetaTypeEnum = exports.AccountCorrelatedAccountBetaTypeEnum = exports.AccountAttributesChangedSourceBetaTypeEnum = exports.AccountAttributesChangedIdentityBetaTypeEnum = exports.AccountAttributesChangedAccountBetaTypeEnum = exports.AccountAggregationStatusBetaStatusEnum = exports.AccountAggregationCompletedSourceBetaTypeEnum = exports.AccountAggregationCompletedBetaStatusEnum = exports.AccountAggregationBetaStatusEnum = exports.AccountActivityItemOperationBeta = exports.AccountActionBetaActionEnum = exports.AccessTypeBeta = exports.AccessRequestTypeBeta = exports.AccessRequestRecommendationItemTypeBeta = exports.AccessRequestPreApprovalRequestedItemsInnerBetaOperationEnum = exports.AccessRequestPreApprovalRequestedItemsInnerBetaTypeEnum = exports.AccessRequestPostApprovalRequestedItemsStatusInnerBetaOperationEnum = exports.AccessRequestPostApprovalRequestedItemsStatusInnerBetaTypeEnum = exports.AccessRequestPostApprovalRequestedItemsStatusInnerApprovalInfoInnerBetaApprovalDecisionEnum = exports.AccessRequestPostApprovalRequestedItemsStatusInnerApprovalInfoInnerApproverBetaTypeEnum = exports.AccessRequestPostApprovalRequestedForBetaTypeEnum = exports.AccessRequestPostApprovalRequestedByBetaTypeEnum = exports.AccessRequestPhasesBetaResultEnum = exports.AccessRequestPhasesBetaStateEnum = exports.AccessRequestItemResponseBetaDecisionEnum = exports.AccessRequestItemBetaTypeEnum = exports.AccessRequestDynamicApproverRequestedItemsInnerBetaOperationEnum = exports.AccessRequestDynamicApproverRequestedItemsInnerBetaTypeEnum = exports.AccessRequestDynamicApproverRequestedForBetaTypeEnum = exports.AccessRequestDynamicApproverRequestedByBetaTypeEnum = exports.AccessRequestDynamicApprover1BetaTypeEnum = exports.AccessProfileUsageUsedByInnerBetaTypeEnum = exports.AccessProfileSourceRefBetaTypeEnum = exports.AccessProfileRefBetaTypeEnum = exports.AccessProfileApprovalSchemeBetaApproverTypeEnum = exports.AccessItemReviewedByBetaTypeEnum = exports.AccessItemRequesterDtoBetaTypeEnum = exports.AccessItemRequesterBetaTypeEnum = exports.AccessItemRequestedForDtoBetaTypeEnum = exports.AccessItemRequestedForBetaTypeEnum = exports.AccessItemRefBetaTypeEnum = exports.AccessItemOwnerDtoBetaTypeEnum = exports.AccessItemDiffBetaEventTypeEnum = exports.AccessItemApproverDtoBetaTypeEnum = exports.AccessCriteriaCriteriaListInnerBetaTypeEnum = exports.AccessConstraintBetaOperatorEnum = exports.AccessConstraintBetaTypeEnum = void 0;\nexports.CompletionStatusBeta = exports.CompletedApprovalStateBeta = exports.CompletedApprovalReviewedByBetaTypeEnum = exports.CompleteCampaignOptionsBetaAutoCompleteActionEnum = exports.CommonAccessTypeBeta = exports.CommonAccessItemStateBeta = exports.CommentDtoAuthorBetaTypeEnum = exports.CloseAccessRequestBetaCompletionStatusEnum = exports.CloseAccessRequestBetaExecutionStatusEnum = exports.ClientTypeBeta = exports.CertificationTaskBetaStatusEnum = exports.CertificationTaskBetaTargetTypeEnum = exports.CertificationTaskBetaTypeEnum = exports.CertificationReferenceDtoBetaTypeEnum = exports.CertificationReferenceBetaTypeEnum = exports.CertificationPhaseBeta = exports.CampaignTemplateOwnerRefBetaTypeEnum = exports.CampaignReportBetaStatusEnum = exports.CampaignReportBetaTypeEnum = exports.CampaignReferenceBetaMandatoryCommentRequirementEnum = exports.CampaignReferenceBetaCorrelatedStatusEnum = exports.CampaignReferenceBetaCampaignTypeEnum = exports.CampaignReferenceBetaTypeEnum = exports.CampaignGeneratedCampaignBetaStatusEnum = exports.CampaignGeneratedCampaignBetaTypeEnum = exports.CampaignEndedCampaignBetaStatusEnum = exports.CampaignEndedCampaignBetaTypeEnum = exports.CampaignBetaMandatoryCommentRequirementEnum = exports.CampaignBetaCorrelatedStatusEnum = exports.CampaignBetaStatusEnum = exports.CampaignBetaTypeEnum = exports.CampaignAlertBetaLevelEnum = exports.CampaignActivatedCampaignBetaStatusEnum = exports.CampaignActivatedCampaignBetaTypeEnum = exports.BulkWorkgroupMembersRequestInnerBetaTypeEnum = exports.BulkTaggedObjectBetaOperationEnum = exports.BeforeProvisioningRuleDtoBetaTypeEnum = exports.AttributeDefinitionTypeBeta = exports.AttributeDefinitionSchemaBetaTypeEnum = exports.AttrSyncSourceBetaTypeEnum = exports.ApprovalStatusDtoOriginalOwnerBetaTypeEnum = exports.ApprovalStatusBeta = exports.ApprovalSchemeForRoleBetaApproverTypeEnum = exports.ApprovalSchemeBeta = exports.AdminReviewReassignReassignToBetaTypeEnum = exports.AccountsCollectedForAggregationSourceBetaTypeEnum = exports.AccountsCollectedForAggregationBetaStatusEnum = exports.AccountUncorrelatedSourceBetaTypeEnum = exports.AccountUncorrelatedIdentityBetaTypeEnum = exports.AccountUncorrelatedAccountBetaTypeEnum = void 0;\nexports.HttpAuthenticationTypeBeta = exports.GrantTypeBeta = exports.FullcampaignBetaMandatoryCommentRequirementEnum = exports.FullcampaignBetaCorrelatedStatusEnum = exports.FullcampaignBetaStatusEnum = exports.FullcampaignBetaTypeEnum = exports.FullcampaignAllOfSourcesWithOrphanEntitlementsBetaTypeEnum = exports.FullcampaignAllOfSearchCampaignInfoReviewerBetaTypeEnum = exports.FullcampaignAllOfSearchCampaignInfoBetaTypeEnum = exports.FullcampaignAllOfRoleCompositionCampaignInfoRemediatorRefBetaTypeEnum = exports.FullcampaignAllOfFilterBetaTypeEnum = exports.FullcampaignAllOfBetaMandatoryCommentRequirementEnum = exports.FullcampaignAllOfBetaCorrelatedStatusEnum = exports.FormUsedByBetaTypeEnum = exports.FormOwnerBetaTypeEnum = exports.FormInstanceResponseBetaStateEnum = exports.FormInstanceRecipientBetaTypeEnum = exports.FormInstanceCreatedByBetaTypeEnum = exports.FormElementDynamicDataSourceConfigBetaObjectTypeEnum = exports.FormElementDynamicDataSourceConfigBetaIndicesEnum = exports.FormElementDynamicDataSourceBetaDataSourceTypeEnum = exports.FormElementBetaElementTypeEnum = exports.FormDefinitionInputBetaTypeEnum = exports.FormConditionBetaRuleOperatorEnum = exports.ExpressionBetaOperatorEnum = exports.ExportPayloadBetaIncludeTypesEnum = exports.ExportPayloadBetaExcludeTypesEnum = exports.ExportOptionsBetaIncludeTypesEnum = exports.ExportOptionsBetaExcludeTypesEnum = exports.ExecutionStatusBeta = exports.ExceptionCriteriaCriteriaListInnerBetaTypeEnum = exports.EntitlementRefBetaTypeEnum = exports.EntitlementApprovalSchemeBetaApproverTypeEnum = exports.EmailStatusDtoBetaVerificationStatusEnum = exports.DtoTypeBeta = exports.Delete202ResponseBetaTypeEnum = exports.DateCompareBetaOperatorEnum = exports.CustomPasswordInstructionBetaPageIdEnum = exports.CreateFormInstanceRequestBetaStateEnum = exports.CorrelatedGovernanceEventBetaTypeEnum = exports.ConnectorRuleValidationResponseBetaStateEnum = exports.ConnectorRuleUpdateRequestBetaTypeEnum = exports.ConnectorRuleResponseBetaTypeEnum = exports.ConnectorRuleCreateRequestBetaTypeEnum = exports.ConnectedObjectTypeBeta = exports.ConfigTypeEnumBeta = exports.ConditionRuleBetaValueTypeEnum = exports.ConditionRuleBetaOperatorEnum = exports.ConditionRuleBetaSourceTypeEnum = exports.ConditionEffectBetaEffectTypeEnum = void 0;\nexports.PasswordChangeResponseBetaStateEnum = exports.OwnerReferenceSegmentsBetaTypeEnum = exports.OwnerReferenceDtoBetaTypeEnum = exports.OwnerReferenceBetaTypeEnum = exports.OwnerDtoBetaTypeEnum = exports.OutliersContributingFeatureAccessItemsBetaAccessTypeEnum = exports.OutlierSummaryBetaTypeEnum = exports.OutlierFeatureSummaryOutlierFeatureDisplayValuesInnerBetaValueTypeEnum = exports.OutlierContributingFeatureBetaValueTypeEnum = exports.OutlierBetaUnignoreTypeEnum = exports.OutlierBetaTypeEnum = exports.NonEmployeeSchemaAttributeTypeBeta = exports.NonEmployeeBulkUploadStatusBetaStatusEnum = exports.NonEmployeeBulkUploadJobBetaStatusEnum = exports.NativeChangeDetectionConfigBetaOperationsEnum = exports.NamedConstructsBeta = exports.MfaConfigTestResponseBetaStateEnum = exports.MediumBeta = exports.ManualWorkItemStateBeta = exports.ManualWorkItemDetailsOriginalOwnerBetaTypeEnum = exports.ManualWorkItemDetailsCurrentOwnerBetaTypeEnum = exports.ManagedClusterTypesBeta = exports.ManagedClientTypeBeta = exports.ManagedClientStatusEnumBeta = exports.MailFromAttributesBetaMailFromDomainStatusEnum = exports.LocaleOriginBeta = exports.ListWorkgroupMembers200ResponseInnerBetaTypeEnum = exports.LatestOutlierSummaryBetaTypeEnum = exports.JsonPatchOperationBetaOpEnum = exports.InvocationStatusTypeBeta = exports.ImportOptionsBetaDefaultReferencesEnum = exports.ImportOptionsBetaIncludeTypesEnum = exports.ImportOptionsBetaExcludeTypesEnum = exports.ImportObjectBetaTypeEnum = exports.IdentityWithNewAccessAccessRefsInnerBetaTypeEnum = exports.IdentitySyncJobBetaStatusEnum = exports.IdentityProfileAllOfOwnerBetaTypeEnum = exports.IdentityProfileAllOfAuthoritativeSourceBetaTypeEnum = exports.IdentityProfile1AllOfAuthoritativeSourceBetaTypeEnum = exports.IdentityDtoManagerRefBetaTypeEnum = exports.IdentityDtoBetaIdentityStatusEnum = exports.IdentityDtoBetaProcessingStateEnum = exports.IdentityDeletedIdentityBetaTypeEnum = exports.IdentityCreatedIdentityBetaTypeEnum = exports.IdentityCertificationTaskBetaStatusEnum = exports.IdentityCertificationTaskBetaTypeEnum = exports.IdentityBetaIdentityStatusEnum = exports.IdentityBetaProcessingStateEnum = exports.IdentityAttributesChangedIdentityBetaTypeEnum = exports.HttpDispatchModeBeta = void 0;\nexports.SodPolicyBetaStateEnum = exports.SlimcampaignBetaCorrelatedStatusEnum = exports.SlimcampaignBetaStatusEnum = exports.SlimcampaignBetaTypeEnum = exports.ServiceDeskSourceBetaTypeEnum = exports.SendTestNotificationRequestDtoBetaMediumEnum = exports.SelfImportExportDtoBetaTypeEnum = exports.SelectorTypeBeta = exports.ScheduleTypeBeta = exports.ScheduleMonthsBetaTypeEnum = exports.ScheduleHoursBetaTypeEnum = exports.ScheduleDaysBetaTypeEnum = exports.ScheduleBetaTypeEnum = exports.RoleMiningSessionStateBeta = exports.RoleMiningSessionScopingMethodBeta = exports.RoleMiningRoleTypeBeta = exports.RoleMiningPotentialRoleProvisionStateBeta = exports.RoleMiningPotentialRoleExportStateBeta = exports.RoleMembershipSelectorTypeBeta = exports.RoleInsightsResponseBetaStatusEnum = exports.RoleCriteriaOperationBeta = exports.RoleCriteriaKeyTypeBeta = exports.RoleAssignmentSourceTypeBeta = exports.ReviewerBetaTypeEnum = exports.RequestedItemStatusRequestStateBeta = exports.RequestedItemStatusBetaTypeEnum = exports.RequestableObjectTypeBeta = exports.RequestableObjectRequestStatusBeta = exports.RequestableObjectReferenceBetaTypeEnum = exports.ReportTypeBeta = exports.ReportResultReferenceBetaStatusEnum = exports.ReportResultReferenceBetaTypeEnum = exports.ReportResultReferenceAllOfBetaStatusEnum = exports.RecommendationResponseBetaRecommendationEnum = exports.ReassignmentTypeEnumBeta = exports.ReassignmentTypeBeta = exports.ReassignReferenceBetaTypeEnum = exports.ProvisioningStateBeta = exports.ProvisioningCriteriaOperationBeta = exports.ProvisioningConfigManagedResourceRefsInnerBetaTypeEnum = exports.ProvisioningCompletedRequesterBetaTypeEnum = exports.ProvisioningCompletedRecipientBetaTypeEnum = exports.ProvisioningCompletedAccountRequestsInnerSourceBetaTypeEnum = exports.ProvisioningCompletedAccountRequestsInnerBetaProvisioningResultEnum = exports.ProvisioningCompletedAccountRequestsInnerAttributeRequestsInnerBetaOperationEnum = exports.PreApprovalTriggerDetailsBetaDecisionEnum = exports.PendingApprovalActionBeta = exports.PatchPotentialRoleRequestInnerBetaOpEnum = exports.PatOwnerBetaTypeEnum = exports.PasswordStatusBetaStateEnum = void 0;\nexports.WorkItemTypeBeta = exports.WorkItemStateBeta = exports.ViolationOwnerAssignmentConfigOwnerRefBetaTypeEnum = exports.ViolationOwnerAssignmentConfigBetaAssignmentRuleEnum = exports.ViolationContextPolicyBetaTypeEnum = exports.VAClusterStatusChangeEventPreviousHealthCheckResultBetaStatusEnum = exports.VAClusterStatusChangeEventHealthCheckResultBetaStatusEnum = exports.VAClusterStatusChangeEventBetaTypeEnum = exports.UsageTypeBeta = exports.TriggerTypeBeta = exports.TransformReadBetaTypeEnum = exports.TransformBetaTypeEnum = exports.TemplateDtoDefaultBetaMediumEnum = exports.TemplateDtoBetaMediumEnum = exports.TemplateBulkDeleteDtoBetaMediumEnum = exports.TaskStatusMessageBetaTypeEnum = exports.TaskStatusBetaCompletionStatusEnum = exports.TaskStatusBetaTypeEnum = exports.TaskResultSimplifiedBetaCompletionStatusEnum = exports.TaskResultDtoBetaTypeEnum = exports.TaggedObjectObjectRefBetaTypeEnum = exports.TaggedObjectDtoBetaTypeEnum = exports.SubscriptionTypeBeta = exports.SubscriptionPatchRequestInnerBetaOpEnum = exports.StatusResponseBetaStatusEnum = exports.StandardLevelBeta = exports.SpConfigJobBetaTypeEnum = exports.SpConfigJobBetaStatusEnum = exports.SourceUsageStatusBetaStatusEnum = exports.SourceUpdatedActorBetaTypeEnum = exports.SourceSyncJobBetaStatusEnum = exports.SourceSchemasInnerBetaTypeEnum = exports.SourcePasswordPoliciesInnerBetaTypeEnum = exports.SourceOwnerBetaTypeEnum = exports.SourceManagerCorrelationRuleBetaTypeEnum = exports.SourceManagementWorkgroupBetaTypeEnum = exports.SourceFeatureBeta = exports.SourceDeletedActorBetaTypeEnum = exports.SourceCreatedActorBetaTypeEnum = exports.SourceClusterDtoBetaTypeEnum = exports.SourceClusterBetaTypeEnum = exports.SourceBeforeProvisioningRuleBetaTypeEnum = exports.SourceAccountCorrelationRuleBetaTypeEnum = exports.SourceAccountCorrelationConfigBetaTypeEnum = exports.SodViolationContextCheckCompletedBetaStateEnum = exports.SodViolationContextCheckCompleted1BetaStateEnum = exports.SodReportResultDtoBetaTypeEnum = exports.SodRecipientBetaTypeEnum = exports.SodPolicyDtoBetaTypeEnum = exports.SodPolicyBetaTypeEnum = void 0;\nexports.ConnectorsBetaApiFp = exports.ConnectorsBetaApiAxiosParamCreator = exports.ConnectorRuleManagementBetaApi = exports.ConnectorRuleManagementBetaApiFactory = exports.ConnectorRuleManagementBetaApiFp = exports.ConnectorRuleManagementBetaApiAxiosParamCreator = exports.CertificationsBetaApi = exports.CertificationsBetaApiFactory = exports.CertificationsBetaApiFp = exports.CertificationsBetaApiAxiosParamCreator = exports.CertificationCampaignsBetaApi = exports.CertificationCampaignsBetaApiFactory = exports.CertificationCampaignsBetaApiFp = exports.CertificationCampaignsBetaApiAxiosParamCreator = exports.AccountsBetaApi = exports.AccountsBetaApiFactory = exports.AccountsBetaApiFp = exports.AccountsBetaApiAxiosParamCreator = exports.AccountUsagesBetaApi = exports.AccountUsagesBetaApiFactory = exports.AccountUsagesBetaApiFp = exports.AccountUsagesBetaApiAxiosParamCreator = exports.AccountAggregationsBetaApi = exports.AccountAggregationsBetaApiFactory = exports.AccountAggregationsBetaApiFp = exports.AccountAggregationsBetaApiAxiosParamCreator = exports.AccountActivitiesBetaApi = exports.AccountActivitiesBetaApiFactory = exports.AccountActivitiesBetaApiFp = exports.AccountActivitiesBetaApiAxiosParamCreator = exports.AccessRequestsBetaApi = exports.AccessRequestsBetaApiFactory = exports.AccessRequestsBetaApiFp = exports.AccessRequestsBetaApiAxiosParamCreator = exports.AccessRequestApprovalsBetaApi = exports.AccessRequestApprovalsBetaApiFactory = exports.AccessRequestApprovalsBetaApiFp = exports.AccessRequestApprovalsBetaApiAxiosParamCreator = exports.AccessProfilesBetaApi = exports.AccessProfilesBetaApiFactory = exports.AccessProfilesBetaApiFp = exports.AccessProfilesBetaApiAxiosParamCreator = exports.WorkgroupConnectionDtoBetaConnectionTypeEnum = exports.WorkflowTriggerBetaTypeEnum = exports.WorkflowLibraryTriggerBetaTypeEnum = exports.WorkflowLibraryFormFieldsBetaTypeEnum = exports.WorkflowExecutionEventBetaTypeEnum = exports.WorkflowExecutionBetaStatusEnum = exports.WorkflowBodyOwnerBetaTypeEnum = exports.WorkflowAllOfCreatorBetaTypeEnum = void 0;\nexports.IdentityAttributesBetaApi = exports.IdentityAttributesBetaApiFactory = exports.IdentityAttributesBetaApiFp = exports.IdentityAttributesBetaApiAxiosParamCreator = exports.IdentitiesBetaApi = exports.IdentitiesBetaApiFactory = exports.IdentitiesBetaApiFp = exports.IdentitiesBetaApiAxiosParamCreator = exports.IAIRoleMiningBetaApi = exports.IAIRoleMiningBetaApiFactory = exports.IAIRoleMiningBetaApiFp = exports.IAIRoleMiningBetaApiAxiosParamCreator = exports.IAIRecommendationsBetaApi = exports.IAIRecommendationsBetaApiFactory = exports.IAIRecommendationsBetaApiFp = exports.IAIRecommendationsBetaApiAxiosParamCreator = exports.IAIPeerGroupStrategiesBetaApi = exports.IAIPeerGroupStrategiesBetaApiFactory = exports.IAIPeerGroupStrategiesBetaApiFp = exports.IAIPeerGroupStrategiesBetaApiAxiosParamCreator = exports.IAIOutliersBetaApi = exports.IAIOutliersBetaApiFactory = exports.IAIOutliersBetaApiFp = exports.IAIOutliersBetaApiAxiosParamCreator = exports.IAICommonAccessBetaApi = exports.IAICommonAccessBetaApiFactory = exports.IAICommonAccessBetaApiFp = exports.IAICommonAccessBetaApiAxiosParamCreator = exports.IAIAccessRequestRecommendationsBetaApi = exports.IAIAccessRequestRecommendationsBetaApiFactory = exports.IAIAccessRequestRecommendationsBetaApiFp = exports.IAIAccessRequestRecommendationsBetaApiAxiosParamCreator = exports.GovernanceGroupsBetaApi = exports.GovernanceGroupsBetaApiFactory = exports.GovernanceGroupsBetaApiFp = exports.GovernanceGroupsBetaApiAxiosParamCreator = exports.EntitlementsBetaApi = exports.EntitlementsBetaApiFactory = exports.EntitlementsBetaApiFp = exports.EntitlementsBetaApiAxiosParamCreator = exports.CustomPasswordInstructionsBetaApi = exports.CustomPasswordInstructionsBetaApiFactory = exports.CustomPasswordInstructionsBetaApiFp = exports.CustomPasswordInstructionsBetaApiAxiosParamCreator = exports.CustomFormsBetaApi = exports.CustomFormsBetaApiFactory = exports.CustomFormsBetaApiFp = exports.CustomFormsBetaApiAxiosParamCreator = exports.ConnectorsBetaApi = exports.ConnectorsBetaApiFactory = void 0;\nexports.PasswordManagementBetaApiFp = exports.PasswordManagementBetaApiAxiosParamCreator = exports.PasswordDictionaryBetaApi = exports.PasswordDictionaryBetaApiFactory = exports.PasswordDictionaryBetaApiFp = exports.PasswordDictionaryBetaApiAxiosParamCreator = exports.PasswordConfigurationBetaApi = exports.PasswordConfigurationBetaApiFactory = exports.PasswordConfigurationBetaApiFp = exports.PasswordConfigurationBetaApiAxiosParamCreator = exports.OrgConfigBetaApi = exports.OrgConfigBetaApiFactory = exports.OrgConfigBetaApiFp = exports.OrgConfigBetaApiAxiosParamCreator = exports.OAuthClientsBetaApi = exports.OAuthClientsBetaApiFactory = exports.OAuthClientsBetaApiFp = exports.OAuthClientsBetaApiAxiosParamCreator = exports.NotificationsBetaApi = exports.NotificationsBetaApiFactory = exports.NotificationsBetaApiFp = exports.NotificationsBetaApiAxiosParamCreator = exports.NonEmployeeLifecycleManagementBetaApi = exports.NonEmployeeLifecycleManagementBetaApiFactory = exports.NonEmployeeLifecycleManagementBetaApiFp = exports.NonEmployeeLifecycleManagementBetaApiAxiosParamCreator = exports.ManagedClustersBetaApi = exports.ManagedClustersBetaApiFactory = exports.ManagedClustersBetaApiFp = exports.ManagedClustersBetaApiAxiosParamCreator = exports.ManagedClientsBetaApi = exports.ManagedClientsBetaApiFactory = exports.ManagedClientsBetaApiFp = exports.ManagedClientsBetaApiAxiosParamCreator = exports.MFAConfigurationBetaApi = exports.MFAConfigurationBetaApiFactory = exports.MFAConfigurationBetaApiFp = exports.MFAConfigurationBetaApiAxiosParamCreator = exports.LifecycleStatesBetaApi = exports.LifecycleStatesBetaApiFactory = exports.LifecycleStatesBetaApiFp = exports.LifecycleStatesBetaApiAxiosParamCreator = exports.IdentityProfilesBetaApi = exports.IdentityProfilesBetaApiFactory = exports.IdentityProfilesBetaApiFp = exports.IdentityProfilesBetaApiAxiosParamCreator = exports.IdentityHistoryBetaApi = exports.IdentityHistoryBetaApiFactory = exports.IdentityHistoryBetaApiFp = exports.IdentityHistoryBetaApiAxiosParamCreator = void 0;\nexports.ServiceDeskIntegrationBetaApi = exports.ServiceDeskIntegrationBetaApiFactory = exports.ServiceDeskIntegrationBetaApiFp = exports.ServiceDeskIntegrationBetaApiAxiosParamCreator = exports.SegmentsBetaApi = exports.SegmentsBetaApiFactory = exports.SegmentsBetaApiFp = exports.SegmentsBetaApiAxiosParamCreator = exports.SearchAttributeConfigurationBetaApi = exports.SearchAttributeConfigurationBetaApiFactory = exports.SearchAttributeConfigurationBetaApiFp = exports.SearchAttributeConfigurationBetaApiAxiosParamCreator = exports.SPConfigBetaApi = exports.SPConfigBetaApiFactory = exports.SPConfigBetaApiFp = exports.SPConfigBetaApiAxiosParamCreator = exports.SODViolationsBetaApi = exports.SODViolationsBetaApiFactory = exports.SODViolationsBetaApiFp = exports.SODViolationsBetaApiAxiosParamCreator = exports.SODPolicyBetaApi = exports.SODPolicyBetaApiFactory = exports.SODPolicyBetaApiFp = exports.SODPolicyBetaApiAxiosParamCreator = exports.RolesBetaApi = exports.RolesBetaApiFactory = exports.RolesBetaApiFp = exports.RolesBetaApiAxiosParamCreator = exports.RoleInsightsBetaApi = exports.RoleInsightsBetaApiFactory = exports.RoleInsightsBetaApiFp = exports.RoleInsightsBetaApiAxiosParamCreator = exports.RequestableObjectsBetaApi = exports.RequestableObjectsBetaApiFactory = exports.RequestableObjectsBetaApiFp = exports.RequestableObjectsBetaApiAxiosParamCreator = exports.PublicIdentitiesConfigBetaApi = exports.PublicIdentitiesConfigBetaApiFactory = exports.PublicIdentitiesConfigBetaApiFp = exports.PublicIdentitiesConfigBetaApiAxiosParamCreator = exports.PersonalAccessTokensBetaApi = exports.PersonalAccessTokensBetaApiFactory = exports.PersonalAccessTokensBetaApiFp = exports.PersonalAccessTokensBetaApiAxiosParamCreator = exports.PasswordSyncGroupsBetaApi = exports.PasswordSyncGroupsBetaApiFactory = exports.PasswordSyncGroupsBetaApiFp = exports.PasswordSyncGroupsBetaApiAxiosParamCreator = exports.PasswordManagementBetaApi = exports.PasswordManagementBetaApiFactory = void 0;\nexports.WorkflowsBetaApi = exports.WorkflowsBetaApiFactory = exports.WorkflowsBetaApiFp = exports.WorkflowsBetaApiAxiosParamCreator = exports.WorkReassignmentBetaApi = exports.WorkReassignmentBetaApiFactory = exports.WorkReassignmentBetaApiFp = exports.WorkReassignmentBetaApiAxiosParamCreator = exports.WorkItemsBetaApi = exports.WorkItemsBetaApiFactory = exports.WorkItemsBetaApiFp = exports.WorkItemsBetaApiAxiosParamCreator = exports.TriggersBetaApi = exports.TriggersBetaApiFactory = exports.TriggersBetaApiFp = exports.TriggersBetaApiAxiosParamCreator = exports.TransformsBetaApi = exports.TransformsBetaApiFactory = exports.TransformsBetaApiFp = exports.TransformsBetaApiAxiosParamCreator = exports.TaskManagementBetaApi = exports.TaskManagementBetaApiFactory = exports.TaskManagementBetaApiFp = exports.TaskManagementBetaApiAxiosParamCreator = exports.TaggedObjectsBetaApi = exports.TaggedObjectsBetaApiFactory = exports.TaggedObjectsBetaApiFp = exports.TaggedObjectsBetaApiAxiosParamCreator = exports.SourcesBetaApi = exports.SourcesBetaApiFactory = exports.SourcesBetaApiFp = exports.SourcesBetaApiAxiosParamCreator = exports.SourceUsagesBetaApi = exports.SourceUsagesBetaApiFactory = exports.SourceUsagesBetaApiFp = exports.SourceUsagesBetaApiAxiosParamCreator = void 0;\nvar axios_1 = __importDefault(require(\"axios\"));\n// Some imports not used depending on template conditions\n// @ts-ignore\nvar common_1 = require(\"./common\");\n// @ts-ignore\nvar base_1 = require(\"./base\");\nexports.AccessConstraintBetaTypeEnum = {\n Entitlement: 'ENTITLEMENT',\n AccessProfile: 'ACCESS_PROFILE',\n Role: 'ROLE'\n};\nexports.AccessConstraintBetaOperatorEnum = {\n All: 'ALL',\n Selected: 'SELECTED'\n};\nexports.AccessCriteriaCriteriaListInnerBetaTypeEnum = {\n Entitlement: 'ENTITLEMENT'\n};\nexports.AccessItemApproverDtoBetaTypeEnum = {\n Identity: 'IDENTITY'\n};\nexports.AccessItemDiffBetaEventTypeEnum = {\n Add: 'ADD',\n Remove: 'REMOVE'\n};\nexports.AccessItemOwnerDtoBetaTypeEnum = {\n Identity: 'IDENTITY'\n};\nexports.AccessItemRefBetaTypeEnum = {\n Entitlement: 'ENTITLEMENT',\n AccessProfile: 'ACCESS_PROFILE',\n Role: 'ROLE'\n};\nexports.AccessItemRequestedForBetaTypeEnum = {\n Identity: 'IDENTITY'\n};\nexports.AccessItemRequestedForDtoBetaTypeEnum = {\n Identity: 'IDENTITY'\n};\nexports.AccessItemRequesterBetaTypeEnum = {\n Identity: 'IDENTITY'\n};\nexports.AccessItemRequesterDtoBetaTypeEnum = {\n Identity: 'IDENTITY'\n};\nexports.AccessItemReviewedByBetaTypeEnum = {\n Identity: 'IDENTITY'\n};\nexports.AccessProfileApprovalSchemeBetaApproverTypeEnum = {\n AppOwner: 'APP_OWNER',\n Owner: 'OWNER',\n SourceOwner: 'SOURCE_OWNER',\n Manager: 'MANAGER',\n GovernanceGroup: 'GOVERNANCE_GROUP'\n};\nexports.AccessProfileRefBetaTypeEnum = {\n AccessProfile: 'ACCESS_PROFILE'\n};\nexports.AccessProfileSourceRefBetaTypeEnum = {\n Source: 'SOURCE'\n};\nexports.AccessProfileUsageUsedByInnerBetaTypeEnum = {\n Role: 'ROLE'\n};\nexports.AccessRequestDynamicApprover1BetaTypeEnum = {\n Identity: 'IDENTITY',\n GovernanceGroup: 'GOVERNANCE_GROUP'\n};\nexports.AccessRequestDynamicApproverRequestedByBetaTypeEnum = {\n Identity: 'IDENTITY'\n};\nexports.AccessRequestDynamicApproverRequestedForBetaTypeEnum = {\n Identity: 'IDENTITY'\n};\nexports.AccessRequestDynamicApproverRequestedItemsInnerBetaTypeEnum = {\n AccessProfile: 'ACCESS_PROFILE',\n Role: 'ROLE',\n Entitlement: 'ENTITLEMENT'\n};\nexports.AccessRequestDynamicApproverRequestedItemsInnerBetaOperationEnum = {\n Add: 'Add',\n Remove: 'Remove'\n};\nexports.AccessRequestItemBetaTypeEnum = {\n AccessProfile: 'ACCESS_PROFILE',\n Role: 'ROLE',\n Entitlement: 'ENTITLEMENT'\n};\nexports.AccessRequestItemResponseBetaDecisionEnum = {\n Approved: 'APPROVED',\n Rejected: 'REJECTED'\n};\nexports.AccessRequestPhasesBetaStateEnum = {\n Pending: 'PENDING',\n Executing: 'EXECUTING',\n Completed: 'COMPLETED',\n Cancelled: 'CANCELLED'\n};\nexports.AccessRequestPhasesBetaResultEnum = {\n Successful: 'SUCCESSFUL',\n Failed: 'FAILED'\n};\nexports.AccessRequestPostApprovalRequestedByBetaTypeEnum = {\n Identity: 'IDENTITY'\n};\nexports.AccessRequestPostApprovalRequestedForBetaTypeEnum = {\n Identity: 'IDENTITY'\n};\nexports.AccessRequestPostApprovalRequestedItemsStatusInnerApprovalInfoInnerApproverBetaTypeEnum = {\n Identity: 'IDENTITY'\n};\nexports.AccessRequestPostApprovalRequestedItemsStatusInnerApprovalInfoInnerBetaApprovalDecisionEnum = {\n Approved: 'APPROVED',\n Denied: 'DENIED'\n};\nexports.AccessRequestPostApprovalRequestedItemsStatusInnerBetaTypeEnum = {\n AccessProfile: 'ACCESS_PROFILE',\n Role: 'ROLE',\n Entitlement: 'ENTITLEMENT'\n};\nexports.AccessRequestPostApprovalRequestedItemsStatusInnerBetaOperationEnum = {\n Add: 'Add',\n Remove: 'Remove'\n};\nexports.AccessRequestPreApprovalRequestedItemsInnerBetaTypeEnum = {\n AccessProfile: 'ACCESS_PROFILE',\n Role: 'ROLE',\n Entitlement: 'ENTITLEMENT'\n};\nexports.AccessRequestPreApprovalRequestedItemsInnerBetaOperationEnum = {\n Add: 'Add',\n Remove: 'Remove'\n};\n/**\n * The type of access item.\n * @export\n * @enum {string}\n */\nexports.AccessRequestRecommendationItemTypeBeta = {\n AccessProfile: 'ACCESS_PROFILE',\n Role: 'ROLE'\n};\n/**\n * Access request type. Defaults to GRANT_ACCESS. REVOKE_ACCESS type can only have a single Identity ID in the requestedFor field.\n * @export\n * @enum {string}\n */\nexports.AccessRequestTypeBeta = {\n GrantAccess: 'GRANT_ACCESS',\n RevokeAccess: 'REVOKE_ACCESS'\n};\n/**\n * Access type of API Client indicating online or offline use\n * @export\n * @enum {string}\n */\nexports.AccessTypeBeta = {\n Online: 'ONLINE',\n Offline: 'OFFLINE'\n};\nexports.AccountActionBetaActionEnum = {\n Enable: 'ENABLE',\n Disable: 'DISABLE'\n};\n/**\n * Represents an operation in an account activity item\n * @export\n * @enum {string}\n */\nexports.AccountActivityItemOperationBeta = {\n Add: 'ADD',\n Create: 'CREATE',\n Modify: 'MODIFY',\n Delete: 'DELETE',\n Disable: 'DISABLE',\n Enable: 'ENABLE',\n Unlock: 'UNLOCK',\n Lock: 'LOCK',\n Remove: 'REMOVE'\n};\nexports.AccountAggregationBetaStatusEnum = {\n Started: 'STARTED',\n AccountsCollected: 'ACCOUNTS_COLLECTED',\n Completed: 'COMPLETED',\n Cancelled: 'CANCELLED',\n Retried: 'RETRIED',\n Terminated: 'TERMINATED'\n};\nexports.AccountAggregationCompletedBetaStatusEnum = {\n Success: 'Success',\n Failed: 'Failed',\n Terminated: 'Terminated'\n};\nexports.AccountAggregationCompletedSourceBetaTypeEnum = {\n Source: 'SOURCE'\n};\nexports.AccountAggregationStatusBetaStatusEnum = {\n Started: 'STARTED',\n AccountsCollected: 'ACCOUNTS_COLLECTED',\n Completed: 'COMPLETED',\n Cancelled: 'CANCELLED',\n Retried: 'RETRIED',\n Terminated: 'TERMINATED'\n};\nexports.AccountAttributesChangedAccountBetaTypeEnum = {\n Account: 'ACCOUNT'\n};\nexports.AccountAttributesChangedIdentityBetaTypeEnum = {\n Identity: 'IDENTITY'\n};\nexports.AccountAttributesChangedSourceBetaTypeEnum = {\n Source: 'SOURCE'\n};\nexports.AccountCorrelatedAccountBetaTypeEnum = {\n Account: 'ACCOUNT'\n};\nexports.AccountCorrelatedIdentityBetaTypeEnum = {\n Identity: 'IDENTITY'\n};\nexports.AccountCorrelatedSourceBetaTypeEnum = {\n Source: 'SOURCE'\n};\nexports.AccountStatusChangedStatusChangeBetaPreviousStatusEnum = {\n Enabled: 'enabled',\n Disabled: 'disabled',\n Locked: 'locked'\n};\nexports.AccountStatusChangedStatusChangeBetaNewStatusEnum = {\n Enabled: 'enabled',\n Disabled: 'disabled',\n Locked: 'locked'\n};\nexports.AccountUncorrelatedAccountBetaTypeEnum = {\n Account: 'ACCOUNT'\n};\nexports.AccountUncorrelatedIdentityBetaTypeEnum = {\n Identity: 'IDENTITY'\n};\nexports.AccountUncorrelatedSourceBetaTypeEnum = {\n Source: 'SOURCE'\n};\nexports.AccountsCollectedForAggregationBetaStatusEnum = {\n Success: 'Success',\n Failed: 'Failed',\n Terminated: 'Terminated'\n};\nexports.AccountsCollectedForAggregationSourceBetaTypeEnum = {\n Source: 'SOURCE'\n};\nexports.AdminReviewReassignReassignToBetaTypeEnum = {\n Identity: 'IDENTITY'\n};\n/**\n * Describes the individual or group that is responsible for an approval step.\n * @export\n * @enum {string}\n */\nexports.ApprovalSchemeBeta = {\n AppOwner: 'APP_OWNER',\n SourceOwner: 'SOURCE_OWNER',\n Manager: 'MANAGER',\n RoleOwner: 'ROLE_OWNER',\n AccessProfileOwner: 'ACCESS_PROFILE_OWNER',\n EntitlementOwner: 'ENTITLEMENT_OWNER',\n GovernanceGroup: 'GOVERNANCE_GROUP'\n};\nexports.ApprovalSchemeForRoleBetaApproverTypeEnum = {\n Owner: 'OWNER',\n Manager: 'MANAGER',\n GovernanceGroup: 'GOVERNANCE_GROUP'\n};\n/**\n * Enum representing the non-employee request approval status\n * @export\n * @enum {string}\n */\nexports.ApprovalStatusBeta = {\n Approved: 'APPROVED',\n Rejected: 'REJECTED',\n Pending: 'PENDING',\n NotReady: 'NOT_READY',\n Cancelled: 'CANCELLED'\n};\nexports.ApprovalStatusDtoOriginalOwnerBetaTypeEnum = {\n GovernanceGroup: 'GOVERNANCE_GROUP',\n Identity: 'IDENTITY'\n};\nexports.AttrSyncSourceBetaTypeEnum = {\n Source: 'SOURCE'\n};\nexports.AttributeDefinitionSchemaBetaTypeEnum = {\n ConnectorSchema: 'CONNECTOR_SCHEMA'\n};\n/**\n * The underlying type of the value which an AttributeDefinition represents.\n * @export\n * @enum {string}\n */\nexports.AttributeDefinitionTypeBeta = {\n String: 'STRING',\n Long: 'LONG',\n Int: 'INT',\n Boolean: 'BOOLEAN'\n};\nexports.BeforeProvisioningRuleDtoBetaTypeEnum = {\n Rule: 'RULE'\n};\nexports.BulkTaggedObjectBetaOperationEnum = {\n Append: 'APPEND',\n Merge: 'MERGE'\n};\nexports.BulkWorkgroupMembersRequestInnerBetaTypeEnum = {\n Identity: 'IDENTITY'\n};\nexports.CampaignActivatedCampaignBetaTypeEnum = {\n Manager: 'MANAGER',\n SourceOwner: 'SOURCE_OWNER',\n Search: 'SEARCH',\n RoleComposition: 'ROLE_COMPOSITION'\n};\nexports.CampaignActivatedCampaignBetaStatusEnum = {\n Active: 'ACTIVE'\n};\nexports.CampaignAlertBetaLevelEnum = {\n Error: 'ERROR',\n Warn: 'WARN',\n Info: 'INFO'\n};\nexports.CampaignBetaTypeEnum = {\n Manager: 'MANAGER',\n SourceOwner: 'SOURCE_OWNER',\n Search: 'SEARCH',\n RoleComposition: 'ROLE_COMPOSITION'\n};\nexports.CampaignBetaStatusEnum = {\n Pending: 'PENDING',\n Staged: 'STAGED',\n Canceling: 'CANCELING',\n Activating: 'ACTIVATING',\n Active: 'ACTIVE',\n Completing: 'COMPLETING',\n Completed: 'COMPLETED',\n Error: 'ERROR',\n Archived: 'ARCHIVED'\n};\nexports.CampaignBetaCorrelatedStatusEnum = {\n Correlated: 'CORRELATED',\n Uncorrelated: 'UNCORRELATED'\n};\nexports.CampaignBetaMandatoryCommentRequirementEnum = {\n AllDecisions: 'ALL_DECISIONS',\n RevokeOnlyDecisions: 'REVOKE_ONLY_DECISIONS',\n NoDecisions: 'NO_DECISIONS'\n};\nexports.CampaignEndedCampaignBetaTypeEnum = {\n Manager: 'MANAGER',\n SourceOwner: 'SOURCE_OWNER',\n Search: 'SEARCH',\n RoleComposition: 'ROLE_COMPOSITION'\n};\nexports.CampaignEndedCampaignBetaStatusEnum = {\n Completed: 'COMPLETED'\n};\nexports.CampaignGeneratedCampaignBetaTypeEnum = {\n Manager: 'MANAGER',\n SourceOwner: 'SOURCE_OWNER',\n Search: 'SEARCH',\n RoleComposition: 'ROLE_COMPOSITION'\n};\nexports.CampaignGeneratedCampaignBetaStatusEnum = {\n Staged: 'STAGED',\n Activating: 'ACTIVATING',\n Active: 'ACTIVE'\n};\nexports.CampaignReferenceBetaTypeEnum = {\n Campaign: 'CAMPAIGN'\n};\nexports.CampaignReferenceBetaCampaignTypeEnum = {\n Manager: 'MANAGER',\n SourceOwner: 'SOURCE_OWNER',\n Search: 'SEARCH'\n};\nexports.CampaignReferenceBetaCorrelatedStatusEnum = {\n Correlated: 'CORRELATED',\n Uncorrelated: 'UNCORRELATED'\n};\nexports.CampaignReferenceBetaMandatoryCommentRequirementEnum = {\n AllDecisions: 'ALL_DECISIONS',\n RevokeOnlyDecisions: 'REVOKE_ONLY_DECISIONS',\n NoDecisions: 'NO_DECISIONS'\n};\nexports.CampaignReportBetaTypeEnum = {\n ReportResult: 'REPORT_RESULT'\n};\nexports.CampaignReportBetaStatusEnum = {\n Success: 'SUCCESS',\n Warning: 'WARNING',\n Error: 'ERROR',\n Terminated: 'TERMINATED',\n TempError: 'TEMP_ERROR',\n Pending: 'PENDING'\n};\nexports.CampaignTemplateOwnerRefBetaTypeEnum = {\n Identity: 'IDENTITY'\n};\n/**\n * The current phase of the campaign. * `STAGED`: The campaign is waiting to be activated. * `ACTIVE`: The campaign is active. * `SIGNED`: The reviewer has signed off on the campaign, and it is considered complete.\n * @export\n * @enum {string}\n */\nexports.CertificationPhaseBeta = {\n Staged: 'STAGED',\n Active: 'ACTIVE',\n Signed: 'SIGNED'\n};\nexports.CertificationReferenceBetaTypeEnum = {\n Certification: 'CERTIFICATION'\n};\nexports.CertificationReferenceDtoBetaTypeEnum = {\n Certification: 'CERTIFICATION'\n};\nexports.CertificationTaskBetaTypeEnum = {\n Reassign: 'REASSIGN',\n AdminReassign: 'ADMIN_REASSIGN',\n CompleteCertification: 'COMPLETE_CERTIFICATION',\n FinishCertification: 'FINISH_CERTIFICATION',\n CompleteCampaign: 'COMPLETE_CAMPAIGN',\n ActivateCampaign: 'ACTIVATE_CAMPAIGN',\n CampaignCreate: 'CAMPAIGN_CREATE',\n CampaignDelete: 'CAMPAIGN_DELETE'\n};\nexports.CertificationTaskBetaTargetTypeEnum = {\n Certification: 'CERTIFICATION',\n Campaign: 'CAMPAIGN'\n};\nexports.CertificationTaskBetaStatusEnum = {\n Queued: 'QUEUED',\n InProgress: 'IN_PROGRESS',\n Success: 'SUCCESS',\n Error: 'ERROR'\n};\n/**\n * Type of an API Client indicating public or confidentials use\n * @export\n * @enum {string}\n */\nexports.ClientTypeBeta = {\n Confidential: 'CONFIDENTIAL',\n Public: 'PUBLIC'\n};\nexports.CloseAccessRequestBetaExecutionStatusEnum = {\n Terminated: 'Terminated',\n Completed: 'Completed'\n};\nexports.CloseAccessRequestBetaCompletionStatusEnum = {\n Success: 'Success',\n Incomplete: 'Incomplete',\n Failure: 'Failure'\n};\nexports.CommentDtoAuthorBetaTypeEnum = {\n Identity: 'IDENTITY'\n};\n/**\n * State of common access item.\n * @export\n * @enum {string}\n */\nexports.CommonAccessItemStateBeta = {\n Confirmed: 'CONFIRMED',\n Denied: 'DENIED'\n};\n/**\n * The type of access item.\n * @export\n * @enum {string}\n */\nexports.CommonAccessTypeBeta = {\n AccessProfile: 'ACCESS_PROFILE',\n Role: 'ROLE'\n};\nexports.CompleteCampaignOptionsBetaAutoCompleteActionEnum = {\n Approve: 'APPROVE',\n Revoke: 'REVOKE'\n};\nexports.CompletedApprovalReviewedByBetaTypeEnum = {\n Identity: 'IDENTITY'\n};\n/**\n * Enum represents completed approval object\\'s state.\n * @export\n * @enum {string}\n */\nexports.CompletedApprovalStateBeta = {\n Approved: 'APPROVED',\n Rejected: 'REJECTED'\n};\n/**\n * The status after completion.\n * @export\n * @enum {string}\n */\nexports.CompletionStatusBeta = {\n Success: 'SUCCESS',\n Failure: 'FAILURE',\n Incomplete: 'INCOMPLETE',\n Pending: 'PENDING'\n};\nexports.ConditionEffectBetaEffectTypeEnum = {\n Hide: 'HIDE',\n Show: 'SHOW',\n Disable: 'DISABLE',\n Enable: 'ENABLE',\n Require: 'REQUIRE',\n Optional: 'OPTIONAL',\n SubmitMessage: 'SUBMIT_MESSAGE',\n SubmitNotification: 'SUBMIT_NOTIFICATION',\n SetDefaultValue: 'SET_DEFAULT_VALUE'\n};\nexports.ConditionRuleBetaSourceTypeEnum = {\n Input: 'INPUT',\n Element: 'ELEMENT'\n};\nexports.ConditionRuleBetaOperatorEnum = {\n Eq: 'EQ',\n Ne: 'NE',\n Co: 'CO',\n NotCo: 'NOT_CO',\n In: 'IN',\n NotIn: 'NOT_IN',\n Em: 'EM',\n NotEm: 'NOT_EM',\n Sw: 'SW',\n NotSw: 'NOT_SW',\n Ew: 'EW',\n NotEw: 'NOT_EW'\n};\nexports.ConditionRuleBetaValueTypeEnum = {\n String: 'STRING',\n StringList: 'STRING_LIST',\n Input: 'INPUT',\n Element: 'ELEMENT',\n List: 'LIST',\n Boolean: 'BOOLEAN'\n};\n/**\n * Enum list of valid work types that can be selected for a Reassignment Configuration\n * @export\n * @enum {string}\n */\nexports.ConfigTypeEnumBeta = {\n AccessRequests: 'ACCESS_REQUESTS',\n Certifications: 'CERTIFICATIONS',\n ManualTasks: 'MANUAL_TASKS'\n};\n/**\n * An enumeration of the types of Objects associated with a Governance Group. Supported object types are ACCESS_PROFILE, ROLE, SOD_POLICY and SOURCE.\n * @export\n * @enum {string}\n */\nexports.ConnectedObjectTypeBeta = {\n AccessProfile: 'ACCESS_PROFILE',\n Role: 'ROLE',\n SodPolicy: 'SOD_POLICY',\n Source: 'SOURCE'\n};\nexports.ConnectorRuleCreateRequestBetaTypeEnum = {\n BuildMap: 'BuildMap',\n ConnectorAfterCreate: 'ConnectorAfterCreate',\n ConnectorAfterDelete: 'ConnectorAfterDelete',\n ConnectorAfterModify: 'ConnectorAfterModify',\n ConnectorBeforeCreate: 'ConnectorBeforeCreate',\n ConnectorBeforeDelete: 'ConnectorBeforeDelete',\n ConnectorBeforeModify: 'ConnectorBeforeModify',\n JdbcBuildMap: 'JDBCBuildMap',\n JdbcOperationProvisioning: 'JDBCOperationProvisioning',\n JdbcProvision: 'JDBCProvision',\n PeopleSoftHrmsBuildMap: 'PeopleSoftHRMSBuildMap',\n PeopleSoftHrmsOperationProvisioning: 'PeopleSoftHRMSOperationProvisioning',\n PeopleSoftHrmsProvision: 'PeopleSoftHRMSProvision',\n RacfPermissionCustomization: 'RACFPermissionCustomization',\n SapBuildMap: 'SAPBuildMap',\n SapHrManagerRule: 'SapHrManagerRule',\n SapHrOperationProvisioning: 'SapHrOperationProvisioning',\n SapHrProvision: 'SapHrProvision',\n SuccessFactorsOperationProvisioning: 'SuccessFactorsOperationProvisioning',\n WebServiceAfterOperationRule: 'WebServiceAfterOperationRule',\n WebServiceBeforeOperationRule: 'WebServiceBeforeOperationRule'\n};\nexports.ConnectorRuleResponseBetaTypeEnum = {\n BuildMap: 'BuildMap',\n ConnectorAfterCreate: 'ConnectorAfterCreate',\n ConnectorAfterDelete: 'ConnectorAfterDelete',\n ConnectorAfterModify: 'ConnectorAfterModify',\n ConnectorBeforeCreate: 'ConnectorBeforeCreate',\n ConnectorBeforeDelete: 'ConnectorBeforeDelete',\n ConnectorBeforeModify: 'ConnectorBeforeModify',\n JdbcBuildMap: 'JDBCBuildMap',\n JdbcOperationProvisioning: 'JDBCOperationProvisioning',\n JdbcProvision: 'JDBCProvision',\n PeopleSoftHrmsBuildMap: 'PeopleSoftHRMSBuildMap',\n PeopleSoftHrmsOperationProvisioning: 'PeopleSoftHRMSOperationProvisioning',\n PeopleSoftHrmsProvision: 'PeopleSoftHRMSProvision',\n RacfPermissionCustomization: 'RACFPermissionCustomization',\n SapBuildMap: 'SAPBuildMap',\n SapHrManagerRule: 'SapHrManagerRule',\n SapHrOperationProvisioning: 'SapHrOperationProvisioning',\n SapHrProvision: 'SapHrProvision',\n SuccessFactorsOperationProvisioning: 'SuccessFactorsOperationProvisioning',\n WebServiceAfterOperationRule: 'WebServiceAfterOperationRule',\n WebServiceBeforeOperationRule: 'WebServiceBeforeOperationRule'\n};\nexports.ConnectorRuleUpdateRequestBetaTypeEnum = {\n BuildMap: 'BuildMap',\n ConnectorAfterCreate: 'ConnectorAfterCreate',\n ConnectorAfterDelete: 'ConnectorAfterDelete',\n ConnectorAfterModify: 'ConnectorAfterModify',\n ConnectorBeforeCreate: 'ConnectorBeforeCreate',\n ConnectorBeforeDelete: 'ConnectorBeforeDelete',\n ConnectorBeforeModify: 'ConnectorBeforeModify',\n JdbcBuildMap: 'JDBCBuildMap',\n JdbcOperationProvisioning: 'JDBCOperationProvisioning',\n JdbcProvision: 'JDBCProvision',\n PeopleSoftHrmsBuildMap: 'PeopleSoftHRMSBuildMap',\n PeopleSoftHrmsOperationProvisioning: 'PeopleSoftHRMSOperationProvisioning',\n PeopleSoftHrmsProvision: 'PeopleSoftHRMSProvision',\n RacfPermissionCustomization: 'RACFPermissionCustomization',\n SapBuildMap: 'SAPBuildMap',\n SapHrManagerRule: 'SapHrManagerRule',\n SapHrOperationProvisioning: 'SapHrOperationProvisioning',\n SapHrProvision: 'SapHrProvision',\n SuccessFactorsOperationProvisioning: 'SuccessFactorsOperationProvisioning',\n WebServiceAfterOperationRule: 'WebServiceAfterOperationRule',\n WebServiceBeforeOperationRule: 'WebServiceBeforeOperationRule'\n};\nexports.ConnectorRuleValidationResponseBetaStateEnum = {\n Ok: 'OK',\n Error: 'ERROR'\n};\nexports.CorrelatedGovernanceEventBetaTypeEnum = {\n Certification: 'certification',\n AccessRequest: 'accessRequest'\n};\nexports.CreateFormInstanceRequestBetaStateEnum = {\n Assigned: 'ASSIGNED',\n InProgress: 'IN_PROGRESS',\n Submitted: 'SUBMITTED',\n Completed: 'COMPLETED',\n Cancelled: 'CANCELLED'\n};\nexports.CustomPasswordInstructionBetaPageIdEnum = {\n ChangePasswordenterPassword: 'change-password:enter-password',\n ChangePasswordfinish: 'change-password:finish',\n FlowSelectionselect: 'flow-selection:select',\n ForgetUsernameuserEmail: 'forget-username:user-email',\n MfaenterCode: 'mfa:enter-code',\n MfaenterKba: 'mfa:enter-kba',\n Mfaselect: 'mfa:select',\n ResetPasswordenterPassword: 'reset-password:enter-password',\n ResetPasswordenterUsername: 'reset-password:enter-username',\n ResetPasswordfinish: 'reset-password:finish',\n UnlockAccountenterUsername: 'unlock-account:enter-username',\n UnlockAccountfinish: 'unlock-account:finish'\n};\nexports.DateCompareBetaOperatorEnum = {\n Lt: 'LT',\n Lte: 'LTE',\n Gt: 'GT',\n Gte: 'GTE'\n};\nexports.Delete202ResponseBetaTypeEnum = {\n TaskResult: 'TASK_RESULT'\n};\n/**\n * An enumeration of the types of DTOs supported within the IdentityNow infrastructure.\n * @export\n * @enum {string}\n */\nexports.DtoTypeBeta = {\n AccountCorrelationConfig: 'ACCOUNT_CORRELATION_CONFIG',\n AccessProfile: 'ACCESS_PROFILE',\n AccessRequestApproval: 'ACCESS_REQUEST_APPROVAL',\n Account: 'ACCOUNT',\n Application: 'APPLICATION',\n Campaign: 'CAMPAIGN',\n CampaignFilter: 'CAMPAIGN_FILTER',\n Certification: 'CERTIFICATION',\n Cluster: 'CLUSTER',\n ConnectorSchema: 'CONNECTOR_SCHEMA',\n Entitlement: 'ENTITLEMENT',\n GovernanceGroup: 'GOVERNANCE_GROUP',\n Identity: 'IDENTITY',\n IdentityProfile: 'IDENTITY_PROFILE',\n IdentityRequest: 'IDENTITY_REQUEST',\n LifecycleState: 'LIFECYCLE_STATE',\n PasswordPolicy: 'PASSWORD_POLICY',\n Role: 'ROLE',\n Rule: 'RULE',\n SodPolicy: 'SOD_POLICY',\n Source: 'SOURCE',\n Tag: 'TAG',\n TagCategory: 'TAG_CATEGORY',\n TaskResult: 'TASK_RESULT',\n ReportResult: 'REPORT_RESULT',\n SodViolation: 'SOD_VIOLATION',\n AccountActivity: 'ACCOUNT_ACTIVITY',\n Workgroup: 'WORKGROUP'\n};\nexports.EmailStatusDtoBetaVerificationStatusEnum = {\n Pending: 'PENDING',\n Success: 'SUCCESS',\n Failed: 'FAILED'\n};\nexports.EntitlementApprovalSchemeBetaApproverTypeEnum = {\n EntitlementOwner: 'ENTITLEMENT_OWNER',\n SourceOwner: 'SOURCE_OWNER',\n Manager: 'MANAGER',\n GovernanceGroup: 'GOVERNANCE_GROUP'\n};\nexports.EntitlementRefBetaTypeEnum = {\n Entitlement: 'ENTITLEMENT'\n};\nexports.ExceptionCriteriaCriteriaListInnerBetaTypeEnum = {\n Entitlement: 'ENTITLEMENT'\n};\n/**\n * The current state of execution.\n * @export\n * @enum {string}\n */\nexports.ExecutionStatusBeta = {\n Executing: 'EXECUTING',\n Verifying: 'VERIFYING',\n Terminated: 'TERMINATED',\n Completed: 'COMPLETED'\n};\nexports.ExportOptionsBetaExcludeTypesEnum = {\n AccessProfile: 'ACCESS_PROFILE',\n AccessRequestConfig: 'ACCESS_REQUEST_CONFIG',\n AttrSyncSourceConfig: 'ATTR_SYNC_SOURCE_CONFIG',\n AuthOrg: 'AUTH_ORG',\n CampaignFilter: 'CAMPAIGN_FILTER',\n FormDefinition: 'FORM_DEFINITION',\n GovernanceGroup: 'GOVERNANCE_GROUP',\n IdentityObjectConfig: 'IDENTITY_OBJECT_CONFIG',\n IdentityProfile: 'IDENTITY_PROFILE',\n LifecycleState: 'LIFECYCLE_STATE',\n NotificationTemplate: 'NOTIFICATION_TEMPLATE',\n PasswordPolicy: 'PASSWORD_POLICY',\n PasswordSyncGroup: 'PASSWORD_SYNC_GROUP',\n PublicIdentitiesConfig: 'PUBLIC_IDENTITIES_CONFIG',\n Role: 'ROLE',\n Rule: 'RULE',\n Segment: 'SEGMENT',\n ServiceDeskIntegration: 'SERVICE_DESK_INTEGRATION',\n SodPolicy: 'SOD_POLICY',\n Source: 'SOURCE',\n Tag: 'TAG',\n Transform: 'TRANSFORM',\n TriggerSubscription: 'TRIGGER_SUBSCRIPTION',\n Workflow: 'WORKFLOW'\n};\nexports.ExportOptionsBetaIncludeTypesEnum = {\n AccessProfile: 'ACCESS_PROFILE',\n AccessRequestConfig: 'ACCESS_REQUEST_CONFIG',\n AttrSyncSourceConfig: 'ATTR_SYNC_SOURCE_CONFIG',\n AuthOrg: 'AUTH_ORG',\n CampaignFilter: 'CAMPAIGN_FILTER',\n FormDefinition: 'FORM_DEFINITION',\n GovernanceGroup: 'GOVERNANCE_GROUP',\n IdentityObjectConfig: 'IDENTITY_OBJECT_CONFIG',\n IdentityProfile: 'IDENTITY_PROFILE',\n LifecycleState: 'LIFECYCLE_STATE',\n NotificationTemplate: 'NOTIFICATION_TEMPLATE',\n PasswordPolicy: 'PASSWORD_POLICY',\n PasswordSyncGroup: 'PASSWORD_SYNC_GROUP',\n PublicIdentitiesConfig: 'PUBLIC_IDENTITIES_CONFIG',\n Role: 'ROLE',\n Rule: 'RULE',\n Segment: 'SEGMENT',\n ServiceDeskIntegration: 'SERVICE_DESK_INTEGRATION',\n SodPolicy: 'SOD_POLICY',\n Source: 'SOURCE',\n Tag: 'TAG',\n Transform: 'TRANSFORM',\n TriggerSubscription: 'TRIGGER_SUBSCRIPTION',\n Workflow: 'WORKFLOW'\n};\nexports.ExportPayloadBetaExcludeTypesEnum = {\n AccessProfile: 'ACCESS_PROFILE',\n AccessRequestConfig: 'ACCESS_REQUEST_CONFIG',\n AttrSyncSourceConfig: 'ATTR_SYNC_SOURCE_CONFIG',\n AuthOrg: 'AUTH_ORG',\n CampaignFilter: 'CAMPAIGN_FILTER',\n FormDefinition: 'FORM_DEFINITION',\n GovernanceGroup: 'GOVERNANCE_GROUP',\n IdentityObjectConfig: 'IDENTITY_OBJECT_CONFIG',\n IdentityProfile: 'IDENTITY_PROFILE',\n LifecycleState: 'LIFECYCLE_STATE',\n NotificationTemplate: 'NOTIFICATION_TEMPLATE',\n PasswordPolicy: 'PASSWORD_POLICY',\n PasswordSyncGroup: 'PASSWORD_SYNC_GROUP',\n PublicIdentitiesConfig: 'PUBLIC_IDENTITIES_CONFIG',\n Role: 'ROLE',\n Rule: 'RULE',\n Segment: 'SEGMENT',\n ServiceDeskIntegration: 'SERVICE_DESK_INTEGRATION',\n SodPolicy: 'SOD_POLICY',\n Source: 'SOURCE',\n Tag: 'TAG',\n Transform: 'TRANSFORM',\n TriggerSubscription: 'TRIGGER_SUBSCRIPTION',\n Workflow: 'WORKFLOW'\n};\nexports.ExportPayloadBetaIncludeTypesEnum = {\n AccessProfile: 'ACCESS_PROFILE',\n AccessRequestConfig: 'ACCESS_REQUEST_CONFIG',\n AttrSyncSourceConfig: 'ATTR_SYNC_SOURCE_CONFIG',\n AuthOrg: 'AUTH_ORG',\n CampaignFilter: 'CAMPAIGN_FILTER',\n FormDefinition: 'FORM_DEFINITION',\n GovernanceGroup: 'GOVERNANCE_GROUP',\n IdentityObjectConfig: 'IDENTITY_OBJECT_CONFIG',\n IdentityProfile: 'IDENTITY_PROFILE',\n LifecycleState: 'LIFECYCLE_STATE',\n NotificationTemplate: 'NOTIFICATION_TEMPLATE',\n PasswordPolicy: 'PASSWORD_POLICY',\n PasswordSyncGroup: 'PASSWORD_SYNC_GROUP',\n PublicIdentitiesConfig: 'PUBLIC_IDENTITIES_CONFIG',\n Role: 'ROLE',\n Rule: 'RULE',\n Segment: 'SEGMENT',\n ServiceDeskIntegration: 'SERVICE_DESK_INTEGRATION',\n SodPolicy: 'SOD_POLICY',\n Source: 'SOURCE',\n Tag: 'TAG',\n Transform: 'TRANSFORM',\n TriggerSubscription: 'TRIGGER_SUBSCRIPTION',\n Workflow: 'WORKFLOW'\n};\nexports.ExpressionBetaOperatorEnum = {\n And: 'AND',\n Equals: 'EQUALS'\n};\nexports.FormConditionBetaRuleOperatorEnum = {\n And: 'AND',\n Or: 'OR'\n};\nexports.FormDefinitionInputBetaTypeEnum = {\n String: 'STRING'\n};\nexports.FormElementBetaElementTypeEnum = {\n Text: 'TEXT',\n Toggle: 'TOGGLE',\n Textarea: 'TEXTAREA',\n Hidden: 'HIDDEN',\n Phone: 'PHONE',\n Email: 'EMAIL',\n Select: 'SELECT',\n Date: 'DATE',\n Section: 'SECTION',\n Columns: 'COLUMNS'\n};\nexports.FormElementDynamicDataSourceBetaDataSourceTypeEnum = {\n Static: 'STATIC',\n Internal: 'INTERNAL',\n Search: 'SEARCH'\n};\nexports.FormElementDynamicDataSourceConfigBetaIndicesEnum = {\n Accessprofiles: 'accessprofiles',\n Accountactivities: 'accountactivities',\n Entitlements: 'entitlements',\n Identities: 'identities',\n Events: 'events',\n Roles: 'roles',\n Star: '*'\n};\nexports.FormElementDynamicDataSourceConfigBetaObjectTypeEnum = {\n Identity: 'IDENTITY',\n AccessProfile: 'ACCESS_PROFILE',\n Sources: 'SOURCES',\n Role: 'ROLE',\n Entitlement: 'ENTITLEMENT'\n};\nexports.FormInstanceCreatedByBetaTypeEnum = {\n WorkflowExecution: 'WORKFLOW_EXECUTION',\n Source: 'SOURCE'\n};\nexports.FormInstanceRecipientBetaTypeEnum = {\n Identity: 'IDENTITY'\n};\nexports.FormInstanceResponseBetaStateEnum = {\n Assigned: 'ASSIGNED',\n InProgress: 'IN_PROGRESS',\n Submitted: 'SUBMITTED',\n Completed: 'COMPLETED',\n Cancelled: 'CANCELLED'\n};\nexports.FormOwnerBetaTypeEnum = {\n Identity: 'IDENTITY'\n};\nexports.FormUsedByBetaTypeEnum = {\n Workflow: 'WORKFLOW',\n Source: 'SOURCE'\n};\nexports.FullcampaignAllOfBetaCorrelatedStatusEnum = {\n Correlated: 'CORRELATED',\n Uncorrelated: 'UNCORRELATED'\n};\nexports.FullcampaignAllOfBetaMandatoryCommentRequirementEnum = {\n AllDecisions: 'ALL_DECISIONS',\n RevokeOnlyDecisions: 'REVOKE_ONLY_DECISIONS',\n NoDecisions: 'NO_DECISIONS'\n};\nexports.FullcampaignAllOfFilterBetaTypeEnum = {\n CampaignFilter: 'CAMPAIGN_FILTER',\n Rule: 'RULE'\n};\nexports.FullcampaignAllOfRoleCompositionCampaignInfoRemediatorRefBetaTypeEnum = {\n Identity: 'IDENTITY'\n};\nexports.FullcampaignAllOfSearchCampaignInfoBetaTypeEnum = {\n Identity: 'IDENTITY',\n Access: 'ACCESS'\n};\nexports.FullcampaignAllOfSearchCampaignInfoReviewerBetaTypeEnum = {\n GovernanceGroup: 'GOVERNANCE_GROUP',\n Identity: 'IDENTITY'\n};\nexports.FullcampaignAllOfSourcesWithOrphanEntitlementsBetaTypeEnum = {\n Source: 'SOURCE'\n};\nexports.FullcampaignBetaTypeEnum = {\n Manager: 'MANAGER',\n SourceOwner: 'SOURCE_OWNER',\n Search: 'SEARCH',\n RoleComposition: 'ROLE_COMPOSITION'\n};\nexports.FullcampaignBetaStatusEnum = {\n Pending: 'PENDING',\n Staged: 'STAGED',\n Canceling: 'CANCELING',\n Activating: 'ACTIVATING',\n Active: 'ACTIVE',\n Completing: 'COMPLETING',\n Completed: 'COMPLETED',\n Error: 'ERROR',\n Archived: 'ARCHIVED'\n};\nexports.FullcampaignBetaCorrelatedStatusEnum = {\n Correlated: 'CORRELATED',\n Uncorrelated: 'UNCORRELATED'\n};\nexports.FullcampaignBetaMandatoryCommentRequirementEnum = {\n AllDecisions: 'ALL_DECISIONS',\n RevokeOnlyDecisions: 'REVOKE_ONLY_DECISIONS',\n NoDecisions: 'NO_DECISIONS'\n};\n/**\n * OAuth2 Grant Type\n * @export\n * @enum {string}\n */\nexports.GrantTypeBeta = {\n ClientCredentials: 'CLIENT_CREDENTIALS',\n AuthorizationCode: 'AUTHORIZATION_CODE',\n RefreshToken: 'REFRESH_TOKEN'\n};\n/**\n * Defines the HTTP Authentication type. Additional values may be added in the future. If *NO_AUTH* is selected, no extra information will be in HttpConfig. If *BASIC_AUTH* is selected, HttpConfig will include BasicAuthConfig with Username and Password as strings. If *BEARER_TOKEN* is selected, HttpConfig will include BearerTokenAuthConfig with Token as string.\n * @export\n * @enum {string}\n */\nexports.HttpAuthenticationTypeBeta = {\n NoAuth: 'NO_AUTH',\n BasicAuth: 'BASIC_AUTH',\n BearerToken: 'BEARER_TOKEN'\n};\n/**\n * HTTP response modes, i.e. SYNC, ASYNC, or DYNAMIC.\n * @export\n * @enum {string}\n */\nexports.HttpDispatchModeBeta = {\n Sync: 'SYNC',\n Async: 'ASYNC',\n Dynamic: 'DYNAMIC'\n};\nexports.IdentityAttributesChangedIdentityBetaTypeEnum = {\n Identity: 'IDENTITY'\n};\nexports.IdentityBetaProcessingStateEnum = {\n Error: 'ERROR',\n Ok: 'OK'\n};\nexports.IdentityBetaIdentityStatusEnum = {\n Unregistered: 'UNREGISTERED',\n Registered: 'REGISTERED',\n Pending: 'PENDING',\n Warning: 'WARNING',\n Disabled: 'DISABLED',\n Active: 'ACTIVE',\n Deactivated: 'DEACTIVATED',\n Terminated: 'TERMINATED',\n Error: 'ERROR',\n Locked: 'LOCKED'\n};\nexports.IdentityCertificationTaskBetaTypeEnum = {\n Reassign: 'REASSIGN'\n};\nexports.IdentityCertificationTaskBetaStatusEnum = {\n Queued: 'QUEUED',\n InProgress: 'IN_PROGRESS',\n Success: 'SUCCESS',\n Error: 'ERROR'\n};\nexports.IdentityCreatedIdentityBetaTypeEnum = {\n Identity: 'IDENTITY'\n};\nexports.IdentityDeletedIdentityBetaTypeEnum = {\n Identity: 'IDENTITY'\n};\nexports.IdentityDtoBetaProcessingStateEnum = {\n Error: 'ERROR',\n Ok: 'OK'\n};\nexports.IdentityDtoBetaIdentityStatusEnum = {\n Unregistered: 'UNREGISTERED',\n Registered: 'REGISTERED',\n Pending: 'PENDING',\n Warning: 'WARNING',\n Disabled: 'DISABLED',\n Active: 'ACTIVE',\n Deactivated: 'DEACTIVATED',\n Terminated: 'TERMINATED',\n Error: 'ERROR',\n Locked: 'LOCKED'\n};\nexports.IdentityDtoManagerRefBetaTypeEnum = {\n Identity: 'IDENTITY'\n};\nexports.IdentityProfile1AllOfAuthoritativeSourceBetaTypeEnum = {\n Source: 'SOURCE'\n};\nexports.IdentityProfileAllOfAuthoritativeSourceBetaTypeEnum = {\n Source: 'SOURCE'\n};\nexports.IdentityProfileAllOfOwnerBetaTypeEnum = {\n Identity: 'IDENTITY'\n};\nexports.IdentitySyncJobBetaStatusEnum = {\n Queued: 'QUEUED',\n InProgress: 'IN_PROGRESS',\n Success: 'SUCCESS',\n Error: 'ERROR'\n};\nexports.IdentityWithNewAccessAccessRefsInnerBetaTypeEnum = {\n Entitlement: 'ENTITLEMENT'\n};\nexports.ImportObjectBetaTypeEnum = {\n IdentityObjectConfig: 'IDENTITY_OBJECT_CONFIG',\n IdentityProfile: 'IDENTITY_PROFILE',\n Rule: 'RULE',\n Source: 'SOURCE',\n Transform: 'TRANSFORM',\n TriggerSubscription: 'TRIGGER_SUBSCRIPTION'\n};\nexports.ImportOptionsBetaExcludeTypesEnum = {\n IdentityObjectConfig: 'IDENTITY_OBJECT_CONFIG',\n IdentityProfile: 'IDENTITY_PROFILE',\n Rule: 'RULE',\n Source: 'SOURCE',\n Transform: 'TRANSFORM',\n TriggerSubscription: 'TRIGGER_SUBSCRIPTION'\n};\nexports.ImportOptionsBetaIncludeTypesEnum = {\n IdentityObjectConfig: 'IDENTITY_OBJECT_CONFIG',\n IdentityProfile: 'IDENTITY_PROFILE',\n Rule: 'RULE',\n Source: 'SOURCE',\n Transform: 'TRANSFORM',\n TriggerSubscription: 'TRIGGER_SUBSCRIPTION'\n};\nexports.ImportOptionsBetaDefaultReferencesEnum = {\n IdentityObjectConfig: 'IDENTITY_OBJECT_CONFIG',\n IdentityProfile: 'IDENTITY_PROFILE',\n Rule: 'RULE',\n Source: 'SOURCE',\n Transform: 'TRANSFORM',\n TriggerSubscription: 'TRIGGER_SUBSCRIPTION'\n};\n/**\n * Defines the Invocation type. **TEST** The trigger was invocated as a test, either via the test subscription button in the UI or via the start test invocation API. **REAL_TIME** The trigger subscription is live and was invocated by a real event in IdentityNow.\n * @export\n * @enum {string}\n */\nexports.InvocationStatusTypeBeta = {\n Test: 'TEST',\n RealTime: 'REAL_TIME'\n};\nexports.JsonPatchOperationBetaOpEnum = {\n Add: 'add',\n Remove: 'remove',\n Replace: 'replace',\n Move: 'move',\n Copy: 'copy',\n Test: 'test'\n};\nexports.LatestOutlierSummaryBetaTypeEnum = {\n LowSimilarity: 'LOW_SIMILARITY',\n Structural: 'STRUCTURAL'\n};\nexports.ListWorkgroupMembers200ResponseInnerBetaTypeEnum = {\n Identity: 'IDENTITY'\n};\n/**\n * An indicator of how the locale was selected. *DEFAULT* means the locale is the system default. *REQUEST* means the locale was selected from the request context (i.e., best match based on the *Accept-Language* header). Additional values may be added in the future without notice.\n * @export\n * @enum {string}\n */\nexports.LocaleOriginBeta = {\n Default: 'DEFAULT',\n Request: 'REQUEST'\n};\nexports.MailFromAttributesBetaMailFromDomainStatusEnum = {\n Pending: 'PENDING',\n Success: 'SUCCESS',\n Failed: 'FAILED'\n};\n/**\n *\n * @export\n * @enum {string}\n */\nexports.ManagedClientStatusEnumBeta = {\n Normal: 'NORMAL',\n Undefined: 'UNDEFINED',\n NotConfigured: 'NOT_CONFIGURED',\n Configuring: 'CONFIGURING',\n Warning: 'WARNING',\n Error: 'ERROR',\n Failed: 'FAILED'\n};\n/**\n * Managed Client type\n * @export\n * @enum {string}\n */\nexports.ManagedClientTypeBeta = {\n Ccg: 'CCG',\n Va: 'VA',\n Internal: 'INTERNAL',\n IiqHarvester: 'IIQ_HARVESTER',\n Null: 'null'\n};\n/**\n * The Type of Cluster\n * @export\n * @enum {string}\n */\nexports.ManagedClusterTypesBeta = {\n Idn: 'idn',\n Iai: 'iai'\n};\nexports.ManualWorkItemDetailsCurrentOwnerBetaTypeEnum = {\n GovernanceGroup: 'GOVERNANCE_GROUP',\n Identity: 'IDENTITY'\n};\nexports.ManualWorkItemDetailsOriginalOwnerBetaTypeEnum = {\n GovernanceGroup: 'GOVERNANCE_GROUP',\n Identity: 'IDENTITY'\n};\n/**\n * Indicates the state of the request processing for this item: * PENDING: The request for this item is awaiting processing. * APPROVED: The request for this item has been approved. * REJECTED: The request for this item was rejected. * EXPIRED: The request for this item expired with no action taken. * CANCELLED: The request for this item was cancelled with no user action. * ARCHIVED: The request for this item has been archived after completion.\n * @export\n * @enum {string}\n */\nexports.ManualWorkItemStateBeta = {\n Pending: 'PENDING',\n Approved: 'APPROVED',\n Rejected: 'REJECTED',\n Expired: 'EXPIRED',\n Cancelled: 'CANCELLED',\n Archived: 'ARCHIVED'\n};\n/**\n *\n * @export\n * @enum {string}\n */\nexports.MediumBeta = {\n Email: 'EMAIL',\n Sms: 'SMS',\n Phone: 'PHONE',\n Slack: 'SLACK',\n Teams: 'TEAMS'\n};\nexports.MfaConfigTestResponseBetaStateEnum = {\n Success: 'SUCCESS',\n Failed: 'FAILED'\n};\n/**\n * | Construct | Date Time Pattern | Description | | --------- | ----------------- | ----------- | | ISO8601 | `yyyy-MM-dd\\'T\\'HH:mm:ss.SSSX` | The ISO8601 standard. | | LDAP | `yyyyMMddHHmmss.Z` | The LDAP standard. | | PEOPLE_SOFT | `MM/dd/yyyy` | The date format People Soft uses. | | EPOCH_TIME_JAVA | # ms from midnight, January 1st, 1970 | The incoming date value as elapsed time in milliseconds from midnight, January 1st, 1970. | | EPOCH_TIME_WIN32| # intervals of 100ns from midnight, January 1st, 1601 | The incoming date value as elapsed time in 100-nanosecond intervals from midnight, January 1st, 1601. |\n * @export\n * @enum {string}\n */\nexports.NamedConstructsBeta = {\n Iso8601: 'ISO8601',\n Ldap: 'LDAP',\n PeopleSoft: 'PEOPLE_SOFT',\n EpochTimeJava: 'EPOCH_TIME_JAVA',\n EpochTimeWin32: 'EPOCH_TIME_WIN32'\n};\nexports.NativeChangeDetectionConfigBetaOperationsEnum = {\n Updated: 'ACCOUNT_UPDATED',\n Created: 'ACCOUNT_CREATED',\n Deleted: 'ACCOUNT_DELETED'\n};\nexports.NonEmployeeBulkUploadJobBetaStatusEnum = {\n Pending: 'PENDING',\n InProgress: 'IN_PROGRESS',\n Completed: 'COMPLETED',\n Error: 'ERROR'\n};\nexports.NonEmployeeBulkUploadStatusBetaStatusEnum = {\n Pending: 'PENDING',\n InProgress: 'IN_PROGRESS',\n Completed: 'COMPLETED',\n Error: 'ERROR'\n};\n/**\n * Enum representing the type of data a schema attribute accepts.\n * @export\n * @enum {string}\n */\nexports.NonEmployeeSchemaAttributeTypeBeta = {\n Text: 'TEXT',\n Date: 'DATE',\n Identity: 'IDENTITY'\n};\nexports.OutlierBetaTypeEnum = {\n LowSimilarity: 'LOW_SIMILARITY',\n Structural: 'STRUCTURAL'\n};\nexports.OutlierBetaUnignoreTypeEnum = {\n Manual: 'MANUAL',\n Automatic: 'AUTOMATIC'\n};\nexports.OutlierContributingFeatureBetaValueTypeEnum = {\n Integer: 'INTEGER',\n Float: 'FLOAT'\n};\nexports.OutlierFeatureSummaryOutlierFeatureDisplayValuesInnerBetaValueTypeEnum = {\n Integer: 'INTEGER',\n Float: 'FLOAT'\n};\nexports.OutlierSummaryBetaTypeEnum = {\n LowSimilarity: 'LOW_SIMILARITY',\n Structural: 'STRUCTURAL'\n};\nexports.OutliersContributingFeatureAccessItemsBetaAccessTypeEnum = {\n Entitlement: 'ENTITLEMENT',\n AccessProfile: 'ACCESS_PROFILE',\n Role: 'ROLE'\n};\nexports.OwnerDtoBetaTypeEnum = {\n Identity: 'IDENTITY'\n};\nexports.OwnerReferenceBetaTypeEnum = {\n Identity: 'IDENTITY'\n};\nexports.OwnerReferenceDtoBetaTypeEnum = {\n Identity: 'IDENTITY'\n};\nexports.OwnerReferenceSegmentsBetaTypeEnum = {\n Identity: 'IDENTITY'\n};\nexports.PasswordChangeResponseBetaStateEnum = {\n InProgress: 'IN_PROGRESS',\n Finished: 'FINISHED',\n Failed: 'FAILED'\n};\nexports.PasswordStatusBetaStateEnum = {\n InProgress: 'IN_PROGRESS',\n Finished: 'FINISHED',\n Failed: 'FAILED'\n};\nexports.PatOwnerBetaTypeEnum = {\n Identity: 'IDENTITY'\n};\nexports.PatchPotentialRoleRequestInnerBetaOpEnum = {\n Remove: 'remove',\n Replace: 'replace'\n};\n/**\n * Enum represents action that is being processed on an approval.\n * @export\n * @enum {string}\n */\nexports.PendingApprovalActionBeta = {\n Approved: 'APPROVED',\n Rejected: 'REJECTED',\n Forwarded: 'FORWARDED'\n};\nexports.PreApprovalTriggerDetailsBetaDecisionEnum = {\n Approved: 'APPROVED',\n Rejected: 'REJECTED'\n};\nexports.ProvisioningCompletedAccountRequestsInnerAttributeRequestsInnerBetaOperationEnum = {\n Add: 'Add',\n Set: 'Set',\n Remove: 'Remove'\n};\nexports.ProvisioningCompletedAccountRequestsInnerBetaProvisioningResultEnum = {\n Success: 'SUCCESS',\n Pending: 'PENDING',\n Failed: 'FAILED'\n};\nexports.ProvisioningCompletedAccountRequestsInnerSourceBetaTypeEnum = {\n Source: 'SOURCE'\n};\nexports.ProvisioningCompletedRecipientBetaTypeEnum = {\n Identity: 'IDENTITY'\n};\nexports.ProvisioningCompletedRequesterBetaTypeEnum = {\n Identity: 'IDENTITY'\n};\nexports.ProvisioningConfigManagedResourceRefsInnerBetaTypeEnum = {\n Source: 'SOURCE'\n};\n/**\n * Supported operations on ProvisioningCriteria\n * @export\n * @enum {string}\n */\nexports.ProvisioningCriteriaOperationBeta = {\n Equals: 'EQUALS',\n NotEquals: 'NOT_EQUALS',\n Contains: 'CONTAINS',\n Has: 'HAS',\n And: 'AND',\n Or: 'OR'\n};\n/**\n * Provisioning state of an account activity item\n * @export\n * @enum {string}\n */\nexports.ProvisioningStateBeta = {\n Pending: 'PENDING',\n Finished: 'FINISHED',\n Unverifiable: 'UNVERIFIABLE',\n Commited: 'COMMITED',\n Failed: 'FAILED',\n Retry: 'RETRY'\n};\nexports.ReassignReferenceBetaTypeEnum = {\n TargetSummary: 'TARGET_SUMMARY',\n Item: 'ITEM',\n IdentitySummary: 'IDENTITY_SUMMARY'\n};\n/**\n * The approval reassignment type. * MANUAL_REASSIGNMENT: An approval with this reassignment type has been specifically reassigned by the approval task\\'s owner, from their queue to someone else\\'s. * AUTOMATIC_REASSIGNMENT: An approval with this reassignment type has been automatically reassigned from another approver\\'s queue, according to that approver\\'s reassignment configuration. The approver\\'s reassignment configuration may be set up to automatically reassign approval tasks for a defined (or possibly open-ended) period of time. * AUTO_ESCALATION: An approval with this reassignment type has been automatically reassigned from another approver\\'s queue, according to the request\\'s escalation configuration. For more information about escalation configuration, refer to [Setting Global Reminders and Escalation Policies](https://documentation.sailpoint.com/saas/help/requests/config_emails.html). * SELF_REVIEW_DELEGATION: An approval with this reassignment type has been automatically reassigned by the system to prevent self-review. This helps prevent situations like a requester being tasked with approving their own request. For more information about preventing self-review, refer to [Self-review Prevention](https://documentation.sailpoint.com/saas/help/users/work_reassignment.html#self-review-prevention) and [Preventing Self-approval](https://documentation.sailpoint.com/saas/help/requests/config_ap_roles.html#preventing-self-approval).\n * @export\n * @enum {string}\n */\nexports.ReassignmentTypeBeta = {\n ManualReassignment: 'MANUAL_REASSIGNMENT',\n AutomaticReassignment: 'AUTOMATIC_REASSIGNMENT',\n AutoEscalation: 'AUTO_ESCALATION',\n SelfReviewDelegation: 'SELF_REVIEW_DELEGATION'\n};\n/**\n * Enum list containing types of Reassignment that can be found in the evaluate response.\n * @export\n * @enum {string}\n */\nexports.ReassignmentTypeEnumBeta = {\n ManualReassignment: 'MANUAL_REASSIGNMENT,',\n AutomaticReassignment: 'AUTOMATIC_REASSIGNMENT,',\n AutoEscalation: 'AUTO_ESCALATION,',\n SelfReviewDelegation: 'SELF_REVIEW_DELEGATION'\n};\nexports.RecommendationResponseBetaRecommendationEnum = {\n True: 'true',\n False: 'false',\n Maybe: 'MAYBE',\n NotFound: 'NOT_FOUND'\n};\nexports.ReportResultReferenceAllOfBetaStatusEnum = {\n Success: 'SUCCESS',\n Warning: 'WARNING',\n Error: 'ERROR',\n Terminated: 'TERMINATED',\n TempError: 'TEMP_ERROR',\n Pending: 'PENDING'\n};\nexports.ReportResultReferenceBetaTypeEnum = {\n ReportResult: 'REPORT_RESULT'\n};\nexports.ReportResultReferenceBetaStatusEnum = {\n Success: 'SUCCESS',\n Warning: 'WARNING',\n Error: 'ERROR',\n Terminated: 'TERMINATED',\n TempError: 'TEMP_ERROR',\n Pending: 'PENDING'\n};\n/**\n * type of a Report\n * @export\n * @enum {string}\n */\nexports.ReportTypeBeta = {\n CampaignCompositionReport: 'CAMPAIGN_COMPOSITION_REPORT',\n CampaignRemediationStatusReport: 'CAMPAIGN_REMEDIATION_STATUS_REPORT',\n CampaignStatusReport: 'CAMPAIGN_STATUS_REPORT',\n CertificationSignoffReport: 'CERTIFICATION_SIGNOFF_REPORT'\n};\nexports.RequestableObjectReferenceBetaTypeEnum = {\n AccessProfile: 'ACCESS_PROFILE',\n Role: 'ROLE',\n Entitlement: 'ENTITLEMENT'\n};\n/**\n * Status indicating the ability of an access request for the object to be made by or on behalf of the identity specified by *identity-id*. *AVAILABLE* indicates the object is available to request. *PENDING* indicates the object is unavailable because the identity has a pending request in flight. *ASSIGNED* indicates the object is unavailable because the identity already has the indicated role or access profile. If *identity-id* is not specified (allowed only for admin users), then status will be *AVAILABLE* for all results.\n * @export\n * @enum {string}\n */\nexports.RequestableObjectRequestStatusBeta = {\n Available: 'AVAILABLE',\n Pending: 'PENDING',\n Assigned: 'ASSIGNED'\n};\n/**\n * The currently supported requestable object types.\n * @export\n * @enum {string}\n */\nexports.RequestableObjectTypeBeta = {\n AccessProfile: 'ACCESS_PROFILE',\n Role: 'ROLE'\n};\nexports.RequestedItemStatusBetaTypeEnum = {\n AccessProfile: 'ACCESS_PROFILE',\n Role: 'ROLE',\n Entitlement: 'ENTITLEMENT'\n};\n/**\n * Indicates the state of an access request: * EXECUTING: The request is executing, which indicates the system is doing some processing. * REQUEST_COMPLETED: Indicates the request has been completed. * CANCELLED: The request was cancelled with no user input. * TERMINATED: The request has been terminated before it was able to complete. * PROVISIONING_VERIFICATION_PENDING: The request has finished any approval steps and provisioning is waiting to be verified. * REJECTED: The request was rejected. * PROVISIONING_FAILED: The request has failed to complete. * NOT_ALL_ITEMS_PROVISIONED: One or more of the requested items failed to complete, but there were one or more successes. * ERROR: An error occurred during request processing.\n * @export\n * @enum {string}\n */\nexports.RequestedItemStatusRequestStateBeta = {\n Executing: 'EXECUTING',\n RequestCompleted: 'REQUEST_COMPLETED',\n Cancelled: 'CANCELLED',\n Terminated: 'TERMINATED',\n ProvisioningVerificationPending: 'PROVISIONING_VERIFICATION_PENDING',\n Rejected: 'REJECTED',\n ProvisioningFailed: 'PROVISIONING_FAILED',\n NotAllItemsProvisioned: 'NOT_ALL_ITEMS_PROVISIONED',\n Error: 'ERROR'\n};\nexports.ReviewerBetaTypeEnum = {\n Identity: 'IDENTITY',\n GovernanceGroup: 'GOVERNANCE_GROUP'\n};\n/**\n * Type which indicates how a particular Identity obtained a particular Role\n * @export\n * @enum {string}\n */\nexports.RoleAssignmentSourceTypeBeta = {\n AccessRequest: 'ACCESS_REQUEST',\n RoleMembership: 'ROLE_MEMBERSHIP'\n};\n/**\n * Indicates whether the associated criteria represents an expression on identity attributes, account attributes, or entitlements, respectively.\n * @export\n * @enum {string}\n */\nexports.RoleCriteriaKeyTypeBeta = {\n Identity: 'IDENTITY',\n Account: 'ACCOUNT',\n Entitlement: 'ENTITLEMENT'\n};\n/**\n * An operation\n * @export\n * @enum {string}\n */\nexports.RoleCriteriaOperationBeta = {\n Equals: 'EQUALS',\n NotEquals: 'NOT_EQUALS',\n Contains: 'CONTAINS',\n StartsWith: 'STARTS_WITH',\n EndsWith: 'ENDS_WITH',\n And: 'AND',\n Or: 'OR'\n};\nexports.RoleInsightsResponseBetaStatusEnum = {\n Created: 'CREATED',\n InProgress: 'IN PROGRESS',\n Completed: 'COMPLETED',\n Failed: 'FAILED'\n};\n/**\n * This enum characterizes the type of a Role\\'s membership selector. Only the following two are fully supported: STANDARD: Indicates that Role membership is defined in terms of a criteria expression IDENTITY_LIST: Indicates that Role membership is conferred on the specific identities listed\n * @export\n * @enum {string}\n */\nexports.RoleMembershipSelectorTypeBeta = {\n Standard: 'STANDARD',\n IdentityList: 'IDENTITY_LIST'\n};\n/**\n *\n * @export\n * @enum {string}\n */\nexports.RoleMiningPotentialRoleExportStateBeta = {\n Queued: 'QUEUED',\n InProgress: 'IN_PROGRESS',\n Success: 'SUCCESS',\n Error: 'ERROR'\n};\n/**\n * Provision state\n * @export\n * @enum {string}\n */\nexports.RoleMiningPotentialRoleProvisionStateBeta = {\n Potential: 'POTENTIAL',\n Pending: 'PENDING',\n Complete: 'COMPLETE',\n Failed: 'FAILED'\n};\n/**\n * Role type\n * @export\n * @enum {string}\n */\nexports.RoleMiningRoleTypeBeta = {\n Specialized: 'SPECIALIZED',\n Common: 'COMMON'\n};\n/**\n * The scoping method used in the current role mining session.\n * @export\n * @enum {string}\n */\nexports.RoleMiningSessionScopingMethodBeta = {\n Manual: 'MANUAL',\n AutoRm: 'AUTO_RM'\n};\n/**\n * Role mining session status\n * @export\n * @enum {string}\n */\nexports.RoleMiningSessionStateBeta = {\n Created: 'CREATED',\n Updated: 'UPDATED',\n IdentitiesObtained: 'IDENTITIES_OBTAINED',\n PruneThresholdObtained: 'PRUNE_THRESHOLD_OBTAINED',\n PotentialRolesProcessing: 'POTENTIAL_ROLES_PROCESSING',\n PotentialRolesCreated: 'POTENTIAL_ROLES_CREATED'\n};\nexports.ScheduleBetaTypeEnum = {\n Weekly: 'WEEKLY',\n Monthly: 'MONTHLY',\n Annually: 'ANNUALLY',\n Calendar: 'CALENDAR'\n};\nexports.ScheduleDaysBetaTypeEnum = {\n List: 'LIST',\n Range: 'RANGE'\n};\nexports.ScheduleHoursBetaTypeEnum = {\n List: 'LIST',\n Range: 'RANGE'\n};\nexports.ScheduleMonthsBetaTypeEnum = {\n List: 'LIST',\n Range: 'RANGE'\n};\n/**\n * Enum representing the currently supported schedule types. Additional values may be added in the future without notice.\n * @export\n * @enum {string}\n */\nexports.ScheduleTypeBeta = {\n Daily: 'DAILY',\n Weekly: 'WEEKLY',\n Monthly: 'MONTHLY',\n Calendar: 'CALENDAR'\n};\n/**\n * Enum representing the currently supported selector types. LIST - the *values* array contains one or more distinct values. RANGE - the *values* array contains two values: the start and end of the range, inclusive. Additional values may be added in the future without notice.\n * @export\n * @enum {string}\n */\nexports.SelectorTypeBeta = {\n List: 'LIST',\n Range: 'RANGE'\n};\nexports.SelfImportExportDtoBetaTypeEnum = {\n AccessProfile: 'ACCESS_PROFILE',\n AccessRequestConfig: 'ACCESS_REQUEST_CONFIG',\n AttrSyncSourceConfig: 'ATTR_SYNC_SOURCE_CONFIG',\n AuthOrg: 'AUTH_ORG',\n CampaignFilter: 'CAMPAIGN_FILTER',\n FormDefinition: 'FORM_DEFINITION',\n GovernanceGroup: 'GOVERNANCE_GROUP',\n IdentityObjectConfig: 'IDENTITY_OBJECT_CONFIG',\n IdentityProfile: 'IDENTITY_PROFILE',\n LifecycleState: 'LIFECYCLE_STATE',\n NotificationTemplate: 'NOTIFICATION_TEMPLATE',\n PasswordPolicy: 'PASSWORD_POLICY',\n PasswordSyncGroup: 'PASSWORD_SYNC_GROUP',\n PublicIdentitiesConfig: 'PUBLIC_IDENTITIES_CONFIG',\n Role: 'ROLE',\n Rule: 'RULE',\n Segment: 'SEGMENT',\n ServiceDeskIntegration: 'SERVICE_DESK_INTEGRATION',\n SodPolicy: 'SOD_POLICY',\n Source: 'SOURCE',\n Tag: 'TAG',\n Transform: 'TRANSFORM',\n TriggerSubscription: 'TRIGGER_SUBSCRIPTION',\n Workflow: 'WORKFLOW'\n};\nexports.SendTestNotificationRequestDtoBetaMediumEnum = {\n Email: 'EMAIL',\n Slack: 'SLACK',\n Teams: 'TEAMS'\n};\nexports.ServiceDeskSourceBetaTypeEnum = {\n Source: 'SOURCE'\n};\nexports.SlimcampaignBetaTypeEnum = {\n Manager: 'MANAGER',\n SourceOwner: 'SOURCE_OWNER',\n Search: 'SEARCH',\n RoleComposition: 'ROLE_COMPOSITION'\n};\nexports.SlimcampaignBetaStatusEnum = {\n Pending: 'PENDING',\n Staged: 'STAGED',\n Canceling: 'CANCELING',\n Activating: 'ACTIVATING',\n Active: 'ACTIVE',\n Completing: 'COMPLETING',\n Completed: 'COMPLETED',\n Error: 'ERROR',\n Archived: 'ARCHIVED'\n};\nexports.SlimcampaignBetaCorrelatedStatusEnum = {\n Correlated: 'CORRELATED',\n Uncorrelated: 'UNCORRELATED'\n};\nexports.SodPolicyBetaStateEnum = {\n Enforced: 'ENFORCED',\n NotEnforced: 'NOT_ENFORCED'\n};\nexports.SodPolicyBetaTypeEnum = {\n General: 'GENERAL',\n ConflictingAccessBased: 'CONFLICTING_ACCESS_BASED'\n};\nexports.SodPolicyDtoBetaTypeEnum = {\n SodPolicy: 'SOD_POLICY'\n};\nexports.SodRecipientBetaTypeEnum = {\n Identity: 'IDENTITY'\n};\nexports.SodReportResultDtoBetaTypeEnum = {\n ReportResult: 'REPORT_RESULT'\n};\nexports.SodViolationContextCheckCompleted1BetaStateEnum = {\n Success: 'SUCCESS',\n Error: 'ERROR'\n};\nexports.SodViolationContextCheckCompletedBetaStateEnum = {\n Success: 'SUCCESS',\n Error: 'ERROR'\n};\nexports.SourceAccountCorrelationConfigBetaTypeEnum = {\n AccountCorrelationConfig: 'ACCOUNT_CORRELATION_CONFIG'\n};\nexports.SourceAccountCorrelationRuleBetaTypeEnum = {\n Rule: 'RULE'\n};\nexports.SourceBeforeProvisioningRuleBetaTypeEnum = {\n Rule: 'RULE'\n};\nexports.SourceClusterBetaTypeEnum = {\n Cluster: 'CLUSTER'\n};\nexports.SourceClusterDtoBetaTypeEnum = {\n Cluster: 'CLUSTER'\n};\nexports.SourceCreatedActorBetaTypeEnum = {\n Identity: 'IDENTITY'\n};\nexports.SourceDeletedActorBetaTypeEnum = {\n Identity: 'IDENTITY'\n};\n/**\n * Optional features that can be supported by an source. * AUTHENTICATE: The source supports pass-through authentication. * COMPOSITE: The source supports composite source creation. * DIRECT_PERMISSIONS: The source supports returning DirectPermissions. * DISCOVER_SCHEMA: The source supports discovering schemas for users and groups. * ENABLE The source supports reading if an account is enabled or disabled. * MANAGER_LOOKUP: The source supports looking up managers as they are encountered in a feed. This is the opposite of NO_RANDOM_ACCESS. * NO_RANDOM_ACCESS: The source does not support random access and the getObject() methods should not be called and expected to perform. * PROXY: The source can serve as a proxy for another source. When an source has a proxy, all connector calls made with that source are redirected through the connector for the proxy source. * SEARCH * TEMPLATE * UNLOCK: The source supports reading if an account is locked or unlocked. * UNSTRUCTURED_TARGETS: The source supports returning unstructured Targets. * SHAREPOINT_TARGET: The source supports returning unstructured Target data for SharePoint. It will be typically used by AD, LDAP sources. * PROVISIONING: The source can both read and write accounts. Having this feature implies that the provision() method is implemented. It also means that direct and target permissions can also be provisioned if they can be returned by aggregation. * GROUP_PROVISIONING: The source can both read and write groups. Having this feature implies that the provision() method is implemented. * SYNC_PROVISIONING: The source can provision accounts synchronously. * PASSWORD: The source can provision password changes. Since sources can never read passwords, this is should only be used in conjunction with the PROVISIONING feature. * CURRENT_PASSWORD: Some source types support verification of the current password * ACCOUNT_ONLY_REQUEST: The source supports requesting accounts without entitlements. * ADDITIONAL_ACCOUNT_REQUEST: The source supports requesting additional accounts. * NO_AGGREGATION: A source that does not support aggregation. * GROUPS_HAVE_MEMBERS: The source models group memberships with a member attribute on the group object rather than a groups attribute on the account object. This effects the implementation of delta account aggregation. * NO_PERMISSIONS_PROVISIONING: Indicates that the connector cannot provision direct or target permissions for accounts. When DIRECT_PERMISSIONS and PROVISIONING features are present, it is assumed that the connector can also provision direct permissions. This feature disables that assumption and causes permission request to be converted to work items for accounts. * NO_GROUP_PERMISSIONS_PROVISIONING: Indicates that the connector cannot provision direct or target permissions for groups. When DIRECT_PERMISSIONS and PROVISIONING features are present, it is assumed that the connector can also provision direct permissions. This feature disables that assumption and causes permission request to be converted to work items for groups. * NO_UNSTRUCTURED_TARGETS_PROVISIONING: This string will be replaced by NO_GROUP_PERMISSIONS_PROVISIONING and NO_PERMISSIONS_PROVISIONING. * NO_DIRECT_PERMISSIONS_PROVISIONING: This string will be replaced by NO_GROUP_PERMISSIONS_PROVISIONING and NO_PERMISSIONS_PROVISIONING.\n * @export\n * @enum {string}\n */\nexports.SourceFeatureBeta = {\n Authenticate: 'AUTHENTICATE',\n Composite: 'COMPOSITE',\n DirectPermissions: 'DIRECT_PERMISSIONS',\n DiscoverSchema: 'DISCOVER_SCHEMA',\n Enable: 'ENABLE',\n ManagerLookup: 'MANAGER_LOOKUP',\n NoRandomAccess: 'NO_RANDOM_ACCESS',\n Proxy: 'PROXY',\n Search: 'SEARCH',\n Template: 'TEMPLATE',\n Unlock: 'UNLOCK',\n UnstructuredTargets: 'UNSTRUCTURED_TARGETS',\n SharepointTarget: 'SHAREPOINT_TARGET',\n Provisioning: 'PROVISIONING',\n GroupProvisioning: 'GROUP_PROVISIONING',\n SyncProvisioning: 'SYNC_PROVISIONING',\n Password: 'PASSWORD',\n CurrentPassword: 'CURRENT_PASSWORD',\n AccountOnlyRequest: 'ACCOUNT_ONLY_REQUEST',\n AdditionalAccountRequest: 'ADDITIONAL_ACCOUNT_REQUEST',\n NoAggregation: 'NO_AGGREGATION',\n GroupsHaveMembers: 'GROUPS_HAVE_MEMBERS',\n NoPermissionsProvisioning: 'NO_PERMISSIONS_PROVISIONING',\n NoGroupPermissionsProvisioning: 'NO_GROUP_PERMISSIONS_PROVISIONING',\n NoUnstructuredTargetsProvisioning: 'NO_UNSTRUCTURED_TARGETS_PROVISIONING',\n NoDirectPermissionsProvisioning: 'NO_DIRECT_PERMISSIONS_PROVISIONING',\n PreferUuid: 'PREFER_UUID'\n};\nexports.SourceManagementWorkgroupBetaTypeEnum = {\n GovernanceGroup: 'GOVERNANCE_GROUP'\n};\nexports.SourceManagerCorrelationRuleBetaTypeEnum = {\n Rule: 'RULE'\n};\nexports.SourceOwnerBetaTypeEnum = {\n Identity: 'IDENTITY'\n};\nexports.SourcePasswordPoliciesInnerBetaTypeEnum = {\n PasswordPolicy: 'PASSWORD_POLICY'\n};\nexports.SourceSchemasInnerBetaTypeEnum = {\n ConnectorSchema: 'CONNECTOR_SCHEMA'\n};\nexports.SourceSyncJobBetaStatusEnum = {\n Queued: 'QUEUED',\n InProgress: 'IN_PROGRESS',\n Success: 'SUCCESS',\n Error: 'ERROR'\n};\nexports.SourceUpdatedActorBetaTypeEnum = {\n Identity: 'IDENTITY'\n};\nexports.SourceUsageStatusBetaStatusEnum = {\n Complete: 'COMPLETE',\n Incomplete: 'INCOMPLETE'\n};\nexports.SpConfigJobBetaStatusEnum = {\n NotStarted: 'NOT_STARTED',\n InProgress: 'IN_PROGRESS',\n Complete: 'COMPLETE',\n Cancelled: 'CANCELLED',\n Failed: 'FAILED'\n};\nexports.SpConfigJobBetaTypeEnum = {\n Export: 'EXPORT',\n Import: 'IMPORT'\n};\n/**\n * Standard Log4j log level\n * @export\n * @enum {string}\n */\nexports.StandardLevelBeta = {\n False: 'false',\n Fatal: 'FATAL',\n Error: 'ERROR',\n Warn: 'WARN',\n Info: 'INFO',\n Debug: 'DEBUG',\n Trace: 'TRACE'\n};\nexports.StatusResponseBetaStatusEnum = {\n Success: 'SUCCESS',\n Failure: 'FAILURE'\n};\nexports.SubscriptionPatchRequestInnerBetaOpEnum = {\n Add: 'add',\n Remove: 'remove',\n Replace: 'replace',\n Move: 'move',\n Copy: 'copy'\n};\n/**\n * Subscription type. **NOTE** If type is EVENTBRIDGE, then eventBridgeConfig is required. If type is HTTP, then httpConfig is required.\n * @export\n * @enum {string}\n */\nexports.SubscriptionTypeBeta = {\n Http: 'HTTP',\n Eventbridge: 'EVENTBRIDGE',\n Inline: 'INLINE',\n Script: 'SCRIPT',\n Workflow: 'WORKFLOW'\n};\nexports.TaggedObjectDtoBetaTypeEnum = {\n AccessProfile: 'ACCESS_PROFILE',\n Application: 'APPLICATION',\n Campaign: 'CAMPAIGN',\n Entitlement: 'ENTITLEMENT',\n Identity: 'IDENTITY',\n Role: 'ROLE',\n SodPolicy: 'SOD_POLICY',\n Source: 'SOURCE'\n};\nexports.TaggedObjectObjectRefBetaTypeEnum = {\n AccessProfile: 'ACCESS_PROFILE',\n Application: 'APPLICATION',\n Campaign: 'CAMPAIGN',\n Entitlement: 'ENTITLEMENT',\n Identity: 'IDENTITY',\n Role: 'ROLE',\n SodPolicy: 'SOD_POLICY',\n Source: 'SOURCE'\n};\nexports.TaskResultDtoBetaTypeEnum = {\n TaskResult: 'TASK_RESULT'\n};\nexports.TaskResultSimplifiedBetaCompletionStatusEnum = {\n Success: 'Success',\n Warning: 'Warning',\n Error: 'Error',\n Terminated: 'Terminated',\n TempError: 'TempError'\n};\nexports.TaskStatusBetaTypeEnum = {\n Quartz: 'QUARTZ',\n Qpoc: 'QPOC',\n QueuedTask: 'QUEUED_TASK'\n};\nexports.TaskStatusBetaCompletionStatusEnum = {\n Success: 'Success',\n Warning: 'Warning',\n Error: 'Error',\n Terminated: 'Terminated',\n TempError: 'TempError'\n};\nexports.TaskStatusMessageBetaTypeEnum = {\n Info: 'INFO',\n Warn: 'WARN',\n Error: 'ERROR'\n};\nexports.TemplateBulkDeleteDtoBetaMediumEnum = {\n Email: 'EMAIL',\n Phone: 'PHONE',\n Sms: 'SMS'\n};\nexports.TemplateDtoBetaMediumEnum = {\n Email: 'EMAIL',\n Phone: 'PHONE',\n Sms: 'SMS',\n Slack: 'SLACK',\n Teams: 'TEAMS'\n};\nexports.TemplateDtoDefaultBetaMediumEnum = {\n Email: 'EMAIL',\n Phone: 'PHONE',\n Sms: 'SMS',\n Slack: 'SLACK',\n Teams: 'TEAMS'\n};\nexports.TransformBetaTypeEnum = {\n AccountAttribute: 'accountAttribute',\n Base64Decode: 'base64Decode',\n Base64Encode: 'base64Encode',\n Concat: 'concat',\n Conditional: 'conditional',\n DateCompare: 'dateCompare',\n DateFormat: 'dateFormat',\n DateMath: 'dateMath',\n DecomposeDiacriticalMarks: 'decomposeDiacriticalMarks',\n E164phone: 'e164phone',\n FirstValid: 'firstValid',\n Rule: 'rule',\n IdentityAttribute: 'identityAttribute',\n IndexOf: 'indexOf',\n Iso3166: 'iso3166',\n LastIndexOf: 'lastIndexOf',\n LeftPad: 'leftPad',\n Lookup: 'lookup',\n Lower: 'lower',\n NormalizeNames: 'normalizeNames',\n RandomAlphaNumeric: 'randomAlphaNumeric',\n RandomNumeric: 'randomNumeric',\n Reference: 'reference',\n ReplaceAll: 'replaceAll',\n Replace: 'replace',\n RightPad: 'rightPad',\n Split: 'split',\n Static: 'static',\n Substring: 'substring',\n Trim: 'trim',\n Upper: 'upper',\n UsernameGenerator: 'usernameGenerator',\n Uuid: 'uuid'\n};\nexports.TransformReadBetaTypeEnum = {\n AccountAttribute: 'accountAttribute',\n Base64Decode: 'base64Decode',\n Base64Encode: 'base64Encode',\n Concat: 'concat',\n Conditional: 'conditional',\n DateCompare: 'dateCompare',\n DateFormat: 'dateFormat',\n DateMath: 'dateMath',\n DecomposeDiacriticalMarks: 'decomposeDiacriticalMarks',\n E164phone: 'e164phone',\n FirstValid: 'firstValid',\n Rule: 'rule',\n IdentityAttribute: 'identityAttribute',\n IndexOf: 'indexOf',\n Iso3166: 'iso3166',\n LastIndexOf: 'lastIndexOf',\n LeftPad: 'leftPad',\n Lookup: 'lookup',\n Lower: 'lower',\n NormalizeNames: 'normalizeNames',\n RandomAlphaNumeric: 'randomAlphaNumeric',\n RandomNumeric: 'randomNumeric',\n Reference: 'reference',\n ReplaceAll: 'replaceAll',\n Replace: 'replace',\n RightPad: 'rightPad',\n Split: 'split',\n Static: 'static',\n Substring: 'substring',\n Trim: 'trim',\n Upper: 'upper',\n UsernameGenerator: 'usernameGenerator',\n Uuid: 'uuid'\n};\n/**\n * The type of trigger.\n * @export\n * @enum {string}\n */\nexports.TriggerTypeBeta = {\n RequestResponse: 'REQUEST_RESPONSE',\n FireAndForget: 'FIRE_AND_FORGET'\n};\n/**\n * The type of provisioning policy usage. In IdentityNow, a source can support various provisioning operations. For example, when a joiner is added to a source, this may trigger both CREATE and UPDATE provisioning operations. Each usage type is considered a provisioning policy. A source can have any number of these provisioning policies defined. These are the common usage types: CREATE - This usage type relates to \\'Create Account Profile\\', the provisioning template for the account to be created. For example, this would be used for a joiner on a source. UPDATE - This usage type relates to \\'Update Account Profile\\', the provisioning template for the \\'Update\\' connector operations. For example, this would be used for an attribute sync on a source. ENABLE - This usage type relates to \\'Enable Account Profile\\', the provisioning template for the account to be enabled. For example, this could be used for a joiner on a source once the joiner\\'s account is created. DISABLE - This usage type relates to \\'Disable Account Profile\\', the provisioning template for the account to be disabled. For example, this could be used when a leaver is removed temporarily from a source. You can use these four usage types for all your provisioning policy needs.\n * @export\n * @enum {string}\n */\nexports.UsageTypeBeta = {\n Create: 'CREATE',\n Update: 'UPDATE',\n Enable: 'ENABLE',\n Disable: 'DISABLE',\n Delete: 'DELETE',\n Assign: 'ASSIGN',\n Unassign: 'UNASSIGN',\n CreateGroup: 'CREATE_GROUP',\n UpdateGroup: 'UPDATE_GROUP',\n DeleteGroup: 'DELETE_GROUP',\n Register: 'REGISTER',\n CreateIdentity: 'CREATE_IDENTITY',\n UpdateIdentity: 'UPDATE_IDENTITY',\n EditGroup: 'EDIT_GROUP',\n Unlock: 'UNLOCK',\n ChangePassword: 'CHANGE_PASSWORD'\n};\nexports.VAClusterStatusChangeEventBetaTypeEnum = {\n Source: 'SOURCE',\n Cluster: 'CLUSTER'\n};\nexports.VAClusterStatusChangeEventHealthCheckResultBetaStatusEnum = {\n Succeeded: 'Succeeded',\n Failed: 'Failed'\n};\nexports.VAClusterStatusChangeEventPreviousHealthCheckResultBetaStatusEnum = {\n Succeeded: 'Succeeded',\n Failed: 'Failed'\n};\nexports.ViolationContextPolicyBetaTypeEnum = {\n Entitlement: 'ENTITLEMENT'\n};\nexports.ViolationOwnerAssignmentConfigBetaAssignmentRuleEnum = {\n Manager: 'MANAGER',\n Static: 'STATIC',\n Null: 'null'\n};\nexports.ViolationOwnerAssignmentConfigOwnerRefBetaTypeEnum = {\n Identity: 'IDENTITY'\n};\n/**\n * The state of a work item\n * @export\n * @enum {string}\n */\nexports.WorkItemStateBeta = {\n Finished: 'FINISHED',\n Rejected: 'REJECTED',\n Returned: 'RETURNED',\n Expired: 'EXPIRED',\n Pending: 'PENDING',\n Canceled: 'CANCELED'\n};\n/**\n * The type of the work item\n * @export\n * @enum {string}\n */\nexports.WorkItemTypeBeta = {\n Unknown: 'UNKNOWN',\n Generic: 'GENERIC',\n Certification: 'CERTIFICATION',\n Remediation: 'REMEDIATION',\n Delegation: 'DELEGATION',\n Approval: 'APPROVAL',\n Violationreview: 'VIOLATIONREVIEW',\n Form: 'FORM',\n Policyviolation: 'POLICYVIOLATION',\n Challenge: 'CHALLENGE',\n Impactanalysis: 'IMPACTANALYSIS',\n Signoff: 'SIGNOFF',\n Event: 'EVENT',\n Manualaction: 'MANUALACTION',\n Test: 'TEST'\n};\nexports.WorkflowAllOfCreatorBetaTypeEnum = {\n Identity: 'IDENTITY'\n};\nexports.WorkflowBodyOwnerBetaTypeEnum = {\n Identity: 'IDENTITY'\n};\nexports.WorkflowExecutionBetaStatusEnum = {\n Completed: 'Completed',\n Failed: 'Failed',\n Canceled: 'Canceled',\n Running: 'Running'\n};\nexports.WorkflowExecutionEventBetaTypeEnum = {\n WorkflowExecutionScheduled: 'WorkflowExecutionScheduled',\n WorkflowExecutionStarted: 'WorkflowExecutionStarted',\n WorkflowExecutionCompleted: 'WorkflowExecutionCompleted',\n WorkflowExecutionFailed: 'WorkflowExecutionFailed',\n WorkflowTaskScheduled: 'WorkflowTaskScheduled',\n WorkflowTaskStarted: 'WorkflowTaskStarted',\n WorkflowTaskCompleted: 'WorkflowTaskCompleted',\n WorkflowTaskFailed: 'WorkflowTaskFailed',\n ActivityTaskScheduled: 'ActivityTaskScheduled',\n ActivityTaskStarted: 'ActivityTaskStarted',\n ActivityTaskCompleted: 'ActivityTaskCompleted',\n ActivityTaskFailed: 'ActivityTaskFailed'\n};\nexports.WorkflowLibraryFormFieldsBetaTypeEnum = {\n Text: 'text',\n Textarea: 'textarea',\n Boolean: 'boolean',\n Email: 'email',\n Url: 'url',\n Number: 'number',\n Json: 'json',\n Checkbox: 'checkbox',\n Jsonpath: 'jsonpath',\n Select: 'select',\n MultiType: 'multiType',\n Duration: 'duration',\n Toggle: 'toggle',\n IdentityPicker: 'identityPicker',\n GovernanceGroupPicker: 'governanceGroupPicker',\n String: 'string',\n Object: 'object',\n Array: 'array',\n Secret: 'secret',\n KeyValuePairs: 'keyValuePairs',\n EmailPicker: 'emailPicker',\n AdvancedToggle: 'advancedToggle'\n};\nexports.WorkflowLibraryTriggerBetaTypeEnum = {\n Event: 'EVENT',\n Scheduled: 'SCHEDULED',\n External: 'EXTERNAL'\n};\nexports.WorkflowTriggerBetaTypeEnum = {\n Event: 'EVENT',\n External: 'EXTERNAL',\n Scheduled: 'SCHEDULED'\n};\nexports.WorkgroupConnectionDtoBetaConnectionTypeEnum = {\n AccessRequestReviewer: 'AccessRequestReviewer',\n Owner: 'Owner',\n ManagementWorkgroup: 'ManagementWorkgroup'\n};\n/**\n * AccessProfilesBetaApi - axios parameter creator\n * @export\n */\nvar AccessProfilesBetaApiAxiosParamCreator = function (configuration) {\n var _this = this;\n return {\n /**\n * This API creates an Access Profile. A token with API, ORG_ADMIN, ROLE_ADMIN, ROLE_SUBADMIN, SOURCE_ADMIN, or SOURCE_SUBADMIN authority is required to call this API. In addition, a token with only ROLE_SUBADMIN or SOURCE_SUBADMIN authority must be associated with the Access Profile\\'s Source. The maximum supported length for the description field is 2000 characters. Longer descriptions will be preserved for existing access profiles, however, any new access profiles as well as any updates to existing descriptions will be limited to 2000 characters.\n * @summary Create an Access Profile\n * @param {AccessProfileBeta} accessProfileBeta\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n createAccessProfile: function (accessProfileBeta, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'accessProfileBeta' is not null or undefined\n (0, common_1.assertParamExists)('createAccessProfile', 'accessProfileBeta', accessProfileBeta);\n localVarPath = \"/access-profiles\";\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n localVarHeaderParameter['Content-Type'] = 'application/json';\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(accessProfileBeta, localVarRequestOptions, configuration);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This API deletes an existing Access Profile. The Access Profile must not be in use, for example, Access Profile can not be deleted if they belong to an Application, Life Cycle State or a Role. If it is, a 400 error is returned. A token with API, ORG_ADMIN, SOURCE_ADMIN, or SOURCE_SUBADMIN authority is required to invoke this API. In addition, a SOURCE_SUBADMIN token must be able to administer the Source associated with the Access Profile.\n * @summary Delete the specified Access Profile\n * @param {string} id ID of the Access Profile to delete\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n deleteAccessProfile: function (id, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'id' is not null or undefined\n (0, common_1.assertParamExists)('deleteAccessProfile', 'id', id);\n localVarPath = \"/access-profiles/{id}\"\n .replace(\"{\".concat(\"id\", \"}\"), encodeURIComponent(String(id)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'DELETE' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This API initiates a bulk deletion of one or more Access Profiles. By default, if any of the indicated Access Profiles are in use, no deletions will be performed and the **inUse** field of the response indicates the usages that must be removed first. If the request field **bestEffortOnly** is **true**, however, usages are reported in the **inUse** response field but all other indicated Access Profiles will be deleted. A token with API, ORG_ADMIN, SOURCE_ADMIN, or SOURCE_SUBADMIN authority is required to call this API. In addition, a SOURCE_SUBADMIN may only use this API to delete Access Profiles which are associated with Sources they are able to administer.\n * @summary Delete Access Profile(s)\n * @param {AccessProfileBulkDeleteRequestBeta} accessProfileBulkDeleteRequestBeta\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n deleteAccessProfilesInBulk: function (accessProfileBulkDeleteRequestBeta, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'accessProfileBulkDeleteRequestBeta' is not null or undefined\n (0, common_1.assertParamExists)('deleteAccessProfilesInBulk', 'accessProfileBulkDeleteRequestBeta', accessProfileBulkDeleteRequestBeta);\n localVarPath = \"/access-profiles/bulk-delete\";\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n localVarHeaderParameter['Content-Type'] = 'application/json';\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(accessProfileBulkDeleteRequestBeta, localVarRequestOptions, configuration);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This API returns an Access Profile by its ID. A token with API, ORG_ADMIN, ROLE_ADMIN, ROLE_SUBADMIN, SOURCE_ADMIN, or SOURCE_SUBADMIN authority is required to call this API.\n * @summary Get an Access Profile\n * @param {string} id ID of the Access Profile\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getAccessProfile: function (id, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'id' is not null or undefined\n (0, common_1.assertParamExists)('getAccessProfile', 'id', id);\n localVarPath = \"/access-profiles/{id}\"\n .replace(\"{\".concat(\"id\", \"}\"), encodeURIComponent(String(id)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This API lists the Entitlements associated with a given Access Profile A token with API, ORG_ADMIN, SOURCE_ADMIN, or SOURCE_SUBADMIN authority is required to invoke this API. In addition, a token with SOURCE_SUBADMIN authority must have access to the Source associated with the given Access Profile\n * @summary List Access Profile\\'s Entitlements\n * @param {string} id ID of the containing Access Profile\n * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **id**: *eq, in* **name**: *eq, sw* **attribute**: *eq, sw* **value**: *eq, sw* **created**: *gt, lt, ge, le* **modified**: *gt, lt, ge, le* **owner.id**: *eq, in* **source.id**: *eq, in*\n * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **name, attribute, value, created, modified**\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getAccessProfileEntitlements: function (id, limit, offset, count, filters, sorters, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'id' is not null or undefined\n (0, common_1.assertParamExists)('getAccessProfileEntitlements', 'id', id);\n localVarPath = \"/access-profiles/{id}/entitlements\"\n .replace(\"{\".concat(\"id\", \"}\"), encodeURIComponent(String(id)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n if (limit !== undefined) {\n localVarQueryParameter['limit'] = limit;\n }\n if (offset !== undefined) {\n localVarQueryParameter['offset'] = offset;\n }\n if (count !== undefined) {\n localVarQueryParameter['count'] = count;\n }\n if (filters !== undefined) {\n localVarQueryParameter['filters'] = filters;\n }\n if (sorters !== undefined) {\n localVarQueryParameter['sorters'] = sorters;\n }\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This API returns a list of Access Profiles. A token with API, ORG_ADMIN, ROLE_ADMIN, ROLE_SUBADMIN, SOURCE_ADMIN, or SOURCE_SUBADMIN authority is required to call this API.\n * @summary List Access Profiles\n * @param {string} [forSubadmin] If provided, filters the returned list according to what is visible to the indicated ROLE_SUBADMIN or SOURCE_SUBADMIN Identity. The value of the parameter is either an Identity ID, or the special value **me**, which is shorthand for the calling Identity\\'s ID. A 400 Bad Request error is returned if the **for-subadmin** parameter is specified for an Identity that is not a subadmin.\n * @param {number} [limit] Note that for this API the maximum value for limit is 50. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **id**: *eq, in* **name**: *eq, sw, co* **created**: *gt, lt, ge, le* **modified**: *gt, lt, ge, le* **owner.id**: *eq, in* **requestable**: *eq* **source.id**: *eq, in*\n * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **name, created, modified**\n * @param {string} [forSegmentIds] If present and not empty, additionally filters Access Profiles to those which are assigned to the Segment(s) with the specified IDs. If segmentation is currently unavailable, specifying this parameter results in an error.\n * @param {boolean} [includeUnsegmented] Whether or not the response list should contain unsegmented Access Profiles. If *for-segment-ids* is absent or empty, specifying *include-unsegmented* as false results in an error.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n listAccessProfiles: function (forSubadmin, limit, offset, count, filters, sorters, forSegmentIds, includeUnsegmented, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n localVarPath = \"/access-profiles\";\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n if (forSubadmin !== undefined) {\n localVarQueryParameter['for-subadmin'] = forSubadmin;\n }\n if (limit !== undefined) {\n localVarQueryParameter['limit'] = limit;\n }\n if (offset !== undefined) {\n localVarQueryParameter['offset'] = offset;\n }\n if (count !== undefined) {\n localVarQueryParameter['count'] = count;\n }\n if (filters !== undefined) {\n localVarQueryParameter['filters'] = filters;\n }\n if (sorters !== undefined) {\n localVarQueryParameter['sorters'] = sorters;\n }\n if (forSegmentIds !== undefined) {\n localVarQueryParameter['for-segment-ids'] = forSegmentIds;\n }\n if (includeUnsegmented !== undefined) {\n localVarQueryParameter['include-unsegmented'] = includeUnsegmented;\n }\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This API updates an existing Access Profile. The following fields are patchable: **name**, **description**, **enabled**, **owner**, **requestable**, **accessRequestConfig**, **revokeRequestConfig**, **segments**, **entitlements**, **provisioningCriteria** A token with API, ORG_ADMIN, SOURCE_ADMIN, or SOURCE_SUBADMIN authority is required to call this API. In addition, a SOURCE_SUBADMIN may only use this API to patch Access Profiles which are associated with Sources they are able to administer. > The maximum supported length for the description field is 2000 characters. Longer descriptions will be preserved for existing access profiles, however, any new access profiles as well as any updates to existing descriptions will be limited to 2000 characters. > You can only add or replace **entitlements** that exist on the source that the access profile is attached to. You can use the **list entitlements** endpoint with the **filters** query parameter to get a list of available entitlements on the access profile\\'s source. > Patching the value of the **requestable** field is only supported for customers enabled with the new Request Center. Otherwise, attempting to modify this field results in a 400 error.\n * @summary Patch a specified Access Profile\n * @param {string} id ID of the Access Profile to patch\n * @param {Array} jsonPatchOperationBeta\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n patchAccessProfile: function (id, jsonPatchOperationBeta, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'id' is not null or undefined\n (0, common_1.assertParamExists)('patchAccessProfile', 'id', id);\n // verify required parameter 'jsonPatchOperationBeta' is not null or undefined\n (0, common_1.assertParamExists)('patchAccessProfile', 'jsonPatchOperationBeta', jsonPatchOperationBeta);\n localVarPath = \"/access-profiles/{id}\"\n .replace(\"{\".concat(\"id\", \"}\"), encodeURIComponent(String(id)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'PATCH' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n localVarHeaderParameter['Content-Type'] = 'application/json-patch+json';\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(jsonPatchOperationBeta, localVarRequestOptions, configuration);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n };\n};\nexports.AccessProfilesBetaApiAxiosParamCreator = AccessProfilesBetaApiAxiosParamCreator;\n/**\n * AccessProfilesBetaApi - functional programming interface\n * @export\n */\nvar AccessProfilesBetaApiFp = function (configuration) {\n var localVarAxiosParamCreator = (0, exports.AccessProfilesBetaApiAxiosParamCreator)(configuration);\n return {\n /**\n * This API creates an Access Profile. A token with API, ORG_ADMIN, ROLE_ADMIN, ROLE_SUBADMIN, SOURCE_ADMIN, or SOURCE_SUBADMIN authority is required to call this API. In addition, a token with only ROLE_SUBADMIN or SOURCE_SUBADMIN authority must be associated with the Access Profile\\'s Source. The maximum supported length for the description field is 2000 characters. Longer descriptions will be preserved for existing access profiles, however, any new access profiles as well as any updates to existing descriptions will be limited to 2000 characters.\n * @summary Create an Access Profile\n * @param {AccessProfileBeta} accessProfileBeta\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n createAccessProfile: function (accessProfileBeta, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.createAccessProfile(accessProfileBeta, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This API deletes an existing Access Profile. The Access Profile must not be in use, for example, Access Profile can not be deleted if they belong to an Application, Life Cycle State or a Role. If it is, a 400 error is returned. A token with API, ORG_ADMIN, SOURCE_ADMIN, or SOURCE_SUBADMIN authority is required to invoke this API. In addition, a SOURCE_SUBADMIN token must be able to administer the Source associated with the Access Profile.\n * @summary Delete the specified Access Profile\n * @param {string} id ID of the Access Profile to delete\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n deleteAccessProfile: function (id, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.deleteAccessProfile(id, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This API initiates a bulk deletion of one or more Access Profiles. By default, if any of the indicated Access Profiles are in use, no deletions will be performed and the **inUse** field of the response indicates the usages that must be removed first. If the request field **bestEffortOnly** is **true**, however, usages are reported in the **inUse** response field but all other indicated Access Profiles will be deleted. A token with API, ORG_ADMIN, SOURCE_ADMIN, or SOURCE_SUBADMIN authority is required to call this API. In addition, a SOURCE_SUBADMIN may only use this API to delete Access Profiles which are associated with Sources they are able to administer.\n * @summary Delete Access Profile(s)\n * @param {AccessProfileBulkDeleteRequestBeta} accessProfileBulkDeleteRequestBeta\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n deleteAccessProfilesInBulk: function (accessProfileBulkDeleteRequestBeta, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.deleteAccessProfilesInBulk(accessProfileBulkDeleteRequestBeta, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This API returns an Access Profile by its ID. A token with API, ORG_ADMIN, ROLE_ADMIN, ROLE_SUBADMIN, SOURCE_ADMIN, or SOURCE_SUBADMIN authority is required to call this API.\n * @summary Get an Access Profile\n * @param {string} id ID of the Access Profile\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getAccessProfile: function (id, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.getAccessProfile(id, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This API lists the Entitlements associated with a given Access Profile A token with API, ORG_ADMIN, SOURCE_ADMIN, or SOURCE_SUBADMIN authority is required to invoke this API. In addition, a token with SOURCE_SUBADMIN authority must have access to the Source associated with the given Access Profile\n * @summary List Access Profile\\'s Entitlements\n * @param {string} id ID of the containing Access Profile\n * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **id**: *eq, in* **name**: *eq, sw* **attribute**: *eq, sw* **value**: *eq, sw* **created**: *gt, lt, ge, le* **modified**: *gt, lt, ge, le* **owner.id**: *eq, in* **source.id**: *eq, in*\n * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **name, attribute, value, created, modified**\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getAccessProfileEntitlements: function (id, limit, offset, count, filters, sorters, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.getAccessProfileEntitlements(id, limit, offset, count, filters, sorters, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This API returns a list of Access Profiles. A token with API, ORG_ADMIN, ROLE_ADMIN, ROLE_SUBADMIN, SOURCE_ADMIN, or SOURCE_SUBADMIN authority is required to call this API.\n * @summary List Access Profiles\n * @param {string} [forSubadmin] If provided, filters the returned list according to what is visible to the indicated ROLE_SUBADMIN or SOURCE_SUBADMIN Identity. The value of the parameter is either an Identity ID, or the special value **me**, which is shorthand for the calling Identity\\'s ID. A 400 Bad Request error is returned if the **for-subadmin** parameter is specified for an Identity that is not a subadmin.\n * @param {number} [limit] Note that for this API the maximum value for limit is 50. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **id**: *eq, in* **name**: *eq, sw, co* **created**: *gt, lt, ge, le* **modified**: *gt, lt, ge, le* **owner.id**: *eq, in* **requestable**: *eq* **source.id**: *eq, in*\n * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **name, created, modified**\n * @param {string} [forSegmentIds] If present and not empty, additionally filters Access Profiles to those which are assigned to the Segment(s) with the specified IDs. If segmentation is currently unavailable, specifying this parameter results in an error.\n * @param {boolean} [includeUnsegmented] Whether or not the response list should contain unsegmented Access Profiles. If *for-segment-ids* is absent or empty, specifying *include-unsegmented* as false results in an error.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n listAccessProfiles: function (forSubadmin, limit, offset, count, filters, sorters, forSegmentIds, includeUnsegmented, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.listAccessProfiles(forSubadmin, limit, offset, count, filters, sorters, forSegmentIds, includeUnsegmented, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This API updates an existing Access Profile. The following fields are patchable: **name**, **description**, **enabled**, **owner**, **requestable**, **accessRequestConfig**, **revokeRequestConfig**, **segments**, **entitlements**, **provisioningCriteria** A token with API, ORG_ADMIN, SOURCE_ADMIN, or SOURCE_SUBADMIN authority is required to call this API. In addition, a SOURCE_SUBADMIN may only use this API to patch Access Profiles which are associated with Sources they are able to administer. > The maximum supported length for the description field is 2000 characters. Longer descriptions will be preserved for existing access profiles, however, any new access profiles as well as any updates to existing descriptions will be limited to 2000 characters. > You can only add or replace **entitlements** that exist on the source that the access profile is attached to. You can use the **list entitlements** endpoint with the **filters** query parameter to get a list of available entitlements on the access profile\\'s source. > Patching the value of the **requestable** field is only supported for customers enabled with the new Request Center. Otherwise, attempting to modify this field results in a 400 error.\n * @summary Patch a specified Access Profile\n * @param {string} id ID of the Access Profile to patch\n * @param {Array} jsonPatchOperationBeta\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n patchAccessProfile: function (id, jsonPatchOperationBeta, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.patchAccessProfile(id, jsonPatchOperationBeta, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n };\n};\nexports.AccessProfilesBetaApiFp = AccessProfilesBetaApiFp;\n/**\n * AccessProfilesBetaApi - factory interface\n * @export\n */\nvar AccessProfilesBetaApiFactory = function (configuration, basePath, axios) {\n var localVarFp = (0, exports.AccessProfilesBetaApiFp)(configuration);\n return {\n /**\n * This API creates an Access Profile. A token with API, ORG_ADMIN, ROLE_ADMIN, ROLE_SUBADMIN, SOURCE_ADMIN, or SOURCE_SUBADMIN authority is required to call this API. In addition, a token with only ROLE_SUBADMIN or SOURCE_SUBADMIN authority must be associated with the Access Profile\\'s Source. The maximum supported length for the description field is 2000 characters. Longer descriptions will be preserved for existing access profiles, however, any new access profiles as well as any updates to existing descriptions will be limited to 2000 characters.\n * @summary Create an Access Profile\n * @param {AccessProfileBeta} accessProfileBeta\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n createAccessProfile: function (accessProfileBeta, axiosOptions) {\n return localVarFp.createAccessProfile(accessProfileBeta, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This API deletes an existing Access Profile. The Access Profile must not be in use, for example, Access Profile can not be deleted if they belong to an Application, Life Cycle State or a Role. If it is, a 400 error is returned. A token with API, ORG_ADMIN, SOURCE_ADMIN, or SOURCE_SUBADMIN authority is required to invoke this API. In addition, a SOURCE_SUBADMIN token must be able to administer the Source associated with the Access Profile.\n * @summary Delete the specified Access Profile\n * @param {string} id ID of the Access Profile to delete\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n deleteAccessProfile: function (id, axiosOptions) {\n return localVarFp.deleteAccessProfile(id, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This API initiates a bulk deletion of one or more Access Profiles. By default, if any of the indicated Access Profiles are in use, no deletions will be performed and the **inUse** field of the response indicates the usages that must be removed first. If the request field **bestEffortOnly** is **true**, however, usages are reported in the **inUse** response field but all other indicated Access Profiles will be deleted. A token with API, ORG_ADMIN, SOURCE_ADMIN, or SOURCE_SUBADMIN authority is required to call this API. In addition, a SOURCE_SUBADMIN may only use this API to delete Access Profiles which are associated with Sources they are able to administer.\n * @summary Delete Access Profile(s)\n * @param {AccessProfileBulkDeleteRequestBeta} accessProfileBulkDeleteRequestBeta\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n deleteAccessProfilesInBulk: function (accessProfileBulkDeleteRequestBeta, axiosOptions) {\n return localVarFp.deleteAccessProfilesInBulk(accessProfileBulkDeleteRequestBeta, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This API returns an Access Profile by its ID. A token with API, ORG_ADMIN, ROLE_ADMIN, ROLE_SUBADMIN, SOURCE_ADMIN, or SOURCE_SUBADMIN authority is required to call this API.\n * @summary Get an Access Profile\n * @param {string} id ID of the Access Profile\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getAccessProfile: function (id, axiosOptions) {\n return localVarFp.getAccessProfile(id, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This API lists the Entitlements associated with a given Access Profile A token with API, ORG_ADMIN, SOURCE_ADMIN, or SOURCE_SUBADMIN authority is required to invoke this API. In addition, a token with SOURCE_SUBADMIN authority must have access to the Source associated with the given Access Profile\n * @summary List Access Profile\\'s Entitlements\n * @param {string} id ID of the containing Access Profile\n * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **id**: *eq, in* **name**: *eq, sw* **attribute**: *eq, sw* **value**: *eq, sw* **created**: *gt, lt, ge, le* **modified**: *gt, lt, ge, le* **owner.id**: *eq, in* **source.id**: *eq, in*\n * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **name, attribute, value, created, modified**\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getAccessProfileEntitlements: function (id, limit, offset, count, filters, sorters, axiosOptions) {\n return localVarFp.getAccessProfileEntitlements(id, limit, offset, count, filters, sorters, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This API returns a list of Access Profiles. A token with API, ORG_ADMIN, ROLE_ADMIN, ROLE_SUBADMIN, SOURCE_ADMIN, or SOURCE_SUBADMIN authority is required to call this API.\n * @summary List Access Profiles\n * @param {string} [forSubadmin] If provided, filters the returned list according to what is visible to the indicated ROLE_SUBADMIN or SOURCE_SUBADMIN Identity. The value of the parameter is either an Identity ID, or the special value **me**, which is shorthand for the calling Identity\\'s ID. A 400 Bad Request error is returned if the **for-subadmin** parameter is specified for an Identity that is not a subadmin.\n * @param {number} [limit] Note that for this API the maximum value for limit is 50. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **id**: *eq, in* **name**: *eq, sw, co* **created**: *gt, lt, ge, le* **modified**: *gt, lt, ge, le* **owner.id**: *eq, in* **requestable**: *eq* **source.id**: *eq, in*\n * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **name, created, modified**\n * @param {string} [forSegmentIds] If present and not empty, additionally filters Access Profiles to those which are assigned to the Segment(s) with the specified IDs. If segmentation is currently unavailable, specifying this parameter results in an error.\n * @param {boolean} [includeUnsegmented] Whether or not the response list should contain unsegmented Access Profiles. If *for-segment-ids* is absent or empty, specifying *include-unsegmented* as false results in an error.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n listAccessProfiles: function (forSubadmin, limit, offset, count, filters, sorters, forSegmentIds, includeUnsegmented, axiosOptions) {\n return localVarFp.listAccessProfiles(forSubadmin, limit, offset, count, filters, sorters, forSegmentIds, includeUnsegmented, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This API updates an existing Access Profile. The following fields are patchable: **name**, **description**, **enabled**, **owner**, **requestable**, **accessRequestConfig**, **revokeRequestConfig**, **segments**, **entitlements**, **provisioningCriteria** A token with API, ORG_ADMIN, SOURCE_ADMIN, or SOURCE_SUBADMIN authority is required to call this API. In addition, a SOURCE_SUBADMIN may only use this API to patch Access Profiles which are associated with Sources they are able to administer. > The maximum supported length for the description field is 2000 characters. Longer descriptions will be preserved for existing access profiles, however, any new access profiles as well as any updates to existing descriptions will be limited to 2000 characters. > You can only add or replace **entitlements** that exist on the source that the access profile is attached to. You can use the **list entitlements** endpoint with the **filters** query parameter to get a list of available entitlements on the access profile\\'s source. > Patching the value of the **requestable** field is only supported for customers enabled with the new Request Center. Otherwise, attempting to modify this field results in a 400 error.\n * @summary Patch a specified Access Profile\n * @param {string} id ID of the Access Profile to patch\n * @param {Array} jsonPatchOperationBeta\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n patchAccessProfile: function (id, jsonPatchOperationBeta, axiosOptions) {\n return localVarFp.patchAccessProfile(id, jsonPatchOperationBeta, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n };\n};\nexports.AccessProfilesBetaApiFactory = AccessProfilesBetaApiFactory;\n/**\n * AccessProfilesBetaApi - object-oriented interface\n * @export\n * @class AccessProfilesBetaApi\n * @extends {BaseAPI}\n */\nvar AccessProfilesBetaApi = /** @class */ (function (_super) {\n __extends(AccessProfilesBetaApi, _super);\n function AccessProfilesBetaApi() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n * This API creates an Access Profile. A token with API, ORG_ADMIN, ROLE_ADMIN, ROLE_SUBADMIN, SOURCE_ADMIN, or SOURCE_SUBADMIN authority is required to call this API. In addition, a token with only ROLE_SUBADMIN or SOURCE_SUBADMIN authority must be associated with the Access Profile\\'s Source. The maximum supported length for the description field is 2000 characters. Longer descriptions will be preserved for existing access profiles, however, any new access profiles as well as any updates to existing descriptions will be limited to 2000 characters.\n * @summary Create an Access Profile\n * @param {AccessProfilesBetaApiCreateAccessProfileRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof AccessProfilesBetaApi\n */\n AccessProfilesBetaApi.prototype.createAccessProfile = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.AccessProfilesBetaApiFp)(this.configuration).createAccessProfile(requestParameters.accessProfileBeta, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This API deletes an existing Access Profile. The Access Profile must not be in use, for example, Access Profile can not be deleted if they belong to an Application, Life Cycle State or a Role. If it is, a 400 error is returned. A token with API, ORG_ADMIN, SOURCE_ADMIN, or SOURCE_SUBADMIN authority is required to invoke this API. In addition, a SOURCE_SUBADMIN token must be able to administer the Source associated with the Access Profile.\n * @summary Delete the specified Access Profile\n * @param {AccessProfilesBetaApiDeleteAccessProfileRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof AccessProfilesBetaApi\n */\n AccessProfilesBetaApi.prototype.deleteAccessProfile = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.AccessProfilesBetaApiFp)(this.configuration).deleteAccessProfile(requestParameters.id, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This API initiates a bulk deletion of one or more Access Profiles. By default, if any of the indicated Access Profiles are in use, no deletions will be performed and the **inUse** field of the response indicates the usages that must be removed first. If the request field **bestEffortOnly** is **true**, however, usages are reported in the **inUse** response field but all other indicated Access Profiles will be deleted. A token with API, ORG_ADMIN, SOURCE_ADMIN, or SOURCE_SUBADMIN authority is required to call this API. In addition, a SOURCE_SUBADMIN may only use this API to delete Access Profiles which are associated with Sources they are able to administer.\n * @summary Delete Access Profile(s)\n * @param {AccessProfilesBetaApiDeleteAccessProfilesInBulkRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof AccessProfilesBetaApi\n */\n AccessProfilesBetaApi.prototype.deleteAccessProfilesInBulk = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.AccessProfilesBetaApiFp)(this.configuration).deleteAccessProfilesInBulk(requestParameters.accessProfileBulkDeleteRequestBeta, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This API returns an Access Profile by its ID. A token with API, ORG_ADMIN, ROLE_ADMIN, ROLE_SUBADMIN, SOURCE_ADMIN, or SOURCE_SUBADMIN authority is required to call this API.\n * @summary Get an Access Profile\n * @param {AccessProfilesBetaApiGetAccessProfileRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof AccessProfilesBetaApi\n */\n AccessProfilesBetaApi.prototype.getAccessProfile = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.AccessProfilesBetaApiFp)(this.configuration).getAccessProfile(requestParameters.id, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This API lists the Entitlements associated with a given Access Profile A token with API, ORG_ADMIN, SOURCE_ADMIN, or SOURCE_SUBADMIN authority is required to invoke this API. In addition, a token with SOURCE_SUBADMIN authority must have access to the Source associated with the given Access Profile\n * @summary List Access Profile\\'s Entitlements\n * @param {AccessProfilesBetaApiGetAccessProfileEntitlementsRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof AccessProfilesBetaApi\n */\n AccessProfilesBetaApi.prototype.getAccessProfileEntitlements = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.AccessProfilesBetaApiFp)(this.configuration).getAccessProfileEntitlements(requestParameters.id, requestParameters.limit, requestParameters.offset, requestParameters.count, requestParameters.filters, requestParameters.sorters, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This API returns a list of Access Profiles. A token with API, ORG_ADMIN, ROLE_ADMIN, ROLE_SUBADMIN, SOURCE_ADMIN, or SOURCE_SUBADMIN authority is required to call this API.\n * @summary List Access Profiles\n * @param {AccessProfilesBetaApiListAccessProfilesRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof AccessProfilesBetaApi\n */\n AccessProfilesBetaApi.prototype.listAccessProfiles = function (requestParameters, axiosOptions) {\n var _this = this;\n if (requestParameters === void 0) { requestParameters = {}; }\n return (0, exports.AccessProfilesBetaApiFp)(this.configuration).listAccessProfiles(requestParameters.forSubadmin, requestParameters.limit, requestParameters.offset, requestParameters.count, requestParameters.filters, requestParameters.sorters, requestParameters.forSegmentIds, requestParameters.includeUnsegmented, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This API updates an existing Access Profile. The following fields are patchable: **name**, **description**, **enabled**, **owner**, **requestable**, **accessRequestConfig**, **revokeRequestConfig**, **segments**, **entitlements**, **provisioningCriteria** A token with API, ORG_ADMIN, SOURCE_ADMIN, or SOURCE_SUBADMIN authority is required to call this API. In addition, a SOURCE_SUBADMIN may only use this API to patch Access Profiles which are associated with Sources they are able to administer. > The maximum supported length for the description field is 2000 characters. Longer descriptions will be preserved for existing access profiles, however, any new access profiles as well as any updates to existing descriptions will be limited to 2000 characters. > You can only add or replace **entitlements** that exist on the source that the access profile is attached to. You can use the **list entitlements** endpoint with the **filters** query parameter to get a list of available entitlements on the access profile\\'s source. > Patching the value of the **requestable** field is only supported for customers enabled with the new Request Center. Otherwise, attempting to modify this field results in a 400 error.\n * @summary Patch a specified Access Profile\n * @param {AccessProfilesBetaApiPatchAccessProfileRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof AccessProfilesBetaApi\n */\n AccessProfilesBetaApi.prototype.patchAccessProfile = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.AccessProfilesBetaApiFp)(this.configuration).patchAccessProfile(requestParameters.id, requestParameters.jsonPatchOperationBeta, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n return AccessProfilesBetaApi;\n}(base_1.BaseAPI));\nexports.AccessProfilesBetaApi = AccessProfilesBetaApi;\n/**\n * AccessRequestApprovalsBetaApi - axios parameter creator\n * @export\n */\nvar AccessRequestApprovalsBetaApiAxiosParamCreator = function (configuration) {\n var _this = this;\n return {\n /**\n * This endpoint approves an access request approval. Only the owner of the approval and ORG_ADMIN users are allowed to perform this action.\n * @summary Approves an access request approval.\n * @param {string} approvalId The id of the approval.\n * @param {CommentDtoBeta} [commentDtoBeta] Reviewer\\'s comment.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n approveAccessRequest: function (approvalId, commentDtoBeta, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'approvalId' is not null or undefined\n (0, common_1.assertParamExists)('approveAccessRequest', 'approvalId', approvalId);\n localVarPath = \"/access-request-approvals/{approvalId}/approve\"\n .replace(\"{\".concat(\"approvalId\", \"}\"), encodeURIComponent(String(approvalId)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n localVarHeaderParameter['Content-Type'] = 'application/json';\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(commentDtoBeta, localVarRequestOptions, configuration);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This endpoint forwards an access request approval. Only the owner of the approval and ORG_ADMIN users are allowed to perform this action.\n * @summary Forwards an access request approval to a new owner.\n * @param {string} approvalId The id of the approval.\n * @param {ForwardApprovalDtoBeta} forwardApprovalDtoBeta Information about the forwarded approval.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n forwardAccessRequest: function (approvalId, forwardApprovalDtoBeta, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'approvalId' is not null or undefined\n (0, common_1.assertParamExists)('forwardAccessRequest', 'approvalId', approvalId);\n // verify required parameter 'forwardApprovalDtoBeta' is not null or undefined\n (0, common_1.assertParamExists)('forwardAccessRequest', 'forwardApprovalDtoBeta', forwardApprovalDtoBeta);\n localVarPath = \"/access-request-approvals/{approvalId}/forward\"\n .replace(\"{\".concat(\"approvalId\", \"}\"), encodeURIComponent(String(approvalId)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n localVarHeaderParameter['Content-Type'] = 'application/json';\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(forwardApprovalDtoBeta, localVarRequestOptions, configuration);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This endpoint returns the number of pending, approved and rejected access requests approvals. See \\\"owner-id\\\" query parameter below for authorization info.\n * @summary Get the number of pending, approved and rejected access requests approvals\n * @param {string} [ownerId] The id of the owner or approver identity of the approvals. If present, the value returns approval summary for the specified identity. * ORG_ADMIN users can call this with any identity ID value. * ORG_ADMIN user can also fetch all the approvals in the org, when owner-id is not used. * Non ORG_ADMIN users can only specify *me* or pass their own identity ID value.\n * @param {string} [fromDate] From date is the date and time from which the results will be shown. It should be in a valid ISO-8601 format example: from-date=2020-03-19T19:59:11Z\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getAccessRequestApprovalSummary: function (ownerId, fromDate, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n localVarPath = \"/access-request-approvals/approval-summary\";\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n if (ownerId !== undefined) {\n localVarQueryParameter['owner-id'] = ownerId;\n }\n if (fromDate !== undefined) {\n localVarQueryParameter['from-date'] = fromDate;\n }\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This endpoint returns list of completed approvals. See *owner-id* query parameter below for authorization info.\n * @summary Completed Access Request Approvals List\n * @param {string} [ownerId] If present, the value returns only completed approvals for the specified identity. * ORG_ADMIN users can call this with any identity ID value. * ORG_ADMIN users can also fetch all the approvals in the org, when owner-id is not used. * Non-ORG_ADMIN users can only specify *me* or pass their own identity ID value.\n * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **id**: *eq, in, co, ge, gt, le, lt, ne, isnull, sw* **requestedFor.id**: *eq, in, co, ge, gt, le, lt, ne, isnull, sw* **modified**: *gt, lt, ge, le, co, eq, in, ne, sw*\n * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **created, modified**\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n listCompletedApprovals: function (ownerId, limit, offset, count, filters, sorters, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n localVarPath = \"/access-request-approvals/completed\";\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n if (ownerId !== undefined) {\n localVarQueryParameter['owner-id'] = ownerId;\n }\n if (limit !== undefined) {\n localVarQueryParameter['limit'] = limit;\n }\n if (offset !== undefined) {\n localVarQueryParameter['offset'] = offset;\n }\n if (count !== undefined) {\n localVarQueryParameter['count'] = count;\n }\n if (filters !== undefined) {\n localVarQueryParameter['filters'] = filters;\n }\n if (sorters !== undefined) {\n localVarQueryParameter['sorters'] = sorters;\n }\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This endpoint returns a list of pending approvals. See \\\"owner-id\\\" query parameter below for authorization info.\n * @summary Pending Access Request Approvals List\n * @param {string} [ownerId] If present, the value returns only pending approvals for the specified identity. * ORG_ADMIN users can call this with any identity ID value. * ORG_ADMIN users can also fetch all the approvals in the org, when owner-id is not used. * Non-ORG_ADMIN users can only specify *me* or pass their own identity ID value.\n * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **id**: *eq, in* **requestedFor.id**: *eq, in* **modified**: *gt, lt, ge, le, eq, in*\n * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **created, modified**\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n listPendingApprovals: function (ownerId, limit, offset, count, filters, sorters, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n localVarPath = \"/access-request-approvals/pending\";\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n if (ownerId !== undefined) {\n localVarQueryParameter['owner-id'] = ownerId;\n }\n if (limit !== undefined) {\n localVarQueryParameter['limit'] = limit;\n }\n if (offset !== undefined) {\n localVarQueryParameter['offset'] = offset;\n }\n if (count !== undefined) {\n localVarQueryParameter['count'] = count;\n }\n if (filters !== undefined) {\n localVarQueryParameter['filters'] = filters;\n }\n if (sorters !== undefined) {\n localVarQueryParameter['sorters'] = sorters;\n }\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This endpoint rejects an access request approval. Only the owner of the approval and admin users are allowed to perform this action.\n * @summary Rejects an access request approval.\n * @param {string} approvalId The id of the approval.\n * @param {CommentDtoBeta} [commentDtoBeta] Reviewer\\'s comment.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n rejectAccessRequest: function (approvalId, commentDtoBeta, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'approvalId' is not null or undefined\n (0, common_1.assertParamExists)('rejectAccessRequest', 'approvalId', approvalId);\n localVarPath = \"/access-request-approvals/{approvalId}/reject\"\n .replace(\"{\".concat(\"approvalId\", \"}\"), encodeURIComponent(String(approvalId)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n localVarHeaderParameter['Content-Type'] = 'application/json';\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(commentDtoBeta, localVarRequestOptions, configuration);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n };\n};\nexports.AccessRequestApprovalsBetaApiAxiosParamCreator = AccessRequestApprovalsBetaApiAxiosParamCreator;\n/**\n * AccessRequestApprovalsBetaApi - functional programming interface\n * @export\n */\nvar AccessRequestApprovalsBetaApiFp = function (configuration) {\n var localVarAxiosParamCreator = (0, exports.AccessRequestApprovalsBetaApiAxiosParamCreator)(configuration);\n return {\n /**\n * This endpoint approves an access request approval. Only the owner of the approval and ORG_ADMIN users are allowed to perform this action.\n * @summary Approves an access request approval.\n * @param {string} approvalId The id of the approval.\n * @param {CommentDtoBeta} [commentDtoBeta] Reviewer\\'s comment.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n approveAccessRequest: function (approvalId, commentDtoBeta, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.approveAccessRequest(approvalId, commentDtoBeta, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This endpoint forwards an access request approval. Only the owner of the approval and ORG_ADMIN users are allowed to perform this action.\n * @summary Forwards an access request approval to a new owner.\n * @param {string} approvalId The id of the approval.\n * @param {ForwardApprovalDtoBeta} forwardApprovalDtoBeta Information about the forwarded approval.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n forwardAccessRequest: function (approvalId, forwardApprovalDtoBeta, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.forwardAccessRequest(approvalId, forwardApprovalDtoBeta, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This endpoint returns the number of pending, approved and rejected access requests approvals. See \\\"owner-id\\\" query parameter below for authorization info.\n * @summary Get the number of pending, approved and rejected access requests approvals\n * @param {string} [ownerId] The id of the owner or approver identity of the approvals. If present, the value returns approval summary for the specified identity. * ORG_ADMIN users can call this with any identity ID value. * ORG_ADMIN user can also fetch all the approvals in the org, when owner-id is not used. * Non ORG_ADMIN users can only specify *me* or pass their own identity ID value.\n * @param {string} [fromDate] From date is the date and time from which the results will be shown. It should be in a valid ISO-8601 format example: from-date=2020-03-19T19:59:11Z\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getAccessRequestApprovalSummary: function (ownerId, fromDate, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.getAccessRequestApprovalSummary(ownerId, fromDate, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This endpoint returns list of completed approvals. See *owner-id* query parameter below for authorization info.\n * @summary Completed Access Request Approvals List\n * @param {string} [ownerId] If present, the value returns only completed approvals for the specified identity. * ORG_ADMIN users can call this with any identity ID value. * ORG_ADMIN users can also fetch all the approvals in the org, when owner-id is not used. * Non-ORG_ADMIN users can only specify *me* or pass their own identity ID value.\n * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **id**: *eq, in, co, ge, gt, le, lt, ne, isnull, sw* **requestedFor.id**: *eq, in, co, ge, gt, le, lt, ne, isnull, sw* **modified**: *gt, lt, ge, le, co, eq, in, ne, sw*\n * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **created, modified**\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n listCompletedApprovals: function (ownerId, limit, offset, count, filters, sorters, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.listCompletedApprovals(ownerId, limit, offset, count, filters, sorters, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This endpoint returns a list of pending approvals. See \\\"owner-id\\\" query parameter below for authorization info.\n * @summary Pending Access Request Approvals List\n * @param {string} [ownerId] If present, the value returns only pending approvals for the specified identity. * ORG_ADMIN users can call this with any identity ID value. * ORG_ADMIN users can also fetch all the approvals in the org, when owner-id is not used. * Non-ORG_ADMIN users can only specify *me* or pass their own identity ID value.\n * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **id**: *eq, in* **requestedFor.id**: *eq, in* **modified**: *gt, lt, ge, le, eq, in*\n * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **created, modified**\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n listPendingApprovals: function (ownerId, limit, offset, count, filters, sorters, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.listPendingApprovals(ownerId, limit, offset, count, filters, sorters, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This endpoint rejects an access request approval. Only the owner of the approval and admin users are allowed to perform this action.\n * @summary Rejects an access request approval.\n * @param {string} approvalId The id of the approval.\n * @param {CommentDtoBeta} [commentDtoBeta] Reviewer\\'s comment.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n rejectAccessRequest: function (approvalId, commentDtoBeta, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.rejectAccessRequest(approvalId, commentDtoBeta, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n };\n};\nexports.AccessRequestApprovalsBetaApiFp = AccessRequestApprovalsBetaApiFp;\n/**\n * AccessRequestApprovalsBetaApi - factory interface\n * @export\n */\nvar AccessRequestApprovalsBetaApiFactory = function (configuration, basePath, axios) {\n var localVarFp = (0, exports.AccessRequestApprovalsBetaApiFp)(configuration);\n return {\n /**\n * This endpoint approves an access request approval. Only the owner of the approval and ORG_ADMIN users are allowed to perform this action.\n * @summary Approves an access request approval.\n * @param {string} approvalId The id of the approval.\n * @param {CommentDtoBeta} [commentDtoBeta] Reviewer\\'s comment.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n approveAccessRequest: function (approvalId, commentDtoBeta, axiosOptions) {\n return localVarFp.approveAccessRequest(approvalId, commentDtoBeta, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This endpoint forwards an access request approval. Only the owner of the approval and ORG_ADMIN users are allowed to perform this action.\n * @summary Forwards an access request approval to a new owner.\n * @param {string} approvalId The id of the approval.\n * @param {ForwardApprovalDtoBeta} forwardApprovalDtoBeta Information about the forwarded approval.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n forwardAccessRequest: function (approvalId, forwardApprovalDtoBeta, axiosOptions) {\n return localVarFp.forwardAccessRequest(approvalId, forwardApprovalDtoBeta, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This endpoint returns the number of pending, approved and rejected access requests approvals. See \\\"owner-id\\\" query parameter below for authorization info.\n * @summary Get the number of pending, approved and rejected access requests approvals\n * @param {string} [ownerId] The id of the owner or approver identity of the approvals. If present, the value returns approval summary for the specified identity. * ORG_ADMIN users can call this with any identity ID value. * ORG_ADMIN user can also fetch all the approvals in the org, when owner-id is not used. * Non ORG_ADMIN users can only specify *me* or pass their own identity ID value.\n * @param {string} [fromDate] From date is the date and time from which the results will be shown. It should be in a valid ISO-8601 format example: from-date=2020-03-19T19:59:11Z\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getAccessRequestApprovalSummary: function (ownerId, fromDate, axiosOptions) {\n return localVarFp.getAccessRequestApprovalSummary(ownerId, fromDate, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This endpoint returns list of completed approvals. See *owner-id* query parameter below for authorization info.\n * @summary Completed Access Request Approvals List\n * @param {string} [ownerId] If present, the value returns only completed approvals for the specified identity. * ORG_ADMIN users can call this with any identity ID value. * ORG_ADMIN users can also fetch all the approvals in the org, when owner-id is not used. * Non-ORG_ADMIN users can only specify *me* or pass their own identity ID value.\n * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **id**: *eq, in, co, ge, gt, le, lt, ne, isnull, sw* **requestedFor.id**: *eq, in, co, ge, gt, le, lt, ne, isnull, sw* **modified**: *gt, lt, ge, le, co, eq, in, ne, sw*\n * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **created, modified**\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n listCompletedApprovals: function (ownerId, limit, offset, count, filters, sorters, axiosOptions) {\n return localVarFp.listCompletedApprovals(ownerId, limit, offset, count, filters, sorters, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This endpoint returns a list of pending approvals. See \\\"owner-id\\\" query parameter below for authorization info.\n * @summary Pending Access Request Approvals List\n * @param {string} [ownerId] If present, the value returns only pending approvals for the specified identity. * ORG_ADMIN users can call this with any identity ID value. * ORG_ADMIN users can also fetch all the approvals in the org, when owner-id is not used. * Non-ORG_ADMIN users can only specify *me* or pass their own identity ID value.\n * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **id**: *eq, in* **requestedFor.id**: *eq, in* **modified**: *gt, lt, ge, le, eq, in*\n * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **created, modified**\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n listPendingApprovals: function (ownerId, limit, offset, count, filters, sorters, axiosOptions) {\n return localVarFp.listPendingApprovals(ownerId, limit, offset, count, filters, sorters, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This endpoint rejects an access request approval. Only the owner of the approval and admin users are allowed to perform this action.\n * @summary Rejects an access request approval.\n * @param {string} approvalId The id of the approval.\n * @param {CommentDtoBeta} [commentDtoBeta] Reviewer\\'s comment.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n rejectAccessRequest: function (approvalId, commentDtoBeta, axiosOptions) {\n return localVarFp.rejectAccessRequest(approvalId, commentDtoBeta, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n };\n};\nexports.AccessRequestApprovalsBetaApiFactory = AccessRequestApprovalsBetaApiFactory;\n/**\n * AccessRequestApprovalsBetaApi - object-oriented interface\n * @export\n * @class AccessRequestApprovalsBetaApi\n * @extends {BaseAPI}\n */\nvar AccessRequestApprovalsBetaApi = /** @class */ (function (_super) {\n __extends(AccessRequestApprovalsBetaApi, _super);\n function AccessRequestApprovalsBetaApi() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n * This endpoint approves an access request approval. Only the owner of the approval and ORG_ADMIN users are allowed to perform this action.\n * @summary Approves an access request approval.\n * @param {AccessRequestApprovalsBetaApiApproveAccessRequestRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof AccessRequestApprovalsBetaApi\n */\n AccessRequestApprovalsBetaApi.prototype.approveAccessRequest = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.AccessRequestApprovalsBetaApiFp)(this.configuration).approveAccessRequest(requestParameters.approvalId, requestParameters.commentDtoBeta, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This endpoint forwards an access request approval. Only the owner of the approval and ORG_ADMIN users are allowed to perform this action.\n * @summary Forwards an access request approval to a new owner.\n * @param {AccessRequestApprovalsBetaApiForwardAccessRequestRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof AccessRequestApprovalsBetaApi\n */\n AccessRequestApprovalsBetaApi.prototype.forwardAccessRequest = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.AccessRequestApprovalsBetaApiFp)(this.configuration).forwardAccessRequest(requestParameters.approvalId, requestParameters.forwardApprovalDtoBeta, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This endpoint returns the number of pending, approved and rejected access requests approvals. See \\\"owner-id\\\" query parameter below for authorization info.\n * @summary Get the number of pending, approved and rejected access requests approvals\n * @param {AccessRequestApprovalsBetaApiGetAccessRequestApprovalSummaryRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof AccessRequestApprovalsBetaApi\n */\n AccessRequestApprovalsBetaApi.prototype.getAccessRequestApprovalSummary = function (requestParameters, axiosOptions) {\n var _this = this;\n if (requestParameters === void 0) { requestParameters = {}; }\n return (0, exports.AccessRequestApprovalsBetaApiFp)(this.configuration).getAccessRequestApprovalSummary(requestParameters.ownerId, requestParameters.fromDate, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This endpoint returns list of completed approvals. See *owner-id* query parameter below for authorization info.\n * @summary Completed Access Request Approvals List\n * @param {AccessRequestApprovalsBetaApiListCompletedApprovalsRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof AccessRequestApprovalsBetaApi\n */\n AccessRequestApprovalsBetaApi.prototype.listCompletedApprovals = function (requestParameters, axiosOptions) {\n var _this = this;\n if (requestParameters === void 0) { requestParameters = {}; }\n return (0, exports.AccessRequestApprovalsBetaApiFp)(this.configuration).listCompletedApprovals(requestParameters.ownerId, requestParameters.limit, requestParameters.offset, requestParameters.count, requestParameters.filters, requestParameters.sorters, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This endpoint returns a list of pending approvals. See \\\"owner-id\\\" query parameter below for authorization info.\n * @summary Pending Access Request Approvals List\n * @param {AccessRequestApprovalsBetaApiListPendingApprovalsRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof AccessRequestApprovalsBetaApi\n */\n AccessRequestApprovalsBetaApi.prototype.listPendingApprovals = function (requestParameters, axiosOptions) {\n var _this = this;\n if (requestParameters === void 0) { requestParameters = {}; }\n return (0, exports.AccessRequestApprovalsBetaApiFp)(this.configuration).listPendingApprovals(requestParameters.ownerId, requestParameters.limit, requestParameters.offset, requestParameters.count, requestParameters.filters, requestParameters.sorters, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This endpoint rejects an access request approval. Only the owner of the approval and admin users are allowed to perform this action.\n * @summary Rejects an access request approval.\n * @param {AccessRequestApprovalsBetaApiRejectAccessRequestRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof AccessRequestApprovalsBetaApi\n */\n AccessRequestApprovalsBetaApi.prototype.rejectAccessRequest = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.AccessRequestApprovalsBetaApiFp)(this.configuration).rejectAccessRequest(requestParameters.approvalId, requestParameters.commentDtoBeta, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n return AccessRequestApprovalsBetaApi;\n}(base_1.BaseAPI));\nexports.AccessRequestApprovalsBetaApi = AccessRequestApprovalsBetaApi;\n/**\n * AccessRequestsBetaApi - axios parameter creator\n * @export\n */\nvar AccessRequestsBetaApiAxiosParamCreator = function (configuration) {\n var _this = this;\n return {\n /**\n * This API endpoint cancels a pending access request. An access request can be cancelled only if it has not passed the approval step. Any token with ORG_ADMIN authority or token of the user who originally requested the access request is required to cancel it.\n * @summary Cancel Access Request\n * @param {CancelAccessRequestBeta} cancelAccessRequestBeta\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n cancelAccessRequest: function (cancelAccessRequestBeta, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'cancelAccessRequestBeta' is not null or undefined\n (0, common_1.assertParamExists)('cancelAccessRequest', 'cancelAccessRequestBeta', cancelAccessRequestBeta);\n localVarPath = \"/access-requests/cancel\";\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n localVarHeaderParameter['Content-Type'] = 'application/json';\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(cancelAccessRequestBeta, localVarRequestOptions, configuration);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This endpoint closes access requests that are stuck in a pending state. It can be used throughout a request\\'s lifecycle (even after the approval state, unlike Cancel Access Request). A token with ORG_ADMIN authority is required. To find pending access requests via the UI, navigate to Search and use this query: status: Pending AND \\\"Access Request\\\". Use the Column Chooser to select \\\"Tracking Number,\\\" and the Download button to export a CSV containing the Tracking Numbers. To find pending access requests via the API, use List Account Activities. Input the ids from either source To track the status of endpoint requests, navigate to Search and use this query: name:\\\"Close Identity Requests\\\". Search will include \\\"Close Identity Requests Started\\\" audits when requests are initiated, and \\\"Close Identity Requests Completed\\\" audits when requests are completed. The completion audit will list the Identity Request IDs that finished in error. This API triggers the Provisioning Action Completed event trigger for each access request that is closed.\n * @summary Close Access Request\n * @param {CloseAccessRequestBeta} closeAccessRequestBeta\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n closeAccessRequest: function (closeAccessRequestBeta, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'closeAccessRequestBeta' is not null or undefined\n (0, common_1.assertParamExists)('closeAccessRequest', 'closeAccessRequestBeta', closeAccessRequestBeta);\n localVarPath = \"/access-requests/close\";\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n localVarHeaderParameter['Content-Type'] = 'application/json';\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(closeAccessRequestBeta, localVarRequestOptions, configuration);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This submits the access request into IdentityNow, where it will follow any IdentityNow approval processes. Access requests are processed asynchronously by IdentityNow. A success response from this endpoint means the request has been submitted to IDN and is queued for processing. Because this endpoint is asynchronous, it will not return an error if you submit duplicate access requests in quick succession, or you submit an access request for access that is already in progress, approved, or rejected. It is best practice to check for any existing access requests that reference the same access items before submitting a new access request. This can be accomplished by using the [access request status](https://developer.sailpoint.com/idn/api/v3/list-access-request-status) or the [pending access request approvals](https://developer.sailpoint.com/idn/api/v3/list-pending-approvals) endpoints. You can also use the [search API](https://developer.sailpoint.com/idn/api/v3/search) to check the existing access items that an identity has before submitting an access request to ensure you are not requesting access that is already granted. There are two types of access request: __GRANT_ACCESS__ * Can be requested for multiple identities in a single request. * Supports self request and request on behalf of other users. Refer to the [Get Access Request Configuration](https://developer.sailpoint.com/idn/api/v3/get-access-request-config) endpoint for request configuration options. * Allows any authenticated token (except API) to call this endpoint to request to grant access to themselves. Depending on the configuration, a user can request access for others. * Roles, access profiles and entitlements can be requested. * While requesting entitlements, maximum of 25 entitlements and 10 recipients are allowed in a request. __REVOKE_ACCESS__ * Can only be requested for a single identity at a time. * Does not support self request. Only manager can request to revoke access for their directly managed employees. * If a `removeDate` is specified, then the access will be removed on that date and time only for roles and access profiles. Entitlements are currently unsupported for `removeDate`. * Roles, access profiles, and entitlements can be requested for revocation. * Revoke requests for entitlements are limited to 1 entitlement per access request currently. * [Roles, Access Profiles] You can specify a `removeDate` if the access doesn\\'t already have a sunset date. The `removeDate` must be a future date, in the UTC timezone. * Allows a manager to request to revoke access for direct employees. A token with ORG_ADMIN authority can also request to revoke access from anyone. >**Note:** There is no indication to the approver in the IdentityNow UI that the approval request is for a revoke action. Take this into consideration when calling this API. A token with API authority cannot be used to call this endpoint.\n * @summary Submit an Access Request\n * @param {AccessRequestBeta} accessRequestBeta\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n createAccessRequest: function (accessRequestBeta, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'accessRequestBeta' is not null or undefined\n (0, common_1.assertParamExists)('createAccessRequest', 'accessRequestBeta', accessRequestBeta);\n localVarPath = \"/access-requests\";\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n localVarHeaderParameter['Content-Type'] = 'application/json';\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(accessRequestBeta, localVarRequestOptions, configuration);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This endpoint returns the current access-request configuration.\n * @summary Get Access Request Configuration\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getAccessRequestConfig: function (axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n localVarPath = \"/access-request-config\";\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * The Access Request Status API returns a list of access request statuses based on the specified query parameters. Any token with any authority can request their own status. A token with ORG_ADMIN authority is required to call this API to get a list of statuses for other users.\n * @summary Access Request Status\n * @param {string} [requestedFor] Filter the results by the identity for which the requests were made. *me* indicates the current user. Mutually exclusive with *regarding-identity*.\n * @param {string} [requestedBy] Filter the results by the identity that made the requests. *me* indicates the current user. Mutually exclusive with *regarding-identity*.\n * @param {string} [regardingIdentity] Filter the results by the specified identity which is either the requester or target of the requests. *me* indicates the current user. Mutually exclusive with *requested-for* and *requested-by*.\n * @param {string} [assignedTo] Filter the results by the specified identity which is the owner of the Identity Request Work Item. *me* indicates the current user.\n * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored.\n * @param {number} [limit] Max number of results to return.\n * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. Defaults to 0 if not specified.\n * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **accountActivityItemId**: *eq, in, co, ge, gt, le, lt, ne, isnull, sw*\n * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **created, modified, accountActivityItemId, name**\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n listAccessRequestStatus: function (requestedFor, requestedBy, regardingIdentity, assignedTo, count, limit, offset, filters, sorters, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n localVarPath = \"/access-request-status\";\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n if (requestedFor !== undefined) {\n localVarQueryParameter['requested-for'] = requestedFor;\n }\n if (requestedBy !== undefined) {\n localVarQueryParameter['requested-by'] = requestedBy;\n }\n if (regardingIdentity !== undefined) {\n localVarQueryParameter['regarding-identity'] = regardingIdentity;\n }\n if (assignedTo !== undefined) {\n localVarQueryParameter['assigned-to'] = assignedTo;\n }\n if (count !== undefined) {\n localVarQueryParameter['count'] = count;\n }\n if (limit !== undefined) {\n localVarQueryParameter['limit'] = limit;\n }\n if (offset !== undefined) {\n localVarQueryParameter['offset'] = offset;\n }\n if (filters !== undefined) {\n localVarQueryParameter['filters'] = filters;\n }\n if (sorters !== undefined) {\n localVarQueryParameter['sorters'] = sorters;\n }\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This endpoint replaces the current access-request configuration. A token with ORG_ADMIN authority is required to call this API.\n * @summary Update Access Request Configuration\n * @param {AccessRequestConfigBeta} accessRequestConfigBeta\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n setAccessRequestConfig: function (accessRequestConfigBeta, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'accessRequestConfigBeta' is not null or undefined\n (0, common_1.assertParamExists)('setAccessRequestConfig', 'accessRequestConfigBeta', accessRequestConfigBeta);\n localVarPath = \"/access-request-config\";\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'PUT' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n localVarHeaderParameter['Content-Type'] = 'application/json';\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(accessRequestConfigBeta, localVarRequestOptions, configuration);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n };\n};\nexports.AccessRequestsBetaApiAxiosParamCreator = AccessRequestsBetaApiAxiosParamCreator;\n/**\n * AccessRequestsBetaApi - functional programming interface\n * @export\n */\nvar AccessRequestsBetaApiFp = function (configuration) {\n var localVarAxiosParamCreator = (0, exports.AccessRequestsBetaApiAxiosParamCreator)(configuration);\n return {\n /**\n * This API endpoint cancels a pending access request. An access request can be cancelled only if it has not passed the approval step. Any token with ORG_ADMIN authority or token of the user who originally requested the access request is required to cancel it.\n * @summary Cancel Access Request\n * @param {CancelAccessRequestBeta} cancelAccessRequestBeta\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n cancelAccessRequest: function (cancelAccessRequestBeta, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.cancelAccessRequest(cancelAccessRequestBeta, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This endpoint closes access requests that are stuck in a pending state. It can be used throughout a request\\'s lifecycle (even after the approval state, unlike Cancel Access Request). A token with ORG_ADMIN authority is required. To find pending access requests via the UI, navigate to Search and use this query: status: Pending AND \\\"Access Request\\\". Use the Column Chooser to select \\\"Tracking Number,\\\" and the Download button to export a CSV containing the Tracking Numbers. To find pending access requests via the API, use List Account Activities. Input the ids from either source To track the status of endpoint requests, navigate to Search and use this query: name:\\\"Close Identity Requests\\\". Search will include \\\"Close Identity Requests Started\\\" audits when requests are initiated, and \\\"Close Identity Requests Completed\\\" audits when requests are completed. The completion audit will list the Identity Request IDs that finished in error. This API triggers the Provisioning Action Completed event trigger for each access request that is closed.\n * @summary Close Access Request\n * @param {CloseAccessRequestBeta} closeAccessRequestBeta\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n closeAccessRequest: function (closeAccessRequestBeta, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.closeAccessRequest(closeAccessRequestBeta, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This submits the access request into IdentityNow, where it will follow any IdentityNow approval processes. Access requests are processed asynchronously by IdentityNow. A success response from this endpoint means the request has been submitted to IDN and is queued for processing. Because this endpoint is asynchronous, it will not return an error if you submit duplicate access requests in quick succession, or you submit an access request for access that is already in progress, approved, or rejected. It is best practice to check for any existing access requests that reference the same access items before submitting a new access request. This can be accomplished by using the [access request status](https://developer.sailpoint.com/idn/api/v3/list-access-request-status) or the [pending access request approvals](https://developer.sailpoint.com/idn/api/v3/list-pending-approvals) endpoints. You can also use the [search API](https://developer.sailpoint.com/idn/api/v3/search) to check the existing access items that an identity has before submitting an access request to ensure you are not requesting access that is already granted. There are two types of access request: __GRANT_ACCESS__ * Can be requested for multiple identities in a single request. * Supports self request and request on behalf of other users. Refer to the [Get Access Request Configuration](https://developer.sailpoint.com/idn/api/v3/get-access-request-config) endpoint for request configuration options. * Allows any authenticated token (except API) to call this endpoint to request to grant access to themselves. Depending on the configuration, a user can request access for others. * Roles, access profiles and entitlements can be requested. * While requesting entitlements, maximum of 25 entitlements and 10 recipients are allowed in a request. __REVOKE_ACCESS__ * Can only be requested for a single identity at a time. * Does not support self request. Only manager can request to revoke access for their directly managed employees. * If a `removeDate` is specified, then the access will be removed on that date and time only for roles and access profiles. Entitlements are currently unsupported for `removeDate`. * Roles, access profiles, and entitlements can be requested for revocation. * Revoke requests for entitlements are limited to 1 entitlement per access request currently. * [Roles, Access Profiles] You can specify a `removeDate` if the access doesn\\'t already have a sunset date. The `removeDate` must be a future date, in the UTC timezone. * Allows a manager to request to revoke access for direct employees. A token with ORG_ADMIN authority can also request to revoke access from anyone. >**Note:** There is no indication to the approver in the IdentityNow UI that the approval request is for a revoke action. Take this into consideration when calling this API. A token with API authority cannot be used to call this endpoint.\n * @summary Submit an Access Request\n * @param {AccessRequestBeta} accessRequestBeta\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n createAccessRequest: function (accessRequestBeta, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.createAccessRequest(accessRequestBeta, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This endpoint returns the current access-request configuration.\n * @summary Get Access Request Configuration\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getAccessRequestConfig: function (axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.getAccessRequestConfig(axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * The Access Request Status API returns a list of access request statuses based on the specified query parameters. Any token with any authority can request their own status. A token with ORG_ADMIN authority is required to call this API to get a list of statuses for other users.\n * @summary Access Request Status\n * @param {string} [requestedFor] Filter the results by the identity for which the requests were made. *me* indicates the current user. Mutually exclusive with *regarding-identity*.\n * @param {string} [requestedBy] Filter the results by the identity that made the requests. *me* indicates the current user. Mutually exclusive with *regarding-identity*.\n * @param {string} [regardingIdentity] Filter the results by the specified identity which is either the requester or target of the requests. *me* indicates the current user. Mutually exclusive with *requested-for* and *requested-by*.\n * @param {string} [assignedTo] Filter the results by the specified identity which is the owner of the Identity Request Work Item. *me* indicates the current user.\n * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored.\n * @param {number} [limit] Max number of results to return.\n * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. Defaults to 0 if not specified.\n * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **accountActivityItemId**: *eq, in, co, ge, gt, le, lt, ne, isnull, sw*\n * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **created, modified, accountActivityItemId, name**\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n listAccessRequestStatus: function (requestedFor, requestedBy, regardingIdentity, assignedTo, count, limit, offset, filters, sorters, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.listAccessRequestStatus(requestedFor, requestedBy, regardingIdentity, assignedTo, count, limit, offset, filters, sorters, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This endpoint replaces the current access-request configuration. A token with ORG_ADMIN authority is required to call this API.\n * @summary Update Access Request Configuration\n * @param {AccessRequestConfigBeta} accessRequestConfigBeta\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n setAccessRequestConfig: function (accessRequestConfigBeta, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.setAccessRequestConfig(accessRequestConfigBeta, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n };\n};\nexports.AccessRequestsBetaApiFp = AccessRequestsBetaApiFp;\n/**\n * AccessRequestsBetaApi - factory interface\n * @export\n */\nvar AccessRequestsBetaApiFactory = function (configuration, basePath, axios) {\n var localVarFp = (0, exports.AccessRequestsBetaApiFp)(configuration);\n return {\n /**\n * This API endpoint cancels a pending access request. An access request can be cancelled only if it has not passed the approval step. Any token with ORG_ADMIN authority or token of the user who originally requested the access request is required to cancel it.\n * @summary Cancel Access Request\n * @param {CancelAccessRequestBeta} cancelAccessRequestBeta\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n cancelAccessRequest: function (cancelAccessRequestBeta, axiosOptions) {\n return localVarFp.cancelAccessRequest(cancelAccessRequestBeta, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This endpoint closes access requests that are stuck in a pending state. It can be used throughout a request\\'s lifecycle (even after the approval state, unlike Cancel Access Request). A token with ORG_ADMIN authority is required. To find pending access requests via the UI, navigate to Search and use this query: status: Pending AND \\\"Access Request\\\". Use the Column Chooser to select \\\"Tracking Number,\\\" and the Download button to export a CSV containing the Tracking Numbers. To find pending access requests via the API, use List Account Activities. Input the ids from either source To track the status of endpoint requests, navigate to Search and use this query: name:\\\"Close Identity Requests\\\". Search will include \\\"Close Identity Requests Started\\\" audits when requests are initiated, and \\\"Close Identity Requests Completed\\\" audits when requests are completed. The completion audit will list the Identity Request IDs that finished in error. This API triggers the Provisioning Action Completed event trigger for each access request that is closed.\n * @summary Close Access Request\n * @param {CloseAccessRequestBeta} closeAccessRequestBeta\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n closeAccessRequest: function (closeAccessRequestBeta, axiosOptions) {\n return localVarFp.closeAccessRequest(closeAccessRequestBeta, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This submits the access request into IdentityNow, where it will follow any IdentityNow approval processes. Access requests are processed asynchronously by IdentityNow. A success response from this endpoint means the request has been submitted to IDN and is queued for processing. Because this endpoint is asynchronous, it will not return an error if you submit duplicate access requests in quick succession, or you submit an access request for access that is already in progress, approved, or rejected. It is best practice to check for any existing access requests that reference the same access items before submitting a new access request. This can be accomplished by using the [access request status](https://developer.sailpoint.com/idn/api/v3/list-access-request-status) or the [pending access request approvals](https://developer.sailpoint.com/idn/api/v3/list-pending-approvals) endpoints. You can also use the [search API](https://developer.sailpoint.com/idn/api/v3/search) to check the existing access items that an identity has before submitting an access request to ensure you are not requesting access that is already granted. There are two types of access request: __GRANT_ACCESS__ * Can be requested for multiple identities in a single request. * Supports self request and request on behalf of other users. Refer to the [Get Access Request Configuration](https://developer.sailpoint.com/idn/api/v3/get-access-request-config) endpoint for request configuration options. * Allows any authenticated token (except API) to call this endpoint to request to grant access to themselves. Depending on the configuration, a user can request access for others. * Roles, access profiles and entitlements can be requested. * While requesting entitlements, maximum of 25 entitlements and 10 recipients are allowed in a request. __REVOKE_ACCESS__ * Can only be requested for a single identity at a time. * Does not support self request. Only manager can request to revoke access for their directly managed employees. * If a `removeDate` is specified, then the access will be removed on that date and time only for roles and access profiles. Entitlements are currently unsupported for `removeDate`. * Roles, access profiles, and entitlements can be requested for revocation. * Revoke requests for entitlements are limited to 1 entitlement per access request currently. * [Roles, Access Profiles] You can specify a `removeDate` if the access doesn\\'t already have a sunset date. The `removeDate` must be a future date, in the UTC timezone. * Allows a manager to request to revoke access for direct employees. A token with ORG_ADMIN authority can also request to revoke access from anyone. >**Note:** There is no indication to the approver in the IdentityNow UI that the approval request is for a revoke action. Take this into consideration when calling this API. A token with API authority cannot be used to call this endpoint.\n * @summary Submit an Access Request\n * @param {AccessRequestBeta} accessRequestBeta\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n createAccessRequest: function (accessRequestBeta, axiosOptions) {\n return localVarFp.createAccessRequest(accessRequestBeta, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This endpoint returns the current access-request configuration.\n * @summary Get Access Request Configuration\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getAccessRequestConfig: function (axiosOptions) {\n return localVarFp.getAccessRequestConfig(axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * The Access Request Status API returns a list of access request statuses based on the specified query parameters. Any token with any authority can request their own status. A token with ORG_ADMIN authority is required to call this API to get a list of statuses for other users.\n * @summary Access Request Status\n * @param {string} [requestedFor] Filter the results by the identity for which the requests were made. *me* indicates the current user. Mutually exclusive with *regarding-identity*.\n * @param {string} [requestedBy] Filter the results by the identity that made the requests. *me* indicates the current user. Mutually exclusive with *regarding-identity*.\n * @param {string} [regardingIdentity] Filter the results by the specified identity which is either the requester or target of the requests. *me* indicates the current user. Mutually exclusive with *requested-for* and *requested-by*.\n * @param {string} [assignedTo] Filter the results by the specified identity which is the owner of the Identity Request Work Item. *me* indicates the current user.\n * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored.\n * @param {number} [limit] Max number of results to return.\n * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. Defaults to 0 if not specified.\n * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **accountActivityItemId**: *eq, in, co, ge, gt, le, lt, ne, isnull, sw*\n * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **created, modified, accountActivityItemId, name**\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n listAccessRequestStatus: function (requestedFor, requestedBy, regardingIdentity, assignedTo, count, limit, offset, filters, sorters, axiosOptions) {\n return localVarFp.listAccessRequestStatus(requestedFor, requestedBy, regardingIdentity, assignedTo, count, limit, offset, filters, sorters, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This endpoint replaces the current access-request configuration. A token with ORG_ADMIN authority is required to call this API.\n * @summary Update Access Request Configuration\n * @param {AccessRequestConfigBeta} accessRequestConfigBeta\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n setAccessRequestConfig: function (accessRequestConfigBeta, axiosOptions) {\n return localVarFp.setAccessRequestConfig(accessRequestConfigBeta, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n };\n};\nexports.AccessRequestsBetaApiFactory = AccessRequestsBetaApiFactory;\n/**\n * AccessRequestsBetaApi - object-oriented interface\n * @export\n * @class AccessRequestsBetaApi\n * @extends {BaseAPI}\n */\nvar AccessRequestsBetaApi = /** @class */ (function (_super) {\n __extends(AccessRequestsBetaApi, _super);\n function AccessRequestsBetaApi() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n * This API endpoint cancels a pending access request. An access request can be cancelled only if it has not passed the approval step. Any token with ORG_ADMIN authority or token of the user who originally requested the access request is required to cancel it.\n * @summary Cancel Access Request\n * @param {AccessRequestsBetaApiCancelAccessRequestRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof AccessRequestsBetaApi\n */\n AccessRequestsBetaApi.prototype.cancelAccessRequest = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.AccessRequestsBetaApiFp)(this.configuration).cancelAccessRequest(requestParameters.cancelAccessRequestBeta, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This endpoint closes access requests that are stuck in a pending state. It can be used throughout a request\\'s lifecycle (even after the approval state, unlike Cancel Access Request). A token with ORG_ADMIN authority is required. To find pending access requests via the UI, navigate to Search and use this query: status: Pending AND \\\"Access Request\\\". Use the Column Chooser to select \\\"Tracking Number,\\\" and the Download button to export a CSV containing the Tracking Numbers. To find pending access requests via the API, use List Account Activities. Input the ids from either source To track the status of endpoint requests, navigate to Search and use this query: name:\\\"Close Identity Requests\\\". Search will include \\\"Close Identity Requests Started\\\" audits when requests are initiated, and \\\"Close Identity Requests Completed\\\" audits when requests are completed. The completion audit will list the Identity Request IDs that finished in error. This API triggers the Provisioning Action Completed event trigger for each access request that is closed.\n * @summary Close Access Request\n * @param {AccessRequestsBetaApiCloseAccessRequestRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof AccessRequestsBetaApi\n */\n AccessRequestsBetaApi.prototype.closeAccessRequest = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.AccessRequestsBetaApiFp)(this.configuration).closeAccessRequest(requestParameters.closeAccessRequestBeta, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This submits the access request into IdentityNow, where it will follow any IdentityNow approval processes. Access requests are processed asynchronously by IdentityNow. A success response from this endpoint means the request has been submitted to IDN and is queued for processing. Because this endpoint is asynchronous, it will not return an error if you submit duplicate access requests in quick succession, or you submit an access request for access that is already in progress, approved, or rejected. It is best practice to check for any existing access requests that reference the same access items before submitting a new access request. This can be accomplished by using the [access request status](https://developer.sailpoint.com/idn/api/v3/list-access-request-status) or the [pending access request approvals](https://developer.sailpoint.com/idn/api/v3/list-pending-approvals) endpoints. You can also use the [search API](https://developer.sailpoint.com/idn/api/v3/search) to check the existing access items that an identity has before submitting an access request to ensure you are not requesting access that is already granted. There are two types of access request: __GRANT_ACCESS__ * Can be requested for multiple identities in a single request. * Supports self request and request on behalf of other users. Refer to the [Get Access Request Configuration](https://developer.sailpoint.com/idn/api/v3/get-access-request-config) endpoint for request configuration options. * Allows any authenticated token (except API) to call this endpoint to request to grant access to themselves. Depending on the configuration, a user can request access for others. * Roles, access profiles and entitlements can be requested. * While requesting entitlements, maximum of 25 entitlements and 10 recipients are allowed in a request. __REVOKE_ACCESS__ * Can only be requested for a single identity at a time. * Does not support self request. Only manager can request to revoke access for their directly managed employees. * If a `removeDate` is specified, then the access will be removed on that date and time only for roles and access profiles. Entitlements are currently unsupported for `removeDate`. * Roles, access profiles, and entitlements can be requested for revocation. * Revoke requests for entitlements are limited to 1 entitlement per access request currently. * [Roles, Access Profiles] You can specify a `removeDate` if the access doesn\\'t already have a sunset date. The `removeDate` must be a future date, in the UTC timezone. * Allows a manager to request to revoke access for direct employees. A token with ORG_ADMIN authority can also request to revoke access from anyone. >**Note:** There is no indication to the approver in the IdentityNow UI that the approval request is for a revoke action. Take this into consideration when calling this API. A token with API authority cannot be used to call this endpoint.\n * @summary Submit an Access Request\n * @param {AccessRequestsBetaApiCreateAccessRequestRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof AccessRequestsBetaApi\n */\n AccessRequestsBetaApi.prototype.createAccessRequest = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.AccessRequestsBetaApiFp)(this.configuration).createAccessRequest(requestParameters.accessRequestBeta, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This endpoint returns the current access-request configuration.\n * @summary Get Access Request Configuration\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof AccessRequestsBetaApi\n */\n AccessRequestsBetaApi.prototype.getAccessRequestConfig = function (axiosOptions) {\n var _this = this;\n return (0, exports.AccessRequestsBetaApiFp)(this.configuration).getAccessRequestConfig(axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * The Access Request Status API returns a list of access request statuses based on the specified query parameters. Any token with any authority can request their own status. A token with ORG_ADMIN authority is required to call this API to get a list of statuses for other users.\n * @summary Access Request Status\n * @param {AccessRequestsBetaApiListAccessRequestStatusRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof AccessRequestsBetaApi\n */\n AccessRequestsBetaApi.prototype.listAccessRequestStatus = function (requestParameters, axiosOptions) {\n var _this = this;\n if (requestParameters === void 0) { requestParameters = {}; }\n return (0, exports.AccessRequestsBetaApiFp)(this.configuration).listAccessRequestStatus(requestParameters.requestedFor, requestParameters.requestedBy, requestParameters.regardingIdentity, requestParameters.assignedTo, requestParameters.count, requestParameters.limit, requestParameters.offset, requestParameters.filters, requestParameters.sorters, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This endpoint replaces the current access-request configuration. A token with ORG_ADMIN authority is required to call this API.\n * @summary Update Access Request Configuration\n * @param {AccessRequestsBetaApiSetAccessRequestConfigRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof AccessRequestsBetaApi\n */\n AccessRequestsBetaApi.prototype.setAccessRequestConfig = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.AccessRequestsBetaApiFp)(this.configuration).setAccessRequestConfig(requestParameters.accessRequestConfigBeta, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n return AccessRequestsBetaApi;\n}(base_1.BaseAPI));\nexports.AccessRequestsBetaApi = AccessRequestsBetaApi;\n/**\n * AccountActivitiesBetaApi - axios parameter creator\n * @export\n */\nvar AccountActivitiesBetaApiAxiosParamCreator = function (configuration) {\n var _this = this;\n return {\n /**\n * This gets a single account activity by its id.\n * @summary Get Account Activity\n * @param {string} id The account activity id\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getAccountActivity: function (id, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'id' is not null or undefined\n (0, common_1.assertParamExists)('getAccountActivity', 'id', id);\n localVarPath = \"/account-activities/{id}\"\n .replace(\"{\".concat(\"id\", \"}\"), encodeURIComponent(String(id)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This gets a collection of account activities that satisfy the given query parameters.\n * @summary List Account Activities\n * @param {string} [requestedFor] The identity that the activity was requested for. *me* indicates the current user. Mutually exclusive with *regarding-identity*.\n * @param {string} [requestedBy] The identity that requested the activity. *me* indicates the current user. Mutually exclusive with *regarding-identity*.\n * @param {string} [regardingIdentity] The specified identity will be either the requester or target of the account activity. *me* indicates the current user. Mutually exclusive with *requested-for* and *requested-by*.\n * @param {string} [type] The type of account activity.\n * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **type**: *eq, in, co, ge, gt, le, lt, ne, isnull, sw* **created**: *gt, lt, ge, le, co, eq, in, ne, isnull, sw* **modified**: *gt, lt, ge, le, co, eq, in, ne, isnull, sw*\n * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **type, created, modified**\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n listAccountActivities: function (requestedFor, requestedBy, regardingIdentity, type, limit, offset, count, filters, sorters, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n localVarPath = \"/account-activities\";\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n if (requestedFor !== undefined) {\n localVarQueryParameter['requested-for'] = requestedFor;\n }\n if (requestedBy !== undefined) {\n localVarQueryParameter['requested-by'] = requestedBy;\n }\n if (regardingIdentity !== undefined) {\n localVarQueryParameter['regarding-identity'] = regardingIdentity;\n }\n if (type !== undefined) {\n localVarQueryParameter['type'] = type;\n }\n if (limit !== undefined) {\n localVarQueryParameter['limit'] = limit;\n }\n if (offset !== undefined) {\n localVarQueryParameter['offset'] = offset;\n }\n if (count !== undefined) {\n localVarQueryParameter['count'] = count;\n }\n if (filters !== undefined) {\n localVarQueryParameter['filters'] = filters;\n }\n if (sorters !== undefined) {\n localVarQueryParameter['sorters'] = sorters;\n }\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n };\n};\nexports.AccountActivitiesBetaApiAxiosParamCreator = AccountActivitiesBetaApiAxiosParamCreator;\n/**\n * AccountActivitiesBetaApi - functional programming interface\n * @export\n */\nvar AccountActivitiesBetaApiFp = function (configuration) {\n var localVarAxiosParamCreator = (0, exports.AccountActivitiesBetaApiAxiosParamCreator)(configuration);\n return {\n /**\n * This gets a single account activity by its id.\n * @summary Get Account Activity\n * @param {string} id The account activity id\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getAccountActivity: function (id, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.getAccountActivity(id, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This gets a collection of account activities that satisfy the given query parameters.\n * @summary List Account Activities\n * @param {string} [requestedFor] The identity that the activity was requested for. *me* indicates the current user. Mutually exclusive with *regarding-identity*.\n * @param {string} [requestedBy] The identity that requested the activity. *me* indicates the current user. Mutually exclusive with *regarding-identity*.\n * @param {string} [regardingIdentity] The specified identity will be either the requester or target of the account activity. *me* indicates the current user. Mutually exclusive with *requested-for* and *requested-by*.\n * @param {string} [type] The type of account activity.\n * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **type**: *eq, in, co, ge, gt, le, lt, ne, isnull, sw* **created**: *gt, lt, ge, le, co, eq, in, ne, isnull, sw* **modified**: *gt, lt, ge, le, co, eq, in, ne, isnull, sw*\n * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **type, created, modified**\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n listAccountActivities: function (requestedFor, requestedBy, regardingIdentity, type, limit, offset, count, filters, sorters, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.listAccountActivities(requestedFor, requestedBy, regardingIdentity, type, limit, offset, count, filters, sorters, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n };\n};\nexports.AccountActivitiesBetaApiFp = AccountActivitiesBetaApiFp;\n/**\n * AccountActivitiesBetaApi - factory interface\n * @export\n */\nvar AccountActivitiesBetaApiFactory = function (configuration, basePath, axios) {\n var localVarFp = (0, exports.AccountActivitiesBetaApiFp)(configuration);\n return {\n /**\n * This gets a single account activity by its id.\n * @summary Get Account Activity\n * @param {string} id The account activity id\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getAccountActivity: function (id, axiosOptions) {\n return localVarFp.getAccountActivity(id, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This gets a collection of account activities that satisfy the given query parameters.\n * @summary List Account Activities\n * @param {string} [requestedFor] The identity that the activity was requested for. *me* indicates the current user. Mutually exclusive with *regarding-identity*.\n * @param {string} [requestedBy] The identity that requested the activity. *me* indicates the current user. Mutually exclusive with *regarding-identity*.\n * @param {string} [regardingIdentity] The specified identity will be either the requester or target of the account activity. *me* indicates the current user. Mutually exclusive with *requested-for* and *requested-by*.\n * @param {string} [type] The type of account activity.\n * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **type**: *eq, in, co, ge, gt, le, lt, ne, isnull, sw* **created**: *gt, lt, ge, le, co, eq, in, ne, isnull, sw* **modified**: *gt, lt, ge, le, co, eq, in, ne, isnull, sw*\n * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **type, created, modified**\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n listAccountActivities: function (requestedFor, requestedBy, regardingIdentity, type, limit, offset, count, filters, sorters, axiosOptions) {\n return localVarFp.listAccountActivities(requestedFor, requestedBy, regardingIdentity, type, limit, offset, count, filters, sorters, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n };\n};\nexports.AccountActivitiesBetaApiFactory = AccountActivitiesBetaApiFactory;\n/**\n * AccountActivitiesBetaApi - object-oriented interface\n * @export\n * @class AccountActivitiesBetaApi\n * @extends {BaseAPI}\n */\nvar AccountActivitiesBetaApi = /** @class */ (function (_super) {\n __extends(AccountActivitiesBetaApi, _super);\n function AccountActivitiesBetaApi() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n * This gets a single account activity by its id.\n * @summary Get Account Activity\n * @param {AccountActivitiesBetaApiGetAccountActivityRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof AccountActivitiesBetaApi\n */\n AccountActivitiesBetaApi.prototype.getAccountActivity = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.AccountActivitiesBetaApiFp)(this.configuration).getAccountActivity(requestParameters.id, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This gets a collection of account activities that satisfy the given query parameters.\n * @summary List Account Activities\n * @param {AccountActivitiesBetaApiListAccountActivitiesRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof AccountActivitiesBetaApi\n */\n AccountActivitiesBetaApi.prototype.listAccountActivities = function (requestParameters, axiosOptions) {\n var _this = this;\n if (requestParameters === void 0) { requestParameters = {}; }\n return (0, exports.AccountActivitiesBetaApiFp)(this.configuration).listAccountActivities(requestParameters.requestedFor, requestParameters.requestedBy, requestParameters.regardingIdentity, requestParameters.type, requestParameters.limit, requestParameters.offset, requestParameters.count, requestParameters.filters, requestParameters.sorters, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n return AccountActivitiesBetaApi;\n}(base_1.BaseAPI));\nexports.AccountActivitiesBetaApi = AccountActivitiesBetaApi;\n/**\n * AccountAggregationsBetaApi - axios parameter creator\n * @export\n */\nvar AccountAggregationsBetaApiAxiosParamCreator = function (configuration) {\n var _this = this;\n return {\n /**\n * This API returns the status of an *in-progress* account aggregation, along with the total number of **NEW**, **CHANGED** and **DELETED** accounts found since the previous aggregation, and the number of those accounts that have been processed so far. Accounts that have not changed since the previous aggregation are not included in **totalAccounts** and **processedAccounts** counts returned by this API. This is distinct from **Accounts Scanned** shown in the Aggregation UI, which indicates total accounts scanned regardless of whether they changed or not. Since this endpoint reports on the status of an *in-progress* account aggregation, totalAccounts and processedAccounts may change between calls to this endpoint. *Only available up to an hour after the aggregation completes. May respond with *404 Not Found* after that.* A token with ORG_ADMIN, SOURCE_ADMIN, SOURCE_SUBADMIN or DASHBOARD authority is required to call this API.\n * @summary In-progress Account Aggregation status\n * @param {string} id The account aggregation id\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getAccountAggregationStatus: function (id, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'id' is not null or undefined\n (0, common_1.assertParamExists)('getAccountAggregationStatus', 'id', id);\n localVarPath = \"/account-aggregations/{id}/status\"\n .replace(\"{\".concat(\"id\", \"}\"), encodeURIComponent(String(id)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n };\n};\nexports.AccountAggregationsBetaApiAxiosParamCreator = AccountAggregationsBetaApiAxiosParamCreator;\n/**\n * AccountAggregationsBetaApi - functional programming interface\n * @export\n */\nvar AccountAggregationsBetaApiFp = function (configuration) {\n var localVarAxiosParamCreator = (0, exports.AccountAggregationsBetaApiAxiosParamCreator)(configuration);\n return {\n /**\n * This API returns the status of an *in-progress* account aggregation, along with the total number of **NEW**, **CHANGED** and **DELETED** accounts found since the previous aggregation, and the number of those accounts that have been processed so far. Accounts that have not changed since the previous aggregation are not included in **totalAccounts** and **processedAccounts** counts returned by this API. This is distinct from **Accounts Scanned** shown in the Aggregation UI, which indicates total accounts scanned regardless of whether they changed or not. Since this endpoint reports on the status of an *in-progress* account aggregation, totalAccounts and processedAccounts may change between calls to this endpoint. *Only available up to an hour after the aggregation completes. May respond with *404 Not Found* after that.* A token with ORG_ADMIN, SOURCE_ADMIN, SOURCE_SUBADMIN or DASHBOARD authority is required to call this API.\n * @summary In-progress Account Aggregation status\n * @param {string} id The account aggregation id\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getAccountAggregationStatus: function (id, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.getAccountAggregationStatus(id, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n };\n};\nexports.AccountAggregationsBetaApiFp = AccountAggregationsBetaApiFp;\n/**\n * AccountAggregationsBetaApi - factory interface\n * @export\n */\nvar AccountAggregationsBetaApiFactory = function (configuration, basePath, axios) {\n var localVarFp = (0, exports.AccountAggregationsBetaApiFp)(configuration);\n return {\n /**\n * This API returns the status of an *in-progress* account aggregation, along with the total number of **NEW**, **CHANGED** and **DELETED** accounts found since the previous aggregation, and the number of those accounts that have been processed so far. Accounts that have not changed since the previous aggregation are not included in **totalAccounts** and **processedAccounts** counts returned by this API. This is distinct from **Accounts Scanned** shown in the Aggregation UI, which indicates total accounts scanned regardless of whether they changed or not. Since this endpoint reports on the status of an *in-progress* account aggregation, totalAccounts and processedAccounts may change between calls to this endpoint. *Only available up to an hour after the aggregation completes. May respond with *404 Not Found* after that.* A token with ORG_ADMIN, SOURCE_ADMIN, SOURCE_SUBADMIN or DASHBOARD authority is required to call this API.\n * @summary In-progress Account Aggregation status\n * @param {string} id The account aggregation id\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getAccountAggregationStatus: function (id, axiosOptions) {\n return localVarFp.getAccountAggregationStatus(id, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n };\n};\nexports.AccountAggregationsBetaApiFactory = AccountAggregationsBetaApiFactory;\n/**\n * AccountAggregationsBetaApi - object-oriented interface\n * @export\n * @class AccountAggregationsBetaApi\n * @extends {BaseAPI}\n */\nvar AccountAggregationsBetaApi = /** @class */ (function (_super) {\n __extends(AccountAggregationsBetaApi, _super);\n function AccountAggregationsBetaApi() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n * This API returns the status of an *in-progress* account aggregation, along with the total number of **NEW**, **CHANGED** and **DELETED** accounts found since the previous aggregation, and the number of those accounts that have been processed so far. Accounts that have not changed since the previous aggregation are not included in **totalAccounts** and **processedAccounts** counts returned by this API. This is distinct from **Accounts Scanned** shown in the Aggregation UI, which indicates total accounts scanned regardless of whether they changed or not. Since this endpoint reports on the status of an *in-progress* account aggregation, totalAccounts and processedAccounts may change between calls to this endpoint. *Only available up to an hour after the aggregation completes. May respond with *404 Not Found* after that.* A token with ORG_ADMIN, SOURCE_ADMIN, SOURCE_SUBADMIN or DASHBOARD authority is required to call this API.\n * @summary In-progress Account Aggregation status\n * @param {AccountAggregationsBetaApiGetAccountAggregationStatusRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof AccountAggregationsBetaApi\n */\n AccountAggregationsBetaApi.prototype.getAccountAggregationStatus = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.AccountAggregationsBetaApiFp)(this.configuration).getAccountAggregationStatus(requestParameters.id, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n return AccountAggregationsBetaApi;\n}(base_1.BaseAPI));\nexports.AccountAggregationsBetaApi = AccountAggregationsBetaApi;\n/**\n * AccountUsagesBetaApi - axios parameter creator\n * @export\n */\nvar AccountUsagesBetaApiAxiosParamCreator = function (configuration) {\n var _this = this;\n return {\n /**\n * This API returns a summary of account usage insights for past 12 months.\n * @summary Returns account usage insights\n * @param {string} accountId ID of IDN account\n * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **date**\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getUsagesByAccountId: function (accountId, limit, offset, count, sorters, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'accountId' is not null or undefined\n (0, common_1.assertParamExists)('getUsagesByAccountId', 'accountId', accountId);\n localVarPath = \"/account-usages/{accountId}/summaries\"\n .replace(\"{\".concat(\"accountId\", \"}\"), encodeURIComponent(String(accountId)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n if (limit !== undefined) {\n localVarQueryParameter['limit'] = limit;\n }\n if (offset !== undefined) {\n localVarQueryParameter['offset'] = offset;\n }\n if (count !== undefined) {\n localVarQueryParameter['count'] = count;\n }\n if (sorters !== undefined) {\n localVarQueryParameter['sorters'] = sorters;\n }\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n };\n};\nexports.AccountUsagesBetaApiAxiosParamCreator = AccountUsagesBetaApiAxiosParamCreator;\n/**\n * AccountUsagesBetaApi - functional programming interface\n * @export\n */\nvar AccountUsagesBetaApiFp = function (configuration) {\n var localVarAxiosParamCreator = (0, exports.AccountUsagesBetaApiAxiosParamCreator)(configuration);\n return {\n /**\n * This API returns a summary of account usage insights for past 12 months.\n * @summary Returns account usage insights\n * @param {string} accountId ID of IDN account\n * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **date**\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getUsagesByAccountId: function (accountId, limit, offset, count, sorters, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.getUsagesByAccountId(accountId, limit, offset, count, sorters, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n };\n};\nexports.AccountUsagesBetaApiFp = AccountUsagesBetaApiFp;\n/**\n * AccountUsagesBetaApi - factory interface\n * @export\n */\nvar AccountUsagesBetaApiFactory = function (configuration, basePath, axios) {\n var localVarFp = (0, exports.AccountUsagesBetaApiFp)(configuration);\n return {\n /**\n * This API returns a summary of account usage insights for past 12 months.\n * @summary Returns account usage insights\n * @param {string} accountId ID of IDN account\n * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **date**\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getUsagesByAccountId: function (accountId, limit, offset, count, sorters, axiosOptions) {\n return localVarFp.getUsagesByAccountId(accountId, limit, offset, count, sorters, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n };\n};\nexports.AccountUsagesBetaApiFactory = AccountUsagesBetaApiFactory;\n/**\n * AccountUsagesBetaApi - object-oriented interface\n * @export\n * @class AccountUsagesBetaApi\n * @extends {BaseAPI}\n */\nvar AccountUsagesBetaApi = /** @class */ (function (_super) {\n __extends(AccountUsagesBetaApi, _super);\n function AccountUsagesBetaApi() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n * This API returns a summary of account usage insights for past 12 months.\n * @summary Returns account usage insights\n * @param {AccountUsagesBetaApiGetUsagesByAccountIdRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof AccountUsagesBetaApi\n */\n AccountUsagesBetaApi.prototype.getUsagesByAccountId = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.AccountUsagesBetaApiFp)(this.configuration).getUsagesByAccountId(requestParameters.accountId, requestParameters.limit, requestParameters.offset, requestParameters.count, requestParameters.sorters, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n return AccountUsagesBetaApi;\n}(base_1.BaseAPI));\nexports.AccountUsagesBetaApi = AccountUsagesBetaApi;\n/**\n * AccountsBetaApi - axios parameter creator\n * @export\n */\nvar AccountsBetaApiAxiosParamCreator = function (configuration) {\n var _this = this;\n return {\n /**\n * This API submits an account creation task and returns the task ID. The `sourceId` where this account will be created must be included in the `attributes` object. A token with ORG_ADMIN authority is required to call this API.\n * @summary Create Account\n * @param {AccountAttributesCreateBeta} accountAttributesCreateBeta\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n createAccount: function (accountAttributesCreateBeta, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'accountAttributesCreateBeta' is not null or undefined\n (0, common_1.assertParamExists)('createAccount', 'accountAttributesCreateBeta', accountAttributesCreateBeta);\n localVarPath = \"/accounts\";\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n localVarHeaderParameter['Content-Type'] = 'application/json';\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(accountAttributesCreateBeta, localVarRequestOptions, configuration);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This API submits an account delete task and returns the task ID. A token with ORG_ADMIN authority is required to call this API.\n * @summary Delete Account\n * @param {string} id The account ID\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n deleteAccount: function (id, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'id' is not null or undefined\n (0, common_1.assertParamExists)('deleteAccount', 'id', id);\n localVarPath = \"/accounts/{id}\"\n .replace(\"{\".concat(\"id\", \"}\"), encodeURIComponent(String(id)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'DELETE' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This API submits a task to disable the account and returns the task ID. A token with ORG_ADMIN authority is required to call this API.\n * @summary Disable Account\n * @param {string} id The account id\n * @param {AccountToggleRequestBeta} accountToggleRequestBeta\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n disableAccount: function (id, accountToggleRequestBeta, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'id' is not null or undefined\n (0, common_1.assertParamExists)('disableAccount', 'id', id);\n // verify required parameter 'accountToggleRequestBeta' is not null or undefined\n (0, common_1.assertParamExists)('disableAccount', 'accountToggleRequestBeta', accountToggleRequestBeta);\n localVarPath = \"/accounts/{id}/disable\"\n .replace(\"{\".concat(\"id\", \"}\"), encodeURIComponent(String(id)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n localVarHeaderParameter['Content-Type'] = 'application/json';\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(accountToggleRequestBeta, localVarRequestOptions, configuration);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This API submits a task to disable IDN account for a single identity.\n * @summary Disable IDN Account for Identity\n * @param {string} id The identity id.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n disableAccountForIdentity: function (id, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'id' is not null or undefined\n (0, common_1.assertParamExists)('disableAccountForIdentity', 'id', id);\n localVarPath = \"/identities-accounts/{id}/disable\"\n .replace(\"{\".concat(\"id\", \"}\"), encodeURIComponent(String(id)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This API submits tasks to disable IDN account for each identity provided in the request body.\n * @summary Disable IDN Accounts for Identities\n * @param {IdentitiesAccountsBulkRequestBeta} identitiesAccountsBulkRequestBeta\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n disableAccountsForIdentities: function (identitiesAccountsBulkRequestBeta, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'identitiesAccountsBulkRequestBeta' is not null or undefined\n (0, common_1.assertParamExists)('disableAccountsForIdentities', 'identitiesAccountsBulkRequestBeta', identitiesAccountsBulkRequestBeta);\n localVarPath = \"/identities-accounts/disable\";\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n localVarHeaderParameter['Content-Type'] = 'application/json';\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(identitiesAccountsBulkRequestBeta, localVarRequestOptions, configuration);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This API submits a task to enable account and returns the task ID. A token with ORG_ADMIN authority is required to call this API.\n * @summary Enable Account\n * @param {string} id The account id\n * @param {AccountToggleRequestBeta} accountToggleRequestBeta\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n enableAccount: function (id, accountToggleRequestBeta, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'id' is not null or undefined\n (0, common_1.assertParamExists)('enableAccount', 'id', id);\n // verify required parameter 'accountToggleRequestBeta' is not null or undefined\n (0, common_1.assertParamExists)('enableAccount', 'accountToggleRequestBeta', accountToggleRequestBeta);\n localVarPath = \"/accounts/{id}/enable\"\n .replace(\"{\".concat(\"id\", \"}\"), encodeURIComponent(String(id)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n localVarHeaderParameter['Content-Type'] = 'application/json';\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(accountToggleRequestBeta, localVarRequestOptions, configuration);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This API submits a task to enable IDN account for a single identity.\n * @summary Enable IDN Account for Identity\n * @param {string} id The identity id.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n enableAccountForIdentity: function (id, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'id' is not null or undefined\n (0, common_1.assertParamExists)('enableAccountForIdentity', 'id', id);\n localVarPath = \"/identities-accounts/{id}/enable\"\n .replace(\"{\".concat(\"id\", \"}\"), encodeURIComponent(String(id)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This API submits tasks to enable IDN account for each identity provided in the request body.\n * @summary Enable IDN Accounts for Identities\n * @param {IdentitiesAccountsBulkRequestBeta} identitiesAccountsBulkRequestBeta\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n enableAccountsForIdentities: function (identitiesAccountsBulkRequestBeta, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'identitiesAccountsBulkRequestBeta' is not null or undefined\n (0, common_1.assertParamExists)('enableAccountsForIdentities', 'identitiesAccountsBulkRequestBeta', identitiesAccountsBulkRequestBeta);\n localVarPath = \"/identities-accounts/enable\";\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n localVarHeaderParameter['Content-Type'] = 'application/json';\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(identitiesAccountsBulkRequestBeta, localVarRequestOptions, configuration);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This API returns the details for a single account based on the ID. A token with ORG_ADMIN authority is required to call this API.\n * @summary Account Details\n * @param {string} id The account ID\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getAccount: function (id, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'id' is not null or undefined\n (0, common_1.assertParamExists)('getAccount', 'id', id);\n localVarPath = \"/accounts/{id}\"\n .replace(\"{\".concat(\"id\", \"}\"), encodeURIComponent(String(id)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This API returns entitlements of the account. A token with ORG_ADMIN authority is required to call this API.\n * @summary Account Entitlements\n * @param {string} id The account id\n * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getAccountEntitlements: function (id, offset, limit, count, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'id' is not null or undefined\n (0, common_1.assertParamExists)('getAccountEntitlements', 'id', id);\n localVarPath = \"/accounts/{id}/entitlements\"\n .replace(\"{\".concat(\"id\", \"}\"), encodeURIComponent(String(id)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n if (offset !== undefined) {\n localVarQueryParameter['offset'] = offset;\n }\n if (limit !== undefined) {\n localVarQueryParameter['limit'] = limit;\n }\n if (count !== undefined) {\n localVarQueryParameter['count'] = count;\n }\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This returns a list of accounts. A token with ORG_ADMIN authority is required to call this API.\n * @summary Accounts List\n * @param {'SLIM' | 'FULL'} [detailLevel] Determines whether Slim, or increased level of detail is provided for each account in the returned list. FULL is the default behavior.\n * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **id**: *eq, in* **identityId**: *eq* **name**: *eq, in* **nativeIdentity**: *eq, in* **sourceId**: *eq, in* **uncorrelated**: *eq*\n * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **id, name, created, modified**\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n listAccounts: function (detailLevel, limit, offset, count, filters, sorters, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n localVarPath = \"/accounts\";\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n if (detailLevel !== undefined) {\n localVarQueryParameter['detailLevel'] = detailLevel;\n }\n if (limit !== undefined) {\n localVarQueryParameter['limit'] = limit;\n }\n if (offset !== undefined) {\n localVarQueryParameter['offset'] = offset;\n }\n if (count !== undefined) {\n localVarQueryParameter['count'] = count;\n }\n if (filters !== undefined) {\n localVarQueryParameter['filters'] = filters;\n }\n if (sorters !== undefined) {\n localVarQueryParameter['sorters'] = sorters;\n }\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This API submits an account update task and returns the task ID. A token with ORG_ADMIN authority is required to call this API.\n * @summary Update Account\n * @param {string} id The account ID\n * @param {AccountAttributesBeta} accountAttributesBeta\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n putAccount: function (id, accountAttributesBeta, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'id' is not null or undefined\n (0, common_1.assertParamExists)('putAccount', 'id', id);\n // verify required parameter 'accountAttributesBeta' is not null or undefined\n (0, common_1.assertParamExists)('putAccount', 'accountAttributesBeta', accountAttributesBeta);\n localVarPath = \"/accounts/{id}\"\n .replace(\"{\".concat(\"id\", \"}\"), encodeURIComponent(String(id)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'PUT' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n localVarHeaderParameter['Content-Type'] = 'application/json';\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(accountAttributesBeta, localVarRequestOptions, configuration);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This API asynchronously reloads the account directly from the connector and performs a one-time aggregation process. A token with ORG_ADMIN authority is required to call this API.\n * @summary Reload Account\n * @param {string} id The account id\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n reloadAccount: function (id, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'id' is not null or undefined\n (0, common_1.assertParamExists)('reloadAccount', 'id', id);\n localVarPath = \"/accounts/{id}/reload\"\n .replace(\"{\".concat(\"id\", \"}\"), encodeURIComponent(String(id)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This API submits a task to unlock an account and returns the task ID. A token with ORG_ADMIN authority is required to call this API.\n * @summary Unlock Account\n * @param {string} id The account id\n * @param {AccountUnlockRequestBeta} accountUnlockRequestBeta\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n unlockAccount: function (id, accountUnlockRequestBeta, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'id' is not null or undefined\n (0, common_1.assertParamExists)('unlockAccount', 'id', id);\n // verify required parameter 'accountUnlockRequestBeta' is not null or undefined\n (0, common_1.assertParamExists)('unlockAccount', 'accountUnlockRequestBeta', accountUnlockRequestBeta);\n localVarPath = \"/accounts/{id}/unlock\"\n .replace(\"{\".concat(\"id\", \"}\"), encodeURIComponent(String(id)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n localVarHeaderParameter['Content-Type'] = 'application/json';\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(accountUnlockRequestBeta, localVarRequestOptions, configuration);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This updates account details. A token with ORG_ADMIN authority is required to call this API.\n * @summary Update Account\n * @param {string} id The account ID\n * @param {Array} requestBody A list of account update operations according to the [JSON Patch](https://tools.ietf.org/html/rfc6902) standard.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n updateAccount: function (id, requestBody, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'id' is not null or undefined\n (0, common_1.assertParamExists)('updateAccount', 'id', id);\n // verify required parameter 'requestBody' is not null or undefined\n (0, common_1.assertParamExists)('updateAccount', 'requestBody', requestBody);\n localVarPath = \"/accounts/{id}\"\n .replace(\"{\".concat(\"id\", \"}\"), encodeURIComponent(String(id)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'PATCH' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n localVarHeaderParameter['Content-Type'] = 'application/json-patch+json';\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(requestBody, localVarRequestOptions, configuration);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n };\n};\nexports.AccountsBetaApiAxiosParamCreator = AccountsBetaApiAxiosParamCreator;\n/**\n * AccountsBetaApi - functional programming interface\n * @export\n */\nvar AccountsBetaApiFp = function (configuration) {\n var localVarAxiosParamCreator = (0, exports.AccountsBetaApiAxiosParamCreator)(configuration);\n return {\n /**\n * This API submits an account creation task and returns the task ID. The `sourceId` where this account will be created must be included in the `attributes` object. A token with ORG_ADMIN authority is required to call this API.\n * @summary Create Account\n * @param {AccountAttributesCreateBeta} accountAttributesCreateBeta\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n createAccount: function (accountAttributesCreateBeta, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.createAccount(accountAttributesCreateBeta, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This API submits an account delete task and returns the task ID. A token with ORG_ADMIN authority is required to call this API.\n * @summary Delete Account\n * @param {string} id The account ID\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n deleteAccount: function (id, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.deleteAccount(id, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This API submits a task to disable the account and returns the task ID. A token with ORG_ADMIN authority is required to call this API.\n * @summary Disable Account\n * @param {string} id The account id\n * @param {AccountToggleRequestBeta} accountToggleRequestBeta\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n disableAccount: function (id, accountToggleRequestBeta, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.disableAccount(id, accountToggleRequestBeta, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This API submits a task to disable IDN account for a single identity.\n * @summary Disable IDN Account for Identity\n * @param {string} id The identity id.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n disableAccountForIdentity: function (id, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.disableAccountForIdentity(id, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This API submits tasks to disable IDN account for each identity provided in the request body.\n * @summary Disable IDN Accounts for Identities\n * @param {IdentitiesAccountsBulkRequestBeta} identitiesAccountsBulkRequestBeta\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n disableAccountsForIdentities: function (identitiesAccountsBulkRequestBeta, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.disableAccountsForIdentities(identitiesAccountsBulkRequestBeta, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This API submits a task to enable account and returns the task ID. A token with ORG_ADMIN authority is required to call this API.\n * @summary Enable Account\n * @param {string} id The account id\n * @param {AccountToggleRequestBeta} accountToggleRequestBeta\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n enableAccount: function (id, accountToggleRequestBeta, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.enableAccount(id, accountToggleRequestBeta, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This API submits a task to enable IDN account for a single identity.\n * @summary Enable IDN Account for Identity\n * @param {string} id The identity id.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n enableAccountForIdentity: function (id, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.enableAccountForIdentity(id, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This API submits tasks to enable IDN account for each identity provided in the request body.\n * @summary Enable IDN Accounts for Identities\n * @param {IdentitiesAccountsBulkRequestBeta} identitiesAccountsBulkRequestBeta\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n enableAccountsForIdentities: function (identitiesAccountsBulkRequestBeta, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.enableAccountsForIdentities(identitiesAccountsBulkRequestBeta, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This API returns the details for a single account based on the ID. A token with ORG_ADMIN authority is required to call this API.\n * @summary Account Details\n * @param {string} id The account ID\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getAccount: function (id, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.getAccount(id, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This API returns entitlements of the account. A token with ORG_ADMIN authority is required to call this API.\n * @summary Account Entitlements\n * @param {string} id The account id\n * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getAccountEntitlements: function (id, offset, limit, count, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.getAccountEntitlements(id, offset, limit, count, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This returns a list of accounts. A token with ORG_ADMIN authority is required to call this API.\n * @summary Accounts List\n * @param {'SLIM' | 'FULL'} [detailLevel] Determines whether Slim, or increased level of detail is provided for each account in the returned list. FULL is the default behavior.\n * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **id**: *eq, in* **identityId**: *eq* **name**: *eq, in* **nativeIdentity**: *eq, in* **sourceId**: *eq, in* **uncorrelated**: *eq*\n * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **id, name, created, modified**\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n listAccounts: function (detailLevel, limit, offset, count, filters, sorters, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.listAccounts(detailLevel, limit, offset, count, filters, sorters, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This API submits an account update task and returns the task ID. A token with ORG_ADMIN authority is required to call this API.\n * @summary Update Account\n * @param {string} id The account ID\n * @param {AccountAttributesBeta} accountAttributesBeta\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n putAccount: function (id, accountAttributesBeta, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.putAccount(id, accountAttributesBeta, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This API asynchronously reloads the account directly from the connector and performs a one-time aggregation process. A token with ORG_ADMIN authority is required to call this API.\n * @summary Reload Account\n * @param {string} id The account id\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n reloadAccount: function (id, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.reloadAccount(id, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This API submits a task to unlock an account and returns the task ID. A token with ORG_ADMIN authority is required to call this API.\n * @summary Unlock Account\n * @param {string} id The account id\n * @param {AccountUnlockRequestBeta} accountUnlockRequestBeta\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n unlockAccount: function (id, accountUnlockRequestBeta, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.unlockAccount(id, accountUnlockRequestBeta, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This updates account details. A token with ORG_ADMIN authority is required to call this API.\n * @summary Update Account\n * @param {string} id The account ID\n * @param {Array} requestBody A list of account update operations according to the [JSON Patch](https://tools.ietf.org/html/rfc6902) standard.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n updateAccount: function (id, requestBody, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.updateAccount(id, requestBody, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n };\n};\nexports.AccountsBetaApiFp = AccountsBetaApiFp;\n/**\n * AccountsBetaApi - factory interface\n * @export\n */\nvar AccountsBetaApiFactory = function (configuration, basePath, axios) {\n var localVarFp = (0, exports.AccountsBetaApiFp)(configuration);\n return {\n /**\n * This API submits an account creation task and returns the task ID. The `sourceId` where this account will be created must be included in the `attributes` object. A token with ORG_ADMIN authority is required to call this API.\n * @summary Create Account\n * @param {AccountAttributesCreateBeta} accountAttributesCreateBeta\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n createAccount: function (accountAttributesCreateBeta, axiosOptions) {\n return localVarFp.createAccount(accountAttributesCreateBeta, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This API submits an account delete task and returns the task ID. A token with ORG_ADMIN authority is required to call this API.\n * @summary Delete Account\n * @param {string} id The account ID\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n deleteAccount: function (id, axiosOptions) {\n return localVarFp.deleteAccount(id, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This API submits a task to disable the account and returns the task ID. A token with ORG_ADMIN authority is required to call this API.\n * @summary Disable Account\n * @param {string} id The account id\n * @param {AccountToggleRequestBeta} accountToggleRequestBeta\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n disableAccount: function (id, accountToggleRequestBeta, axiosOptions) {\n return localVarFp.disableAccount(id, accountToggleRequestBeta, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This API submits a task to disable IDN account for a single identity.\n * @summary Disable IDN Account for Identity\n * @param {string} id The identity id.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n disableAccountForIdentity: function (id, axiosOptions) {\n return localVarFp.disableAccountForIdentity(id, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This API submits tasks to disable IDN account for each identity provided in the request body.\n * @summary Disable IDN Accounts for Identities\n * @param {IdentitiesAccountsBulkRequestBeta} identitiesAccountsBulkRequestBeta\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n disableAccountsForIdentities: function (identitiesAccountsBulkRequestBeta, axiosOptions) {\n return localVarFp.disableAccountsForIdentities(identitiesAccountsBulkRequestBeta, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This API submits a task to enable account and returns the task ID. A token with ORG_ADMIN authority is required to call this API.\n * @summary Enable Account\n * @param {string} id The account id\n * @param {AccountToggleRequestBeta} accountToggleRequestBeta\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n enableAccount: function (id, accountToggleRequestBeta, axiosOptions) {\n return localVarFp.enableAccount(id, accountToggleRequestBeta, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This API submits a task to enable IDN account for a single identity.\n * @summary Enable IDN Account for Identity\n * @param {string} id The identity id.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n enableAccountForIdentity: function (id, axiosOptions) {\n return localVarFp.enableAccountForIdentity(id, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This API submits tasks to enable IDN account for each identity provided in the request body.\n * @summary Enable IDN Accounts for Identities\n * @param {IdentitiesAccountsBulkRequestBeta} identitiesAccountsBulkRequestBeta\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n enableAccountsForIdentities: function (identitiesAccountsBulkRequestBeta, axiosOptions) {\n return localVarFp.enableAccountsForIdentities(identitiesAccountsBulkRequestBeta, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This API returns the details for a single account based on the ID. A token with ORG_ADMIN authority is required to call this API.\n * @summary Account Details\n * @param {string} id The account ID\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getAccount: function (id, axiosOptions) {\n return localVarFp.getAccount(id, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This API returns entitlements of the account. A token with ORG_ADMIN authority is required to call this API.\n * @summary Account Entitlements\n * @param {string} id The account id\n * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getAccountEntitlements: function (id, offset, limit, count, axiosOptions) {\n return localVarFp.getAccountEntitlements(id, offset, limit, count, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This returns a list of accounts. A token with ORG_ADMIN authority is required to call this API.\n * @summary Accounts List\n * @param {'SLIM' | 'FULL'} [detailLevel] Determines whether Slim, or increased level of detail is provided for each account in the returned list. FULL is the default behavior.\n * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **id**: *eq, in* **identityId**: *eq* **name**: *eq, in* **nativeIdentity**: *eq, in* **sourceId**: *eq, in* **uncorrelated**: *eq*\n * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **id, name, created, modified**\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n listAccounts: function (detailLevel, limit, offset, count, filters, sorters, axiosOptions) {\n return localVarFp.listAccounts(detailLevel, limit, offset, count, filters, sorters, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This API submits an account update task and returns the task ID. A token with ORG_ADMIN authority is required to call this API.\n * @summary Update Account\n * @param {string} id The account ID\n * @param {AccountAttributesBeta} accountAttributesBeta\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n putAccount: function (id, accountAttributesBeta, axiosOptions) {\n return localVarFp.putAccount(id, accountAttributesBeta, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This API asynchronously reloads the account directly from the connector and performs a one-time aggregation process. A token with ORG_ADMIN authority is required to call this API.\n * @summary Reload Account\n * @param {string} id The account id\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n reloadAccount: function (id, axiosOptions) {\n return localVarFp.reloadAccount(id, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This API submits a task to unlock an account and returns the task ID. A token with ORG_ADMIN authority is required to call this API.\n * @summary Unlock Account\n * @param {string} id The account id\n * @param {AccountUnlockRequestBeta} accountUnlockRequestBeta\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n unlockAccount: function (id, accountUnlockRequestBeta, axiosOptions) {\n return localVarFp.unlockAccount(id, accountUnlockRequestBeta, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This updates account details. A token with ORG_ADMIN authority is required to call this API.\n * @summary Update Account\n * @param {string} id The account ID\n * @param {Array} requestBody A list of account update operations according to the [JSON Patch](https://tools.ietf.org/html/rfc6902) standard.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n updateAccount: function (id, requestBody, axiosOptions) {\n return localVarFp.updateAccount(id, requestBody, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n };\n};\nexports.AccountsBetaApiFactory = AccountsBetaApiFactory;\n/**\n * AccountsBetaApi - object-oriented interface\n * @export\n * @class AccountsBetaApi\n * @extends {BaseAPI}\n */\nvar AccountsBetaApi = /** @class */ (function (_super) {\n __extends(AccountsBetaApi, _super);\n function AccountsBetaApi() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n * This API submits an account creation task and returns the task ID. The `sourceId` where this account will be created must be included in the `attributes` object. A token with ORG_ADMIN authority is required to call this API.\n * @summary Create Account\n * @param {AccountsBetaApiCreateAccountRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof AccountsBetaApi\n */\n AccountsBetaApi.prototype.createAccount = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.AccountsBetaApiFp)(this.configuration).createAccount(requestParameters.accountAttributesCreateBeta, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This API submits an account delete task and returns the task ID. A token with ORG_ADMIN authority is required to call this API.\n * @summary Delete Account\n * @param {AccountsBetaApiDeleteAccountRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof AccountsBetaApi\n */\n AccountsBetaApi.prototype.deleteAccount = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.AccountsBetaApiFp)(this.configuration).deleteAccount(requestParameters.id, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This API submits a task to disable the account and returns the task ID. A token with ORG_ADMIN authority is required to call this API.\n * @summary Disable Account\n * @param {AccountsBetaApiDisableAccountRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof AccountsBetaApi\n */\n AccountsBetaApi.prototype.disableAccount = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.AccountsBetaApiFp)(this.configuration).disableAccount(requestParameters.id, requestParameters.accountToggleRequestBeta, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This API submits a task to disable IDN account for a single identity.\n * @summary Disable IDN Account for Identity\n * @param {AccountsBetaApiDisableAccountForIdentityRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof AccountsBetaApi\n */\n AccountsBetaApi.prototype.disableAccountForIdentity = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.AccountsBetaApiFp)(this.configuration).disableAccountForIdentity(requestParameters.id, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This API submits tasks to disable IDN account for each identity provided in the request body.\n * @summary Disable IDN Accounts for Identities\n * @param {AccountsBetaApiDisableAccountsForIdentitiesRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof AccountsBetaApi\n */\n AccountsBetaApi.prototype.disableAccountsForIdentities = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.AccountsBetaApiFp)(this.configuration).disableAccountsForIdentities(requestParameters.identitiesAccountsBulkRequestBeta, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This API submits a task to enable account and returns the task ID. A token with ORG_ADMIN authority is required to call this API.\n * @summary Enable Account\n * @param {AccountsBetaApiEnableAccountRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof AccountsBetaApi\n */\n AccountsBetaApi.prototype.enableAccount = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.AccountsBetaApiFp)(this.configuration).enableAccount(requestParameters.id, requestParameters.accountToggleRequestBeta, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This API submits a task to enable IDN account for a single identity.\n * @summary Enable IDN Account for Identity\n * @param {AccountsBetaApiEnableAccountForIdentityRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof AccountsBetaApi\n */\n AccountsBetaApi.prototype.enableAccountForIdentity = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.AccountsBetaApiFp)(this.configuration).enableAccountForIdentity(requestParameters.id, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This API submits tasks to enable IDN account for each identity provided in the request body.\n * @summary Enable IDN Accounts for Identities\n * @param {AccountsBetaApiEnableAccountsForIdentitiesRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof AccountsBetaApi\n */\n AccountsBetaApi.prototype.enableAccountsForIdentities = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.AccountsBetaApiFp)(this.configuration).enableAccountsForIdentities(requestParameters.identitiesAccountsBulkRequestBeta, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This API returns the details for a single account based on the ID. A token with ORG_ADMIN authority is required to call this API.\n * @summary Account Details\n * @param {AccountsBetaApiGetAccountRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof AccountsBetaApi\n */\n AccountsBetaApi.prototype.getAccount = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.AccountsBetaApiFp)(this.configuration).getAccount(requestParameters.id, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This API returns entitlements of the account. A token with ORG_ADMIN authority is required to call this API.\n * @summary Account Entitlements\n * @param {AccountsBetaApiGetAccountEntitlementsRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof AccountsBetaApi\n */\n AccountsBetaApi.prototype.getAccountEntitlements = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.AccountsBetaApiFp)(this.configuration).getAccountEntitlements(requestParameters.id, requestParameters.offset, requestParameters.limit, requestParameters.count, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This returns a list of accounts. A token with ORG_ADMIN authority is required to call this API.\n * @summary Accounts List\n * @param {AccountsBetaApiListAccountsRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof AccountsBetaApi\n */\n AccountsBetaApi.prototype.listAccounts = function (requestParameters, axiosOptions) {\n var _this = this;\n if (requestParameters === void 0) { requestParameters = {}; }\n return (0, exports.AccountsBetaApiFp)(this.configuration).listAccounts(requestParameters.detailLevel, requestParameters.limit, requestParameters.offset, requestParameters.count, requestParameters.filters, requestParameters.sorters, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This API submits an account update task and returns the task ID. A token with ORG_ADMIN authority is required to call this API.\n * @summary Update Account\n * @param {AccountsBetaApiPutAccountRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof AccountsBetaApi\n */\n AccountsBetaApi.prototype.putAccount = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.AccountsBetaApiFp)(this.configuration).putAccount(requestParameters.id, requestParameters.accountAttributesBeta, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This API asynchronously reloads the account directly from the connector and performs a one-time aggregation process. A token with ORG_ADMIN authority is required to call this API.\n * @summary Reload Account\n * @param {AccountsBetaApiReloadAccountRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof AccountsBetaApi\n */\n AccountsBetaApi.prototype.reloadAccount = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.AccountsBetaApiFp)(this.configuration).reloadAccount(requestParameters.id, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This API submits a task to unlock an account and returns the task ID. A token with ORG_ADMIN authority is required to call this API.\n * @summary Unlock Account\n * @param {AccountsBetaApiUnlockAccountRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof AccountsBetaApi\n */\n AccountsBetaApi.prototype.unlockAccount = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.AccountsBetaApiFp)(this.configuration).unlockAccount(requestParameters.id, requestParameters.accountUnlockRequestBeta, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This updates account details. A token with ORG_ADMIN authority is required to call this API.\n * @summary Update Account\n * @param {AccountsBetaApiUpdateAccountRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof AccountsBetaApi\n */\n AccountsBetaApi.prototype.updateAccount = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.AccountsBetaApiFp)(this.configuration).updateAccount(requestParameters.id, requestParameters.requestBody, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n return AccountsBetaApi;\n}(base_1.BaseAPI));\nexports.AccountsBetaApi = AccountsBetaApi;\n/**\n * CertificationCampaignsBetaApi - axios parameter creator\n * @export\n */\nvar CertificationCampaignsBetaApiAxiosParamCreator = function (configuration) {\n var _this = this;\n return {\n /**\n * :::caution This endpoint will run successfully for any campaigns that are **past due**. This endpoint will return a content error if the campaign is **not past due**. ::: Completes a certification campaign. This is provided to admins so that they can complete a certification even if all items have not been completed. Requires roles of CERT_ADMIN and ORG_ADMIN\n * @summary Complete a Campaign\n * @param {string} id The campaign id\n * @param {CompleteCampaignOptionsBeta} [completeCampaignOptionsBeta] Optional. Default behavior is for the campaign to auto-approve upon completion, unless autoCompleteAction=REVOKE\n * @param {*} [axiosOptions] Override http request option.\n * @deprecated\n * @throws {RequiredError}\n */\n completeCampaign: function (id, completeCampaignOptionsBeta, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'id' is not null or undefined\n (0, common_1.assertParamExists)('completeCampaign', 'id', id);\n localVarPath = \"/campaigns/{id}/complete\"\n .replace(\"{\".concat(\"id\", \"}\"), encodeURIComponent(String(id)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n localVarHeaderParameter['Content-Type'] = 'application/json';\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(completeCampaignOptionsBeta, localVarRequestOptions, configuration);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * Creates a new Certification Campaign with the information provided in the request body.\n * @summary Create a campaign\n * @param {CampaignBeta} campaignBeta\n * @param {*} [axiosOptions] Override http request option.\n * @deprecated\n * @throws {RequiredError}\n */\n createCampaign: function (campaignBeta, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'campaignBeta' is not null or undefined\n (0, common_1.assertParamExists)('createCampaign', 'campaignBeta', campaignBeta);\n localVarPath = \"/campaigns\";\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n localVarHeaderParameter['Content-Type'] = 'application/json';\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(campaignBeta, localVarRequestOptions, configuration);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * Create a campaign Template based on campaign.\n * @summary Create a Campaign Template\n * @param {CampaignTemplateBeta} campaignTemplateBeta\n * @param {*} [axiosOptions] Override http request option.\n * @deprecated\n * @throws {RequiredError}\n */\n createCampaignTemplate: function (campaignTemplateBeta, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'campaignTemplateBeta' is not null or undefined\n (0, common_1.assertParamExists)('createCampaignTemplate', 'campaignTemplateBeta', campaignTemplateBeta);\n localVarPath = \"/campaign-templates\";\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n localVarHeaderParameter['Content-Type'] = 'application/json';\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(campaignTemplateBeta, localVarRequestOptions, configuration);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * Deletes a campaign template by ID.\n * @summary Delete a Campaign Template\n * @param {string} id The ID of the campaign template being deleted.\n * @param {*} [axiosOptions] Override http request option.\n * @deprecated\n * @throws {RequiredError}\n */\n deleteCampaignTemplate: function (id, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'id' is not null or undefined\n (0, common_1.assertParamExists)('deleteCampaignTemplate', 'id', id);\n localVarPath = \"/campaign-templates/{id}\"\n .replace(\"{\".concat(\"id\", \"}\"), encodeURIComponent(String(id)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'DELETE' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * Deletes the schedule for a campaign template. Returns a 404 if there is no schedule set.\n * @summary Deletes a Campaign Template\\'s Schedule\n * @param {string} id The ID of the campaign template whose schedule is being deleted.\n * @param {*} [axiosOptions] Override http request option.\n * @deprecated\n * @throws {RequiredError}\n */\n deleteCampaignTemplateSchedule: function (id, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'id' is not null or undefined\n (0, common_1.assertParamExists)('deleteCampaignTemplateSchedule', 'id', id);\n localVarPath = \"/campaign-templates/{id}/schedule\"\n .replace(\"{\".concat(\"id\", \"}\"), encodeURIComponent(String(id)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'DELETE' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * Deletes campaigns whose Ids are specified in the provided list of campaign Ids. Authorized callers must be an ORG_ADMIN or a CERT_ADMIN.\n * @summary Deletes Campaigns\n * @param {DeleteCampaignsRequestBeta} deleteCampaignsRequestBeta The ids of the campaigns to delete.\n * @param {*} [axiosOptions] Override http request option.\n * @deprecated\n * @throws {RequiredError}\n */\n deleteCampaigns: function (deleteCampaignsRequestBeta, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'deleteCampaignsRequestBeta' is not null or undefined\n (0, common_1.assertParamExists)('deleteCampaigns', 'deleteCampaignsRequestBeta', deleteCampaignsRequestBeta);\n localVarPath = \"/campaigns/delete\";\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n localVarHeaderParameter['Content-Type'] = 'application/json';\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(deleteCampaignsRequestBeta, localVarRequestOptions, configuration);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * Gets campaigns and returns them in a list. Can provide increased level of detail for each campaign if provided the correct query.\n * @summary List Campaigns\n * @param {'SLIM' | 'FULL'} [detail] Determines whether slim, or increased level of detail is provided for each campaign in the returned list. Slim is the default behavior.\n * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **id**: *eq, in* **name**: *eq, sw* **status**: *eq, in*\n * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **name, created**\n * @param {*} [axiosOptions] Override http request option.\n * @deprecated\n * @throws {RequiredError}\n */\n getActiveCampaigns: function (detail, limit, offset, count, filters, sorters, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n localVarPath = \"/campaigns\";\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n if (detail !== undefined) {\n localVarQueryParameter['detail'] = detail;\n }\n if (limit !== undefined) {\n localVarQueryParameter['limit'] = limit;\n }\n if (offset !== undefined) {\n localVarQueryParameter['offset'] = offset;\n }\n if (count !== undefined) {\n localVarQueryParameter['count'] = count;\n }\n if (filters !== undefined) {\n localVarQueryParameter['filters'] = filters;\n }\n if (sorters !== undefined) {\n localVarQueryParameter['sorters'] = sorters;\n }\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * Retrieves information for an existing campaign using the campaign\\'s ID. Authorized callers must be a reviewer for this campaign, an ORG_ADMIN, or a CERT_ADMIN.\n * @summary Get a campaign\n * @param {string} id The ID of the campaign to be retrieved\n * @param {*} [axiosOptions] Override http request option.\n * @deprecated\n * @throws {RequiredError}\n */\n getCampaign: function (id, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'id' is not null or undefined\n (0, common_1.assertParamExists)('getCampaign', 'id', id);\n localVarPath = \"/campaigns/{id}\"\n .replace(\"{\".concat(\"id\", \"}\"), encodeURIComponent(String(id)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * Fetches all reports for a certification campaign by campaign ID. Requires roles of CERT_ADMIN, DASHBOARD, ORG_ADMIN and REPORT_ADMIN\n * @summary Get Campaign Reports\n * @param {string} id The ID of the campaign for which reports are being fetched.\n * @param {*} [axiosOptions] Override http request option.\n * @deprecated\n * @throws {RequiredError}\n */\n getCampaignReports: function (id, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'id' is not null or undefined\n (0, common_1.assertParamExists)('getCampaignReports', 'id', id);\n localVarPath = \"/campaigns/{id}/reports\"\n .replace(\"{\".concat(\"id\", \"}\"), encodeURIComponent(String(id)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * Fetches configuration for campaign reports. Currently it includes only one element - identity attributes defined as custom report columns. Requires roles of CERT_ADMIN and ORG_ADMIN.\n * @summary Get Campaign Reports Configuration\n * @param {*} [axiosOptions] Override http request option.\n * @deprecated\n * @throws {RequiredError}\n */\n getCampaignReportsConfig: function (axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n localVarPath = \"/campaigns/reports-configuration\";\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * Fetches a campaign template by ID.\n * @summary Get a Campaign Template\n * @param {string} id The desired campaign template\\'s ID.\n * @param {*} [axiosOptions] Override http request option.\n * @deprecated\n * @throws {RequiredError}\n */\n getCampaignTemplate: function (id, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'id' is not null or undefined\n (0, common_1.assertParamExists)('getCampaignTemplate', 'id', id);\n localVarPath = \"/campaign-templates/{id}\"\n .replace(\"{\".concat(\"id\", \"}\"), encodeURIComponent(String(id)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * Gets the schedule for a campaign template. Returns a 404 if there is no schedule set.\n * @summary Gets a Campaign Template\\'s Schedule\n * @param {string} id The ID of the campaign template whose schedule is being fetched.\n * @param {*} [axiosOptions] Override http request option.\n * @deprecated\n * @throws {RequiredError}\n */\n getCampaignTemplateSchedule: function (id, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'id' is not null or undefined\n (0, common_1.assertParamExists)('getCampaignTemplateSchedule', 'id', id);\n localVarPath = \"/campaign-templates/{id}/schedule\"\n .replace(\"{\".concat(\"id\", \"}\"), encodeURIComponent(String(id)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * Lists all CampaignTemplates. Scope can be reduced via standard V3 query params. All CampaignTemplates matching the query params\n * @summary List Campaign Templates\n * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **name, created, modified**\n * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **name**: *eq, ge, gt, in, le, lt, ne, sw* **id**: *eq, ge, gt, in, le, lt, ne, sw*\n * @param {*} [axiosOptions] Override http request option.\n * @deprecated\n * @throws {RequiredError}\n */\n listCampaignTemplates: function (limit, offset, count, sorters, filters, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n localVarPath = \"/campaign-templates\";\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n if (limit !== undefined) {\n localVarQueryParameter['limit'] = limit;\n }\n if (offset !== undefined) {\n localVarQueryParameter['offset'] = offset;\n }\n if (count !== undefined) {\n localVarQueryParameter['count'] = count;\n }\n if (sorters !== undefined) {\n localVarQueryParameter['sorters'] = sorters;\n }\n if (filters !== undefined) {\n localVarQueryParameter['filters'] = filters;\n }\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This API reassigns the specified certifications from one identity to another. A token with ORG_ADMIN or CERT_ADMIN authority is required to call this API.\n * @summary Reassign Certifications\n * @param {string} id The certification campaign ID\n * @param {AdminReviewReassignBeta} adminReviewReassignBeta\n * @param {*} [axiosOptions] Override http request option.\n * @deprecated\n * @throws {RequiredError}\n */\n move: function (id, adminReviewReassignBeta, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'id' is not null or undefined\n (0, common_1.assertParamExists)('move', 'id', id);\n // verify required parameter 'adminReviewReassignBeta' is not null or undefined\n (0, common_1.assertParamExists)('move', 'adminReviewReassignBeta', adminReviewReassignBeta);\n localVarPath = \"/campaigns/{id}/reassign\"\n .replace(\"{\".concat(\"id\", \"}\"), encodeURIComponent(String(id)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n localVarHeaderParameter['Content-Type'] = 'application/json';\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(adminReviewReassignBeta, localVarRequestOptions, configuration);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * Allows updating individual fields on a campaign template using the [JSON Patch](https://tools.ietf.org/html/rfc6902) standard.\n * @summary Update a Campaign Template\n * @param {string} id The ID of the campaign template being modified.\n * @param {Array} jsonPatchOperationBeta A list of campaign update operations according to the [JSON Patch](https://tools.ietf.org/html/rfc6902) standard. The following fields are patchable: * name * description * deadlineDuration * campaign (all fields that are allowed during create)\n * @param {*} [axiosOptions] Override http request option.\n * @deprecated\n * @throws {RequiredError}\n */\n patchCampaignTemplate: function (id, jsonPatchOperationBeta, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'id' is not null or undefined\n (0, common_1.assertParamExists)('patchCampaignTemplate', 'id', id);\n // verify required parameter 'jsonPatchOperationBeta' is not null or undefined\n (0, common_1.assertParamExists)('patchCampaignTemplate', 'jsonPatchOperationBeta', jsonPatchOperationBeta);\n localVarPath = \"/campaign-templates/{id}\"\n .replace(\"{\".concat(\"id\", \"}\"), encodeURIComponent(String(id)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'PATCH' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n localVarHeaderParameter['Content-Type'] = 'application/json-patch+json';\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(jsonPatchOperationBeta, localVarRequestOptions, configuration);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * Overwrites configuration for campaign reports. Requires roles CERT_ADMIN and ORG_ADMIN.\n * @summary Set Campaign Reports Configuration\n * @param {CampaignReportsConfigBeta} campaignReportsConfigBeta Campaign Report Configuration\n * @param {*} [axiosOptions] Override http request option.\n * @deprecated\n * @throws {RequiredError}\n */\n setCampaignReportsConfig: function (campaignReportsConfigBeta, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'campaignReportsConfigBeta' is not null or undefined\n (0, common_1.assertParamExists)('setCampaignReportsConfig', 'campaignReportsConfigBeta', campaignReportsConfigBeta);\n localVarPath = \"/campaigns/reports-configuration\";\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'PUT' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n localVarHeaderParameter['Content-Type'] = 'application/json';\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(campaignReportsConfigBeta, localVarRequestOptions, configuration);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * Sets the schedule for a campaign template. If a schedule already exists, it will be overwritten with the new one.\n * @summary Sets a Campaign Template\\'s Schedule\n * @param {string} id The ID of the campaign template being scheduled.\n * @param {ScheduleBeta} [scheduleBeta]\n * @param {*} [axiosOptions] Override http request option.\n * @deprecated\n * @throws {RequiredError}\n */\n setCampaignTemplateSchedule: function (id, scheduleBeta, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'id' is not null or undefined\n (0, common_1.assertParamExists)('setCampaignTemplateSchedule', 'id', id);\n localVarPath = \"/campaign-templates/{id}/schedule\"\n .replace(\"{\".concat(\"id\", \"}\"), encodeURIComponent(String(id)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'PUT' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n localVarHeaderParameter['Content-Type'] = 'application/json';\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(scheduleBeta, localVarRequestOptions, configuration);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * Submits a job to activate the campaign with the given Id. The campaign must be staged. Requires roles of CERT_ADMIN and ORG_ADMIN\n * @summary Activate a Campaign\n * @param {string} id The campaign id\n * @param {ActivateCampaignOptionsBeta} [activateCampaignOptionsBeta] Optional. If no timezone is specified, the standard UTC timezone is used (i.e. UTC+00:00). Although this can take any timezone, the intended value is the caller\\'s timezone. The activation time calculated from the given timezone may cause the campaign deadline time to be modified, but it will remain within the original date. The timezone must be in a valid ISO 8601 format.\n * @param {*} [axiosOptions] Override http request option.\n * @deprecated\n * @throws {RequiredError}\n */\n startCampaign: function (id, activateCampaignOptionsBeta, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'id' is not null or undefined\n (0, common_1.assertParamExists)('startCampaign', 'id', id);\n localVarPath = \"/campaigns/{id}/activate\"\n .replace(\"{\".concat(\"id\", \"}\"), encodeURIComponent(String(id)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n localVarHeaderParameter['Content-Type'] = 'application/json';\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(activateCampaignOptionsBeta, localVarRequestOptions, configuration);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * Kicks off remediation scan task for a certification campaign. Requires roles of CERT_ADMIN and ORG_ADMIN\n * @summary Run Campaign Remediation Scan\n * @param {string} id The ID of the campaign for which remediation scan is being run.\n * @param {*} [axiosOptions] Override http request option.\n * @deprecated\n * @throws {RequiredError}\n */\n startCampaignRemediationScan: function (id, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'id' is not null or undefined\n (0, common_1.assertParamExists)('startCampaignRemediationScan', 'id', id);\n localVarPath = \"/campaigns/{id}/run-remediation-scan\"\n .replace(\"{\".concat(\"id\", \"}\"), encodeURIComponent(String(id)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * Runs a report for a certification campaign. Requires the following roles: CERT_ADMIN, DASHBOARD, ORG_ADMIN and REPORT_ADMIN.\n * @summary Run Campaign Report\n * @param {string} id The ID of the campaign for which report is being run.\n * @param {ReportTypeBeta} type The type of the report to run.\n * @param {*} [axiosOptions] Override http request option.\n * @deprecated\n * @throws {RequiredError}\n */\n startCampaignReport: function (id, type, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'id' is not null or undefined\n (0, common_1.assertParamExists)('startCampaignReport', 'id', id);\n // verify required parameter 'type' is not null or undefined\n (0, common_1.assertParamExists)('startCampaignReport', 'type', type);\n localVarPath = \"/campaigns/{id}/run-report/{type}\"\n .replace(\"{\".concat(\"id\", \"}\"), encodeURIComponent(String(id)))\n .replace(\"{\".concat(\"type\", \"}\"), encodeURIComponent(String(type)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * Generates a new campaign from a campaign template. The campaign object contained in the template has special formatting applied to its name and description fields in order to determine the generated campaign\\'s name/description. Placeholders in those fields are formatted with the current date and time upon generation. Placeholders consist of a percent sign followed by a letter indicating what should be inserted; for example, \\\"%Y\\\" will insert the current year; a campaign template named \\\"Campaign for %y\\\" would generate a campaign called \\\"Campaign for 2020\\\" (assuming the year at generation time is 2020). Valid placeholders are the date/time conversion suffix characters supported by [java.util.Formatter](https://docs.oracle.com/javase/8/docs/api/java/util/Formatter.html). Requires roles ORG_ADMIN.\n * @summary Generate a Campaign from Template\n * @param {string} id The ID of the campaign template to use for generation.\n * @param {*} [axiosOptions] Override http request option.\n * @deprecated\n * @throws {RequiredError}\n */\n startGenerateCampaignTemplate: function (id, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'id' is not null or undefined\n (0, common_1.assertParamExists)('startGenerateCampaignTemplate', 'id', id);\n localVarPath = \"/campaign-templates/{id}/generate\"\n .replace(\"{\".concat(\"id\", \"}\"), encodeURIComponent(String(id)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * Allows updating individual fields on a campaign using the [JSON Patch](https://tools.ietf.org/html/rfc6902) standard.\n * @summary Update a Campaign\n * @param {string} id The ID of the campaign template being modified.\n * @param {Array} requestBody A list of campaign update operations according to the [JSON Patch](https://tools.ietf.org/html/rfc6902) standard. The fields that can be patched differ based on the status of the campaign. In the *STAGED* status, the following fields can be patched: * name * description * recommendationsEnabled * deadline * emailNotificationEnabled * autoRevokeAllowed In the *ACTIVE* status, the following fields can be patched: * deadline\n * @param {*} [axiosOptions] Override http request option.\n * @deprecated\n * @throws {RequiredError}\n */\n updateCampaign: function (id, requestBody, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'id' is not null or undefined\n (0, common_1.assertParamExists)('updateCampaign', 'id', id);\n // verify required parameter 'requestBody' is not null or undefined\n (0, common_1.assertParamExists)('updateCampaign', 'requestBody', requestBody);\n localVarPath = \"/campaigns/{id}\"\n .replace(\"{\".concat(\"id\", \"}\"), encodeURIComponent(String(id)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'PATCH' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n localVarHeaderParameter['Content-Type'] = 'application/json-patch+json';\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(requestBody, localVarRequestOptions, configuration);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n };\n};\nexports.CertificationCampaignsBetaApiAxiosParamCreator = CertificationCampaignsBetaApiAxiosParamCreator;\n/**\n * CertificationCampaignsBetaApi - functional programming interface\n * @export\n */\nvar CertificationCampaignsBetaApiFp = function (configuration) {\n var localVarAxiosParamCreator = (0, exports.CertificationCampaignsBetaApiAxiosParamCreator)(configuration);\n return {\n /**\n * :::caution This endpoint will run successfully for any campaigns that are **past due**. This endpoint will return a content error if the campaign is **not past due**. ::: Completes a certification campaign. This is provided to admins so that they can complete a certification even if all items have not been completed. Requires roles of CERT_ADMIN and ORG_ADMIN\n * @summary Complete a Campaign\n * @param {string} id The campaign id\n * @param {CompleteCampaignOptionsBeta} [completeCampaignOptionsBeta] Optional. Default behavior is for the campaign to auto-approve upon completion, unless autoCompleteAction=REVOKE\n * @param {*} [axiosOptions] Override http request option.\n * @deprecated\n * @throws {RequiredError}\n */\n completeCampaign: function (id, completeCampaignOptionsBeta, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.completeCampaign(id, completeCampaignOptionsBeta, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * Creates a new Certification Campaign with the information provided in the request body.\n * @summary Create a campaign\n * @param {CampaignBeta} campaignBeta\n * @param {*} [axiosOptions] Override http request option.\n * @deprecated\n * @throws {RequiredError}\n */\n createCampaign: function (campaignBeta, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.createCampaign(campaignBeta, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * Create a campaign Template based on campaign.\n * @summary Create a Campaign Template\n * @param {CampaignTemplateBeta} campaignTemplateBeta\n * @param {*} [axiosOptions] Override http request option.\n * @deprecated\n * @throws {RequiredError}\n */\n createCampaignTemplate: function (campaignTemplateBeta, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.createCampaignTemplate(campaignTemplateBeta, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * Deletes a campaign template by ID.\n * @summary Delete a Campaign Template\n * @param {string} id The ID of the campaign template being deleted.\n * @param {*} [axiosOptions] Override http request option.\n * @deprecated\n * @throws {RequiredError}\n */\n deleteCampaignTemplate: function (id, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.deleteCampaignTemplate(id, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * Deletes the schedule for a campaign template. Returns a 404 if there is no schedule set.\n * @summary Deletes a Campaign Template\\'s Schedule\n * @param {string} id The ID of the campaign template whose schedule is being deleted.\n * @param {*} [axiosOptions] Override http request option.\n * @deprecated\n * @throws {RequiredError}\n */\n deleteCampaignTemplateSchedule: function (id, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.deleteCampaignTemplateSchedule(id, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * Deletes campaigns whose Ids are specified in the provided list of campaign Ids. Authorized callers must be an ORG_ADMIN or a CERT_ADMIN.\n * @summary Deletes Campaigns\n * @param {DeleteCampaignsRequestBeta} deleteCampaignsRequestBeta The ids of the campaigns to delete.\n * @param {*} [axiosOptions] Override http request option.\n * @deprecated\n * @throws {RequiredError}\n */\n deleteCampaigns: function (deleteCampaignsRequestBeta, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.deleteCampaigns(deleteCampaignsRequestBeta, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * Gets campaigns and returns them in a list. Can provide increased level of detail for each campaign if provided the correct query.\n * @summary List Campaigns\n * @param {'SLIM' | 'FULL'} [detail] Determines whether slim, or increased level of detail is provided for each campaign in the returned list. Slim is the default behavior.\n * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **id**: *eq, in* **name**: *eq, sw* **status**: *eq, in*\n * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **name, created**\n * @param {*} [axiosOptions] Override http request option.\n * @deprecated\n * @throws {RequiredError}\n */\n getActiveCampaigns: function (detail, limit, offset, count, filters, sorters, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.getActiveCampaigns(detail, limit, offset, count, filters, sorters, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * Retrieves information for an existing campaign using the campaign\\'s ID. Authorized callers must be a reviewer for this campaign, an ORG_ADMIN, or a CERT_ADMIN.\n * @summary Get a campaign\n * @param {string} id The ID of the campaign to be retrieved\n * @param {*} [axiosOptions] Override http request option.\n * @deprecated\n * @throws {RequiredError}\n */\n getCampaign: function (id, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.getCampaign(id, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * Fetches all reports for a certification campaign by campaign ID. Requires roles of CERT_ADMIN, DASHBOARD, ORG_ADMIN and REPORT_ADMIN\n * @summary Get Campaign Reports\n * @param {string} id The ID of the campaign for which reports are being fetched.\n * @param {*} [axiosOptions] Override http request option.\n * @deprecated\n * @throws {RequiredError}\n */\n getCampaignReports: function (id, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.getCampaignReports(id, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * Fetches configuration for campaign reports. Currently it includes only one element - identity attributes defined as custom report columns. Requires roles of CERT_ADMIN and ORG_ADMIN.\n * @summary Get Campaign Reports Configuration\n * @param {*} [axiosOptions] Override http request option.\n * @deprecated\n * @throws {RequiredError}\n */\n getCampaignReportsConfig: function (axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.getCampaignReportsConfig(axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * Fetches a campaign template by ID.\n * @summary Get a Campaign Template\n * @param {string} id The desired campaign template\\'s ID.\n * @param {*} [axiosOptions] Override http request option.\n * @deprecated\n * @throws {RequiredError}\n */\n getCampaignTemplate: function (id, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.getCampaignTemplate(id, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * Gets the schedule for a campaign template. Returns a 404 if there is no schedule set.\n * @summary Gets a Campaign Template\\'s Schedule\n * @param {string} id The ID of the campaign template whose schedule is being fetched.\n * @param {*} [axiosOptions] Override http request option.\n * @deprecated\n * @throws {RequiredError}\n */\n getCampaignTemplateSchedule: function (id, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.getCampaignTemplateSchedule(id, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * Lists all CampaignTemplates. Scope can be reduced via standard V3 query params. All CampaignTemplates matching the query params\n * @summary List Campaign Templates\n * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **name, created, modified**\n * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **name**: *eq, ge, gt, in, le, lt, ne, sw* **id**: *eq, ge, gt, in, le, lt, ne, sw*\n * @param {*} [axiosOptions] Override http request option.\n * @deprecated\n * @throws {RequiredError}\n */\n listCampaignTemplates: function (limit, offset, count, sorters, filters, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.listCampaignTemplates(limit, offset, count, sorters, filters, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This API reassigns the specified certifications from one identity to another. A token with ORG_ADMIN or CERT_ADMIN authority is required to call this API.\n * @summary Reassign Certifications\n * @param {string} id The certification campaign ID\n * @param {AdminReviewReassignBeta} adminReviewReassignBeta\n * @param {*} [axiosOptions] Override http request option.\n * @deprecated\n * @throws {RequiredError}\n */\n move: function (id, adminReviewReassignBeta, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.move(id, adminReviewReassignBeta, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * Allows updating individual fields on a campaign template using the [JSON Patch](https://tools.ietf.org/html/rfc6902) standard.\n * @summary Update a Campaign Template\n * @param {string} id The ID of the campaign template being modified.\n * @param {Array} jsonPatchOperationBeta A list of campaign update operations according to the [JSON Patch](https://tools.ietf.org/html/rfc6902) standard. The following fields are patchable: * name * description * deadlineDuration * campaign (all fields that are allowed during create)\n * @param {*} [axiosOptions] Override http request option.\n * @deprecated\n * @throws {RequiredError}\n */\n patchCampaignTemplate: function (id, jsonPatchOperationBeta, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.patchCampaignTemplate(id, jsonPatchOperationBeta, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * Overwrites configuration for campaign reports. Requires roles CERT_ADMIN and ORG_ADMIN.\n * @summary Set Campaign Reports Configuration\n * @param {CampaignReportsConfigBeta} campaignReportsConfigBeta Campaign Report Configuration\n * @param {*} [axiosOptions] Override http request option.\n * @deprecated\n * @throws {RequiredError}\n */\n setCampaignReportsConfig: function (campaignReportsConfigBeta, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.setCampaignReportsConfig(campaignReportsConfigBeta, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * Sets the schedule for a campaign template. If a schedule already exists, it will be overwritten with the new one.\n * @summary Sets a Campaign Template\\'s Schedule\n * @param {string} id The ID of the campaign template being scheduled.\n * @param {ScheduleBeta} [scheduleBeta]\n * @param {*} [axiosOptions] Override http request option.\n * @deprecated\n * @throws {RequiredError}\n */\n setCampaignTemplateSchedule: function (id, scheduleBeta, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.setCampaignTemplateSchedule(id, scheduleBeta, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * Submits a job to activate the campaign with the given Id. The campaign must be staged. Requires roles of CERT_ADMIN and ORG_ADMIN\n * @summary Activate a Campaign\n * @param {string} id The campaign id\n * @param {ActivateCampaignOptionsBeta} [activateCampaignOptionsBeta] Optional. If no timezone is specified, the standard UTC timezone is used (i.e. UTC+00:00). Although this can take any timezone, the intended value is the caller\\'s timezone. The activation time calculated from the given timezone may cause the campaign deadline time to be modified, but it will remain within the original date. The timezone must be in a valid ISO 8601 format.\n * @param {*} [axiosOptions] Override http request option.\n * @deprecated\n * @throws {RequiredError}\n */\n startCampaign: function (id, activateCampaignOptionsBeta, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.startCampaign(id, activateCampaignOptionsBeta, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * Kicks off remediation scan task for a certification campaign. Requires roles of CERT_ADMIN and ORG_ADMIN\n * @summary Run Campaign Remediation Scan\n * @param {string} id The ID of the campaign for which remediation scan is being run.\n * @param {*} [axiosOptions] Override http request option.\n * @deprecated\n * @throws {RequiredError}\n */\n startCampaignRemediationScan: function (id, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.startCampaignRemediationScan(id, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * Runs a report for a certification campaign. Requires the following roles: CERT_ADMIN, DASHBOARD, ORG_ADMIN and REPORT_ADMIN.\n * @summary Run Campaign Report\n * @param {string} id The ID of the campaign for which report is being run.\n * @param {ReportTypeBeta} type The type of the report to run.\n * @param {*} [axiosOptions] Override http request option.\n * @deprecated\n * @throws {RequiredError}\n */\n startCampaignReport: function (id, type, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.startCampaignReport(id, type, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * Generates a new campaign from a campaign template. The campaign object contained in the template has special formatting applied to its name and description fields in order to determine the generated campaign\\'s name/description. Placeholders in those fields are formatted with the current date and time upon generation. Placeholders consist of a percent sign followed by a letter indicating what should be inserted; for example, \\\"%Y\\\" will insert the current year; a campaign template named \\\"Campaign for %y\\\" would generate a campaign called \\\"Campaign for 2020\\\" (assuming the year at generation time is 2020). Valid placeholders are the date/time conversion suffix characters supported by [java.util.Formatter](https://docs.oracle.com/javase/8/docs/api/java/util/Formatter.html). Requires roles ORG_ADMIN.\n * @summary Generate a Campaign from Template\n * @param {string} id The ID of the campaign template to use for generation.\n * @param {*} [axiosOptions] Override http request option.\n * @deprecated\n * @throws {RequiredError}\n */\n startGenerateCampaignTemplate: function (id, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.startGenerateCampaignTemplate(id, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * Allows updating individual fields on a campaign using the [JSON Patch](https://tools.ietf.org/html/rfc6902) standard.\n * @summary Update a Campaign\n * @param {string} id The ID of the campaign template being modified.\n * @param {Array} requestBody A list of campaign update operations according to the [JSON Patch](https://tools.ietf.org/html/rfc6902) standard. The fields that can be patched differ based on the status of the campaign. In the *STAGED* status, the following fields can be patched: * name * description * recommendationsEnabled * deadline * emailNotificationEnabled * autoRevokeAllowed In the *ACTIVE* status, the following fields can be patched: * deadline\n * @param {*} [axiosOptions] Override http request option.\n * @deprecated\n * @throws {RequiredError}\n */\n updateCampaign: function (id, requestBody, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.updateCampaign(id, requestBody, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n };\n};\nexports.CertificationCampaignsBetaApiFp = CertificationCampaignsBetaApiFp;\n/**\n * CertificationCampaignsBetaApi - factory interface\n * @export\n */\nvar CertificationCampaignsBetaApiFactory = function (configuration, basePath, axios) {\n var localVarFp = (0, exports.CertificationCampaignsBetaApiFp)(configuration);\n return {\n /**\n * :::caution This endpoint will run successfully for any campaigns that are **past due**. This endpoint will return a content error if the campaign is **not past due**. ::: Completes a certification campaign. This is provided to admins so that they can complete a certification even if all items have not been completed. Requires roles of CERT_ADMIN and ORG_ADMIN\n * @summary Complete a Campaign\n * @param {string} id The campaign id\n * @param {CompleteCampaignOptionsBeta} [completeCampaignOptionsBeta] Optional. Default behavior is for the campaign to auto-approve upon completion, unless autoCompleteAction=REVOKE\n * @param {*} [axiosOptions] Override http request option.\n * @deprecated\n * @throws {RequiredError}\n */\n completeCampaign: function (id, completeCampaignOptionsBeta, axiosOptions) {\n return localVarFp.completeCampaign(id, completeCampaignOptionsBeta, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * Creates a new Certification Campaign with the information provided in the request body.\n * @summary Create a campaign\n * @param {CampaignBeta} campaignBeta\n * @param {*} [axiosOptions] Override http request option.\n * @deprecated\n * @throws {RequiredError}\n */\n createCampaign: function (campaignBeta, axiosOptions) {\n return localVarFp.createCampaign(campaignBeta, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * Create a campaign Template based on campaign.\n * @summary Create a Campaign Template\n * @param {CampaignTemplateBeta} campaignTemplateBeta\n * @param {*} [axiosOptions] Override http request option.\n * @deprecated\n * @throws {RequiredError}\n */\n createCampaignTemplate: function (campaignTemplateBeta, axiosOptions) {\n return localVarFp.createCampaignTemplate(campaignTemplateBeta, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * Deletes a campaign template by ID.\n * @summary Delete a Campaign Template\n * @param {string} id The ID of the campaign template being deleted.\n * @param {*} [axiosOptions] Override http request option.\n * @deprecated\n * @throws {RequiredError}\n */\n deleteCampaignTemplate: function (id, axiosOptions) {\n return localVarFp.deleteCampaignTemplate(id, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * Deletes the schedule for a campaign template. Returns a 404 if there is no schedule set.\n * @summary Deletes a Campaign Template\\'s Schedule\n * @param {string} id The ID of the campaign template whose schedule is being deleted.\n * @param {*} [axiosOptions] Override http request option.\n * @deprecated\n * @throws {RequiredError}\n */\n deleteCampaignTemplateSchedule: function (id, axiosOptions) {\n return localVarFp.deleteCampaignTemplateSchedule(id, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * Deletes campaigns whose Ids are specified in the provided list of campaign Ids. Authorized callers must be an ORG_ADMIN or a CERT_ADMIN.\n * @summary Deletes Campaigns\n * @param {DeleteCampaignsRequestBeta} deleteCampaignsRequestBeta The ids of the campaigns to delete.\n * @param {*} [axiosOptions] Override http request option.\n * @deprecated\n * @throws {RequiredError}\n */\n deleteCampaigns: function (deleteCampaignsRequestBeta, axiosOptions) {\n return localVarFp.deleteCampaigns(deleteCampaignsRequestBeta, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * Gets campaigns and returns them in a list. Can provide increased level of detail for each campaign if provided the correct query.\n * @summary List Campaigns\n * @param {'SLIM' | 'FULL'} [detail] Determines whether slim, or increased level of detail is provided for each campaign in the returned list. Slim is the default behavior.\n * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **id**: *eq, in* **name**: *eq, sw* **status**: *eq, in*\n * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **name, created**\n * @param {*} [axiosOptions] Override http request option.\n * @deprecated\n * @throws {RequiredError}\n */\n getActiveCampaigns: function (detail, limit, offset, count, filters, sorters, axiosOptions) {\n return localVarFp.getActiveCampaigns(detail, limit, offset, count, filters, sorters, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * Retrieves information for an existing campaign using the campaign\\'s ID. Authorized callers must be a reviewer for this campaign, an ORG_ADMIN, or a CERT_ADMIN.\n * @summary Get a campaign\n * @param {string} id The ID of the campaign to be retrieved\n * @param {*} [axiosOptions] Override http request option.\n * @deprecated\n * @throws {RequiredError}\n */\n getCampaign: function (id, axiosOptions) {\n return localVarFp.getCampaign(id, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * Fetches all reports for a certification campaign by campaign ID. Requires roles of CERT_ADMIN, DASHBOARD, ORG_ADMIN and REPORT_ADMIN\n * @summary Get Campaign Reports\n * @param {string} id The ID of the campaign for which reports are being fetched.\n * @param {*} [axiosOptions] Override http request option.\n * @deprecated\n * @throws {RequiredError}\n */\n getCampaignReports: function (id, axiosOptions) {\n return localVarFp.getCampaignReports(id, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * Fetches configuration for campaign reports. Currently it includes only one element - identity attributes defined as custom report columns. Requires roles of CERT_ADMIN and ORG_ADMIN.\n * @summary Get Campaign Reports Configuration\n * @param {*} [axiosOptions] Override http request option.\n * @deprecated\n * @throws {RequiredError}\n */\n getCampaignReportsConfig: function (axiosOptions) {\n return localVarFp.getCampaignReportsConfig(axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * Fetches a campaign template by ID.\n * @summary Get a Campaign Template\n * @param {string} id The desired campaign template\\'s ID.\n * @param {*} [axiosOptions] Override http request option.\n * @deprecated\n * @throws {RequiredError}\n */\n getCampaignTemplate: function (id, axiosOptions) {\n return localVarFp.getCampaignTemplate(id, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * Gets the schedule for a campaign template. Returns a 404 if there is no schedule set.\n * @summary Gets a Campaign Template\\'s Schedule\n * @param {string} id The ID of the campaign template whose schedule is being fetched.\n * @param {*} [axiosOptions] Override http request option.\n * @deprecated\n * @throws {RequiredError}\n */\n getCampaignTemplateSchedule: function (id, axiosOptions) {\n return localVarFp.getCampaignTemplateSchedule(id, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * Lists all CampaignTemplates. Scope can be reduced via standard V3 query params. All CampaignTemplates matching the query params\n * @summary List Campaign Templates\n * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **name, created, modified**\n * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **name**: *eq, ge, gt, in, le, lt, ne, sw* **id**: *eq, ge, gt, in, le, lt, ne, sw*\n * @param {*} [axiosOptions] Override http request option.\n * @deprecated\n * @throws {RequiredError}\n */\n listCampaignTemplates: function (limit, offset, count, sorters, filters, axiosOptions) {\n return localVarFp.listCampaignTemplates(limit, offset, count, sorters, filters, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This API reassigns the specified certifications from one identity to another. A token with ORG_ADMIN or CERT_ADMIN authority is required to call this API.\n * @summary Reassign Certifications\n * @param {string} id The certification campaign ID\n * @param {AdminReviewReassignBeta} adminReviewReassignBeta\n * @param {*} [axiosOptions] Override http request option.\n * @deprecated\n * @throws {RequiredError}\n */\n move: function (id, adminReviewReassignBeta, axiosOptions) {\n return localVarFp.move(id, adminReviewReassignBeta, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * Allows updating individual fields on a campaign template using the [JSON Patch](https://tools.ietf.org/html/rfc6902) standard.\n * @summary Update a Campaign Template\n * @param {string} id The ID of the campaign template being modified.\n * @param {Array} jsonPatchOperationBeta A list of campaign update operations according to the [JSON Patch](https://tools.ietf.org/html/rfc6902) standard. The following fields are patchable: * name * description * deadlineDuration * campaign (all fields that are allowed during create)\n * @param {*} [axiosOptions] Override http request option.\n * @deprecated\n * @throws {RequiredError}\n */\n patchCampaignTemplate: function (id, jsonPatchOperationBeta, axiosOptions) {\n return localVarFp.patchCampaignTemplate(id, jsonPatchOperationBeta, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * Overwrites configuration for campaign reports. Requires roles CERT_ADMIN and ORG_ADMIN.\n * @summary Set Campaign Reports Configuration\n * @param {CampaignReportsConfigBeta} campaignReportsConfigBeta Campaign Report Configuration\n * @param {*} [axiosOptions] Override http request option.\n * @deprecated\n * @throws {RequiredError}\n */\n setCampaignReportsConfig: function (campaignReportsConfigBeta, axiosOptions) {\n return localVarFp.setCampaignReportsConfig(campaignReportsConfigBeta, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * Sets the schedule for a campaign template. If a schedule already exists, it will be overwritten with the new one.\n * @summary Sets a Campaign Template\\'s Schedule\n * @param {string} id The ID of the campaign template being scheduled.\n * @param {ScheduleBeta} [scheduleBeta]\n * @param {*} [axiosOptions] Override http request option.\n * @deprecated\n * @throws {RequiredError}\n */\n setCampaignTemplateSchedule: function (id, scheduleBeta, axiosOptions) {\n return localVarFp.setCampaignTemplateSchedule(id, scheduleBeta, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * Submits a job to activate the campaign with the given Id. The campaign must be staged. Requires roles of CERT_ADMIN and ORG_ADMIN\n * @summary Activate a Campaign\n * @param {string} id The campaign id\n * @param {ActivateCampaignOptionsBeta} [activateCampaignOptionsBeta] Optional. If no timezone is specified, the standard UTC timezone is used (i.e. UTC+00:00). Although this can take any timezone, the intended value is the caller\\'s timezone. The activation time calculated from the given timezone may cause the campaign deadline time to be modified, but it will remain within the original date. The timezone must be in a valid ISO 8601 format.\n * @param {*} [axiosOptions] Override http request option.\n * @deprecated\n * @throws {RequiredError}\n */\n startCampaign: function (id, activateCampaignOptionsBeta, axiosOptions) {\n return localVarFp.startCampaign(id, activateCampaignOptionsBeta, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * Kicks off remediation scan task for a certification campaign. Requires roles of CERT_ADMIN and ORG_ADMIN\n * @summary Run Campaign Remediation Scan\n * @param {string} id The ID of the campaign for which remediation scan is being run.\n * @param {*} [axiosOptions] Override http request option.\n * @deprecated\n * @throws {RequiredError}\n */\n startCampaignRemediationScan: function (id, axiosOptions) {\n return localVarFp.startCampaignRemediationScan(id, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * Runs a report for a certification campaign. Requires the following roles: CERT_ADMIN, DASHBOARD, ORG_ADMIN and REPORT_ADMIN.\n * @summary Run Campaign Report\n * @param {string} id The ID of the campaign for which report is being run.\n * @param {ReportTypeBeta} type The type of the report to run.\n * @param {*} [axiosOptions] Override http request option.\n * @deprecated\n * @throws {RequiredError}\n */\n startCampaignReport: function (id, type, axiosOptions) {\n return localVarFp.startCampaignReport(id, type, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * Generates a new campaign from a campaign template. The campaign object contained in the template has special formatting applied to its name and description fields in order to determine the generated campaign\\'s name/description. Placeholders in those fields are formatted with the current date and time upon generation. Placeholders consist of a percent sign followed by a letter indicating what should be inserted; for example, \\\"%Y\\\" will insert the current year; a campaign template named \\\"Campaign for %y\\\" would generate a campaign called \\\"Campaign for 2020\\\" (assuming the year at generation time is 2020). Valid placeholders are the date/time conversion suffix characters supported by [java.util.Formatter](https://docs.oracle.com/javase/8/docs/api/java/util/Formatter.html). Requires roles ORG_ADMIN.\n * @summary Generate a Campaign from Template\n * @param {string} id The ID of the campaign template to use for generation.\n * @param {*} [axiosOptions] Override http request option.\n * @deprecated\n * @throws {RequiredError}\n */\n startGenerateCampaignTemplate: function (id, axiosOptions) {\n return localVarFp.startGenerateCampaignTemplate(id, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * Allows updating individual fields on a campaign using the [JSON Patch](https://tools.ietf.org/html/rfc6902) standard.\n * @summary Update a Campaign\n * @param {string} id The ID of the campaign template being modified.\n * @param {Array} requestBody A list of campaign update operations according to the [JSON Patch](https://tools.ietf.org/html/rfc6902) standard. The fields that can be patched differ based on the status of the campaign. In the *STAGED* status, the following fields can be patched: * name * description * recommendationsEnabled * deadline * emailNotificationEnabled * autoRevokeAllowed In the *ACTIVE* status, the following fields can be patched: * deadline\n * @param {*} [axiosOptions] Override http request option.\n * @deprecated\n * @throws {RequiredError}\n */\n updateCampaign: function (id, requestBody, axiosOptions) {\n return localVarFp.updateCampaign(id, requestBody, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n };\n};\nexports.CertificationCampaignsBetaApiFactory = CertificationCampaignsBetaApiFactory;\n/**\n * CertificationCampaignsBetaApi - object-oriented interface\n * @export\n * @class CertificationCampaignsBetaApi\n * @extends {BaseAPI}\n */\nvar CertificationCampaignsBetaApi = /** @class */ (function (_super) {\n __extends(CertificationCampaignsBetaApi, _super);\n function CertificationCampaignsBetaApi() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n * :::caution This endpoint will run successfully for any campaigns that are **past due**. This endpoint will return a content error if the campaign is **not past due**. ::: Completes a certification campaign. This is provided to admins so that they can complete a certification even if all items have not been completed. Requires roles of CERT_ADMIN and ORG_ADMIN\n * @summary Complete a Campaign\n * @param {CertificationCampaignsBetaApiCompleteCampaignRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @deprecated\n * @throws {RequiredError}\n * @memberof CertificationCampaignsBetaApi\n */\n CertificationCampaignsBetaApi.prototype.completeCampaign = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.CertificationCampaignsBetaApiFp)(this.configuration).completeCampaign(requestParameters.id, requestParameters.completeCampaignOptionsBeta, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * Creates a new Certification Campaign with the information provided in the request body.\n * @summary Create a campaign\n * @param {CertificationCampaignsBetaApiCreateCampaignRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @deprecated\n * @throws {RequiredError}\n * @memberof CertificationCampaignsBetaApi\n */\n CertificationCampaignsBetaApi.prototype.createCampaign = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.CertificationCampaignsBetaApiFp)(this.configuration).createCampaign(requestParameters.campaignBeta, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * Create a campaign Template based on campaign.\n * @summary Create a Campaign Template\n * @param {CertificationCampaignsBetaApiCreateCampaignTemplateRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @deprecated\n * @throws {RequiredError}\n * @memberof CertificationCampaignsBetaApi\n */\n CertificationCampaignsBetaApi.prototype.createCampaignTemplate = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.CertificationCampaignsBetaApiFp)(this.configuration).createCampaignTemplate(requestParameters.campaignTemplateBeta, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * Deletes a campaign template by ID.\n * @summary Delete a Campaign Template\n * @param {CertificationCampaignsBetaApiDeleteCampaignTemplateRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @deprecated\n * @throws {RequiredError}\n * @memberof CertificationCampaignsBetaApi\n */\n CertificationCampaignsBetaApi.prototype.deleteCampaignTemplate = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.CertificationCampaignsBetaApiFp)(this.configuration).deleteCampaignTemplate(requestParameters.id, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * Deletes the schedule for a campaign template. Returns a 404 if there is no schedule set.\n * @summary Deletes a Campaign Template\\'s Schedule\n * @param {CertificationCampaignsBetaApiDeleteCampaignTemplateScheduleRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @deprecated\n * @throws {RequiredError}\n * @memberof CertificationCampaignsBetaApi\n */\n CertificationCampaignsBetaApi.prototype.deleteCampaignTemplateSchedule = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.CertificationCampaignsBetaApiFp)(this.configuration).deleteCampaignTemplateSchedule(requestParameters.id, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * Deletes campaigns whose Ids are specified in the provided list of campaign Ids. Authorized callers must be an ORG_ADMIN or a CERT_ADMIN.\n * @summary Deletes Campaigns\n * @param {CertificationCampaignsBetaApiDeleteCampaignsRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @deprecated\n * @throws {RequiredError}\n * @memberof CertificationCampaignsBetaApi\n */\n CertificationCampaignsBetaApi.prototype.deleteCampaigns = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.CertificationCampaignsBetaApiFp)(this.configuration).deleteCampaigns(requestParameters.deleteCampaignsRequestBeta, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * Gets campaigns and returns them in a list. Can provide increased level of detail for each campaign if provided the correct query.\n * @summary List Campaigns\n * @param {CertificationCampaignsBetaApiGetActiveCampaignsRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @deprecated\n * @throws {RequiredError}\n * @memberof CertificationCampaignsBetaApi\n */\n CertificationCampaignsBetaApi.prototype.getActiveCampaigns = function (requestParameters, axiosOptions) {\n var _this = this;\n if (requestParameters === void 0) { requestParameters = {}; }\n return (0, exports.CertificationCampaignsBetaApiFp)(this.configuration).getActiveCampaigns(requestParameters.detail, requestParameters.limit, requestParameters.offset, requestParameters.count, requestParameters.filters, requestParameters.sorters, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * Retrieves information for an existing campaign using the campaign\\'s ID. Authorized callers must be a reviewer for this campaign, an ORG_ADMIN, or a CERT_ADMIN.\n * @summary Get a campaign\n * @param {CertificationCampaignsBetaApiGetCampaignRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @deprecated\n * @throws {RequiredError}\n * @memberof CertificationCampaignsBetaApi\n */\n CertificationCampaignsBetaApi.prototype.getCampaign = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.CertificationCampaignsBetaApiFp)(this.configuration).getCampaign(requestParameters.id, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * Fetches all reports for a certification campaign by campaign ID. Requires roles of CERT_ADMIN, DASHBOARD, ORG_ADMIN and REPORT_ADMIN\n * @summary Get Campaign Reports\n * @param {CertificationCampaignsBetaApiGetCampaignReportsRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @deprecated\n * @throws {RequiredError}\n * @memberof CertificationCampaignsBetaApi\n */\n CertificationCampaignsBetaApi.prototype.getCampaignReports = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.CertificationCampaignsBetaApiFp)(this.configuration).getCampaignReports(requestParameters.id, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * Fetches configuration for campaign reports. Currently it includes only one element - identity attributes defined as custom report columns. Requires roles of CERT_ADMIN and ORG_ADMIN.\n * @summary Get Campaign Reports Configuration\n * @param {*} [axiosOptions] Override http request option.\n * @deprecated\n * @throws {RequiredError}\n * @memberof CertificationCampaignsBetaApi\n */\n CertificationCampaignsBetaApi.prototype.getCampaignReportsConfig = function (axiosOptions) {\n var _this = this;\n return (0, exports.CertificationCampaignsBetaApiFp)(this.configuration).getCampaignReportsConfig(axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * Fetches a campaign template by ID.\n * @summary Get a Campaign Template\n * @param {CertificationCampaignsBetaApiGetCampaignTemplateRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @deprecated\n * @throws {RequiredError}\n * @memberof CertificationCampaignsBetaApi\n */\n CertificationCampaignsBetaApi.prototype.getCampaignTemplate = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.CertificationCampaignsBetaApiFp)(this.configuration).getCampaignTemplate(requestParameters.id, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * Gets the schedule for a campaign template. Returns a 404 if there is no schedule set.\n * @summary Gets a Campaign Template\\'s Schedule\n * @param {CertificationCampaignsBetaApiGetCampaignTemplateScheduleRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @deprecated\n * @throws {RequiredError}\n * @memberof CertificationCampaignsBetaApi\n */\n CertificationCampaignsBetaApi.prototype.getCampaignTemplateSchedule = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.CertificationCampaignsBetaApiFp)(this.configuration).getCampaignTemplateSchedule(requestParameters.id, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * Lists all CampaignTemplates. Scope can be reduced via standard V3 query params. All CampaignTemplates matching the query params\n * @summary List Campaign Templates\n * @param {CertificationCampaignsBetaApiListCampaignTemplatesRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @deprecated\n * @throws {RequiredError}\n * @memberof CertificationCampaignsBetaApi\n */\n CertificationCampaignsBetaApi.prototype.listCampaignTemplates = function (requestParameters, axiosOptions) {\n var _this = this;\n if (requestParameters === void 0) { requestParameters = {}; }\n return (0, exports.CertificationCampaignsBetaApiFp)(this.configuration).listCampaignTemplates(requestParameters.limit, requestParameters.offset, requestParameters.count, requestParameters.sorters, requestParameters.filters, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This API reassigns the specified certifications from one identity to another. A token with ORG_ADMIN or CERT_ADMIN authority is required to call this API.\n * @summary Reassign Certifications\n * @param {CertificationCampaignsBetaApiMoveRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @deprecated\n * @throws {RequiredError}\n * @memberof CertificationCampaignsBetaApi\n */\n CertificationCampaignsBetaApi.prototype.move = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.CertificationCampaignsBetaApiFp)(this.configuration).move(requestParameters.id, requestParameters.adminReviewReassignBeta, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * Allows updating individual fields on a campaign template using the [JSON Patch](https://tools.ietf.org/html/rfc6902) standard.\n * @summary Update a Campaign Template\n * @param {CertificationCampaignsBetaApiPatchCampaignTemplateRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @deprecated\n * @throws {RequiredError}\n * @memberof CertificationCampaignsBetaApi\n */\n CertificationCampaignsBetaApi.prototype.patchCampaignTemplate = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.CertificationCampaignsBetaApiFp)(this.configuration).patchCampaignTemplate(requestParameters.id, requestParameters.jsonPatchOperationBeta, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * Overwrites configuration for campaign reports. Requires roles CERT_ADMIN and ORG_ADMIN.\n * @summary Set Campaign Reports Configuration\n * @param {CertificationCampaignsBetaApiSetCampaignReportsConfigRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @deprecated\n * @throws {RequiredError}\n * @memberof CertificationCampaignsBetaApi\n */\n CertificationCampaignsBetaApi.prototype.setCampaignReportsConfig = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.CertificationCampaignsBetaApiFp)(this.configuration).setCampaignReportsConfig(requestParameters.campaignReportsConfigBeta, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * Sets the schedule for a campaign template. If a schedule already exists, it will be overwritten with the new one.\n * @summary Sets a Campaign Template\\'s Schedule\n * @param {CertificationCampaignsBetaApiSetCampaignTemplateScheduleRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @deprecated\n * @throws {RequiredError}\n * @memberof CertificationCampaignsBetaApi\n */\n CertificationCampaignsBetaApi.prototype.setCampaignTemplateSchedule = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.CertificationCampaignsBetaApiFp)(this.configuration).setCampaignTemplateSchedule(requestParameters.id, requestParameters.scheduleBeta, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * Submits a job to activate the campaign with the given Id. The campaign must be staged. Requires roles of CERT_ADMIN and ORG_ADMIN\n * @summary Activate a Campaign\n * @param {CertificationCampaignsBetaApiStartCampaignRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @deprecated\n * @throws {RequiredError}\n * @memberof CertificationCampaignsBetaApi\n */\n CertificationCampaignsBetaApi.prototype.startCampaign = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.CertificationCampaignsBetaApiFp)(this.configuration).startCampaign(requestParameters.id, requestParameters.activateCampaignOptionsBeta, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * Kicks off remediation scan task for a certification campaign. Requires roles of CERT_ADMIN and ORG_ADMIN\n * @summary Run Campaign Remediation Scan\n * @param {CertificationCampaignsBetaApiStartCampaignRemediationScanRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @deprecated\n * @throws {RequiredError}\n * @memberof CertificationCampaignsBetaApi\n */\n CertificationCampaignsBetaApi.prototype.startCampaignRemediationScan = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.CertificationCampaignsBetaApiFp)(this.configuration).startCampaignRemediationScan(requestParameters.id, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * Runs a report for a certification campaign. Requires the following roles: CERT_ADMIN, DASHBOARD, ORG_ADMIN and REPORT_ADMIN.\n * @summary Run Campaign Report\n * @param {CertificationCampaignsBetaApiStartCampaignReportRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @deprecated\n * @throws {RequiredError}\n * @memberof CertificationCampaignsBetaApi\n */\n CertificationCampaignsBetaApi.prototype.startCampaignReport = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.CertificationCampaignsBetaApiFp)(this.configuration).startCampaignReport(requestParameters.id, requestParameters.type, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * Generates a new campaign from a campaign template. The campaign object contained in the template has special formatting applied to its name and description fields in order to determine the generated campaign\\'s name/description. Placeholders in those fields are formatted with the current date and time upon generation. Placeholders consist of a percent sign followed by a letter indicating what should be inserted; for example, \\\"%Y\\\" will insert the current year; a campaign template named \\\"Campaign for %y\\\" would generate a campaign called \\\"Campaign for 2020\\\" (assuming the year at generation time is 2020). Valid placeholders are the date/time conversion suffix characters supported by [java.util.Formatter](https://docs.oracle.com/javase/8/docs/api/java/util/Formatter.html). Requires roles ORG_ADMIN.\n * @summary Generate a Campaign from Template\n * @param {CertificationCampaignsBetaApiStartGenerateCampaignTemplateRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @deprecated\n * @throws {RequiredError}\n * @memberof CertificationCampaignsBetaApi\n */\n CertificationCampaignsBetaApi.prototype.startGenerateCampaignTemplate = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.CertificationCampaignsBetaApiFp)(this.configuration).startGenerateCampaignTemplate(requestParameters.id, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * Allows updating individual fields on a campaign using the [JSON Patch](https://tools.ietf.org/html/rfc6902) standard.\n * @summary Update a Campaign\n * @param {CertificationCampaignsBetaApiUpdateCampaignRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @deprecated\n * @throws {RequiredError}\n * @memberof CertificationCampaignsBetaApi\n */\n CertificationCampaignsBetaApi.prototype.updateCampaign = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.CertificationCampaignsBetaApiFp)(this.configuration).updateCampaign(requestParameters.id, requestParameters.requestBody, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n return CertificationCampaignsBetaApi;\n}(base_1.BaseAPI));\nexports.CertificationCampaignsBetaApi = CertificationCampaignsBetaApi;\n/**\n * CertificationsBetaApi - axios parameter creator\n * @export\n */\nvar CertificationsBetaApiAxiosParamCreator = function (configuration) {\n var _this = this;\n return {\n /**\n * This API returns the permissions associated with an entitlement certification item based on the certification item\\'s ID. A token with ORG_ADMIN or CERT_ADMIN authority is required to call this API. Reviewers for this certification can also call this API.\n * @summary Permissions for Entitlement Certification Item\n * @param {string} certificationId The certification ID\n * @param {string} itemId The certification item ID\n * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **target**: *eq, sw* **rights**: *ca* All field values (second filter operands) are case-insensitive for this API. Only a single *and* or *or* composite filter operator may be used. It must also be used between a target filter and a rights filter, not between 2 filters for the same field. For example, the following is valid: `?filters=rights+ca+(%22CREATE%22)+and+target+eq+%22SYS.OBJAUTH2%22` The following is invalid: `?filters=rights+ca+(%22CREATE%22)+and+rights+ca+(%SELECT%22)`\n * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {*} [axiosOptions] Override http request option.\n * @deprecated\n * @throws {RequiredError}\n */\n getIdentityCertificationItemPermissions: function (certificationId, itemId, filters, limit, offset, count, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'certificationId' is not null or undefined\n (0, common_1.assertParamExists)('getIdentityCertificationItemPermissions', 'certificationId', certificationId);\n // verify required parameter 'itemId' is not null or undefined\n (0, common_1.assertParamExists)('getIdentityCertificationItemPermissions', 'itemId', itemId);\n localVarPath = \"/certifications/{certificationId}/access-review-items/{itemId}/permissions\"\n .replace(\"{\".concat(\"certificationId\", \"}\"), encodeURIComponent(String(certificationId)))\n .replace(\"{\".concat(\"itemId\", \"}\"), encodeURIComponent(String(itemId)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n if (filters !== undefined) {\n localVarQueryParameter['filters'] = filters;\n }\n if (limit !== undefined) {\n localVarQueryParameter['limit'] = limit;\n }\n if (offset !== undefined) {\n localVarQueryParameter['offset'] = offset;\n }\n if (count !== undefined) {\n localVarQueryParameter['count'] = count;\n }\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This API returns the status of all pending (`QUEUED` or `IN_PROGRESS`) tasks for an identity campaign certification. A token with ORG_ADMIN or CERT_ADMIN authority is required to call this API. Reviewers for this certification can also call this API.\n * @summary Pending Certification Tasks\n * @param {string} id The identity campaign certification ID\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getIdentityCertificationPendingTasks: function (id, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'id' is not null or undefined\n (0, common_1.assertParamExists)('getIdentityCertificationPendingTasks', 'id', id);\n localVarPath = \"/certifications/{id}/tasks-pending\"\n .replace(\"{\".concat(\"id\", \"}\"), encodeURIComponent(String(id)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This API returns the status of a certification task. A token with ORG_ADMIN or CERT_ADMIN authority is required to call this API. Reviewers for this certification can also call this API.\n * @summary Certification Task Status\n * @param {string} id The identity campaign certification ID\n * @param {string} taskId The certification task ID\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getIdentityCertificationTaskStatus: function (id, taskId, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'id' is not null or undefined\n (0, common_1.assertParamExists)('getIdentityCertificationTaskStatus', 'id', id);\n // verify required parameter 'taskId' is not null or undefined\n (0, common_1.assertParamExists)('getIdentityCertificationTaskStatus', 'taskId', taskId);\n localVarPath = \"/certifications/{id}/tasks/{taskId}\"\n .replace(\"{\".concat(\"id\", \"}\"), encodeURIComponent(String(id)))\n .replace(\"{\".concat(\"taskId\", \"}\"), encodeURIComponent(String(taskId)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This API returns a list of reviewers for the certification. A token with ORG_ADMIN or CERT_ADMIN authority is required to call this API. Reviewers for this certification can also call this API.\n * @summary List of Reviewers for certification\n * @param {string} id The certification ID\n * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **id**: *eq, in* **name**: *eq, sw* **email**: *eq, sw*\n * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **name, email**\n * @param {*} [axiosOptions] Override http request option.\n * @deprecated\n * @throws {RequiredError}\n */\n listCertificationReviewers: function (id, limit, offset, count, filters, sorters, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'id' is not null or undefined\n (0, common_1.assertParamExists)('listCertificationReviewers', 'id', id);\n localVarPath = \"/certifications/{id}/reviewers\"\n .replace(\"{\".concat(\"id\", \"}\"), encodeURIComponent(String(id)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n if (limit !== undefined) {\n localVarQueryParameter['limit'] = limit;\n }\n if (offset !== undefined) {\n localVarQueryParameter['offset'] = offset;\n }\n if (count !== undefined) {\n localVarQueryParameter['count'] = count;\n }\n if (filters !== undefined) {\n localVarQueryParameter['filters'] = filters;\n }\n if (sorters !== undefined) {\n localVarQueryParameter['sorters'] = sorters;\n }\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This API initiates a task to reassign up to 500 identities or items in an identity campaign certification to another reviewer. The `certification-tasks` API can be used to get an updated status on the task and determine when the reassignment is complete. A token with ORG_ADMIN or CERT_ADMIN authority is required to call this API. Reviewers for this certification can also call this API.\n * @summary Reassign Certifications Asynchronously\n * @param {string} id The identity campaign certification ID\n * @param {ReviewReassignBeta} reviewReassignBeta\n * @param {*} [axiosOptions] Override http request option.\n * @deprecated\n * @throws {RequiredError}\n */\n submitReassignCertsAsync: function (id, reviewReassignBeta, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'id' is not null or undefined\n (0, common_1.assertParamExists)('submitReassignCertsAsync', 'id', id);\n // verify required parameter 'reviewReassignBeta' is not null or undefined\n (0, common_1.assertParamExists)('submitReassignCertsAsync', 'reviewReassignBeta', reviewReassignBeta);\n localVarPath = \"/certifications/{id}/reassign-async\"\n .replace(\"{\".concat(\"id\", \"}\"), encodeURIComponent(String(id)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n localVarHeaderParameter['Content-Type'] = 'application/json';\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(reviewReassignBeta, localVarRequestOptions, configuration);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n };\n};\nexports.CertificationsBetaApiAxiosParamCreator = CertificationsBetaApiAxiosParamCreator;\n/**\n * CertificationsBetaApi - functional programming interface\n * @export\n */\nvar CertificationsBetaApiFp = function (configuration) {\n var localVarAxiosParamCreator = (0, exports.CertificationsBetaApiAxiosParamCreator)(configuration);\n return {\n /**\n * This API returns the permissions associated with an entitlement certification item based on the certification item\\'s ID. A token with ORG_ADMIN or CERT_ADMIN authority is required to call this API. Reviewers for this certification can also call this API.\n * @summary Permissions for Entitlement Certification Item\n * @param {string} certificationId The certification ID\n * @param {string} itemId The certification item ID\n * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **target**: *eq, sw* **rights**: *ca* All field values (second filter operands) are case-insensitive for this API. Only a single *and* or *or* composite filter operator may be used. It must also be used between a target filter and a rights filter, not between 2 filters for the same field. For example, the following is valid: `?filters=rights+ca+(%22CREATE%22)+and+target+eq+%22SYS.OBJAUTH2%22` The following is invalid: `?filters=rights+ca+(%22CREATE%22)+and+rights+ca+(%SELECT%22)`\n * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {*} [axiosOptions] Override http request option.\n * @deprecated\n * @throws {RequiredError}\n */\n getIdentityCertificationItemPermissions: function (certificationId, itemId, filters, limit, offset, count, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.getIdentityCertificationItemPermissions(certificationId, itemId, filters, limit, offset, count, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This API returns the status of all pending (`QUEUED` or `IN_PROGRESS`) tasks for an identity campaign certification. A token with ORG_ADMIN or CERT_ADMIN authority is required to call this API. Reviewers for this certification can also call this API.\n * @summary Pending Certification Tasks\n * @param {string} id The identity campaign certification ID\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getIdentityCertificationPendingTasks: function (id, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.getIdentityCertificationPendingTasks(id, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This API returns the status of a certification task. A token with ORG_ADMIN or CERT_ADMIN authority is required to call this API. Reviewers for this certification can also call this API.\n * @summary Certification Task Status\n * @param {string} id The identity campaign certification ID\n * @param {string} taskId The certification task ID\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getIdentityCertificationTaskStatus: function (id, taskId, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.getIdentityCertificationTaskStatus(id, taskId, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This API returns a list of reviewers for the certification. A token with ORG_ADMIN or CERT_ADMIN authority is required to call this API. Reviewers for this certification can also call this API.\n * @summary List of Reviewers for certification\n * @param {string} id The certification ID\n * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **id**: *eq, in* **name**: *eq, sw* **email**: *eq, sw*\n * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **name, email**\n * @param {*} [axiosOptions] Override http request option.\n * @deprecated\n * @throws {RequiredError}\n */\n listCertificationReviewers: function (id, limit, offset, count, filters, sorters, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.listCertificationReviewers(id, limit, offset, count, filters, sorters, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This API initiates a task to reassign up to 500 identities or items in an identity campaign certification to another reviewer. The `certification-tasks` API can be used to get an updated status on the task and determine when the reassignment is complete. A token with ORG_ADMIN or CERT_ADMIN authority is required to call this API. Reviewers for this certification can also call this API.\n * @summary Reassign Certifications Asynchronously\n * @param {string} id The identity campaign certification ID\n * @param {ReviewReassignBeta} reviewReassignBeta\n * @param {*} [axiosOptions] Override http request option.\n * @deprecated\n * @throws {RequiredError}\n */\n submitReassignCertsAsync: function (id, reviewReassignBeta, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.submitReassignCertsAsync(id, reviewReassignBeta, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n };\n};\nexports.CertificationsBetaApiFp = CertificationsBetaApiFp;\n/**\n * CertificationsBetaApi - factory interface\n * @export\n */\nvar CertificationsBetaApiFactory = function (configuration, basePath, axios) {\n var localVarFp = (0, exports.CertificationsBetaApiFp)(configuration);\n return {\n /**\n * This API returns the permissions associated with an entitlement certification item based on the certification item\\'s ID. A token with ORG_ADMIN or CERT_ADMIN authority is required to call this API. Reviewers for this certification can also call this API.\n * @summary Permissions for Entitlement Certification Item\n * @param {string} certificationId The certification ID\n * @param {string} itemId The certification item ID\n * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **target**: *eq, sw* **rights**: *ca* All field values (second filter operands) are case-insensitive for this API. Only a single *and* or *or* composite filter operator may be used. It must also be used between a target filter and a rights filter, not between 2 filters for the same field. For example, the following is valid: `?filters=rights+ca+(%22CREATE%22)+and+target+eq+%22SYS.OBJAUTH2%22` The following is invalid: `?filters=rights+ca+(%22CREATE%22)+and+rights+ca+(%SELECT%22)`\n * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {*} [axiosOptions] Override http request option.\n * @deprecated\n * @throws {RequiredError}\n */\n getIdentityCertificationItemPermissions: function (certificationId, itemId, filters, limit, offset, count, axiosOptions) {\n return localVarFp.getIdentityCertificationItemPermissions(certificationId, itemId, filters, limit, offset, count, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This API returns the status of all pending (`QUEUED` or `IN_PROGRESS`) tasks for an identity campaign certification. A token with ORG_ADMIN or CERT_ADMIN authority is required to call this API. Reviewers for this certification can also call this API.\n * @summary Pending Certification Tasks\n * @param {string} id The identity campaign certification ID\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getIdentityCertificationPendingTasks: function (id, axiosOptions) {\n return localVarFp.getIdentityCertificationPendingTasks(id, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This API returns the status of a certification task. A token with ORG_ADMIN or CERT_ADMIN authority is required to call this API. Reviewers for this certification can also call this API.\n * @summary Certification Task Status\n * @param {string} id The identity campaign certification ID\n * @param {string} taskId The certification task ID\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getIdentityCertificationTaskStatus: function (id, taskId, axiosOptions) {\n return localVarFp.getIdentityCertificationTaskStatus(id, taskId, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This API returns a list of reviewers for the certification. A token with ORG_ADMIN or CERT_ADMIN authority is required to call this API. Reviewers for this certification can also call this API.\n * @summary List of Reviewers for certification\n * @param {string} id The certification ID\n * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **id**: *eq, in* **name**: *eq, sw* **email**: *eq, sw*\n * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **name, email**\n * @param {*} [axiosOptions] Override http request option.\n * @deprecated\n * @throws {RequiredError}\n */\n listCertificationReviewers: function (id, limit, offset, count, filters, sorters, axiosOptions) {\n return localVarFp.listCertificationReviewers(id, limit, offset, count, filters, sorters, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This API initiates a task to reassign up to 500 identities or items in an identity campaign certification to another reviewer. The `certification-tasks` API can be used to get an updated status on the task and determine when the reassignment is complete. A token with ORG_ADMIN or CERT_ADMIN authority is required to call this API. Reviewers for this certification can also call this API.\n * @summary Reassign Certifications Asynchronously\n * @param {string} id The identity campaign certification ID\n * @param {ReviewReassignBeta} reviewReassignBeta\n * @param {*} [axiosOptions] Override http request option.\n * @deprecated\n * @throws {RequiredError}\n */\n submitReassignCertsAsync: function (id, reviewReassignBeta, axiosOptions) {\n return localVarFp.submitReassignCertsAsync(id, reviewReassignBeta, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n };\n};\nexports.CertificationsBetaApiFactory = CertificationsBetaApiFactory;\n/**\n * CertificationsBetaApi - object-oriented interface\n * @export\n * @class CertificationsBetaApi\n * @extends {BaseAPI}\n */\nvar CertificationsBetaApi = /** @class */ (function (_super) {\n __extends(CertificationsBetaApi, _super);\n function CertificationsBetaApi() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n * This API returns the permissions associated with an entitlement certification item based on the certification item\\'s ID. A token with ORG_ADMIN or CERT_ADMIN authority is required to call this API. Reviewers for this certification can also call this API.\n * @summary Permissions for Entitlement Certification Item\n * @param {CertificationsBetaApiGetIdentityCertificationItemPermissionsRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @deprecated\n * @throws {RequiredError}\n * @memberof CertificationsBetaApi\n */\n CertificationsBetaApi.prototype.getIdentityCertificationItemPermissions = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.CertificationsBetaApiFp)(this.configuration).getIdentityCertificationItemPermissions(requestParameters.certificationId, requestParameters.itemId, requestParameters.filters, requestParameters.limit, requestParameters.offset, requestParameters.count, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This API returns the status of all pending (`QUEUED` or `IN_PROGRESS`) tasks for an identity campaign certification. A token with ORG_ADMIN or CERT_ADMIN authority is required to call this API. Reviewers for this certification can also call this API.\n * @summary Pending Certification Tasks\n * @param {CertificationsBetaApiGetIdentityCertificationPendingTasksRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof CertificationsBetaApi\n */\n CertificationsBetaApi.prototype.getIdentityCertificationPendingTasks = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.CertificationsBetaApiFp)(this.configuration).getIdentityCertificationPendingTasks(requestParameters.id, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This API returns the status of a certification task. A token with ORG_ADMIN or CERT_ADMIN authority is required to call this API. Reviewers for this certification can also call this API.\n * @summary Certification Task Status\n * @param {CertificationsBetaApiGetIdentityCertificationTaskStatusRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof CertificationsBetaApi\n */\n CertificationsBetaApi.prototype.getIdentityCertificationTaskStatus = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.CertificationsBetaApiFp)(this.configuration).getIdentityCertificationTaskStatus(requestParameters.id, requestParameters.taskId, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This API returns a list of reviewers for the certification. A token with ORG_ADMIN or CERT_ADMIN authority is required to call this API. Reviewers for this certification can also call this API.\n * @summary List of Reviewers for certification\n * @param {CertificationsBetaApiListCertificationReviewersRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @deprecated\n * @throws {RequiredError}\n * @memberof CertificationsBetaApi\n */\n CertificationsBetaApi.prototype.listCertificationReviewers = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.CertificationsBetaApiFp)(this.configuration).listCertificationReviewers(requestParameters.id, requestParameters.limit, requestParameters.offset, requestParameters.count, requestParameters.filters, requestParameters.sorters, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This API initiates a task to reassign up to 500 identities or items in an identity campaign certification to another reviewer. The `certification-tasks` API can be used to get an updated status on the task and determine when the reassignment is complete. A token with ORG_ADMIN or CERT_ADMIN authority is required to call this API. Reviewers for this certification can also call this API.\n * @summary Reassign Certifications Asynchronously\n * @param {CertificationsBetaApiSubmitReassignCertsAsyncRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @deprecated\n * @throws {RequiredError}\n * @memberof CertificationsBetaApi\n */\n CertificationsBetaApi.prototype.submitReassignCertsAsync = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.CertificationsBetaApiFp)(this.configuration).submitReassignCertsAsync(requestParameters.id, requestParameters.reviewReassignBeta, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n return CertificationsBetaApi;\n}(base_1.BaseAPI));\nexports.CertificationsBetaApi = CertificationsBetaApi;\n/**\n * ConnectorRuleManagementBetaApi - axios parameter creator\n * @export\n */\nvar ConnectorRuleManagementBetaApiAxiosParamCreator = function (configuration) {\n var _this = this;\n return {\n /**\n * Creates a new connector rule. A token with ORG_ADMIN authority is required to call this API.\n * @summary Create Connector Rule\n * @param {ConnectorRuleCreateRequestBeta} connectorRuleCreateRequestBeta The connector rule to create\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n createConnectorRule: function (connectorRuleCreateRequestBeta, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'connectorRuleCreateRequestBeta' is not null or undefined\n (0, common_1.assertParamExists)('createConnectorRule', 'connectorRuleCreateRequestBeta', connectorRuleCreateRequestBeta);\n localVarPath = \"/connector-rules\";\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n localVarHeaderParameter['Content-Type'] = 'application/json';\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(connectorRuleCreateRequestBeta, localVarRequestOptions, configuration);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * Deletes the connector rule specified by the given ID. A token with ORG_ADMIN authority is required to call this API.\n * @summary Delete a Connector-Rule\n * @param {string} id ID of the connector rule to delete\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n deleteConnectorRule: function (id, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'id' is not null or undefined\n (0, common_1.assertParamExists)('deleteConnectorRule', 'id', id);\n localVarPath = \"/connector-rules/{id}\"\n .replace(\"{\".concat(\"id\", \"}\"), encodeURIComponent(String(id)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'DELETE' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * Returns the connector rule specified by ID. A token with ORG_ADMIN authority is required to call this API.\n * @summary Connector-Rule by ID\n * @param {string} id ID of the connector rule to retrieve\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getConnectorRule: function (id, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'id' is not null or undefined\n (0, common_1.assertParamExists)('getConnectorRule', 'id', id);\n localVarPath = \"/connector-rules/{id}\"\n .replace(\"{\".concat(\"id\", \"}\"), encodeURIComponent(String(id)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * Returns the list of connector rules. A token with ORG_ADMIN authority is required to call this API.\n * @summary List Connector Rules\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getConnectorRuleList: function (axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n localVarPath = \"/connector-rules\";\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * Updates an existing connector rule with the one provided in the request body. Note that the fields \\'id\\', \\'name\\', and \\'type\\' are immutable. A token with ORG_ADMIN authority is required to call this API.\n * @summary Update a Connector Rule\n * @param {string} id ID of the connector rule to update\n * @param {ConnectorRuleUpdateRequestBeta} [connectorRuleUpdateRequestBeta] The connector rule with updated data\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n updateConnectorRule: function (id, connectorRuleUpdateRequestBeta, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'id' is not null or undefined\n (0, common_1.assertParamExists)('updateConnectorRule', 'id', id);\n localVarPath = \"/connector-rules/{id}\"\n .replace(\"{\".concat(\"id\", \"}\"), encodeURIComponent(String(id)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'PUT' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n localVarHeaderParameter['Content-Type'] = 'application/json';\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(connectorRuleUpdateRequestBeta, localVarRequestOptions, configuration);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * Returns a list of issues within the code to fix, if any. A token with ORG_ADMIN authority is required to call this API.\n * @summary Validate Connector Rule\n * @param {SourceCodeBeta} sourceCodeBeta The code to validate\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n validateConnectorRule: function (sourceCodeBeta, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'sourceCodeBeta' is not null or undefined\n (0, common_1.assertParamExists)('validateConnectorRule', 'sourceCodeBeta', sourceCodeBeta);\n localVarPath = \"/connector-rules/validate\";\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n localVarHeaderParameter['Content-Type'] = 'application/json';\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(sourceCodeBeta, localVarRequestOptions, configuration);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n };\n};\nexports.ConnectorRuleManagementBetaApiAxiosParamCreator = ConnectorRuleManagementBetaApiAxiosParamCreator;\n/**\n * ConnectorRuleManagementBetaApi - functional programming interface\n * @export\n */\nvar ConnectorRuleManagementBetaApiFp = function (configuration) {\n var localVarAxiosParamCreator = (0, exports.ConnectorRuleManagementBetaApiAxiosParamCreator)(configuration);\n return {\n /**\n * Creates a new connector rule. A token with ORG_ADMIN authority is required to call this API.\n * @summary Create Connector Rule\n * @param {ConnectorRuleCreateRequestBeta} connectorRuleCreateRequestBeta The connector rule to create\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n createConnectorRule: function (connectorRuleCreateRequestBeta, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.createConnectorRule(connectorRuleCreateRequestBeta, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * Deletes the connector rule specified by the given ID. A token with ORG_ADMIN authority is required to call this API.\n * @summary Delete a Connector-Rule\n * @param {string} id ID of the connector rule to delete\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n deleteConnectorRule: function (id, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.deleteConnectorRule(id, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * Returns the connector rule specified by ID. A token with ORG_ADMIN authority is required to call this API.\n * @summary Connector-Rule by ID\n * @param {string} id ID of the connector rule to retrieve\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getConnectorRule: function (id, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.getConnectorRule(id, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * Returns the list of connector rules. A token with ORG_ADMIN authority is required to call this API.\n * @summary List Connector Rules\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getConnectorRuleList: function (axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.getConnectorRuleList(axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * Updates an existing connector rule with the one provided in the request body. Note that the fields \\'id\\', \\'name\\', and \\'type\\' are immutable. A token with ORG_ADMIN authority is required to call this API.\n * @summary Update a Connector Rule\n * @param {string} id ID of the connector rule to update\n * @param {ConnectorRuleUpdateRequestBeta} [connectorRuleUpdateRequestBeta] The connector rule with updated data\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n updateConnectorRule: function (id, connectorRuleUpdateRequestBeta, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.updateConnectorRule(id, connectorRuleUpdateRequestBeta, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * Returns a list of issues within the code to fix, if any. A token with ORG_ADMIN authority is required to call this API.\n * @summary Validate Connector Rule\n * @param {SourceCodeBeta} sourceCodeBeta The code to validate\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n validateConnectorRule: function (sourceCodeBeta, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.validateConnectorRule(sourceCodeBeta, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n };\n};\nexports.ConnectorRuleManagementBetaApiFp = ConnectorRuleManagementBetaApiFp;\n/**\n * ConnectorRuleManagementBetaApi - factory interface\n * @export\n */\nvar ConnectorRuleManagementBetaApiFactory = function (configuration, basePath, axios) {\n var localVarFp = (0, exports.ConnectorRuleManagementBetaApiFp)(configuration);\n return {\n /**\n * Creates a new connector rule. A token with ORG_ADMIN authority is required to call this API.\n * @summary Create Connector Rule\n * @param {ConnectorRuleCreateRequestBeta} connectorRuleCreateRequestBeta The connector rule to create\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n createConnectorRule: function (connectorRuleCreateRequestBeta, axiosOptions) {\n return localVarFp.createConnectorRule(connectorRuleCreateRequestBeta, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * Deletes the connector rule specified by the given ID. A token with ORG_ADMIN authority is required to call this API.\n * @summary Delete a Connector-Rule\n * @param {string} id ID of the connector rule to delete\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n deleteConnectorRule: function (id, axiosOptions) {\n return localVarFp.deleteConnectorRule(id, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * Returns the connector rule specified by ID. A token with ORG_ADMIN authority is required to call this API.\n * @summary Connector-Rule by ID\n * @param {string} id ID of the connector rule to retrieve\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getConnectorRule: function (id, axiosOptions) {\n return localVarFp.getConnectorRule(id, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * Returns the list of connector rules. A token with ORG_ADMIN authority is required to call this API.\n * @summary List Connector Rules\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getConnectorRuleList: function (axiosOptions) {\n return localVarFp.getConnectorRuleList(axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * Updates an existing connector rule with the one provided in the request body. Note that the fields \\'id\\', \\'name\\', and \\'type\\' are immutable. A token with ORG_ADMIN authority is required to call this API.\n * @summary Update a Connector Rule\n * @param {string} id ID of the connector rule to update\n * @param {ConnectorRuleUpdateRequestBeta} [connectorRuleUpdateRequestBeta] The connector rule with updated data\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n updateConnectorRule: function (id, connectorRuleUpdateRequestBeta, axiosOptions) {\n return localVarFp.updateConnectorRule(id, connectorRuleUpdateRequestBeta, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * Returns a list of issues within the code to fix, if any. A token with ORG_ADMIN authority is required to call this API.\n * @summary Validate Connector Rule\n * @param {SourceCodeBeta} sourceCodeBeta The code to validate\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n validateConnectorRule: function (sourceCodeBeta, axiosOptions) {\n return localVarFp.validateConnectorRule(sourceCodeBeta, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n };\n};\nexports.ConnectorRuleManagementBetaApiFactory = ConnectorRuleManagementBetaApiFactory;\n/**\n * ConnectorRuleManagementBetaApi - object-oriented interface\n * @export\n * @class ConnectorRuleManagementBetaApi\n * @extends {BaseAPI}\n */\nvar ConnectorRuleManagementBetaApi = /** @class */ (function (_super) {\n __extends(ConnectorRuleManagementBetaApi, _super);\n function ConnectorRuleManagementBetaApi() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n * Creates a new connector rule. A token with ORG_ADMIN authority is required to call this API.\n * @summary Create Connector Rule\n * @param {ConnectorRuleManagementBetaApiCreateConnectorRuleRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof ConnectorRuleManagementBetaApi\n */\n ConnectorRuleManagementBetaApi.prototype.createConnectorRule = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.ConnectorRuleManagementBetaApiFp)(this.configuration).createConnectorRule(requestParameters.connectorRuleCreateRequestBeta, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * Deletes the connector rule specified by the given ID. A token with ORG_ADMIN authority is required to call this API.\n * @summary Delete a Connector-Rule\n * @param {ConnectorRuleManagementBetaApiDeleteConnectorRuleRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof ConnectorRuleManagementBetaApi\n */\n ConnectorRuleManagementBetaApi.prototype.deleteConnectorRule = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.ConnectorRuleManagementBetaApiFp)(this.configuration).deleteConnectorRule(requestParameters.id, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * Returns the connector rule specified by ID. A token with ORG_ADMIN authority is required to call this API.\n * @summary Connector-Rule by ID\n * @param {ConnectorRuleManagementBetaApiGetConnectorRuleRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof ConnectorRuleManagementBetaApi\n */\n ConnectorRuleManagementBetaApi.prototype.getConnectorRule = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.ConnectorRuleManagementBetaApiFp)(this.configuration).getConnectorRule(requestParameters.id, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * Returns the list of connector rules. A token with ORG_ADMIN authority is required to call this API.\n * @summary List Connector Rules\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof ConnectorRuleManagementBetaApi\n */\n ConnectorRuleManagementBetaApi.prototype.getConnectorRuleList = function (axiosOptions) {\n var _this = this;\n return (0, exports.ConnectorRuleManagementBetaApiFp)(this.configuration).getConnectorRuleList(axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * Updates an existing connector rule with the one provided in the request body. Note that the fields \\'id\\', \\'name\\', and \\'type\\' are immutable. A token with ORG_ADMIN authority is required to call this API.\n * @summary Update a Connector Rule\n * @param {ConnectorRuleManagementBetaApiUpdateConnectorRuleRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof ConnectorRuleManagementBetaApi\n */\n ConnectorRuleManagementBetaApi.prototype.updateConnectorRule = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.ConnectorRuleManagementBetaApiFp)(this.configuration).updateConnectorRule(requestParameters.id, requestParameters.connectorRuleUpdateRequestBeta, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * Returns a list of issues within the code to fix, if any. A token with ORG_ADMIN authority is required to call this API.\n * @summary Validate Connector Rule\n * @param {ConnectorRuleManagementBetaApiValidateConnectorRuleRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof ConnectorRuleManagementBetaApi\n */\n ConnectorRuleManagementBetaApi.prototype.validateConnectorRule = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.ConnectorRuleManagementBetaApiFp)(this.configuration).validateConnectorRule(requestParameters.sourceCodeBeta, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n return ConnectorRuleManagementBetaApi;\n}(base_1.BaseAPI));\nexports.ConnectorRuleManagementBetaApi = ConnectorRuleManagementBetaApi;\n/**\n * ConnectorsBetaApi - axios parameter creator\n * @export\n */\nvar ConnectorsBetaApiAxiosParamCreator = function (configuration) {\n var _this = this;\n return {\n /**\n * Fetches list of connectors that have \\'RELEASED\\' status using filtering and pagination. A token with ORG_ADMIN authority is required to call this API.\n * @summary Gets connector list\n * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **name**: *sw, co* **type**: *eq* **directConnect**: *eq* **category**: *eq* **features**: *ca*\n * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {'de' | 'false' | 'fi' | 'sv' | 'ru' | 'pt' | 'ko' | 'zh-TW' | 'en' | 'it' | 'fr' | 'zh-CN' | 'hu' | 'es' | 'cs' | 'ja' | 'pl' | 'da' | 'nl'} [locale] The locale to apply to the config. If no viable locale is given, it will default to \\"en\\"\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getConnectorList: function (filters, limit, offset, count, locale, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n localVarPath = \"/connectors\";\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n if (filters !== undefined) {\n localVarQueryParameter['filters'] = filters;\n }\n if (limit !== undefined) {\n localVarQueryParameter['limit'] = limit;\n }\n if (offset !== undefined) {\n localVarQueryParameter['offset'] = offset;\n }\n if (count !== undefined) {\n localVarQueryParameter['count'] = count;\n }\n if (locale !== undefined) {\n localVarQueryParameter['locale'] = locale;\n }\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n };\n};\nexports.ConnectorsBetaApiAxiosParamCreator = ConnectorsBetaApiAxiosParamCreator;\n/**\n * ConnectorsBetaApi - functional programming interface\n * @export\n */\nvar ConnectorsBetaApiFp = function (configuration) {\n var localVarAxiosParamCreator = (0, exports.ConnectorsBetaApiAxiosParamCreator)(configuration);\n return {\n /**\n * Fetches list of connectors that have \\'RELEASED\\' status using filtering and pagination. A token with ORG_ADMIN authority is required to call this API.\n * @summary Gets connector list\n * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **name**: *sw, co* **type**: *eq* **directConnect**: *eq* **category**: *eq* **features**: *ca*\n * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {'de' | 'false' | 'fi' | 'sv' | 'ru' | 'pt' | 'ko' | 'zh-TW' | 'en' | 'it' | 'fr' | 'zh-CN' | 'hu' | 'es' | 'cs' | 'ja' | 'pl' | 'da' | 'nl'} [locale] The locale to apply to the config. If no viable locale is given, it will default to \\"en\\"\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getConnectorList: function (filters, limit, offset, count, locale, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.getConnectorList(filters, limit, offset, count, locale, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n };\n};\nexports.ConnectorsBetaApiFp = ConnectorsBetaApiFp;\n/**\n * ConnectorsBetaApi - factory interface\n * @export\n */\nvar ConnectorsBetaApiFactory = function (configuration, basePath, axios) {\n var localVarFp = (0, exports.ConnectorsBetaApiFp)(configuration);\n return {\n /**\n * Fetches list of connectors that have \\'RELEASED\\' status using filtering and pagination. A token with ORG_ADMIN authority is required to call this API.\n * @summary Gets connector list\n * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **name**: *sw, co* **type**: *eq* **directConnect**: *eq* **category**: *eq* **features**: *ca*\n * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {'de' | 'false' | 'fi' | 'sv' | 'ru' | 'pt' | 'ko' | 'zh-TW' | 'en' | 'it' | 'fr' | 'zh-CN' | 'hu' | 'es' | 'cs' | 'ja' | 'pl' | 'da' | 'nl'} [locale] The locale to apply to the config. If no viable locale is given, it will default to \\"en\\"\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getConnectorList: function (filters, limit, offset, count, locale, axiosOptions) {\n return localVarFp.getConnectorList(filters, limit, offset, count, locale, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n };\n};\nexports.ConnectorsBetaApiFactory = ConnectorsBetaApiFactory;\n/**\n * ConnectorsBetaApi - object-oriented interface\n * @export\n * @class ConnectorsBetaApi\n * @extends {BaseAPI}\n */\nvar ConnectorsBetaApi = /** @class */ (function (_super) {\n __extends(ConnectorsBetaApi, _super);\n function ConnectorsBetaApi() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n * Fetches list of connectors that have \\'RELEASED\\' status using filtering and pagination. A token with ORG_ADMIN authority is required to call this API.\n * @summary Gets connector list\n * @param {ConnectorsBetaApiGetConnectorListRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof ConnectorsBetaApi\n */\n ConnectorsBetaApi.prototype.getConnectorList = function (requestParameters, axiosOptions) {\n var _this = this;\n if (requestParameters === void 0) { requestParameters = {}; }\n return (0, exports.ConnectorsBetaApiFp)(this.configuration).getConnectorList(requestParameters.filters, requestParameters.limit, requestParameters.offset, requestParameters.count, requestParameters.locale, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n return ConnectorsBetaApi;\n}(base_1.BaseAPI));\nexports.ConnectorsBetaApi = ConnectorsBetaApi;\n/**\n * CustomFormsBetaApi - axios parameter creator\n * @export\n */\nvar CustomFormsBetaApiAxiosParamCreator = function (configuration) {\n var _this = this;\n return {\n /**\n *\n * @summary Creates a form definition.\n * @param {CreateFormDefinitionRequestBeta} [body] Body is the request payload to create form definition request\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n createFormDefinition: function (body, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n localVarPath = \"/form-definitions\";\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n localVarHeaderParameter['Content-Type'] = 'application/json';\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(body, localVarRequestOptions, configuration);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n *\n * @summary Generate JSON Schema dynamically.\n * @param {FormDefinitionDynamicSchemaRequestBeta} [body] Body is the request payload to create a form definition dynamic schema\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n createFormDefinitionDynamicSchema: function (body, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n localVarPath = \"/form-definitions/forms-action-dynamic-schema\";\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n localVarHeaderParameter['Content-Type'] = 'application/json';\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(body, localVarRequestOptions, configuration);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n *\n * @summary Creates a form instance.\n * @param {CreateFormInstanceRequestBeta} [body] Body is the request payload to create a form instance\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n createFormInstance: function (body, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n localVarPath = \"/form-instances\";\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n localVarHeaderParameter['Content-Type'] = 'application/json';\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(body, localVarRequestOptions, configuration);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * Parameter `{formDefinitionID}` should match a form definition ID.\n * @summary Deletes a form definition.\n * @param {string} formDefinitionID Form definition ID\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n deleteFormDefinition: function (formDefinitionID, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'formDefinitionID' is not null or undefined\n (0, common_1.assertParamExists)('deleteFormDefinition', 'formDefinitionID', formDefinitionID);\n localVarPath = \"/form-definitions/{formDefinitionID}\"\n .replace(\"{\".concat(\"formDefinitionID\", \"}\"), encodeURIComponent(String(formDefinitionID)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'DELETE' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * No parameters required.\n * @summary List form definitions by tenant.\n * @param {number} [offset] Offset Integer specifying the offset of the first result from the beginning of the collection. The standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#paginating-results). The offset value is record-based, not page-based, and the index starts at 0.\n * @param {number} [limit] Limit Integer specifying the maximum number of records to return in a single API call. The standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#paginating-results). If it is not specified, a default limit is used.\n * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **name**: *eq, gt, sw, in* **description**: *eq, gt, sw, in* **created**: *eq, gt, sw, in* **modified**: *eq, gt, sw, in*\n * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **name, description, created, modified**\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n exportFormDefinitionsByTenant: function (offset, limit, filters, sorters, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n localVarPath = \"/form-definitions/export\";\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n if (offset !== undefined) {\n localVarQueryParameter['offset'] = offset;\n }\n if (limit !== undefined) {\n localVarQueryParameter['limit'] = limit;\n }\n if (filters !== undefined) {\n localVarQueryParameter['filters'] = filters;\n }\n if (sorters !== undefined) {\n localVarQueryParameter['sorters'] = sorters;\n }\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * Parameter `{formDefinitionID}` should match a form definition ID.\n * @summary Return a form definition.\n * @param {string} formDefinitionID Form definition ID\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getFormDefinitionByKey: function (formDefinitionID, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'formDefinitionID' is not null or undefined\n (0, common_1.assertParamExists)('getFormDefinitionByKey', 'formDefinitionID', formDefinitionID);\n localVarPath = \"/form-definitions/{formDefinitionID}\"\n .replace(\"{\".concat(\"formDefinitionID\", \"}\"), encodeURIComponent(String(formDefinitionID)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * Parameter `{formInstanceID}` should match a form instance ID.\n * @summary Returns a form instance.\n * @param {string} formInstanceID Form instance ID\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getFormInstanceByKey: function (formInstanceID, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'formInstanceID' is not null or undefined\n (0, common_1.assertParamExists)('getFormInstanceByKey', 'formInstanceID', formInstanceID);\n localVarPath = \"/form-instances/{formInstanceID}\"\n .replace(\"{\".concat(\"formInstanceID\", \"}\"), encodeURIComponent(String(formInstanceID)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n *\n * @summary Import form definitions from export.\n * @param {Array} [body] Body is the request payload to import form definitions\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n importFormDefinitions: function (body, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n localVarPath = \"/form-definitions/import\";\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n localVarHeaderParameter['Content-Type'] = 'application/json';\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(body, localVarRequestOptions, configuration);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * Parameter `{formDefinitionID}` should match a form definition ID.\n * @summary Patch a form definition.\n * @param {string} formDefinitionID Form definition ID\n * @param {Array<{ [key: string]: object; }>} [body] Body is the request payload to patch a form definition, check: https://jsonpatch.com\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n patchFormDefinition: function (formDefinitionID, body, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'formDefinitionID' is not null or undefined\n (0, common_1.assertParamExists)('patchFormDefinition', 'formDefinitionID', formDefinitionID);\n localVarPath = \"/form-definitions/{formDefinitionID}\"\n .replace(\"{\".concat(\"formDefinitionID\", \"}\"), encodeURIComponent(String(formDefinitionID)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'PATCH' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n localVarHeaderParameter['Content-Type'] = 'application/json';\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(body, localVarRequestOptions, configuration);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * Parameter `{formInstanceID}` should match a form instance ID.\n * @summary Patch a form instance.\n * @param {string} formInstanceID Form instance ID\n * @param {Array<{ [key: string]: object; }>} [body] Body is the request payload to patch a form instance, check: https://jsonpatch.com\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n patchFormInstance: function (formInstanceID, body, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'formInstanceID' is not null or undefined\n (0, common_1.assertParamExists)('patchFormInstance', 'formInstanceID', formInstanceID);\n localVarPath = \"/form-instances/{formInstanceID}\"\n .replace(\"{\".concat(\"formInstanceID\", \"}\"), encodeURIComponent(String(formInstanceID)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'PATCH' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n localVarHeaderParameter['Content-Type'] = 'application/json';\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(body, localVarRequestOptions, configuration);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * No parameters required.\n * @summary Export form definitions by tenant.\n * @param {number} [offset] Offset Integer specifying the offset of the first result from the beginning of the collection. The standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#paginating-results). The offset value is record-based, not page-based, and the index starts at 0.\n * @param {number} [limit] Limit Integer specifying the maximum number of records to return in a single API call. The standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#paginating-results). If it is not specified, a default limit is used.\n * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **name**: *eq, gt, sw, in* **description**: *eq, gt, sw, in* **created**: *eq, gt, sw, in* **modified**: *eq, gt, sw, in*\n * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **name, description, created, modified**\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n searchFormDefinitionsByTenant: function (offset, limit, filters, sorters, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n localVarPath = \"/form-definitions\";\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n if (offset !== undefined) {\n localVarQueryParameter['offset'] = offset;\n }\n if (limit !== undefined) {\n localVarQueryParameter['limit'] = limit;\n }\n if (filters !== undefined) {\n localVarQueryParameter['filters'] = filters;\n }\n if (sorters !== undefined) {\n localVarQueryParameter['sorters'] = sorters;\n }\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * Parameter `{formInstanceID}` should match a form instance ID. Parameter `{formElementID}` should match a form element ID at the data source configuration.\n * @summary Retrieves dynamic data by element.\n * @param {string} formInstanceID Form instance ID\n * @param {string} formElementID Form element ID\n * @param {number} [limit] Limit Integer specifying the maximum number of records to return in a single API call. The standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#paginating-results). If it is not specified, a default limit is used.\n * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **value**: *eq, ne, in* **label**: *eq, ne, in* **subLabel**: *eq, ne, in*\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n searchFormElementDataByElementID: function (formInstanceID, formElementID, limit, filters, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'formInstanceID' is not null or undefined\n (0, common_1.assertParamExists)('searchFormElementDataByElementID', 'formInstanceID', formInstanceID);\n // verify required parameter 'formElementID' is not null or undefined\n (0, common_1.assertParamExists)('searchFormElementDataByElementID', 'formElementID', formElementID);\n localVarPath = \"/form-instances/{formInstanceID}/data-source/{formElementID}\"\n .replace(\"{\".concat(\"formInstanceID\", \"}\"), encodeURIComponent(String(formInstanceID)))\n .replace(\"{\".concat(\"formElementID\", \"}\"), encodeURIComponent(String(formElementID)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n if (limit !== undefined) {\n localVarQueryParameter['limit'] = limit;\n }\n if (filters !== undefined) {\n localVarQueryParameter['filters'] = filters;\n }\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * No parameters required.\n * @summary List form instances by tenant.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n searchFormInstancesByTenant: function (axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n localVarPath = \"/form-instances\";\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * No parameters required.\n * @summary List predefined select options.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n searchPreDefinedSelectOptions: function (axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n localVarPath = \"/form-definitions/predefined-select-options\";\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n *\n * @summary Preview form definition data source.\n * @param {string} formDefinitionID Form definition ID\n * @param {number} [limit] Limit Integer specifying the maximum number of records to return in a single API call. The standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#paginating-results). If it is not specified, a default limit is used.\n * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **value**: *eq, gt, sw, in* **label**: *eq, gt, sw, in* **subLabel**: *eq, gt, sw, in*\n * @param {string} [query] Query String specifying to query against\n * @param {FormElementPreviewRequestBeta} [formElementPreviewRequestBeta] Body is the request payload to create a form definition dynamic schema\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n showPreviewDataSource: function (formDefinitionID, limit, filters, query, formElementPreviewRequestBeta, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'formDefinitionID' is not null or undefined\n (0, common_1.assertParamExists)('showPreviewDataSource', 'formDefinitionID', formDefinitionID);\n localVarPath = \"/form-definitions/{formDefinitionID}/data-source\"\n .replace(\"{\".concat(\"formDefinitionID\", \"}\"), encodeURIComponent(String(formDefinitionID)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n if (limit !== undefined) {\n localVarQueryParameter['limit'] = limit;\n }\n if (filters !== undefined) {\n localVarQueryParameter['filters'] = filters;\n }\n if (query !== undefined) {\n localVarQueryParameter['query'] = query;\n }\n localVarHeaderParameter['Content-Type'] = 'application/json';\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(formElementPreviewRequestBeta, localVarRequestOptions, configuration);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n };\n};\nexports.CustomFormsBetaApiAxiosParamCreator = CustomFormsBetaApiAxiosParamCreator;\n/**\n * CustomFormsBetaApi - functional programming interface\n * @export\n */\nvar CustomFormsBetaApiFp = function (configuration) {\n var localVarAxiosParamCreator = (0, exports.CustomFormsBetaApiAxiosParamCreator)(configuration);\n return {\n /**\n *\n * @summary Creates a form definition.\n * @param {CreateFormDefinitionRequestBeta} [body] Body is the request payload to create form definition request\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n createFormDefinition: function (body, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.createFormDefinition(body, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n *\n * @summary Generate JSON Schema dynamically.\n * @param {FormDefinitionDynamicSchemaRequestBeta} [body] Body is the request payload to create a form definition dynamic schema\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n createFormDefinitionDynamicSchema: function (body, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.createFormDefinitionDynamicSchema(body, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n *\n * @summary Creates a form instance.\n * @param {CreateFormInstanceRequestBeta} [body] Body is the request payload to create a form instance\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n createFormInstance: function (body, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.createFormInstance(body, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * Parameter `{formDefinitionID}` should match a form definition ID.\n * @summary Deletes a form definition.\n * @param {string} formDefinitionID Form definition ID\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n deleteFormDefinition: function (formDefinitionID, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.deleteFormDefinition(formDefinitionID, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * No parameters required.\n * @summary List form definitions by tenant.\n * @param {number} [offset] Offset Integer specifying the offset of the first result from the beginning of the collection. The standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#paginating-results). The offset value is record-based, not page-based, and the index starts at 0.\n * @param {number} [limit] Limit Integer specifying the maximum number of records to return in a single API call. The standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#paginating-results). If it is not specified, a default limit is used.\n * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **name**: *eq, gt, sw, in* **description**: *eq, gt, sw, in* **created**: *eq, gt, sw, in* **modified**: *eq, gt, sw, in*\n * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **name, description, created, modified**\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n exportFormDefinitionsByTenant: function (offset, limit, filters, sorters, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.exportFormDefinitionsByTenant(offset, limit, filters, sorters, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * Parameter `{formDefinitionID}` should match a form definition ID.\n * @summary Return a form definition.\n * @param {string} formDefinitionID Form definition ID\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getFormDefinitionByKey: function (formDefinitionID, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.getFormDefinitionByKey(formDefinitionID, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * Parameter `{formInstanceID}` should match a form instance ID.\n * @summary Returns a form instance.\n * @param {string} formInstanceID Form instance ID\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getFormInstanceByKey: function (formInstanceID, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.getFormInstanceByKey(formInstanceID, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n *\n * @summary Import form definitions from export.\n * @param {Array} [body] Body is the request payload to import form definitions\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n importFormDefinitions: function (body, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.importFormDefinitions(body, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * Parameter `{formDefinitionID}` should match a form definition ID.\n * @summary Patch a form definition.\n * @param {string} formDefinitionID Form definition ID\n * @param {Array<{ [key: string]: object; }>} [body] Body is the request payload to patch a form definition, check: https://jsonpatch.com\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n patchFormDefinition: function (formDefinitionID, body, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.patchFormDefinition(formDefinitionID, body, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * Parameter `{formInstanceID}` should match a form instance ID.\n * @summary Patch a form instance.\n * @param {string} formInstanceID Form instance ID\n * @param {Array<{ [key: string]: object; }>} [body] Body is the request payload to patch a form instance, check: https://jsonpatch.com\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n patchFormInstance: function (formInstanceID, body, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.patchFormInstance(formInstanceID, body, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * No parameters required.\n * @summary Export form definitions by tenant.\n * @param {number} [offset] Offset Integer specifying the offset of the first result from the beginning of the collection. The standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#paginating-results). The offset value is record-based, not page-based, and the index starts at 0.\n * @param {number} [limit] Limit Integer specifying the maximum number of records to return in a single API call. The standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#paginating-results). If it is not specified, a default limit is used.\n * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **name**: *eq, gt, sw, in* **description**: *eq, gt, sw, in* **created**: *eq, gt, sw, in* **modified**: *eq, gt, sw, in*\n * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **name, description, created, modified**\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n searchFormDefinitionsByTenant: function (offset, limit, filters, sorters, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.searchFormDefinitionsByTenant(offset, limit, filters, sorters, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * Parameter `{formInstanceID}` should match a form instance ID. Parameter `{formElementID}` should match a form element ID at the data source configuration.\n * @summary Retrieves dynamic data by element.\n * @param {string} formInstanceID Form instance ID\n * @param {string} formElementID Form element ID\n * @param {number} [limit] Limit Integer specifying the maximum number of records to return in a single API call. The standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#paginating-results). If it is not specified, a default limit is used.\n * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **value**: *eq, ne, in* **label**: *eq, ne, in* **subLabel**: *eq, ne, in*\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n searchFormElementDataByElementID: function (formInstanceID, formElementID, limit, filters, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.searchFormElementDataByElementID(formInstanceID, formElementID, limit, filters, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * No parameters required.\n * @summary List form instances by tenant.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n searchFormInstancesByTenant: function (axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.searchFormInstancesByTenant(axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * No parameters required.\n * @summary List predefined select options.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n searchPreDefinedSelectOptions: function (axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.searchPreDefinedSelectOptions(axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n *\n * @summary Preview form definition data source.\n * @param {string} formDefinitionID Form definition ID\n * @param {number} [limit] Limit Integer specifying the maximum number of records to return in a single API call. The standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#paginating-results). If it is not specified, a default limit is used.\n * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **value**: *eq, gt, sw, in* **label**: *eq, gt, sw, in* **subLabel**: *eq, gt, sw, in*\n * @param {string} [query] Query String specifying to query against\n * @param {FormElementPreviewRequestBeta} [formElementPreviewRequestBeta] Body is the request payload to create a form definition dynamic schema\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n showPreviewDataSource: function (formDefinitionID, limit, filters, query, formElementPreviewRequestBeta, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.showPreviewDataSource(formDefinitionID, limit, filters, query, formElementPreviewRequestBeta, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n };\n};\nexports.CustomFormsBetaApiFp = CustomFormsBetaApiFp;\n/**\n * CustomFormsBetaApi - factory interface\n * @export\n */\nvar CustomFormsBetaApiFactory = function (configuration, basePath, axios) {\n var localVarFp = (0, exports.CustomFormsBetaApiFp)(configuration);\n return {\n /**\n *\n * @summary Creates a form definition.\n * @param {CreateFormDefinitionRequestBeta} [body] Body is the request payload to create form definition request\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n createFormDefinition: function (body, axiosOptions) {\n return localVarFp.createFormDefinition(body, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n *\n * @summary Generate JSON Schema dynamically.\n * @param {FormDefinitionDynamicSchemaRequestBeta} [body] Body is the request payload to create a form definition dynamic schema\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n createFormDefinitionDynamicSchema: function (body, axiosOptions) {\n return localVarFp.createFormDefinitionDynamicSchema(body, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n *\n * @summary Creates a form instance.\n * @param {CreateFormInstanceRequestBeta} [body] Body is the request payload to create a form instance\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n createFormInstance: function (body, axiosOptions) {\n return localVarFp.createFormInstance(body, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * Parameter `{formDefinitionID}` should match a form definition ID.\n * @summary Deletes a form definition.\n * @param {string} formDefinitionID Form definition ID\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n deleteFormDefinition: function (formDefinitionID, axiosOptions) {\n return localVarFp.deleteFormDefinition(formDefinitionID, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * No parameters required.\n * @summary List form definitions by tenant.\n * @param {number} [offset] Offset Integer specifying the offset of the first result from the beginning of the collection. The standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#paginating-results). The offset value is record-based, not page-based, and the index starts at 0.\n * @param {number} [limit] Limit Integer specifying the maximum number of records to return in a single API call. The standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#paginating-results). If it is not specified, a default limit is used.\n * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **name**: *eq, gt, sw, in* **description**: *eq, gt, sw, in* **created**: *eq, gt, sw, in* **modified**: *eq, gt, sw, in*\n * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **name, description, created, modified**\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n exportFormDefinitionsByTenant: function (offset, limit, filters, sorters, axiosOptions) {\n return localVarFp.exportFormDefinitionsByTenant(offset, limit, filters, sorters, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * Parameter `{formDefinitionID}` should match a form definition ID.\n * @summary Return a form definition.\n * @param {string} formDefinitionID Form definition ID\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getFormDefinitionByKey: function (formDefinitionID, axiosOptions) {\n return localVarFp.getFormDefinitionByKey(formDefinitionID, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * Parameter `{formInstanceID}` should match a form instance ID.\n * @summary Returns a form instance.\n * @param {string} formInstanceID Form instance ID\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getFormInstanceByKey: function (formInstanceID, axiosOptions) {\n return localVarFp.getFormInstanceByKey(formInstanceID, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n *\n * @summary Import form definitions from export.\n * @param {Array} [body] Body is the request payload to import form definitions\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n importFormDefinitions: function (body, axiosOptions) {\n return localVarFp.importFormDefinitions(body, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * Parameter `{formDefinitionID}` should match a form definition ID.\n * @summary Patch a form definition.\n * @param {string} formDefinitionID Form definition ID\n * @param {Array<{ [key: string]: object; }>} [body] Body is the request payload to patch a form definition, check: https://jsonpatch.com\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n patchFormDefinition: function (formDefinitionID, body, axiosOptions) {\n return localVarFp.patchFormDefinition(formDefinitionID, body, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * Parameter `{formInstanceID}` should match a form instance ID.\n * @summary Patch a form instance.\n * @param {string} formInstanceID Form instance ID\n * @param {Array<{ [key: string]: object; }>} [body] Body is the request payload to patch a form instance, check: https://jsonpatch.com\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n patchFormInstance: function (formInstanceID, body, axiosOptions) {\n return localVarFp.patchFormInstance(formInstanceID, body, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * No parameters required.\n * @summary Export form definitions by tenant.\n * @param {number} [offset] Offset Integer specifying the offset of the first result from the beginning of the collection. The standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#paginating-results). The offset value is record-based, not page-based, and the index starts at 0.\n * @param {number} [limit] Limit Integer specifying the maximum number of records to return in a single API call. The standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#paginating-results). If it is not specified, a default limit is used.\n * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **name**: *eq, gt, sw, in* **description**: *eq, gt, sw, in* **created**: *eq, gt, sw, in* **modified**: *eq, gt, sw, in*\n * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **name, description, created, modified**\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n searchFormDefinitionsByTenant: function (offset, limit, filters, sorters, axiosOptions) {\n return localVarFp.searchFormDefinitionsByTenant(offset, limit, filters, sorters, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * Parameter `{formInstanceID}` should match a form instance ID. Parameter `{formElementID}` should match a form element ID at the data source configuration.\n * @summary Retrieves dynamic data by element.\n * @param {string} formInstanceID Form instance ID\n * @param {string} formElementID Form element ID\n * @param {number} [limit] Limit Integer specifying the maximum number of records to return in a single API call. The standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#paginating-results). If it is not specified, a default limit is used.\n * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **value**: *eq, ne, in* **label**: *eq, ne, in* **subLabel**: *eq, ne, in*\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n searchFormElementDataByElementID: function (formInstanceID, formElementID, limit, filters, axiosOptions) {\n return localVarFp.searchFormElementDataByElementID(formInstanceID, formElementID, limit, filters, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * No parameters required.\n * @summary List form instances by tenant.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n searchFormInstancesByTenant: function (axiosOptions) {\n return localVarFp.searchFormInstancesByTenant(axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * No parameters required.\n * @summary List predefined select options.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n searchPreDefinedSelectOptions: function (axiosOptions) {\n return localVarFp.searchPreDefinedSelectOptions(axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n *\n * @summary Preview form definition data source.\n * @param {string} formDefinitionID Form definition ID\n * @param {number} [limit] Limit Integer specifying the maximum number of records to return in a single API call. The standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#paginating-results). If it is not specified, a default limit is used.\n * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **value**: *eq, gt, sw, in* **label**: *eq, gt, sw, in* **subLabel**: *eq, gt, sw, in*\n * @param {string} [query] Query String specifying to query against\n * @param {FormElementPreviewRequestBeta} [formElementPreviewRequestBeta] Body is the request payload to create a form definition dynamic schema\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n showPreviewDataSource: function (formDefinitionID, limit, filters, query, formElementPreviewRequestBeta, axiosOptions) {\n return localVarFp.showPreviewDataSource(formDefinitionID, limit, filters, query, formElementPreviewRequestBeta, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n };\n};\nexports.CustomFormsBetaApiFactory = CustomFormsBetaApiFactory;\n/**\n * CustomFormsBetaApi - object-oriented interface\n * @export\n * @class CustomFormsBetaApi\n * @extends {BaseAPI}\n */\nvar CustomFormsBetaApi = /** @class */ (function (_super) {\n __extends(CustomFormsBetaApi, _super);\n function CustomFormsBetaApi() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n *\n * @summary Creates a form definition.\n * @param {CustomFormsBetaApiCreateFormDefinitionRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof CustomFormsBetaApi\n */\n CustomFormsBetaApi.prototype.createFormDefinition = function (requestParameters, axiosOptions) {\n var _this = this;\n if (requestParameters === void 0) { requestParameters = {}; }\n return (0, exports.CustomFormsBetaApiFp)(this.configuration).createFormDefinition(requestParameters.body, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n *\n * @summary Generate JSON Schema dynamically.\n * @param {CustomFormsBetaApiCreateFormDefinitionDynamicSchemaRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof CustomFormsBetaApi\n */\n CustomFormsBetaApi.prototype.createFormDefinitionDynamicSchema = function (requestParameters, axiosOptions) {\n var _this = this;\n if (requestParameters === void 0) { requestParameters = {}; }\n return (0, exports.CustomFormsBetaApiFp)(this.configuration).createFormDefinitionDynamicSchema(requestParameters.body, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n *\n * @summary Creates a form instance.\n * @param {CustomFormsBetaApiCreateFormInstanceRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof CustomFormsBetaApi\n */\n CustomFormsBetaApi.prototype.createFormInstance = function (requestParameters, axiosOptions) {\n var _this = this;\n if (requestParameters === void 0) { requestParameters = {}; }\n return (0, exports.CustomFormsBetaApiFp)(this.configuration).createFormInstance(requestParameters.body, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * Parameter `{formDefinitionID}` should match a form definition ID.\n * @summary Deletes a form definition.\n * @param {CustomFormsBetaApiDeleteFormDefinitionRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof CustomFormsBetaApi\n */\n CustomFormsBetaApi.prototype.deleteFormDefinition = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.CustomFormsBetaApiFp)(this.configuration).deleteFormDefinition(requestParameters.formDefinitionID, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * No parameters required.\n * @summary List form definitions by tenant.\n * @param {CustomFormsBetaApiExportFormDefinitionsByTenantRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof CustomFormsBetaApi\n */\n CustomFormsBetaApi.prototype.exportFormDefinitionsByTenant = function (requestParameters, axiosOptions) {\n var _this = this;\n if (requestParameters === void 0) { requestParameters = {}; }\n return (0, exports.CustomFormsBetaApiFp)(this.configuration).exportFormDefinitionsByTenant(requestParameters.offset, requestParameters.limit, requestParameters.filters, requestParameters.sorters, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * Parameter `{formDefinitionID}` should match a form definition ID.\n * @summary Return a form definition.\n * @param {CustomFormsBetaApiGetFormDefinitionByKeyRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof CustomFormsBetaApi\n */\n CustomFormsBetaApi.prototype.getFormDefinitionByKey = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.CustomFormsBetaApiFp)(this.configuration).getFormDefinitionByKey(requestParameters.formDefinitionID, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * Parameter `{formInstanceID}` should match a form instance ID.\n * @summary Returns a form instance.\n * @param {CustomFormsBetaApiGetFormInstanceByKeyRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof CustomFormsBetaApi\n */\n CustomFormsBetaApi.prototype.getFormInstanceByKey = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.CustomFormsBetaApiFp)(this.configuration).getFormInstanceByKey(requestParameters.formInstanceID, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n *\n * @summary Import form definitions from export.\n * @param {CustomFormsBetaApiImportFormDefinitionsRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof CustomFormsBetaApi\n */\n CustomFormsBetaApi.prototype.importFormDefinitions = function (requestParameters, axiosOptions) {\n var _this = this;\n if (requestParameters === void 0) { requestParameters = {}; }\n return (0, exports.CustomFormsBetaApiFp)(this.configuration).importFormDefinitions(requestParameters.body, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * Parameter `{formDefinitionID}` should match a form definition ID.\n * @summary Patch a form definition.\n * @param {CustomFormsBetaApiPatchFormDefinitionRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof CustomFormsBetaApi\n */\n CustomFormsBetaApi.prototype.patchFormDefinition = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.CustomFormsBetaApiFp)(this.configuration).patchFormDefinition(requestParameters.formDefinitionID, requestParameters.body, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * Parameter `{formInstanceID}` should match a form instance ID.\n * @summary Patch a form instance.\n * @param {CustomFormsBetaApiPatchFormInstanceRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof CustomFormsBetaApi\n */\n CustomFormsBetaApi.prototype.patchFormInstance = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.CustomFormsBetaApiFp)(this.configuration).patchFormInstance(requestParameters.formInstanceID, requestParameters.body, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * No parameters required.\n * @summary Export form definitions by tenant.\n * @param {CustomFormsBetaApiSearchFormDefinitionsByTenantRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof CustomFormsBetaApi\n */\n CustomFormsBetaApi.prototype.searchFormDefinitionsByTenant = function (requestParameters, axiosOptions) {\n var _this = this;\n if (requestParameters === void 0) { requestParameters = {}; }\n return (0, exports.CustomFormsBetaApiFp)(this.configuration).searchFormDefinitionsByTenant(requestParameters.offset, requestParameters.limit, requestParameters.filters, requestParameters.sorters, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * Parameter `{formInstanceID}` should match a form instance ID. Parameter `{formElementID}` should match a form element ID at the data source configuration.\n * @summary Retrieves dynamic data by element.\n * @param {CustomFormsBetaApiSearchFormElementDataByElementIDRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof CustomFormsBetaApi\n */\n CustomFormsBetaApi.prototype.searchFormElementDataByElementID = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.CustomFormsBetaApiFp)(this.configuration).searchFormElementDataByElementID(requestParameters.formInstanceID, requestParameters.formElementID, requestParameters.limit, requestParameters.filters, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * No parameters required.\n * @summary List form instances by tenant.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof CustomFormsBetaApi\n */\n CustomFormsBetaApi.prototype.searchFormInstancesByTenant = function (axiosOptions) {\n var _this = this;\n return (0, exports.CustomFormsBetaApiFp)(this.configuration).searchFormInstancesByTenant(axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * No parameters required.\n * @summary List predefined select options.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof CustomFormsBetaApi\n */\n CustomFormsBetaApi.prototype.searchPreDefinedSelectOptions = function (axiosOptions) {\n var _this = this;\n return (0, exports.CustomFormsBetaApiFp)(this.configuration).searchPreDefinedSelectOptions(axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n *\n * @summary Preview form definition data source.\n * @param {CustomFormsBetaApiShowPreviewDataSourceRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof CustomFormsBetaApi\n */\n CustomFormsBetaApi.prototype.showPreviewDataSource = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.CustomFormsBetaApiFp)(this.configuration).showPreviewDataSource(requestParameters.formDefinitionID, requestParameters.limit, requestParameters.filters, requestParameters.query, requestParameters.formElementPreviewRequestBeta, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n return CustomFormsBetaApi;\n}(base_1.BaseAPI));\nexports.CustomFormsBetaApi = CustomFormsBetaApi;\n/**\n * CustomPasswordInstructionsBetaApi - axios parameter creator\n * @export\n */\nvar CustomPasswordInstructionsBetaApiAxiosParamCreator = function (configuration) {\n var _this = this;\n return {\n /**\n * This API creates the custom password instructions for the specified page ID. A token with ORG_ADMIN authority is required to call this API.\n * @summary Create Custom Password Instructions\n * @param {CustomPasswordInstructionBeta} customPasswordInstructionBeta\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n createCustomPasswordInstructions: function (customPasswordInstructionBeta, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'customPasswordInstructionBeta' is not null or undefined\n (0, common_1.assertParamExists)('createCustomPasswordInstructions', 'customPasswordInstructionBeta', customPasswordInstructionBeta);\n localVarPath = \"/custom-password-instructions\";\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n localVarHeaderParameter['Content-Type'] = 'application/json';\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(customPasswordInstructionBeta, localVarRequestOptions, configuration);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This API delete the custom password instructions for the specified page ID. A token with ORG_ADMIN authority is required to call this API.\n * @summary Delete Custom Password Instructions by page ID\n * @param {'change-password:enter-password' | 'change-password:finish' | 'flow-selection:select' | 'forget-username:user-email' | 'mfa:enter-code' | 'mfa:enter-kba' | 'mfa:select' | 'reset-password:enter-password' | 'reset-password:enter-username' | 'reset-password:finish' | 'unlock-account:enter-username' | 'unlock-account:finish'} pageId The page ID of custom password instructions to delete.\n * @param {string} [locale] The locale for the custom instructions, a BCP47 language tag. The default value is \\\\\\"default\\\\\\".\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n deleteCustomPasswordInstructions: function (pageId, locale, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'pageId' is not null or undefined\n (0, common_1.assertParamExists)('deleteCustomPasswordInstructions', 'pageId', pageId);\n localVarPath = \"/custom-password-instructions/{pageId}\"\n .replace(\"{\".concat(\"pageId\", \"}\"), encodeURIComponent(String(pageId)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'DELETE' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n if (locale !== undefined) {\n localVarQueryParameter['locale'] = locale;\n }\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This API returns the custom password instructions for the specified page ID. A token with ORG_ADMIN authority is required to call this API.\n * @summary Get Custom Password Instructions by Page ID\n * @param {'change-password:enter-password' | 'change-password:finish' | 'flow-selection:select' | 'forget-username:user-email' | 'mfa:enter-code' | 'mfa:enter-kba' | 'mfa:select' | 'reset-password:enter-password' | 'reset-password:enter-username' | 'reset-password:finish' | 'unlock-account:enter-username' | 'unlock-account:finish'} pageId The page ID of custom password instructions to query.\n * @param {string} [locale] The locale for the custom instructions, a BCP47 language tag. The default value is \\\\\\"default\\\\\\".\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getCustomPasswordInstructions: function (pageId, locale, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'pageId' is not null or undefined\n (0, common_1.assertParamExists)('getCustomPasswordInstructions', 'pageId', pageId);\n localVarPath = \"/custom-password-instructions/{pageId}\"\n .replace(\"{\".concat(\"pageId\", \"}\"), encodeURIComponent(String(pageId)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n if (locale !== undefined) {\n localVarQueryParameter['locale'] = locale;\n }\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n };\n};\nexports.CustomPasswordInstructionsBetaApiAxiosParamCreator = CustomPasswordInstructionsBetaApiAxiosParamCreator;\n/**\n * CustomPasswordInstructionsBetaApi - functional programming interface\n * @export\n */\nvar CustomPasswordInstructionsBetaApiFp = function (configuration) {\n var localVarAxiosParamCreator = (0, exports.CustomPasswordInstructionsBetaApiAxiosParamCreator)(configuration);\n return {\n /**\n * This API creates the custom password instructions for the specified page ID. A token with ORG_ADMIN authority is required to call this API.\n * @summary Create Custom Password Instructions\n * @param {CustomPasswordInstructionBeta} customPasswordInstructionBeta\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n createCustomPasswordInstructions: function (customPasswordInstructionBeta, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.createCustomPasswordInstructions(customPasswordInstructionBeta, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This API delete the custom password instructions for the specified page ID. A token with ORG_ADMIN authority is required to call this API.\n * @summary Delete Custom Password Instructions by page ID\n * @param {'change-password:enter-password' | 'change-password:finish' | 'flow-selection:select' | 'forget-username:user-email' | 'mfa:enter-code' | 'mfa:enter-kba' | 'mfa:select' | 'reset-password:enter-password' | 'reset-password:enter-username' | 'reset-password:finish' | 'unlock-account:enter-username' | 'unlock-account:finish'} pageId The page ID of custom password instructions to delete.\n * @param {string} [locale] The locale for the custom instructions, a BCP47 language tag. The default value is \\\\\\"default\\\\\\".\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n deleteCustomPasswordInstructions: function (pageId, locale, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.deleteCustomPasswordInstructions(pageId, locale, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This API returns the custom password instructions for the specified page ID. A token with ORG_ADMIN authority is required to call this API.\n * @summary Get Custom Password Instructions by Page ID\n * @param {'change-password:enter-password' | 'change-password:finish' | 'flow-selection:select' | 'forget-username:user-email' | 'mfa:enter-code' | 'mfa:enter-kba' | 'mfa:select' | 'reset-password:enter-password' | 'reset-password:enter-username' | 'reset-password:finish' | 'unlock-account:enter-username' | 'unlock-account:finish'} pageId The page ID of custom password instructions to query.\n * @param {string} [locale] The locale for the custom instructions, a BCP47 language tag. The default value is \\\\\\"default\\\\\\".\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getCustomPasswordInstructions: function (pageId, locale, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.getCustomPasswordInstructions(pageId, locale, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n };\n};\nexports.CustomPasswordInstructionsBetaApiFp = CustomPasswordInstructionsBetaApiFp;\n/**\n * CustomPasswordInstructionsBetaApi - factory interface\n * @export\n */\nvar CustomPasswordInstructionsBetaApiFactory = function (configuration, basePath, axios) {\n var localVarFp = (0, exports.CustomPasswordInstructionsBetaApiFp)(configuration);\n return {\n /**\n * This API creates the custom password instructions for the specified page ID. A token with ORG_ADMIN authority is required to call this API.\n * @summary Create Custom Password Instructions\n * @param {CustomPasswordInstructionBeta} customPasswordInstructionBeta\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n createCustomPasswordInstructions: function (customPasswordInstructionBeta, axiosOptions) {\n return localVarFp.createCustomPasswordInstructions(customPasswordInstructionBeta, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This API delete the custom password instructions for the specified page ID. A token with ORG_ADMIN authority is required to call this API.\n * @summary Delete Custom Password Instructions by page ID\n * @param {'change-password:enter-password' | 'change-password:finish' | 'flow-selection:select' | 'forget-username:user-email' | 'mfa:enter-code' | 'mfa:enter-kba' | 'mfa:select' | 'reset-password:enter-password' | 'reset-password:enter-username' | 'reset-password:finish' | 'unlock-account:enter-username' | 'unlock-account:finish'} pageId The page ID of custom password instructions to delete.\n * @param {string} [locale] The locale for the custom instructions, a BCP47 language tag. The default value is \\\\\\"default\\\\\\".\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n deleteCustomPasswordInstructions: function (pageId, locale, axiosOptions) {\n return localVarFp.deleteCustomPasswordInstructions(pageId, locale, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This API returns the custom password instructions for the specified page ID. A token with ORG_ADMIN authority is required to call this API.\n * @summary Get Custom Password Instructions by Page ID\n * @param {'change-password:enter-password' | 'change-password:finish' | 'flow-selection:select' | 'forget-username:user-email' | 'mfa:enter-code' | 'mfa:enter-kba' | 'mfa:select' | 'reset-password:enter-password' | 'reset-password:enter-username' | 'reset-password:finish' | 'unlock-account:enter-username' | 'unlock-account:finish'} pageId The page ID of custom password instructions to query.\n * @param {string} [locale] The locale for the custom instructions, a BCP47 language tag. The default value is \\\\\\"default\\\\\\".\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getCustomPasswordInstructions: function (pageId, locale, axiosOptions) {\n return localVarFp.getCustomPasswordInstructions(pageId, locale, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n };\n};\nexports.CustomPasswordInstructionsBetaApiFactory = CustomPasswordInstructionsBetaApiFactory;\n/**\n * CustomPasswordInstructionsBetaApi - object-oriented interface\n * @export\n * @class CustomPasswordInstructionsBetaApi\n * @extends {BaseAPI}\n */\nvar CustomPasswordInstructionsBetaApi = /** @class */ (function (_super) {\n __extends(CustomPasswordInstructionsBetaApi, _super);\n function CustomPasswordInstructionsBetaApi() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n * This API creates the custom password instructions for the specified page ID. A token with ORG_ADMIN authority is required to call this API.\n * @summary Create Custom Password Instructions\n * @param {CustomPasswordInstructionsBetaApiCreateCustomPasswordInstructionsRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof CustomPasswordInstructionsBetaApi\n */\n CustomPasswordInstructionsBetaApi.prototype.createCustomPasswordInstructions = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.CustomPasswordInstructionsBetaApiFp)(this.configuration).createCustomPasswordInstructions(requestParameters.customPasswordInstructionBeta, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This API delete the custom password instructions for the specified page ID. A token with ORG_ADMIN authority is required to call this API.\n * @summary Delete Custom Password Instructions by page ID\n * @param {CustomPasswordInstructionsBetaApiDeleteCustomPasswordInstructionsRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof CustomPasswordInstructionsBetaApi\n */\n CustomPasswordInstructionsBetaApi.prototype.deleteCustomPasswordInstructions = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.CustomPasswordInstructionsBetaApiFp)(this.configuration).deleteCustomPasswordInstructions(requestParameters.pageId, requestParameters.locale, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This API returns the custom password instructions for the specified page ID. A token with ORG_ADMIN authority is required to call this API.\n * @summary Get Custom Password Instructions by Page ID\n * @param {CustomPasswordInstructionsBetaApiGetCustomPasswordInstructionsRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof CustomPasswordInstructionsBetaApi\n */\n CustomPasswordInstructionsBetaApi.prototype.getCustomPasswordInstructions = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.CustomPasswordInstructionsBetaApiFp)(this.configuration).getCustomPasswordInstructions(requestParameters.pageId, requestParameters.locale, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n return CustomPasswordInstructionsBetaApi;\n}(base_1.BaseAPI));\nexports.CustomPasswordInstructionsBetaApi = CustomPasswordInstructionsBetaApi;\n/**\n * EntitlementsBetaApi - axios parameter creator\n * @export\n */\nvar EntitlementsBetaApiAxiosParamCreator = function (configuration) {\n var _this = this;\n return {\n /**\n * This API returns an entitlement by its ID.\n * @summary Get an entitlement\n * @param {string} id The entitlement ID\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getEntitlement: function (id, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'id' is not null or undefined\n (0, common_1.assertParamExists)('getEntitlement', 'id', id);\n localVarPath = \"/entitlements/{id}\"\n .replace(\"{\".concat(\"id\", \"}\"), encodeURIComponent(String(id)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This API returns the entitlement request config for a specified entitlement.\n * @summary Get Entitlement Request Config\n * @param {string} id Entitlement Id\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getEntitlementRequestConfig: function (id, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'id' is not null or undefined\n (0, common_1.assertParamExists)('getEntitlementRequestConfig', 'id', id);\n localVarPath = \"/entitlements/{id}/entitlement-request-config\"\n .replace(\"{\".concat(\"id\", \"}\"), encodeURIComponent(String(id)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This API returns a list of all child entitlements of a given entitlement.\n * @summary List of entitlements children\n * @param {string} id Entitlement Id\n * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **id, name, created, modified, type, attribute, value, source.id**\n * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **id**: *eq, in* **name**: *eq, in, sw* **type**: *eq, in* **attribute**: *eq, in* **value**: *eq, in, sw* **source.id**: *eq, in* **requestable**: *eq* **created**: *gt, lt, ge, le* **modified**: *gt, lt, ge, le*\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n listEntitlementChildren: function (id, limit, offset, count, sorters, filters, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'id' is not null or undefined\n (0, common_1.assertParamExists)('listEntitlementChildren', 'id', id);\n localVarPath = \"/entitlements/{id}/children\"\n .replace(\"{\".concat(\"id\", \"}\"), encodeURIComponent(String(id)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n if (limit !== undefined) {\n localVarQueryParameter['limit'] = limit;\n }\n if (offset !== undefined) {\n localVarQueryParameter['offset'] = offset;\n }\n if (count !== undefined) {\n localVarQueryParameter['count'] = count;\n }\n if (sorters !== undefined) {\n localVarQueryParameter['sorters'] = sorters;\n }\n if (filters !== undefined) {\n localVarQueryParameter['filters'] = filters;\n }\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This API returns a list of all parent entitlements of a given entitlement.\n * @summary List of entitlements parents\n * @param {string} id Entitlement Id\n * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **id, name, created, modified, type, attribute, value, source.id**\n * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **id**: *eq, in* **name**: *eq, in, sw* **type**: *eq, in* **attribute**: *eq, in* **value**: *eq, in, sw* **source.id**: *eq, in* **requestable**: *eq* **created**: *gt, lt, ge, le* **modified**: *gt, lt, ge, le*\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n listEntitlementParents: function (id, limit, offset, count, sorters, filters, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'id' is not null or undefined\n (0, common_1.assertParamExists)('listEntitlementParents', 'id', id);\n localVarPath = \"/entitlements/{id}/parents\"\n .replace(\"{\".concat(\"id\", \"}\"), encodeURIComponent(String(id)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n if (limit !== undefined) {\n localVarQueryParameter['limit'] = limit;\n }\n if (offset !== undefined) {\n localVarQueryParameter['offset'] = offset;\n }\n if (count !== undefined) {\n localVarQueryParameter['count'] = count;\n }\n if (sorters !== undefined) {\n localVarQueryParameter['sorters'] = sorters;\n }\n if (filters !== undefined) {\n localVarQueryParameter['filters'] = filters;\n }\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This API returns a list of entitlements. This API can be used in one of the two following ways: either getting entitlements for a specific **account-id**, or getting via use of **filters** (those two options are exclusive). Any authenticated token can call this API.\n * @summary Gets a list of entitlements.\n * @param {string} [accountId] The account ID. If specified, returns only entitlements associated with the given Account. Cannot be specified with the **filters**, **segmented-for-identity**, **for-segment-ids**, or **include-unsegmented** param(s).\n * @param {string} [segmentedForIdentity] If present and not empty, additionally filters Entitlements to those which are assigned to the Segment(s) which are visible to the Identity with the specified ID. By convention, the value **me** can stand in for the current user\\'s Identity ID. Cannot be specified with the **account-id** or **for-segment-ids** param(s). It is also illegal to specify a value that refers to a different user\\'s Identity.\n * @param {string} [forSegmentIds] If present and not empty, additionally filters Access Profiles to those which are assigned to the Segment(s) with the specified IDs. Cannot be specified with the **account-id** or **segmented-for-identity** param(s).\n * @param {boolean} [includeUnsegmented] Whether or not the response list should contain unsegmented Entitlements. If **for-segment-ids** and **segmented-for-identity** are both absent or empty, specifying **include-unsegmented=false** results in an error.\n * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **id, name, created, modified, type, attribute, value, source.id, requestable**\n * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **id**: *eq, in* **name**: *eq, in, sw* **type**: *eq, in* **attribute**: *eq, in* **value**: *eq, in, sw* **source.id**: *eq, in* **requestable**: *eq* **created**: *gt, lt, ge, le* **modified**: *gt, lt, ge, le*\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n listEntitlements: function (accountId, segmentedForIdentity, forSegmentIds, includeUnsegmented, offset, limit, count, sorters, filters, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n localVarPath = \"/entitlements\";\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n if (accountId !== undefined) {\n localVarQueryParameter['account-id'] = accountId;\n }\n if (segmentedForIdentity !== undefined) {\n localVarQueryParameter['segmented-for-identity'] = segmentedForIdentity;\n }\n if (forSegmentIds !== undefined) {\n localVarQueryParameter['for-segment-ids'] = forSegmentIds;\n }\n if (includeUnsegmented !== undefined) {\n localVarQueryParameter['include-unsegmented'] = includeUnsegmented;\n }\n if (offset !== undefined) {\n localVarQueryParameter['offset'] = offset;\n }\n if (limit !== undefined) {\n localVarQueryParameter['limit'] = limit;\n }\n if (count !== undefined) {\n localVarQueryParameter['count'] = count;\n }\n if (sorters !== undefined) {\n localVarQueryParameter['sorters'] = sorters;\n }\n if (filters !== undefined) {\n localVarQueryParameter['filters'] = filters;\n }\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This API updates an existing entitlement using [JSON Patch](https://tools.ietf.org/html/rfc6902) syntax. The following fields are patchable: **requestable**, **privileged**, **segments**, **owner**, **name**, **description**. When you\\'re patching owner, only owner type and owner id must be provided. Owner name is optional, and it won\\'t be modified. If the owner name is provided, it should correspond to the real name. The only owner type currently supported is IDENTITY. A token with ORG_ADMIN or SOURCE_ADMIN authority is required to call this API.\n * @summary Patch an entitlement\n * @param {string} id ID of the entitlement to patch\n * @param {Array} [jsonPatchOperationBeta]\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n patchEntitlement: function (id, jsonPatchOperationBeta, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'id' is not null or undefined\n (0, common_1.assertParamExists)('patchEntitlement', 'id', id);\n localVarPath = \"/entitlements/{id}\"\n .replace(\"{\".concat(\"id\", \"}\"), encodeURIComponent(String(id)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'PATCH' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n localVarHeaderParameter['Content-Type'] = 'application/json-patch+json';\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(jsonPatchOperationBeta, localVarRequestOptions, configuration);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This API replaces the entitlement request config for a specified entitlement.\n * @summary Replace Entitlement Request Config\n * @param {string} id Entitlement ID\n * @param {EntitlementRequestConfigBeta} entitlementRequestConfigBeta\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n putEntitlementRequestConfig: function (id, entitlementRequestConfigBeta, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'id' is not null or undefined\n (0, common_1.assertParamExists)('putEntitlementRequestConfig', 'id', id);\n // verify required parameter 'entitlementRequestConfigBeta' is not null or undefined\n (0, common_1.assertParamExists)('putEntitlementRequestConfig', 'entitlementRequestConfigBeta', entitlementRequestConfigBeta);\n localVarPath = \"/entitlements/{id}/entitlement-request-config\"\n .replace(\"{\".concat(\"id\", \"}\"), encodeURIComponent(String(id)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'PUT' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n localVarHeaderParameter['Content-Type'] = 'application/json';\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(entitlementRequestConfigBeta, localVarRequestOptions, configuration);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This API applies an update to every entitlement of the list. The number of entitlements to update is limited to 50 items maximum. The JsonPatch update follows the [JSON Patch](https://tools.ietf.org/html/rfc6902) standard. allowed operations : **{ \\\"op\\\": \\\"replace\\\", \\\"path\\\": \\\"/privileged\\\", \\\"value\\\": boolean }** **{ \\\"op\\\": \\\"replace\\\", \\\"path\\\": \\\"/requestable\\\",\\\"value\\\": boolean }** A token with ORG_ADMIN or API authority is required to call this API.\n * @summary Bulk update an entitlement list\n * @param {EntitlementBulkUpdateRequestBeta} entitlementBulkUpdateRequestBeta\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n updateEntitlementsInBulk: function (entitlementBulkUpdateRequestBeta, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'entitlementBulkUpdateRequestBeta' is not null or undefined\n (0, common_1.assertParamExists)('updateEntitlementsInBulk', 'entitlementBulkUpdateRequestBeta', entitlementBulkUpdateRequestBeta);\n localVarPath = \"/entitlements/bulk-update\";\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n localVarHeaderParameter['Content-Type'] = 'application/json';\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(entitlementBulkUpdateRequestBeta, localVarRequestOptions, configuration);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n };\n};\nexports.EntitlementsBetaApiAxiosParamCreator = EntitlementsBetaApiAxiosParamCreator;\n/**\n * EntitlementsBetaApi - functional programming interface\n * @export\n */\nvar EntitlementsBetaApiFp = function (configuration) {\n var localVarAxiosParamCreator = (0, exports.EntitlementsBetaApiAxiosParamCreator)(configuration);\n return {\n /**\n * This API returns an entitlement by its ID.\n * @summary Get an entitlement\n * @param {string} id The entitlement ID\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getEntitlement: function (id, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.getEntitlement(id, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This API returns the entitlement request config for a specified entitlement.\n * @summary Get Entitlement Request Config\n * @param {string} id Entitlement Id\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getEntitlementRequestConfig: function (id, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.getEntitlementRequestConfig(id, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This API returns a list of all child entitlements of a given entitlement.\n * @summary List of entitlements children\n * @param {string} id Entitlement Id\n * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **id, name, created, modified, type, attribute, value, source.id**\n * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **id**: *eq, in* **name**: *eq, in, sw* **type**: *eq, in* **attribute**: *eq, in* **value**: *eq, in, sw* **source.id**: *eq, in* **requestable**: *eq* **created**: *gt, lt, ge, le* **modified**: *gt, lt, ge, le*\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n listEntitlementChildren: function (id, limit, offset, count, sorters, filters, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.listEntitlementChildren(id, limit, offset, count, sorters, filters, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This API returns a list of all parent entitlements of a given entitlement.\n * @summary List of entitlements parents\n * @param {string} id Entitlement Id\n * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **id, name, created, modified, type, attribute, value, source.id**\n * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **id**: *eq, in* **name**: *eq, in, sw* **type**: *eq, in* **attribute**: *eq, in* **value**: *eq, in, sw* **source.id**: *eq, in* **requestable**: *eq* **created**: *gt, lt, ge, le* **modified**: *gt, lt, ge, le*\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n listEntitlementParents: function (id, limit, offset, count, sorters, filters, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.listEntitlementParents(id, limit, offset, count, sorters, filters, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This API returns a list of entitlements. This API can be used in one of the two following ways: either getting entitlements for a specific **account-id**, or getting via use of **filters** (those two options are exclusive). Any authenticated token can call this API.\n * @summary Gets a list of entitlements.\n * @param {string} [accountId] The account ID. If specified, returns only entitlements associated with the given Account. Cannot be specified with the **filters**, **segmented-for-identity**, **for-segment-ids**, or **include-unsegmented** param(s).\n * @param {string} [segmentedForIdentity] If present and not empty, additionally filters Entitlements to those which are assigned to the Segment(s) which are visible to the Identity with the specified ID. By convention, the value **me** can stand in for the current user\\'s Identity ID. Cannot be specified with the **account-id** or **for-segment-ids** param(s). It is also illegal to specify a value that refers to a different user\\'s Identity.\n * @param {string} [forSegmentIds] If present and not empty, additionally filters Access Profiles to those which are assigned to the Segment(s) with the specified IDs. Cannot be specified with the **account-id** or **segmented-for-identity** param(s).\n * @param {boolean} [includeUnsegmented] Whether or not the response list should contain unsegmented Entitlements. If **for-segment-ids** and **segmented-for-identity** are both absent or empty, specifying **include-unsegmented=false** results in an error.\n * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **id, name, created, modified, type, attribute, value, source.id, requestable**\n * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **id**: *eq, in* **name**: *eq, in, sw* **type**: *eq, in* **attribute**: *eq, in* **value**: *eq, in, sw* **source.id**: *eq, in* **requestable**: *eq* **created**: *gt, lt, ge, le* **modified**: *gt, lt, ge, le*\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n listEntitlements: function (accountId, segmentedForIdentity, forSegmentIds, includeUnsegmented, offset, limit, count, sorters, filters, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.listEntitlements(accountId, segmentedForIdentity, forSegmentIds, includeUnsegmented, offset, limit, count, sorters, filters, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This API updates an existing entitlement using [JSON Patch](https://tools.ietf.org/html/rfc6902) syntax. The following fields are patchable: **requestable**, **privileged**, **segments**, **owner**, **name**, **description**. When you\\'re patching owner, only owner type and owner id must be provided. Owner name is optional, and it won\\'t be modified. If the owner name is provided, it should correspond to the real name. The only owner type currently supported is IDENTITY. A token with ORG_ADMIN or SOURCE_ADMIN authority is required to call this API.\n * @summary Patch an entitlement\n * @param {string} id ID of the entitlement to patch\n * @param {Array} [jsonPatchOperationBeta]\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n patchEntitlement: function (id, jsonPatchOperationBeta, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.patchEntitlement(id, jsonPatchOperationBeta, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This API replaces the entitlement request config for a specified entitlement.\n * @summary Replace Entitlement Request Config\n * @param {string} id Entitlement ID\n * @param {EntitlementRequestConfigBeta} entitlementRequestConfigBeta\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n putEntitlementRequestConfig: function (id, entitlementRequestConfigBeta, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.putEntitlementRequestConfig(id, entitlementRequestConfigBeta, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This API applies an update to every entitlement of the list. The number of entitlements to update is limited to 50 items maximum. The JsonPatch update follows the [JSON Patch](https://tools.ietf.org/html/rfc6902) standard. allowed operations : **{ \\\"op\\\": \\\"replace\\\", \\\"path\\\": \\\"/privileged\\\", \\\"value\\\": boolean }** **{ \\\"op\\\": \\\"replace\\\", \\\"path\\\": \\\"/requestable\\\",\\\"value\\\": boolean }** A token with ORG_ADMIN or API authority is required to call this API.\n * @summary Bulk update an entitlement list\n * @param {EntitlementBulkUpdateRequestBeta} entitlementBulkUpdateRequestBeta\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n updateEntitlementsInBulk: function (entitlementBulkUpdateRequestBeta, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.updateEntitlementsInBulk(entitlementBulkUpdateRequestBeta, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n };\n};\nexports.EntitlementsBetaApiFp = EntitlementsBetaApiFp;\n/**\n * EntitlementsBetaApi - factory interface\n * @export\n */\nvar EntitlementsBetaApiFactory = function (configuration, basePath, axios) {\n var localVarFp = (0, exports.EntitlementsBetaApiFp)(configuration);\n return {\n /**\n * This API returns an entitlement by its ID.\n * @summary Get an entitlement\n * @param {string} id The entitlement ID\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getEntitlement: function (id, axiosOptions) {\n return localVarFp.getEntitlement(id, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This API returns the entitlement request config for a specified entitlement.\n * @summary Get Entitlement Request Config\n * @param {string} id Entitlement Id\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getEntitlementRequestConfig: function (id, axiosOptions) {\n return localVarFp.getEntitlementRequestConfig(id, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This API returns a list of all child entitlements of a given entitlement.\n * @summary List of entitlements children\n * @param {string} id Entitlement Id\n * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **id, name, created, modified, type, attribute, value, source.id**\n * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **id**: *eq, in* **name**: *eq, in, sw* **type**: *eq, in* **attribute**: *eq, in* **value**: *eq, in, sw* **source.id**: *eq, in* **requestable**: *eq* **created**: *gt, lt, ge, le* **modified**: *gt, lt, ge, le*\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n listEntitlementChildren: function (id, limit, offset, count, sorters, filters, axiosOptions) {\n return localVarFp.listEntitlementChildren(id, limit, offset, count, sorters, filters, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This API returns a list of all parent entitlements of a given entitlement.\n * @summary List of entitlements parents\n * @param {string} id Entitlement Id\n * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **id, name, created, modified, type, attribute, value, source.id**\n * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **id**: *eq, in* **name**: *eq, in, sw* **type**: *eq, in* **attribute**: *eq, in* **value**: *eq, in, sw* **source.id**: *eq, in* **requestable**: *eq* **created**: *gt, lt, ge, le* **modified**: *gt, lt, ge, le*\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n listEntitlementParents: function (id, limit, offset, count, sorters, filters, axiosOptions) {\n return localVarFp.listEntitlementParents(id, limit, offset, count, sorters, filters, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This API returns a list of entitlements. This API can be used in one of the two following ways: either getting entitlements for a specific **account-id**, or getting via use of **filters** (those two options are exclusive). Any authenticated token can call this API.\n * @summary Gets a list of entitlements.\n * @param {string} [accountId] The account ID. If specified, returns only entitlements associated with the given Account. Cannot be specified with the **filters**, **segmented-for-identity**, **for-segment-ids**, or **include-unsegmented** param(s).\n * @param {string} [segmentedForIdentity] If present and not empty, additionally filters Entitlements to those which are assigned to the Segment(s) which are visible to the Identity with the specified ID. By convention, the value **me** can stand in for the current user\\'s Identity ID. Cannot be specified with the **account-id** or **for-segment-ids** param(s). It is also illegal to specify a value that refers to a different user\\'s Identity.\n * @param {string} [forSegmentIds] If present and not empty, additionally filters Access Profiles to those which are assigned to the Segment(s) with the specified IDs. Cannot be specified with the **account-id** or **segmented-for-identity** param(s).\n * @param {boolean} [includeUnsegmented] Whether or not the response list should contain unsegmented Entitlements. If **for-segment-ids** and **segmented-for-identity** are both absent or empty, specifying **include-unsegmented=false** results in an error.\n * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **id, name, created, modified, type, attribute, value, source.id, requestable**\n * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **id**: *eq, in* **name**: *eq, in, sw* **type**: *eq, in* **attribute**: *eq, in* **value**: *eq, in, sw* **source.id**: *eq, in* **requestable**: *eq* **created**: *gt, lt, ge, le* **modified**: *gt, lt, ge, le*\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n listEntitlements: function (accountId, segmentedForIdentity, forSegmentIds, includeUnsegmented, offset, limit, count, sorters, filters, axiosOptions) {\n return localVarFp.listEntitlements(accountId, segmentedForIdentity, forSegmentIds, includeUnsegmented, offset, limit, count, sorters, filters, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This API updates an existing entitlement using [JSON Patch](https://tools.ietf.org/html/rfc6902) syntax. The following fields are patchable: **requestable**, **privileged**, **segments**, **owner**, **name**, **description**. When you\\'re patching owner, only owner type and owner id must be provided. Owner name is optional, and it won\\'t be modified. If the owner name is provided, it should correspond to the real name. The only owner type currently supported is IDENTITY. A token with ORG_ADMIN or SOURCE_ADMIN authority is required to call this API.\n * @summary Patch an entitlement\n * @param {string} id ID of the entitlement to patch\n * @param {Array} [jsonPatchOperationBeta]\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n patchEntitlement: function (id, jsonPatchOperationBeta, axiosOptions) {\n return localVarFp.patchEntitlement(id, jsonPatchOperationBeta, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This API replaces the entitlement request config for a specified entitlement.\n * @summary Replace Entitlement Request Config\n * @param {string} id Entitlement ID\n * @param {EntitlementRequestConfigBeta} entitlementRequestConfigBeta\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n putEntitlementRequestConfig: function (id, entitlementRequestConfigBeta, axiosOptions) {\n return localVarFp.putEntitlementRequestConfig(id, entitlementRequestConfigBeta, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This API applies an update to every entitlement of the list. The number of entitlements to update is limited to 50 items maximum. The JsonPatch update follows the [JSON Patch](https://tools.ietf.org/html/rfc6902) standard. allowed operations : **{ \\\"op\\\": \\\"replace\\\", \\\"path\\\": \\\"/privileged\\\", \\\"value\\\": boolean }** **{ \\\"op\\\": \\\"replace\\\", \\\"path\\\": \\\"/requestable\\\",\\\"value\\\": boolean }** A token with ORG_ADMIN or API authority is required to call this API.\n * @summary Bulk update an entitlement list\n * @param {EntitlementBulkUpdateRequestBeta} entitlementBulkUpdateRequestBeta\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n updateEntitlementsInBulk: function (entitlementBulkUpdateRequestBeta, axiosOptions) {\n return localVarFp.updateEntitlementsInBulk(entitlementBulkUpdateRequestBeta, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n };\n};\nexports.EntitlementsBetaApiFactory = EntitlementsBetaApiFactory;\n/**\n * EntitlementsBetaApi - object-oriented interface\n * @export\n * @class EntitlementsBetaApi\n * @extends {BaseAPI}\n */\nvar EntitlementsBetaApi = /** @class */ (function (_super) {\n __extends(EntitlementsBetaApi, _super);\n function EntitlementsBetaApi() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n * This API returns an entitlement by its ID.\n * @summary Get an entitlement\n * @param {EntitlementsBetaApiGetEntitlementRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof EntitlementsBetaApi\n */\n EntitlementsBetaApi.prototype.getEntitlement = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.EntitlementsBetaApiFp)(this.configuration).getEntitlement(requestParameters.id, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This API returns the entitlement request config for a specified entitlement.\n * @summary Get Entitlement Request Config\n * @param {EntitlementsBetaApiGetEntitlementRequestConfigRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof EntitlementsBetaApi\n */\n EntitlementsBetaApi.prototype.getEntitlementRequestConfig = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.EntitlementsBetaApiFp)(this.configuration).getEntitlementRequestConfig(requestParameters.id, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This API returns a list of all child entitlements of a given entitlement.\n * @summary List of entitlements children\n * @param {EntitlementsBetaApiListEntitlementChildrenRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof EntitlementsBetaApi\n */\n EntitlementsBetaApi.prototype.listEntitlementChildren = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.EntitlementsBetaApiFp)(this.configuration).listEntitlementChildren(requestParameters.id, requestParameters.limit, requestParameters.offset, requestParameters.count, requestParameters.sorters, requestParameters.filters, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This API returns a list of all parent entitlements of a given entitlement.\n * @summary List of entitlements parents\n * @param {EntitlementsBetaApiListEntitlementParentsRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof EntitlementsBetaApi\n */\n EntitlementsBetaApi.prototype.listEntitlementParents = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.EntitlementsBetaApiFp)(this.configuration).listEntitlementParents(requestParameters.id, requestParameters.limit, requestParameters.offset, requestParameters.count, requestParameters.sorters, requestParameters.filters, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This API returns a list of entitlements. This API can be used in one of the two following ways: either getting entitlements for a specific **account-id**, or getting via use of **filters** (those two options are exclusive). Any authenticated token can call this API.\n * @summary Gets a list of entitlements.\n * @param {EntitlementsBetaApiListEntitlementsRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof EntitlementsBetaApi\n */\n EntitlementsBetaApi.prototype.listEntitlements = function (requestParameters, axiosOptions) {\n var _this = this;\n if (requestParameters === void 0) { requestParameters = {}; }\n return (0, exports.EntitlementsBetaApiFp)(this.configuration).listEntitlements(requestParameters.accountId, requestParameters.segmentedForIdentity, requestParameters.forSegmentIds, requestParameters.includeUnsegmented, requestParameters.offset, requestParameters.limit, requestParameters.count, requestParameters.sorters, requestParameters.filters, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This API updates an existing entitlement using [JSON Patch](https://tools.ietf.org/html/rfc6902) syntax. The following fields are patchable: **requestable**, **privileged**, **segments**, **owner**, **name**, **description**. When you\\'re patching owner, only owner type and owner id must be provided. Owner name is optional, and it won\\'t be modified. If the owner name is provided, it should correspond to the real name. The only owner type currently supported is IDENTITY. A token with ORG_ADMIN or SOURCE_ADMIN authority is required to call this API.\n * @summary Patch an entitlement\n * @param {EntitlementsBetaApiPatchEntitlementRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof EntitlementsBetaApi\n */\n EntitlementsBetaApi.prototype.patchEntitlement = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.EntitlementsBetaApiFp)(this.configuration).patchEntitlement(requestParameters.id, requestParameters.jsonPatchOperationBeta, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This API replaces the entitlement request config for a specified entitlement.\n * @summary Replace Entitlement Request Config\n * @param {EntitlementsBetaApiPutEntitlementRequestConfigRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof EntitlementsBetaApi\n */\n EntitlementsBetaApi.prototype.putEntitlementRequestConfig = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.EntitlementsBetaApiFp)(this.configuration).putEntitlementRequestConfig(requestParameters.id, requestParameters.entitlementRequestConfigBeta, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This API applies an update to every entitlement of the list. The number of entitlements to update is limited to 50 items maximum. The JsonPatch update follows the [JSON Patch](https://tools.ietf.org/html/rfc6902) standard. allowed operations : **{ \\\"op\\\": \\\"replace\\\", \\\"path\\\": \\\"/privileged\\\", \\\"value\\\": boolean }** **{ \\\"op\\\": \\\"replace\\\", \\\"path\\\": \\\"/requestable\\\",\\\"value\\\": boolean }** A token with ORG_ADMIN or API authority is required to call this API.\n * @summary Bulk update an entitlement list\n * @param {EntitlementsBetaApiUpdateEntitlementsInBulkRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof EntitlementsBetaApi\n */\n EntitlementsBetaApi.prototype.updateEntitlementsInBulk = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.EntitlementsBetaApiFp)(this.configuration).updateEntitlementsInBulk(requestParameters.entitlementBulkUpdateRequestBeta, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n return EntitlementsBetaApi;\n}(base_1.BaseAPI));\nexports.EntitlementsBetaApi = EntitlementsBetaApi;\n/**\n * GovernanceGroupsBetaApi - axios parameter creator\n * @export\n */\nvar GovernanceGroupsBetaApiAxiosParamCreator = function (configuration) {\n var _this = this;\n return {\n /**\n * This API creates a new Governance Group.\n * @summary Create a new Governance Group.\n * @param {WorkgroupDtoBeta} workgroupDtoBeta\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n createWorkgroup: function (workgroupDtoBeta, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'workgroupDtoBeta' is not null or undefined\n (0, common_1.assertParamExists)('createWorkgroup', 'workgroupDtoBeta', workgroupDtoBeta);\n localVarPath = \"/workgroups\";\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n localVarHeaderParameter['Content-Type'] = 'application/json';\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(workgroupDtoBeta, localVarRequestOptions, configuration);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This API deletes a Governance Group by its ID.\n * @summary Delete a Governance Group\n * @param {string} id ID of the Governance Group\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n deleteWorkgroup: function (id, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'id' is not null or undefined\n (0, common_1.assertParamExists)('deleteWorkgroup', 'id', id);\n localVarPath = \"/workgroups/{id}\"\n .replace(\"{\".concat(\"id\", \"}\"), encodeURIComponent(String(id)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'DELETE' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This API removes one or more members from a Governance Group. A token with API, ORG_ADMIN authority is required to call this API. > **Following field of Identity is an optional field in the request.** > **name**\n * @summary Remove members from Governance Group\n * @param {string} workgroupId ID of the Governance Group.\n * @param {Array} bulkWorkgroupMembersRequestInnerBeta List of identities to be removed from a Governance Group members list.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n deleteWorkgroupMembers: function (workgroupId, bulkWorkgroupMembersRequestInnerBeta, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'workgroupId' is not null or undefined\n (0, common_1.assertParamExists)('deleteWorkgroupMembers', 'workgroupId', workgroupId);\n // verify required parameter 'bulkWorkgroupMembersRequestInnerBeta' is not null or undefined\n (0, common_1.assertParamExists)('deleteWorkgroupMembers', 'bulkWorkgroupMembersRequestInnerBeta', bulkWorkgroupMembersRequestInnerBeta);\n localVarPath = \"/workgroups/{workgroupId}/members/bulk-delete\"\n .replace(\"{\".concat(\"workgroupId\", \"}\"), encodeURIComponent(String(workgroupId)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n localVarHeaderParameter['Content-Type'] = 'application/json';\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(bulkWorkgroupMembersRequestInnerBeta, localVarRequestOptions, configuration);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This API initiates a bulk deletion of one or more Governance Groups. > If any of the indicated Governance Groups have one or more connections associated with it,then those Governance Groups will be added in **inUse** list of the response. Governance Group(s) marked as **inUse** can not be deleted. > If any of the indicated Governance Groups is not does not exists in Organization,then those Governance Groups will be added in **notFound** list of the response. Governance Groups marked as **notFound** will not be deleted. > If any of the indicated Governance Groups does not have any connections associated with it,then those Governance Groups will be added in **deleted** list of the response. A Governance Group marked as **deleted** will be deleted from current Organization. > If the request contains any **inUse** or **notFound** Governance Group IDs then it skips only these Governance Groups for deletion and deletes the rest of Governance Groups which have no connections associated with it. > **This API has limit number of Governance Groups can be deleted at one time. If the request contains more then 100 Governance Groups IDs to be deleted then the API will throw an exception.**\n * @summary Delete Governance Group(s)\n * @param {WorkgroupBulkDeleteRequestBeta} workgroupBulkDeleteRequestBeta\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n deleteWorkgroupsInBulk: function (workgroupBulkDeleteRequestBeta, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'workgroupBulkDeleteRequestBeta' is not null or undefined\n (0, common_1.assertParamExists)('deleteWorkgroupsInBulk', 'workgroupBulkDeleteRequestBeta', workgroupBulkDeleteRequestBeta);\n localVarPath = \"/workgroups/bulk-delete\";\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n localVarHeaderParameter['Content-Type'] = 'application/json';\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(workgroupBulkDeleteRequestBeta, localVarRequestOptions, configuration);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This API returns a Governance Groups by its ID.\n * @summary Get Governance Group by Id\n * @param {string} id ID of the Governance Group\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getWorkgroup: function (id, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'id' is not null or undefined\n (0, common_1.assertParamExists)('getWorkgroup', 'id', id);\n localVarPath = \"/workgroups/{id}\"\n .replace(\"{\".concat(\"id\", \"}\"), encodeURIComponent(String(id)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This API returns list of connections associated with a Governance Group.\n * @summary List connections for Governance Group\n * @param {string} workgroupId ID of the Governance Group.\n * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {number} [limit] Note that for this API the maximum value for limit is 50. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **name, created, modified**\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n listConnections: function (workgroupId, offset, limit, count, sorters, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'workgroupId' is not null or undefined\n (0, common_1.assertParamExists)('listConnections', 'workgroupId', workgroupId);\n localVarPath = \"/workgroups/{workgroupId}/connections\"\n .replace(\"{\".concat(\"workgroupId\", \"}\"), encodeURIComponent(String(workgroupId)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n if (offset !== undefined) {\n localVarQueryParameter['offset'] = offset;\n }\n if (limit !== undefined) {\n localVarQueryParameter['limit'] = limit;\n }\n if (count !== undefined) {\n localVarQueryParameter['count'] = count;\n }\n if (sorters !== undefined) {\n localVarQueryParameter['sorters'] = sorters;\n }\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This API returns list of members associated with a Governance Group.\n * @summary List Governance Group Members\n * @param {string} workgroupId ID of the Governance Group.\n * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {number} [limit] Note that for this API the maximum value for limit is 50. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **name, created, modified**\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n listWorkgroupMembers: function (workgroupId, offset, limit, count, sorters, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'workgroupId' is not null or undefined\n (0, common_1.assertParamExists)('listWorkgroupMembers', 'workgroupId', workgroupId);\n localVarPath = \"/workgroups/{workgroupId}/members\"\n .replace(\"{\".concat(\"workgroupId\", \"}\"), encodeURIComponent(String(workgroupId)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n if (offset !== undefined) {\n localVarQueryParameter['offset'] = offset;\n }\n if (limit !== undefined) {\n localVarQueryParameter['limit'] = limit;\n }\n if (count !== undefined) {\n localVarQueryParameter['count'] = count;\n }\n if (sorters !== undefined) {\n localVarQueryParameter['sorters'] = sorters;\n }\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This API returns list of Governance Groups\n * @summary List Governance Groups\n * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {number} [limit] Note that for this API the maximum value for limit is 50. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **id**: *eq, in, sw* **name**: *eq, sw, in*\n * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **name, created, modified, id, description**\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n listWorkgroups: function (offset, limit, count, filters, sorters, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n localVarPath = \"/workgroups\";\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n if (offset !== undefined) {\n localVarQueryParameter['offset'] = offset;\n }\n if (limit !== undefined) {\n localVarQueryParameter['limit'] = limit;\n }\n if (count !== undefined) {\n localVarQueryParameter['count'] = count;\n }\n if (filters !== undefined) {\n localVarQueryParameter['filters'] = filters;\n }\n if (sorters !== undefined) {\n localVarQueryParameter['sorters'] = sorters;\n }\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This API updates existing Governance Group by its ID. Following fields are patchable. **name**, **description** A token with API, ORG_ADMIN is required to call this API. In addition.\n * @summary Patch a Governance Group\n * @param {string} id ID of the Governance Group\n * @param {Array} [jsonPatchOperationBeta]\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n patchWorkgroup: function (id, jsonPatchOperationBeta, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'id' is not null or undefined\n (0, common_1.assertParamExists)('patchWorkgroup', 'id', id);\n localVarPath = \"/workgroups/{id}\"\n .replace(\"{\".concat(\"id\", \"}\"), encodeURIComponent(String(id)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'PATCH' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n localVarHeaderParameter['Content-Type'] = 'application/json-patch+json';\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(jsonPatchOperationBeta, localVarRequestOptions, configuration);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This API adds one or more members to a Governance Group. A token with API, ORG_ADMIN authority is required to call this API. > **Following field of Identity is an optional field in the request.** > **name**\n * @summary Add members to Governance Group\n * @param {string} workgroupId ID of the Governance Group.\n * @param {Array} bulkWorkgroupMembersRequestInnerBeta List of identities to be added to a Governance Group members list.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n updateWorkgroupMembers: function (workgroupId, bulkWorkgroupMembersRequestInnerBeta, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'workgroupId' is not null or undefined\n (0, common_1.assertParamExists)('updateWorkgroupMembers', 'workgroupId', workgroupId);\n // verify required parameter 'bulkWorkgroupMembersRequestInnerBeta' is not null or undefined\n (0, common_1.assertParamExists)('updateWorkgroupMembers', 'bulkWorkgroupMembersRequestInnerBeta', bulkWorkgroupMembersRequestInnerBeta);\n localVarPath = \"/workgroups/{workgroupId}/members/bulk-add\"\n .replace(\"{\".concat(\"workgroupId\", \"}\"), encodeURIComponent(String(workgroupId)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n localVarHeaderParameter['Content-Type'] = 'application/json';\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(bulkWorkgroupMembersRequestInnerBeta, localVarRequestOptions, configuration);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n };\n};\nexports.GovernanceGroupsBetaApiAxiosParamCreator = GovernanceGroupsBetaApiAxiosParamCreator;\n/**\n * GovernanceGroupsBetaApi - functional programming interface\n * @export\n */\nvar GovernanceGroupsBetaApiFp = function (configuration) {\n var localVarAxiosParamCreator = (0, exports.GovernanceGroupsBetaApiAxiosParamCreator)(configuration);\n return {\n /**\n * This API creates a new Governance Group.\n * @summary Create a new Governance Group.\n * @param {WorkgroupDtoBeta} workgroupDtoBeta\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n createWorkgroup: function (workgroupDtoBeta, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.createWorkgroup(workgroupDtoBeta, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This API deletes a Governance Group by its ID.\n * @summary Delete a Governance Group\n * @param {string} id ID of the Governance Group\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n deleteWorkgroup: function (id, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.deleteWorkgroup(id, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This API removes one or more members from a Governance Group. A token with API, ORG_ADMIN authority is required to call this API. > **Following field of Identity is an optional field in the request.** > **name**\n * @summary Remove members from Governance Group\n * @param {string} workgroupId ID of the Governance Group.\n * @param {Array} bulkWorkgroupMembersRequestInnerBeta List of identities to be removed from a Governance Group members list.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n deleteWorkgroupMembers: function (workgroupId, bulkWorkgroupMembersRequestInnerBeta, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.deleteWorkgroupMembers(workgroupId, bulkWorkgroupMembersRequestInnerBeta, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This API initiates a bulk deletion of one or more Governance Groups. > If any of the indicated Governance Groups have one or more connections associated with it,then those Governance Groups will be added in **inUse** list of the response. Governance Group(s) marked as **inUse** can not be deleted. > If any of the indicated Governance Groups is not does not exists in Organization,then those Governance Groups will be added in **notFound** list of the response. Governance Groups marked as **notFound** will not be deleted. > If any of the indicated Governance Groups does not have any connections associated with it,then those Governance Groups will be added in **deleted** list of the response. A Governance Group marked as **deleted** will be deleted from current Organization. > If the request contains any **inUse** or **notFound** Governance Group IDs then it skips only these Governance Groups for deletion and deletes the rest of Governance Groups which have no connections associated with it. > **This API has limit number of Governance Groups can be deleted at one time. If the request contains more then 100 Governance Groups IDs to be deleted then the API will throw an exception.**\n * @summary Delete Governance Group(s)\n * @param {WorkgroupBulkDeleteRequestBeta} workgroupBulkDeleteRequestBeta\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n deleteWorkgroupsInBulk: function (workgroupBulkDeleteRequestBeta, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.deleteWorkgroupsInBulk(workgroupBulkDeleteRequestBeta, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This API returns a Governance Groups by its ID.\n * @summary Get Governance Group by Id\n * @param {string} id ID of the Governance Group\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getWorkgroup: function (id, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.getWorkgroup(id, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This API returns list of connections associated with a Governance Group.\n * @summary List connections for Governance Group\n * @param {string} workgroupId ID of the Governance Group.\n * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {number} [limit] Note that for this API the maximum value for limit is 50. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **name, created, modified**\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n listConnections: function (workgroupId, offset, limit, count, sorters, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.listConnections(workgroupId, offset, limit, count, sorters, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This API returns list of members associated with a Governance Group.\n * @summary List Governance Group Members\n * @param {string} workgroupId ID of the Governance Group.\n * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {number} [limit] Note that for this API the maximum value for limit is 50. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **name, created, modified**\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n listWorkgroupMembers: function (workgroupId, offset, limit, count, sorters, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.listWorkgroupMembers(workgroupId, offset, limit, count, sorters, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This API returns list of Governance Groups\n * @summary List Governance Groups\n * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {number} [limit] Note that for this API the maximum value for limit is 50. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **id**: *eq, in, sw* **name**: *eq, sw, in*\n * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **name, created, modified, id, description**\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n listWorkgroups: function (offset, limit, count, filters, sorters, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.listWorkgroups(offset, limit, count, filters, sorters, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This API updates existing Governance Group by its ID. Following fields are patchable. **name**, **description** A token with API, ORG_ADMIN is required to call this API. In addition.\n * @summary Patch a Governance Group\n * @param {string} id ID of the Governance Group\n * @param {Array} [jsonPatchOperationBeta]\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n patchWorkgroup: function (id, jsonPatchOperationBeta, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.patchWorkgroup(id, jsonPatchOperationBeta, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This API adds one or more members to a Governance Group. A token with API, ORG_ADMIN authority is required to call this API. > **Following field of Identity is an optional field in the request.** > **name**\n * @summary Add members to Governance Group\n * @param {string} workgroupId ID of the Governance Group.\n * @param {Array} bulkWorkgroupMembersRequestInnerBeta List of identities to be added to a Governance Group members list.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n updateWorkgroupMembers: function (workgroupId, bulkWorkgroupMembersRequestInnerBeta, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.updateWorkgroupMembers(workgroupId, bulkWorkgroupMembersRequestInnerBeta, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n };\n};\nexports.GovernanceGroupsBetaApiFp = GovernanceGroupsBetaApiFp;\n/**\n * GovernanceGroupsBetaApi - factory interface\n * @export\n */\nvar GovernanceGroupsBetaApiFactory = function (configuration, basePath, axios) {\n var localVarFp = (0, exports.GovernanceGroupsBetaApiFp)(configuration);\n return {\n /**\n * This API creates a new Governance Group.\n * @summary Create a new Governance Group.\n * @param {WorkgroupDtoBeta} workgroupDtoBeta\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n createWorkgroup: function (workgroupDtoBeta, axiosOptions) {\n return localVarFp.createWorkgroup(workgroupDtoBeta, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This API deletes a Governance Group by its ID.\n * @summary Delete a Governance Group\n * @param {string} id ID of the Governance Group\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n deleteWorkgroup: function (id, axiosOptions) {\n return localVarFp.deleteWorkgroup(id, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This API removes one or more members from a Governance Group. A token with API, ORG_ADMIN authority is required to call this API. > **Following field of Identity is an optional field in the request.** > **name**\n * @summary Remove members from Governance Group\n * @param {string} workgroupId ID of the Governance Group.\n * @param {Array} bulkWorkgroupMembersRequestInnerBeta List of identities to be removed from a Governance Group members list.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n deleteWorkgroupMembers: function (workgroupId, bulkWorkgroupMembersRequestInnerBeta, axiosOptions) {\n return localVarFp.deleteWorkgroupMembers(workgroupId, bulkWorkgroupMembersRequestInnerBeta, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This API initiates a bulk deletion of one or more Governance Groups. > If any of the indicated Governance Groups have one or more connections associated with it,then those Governance Groups will be added in **inUse** list of the response. Governance Group(s) marked as **inUse** can not be deleted. > If any of the indicated Governance Groups is not does not exists in Organization,then those Governance Groups will be added in **notFound** list of the response. Governance Groups marked as **notFound** will not be deleted. > If any of the indicated Governance Groups does not have any connections associated with it,then those Governance Groups will be added in **deleted** list of the response. A Governance Group marked as **deleted** will be deleted from current Organization. > If the request contains any **inUse** or **notFound** Governance Group IDs then it skips only these Governance Groups for deletion and deletes the rest of Governance Groups which have no connections associated with it. > **This API has limit number of Governance Groups can be deleted at one time. If the request contains more then 100 Governance Groups IDs to be deleted then the API will throw an exception.**\n * @summary Delete Governance Group(s)\n * @param {WorkgroupBulkDeleteRequestBeta} workgroupBulkDeleteRequestBeta\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n deleteWorkgroupsInBulk: function (workgroupBulkDeleteRequestBeta, axiosOptions) {\n return localVarFp.deleteWorkgroupsInBulk(workgroupBulkDeleteRequestBeta, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This API returns a Governance Groups by its ID.\n * @summary Get Governance Group by Id\n * @param {string} id ID of the Governance Group\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getWorkgroup: function (id, axiosOptions) {\n return localVarFp.getWorkgroup(id, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This API returns list of connections associated with a Governance Group.\n * @summary List connections for Governance Group\n * @param {string} workgroupId ID of the Governance Group.\n * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {number} [limit] Note that for this API the maximum value for limit is 50. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **name, created, modified**\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n listConnections: function (workgroupId, offset, limit, count, sorters, axiosOptions) {\n return localVarFp.listConnections(workgroupId, offset, limit, count, sorters, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This API returns list of members associated with a Governance Group.\n * @summary List Governance Group Members\n * @param {string} workgroupId ID of the Governance Group.\n * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {number} [limit] Note that for this API the maximum value for limit is 50. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **name, created, modified**\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n listWorkgroupMembers: function (workgroupId, offset, limit, count, sorters, axiosOptions) {\n return localVarFp.listWorkgroupMembers(workgroupId, offset, limit, count, sorters, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This API returns list of Governance Groups\n * @summary List Governance Groups\n * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {number} [limit] Note that for this API the maximum value for limit is 50. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **id**: *eq, in, sw* **name**: *eq, sw, in*\n * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **name, created, modified, id, description**\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n listWorkgroups: function (offset, limit, count, filters, sorters, axiosOptions) {\n return localVarFp.listWorkgroups(offset, limit, count, filters, sorters, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This API updates existing Governance Group by its ID. Following fields are patchable. **name**, **description** A token with API, ORG_ADMIN is required to call this API. In addition.\n * @summary Patch a Governance Group\n * @param {string} id ID of the Governance Group\n * @param {Array} [jsonPatchOperationBeta]\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n patchWorkgroup: function (id, jsonPatchOperationBeta, axiosOptions) {\n return localVarFp.patchWorkgroup(id, jsonPatchOperationBeta, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This API adds one or more members to a Governance Group. A token with API, ORG_ADMIN authority is required to call this API. > **Following field of Identity is an optional field in the request.** > **name**\n * @summary Add members to Governance Group\n * @param {string} workgroupId ID of the Governance Group.\n * @param {Array} bulkWorkgroupMembersRequestInnerBeta List of identities to be added to a Governance Group members list.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n updateWorkgroupMembers: function (workgroupId, bulkWorkgroupMembersRequestInnerBeta, axiosOptions) {\n return localVarFp.updateWorkgroupMembers(workgroupId, bulkWorkgroupMembersRequestInnerBeta, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n };\n};\nexports.GovernanceGroupsBetaApiFactory = GovernanceGroupsBetaApiFactory;\n/**\n * GovernanceGroupsBetaApi - object-oriented interface\n * @export\n * @class GovernanceGroupsBetaApi\n * @extends {BaseAPI}\n */\nvar GovernanceGroupsBetaApi = /** @class */ (function (_super) {\n __extends(GovernanceGroupsBetaApi, _super);\n function GovernanceGroupsBetaApi() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n * This API creates a new Governance Group.\n * @summary Create a new Governance Group.\n * @param {GovernanceGroupsBetaApiCreateWorkgroupRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof GovernanceGroupsBetaApi\n */\n GovernanceGroupsBetaApi.prototype.createWorkgroup = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.GovernanceGroupsBetaApiFp)(this.configuration).createWorkgroup(requestParameters.workgroupDtoBeta, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This API deletes a Governance Group by its ID.\n * @summary Delete a Governance Group\n * @param {GovernanceGroupsBetaApiDeleteWorkgroupRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof GovernanceGroupsBetaApi\n */\n GovernanceGroupsBetaApi.prototype.deleteWorkgroup = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.GovernanceGroupsBetaApiFp)(this.configuration).deleteWorkgroup(requestParameters.id, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This API removes one or more members from a Governance Group. A token with API, ORG_ADMIN authority is required to call this API. > **Following field of Identity is an optional field in the request.** > **name**\n * @summary Remove members from Governance Group\n * @param {GovernanceGroupsBetaApiDeleteWorkgroupMembersRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof GovernanceGroupsBetaApi\n */\n GovernanceGroupsBetaApi.prototype.deleteWorkgroupMembers = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.GovernanceGroupsBetaApiFp)(this.configuration).deleteWorkgroupMembers(requestParameters.workgroupId, requestParameters.bulkWorkgroupMembersRequestInnerBeta, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This API initiates a bulk deletion of one or more Governance Groups. > If any of the indicated Governance Groups have one or more connections associated with it,then those Governance Groups will be added in **inUse** list of the response. Governance Group(s) marked as **inUse** can not be deleted. > If any of the indicated Governance Groups is not does not exists in Organization,then those Governance Groups will be added in **notFound** list of the response. Governance Groups marked as **notFound** will not be deleted. > If any of the indicated Governance Groups does not have any connections associated with it,then those Governance Groups will be added in **deleted** list of the response. A Governance Group marked as **deleted** will be deleted from current Organization. > If the request contains any **inUse** or **notFound** Governance Group IDs then it skips only these Governance Groups for deletion and deletes the rest of Governance Groups which have no connections associated with it. > **This API has limit number of Governance Groups can be deleted at one time. If the request contains more then 100 Governance Groups IDs to be deleted then the API will throw an exception.**\n * @summary Delete Governance Group(s)\n * @param {GovernanceGroupsBetaApiDeleteWorkgroupsInBulkRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof GovernanceGroupsBetaApi\n */\n GovernanceGroupsBetaApi.prototype.deleteWorkgroupsInBulk = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.GovernanceGroupsBetaApiFp)(this.configuration).deleteWorkgroupsInBulk(requestParameters.workgroupBulkDeleteRequestBeta, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This API returns a Governance Groups by its ID.\n * @summary Get Governance Group by Id\n * @param {GovernanceGroupsBetaApiGetWorkgroupRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof GovernanceGroupsBetaApi\n */\n GovernanceGroupsBetaApi.prototype.getWorkgroup = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.GovernanceGroupsBetaApiFp)(this.configuration).getWorkgroup(requestParameters.id, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This API returns list of connections associated with a Governance Group.\n * @summary List connections for Governance Group\n * @param {GovernanceGroupsBetaApiListConnectionsRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof GovernanceGroupsBetaApi\n */\n GovernanceGroupsBetaApi.prototype.listConnections = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.GovernanceGroupsBetaApiFp)(this.configuration).listConnections(requestParameters.workgroupId, requestParameters.offset, requestParameters.limit, requestParameters.count, requestParameters.sorters, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This API returns list of members associated with a Governance Group.\n * @summary List Governance Group Members\n * @param {GovernanceGroupsBetaApiListWorkgroupMembersRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof GovernanceGroupsBetaApi\n */\n GovernanceGroupsBetaApi.prototype.listWorkgroupMembers = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.GovernanceGroupsBetaApiFp)(this.configuration).listWorkgroupMembers(requestParameters.workgroupId, requestParameters.offset, requestParameters.limit, requestParameters.count, requestParameters.sorters, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This API returns list of Governance Groups\n * @summary List Governance Groups\n * @param {GovernanceGroupsBetaApiListWorkgroupsRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof GovernanceGroupsBetaApi\n */\n GovernanceGroupsBetaApi.prototype.listWorkgroups = function (requestParameters, axiosOptions) {\n var _this = this;\n if (requestParameters === void 0) { requestParameters = {}; }\n return (0, exports.GovernanceGroupsBetaApiFp)(this.configuration).listWorkgroups(requestParameters.offset, requestParameters.limit, requestParameters.count, requestParameters.filters, requestParameters.sorters, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This API updates existing Governance Group by its ID. Following fields are patchable. **name**, **description** A token with API, ORG_ADMIN is required to call this API. In addition.\n * @summary Patch a Governance Group\n * @param {GovernanceGroupsBetaApiPatchWorkgroupRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof GovernanceGroupsBetaApi\n */\n GovernanceGroupsBetaApi.prototype.patchWorkgroup = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.GovernanceGroupsBetaApiFp)(this.configuration).patchWorkgroup(requestParameters.id, requestParameters.jsonPatchOperationBeta, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This API adds one or more members to a Governance Group. A token with API, ORG_ADMIN authority is required to call this API. > **Following field of Identity is an optional field in the request.** > **name**\n * @summary Add members to Governance Group\n * @param {GovernanceGroupsBetaApiUpdateWorkgroupMembersRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof GovernanceGroupsBetaApi\n */\n GovernanceGroupsBetaApi.prototype.updateWorkgroupMembers = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.GovernanceGroupsBetaApiFp)(this.configuration).updateWorkgroupMembers(requestParameters.workgroupId, requestParameters.bulkWorkgroupMembersRequestInnerBeta, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n return GovernanceGroupsBetaApi;\n}(base_1.BaseAPI));\nexports.GovernanceGroupsBetaApi = GovernanceGroupsBetaApi;\n/**\n * IAIAccessRequestRecommendationsBetaApi - axios parameter creator\n * @export\n */\nvar IAIAccessRequestRecommendationsBetaApiAxiosParamCreator = function (configuration) {\n var _this = this;\n return {\n /**\n * This API ignores a recommended access request item. Once an item is ignored, it will be marked as ignored=true if it is still a recommended item. The consumer can decide to hide ignored recommendations.\n * @summary Notification of Ignored Access Request Recommendations\n * @param {AccessRequestRecommendationActionItemDtoBeta} accessRequestRecommendationActionItemDtoBeta The recommended access item to ignore for an identity.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n addAccessRequestRecommendationsIgnoredItem: function (accessRequestRecommendationActionItemDtoBeta, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'accessRequestRecommendationActionItemDtoBeta' is not null or undefined\n (0, common_1.assertParamExists)('addAccessRequestRecommendationsIgnoredItem', 'accessRequestRecommendationActionItemDtoBeta', accessRequestRecommendationActionItemDtoBeta);\n localVarPath = \"/ai-access-request-recommendations/ignored-items\";\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n localVarHeaderParameter['Content-Type'] = 'application/json';\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(accessRequestRecommendationActionItemDtoBeta, localVarRequestOptions, configuration);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This API consumes a notification that a recommended access request item was requested. This API does not actually make the request, it is just a notification. This will help provide feedback in order to improve our recommendations.\n * @summary Notification of Requested Access Request Recommendations\n * @param {AccessRequestRecommendationActionItemDtoBeta} accessRequestRecommendationActionItemDtoBeta The recommended access item that was requested for an identity.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n addAccessRequestRecommendationsRequestedItem: function (accessRequestRecommendationActionItemDtoBeta, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'accessRequestRecommendationActionItemDtoBeta' is not null or undefined\n (0, common_1.assertParamExists)('addAccessRequestRecommendationsRequestedItem', 'accessRequestRecommendationActionItemDtoBeta', accessRequestRecommendationActionItemDtoBeta);\n localVarPath = \"/ai-access-request-recommendations/requested-items\";\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n localVarHeaderParameter['Content-Type'] = 'application/json';\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(accessRequestRecommendationActionItemDtoBeta, localVarRequestOptions, configuration);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This API consumes a notification that a recommended access request item was viewed. Future recommendations with this item will be marked with viewed=true. This can be useful for the consumer to determine if there are any new/unviewed recommendations.\n * @summary Notification of Viewed Access Request Recommendations\n * @param {AccessRequestRecommendationActionItemDtoBeta} accessRequestRecommendationActionItemDtoBeta The recommended access that was viewed for an identity.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n addAccessRequestRecommendationsViewedItem: function (accessRequestRecommendationActionItemDtoBeta, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'accessRequestRecommendationActionItemDtoBeta' is not null or undefined\n (0, common_1.assertParamExists)('addAccessRequestRecommendationsViewedItem', 'accessRequestRecommendationActionItemDtoBeta', accessRequestRecommendationActionItemDtoBeta);\n localVarPath = \"/ai-access-request-recommendations/viewed-items\";\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n localVarHeaderParameter['Content-Type'] = 'application/json';\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(accessRequestRecommendationActionItemDtoBeta, localVarRequestOptions, configuration);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This API consumes a notification that a set of recommended access request item were viewed. Future recommendations with these items will be marked with viewed=true. This can be useful for the consumer to determine if there are any new/unviewed recommendations.\n * @summary Notification of Viewed Access Request Recommendations in Bulk\n * @param {Array} accessRequestRecommendationActionItemDtoBeta The recommended access items that were viewed for an identity.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n addAccessRequestRecommendationsViewedItems: function (accessRequestRecommendationActionItemDtoBeta, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'accessRequestRecommendationActionItemDtoBeta' is not null or undefined\n (0, common_1.assertParamExists)('addAccessRequestRecommendationsViewedItems', 'accessRequestRecommendationActionItemDtoBeta', accessRequestRecommendationActionItemDtoBeta);\n localVarPath = \"/ai-access-request-recommendations/viewed-items/bulk-create\";\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n localVarHeaderParameter['Content-Type'] = 'application/json';\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(accessRequestRecommendationActionItemDtoBeta, localVarRequestOptions, configuration);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This API returns the access request recommendations for the specified identity. The default identity is *me* which indicates the current user.\n * @summary Identity Access Request Recommendations\n * @param {string} [identityId] Get access request recommendations for an identityId. *me* indicates the current user.\n * @param {number} [limit] Max number of results to return.\n * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {boolean} [includeTranslationMessages] If *true* it will populate a list of translation messages in the response.\n * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **access.name**: *co* **access.type**: *eq, in* **access.description**: *co, eq, in*\n * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **access.name, access.type** By default the recommendations are sorted by highest confidence first.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getAccessRequestRecommendations: function (identityId, limit, offset, count, includeTranslationMessages, filters, sorters, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n localVarPath = \"/ai-access-request-recommendations\";\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n if (identityId !== undefined) {\n localVarQueryParameter['identity-id'] = identityId;\n }\n if (limit !== undefined) {\n localVarQueryParameter['limit'] = limit;\n }\n if (offset !== undefined) {\n localVarQueryParameter['offset'] = offset;\n }\n if (count !== undefined) {\n localVarQueryParameter['count'] = count;\n }\n if (includeTranslationMessages !== undefined) {\n localVarQueryParameter['include-translation-messages'] = includeTranslationMessages;\n }\n if (filters !== undefined) {\n localVarQueryParameter['filters'] = filters;\n }\n if (sorters !== undefined) {\n localVarQueryParameter['sorters'] = sorters;\n }\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This API returns the list of ignored access request recommendations.\n * @summary List of Ignored Access Request Recommendations\n * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **access.id**: *eq, in* **access.type**: *eq, in* **identityId**: *eq, in*\n * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **access.id, access.type, identityId, timestamp**\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getAccessRequestRecommendationsIgnoredItems: function (limit, offset, count, filters, sorters, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n localVarPath = \"/ai-access-request-recommendations/ignored-items\";\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n if (limit !== undefined) {\n localVarQueryParameter['limit'] = limit;\n }\n if (offset !== undefined) {\n localVarQueryParameter['offset'] = offset;\n }\n if (count !== undefined) {\n localVarQueryParameter['count'] = count;\n }\n if (filters !== undefined) {\n localVarQueryParameter['filters'] = filters;\n }\n if (sorters !== undefined) {\n localVarQueryParameter['sorters'] = sorters;\n }\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This API returns a list of requested access request recommendations.\n * @summary List of Requested Access Request Recommendations\n * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **access.id**: *eq, in* **access.type**: *eq, in* **identityId**: *eq, in*\n * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **access.id, access.type, identityId, timestamp**\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getAccessRequestRecommendationsRequestedItems: function (limit, offset, count, filters, sorters, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n localVarPath = \"/ai-access-request-recommendations/requested-items\";\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n if (limit !== undefined) {\n localVarQueryParameter['limit'] = limit;\n }\n if (offset !== undefined) {\n localVarQueryParameter['offset'] = offset;\n }\n if (count !== undefined) {\n localVarQueryParameter['count'] = count;\n }\n if (filters !== undefined) {\n localVarQueryParameter['filters'] = filters;\n }\n if (sorters !== undefined) {\n localVarQueryParameter['sorters'] = sorters;\n }\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This API returns the list of viewed access request recommendations.\n * @summary List of Viewed Access Request Recommendations\n * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **access.id**: *eq, in* **access.type**: *eq, in* **identityId**: *eq, in*\n * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **access.id, access.type, identityId, timestamp**\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getAccessRequestRecommendationsViewedItems: function (limit, offset, count, filters, sorters, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n localVarPath = \"/ai-access-request-recommendations/viewed-items\";\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n if (limit !== undefined) {\n localVarQueryParameter['limit'] = limit;\n }\n if (offset !== undefined) {\n localVarQueryParameter['offset'] = offset;\n }\n if (count !== undefined) {\n localVarQueryParameter['count'] = count;\n }\n if (filters !== undefined) {\n localVarQueryParameter['filters'] = filters;\n }\n if (sorters !== undefined) {\n localVarQueryParameter['sorters'] = sorters;\n }\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * The getMessageCatalogs API returns message catalog based on the language headers in the requested object.\n * @summary Get Message catalogs\n * @param {'recommender' | 'access-request-recommender'} catalogId The ID of the message catalog.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getMessageCatalogs: function (catalogId, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'catalogId' is not null or undefined\n (0, common_1.assertParamExists)('getMessageCatalogs', 'catalogId', catalogId);\n localVarPath = \"/translation-catalogs/{catalog-id}\"\n .replace(\"{\".concat(\"catalog-id\", \"}\"), encodeURIComponent(String(catalogId)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n };\n};\nexports.IAIAccessRequestRecommendationsBetaApiAxiosParamCreator = IAIAccessRequestRecommendationsBetaApiAxiosParamCreator;\n/**\n * IAIAccessRequestRecommendationsBetaApi - functional programming interface\n * @export\n */\nvar IAIAccessRequestRecommendationsBetaApiFp = function (configuration) {\n var localVarAxiosParamCreator = (0, exports.IAIAccessRequestRecommendationsBetaApiAxiosParamCreator)(configuration);\n return {\n /**\n * This API ignores a recommended access request item. Once an item is ignored, it will be marked as ignored=true if it is still a recommended item. The consumer can decide to hide ignored recommendations.\n * @summary Notification of Ignored Access Request Recommendations\n * @param {AccessRequestRecommendationActionItemDtoBeta} accessRequestRecommendationActionItemDtoBeta The recommended access item to ignore for an identity.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n addAccessRequestRecommendationsIgnoredItem: function (accessRequestRecommendationActionItemDtoBeta, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.addAccessRequestRecommendationsIgnoredItem(accessRequestRecommendationActionItemDtoBeta, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This API consumes a notification that a recommended access request item was requested. This API does not actually make the request, it is just a notification. This will help provide feedback in order to improve our recommendations.\n * @summary Notification of Requested Access Request Recommendations\n * @param {AccessRequestRecommendationActionItemDtoBeta} accessRequestRecommendationActionItemDtoBeta The recommended access item that was requested for an identity.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n addAccessRequestRecommendationsRequestedItem: function (accessRequestRecommendationActionItemDtoBeta, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.addAccessRequestRecommendationsRequestedItem(accessRequestRecommendationActionItemDtoBeta, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This API consumes a notification that a recommended access request item was viewed. Future recommendations with this item will be marked with viewed=true. This can be useful for the consumer to determine if there are any new/unviewed recommendations.\n * @summary Notification of Viewed Access Request Recommendations\n * @param {AccessRequestRecommendationActionItemDtoBeta} accessRequestRecommendationActionItemDtoBeta The recommended access that was viewed for an identity.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n addAccessRequestRecommendationsViewedItem: function (accessRequestRecommendationActionItemDtoBeta, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.addAccessRequestRecommendationsViewedItem(accessRequestRecommendationActionItemDtoBeta, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This API consumes a notification that a set of recommended access request item were viewed. Future recommendations with these items will be marked with viewed=true. This can be useful for the consumer to determine if there are any new/unviewed recommendations.\n * @summary Notification of Viewed Access Request Recommendations in Bulk\n * @param {Array} accessRequestRecommendationActionItemDtoBeta The recommended access items that were viewed for an identity.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n addAccessRequestRecommendationsViewedItems: function (accessRequestRecommendationActionItemDtoBeta, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.addAccessRequestRecommendationsViewedItems(accessRequestRecommendationActionItemDtoBeta, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This API returns the access request recommendations for the specified identity. The default identity is *me* which indicates the current user.\n * @summary Identity Access Request Recommendations\n * @param {string} [identityId] Get access request recommendations for an identityId. *me* indicates the current user.\n * @param {number} [limit] Max number of results to return.\n * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {boolean} [includeTranslationMessages] If *true* it will populate a list of translation messages in the response.\n * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **access.name**: *co* **access.type**: *eq, in* **access.description**: *co, eq, in*\n * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **access.name, access.type** By default the recommendations are sorted by highest confidence first.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getAccessRequestRecommendations: function (identityId, limit, offset, count, includeTranslationMessages, filters, sorters, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.getAccessRequestRecommendations(identityId, limit, offset, count, includeTranslationMessages, filters, sorters, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This API returns the list of ignored access request recommendations.\n * @summary List of Ignored Access Request Recommendations\n * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **access.id**: *eq, in* **access.type**: *eq, in* **identityId**: *eq, in*\n * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **access.id, access.type, identityId, timestamp**\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getAccessRequestRecommendationsIgnoredItems: function (limit, offset, count, filters, sorters, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.getAccessRequestRecommendationsIgnoredItems(limit, offset, count, filters, sorters, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This API returns a list of requested access request recommendations.\n * @summary List of Requested Access Request Recommendations\n * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **access.id**: *eq, in* **access.type**: *eq, in* **identityId**: *eq, in*\n * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **access.id, access.type, identityId, timestamp**\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getAccessRequestRecommendationsRequestedItems: function (limit, offset, count, filters, sorters, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.getAccessRequestRecommendationsRequestedItems(limit, offset, count, filters, sorters, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This API returns the list of viewed access request recommendations.\n * @summary List of Viewed Access Request Recommendations\n * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **access.id**: *eq, in* **access.type**: *eq, in* **identityId**: *eq, in*\n * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **access.id, access.type, identityId, timestamp**\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getAccessRequestRecommendationsViewedItems: function (limit, offset, count, filters, sorters, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.getAccessRequestRecommendationsViewedItems(limit, offset, count, filters, sorters, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * The getMessageCatalogs API returns message catalog based on the language headers in the requested object.\n * @summary Get Message catalogs\n * @param {'recommender' | 'access-request-recommender'} catalogId The ID of the message catalog.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getMessageCatalogs: function (catalogId, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.getMessageCatalogs(catalogId, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n };\n};\nexports.IAIAccessRequestRecommendationsBetaApiFp = IAIAccessRequestRecommendationsBetaApiFp;\n/**\n * IAIAccessRequestRecommendationsBetaApi - factory interface\n * @export\n */\nvar IAIAccessRequestRecommendationsBetaApiFactory = function (configuration, basePath, axios) {\n var localVarFp = (0, exports.IAIAccessRequestRecommendationsBetaApiFp)(configuration);\n return {\n /**\n * This API ignores a recommended access request item. Once an item is ignored, it will be marked as ignored=true if it is still a recommended item. The consumer can decide to hide ignored recommendations.\n * @summary Notification of Ignored Access Request Recommendations\n * @param {AccessRequestRecommendationActionItemDtoBeta} accessRequestRecommendationActionItemDtoBeta The recommended access item to ignore for an identity.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n addAccessRequestRecommendationsIgnoredItem: function (accessRequestRecommendationActionItemDtoBeta, axiosOptions) {\n return localVarFp.addAccessRequestRecommendationsIgnoredItem(accessRequestRecommendationActionItemDtoBeta, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This API consumes a notification that a recommended access request item was requested. This API does not actually make the request, it is just a notification. This will help provide feedback in order to improve our recommendations.\n * @summary Notification of Requested Access Request Recommendations\n * @param {AccessRequestRecommendationActionItemDtoBeta} accessRequestRecommendationActionItemDtoBeta The recommended access item that was requested for an identity.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n addAccessRequestRecommendationsRequestedItem: function (accessRequestRecommendationActionItemDtoBeta, axiosOptions) {\n return localVarFp.addAccessRequestRecommendationsRequestedItem(accessRequestRecommendationActionItemDtoBeta, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This API consumes a notification that a recommended access request item was viewed. Future recommendations with this item will be marked with viewed=true. This can be useful for the consumer to determine if there are any new/unviewed recommendations.\n * @summary Notification of Viewed Access Request Recommendations\n * @param {AccessRequestRecommendationActionItemDtoBeta} accessRequestRecommendationActionItemDtoBeta The recommended access that was viewed for an identity.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n addAccessRequestRecommendationsViewedItem: function (accessRequestRecommendationActionItemDtoBeta, axiosOptions) {\n return localVarFp.addAccessRequestRecommendationsViewedItem(accessRequestRecommendationActionItemDtoBeta, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This API consumes a notification that a set of recommended access request item were viewed. Future recommendations with these items will be marked with viewed=true. This can be useful for the consumer to determine if there are any new/unviewed recommendations.\n * @summary Notification of Viewed Access Request Recommendations in Bulk\n * @param {Array} accessRequestRecommendationActionItemDtoBeta The recommended access items that were viewed for an identity.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n addAccessRequestRecommendationsViewedItems: function (accessRequestRecommendationActionItemDtoBeta, axiosOptions) {\n return localVarFp.addAccessRequestRecommendationsViewedItems(accessRequestRecommendationActionItemDtoBeta, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This API returns the access request recommendations for the specified identity. The default identity is *me* which indicates the current user.\n * @summary Identity Access Request Recommendations\n * @param {string} [identityId] Get access request recommendations for an identityId. *me* indicates the current user.\n * @param {number} [limit] Max number of results to return.\n * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {boolean} [includeTranslationMessages] If *true* it will populate a list of translation messages in the response.\n * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **access.name**: *co* **access.type**: *eq, in* **access.description**: *co, eq, in*\n * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **access.name, access.type** By default the recommendations are sorted by highest confidence first.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getAccessRequestRecommendations: function (identityId, limit, offset, count, includeTranslationMessages, filters, sorters, axiosOptions) {\n return localVarFp.getAccessRequestRecommendations(identityId, limit, offset, count, includeTranslationMessages, filters, sorters, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This API returns the list of ignored access request recommendations.\n * @summary List of Ignored Access Request Recommendations\n * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **access.id**: *eq, in* **access.type**: *eq, in* **identityId**: *eq, in*\n * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **access.id, access.type, identityId, timestamp**\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getAccessRequestRecommendationsIgnoredItems: function (limit, offset, count, filters, sorters, axiosOptions) {\n return localVarFp.getAccessRequestRecommendationsIgnoredItems(limit, offset, count, filters, sorters, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This API returns a list of requested access request recommendations.\n * @summary List of Requested Access Request Recommendations\n * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **access.id**: *eq, in* **access.type**: *eq, in* **identityId**: *eq, in*\n * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **access.id, access.type, identityId, timestamp**\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getAccessRequestRecommendationsRequestedItems: function (limit, offset, count, filters, sorters, axiosOptions) {\n return localVarFp.getAccessRequestRecommendationsRequestedItems(limit, offset, count, filters, sorters, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This API returns the list of viewed access request recommendations.\n * @summary List of Viewed Access Request Recommendations\n * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **access.id**: *eq, in* **access.type**: *eq, in* **identityId**: *eq, in*\n * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **access.id, access.type, identityId, timestamp**\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getAccessRequestRecommendationsViewedItems: function (limit, offset, count, filters, sorters, axiosOptions) {\n return localVarFp.getAccessRequestRecommendationsViewedItems(limit, offset, count, filters, sorters, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * The getMessageCatalogs API returns message catalog based on the language headers in the requested object.\n * @summary Get Message catalogs\n * @param {'recommender' | 'access-request-recommender'} catalogId The ID of the message catalog.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getMessageCatalogs: function (catalogId, axiosOptions) {\n return localVarFp.getMessageCatalogs(catalogId, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n };\n};\nexports.IAIAccessRequestRecommendationsBetaApiFactory = IAIAccessRequestRecommendationsBetaApiFactory;\n/**\n * IAIAccessRequestRecommendationsBetaApi - object-oriented interface\n * @export\n * @class IAIAccessRequestRecommendationsBetaApi\n * @extends {BaseAPI}\n */\nvar IAIAccessRequestRecommendationsBetaApi = /** @class */ (function (_super) {\n __extends(IAIAccessRequestRecommendationsBetaApi, _super);\n function IAIAccessRequestRecommendationsBetaApi() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n * This API ignores a recommended access request item. Once an item is ignored, it will be marked as ignored=true if it is still a recommended item. The consumer can decide to hide ignored recommendations.\n * @summary Notification of Ignored Access Request Recommendations\n * @param {IAIAccessRequestRecommendationsBetaApiAddAccessRequestRecommendationsIgnoredItemRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof IAIAccessRequestRecommendationsBetaApi\n */\n IAIAccessRequestRecommendationsBetaApi.prototype.addAccessRequestRecommendationsIgnoredItem = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.IAIAccessRequestRecommendationsBetaApiFp)(this.configuration).addAccessRequestRecommendationsIgnoredItem(requestParameters.accessRequestRecommendationActionItemDtoBeta, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This API consumes a notification that a recommended access request item was requested. This API does not actually make the request, it is just a notification. This will help provide feedback in order to improve our recommendations.\n * @summary Notification of Requested Access Request Recommendations\n * @param {IAIAccessRequestRecommendationsBetaApiAddAccessRequestRecommendationsRequestedItemRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof IAIAccessRequestRecommendationsBetaApi\n */\n IAIAccessRequestRecommendationsBetaApi.prototype.addAccessRequestRecommendationsRequestedItem = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.IAIAccessRequestRecommendationsBetaApiFp)(this.configuration).addAccessRequestRecommendationsRequestedItem(requestParameters.accessRequestRecommendationActionItemDtoBeta, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This API consumes a notification that a recommended access request item was viewed. Future recommendations with this item will be marked with viewed=true. This can be useful for the consumer to determine if there are any new/unviewed recommendations.\n * @summary Notification of Viewed Access Request Recommendations\n * @param {IAIAccessRequestRecommendationsBetaApiAddAccessRequestRecommendationsViewedItemRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof IAIAccessRequestRecommendationsBetaApi\n */\n IAIAccessRequestRecommendationsBetaApi.prototype.addAccessRequestRecommendationsViewedItem = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.IAIAccessRequestRecommendationsBetaApiFp)(this.configuration).addAccessRequestRecommendationsViewedItem(requestParameters.accessRequestRecommendationActionItemDtoBeta, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This API consumes a notification that a set of recommended access request item were viewed. Future recommendations with these items will be marked with viewed=true. This can be useful for the consumer to determine if there are any new/unviewed recommendations.\n * @summary Notification of Viewed Access Request Recommendations in Bulk\n * @param {IAIAccessRequestRecommendationsBetaApiAddAccessRequestRecommendationsViewedItemsRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof IAIAccessRequestRecommendationsBetaApi\n */\n IAIAccessRequestRecommendationsBetaApi.prototype.addAccessRequestRecommendationsViewedItems = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.IAIAccessRequestRecommendationsBetaApiFp)(this.configuration).addAccessRequestRecommendationsViewedItems(requestParameters.accessRequestRecommendationActionItemDtoBeta, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This API returns the access request recommendations for the specified identity. The default identity is *me* which indicates the current user.\n * @summary Identity Access Request Recommendations\n * @param {IAIAccessRequestRecommendationsBetaApiGetAccessRequestRecommendationsRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof IAIAccessRequestRecommendationsBetaApi\n */\n IAIAccessRequestRecommendationsBetaApi.prototype.getAccessRequestRecommendations = function (requestParameters, axiosOptions) {\n var _this = this;\n if (requestParameters === void 0) { requestParameters = {}; }\n return (0, exports.IAIAccessRequestRecommendationsBetaApiFp)(this.configuration).getAccessRequestRecommendations(requestParameters.identityId, requestParameters.limit, requestParameters.offset, requestParameters.count, requestParameters.includeTranslationMessages, requestParameters.filters, requestParameters.sorters, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This API returns the list of ignored access request recommendations.\n * @summary List of Ignored Access Request Recommendations\n * @param {IAIAccessRequestRecommendationsBetaApiGetAccessRequestRecommendationsIgnoredItemsRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof IAIAccessRequestRecommendationsBetaApi\n */\n IAIAccessRequestRecommendationsBetaApi.prototype.getAccessRequestRecommendationsIgnoredItems = function (requestParameters, axiosOptions) {\n var _this = this;\n if (requestParameters === void 0) { requestParameters = {}; }\n return (0, exports.IAIAccessRequestRecommendationsBetaApiFp)(this.configuration).getAccessRequestRecommendationsIgnoredItems(requestParameters.limit, requestParameters.offset, requestParameters.count, requestParameters.filters, requestParameters.sorters, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This API returns a list of requested access request recommendations.\n * @summary List of Requested Access Request Recommendations\n * @param {IAIAccessRequestRecommendationsBetaApiGetAccessRequestRecommendationsRequestedItemsRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof IAIAccessRequestRecommendationsBetaApi\n */\n IAIAccessRequestRecommendationsBetaApi.prototype.getAccessRequestRecommendationsRequestedItems = function (requestParameters, axiosOptions) {\n var _this = this;\n if (requestParameters === void 0) { requestParameters = {}; }\n return (0, exports.IAIAccessRequestRecommendationsBetaApiFp)(this.configuration).getAccessRequestRecommendationsRequestedItems(requestParameters.limit, requestParameters.offset, requestParameters.count, requestParameters.filters, requestParameters.sorters, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This API returns the list of viewed access request recommendations.\n * @summary List of Viewed Access Request Recommendations\n * @param {IAIAccessRequestRecommendationsBetaApiGetAccessRequestRecommendationsViewedItemsRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof IAIAccessRequestRecommendationsBetaApi\n */\n IAIAccessRequestRecommendationsBetaApi.prototype.getAccessRequestRecommendationsViewedItems = function (requestParameters, axiosOptions) {\n var _this = this;\n if (requestParameters === void 0) { requestParameters = {}; }\n return (0, exports.IAIAccessRequestRecommendationsBetaApiFp)(this.configuration).getAccessRequestRecommendationsViewedItems(requestParameters.limit, requestParameters.offset, requestParameters.count, requestParameters.filters, requestParameters.sorters, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * The getMessageCatalogs API returns message catalog based on the language headers in the requested object.\n * @summary Get Message catalogs\n * @param {IAIAccessRequestRecommendationsBetaApiGetMessageCatalogsRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof IAIAccessRequestRecommendationsBetaApi\n */\n IAIAccessRequestRecommendationsBetaApi.prototype.getMessageCatalogs = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.IAIAccessRequestRecommendationsBetaApiFp)(this.configuration).getMessageCatalogs(requestParameters.catalogId, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n return IAIAccessRequestRecommendationsBetaApi;\n}(base_1.BaseAPI));\nexports.IAIAccessRequestRecommendationsBetaApi = IAIAccessRequestRecommendationsBetaApi;\n/**\n * IAICommonAccessBetaApi - axios parameter creator\n * @export\n */\nvar IAICommonAccessBetaApiAxiosParamCreator = function (configuration) {\n var _this = this;\n return {\n /**\n * This API is used to add roles/access profiles to the list of common access for a customer. Requires authorization scope of iai:access-modeling:create\n * @summary Create common access items\n * @param {CommonAccessItemRequestBeta} commonAccessItemRequestBeta\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n createCommonAccess: function (commonAccessItemRequestBeta, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'commonAccessItemRequestBeta' is not null or undefined\n (0, common_1.assertParamExists)('createCommonAccess', 'commonAccessItemRequestBeta', commonAccessItemRequestBeta);\n localVarPath = \"/common-access\";\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n localVarHeaderParameter['Content-Type'] = 'application/json';\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(commonAccessItemRequestBeta, localVarRequestOptions, configuration);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This endpoint returns the current common access for a customer. The returned items can be filtered and sorted. Requires authorization scope of iai:access-modeling:read\n * @summary Get a paginated list of common access\n * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **status**: *eq, sw* **reviewedByUser** *eq* **access.id**: *eq, sw* **access.type**: *eq* **access.name**: *sw, eq* **access.description**: *sw, eq*\n * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **access.name, status** By default the common access items are sorted by name, ascending.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getCommonAccess: function (offset, limit, count, filters, sorters, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n localVarPath = \"/common-access\";\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n if (offset !== undefined) {\n localVarQueryParameter['offset'] = offset;\n }\n if (limit !== undefined) {\n localVarQueryParameter['limit'] = limit;\n }\n if (count !== undefined) {\n localVarQueryParameter['count'] = count;\n }\n if (filters !== undefined) {\n localVarQueryParameter['filters'] = filters;\n }\n if (sorters !== undefined) {\n localVarQueryParameter['sorters'] = sorters;\n }\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This submits an update request to the common access application. At this time there are no parameters. Requires authorization scope of iai:access-modeling:update\n * @summary Bulk update common access status\n * @param {Array} commonAccessIDStatusBeta Confirm or deny in bulk the common access ids that are (or aren\\'t) common access\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n updateCommonAccessStatusInBulk: function (commonAccessIDStatusBeta, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'commonAccessIDStatusBeta' is not null or undefined\n (0, common_1.assertParamExists)('updateCommonAccessStatusInBulk', 'commonAccessIDStatusBeta', commonAccessIDStatusBeta);\n localVarPath = \"/common-access/update-status\";\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n localVarHeaderParameter['Content-Type'] = 'application/json';\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(commonAccessIDStatusBeta, localVarRequestOptions, configuration);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n };\n};\nexports.IAICommonAccessBetaApiAxiosParamCreator = IAICommonAccessBetaApiAxiosParamCreator;\n/**\n * IAICommonAccessBetaApi - functional programming interface\n * @export\n */\nvar IAICommonAccessBetaApiFp = function (configuration) {\n var localVarAxiosParamCreator = (0, exports.IAICommonAccessBetaApiAxiosParamCreator)(configuration);\n return {\n /**\n * This API is used to add roles/access profiles to the list of common access for a customer. Requires authorization scope of iai:access-modeling:create\n * @summary Create common access items\n * @param {CommonAccessItemRequestBeta} commonAccessItemRequestBeta\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n createCommonAccess: function (commonAccessItemRequestBeta, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.createCommonAccess(commonAccessItemRequestBeta, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This endpoint returns the current common access for a customer. The returned items can be filtered and sorted. Requires authorization scope of iai:access-modeling:read\n * @summary Get a paginated list of common access\n * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **status**: *eq, sw* **reviewedByUser** *eq* **access.id**: *eq, sw* **access.type**: *eq* **access.name**: *sw, eq* **access.description**: *sw, eq*\n * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **access.name, status** By default the common access items are sorted by name, ascending.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getCommonAccess: function (offset, limit, count, filters, sorters, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.getCommonAccess(offset, limit, count, filters, sorters, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This submits an update request to the common access application. At this time there are no parameters. Requires authorization scope of iai:access-modeling:update\n * @summary Bulk update common access status\n * @param {Array} commonAccessIDStatusBeta Confirm or deny in bulk the common access ids that are (or aren\\'t) common access\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n updateCommonAccessStatusInBulk: function (commonAccessIDStatusBeta, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.updateCommonAccessStatusInBulk(commonAccessIDStatusBeta, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n };\n};\nexports.IAICommonAccessBetaApiFp = IAICommonAccessBetaApiFp;\n/**\n * IAICommonAccessBetaApi - factory interface\n * @export\n */\nvar IAICommonAccessBetaApiFactory = function (configuration, basePath, axios) {\n var localVarFp = (0, exports.IAICommonAccessBetaApiFp)(configuration);\n return {\n /**\n * This API is used to add roles/access profiles to the list of common access for a customer. Requires authorization scope of iai:access-modeling:create\n * @summary Create common access items\n * @param {CommonAccessItemRequestBeta} commonAccessItemRequestBeta\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n createCommonAccess: function (commonAccessItemRequestBeta, axiosOptions) {\n return localVarFp.createCommonAccess(commonAccessItemRequestBeta, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This endpoint returns the current common access for a customer. The returned items can be filtered and sorted. Requires authorization scope of iai:access-modeling:read\n * @summary Get a paginated list of common access\n * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **status**: *eq, sw* **reviewedByUser** *eq* **access.id**: *eq, sw* **access.type**: *eq* **access.name**: *sw, eq* **access.description**: *sw, eq*\n * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **access.name, status** By default the common access items are sorted by name, ascending.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getCommonAccess: function (offset, limit, count, filters, sorters, axiosOptions) {\n return localVarFp.getCommonAccess(offset, limit, count, filters, sorters, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This submits an update request to the common access application. At this time there are no parameters. Requires authorization scope of iai:access-modeling:update\n * @summary Bulk update common access status\n * @param {Array} commonAccessIDStatusBeta Confirm or deny in bulk the common access ids that are (or aren\\'t) common access\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n updateCommonAccessStatusInBulk: function (commonAccessIDStatusBeta, axiosOptions) {\n return localVarFp.updateCommonAccessStatusInBulk(commonAccessIDStatusBeta, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n };\n};\nexports.IAICommonAccessBetaApiFactory = IAICommonAccessBetaApiFactory;\n/**\n * IAICommonAccessBetaApi - object-oriented interface\n * @export\n * @class IAICommonAccessBetaApi\n * @extends {BaseAPI}\n */\nvar IAICommonAccessBetaApi = /** @class */ (function (_super) {\n __extends(IAICommonAccessBetaApi, _super);\n function IAICommonAccessBetaApi() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n * This API is used to add roles/access profiles to the list of common access for a customer. Requires authorization scope of iai:access-modeling:create\n * @summary Create common access items\n * @param {IAICommonAccessBetaApiCreateCommonAccessRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof IAICommonAccessBetaApi\n */\n IAICommonAccessBetaApi.prototype.createCommonAccess = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.IAICommonAccessBetaApiFp)(this.configuration).createCommonAccess(requestParameters.commonAccessItemRequestBeta, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This endpoint returns the current common access for a customer. The returned items can be filtered and sorted. Requires authorization scope of iai:access-modeling:read\n * @summary Get a paginated list of common access\n * @param {IAICommonAccessBetaApiGetCommonAccessRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof IAICommonAccessBetaApi\n */\n IAICommonAccessBetaApi.prototype.getCommonAccess = function (requestParameters, axiosOptions) {\n var _this = this;\n if (requestParameters === void 0) { requestParameters = {}; }\n return (0, exports.IAICommonAccessBetaApiFp)(this.configuration).getCommonAccess(requestParameters.offset, requestParameters.limit, requestParameters.count, requestParameters.filters, requestParameters.sorters, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This submits an update request to the common access application. At this time there are no parameters. Requires authorization scope of iai:access-modeling:update\n * @summary Bulk update common access status\n * @param {IAICommonAccessBetaApiUpdateCommonAccessStatusInBulkRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof IAICommonAccessBetaApi\n */\n IAICommonAccessBetaApi.prototype.updateCommonAccessStatusInBulk = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.IAICommonAccessBetaApiFp)(this.configuration).updateCommonAccessStatusInBulk(requestParameters.commonAccessIDStatusBeta, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n return IAICommonAccessBetaApi;\n}(base_1.BaseAPI));\nexports.IAICommonAccessBetaApi = IAICommonAccessBetaApi;\n/**\n * IAIOutliersBetaApi - axios parameter creator\n * @export\n */\nvar IAIOutliersBetaApiAxiosParamCreator = function (configuration) {\n var _this = this;\n return {\n /**\n * This API exports a list of ignored outliers to a CSV as well as list of non-ignored outliers to a CSV. These two CSVs will be zipped and exported Columns will include: identityID, type, firstDetectionDate, latestDetectionDate, ignored, & attributes (defined set of identity attributes) Requires authorization scope of \\'iai:outliers-management:read\\'\n * @summary IAI Identity Outliers Export\n * @param {'LOW_SIMILARITY' | 'STRUCTURAL'} [type] Type of the identity outliers snapshot to filter on\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n exportOutliersZip: function (type, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n localVarPath = \"/outliers/export\";\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n if (type !== undefined) {\n localVarQueryParameter['type'] = type;\n }\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This API receives a summary containing: the number of identities that customer has, the number of outliers, and the type of outlier Requires authorization scope of \\'iai:outliers-management:read\\'\n * @summary IAI Identity Outliers Summary\n * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {'LOW_SIMILARITY' | 'STRUCTURAL'} [type] Type of the identity outliers snapshot to filter on\n * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **snapshotDate**: *ge, le*\n * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **snapshotDate**\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getIdentityOutlierSnapshots: function (limit, offset, type, filters, sorters, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n localVarPath = \"/outlier-summaries\";\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n if (limit !== undefined) {\n localVarQueryParameter['limit'] = limit;\n }\n if (offset !== undefined) {\n localVarQueryParameter['offset'] = offset;\n }\n if (type !== undefined) {\n localVarQueryParameter['type'] = type;\n }\n if (filters !== undefined) {\n localVarQueryParameter['filters'] = filters;\n }\n if (sorters !== undefined) {\n localVarQueryParameter['sorters'] = sorters;\n }\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This API receives a list of outliers, containing data such as: identityId, outlier type, detection dates, identity attributes, if identity is ignore, and certification information Requires authorization scope of \\'iai:outliers-management:read\\'\n * @summary IAI Get Identity Outliers\n * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {'LOW_SIMILARITY' | 'STRUCTURAL'} [type] Type of the identity outliers snapshot to filter on\n * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **attributes**: *eq, sw, co, in* **firstDetectionDate**: *ge, le* **certStatus**: *eq* **ignored**: *eq* **score**: *ge, le*\n * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **firstDetectionDate, attributes, score**\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getIdentityOutliers: function (limit, offset, count, type, filters, sorters, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n localVarPath = \"/outliers\";\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n if (limit !== undefined) {\n localVarQueryParameter['limit'] = limit;\n }\n if (offset !== undefined) {\n localVarQueryParameter['offset'] = offset;\n }\n if (count !== undefined) {\n localVarQueryParameter['count'] = count;\n }\n if (type !== undefined) {\n localVarQueryParameter['type'] = type;\n }\n if (filters !== undefined) {\n localVarQueryParameter['filters'] = filters;\n }\n if (sorters !== undefined) {\n localVarQueryParameter['sorters'] = sorters;\n }\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This API returns a most recent snapshot of each outlier type, each containing: the number of identities that customer has, the number of outliers, and the type of outlier Requires authorization scope of \\'iai:outliers-management:read\\'\n * @summary IAI Identity Outliers Latest Summary\n * @param {'LOW_SIMILARITY' | 'STRUCTURAL'} [type] Type of the identity outliers snapshot to filter on\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getLatestIdentityOutlierSnapshots: function (type, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n localVarPath = \"/outlier-summaries/latest\";\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n if (type !== undefined) {\n localVarQueryParameter['type'] = type;\n }\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This API returns a summary of a contributing feature for an identity outlier. The object contains: contributing feature name (translated text or message key), identity outlier display name, feature values, feature definition and explanation (translated text or message key), peer display name and identityId, access item reference, translation messages object Requires authorization scope of \\'iai:outliers-management:read\\'\n * @summary Get identity outlier contibuting feature summary\n * @param {string} outlierFeatureId Contributing feature id\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getOutlierContributingFeatureSummary: function (outlierFeatureId, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'outlierFeatureId' is not null or undefined\n (0, common_1.assertParamExists)('getOutlierContributingFeatureSummary', 'outlierFeatureId', outlierFeatureId);\n localVarPath = \"/outlier-feature-summaries/{outlierFeatureId}\"\n .replace(\"{\".concat(\"outlierFeatureId\", \"}\"), encodeURIComponent(String(outlierFeatureId)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This API returns a list of contributing feature objects for a single outlier. The object contains: feature name, feature value type, value, importance, display name (translated text or message key), description (translated text or message key), translation messages object Requires authorization scope of \\'iai:outliers-management:read\\'\n * @summary Get identity outlier\\'s contibuting features\n * @param {string} outlierId The outlier id\n * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {string} [includeTranslationMessages] Whether or not to include translation messages object in returned response\n * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **importance**\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getPeerGroupOutliersContributingFeatures: function (outlierId, limit, offset, count, includeTranslationMessages, sorters, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'outlierId' is not null or undefined\n (0, common_1.assertParamExists)('getPeerGroupOutliersContributingFeatures', 'outlierId', outlierId);\n localVarPath = \"/outliers/{outlierId}/contributing-features\"\n .replace(\"{\".concat(\"outlierId\", \"}\"), encodeURIComponent(String(outlierId)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n if (limit !== undefined) {\n localVarQueryParameter['limit'] = limit;\n }\n if (offset !== undefined) {\n localVarQueryParameter['offset'] = offset;\n }\n if (count !== undefined) {\n localVarQueryParameter['count'] = count;\n }\n if (includeTranslationMessages !== undefined) {\n localVarQueryParameter['include-translation-messages'] = includeTranslationMessages;\n }\n if (sorters !== undefined) {\n localVarQueryParameter['sorters'] = sorters;\n }\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This API receives a list of IdentityIDs in the request, changes the outliers to be ignored--returning a 204 if successful. Requires authorization scope of \\'iai:outliers-management:update\\'\n * @summary IAI Identity Outliers Ignore\n * @param {Array} requestBody\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n ignoreIdentityOutliers: function (requestBody, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'requestBody' is not null or undefined\n (0, common_1.assertParamExists)('ignoreIdentityOutliers', 'requestBody', requestBody);\n localVarPath = \"/outliers/ignore\";\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n localVarHeaderParameter['Content-Type'] = 'application/json';\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(requestBody, localVarRequestOptions, configuration);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This API returns a list of the enriched access items associated with each feature filtered by the access item type The object contains: accessItemId, display name (translated text or message key), description (translated text or message key), accessType, sourceName, extremelyRare Requires authorization scope of \\'iai:outliers-management:read\\'\n * @summary Gets a list of access items associated with each identity outlier contributing feature\n * @param {string} outlierId The outlier id\n * @param {'radical_entitlement_count' | 'entitlement_count' | 'max_jaccard_similarity' | 'mean_max_bundle_concurrency' | 'single_entitlement_bundle_count' | 'peerless_score'} contributingFeatureName The name of contributing feature\n * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {string} [accessType] The type of access item for the identity outlier contributing feature. If not provided, it returns all\n * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **displayName**\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n listOutliersContributingFeatureAccessItems: function (outlierId, contributingFeatureName, limit, offset, count, accessType, sorters, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'outlierId' is not null or undefined\n (0, common_1.assertParamExists)('listOutliersContributingFeatureAccessItems', 'outlierId', outlierId);\n // verify required parameter 'contributingFeatureName' is not null or undefined\n (0, common_1.assertParamExists)('listOutliersContributingFeatureAccessItems', 'contributingFeatureName', contributingFeatureName);\n localVarPath = \"/outliers/{outlierId}/feature-details/{contributingFeatureName}/access-items\"\n .replace(\"{\".concat(\"outlierId\", \"}\"), encodeURIComponent(String(outlierId)))\n .replace(\"{\".concat(\"contributingFeatureName\", \"}\"), encodeURIComponent(String(contributingFeatureName)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n if (limit !== undefined) {\n localVarQueryParameter['limit'] = limit;\n }\n if (offset !== undefined) {\n localVarQueryParameter['offset'] = offset;\n }\n if (count !== undefined) {\n localVarQueryParameter['count'] = count;\n }\n if (accessType !== undefined) {\n localVarQueryParameter['accessType'] = accessType;\n }\n if (sorters !== undefined) {\n localVarQueryParameter['sorters'] = sorters;\n }\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This API receives a list of IdentityIDs in the request, changes the outliers to be un-ignored--returning a 204 if successful. Requires authorization scope of \\'iai:outliers-management:update\\'\n * @summary IAI Identity Outliers Unignore\n * @param {Array} requestBody\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n unIgnoreIdentityOutliers: function (requestBody, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'requestBody' is not null or undefined\n (0, common_1.assertParamExists)('unIgnoreIdentityOutliers', 'requestBody', requestBody);\n localVarPath = \"/outliers/unignore\";\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n localVarHeaderParameter['Content-Type'] = 'application/json';\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(requestBody, localVarRequestOptions, configuration);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n };\n};\nexports.IAIOutliersBetaApiAxiosParamCreator = IAIOutliersBetaApiAxiosParamCreator;\n/**\n * IAIOutliersBetaApi - functional programming interface\n * @export\n */\nvar IAIOutliersBetaApiFp = function (configuration) {\n var localVarAxiosParamCreator = (0, exports.IAIOutliersBetaApiAxiosParamCreator)(configuration);\n return {\n /**\n * This API exports a list of ignored outliers to a CSV as well as list of non-ignored outliers to a CSV. These two CSVs will be zipped and exported Columns will include: identityID, type, firstDetectionDate, latestDetectionDate, ignored, & attributes (defined set of identity attributes) Requires authorization scope of \\'iai:outliers-management:read\\'\n * @summary IAI Identity Outliers Export\n * @param {'LOW_SIMILARITY' | 'STRUCTURAL'} [type] Type of the identity outliers snapshot to filter on\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n exportOutliersZip: function (type, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.exportOutliersZip(type, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This API receives a summary containing: the number of identities that customer has, the number of outliers, and the type of outlier Requires authorization scope of \\'iai:outliers-management:read\\'\n * @summary IAI Identity Outliers Summary\n * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {'LOW_SIMILARITY' | 'STRUCTURAL'} [type] Type of the identity outliers snapshot to filter on\n * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **snapshotDate**: *ge, le*\n * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **snapshotDate**\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getIdentityOutlierSnapshots: function (limit, offset, type, filters, sorters, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.getIdentityOutlierSnapshots(limit, offset, type, filters, sorters, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This API receives a list of outliers, containing data such as: identityId, outlier type, detection dates, identity attributes, if identity is ignore, and certification information Requires authorization scope of \\'iai:outliers-management:read\\'\n * @summary IAI Get Identity Outliers\n * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {'LOW_SIMILARITY' | 'STRUCTURAL'} [type] Type of the identity outliers snapshot to filter on\n * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **attributes**: *eq, sw, co, in* **firstDetectionDate**: *ge, le* **certStatus**: *eq* **ignored**: *eq* **score**: *ge, le*\n * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **firstDetectionDate, attributes, score**\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getIdentityOutliers: function (limit, offset, count, type, filters, sorters, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.getIdentityOutliers(limit, offset, count, type, filters, sorters, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This API returns a most recent snapshot of each outlier type, each containing: the number of identities that customer has, the number of outliers, and the type of outlier Requires authorization scope of \\'iai:outliers-management:read\\'\n * @summary IAI Identity Outliers Latest Summary\n * @param {'LOW_SIMILARITY' | 'STRUCTURAL'} [type] Type of the identity outliers snapshot to filter on\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getLatestIdentityOutlierSnapshots: function (type, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.getLatestIdentityOutlierSnapshots(type, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This API returns a summary of a contributing feature for an identity outlier. The object contains: contributing feature name (translated text or message key), identity outlier display name, feature values, feature definition and explanation (translated text or message key), peer display name and identityId, access item reference, translation messages object Requires authorization scope of \\'iai:outliers-management:read\\'\n * @summary Get identity outlier contibuting feature summary\n * @param {string} outlierFeatureId Contributing feature id\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getOutlierContributingFeatureSummary: function (outlierFeatureId, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.getOutlierContributingFeatureSummary(outlierFeatureId, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This API returns a list of contributing feature objects for a single outlier. The object contains: feature name, feature value type, value, importance, display name (translated text or message key), description (translated text or message key), translation messages object Requires authorization scope of \\'iai:outliers-management:read\\'\n * @summary Get identity outlier\\'s contibuting features\n * @param {string} outlierId The outlier id\n * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {string} [includeTranslationMessages] Whether or not to include translation messages object in returned response\n * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **importance**\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getPeerGroupOutliersContributingFeatures: function (outlierId, limit, offset, count, includeTranslationMessages, sorters, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.getPeerGroupOutliersContributingFeatures(outlierId, limit, offset, count, includeTranslationMessages, sorters, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This API receives a list of IdentityIDs in the request, changes the outliers to be ignored--returning a 204 if successful. Requires authorization scope of \\'iai:outliers-management:update\\'\n * @summary IAI Identity Outliers Ignore\n * @param {Array} requestBody\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n ignoreIdentityOutliers: function (requestBody, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.ignoreIdentityOutliers(requestBody, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This API returns a list of the enriched access items associated with each feature filtered by the access item type The object contains: accessItemId, display name (translated text or message key), description (translated text or message key), accessType, sourceName, extremelyRare Requires authorization scope of \\'iai:outliers-management:read\\'\n * @summary Gets a list of access items associated with each identity outlier contributing feature\n * @param {string} outlierId The outlier id\n * @param {'radical_entitlement_count' | 'entitlement_count' | 'max_jaccard_similarity' | 'mean_max_bundle_concurrency' | 'single_entitlement_bundle_count' | 'peerless_score'} contributingFeatureName The name of contributing feature\n * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {string} [accessType] The type of access item for the identity outlier contributing feature. If not provided, it returns all\n * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **displayName**\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n listOutliersContributingFeatureAccessItems: function (outlierId, contributingFeatureName, limit, offset, count, accessType, sorters, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.listOutliersContributingFeatureAccessItems(outlierId, contributingFeatureName, limit, offset, count, accessType, sorters, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This API receives a list of IdentityIDs in the request, changes the outliers to be un-ignored--returning a 204 if successful. Requires authorization scope of \\'iai:outliers-management:update\\'\n * @summary IAI Identity Outliers Unignore\n * @param {Array} requestBody\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n unIgnoreIdentityOutliers: function (requestBody, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.unIgnoreIdentityOutliers(requestBody, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n };\n};\nexports.IAIOutliersBetaApiFp = IAIOutliersBetaApiFp;\n/**\n * IAIOutliersBetaApi - factory interface\n * @export\n */\nvar IAIOutliersBetaApiFactory = function (configuration, basePath, axios) {\n var localVarFp = (0, exports.IAIOutliersBetaApiFp)(configuration);\n return {\n /**\n * This API exports a list of ignored outliers to a CSV as well as list of non-ignored outliers to a CSV. These two CSVs will be zipped and exported Columns will include: identityID, type, firstDetectionDate, latestDetectionDate, ignored, & attributes (defined set of identity attributes) Requires authorization scope of \\'iai:outliers-management:read\\'\n * @summary IAI Identity Outliers Export\n * @param {'LOW_SIMILARITY' | 'STRUCTURAL'} [type] Type of the identity outliers snapshot to filter on\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n exportOutliersZip: function (type, axiosOptions) {\n return localVarFp.exportOutliersZip(type, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This API receives a summary containing: the number of identities that customer has, the number of outliers, and the type of outlier Requires authorization scope of \\'iai:outliers-management:read\\'\n * @summary IAI Identity Outliers Summary\n * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {'LOW_SIMILARITY' | 'STRUCTURAL'} [type] Type of the identity outliers snapshot to filter on\n * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **snapshotDate**: *ge, le*\n * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **snapshotDate**\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getIdentityOutlierSnapshots: function (limit, offset, type, filters, sorters, axiosOptions) {\n return localVarFp.getIdentityOutlierSnapshots(limit, offset, type, filters, sorters, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This API receives a list of outliers, containing data such as: identityId, outlier type, detection dates, identity attributes, if identity is ignore, and certification information Requires authorization scope of \\'iai:outliers-management:read\\'\n * @summary IAI Get Identity Outliers\n * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {'LOW_SIMILARITY' | 'STRUCTURAL'} [type] Type of the identity outliers snapshot to filter on\n * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **attributes**: *eq, sw, co, in* **firstDetectionDate**: *ge, le* **certStatus**: *eq* **ignored**: *eq* **score**: *ge, le*\n * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **firstDetectionDate, attributes, score**\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getIdentityOutliers: function (limit, offset, count, type, filters, sorters, axiosOptions) {\n return localVarFp.getIdentityOutliers(limit, offset, count, type, filters, sorters, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This API returns a most recent snapshot of each outlier type, each containing: the number of identities that customer has, the number of outliers, and the type of outlier Requires authorization scope of \\'iai:outliers-management:read\\'\n * @summary IAI Identity Outliers Latest Summary\n * @param {'LOW_SIMILARITY' | 'STRUCTURAL'} [type] Type of the identity outliers snapshot to filter on\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getLatestIdentityOutlierSnapshots: function (type, axiosOptions) {\n return localVarFp.getLatestIdentityOutlierSnapshots(type, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This API returns a summary of a contributing feature for an identity outlier. The object contains: contributing feature name (translated text or message key), identity outlier display name, feature values, feature definition and explanation (translated text or message key), peer display name and identityId, access item reference, translation messages object Requires authorization scope of \\'iai:outliers-management:read\\'\n * @summary Get identity outlier contibuting feature summary\n * @param {string} outlierFeatureId Contributing feature id\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getOutlierContributingFeatureSummary: function (outlierFeatureId, axiosOptions) {\n return localVarFp.getOutlierContributingFeatureSummary(outlierFeatureId, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This API returns a list of contributing feature objects for a single outlier. The object contains: feature name, feature value type, value, importance, display name (translated text or message key), description (translated text or message key), translation messages object Requires authorization scope of \\'iai:outliers-management:read\\'\n * @summary Get identity outlier\\'s contibuting features\n * @param {string} outlierId The outlier id\n * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {string} [includeTranslationMessages] Whether or not to include translation messages object in returned response\n * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **importance**\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getPeerGroupOutliersContributingFeatures: function (outlierId, limit, offset, count, includeTranslationMessages, sorters, axiosOptions) {\n return localVarFp.getPeerGroupOutliersContributingFeatures(outlierId, limit, offset, count, includeTranslationMessages, sorters, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This API receives a list of IdentityIDs in the request, changes the outliers to be ignored--returning a 204 if successful. Requires authorization scope of \\'iai:outliers-management:update\\'\n * @summary IAI Identity Outliers Ignore\n * @param {Array} requestBody\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n ignoreIdentityOutliers: function (requestBody, axiosOptions) {\n return localVarFp.ignoreIdentityOutliers(requestBody, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This API returns a list of the enriched access items associated with each feature filtered by the access item type The object contains: accessItemId, display name (translated text or message key), description (translated text or message key), accessType, sourceName, extremelyRare Requires authorization scope of \\'iai:outliers-management:read\\'\n * @summary Gets a list of access items associated with each identity outlier contributing feature\n * @param {string} outlierId The outlier id\n * @param {'radical_entitlement_count' | 'entitlement_count' | 'max_jaccard_similarity' | 'mean_max_bundle_concurrency' | 'single_entitlement_bundle_count' | 'peerless_score'} contributingFeatureName The name of contributing feature\n * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {string} [accessType] The type of access item for the identity outlier contributing feature. If not provided, it returns all\n * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **displayName**\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n listOutliersContributingFeatureAccessItems: function (outlierId, contributingFeatureName, limit, offset, count, accessType, sorters, axiosOptions) {\n return localVarFp.listOutliersContributingFeatureAccessItems(outlierId, contributingFeatureName, limit, offset, count, accessType, sorters, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This API receives a list of IdentityIDs in the request, changes the outliers to be un-ignored--returning a 204 if successful. Requires authorization scope of \\'iai:outliers-management:update\\'\n * @summary IAI Identity Outliers Unignore\n * @param {Array} requestBody\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n unIgnoreIdentityOutliers: function (requestBody, axiosOptions) {\n return localVarFp.unIgnoreIdentityOutliers(requestBody, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n };\n};\nexports.IAIOutliersBetaApiFactory = IAIOutliersBetaApiFactory;\n/**\n * IAIOutliersBetaApi - object-oriented interface\n * @export\n * @class IAIOutliersBetaApi\n * @extends {BaseAPI}\n */\nvar IAIOutliersBetaApi = /** @class */ (function (_super) {\n __extends(IAIOutliersBetaApi, _super);\n function IAIOutliersBetaApi() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n * This API exports a list of ignored outliers to a CSV as well as list of non-ignored outliers to a CSV. These two CSVs will be zipped and exported Columns will include: identityID, type, firstDetectionDate, latestDetectionDate, ignored, & attributes (defined set of identity attributes) Requires authorization scope of \\'iai:outliers-management:read\\'\n * @summary IAI Identity Outliers Export\n * @param {IAIOutliersBetaApiExportOutliersZipRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof IAIOutliersBetaApi\n */\n IAIOutliersBetaApi.prototype.exportOutliersZip = function (requestParameters, axiosOptions) {\n var _this = this;\n if (requestParameters === void 0) { requestParameters = {}; }\n return (0, exports.IAIOutliersBetaApiFp)(this.configuration).exportOutliersZip(requestParameters.type, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This API receives a summary containing: the number of identities that customer has, the number of outliers, and the type of outlier Requires authorization scope of \\'iai:outliers-management:read\\'\n * @summary IAI Identity Outliers Summary\n * @param {IAIOutliersBetaApiGetIdentityOutlierSnapshotsRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof IAIOutliersBetaApi\n */\n IAIOutliersBetaApi.prototype.getIdentityOutlierSnapshots = function (requestParameters, axiosOptions) {\n var _this = this;\n if (requestParameters === void 0) { requestParameters = {}; }\n return (0, exports.IAIOutliersBetaApiFp)(this.configuration).getIdentityOutlierSnapshots(requestParameters.limit, requestParameters.offset, requestParameters.type, requestParameters.filters, requestParameters.sorters, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This API receives a list of outliers, containing data such as: identityId, outlier type, detection dates, identity attributes, if identity is ignore, and certification information Requires authorization scope of \\'iai:outliers-management:read\\'\n * @summary IAI Get Identity Outliers\n * @param {IAIOutliersBetaApiGetIdentityOutliersRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof IAIOutliersBetaApi\n */\n IAIOutliersBetaApi.prototype.getIdentityOutliers = function (requestParameters, axiosOptions) {\n var _this = this;\n if (requestParameters === void 0) { requestParameters = {}; }\n return (0, exports.IAIOutliersBetaApiFp)(this.configuration).getIdentityOutliers(requestParameters.limit, requestParameters.offset, requestParameters.count, requestParameters.type, requestParameters.filters, requestParameters.sorters, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This API returns a most recent snapshot of each outlier type, each containing: the number of identities that customer has, the number of outliers, and the type of outlier Requires authorization scope of \\'iai:outliers-management:read\\'\n * @summary IAI Identity Outliers Latest Summary\n * @param {IAIOutliersBetaApiGetLatestIdentityOutlierSnapshotsRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof IAIOutliersBetaApi\n */\n IAIOutliersBetaApi.prototype.getLatestIdentityOutlierSnapshots = function (requestParameters, axiosOptions) {\n var _this = this;\n if (requestParameters === void 0) { requestParameters = {}; }\n return (0, exports.IAIOutliersBetaApiFp)(this.configuration).getLatestIdentityOutlierSnapshots(requestParameters.type, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This API returns a summary of a contributing feature for an identity outlier. The object contains: contributing feature name (translated text or message key), identity outlier display name, feature values, feature definition and explanation (translated text or message key), peer display name and identityId, access item reference, translation messages object Requires authorization scope of \\'iai:outliers-management:read\\'\n * @summary Get identity outlier contibuting feature summary\n * @param {IAIOutliersBetaApiGetOutlierContributingFeatureSummaryRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof IAIOutliersBetaApi\n */\n IAIOutliersBetaApi.prototype.getOutlierContributingFeatureSummary = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.IAIOutliersBetaApiFp)(this.configuration).getOutlierContributingFeatureSummary(requestParameters.outlierFeatureId, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This API returns a list of contributing feature objects for a single outlier. The object contains: feature name, feature value type, value, importance, display name (translated text or message key), description (translated text or message key), translation messages object Requires authorization scope of \\'iai:outliers-management:read\\'\n * @summary Get identity outlier\\'s contibuting features\n * @param {IAIOutliersBetaApiGetPeerGroupOutliersContributingFeaturesRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof IAIOutliersBetaApi\n */\n IAIOutliersBetaApi.prototype.getPeerGroupOutliersContributingFeatures = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.IAIOutliersBetaApiFp)(this.configuration).getPeerGroupOutliersContributingFeatures(requestParameters.outlierId, requestParameters.limit, requestParameters.offset, requestParameters.count, requestParameters.includeTranslationMessages, requestParameters.sorters, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This API receives a list of IdentityIDs in the request, changes the outliers to be ignored--returning a 204 if successful. Requires authorization scope of \\'iai:outliers-management:update\\'\n * @summary IAI Identity Outliers Ignore\n * @param {IAIOutliersBetaApiIgnoreIdentityOutliersRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof IAIOutliersBetaApi\n */\n IAIOutliersBetaApi.prototype.ignoreIdentityOutliers = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.IAIOutliersBetaApiFp)(this.configuration).ignoreIdentityOutliers(requestParameters.requestBody, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This API returns a list of the enriched access items associated with each feature filtered by the access item type The object contains: accessItemId, display name (translated text or message key), description (translated text or message key), accessType, sourceName, extremelyRare Requires authorization scope of \\'iai:outliers-management:read\\'\n * @summary Gets a list of access items associated with each identity outlier contributing feature\n * @param {IAIOutliersBetaApiListOutliersContributingFeatureAccessItemsRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof IAIOutliersBetaApi\n */\n IAIOutliersBetaApi.prototype.listOutliersContributingFeatureAccessItems = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.IAIOutliersBetaApiFp)(this.configuration).listOutliersContributingFeatureAccessItems(requestParameters.outlierId, requestParameters.contributingFeatureName, requestParameters.limit, requestParameters.offset, requestParameters.count, requestParameters.accessType, requestParameters.sorters, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This API receives a list of IdentityIDs in the request, changes the outliers to be un-ignored--returning a 204 if successful. Requires authorization scope of \\'iai:outliers-management:update\\'\n * @summary IAI Identity Outliers Unignore\n * @param {IAIOutliersBetaApiUnIgnoreIdentityOutliersRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof IAIOutliersBetaApi\n */\n IAIOutliersBetaApi.prototype.unIgnoreIdentityOutliers = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.IAIOutliersBetaApiFp)(this.configuration).unIgnoreIdentityOutliers(requestParameters.requestBody, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n return IAIOutliersBetaApi;\n}(base_1.BaseAPI));\nexports.IAIOutliersBetaApi = IAIOutliersBetaApi;\n/**\n * IAIPeerGroupStrategiesBetaApi - axios parameter creator\n * @export\n */\nvar IAIPeerGroupStrategiesBetaApiAxiosParamCreator = function (configuration) {\n var _this = this;\n return {\n /**\n * -- Deprecated : See \\'IAI Outliers\\' This API will be used by Identity Governance systems to identify identities that are not included in an organization\\'s peer groups. By default, 250 identities are returned. You can specify between 1 and 1000 number of identities that can be returned.\n * @summary Identity Outliers List\n * @param {string} strategy The strategy used to create peer groups. Currently, \\'entitlement\\' is supported.\n * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {*} [axiosOptions] Override http request option.\n * @deprecated\n * @throws {RequiredError}\n */\n getPeerGroupOutliers: function (strategy, limit, offset, count, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'strategy' is not null or undefined\n (0, common_1.assertParamExists)('getPeerGroupOutliers', 'strategy', strategy);\n localVarPath = \"/peer-group-strategies/{strategy}/identity-outliers\"\n .replace(\"{\".concat(\"strategy\", \"}\"), encodeURIComponent(String(strategy)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n if (limit !== undefined) {\n localVarQueryParameter['limit'] = limit;\n }\n if (offset !== undefined) {\n localVarQueryParameter['offset'] = offset;\n }\n if (count !== undefined) {\n localVarQueryParameter['count'] = count;\n }\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n };\n};\nexports.IAIPeerGroupStrategiesBetaApiAxiosParamCreator = IAIPeerGroupStrategiesBetaApiAxiosParamCreator;\n/**\n * IAIPeerGroupStrategiesBetaApi - functional programming interface\n * @export\n */\nvar IAIPeerGroupStrategiesBetaApiFp = function (configuration) {\n var localVarAxiosParamCreator = (0, exports.IAIPeerGroupStrategiesBetaApiAxiosParamCreator)(configuration);\n return {\n /**\n * -- Deprecated : See \\'IAI Outliers\\' This API will be used by Identity Governance systems to identify identities that are not included in an organization\\'s peer groups. By default, 250 identities are returned. You can specify between 1 and 1000 number of identities that can be returned.\n * @summary Identity Outliers List\n * @param {string} strategy The strategy used to create peer groups. Currently, \\'entitlement\\' is supported.\n * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {*} [axiosOptions] Override http request option.\n * @deprecated\n * @throws {RequiredError}\n */\n getPeerGroupOutliers: function (strategy, limit, offset, count, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.getPeerGroupOutliers(strategy, limit, offset, count, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n };\n};\nexports.IAIPeerGroupStrategiesBetaApiFp = IAIPeerGroupStrategiesBetaApiFp;\n/**\n * IAIPeerGroupStrategiesBetaApi - factory interface\n * @export\n */\nvar IAIPeerGroupStrategiesBetaApiFactory = function (configuration, basePath, axios) {\n var localVarFp = (0, exports.IAIPeerGroupStrategiesBetaApiFp)(configuration);\n return {\n /**\n * -- Deprecated : See \\'IAI Outliers\\' This API will be used by Identity Governance systems to identify identities that are not included in an organization\\'s peer groups. By default, 250 identities are returned. You can specify between 1 and 1000 number of identities that can be returned.\n * @summary Identity Outliers List\n * @param {string} strategy The strategy used to create peer groups. Currently, \\'entitlement\\' is supported.\n * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {*} [axiosOptions] Override http request option.\n * @deprecated\n * @throws {RequiredError}\n */\n getPeerGroupOutliers: function (strategy, limit, offset, count, axiosOptions) {\n return localVarFp.getPeerGroupOutliers(strategy, limit, offset, count, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n };\n};\nexports.IAIPeerGroupStrategiesBetaApiFactory = IAIPeerGroupStrategiesBetaApiFactory;\n/**\n * IAIPeerGroupStrategiesBetaApi - object-oriented interface\n * @export\n * @class IAIPeerGroupStrategiesBetaApi\n * @extends {BaseAPI}\n */\nvar IAIPeerGroupStrategiesBetaApi = /** @class */ (function (_super) {\n __extends(IAIPeerGroupStrategiesBetaApi, _super);\n function IAIPeerGroupStrategiesBetaApi() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n * -- Deprecated : See \\'IAI Outliers\\' This API will be used by Identity Governance systems to identify identities that are not included in an organization\\'s peer groups. By default, 250 identities are returned. You can specify between 1 and 1000 number of identities that can be returned.\n * @summary Identity Outliers List\n * @param {IAIPeerGroupStrategiesBetaApiGetPeerGroupOutliersRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @deprecated\n * @throws {RequiredError}\n * @memberof IAIPeerGroupStrategiesBetaApi\n */\n IAIPeerGroupStrategiesBetaApi.prototype.getPeerGroupOutliers = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.IAIPeerGroupStrategiesBetaApiFp)(this.configuration).getPeerGroupOutliers(requestParameters.strategy, requestParameters.limit, requestParameters.offset, requestParameters.count, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n return IAIPeerGroupStrategiesBetaApi;\n}(base_1.BaseAPI));\nexports.IAIPeerGroupStrategiesBetaApi = IAIPeerGroupStrategiesBetaApi;\n/**\n * IAIRecommendationsBetaApi - axios parameter creator\n * @export\n */\nvar IAIRecommendationsBetaApiAxiosParamCreator = function (configuration) {\n var _this = this;\n return {\n /**\n * The getMessageCatalogs API returns message catalog based on the language headers in the requested object.\n * @summary Get Message catalogs\n * @param {'recommender' | 'access-request-recommender'} catalogId The ID of the message catalog.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getMessageCatalogs: function (catalogId, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'catalogId' is not null or undefined\n (0, common_1.assertParamExists)('getMessageCatalogs', 'catalogId', catalogId);\n localVarPath = \"/translation-catalogs/{catalog-id}\"\n .replace(\"{\".concat(\"catalog-id\", \"}\"), encodeURIComponent(String(catalogId)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * The getRecommendations API returns recommendations based on the requested object. The recommendations are invoked by IdentityIQ and IdentityNow plug-ins that retrieve recommendations based on the performed calculations.\n * @summary Returns a Recommendation Based on Object\n * @param {RecommendationRequestDtoBeta} recommendationRequestDtoBeta\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getRecommendations: function (recommendationRequestDtoBeta, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'recommendationRequestDtoBeta' is not null or undefined\n (0, common_1.assertParamExists)('getRecommendations', 'recommendationRequestDtoBeta', recommendationRequestDtoBeta);\n localVarPath = \"/recommendations/request\";\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n localVarHeaderParameter['Content-Type'] = 'application/json';\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(recommendationRequestDtoBeta, localVarRequestOptions, configuration);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * Retrieves configuration attributes used by certification recommendations.\n * @summary Get certification recommendation config values\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getRecommendationsConfig: function (axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n localVarPath = \"/recommendations/config\";\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * Updates configuration attributes used by certification recommendations.\n * @summary Update certification recommendation config values\n * @param {RecommendationConfigDtoBeta} recommendationConfigDtoBeta\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n updateRecommendationsConfig: function (recommendationConfigDtoBeta, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'recommendationConfigDtoBeta' is not null or undefined\n (0, common_1.assertParamExists)('updateRecommendationsConfig', 'recommendationConfigDtoBeta', recommendationConfigDtoBeta);\n localVarPath = \"/recommendations/config\";\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'PUT' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n localVarHeaderParameter['Content-Type'] = 'application/json';\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(recommendationConfigDtoBeta, localVarRequestOptions, configuration);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n };\n};\nexports.IAIRecommendationsBetaApiAxiosParamCreator = IAIRecommendationsBetaApiAxiosParamCreator;\n/**\n * IAIRecommendationsBetaApi - functional programming interface\n * @export\n */\nvar IAIRecommendationsBetaApiFp = function (configuration) {\n var localVarAxiosParamCreator = (0, exports.IAIRecommendationsBetaApiAxiosParamCreator)(configuration);\n return {\n /**\n * The getMessageCatalogs API returns message catalog based on the language headers in the requested object.\n * @summary Get Message catalogs\n * @param {'recommender' | 'access-request-recommender'} catalogId The ID of the message catalog.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getMessageCatalogs: function (catalogId, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.getMessageCatalogs(catalogId, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * The getRecommendations API returns recommendations based on the requested object. The recommendations are invoked by IdentityIQ and IdentityNow plug-ins that retrieve recommendations based on the performed calculations.\n * @summary Returns a Recommendation Based on Object\n * @param {RecommendationRequestDtoBeta} recommendationRequestDtoBeta\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getRecommendations: function (recommendationRequestDtoBeta, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.getRecommendations(recommendationRequestDtoBeta, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * Retrieves configuration attributes used by certification recommendations.\n * @summary Get certification recommendation config values\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getRecommendationsConfig: function (axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.getRecommendationsConfig(axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * Updates configuration attributes used by certification recommendations.\n * @summary Update certification recommendation config values\n * @param {RecommendationConfigDtoBeta} recommendationConfigDtoBeta\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n updateRecommendationsConfig: function (recommendationConfigDtoBeta, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.updateRecommendationsConfig(recommendationConfigDtoBeta, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n };\n};\nexports.IAIRecommendationsBetaApiFp = IAIRecommendationsBetaApiFp;\n/**\n * IAIRecommendationsBetaApi - factory interface\n * @export\n */\nvar IAIRecommendationsBetaApiFactory = function (configuration, basePath, axios) {\n var localVarFp = (0, exports.IAIRecommendationsBetaApiFp)(configuration);\n return {\n /**\n * The getMessageCatalogs API returns message catalog based on the language headers in the requested object.\n * @summary Get Message catalogs\n * @param {'recommender' | 'access-request-recommender'} catalogId The ID of the message catalog.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getMessageCatalogs: function (catalogId, axiosOptions) {\n return localVarFp.getMessageCatalogs(catalogId, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * The getRecommendations API returns recommendations based on the requested object. The recommendations are invoked by IdentityIQ and IdentityNow plug-ins that retrieve recommendations based on the performed calculations.\n * @summary Returns a Recommendation Based on Object\n * @param {RecommendationRequestDtoBeta} recommendationRequestDtoBeta\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getRecommendations: function (recommendationRequestDtoBeta, axiosOptions) {\n return localVarFp.getRecommendations(recommendationRequestDtoBeta, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * Retrieves configuration attributes used by certification recommendations.\n * @summary Get certification recommendation config values\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getRecommendationsConfig: function (axiosOptions) {\n return localVarFp.getRecommendationsConfig(axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * Updates configuration attributes used by certification recommendations.\n * @summary Update certification recommendation config values\n * @param {RecommendationConfigDtoBeta} recommendationConfigDtoBeta\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n updateRecommendationsConfig: function (recommendationConfigDtoBeta, axiosOptions) {\n return localVarFp.updateRecommendationsConfig(recommendationConfigDtoBeta, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n };\n};\nexports.IAIRecommendationsBetaApiFactory = IAIRecommendationsBetaApiFactory;\n/**\n * IAIRecommendationsBetaApi - object-oriented interface\n * @export\n * @class IAIRecommendationsBetaApi\n * @extends {BaseAPI}\n */\nvar IAIRecommendationsBetaApi = /** @class */ (function (_super) {\n __extends(IAIRecommendationsBetaApi, _super);\n function IAIRecommendationsBetaApi() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n * The getMessageCatalogs API returns message catalog based on the language headers in the requested object.\n * @summary Get Message catalogs\n * @param {IAIRecommendationsBetaApiGetMessageCatalogsRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof IAIRecommendationsBetaApi\n */\n IAIRecommendationsBetaApi.prototype.getMessageCatalogs = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.IAIRecommendationsBetaApiFp)(this.configuration).getMessageCatalogs(requestParameters.catalogId, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * The getRecommendations API returns recommendations based on the requested object. The recommendations are invoked by IdentityIQ and IdentityNow plug-ins that retrieve recommendations based on the performed calculations.\n * @summary Returns a Recommendation Based on Object\n * @param {IAIRecommendationsBetaApiGetRecommendationsRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof IAIRecommendationsBetaApi\n */\n IAIRecommendationsBetaApi.prototype.getRecommendations = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.IAIRecommendationsBetaApiFp)(this.configuration).getRecommendations(requestParameters.recommendationRequestDtoBeta, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * Retrieves configuration attributes used by certification recommendations.\n * @summary Get certification recommendation config values\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof IAIRecommendationsBetaApi\n */\n IAIRecommendationsBetaApi.prototype.getRecommendationsConfig = function (axiosOptions) {\n var _this = this;\n return (0, exports.IAIRecommendationsBetaApiFp)(this.configuration).getRecommendationsConfig(axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * Updates configuration attributes used by certification recommendations.\n * @summary Update certification recommendation config values\n * @param {IAIRecommendationsBetaApiUpdateRecommendationsConfigRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof IAIRecommendationsBetaApi\n */\n IAIRecommendationsBetaApi.prototype.updateRecommendationsConfig = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.IAIRecommendationsBetaApiFp)(this.configuration).updateRecommendationsConfig(requestParameters.recommendationConfigDtoBeta, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n return IAIRecommendationsBetaApi;\n}(base_1.BaseAPI));\nexports.IAIRecommendationsBetaApi = IAIRecommendationsBetaApi;\n/**\n * IAIRoleMiningBetaApi - axios parameter creator\n * @export\n */\nvar IAIRoleMiningBetaApiAxiosParamCreator = function (configuration) {\n var _this = this;\n return {\n /**\n * This method starts a job to provision a potential role\n * @summary Create request to provision a potential role into an actual role.\n * @param {string} sessionId The role mining session id\n * @param {string} potentialRoleId A potential role id in a role mining session\n * @param {number} [minEntitlementPopularity] Minimum popularity required for an entitlement to be included in the provisioned role.\n * @param {boolean} [includeCommonAccess] Boolean determining whether common access entitlements will be included in the provisioned role.\n * @param {RoleMiningPotentialRoleProvisionRequestBeta} [roleMiningPotentialRoleProvisionRequestBeta] Required information to create a new role\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n createPotentialRoleProvisionRequest: function (sessionId, potentialRoleId, minEntitlementPopularity, includeCommonAccess, roleMiningPotentialRoleProvisionRequestBeta, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'sessionId' is not null or undefined\n (0, common_1.assertParamExists)('createPotentialRoleProvisionRequest', 'sessionId', sessionId);\n // verify required parameter 'potentialRoleId' is not null or undefined\n (0, common_1.assertParamExists)('createPotentialRoleProvisionRequest', 'potentialRoleId', potentialRoleId);\n localVarPath = \"/role-mining-sessions/{sessionId}/potential-roles/{potentialRoleId}/provision\"\n .replace(\"{\".concat(\"sessionId\", \"}\"), encodeURIComponent(String(sessionId)))\n .replace(\"{\".concat(\"potentialRoleId\", \"}\"), encodeURIComponent(String(potentialRoleId)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n if (minEntitlementPopularity !== undefined) {\n localVarQueryParameter['min-entitlement-popularity'] = minEntitlementPopularity;\n }\n if (includeCommonAccess !== undefined) {\n localVarQueryParameter['include-common-access'] = includeCommonAccess;\n }\n localVarHeaderParameter['Content-Type'] = 'application/json';\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(roleMiningPotentialRoleProvisionRequestBeta, localVarRequestOptions, configuration);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This submits a create role mining session request to the role mining application.\n * @summary Create a role mining session\n * @param {RoleMiningSessionDtoBeta} roleMiningSessionDtoBeta Role mining session parameters\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n createRoleMiningSessions: function (roleMiningSessionDtoBeta, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'roleMiningSessionDtoBeta' is not null or undefined\n (0, common_1.assertParamExists)('createRoleMiningSessions', 'roleMiningSessionDtoBeta', roleMiningSessionDtoBeta);\n localVarPath = \"/role-mining-sessions\";\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n localVarHeaderParameter['Content-Type'] = 'application/json';\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(roleMiningSessionDtoBeta, localVarRequestOptions, configuration);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This endpoint downloads a completed export of information for a potential role in a role mining session.\n * @summary Export (download) details for a potential role in a role mining session\n * @param {string} sessionId The role mining session id\n * @param {string} potentialRoleId A potential role id in a role mining session\n * @param {string} exportId The id of a previously run export job for this potential role\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n downloadRoleMiningPotentialRoleZip: function (sessionId, potentialRoleId, exportId, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'sessionId' is not null or undefined\n (0, common_1.assertParamExists)('downloadRoleMiningPotentialRoleZip', 'sessionId', sessionId);\n // verify required parameter 'potentialRoleId' is not null or undefined\n (0, common_1.assertParamExists)('downloadRoleMiningPotentialRoleZip', 'potentialRoleId', potentialRoleId);\n // verify required parameter 'exportId' is not null or undefined\n (0, common_1.assertParamExists)('downloadRoleMiningPotentialRoleZip', 'exportId', exportId);\n localVarPath = \"/role-mining-sessions/{sessionId}/potential-roles/{potentialRoleId}/export-async/{exportId}/download\"\n .replace(\"{\".concat(\"sessionId\", \"}\"), encodeURIComponent(String(sessionId)))\n .replace(\"{\".concat(\"potentialRoleId\", \"}\"), encodeURIComponent(String(potentialRoleId)))\n .replace(\"{\".concat(\"exportId\", \"}\"), encodeURIComponent(String(exportId)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This endpoint downloads all the information for a potential role in a role mining session. Includes identities and entitlements in the potential role.\n * @summary Export (download) details for a potential role in a role mining session\n * @param {string} sessionId The role mining session id\n * @param {string} potentialRoleId A potential role id in a role mining session\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n exportRoleMiningPotentialRole: function (sessionId, potentialRoleId, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'sessionId' is not null or undefined\n (0, common_1.assertParamExists)('exportRoleMiningPotentialRole', 'sessionId', sessionId);\n // verify required parameter 'potentialRoleId' is not null or undefined\n (0, common_1.assertParamExists)('exportRoleMiningPotentialRole', 'potentialRoleId', potentialRoleId);\n localVarPath = \"/role-mining-sessions/{sessionId}/potential-roles/{potentialRoleId}/export\"\n .replace(\"{\".concat(\"sessionId\", \"}\"), encodeURIComponent(String(sessionId)))\n .replace(\"{\".concat(\"potentialRoleId\", \"}\"), encodeURIComponent(String(potentialRoleId)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This endpoint uploads all the information for a potential role in a role mining session to S3 as a downloadable zip archive. Includes identities and entitlements in the potential role.\n * @summary Asynchronously export details for a potential role in a role mining session and upload to S3\n * @param {string} sessionId The role mining session id\n * @param {string} potentialRoleId A potential role id in a role mining session\n * @param {RoleMiningPotentialRoleExportRequestBeta} [roleMiningPotentialRoleExportRequestBeta]\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n exportRoleMiningPotentialRoleAsync: function (sessionId, potentialRoleId, roleMiningPotentialRoleExportRequestBeta, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'sessionId' is not null or undefined\n (0, common_1.assertParamExists)('exportRoleMiningPotentialRoleAsync', 'sessionId', sessionId);\n // verify required parameter 'potentialRoleId' is not null or undefined\n (0, common_1.assertParamExists)('exportRoleMiningPotentialRoleAsync', 'potentialRoleId', potentialRoleId);\n localVarPath = \"/role-mining-sessions/{sessionId}/potential-roles/{potentialRoleId}/export-async\"\n .replace(\"{\".concat(\"sessionId\", \"}\"), encodeURIComponent(String(sessionId)))\n .replace(\"{\".concat(\"potentialRoleId\", \"}\"), encodeURIComponent(String(potentialRoleId)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n localVarHeaderParameter['Content-Type'] = 'application/json';\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(roleMiningPotentialRoleExportRequestBeta, localVarRequestOptions, configuration);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This endpoint retrieves information about the current status of a potential role export.\n * @summary Retrieve status of a potential role export job\n * @param {string} sessionId The role mining session id\n * @param {string} potentialRoleId A potential role id in a role mining session\n * @param {string} exportId The id of a previously run export job for this potential role\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n exportRoleMiningPotentialRoleStatus: function (sessionId, potentialRoleId, exportId, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'sessionId' is not null or undefined\n (0, common_1.assertParamExists)('exportRoleMiningPotentialRoleStatus', 'sessionId', sessionId);\n // verify required parameter 'potentialRoleId' is not null or undefined\n (0, common_1.assertParamExists)('exportRoleMiningPotentialRoleStatus', 'potentialRoleId', potentialRoleId);\n // verify required parameter 'exportId' is not null or undefined\n (0, common_1.assertParamExists)('exportRoleMiningPotentialRoleStatus', 'exportId', exportId);\n localVarPath = \"/role-mining-sessions/{sessionId}/potential-roles/{potentialRoleId}/export-async/{exportId}\"\n .replace(\"{\".concat(\"sessionId\", \"}\"), encodeURIComponent(String(sessionId)))\n .replace(\"{\".concat(\"potentialRoleId\", \"}\"), encodeURIComponent(String(potentialRoleId)))\n .replace(\"{\".concat(\"exportId\", \"}\"), encodeURIComponent(String(exportId)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * Returns all potential role summaries that match the query parameters\n * @summary Retrieves all potential role summaries\n * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **createdDate, identityCount, entitlementCount, freshness, quality**\n * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **createdById**: *eq, sw, co* **createdByName**: *eq, sw, co* **description**: *sw, co* **endDate**: *le, lt* **freshness**: *eq, ge, gt, le, lt* **name**: *eq, sw, co, ge, gt, le, lt* **quality**: *eq, ge, gt, le, lt* **startDate**: *ge, gt* **saved**: *eq* **type**: *eq, ge, gt, le, lt* **scopingMethod**: *eq* **sessionState**: *eq* **identityAttribute**: *co*\n * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getAllPotentialRoleSummaries: function (sorters, filters, offset, limit, count, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n localVarPath = \"/role-mining-potential-roles\";\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n if (sorters !== undefined) {\n localVarQueryParameter['sorters'] = sorters;\n }\n if (filters !== undefined) {\n localVarQueryParameter['filters'] = filters;\n }\n if (offset !== undefined) {\n localVarQueryParameter['offset'] = offset;\n }\n if (limit !== undefined) {\n localVarQueryParameter['limit'] = limit;\n }\n if (count !== undefined) {\n localVarQueryParameter['count'] = count;\n }\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This method returns entitlement popularity distribution for a potential role in a role mining session.\n * @summary Retrieves entitlement popularity distribution for a potential role in a role mining session\n * @param {string} sessionId The role mining session id\n * @param {string} potentialRoleId A potential role id in a role mining session\n * @param {boolean} [includeCommonAccess] Boolean determining whether common access entitlements will be included or not\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getEntitlementDistributionPotentialRole: function (sessionId, potentialRoleId, includeCommonAccess, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'sessionId' is not null or undefined\n (0, common_1.assertParamExists)('getEntitlementDistributionPotentialRole', 'sessionId', sessionId);\n // verify required parameter 'potentialRoleId' is not null or undefined\n (0, common_1.assertParamExists)('getEntitlementDistributionPotentialRole', 'potentialRoleId', potentialRoleId);\n localVarPath = \"/role-mining-sessions/{sessionId}/potential-roles/{potentialRoleId}/entitlement-popularity-distribution\"\n .replace(\"{\".concat(\"sessionId\", \"}\"), encodeURIComponent(String(sessionId)))\n .replace(\"{\".concat(\"potentialRoleId\", \"}\"), encodeURIComponent(String(potentialRoleId)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n if (includeCommonAccess !== undefined) {\n localVarQueryParameter['includeCommonAccess'] = includeCommonAccess;\n }\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This method returns entitlements for a potential role in a role mining session.\n * @summary Retrieves entitlements for a potential role in a role mining session\n * @param {string} sessionId The role mining session id\n * @param {string} potentialRoleId A potential role id in a role mining session\n * @param {boolean} [includeCommonAccess] Boolean determining whether common access entitlements will be included or not\n * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **popularity** The default sort is **popularity** in descending order.\n * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **applicationName**: *sw* **entitlementRef.name**: *sw*\n * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getEntitlementsPotentialRole: function (sessionId, potentialRoleId, includeCommonAccess, sorters, filters, offset, limit, count, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'sessionId' is not null or undefined\n (0, common_1.assertParamExists)('getEntitlementsPotentialRole', 'sessionId', sessionId);\n // verify required parameter 'potentialRoleId' is not null or undefined\n (0, common_1.assertParamExists)('getEntitlementsPotentialRole', 'potentialRoleId', potentialRoleId);\n localVarPath = \"/role-mining-sessions/{sessionId}/potential-roles/{potentialRoleId}/entitlement-popularities\"\n .replace(\"{\".concat(\"sessionId\", \"}\"), encodeURIComponent(String(sessionId)))\n .replace(\"{\".concat(\"potentialRoleId\", \"}\"), encodeURIComponent(String(potentialRoleId)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n if (includeCommonAccess !== undefined) {\n localVarQueryParameter['includeCommonAccess'] = includeCommonAccess;\n }\n if (sorters !== undefined) {\n localVarQueryParameter['sorters'] = sorters;\n }\n if (filters !== undefined) {\n localVarQueryParameter['filters'] = filters;\n }\n if (offset !== undefined) {\n localVarQueryParameter['offset'] = offset;\n }\n if (limit !== undefined) {\n localVarQueryParameter['limit'] = limit;\n }\n if (count !== undefined) {\n localVarQueryParameter['count'] = count;\n }\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This method returns excluded entitlements for a potential role in a role mining session.\n * @summary Retrieves excluded entitlements for a potential role in a role mining session\n * @param {string} sessionId The role mining session id\n * @param {string} potentialRoleId A potential role id in a role mining session\n * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **popularity**\n * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **applicationName**: *sw* **entitlementRef.name**: *sw*\n * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getExcludedEntitlementsPotentialRole: function (sessionId, potentialRoleId, sorters, filters, offset, limit, count, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'sessionId' is not null or undefined\n (0, common_1.assertParamExists)('getExcludedEntitlementsPotentialRole', 'sessionId', sessionId);\n // verify required parameter 'potentialRoleId' is not null or undefined\n (0, common_1.assertParamExists)('getExcludedEntitlementsPotentialRole', 'potentialRoleId', potentialRoleId);\n localVarPath = \"/role-mining-sessions/{sessionId}/potential-roles/{potentialRoleId}/excluded-entitlements\"\n .replace(\"{\".concat(\"sessionId\", \"}\"), encodeURIComponent(String(sessionId)))\n .replace(\"{\".concat(\"potentialRoleId\", \"}\"), encodeURIComponent(String(potentialRoleId)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n if (sorters !== undefined) {\n localVarQueryParameter['sorters'] = sorters;\n }\n if (filters !== undefined) {\n localVarQueryParameter['filters'] = filters;\n }\n if (offset !== undefined) {\n localVarQueryParameter['offset'] = offset;\n }\n if (limit !== undefined) {\n localVarQueryParameter['limit'] = limit;\n }\n if (count !== undefined) {\n localVarQueryParameter['count'] = count;\n }\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This method returns identities for a potential role in a role mining session.\n * @summary Retrieves identities for a potential role in a role mining session\n * @param {string} sessionId The role mining session id\n * @param {string} potentialRoleId A potential role id in a role mining session\n * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **name**\n * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **name**: *sw*\n * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getIdentitiesPotentialRole: function (sessionId, potentialRoleId, sorters, filters, offset, limit, count, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'sessionId' is not null or undefined\n (0, common_1.assertParamExists)('getIdentitiesPotentialRole', 'sessionId', sessionId);\n // verify required parameter 'potentialRoleId' is not null or undefined\n (0, common_1.assertParamExists)('getIdentitiesPotentialRole', 'potentialRoleId', potentialRoleId);\n localVarPath = \"/role-mining-sessions/{sessionId}/potential-roles/{potentialRoleId}/identities\"\n .replace(\"{\".concat(\"sessionId\", \"}\"), encodeURIComponent(String(sessionId)))\n .replace(\"{\".concat(\"potentialRoleId\", \"}\"), encodeURIComponent(String(potentialRoleId)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n if (sorters !== undefined) {\n localVarQueryParameter['sorters'] = sorters;\n }\n if (filters !== undefined) {\n localVarQueryParameter['filters'] = filters;\n }\n if (offset !== undefined) {\n localVarQueryParameter['offset'] = offset;\n }\n if (limit !== undefined) {\n localVarQueryParameter['limit'] = limit;\n }\n if (count !== undefined) {\n localVarQueryParameter['count'] = count;\n }\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This method returns a specific potential role for a role mining session.\n * @summary Retrieves a specific potential role\n * @param {string} sessionId The role mining session id\n * @param {string} potentialRoleId A potential role id in a role mining session\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getPotentialRole: function (sessionId, potentialRoleId, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'sessionId' is not null or undefined\n (0, common_1.assertParamExists)('getPotentialRole', 'sessionId', sessionId);\n // verify required parameter 'potentialRoleId' is not null or undefined\n (0, common_1.assertParamExists)('getPotentialRole', 'potentialRoleId', potentialRoleId);\n localVarPath = \"/role-mining-sessions/{sessionId}/potential-role-summaries/{potentialRoleId}\"\n .replace(\"{\".concat(\"sessionId\", \"}\"), encodeURIComponent(String(sessionId)))\n .replace(\"{\".concat(\"potentialRoleId\", \"}\"), encodeURIComponent(String(potentialRoleId)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This method returns the applications of a potential role for a role mining session.\n * @summary Retrieves the applications of a potential role for a role mining session\n * @param {string} sessionId The role mining session id\n * @param {string} potentialRoleId A potential role id in a role mining session\n * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getPotentialRoleApplications: function (sessionId, potentialRoleId, offset, limit, count, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'sessionId' is not null or undefined\n (0, common_1.assertParamExists)('getPotentialRoleApplications', 'sessionId', sessionId);\n // verify required parameter 'potentialRoleId' is not null or undefined\n (0, common_1.assertParamExists)('getPotentialRoleApplications', 'potentialRoleId', potentialRoleId);\n localVarPath = \"/role-mining-sessions/{sessionId}/potential-role-summaries/{potentialRoleId}/applications\"\n .replace(\"{\".concat(\"sessionId\", \"}\"), encodeURIComponent(String(sessionId)))\n .replace(\"{\".concat(\"potentialRoleId\", \"}\"), encodeURIComponent(String(potentialRoleId)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n if (offset !== undefined) {\n localVarQueryParameter['offset'] = offset;\n }\n if (limit !== undefined) {\n localVarQueryParameter['limit'] = limit;\n }\n if (count !== undefined) {\n localVarQueryParameter['count'] = count;\n }\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This method returns source usageCount (as number of days in the last 90 days) for each identity in a potential role.\n * @summary Retrieves potential role source usage\n * @param {string} potentialRoleId A potential role id\n * @param {string} sourceId A source id\n * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters/) Sorting is supported for the following fields: **displayName, email, usageCount**\n * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getPotentialRoleSourceIdentityUsage: function (potentialRoleId, sourceId, sorters, offset, limit, count, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'potentialRoleId' is not null or undefined\n (0, common_1.assertParamExists)('getPotentialRoleSourceIdentityUsage', 'potentialRoleId', potentialRoleId);\n // verify required parameter 'sourceId' is not null or undefined\n (0, common_1.assertParamExists)('getPotentialRoleSourceIdentityUsage', 'sourceId', sourceId);\n localVarPath = \"/role-mining-potential-roles/{potentialRoleId}/sources/{sourceId}/identityUsage\"\n .replace(\"{\".concat(\"potentialRoleId\", \"}\"), encodeURIComponent(String(potentialRoleId)))\n .replace(\"{\".concat(\"sourceId\", \"}\"), encodeURIComponent(String(sourceId)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n if (sorters !== undefined) {\n localVarQueryParameter['sorters'] = sorters;\n }\n if (offset !== undefined) {\n localVarQueryParameter['offset'] = offset;\n }\n if (limit !== undefined) {\n localVarQueryParameter['limit'] = limit;\n }\n if (count !== undefined) {\n localVarQueryParameter['count'] = count;\n }\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This method returns the potential role summaries for a role mining session.\n * @summary Retrieves all potential role summaries\n * @param {string} sessionId The role mining session id\n * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **createdDate**\n * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **createdById**: *eq, sw, co* **createdByName**: *eq, sw, co* **description**: *sw, co* **endDate**: *le, lt* **freshness**: *eq, ge, gt, le, lt* **name**: *eq, sw, co* **quality**: *eq, ge, gt, le, lt* **startDate**: *ge, gt* **saved**: *eq* **type**: *eq*\n * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getPotentialRoleSummaries: function (sessionId, sorters, filters, offset, limit, count, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'sessionId' is not null or undefined\n (0, common_1.assertParamExists)('getPotentialRoleSummaries', 'sessionId', sessionId);\n localVarPath = \"/role-mining-sessions/{sessionId}/potential-role-summaries\"\n .replace(\"{\".concat(\"sessionId\", \"}\"), encodeURIComponent(String(sessionId)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n if (sorters !== undefined) {\n localVarQueryParameter['sorters'] = sorters;\n }\n if (filters !== undefined) {\n localVarQueryParameter['filters'] = filters;\n }\n if (offset !== undefined) {\n localVarQueryParameter['offset'] = offset;\n }\n if (limit !== undefined) {\n localVarQueryParameter['limit'] = limit;\n }\n if (count !== undefined) {\n localVarQueryParameter['count'] = count;\n }\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This method returns a specific potential role.\n * @summary Retrieves a specific potential role\n * @param {string} potentialRoleId A potential role id\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getRoleMiningPotentialRole: function (potentialRoleId, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'potentialRoleId' is not null or undefined\n (0, common_1.assertParamExists)('getRoleMiningPotentialRole', 'potentialRoleId', potentialRoleId);\n localVarPath = \"/role-mining-potential-roles/{potentialRoleId}\"\n .replace(\"{\".concat(\"potentialRoleId\", \"}\"), encodeURIComponent(String(potentialRoleId)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * The method retrieves a role mining session.\n * @summary Get a role mining session\n * @param {string} sessionId The role mining session id to be retrieved.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getRoleMiningSession: function (sessionId, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'sessionId' is not null or undefined\n (0, common_1.assertParamExists)('getRoleMiningSession', 'sessionId', sessionId);\n localVarPath = \"/role-mining-sessions/{sessionId}\"\n .replace(\"{\".concat(\"sessionId\", \"}\"), encodeURIComponent(String(sessionId)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This method returns a role mining session status for a customer.\n * @summary Get role mining session status state\n * @param {string} sessionId The role mining session id\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getRoleMiningSessionStatus: function (sessionId, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'sessionId' is not null or undefined\n (0, common_1.assertParamExists)('getRoleMiningSessionStatus', 'sessionId', sessionId);\n localVarPath = \"/role-mining-sessions/{sessionId}/status\"\n .replace(\"{\".concat(\"sessionId\", \"}\"), encodeURIComponent(String(sessionId)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * Returns all role mining sessions that match the query parameters\n * @summary Retrieves all role mining sessions\n * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **saved**: *eq* **name**: *eq, sw*\n * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **createdBy, createdDate**\n * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getRoleMiningSessions: function (filters, sorters, offset, limit, count, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n localVarPath = \"/role-mining-sessions\";\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n if (filters !== undefined) {\n localVarQueryParameter['filters'] = filters;\n }\n if (sorters !== undefined) {\n localVarQueryParameter['sorters'] = sorters;\n }\n if (offset !== undefined) {\n localVarQueryParameter['offset'] = offset;\n }\n if (limit !== undefined) {\n localVarQueryParameter['limit'] = limit;\n }\n if (count !== undefined) {\n localVarQueryParameter['count'] = count;\n }\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This method returns all saved potential roles (draft roles).\n * @summary Retrieves all saved potential roles\n * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters/) Sorting is supported for the following fields: **modified**\n * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getSavedPotentialRoles: function (sorters, offset, limit, count, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n localVarPath = \"/role-mining-potential-roles/saved\";\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n if (sorters !== undefined) {\n localVarQueryParameter['sorters'] = sorters;\n }\n if (offset !== undefined) {\n localVarQueryParameter['offset'] = offset;\n }\n if (limit !== undefined) {\n localVarQueryParameter['limit'] = limit;\n }\n if (count !== undefined) {\n localVarQueryParameter['count'] = count;\n }\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * The method updates an existing potential role using. The following fields can be modified: * `description` * `name` * `saved` >**NOTE: All other fields cannot be modified.**\n * @summary Update a potential role\n * @param {string} sessionId The role mining session id\n * @param {string} potentialRoleId The potential role summary id\n * @param {Array} patchPotentialRoleRequestInnerBeta\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n patchPotentialRole: function (sessionId, potentialRoleId, patchPotentialRoleRequestInnerBeta, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'sessionId' is not null or undefined\n (0, common_1.assertParamExists)('patchPotentialRole', 'sessionId', sessionId);\n // verify required parameter 'potentialRoleId' is not null or undefined\n (0, common_1.assertParamExists)('patchPotentialRole', 'potentialRoleId', potentialRoleId);\n // verify required parameter 'patchPotentialRoleRequestInnerBeta' is not null or undefined\n (0, common_1.assertParamExists)('patchPotentialRole', 'patchPotentialRoleRequestInnerBeta', patchPotentialRoleRequestInnerBeta);\n localVarPath = \"/role-mining-sessions/{sessionId}/potential-role-summaries/{potentialRoleId}\"\n .replace(\"{\".concat(\"sessionId\", \"}\"), encodeURIComponent(String(sessionId)))\n .replace(\"{\".concat(\"potentialRoleId\", \"}\"), encodeURIComponent(String(potentialRoleId)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'PATCH' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n localVarHeaderParameter['Content-Type'] = 'application/json-patch+json';\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(patchPotentialRoleRequestInnerBeta, localVarRequestOptions, configuration);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * The method updates an existing potential role using. The following fields can be modified: * `description` * `name` * `saved` >**NOTE: All other fields cannot be modified.**\n * @summary Update a potential role\n * @param {string} sessionId The role mining session id\n * @param {string} potentialRoleId The potential role summary id\n * @param {Array} patchPotentialRoleRequestInnerBeta\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n patchPotentialRole_1: function (sessionId, potentialRoleId, patchPotentialRoleRequestInnerBeta, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'sessionId' is not null or undefined\n (0, common_1.assertParamExists)('patchPotentialRole_1', 'sessionId', sessionId);\n // verify required parameter 'potentialRoleId' is not null or undefined\n (0, common_1.assertParamExists)('patchPotentialRole_1', 'potentialRoleId', potentialRoleId);\n // verify required parameter 'patchPotentialRoleRequestInnerBeta' is not null or undefined\n (0, common_1.assertParamExists)('patchPotentialRole_1', 'patchPotentialRoleRequestInnerBeta', patchPotentialRoleRequestInnerBeta);\n localVarPath = \"/role-mining-potential-roles/{potentialRoleId}\"\n .replace(\"{\".concat(\"sessionId\", \"}\"), encodeURIComponent(String(sessionId)))\n .replace(\"{\".concat(\"potentialRoleId\", \"}\"), encodeURIComponent(String(potentialRoleId)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'PATCH' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n localVarHeaderParameter['Content-Type'] = 'application/json-patch+json';\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(patchPotentialRoleRequestInnerBeta, localVarRequestOptions, configuration);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * The method updates an existing role mining session using PATCH. Supports op in {\\\"replace\\\"} and changes to pruneThreshold and/or minNumIdentitiesInPotentialRole. The potential roles in this role mining session is then re-calculated.\n * @summary Patch a role mining session\n * @param {string} sessionId The role mining session id to be patched\n * @param {Array} jsonPatchOperationBeta Replace pruneThreshold and/or minNumIdentitiesInPotentialRole in role mining session. Update saved status or saved name for a role mining session.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n patchRoleMiningSession: function (sessionId, jsonPatchOperationBeta, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'sessionId' is not null or undefined\n (0, common_1.assertParamExists)('patchRoleMiningSession', 'sessionId', sessionId);\n // verify required parameter 'jsonPatchOperationBeta' is not null or undefined\n (0, common_1.assertParamExists)('patchRoleMiningSession', 'jsonPatchOperationBeta', jsonPatchOperationBeta);\n localVarPath = \"/role-mining-sessions/{sessionId}\"\n .replace(\"{\".concat(\"sessionId\", \"}\"), encodeURIComponent(String(sessionId)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'PATCH' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n localVarHeaderParameter['Content-Type'] = 'application/json-patch+json';\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(jsonPatchOperationBeta, localVarRequestOptions, configuration);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This endpoint adds or removes entitlements from an exclusion list for a potential role.\n * @summary Edit entitlements for a potential role to exclude some entitlements\n * @param {string} sessionId The role mining session id\n * @param {string} potentialRoleId A potential role id in a role mining session\n * @param {RoleMiningPotentialRoleEditEntitlementsBeta} roleMiningPotentialRoleEditEntitlementsBeta Role mining session parameters\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n updateEntitlementsPotentialRole: function (sessionId, potentialRoleId, roleMiningPotentialRoleEditEntitlementsBeta, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'sessionId' is not null or undefined\n (0, common_1.assertParamExists)('updateEntitlementsPotentialRole', 'sessionId', sessionId);\n // verify required parameter 'potentialRoleId' is not null or undefined\n (0, common_1.assertParamExists)('updateEntitlementsPotentialRole', 'potentialRoleId', potentialRoleId);\n // verify required parameter 'roleMiningPotentialRoleEditEntitlementsBeta' is not null or undefined\n (0, common_1.assertParamExists)('updateEntitlementsPotentialRole', 'roleMiningPotentialRoleEditEntitlementsBeta', roleMiningPotentialRoleEditEntitlementsBeta);\n localVarPath = \"/role-mining-sessions/{sessionId}/potential-roles/{potentialRoleId}/edit-entitlements\"\n .replace(\"{\".concat(\"sessionId\", \"}\"), encodeURIComponent(String(sessionId)))\n .replace(\"{\".concat(\"potentialRoleId\", \"}\"), encodeURIComponent(String(potentialRoleId)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n localVarHeaderParameter['Content-Type'] = 'application/json';\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(roleMiningPotentialRoleEditEntitlementsBeta, localVarRequestOptions, configuration);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n };\n};\nexports.IAIRoleMiningBetaApiAxiosParamCreator = IAIRoleMiningBetaApiAxiosParamCreator;\n/**\n * IAIRoleMiningBetaApi - functional programming interface\n * @export\n */\nvar IAIRoleMiningBetaApiFp = function (configuration) {\n var localVarAxiosParamCreator = (0, exports.IAIRoleMiningBetaApiAxiosParamCreator)(configuration);\n return {\n /**\n * This method starts a job to provision a potential role\n * @summary Create request to provision a potential role into an actual role.\n * @param {string} sessionId The role mining session id\n * @param {string} potentialRoleId A potential role id in a role mining session\n * @param {number} [minEntitlementPopularity] Minimum popularity required for an entitlement to be included in the provisioned role.\n * @param {boolean} [includeCommonAccess] Boolean determining whether common access entitlements will be included in the provisioned role.\n * @param {RoleMiningPotentialRoleProvisionRequestBeta} [roleMiningPotentialRoleProvisionRequestBeta] Required information to create a new role\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n createPotentialRoleProvisionRequest: function (sessionId, potentialRoleId, minEntitlementPopularity, includeCommonAccess, roleMiningPotentialRoleProvisionRequestBeta, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.createPotentialRoleProvisionRequest(sessionId, potentialRoleId, minEntitlementPopularity, includeCommonAccess, roleMiningPotentialRoleProvisionRequestBeta, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This submits a create role mining session request to the role mining application.\n * @summary Create a role mining session\n * @param {RoleMiningSessionDtoBeta} roleMiningSessionDtoBeta Role mining session parameters\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n createRoleMiningSessions: function (roleMiningSessionDtoBeta, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.createRoleMiningSessions(roleMiningSessionDtoBeta, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This endpoint downloads a completed export of information for a potential role in a role mining session.\n * @summary Export (download) details for a potential role in a role mining session\n * @param {string} sessionId The role mining session id\n * @param {string} potentialRoleId A potential role id in a role mining session\n * @param {string} exportId The id of a previously run export job for this potential role\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n downloadRoleMiningPotentialRoleZip: function (sessionId, potentialRoleId, exportId, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.downloadRoleMiningPotentialRoleZip(sessionId, potentialRoleId, exportId, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This endpoint downloads all the information for a potential role in a role mining session. Includes identities and entitlements in the potential role.\n * @summary Export (download) details for a potential role in a role mining session\n * @param {string} sessionId The role mining session id\n * @param {string} potentialRoleId A potential role id in a role mining session\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n exportRoleMiningPotentialRole: function (sessionId, potentialRoleId, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.exportRoleMiningPotentialRole(sessionId, potentialRoleId, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This endpoint uploads all the information for a potential role in a role mining session to S3 as a downloadable zip archive. Includes identities and entitlements in the potential role.\n * @summary Asynchronously export details for a potential role in a role mining session and upload to S3\n * @param {string} sessionId The role mining session id\n * @param {string} potentialRoleId A potential role id in a role mining session\n * @param {RoleMiningPotentialRoleExportRequestBeta} [roleMiningPotentialRoleExportRequestBeta]\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n exportRoleMiningPotentialRoleAsync: function (sessionId, potentialRoleId, roleMiningPotentialRoleExportRequestBeta, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.exportRoleMiningPotentialRoleAsync(sessionId, potentialRoleId, roleMiningPotentialRoleExportRequestBeta, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This endpoint retrieves information about the current status of a potential role export.\n * @summary Retrieve status of a potential role export job\n * @param {string} sessionId The role mining session id\n * @param {string} potentialRoleId A potential role id in a role mining session\n * @param {string} exportId The id of a previously run export job for this potential role\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n exportRoleMiningPotentialRoleStatus: function (sessionId, potentialRoleId, exportId, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.exportRoleMiningPotentialRoleStatus(sessionId, potentialRoleId, exportId, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * Returns all potential role summaries that match the query parameters\n * @summary Retrieves all potential role summaries\n * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **createdDate, identityCount, entitlementCount, freshness, quality**\n * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **createdById**: *eq, sw, co* **createdByName**: *eq, sw, co* **description**: *sw, co* **endDate**: *le, lt* **freshness**: *eq, ge, gt, le, lt* **name**: *eq, sw, co, ge, gt, le, lt* **quality**: *eq, ge, gt, le, lt* **startDate**: *ge, gt* **saved**: *eq* **type**: *eq, ge, gt, le, lt* **scopingMethod**: *eq* **sessionState**: *eq* **identityAttribute**: *co*\n * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getAllPotentialRoleSummaries: function (sorters, filters, offset, limit, count, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.getAllPotentialRoleSummaries(sorters, filters, offset, limit, count, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This method returns entitlement popularity distribution for a potential role in a role mining session.\n * @summary Retrieves entitlement popularity distribution for a potential role in a role mining session\n * @param {string} sessionId The role mining session id\n * @param {string} potentialRoleId A potential role id in a role mining session\n * @param {boolean} [includeCommonAccess] Boolean determining whether common access entitlements will be included or not\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getEntitlementDistributionPotentialRole: function (sessionId, potentialRoleId, includeCommonAccess, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.getEntitlementDistributionPotentialRole(sessionId, potentialRoleId, includeCommonAccess, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This method returns entitlements for a potential role in a role mining session.\n * @summary Retrieves entitlements for a potential role in a role mining session\n * @param {string} sessionId The role mining session id\n * @param {string} potentialRoleId A potential role id in a role mining session\n * @param {boolean} [includeCommonAccess] Boolean determining whether common access entitlements will be included or not\n * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **popularity** The default sort is **popularity** in descending order.\n * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **applicationName**: *sw* **entitlementRef.name**: *sw*\n * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getEntitlementsPotentialRole: function (sessionId, potentialRoleId, includeCommonAccess, sorters, filters, offset, limit, count, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.getEntitlementsPotentialRole(sessionId, potentialRoleId, includeCommonAccess, sorters, filters, offset, limit, count, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This method returns excluded entitlements for a potential role in a role mining session.\n * @summary Retrieves excluded entitlements for a potential role in a role mining session\n * @param {string} sessionId The role mining session id\n * @param {string} potentialRoleId A potential role id in a role mining session\n * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **popularity**\n * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **applicationName**: *sw* **entitlementRef.name**: *sw*\n * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getExcludedEntitlementsPotentialRole: function (sessionId, potentialRoleId, sorters, filters, offset, limit, count, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.getExcludedEntitlementsPotentialRole(sessionId, potentialRoleId, sorters, filters, offset, limit, count, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This method returns identities for a potential role in a role mining session.\n * @summary Retrieves identities for a potential role in a role mining session\n * @param {string} sessionId The role mining session id\n * @param {string} potentialRoleId A potential role id in a role mining session\n * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **name**\n * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **name**: *sw*\n * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getIdentitiesPotentialRole: function (sessionId, potentialRoleId, sorters, filters, offset, limit, count, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.getIdentitiesPotentialRole(sessionId, potentialRoleId, sorters, filters, offset, limit, count, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This method returns a specific potential role for a role mining session.\n * @summary Retrieves a specific potential role\n * @param {string} sessionId The role mining session id\n * @param {string} potentialRoleId A potential role id in a role mining session\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getPotentialRole: function (sessionId, potentialRoleId, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.getPotentialRole(sessionId, potentialRoleId, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This method returns the applications of a potential role for a role mining session.\n * @summary Retrieves the applications of a potential role for a role mining session\n * @param {string} sessionId The role mining session id\n * @param {string} potentialRoleId A potential role id in a role mining session\n * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getPotentialRoleApplications: function (sessionId, potentialRoleId, offset, limit, count, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.getPotentialRoleApplications(sessionId, potentialRoleId, offset, limit, count, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This method returns source usageCount (as number of days in the last 90 days) for each identity in a potential role.\n * @summary Retrieves potential role source usage\n * @param {string} potentialRoleId A potential role id\n * @param {string} sourceId A source id\n * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters/) Sorting is supported for the following fields: **displayName, email, usageCount**\n * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getPotentialRoleSourceIdentityUsage: function (potentialRoleId, sourceId, sorters, offset, limit, count, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.getPotentialRoleSourceIdentityUsage(potentialRoleId, sourceId, sorters, offset, limit, count, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This method returns the potential role summaries for a role mining session.\n * @summary Retrieves all potential role summaries\n * @param {string} sessionId The role mining session id\n * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **createdDate**\n * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **createdById**: *eq, sw, co* **createdByName**: *eq, sw, co* **description**: *sw, co* **endDate**: *le, lt* **freshness**: *eq, ge, gt, le, lt* **name**: *eq, sw, co* **quality**: *eq, ge, gt, le, lt* **startDate**: *ge, gt* **saved**: *eq* **type**: *eq*\n * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getPotentialRoleSummaries: function (sessionId, sorters, filters, offset, limit, count, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.getPotentialRoleSummaries(sessionId, sorters, filters, offset, limit, count, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This method returns a specific potential role.\n * @summary Retrieves a specific potential role\n * @param {string} potentialRoleId A potential role id\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getRoleMiningPotentialRole: function (potentialRoleId, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.getRoleMiningPotentialRole(potentialRoleId, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * The method retrieves a role mining session.\n * @summary Get a role mining session\n * @param {string} sessionId The role mining session id to be retrieved.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getRoleMiningSession: function (sessionId, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.getRoleMiningSession(sessionId, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This method returns a role mining session status for a customer.\n * @summary Get role mining session status state\n * @param {string} sessionId The role mining session id\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getRoleMiningSessionStatus: function (sessionId, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.getRoleMiningSessionStatus(sessionId, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * Returns all role mining sessions that match the query parameters\n * @summary Retrieves all role mining sessions\n * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **saved**: *eq* **name**: *eq, sw*\n * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **createdBy, createdDate**\n * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getRoleMiningSessions: function (filters, sorters, offset, limit, count, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.getRoleMiningSessions(filters, sorters, offset, limit, count, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This method returns all saved potential roles (draft roles).\n * @summary Retrieves all saved potential roles\n * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters/) Sorting is supported for the following fields: **modified**\n * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getSavedPotentialRoles: function (sorters, offset, limit, count, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.getSavedPotentialRoles(sorters, offset, limit, count, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * The method updates an existing potential role using. The following fields can be modified: * `description` * `name` * `saved` >**NOTE: All other fields cannot be modified.**\n * @summary Update a potential role\n * @param {string} sessionId The role mining session id\n * @param {string} potentialRoleId The potential role summary id\n * @param {Array} patchPotentialRoleRequestInnerBeta\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n patchPotentialRole: function (sessionId, potentialRoleId, patchPotentialRoleRequestInnerBeta, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.patchPotentialRole(sessionId, potentialRoleId, patchPotentialRoleRequestInnerBeta, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * The method updates an existing potential role using. The following fields can be modified: * `description` * `name` * `saved` >**NOTE: All other fields cannot be modified.**\n * @summary Update a potential role\n * @param {string} sessionId The role mining session id\n * @param {string} potentialRoleId The potential role summary id\n * @param {Array} patchPotentialRoleRequestInnerBeta\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n patchPotentialRole_1: function (sessionId, potentialRoleId, patchPotentialRoleRequestInnerBeta, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.patchPotentialRole_1(sessionId, potentialRoleId, patchPotentialRoleRequestInnerBeta, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * The method updates an existing role mining session using PATCH. Supports op in {\\\"replace\\\"} and changes to pruneThreshold and/or minNumIdentitiesInPotentialRole. The potential roles in this role mining session is then re-calculated.\n * @summary Patch a role mining session\n * @param {string} sessionId The role mining session id to be patched\n * @param {Array} jsonPatchOperationBeta Replace pruneThreshold and/or minNumIdentitiesInPotentialRole in role mining session. Update saved status or saved name for a role mining session.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n patchRoleMiningSession: function (sessionId, jsonPatchOperationBeta, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.patchRoleMiningSession(sessionId, jsonPatchOperationBeta, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This endpoint adds or removes entitlements from an exclusion list for a potential role.\n * @summary Edit entitlements for a potential role to exclude some entitlements\n * @param {string} sessionId The role mining session id\n * @param {string} potentialRoleId A potential role id in a role mining session\n * @param {RoleMiningPotentialRoleEditEntitlementsBeta} roleMiningPotentialRoleEditEntitlementsBeta Role mining session parameters\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n updateEntitlementsPotentialRole: function (sessionId, potentialRoleId, roleMiningPotentialRoleEditEntitlementsBeta, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.updateEntitlementsPotentialRole(sessionId, potentialRoleId, roleMiningPotentialRoleEditEntitlementsBeta, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n };\n};\nexports.IAIRoleMiningBetaApiFp = IAIRoleMiningBetaApiFp;\n/**\n * IAIRoleMiningBetaApi - factory interface\n * @export\n */\nvar IAIRoleMiningBetaApiFactory = function (configuration, basePath, axios) {\n var localVarFp = (0, exports.IAIRoleMiningBetaApiFp)(configuration);\n return {\n /**\n * This method starts a job to provision a potential role\n * @summary Create request to provision a potential role into an actual role.\n * @param {string} sessionId The role mining session id\n * @param {string} potentialRoleId A potential role id in a role mining session\n * @param {number} [minEntitlementPopularity] Minimum popularity required for an entitlement to be included in the provisioned role.\n * @param {boolean} [includeCommonAccess] Boolean determining whether common access entitlements will be included in the provisioned role.\n * @param {RoleMiningPotentialRoleProvisionRequestBeta} [roleMiningPotentialRoleProvisionRequestBeta] Required information to create a new role\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n createPotentialRoleProvisionRequest: function (sessionId, potentialRoleId, minEntitlementPopularity, includeCommonAccess, roleMiningPotentialRoleProvisionRequestBeta, axiosOptions) {\n return localVarFp.createPotentialRoleProvisionRequest(sessionId, potentialRoleId, minEntitlementPopularity, includeCommonAccess, roleMiningPotentialRoleProvisionRequestBeta, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This submits a create role mining session request to the role mining application.\n * @summary Create a role mining session\n * @param {RoleMiningSessionDtoBeta} roleMiningSessionDtoBeta Role mining session parameters\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n createRoleMiningSessions: function (roleMiningSessionDtoBeta, axiosOptions) {\n return localVarFp.createRoleMiningSessions(roleMiningSessionDtoBeta, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This endpoint downloads a completed export of information for a potential role in a role mining session.\n * @summary Export (download) details for a potential role in a role mining session\n * @param {string} sessionId The role mining session id\n * @param {string} potentialRoleId A potential role id in a role mining session\n * @param {string} exportId The id of a previously run export job for this potential role\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n downloadRoleMiningPotentialRoleZip: function (sessionId, potentialRoleId, exportId, axiosOptions) {\n return localVarFp.downloadRoleMiningPotentialRoleZip(sessionId, potentialRoleId, exportId, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This endpoint downloads all the information for a potential role in a role mining session. Includes identities and entitlements in the potential role.\n * @summary Export (download) details for a potential role in a role mining session\n * @param {string} sessionId The role mining session id\n * @param {string} potentialRoleId A potential role id in a role mining session\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n exportRoleMiningPotentialRole: function (sessionId, potentialRoleId, axiosOptions) {\n return localVarFp.exportRoleMiningPotentialRole(sessionId, potentialRoleId, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This endpoint uploads all the information for a potential role in a role mining session to S3 as a downloadable zip archive. Includes identities and entitlements in the potential role.\n * @summary Asynchronously export details for a potential role in a role mining session and upload to S3\n * @param {string} sessionId The role mining session id\n * @param {string} potentialRoleId A potential role id in a role mining session\n * @param {RoleMiningPotentialRoleExportRequestBeta} [roleMiningPotentialRoleExportRequestBeta]\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n exportRoleMiningPotentialRoleAsync: function (sessionId, potentialRoleId, roleMiningPotentialRoleExportRequestBeta, axiosOptions) {\n return localVarFp.exportRoleMiningPotentialRoleAsync(sessionId, potentialRoleId, roleMiningPotentialRoleExportRequestBeta, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This endpoint retrieves information about the current status of a potential role export.\n * @summary Retrieve status of a potential role export job\n * @param {string} sessionId The role mining session id\n * @param {string} potentialRoleId A potential role id in a role mining session\n * @param {string} exportId The id of a previously run export job for this potential role\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n exportRoleMiningPotentialRoleStatus: function (sessionId, potentialRoleId, exportId, axiosOptions) {\n return localVarFp.exportRoleMiningPotentialRoleStatus(sessionId, potentialRoleId, exportId, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * Returns all potential role summaries that match the query parameters\n * @summary Retrieves all potential role summaries\n * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **createdDate, identityCount, entitlementCount, freshness, quality**\n * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **createdById**: *eq, sw, co* **createdByName**: *eq, sw, co* **description**: *sw, co* **endDate**: *le, lt* **freshness**: *eq, ge, gt, le, lt* **name**: *eq, sw, co, ge, gt, le, lt* **quality**: *eq, ge, gt, le, lt* **startDate**: *ge, gt* **saved**: *eq* **type**: *eq, ge, gt, le, lt* **scopingMethod**: *eq* **sessionState**: *eq* **identityAttribute**: *co*\n * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getAllPotentialRoleSummaries: function (sorters, filters, offset, limit, count, axiosOptions) {\n return localVarFp.getAllPotentialRoleSummaries(sorters, filters, offset, limit, count, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This method returns entitlement popularity distribution for a potential role in a role mining session.\n * @summary Retrieves entitlement popularity distribution for a potential role in a role mining session\n * @param {string} sessionId The role mining session id\n * @param {string} potentialRoleId A potential role id in a role mining session\n * @param {boolean} [includeCommonAccess] Boolean determining whether common access entitlements will be included or not\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getEntitlementDistributionPotentialRole: function (sessionId, potentialRoleId, includeCommonAccess, axiosOptions) {\n return localVarFp.getEntitlementDistributionPotentialRole(sessionId, potentialRoleId, includeCommonAccess, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This method returns entitlements for a potential role in a role mining session.\n * @summary Retrieves entitlements for a potential role in a role mining session\n * @param {string} sessionId The role mining session id\n * @param {string} potentialRoleId A potential role id in a role mining session\n * @param {boolean} [includeCommonAccess] Boolean determining whether common access entitlements will be included or not\n * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **popularity** The default sort is **popularity** in descending order.\n * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **applicationName**: *sw* **entitlementRef.name**: *sw*\n * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getEntitlementsPotentialRole: function (sessionId, potentialRoleId, includeCommonAccess, sorters, filters, offset, limit, count, axiosOptions) {\n return localVarFp.getEntitlementsPotentialRole(sessionId, potentialRoleId, includeCommonAccess, sorters, filters, offset, limit, count, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This method returns excluded entitlements for a potential role in a role mining session.\n * @summary Retrieves excluded entitlements for a potential role in a role mining session\n * @param {string} sessionId The role mining session id\n * @param {string} potentialRoleId A potential role id in a role mining session\n * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **popularity**\n * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **applicationName**: *sw* **entitlementRef.name**: *sw*\n * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getExcludedEntitlementsPotentialRole: function (sessionId, potentialRoleId, sorters, filters, offset, limit, count, axiosOptions) {\n return localVarFp.getExcludedEntitlementsPotentialRole(sessionId, potentialRoleId, sorters, filters, offset, limit, count, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This method returns identities for a potential role in a role mining session.\n * @summary Retrieves identities for a potential role in a role mining session\n * @param {string} sessionId The role mining session id\n * @param {string} potentialRoleId A potential role id in a role mining session\n * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **name**\n * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **name**: *sw*\n * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getIdentitiesPotentialRole: function (sessionId, potentialRoleId, sorters, filters, offset, limit, count, axiosOptions) {\n return localVarFp.getIdentitiesPotentialRole(sessionId, potentialRoleId, sorters, filters, offset, limit, count, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This method returns a specific potential role for a role mining session.\n * @summary Retrieves a specific potential role\n * @param {string} sessionId The role mining session id\n * @param {string} potentialRoleId A potential role id in a role mining session\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getPotentialRole: function (sessionId, potentialRoleId, axiosOptions) {\n return localVarFp.getPotentialRole(sessionId, potentialRoleId, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This method returns the applications of a potential role for a role mining session.\n * @summary Retrieves the applications of a potential role for a role mining session\n * @param {string} sessionId The role mining session id\n * @param {string} potentialRoleId A potential role id in a role mining session\n * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getPotentialRoleApplications: function (sessionId, potentialRoleId, offset, limit, count, axiosOptions) {\n return localVarFp.getPotentialRoleApplications(sessionId, potentialRoleId, offset, limit, count, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This method returns source usageCount (as number of days in the last 90 days) for each identity in a potential role.\n * @summary Retrieves potential role source usage\n * @param {string} potentialRoleId A potential role id\n * @param {string} sourceId A source id\n * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters/) Sorting is supported for the following fields: **displayName, email, usageCount**\n * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getPotentialRoleSourceIdentityUsage: function (potentialRoleId, sourceId, sorters, offset, limit, count, axiosOptions) {\n return localVarFp.getPotentialRoleSourceIdentityUsage(potentialRoleId, sourceId, sorters, offset, limit, count, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This method returns the potential role summaries for a role mining session.\n * @summary Retrieves all potential role summaries\n * @param {string} sessionId The role mining session id\n * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **createdDate**\n * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **createdById**: *eq, sw, co* **createdByName**: *eq, sw, co* **description**: *sw, co* **endDate**: *le, lt* **freshness**: *eq, ge, gt, le, lt* **name**: *eq, sw, co* **quality**: *eq, ge, gt, le, lt* **startDate**: *ge, gt* **saved**: *eq* **type**: *eq*\n * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getPotentialRoleSummaries: function (sessionId, sorters, filters, offset, limit, count, axiosOptions) {\n return localVarFp.getPotentialRoleSummaries(sessionId, sorters, filters, offset, limit, count, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This method returns a specific potential role.\n * @summary Retrieves a specific potential role\n * @param {string} potentialRoleId A potential role id\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getRoleMiningPotentialRole: function (potentialRoleId, axiosOptions) {\n return localVarFp.getRoleMiningPotentialRole(potentialRoleId, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * The method retrieves a role mining session.\n * @summary Get a role mining session\n * @param {string} sessionId The role mining session id to be retrieved.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getRoleMiningSession: function (sessionId, axiosOptions) {\n return localVarFp.getRoleMiningSession(sessionId, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This method returns a role mining session status for a customer.\n * @summary Get role mining session status state\n * @param {string} sessionId The role mining session id\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getRoleMiningSessionStatus: function (sessionId, axiosOptions) {\n return localVarFp.getRoleMiningSessionStatus(sessionId, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * Returns all role mining sessions that match the query parameters\n * @summary Retrieves all role mining sessions\n * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **saved**: *eq* **name**: *eq, sw*\n * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **createdBy, createdDate**\n * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getRoleMiningSessions: function (filters, sorters, offset, limit, count, axiosOptions) {\n return localVarFp.getRoleMiningSessions(filters, sorters, offset, limit, count, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This method returns all saved potential roles (draft roles).\n * @summary Retrieves all saved potential roles\n * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters/) Sorting is supported for the following fields: **modified**\n * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getSavedPotentialRoles: function (sorters, offset, limit, count, axiosOptions) {\n return localVarFp.getSavedPotentialRoles(sorters, offset, limit, count, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * The method updates an existing potential role using. The following fields can be modified: * `description` * `name` * `saved` >**NOTE: All other fields cannot be modified.**\n * @summary Update a potential role\n * @param {string} sessionId The role mining session id\n * @param {string} potentialRoleId The potential role summary id\n * @param {Array} patchPotentialRoleRequestInnerBeta\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n patchPotentialRole: function (sessionId, potentialRoleId, patchPotentialRoleRequestInnerBeta, axiosOptions) {\n return localVarFp.patchPotentialRole(sessionId, potentialRoleId, patchPotentialRoleRequestInnerBeta, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * The method updates an existing potential role using. The following fields can be modified: * `description` * `name` * `saved` >**NOTE: All other fields cannot be modified.**\n * @summary Update a potential role\n * @param {string} sessionId The role mining session id\n * @param {string} potentialRoleId The potential role summary id\n * @param {Array} patchPotentialRoleRequestInnerBeta\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n patchPotentialRole_1: function (sessionId, potentialRoleId, patchPotentialRoleRequestInnerBeta, axiosOptions) {\n return localVarFp.patchPotentialRole_1(sessionId, potentialRoleId, patchPotentialRoleRequestInnerBeta, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * The method updates an existing role mining session using PATCH. Supports op in {\\\"replace\\\"} and changes to pruneThreshold and/or minNumIdentitiesInPotentialRole. The potential roles in this role mining session is then re-calculated.\n * @summary Patch a role mining session\n * @param {string} sessionId The role mining session id to be patched\n * @param {Array} jsonPatchOperationBeta Replace pruneThreshold and/or minNumIdentitiesInPotentialRole in role mining session. Update saved status or saved name for a role mining session.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n patchRoleMiningSession: function (sessionId, jsonPatchOperationBeta, axiosOptions) {\n return localVarFp.patchRoleMiningSession(sessionId, jsonPatchOperationBeta, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This endpoint adds or removes entitlements from an exclusion list for a potential role.\n * @summary Edit entitlements for a potential role to exclude some entitlements\n * @param {string} sessionId The role mining session id\n * @param {string} potentialRoleId A potential role id in a role mining session\n * @param {RoleMiningPotentialRoleEditEntitlementsBeta} roleMiningPotentialRoleEditEntitlementsBeta Role mining session parameters\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n updateEntitlementsPotentialRole: function (sessionId, potentialRoleId, roleMiningPotentialRoleEditEntitlementsBeta, axiosOptions) {\n return localVarFp.updateEntitlementsPotentialRole(sessionId, potentialRoleId, roleMiningPotentialRoleEditEntitlementsBeta, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n };\n};\nexports.IAIRoleMiningBetaApiFactory = IAIRoleMiningBetaApiFactory;\n/**\n * IAIRoleMiningBetaApi - object-oriented interface\n * @export\n * @class IAIRoleMiningBetaApi\n * @extends {BaseAPI}\n */\nvar IAIRoleMiningBetaApi = /** @class */ (function (_super) {\n __extends(IAIRoleMiningBetaApi, _super);\n function IAIRoleMiningBetaApi() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n * This method starts a job to provision a potential role\n * @summary Create request to provision a potential role into an actual role.\n * @param {IAIRoleMiningBetaApiCreatePotentialRoleProvisionRequestRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof IAIRoleMiningBetaApi\n */\n IAIRoleMiningBetaApi.prototype.createPotentialRoleProvisionRequest = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.IAIRoleMiningBetaApiFp)(this.configuration).createPotentialRoleProvisionRequest(requestParameters.sessionId, requestParameters.potentialRoleId, requestParameters.minEntitlementPopularity, requestParameters.includeCommonAccess, requestParameters.roleMiningPotentialRoleProvisionRequestBeta, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This submits a create role mining session request to the role mining application.\n * @summary Create a role mining session\n * @param {IAIRoleMiningBetaApiCreateRoleMiningSessionsRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof IAIRoleMiningBetaApi\n */\n IAIRoleMiningBetaApi.prototype.createRoleMiningSessions = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.IAIRoleMiningBetaApiFp)(this.configuration).createRoleMiningSessions(requestParameters.roleMiningSessionDtoBeta, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This endpoint downloads a completed export of information for a potential role in a role mining session.\n * @summary Export (download) details for a potential role in a role mining session\n * @param {IAIRoleMiningBetaApiDownloadRoleMiningPotentialRoleZipRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof IAIRoleMiningBetaApi\n */\n IAIRoleMiningBetaApi.prototype.downloadRoleMiningPotentialRoleZip = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.IAIRoleMiningBetaApiFp)(this.configuration).downloadRoleMiningPotentialRoleZip(requestParameters.sessionId, requestParameters.potentialRoleId, requestParameters.exportId, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This endpoint downloads all the information for a potential role in a role mining session. Includes identities and entitlements in the potential role.\n * @summary Export (download) details for a potential role in a role mining session\n * @param {IAIRoleMiningBetaApiExportRoleMiningPotentialRoleRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof IAIRoleMiningBetaApi\n */\n IAIRoleMiningBetaApi.prototype.exportRoleMiningPotentialRole = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.IAIRoleMiningBetaApiFp)(this.configuration).exportRoleMiningPotentialRole(requestParameters.sessionId, requestParameters.potentialRoleId, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This endpoint uploads all the information for a potential role in a role mining session to S3 as a downloadable zip archive. Includes identities and entitlements in the potential role.\n * @summary Asynchronously export details for a potential role in a role mining session and upload to S3\n * @param {IAIRoleMiningBetaApiExportRoleMiningPotentialRoleAsyncRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof IAIRoleMiningBetaApi\n */\n IAIRoleMiningBetaApi.prototype.exportRoleMiningPotentialRoleAsync = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.IAIRoleMiningBetaApiFp)(this.configuration).exportRoleMiningPotentialRoleAsync(requestParameters.sessionId, requestParameters.potentialRoleId, requestParameters.roleMiningPotentialRoleExportRequestBeta, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This endpoint retrieves information about the current status of a potential role export.\n * @summary Retrieve status of a potential role export job\n * @param {IAIRoleMiningBetaApiExportRoleMiningPotentialRoleStatusRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof IAIRoleMiningBetaApi\n */\n IAIRoleMiningBetaApi.prototype.exportRoleMiningPotentialRoleStatus = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.IAIRoleMiningBetaApiFp)(this.configuration).exportRoleMiningPotentialRoleStatus(requestParameters.sessionId, requestParameters.potentialRoleId, requestParameters.exportId, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * Returns all potential role summaries that match the query parameters\n * @summary Retrieves all potential role summaries\n * @param {IAIRoleMiningBetaApiGetAllPotentialRoleSummariesRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof IAIRoleMiningBetaApi\n */\n IAIRoleMiningBetaApi.prototype.getAllPotentialRoleSummaries = function (requestParameters, axiosOptions) {\n var _this = this;\n if (requestParameters === void 0) { requestParameters = {}; }\n return (0, exports.IAIRoleMiningBetaApiFp)(this.configuration).getAllPotentialRoleSummaries(requestParameters.sorters, requestParameters.filters, requestParameters.offset, requestParameters.limit, requestParameters.count, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This method returns entitlement popularity distribution for a potential role in a role mining session.\n * @summary Retrieves entitlement popularity distribution for a potential role in a role mining session\n * @param {IAIRoleMiningBetaApiGetEntitlementDistributionPotentialRoleRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof IAIRoleMiningBetaApi\n */\n IAIRoleMiningBetaApi.prototype.getEntitlementDistributionPotentialRole = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.IAIRoleMiningBetaApiFp)(this.configuration).getEntitlementDistributionPotentialRole(requestParameters.sessionId, requestParameters.potentialRoleId, requestParameters.includeCommonAccess, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This method returns entitlements for a potential role in a role mining session.\n * @summary Retrieves entitlements for a potential role in a role mining session\n * @param {IAIRoleMiningBetaApiGetEntitlementsPotentialRoleRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof IAIRoleMiningBetaApi\n */\n IAIRoleMiningBetaApi.prototype.getEntitlementsPotentialRole = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.IAIRoleMiningBetaApiFp)(this.configuration).getEntitlementsPotentialRole(requestParameters.sessionId, requestParameters.potentialRoleId, requestParameters.includeCommonAccess, requestParameters.sorters, requestParameters.filters, requestParameters.offset, requestParameters.limit, requestParameters.count, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This method returns excluded entitlements for a potential role in a role mining session.\n * @summary Retrieves excluded entitlements for a potential role in a role mining session\n * @param {IAIRoleMiningBetaApiGetExcludedEntitlementsPotentialRoleRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof IAIRoleMiningBetaApi\n */\n IAIRoleMiningBetaApi.prototype.getExcludedEntitlementsPotentialRole = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.IAIRoleMiningBetaApiFp)(this.configuration).getExcludedEntitlementsPotentialRole(requestParameters.sessionId, requestParameters.potentialRoleId, requestParameters.sorters, requestParameters.filters, requestParameters.offset, requestParameters.limit, requestParameters.count, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This method returns identities for a potential role in a role mining session.\n * @summary Retrieves identities for a potential role in a role mining session\n * @param {IAIRoleMiningBetaApiGetIdentitiesPotentialRoleRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof IAIRoleMiningBetaApi\n */\n IAIRoleMiningBetaApi.prototype.getIdentitiesPotentialRole = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.IAIRoleMiningBetaApiFp)(this.configuration).getIdentitiesPotentialRole(requestParameters.sessionId, requestParameters.potentialRoleId, requestParameters.sorters, requestParameters.filters, requestParameters.offset, requestParameters.limit, requestParameters.count, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This method returns a specific potential role for a role mining session.\n * @summary Retrieves a specific potential role\n * @param {IAIRoleMiningBetaApiGetPotentialRoleRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof IAIRoleMiningBetaApi\n */\n IAIRoleMiningBetaApi.prototype.getPotentialRole = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.IAIRoleMiningBetaApiFp)(this.configuration).getPotentialRole(requestParameters.sessionId, requestParameters.potentialRoleId, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This method returns the applications of a potential role for a role mining session.\n * @summary Retrieves the applications of a potential role for a role mining session\n * @param {IAIRoleMiningBetaApiGetPotentialRoleApplicationsRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof IAIRoleMiningBetaApi\n */\n IAIRoleMiningBetaApi.prototype.getPotentialRoleApplications = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.IAIRoleMiningBetaApiFp)(this.configuration).getPotentialRoleApplications(requestParameters.sessionId, requestParameters.potentialRoleId, requestParameters.offset, requestParameters.limit, requestParameters.count, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This method returns source usageCount (as number of days in the last 90 days) for each identity in a potential role.\n * @summary Retrieves potential role source usage\n * @param {IAIRoleMiningBetaApiGetPotentialRoleSourceIdentityUsageRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof IAIRoleMiningBetaApi\n */\n IAIRoleMiningBetaApi.prototype.getPotentialRoleSourceIdentityUsage = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.IAIRoleMiningBetaApiFp)(this.configuration).getPotentialRoleSourceIdentityUsage(requestParameters.potentialRoleId, requestParameters.sourceId, requestParameters.sorters, requestParameters.offset, requestParameters.limit, requestParameters.count, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This method returns the potential role summaries for a role mining session.\n * @summary Retrieves all potential role summaries\n * @param {IAIRoleMiningBetaApiGetPotentialRoleSummariesRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof IAIRoleMiningBetaApi\n */\n IAIRoleMiningBetaApi.prototype.getPotentialRoleSummaries = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.IAIRoleMiningBetaApiFp)(this.configuration).getPotentialRoleSummaries(requestParameters.sessionId, requestParameters.sorters, requestParameters.filters, requestParameters.offset, requestParameters.limit, requestParameters.count, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This method returns a specific potential role.\n * @summary Retrieves a specific potential role\n * @param {IAIRoleMiningBetaApiGetRoleMiningPotentialRoleRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof IAIRoleMiningBetaApi\n */\n IAIRoleMiningBetaApi.prototype.getRoleMiningPotentialRole = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.IAIRoleMiningBetaApiFp)(this.configuration).getRoleMiningPotentialRole(requestParameters.potentialRoleId, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * The method retrieves a role mining session.\n * @summary Get a role mining session\n * @param {IAIRoleMiningBetaApiGetRoleMiningSessionRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof IAIRoleMiningBetaApi\n */\n IAIRoleMiningBetaApi.prototype.getRoleMiningSession = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.IAIRoleMiningBetaApiFp)(this.configuration).getRoleMiningSession(requestParameters.sessionId, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This method returns a role mining session status for a customer.\n * @summary Get role mining session status state\n * @param {IAIRoleMiningBetaApiGetRoleMiningSessionStatusRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof IAIRoleMiningBetaApi\n */\n IAIRoleMiningBetaApi.prototype.getRoleMiningSessionStatus = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.IAIRoleMiningBetaApiFp)(this.configuration).getRoleMiningSessionStatus(requestParameters.sessionId, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * Returns all role mining sessions that match the query parameters\n * @summary Retrieves all role mining sessions\n * @param {IAIRoleMiningBetaApiGetRoleMiningSessionsRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof IAIRoleMiningBetaApi\n */\n IAIRoleMiningBetaApi.prototype.getRoleMiningSessions = function (requestParameters, axiosOptions) {\n var _this = this;\n if (requestParameters === void 0) { requestParameters = {}; }\n return (0, exports.IAIRoleMiningBetaApiFp)(this.configuration).getRoleMiningSessions(requestParameters.filters, requestParameters.sorters, requestParameters.offset, requestParameters.limit, requestParameters.count, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This method returns all saved potential roles (draft roles).\n * @summary Retrieves all saved potential roles\n * @param {IAIRoleMiningBetaApiGetSavedPotentialRolesRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof IAIRoleMiningBetaApi\n */\n IAIRoleMiningBetaApi.prototype.getSavedPotentialRoles = function (requestParameters, axiosOptions) {\n var _this = this;\n if (requestParameters === void 0) { requestParameters = {}; }\n return (0, exports.IAIRoleMiningBetaApiFp)(this.configuration).getSavedPotentialRoles(requestParameters.sorters, requestParameters.offset, requestParameters.limit, requestParameters.count, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * The method updates an existing potential role using. The following fields can be modified: * `description` * `name` * `saved` >**NOTE: All other fields cannot be modified.**\n * @summary Update a potential role\n * @param {IAIRoleMiningBetaApiPatchPotentialRoleRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof IAIRoleMiningBetaApi\n */\n IAIRoleMiningBetaApi.prototype.patchPotentialRole = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.IAIRoleMiningBetaApiFp)(this.configuration).patchPotentialRole(requestParameters.sessionId, requestParameters.potentialRoleId, requestParameters.patchPotentialRoleRequestInnerBeta, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * The method updates an existing potential role using. The following fields can be modified: * `description` * `name` * `saved` >**NOTE: All other fields cannot be modified.**\n * @summary Update a potential role\n * @param {IAIRoleMiningBetaApiPatchPotentialRole0Request} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof IAIRoleMiningBetaApi\n */\n IAIRoleMiningBetaApi.prototype.patchPotentialRole_1 = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.IAIRoleMiningBetaApiFp)(this.configuration).patchPotentialRole_1(requestParameters.sessionId, requestParameters.potentialRoleId, requestParameters.patchPotentialRoleRequestInnerBeta, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * The method updates an existing role mining session using PATCH. Supports op in {\\\"replace\\\"} and changes to pruneThreshold and/or minNumIdentitiesInPotentialRole. The potential roles in this role mining session is then re-calculated.\n * @summary Patch a role mining session\n * @param {IAIRoleMiningBetaApiPatchRoleMiningSessionRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof IAIRoleMiningBetaApi\n */\n IAIRoleMiningBetaApi.prototype.patchRoleMiningSession = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.IAIRoleMiningBetaApiFp)(this.configuration).patchRoleMiningSession(requestParameters.sessionId, requestParameters.jsonPatchOperationBeta, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This endpoint adds or removes entitlements from an exclusion list for a potential role.\n * @summary Edit entitlements for a potential role to exclude some entitlements\n * @param {IAIRoleMiningBetaApiUpdateEntitlementsPotentialRoleRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof IAIRoleMiningBetaApi\n */\n IAIRoleMiningBetaApi.prototype.updateEntitlementsPotentialRole = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.IAIRoleMiningBetaApiFp)(this.configuration).updateEntitlementsPotentialRole(requestParameters.sessionId, requestParameters.potentialRoleId, requestParameters.roleMiningPotentialRoleEditEntitlementsBeta, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n return IAIRoleMiningBetaApi;\n}(base_1.BaseAPI));\nexports.IAIRoleMiningBetaApi = IAIRoleMiningBetaApi;\n/**\n * IdentitiesBetaApi - axios parameter creator\n * @export\n */\nvar IdentitiesBetaApiAxiosParamCreator = function (configuration) {\n var _this = this;\n return {\n /**\n * The API returns successful response if the requested identity was deleted.\n * @summary Deletes an identity.\n * @param {string} id Identity Id\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n deleteIdentity: function (id, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'id' is not null or undefined\n (0, common_1.assertParamExists)('deleteIdentity', 'id', id);\n localVarPath = \"/identities/{id}\"\n .replace(\"{\".concat(\"id\", \"}\"), encodeURIComponent(String(id)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'DELETE' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This API returns a single identity using the Identity ID.\n * @summary Identity Details\n * @param {string} id Identity Id\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getIdentity: function (id, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'id' is not null or undefined\n (0, common_1.assertParamExists)('getIdentity', 'id', id);\n localVarPath = \"/identities/{id}\"\n .replace(\"{\".concat(\"id\", \"}\"), encodeURIComponent(String(id)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * Get Ownership association details of an Identity\n * @summary Get ownership details\n * @param {string} identityId The identity id\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getIdentityOwnershipDetails: function (identityId, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'identityId' is not null or undefined\n (0, common_1.assertParamExists)('getIdentityOwnershipDetails', 'identityId', identityId);\n localVarPath = \"/identities/{identityId}/ownership\"\n .replace(\"{\".concat(\"identityId\", \"}\"), encodeURIComponent(String(identityId)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This API returns a list of identities.\n * @summary List Identities\n * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **id**: *eq, in* **name**: *eq, sw* **alias**: *eq, sw* **firstname**: *eq, sw* **lastname**: *eq, sw* **email**: *eq, sw* **cloudStatus**: *eq* **processingState**: *eq* **correlated**: *eq* **protected**: *eq*\n * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **name, alias, cloudStatus**\n * @param {'CORRELATED_ONLY' | 'NONE'} [defaultFilter] Adds additional filter to filters query parameter. CORRELATED_ONLY adds correlated=true and returns only identities that are correlated. NONE does not add any and returns all identities that satisfy filters query parameter.\n * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n listIdentities: function (filters, sorters, defaultFilter, count, limit, offset, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n localVarPath = \"/identities\";\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n if (filters !== undefined) {\n localVarQueryParameter['filters'] = filters;\n }\n if (sorters !== undefined) {\n localVarQueryParameter['sorters'] = sorters;\n }\n if (defaultFilter !== undefined) {\n localVarQueryParameter['defaultFilter'] = defaultFilter;\n }\n if (count !== undefined) {\n localVarQueryParameter['count'] = count;\n }\n if (limit !== undefined) {\n localVarQueryParameter['limit'] = limit;\n }\n if (offset !== undefined) {\n localVarQueryParameter['offset'] = offset;\n }\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * You could use this endpoint to: 1. Calculate identity attributes, including applying or running any rules or transforms (e.g. calculate Lifecycle State at a point-in-time it\\'s expected to change). 2. Evaluate role assignments, leading to assignment of new roles and removal of existing roles. 3. Enforce provisioning for any assigned accesses that haven\\'t been fulfilled (e.g. failure due to source health). 4. Recalculate manager relationships. 5. Potentially clean-up identity processing errors, assuming the error has been resolved. To learn more, refer to the [identity processing documentation](https://documentation.sailpoint.com/saas/help/setup/identity_processing.html). A token with ORG_ADMIN or HELPDESK authority is required to call this API.\n * @summary Process a list of identityIds\n * @param {ProcessIdentitiesRequestBeta} processIdentitiesRequestBeta\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n startIdentityProcessing: function (processIdentitiesRequestBeta, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'processIdentitiesRequestBeta' is not null or undefined\n (0, common_1.assertParamExists)('startIdentityProcessing', 'processIdentitiesRequestBeta', processIdentitiesRequestBeta);\n localVarPath = \"/identities/process\";\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n localVarHeaderParameter['Content-Type'] = 'application/json';\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(processIdentitiesRequestBeta, localVarRequestOptions, configuration);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This end-point performs attribute synchronization for a selected identity. The endpoint can be called once in 10 seconds per identity. A token with ORG_ADMIN or API authority is required to call this API.\n * @summary Attribute synchronization for single identity.\n * @param {string} identityId The Identity id\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n synchronizeAttributesForIdentity: function (identityId, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'identityId' is not null or undefined\n (0, common_1.assertParamExists)('synchronizeAttributesForIdentity', 'identityId', identityId);\n localVarPath = \"/identities/{identityId}/synchronize-attributes\"\n .replace(\"{\".concat(\"identityId\", \"}\"), encodeURIComponent(String(identityId)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n };\n};\nexports.IdentitiesBetaApiAxiosParamCreator = IdentitiesBetaApiAxiosParamCreator;\n/**\n * IdentitiesBetaApi - functional programming interface\n * @export\n */\nvar IdentitiesBetaApiFp = function (configuration) {\n var localVarAxiosParamCreator = (0, exports.IdentitiesBetaApiAxiosParamCreator)(configuration);\n return {\n /**\n * The API returns successful response if the requested identity was deleted.\n * @summary Deletes an identity.\n * @param {string} id Identity Id\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n deleteIdentity: function (id, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.deleteIdentity(id, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This API returns a single identity using the Identity ID.\n * @summary Identity Details\n * @param {string} id Identity Id\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getIdentity: function (id, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.getIdentity(id, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * Get Ownership association details of an Identity\n * @summary Get ownership details\n * @param {string} identityId The identity id\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getIdentityOwnershipDetails: function (identityId, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.getIdentityOwnershipDetails(identityId, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This API returns a list of identities.\n * @summary List Identities\n * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **id**: *eq, in* **name**: *eq, sw* **alias**: *eq, sw* **firstname**: *eq, sw* **lastname**: *eq, sw* **email**: *eq, sw* **cloudStatus**: *eq* **processingState**: *eq* **correlated**: *eq* **protected**: *eq*\n * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **name, alias, cloudStatus**\n * @param {'CORRELATED_ONLY' | 'NONE'} [defaultFilter] Adds additional filter to filters query parameter. CORRELATED_ONLY adds correlated=true and returns only identities that are correlated. NONE does not add any and returns all identities that satisfy filters query parameter.\n * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n listIdentities: function (filters, sorters, defaultFilter, count, limit, offset, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.listIdentities(filters, sorters, defaultFilter, count, limit, offset, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * You could use this endpoint to: 1. Calculate identity attributes, including applying or running any rules or transforms (e.g. calculate Lifecycle State at a point-in-time it\\'s expected to change). 2. Evaluate role assignments, leading to assignment of new roles and removal of existing roles. 3. Enforce provisioning for any assigned accesses that haven\\'t been fulfilled (e.g. failure due to source health). 4. Recalculate manager relationships. 5. Potentially clean-up identity processing errors, assuming the error has been resolved. To learn more, refer to the [identity processing documentation](https://documentation.sailpoint.com/saas/help/setup/identity_processing.html). A token with ORG_ADMIN or HELPDESK authority is required to call this API.\n * @summary Process a list of identityIds\n * @param {ProcessIdentitiesRequestBeta} processIdentitiesRequestBeta\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n startIdentityProcessing: function (processIdentitiesRequestBeta, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.startIdentityProcessing(processIdentitiesRequestBeta, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This end-point performs attribute synchronization for a selected identity. The endpoint can be called once in 10 seconds per identity. A token with ORG_ADMIN or API authority is required to call this API.\n * @summary Attribute synchronization for single identity.\n * @param {string} identityId The Identity id\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n synchronizeAttributesForIdentity: function (identityId, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.synchronizeAttributesForIdentity(identityId, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n };\n};\nexports.IdentitiesBetaApiFp = IdentitiesBetaApiFp;\n/**\n * IdentitiesBetaApi - factory interface\n * @export\n */\nvar IdentitiesBetaApiFactory = function (configuration, basePath, axios) {\n var localVarFp = (0, exports.IdentitiesBetaApiFp)(configuration);\n return {\n /**\n * The API returns successful response if the requested identity was deleted.\n * @summary Deletes an identity.\n * @param {string} id Identity Id\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n deleteIdentity: function (id, axiosOptions) {\n return localVarFp.deleteIdentity(id, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This API returns a single identity using the Identity ID.\n * @summary Identity Details\n * @param {string} id Identity Id\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getIdentity: function (id, axiosOptions) {\n return localVarFp.getIdentity(id, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * Get Ownership association details of an Identity\n * @summary Get ownership details\n * @param {string} identityId The identity id\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getIdentityOwnershipDetails: function (identityId, axiosOptions) {\n return localVarFp.getIdentityOwnershipDetails(identityId, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This API returns a list of identities.\n * @summary List Identities\n * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **id**: *eq, in* **name**: *eq, sw* **alias**: *eq, sw* **firstname**: *eq, sw* **lastname**: *eq, sw* **email**: *eq, sw* **cloudStatus**: *eq* **processingState**: *eq* **correlated**: *eq* **protected**: *eq*\n * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **name, alias, cloudStatus**\n * @param {'CORRELATED_ONLY' | 'NONE'} [defaultFilter] Adds additional filter to filters query parameter. CORRELATED_ONLY adds correlated=true and returns only identities that are correlated. NONE does not add any and returns all identities that satisfy filters query parameter.\n * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n listIdentities: function (filters, sorters, defaultFilter, count, limit, offset, axiosOptions) {\n return localVarFp.listIdentities(filters, sorters, defaultFilter, count, limit, offset, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * You could use this endpoint to: 1. Calculate identity attributes, including applying or running any rules or transforms (e.g. calculate Lifecycle State at a point-in-time it\\'s expected to change). 2. Evaluate role assignments, leading to assignment of new roles and removal of existing roles. 3. Enforce provisioning for any assigned accesses that haven\\'t been fulfilled (e.g. failure due to source health). 4. Recalculate manager relationships. 5. Potentially clean-up identity processing errors, assuming the error has been resolved. To learn more, refer to the [identity processing documentation](https://documentation.sailpoint.com/saas/help/setup/identity_processing.html). A token with ORG_ADMIN or HELPDESK authority is required to call this API.\n * @summary Process a list of identityIds\n * @param {ProcessIdentitiesRequestBeta} processIdentitiesRequestBeta\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n startIdentityProcessing: function (processIdentitiesRequestBeta, axiosOptions) {\n return localVarFp.startIdentityProcessing(processIdentitiesRequestBeta, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This end-point performs attribute synchronization for a selected identity. The endpoint can be called once in 10 seconds per identity. A token with ORG_ADMIN or API authority is required to call this API.\n * @summary Attribute synchronization for single identity.\n * @param {string} identityId The Identity id\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n synchronizeAttributesForIdentity: function (identityId, axiosOptions) {\n return localVarFp.synchronizeAttributesForIdentity(identityId, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n };\n};\nexports.IdentitiesBetaApiFactory = IdentitiesBetaApiFactory;\n/**\n * IdentitiesBetaApi - object-oriented interface\n * @export\n * @class IdentitiesBetaApi\n * @extends {BaseAPI}\n */\nvar IdentitiesBetaApi = /** @class */ (function (_super) {\n __extends(IdentitiesBetaApi, _super);\n function IdentitiesBetaApi() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n * The API returns successful response if the requested identity was deleted.\n * @summary Deletes an identity.\n * @param {IdentitiesBetaApiDeleteIdentityRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof IdentitiesBetaApi\n */\n IdentitiesBetaApi.prototype.deleteIdentity = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.IdentitiesBetaApiFp)(this.configuration).deleteIdentity(requestParameters.id, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This API returns a single identity using the Identity ID.\n * @summary Identity Details\n * @param {IdentitiesBetaApiGetIdentityRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof IdentitiesBetaApi\n */\n IdentitiesBetaApi.prototype.getIdentity = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.IdentitiesBetaApiFp)(this.configuration).getIdentity(requestParameters.id, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * Get Ownership association details of an Identity\n * @summary Get ownership details\n * @param {IdentitiesBetaApiGetIdentityOwnershipDetailsRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof IdentitiesBetaApi\n */\n IdentitiesBetaApi.prototype.getIdentityOwnershipDetails = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.IdentitiesBetaApiFp)(this.configuration).getIdentityOwnershipDetails(requestParameters.identityId, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This API returns a list of identities.\n * @summary List Identities\n * @param {IdentitiesBetaApiListIdentitiesRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof IdentitiesBetaApi\n */\n IdentitiesBetaApi.prototype.listIdentities = function (requestParameters, axiosOptions) {\n var _this = this;\n if (requestParameters === void 0) { requestParameters = {}; }\n return (0, exports.IdentitiesBetaApiFp)(this.configuration).listIdentities(requestParameters.filters, requestParameters.sorters, requestParameters.defaultFilter, requestParameters.count, requestParameters.limit, requestParameters.offset, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * You could use this endpoint to: 1. Calculate identity attributes, including applying or running any rules or transforms (e.g. calculate Lifecycle State at a point-in-time it\\'s expected to change). 2. Evaluate role assignments, leading to assignment of new roles and removal of existing roles. 3. Enforce provisioning for any assigned accesses that haven\\'t been fulfilled (e.g. failure due to source health). 4. Recalculate manager relationships. 5. Potentially clean-up identity processing errors, assuming the error has been resolved. To learn more, refer to the [identity processing documentation](https://documentation.sailpoint.com/saas/help/setup/identity_processing.html). A token with ORG_ADMIN or HELPDESK authority is required to call this API.\n * @summary Process a list of identityIds\n * @param {IdentitiesBetaApiStartIdentityProcessingRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof IdentitiesBetaApi\n */\n IdentitiesBetaApi.prototype.startIdentityProcessing = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.IdentitiesBetaApiFp)(this.configuration).startIdentityProcessing(requestParameters.processIdentitiesRequestBeta, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This end-point performs attribute synchronization for a selected identity. The endpoint can be called once in 10 seconds per identity. A token with ORG_ADMIN or API authority is required to call this API.\n * @summary Attribute synchronization for single identity.\n * @param {IdentitiesBetaApiSynchronizeAttributesForIdentityRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof IdentitiesBetaApi\n */\n IdentitiesBetaApi.prototype.synchronizeAttributesForIdentity = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.IdentitiesBetaApiFp)(this.configuration).synchronizeAttributesForIdentity(requestParameters.identityId, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n return IdentitiesBetaApi;\n}(base_1.BaseAPI));\nexports.IdentitiesBetaApi = IdentitiesBetaApi;\n/**\n * IdentityAttributesBetaApi - axios parameter creator\n * @export\n */\nvar IdentityAttributesBetaApiAxiosParamCreator = function (configuration) {\n var _this = this;\n return {\n /**\n * This creates a new identity attribute.\n * @summary Create Identity Attribute\n * @param {IdentityAttributeBeta} identityAttributeBeta\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n createIdentityAttribute: function (identityAttributeBeta, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'identityAttributeBeta' is not null or undefined\n (0, common_1.assertParamExists)('createIdentityAttribute', 'identityAttributeBeta', identityAttributeBeta);\n localVarPath = \"/identity-attributes/{name}\";\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n localVarHeaderParameter['Content-Type'] = 'application/json';\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(identityAttributeBeta, localVarRequestOptions, configuration);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This deletes an identity attribute for a given technical name.\n * @summary Delete Identity Attribute\n * @param {string} name The attribute\\'s technical name.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n deleteIdentityAttribute: function (name, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'name' is not null or undefined\n (0, common_1.assertParamExists)('deleteIdentityAttribute', 'name', name);\n localVarPath = \"/identity-attributes/{name}\"\n .replace(\"{\".concat(\"name\", \"}\"), encodeURIComponent(String(name)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'DELETE' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This deletes identity attributes for a given set of technical names.\n * @summary Bulk delete Identity Attributes\n * @param {IdentityAttributeNamesBeta} identityAttributeNamesBeta\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n deleteIdentityAttributesInBulk: function (identityAttributeNamesBeta, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'identityAttributeNamesBeta' is not null or undefined\n (0, common_1.assertParamExists)('deleteIdentityAttributesInBulk', 'identityAttributeNamesBeta', identityAttributeNamesBeta);\n localVarPath = \"/identity-attributes/bulk-delete\";\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n localVarHeaderParameter['Content-Type'] = 'application/json';\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(identityAttributeNamesBeta, localVarRequestOptions, configuration);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This gets an identity attribute for a given technical name.\n * @summary Get Identity Attribute\n * @param {string} name The attribute\\'s technical name.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getIdentityAttribute: function (name, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'name' is not null or undefined\n (0, common_1.assertParamExists)('getIdentityAttribute', 'name', name);\n localVarPath = \"/identity-attributes/{name}\"\n .replace(\"{\".concat(\"name\", \"}\"), encodeURIComponent(String(name)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This gets a collection of identity attributes.\n * @summary List Identity Attributes\n * @param {boolean} [includeSystem] Include \\"system\\" attributes in the response.\n * @param {boolean} [includeSilent] Include \\"silent\\" attributes in the response.\n * @param {boolean} [searchableOnly] Include only \\"searchable\\" attributes in the response.\n * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n listIdentityAttributes: function (includeSystem, includeSilent, searchableOnly, count, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n localVarPath = \"/identity-attributes\";\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n if (includeSystem !== undefined) {\n localVarQueryParameter['includeSystem'] = includeSystem;\n }\n if (includeSilent !== undefined) {\n localVarQueryParameter['includeSilent'] = includeSilent;\n }\n if (searchableOnly !== undefined) {\n localVarQueryParameter['searchableOnly'] = searchableOnly;\n }\n if (count !== undefined) {\n localVarQueryParameter['count'] = count;\n }\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This updates an existing identity attribute.\n * @summary Update Identity Attribute\n * @param {string} name The attribute\\'s technical name.\n * @param {IdentityAttributeBeta} identityAttributeBeta\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n putIdentityAttribute: function (name, identityAttributeBeta, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'name' is not null or undefined\n (0, common_1.assertParamExists)('putIdentityAttribute', 'name', name);\n // verify required parameter 'identityAttributeBeta' is not null or undefined\n (0, common_1.assertParamExists)('putIdentityAttribute', 'identityAttributeBeta', identityAttributeBeta);\n localVarPath = \"/identity-attributes/{name}\"\n .replace(\"{\".concat(\"name\", \"}\"), encodeURIComponent(String(name)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'PUT' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n localVarHeaderParameter['Content-Type'] = 'application/json';\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(identityAttributeBeta, localVarRequestOptions, configuration);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n };\n};\nexports.IdentityAttributesBetaApiAxiosParamCreator = IdentityAttributesBetaApiAxiosParamCreator;\n/**\n * IdentityAttributesBetaApi - functional programming interface\n * @export\n */\nvar IdentityAttributesBetaApiFp = function (configuration) {\n var localVarAxiosParamCreator = (0, exports.IdentityAttributesBetaApiAxiosParamCreator)(configuration);\n return {\n /**\n * This creates a new identity attribute.\n * @summary Create Identity Attribute\n * @param {IdentityAttributeBeta} identityAttributeBeta\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n createIdentityAttribute: function (identityAttributeBeta, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.createIdentityAttribute(identityAttributeBeta, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This deletes an identity attribute for a given technical name.\n * @summary Delete Identity Attribute\n * @param {string} name The attribute\\'s technical name.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n deleteIdentityAttribute: function (name, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.deleteIdentityAttribute(name, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This deletes identity attributes for a given set of technical names.\n * @summary Bulk delete Identity Attributes\n * @param {IdentityAttributeNamesBeta} identityAttributeNamesBeta\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n deleteIdentityAttributesInBulk: function (identityAttributeNamesBeta, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.deleteIdentityAttributesInBulk(identityAttributeNamesBeta, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This gets an identity attribute for a given technical name.\n * @summary Get Identity Attribute\n * @param {string} name The attribute\\'s technical name.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getIdentityAttribute: function (name, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.getIdentityAttribute(name, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This gets a collection of identity attributes.\n * @summary List Identity Attributes\n * @param {boolean} [includeSystem] Include \\"system\\" attributes in the response.\n * @param {boolean} [includeSilent] Include \\"silent\\" attributes in the response.\n * @param {boolean} [searchableOnly] Include only \\"searchable\\" attributes in the response.\n * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n listIdentityAttributes: function (includeSystem, includeSilent, searchableOnly, count, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.listIdentityAttributes(includeSystem, includeSilent, searchableOnly, count, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This updates an existing identity attribute.\n * @summary Update Identity Attribute\n * @param {string} name The attribute\\'s technical name.\n * @param {IdentityAttributeBeta} identityAttributeBeta\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n putIdentityAttribute: function (name, identityAttributeBeta, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.putIdentityAttribute(name, identityAttributeBeta, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n };\n};\nexports.IdentityAttributesBetaApiFp = IdentityAttributesBetaApiFp;\n/**\n * IdentityAttributesBetaApi - factory interface\n * @export\n */\nvar IdentityAttributesBetaApiFactory = function (configuration, basePath, axios) {\n var localVarFp = (0, exports.IdentityAttributesBetaApiFp)(configuration);\n return {\n /**\n * This creates a new identity attribute.\n * @summary Create Identity Attribute\n * @param {IdentityAttributeBeta} identityAttributeBeta\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n createIdentityAttribute: function (identityAttributeBeta, axiosOptions) {\n return localVarFp.createIdentityAttribute(identityAttributeBeta, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This deletes an identity attribute for a given technical name.\n * @summary Delete Identity Attribute\n * @param {string} name The attribute\\'s technical name.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n deleteIdentityAttribute: function (name, axiosOptions) {\n return localVarFp.deleteIdentityAttribute(name, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This deletes identity attributes for a given set of technical names.\n * @summary Bulk delete Identity Attributes\n * @param {IdentityAttributeNamesBeta} identityAttributeNamesBeta\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n deleteIdentityAttributesInBulk: function (identityAttributeNamesBeta, axiosOptions) {\n return localVarFp.deleteIdentityAttributesInBulk(identityAttributeNamesBeta, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This gets an identity attribute for a given technical name.\n * @summary Get Identity Attribute\n * @param {string} name The attribute\\'s technical name.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getIdentityAttribute: function (name, axiosOptions) {\n return localVarFp.getIdentityAttribute(name, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This gets a collection of identity attributes.\n * @summary List Identity Attributes\n * @param {boolean} [includeSystem] Include \\"system\\" attributes in the response.\n * @param {boolean} [includeSilent] Include \\"silent\\" attributes in the response.\n * @param {boolean} [searchableOnly] Include only \\"searchable\\" attributes in the response.\n * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n listIdentityAttributes: function (includeSystem, includeSilent, searchableOnly, count, axiosOptions) {\n return localVarFp.listIdentityAttributes(includeSystem, includeSilent, searchableOnly, count, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This updates an existing identity attribute.\n * @summary Update Identity Attribute\n * @param {string} name The attribute\\'s technical name.\n * @param {IdentityAttributeBeta} identityAttributeBeta\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n putIdentityAttribute: function (name, identityAttributeBeta, axiosOptions) {\n return localVarFp.putIdentityAttribute(name, identityAttributeBeta, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n };\n};\nexports.IdentityAttributesBetaApiFactory = IdentityAttributesBetaApiFactory;\n/**\n * IdentityAttributesBetaApi - object-oriented interface\n * @export\n * @class IdentityAttributesBetaApi\n * @extends {BaseAPI}\n */\nvar IdentityAttributesBetaApi = /** @class */ (function (_super) {\n __extends(IdentityAttributesBetaApi, _super);\n function IdentityAttributesBetaApi() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n * This creates a new identity attribute.\n * @summary Create Identity Attribute\n * @param {IdentityAttributesBetaApiCreateIdentityAttributeRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof IdentityAttributesBetaApi\n */\n IdentityAttributesBetaApi.prototype.createIdentityAttribute = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.IdentityAttributesBetaApiFp)(this.configuration).createIdentityAttribute(requestParameters.identityAttributeBeta, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This deletes an identity attribute for a given technical name.\n * @summary Delete Identity Attribute\n * @param {IdentityAttributesBetaApiDeleteIdentityAttributeRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof IdentityAttributesBetaApi\n */\n IdentityAttributesBetaApi.prototype.deleteIdentityAttribute = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.IdentityAttributesBetaApiFp)(this.configuration).deleteIdentityAttribute(requestParameters.name, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This deletes identity attributes for a given set of technical names.\n * @summary Bulk delete Identity Attributes\n * @param {IdentityAttributesBetaApiDeleteIdentityAttributesInBulkRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof IdentityAttributesBetaApi\n */\n IdentityAttributesBetaApi.prototype.deleteIdentityAttributesInBulk = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.IdentityAttributesBetaApiFp)(this.configuration).deleteIdentityAttributesInBulk(requestParameters.identityAttributeNamesBeta, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This gets an identity attribute for a given technical name.\n * @summary Get Identity Attribute\n * @param {IdentityAttributesBetaApiGetIdentityAttributeRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof IdentityAttributesBetaApi\n */\n IdentityAttributesBetaApi.prototype.getIdentityAttribute = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.IdentityAttributesBetaApiFp)(this.configuration).getIdentityAttribute(requestParameters.name, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This gets a collection of identity attributes.\n * @summary List Identity Attributes\n * @param {IdentityAttributesBetaApiListIdentityAttributesRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof IdentityAttributesBetaApi\n */\n IdentityAttributesBetaApi.prototype.listIdentityAttributes = function (requestParameters, axiosOptions) {\n var _this = this;\n if (requestParameters === void 0) { requestParameters = {}; }\n return (0, exports.IdentityAttributesBetaApiFp)(this.configuration).listIdentityAttributes(requestParameters.includeSystem, requestParameters.includeSilent, requestParameters.searchableOnly, requestParameters.count, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This updates an existing identity attribute.\n * @summary Update Identity Attribute\n * @param {IdentityAttributesBetaApiPutIdentityAttributeRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof IdentityAttributesBetaApi\n */\n IdentityAttributesBetaApi.prototype.putIdentityAttribute = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.IdentityAttributesBetaApiFp)(this.configuration).putIdentityAttribute(requestParameters.name, requestParameters.identityAttributeBeta, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n return IdentityAttributesBetaApi;\n}(base_1.BaseAPI));\nexports.IdentityAttributesBetaApi = IdentityAttributesBetaApi;\n/**\n * IdentityHistoryBetaApi - axios parameter creator\n * @export\n */\nvar IdentityHistoryBetaApiAxiosParamCreator = function (configuration) {\n var _this = this;\n return {\n /**\n * This method gets a difference of count for each access item types for the given identity between 2 snapshots Requires authorization scope of \\'idn:identity-history:read\\'\n * @summary Gets a difference of count for each access item types for the given identity between 2 snapshots\n * @param {string} id The identity id\n * @param {string} [snapshot1] The snapshot 1 of identity\n * @param {string} [snapshot2] The snapshot 2 of identity\n * @param {Array} [accessItemTypes] An optional list of access item types (app, account, entitlement, etc...) to return. If null or empty, all access items types are returned\n * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n compareIdentitySnapshots: function (id, snapshot1, snapshot2, accessItemTypes, limit, offset, count, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'id' is not null or undefined\n (0, common_1.assertParamExists)('compareIdentitySnapshots', 'id', id);\n localVarPath = \"/historical-identities/{id}/compare\"\n .replace(\"{\".concat(\"id\", \"}\"), encodeURIComponent(String(id)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n if (snapshot1 !== undefined) {\n localVarQueryParameter['snapshot1'] = snapshot1;\n }\n if (snapshot2 !== undefined) {\n localVarQueryParameter['snapshot2'] = snapshot2;\n }\n if (accessItemTypes) {\n localVarQueryParameter['accessItemTypes'] = accessItemTypes.join(base_1.COLLECTION_FORMATS.csv);\n }\n if (limit !== undefined) {\n localVarQueryParameter['limit'] = limit;\n }\n if (offset !== undefined) {\n localVarQueryParameter['offset'] = offset;\n }\n if (count !== undefined) {\n localVarQueryParameter['count'] = count;\n }\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This method gets a list of differences of specific accessType for the given identity between 2 snapshots Requires authorization scope of \\'idn:identity-history:read\\'\n * @summary Gets a list of differences of specific accessType for the given identity between 2 snapshots\n * @param {string} id The identity id\n * @param {string} accessType The specific type which needs to be compared\n * @param {boolean} [accessAssociated] Indicates if added or removed access needs to be returned. true - added, false - removed, null - both added & removed\n * @param {string} [snapshot1] The snapshot 1 of identity\n * @param {string} [snapshot2] The snapshot 2 of identity\n * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n compareIdentitySnapshotsAccessType: function (id, accessType, accessAssociated, snapshot1, snapshot2, limit, offset, count, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'id' is not null or undefined\n (0, common_1.assertParamExists)('compareIdentitySnapshotsAccessType', 'id', id);\n // verify required parameter 'accessType' is not null or undefined\n (0, common_1.assertParamExists)('compareIdentitySnapshotsAccessType', 'accessType', accessType);\n localVarPath = \"/historical-identities/{id}/compare/{access-type}\"\n .replace(\"{\".concat(\"id\", \"}\"), encodeURIComponent(String(id)))\n .replace(\"{\".concat(\"accessType\", \"}\"), encodeURIComponent(String(accessType)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n if (accessAssociated !== undefined) {\n localVarQueryParameter['access-associated'] = accessAssociated;\n }\n if (snapshot1 !== undefined) {\n localVarQueryParameter['snapshot1'] = snapshot1;\n }\n if (snapshot2 !== undefined) {\n localVarQueryParameter['snapshot2'] = snapshot2;\n }\n if (limit !== undefined) {\n localVarQueryParameter['limit'] = limit;\n }\n if (offset !== undefined) {\n localVarQueryParameter['offset'] = offset;\n }\n if (count !== undefined) {\n localVarQueryParameter['count'] = count;\n }\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This method retrieves a specified identity Requires authorization scope of \\'idn:identity-history:read\\'\n * @summary Get latest snapshot of identity\n * @param {string} id The identity id\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getHistoricalIdentity: function (id, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'id' is not null or undefined\n (0, common_1.assertParamExists)('getHistoricalIdentity', 'id', id);\n localVarPath = \"/historical-identities/{id}\"\n .replace(\"{\".concat(\"id\", \"}\"), encodeURIComponent(String(id)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This method retrieves all access events for the identity Requires authorization scope of \\'idn:identity-history:read\\'\n * @summary Lists all events for the given identity\n * @param {string} id The identity id\n * @param {string} [from] The optional instant from which to return the access events\n * @param {Array} [eventTypes] An optional list of event types to return. If null or empty, all events are returned\n * @param {Array} [accessItemTypes] An optional list of access item types (app, account, entitlement, etc...) to return. If null or empty, all access items types are returned\n * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getHistoricalIdentityEvents: function (id, from, eventTypes, accessItemTypes, limit, offset, count, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'id' is not null or undefined\n (0, common_1.assertParamExists)('getHistoricalIdentityEvents', 'id', id);\n localVarPath = \"/historical-identities/{id}/events\"\n .replace(\"{\".concat(\"id\", \"}\"), encodeURIComponent(String(id)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n if (from !== undefined) {\n localVarQueryParameter['from'] = from;\n }\n if (eventTypes) {\n localVarQueryParameter['eventTypes'] = eventTypes.join(base_1.COLLECTION_FORMATS.csv);\n }\n if (accessItemTypes) {\n localVarQueryParameter['accessItemTypes'] = accessItemTypes.join(base_1.COLLECTION_FORMATS.csv);\n }\n if (limit !== undefined) {\n localVarQueryParameter['limit'] = limit;\n }\n if (offset !== undefined) {\n localVarQueryParameter['offset'] = offset;\n }\n if (count !== undefined) {\n localVarQueryParameter['count'] = count;\n }\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This method retrieves a specified identity snapshot at a given date Requires authorization scope of \\'idn:identity-history:read\\'\n * @summary Gets an identity snapshot at a given date\n * @param {string} id The identity id\n * @param {string} date The specified date\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getIdentitySnapshot: function (id, date, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'id' is not null or undefined\n (0, common_1.assertParamExists)('getIdentitySnapshot', 'id', id);\n // verify required parameter 'date' is not null or undefined\n (0, common_1.assertParamExists)('getIdentitySnapshot', 'date', date);\n localVarPath = \"/historical-identities/{id}/snapshots/{date}\"\n .replace(\"{\".concat(\"id\", \"}\"), encodeURIComponent(String(id)))\n .replace(\"{\".concat(\"date\", \"}\"), encodeURIComponent(String(date)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This method gets the summary for the event count for a specific identity by month/day Requires authorization scope of \\'idn:identity-history:read\\'\n * @summary Gets the summary for the event count for a specific identity\n * @param {string} id The identity id\n * @param {string} [before] The date before which snapshot summary is required\n * @param {'day' | 'month'} [interval] The interval indicating day or month. Defaults to month if not specified\n * @param {string} [timeZone] The time zone. Defaults to UTC if not provided\n * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getIdentitySnapshotSummary: function (id, before, interval, timeZone, limit, offset, count, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'id' is not null or undefined\n (0, common_1.assertParamExists)('getIdentitySnapshotSummary', 'id', id);\n localVarPath = \"/historical-identities/{id}/snapshot-summary\"\n .replace(\"{\".concat(\"id\", \"}\"), encodeURIComponent(String(id)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n if (before !== undefined) {\n localVarQueryParameter['before'] = before;\n }\n if (interval !== undefined) {\n localVarQueryParameter['interval'] = interval;\n }\n if (timeZone !== undefined) {\n localVarQueryParameter['time-zone'] = timeZone;\n }\n if (limit !== undefined) {\n localVarQueryParameter['limit'] = limit;\n }\n if (offset !== undefined) {\n localVarQueryParameter['offset'] = offset;\n }\n if (count !== undefined) {\n localVarQueryParameter['count'] = count;\n }\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This method retrieves start date of the identity Requires authorization scope of \\'idn:identity-history:read\\'\n * @summary Gets the start date of the identity\n * @param {string} id The identity id\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getIdentityStartDate: function (id, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'id' is not null or undefined\n (0, common_1.assertParamExists)('getIdentityStartDate', 'id', id);\n localVarPath = \"/historical-identities/{id}/start-date\"\n .replace(\"{\".concat(\"id\", \"}\"), encodeURIComponent(String(id)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This gets the list of identities for the customer. This list end point does not support count=true request param. The total count of identities would never be returned even if the count param is specified in the request Requires authorization scope of \\'idn:identity-history:read\\'\n * @summary Lists all the identities\n * @param {string} [startsWithQuery] This param is used for starts-with search for first, last and display name of the identity\n * @param {boolean} [isDeleted] Indicates if we want to only list down deleted identities or not.\n * @param {boolean} [isActive] Indicates if we want to only list active or inactive identities.\n * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n listHistoricalIdentities: function (startsWithQuery, isDeleted, isActive, limit, offset, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n localVarPath = \"/historical-identities\";\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n if (startsWithQuery !== undefined) {\n localVarQueryParameter['starts-with-query'] = startsWithQuery;\n }\n if (isDeleted !== undefined) {\n localVarQueryParameter['is-deleted'] = isDeleted;\n }\n if (isActive !== undefined) {\n localVarQueryParameter['is-active'] = isActive;\n }\n if (limit !== undefined) {\n localVarQueryParameter['limit'] = limit;\n }\n if (offset !== undefined) {\n localVarQueryParameter['offset'] = offset;\n }\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This method retrieves a list of access item for the identity filtered by the access item type Requires authorization scope of \\'idn:identity-history:read\\'\n * @summary Gets a list of access items for the identity filtered by item type\n * @param {string} id The identity id\n * @param {string} [type] The type of access item for the identity. If not provided, it defaults to account\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n listIdentityAccessItems: function (id, type, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'id' is not null or undefined\n (0, common_1.assertParamExists)('listIdentityAccessItems', 'id', id);\n localVarPath = \"/historical-identities/{id}/access-items\"\n .replace(\"{\".concat(\"id\", \"}\"), encodeURIComponent(String(id)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n if (type !== undefined) {\n localVarQueryParameter['type'] = type;\n }\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This method retrieves the list of identity access items at a given date filterd by item type Requires authorization scope of \\'idn:identity-history:read\\'\n * @summary Gets the list of identity access items at a given date filterd by item type\n * @param {string} id The identity id\n * @param {string} date The specified date\n * @param {string} [type] The access item type\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n listIdentitySnapshotAccessItems: function (id, date, type, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'id' is not null or undefined\n (0, common_1.assertParamExists)('listIdentitySnapshotAccessItems', 'id', id);\n // verify required parameter 'date' is not null or undefined\n (0, common_1.assertParamExists)('listIdentitySnapshotAccessItems', 'date', date);\n localVarPath = \"/historical-identities/{id}/snapshots/{date}/access-items\"\n .replace(\"{\".concat(\"id\", \"}\"), encodeURIComponent(String(id)))\n .replace(\"{\".concat(\"date\", \"}\"), encodeURIComponent(String(date)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n if (type !== undefined) {\n localVarQueryParameter['type'] = type;\n }\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This method retrieves all the snapshots for the identity Requires authorization scope of \\'idn:identity-history:read\\'\n * @summary Lists all the snapshots for the identity\n * @param {string} id The identity id\n * @param {string} [start] The specified start date\n * @param {'day' | 'month'} [interval] The interval indicating the range in day or month for the specified interval-name\n * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n listIdentitySnapshots: function (id, start, interval, limit, offset, count, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'id' is not null or undefined\n (0, common_1.assertParamExists)('listIdentitySnapshots', 'id', id);\n localVarPath = \"/historical-identities/{id}/snapshots\"\n .replace(\"{\".concat(\"id\", \"}\"), encodeURIComponent(String(id)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n if (start !== undefined) {\n localVarQueryParameter['start'] = start;\n }\n if (interval !== undefined) {\n localVarQueryParameter['interval'] = interval;\n }\n if (limit !== undefined) {\n localVarQueryParameter['limit'] = limit;\n }\n if (offset !== undefined) {\n localVarQueryParameter['offset'] = offset;\n }\n if (count !== undefined) {\n localVarQueryParameter['count'] = count;\n }\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n };\n};\nexports.IdentityHistoryBetaApiAxiosParamCreator = IdentityHistoryBetaApiAxiosParamCreator;\n/**\n * IdentityHistoryBetaApi - functional programming interface\n * @export\n */\nvar IdentityHistoryBetaApiFp = function (configuration) {\n var localVarAxiosParamCreator = (0, exports.IdentityHistoryBetaApiAxiosParamCreator)(configuration);\n return {\n /**\n * This method gets a difference of count for each access item types for the given identity between 2 snapshots Requires authorization scope of \\'idn:identity-history:read\\'\n * @summary Gets a difference of count for each access item types for the given identity between 2 snapshots\n * @param {string} id The identity id\n * @param {string} [snapshot1] The snapshot 1 of identity\n * @param {string} [snapshot2] The snapshot 2 of identity\n * @param {Array} [accessItemTypes] An optional list of access item types (app, account, entitlement, etc...) to return. If null or empty, all access items types are returned\n * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n compareIdentitySnapshots: function (id, snapshot1, snapshot2, accessItemTypes, limit, offset, count, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.compareIdentitySnapshots(id, snapshot1, snapshot2, accessItemTypes, limit, offset, count, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This method gets a list of differences of specific accessType for the given identity between 2 snapshots Requires authorization scope of \\'idn:identity-history:read\\'\n * @summary Gets a list of differences of specific accessType for the given identity between 2 snapshots\n * @param {string} id The identity id\n * @param {string} accessType The specific type which needs to be compared\n * @param {boolean} [accessAssociated] Indicates if added or removed access needs to be returned. true - added, false - removed, null - both added & removed\n * @param {string} [snapshot1] The snapshot 1 of identity\n * @param {string} [snapshot2] The snapshot 2 of identity\n * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n compareIdentitySnapshotsAccessType: function (id, accessType, accessAssociated, snapshot1, snapshot2, limit, offset, count, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.compareIdentitySnapshotsAccessType(id, accessType, accessAssociated, snapshot1, snapshot2, limit, offset, count, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This method retrieves a specified identity Requires authorization scope of \\'idn:identity-history:read\\'\n * @summary Get latest snapshot of identity\n * @param {string} id The identity id\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getHistoricalIdentity: function (id, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.getHistoricalIdentity(id, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This method retrieves all access events for the identity Requires authorization scope of \\'idn:identity-history:read\\'\n * @summary Lists all events for the given identity\n * @param {string} id The identity id\n * @param {string} [from] The optional instant from which to return the access events\n * @param {Array} [eventTypes] An optional list of event types to return. If null or empty, all events are returned\n * @param {Array} [accessItemTypes] An optional list of access item types (app, account, entitlement, etc...) to return. If null or empty, all access items types are returned\n * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getHistoricalIdentityEvents: function (id, from, eventTypes, accessItemTypes, limit, offset, count, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.getHistoricalIdentityEvents(id, from, eventTypes, accessItemTypes, limit, offset, count, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This method retrieves a specified identity snapshot at a given date Requires authorization scope of \\'idn:identity-history:read\\'\n * @summary Gets an identity snapshot at a given date\n * @param {string} id The identity id\n * @param {string} date The specified date\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getIdentitySnapshot: function (id, date, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.getIdentitySnapshot(id, date, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This method gets the summary for the event count for a specific identity by month/day Requires authorization scope of \\'idn:identity-history:read\\'\n * @summary Gets the summary for the event count for a specific identity\n * @param {string} id The identity id\n * @param {string} [before] The date before which snapshot summary is required\n * @param {'day' | 'month'} [interval] The interval indicating day or month. Defaults to month if not specified\n * @param {string} [timeZone] The time zone. Defaults to UTC if not provided\n * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getIdentitySnapshotSummary: function (id, before, interval, timeZone, limit, offset, count, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.getIdentitySnapshotSummary(id, before, interval, timeZone, limit, offset, count, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This method retrieves start date of the identity Requires authorization scope of \\'idn:identity-history:read\\'\n * @summary Gets the start date of the identity\n * @param {string} id The identity id\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getIdentityStartDate: function (id, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.getIdentityStartDate(id, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This gets the list of identities for the customer. This list end point does not support count=true request param. The total count of identities would never be returned even if the count param is specified in the request Requires authorization scope of \\'idn:identity-history:read\\'\n * @summary Lists all the identities\n * @param {string} [startsWithQuery] This param is used for starts-with search for first, last and display name of the identity\n * @param {boolean} [isDeleted] Indicates if we want to only list down deleted identities or not.\n * @param {boolean} [isActive] Indicates if we want to only list active or inactive identities.\n * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n listHistoricalIdentities: function (startsWithQuery, isDeleted, isActive, limit, offset, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.listHistoricalIdentities(startsWithQuery, isDeleted, isActive, limit, offset, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This method retrieves a list of access item for the identity filtered by the access item type Requires authorization scope of \\'idn:identity-history:read\\'\n * @summary Gets a list of access items for the identity filtered by item type\n * @param {string} id The identity id\n * @param {string} [type] The type of access item for the identity. If not provided, it defaults to account\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n listIdentityAccessItems: function (id, type, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.listIdentityAccessItems(id, type, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This method retrieves the list of identity access items at a given date filterd by item type Requires authorization scope of \\'idn:identity-history:read\\'\n * @summary Gets the list of identity access items at a given date filterd by item type\n * @param {string} id The identity id\n * @param {string} date The specified date\n * @param {string} [type] The access item type\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n listIdentitySnapshotAccessItems: function (id, date, type, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.listIdentitySnapshotAccessItems(id, date, type, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This method retrieves all the snapshots for the identity Requires authorization scope of \\'idn:identity-history:read\\'\n * @summary Lists all the snapshots for the identity\n * @param {string} id The identity id\n * @param {string} [start] The specified start date\n * @param {'day' | 'month'} [interval] The interval indicating the range in day or month for the specified interval-name\n * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n listIdentitySnapshots: function (id, start, interval, limit, offset, count, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.listIdentitySnapshots(id, start, interval, limit, offset, count, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n };\n};\nexports.IdentityHistoryBetaApiFp = IdentityHistoryBetaApiFp;\n/**\n * IdentityHistoryBetaApi - factory interface\n * @export\n */\nvar IdentityHistoryBetaApiFactory = function (configuration, basePath, axios) {\n var localVarFp = (0, exports.IdentityHistoryBetaApiFp)(configuration);\n return {\n /**\n * This method gets a difference of count for each access item types for the given identity between 2 snapshots Requires authorization scope of \\'idn:identity-history:read\\'\n * @summary Gets a difference of count for each access item types for the given identity between 2 snapshots\n * @param {string} id The identity id\n * @param {string} [snapshot1] The snapshot 1 of identity\n * @param {string} [snapshot2] The snapshot 2 of identity\n * @param {Array} [accessItemTypes] An optional list of access item types (app, account, entitlement, etc...) to return. If null or empty, all access items types are returned\n * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n compareIdentitySnapshots: function (id, snapshot1, snapshot2, accessItemTypes, limit, offset, count, axiosOptions) {\n return localVarFp.compareIdentitySnapshots(id, snapshot1, snapshot2, accessItemTypes, limit, offset, count, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This method gets a list of differences of specific accessType for the given identity between 2 snapshots Requires authorization scope of \\'idn:identity-history:read\\'\n * @summary Gets a list of differences of specific accessType for the given identity between 2 snapshots\n * @param {string} id The identity id\n * @param {string} accessType The specific type which needs to be compared\n * @param {boolean} [accessAssociated] Indicates if added or removed access needs to be returned. true - added, false - removed, null - both added & removed\n * @param {string} [snapshot1] The snapshot 1 of identity\n * @param {string} [snapshot2] The snapshot 2 of identity\n * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n compareIdentitySnapshotsAccessType: function (id, accessType, accessAssociated, snapshot1, snapshot2, limit, offset, count, axiosOptions) {\n return localVarFp.compareIdentitySnapshotsAccessType(id, accessType, accessAssociated, snapshot1, snapshot2, limit, offset, count, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This method retrieves a specified identity Requires authorization scope of \\'idn:identity-history:read\\'\n * @summary Get latest snapshot of identity\n * @param {string} id The identity id\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getHistoricalIdentity: function (id, axiosOptions) {\n return localVarFp.getHistoricalIdentity(id, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This method retrieves all access events for the identity Requires authorization scope of \\'idn:identity-history:read\\'\n * @summary Lists all events for the given identity\n * @param {string} id The identity id\n * @param {string} [from] The optional instant from which to return the access events\n * @param {Array} [eventTypes] An optional list of event types to return. If null or empty, all events are returned\n * @param {Array} [accessItemTypes] An optional list of access item types (app, account, entitlement, etc...) to return. If null or empty, all access items types are returned\n * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getHistoricalIdentityEvents: function (id, from, eventTypes, accessItemTypes, limit, offset, count, axiosOptions) {\n return localVarFp.getHistoricalIdentityEvents(id, from, eventTypes, accessItemTypes, limit, offset, count, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This method retrieves a specified identity snapshot at a given date Requires authorization scope of \\'idn:identity-history:read\\'\n * @summary Gets an identity snapshot at a given date\n * @param {string} id The identity id\n * @param {string} date The specified date\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getIdentitySnapshot: function (id, date, axiosOptions) {\n return localVarFp.getIdentitySnapshot(id, date, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This method gets the summary for the event count for a specific identity by month/day Requires authorization scope of \\'idn:identity-history:read\\'\n * @summary Gets the summary for the event count for a specific identity\n * @param {string} id The identity id\n * @param {string} [before] The date before which snapshot summary is required\n * @param {'day' | 'month'} [interval] The interval indicating day or month. Defaults to month if not specified\n * @param {string} [timeZone] The time zone. Defaults to UTC if not provided\n * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getIdentitySnapshotSummary: function (id, before, interval, timeZone, limit, offset, count, axiosOptions) {\n return localVarFp.getIdentitySnapshotSummary(id, before, interval, timeZone, limit, offset, count, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This method retrieves start date of the identity Requires authorization scope of \\'idn:identity-history:read\\'\n * @summary Gets the start date of the identity\n * @param {string} id The identity id\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getIdentityStartDate: function (id, axiosOptions) {\n return localVarFp.getIdentityStartDate(id, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This gets the list of identities for the customer. This list end point does not support count=true request param. The total count of identities would never be returned even if the count param is specified in the request Requires authorization scope of \\'idn:identity-history:read\\'\n * @summary Lists all the identities\n * @param {string} [startsWithQuery] This param is used for starts-with search for first, last and display name of the identity\n * @param {boolean} [isDeleted] Indicates if we want to only list down deleted identities or not.\n * @param {boolean} [isActive] Indicates if we want to only list active or inactive identities.\n * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n listHistoricalIdentities: function (startsWithQuery, isDeleted, isActive, limit, offset, axiosOptions) {\n return localVarFp.listHistoricalIdentities(startsWithQuery, isDeleted, isActive, limit, offset, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This method retrieves a list of access item for the identity filtered by the access item type Requires authorization scope of \\'idn:identity-history:read\\'\n * @summary Gets a list of access items for the identity filtered by item type\n * @param {string} id The identity id\n * @param {string} [type] The type of access item for the identity. If not provided, it defaults to account\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n listIdentityAccessItems: function (id, type, axiosOptions) {\n return localVarFp.listIdentityAccessItems(id, type, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This method retrieves the list of identity access items at a given date filterd by item type Requires authorization scope of \\'idn:identity-history:read\\'\n * @summary Gets the list of identity access items at a given date filterd by item type\n * @param {string} id The identity id\n * @param {string} date The specified date\n * @param {string} [type] The access item type\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n listIdentitySnapshotAccessItems: function (id, date, type, axiosOptions) {\n return localVarFp.listIdentitySnapshotAccessItems(id, date, type, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This method retrieves all the snapshots for the identity Requires authorization scope of \\'idn:identity-history:read\\'\n * @summary Lists all the snapshots for the identity\n * @param {string} id The identity id\n * @param {string} [start] The specified start date\n * @param {'day' | 'month'} [interval] The interval indicating the range in day or month for the specified interval-name\n * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n listIdentitySnapshots: function (id, start, interval, limit, offset, count, axiosOptions) {\n return localVarFp.listIdentitySnapshots(id, start, interval, limit, offset, count, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n };\n};\nexports.IdentityHistoryBetaApiFactory = IdentityHistoryBetaApiFactory;\n/**\n * IdentityHistoryBetaApi - object-oriented interface\n * @export\n * @class IdentityHistoryBetaApi\n * @extends {BaseAPI}\n */\nvar IdentityHistoryBetaApi = /** @class */ (function (_super) {\n __extends(IdentityHistoryBetaApi, _super);\n function IdentityHistoryBetaApi() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n * This method gets a difference of count for each access item types for the given identity between 2 snapshots Requires authorization scope of \\'idn:identity-history:read\\'\n * @summary Gets a difference of count for each access item types for the given identity between 2 snapshots\n * @param {IdentityHistoryBetaApiCompareIdentitySnapshotsRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof IdentityHistoryBetaApi\n */\n IdentityHistoryBetaApi.prototype.compareIdentitySnapshots = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.IdentityHistoryBetaApiFp)(this.configuration).compareIdentitySnapshots(requestParameters.id, requestParameters.snapshot1, requestParameters.snapshot2, requestParameters.accessItemTypes, requestParameters.limit, requestParameters.offset, requestParameters.count, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This method gets a list of differences of specific accessType for the given identity between 2 snapshots Requires authorization scope of \\'idn:identity-history:read\\'\n * @summary Gets a list of differences of specific accessType for the given identity between 2 snapshots\n * @param {IdentityHistoryBetaApiCompareIdentitySnapshotsAccessTypeRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof IdentityHistoryBetaApi\n */\n IdentityHistoryBetaApi.prototype.compareIdentitySnapshotsAccessType = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.IdentityHistoryBetaApiFp)(this.configuration).compareIdentitySnapshotsAccessType(requestParameters.id, requestParameters.accessType, requestParameters.accessAssociated, requestParameters.snapshot1, requestParameters.snapshot2, requestParameters.limit, requestParameters.offset, requestParameters.count, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This method retrieves a specified identity Requires authorization scope of \\'idn:identity-history:read\\'\n * @summary Get latest snapshot of identity\n * @param {IdentityHistoryBetaApiGetHistoricalIdentityRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof IdentityHistoryBetaApi\n */\n IdentityHistoryBetaApi.prototype.getHistoricalIdentity = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.IdentityHistoryBetaApiFp)(this.configuration).getHistoricalIdentity(requestParameters.id, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This method retrieves all access events for the identity Requires authorization scope of \\'idn:identity-history:read\\'\n * @summary Lists all events for the given identity\n * @param {IdentityHistoryBetaApiGetHistoricalIdentityEventsRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof IdentityHistoryBetaApi\n */\n IdentityHistoryBetaApi.prototype.getHistoricalIdentityEvents = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.IdentityHistoryBetaApiFp)(this.configuration).getHistoricalIdentityEvents(requestParameters.id, requestParameters.from, requestParameters.eventTypes, requestParameters.accessItemTypes, requestParameters.limit, requestParameters.offset, requestParameters.count, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This method retrieves a specified identity snapshot at a given date Requires authorization scope of \\'idn:identity-history:read\\'\n * @summary Gets an identity snapshot at a given date\n * @param {IdentityHistoryBetaApiGetIdentitySnapshotRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof IdentityHistoryBetaApi\n */\n IdentityHistoryBetaApi.prototype.getIdentitySnapshot = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.IdentityHistoryBetaApiFp)(this.configuration).getIdentitySnapshot(requestParameters.id, requestParameters.date, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This method gets the summary for the event count for a specific identity by month/day Requires authorization scope of \\'idn:identity-history:read\\'\n * @summary Gets the summary for the event count for a specific identity\n * @param {IdentityHistoryBetaApiGetIdentitySnapshotSummaryRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof IdentityHistoryBetaApi\n */\n IdentityHistoryBetaApi.prototype.getIdentitySnapshotSummary = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.IdentityHistoryBetaApiFp)(this.configuration).getIdentitySnapshotSummary(requestParameters.id, requestParameters.before, requestParameters.interval, requestParameters.timeZone, requestParameters.limit, requestParameters.offset, requestParameters.count, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This method retrieves start date of the identity Requires authorization scope of \\'idn:identity-history:read\\'\n * @summary Gets the start date of the identity\n * @param {IdentityHistoryBetaApiGetIdentityStartDateRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof IdentityHistoryBetaApi\n */\n IdentityHistoryBetaApi.prototype.getIdentityStartDate = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.IdentityHistoryBetaApiFp)(this.configuration).getIdentityStartDate(requestParameters.id, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This gets the list of identities for the customer. This list end point does not support count=true request param. The total count of identities would never be returned even if the count param is specified in the request Requires authorization scope of \\'idn:identity-history:read\\'\n * @summary Lists all the identities\n * @param {IdentityHistoryBetaApiListHistoricalIdentitiesRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof IdentityHistoryBetaApi\n */\n IdentityHistoryBetaApi.prototype.listHistoricalIdentities = function (requestParameters, axiosOptions) {\n var _this = this;\n if (requestParameters === void 0) { requestParameters = {}; }\n return (0, exports.IdentityHistoryBetaApiFp)(this.configuration).listHistoricalIdentities(requestParameters.startsWithQuery, requestParameters.isDeleted, requestParameters.isActive, requestParameters.limit, requestParameters.offset, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This method retrieves a list of access item for the identity filtered by the access item type Requires authorization scope of \\'idn:identity-history:read\\'\n * @summary Gets a list of access items for the identity filtered by item type\n * @param {IdentityHistoryBetaApiListIdentityAccessItemsRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof IdentityHistoryBetaApi\n */\n IdentityHistoryBetaApi.prototype.listIdentityAccessItems = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.IdentityHistoryBetaApiFp)(this.configuration).listIdentityAccessItems(requestParameters.id, requestParameters.type, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This method retrieves the list of identity access items at a given date filterd by item type Requires authorization scope of \\'idn:identity-history:read\\'\n * @summary Gets the list of identity access items at a given date filterd by item type\n * @param {IdentityHistoryBetaApiListIdentitySnapshotAccessItemsRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof IdentityHistoryBetaApi\n */\n IdentityHistoryBetaApi.prototype.listIdentitySnapshotAccessItems = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.IdentityHistoryBetaApiFp)(this.configuration).listIdentitySnapshotAccessItems(requestParameters.id, requestParameters.date, requestParameters.type, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This method retrieves all the snapshots for the identity Requires authorization scope of \\'idn:identity-history:read\\'\n * @summary Lists all the snapshots for the identity\n * @param {IdentityHistoryBetaApiListIdentitySnapshotsRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof IdentityHistoryBetaApi\n */\n IdentityHistoryBetaApi.prototype.listIdentitySnapshots = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.IdentityHistoryBetaApiFp)(this.configuration).listIdentitySnapshots(requestParameters.id, requestParameters.start, requestParameters.interval, requestParameters.limit, requestParameters.offset, requestParameters.count, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n return IdentityHistoryBetaApi;\n}(base_1.BaseAPI));\nexports.IdentityHistoryBetaApi = IdentityHistoryBetaApi;\n/**\n * IdentityProfilesBetaApi - axios parameter creator\n * @export\n */\nvar IdentityProfilesBetaApiAxiosParamCreator = function (configuration) {\n var _this = this;\n return {\n /**\n * This creates an Identity Profile A token with ORG_ADMIN authority is required to call this API to create an Identity Profile.\n * @summary Create an Identity Profile\n * @param {IdentityProfileBeta} identityProfileBeta\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n createIdentityProfile: function (identityProfileBeta, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'identityProfileBeta' is not null or undefined\n (0, common_1.assertParamExists)('createIdentityProfile', 'identityProfileBeta', identityProfileBeta);\n localVarPath = \"/identity-profiles\";\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n localVarHeaderParameter['Content-Type'] = 'application/json';\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(identityProfileBeta, localVarRequestOptions, configuration);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This deletes an Identity Profile based on ID. On success, this endpoint will return a reference to the bulk delete task result. A token with ORG_ADMIN authority is required to call this API. The following rights are required to access this endpoint: idn:identity-profile:delete\n * @summary Delete an Identity Profile\n * @param {string} identityProfileId The Identity Profile ID.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n deleteIdentityProfile: function (identityProfileId, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'identityProfileId' is not null or undefined\n (0, common_1.assertParamExists)('deleteIdentityProfile', 'identityProfileId', identityProfileId);\n localVarPath = \"/identity-profiles/{identity-profile-id}\"\n .replace(\"{\".concat(\"identity-profile-id\", \"}\"), encodeURIComponent(String(identityProfileId)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'DELETE' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This deletes multiple Identity Profiles via a list of supplied IDs. On success, this endpoint will return a reference to the bulk delete task result. A token with ORG_ADMIN authority is required to call this API. The following rights are required to access this endpoint: idn:identity-profile:delete\n * @summary Delete Identity Profiles\n * @param {Array} requestBody Identity Profile bulk delete request body.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n deleteIdentityProfiles: function (requestBody, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'requestBody' is not null or undefined\n (0, common_1.assertParamExists)('deleteIdentityProfiles', 'requestBody', requestBody);\n localVarPath = \"/identity-profiles/bulk-delete\";\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n localVarHeaderParameter['Content-Type'] = 'application/json';\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(requestBody, localVarRequestOptions, configuration);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This exports existing identity profiles in the format specified by the sp-config service.\n * @summary Export Identity Profiles\n * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **id**: *eq, ne* **name**: *eq, ne* **priority**: *eq, ne*\n * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **id, name, priority**\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n exportIdentityProfiles: function (limit, offset, count, filters, sorters, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n localVarPath = \"/identity-profiles/export\";\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n if (limit !== undefined) {\n localVarQueryParameter['limit'] = limit;\n }\n if (offset !== undefined) {\n localVarQueryParameter['offset'] = offset;\n }\n if (count !== undefined) {\n localVarQueryParameter['count'] = count;\n }\n if (filters !== undefined) {\n localVarQueryParameter['filters'] = filters;\n }\n if (sorters !== undefined) {\n localVarQueryParameter['sorters'] = sorters;\n }\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This generates a non-persisted IdentityDetails object that will represent as the preview of the identities attribute when the given policy\\'s attribute config is applied. A token with ORG_ADMIN authority is required to call this API to generate an identity preview.\n * @summary Generate Identity Profile Preview\n * @param {IdentityPreviewRequestBeta} identityPreviewRequestBeta Identity Preview request body.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n generateIdentityPreview: function (identityPreviewRequestBeta, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'identityPreviewRequestBeta' is not null or undefined\n (0, common_1.assertParamExists)('generateIdentityPreview', 'identityPreviewRequestBeta', identityPreviewRequestBeta);\n localVarPath = \"/identity-profiles/identity-preview\";\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n localVarHeaderParameter['Content-Type'] = 'application/json';\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(identityPreviewRequestBeta, localVarRequestOptions, configuration);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This returns the default identity attribute config A token with ORG_ADMIN authority is required to call this API to get the default identity attribute config.\n * @summary Default identity attribute config\n * @param {string} identityProfileId The Identity Profile ID\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getDefaultIdentityAttributeConfig: function (identityProfileId, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'identityProfileId' is not null or undefined\n (0, common_1.assertParamExists)('getDefaultIdentityAttributeConfig', 'identityProfileId', identityProfileId);\n localVarPath = \"/identity-profiles/{identity-profile-id}/default-identity-attribute-config\"\n .replace(\"{\".concat(\"identity-profile-id\", \"}\"), encodeURIComponent(String(identityProfileId)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This returns a single Identity Profile based on ID. A token with ORG_ADMIN or API authority is required to call this API.\n * @summary Gets a single Identity Profile\n * @param {string} identityProfileId The Identity Profile ID\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getIdentityProfile: function (identityProfileId, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'identityProfileId' is not null or undefined\n (0, common_1.assertParamExists)('getIdentityProfile', 'identityProfileId', identityProfileId);\n localVarPath = \"/identity-profiles/{identity-profile-id}\"\n .replace(\"{\".concat(\"identity-profile-id\", \"}\"), encodeURIComponent(String(identityProfileId)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This imports previously exported identity profiles.\n * @summary Import Identity Profiles\n * @param {Array} identityProfileExportedObjectBeta Previously exported Identity Profiles.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n importIdentityProfiles: function (identityProfileExportedObjectBeta, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'identityProfileExportedObjectBeta' is not null or undefined\n (0, common_1.assertParamExists)('importIdentityProfiles', 'identityProfileExportedObjectBeta', identityProfileExportedObjectBeta);\n localVarPath = \"/identity-profiles/import\";\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n localVarHeaderParameter['Content-Type'] = 'application/json';\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(identityProfileExportedObjectBeta, localVarRequestOptions, configuration);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This returns a list of Identity Profiles based on the specified query parameters. A token with ORG_ADMIN or API authority is required to call this API to get a list of Identity Profiles.\n * @summary Identity Profiles list\n * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **id**: *eq, ne, co, ge, gt, in, le, lt, isnull, sw* **name**: *eq, ne, co, in, le, lt, isnull, sw* **priority**: *eq, ne*\n * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **id, name, priority, created, modified, owner.id, owner.name**\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n listIdentityProfiles: function (limit, offset, count, filters, sorters, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n localVarPath = \"/identity-profiles\";\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n if (limit !== undefined) {\n localVarQueryParameter['limit'] = limit;\n }\n if (offset !== undefined) {\n localVarQueryParameter['offset'] = offset;\n }\n if (count !== undefined) {\n localVarQueryParameter['count'] = count;\n }\n if (filters !== undefined) {\n localVarQueryParameter['filters'] = filters;\n }\n if (sorters !== undefined) {\n localVarQueryParameter['sorters'] = sorters;\n }\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * Process identities under the profile A token with ORG_ADMIN authority is required to call this API.\n * @summary Process identities under profile\n * @param {string} identityProfileId The Identity Profile ID to be processed\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n syncIdentityProfile: function (identityProfileId, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'identityProfileId' is not null or undefined\n (0, common_1.assertParamExists)('syncIdentityProfile', 'identityProfileId', identityProfileId);\n localVarPath = \"/identity-profiles/{identity-profile-id}/process-identities\"\n .replace(\"{\".concat(\"identity-profile-id\", \"}\"), encodeURIComponent(String(identityProfileId)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This updates the specified Identity Profile. A token with ORG_ADMIN authority is required to call this API to update the Identity Profile. Some fields of the Schema cannot be updated. These fields are listed below. * id * name * created * modified\n * @summary Update the Identity Profile\n * @param {string} identityProfileId The Identity Profile ID\n * @param {Array} jsonPatchOperationBeta A list of Identity Profile update operations according to the [JSON Patch](https://tools.ietf.org/html/rfc6902) standard.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n updateIdentityProfile: function (identityProfileId, jsonPatchOperationBeta, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'identityProfileId' is not null or undefined\n (0, common_1.assertParamExists)('updateIdentityProfile', 'identityProfileId', identityProfileId);\n // verify required parameter 'jsonPatchOperationBeta' is not null or undefined\n (0, common_1.assertParamExists)('updateIdentityProfile', 'jsonPatchOperationBeta', jsonPatchOperationBeta);\n localVarPath = \"/identity-profiles/{identity-profile-id}\"\n .replace(\"{\".concat(\"identity-profile-id\", \"}\"), encodeURIComponent(String(identityProfileId)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'PATCH' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n localVarHeaderParameter['Content-Type'] = 'application/json-patch+json';\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(jsonPatchOperationBeta, localVarRequestOptions, configuration);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n };\n};\nexports.IdentityProfilesBetaApiAxiosParamCreator = IdentityProfilesBetaApiAxiosParamCreator;\n/**\n * IdentityProfilesBetaApi - functional programming interface\n * @export\n */\nvar IdentityProfilesBetaApiFp = function (configuration) {\n var localVarAxiosParamCreator = (0, exports.IdentityProfilesBetaApiAxiosParamCreator)(configuration);\n return {\n /**\n * This creates an Identity Profile A token with ORG_ADMIN authority is required to call this API to create an Identity Profile.\n * @summary Create an Identity Profile\n * @param {IdentityProfileBeta} identityProfileBeta\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n createIdentityProfile: function (identityProfileBeta, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.createIdentityProfile(identityProfileBeta, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This deletes an Identity Profile based on ID. On success, this endpoint will return a reference to the bulk delete task result. A token with ORG_ADMIN authority is required to call this API. The following rights are required to access this endpoint: idn:identity-profile:delete\n * @summary Delete an Identity Profile\n * @param {string} identityProfileId The Identity Profile ID.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n deleteIdentityProfile: function (identityProfileId, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.deleteIdentityProfile(identityProfileId, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This deletes multiple Identity Profiles via a list of supplied IDs. On success, this endpoint will return a reference to the bulk delete task result. A token with ORG_ADMIN authority is required to call this API. The following rights are required to access this endpoint: idn:identity-profile:delete\n * @summary Delete Identity Profiles\n * @param {Array} requestBody Identity Profile bulk delete request body.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n deleteIdentityProfiles: function (requestBody, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.deleteIdentityProfiles(requestBody, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This exports existing identity profiles in the format specified by the sp-config service.\n * @summary Export Identity Profiles\n * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **id**: *eq, ne* **name**: *eq, ne* **priority**: *eq, ne*\n * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **id, name, priority**\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n exportIdentityProfiles: function (limit, offset, count, filters, sorters, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.exportIdentityProfiles(limit, offset, count, filters, sorters, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This generates a non-persisted IdentityDetails object that will represent as the preview of the identities attribute when the given policy\\'s attribute config is applied. A token with ORG_ADMIN authority is required to call this API to generate an identity preview.\n * @summary Generate Identity Profile Preview\n * @param {IdentityPreviewRequestBeta} identityPreviewRequestBeta Identity Preview request body.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n generateIdentityPreview: function (identityPreviewRequestBeta, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.generateIdentityPreview(identityPreviewRequestBeta, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This returns the default identity attribute config A token with ORG_ADMIN authority is required to call this API to get the default identity attribute config.\n * @summary Default identity attribute config\n * @param {string} identityProfileId The Identity Profile ID\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getDefaultIdentityAttributeConfig: function (identityProfileId, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.getDefaultIdentityAttributeConfig(identityProfileId, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This returns a single Identity Profile based on ID. A token with ORG_ADMIN or API authority is required to call this API.\n * @summary Gets a single Identity Profile\n * @param {string} identityProfileId The Identity Profile ID\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getIdentityProfile: function (identityProfileId, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.getIdentityProfile(identityProfileId, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This imports previously exported identity profiles.\n * @summary Import Identity Profiles\n * @param {Array} identityProfileExportedObjectBeta Previously exported Identity Profiles.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n importIdentityProfiles: function (identityProfileExportedObjectBeta, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.importIdentityProfiles(identityProfileExportedObjectBeta, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This returns a list of Identity Profiles based on the specified query parameters. A token with ORG_ADMIN or API authority is required to call this API to get a list of Identity Profiles.\n * @summary Identity Profiles list\n * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **id**: *eq, ne, co, ge, gt, in, le, lt, isnull, sw* **name**: *eq, ne, co, in, le, lt, isnull, sw* **priority**: *eq, ne*\n * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **id, name, priority, created, modified, owner.id, owner.name**\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n listIdentityProfiles: function (limit, offset, count, filters, sorters, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.listIdentityProfiles(limit, offset, count, filters, sorters, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * Process identities under the profile A token with ORG_ADMIN authority is required to call this API.\n * @summary Process identities under profile\n * @param {string} identityProfileId The Identity Profile ID to be processed\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n syncIdentityProfile: function (identityProfileId, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.syncIdentityProfile(identityProfileId, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This updates the specified Identity Profile. A token with ORG_ADMIN authority is required to call this API to update the Identity Profile. Some fields of the Schema cannot be updated. These fields are listed below. * id * name * created * modified\n * @summary Update the Identity Profile\n * @param {string} identityProfileId The Identity Profile ID\n * @param {Array} jsonPatchOperationBeta A list of Identity Profile update operations according to the [JSON Patch](https://tools.ietf.org/html/rfc6902) standard.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n updateIdentityProfile: function (identityProfileId, jsonPatchOperationBeta, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.updateIdentityProfile(identityProfileId, jsonPatchOperationBeta, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n };\n};\nexports.IdentityProfilesBetaApiFp = IdentityProfilesBetaApiFp;\n/**\n * IdentityProfilesBetaApi - factory interface\n * @export\n */\nvar IdentityProfilesBetaApiFactory = function (configuration, basePath, axios) {\n var localVarFp = (0, exports.IdentityProfilesBetaApiFp)(configuration);\n return {\n /**\n * This creates an Identity Profile A token with ORG_ADMIN authority is required to call this API to create an Identity Profile.\n * @summary Create an Identity Profile\n * @param {IdentityProfileBeta} identityProfileBeta\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n createIdentityProfile: function (identityProfileBeta, axiosOptions) {\n return localVarFp.createIdentityProfile(identityProfileBeta, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This deletes an Identity Profile based on ID. On success, this endpoint will return a reference to the bulk delete task result. A token with ORG_ADMIN authority is required to call this API. The following rights are required to access this endpoint: idn:identity-profile:delete\n * @summary Delete an Identity Profile\n * @param {string} identityProfileId The Identity Profile ID.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n deleteIdentityProfile: function (identityProfileId, axiosOptions) {\n return localVarFp.deleteIdentityProfile(identityProfileId, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This deletes multiple Identity Profiles via a list of supplied IDs. On success, this endpoint will return a reference to the bulk delete task result. A token with ORG_ADMIN authority is required to call this API. The following rights are required to access this endpoint: idn:identity-profile:delete\n * @summary Delete Identity Profiles\n * @param {Array} requestBody Identity Profile bulk delete request body.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n deleteIdentityProfiles: function (requestBody, axiosOptions) {\n return localVarFp.deleteIdentityProfiles(requestBody, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This exports existing identity profiles in the format specified by the sp-config service.\n * @summary Export Identity Profiles\n * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **id**: *eq, ne* **name**: *eq, ne* **priority**: *eq, ne*\n * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **id, name, priority**\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n exportIdentityProfiles: function (limit, offset, count, filters, sorters, axiosOptions) {\n return localVarFp.exportIdentityProfiles(limit, offset, count, filters, sorters, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This generates a non-persisted IdentityDetails object that will represent as the preview of the identities attribute when the given policy\\'s attribute config is applied. A token with ORG_ADMIN authority is required to call this API to generate an identity preview.\n * @summary Generate Identity Profile Preview\n * @param {IdentityPreviewRequestBeta} identityPreviewRequestBeta Identity Preview request body.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n generateIdentityPreview: function (identityPreviewRequestBeta, axiosOptions) {\n return localVarFp.generateIdentityPreview(identityPreviewRequestBeta, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This returns the default identity attribute config A token with ORG_ADMIN authority is required to call this API to get the default identity attribute config.\n * @summary Default identity attribute config\n * @param {string} identityProfileId The Identity Profile ID\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getDefaultIdentityAttributeConfig: function (identityProfileId, axiosOptions) {\n return localVarFp.getDefaultIdentityAttributeConfig(identityProfileId, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This returns a single Identity Profile based on ID. A token with ORG_ADMIN or API authority is required to call this API.\n * @summary Gets a single Identity Profile\n * @param {string} identityProfileId The Identity Profile ID\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getIdentityProfile: function (identityProfileId, axiosOptions) {\n return localVarFp.getIdentityProfile(identityProfileId, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This imports previously exported identity profiles.\n * @summary Import Identity Profiles\n * @param {Array} identityProfileExportedObjectBeta Previously exported Identity Profiles.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n importIdentityProfiles: function (identityProfileExportedObjectBeta, axiosOptions) {\n return localVarFp.importIdentityProfiles(identityProfileExportedObjectBeta, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This returns a list of Identity Profiles based on the specified query parameters. A token with ORG_ADMIN or API authority is required to call this API to get a list of Identity Profiles.\n * @summary Identity Profiles list\n * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **id**: *eq, ne, co, ge, gt, in, le, lt, isnull, sw* **name**: *eq, ne, co, in, le, lt, isnull, sw* **priority**: *eq, ne*\n * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **id, name, priority, created, modified, owner.id, owner.name**\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n listIdentityProfiles: function (limit, offset, count, filters, sorters, axiosOptions) {\n return localVarFp.listIdentityProfiles(limit, offset, count, filters, sorters, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * Process identities under the profile A token with ORG_ADMIN authority is required to call this API.\n * @summary Process identities under profile\n * @param {string} identityProfileId The Identity Profile ID to be processed\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n syncIdentityProfile: function (identityProfileId, axiosOptions) {\n return localVarFp.syncIdentityProfile(identityProfileId, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This updates the specified Identity Profile. A token with ORG_ADMIN authority is required to call this API to update the Identity Profile. Some fields of the Schema cannot be updated. These fields are listed below. * id * name * created * modified\n * @summary Update the Identity Profile\n * @param {string} identityProfileId The Identity Profile ID\n * @param {Array} jsonPatchOperationBeta A list of Identity Profile update operations according to the [JSON Patch](https://tools.ietf.org/html/rfc6902) standard.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n updateIdentityProfile: function (identityProfileId, jsonPatchOperationBeta, axiosOptions) {\n return localVarFp.updateIdentityProfile(identityProfileId, jsonPatchOperationBeta, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n };\n};\nexports.IdentityProfilesBetaApiFactory = IdentityProfilesBetaApiFactory;\n/**\n * IdentityProfilesBetaApi - object-oriented interface\n * @export\n * @class IdentityProfilesBetaApi\n * @extends {BaseAPI}\n */\nvar IdentityProfilesBetaApi = /** @class */ (function (_super) {\n __extends(IdentityProfilesBetaApi, _super);\n function IdentityProfilesBetaApi() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n * This creates an Identity Profile A token with ORG_ADMIN authority is required to call this API to create an Identity Profile.\n * @summary Create an Identity Profile\n * @param {IdentityProfilesBetaApiCreateIdentityProfileRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof IdentityProfilesBetaApi\n */\n IdentityProfilesBetaApi.prototype.createIdentityProfile = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.IdentityProfilesBetaApiFp)(this.configuration).createIdentityProfile(requestParameters.identityProfileBeta, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This deletes an Identity Profile based on ID. On success, this endpoint will return a reference to the bulk delete task result. A token with ORG_ADMIN authority is required to call this API. The following rights are required to access this endpoint: idn:identity-profile:delete\n * @summary Delete an Identity Profile\n * @param {IdentityProfilesBetaApiDeleteIdentityProfileRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof IdentityProfilesBetaApi\n */\n IdentityProfilesBetaApi.prototype.deleteIdentityProfile = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.IdentityProfilesBetaApiFp)(this.configuration).deleteIdentityProfile(requestParameters.identityProfileId, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This deletes multiple Identity Profiles via a list of supplied IDs. On success, this endpoint will return a reference to the bulk delete task result. A token with ORG_ADMIN authority is required to call this API. The following rights are required to access this endpoint: idn:identity-profile:delete\n * @summary Delete Identity Profiles\n * @param {IdentityProfilesBetaApiDeleteIdentityProfilesRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof IdentityProfilesBetaApi\n */\n IdentityProfilesBetaApi.prototype.deleteIdentityProfiles = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.IdentityProfilesBetaApiFp)(this.configuration).deleteIdentityProfiles(requestParameters.requestBody, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This exports existing identity profiles in the format specified by the sp-config service.\n * @summary Export Identity Profiles\n * @param {IdentityProfilesBetaApiExportIdentityProfilesRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof IdentityProfilesBetaApi\n */\n IdentityProfilesBetaApi.prototype.exportIdentityProfiles = function (requestParameters, axiosOptions) {\n var _this = this;\n if (requestParameters === void 0) { requestParameters = {}; }\n return (0, exports.IdentityProfilesBetaApiFp)(this.configuration).exportIdentityProfiles(requestParameters.limit, requestParameters.offset, requestParameters.count, requestParameters.filters, requestParameters.sorters, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This generates a non-persisted IdentityDetails object that will represent as the preview of the identities attribute when the given policy\\'s attribute config is applied. A token with ORG_ADMIN authority is required to call this API to generate an identity preview.\n * @summary Generate Identity Profile Preview\n * @param {IdentityProfilesBetaApiGenerateIdentityPreviewRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof IdentityProfilesBetaApi\n */\n IdentityProfilesBetaApi.prototype.generateIdentityPreview = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.IdentityProfilesBetaApiFp)(this.configuration).generateIdentityPreview(requestParameters.identityPreviewRequestBeta, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This returns the default identity attribute config A token with ORG_ADMIN authority is required to call this API to get the default identity attribute config.\n * @summary Default identity attribute config\n * @param {IdentityProfilesBetaApiGetDefaultIdentityAttributeConfigRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof IdentityProfilesBetaApi\n */\n IdentityProfilesBetaApi.prototype.getDefaultIdentityAttributeConfig = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.IdentityProfilesBetaApiFp)(this.configuration).getDefaultIdentityAttributeConfig(requestParameters.identityProfileId, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This returns a single Identity Profile based on ID. A token with ORG_ADMIN or API authority is required to call this API.\n * @summary Gets a single Identity Profile\n * @param {IdentityProfilesBetaApiGetIdentityProfileRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof IdentityProfilesBetaApi\n */\n IdentityProfilesBetaApi.prototype.getIdentityProfile = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.IdentityProfilesBetaApiFp)(this.configuration).getIdentityProfile(requestParameters.identityProfileId, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This imports previously exported identity profiles.\n * @summary Import Identity Profiles\n * @param {IdentityProfilesBetaApiImportIdentityProfilesRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof IdentityProfilesBetaApi\n */\n IdentityProfilesBetaApi.prototype.importIdentityProfiles = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.IdentityProfilesBetaApiFp)(this.configuration).importIdentityProfiles(requestParameters.identityProfileExportedObjectBeta, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This returns a list of Identity Profiles based on the specified query parameters. A token with ORG_ADMIN or API authority is required to call this API to get a list of Identity Profiles.\n * @summary Identity Profiles list\n * @param {IdentityProfilesBetaApiListIdentityProfilesRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof IdentityProfilesBetaApi\n */\n IdentityProfilesBetaApi.prototype.listIdentityProfiles = function (requestParameters, axiosOptions) {\n var _this = this;\n if (requestParameters === void 0) { requestParameters = {}; }\n return (0, exports.IdentityProfilesBetaApiFp)(this.configuration).listIdentityProfiles(requestParameters.limit, requestParameters.offset, requestParameters.count, requestParameters.filters, requestParameters.sorters, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * Process identities under the profile A token with ORG_ADMIN authority is required to call this API.\n * @summary Process identities under profile\n * @param {IdentityProfilesBetaApiSyncIdentityProfileRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof IdentityProfilesBetaApi\n */\n IdentityProfilesBetaApi.prototype.syncIdentityProfile = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.IdentityProfilesBetaApiFp)(this.configuration).syncIdentityProfile(requestParameters.identityProfileId, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This updates the specified Identity Profile. A token with ORG_ADMIN authority is required to call this API to update the Identity Profile. Some fields of the Schema cannot be updated. These fields are listed below. * id * name * created * modified\n * @summary Update the Identity Profile\n * @param {IdentityProfilesBetaApiUpdateIdentityProfileRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof IdentityProfilesBetaApi\n */\n IdentityProfilesBetaApi.prototype.updateIdentityProfile = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.IdentityProfilesBetaApiFp)(this.configuration).updateIdentityProfile(requestParameters.identityProfileId, requestParameters.jsonPatchOperationBeta, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n return IdentityProfilesBetaApi;\n}(base_1.BaseAPI));\nexports.IdentityProfilesBetaApi = IdentityProfilesBetaApi;\n/**\n * LifecycleStatesBetaApi - axios parameter creator\n * @export\n */\nvar LifecycleStatesBetaApiAxiosParamCreator = function (configuration) {\n var _this = this;\n return {\n /**\n * This endpoint returns a lifecycle state. A token with ORG_ADMIN or API authority is required to call this API.\n * @summary Lifecycle State\n * @param {string} identityProfileId Identity Profile ID\n * @param {string} lifecycleStateId Lifecycle State ID\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n listLifecycleStates: function (identityProfileId, lifecycleStateId, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'identityProfileId' is not null or undefined\n (0, common_1.assertParamExists)('listLifecycleStates', 'identityProfileId', identityProfileId);\n // verify required parameter 'lifecycleStateId' is not null or undefined\n (0, common_1.assertParamExists)('listLifecycleStates', 'lifecycleStateId', lifecycleStateId);\n localVarPath = \"/identity-profiles/{identity-profile-id}/lifecycle-states/{lifecycle-state-id}\"\n .replace(\"{\".concat(\"identity-profile-id\", \"}\"), encodeURIComponent(String(identityProfileId)))\n .replace(\"{\".concat(\"lifecycle-state-id\", \"}\"), encodeURIComponent(String(lifecycleStateId)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This API updates individual lifecycle state fields using the [JSON Patch](https://tools.ietf.org/html/rfc6902) standard. A token with ORG_ADMIN or API authority is required to call this API.\n * @summary Update Lifecycle State\n * @param {string} identityProfileId Identity Profile ID\n * @param {string} lifecycleStateId Lifecycle State ID\n * @param {Array} jsonPatchOperationBeta A list of lifecycle state update operations according to the [JSON Patch](https://tools.ietf.org/html/rfc6902) standard. The following fields can be updated: * enabled * description * accountActions * accessProfileIds * emailNotificationOption\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n updateLifecycleStates: function (identityProfileId, lifecycleStateId, jsonPatchOperationBeta, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'identityProfileId' is not null or undefined\n (0, common_1.assertParamExists)('updateLifecycleStates', 'identityProfileId', identityProfileId);\n // verify required parameter 'lifecycleStateId' is not null or undefined\n (0, common_1.assertParamExists)('updateLifecycleStates', 'lifecycleStateId', lifecycleStateId);\n // verify required parameter 'jsonPatchOperationBeta' is not null or undefined\n (0, common_1.assertParamExists)('updateLifecycleStates', 'jsonPatchOperationBeta', jsonPatchOperationBeta);\n localVarPath = \"/identity-profiles/{identity-profile-id}/lifecycle-states/{lifecycle-state-id}\"\n .replace(\"{\".concat(\"identity-profile-id\", \"}\"), encodeURIComponent(String(identityProfileId)))\n .replace(\"{\".concat(\"lifecycle-state-id\", \"}\"), encodeURIComponent(String(lifecycleStateId)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'PATCH' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n localVarHeaderParameter['Content-Type'] = 'application/json-patch+json';\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(jsonPatchOperationBeta, localVarRequestOptions, configuration);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n };\n};\nexports.LifecycleStatesBetaApiAxiosParamCreator = LifecycleStatesBetaApiAxiosParamCreator;\n/**\n * LifecycleStatesBetaApi - functional programming interface\n * @export\n */\nvar LifecycleStatesBetaApiFp = function (configuration) {\n var localVarAxiosParamCreator = (0, exports.LifecycleStatesBetaApiAxiosParamCreator)(configuration);\n return {\n /**\n * This endpoint returns a lifecycle state. A token with ORG_ADMIN or API authority is required to call this API.\n * @summary Lifecycle State\n * @param {string} identityProfileId Identity Profile ID\n * @param {string} lifecycleStateId Lifecycle State ID\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n listLifecycleStates: function (identityProfileId, lifecycleStateId, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.listLifecycleStates(identityProfileId, lifecycleStateId, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This API updates individual lifecycle state fields using the [JSON Patch](https://tools.ietf.org/html/rfc6902) standard. A token with ORG_ADMIN or API authority is required to call this API.\n * @summary Update Lifecycle State\n * @param {string} identityProfileId Identity Profile ID\n * @param {string} lifecycleStateId Lifecycle State ID\n * @param {Array} jsonPatchOperationBeta A list of lifecycle state update operations according to the [JSON Patch](https://tools.ietf.org/html/rfc6902) standard. The following fields can be updated: * enabled * description * accountActions * accessProfileIds * emailNotificationOption\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n updateLifecycleStates: function (identityProfileId, lifecycleStateId, jsonPatchOperationBeta, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.updateLifecycleStates(identityProfileId, lifecycleStateId, jsonPatchOperationBeta, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n };\n};\nexports.LifecycleStatesBetaApiFp = LifecycleStatesBetaApiFp;\n/**\n * LifecycleStatesBetaApi - factory interface\n * @export\n */\nvar LifecycleStatesBetaApiFactory = function (configuration, basePath, axios) {\n var localVarFp = (0, exports.LifecycleStatesBetaApiFp)(configuration);\n return {\n /**\n * This endpoint returns a lifecycle state. A token with ORG_ADMIN or API authority is required to call this API.\n * @summary Lifecycle State\n * @param {string} identityProfileId Identity Profile ID\n * @param {string} lifecycleStateId Lifecycle State ID\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n listLifecycleStates: function (identityProfileId, lifecycleStateId, axiosOptions) {\n return localVarFp.listLifecycleStates(identityProfileId, lifecycleStateId, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This API updates individual lifecycle state fields using the [JSON Patch](https://tools.ietf.org/html/rfc6902) standard. A token with ORG_ADMIN or API authority is required to call this API.\n * @summary Update Lifecycle State\n * @param {string} identityProfileId Identity Profile ID\n * @param {string} lifecycleStateId Lifecycle State ID\n * @param {Array} jsonPatchOperationBeta A list of lifecycle state update operations according to the [JSON Patch](https://tools.ietf.org/html/rfc6902) standard. The following fields can be updated: * enabled * description * accountActions * accessProfileIds * emailNotificationOption\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n updateLifecycleStates: function (identityProfileId, lifecycleStateId, jsonPatchOperationBeta, axiosOptions) {\n return localVarFp.updateLifecycleStates(identityProfileId, lifecycleStateId, jsonPatchOperationBeta, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n };\n};\nexports.LifecycleStatesBetaApiFactory = LifecycleStatesBetaApiFactory;\n/**\n * LifecycleStatesBetaApi - object-oriented interface\n * @export\n * @class LifecycleStatesBetaApi\n * @extends {BaseAPI}\n */\nvar LifecycleStatesBetaApi = /** @class */ (function (_super) {\n __extends(LifecycleStatesBetaApi, _super);\n function LifecycleStatesBetaApi() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n * This endpoint returns a lifecycle state. A token with ORG_ADMIN or API authority is required to call this API.\n * @summary Lifecycle State\n * @param {LifecycleStatesBetaApiListLifecycleStatesRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof LifecycleStatesBetaApi\n */\n LifecycleStatesBetaApi.prototype.listLifecycleStates = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.LifecycleStatesBetaApiFp)(this.configuration).listLifecycleStates(requestParameters.identityProfileId, requestParameters.lifecycleStateId, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This API updates individual lifecycle state fields using the [JSON Patch](https://tools.ietf.org/html/rfc6902) standard. A token with ORG_ADMIN or API authority is required to call this API.\n * @summary Update Lifecycle State\n * @param {LifecycleStatesBetaApiUpdateLifecycleStatesRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof LifecycleStatesBetaApi\n */\n LifecycleStatesBetaApi.prototype.updateLifecycleStates = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.LifecycleStatesBetaApiFp)(this.configuration).updateLifecycleStates(requestParameters.identityProfileId, requestParameters.lifecycleStateId, requestParameters.jsonPatchOperationBeta, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n return LifecycleStatesBetaApi;\n}(base_1.BaseAPI));\nexports.LifecycleStatesBetaApi = LifecycleStatesBetaApi;\n/**\n * MFAConfigurationBetaApi - axios parameter creator\n * @export\n */\nvar MFAConfigurationBetaApiAxiosParamCreator = function (configuration) {\n var _this = this;\n return {\n /**\n * This API removes the configuration for the specified MFA method. A token with ORG_ADMIN authority is required to call this API.\n * @summary Delete MFA method configuration\n * @param {string} method The name of the MFA method. The currently supported method names are \\'okta-verify\\' and \\'duo-web\\'.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n deleteMFAConfig: function (method, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'method' is not null or undefined\n (0, common_1.assertParamExists)('deleteMFAConfig', 'method', method);\n localVarPath = \"/mfa/{method}/delete\"\n .replace(\"{\".concat(\"method\", \"}\"), encodeURIComponent(String(method)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'DELETE' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This API returns the configuration of an Duo MFA method. A token with ORG_ADMIN authority is required to call this API.\n * @summary Configuration of Duo MFA method\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getMFADuoConfig: function (axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n localVarPath = \"/mfa/duo-web/config\";\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This API returns the configuration of an Okta MFA method. A token with ORG_ADMIN authority is required to call this API.\n * @summary Configuration of Okta MFA method\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getMFAOktaConfig: function (axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n localVarPath = \"/mfa/okta-verify/config\";\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This API sets the configuration of an Duo MFA method. A token with ORG_ADMIN authority is required to call this API.\n * @summary Set Duo MFA configuration\n * @param {MfaDuoConfigBeta} mfaDuoConfigBeta\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n setMFADuoConfig: function (mfaDuoConfigBeta, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'mfaDuoConfigBeta' is not null or undefined\n (0, common_1.assertParamExists)('setMFADuoConfig', 'mfaDuoConfigBeta', mfaDuoConfigBeta);\n localVarPath = \"/mfa/duo-web/config\";\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'PUT' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n localVarHeaderParameter['Content-Type'] = 'application/json';\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(mfaDuoConfigBeta, localVarRequestOptions, configuration);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This API sets the configuration of an Okta MFA method. A token with ORG_ADMIN authority is required to call this API.\n * @summary Set Okta MFA configuration\n * @param {MfaOktaConfigBeta} mfaOktaConfigBeta\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n setMFAOktaConfig: function (mfaOktaConfigBeta, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'mfaOktaConfigBeta' is not null or undefined\n (0, common_1.assertParamExists)('setMFAOktaConfig', 'mfaOktaConfigBeta', mfaOktaConfigBeta);\n localVarPath = \"/mfa/okta-verify/config\";\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'PUT' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n localVarHeaderParameter['Content-Type'] = 'application/json';\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(mfaOktaConfigBeta, localVarRequestOptions, configuration);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This API validates that the configuration is valid and will properly authenticate with the MFA provider identified by the method path parameter. A token with ORG_ADMIN authority is required to call this API.\n * @summary MFA method\\'s test configuration\n * @param {string} method The name of the MFA method. The currently supported method names are \\'okta-verify\\' and \\'duo-web\\'.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n testMFAConfig: function (method, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'method' is not null or undefined\n (0, common_1.assertParamExists)('testMFAConfig', 'method', method);\n localVarPath = \"/mfa/{method}/test\"\n .replace(\"{\".concat(\"method\", \"}\"), encodeURIComponent(String(method)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n };\n};\nexports.MFAConfigurationBetaApiAxiosParamCreator = MFAConfigurationBetaApiAxiosParamCreator;\n/**\n * MFAConfigurationBetaApi - functional programming interface\n * @export\n */\nvar MFAConfigurationBetaApiFp = function (configuration) {\n var localVarAxiosParamCreator = (0, exports.MFAConfigurationBetaApiAxiosParamCreator)(configuration);\n return {\n /**\n * This API removes the configuration for the specified MFA method. A token with ORG_ADMIN authority is required to call this API.\n * @summary Delete MFA method configuration\n * @param {string} method The name of the MFA method. The currently supported method names are \\'okta-verify\\' and \\'duo-web\\'.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n deleteMFAConfig: function (method, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.deleteMFAConfig(method, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This API returns the configuration of an Duo MFA method. A token with ORG_ADMIN authority is required to call this API.\n * @summary Configuration of Duo MFA method\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getMFADuoConfig: function (axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.getMFADuoConfig(axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This API returns the configuration of an Okta MFA method. A token with ORG_ADMIN authority is required to call this API.\n * @summary Configuration of Okta MFA method\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getMFAOktaConfig: function (axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.getMFAOktaConfig(axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This API sets the configuration of an Duo MFA method. A token with ORG_ADMIN authority is required to call this API.\n * @summary Set Duo MFA configuration\n * @param {MfaDuoConfigBeta} mfaDuoConfigBeta\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n setMFADuoConfig: function (mfaDuoConfigBeta, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.setMFADuoConfig(mfaDuoConfigBeta, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This API sets the configuration of an Okta MFA method. A token with ORG_ADMIN authority is required to call this API.\n * @summary Set Okta MFA configuration\n * @param {MfaOktaConfigBeta} mfaOktaConfigBeta\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n setMFAOktaConfig: function (mfaOktaConfigBeta, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.setMFAOktaConfig(mfaOktaConfigBeta, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This API validates that the configuration is valid and will properly authenticate with the MFA provider identified by the method path parameter. A token with ORG_ADMIN authority is required to call this API.\n * @summary MFA method\\'s test configuration\n * @param {string} method The name of the MFA method. The currently supported method names are \\'okta-verify\\' and \\'duo-web\\'.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n testMFAConfig: function (method, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.testMFAConfig(method, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n };\n};\nexports.MFAConfigurationBetaApiFp = MFAConfigurationBetaApiFp;\n/**\n * MFAConfigurationBetaApi - factory interface\n * @export\n */\nvar MFAConfigurationBetaApiFactory = function (configuration, basePath, axios) {\n var localVarFp = (0, exports.MFAConfigurationBetaApiFp)(configuration);\n return {\n /**\n * This API removes the configuration for the specified MFA method. A token with ORG_ADMIN authority is required to call this API.\n * @summary Delete MFA method configuration\n * @param {string} method The name of the MFA method. The currently supported method names are \\'okta-verify\\' and \\'duo-web\\'.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n deleteMFAConfig: function (method, axiosOptions) {\n return localVarFp.deleteMFAConfig(method, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This API returns the configuration of an Duo MFA method. A token with ORG_ADMIN authority is required to call this API.\n * @summary Configuration of Duo MFA method\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getMFADuoConfig: function (axiosOptions) {\n return localVarFp.getMFADuoConfig(axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This API returns the configuration of an Okta MFA method. A token with ORG_ADMIN authority is required to call this API.\n * @summary Configuration of Okta MFA method\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getMFAOktaConfig: function (axiosOptions) {\n return localVarFp.getMFAOktaConfig(axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This API sets the configuration of an Duo MFA method. A token with ORG_ADMIN authority is required to call this API.\n * @summary Set Duo MFA configuration\n * @param {MfaDuoConfigBeta} mfaDuoConfigBeta\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n setMFADuoConfig: function (mfaDuoConfigBeta, axiosOptions) {\n return localVarFp.setMFADuoConfig(mfaDuoConfigBeta, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This API sets the configuration of an Okta MFA method. A token with ORG_ADMIN authority is required to call this API.\n * @summary Set Okta MFA configuration\n * @param {MfaOktaConfigBeta} mfaOktaConfigBeta\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n setMFAOktaConfig: function (mfaOktaConfigBeta, axiosOptions) {\n return localVarFp.setMFAOktaConfig(mfaOktaConfigBeta, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This API validates that the configuration is valid and will properly authenticate with the MFA provider identified by the method path parameter. A token with ORG_ADMIN authority is required to call this API.\n * @summary MFA method\\'s test configuration\n * @param {string} method The name of the MFA method. The currently supported method names are \\'okta-verify\\' and \\'duo-web\\'.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n testMFAConfig: function (method, axiosOptions) {\n return localVarFp.testMFAConfig(method, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n };\n};\nexports.MFAConfigurationBetaApiFactory = MFAConfigurationBetaApiFactory;\n/**\n * MFAConfigurationBetaApi - object-oriented interface\n * @export\n * @class MFAConfigurationBetaApi\n * @extends {BaseAPI}\n */\nvar MFAConfigurationBetaApi = /** @class */ (function (_super) {\n __extends(MFAConfigurationBetaApi, _super);\n function MFAConfigurationBetaApi() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n * This API removes the configuration for the specified MFA method. A token with ORG_ADMIN authority is required to call this API.\n * @summary Delete MFA method configuration\n * @param {MFAConfigurationBetaApiDeleteMFAConfigRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof MFAConfigurationBetaApi\n */\n MFAConfigurationBetaApi.prototype.deleteMFAConfig = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.MFAConfigurationBetaApiFp)(this.configuration).deleteMFAConfig(requestParameters.method, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This API returns the configuration of an Duo MFA method. A token with ORG_ADMIN authority is required to call this API.\n * @summary Configuration of Duo MFA method\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof MFAConfigurationBetaApi\n */\n MFAConfigurationBetaApi.prototype.getMFADuoConfig = function (axiosOptions) {\n var _this = this;\n return (0, exports.MFAConfigurationBetaApiFp)(this.configuration).getMFADuoConfig(axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This API returns the configuration of an Okta MFA method. A token with ORG_ADMIN authority is required to call this API.\n * @summary Configuration of Okta MFA method\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof MFAConfigurationBetaApi\n */\n MFAConfigurationBetaApi.prototype.getMFAOktaConfig = function (axiosOptions) {\n var _this = this;\n return (0, exports.MFAConfigurationBetaApiFp)(this.configuration).getMFAOktaConfig(axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This API sets the configuration of an Duo MFA method. A token with ORG_ADMIN authority is required to call this API.\n * @summary Set Duo MFA configuration\n * @param {MFAConfigurationBetaApiSetMFADuoConfigRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof MFAConfigurationBetaApi\n */\n MFAConfigurationBetaApi.prototype.setMFADuoConfig = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.MFAConfigurationBetaApiFp)(this.configuration).setMFADuoConfig(requestParameters.mfaDuoConfigBeta, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This API sets the configuration of an Okta MFA method. A token with ORG_ADMIN authority is required to call this API.\n * @summary Set Okta MFA configuration\n * @param {MFAConfigurationBetaApiSetMFAOktaConfigRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof MFAConfigurationBetaApi\n */\n MFAConfigurationBetaApi.prototype.setMFAOktaConfig = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.MFAConfigurationBetaApiFp)(this.configuration).setMFAOktaConfig(requestParameters.mfaOktaConfigBeta, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This API validates that the configuration is valid and will properly authenticate with the MFA provider identified by the method path parameter. A token with ORG_ADMIN authority is required to call this API.\n * @summary MFA method\\'s test configuration\n * @param {MFAConfigurationBetaApiTestMFAConfigRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof MFAConfigurationBetaApi\n */\n MFAConfigurationBetaApi.prototype.testMFAConfig = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.MFAConfigurationBetaApiFp)(this.configuration).testMFAConfig(requestParameters.method, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n return MFAConfigurationBetaApi;\n}(base_1.BaseAPI));\nexports.MFAConfigurationBetaApi = MFAConfigurationBetaApi;\n/**\n * ManagedClientsBetaApi - axios parameter creator\n * @export\n */\nvar ManagedClientsBetaApiAxiosParamCreator = function (configuration) {\n var _this = this;\n return {\n /**\n * Retrieve Managed Client Status by ID.\n * @summary Specified Managed Client Status.\n * @param {string} id ID of the Managed Client Status to get\n * @param {ManagedClientTypeBeta} type Type of the Managed Client Status to get\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getManagedClientStatus: function (id, type, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'id' is not null or undefined\n (0, common_1.assertParamExists)('getManagedClientStatus', 'id', id);\n // verify required parameter 'type' is not null or undefined\n (0, common_1.assertParamExists)('getManagedClientStatus', 'type', type);\n localVarPath = \"/managed-clients/{id}/status\"\n .replace(\"{\".concat(\"id\", \"}\"), encodeURIComponent(String(id)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n if (type !== undefined) {\n localVarQueryParameter['type'] = type;\n }\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * Update a status detail passed in from the client\n * @summary Handle status request from client\n * @param {string} id ID of the Managed Client Status to update\n * @param {ManagedClientStatusBeta} managedClientStatusBeta\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n updateManagedClientStatus: function (id, managedClientStatusBeta, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'id' is not null or undefined\n (0, common_1.assertParamExists)('updateManagedClientStatus', 'id', id);\n // verify required parameter 'managedClientStatusBeta' is not null or undefined\n (0, common_1.assertParamExists)('updateManagedClientStatus', 'managedClientStatusBeta', managedClientStatusBeta);\n localVarPath = \"/managed-clients/{id}/status\"\n .replace(\"{\".concat(\"id\", \"}\"), encodeURIComponent(String(id)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n localVarHeaderParameter['Content-Type'] = 'application/json';\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(managedClientStatusBeta, localVarRequestOptions, configuration);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n };\n};\nexports.ManagedClientsBetaApiAxiosParamCreator = ManagedClientsBetaApiAxiosParamCreator;\n/**\n * ManagedClientsBetaApi - functional programming interface\n * @export\n */\nvar ManagedClientsBetaApiFp = function (configuration) {\n var localVarAxiosParamCreator = (0, exports.ManagedClientsBetaApiAxiosParamCreator)(configuration);\n return {\n /**\n * Retrieve Managed Client Status by ID.\n * @summary Specified Managed Client Status.\n * @param {string} id ID of the Managed Client Status to get\n * @param {ManagedClientTypeBeta} type Type of the Managed Client Status to get\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getManagedClientStatus: function (id, type, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.getManagedClientStatus(id, type, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * Update a status detail passed in from the client\n * @summary Handle status request from client\n * @param {string} id ID of the Managed Client Status to update\n * @param {ManagedClientStatusBeta} managedClientStatusBeta\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n updateManagedClientStatus: function (id, managedClientStatusBeta, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.updateManagedClientStatus(id, managedClientStatusBeta, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n };\n};\nexports.ManagedClientsBetaApiFp = ManagedClientsBetaApiFp;\n/**\n * ManagedClientsBetaApi - factory interface\n * @export\n */\nvar ManagedClientsBetaApiFactory = function (configuration, basePath, axios) {\n var localVarFp = (0, exports.ManagedClientsBetaApiFp)(configuration);\n return {\n /**\n * Retrieve Managed Client Status by ID.\n * @summary Specified Managed Client Status.\n * @param {string} id ID of the Managed Client Status to get\n * @param {ManagedClientTypeBeta} type Type of the Managed Client Status to get\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getManagedClientStatus: function (id, type, axiosOptions) {\n return localVarFp.getManagedClientStatus(id, type, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * Update a status detail passed in from the client\n * @summary Handle status request from client\n * @param {string} id ID of the Managed Client Status to update\n * @param {ManagedClientStatusBeta} managedClientStatusBeta\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n updateManagedClientStatus: function (id, managedClientStatusBeta, axiosOptions) {\n return localVarFp.updateManagedClientStatus(id, managedClientStatusBeta, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n };\n};\nexports.ManagedClientsBetaApiFactory = ManagedClientsBetaApiFactory;\n/**\n * ManagedClientsBetaApi - object-oriented interface\n * @export\n * @class ManagedClientsBetaApi\n * @extends {BaseAPI}\n */\nvar ManagedClientsBetaApi = /** @class */ (function (_super) {\n __extends(ManagedClientsBetaApi, _super);\n function ManagedClientsBetaApi() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n * Retrieve Managed Client Status by ID.\n * @summary Specified Managed Client Status.\n * @param {ManagedClientsBetaApiGetManagedClientStatusRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof ManagedClientsBetaApi\n */\n ManagedClientsBetaApi.prototype.getManagedClientStatus = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.ManagedClientsBetaApiFp)(this.configuration).getManagedClientStatus(requestParameters.id, requestParameters.type, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * Update a status detail passed in from the client\n * @summary Handle status request from client\n * @param {ManagedClientsBetaApiUpdateManagedClientStatusRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof ManagedClientsBetaApi\n */\n ManagedClientsBetaApi.prototype.updateManagedClientStatus = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.ManagedClientsBetaApiFp)(this.configuration).updateManagedClientStatus(requestParameters.id, requestParameters.managedClientStatusBeta, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n return ManagedClientsBetaApi;\n}(base_1.BaseAPI));\nexports.ManagedClientsBetaApi = ManagedClientsBetaApi;\n/**\n * ManagedClustersBetaApi - axios parameter creator\n * @export\n */\nvar ManagedClustersBetaApiAxiosParamCreator = function (configuration) {\n var _this = this;\n return {\n /**\n * Get managed cluster\\'s log configuration.\n * @summary Get managed cluster\\'s log configuration\n * @param {string} id ID of ManagedCluster to get log configuration for\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getClientLogConfiguration: function (id, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'id' is not null or undefined\n (0, common_1.assertParamExists)('getClientLogConfiguration', 'id', id);\n localVarPath = \"/managed-clusters/{id}/log-config\"\n .replace(\"{\".concat(\"id\", \"}\"), encodeURIComponent(String(id)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * Retrieve a ManagedCluster by ID.\n * @summary Get a specified ManagedCluster.\n * @param {string} id ID of the ManagedCluster to get\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getManagedCluster: function (id, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'id' is not null or undefined\n (0, common_1.assertParamExists)('getManagedCluster', 'id', id);\n localVarPath = \"/managed-clusters/{id}\"\n .replace(\"{\".concat(\"id\", \"}\"), encodeURIComponent(String(id)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * Retrieve all Managed Clusters for the current Org, based on request context.\n * @summary Retrieve all Managed Clusters.\n * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **operational**: *eq*\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getManagedClusters: function (offset, limit, count, filters, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n localVarPath = \"/managed-clusters\";\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n if (offset !== undefined) {\n localVarQueryParameter['offset'] = offset;\n }\n if (limit !== undefined) {\n localVarQueryParameter['limit'] = limit;\n }\n if (count !== undefined) {\n localVarQueryParameter['count'] = count;\n }\n if (filters !== undefined) {\n localVarQueryParameter['filters'] = filters;\n }\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * Update managed cluster\\'s log configuration\n * @summary Update managed cluster\\'s log configuration\n * @param {string} id ID of ManagedCluster to update log configuration for\n * @param {ClientLogConfigurationBeta} clientLogConfigurationBeta ClientLogConfiguration for given ManagedCluster\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n putClientLogConfiguration: function (id, clientLogConfigurationBeta, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'id' is not null or undefined\n (0, common_1.assertParamExists)('putClientLogConfiguration', 'id', id);\n // verify required parameter 'clientLogConfigurationBeta' is not null or undefined\n (0, common_1.assertParamExists)('putClientLogConfiguration', 'clientLogConfigurationBeta', clientLogConfigurationBeta);\n localVarPath = \"/managed-clusters/{id}/log-config\"\n .replace(\"{\".concat(\"id\", \"}\"), encodeURIComponent(String(id)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'PUT' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n localVarHeaderParameter['Content-Type'] = 'application/json';\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(clientLogConfigurationBeta, localVarRequestOptions, configuration);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n };\n};\nexports.ManagedClustersBetaApiAxiosParamCreator = ManagedClustersBetaApiAxiosParamCreator;\n/**\n * ManagedClustersBetaApi - functional programming interface\n * @export\n */\nvar ManagedClustersBetaApiFp = function (configuration) {\n var localVarAxiosParamCreator = (0, exports.ManagedClustersBetaApiAxiosParamCreator)(configuration);\n return {\n /**\n * Get managed cluster\\'s log configuration.\n * @summary Get managed cluster\\'s log configuration\n * @param {string} id ID of ManagedCluster to get log configuration for\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getClientLogConfiguration: function (id, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.getClientLogConfiguration(id, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * Retrieve a ManagedCluster by ID.\n * @summary Get a specified ManagedCluster.\n * @param {string} id ID of the ManagedCluster to get\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getManagedCluster: function (id, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.getManagedCluster(id, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * Retrieve all Managed Clusters for the current Org, based on request context.\n * @summary Retrieve all Managed Clusters.\n * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **operational**: *eq*\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getManagedClusters: function (offset, limit, count, filters, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.getManagedClusters(offset, limit, count, filters, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * Update managed cluster\\'s log configuration\n * @summary Update managed cluster\\'s log configuration\n * @param {string} id ID of ManagedCluster to update log configuration for\n * @param {ClientLogConfigurationBeta} clientLogConfigurationBeta ClientLogConfiguration for given ManagedCluster\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n putClientLogConfiguration: function (id, clientLogConfigurationBeta, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.putClientLogConfiguration(id, clientLogConfigurationBeta, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n };\n};\nexports.ManagedClustersBetaApiFp = ManagedClustersBetaApiFp;\n/**\n * ManagedClustersBetaApi - factory interface\n * @export\n */\nvar ManagedClustersBetaApiFactory = function (configuration, basePath, axios) {\n var localVarFp = (0, exports.ManagedClustersBetaApiFp)(configuration);\n return {\n /**\n * Get managed cluster\\'s log configuration.\n * @summary Get managed cluster\\'s log configuration\n * @param {string} id ID of ManagedCluster to get log configuration for\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getClientLogConfiguration: function (id, axiosOptions) {\n return localVarFp.getClientLogConfiguration(id, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * Retrieve a ManagedCluster by ID.\n * @summary Get a specified ManagedCluster.\n * @param {string} id ID of the ManagedCluster to get\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getManagedCluster: function (id, axiosOptions) {\n return localVarFp.getManagedCluster(id, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * Retrieve all Managed Clusters for the current Org, based on request context.\n * @summary Retrieve all Managed Clusters.\n * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **operational**: *eq*\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getManagedClusters: function (offset, limit, count, filters, axiosOptions) {\n return localVarFp.getManagedClusters(offset, limit, count, filters, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * Update managed cluster\\'s log configuration\n * @summary Update managed cluster\\'s log configuration\n * @param {string} id ID of ManagedCluster to update log configuration for\n * @param {ClientLogConfigurationBeta} clientLogConfigurationBeta ClientLogConfiguration for given ManagedCluster\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n putClientLogConfiguration: function (id, clientLogConfigurationBeta, axiosOptions) {\n return localVarFp.putClientLogConfiguration(id, clientLogConfigurationBeta, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n };\n};\nexports.ManagedClustersBetaApiFactory = ManagedClustersBetaApiFactory;\n/**\n * ManagedClustersBetaApi - object-oriented interface\n * @export\n * @class ManagedClustersBetaApi\n * @extends {BaseAPI}\n */\nvar ManagedClustersBetaApi = /** @class */ (function (_super) {\n __extends(ManagedClustersBetaApi, _super);\n function ManagedClustersBetaApi() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n * Get managed cluster\\'s log configuration.\n * @summary Get managed cluster\\'s log configuration\n * @param {ManagedClustersBetaApiGetClientLogConfigurationRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof ManagedClustersBetaApi\n */\n ManagedClustersBetaApi.prototype.getClientLogConfiguration = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.ManagedClustersBetaApiFp)(this.configuration).getClientLogConfiguration(requestParameters.id, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * Retrieve a ManagedCluster by ID.\n * @summary Get a specified ManagedCluster.\n * @param {ManagedClustersBetaApiGetManagedClusterRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof ManagedClustersBetaApi\n */\n ManagedClustersBetaApi.prototype.getManagedCluster = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.ManagedClustersBetaApiFp)(this.configuration).getManagedCluster(requestParameters.id, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * Retrieve all Managed Clusters for the current Org, based on request context.\n * @summary Retrieve all Managed Clusters.\n * @param {ManagedClustersBetaApiGetManagedClustersRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof ManagedClustersBetaApi\n */\n ManagedClustersBetaApi.prototype.getManagedClusters = function (requestParameters, axiosOptions) {\n var _this = this;\n if (requestParameters === void 0) { requestParameters = {}; }\n return (0, exports.ManagedClustersBetaApiFp)(this.configuration).getManagedClusters(requestParameters.offset, requestParameters.limit, requestParameters.count, requestParameters.filters, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * Update managed cluster\\'s log configuration\n * @summary Update managed cluster\\'s log configuration\n * @param {ManagedClustersBetaApiPutClientLogConfigurationRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof ManagedClustersBetaApi\n */\n ManagedClustersBetaApi.prototype.putClientLogConfiguration = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.ManagedClustersBetaApiFp)(this.configuration).putClientLogConfiguration(requestParameters.id, requestParameters.clientLogConfigurationBeta, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n return ManagedClustersBetaApi;\n}(base_1.BaseAPI));\nexports.ManagedClustersBetaApi = ManagedClustersBetaApi;\n/**\n * NonEmployeeLifecycleManagementBetaApi - axios parameter creator\n * @export\n */\nvar NonEmployeeLifecycleManagementBetaApiAxiosParamCreator = function (configuration) {\n var _this = this;\n return {\n /**\n * Approves a non-employee approval request and notifies the next approver.\n * @summary Approve a Non-Employee Request\n * @param {string} id Non-Employee approval item id (UUID)\n * @param {NonEmployeeApprovalDecisionBeta} nonEmployeeApprovalDecisionBeta\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n approveNonEmployeeRequest: function (id, nonEmployeeApprovalDecisionBeta, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'id' is not null or undefined\n (0, common_1.assertParamExists)('approveNonEmployeeRequest', 'id', id);\n // verify required parameter 'nonEmployeeApprovalDecisionBeta' is not null or undefined\n (0, common_1.assertParamExists)('approveNonEmployeeRequest', 'nonEmployeeApprovalDecisionBeta', nonEmployeeApprovalDecisionBeta);\n localVarPath = \"/non-employee-approvals/{id}/approve\"\n .replace(\"{\".concat(\"id\", \"}\"), encodeURIComponent(String(id)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n localVarHeaderParameter['Content-Type'] = 'application/json';\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(nonEmployeeApprovalDecisionBeta, localVarRequestOptions, configuration);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This request will create a non-employee record. Request will require the following security scope: \\'idn:nesr:create\\'\n * @summary Create Non-Employee Record\n * @param {NonEmployeeRequestBodyBeta} nonEmployeeRequestBodyBeta Non-Employee record creation request body.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n createNonEmployeeRecord: function (nonEmployeeRequestBodyBeta, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'nonEmployeeRequestBodyBeta' is not null or undefined\n (0, common_1.assertParamExists)('createNonEmployeeRecord', 'nonEmployeeRequestBodyBeta', nonEmployeeRequestBodyBeta);\n localVarPath = \"/non-employee-records\";\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n localVarHeaderParameter['Content-Type'] = 'application/json';\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(nonEmployeeRequestBodyBeta, localVarRequestOptions, configuration);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This request will create a non-employee request and notify the approver\n * @summary Create Non-Employee Request\n * @param {NonEmployeeRequestBodyBeta} nonEmployeeRequestBodyBeta Non-Employee creation request body\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n createNonEmployeeRequest: function (nonEmployeeRequestBodyBeta, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'nonEmployeeRequestBodyBeta' is not null or undefined\n (0, common_1.assertParamExists)('createNonEmployeeRequest', 'nonEmployeeRequestBodyBeta', nonEmployeeRequestBodyBeta);\n localVarPath = \"/non-employee-requests\";\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n localVarHeaderParameter['Content-Type'] = 'application/json';\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(nonEmployeeRequestBodyBeta, localVarRequestOptions, configuration);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This request will create a non-employee source. Request will require the following security scope: \\'idn:nesr:create\\'\n * @summary Create Non-Employee Source\n * @param {NonEmployeeSourceRequestBodyBeta} nonEmployeeSourceRequestBodyBeta Non-Employee source creation request body.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n createNonEmployeeSource: function (nonEmployeeSourceRequestBodyBeta, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'nonEmployeeSourceRequestBodyBeta' is not null or undefined\n (0, common_1.assertParamExists)('createNonEmployeeSource', 'nonEmployeeSourceRequestBodyBeta', nonEmployeeSourceRequestBodyBeta);\n localVarPath = \"/non-employee-sources\";\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n localVarHeaderParameter['Content-Type'] = 'application/json';\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(nonEmployeeSourceRequestBodyBeta, localVarRequestOptions, configuration);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This API creates a new schema attribute for Non-Employee Source. The schema technical name must be unique in the source. Attempts to create a schema attribute with an existing name will result in a \\\"400.1.409 Reference conflict\\\" response. At most, 10 custom attributes can be created per schema. Attempts to create more than 10 will result in a \\\"400.1.4 Limit violation\\\" response.\n * @summary Create Non-Employee Source Schema Attribute\n * @param {string} sourceId The Source id\n * @param {NonEmployeeSchemaAttributeBodyBeta} nonEmployeeSchemaAttributeBodyBeta\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n createNonEmployeeSourceSchemaAttributes: function (sourceId, nonEmployeeSchemaAttributeBodyBeta, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'sourceId' is not null or undefined\n (0, common_1.assertParamExists)('createNonEmployeeSourceSchemaAttributes', 'sourceId', sourceId);\n // verify required parameter 'nonEmployeeSchemaAttributeBodyBeta' is not null or undefined\n (0, common_1.assertParamExists)('createNonEmployeeSourceSchemaAttributes', 'nonEmployeeSchemaAttributeBodyBeta', nonEmployeeSchemaAttributeBodyBeta);\n localVarPath = \"/non-employee-sources/{sourceId}/schema-attributes\"\n .replace(\"{\".concat(\"sourceId\", \"}\"), encodeURIComponent(String(sourceId)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n localVarHeaderParameter['Content-Type'] = 'application/json';\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(nonEmployeeSchemaAttributeBodyBeta, localVarRequestOptions, configuration);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This request will delete a non-employee record.\n * @summary Delete Non-Employee Record\n * @param {string} id Non-Employee record id (UUID)\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n deleteNonEmployeeRecord: function (id, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'id' is not null or undefined\n (0, common_1.assertParamExists)('deleteNonEmployeeRecord', 'id', id);\n localVarPath = \"/non-employee-records/{id}\"\n .replace(\"{\".concat(\"id\", \"}\"), encodeURIComponent(String(id)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'DELETE' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This request will delete multiple non-employee records based on the non-employee ids provided. Request will require the following scope: \\'idn:nesr:delete\\'\n * @summary Delete Multiple Non-Employee Records\n * @param {DeleteNonEmployeeRecordInBulkRequestBeta} deleteNonEmployeeRecordInBulkRequestBeta Non-Employee bulk delete request body.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n deleteNonEmployeeRecordInBulk: function (deleteNonEmployeeRecordInBulkRequestBeta, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'deleteNonEmployeeRecordInBulkRequestBeta' is not null or undefined\n (0, common_1.assertParamExists)('deleteNonEmployeeRecordInBulk', 'deleteNonEmployeeRecordInBulkRequestBeta', deleteNonEmployeeRecordInBulkRequestBeta);\n localVarPath = \"/non-employee-records/bulk-delete\";\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n localVarHeaderParameter['Content-Type'] = 'application/json';\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(deleteNonEmployeeRecordInBulkRequestBeta, localVarRequestOptions, configuration);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This request will delete a non-employee request.\n * @summary Delete Non-Employee Request\n * @param {string} id Non-Employee request id in the UUID format\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n deleteNonEmployeeRequest: function (id, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'id' is not null or undefined\n (0, common_1.assertParamExists)('deleteNonEmployeeRequest', 'id', id);\n localVarPath = \"/non-employee-requests/{id}\"\n .replace(\"{\".concat(\"id\", \"}\"), encodeURIComponent(String(id)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'DELETE' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This end-point deletes a specific schema attribute for a non-employee source.\n * @summary Delete Non-Employee Source\\'s Schema Attribute\n * @param {string} attributeId The Schema Attribute Id (UUID)\n * @param {string} sourceId The Source id\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n deleteNonEmployeeSchemaAttribute: function (attributeId, sourceId, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'attributeId' is not null or undefined\n (0, common_1.assertParamExists)('deleteNonEmployeeSchemaAttribute', 'attributeId', attributeId);\n // verify required parameter 'sourceId' is not null or undefined\n (0, common_1.assertParamExists)('deleteNonEmployeeSchemaAttribute', 'sourceId', sourceId);\n localVarPath = \"/non-employee-sources/{sourceId}/schema-attributes/{attributeId}\"\n .replace(\"{\".concat(\"attributeId\", \"}\"), encodeURIComponent(String(attributeId)))\n .replace(\"{\".concat(\"sourceId\", \"}\"), encodeURIComponent(String(sourceId)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'DELETE' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This request will delete a non-employee source.\n * @summary Delete Non-Employee Source\n * @param {string} sourceId Source Id\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n deleteNonEmployeeSource: function (sourceId, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'sourceId' is not null or undefined\n (0, common_1.assertParamExists)('deleteNonEmployeeSource', 'sourceId', sourceId);\n localVarPath = \"/non-employee-sources/{sourceId}\"\n .replace(\"{\".concat(\"sourceId\", \"}\"), encodeURIComponent(String(sourceId)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'DELETE' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This end-point deletes all custom schema attributes for a non-employee source.\n * @summary Delete all custom schema attributes\n * @param {string} sourceId The Source id\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n deleteNonEmployeeSourceSchemaAttributes: function (sourceId, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'sourceId' is not null or undefined\n (0, common_1.assertParamExists)('deleteNonEmployeeSourceSchemaAttributes', 'sourceId', sourceId);\n localVarPath = \"/non-employee-sources/{sourceId}/schema-attributes\"\n .replace(\"{\".concat(\"sourceId\", \"}\"), encodeURIComponent(String(sourceId)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'DELETE' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This requests a CSV download for all non-employees from a provided source.\n * @summary Exports Non-Employee Records to CSV\n * @param {string} id Source Id (UUID)\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n exportNonEmployeeRecords: function (id, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'id' is not null or undefined\n (0, common_1.assertParamExists)('exportNonEmployeeRecords', 'id', id);\n localVarPath = \"/non-employee-sources/{id}/non-employees/download\"\n .replace(\"{\".concat(\"id\", \"}\"), encodeURIComponent(String(id)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This requests a download for the Source Schema Template for a provided source. Request will require the following security scope: idn:nesr:read\\'\n * @summary Exports Source Schema Template\n * @param {string} id Source Id (UUID)\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n exportNonEmployeeSourceSchemaTemplate: function (id, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'id' is not null or undefined\n (0, common_1.assertParamExists)('exportNonEmployeeSourceSchemaTemplate', 'id', id);\n localVarPath = \"/non-employee-sources/{id}/schema-attributes-template/download\"\n .replace(\"{\".concat(\"id\", \"}\"), encodeURIComponent(String(id)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * Approves a non-employee approval request and notifies the next approver.\n * @summary Get a non-employee approval item detail\n * @param {string} id Non-Employee approval item id (UUID)\n * @param {string} [includeDetail] The object nonEmployeeRequest will not be included detail when set to false. *Default value is true*\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getNonEmployeeApproval: function (id, includeDetail, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'id' is not null or undefined\n (0, common_1.assertParamExists)('getNonEmployeeApproval', 'id', id);\n localVarPath = \"/non-employee-approvals/{id}\"\n .replace(\"{\".concat(\"id\", \"}\"), encodeURIComponent(String(id)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n if (includeDetail !== undefined) {\n localVarQueryParameter['include-detail'] = includeDetail;\n }\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This request will retrieve a summary of non-employee approval requests. There are two contextual uses for the `requested-for` path parameter: 1. The current user is the Org Admin, in which case he or she may request a summary of all non-employee approval requests assigned to a particular approver by passing in that approver\\'s id. 2. The current user is an approver, in which case \\\"me\\\" should be provided as the `requested-for` value. This will provide the approver with a summary of the approval items assigned to him or her.\n * @summary Get Summary of Non-Employee Approval Requests\n * @param {string} requestedFor The identity (UUID) of the approver for whom for whom the summary is being retrieved. Use \\"me\\" instead to indicate the current user.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getNonEmployeeApprovalSummary: function (requestedFor, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'requestedFor' is not null or undefined\n (0, common_1.assertParamExists)('getNonEmployeeApprovalSummary', 'requestedFor', requestedFor);\n localVarPath = \"/non-employee-approvals/summary/{requested-for}\"\n .replace(\"{\".concat(\"requested-for\", \"}\"), encodeURIComponent(String(requestedFor)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * The nonEmployeeBulkUploadStatus API returns the status of the newest bulk upload job for the specified source.\n * @summary Bulk upload status on source\n * @param {string} id Source ID (UUID)\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getNonEmployeeBulkUploadStatus: function (id, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'id' is not null or undefined\n (0, common_1.assertParamExists)('getNonEmployeeBulkUploadStatus', 'id', id);\n localVarPath = \"/non-employee-sources/{id}/non-employee-bulk-upload/status\"\n .replace(\"{\".concat(\"id\", \"}\"), encodeURIComponent(String(id)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This gets a non-employee record.\n * @summary Get a Non-Employee Record\n * @param {string} id Non-Employee record id (UUID)\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getNonEmployeeRecord: function (id, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'id' is not null or undefined\n (0, common_1.assertParamExists)('getNonEmployeeRecord', 'id', id);\n localVarPath = \"/non-employee-records/{id}\"\n .replace(\"{\".concat(\"id\", \"}\"), encodeURIComponent(String(id)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This gets a non-employee request.\n * @summary Get a Non-Employee Request\n * @param {string} id Non-Employee request id (UUID)\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getNonEmployeeRequest: function (id, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'id' is not null or undefined\n (0, common_1.assertParamExists)('getNonEmployeeRequest', 'id', id);\n localVarPath = \"/non-employee-requests/{id}\"\n .replace(\"{\".concat(\"id\", \"}\"), encodeURIComponent(String(id)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This request will retrieve a summary of non-employee requests. There are two contextual uses for the `requested-for` path parameter: 1. The current user is the Org Admin, in which case he or she may request a summary of all non-employee approval requests assigned to a particular account manager by passing in that manager\\'s id. 2. The current user is an account manager, in which case \\\"me\\\" should be provided as the `requested-for` value. This will provide the user with a summary of the non-employee requests in the source(s) he or she manages.\n * @summary Get Summary of Non-Employee Requests\n * @param {string} requestedFor The identity (UUID) of the non-employee account manager for whom the summary is being retrieved. Use \\"me\\" instead to indicate the current user.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getNonEmployeeRequestSummary: function (requestedFor, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'requestedFor' is not null or undefined\n (0, common_1.assertParamExists)('getNonEmployeeRequestSummary', 'requestedFor', requestedFor);\n localVarPath = \"/non-employee-requests/summary/{requested-for}\"\n .replace(\"{\".concat(\"requested-for\", \"}\"), encodeURIComponent(String(requestedFor)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This API gets a schema attribute by Id for the specified Non-Employee SourceId.\n * @summary Get Schema Attribute Non-Employee Source\n * @param {string} attributeId The Schema Attribute Id (UUID)\n * @param {string} sourceId The Source id\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getNonEmployeeSchemaAttribute: function (attributeId, sourceId, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'attributeId' is not null or undefined\n (0, common_1.assertParamExists)('getNonEmployeeSchemaAttribute', 'attributeId', attributeId);\n // verify required parameter 'sourceId' is not null or undefined\n (0, common_1.assertParamExists)('getNonEmployeeSchemaAttribute', 'sourceId', sourceId);\n localVarPath = \"/non-employee-sources/{sourceId}/schema-attributes/{attributeId}\"\n .replace(\"{\".concat(\"attributeId\", \"}\"), encodeURIComponent(String(attributeId)))\n .replace(\"{\".concat(\"sourceId\", \"}\"), encodeURIComponent(String(sourceId)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This gets a non-employee source.\n * @summary Get a Non-Employee Source\n * @param {string} sourceId Source Id\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getNonEmployeeSource: function (sourceId, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'sourceId' is not null or undefined\n (0, common_1.assertParamExists)('getNonEmployeeSource', 'sourceId', sourceId);\n localVarPath = \"/non-employee-sources/{sourceId}\"\n .replace(\"{\".concat(\"sourceId\", \"}\"), encodeURIComponent(String(sourceId)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This API gets the list of schema attributes for the specified Non-Employee SourceId. There are 8 mandatory attributes added to each new Non-Employee Source automatically. Additionaly, user can add up to 10 custom attributes. This interface returns all the mandatory attributes followed by any custom attributes. At most, a total of 18 attributes will be returned.\n * @summary List Schema Attributes Non-Employee Source\n * @param {string} sourceId The Source id\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getNonEmployeeSourceSchemaAttributes: function (sourceId, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'sourceId' is not null or undefined\n (0, common_1.assertParamExists)('getNonEmployeeSourceSchemaAttributes', 'sourceId', sourceId);\n localVarPath = \"/non-employee-sources/{sourceId}/schema-attributes\"\n .replace(\"{\".concat(\"sourceId\", \"}\"), encodeURIComponent(String(sourceId)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This post will import, or update, Non-Employee records found in the CSV. Request will need the following security scope: \\'idn:nesr:create\\'\n * @summary Imports, or Updates, Non-Employee Records\n * @param {string} id Source Id (UUID)\n * @param {any} data\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n importNonEmployeeRecordsInBulk: function (id, data, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, localVarFormParams, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'id' is not null or undefined\n (0, common_1.assertParamExists)('importNonEmployeeRecordsInBulk', 'id', id);\n // verify required parameter 'data' is not null or undefined\n (0, common_1.assertParamExists)('importNonEmployeeRecordsInBulk', 'data', data);\n localVarPath = \"/non-employee-sources/{id}/non-employee-bulk-upload\"\n .replace(\"{\".concat(\"id\", \"}\"), encodeURIComponent(String(id)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n localVarFormParams = new ((configuration && configuration.formDataCtor) || FormData)();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n if (data !== undefined) {\n localVarFormParams.append('data', data);\n }\n localVarHeaderParameter['Content-Type'] = 'multipart/form-data';\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n localVarRequestOptions.data = localVarFormParams;\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This gets a list of non-employee approval requests.\n * @summary Get List of Non-Employee Approval Requests\n * @param {string} [requestedFor] The identity for whom the request was made. *me* indicates the current user.\n * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **approvalStatus**: *eq*\n * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **created, modified**\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n listNonEmployeeApproval: function (requestedFor, limit, offset, count, filters, sorters, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n localVarPath = \"/non-employee-approvals\";\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n if (requestedFor !== undefined) {\n localVarQueryParameter['requested-for'] = requestedFor;\n }\n if (limit !== undefined) {\n localVarQueryParameter['limit'] = limit;\n }\n if (offset !== undefined) {\n localVarQueryParameter['offset'] = offset;\n }\n if (count !== undefined) {\n localVarQueryParameter['count'] = count;\n }\n if (filters !== undefined) {\n localVarQueryParameter['filters'] = filters;\n }\n if (sorters !== undefined) {\n localVarQueryParameter['sorters'] = sorters;\n }\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This gets a list of non-employee records.\n * @summary List Non-Employee Records\n * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **id, accountName, sourceId, manager, firstName, lastName, email, phone, startDate, endDate, created, modified**\n * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **sourceId**: *eq*\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n listNonEmployeeRecords: function (limit, offset, count, sorters, filters, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n localVarPath = \"/non-employee-records\";\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n if (limit !== undefined) {\n localVarQueryParameter['limit'] = limit;\n }\n if (offset !== undefined) {\n localVarQueryParameter['offset'] = offset;\n }\n if (count !== undefined) {\n localVarQueryParameter['count'] = count;\n }\n if (sorters !== undefined) {\n localVarQueryParameter['sorters'] = sorters;\n }\n if (filters !== undefined) {\n localVarQueryParameter['filters'] = filters;\n }\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This gets a list of non-employee requests.\n * @summary List Non-Employee Requests\n * @param {string} requestedFor The identity for whom the request was made. *me* indicates the current user.\n * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **created, approvalStatus, firstName, lastName, email, phone, accountName, startDate, endDate**\n * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **sourceId**: *eq*\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n listNonEmployeeRequests: function (requestedFor, limit, offset, count, sorters, filters, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'requestedFor' is not null or undefined\n (0, common_1.assertParamExists)('listNonEmployeeRequests', 'requestedFor', requestedFor);\n localVarPath = \"/non-employee-requests\";\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n if (limit !== undefined) {\n localVarQueryParameter['limit'] = limit;\n }\n if (offset !== undefined) {\n localVarQueryParameter['offset'] = offset;\n }\n if (count !== undefined) {\n localVarQueryParameter['count'] = count;\n }\n if (requestedFor !== undefined) {\n localVarQueryParameter['requested-for'] = requestedFor;\n }\n if (sorters !== undefined) {\n localVarQueryParameter['sorters'] = sorters;\n }\n if (filters !== undefined) {\n localVarQueryParameter['filters'] = filters;\n }\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This gets a list of non-employee sources.\n * @summary List Non-Employee Sources\n * @param {string} requestedFor The identity for whom the request was made. *me* indicates the current user.\n * @param {boolean} nonEmployeeCount The flag to determine whether return a non-employee count associate with source.\n * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **name, created, sourceId**\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n listNonEmployeeSources: function (requestedFor, nonEmployeeCount, limit, offset, count, sorters, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'requestedFor' is not null or undefined\n (0, common_1.assertParamExists)('listNonEmployeeSources', 'requestedFor', requestedFor);\n // verify required parameter 'nonEmployeeCount' is not null or undefined\n (0, common_1.assertParamExists)('listNonEmployeeSources', 'nonEmployeeCount', nonEmployeeCount);\n localVarPath = \"/non-employee-sources\";\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n if (limit !== undefined) {\n localVarQueryParameter['limit'] = limit;\n }\n if (offset !== undefined) {\n localVarQueryParameter['offset'] = offset;\n }\n if (count !== undefined) {\n localVarQueryParameter['count'] = count;\n }\n if (requestedFor !== undefined) {\n localVarQueryParameter['requested-for'] = requestedFor;\n }\n if (nonEmployeeCount !== undefined) {\n localVarQueryParameter['non-employee-count'] = nonEmployeeCount;\n }\n if (sorters !== undefined) {\n localVarQueryParameter['sorters'] = sorters;\n }\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This request will patch a non-employee record.\n * @summary Patch Non-Employee Record\n * @param {string} id Non-employee record id (UUID)\n * @param {Array} jsonPatchOperationBeta A list of non-employee update operations according to the [JSON Patch](https://tools.ietf.org/html/rfc6902) standard. Attributes are restricted by user type. Owner of source can update end date. Organization admins can update all available fields.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n patchNonEmployeeRecord: function (id, jsonPatchOperationBeta, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'id' is not null or undefined\n (0, common_1.assertParamExists)('patchNonEmployeeRecord', 'id', id);\n // verify required parameter 'jsonPatchOperationBeta' is not null or undefined\n (0, common_1.assertParamExists)('patchNonEmployeeRecord', 'jsonPatchOperationBeta', jsonPatchOperationBeta);\n localVarPath = \"/non-employee-records/{id}\"\n .replace(\"{\".concat(\"id\", \"}\"), encodeURIComponent(String(id)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'PATCH' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n localVarHeaderParameter['Content-Type'] = 'application/json-patch+json';\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(jsonPatchOperationBeta, localVarRequestOptions, configuration);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This end-point patches a specific schema attribute for a non-employee SourceId.\n * @summary Patch Non-Employee Source\\'s Schema Attribute\n * @param {string} attributeId The Schema Attribute Id (UUID)\n * @param {string} sourceId The Source id\n * @param {Array} jsonPatchOperationBeta A list of schema attribute update operations according to the [JSON Patch](https://tools.ietf.org/html/rfc6902) standard. The following properties are allowed for update \\':\\' \\'label\\', \\'helpText\\', \\'placeholder\\', \\'required\\'.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n patchNonEmployeeSchemaAttribute: function (attributeId, sourceId, jsonPatchOperationBeta, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'attributeId' is not null or undefined\n (0, common_1.assertParamExists)('patchNonEmployeeSchemaAttribute', 'attributeId', attributeId);\n // verify required parameter 'sourceId' is not null or undefined\n (0, common_1.assertParamExists)('patchNonEmployeeSchemaAttribute', 'sourceId', sourceId);\n // verify required parameter 'jsonPatchOperationBeta' is not null or undefined\n (0, common_1.assertParamExists)('patchNonEmployeeSchemaAttribute', 'jsonPatchOperationBeta', jsonPatchOperationBeta);\n localVarPath = \"/non-employee-sources/{sourceId}/schema-attributes/{attributeId}\"\n .replace(\"{\".concat(\"attributeId\", \"}\"), encodeURIComponent(String(attributeId)))\n .replace(\"{\".concat(\"sourceId\", \"}\"), encodeURIComponent(String(sourceId)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'PATCH' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n localVarHeaderParameter['Content-Type'] = 'application/json-patch+json';\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(jsonPatchOperationBeta, localVarRequestOptions, configuration);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * patch a non-employee source. (Partial Update) Patchable field: **name, description, approvers, accountManagers**\n * @summary Patch a Non-Employee Source\n * @param {string} sourceId Source Id\n * @param {Array} jsonPatchOperationBeta A list of non-employee source update operations according to the [JSON Patch](https://tools.ietf.org/html/rfc6902) standard.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n patchNonEmployeeSource: function (sourceId, jsonPatchOperationBeta, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'sourceId' is not null or undefined\n (0, common_1.assertParamExists)('patchNonEmployeeSource', 'sourceId', sourceId);\n // verify required parameter 'jsonPatchOperationBeta' is not null or undefined\n (0, common_1.assertParamExists)('patchNonEmployeeSource', 'jsonPatchOperationBeta', jsonPatchOperationBeta);\n localVarPath = \"/non-employee-sources/{sourceId}\"\n .replace(\"{\".concat(\"sourceId\", \"}\"), encodeURIComponent(String(sourceId)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'PATCH' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n localVarHeaderParameter['Content-Type'] = 'application/json-patch+json';\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(jsonPatchOperationBeta, localVarRequestOptions, configuration);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This endpoint will reject an approval item request and notify user.\n * @summary Reject a Non-Employee Request\n * @param {string} id Non-Employee approval item id (UUID)\n * @param {NonEmployeeRejectApprovalDecisionBeta} nonEmployeeRejectApprovalDecisionBeta\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n rejectNonEmployeeRequest: function (id, nonEmployeeRejectApprovalDecisionBeta, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'id' is not null or undefined\n (0, common_1.assertParamExists)('rejectNonEmployeeRequest', 'id', id);\n // verify required parameter 'nonEmployeeRejectApprovalDecisionBeta' is not null or undefined\n (0, common_1.assertParamExists)('rejectNonEmployeeRequest', 'nonEmployeeRejectApprovalDecisionBeta', nonEmployeeRejectApprovalDecisionBeta);\n localVarPath = \"/non-employee-approvals/{id}/reject\"\n .replace(\"{\".concat(\"id\", \"}\"), encodeURIComponent(String(id)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n localVarHeaderParameter['Content-Type'] = 'application/json';\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(nonEmployeeRejectApprovalDecisionBeta, localVarRequestOptions, configuration);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This request will update a non-employee record.\n * @summary Update Non-Employee Record\n * @param {string} id Non-employee record id (UUID)\n * @param {NonEmployeeRequestBodyBeta} nonEmployeeRequestBodyBeta Non-employee record creation request body. Attributes are restricted by user type. Owner of source can update end date. Organization admins can update all available fields.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n updateNonEmployeeRecord: function (id, nonEmployeeRequestBodyBeta, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'id' is not null or undefined\n (0, common_1.assertParamExists)('updateNonEmployeeRecord', 'id', id);\n // verify required parameter 'nonEmployeeRequestBodyBeta' is not null or undefined\n (0, common_1.assertParamExists)('updateNonEmployeeRecord', 'nonEmployeeRequestBodyBeta', nonEmployeeRequestBodyBeta);\n localVarPath = \"/non-employee-records/{id}\"\n .replace(\"{\".concat(\"id\", \"}\"), encodeURIComponent(String(id)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'PUT' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n localVarHeaderParameter['Content-Type'] = 'application/json';\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(nonEmployeeRequestBodyBeta, localVarRequestOptions, configuration);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n };\n};\nexports.NonEmployeeLifecycleManagementBetaApiAxiosParamCreator = NonEmployeeLifecycleManagementBetaApiAxiosParamCreator;\n/**\n * NonEmployeeLifecycleManagementBetaApi - functional programming interface\n * @export\n */\nvar NonEmployeeLifecycleManagementBetaApiFp = function (configuration) {\n var localVarAxiosParamCreator = (0, exports.NonEmployeeLifecycleManagementBetaApiAxiosParamCreator)(configuration);\n return {\n /**\n * Approves a non-employee approval request and notifies the next approver.\n * @summary Approve a Non-Employee Request\n * @param {string} id Non-Employee approval item id (UUID)\n * @param {NonEmployeeApprovalDecisionBeta} nonEmployeeApprovalDecisionBeta\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n approveNonEmployeeRequest: function (id, nonEmployeeApprovalDecisionBeta, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.approveNonEmployeeRequest(id, nonEmployeeApprovalDecisionBeta, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This request will create a non-employee record. Request will require the following security scope: \\'idn:nesr:create\\'\n * @summary Create Non-Employee Record\n * @param {NonEmployeeRequestBodyBeta} nonEmployeeRequestBodyBeta Non-Employee record creation request body.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n createNonEmployeeRecord: function (nonEmployeeRequestBodyBeta, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.createNonEmployeeRecord(nonEmployeeRequestBodyBeta, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This request will create a non-employee request and notify the approver\n * @summary Create Non-Employee Request\n * @param {NonEmployeeRequestBodyBeta} nonEmployeeRequestBodyBeta Non-Employee creation request body\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n createNonEmployeeRequest: function (nonEmployeeRequestBodyBeta, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.createNonEmployeeRequest(nonEmployeeRequestBodyBeta, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This request will create a non-employee source. Request will require the following security scope: \\'idn:nesr:create\\'\n * @summary Create Non-Employee Source\n * @param {NonEmployeeSourceRequestBodyBeta} nonEmployeeSourceRequestBodyBeta Non-Employee source creation request body.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n createNonEmployeeSource: function (nonEmployeeSourceRequestBodyBeta, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.createNonEmployeeSource(nonEmployeeSourceRequestBodyBeta, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This API creates a new schema attribute for Non-Employee Source. The schema technical name must be unique in the source. Attempts to create a schema attribute with an existing name will result in a \\\"400.1.409 Reference conflict\\\" response. At most, 10 custom attributes can be created per schema. Attempts to create more than 10 will result in a \\\"400.1.4 Limit violation\\\" response.\n * @summary Create Non-Employee Source Schema Attribute\n * @param {string} sourceId The Source id\n * @param {NonEmployeeSchemaAttributeBodyBeta} nonEmployeeSchemaAttributeBodyBeta\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n createNonEmployeeSourceSchemaAttributes: function (sourceId, nonEmployeeSchemaAttributeBodyBeta, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.createNonEmployeeSourceSchemaAttributes(sourceId, nonEmployeeSchemaAttributeBodyBeta, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This request will delete a non-employee record.\n * @summary Delete Non-Employee Record\n * @param {string} id Non-Employee record id (UUID)\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n deleteNonEmployeeRecord: function (id, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.deleteNonEmployeeRecord(id, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This request will delete multiple non-employee records based on the non-employee ids provided. Request will require the following scope: \\'idn:nesr:delete\\'\n * @summary Delete Multiple Non-Employee Records\n * @param {DeleteNonEmployeeRecordInBulkRequestBeta} deleteNonEmployeeRecordInBulkRequestBeta Non-Employee bulk delete request body.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n deleteNonEmployeeRecordInBulk: function (deleteNonEmployeeRecordInBulkRequestBeta, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.deleteNonEmployeeRecordInBulk(deleteNonEmployeeRecordInBulkRequestBeta, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This request will delete a non-employee request.\n * @summary Delete Non-Employee Request\n * @param {string} id Non-Employee request id in the UUID format\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n deleteNonEmployeeRequest: function (id, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.deleteNonEmployeeRequest(id, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This end-point deletes a specific schema attribute for a non-employee source.\n * @summary Delete Non-Employee Source\\'s Schema Attribute\n * @param {string} attributeId The Schema Attribute Id (UUID)\n * @param {string} sourceId The Source id\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n deleteNonEmployeeSchemaAttribute: function (attributeId, sourceId, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.deleteNonEmployeeSchemaAttribute(attributeId, sourceId, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This request will delete a non-employee source.\n * @summary Delete Non-Employee Source\n * @param {string} sourceId Source Id\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n deleteNonEmployeeSource: function (sourceId, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.deleteNonEmployeeSource(sourceId, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This end-point deletes all custom schema attributes for a non-employee source.\n * @summary Delete all custom schema attributes\n * @param {string} sourceId The Source id\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n deleteNonEmployeeSourceSchemaAttributes: function (sourceId, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.deleteNonEmployeeSourceSchemaAttributes(sourceId, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This requests a CSV download for all non-employees from a provided source.\n * @summary Exports Non-Employee Records to CSV\n * @param {string} id Source Id (UUID)\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n exportNonEmployeeRecords: function (id, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.exportNonEmployeeRecords(id, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This requests a download for the Source Schema Template for a provided source. Request will require the following security scope: idn:nesr:read\\'\n * @summary Exports Source Schema Template\n * @param {string} id Source Id (UUID)\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n exportNonEmployeeSourceSchemaTemplate: function (id, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.exportNonEmployeeSourceSchemaTemplate(id, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * Approves a non-employee approval request and notifies the next approver.\n * @summary Get a non-employee approval item detail\n * @param {string} id Non-Employee approval item id (UUID)\n * @param {string} [includeDetail] The object nonEmployeeRequest will not be included detail when set to false. *Default value is true*\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getNonEmployeeApproval: function (id, includeDetail, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.getNonEmployeeApproval(id, includeDetail, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This request will retrieve a summary of non-employee approval requests. There are two contextual uses for the `requested-for` path parameter: 1. The current user is the Org Admin, in which case he or she may request a summary of all non-employee approval requests assigned to a particular approver by passing in that approver\\'s id. 2. The current user is an approver, in which case \\\"me\\\" should be provided as the `requested-for` value. This will provide the approver with a summary of the approval items assigned to him or her.\n * @summary Get Summary of Non-Employee Approval Requests\n * @param {string} requestedFor The identity (UUID) of the approver for whom for whom the summary is being retrieved. Use \\"me\\" instead to indicate the current user.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getNonEmployeeApprovalSummary: function (requestedFor, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.getNonEmployeeApprovalSummary(requestedFor, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * The nonEmployeeBulkUploadStatus API returns the status of the newest bulk upload job for the specified source.\n * @summary Bulk upload status on source\n * @param {string} id Source ID (UUID)\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getNonEmployeeBulkUploadStatus: function (id, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.getNonEmployeeBulkUploadStatus(id, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This gets a non-employee record.\n * @summary Get a Non-Employee Record\n * @param {string} id Non-Employee record id (UUID)\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getNonEmployeeRecord: function (id, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.getNonEmployeeRecord(id, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This gets a non-employee request.\n * @summary Get a Non-Employee Request\n * @param {string} id Non-Employee request id (UUID)\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getNonEmployeeRequest: function (id, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.getNonEmployeeRequest(id, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This request will retrieve a summary of non-employee requests. There are two contextual uses for the `requested-for` path parameter: 1. The current user is the Org Admin, in which case he or she may request a summary of all non-employee approval requests assigned to a particular account manager by passing in that manager\\'s id. 2. The current user is an account manager, in which case \\\"me\\\" should be provided as the `requested-for` value. This will provide the user with a summary of the non-employee requests in the source(s) he or she manages.\n * @summary Get Summary of Non-Employee Requests\n * @param {string} requestedFor The identity (UUID) of the non-employee account manager for whom the summary is being retrieved. Use \\"me\\" instead to indicate the current user.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getNonEmployeeRequestSummary: function (requestedFor, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.getNonEmployeeRequestSummary(requestedFor, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This API gets a schema attribute by Id for the specified Non-Employee SourceId.\n * @summary Get Schema Attribute Non-Employee Source\n * @param {string} attributeId The Schema Attribute Id (UUID)\n * @param {string} sourceId The Source id\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getNonEmployeeSchemaAttribute: function (attributeId, sourceId, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.getNonEmployeeSchemaAttribute(attributeId, sourceId, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This gets a non-employee source.\n * @summary Get a Non-Employee Source\n * @param {string} sourceId Source Id\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getNonEmployeeSource: function (sourceId, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.getNonEmployeeSource(sourceId, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This API gets the list of schema attributes for the specified Non-Employee SourceId. There are 8 mandatory attributes added to each new Non-Employee Source automatically. Additionaly, user can add up to 10 custom attributes. This interface returns all the mandatory attributes followed by any custom attributes. At most, a total of 18 attributes will be returned.\n * @summary List Schema Attributes Non-Employee Source\n * @param {string} sourceId The Source id\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getNonEmployeeSourceSchemaAttributes: function (sourceId, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.getNonEmployeeSourceSchemaAttributes(sourceId, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This post will import, or update, Non-Employee records found in the CSV. Request will need the following security scope: \\'idn:nesr:create\\'\n * @summary Imports, or Updates, Non-Employee Records\n * @param {string} id Source Id (UUID)\n * @param {any} data\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n importNonEmployeeRecordsInBulk: function (id, data, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.importNonEmployeeRecordsInBulk(id, data, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This gets a list of non-employee approval requests.\n * @summary Get List of Non-Employee Approval Requests\n * @param {string} [requestedFor] The identity for whom the request was made. *me* indicates the current user.\n * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **approvalStatus**: *eq*\n * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **created, modified**\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n listNonEmployeeApproval: function (requestedFor, limit, offset, count, filters, sorters, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.listNonEmployeeApproval(requestedFor, limit, offset, count, filters, sorters, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This gets a list of non-employee records.\n * @summary List Non-Employee Records\n * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **id, accountName, sourceId, manager, firstName, lastName, email, phone, startDate, endDate, created, modified**\n * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **sourceId**: *eq*\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n listNonEmployeeRecords: function (limit, offset, count, sorters, filters, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.listNonEmployeeRecords(limit, offset, count, sorters, filters, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This gets a list of non-employee requests.\n * @summary List Non-Employee Requests\n * @param {string} requestedFor The identity for whom the request was made. *me* indicates the current user.\n * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **created, approvalStatus, firstName, lastName, email, phone, accountName, startDate, endDate**\n * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **sourceId**: *eq*\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n listNonEmployeeRequests: function (requestedFor, limit, offset, count, sorters, filters, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.listNonEmployeeRequests(requestedFor, limit, offset, count, sorters, filters, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This gets a list of non-employee sources.\n * @summary List Non-Employee Sources\n * @param {string} requestedFor The identity for whom the request was made. *me* indicates the current user.\n * @param {boolean} nonEmployeeCount The flag to determine whether return a non-employee count associate with source.\n * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **name, created, sourceId**\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n listNonEmployeeSources: function (requestedFor, nonEmployeeCount, limit, offset, count, sorters, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.listNonEmployeeSources(requestedFor, nonEmployeeCount, limit, offset, count, sorters, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This request will patch a non-employee record.\n * @summary Patch Non-Employee Record\n * @param {string} id Non-employee record id (UUID)\n * @param {Array} jsonPatchOperationBeta A list of non-employee update operations according to the [JSON Patch](https://tools.ietf.org/html/rfc6902) standard. Attributes are restricted by user type. Owner of source can update end date. Organization admins can update all available fields.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n patchNonEmployeeRecord: function (id, jsonPatchOperationBeta, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.patchNonEmployeeRecord(id, jsonPatchOperationBeta, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This end-point patches a specific schema attribute for a non-employee SourceId.\n * @summary Patch Non-Employee Source\\'s Schema Attribute\n * @param {string} attributeId The Schema Attribute Id (UUID)\n * @param {string} sourceId The Source id\n * @param {Array} jsonPatchOperationBeta A list of schema attribute update operations according to the [JSON Patch](https://tools.ietf.org/html/rfc6902) standard. The following properties are allowed for update \\':\\' \\'label\\', \\'helpText\\', \\'placeholder\\', \\'required\\'.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n patchNonEmployeeSchemaAttribute: function (attributeId, sourceId, jsonPatchOperationBeta, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.patchNonEmployeeSchemaAttribute(attributeId, sourceId, jsonPatchOperationBeta, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * patch a non-employee source. (Partial Update) Patchable field: **name, description, approvers, accountManagers**\n * @summary Patch a Non-Employee Source\n * @param {string} sourceId Source Id\n * @param {Array} jsonPatchOperationBeta A list of non-employee source update operations according to the [JSON Patch](https://tools.ietf.org/html/rfc6902) standard.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n patchNonEmployeeSource: function (sourceId, jsonPatchOperationBeta, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.patchNonEmployeeSource(sourceId, jsonPatchOperationBeta, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This endpoint will reject an approval item request and notify user.\n * @summary Reject a Non-Employee Request\n * @param {string} id Non-Employee approval item id (UUID)\n * @param {NonEmployeeRejectApprovalDecisionBeta} nonEmployeeRejectApprovalDecisionBeta\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n rejectNonEmployeeRequest: function (id, nonEmployeeRejectApprovalDecisionBeta, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.rejectNonEmployeeRequest(id, nonEmployeeRejectApprovalDecisionBeta, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This request will update a non-employee record.\n * @summary Update Non-Employee Record\n * @param {string} id Non-employee record id (UUID)\n * @param {NonEmployeeRequestBodyBeta} nonEmployeeRequestBodyBeta Non-employee record creation request body. Attributes are restricted by user type. Owner of source can update end date. Organization admins can update all available fields.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n updateNonEmployeeRecord: function (id, nonEmployeeRequestBodyBeta, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.updateNonEmployeeRecord(id, nonEmployeeRequestBodyBeta, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n };\n};\nexports.NonEmployeeLifecycleManagementBetaApiFp = NonEmployeeLifecycleManagementBetaApiFp;\n/**\n * NonEmployeeLifecycleManagementBetaApi - factory interface\n * @export\n */\nvar NonEmployeeLifecycleManagementBetaApiFactory = function (configuration, basePath, axios) {\n var localVarFp = (0, exports.NonEmployeeLifecycleManagementBetaApiFp)(configuration);\n return {\n /**\n * Approves a non-employee approval request and notifies the next approver.\n * @summary Approve a Non-Employee Request\n * @param {string} id Non-Employee approval item id (UUID)\n * @param {NonEmployeeApprovalDecisionBeta} nonEmployeeApprovalDecisionBeta\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n approveNonEmployeeRequest: function (id, nonEmployeeApprovalDecisionBeta, axiosOptions) {\n return localVarFp.approveNonEmployeeRequest(id, nonEmployeeApprovalDecisionBeta, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This request will create a non-employee record. Request will require the following security scope: \\'idn:nesr:create\\'\n * @summary Create Non-Employee Record\n * @param {NonEmployeeRequestBodyBeta} nonEmployeeRequestBodyBeta Non-Employee record creation request body.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n createNonEmployeeRecord: function (nonEmployeeRequestBodyBeta, axiosOptions) {\n return localVarFp.createNonEmployeeRecord(nonEmployeeRequestBodyBeta, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This request will create a non-employee request and notify the approver\n * @summary Create Non-Employee Request\n * @param {NonEmployeeRequestBodyBeta} nonEmployeeRequestBodyBeta Non-Employee creation request body\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n createNonEmployeeRequest: function (nonEmployeeRequestBodyBeta, axiosOptions) {\n return localVarFp.createNonEmployeeRequest(nonEmployeeRequestBodyBeta, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This request will create a non-employee source. Request will require the following security scope: \\'idn:nesr:create\\'\n * @summary Create Non-Employee Source\n * @param {NonEmployeeSourceRequestBodyBeta} nonEmployeeSourceRequestBodyBeta Non-Employee source creation request body.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n createNonEmployeeSource: function (nonEmployeeSourceRequestBodyBeta, axiosOptions) {\n return localVarFp.createNonEmployeeSource(nonEmployeeSourceRequestBodyBeta, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This API creates a new schema attribute for Non-Employee Source. The schema technical name must be unique in the source. Attempts to create a schema attribute with an existing name will result in a \\\"400.1.409 Reference conflict\\\" response. At most, 10 custom attributes can be created per schema. Attempts to create more than 10 will result in a \\\"400.1.4 Limit violation\\\" response.\n * @summary Create Non-Employee Source Schema Attribute\n * @param {string} sourceId The Source id\n * @param {NonEmployeeSchemaAttributeBodyBeta} nonEmployeeSchemaAttributeBodyBeta\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n createNonEmployeeSourceSchemaAttributes: function (sourceId, nonEmployeeSchemaAttributeBodyBeta, axiosOptions) {\n return localVarFp.createNonEmployeeSourceSchemaAttributes(sourceId, nonEmployeeSchemaAttributeBodyBeta, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This request will delete a non-employee record.\n * @summary Delete Non-Employee Record\n * @param {string} id Non-Employee record id (UUID)\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n deleteNonEmployeeRecord: function (id, axiosOptions) {\n return localVarFp.deleteNonEmployeeRecord(id, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This request will delete multiple non-employee records based on the non-employee ids provided. Request will require the following scope: \\'idn:nesr:delete\\'\n * @summary Delete Multiple Non-Employee Records\n * @param {DeleteNonEmployeeRecordInBulkRequestBeta} deleteNonEmployeeRecordInBulkRequestBeta Non-Employee bulk delete request body.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n deleteNonEmployeeRecordInBulk: function (deleteNonEmployeeRecordInBulkRequestBeta, axiosOptions) {\n return localVarFp.deleteNonEmployeeRecordInBulk(deleteNonEmployeeRecordInBulkRequestBeta, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This request will delete a non-employee request.\n * @summary Delete Non-Employee Request\n * @param {string} id Non-Employee request id in the UUID format\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n deleteNonEmployeeRequest: function (id, axiosOptions) {\n return localVarFp.deleteNonEmployeeRequest(id, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This end-point deletes a specific schema attribute for a non-employee source.\n * @summary Delete Non-Employee Source\\'s Schema Attribute\n * @param {string} attributeId The Schema Attribute Id (UUID)\n * @param {string} sourceId The Source id\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n deleteNonEmployeeSchemaAttribute: function (attributeId, sourceId, axiosOptions) {\n return localVarFp.deleteNonEmployeeSchemaAttribute(attributeId, sourceId, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This request will delete a non-employee source.\n * @summary Delete Non-Employee Source\n * @param {string} sourceId Source Id\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n deleteNonEmployeeSource: function (sourceId, axiosOptions) {\n return localVarFp.deleteNonEmployeeSource(sourceId, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This end-point deletes all custom schema attributes for a non-employee source.\n * @summary Delete all custom schema attributes\n * @param {string} sourceId The Source id\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n deleteNonEmployeeSourceSchemaAttributes: function (sourceId, axiosOptions) {\n return localVarFp.deleteNonEmployeeSourceSchemaAttributes(sourceId, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This requests a CSV download for all non-employees from a provided source.\n * @summary Exports Non-Employee Records to CSV\n * @param {string} id Source Id (UUID)\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n exportNonEmployeeRecords: function (id, axiosOptions) {\n return localVarFp.exportNonEmployeeRecords(id, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This requests a download for the Source Schema Template for a provided source. Request will require the following security scope: idn:nesr:read\\'\n * @summary Exports Source Schema Template\n * @param {string} id Source Id (UUID)\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n exportNonEmployeeSourceSchemaTemplate: function (id, axiosOptions) {\n return localVarFp.exportNonEmployeeSourceSchemaTemplate(id, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * Approves a non-employee approval request and notifies the next approver.\n * @summary Get a non-employee approval item detail\n * @param {string} id Non-Employee approval item id (UUID)\n * @param {string} [includeDetail] The object nonEmployeeRequest will not be included detail when set to false. *Default value is true*\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getNonEmployeeApproval: function (id, includeDetail, axiosOptions) {\n return localVarFp.getNonEmployeeApproval(id, includeDetail, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This request will retrieve a summary of non-employee approval requests. There are two contextual uses for the `requested-for` path parameter: 1. The current user is the Org Admin, in which case he or she may request a summary of all non-employee approval requests assigned to a particular approver by passing in that approver\\'s id. 2. The current user is an approver, in which case \\\"me\\\" should be provided as the `requested-for` value. This will provide the approver with a summary of the approval items assigned to him or her.\n * @summary Get Summary of Non-Employee Approval Requests\n * @param {string} requestedFor The identity (UUID) of the approver for whom for whom the summary is being retrieved. Use \\"me\\" instead to indicate the current user.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getNonEmployeeApprovalSummary: function (requestedFor, axiosOptions) {\n return localVarFp.getNonEmployeeApprovalSummary(requestedFor, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * The nonEmployeeBulkUploadStatus API returns the status of the newest bulk upload job for the specified source.\n * @summary Bulk upload status on source\n * @param {string} id Source ID (UUID)\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getNonEmployeeBulkUploadStatus: function (id, axiosOptions) {\n return localVarFp.getNonEmployeeBulkUploadStatus(id, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This gets a non-employee record.\n * @summary Get a Non-Employee Record\n * @param {string} id Non-Employee record id (UUID)\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getNonEmployeeRecord: function (id, axiosOptions) {\n return localVarFp.getNonEmployeeRecord(id, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This gets a non-employee request.\n * @summary Get a Non-Employee Request\n * @param {string} id Non-Employee request id (UUID)\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getNonEmployeeRequest: function (id, axiosOptions) {\n return localVarFp.getNonEmployeeRequest(id, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This request will retrieve a summary of non-employee requests. There are two contextual uses for the `requested-for` path parameter: 1. The current user is the Org Admin, in which case he or she may request a summary of all non-employee approval requests assigned to a particular account manager by passing in that manager\\'s id. 2. The current user is an account manager, in which case \\\"me\\\" should be provided as the `requested-for` value. This will provide the user with a summary of the non-employee requests in the source(s) he or she manages.\n * @summary Get Summary of Non-Employee Requests\n * @param {string} requestedFor The identity (UUID) of the non-employee account manager for whom the summary is being retrieved. Use \\"me\\" instead to indicate the current user.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getNonEmployeeRequestSummary: function (requestedFor, axiosOptions) {\n return localVarFp.getNonEmployeeRequestSummary(requestedFor, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This API gets a schema attribute by Id for the specified Non-Employee SourceId.\n * @summary Get Schema Attribute Non-Employee Source\n * @param {string} attributeId The Schema Attribute Id (UUID)\n * @param {string} sourceId The Source id\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getNonEmployeeSchemaAttribute: function (attributeId, sourceId, axiosOptions) {\n return localVarFp.getNonEmployeeSchemaAttribute(attributeId, sourceId, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This gets a non-employee source.\n * @summary Get a Non-Employee Source\n * @param {string} sourceId Source Id\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getNonEmployeeSource: function (sourceId, axiosOptions) {\n return localVarFp.getNonEmployeeSource(sourceId, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This API gets the list of schema attributes for the specified Non-Employee SourceId. There are 8 mandatory attributes added to each new Non-Employee Source automatically. Additionaly, user can add up to 10 custom attributes. This interface returns all the mandatory attributes followed by any custom attributes. At most, a total of 18 attributes will be returned.\n * @summary List Schema Attributes Non-Employee Source\n * @param {string} sourceId The Source id\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getNonEmployeeSourceSchemaAttributes: function (sourceId, axiosOptions) {\n return localVarFp.getNonEmployeeSourceSchemaAttributes(sourceId, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This post will import, or update, Non-Employee records found in the CSV. Request will need the following security scope: \\'idn:nesr:create\\'\n * @summary Imports, or Updates, Non-Employee Records\n * @param {string} id Source Id (UUID)\n * @param {any} data\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n importNonEmployeeRecordsInBulk: function (id, data, axiosOptions) {\n return localVarFp.importNonEmployeeRecordsInBulk(id, data, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This gets a list of non-employee approval requests.\n * @summary Get List of Non-Employee Approval Requests\n * @param {string} [requestedFor] The identity for whom the request was made. *me* indicates the current user.\n * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **approvalStatus**: *eq*\n * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **created, modified**\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n listNonEmployeeApproval: function (requestedFor, limit, offset, count, filters, sorters, axiosOptions) {\n return localVarFp.listNonEmployeeApproval(requestedFor, limit, offset, count, filters, sorters, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This gets a list of non-employee records.\n * @summary List Non-Employee Records\n * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **id, accountName, sourceId, manager, firstName, lastName, email, phone, startDate, endDate, created, modified**\n * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **sourceId**: *eq*\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n listNonEmployeeRecords: function (limit, offset, count, sorters, filters, axiosOptions) {\n return localVarFp.listNonEmployeeRecords(limit, offset, count, sorters, filters, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This gets a list of non-employee requests.\n * @summary List Non-Employee Requests\n * @param {string} requestedFor The identity for whom the request was made. *me* indicates the current user.\n * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **created, approvalStatus, firstName, lastName, email, phone, accountName, startDate, endDate**\n * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **sourceId**: *eq*\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n listNonEmployeeRequests: function (requestedFor, limit, offset, count, sorters, filters, axiosOptions) {\n return localVarFp.listNonEmployeeRequests(requestedFor, limit, offset, count, sorters, filters, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This gets a list of non-employee sources.\n * @summary List Non-Employee Sources\n * @param {string} requestedFor The identity for whom the request was made. *me* indicates the current user.\n * @param {boolean} nonEmployeeCount The flag to determine whether return a non-employee count associate with source.\n * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **name, created, sourceId**\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n listNonEmployeeSources: function (requestedFor, nonEmployeeCount, limit, offset, count, sorters, axiosOptions) {\n return localVarFp.listNonEmployeeSources(requestedFor, nonEmployeeCount, limit, offset, count, sorters, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This request will patch a non-employee record.\n * @summary Patch Non-Employee Record\n * @param {string} id Non-employee record id (UUID)\n * @param {Array} jsonPatchOperationBeta A list of non-employee update operations according to the [JSON Patch](https://tools.ietf.org/html/rfc6902) standard. Attributes are restricted by user type. Owner of source can update end date. Organization admins can update all available fields.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n patchNonEmployeeRecord: function (id, jsonPatchOperationBeta, axiosOptions) {\n return localVarFp.patchNonEmployeeRecord(id, jsonPatchOperationBeta, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This end-point patches a specific schema attribute for a non-employee SourceId.\n * @summary Patch Non-Employee Source\\'s Schema Attribute\n * @param {string} attributeId The Schema Attribute Id (UUID)\n * @param {string} sourceId The Source id\n * @param {Array} jsonPatchOperationBeta A list of schema attribute update operations according to the [JSON Patch](https://tools.ietf.org/html/rfc6902) standard. The following properties are allowed for update \\':\\' \\'label\\', \\'helpText\\', \\'placeholder\\', \\'required\\'.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n patchNonEmployeeSchemaAttribute: function (attributeId, sourceId, jsonPatchOperationBeta, axiosOptions) {\n return localVarFp.patchNonEmployeeSchemaAttribute(attributeId, sourceId, jsonPatchOperationBeta, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * patch a non-employee source. (Partial Update) Patchable field: **name, description, approvers, accountManagers**\n * @summary Patch a Non-Employee Source\n * @param {string} sourceId Source Id\n * @param {Array} jsonPatchOperationBeta A list of non-employee source update operations according to the [JSON Patch](https://tools.ietf.org/html/rfc6902) standard.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n patchNonEmployeeSource: function (sourceId, jsonPatchOperationBeta, axiosOptions) {\n return localVarFp.patchNonEmployeeSource(sourceId, jsonPatchOperationBeta, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This endpoint will reject an approval item request and notify user.\n * @summary Reject a Non-Employee Request\n * @param {string} id Non-Employee approval item id (UUID)\n * @param {NonEmployeeRejectApprovalDecisionBeta} nonEmployeeRejectApprovalDecisionBeta\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n rejectNonEmployeeRequest: function (id, nonEmployeeRejectApprovalDecisionBeta, axiosOptions) {\n return localVarFp.rejectNonEmployeeRequest(id, nonEmployeeRejectApprovalDecisionBeta, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This request will update a non-employee record.\n * @summary Update Non-Employee Record\n * @param {string} id Non-employee record id (UUID)\n * @param {NonEmployeeRequestBodyBeta} nonEmployeeRequestBodyBeta Non-employee record creation request body. Attributes are restricted by user type. Owner of source can update end date. Organization admins can update all available fields.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n updateNonEmployeeRecord: function (id, nonEmployeeRequestBodyBeta, axiosOptions) {\n return localVarFp.updateNonEmployeeRecord(id, nonEmployeeRequestBodyBeta, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n };\n};\nexports.NonEmployeeLifecycleManagementBetaApiFactory = NonEmployeeLifecycleManagementBetaApiFactory;\n/**\n * NonEmployeeLifecycleManagementBetaApi - object-oriented interface\n * @export\n * @class NonEmployeeLifecycleManagementBetaApi\n * @extends {BaseAPI}\n */\nvar NonEmployeeLifecycleManagementBetaApi = /** @class */ (function (_super) {\n __extends(NonEmployeeLifecycleManagementBetaApi, _super);\n function NonEmployeeLifecycleManagementBetaApi() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n * Approves a non-employee approval request and notifies the next approver.\n * @summary Approve a Non-Employee Request\n * @param {NonEmployeeLifecycleManagementBetaApiApproveNonEmployeeRequestRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof NonEmployeeLifecycleManagementBetaApi\n */\n NonEmployeeLifecycleManagementBetaApi.prototype.approveNonEmployeeRequest = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.NonEmployeeLifecycleManagementBetaApiFp)(this.configuration).approveNonEmployeeRequest(requestParameters.id, requestParameters.nonEmployeeApprovalDecisionBeta, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This request will create a non-employee record. Request will require the following security scope: \\'idn:nesr:create\\'\n * @summary Create Non-Employee Record\n * @param {NonEmployeeLifecycleManagementBetaApiCreateNonEmployeeRecordRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof NonEmployeeLifecycleManagementBetaApi\n */\n NonEmployeeLifecycleManagementBetaApi.prototype.createNonEmployeeRecord = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.NonEmployeeLifecycleManagementBetaApiFp)(this.configuration).createNonEmployeeRecord(requestParameters.nonEmployeeRequestBodyBeta, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This request will create a non-employee request and notify the approver\n * @summary Create Non-Employee Request\n * @param {NonEmployeeLifecycleManagementBetaApiCreateNonEmployeeRequestRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof NonEmployeeLifecycleManagementBetaApi\n */\n NonEmployeeLifecycleManagementBetaApi.prototype.createNonEmployeeRequest = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.NonEmployeeLifecycleManagementBetaApiFp)(this.configuration).createNonEmployeeRequest(requestParameters.nonEmployeeRequestBodyBeta, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This request will create a non-employee source. Request will require the following security scope: \\'idn:nesr:create\\'\n * @summary Create Non-Employee Source\n * @param {NonEmployeeLifecycleManagementBetaApiCreateNonEmployeeSourceRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof NonEmployeeLifecycleManagementBetaApi\n */\n NonEmployeeLifecycleManagementBetaApi.prototype.createNonEmployeeSource = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.NonEmployeeLifecycleManagementBetaApiFp)(this.configuration).createNonEmployeeSource(requestParameters.nonEmployeeSourceRequestBodyBeta, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This API creates a new schema attribute for Non-Employee Source. The schema technical name must be unique in the source. Attempts to create a schema attribute with an existing name will result in a \\\"400.1.409 Reference conflict\\\" response. At most, 10 custom attributes can be created per schema. Attempts to create more than 10 will result in a \\\"400.1.4 Limit violation\\\" response.\n * @summary Create Non-Employee Source Schema Attribute\n * @param {NonEmployeeLifecycleManagementBetaApiCreateNonEmployeeSourceSchemaAttributesRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof NonEmployeeLifecycleManagementBetaApi\n */\n NonEmployeeLifecycleManagementBetaApi.prototype.createNonEmployeeSourceSchemaAttributes = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.NonEmployeeLifecycleManagementBetaApiFp)(this.configuration).createNonEmployeeSourceSchemaAttributes(requestParameters.sourceId, requestParameters.nonEmployeeSchemaAttributeBodyBeta, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This request will delete a non-employee record.\n * @summary Delete Non-Employee Record\n * @param {NonEmployeeLifecycleManagementBetaApiDeleteNonEmployeeRecordRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof NonEmployeeLifecycleManagementBetaApi\n */\n NonEmployeeLifecycleManagementBetaApi.prototype.deleteNonEmployeeRecord = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.NonEmployeeLifecycleManagementBetaApiFp)(this.configuration).deleteNonEmployeeRecord(requestParameters.id, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This request will delete multiple non-employee records based on the non-employee ids provided. Request will require the following scope: \\'idn:nesr:delete\\'\n * @summary Delete Multiple Non-Employee Records\n * @param {NonEmployeeLifecycleManagementBetaApiDeleteNonEmployeeRecordInBulkRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof NonEmployeeLifecycleManagementBetaApi\n */\n NonEmployeeLifecycleManagementBetaApi.prototype.deleteNonEmployeeRecordInBulk = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.NonEmployeeLifecycleManagementBetaApiFp)(this.configuration).deleteNonEmployeeRecordInBulk(requestParameters.deleteNonEmployeeRecordInBulkRequestBeta, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This request will delete a non-employee request.\n * @summary Delete Non-Employee Request\n * @param {NonEmployeeLifecycleManagementBetaApiDeleteNonEmployeeRequestRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof NonEmployeeLifecycleManagementBetaApi\n */\n NonEmployeeLifecycleManagementBetaApi.prototype.deleteNonEmployeeRequest = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.NonEmployeeLifecycleManagementBetaApiFp)(this.configuration).deleteNonEmployeeRequest(requestParameters.id, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This end-point deletes a specific schema attribute for a non-employee source.\n * @summary Delete Non-Employee Source\\'s Schema Attribute\n * @param {NonEmployeeLifecycleManagementBetaApiDeleteNonEmployeeSchemaAttributeRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof NonEmployeeLifecycleManagementBetaApi\n */\n NonEmployeeLifecycleManagementBetaApi.prototype.deleteNonEmployeeSchemaAttribute = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.NonEmployeeLifecycleManagementBetaApiFp)(this.configuration).deleteNonEmployeeSchemaAttribute(requestParameters.attributeId, requestParameters.sourceId, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This request will delete a non-employee source.\n * @summary Delete Non-Employee Source\n * @param {NonEmployeeLifecycleManagementBetaApiDeleteNonEmployeeSourceRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof NonEmployeeLifecycleManagementBetaApi\n */\n NonEmployeeLifecycleManagementBetaApi.prototype.deleteNonEmployeeSource = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.NonEmployeeLifecycleManagementBetaApiFp)(this.configuration).deleteNonEmployeeSource(requestParameters.sourceId, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This end-point deletes all custom schema attributes for a non-employee source.\n * @summary Delete all custom schema attributes\n * @param {NonEmployeeLifecycleManagementBetaApiDeleteNonEmployeeSourceSchemaAttributesRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof NonEmployeeLifecycleManagementBetaApi\n */\n NonEmployeeLifecycleManagementBetaApi.prototype.deleteNonEmployeeSourceSchemaAttributes = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.NonEmployeeLifecycleManagementBetaApiFp)(this.configuration).deleteNonEmployeeSourceSchemaAttributes(requestParameters.sourceId, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This requests a CSV download for all non-employees from a provided source.\n * @summary Exports Non-Employee Records to CSV\n * @param {NonEmployeeLifecycleManagementBetaApiExportNonEmployeeRecordsRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof NonEmployeeLifecycleManagementBetaApi\n */\n NonEmployeeLifecycleManagementBetaApi.prototype.exportNonEmployeeRecords = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.NonEmployeeLifecycleManagementBetaApiFp)(this.configuration).exportNonEmployeeRecords(requestParameters.id, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This requests a download for the Source Schema Template for a provided source. Request will require the following security scope: idn:nesr:read\\'\n * @summary Exports Source Schema Template\n * @param {NonEmployeeLifecycleManagementBetaApiExportNonEmployeeSourceSchemaTemplateRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof NonEmployeeLifecycleManagementBetaApi\n */\n NonEmployeeLifecycleManagementBetaApi.prototype.exportNonEmployeeSourceSchemaTemplate = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.NonEmployeeLifecycleManagementBetaApiFp)(this.configuration).exportNonEmployeeSourceSchemaTemplate(requestParameters.id, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * Approves a non-employee approval request and notifies the next approver.\n * @summary Get a non-employee approval item detail\n * @param {NonEmployeeLifecycleManagementBetaApiGetNonEmployeeApprovalRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof NonEmployeeLifecycleManagementBetaApi\n */\n NonEmployeeLifecycleManagementBetaApi.prototype.getNonEmployeeApproval = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.NonEmployeeLifecycleManagementBetaApiFp)(this.configuration).getNonEmployeeApproval(requestParameters.id, requestParameters.includeDetail, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This request will retrieve a summary of non-employee approval requests. There are two contextual uses for the `requested-for` path parameter: 1. The current user is the Org Admin, in which case he or she may request a summary of all non-employee approval requests assigned to a particular approver by passing in that approver\\'s id. 2. The current user is an approver, in which case \\\"me\\\" should be provided as the `requested-for` value. This will provide the approver with a summary of the approval items assigned to him or her.\n * @summary Get Summary of Non-Employee Approval Requests\n * @param {NonEmployeeLifecycleManagementBetaApiGetNonEmployeeApprovalSummaryRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof NonEmployeeLifecycleManagementBetaApi\n */\n NonEmployeeLifecycleManagementBetaApi.prototype.getNonEmployeeApprovalSummary = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.NonEmployeeLifecycleManagementBetaApiFp)(this.configuration).getNonEmployeeApprovalSummary(requestParameters.requestedFor, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * The nonEmployeeBulkUploadStatus API returns the status of the newest bulk upload job for the specified source.\n * @summary Bulk upload status on source\n * @param {NonEmployeeLifecycleManagementBetaApiGetNonEmployeeBulkUploadStatusRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof NonEmployeeLifecycleManagementBetaApi\n */\n NonEmployeeLifecycleManagementBetaApi.prototype.getNonEmployeeBulkUploadStatus = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.NonEmployeeLifecycleManagementBetaApiFp)(this.configuration).getNonEmployeeBulkUploadStatus(requestParameters.id, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This gets a non-employee record.\n * @summary Get a Non-Employee Record\n * @param {NonEmployeeLifecycleManagementBetaApiGetNonEmployeeRecordRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof NonEmployeeLifecycleManagementBetaApi\n */\n NonEmployeeLifecycleManagementBetaApi.prototype.getNonEmployeeRecord = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.NonEmployeeLifecycleManagementBetaApiFp)(this.configuration).getNonEmployeeRecord(requestParameters.id, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This gets a non-employee request.\n * @summary Get a Non-Employee Request\n * @param {NonEmployeeLifecycleManagementBetaApiGetNonEmployeeRequestRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof NonEmployeeLifecycleManagementBetaApi\n */\n NonEmployeeLifecycleManagementBetaApi.prototype.getNonEmployeeRequest = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.NonEmployeeLifecycleManagementBetaApiFp)(this.configuration).getNonEmployeeRequest(requestParameters.id, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This request will retrieve a summary of non-employee requests. There are two contextual uses for the `requested-for` path parameter: 1. The current user is the Org Admin, in which case he or she may request a summary of all non-employee approval requests assigned to a particular account manager by passing in that manager\\'s id. 2. The current user is an account manager, in which case \\\"me\\\" should be provided as the `requested-for` value. This will provide the user with a summary of the non-employee requests in the source(s) he or she manages.\n * @summary Get Summary of Non-Employee Requests\n * @param {NonEmployeeLifecycleManagementBetaApiGetNonEmployeeRequestSummaryRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof NonEmployeeLifecycleManagementBetaApi\n */\n NonEmployeeLifecycleManagementBetaApi.prototype.getNonEmployeeRequestSummary = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.NonEmployeeLifecycleManagementBetaApiFp)(this.configuration).getNonEmployeeRequestSummary(requestParameters.requestedFor, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This API gets a schema attribute by Id for the specified Non-Employee SourceId.\n * @summary Get Schema Attribute Non-Employee Source\n * @param {NonEmployeeLifecycleManagementBetaApiGetNonEmployeeSchemaAttributeRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof NonEmployeeLifecycleManagementBetaApi\n */\n NonEmployeeLifecycleManagementBetaApi.prototype.getNonEmployeeSchemaAttribute = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.NonEmployeeLifecycleManagementBetaApiFp)(this.configuration).getNonEmployeeSchemaAttribute(requestParameters.attributeId, requestParameters.sourceId, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This gets a non-employee source.\n * @summary Get a Non-Employee Source\n * @param {NonEmployeeLifecycleManagementBetaApiGetNonEmployeeSourceRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof NonEmployeeLifecycleManagementBetaApi\n */\n NonEmployeeLifecycleManagementBetaApi.prototype.getNonEmployeeSource = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.NonEmployeeLifecycleManagementBetaApiFp)(this.configuration).getNonEmployeeSource(requestParameters.sourceId, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This API gets the list of schema attributes for the specified Non-Employee SourceId. There are 8 mandatory attributes added to each new Non-Employee Source automatically. Additionaly, user can add up to 10 custom attributes. This interface returns all the mandatory attributes followed by any custom attributes. At most, a total of 18 attributes will be returned.\n * @summary List Schema Attributes Non-Employee Source\n * @param {NonEmployeeLifecycleManagementBetaApiGetNonEmployeeSourceSchemaAttributesRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof NonEmployeeLifecycleManagementBetaApi\n */\n NonEmployeeLifecycleManagementBetaApi.prototype.getNonEmployeeSourceSchemaAttributes = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.NonEmployeeLifecycleManagementBetaApiFp)(this.configuration).getNonEmployeeSourceSchemaAttributes(requestParameters.sourceId, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This post will import, or update, Non-Employee records found in the CSV. Request will need the following security scope: \\'idn:nesr:create\\'\n * @summary Imports, or Updates, Non-Employee Records\n * @param {NonEmployeeLifecycleManagementBetaApiImportNonEmployeeRecordsInBulkRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof NonEmployeeLifecycleManagementBetaApi\n */\n NonEmployeeLifecycleManagementBetaApi.prototype.importNonEmployeeRecordsInBulk = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.NonEmployeeLifecycleManagementBetaApiFp)(this.configuration).importNonEmployeeRecordsInBulk(requestParameters.id, requestParameters.data, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This gets a list of non-employee approval requests.\n * @summary Get List of Non-Employee Approval Requests\n * @param {NonEmployeeLifecycleManagementBetaApiListNonEmployeeApprovalRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof NonEmployeeLifecycleManagementBetaApi\n */\n NonEmployeeLifecycleManagementBetaApi.prototype.listNonEmployeeApproval = function (requestParameters, axiosOptions) {\n var _this = this;\n if (requestParameters === void 0) { requestParameters = {}; }\n return (0, exports.NonEmployeeLifecycleManagementBetaApiFp)(this.configuration).listNonEmployeeApproval(requestParameters.requestedFor, requestParameters.limit, requestParameters.offset, requestParameters.count, requestParameters.filters, requestParameters.sorters, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This gets a list of non-employee records.\n * @summary List Non-Employee Records\n * @param {NonEmployeeLifecycleManagementBetaApiListNonEmployeeRecordsRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof NonEmployeeLifecycleManagementBetaApi\n */\n NonEmployeeLifecycleManagementBetaApi.prototype.listNonEmployeeRecords = function (requestParameters, axiosOptions) {\n var _this = this;\n if (requestParameters === void 0) { requestParameters = {}; }\n return (0, exports.NonEmployeeLifecycleManagementBetaApiFp)(this.configuration).listNonEmployeeRecords(requestParameters.limit, requestParameters.offset, requestParameters.count, requestParameters.sorters, requestParameters.filters, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This gets a list of non-employee requests.\n * @summary List Non-Employee Requests\n * @param {NonEmployeeLifecycleManagementBetaApiListNonEmployeeRequestsRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof NonEmployeeLifecycleManagementBetaApi\n */\n NonEmployeeLifecycleManagementBetaApi.prototype.listNonEmployeeRequests = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.NonEmployeeLifecycleManagementBetaApiFp)(this.configuration).listNonEmployeeRequests(requestParameters.requestedFor, requestParameters.limit, requestParameters.offset, requestParameters.count, requestParameters.sorters, requestParameters.filters, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This gets a list of non-employee sources.\n * @summary List Non-Employee Sources\n * @param {NonEmployeeLifecycleManagementBetaApiListNonEmployeeSourcesRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof NonEmployeeLifecycleManagementBetaApi\n */\n NonEmployeeLifecycleManagementBetaApi.prototype.listNonEmployeeSources = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.NonEmployeeLifecycleManagementBetaApiFp)(this.configuration).listNonEmployeeSources(requestParameters.requestedFor, requestParameters.nonEmployeeCount, requestParameters.limit, requestParameters.offset, requestParameters.count, requestParameters.sorters, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This request will patch a non-employee record.\n * @summary Patch Non-Employee Record\n * @param {NonEmployeeLifecycleManagementBetaApiPatchNonEmployeeRecordRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof NonEmployeeLifecycleManagementBetaApi\n */\n NonEmployeeLifecycleManagementBetaApi.prototype.patchNonEmployeeRecord = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.NonEmployeeLifecycleManagementBetaApiFp)(this.configuration).patchNonEmployeeRecord(requestParameters.id, requestParameters.jsonPatchOperationBeta, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This end-point patches a specific schema attribute for a non-employee SourceId.\n * @summary Patch Non-Employee Source\\'s Schema Attribute\n * @param {NonEmployeeLifecycleManagementBetaApiPatchNonEmployeeSchemaAttributeRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof NonEmployeeLifecycleManagementBetaApi\n */\n NonEmployeeLifecycleManagementBetaApi.prototype.patchNonEmployeeSchemaAttribute = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.NonEmployeeLifecycleManagementBetaApiFp)(this.configuration).patchNonEmployeeSchemaAttribute(requestParameters.attributeId, requestParameters.sourceId, requestParameters.jsonPatchOperationBeta, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * patch a non-employee source. (Partial Update) Patchable field: **name, description, approvers, accountManagers**\n * @summary Patch a Non-Employee Source\n * @param {NonEmployeeLifecycleManagementBetaApiPatchNonEmployeeSourceRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof NonEmployeeLifecycleManagementBetaApi\n */\n NonEmployeeLifecycleManagementBetaApi.prototype.patchNonEmployeeSource = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.NonEmployeeLifecycleManagementBetaApiFp)(this.configuration).patchNonEmployeeSource(requestParameters.sourceId, requestParameters.jsonPatchOperationBeta, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This endpoint will reject an approval item request and notify user.\n * @summary Reject a Non-Employee Request\n * @param {NonEmployeeLifecycleManagementBetaApiRejectNonEmployeeRequestRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof NonEmployeeLifecycleManagementBetaApi\n */\n NonEmployeeLifecycleManagementBetaApi.prototype.rejectNonEmployeeRequest = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.NonEmployeeLifecycleManagementBetaApiFp)(this.configuration).rejectNonEmployeeRequest(requestParameters.id, requestParameters.nonEmployeeRejectApprovalDecisionBeta, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This request will update a non-employee record.\n * @summary Update Non-Employee Record\n * @param {NonEmployeeLifecycleManagementBetaApiUpdateNonEmployeeRecordRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof NonEmployeeLifecycleManagementBetaApi\n */\n NonEmployeeLifecycleManagementBetaApi.prototype.updateNonEmployeeRecord = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.NonEmployeeLifecycleManagementBetaApiFp)(this.configuration).updateNonEmployeeRecord(requestParameters.id, requestParameters.nonEmployeeRequestBodyBeta, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n return NonEmployeeLifecycleManagementBetaApi;\n}(base_1.BaseAPI));\nexports.NonEmployeeLifecycleManagementBetaApi = NonEmployeeLifecycleManagementBetaApi;\n/**\n * NotificationsBetaApi - axios parameter creator\n * @export\n */\nvar NotificationsBetaApiAxiosParamCreator = function (configuration) {\n var _this = this;\n return {\n /**\n * Create a domain to be verified via DKIM (DomainKeys Identified Mail)\n * @summary Verify domain address via DKIM\n * @param {DomainAddressBeta} domainAddressBeta\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n createDomainDkim: function (domainAddressBeta, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'domainAddressBeta' is not null or undefined\n (0, common_1.assertParamExists)('createDomainDkim', 'domainAddressBeta', domainAddressBeta);\n localVarPath = \"/verified-domains\";\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n localVarHeaderParameter['Content-Type'] = 'application/json';\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(domainAddressBeta, localVarRequestOptions, configuration);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This creates a template for your site. You can also use this endpoint to update a template. First, copy the response body from the [get notification template endpoint](https://developer.sailpoint.com/idn/api/beta/get-notification-template) for a template you wish to update and paste it into the request body for this endpoint. Modify the fields you want to change and submit the POST request when ready.\n * @summary Create Notification Template\n * @param {TemplateDtoBeta} templateDtoBeta\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n createNotificationTemplate: function (templateDtoBeta, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'templateDtoBeta' is not null or undefined\n (0, common_1.assertParamExists)('createNotificationTemplate', 'templateDtoBeta', templateDtoBeta);\n localVarPath = \"/notification-templates\";\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n localVarHeaderParameter['Content-Type'] = 'application/json';\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(templateDtoBeta, localVarRequestOptions, configuration);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * Create a new sender email address and initiate verification process.\n * @summary Create Verified From Address\n * @param {EmailStatusDtoBeta} emailStatusDtoBeta\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n createVerifiedFromAddress: function (emailStatusDtoBeta, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'emailStatusDtoBeta' is not null or undefined\n (0, common_1.assertParamExists)('createVerifiedFromAddress', 'emailStatusDtoBeta', emailStatusDtoBeta);\n localVarPath = \"/verified-from-addresses\";\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n localVarHeaderParameter['Content-Type'] = 'application/json';\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(emailStatusDtoBeta, localVarRequestOptions, configuration);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This lets you bulk delete templates that you previously created for your site. Since this is a beta feature, you can only delete a subset of your notifications, i.e. ones that show up in the list call.\n * @summary Bulk Delete Notification Templates\n * @param {Array} templateBulkDeleteDtoBeta\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n deleteNotificationTemplatesInBulk: function (templateBulkDeleteDtoBeta, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'templateBulkDeleteDtoBeta' is not null or undefined\n (0, common_1.assertParamExists)('deleteNotificationTemplatesInBulk', 'templateBulkDeleteDtoBeta', templateBulkDeleteDtoBeta);\n localVarPath = \"/notification-templates/bulk-delete\";\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n localVarHeaderParameter['Content-Type'] = 'application/json';\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(templateBulkDeleteDtoBeta, localVarRequestOptions, configuration);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * Delete a verified sender email address\n * @summary Delete Verified From Address\n * @param {string} id\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n deleteVerifiedFromAddress: function (id, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'id' is not null or undefined\n (0, common_1.assertParamExists)('deleteVerifiedFromAddress', 'id', id);\n localVarPath = \"/verified-from-addresses/{id}\"\n .replace(\"{\".concat(\"id\", \"}\"), encodeURIComponent(String(id)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'DELETE' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * Retrieve DKIM (DomainKeys Identified Mail) attributes for all your tenants\\' AWS SES identities. Limits retrieval to 100 identities per call.\n * @summary Get DKIM Attributes\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getDkimAttributes: function (axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n localVarPath = \"/verified-domains\";\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * Retrieve MAIL FROM attributes for a given AWS SES identity.\n * @summary Get MAIL FROM Attributes\n * @param {string} id Returns the MX and TXT record to be put in your DNS, as well as the MAIL FROM domain status\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getMailFromAttributes: function (id, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'id' is not null or undefined\n (0, common_1.assertParamExists)('getMailFromAttributes', 'id', id);\n localVarPath = \"/mail-from-attributes/{identity}\";\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n if (id !== undefined) {\n localVarQueryParameter['id'] = id;\n }\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * Returns the notification preferences for tenant. Note that if the key doesn\\'t exist, then a 404 will be returned. Request will require the following legacy roles: ORG_ADMIN and API\n * @summary Get Notification Preferences for tenant.\n * @param {string} key The notification key.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getNotificationPreference: function (key, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'key' is not null or undefined\n (0, common_1.assertParamExists)('getNotificationPreference', 'key', key);\n localVarPath = \"/notification-preferences/{key}\"\n .replace(\"{\".concat(\"key\", \"}\"), encodeURIComponent(String(key)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This gets a template that you have modified for your site by Id.\n * @summary Get Notification Template By Id\n * @param {string} id Id of the Notification Template\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getNotificationTemplate: function (id, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'id' is not null or undefined\n (0, common_1.assertParamExists)('getNotificationTemplate', 'id', id);\n localVarPath = \"/notification-templates/{id}\"\n .replace(\"{\".concat(\"id\", \"}\"), encodeURIComponent(String(id)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * The notification service (Hermes) maintains metadata to construct the notification templates or supply any information during the event propagation. The data-store where this information is retrieved is called \\\"Global Context\\\" (a.k.a. notification template context). It defines a set of attributes that will be available per tenant (organization). Regarding authorization, the access token contains the tenant and will grant access to the one requested. Requires the following security scope: idn:notification-templates:read\n * @summary Get Notification Template Context\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getNotificationsTemplateContext: function (axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n localVarPath = \"/notification-template-context\";\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * Retrieve a list of sender email addresses and their verification statuses\n * @summary List From Addresses\n * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **email**: *eq, co, ge, le, sw*\n * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **email**\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n listFromAddresses: function (limit, offset, count, filters, sorters, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n localVarPath = \"/verified-from-addresses\";\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n if (limit !== undefined) {\n localVarQueryParameter['limit'] = limit;\n }\n if (offset !== undefined) {\n localVarQueryParameter['offset'] = offset;\n }\n if (count !== undefined) {\n localVarQueryParameter['count'] = count;\n }\n if (filters !== undefined) {\n localVarQueryParameter['filters'] = filters;\n }\n if (sorters !== undefined) {\n localVarQueryParameter['sorters'] = sorters;\n }\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This lists the default templates used for notifications, such as emails from IdentityNow. Since this is a beta feature, it doesn\\'t include all the templates.\n * @summary List Notification Template Defaults\n * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **key**: *eq, in, co, sw* **medium**: *eq, co, sw* **locale**: *eq, co, sw*\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n listNotificationTemplateDefaults: function (limit, offset, filters, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n localVarPath = \"/notification-template-defaults\";\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n if (limit !== undefined) {\n localVarQueryParameter['limit'] = limit;\n }\n if (offset !== undefined) {\n localVarQueryParameter['offset'] = offset;\n }\n if (filters !== undefined) {\n localVarQueryParameter['filters'] = filters;\n }\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This lists the templates that you have modified for your site. Since this is a beta feature, it doesn\\'t include all your modified templates.\n * @summary List Notification Templates\n * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **key**: *eq, in, co, sw* **medium**: *eq, co, sw* **locale**: *eq, co, sw*\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n listNotificationTemplates: function (limit, offset, filters, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n localVarPath = \"/notification-templates\";\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n if (limit !== undefined) {\n localVarQueryParameter['limit'] = limit;\n }\n if (offset !== undefined) {\n localVarQueryParameter['offset'] = offset;\n }\n if (filters !== undefined) {\n localVarQueryParameter['filters'] = filters;\n }\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * Change the MAIL FROM domain of an AWS SES email identity and provide the MX and TXT records to be placed in the caller\\'s DNS\n * @summary Change MAIL FROM domain\n * @param {MailFromAttributesDtoBeta} mailFromAttributesDtoBeta\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n putMailFromAttributes: function (mailFromAttributesDtoBeta, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'mailFromAttributesDtoBeta' is not null or undefined\n (0, common_1.assertParamExists)('putMailFromAttributes', 'mailFromAttributesDtoBeta', mailFromAttributesDtoBeta);\n localVarPath = \"/mail-from-attributes\";\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'PUT' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n localVarHeaderParameter['Content-Type'] = 'application/json';\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(mailFromAttributesDtoBeta, localVarRequestOptions, configuration);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * In the notification world, a notification flows through these salient stages - 1. Interest matching, 2. Preferences 3. Template Rendering. The default notification preferences make up a part of the second stage, along with user preferences (which is a future goal). The expectation is for admins to be able to set default preferences for their org, like opting in to or out of certain notifications, and configuring future preferences as we tack on more features. The key in the Dto is not necessary but if it is provided and doesn\\'t match the key in the URI, then a 400 will be thrown. Request will require the following legacy roles: ORG_ADMIN and API\n * @summary Overwrite the preferences for the given notification key.\n * @param {string} key The notification key.\n * @param {PreferencesDtoBeta} preferencesDtoBeta\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n putNotificationPreference: function (key, preferencesDtoBeta, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'key' is not null or undefined\n (0, common_1.assertParamExists)('putNotificationPreference', 'key', key);\n // verify required parameter 'preferencesDtoBeta' is not null or undefined\n (0, common_1.assertParamExists)('putNotificationPreference', 'preferencesDtoBeta', preferencesDtoBeta);\n localVarPath = \"/notification-preferences/{key}\"\n .replace(\"{\".concat(\"key\", \"}\"), encodeURIComponent(String(key)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'PUT' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n localVarHeaderParameter['Content-Type'] = 'application/json';\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(preferencesDtoBeta, localVarRequestOptions, configuration);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * Send a Test Notification\n * @summary Send Test Notification\n * @param {SendTestNotificationRequestDtoBeta} sendTestNotificationRequestDtoBeta\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n sendTestNotification: function (sendTestNotificationRequestDtoBeta, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'sendTestNotificationRequestDtoBeta' is not null or undefined\n (0, common_1.assertParamExists)('sendTestNotification', 'sendTestNotificationRequestDtoBeta', sendTestNotificationRequestDtoBeta);\n localVarPath = \"/send-test-notification\";\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n localVarHeaderParameter['Content-Type'] = 'application/json';\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(sendTestNotificationRequestDtoBeta, localVarRequestOptions, configuration);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n };\n};\nexports.NotificationsBetaApiAxiosParamCreator = NotificationsBetaApiAxiosParamCreator;\n/**\n * NotificationsBetaApi - functional programming interface\n * @export\n */\nvar NotificationsBetaApiFp = function (configuration) {\n var localVarAxiosParamCreator = (0, exports.NotificationsBetaApiAxiosParamCreator)(configuration);\n return {\n /**\n * Create a domain to be verified via DKIM (DomainKeys Identified Mail)\n * @summary Verify domain address via DKIM\n * @param {DomainAddressBeta} domainAddressBeta\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n createDomainDkim: function (domainAddressBeta, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.createDomainDkim(domainAddressBeta, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This creates a template for your site. You can also use this endpoint to update a template. First, copy the response body from the [get notification template endpoint](https://developer.sailpoint.com/idn/api/beta/get-notification-template) for a template you wish to update and paste it into the request body for this endpoint. Modify the fields you want to change and submit the POST request when ready.\n * @summary Create Notification Template\n * @param {TemplateDtoBeta} templateDtoBeta\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n createNotificationTemplate: function (templateDtoBeta, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.createNotificationTemplate(templateDtoBeta, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * Create a new sender email address and initiate verification process.\n * @summary Create Verified From Address\n * @param {EmailStatusDtoBeta} emailStatusDtoBeta\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n createVerifiedFromAddress: function (emailStatusDtoBeta, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.createVerifiedFromAddress(emailStatusDtoBeta, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This lets you bulk delete templates that you previously created for your site. Since this is a beta feature, you can only delete a subset of your notifications, i.e. ones that show up in the list call.\n * @summary Bulk Delete Notification Templates\n * @param {Array} templateBulkDeleteDtoBeta\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n deleteNotificationTemplatesInBulk: function (templateBulkDeleteDtoBeta, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.deleteNotificationTemplatesInBulk(templateBulkDeleteDtoBeta, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * Delete a verified sender email address\n * @summary Delete Verified From Address\n * @param {string} id\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n deleteVerifiedFromAddress: function (id, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.deleteVerifiedFromAddress(id, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * Retrieve DKIM (DomainKeys Identified Mail) attributes for all your tenants\\' AWS SES identities. Limits retrieval to 100 identities per call.\n * @summary Get DKIM Attributes\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getDkimAttributes: function (axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.getDkimAttributes(axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * Retrieve MAIL FROM attributes for a given AWS SES identity.\n * @summary Get MAIL FROM Attributes\n * @param {string} id Returns the MX and TXT record to be put in your DNS, as well as the MAIL FROM domain status\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getMailFromAttributes: function (id, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.getMailFromAttributes(id, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * Returns the notification preferences for tenant. Note that if the key doesn\\'t exist, then a 404 will be returned. Request will require the following legacy roles: ORG_ADMIN and API\n * @summary Get Notification Preferences for tenant.\n * @param {string} key The notification key.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getNotificationPreference: function (key, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.getNotificationPreference(key, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This gets a template that you have modified for your site by Id.\n * @summary Get Notification Template By Id\n * @param {string} id Id of the Notification Template\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getNotificationTemplate: function (id, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.getNotificationTemplate(id, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * The notification service (Hermes) maintains metadata to construct the notification templates or supply any information during the event propagation. The data-store where this information is retrieved is called \\\"Global Context\\\" (a.k.a. notification template context). It defines a set of attributes that will be available per tenant (organization). Regarding authorization, the access token contains the tenant and will grant access to the one requested. Requires the following security scope: idn:notification-templates:read\n * @summary Get Notification Template Context\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getNotificationsTemplateContext: function (axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.getNotificationsTemplateContext(axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * Retrieve a list of sender email addresses and their verification statuses\n * @summary List From Addresses\n * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **email**: *eq, co, ge, le, sw*\n * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **email**\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n listFromAddresses: function (limit, offset, count, filters, sorters, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.listFromAddresses(limit, offset, count, filters, sorters, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This lists the default templates used for notifications, such as emails from IdentityNow. Since this is a beta feature, it doesn\\'t include all the templates.\n * @summary List Notification Template Defaults\n * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **key**: *eq, in, co, sw* **medium**: *eq, co, sw* **locale**: *eq, co, sw*\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n listNotificationTemplateDefaults: function (limit, offset, filters, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.listNotificationTemplateDefaults(limit, offset, filters, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This lists the templates that you have modified for your site. Since this is a beta feature, it doesn\\'t include all your modified templates.\n * @summary List Notification Templates\n * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **key**: *eq, in, co, sw* **medium**: *eq, co, sw* **locale**: *eq, co, sw*\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n listNotificationTemplates: function (limit, offset, filters, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.listNotificationTemplates(limit, offset, filters, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * Change the MAIL FROM domain of an AWS SES email identity and provide the MX and TXT records to be placed in the caller\\'s DNS\n * @summary Change MAIL FROM domain\n * @param {MailFromAttributesDtoBeta} mailFromAttributesDtoBeta\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n putMailFromAttributes: function (mailFromAttributesDtoBeta, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.putMailFromAttributes(mailFromAttributesDtoBeta, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * In the notification world, a notification flows through these salient stages - 1. Interest matching, 2. Preferences 3. Template Rendering. The default notification preferences make up a part of the second stage, along with user preferences (which is a future goal). The expectation is for admins to be able to set default preferences for their org, like opting in to or out of certain notifications, and configuring future preferences as we tack on more features. The key in the Dto is not necessary but if it is provided and doesn\\'t match the key in the URI, then a 400 will be thrown. Request will require the following legacy roles: ORG_ADMIN and API\n * @summary Overwrite the preferences for the given notification key.\n * @param {string} key The notification key.\n * @param {PreferencesDtoBeta} preferencesDtoBeta\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n putNotificationPreference: function (key, preferencesDtoBeta, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.putNotificationPreference(key, preferencesDtoBeta, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * Send a Test Notification\n * @summary Send Test Notification\n * @param {SendTestNotificationRequestDtoBeta} sendTestNotificationRequestDtoBeta\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n sendTestNotification: function (sendTestNotificationRequestDtoBeta, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.sendTestNotification(sendTestNotificationRequestDtoBeta, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n };\n};\nexports.NotificationsBetaApiFp = NotificationsBetaApiFp;\n/**\n * NotificationsBetaApi - factory interface\n * @export\n */\nvar NotificationsBetaApiFactory = function (configuration, basePath, axios) {\n var localVarFp = (0, exports.NotificationsBetaApiFp)(configuration);\n return {\n /**\n * Create a domain to be verified via DKIM (DomainKeys Identified Mail)\n * @summary Verify domain address via DKIM\n * @param {DomainAddressBeta} domainAddressBeta\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n createDomainDkim: function (domainAddressBeta, axiosOptions) {\n return localVarFp.createDomainDkim(domainAddressBeta, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This creates a template for your site. You can also use this endpoint to update a template. First, copy the response body from the [get notification template endpoint](https://developer.sailpoint.com/idn/api/beta/get-notification-template) for a template you wish to update and paste it into the request body for this endpoint. Modify the fields you want to change and submit the POST request when ready.\n * @summary Create Notification Template\n * @param {TemplateDtoBeta} templateDtoBeta\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n createNotificationTemplate: function (templateDtoBeta, axiosOptions) {\n return localVarFp.createNotificationTemplate(templateDtoBeta, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * Create a new sender email address and initiate verification process.\n * @summary Create Verified From Address\n * @param {EmailStatusDtoBeta} emailStatusDtoBeta\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n createVerifiedFromAddress: function (emailStatusDtoBeta, axiosOptions) {\n return localVarFp.createVerifiedFromAddress(emailStatusDtoBeta, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This lets you bulk delete templates that you previously created for your site. Since this is a beta feature, you can only delete a subset of your notifications, i.e. ones that show up in the list call.\n * @summary Bulk Delete Notification Templates\n * @param {Array} templateBulkDeleteDtoBeta\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n deleteNotificationTemplatesInBulk: function (templateBulkDeleteDtoBeta, axiosOptions) {\n return localVarFp.deleteNotificationTemplatesInBulk(templateBulkDeleteDtoBeta, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * Delete a verified sender email address\n * @summary Delete Verified From Address\n * @param {string} id\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n deleteVerifiedFromAddress: function (id, axiosOptions) {\n return localVarFp.deleteVerifiedFromAddress(id, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * Retrieve DKIM (DomainKeys Identified Mail) attributes for all your tenants\\' AWS SES identities. Limits retrieval to 100 identities per call.\n * @summary Get DKIM Attributes\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getDkimAttributes: function (axiosOptions) {\n return localVarFp.getDkimAttributes(axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * Retrieve MAIL FROM attributes for a given AWS SES identity.\n * @summary Get MAIL FROM Attributes\n * @param {string} id Returns the MX and TXT record to be put in your DNS, as well as the MAIL FROM domain status\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getMailFromAttributes: function (id, axiosOptions) {\n return localVarFp.getMailFromAttributes(id, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * Returns the notification preferences for tenant. Note that if the key doesn\\'t exist, then a 404 will be returned. Request will require the following legacy roles: ORG_ADMIN and API\n * @summary Get Notification Preferences for tenant.\n * @param {string} key The notification key.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getNotificationPreference: function (key, axiosOptions) {\n return localVarFp.getNotificationPreference(key, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This gets a template that you have modified for your site by Id.\n * @summary Get Notification Template By Id\n * @param {string} id Id of the Notification Template\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getNotificationTemplate: function (id, axiosOptions) {\n return localVarFp.getNotificationTemplate(id, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * The notification service (Hermes) maintains metadata to construct the notification templates or supply any information during the event propagation. The data-store where this information is retrieved is called \\\"Global Context\\\" (a.k.a. notification template context). It defines a set of attributes that will be available per tenant (organization). Regarding authorization, the access token contains the tenant and will grant access to the one requested. Requires the following security scope: idn:notification-templates:read\n * @summary Get Notification Template Context\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getNotificationsTemplateContext: function (axiosOptions) {\n return localVarFp.getNotificationsTemplateContext(axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * Retrieve a list of sender email addresses and their verification statuses\n * @summary List From Addresses\n * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **email**: *eq, co, ge, le, sw*\n * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **email**\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n listFromAddresses: function (limit, offset, count, filters, sorters, axiosOptions) {\n return localVarFp.listFromAddresses(limit, offset, count, filters, sorters, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This lists the default templates used for notifications, such as emails from IdentityNow. Since this is a beta feature, it doesn\\'t include all the templates.\n * @summary List Notification Template Defaults\n * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **key**: *eq, in, co, sw* **medium**: *eq, co, sw* **locale**: *eq, co, sw*\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n listNotificationTemplateDefaults: function (limit, offset, filters, axiosOptions) {\n return localVarFp.listNotificationTemplateDefaults(limit, offset, filters, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This lists the templates that you have modified for your site. Since this is a beta feature, it doesn\\'t include all your modified templates.\n * @summary List Notification Templates\n * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **key**: *eq, in, co, sw* **medium**: *eq, co, sw* **locale**: *eq, co, sw*\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n listNotificationTemplates: function (limit, offset, filters, axiosOptions) {\n return localVarFp.listNotificationTemplates(limit, offset, filters, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * Change the MAIL FROM domain of an AWS SES email identity and provide the MX and TXT records to be placed in the caller\\'s DNS\n * @summary Change MAIL FROM domain\n * @param {MailFromAttributesDtoBeta} mailFromAttributesDtoBeta\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n putMailFromAttributes: function (mailFromAttributesDtoBeta, axiosOptions) {\n return localVarFp.putMailFromAttributes(mailFromAttributesDtoBeta, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * In the notification world, a notification flows through these salient stages - 1. Interest matching, 2. Preferences 3. Template Rendering. The default notification preferences make up a part of the second stage, along with user preferences (which is a future goal). The expectation is for admins to be able to set default preferences for their org, like opting in to or out of certain notifications, and configuring future preferences as we tack on more features. The key in the Dto is not necessary but if it is provided and doesn\\'t match the key in the URI, then a 400 will be thrown. Request will require the following legacy roles: ORG_ADMIN and API\n * @summary Overwrite the preferences for the given notification key.\n * @param {string} key The notification key.\n * @param {PreferencesDtoBeta} preferencesDtoBeta\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n putNotificationPreference: function (key, preferencesDtoBeta, axiosOptions) {\n return localVarFp.putNotificationPreference(key, preferencesDtoBeta, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * Send a Test Notification\n * @summary Send Test Notification\n * @param {SendTestNotificationRequestDtoBeta} sendTestNotificationRequestDtoBeta\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n sendTestNotification: function (sendTestNotificationRequestDtoBeta, axiosOptions) {\n return localVarFp.sendTestNotification(sendTestNotificationRequestDtoBeta, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n };\n};\nexports.NotificationsBetaApiFactory = NotificationsBetaApiFactory;\n/**\n * NotificationsBetaApi - object-oriented interface\n * @export\n * @class NotificationsBetaApi\n * @extends {BaseAPI}\n */\nvar NotificationsBetaApi = /** @class */ (function (_super) {\n __extends(NotificationsBetaApi, _super);\n function NotificationsBetaApi() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n * Create a domain to be verified via DKIM (DomainKeys Identified Mail)\n * @summary Verify domain address via DKIM\n * @param {NotificationsBetaApiCreateDomainDkimRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof NotificationsBetaApi\n */\n NotificationsBetaApi.prototype.createDomainDkim = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.NotificationsBetaApiFp)(this.configuration).createDomainDkim(requestParameters.domainAddressBeta, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This creates a template for your site. You can also use this endpoint to update a template. First, copy the response body from the [get notification template endpoint](https://developer.sailpoint.com/idn/api/beta/get-notification-template) for a template you wish to update and paste it into the request body for this endpoint. Modify the fields you want to change and submit the POST request when ready.\n * @summary Create Notification Template\n * @param {NotificationsBetaApiCreateNotificationTemplateRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof NotificationsBetaApi\n */\n NotificationsBetaApi.prototype.createNotificationTemplate = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.NotificationsBetaApiFp)(this.configuration).createNotificationTemplate(requestParameters.templateDtoBeta, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * Create a new sender email address and initiate verification process.\n * @summary Create Verified From Address\n * @param {NotificationsBetaApiCreateVerifiedFromAddressRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof NotificationsBetaApi\n */\n NotificationsBetaApi.prototype.createVerifiedFromAddress = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.NotificationsBetaApiFp)(this.configuration).createVerifiedFromAddress(requestParameters.emailStatusDtoBeta, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This lets you bulk delete templates that you previously created for your site. Since this is a beta feature, you can only delete a subset of your notifications, i.e. ones that show up in the list call.\n * @summary Bulk Delete Notification Templates\n * @param {NotificationsBetaApiDeleteNotificationTemplatesInBulkRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof NotificationsBetaApi\n */\n NotificationsBetaApi.prototype.deleteNotificationTemplatesInBulk = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.NotificationsBetaApiFp)(this.configuration).deleteNotificationTemplatesInBulk(requestParameters.templateBulkDeleteDtoBeta, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * Delete a verified sender email address\n * @summary Delete Verified From Address\n * @param {NotificationsBetaApiDeleteVerifiedFromAddressRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof NotificationsBetaApi\n */\n NotificationsBetaApi.prototype.deleteVerifiedFromAddress = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.NotificationsBetaApiFp)(this.configuration).deleteVerifiedFromAddress(requestParameters.id, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * Retrieve DKIM (DomainKeys Identified Mail) attributes for all your tenants\\' AWS SES identities. Limits retrieval to 100 identities per call.\n * @summary Get DKIM Attributes\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof NotificationsBetaApi\n */\n NotificationsBetaApi.prototype.getDkimAttributes = function (axiosOptions) {\n var _this = this;\n return (0, exports.NotificationsBetaApiFp)(this.configuration).getDkimAttributes(axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * Retrieve MAIL FROM attributes for a given AWS SES identity.\n * @summary Get MAIL FROM Attributes\n * @param {NotificationsBetaApiGetMailFromAttributesRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof NotificationsBetaApi\n */\n NotificationsBetaApi.prototype.getMailFromAttributes = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.NotificationsBetaApiFp)(this.configuration).getMailFromAttributes(requestParameters.id, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * Returns the notification preferences for tenant. Note that if the key doesn\\'t exist, then a 404 will be returned. Request will require the following legacy roles: ORG_ADMIN and API\n * @summary Get Notification Preferences for tenant.\n * @param {NotificationsBetaApiGetNotificationPreferenceRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof NotificationsBetaApi\n */\n NotificationsBetaApi.prototype.getNotificationPreference = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.NotificationsBetaApiFp)(this.configuration).getNotificationPreference(requestParameters.key, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This gets a template that you have modified for your site by Id.\n * @summary Get Notification Template By Id\n * @param {NotificationsBetaApiGetNotificationTemplateRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof NotificationsBetaApi\n */\n NotificationsBetaApi.prototype.getNotificationTemplate = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.NotificationsBetaApiFp)(this.configuration).getNotificationTemplate(requestParameters.id, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * The notification service (Hermes) maintains metadata to construct the notification templates or supply any information during the event propagation. The data-store where this information is retrieved is called \\\"Global Context\\\" (a.k.a. notification template context). It defines a set of attributes that will be available per tenant (organization). Regarding authorization, the access token contains the tenant and will grant access to the one requested. Requires the following security scope: idn:notification-templates:read\n * @summary Get Notification Template Context\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof NotificationsBetaApi\n */\n NotificationsBetaApi.prototype.getNotificationsTemplateContext = function (axiosOptions) {\n var _this = this;\n return (0, exports.NotificationsBetaApiFp)(this.configuration).getNotificationsTemplateContext(axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * Retrieve a list of sender email addresses and their verification statuses\n * @summary List From Addresses\n * @param {NotificationsBetaApiListFromAddressesRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof NotificationsBetaApi\n */\n NotificationsBetaApi.prototype.listFromAddresses = function (requestParameters, axiosOptions) {\n var _this = this;\n if (requestParameters === void 0) { requestParameters = {}; }\n return (0, exports.NotificationsBetaApiFp)(this.configuration).listFromAddresses(requestParameters.limit, requestParameters.offset, requestParameters.count, requestParameters.filters, requestParameters.sorters, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This lists the default templates used for notifications, such as emails from IdentityNow. Since this is a beta feature, it doesn\\'t include all the templates.\n * @summary List Notification Template Defaults\n * @param {NotificationsBetaApiListNotificationTemplateDefaultsRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof NotificationsBetaApi\n */\n NotificationsBetaApi.prototype.listNotificationTemplateDefaults = function (requestParameters, axiosOptions) {\n var _this = this;\n if (requestParameters === void 0) { requestParameters = {}; }\n return (0, exports.NotificationsBetaApiFp)(this.configuration).listNotificationTemplateDefaults(requestParameters.limit, requestParameters.offset, requestParameters.filters, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This lists the templates that you have modified for your site. Since this is a beta feature, it doesn\\'t include all your modified templates.\n * @summary List Notification Templates\n * @param {NotificationsBetaApiListNotificationTemplatesRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof NotificationsBetaApi\n */\n NotificationsBetaApi.prototype.listNotificationTemplates = function (requestParameters, axiosOptions) {\n var _this = this;\n if (requestParameters === void 0) { requestParameters = {}; }\n return (0, exports.NotificationsBetaApiFp)(this.configuration).listNotificationTemplates(requestParameters.limit, requestParameters.offset, requestParameters.filters, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * Change the MAIL FROM domain of an AWS SES email identity and provide the MX and TXT records to be placed in the caller\\'s DNS\n * @summary Change MAIL FROM domain\n * @param {NotificationsBetaApiPutMailFromAttributesRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof NotificationsBetaApi\n */\n NotificationsBetaApi.prototype.putMailFromAttributes = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.NotificationsBetaApiFp)(this.configuration).putMailFromAttributes(requestParameters.mailFromAttributesDtoBeta, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * In the notification world, a notification flows through these salient stages - 1. Interest matching, 2. Preferences 3. Template Rendering. The default notification preferences make up a part of the second stage, along with user preferences (which is a future goal). The expectation is for admins to be able to set default preferences for their org, like opting in to or out of certain notifications, and configuring future preferences as we tack on more features. The key in the Dto is not necessary but if it is provided and doesn\\'t match the key in the URI, then a 400 will be thrown. Request will require the following legacy roles: ORG_ADMIN and API\n * @summary Overwrite the preferences for the given notification key.\n * @param {NotificationsBetaApiPutNotificationPreferenceRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof NotificationsBetaApi\n */\n NotificationsBetaApi.prototype.putNotificationPreference = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.NotificationsBetaApiFp)(this.configuration).putNotificationPreference(requestParameters.key, requestParameters.preferencesDtoBeta, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * Send a Test Notification\n * @summary Send Test Notification\n * @param {NotificationsBetaApiSendTestNotificationRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof NotificationsBetaApi\n */\n NotificationsBetaApi.prototype.sendTestNotification = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.NotificationsBetaApiFp)(this.configuration).sendTestNotification(requestParameters.sendTestNotificationRequestDtoBeta, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n return NotificationsBetaApi;\n}(base_1.BaseAPI));\nexports.NotificationsBetaApi = NotificationsBetaApi;\n/**\n * OAuthClientsBetaApi - axios parameter creator\n * @export\n */\nvar OAuthClientsBetaApiAxiosParamCreator = function (configuration) {\n var _this = this;\n return {\n /**\n * This creates an OAuth client.\n * @summary Create OAuth Client\n * @param {CreateOAuthClientRequestBeta} createOAuthClientRequestBeta\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n createOauthClient: function (createOAuthClientRequestBeta, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'createOAuthClientRequestBeta' is not null or undefined\n (0, common_1.assertParamExists)('createOauthClient', 'createOAuthClientRequestBeta', createOAuthClientRequestBeta);\n localVarPath = \"/oauth-clients\";\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n localVarHeaderParameter['Content-Type'] = 'application/json';\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(createOAuthClientRequestBeta, localVarRequestOptions, configuration);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This deletes an OAuth client.\n * @summary Delete OAuth Client\n * @param {string} id The OAuth client id\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n deleteOauthClient: function (id, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'id' is not null or undefined\n (0, common_1.assertParamExists)('deleteOauthClient', 'id', id);\n localVarPath = \"/oauth-clients/{id}\"\n .replace(\"{\".concat(\"id\", \"}\"), encodeURIComponent(String(id)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'DELETE' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This gets details of an OAuth client.\n * @summary Get OAuth Client\n * @param {string} id The OAuth client id\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getOauthClient: function (id, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'id' is not null or undefined\n (0, common_1.assertParamExists)('getOauthClient', 'id', id);\n localVarPath = \"/oauth-clients/{id}\"\n .replace(\"{\".concat(\"id\", \"}\"), encodeURIComponent(String(id)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This gets a list of OAuth clients.\n * @summary List OAuth Clients\n * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **lastUsed**: *le, isnull*\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n listOauthClients: function (filters, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n localVarPath = \"/oauth-clients\";\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n if (filters !== undefined) {\n localVarQueryParameter['filters'] = filters;\n }\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This performs a targeted update to the field(s) of an OAuth client. Request will require a security scope of - sp:oauth-client:manage\n * @summary Patch OAuth Client\n * @param {string} id The OAuth client id\n * @param {Array} jsonPatchOperationBeta A list of OAuth client update operations according to the [JSON Patch](https://tools.ietf.org/html/rfc6902) standard. The following fields are patchable: * tenant * businessName * homepageUrl * name * description * accessTokenValiditySeconds * refreshTokenValiditySeconds * redirectUris * grantTypes * accessType * enabled * strongAuthSupported * claimsSupported\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n patchOauthClient: function (id, jsonPatchOperationBeta, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'id' is not null or undefined\n (0, common_1.assertParamExists)('patchOauthClient', 'id', id);\n // verify required parameter 'jsonPatchOperationBeta' is not null or undefined\n (0, common_1.assertParamExists)('patchOauthClient', 'jsonPatchOperationBeta', jsonPatchOperationBeta);\n localVarPath = \"/oauth-clients/{id}\"\n .replace(\"{\".concat(\"id\", \"}\"), encodeURIComponent(String(id)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'PATCH' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n localVarHeaderParameter['Content-Type'] = 'application/json-patch+json';\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(jsonPatchOperationBeta, localVarRequestOptions, configuration);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n };\n};\nexports.OAuthClientsBetaApiAxiosParamCreator = OAuthClientsBetaApiAxiosParamCreator;\n/**\n * OAuthClientsBetaApi - functional programming interface\n * @export\n */\nvar OAuthClientsBetaApiFp = function (configuration) {\n var localVarAxiosParamCreator = (0, exports.OAuthClientsBetaApiAxiosParamCreator)(configuration);\n return {\n /**\n * This creates an OAuth client.\n * @summary Create OAuth Client\n * @param {CreateOAuthClientRequestBeta} createOAuthClientRequestBeta\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n createOauthClient: function (createOAuthClientRequestBeta, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.createOauthClient(createOAuthClientRequestBeta, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This deletes an OAuth client.\n * @summary Delete OAuth Client\n * @param {string} id The OAuth client id\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n deleteOauthClient: function (id, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.deleteOauthClient(id, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This gets details of an OAuth client.\n * @summary Get OAuth Client\n * @param {string} id The OAuth client id\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getOauthClient: function (id, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.getOauthClient(id, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This gets a list of OAuth clients.\n * @summary List OAuth Clients\n * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **lastUsed**: *le, isnull*\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n listOauthClients: function (filters, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.listOauthClients(filters, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This performs a targeted update to the field(s) of an OAuth client. Request will require a security scope of - sp:oauth-client:manage\n * @summary Patch OAuth Client\n * @param {string} id The OAuth client id\n * @param {Array} jsonPatchOperationBeta A list of OAuth client update operations according to the [JSON Patch](https://tools.ietf.org/html/rfc6902) standard. The following fields are patchable: * tenant * businessName * homepageUrl * name * description * accessTokenValiditySeconds * refreshTokenValiditySeconds * redirectUris * grantTypes * accessType * enabled * strongAuthSupported * claimsSupported\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n patchOauthClient: function (id, jsonPatchOperationBeta, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.patchOauthClient(id, jsonPatchOperationBeta, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n };\n};\nexports.OAuthClientsBetaApiFp = OAuthClientsBetaApiFp;\n/**\n * OAuthClientsBetaApi - factory interface\n * @export\n */\nvar OAuthClientsBetaApiFactory = function (configuration, basePath, axios) {\n var localVarFp = (0, exports.OAuthClientsBetaApiFp)(configuration);\n return {\n /**\n * This creates an OAuth client.\n * @summary Create OAuth Client\n * @param {CreateOAuthClientRequestBeta} createOAuthClientRequestBeta\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n createOauthClient: function (createOAuthClientRequestBeta, axiosOptions) {\n return localVarFp.createOauthClient(createOAuthClientRequestBeta, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This deletes an OAuth client.\n * @summary Delete OAuth Client\n * @param {string} id The OAuth client id\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n deleteOauthClient: function (id, axiosOptions) {\n return localVarFp.deleteOauthClient(id, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This gets details of an OAuth client.\n * @summary Get OAuth Client\n * @param {string} id The OAuth client id\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getOauthClient: function (id, axiosOptions) {\n return localVarFp.getOauthClient(id, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This gets a list of OAuth clients.\n * @summary List OAuth Clients\n * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **lastUsed**: *le, isnull*\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n listOauthClients: function (filters, axiosOptions) {\n return localVarFp.listOauthClients(filters, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This performs a targeted update to the field(s) of an OAuth client. Request will require a security scope of - sp:oauth-client:manage\n * @summary Patch OAuth Client\n * @param {string} id The OAuth client id\n * @param {Array} jsonPatchOperationBeta A list of OAuth client update operations according to the [JSON Patch](https://tools.ietf.org/html/rfc6902) standard. The following fields are patchable: * tenant * businessName * homepageUrl * name * description * accessTokenValiditySeconds * refreshTokenValiditySeconds * redirectUris * grantTypes * accessType * enabled * strongAuthSupported * claimsSupported\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n patchOauthClient: function (id, jsonPatchOperationBeta, axiosOptions) {\n return localVarFp.patchOauthClient(id, jsonPatchOperationBeta, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n };\n};\nexports.OAuthClientsBetaApiFactory = OAuthClientsBetaApiFactory;\n/**\n * OAuthClientsBetaApi - object-oriented interface\n * @export\n * @class OAuthClientsBetaApi\n * @extends {BaseAPI}\n */\nvar OAuthClientsBetaApi = /** @class */ (function (_super) {\n __extends(OAuthClientsBetaApi, _super);\n function OAuthClientsBetaApi() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n * This creates an OAuth client.\n * @summary Create OAuth Client\n * @param {OAuthClientsBetaApiCreateOauthClientRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof OAuthClientsBetaApi\n */\n OAuthClientsBetaApi.prototype.createOauthClient = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.OAuthClientsBetaApiFp)(this.configuration).createOauthClient(requestParameters.createOAuthClientRequestBeta, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This deletes an OAuth client.\n * @summary Delete OAuth Client\n * @param {OAuthClientsBetaApiDeleteOauthClientRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof OAuthClientsBetaApi\n */\n OAuthClientsBetaApi.prototype.deleteOauthClient = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.OAuthClientsBetaApiFp)(this.configuration).deleteOauthClient(requestParameters.id, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This gets details of an OAuth client.\n * @summary Get OAuth Client\n * @param {OAuthClientsBetaApiGetOauthClientRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof OAuthClientsBetaApi\n */\n OAuthClientsBetaApi.prototype.getOauthClient = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.OAuthClientsBetaApiFp)(this.configuration).getOauthClient(requestParameters.id, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This gets a list of OAuth clients.\n * @summary List OAuth Clients\n * @param {OAuthClientsBetaApiListOauthClientsRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof OAuthClientsBetaApi\n */\n OAuthClientsBetaApi.prototype.listOauthClients = function (requestParameters, axiosOptions) {\n var _this = this;\n if (requestParameters === void 0) { requestParameters = {}; }\n return (0, exports.OAuthClientsBetaApiFp)(this.configuration).listOauthClients(requestParameters.filters, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This performs a targeted update to the field(s) of an OAuth client. Request will require a security scope of - sp:oauth-client:manage\n * @summary Patch OAuth Client\n * @param {OAuthClientsBetaApiPatchOauthClientRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof OAuthClientsBetaApi\n */\n OAuthClientsBetaApi.prototype.patchOauthClient = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.OAuthClientsBetaApiFp)(this.configuration).patchOauthClient(requestParameters.id, requestParameters.jsonPatchOperationBeta, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n return OAuthClientsBetaApi;\n}(base_1.BaseAPI));\nexports.OAuthClientsBetaApi = OAuthClientsBetaApi;\n/**\n * OrgConfigBetaApi - axios parameter creator\n * @export\n */\nvar OrgConfigBetaApiAxiosParamCreator = function (configuration) {\n var _this = this;\n return {\n /**\n * Get org configuration with only external (org admin) accessible properties for the current org.\n * @summary Get Org configuration settings\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getOrgConfig: function (axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n localVarPath = \"/org-config\";\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * Get a list of valid time zones that can be set in org configurations.\n * @summary Get list of time zones\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getValidTimeZones: function (axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n localVarPath = \"/org-config/valid-time-zones\";\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * Patch configuration of the current org using http://jsonpatch.com/ syntax. Commonly used for changing the time zone of an org.\n * @summary Patch an Org configuration property\n * @param {Array} jsonPatchOperationBeta A list of schema attribute update operations according to the [JSON Patch](https://tools.ietf.org/html/rfc6902) standard.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n patchOrgConfig: function (jsonPatchOperationBeta, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'jsonPatchOperationBeta' is not null or undefined\n (0, common_1.assertParamExists)('patchOrgConfig', 'jsonPatchOperationBeta', jsonPatchOperationBeta);\n localVarPath = \"/org-config\";\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'PATCH' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n localVarHeaderParameter['Content-Type'] = 'application/json-patch+json';\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(jsonPatchOperationBeta, localVarRequestOptions, configuration);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n };\n};\nexports.OrgConfigBetaApiAxiosParamCreator = OrgConfigBetaApiAxiosParamCreator;\n/**\n * OrgConfigBetaApi - functional programming interface\n * @export\n */\nvar OrgConfigBetaApiFp = function (configuration) {\n var localVarAxiosParamCreator = (0, exports.OrgConfigBetaApiAxiosParamCreator)(configuration);\n return {\n /**\n * Get org configuration with only external (org admin) accessible properties for the current org.\n * @summary Get Org configuration settings\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getOrgConfig: function (axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.getOrgConfig(axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * Get a list of valid time zones that can be set in org configurations.\n * @summary Get list of time zones\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getValidTimeZones: function (axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.getValidTimeZones(axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * Patch configuration of the current org using http://jsonpatch.com/ syntax. Commonly used for changing the time zone of an org.\n * @summary Patch an Org configuration property\n * @param {Array} jsonPatchOperationBeta A list of schema attribute update operations according to the [JSON Patch](https://tools.ietf.org/html/rfc6902) standard.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n patchOrgConfig: function (jsonPatchOperationBeta, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.patchOrgConfig(jsonPatchOperationBeta, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n };\n};\nexports.OrgConfigBetaApiFp = OrgConfigBetaApiFp;\n/**\n * OrgConfigBetaApi - factory interface\n * @export\n */\nvar OrgConfigBetaApiFactory = function (configuration, basePath, axios) {\n var localVarFp = (0, exports.OrgConfigBetaApiFp)(configuration);\n return {\n /**\n * Get org configuration with only external (org admin) accessible properties for the current org.\n * @summary Get Org configuration settings\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getOrgConfig: function (axiosOptions) {\n return localVarFp.getOrgConfig(axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * Get a list of valid time zones that can be set in org configurations.\n * @summary Get list of time zones\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getValidTimeZones: function (axiosOptions) {\n return localVarFp.getValidTimeZones(axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * Patch configuration of the current org using http://jsonpatch.com/ syntax. Commonly used for changing the time zone of an org.\n * @summary Patch an Org configuration property\n * @param {Array} jsonPatchOperationBeta A list of schema attribute update operations according to the [JSON Patch](https://tools.ietf.org/html/rfc6902) standard.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n patchOrgConfig: function (jsonPatchOperationBeta, axiosOptions) {\n return localVarFp.patchOrgConfig(jsonPatchOperationBeta, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n };\n};\nexports.OrgConfigBetaApiFactory = OrgConfigBetaApiFactory;\n/**\n * OrgConfigBetaApi - object-oriented interface\n * @export\n * @class OrgConfigBetaApi\n * @extends {BaseAPI}\n */\nvar OrgConfigBetaApi = /** @class */ (function (_super) {\n __extends(OrgConfigBetaApi, _super);\n function OrgConfigBetaApi() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n * Get org configuration with only external (org admin) accessible properties for the current org.\n * @summary Get Org configuration settings\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof OrgConfigBetaApi\n */\n OrgConfigBetaApi.prototype.getOrgConfig = function (axiosOptions) {\n var _this = this;\n return (0, exports.OrgConfigBetaApiFp)(this.configuration).getOrgConfig(axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * Get a list of valid time zones that can be set in org configurations.\n * @summary Get list of time zones\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof OrgConfigBetaApi\n */\n OrgConfigBetaApi.prototype.getValidTimeZones = function (axiosOptions) {\n var _this = this;\n return (0, exports.OrgConfigBetaApiFp)(this.configuration).getValidTimeZones(axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * Patch configuration of the current org using http://jsonpatch.com/ syntax. Commonly used for changing the time zone of an org.\n * @summary Patch an Org configuration property\n * @param {OrgConfigBetaApiPatchOrgConfigRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof OrgConfigBetaApi\n */\n OrgConfigBetaApi.prototype.patchOrgConfig = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.OrgConfigBetaApiFp)(this.configuration).patchOrgConfig(requestParameters.jsonPatchOperationBeta, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n return OrgConfigBetaApi;\n}(base_1.BaseAPI));\nexports.OrgConfigBetaApi = OrgConfigBetaApi;\n/**\n * PasswordConfigurationBetaApi - axios parameter creator\n * @export\n */\nvar PasswordConfigurationBetaApiAxiosParamCreator = function (configuration) {\n var _this = this;\n return {\n /**\n * This API creates the password org config. Unspecified fields will use default value. To be able to use the custom password instructions, you must set the `customInstructionsEnabled` field to \\\"true\\\". Requires ORG_ADMIN, API role or authorization scope of \\'idn:password-org-config:write\\'\n * @summary Create Password Org Config\n * @param {PasswordOrgConfigBeta} passwordOrgConfigBeta\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n createPasswordOrgConfig: function (passwordOrgConfigBeta, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'passwordOrgConfigBeta' is not null or undefined\n (0, common_1.assertParamExists)('createPasswordOrgConfig', 'passwordOrgConfigBeta', passwordOrgConfigBeta);\n localVarPath = \"/password-org-config\";\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n localVarHeaderParameter['Content-Type'] = 'application/json';\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(passwordOrgConfigBeta, localVarRequestOptions, configuration);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This API returns the password org config . Requires ORG_ADMIN, API role or authorization scope of \\'idn:password-org-config:read\\'\n * @summary Get Password Org Config\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getPasswordOrgConfig: function (axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n localVarPath = \"/password-org-config\";\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This API updates the password org config for specified fields. Other fields will keep original value. You must set the `customInstructionsEnabled` field to \\\"true\\\" to be able to use custom password instructions. Requires ORG_ADMIN, API role or authorization scope of \\'idn:password-org-config:write\\'\n * @summary Update Password Org Config\n * @param {PasswordOrgConfigBeta} passwordOrgConfigBeta\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n putPasswordOrgConfig: function (passwordOrgConfigBeta, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'passwordOrgConfigBeta' is not null or undefined\n (0, common_1.assertParamExists)('putPasswordOrgConfig', 'passwordOrgConfigBeta', passwordOrgConfigBeta);\n localVarPath = \"/password-org-config\";\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'PUT' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n localVarHeaderParameter['Content-Type'] = 'application/json';\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(passwordOrgConfigBeta, localVarRequestOptions, configuration);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n };\n};\nexports.PasswordConfigurationBetaApiAxiosParamCreator = PasswordConfigurationBetaApiAxiosParamCreator;\n/**\n * PasswordConfigurationBetaApi - functional programming interface\n * @export\n */\nvar PasswordConfigurationBetaApiFp = function (configuration) {\n var localVarAxiosParamCreator = (0, exports.PasswordConfigurationBetaApiAxiosParamCreator)(configuration);\n return {\n /**\n * This API creates the password org config. Unspecified fields will use default value. To be able to use the custom password instructions, you must set the `customInstructionsEnabled` field to \\\"true\\\". Requires ORG_ADMIN, API role or authorization scope of \\'idn:password-org-config:write\\'\n * @summary Create Password Org Config\n * @param {PasswordOrgConfigBeta} passwordOrgConfigBeta\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n createPasswordOrgConfig: function (passwordOrgConfigBeta, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.createPasswordOrgConfig(passwordOrgConfigBeta, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This API returns the password org config . Requires ORG_ADMIN, API role or authorization scope of \\'idn:password-org-config:read\\'\n * @summary Get Password Org Config\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getPasswordOrgConfig: function (axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.getPasswordOrgConfig(axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This API updates the password org config for specified fields. Other fields will keep original value. You must set the `customInstructionsEnabled` field to \\\"true\\\" to be able to use custom password instructions. Requires ORG_ADMIN, API role or authorization scope of \\'idn:password-org-config:write\\'\n * @summary Update Password Org Config\n * @param {PasswordOrgConfigBeta} passwordOrgConfigBeta\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n putPasswordOrgConfig: function (passwordOrgConfigBeta, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.putPasswordOrgConfig(passwordOrgConfigBeta, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n };\n};\nexports.PasswordConfigurationBetaApiFp = PasswordConfigurationBetaApiFp;\n/**\n * PasswordConfigurationBetaApi - factory interface\n * @export\n */\nvar PasswordConfigurationBetaApiFactory = function (configuration, basePath, axios) {\n var localVarFp = (0, exports.PasswordConfigurationBetaApiFp)(configuration);\n return {\n /**\n * This API creates the password org config. Unspecified fields will use default value. To be able to use the custom password instructions, you must set the `customInstructionsEnabled` field to \\\"true\\\". Requires ORG_ADMIN, API role or authorization scope of \\'idn:password-org-config:write\\'\n * @summary Create Password Org Config\n * @param {PasswordOrgConfigBeta} passwordOrgConfigBeta\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n createPasswordOrgConfig: function (passwordOrgConfigBeta, axiosOptions) {\n return localVarFp.createPasswordOrgConfig(passwordOrgConfigBeta, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This API returns the password org config . Requires ORG_ADMIN, API role or authorization scope of \\'idn:password-org-config:read\\'\n * @summary Get Password Org Config\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getPasswordOrgConfig: function (axiosOptions) {\n return localVarFp.getPasswordOrgConfig(axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This API updates the password org config for specified fields. Other fields will keep original value. You must set the `customInstructionsEnabled` field to \\\"true\\\" to be able to use custom password instructions. Requires ORG_ADMIN, API role or authorization scope of \\'idn:password-org-config:write\\'\n * @summary Update Password Org Config\n * @param {PasswordOrgConfigBeta} passwordOrgConfigBeta\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n putPasswordOrgConfig: function (passwordOrgConfigBeta, axiosOptions) {\n return localVarFp.putPasswordOrgConfig(passwordOrgConfigBeta, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n };\n};\nexports.PasswordConfigurationBetaApiFactory = PasswordConfigurationBetaApiFactory;\n/**\n * PasswordConfigurationBetaApi - object-oriented interface\n * @export\n * @class PasswordConfigurationBetaApi\n * @extends {BaseAPI}\n */\nvar PasswordConfigurationBetaApi = /** @class */ (function (_super) {\n __extends(PasswordConfigurationBetaApi, _super);\n function PasswordConfigurationBetaApi() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n * This API creates the password org config. Unspecified fields will use default value. To be able to use the custom password instructions, you must set the `customInstructionsEnabled` field to \\\"true\\\". Requires ORG_ADMIN, API role or authorization scope of \\'idn:password-org-config:write\\'\n * @summary Create Password Org Config\n * @param {PasswordConfigurationBetaApiCreatePasswordOrgConfigRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof PasswordConfigurationBetaApi\n */\n PasswordConfigurationBetaApi.prototype.createPasswordOrgConfig = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.PasswordConfigurationBetaApiFp)(this.configuration).createPasswordOrgConfig(requestParameters.passwordOrgConfigBeta, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This API returns the password org config . Requires ORG_ADMIN, API role or authorization scope of \\'idn:password-org-config:read\\'\n * @summary Get Password Org Config\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof PasswordConfigurationBetaApi\n */\n PasswordConfigurationBetaApi.prototype.getPasswordOrgConfig = function (axiosOptions) {\n var _this = this;\n return (0, exports.PasswordConfigurationBetaApiFp)(this.configuration).getPasswordOrgConfig(axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This API updates the password org config for specified fields. Other fields will keep original value. You must set the `customInstructionsEnabled` field to \\\"true\\\" to be able to use custom password instructions. Requires ORG_ADMIN, API role or authorization scope of \\'idn:password-org-config:write\\'\n * @summary Update Password Org Config\n * @param {PasswordConfigurationBetaApiPutPasswordOrgConfigRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof PasswordConfigurationBetaApi\n */\n PasswordConfigurationBetaApi.prototype.putPasswordOrgConfig = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.PasswordConfigurationBetaApiFp)(this.configuration).putPasswordOrgConfig(requestParameters.passwordOrgConfigBeta, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n return PasswordConfigurationBetaApi;\n}(base_1.BaseAPI));\nexports.PasswordConfigurationBetaApi = PasswordConfigurationBetaApi;\n/**\n * PasswordDictionaryBetaApi - axios parameter creator\n * @export\n */\nvar PasswordDictionaryBetaApiAxiosParamCreator = function (configuration) {\n var _this = this;\n return {\n /**\n * This gets password dictionary for the organization. A token with ORG_ADMIN authority is required to call this API.\n * @summary Get Password Dictionary\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getPasswordDictionary: function (axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n localVarPath = \"/password-dictionary\";\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This updates password dictionary for the organization. A token with ORG_ADMIN authority is required to call this API.\n * @summary Update Password Dictionary\n * @param {any} [file]\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n updatePasswordDictionary: function (file, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, localVarFormParams, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n localVarPath = \"/password-dictionary\";\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'PUT' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n localVarFormParams = new ((configuration && configuration.formDataCtor) || FormData)();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n if (file !== undefined) {\n localVarFormParams.append('file', file);\n }\n localVarHeaderParameter['Content-Type'] = 'multipart/form-data';\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n localVarRequestOptions.data = localVarFormParams;\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n };\n};\nexports.PasswordDictionaryBetaApiAxiosParamCreator = PasswordDictionaryBetaApiAxiosParamCreator;\n/**\n * PasswordDictionaryBetaApi - functional programming interface\n * @export\n */\nvar PasswordDictionaryBetaApiFp = function (configuration) {\n var localVarAxiosParamCreator = (0, exports.PasswordDictionaryBetaApiAxiosParamCreator)(configuration);\n return {\n /**\n * This gets password dictionary for the organization. A token with ORG_ADMIN authority is required to call this API.\n * @summary Get Password Dictionary\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getPasswordDictionary: function (axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.getPasswordDictionary(axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This updates password dictionary for the organization. A token with ORG_ADMIN authority is required to call this API.\n * @summary Update Password Dictionary\n * @param {any} [file]\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n updatePasswordDictionary: function (file, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.updatePasswordDictionary(file, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n };\n};\nexports.PasswordDictionaryBetaApiFp = PasswordDictionaryBetaApiFp;\n/**\n * PasswordDictionaryBetaApi - factory interface\n * @export\n */\nvar PasswordDictionaryBetaApiFactory = function (configuration, basePath, axios) {\n var localVarFp = (0, exports.PasswordDictionaryBetaApiFp)(configuration);\n return {\n /**\n * This gets password dictionary for the organization. A token with ORG_ADMIN authority is required to call this API.\n * @summary Get Password Dictionary\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getPasswordDictionary: function (axiosOptions) {\n return localVarFp.getPasswordDictionary(axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This updates password dictionary for the organization. A token with ORG_ADMIN authority is required to call this API.\n * @summary Update Password Dictionary\n * @param {any} [file]\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n updatePasswordDictionary: function (file, axiosOptions) {\n return localVarFp.updatePasswordDictionary(file, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n };\n};\nexports.PasswordDictionaryBetaApiFactory = PasswordDictionaryBetaApiFactory;\n/**\n * PasswordDictionaryBetaApi - object-oriented interface\n * @export\n * @class PasswordDictionaryBetaApi\n * @extends {BaseAPI}\n */\nvar PasswordDictionaryBetaApi = /** @class */ (function (_super) {\n __extends(PasswordDictionaryBetaApi, _super);\n function PasswordDictionaryBetaApi() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n * This gets password dictionary for the organization. A token with ORG_ADMIN authority is required to call this API.\n * @summary Get Password Dictionary\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof PasswordDictionaryBetaApi\n */\n PasswordDictionaryBetaApi.prototype.getPasswordDictionary = function (axiosOptions) {\n var _this = this;\n return (0, exports.PasswordDictionaryBetaApiFp)(this.configuration).getPasswordDictionary(axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This updates password dictionary for the organization. A token with ORG_ADMIN authority is required to call this API.\n * @summary Update Password Dictionary\n * @param {PasswordDictionaryBetaApiUpdatePasswordDictionaryRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof PasswordDictionaryBetaApi\n */\n PasswordDictionaryBetaApi.prototype.updatePasswordDictionary = function (requestParameters, axiosOptions) {\n var _this = this;\n if (requestParameters === void 0) { requestParameters = {}; }\n return (0, exports.PasswordDictionaryBetaApiFp)(this.configuration).updatePasswordDictionary(requestParameters.file, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n return PasswordDictionaryBetaApi;\n}(base_1.BaseAPI));\nexports.PasswordDictionaryBetaApi = PasswordDictionaryBetaApi;\n/**\n * PasswordManagementBetaApi - axios parameter creator\n * @export\n */\nvar PasswordManagementBetaApiAxiosParamCreator = function (configuration) {\n var _this = this;\n return {\n /**\n * This API is used to generate a digit token for password management. Requires authorization scope of \\\"idn:password-digit-token:create\\\".\n * @summary Generate a digit token\n * @param {PasswordDigitTokenResetBeta} passwordDigitTokenResetBeta\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n generateDigitToken: function (passwordDigitTokenResetBeta, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'passwordDigitTokenResetBeta' is not null or undefined\n (0, common_1.assertParamExists)('generateDigitToken', 'passwordDigitTokenResetBeta', passwordDigitTokenResetBeta);\n localVarPath = \"/generate-password-reset-token/digit\";\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n localVarHeaderParameter['Content-Type'] = 'application/json';\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(passwordDigitTokenResetBeta, localVarRequestOptions, configuration);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This API returns the status of a password change request. A token with identity owner or trusted API client application authority is required to call this API.\n * @summary Get Password Change Request Status\n * @param {string} id\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getIdentityPasswordChangeStatus: function (id, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'id' is not null or undefined\n (0, common_1.assertParamExists)('getIdentityPasswordChangeStatus', 'id', id);\n localVarPath = \"/password-change-status/{id}\"\n .replace(\"{\".concat(\"id\", \"}\"), encodeURIComponent(String(id)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This API is used to query password related information. A token with [API authority](https://developer.sailpoint.com/idn/api/authentication#client-credentials-grant-flow) is required to call this API. \\\"API authority\\\" refers to a token that only has the \\\"client_credentials\\\" grant type, and therefore no user context. A [personal access token](https://developer.sailpoint.com/idn/api/authentication#personal-access-tokens) or a token generated with the [authorization_code](https://developer.sailpoint.com/idn/api/authentication#authorization-code-grant-flow) grant type will **NOT** work on this endpoint, and a `403 Forbidden` response will be returned.\n * @summary Query Password Info\n * @param {PasswordInfoQueryDTOBeta} passwordInfoQueryDTOBeta\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n queryPasswordInfo: function (passwordInfoQueryDTOBeta, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'passwordInfoQueryDTOBeta' is not null or undefined\n (0, common_1.assertParamExists)('queryPasswordInfo', 'passwordInfoQueryDTOBeta', passwordInfoQueryDTOBeta);\n localVarPath = \"/query-password-info\";\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n localVarHeaderParameter['Content-Type'] = 'application/json';\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(passwordInfoQueryDTOBeta, localVarRequestOptions, configuration);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This API is used to set a password for an identity. An identity can change their own password (as well as any of their accounts\\' passwords) if they use a token generated by their IDN user, such as a [personal access token](https://developer.sailpoint.com/idn/api/authentication#personal-access-tokens) or [\\\"authorization_code\\\" derived OAuth token](https://developer.sailpoint.com/idn/api/authentication#authorization-code-grant-flow). A token with [API authority](https://developer.sailpoint.com/idn/api/authentication#client-credentials-grant-flow) can be used to change **any** identity\\'s password or the password of any of the identity\\'s accounts. \\\"API authority\\\" refers to a token that only has the \\\"client_credentials\\\" grant type. You can use this endpoint to generate an `encryptedPassword` (RSA encrypted using publicKey). To do so, follow these steps: 1. Use [Query Password Info](https://developer.sailpoint.com/idn/api/v3/query-password-info) to get the following information: `identityId`, `sourceId`, `publicKeyId`, `publicKey`, `accounts`, and `policies`. 2. Choose an account from the previous response that you will provide as an `accountId` in your request to set an encrypted password. 3. Use [Set Identity\\'s Password](https://developer.sailpoint.com/idn/api/v3/set-password) and provide the information you got from your earlier query. Then add this code to your request to get the encrypted password: ```java import javax.crypto.Cipher; import java.security.KeyFactory; import java.security.PublicKey; import java.security.spec.X509EncodedKeySpec; import java util.Base64; String encrypt(String publicKey, String toEncrypt) throws Exception { byte[] publicKeyBytes = Base64.getDecoder().decode(publicKey); byte[] encryptedBytes = encryptRsa(publicKeyBytes, toEncrypt.getBytes(\\\"UTF-8\\\")); return Base64.getEncoder().encodeToString(encryptedBytes); } private byte[] encryptRsa(byte[] publicKeyBytes, byte[] toEncryptBytes) throws Exception { PublicKey key = KeyFactory.getInstance(\\\"RSA\\\").generatePublic(new X509EncodedKeySpec(publicKeyBytes)); String transformation = \\\"RSA/ECB/PKCS1Padding\\\"; Cipher cipher = Cipher.getInstance(transformation); cipher.init(1, key); return cipher.doFinal(toEncryptBytes); } ``` In this example, `toEncrypt` refers to the plain text password you are setting and then encrypting, and the `publicKey` refers to the publicKey you got from the first request you sent. You can then use [Get Password Change Request Status](https://developer.sailpoint.com/idn/api/v3/get-password-change-status) to check the password change request status. To do so, you must provide the `requestId` from your earlier request to set the password.\n * @summary Set Identity\\'s Password\n * @param {PasswordChangeRequestBeta} passwordChangeRequestBeta\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n setIdentityPassword: function (passwordChangeRequestBeta, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'passwordChangeRequestBeta' is not null or undefined\n (0, common_1.assertParamExists)('setIdentityPassword', 'passwordChangeRequestBeta', passwordChangeRequestBeta);\n localVarPath = \"/set-password\";\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n localVarHeaderParameter['Content-Type'] = 'application/json';\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(passwordChangeRequestBeta, localVarRequestOptions, configuration);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n };\n};\nexports.PasswordManagementBetaApiAxiosParamCreator = PasswordManagementBetaApiAxiosParamCreator;\n/**\n * PasswordManagementBetaApi - functional programming interface\n * @export\n */\nvar PasswordManagementBetaApiFp = function (configuration) {\n var localVarAxiosParamCreator = (0, exports.PasswordManagementBetaApiAxiosParamCreator)(configuration);\n return {\n /**\n * This API is used to generate a digit token for password management. Requires authorization scope of \\\"idn:password-digit-token:create\\\".\n * @summary Generate a digit token\n * @param {PasswordDigitTokenResetBeta} passwordDigitTokenResetBeta\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n generateDigitToken: function (passwordDigitTokenResetBeta, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.generateDigitToken(passwordDigitTokenResetBeta, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This API returns the status of a password change request. A token with identity owner or trusted API client application authority is required to call this API.\n * @summary Get Password Change Request Status\n * @param {string} id\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getIdentityPasswordChangeStatus: function (id, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.getIdentityPasswordChangeStatus(id, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This API is used to query password related information. A token with [API authority](https://developer.sailpoint.com/idn/api/authentication#client-credentials-grant-flow) is required to call this API. \\\"API authority\\\" refers to a token that only has the \\\"client_credentials\\\" grant type, and therefore no user context. A [personal access token](https://developer.sailpoint.com/idn/api/authentication#personal-access-tokens) or a token generated with the [authorization_code](https://developer.sailpoint.com/idn/api/authentication#authorization-code-grant-flow) grant type will **NOT** work on this endpoint, and a `403 Forbidden` response will be returned.\n * @summary Query Password Info\n * @param {PasswordInfoQueryDTOBeta} passwordInfoQueryDTOBeta\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n queryPasswordInfo: function (passwordInfoQueryDTOBeta, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.queryPasswordInfo(passwordInfoQueryDTOBeta, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This API is used to set a password for an identity. An identity can change their own password (as well as any of their accounts\\' passwords) if they use a token generated by their IDN user, such as a [personal access token](https://developer.sailpoint.com/idn/api/authentication#personal-access-tokens) or [\\\"authorization_code\\\" derived OAuth token](https://developer.sailpoint.com/idn/api/authentication#authorization-code-grant-flow). A token with [API authority](https://developer.sailpoint.com/idn/api/authentication#client-credentials-grant-flow) can be used to change **any** identity\\'s password or the password of any of the identity\\'s accounts. \\\"API authority\\\" refers to a token that only has the \\\"client_credentials\\\" grant type. You can use this endpoint to generate an `encryptedPassword` (RSA encrypted using publicKey). To do so, follow these steps: 1. Use [Query Password Info](https://developer.sailpoint.com/idn/api/v3/query-password-info) to get the following information: `identityId`, `sourceId`, `publicKeyId`, `publicKey`, `accounts`, and `policies`. 2. Choose an account from the previous response that you will provide as an `accountId` in your request to set an encrypted password. 3. Use [Set Identity\\'s Password](https://developer.sailpoint.com/idn/api/v3/set-password) and provide the information you got from your earlier query. Then add this code to your request to get the encrypted password: ```java import javax.crypto.Cipher; import java.security.KeyFactory; import java.security.PublicKey; import java.security.spec.X509EncodedKeySpec; import java util.Base64; String encrypt(String publicKey, String toEncrypt) throws Exception { byte[] publicKeyBytes = Base64.getDecoder().decode(publicKey); byte[] encryptedBytes = encryptRsa(publicKeyBytes, toEncrypt.getBytes(\\\"UTF-8\\\")); return Base64.getEncoder().encodeToString(encryptedBytes); } private byte[] encryptRsa(byte[] publicKeyBytes, byte[] toEncryptBytes) throws Exception { PublicKey key = KeyFactory.getInstance(\\\"RSA\\\").generatePublic(new X509EncodedKeySpec(publicKeyBytes)); String transformation = \\\"RSA/ECB/PKCS1Padding\\\"; Cipher cipher = Cipher.getInstance(transformation); cipher.init(1, key); return cipher.doFinal(toEncryptBytes); } ``` In this example, `toEncrypt` refers to the plain text password you are setting and then encrypting, and the `publicKey` refers to the publicKey you got from the first request you sent. You can then use [Get Password Change Request Status](https://developer.sailpoint.com/idn/api/v3/get-password-change-status) to check the password change request status. To do so, you must provide the `requestId` from your earlier request to set the password.\n * @summary Set Identity\\'s Password\n * @param {PasswordChangeRequestBeta} passwordChangeRequestBeta\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n setIdentityPassword: function (passwordChangeRequestBeta, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.setIdentityPassword(passwordChangeRequestBeta, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n };\n};\nexports.PasswordManagementBetaApiFp = PasswordManagementBetaApiFp;\n/**\n * PasswordManagementBetaApi - factory interface\n * @export\n */\nvar PasswordManagementBetaApiFactory = function (configuration, basePath, axios) {\n var localVarFp = (0, exports.PasswordManagementBetaApiFp)(configuration);\n return {\n /**\n * This API is used to generate a digit token for password management. Requires authorization scope of \\\"idn:password-digit-token:create\\\".\n * @summary Generate a digit token\n * @param {PasswordDigitTokenResetBeta} passwordDigitTokenResetBeta\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n generateDigitToken: function (passwordDigitTokenResetBeta, axiosOptions) {\n return localVarFp.generateDigitToken(passwordDigitTokenResetBeta, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This API returns the status of a password change request. A token with identity owner or trusted API client application authority is required to call this API.\n * @summary Get Password Change Request Status\n * @param {string} id\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getIdentityPasswordChangeStatus: function (id, axiosOptions) {\n return localVarFp.getIdentityPasswordChangeStatus(id, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This API is used to query password related information. A token with [API authority](https://developer.sailpoint.com/idn/api/authentication#client-credentials-grant-flow) is required to call this API. \\\"API authority\\\" refers to a token that only has the \\\"client_credentials\\\" grant type, and therefore no user context. A [personal access token](https://developer.sailpoint.com/idn/api/authentication#personal-access-tokens) or a token generated with the [authorization_code](https://developer.sailpoint.com/idn/api/authentication#authorization-code-grant-flow) grant type will **NOT** work on this endpoint, and a `403 Forbidden` response will be returned.\n * @summary Query Password Info\n * @param {PasswordInfoQueryDTOBeta} passwordInfoQueryDTOBeta\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n queryPasswordInfo: function (passwordInfoQueryDTOBeta, axiosOptions) {\n return localVarFp.queryPasswordInfo(passwordInfoQueryDTOBeta, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This API is used to set a password for an identity. An identity can change their own password (as well as any of their accounts\\' passwords) if they use a token generated by their IDN user, such as a [personal access token](https://developer.sailpoint.com/idn/api/authentication#personal-access-tokens) or [\\\"authorization_code\\\" derived OAuth token](https://developer.sailpoint.com/idn/api/authentication#authorization-code-grant-flow). A token with [API authority](https://developer.sailpoint.com/idn/api/authentication#client-credentials-grant-flow) can be used to change **any** identity\\'s password or the password of any of the identity\\'s accounts. \\\"API authority\\\" refers to a token that only has the \\\"client_credentials\\\" grant type. You can use this endpoint to generate an `encryptedPassword` (RSA encrypted using publicKey). To do so, follow these steps: 1. Use [Query Password Info](https://developer.sailpoint.com/idn/api/v3/query-password-info) to get the following information: `identityId`, `sourceId`, `publicKeyId`, `publicKey`, `accounts`, and `policies`. 2. Choose an account from the previous response that you will provide as an `accountId` in your request to set an encrypted password. 3. Use [Set Identity\\'s Password](https://developer.sailpoint.com/idn/api/v3/set-password) and provide the information you got from your earlier query. Then add this code to your request to get the encrypted password: ```java import javax.crypto.Cipher; import java.security.KeyFactory; import java.security.PublicKey; import java.security.spec.X509EncodedKeySpec; import java util.Base64; String encrypt(String publicKey, String toEncrypt) throws Exception { byte[] publicKeyBytes = Base64.getDecoder().decode(publicKey); byte[] encryptedBytes = encryptRsa(publicKeyBytes, toEncrypt.getBytes(\\\"UTF-8\\\")); return Base64.getEncoder().encodeToString(encryptedBytes); } private byte[] encryptRsa(byte[] publicKeyBytes, byte[] toEncryptBytes) throws Exception { PublicKey key = KeyFactory.getInstance(\\\"RSA\\\").generatePublic(new X509EncodedKeySpec(publicKeyBytes)); String transformation = \\\"RSA/ECB/PKCS1Padding\\\"; Cipher cipher = Cipher.getInstance(transformation); cipher.init(1, key); return cipher.doFinal(toEncryptBytes); } ``` In this example, `toEncrypt` refers to the plain text password you are setting and then encrypting, and the `publicKey` refers to the publicKey you got from the first request you sent. You can then use [Get Password Change Request Status](https://developer.sailpoint.com/idn/api/v3/get-password-change-status) to check the password change request status. To do so, you must provide the `requestId` from your earlier request to set the password.\n * @summary Set Identity\\'s Password\n * @param {PasswordChangeRequestBeta} passwordChangeRequestBeta\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n setIdentityPassword: function (passwordChangeRequestBeta, axiosOptions) {\n return localVarFp.setIdentityPassword(passwordChangeRequestBeta, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n };\n};\nexports.PasswordManagementBetaApiFactory = PasswordManagementBetaApiFactory;\n/**\n * PasswordManagementBetaApi - object-oriented interface\n * @export\n * @class PasswordManagementBetaApi\n * @extends {BaseAPI}\n */\nvar PasswordManagementBetaApi = /** @class */ (function (_super) {\n __extends(PasswordManagementBetaApi, _super);\n function PasswordManagementBetaApi() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n * This API is used to generate a digit token for password management. Requires authorization scope of \\\"idn:password-digit-token:create\\\".\n * @summary Generate a digit token\n * @param {PasswordManagementBetaApiGenerateDigitTokenRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof PasswordManagementBetaApi\n */\n PasswordManagementBetaApi.prototype.generateDigitToken = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.PasswordManagementBetaApiFp)(this.configuration).generateDigitToken(requestParameters.passwordDigitTokenResetBeta, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This API returns the status of a password change request. A token with identity owner or trusted API client application authority is required to call this API.\n * @summary Get Password Change Request Status\n * @param {PasswordManagementBetaApiGetIdentityPasswordChangeStatusRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof PasswordManagementBetaApi\n */\n PasswordManagementBetaApi.prototype.getIdentityPasswordChangeStatus = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.PasswordManagementBetaApiFp)(this.configuration).getIdentityPasswordChangeStatus(requestParameters.id, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This API is used to query password related information. A token with [API authority](https://developer.sailpoint.com/idn/api/authentication#client-credentials-grant-flow) is required to call this API. \\\"API authority\\\" refers to a token that only has the \\\"client_credentials\\\" grant type, and therefore no user context. A [personal access token](https://developer.sailpoint.com/idn/api/authentication#personal-access-tokens) or a token generated with the [authorization_code](https://developer.sailpoint.com/idn/api/authentication#authorization-code-grant-flow) grant type will **NOT** work on this endpoint, and a `403 Forbidden` response will be returned.\n * @summary Query Password Info\n * @param {PasswordManagementBetaApiQueryPasswordInfoRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof PasswordManagementBetaApi\n */\n PasswordManagementBetaApi.prototype.queryPasswordInfo = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.PasswordManagementBetaApiFp)(this.configuration).queryPasswordInfo(requestParameters.passwordInfoQueryDTOBeta, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This API is used to set a password for an identity. An identity can change their own password (as well as any of their accounts\\' passwords) if they use a token generated by their IDN user, such as a [personal access token](https://developer.sailpoint.com/idn/api/authentication#personal-access-tokens) or [\\\"authorization_code\\\" derived OAuth token](https://developer.sailpoint.com/idn/api/authentication#authorization-code-grant-flow). A token with [API authority](https://developer.sailpoint.com/idn/api/authentication#client-credentials-grant-flow) can be used to change **any** identity\\'s password or the password of any of the identity\\'s accounts. \\\"API authority\\\" refers to a token that only has the \\\"client_credentials\\\" grant type. You can use this endpoint to generate an `encryptedPassword` (RSA encrypted using publicKey). To do so, follow these steps: 1. Use [Query Password Info](https://developer.sailpoint.com/idn/api/v3/query-password-info) to get the following information: `identityId`, `sourceId`, `publicKeyId`, `publicKey`, `accounts`, and `policies`. 2. Choose an account from the previous response that you will provide as an `accountId` in your request to set an encrypted password. 3. Use [Set Identity\\'s Password](https://developer.sailpoint.com/idn/api/v3/set-password) and provide the information you got from your earlier query. Then add this code to your request to get the encrypted password: ```java import javax.crypto.Cipher; import java.security.KeyFactory; import java.security.PublicKey; import java.security.spec.X509EncodedKeySpec; import java util.Base64; String encrypt(String publicKey, String toEncrypt) throws Exception { byte[] publicKeyBytes = Base64.getDecoder().decode(publicKey); byte[] encryptedBytes = encryptRsa(publicKeyBytes, toEncrypt.getBytes(\\\"UTF-8\\\")); return Base64.getEncoder().encodeToString(encryptedBytes); } private byte[] encryptRsa(byte[] publicKeyBytes, byte[] toEncryptBytes) throws Exception { PublicKey key = KeyFactory.getInstance(\\\"RSA\\\").generatePublic(new X509EncodedKeySpec(publicKeyBytes)); String transformation = \\\"RSA/ECB/PKCS1Padding\\\"; Cipher cipher = Cipher.getInstance(transformation); cipher.init(1, key); return cipher.doFinal(toEncryptBytes); } ``` In this example, `toEncrypt` refers to the plain text password you are setting and then encrypting, and the `publicKey` refers to the publicKey you got from the first request you sent. You can then use [Get Password Change Request Status](https://developer.sailpoint.com/idn/api/v3/get-password-change-status) to check the password change request status. To do so, you must provide the `requestId` from your earlier request to set the password.\n * @summary Set Identity\\'s Password\n * @param {PasswordManagementBetaApiSetIdentityPasswordRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof PasswordManagementBetaApi\n */\n PasswordManagementBetaApi.prototype.setIdentityPassword = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.PasswordManagementBetaApiFp)(this.configuration).setIdentityPassword(requestParameters.passwordChangeRequestBeta, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n return PasswordManagementBetaApi;\n}(base_1.BaseAPI));\nexports.PasswordManagementBetaApi = PasswordManagementBetaApi;\n/**\n * PasswordSyncGroupsBetaApi - axios parameter creator\n * @export\n */\nvar PasswordSyncGroupsBetaApiAxiosParamCreator = function (configuration) {\n var _this = this;\n return {\n /**\n * This API creates a password sync group based on the specifications provided. A token with ORG_ADMIN authority is required to call this API.\n * @summary Create Password Sync Group\n * @param {PasswordSyncGroupBeta} passwordSyncGroupBeta\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n createPasswordSyncGroup: function (passwordSyncGroupBeta, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'passwordSyncGroupBeta' is not null or undefined\n (0, common_1.assertParamExists)('createPasswordSyncGroup', 'passwordSyncGroupBeta', passwordSyncGroupBeta);\n localVarPath = \"/password-sync-groups\";\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n localVarHeaderParameter['Content-Type'] = 'application/json';\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(passwordSyncGroupBeta, localVarRequestOptions, configuration);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This API deletes the specified password sync group. A token with ORG_ADMIN authority is required to call this API.\n * @summary Delete Password Sync Group by ID\n * @param {string} id The ID of password sync group to delete.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n deletePasswordSyncGroup: function (id, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'id' is not null or undefined\n (0, common_1.assertParamExists)('deletePasswordSyncGroup', 'id', id);\n localVarPath = \"/password-sync-groups/{id}\"\n .replace(\"{\".concat(\"id\", \"}\"), encodeURIComponent(String(id)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'DELETE' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This API returns the sync group for the specified ID. A token with ORG_ADMIN authority is required to call this API.\n * @summary Get Password Sync Group by ID\n * @param {string} id The ID of password sync group to retrieve.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getPasswordSyncGroup: function (id, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'id' is not null or undefined\n (0, common_1.assertParamExists)('getPasswordSyncGroup', 'id', id);\n localVarPath = \"/password-sync-groups/{id}\"\n .replace(\"{\".concat(\"id\", \"}\"), encodeURIComponent(String(id)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This API returns a list of password sync groups. A token with ORG_ADMIN authority is required to call this API.\n * @summary Get Password Sync Group List\n * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getPasswordSyncGroups: function (limit, offset, count, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n localVarPath = \"/password-sync-groups\";\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n if (limit !== undefined) {\n localVarQueryParameter['limit'] = limit;\n }\n if (offset !== undefined) {\n localVarQueryParameter['offset'] = offset;\n }\n if (count !== undefined) {\n localVarQueryParameter['count'] = count;\n }\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This API updates the specified password sync group. A token with ORG_ADMIN authority is required to call this API.\n * @summary Update Password Sync Group by ID\n * @param {string} id The ID of password sync group to update.\n * @param {PasswordSyncGroupBeta} passwordSyncGroupBeta\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n updatePasswordSyncGroup: function (id, passwordSyncGroupBeta, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'id' is not null or undefined\n (0, common_1.assertParamExists)('updatePasswordSyncGroup', 'id', id);\n // verify required parameter 'passwordSyncGroupBeta' is not null or undefined\n (0, common_1.assertParamExists)('updatePasswordSyncGroup', 'passwordSyncGroupBeta', passwordSyncGroupBeta);\n localVarPath = \"/password-sync-groups/{id}\"\n .replace(\"{\".concat(\"id\", \"}\"), encodeURIComponent(String(id)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'PUT' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n localVarHeaderParameter['Content-Type'] = 'application/json';\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(passwordSyncGroupBeta, localVarRequestOptions, configuration);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n };\n};\nexports.PasswordSyncGroupsBetaApiAxiosParamCreator = PasswordSyncGroupsBetaApiAxiosParamCreator;\n/**\n * PasswordSyncGroupsBetaApi - functional programming interface\n * @export\n */\nvar PasswordSyncGroupsBetaApiFp = function (configuration) {\n var localVarAxiosParamCreator = (0, exports.PasswordSyncGroupsBetaApiAxiosParamCreator)(configuration);\n return {\n /**\n * This API creates a password sync group based on the specifications provided. A token with ORG_ADMIN authority is required to call this API.\n * @summary Create Password Sync Group\n * @param {PasswordSyncGroupBeta} passwordSyncGroupBeta\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n createPasswordSyncGroup: function (passwordSyncGroupBeta, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.createPasswordSyncGroup(passwordSyncGroupBeta, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This API deletes the specified password sync group. A token with ORG_ADMIN authority is required to call this API.\n * @summary Delete Password Sync Group by ID\n * @param {string} id The ID of password sync group to delete.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n deletePasswordSyncGroup: function (id, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.deletePasswordSyncGroup(id, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This API returns the sync group for the specified ID. A token with ORG_ADMIN authority is required to call this API.\n * @summary Get Password Sync Group by ID\n * @param {string} id The ID of password sync group to retrieve.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getPasswordSyncGroup: function (id, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.getPasswordSyncGroup(id, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This API returns a list of password sync groups. A token with ORG_ADMIN authority is required to call this API.\n * @summary Get Password Sync Group List\n * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getPasswordSyncGroups: function (limit, offset, count, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.getPasswordSyncGroups(limit, offset, count, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This API updates the specified password sync group. A token with ORG_ADMIN authority is required to call this API.\n * @summary Update Password Sync Group by ID\n * @param {string} id The ID of password sync group to update.\n * @param {PasswordSyncGroupBeta} passwordSyncGroupBeta\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n updatePasswordSyncGroup: function (id, passwordSyncGroupBeta, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.updatePasswordSyncGroup(id, passwordSyncGroupBeta, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n };\n};\nexports.PasswordSyncGroupsBetaApiFp = PasswordSyncGroupsBetaApiFp;\n/**\n * PasswordSyncGroupsBetaApi - factory interface\n * @export\n */\nvar PasswordSyncGroupsBetaApiFactory = function (configuration, basePath, axios) {\n var localVarFp = (0, exports.PasswordSyncGroupsBetaApiFp)(configuration);\n return {\n /**\n * This API creates a password sync group based on the specifications provided. A token with ORG_ADMIN authority is required to call this API.\n * @summary Create Password Sync Group\n * @param {PasswordSyncGroupBeta} passwordSyncGroupBeta\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n createPasswordSyncGroup: function (passwordSyncGroupBeta, axiosOptions) {\n return localVarFp.createPasswordSyncGroup(passwordSyncGroupBeta, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This API deletes the specified password sync group. A token with ORG_ADMIN authority is required to call this API.\n * @summary Delete Password Sync Group by ID\n * @param {string} id The ID of password sync group to delete.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n deletePasswordSyncGroup: function (id, axiosOptions) {\n return localVarFp.deletePasswordSyncGroup(id, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This API returns the sync group for the specified ID. A token with ORG_ADMIN authority is required to call this API.\n * @summary Get Password Sync Group by ID\n * @param {string} id The ID of password sync group to retrieve.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getPasswordSyncGroup: function (id, axiosOptions) {\n return localVarFp.getPasswordSyncGroup(id, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This API returns a list of password sync groups. A token with ORG_ADMIN authority is required to call this API.\n * @summary Get Password Sync Group List\n * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getPasswordSyncGroups: function (limit, offset, count, axiosOptions) {\n return localVarFp.getPasswordSyncGroups(limit, offset, count, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This API updates the specified password sync group. A token with ORG_ADMIN authority is required to call this API.\n * @summary Update Password Sync Group by ID\n * @param {string} id The ID of password sync group to update.\n * @param {PasswordSyncGroupBeta} passwordSyncGroupBeta\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n updatePasswordSyncGroup: function (id, passwordSyncGroupBeta, axiosOptions) {\n return localVarFp.updatePasswordSyncGroup(id, passwordSyncGroupBeta, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n };\n};\nexports.PasswordSyncGroupsBetaApiFactory = PasswordSyncGroupsBetaApiFactory;\n/**\n * PasswordSyncGroupsBetaApi - object-oriented interface\n * @export\n * @class PasswordSyncGroupsBetaApi\n * @extends {BaseAPI}\n */\nvar PasswordSyncGroupsBetaApi = /** @class */ (function (_super) {\n __extends(PasswordSyncGroupsBetaApi, _super);\n function PasswordSyncGroupsBetaApi() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n * This API creates a password sync group based on the specifications provided. A token with ORG_ADMIN authority is required to call this API.\n * @summary Create Password Sync Group\n * @param {PasswordSyncGroupsBetaApiCreatePasswordSyncGroupRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof PasswordSyncGroupsBetaApi\n */\n PasswordSyncGroupsBetaApi.prototype.createPasswordSyncGroup = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.PasswordSyncGroupsBetaApiFp)(this.configuration).createPasswordSyncGroup(requestParameters.passwordSyncGroupBeta, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This API deletes the specified password sync group. A token with ORG_ADMIN authority is required to call this API.\n * @summary Delete Password Sync Group by ID\n * @param {PasswordSyncGroupsBetaApiDeletePasswordSyncGroupRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof PasswordSyncGroupsBetaApi\n */\n PasswordSyncGroupsBetaApi.prototype.deletePasswordSyncGroup = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.PasswordSyncGroupsBetaApiFp)(this.configuration).deletePasswordSyncGroup(requestParameters.id, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This API returns the sync group for the specified ID. A token with ORG_ADMIN authority is required to call this API.\n * @summary Get Password Sync Group by ID\n * @param {PasswordSyncGroupsBetaApiGetPasswordSyncGroupRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof PasswordSyncGroupsBetaApi\n */\n PasswordSyncGroupsBetaApi.prototype.getPasswordSyncGroup = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.PasswordSyncGroupsBetaApiFp)(this.configuration).getPasswordSyncGroup(requestParameters.id, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This API returns a list of password sync groups. A token with ORG_ADMIN authority is required to call this API.\n * @summary Get Password Sync Group List\n * @param {PasswordSyncGroupsBetaApiGetPasswordSyncGroupsRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof PasswordSyncGroupsBetaApi\n */\n PasswordSyncGroupsBetaApi.prototype.getPasswordSyncGroups = function (requestParameters, axiosOptions) {\n var _this = this;\n if (requestParameters === void 0) { requestParameters = {}; }\n return (0, exports.PasswordSyncGroupsBetaApiFp)(this.configuration).getPasswordSyncGroups(requestParameters.limit, requestParameters.offset, requestParameters.count, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This API updates the specified password sync group. A token with ORG_ADMIN authority is required to call this API.\n * @summary Update Password Sync Group by ID\n * @param {PasswordSyncGroupsBetaApiUpdatePasswordSyncGroupRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof PasswordSyncGroupsBetaApi\n */\n PasswordSyncGroupsBetaApi.prototype.updatePasswordSyncGroup = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.PasswordSyncGroupsBetaApiFp)(this.configuration).updatePasswordSyncGroup(requestParameters.id, requestParameters.passwordSyncGroupBeta, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n return PasswordSyncGroupsBetaApi;\n}(base_1.BaseAPI));\nexports.PasswordSyncGroupsBetaApi = PasswordSyncGroupsBetaApi;\n/**\n * PersonalAccessTokensBetaApi - axios parameter creator\n * @export\n */\nvar PersonalAccessTokensBetaApiAxiosParamCreator = function (configuration) {\n var _this = this;\n return {\n /**\n * This creates a personal access token.\n * @summary Create Personal Access Token\n * @param {CreatePersonalAccessTokenRequestBeta} createPersonalAccessTokenRequestBeta Name and scope of personal access token.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n createPersonalAccessToken: function (createPersonalAccessTokenRequestBeta, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'createPersonalAccessTokenRequestBeta' is not null or undefined\n (0, common_1.assertParamExists)('createPersonalAccessToken', 'createPersonalAccessTokenRequestBeta', createPersonalAccessTokenRequestBeta);\n localVarPath = \"/personal-access-tokens\";\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n localVarHeaderParameter['Content-Type'] = 'application/json';\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(createPersonalAccessTokenRequestBeta, localVarRequestOptions, configuration);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This deletes a personal access token.\n * @summary Delete Personal Access Token\n * @param {string} id The personal access token id\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n deletePersonalAccessToken: function (id, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'id' is not null or undefined\n (0, common_1.assertParamExists)('deletePersonalAccessToken', 'id', id);\n localVarPath = \"/personal-access-tokens/{id}\"\n .replace(\"{\".concat(\"id\", \"}\"), encodeURIComponent(String(id)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'DELETE' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This gets a collection of personal access tokens associated with the optional `owner-id`. query parameter. If the `owner-id` query parameter is omitted, all personal access tokens for a tenant will be retrieved, but the caller must have the \\'idn:all-personal-access-tokens:read\\' right.\n * @summary List Personal Access Tokens\n * @param {string} [ownerId] The identity ID of the owner whose personal access tokens should be listed. If \\"me\\", the caller should have the following right: \\'idn:my-personal-access-tokens:read\\' If an actual owner ID or if the `owner-id` parameter is omitted in the request, the caller should have the following right: \\'idn:all-personal-access-tokens:read\\'. If the caller has the following right, then managed personal access tokens associated with `owner-id` will be retrieved: \\'idn:managed-personal-access-tokens:read\\'\n * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **lastUsed**: *le, isnull*\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n listPersonalAccessTokens: function (ownerId, filters, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n localVarPath = \"/personal-access-tokens\";\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n if (ownerId !== undefined) {\n localVarQueryParameter['owner-id'] = ownerId;\n }\n if (filters !== undefined) {\n localVarQueryParameter['filters'] = filters;\n }\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This performs a targeted update to the field(s) of a Personal Access Token.\n * @summary Patch Personal Access Token\n * @param {string} id The Personal Access Token id\n * @param {Array} jsonPatchOperationBeta A list of OAuth client update operations according to the [JSON Patch](https://tools.ietf.org/html/rfc6902) standard. The following fields are patchable: * name * scope\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n patchPersonalAccessToken: function (id, jsonPatchOperationBeta, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'id' is not null or undefined\n (0, common_1.assertParamExists)('patchPersonalAccessToken', 'id', id);\n // verify required parameter 'jsonPatchOperationBeta' is not null or undefined\n (0, common_1.assertParamExists)('patchPersonalAccessToken', 'jsonPatchOperationBeta', jsonPatchOperationBeta);\n localVarPath = \"/personal-access-tokens/{id}\"\n .replace(\"{\".concat(\"id\", \"}\"), encodeURIComponent(String(id)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'PATCH' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n localVarHeaderParameter['Content-Type'] = 'application/json-patch+json';\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(jsonPatchOperationBeta, localVarRequestOptions, configuration);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n };\n};\nexports.PersonalAccessTokensBetaApiAxiosParamCreator = PersonalAccessTokensBetaApiAxiosParamCreator;\n/**\n * PersonalAccessTokensBetaApi - functional programming interface\n * @export\n */\nvar PersonalAccessTokensBetaApiFp = function (configuration) {\n var localVarAxiosParamCreator = (0, exports.PersonalAccessTokensBetaApiAxiosParamCreator)(configuration);\n return {\n /**\n * This creates a personal access token.\n * @summary Create Personal Access Token\n * @param {CreatePersonalAccessTokenRequestBeta} createPersonalAccessTokenRequestBeta Name and scope of personal access token.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n createPersonalAccessToken: function (createPersonalAccessTokenRequestBeta, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.createPersonalAccessToken(createPersonalAccessTokenRequestBeta, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This deletes a personal access token.\n * @summary Delete Personal Access Token\n * @param {string} id The personal access token id\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n deletePersonalAccessToken: function (id, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.deletePersonalAccessToken(id, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This gets a collection of personal access tokens associated with the optional `owner-id`. query parameter. If the `owner-id` query parameter is omitted, all personal access tokens for a tenant will be retrieved, but the caller must have the \\'idn:all-personal-access-tokens:read\\' right.\n * @summary List Personal Access Tokens\n * @param {string} [ownerId] The identity ID of the owner whose personal access tokens should be listed. If \\"me\\", the caller should have the following right: \\'idn:my-personal-access-tokens:read\\' If an actual owner ID or if the `owner-id` parameter is omitted in the request, the caller should have the following right: \\'idn:all-personal-access-tokens:read\\'. If the caller has the following right, then managed personal access tokens associated with `owner-id` will be retrieved: \\'idn:managed-personal-access-tokens:read\\'\n * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **lastUsed**: *le, isnull*\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n listPersonalAccessTokens: function (ownerId, filters, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.listPersonalAccessTokens(ownerId, filters, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This performs a targeted update to the field(s) of a Personal Access Token.\n * @summary Patch Personal Access Token\n * @param {string} id The Personal Access Token id\n * @param {Array} jsonPatchOperationBeta A list of OAuth client update operations according to the [JSON Patch](https://tools.ietf.org/html/rfc6902) standard. The following fields are patchable: * name * scope\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n patchPersonalAccessToken: function (id, jsonPatchOperationBeta, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.patchPersonalAccessToken(id, jsonPatchOperationBeta, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n };\n};\nexports.PersonalAccessTokensBetaApiFp = PersonalAccessTokensBetaApiFp;\n/**\n * PersonalAccessTokensBetaApi - factory interface\n * @export\n */\nvar PersonalAccessTokensBetaApiFactory = function (configuration, basePath, axios) {\n var localVarFp = (0, exports.PersonalAccessTokensBetaApiFp)(configuration);\n return {\n /**\n * This creates a personal access token.\n * @summary Create Personal Access Token\n * @param {CreatePersonalAccessTokenRequestBeta} createPersonalAccessTokenRequestBeta Name and scope of personal access token.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n createPersonalAccessToken: function (createPersonalAccessTokenRequestBeta, axiosOptions) {\n return localVarFp.createPersonalAccessToken(createPersonalAccessTokenRequestBeta, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This deletes a personal access token.\n * @summary Delete Personal Access Token\n * @param {string} id The personal access token id\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n deletePersonalAccessToken: function (id, axiosOptions) {\n return localVarFp.deletePersonalAccessToken(id, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This gets a collection of personal access tokens associated with the optional `owner-id`. query parameter. If the `owner-id` query parameter is omitted, all personal access tokens for a tenant will be retrieved, but the caller must have the \\'idn:all-personal-access-tokens:read\\' right.\n * @summary List Personal Access Tokens\n * @param {string} [ownerId] The identity ID of the owner whose personal access tokens should be listed. If \\"me\\", the caller should have the following right: \\'idn:my-personal-access-tokens:read\\' If an actual owner ID or if the `owner-id` parameter is omitted in the request, the caller should have the following right: \\'idn:all-personal-access-tokens:read\\'. If the caller has the following right, then managed personal access tokens associated with `owner-id` will be retrieved: \\'idn:managed-personal-access-tokens:read\\'\n * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **lastUsed**: *le, isnull*\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n listPersonalAccessTokens: function (ownerId, filters, axiosOptions) {\n return localVarFp.listPersonalAccessTokens(ownerId, filters, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This performs a targeted update to the field(s) of a Personal Access Token.\n * @summary Patch Personal Access Token\n * @param {string} id The Personal Access Token id\n * @param {Array} jsonPatchOperationBeta A list of OAuth client update operations according to the [JSON Patch](https://tools.ietf.org/html/rfc6902) standard. The following fields are patchable: * name * scope\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n patchPersonalAccessToken: function (id, jsonPatchOperationBeta, axiosOptions) {\n return localVarFp.patchPersonalAccessToken(id, jsonPatchOperationBeta, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n };\n};\nexports.PersonalAccessTokensBetaApiFactory = PersonalAccessTokensBetaApiFactory;\n/**\n * PersonalAccessTokensBetaApi - object-oriented interface\n * @export\n * @class PersonalAccessTokensBetaApi\n * @extends {BaseAPI}\n */\nvar PersonalAccessTokensBetaApi = /** @class */ (function (_super) {\n __extends(PersonalAccessTokensBetaApi, _super);\n function PersonalAccessTokensBetaApi() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n * This creates a personal access token.\n * @summary Create Personal Access Token\n * @param {PersonalAccessTokensBetaApiCreatePersonalAccessTokenRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof PersonalAccessTokensBetaApi\n */\n PersonalAccessTokensBetaApi.prototype.createPersonalAccessToken = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.PersonalAccessTokensBetaApiFp)(this.configuration).createPersonalAccessToken(requestParameters.createPersonalAccessTokenRequestBeta, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This deletes a personal access token.\n * @summary Delete Personal Access Token\n * @param {PersonalAccessTokensBetaApiDeletePersonalAccessTokenRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof PersonalAccessTokensBetaApi\n */\n PersonalAccessTokensBetaApi.prototype.deletePersonalAccessToken = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.PersonalAccessTokensBetaApiFp)(this.configuration).deletePersonalAccessToken(requestParameters.id, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This gets a collection of personal access tokens associated with the optional `owner-id`. query parameter. If the `owner-id` query parameter is omitted, all personal access tokens for a tenant will be retrieved, but the caller must have the \\'idn:all-personal-access-tokens:read\\' right.\n * @summary List Personal Access Tokens\n * @param {PersonalAccessTokensBetaApiListPersonalAccessTokensRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof PersonalAccessTokensBetaApi\n */\n PersonalAccessTokensBetaApi.prototype.listPersonalAccessTokens = function (requestParameters, axiosOptions) {\n var _this = this;\n if (requestParameters === void 0) { requestParameters = {}; }\n return (0, exports.PersonalAccessTokensBetaApiFp)(this.configuration).listPersonalAccessTokens(requestParameters.ownerId, requestParameters.filters, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This performs a targeted update to the field(s) of a Personal Access Token.\n * @summary Patch Personal Access Token\n * @param {PersonalAccessTokensBetaApiPatchPersonalAccessTokenRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof PersonalAccessTokensBetaApi\n */\n PersonalAccessTokensBetaApi.prototype.patchPersonalAccessToken = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.PersonalAccessTokensBetaApiFp)(this.configuration).patchPersonalAccessToken(requestParameters.id, requestParameters.jsonPatchOperationBeta, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n return PersonalAccessTokensBetaApi;\n}(base_1.BaseAPI));\nexports.PersonalAccessTokensBetaApi = PersonalAccessTokensBetaApi;\n/**\n * PublicIdentitiesConfigBetaApi - axios parameter creator\n * @export\n */\nvar PublicIdentitiesConfigBetaApiAxiosParamCreator = function (configuration) {\n var _this = this;\n return {\n /**\n * This gets details of public identity config.\n * @summary Get Public Identity Config\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getPublicIdentityConfig: function (axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n localVarPath = \"/public-identities-config\";\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This updates the details of public identity config.\n * @summary Update Public Identity Config\n * @param {PublicIdentityConfigBeta} publicIdentityConfigBeta\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n updatePublicIdentityConfig: function (publicIdentityConfigBeta, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'publicIdentityConfigBeta' is not null or undefined\n (0, common_1.assertParamExists)('updatePublicIdentityConfig', 'publicIdentityConfigBeta', publicIdentityConfigBeta);\n localVarPath = \"/public-identities-config\";\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'PUT' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n localVarHeaderParameter['Content-Type'] = 'application/json';\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(publicIdentityConfigBeta, localVarRequestOptions, configuration);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n };\n};\nexports.PublicIdentitiesConfigBetaApiAxiosParamCreator = PublicIdentitiesConfigBetaApiAxiosParamCreator;\n/**\n * PublicIdentitiesConfigBetaApi - functional programming interface\n * @export\n */\nvar PublicIdentitiesConfigBetaApiFp = function (configuration) {\n var localVarAxiosParamCreator = (0, exports.PublicIdentitiesConfigBetaApiAxiosParamCreator)(configuration);\n return {\n /**\n * This gets details of public identity config.\n * @summary Get Public Identity Config\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getPublicIdentityConfig: function (axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.getPublicIdentityConfig(axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This updates the details of public identity config.\n * @summary Update Public Identity Config\n * @param {PublicIdentityConfigBeta} publicIdentityConfigBeta\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n updatePublicIdentityConfig: function (publicIdentityConfigBeta, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.updatePublicIdentityConfig(publicIdentityConfigBeta, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n };\n};\nexports.PublicIdentitiesConfigBetaApiFp = PublicIdentitiesConfigBetaApiFp;\n/**\n * PublicIdentitiesConfigBetaApi - factory interface\n * @export\n */\nvar PublicIdentitiesConfigBetaApiFactory = function (configuration, basePath, axios) {\n var localVarFp = (0, exports.PublicIdentitiesConfigBetaApiFp)(configuration);\n return {\n /**\n * This gets details of public identity config.\n * @summary Get Public Identity Config\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getPublicIdentityConfig: function (axiosOptions) {\n return localVarFp.getPublicIdentityConfig(axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This updates the details of public identity config.\n * @summary Update Public Identity Config\n * @param {PublicIdentityConfigBeta} publicIdentityConfigBeta\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n updatePublicIdentityConfig: function (publicIdentityConfigBeta, axiosOptions) {\n return localVarFp.updatePublicIdentityConfig(publicIdentityConfigBeta, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n };\n};\nexports.PublicIdentitiesConfigBetaApiFactory = PublicIdentitiesConfigBetaApiFactory;\n/**\n * PublicIdentitiesConfigBetaApi - object-oriented interface\n * @export\n * @class PublicIdentitiesConfigBetaApi\n * @extends {BaseAPI}\n */\nvar PublicIdentitiesConfigBetaApi = /** @class */ (function (_super) {\n __extends(PublicIdentitiesConfigBetaApi, _super);\n function PublicIdentitiesConfigBetaApi() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n * This gets details of public identity config.\n * @summary Get Public Identity Config\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof PublicIdentitiesConfigBetaApi\n */\n PublicIdentitiesConfigBetaApi.prototype.getPublicIdentityConfig = function (axiosOptions) {\n var _this = this;\n return (0, exports.PublicIdentitiesConfigBetaApiFp)(this.configuration).getPublicIdentityConfig(axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This updates the details of public identity config.\n * @summary Update Public Identity Config\n * @param {PublicIdentitiesConfigBetaApiUpdatePublicIdentityConfigRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof PublicIdentitiesConfigBetaApi\n */\n PublicIdentitiesConfigBetaApi.prototype.updatePublicIdentityConfig = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.PublicIdentitiesConfigBetaApiFp)(this.configuration).updatePublicIdentityConfig(requestParameters.publicIdentityConfigBeta, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n return PublicIdentitiesConfigBetaApi;\n}(base_1.BaseAPI));\nexports.PublicIdentitiesConfigBetaApi = PublicIdentitiesConfigBetaApi;\n/**\n * RequestableObjectsBetaApi - axios parameter creator\n * @export\n */\nvar RequestableObjectsBetaApiAxiosParamCreator = function (configuration) {\n var _this = this;\n return {\n /**\n * This endpoint returns a list of acccess items that that can be requested through the Access Request endpoints. Access items are marked with AVAILABLE, PENDING or ASSIGNED with respect to the identity provided using *identity-id* query param. Any authenticated token can call this endpoint to see their requestable access items. A token with ORG_ADMIN authority is required to call this endpoint to return a list of all of the requestable access items for the org or for another identity.\n * @summary Requestable Objects List\n * @param {string} [identityId] If present, the value returns only requestable objects for the specified identity. * Admin users can call this with any identity ID value. * Non-admin users can only specify *me* or pass their own identity ID value. * If absent, returns a list of all requestable objects for the tenant. Only admin users can make such a call. In this case, the available, pending, assigned accesses will not be annotated in the result.\n * @param {Array} [types] Filters the results to the specified type/types, where each type is one of ROLE or ACCESS_PROFILE. If absent, all types are returned. Support for additional types may be added in the future without notice.\n * @param {string} [term] It allows searching requestable access items with a partial match on the name or description. If term is provided, then the *filter* query parameter will be ignored.\n * @param {Array} [statuses] Filters the result to the specified status/statuses, where each status is one of AVAILABLE, ASSIGNED, or PENDING. It is an error to specify this parameter without also specifying an *identity-id* parameter. Additional statuses may be added in the future without notice.\n * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **id**: *eq, in* **name**: *eq, in, sw, co*\n * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **name**\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n listRequestableObjects: function (identityId, types, term, statuses, limit, offset, count, filters, sorters, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n localVarPath = \"/requestable-objects\";\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n if (identityId !== undefined) {\n localVarQueryParameter['identity-id'] = identityId;\n }\n if (types) {\n localVarQueryParameter['types'] = types.join(base_1.COLLECTION_FORMATS.csv);\n }\n if (term !== undefined) {\n localVarQueryParameter['term'] = term;\n }\n if (statuses) {\n localVarQueryParameter['statuses'] = statuses.join(base_1.COLLECTION_FORMATS.csv);\n }\n if (limit !== undefined) {\n localVarQueryParameter['limit'] = limit;\n }\n if (offset !== undefined) {\n localVarQueryParameter['offset'] = offset;\n }\n if (count !== undefined) {\n localVarQueryParameter['count'] = count;\n }\n if (filters !== undefined) {\n localVarQueryParameter['filters'] = filters;\n }\n if (sorters !== undefined) {\n localVarQueryParameter['sorters'] = sorters;\n }\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n };\n};\nexports.RequestableObjectsBetaApiAxiosParamCreator = RequestableObjectsBetaApiAxiosParamCreator;\n/**\n * RequestableObjectsBetaApi - functional programming interface\n * @export\n */\nvar RequestableObjectsBetaApiFp = function (configuration) {\n var localVarAxiosParamCreator = (0, exports.RequestableObjectsBetaApiAxiosParamCreator)(configuration);\n return {\n /**\n * This endpoint returns a list of acccess items that that can be requested through the Access Request endpoints. Access items are marked with AVAILABLE, PENDING or ASSIGNED with respect to the identity provided using *identity-id* query param. Any authenticated token can call this endpoint to see their requestable access items. A token with ORG_ADMIN authority is required to call this endpoint to return a list of all of the requestable access items for the org or for another identity.\n * @summary Requestable Objects List\n * @param {string} [identityId] If present, the value returns only requestable objects for the specified identity. * Admin users can call this with any identity ID value. * Non-admin users can only specify *me* or pass their own identity ID value. * If absent, returns a list of all requestable objects for the tenant. Only admin users can make such a call. In this case, the available, pending, assigned accesses will not be annotated in the result.\n * @param {Array} [types] Filters the results to the specified type/types, where each type is one of ROLE or ACCESS_PROFILE. If absent, all types are returned. Support for additional types may be added in the future without notice.\n * @param {string} [term] It allows searching requestable access items with a partial match on the name or description. If term is provided, then the *filter* query parameter will be ignored.\n * @param {Array} [statuses] Filters the result to the specified status/statuses, where each status is one of AVAILABLE, ASSIGNED, or PENDING. It is an error to specify this parameter without also specifying an *identity-id* parameter. Additional statuses may be added in the future without notice.\n * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **id**: *eq, in* **name**: *eq, in, sw, co*\n * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **name**\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n listRequestableObjects: function (identityId, types, term, statuses, limit, offset, count, filters, sorters, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.listRequestableObjects(identityId, types, term, statuses, limit, offset, count, filters, sorters, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n };\n};\nexports.RequestableObjectsBetaApiFp = RequestableObjectsBetaApiFp;\n/**\n * RequestableObjectsBetaApi - factory interface\n * @export\n */\nvar RequestableObjectsBetaApiFactory = function (configuration, basePath, axios) {\n var localVarFp = (0, exports.RequestableObjectsBetaApiFp)(configuration);\n return {\n /**\n * This endpoint returns a list of acccess items that that can be requested through the Access Request endpoints. Access items are marked with AVAILABLE, PENDING or ASSIGNED with respect to the identity provided using *identity-id* query param. Any authenticated token can call this endpoint to see their requestable access items. A token with ORG_ADMIN authority is required to call this endpoint to return a list of all of the requestable access items for the org or for another identity.\n * @summary Requestable Objects List\n * @param {string} [identityId] If present, the value returns only requestable objects for the specified identity. * Admin users can call this with any identity ID value. * Non-admin users can only specify *me* or pass their own identity ID value. * If absent, returns a list of all requestable objects for the tenant. Only admin users can make such a call. In this case, the available, pending, assigned accesses will not be annotated in the result.\n * @param {Array} [types] Filters the results to the specified type/types, where each type is one of ROLE or ACCESS_PROFILE. If absent, all types are returned. Support for additional types may be added in the future without notice.\n * @param {string} [term] It allows searching requestable access items with a partial match on the name or description. If term is provided, then the *filter* query parameter will be ignored.\n * @param {Array} [statuses] Filters the result to the specified status/statuses, where each status is one of AVAILABLE, ASSIGNED, or PENDING. It is an error to specify this parameter without also specifying an *identity-id* parameter. Additional statuses may be added in the future without notice.\n * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **id**: *eq, in* **name**: *eq, in, sw, co*\n * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **name**\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n listRequestableObjects: function (identityId, types, term, statuses, limit, offset, count, filters, sorters, axiosOptions) {\n return localVarFp.listRequestableObjects(identityId, types, term, statuses, limit, offset, count, filters, sorters, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n };\n};\nexports.RequestableObjectsBetaApiFactory = RequestableObjectsBetaApiFactory;\n/**\n * RequestableObjectsBetaApi - object-oriented interface\n * @export\n * @class RequestableObjectsBetaApi\n * @extends {BaseAPI}\n */\nvar RequestableObjectsBetaApi = /** @class */ (function (_super) {\n __extends(RequestableObjectsBetaApi, _super);\n function RequestableObjectsBetaApi() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n * This endpoint returns a list of acccess items that that can be requested through the Access Request endpoints. Access items are marked with AVAILABLE, PENDING or ASSIGNED with respect to the identity provided using *identity-id* query param. Any authenticated token can call this endpoint to see their requestable access items. A token with ORG_ADMIN authority is required to call this endpoint to return a list of all of the requestable access items for the org or for another identity.\n * @summary Requestable Objects List\n * @param {RequestableObjectsBetaApiListRequestableObjectsRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof RequestableObjectsBetaApi\n */\n RequestableObjectsBetaApi.prototype.listRequestableObjects = function (requestParameters, axiosOptions) {\n var _this = this;\n if (requestParameters === void 0) { requestParameters = {}; }\n return (0, exports.RequestableObjectsBetaApiFp)(this.configuration).listRequestableObjects(requestParameters.identityId, requestParameters.types, requestParameters.term, requestParameters.statuses, requestParameters.limit, requestParameters.offset, requestParameters.count, requestParameters.filters, requestParameters.sorters, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n return RequestableObjectsBetaApi;\n}(base_1.BaseAPI));\nexports.RequestableObjectsBetaApi = RequestableObjectsBetaApi;\n/**\n * RoleInsightsBetaApi - axios parameter creator\n * @export\n */\nvar RoleInsightsBetaApiAxiosParamCreator = function (configuration) {\n var _this = this;\n return {\n /**\n * Submits a create role insights request to the role insights application. At this time there are no parameters. All business roles will be processed for the customer.\n * @summary Generate insights for roles\n * @param {*} [axiosOptions] Override http request option.\n * @deprecated\n * @throws {RequiredError}\n */\n createRoleInsightRequests: function (axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n localVarPath = \"/role-insights/requests\";\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This endpoint returns the entitlement insights for a role.\n * @summary Download entitlement insights for a role\n * @param {string} insightId The role insight id\n * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **identitiesWithAccess** The default sort is **identitiesWithAccess** in descending order.\n * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **name**: *sw* **description**: *sw*\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n downloadRoleInsightsEntitlementsChanges: function (insightId, sorters, filters, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'insightId' is not null or undefined\n (0, common_1.assertParamExists)('downloadRoleInsightsEntitlementsChanges', 'insightId', insightId);\n localVarPath = \"/role-insights/{insightId}/entitlement-changes/download\"\n .replace(\"{\".concat(\"insightId\", \"}\"), encodeURIComponent(String(insightId)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n if (sorters !== undefined) {\n localVarQueryParameter['sorters'] = sorters;\n }\n if (filters !== undefined) {\n localVarQueryParameter['filters'] = filters;\n }\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * Role insights suggests entitlements to be added for a role. This endpoint returns a list of identities in the role, with or without the entitlements, for a suggested entitlement so that the user can see which identities would be affected if the suggested entitlement were to be added to the role.\n * @summary Get identities for a suggested entitlement (for a role)\n * @param {string} insightId The role insight id\n * @param {string} entitlementId The entitlement id\n * @param {boolean} [hasEntitlement] Identity has this entitlement or not\n * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **name**\n * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **name**: *sw*\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getEntitlementChangesIdentities: function (insightId, entitlementId, hasEntitlement, offset, limit, count, sorters, filters, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'insightId' is not null or undefined\n (0, common_1.assertParamExists)('getEntitlementChangesIdentities', 'insightId', insightId);\n // verify required parameter 'entitlementId' is not null or undefined\n (0, common_1.assertParamExists)('getEntitlementChangesIdentities', 'entitlementId', entitlementId);\n localVarPath = \"/role-insights/{insightId}/entitlement-changes/{entitlementId}/identities\"\n .replace(\"{\".concat(\"insightId\", \"}\"), encodeURIComponent(String(insightId)))\n .replace(\"{\".concat(\"entitlementId\", \"}\"), encodeURIComponent(String(entitlementId)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n if (hasEntitlement !== undefined) {\n localVarQueryParameter['hasEntitlement'] = hasEntitlement;\n }\n if (offset !== undefined) {\n localVarQueryParameter['offset'] = offset;\n }\n if (limit !== undefined) {\n localVarQueryParameter['limit'] = limit;\n }\n if (count !== undefined) {\n localVarQueryParameter['count'] = count;\n }\n if (sorters !== undefined) {\n localVarQueryParameter['sorters'] = sorters;\n }\n if (filters !== undefined) {\n localVarQueryParameter['filters'] = filters;\n }\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This endpoint gets role insights information for a role.\n * @summary Get a single role insight\n * @param {string} insightId The role insight id\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getRoleInsight: function (insightId, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'insightId' is not null or undefined\n (0, common_1.assertParamExists)('getRoleInsight', 'insightId', insightId);\n localVarPath = \"/role-insights/{insightId}\"\n .replace(\"{\".concat(\"insightId\", \"}\"), encodeURIComponent(String(insightId)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This method returns detailed role insights for each role.\n * @summary Get role insights\n * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **numberOfUpdates, identitiesWithAccess, totalNumberOfIdentities**\n * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **name**: *sw* **ownerName**: *sw* **description**: *sw*\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getRoleInsights: function (offset, limit, count, sorters, filters, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n localVarPath = \"/role-insights\";\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n if (offset !== undefined) {\n localVarQueryParameter['offset'] = offset;\n }\n if (limit !== undefined) {\n localVarQueryParameter['limit'] = limit;\n }\n if (count !== undefined) {\n localVarQueryParameter['count'] = count;\n }\n if (sorters !== undefined) {\n localVarQueryParameter['sorters'] = sorters;\n }\n if (filters !== undefined) {\n localVarQueryParameter['filters'] = filters;\n }\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This endpoint gets the entitlements for a role. The term \\\"current\\\" is to distinguish from the entitlement(s) an insight might recommend adding.\n * @summary Get current entitlement for a role\n * @param {string} insightId The role insight id\n * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **name**: *sw* **description**: *sw*\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getRoleInsightsCurrentEntitlements: function (insightId, filters, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'insightId' is not null or undefined\n (0, common_1.assertParamExists)('getRoleInsightsCurrentEntitlements', 'insightId', insightId);\n localVarPath = \"/role-insights/{insightId}/current-entitlements\"\n .replace(\"{\".concat(\"insightId\", \"}\"), encodeURIComponent(String(insightId)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n if (filters !== undefined) {\n localVarQueryParameter['filters'] = filters;\n }\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This endpoint returns entitlement insights for a role.\n * @summary Get entitlement insights for a role\n * @param {string} insightId The role insight id\n * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **identitiesWithAccess, name**\n * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **name**: *sw* **description**: *sw*\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getRoleInsightsEntitlementsChanges: function (insightId, sorters, filters, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'insightId' is not null or undefined\n (0, common_1.assertParamExists)('getRoleInsightsEntitlementsChanges', 'insightId', insightId);\n localVarPath = \"/role-insights/{insightId}/entitlement-changes\"\n .replace(\"{\".concat(\"insightId\", \"}\"), encodeURIComponent(String(insightId)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n if (sorters !== undefined) {\n localVarQueryParameter['sorters'] = sorters;\n }\n if (filters !== undefined) {\n localVarQueryParameter['filters'] = filters;\n }\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This endpoint returns details of a prior role insights request.\n * @summary Returns metadata from prior request.\n * @param {string} id The role insights request id\n * @param {*} [axiosOptions] Override http request option.\n * @deprecated\n * @throws {RequiredError}\n */\n getRoleInsightsRequests: function (id, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'id' is not null or undefined\n (0, common_1.assertParamExists)('getRoleInsightsRequests', 'id', id);\n localVarPath = \"/role-insights/requests/{id}\"\n .replace(\"{\".concat(\"id\", \"}\"), encodeURIComponent(String(id)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This method returns high level summary information for role insights for a customer.\n * @summary Get role insights summary information\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getRoleInsightsSummary: function (axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n localVarPath = \"/role-insights/summary\";\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n };\n};\nexports.RoleInsightsBetaApiAxiosParamCreator = RoleInsightsBetaApiAxiosParamCreator;\n/**\n * RoleInsightsBetaApi - functional programming interface\n * @export\n */\nvar RoleInsightsBetaApiFp = function (configuration) {\n var localVarAxiosParamCreator = (0, exports.RoleInsightsBetaApiAxiosParamCreator)(configuration);\n return {\n /**\n * Submits a create role insights request to the role insights application. At this time there are no parameters. All business roles will be processed for the customer.\n * @summary Generate insights for roles\n * @param {*} [axiosOptions] Override http request option.\n * @deprecated\n * @throws {RequiredError}\n */\n createRoleInsightRequests: function (axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.createRoleInsightRequests(axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This endpoint returns the entitlement insights for a role.\n * @summary Download entitlement insights for a role\n * @param {string} insightId The role insight id\n * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **identitiesWithAccess** The default sort is **identitiesWithAccess** in descending order.\n * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **name**: *sw* **description**: *sw*\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n downloadRoleInsightsEntitlementsChanges: function (insightId, sorters, filters, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.downloadRoleInsightsEntitlementsChanges(insightId, sorters, filters, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * Role insights suggests entitlements to be added for a role. This endpoint returns a list of identities in the role, with or without the entitlements, for a suggested entitlement so that the user can see which identities would be affected if the suggested entitlement were to be added to the role.\n * @summary Get identities for a suggested entitlement (for a role)\n * @param {string} insightId The role insight id\n * @param {string} entitlementId The entitlement id\n * @param {boolean} [hasEntitlement] Identity has this entitlement or not\n * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **name**\n * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **name**: *sw*\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getEntitlementChangesIdentities: function (insightId, entitlementId, hasEntitlement, offset, limit, count, sorters, filters, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.getEntitlementChangesIdentities(insightId, entitlementId, hasEntitlement, offset, limit, count, sorters, filters, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This endpoint gets role insights information for a role.\n * @summary Get a single role insight\n * @param {string} insightId The role insight id\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getRoleInsight: function (insightId, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.getRoleInsight(insightId, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This method returns detailed role insights for each role.\n * @summary Get role insights\n * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **numberOfUpdates, identitiesWithAccess, totalNumberOfIdentities**\n * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **name**: *sw* **ownerName**: *sw* **description**: *sw*\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getRoleInsights: function (offset, limit, count, sorters, filters, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.getRoleInsights(offset, limit, count, sorters, filters, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This endpoint gets the entitlements for a role. The term \\\"current\\\" is to distinguish from the entitlement(s) an insight might recommend adding.\n * @summary Get current entitlement for a role\n * @param {string} insightId The role insight id\n * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **name**: *sw* **description**: *sw*\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getRoleInsightsCurrentEntitlements: function (insightId, filters, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.getRoleInsightsCurrentEntitlements(insightId, filters, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This endpoint returns entitlement insights for a role.\n * @summary Get entitlement insights for a role\n * @param {string} insightId The role insight id\n * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **identitiesWithAccess, name**\n * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **name**: *sw* **description**: *sw*\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getRoleInsightsEntitlementsChanges: function (insightId, sorters, filters, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.getRoleInsightsEntitlementsChanges(insightId, sorters, filters, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This endpoint returns details of a prior role insights request.\n * @summary Returns metadata from prior request.\n * @param {string} id The role insights request id\n * @param {*} [axiosOptions] Override http request option.\n * @deprecated\n * @throws {RequiredError}\n */\n getRoleInsightsRequests: function (id, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.getRoleInsightsRequests(id, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This method returns high level summary information for role insights for a customer.\n * @summary Get role insights summary information\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getRoleInsightsSummary: function (axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.getRoleInsightsSummary(axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n };\n};\nexports.RoleInsightsBetaApiFp = RoleInsightsBetaApiFp;\n/**\n * RoleInsightsBetaApi - factory interface\n * @export\n */\nvar RoleInsightsBetaApiFactory = function (configuration, basePath, axios) {\n var localVarFp = (0, exports.RoleInsightsBetaApiFp)(configuration);\n return {\n /**\n * Submits a create role insights request to the role insights application. At this time there are no parameters. All business roles will be processed for the customer.\n * @summary Generate insights for roles\n * @param {*} [axiosOptions] Override http request option.\n * @deprecated\n * @throws {RequiredError}\n */\n createRoleInsightRequests: function (axiosOptions) {\n return localVarFp.createRoleInsightRequests(axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This endpoint returns the entitlement insights for a role.\n * @summary Download entitlement insights for a role\n * @param {string} insightId The role insight id\n * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **identitiesWithAccess** The default sort is **identitiesWithAccess** in descending order.\n * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **name**: *sw* **description**: *sw*\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n downloadRoleInsightsEntitlementsChanges: function (insightId, sorters, filters, axiosOptions) {\n return localVarFp.downloadRoleInsightsEntitlementsChanges(insightId, sorters, filters, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * Role insights suggests entitlements to be added for a role. This endpoint returns a list of identities in the role, with or without the entitlements, for a suggested entitlement so that the user can see which identities would be affected if the suggested entitlement were to be added to the role.\n * @summary Get identities for a suggested entitlement (for a role)\n * @param {string} insightId The role insight id\n * @param {string} entitlementId The entitlement id\n * @param {boolean} [hasEntitlement] Identity has this entitlement or not\n * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **name**\n * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **name**: *sw*\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getEntitlementChangesIdentities: function (insightId, entitlementId, hasEntitlement, offset, limit, count, sorters, filters, axiosOptions) {\n return localVarFp.getEntitlementChangesIdentities(insightId, entitlementId, hasEntitlement, offset, limit, count, sorters, filters, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This endpoint gets role insights information for a role.\n * @summary Get a single role insight\n * @param {string} insightId The role insight id\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getRoleInsight: function (insightId, axiosOptions) {\n return localVarFp.getRoleInsight(insightId, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This method returns detailed role insights for each role.\n * @summary Get role insights\n * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **numberOfUpdates, identitiesWithAccess, totalNumberOfIdentities**\n * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **name**: *sw* **ownerName**: *sw* **description**: *sw*\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getRoleInsights: function (offset, limit, count, sorters, filters, axiosOptions) {\n return localVarFp.getRoleInsights(offset, limit, count, sorters, filters, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This endpoint gets the entitlements for a role. The term \\\"current\\\" is to distinguish from the entitlement(s) an insight might recommend adding.\n * @summary Get current entitlement for a role\n * @param {string} insightId The role insight id\n * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **name**: *sw* **description**: *sw*\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getRoleInsightsCurrentEntitlements: function (insightId, filters, axiosOptions) {\n return localVarFp.getRoleInsightsCurrentEntitlements(insightId, filters, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This endpoint returns entitlement insights for a role.\n * @summary Get entitlement insights for a role\n * @param {string} insightId The role insight id\n * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **identitiesWithAccess, name**\n * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **name**: *sw* **description**: *sw*\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getRoleInsightsEntitlementsChanges: function (insightId, sorters, filters, axiosOptions) {\n return localVarFp.getRoleInsightsEntitlementsChanges(insightId, sorters, filters, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This endpoint returns details of a prior role insights request.\n * @summary Returns metadata from prior request.\n * @param {string} id The role insights request id\n * @param {*} [axiosOptions] Override http request option.\n * @deprecated\n * @throws {RequiredError}\n */\n getRoleInsightsRequests: function (id, axiosOptions) {\n return localVarFp.getRoleInsightsRequests(id, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This method returns high level summary information for role insights for a customer.\n * @summary Get role insights summary information\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getRoleInsightsSummary: function (axiosOptions) {\n return localVarFp.getRoleInsightsSummary(axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n };\n};\nexports.RoleInsightsBetaApiFactory = RoleInsightsBetaApiFactory;\n/**\n * RoleInsightsBetaApi - object-oriented interface\n * @export\n * @class RoleInsightsBetaApi\n * @extends {BaseAPI}\n */\nvar RoleInsightsBetaApi = /** @class */ (function (_super) {\n __extends(RoleInsightsBetaApi, _super);\n function RoleInsightsBetaApi() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n * Submits a create role insights request to the role insights application. At this time there are no parameters. All business roles will be processed for the customer.\n * @summary Generate insights for roles\n * @param {*} [axiosOptions] Override http request option.\n * @deprecated\n * @throws {RequiredError}\n * @memberof RoleInsightsBetaApi\n */\n RoleInsightsBetaApi.prototype.createRoleInsightRequests = function (axiosOptions) {\n var _this = this;\n return (0, exports.RoleInsightsBetaApiFp)(this.configuration).createRoleInsightRequests(axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This endpoint returns the entitlement insights for a role.\n * @summary Download entitlement insights for a role\n * @param {RoleInsightsBetaApiDownloadRoleInsightsEntitlementsChangesRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof RoleInsightsBetaApi\n */\n RoleInsightsBetaApi.prototype.downloadRoleInsightsEntitlementsChanges = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.RoleInsightsBetaApiFp)(this.configuration).downloadRoleInsightsEntitlementsChanges(requestParameters.insightId, requestParameters.sorters, requestParameters.filters, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * Role insights suggests entitlements to be added for a role. This endpoint returns a list of identities in the role, with or without the entitlements, for a suggested entitlement so that the user can see which identities would be affected if the suggested entitlement were to be added to the role.\n * @summary Get identities for a suggested entitlement (for a role)\n * @param {RoleInsightsBetaApiGetEntitlementChangesIdentitiesRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof RoleInsightsBetaApi\n */\n RoleInsightsBetaApi.prototype.getEntitlementChangesIdentities = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.RoleInsightsBetaApiFp)(this.configuration).getEntitlementChangesIdentities(requestParameters.insightId, requestParameters.entitlementId, requestParameters.hasEntitlement, requestParameters.offset, requestParameters.limit, requestParameters.count, requestParameters.sorters, requestParameters.filters, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This endpoint gets role insights information for a role.\n * @summary Get a single role insight\n * @param {RoleInsightsBetaApiGetRoleInsightRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof RoleInsightsBetaApi\n */\n RoleInsightsBetaApi.prototype.getRoleInsight = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.RoleInsightsBetaApiFp)(this.configuration).getRoleInsight(requestParameters.insightId, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This method returns detailed role insights for each role.\n * @summary Get role insights\n * @param {RoleInsightsBetaApiGetRoleInsightsRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof RoleInsightsBetaApi\n */\n RoleInsightsBetaApi.prototype.getRoleInsights = function (requestParameters, axiosOptions) {\n var _this = this;\n if (requestParameters === void 0) { requestParameters = {}; }\n return (0, exports.RoleInsightsBetaApiFp)(this.configuration).getRoleInsights(requestParameters.offset, requestParameters.limit, requestParameters.count, requestParameters.sorters, requestParameters.filters, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This endpoint gets the entitlements for a role. The term \\\"current\\\" is to distinguish from the entitlement(s) an insight might recommend adding.\n * @summary Get current entitlement for a role\n * @param {RoleInsightsBetaApiGetRoleInsightsCurrentEntitlementsRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof RoleInsightsBetaApi\n */\n RoleInsightsBetaApi.prototype.getRoleInsightsCurrentEntitlements = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.RoleInsightsBetaApiFp)(this.configuration).getRoleInsightsCurrentEntitlements(requestParameters.insightId, requestParameters.filters, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This endpoint returns entitlement insights for a role.\n * @summary Get entitlement insights for a role\n * @param {RoleInsightsBetaApiGetRoleInsightsEntitlementsChangesRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof RoleInsightsBetaApi\n */\n RoleInsightsBetaApi.prototype.getRoleInsightsEntitlementsChanges = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.RoleInsightsBetaApiFp)(this.configuration).getRoleInsightsEntitlementsChanges(requestParameters.insightId, requestParameters.sorters, requestParameters.filters, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This endpoint returns details of a prior role insights request.\n * @summary Returns metadata from prior request.\n * @param {RoleInsightsBetaApiGetRoleInsightsRequestsRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @deprecated\n * @throws {RequiredError}\n * @memberof RoleInsightsBetaApi\n */\n RoleInsightsBetaApi.prototype.getRoleInsightsRequests = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.RoleInsightsBetaApiFp)(this.configuration).getRoleInsightsRequests(requestParameters.id, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This method returns high level summary information for role insights for a customer.\n * @summary Get role insights summary information\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof RoleInsightsBetaApi\n */\n RoleInsightsBetaApi.prototype.getRoleInsightsSummary = function (axiosOptions) {\n var _this = this;\n return (0, exports.RoleInsightsBetaApiFp)(this.configuration).getRoleInsightsSummary(axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n return RoleInsightsBetaApi;\n}(base_1.BaseAPI));\nexports.RoleInsightsBetaApi = RoleInsightsBetaApi;\n/**\n * RolesBetaApi - axios parameter creator\n * @export\n */\nvar RolesBetaApiAxiosParamCreator = function (configuration) {\n var _this = this;\n return {\n /**\n * This API initiates a bulk deletion of one or more Roles. A token with API, ORG_ADMIN, ROLE_ADMIN, or ROLE_SUBADMIN authority is required to call this API. In addition, a token with ROLE_SUBADMIN authority may only call this API if all Roles included in the request are associated to Sources with management workgroups of which the ROLE_SUBADMIN is a member.\n * @summary Delete Role(s)\n * @param {RoleBulkDeleteRequestBeta} roleBulkDeleteRequestBeta\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n bulkDeleteRoles: function (roleBulkDeleteRequestBeta, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'roleBulkDeleteRequestBeta' is not null or undefined\n (0, common_1.assertParamExists)('bulkDeleteRoles', 'roleBulkDeleteRequestBeta', roleBulkDeleteRequestBeta);\n localVarPath = \"/roles/bulk-delete\";\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n localVarHeaderParameter['Content-Type'] = 'application/json';\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(roleBulkDeleteRequestBeta, localVarRequestOptions, configuration);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This API creates a role. You must have a token with API, ORG_ADMIN, ROLE_ADMIN, or ROLE_SUBADMIN authority to call this API. In addition, a ROLE_SUBADMIN may not create a role including an access profile if that access profile is associated with a source the ROLE_SUBADMIN is not associated with themselves. The maximum supported length for the description field is 2000 characters. Longer descriptions will be preserved for existing roles. However, any new roles as well as any updates to existing descriptions will be limited to 2000 characters.\n * @summary Create a Role\n * @param {RoleBeta} roleBeta\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n createRole: function (roleBeta, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'roleBeta' is not null or undefined\n (0, common_1.assertParamExists)('createRole', 'roleBeta', roleBeta);\n localVarPath = \"/roles\";\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n localVarHeaderParameter['Content-Type'] = 'application/json';\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(roleBeta, localVarRequestOptions, configuration);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This API deletes a Role by its ID. A token with API, ORG_ADMIN, ROLE_ADMIN, or ROLE_SUBADMIN authority is required to call this API. In addition, a token with ROLE_SUBADMIN authority may only call this API if all Access Profiles included in the Role are associated to Sources with management workgroups of which the ROLE_SUBADMIN is a member.\n * @summary Delete a Role\n * @param {string} id ID of the Role\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n deleteRole: function (id, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'id' is not null or undefined\n (0, common_1.assertParamExists)('deleteRole', 'id', id);\n localVarPath = \"/roles/{id}\"\n .replace(\"{\".concat(\"id\", \"}\"), encodeURIComponent(String(id)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'DELETE' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This API returns a Role by its ID. A token with API, ORG_ADMIN, ROLE_ADMIN, or ROLE_SUBADMIN authority is required to call this API. In addition, a token with ROLE_SUBADMIN authority may only call this API if all Access Profiles included in the Role are associated to Sources with management workgroups of which the ROLE_SUBADMIN is a member.\n * @summary Get a Role\n * @param {string} id ID of the Role\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getRole: function (id, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'id' is not null or undefined\n (0, common_1.assertParamExists)('getRole', 'id', id);\n localVarPath = \"/roles/{id}\"\n .replace(\"{\".concat(\"id\", \"}\"), encodeURIComponent(String(id)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n *\n * @summary Identities assigned a Role\n * @param {string} id ID of the Role for which the assigned Identities are to be listed\n * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **id**: *eq, in* **aliasName**: *eq, sw* **email**: *eq, sw* **name**: *eq, sw, co*\n * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **id, name, aliasName, email**\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getRoleAssignedIdentities: function (id, limit, offset, count, filters, sorters, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'id' is not null or undefined\n (0, common_1.assertParamExists)('getRoleAssignedIdentities', 'id', id);\n localVarPath = \"/roles/{id}/assigned-identities\"\n .replace(\"{\".concat(\"id\", \"}\"), encodeURIComponent(String(id)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n if (limit !== undefined) {\n localVarQueryParameter['limit'] = limit;\n }\n if (offset !== undefined) {\n localVarQueryParameter['offset'] = offset;\n }\n if (count !== undefined) {\n localVarQueryParameter['count'] = count;\n }\n if (filters !== undefined) {\n localVarQueryParameter['filters'] = filters;\n }\n if (sorters !== undefined) {\n localVarQueryParameter['sorters'] = sorters;\n }\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This API returns a list of Roles. A token with API, ORG_ADMIN, ROLE_ADMIN, or ROLE_SUBADMIN authority is required to call this API.\n * @summary List Roles\n * @param {string} [forSubadmin] If provided, filters the returned list according to what is visible to the indicated ROLE_SUBADMIN Identity. The value of the parameter is either an Identity ID, or the special value **me**, which is shorthand for the calling Identity\\'s ID. A 400 Bad Request error is returned if the **for-subadmin** parameter is specified for an Identity that is not a subadmin.\n * @param {number} [limit] Note that for this API the maximum value for limit is 50. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **id**: *eq, in* **name**: *eq, sw, co* **created**: *gt, lt, ge, le* **modified**: *gt, lt, ge, le* **owner.id**: *eq, in* **requestable**: *eq*\n * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **name, created, modified**\n * @param {string} [forSegmentIds] If present and not empty, additionally filters Roles to those which are assigned to the Segment(s) with the specified IDs. If segmentation is currently unavailable, specifying this parameter results in an error.\n * @param {boolean} [includeUnsegmented] Whether or not the response list should contain unsegmented Roles. If *for-segment-ids* is absent or empty, specifying *include-unsegmented* as false results in an error.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n listRoles: function (forSubadmin, limit, offset, count, filters, sorters, forSegmentIds, includeUnsegmented, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n localVarPath = \"/roles\";\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n if (forSubadmin !== undefined) {\n localVarQueryParameter['for-subadmin'] = forSubadmin;\n }\n if (limit !== undefined) {\n localVarQueryParameter['limit'] = limit;\n }\n if (offset !== undefined) {\n localVarQueryParameter['offset'] = offset;\n }\n if (count !== undefined) {\n localVarQueryParameter['count'] = count;\n }\n if (filters !== undefined) {\n localVarQueryParameter['filters'] = filters;\n }\n if (sorters !== undefined) {\n localVarQueryParameter['sorters'] = sorters;\n }\n if (forSegmentIds !== undefined) {\n localVarQueryParameter['for-segment-ids'] = forSegmentIds;\n }\n if (includeUnsegmented !== undefined) {\n localVarQueryParameter['include-unsegmented'] = includeUnsegmented;\n }\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This API updates an existing Role using [JSON Patch](https://tools.ietf.org/html/rfc6902) syntax. The following fields are patchable: **name**, **description**, **enabled**, **owner**, **accessProfiles**, **membership**, **requestable**, **accessRequestConfig**, **revokeRequestConfig**, **segments** A token with API, ORG_ADMIN, ROLE_ADMIN, or ROLE_SUBADMIN authority is required to call this API. In addition, a token with ROLE_SUBADMIN authority may only call this API if all Access Profiles included in the Role are associated to Sources with management workgroups of which the ROLE_SUBADMIN is a member. The maximum supported length for the description field is 2000 characters. Longer descriptions will be preserved for existing roles, however, any new roles as well as any updates to existing descriptions will be limited to 2000 characters.\n * @summary Patch a specified Role\n * @param {string} id ID of the Role to patch\n * @param {Array} jsonPatchOperationBeta\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n patchRole: function (id, jsonPatchOperationBeta, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'id' is not null or undefined\n (0, common_1.assertParamExists)('patchRole', 'id', id);\n // verify required parameter 'jsonPatchOperationBeta' is not null or undefined\n (0, common_1.assertParamExists)('patchRole', 'jsonPatchOperationBeta', jsonPatchOperationBeta);\n localVarPath = \"/roles/{id}\"\n .replace(\"{\".concat(\"id\", \"}\"), encodeURIComponent(String(id)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'PATCH' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n localVarHeaderParameter['Content-Type'] = 'application/json-patch+json';\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(jsonPatchOperationBeta, localVarRequestOptions, configuration);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n };\n};\nexports.RolesBetaApiAxiosParamCreator = RolesBetaApiAxiosParamCreator;\n/**\n * RolesBetaApi - functional programming interface\n * @export\n */\nvar RolesBetaApiFp = function (configuration) {\n var localVarAxiosParamCreator = (0, exports.RolesBetaApiAxiosParamCreator)(configuration);\n return {\n /**\n * This API initiates a bulk deletion of one or more Roles. A token with API, ORG_ADMIN, ROLE_ADMIN, or ROLE_SUBADMIN authority is required to call this API. In addition, a token with ROLE_SUBADMIN authority may only call this API if all Roles included in the request are associated to Sources with management workgroups of which the ROLE_SUBADMIN is a member.\n * @summary Delete Role(s)\n * @param {RoleBulkDeleteRequestBeta} roleBulkDeleteRequestBeta\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n bulkDeleteRoles: function (roleBulkDeleteRequestBeta, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.bulkDeleteRoles(roleBulkDeleteRequestBeta, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This API creates a role. You must have a token with API, ORG_ADMIN, ROLE_ADMIN, or ROLE_SUBADMIN authority to call this API. In addition, a ROLE_SUBADMIN may not create a role including an access profile if that access profile is associated with a source the ROLE_SUBADMIN is not associated with themselves. The maximum supported length for the description field is 2000 characters. Longer descriptions will be preserved for existing roles. However, any new roles as well as any updates to existing descriptions will be limited to 2000 characters.\n * @summary Create a Role\n * @param {RoleBeta} roleBeta\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n createRole: function (roleBeta, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.createRole(roleBeta, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This API deletes a Role by its ID. A token with API, ORG_ADMIN, ROLE_ADMIN, or ROLE_SUBADMIN authority is required to call this API. In addition, a token with ROLE_SUBADMIN authority may only call this API if all Access Profiles included in the Role are associated to Sources with management workgroups of which the ROLE_SUBADMIN is a member.\n * @summary Delete a Role\n * @param {string} id ID of the Role\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n deleteRole: function (id, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.deleteRole(id, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This API returns a Role by its ID. A token with API, ORG_ADMIN, ROLE_ADMIN, or ROLE_SUBADMIN authority is required to call this API. In addition, a token with ROLE_SUBADMIN authority may only call this API if all Access Profiles included in the Role are associated to Sources with management workgroups of which the ROLE_SUBADMIN is a member.\n * @summary Get a Role\n * @param {string} id ID of the Role\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getRole: function (id, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.getRole(id, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n *\n * @summary Identities assigned a Role\n * @param {string} id ID of the Role for which the assigned Identities are to be listed\n * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **id**: *eq, in* **aliasName**: *eq, sw* **email**: *eq, sw* **name**: *eq, sw, co*\n * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **id, name, aliasName, email**\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getRoleAssignedIdentities: function (id, limit, offset, count, filters, sorters, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.getRoleAssignedIdentities(id, limit, offset, count, filters, sorters, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This API returns a list of Roles. A token with API, ORG_ADMIN, ROLE_ADMIN, or ROLE_SUBADMIN authority is required to call this API.\n * @summary List Roles\n * @param {string} [forSubadmin] If provided, filters the returned list according to what is visible to the indicated ROLE_SUBADMIN Identity. The value of the parameter is either an Identity ID, or the special value **me**, which is shorthand for the calling Identity\\'s ID. A 400 Bad Request error is returned if the **for-subadmin** parameter is specified for an Identity that is not a subadmin.\n * @param {number} [limit] Note that for this API the maximum value for limit is 50. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **id**: *eq, in* **name**: *eq, sw, co* **created**: *gt, lt, ge, le* **modified**: *gt, lt, ge, le* **owner.id**: *eq, in* **requestable**: *eq*\n * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **name, created, modified**\n * @param {string} [forSegmentIds] If present and not empty, additionally filters Roles to those which are assigned to the Segment(s) with the specified IDs. If segmentation is currently unavailable, specifying this parameter results in an error.\n * @param {boolean} [includeUnsegmented] Whether or not the response list should contain unsegmented Roles. If *for-segment-ids* is absent or empty, specifying *include-unsegmented* as false results in an error.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n listRoles: function (forSubadmin, limit, offset, count, filters, sorters, forSegmentIds, includeUnsegmented, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.listRoles(forSubadmin, limit, offset, count, filters, sorters, forSegmentIds, includeUnsegmented, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This API updates an existing Role using [JSON Patch](https://tools.ietf.org/html/rfc6902) syntax. The following fields are patchable: **name**, **description**, **enabled**, **owner**, **accessProfiles**, **membership**, **requestable**, **accessRequestConfig**, **revokeRequestConfig**, **segments** A token with API, ORG_ADMIN, ROLE_ADMIN, or ROLE_SUBADMIN authority is required to call this API. In addition, a token with ROLE_SUBADMIN authority may only call this API if all Access Profiles included in the Role are associated to Sources with management workgroups of which the ROLE_SUBADMIN is a member. The maximum supported length for the description field is 2000 characters. Longer descriptions will be preserved for existing roles, however, any new roles as well as any updates to existing descriptions will be limited to 2000 characters.\n * @summary Patch a specified Role\n * @param {string} id ID of the Role to patch\n * @param {Array} jsonPatchOperationBeta\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n patchRole: function (id, jsonPatchOperationBeta, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.patchRole(id, jsonPatchOperationBeta, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n };\n};\nexports.RolesBetaApiFp = RolesBetaApiFp;\n/**\n * RolesBetaApi - factory interface\n * @export\n */\nvar RolesBetaApiFactory = function (configuration, basePath, axios) {\n var localVarFp = (0, exports.RolesBetaApiFp)(configuration);\n return {\n /**\n * This API initiates a bulk deletion of one or more Roles. A token with API, ORG_ADMIN, ROLE_ADMIN, or ROLE_SUBADMIN authority is required to call this API. In addition, a token with ROLE_SUBADMIN authority may only call this API if all Roles included in the request are associated to Sources with management workgroups of which the ROLE_SUBADMIN is a member.\n * @summary Delete Role(s)\n * @param {RoleBulkDeleteRequestBeta} roleBulkDeleteRequestBeta\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n bulkDeleteRoles: function (roleBulkDeleteRequestBeta, axiosOptions) {\n return localVarFp.bulkDeleteRoles(roleBulkDeleteRequestBeta, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This API creates a role. You must have a token with API, ORG_ADMIN, ROLE_ADMIN, or ROLE_SUBADMIN authority to call this API. In addition, a ROLE_SUBADMIN may not create a role including an access profile if that access profile is associated with a source the ROLE_SUBADMIN is not associated with themselves. The maximum supported length for the description field is 2000 characters. Longer descriptions will be preserved for existing roles. However, any new roles as well as any updates to existing descriptions will be limited to 2000 characters.\n * @summary Create a Role\n * @param {RoleBeta} roleBeta\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n createRole: function (roleBeta, axiosOptions) {\n return localVarFp.createRole(roleBeta, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This API deletes a Role by its ID. A token with API, ORG_ADMIN, ROLE_ADMIN, or ROLE_SUBADMIN authority is required to call this API. In addition, a token with ROLE_SUBADMIN authority may only call this API if all Access Profiles included in the Role are associated to Sources with management workgroups of which the ROLE_SUBADMIN is a member.\n * @summary Delete a Role\n * @param {string} id ID of the Role\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n deleteRole: function (id, axiosOptions) {\n return localVarFp.deleteRole(id, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This API returns a Role by its ID. A token with API, ORG_ADMIN, ROLE_ADMIN, or ROLE_SUBADMIN authority is required to call this API. In addition, a token with ROLE_SUBADMIN authority may only call this API if all Access Profiles included in the Role are associated to Sources with management workgroups of which the ROLE_SUBADMIN is a member.\n * @summary Get a Role\n * @param {string} id ID of the Role\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getRole: function (id, axiosOptions) {\n return localVarFp.getRole(id, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n *\n * @summary Identities assigned a Role\n * @param {string} id ID of the Role for which the assigned Identities are to be listed\n * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **id**: *eq, in* **aliasName**: *eq, sw* **email**: *eq, sw* **name**: *eq, sw, co*\n * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **id, name, aliasName, email**\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getRoleAssignedIdentities: function (id, limit, offset, count, filters, sorters, axiosOptions) {\n return localVarFp.getRoleAssignedIdentities(id, limit, offset, count, filters, sorters, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This API returns a list of Roles. A token with API, ORG_ADMIN, ROLE_ADMIN, or ROLE_SUBADMIN authority is required to call this API.\n * @summary List Roles\n * @param {string} [forSubadmin] If provided, filters the returned list according to what is visible to the indicated ROLE_SUBADMIN Identity. The value of the parameter is either an Identity ID, or the special value **me**, which is shorthand for the calling Identity\\'s ID. A 400 Bad Request error is returned if the **for-subadmin** parameter is specified for an Identity that is not a subadmin.\n * @param {number} [limit] Note that for this API the maximum value for limit is 50. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **id**: *eq, in* **name**: *eq, sw, co* **created**: *gt, lt, ge, le* **modified**: *gt, lt, ge, le* **owner.id**: *eq, in* **requestable**: *eq*\n * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **name, created, modified**\n * @param {string} [forSegmentIds] If present and not empty, additionally filters Roles to those which are assigned to the Segment(s) with the specified IDs. If segmentation is currently unavailable, specifying this parameter results in an error.\n * @param {boolean} [includeUnsegmented] Whether or not the response list should contain unsegmented Roles. If *for-segment-ids* is absent or empty, specifying *include-unsegmented* as false results in an error.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n listRoles: function (forSubadmin, limit, offset, count, filters, sorters, forSegmentIds, includeUnsegmented, axiosOptions) {\n return localVarFp.listRoles(forSubadmin, limit, offset, count, filters, sorters, forSegmentIds, includeUnsegmented, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This API updates an existing Role using [JSON Patch](https://tools.ietf.org/html/rfc6902) syntax. The following fields are patchable: **name**, **description**, **enabled**, **owner**, **accessProfiles**, **membership**, **requestable**, **accessRequestConfig**, **revokeRequestConfig**, **segments** A token with API, ORG_ADMIN, ROLE_ADMIN, or ROLE_SUBADMIN authority is required to call this API. In addition, a token with ROLE_SUBADMIN authority may only call this API if all Access Profiles included in the Role are associated to Sources with management workgroups of which the ROLE_SUBADMIN is a member. The maximum supported length for the description field is 2000 characters. Longer descriptions will be preserved for existing roles, however, any new roles as well as any updates to existing descriptions will be limited to 2000 characters.\n * @summary Patch a specified Role\n * @param {string} id ID of the Role to patch\n * @param {Array} jsonPatchOperationBeta\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n patchRole: function (id, jsonPatchOperationBeta, axiosOptions) {\n return localVarFp.patchRole(id, jsonPatchOperationBeta, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n };\n};\nexports.RolesBetaApiFactory = RolesBetaApiFactory;\n/**\n * RolesBetaApi - object-oriented interface\n * @export\n * @class RolesBetaApi\n * @extends {BaseAPI}\n */\nvar RolesBetaApi = /** @class */ (function (_super) {\n __extends(RolesBetaApi, _super);\n function RolesBetaApi() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n * This API initiates a bulk deletion of one or more Roles. A token with API, ORG_ADMIN, ROLE_ADMIN, or ROLE_SUBADMIN authority is required to call this API. In addition, a token with ROLE_SUBADMIN authority may only call this API if all Roles included in the request are associated to Sources with management workgroups of which the ROLE_SUBADMIN is a member.\n * @summary Delete Role(s)\n * @param {RolesBetaApiBulkDeleteRolesRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof RolesBetaApi\n */\n RolesBetaApi.prototype.bulkDeleteRoles = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.RolesBetaApiFp)(this.configuration).bulkDeleteRoles(requestParameters.roleBulkDeleteRequestBeta, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This API creates a role. You must have a token with API, ORG_ADMIN, ROLE_ADMIN, or ROLE_SUBADMIN authority to call this API. In addition, a ROLE_SUBADMIN may not create a role including an access profile if that access profile is associated with a source the ROLE_SUBADMIN is not associated with themselves. The maximum supported length for the description field is 2000 characters. Longer descriptions will be preserved for existing roles. However, any new roles as well as any updates to existing descriptions will be limited to 2000 characters.\n * @summary Create a Role\n * @param {RolesBetaApiCreateRoleRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof RolesBetaApi\n */\n RolesBetaApi.prototype.createRole = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.RolesBetaApiFp)(this.configuration).createRole(requestParameters.roleBeta, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This API deletes a Role by its ID. A token with API, ORG_ADMIN, ROLE_ADMIN, or ROLE_SUBADMIN authority is required to call this API. In addition, a token with ROLE_SUBADMIN authority may only call this API if all Access Profiles included in the Role are associated to Sources with management workgroups of which the ROLE_SUBADMIN is a member.\n * @summary Delete a Role\n * @param {RolesBetaApiDeleteRoleRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof RolesBetaApi\n */\n RolesBetaApi.prototype.deleteRole = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.RolesBetaApiFp)(this.configuration).deleteRole(requestParameters.id, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This API returns a Role by its ID. A token with API, ORG_ADMIN, ROLE_ADMIN, or ROLE_SUBADMIN authority is required to call this API. In addition, a token with ROLE_SUBADMIN authority may only call this API if all Access Profiles included in the Role are associated to Sources with management workgroups of which the ROLE_SUBADMIN is a member.\n * @summary Get a Role\n * @param {RolesBetaApiGetRoleRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof RolesBetaApi\n */\n RolesBetaApi.prototype.getRole = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.RolesBetaApiFp)(this.configuration).getRole(requestParameters.id, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n *\n * @summary Identities assigned a Role\n * @param {RolesBetaApiGetRoleAssignedIdentitiesRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof RolesBetaApi\n */\n RolesBetaApi.prototype.getRoleAssignedIdentities = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.RolesBetaApiFp)(this.configuration).getRoleAssignedIdentities(requestParameters.id, requestParameters.limit, requestParameters.offset, requestParameters.count, requestParameters.filters, requestParameters.sorters, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This API returns a list of Roles. A token with API, ORG_ADMIN, ROLE_ADMIN, or ROLE_SUBADMIN authority is required to call this API.\n * @summary List Roles\n * @param {RolesBetaApiListRolesRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof RolesBetaApi\n */\n RolesBetaApi.prototype.listRoles = function (requestParameters, axiosOptions) {\n var _this = this;\n if (requestParameters === void 0) { requestParameters = {}; }\n return (0, exports.RolesBetaApiFp)(this.configuration).listRoles(requestParameters.forSubadmin, requestParameters.limit, requestParameters.offset, requestParameters.count, requestParameters.filters, requestParameters.sorters, requestParameters.forSegmentIds, requestParameters.includeUnsegmented, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This API updates an existing Role using [JSON Patch](https://tools.ietf.org/html/rfc6902) syntax. The following fields are patchable: **name**, **description**, **enabled**, **owner**, **accessProfiles**, **membership**, **requestable**, **accessRequestConfig**, **revokeRequestConfig**, **segments** A token with API, ORG_ADMIN, ROLE_ADMIN, or ROLE_SUBADMIN authority is required to call this API. In addition, a token with ROLE_SUBADMIN authority may only call this API if all Access Profiles included in the Role are associated to Sources with management workgroups of which the ROLE_SUBADMIN is a member. The maximum supported length for the description field is 2000 characters. Longer descriptions will be preserved for existing roles, however, any new roles as well as any updates to existing descriptions will be limited to 2000 characters.\n * @summary Patch a specified Role\n * @param {RolesBetaApiPatchRoleRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof RolesBetaApi\n */\n RolesBetaApi.prototype.patchRole = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.RolesBetaApiFp)(this.configuration).patchRole(requestParameters.id, requestParameters.jsonPatchOperationBeta, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n return RolesBetaApi;\n}(base_1.BaseAPI));\nexports.RolesBetaApi = RolesBetaApi;\n/**\n * SODPolicyBetaApi - axios parameter creator\n * @export\n */\nvar SODPolicyBetaApiAxiosParamCreator = function (configuration) {\n var _this = this;\n return {\n /**\n * This creates both General and Conflicting Access Based policy, with a limit of 50 entitlements for each (left & right) criteria for Conflicting Access Based SOD policy. Requires role of ORG_ADMIN.\n * @summary Create SOD policy\n * @param {SodPolicyBeta} sodPolicyBeta\n * @param {*} [axiosOptions] Override http request option.\n * @deprecated\n * @throws {RequiredError}\n */\n createSodPolicy: function (sodPolicyBeta, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'sodPolicyBeta' is not null or undefined\n (0, common_1.assertParamExists)('createSodPolicy', 'sodPolicyBeta', sodPolicyBeta);\n localVarPath = \"/sod-policies\";\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n localVarHeaderParameter['Content-Type'] = 'application/json';\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(sodPolicyBeta, localVarRequestOptions, configuration);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This deletes a specified SOD policy. Requires role of ORG_ADMIN.\n * @summary Delete SOD policy by ID\n * @param {string} id The ID of the SOD Policy to delete.\n * @param {boolean} [logical] Indicates whether this is a soft delete (logical true) or a hard delete.\n * @param {*} [axiosOptions] Override http request option.\n * @deprecated\n * @throws {RequiredError}\n */\n deleteSodPolicy: function (id, logical, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'id' is not null or undefined\n (0, common_1.assertParamExists)('deleteSodPolicy', 'id', id);\n localVarPath = \"/sod-policies/{id}\"\n .replace(\"{\".concat(\"id\", \"}\"), encodeURIComponent(String(id)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'DELETE' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n if (logical !== undefined) {\n localVarQueryParameter['logical'] = logical;\n }\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This deletes schedule for a specified SOD policy. Requires role of ORG_ADMIN.\n * @summary Delete SOD policy schedule\n * @param {string} id The ID of the SOD policy the schedule must be deleted for.\n * @param {*} [axiosOptions] Override http request option.\n * @deprecated\n * @throws {RequiredError}\n */\n deleteSodPolicySchedule: function (id, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'id' is not null or undefined\n (0, common_1.assertParamExists)('deleteSodPolicySchedule', 'id', id);\n localVarPath = \"/sod-policies/{id}/schedule\"\n .replace(\"{\".concat(\"id\", \"}\"), encodeURIComponent(String(id)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'DELETE' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This allows to download a specified named violation report for a given report reference. Requires role of ORG_ADMIN.\n * @summary Download custom violation report\n * @param {string} reportResultId The ID of the report reference to download.\n * @param {string} fileName Custom Name for the file.\n * @param {*} [axiosOptions] Override http request option.\n * @deprecated\n * @throws {RequiredError}\n */\n getCustomViolationReport: function (reportResultId, fileName, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'reportResultId' is not null or undefined\n (0, common_1.assertParamExists)('getCustomViolationReport', 'reportResultId', reportResultId);\n // verify required parameter 'fileName' is not null or undefined\n (0, common_1.assertParamExists)('getCustomViolationReport', 'fileName', fileName);\n localVarPath = \"/sod-violation-report/{reportResultId}/download/{fileName}\"\n .replace(\"{\".concat(\"reportResultId\", \"}\"), encodeURIComponent(String(reportResultId)))\n .replace(\"{\".concat(\"fileName\", \"}\"), encodeURIComponent(String(fileName)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This allows to download a violation report for a given report reference. Requires role of ORG_ADMIN.\n * @summary Download violation report\n * @param {string} reportResultId The ID of the report reference to download.\n * @param {*} [axiosOptions] Override http request option.\n * @deprecated\n * @throws {RequiredError}\n */\n getDefaultViolationReport: function (reportResultId, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'reportResultId' is not null or undefined\n (0, common_1.assertParamExists)('getDefaultViolationReport', 'reportResultId', reportResultId);\n localVarPath = \"/sod-violation-report/{reportResultId}/download\"\n .replace(\"{\".concat(\"reportResultId\", \"}\"), encodeURIComponent(String(reportResultId)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This endpoint gets the status for a violation report for all policy run. Requires role of ORG_ADMIN.\n * @summary Get multi-report run task status\n * @param {*} [axiosOptions] Override http request option.\n * @deprecated\n * @throws {RequiredError}\n */\n getSodAllReportRunStatus: function (axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n localVarPath = \"/sod-violation-report\";\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This gets specified SOD policy. Requires role of ORG_ADMIN.\n * @summary Get SOD policy by ID\n * @param {string} id The ID of the object reference to retrieve.\n * @param {*} [axiosOptions] Override http request option.\n * @deprecated\n * @throws {RequiredError}\n */\n getSodPolicy: function (id, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'id' is not null or undefined\n (0, common_1.assertParamExists)('getSodPolicy', 'id', id);\n localVarPath = \"/sod-policies/{id}\"\n .replace(\"{\".concat(\"id\", \"}\"), encodeURIComponent(String(id)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This endpoint gets a specified SOD policy\\'s schedule. Requires the role of ORG_ADMIN.\n * @summary Get SOD policy schedule\n * @param {string} id The ID of the object reference to retrieve.\n * @param {*} [axiosOptions] Override http request option.\n * @deprecated\n * @throws {RequiredError}\n */\n getSodPolicySchedule: function (id, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'id' is not null or undefined\n (0, common_1.assertParamExists)('getSodPolicySchedule', 'id', id);\n localVarPath = \"/sod-policies/{id}/schedule\"\n .replace(\"{\".concat(\"id\", \"}\"), encodeURIComponent(String(id)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This gets the status for a violation report run task that has already been invoked. Requires role of ORG_ADMIN.\n * @summary Get violation report run status\n * @param {string} reportResultId The ID of the report reference to retrieve.\n * @param {*} [axiosOptions] Override http request option.\n * @deprecated\n * @throws {RequiredError}\n */\n getSodViolationReportRunStatus: function (reportResultId, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'reportResultId' is not null or undefined\n (0, common_1.assertParamExists)('getSodViolationReportRunStatus', 'reportResultId', reportResultId);\n localVarPath = \"/sod-policies/sod-violation-report-status/{reportResultId}\"\n .replace(\"{\".concat(\"reportResultId\", \"}\"), encodeURIComponent(String(reportResultId)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This gets the status for a violation report run task that has already been invoked. Requires role of ORG_ADMIN.\n * @summary Get SOD violation report status\n * @param {string} id The ID of the object reference to retrieve.\n * @param {*} [axiosOptions] Override http request option.\n * @deprecated\n * @throws {RequiredError}\n */\n getSodViolationReportStatus: function (id, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'id' is not null or undefined\n (0, common_1.assertParamExists)('getSodViolationReportStatus', 'id', id);\n localVarPath = \"/sod-policies/{id}/violation-report\"\n .replace(\"{\".concat(\"id\", \"}\"), encodeURIComponent(String(id)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This gets list of all SOD policies. Requires role of ORG_ADMIN\n * @summary List SOD policies\n * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **id**: *eq* **name**: *eq* **state**: *eq*\n * @param {*} [axiosOptions] Override http request option.\n * @deprecated\n * @throws {RequiredError}\n */\n listSodPolicies: function (limit, offset, count, filters, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n localVarPath = \"/sod-policies\";\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n if (limit !== undefined) {\n localVarQueryParameter['limit'] = limit;\n }\n if (offset !== undefined) {\n localVarQueryParameter['offset'] = offset;\n }\n if (count !== undefined) {\n localVarQueryParameter['count'] = count;\n }\n if (filters !== undefined) {\n localVarQueryParameter['filters'] = filters;\n }\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * Allows updating SOD Policy fields other than [\\\"id\\\",\\\"created\\\",\\\"creatorId\\\",\\\"policyQuery\\\",\\\"type\\\"] using the [JSON Patch](https://tools.ietf.org/html/rfc6902) standard. Requires role of ORG_ADMIN. This endpoint can only patch CONFLICTING_ACCESS_BASED type policies. Do not use this endpoint to patch general policies - doing so will build an API exception.\n * @summary Patch a SOD policy\n * @param {string} id The ID of the SOD policy being modified.\n * @param {Array} requestBody A list of SOD Policy update operations according to the [JSON Patch](https://tools.ietf.org/html/rfc6902) standard. The following fields are patchable: * name * description * ownerRef * externalPolicyReference * compensatingControls * correctionAdvice * state * tags * violationOwnerAssignmentConfig * scheduled * conflictingAccessCriteria\n * @param {*} [axiosOptions] Override http request option.\n * @deprecated\n * @throws {RequiredError}\n */\n patchSodPolicy: function (id, requestBody, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'id' is not null or undefined\n (0, common_1.assertParamExists)('patchSodPolicy', 'id', id);\n // verify required parameter 'requestBody' is not null or undefined\n (0, common_1.assertParamExists)('patchSodPolicy', 'requestBody', requestBody);\n localVarPath = \"/sod-policies/{id}\"\n .replace(\"{\".concat(\"id\", \"}\"), encodeURIComponent(String(id)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'PATCH' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n localVarHeaderParameter['Content-Type'] = 'application/json-patch+json';\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(requestBody, localVarRequestOptions, configuration);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This updates schedule for a specified SOD policy. Requires role of ORG_ADMIN.\n * @summary Update SOD Policy schedule\n * @param {string} id The ID of the SOD policy to update its schedule.\n * @param {SodPolicyScheduleBeta} sodPolicyScheduleBeta\n * @param {*} [axiosOptions] Override http request option.\n * @deprecated\n * @throws {RequiredError}\n */\n putPolicySchedule: function (id, sodPolicyScheduleBeta, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'id' is not null or undefined\n (0, common_1.assertParamExists)('putPolicySchedule', 'id', id);\n // verify required parameter 'sodPolicyScheduleBeta' is not null or undefined\n (0, common_1.assertParamExists)('putPolicySchedule', 'sodPolicyScheduleBeta', sodPolicyScheduleBeta);\n localVarPath = \"/sod-policies/{id}/schedule\"\n .replace(\"{\".concat(\"id\", \"}\"), encodeURIComponent(String(id)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'PUT' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n localVarHeaderParameter['Content-Type'] = 'application/json';\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(sodPolicyScheduleBeta, localVarRequestOptions, configuration);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This updates a specified SOD policy. Requires role of ORG_ADMIN.\n * @summary Update SOD policy by ID\n * @param {string} id The ID of the SOD policy to update.\n * @param {SodPolicyBeta} sodPolicyBeta\n * @param {*} [axiosOptions] Override http request option.\n * @deprecated\n * @throws {RequiredError}\n */\n putSodPolicy: function (id, sodPolicyBeta, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'id' is not null or undefined\n (0, common_1.assertParamExists)('putSodPolicy', 'id', id);\n // verify required parameter 'sodPolicyBeta' is not null or undefined\n (0, common_1.assertParamExists)('putSodPolicy', 'sodPolicyBeta', sodPolicyBeta);\n localVarPath = \"/sod-policies/{id}\"\n .replace(\"{\".concat(\"id\", \"}\"), encodeURIComponent(String(id)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'PUT' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n localVarHeaderParameter['Content-Type'] = 'application/json';\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(sodPolicyBeta, localVarRequestOptions, configuration);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * Runs multi-policy report for the org. If a policy reports more than 5000 violations, the report mentions that the violation limit was exceeded for that policy. If the request is empty, the report runs for all policies. Otherwise, the report runs for only the filtered policy list provided. Requires role of ORG_ADMIN.\n * @summary Runs all policies for org\n * @param {MultiPolicyRequestBeta} [multiPolicyRequestBeta]\n * @param {*} [axiosOptions] Override http request option.\n * @deprecated\n * @throws {RequiredError}\n */\n startSodAllPoliciesForOrg: function (multiPolicyRequestBeta, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n localVarPath = \"/sod-violation-report/run\";\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n localVarHeaderParameter['Content-Type'] = 'application/json';\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(multiPolicyRequestBeta, localVarRequestOptions, configuration);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This invokes processing of violation report for given SOD policy. If the policy reports more than 5000 violations, the report returns with violation limit exceeded message. Requires role of ORG_ADMIN.\n * @summary Runs SOD policy violation report\n * @param {string} id The SOD policy ID to run.\n * @param {*} [axiosOptions] Override http request option.\n * @deprecated\n * @throws {RequiredError}\n */\n startSodPolicy: function (id, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'id' is not null or undefined\n (0, common_1.assertParamExists)('startSodPolicy', 'id', id);\n localVarPath = \"/sod-policies/{id}/violation-report/run\"\n .replace(\"{\".concat(\"id\", \"}\"), encodeURIComponent(String(id)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n };\n};\nexports.SODPolicyBetaApiAxiosParamCreator = SODPolicyBetaApiAxiosParamCreator;\n/**\n * SODPolicyBetaApi - functional programming interface\n * @export\n */\nvar SODPolicyBetaApiFp = function (configuration) {\n var localVarAxiosParamCreator = (0, exports.SODPolicyBetaApiAxiosParamCreator)(configuration);\n return {\n /**\n * This creates both General and Conflicting Access Based policy, with a limit of 50 entitlements for each (left & right) criteria for Conflicting Access Based SOD policy. Requires role of ORG_ADMIN.\n * @summary Create SOD policy\n * @param {SodPolicyBeta} sodPolicyBeta\n * @param {*} [axiosOptions] Override http request option.\n * @deprecated\n * @throws {RequiredError}\n */\n createSodPolicy: function (sodPolicyBeta, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.createSodPolicy(sodPolicyBeta, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This deletes a specified SOD policy. Requires role of ORG_ADMIN.\n * @summary Delete SOD policy by ID\n * @param {string} id The ID of the SOD Policy to delete.\n * @param {boolean} [logical] Indicates whether this is a soft delete (logical true) or a hard delete.\n * @param {*} [axiosOptions] Override http request option.\n * @deprecated\n * @throws {RequiredError}\n */\n deleteSodPolicy: function (id, logical, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.deleteSodPolicy(id, logical, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This deletes schedule for a specified SOD policy. Requires role of ORG_ADMIN.\n * @summary Delete SOD policy schedule\n * @param {string} id The ID of the SOD policy the schedule must be deleted for.\n * @param {*} [axiosOptions] Override http request option.\n * @deprecated\n * @throws {RequiredError}\n */\n deleteSodPolicySchedule: function (id, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.deleteSodPolicySchedule(id, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This allows to download a specified named violation report for a given report reference. Requires role of ORG_ADMIN.\n * @summary Download custom violation report\n * @param {string} reportResultId The ID of the report reference to download.\n * @param {string} fileName Custom Name for the file.\n * @param {*} [axiosOptions] Override http request option.\n * @deprecated\n * @throws {RequiredError}\n */\n getCustomViolationReport: function (reportResultId, fileName, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.getCustomViolationReport(reportResultId, fileName, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This allows to download a violation report for a given report reference. Requires role of ORG_ADMIN.\n * @summary Download violation report\n * @param {string} reportResultId The ID of the report reference to download.\n * @param {*} [axiosOptions] Override http request option.\n * @deprecated\n * @throws {RequiredError}\n */\n getDefaultViolationReport: function (reportResultId, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.getDefaultViolationReport(reportResultId, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This endpoint gets the status for a violation report for all policy run. Requires role of ORG_ADMIN.\n * @summary Get multi-report run task status\n * @param {*} [axiosOptions] Override http request option.\n * @deprecated\n * @throws {RequiredError}\n */\n getSodAllReportRunStatus: function (axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.getSodAllReportRunStatus(axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This gets specified SOD policy. Requires role of ORG_ADMIN.\n * @summary Get SOD policy by ID\n * @param {string} id The ID of the object reference to retrieve.\n * @param {*} [axiosOptions] Override http request option.\n * @deprecated\n * @throws {RequiredError}\n */\n getSodPolicy: function (id, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.getSodPolicy(id, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This endpoint gets a specified SOD policy\\'s schedule. Requires the role of ORG_ADMIN.\n * @summary Get SOD policy schedule\n * @param {string} id The ID of the object reference to retrieve.\n * @param {*} [axiosOptions] Override http request option.\n * @deprecated\n * @throws {RequiredError}\n */\n getSodPolicySchedule: function (id, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.getSodPolicySchedule(id, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This gets the status for a violation report run task that has already been invoked. Requires role of ORG_ADMIN.\n * @summary Get violation report run status\n * @param {string} reportResultId The ID of the report reference to retrieve.\n * @param {*} [axiosOptions] Override http request option.\n * @deprecated\n * @throws {RequiredError}\n */\n getSodViolationReportRunStatus: function (reportResultId, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.getSodViolationReportRunStatus(reportResultId, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This gets the status for a violation report run task that has already been invoked. Requires role of ORG_ADMIN.\n * @summary Get SOD violation report status\n * @param {string} id The ID of the object reference to retrieve.\n * @param {*} [axiosOptions] Override http request option.\n * @deprecated\n * @throws {RequiredError}\n */\n getSodViolationReportStatus: function (id, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.getSodViolationReportStatus(id, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This gets list of all SOD policies. Requires role of ORG_ADMIN\n * @summary List SOD policies\n * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **id**: *eq* **name**: *eq* **state**: *eq*\n * @param {*} [axiosOptions] Override http request option.\n * @deprecated\n * @throws {RequiredError}\n */\n listSodPolicies: function (limit, offset, count, filters, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.listSodPolicies(limit, offset, count, filters, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * Allows updating SOD Policy fields other than [\\\"id\\\",\\\"created\\\",\\\"creatorId\\\",\\\"policyQuery\\\",\\\"type\\\"] using the [JSON Patch](https://tools.ietf.org/html/rfc6902) standard. Requires role of ORG_ADMIN. This endpoint can only patch CONFLICTING_ACCESS_BASED type policies. Do not use this endpoint to patch general policies - doing so will build an API exception.\n * @summary Patch a SOD policy\n * @param {string} id The ID of the SOD policy being modified.\n * @param {Array} requestBody A list of SOD Policy update operations according to the [JSON Patch](https://tools.ietf.org/html/rfc6902) standard. The following fields are patchable: * name * description * ownerRef * externalPolicyReference * compensatingControls * correctionAdvice * state * tags * violationOwnerAssignmentConfig * scheduled * conflictingAccessCriteria\n * @param {*} [axiosOptions] Override http request option.\n * @deprecated\n * @throws {RequiredError}\n */\n patchSodPolicy: function (id, requestBody, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.patchSodPolicy(id, requestBody, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This updates schedule for a specified SOD policy. Requires role of ORG_ADMIN.\n * @summary Update SOD Policy schedule\n * @param {string} id The ID of the SOD policy to update its schedule.\n * @param {SodPolicyScheduleBeta} sodPolicyScheduleBeta\n * @param {*} [axiosOptions] Override http request option.\n * @deprecated\n * @throws {RequiredError}\n */\n putPolicySchedule: function (id, sodPolicyScheduleBeta, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.putPolicySchedule(id, sodPolicyScheduleBeta, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This updates a specified SOD policy. Requires role of ORG_ADMIN.\n * @summary Update SOD policy by ID\n * @param {string} id The ID of the SOD policy to update.\n * @param {SodPolicyBeta} sodPolicyBeta\n * @param {*} [axiosOptions] Override http request option.\n * @deprecated\n * @throws {RequiredError}\n */\n putSodPolicy: function (id, sodPolicyBeta, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.putSodPolicy(id, sodPolicyBeta, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * Runs multi-policy report for the org. If a policy reports more than 5000 violations, the report mentions that the violation limit was exceeded for that policy. If the request is empty, the report runs for all policies. Otherwise, the report runs for only the filtered policy list provided. Requires role of ORG_ADMIN.\n * @summary Runs all policies for org\n * @param {MultiPolicyRequestBeta} [multiPolicyRequestBeta]\n * @param {*} [axiosOptions] Override http request option.\n * @deprecated\n * @throws {RequiredError}\n */\n startSodAllPoliciesForOrg: function (multiPolicyRequestBeta, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.startSodAllPoliciesForOrg(multiPolicyRequestBeta, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This invokes processing of violation report for given SOD policy. If the policy reports more than 5000 violations, the report returns with violation limit exceeded message. Requires role of ORG_ADMIN.\n * @summary Runs SOD policy violation report\n * @param {string} id The SOD policy ID to run.\n * @param {*} [axiosOptions] Override http request option.\n * @deprecated\n * @throws {RequiredError}\n */\n startSodPolicy: function (id, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.startSodPolicy(id, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n };\n};\nexports.SODPolicyBetaApiFp = SODPolicyBetaApiFp;\n/**\n * SODPolicyBetaApi - factory interface\n * @export\n */\nvar SODPolicyBetaApiFactory = function (configuration, basePath, axios) {\n var localVarFp = (0, exports.SODPolicyBetaApiFp)(configuration);\n return {\n /**\n * This creates both General and Conflicting Access Based policy, with a limit of 50 entitlements for each (left & right) criteria for Conflicting Access Based SOD policy. Requires role of ORG_ADMIN.\n * @summary Create SOD policy\n * @param {SodPolicyBeta} sodPolicyBeta\n * @param {*} [axiosOptions] Override http request option.\n * @deprecated\n * @throws {RequiredError}\n */\n createSodPolicy: function (sodPolicyBeta, axiosOptions) {\n return localVarFp.createSodPolicy(sodPolicyBeta, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This deletes a specified SOD policy. Requires role of ORG_ADMIN.\n * @summary Delete SOD policy by ID\n * @param {string} id The ID of the SOD Policy to delete.\n * @param {boolean} [logical] Indicates whether this is a soft delete (logical true) or a hard delete.\n * @param {*} [axiosOptions] Override http request option.\n * @deprecated\n * @throws {RequiredError}\n */\n deleteSodPolicy: function (id, logical, axiosOptions) {\n return localVarFp.deleteSodPolicy(id, logical, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This deletes schedule for a specified SOD policy. Requires role of ORG_ADMIN.\n * @summary Delete SOD policy schedule\n * @param {string} id The ID of the SOD policy the schedule must be deleted for.\n * @param {*} [axiosOptions] Override http request option.\n * @deprecated\n * @throws {RequiredError}\n */\n deleteSodPolicySchedule: function (id, axiosOptions) {\n return localVarFp.deleteSodPolicySchedule(id, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This allows to download a specified named violation report for a given report reference. Requires role of ORG_ADMIN.\n * @summary Download custom violation report\n * @param {string} reportResultId The ID of the report reference to download.\n * @param {string} fileName Custom Name for the file.\n * @param {*} [axiosOptions] Override http request option.\n * @deprecated\n * @throws {RequiredError}\n */\n getCustomViolationReport: function (reportResultId, fileName, axiosOptions) {\n return localVarFp.getCustomViolationReport(reportResultId, fileName, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This allows to download a violation report for a given report reference. Requires role of ORG_ADMIN.\n * @summary Download violation report\n * @param {string} reportResultId The ID of the report reference to download.\n * @param {*} [axiosOptions] Override http request option.\n * @deprecated\n * @throws {RequiredError}\n */\n getDefaultViolationReport: function (reportResultId, axiosOptions) {\n return localVarFp.getDefaultViolationReport(reportResultId, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This endpoint gets the status for a violation report for all policy run. Requires role of ORG_ADMIN.\n * @summary Get multi-report run task status\n * @param {*} [axiosOptions] Override http request option.\n * @deprecated\n * @throws {RequiredError}\n */\n getSodAllReportRunStatus: function (axiosOptions) {\n return localVarFp.getSodAllReportRunStatus(axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This gets specified SOD policy. Requires role of ORG_ADMIN.\n * @summary Get SOD policy by ID\n * @param {string} id The ID of the object reference to retrieve.\n * @param {*} [axiosOptions] Override http request option.\n * @deprecated\n * @throws {RequiredError}\n */\n getSodPolicy: function (id, axiosOptions) {\n return localVarFp.getSodPolicy(id, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This endpoint gets a specified SOD policy\\'s schedule. Requires the role of ORG_ADMIN.\n * @summary Get SOD policy schedule\n * @param {string} id The ID of the object reference to retrieve.\n * @param {*} [axiosOptions] Override http request option.\n * @deprecated\n * @throws {RequiredError}\n */\n getSodPolicySchedule: function (id, axiosOptions) {\n return localVarFp.getSodPolicySchedule(id, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This gets the status for a violation report run task that has already been invoked. Requires role of ORG_ADMIN.\n * @summary Get violation report run status\n * @param {string} reportResultId The ID of the report reference to retrieve.\n * @param {*} [axiosOptions] Override http request option.\n * @deprecated\n * @throws {RequiredError}\n */\n getSodViolationReportRunStatus: function (reportResultId, axiosOptions) {\n return localVarFp.getSodViolationReportRunStatus(reportResultId, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This gets the status for a violation report run task that has already been invoked. Requires role of ORG_ADMIN.\n * @summary Get SOD violation report status\n * @param {string} id The ID of the object reference to retrieve.\n * @param {*} [axiosOptions] Override http request option.\n * @deprecated\n * @throws {RequiredError}\n */\n getSodViolationReportStatus: function (id, axiosOptions) {\n return localVarFp.getSodViolationReportStatus(id, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This gets list of all SOD policies. Requires role of ORG_ADMIN\n * @summary List SOD policies\n * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **id**: *eq* **name**: *eq* **state**: *eq*\n * @param {*} [axiosOptions] Override http request option.\n * @deprecated\n * @throws {RequiredError}\n */\n listSodPolicies: function (limit, offset, count, filters, axiosOptions) {\n return localVarFp.listSodPolicies(limit, offset, count, filters, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * Allows updating SOD Policy fields other than [\\\"id\\\",\\\"created\\\",\\\"creatorId\\\",\\\"policyQuery\\\",\\\"type\\\"] using the [JSON Patch](https://tools.ietf.org/html/rfc6902) standard. Requires role of ORG_ADMIN. This endpoint can only patch CONFLICTING_ACCESS_BASED type policies. Do not use this endpoint to patch general policies - doing so will build an API exception.\n * @summary Patch a SOD policy\n * @param {string} id The ID of the SOD policy being modified.\n * @param {Array} requestBody A list of SOD Policy update operations according to the [JSON Patch](https://tools.ietf.org/html/rfc6902) standard. The following fields are patchable: * name * description * ownerRef * externalPolicyReference * compensatingControls * correctionAdvice * state * tags * violationOwnerAssignmentConfig * scheduled * conflictingAccessCriteria\n * @param {*} [axiosOptions] Override http request option.\n * @deprecated\n * @throws {RequiredError}\n */\n patchSodPolicy: function (id, requestBody, axiosOptions) {\n return localVarFp.patchSodPolicy(id, requestBody, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This updates schedule for a specified SOD policy. Requires role of ORG_ADMIN.\n * @summary Update SOD Policy schedule\n * @param {string} id The ID of the SOD policy to update its schedule.\n * @param {SodPolicyScheduleBeta} sodPolicyScheduleBeta\n * @param {*} [axiosOptions] Override http request option.\n * @deprecated\n * @throws {RequiredError}\n */\n putPolicySchedule: function (id, sodPolicyScheduleBeta, axiosOptions) {\n return localVarFp.putPolicySchedule(id, sodPolicyScheduleBeta, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This updates a specified SOD policy. Requires role of ORG_ADMIN.\n * @summary Update SOD policy by ID\n * @param {string} id The ID of the SOD policy to update.\n * @param {SodPolicyBeta} sodPolicyBeta\n * @param {*} [axiosOptions] Override http request option.\n * @deprecated\n * @throws {RequiredError}\n */\n putSodPolicy: function (id, sodPolicyBeta, axiosOptions) {\n return localVarFp.putSodPolicy(id, sodPolicyBeta, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * Runs multi-policy report for the org. If a policy reports more than 5000 violations, the report mentions that the violation limit was exceeded for that policy. If the request is empty, the report runs for all policies. Otherwise, the report runs for only the filtered policy list provided. Requires role of ORG_ADMIN.\n * @summary Runs all policies for org\n * @param {MultiPolicyRequestBeta} [multiPolicyRequestBeta]\n * @param {*} [axiosOptions] Override http request option.\n * @deprecated\n * @throws {RequiredError}\n */\n startSodAllPoliciesForOrg: function (multiPolicyRequestBeta, axiosOptions) {\n return localVarFp.startSodAllPoliciesForOrg(multiPolicyRequestBeta, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This invokes processing of violation report for given SOD policy. If the policy reports more than 5000 violations, the report returns with violation limit exceeded message. Requires role of ORG_ADMIN.\n * @summary Runs SOD policy violation report\n * @param {string} id The SOD policy ID to run.\n * @param {*} [axiosOptions] Override http request option.\n * @deprecated\n * @throws {RequiredError}\n */\n startSodPolicy: function (id, axiosOptions) {\n return localVarFp.startSodPolicy(id, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n };\n};\nexports.SODPolicyBetaApiFactory = SODPolicyBetaApiFactory;\n/**\n * SODPolicyBetaApi - object-oriented interface\n * @export\n * @class SODPolicyBetaApi\n * @extends {BaseAPI}\n */\nvar SODPolicyBetaApi = /** @class */ (function (_super) {\n __extends(SODPolicyBetaApi, _super);\n function SODPolicyBetaApi() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n * This creates both General and Conflicting Access Based policy, with a limit of 50 entitlements for each (left & right) criteria for Conflicting Access Based SOD policy. Requires role of ORG_ADMIN.\n * @summary Create SOD policy\n * @param {SODPolicyBetaApiCreateSodPolicyRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @deprecated\n * @throws {RequiredError}\n * @memberof SODPolicyBetaApi\n */\n SODPolicyBetaApi.prototype.createSodPolicy = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.SODPolicyBetaApiFp)(this.configuration).createSodPolicy(requestParameters.sodPolicyBeta, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This deletes a specified SOD policy. Requires role of ORG_ADMIN.\n * @summary Delete SOD policy by ID\n * @param {SODPolicyBetaApiDeleteSodPolicyRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @deprecated\n * @throws {RequiredError}\n * @memberof SODPolicyBetaApi\n */\n SODPolicyBetaApi.prototype.deleteSodPolicy = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.SODPolicyBetaApiFp)(this.configuration).deleteSodPolicy(requestParameters.id, requestParameters.logical, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This deletes schedule for a specified SOD policy. Requires role of ORG_ADMIN.\n * @summary Delete SOD policy schedule\n * @param {SODPolicyBetaApiDeleteSodPolicyScheduleRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @deprecated\n * @throws {RequiredError}\n * @memberof SODPolicyBetaApi\n */\n SODPolicyBetaApi.prototype.deleteSodPolicySchedule = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.SODPolicyBetaApiFp)(this.configuration).deleteSodPolicySchedule(requestParameters.id, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This allows to download a specified named violation report for a given report reference. Requires role of ORG_ADMIN.\n * @summary Download custom violation report\n * @param {SODPolicyBetaApiGetCustomViolationReportRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @deprecated\n * @throws {RequiredError}\n * @memberof SODPolicyBetaApi\n */\n SODPolicyBetaApi.prototype.getCustomViolationReport = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.SODPolicyBetaApiFp)(this.configuration).getCustomViolationReport(requestParameters.reportResultId, requestParameters.fileName, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This allows to download a violation report for a given report reference. Requires role of ORG_ADMIN.\n * @summary Download violation report\n * @param {SODPolicyBetaApiGetDefaultViolationReportRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @deprecated\n * @throws {RequiredError}\n * @memberof SODPolicyBetaApi\n */\n SODPolicyBetaApi.prototype.getDefaultViolationReport = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.SODPolicyBetaApiFp)(this.configuration).getDefaultViolationReport(requestParameters.reportResultId, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This endpoint gets the status for a violation report for all policy run. Requires role of ORG_ADMIN.\n * @summary Get multi-report run task status\n * @param {*} [axiosOptions] Override http request option.\n * @deprecated\n * @throws {RequiredError}\n * @memberof SODPolicyBetaApi\n */\n SODPolicyBetaApi.prototype.getSodAllReportRunStatus = function (axiosOptions) {\n var _this = this;\n return (0, exports.SODPolicyBetaApiFp)(this.configuration).getSodAllReportRunStatus(axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This gets specified SOD policy. Requires role of ORG_ADMIN.\n * @summary Get SOD policy by ID\n * @param {SODPolicyBetaApiGetSodPolicyRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @deprecated\n * @throws {RequiredError}\n * @memberof SODPolicyBetaApi\n */\n SODPolicyBetaApi.prototype.getSodPolicy = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.SODPolicyBetaApiFp)(this.configuration).getSodPolicy(requestParameters.id, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This endpoint gets a specified SOD policy\\'s schedule. Requires the role of ORG_ADMIN.\n * @summary Get SOD policy schedule\n * @param {SODPolicyBetaApiGetSodPolicyScheduleRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @deprecated\n * @throws {RequiredError}\n * @memberof SODPolicyBetaApi\n */\n SODPolicyBetaApi.prototype.getSodPolicySchedule = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.SODPolicyBetaApiFp)(this.configuration).getSodPolicySchedule(requestParameters.id, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This gets the status for a violation report run task that has already been invoked. Requires role of ORG_ADMIN.\n * @summary Get violation report run status\n * @param {SODPolicyBetaApiGetSodViolationReportRunStatusRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @deprecated\n * @throws {RequiredError}\n * @memberof SODPolicyBetaApi\n */\n SODPolicyBetaApi.prototype.getSodViolationReportRunStatus = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.SODPolicyBetaApiFp)(this.configuration).getSodViolationReportRunStatus(requestParameters.reportResultId, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This gets the status for a violation report run task that has already been invoked. Requires role of ORG_ADMIN.\n * @summary Get SOD violation report status\n * @param {SODPolicyBetaApiGetSodViolationReportStatusRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @deprecated\n * @throws {RequiredError}\n * @memberof SODPolicyBetaApi\n */\n SODPolicyBetaApi.prototype.getSodViolationReportStatus = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.SODPolicyBetaApiFp)(this.configuration).getSodViolationReportStatus(requestParameters.id, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This gets list of all SOD policies. Requires role of ORG_ADMIN\n * @summary List SOD policies\n * @param {SODPolicyBetaApiListSodPoliciesRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @deprecated\n * @throws {RequiredError}\n * @memberof SODPolicyBetaApi\n */\n SODPolicyBetaApi.prototype.listSodPolicies = function (requestParameters, axiosOptions) {\n var _this = this;\n if (requestParameters === void 0) { requestParameters = {}; }\n return (0, exports.SODPolicyBetaApiFp)(this.configuration).listSodPolicies(requestParameters.limit, requestParameters.offset, requestParameters.count, requestParameters.filters, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * Allows updating SOD Policy fields other than [\\\"id\\\",\\\"created\\\",\\\"creatorId\\\",\\\"policyQuery\\\",\\\"type\\\"] using the [JSON Patch](https://tools.ietf.org/html/rfc6902) standard. Requires role of ORG_ADMIN. This endpoint can only patch CONFLICTING_ACCESS_BASED type policies. Do not use this endpoint to patch general policies - doing so will build an API exception.\n * @summary Patch a SOD policy\n * @param {SODPolicyBetaApiPatchSodPolicyRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @deprecated\n * @throws {RequiredError}\n * @memberof SODPolicyBetaApi\n */\n SODPolicyBetaApi.prototype.patchSodPolicy = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.SODPolicyBetaApiFp)(this.configuration).patchSodPolicy(requestParameters.id, requestParameters.requestBody, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This updates schedule for a specified SOD policy. Requires role of ORG_ADMIN.\n * @summary Update SOD Policy schedule\n * @param {SODPolicyBetaApiPutPolicyScheduleRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @deprecated\n * @throws {RequiredError}\n * @memberof SODPolicyBetaApi\n */\n SODPolicyBetaApi.prototype.putPolicySchedule = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.SODPolicyBetaApiFp)(this.configuration).putPolicySchedule(requestParameters.id, requestParameters.sodPolicyScheduleBeta, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This updates a specified SOD policy. Requires role of ORG_ADMIN.\n * @summary Update SOD policy by ID\n * @param {SODPolicyBetaApiPutSodPolicyRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @deprecated\n * @throws {RequiredError}\n * @memberof SODPolicyBetaApi\n */\n SODPolicyBetaApi.prototype.putSodPolicy = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.SODPolicyBetaApiFp)(this.configuration).putSodPolicy(requestParameters.id, requestParameters.sodPolicyBeta, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * Runs multi-policy report for the org. If a policy reports more than 5000 violations, the report mentions that the violation limit was exceeded for that policy. If the request is empty, the report runs for all policies. Otherwise, the report runs for only the filtered policy list provided. Requires role of ORG_ADMIN.\n * @summary Runs all policies for org\n * @param {SODPolicyBetaApiStartSodAllPoliciesForOrgRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @deprecated\n * @throws {RequiredError}\n * @memberof SODPolicyBetaApi\n */\n SODPolicyBetaApi.prototype.startSodAllPoliciesForOrg = function (requestParameters, axiosOptions) {\n var _this = this;\n if (requestParameters === void 0) { requestParameters = {}; }\n return (0, exports.SODPolicyBetaApiFp)(this.configuration).startSodAllPoliciesForOrg(requestParameters.multiPolicyRequestBeta, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This invokes processing of violation report for given SOD policy. If the policy reports more than 5000 violations, the report returns with violation limit exceeded message. Requires role of ORG_ADMIN.\n * @summary Runs SOD policy violation report\n * @param {SODPolicyBetaApiStartSodPolicyRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @deprecated\n * @throws {RequiredError}\n * @memberof SODPolicyBetaApi\n */\n SODPolicyBetaApi.prototype.startSodPolicy = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.SODPolicyBetaApiFp)(this.configuration).startSodPolicy(requestParameters.id, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n return SODPolicyBetaApi;\n}(base_1.BaseAPI));\nexports.SODPolicyBetaApi = SODPolicyBetaApi;\n/**\n * SODViolationsBetaApi - axios parameter creator\n * @export\n */\nvar SODViolationsBetaApiAxiosParamCreator = function (configuration) {\n var _this = this;\n return {\n /**\n * This API is used to check if granting some additional accesses would cause the subject to be in violation of any SOD policies. Returns the violations that would be caused. A token with ORG_ADMIN or API authority is required to call this API.\n * @summary Predict SOD violations for identity.\n * @param {IdentityWithNewAccessBeta} identityWithNewAccessBeta\n * @param {*} [axiosOptions] Override http request option.\n * @deprecated\n * @throws {RequiredError}\n */\n startPredictSodViolations: function (identityWithNewAccessBeta, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'identityWithNewAccessBeta' is not null or undefined\n (0, common_1.assertParamExists)('startPredictSodViolations', 'identityWithNewAccessBeta', identityWithNewAccessBeta);\n localVarPath = \"/sod-violations/predict\";\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n localVarHeaderParameter['Content-Type'] = 'application/json';\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(identityWithNewAccessBeta, localVarRequestOptions, configuration);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n };\n};\nexports.SODViolationsBetaApiAxiosParamCreator = SODViolationsBetaApiAxiosParamCreator;\n/**\n * SODViolationsBetaApi - functional programming interface\n * @export\n */\nvar SODViolationsBetaApiFp = function (configuration) {\n var localVarAxiosParamCreator = (0, exports.SODViolationsBetaApiAxiosParamCreator)(configuration);\n return {\n /**\n * This API is used to check if granting some additional accesses would cause the subject to be in violation of any SOD policies. Returns the violations that would be caused. A token with ORG_ADMIN or API authority is required to call this API.\n * @summary Predict SOD violations for identity.\n * @param {IdentityWithNewAccessBeta} identityWithNewAccessBeta\n * @param {*} [axiosOptions] Override http request option.\n * @deprecated\n * @throws {RequiredError}\n */\n startPredictSodViolations: function (identityWithNewAccessBeta, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.startPredictSodViolations(identityWithNewAccessBeta, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n };\n};\nexports.SODViolationsBetaApiFp = SODViolationsBetaApiFp;\n/**\n * SODViolationsBetaApi - factory interface\n * @export\n */\nvar SODViolationsBetaApiFactory = function (configuration, basePath, axios) {\n var localVarFp = (0, exports.SODViolationsBetaApiFp)(configuration);\n return {\n /**\n * This API is used to check if granting some additional accesses would cause the subject to be in violation of any SOD policies. Returns the violations that would be caused. A token with ORG_ADMIN or API authority is required to call this API.\n * @summary Predict SOD violations for identity.\n * @param {IdentityWithNewAccessBeta} identityWithNewAccessBeta\n * @param {*} [axiosOptions] Override http request option.\n * @deprecated\n * @throws {RequiredError}\n */\n startPredictSodViolations: function (identityWithNewAccessBeta, axiosOptions) {\n return localVarFp.startPredictSodViolations(identityWithNewAccessBeta, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n };\n};\nexports.SODViolationsBetaApiFactory = SODViolationsBetaApiFactory;\n/**\n * SODViolationsBetaApi - object-oriented interface\n * @export\n * @class SODViolationsBetaApi\n * @extends {BaseAPI}\n */\nvar SODViolationsBetaApi = /** @class */ (function (_super) {\n __extends(SODViolationsBetaApi, _super);\n function SODViolationsBetaApi() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n * This API is used to check if granting some additional accesses would cause the subject to be in violation of any SOD policies. Returns the violations that would be caused. A token with ORG_ADMIN or API authority is required to call this API.\n * @summary Predict SOD violations for identity.\n * @param {SODViolationsBetaApiStartPredictSodViolationsRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @deprecated\n * @throws {RequiredError}\n * @memberof SODViolationsBetaApi\n */\n SODViolationsBetaApi.prototype.startPredictSodViolations = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.SODViolationsBetaApiFp)(this.configuration).startPredictSodViolations(requestParameters.identityWithNewAccessBeta, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n return SODViolationsBetaApi;\n}(base_1.BaseAPI));\nexports.SODViolationsBetaApi = SODViolationsBetaApi;\n/**\n * SPConfigBetaApi - axios parameter creator\n * @export\n */\nvar SPConfigBetaApiAxiosParamCreator = function (configuration) {\n var _this = this;\n return {\n /**\n * This post will export objects from the tenant to a JSON configuration file. For more information about the object types that currently support export functionality, refer to [SaaS Configuration](https://developer.sailpoint.com/idn/docs/saas-configuration/#supported-objects).\n * @summary Initiates configuration objects export job\n * @param {ExportPayloadBeta} exportPayloadBeta Export options control what will be included in the export.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n exportSpConfig: function (exportPayloadBeta, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'exportPayloadBeta' is not null or undefined\n (0, common_1.assertParamExists)('exportSpConfig', 'exportPayloadBeta', exportPayloadBeta);\n localVarPath = \"/sp-config/export\";\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n localVarHeaderParameter['Content-Type'] = 'application/json';\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(exportPayloadBeta, localVarRequestOptions, configuration);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This endpoint gets the export file resulting from the export job with the requested `id` and downloads it to a file. The request will need one of the following security scopes: - sp:config:read - sp:config:manage\n * @summary Download export job result.\n * @param {string} id The ID of the export job whose results will be downloaded.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getSpConfigExport: function (id, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'id' is not null or undefined\n (0, common_1.assertParamExists)('getSpConfigExport', 'id', id);\n localVarPath = \"/sp-config/export/{id}/download\"\n .replace(\"{\".concat(\"id\", \"}\"), encodeURIComponent(String(id)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This gets the status of the export job identified by the `id` parameter. The request will need one of the following security scopes: - sp:config:read - sp:config:manage\n * @summary Get export job status\n * @param {string} id The ID of the export job whose status will be returned.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getSpConfigExportStatus: function (id, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'id' is not null or undefined\n (0, common_1.assertParamExists)('getSpConfigExportStatus', 'id', id);\n localVarPath = \"/sp-config/export/{id}\"\n .replace(\"{\".concat(\"id\", \"}\"), encodeURIComponent(String(id)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This gets import file resulting from the import job with the requested id and downloads it to a file. The downloaded file will contain the results of the import operation, including any error, warning or informational messages associated with the import. The request will need the following security scope: - sp:config:manage\n * @summary Download import job result\n * @param {string} id The ID of the import job whose results will be downloaded.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getSpConfigImport: function (id, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'id' is not null or undefined\n (0, common_1.assertParamExists)('getSpConfigImport', 'id', id);\n localVarPath = \"/sp-config/import/{id}/download\"\n .replace(\"{\".concat(\"id\", \"}\"), encodeURIComponent(String(id)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This gets the status of the import job identified by the `id` parameter. For more information about the object types that currently support import functionality, refer to [SaaS Configuration](https://developer.sailpoint.com/idn/docs/saas-configuration/#supported-objects). The request will need the following security scope: - sp:config:manage\n * @summary Get import job status\n * @param {string} id The ID of the import job whose status will be returned.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getSpConfigImportStatus: function (id, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'id' is not null or undefined\n (0, common_1.assertParamExists)('getSpConfigImportStatus', 'id', id);\n localVarPath = \"/sp-config/import/{id}\"\n .replace(\"{\".concat(\"id\", \"}\"), encodeURIComponent(String(id)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This post will import objects from a JSON configuration file into a tenant. By default, every import will first export all existing objects supported by sp-config as a backup before the import is attempted. The backup is provided so that the state of the configuration prior to the import is available for inspection or restore if needed. The backup can be skipped by setting \\\"excludeBackup\\\" to true in the import options. If a backup is performed, the id of the backup will be provided in the ImportResult as the \\\"exportJobId\\\". This can be downloaded using the /sp-config/export/{exportJobId}/download endpoint. You cannot currently import from the Non-Employee Lifecycle Management (NELM) source. You cannot use this endpoint to back up or store NELM data. For more information about the object types that currently support import functionality, refer to [SaaS Configuration](https://developer.sailpoint.com/idn/docs/saas-configuration/#supported-objects). The request will need the following security scope: - sp:config:manage\n * @summary Initiates configuration objects import job\n * @param {any} data JSON file containing the objects to be imported.\n * @param {boolean} [preview] This option is intended to give the user information about how an import operation would proceed, without having any effect on the target tenant. If this parameter is \\"true\\", no objects will be imported. Instead, the import process will pre-process the import file and attempt to resolve references within imported objects. The import result file will contain messages pertaining to how specific references were resolved, any errors associated with the preprocessing, and messages indicating which objects would be imported.\n * @param {ImportOptionsBeta} [options]\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n importSpConfig: function (data, preview, options, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, localVarFormParams, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'data' is not null or undefined\n (0, common_1.assertParamExists)('importSpConfig', 'data', data);\n localVarPath = \"/sp-config/import\";\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n localVarFormParams = new ((configuration && configuration.formDataCtor) || FormData)();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n if (preview !== undefined) {\n localVarQueryParameter['preview'] = preview;\n }\n if (data !== undefined) {\n localVarFormParams.append('data', data);\n }\n if (options !== undefined) {\n localVarFormParams.append('options', new Blob([JSON.stringify(options)], { type: \"application/json\", }));\n }\n localVarHeaderParameter['Content-Type'] = 'multipart/form-data';\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n localVarRequestOptions.data = localVarFormParams;\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This gets the list of object configurations which are known to the tenant export/import service. Object configurations that contain \\\"importUrl\\\" and \\\"exportUrl\\\" are available for export/import.\n * @summary Get config object details\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n listSpConfigObjects: function (axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n localVarPath = \"/sp-config/config-objects\";\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n };\n};\nexports.SPConfigBetaApiAxiosParamCreator = SPConfigBetaApiAxiosParamCreator;\n/**\n * SPConfigBetaApi - functional programming interface\n * @export\n */\nvar SPConfigBetaApiFp = function (configuration) {\n var localVarAxiosParamCreator = (0, exports.SPConfigBetaApiAxiosParamCreator)(configuration);\n return {\n /**\n * This post will export objects from the tenant to a JSON configuration file. For more information about the object types that currently support export functionality, refer to [SaaS Configuration](https://developer.sailpoint.com/idn/docs/saas-configuration/#supported-objects).\n * @summary Initiates configuration objects export job\n * @param {ExportPayloadBeta} exportPayloadBeta Export options control what will be included in the export.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n exportSpConfig: function (exportPayloadBeta, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.exportSpConfig(exportPayloadBeta, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This endpoint gets the export file resulting from the export job with the requested `id` and downloads it to a file. The request will need one of the following security scopes: - sp:config:read - sp:config:manage\n * @summary Download export job result.\n * @param {string} id The ID of the export job whose results will be downloaded.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getSpConfigExport: function (id, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.getSpConfigExport(id, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This gets the status of the export job identified by the `id` parameter. The request will need one of the following security scopes: - sp:config:read - sp:config:manage\n * @summary Get export job status\n * @param {string} id The ID of the export job whose status will be returned.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getSpConfigExportStatus: function (id, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.getSpConfigExportStatus(id, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This gets import file resulting from the import job with the requested id and downloads it to a file. The downloaded file will contain the results of the import operation, including any error, warning or informational messages associated with the import. The request will need the following security scope: - sp:config:manage\n * @summary Download import job result\n * @param {string} id The ID of the import job whose results will be downloaded.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getSpConfigImport: function (id, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.getSpConfigImport(id, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This gets the status of the import job identified by the `id` parameter. For more information about the object types that currently support import functionality, refer to [SaaS Configuration](https://developer.sailpoint.com/idn/docs/saas-configuration/#supported-objects). The request will need the following security scope: - sp:config:manage\n * @summary Get import job status\n * @param {string} id The ID of the import job whose status will be returned.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getSpConfigImportStatus: function (id, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.getSpConfigImportStatus(id, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This post will import objects from a JSON configuration file into a tenant. By default, every import will first export all existing objects supported by sp-config as a backup before the import is attempted. The backup is provided so that the state of the configuration prior to the import is available for inspection or restore if needed. The backup can be skipped by setting \\\"excludeBackup\\\" to true in the import options. If a backup is performed, the id of the backup will be provided in the ImportResult as the \\\"exportJobId\\\". This can be downloaded using the /sp-config/export/{exportJobId}/download endpoint. You cannot currently import from the Non-Employee Lifecycle Management (NELM) source. You cannot use this endpoint to back up or store NELM data. For more information about the object types that currently support import functionality, refer to [SaaS Configuration](https://developer.sailpoint.com/idn/docs/saas-configuration/#supported-objects). The request will need the following security scope: - sp:config:manage\n * @summary Initiates configuration objects import job\n * @param {any} data JSON file containing the objects to be imported.\n * @param {boolean} [preview] This option is intended to give the user information about how an import operation would proceed, without having any effect on the target tenant. If this parameter is \\"true\\", no objects will be imported. Instead, the import process will pre-process the import file and attempt to resolve references within imported objects. The import result file will contain messages pertaining to how specific references were resolved, any errors associated with the preprocessing, and messages indicating which objects would be imported.\n * @param {ImportOptionsBeta} [options]\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n importSpConfig: function (data, preview, options, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.importSpConfig(data, preview, options, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This gets the list of object configurations which are known to the tenant export/import service. Object configurations that contain \\\"importUrl\\\" and \\\"exportUrl\\\" are available for export/import.\n * @summary Get config object details\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n listSpConfigObjects: function (axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.listSpConfigObjects(axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n };\n};\nexports.SPConfigBetaApiFp = SPConfigBetaApiFp;\n/**\n * SPConfigBetaApi - factory interface\n * @export\n */\nvar SPConfigBetaApiFactory = function (configuration, basePath, axios) {\n var localVarFp = (0, exports.SPConfigBetaApiFp)(configuration);\n return {\n /**\n * This post will export objects from the tenant to a JSON configuration file. For more information about the object types that currently support export functionality, refer to [SaaS Configuration](https://developer.sailpoint.com/idn/docs/saas-configuration/#supported-objects).\n * @summary Initiates configuration objects export job\n * @param {ExportPayloadBeta} exportPayloadBeta Export options control what will be included in the export.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n exportSpConfig: function (exportPayloadBeta, axiosOptions) {\n return localVarFp.exportSpConfig(exportPayloadBeta, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This endpoint gets the export file resulting from the export job with the requested `id` and downloads it to a file. The request will need one of the following security scopes: - sp:config:read - sp:config:manage\n * @summary Download export job result.\n * @param {string} id The ID of the export job whose results will be downloaded.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getSpConfigExport: function (id, axiosOptions) {\n return localVarFp.getSpConfigExport(id, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This gets the status of the export job identified by the `id` parameter. The request will need one of the following security scopes: - sp:config:read - sp:config:manage\n * @summary Get export job status\n * @param {string} id The ID of the export job whose status will be returned.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getSpConfigExportStatus: function (id, axiosOptions) {\n return localVarFp.getSpConfigExportStatus(id, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This gets import file resulting from the import job with the requested id and downloads it to a file. The downloaded file will contain the results of the import operation, including any error, warning or informational messages associated with the import. The request will need the following security scope: - sp:config:manage\n * @summary Download import job result\n * @param {string} id The ID of the import job whose results will be downloaded.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getSpConfigImport: function (id, axiosOptions) {\n return localVarFp.getSpConfigImport(id, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This gets the status of the import job identified by the `id` parameter. For more information about the object types that currently support import functionality, refer to [SaaS Configuration](https://developer.sailpoint.com/idn/docs/saas-configuration/#supported-objects). The request will need the following security scope: - sp:config:manage\n * @summary Get import job status\n * @param {string} id The ID of the import job whose status will be returned.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getSpConfigImportStatus: function (id, axiosOptions) {\n return localVarFp.getSpConfigImportStatus(id, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This post will import objects from a JSON configuration file into a tenant. By default, every import will first export all existing objects supported by sp-config as a backup before the import is attempted. The backup is provided so that the state of the configuration prior to the import is available for inspection or restore if needed. The backup can be skipped by setting \\\"excludeBackup\\\" to true in the import options. If a backup is performed, the id of the backup will be provided in the ImportResult as the \\\"exportJobId\\\". This can be downloaded using the /sp-config/export/{exportJobId}/download endpoint. You cannot currently import from the Non-Employee Lifecycle Management (NELM) source. You cannot use this endpoint to back up or store NELM data. For more information about the object types that currently support import functionality, refer to [SaaS Configuration](https://developer.sailpoint.com/idn/docs/saas-configuration/#supported-objects). The request will need the following security scope: - sp:config:manage\n * @summary Initiates configuration objects import job\n * @param {any} data JSON file containing the objects to be imported.\n * @param {boolean} [preview] This option is intended to give the user information about how an import operation would proceed, without having any effect on the target tenant. If this parameter is \\"true\\", no objects will be imported. Instead, the import process will pre-process the import file and attempt to resolve references within imported objects. The import result file will contain messages pertaining to how specific references were resolved, any errors associated with the preprocessing, and messages indicating which objects would be imported.\n * @param {ImportOptionsBeta} [options]\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n importSpConfig: function (data, preview, options, axiosOptions) {\n return localVarFp.importSpConfig(data, preview, options, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This gets the list of object configurations which are known to the tenant export/import service. Object configurations that contain \\\"importUrl\\\" and \\\"exportUrl\\\" are available for export/import.\n * @summary Get config object details\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n listSpConfigObjects: function (axiosOptions) {\n return localVarFp.listSpConfigObjects(axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n };\n};\nexports.SPConfigBetaApiFactory = SPConfigBetaApiFactory;\n/**\n * SPConfigBetaApi - object-oriented interface\n * @export\n * @class SPConfigBetaApi\n * @extends {BaseAPI}\n */\nvar SPConfigBetaApi = /** @class */ (function (_super) {\n __extends(SPConfigBetaApi, _super);\n function SPConfigBetaApi() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n * This post will export objects from the tenant to a JSON configuration file. For more information about the object types that currently support export functionality, refer to [SaaS Configuration](https://developer.sailpoint.com/idn/docs/saas-configuration/#supported-objects).\n * @summary Initiates configuration objects export job\n * @param {SPConfigBetaApiExportSpConfigRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof SPConfigBetaApi\n */\n SPConfigBetaApi.prototype.exportSpConfig = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.SPConfigBetaApiFp)(this.configuration).exportSpConfig(requestParameters.exportPayloadBeta, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This endpoint gets the export file resulting from the export job with the requested `id` and downloads it to a file. The request will need one of the following security scopes: - sp:config:read - sp:config:manage\n * @summary Download export job result.\n * @param {SPConfigBetaApiGetSpConfigExportRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof SPConfigBetaApi\n */\n SPConfigBetaApi.prototype.getSpConfigExport = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.SPConfigBetaApiFp)(this.configuration).getSpConfigExport(requestParameters.id, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This gets the status of the export job identified by the `id` parameter. The request will need one of the following security scopes: - sp:config:read - sp:config:manage\n * @summary Get export job status\n * @param {SPConfigBetaApiGetSpConfigExportStatusRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof SPConfigBetaApi\n */\n SPConfigBetaApi.prototype.getSpConfigExportStatus = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.SPConfigBetaApiFp)(this.configuration).getSpConfigExportStatus(requestParameters.id, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This gets import file resulting from the import job with the requested id and downloads it to a file. The downloaded file will contain the results of the import operation, including any error, warning or informational messages associated with the import. The request will need the following security scope: - sp:config:manage\n * @summary Download import job result\n * @param {SPConfigBetaApiGetSpConfigImportRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof SPConfigBetaApi\n */\n SPConfigBetaApi.prototype.getSpConfigImport = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.SPConfigBetaApiFp)(this.configuration).getSpConfigImport(requestParameters.id, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This gets the status of the import job identified by the `id` parameter. For more information about the object types that currently support import functionality, refer to [SaaS Configuration](https://developer.sailpoint.com/idn/docs/saas-configuration/#supported-objects). The request will need the following security scope: - sp:config:manage\n * @summary Get import job status\n * @param {SPConfigBetaApiGetSpConfigImportStatusRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof SPConfigBetaApi\n */\n SPConfigBetaApi.prototype.getSpConfigImportStatus = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.SPConfigBetaApiFp)(this.configuration).getSpConfigImportStatus(requestParameters.id, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This post will import objects from a JSON configuration file into a tenant. By default, every import will first export all existing objects supported by sp-config as a backup before the import is attempted. The backup is provided so that the state of the configuration prior to the import is available for inspection or restore if needed. The backup can be skipped by setting \\\"excludeBackup\\\" to true in the import options. If a backup is performed, the id of the backup will be provided in the ImportResult as the \\\"exportJobId\\\". This can be downloaded using the /sp-config/export/{exportJobId}/download endpoint. You cannot currently import from the Non-Employee Lifecycle Management (NELM) source. You cannot use this endpoint to back up or store NELM data. For more information about the object types that currently support import functionality, refer to [SaaS Configuration](https://developer.sailpoint.com/idn/docs/saas-configuration/#supported-objects). The request will need the following security scope: - sp:config:manage\n * @summary Initiates configuration objects import job\n * @param {SPConfigBetaApiImportSpConfigRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof SPConfigBetaApi\n */\n SPConfigBetaApi.prototype.importSpConfig = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.SPConfigBetaApiFp)(this.configuration).importSpConfig(requestParameters.data, requestParameters.preview, requestParameters.options, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This gets the list of object configurations which are known to the tenant export/import service. Object configurations that contain \\\"importUrl\\\" and \\\"exportUrl\\\" are available for export/import.\n * @summary Get config object details\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof SPConfigBetaApi\n */\n SPConfigBetaApi.prototype.listSpConfigObjects = function (axiosOptions) {\n var _this = this;\n return (0, exports.SPConfigBetaApiFp)(this.configuration).listSpConfigObjects(axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n return SPConfigBetaApi;\n}(base_1.BaseAPI));\nexports.SPConfigBetaApi = SPConfigBetaApi;\n/**\n * SearchAttributeConfigurationBetaApi - axios parameter creator\n * @export\n */\nvar SearchAttributeConfigurationBetaApiAxiosParamCreator = function (configuration) {\n var _this = this;\n return {\n /**\n * This API accepts an attribute name, an attribute display name and a list of name/value pair associates of application IDs to attribute names. It will then validate the inputs and configure/create and attribute promotion configuration in the Link ObjectConfig. A token with ORG_ADMIN authority is required to call this API.\n * @summary Configure/create extended search attributes in IdentityNow.\n * @param {SearchAttributeConfigBeta} searchAttributeConfigBeta\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n createSearchAttributeConfig: function (searchAttributeConfigBeta, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'searchAttributeConfigBeta' is not null or undefined\n (0, common_1.assertParamExists)('createSearchAttributeConfig', 'searchAttributeConfigBeta', searchAttributeConfigBeta);\n localVarPath = \"/accounts/search-attribute-config\";\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n localVarHeaderParameter['Content-Type'] = 'application/json';\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(searchAttributeConfigBeta, localVarRequestOptions, configuration);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This API accepts an extended attribute name and deletes the corresponding extended attribute configuration. A token with ORG_ADMIN authority is required to call this API.\n * @summary Delete an extended search attribute in IdentityNow.\n * @param {string} name Name of the extended search attribute configuration to delete.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n deleteSearchAttributeConfig: function (name, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'name' is not null or undefined\n (0, common_1.assertParamExists)('deleteSearchAttributeConfig', 'name', name);\n localVarPath = \"/accounts/search-attribute-config/{name}\"\n .replace(\"{\".concat(\"name\", \"}\"), encodeURIComponent(String(name)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'DELETE' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This API retrieves a list of attribute/application associates currently configured in IdentityNow. A token with ORG_ADMIN authority is required to call this API.\n * @summary Retrieve a list of extended search attributes in IdentityNow.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getSearchAttributeConfig: function (axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n localVarPath = \"/accounts/search-attribute-config\";\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This API accepts an extended attribute name and retrieves the corresponding extended attribute configuration. A token with ORG_ADMIN authority is required to call this API.\n * @summary Get the details of a specific extended search attribute in IdentityNow.\n * @param {string} name Name of the extended search attribute configuration to delete.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getSingleSearchAttributeConfig: function (name, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'name' is not null or undefined\n (0, common_1.assertParamExists)('getSingleSearchAttributeConfig', 'name', name);\n localVarPath = \"/accounts/search-attribute-config/{name}\"\n .replace(\"{\".concat(\"name\", \"}\"), encodeURIComponent(String(name)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This API updates an existing Search Attribute Configuration. The following fields are patchable: **name**, **displayName**, **applicationAttributes** A token with ORG_ADMIN authority is required to call this API.\n * @summary Update the details of a specific extended search attribute in IdentityNow.\n * @param {string} name Name of the Search Attribute Configuration to patch.\n * @param {Array} jsonPatchOperationBeta\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n patchSearchAttributeConfig: function (name, jsonPatchOperationBeta, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'name' is not null or undefined\n (0, common_1.assertParamExists)('patchSearchAttributeConfig', 'name', name);\n // verify required parameter 'jsonPatchOperationBeta' is not null or undefined\n (0, common_1.assertParamExists)('patchSearchAttributeConfig', 'jsonPatchOperationBeta', jsonPatchOperationBeta);\n localVarPath = \"/accounts/search-attribute-config/{name}\"\n .replace(\"{\".concat(\"name\", \"}\"), encodeURIComponent(String(name)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'PATCH' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n localVarHeaderParameter['Content-Type'] = 'application/json-patch+json';\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(jsonPatchOperationBeta, localVarRequestOptions, configuration);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n };\n};\nexports.SearchAttributeConfigurationBetaApiAxiosParamCreator = SearchAttributeConfigurationBetaApiAxiosParamCreator;\n/**\n * SearchAttributeConfigurationBetaApi - functional programming interface\n * @export\n */\nvar SearchAttributeConfigurationBetaApiFp = function (configuration) {\n var localVarAxiosParamCreator = (0, exports.SearchAttributeConfigurationBetaApiAxiosParamCreator)(configuration);\n return {\n /**\n * This API accepts an attribute name, an attribute display name and a list of name/value pair associates of application IDs to attribute names. It will then validate the inputs and configure/create and attribute promotion configuration in the Link ObjectConfig. A token with ORG_ADMIN authority is required to call this API.\n * @summary Configure/create extended search attributes in IdentityNow.\n * @param {SearchAttributeConfigBeta} searchAttributeConfigBeta\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n createSearchAttributeConfig: function (searchAttributeConfigBeta, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.createSearchAttributeConfig(searchAttributeConfigBeta, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This API accepts an extended attribute name and deletes the corresponding extended attribute configuration. A token with ORG_ADMIN authority is required to call this API.\n * @summary Delete an extended search attribute in IdentityNow.\n * @param {string} name Name of the extended search attribute configuration to delete.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n deleteSearchAttributeConfig: function (name, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.deleteSearchAttributeConfig(name, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This API retrieves a list of attribute/application associates currently configured in IdentityNow. A token with ORG_ADMIN authority is required to call this API.\n * @summary Retrieve a list of extended search attributes in IdentityNow.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getSearchAttributeConfig: function (axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.getSearchAttributeConfig(axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This API accepts an extended attribute name and retrieves the corresponding extended attribute configuration. A token with ORG_ADMIN authority is required to call this API.\n * @summary Get the details of a specific extended search attribute in IdentityNow.\n * @param {string} name Name of the extended search attribute configuration to delete.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getSingleSearchAttributeConfig: function (name, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.getSingleSearchAttributeConfig(name, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This API updates an existing Search Attribute Configuration. The following fields are patchable: **name**, **displayName**, **applicationAttributes** A token with ORG_ADMIN authority is required to call this API.\n * @summary Update the details of a specific extended search attribute in IdentityNow.\n * @param {string} name Name of the Search Attribute Configuration to patch.\n * @param {Array} jsonPatchOperationBeta\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n patchSearchAttributeConfig: function (name, jsonPatchOperationBeta, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.patchSearchAttributeConfig(name, jsonPatchOperationBeta, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n };\n};\nexports.SearchAttributeConfigurationBetaApiFp = SearchAttributeConfigurationBetaApiFp;\n/**\n * SearchAttributeConfigurationBetaApi - factory interface\n * @export\n */\nvar SearchAttributeConfigurationBetaApiFactory = function (configuration, basePath, axios) {\n var localVarFp = (0, exports.SearchAttributeConfigurationBetaApiFp)(configuration);\n return {\n /**\n * This API accepts an attribute name, an attribute display name and a list of name/value pair associates of application IDs to attribute names. It will then validate the inputs and configure/create and attribute promotion configuration in the Link ObjectConfig. A token with ORG_ADMIN authority is required to call this API.\n * @summary Configure/create extended search attributes in IdentityNow.\n * @param {SearchAttributeConfigBeta} searchAttributeConfigBeta\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n createSearchAttributeConfig: function (searchAttributeConfigBeta, axiosOptions) {\n return localVarFp.createSearchAttributeConfig(searchAttributeConfigBeta, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This API accepts an extended attribute name and deletes the corresponding extended attribute configuration. A token with ORG_ADMIN authority is required to call this API.\n * @summary Delete an extended search attribute in IdentityNow.\n * @param {string} name Name of the extended search attribute configuration to delete.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n deleteSearchAttributeConfig: function (name, axiosOptions) {\n return localVarFp.deleteSearchAttributeConfig(name, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This API retrieves a list of attribute/application associates currently configured in IdentityNow. A token with ORG_ADMIN authority is required to call this API.\n * @summary Retrieve a list of extended search attributes in IdentityNow.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getSearchAttributeConfig: function (axiosOptions) {\n return localVarFp.getSearchAttributeConfig(axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This API accepts an extended attribute name and retrieves the corresponding extended attribute configuration. A token with ORG_ADMIN authority is required to call this API.\n * @summary Get the details of a specific extended search attribute in IdentityNow.\n * @param {string} name Name of the extended search attribute configuration to delete.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getSingleSearchAttributeConfig: function (name, axiosOptions) {\n return localVarFp.getSingleSearchAttributeConfig(name, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This API updates an existing Search Attribute Configuration. The following fields are patchable: **name**, **displayName**, **applicationAttributes** A token with ORG_ADMIN authority is required to call this API.\n * @summary Update the details of a specific extended search attribute in IdentityNow.\n * @param {string} name Name of the Search Attribute Configuration to patch.\n * @param {Array} jsonPatchOperationBeta\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n patchSearchAttributeConfig: function (name, jsonPatchOperationBeta, axiosOptions) {\n return localVarFp.patchSearchAttributeConfig(name, jsonPatchOperationBeta, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n };\n};\nexports.SearchAttributeConfigurationBetaApiFactory = SearchAttributeConfigurationBetaApiFactory;\n/**\n * SearchAttributeConfigurationBetaApi - object-oriented interface\n * @export\n * @class SearchAttributeConfigurationBetaApi\n * @extends {BaseAPI}\n */\nvar SearchAttributeConfigurationBetaApi = /** @class */ (function (_super) {\n __extends(SearchAttributeConfigurationBetaApi, _super);\n function SearchAttributeConfigurationBetaApi() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n * This API accepts an attribute name, an attribute display name and a list of name/value pair associates of application IDs to attribute names. It will then validate the inputs and configure/create and attribute promotion configuration in the Link ObjectConfig. A token with ORG_ADMIN authority is required to call this API.\n * @summary Configure/create extended search attributes in IdentityNow.\n * @param {SearchAttributeConfigurationBetaApiCreateSearchAttributeConfigRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof SearchAttributeConfigurationBetaApi\n */\n SearchAttributeConfigurationBetaApi.prototype.createSearchAttributeConfig = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.SearchAttributeConfigurationBetaApiFp)(this.configuration).createSearchAttributeConfig(requestParameters.searchAttributeConfigBeta, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This API accepts an extended attribute name and deletes the corresponding extended attribute configuration. A token with ORG_ADMIN authority is required to call this API.\n * @summary Delete an extended search attribute in IdentityNow.\n * @param {SearchAttributeConfigurationBetaApiDeleteSearchAttributeConfigRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof SearchAttributeConfigurationBetaApi\n */\n SearchAttributeConfigurationBetaApi.prototype.deleteSearchAttributeConfig = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.SearchAttributeConfigurationBetaApiFp)(this.configuration).deleteSearchAttributeConfig(requestParameters.name, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This API retrieves a list of attribute/application associates currently configured in IdentityNow. A token with ORG_ADMIN authority is required to call this API.\n * @summary Retrieve a list of extended search attributes in IdentityNow.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof SearchAttributeConfigurationBetaApi\n */\n SearchAttributeConfigurationBetaApi.prototype.getSearchAttributeConfig = function (axiosOptions) {\n var _this = this;\n return (0, exports.SearchAttributeConfigurationBetaApiFp)(this.configuration).getSearchAttributeConfig(axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This API accepts an extended attribute name and retrieves the corresponding extended attribute configuration. A token with ORG_ADMIN authority is required to call this API.\n * @summary Get the details of a specific extended search attribute in IdentityNow.\n * @param {SearchAttributeConfigurationBetaApiGetSingleSearchAttributeConfigRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof SearchAttributeConfigurationBetaApi\n */\n SearchAttributeConfigurationBetaApi.prototype.getSingleSearchAttributeConfig = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.SearchAttributeConfigurationBetaApiFp)(this.configuration).getSingleSearchAttributeConfig(requestParameters.name, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This API updates an existing Search Attribute Configuration. The following fields are patchable: **name**, **displayName**, **applicationAttributes** A token with ORG_ADMIN authority is required to call this API.\n * @summary Update the details of a specific extended search attribute in IdentityNow.\n * @param {SearchAttributeConfigurationBetaApiPatchSearchAttributeConfigRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof SearchAttributeConfigurationBetaApi\n */\n SearchAttributeConfigurationBetaApi.prototype.patchSearchAttributeConfig = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.SearchAttributeConfigurationBetaApiFp)(this.configuration).patchSearchAttributeConfig(requestParameters.name, requestParameters.jsonPatchOperationBeta, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n return SearchAttributeConfigurationBetaApi;\n}(base_1.BaseAPI));\nexports.SearchAttributeConfigurationBetaApi = SearchAttributeConfigurationBetaApi;\n/**\n * SegmentsBetaApi - axios parameter creator\n * @export\n */\nvar SegmentsBetaApiAxiosParamCreator = function (configuration) {\n var _this = this;\n return {\n /**\n * This API creates a segment. >**Note:** Segment definitions may take time to propagate to all identities. A token with ORG_ADMIN or API authority is required to call this API.\n * @summary Create Segment\n * @param {SegmentBeta} segmentBeta\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n createSegment: function (segmentBeta, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'segmentBeta' is not null or undefined\n (0, common_1.assertParamExists)('createSegment', 'segmentBeta', segmentBeta);\n localVarPath = \"/segments\";\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n localVarHeaderParameter['Content-Type'] = 'application/json';\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(segmentBeta, localVarRequestOptions, configuration);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This API deletes the segment specified by the given ID. >**Note:** Segment deletion may take some time to go into effect. A token with ORG_ADMIN or API authority is required to call this API.\n * @summary Delete Segment by ID\n * @param {string} id The segment ID to delete.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n deleteSegment: function (id, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'id' is not null or undefined\n (0, common_1.assertParamExists)('deleteSegment', 'id', id);\n localVarPath = \"/segments/{id}\"\n .replace(\"{\".concat(\"id\", \"}\"), encodeURIComponent(String(id)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'DELETE' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This API returns the segment specified by the given ID. A token with ORG_ADMIN or API authority is required to call this API.\n * @summary Get Segment by ID\n * @param {string} id The segment ID to retrieve.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getSegment: function (id, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'id' is not null or undefined\n (0, common_1.assertParamExists)('getSegment', 'id', id);\n localVarPath = \"/segments/{id}\"\n .replace(\"{\".concat(\"id\", \"}\"), encodeURIComponent(String(id)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This API returns a list of all segments. A token with ORG_ADMIN or API authority is required to call this API.\n * @summary List Segments\n * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n listSegments: function (limit, offset, count, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n localVarPath = \"/segments\";\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n if (limit !== undefined) {\n localVarQueryParameter['limit'] = limit;\n }\n if (offset !== undefined) {\n localVarQueryParameter['offset'] = offset;\n }\n if (count !== undefined) {\n localVarQueryParameter['count'] = count;\n }\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * Use this API to update segment fields by using the [JSON Patch](https://tools.ietf.org/html/rfc6902) standard. >**Note:** Changes to a segment may take some time to propagate to all identities. A token with ORG_ADMIN or API authority is required to call this API.\n * @summary Update Segment\n * @param {string} id The segment ID to modify.\n * @param {Array} requestBody A list of segment update operations according to the [JSON Patch](https://tools.ietf.org/html/rfc6902) standard. The following fields are patchable: * name * description * owner * visibilityCriteria * active\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n patchSegment: function (id, requestBody, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'id' is not null or undefined\n (0, common_1.assertParamExists)('patchSegment', 'id', id);\n // verify required parameter 'requestBody' is not null or undefined\n (0, common_1.assertParamExists)('patchSegment', 'requestBody', requestBody);\n localVarPath = \"/segments/{id}\"\n .replace(\"{\".concat(\"id\", \"}\"), encodeURIComponent(String(id)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'PATCH' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n localVarHeaderParameter['Content-Type'] = 'application/json-patch+json';\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(requestBody, localVarRequestOptions, configuration);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n };\n};\nexports.SegmentsBetaApiAxiosParamCreator = SegmentsBetaApiAxiosParamCreator;\n/**\n * SegmentsBetaApi - functional programming interface\n * @export\n */\nvar SegmentsBetaApiFp = function (configuration) {\n var localVarAxiosParamCreator = (0, exports.SegmentsBetaApiAxiosParamCreator)(configuration);\n return {\n /**\n * This API creates a segment. >**Note:** Segment definitions may take time to propagate to all identities. A token with ORG_ADMIN or API authority is required to call this API.\n * @summary Create Segment\n * @param {SegmentBeta} segmentBeta\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n createSegment: function (segmentBeta, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.createSegment(segmentBeta, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This API deletes the segment specified by the given ID. >**Note:** Segment deletion may take some time to go into effect. A token with ORG_ADMIN or API authority is required to call this API.\n * @summary Delete Segment by ID\n * @param {string} id The segment ID to delete.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n deleteSegment: function (id, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.deleteSegment(id, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This API returns the segment specified by the given ID. A token with ORG_ADMIN or API authority is required to call this API.\n * @summary Get Segment by ID\n * @param {string} id The segment ID to retrieve.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getSegment: function (id, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.getSegment(id, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This API returns a list of all segments. A token with ORG_ADMIN or API authority is required to call this API.\n * @summary List Segments\n * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n listSegments: function (limit, offset, count, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.listSegments(limit, offset, count, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * Use this API to update segment fields by using the [JSON Patch](https://tools.ietf.org/html/rfc6902) standard. >**Note:** Changes to a segment may take some time to propagate to all identities. A token with ORG_ADMIN or API authority is required to call this API.\n * @summary Update Segment\n * @param {string} id The segment ID to modify.\n * @param {Array} requestBody A list of segment update operations according to the [JSON Patch](https://tools.ietf.org/html/rfc6902) standard. The following fields are patchable: * name * description * owner * visibilityCriteria * active\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n patchSegment: function (id, requestBody, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.patchSegment(id, requestBody, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n };\n};\nexports.SegmentsBetaApiFp = SegmentsBetaApiFp;\n/**\n * SegmentsBetaApi - factory interface\n * @export\n */\nvar SegmentsBetaApiFactory = function (configuration, basePath, axios) {\n var localVarFp = (0, exports.SegmentsBetaApiFp)(configuration);\n return {\n /**\n * This API creates a segment. >**Note:** Segment definitions may take time to propagate to all identities. A token with ORG_ADMIN or API authority is required to call this API.\n * @summary Create Segment\n * @param {SegmentBeta} segmentBeta\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n createSegment: function (segmentBeta, axiosOptions) {\n return localVarFp.createSegment(segmentBeta, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This API deletes the segment specified by the given ID. >**Note:** Segment deletion may take some time to go into effect. A token with ORG_ADMIN or API authority is required to call this API.\n * @summary Delete Segment by ID\n * @param {string} id The segment ID to delete.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n deleteSegment: function (id, axiosOptions) {\n return localVarFp.deleteSegment(id, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This API returns the segment specified by the given ID. A token with ORG_ADMIN or API authority is required to call this API.\n * @summary Get Segment by ID\n * @param {string} id The segment ID to retrieve.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getSegment: function (id, axiosOptions) {\n return localVarFp.getSegment(id, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This API returns a list of all segments. A token with ORG_ADMIN or API authority is required to call this API.\n * @summary List Segments\n * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n listSegments: function (limit, offset, count, axiosOptions) {\n return localVarFp.listSegments(limit, offset, count, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * Use this API to update segment fields by using the [JSON Patch](https://tools.ietf.org/html/rfc6902) standard. >**Note:** Changes to a segment may take some time to propagate to all identities. A token with ORG_ADMIN or API authority is required to call this API.\n * @summary Update Segment\n * @param {string} id The segment ID to modify.\n * @param {Array} requestBody A list of segment update operations according to the [JSON Patch](https://tools.ietf.org/html/rfc6902) standard. The following fields are patchable: * name * description * owner * visibilityCriteria * active\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n patchSegment: function (id, requestBody, axiosOptions) {\n return localVarFp.patchSegment(id, requestBody, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n };\n};\nexports.SegmentsBetaApiFactory = SegmentsBetaApiFactory;\n/**\n * SegmentsBetaApi - object-oriented interface\n * @export\n * @class SegmentsBetaApi\n * @extends {BaseAPI}\n */\nvar SegmentsBetaApi = /** @class */ (function (_super) {\n __extends(SegmentsBetaApi, _super);\n function SegmentsBetaApi() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n * This API creates a segment. >**Note:** Segment definitions may take time to propagate to all identities. A token with ORG_ADMIN or API authority is required to call this API.\n * @summary Create Segment\n * @param {SegmentsBetaApiCreateSegmentRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof SegmentsBetaApi\n */\n SegmentsBetaApi.prototype.createSegment = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.SegmentsBetaApiFp)(this.configuration).createSegment(requestParameters.segmentBeta, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This API deletes the segment specified by the given ID. >**Note:** Segment deletion may take some time to go into effect. A token with ORG_ADMIN or API authority is required to call this API.\n * @summary Delete Segment by ID\n * @param {SegmentsBetaApiDeleteSegmentRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof SegmentsBetaApi\n */\n SegmentsBetaApi.prototype.deleteSegment = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.SegmentsBetaApiFp)(this.configuration).deleteSegment(requestParameters.id, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This API returns the segment specified by the given ID. A token with ORG_ADMIN or API authority is required to call this API.\n * @summary Get Segment by ID\n * @param {SegmentsBetaApiGetSegmentRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof SegmentsBetaApi\n */\n SegmentsBetaApi.prototype.getSegment = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.SegmentsBetaApiFp)(this.configuration).getSegment(requestParameters.id, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This API returns a list of all segments. A token with ORG_ADMIN or API authority is required to call this API.\n * @summary List Segments\n * @param {SegmentsBetaApiListSegmentsRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof SegmentsBetaApi\n */\n SegmentsBetaApi.prototype.listSegments = function (requestParameters, axiosOptions) {\n var _this = this;\n if (requestParameters === void 0) { requestParameters = {}; }\n return (0, exports.SegmentsBetaApiFp)(this.configuration).listSegments(requestParameters.limit, requestParameters.offset, requestParameters.count, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * Use this API to update segment fields by using the [JSON Patch](https://tools.ietf.org/html/rfc6902) standard. >**Note:** Changes to a segment may take some time to propagate to all identities. A token with ORG_ADMIN or API authority is required to call this API.\n * @summary Update Segment\n * @param {SegmentsBetaApiPatchSegmentRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof SegmentsBetaApi\n */\n SegmentsBetaApi.prototype.patchSegment = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.SegmentsBetaApiFp)(this.configuration).patchSegment(requestParameters.id, requestParameters.requestBody, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n return SegmentsBetaApi;\n}(base_1.BaseAPI));\nexports.SegmentsBetaApi = SegmentsBetaApi;\n/**\n * ServiceDeskIntegrationBetaApi - axios parameter creator\n * @export\n */\nvar ServiceDeskIntegrationBetaApiAxiosParamCreator = function (configuration) {\n var _this = this;\n return {\n /**\n * Create a new Service Desk Integrations. A token with Org Admin or Service Desk Admin authority is required to access this endpoint.\n * @summary Create new Service Desk integration\n * @param {ServiceDeskIntegrationDtoBeta} serviceDeskIntegrationDtoBeta The specifics of a new integration to create\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n createServiceDeskIntegration: function (serviceDeskIntegrationDtoBeta, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'serviceDeskIntegrationDtoBeta' is not null or undefined\n (0, common_1.assertParamExists)('createServiceDeskIntegration', 'serviceDeskIntegrationDtoBeta', serviceDeskIntegrationDtoBeta);\n localVarPath = \"/service-desk-integrations\";\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n localVarHeaderParameter['Content-Type'] = 'application/json';\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(serviceDeskIntegrationDtoBeta, localVarRequestOptions, configuration);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * Delete an existing Service Desk integration by ID. A token with Org Admin or Service Desk Admin authority is required to access this endpoint.\n * @summary Delete a Service Desk integration\n * @param {string} id ID of Service Desk integration to delete\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n deleteServiceDeskIntegration: function (id, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'id' is not null or undefined\n (0, common_1.assertParamExists)('deleteServiceDeskIntegration', 'id', id);\n localVarPath = \"/service-desk-integrations/{id}\"\n .replace(\"{\".concat(\"id\", \"}\"), encodeURIComponent(String(id)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'DELETE' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * Get an existing Service Desk integration by ID. A token with Org Admin or Service Desk Admin authority is required to access this endpoint.\n * @summary Get a Service Desk integration\n * @param {string} id ID of the Service Desk integration to get\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getServiceDeskIntegration: function (id, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'id' is not null or undefined\n (0, common_1.assertParamExists)('getServiceDeskIntegration', 'id', id);\n localVarPath = \"/service-desk-integrations/{id}\"\n .replace(\"{\".concat(\"id\", \"}\"), encodeURIComponent(String(id)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * Get a list of ServiceDeskIntegrationDto for existing Service Desk Integrations. A token with Org Admin or Service Desk Admin authority is required to access this endpoint.\n * @summary List existing Service Desk Integrations\n * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **name**\n * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **id**: *eq, in* **name**: *eq* **type**: *eq, in* **cluster**: *eq, in*\n * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getServiceDeskIntegrationList: function (offset, limit, sorters, filters, count, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n localVarPath = \"/service-desk-integrations\";\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n if (offset !== undefined) {\n localVarQueryParameter['offset'] = offset;\n }\n if (limit !== undefined) {\n localVarQueryParameter['limit'] = limit;\n }\n if (sorters !== undefined) {\n localVarQueryParameter['sorters'] = sorters;\n }\n if (filters !== undefined) {\n localVarQueryParameter['filters'] = filters;\n }\n if (count !== undefined) {\n localVarQueryParameter['count'] = count;\n }\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This API endpoint returns an existing Service Desk integration template by scriptName. A token with Org Admin or Service Desk Admin authority is required to access this endpoint.\n * @summary Service Desk integration template by scriptName.\n * @param {string} scriptName The scriptName value of the Service Desk integration template to get\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getServiceDeskIntegrationTemplate: function (scriptName, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'scriptName' is not null or undefined\n (0, common_1.assertParamExists)('getServiceDeskIntegrationTemplate', 'scriptName', scriptName);\n localVarPath = \"/service-desk-integrations/templates/{scriptName}\"\n .replace(\"{\".concat(\"scriptName\", \"}\"), encodeURIComponent(String(scriptName)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This API endpoint returns the current list of supported Service Desk integration types. A token with Org Admin or Service Desk Admin authority is required to access this endpoint.\n * @summary Service Desk Integration Types List.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getServiceDeskIntegrationTypes: function (axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n localVarPath = \"/service-desk-integrations/types\";\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * Get the time check configuration of queued SDIM tickets. A token with Org Admin or Service Desk Admin authority is required to access this endpoint.\n * @summary Get the time check configuration\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getStatusCheckDetails: function (axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n localVarPath = \"/service-desk-integrations/status-check-configuration\";\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * Update an existing ServiceDeskIntegration by ID with a PATCH request.\n * @summary Service Desk Integration Update PATCH\n * @param {string} id ID of the Service Desk integration to update\n * @param {JsonPatchBeta} jsonPatchBeta A list of SDIM update operations according to the [JSON Patch](https://tools.ietf.org/html/rfc6902) standard. PATCH can only be applied to the following fields: * `beforeProvisioningRule` * `description` * `ownerRef` A 403 Forbidden Error indicates that you attempted to PATCH a field that is not allowed.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n patchServiceDeskIntegration: function (id, jsonPatchBeta, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'id' is not null or undefined\n (0, common_1.assertParamExists)('patchServiceDeskIntegration', 'id', id);\n // verify required parameter 'jsonPatchBeta' is not null or undefined\n (0, common_1.assertParamExists)('patchServiceDeskIntegration', 'jsonPatchBeta', jsonPatchBeta);\n localVarPath = \"/service-desk-integrations/{id}\"\n .replace(\"{\".concat(\"id\", \"}\"), encodeURIComponent(String(id)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'PATCH' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n localVarHeaderParameter['Content-Type'] = 'application/json-patch+json';\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(jsonPatchBeta, localVarRequestOptions, configuration);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * Update an existing Service Desk integration by ID with updated value in JSON form as the request body. A token with Org Admin or Service Desk Admin authority is required to access this endpoint.\n * @summary Update a Service Desk integration\n * @param {string} id ID of the Service Desk integration to update\n * @param {ServiceDeskIntegrationDtoBeta} serviceDeskIntegrationDtoBeta The specifics of the integration to update\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n putServiceDeskIntegration: function (id, serviceDeskIntegrationDtoBeta, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'id' is not null or undefined\n (0, common_1.assertParamExists)('putServiceDeskIntegration', 'id', id);\n // verify required parameter 'serviceDeskIntegrationDtoBeta' is not null or undefined\n (0, common_1.assertParamExists)('putServiceDeskIntegration', 'serviceDeskIntegrationDtoBeta', serviceDeskIntegrationDtoBeta);\n localVarPath = \"/service-desk-integrations/{id}\"\n .replace(\"{\".concat(\"id\", \"}\"), encodeURIComponent(String(id)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'PUT' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n localVarHeaderParameter['Content-Type'] = 'application/json';\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(serviceDeskIntegrationDtoBeta, localVarRequestOptions, configuration);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * Update the time check configuration of queued SDIM tickets. A token with Org Admin or Service Desk Admin authority is required to access this endpoint.\n * @summary Update the time check configuration\n * @param {QueuedCheckConfigDetailsBeta} queuedCheckConfigDetailsBeta the modified time check configuration\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n updateStatusCheckDetails: function (queuedCheckConfigDetailsBeta, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'queuedCheckConfigDetailsBeta' is not null or undefined\n (0, common_1.assertParamExists)('updateStatusCheckDetails', 'queuedCheckConfigDetailsBeta', queuedCheckConfigDetailsBeta);\n localVarPath = \"/service-desk-integrations/status-check-configuration\";\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'PUT' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n localVarHeaderParameter['Content-Type'] = 'application/json';\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(queuedCheckConfigDetailsBeta, localVarRequestOptions, configuration);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n };\n};\nexports.ServiceDeskIntegrationBetaApiAxiosParamCreator = ServiceDeskIntegrationBetaApiAxiosParamCreator;\n/**\n * ServiceDeskIntegrationBetaApi - functional programming interface\n * @export\n */\nvar ServiceDeskIntegrationBetaApiFp = function (configuration) {\n var localVarAxiosParamCreator = (0, exports.ServiceDeskIntegrationBetaApiAxiosParamCreator)(configuration);\n return {\n /**\n * Create a new Service Desk Integrations. A token with Org Admin or Service Desk Admin authority is required to access this endpoint.\n * @summary Create new Service Desk integration\n * @param {ServiceDeskIntegrationDtoBeta} serviceDeskIntegrationDtoBeta The specifics of a new integration to create\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n createServiceDeskIntegration: function (serviceDeskIntegrationDtoBeta, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.createServiceDeskIntegration(serviceDeskIntegrationDtoBeta, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * Delete an existing Service Desk integration by ID. A token with Org Admin or Service Desk Admin authority is required to access this endpoint.\n * @summary Delete a Service Desk integration\n * @param {string} id ID of Service Desk integration to delete\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n deleteServiceDeskIntegration: function (id, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.deleteServiceDeskIntegration(id, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * Get an existing Service Desk integration by ID. A token with Org Admin or Service Desk Admin authority is required to access this endpoint.\n * @summary Get a Service Desk integration\n * @param {string} id ID of the Service Desk integration to get\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getServiceDeskIntegration: function (id, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.getServiceDeskIntegration(id, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * Get a list of ServiceDeskIntegrationDto for existing Service Desk Integrations. A token with Org Admin or Service Desk Admin authority is required to access this endpoint.\n * @summary List existing Service Desk Integrations\n * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **name**\n * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **id**: *eq, in* **name**: *eq* **type**: *eq, in* **cluster**: *eq, in*\n * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getServiceDeskIntegrationList: function (offset, limit, sorters, filters, count, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.getServiceDeskIntegrationList(offset, limit, sorters, filters, count, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This API endpoint returns an existing Service Desk integration template by scriptName. A token with Org Admin or Service Desk Admin authority is required to access this endpoint.\n * @summary Service Desk integration template by scriptName.\n * @param {string} scriptName The scriptName value of the Service Desk integration template to get\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getServiceDeskIntegrationTemplate: function (scriptName, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.getServiceDeskIntegrationTemplate(scriptName, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This API endpoint returns the current list of supported Service Desk integration types. A token with Org Admin or Service Desk Admin authority is required to access this endpoint.\n * @summary Service Desk Integration Types List.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getServiceDeskIntegrationTypes: function (axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.getServiceDeskIntegrationTypes(axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * Get the time check configuration of queued SDIM tickets. A token with Org Admin or Service Desk Admin authority is required to access this endpoint.\n * @summary Get the time check configuration\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getStatusCheckDetails: function (axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.getStatusCheckDetails(axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * Update an existing ServiceDeskIntegration by ID with a PATCH request.\n * @summary Service Desk Integration Update PATCH\n * @param {string} id ID of the Service Desk integration to update\n * @param {JsonPatchBeta} jsonPatchBeta A list of SDIM update operations according to the [JSON Patch](https://tools.ietf.org/html/rfc6902) standard. PATCH can only be applied to the following fields: * `beforeProvisioningRule` * `description` * `ownerRef` A 403 Forbidden Error indicates that you attempted to PATCH a field that is not allowed.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n patchServiceDeskIntegration: function (id, jsonPatchBeta, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.patchServiceDeskIntegration(id, jsonPatchBeta, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * Update an existing Service Desk integration by ID with updated value in JSON form as the request body. A token with Org Admin or Service Desk Admin authority is required to access this endpoint.\n * @summary Update a Service Desk integration\n * @param {string} id ID of the Service Desk integration to update\n * @param {ServiceDeskIntegrationDtoBeta} serviceDeskIntegrationDtoBeta The specifics of the integration to update\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n putServiceDeskIntegration: function (id, serviceDeskIntegrationDtoBeta, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.putServiceDeskIntegration(id, serviceDeskIntegrationDtoBeta, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * Update the time check configuration of queued SDIM tickets. A token with Org Admin or Service Desk Admin authority is required to access this endpoint.\n * @summary Update the time check configuration\n * @param {QueuedCheckConfigDetailsBeta} queuedCheckConfigDetailsBeta the modified time check configuration\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n updateStatusCheckDetails: function (queuedCheckConfigDetailsBeta, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.updateStatusCheckDetails(queuedCheckConfigDetailsBeta, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n };\n};\nexports.ServiceDeskIntegrationBetaApiFp = ServiceDeskIntegrationBetaApiFp;\n/**\n * ServiceDeskIntegrationBetaApi - factory interface\n * @export\n */\nvar ServiceDeskIntegrationBetaApiFactory = function (configuration, basePath, axios) {\n var localVarFp = (0, exports.ServiceDeskIntegrationBetaApiFp)(configuration);\n return {\n /**\n * Create a new Service Desk Integrations. A token with Org Admin or Service Desk Admin authority is required to access this endpoint.\n * @summary Create new Service Desk integration\n * @param {ServiceDeskIntegrationDtoBeta} serviceDeskIntegrationDtoBeta The specifics of a new integration to create\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n createServiceDeskIntegration: function (serviceDeskIntegrationDtoBeta, axiosOptions) {\n return localVarFp.createServiceDeskIntegration(serviceDeskIntegrationDtoBeta, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * Delete an existing Service Desk integration by ID. A token with Org Admin or Service Desk Admin authority is required to access this endpoint.\n * @summary Delete a Service Desk integration\n * @param {string} id ID of Service Desk integration to delete\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n deleteServiceDeskIntegration: function (id, axiosOptions) {\n return localVarFp.deleteServiceDeskIntegration(id, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * Get an existing Service Desk integration by ID. A token with Org Admin or Service Desk Admin authority is required to access this endpoint.\n * @summary Get a Service Desk integration\n * @param {string} id ID of the Service Desk integration to get\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getServiceDeskIntegration: function (id, axiosOptions) {\n return localVarFp.getServiceDeskIntegration(id, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * Get a list of ServiceDeskIntegrationDto for existing Service Desk Integrations. A token with Org Admin or Service Desk Admin authority is required to access this endpoint.\n * @summary List existing Service Desk Integrations\n * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **name**\n * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **id**: *eq, in* **name**: *eq* **type**: *eq, in* **cluster**: *eq, in*\n * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getServiceDeskIntegrationList: function (offset, limit, sorters, filters, count, axiosOptions) {\n return localVarFp.getServiceDeskIntegrationList(offset, limit, sorters, filters, count, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This API endpoint returns an existing Service Desk integration template by scriptName. A token with Org Admin or Service Desk Admin authority is required to access this endpoint.\n * @summary Service Desk integration template by scriptName.\n * @param {string} scriptName The scriptName value of the Service Desk integration template to get\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getServiceDeskIntegrationTemplate: function (scriptName, axiosOptions) {\n return localVarFp.getServiceDeskIntegrationTemplate(scriptName, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This API endpoint returns the current list of supported Service Desk integration types. A token with Org Admin or Service Desk Admin authority is required to access this endpoint.\n * @summary Service Desk Integration Types List.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getServiceDeskIntegrationTypes: function (axiosOptions) {\n return localVarFp.getServiceDeskIntegrationTypes(axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * Get the time check configuration of queued SDIM tickets. A token with Org Admin or Service Desk Admin authority is required to access this endpoint.\n * @summary Get the time check configuration\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getStatusCheckDetails: function (axiosOptions) {\n return localVarFp.getStatusCheckDetails(axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * Update an existing ServiceDeskIntegration by ID with a PATCH request.\n * @summary Service Desk Integration Update PATCH\n * @param {string} id ID of the Service Desk integration to update\n * @param {JsonPatchBeta} jsonPatchBeta A list of SDIM update operations according to the [JSON Patch](https://tools.ietf.org/html/rfc6902) standard. PATCH can only be applied to the following fields: * `beforeProvisioningRule` * `description` * `ownerRef` A 403 Forbidden Error indicates that you attempted to PATCH a field that is not allowed.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n patchServiceDeskIntegration: function (id, jsonPatchBeta, axiosOptions) {\n return localVarFp.patchServiceDeskIntegration(id, jsonPatchBeta, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * Update an existing Service Desk integration by ID with updated value in JSON form as the request body. A token with Org Admin or Service Desk Admin authority is required to access this endpoint.\n * @summary Update a Service Desk integration\n * @param {string} id ID of the Service Desk integration to update\n * @param {ServiceDeskIntegrationDtoBeta} serviceDeskIntegrationDtoBeta The specifics of the integration to update\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n putServiceDeskIntegration: function (id, serviceDeskIntegrationDtoBeta, axiosOptions) {\n return localVarFp.putServiceDeskIntegration(id, serviceDeskIntegrationDtoBeta, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * Update the time check configuration of queued SDIM tickets. A token with Org Admin or Service Desk Admin authority is required to access this endpoint.\n * @summary Update the time check configuration\n * @param {QueuedCheckConfigDetailsBeta} queuedCheckConfigDetailsBeta the modified time check configuration\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n updateStatusCheckDetails: function (queuedCheckConfigDetailsBeta, axiosOptions) {\n return localVarFp.updateStatusCheckDetails(queuedCheckConfigDetailsBeta, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n };\n};\nexports.ServiceDeskIntegrationBetaApiFactory = ServiceDeskIntegrationBetaApiFactory;\n/**\n * ServiceDeskIntegrationBetaApi - object-oriented interface\n * @export\n * @class ServiceDeskIntegrationBetaApi\n * @extends {BaseAPI}\n */\nvar ServiceDeskIntegrationBetaApi = /** @class */ (function (_super) {\n __extends(ServiceDeskIntegrationBetaApi, _super);\n function ServiceDeskIntegrationBetaApi() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n * Create a new Service Desk Integrations. A token with Org Admin or Service Desk Admin authority is required to access this endpoint.\n * @summary Create new Service Desk integration\n * @param {ServiceDeskIntegrationBetaApiCreateServiceDeskIntegrationRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof ServiceDeskIntegrationBetaApi\n */\n ServiceDeskIntegrationBetaApi.prototype.createServiceDeskIntegration = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.ServiceDeskIntegrationBetaApiFp)(this.configuration).createServiceDeskIntegration(requestParameters.serviceDeskIntegrationDtoBeta, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * Delete an existing Service Desk integration by ID. A token with Org Admin or Service Desk Admin authority is required to access this endpoint.\n * @summary Delete a Service Desk integration\n * @param {ServiceDeskIntegrationBetaApiDeleteServiceDeskIntegrationRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof ServiceDeskIntegrationBetaApi\n */\n ServiceDeskIntegrationBetaApi.prototype.deleteServiceDeskIntegration = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.ServiceDeskIntegrationBetaApiFp)(this.configuration).deleteServiceDeskIntegration(requestParameters.id, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * Get an existing Service Desk integration by ID. A token with Org Admin or Service Desk Admin authority is required to access this endpoint.\n * @summary Get a Service Desk integration\n * @param {ServiceDeskIntegrationBetaApiGetServiceDeskIntegrationRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof ServiceDeskIntegrationBetaApi\n */\n ServiceDeskIntegrationBetaApi.prototype.getServiceDeskIntegration = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.ServiceDeskIntegrationBetaApiFp)(this.configuration).getServiceDeskIntegration(requestParameters.id, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * Get a list of ServiceDeskIntegrationDto for existing Service Desk Integrations. A token with Org Admin or Service Desk Admin authority is required to access this endpoint.\n * @summary List existing Service Desk Integrations\n * @param {ServiceDeskIntegrationBetaApiGetServiceDeskIntegrationListRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof ServiceDeskIntegrationBetaApi\n */\n ServiceDeskIntegrationBetaApi.prototype.getServiceDeskIntegrationList = function (requestParameters, axiosOptions) {\n var _this = this;\n if (requestParameters === void 0) { requestParameters = {}; }\n return (0, exports.ServiceDeskIntegrationBetaApiFp)(this.configuration).getServiceDeskIntegrationList(requestParameters.offset, requestParameters.limit, requestParameters.sorters, requestParameters.filters, requestParameters.count, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This API endpoint returns an existing Service Desk integration template by scriptName. A token with Org Admin or Service Desk Admin authority is required to access this endpoint.\n * @summary Service Desk integration template by scriptName.\n * @param {ServiceDeskIntegrationBetaApiGetServiceDeskIntegrationTemplateRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof ServiceDeskIntegrationBetaApi\n */\n ServiceDeskIntegrationBetaApi.prototype.getServiceDeskIntegrationTemplate = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.ServiceDeskIntegrationBetaApiFp)(this.configuration).getServiceDeskIntegrationTemplate(requestParameters.scriptName, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This API endpoint returns the current list of supported Service Desk integration types. A token with Org Admin or Service Desk Admin authority is required to access this endpoint.\n * @summary Service Desk Integration Types List.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof ServiceDeskIntegrationBetaApi\n */\n ServiceDeskIntegrationBetaApi.prototype.getServiceDeskIntegrationTypes = function (axiosOptions) {\n var _this = this;\n return (0, exports.ServiceDeskIntegrationBetaApiFp)(this.configuration).getServiceDeskIntegrationTypes(axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * Get the time check configuration of queued SDIM tickets. A token with Org Admin or Service Desk Admin authority is required to access this endpoint.\n * @summary Get the time check configuration\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof ServiceDeskIntegrationBetaApi\n */\n ServiceDeskIntegrationBetaApi.prototype.getStatusCheckDetails = function (axiosOptions) {\n var _this = this;\n return (0, exports.ServiceDeskIntegrationBetaApiFp)(this.configuration).getStatusCheckDetails(axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * Update an existing ServiceDeskIntegration by ID with a PATCH request.\n * @summary Service Desk Integration Update PATCH\n * @param {ServiceDeskIntegrationBetaApiPatchServiceDeskIntegrationRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof ServiceDeskIntegrationBetaApi\n */\n ServiceDeskIntegrationBetaApi.prototype.patchServiceDeskIntegration = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.ServiceDeskIntegrationBetaApiFp)(this.configuration).patchServiceDeskIntegration(requestParameters.id, requestParameters.jsonPatchBeta, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * Update an existing Service Desk integration by ID with updated value in JSON form as the request body. A token with Org Admin or Service Desk Admin authority is required to access this endpoint.\n * @summary Update a Service Desk integration\n * @param {ServiceDeskIntegrationBetaApiPutServiceDeskIntegrationRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof ServiceDeskIntegrationBetaApi\n */\n ServiceDeskIntegrationBetaApi.prototype.putServiceDeskIntegration = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.ServiceDeskIntegrationBetaApiFp)(this.configuration).putServiceDeskIntegration(requestParameters.id, requestParameters.serviceDeskIntegrationDtoBeta, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * Update the time check configuration of queued SDIM tickets. A token with Org Admin or Service Desk Admin authority is required to access this endpoint.\n * @summary Update the time check configuration\n * @param {ServiceDeskIntegrationBetaApiUpdateStatusCheckDetailsRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof ServiceDeskIntegrationBetaApi\n */\n ServiceDeskIntegrationBetaApi.prototype.updateStatusCheckDetails = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.ServiceDeskIntegrationBetaApiFp)(this.configuration).updateStatusCheckDetails(requestParameters.queuedCheckConfigDetailsBeta, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n return ServiceDeskIntegrationBetaApi;\n}(base_1.BaseAPI));\nexports.ServiceDeskIntegrationBetaApi = ServiceDeskIntegrationBetaApi;\n/**\n * SourceUsagesBetaApi - axios parameter creator\n * @export\n */\nvar SourceUsagesBetaApiAxiosParamCreator = function (configuration) {\n var _this = this;\n return {\n /**\n * This API returns the status of the source usage insights setup by IDN source ID.\n * @summary Finds status of source usage\n * @param {string} sourceId ID of IDN source\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getStatusBySourceId: function (sourceId, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'sourceId' is not null or undefined\n (0, common_1.assertParamExists)('getStatusBySourceId', 'sourceId', sourceId);\n localVarPath = \"/source-usages/{sourceId}/status\"\n .replace(\"{\".concat(\"sourceId\", \"}\"), encodeURIComponent(String(sourceId)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This API returns a summary of source usage insights for past 12 months.\n * @summary Returns source usage insights\n * @param {string} sourceId ID of IDN source\n * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **date**\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getUsagesBySourceId: function (sourceId, limit, offset, count, sorters, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'sourceId' is not null or undefined\n (0, common_1.assertParamExists)('getUsagesBySourceId', 'sourceId', sourceId);\n localVarPath = \"/source-usages/{sourceId}/summaries\"\n .replace(\"{\".concat(\"sourceId\", \"}\"), encodeURIComponent(String(sourceId)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n if (limit !== undefined) {\n localVarQueryParameter['limit'] = limit;\n }\n if (offset !== undefined) {\n localVarQueryParameter['offset'] = offset;\n }\n if (count !== undefined) {\n localVarQueryParameter['count'] = count;\n }\n if (sorters !== undefined) {\n localVarQueryParameter['sorters'] = sorters;\n }\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n };\n};\nexports.SourceUsagesBetaApiAxiosParamCreator = SourceUsagesBetaApiAxiosParamCreator;\n/**\n * SourceUsagesBetaApi - functional programming interface\n * @export\n */\nvar SourceUsagesBetaApiFp = function (configuration) {\n var localVarAxiosParamCreator = (0, exports.SourceUsagesBetaApiAxiosParamCreator)(configuration);\n return {\n /**\n * This API returns the status of the source usage insights setup by IDN source ID.\n * @summary Finds status of source usage\n * @param {string} sourceId ID of IDN source\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getStatusBySourceId: function (sourceId, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.getStatusBySourceId(sourceId, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This API returns a summary of source usage insights for past 12 months.\n * @summary Returns source usage insights\n * @param {string} sourceId ID of IDN source\n * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **date**\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getUsagesBySourceId: function (sourceId, limit, offset, count, sorters, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.getUsagesBySourceId(sourceId, limit, offset, count, sorters, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n };\n};\nexports.SourceUsagesBetaApiFp = SourceUsagesBetaApiFp;\n/**\n * SourceUsagesBetaApi - factory interface\n * @export\n */\nvar SourceUsagesBetaApiFactory = function (configuration, basePath, axios) {\n var localVarFp = (0, exports.SourceUsagesBetaApiFp)(configuration);\n return {\n /**\n * This API returns the status of the source usage insights setup by IDN source ID.\n * @summary Finds status of source usage\n * @param {string} sourceId ID of IDN source\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getStatusBySourceId: function (sourceId, axiosOptions) {\n return localVarFp.getStatusBySourceId(sourceId, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This API returns a summary of source usage insights for past 12 months.\n * @summary Returns source usage insights\n * @param {string} sourceId ID of IDN source\n * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **date**\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getUsagesBySourceId: function (sourceId, limit, offset, count, sorters, axiosOptions) {\n return localVarFp.getUsagesBySourceId(sourceId, limit, offset, count, sorters, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n };\n};\nexports.SourceUsagesBetaApiFactory = SourceUsagesBetaApiFactory;\n/**\n * SourceUsagesBetaApi - object-oriented interface\n * @export\n * @class SourceUsagesBetaApi\n * @extends {BaseAPI}\n */\nvar SourceUsagesBetaApi = /** @class */ (function (_super) {\n __extends(SourceUsagesBetaApi, _super);\n function SourceUsagesBetaApi() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n * This API returns the status of the source usage insights setup by IDN source ID.\n * @summary Finds status of source usage\n * @param {SourceUsagesBetaApiGetStatusBySourceIdRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof SourceUsagesBetaApi\n */\n SourceUsagesBetaApi.prototype.getStatusBySourceId = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.SourceUsagesBetaApiFp)(this.configuration).getStatusBySourceId(requestParameters.sourceId, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This API returns a summary of source usage insights for past 12 months.\n * @summary Returns source usage insights\n * @param {SourceUsagesBetaApiGetUsagesBySourceIdRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof SourceUsagesBetaApi\n */\n SourceUsagesBetaApi.prototype.getUsagesBySourceId = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.SourceUsagesBetaApiFp)(this.configuration).getUsagesBySourceId(requestParameters.sourceId, requestParameters.limit, requestParameters.offset, requestParameters.count, requestParameters.sorters, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n return SourceUsagesBetaApi;\n}(base_1.BaseAPI));\nexports.SourceUsagesBetaApi = SourceUsagesBetaApi;\n/**\n * SourcesBetaApi - axios parameter creator\n * @export\n */\nvar SourcesBetaApiAxiosParamCreator = function (configuration) {\n var _this = this;\n return {\n /**\n * This end-point deletes a specific source in IdentityNow. A token with ORG_ADMIN, SOURCE_ADMIN, or SOURCE_SUBADMIN authority is required to call this API. All of accounts on the source will be removed first, then the source will be deleted. Actual status of task execution can be retrieved via method GET `/task-status/{id}`\n * @summary Delete Source by ID\n * @param {string} id The Source ID\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n _delete: function (id, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'id' is not null or undefined\n (0, common_1.assertParamExists)('_delete', 'id', id);\n localVarPath = \"/sources/{id}\"\n .replace(\"{\".concat(\"id\", \"}\"), encodeURIComponent(String(id)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'DELETE' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This API generates a create policy/template based on field value transforms. This API is intended for use when setting up JDBC Provisioning type sources, but it will also work on other source types. Transforms can be used in the provisioning policy to create a new attribute that you only need during provisioning. Refer to [Transforms in Provisioning Policies](https://developer.sailpoint.com/idn/docs/transforms/guides/transforms-in-provisioning-policies) for more information. A token with ORG_ADMIN authority is required to call this API.\n * @summary Create Provisioning Policy\n * @param {string} sourceId The Source id\n * @param {ProvisioningPolicyDtoBeta} provisioningPolicyDtoBeta\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n createProvisioningPolicy: function (sourceId, provisioningPolicyDtoBeta, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'sourceId' is not null or undefined\n (0, common_1.assertParamExists)('createProvisioningPolicy', 'sourceId', sourceId);\n // verify required parameter 'provisioningPolicyDtoBeta' is not null or undefined\n (0, common_1.assertParamExists)('createProvisioningPolicy', 'provisioningPolicyDtoBeta', provisioningPolicyDtoBeta);\n localVarPath = \"/sources/{sourceId}/provisioning-policies\"\n .replace(\"{\".concat(\"sourceId\", \"}\"), encodeURIComponent(String(sourceId)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n localVarHeaderParameter['Content-Type'] = 'application/json';\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(provisioningPolicyDtoBeta, localVarRequestOptions, configuration);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This creates a specific source with a full source JSON representation. Any passwords are submitted as plain-text and encrypted upon receipt in IdentityNow. A token with ORG_ADMIN, SOURCE_ADMIN, or SOURCE_SUBADMIN authority is required to call this API.\n * @summary Creates a source in IdentityNow.\n * @param {SourceBeta} sourceBeta\n * @param {boolean} [provisionAsCsv] If this parameter is `true`, it configures the source as a Delimited File (CSV) source. Setting this to `true` will automatically set the `type` of the source to `DelimitedFile`. You must use this query parameter to create a Delimited File source as you would in the UI. If you don\\'t set this query parameter and you attempt to set the `type` attribute directly, the request won\\'t correctly generate the source.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n createSource: function (sourceBeta, provisionAsCsv, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'sourceBeta' is not null or undefined\n (0, common_1.assertParamExists)('createSource', 'sourceBeta', sourceBeta);\n localVarPath = \"/sources\";\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n if (provisionAsCsv !== undefined) {\n localVarQueryParameter['provisionAsCsv'] = provisionAsCsv;\n }\n localVarHeaderParameter['Content-Type'] = 'application/json';\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(sourceBeta, localVarRequestOptions, configuration);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n *\n * @summary Creates a new Schema on the specified Source in IdentityNow.\n * @param {string} sourceId The Source id.\n * @param {SchemaBeta} schemaBeta\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n createSourceSchema: function (sourceId, schemaBeta, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'sourceId' is not null or undefined\n (0, common_1.assertParamExists)('createSourceSchema', 'sourceId', sourceId);\n // verify required parameter 'schemaBeta' is not null or undefined\n (0, common_1.assertParamExists)('createSourceSchema', 'schemaBeta', schemaBeta);\n localVarPath = \"/sources/{sourceId}/schemas\"\n .replace(\"{\".concat(\"sourceId\", \"}\"), encodeURIComponent(String(sourceId)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n localVarHeaderParameter['Content-Type'] = 'application/json';\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(schemaBeta, localVarRequestOptions, configuration);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * Deletes the native change detection configuration for the source specified by the given ID. A token with API, or ORG_ADMIN authority is required to call this API.\n * @summary Delete Native Change Detection Configuration\n * @param {string} id The source id\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n deleteNativeChangeDetectionConfig: function (id, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'id' is not null or undefined\n (0, common_1.assertParamExists)('deleteNativeChangeDetectionConfig', 'id', id);\n localVarPath = \"/sources/{sourceId}/native-change-detection-config\"\n .replace(\"{\".concat(\"id\", \"}\"), encodeURIComponent(String(id)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'DELETE' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * Deletes the provisioning policy with the specified usage on an application. A token with API, or ORG_ADMIN authority is required to call this API.\n * @summary Delete Provisioning Policy by UsageType\n * @param {string} sourceId The Source ID.\n * @param {UsageTypeBeta} usageType The type of provisioning policy usage. In IdentityNow, a source can support various provisioning operations. For example, when a joiner is added to a source, this may trigger both CREATE and UPDATE provisioning operations. Each usage type is considered a provisioning policy. A source can have any number of these provisioning policies defined. These are the common usage types: CREATE - This usage type relates to \\'Create Account Profile\\', the provisioning template for the account to be created. For example, this would be used for a joiner on a source. UPDATE - This usage type relates to \\'Update Account Profile\\', the provisioning template for the \\'Update\\' connector operations. For example, this would be used for an attribute sync on a source. ENABLE - This usage type relates to \\'Enable Account Profile\\', the provisioning template for the account to be enabled. For example, this could be used for a joiner on a source once the joiner\\'s account is created. DISABLE - This usage type relates to \\'Disable Account Profile\\', the provisioning template for the account to be disabled. For example, this could be used when a leaver is removed temporarily from a source. You can use these four usage types for all your provisioning policy needs.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n deleteProvisioningPolicy: function (sourceId, usageType, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'sourceId' is not null or undefined\n (0, common_1.assertParamExists)('deleteProvisioningPolicy', 'sourceId', sourceId);\n // verify required parameter 'usageType' is not null or undefined\n (0, common_1.assertParamExists)('deleteProvisioningPolicy', 'usageType', usageType);\n localVarPath = \"/sources/{sourceId}/provisioning-policies/{usageType}\"\n .replace(\"{\".concat(\"sourceId\", \"}\"), encodeURIComponent(String(sourceId)))\n .replace(\"{\".concat(\"usageType\", \"}\"), encodeURIComponent(String(usageType)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'DELETE' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n *\n * @summary Delete Source Schema by ID\n * @param {string} sourceId The Source ID.\n * @param {string} schemaId The Schema ID.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n deleteSourceSchema: function (sourceId, schemaId, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'sourceId' is not null or undefined\n (0, common_1.assertParamExists)('deleteSourceSchema', 'sourceId', sourceId);\n // verify required parameter 'schemaId' is not null or undefined\n (0, common_1.assertParamExists)('deleteSourceSchema', 'schemaId', schemaId);\n localVarPath = \"/sources/{sourceId}/schemas/{schemaId}\"\n .replace(\"{\".concat(\"sourceId\", \"}\"), encodeURIComponent(String(sourceId)))\n .replace(\"{\".concat(\"schemaId\", \"}\"), encodeURIComponent(String(schemaId)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'DELETE' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This API returns the existing native change detection configuration for a source specified by the given ID. A token with ORG_ADMIN authority is required to call this API.\n * @summary Native Change Detection Configuration\n * @param {string} id The source id\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getNativeChangeDetectionConfig: function (id, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'id' is not null or undefined\n (0, common_1.assertParamExists)('getNativeChangeDetectionConfig', 'id', id);\n localVarPath = \"/sources/{sourceId}/native-change-detection-config\"\n .replace(\"{\".concat(\"id\", \"}\"), encodeURIComponent(String(id)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This end-point retrieves the ProvisioningPolicy with the specified usage on the specified Source in IdentityNow. A token with API, ORG_ADMIN, SOURCE_ADMIN, or SOURCE_SUBADMIN authority is required to call this API.\n * @summary Get Provisioning Policy by UsageType\n * @param {string} sourceId The Source ID.\n * @param {UsageTypeBeta} usageType The type of provisioning policy usage. In IdentityNow, a source can support various provisioning operations. For example, when a joiner is added to a source, this may trigger both CREATE and UPDATE provisioning operations. Each usage type is considered a provisioning policy. A source can have any number of these provisioning policies defined. These are the common usage types: CREATE - This usage type relates to \\'Create Account Profile\\', the provisioning template for the account to be created. For example, this would be used for a joiner on a source. UPDATE - This usage type relates to \\'Update Account Profile\\', the provisioning template for the \\'Update\\' connector operations. For example, this would be used for an attribute sync on a source. ENABLE - This usage type relates to \\'Enable Account Profile\\', the provisioning template for the account to be enabled. For example, this could be used for a joiner on a source once the joiner\\'s account is created. DISABLE - This usage type relates to \\'Disable Account Profile\\', the provisioning template for the account to be disabled. For example, this could be used when a leaver is removed temporarily from a source. You can use these four usage types for all your provisioning policy needs.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getProvisioningPolicy: function (sourceId, usageType, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'sourceId' is not null or undefined\n (0, common_1.assertParamExists)('getProvisioningPolicy', 'sourceId', sourceId);\n // verify required parameter 'usageType' is not null or undefined\n (0, common_1.assertParamExists)('getProvisioningPolicy', 'usageType', usageType);\n localVarPath = \"/sources/{sourceId}/provisioning-policies/{usageType}\"\n .replace(\"{\".concat(\"sourceId\", \"}\"), encodeURIComponent(String(sourceId)))\n .replace(\"{\".concat(\"usageType\", \"}\"), encodeURIComponent(String(usageType)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This end-point gets a specific source in IdentityNow. A token with ORG_ADMIN, SOURCE_ADMIN, or SOURCE_SUBADMIN authority is required to call this API.\n * @summary Get Source by ID\n * @param {string} id The Source ID\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getSource: function (id, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'id' is not null or undefined\n (0, common_1.assertParamExists)('getSource', 'id', id);\n localVarPath = \"/sources/{id}\"\n .replace(\"{\".concat(\"id\", \"}\"), encodeURIComponent(String(id)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n *\n * @summary Downloads source accounts schema template\n * @param {string} id The Source id\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getSourceAccountsSchema: function (id, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'id' is not null or undefined\n (0, common_1.assertParamExists)('getSourceAccountsSchema', 'id', id);\n localVarPath = \"/sources/{id}/schemas/accounts\"\n .replace(\"{\".concat(\"id\", \"}\"), encodeURIComponent(String(id)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This API returns the existing attribute synchronization configuration for a source specified by the given ID. The response contains all attributes, regardless of whether they enabled or not. A token with ORG_ADMIN authority is required to call this API.\n * @summary Attribute Sync Config\n * @param {string} id The source id\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getSourceAttrSyncConfig: function (id, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'id' is not null or undefined\n (0, common_1.assertParamExists)('getSourceAttrSyncConfig', 'id', id);\n localVarPath = \"/sources/{id}/attribute-sync-config\"\n .replace(\"{\".concat(\"id\", \"}\"), encodeURIComponent(String(id)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * Looks up and returns the source config for the requested source id after populating the source config values and applying language translations. A token with ORG_ADMIN authority is required to call this API.\n * @summary Gets source config with language translations\n * @param {string} id The Source id\n * @param {'de' | 'false' | 'fi' | 'sv' | 'ru' | 'pt' | 'ko' | 'zh-TW' | 'en' | 'it' | 'fr' | 'zh-CN' | 'hu' | 'es' | 'cs' | 'ja' | 'pl' | 'da' | 'nl'} [locale] The locale to apply to the config. If no viable locale is given, it will default to \\"en\\"\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getSourceConfig: function (id, locale, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'id' is not null or undefined\n (0, common_1.assertParamExists)('getSourceConfig', 'id', id);\n localVarPath = \"/sources/{id}/connectors/source-config\"\n .replace(\"{\".concat(\"id\", \"}\"), encodeURIComponent(String(id)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n if (locale !== undefined) {\n localVarQueryParameter['locale'] = locale;\n }\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This API gets the current entitlement request configuration for a source. This source-level configuration should apply for all the entitlements in the source. Access request to any entitlements in the source should follow this configuration unless a separate entitlement-level configuration is defined. - During access request, this source-level entitlement request configuration overrides the global organization-level configuration. - However, the entitlement-level configuration (if defined) overrides this source-level configuration. A token with ORG_ADMIN, SOURCE_ADMIN, or SOURCE_SUBADMIN authority is required to call this API.\n * @summary Get Source Entitlement Request Configuration\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getSourceEntitlementRequestConfig: function (axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n localVarPath = \"/sources/{id}/entitlement-request-config\";\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n *\n * @summary Downloads source entitlements schema template\n * @param {string} id The Source id\n * @param {string} [schemaName] Name of entitlement schema\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getSourceEntitlementsSchema: function (id, schemaName, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'id' is not null or undefined\n (0, common_1.assertParamExists)('getSourceEntitlementsSchema', 'id', id);\n localVarPath = \"/sources/{id}/schemas/entitlements\"\n .replace(\"{\".concat(\"id\", \"}\"), encodeURIComponent(String(id)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n if (schemaName !== undefined) {\n localVarQueryParameter['schemaName'] = schemaName;\n }\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * Get the Source Schema by ID in IdentityNow.\n * @summary Get Source Schema by ID\n * @param {string} sourceId The Source ID.\n * @param {string} schemaId The Schema ID.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getSourceSchema: function (sourceId, schemaId, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'sourceId' is not null or undefined\n (0, common_1.assertParamExists)('getSourceSchema', 'sourceId', sourceId);\n // verify required parameter 'schemaId' is not null or undefined\n (0, common_1.assertParamExists)('getSourceSchema', 'schemaId', schemaId);\n localVarPath = \"/sources/{sourceId}/schemas/{schemaId}\"\n .replace(\"{\".concat(\"sourceId\", \"}\"), encodeURIComponent(String(sourceId)))\n .replace(\"{\".concat(\"schemaId\", \"}\"), encodeURIComponent(String(schemaId)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This API uploads a source schema template file to configure a source\\'s account attributes.\n * @summary Uploads source accounts schema template\n * @param {string} id The Source id\n * @param {any} [file]\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n importSourceAccountsSchema: function (id, file, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, localVarFormParams, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'id' is not null or undefined\n (0, common_1.assertParamExists)('importSourceAccountsSchema', 'id', id);\n localVarPath = \"/sources/{id}/schemas/accounts\"\n .replace(\"{\".concat(\"id\", \"}\"), encodeURIComponent(String(id)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n localVarFormParams = new ((configuration && configuration.formDataCtor) || FormData)();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n if (file !== undefined) {\n localVarFormParams.append('file', file);\n }\n localVarHeaderParameter['Content-Type'] = 'multipart/form-data';\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n localVarRequestOptions.data = localVarFormParams;\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This uploads a supplemental source connector file (like jdbc driver jars) to a source\\'s S3 bucket. This also sends ETS and Audit events. A token with ORG_ADMIN authority is required to call this API.\n * @summary Upload connector file to source\n * @param {string} sourceId The Source id\n * @param {any} [file]\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n importSourceConnectorFile: function (sourceId, file, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, localVarFormParams, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'sourceId' is not null or undefined\n (0, common_1.assertParamExists)('importSourceConnectorFile', 'sourceId', sourceId);\n localVarPath = \"/sources/{sourceId}/upload-connector-file\"\n .replace(\"{\".concat(\"sourceId\", \"}\"), encodeURIComponent(String(sourceId)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n localVarFormParams = new ((configuration && configuration.formDataCtor) || FormData)();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n if (file !== undefined) {\n localVarFormParams.append('file', file);\n }\n localVarHeaderParameter['Content-Type'] = 'multipart/form-data';\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n localVarRequestOptions.data = localVarFormParams;\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This API uploads a source schema template file to configure a source\\'s entitlement attributes.\n * @summary Uploads source entitlements schema template\n * @param {string} id The Source id\n * @param {string} [schemaName] Name of entitlement schema\n * @param {any} [file]\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n importSourceEntitlementsSchema: function (id, schemaName, file, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, localVarFormParams, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'id' is not null or undefined\n (0, common_1.assertParamExists)('importSourceEntitlementsSchema', 'id', id);\n localVarPath = \"/sources/{id}/schemas/entitlements\"\n .replace(\"{\".concat(\"id\", \"}\"), encodeURIComponent(String(id)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n localVarFormParams = new ((configuration && configuration.formDataCtor) || FormData)();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n if (schemaName !== undefined) {\n localVarQueryParameter['schemaName'] = schemaName;\n }\n if (file !== undefined) {\n localVarFormParams.append('file', file);\n }\n localVarHeaderParameter['Content-Type'] = 'multipart/form-data';\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n localVarRequestOptions.data = localVarFormParams;\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This end-point lists all the ProvisioningPolicies in IdentityNow. A token with API, or ORG_ADMIN authority is required to call this API.\n * @summary Lists ProvisioningPolicies\n * @param {string} sourceId The Source id\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n listProvisioningPolicies: function (sourceId, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'sourceId' is not null or undefined\n (0, common_1.assertParamExists)('listProvisioningPolicies', 'sourceId', sourceId);\n localVarPath = \"/sources/{sourceId}/provisioning-policies\"\n .replace(\"{\".concat(\"sourceId\", \"}\"), encodeURIComponent(String(sourceId)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n *\n * @summary Lists the Schemas that exist on the specified Source in IdentityNow.\n * @param {string} sourceId The Source id.\n * @param {string} [includeTypes] If set to \\'group\\', then the account schema is filtered and only group schemas are returned. Only a value of \\'group\\' is recognized.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n listSourceSchemas: function (sourceId, includeTypes, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'sourceId' is not null or undefined\n (0, common_1.assertParamExists)('listSourceSchemas', 'sourceId', sourceId);\n localVarPath = \"/sources/{sourceId}/schemas\"\n .replace(\"{\".concat(\"sourceId\", \"}\"), encodeURIComponent(String(sourceId)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n if (includeTypes !== undefined) {\n localVarQueryParameter['include-types'] = includeTypes;\n }\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This end-point lists all the sources in IdentityNow. A token with ORG_ADMIN, SOURCE_ADMIN, SOURCE_SUBADMIN, or ROLE_SUBADMIN authority is required to call this API.\n * @summary Lists all sources in IdentityNow.\n * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **id**: *eq, in, co, ge, gt, le, lt, ne, isnull, sw* **name**: *co, eq, in, sw, ge, gt, ne, isnull* **type**: *eq, in, co, ge, gt, ne, isnull, sw* **owner.id**: *eq, in, co, ge, gt, le, lt, ne, isnull, sw* **features**: *ca, co* **created**: *eq* **modified**: *eq* **managementWorkgroup.id**: *eq, co, ge, gt, in, le, lt, ne, isnull, sw* **description**: *eq, sw* **authoritative**: *eq, ne, isnull* **healthy**: *isnull* **status**: *eq, in, co, ge, gt, le, lt, ne, isnull, sw* **connectionType**: *eq, co, ge, gt, in, le, lt, ne, isnull, sw* **connectorName**: *eq, co, ge, gt, in, ne, isnull, sw*\n * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **type, created, modified, name, owner.name, healthy, status, id, description, owner.id, accountCorrelationConfig.id, accountCorrelationConfig.name, managerCorrelationRule.type, managerCorrelationRule.id, managerCorrelationRule.name, authoritative, managementWorkgroup.id, connectorName, connectionType**\n * @param {string} [forSubadmin] Filter the returned list of sources for the identity specified by the parameter, which is the id of an identity with the role SOURCE_SUBADMIN. By convention, the value **me** indicates the identity id of the current user. Subadmins may only view Sources which they are able to administer; all other Sources will be filtered out when this parameter is set. If the current user is a SOURCE_SUBADMIN but fails to pass a valid value for this parameter, a 403 Forbidden is returned.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n listSources: function (limit, offset, count, filters, sorters, forSubadmin, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n localVarPath = \"/sources\";\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n if (limit !== undefined) {\n localVarQueryParameter['limit'] = limit;\n }\n if (offset !== undefined) {\n localVarQueryParameter['offset'] = offset;\n }\n if (count !== undefined) {\n localVarQueryParameter['count'] = count;\n }\n if (filters !== undefined) {\n localVarQueryParameter['filters'] = filters;\n }\n if (sorters !== undefined) {\n localVarQueryParameter['sorters'] = sorters;\n }\n if (forSubadmin !== undefined) {\n localVarQueryParameter['for-subadmin'] = forSubadmin;\n }\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * Retrieves a sample of data returned from account and group aggregation requests. A token with ORG_ADMIN authority is required to call this API.\n * @summary Peek source connector\\'s resource objects\n * @param {string} sourceId The ID of the Source\n * @param {ResourceObjectsRequestBeta} resourceObjectsRequestBeta\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n peekResourceObjects: function (sourceId, resourceObjectsRequestBeta, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'sourceId' is not null or undefined\n (0, common_1.assertParamExists)('peekResourceObjects', 'sourceId', sourceId);\n // verify required parameter 'resourceObjectsRequestBeta' is not null or undefined\n (0, common_1.assertParamExists)('peekResourceObjects', 'resourceObjectsRequestBeta', resourceObjectsRequestBeta);\n localVarPath = \"/sources/{sourceId}/connector/peek-resource-objects\"\n .replace(\"{\".concat(\"sourceId\", \"}\"), encodeURIComponent(String(sourceId)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n localVarHeaderParameter['Content-Type'] = 'application/json';\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(resourceObjectsRequestBeta, localVarRequestOptions, configuration);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This endpoint validates that the cluster being used by the source is reachable from IdentityNow. A token with ORG_ADMIN authority is required to call this API.\n * @summary Ping cluster for source connector\n * @param {string} sourceId The ID of the Source\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n pingCluster: function (sourceId, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'sourceId' is not null or undefined\n (0, common_1.assertParamExists)('pingCluster', 'sourceId', sourceId);\n localVarPath = \"/sources/{sourceId}/connector/ping-cluster\"\n .replace(\"{\".concat(\"sourceId\", \"}\"), encodeURIComponent(String(sourceId)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * Replaces the native change detection configuration for the source specified by the given ID with the configuration provided in the request body. A token with ORG_ADMIN authority is required to call this API.\n * @summary Update Native Change Detection Configuration\n * @param {string} id The source id\n * @param {NativeChangeDetectionConfigBeta} nativeChangeDetectionConfigBeta\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n putNativeChangeDetectionConfig: function (id, nativeChangeDetectionConfigBeta, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'id' is not null or undefined\n (0, common_1.assertParamExists)('putNativeChangeDetectionConfig', 'id', id);\n // verify required parameter 'nativeChangeDetectionConfigBeta' is not null or undefined\n (0, common_1.assertParamExists)('putNativeChangeDetectionConfig', 'nativeChangeDetectionConfigBeta', nativeChangeDetectionConfigBeta);\n localVarPath = \"/sources/{sourceId}/native-change-detection-config\"\n .replace(\"{\".concat(\"id\", \"}\"), encodeURIComponent(String(id)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'PUT' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n localVarHeaderParameter['Content-Type'] = 'application/json';\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(nativeChangeDetectionConfigBeta, localVarRequestOptions, configuration);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This end-point updates the provisioning policy with the specified usage on the specified source in IdentityNow. Transforms can be used in the provisioning policy to create a new attribute that you only need during provisioning. Refer to [Transforms in Provisioning Policies](https://developer.sailpoint.com/idn/docs/transforms/guides/transforms-in-provisioning-policies) for more information. A token with API, ORG_ADMIN, SOURCE_ADMIN, or SOURCE_SUBADMIN authority is required to call this API.\n * @summary Update Provisioning Policy by UsageType\n * @param {string} sourceId The Source ID.\n * @param {UsageTypeBeta} usageType The type of provisioning policy usage. In IdentityNow, a source can support various provisioning operations. For example, when a joiner is added to a source, this may trigger both CREATE and UPDATE provisioning operations. Each usage type is considered a provisioning policy. A source can have any number of these provisioning policies defined. These are the common usage types: CREATE - This usage type relates to \\'Create Account Profile\\', the provisioning template for the account to be created. For example, this would be used for a joiner on a source. UPDATE - This usage type relates to \\'Update Account Profile\\', the provisioning template for the \\'Update\\' connector operations. For example, this would be used for an attribute sync on a source. ENABLE - This usage type relates to \\'Enable Account Profile\\', the provisioning template for the account to be enabled. For example, this could be used for a joiner on a source once the joiner\\'s account is created. DISABLE - This usage type relates to \\'Disable Account Profile\\', the provisioning template for the account to be disabled. For example, this could be used when a leaver is removed temporarily from a source. You can use these four usage types for all your provisioning policy needs.\n * @param {ProvisioningPolicyDtoBeta} provisioningPolicyDtoBeta\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n putProvisioningPolicy: function (sourceId, usageType, provisioningPolicyDtoBeta, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'sourceId' is not null or undefined\n (0, common_1.assertParamExists)('putProvisioningPolicy', 'sourceId', sourceId);\n // verify required parameter 'usageType' is not null or undefined\n (0, common_1.assertParamExists)('putProvisioningPolicy', 'usageType', usageType);\n // verify required parameter 'provisioningPolicyDtoBeta' is not null or undefined\n (0, common_1.assertParamExists)('putProvisioningPolicy', 'provisioningPolicyDtoBeta', provisioningPolicyDtoBeta);\n localVarPath = \"/sources/{sourceId}/provisioning-policies/{usageType}\"\n .replace(\"{\".concat(\"sourceId\", \"}\"), encodeURIComponent(String(sourceId)))\n .replace(\"{\".concat(\"usageType\", \"}\"), encodeURIComponent(String(usageType)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'PUT' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n localVarHeaderParameter['Content-Type'] = 'application/json';\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(provisioningPolicyDtoBeta, localVarRequestOptions, configuration);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This API updates a source in IdentityNow, using a full object representation. In other words, the existing Source configuration is completely replaced. Some fields are immutable and cannot be changed, such as: * id * type * authoritative * connector * connectorClass * passwordPolicies Attempts to modify these fields will result in a 400 error. A token with ORG_ADMIN, SOURCE_ADMIN, or SOURCE_SUBADMIN authority is required to call this API.\n * @summary Update Source (Full)\n * @param {string} id The Source id\n * @param {SourceBeta} sourceBeta\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n putSource: function (id, sourceBeta, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'id' is not null or undefined\n (0, common_1.assertParamExists)('putSource', 'id', id);\n // verify required parameter 'sourceBeta' is not null or undefined\n (0, common_1.assertParamExists)('putSource', 'sourceBeta', sourceBeta);\n localVarPath = \"/sources/{id}\"\n .replace(\"{\".concat(\"id\", \"}\"), encodeURIComponent(String(id)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'PUT' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n localVarHeaderParameter['Content-Type'] = 'application/json';\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(sourceBeta, localVarRequestOptions, configuration);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * Replaces the attribute synchronization configuration for the source specified by the given ID with the configuration provided in the request body. Only the \\\"enabled\\\" field of the values in the \\\"attributes\\\" array is mutable. Attempting to change other attributes or add new values to the \\\"attributes\\\" array will result in an error. A token with ORG_ADMIN authority is required to call this API.\n * @summary Update Attribute Sync Config\n * @param {string} id The source id\n * @param {AttrSyncSourceConfigBeta} attrSyncSourceConfigBeta\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n putSourceAttrSyncConfig: function (id, attrSyncSourceConfigBeta, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'id' is not null or undefined\n (0, common_1.assertParamExists)('putSourceAttrSyncConfig', 'id', id);\n // verify required parameter 'attrSyncSourceConfigBeta' is not null or undefined\n (0, common_1.assertParamExists)('putSourceAttrSyncConfig', 'attrSyncSourceConfigBeta', attrSyncSourceConfigBeta);\n localVarPath = \"/sources/{id}/attribute-sync-config\"\n .replace(\"{\".concat(\"id\", \"}\"), encodeURIComponent(String(id)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'PUT' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n localVarHeaderParameter['Content-Type'] = 'application/json';\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(attrSyncSourceConfigBeta, localVarRequestOptions, configuration);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This API will completely replace an existing Schema with the submitted payload. Some fields of the Schema cannot be updated. These fields are listed below. * id * name * created * modified Any attempt to modify these fields will result in an error response with a status code of 400.\n * @summary Update Source Schema (Full)\n * @param {string} sourceId The Source ID.\n * @param {string} schemaId The Schema ID.\n * @param {SchemaBeta} schemaBeta\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n putSourceSchema: function (sourceId, schemaId, schemaBeta, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'sourceId' is not null or undefined\n (0, common_1.assertParamExists)('putSourceSchema', 'sourceId', sourceId);\n // verify required parameter 'schemaId' is not null or undefined\n (0, common_1.assertParamExists)('putSourceSchema', 'schemaId', schemaId);\n // verify required parameter 'schemaBeta' is not null or undefined\n (0, common_1.assertParamExists)('putSourceSchema', 'schemaBeta', schemaBeta);\n localVarPath = \"/sources/{sourceId}/schemas/{schemaId}\"\n .replace(\"{\".concat(\"sourceId\", \"}\"), encodeURIComponent(String(sourceId)))\n .replace(\"{\".concat(\"schemaId\", \"}\"), encodeURIComponent(String(schemaId)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'PUT' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n localVarHeaderParameter['Content-Type'] = 'application/json';\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(schemaBeta, localVarRequestOptions, configuration);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This end-point performs attribute synchronization for a selected source. A token with ORG_ADMIN or SOURCE_ADMIN authority is required to call this API.\n * @summary Synchronize single source attributes.\n * @param {string} id The Source id\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n syncAttributesForSource: function (id, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'id' is not null or undefined\n (0, common_1.assertParamExists)('syncAttributesForSource', 'id', id);\n localVarPath = \"/sources/{id}/synchronize-attributes\"\n .replace(\"{\".concat(\"id\", \"}\"), encodeURIComponent(String(id)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This endpoint performs a more detailed validation of the source\\'s configuration that can take longer than the lighter weight credential validation performed by the checkConnection API. A token with ORG_ADMIN authority is required to call this API.\n * @summary Test configuration for source connector\n * @param {string} sourceId The ID of the Source\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n testSourceConfiguration: function (sourceId, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'sourceId' is not null or undefined\n (0, common_1.assertParamExists)('testSourceConfiguration', 'sourceId', sourceId);\n localVarPath = \"/sources/{sourceId}/connector/test-configuration\"\n .replace(\"{\".concat(\"sourceId\", \"}\"), encodeURIComponent(String(sourceId)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This endpoint validates that the configured credentials are valid and will properly authenticate with the source identified by the sourceId path parameter. A token with ORG_ADMIN authority is required to call this API.\n * @summary Check connection for source connector.\n * @param {string} sourceId The ID of the Source.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n testSourceConnection: function (sourceId, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'sourceId' is not null or undefined\n (0, common_1.assertParamExists)('testSourceConnection', 'sourceId', sourceId);\n localVarPath = \"/sources/{sourceId}/connector/check-connection\"\n .replace(\"{\".concat(\"sourceId\", \"}\"), encodeURIComponent(String(sourceId)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This end-point updates a list of provisioning policies on the specified source in IdentityNow. A token with API, or ORG_ADMIN authority is required to call this API.\n * @summary Bulk Update Provisioning Policies\n * @param {string} sourceId The Source id.\n * @param {Array} provisioningPolicyDtoBeta\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n updateProvisioningPoliciesInBulk: function (sourceId, provisioningPolicyDtoBeta, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'sourceId' is not null or undefined\n (0, common_1.assertParamExists)('updateProvisioningPoliciesInBulk', 'sourceId', sourceId);\n // verify required parameter 'provisioningPolicyDtoBeta' is not null or undefined\n (0, common_1.assertParamExists)('updateProvisioningPoliciesInBulk', 'provisioningPolicyDtoBeta', provisioningPolicyDtoBeta);\n localVarPath = \"/sources/{sourceId}/provisioning-policies/bulk-update\"\n .replace(\"{\".concat(\"sourceId\", \"}\"), encodeURIComponent(String(sourceId)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n localVarHeaderParameter['Content-Type'] = 'application/json';\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(provisioningPolicyDtoBeta, localVarRequestOptions, configuration);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This API selectively updates an existing Provisioning Policy using a JSONPatch payload. Transforms can be used in the provisioning policy to create a new attribute that you only need during provisioning. Refer to [Transforms in Provisioning Policies](https://developer.sailpoint.com/idn/docs/transforms/guides/transforms-in-provisioning-policies) for more information. A token with API, ORG_ADMIN, SOURCE_ADMIN, or SOURCE_SUBADMIN authority is required to call this API.\n * @summary Partial update of Provisioning Policy\n * @param {string} sourceId The Source id.\n * @param {UsageTypeBeta} usageType The type of provisioning policy usage. In IdentityNow, a source can support various provisioning operations. For example, when a joiner is added to a source, this may trigger both CREATE and UPDATE provisioning operations. Each usage type is considered a provisioning policy. A source can have any number of these provisioning policies defined. These are the common usage types: CREATE - This usage type relates to \\'Create Account Profile\\', the provisioning template for the account to be created. For example, this would be used for a joiner on a source. UPDATE - This usage type relates to \\'Update Account Profile\\', the provisioning template for the \\'Update\\' connector operations. For example, this would be used for an attribute sync on a source. ENABLE - This usage type relates to \\'Enable Account Profile\\', the provisioning template for the account to be enabled. For example, this could be used for a joiner on a source once the joiner\\'s account is created. DISABLE - This usage type relates to \\'Disable Account Profile\\', the provisioning template for the account to be disabled. For example, this could be used when a leaver is removed temporarily from a source. You can use these four usage types for all your provisioning policy needs.\n * @param {Array} jsonPatchOperationBeta The JSONPatch payload used to update the schema.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n updateProvisioningPolicy: function (sourceId, usageType, jsonPatchOperationBeta, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'sourceId' is not null or undefined\n (0, common_1.assertParamExists)('updateProvisioningPolicy', 'sourceId', sourceId);\n // verify required parameter 'usageType' is not null or undefined\n (0, common_1.assertParamExists)('updateProvisioningPolicy', 'usageType', usageType);\n // verify required parameter 'jsonPatchOperationBeta' is not null or undefined\n (0, common_1.assertParamExists)('updateProvisioningPolicy', 'jsonPatchOperationBeta', jsonPatchOperationBeta);\n localVarPath = \"/sources/{sourceId}/provisioning-policies/{usageType}\"\n .replace(\"{\".concat(\"sourceId\", \"}\"), encodeURIComponent(String(sourceId)))\n .replace(\"{\".concat(\"usageType\", \"}\"), encodeURIComponent(String(usageType)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'PATCH' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n localVarHeaderParameter['Content-Type'] = 'application/json-patch+json';\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(jsonPatchOperationBeta, localVarRequestOptions, configuration);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This API partially updates a source in IdentityNow, using a list of patch operations according to the [JSON Patch](https://tools.ietf.org/html/rfc6902) standard. Some fields are immutable and cannot be changed, such as: * id * type * authoritative * created * modified * connector * connectorClass * passwordPolicies Attempts to modify these fields will result in a 400 error. A token with ORG_ADMIN, SOURCE_ADMIN, SOURCE_SUBADMIN, or API authority is required to call this API.\n * @summary Update Source (Partial)\n * @param {string} id The Source id\n * @param {Array} jsonPatchOperationBeta A list of account update operations according to the [JSON Patch](https://tools.ietf.org/html/rfc6902) standard. Any password changes are submitted as plain-text and encrypted upon receipt in IdentityNow.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n updateSource: function (id, jsonPatchOperationBeta, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'id' is not null or undefined\n (0, common_1.assertParamExists)('updateSource', 'id', id);\n // verify required parameter 'jsonPatchOperationBeta' is not null or undefined\n (0, common_1.assertParamExists)('updateSource', 'jsonPatchOperationBeta', jsonPatchOperationBeta);\n localVarPath = \"/sources/{id}\"\n .replace(\"{\".concat(\"id\", \"}\"), encodeURIComponent(String(id)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'PATCH' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n localVarHeaderParameter['Content-Type'] = 'application/json-patch+json';\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(jsonPatchOperationBeta, localVarRequestOptions, configuration);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This API replaces the current entitlement request configuration for a source. This source-level configuration should apply for all the entitlements in the source. Access request to any entitlements in the source should follow this configuration unless a separate entitlement-level configuration is defined. - During access request, this source-level entitlement request configuration overrides the global organization-level configuration. - However, the entitlement-level configuration (if defined) overrides this source-level configuration. A token with ORG_ADMIN, SOURCE_ADMIN, or SOURCE_SUBADMIN authority is required to call this API.\n * @summary Update Source Entitlement Request Configuration\n * @param {SourceEntitlementRequestConfigBeta} sourceEntitlementRequestConfigBeta\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n updateSourceEntitlementRequestConfig: function (sourceEntitlementRequestConfigBeta, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'sourceEntitlementRequestConfigBeta' is not null or undefined\n (0, common_1.assertParamExists)('updateSourceEntitlementRequestConfig', 'sourceEntitlementRequestConfigBeta', sourceEntitlementRequestConfigBeta);\n localVarPath = \"/sources/{id}/entitlement-request-config\";\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'PUT' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n localVarHeaderParameter['Content-Type'] = 'application/json';\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(sourceEntitlementRequestConfigBeta, localVarRequestOptions, configuration);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * Use this API to selectively update an existing Schema using a JSONPatch payload. The following schema fields are immutable and cannot be updated: - id - name - created - modified To switch an account attribute to a group entitlement, you need to have the following in place: - `isEntitlement: true` - Must define a schema for the group and [add it to the source](https://developer.sailpoint.com/idn/api/beta/create-source-schema) before updating the `isGroup` flag. For example, here is the `group` account attribute referencing a schema that defines the group: ```json { \\\"name\\\": \\\"groups\\\", \\\"type\\\": \\\"STRING\\\", \\\"schema\\\": { \\\"type\\\": \\\"CONNECTOR_SCHEMA\\\", \\\"id\\\": \\\"2c9180887671ff8c01767b4671fc7d60\\\", \\\"name\\\": \\\"group\\\" }, \\\"description\\\": \\\"The groups, roles etc. that reference account group objects\\\", \\\"isMulti\\\": true, \\\"isEntitlement\\\": true, \\\"isGroup\\\": true } ```\n * @summary Update Source Schema (Partial)\n * @param {string} sourceId The Source id.\n * @param {string} schemaId The Schema id.\n * @param {Array} jsonPatchOperationBeta The JSONPatch payload used to update the schema.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n updateSourceSchema: function (sourceId, schemaId, jsonPatchOperationBeta, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'sourceId' is not null or undefined\n (0, common_1.assertParamExists)('updateSourceSchema', 'sourceId', sourceId);\n // verify required parameter 'schemaId' is not null or undefined\n (0, common_1.assertParamExists)('updateSourceSchema', 'schemaId', schemaId);\n // verify required parameter 'jsonPatchOperationBeta' is not null or undefined\n (0, common_1.assertParamExists)('updateSourceSchema', 'jsonPatchOperationBeta', jsonPatchOperationBeta);\n localVarPath = \"/sources/{sourceId}/schemas/{schemaId}\"\n .replace(\"{\".concat(\"sourceId\", \"}\"), encodeURIComponent(String(sourceId)))\n .replace(\"{\".concat(\"schemaId\", \"}\"), encodeURIComponent(String(schemaId)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'PATCH' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n localVarHeaderParameter['Content-Type'] = 'application/json-patch+json';\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(jsonPatchOperationBeta, localVarRequestOptions, configuration);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n };\n};\nexports.SourcesBetaApiAxiosParamCreator = SourcesBetaApiAxiosParamCreator;\n/**\n * SourcesBetaApi - functional programming interface\n * @export\n */\nvar SourcesBetaApiFp = function (configuration) {\n var localVarAxiosParamCreator = (0, exports.SourcesBetaApiAxiosParamCreator)(configuration);\n return {\n /**\n * This end-point deletes a specific source in IdentityNow. A token with ORG_ADMIN, SOURCE_ADMIN, or SOURCE_SUBADMIN authority is required to call this API. All of accounts on the source will be removed first, then the source will be deleted. Actual status of task execution can be retrieved via method GET `/task-status/{id}`\n * @summary Delete Source by ID\n * @param {string} id The Source ID\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n _delete: function (id, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator._delete(id, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This API generates a create policy/template based on field value transforms. This API is intended for use when setting up JDBC Provisioning type sources, but it will also work on other source types. Transforms can be used in the provisioning policy to create a new attribute that you only need during provisioning. Refer to [Transforms in Provisioning Policies](https://developer.sailpoint.com/idn/docs/transforms/guides/transforms-in-provisioning-policies) for more information. A token with ORG_ADMIN authority is required to call this API.\n * @summary Create Provisioning Policy\n * @param {string} sourceId The Source id\n * @param {ProvisioningPolicyDtoBeta} provisioningPolicyDtoBeta\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n createProvisioningPolicy: function (sourceId, provisioningPolicyDtoBeta, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.createProvisioningPolicy(sourceId, provisioningPolicyDtoBeta, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This creates a specific source with a full source JSON representation. Any passwords are submitted as plain-text and encrypted upon receipt in IdentityNow. A token with ORG_ADMIN, SOURCE_ADMIN, or SOURCE_SUBADMIN authority is required to call this API.\n * @summary Creates a source in IdentityNow.\n * @param {SourceBeta} sourceBeta\n * @param {boolean} [provisionAsCsv] If this parameter is `true`, it configures the source as a Delimited File (CSV) source. Setting this to `true` will automatically set the `type` of the source to `DelimitedFile`. You must use this query parameter to create a Delimited File source as you would in the UI. If you don\\'t set this query parameter and you attempt to set the `type` attribute directly, the request won\\'t correctly generate the source.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n createSource: function (sourceBeta, provisionAsCsv, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.createSource(sourceBeta, provisionAsCsv, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n *\n * @summary Creates a new Schema on the specified Source in IdentityNow.\n * @param {string} sourceId The Source id.\n * @param {SchemaBeta} schemaBeta\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n createSourceSchema: function (sourceId, schemaBeta, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.createSourceSchema(sourceId, schemaBeta, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * Deletes the native change detection configuration for the source specified by the given ID. A token with API, or ORG_ADMIN authority is required to call this API.\n * @summary Delete Native Change Detection Configuration\n * @param {string} id The source id\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n deleteNativeChangeDetectionConfig: function (id, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.deleteNativeChangeDetectionConfig(id, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * Deletes the provisioning policy with the specified usage on an application. A token with API, or ORG_ADMIN authority is required to call this API.\n * @summary Delete Provisioning Policy by UsageType\n * @param {string} sourceId The Source ID.\n * @param {UsageTypeBeta} usageType The type of provisioning policy usage. In IdentityNow, a source can support various provisioning operations. For example, when a joiner is added to a source, this may trigger both CREATE and UPDATE provisioning operations. Each usage type is considered a provisioning policy. A source can have any number of these provisioning policies defined. These are the common usage types: CREATE - This usage type relates to \\'Create Account Profile\\', the provisioning template for the account to be created. For example, this would be used for a joiner on a source. UPDATE - This usage type relates to \\'Update Account Profile\\', the provisioning template for the \\'Update\\' connector operations. For example, this would be used for an attribute sync on a source. ENABLE - This usage type relates to \\'Enable Account Profile\\', the provisioning template for the account to be enabled. For example, this could be used for a joiner on a source once the joiner\\'s account is created. DISABLE - This usage type relates to \\'Disable Account Profile\\', the provisioning template for the account to be disabled. For example, this could be used when a leaver is removed temporarily from a source. You can use these four usage types for all your provisioning policy needs.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n deleteProvisioningPolicy: function (sourceId, usageType, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.deleteProvisioningPolicy(sourceId, usageType, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n *\n * @summary Delete Source Schema by ID\n * @param {string} sourceId The Source ID.\n * @param {string} schemaId The Schema ID.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n deleteSourceSchema: function (sourceId, schemaId, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.deleteSourceSchema(sourceId, schemaId, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This API returns the existing native change detection configuration for a source specified by the given ID. A token with ORG_ADMIN authority is required to call this API.\n * @summary Native Change Detection Configuration\n * @param {string} id The source id\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getNativeChangeDetectionConfig: function (id, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.getNativeChangeDetectionConfig(id, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This end-point retrieves the ProvisioningPolicy with the specified usage on the specified Source in IdentityNow. A token with API, ORG_ADMIN, SOURCE_ADMIN, or SOURCE_SUBADMIN authority is required to call this API.\n * @summary Get Provisioning Policy by UsageType\n * @param {string} sourceId The Source ID.\n * @param {UsageTypeBeta} usageType The type of provisioning policy usage. In IdentityNow, a source can support various provisioning operations. For example, when a joiner is added to a source, this may trigger both CREATE and UPDATE provisioning operations. Each usage type is considered a provisioning policy. A source can have any number of these provisioning policies defined. These are the common usage types: CREATE - This usage type relates to \\'Create Account Profile\\', the provisioning template for the account to be created. For example, this would be used for a joiner on a source. UPDATE - This usage type relates to \\'Update Account Profile\\', the provisioning template for the \\'Update\\' connector operations. For example, this would be used for an attribute sync on a source. ENABLE - This usage type relates to \\'Enable Account Profile\\', the provisioning template for the account to be enabled. For example, this could be used for a joiner on a source once the joiner\\'s account is created. DISABLE - This usage type relates to \\'Disable Account Profile\\', the provisioning template for the account to be disabled. For example, this could be used when a leaver is removed temporarily from a source. You can use these four usage types for all your provisioning policy needs.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getProvisioningPolicy: function (sourceId, usageType, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.getProvisioningPolicy(sourceId, usageType, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This end-point gets a specific source in IdentityNow. A token with ORG_ADMIN, SOURCE_ADMIN, or SOURCE_SUBADMIN authority is required to call this API.\n * @summary Get Source by ID\n * @param {string} id The Source ID\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getSource: function (id, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.getSource(id, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n *\n * @summary Downloads source accounts schema template\n * @param {string} id The Source id\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getSourceAccountsSchema: function (id, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.getSourceAccountsSchema(id, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This API returns the existing attribute synchronization configuration for a source specified by the given ID. The response contains all attributes, regardless of whether they enabled or not. A token with ORG_ADMIN authority is required to call this API.\n * @summary Attribute Sync Config\n * @param {string} id The source id\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getSourceAttrSyncConfig: function (id, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.getSourceAttrSyncConfig(id, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * Looks up and returns the source config for the requested source id after populating the source config values and applying language translations. A token with ORG_ADMIN authority is required to call this API.\n * @summary Gets source config with language translations\n * @param {string} id The Source id\n * @param {'de' | 'false' | 'fi' | 'sv' | 'ru' | 'pt' | 'ko' | 'zh-TW' | 'en' | 'it' | 'fr' | 'zh-CN' | 'hu' | 'es' | 'cs' | 'ja' | 'pl' | 'da' | 'nl'} [locale] The locale to apply to the config. If no viable locale is given, it will default to \\"en\\"\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getSourceConfig: function (id, locale, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.getSourceConfig(id, locale, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This API gets the current entitlement request configuration for a source. This source-level configuration should apply for all the entitlements in the source. Access request to any entitlements in the source should follow this configuration unless a separate entitlement-level configuration is defined. - During access request, this source-level entitlement request configuration overrides the global organization-level configuration. - However, the entitlement-level configuration (if defined) overrides this source-level configuration. A token with ORG_ADMIN, SOURCE_ADMIN, or SOURCE_SUBADMIN authority is required to call this API.\n * @summary Get Source Entitlement Request Configuration\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getSourceEntitlementRequestConfig: function (axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.getSourceEntitlementRequestConfig(axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n *\n * @summary Downloads source entitlements schema template\n * @param {string} id The Source id\n * @param {string} [schemaName] Name of entitlement schema\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getSourceEntitlementsSchema: function (id, schemaName, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.getSourceEntitlementsSchema(id, schemaName, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * Get the Source Schema by ID in IdentityNow.\n * @summary Get Source Schema by ID\n * @param {string} sourceId The Source ID.\n * @param {string} schemaId The Schema ID.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getSourceSchema: function (sourceId, schemaId, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.getSourceSchema(sourceId, schemaId, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This API uploads a source schema template file to configure a source\\'s account attributes.\n * @summary Uploads source accounts schema template\n * @param {string} id The Source id\n * @param {any} [file]\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n importSourceAccountsSchema: function (id, file, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.importSourceAccountsSchema(id, file, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This uploads a supplemental source connector file (like jdbc driver jars) to a source\\'s S3 bucket. This also sends ETS and Audit events. A token with ORG_ADMIN authority is required to call this API.\n * @summary Upload connector file to source\n * @param {string} sourceId The Source id\n * @param {any} [file]\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n importSourceConnectorFile: function (sourceId, file, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.importSourceConnectorFile(sourceId, file, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This API uploads a source schema template file to configure a source\\'s entitlement attributes.\n * @summary Uploads source entitlements schema template\n * @param {string} id The Source id\n * @param {string} [schemaName] Name of entitlement schema\n * @param {any} [file]\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n importSourceEntitlementsSchema: function (id, schemaName, file, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.importSourceEntitlementsSchema(id, schemaName, file, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This end-point lists all the ProvisioningPolicies in IdentityNow. A token with API, or ORG_ADMIN authority is required to call this API.\n * @summary Lists ProvisioningPolicies\n * @param {string} sourceId The Source id\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n listProvisioningPolicies: function (sourceId, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.listProvisioningPolicies(sourceId, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n *\n * @summary Lists the Schemas that exist on the specified Source in IdentityNow.\n * @param {string} sourceId The Source id.\n * @param {string} [includeTypes] If set to \\'group\\', then the account schema is filtered and only group schemas are returned. Only a value of \\'group\\' is recognized.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n listSourceSchemas: function (sourceId, includeTypes, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.listSourceSchemas(sourceId, includeTypes, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This end-point lists all the sources in IdentityNow. A token with ORG_ADMIN, SOURCE_ADMIN, SOURCE_SUBADMIN, or ROLE_SUBADMIN authority is required to call this API.\n * @summary Lists all sources in IdentityNow.\n * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **id**: *eq, in, co, ge, gt, le, lt, ne, isnull, sw* **name**: *co, eq, in, sw, ge, gt, ne, isnull* **type**: *eq, in, co, ge, gt, ne, isnull, sw* **owner.id**: *eq, in, co, ge, gt, le, lt, ne, isnull, sw* **features**: *ca, co* **created**: *eq* **modified**: *eq* **managementWorkgroup.id**: *eq, co, ge, gt, in, le, lt, ne, isnull, sw* **description**: *eq, sw* **authoritative**: *eq, ne, isnull* **healthy**: *isnull* **status**: *eq, in, co, ge, gt, le, lt, ne, isnull, sw* **connectionType**: *eq, co, ge, gt, in, le, lt, ne, isnull, sw* **connectorName**: *eq, co, ge, gt, in, ne, isnull, sw*\n * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **type, created, modified, name, owner.name, healthy, status, id, description, owner.id, accountCorrelationConfig.id, accountCorrelationConfig.name, managerCorrelationRule.type, managerCorrelationRule.id, managerCorrelationRule.name, authoritative, managementWorkgroup.id, connectorName, connectionType**\n * @param {string} [forSubadmin] Filter the returned list of sources for the identity specified by the parameter, which is the id of an identity with the role SOURCE_SUBADMIN. By convention, the value **me** indicates the identity id of the current user. Subadmins may only view Sources which they are able to administer; all other Sources will be filtered out when this parameter is set. If the current user is a SOURCE_SUBADMIN but fails to pass a valid value for this parameter, a 403 Forbidden is returned.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n listSources: function (limit, offset, count, filters, sorters, forSubadmin, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.listSources(limit, offset, count, filters, sorters, forSubadmin, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * Retrieves a sample of data returned from account and group aggregation requests. A token with ORG_ADMIN authority is required to call this API.\n * @summary Peek source connector\\'s resource objects\n * @param {string} sourceId The ID of the Source\n * @param {ResourceObjectsRequestBeta} resourceObjectsRequestBeta\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n peekResourceObjects: function (sourceId, resourceObjectsRequestBeta, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.peekResourceObjects(sourceId, resourceObjectsRequestBeta, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This endpoint validates that the cluster being used by the source is reachable from IdentityNow. A token with ORG_ADMIN authority is required to call this API.\n * @summary Ping cluster for source connector\n * @param {string} sourceId The ID of the Source\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n pingCluster: function (sourceId, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.pingCluster(sourceId, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * Replaces the native change detection configuration for the source specified by the given ID with the configuration provided in the request body. A token with ORG_ADMIN authority is required to call this API.\n * @summary Update Native Change Detection Configuration\n * @param {string} id The source id\n * @param {NativeChangeDetectionConfigBeta} nativeChangeDetectionConfigBeta\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n putNativeChangeDetectionConfig: function (id, nativeChangeDetectionConfigBeta, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.putNativeChangeDetectionConfig(id, nativeChangeDetectionConfigBeta, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This end-point updates the provisioning policy with the specified usage on the specified source in IdentityNow. Transforms can be used in the provisioning policy to create a new attribute that you only need during provisioning. Refer to [Transforms in Provisioning Policies](https://developer.sailpoint.com/idn/docs/transforms/guides/transforms-in-provisioning-policies) for more information. A token with API, ORG_ADMIN, SOURCE_ADMIN, or SOURCE_SUBADMIN authority is required to call this API.\n * @summary Update Provisioning Policy by UsageType\n * @param {string} sourceId The Source ID.\n * @param {UsageTypeBeta} usageType The type of provisioning policy usage. In IdentityNow, a source can support various provisioning operations. For example, when a joiner is added to a source, this may trigger both CREATE and UPDATE provisioning operations. Each usage type is considered a provisioning policy. A source can have any number of these provisioning policies defined. These are the common usage types: CREATE - This usage type relates to \\'Create Account Profile\\', the provisioning template for the account to be created. For example, this would be used for a joiner on a source. UPDATE - This usage type relates to \\'Update Account Profile\\', the provisioning template for the \\'Update\\' connector operations. For example, this would be used for an attribute sync on a source. ENABLE - This usage type relates to \\'Enable Account Profile\\', the provisioning template for the account to be enabled. For example, this could be used for a joiner on a source once the joiner\\'s account is created. DISABLE - This usage type relates to \\'Disable Account Profile\\', the provisioning template for the account to be disabled. For example, this could be used when a leaver is removed temporarily from a source. You can use these four usage types for all your provisioning policy needs.\n * @param {ProvisioningPolicyDtoBeta} provisioningPolicyDtoBeta\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n putProvisioningPolicy: function (sourceId, usageType, provisioningPolicyDtoBeta, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.putProvisioningPolicy(sourceId, usageType, provisioningPolicyDtoBeta, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This API updates a source in IdentityNow, using a full object representation. In other words, the existing Source configuration is completely replaced. Some fields are immutable and cannot be changed, such as: * id * type * authoritative * connector * connectorClass * passwordPolicies Attempts to modify these fields will result in a 400 error. A token with ORG_ADMIN, SOURCE_ADMIN, or SOURCE_SUBADMIN authority is required to call this API.\n * @summary Update Source (Full)\n * @param {string} id The Source id\n * @param {SourceBeta} sourceBeta\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n putSource: function (id, sourceBeta, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.putSource(id, sourceBeta, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * Replaces the attribute synchronization configuration for the source specified by the given ID with the configuration provided in the request body. Only the \\\"enabled\\\" field of the values in the \\\"attributes\\\" array is mutable. Attempting to change other attributes or add new values to the \\\"attributes\\\" array will result in an error. A token with ORG_ADMIN authority is required to call this API.\n * @summary Update Attribute Sync Config\n * @param {string} id The source id\n * @param {AttrSyncSourceConfigBeta} attrSyncSourceConfigBeta\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n putSourceAttrSyncConfig: function (id, attrSyncSourceConfigBeta, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.putSourceAttrSyncConfig(id, attrSyncSourceConfigBeta, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This API will completely replace an existing Schema with the submitted payload. Some fields of the Schema cannot be updated. These fields are listed below. * id * name * created * modified Any attempt to modify these fields will result in an error response with a status code of 400.\n * @summary Update Source Schema (Full)\n * @param {string} sourceId The Source ID.\n * @param {string} schemaId The Schema ID.\n * @param {SchemaBeta} schemaBeta\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n putSourceSchema: function (sourceId, schemaId, schemaBeta, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.putSourceSchema(sourceId, schemaId, schemaBeta, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This end-point performs attribute synchronization for a selected source. A token with ORG_ADMIN or SOURCE_ADMIN authority is required to call this API.\n * @summary Synchronize single source attributes.\n * @param {string} id The Source id\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n syncAttributesForSource: function (id, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.syncAttributesForSource(id, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This endpoint performs a more detailed validation of the source\\'s configuration that can take longer than the lighter weight credential validation performed by the checkConnection API. A token with ORG_ADMIN authority is required to call this API.\n * @summary Test configuration for source connector\n * @param {string} sourceId The ID of the Source\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n testSourceConfiguration: function (sourceId, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.testSourceConfiguration(sourceId, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This endpoint validates that the configured credentials are valid and will properly authenticate with the source identified by the sourceId path parameter. A token with ORG_ADMIN authority is required to call this API.\n * @summary Check connection for source connector.\n * @param {string} sourceId The ID of the Source.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n testSourceConnection: function (sourceId, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.testSourceConnection(sourceId, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This end-point updates a list of provisioning policies on the specified source in IdentityNow. A token with API, or ORG_ADMIN authority is required to call this API.\n * @summary Bulk Update Provisioning Policies\n * @param {string} sourceId The Source id.\n * @param {Array} provisioningPolicyDtoBeta\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n updateProvisioningPoliciesInBulk: function (sourceId, provisioningPolicyDtoBeta, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.updateProvisioningPoliciesInBulk(sourceId, provisioningPolicyDtoBeta, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This API selectively updates an existing Provisioning Policy using a JSONPatch payload. Transforms can be used in the provisioning policy to create a new attribute that you only need during provisioning. Refer to [Transforms in Provisioning Policies](https://developer.sailpoint.com/idn/docs/transforms/guides/transforms-in-provisioning-policies) for more information. A token with API, ORG_ADMIN, SOURCE_ADMIN, or SOURCE_SUBADMIN authority is required to call this API.\n * @summary Partial update of Provisioning Policy\n * @param {string} sourceId The Source id.\n * @param {UsageTypeBeta} usageType The type of provisioning policy usage. In IdentityNow, a source can support various provisioning operations. For example, when a joiner is added to a source, this may trigger both CREATE and UPDATE provisioning operations. Each usage type is considered a provisioning policy. A source can have any number of these provisioning policies defined. These are the common usage types: CREATE - This usage type relates to \\'Create Account Profile\\', the provisioning template for the account to be created. For example, this would be used for a joiner on a source. UPDATE - This usage type relates to \\'Update Account Profile\\', the provisioning template for the \\'Update\\' connector operations. For example, this would be used for an attribute sync on a source. ENABLE - This usage type relates to \\'Enable Account Profile\\', the provisioning template for the account to be enabled. For example, this could be used for a joiner on a source once the joiner\\'s account is created. DISABLE - This usage type relates to \\'Disable Account Profile\\', the provisioning template for the account to be disabled. For example, this could be used when a leaver is removed temporarily from a source. You can use these four usage types for all your provisioning policy needs.\n * @param {Array} jsonPatchOperationBeta The JSONPatch payload used to update the schema.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n updateProvisioningPolicy: function (sourceId, usageType, jsonPatchOperationBeta, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.updateProvisioningPolicy(sourceId, usageType, jsonPatchOperationBeta, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This API partially updates a source in IdentityNow, using a list of patch operations according to the [JSON Patch](https://tools.ietf.org/html/rfc6902) standard. Some fields are immutable and cannot be changed, such as: * id * type * authoritative * created * modified * connector * connectorClass * passwordPolicies Attempts to modify these fields will result in a 400 error. A token with ORG_ADMIN, SOURCE_ADMIN, SOURCE_SUBADMIN, or API authority is required to call this API.\n * @summary Update Source (Partial)\n * @param {string} id The Source id\n * @param {Array} jsonPatchOperationBeta A list of account update operations according to the [JSON Patch](https://tools.ietf.org/html/rfc6902) standard. Any password changes are submitted as plain-text and encrypted upon receipt in IdentityNow.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n updateSource: function (id, jsonPatchOperationBeta, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.updateSource(id, jsonPatchOperationBeta, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This API replaces the current entitlement request configuration for a source. This source-level configuration should apply for all the entitlements in the source. Access request to any entitlements in the source should follow this configuration unless a separate entitlement-level configuration is defined. - During access request, this source-level entitlement request configuration overrides the global organization-level configuration. - However, the entitlement-level configuration (if defined) overrides this source-level configuration. A token with ORG_ADMIN, SOURCE_ADMIN, or SOURCE_SUBADMIN authority is required to call this API.\n * @summary Update Source Entitlement Request Configuration\n * @param {SourceEntitlementRequestConfigBeta} sourceEntitlementRequestConfigBeta\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n updateSourceEntitlementRequestConfig: function (sourceEntitlementRequestConfigBeta, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.updateSourceEntitlementRequestConfig(sourceEntitlementRequestConfigBeta, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * Use this API to selectively update an existing Schema using a JSONPatch payload. The following schema fields are immutable and cannot be updated: - id - name - created - modified To switch an account attribute to a group entitlement, you need to have the following in place: - `isEntitlement: true` - Must define a schema for the group and [add it to the source](https://developer.sailpoint.com/idn/api/beta/create-source-schema) before updating the `isGroup` flag. For example, here is the `group` account attribute referencing a schema that defines the group: ```json { \\\"name\\\": \\\"groups\\\", \\\"type\\\": \\\"STRING\\\", \\\"schema\\\": { \\\"type\\\": \\\"CONNECTOR_SCHEMA\\\", \\\"id\\\": \\\"2c9180887671ff8c01767b4671fc7d60\\\", \\\"name\\\": \\\"group\\\" }, \\\"description\\\": \\\"The groups, roles etc. that reference account group objects\\\", \\\"isMulti\\\": true, \\\"isEntitlement\\\": true, \\\"isGroup\\\": true } ```\n * @summary Update Source Schema (Partial)\n * @param {string} sourceId The Source id.\n * @param {string} schemaId The Schema id.\n * @param {Array} jsonPatchOperationBeta The JSONPatch payload used to update the schema.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n updateSourceSchema: function (sourceId, schemaId, jsonPatchOperationBeta, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.updateSourceSchema(sourceId, schemaId, jsonPatchOperationBeta, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n };\n};\nexports.SourcesBetaApiFp = SourcesBetaApiFp;\n/**\n * SourcesBetaApi - factory interface\n * @export\n */\nvar SourcesBetaApiFactory = function (configuration, basePath, axios) {\n var localVarFp = (0, exports.SourcesBetaApiFp)(configuration);\n return {\n /**\n * This end-point deletes a specific source in IdentityNow. A token with ORG_ADMIN, SOURCE_ADMIN, or SOURCE_SUBADMIN authority is required to call this API. All of accounts on the source will be removed first, then the source will be deleted. Actual status of task execution can be retrieved via method GET `/task-status/{id}`\n * @summary Delete Source by ID\n * @param {string} id The Source ID\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n _delete: function (id, axiosOptions) {\n return localVarFp._delete(id, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This API generates a create policy/template based on field value transforms. This API is intended for use when setting up JDBC Provisioning type sources, but it will also work on other source types. Transforms can be used in the provisioning policy to create a new attribute that you only need during provisioning. Refer to [Transforms in Provisioning Policies](https://developer.sailpoint.com/idn/docs/transforms/guides/transforms-in-provisioning-policies) for more information. A token with ORG_ADMIN authority is required to call this API.\n * @summary Create Provisioning Policy\n * @param {string} sourceId The Source id\n * @param {ProvisioningPolicyDtoBeta} provisioningPolicyDtoBeta\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n createProvisioningPolicy: function (sourceId, provisioningPolicyDtoBeta, axiosOptions) {\n return localVarFp.createProvisioningPolicy(sourceId, provisioningPolicyDtoBeta, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This creates a specific source with a full source JSON representation. Any passwords are submitted as plain-text and encrypted upon receipt in IdentityNow. A token with ORG_ADMIN, SOURCE_ADMIN, or SOURCE_SUBADMIN authority is required to call this API.\n * @summary Creates a source in IdentityNow.\n * @param {SourceBeta} sourceBeta\n * @param {boolean} [provisionAsCsv] If this parameter is `true`, it configures the source as a Delimited File (CSV) source. Setting this to `true` will automatically set the `type` of the source to `DelimitedFile`. You must use this query parameter to create a Delimited File source as you would in the UI. If you don\\'t set this query parameter and you attempt to set the `type` attribute directly, the request won\\'t correctly generate the source.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n createSource: function (sourceBeta, provisionAsCsv, axiosOptions) {\n return localVarFp.createSource(sourceBeta, provisionAsCsv, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n *\n * @summary Creates a new Schema on the specified Source in IdentityNow.\n * @param {string} sourceId The Source id.\n * @param {SchemaBeta} schemaBeta\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n createSourceSchema: function (sourceId, schemaBeta, axiosOptions) {\n return localVarFp.createSourceSchema(sourceId, schemaBeta, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * Deletes the native change detection configuration for the source specified by the given ID. A token with API, or ORG_ADMIN authority is required to call this API.\n * @summary Delete Native Change Detection Configuration\n * @param {string} id The source id\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n deleteNativeChangeDetectionConfig: function (id, axiosOptions) {\n return localVarFp.deleteNativeChangeDetectionConfig(id, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * Deletes the provisioning policy with the specified usage on an application. A token with API, or ORG_ADMIN authority is required to call this API.\n * @summary Delete Provisioning Policy by UsageType\n * @param {string} sourceId The Source ID.\n * @param {UsageTypeBeta} usageType The type of provisioning policy usage. In IdentityNow, a source can support various provisioning operations. For example, when a joiner is added to a source, this may trigger both CREATE and UPDATE provisioning operations. Each usage type is considered a provisioning policy. A source can have any number of these provisioning policies defined. These are the common usage types: CREATE - This usage type relates to \\'Create Account Profile\\', the provisioning template for the account to be created. For example, this would be used for a joiner on a source. UPDATE - This usage type relates to \\'Update Account Profile\\', the provisioning template for the \\'Update\\' connector operations. For example, this would be used for an attribute sync on a source. ENABLE - This usage type relates to \\'Enable Account Profile\\', the provisioning template for the account to be enabled. For example, this could be used for a joiner on a source once the joiner\\'s account is created. DISABLE - This usage type relates to \\'Disable Account Profile\\', the provisioning template for the account to be disabled. For example, this could be used when a leaver is removed temporarily from a source. You can use these four usage types for all your provisioning policy needs.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n deleteProvisioningPolicy: function (sourceId, usageType, axiosOptions) {\n return localVarFp.deleteProvisioningPolicy(sourceId, usageType, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n *\n * @summary Delete Source Schema by ID\n * @param {string} sourceId The Source ID.\n * @param {string} schemaId The Schema ID.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n deleteSourceSchema: function (sourceId, schemaId, axiosOptions) {\n return localVarFp.deleteSourceSchema(sourceId, schemaId, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This API returns the existing native change detection configuration for a source specified by the given ID. A token with ORG_ADMIN authority is required to call this API.\n * @summary Native Change Detection Configuration\n * @param {string} id The source id\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getNativeChangeDetectionConfig: function (id, axiosOptions) {\n return localVarFp.getNativeChangeDetectionConfig(id, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This end-point retrieves the ProvisioningPolicy with the specified usage on the specified Source in IdentityNow. A token with API, ORG_ADMIN, SOURCE_ADMIN, or SOURCE_SUBADMIN authority is required to call this API.\n * @summary Get Provisioning Policy by UsageType\n * @param {string} sourceId The Source ID.\n * @param {UsageTypeBeta} usageType The type of provisioning policy usage. In IdentityNow, a source can support various provisioning operations. For example, when a joiner is added to a source, this may trigger both CREATE and UPDATE provisioning operations. Each usage type is considered a provisioning policy. A source can have any number of these provisioning policies defined. These are the common usage types: CREATE - This usage type relates to \\'Create Account Profile\\', the provisioning template for the account to be created. For example, this would be used for a joiner on a source. UPDATE - This usage type relates to \\'Update Account Profile\\', the provisioning template for the \\'Update\\' connector operations. For example, this would be used for an attribute sync on a source. ENABLE - This usage type relates to \\'Enable Account Profile\\', the provisioning template for the account to be enabled. For example, this could be used for a joiner on a source once the joiner\\'s account is created. DISABLE - This usage type relates to \\'Disable Account Profile\\', the provisioning template for the account to be disabled. For example, this could be used when a leaver is removed temporarily from a source. You can use these four usage types for all your provisioning policy needs.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getProvisioningPolicy: function (sourceId, usageType, axiosOptions) {\n return localVarFp.getProvisioningPolicy(sourceId, usageType, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This end-point gets a specific source in IdentityNow. A token with ORG_ADMIN, SOURCE_ADMIN, or SOURCE_SUBADMIN authority is required to call this API.\n * @summary Get Source by ID\n * @param {string} id The Source ID\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getSource: function (id, axiosOptions) {\n return localVarFp.getSource(id, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n *\n * @summary Downloads source accounts schema template\n * @param {string} id The Source id\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getSourceAccountsSchema: function (id, axiosOptions) {\n return localVarFp.getSourceAccountsSchema(id, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This API returns the existing attribute synchronization configuration for a source specified by the given ID. The response contains all attributes, regardless of whether they enabled or not. A token with ORG_ADMIN authority is required to call this API.\n * @summary Attribute Sync Config\n * @param {string} id The source id\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getSourceAttrSyncConfig: function (id, axiosOptions) {\n return localVarFp.getSourceAttrSyncConfig(id, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * Looks up and returns the source config for the requested source id after populating the source config values and applying language translations. A token with ORG_ADMIN authority is required to call this API.\n * @summary Gets source config with language translations\n * @param {string} id The Source id\n * @param {'de' | 'false' | 'fi' | 'sv' | 'ru' | 'pt' | 'ko' | 'zh-TW' | 'en' | 'it' | 'fr' | 'zh-CN' | 'hu' | 'es' | 'cs' | 'ja' | 'pl' | 'da' | 'nl'} [locale] The locale to apply to the config. If no viable locale is given, it will default to \\"en\\"\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getSourceConfig: function (id, locale, axiosOptions) {\n return localVarFp.getSourceConfig(id, locale, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This API gets the current entitlement request configuration for a source. This source-level configuration should apply for all the entitlements in the source. Access request to any entitlements in the source should follow this configuration unless a separate entitlement-level configuration is defined. - During access request, this source-level entitlement request configuration overrides the global organization-level configuration. - However, the entitlement-level configuration (if defined) overrides this source-level configuration. A token with ORG_ADMIN, SOURCE_ADMIN, or SOURCE_SUBADMIN authority is required to call this API.\n * @summary Get Source Entitlement Request Configuration\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getSourceEntitlementRequestConfig: function (axiosOptions) {\n return localVarFp.getSourceEntitlementRequestConfig(axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n *\n * @summary Downloads source entitlements schema template\n * @param {string} id The Source id\n * @param {string} [schemaName] Name of entitlement schema\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getSourceEntitlementsSchema: function (id, schemaName, axiosOptions) {\n return localVarFp.getSourceEntitlementsSchema(id, schemaName, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * Get the Source Schema by ID in IdentityNow.\n * @summary Get Source Schema by ID\n * @param {string} sourceId The Source ID.\n * @param {string} schemaId The Schema ID.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getSourceSchema: function (sourceId, schemaId, axiosOptions) {\n return localVarFp.getSourceSchema(sourceId, schemaId, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This API uploads a source schema template file to configure a source\\'s account attributes.\n * @summary Uploads source accounts schema template\n * @param {string} id The Source id\n * @param {any} [file]\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n importSourceAccountsSchema: function (id, file, axiosOptions) {\n return localVarFp.importSourceAccountsSchema(id, file, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This uploads a supplemental source connector file (like jdbc driver jars) to a source\\'s S3 bucket. This also sends ETS and Audit events. A token with ORG_ADMIN authority is required to call this API.\n * @summary Upload connector file to source\n * @param {string} sourceId The Source id\n * @param {any} [file]\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n importSourceConnectorFile: function (sourceId, file, axiosOptions) {\n return localVarFp.importSourceConnectorFile(sourceId, file, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This API uploads a source schema template file to configure a source\\'s entitlement attributes.\n * @summary Uploads source entitlements schema template\n * @param {string} id The Source id\n * @param {string} [schemaName] Name of entitlement schema\n * @param {any} [file]\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n importSourceEntitlementsSchema: function (id, schemaName, file, axiosOptions) {\n return localVarFp.importSourceEntitlementsSchema(id, schemaName, file, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This end-point lists all the ProvisioningPolicies in IdentityNow. A token with API, or ORG_ADMIN authority is required to call this API.\n * @summary Lists ProvisioningPolicies\n * @param {string} sourceId The Source id\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n listProvisioningPolicies: function (sourceId, axiosOptions) {\n return localVarFp.listProvisioningPolicies(sourceId, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n *\n * @summary Lists the Schemas that exist on the specified Source in IdentityNow.\n * @param {string} sourceId The Source id.\n * @param {string} [includeTypes] If set to \\'group\\', then the account schema is filtered and only group schemas are returned. Only a value of \\'group\\' is recognized.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n listSourceSchemas: function (sourceId, includeTypes, axiosOptions) {\n return localVarFp.listSourceSchemas(sourceId, includeTypes, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This end-point lists all the sources in IdentityNow. A token with ORG_ADMIN, SOURCE_ADMIN, SOURCE_SUBADMIN, or ROLE_SUBADMIN authority is required to call this API.\n * @summary Lists all sources in IdentityNow.\n * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **id**: *eq, in, co, ge, gt, le, lt, ne, isnull, sw* **name**: *co, eq, in, sw, ge, gt, ne, isnull* **type**: *eq, in, co, ge, gt, ne, isnull, sw* **owner.id**: *eq, in, co, ge, gt, le, lt, ne, isnull, sw* **features**: *ca, co* **created**: *eq* **modified**: *eq* **managementWorkgroup.id**: *eq, co, ge, gt, in, le, lt, ne, isnull, sw* **description**: *eq, sw* **authoritative**: *eq, ne, isnull* **healthy**: *isnull* **status**: *eq, in, co, ge, gt, le, lt, ne, isnull, sw* **connectionType**: *eq, co, ge, gt, in, le, lt, ne, isnull, sw* **connectorName**: *eq, co, ge, gt, in, ne, isnull, sw*\n * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **type, created, modified, name, owner.name, healthy, status, id, description, owner.id, accountCorrelationConfig.id, accountCorrelationConfig.name, managerCorrelationRule.type, managerCorrelationRule.id, managerCorrelationRule.name, authoritative, managementWorkgroup.id, connectorName, connectionType**\n * @param {string} [forSubadmin] Filter the returned list of sources for the identity specified by the parameter, which is the id of an identity with the role SOURCE_SUBADMIN. By convention, the value **me** indicates the identity id of the current user. Subadmins may only view Sources which they are able to administer; all other Sources will be filtered out when this parameter is set. If the current user is a SOURCE_SUBADMIN but fails to pass a valid value for this parameter, a 403 Forbidden is returned.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n listSources: function (limit, offset, count, filters, sorters, forSubadmin, axiosOptions) {\n return localVarFp.listSources(limit, offset, count, filters, sorters, forSubadmin, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * Retrieves a sample of data returned from account and group aggregation requests. A token with ORG_ADMIN authority is required to call this API.\n * @summary Peek source connector\\'s resource objects\n * @param {string} sourceId The ID of the Source\n * @param {ResourceObjectsRequestBeta} resourceObjectsRequestBeta\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n peekResourceObjects: function (sourceId, resourceObjectsRequestBeta, axiosOptions) {\n return localVarFp.peekResourceObjects(sourceId, resourceObjectsRequestBeta, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This endpoint validates that the cluster being used by the source is reachable from IdentityNow. A token with ORG_ADMIN authority is required to call this API.\n * @summary Ping cluster for source connector\n * @param {string} sourceId The ID of the Source\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n pingCluster: function (sourceId, axiosOptions) {\n return localVarFp.pingCluster(sourceId, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * Replaces the native change detection configuration for the source specified by the given ID with the configuration provided in the request body. A token with ORG_ADMIN authority is required to call this API.\n * @summary Update Native Change Detection Configuration\n * @param {string} id The source id\n * @param {NativeChangeDetectionConfigBeta} nativeChangeDetectionConfigBeta\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n putNativeChangeDetectionConfig: function (id, nativeChangeDetectionConfigBeta, axiosOptions) {\n return localVarFp.putNativeChangeDetectionConfig(id, nativeChangeDetectionConfigBeta, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This end-point updates the provisioning policy with the specified usage on the specified source in IdentityNow. Transforms can be used in the provisioning policy to create a new attribute that you only need during provisioning. Refer to [Transforms in Provisioning Policies](https://developer.sailpoint.com/idn/docs/transforms/guides/transforms-in-provisioning-policies) for more information. A token with API, ORG_ADMIN, SOURCE_ADMIN, or SOURCE_SUBADMIN authority is required to call this API.\n * @summary Update Provisioning Policy by UsageType\n * @param {string} sourceId The Source ID.\n * @param {UsageTypeBeta} usageType The type of provisioning policy usage. In IdentityNow, a source can support various provisioning operations. For example, when a joiner is added to a source, this may trigger both CREATE and UPDATE provisioning operations. Each usage type is considered a provisioning policy. A source can have any number of these provisioning policies defined. These are the common usage types: CREATE - This usage type relates to \\'Create Account Profile\\', the provisioning template for the account to be created. For example, this would be used for a joiner on a source. UPDATE - This usage type relates to \\'Update Account Profile\\', the provisioning template for the \\'Update\\' connector operations. For example, this would be used for an attribute sync on a source. ENABLE - This usage type relates to \\'Enable Account Profile\\', the provisioning template for the account to be enabled. For example, this could be used for a joiner on a source once the joiner\\'s account is created. DISABLE - This usage type relates to \\'Disable Account Profile\\', the provisioning template for the account to be disabled. For example, this could be used when a leaver is removed temporarily from a source. You can use these four usage types for all your provisioning policy needs.\n * @param {ProvisioningPolicyDtoBeta} provisioningPolicyDtoBeta\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n putProvisioningPolicy: function (sourceId, usageType, provisioningPolicyDtoBeta, axiosOptions) {\n return localVarFp.putProvisioningPolicy(sourceId, usageType, provisioningPolicyDtoBeta, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This API updates a source in IdentityNow, using a full object representation. In other words, the existing Source configuration is completely replaced. Some fields are immutable and cannot be changed, such as: * id * type * authoritative * connector * connectorClass * passwordPolicies Attempts to modify these fields will result in a 400 error. A token with ORG_ADMIN, SOURCE_ADMIN, or SOURCE_SUBADMIN authority is required to call this API.\n * @summary Update Source (Full)\n * @param {string} id The Source id\n * @param {SourceBeta} sourceBeta\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n putSource: function (id, sourceBeta, axiosOptions) {\n return localVarFp.putSource(id, sourceBeta, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * Replaces the attribute synchronization configuration for the source specified by the given ID with the configuration provided in the request body. Only the \\\"enabled\\\" field of the values in the \\\"attributes\\\" array is mutable. Attempting to change other attributes or add new values to the \\\"attributes\\\" array will result in an error. A token with ORG_ADMIN authority is required to call this API.\n * @summary Update Attribute Sync Config\n * @param {string} id The source id\n * @param {AttrSyncSourceConfigBeta} attrSyncSourceConfigBeta\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n putSourceAttrSyncConfig: function (id, attrSyncSourceConfigBeta, axiosOptions) {\n return localVarFp.putSourceAttrSyncConfig(id, attrSyncSourceConfigBeta, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This API will completely replace an existing Schema with the submitted payload. Some fields of the Schema cannot be updated. These fields are listed below. * id * name * created * modified Any attempt to modify these fields will result in an error response with a status code of 400.\n * @summary Update Source Schema (Full)\n * @param {string} sourceId The Source ID.\n * @param {string} schemaId The Schema ID.\n * @param {SchemaBeta} schemaBeta\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n putSourceSchema: function (sourceId, schemaId, schemaBeta, axiosOptions) {\n return localVarFp.putSourceSchema(sourceId, schemaId, schemaBeta, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This end-point performs attribute synchronization for a selected source. A token with ORG_ADMIN or SOURCE_ADMIN authority is required to call this API.\n * @summary Synchronize single source attributes.\n * @param {string} id The Source id\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n syncAttributesForSource: function (id, axiosOptions) {\n return localVarFp.syncAttributesForSource(id, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This endpoint performs a more detailed validation of the source\\'s configuration that can take longer than the lighter weight credential validation performed by the checkConnection API. A token with ORG_ADMIN authority is required to call this API.\n * @summary Test configuration for source connector\n * @param {string} sourceId The ID of the Source\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n testSourceConfiguration: function (sourceId, axiosOptions) {\n return localVarFp.testSourceConfiguration(sourceId, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This endpoint validates that the configured credentials are valid and will properly authenticate with the source identified by the sourceId path parameter. A token with ORG_ADMIN authority is required to call this API.\n * @summary Check connection for source connector.\n * @param {string} sourceId The ID of the Source.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n testSourceConnection: function (sourceId, axiosOptions) {\n return localVarFp.testSourceConnection(sourceId, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This end-point updates a list of provisioning policies on the specified source in IdentityNow. A token with API, or ORG_ADMIN authority is required to call this API.\n * @summary Bulk Update Provisioning Policies\n * @param {string} sourceId The Source id.\n * @param {Array} provisioningPolicyDtoBeta\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n updateProvisioningPoliciesInBulk: function (sourceId, provisioningPolicyDtoBeta, axiosOptions) {\n return localVarFp.updateProvisioningPoliciesInBulk(sourceId, provisioningPolicyDtoBeta, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This API selectively updates an existing Provisioning Policy using a JSONPatch payload. Transforms can be used in the provisioning policy to create a new attribute that you only need during provisioning. Refer to [Transforms in Provisioning Policies](https://developer.sailpoint.com/idn/docs/transforms/guides/transforms-in-provisioning-policies) for more information. A token with API, ORG_ADMIN, SOURCE_ADMIN, or SOURCE_SUBADMIN authority is required to call this API.\n * @summary Partial update of Provisioning Policy\n * @param {string} sourceId The Source id.\n * @param {UsageTypeBeta} usageType The type of provisioning policy usage. In IdentityNow, a source can support various provisioning operations. For example, when a joiner is added to a source, this may trigger both CREATE and UPDATE provisioning operations. Each usage type is considered a provisioning policy. A source can have any number of these provisioning policies defined. These are the common usage types: CREATE - This usage type relates to \\'Create Account Profile\\', the provisioning template for the account to be created. For example, this would be used for a joiner on a source. UPDATE - This usage type relates to \\'Update Account Profile\\', the provisioning template for the \\'Update\\' connector operations. For example, this would be used for an attribute sync on a source. ENABLE - This usage type relates to \\'Enable Account Profile\\', the provisioning template for the account to be enabled. For example, this could be used for a joiner on a source once the joiner\\'s account is created. DISABLE - This usage type relates to \\'Disable Account Profile\\', the provisioning template for the account to be disabled. For example, this could be used when a leaver is removed temporarily from a source. You can use these four usage types for all your provisioning policy needs.\n * @param {Array} jsonPatchOperationBeta The JSONPatch payload used to update the schema.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n updateProvisioningPolicy: function (sourceId, usageType, jsonPatchOperationBeta, axiosOptions) {\n return localVarFp.updateProvisioningPolicy(sourceId, usageType, jsonPatchOperationBeta, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This API partially updates a source in IdentityNow, using a list of patch operations according to the [JSON Patch](https://tools.ietf.org/html/rfc6902) standard. Some fields are immutable and cannot be changed, such as: * id * type * authoritative * created * modified * connector * connectorClass * passwordPolicies Attempts to modify these fields will result in a 400 error. A token with ORG_ADMIN, SOURCE_ADMIN, SOURCE_SUBADMIN, or API authority is required to call this API.\n * @summary Update Source (Partial)\n * @param {string} id The Source id\n * @param {Array} jsonPatchOperationBeta A list of account update operations according to the [JSON Patch](https://tools.ietf.org/html/rfc6902) standard. Any password changes are submitted as plain-text and encrypted upon receipt in IdentityNow.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n updateSource: function (id, jsonPatchOperationBeta, axiosOptions) {\n return localVarFp.updateSource(id, jsonPatchOperationBeta, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This API replaces the current entitlement request configuration for a source. This source-level configuration should apply for all the entitlements in the source. Access request to any entitlements in the source should follow this configuration unless a separate entitlement-level configuration is defined. - During access request, this source-level entitlement request configuration overrides the global organization-level configuration. - However, the entitlement-level configuration (if defined) overrides this source-level configuration. A token with ORG_ADMIN, SOURCE_ADMIN, or SOURCE_SUBADMIN authority is required to call this API.\n * @summary Update Source Entitlement Request Configuration\n * @param {SourceEntitlementRequestConfigBeta} sourceEntitlementRequestConfigBeta\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n updateSourceEntitlementRequestConfig: function (sourceEntitlementRequestConfigBeta, axiosOptions) {\n return localVarFp.updateSourceEntitlementRequestConfig(sourceEntitlementRequestConfigBeta, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * Use this API to selectively update an existing Schema using a JSONPatch payload. The following schema fields are immutable and cannot be updated: - id - name - created - modified To switch an account attribute to a group entitlement, you need to have the following in place: - `isEntitlement: true` - Must define a schema for the group and [add it to the source](https://developer.sailpoint.com/idn/api/beta/create-source-schema) before updating the `isGroup` flag. For example, here is the `group` account attribute referencing a schema that defines the group: ```json { \\\"name\\\": \\\"groups\\\", \\\"type\\\": \\\"STRING\\\", \\\"schema\\\": { \\\"type\\\": \\\"CONNECTOR_SCHEMA\\\", \\\"id\\\": \\\"2c9180887671ff8c01767b4671fc7d60\\\", \\\"name\\\": \\\"group\\\" }, \\\"description\\\": \\\"The groups, roles etc. that reference account group objects\\\", \\\"isMulti\\\": true, \\\"isEntitlement\\\": true, \\\"isGroup\\\": true } ```\n * @summary Update Source Schema (Partial)\n * @param {string} sourceId The Source id.\n * @param {string} schemaId The Schema id.\n * @param {Array} jsonPatchOperationBeta The JSONPatch payload used to update the schema.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n updateSourceSchema: function (sourceId, schemaId, jsonPatchOperationBeta, axiosOptions) {\n return localVarFp.updateSourceSchema(sourceId, schemaId, jsonPatchOperationBeta, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n };\n};\nexports.SourcesBetaApiFactory = SourcesBetaApiFactory;\n/**\n * SourcesBetaApi - object-oriented interface\n * @export\n * @class SourcesBetaApi\n * @extends {BaseAPI}\n */\nvar SourcesBetaApi = /** @class */ (function (_super) {\n __extends(SourcesBetaApi, _super);\n function SourcesBetaApi() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n * This end-point deletes a specific source in IdentityNow. A token with ORG_ADMIN, SOURCE_ADMIN, or SOURCE_SUBADMIN authority is required to call this API. All of accounts on the source will be removed first, then the source will be deleted. Actual status of task execution can be retrieved via method GET `/task-status/{id}`\n * @summary Delete Source by ID\n * @param {SourcesBetaApiDeleteRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof SourcesBetaApi\n */\n SourcesBetaApi.prototype._delete = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.SourcesBetaApiFp)(this.configuration)._delete(requestParameters.id, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This API generates a create policy/template based on field value transforms. This API is intended for use when setting up JDBC Provisioning type sources, but it will also work on other source types. Transforms can be used in the provisioning policy to create a new attribute that you only need during provisioning. Refer to [Transforms in Provisioning Policies](https://developer.sailpoint.com/idn/docs/transforms/guides/transforms-in-provisioning-policies) for more information. A token with ORG_ADMIN authority is required to call this API.\n * @summary Create Provisioning Policy\n * @param {SourcesBetaApiCreateProvisioningPolicyRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof SourcesBetaApi\n */\n SourcesBetaApi.prototype.createProvisioningPolicy = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.SourcesBetaApiFp)(this.configuration).createProvisioningPolicy(requestParameters.sourceId, requestParameters.provisioningPolicyDtoBeta, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This creates a specific source with a full source JSON representation. Any passwords are submitted as plain-text and encrypted upon receipt in IdentityNow. A token with ORG_ADMIN, SOURCE_ADMIN, or SOURCE_SUBADMIN authority is required to call this API.\n * @summary Creates a source in IdentityNow.\n * @param {SourcesBetaApiCreateSourceRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof SourcesBetaApi\n */\n SourcesBetaApi.prototype.createSource = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.SourcesBetaApiFp)(this.configuration).createSource(requestParameters.sourceBeta, requestParameters.provisionAsCsv, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n *\n * @summary Creates a new Schema on the specified Source in IdentityNow.\n * @param {SourcesBetaApiCreateSourceSchemaRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof SourcesBetaApi\n */\n SourcesBetaApi.prototype.createSourceSchema = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.SourcesBetaApiFp)(this.configuration).createSourceSchema(requestParameters.sourceId, requestParameters.schemaBeta, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * Deletes the native change detection configuration for the source specified by the given ID. A token with API, or ORG_ADMIN authority is required to call this API.\n * @summary Delete Native Change Detection Configuration\n * @param {SourcesBetaApiDeleteNativeChangeDetectionConfigRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof SourcesBetaApi\n */\n SourcesBetaApi.prototype.deleteNativeChangeDetectionConfig = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.SourcesBetaApiFp)(this.configuration).deleteNativeChangeDetectionConfig(requestParameters.id, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * Deletes the provisioning policy with the specified usage on an application. A token with API, or ORG_ADMIN authority is required to call this API.\n * @summary Delete Provisioning Policy by UsageType\n * @param {SourcesBetaApiDeleteProvisioningPolicyRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof SourcesBetaApi\n */\n SourcesBetaApi.prototype.deleteProvisioningPolicy = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.SourcesBetaApiFp)(this.configuration).deleteProvisioningPolicy(requestParameters.sourceId, requestParameters.usageType, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n *\n * @summary Delete Source Schema by ID\n * @param {SourcesBetaApiDeleteSourceSchemaRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof SourcesBetaApi\n */\n SourcesBetaApi.prototype.deleteSourceSchema = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.SourcesBetaApiFp)(this.configuration).deleteSourceSchema(requestParameters.sourceId, requestParameters.schemaId, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This API returns the existing native change detection configuration for a source specified by the given ID. A token with ORG_ADMIN authority is required to call this API.\n * @summary Native Change Detection Configuration\n * @param {SourcesBetaApiGetNativeChangeDetectionConfigRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof SourcesBetaApi\n */\n SourcesBetaApi.prototype.getNativeChangeDetectionConfig = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.SourcesBetaApiFp)(this.configuration).getNativeChangeDetectionConfig(requestParameters.id, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This end-point retrieves the ProvisioningPolicy with the specified usage on the specified Source in IdentityNow. A token with API, ORG_ADMIN, SOURCE_ADMIN, or SOURCE_SUBADMIN authority is required to call this API.\n * @summary Get Provisioning Policy by UsageType\n * @param {SourcesBetaApiGetProvisioningPolicyRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof SourcesBetaApi\n */\n SourcesBetaApi.prototype.getProvisioningPolicy = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.SourcesBetaApiFp)(this.configuration).getProvisioningPolicy(requestParameters.sourceId, requestParameters.usageType, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This end-point gets a specific source in IdentityNow. A token with ORG_ADMIN, SOURCE_ADMIN, or SOURCE_SUBADMIN authority is required to call this API.\n * @summary Get Source by ID\n * @param {SourcesBetaApiGetSourceRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof SourcesBetaApi\n */\n SourcesBetaApi.prototype.getSource = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.SourcesBetaApiFp)(this.configuration).getSource(requestParameters.id, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n *\n * @summary Downloads source accounts schema template\n * @param {SourcesBetaApiGetSourceAccountsSchemaRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof SourcesBetaApi\n */\n SourcesBetaApi.prototype.getSourceAccountsSchema = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.SourcesBetaApiFp)(this.configuration).getSourceAccountsSchema(requestParameters.id, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This API returns the existing attribute synchronization configuration for a source specified by the given ID. The response contains all attributes, regardless of whether they enabled or not. A token with ORG_ADMIN authority is required to call this API.\n * @summary Attribute Sync Config\n * @param {SourcesBetaApiGetSourceAttrSyncConfigRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof SourcesBetaApi\n */\n SourcesBetaApi.prototype.getSourceAttrSyncConfig = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.SourcesBetaApiFp)(this.configuration).getSourceAttrSyncConfig(requestParameters.id, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * Looks up and returns the source config for the requested source id after populating the source config values and applying language translations. A token with ORG_ADMIN authority is required to call this API.\n * @summary Gets source config with language translations\n * @param {SourcesBetaApiGetSourceConfigRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof SourcesBetaApi\n */\n SourcesBetaApi.prototype.getSourceConfig = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.SourcesBetaApiFp)(this.configuration).getSourceConfig(requestParameters.id, requestParameters.locale, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This API gets the current entitlement request configuration for a source. This source-level configuration should apply for all the entitlements in the source. Access request to any entitlements in the source should follow this configuration unless a separate entitlement-level configuration is defined. - During access request, this source-level entitlement request configuration overrides the global organization-level configuration. - However, the entitlement-level configuration (if defined) overrides this source-level configuration. A token with ORG_ADMIN, SOURCE_ADMIN, or SOURCE_SUBADMIN authority is required to call this API.\n * @summary Get Source Entitlement Request Configuration\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof SourcesBetaApi\n */\n SourcesBetaApi.prototype.getSourceEntitlementRequestConfig = function (axiosOptions) {\n var _this = this;\n return (0, exports.SourcesBetaApiFp)(this.configuration).getSourceEntitlementRequestConfig(axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n *\n * @summary Downloads source entitlements schema template\n * @param {SourcesBetaApiGetSourceEntitlementsSchemaRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof SourcesBetaApi\n */\n SourcesBetaApi.prototype.getSourceEntitlementsSchema = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.SourcesBetaApiFp)(this.configuration).getSourceEntitlementsSchema(requestParameters.id, requestParameters.schemaName, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * Get the Source Schema by ID in IdentityNow.\n * @summary Get Source Schema by ID\n * @param {SourcesBetaApiGetSourceSchemaRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof SourcesBetaApi\n */\n SourcesBetaApi.prototype.getSourceSchema = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.SourcesBetaApiFp)(this.configuration).getSourceSchema(requestParameters.sourceId, requestParameters.schemaId, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This API uploads a source schema template file to configure a source\\'s account attributes.\n * @summary Uploads source accounts schema template\n * @param {SourcesBetaApiImportSourceAccountsSchemaRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof SourcesBetaApi\n */\n SourcesBetaApi.prototype.importSourceAccountsSchema = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.SourcesBetaApiFp)(this.configuration).importSourceAccountsSchema(requestParameters.id, requestParameters.file, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This uploads a supplemental source connector file (like jdbc driver jars) to a source\\'s S3 bucket. This also sends ETS and Audit events. A token with ORG_ADMIN authority is required to call this API.\n * @summary Upload connector file to source\n * @param {SourcesBetaApiImportSourceConnectorFileRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof SourcesBetaApi\n */\n SourcesBetaApi.prototype.importSourceConnectorFile = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.SourcesBetaApiFp)(this.configuration).importSourceConnectorFile(requestParameters.sourceId, requestParameters.file, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This API uploads a source schema template file to configure a source\\'s entitlement attributes.\n * @summary Uploads source entitlements schema template\n * @param {SourcesBetaApiImportSourceEntitlementsSchemaRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof SourcesBetaApi\n */\n SourcesBetaApi.prototype.importSourceEntitlementsSchema = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.SourcesBetaApiFp)(this.configuration).importSourceEntitlementsSchema(requestParameters.id, requestParameters.schemaName, requestParameters.file, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This end-point lists all the ProvisioningPolicies in IdentityNow. A token with API, or ORG_ADMIN authority is required to call this API.\n * @summary Lists ProvisioningPolicies\n * @param {SourcesBetaApiListProvisioningPoliciesRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof SourcesBetaApi\n */\n SourcesBetaApi.prototype.listProvisioningPolicies = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.SourcesBetaApiFp)(this.configuration).listProvisioningPolicies(requestParameters.sourceId, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n *\n * @summary Lists the Schemas that exist on the specified Source in IdentityNow.\n * @param {SourcesBetaApiListSourceSchemasRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof SourcesBetaApi\n */\n SourcesBetaApi.prototype.listSourceSchemas = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.SourcesBetaApiFp)(this.configuration).listSourceSchemas(requestParameters.sourceId, requestParameters.includeTypes, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This end-point lists all the sources in IdentityNow. A token with ORG_ADMIN, SOURCE_ADMIN, SOURCE_SUBADMIN, or ROLE_SUBADMIN authority is required to call this API.\n * @summary Lists all sources in IdentityNow.\n * @param {SourcesBetaApiListSourcesRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof SourcesBetaApi\n */\n SourcesBetaApi.prototype.listSources = function (requestParameters, axiosOptions) {\n var _this = this;\n if (requestParameters === void 0) { requestParameters = {}; }\n return (0, exports.SourcesBetaApiFp)(this.configuration).listSources(requestParameters.limit, requestParameters.offset, requestParameters.count, requestParameters.filters, requestParameters.sorters, requestParameters.forSubadmin, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * Retrieves a sample of data returned from account and group aggregation requests. A token with ORG_ADMIN authority is required to call this API.\n * @summary Peek source connector\\'s resource objects\n * @param {SourcesBetaApiPeekResourceObjectsRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof SourcesBetaApi\n */\n SourcesBetaApi.prototype.peekResourceObjects = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.SourcesBetaApiFp)(this.configuration).peekResourceObjects(requestParameters.sourceId, requestParameters.resourceObjectsRequestBeta, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This endpoint validates that the cluster being used by the source is reachable from IdentityNow. A token with ORG_ADMIN authority is required to call this API.\n * @summary Ping cluster for source connector\n * @param {SourcesBetaApiPingClusterRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof SourcesBetaApi\n */\n SourcesBetaApi.prototype.pingCluster = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.SourcesBetaApiFp)(this.configuration).pingCluster(requestParameters.sourceId, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * Replaces the native change detection configuration for the source specified by the given ID with the configuration provided in the request body. A token with ORG_ADMIN authority is required to call this API.\n * @summary Update Native Change Detection Configuration\n * @param {SourcesBetaApiPutNativeChangeDetectionConfigRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof SourcesBetaApi\n */\n SourcesBetaApi.prototype.putNativeChangeDetectionConfig = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.SourcesBetaApiFp)(this.configuration).putNativeChangeDetectionConfig(requestParameters.id, requestParameters.nativeChangeDetectionConfigBeta, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This end-point updates the provisioning policy with the specified usage on the specified source in IdentityNow. Transforms can be used in the provisioning policy to create a new attribute that you only need during provisioning. Refer to [Transforms in Provisioning Policies](https://developer.sailpoint.com/idn/docs/transforms/guides/transforms-in-provisioning-policies) for more information. A token with API, ORG_ADMIN, SOURCE_ADMIN, or SOURCE_SUBADMIN authority is required to call this API.\n * @summary Update Provisioning Policy by UsageType\n * @param {SourcesBetaApiPutProvisioningPolicyRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof SourcesBetaApi\n */\n SourcesBetaApi.prototype.putProvisioningPolicy = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.SourcesBetaApiFp)(this.configuration).putProvisioningPolicy(requestParameters.sourceId, requestParameters.usageType, requestParameters.provisioningPolicyDtoBeta, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This API updates a source in IdentityNow, using a full object representation. In other words, the existing Source configuration is completely replaced. Some fields are immutable and cannot be changed, such as: * id * type * authoritative * connector * connectorClass * passwordPolicies Attempts to modify these fields will result in a 400 error. A token with ORG_ADMIN, SOURCE_ADMIN, or SOURCE_SUBADMIN authority is required to call this API.\n * @summary Update Source (Full)\n * @param {SourcesBetaApiPutSourceRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof SourcesBetaApi\n */\n SourcesBetaApi.prototype.putSource = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.SourcesBetaApiFp)(this.configuration).putSource(requestParameters.id, requestParameters.sourceBeta, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * Replaces the attribute synchronization configuration for the source specified by the given ID with the configuration provided in the request body. Only the \\\"enabled\\\" field of the values in the \\\"attributes\\\" array is mutable. Attempting to change other attributes or add new values to the \\\"attributes\\\" array will result in an error. A token with ORG_ADMIN authority is required to call this API.\n * @summary Update Attribute Sync Config\n * @param {SourcesBetaApiPutSourceAttrSyncConfigRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof SourcesBetaApi\n */\n SourcesBetaApi.prototype.putSourceAttrSyncConfig = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.SourcesBetaApiFp)(this.configuration).putSourceAttrSyncConfig(requestParameters.id, requestParameters.attrSyncSourceConfigBeta, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This API will completely replace an existing Schema with the submitted payload. Some fields of the Schema cannot be updated. These fields are listed below. * id * name * created * modified Any attempt to modify these fields will result in an error response with a status code of 400.\n * @summary Update Source Schema (Full)\n * @param {SourcesBetaApiPutSourceSchemaRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof SourcesBetaApi\n */\n SourcesBetaApi.prototype.putSourceSchema = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.SourcesBetaApiFp)(this.configuration).putSourceSchema(requestParameters.sourceId, requestParameters.schemaId, requestParameters.schemaBeta, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This end-point performs attribute synchronization for a selected source. A token with ORG_ADMIN or SOURCE_ADMIN authority is required to call this API.\n * @summary Synchronize single source attributes.\n * @param {SourcesBetaApiSyncAttributesForSourceRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof SourcesBetaApi\n */\n SourcesBetaApi.prototype.syncAttributesForSource = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.SourcesBetaApiFp)(this.configuration).syncAttributesForSource(requestParameters.id, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This endpoint performs a more detailed validation of the source\\'s configuration that can take longer than the lighter weight credential validation performed by the checkConnection API. A token with ORG_ADMIN authority is required to call this API.\n * @summary Test configuration for source connector\n * @param {SourcesBetaApiTestSourceConfigurationRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof SourcesBetaApi\n */\n SourcesBetaApi.prototype.testSourceConfiguration = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.SourcesBetaApiFp)(this.configuration).testSourceConfiguration(requestParameters.sourceId, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This endpoint validates that the configured credentials are valid and will properly authenticate with the source identified by the sourceId path parameter. A token with ORG_ADMIN authority is required to call this API.\n * @summary Check connection for source connector.\n * @param {SourcesBetaApiTestSourceConnectionRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof SourcesBetaApi\n */\n SourcesBetaApi.prototype.testSourceConnection = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.SourcesBetaApiFp)(this.configuration).testSourceConnection(requestParameters.sourceId, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This end-point updates a list of provisioning policies on the specified source in IdentityNow. A token with API, or ORG_ADMIN authority is required to call this API.\n * @summary Bulk Update Provisioning Policies\n * @param {SourcesBetaApiUpdateProvisioningPoliciesInBulkRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof SourcesBetaApi\n */\n SourcesBetaApi.prototype.updateProvisioningPoliciesInBulk = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.SourcesBetaApiFp)(this.configuration).updateProvisioningPoliciesInBulk(requestParameters.sourceId, requestParameters.provisioningPolicyDtoBeta, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This API selectively updates an existing Provisioning Policy using a JSONPatch payload. Transforms can be used in the provisioning policy to create a new attribute that you only need during provisioning. Refer to [Transforms in Provisioning Policies](https://developer.sailpoint.com/idn/docs/transforms/guides/transforms-in-provisioning-policies) for more information. A token with API, ORG_ADMIN, SOURCE_ADMIN, or SOURCE_SUBADMIN authority is required to call this API.\n * @summary Partial update of Provisioning Policy\n * @param {SourcesBetaApiUpdateProvisioningPolicyRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof SourcesBetaApi\n */\n SourcesBetaApi.prototype.updateProvisioningPolicy = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.SourcesBetaApiFp)(this.configuration).updateProvisioningPolicy(requestParameters.sourceId, requestParameters.usageType, requestParameters.jsonPatchOperationBeta, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This API partially updates a source in IdentityNow, using a list of patch operations according to the [JSON Patch](https://tools.ietf.org/html/rfc6902) standard. Some fields are immutable and cannot be changed, such as: * id * type * authoritative * created * modified * connector * connectorClass * passwordPolicies Attempts to modify these fields will result in a 400 error. A token with ORG_ADMIN, SOURCE_ADMIN, SOURCE_SUBADMIN, or API authority is required to call this API.\n * @summary Update Source (Partial)\n * @param {SourcesBetaApiUpdateSourceRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof SourcesBetaApi\n */\n SourcesBetaApi.prototype.updateSource = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.SourcesBetaApiFp)(this.configuration).updateSource(requestParameters.id, requestParameters.jsonPatchOperationBeta, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This API replaces the current entitlement request configuration for a source. This source-level configuration should apply for all the entitlements in the source. Access request to any entitlements in the source should follow this configuration unless a separate entitlement-level configuration is defined. - During access request, this source-level entitlement request configuration overrides the global organization-level configuration. - However, the entitlement-level configuration (if defined) overrides this source-level configuration. A token with ORG_ADMIN, SOURCE_ADMIN, or SOURCE_SUBADMIN authority is required to call this API.\n * @summary Update Source Entitlement Request Configuration\n * @param {SourcesBetaApiUpdateSourceEntitlementRequestConfigRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof SourcesBetaApi\n */\n SourcesBetaApi.prototype.updateSourceEntitlementRequestConfig = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.SourcesBetaApiFp)(this.configuration).updateSourceEntitlementRequestConfig(requestParameters.sourceEntitlementRequestConfigBeta, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * Use this API to selectively update an existing Schema using a JSONPatch payload. The following schema fields are immutable and cannot be updated: - id - name - created - modified To switch an account attribute to a group entitlement, you need to have the following in place: - `isEntitlement: true` - Must define a schema for the group and [add it to the source](https://developer.sailpoint.com/idn/api/beta/create-source-schema) before updating the `isGroup` flag. For example, here is the `group` account attribute referencing a schema that defines the group: ```json { \\\"name\\\": \\\"groups\\\", \\\"type\\\": \\\"STRING\\\", \\\"schema\\\": { \\\"type\\\": \\\"CONNECTOR_SCHEMA\\\", \\\"id\\\": \\\"2c9180887671ff8c01767b4671fc7d60\\\", \\\"name\\\": \\\"group\\\" }, \\\"description\\\": \\\"The groups, roles etc. that reference account group objects\\\", \\\"isMulti\\\": true, \\\"isEntitlement\\\": true, \\\"isGroup\\\": true } ```\n * @summary Update Source Schema (Partial)\n * @param {SourcesBetaApiUpdateSourceSchemaRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof SourcesBetaApi\n */\n SourcesBetaApi.prototype.updateSourceSchema = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.SourcesBetaApiFp)(this.configuration).updateSourceSchema(requestParameters.sourceId, requestParameters.schemaId, requestParameters.jsonPatchOperationBeta, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n return SourcesBetaApi;\n}(base_1.BaseAPI));\nexports.SourcesBetaApi = SourcesBetaApi;\n/**\n * TaggedObjectsBetaApi - axios parameter creator\n * @export\n */\nvar TaggedObjectsBetaApiAxiosParamCreator = function (configuration) {\n var _this = this;\n return {\n /**\n * This deletes a tagged object for the specified type.\n * @summary Delete Tagged Object\n * @param {'ACCESS_PROFILE' | 'APPLICATION' | 'CAMPAIGN' | 'ENTITLEMENT' | 'IDENTITY' | 'ROLE' | 'SOD_POLICY' | 'SOURCE'} type The type of tagged object to delete.\n * @param {string} id The ID of the object reference to delete.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n deleteTaggedObject: function (type, id, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'type' is not null or undefined\n (0, common_1.assertParamExists)('deleteTaggedObject', 'type', type);\n // verify required parameter 'id' is not null or undefined\n (0, common_1.assertParamExists)('deleteTaggedObject', 'id', id);\n localVarPath = \"/tagged-objects/{type}/{id}\"\n .replace(\"{\".concat(\"type\", \"}\"), encodeURIComponent(String(type)))\n .replace(\"{\".concat(\"id\", \"}\"), encodeURIComponent(String(id)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'DELETE' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This API removes tags from multiple objects. A token with API, CERT_ADMIN, ORG_ADMIN, REPORT_ADMIN, ROLE_ADMIN, ROLE_SUBADMIN, SOURCE_ADMIN, or SOURCE_SUBADMIN authority is required to call this API.\n * @summary Remove Tags from Multiple Objects\n * @param {BulkTaggedObjectBeta} bulkTaggedObjectBeta Supported object types are ACCESS_PROFILE, APPLICATION, CAMPAIGN, ENTITLEMENT, IDENTITY, ROLE, SOD_POLICY, SOURCE.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n deleteTagsToManyObject: function (bulkTaggedObjectBeta, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'bulkTaggedObjectBeta' is not null or undefined\n (0, common_1.assertParamExists)('deleteTagsToManyObject', 'bulkTaggedObjectBeta', bulkTaggedObjectBeta);\n localVarPath = \"/tagged-objects/bulk-remove\";\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n localVarHeaderParameter['Content-Type'] = 'application/json';\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(bulkTaggedObjectBeta, localVarRequestOptions, configuration);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This gets a tagged object for the specified type.\n * @summary Get Tagged Object\n * @param {'ACCESS_PROFILE' | 'APPLICATION' | 'CAMPAIGN' | 'ENTITLEMENT' | 'IDENTITY' | 'ROLE' | 'SOD_POLICY' | 'SOURCE'} type The type of tagged object to retrieve.\n * @param {string} id The ID of the object reference to retrieve.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getTaggedObject: function (type, id, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'type' is not null or undefined\n (0, common_1.assertParamExists)('getTaggedObject', 'type', type);\n // verify required parameter 'id' is not null or undefined\n (0, common_1.assertParamExists)('getTaggedObject', 'id', id);\n localVarPath = \"/tagged-objects/{type}/{id}\"\n .replace(\"{\".concat(\"type\", \"}\"), encodeURIComponent(String(type)))\n .replace(\"{\".concat(\"id\", \"}\"), encodeURIComponent(String(id)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This API returns a list of all tagged objects. Any authenticated token may be used to call this API.\n * @summary List Tagged Objects\n * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **objectRef.id**: *eq, in* **objectRef.type**: *eq, in* **tagName**: *eq, in*\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n listTaggedObjects: function (limit, offset, count, filters, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n localVarPath = \"/tagged-objects\";\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n if (limit !== undefined) {\n localVarQueryParameter['limit'] = limit;\n }\n if (offset !== undefined) {\n localVarQueryParameter['offset'] = offset;\n }\n if (count !== undefined) {\n localVarQueryParameter['count'] = count;\n }\n if (filters !== undefined) {\n localVarQueryParameter['filters'] = filters;\n }\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This API returns a list of all tagged objects by type. Any authenticated token may be used to call this API.\n * @summary List Tagged Objects\n * @param {'ROLE' | 'IDENTITY' | 'SOD_POLICY'} type The type of tagged object to retrieve.\n * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **objectRef.id**: *eq* **objectRef.type**: *eq*\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n listTaggedObjectsByType: function (type, limit, offset, count, filters, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'type' is not null or undefined\n (0, common_1.assertParamExists)('listTaggedObjectsByType', 'type', type);\n localVarPath = \"/tagged-objects/{type}\"\n .replace(\"{\".concat(\"type\", \"}\"), encodeURIComponent(String(type)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n if (limit !== undefined) {\n localVarQueryParameter['limit'] = limit;\n }\n if (offset !== undefined) {\n localVarQueryParameter['offset'] = offset;\n }\n if (count !== undefined) {\n localVarQueryParameter['count'] = count;\n }\n if (filters !== undefined) {\n localVarQueryParameter['filters'] = filters;\n }\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This updates a tagged object for the specified type.\n * @summary Update Tagged Object\n * @param {'ACCESS_PROFILE' | 'APPLICATION' | 'CAMPAIGN' | 'ENTITLEMENT' | 'IDENTITY' | 'ROLE' | 'SOD_POLICY' | 'SOURCE'} type The type of tagged object to update.\n * @param {string} id The ID of the object reference to update.\n * @param {TaggedObjectBeta} taggedObjectBeta\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n putTaggedObject: function (type, id, taggedObjectBeta, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'type' is not null or undefined\n (0, common_1.assertParamExists)('putTaggedObject', 'type', type);\n // verify required parameter 'id' is not null or undefined\n (0, common_1.assertParamExists)('putTaggedObject', 'id', id);\n // verify required parameter 'taggedObjectBeta' is not null or undefined\n (0, common_1.assertParamExists)('putTaggedObject', 'taggedObjectBeta', taggedObjectBeta);\n localVarPath = \"/tagged-objects/{type}/{id}\"\n .replace(\"{\".concat(\"type\", \"}\"), encodeURIComponent(String(type)))\n .replace(\"{\".concat(\"id\", \"}\"), encodeURIComponent(String(id)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'PUT' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n localVarHeaderParameter['Content-Type'] = 'application/json';\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(taggedObjectBeta, localVarRequestOptions, configuration);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This adds a tag to an object. Any authenticated token may be used to call this API.\n * @summary Add Tag to Object\n * @param {TaggedObjectBeta} taggedObjectBeta\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n setTagToObject: function (taggedObjectBeta, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'taggedObjectBeta' is not null or undefined\n (0, common_1.assertParamExists)('setTagToObject', 'taggedObjectBeta', taggedObjectBeta);\n localVarPath = \"/tagged-objects\";\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n localVarHeaderParameter['Content-Type'] = 'application/json';\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(taggedObjectBeta, localVarRequestOptions, configuration);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This API adds tags to multiple objects. A token with API, CERT_ADMIN, ORG_ADMIN, REPORT_ADMIN, ROLE_ADMIN, ROLE_SUBADMIN, SOURCE_ADMIN, or SOURCE_SUBADMIN authority is required to call this API.\n * @summary Tag Multiple Objects\n * @param {BulkTaggedObjectBeta} bulkTaggedObjectBeta Supported object types are ACCESS_PROFILE, APPLICATION, CAMPAIGN, ENTITLEMENT, IDENTITY, ROLE, SOD_POLICY, SOURCE.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n setTagsToManyObjects: function (bulkTaggedObjectBeta, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'bulkTaggedObjectBeta' is not null or undefined\n (0, common_1.assertParamExists)('setTagsToManyObjects', 'bulkTaggedObjectBeta', bulkTaggedObjectBeta);\n localVarPath = \"/tagged-objects/bulk-add\";\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n localVarHeaderParameter['Content-Type'] = 'application/json';\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(bulkTaggedObjectBeta, localVarRequestOptions, configuration);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n };\n};\nexports.TaggedObjectsBetaApiAxiosParamCreator = TaggedObjectsBetaApiAxiosParamCreator;\n/**\n * TaggedObjectsBetaApi - functional programming interface\n * @export\n */\nvar TaggedObjectsBetaApiFp = function (configuration) {\n var localVarAxiosParamCreator = (0, exports.TaggedObjectsBetaApiAxiosParamCreator)(configuration);\n return {\n /**\n * This deletes a tagged object for the specified type.\n * @summary Delete Tagged Object\n * @param {'ACCESS_PROFILE' | 'APPLICATION' | 'CAMPAIGN' | 'ENTITLEMENT' | 'IDENTITY' | 'ROLE' | 'SOD_POLICY' | 'SOURCE'} type The type of tagged object to delete.\n * @param {string} id The ID of the object reference to delete.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n deleteTaggedObject: function (type, id, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.deleteTaggedObject(type, id, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This API removes tags from multiple objects. A token with API, CERT_ADMIN, ORG_ADMIN, REPORT_ADMIN, ROLE_ADMIN, ROLE_SUBADMIN, SOURCE_ADMIN, or SOURCE_SUBADMIN authority is required to call this API.\n * @summary Remove Tags from Multiple Objects\n * @param {BulkTaggedObjectBeta} bulkTaggedObjectBeta Supported object types are ACCESS_PROFILE, APPLICATION, CAMPAIGN, ENTITLEMENT, IDENTITY, ROLE, SOD_POLICY, SOURCE.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n deleteTagsToManyObject: function (bulkTaggedObjectBeta, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.deleteTagsToManyObject(bulkTaggedObjectBeta, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This gets a tagged object for the specified type.\n * @summary Get Tagged Object\n * @param {'ACCESS_PROFILE' | 'APPLICATION' | 'CAMPAIGN' | 'ENTITLEMENT' | 'IDENTITY' | 'ROLE' | 'SOD_POLICY' | 'SOURCE'} type The type of tagged object to retrieve.\n * @param {string} id The ID of the object reference to retrieve.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getTaggedObject: function (type, id, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.getTaggedObject(type, id, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This API returns a list of all tagged objects. Any authenticated token may be used to call this API.\n * @summary List Tagged Objects\n * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **objectRef.id**: *eq, in* **objectRef.type**: *eq, in* **tagName**: *eq, in*\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n listTaggedObjects: function (limit, offset, count, filters, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.listTaggedObjects(limit, offset, count, filters, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This API returns a list of all tagged objects by type. Any authenticated token may be used to call this API.\n * @summary List Tagged Objects\n * @param {'ROLE' | 'IDENTITY' | 'SOD_POLICY'} type The type of tagged object to retrieve.\n * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **objectRef.id**: *eq* **objectRef.type**: *eq*\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n listTaggedObjectsByType: function (type, limit, offset, count, filters, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.listTaggedObjectsByType(type, limit, offset, count, filters, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This updates a tagged object for the specified type.\n * @summary Update Tagged Object\n * @param {'ACCESS_PROFILE' | 'APPLICATION' | 'CAMPAIGN' | 'ENTITLEMENT' | 'IDENTITY' | 'ROLE' | 'SOD_POLICY' | 'SOURCE'} type The type of tagged object to update.\n * @param {string} id The ID of the object reference to update.\n * @param {TaggedObjectBeta} taggedObjectBeta\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n putTaggedObject: function (type, id, taggedObjectBeta, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.putTaggedObject(type, id, taggedObjectBeta, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This adds a tag to an object. Any authenticated token may be used to call this API.\n * @summary Add Tag to Object\n * @param {TaggedObjectBeta} taggedObjectBeta\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n setTagToObject: function (taggedObjectBeta, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.setTagToObject(taggedObjectBeta, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This API adds tags to multiple objects. A token with API, CERT_ADMIN, ORG_ADMIN, REPORT_ADMIN, ROLE_ADMIN, ROLE_SUBADMIN, SOURCE_ADMIN, or SOURCE_SUBADMIN authority is required to call this API.\n * @summary Tag Multiple Objects\n * @param {BulkTaggedObjectBeta} bulkTaggedObjectBeta Supported object types are ACCESS_PROFILE, APPLICATION, CAMPAIGN, ENTITLEMENT, IDENTITY, ROLE, SOD_POLICY, SOURCE.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n setTagsToManyObjects: function (bulkTaggedObjectBeta, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.setTagsToManyObjects(bulkTaggedObjectBeta, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n };\n};\nexports.TaggedObjectsBetaApiFp = TaggedObjectsBetaApiFp;\n/**\n * TaggedObjectsBetaApi - factory interface\n * @export\n */\nvar TaggedObjectsBetaApiFactory = function (configuration, basePath, axios) {\n var localVarFp = (0, exports.TaggedObjectsBetaApiFp)(configuration);\n return {\n /**\n * This deletes a tagged object for the specified type.\n * @summary Delete Tagged Object\n * @param {'ACCESS_PROFILE' | 'APPLICATION' | 'CAMPAIGN' | 'ENTITLEMENT' | 'IDENTITY' | 'ROLE' | 'SOD_POLICY' | 'SOURCE'} type The type of tagged object to delete.\n * @param {string} id The ID of the object reference to delete.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n deleteTaggedObject: function (type, id, axiosOptions) {\n return localVarFp.deleteTaggedObject(type, id, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This API removes tags from multiple objects. A token with API, CERT_ADMIN, ORG_ADMIN, REPORT_ADMIN, ROLE_ADMIN, ROLE_SUBADMIN, SOURCE_ADMIN, or SOURCE_SUBADMIN authority is required to call this API.\n * @summary Remove Tags from Multiple Objects\n * @param {BulkTaggedObjectBeta} bulkTaggedObjectBeta Supported object types are ACCESS_PROFILE, APPLICATION, CAMPAIGN, ENTITLEMENT, IDENTITY, ROLE, SOD_POLICY, SOURCE.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n deleteTagsToManyObject: function (bulkTaggedObjectBeta, axiosOptions) {\n return localVarFp.deleteTagsToManyObject(bulkTaggedObjectBeta, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This gets a tagged object for the specified type.\n * @summary Get Tagged Object\n * @param {'ACCESS_PROFILE' | 'APPLICATION' | 'CAMPAIGN' | 'ENTITLEMENT' | 'IDENTITY' | 'ROLE' | 'SOD_POLICY' | 'SOURCE'} type The type of tagged object to retrieve.\n * @param {string} id The ID of the object reference to retrieve.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getTaggedObject: function (type, id, axiosOptions) {\n return localVarFp.getTaggedObject(type, id, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This API returns a list of all tagged objects. Any authenticated token may be used to call this API.\n * @summary List Tagged Objects\n * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **objectRef.id**: *eq, in* **objectRef.type**: *eq, in* **tagName**: *eq, in*\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n listTaggedObjects: function (limit, offset, count, filters, axiosOptions) {\n return localVarFp.listTaggedObjects(limit, offset, count, filters, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This API returns a list of all tagged objects by type. Any authenticated token may be used to call this API.\n * @summary List Tagged Objects\n * @param {'ROLE' | 'IDENTITY' | 'SOD_POLICY'} type The type of tagged object to retrieve.\n * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **objectRef.id**: *eq* **objectRef.type**: *eq*\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n listTaggedObjectsByType: function (type, limit, offset, count, filters, axiosOptions) {\n return localVarFp.listTaggedObjectsByType(type, limit, offset, count, filters, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This updates a tagged object for the specified type.\n * @summary Update Tagged Object\n * @param {'ACCESS_PROFILE' | 'APPLICATION' | 'CAMPAIGN' | 'ENTITLEMENT' | 'IDENTITY' | 'ROLE' | 'SOD_POLICY' | 'SOURCE'} type The type of tagged object to update.\n * @param {string} id The ID of the object reference to update.\n * @param {TaggedObjectBeta} taggedObjectBeta\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n putTaggedObject: function (type, id, taggedObjectBeta, axiosOptions) {\n return localVarFp.putTaggedObject(type, id, taggedObjectBeta, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This adds a tag to an object. Any authenticated token may be used to call this API.\n * @summary Add Tag to Object\n * @param {TaggedObjectBeta} taggedObjectBeta\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n setTagToObject: function (taggedObjectBeta, axiosOptions) {\n return localVarFp.setTagToObject(taggedObjectBeta, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This API adds tags to multiple objects. A token with API, CERT_ADMIN, ORG_ADMIN, REPORT_ADMIN, ROLE_ADMIN, ROLE_SUBADMIN, SOURCE_ADMIN, or SOURCE_SUBADMIN authority is required to call this API.\n * @summary Tag Multiple Objects\n * @param {BulkTaggedObjectBeta} bulkTaggedObjectBeta Supported object types are ACCESS_PROFILE, APPLICATION, CAMPAIGN, ENTITLEMENT, IDENTITY, ROLE, SOD_POLICY, SOURCE.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n setTagsToManyObjects: function (bulkTaggedObjectBeta, axiosOptions) {\n return localVarFp.setTagsToManyObjects(bulkTaggedObjectBeta, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n };\n};\nexports.TaggedObjectsBetaApiFactory = TaggedObjectsBetaApiFactory;\n/**\n * TaggedObjectsBetaApi - object-oriented interface\n * @export\n * @class TaggedObjectsBetaApi\n * @extends {BaseAPI}\n */\nvar TaggedObjectsBetaApi = /** @class */ (function (_super) {\n __extends(TaggedObjectsBetaApi, _super);\n function TaggedObjectsBetaApi() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n * This deletes a tagged object for the specified type.\n * @summary Delete Tagged Object\n * @param {TaggedObjectsBetaApiDeleteTaggedObjectRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof TaggedObjectsBetaApi\n */\n TaggedObjectsBetaApi.prototype.deleteTaggedObject = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.TaggedObjectsBetaApiFp)(this.configuration).deleteTaggedObject(requestParameters.type, requestParameters.id, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This API removes tags from multiple objects. A token with API, CERT_ADMIN, ORG_ADMIN, REPORT_ADMIN, ROLE_ADMIN, ROLE_SUBADMIN, SOURCE_ADMIN, or SOURCE_SUBADMIN authority is required to call this API.\n * @summary Remove Tags from Multiple Objects\n * @param {TaggedObjectsBetaApiDeleteTagsToManyObjectRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof TaggedObjectsBetaApi\n */\n TaggedObjectsBetaApi.prototype.deleteTagsToManyObject = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.TaggedObjectsBetaApiFp)(this.configuration).deleteTagsToManyObject(requestParameters.bulkTaggedObjectBeta, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This gets a tagged object for the specified type.\n * @summary Get Tagged Object\n * @param {TaggedObjectsBetaApiGetTaggedObjectRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof TaggedObjectsBetaApi\n */\n TaggedObjectsBetaApi.prototype.getTaggedObject = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.TaggedObjectsBetaApiFp)(this.configuration).getTaggedObject(requestParameters.type, requestParameters.id, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This API returns a list of all tagged objects. Any authenticated token may be used to call this API.\n * @summary List Tagged Objects\n * @param {TaggedObjectsBetaApiListTaggedObjectsRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof TaggedObjectsBetaApi\n */\n TaggedObjectsBetaApi.prototype.listTaggedObjects = function (requestParameters, axiosOptions) {\n var _this = this;\n if (requestParameters === void 0) { requestParameters = {}; }\n return (0, exports.TaggedObjectsBetaApiFp)(this.configuration).listTaggedObjects(requestParameters.limit, requestParameters.offset, requestParameters.count, requestParameters.filters, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This API returns a list of all tagged objects by type. Any authenticated token may be used to call this API.\n * @summary List Tagged Objects\n * @param {TaggedObjectsBetaApiListTaggedObjectsByTypeRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof TaggedObjectsBetaApi\n */\n TaggedObjectsBetaApi.prototype.listTaggedObjectsByType = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.TaggedObjectsBetaApiFp)(this.configuration).listTaggedObjectsByType(requestParameters.type, requestParameters.limit, requestParameters.offset, requestParameters.count, requestParameters.filters, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This updates a tagged object for the specified type.\n * @summary Update Tagged Object\n * @param {TaggedObjectsBetaApiPutTaggedObjectRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof TaggedObjectsBetaApi\n */\n TaggedObjectsBetaApi.prototype.putTaggedObject = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.TaggedObjectsBetaApiFp)(this.configuration).putTaggedObject(requestParameters.type, requestParameters.id, requestParameters.taggedObjectBeta, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This adds a tag to an object. Any authenticated token may be used to call this API.\n * @summary Add Tag to Object\n * @param {TaggedObjectsBetaApiSetTagToObjectRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof TaggedObjectsBetaApi\n */\n TaggedObjectsBetaApi.prototype.setTagToObject = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.TaggedObjectsBetaApiFp)(this.configuration).setTagToObject(requestParameters.taggedObjectBeta, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This API adds tags to multiple objects. A token with API, CERT_ADMIN, ORG_ADMIN, REPORT_ADMIN, ROLE_ADMIN, ROLE_SUBADMIN, SOURCE_ADMIN, or SOURCE_SUBADMIN authority is required to call this API.\n * @summary Tag Multiple Objects\n * @param {TaggedObjectsBetaApiSetTagsToManyObjectsRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof TaggedObjectsBetaApi\n */\n TaggedObjectsBetaApi.prototype.setTagsToManyObjects = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.TaggedObjectsBetaApiFp)(this.configuration).setTagsToManyObjects(requestParameters.bulkTaggedObjectBeta, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n return TaggedObjectsBetaApi;\n}(base_1.BaseAPI));\nexports.TaggedObjectsBetaApi = TaggedObjectsBetaApi;\n/**\n * TaskManagementBetaApi - axios parameter creator\n * @export\n */\nvar TaskManagementBetaApiAxiosParamCreator = function (configuration) {\n var _this = this;\n return {\n /**\n * Retrieve headers for a list of TaskStatus for pending tasks.\n * @summary Retrieve headers only for pending task list.\n * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getPendingTaskHeaders: function (offset, limit, count, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n localVarPath = \"/task-status/pending-tasks\";\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'HEAD' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n if (offset !== undefined) {\n localVarQueryParameter['offset'] = offset;\n }\n if (limit !== undefined) {\n localVarQueryParameter['limit'] = limit;\n }\n if (count !== undefined) {\n localVarQueryParameter['count'] = count;\n }\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * Retrieve a list of TaskStatus for pending tasks.\n * @summary Retrieve a pending task list.\n * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getPendingTasks: function (offset, limit, count, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n localVarPath = \"/task-status/pending-tasks\";\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n if (offset !== undefined) {\n localVarQueryParameter['offset'] = offset;\n }\n if (limit !== undefined) {\n localVarQueryParameter['limit'] = limit;\n }\n if (count !== undefined) {\n localVarQueryParameter['count'] = count;\n }\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * Get a TaskStatus for a task by task ID.\n * @summary Get task status by ID.\n * @param {string} id Task ID of the TaskStatus to get\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getTaskStatus: function (id, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'id' is not null or undefined\n (0, common_1.assertParamExists)('getTaskStatus', 'id', id);\n localVarPath = \"/task-status/{id}\"\n .replace(\"{\".concat(\"id\", \"}\"), encodeURIComponent(String(id)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * Get a TaskStatus list.\n * @summary Retrieve a task status list.\n * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **id**: *eq, in* **sourceId**: *eq, in* **completionStatus**: *eq, in* **type**: *eq, in*\n * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **created**\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getTaskStatusList: function (limit, offset, count, filters, sorters, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n localVarPath = \"/task-status\";\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n if (limit !== undefined) {\n localVarQueryParameter['limit'] = limit;\n }\n if (offset !== undefined) {\n localVarQueryParameter['offset'] = offset;\n }\n if (count !== undefined) {\n localVarQueryParameter['count'] = count;\n }\n if (filters !== undefined) {\n localVarQueryParameter['filters'] = filters;\n }\n if (sorters !== undefined) {\n localVarQueryParameter['sorters'] = sorters;\n }\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * Update a current TaskStatus for a task by task ID.\n * @summary Update task status by ID\n * @param {string} id Task ID of the task whose TaskStatus to update\n * @param {JsonPatchBeta} jsonPatchBeta\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n updateTaskStatus: function (id, jsonPatchBeta, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'id' is not null or undefined\n (0, common_1.assertParamExists)('updateTaskStatus', 'id', id);\n // verify required parameter 'jsonPatchBeta' is not null or undefined\n (0, common_1.assertParamExists)('updateTaskStatus', 'jsonPatchBeta', jsonPatchBeta);\n localVarPath = \"/task-status/{id}\"\n .replace(\"{\".concat(\"id\", \"}\"), encodeURIComponent(String(id)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'PATCH' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n localVarHeaderParameter['Content-Type'] = 'application/json-patch+json';\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(jsonPatchBeta, localVarRequestOptions, configuration);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n };\n};\nexports.TaskManagementBetaApiAxiosParamCreator = TaskManagementBetaApiAxiosParamCreator;\n/**\n * TaskManagementBetaApi - functional programming interface\n * @export\n */\nvar TaskManagementBetaApiFp = function (configuration) {\n var localVarAxiosParamCreator = (0, exports.TaskManagementBetaApiAxiosParamCreator)(configuration);\n return {\n /**\n * Retrieve headers for a list of TaskStatus for pending tasks.\n * @summary Retrieve headers only for pending task list.\n * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getPendingTaskHeaders: function (offset, limit, count, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.getPendingTaskHeaders(offset, limit, count, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * Retrieve a list of TaskStatus for pending tasks.\n * @summary Retrieve a pending task list.\n * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getPendingTasks: function (offset, limit, count, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.getPendingTasks(offset, limit, count, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * Get a TaskStatus for a task by task ID.\n * @summary Get task status by ID.\n * @param {string} id Task ID of the TaskStatus to get\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getTaskStatus: function (id, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.getTaskStatus(id, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * Get a TaskStatus list.\n * @summary Retrieve a task status list.\n * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **id**: *eq, in* **sourceId**: *eq, in* **completionStatus**: *eq, in* **type**: *eq, in*\n * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **created**\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getTaskStatusList: function (limit, offset, count, filters, sorters, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.getTaskStatusList(limit, offset, count, filters, sorters, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * Update a current TaskStatus for a task by task ID.\n * @summary Update task status by ID\n * @param {string} id Task ID of the task whose TaskStatus to update\n * @param {JsonPatchBeta} jsonPatchBeta\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n updateTaskStatus: function (id, jsonPatchBeta, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.updateTaskStatus(id, jsonPatchBeta, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n };\n};\nexports.TaskManagementBetaApiFp = TaskManagementBetaApiFp;\n/**\n * TaskManagementBetaApi - factory interface\n * @export\n */\nvar TaskManagementBetaApiFactory = function (configuration, basePath, axios) {\n var localVarFp = (0, exports.TaskManagementBetaApiFp)(configuration);\n return {\n /**\n * Retrieve headers for a list of TaskStatus for pending tasks.\n * @summary Retrieve headers only for pending task list.\n * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getPendingTaskHeaders: function (offset, limit, count, axiosOptions) {\n return localVarFp.getPendingTaskHeaders(offset, limit, count, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * Retrieve a list of TaskStatus for pending tasks.\n * @summary Retrieve a pending task list.\n * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getPendingTasks: function (offset, limit, count, axiosOptions) {\n return localVarFp.getPendingTasks(offset, limit, count, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * Get a TaskStatus for a task by task ID.\n * @summary Get task status by ID.\n * @param {string} id Task ID of the TaskStatus to get\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getTaskStatus: function (id, axiosOptions) {\n return localVarFp.getTaskStatus(id, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * Get a TaskStatus list.\n * @summary Retrieve a task status list.\n * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **id**: *eq, in* **sourceId**: *eq, in* **completionStatus**: *eq, in* **type**: *eq, in*\n * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **created**\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getTaskStatusList: function (limit, offset, count, filters, sorters, axiosOptions) {\n return localVarFp.getTaskStatusList(limit, offset, count, filters, sorters, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * Update a current TaskStatus for a task by task ID.\n * @summary Update task status by ID\n * @param {string} id Task ID of the task whose TaskStatus to update\n * @param {JsonPatchBeta} jsonPatchBeta\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n updateTaskStatus: function (id, jsonPatchBeta, axiosOptions) {\n return localVarFp.updateTaskStatus(id, jsonPatchBeta, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n };\n};\nexports.TaskManagementBetaApiFactory = TaskManagementBetaApiFactory;\n/**\n * TaskManagementBetaApi - object-oriented interface\n * @export\n * @class TaskManagementBetaApi\n * @extends {BaseAPI}\n */\nvar TaskManagementBetaApi = /** @class */ (function (_super) {\n __extends(TaskManagementBetaApi, _super);\n function TaskManagementBetaApi() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n * Retrieve headers for a list of TaskStatus for pending tasks.\n * @summary Retrieve headers only for pending task list.\n * @param {TaskManagementBetaApiGetPendingTaskHeadersRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof TaskManagementBetaApi\n */\n TaskManagementBetaApi.prototype.getPendingTaskHeaders = function (requestParameters, axiosOptions) {\n var _this = this;\n if (requestParameters === void 0) { requestParameters = {}; }\n return (0, exports.TaskManagementBetaApiFp)(this.configuration).getPendingTaskHeaders(requestParameters.offset, requestParameters.limit, requestParameters.count, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * Retrieve a list of TaskStatus for pending tasks.\n * @summary Retrieve a pending task list.\n * @param {TaskManagementBetaApiGetPendingTasksRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof TaskManagementBetaApi\n */\n TaskManagementBetaApi.prototype.getPendingTasks = function (requestParameters, axiosOptions) {\n var _this = this;\n if (requestParameters === void 0) { requestParameters = {}; }\n return (0, exports.TaskManagementBetaApiFp)(this.configuration).getPendingTasks(requestParameters.offset, requestParameters.limit, requestParameters.count, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * Get a TaskStatus for a task by task ID.\n * @summary Get task status by ID.\n * @param {TaskManagementBetaApiGetTaskStatusRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof TaskManagementBetaApi\n */\n TaskManagementBetaApi.prototype.getTaskStatus = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.TaskManagementBetaApiFp)(this.configuration).getTaskStatus(requestParameters.id, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * Get a TaskStatus list.\n * @summary Retrieve a task status list.\n * @param {TaskManagementBetaApiGetTaskStatusListRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof TaskManagementBetaApi\n */\n TaskManagementBetaApi.prototype.getTaskStatusList = function (requestParameters, axiosOptions) {\n var _this = this;\n if (requestParameters === void 0) { requestParameters = {}; }\n return (0, exports.TaskManagementBetaApiFp)(this.configuration).getTaskStatusList(requestParameters.limit, requestParameters.offset, requestParameters.count, requestParameters.filters, requestParameters.sorters, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * Update a current TaskStatus for a task by task ID.\n * @summary Update task status by ID\n * @param {TaskManagementBetaApiUpdateTaskStatusRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof TaskManagementBetaApi\n */\n TaskManagementBetaApi.prototype.updateTaskStatus = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.TaskManagementBetaApiFp)(this.configuration).updateTaskStatus(requestParameters.id, requestParameters.jsonPatchBeta, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n return TaskManagementBetaApi;\n}(base_1.BaseAPI));\nexports.TaskManagementBetaApi = TaskManagementBetaApi;\n/**\n * TransformsBetaApi - axios parameter creator\n * @export\n */\nvar TransformsBetaApiAxiosParamCreator = function (configuration) {\n var _this = this;\n return {\n /**\n * Creates a new transform object immediately. By default, the internal flag is set to false to indicate that this is a custom transform. Only SailPoint employees have the ability to create a transform with internal set to true. Newly created Transforms can be used in the Identity Profile mappings within the UI. A token with transform write authority is required to call this API.\n * @summary Create transform\n * @param {TransformBeta} transformBeta The transform to be created.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n createTransform: function (transformBeta, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'transformBeta' is not null or undefined\n (0, common_1.assertParamExists)('createTransform', 'transformBeta', transformBeta);\n localVarPath = \"/transforms\";\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n localVarHeaderParameter['Content-Type'] = 'application/json';\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(transformBeta, localVarRequestOptions, configuration);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * Deletes the transform specified by the given ID. Attempting to delete a transform that is used in one or more Identity Profile mappings will result in an error. If this occurs, you must first remove the transform from all mappings before deleting the transform. A token with transform delete authority is required to call this API.\n * @summary Delete a transform\n * @param {string} id ID of the transform to delete\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n deleteTransform: function (id, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'id' is not null or undefined\n (0, common_1.assertParamExists)('deleteTransform', 'id', id);\n localVarPath = \"/transforms/{id}\"\n .replace(\"{\".concat(\"id\", \"}\"), encodeURIComponent(String(id)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'DELETE' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This API returns the transform specified by the given ID. A token with transform read authority is required to call this API.\n * @summary Transform by ID\n * @param {string} id ID of the transform to retrieve\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getTransform: function (id, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'id' is not null or undefined\n (0, common_1.assertParamExists)('getTransform', 'id', id);\n localVarPath = \"/transforms/{id}\"\n .replace(\"{\".concat(\"id\", \"}\"), encodeURIComponent(String(id)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * Gets a list of all saved transform objects. A token with transforms-list read authority is required to call this API.\n * @summary List transforms\n * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {string} [name] Name of the transform to retrieve from the list.\n * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **internal**: *eq* **name**: *eq, sw*\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n listTransforms: function (offset, limit, count, name, filters, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n localVarPath = \"/transforms\";\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n if (offset !== undefined) {\n localVarQueryParameter['offset'] = offset;\n }\n if (limit !== undefined) {\n localVarQueryParameter['limit'] = limit;\n }\n if (count !== undefined) {\n localVarQueryParameter['count'] = count;\n }\n if (name !== undefined) {\n localVarQueryParameter['name'] = name;\n }\n if (filters !== undefined) {\n localVarQueryParameter['filters'] = filters;\n }\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * Replaces the transform specified by the given ID with the transform provided in the request body. Only the \\\"attributes\\\" field is mutable. Attempting to change other properties (ex. \\\"name\\\" and \\\"type\\\") will result in an error. A token with transform write authority is required to call this API.\n * @summary Update a transform\n * @param {string} id ID of the transform to update\n * @param {TransformBeta} [transformBeta] The updated transform object. Must include \\"name\\", \\"type\\", and \\"attributes\\" fields, but \\"name\\" and \\"type\\" must not be modified.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n updateTransform: function (id, transformBeta, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'id' is not null or undefined\n (0, common_1.assertParamExists)('updateTransform', 'id', id);\n localVarPath = \"/transforms/{id}\"\n .replace(\"{\".concat(\"id\", \"}\"), encodeURIComponent(String(id)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'PUT' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n localVarHeaderParameter['Content-Type'] = 'application/json';\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(transformBeta, localVarRequestOptions, configuration);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n };\n};\nexports.TransformsBetaApiAxiosParamCreator = TransformsBetaApiAxiosParamCreator;\n/**\n * TransformsBetaApi - functional programming interface\n * @export\n */\nvar TransformsBetaApiFp = function (configuration) {\n var localVarAxiosParamCreator = (0, exports.TransformsBetaApiAxiosParamCreator)(configuration);\n return {\n /**\n * Creates a new transform object immediately. By default, the internal flag is set to false to indicate that this is a custom transform. Only SailPoint employees have the ability to create a transform with internal set to true. Newly created Transforms can be used in the Identity Profile mappings within the UI. A token with transform write authority is required to call this API.\n * @summary Create transform\n * @param {TransformBeta} transformBeta The transform to be created.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n createTransform: function (transformBeta, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.createTransform(transformBeta, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * Deletes the transform specified by the given ID. Attempting to delete a transform that is used in one or more Identity Profile mappings will result in an error. If this occurs, you must first remove the transform from all mappings before deleting the transform. A token with transform delete authority is required to call this API.\n * @summary Delete a transform\n * @param {string} id ID of the transform to delete\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n deleteTransform: function (id, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.deleteTransform(id, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This API returns the transform specified by the given ID. A token with transform read authority is required to call this API.\n * @summary Transform by ID\n * @param {string} id ID of the transform to retrieve\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getTransform: function (id, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.getTransform(id, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * Gets a list of all saved transform objects. A token with transforms-list read authority is required to call this API.\n * @summary List transforms\n * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {string} [name] Name of the transform to retrieve from the list.\n * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **internal**: *eq* **name**: *eq, sw*\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n listTransforms: function (offset, limit, count, name, filters, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.listTransforms(offset, limit, count, name, filters, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * Replaces the transform specified by the given ID with the transform provided in the request body. Only the \\\"attributes\\\" field is mutable. Attempting to change other properties (ex. \\\"name\\\" and \\\"type\\\") will result in an error. A token with transform write authority is required to call this API.\n * @summary Update a transform\n * @param {string} id ID of the transform to update\n * @param {TransformBeta} [transformBeta] The updated transform object. Must include \\"name\\", \\"type\\", and \\"attributes\\" fields, but \\"name\\" and \\"type\\" must not be modified.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n updateTransform: function (id, transformBeta, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.updateTransform(id, transformBeta, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n };\n};\nexports.TransformsBetaApiFp = TransformsBetaApiFp;\n/**\n * TransformsBetaApi - factory interface\n * @export\n */\nvar TransformsBetaApiFactory = function (configuration, basePath, axios) {\n var localVarFp = (0, exports.TransformsBetaApiFp)(configuration);\n return {\n /**\n * Creates a new transform object immediately. By default, the internal flag is set to false to indicate that this is a custom transform. Only SailPoint employees have the ability to create a transform with internal set to true. Newly created Transforms can be used in the Identity Profile mappings within the UI. A token with transform write authority is required to call this API.\n * @summary Create transform\n * @param {TransformBeta} transformBeta The transform to be created.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n createTransform: function (transformBeta, axiosOptions) {\n return localVarFp.createTransform(transformBeta, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * Deletes the transform specified by the given ID. Attempting to delete a transform that is used in one or more Identity Profile mappings will result in an error. If this occurs, you must first remove the transform from all mappings before deleting the transform. A token with transform delete authority is required to call this API.\n * @summary Delete a transform\n * @param {string} id ID of the transform to delete\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n deleteTransform: function (id, axiosOptions) {\n return localVarFp.deleteTransform(id, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This API returns the transform specified by the given ID. A token with transform read authority is required to call this API.\n * @summary Transform by ID\n * @param {string} id ID of the transform to retrieve\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getTransform: function (id, axiosOptions) {\n return localVarFp.getTransform(id, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * Gets a list of all saved transform objects. A token with transforms-list read authority is required to call this API.\n * @summary List transforms\n * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {string} [name] Name of the transform to retrieve from the list.\n * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **internal**: *eq* **name**: *eq, sw*\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n listTransforms: function (offset, limit, count, name, filters, axiosOptions) {\n return localVarFp.listTransforms(offset, limit, count, name, filters, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * Replaces the transform specified by the given ID with the transform provided in the request body. Only the \\\"attributes\\\" field is mutable. Attempting to change other properties (ex. \\\"name\\\" and \\\"type\\\") will result in an error. A token with transform write authority is required to call this API.\n * @summary Update a transform\n * @param {string} id ID of the transform to update\n * @param {TransformBeta} [transformBeta] The updated transform object. Must include \\"name\\", \\"type\\", and \\"attributes\\" fields, but \\"name\\" and \\"type\\" must not be modified.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n updateTransform: function (id, transformBeta, axiosOptions) {\n return localVarFp.updateTransform(id, transformBeta, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n };\n};\nexports.TransformsBetaApiFactory = TransformsBetaApiFactory;\n/**\n * TransformsBetaApi - object-oriented interface\n * @export\n * @class TransformsBetaApi\n * @extends {BaseAPI}\n */\nvar TransformsBetaApi = /** @class */ (function (_super) {\n __extends(TransformsBetaApi, _super);\n function TransformsBetaApi() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n * Creates a new transform object immediately. By default, the internal flag is set to false to indicate that this is a custom transform. Only SailPoint employees have the ability to create a transform with internal set to true. Newly created Transforms can be used in the Identity Profile mappings within the UI. A token with transform write authority is required to call this API.\n * @summary Create transform\n * @param {TransformsBetaApiCreateTransformRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof TransformsBetaApi\n */\n TransformsBetaApi.prototype.createTransform = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.TransformsBetaApiFp)(this.configuration).createTransform(requestParameters.transformBeta, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * Deletes the transform specified by the given ID. Attempting to delete a transform that is used in one or more Identity Profile mappings will result in an error. If this occurs, you must first remove the transform from all mappings before deleting the transform. A token with transform delete authority is required to call this API.\n * @summary Delete a transform\n * @param {TransformsBetaApiDeleteTransformRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof TransformsBetaApi\n */\n TransformsBetaApi.prototype.deleteTransform = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.TransformsBetaApiFp)(this.configuration).deleteTransform(requestParameters.id, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This API returns the transform specified by the given ID. A token with transform read authority is required to call this API.\n * @summary Transform by ID\n * @param {TransformsBetaApiGetTransformRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof TransformsBetaApi\n */\n TransformsBetaApi.prototype.getTransform = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.TransformsBetaApiFp)(this.configuration).getTransform(requestParameters.id, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * Gets a list of all saved transform objects. A token with transforms-list read authority is required to call this API.\n * @summary List transforms\n * @param {TransformsBetaApiListTransformsRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof TransformsBetaApi\n */\n TransformsBetaApi.prototype.listTransforms = function (requestParameters, axiosOptions) {\n var _this = this;\n if (requestParameters === void 0) { requestParameters = {}; }\n return (0, exports.TransformsBetaApiFp)(this.configuration).listTransforms(requestParameters.offset, requestParameters.limit, requestParameters.count, requestParameters.name, requestParameters.filters, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * Replaces the transform specified by the given ID with the transform provided in the request body. Only the \\\"attributes\\\" field is mutable. Attempting to change other properties (ex. \\\"name\\\" and \\\"type\\\") will result in an error. A token with transform write authority is required to call this API.\n * @summary Update a transform\n * @param {TransformsBetaApiUpdateTransformRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof TransformsBetaApi\n */\n TransformsBetaApi.prototype.updateTransform = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.TransformsBetaApiFp)(this.configuration).updateTransform(requestParameters.id, requestParameters.transformBeta, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n return TransformsBetaApi;\n}(base_1.BaseAPI));\nexports.TransformsBetaApi = TransformsBetaApi;\n/**\n * TriggersBetaApi - axios parameter creator\n * @export\n */\nvar TriggersBetaApiAxiosParamCreator = function (configuration) {\n var _this = this;\n return {\n /**\n * Completes an invocation to a REQUEST_RESPONSE type trigger.\n * @summary Complete Trigger Invocation\n * @param {string} id The ID of the invocation to complete.\n * @param {CompleteInvocationBeta} completeInvocationBeta\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n completeTriggerInvocation: function (id, completeInvocationBeta, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'id' is not null or undefined\n (0, common_1.assertParamExists)('completeTriggerInvocation', 'id', id);\n // verify required parameter 'completeInvocationBeta' is not null or undefined\n (0, common_1.assertParamExists)('completeTriggerInvocation', 'completeInvocationBeta', completeInvocationBeta);\n localVarPath = \"/trigger-invocations/{id}/complete\"\n .replace(\"{\".concat(\"id\", \"}\"), encodeURIComponent(String(id)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n localVarHeaderParameter['Content-Type'] = 'application/json';\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(completeInvocationBeta, localVarRequestOptions, configuration);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This API creates a new subscription to a trigger and defines trigger invocation details. The type of subscription determines which config object is required: * HTTP subscriptions require httpConfig * EventBridge subscriptions require eventBridgeConfig\n * @summary Create a Subscription\n * @param {SubscriptionPostRequestBeta} subscriptionPostRequestBeta\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n createSubscription: function (subscriptionPostRequestBeta, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'subscriptionPostRequestBeta' is not null or undefined\n (0, common_1.assertParamExists)('createSubscription', 'subscriptionPostRequestBeta', subscriptionPostRequestBeta);\n localVarPath = \"/trigger-subscriptions\";\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n localVarHeaderParameter['Content-Type'] = 'application/json';\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(subscriptionPostRequestBeta, localVarRequestOptions, configuration);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * Deletes an existing subscription to a trigger.\n * @summary Delete a Subscription\n * @param {string} id Subscription ID\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n deleteSubscription: function (id, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'id' is not null or undefined\n (0, common_1.assertParamExists)('deleteSubscription', 'id', id);\n localVarPath = \"/trigger-subscriptions/{id}\"\n .replace(\"{\".concat(\"id\", \"}\"), encodeURIComponent(String(id)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'DELETE' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * Gets a list of all trigger subscriptions.\n * @summary List Subscriptions\n * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **id**: *eq* **triggerId**: *eq* **type**: *eq, le*\n * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **triggerId, triggerName**\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n listSubscriptions: function (limit, offset, count, filters, sorters, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n localVarPath = \"/trigger-subscriptions\";\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n if (limit !== undefined) {\n localVarQueryParameter['limit'] = limit;\n }\n if (offset !== undefined) {\n localVarQueryParameter['offset'] = offset;\n }\n if (count !== undefined) {\n localVarQueryParameter['count'] = count;\n }\n if (filters !== undefined) {\n localVarQueryParameter['filters'] = filters;\n }\n if (sorters !== undefined) {\n localVarQueryParameter['sorters'] = sorters;\n }\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * Gets a list of latest invocation statuses. Statuses of successful invocations are available for up to 24 hours. Statuses of failed invocations are available for up to 48 hours. This endpoint may only fetch up to 2000 invocations, and should not be treated as a representation of the full history of invocations.\n * @summary List Latest Invocation Statuses\n * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **triggerId**: *eq* **subscriptionId**: *eq*\n * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **triggerId, subscriptionName, created, completed**\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n listTriggerInvocationStatus: function (limit, offset, count, filters, sorters, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n localVarPath = \"/trigger-invocations/status\";\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n if (limit !== undefined) {\n localVarQueryParameter['limit'] = limit;\n }\n if (offset !== undefined) {\n localVarQueryParameter['offset'] = offset;\n }\n if (count !== undefined) {\n localVarQueryParameter['count'] = count;\n }\n if (filters !== undefined) {\n localVarQueryParameter['filters'] = filters;\n }\n if (sorters !== undefined) {\n localVarQueryParameter['sorters'] = sorters;\n }\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * Gets a list of triggers that are available in the tenant.\n * @summary List Triggers\n * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **id**: *eq, ge, le*\n * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **id, name**\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n listTriggers: function (limit, offset, count, filters, sorters, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n localVarPath = \"/triggers\";\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n if (limit !== undefined) {\n localVarQueryParameter['limit'] = limit;\n }\n if (offset !== undefined) {\n localVarQueryParameter['offset'] = offset;\n }\n if (count !== undefined) {\n localVarQueryParameter['count'] = count;\n }\n if (filters !== undefined) {\n localVarQueryParameter['filters'] = filters;\n }\n if (sorters !== undefined) {\n localVarQueryParameter['sorters'] = sorters;\n }\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This API updates a trigger subscription in IdentityNow, using a set of instructions to modify a subscription partially. The following fields are patchable: **name**, **description**, **enabled**, **type**, **filter**, **responseDeadline**, **httpConfig**, **eventBridgeConfig**, **workflowConfig**\n * @summary Patch a Subscription\n * @param {string} id ID of the Subscription to patch\n * @param {Array} subscriptionPatchRequestInnerBeta\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n patchSubscription: function (id, subscriptionPatchRequestInnerBeta, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'id' is not null or undefined\n (0, common_1.assertParamExists)('patchSubscription', 'id', id);\n // verify required parameter 'subscriptionPatchRequestInnerBeta' is not null or undefined\n (0, common_1.assertParamExists)('patchSubscription', 'subscriptionPatchRequestInnerBeta', subscriptionPatchRequestInnerBeta);\n localVarPath = \"/trigger-subscriptions/{id}\"\n .replace(\"{\".concat(\"id\", \"}\"), encodeURIComponent(String(id)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'PATCH' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n localVarHeaderParameter['Content-Type'] = 'application/json-patch+json';\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(subscriptionPatchRequestInnerBeta, localVarRequestOptions, configuration);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * Initiate a test event for all subscribers of the specified event trigger. If there are no subscribers to the specified trigger in the tenant, then no test event will be sent.\n * @summary Start a Test Invocation\n * @param {TestInvocationBeta} testInvocationBeta\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n startTestTriggerInvocation: function (testInvocationBeta, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'testInvocationBeta' is not null or undefined\n (0, common_1.assertParamExists)('startTestTriggerInvocation', 'testInvocationBeta', testInvocationBeta);\n localVarPath = \"/trigger-invocations/test\";\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n localVarHeaderParameter['Content-Type'] = 'application/json';\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(testInvocationBeta, localVarRequestOptions, configuration);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * Validates a JSONPath filter expression against a provided mock input. Request requires a security scope of:\n * @summary Validate a Subscription Filter\n * @param {ValidateFilterInputDtoBeta} validateFilterInputDtoBeta\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n testSubscriptionFilter: function (validateFilterInputDtoBeta, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'validateFilterInputDtoBeta' is not null or undefined\n (0, common_1.assertParamExists)('testSubscriptionFilter', 'validateFilterInputDtoBeta', validateFilterInputDtoBeta);\n localVarPath = \"/trigger-subscriptions/validate-filter\";\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n localVarHeaderParameter['Content-Type'] = 'application/json';\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(validateFilterInputDtoBeta, localVarRequestOptions, configuration);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This API updates a trigger subscription in IdentityNow, using a full object representation. In other words, the existing Subscription is completely replaced. The following fields are immutable: * id * triggerId Attempts to modify these fields result in 400.\n * @summary Update a Subscription\n * @param {string} id Subscription ID\n * @param {SubscriptionPutRequestBeta} subscriptionPutRequestBeta\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n updateSubscription: function (id, subscriptionPutRequestBeta, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'id' is not null or undefined\n (0, common_1.assertParamExists)('updateSubscription', 'id', id);\n // verify required parameter 'subscriptionPutRequestBeta' is not null or undefined\n (0, common_1.assertParamExists)('updateSubscription', 'subscriptionPutRequestBeta', subscriptionPutRequestBeta);\n localVarPath = \"/trigger-subscriptions/{id}\"\n .replace(\"{\".concat(\"id\", \"}\"), encodeURIComponent(String(id)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'PUT' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n localVarHeaderParameter['Content-Type'] = 'application/json';\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(subscriptionPutRequestBeta, localVarRequestOptions, configuration);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n };\n};\nexports.TriggersBetaApiAxiosParamCreator = TriggersBetaApiAxiosParamCreator;\n/**\n * TriggersBetaApi - functional programming interface\n * @export\n */\nvar TriggersBetaApiFp = function (configuration) {\n var localVarAxiosParamCreator = (0, exports.TriggersBetaApiAxiosParamCreator)(configuration);\n return {\n /**\n * Completes an invocation to a REQUEST_RESPONSE type trigger.\n * @summary Complete Trigger Invocation\n * @param {string} id The ID of the invocation to complete.\n * @param {CompleteInvocationBeta} completeInvocationBeta\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n completeTriggerInvocation: function (id, completeInvocationBeta, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.completeTriggerInvocation(id, completeInvocationBeta, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This API creates a new subscription to a trigger and defines trigger invocation details. The type of subscription determines which config object is required: * HTTP subscriptions require httpConfig * EventBridge subscriptions require eventBridgeConfig\n * @summary Create a Subscription\n * @param {SubscriptionPostRequestBeta} subscriptionPostRequestBeta\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n createSubscription: function (subscriptionPostRequestBeta, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.createSubscription(subscriptionPostRequestBeta, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * Deletes an existing subscription to a trigger.\n * @summary Delete a Subscription\n * @param {string} id Subscription ID\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n deleteSubscription: function (id, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.deleteSubscription(id, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * Gets a list of all trigger subscriptions.\n * @summary List Subscriptions\n * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **id**: *eq* **triggerId**: *eq* **type**: *eq, le*\n * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **triggerId, triggerName**\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n listSubscriptions: function (limit, offset, count, filters, sorters, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.listSubscriptions(limit, offset, count, filters, sorters, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * Gets a list of latest invocation statuses. Statuses of successful invocations are available for up to 24 hours. Statuses of failed invocations are available for up to 48 hours. This endpoint may only fetch up to 2000 invocations, and should not be treated as a representation of the full history of invocations.\n * @summary List Latest Invocation Statuses\n * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **triggerId**: *eq* **subscriptionId**: *eq*\n * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **triggerId, subscriptionName, created, completed**\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n listTriggerInvocationStatus: function (limit, offset, count, filters, sorters, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.listTriggerInvocationStatus(limit, offset, count, filters, sorters, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * Gets a list of triggers that are available in the tenant.\n * @summary List Triggers\n * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **id**: *eq, ge, le*\n * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **id, name**\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n listTriggers: function (limit, offset, count, filters, sorters, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.listTriggers(limit, offset, count, filters, sorters, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This API updates a trigger subscription in IdentityNow, using a set of instructions to modify a subscription partially. The following fields are patchable: **name**, **description**, **enabled**, **type**, **filter**, **responseDeadline**, **httpConfig**, **eventBridgeConfig**, **workflowConfig**\n * @summary Patch a Subscription\n * @param {string} id ID of the Subscription to patch\n * @param {Array} subscriptionPatchRequestInnerBeta\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n patchSubscription: function (id, subscriptionPatchRequestInnerBeta, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.patchSubscription(id, subscriptionPatchRequestInnerBeta, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * Initiate a test event for all subscribers of the specified event trigger. If there are no subscribers to the specified trigger in the tenant, then no test event will be sent.\n * @summary Start a Test Invocation\n * @param {TestInvocationBeta} testInvocationBeta\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n startTestTriggerInvocation: function (testInvocationBeta, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.startTestTriggerInvocation(testInvocationBeta, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * Validates a JSONPath filter expression against a provided mock input. Request requires a security scope of:\n * @summary Validate a Subscription Filter\n * @param {ValidateFilterInputDtoBeta} validateFilterInputDtoBeta\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n testSubscriptionFilter: function (validateFilterInputDtoBeta, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.testSubscriptionFilter(validateFilterInputDtoBeta, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This API updates a trigger subscription in IdentityNow, using a full object representation. In other words, the existing Subscription is completely replaced. The following fields are immutable: * id * triggerId Attempts to modify these fields result in 400.\n * @summary Update a Subscription\n * @param {string} id Subscription ID\n * @param {SubscriptionPutRequestBeta} subscriptionPutRequestBeta\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n updateSubscription: function (id, subscriptionPutRequestBeta, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.updateSubscription(id, subscriptionPutRequestBeta, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n };\n};\nexports.TriggersBetaApiFp = TriggersBetaApiFp;\n/**\n * TriggersBetaApi - factory interface\n * @export\n */\nvar TriggersBetaApiFactory = function (configuration, basePath, axios) {\n var localVarFp = (0, exports.TriggersBetaApiFp)(configuration);\n return {\n /**\n * Completes an invocation to a REQUEST_RESPONSE type trigger.\n * @summary Complete Trigger Invocation\n * @param {string} id The ID of the invocation to complete.\n * @param {CompleteInvocationBeta} completeInvocationBeta\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n completeTriggerInvocation: function (id, completeInvocationBeta, axiosOptions) {\n return localVarFp.completeTriggerInvocation(id, completeInvocationBeta, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This API creates a new subscription to a trigger and defines trigger invocation details. The type of subscription determines which config object is required: * HTTP subscriptions require httpConfig * EventBridge subscriptions require eventBridgeConfig\n * @summary Create a Subscription\n * @param {SubscriptionPostRequestBeta} subscriptionPostRequestBeta\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n createSubscription: function (subscriptionPostRequestBeta, axiosOptions) {\n return localVarFp.createSubscription(subscriptionPostRequestBeta, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * Deletes an existing subscription to a trigger.\n * @summary Delete a Subscription\n * @param {string} id Subscription ID\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n deleteSubscription: function (id, axiosOptions) {\n return localVarFp.deleteSubscription(id, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * Gets a list of all trigger subscriptions.\n * @summary List Subscriptions\n * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **id**: *eq* **triggerId**: *eq* **type**: *eq, le*\n * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **triggerId, triggerName**\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n listSubscriptions: function (limit, offset, count, filters, sorters, axiosOptions) {\n return localVarFp.listSubscriptions(limit, offset, count, filters, sorters, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * Gets a list of latest invocation statuses. Statuses of successful invocations are available for up to 24 hours. Statuses of failed invocations are available for up to 48 hours. This endpoint may only fetch up to 2000 invocations, and should not be treated as a representation of the full history of invocations.\n * @summary List Latest Invocation Statuses\n * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **triggerId**: *eq* **subscriptionId**: *eq*\n * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **triggerId, subscriptionName, created, completed**\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n listTriggerInvocationStatus: function (limit, offset, count, filters, sorters, axiosOptions) {\n return localVarFp.listTriggerInvocationStatus(limit, offset, count, filters, sorters, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * Gets a list of triggers that are available in the tenant.\n * @summary List Triggers\n * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **id**: *eq, ge, le*\n * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **id, name**\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n listTriggers: function (limit, offset, count, filters, sorters, axiosOptions) {\n return localVarFp.listTriggers(limit, offset, count, filters, sorters, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This API updates a trigger subscription in IdentityNow, using a set of instructions to modify a subscription partially. The following fields are patchable: **name**, **description**, **enabled**, **type**, **filter**, **responseDeadline**, **httpConfig**, **eventBridgeConfig**, **workflowConfig**\n * @summary Patch a Subscription\n * @param {string} id ID of the Subscription to patch\n * @param {Array} subscriptionPatchRequestInnerBeta\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n patchSubscription: function (id, subscriptionPatchRequestInnerBeta, axiosOptions) {\n return localVarFp.patchSubscription(id, subscriptionPatchRequestInnerBeta, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * Initiate a test event for all subscribers of the specified event trigger. If there are no subscribers to the specified trigger in the tenant, then no test event will be sent.\n * @summary Start a Test Invocation\n * @param {TestInvocationBeta} testInvocationBeta\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n startTestTriggerInvocation: function (testInvocationBeta, axiosOptions) {\n return localVarFp.startTestTriggerInvocation(testInvocationBeta, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * Validates a JSONPath filter expression against a provided mock input. Request requires a security scope of:\n * @summary Validate a Subscription Filter\n * @param {ValidateFilterInputDtoBeta} validateFilterInputDtoBeta\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n testSubscriptionFilter: function (validateFilterInputDtoBeta, axiosOptions) {\n return localVarFp.testSubscriptionFilter(validateFilterInputDtoBeta, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This API updates a trigger subscription in IdentityNow, using a full object representation. In other words, the existing Subscription is completely replaced. The following fields are immutable: * id * triggerId Attempts to modify these fields result in 400.\n * @summary Update a Subscription\n * @param {string} id Subscription ID\n * @param {SubscriptionPutRequestBeta} subscriptionPutRequestBeta\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n updateSubscription: function (id, subscriptionPutRequestBeta, axiosOptions) {\n return localVarFp.updateSubscription(id, subscriptionPutRequestBeta, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n };\n};\nexports.TriggersBetaApiFactory = TriggersBetaApiFactory;\n/**\n * TriggersBetaApi - object-oriented interface\n * @export\n * @class TriggersBetaApi\n * @extends {BaseAPI}\n */\nvar TriggersBetaApi = /** @class */ (function (_super) {\n __extends(TriggersBetaApi, _super);\n function TriggersBetaApi() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n * Completes an invocation to a REQUEST_RESPONSE type trigger.\n * @summary Complete Trigger Invocation\n * @param {TriggersBetaApiCompleteTriggerInvocationRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof TriggersBetaApi\n */\n TriggersBetaApi.prototype.completeTriggerInvocation = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.TriggersBetaApiFp)(this.configuration).completeTriggerInvocation(requestParameters.id, requestParameters.completeInvocationBeta, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This API creates a new subscription to a trigger and defines trigger invocation details. The type of subscription determines which config object is required: * HTTP subscriptions require httpConfig * EventBridge subscriptions require eventBridgeConfig\n * @summary Create a Subscription\n * @param {TriggersBetaApiCreateSubscriptionRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof TriggersBetaApi\n */\n TriggersBetaApi.prototype.createSubscription = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.TriggersBetaApiFp)(this.configuration).createSubscription(requestParameters.subscriptionPostRequestBeta, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * Deletes an existing subscription to a trigger.\n * @summary Delete a Subscription\n * @param {TriggersBetaApiDeleteSubscriptionRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof TriggersBetaApi\n */\n TriggersBetaApi.prototype.deleteSubscription = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.TriggersBetaApiFp)(this.configuration).deleteSubscription(requestParameters.id, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * Gets a list of all trigger subscriptions.\n * @summary List Subscriptions\n * @param {TriggersBetaApiListSubscriptionsRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof TriggersBetaApi\n */\n TriggersBetaApi.prototype.listSubscriptions = function (requestParameters, axiosOptions) {\n var _this = this;\n if (requestParameters === void 0) { requestParameters = {}; }\n return (0, exports.TriggersBetaApiFp)(this.configuration).listSubscriptions(requestParameters.limit, requestParameters.offset, requestParameters.count, requestParameters.filters, requestParameters.sorters, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * Gets a list of latest invocation statuses. Statuses of successful invocations are available for up to 24 hours. Statuses of failed invocations are available for up to 48 hours. This endpoint may only fetch up to 2000 invocations, and should not be treated as a representation of the full history of invocations.\n * @summary List Latest Invocation Statuses\n * @param {TriggersBetaApiListTriggerInvocationStatusRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof TriggersBetaApi\n */\n TriggersBetaApi.prototype.listTriggerInvocationStatus = function (requestParameters, axiosOptions) {\n var _this = this;\n if (requestParameters === void 0) { requestParameters = {}; }\n return (0, exports.TriggersBetaApiFp)(this.configuration).listTriggerInvocationStatus(requestParameters.limit, requestParameters.offset, requestParameters.count, requestParameters.filters, requestParameters.sorters, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * Gets a list of triggers that are available in the tenant.\n * @summary List Triggers\n * @param {TriggersBetaApiListTriggersRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof TriggersBetaApi\n */\n TriggersBetaApi.prototype.listTriggers = function (requestParameters, axiosOptions) {\n var _this = this;\n if (requestParameters === void 0) { requestParameters = {}; }\n return (0, exports.TriggersBetaApiFp)(this.configuration).listTriggers(requestParameters.limit, requestParameters.offset, requestParameters.count, requestParameters.filters, requestParameters.sorters, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This API updates a trigger subscription in IdentityNow, using a set of instructions to modify a subscription partially. The following fields are patchable: **name**, **description**, **enabled**, **type**, **filter**, **responseDeadline**, **httpConfig**, **eventBridgeConfig**, **workflowConfig**\n * @summary Patch a Subscription\n * @param {TriggersBetaApiPatchSubscriptionRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof TriggersBetaApi\n */\n TriggersBetaApi.prototype.patchSubscription = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.TriggersBetaApiFp)(this.configuration).patchSubscription(requestParameters.id, requestParameters.subscriptionPatchRequestInnerBeta, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * Initiate a test event for all subscribers of the specified event trigger. If there are no subscribers to the specified trigger in the tenant, then no test event will be sent.\n * @summary Start a Test Invocation\n * @param {TriggersBetaApiStartTestTriggerInvocationRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof TriggersBetaApi\n */\n TriggersBetaApi.prototype.startTestTriggerInvocation = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.TriggersBetaApiFp)(this.configuration).startTestTriggerInvocation(requestParameters.testInvocationBeta, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * Validates a JSONPath filter expression against a provided mock input. Request requires a security scope of:\n * @summary Validate a Subscription Filter\n * @param {TriggersBetaApiTestSubscriptionFilterRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof TriggersBetaApi\n */\n TriggersBetaApi.prototype.testSubscriptionFilter = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.TriggersBetaApiFp)(this.configuration).testSubscriptionFilter(requestParameters.validateFilterInputDtoBeta, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This API updates a trigger subscription in IdentityNow, using a full object representation. In other words, the existing Subscription is completely replaced. The following fields are immutable: * id * triggerId Attempts to modify these fields result in 400.\n * @summary Update a Subscription\n * @param {TriggersBetaApiUpdateSubscriptionRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof TriggersBetaApi\n */\n TriggersBetaApi.prototype.updateSubscription = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.TriggersBetaApiFp)(this.configuration).updateSubscription(requestParameters.id, requestParameters.subscriptionPutRequestBeta, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n return TriggersBetaApi;\n}(base_1.BaseAPI));\nexports.TriggersBetaApi = TriggersBetaApi;\n/**\n * WorkItemsBetaApi - axios parameter creator\n * @export\n */\nvar WorkItemsBetaApiAxiosParamCreator = function (configuration) {\n var _this = this;\n return {\n /**\n * This API approves an Approval Item. Either an admin, or the owning/current user must make this request.\n * @summary Approve an Approval Item\n * @param {string} id The ID of the work item\n * @param {string} approvalItemId The ID of the approval item.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n approveApprovalItem: function (id, approvalItemId, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'id' is not null or undefined\n (0, common_1.assertParamExists)('approveApprovalItem', 'id', id);\n // verify required parameter 'approvalItemId' is not null or undefined\n (0, common_1.assertParamExists)('approveApprovalItem', 'approvalItemId', approvalItemId);\n localVarPath = \"/work-items/{id}/approve/{approvalItemId}\"\n .replace(\"{\".concat(\"id\", \"}\"), encodeURIComponent(String(id)))\n .replace(\"{\".concat(\"approvalItemId\", \"}\"), encodeURIComponent(String(approvalItemId)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This API bulk approves Approval Items. Either an admin, or the owning/current user must make this request.\n * @summary Bulk approve Approval Items\n * @param {string} id The ID of the work item\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n approveApprovalItemsInBulk: function (id, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'id' is not null or undefined\n (0, common_1.assertParamExists)('approveApprovalItemsInBulk', 'id', id);\n localVarPath = \"/work-items/bulk-approve/{id}\"\n .replace(\"{\".concat(\"id\", \"}\"), encodeURIComponent(String(id)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This API completes a work item. Either an admin, or the owning/current user must make this request.\n * @summary Complete a Work Item\n * @param {string} id The ID of the work item\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n completeWorkItem: function (id, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'id' is not null or undefined\n (0, common_1.assertParamExists)('completeWorkItem', 'id', id);\n localVarPath = \"/work-items/{id}\"\n .replace(\"{\".concat(\"id\", \"}\"), encodeURIComponent(String(id)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This API forwards a work item to a new owner. Either an admin, or the owning/current user must make this request.\n * @summary Forward a Work Item\n * @param {string} id The ID of the work item\n * @param {WorkItemForwardBeta} workItemForwardBeta\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n forwardWorkItem: function (id, workItemForwardBeta, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'id' is not null or undefined\n (0, common_1.assertParamExists)('forwardWorkItem', 'id', id);\n // verify required parameter 'workItemForwardBeta' is not null or undefined\n (0, common_1.assertParamExists)('forwardWorkItem', 'workItemForwardBeta', workItemForwardBeta);\n localVarPath = \"/work-items/{id}/forward\"\n .replace(\"{\".concat(\"id\", \"}\"), encodeURIComponent(String(id)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n localVarHeaderParameter['Content-Type'] = 'application/json';\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(workItemForwardBeta, localVarRequestOptions, configuration);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This gets a collection of completed work items belonging to either the specified user(admin required), or the current user.\n * @summary Completed Work Items\n * @param {string} [ownerId] The id of the owner of the work item list being requested. Either an admin, or the owning/current user must make this request.\n * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getCompletedWorkItems: function (ownerId, limit, offset, count, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n localVarPath = \"/work-items/completed\";\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n if (ownerId !== undefined) {\n localVarQueryParameter['ownerId'] = ownerId;\n }\n if (limit !== undefined) {\n localVarQueryParameter['limit'] = limit;\n }\n if (offset !== undefined) {\n localVarQueryParameter['offset'] = offset;\n }\n if (count !== undefined) {\n localVarQueryParameter['count'] = count;\n }\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This gets a count of completed work items belonging to either the specified user(admin required), or the current user.\n * @summary Count Completed Work Items\n * @param {string} [ownerId] ID of the work item owner.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getCountCompletedWorkItems: function (ownerId, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n localVarPath = \"/work-items/count/completed\";\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n if (ownerId !== undefined) {\n localVarQueryParameter['ownerId'] = ownerId;\n }\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This gets a count of work items belonging to either the specified user(admin required), or the current user.\n * @summary Count Work Items\n * @param {string} [ownerId] ID of the work item owner.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getCountWorkItems: function (ownerId, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n localVarPath = \"/work-items/count\";\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n if (ownerId !== undefined) {\n localVarQueryParameter['ownerId'] = ownerId;\n }\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This gets the details of a Work Item belonging to either the specified user(admin required), or the current user.\n * @summary Get a Work Item\n * @param {string} id ID of the work item.\n * @param {string} [ownerId] ID of the work item owner.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getWorkItem: function (id, ownerId, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'id' is not null or undefined\n (0, common_1.assertParamExists)('getWorkItem', 'id', id);\n localVarPath = \"/work-items/{id}\"\n .replace(\"{\".concat(\"id\", \"}\"), encodeURIComponent(String(id)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n if (ownerId !== undefined) {\n localVarQueryParameter['ownerId'] = ownerId;\n }\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This gets a summary of work items belonging to either the specified user(admin required), or the current user.\n * @summary Work Items Summary\n * @param {string} [ownerId] ID of the work item owner.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getWorkItemsSummary: function (ownerId, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n localVarPath = \"/work-items/summary\";\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n if (ownerId !== undefined) {\n localVarQueryParameter['ownerId'] = ownerId;\n }\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This gets a collection of work items belonging to either the specified user(admin required), or the current user.\n * @summary List Work Items\n * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {string} [ownerId] ID of the work item owner.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n listWorkItems: function (limit, offset, count, ownerId, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n localVarPath = \"/work-items\";\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n if (limit !== undefined) {\n localVarQueryParameter['limit'] = limit;\n }\n if (offset !== undefined) {\n localVarQueryParameter['offset'] = offset;\n }\n if (count !== undefined) {\n localVarQueryParameter['count'] = count;\n }\n if (ownerId !== undefined) {\n localVarQueryParameter['ownerId'] = ownerId;\n }\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This API rejects an Approval Item. Either an admin, or the owning/current user must make this request.\n * @summary Reject an Approval Item\n * @param {string} id The ID of the work item\n * @param {string} approvalItemId The ID of the approval item.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n rejectApprovalItem: function (id, approvalItemId, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'id' is not null or undefined\n (0, common_1.assertParamExists)('rejectApprovalItem', 'id', id);\n // verify required parameter 'approvalItemId' is not null or undefined\n (0, common_1.assertParamExists)('rejectApprovalItem', 'approvalItemId', approvalItemId);\n localVarPath = \"/work-items/{id}/reject/{approvalItemId}\"\n .replace(\"{\".concat(\"id\", \"}\"), encodeURIComponent(String(id)))\n .replace(\"{\".concat(\"approvalItemId\", \"}\"), encodeURIComponent(String(approvalItemId)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This API bulk rejects Approval Items. Either an admin, or the owning/current user must make this request.\n * @summary Bulk reject Approval Items\n * @param {string} id The ID of the work item\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n rejectApprovalItemsInBulk: function (id, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'id' is not null or undefined\n (0, common_1.assertParamExists)('rejectApprovalItemsInBulk', 'id', id);\n localVarPath = \"/work-items/bulk-reject/{id}\"\n .replace(\"{\".concat(\"id\", \"}\"), encodeURIComponent(String(id)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This API submits account selections. Either an admin, or the owning/current user must make this request.\n * @summary Submit Account Selections\n * @param {string} id The ID of the work item\n * @param {{ [key: string]: any; }} requestBody Account Selection Data map, keyed on fieldName\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n submitAccountSelection: function (id, requestBody, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'id' is not null or undefined\n (0, common_1.assertParamExists)('submitAccountSelection', 'id', id);\n // verify required parameter 'requestBody' is not null or undefined\n (0, common_1.assertParamExists)('submitAccountSelection', 'requestBody', requestBody);\n localVarPath = \"/work-items/{id}/submit-account-selection\"\n .replace(\"{\".concat(\"id\", \"}\"), encodeURIComponent(String(id)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n localVarHeaderParameter['Content-Type'] = 'application/json';\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(requestBody, localVarRequestOptions, configuration);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n };\n};\nexports.WorkItemsBetaApiAxiosParamCreator = WorkItemsBetaApiAxiosParamCreator;\n/**\n * WorkItemsBetaApi - functional programming interface\n * @export\n */\nvar WorkItemsBetaApiFp = function (configuration) {\n var localVarAxiosParamCreator = (0, exports.WorkItemsBetaApiAxiosParamCreator)(configuration);\n return {\n /**\n * This API approves an Approval Item. Either an admin, or the owning/current user must make this request.\n * @summary Approve an Approval Item\n * @param {string} id The ID of the work item\n * @param {string} approvalItemId The ID of the approval item.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n approveApprovalItem: function (id, approvalItemId, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.approveApprovalItem(id, approvalItemId, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This API bulk approves Approval Items. Either an admin, or the owning/current user must make this request.\n * @summary Bulk approve Approval Items\n * @param {string} id The ID of the work item\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n approveApprovalItemsInBulk: function (id, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.approveApprovalItemsInBulk(id, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This API completes a work item. Either an admin, or the owning/current user must make this request.\n * @summary Complete a Work Item\n * @param {string} id The ID of the work item\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n completeWorkItem: function (id, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.completeWorkItem(id, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This API forwards a work item to a new owner. Either an admin, or the owning/current user must make this request.\n * @summary Forward a Work Item\n * @param {string} id The ID of the work item\n * @param {WorkItemForwardBeta} workItemForwardBeta\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n forwardWorkItem: function (id, workItemForwardBeta, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.forwardWorkItem(id, workItemForwardBeta, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This gets a collection of completed work items belonging to either the specified user(admin required), or the current user.\n * @summary Completed Work Items\n * @param {string} [ownerId] The id of the owner of the work item list being requested. Either an admin, or the owning/current user must make this request.\n * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getCompletedWorkItems: function (ownerId, limit, offset, count, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.getCompletedWorkItems(ownerId, limit, offset, count, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This gets a count of completed work items belonging to either the specified user(admin required), or the current user.\n * @summary Count Completed Work Items\n * @param {string} [ownerId] ID of the work item owner.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getCountCompletedWorkItems: function (ownerId, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.getCountCompletedWorkItems(ownerId, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This gets a count of work items belonging to either the specified user(admin required), or the current user.\n * @summary Count Work Items\n * @param {string} [ownerId] ID of the work item owner.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getCountWorkItems: function (ownerId, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.getCountWorkItems(ownerId, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This gets the details of a Work Item belonging to either the specified user(admin required), or the current user.\n * @summary Get a Work Item\n * @param {string} id ID of the work item.\n * @param {string} [ownerId] ID of the work item owner.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getWorkItem: function (id, ownerId, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.getWorkItem(id, ownerId, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This gets a summary of work items belonging to either the specified user(admin required), or the current user.\n * @summary Work Items Summary\n * @param {string} [ownerId] ID of the work item owner.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getWorkItemsSummary: function (ownerId, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.getWorkItemsSummary(ownerId, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This gets a collection of work items belonging to either the specified user(admin required), or the current user.\n * @summary List Work Items\n * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {string} [ownerId] ID of the work item owner.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n listWorkItems: function (limit, offset, count, ownerId, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.listWorkItems(limit, offset, count, ownerId, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This API rejects an Approval Item. Either an admin, or the owning/current user must make this request.\n * @summary Reject an Approval Item\n * @param {string} id The ID of the work item\n * @param {string} approvalItemId The ID of the approval item.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n rejectApprovalItem: function (id, approvalItemId, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.rejectApprovalItem(id, approvalItemId, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This API bulk rejects Approval Items. Either an admin, or the owning/current user must make this request.\n * @summary Bulk reject Approval Items\n * @param {string} id The ID of the work item\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n rejectApprovalItemsInBulk: function (id, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.rejectApprovalItemsInBulk(id, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This API submits account selections. Either an admin, or the owning/current user must make this request.\n * @summary Submit Account Selections\n * @param {string} id The ID of the work item\n * @param {{ [key: string]: any; }} requestBody Account Selection Data map, keyed on fieldName\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n submitAccountSelection: function (id, requestBody, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.submitAccountSelection(id, requestBody, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n };\n};\nexports.WorkItemsBetaApiFp = WorkItemsBetaApiFp;\n/**\n * WorkItemsBetaApi - factory interface\n * @export\n */\nvar WorkItemsBetaApiFactory = function (configuration, basePath, axios) {\n var localVarFp = (0, exports.WorkItemsBetaApiFp)(configuration);\n return {\n /**\n * This API approves an Approval Item. Either an admin, or the owning/current user must make this request.\n * @summary Approve an Approval Item\n * @param {string} id The ID of the work item\n * @param {string} approvalItemId The ID of the approval item.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n approveApprovalItem: function (id, approvalItemId, axiosOptions) {\n return localVarFp.approveApprovalItem(id, approvalItemId, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This API bulk approves Approval Items. Either an admin, or the owning/current user must make this request.\n * @summary Bulk approve Approval Items\n * @param {string} id The ID of the work item\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n approveApprovalItemsInBulk: function (id, axiosOptions) {\n return localVarFp.approveApprovalItemsInBulk(id, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This API completes a work item. Either an admin, or the owning/current user must make this request.\n * @summary Complete a Work Item\n * @param {string} id The ID of the work item\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n completeWorkItem: function (id, axiosOptions) {\n return localVarFp.completeWorkItem(id, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This API forwards a work item to a new owner. Either an admin, or the owning/current user must make this request.\n * @summary Forward a Work Item\n * @param {string} id The ID of the work item\n * @param {WorkItemForwardBeta} workItemForwardBeta\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n forwardWorkItem: function (id, workItemForwardBeta, axiosOptions) {\n return localVarFp.forwardWorkItem(id, workItemForwardBeta, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This gets a collection of completed work items belonging to either the specified user(admin required), or the current user.\n * @summary Completed Work Items\n * @param {string} [ownerId] The id of the owner of the work item list being requested. Either an admin, or the owning/current user must make this request.\n * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getCompletedWorkItems: function (ownerId, limit, offset, count, axiosOptions) {\n return localVarFp.getCompletedWorkItems(ownerId, limit, offset, count, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This gets a count of completed work items belonging to either the specified user(admin required), or the current user.\n * @summary Count Completed Work Items\n * @param {string} [ownerId] ID of the work item owner.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getCountCompletedWorkItems: function (ownerId, axiosOptions) {\n return localVarFp.getCountCompletedWorkItems(ownerId, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This gets a count of work items belonging to either the specified user(admin required), or the current user.\n * @summary Count Work Items\n * @param {string} [ownerId] ID of the work item owner.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getCountWorkItems: function (ownerId, axiosOptions) {\n return localVarFp.getCountWorkItems(ownerId, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This gets the details of a Work Item belonging to either the specified user(admin required), or the current user.\n * @summary Get a Work Item\n * @param {string} id ID of the work item.\n * @param {string} [ownerId] ID of the work item owner.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getWorkItem: function (id, ownerId, axiosOptions) {\n return localVarFp.getWorkItem(id, ownerId, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This gets a summary of work items belonging to either the specified user(admin required), or the current user.\n * @summary Work Items Summary\n * @param {string} [ownerId] ID of the work item owner.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getWorkItemsSummary: function (ownerId, axiosOptions) {\n return localVarFp.getWorkItemsSummary(ownerId, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This gets a collection of work items belonging to either the specified user(admin required), or the current user.\n * @summary List Work Items\n * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {string} [ownerId] ID of the work item owner.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n listWorkItems: function (limit, offset, count, ownerId, axiosOptions) {\n return localVarFp.listWorkItems(limit, offset, count, ownerId, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This API rejects an Approval Item. Either an admin, or the owning/current user must make this request.\n * @summary Reject an Approval Item\n * @param {string} id The ID of the work item\n * @param {string} approvalItemId The ID of the approval item.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n rejectApprovalItem: function (id, approvalItemId, axiosOptions) {\n return localVarFp.rejectApprovalItem(id, approvalItemId, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This API bulk rejects Approval Items. Either an admin, or the owning/current user must make this request.\n * @summary Bulk reject Approval Items\n * @param {string} id The ID of the work item\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n rejectApprovalItemsInBulk: function (id, axiosOptions) {\n return localVarFp.rejectApprovalItemsInBulk(id, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This API submits account selections. Either an admin, or the owning/current user must make this request.\n * @summary Submit Account Selections\n * @param {string} id The ID of the work item\n * @param {{ [key: string]: any; }} requestBody Account Selection Data map, keyed on fieldName\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n submitAccountSelection: function (id, requestBody, axiosOptions) {\n return localVarFp.submitAccountSelection(id, requestBody, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n };\n};\nexports.WorkItemsBetaApiFactory = WorkItemsBetaApiFactory;\n/**\n * WorkItemsBetaApi - object-oriented interface\n * @export\n * @class WorkItemsBetaApi\n * @extends {BaseAPI}\n */\nvar WorkItemsBetaApi = /** @class */ (function (_super) {\n __extends(WorkItemsBetaApi, _super);\n function WorkItemsBetaApi() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n * This API approves an Approval Item. Either an admin, or the owning/current user must make this request.\n * @summary Approve an Approval Item\n * @param {WorkItemsBetaApiApproveApprovalItemRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof WorkItemsBetaApi\n */\n WorkItemsBetaApi.prototype.approveApprovalItem = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.WorkItemsBetaApiFp)(this.configuration).approveApprovalItem(requestParameters.id, requestParameters.approvalItemId, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This API bulk approves Approval Items. Either an admin, or the owning/current user must make this request.\n * @summary Bulk approve Approval Items\n * @param {WorkItemsBetaApiApproveApprovalItemsInBulkRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof WorkItemsBetaApi\n */\n WorkItemsBetaApi.prototype.approveApprovalItemsInBulk = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.WorkItemsBetaApiFp)(this.configuration).approveApprovalItemsInBulk(requestParameters.id, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This API completes a work item. Either an admin, or the owning/current user must make this request.\n * @summary Complete a Work Item\n * @param {WorkItemsBetaApiCompleteWorkItemRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof WorkItemsBetaApi\n */\n WorkItemsBetaApi.prototype.completeWorkItem = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.WorkItemsBetaApiFp)(this.configuration).completeWorkItem(requestParameters.id, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This API forwards a work item to a new owner. Either an admin, or the owning/current user must make this request.\n * @summary Forward a Work Item\n * @param {WorkItemsBetaApiForwardWorkItemRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof WorkItemsBetaApi\n */\n WorkItemsBetaApi.prototype.forwardWorkItem = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.WorkItemsBetaApiFp)(this.configuration).forwardWorkItem(requestParameters.id, requestParameters.workItemForwardBeta, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This gets a collection of completed work items belonging to either the specified user(admin required), or the current user.\n * @summary Completed Work Items\n * @param {WorkItemsBetaApiGetCompletedWorkItemsRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof WorkItemsBetaApi\n */\n WorkItemsBetaApi.prototype.getCompletedWorkItems = function (requestParameters, axiosOptions) {\n var _this = this;\n if (requestParameters === void 0) { requestParameters = {}; }\n return (0, exports.WorkItemsBetaApiFp)(this.configuration).getCompletedWorkItems(requestParameters.ownerId, requestParameters.limit, requestParameters.offset, requestParameters.count, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This gets a count of completed work items belonging to either the specified user(admin required), or the current user.\n * @summary Count Completed Work Items\n * @param {WorkItemsBetaApiGetCountCompletedWorkItemsRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof WorkItemsBetaApi\n */\n WorkItemsBetaApi.prototype.getCountCompletedWorkItems = function (requestParameters, axiosOptions) {\n var _this = this;\n if (requestParameters === void 0) { requestParameters = {}; }\n return (0, exports.WorkItemsBetaApiFp)(this.configuration).getCountCompletedWorkItems(requestParameters.ownerId, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This gets a count of work items belonging to either the specified user(admin required), or the current user.\n * @summary Count Work Items\n * @param {WorkItemsBetaApiGetCountWorkItemsRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof WorkItemsBetaApi\n */\n WorkItemsBetaApi.prototype.getCountWorkItems = function (requestParameters, axiosOptions) {\n var _this = this;\n if (requestParameters === void 0) { requestParameters = {}; }\n return (0, exports.WorkItemsBetaApiFp)(this.configuration).getCountWorkItems(requestParameters.ownerId, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This gets the details of a Work Item belonging to either the specified user(admin required), or the current user.\n * @summary Get a Work Item\n * @param {WorkItemsBetaApiGetWorkItemRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof WorkItemsBetaApi\n */\n WorkItemsBetaApi.prototype.getWorkItem = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.WorkItemsBetaApiFp)(this.configuration).getWorkItem(requestParameters.id, requestParameters.ownerId, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This gets a summary of work items belonging to either the specified user(admin required), or the current user.\n * @summary Work Items Summary\n * @param {WorkItemsBetaApiGetWorkItemsSummaryRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof WorkItemsBetaApi\n */\n WorkItemsBetaApi.prototype.getWorkItemsSummary = function (requestParameters, axiosOptions) {\n var _this = this;\n if (requestParameters === void 0) { requestParameters = {}; }\n return (0, exports.WorkItemsBetaApiFp)(this.configuration).getWorkItemsSummary(requestParameters.ownerId, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This gets a collection of work items belonging to either the specified user(admin required), or the current user.\n * @summary List Work Items\n * @param {WorkItemsBetaApiListWorkItemsRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof WorkItemsBetaApi\n */\n WorkItemsBetaApi.prototype.listWorkItems = function (requestParameters, axiosOptions) {\n var _this = this;\n if (requestParameters === void 0) { requestParameters = {}; }\n return (0, exports.WorkItemsBetaApiFp)(this.configuration).listWorkItems(requestParameters.limit, requestParameters.offset, requestParameters.count, requestParameters.ownerId, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This API rejects an Approval Item. Either an admin, or the owning/current user must make this request.\n * @summary Reject an Approval Item\n * @param {WorkItemsBetaApiRejectApprovalItemRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof WorkItemsBetaApi\n */\n WorkItemsBetaApi.prototype.rejectApprovalItem = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.WorkItemsBetaApiFp)(this.configuration).rejectApprovalItem(requestParameters.id, requestParameters.approvalItemId, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This API bulk rejects Approval Items. Either an admin, or the owning/current user must make this request.\n * @summary Bulk reject Approval Items\n * @param {WorkItemsBetaApiRejectApprovalItemsInBulkRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof WorkItemsBetaApi\n */\n WorkItemsBetaApi.prototype.rejectApprovalItemsInBulk = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.WorkItemsBetaApiFp)(this.configuration).rejectApprovalItemsInBulk(requestParameters.id, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This API submits account selections. Either an admin, or the owning/current user must make this request.\n * @summary Submit Account Selections\n * @param {WorkItemsBetaApiSubmitAccountSelectionRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof WorkItemsBetaApi\n */\n WorkItemsBetaApi.prototype.submitAccountSelection = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.WorkItemsBetaApiFp)(this.configuration).submitAccountSelection(requestParameters.id, requestParameters.requestBody, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n return WorkItemsBetaApi;\n}(base_1.BaseAPI));\nexports.WorkItemsBetaApi = WorkItemsBetaApi;\n/**\n * WorkReassignmentBetaApi - axios parameter creator\n * @export\n */\nvar WorkReassignmentBetaApiAxiosParamCreator = function (configuration) {\n var _this = this;\n return {\n /**\n * Creates a new Reassignment Configuration for the specified identity.\n * @summary Create a Reassignment Configuration\n * @param {ConfigurationItemRequestBeta} configurationItemRequestBeta\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n createReassignmentConfiguration: function (configurationItemRequestBeta, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'configurationItemRequestBeta' is not null or undefined\n (0, common_1.assertParamExists)('createReassignmentConfiguration', 'configurationItemRequestBeta', configurationItemRequestBeta);\n localVarPath = \"/reassignment-configurations\";\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n localVarHeaderParameter['Content-Type'] = 'application/json';\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(configurationItemRequestBeta, localVarRequestOptions, configuration);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * Deletes all Reassignment Configuration for the specified identity\n * @summary Delete Reassignment Configuration\n * @param {string} identityId unique identity id\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n deleteReassignmentConfiguration: function (identityId, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'identityId' is not null or undefined\n (0, common_1.assertParamExists)('deleteReassignmentConfiguration', 'identityId', identityId);\n localVarPath = \"/reassignment-configurations/{identityId}\"\n .replace(\"{\".concat(\"identityId\", \"}\"), encodeURIComponent(String(identityId)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'DELETE' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * Evaluates the Reassignment Configuration for an `Identity` to determine if work items for the specified type should be reassigned. If a valid Reassignment Configuration is found for the identity & work type, then a lookup is initiated which recursively fetches the Reassignment Configuration for the next `TargetIdentity` until no more results are found or a max depth of 5. That lookup trail is provided in the response and the final reassigned identity in the lookup list is returned as the `reassignToId` property. If no Reassignment Configuration is found for the specified identity & config type then the requested Identity ID will be used as the `reassignToId` value and the lookupTrail node will be empty.\n * @summary Evaluate Reassignment Configuration\n * @param {string} identityId unique identity id\n * @param {ConfigTypeEnumBeta} configType Reassignment work type\n * @param {Array} [exclusionFilters] Exclusion filters that disable parts of the reassignment evaluation. Possible values are listed below: - `SELF_REVIEW_DELEGATION`: This will exclude delegations of self-review reassignments\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getEvaluateReassignmentConfiguration: function (identityId, configType, exclusionFilters, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'identityId' is not null or undefined\n (0, common_1.assertParamExists)('getEvaluateReassignmentConfiguration', 'identityId', identityId);\n // verify required parameter 'configType' is not null or undefined\n (0, common_1.assertParamExists)('getEvaluateReassignmentConfiguration', 'configType', configType);\n localVarPath = \"/reassignment-configurations/{identityId}/evaluate/{configType}\"\n .replace(\"{\".concat(\"identityId\", \"}\"), encodeURIComponent(String(identityId)))\n .replace(\"{\".concat(\"configType\", \"}\"), encodeURIComponent(String(configType)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n if (exclusionFilters) {\n localVarQueryParameter['exclusionFilters'] = exclusionFilters.join(base_1.COLLECTION_FORMATS.csv);\n }\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * Gets a collection of types which are available in the Reassignment Configuration UI.\n * @summary List Reassignment Config Types\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getReassignmentConfigTypes: function (axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n localVarPath = \"/reassignment-configurations/types\";\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * Gets the Reassignment Configuration for an identity.\n * @summary Get Reassignment Configuration\n * @param {string} identityId unique identity id\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getReassignmentConfiguration: function (identityId, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'identityId' is not null or undefined\n (0, common_1.assertParamExists)('getReassignmentConfiguration', 'identityId', identityId);\n localVarPath = \"/reassignment-configurations/{identityId}\"\n .replace(\"{\".concat(\"identityId\", \"}\"), encodeURIComponent(String(identityId)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * Gets the global Reassignment Configuration settings for the requestor\\'s tenant.\n * @summary Get Tenant-wide Reassignment Configuration settings\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getTenantConfigConfiguration: function (axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n localVarPath = \"/reassignment-configurations/tenant-config\";\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * Gets all Reassignment configuration for the current org.\n * @summary List Reassignment Configurations\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n listReassignmentConfigurations: function (axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n localVarPath = \"/reassignment-configurations\";\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * Replaces existing Reassignment configuration for an identity with the newly provided configuration.\n * @summary Update Reassignment Configuration\n * @param {string} identityId unique identity id\n * @param {ConfigurationItemRequestBeta} configurationItemRequestBeta\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n putReassignmentConfig: function (identityId, configurationItemRequestBeta, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'identityId' is not null or undefined\n (0, common_1.assertParamExists)('putReassignmentConfig', 'identityId', identityId);\n // verify required parameter 'configurationItemRequestBeta' is not null or undefined\n (0, common_1.assertParamExists)('putReassignmentConfig', 'configurationItemRequestBeta', configurationItemRequestBeta);\n localVarPath = \"/reassignment-configurations/{identityId}\"\n .replace(\"{\".concat(\"identityId\", \"}\"), encodeURIComponent(String(identityId)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'PUT' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n localVarHeaderParameter['Content-Type'] = 'application/json';\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(configurationItemRequestBeta, localVarRequestOptions, configuration);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * Replaces existing Tenant-wide Reassignment Configuration settings with the newly provided settings.\n * @summary Update Tenant-wide Reassignment Configuration settings\n * @param {TenantConfigurationRequestBeta} tenantConfigurationRequestBeta\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n putTenantConfiguration: function (tenantConfigurationRequestBeta, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'tenantConfigurationRequestBeta' is not null or undefined\n (0, common_1.assertParamExists)('putTenantConfiguration', 'tenantConfigurationRequestBeta', tenantConfigurationRequestBeta);\n localVarPath = \"/reassignment-configurations/tenant-config\";\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'PUT' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n localVarHeaderParameter['Content-Type'] = 'application/json';\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(tenantConfigurationRequestBeta, localVarRequestOptions, configuration);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n };\n};\nexports.WorkReassignmentBetaApiAxiosParamCreator = WorkReassignmentBetaApiAxiosParamCreator;\n/**\n * WorkReassignmentBetaApi - functional programming interface\n * @export\n */\nvar WorkReassignmentBetaApiFp = function (configuration) {\n var localVarAxiosParamCreator = (0, exports.WorkReassignmentBetaApiAxiosParamCreator)(configuration);\n return {\n /**\n * Creates a new Reassignment Configuration for the specified identity.\n * @summary Create a Reassignment Configuration\n * @param {ConfigurationItemRequestBeta} configurationItemRequestBeta\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n createReassignmentConfiguration: function (configurationItemRequestBeta, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.createReassignmentConfiguration(configurationItemRequestBeta, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * Deletes all Reassignment Configuration for the specified identity\n * @summary Delete Reassignment Configuration\n * @param {string} identityId unique identity id\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n deleteReassignmentConfiguration: function (identityId, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.deleteReassignmentConfiguration(identityId, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * Evaluates the Reassignment Configuration for an `Identity` to determine if work items for the specified type should be reassigned. If a valid Reassignment Configuration is found for the identity & work type, then a lookup is initiated which recursively fetches the Reassignment Configuration for the next `TargetIdentity` until no more results are found or a max depth of 5. That lookup trail is provided in the response and the final reassigned identity in the lookup list is returned as the `reassignToId` property. If no Reassignment Configuration is found for the specified identity & config type then the requested Identity ID will be used as the `reassignToId` value and the lookupTrail node will be empty.\n * @summary Evaluate Reassignment Configuration\n * @param {string} identityId unique identity id\n * @param {ConfigTypeEnumBeta} configType Reassignment work type\n * @param {Array} [exclusionFilters] Exclusion filters that disable parts of the reassignment evaluation. Possible values are listed below: - `SELF_REVIEW_DELEGATION`: This will exclude delegations of self-review reassignments\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getEvaluateReassignmentConfiguration: function (identityId, configType, exclusionFilters, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.getEvaluateReassignmentConfiguration(identityId, configType, exclusionFilters, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * Gets a collection of types which are available in the Reassignment Configuration UI.\n * @summary List Reassignment Config Types\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getReassignmentConfigTypes: function (axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.getReassignmentConfigTypes(axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * Gets the Reassignment Configuration for an identity.\n * @summary Get Reassignment Configuration\n * @param {string} identityId unique identity id\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getReassignmentConfiguration: function (identityId, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.getReassignmentConfiguration(identityId, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * Gets the global Reassignment Configuration settings for the requestor\\'s tenant.\n * @summary Get Tenant-wide Reassignment Configuration settings\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getTenantConfigConfiguration: function (axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.getTenantConfigConfiguration(axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * Gets all Reassignment configuration for the current org.\n * @summary List Reassignment Configurations\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n listReassignmentConfigurations: function (axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.listReassignmentConfigurations(axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * Replaces existing Reassignment configuration for an identity with the newly provided configuration.\n * @summary Update Reassignment Configuration\n * @param {string} identityId unique identity id\n * @param {ConfigurationItemRequestBeta} configurationItemRequestBeta\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n putReassignmentConfig: function (identityId, configurationItemRequestBeta, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.putReassignmentConfig(identityId, configurationItemRequestBeta, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * Replaces existing Tenant-wide Reassignment Configuration settings with the newly provided settings.\n * @summary Update Tenant-wide Reassignment Configuration settings\n * @param {TenantConfigurationRequestBeta} tenantConfigurationRequestBeta\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n putTenantConfiguration: function (tenantConfigurationRequestBeta, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.putTenantConfiguration(tenantConfigurationRequestBeta, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n };\n};\nexports.WorkReassignmentBetaApiFp = WorkReassignmentBetaApiFp;\n/**\n * WorkReassignmentBetaApi - factory interface\n * @export\n */\nvar WorkReassignmentBetaApiFactory = function (configuration, basePath, axios) {\n var localVarFp = (0, exports.WorkReassignmentBetaApiFp)(configuration);\n return {\n /**\n * Creates a new Reassignment Configuration for the specified identity.\n * @summary Create a Reassignment Configuration\n * @param {ConfigurationItemRequestBeta} configurationItemRequestBeta\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n createReassignmentConfiguration: function (configurationItemRequestBeta, axiosOptions) {\n return localVarFp.createReassignmentConfiguration(configurationItemRequestBeta, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * Deletes all Reassignment Configuration for the specified identity\n * @summary Delete Reassignment Configuration\n * @param {string} identityId unique identity id\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n deleteReassignmentConfiguration: function (identityId, axiosOptions) {\n return localVarFp.deleteReassignmentConfiguration(identityId, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * Evaluates the Reassignment Configuration for an `Identity` to determine if work items for the specified type should be reassigned. If a valid Reassignment Configuration is found for the identity & work type, then a lookup is initiated which recursively fetches the Reassignment Configuration for the next `TargetIdentity` until no more results are found or a max depth of 5. That lookup trail is provided in the response and the final reassigned identity in the lookup list is returned as the `reassignToId` property. If no Reassignment Configuration is found for the specified identity & config type then the requested Identity ID will be used as the `reassignToId` value and the lookupTrail node will be empty.\n * @summary Evaluate Reassignment Configuration\n * @param {string} identityId unique identity id\n * @param {ConfigTypeEnumBeta} configType Reassignment work type\n * @param {Array} [exclusionFilters] Exclusion filters that disable parts of the reassignment evaluation. Possible values are listed below: - `SELF_REVIEW_DELEGATION`: This will exclude delegations of self-review reassignments\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getEvaluateReassignmentConfiguration: function (identityId, configType, exclusionFilters, axiosOptions) {\n return localVarFp.getEvaluateReassignmentConfiguration(identityId, configType, exclusionFilters, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * Gets a collection of types which are available in the Reassignment Configuration UI.\n * @summary List Reassignment Config Types\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getReassignmentConfigTypes: function (axiosOptions) {\n return localVarFp.getReassignmentConfigTypes(axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * Gets the Reassignment Configuration for an identity.\n * @summary Get Reassignment Configuration\n * @param {string} identityId unique identity id\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getReassignmentConfiguration: function (identityId, axiosOptions) {\n return localVarFp.getReassignmentConfiguration(identityId, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * Gets the global Reassignment Configuration settings for the requestor\\'s tenant.\n * @summary Get Tenant-wide Reassignment Configuration settings\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getTenantConfigConfiguration: function (axiosOptions) {\n return localVarFp.getTenantConfigConfiguration(axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * Gets all Reassignment configuration for the current org.\n * @summary List Reassignment Configurations\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n listReassignmentConfigurations: function (axiosOptions) {\n return localVarFp.listReassignmentConfigurations(axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * Replaces existing Reassignment configuration for an identity with the newly provided configuration.\n * @summary Update Reassignment Configuration\n * @param {string} identityId unique identity id\n * @param {ConfigurationItemRequestBeta} configurationItemRequestBeta\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n putReassignmentConfig: function (identityId, configurationItemRequestBeta, axiosOptions) {\n return localVarFp.putReassignmentConfig(identityId, configurationItemRequestBeta, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * Replaces existing Tenant-wide Reassignment Configuration settings with the newly provided settings.\n * @summary Update Tenant-wide Reassignment Configuration settings\n * @param {TenantConfigurationRequestBeta} tenantConfigurationRequestBeta\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n putTenantConfiguration: function (tenantConfigurationRequestBeta, axiosOptions) {\n return localVarFp.putTenantConfiguration(tenantConfigurationRequestBeta, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n };\n};\nexports.WorkReassignmentBetaApiFactory = WorkReassignmentBetaApiFactory;\n/**\n * WorkReassignmentBetaApi - object-oriented interface\n * @export\n * @class WorkReassignmentBetaApi\n * @extends {BaseAPI}\n */\nvar WorkReassignmentBetaApi = /** @class */ (function (_super) {\n __extends(WorkReassignmentBetaApi, _super);\n function WorkReassignmentBetaApi() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n * Creates a new Reassignment Configuration for the specified identity.\n * @summary Create a Reassignment Configuration\n * @param {WorkReassignmentBetaApiCreateReassignmentConfigurationRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof WorkReassignmentBetaApi\n */\n WorkReassignmentBetaApi.prototype.createReassignmentConfiguration = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.WorkReassignmentBetaApiFp)(this.configuration).createReassignmentConfiguration(requestParameters.configurationItemRequestBeta, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * Deletes all Reassignment Configuration for the specified identity\n * @summary Delete Reassignment Configuration\n * @param {WorkReassignmentBetaApiDeleteReassignmentConfigurationRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof WorkReassignmentBetaApi\n */\n WorkReassignmentBetaApi.prototype.deleteReassignmentConfiguration = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.WorkReassignmentBetaApiFp)(this.configuration).deleteReassignmentConfiguration(requestParameters.identityId, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * Evaluates the Reassignment Configuration for an `Identity` to determine if work items for the specified type should be reassigned. If a valid Reassignment Configuration is found for the identity & work type, then a lookup is initiated which recursively fetches the Reassignment Configuration for the next `TargetIdentity` until no more results are found or a max depth of 5. That lookup trail is provided in the response and the final reassigned identity in the lookup list is returned as the `reassignToId` property. If no Reassignment Configuration is found for the specified identity & config type then the requested Identity ID will be used as the `reassignToId` value and the lookupTrail node will be empty.\n * @summary Evaluate Reassignment Configuration\n * @param {WorkReassignmentBetaApiGetEvaluateReassignmentConfigurationRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof WorkReassignmentBetaApi\n */\n WorkReassignmentBetaApi.prototype.getEvaluateReassignmentConfiguration = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.WorkReassignmentBetaApiFp)(this.configuration).getEvaluateReassignmentConfiguration(requestParameters.identityId, requestParameters.configType, requestParameters.exclusionFilters, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * Gets a collection of types which are available in the Reassignment Configuration UI.\n * @summary List Reassignment Config Types\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof WorkReassignmentBetaApi\n */\n WorkReassignmentBetaApi.prototype.getReassignmentConfigTypes = function (axiosOptions) {\n var _this = this;\n return (0, exports.WorkReassignmentBetaApiFp)(this.configuration).getReassignmentConfigTypes(axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * Gets the Reassignment Configuration for an identity.\n * @summary Get Reassignment Configuration\n * @param {WorkReassignmentBetaApiGetReassignmentConfigurationRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof WorkReassignmentBetaApi\n */\n WorkReassignmentBetaApi.prototype.getReassignmentConfiguration = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.WorkReassignmentBetaApiFp)(this.configuration).getReassignmentConfiguration(requestParameters.identityId, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * Gets the global Reassignment Configuration settings for the requestor\\'s tenant.\n * @summary Get Tenant-wide Reassignment Configuration settings\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof WorkReassignmentBetaApi\n */\n WorkReassignmentBetaApi.prototype.getTenantConfigConfiguration = function (axiosOptions) {\n var _this = this;\n return (0, exports.WorkReassignmentBetaApiFp)(this.configuration).getTenantConfigConfiguration(axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * Gets all Reassignment configuration for the current org.\n * @summary List Reassignment Configurations\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof WorkReassignmentBetaApi\n */\n WorkReassignmentBetaApi.prototype.listReassignmentConfigurations = function (axiosOptions) {\n var _this = this;\n return (0, exports.WorkReassignmentBetaApiFp)(this.configuration).listReassignmentConfigurations(axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * Replaces existing Reassignment configuration for an identity with the newly provided configuration.\n * @summary Update Reassignment Configuration\n * @param {WorkReassignmentBetaApiPutReassignmentConfigRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof WorkReassignmentBetaApi\n */\n WorkReassignmentBetaApi.prototype.putReassignmentConfig = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.WorkReassignmentBetaApiFp)(this.configuration).putReassignmentConfig(requestParameters.identityId, requestParameters.configurationItemRequestBeta, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * Replaces existing Tenant-wide Reassignment Configuration settings with the newly provided settings.\n * @summary Update Tenant-wide Reassignment Configuration settings\n * @param {WorkReassignmentBetaApiPutTenantConfigurationRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof WorkReassignmentBetaApi\n */\n WorkReassignmentBetaApi.prototype.putTenantConfiguration = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.WorkReassignmentBetaApiFp)(this.configuration).putTenantConfiguration(requestParameters.tenantConfigurationRequestBeta, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n return WorkReassignmentBetaApi;\n}(base_1.BaseAPI));\nexports.WorkReassignmentBetaApi = WorkReassignmentBetaApi;\n/**\n * WorkflowsBetaApi - axios parameter creator\n * @export\n */\nvar WorkflowsBetaApiAxiosParamCreator = function (configuration) {\n var _this = this;\n return {\n /**\n * Use this API to cancel a running workflow execution.\n * @summary Cancel Workflow Execution by ID\n * @param {string} id The workflow execution ID\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n cancelWorkflowExecution: function (id, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'id' is not null or undefined\n (0, common_1.assertParamExists)('cancelWorkflowExecution', 'id', id);\n localVarPath = \"/workflow-executions/{id}/cancel\"\n .replace(\"{\".concat(\"id\", \"}\"), encodeURIComponent(String(id)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * Create a new workflow with the desired trigger and steps specified in the request body.\n * @summary Create Workflow\n * @param {CreateWorkflowRequestBeta} createWorkflowRequestBeta\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n createWorkflow: function (createWorkflowRequestBeta, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'createWorkflowRequestBeta' is not null or undefined\n (0, common_1.assertParamExists)('createWorkflow', 'createWorkflowRequestBeta', createWorkflowRequestBeta);\n localVarPath = \"/workflows\";\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n localVarHeaderParameter['Content-Type'] = 'application/json';\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(createWorkflowRequestBeta, localVarRequestOptions, configuration);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * Delete a workflow. **Enabled workflows cannot be deleted**. They must first be disabled.\n * @summary Delete Workflow By Id\n * @param {string} id Id of the Workflow\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n deleteWorkflow: function (id, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'id' is not null or undefined\n (0, common_1.assertParamExists)('deleteWorkflow', 'id', id);\n localVarPath = \"/workflows/{id}\"\n .replace(\"{\".concat(\"id\", \"}\"), encodeURIComponent(String(id)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'DELETE' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * Get a single workflow by id.\n * @summary Get Workflow By Id\n * @param {string} id Id of the workflow\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getWorkflow: function (id, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'id' is not null or undefined\n (0, common_1.assertParamExists)('getWorkflow', 'id', id);\n localVarPath = \"/workflows/{id}\"\n .replace(\"{\".concat(\"id\", \"}\"), encodeURIComponent(String(id)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * Get a single workflow execution. Workflow executions are available for up to 90 days before being archived. If you attempt to access a workflow execution that has been archived, you will receive a 404 Not Found.\n * @summary Get a Workflow Execution\n * @param {string} id Id of the workflow execution\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getWorkflowExecution: function (id, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'id' is not null or undefined\n (0, common_1.assertParamExists)('getWorkflowExecution', 'id', id);\n localVarPath = \"/workflow-executions/{id}\"\n .replace(\"{\".concat(\"id\", \"}\"), encodeURIComponent(String(id)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * Get a detailed history of a single workflow execution. Workflow executions are available for up to 90 days before being archived. If you attempt to access a workflow execution that has been archived, you will receive a 404 Not Found.\n * @summary Get Workflow Execution History\n * @param {string} id Id of the workflow execution\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getWorkflowExecutionHistory: function (id, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'id' is not null or undefined\n (0, common_1.assertParamExists)('getWorkflowExecutionHistory', 'id', id);\n localVarPath = \"/workflow-executions/{id}/history\"\n .replace(\"{\".concat(\"id\", \"}\"), encodeURIComponent(String(id)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This lists all triggers, actions, and operators in the library\n * @summary List Complete Workflow Library\n * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n listCompleteWorkflowLibrary: function (limit, offset, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n localVarPath = \"/workflow-library\";\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n if (limit !== undefined) {\n localVarQueryParameter['limit'] = limit;\n }\n if (offset !== undefined) {\n localVarQueryParameter['offset'] = offset;\n }\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This lists the executions for a given workflow. Workflow executions are available for up to 90 days before being archived. By default, you can get a maximum of 250 executions. To get executions past the first 250 records, you can do the following: 1. Use the [Get Workflows](https://developer.sailpoint.com/idn/api/beta/list-workflows) endpoint to get your workflows. 2. Get your workflow ID from the response. 3. You can then do either of the following: - Filter to find relevant workflow executions. For example, you can filter for failed workflow executions: `GET /workflows/:workflowID/executions?filters=status eq \\\"Failed\\\"` - You can paginate through results with the `offset` parameter. For example, you can page through 50 executions per page and use that as a way to get to the records past the first 250. Refer to [Paginating Results](https://developer.sailpoint.com/idn/api/standard-collection-parameters#paginating-results) for more information about the query parameters you can use to achieve pagination.\n * @summary List Workflow Executions\n * @param {string} id Id of the workflow\n * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **startTime**: *eq, lt, le, gt, ge* **status**: *eq*\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n listWorkflowExecutions: function (id, limit, offset, count, filters, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'id' is not null or undefined\n (0, common_1.assertParamExists)('listWorkflowExecutions', 'id', id);\n localVarPath = \"/workflows/{id}/executions\"\n .replace(\"{\".concat(\"id\", \"}\"), encodeURIComponent(String(id)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n if (limit !== undefined) {\n localVarQueryParameter['limit'] = limit;\n }\n if (offset !== undefined) {\n localVarQueryParameter['offset'] = offset;\n }\n if (count !== undefined) {\n localVarQueryParameter['count'] = count;\n }\n if (filters !== undefined) {\n localVarQueryParameter['filters'] = filters;\n }\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This lists the workflow actions available to you.\n * @summary List Workflow Library Actions\n * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **id**: *eq*\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n listWorkflowLibraryActions: function (limit, offset, filters, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n localVarPath = \"/workflow-library/actions\";\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n if (limit !== undefined) {\n localVarQueryParameter['limit'] = limit;\n }\n if (offset !== undefined) {\n localVarQueryParameter['offset'] = offset;\n }\n if (filters !== undefined) {\n localVarQueryParameter['filters'] = filters;\n }\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This lists the workflow operators available to you\n * @summary List Workflow Library Operators\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n listWorkflowLibraryOperators: function (axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n localVarPath = \"/workflow-library/operators\";\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This lists the workflow triggers available to you\n * @summary List Workflow Library Triggers\n * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **id**: *eq*\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n listWorkflowLibraryTriggers: function (limit, offset, filters, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n localVarPath = \"/workflow-library/triggers\";\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n if (limit !== undefined) {\n localVarQueryParameter['limit'] = limit;\n }\n if (offset !== undefined) {\n localVarQueryParameter['offset'] = offset;\n }\n if (filters !== undefined) {\n localVarQueryParameter['filters'] = filters;\n }\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * List all workflows in the tenant.\n * @summary List Workflows\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n listWorkflows: function (axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n localVarPath = \"/workflows\";\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * Partially update an existing Workflow using [JSON Patch](https://tools.ietf.org/html/rfc6902) syntax.\n * @summary Patch Workflow\n * @param {string} id Id of the Workflow\n * @param {Array} jsonPatchOperationBeta\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n patchWorkflow: function (id, jsonPatchOperationBeta, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'id' is not null or undefined\n (0, common_1.assertParamExists)('patchWorkflow', 'id', id);\n // verify required parameter 'jsonPatchOperationBeta' is not null or undefined\n (0, common_1.assertParamExists)('patchWorkflow', 'jsonPatchOperationBeta', jsonPatchOperationBeta);\n localVarPath = \"/workflows/{id}\"\n .replace(\"{\".concat(\"id\", \"}\"), encodeURIComponent(String(id)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'PATCH' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n localVarHeaderParameter['Content-Type'] = 'application/json-patch+json';\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(jsonPatchOperationBeta, localVarRequestOptions, configuration);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This endpoint allows a service outside of IdentityNow to initiate a workflow that uses the \\\"External Trigger\\\" step. The external service will invoke this endpoint with the input data it wants to send to the workflow in the body.\n * @summary Execute Workflow via External Trigger\n * @param {string} id Id of the workflow\n * @param {PostExternalExecuteWorkflowRequestBeta} [postExternalExecuteWorkflowRequestBeta]\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n postExternalExecuteWorkflow: function (id, postExternalExecuteWorkflowRequestBeta, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'id' is not null or undefined\n (0, common_1.assertParamExists)('postExternalExecuteWorkflow', 'id', id);\n localVarPath = \"/workflows/execute/external/{id}\"\n .replace(\"{\".concat(\"id\", \"}\"), encodeURIComponent(String(id)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n localVarHeaderParameter['Content-Type'] = 'application/json';\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(postExternalExecuteWorkflowRequestBeta, localVarRequestOptions, configuration);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * Create OAuth client ID, client secret, and callback URL for use in an external trigger. External triggers will need this information to generate an access token to authenticate to the callback URL and submit a trigger payload that will initiate the workflow.\n * @summary Generate External Trigger OAuth Client\n * @param {string} id Id of the workflow\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n postWorkflowExternalTrigger: function (id, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'id' is not null or undefined\n (0, common_1.assertParamExists)('postWorkflowExternalTrigger', 'id', id);\n localVarPath = \"/workflows/{id}/external/oauth-clients\"\n .replace(\"{\".concat(\"id\", \"}\"), encodeURIComponent(String(id)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * Validate a workflow with an \\\"External Trigger\\\" can receive input. The response includes the input that the workflow received, which can be used to validate that the input is intact when it reaches the workflow.\n * @summary Test Workflow via External Trigger\n * @param {string} id Id of the workflow\n * @param {TestExternalExecuteWorkflowRequestBeta} [testExternalExecuteWorkflowRequestBeta]\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n testExternalExecuteWorkflow: function (id, testExternalExecuteWorkflowRequestBeta, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'id' is not null or undefined\n (0, common_1.assertParamExists)('testExternalExecuteWorkflow', 'id', id);\n localVarPath = \"/workflows/execute/external/{id}/test\"\n .replace(\"{\".concat(\"id\", \"}\"), encodeURIComponent(String(id)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n localVarHeaderParameter['Content-Type'] = 'application/json';\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(testExternalExecuteWorkflowRequestBeta, localVarRequestOptions, configuration);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * Test a workflow with the provided input data. The input data should resemble the input that the trigger will send the workflow. See the [event trigger documentation](https://developer.sailpoint.com/idn/docs/event-triggers/available) for an example input for the trigger that initiates this workflow. This endpoint will return an execution ID, which can be used to lookup more information about the execution using the `Get a Workflow Execution` endpoint. **This will cause a live run of the workflow, which could result in unintended modifications to your IDN tenant.**\n * @summary Test Workflow By Id\n * @param {string} id Id of the workflow\n * @param {TestWorkflowRequestBeta} testWorkflowRequestBeta\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n testWorkflow: function (id, testWorkflowRequestBeta, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'id' is not null or undefined\n (0, common_1.assertParamExists)('testWorkflow', 'id', id);\n // verify required parameter 'testWorkflowRequestBeta' is not null or undefined\n (0, common_1.assertParamExists)('testWorkflow', 'testWorkflowRequestBeta', testWorkflowRequestBeta);\n localVarPath = \"/workflows/{id}/test\"\n .replace(\"{\".concat(\"id\", \"}\"), encodeURIComponent(String(id)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n localVarHeaderParameter['Content-Type'] = 'application/json';\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(testWorkflowRequestBeta, localVarRequestOptions, configuration);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * Perform a full update of a workflow. The updated workflow object is returned in the response.\n * @summary Update Workflow\n * @param {string} id Id of the Workflow\n * @param {WorkflowBodyBeta} workflowBodyBeta\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n updateWorkflow: function (id, workflowBodyBeta, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'id' is not null or undefined\n (0, common_1.assertParamExists)('updateWorkflow', 'id', id);\n // verify required parameter 'workflowBodyBeta' is not null or undefined\n (0, common_1.assertParamExists)('updateWorkflow', 'workflowBodyBeta', workflowBodyBeta);\n localVarPath = \"/workflows/{id}\"\n .replace(\"{\".concat(\"id\", \"}\"), encodeURIComponent(String(id)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'PUT' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n localVarHeaderParameter['Content-Type'] = 'application/json';\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(workflowBodyBeta, localVarRequestOptions, configuration);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n };\n};\nexports.WorkflowsBetaApiAxiosParamCreator = WorkflowsBetaApiAxiosParamCreator;\n/**\n * WorkflowsBetaApi - functional programming interface\n * @export\n */\nvar WorkflowsBetaApiFp = function (configuration) {\n var localVarAxiosParamCreator = (0, exports.WorkflowsBetaApiAxiosParamCreator)(configuration);\n return {\n /**\n * Use this API to cancel a running workflow execution.\n * @summary Cancel Workflow Execution by ID\n * @param {string} id The workflow execution ID\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n cancelWorkflowExecution: function (id, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.cancelWorkflowExecution(id, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * Create a new workflow with the desired trigger and steps specified in the request body.\n * @summary Create Workflow\n * @param {CreateWorkflowRequestBeta} createWorkflowRequestBeta\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n createWorkflow: function (createWorkflowRequestBeta, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.createWorkflow(createWorkflowRequestBeta, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * Delete a workflow. **Enabled workflows cannot be deleted**. They must first be disabled.\n * @summary Delete Workflow By Id\n * @param {string} id Id of the Workflow\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n deleteWorkflow: function (id, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.deleteWorkflow(id, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * Get a single workflow by id.\n * @summary Get Workflow By Id\n * @param {string} id Id of the workflow\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getWorkflow: function (id, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.getWorkflow(id, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * Get a single workflow execution. Workflow executions are available for up to 90 days before being archived. If you attempt to access a workflow execution that has been archived, you will receive a 404 Not Found.\n * @summary Get a Workflow Execution\n * @param {string} id Id of the workflow execution\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getWorkflowExecution: function (id, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.getWorkflowExecution(id, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * Get a detailed history of a single workflow execution. Workflow executions are available for up to 90 days before being archived. If you attempt to access a workflow execution that has been archived, you will receive a 404 Not Found.\n * @summary Get Workflow Execution History\n * @param {string} id Id of the workflow execution\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getWorkflowExecutionHistory: function (id, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.getWorkflowExecutionHistory(id, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This lists all triggers, actions, and operators in the library\n * @summary List Complete Workflow Library\n * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n listCompleteWorkflowLibrary: function (limit, offset, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.listCompleteWorkflowLibrary(limit, offset, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This lists the executions for a given workflow. Workflow executions are available for up to 90 days before being archived. By default, you can get a maximum of 250 executions. To get executions past the first 250 records, you can do the following: 1. Use the [Get Workflows](https://developer.sailpoint.com/idn/api/beta/list-workflows) endpoint to get your workflows. 2. Get your workflow ID from the response. 3. You can then do either of the following: - Filter to find relevant workflow executions. For example, you can filter for failed workflow executions: `GET /workflows/:workflowID/executions?filters=status eq \\\"Failed\\\"` - You can paginate through results with the `offset` parameter. For example, you can page through 50 executions per page and use that as a way to get to the records past the first 250. Refer to [Paginating Results](https://developer.sailpoint.com/idn/api/standard-collection-parameters#paginating-results) for more information about the query parameters you can use to achieve pagination.\n * @summary List Workflow Executions\n * @param {string} id Id of the workflow\n * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **startTime**: *eq, lt, le, gt, ge* **status**: *eq*\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n listWorkflowExecutions: function (id, limit, offset, count, filters, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.listWorkflowExecutions(id, limit, offset, count, filters, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This lists the workflow actions available to you.\n * @summary List Workflow Library Actions\n * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **id**: *eq*\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n listWorkflowLibraryActions: function (limit, offset, filters, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.listWorkflowLibraryActions(limit, offset, filters, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This lists the workflow operators available to you\n * @summary List Workflow Library Operators\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n listWorkflowLibraryOperators: function (axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.listWorkflowLibraryOperators(axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This lists the workflow triggers available to you\n * @summary List Workflow Library Triggers\n * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **id**: *eq*\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n listWorkflowLibraryTriggers: function (limit, offset, filters, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.listWorkflowLibraryTriggers(limit, offset, filters, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * List all workflows in the tenant.\n * @summary List Workflows\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n listWorkflows: function (axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.listWorkflows(axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * Partially update an existing Workflow using [JSON Patch](https://tools.ietf.org/html/rfc6902) syntax.\n * @summary Patch Workflow\n * @param {string} id Id of the Workflow\n * @param {Array} jsonPatchOperationBeta\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n patchWorkflow: function (id, jsonPatchOperationBeta, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.patchWorkflow(id, jsonPatchOperationBeta, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This endpoint allows a service outside of IdentityNow to initiate a workflow that uses the \\\"External Trigger\\\" step. The external service will invoke this endpoint with the input data it wants to send to the workflow in the body.\n * @summary Execute Workflow via External Trigger\n * @param {string} id Id of the workflow\n * @param {PostExternalExecuteWorkflowRequestBeta} [postExternalExecuteWorkflowRequestBeta]\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n postExternalExecuteWorkflow: function (id, postExternalExecuteWorkflowRequestBeta, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.postExternalExecuteWorkflow(id, postExternalExecuteWorkflowRequestBeta, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * Create OAuth client ID, client secret, and callback URL for use in an external trigger. External triggers will need this information to generate an access token to authenticate to the callback URL and submit a trigger payload that will initiate the workflow.\n * @summary Generate External Trigger OAuth Client\n * @param {string} id Id of the workflow\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n postWorkflowExternalTrigger: function (id, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.postWorkflowExternalTrigger(id, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * Validate a workflow with an \\\"External Trigger\\\" can receive input. The response includes the input that the workflow received, which can be used to validate that the input is intact when it reaches the workflow.\n * @summary Test Workflow via External Trigger\n * @param {string} id Id of the workflow\n * @param {TestExternalExecuteWorkflowRequestBeta} [testExternalExecuteWorkflowRequestBeta]\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n testExternalExecuteWorkflow: function (id, testExternalExecuteWorkflowRequestBeta, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.testExternalExecuteWorkflow(id, testExternalExecuteWorkflowRequestBeta, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * Test a workflow with the provided input data. The input data should resemble the input that the trigger will send the workflow. See the [event trigger documentation](https://developer.sailpoint.com/idn/docs/event-triggers/available) for an example input for the trigger that initiates this workflow. This endpoint will return an execution ID, which can be used to lookup more information about the execution using the `Get a Workflow Execution` endpoint. **This will cause a live run of the workflow, which could result in unintended modifications to your IDN tenant.**\n * @summary Test Workflow By Id\n * @param {string} id Id of the workflow\n * @param {TestWorkflowRequestBeta} testWorkflowRequestBeta\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n testWorkflow: function (id, testWorkflowRequestBeta, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.testWorkflow(id, testWorkflowRequestBeta, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * Perform a full update of a workflow. The updated workflow object is returned in the response.\n * @summary Update Workflow\n * @param {string} id Id of the Workflow\n * @param {WorkflowBodyBeta} workflowBodyBeta\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n updateWorkflow: function (id, workflowBodyBeta, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.updateWorkflow(id, workflowBodyBeta, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n };\n};\nexports.WorkflowsBetaApiFp = WorkflowsBetaApiFp;\n/**\n * WorkflowsBetaApi - factory interface\n * @export\n */\nvar WorkflowsBetaApiFactory = function (configuration, basePath, axios) {\n var localVarFp = (0, exports.WorkflowsBetaApiFp)(configuration);\n return {\n /**\n * Use this API to cancel a running workflow execution.\n * @summary Cancel Workflow Execution by ID\n * @param {string} id The workflow execution ID\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n cancelWorkflowExecution: function (id, axiosOptions) {\n return localVarFp.cancelWorkflowExecution(id, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * Create a new workflow with the desired trigger and steps specified in the request body.\n * @summary Create Workflow\n * @param {CreateWorkflowRequestBeta} createWorkflowRequestBeta\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n createWorkflow: function (createWorkflowRequestBeta, axiosOptions) {\n return localVarFp.createWorkflow(createWorkflowRequestBeta, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * Delete a workflow. **Enabled workflows cannot be deleted**. They must first be disabled.\n * @summary Delete Workflow By Id\n * @param {string} id Id of the Workflow\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n deleteWorkflow: function (id, axiosOptions) {\n return localVarFp.deleteWorkflow(id, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * Get a single workflow by id.\n * @summary Get Workflow By Id\n * @param {string} id Id of the workflow\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getWorkflow: function (id, axiosOptions) {\n return localVarFp.getWorkflow(id, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * Get a single workflow execution. Workflow executions are available for up to 90 days before being archived. If you attempt to access a workflow execution that has been archived, you will receive a 404 Not Found.\n * @summary Get a Workflow Execution\n * @param {string} id Id of the workflow execution\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getWorkflowExecution: function (id, axiosOptions) {\n return localVarFp.getWorkflowExecution(id, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * Get a detailed history of a single workflow execution. Workflow executions are available for up to 90 days before being archived. If you attempt to access a workflow execution that has been archived, you will receive a 404 Not Found.\n * @summary Get Workflow Execution History\n * @param {string} id Id of the workflow execution\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getWorkflowExecutionHistory: function (id, axiosOptions) {\n return localVarFp.getWorkflowExecutionHistory(id, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This lists all triggers, actions, and operators in the library\n * @summary List Complete Workflow Library\n * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n listCompleteWorkflowLibrary: function (limit, offset, axiosOptions) {\n return localVarFp.listCompleteWorkflowLibrary(limit, offset, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This lists the executions for a given workflow. Workflow executions are available for up to 90 days before being archived. By default, you can get a maximum of 250 executions. To get executions past the first 250 records, you can do the following: 1. Use the [Get Workflows](https://developer.sailpoint.com/idn/api/beta/list-workflows) endpoint to get your workflows. 2. Get your workflow ID from the response. 3. You can then do either of the following: - Filter to find relevant workflow executions. For example, you can filter for failed workflow executions: `GET /workflows/:workflowID/executions?filters=status eq \\\"Failed\\\"` - You can paginate through results with the `offset` parameter. For example, you can page through 50 executions per page and use that as a way to get to the records past the first 250. Refer to [Paginating Results](https://developer.sailpoint.com/idn/api/standard-collection-parameters#paginating-results) for more information about the query parameters you can use to achieve pagination.\n * @summary List Workflow Executions\n * @param {string} id Id of the workflow\n * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **startTime**: *eq, lt, le, gt, ge* **status**: *eq*\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n listWorkflowExecutions: function (id, limit, offset, count, filters, axiosOptions) {\n return localVarFp.listWorkflowExecutions(id, limit, offset, count, filters, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This lists the workflow actions available to you.\n * @summary List Workflow Library Actions\n * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **id**: *eq*\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n listWorkflowLibraryActions: function (limit, offset, filters, axiosOptions) {\n return localVarFp.listWorkflowLibraryActions(limit, offset, filters, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This lists the workflow operators available to you\n * @summary List Workflow Library Operators\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n listWorkflowLibraryOperators: function (axiosOptions) {\n return localVarFp.listWorkflowLibraryOperators(axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This lists the workflow triggers available to you\n * @summary List Workflow Library Triggers\n * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **id**: *eq*\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n listWorkflowLibraryTriggers: function (limit, offset, filters, axiosOptions) {\n return localVarFp.listWorkflowLibraryTriggers(limit, offset, filters, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * List all workflows in the tenant.\n * @summary List Workflows\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n listWorkflows: function (axiosOptions) {\n return localVarFp.listWorkflows(axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * Partially update an existing Workflow using [JSON Patch](https://tools.ietf.org/html/rfc6902) syntax.\n * @summary Patch Workflow\n * @param {string} id Id of the Workflow\n * @param {Array} jsonPatchOperationBeta\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n patchWorkflow: function (id, jsonPatchOperationBeta, axiosOptions) {\n return localVarFp.patchWorkflow(id, jsonPatchOperationBeta, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This endpoint allows a service outside of IdentityNow to initiate a workflow that uses the \\\"External Trigger\\\" step. The external service will invoke this endpoint with the input data it wants to send to the workflow in the body.\n * @summary Execute Workflow via External Trigger\n * @param {string} id Id of the workflow\n * @param {PostExternalExecuteWorkflowRequestBeta} [postExternalExecuteWorkflowRequestBeta]\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n postExternalExecuteWorkflow: function (id, postExternalExecuteWorkflowRequestBeta, axiosOptions) {\n return localVarFp.postExternalExecuteWorkflow(id, postExternalExecuteWorkflowRequestBeta, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * Create OAuth client ID, client secret, and callback URL for use in an external trigger. External triggers will need this information to generate an access token to authenticate to the callback URL and submit a trigger payload that will initiate the workflow.\n * @summary Generate External Trigger OAuth Client\n * @param {string} id Id of the workflow\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n postWorkflowExternalTrigger: function (id, axiosOptions) {\n return localVarFp.postWorkflowExternalTrigger(id, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * Validate a workflow with an \\\"External Trigger\\\" can receive input. The response includes the input that the workflow received, which can be used to validate that the input is intact when it reaches the workflow.\n * @summary Test Workflow via External Trigger\n * @param {string} id Id of the workflow\n * @param {TestExternalExecuteWorkflowRequestBeta} [testExternalExecuteWorkflowRequestBeta]\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n testExternalExecuteWorkflow: function (id, testExternalExecuteWorkflowRequestBeta, axiosOptions) {\n return localVarFp.testExternalExecuteWorkflow(id, testExternalExecuteWorkflowRequestBeta, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * Test a workflow with the provided input data. The input data should resemble the input that the trigger will send the workflow. See the [event trigger documentation](https://developer.sailpoint.com/idn/docs/event-triggers/available) for an example input for the trigger that initiates this workflow. This endpoint will return an execution ID, which can be used to lookup more information about the execution using the `Get a Workflow Execution` endpoint. **This will cause a live run of the workflow, which could result in unintended modifications to your IDN tenant.**\n * @summary Test Workflow By Id\n * @param {string} id Id of the workflow\n * @param {TestWorkflowRequestBeta} testWorkflowRequestBeta\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n testWorkflow: function (id, testWorkflowRequestBeta, axiosOptions) {\n return localVarFp.testWorkflow(id, testWorkflowRequestBeta, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * Perform a full update of a workflow. The updated workflow object is returned in the response.\n * @summary Update Workflow\n * @param {string} id Id of the Workflow\n * @param {WorkflowBodyBeta} workflowBodyBeta\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n updateWorkflow: function (id, workflowBodyBeta, axiosOptions) {\n return localVarFp.updateWorkflow(id, workflowBodyBeta, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n };\n};\nexports.WorkflowsBetaApiFactory = WorkflowsBetaApiFactory;\n/**\n * WorkflowsBetaApi - object-oriented interface\n * @export\n * @class WorkflowsBetaApi\n * @extends {BaseAPI}\n */\nvar WorkflowsBetaApi = /** @class */ (function (_super) {\n __extends(WorkflowsBetaApi, _super);\n function WorkflowsBetaApi() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n * Use this API to cancel a running workflow execution.\n * @summary Cancel Workflow Execution by ID\n * @param {WorkflowsBetaApiCancelWorkflowExecutionRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof WorkflowsBetaApi\n */\n WorkflowsBetaApi.prototype.cancelWorkflowExecution = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.WorkflowsBetaApiFp)(this.configuration).cancelWorkflowExecution(requestParameters.id, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * Create a new workflow with the desired trigger and steps specified in the request body.\n * @summary Create Workflow\n * @param {WorkflowsBetaApiCreateWorkflowRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof WorkflowsBetaApi\n */\n WorkflowsBetaApi.prototype.createWorkflow = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.WorkflowsBetaApiFp)(this.configuration).createWorkflow(requestParameters.createWorkflowRequestBeta, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * Delete a workflow. **Enabled workflows cannot be deleted**. They must first be disabled.\n * @summary Delete Workflow By Id\n * @param {WorkflowsBetaApiDeleteWorkflowRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof WorkflowsBetaApi\n */\n WorkflowsBetaApi.prototype.deleteWorkflow = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.WorkflowsBetaApiFp)(this.configuration).deleteWorkflow(requestParameters.id, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * Get a single workflow by id.\n * @summary Get Workflow By Id\n * @param {WorkflowsBetaApiGetWorkflowRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof WorkflowsBetaApi\n */\n WorkflowsBetaApi.prototype.getWorkflow = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.WorkflowsBetaApiFp)(this.configuration).getWorkflow(requestParameters.id, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * Get a single workflow execution. Workflow executions are available for up to 90 days before being archived. If you attempt to access a workflow execution that has been archived, you will receive a 404 Not Found.\n * @summary Get a Workflow Execution\n * @param {WorkflowsBetaApiGetWorkflowExecutionRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof WorkflowsBetaApi\n */\n WorkflowsBetaApi.prototype.getWorkflowExecution = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.WorkflowsBetaApiFp)(this.configuration).getWorkflowExecution(requestParameters.id, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * Get a detailed history of a single workflow execution. Workflow executions are available for up to 90 days before being archived. If you attempt to access a workflow execution that has been archived, you will receive a 404 Not Found.\n * @summary Get Workflow Execution History\n * @param {WorkflowsBetaApiGetWorkflowExecutionHistoryRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof WorkflowsBetaApi\n */\n WorkflowsBetaApi.prototype.getWorkflowExecutionHistory = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.WorkflowsBetaApiFp)(this.configuration).getWorkflowExecutionHistory(requestParameters.id, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This lists all triggers, actions, and operators in the library\n * @summary List Complete Workflow Library\n * @param {WorkflowsBetaApiListCompleteWorkflowLibraryRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof WorkflowsBetaApi\n */\n WorkflowsBetaApi.prototype.listCompleteWorkflowLibrary = function (requestParameters, axiosOptions) {\n var _this = this;\n if (requestParameters === void 0) { requestParameters = {}; }\n return (0, exports.WorkflowsBetaApiFp)(this.configuration).listCompleteWorkflowLibrary(requestParameters.limit, requestParameters.offset, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This lists the executions for a given workflow. Workflow executions are available for up to 90 days before being archived. By default, you can get a maximum of 250 executions. To get executions past the first 250 records, you can do the following: 1. Use the [Get Workflows](https://developer.sailpoint.com/idn/api/beta/list-workflows) endpoint to get your workflows. 2. Get your workflow ID from the response. 3. You can then do either of the following: - Filter to find relevant workflow executions. For example, you can filter for failed workflow executions: `GET /workflows/:workflowID/executions?filters=status eq \\\"Failed\\\"` - You can paginate through results with the `offset` parameter. For example, you can page through 50 executions per page and use that as a way to get to the records past the first 250. Refer to [Paginating Results](https://developer.sailpoint.com/idn/api/standard-collection-parameters#paginating-results) for more information about the query parameters you can use to achieve pagination.\n * @summary List Workflow Executions\n * @param {WorkflowsBetaApiListWorkflowExecutionsRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof WorkflowsBetaApi\n */\n WorkflowsBetaApi.prototype.listWorkflowExecutions = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.WorkflowsBetaApiFp)(this.configuration).listWorkflowExecutions(requestParameters.id, requestParameters.limit, requestParameters.offset, requestParameters.count, requestParameters.filters, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This lists the workflow actions available to you.\n * @summary List Workflow Library Actions\n * @param {WorkflowsBetaApiListWorkflowLibraryActionsRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof WorkflowsBetaApi\n */\n WorkflowsBetaApi.prototype.listWorkflowLibraryActions = function (requestParameters, axiosOptions) {\n var _this = this;\n if (requestParameters === void 0) { requestParameters = {}; }\n return (0, exports.WorkflowsBetaApiFp)(this.configuration).listWorkflowLibraryActions(requestParameters.limit, requestParameters.offset, requestParameters.filters, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This lists the workflow operators available to you\n * @summary List Workflow Library Operators\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof WorkflowsBetaApi\n */\n WorkflowsBetaApi.prototype.listWorkflowLibraryOperators = function (axiosOptions) {\n var _this = this;\n return (0, exports.WorkflowsBetaApiFp)(this.configuration).listWorkflowLibraryOperators(axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This lists the workflow triggers available to you\n * @summary List Workflow Library Triggers\n * @param {WorkflowsBetaApiListWorkflowLibraryTriggersRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof WorkflowsBetaApi\n */\n WorkflowsBetaApi.prototype.listWorkflowLibraryTriggers = function (requestParameters, axiosOptions) {\n var _this = this;\n if (requestParameters === void 0) { requestParameters = {}; }\n return (0, exports.WorkflowsBetaApiFp)(this.configuration).listWorkflowLibraryTriggers(requestParameters.limit, requestParameters.offset, requestParameters.filters, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * List all workflows in the tenant.\n * @summary List Workflows\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof WorkflowsBetaApi\n */\n WorkflowsBetaApi.prototype.listWorkflows = function (axiosOptions) {\n var _this = this;\n return (0, exports.WorkflowsBetaApiFp)(this.configuration).listWorkflows(axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * Partially update an existing Workflow using [JSON Patch](https://tools.ietf.org/html/rfc6902) syntax.\n * @summary Patch Workflow\n * @param {WorkflowsBetaApiPatchWorkflowRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof WorkflowsBetaApi\n */\n WorkflowsBetaApi.prototype.patchWorkflow = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.WorkflowsBetaApiFp)(this.configuration).patchWorkflow(requestParameters.id, requestParameters.jsonPatchOperationBeta, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This endpoint allows a service outside of IdentityNow to initiate a workflow that uses the \\\"External Trigger\\\" step. The external service will invoke this endpoint with the input data it wants to send to the workflow in the body.\n * @summary Execute Workflow via External Trigger\n * @param {WorkflowsBetaApiPostExternalExecuteWorkflowRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof WorkflowsBetaApi\n */\n WorkflowsBetaApi.prototype.postExternalExecuteWorkflow = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.WorkflowsBetaApiFp)(this.configuration).postExternalExecuteWorkflow(requestParameters.id, requestParameters.postExternalExecuteWorkflowRequestBeta, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * Create OAuth client ID, client secret, and callback URL for use in an external trigger. External triggers will need this information to generate an access token to authenticate to the callback URL and submit a trigger payload that will initiate the workflow.\n * @summary Generate External Trigger OAuth Client\n * @param {WorkflowsBetaApiPostWorkflowExternalTriggerRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof WorkflowsBetaApi\n */\n WorkflowsBetaApi.prototype.postWorkflowExternalTrigger = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.WorkflowsBetaApiFp)(this.configuration).postWorkflowExternalTrigger(requestParameters.id, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * Validate a workflow with an \\\"External Trigger\\\" can receive input. The response includes the input that the workflow received, which can be used to validate that the input is intact when it reaches the workflow.\n * @summary Test Workflow via External Trigger\n * @param {WorkflowsBetaApiTestExternalExecuteWorkflowRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof WorkflowsBetaApi\n */\n WorkflowsBetaApi.prototype.testExternalExecuteWorkflow = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.WorkflowsBetaApiFp)(this.configuration).testExternalExecuteWorkflow(requestParameters.id, requestParameters.testExternalExecuteWorkflowRequestBeta, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * Test a workflow with the provided input data. The input data should resemble the input that the trigger will send the workflow. See the [event trigger documentation](https://developer.sailpoint.com/idn/docs/event-triggers/available) for an example input for the trigger that initiates this workflow. This endpoint will return an execution ID, which can be used to lookup more information about the execution using the `Get a Workflow Execution` endpoint. **This will cause a live run of the workflow, which could result in unintended modifications to your IDN tenant.**\n * @summary Test Workflow By Id\n * @param {WorkflowsBetaApiTestWorkflowRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof WorkflowsBetaApi\n */\n WorkflowsBetaApi.prototype.testWorkflow = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.WorkflowsBetaApiFp)(this.configuration).testWorkflow(requestParameters.id, requestParameters.testWorkflowRequestBeta, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * Perform a full update of a workflow. The updated workflow object is returned in the response.\n * @summary Update Workflow\n * @param {WorkflowsBetaApiUpdateWorkflowRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof WorkflowsBetaApi\n */\n WorkflowsBetaApi.prototype.updateWorkflow = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.WorkflowsBetaApiFp)(this.configuration).updateWorkflow(requestParameters.id, requestParameters.workflowBodyBeta, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n return WorkflowsBetaApi;\n}(base_1.BaseAPI));\nexports.WorkflowsBetaApi = WorkflowsBetaApi;\n//# sourceMappingURL=api.js.map","\"use strict\";\n/* tslint:disable */\n/* eslint-disable */\n/**\n * IdentityNow Beta API\n * Use these APIs to interact with the IdentityNow platform to achieve repeatable, automated processes with greater scalability. These APIs are in beta and are subject to change. We encourage you to join the SailPoint Developer Community forum at https://developer.sailpoint.com/discuss to connect with other developers using our APIs.\n *\n * The version of the OpenAPI document: 3.1.0-beta\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Configuration = void 0;\nvar Configuration = /** @class */ (function () {\n function Configuration(param) {\n if (param === void 0) { param = {}; }\n this.apiKey = param.apiKey;\n this.username = param.username;\n this.password = param.password;\n this.accessToken = param.accessToken;\n this.basePath = param.basePath;\n this.baseOptions = param.baseOptions;\n this.formDataCtor = param.formDataCtor;\n }\n /**\n * Check if the given MIME is a JSON MIME.\n * JSON MIME examples:\n * application/json\n * application/json; charset=UTF8\n * APPLICATION/JSON\n * application/vnd.company+json\n * @param mime - MIME (Multipurpose Internet Mail Extensions)\n * @return True if the given MIME is JSON, false otherwise.\n */\n Configuration.prototype.isJsonMime = function (mime) {\n var jsonMime = new RegExp('^(application\\/json|[^;/ \\t]+\\/[^;/ \\t]+[+]json)[ \\t]*(;.*)?$', 'i');\n return mime !== null && (jsonMime.test(mime) || mime.toLowerCase() === 'application/json-patch+json');\n };\n return Configuration;\n}());\nexports.Configuration = Configuration;\n//# sourceMappingURL=configuration.js.map","\"use strict\";\n/* tslint:disable */\n/* eslint-disable */\n/**\n * IdentityNow V3 API\n * Use these APIs to interact with the IdentityNow platform to achieve repeatable, automated processes with greater scalability. We encourage you to join the SailPoint Developer Community forum at https://developer.sailpoint.com/discuss to connect with other developers using our APIs.\n *\n * The version of the OpenAPI document: 3.0.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.RequiredError = exports.BaseAPI = exports.COLLECTION_FORMATS = exports.BASE_PATH = void 0;\n// Some imports not used depending on template conditions\n// @ts-ignore\nvar axios_1 = __importDefault(require(\"axios\"));\nexports.BASE_PATH = \"https://sailpoint.api.identitynow.com/v3\".replace(/\\/+$/, \"\");\n/**\n *\n * @export\n */\nexports.COLLECTION_FORMATS = {\n csv: \",\",\n ssv: \" \",\n tsv: \"\\t\",\n pipes: \"|\",\n};\n/**\n *\n * @export\n * @class BaseAPI\n */\nvar BaseAPI = /** @class */ (function () {\n function BaseAPI(configuration, basePath, axios) {\n if (basePath === void 0) { basePath = exports.BASE_PATH; }\n if (axios === void 0) { axios = axios_1.default; }\n this.basePath = basePath;\n this.axios = axios;\n if (configuration) {\n this.configuration = configuration;\n this.basePath = configuration.basePathV3 || this.basePath;\n }\n }\n return BaseAPI;\n}());\nexports.BaseAPI = BaseAPI;\n;\n/**\n *\n * @export\n * @class RequiredError\n * @extends {Error}\n */\nvar RequiredError = /** @class */ (function (_super) {\n __extends(RequiredError, _super);\n function RequiredError(field, msg) {\n var _this = _super.call(this, msg) || this;\n _this.field = field;\n _this.name = \"RequiredError\";\n return _this;\n }\n return RequiredError;\n}(Error));\nexports.RequiredError = RequiredError;\n//# sourceMappingURL=base.js.map","\"use strict\";\n/* tslint:disable */\n/* eslint-disable */\n/**\n * IdentityNow V3 API\n * Use these APIs to interact with the IdentityNow platform to achieve repeatable, automated processes with greater scalability. We encourage you to join the SailPoint Developer Community forum at https://developer.sailpoint.com/discuss to connect with other developers using our APIs.\n *\n * The version of the OpenAPI document: 3.0.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.createRequestFunction = exports.toPathString = exports.serializeDataIfNeeded = exports.setSearchParams = exports.setOAuthToObject = exports.setBearerAuthToObject = exports.setBasicAuthToObject = exports.setApiKeyToObject = exports.assertParamExists = exports.DUMMY_BASE_URL = void 0;\nvar base_1 = require(\"./base\");\nvar axios_retry_1 = __importDefault(require(\"axios-retry\"));\n/**\n *\n * @export\n */\nexports.DUMMY_BASE_URL = 'https://example.com';\n/**\n *\n * @throws {RequiredError}\n * @export\n */\nvar assertParamExists = function (functionName, paramName, paramValue) {\n if (paramValue === null || paramValue === undefined) {\n throw new base_1.RequiredError(paramName, \"Required parameter \".concat(paramName, \" was null or undefined when calling \").concat(functionName, \".\"));\n }\n};\nexports.assertParamExists = assertParamExists;\n/**\n *\n * @export\n */\nvar setApiKeyToObject = function (object, keyParamName, configuration) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarApiKeyValue, _a;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n if (!(configuration && configuration.apiKey)) return [3 /*break*/, 5];\n if (!(typeof configuration.apiKey === 'function')) return [3 /*break*/, 2];\n return [4 /*yield*/, configuration.apiKey(keyParamName)];\n case 1:\n _a = _b.sent();\n return [3 /*break*/, 4];\n case 2: return [4 /*yield*/, configuration.apiKey];\n case 3:\n _a = _b.sent();\n _b.label = 4;\n case 4:\n localVarApiKeyValue = _a;\n object[keyParamName] = localVarApiKeyValue;\n _b.label = 5;\n case 5: return [2 /*return*/];\n }\n });\n });\n};\nexports.setApiKeyToObject = setApiKeyToObject;\n/**\n *\n * @export\n */\nvar setBasicAuthToObject = function (object, configuration) {\n if (configuration && (configuration.username || configuration.password)) {\n object[\"auth\"] = { username: configuration.username, password: configuration.password };\n }\n};\nexports.setBasicAuthToObject = setBasicAuthToObject;\n/**\n *\n * @export\n */\nvar setBearerAuthToObject = function (object, configuration) {\n return __awaiter(this, void 0, void 0, function () {\n var accessToken, _a;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n if (!(configuration && configuration.accessToken)) return [3 /*break*/, 5];\n if (!(typeof configuration.accessToken === 'function')) return [3 /*break*/, 2];\n return [4 /*yield*/, configuration.accessToken()];\n case 1:\n _a = _b.sent();\n return [3 /*break*/, 4];\n case 2: return [4 /*yield*/, configuration.accessToken];\n case 3:\n _a = _b.sent();\n _b.label = 4;\n case 4:\n accessToken = _a;\n object[\"Authorization\"] = \"Bearer \" + accessToken;\n _b.label = 5;\n case 5: return [2 /*return*/];\n }\n });\n });\n};\nexports.setBearerAuthToObject = setBearerAuthToObject;\n/**\n *\n * @export\n */\nvar setOAuthToObject = function (object, name, scopes, configuration) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAccessTokenValue, _a;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n if (!(configuration && configuration.accessToken)) return [3 /*break*/, 5];\n if (!(typeof configuration.accessToken === 'function')) return [3 /*break*/, 2];\n return [4 /*yield*/, configuration.accessToken(name, scopes)];\n case 1:\n _a = _b.sent();\n return [3 /*break*/, 4];\n case 2: return [4 /*yield*/, configuration.accessToken];\n case 3:\n _a = _b.sent();\n _b.label = 4;\n case 4:\n localVarAccessTokenValue = _a;\n object[\"Authorization\"] = \"Bearer \" + localVarAccessTokenValue;\n _b.label = 5;\n case 5: return [2 /*return*/];\n }\n });\n });\n};\nexports.setOAuthToObject = setOAuthToObject;\n/**\n *\n * @export\n */\nvar setSearchParams = function (url) {\n var objects = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n objects[_i - 1] = arguments[_i];\n }\n var searchParams = new URLSearchParams(url.search);\n for (var _a = 0, objects_1 = objects; _a < objects_1.length; _a++) {\n var object = objects_1[_a];\n for (var key in object) {\n if (Array.isArray(object[key])) {\n searchParams.delete(key);\n for (var _b = 0, _c = object[key]; _b < _c.length; _b++) {\n var item = _c[_b];\n searchParams.append(key, item);\n }\n }\n else {\n searchParams.set(key, object[key]);\n }\n }\n }\n url.search = searchParams.toString();\n};\nexports.setSearchParams = setSearchParams;\n/**\n *\n * @export\n */\nvar serializeDataIfNeeded = function (value, requestOptions, configuration) {\n var nonString = typeof value !== 'string';\n var needsSerialization = nonString && configuration && configuration.isJsonMime\n ? configuration.isJsonMime(requestOptions.headers['Content-Type'])\n : nonString;\n return needsSerialization\n ? JSON.stringify(value !== undefined ? value : {})\n : (value || \"\");\n};\nexports.serializeDataIfNeeded = serializeDataIfNeeded;\n/**\n *\n * @export\n */\nvar toPathString = function (url) {\n return url.pathname + url.search + url.hash;\n};\nexports.toPathString = toPathString;\n/**\n *\n * @export\n */\nvar createRequestFunction = function (axiosArgs, globalAxios, BASE_PATH, configuration) {\n return function (axios, basePath) {\n if (axios === void 0) { axios = globalAxios; }\n if (basePath === void 0) { basePath = BASE_PATH; }\n (0, axios_retry_1.default)(globalAxios, configuration.retriesConfig);\n axiosArgs.axiosOptions.headers['X-SailPoint-SDK'] = 'typescript-1.3.0';\n axiosArgs.axiosOptions.headers['User-Agent'] = 'OpenAPI-Generator/1.3.0/ts';\n var axiosRequestArgs = __assign(__assign({}, axiosArgs.axiosOptions), { url: ((configuration === null || configuration === void 0 ? void 0 : configuration.basePathV3) || basePath) + axiosArgs.url });\n return axios.request(axiosRequestArgs);\n };\n};\nexports.createRequestFunction = createRequestFunction;\n//# sourceMappingURL=common.js.map","\"use strict\";\n/* tslint:disable */\n/* eslint-disable */\n/**\n * IdentityNow V3 API\n * Use these APIs to interact with the IdentityNow platform to achieve repeatable, automated processes with greater scalability. We encourage you to join the SailPoint Developer Community forum at https://developer.sailpoint.com/discuss to connect with other developers using our APIs.\n *\n * The version of the OpenAPI document: 3.0.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.CertificationDecision = exports.CampaignTemplateOwnerRefTypeEnum = exports.CampaignReportStatusEnum = exports.CampaignReportTypeEnum = exports.CampaignReferenceMandatoryCommentRequirementEnum = exports.CampaignReferenceCorrelatedStatusEnum = exports.CampaignReferenceCampaignTypeEnum = exports.CampaignReferenceTypeEnum = exports.CampaignFilterDetailsModeEnum = exports.CampaignCompleteOptionsAutoCompleteActionEnum = exports.CampaignAllOfSourcesWithOrphanEntitlementsTypeEnum = exports.CampaignAllOfSearchCampaignInfoReviewerTypeEnum = exports.CampaignAllOfSearchCampaignInfoTypeEnum = exports.CampaignAllOfRoleCompositionCampaignInfoRemediatorRefTypeEnum = exports.CampaignAllOfFilterTypeEnum = exports.CampaignAllOfMandatoryCommentRequirementEnum = exports.CampaignAllOfCorrelatedStatusEnum = exports.CampaignAlertLevelEnum = exports.CampaignMandatoryCommentRequirementEnum = exports.CampaignCorrelatedStatusEnum = exports.CampaignStatusEnum = exports.CampaignTypeEnum = exports.BulkTaggedObjectOperationEnum = exports.BucketType = exports.BeforeProvisioningRuleDtoTypeEnum = exports.AttributeDefinitionType = exports.AttributeDefinitionSchemaTypeEnum = exports.ApprovalStatusDtoOriginalOwnerTypeEnum = exports.ApprovalStatus = exports.ApprovalSchemeForRoleApproverTypeEnum = exports.ApprovalScheme = exports.AggregationType = exports.AdminReviewReassignReassignToTypeEnum = exports.AccountActivityItemOperation = exports.AccountActionActionEnum = exports.AccessType = exports.AccessRequestType = exports.AccessRequestPhasesResultEnum = exports.AccessRequestPhasesStateEnum = exports.AccessRequestItemTypeEnum = exports.AccessProfileUsageUsedByInnerTypeEnum = exports.AccessProfileSourceRefTypeEnum = exports.AccessProfileRefTypeEnum = exports.AccessProfileApprovalSchemeApproverTypeEnum = exports.AccessItemReviewedByTypeEnum = exports.AccessItemRequesterTypeEnum = exports.AccessItemRequestedForTypeEnum = exports.AccessCriteriaCriteriaListInnerTypeEnum = exports.AccessConstraintOperatorEnum = exports.AccessConstraintTypeEnum = void 0;\nexports.ProvisioningConfigManagedResourceRefsInnerTypeEnum = exports.PreApprovalTriggerDetailsDecisionEnum = exports.PendingApprovalOwnerTypeEnum = exports.PendingApprovalAction = exports.PatOwnerTypeEnum = exports.PasswordStatusStateEnum = exports.PasswordChangeResponseStateEnum = exports.OwnerReferenceSegmentsTypeEnum = exports.OwnerReferenceTypeEnum = exports.OwnerDtoTypeEnum = exports.Operation = exports.NonEmployeeSchemaAttributeType = exports.NonEmployeeIdentityDtoType = exports.NonEmployeeBulkUploadStatusStatusEnum = exports.NonEmployeeBulkUploadJobStatusEnum = exports.NamedConstructs = exports.MetricType = exports.ManualWorkItemState = exports.ManualWorkItemDetailsOriginalOwnerTypeEnum = exports.ManualWorkItemDetailsCurrentOwnerTypeEnum = exports.LocaleOrigin = exports.LifecyclestateDeletedTypeEnum = exports.JsonPatchOperationOpEnum = exports.Index = exports.ImportObjectTypeEnum = exports.IdentityWithNewAccessAccessRefsInnerTypeEnum = exports.IdentityWithNewAccess1AccessRefsInnerTypeEnum = exports.IdentityProfileExportedObjectSelfTypeEnum = exports.IdentityProfileAllOfOwnerTypeEnum = exports.IdentityProfileAllOfAuthoritativeSourceTypeEnum = exports.GrantType = exports.FilterType = exports.ExpressionOperatorEnum = exports.ExecutionStatus = exports.ExceptionCriteriaCriteriaListInnerTypeEnum = exports.EntitlementRefTypeEnum = exports.DtoType = exports.DocumentType = exports.DeleteSource202ResponseTypeEnum = exports.DateCompareOperatorEnum = exports.CriteriaType = exports.CompletionStatus = exports.CompletedApprovalState = exports.CommentDtoAuthorTypeEnum = exports.ClientType = exports.CertificationTaskStatusEnum = exports.CertificationTaskTargetTypeEnum = exports.CertificationTaskTypeEnum = exports.CertificationReferenceTypeEnum = exports.CertificationPhase = void 0;\nexports.SourceOwnerTypeEnum = exports.SourceManagerCorrelationRuleTypeEnum = exports.SourceManagementWorkgroupTypeEnum = exports.SourceHealthDtoStatusEnum = exports.SourceFeature = exports.SourceClusterDtoTypeEnum = exports.SourceClusterTypeEnum = exports.SourceBeforeProvisioningRuleTypeEnum = exports.SourceAccountCorrelationRuleTypeEnum = exports.SourceAccountCorrelationConfigTypeEnum = exports.SodViolationContextCheckCompletedStateEnum = exports.SodReportResultDtoTypeEnum = exports.SodRecipientTypeEnum = exports.SodPolicyDtoTypeEnum = exports.SodPolicyTypeEnum = exports.SodPolicyStateEnum = exports.SlimCampaignCorrelatedStatusEnum = exports.SlimCampaignStatusEnum = exports.SlimCampaignTypeEnum = exports.ServiceDeskSourceTypeEnum = exports.ServiceDeskIntegrationDtoAllOfOwnerRefTypeEnum = exports.SelectorType = exports.SearchScheduleRecipientsInnerTypeEnum = exports.SearchFilterType = exports.ScheduledSearchAllOfOwnerTypeEnum = exports.ScheduleType = exports.ScheduleMonthsTypeEnum = exports.ScheduleHoursTypeEnum = exports.ScheduleDaysTypeEnum = exports.ScheduleTypeEnum = exports.RoleMembershipSelectorType = exports.RoleCriteriaOperation = exports.RoleCriteriaKeyType = exports.RoleAssignmentSourceType = exports.ReviewerTypeEnum = exports.RequestedItemStatusRequestState = exports.RequestedItemStatusTypeEnum = exports.RequestableObjectType = exports.RequestableObjectRequestStatus = exports.RequestableObjectReferenceTypeEnum = exports.ReportType = exports.ReportResultReferenceAllOfStatusEnum = exports.ReportResultReferenceStatusEnum = exports.ReportResultReferenceTypeEnum = exports.ReassignmentType = exports.ReassignmentReferenceTypeEnum = exports.ReassignReferenceTypeEnum = exports.QueryType = exports.ProvisioningState = exports.ProvisioningCriteriaOperation = void 0;\nexports.CertificationCampaignsApi = exports.CertificationCampaignsApiFactory = exports.CertificationCampaignsApiFp = exports.CertificationCampaignsApiAxiosParamCreator = exports.CertificationCampaignFiltersApi = exports.CertificationCampaignFiltersApiFactory = exports.CertificationCampaignFiltersApiFp = exports.CertificationCampaignFiltersApiAxiosParamCreator = exports.AuthUserApi = exports.AuthUserApiFactory = exports.AuthUserApiFp = exports.AuthUserApiAxiosParamCreator = exports.AccountsApi = exports.AccountsApiFactory = exports.AccountsApiFp = exports.AccountsApiAxiosParamCreator = exports.AccountUsagesApi = exports.AccountUsagesApiFactory = exports.AccountUsagesApiFp = exports.AccountUsagesApiAxiosParamCreator = exports.AccountActivitiesApi = exports.AccountActivitiesApiFactory = exports.AccountActivitiesApiFp = exports.AccountActivitiesApiAxiosParamCreator = exports.AccessRequestsApi = exports.AccessRequestsApiFactory = exports.AccessRequestsApiFp = exports.AccessRequestsApiAxiosParamCreator = exports.AccessRequestApprovalsApi = exports.AccessRequestApprovalsApiFactory = exports.AccessRequestApprovalsApiFp = exports.AccessRequestApprovalsApiAxiosParamCreator = exports.AccessProfilesApi = exports.AccessProfilesApiFactory = exports.AccessProfilesApiFp = exports.AccessProfilesApiAxiosParamCreator = exports.WorkItemType = exports.WorkItemState = exports.ViolationOwnerAssignmentConfigOwnerRefTypeEnum = exports.ViolationOwnerAssignmentConfigAssignmentRuleEnum = exports.ViolationContextPolicyTypeEnum = exports.UsageType = exports.TransformReadTypeEnum = exports.TransformTypeEnum = exports.TaskResultSimplifiedCompletionStatusEnum = exports.TaskResultDtoTypeEnum = exports.TaggedObjectDtoTypeEnum = exports.SourceUsageStatusStatusEnum = exports.SourceSchemasInnerTypeEnum = exports.SourcePasswordPoliciesInnerTypeEnum = void 0;\nexports.PublicIdentitiesApiFp = exports.PublicIdentitiesApiAxiosParamCreator = exports.PersonalAccessTokensApi = exports.PersonalAccessTokensApiFactory = exports.PersonalAccessTokensApiFp = exports.PersonalAccessTokensApiAxiosParamCreator = exports.PasswordSyncGroupsApi = exports.PasswordSyncGroupsApiFactory = exports.PasswordSyncGroupsApiFp = exports.PasswordSyncGroupsApiAxiosParamCreator = exports.PasswordManagementApi = exports.PasswordManagementApiFactory = exports.PasswordManagementApiFp = exports.PasswordManagementApiAxiosParamCreator = exports.PasswordDictionaryApi = exports.PasswordDictionaryApiFactory = exports.PasswordDictionaryApiFp = exports.PasswordDictionaryApiAxiosParamCreator = exports.PasswordConfigurationApi = exports.PasswordConfigurationApiFactory = exports.PasswordConfigurationApiFp = exports.PasswordConfigurationApiAxiosParamCreator = exports.OAuthClientsApi = exports.OAuthClientsApiFactory = exports.OAuthClientsApiFp = exports.OAuthClientsApiAxiosParamCreator = exports.NonEmployeeLifecycleManagementApi = exports.NonEmployeeLifecycleManagementApiFactory = exports.NonEmployeeLifecycleManagementApiFp = exports.NonEmployeeLifecycleManagementApiAxiosParamCreator = exports.LifecycleStatesApi = exports.LifecycleStatesApiFactory = exports.LifecycleStatesApiFp = exports.LifecycleStatesApiAxiosParamCreator = exports.IdentityProfilesApi = exports.IdentityProfilesApiFactory = exports.IdentityProfilesApiFp = exports.IdentityProfilesApiAxiosParamCreator = exports.GlobalTenantSecuritySettingsApi = exports.GlobalTenantSecuritySettingsApiFactory = exports.GlobalTenantSecuritySettingsApiFp = exports.GlobalTenantSecuritySettingsApiAxiosParamCreator = exports.CertificationsApi = exports.CertificationsApiFactory = exports.CertificationsApiFp = exports.CertificationsApiAxiosParamCreator = exports.CertificationSummariesApi = exports.CertificationSummariesApiFactory = exports.CertificationSummariesApiFp = exports.CertificationSummariesApiAxiosParamCreator = void 0;\nexports.SourcesApi = exports.SourcesApiFactory = exports.SourcesApiFp = exports.SourcesApiAxiosParamCreator = exports.SourceUsagesApi = exports.SourceUsagesApiFactory = exports.SourceUsagesApiFp = exports.SourceUsagesApiAxiosParamCreator = exports.ServiceDeskIntegrationApi = exports.ServiceDeskIntegrationApiFactory = exports.ServiceDeskIntegrationApiFp = exports.ServiceDeskIntegrationApiAxiosParamCreator = exports.SegmentsApi = exports.SegmentsApiFactory = exports.SegmentsApiFp = exports.SegmentsApiAxiosParamCreator = exports.SearchApi = exports.SearchApiFactory = exports.SearchApiFp = exports.SearchApiAxiosParamCreator = exports.ScheduledSearchApi = exports.ScheduledSearchApiFactory = exports.ScheduledSearchApiFp = exports.ScheduledSearchApiAxiosParamCreator = exports.SavedSearchApi = exports.SavedSearchApiFactory = exports.SavedSearchApiFp = exports.SavedSearchApiAxiosParamCreator = exports.SODViolationsApi = exports.SODViolationsApiFactory = exports.SODViolationsApiFp = exports.SODViolationsApiAxiosParamCreator = exports.SODPolicyApi = exports.SODPolicyApiFactory = exports.SODPolicyApiFp = exports.SODPolicyApiAxiosParamCreator = exports.RolesApi = exports.RolesApiFactory = exports.RolesApiFp = exports.RolesApiAxiosParamCreator = exports.RequestableObjectsApi = exports.RequestableObjectsApiFactory = exports.RequestableObjectsApiFp = exports.RequestableObjectsApiAxiosParamCreator = exports.PublicIdentitiesConfigApi = exports.PublicIdentitiesConfigApiFactory = exports.PublicIdentitiesConfigApiFp = exports.PublicIdentitiesConfigApiAxiosParamCreator = exports.PublicIdentitiesApi = exports.PublicIdentitiesApiFactory = void 0;\nexports.WorkItemsApi = exports.WorkItemsApiFactory = exports.WorkItemsApiFp = exports.WorkItemsApiAxiosParamCreator = exports.TransformsApi = exports.TransformsApiFactory = exports.TransformsApiFp = exports.TransformsApiAxiosParamCreator = exports.TaggedObjectsApi = exports.TaggedObjectsApiFactory = exports.TaggedObjectsApiFp = exports.TaggedObjectsApiAxiosParamCreator = void 0;\nvar axios_1 = __importDefault(require(\"axios\"));\n// Some imports not used depending on template conditions\n// @ts-ignore\nvar common_1 = require(\"./common\");\n// @ts-ignore\nvar base_1 = require(\"./base\");\nexports.AccessConstraintTypeEnum = {\n Entitlement: 'ENTITLEMENT',\n AccessProfile: 'ACCESS_PROFILE',\n Role: 'ROLE'\n};\nexports.AccessConstraintOperatorEnum = {\n All: 'ALL',\n Selected: 'SELECTED'\n};\nexports.AccessCriteriaCriteriaListInnerTypeEnum = {\n Entitlement: 'ENTITLEMENT'\n};\nexports.AccessItemRequestedForTypeEnum = {\n Identity: 'IDENTITY'\n};\nexports.AccessItemRequesterTypeEnum = {\n Identity: 'IDENTITY'\n};\nexports.AccessItemReviewedByTypeEnum = {\n Identity: 'IDENTITY'\n};\nexports.AccessProfileApprovalSchemeApproverTypeEnum = {\n AppOwner: 'APP_OWNER',\n Owner: 'OWNER',\n SourceOwner: 'SOURCE_OWNER',\n Manager: 'MANAGER',\n GovernanceGroup: 'GOVERNANCE_GROUP'\n};\nexports.AccessProfileRefTypeEnum = {\n AccessProfile: 'ACCESS_PROFILE'\n};\nexports.AccessProfileSourceRefTypeEnum = {\n Source: 'SOURCE'\n};\nexports.AccessProfileUsageUsedByInnerTypeEnum = {\n Role: 'ROLE'\n};\nexports.AccessRequestItemTypeEnum = {\n AccessProfile: 'ACCESS_PROFILE',\n Role: 'ROLE',\n Entitlement: 'ENTITLEMENT'\n};\nexports.AccessRequestPhasesStateEnum = {\n Pending: 'PENDING',\n Executing: 'EXECUTING',\n Completed: 'COMPLETED',\n Cancelled: 'CANCELLED'\n};\nexports.AccessRequestPhasesResultEnum = {\n Successful: 'SUCCESSFUL',\n Failed: 'FAILED'\n};\n/**\n * Access request type. Defaults to GRANT_ACCESS. REVOKE_ACCESS type can only have a single Identity ID in the requestedFor field.\n * @export\n * @enum {string}\n */\nexports.AccessRequestType = {\n GrantAccess: 'GRANT_ACCESS',\n RevokeAccess: 'REVOKE_ACCESS'\n};\n/**\n * Access type of API Client indicating online or offline use\n * @export\n * @enum {string}\n */\nexports.AccessType = {\n Online: 'ONLINE',\n Offline: 'OFFLINE'\n};\nexports.AccountActionActionEnum = {\n Enable: 'ENABLE',\n Disable: 'DISABLE'\n};\n/**\n * Represents an operation in an account activity item\n * @export\n * @enum {string}\n */\nexports.AccountActivityItemOperation = {\n Add: 'ADD',\n Create: 'CREATE',\n Modify: 'MODIFY',\n Delete: 'DELETE',\n Disable: 'DISABLE',\n Enable: 'ENABLE',\n Unlock: 'UNLOCK',\n Lock: 'LOCK',\n Remove: 'REMOVE'\n};\nexports.AdminReviewReassignReassignToTypeEnum = {\n Identity: 'IDENTITY'\n};\n/**\n * Enum representing the currently available query languages for aggregations, which are used to perform calculations or groupings on search results. Additional values may be added in the future without notice.\n * @export\n * @enum {string}\n */\nexports.AggregationType = {\n Dsl: 'DSL',\n Sailpoint: 'SAILPOINT'\n};\n/**\n * Describes the individual or group that is responsible for an approval step.\n * @export\n * @enum {string}\n */\nexports.ApprovalScheme = {\n AppOwner: 'APP_OWNER',\n SourceOwner: 'SOURCE_OWNER',\n Manager: 'MANAGER',\n RoleOwner: 'ROLE_OWNER',\n AccessProfileOwner: 'ACCESS_PROFILE_OWNER',\n EntitlementOwner: 'ENTITLEMENT_OWNER',\n GovernanceGroup: 'GOVERNANCE_GROUP'\n};\nexports.ApprovalSchemeForRoleApproverTypeEnum = {\n Owner: 'OWNER',\n Manager: 'MANAGER',\n GovernanceGroup: 'GOVERNANCE_GROUP'\n};\n/**\n * Enum representing the non-employee request approval status\n * @export\n * @enum {string}\n */\nexports.ApprovalStatus = {\n Approved: 'APPROVED',\n Rejected: 'REJECTED',\n Pending: 'PENDING',\n NotReady: 'NOT_READY',\n Cancelled: 'CANCELLED'\n};\nexports.ApprovalStatusDtoOriginalOwnerTypeEnum = {\n GovernanceGroup: 'GOVERNANCE_GROUP',\n Identity: 'IDENTITY'\n};\nexports.AttributeDefinitionSchemaTypeEnum = {\n ConnectorSchema: 'CONNECTOR_SCHEMA'\n};\n/**\n * The underlying type of the value which an AttributeDefinition represents.\n * @export\n * @enum {string}\n */\nexports.AttributeDefinitionType = {\n String: 'STRING',\n Long: 'LONG',\n Int: 'INT',\n Boolean: 'BOOLEAN'\n};\nexports.BeforeProvisioningRuleDtoTypeEnum = {\n Rule: 'RULE'\n};\n/**\n * Enum representing the currently supported bucket aggregation types. Additional values may be added in the future without notice.\n * @export\n * @enum {string}\n */\nexports.BucketType = {\n Terms: 'TERMS'\n};\nexports.BulkTaggedObjectOperationEnum = {\n Append: 'APPEND',\n Merge: 'MERGE'\n};\nexports.CampaignTypeEnum = {\n Manager: 'MANAGER',\n SourceOwner: 'SOURCE_OWNER',\n Search: 'SEARCH',\n RoleComposition: 'ROLE_COMPOSITION'\n};\nexports.CampaignStatusEnum = {\n Pending: 'PENDING',\n Staged: 'STAGED',\n Canceling: 'CANCELING',\n Activating: 'ACTIVATING',\n Active: 'ACTIVE',\n Completing: 'COMPLETING',\n Completed: 'COMPLETED',\n Error: 'ERROR',\n Archived: 'ARCHIVED'\n};\nexports.CampaignCorrelatedStatusEnum = {\n Correlated: 'CORRELATED',\n Uncorrelated: 'UNCORRELATED'\n};\nexports.CampaignMandatoryCommentRequirementEnum = {\n AllDecisions: 'ALL_DECISIONS',\n RevokeOnlyDecisions: 'REVOKE_ONLY_DECISIONS',\n NoDecisions: 'NO_DECISIONS'\n};\nexports.CampaignAlertLevelEnum = {\n Error: 'ERROR',\n Warn: 'WARN',\n Info: 'INFO'\n};\nexports.CampaignAllOfCorrelatedStatusEnum = {\n Correlated: 'CORRELATED',\n Uncorrelated: 'UNCORRELATED'\n};\nexports.CampaignAllOfMandatoryCommentRequirementEnum = {\n AllDecisions: 'ALL_DECISIONS',\n RevokeOnlyDecisions: 'REVOKE_ONLY_DECISIONS',\n NoDecisions: 'NO_DECISIONS'\n};\nexports.CampaignAllOfFilterTypeEnum = {\n CampaignFilter: 'CAMPAIGN_FILTER',\n Rule: 'RULE'\n};\nexports.CampaignAllOfRoleCompositionCampaignInfoRemediatorRefTypeEnum = {\n Identity: 'IDENTITY'\n};\nexports.CampaignAllOfSearchCampaignInfoTypeEnum = {\n Identity: 'IDENTITY',\n Access: 'ACCESS'\n};\nexports.CampaignAllOfSearchCampaignInfoReviewerTypeEnum = {\n GovernanceGroup: 'GOVERNANCE_GROUP',\n Identity: 'IDENTITY'\n};\nexports.CampaignAllOfSourcesWithOrphanEntitlementsTypeEnum = {\n Source: 'SOURCE'\n};\nexports.CampaignCompleteOptionsAutoCompleteActionEnum = {\n Approve: 'APPROVE',\n Revoke: 'REVOKE'\n};\nexports.CampaignFilterDetailsModeEnum = {\n Inclusion: 'INCLUSION',\n Exclusion: 'EXCLUSION'\n};\nexports.CampaignReferenceTypeEnum = {\n Campaign: 'CAMPAIGN'\n};\nexports.CampaignReferenceCampaignTypeEnum = {\n Manager: 'MANAGER',\n SourceOwner: 'SOURCE_OWNER',\n Search: 'SEARCH'\n};\nexports.CampaignReferenceCorrelatedStatusEnum = {\n Correlated: 'CORRELATED',\n Uncorrelated: 'UNCORRELATED'\n};\nexports.CampaignReferenceMandatoryCommentRequirementEnum = {\n AllDecisions: 'ALL_DECISIONS',\n RevokeOnlyDecisions: 'REVOKE_ONLY_DECISIONS',\n NoDecisions: 'NO_DECISIONS'\n};\nexports.CampaignReportTypeEnum = {\n ReportResult: 'REPORT_RESULT'\n};\nexports.CampaignReportStatusEnum = {\n Success: 'SUCCESS',\n Warning: 'WARNING',\n Error: 'ERROR',\n Terminated: 'TERMINATED',\n TempError: 'TEMP_ERROR',\n Pending: 'PENDING'\n};\nexports.CampaignTemplateOwnerRefTypeEnum = {\n Identity: 'IDENTITY'\n};\n/**\n * The decision to approve or revoke the review item\n * @export\n * @enum {string}\n */\nexports.CertificationDecision = {\n Approve: 'APPROVE',\n Revoke: 'REVOKE'\n};\n/**\n * The current phase of the campaign. * `STAGED`: The campaign is waiting to be activated. * `ACTIVE`: The campaign is active. * `SIGNED`: The reviewer has signed off on the campaign, and it is considered complete.\n * @export\n * @enum {string}\n */\nexports.CertificationPhase = {\n Staged: 'STAGED',\n Active: 'ACTIVE',\n Signed: 'SIGNED'\n};\nexports.CertificationReferenceTypeEnum = {\n Certification: 'CERTIFICATION'\n};\nexports.CertificationTaskTypeEnum = {\n Reassign: 'REASSIGN',\n AdminReassign: 'ADMIN_REASSIGN',\n CompleteCertification: 'COMPLETE_CERTIFICATION',\n FinishCertification: 'FINISH_CERTIFICATION',\n CompleteCampaign: 'COMPLETE_CAMPAIGN',\n ActivateCampaign: 'ACTIVATE_CAMPAIGN',\n CampaignCreate: 'CAMPAIGN_CREATE',\n CampaignDelete: 'CAMPAIGN_DELETE'\n};\nexports.CertificationTaskTargetTypeEnum = {\n Certification: 'CERTIFICATION',\n Campaign: 'CAMPAIGN'\n};\nexports.CertificationTaskStatusEnum = {\n Queued: 'QUEUED',\n InProgress: 'IN_PROGRESS',\n Success: 'SUCCESS',\n Error: 'ERROR'\n};\n/**\n * Type of an API Client indicating public or confidentials use\n * @export\n * @enum {string}\n */\nexports.ClientType = {\n Confidential: 'CONFIDENTIAL',\n Public: 'PUBLIC'\n};\nexports.CommentDtoAuthorTypeEnum = {\n Identity: 'IDENTITY'\n};\n/**\n * Enum represents completed approval object\\'s state.\n * @export\n * @enum {string}\n */\nexports.CompletedApprovalState = {\n Approved: 'APPROVED',\n Rejected: 'REJECTED'\n};\n/**\n * The status after completion.\n * @export\n * @enum {string}\n */\nexports.CompletionStatus = {\n Success: 'SUCCESS',\n Failure: 'FAILURE',\n Incomplete: 'INCOMPLETE',\n Pending: 'PENDING'\n};\n/**\n * Type of the criteria in the filter.\n * @export\n * @enum {string}\n */\nexports.CriteriaType = {\n Composite: 'COMPOSITE',\n Role: 'ROLE',\n Identity: 'IDENTITY',\n IdentityAttribute: 'IDENTITY_ATTRIBUTE',\n Entitlement: 'ENTITLEMENT',\n InvalidCertifiableEntity: 'INVALID_CERTIFIABLE_ENTITY',\n AccessProfile: 'ACCESS_PROFILE',\n Source: 'SOURCE',\n Account: 'ACCOUNT',\n InvalidCertifiableBundle: 'INVALID_CERTIFIABLE_BUNDLE',\n AggregatedEntitlement: 'AGGREGATED_ENTITLEMENT'\n};\nexports.DateCompareOperatorEnum = {\n Lt: 'LT',\n Lte: 'LTE',\n Gt: 'GT',\n Gte: 'GTE'\n};\nexports.DeleteSource202ResponseTypeEnum = {\n TaskResult: 'TASK_RESULT'\n};\n/**\n * Enum representing the currently supported document types. Additional values may be added in the future without notice.\n * @export\n * @enum {string}\n */\nexports.DocumentType = {\n Accessprofile: 'accessprofile',\n Accountactivity: 'accountactivity',\n Account: 'account',\n Aggregation: 'aggregation',\n Entitlement: 'entitlement',\n Event: 'event',\n Identity: 'identity',\n Role: 'role'\n};\n/**\n * An enumeration of the types of DTOs supported within the IdentityNow infrastructure.\n * @export\n * @enum {string}\n */\nexports.DtoType = {\n AccountCorrelationConfig: 'ACCOUNT_CORRELATION_CONFIG',\n AccessProfile: 'ACCESS_PROFILE',\n AccessRequestApproval: 'ACCESS_REQUEST_APPROVAL',\n Account: 'ACCOUNT',\n Application: 'APPLICATION',\n Campaign: 'CAMPAIGN',\n CampaignFilter: 'CAMPAIGN_FILTER',\n Certification: 'CERTIFICATION',\n Cluster: 'CLUSTER',\n ConnectorSchema: 'CONNECTOR_SCHEMA',\n Entitlement: 'ENTITLEMENT',\n GovernanceGroup: 'GOVERNANCE_GROUP',\n Identity: 'IDENTITY',\n IdentityProfile: 'IDENTITY_PROFILE',\n IdentityRequest: 'IDENTITY_REQUEST',\n LifecycleState: 'LIFECYCLE_STATE',\n PasswordPolicy: 'PASSWORD_POLICY',\n Role: 'ROLE',\n Rule: 'RULE',\n SodPolicy: 'SOD_POLICY',\n Source: 'SOURCE',\n Tag: 'TAG',\n TagCategory: 'TAG_CATEGORY',\n TaskResult: 'TASK_RESULT',\n ReportResult: 'REPORT_RESULT',\n SodViolation: 'SOD_VIOLATION',\n AccountActivity: 'ACCOUNT_ACTIVITY',\n Workgroup: 'WORKGROUP'\n};\nexports.EntitlementRefTypeEnum = {\n Entitlement: 'ENTITLEMENT'\n};\nexports.ExceptionCriteriaCriteriaListInnerTypeEnum = {\n Entitlement: 'ENTITLEMENT'\n};\n/**\n * The current state of execution.\n * @export\n * @enum {string}\n */\nexports.ExecutionStatus = {\n Executing: 'EXECUTING',\n Verifying: 'VERIFYING',\n Terminated: 'TERMINATED',\n Completed: 'COMPLETED'\n};\nexports.ExpressionOperatorEnum = {\n And: 'AND',\n Equals: 'EQUALS'\n};\n/**\n * Enum representing the currently supported filter types. Additional values may be added in the future without notice.\n * @export\n * @enum {string}\n */\nexports.FilterType = {\n Exists: 'EXISTS',\n Range: 'RANGE',\n Terms: 'TERMS'\n};\n/**\n * OAuth2 Grant Type\n * @export\n * @enum {string}\n */\nexports.GrantType = {\n ClientCredentials: 'CLIENT_CREDENTIALS',\n AuthorizationCode: 'AUTHORIZATION_CODE',\n RefreshToken: 'REFRESH_TOKEN'\n};\nexports.IdentityProfileAllOfAuthoritativeSourceTypeEnum = {\n Source: 'SOURCE'\n};\nexports.IdentityProfileAllOfOwnerTypeEnum = {\n Identity: 'IDENTITY'\n};\nexports.IdentityProfileExportedObjectSelfTypeEnum = {\n AccessProfile: 'ACCESS_PROFILE',\n AccessRequestConfig: 'ACCESS_REQUEST_CONFIG',\n AttrSyncSourceConfig: 'ATTR_SYNC_SOURCE_CONFIG',\n AuthOrg: 'AUTH_ORG',\n CampaignFilter: 'CAMPAIGN_FILTER',\n FormDefinition: 'FORM_DEFINITION',\n GovernanceGroup: 'GOVERNANCE_GROUP',\n IdentityObjectConfig: 'IDENTITY_OBJECT_CONFIG',\n IdentityProfile: 'IDENTITY_PROFILE',\n LifecycleState: 'LIFECYCLE_STATE',\n NotificationTemplate: 'NOTIFICATION_TEMPLATE',\n PasswordPolicy: 'PASSWORD_POLICY',\n PasswordSyncGroup: 'PASSWORD_SYNC_GROUP',\n PublicIdentitiesConfig: 'PUBLIC_IDENTITIES_CONFIG',\n Role: 'ROLE',\n Rule: 'RULE',\n Segment: 'SEGMENT',\n ServiceDeskIntegration: 'SERVICE_DESK_INTEGRATION',\n SodPolicy: 'SOD_POLICY',\n Source: 'SOURCE',\n Tag: 'TAG',\n Transform: 'TRANSFORM',\n TriggerSubscription: 'TRIGGER_SUBSCRIPTION',\n Workflow: 'WORKFLOW'\n};\nexports.IdentityWithNewAccess1AccessRefsInnerTypeEnum = {\n Entitlement: 'ENTITLEMENT'\n};\nexports.IdentityWithNewAccessAccessRefsInnerTypeEnum = {\n Entitlement: 'ENTITLEMENT'\n};\nexports.ImportObjectTypeEnum = {\n IdentityObjectConfig: 'IDENTITY_OBJECT_CONFIG',\n IdentityProfile: 'IDENTITY_PROFILE',\n Rule: 'RULE',\n Source: 'SOURCE',\n Transform: 'TRANSFORM',\n TriggerSubscription: 'TRIGGER_SUBSCRIPTION'\n};\n/**\n * Enum representing the currently supported indices. Additional values may be added in the future without notice.\n * @export\n * @enum {string}\n */\nexports.Index = {\n Accessprofiles: 'accessprofiles',\n Accountactivities: 'accountactivities',\n Entitlements: 'entitlements',\n Events: 'events',\n Identities: 'identities',\n Roles: 'roles',\n Star: '*'\n};\nexports.JsonPatchOperationOpEnum = {\n Add: 'add',\n Remove: 'remove',\n Replace: 'replace',\n Move: 'move',\n Copy: 'copy',\n Test: 'test'\n};\nexports.LifecyclestateDeletedTypeEnum = {\n LifecycleState: 'LIFECYCLE_STATE'\n};\n/**\n * An indicator of how the locale was selected. *DEFAULT* means the locale is the system default. *REQUEST* means the locale was selected from the request context (i.e., best match based on the *Accept-Language* header). Additional values may be added in the future without notice.\n * @export\n * @enum {string}\n */\nexports.LocaleOrigin = {\n Default: 'DEFAULT',\n Request: 'REQUEST'\n};\nexports.ManualWorkItemDetailsCurrentOwnerTypeEnum = {\n GovernanceGroup: 'GOVERNANCE_GROUP',\n Identity: 'IDENTITY'\n};\nexports.ManualWorkItemDetailsOriginalOwnerTypeEnum = {\n GovernanceGroup: 'GOVERNANCE_GROUP',\n Identity: 'IDENTITY'\n};\n/**\n * Indicates the state of the request processing for this item: * PENDING: The request for this item is awaiting processing. * APPROVED: The request for this item has been approved. * REJECTED: The request for this item was rejected. * EXPIRED: The request for this item expired with no action taken. * CANCELLED: The request for this item was cancelled with no user action. * ARCHIVED: The request for this item has been archived after completion.\n * @export\n * @enum {string}\n */\nexports.ManualWorkItemState = {\n Pending: 'PENDING',\n Approved: 'APPROVED',\n Rejected: 'REJECTED',\n Expired: 'EXPIRED',\n Cancelled: 'CANCELLED',\n Archived: 'ARCHIVED'\n};\n/**\n * Enum representing the currently supported metric aggregation types. Additional values may be added in the future without notice.\n * @export\n * @enum {string}\n */\nexports.MetricType = {\n Count: 'COUNT',\n UniqueCount: 'UNIQUE_COUNT',\n Avg: 'AVG',\n Sum: 'SUM',\n Median: 'MEDIAN',\n Min: 'MIN',\n Max: 'MAX'\n};\n/**\n * | Construct | Date Time Pattern | Description | | --------- | ----------------- | ----------- | | ISO8601 | `yyyy-MM-dd\\'T\\'HH:mm:ss.SSSX` | The ISO8601 standard. | | LDAP | `yyyyMMddHHmmss.Z` | The LDAP standard. | | PEOPLE_SOFT | `MM/dd/yyyy` | The date format People Soft uses. | | EPOCH_TIME_JAVA | # ms from midnight, January 1st, 1970 | The incoming date value as elapsed time in milliseconds from midnight, January 1st, 1970. | | EPOCH_TIME_WIN32| # intervals of 100ns from midnight, January 1st, 1601 | The incoming date value as elapsed time in 100-nanosecond intervals from midnight, January 1st, 1601. |\n * @export\n * @enum {string}\n */\nexports.NamedConstructs = {\n Iso8601: 'ISO8601',\n Ldap: 'LDAP',\n PeopleSoft: 'PEOPLE_SOFT',\n EpochTimeJava: 'EPOCH_TIME_JAVA',\n EpochTimeWin32: 'EPOCH_TIME_WIN32'\n};\nexports.NonEmployeeBulkUploadJobStatusEnum = {\n Pending: 'PENDING',\n InProgress: 'IN_PROGRESS',\n Completed: 'COMPLETED',\n Error: 'ERROR'\n};\nexports.NonEmployeeBulkUploadStatusStatusEnum = {\n Pending: 'PENDING',\n InProgress: 'IN_PROGRESS',\n Completed: 'COMPLETED',\n Error: 'ERROR'\n};\n/**\n * Identifies if the identity is a normal identity or a governance group\n * @export\n * @enum {string}\n */\nexports.NonEmployeeIdentityDtoType = {\n GovernanceGroup: 'GOVERNANCE_GROUP',\n Identity: 'IDENTITY'\n};\n/**\n * Enum representing the type of data a schema attribute accepts.\n * @export\n * @enum {string}\n */\nexports.NonEmployeeSchemaAttributeType = {\n Text: 'TEXT',\n Date: 'DATE',\n Identity: 'IDENTITY'\n};\n/**\n * Operation on a specific criteria\n * @export\n * @enum {string}\n */\nexports.Operation = {\n Equals: 'EQUALS',\n NotEquals: 'NOT_EQUALS',\n Contains: 'CONTAINS',\n StartsWith: 'STARTS_WITH',\n EndsWith: 'ENDS_WITH',\n And: 'AND',\n Or: 'OR'\n};\nexports.OwnerDtoTypeEnum = {\n Identity: 'IDENTITY'\n};\nexports.OwnerReferenceTypeEnum = {\n Identity: 'IDENTITY'\n};\nexports.OwnerReferenceSegmentsTypeEnum = {\n Identity: 'IDENTITY'\n};\nexports.PasswordChangeResponseStateEnum = {\n InProgress: 'IN_PROGRESS',\n Finished: 'FINISHED',\n Failed: 'FAILED'\n};\nexports.PasswordStatusStateEnum = {\n InProgress: 'IN_PROGRESS',\n Finished: 'FINISHED',\n Failed: 'FAILED'\n};\nexports.PatOwnerTypeEnum = {\n Identity: 'IDENTITY'\n};\n/**\n * Enum represents action that is being processed on an approval.\n * @export\n * @enum {string}\n */\nexports.PendingApprovalAction = {\n Approved: 'APPROVED',\n Rejected: 'REJECTED',\n Forwarded: 'FORWARDED'\n};\nexports.PendingApprovalOwnerTypeEnum = {\n Identity: 'IDENTITY'\n};\nexports.PreApprovalTriggerDetailsDecisionEnum = {\n Approved: 'APPROVED',\n Rejected: 'REJECTED'\n};\nexports.ProvisioningConfigManagedResourceRefsInnerTypeEnum = {\n Source: 'SOURCE'\n};\n/**\n * Supported operations on ProvisioningCriteria\n * @export\n * @enum {string}\n */\nexports.ProvisioningCriteriaOperation = {\n Equals: 'EQUALS',\n NotEquals: 'NOT_EQUALS',\n Contains: 'CONTAINS',\n Has: 'HAS',\n And: 'AND',\n Or: 'OR'\n};\n/**\n * Provisioning state of an account activity item\n * @export\n * @enum {string}\n */\nexports.ProvisioningState = {\n Pending: 'PENDING',\n Finished: 'FINISHED',\n Unverifiable: 'UNVERIFIABLE',\n Commited: 'COMMITED',\n Failed: 'FAILED',\n Retry: 'RETRY'\n};\n/**\n * The type of query to use. By default, the `SAILPOINT` query type is used, which requires the `query` object to be defined in the request body. To use the `queryDsl` or `typeAheadQuery` objects in the request, you must set the type to `DSL` or `TYPEAHEAD` accordingly. Additional values may be added in the future without notice.\n * @export\n * @enum {string}\n */\nexports.QueryType = {\n Dsl: 'DSL',\n Sailpoint: 'SAILPOINT',\n Text: 'TEXT',\n Typeahead: 'TYPEAHEAD'\n};\nexports.ReassignReferenceTypeEnum = {\n TargetSummary: 'TARGET_SUMMARY',\n Item: 'ITEM',\n IdentitySummary: 'IDENTITY_SUMMARY'\n};\nexports.ReassignmentReferenceTypeEnum = {\n TargetSummary: 'TARGET_SUMMARY',\n Item: 'ITEM',\n IdentitySummary: 'IDENTITY_SUMMARY'\n};\n/**\n * The approval reassignment type. * MANUAL_REASSIGNMENT: An approval with this reassignment type has been specifically reassigned by the approval task\\'s owner, from their queue to someone else\\'s. * AUTOMATIC_REASSIGNMENT: An approval with this reassignment type has been automatically reassigned from another approver\\'s queue, according to that approver\\'s reassignment configuration. The approver\\'s reassignment configuration may be set up to automatically reassign approval tasks for a defined (or possibly open-ended) period of time. * AUTO_ESCALATION: An approval with this reassignment type has been automatically reassigned from another approver\\'s queue, according to the request\\'s escalation configuration. For more information about escalation configuration, refer to [Setting Global Reminders and Escalation Policies](https://documentation.sailpoint.com/saas/help/requests/config_emails.html). * SELF_REVIEW_DELEGATION: An approval with this reassignment type has been automatically reassigned by the system to prevent self-review. This helps prevent situations like a requester being tasked with approving their own request. For more information about preventing self-review, refer to [Self-review Prevention](https://documentation.sailpoint.com/saas/help/users/work_reassignment.html#self-review-prevention) and [Preventing Self-approval](https://documentation.sailpoint.com/saas/help/requests/config_ap_roles.html#preventing-self-approval).\n * @export\n * @enum {string}\n */\nexports.ReassignmentType = {\n ManualReassignment: 'MANUAL_REASSIGNMENT',\n AutomaticReassignment: 'AUTOMATIC_REASSIGNMENT',\n AutoEscalation: 'AUTO_ESCALATION',\n SelfReviewDelegation: 'SELF_REVIEW_DELEGATION'\n};\nexports.ReportResultReferenceTypeEnum = {\n ReportResult: 'REPORT_RESULT'\n};\nexports.ReportResultReferenceStatusEnum = {\n Success: 'SUCCESS',\n Warning: 'WARNING',\n Error: 'ERROR',\n Terminated: 'TERMINATED',\n TempError: 'TEMP_ERROR',\n Pending: 'PENDING'\n};\nexports.ReportResultReferenceAllOfStatusEnum = {\n Success: 'SUCCESS',\n Warning: 'WARNING',\n Error: 'ERROR',\n Terminated: 'TERMINATED',\n TempError: 'TEMP_ERROR',\n Pending: 'PENDING'\n};\n/**\n * type of a Report\n * @export\n * @enum {string}\n */\nexports.ReportType = {\n CampaignCompositionReport: 'CAMPAIGN_COMPOSITION_REPORT',\n CampaignRemediationStatusReport: 'CAMPAIGN_REMEDIATION_STATUS_REPORT',\n CampaignStatusReport: 'CAMPAIGN_STATUS_REPORT',\n CertificationSignoffReport: 'CERTIFICATION_SIGNOFF_REPORT'\n};\nexports.RequestableObjectReferenceTypeEnum = {\n AccessProfile: 'ACCESS_PROFILE',\n Role: 'ROLE',\n Entitlement: 'ENTITLEMENT'\n};\n/**\n * Status indicating the ability of an access request for the object to be made by or on behalf of the identity specified by *identity-id*. *AVAILABLE* indicates the object is available to request. *PENDING* indicates the object is unavailable because the identity has a pending request in flight. *ASSIGNED* indicates the object is unavailable because the identity already has the indicated role or access profile. If *identity-id* is not specified (allowed only for admin users), then status will be *AVAILABLE* for all results.\n * @export\n * @enum {string}\n */\nexports.RequestableObjectRequestStatus = {\n Available: 'AVAILABLE',\n Pending: 'PENDING',\n Assigned: 'ASSIGNED'\n};\n/**\n * The currently supported requestable object types.\n * @export\n * @enum {string}\n */\nexports.RequestableObjectType = {\n AccessProfile: 'ACCESS_PROFILE',\n Role: 'ROLE'\n};\nexports.RequestedItemStatusTypeEnum = {\n AccessProfile: 'ACCESS_PROFILE',\n Role: 'ROLE',\n Entitlement: 'ENTITLEMENT'\n};\n/**\n * Indicates the state of an access request: * EXECUTING: The request is executing, which indicates the system is doing some processing. * REQUEST_COMPLETED: Indicates the request has been completed. * CANCELLED: The request was cancelled with no user input. * TERMINATED: The request has been terminated before it was able to complete. * PROVISIONING_VERIFICATION_PENDING: The request has finished any approval steps and provisioning is waiting to be verified. * REJECTED: The request was rejected. * PROVISIONING_FAILED: The request has failed to complete. * NOT_ALL_ITEMS_PROVISIONED: One or more of the requested items failed to complete, but there were one or more successes. * ERROR: An error occurred during request processing.\n * @export\n * @enum {string}\n */\nexports.RequestedItemStatusRequestState = {\n Executing: 'EXECUTING',\n RequestCompleted: 'REQUEST_COMPLETED',\n Cancelled: 'CANCELLED',\n Terminated: 'TERMINATED',\n ProvisioningVerificationPending: 'PROVISIONING_VERIFICATION_PENDING',\n Rejected: 'REJECTED',\n ProvisioningFailed: 'PROVISIONING_FAILED',\n NotAllItemsProvisioned: 'NOT_ALL_ITEMS_PROVISIONED',\n Error: 'ERROR'\n};\nexports.ReviewerTypeEnum = {\n Identity: 'IDENTITY'\n};\n/**\n * Type which indicates how a particular Identity obtained a particular Role\n * @export\n * @enum {string}\n */\nexports.RoleAssignmentSourceType = {\n AccessRequest: 'ACCESS_REQUEST',\n RoleMembership: 'ROLE_MEMBERSHIP'\n};\n/**\n * Indicates whether the associated criteria represents an expression on identity attributes, account attributes, or entitlements, respectively.\n * @export\n * @enum {string}\n */\nexports.RoleCriteriaKeyType = {\n Identity: 'IDENTITY',\n Account: 'ACCOUNT',\n Entitlement: 'ENTITLEMENT'\n};\n/**\n * An operation\n * @export\n * @enum {string}\n */\nexports.RoleCriteriaOperation = {\n Equals: 'EQUALS',\n NotEquals: 'NOT_EQUALS',\n Contains: 'CONTAINS',\n StartsWith: 'STARTS_WITH',\n EndsWith: 'ENDS_WITH',\n And: 'AND',\n Or: 'OR'\n};\n/**\n * This enum characterizes the type of a Role\\'s membership selector. Only the following two are fully supported: STANDARD: Indicates that Role membership is defined in terms of a criteria expression IDENTITY_LIST: Indicates that Role membership is conferred on the specific identities listed\n * @export\n * @enum {string}\n */\nexports.RoleMembershipSelectorType = {\n Standard: 'STANDARD',\n IdentityList: 'IDENTITY_LIST'\n};\nexports.ScheduleTypeEnum = {\n Weekly: 'WEEKLY',\n Monthly: 'MONTHLY',\n Annually: 'ANNUALLY',\n Calendar: 'CALENDAR'\n};\nexports.ScheduleDaysTypeEnum = {\n List: 'LIST',\n Range: 'RANGE'\n};\nexports.ScheduleHoursTypeEnum = {\n List: 'LIST',\n Range: 'RANGE'\n};\nexports.ScheduleMonthsTypeEnum = {\n List: 'LIST',\n Range: 'RANGE'\n};\n/**\n * Enum representing the currently supported schedule types. Additional values may be added in the future without notice.\n * @export\n * @enum {string}\n */\nexports.ScheduleType = {\n Daily: 'DAILY',\n Weekly: 'WEEKLY',\n Monthly: 'MONTHLY',\n Calendar: 'CALENDAR'\n};\nexports.ScheduledSearchAllOfOwnerTypeEnum = {\n Identity: 'IDENTITY'\n};\n/**\n * Enum representing the currently supported filter aggregation types. Additional values may be added in the future without notice.\n * @export\n * @enum {string}\n */\nexports.SearchFilterType = {\n Term: 'TERM'\n};\nexports.SearchScheduleRecipientsInnerTypeEnum = {\n Identity: 'IDENTITY'\n};\n/**\n * Enum representing the currently supported selector types. LIST - the *values* array contains one or more distinct values. RANGE - the *values* array contains two values: the start and end of the range, inclusive. Additional values may be added in the future without notice.\n * @export\n * @enum {string}\n */\nexports.SelectorType = {\n List: 'LIST',\n Range: 'RANGE'\n};\nexports.ServiceDeskIntegrationDtoAllOfOwnerRefTypeEnum = {\n Source: 'SOURCE'\n};\nexports.ServiceDeskSourceTypeEnum = {\n Source: 'SOURCE'\n};\nexports.SlimCampaignTypeEnum = {\n Manager: 'MANAGER',\n SourceOwner: 'SOURCE_OWNER',\n Search: 'SEARCH',\n RoleComposition: 'ROLE_COMPOSITION'\n};\nexports.SlimCampaignStatusEnum = {\n Pending: 'PENDING',\n Staged: 'STAGED',\n Canceling: 'CANCELING',\n Activating: 'ACTIVATING',\n Active: 'ACTIVE',\n Completing: 'COMPLETING',\n Completed: 'COMPLETED',\n Error: 'ERROR',\n Archived: 'ARCHIVED'\n};\nexports.SlimCampaignCorrelatedStatusEnum = {\n Correlated: 'CORRELATED',\n Uncorrelated: 'UNCORRELATED'\n};\nexports.SodPolicyStateEnum = {\n Enforced: 'ENFORCED',\n NotEnforced: 'NOT_ENFORCED'\n};\nexports.SodPolicyTypeEnum = {\n General: 'GENERAL',\n ConflictingAccessBased: 'CONFLICTING_ACCESS_BASED'\n};\nexports.SodPolicyDtoTypeEnum = {\n SodPolicy: 'SOD_POLICY'\n};\nexports.SodRecipientTypeEnum = {\n Identity: 'IDENTITY'\n};\nexports.SodReportResultDtoTypeEnum = {\n ReportResult: 'REPORT_RESULT'\n};\nexports.SodViolationContextCheckCompletedStateEnum = {\n Success: 'SUCCESS',\n Error: 'ERROR'\n};\nexports.SourceAccountCorrelationConfigTypeEnum = {\n AccountCorrelationConfig: 'ACCOUNT_CORRELATION_CONFIG'\n};\nexports.SourceAccountCorrelationRuleTypeEnum = {\n Rule: 'RULE'\n};\nexports.SourceBeforeProvisioningRuleTypeEnum = {\n Rule: 'RULE'\n};\nexports.SourceClusterTypeEnum = {\n Cluster: 'CLUSTER'\n};\nexports.SourceClusterDtoTypeEnum = {\n Cluster: 'CLUSTER'\n};\n/**\n * Optional features that can be supported by an source. * AUTHENTICATE: The source supports pass-through authentication. * COMPOSITE: The source supports composite source creation. * DIRECT_PERMISSIONS: The source supports returning DirectPermissions. * DISCOVER_SCHEMA: The source supports discovering schemas for users and groups. * ENABLE The source supports reading if an account is enabled or disabled. * MANAGER_LOOKUP: The source supports looking up managers as they are encountered in a feed. This is the opposite of NO_RANDOM_ACCESS. * NO_RANDOM_ACCESS: The source does not support random access and the getObject() methods should not be called and expected to perform. * PROXY: The source can serve as a proxy for another source. When an source has a proxy, all connector calls made with that source are redirected through the connector for the proxy source. * SEARCH * TEMPLATE * UNLOCK: The source supports reading if an account is locked or unlocked. * UNSTRUCTURED_TARGETS: The source supports returning unstructured Targets. * SHAREPOINT_TARGET: The source supports returning unstructured Target data for SharePoint. It will be typically used by AD, LDAP sources. * PROVISIONING: The source can both read and write accounts. Having this feature implies that the provision() method is implemented. It also means that direct and target permissions can also be provisioned if they can be returned by aggregation. * GROUP_PROVISIONING: The source can both read and write groups. Having this feature implies that the provision() method is implemented. * SYNC_PROVISIONING: The source can provision accounts synchronously. * PASSWORD: The source can provision password changes. Since sources can never read passwords, this is should only be used in conjunction with the PROVISIONING feature. * CURRENT_PASSWORD: Some source types support verification of the current password * ACCOUNT_ONLY_REQUEST: The source supports requesting accounts without entitlements. * ADDITIONAL_ACCOUNT_REQUEST: The source supports requesting additional accounts. * NO_AGGREGATION: A source that does not support aggregation. * GROUPS_HAVE_MEMBERS: The source models group memberships with a member attribute on the group object rather than a groups attribute on the account object. This effects the implementation of delta account aggregation. * NO_PERMISSIONS_PROVISIONING: Indicates that the connector cannot provision direct or target permissions for accounts. When DIRECT_PERMISSIONS and PROVISIONING features are present, it is assumed that the connector can also provision direct permissions. This feature disables that assumption and causes permission request to be converted to work items for accounts. * NO_GROUP_PERMISSIONS_PROVISIONING: Indicates that the connector cannot provision direct or target permissions for groups. When DIRECT_PERMISSIONS and PROVISIONING features are present, it is assumed that the connector can also provision direct permissions. This feature disables that assumption and causes permission request to be converted to work items for groups. * NO_UNSTRUCTURED_TARGETS_PROVISIONING: This string will be replaced by NO_GROUP_PERMISSIONS_PROVISIONING and NO_PERMISSIONS_PROVISIONING. * NO_DIRECT_PERMISSIONS_PROVISIONING: This string will be replaced by NO_GROUP_PERMISSIONS_PROVISIONING and NO_PERMISSIONS_PROVISIONING.\n * @export\n * @enum {string}\n */\nexports.SourceFeature = {\n Authenticate: 'AUTHENTICATE',\n Composite: 'COMPOSITE',\n DirectPermissions: 'DIRECT_PERMISSIONS',\n DiscoverSchema: 'DISCOVER_SCHEMA',\n Enable: 'ENABLE',\n ManagerLookup: 'MANAGER_LOOKUP',\n NoRandomAccess: 'NO_RANDOM_ACCESS',\n Proxy: 'PROXY',\n Search: 'SEARCH',\n Template: 'TEMPLATE',\n Unlock: 'UNLOCK',\n UnstructuredTargets: 'UNSTRUCTURED_TARGETS',\n SharepointTarget: 'SHAREPOINT_TARGET',\n Provisioning: 'PROVISIONING',\n GroupProvisioning: 'GROUP_PROVISIONING',\n SyncProvisioning: 'SYNC_PROVISIONING',\n Password: 'PASSWORD',\n CurrentPassword: 'CURRENT_PASSWORD',\n AccountOnlyRequest: 'ACCOUNT_ONLY_REQUEST',\n AdditionalAccountRequest: 'ADDITIONAL_ACCOUNT_REQUEST',\n NoAggregation: 'NO_AGGREGATION',\n GroupsHaveMembers: 'GROUPS_HAVE_MEMBERS',\n NoPermissionsProvisioning: 'NO_PERMISSIONS_PROVISIONING',\n NoGroupPermissionsProvisioning: 'NO_GROUP_PERMISSIONS_PROVISIONING',\n NoUnstructuredTargetsProvisioning: 'NO_UNSTRUCTURED_TARGETS_PROVISIONING',\n NoDirectPermissionsProvisioning: 'NO_DIRECT_PERMISSIONS_PROVISIONING',\n PreferUuid: 'PREFER_UUID'\n};\nexports.SourceHealthDtoStatusEnum = {\n ErrorCluster: 'SOURCE_STATE_ERROR_CLUSTER',\n ErrorSource: 'SOURCE_STATE_ERROR_SOURCE',\n ErrorVa: 'SOURCE_STATE_ERROR_VA',\n FailureCluster: 'SOURCE_STATE_FAILURE_CLUSTER',\n FailureSource: 'SOURCE_STATE_FAILURE_SOURCE',\n Healthy: 'SOURCE_STATE_HEALTHY',\n UncheckedCluster: 'SOURCE_STATE_UNCHECKED_CLUSTER',\n UncheckedClusterNoSources: 'SOURCE_STATE_UNCHECKED_CLUSTER_NO_SOURCES',\n UncheckedSource: 'SOURCE_STATE_UNCHECKED_SOURCE',\n UncheckedSourceNoAccounts: 'SOURCE_STATE_UNCHECKED_SOURCE_NO_ACCOUNTS'\n};\nexports.SourceManagementWorkgroupTypeEnum = {\n GovernanceGroup: 'GOVERNANCE_GROUP'\n};\nexports.SourceManagerCorrelationRuleTypeEnum = {\n Rule: 'RULE'\n};\nexports.SourceOwnerTypeEnum = {\n Identity: 'IDENTITY'\n};\nexports.SourcePasswordPoliciesInnerTypeEnum = {\n PasswordPolicy: 'PASSWORD_POLICY'\n};\nexports.SourceSchemasInnerTypeEnum = {\n ConnectorSchema: 'CONNECTOR_SCHEMA'\n};\nexports.SourceUsageStatusStatusEnum = {\n Complete: 'COMPLETE',\n Incomplete: 'INCOMPLETE'\n};\nexports.TaggedObjectDtoTypeEnum = {\n AccessProfile: 'ACCESS_PROFILE',\n Application: 'APPLICATION',\n Campaign: 'CAMPAIGN',\n Entitlement: 'ENTITLEMENT',\n Identity: 'IDENTITY',\n Role: 'ROLE',\n SodPolicy: 'SOD_POLICY',\n Source: 'SOURCE'\n};\nexports.TaskResultDtoTypeEnum = {\n TaskResult: 'TASK_RESULT'\n};\nexports.TaskResultSimplifiedCompletionStatusEnum = {\n Success: 'Success',\n Warning: 'Warning',\n Error: 'Error',\n Terminated: 'Terminated',\n TempError: 'TempError'\n};\nexports.TransformTypeEnum = {\n AccountAttribute: 'accountAttribute',\n Base64Decode: 'base64Decode',\n Base64Encode: 'base64Encode',\n Concat: 'concat',\n Conditional: 'conditional',\n DateCompare: 'dateCompare',\n DateFormat: 'dateFormat',\n DateMath: 'dateMath',\n DecomposeDiacriticalMarks: 'decomposeDiacriticalMarks',\n E164phone: 'e164phone',\n FirstValid: 'firstValid',\n Rule: 'rule',\n IdentityAttribute: 'identityAttribute',\n IndexOf: 'indexOf',\n Iso3166: 'iso3166',\n LastIndexOf: 'lastIndexOf',\n LeftPad: 'leftPad',\n Lookup: 'lookup',\n Lower: 'lower',\n NormalizeNames: 'normalizeNames',\n RandomAlphaNumeric: 'randomAlphaNumeric',\n RandomNumeric: 'randomNumeric',\n Reference: 'reference',\n ReplaceAll: 'replaceAll',\n Replace: 'replace',\n RightPad: 'rightPad',\n Split: 'split',\n Static: 'static',\n Substring: 'substring',\n Trim: 'trim',\n Upper: 'upper',\n UsernameGenerator: 'usernameGenerator',\n Uuid: 'uuid'\n};\nexports.TransformReadTypeEnum = {\n AccountAttribute: 'accountAttribute',\n Base64Decode: 'base64Decode',\n Base64Encode: 'base64Encode',\n Concat: 'concat',\n Conditional: 'conditional',\n DateCompare: 'dateCompare',\n DateFormat: 'dateFormat',\n DateMath: 'dateMath',\n DecomposeDiacriticalMarks: 'decomposeDiacriticalMarks',\n E164phone: 'e164phone',\n FirstValid: 'firstValid',\n Rule: 'rule',\n IdentityAttribute: 'identityAttribute',\n IndexOf: 'indexOf',\n Iso3166: 'iso3166',\n LastIndexOf: 'lastIndexOf',\n LeftPad: 'leftPad',\n Lookup: 'lookup',\n Lower: 'lower',\n NormalizeNames: 'normalizeNames',\n RandomAlphaNumeric: 'randomAlphaNumeric',\n RandomNumeric: 'randomNumeric',\n Reference: 'reference',\n ReplaceAll: 'replaceAll',\n Replace: 'replace',\n RightPad: 'rightPad',\n Split: 'split',\n Static: 'static',\n Substring: 'substring',\n Trim: 'trim',\n Upper: 'upper',\n UsernameGenerator: 'usernameGenerator',\n Uuid: 'uuid'\n};\n/**\n * The type of provisioning policy usage. In IdentityNow, a source can support various provisioning operations. For example, when a joiner is added to a source, this may trigger both CREATE and UPDATE provisioning operations. Each usage type is considered a provisioning policy. A source can have any number of these provisioning policies defined. These are the common usage types: CREATE - This usage type relates to \\'Create Account Profile\\', the provisioning template for the account to be created. For example, this would be used for a joiner on a source. UPDATE - This usage type relates to \\'Update Account Profile\\', the provisioning template for the \\'Update\\' connector operations. For example, this would be used for an attribute sync on a source. ENABLE - This usage type relates to \\'Enable Account Profile\\', the provisioning template for the account to be enabled. For example, this could be used for a joiner on a source once the joiner\\'s account is created. DISABLE - This usage type relates to \\'Disable Account Profile\\', the provisioning template for the account to be disabled. For example, this could be used when a leaver is removed temporarily from a source. You can use these four usage types for all your provisioning policy needs.\n * @export\n * @enum {string}\n */\nexports.UsageType = {\n Create: 'CREATE',\n Update: 'UPDATE',\n Enable: 'ENABLE',\n Disable: 'DISABLE',\n Delete: 'DELETE',\n Assign: 'ASSIGN',\n Unassign: 'UNASSIGN',\n CreateGroup: 'CREATE_GROUP',\n UpdateGroup: 'UPDATE_GROUP',\n DeleteGroup: 'DELETE_GROUP',\n Register: 'REGISTER',\n CreateIdentity: 'CREATE_IDENTITY',\n UpdateIdentity: 'UPDATE_IDENTITY',\n EditGroup: 'EDIT_GROUP',\n Unlock: 'UNLOCK',\n ChangePassword: 'CHANGE_PASSWORD'\n};\nexports.ViolationContextPolicyTypeEnum = {\n Entitlement: 'ENTITLEMENT'\n};\nexports.ViolationOwnerAssignmentConfigAssignmentRuleEnum = {\n Manager: 'MANAGER',\n Static: 'STATIC',\n Null: 'null'\n};\nexports.ViolationOwnerAssignmentConfigOwnerRefTypeEnum = {\n Identity: 'IDENTITY'\n};\n/**\n * The state of a work item\n * @export\n * @enum {string}\n */\nexports.WorkItemState = {\n Finished: 'FINISHED',\n Rejected: 'REJECTED',\n Returned: 'RETURNED',\n Expired: 'EXPIRED',\n Pending: 'PENDING',\n Canceled: 'CANCELED'\n};\n/**\n * The type of the work item\n * @export\n * @enum {string}\n */\nexports.WorkItemType = {\n Unknown: 'UNKNOWN',\n Generic: 'GENERIC',\n Certification: 'CERTIFICATION',\n Remediation: 'REMEDIATION',\n Delegation: 'DELEGATION',\n Approval: 'APPROVAL',\n Violationreview: 'VIOLATIONREVIEW',\n Form: 'FORM',\n Policyviolation: 'POLICYVIOLATION',\n Challenge: 'CHALLENGE',\n Impactanalysis: 'IMPACTANALYSIS',\n Signoff: 'SIGNOFF',\n Event: 'EVENT',\n Manualaction: 'MANUALACTION',\n Test: 'TEST'\n};\n/**\n * AccessProfilesApi - axios parameter creator\n * @export\n */\nvar AccessProfilesApiAxiosParamCreator = function (configuration) {\n var _this = this;\n return {\n /**\n * This API creates an Access Profile. A token with API, ORG_ADMIN, ROLE_ADMIN, ROLE_SUBADMIN, SOURCE_ADMIN, or SOURCE_SUBADMIN authority is required to call this API. In addition, a token with only ROLE_SUBADMIN or SOURCE_SUBADMIN authority must be associated with the Access Profile\\'s Source. The maximum supported length for the description field is 2000 characters. Longer descriptions will be preserved for existing access profiles, however, any new access profiles as well as any updates to existing descriptions will be limited to 2000 characters.\n * @summary Create an Access Profile\n * @param {AccessProfile} accessProfile\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n createAccessProfile: function (accessProfile, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'accessProfile' is not null or undefined\n (0, common_1.assertParamExists)('createAccessProfile', 'accessProfile', accessProfile);\n localVarPath = \"/access-profiles\";\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n localVarHeaderParameter['Content-Type'] = 'application/json';\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(accessProfile, localVarRequestOptions, configuration);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This API deletes an existing Access Profile. The Access Profile must not be in use, for example, Access Profile can not be deleted if they belong to an Application, Life Cycle State or a Role. If it is, a 400 error is returned. A token with API, ORG_ADMIN, SOURCE_ADMIN, or SOURCE_SUBADMIN authority is required to invoke this API. In addition, a SOURCE_SUBADMIN token must be able to administer the Source associated with the Access Profile.\n * @summary Delete the specified Access Profile\n * @param {string} id ID of the Access Profile to delete\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n deleteAccessProfile: function (id, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'id' is not null or undefined\n (0, common_1.assertParamExists)('deleteAccessProfile', 'id', id);\n localVarPath = \"/access-profiles/{id}\"\n .replace(\"{\".concat(\"id\", \"}\"), encodeURIComponent(String(id)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'DELETE' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This API initiates a bulk deletion of one or more Access Profiles. By default, if any of the indicated Access Profiles are in use, no deletions will be performed and the **inUse** field of the response indicates the usages that must be removed first. If the request field **bestEffortOnly** is **true**, however, usages are reported in the **inUse** response field but all other indicated Access Profiles will be deleted. A token with API, ORG_ADMIN, SOURCE_ADMIN, or SOURCE_SUBADMIN authority is required to call this API. In addition, a SOURCE_SUBADMIN may only use this API to delete Access Profiles which are associated with Sources they are able to administer.\n * @summary Delete Access Profile(s)\n * @param {AccessProfileBulkDeleteRequest} accessProfileBulkDeleteRequest\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n deleteAccessProfilesInBulk: function (accessProfileBulkDeleteRequest, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'accessProfileBulkDeleteRequest' is not null or undefined\n (0, common_1.assertParamExists)('deleteAccessProfilesInBulk', 'accessProfileBulkDeleteRequest', accessProfileBulkDeleteRequest);\n localVarPath = \"/access-profiles/bulk-delete\";\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n localVarHeaderParameter['Content-Type'] = 'application/json';\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(accessProfileBulkDeleteRequest, localVarRequestOptions, configuration);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This API returns an Access Profile by its ID. A token with API, ORG_ADMIN, ROLE_ADMIN, ROLE_SUBADMIN, SOURCE_ADMIN, or SOURCE_SUBADMIN authority is required to call this API.\n * @summary Get an Access Profile\n * @param {string} id ID of the Access Profile\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getAccessProfile: function (id, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'id' is not null or undefined\n (0, common_1.assertParamExists)('getAccessProfile', 'id', id);\n localVarPath = \"/access-profiles/{id}\"\n .replace(\"{\".concat(\"id\", \"}\"), encodeURIComponent(String(id)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This API lists the Entitlements associated with a given Access Profile A token with API, ORG_ADMIN, SOURCE_ADMIN, or SOURCE_SUBADMIN authority is required to invoke this API. In addition, a token with SOURCE_SUBADMIN authority must have access to the Source associated with the given Access Profile\n * @summary List Access Profile\\'s Entitlements\n * @param {string} id ID of the containing Access Profile\n * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **id**: *eq, in* **name**: *eq, sw* **attribute**: *eq, sw* **value**: *eq, sw* **created**: *gt, lt, ge, le* **modified**: *gt, lt, ge, le* **owner.id**: *eq, in* **source.id**: *eq, in*\n * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **name, attribute, value, created, modified**\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getAccessProfileEntitlements: function (id, limit, offset, count, filters, sorters, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'id' is not null or undefined\n (0, common_1.assertParamExists)('getAccessProfileEntitlements', 'id', id);\n localVarPath = \"/access-profiles/{id}/entitlements\"\n .replace(\"{\".concat(\"id\", \"}\"), encodeURIComponent(String(id)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n if (limit !== undefined) {\n localVarQueryParameter['limit'] = limit;\n }\n if (offset !== undefined) {\n localVarQueryParameter['offset'] = offset;\n }\n if (count !== undefined) {\n localVarQueryParameter['count'] = count;\n }\n if (filters !== undefined) {\n localVarQueryParameter['filters'] = filters;\n }\n if (sorters !== undefined) {\n localVarQueryParameter['sorters'] = sorters;\n }\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This API returns a list of Access Profiles. A token with API, ORG_ADMIN, ROLE_ADMIN, ROLE_SUBADMIN, SOURCE_ADMIN, or SOURCE_SUBADMIN authority is required to call this API.\n * @summary List Access Profiles\n * @param {string} [forSubadmin] If provided, filters the returned list according to what is visible to the indicated ROLE_SUBADMIN or SOURCE_SUBADMIN Identity. The value of the parameter is either an Identity ID, or the special value **me**, which is shorthand for the calling Identity\\'s ID. A 400 Bad Request error is returned if the **for-subadmin** parameter is specified for an Identity that is not a subadmin.\n * @param {number} [limit] Note that for this API the maximum value for limit is 50. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **id**: *eq, in* **name**: *eq, sw, co* **created**: *gt, lt, ge, le* **modified**: *gt, lt, ge, le* **owner.id**: *eq, in* **requestable**: *eq* **source.id**: *eq, in* Composite operators supported: *and, or*\n * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **name, created, modified**\n * @param {string} [forSegmentIds] If present and not empty, additionally filters Access Profiles to those which are assigned to the Segment(s) with the specified IDs. If segmentation is currently unavailable, specifying this parameter results in an error.\n * @param {boolean} [includeUnsegmented] Whether or not the response list should contain unsegmented Access Profiles. If *for-segment-ids* is absent or empty, specifying *include-unsegmented* as false results in an error.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n listAccessProfiles: function (forSubadmin, limit, offset, count, filters, sorters, forSegmentIds, includeUnsegmented, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n localVarPath = \"/access-profiles\";\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n if (forSubadmin !== undefined) {\n localVarQueryParameter['for-subadmin'] = forSubadmin;\n }\n if (limit !== undefined) {\n localVarQueryParameter['limit'] = limit;\n }\n if (offset !== undefined) {\n localVarQueryParameter['offset'] = offset;\n }\n if (count !== undefined) {\n localVarQueryParameter['count'] = count;\n }\n if (filters !== undefined) {\n localVarQueryParameter['filters'] = filters;\n }\n if (sorters !== undefined) {\n localVarQueryParameter['sorters'] = sorters;\n }\n if (forSegmentIds !== undefined) {\n localVarQueryParameter['for-segment-ids'] = forSegmentIds;\n }\n if (includeUnsegmented !== undefined) {\n localVarQueryParameter['include-unsegmented'] = includeUnsegmented;\n }\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This API updates an existing Access Profile. The following fields are patchable: **name** **description** **enabled** **owner** **requestable** **accessRequestConfig** **revokeRequestConfig** **segments** **entitlements** **provisioningCriteria** **source** (must be updated with entitlements belonging to new source in the same API call) If you need to change the `source` of the access profile, you can do so only if you update the `entitlements` in the same API call. The new entitlements can only come from the target source that you want to change to. Look for the example \\\"Replace Source\\\" in the examples dropdown. A token with API, ORG_ADMIN, SOURCE_ADMIN, or SOURCE_SUBADMIN authority is required to call this API. In addition, a SOURCE_SUBADMIN may only use this API to patch Access Profiles which are associated with Sources they are able to administer. > The maximum supported length for the description field is 2000 characters. Longer descriptions will be preserved for existing access profiles, however, any new access profiles as well as any updates to existing descriptions will be limited to 2000 characters. > You can only add or replace **entitlements** that exist on the source that the access profile is attached to. You can use the **list entitlements** endpoint with the **filters** query parameter to get a list of available entitlements on the access profile\\'s source. > Patching the value of the **requestable** field is only supported for customers enabled with the new Request Center. Otherwise, attempting to modify this field results in a 400 error.\n * @summary Patch a specified Access Profile\n * @param {string} id ID of the Access Profile to patch\n * @param {Array} jsonPatchOperation\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n patchAccessProfile: function (id, jsonPatchOperation, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'id' is not null or undefined\n (0, common_1.assertParamExists)('patchAccessProfile', 'id', id);\n // verify required parameter 'jsonPatchOperation' is not null or undefined\n (0, common_1.assertParamExists)('patchAccessProfile', 'jsonPatchOperation', jsonPatchOperation);\n localVarPath = \"/access-profiles/{id}\"\n .replace(\"{\".concat(\"id\", \"}\"), encodeURIComponent(String(id)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'PATCH' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n localVarHeaderParameter['Content-Type'] = 'application/json-patch+json';\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(jsonPatchOperation, localVarRequestOptions, configuration);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n };\n};\nexports.AccessProfilesApiAxiosParamCreator = AccessProfilesApiAxiosParamCreator;\n/**\n * AccessProfilesApi - functional programming interface\n * @export\n */\nvar AccessProfilesApiFp = function (configuration) {\n var localVarAxiosParamCreator = (0, exports.AccessProfilesApiAxiosParamCreator)(configuration);\n return {\n /**\n * This API creates an Access Profile. A token with API, ORG_ADMIN, ROLE_ADMIN, ROLE_SUBADMIN, SOURCE_ADMIN, or SOURCE_SUBADMIN authority is required to call this API. In addition, a token with only ROLE_SUBADMIN or SOURCE_SUBADMIN authority must be associated with the Access Profile\\'s Source. The maximum supported length for the description field is 2000 characters. Longer descriptions will be preserved for existing access profiles, however, any new access profiles as well as any updates to existing descriptions will be limited to 2000 characters.\n * @summary Create an Access Profile\n * @param {AccessProfile} accessProfile\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n createAccessProfile: function (accessProfile, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.createAccessProfile(accessProfile, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This API deletes an existing Access Profile. The Access Profile must not be in use, for example, Access Profile can not be deleted if they belong to an Application, Life Cycle State or a Role. If it is, a 400 error is returned. A token with API, ORG_ADMIN, SOURCE_ADMIN, or SOURCE_SUBADMIN authority is required to invoke this API. In addition, a SOURCE_SUBADMIN token must be able to administer the Source associated with the Access Profile.\n * @summary Delete the specified Access Profile\n * @param {string} id ID of the Access Profile to delete\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n deleteAccessProfile: function (id, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.deleteAccessProfile(id, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This API initiates a bulk deletion of one or more Access Profiles. By default, if any of the indicated Access Profiles are in use, no deletions will be performed and the **inUse** field of the response indicates the usages that must be removed first. If the request field **bestEffortOnly** is **true**, however, usages are reported in the **inUse** response field but all other indicated Access Profiles will be deleted. A token with API, ORG_ADMIN, SOURCE_ADMIN, or SOURCE_SUBADMIN authority is required to call this API. In addition, a SOURCE_SUBADMIN may only use this API to delete Access Profiles which are associated with Sources they are able to administer.\n * @summary Delete Access Profile(s)\n * @param {AccessProfileBulkDeleteRequest} accessProfileBulkDeleteRequest\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n deleteAccessProfilesInBulk: function (accessProfileBulkDeleteRequest, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.deleteAccessProfilesInBulk(accessProfileBulkDeleteRequest, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This API returns an Access Profile by its ID. A token with API, ORG_ADMIN, ROLE_ADMIN, ROLE_SUBADMIN, SOURCE_ADMIN, or SOURCE_SUBADMIN authority is required to call this API.\n * @summary Get an Access Profile\n * @param {string} id ID of the Access Profile\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getAccessProfile: function (id, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.getAccessProfile(id, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This API lists the Entitlements associated with a given Access Profile A token with API, ORG_ADMIN, SOURCE_ADMIN, or SOURCE_SUBADMIN authority is required to invoke this API. In addition, a token with SOURCE_SUBADMIN authority must have access to the Source associated with the given Access Profile\n * @summary List Access Profile\\'s Entitlements\n * @param {string} id ID of the containing Access Profile\n * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **id**: *eq, in* **name**: *eq, sw* **attribute**: *eq, sw* **value**: *eq, sw* **created**: *gt, lt, ge, le* **modified**: *gt, lt, ge, le* **owner.id**: *eq, in* **source.id**: *eq, in*\n * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **name, attribute, value, created, modified**\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getAccessProfileEntitlements: function (id, limit, offset, count, filters, sorters, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.getAccessProfileEntitlements(id, limit, offset, count, filters, sorters, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This API returns a list of Access Profiles. A token with API, ORG_ADMIN, ROLE_ADMIN, ROLE_SUBADMIN, SOURCE_ADMIN, or SOURCE_SUBADMIN authority is required to call this API.\n * @summary List Access Profiles\n * @param {string} [forSubadmin] If provided, filters the returned list according to what is visible to the indicated ROLE_SUBADMIN or SOURCE_SUBADMIN Identity. The value of the parameter is either an Identity ID, or the special value **me**, which is shorthand for the calling Identity\\'s ID. A 400 Bad Request error is returned if the **for-subadmin** parameter is specified for an Identity that is not a subadmin.\n * @param {number} [limit] Note that for this API the maximum value for limit is 50. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **id**: *eq, in* **name**: *eq, sw, co* **created**: *gt, lt, ge, le* **modified**: *gt, lt, ge, le* **owner.id**: *eq, in* **requestable**: *eq* **source.id**: *eq, in* Composite operators supported: *and, or*\n * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **name, created, modified**\n * @param {string} [forSegmentIds] If present and not empty, additionally filters Access Profiles to those which are assigned to the Segment(s) with the specified IDs. If segmentation is currently unavailable, specifying this parameter results in an error.\n * @param {boolean} [includeUnsegmented] Whether or not the response list should contain unsegmented Access Profiles. If *for-segment-ids* is absent or empty, specifying *include-unsegmented* as false results in an error.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n listAccessProfiles: function (forSubadmin, limit, offset, count, filters, sorters, forSegmentIds, includeUnsegmented, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.listAccessProfiles(forSubadmin, limit, offset, count, filters, sorters, forSegmentIds, includeUnsegmented, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This API updates an existing Access Profile. The following fields are patchable: **name** **description** **enabled** **owner** **requestable** **accessRequestConfig** **revokeRequestConfig** **segments** **entitlements** **provisioningCriteria** **source** (must be updated with entitlements belonging to new source in the same API call) If you need to change the `source` of the access profile, you can do so only if you update the `entitlements` in the same API call. The new entitlements can only come from the target source that you want to change to. Look for the example \\\"Replace Source\\\" in the examples dropdown. A token with API, ORG_ADMIN, SOURCE_ADMIN, or SOURCE_SUBADMIN authority is required to call this API. In addition, a SOURCE_SUBADMIN may only use this API to patch Access Profiles which are associated with Sources they are able to administer. > The maximum supported length for the description field is 2000 characters. Longer descriptions will be preserved for existing access profiles, however, any new access profiles as well as any updates to existing descriptions will be limited to 2000 characters. > You can only add or replace **entitlements** that exist on the source that the access profile is attached to. You can use the **list entitlements** endpoint with the **filters** query parameter to get a list of available entitlements on the access profile\\'s source. > Patching the value of the **requestable** field is only supported for customers enabled with the new Request Center. Otherwise, attempting to modify this field results in a 400 error.\n * @summary Patch a specified Access Profile\n * @param {string} id ID of the Access Profile to patch\n * @param {Array} jsonPatchOperation\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n patchAccessProfile: function (id, jsonPatchOperation, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.patchAccessProfile(id, jsonPatchOperation, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n };\n};\nexports.AccessProfilesApiFp = AccessProfilesApiFp;\n/**\n * AccessProfilesApi - factory interface\n * @export\n */\nvar AccessProfilesApiFactory = function (configuration, basePath, axios) {\n var localVarFp = (0, exports.AccessProfilesApiFp)(configuration);\n return {\n /**\n * This API creates an Access Profile. A token with API, ORG_ADMIN, ROLE_ADMIN, ROLE_SUBADMIN, SOURCE_ADMIN, or SOURCE_SUBADMIN authority is required to call this API. In addition, a token with only ROLE_SUBADMIN or SOURCE_SUBADMIN authority must be associated with the Access Profile\\'s Source. The maximum supported length for the description field is 2000 characters. Longer descriptions will be preserved for existing access profiles, however, any new access profiles as well as any updates to existing descriptions will be limited to 2000 characters.\n * @summary Create an Access Profile\n * @param {AccessProfile} accessProfile\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n createAccessProfile: function (accessProfile, axiosOptions) {\n return localVarFp.createAccessProfile(accessProfile, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This API deletes an existing Access Profile. The Access Profile must not be in use, for example, Access Profile can not be deleted if they belong to an Application, Life Cycle State or a Role. If it is, a 400 error is returned. A token with API, ORG_ADMIN, SOURCE_ADMIN, or SOURCE_SUBADMIN authority is required to invoke this API. In addition, a SOURCE_SUBADMIN token must be able to administer the Source associated with the Access Profile.\n * @summary Delete the specified Access Profile\n * @param {string} id ID of the Access Profile to delete\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n deleteAccessProfile: function (id, axiosOptions) {\n return localVarFp.deleteAccessProfile(id, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This API initiates a bulk deletion of one or more Access Profiles. By default, if any of the indicated Access Profiles are in use, no deletions will be performed and the **inUse** field of the response indicates the usages that must be removed first. If the request field **bestEffortOnly** is **true**, however, usages are reported in the **inUse** response field but all other indicated Access Profiles will be deleted. A token with API, ORG_ADMIN, SOURCE_ADMIN, or SOURCE_SUBADMIN authority is required to call this API. In addition, a SOURCE_SUBADMIN may only use this API to delete Access Profiles which are associated with Sources they are able to administer.\n * @summary Delete Access Profile(s)\n * @param {AccessProfileBulkDeleteRequest} accessProfileBulkDeleteRequest\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n deleteAccessProfilesInBulk: function (accessProfileBulkDeleteRequest, axiosOptions) {\n return localVarFp.deleteAccessProfilesInBulk(accessProfileBulkDeleteRequest, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This API returns an Access Profile by its ID. A token with API, ORG_ADMIN, ROLE_ADMIN, ROLE_SUBADMIN, SOURCE_ADMIN, or SOURCE_SUBADMIN authority is required to call this API.\n * @summary Get an Access Profile\n * @param {string} id ID of the Access Profile\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getAccessProfile: function (id, axiosOptions) {\n return localVarFp.getAccessProfile(id, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This API lists the Entitlements associated with a given Access Profile A token with API, ORG_ADMIN, SOURCE_ADMIN, or SOURCE_SUBADMIN authority is required to invoke this API. In addition, a token with SOURCE_SUBADMIN authority must have access to the Source associated with the given Access Profile\n * @summary List Access Profile\\'s Entitlements\n * @param {string} id ID of the containing Access Profile\n * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **id**: *eq, in* **name**: *eq, sw* **attribute**: *eq, sw* **value**: *eq, sw* **created**: *gt, lt, ge, le* **modified**: *gt, lt, ge, le* **owner.id**: *eq, in* **source.id**: *eq, in*\n * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **name, attribute, value, created, modified**\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getAccessProfileEntitlements: function (id, limit, offset, count, filters, sorters, axiosOptions) {\n return localVarFp.getAccessProfileEntitlements(id, limit, offset, count, filters, sorters, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This API returns a list of Access Profiles. A token with API, ORG_ADMIN, ROLE_ADMIN, ROLE_SUBADMIN, SOURCE_ADMIN, or SOURCE_SUBADMIN authority is required to call this API.\n * @summary List Access Profiles\n * @param {string} [forSubadmin] If provided, filters the returned list according to what is visible to the indicated ROLE_SUBADMIN or SOURCE_SUBADMIN Identity. The value of the parameter is either an Identity ID, or the special value **me**, which is shorthand for the calling Identity\\'s ID. A 400 Bad Request error is returned if the **for-subadmin** parameter is specified for an Identity that is not a subadmin.\n * @param {number} [limit] Note that for this API the maximum value for limit is 50. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **id**: *eq, in* **name**: *eq, sw, co* **created**: *gt, lt, ge, le* **modified**: *gt, lt, ge, le* **owner.id**: *eq, in* **requestable**: *eq* **source.id**: *eq, in* Composite operators supported: *and, or*\n * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **name, created, modified**\n * @param {string} [forSegmentIds] If present and not empty, additionally filters Access Profiles to those which are assigned to the Segment(s) with the specified IDs. If segmentation is currently unavailable, specifying this parameter results in an error.\n * @param {boolean} [includeUnsegmented] Whether or not the response list should contain unsegmented Access Profiles. If *for-segment-ids* is absent or empty, specifying *include-unsegmented* as false results in an error.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n listAccessProfiles: function (forSubadmin, limit, offset, count, filters, sorters, forSegmentIds, includeUnsegmented, axiosOptions) {\n return localVarFp.listAccessProfiles(forSubadmin, limit, offset, count, filters, sorters, forSegmentIds, includeUnsegmented, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This API updates an existing Access Profile. The following fields are patchable: **name** **description** **enabled** **owner** **requestable** **accessRequestConfig** **revokeRequestConfig** **segments** **entitlements** **provisioningCriteria** **source** (must be updated with entitlements belonging to new source in the same API call) If you need to change the `source` of the access profile, you can do so only if you update the `entitlements` in the same API call. The new entitlements can only come from the target source that you want to change to. Look for the example \\\"Replace Source\\\" in the examples dropdown. A token with API, ORG_ADMIN, SOURCE_ADMIN, or SOURCE_SUBADMIN authority is required to call this API. In addition, a SOURCE_SUBADMIN may only use this API to patch Access Profiles which are associated with Sources they are able to administer. > The maximum supported length for the description field is 2000 characters. Longer descriptions will be preserved for existing access profiles, however, any new access profiles as well as any updates to existing descriptions will be limited to 2000 characters. > You can only add or replace **entitlements** that exist on the source that the access profile is attached to. You can use the **list entitlements** endpoint with the **filters** query parameter to get a list of available entitlements on the access profile\\'s source. > Patching the value of the **requestable** field is only supported for customers enabled with the new Request Center. Otherwise, attempting to modify this field results in a 400 error.\n * @summary Patch a specified Access Profile\n * @param {string} id ID of the Access Profile to patch\n * @param {Array} jsonPatchOperation\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n patchAccessProfile: function (id, jsonPatchOperation, axiosOptions) {\n return localVarFp.patchAccessProfile(id, jsonPatchOperation, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n };\n};\nexports.AccessProfilesApiFactory = AccessProfilesApiFactory;\n/**\n * AccessProfilesApi - object-oriented interface\n * @export\n * @class AccessProfilesApi\n * @extends {BaseAPI}\n */\nvar AccessProfilesApi = /** @class */ (function (_super) {\n __extends(AccessProfilesApi, _super);\n function AccessProfilesApi() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n * This API creates an Access Profile. A token with API, ORG_ADMIN, ROLE_ADMIN, ROLE_SUBADMIN, SOURCE_ADMIN, or SOURCE_SUBADMIN authority is required to call this API. In addition, a token with only ROLE_SUBADMIN or SOURCE_SUBADMIN authority must be associated with the Access Profile\\'s Source. The maximum supported length for the description field is 2000 characters. Longer descriptions will be preserved for existing access profiles, however, any new access profiles as well as any updates to existing descriptions will be limited to 2000 characters.\n * @summary Create an Access Profile\n * @param {AccessProfilesApiCreateAccessProfileRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof AccessProfilesApi\n */\n AccessProfilesApi.prototype.createAccessProfile = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.AccessProfilesApiFp)(this.configuration).createAccessProfile(requestParameters.accessProfile, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This API deletes an existing Access Profile. The Access Profile must not be in use, for example, Access Profile can not be deleted if they belong to an Application, Life Cycle State or a Role. If it is, a 400 error is returned. A token with API, ORG_ADMIN, SOURCE_ADMIN, or SOURCE_SUBADMIN authority is required to invoke this API. In addition, a SOURCE_SUBADMIN token must be able to administer the Source associated with the Access Profile.\n * @summary Delete the specified Access Profile\n * @param {AccessProfilesApiDeleteAccessProfileRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof AccessProfilesApi\n */\n AccessProfilesApi.prototype.deleteAccessProfile = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.AccessProfilesApiFp)(this.configuration).deleteAccessProfile(requestParameters.id, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This API initiates a bulk deletion of one or more Access Profiles. By default, if any of the indicated Access Profiles are in use, no deletions will be performed and the **inUse** field of the response indicates the usages that must be removed first. If the request field **bestEffortOnly** is **true**, however, usages are reported in the **inUse** response field but all other indicated Access Profiles will be deleted. A token with API, ORG_ADMIN, SOURCE_ADMIN, or SOURCE_SUBADMIN authority is required to call this API. In addition, a SOURCE_SUBADMIN may only use this API to delete Access Profiles which are associated with Sources they are able to administer.\n * @summary Delete Access Profile(s)\n * @param {AccessProfilesApiDeleteAccessProfilesInBulkRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof AccessProfilesApi\n */\n AccessProfilesApi.prototype.deleteAccessProfilesInBulk = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.AccessProfilesApiFp)(this.configuration).deleteAccessProfilesInBulk(requestParameters.accessProfileBulkDeleteRequest, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This API returns an Access Profile by its ID. A token with API, ORG_ADMIN, ROLE_ADMIN, ROLE_SUBADMIN, SOURCE_ADMIN, or SOURCE_SUBADMIN authority is required to call this API.\n * @summary Get an Access Profile\n * @param {AccessProfilesApiGetAccessProfileRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof AccessProfilesApi\n */\n AccessProfilesApi.prototype.getAccessProfile = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.AccessProfilesApiFp)(this.configuration).getAccessProfile(requestParameters.id, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This API lists the Entitlements associated with a given Access Profile A token with API, ORG_ADMIN, SOURCE_ADMIN, or SOURCE_SUBADMIN authority is required to invoke this API. In addition, a token with SOURCE_SUBADMIN authority must have access to the Source associated with the given Access Profile\n * @summary List Access Profile\\'s Entitlements\n * @param {AccessProfilesApiGetAccessProfileEntitlementsRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof AccessProfilesApi\n */\n AccessProfilesApi.prototype.getAccessProfileEntitlements = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.AccessProfilesApiFp)(this.configuration).getAccessProfileEntitlements(requestParameters.id, requestParameters.limit, requestParameters.offset, requestParameters.count, requestParameters.filters, requestParameters.sorters, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This API returns a list of Access Profiles. A token with API, ORG_ADMIN, ROLE_ADMIN, ROLE_SUBADMIN, SOURCE_ADMIN, or SOURCE_SUBADMIN authority is required to call this API.\n * @summary List Access Profiles\n * @param {AccessProfilesApiListAccessProfilesRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof AccessProfilesApi\n */\n AccessProfilesApi.prototype.listAccessProfiles = function (requestParameters, axiosOptions) {\n var _this = this;\n if (requestParameters === void 0) { requestParameters = {}; }\n return (0, exports.AccessProfilesApiFp)(this.configuration).listAccessProfiles(requestParameters.forSubadmin, requestParameters.limit, requestParameters.offset, requestParameters.count, requestParameters.filters, requestParameters.sorters, requestParameters.forSegmentIds, requestParameters.includeUnsegmented, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This API updates an existing Access Profile. The following fields are patchable: **name** **description** **enabled** **owner** **requestable** **accessRequestConfig** **revokeRequestConfig** **segments** **entitlements** **provisioningCriteria** **source** (must be updated with entitlements belonging to new source in the same API call) If you need to change the `source` of the access profile, you can do so only if you update the `entitlements` in the same API call. The new entitlements can only come from the target source that you want to change to. Look for the example \\\"Replace Source\\\" in the examples dropdown. A token with API, ORG_ADMIN, SOURCE_ADMIN, or SOURCE_SUBADMIN authority is required to call this API. In addition, a SOURCE_SUBADMIN may only use this API to patch Access Profiles which are associated with Sources they are able to administer. > The maximum supported length for the description field is 2000 characters. Longer descriptions will be preserved for existing access profiles, however, any new access profiles as well as any updates to existing descriptions will be limited to 2000 characters. > You can only add or replace **entitlements** that exist on the source that the access profile is attached to. You can use the **list entitlements** endpoint with the **filters** query parameter to get a list of available entitlements on the access profile\\'s source. > Patching the value of the **requestable** field is only supported for customers enabled with the new Request Center. Otherwise, attempting to modify this field results in a 400 error.\n * @summary Patch a specified Access Profile\n * @param {AccessProfilesApiPatchAccessProfileRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof AccessProfilesApi\n */\n AccessProfilesApi.prototype.patchAccessProfile = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.AccessProfilesApiFp)(this.configuration).patchAccessProfile(requestParameters.id, requestParameters.jsonPatchOperation, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n return AccessProfilesApi;\n}(base_1.BaseAPI));\nexports.AccessProfilesApi = AccessProfilesApi;\n/**\n * AccessRequestApprovalsApi - axios parameter creator\n * @export\n */\nvar AccessRequestApprovalsApiAxiosParamCreator = function (configuration) {\n var _this = this;\n return {\n /**\n * This endpoint approves an access request approval. Only the owner of the approval and ORG_ADMIN users are allowed to perform this action.\n * @summary Approves an access request approval.\n * @param {string} approvalId The id of the approval.\n * @param {CommentDto} [commentDto] Reviewer\\'s comment.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n approveAccessRequest: function (approvalId, commentDto, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'approvalId' is not null or undefined\n (0, common_1.assertParamExists)('approveAccessRequest', 'approvalId', approvalId);\n localVarPath = \"/access-request-approvals/{approvalId}/approve\"\n .replace(\"{\".concat(\"approvalId\", \"}\"), encodeURIComponent(String(approvalId)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n localVarHeaderParameter['Content-Type'] = 'application/json';\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(commentDto, localVarRequestOptions, configuration);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This endpoint forwards an access request approval to a new owner. Only the owner of the approval and ORG_ADMIN users are allowed to perform this action.\n * @summary Forwards an access request approval.\n * @param {string} approvalId The id of the approval.\n * @param {ForwardApprovalDto} forwardApprovalDto Information about the forwarded approval.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n forwardAccessRequest: function (approvalId, forwardApprovalDto, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'approvalId' is not null or undefined\n (0, common_1.assertParamExists)('forwardAccessRequest', 'approvalId', approvalId);\n // verify required parameter 'forwardApprovalDto' is not null or undefined\n (0, common_1.assertParamExists)('forwardAccessRequest', 'forwardApprovalDto', forwardApprovalDto);\n localVarPath = \"/access-request-approvals/{approvalId}/forward\"\n .replace(\"{\".concat(\"approvalId\", \"}\"), encodeURIComponent(String(approvalId)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n localVarHeaderParameter['Content-Type'] = 'application/json';\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(forwardApprovalDto, localVarRequestOptions, configuration);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This endpoint returns the number of pending, approved and rejected access requests approvals. See \\\"owner-id\\\" query parameter below for authorization info.\n * @summary Get the number of access-requests-approvals\n * @param {string} [ownerId] The id of the owner or approver identity of the approvals. If present, the value returns approval summary for the specified identity. * ORG_ADMIN users can call this with any identity ID value. * ORG_ADMIN user can also fetch all the approvals in the org, when owner-id is not used. * Non ORG_ADMIN users can only specify *me* or pass their own identity ID value.\n * @param {string} [fromDate] From date is the date and time from which the results will be shown. It should be in a valid ISO-8601 format\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getAccessRequestApprovalSummary: function (ownerId, fromDate, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n localVarPath = \"/access-request-approvals/approval-summary\";\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n if (ownerId !== undefined) {\n localVarQueryParameter['owner-id'] = ownerId;\n }\n if (fromDate !== undefined) {\n localVarQueryParameter['from-date'] = fromDate;\n }\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This endpoint returns list of completed approvals. See *owner-id* query parameter below for authorization info.\n * @summary Completed Access Request Approvals List\n * @param {string} [ownerId] If present, the value returns only completed approvals for the specified identity. * ORG_ADMIN users can call this with any identity ID value. * ORG_ADMIN users can also fetch all the approvals in the org, when owner-id is not used. * Non-ORG_ADMIN users can only specify *me* or pass their own identity ID value.\n * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **id**: *eq, in, co, ge, gt, le, lt, ne, isnull, sw* **requestedFor.id**: *eq, in, co, ge, gt, le, lt, ne, isnull, sw* **modified**: *gt, lt, ge, le, co, eq, in, ne, sw*\n * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **created, modified**\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n listCompletedApprovals: function (ownerId, limit, offset, count, filters, sorters, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n localVarPath = \"/access-request-approvals/completed\";\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n if (ownerId !== undefined) {\n localVarQueryParameter['owner-id'] = ownerId;\n }\n if (limit !== undefined) {\n localVarQueryParameter['limit'] = limit;\n }\n if (offset !== undefined) {\n localVarQueryParameter['offset'] = offset;\n }\n if (count !== undefined) {\n localVarQueryParameter['count'] = count;\n }\n if (filters !== undefined) {\n localVarQueryParameter['filters'] = filters;\n }\n if (sorters !== undefined) {\n localVarQueryParameter['sorters'] = sorters;\n }\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This endpoint returns a list of pending approvals. See \\\"owner-id\\\" query parameter below for authorization info.\n * @summary Pending Access Request Approvals List\n * @param {string} [ownerId] If present, the value returns only pending approvals for the specified identity. * ORG_ADMIN users can call this with any identity ID value. * ORG_ADMIN users can also fetch all the approvals in the org, when owner-id is not used. * Non-ORG_ADMIN users can only specify *me* or pass their own identity ID value.\n * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **id**: *eq, in* **requestedFor.id**: *eq, in* **modified**: *gt, lt, ge, le, eq, in*\n * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **created, modified**\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n listPendingApprovals: function (ownerId, limit, offset, count, filters, sorters, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n localVarPath = \"/access-request-approvals/pending\";\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n if (ownerId !== undefined) {\n localVarQueryParameter['owner-id'] = ownerId;\n }\n if (limit !== undefined) {\n localVarQueryParameter['limit'] = limit;\n }\n if (offset !== undefined) {\n localVarQueryParameter['offset'] = offset;\n }\n if (count !== undefined) {\n localVarQueryParameter['count'] = count;\n }\n if (filters !== undefined) {\n localVarQueryParameter['filters'] = filters;\n }\n if (sorters !== undefined) {\n localVarQueryParameter['sorters'] = sorters;\n }\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This endpoint rejects an access request approval. Only the owner of the approval and admin users are allowed to perform this action.\n * @summary Rejects an access request approval.\n * @param {string} approvalId The id of the approval.\n * @param {CommentDto} [commentDto] Reviewer\\'s comment.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n rejectAccessRequest: function (approvalId, commentDto, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'approvalId' is not null or undefined\n (0, common_1.assertParamExists)('rejectAccessRequest', 'approvalId', approvalId);\n localVarPath = \"/access-request-approvals/{approvalId}/reject\"\n .replace(\"{\".concat(\"approvalId\", \"}\"), encodeURIComponent(String(approvalId)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n localVarHeaderParameter['Content-Type'] = 'application/json';\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(commentDto, localVarRequestOptions, configuration);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n };\n};\nexports.AccessRequestApprovalsApiAxiosParamCreator = AccessRequestApprovalsApiAxiosParamCreator;\n/**\n * AccessRequestApprovalsApi - functional programming interface\n * @export\n */\nvar AccessRequestApprovalsApiFp = function (configuration) {\n var localVarAxiosParamCreator = (0, exports.AccessRequestApprovalsApiAxiosParamCreator)(configuration);\n return {\n /**\n * This endpoint approves an access request approval. Only the owner of the approval and ORG_ADMIN users are allowed to perform this action.\n * @summary Approves an access request approval.\n * @param {string} approvalId The id of the approval.\n * @param {CommentDto} [commentDto] Reviewer\\'s comment.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n approveAccessRequest: function (approvalId, commentDto, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.approveAccessRequest(approvalId, commentDto, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This endpoint forwards an access request approval to a new owner. Only the owner of the approval and ORG_ADMIN users are allowed to perform this action.\n * @summary Forwards an access request approval.\n * @param {string} approvalId The id of the approval.\n * @param {ForwardApprovalDto} forwardApprovalDto Information about the forwarded approval.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n forwardAccessRequest: function (approvalId, forwardApprovalDto, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.forwardAccessRequest(approvalId, forwardApprovalDto, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This endpoint returns the number of pending, approved and rejected access requests approvals. See \\\"owner-id\\\" query parameter below for authorization info.\n * @summary Get the number of access-requests-approvals\n * @param {string} [ownerId] The id of the owner or approver identity of the approvals. If present, the value returns approval summary for the specified identity. * ORG_ADMIN users can call this with any identity ID value. * ORG_ADMIN user can also fetch all the approvals in the org, when owner-id is not used. * Non ORG_ADMIN users can only specify *me* or pass their own identity ID value.\n * @param {string} [fromDate] From date is the date and time from which the results will be shown. It should be in a valid ISO-8601 format\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getAccessRequestApprovalSummary: function (ownerId, fromDate, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.getAccessRequestApprovalSummary(ownerId, fromDate, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This endpoint returns list of completed approvals. See *owner-id* query parameter below for authorization info.\n * @summary Completed Access Request Approvals List\n * @param {string} [ownerId] If present, the value returns only completed approvals for the specified identity. * ORG_ADMIN users can call this with any identity ID value. * ORG_ADMIN users can also fetch all the approvals in the org, when owner-id is not used. * Non-ORG_ADMIN users can only specify *me* or pass their own identity ID value.\n * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **id**: *eq, in, co, ge, gt, le, lt, ne, isnull, sw* **requestedFor.id**: *eq, in, co, ge, gt, le, lt, ne, isnull, sw* **modified**: *gt, lt, ge, le, co, eq, in, ne, sw*\n * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **created, modified**\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n listCompletedApprovals: function (ownerId, limit, offset, count, filters, sorters, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.listCompletedApprovals(ownerId, limit, offset, count, filters, sorters, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This endpoint returns a list of pending approvals. See \\\"owner-id\\\" query parameter below for authorization info.\n * @summary Pending Access Request Approvals List\n * @param {string} [ownerId] If present, the value returns only pending approvals for the specified identity. * ORG_ADMIN users can call this with any identity ID value. * ORG_ADMIN users can also fetch all the approvals in the org, when owner-id is not used. * Non-ORG_ADMIN users can only specify *me* or pass their own identity ID value.\n * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **id**: *eq, in* **requestedFor.id**: *eq, in* **modified**: *gt, lt, ge, le, eq, in*\n * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **created, modified**\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n listPendingApprovals: function (ownerId, limit, offset, count, filters, sorters, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.listPendingApprovals(ownerId, limit, offset, count, filters, sorters, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This endpoint rejects an access request approval. Only the owner of the approval and admin users are allowed to perform this action.\n * @summary Rejects an access request approval.\n * @param {string} approvalId The id of the approval.\n * @param {CommentDto} [commentDto] Reviewer\\'s comment.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n rejectAccessRequest: function (approvalId, commentDto, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.rejectAccessRequest(approvalId, commentDto, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n };\n};\nexports.AccessRequestApprovalsApiFp = AccessRequestApprovalsApiFp;\n/**\n * AccessRequestApprovalsApi - factory interface\n * @export\n */\nvar AccessRequestApprovalsApiFactory = function (configuration, basePath, axios) {\n var localVarFp = (0, exports.AccessRequestApprovalsApiFp)(configuration);\n return {\n /**\n * This endpoint approves an access request approval. Only the owner of the approval and ORG_ADMIN users are allowed to perform this action.\n * @summary Approves an access request approval.\n * @param {string} approvalId The id of the approval.\n * @param {CommentDto} [commentDto] Reviewer\\'s comment.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n approveAccessRequest: function (approvalId, commentDto, axiosOptions) {\n return localVarFp.approveAccessRequest(approvalId, commentDto, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This endpoint forwards an access request approval to a new owner. Only the owner of the approval and ORG_ADMIN users are allowed to perform this action.\n * @summary Forwards an access request approval.\n * @param {string} approvalId The id of the approval.\n * @param {ForwardApprovalDto} forwardApprovalDto Information about the forwarded approval.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n forwardAccessRequest: function (approvalId, forwardApprovalDto, axiosOptions) {\n return localVarFp.forwardAccessRequest(approvalId, forwardApprovalDto, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This endpoint returns the number of pending, approved and rejected access requests approvals. See \\\"owner-id\\\" query parameter below for authorization info.\n * @summary Get the number of access-requests-approvals\n * @param {string} [ownerId] The id of the owner or approver identity of the approvals. If present, the value returns approval summary for the specified identity. * ORG_ADMIN users can call this with any identity ID value. * ORG_ADMIN user can also fetch all the approvals in the org, when owner-id is not used. * Non ORG_ADMIN users can only specify *me* or pass their own identity ID value.\n * @param {string} [fromDate] From date is the date and time from which the results will be shown. It should be in a valid ISO-8601 format\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getAccessRequestApprovalSummary: function (ownerId, fromDate, axiosOptions) {\n return localVarFp.getAccessRequestApprovalSummary(ownerId, fromDate, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This endpoint returns list of completed approvals. See *owner-id* query parameter below for authorization info.\n * @summary Completed Access Request Approvals List\n * @param {string} [ownerId] If present, the value returns only completed approvals for the specified identity. * ORG_ADMIN users can call this with any identity ID value. * ORG_ADMIN users can also fetch all the approvals in the org, when owner-id is not used. * Non-ORG_ADMIN users can only specify *me* or pass their own identity ID value.\n * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **id**: *eq, in, co, ge, gt, le, lt, ne, isnull, sw* **requestedFor.id**: *eq, in, co, ge, gt, le, lt, ne, isnull, sw* **modified**: *gt, lt, ge, le, co, eq, in, ne, sw*\n * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **created, modified**\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n listCompletedApprovals: function (ownerId, limit, offset, count, filters, sorters, axiosOptions) {\n return localVarFp.listCompletedApprovals(ownerId, limit, offset, count, filters, sorters, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This endpoint returns a list of pending approvals. See \\\"owner-id\\\" query parameter below for authorization info.\n * @summary Pending Access Request Approvals List\n * @param {string} [ownerId] If present, the value returns only pending approvals for the specified identity. * ORG_ADMIN users can call this with any identity ID value. * ORG_ADMIN users can also fetch all the approvals in the org, when owner-id is not used. * Non-ORG_ADMIN users can only specify *me* or pass their own identity ID value.\n * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **id**: *eq, in* **requestedFor.id**: *eq, in* **modified**: *gt, lt, ge, le, eq, in*\n * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **created, modified**\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n listPendingApprovals: function (ownerId, limit, offset, count, filters, sorters, axiosOptions) {\n return localVarFp.listPendingApprovals(ownerId, limit, offset, count, filters, sorters, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This endpoint rejects an access request approval. Only the owner of the approval and admin users are allowed to perform this action.\n * @summary Rejects an access request approval.\n * @param {string} approvalId The id of the approval.\n * @param {CommentDto} [commentDto] Reviewer\\'s comment.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n rejectAccessRequest: function (approvalId, commentDto, axiosOptions) {\n return localVarFp.rejectAccessRequest(approvalId, commentDto, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n };\n};\nexports.AccessRequestApprovalsApiFactory = AccessRequestApprovalsApiFactory;\n/**\n * AccessRequestApprovalsApi - object-oriented interface\n * @export\n * @class AccessRequestApprovalsApi\n * @extends {BaseAPI}\n */\nvar AccessRequestApprovalsApi = /** @class */ (function (_super) {\n __extends(AccessRequestApprovalsApi, _super);\n function AccessRequestApprovalsApi() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n * This endpoint approves an access request approval. Only the owner of the approval and ORG_ADMIN users are allowed to perform this action.\n * @summary Approves an access request approval.\n * @param {AccessRequestApprovalsApiApproveAccessRequestRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof AccessRequestApprovalsApi\n */\n AccessRequestApprovalsApi.prototype.approveAccessRequest = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.AccessRequestApprovalsApiFp)(this.configuration).approveAccessRequest(requestParameters.approvalId, requestParameters.commentDto, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This endpoint forwards an access request approval to a new owner. Only the owner of the approval and ORG_ADMIN users are allowed to perform this action.\n * @summary Forwards an access request approval.\n * @param {AccessRequestApprovalsApiForwardAccessRequestRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof AccessRequestApprovalsApi\n */\n AccessRequestApprovalsApi.prototype.forwardAccessRequest = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.AccessRequestApprovalsApiFp)(this.configuration).forwardAccessRequest(requestParameters.approvalId, requestParameters.forwardApprovalDto, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This endpoint returns the number of pending, approved and rejected access requests approvals. See \\\"owner-id\\\" query parameter below for authorization info.\n * @summary Get the number of access-requests-approvals\n * @param {AccessRequestApprovalsApiGetAccessRequestApprovalSummaryRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof AccessRequestApprovalsApi\n */\n AccessRequestApprovalsApi.prototype.getAccessRequestApprovalSummary = function (requestParameters, axiosOptions) {\n var _this = this;\n if (requestParameters === void 0) { requestParameters = {}; }\n return (0, exports.AccessRequestApprovalsApiFp)(this.configuration).getAccessRequestApprovalSummary(requestParameters.ownerId, requestParameters.fromDate, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This endpoint returns list of completed approvals. See *owner-id* query parameter below for authorization info.\n * @summary Completed Access Request Approvals List\n * @param {AccessRequestApprovalsApiListCompletedApprovalsRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof AccessRequestApprovalsApi\n */\n AccessRequestApprovalsApi.prototype.listCompletedApprovals = function (requestParameters, axiosOptions) {\n var _this = this;\n if (requestParameters === void 0) { requestParameters = {}; }\n return (0, exports.AccessRequestApprovalsApiFp)(this.configuration).listCompletedApprovals(requestParameters.ownerId, requestParameters.limit, requestParameters.offset, requestParameters.count, requestParameters.filters, requestParameters.sorters, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This endpoint returns a list of pending approvals. See \\\"owner-id\\\" query parameter below for authorization info.\n * @summary Pending Access Request Approvals List\n * @param {AccessRequestApprovalsApiListPendingApprovalsRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof AccessRequestApprovalsApi\n */\n AccessRequestApprovalsApi.prototype.listPendingApprovals = function (requestParameters, axiosOptions) {\n var _this = this;\n if (requestParameters === void 0) { requestParameters = {}; }\n return (0, exports.AccessRequestApprovalsApiFp)(this.configuration).listPendingApprovals(requestParameters.ownerId, requestParameters.limit, requestParameters.offset, requestParameters.count, requestParameters.filters, requestParameters.sorters, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This endpoint rejects an access request approval. Only the owner of the approval and admin users are allowed to perform this action.\n * @summary Rejects an access request approval.\n * @param {AccessRequestApprovalsApiRejectAccessRequestRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof AccessRequestApprovalsApi\n */\n AccessRequestApprovalsApi.prototype.rejectAccessRequest = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.AccessRequestApprovalsApiFp)(this.configuration).rejectAccessRequest(requestParameters.approvalId, requestParameters.commentDto, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n return AccessRequestApprovalsApi;\n}(base_1.BaseAPI));\nexports.AccessRequestApprovalsApi = AccessRequestApprovalsApi;\n/**\n * AccessRequestsApi - axios parameter creator\n * @export\n */\nvar AccessRequestsApiAxiosParamCreator = function (configuration) {\n var _this = this;\n return {\n /**\n * This API endpoint cancels a pending access request. An access request can be cancelled only if it has not passed the approval step. Any token with ORG_ADMIN authority or token of the user who originally requested the access request is required to cancel it.\n * @summary Cancel Access Request\n * @param {CancelAccessRequest} cancelAccessRequest\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n cancelAccessRequest: function (cancelAccessRequest, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'cancelAccessRequest' is not null or undefined\n (0, common_1.assertParamExists)('cancelAccessRequest', 'cancelAccessRequest', cancelAccessRequest);\n localVarPath = \"/access-requests/cancel\";\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n localVarHeaderParameter['Content-Type'] = 'application/json';\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(cancelAccessRequest, localVarRequestOptions, configuration);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This submits the access request into IdentityNow, where it will follow any IdentityNow approval processes. Access requests are processed asynchronously by IdentityNow. A success response from this endpoint means the request has been submitted to IDN and is queued for processing. Because this endpoint is asynchronous, it will not return an error if you submit duplicate access requests in quick succession, or you submit an access request for access that is already in progress, approved, or rejected. It is best practice to check for any existing access requests that reference the same access items before submitting a new access request. This can be accomplished by using the [access request status](https://developer.sailpoint.com/idn/api/v3/list-access-request-status) or the [pending access request approvals](https://developer.sailpoint.com/idn/api/v3/list-pending-approvals) endpoints. You can also use the [search API](https://developer.sailpoint.com/idn/api/v3/search) to check the existing access items that an identity has before submitting an access request to ensure you are not requesting access that is already granted. There are two types of access request: __GRANT_ACCESS__ * Can be requested for multiple identities in a single request. * Supports self request and request on behalf of other users. Refer to the [Get Access Request Configuration](https://developer.sailpoint.com/idn/api/v3/get-access-request-config) endpoint for request configuration options. * Allows any authenticated token (except API) to call this endpoint to request to grant access to themselves. Depending on the configuration, a user can request access for others. * Roles, access profiles and entitlements can be requested. * While requesting entitlements, maximum of 25 entitlements and 10 recipients are allowed in a request. __REVOKE_ACCESS__ * Can only be requested for a single identity at a time. * Does not support self request. Only manager can request to revoke access for their directly managed employees. * If a `removeDate` is specified, then the access will be removed on that date and time only for roles and access profiles. Entitlements are currently unsupported for `removeDate`. * Roles, access profiles, and entitlements can be requested for revocation. * Revoke requests for entitlements are limited to 1 entitlement per access request currently. * [Roles, Access Profiles] You can specify a `removeDate` if the access doesn\\'t already have a sunset date. The `removeDate` must be a future date, in the UTC timezone. * Allows a manager to request to revoke access for direct employees. A token with ORG_ADMIN authority can also request to revoke access from anyone. >**Note:** There is no indication to the approver in the IdentityNow UI that the approval request is for a revoke action. Take this into consideration when calling this API. A token with API authority cannot be used to call this endpoint.\n * @summary Submit an Access Request\n * @param {AccessRequest} accessRequest\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n createAccessRequest: function (accessRequest, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'accessRequest' is not null or undefined\n (0, common_1.assertParamExists)('createAccessRequest', 'accessRequest', accessRequest);\n localVarPath = \"/access-requests\";\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n localVarHeaderParameter['Content-Type'] = 'application/json';\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(accessRequest, localVarRequestOptions, configuration);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This endpoint returns the current access-request configuration.\n * @summary Get Access Request Configuration\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getAccessRequestConfig: function (axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n localVarPath = \"/access-request-config\";\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * The Access Request Status API returns a list of access request statuses based on the specified query parameters. Any token with any authority can request their own status. A token with ORG_ADMIN authority is required to call this API to get a list of statuses for other users.\n * @summary Access Request Status\n * @param {string} [requestedFor] Filter the results by the identity for which the requests were made. *me* indicates the current user. Mutually exclusive with *regarding-identity*.\n * @param {string} [requestedBy] Filter the results by the identity that made the requests. *me* indicates the current user. Mutually exclusive with *regarding-identity*.\n * @param {string} [regardingIdentity] Filter the results by the specified identity which is either the requester or target of the requests. *me* indicates the current user. Mutually exclusive with *requested-for* and *requested-by*.\n * @param {string} [assignedTo] Filter the results by the specified identity which is the owner of the Identity Request Work Item. *me* indicates the current user.\n * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored.\n * @param {number} [limit] Max number of results to return.\n * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. Defaults to 0 if not specified.\n * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **accountActivityItemId**: *eq, in, co, ge, gt, le, lt, ne, isnull, sw*\n * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **created, modified, accountActivityItemId, name**\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n listAccessRequestStatus: function (requestedFor, requestedBy, regardingIdentity, assignedTo, count, limit, offset, filters, sorters, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n localVarPath = \"/access-request-status\";\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n if (requestedFor !== undefined) {\n localVarQueryParameter['requested-for'] = requestedFor;\n }\n if (requestedBy !== undefined) {\n localVarQueryParameter['requested-by'] = requestedBy;\n }\n if (regardingIdentity !== undefined) {\n localVarQueryParameter['regarding-identity'] = regardingIdentity;\n }\n if (assignedTo !== undefined) {\n localVarQueryParameter['assigned-to'] = assignedTo;\n }\n if (count !== undefined) {\n localVarQueryParameter['count'] = count;\n }\n if (limit !== undefined) {\n localVarQueryParameter['limit'] = limit;\n }\n if (offset !== undefined) {\n localVarQueryParameter['offset'] = offset;\n }\n if (filters !== undefined) {\n localVarQueryParameter['filters'] = filters;\n }\n if (sorters !== undefined) {\n localVarQueryParameter['sorters'] = sorters;\n }\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This endpoint replaces the current access-request configuration. A token with ORG_ADMIN authority is required to call this API.\n * @summary Update Access Request Configuration\n * @param {AccessRequestConfig} accessRequestConfig\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n setAccessRequestConfig: function (accessRequestConfig, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'accessRequestConfig' is not null or undefined\n (0, common_1.assertParamExists)('setAccessRequestConfig', 'accessRequestConfig', accessRequestConfig);\n localVarPath = \"/access-request-config\";\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'PUT' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n localVarHeaderParameter['Content-Type'] = 'application/json';\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(accessRequestConfig, localVarRequestOptions, configuration);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n };\n};\nexports.AccessRequestsApiAxiosParamCreator = AccessRequestsApiAxiosParamCreator;\n/**\n * AccessRequestsApi - functional programming interface\n * @export\n */\nvar AccessRequestsApiFp = function (configuration) {\n var localVarAxiosParamCreator = (0, exports.AccessRequestsApiAxiosParamCreator)(configuration);\n return {\n /**\n * This API endpoint cancels a pending access request. An access request can be cancelled only if it has not passed the approval step. Any token with ORG_ADMIN authority or token of the user who originally requested the access request is required to cancel it.\n * @summary Cancel Access Request\n * @param {CancelAccessRequest} cancelAccessRequest\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n cancelAccessRequest: function (cancelAccessRequest, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.cancelAccessRequest(cancelAccessRequest, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This submits the access request into IdentityNow, where it will follow any IdentityNow approval processes. Access requests are processed asynchronously by IdentityNow. A success response from this endpoint means the request has been submitted to IDN and is queued for processing. Because this endpoint is asynchronous, it will not return an error if you submit duplicate access requests in quick succession, or you submit an access request for access that is already in progress, approved, or rejected. It is best practice to check for any existing access requests that reference the same access items before submitting a new access request. This can be accomplished by using the [access request status](https://developer.sailpoint.com/idn/api/v3/list-access-request-status) or the [pending access request approvals](https://developer.sailpoint.com/idn/api/v3/list-pending-approvals) endpoints. You can also use the [search API](https://developer.sailpoint.com/idn/api/v3/search) to check the existing access items that an identity has before submitting an access request to ensure you are not requesting access that is already granted. There are two types of access request: __GRANT_ACCESS__ * Can be requested for multiple identities in a single request. * Supports self request and request on behalf of other users. Refer to the [Get Access Request Configuration](https://developer.sailpoint.com/idn/api/v3/get-access-request-config) endpoint for request configuration options. * Allows any authenticated token (except API) to call this endpoint to request to grant access to themselves. Depending on the configuration, a user can request access for others. * Roles, access profiles and entitlements can be requested. * While requesting entitlements, maximum of 25 entitlements and 10 recipients are allowed in a request. __REVOKE_ACCESS__ * Can only be requested for a single identity at a time. * Does not support self request. Only manager can request to revoke access for their directly managed employees. * If a `removeDate` is specified, then the access will be removed on that date and time only for roles and access profiles. Entitlements are currently unsupported for `removeDate`. * Roles, access profiles, and entitlements can be requested for revocation. * Revoke requests for entitlements are limited to 1 entitlement per access request currently. * [Roles, Access Profiles] You can specify a `removeDate` if the access doesn\\'t already have a sunset date. The `removeDate` must be a future date, in the UTC timezone. * Allows a manager to request to revoke access for direct employees. A token with ORG_ADMIN authority can also request to revoke access from anyone. >**Note:** There is no indication to the approver in the IdentityNow UI that the approval request is for a revoke action. Take this into consideration when calling this API. A token with API authority cannot be used to call this endpoint.\n * @summary Submit an Access Request\n * @param {AccessRequest} accessRequest\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n createAccessRequest: function (accessRequest, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.createAccessRequest(accessRequest, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This endpoint returns the current access-request configuration.\n * @summary Get Access Request Configuration\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getAccessRequestConfig: function (axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.getAccessRequestConfig(axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * The Access Request Status API returns a list of access request statuses based on the specified query parameters. Any token with any authority can request their own status. A token with ORG_ADMIN authority is required to call this API to get a list of statuses for other users.\n * @summary Access Request Status\n * @param {string} [requestedFor] Filter the results by the identity for which the requests were made. *me* indicates the current user. Mutually exclusive with *regarding-identity*.\n * @param {string} [requestedBy] Filter the results by the identity that made the requests. *me* indicates the current user. Mutually exclusive with *regarding-identity*.\n * @param {string} [regardingIdentity] Filter the results by the specified identity which is either the requester or target of the requests. *me* indicates the current user. Mutually exclusive with *requested-for* and *requested-by*.\n * @param {string} [assignedTo] Filter the results by the specified identity which is the owner of the Identity Request Work Item. *me* indicates the current user.\n * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored.\n * @param {number} [limit] Max number of results to return.\n * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. Defaults to 0 if not specified.\n * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **accountActivityItemId**: *eq, in, co, ge, gt, le, lt, ne, isnull, sw*\n * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **created, modified, accountActivityItemId, name**\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n listAccessRequestStatus: function (requestedFor, requestedBy, regardingIdentity, assignedTo, count, limit, offset, filters, sorters, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.listAccessRequestStatus(requestedFor, requestedBy, regardingIdentity, assignedTo, count, limit, offset, filters, sorters, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This endpoint replaces the current access-request configuration. A token with ORG_ADMIN authority is required to call this API.\n * @summary Update Access Request Configuration\n * @param {AccessRequestConfig} accessRequestConfig\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n setAccessRequestConfig: function (accessRequestConfig, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.setAccessRequestConfig(accessRequestConfig, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n };\n};\nexports.AccessRequestsApiFp = AccessRequestsApiFp;\n/**\n * AccessRequestsApi - factory interface\n * @export\n */\nvar AccessRequestsApiFactory = function (configuration, basePath, axios) {\n var localVarFp = (0, exports.AccessRequestsApiFp)(configuration);\n return {\n /**\n * This API endpoint cancels a pending access request. An access request can be cancelled only if it has not passed the approval step. Any token with ORG_ADMIN authority or token of the user who originally requested the access request is required to cancel it.\n * @summary Cancel Access Request\n * @param {CancelAccessRequest} cancelAccessRequest\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n cancelAccessRequest: function (cancelAccessRequest, axiosOptions) {\n return localVarFp.cancelAccessRequest(cancelAccessRequest, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This submits the access request into IdentityNow, where it will follow any IdentityNow approval processes. Access requests are processed asynchronously by IdentityNow. A success response from this endpoint means the request has been submitted to IDN and is queued for processing. Because this endpoint is asynchronous, it will not return an error if you submit duplicate access requests in quick succession, or you submit an access request for access that is already in progress, approved, or rejected. It is best practice to check for any existing access requests that reference the same access items before submitting a new access request. This can be accomplished by using the [access request status](https://developer.sailpoint.com/idn/api/v3/list-access-request-status) or the [pending access request approvals](https://developer.sailpoint.com/idn/api/v3/list-pending-approvals) endpoints. You can also use the [search API](https://developer.sailpoint.com/idn/api/v3/search) to check the existing access items that an identity has before submitting an access request to ensure you are not requesting access that is already granted. There are two types of access request: __GRANT_ACCESS__ * Can be requested for multiple identities in a single request. * Supports self request and request on behalf of other users. Refer to the [Get Access Request Configuration](https://developer.sailpoint.com/idn/api/v3/get-access-request-config) endpoint for request configuration options. * Allows any authenticated token (except API) to call this endpoint to request to grant access to themselves. Depending on the configuration, a user can request access for others. * Roles, access profiles and entitlements can be requested. * While requesting entitlements, maximum of 25 entitlements and 10 recipients are allowed in a request. __REVOKE_ACCESS__ * Can only be requested for a single identity at a time. * Does not support self request. Only manager can request to revoke access for their directly managed employees. * If a `removeDate` is specified, then the access will be removed on that date and time only for roles and access profiles. Entitlements are currently unsupported for `removeDate`. * Roles, access profiles, and entitlements can be requested for revocation. * Revoke requests for entitlements are limited to 1 entitlement per access request currently. * [Roles, Access Profiles] You can specify a `removeDate` if the access doesn\\'t already have a sunset date. The `removeDate` must be a future date, in the UTC timezone. * Allows a manager to request to revoke access for direct employees. A token with ORG_ADMIN authority can also request to revoke access from anyone. >**Note:** There is no indication to the approver in the IdentityNow UI that the approval request is for a revoke action. Take this into consideration when calling this API. A token with API authority cannot be used to call this endpoint.\n * @summary Submit an Access Request\n * @param {AccessRequest} accessRequest\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n createAccessRequest: function (accessRequest, axiosOptions) {\n return localVarFp.createAccessRequest(accessRequest, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This endpoint returns the current access-request configuration.\n * @summary Get Access Request Configuration\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getAccessRequestConfig: function (axiosOptions) {\n return localVarFp.getAccessRequestConfig(axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * The Access Request Status API returns a list of access request statuses based on the specified query parameters. Any token with any authority can request their own status. A token with ORG_ADMIN authority is required to call this API to get a list of statuses for other users.\n * @summary Access Request Status\n * @param {string} [requestedFor] Filter the results by the identity for which the requests were made. *me* indicates the current user. Mutually exclusive with *regarding-identity*.\n * @param {string} [requestedBy] Filter the results by the identity that made the requests. *me* indicates the current user. Mutually exclusive with *regarding-identity*.\n * @param {string} [regardingIdentity] Filter the results by the specified identity which is either the requester or target of the requests. *me* indicates the current user. Mutually exclusive with *requested-for* and *requested-by*.\n * @param {string} [assignedTo] Filter the results by the specified identity which is the owner of the Identity Request Work Item. *me* indicates the current user.\n * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored.\n * @param {number} [limit] Max number of results to return.\n * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. Defaults to 0 if not specified.\n * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **accountActivityItemId**: *eq, in, co, ge, gt, le, lt, ne, isnull, sw*\n * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **created, modified, accountActivityItemId, name**\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n listAccessRequestStatus: function (requestedFor, requestedBy, regardingIdentity, assignedTo, count, limit, offset, filters, sorters, axiosOptions) {\n return localVarFp.listAccessRequestStatus(requestedFor, requestedBy, regardingIdentity, assignedTo, count, limit, offset, filters, sorters, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This endpoint replaces the current access-request configuration. A token with ORG_ADMIN authority is required to call this API.\n * @summary Update Access Request Configuration\n * @param {AccessRequestConfig} accessRequestConfig\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n setAccessRequestConfig: function (accessRequestConfig, axiosOptions) {\n return localVarFp.setAccessRequestConfig(accessRequestConfig, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n };\n};\nexports.AccessRequestsApiFactory = AccessRequestsApiFactory;\n/**\n * AccessRequestsApi - object-oriented interface\n * @export\n * @class AccessRequestsApi\n * @extends {BaseAPI}\n */\nvar AccessRequestsApi = /** @class */ (function (_super) {\n __extends(AccessRequestsApi, _super);\n function AccessRequestsApi() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n * This API endpoint cancels a pending access request. An access request can be cancelled only if it has not passed the approval step. Any token with ORG_ADMIN authority or token of the user who originally requested the access request is required to cancel it.\n * @summary Cancel Access Request\n * @param {AccessRequestsApiCancelAccessRequestRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof AccessRequestsApi\n */\n AccessRequestsApi.prototype.cancelAccessRequest = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.AccessRequestsApiFp)(this.configuration).cancelAccessRequest(requestParameters.cancelAccessRequest, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This submits the access request into IdentityNow, where it will follow any IdentityNow approval processes. Access requests are processed asynchronously by IdentityNow. A success response from this endpoint means the request has been submitted to IDN and is queued for processing. Because this endpoint is asynchronous, it will not return an error if you submit duplicate access requests in quick succession, or you submit an access request for access that is already in progress, approved, or rejected. It is best practice to check for any existing access requests that reference the same access items before submitting a new access request. This can be accomplished by using the [access request status](https://developer.sailpoint.com/idn/api/v3/list-access-request-status) or the [pending access request approvals](https://developer.sailpoint.com/idn/api/v3/list-pending-approvals) endpoints. You can also use the [search API](https://developer.sailpoint.com/idn/api/v3/search) to check the existing access items that an identity has before submitting an access request to ensure you are not requesting access that is already granted. There are two types of access request: __GRANT_ACCESS__ * Can be requested for multiple identities in a single request. * Supports self request and request on behalf of other users. Refer to the [Get Access Request Configuration](https://developer.sailpoint.com/idn/api/v3/get-access-request-config) endpoint for request configuration options. * Allows any authenticated token (except API) to call this endpoint to request to grant access to themselves. Depending on the configuration, a user can request access for others. * Roles, access profiles and entitlements can be requested. * While requesting entitlements, maximum of 25 entitlements and 10 recipients are allowed in a request. __REVOKE_ACCESS__ * Can only be requested for a single identity at a time. * Does not support self request. Only manager can request to revoke access for their directly managed employees. * If a `removeDate` is specified, then the access will be removed on that date and time only for roles and access profiles. Entitlements are currently unsupported for `removeDate`. * Roles, access profiles, and entitlements can be requested for revocation. * Revoke requests for entitlements are limited to 1 entitlement per access request currently. * [Roles, Access Profiles] You can specify a `removeDate` if the access doesn\\'t already have a sunset date. The `removeDate` must be a future date, in the UTC timezone. * Allows a manager to request to revoke access for direct employees. A token with ORG_ADMIN authority can also request to revoke access from anyone. >**Note:** There is no indication to the approver in the IdentityNow UI that the approval request is for a revoke action. Take this into consideration when calling this API. A token with API authority cannot be used to call this endpoint.\n * @summary Submit an Access Request\n * @param {AccessRequestsApiCreateAccessRequestRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof AccessRequestsApi\n */\n AccessRequestsApi.prototype.createAccessRequest = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.AccessRequestsApiFp)(this.configuration).createAccessRequest(requestParameters.accessRequest, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This endpoint returns the current access-request configuration.\n * @summary Get Access Request Configuration\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof AccessRequestsApi\n */\n AccessRequestsApi.prototype.getAccessRequestConfig = function (axiosOptions) {\n var _this = this;\n return (0, exports.AccessRequestsApiFp)(this.configuration).getAccessRequestConfig(axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * The Access Request Status API returns a list of access request statuses based on the specified query parameters. Any token with any authority can request their own status. A token with ORG_ADMIN authority is required to call this API to get a list of statuses for other users.\n * @summary Access Request Status\n * @param {AccessRequestsApiListAccessRequestStatusRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof AccessRequestsApi\n */\n AccessRequestsApi.prototype.listAccessRequestStatus = function (requestParameters, axiosOptions) {\n var _this = this;\n if (requestParameters === void 0) { requestParameters = {}; }\n return (0, exports.AccessRequestsApiFp)(this.configuration).listAccessRequestStatus(requestParameters.requestedFor, requestParameters.requestedBy, requestParameters.regardingIdentity, requestParameters.assignedTo, requestParameters.count, requestParameters.limit, requestParameters.offset, requestParameters.filters, requestParameters.sorters, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This endpoint replaces the current access-request configuration. A token with ORG_ADMIN authority is required to call this API.\n * @summary Update Access Request Configuration\n * @param {AccessRequestsApiSetAccessRequestConfigRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof AccessRequestsApi\n */\n AccessRequestsApi.prototype.setAccessRequestConfig = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.AccessRequestsApiFp)(this.configuration).setAccessRequestConfig(requestParameters.accessRequestConfig, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n return AccessRequestsApi;\n}(base_1.BaseAPI));\nexports.AccessRequestsApi = AccessRequestsApi;\n/**\n * AccountActivitiesApi - axios parameter creator\n * @export\n */\nvar AccountActivitiesApiAxiosParamCreator = function (configuration) {\n var _this = this;\n return {\n /**\n * This gets a single account activity by its id.\n * @summary Get an Account Activity\n * @param {string} id The account activity id\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getAccountActivity: function (id, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'id' is not null or undefined\n (0, common_1.assertParamExists)('getAccountActivity', 'id', id);\n localVarPath = \"/account-activities/{id}\"\n .replace(\"{\".concat(\"id\", \"}\"), encodeURIComponent(String(id)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This gets a collection of account activities that satisfy the given query parameters.\n * @summary List Account Activities\n * @param {string} [requestedFor] The identity that the activity was requested for. *me* indicates the current user. Mutually exclusive with *regarding-identity*.\n * @param {string} [requestedBy] The identity that requested the activity. *me* indicates the current user. Mutually exclusive with *regarding-identity*.\n * @param {string} [regardingIdentity] The specified identity will be either the requester or target of the account activity. *me* indicates the current user. Mutually exclusive with *requested-for* and *requested-by*.\n * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **type**: *eq, in, co, ge, gt, le, lt, ne, isnull, sw* **created**: *gt, lt, ge, le, co, eq, in, ne, isnull, sw* **modified**: *gt, lt, ge, le, co, eq, in, ne, isnull, sw*\n * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **type, created, modified**\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n listAccountActivities: function (requestedFor, requestedBy, regardingIdentity, limit, offset, count, filters, sorters, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n localVarPath = \"/account-activities\";\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n if (requestedFor !== undefined) {\n localVarQueryParameter['requested-for'] = requestedFor;\n }\n if (requestedBy !== undefined) {\n localVarQueryParameter['requested-by'] = requestedBy;\n }\n if (regardingIdentity !== undefined) {\n localVarQueryParameter['regarding-identity'] = regardingIdentity;\n }\n if (limit !== undefined) {\n localVarQueryParameter['limit'] = limit;\n }\n if (offset !== undefined) {\n localVarQueryParameter['offset'] = offset;\n }\n if (count !== undefined) {\n localVarQueryParameter['count'] = count;\n }\n if (filters !== undefined) {\n localVarQueryParameter['filters'] = filters;\n }\n if (sorters !== undefined) {\n localVarQueryParameter['sorters'] = sorters;\n }\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n };\n};\nexports.AccountActivitiesApiAxiosParamCreator = AccountActivitiesApiAxiosParamCreator;\n/**\n * AccountActivitiesApi - functional programming interface\n * @export\n */\nvar AccountActivitiesApiFp = function (configuration) {\n var localVarAxiosParamCreator = (0, exports.AccountActivitiesApiAxiosParamCreator)(configuration);\n return {\n /**\n * This gets a single account activity by its id.\n * @summary Get an Account Activity\n * @param {string} id The account activity id\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getAccountActivity: function (id, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.getAccountActivity(id, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This gets a collection of account activities that satisfy the given query parameters.\n * @summary List Account Activities\n * @param {string} [requestedFor] The identity that the activity was requested for. *me* indicates the current user. Mutually exclusive with *regarding-identity*.\n * @param {string} [requestedBy] The identity that requested the activity. *me* indicates the current user. Mutually exclusive with *regarding-identity*.\n * @param {string} [regardingIdentity] The specified identity will be either the requester or target of the account activity. *me* indicates the current user. Mutually exclusive with *requested-for* and *requested-by*.\n * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **type**: *eq, in, co, ge, gt, le, lt, ne, isnull, sw* **created**: *gt, lt, ge, le, co, eq, in, ne, isnull, sw* **modified**: *gt, lt, ge, le, co, eq, in, ne, isnull, sw*\n * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **type, created, modified**\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n listAccountActivities: function (requestedFor, requestedBy, regardingIdentity, limit, offset, count, filters, sorters, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.listAccountActivities(requestedFor, requestedBy, regardingIdentity, limit, offset, count, filters, sorters, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n };\n};\nexports.AccountActivitiesApiFp = AccountActivitiesApiFp;\n/**\n * AccountActivitiesApi - factory interface\n * @export\n */\nvar AccountActivitiesApiFactory = function (configuration, basePath, axios) {\n var localVarFp = (0, exports.AccountActivitiesApiFp)(configuration);\n return {\n /**\n * This gets a single account activity by its id.\n * @summary Get an Account Activity\n * @param {string} id The account activity id\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getAccountActivity: function (id, axiosOptions) {\n return localVarFp.getAccountActivity(id, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This gets a collection of account activities that satisfy the given query parameters.\n * @summary List Account Activities\n * @param {string} [requestedFor] The identity that the activity was requested for. *me* indicates the current user. Mutually exclusive with *regarding-identity*.\n * @param {string} [requestedBy] The identity that requested the activity. *me* indicates the current user. Mutually exclusive with *regarding-identity*.\n * @param {string} [regardingIdentity] The specified identity will be either the requester or target of the account activity. *me* indicates the current user. Mutually exclusive with *requested-for* and *requested-by*.\n * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **type**: *eq, in, co, ge, gt, le, lt, ne, isnull, sw* **created**: *gt, lt, ge, le, co, eq, in, ne, isnull, sw* **modified**: *gt, lt, ge, le, co, eq, in, ne, isnull, sw*\n * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **type, created, modified**\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n listAccountActivities: function (requestedFor, requestedBy, regardingIdentity, limit, offset, count, filters, sorters, axiosOptions) {\n return localVarFp.listAccountActivities(requestedFor, requestedBy, regardingIdentity, limit, offset, count, filters, sorters, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n };\n};\nexports.AccountActivitiesApiFactory = AccountActivitiesApiFactory;\n/**\n * AccountActivitiesApi - object-oriented interface\n * @export\n * @class AccountActivitiesApi\n * @extends {BaseAPI}\n */\nvar AccountActivitiesApi = /** @class */ (function (_super) {\n __extends(AccountActivitiesApi, _super);\n function AccountActivitiesApi() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n * This gets a single account activity by its id.\n * @summary Get an Account Activity\n * @param {AccountActivitiesApiGetAccountActivityRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof AccountActivitiesApi\n */\n AccountActivitiesApi.prototype.getAccountActivity = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.AccountActivitiesApiFp)(this.configuration).getAccountActivity(requestParameters.id, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This gets a collection of account activities that satisfy the given query parameters.\n * @summary List Account Activities\n * @param {AccountActivitiesApiListAccountActivitiesRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof AccountActivitiesApi\n */\n AccountActivitiesApi.prototype.listAccountActivities = function (requestParameters, axiosOptions) {\n var _this = this;\n if (requestParameters === void 0) { requestParameters = {}; }\n return (0, exports.AccountActivitiesApiFp)(this.configuration).listAccountActivities(requestParameters.requestedFor, requestParameters.requestedBy, requestParameters.regardingIdentity, requestParameters.limit, requestParameters.offset, requestParameters.count, requestParameters.filters, requestParameters.sorters, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n return AccountActivitiesApi;\n}(base_1.BaseAPI));\nexports.AccountActivitiesApi = AccountActivitiesApi;\n/**\n * AccountUsagesApi - axios parameter creator\n * @export\n */\nvar AccountUsagesApiAxiosParamCreator = function (configuration) {\n var _this = this;\n return {\n /**\n * This API returns a summary of account usage insights for past 12 months.\n * @summary Returns account usage insights\n * @param {string} accountId ID of IDN account\n * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **date**\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getUsagesByAccountId: function (accountId, limit, offset, count, sorters, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'accountId' is not null or undefined\n (0, common_1.assertParamExists)('getUsagesByAccountId', 'accountId', accountId);\n localVarPath = \"/account-usages/{accountId}/summaries\"\n .replace(\"{\".concat(\"accountId\", \"}\"), encodeURIComponent(String(accountId)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n if (limit !== undefined) {\n localVarQueryParameter['limit'] = limit;\n }\n if (offset !== undefined) {\n localVarQueryParameter['offset'] = offset;\n }\n if (count !== undefined) {\n localVarQueryParameter['count'] = count;\n }\n if (sorters !== undefined) {\n localVarQueryParameter['sorters'] = sorters;\n }\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n };\n};\nexports.AccountUsagesApiAxiosParamCreator = AccountUsagesApiAxiosParamCreator;\n/**\n * AccountUsagesApi - functional programming interface\n * @export\n */\nvar AccountUsagesApiFp = function (configuration) {\n var localVarAxiosParamCreator = (0, exports.AccountUsagesApiAxiosParamCreator)(configuration);\n return {\n /**\n * This API returns a summary of account usage insights for past 12 months.\n * @summary Returns account usage insights\n * @param {string} accountId ID of IDN account\n * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **date**\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getUsagesByAccountId: function (accountId, limit, offset, count, sorters, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.getUsagesByAccountId(accountId, limit, offset, count, sorters, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n };\n};\nexports.AccountUsagesApiFp = AccountUsagesApiFp;\n/**\n * AccountUsagesApi - factory interface\n * @export\n */\nvar AccountUsagesApiFactory = function (configuration, basePath, axios) {\n var localVarFp = (0, exports.AccountUsagesApiFp)(configuration);\n return {\n /**\n * This API returns a summary of account usage insights for past 12 months.\n * @summary Returns account usage insights\n * @param {string} accountId ID of IDN account\n * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **date**\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getUsagesByAccountId: function (accountId, limit, offset, count, sorters, axiosOptions) {\n return localVarFp.getUsagesByAccountId(accountId, limit, offset, count, sorters, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n };\n};\nexports.AccountUsagesApiFactory = AccountUsagesApiFactory;\n/**\n * AccountUsagesApi - object-oriented interface\n * @export\n * @class AccountUsagesApi\n * @extends {BaseAPI}\n */\nvar AccountUsagesApi = /** @class */ (function (_super) {\n __extends(AccountUsagesApi, _super);\n function AccountUsagesApi() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n * This API returns a summary of account usage insights for past 12 months.\n * @summary Returns account usage insights\n * @param {AccountUsagesApiGetUsagesByAccountIdRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof AccountUsagesApi\n */\n AccountUsagesApi.prototype.getUsagesByAccountId = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.AccountUsagesApiFp)(this.configuration).getUsagesByAccountId(requestParameters.accountId, requestParameters.limit, requestParameters.offset, requestParameters.count, requestParameters.sorters, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n return AccountUsagesApi;\n}(base_1.BaseAPI));\nexports.AccountUsagesApi = AccountUsagesApi;\n/**\n * AccountsApi - axios parameter creator\n * @export\n */\nvar AccountsApiAxiosParamCreator = function (configuration) {\n var _this = this;\n return {\n /**\n * This API submits an account creation task and returns the task ID. The `sourceId` where this account will be created must be included in the `attributes` object. A token with ORG_ADMIN authority is required to call this API.\n * @summary Create Account\n * @param {AccountAttributesCreate} accountAttributesCreate\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n createAccount: function (accountAttributesCreate, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'accountAttributesCreate' is not null or undefined\n (0, common_1.assertParamExists)('createAccount', 'accountAttributesCreate', accountAttributesCreate);\n localVarPath = \"/accounts\";\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n localVarHeaderParameter['Content-Type'] = 'application/json';\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(accountAttributesCreate, localVarRequestOptions, configuration);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This API submits an account delete task and returns the task ID. This operation can only be used on Flat File Sources. Any attempt to execute this request on the source of other type will result in an error response with a status code of 400. A token with ORG_ADMIN authority is required to call this API.\n * @summary Delete Account\n * @param {string} id The account ID\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n deleteAccount: function (id, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'id' is not null or undefined\n (0, common_1.assertParamExists)('deleteAccount', 'id', id);\n localVarPath = \"/accounts/{id}\"\n .replace(\"{\".concat(\"id\", \"}\"), encodeURIComponent(String(id)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'DELETE' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This API submits a task to disable the account and returns the task ID. A token with ORG_ADMIN authority is required to call this API.\n * @summary Disable Account\n * @param {string} id The account id\n * @param {AccountToggleRequest} accountToggleRequest\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n disableAccount: function (id, accountToggleRequest, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'id' is not null or undefined\n (0, common_1.assertParamExists)('disableAccount', 'id', id);\n // verify required parameter 'accountToggleRequest' is not null or undefined\n (0, common_1.assertParamExists)('disableAccount', 'accountToggleRequest', accountToggleRequest);\n localVarPath = \"/accounts/{id}/disable\"\n .replace(\"{\".concat(\"id\", \"}\"), encodeURIComponent(String(id)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n localVarHeaderParameter['Content-Type'] = 'application/json';\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(accountToggleRequest, localVarRequestOptions, configuration);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This API submits a task to enable account and returns the task ID. A token with ORG_ADMIN authority is required to call this API.\n * @summary Enable Account\n * @param {string} id The account id\n * @param {AccountToggleRequest} accountToggleRequest\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n enableAccount: function (id, accountToggleRequest, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'id' is not null or undefined\n (0, common_1.assertParamExists)('enableAccount', 'id', id);\n // verify required parameter 'accountToggleRequest' is not null or undefined\n (0, common_1.assertParamExists)('enableAccount', 'accountToggleRequest', accountToggleRequest);\n localVarPath = \"/accounts/{id}/enable\"\n .replace(\"{\".concat(\"id\", \"}\"), encodeURIComponent(String(id)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n localVarHeaderParameter['Content-Type'] = 'application/json';\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(accountToggleRequest, localVarRequestOptions, configuration);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This API returns the details for a single account based on the ID. A token with ORG_ADMIN authority is required to call this API.\n * @summary Account Details\n * @param {string} id The account ID\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getAccount: function (id, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'id' is not null or undefined\n (0, common_1.assertParamExists)('getAccount', 'id', id);\n localVarPath = \"/accounts/{id}\"\n .replace(\"{\".concat(\"id\", \"}\"), encodeURIComponent(String(id)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This API returns entitlements of the account. A token with ORG_ADMIN authority is required to call this API.\n * @summary Account Entitlements\n * @param {string} id The account id\n * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getAccountEntitlements: function (id, limit, offset, count, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'id' is not null or undefined\n (0, common_1.assertParamExists)('getAccountEntitlements', 'id', id);\n localVarPath = \"/accounts/{id}/entitlements\"\n .replace(\"{\".concat(\"id\", \"}\"), encodeURIComponent(String(id)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n if (limit !== undefined) {\n localVarQueryParameter['limit'] = limit;\n }\n if (offset !== undefined) {\n localVarQueryParameter['offset'] = offset;\n }\n if (count !== undefined) {\n localVarQueryParameter['count'] = count;\n }\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This returns a list of accounts. A token with ORG_ADMIN authority is required to call this API.\n * @summary Accounts List\n * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **id**: *eq, in, co, ge, gt, le, lt, ne, isnull, sw* **identityId**: *eq, co, ge, gt, in, le, lt, ne, isnull, sw* **name**: *eq, in, co, ge, gt, ne, isnull, sw* **nativeIdentity**: *eq, in, co, ge, gt, le, lt, ne, isnull, sw* **sourceId**: *eq, in, co, ge, gt, le, lt, ne, isnull, sw* **uncorrelated**: *eq*\n * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **id, name, created, modified, sourceId, identityId, nativeIdentity, uuid, manuallyCorrelated**\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n listAccounts: function (limit, offset, count, filters, sorters, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n localVarPath = \"/accounts\";\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n if (limit !== undefined) {\n localVarQueryParameter['limit'] = limit;\n }\n if (offset !== undefined) {\n localVarQueryParameter['offset'] = offset;\n }\n if (count !== undefined) {\n localVarQueryParameter['count'] = count;\n }\n if (filters !== undefined) {\n localVarQueryParameter['filters'] = filters;\n }\n if (sorters !== undefined) {\n localVarQueryParameter['sorters'] = sorters;\n }\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This API submits an account update task and returns the task ID. A token with ORG_ADMIN authority is required to call this API. >**NOTE: The PUT Account API is designated only for Delimited File sources.**\n * @summary Update Account\n * @param {string} id The account ID\n * @param {AccountAttributes} accountAttributes\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n putAccount: function (id, accountAttributes, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'id' is not null or undefined\n (0, common_1.assertParamExists)('putAccount', 'id', id);\n // verify required parameter 'accountAttributes' is not null or undefined\n (0, common_1.assertParamExists)('putAccount', 'accountAttributes', accountAttributes);\n localVarPath = \"/accounts/{id}\"\n .replace(\"{\".concat(\"id\", \"}\"), encodeURIComponent(String(id)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'PUT' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n localVarHeaderParameter['Content-Type'] = 'application/json';\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(accountAttributes, localVarRequestOptions, configuration);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This API asynchronously reloads the account directly from the connector and performs a one-time aggregation process. A token with ORG_ADMIN authority is required to call this API.\n * @summary Reload Account\n * @param {string} id The account id\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n reloadAccount: function (id, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'id' is not null or undefined\n (0, common_1.assertParamExists)('reloadAccount', 'id', id);\n localVarPath = \"/accounts/{id}/reload\"\n .replace(\"{\".concat(\"id\", \"}\"), encodeURIComponent(String(id)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This API submits a task to unlock an account and returns the task ID. A token with ORG_ADMIN authority is required to call this API.\n * @summary Unlock Account\n * @param {string} id The account id\n * @param {AccountUnlockRequest} accountUnlockRequest\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n unlockAccount: function (id, accountUnlockRequest, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'id' is not null or undefined\n (0, common_1.assertParamExists)('unlockAccount', 'id', id);\n // verify required parameter 'accountUnlockRequest' is not null or undefined\n (0, common_1.assertParamExists)('unlockAccount', 'accountUnlockRequest', accountUnlockRequest);\n localVarPath = \"/accounts/{id}/unlock\"\n .replace(\"{\".concat(\"id\", \"}\"), encodeURIComponent(String(id)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n localVarHeaderParameter['Content-Type'] = 'application/json';\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(accountUnlockRequest, localVarRequestOptions, configuration);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * Use this API to modify the following fields: * `identityId` * `manuallyCorrelated` >**NOTE: All other fields cannot be modified.** The request must provide a JSONPatch payload. A token with ORG_ADMIN authority is required to call this API.\n * @summary Update Account\n * @param {string} id The account ID\n * @param {Array} jsonPatchOperation A list of account update operations according to the [JSON Patch](https://tools.ietf.org/html/rfc6902) standard.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n updateAccount: function (id, jsonPatchOperation, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'id' is not null or undefined\n (0, common_1.assertParamExists)('updateAccount', 'id', id);\n // verify required parameter 'jsonPatchOperation' is not null or undefined\n (0, common_1.assertParamExists)('updateAccount', 'jsonPatchOperation', jsonPatchOperation);\n localVarPath = \"/accounts/{id}\"\n .replace(\"{\".concat(\"id\", \"}\"), encodeURIComponent(String(id)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'PATCH' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n localVarHeaderParameter['Content-Type'] = 'application/json-patch+json';\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(jsonPatchOperation, localVarRequestOptions, configuration);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n };\n};\nexports.AccountsApiAxiosParamCreator = AccountsApiAxiosParamCreator;\n/**\n * AccountsApi - functional programming interface\n * @export\n */\nvar AccountsApiFp = function (configuration) {\n var localVarAxiosParamCreator = (0, exports.AccountsApiAxiosParamCreator)(configuration);\n return {\n /**\n * This API submits an account creation task and returns the task ID. The `sourceId` where this account will be created must be included in the `attributes` object. A token with ORG_ADMIN authority is required to call this API.\n * @summary Create Account\n * @param {AccountAttributesCreate} accountAttributesCreate\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n createAccount: function (accountAttributesCreate, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.createAccount(accountAttributesCreate, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This API submits an account delete task and returns the task ID. This operation can only be used on Flat File Sources. Any attempt to execute this request on the source of other type will result in an error response with a status code of 400. A token with ORG_ADMIN authority is required to call this API.\n * @summary Delete Account\n * @param {string} id The account ID\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n deleteAccount: function (id, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.deleteAccount(id, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This API submits a task to disable the account and returns the task ID. A token with ORG_ADMIN authority is required to call this API.\n * @summary Disable Account\n * @param {string} id The account id\n * @param {AccountToggleRequest} accountToggleRequest\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n disableAccount: function (id, accountToggleRequest, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.disableAccount(id, accountToggleRequest, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This API submits a task to enable account and returns the task ID. A token with ORG_ADMIN authority is required to call this API.\n * @summary Enable Account\n * @param {string} id The account id\n * @param {AccountToggleRequest} accountToggleRequest\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n enableAccount: function (id, accountToggleRequest, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.enableAccount(id, accountToggleRequest, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This API returns the details for a single account based on the ID. A token with ORG_ADMIN authority is required to call this API.\n * @summary Account Details\n * @param {string} id The account ID\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getAccount: function (id, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.getAccount(id, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This API returns entitlements of the account. A token with ORG_ADMIN authority is required to call this API.\n * @summary Account Entitlements\n * @param {string} id The account id\n * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getAccountEntitlements: function (id, limit, offset, count, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.getAccountEntitlements(id, limit, offset, count, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This returns a list of accounts. A token with ORG_ADMIN authority is required to call this API.\n * @summary Accounts List\n * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **id**: *eq, in, co, ge, gt, le, lt, ne, isnull, sw* **identityId**: *eq, co, ge, gt, in, le, lt, ne, isnull, sw* **name**: *eq, in, co, ge, gt, ne, isnull, sw* **nativeIdentity**: *eq, in, co, ge, gt, le, lt, ne, isnull, sw* **sourceId**: *eq, in, co, ge, gt, le, lt, ne, isnull, sw* **uncorrelated**: *eq*\n * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **id, name, created, modified, sourceId, identityId, nativeIdentity, uuid, manuallyCorrelated**\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n listAccounts: function (limit, offset, count, filters, sorters, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.listAccounts(limit, offset, count, filters, sorters, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This API submits an account update task and returns the task ID. A token with ORG_ADMIN authority is required to call this API. >**NOTE: The PUT Account API is designated only for Delimited File sources.**\n * @summary Update Account\n * @param {string} id The account ID\n * @param {AccountAttributes} accountAttributes\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n putAccount: function (id, accountAttributes, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.putAccount(id, accountAttributes, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This API asynchronously reloads the account directly from the connector and performs a one-time aggregation process. A token with ORG_ADMIN authority is required to call this API.\n * @summary Reload Account\n * @param {string} id The account id\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n reloadAccount: function (id, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.reloadAccount(id, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This API submits a task to unlock an account and returns the task ID. A token with ORG_ADMIN authority is required to call this API.\n * @summary Unlock Account\n * @param {string} id The account id\n * @param {AccountUnlockRequest} accountUnlockRequest\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n unlockAccount: function (id, accountUnlockRequest, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.unlockAccount(id, accountUnlockRequest, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * Use this API to modify the following fields: * `identityId` * `manuallyCorrelated` >**NOTE: All other fields cannot be modified.** The request must provide a JSONPatch payload. A token with ORG_ADMIN authority is required to call this API.\n * @summary Update Account\n * @param {string} id The account ID\n * @param {Array} jsonPatchOperation A list of account update operations according to the [JSON Patch](https://tools.ietf.org/html/rfc6902) standard.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n updateAccount: function (id, jsonPatchOperation, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.updateAccount(id, jsonPatchOperation, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n };\n};\nexports.AccountsApiFp = AccountsApiFp;\n/**\n * AccountsApi - factory interface\n * @export\n */\nvar AccountsApiFactory = function (configuration, basePath, axios) {\n var localVarFp = (0, exports.AccountsApiFp)(configuration);\n return {\n /**\n * This API submits an account creation task and returns the task ID. The `sourceId` where this account will be created must be included in the `attributes` object. A token with ORG_ADMIN authority is required to call this API.\n * @summary Create Account\n * @param {AccountAttributesCreate} accountAttributesCreate\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n createAccount: function (accountAttributesCreate, axiosOptions) {\n return localVarFp.createAccount(accountAttributesCreate, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This API submits an account delete task and returns the task ID. This operation can only be used on Flat File Sources. Any attempt to execute this request on the source of other type will result in an error response with a status code of 400. A token with ORG_ADMIN authority is required to call this API.\n * @summary Delete Account\n * @param {string} id The account ID\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n deleteAccount: function (id, axiosOptions) {\n return localVarFp.deleteAccount(id, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This API submits a task to disable the account and returns the task ID. A token with ORG_ADMIN authority is required to call this API.\n * @summary Disable Account\n * @param {string} id The account id\n * @param {AccountToggleRequest} accountToggleRequest\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n disableAccount: function (id, accountToggleRequest, axiosOptions) {\n return localVarFp.disableAccount(id, accountToggleRequest, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This API submits a task to enable account and returns the task ID. A token with ORG_ADMIN authority is required to call this API.\n * @summary Enable Account\n * @param {string} id The account id\n * @param {AccountToggleRequest} accountToggleRequest\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n enableAccount: function (id, accountToggleRequest, axiosOptions) {\n return localVarFp.enableAccount(id, accountToggleRequest, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This API returns the details for a single account based on the ID. A token with ORG_ADMIN authority is required to call this API.\n * @summary Account Details\n * @param {string} id The account ID\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getAccount: function (id, axiosOptions) {\n return localVarFp.getAccount(id, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This API returns entitlements of the account. A token with ORG_ADMIN authority is required to call this API.\n * @summary Account Entitlements\n * @param {string} id The account id\n * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getAccountEntitlements: function (id, limit, offset, count, axiosOptions) {\n return localVarFp.getAccountEntitlements(id, limit, offset, count, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This returns a list of accounts. A token with ORG_ADMIN authority is required to call this API.\n * @summary Accounts List\n * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **id**: *eq, in, co, ge, gt, le, lt, ne, isnull, sw* **identityId**: *eq, co, ge, gt, in, le, lt, ne, isnull, sw* **name**: *eq, in, co, ge, gt, ne, isnull, sw* **nativeIdentity**: *eq, in, co, ge, gt, le, lt, ne, isnull, sw* **sourceId**: *eq, in, co, ge, gt, le, lt, ne, isnull, sw* **uncorrelated**: *eq*\n * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **id, name, created, modified, sourceId, identityId, nativeIdentity, uuid, manuallyCorrelated**\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n listAccounts: function (limit, offset, count, filters, sorters, axiosOptions) {\n return localVarFp.listAccounts(limit, offset, count, filters, sorters, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This API submits an account update task and returns the task ID. A token with ORG_ADMIN authority is required to call this API. >**NOTE: The PUT Account API is designated only for Delimited File sources.**\n * @summary Update Account\n * @param {string} id The account ID\n * @param {AccountAttributes} accountAttributes\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n putAccount: function (id, accountAttributes, axiosOptions) {\n return localVarFp.putAccount(id, accountAttributes, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This API asynchronously reloads the account directly from the connector and performs a one-time aggregation process. A token with ORG_ADMIN authority is required to call this API.\n * @summary Reload Account\n * @param {string} id The account id\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n reloadAccount: function (id, axiosOptions) {\n return localVarFp.reloadAccount(id, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This API submits a task to unlock an account and returns the task ID. A token with ORG_ADMIN authority is required to call this API.\n * @summary Unlock Account\n * @param {string} id The account id\n * @param {AccountUnlockRequest} accountUnlockRequest\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n unlockAccount: function (id, accountUnlockRequest, axiosOptions) {\n return localVarFp.unlockAccount(id, accountUnlockRequest, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * Use this API to modify the following fields: * `identityId` * `manuallyCorrelated` >**NOTE: All other fields cannot be modified.** The request must provide a JSONPatch payload. A token with ORG_ADMIN authority is required to call this API.\n * @summary Update Account\n * @param {string} id The account ID\n * @param {Array} jsonPatchOperation A list of account update operations according to the [JSON Patch](https://tools.ietf.org/html/rfc6902) standard.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n updateAccount: function (id, jsonPatchOperation, axiosOptions) {\n return localVarFp.updateAccount(id, jsonPatchOperation, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n };\n};\nexports.AccountsApiFactory = AccountsApiFactory;\n/**\n * AccountsApi - object-oriented interface\n * @export\n * @class AccountsApi\n * @extends {BaseAPI}\n */\nvar AccountsApi = /** @class */ (function (_super) {\n __extends(AccountsApi, _super);\n function AccountsApi() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n * This API submits an account creation task and returns the task ID. The `sourceId` where this account will be created must be included in the `attributes` object. A token with ORG_ADMIN authority is required to call this API.\n * @summary Create Account\n * @param {AccountsApiCreateAccountRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof AccountsApi\n */\n AccountsApi.prototype.createAccount = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.AccountsApiFp)(this.configuration).createAccount(requestParameters.accountAttributesCreate, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This API submits an account delete task and returns the task ID. This operation can only be used on Flat File Sources. Any attempt to execute this request on the source of other type will result in an error response with a status code of 400. A token with ORG_ADMIN authority is required to call this API.\n * @summary Delete Account\n * @param {AccountsApiDeleteAccountRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof AccountsApi\n */\n AccountsApi.prototype.deleteAccount = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.AccountsApiFp)(this.configuration).deleteAccount(requestParameters.id, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This API submits a task to disable the account and returns the task ID. A token with ORG_ADMIN authority is required to call this API.\n * @summary Disable Account\n * @param {AccountsApiDisableAccountRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof AccountsApi\n */\n AccountsApi.prototype.disableAccount = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.AccountsApiFp)(this.configuration).disableAccount(requestParameters.id, requestParameters.accountToggleRequest, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This API submits a task to enable account and returns the task ID. A token with ORG_ADMIN authority is required to call this API.\n * @summary Enable Account\n * @param {AccountsApiEnableAccountRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof AccountsApi\n */\n AccountsApi.prototype.enableAccount = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.AccountsApiFp)(this.configuration).enableAccount(requestParameters.id, requestParameters.accountToggleRequest, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This API returns the details for a single account based on the ID. A token with ORG_ADMIN authority is required to call this API.\n * @summary Account Details\n * @param {AccountsApiGetAccountRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof AccountsApi\n */\n AccountsApi.prototype.getAccount = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.AccountsApiFp)(this.configuration).getAccount(requestParameters.id, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This API returns entitlements of the account. A token with ORG_ADMIN authority is required to call this API.\n * @summary Account Entitlements\n * @param {AccountsApiGetAccountEntitlementsRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof AccountsApi\n */\n AccountsApi.prototype.getAccountEntitlements = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.AccountsApiFp)(this.configuration).getAccountEntitlements(requestParameters.id, requestParameters.limit, requestParameters.offset, requestParameters.count, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This returns a list of accounts. A token with ORG_ADMIN authority is required to call this API.\n * @summary Accounts List\n * @param {AccountsApiListAccountsRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof AccountsApi\n */\n AccountsApi.prototype.listAccounts = function (requestParameters, axiosOptions) {\n var _this = this;\n if (requestParameters === void 0) { requestParameters = {}; }\n return (0, exports.AccountsApiFp)(this.configuration).listAccounts(requestParameters.limit, requestParameters.offset, requestParameters.count, requestParameters.filters, requestParameters.sorters, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This API submits an account update task and returns the task ID. A token with ORG_ADMIN authority is required to call this API. >**NOTE: The PUT Account API is designated only for Delimited File sources.**\n * @summary Update Account\n * @param {AccountsApiPutAccountRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof AccountsApi\n */\n AccountsApi.prototype.putAccount = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.AccountsApiFp)(this.configuration).putAccount(requestParameters.id, requestParameters.accountAttributes, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This API asynchronously reloads the account directly from the connector and performs a one-time aggregation process. A token with ORG_ADMIN authority is required to call this API.\n * @summary Reload Account\n * @param {AccountsApiReloadAccountRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof AccountsApi\n */\n AccountsApi.prototype.reloadAccount = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.AccountsApiFp)(this.configuration).reloadAccount(requestParameters.id, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This API submits a task to unlock an account and returns the task ID. A token with ORG_ADMIN authority is required to call this API.\n * @summary Unlock Account\n * @param {AccountsApiUnlockAccountRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof AccountsApi\n */\n AccountsApi.prototype.unlockAccount = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.AccountsApiFp)(this.configuration).unlockAccount(requestParameters.id, requestParameters.accountUnlockRequest, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * Use this API to modify the following fields: * `identityId` * `manuallyCorrelated` >**NOTE: All other fields cannot be modified.** The request must provide a JSONPatch payload. A token with ORG_ADMIN authority is required to call this API.\n * @summary Update Account\n * @param {AccountsApiUpdateAccountRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof AccountsApi\n */\n AccountsApi.prototype.updateAccount = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.AccountsApiFp)(this.configuration).updateAccount(requestParameters.id, requestParameters.jsonPatchOperation, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n return AccountsApi;\n}(base_1.BaseAPI));\nexports.AccountsApi = AccountsApi;\n/**\n * AuthUserApi - axios parameter creator\n * @export\n */\nvar AuthUserApiAxiosParamCreator = function (configuration) {\n var _this = this;\n return {\n /**\n * This API returns the specified user\\'s authentication system details. Requires security scope of: \\'sp:auth-user:read\\'\n * @summary Auth User Details\n * @param {string} id Identity ID\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getAuthUser: function (id, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'id' is not null or undefined\n (0, common_1.assertParamExists)('getAuthUser', 'id', id);\n localVarPath = \"/auth-users/{id}\"\n .replace(\"{\".concat(\"id\", \"}\"), encodeURIComponent(String(id)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * Update an existing user in the authentication system with a PATCH request.\n * @summary Auth User Update\n * @param {string} id Identity ID\n * @param {Array} jsonPatchOperation A list of auth user update operations according to the [JSON Patch](https://tools.ietf.org/html/rfc6902) standard. PATCH can only be applied to the following fields: * \\"capabilities\\" A list of valid capabilities can be found using the GET ams/v3/authorization/authorization-capabilities/ endpoint. Capabilities can only be patched if they are administrator assignable, as indicated by the \\'adminAssignable\\' field from the output of list authorization-capabilities. Capabilities that have a legacy group (\\'legacyGroup\\' field) need to be patched using the legacyGroup name (e.g. \\'ORG_ADMIN\\'). Capabilities that are adminAssignable but do not have a legacyGroup can be patched using the ams id (e.g. \\'cam:new-role\\'). A 400.1.1 Illegal update attempt detail code indicates that you attempted to PATCH a field that is not allowed. Requires security scope of \\'sp:auth-user:update\\'\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n patchAuthUser: function (id, jsonPatchOperation, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'id' is not null or undefined\n (0, common_1.assertParamExists)('patchAuthUser', 'id', id);\n // verify required parameter 'jsonPatchOperation' is not null or undefined\n (0, common_1.assertParamExists)('patchAuthUser', 'jsonPatchOperation', jsonPatchOperation);\n localVarPath = \"/auth-users/{id}\"\n .replace(\"{\".concat(\"id\", \"}\"), encodeURIComponent(String(id)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'PATCH' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n localVarHeaderParameter['Content-Type'] = 'application/json-patch+json';\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(jsonPatchOperation, localVarRequestOptions, configuration);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n };\n};\nexports.AuthUserApiAxiosParamCreator = AuthUserApiAxiosParamCreator;\n/**\n * AuthUserApi - functional programming interface\n * @export\n */\nvar AuthUserApiFp = function (configuration) {\n var localVarAxiosParamCreator = (0, exports.AuthUserApiAxiosParamCreator)(configuration);\n return {\n /**\n * This API returns the specified user\\'s authentication system details. Requires security scope of: \\'sp:auth-user:read\\'\n * @summary Auth User Details\n * @param {string} id Identity ID\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getAuthUser: function (id, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.getAuthUser(id, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * Update an existing user in the authentication system with a PATCH request.\n * @summary Auth User Update\n * @param {string} id Identity ID\n * @param {Array} jsonPatchOperation A list of auth user update operations according to the [JSON Patch](https://tools.ietf.org/html/rfc6902) standard. PATCH can only be applied to the following fields: * \\"capabilities\\" A list of valid capabilities can be found using the GET ams/v3/authorization/authorization-capabilities/ endpoint. Capabilities can only be patched if they are administrator assignable, as indicated by the \\'adminAssignable\\' field from the output of list authorization-capabilities. Capabilities that have a legacy group (\\'legacyGroup\\' field) need to be patched using the legacyGroup name (e.g. \\'ORG_ADMIN\\'). Capabilities that are adminAssignable but do not have a legacyGroup can be patched using the ams id (e.g. \\'cam:new-role\\'). A 400.1.1 Illegal update attempt detail code indicates that you attempted to PATCH a field that is not allowed. Requires security scope of \\'sp:auth-user:update\\'\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n patchAuthUser: function (id, jsonPatchOperation, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.patchAuthUser(id, jsonPatchOperation, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n };\n};\nexports.AuthUserApiFp = AuthUserApiFp;\n/**\n * AuthUserApi - factory interface\n * @export\n */\nvar AuthUserApiFactory = function (configuration, basePath, axios) {\n var localVarFp = (0, exports.AuthUserApiFp)(configuration);\n return {\n /**\n * This API returns the specified user\\'s authentication system details. Requires security scope of: \\'sp:auth-user:read\\'\n * @summary Auth User Details\n * @param {string} id Identity ID\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getAuthUser: function (id, axiosOptions) {\n return localVarFp.getAuthUser(id, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * Update an existing user in the authentication system with a PATCH request.\n * @summary Auth User Update\n * @param {string} id Identity ID\n * @param {Array} jsonPatchOperation A list of auth user update operations according to the [JSON Patch](https://tools.ietf.org/html/rfc6902) standard. PATCH can only be applied to the following fields: * \\"capabilities\\" A list of valid capabilities can be found using the GET ams/v3/authorization/authorization-capabilities/ endpoint. Capabilities can only be patched if they are administrator assignable, as indicated by the \\'adminAssignable\\' field from the output of list authorization-capabilities. Capabilities that have a legacy group (\\'legacyGroup\\' field) need to be patched using the legacyGroup name (e.g. \\'ORG_ADMIN\\'). Capabilities that are adminAssignable but do not have a legacyGroup can be patched using the ams id (e.g. \\'cam:new-role\\'). A 400.1.1 Illegal update attempt detail code indicates that you attempted to PATCH a field that is not allowed. Requires security scope of \\'sp:auth-user:update\\'\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n patchAuthUser: function (id, jsonPatchOperation, axiosOptions) {\n return localVarFp.patchAuthUser(id, jsonPatchOperation, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n };\n};\nexports.AuthUserApiFactory = AuthUserApiFactory;\n/**\n * AuthUserApi - object-oriented interface\n * @export\n * @class AuthUserApi\n * @extends {BaseAPI}\n */\nvar AuthUserApi = /** @class */ (function (_super) {\n __extends(AuthUserApi, _super);\n function AuthUserApi() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n * This API returns the specified user\\'s authentication system details. Requires security scope of: \\'sp:auth-user:read\\'\n * @summary Auth User Details\n * @param {AuthUserApiGetAuthUserRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof AuthUserApi\n */\n AuthUserApi.prototype.getAuthUser = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.AuthUserApiFp)(this.configuration).getAuthUser(requestParameters.id, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * Update an existing user in the authentication system with a PATCH request.\n * @summary Auth User Update\n * @param {AuthUserApiPatchAuthUserRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof AuthUserApi\n */\n AuthUserApi.prototype.patchAuthUser = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.AuthUserApiFp)(this.configuration).patchAuthUser(requestParameters.id, requestParameters.jsonPatchOperation, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n return AuthUserApi;\n}(base_1.BaseAPI));\nexports.AuthUserApi = AuthUserApi;\n/**\n * CertificationCampaignFiltersApi - axios parameter creator\n * @export\n */\nvar CertificationCampaignFiltersApiAxiosParamCreator = function (configuration) {\n var _this = this;\n return {\n /**\n * Create a campaign Filter based on filter details and criteria.\n * @summary Create a Campaign Filter\n * @param {CampaignFilterDetails} campaignFilterDetails\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n createCampaignFilter: function (campaignFilterDetails, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'campaignFilterDetails' is not null or undefined\n (0, common_1.assertParamExists)('createCampaignFilter', 'campaignFilterDetails', campaignFilterDetails);\n localVarPath = \"/campaign-filters\";\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n localVarHeaderParameter['Content-Type'] = 'application/json';\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(campaignFilterDetails, localVarRequestOptions, configuration);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * Deletes campaign filters whose Ids are specified in the provided list of campaign filter Ids. Authorized callers must be an ORG_ADMIN or a CERT_ADMIN.\n * @summary Deletes Campaign Filters\n * @param {Array} requestBody A json list of IDs of campaign filters to delete.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n deleteCampaignFilters: function (requestBody, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'requestBody' is not null or undefined\n (0, common_1.assertParamExists)('deleteCampaignFilters', 'requestBody', requestBody);\n localVarPath = \"/campaign-filters/delete\";\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n localVarHeaderParameter['Content-Type'] = 'application/json';\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(requestBody, localVarRequestOptions, configuration);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * Retrieves information for an existing campaign filter using the filter\\'s ID.\n * @summary Get Campaign Filter by ID\n * @param {string} filterId The ID of the campaign filter to be retrieved.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getCampaignFilterById: function (filterId, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'filterId' is not null or undefined\n (0, common_1.assertParamExists)('getCampaignFilterById', 'filterId', filterId);\n localVarPath = \"/campaign-filters/{id}\"\n .replace(\"{\".concat(\"filterId\", \"}\"), encodeURIComponent(String(filterId)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * Lists all Campaign Filters. Scope can be reduced via standard V3 query params. All Campaign Filters matching the query params\n * @summary List Campaign Filters\n * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {number} [start] Start/Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {boolean} [includeSystemFilters] If true, include system filters in the count and results, exclude them otherwise. If not provided any value for it then by default it is true.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n listCampaignFilters: function (limit, start, includeSystemFilters, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n localVarPath = \"/campaign-filters\";\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n if (limit !== undefined) {\n localVarQueryParameter['limit'] = limit;\n }\n if (start !== undefined) {\n localVarQueryParameter['start'] = start;\n }\n if (includeSystemFilters !== undefined) {\n localVarQueryParameter['includeSystemFilters'] = includeSystemFilters;\n }\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * Updates an existing campaign filter using the filter\\'s ID.\n * @summary Updates a Campaign Filter\n * @param {string} filterId The ID of the campaign filter being modified.\n * @param {CampaignFilterDetails} campaignFilterDetails A campaign filter details with updated field values.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n updateCampaignFilter: function (filterId, campaignFilterDetails, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'filterId' is not null or undefined\n (0, common_1.assertParamExists)('updateCampaignFilter', 'filterId', filterId);\n // verify required parameter 'campaignFilterDetails' is not null or undefined\n (0, common_1.assertParamExists)('updateCampaignFilter', 'campaignFilterDetails', campaignFilterDetails);\n localVarPath = \"/campaign-filters/{id}\"\n .replace(\"{\".concat(\"filterId\", \"}\"), encodeURIComponent(String(filterId)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n localVarHeaderParameter['Content-Type'] = 'application/json';\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(campaignFilterDetails, localVarRequestOptions, configuration);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n };\n};\nexports.CertificationCampaignFiltersApiAxiosParamCreator = CertificationCampaignFiltersApiAxiosParamCreator;\n/**\n * CertificationCampaignFiltersApi - functional programming interface\n * @export\n */\nvar CertificationCampaignFiltersApiFp = function (configuration) {\n var localVarAxiosParamCreator = (0, exports.CertificationCampaignFiltersApiAxiosParamCreator)(configuration);\n return {\n /**\n * Create a campaign Filter based on filter details and criteria.\n * @summary Create a Campaign Filter\n * @param {CampaignFilterDetails} campaignFilterDetails\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n createCampaignFilter: function (campaignFilterDetails, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.createCampaignFilter(campaignFilterDetails, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * Deletes campaign filters whose Ids are specified in the provided list of campaign filter Ids. Authorized callers must be an ORG_ADMIN or a CERT_ADMIN.\n * @summary Deletes Campaign Filters\n * @param {Array} requestBody A json list of IDs of campaign filters to delete.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n deleteCampaignFilters: function (requestBody, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.deleteCampaignFilters(requestBody, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * Retrieves information for an existing campaign filter using the filter\\'s ID.\n * @summary Get Campaign Filter by ID\n * @param {string} filterId The ID of the campaign filter to be retrieved.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getCampaignFilterById: function (filterId, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.getCampaignFilterById(filterId, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * Lists all Campaign Filters. Scope can be reduced via standard V3 query params. All Campaign Filters matching the query params\n * @summary List Campaign Filters\n * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {number} [start] Start/Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {boolean} [includeSystemFilters] If true, include system filters in the count and results, exclude them otherwise. If not provided any value for it then by default it is true.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n listCampaignFilters: function (limit, start, includeSystemFilters, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.listCampaignFilters(limit, start, includeSystemFilters, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * Updates an existing campaign filter using the filter\\'s ID.\n * @summary Updates a Campaign Filter\n * @param {string} filterId The ID of the campaign filter being modified.\n * @param {CampaignFilterDetails} campaignFilterDetails A campaign filter details with updated field values.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n updateCampaignFilter: function (filterId, campaignFilterDetails, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.updateCampaignFilter(filterId, campaignFilterDetails, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n };\n};\nexports.CertificationCampaignFiltersApiFp = CertificationCampaignFiltersApiFp;\n/**\n * CertificationCampaignFiltersApi - factory interface\n * @export\n */\nvar CertificationCampaignFiltersApiFactory = function (configuration, basePath, axios) {\n var localVarFp = (0, exports.CertificationCampaignFiltersApiFp)(configuration);\n return {\n /**\n * Create a campaign Filter based on filter details and criteria.\n * @summary Create a Campaign Filter\n * @param {CampaignFilterDetails} campaignFilterDetails\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n createCampaignFilter: function (campaignFilterDetails, axiosOptions) {\n return localVarFp.createCampaignFilter(campaignFilterDetails, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * Deletes campaign filters whose Ids are specified in the provided list of campaign filter Ids. Authorized callers must be an ORG_ADMIN or a CERT_ADMIN.\n * @summary Deletes Campaign Filters\n * @param {Array} requestBody A json list of IDs of campaign filters to delete.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n deleteCampaignFilters: function (requestBody, axiosOptions) {\n return localVarFp.deleteCampaignFilters(requestBody, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * Retrieves information for an existing campaign filter using the filter\\'s ID.\n * @summary Get Campaign Filter by ID\n * @param {string} filterId The ID of the campaign filter to be retrieved.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getCampaignFilterById: function (filterId, axiosOptions) {\n return localVarFp.getCampaignFilterById(filterId, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * Lists all Campaign Filters. Scope can be reduced via standard V3 query params. All Campaign Filters matching the query params\n * @summary List Campaign Filters\n * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {number} [start] Start/Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {boolean} [includeSystemFilters] If true, include system filters in the count and results, exclude them otherwise. If not provided any value for it then by default it is true.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n listCampaignFilters: function (limit, start, includeSystemFilters, axiosOptions) {\n return localVarFp.listCampaignFilters(limit, start, includeSystemFilters, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * Updates an existing campaign filter using the filter\\'s ID.\n * @summary Updates a Campaign Filter\n * @param {string} filterId The ID of the campaign filter being modified.\n * @param {CampaignFilterDetails} campaignFilterDetails A campaign filter details with updated field values.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n updateCampaignFilter: function (filterId, campaignFilterDetails, axiosOptions) {\n return localVarFp.updateCampaignFilter(filterId, campaignFilterDetails, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n };\n};\nexports.CertificationCampaignFiltersApiFactory = CertificationCampaignFiltersApiFactory;\n/**\n * CertificationCampaignFiltersApi - object-oriented interface\n * @export\n * @class CertificationCampaignFiltersApi\n * @extends {BaseAPI}\n */\nvar CertificationCampaignFiltersApi = /** @class */ (function (_super) {\n __extends(CertificationCampaignFiltersApi, _super);\n function CertificationCampaignFiltersApi() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n * Create a campaign Filter based on filter details and criteria.\n * @summary Create a Campaign Filter\n * @param {CertificationCampaignFiltersApiCreateCampaignFilterRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof CertificationCampaignFiltersApi\n */\n CertificationCampaignFiltersApi.prototype.createCampaignFilter = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.CertificationCampaignFiltersApiFp)(this.configuration).createCampaignFilter(requestParameters.campaignFilterDetails, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * Deletes campaign filters whose Ids are specified in the provided list of campaign filter Ids. Authorized callers must be an ORG_ADMIN or a CERT_ADMIN.\n * @summary Deletes Campaign Filters\n * @param {CertificationCampaignFiltersApiDeleteCampaignFiltersRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof CertificationCampaignFiltersApi\n */\n CertificationCampaignFiltersApi.prototype.deleteCampaignFilters = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.CertificationCampaignFiltersApiFp)(this.configuration).deleteCampaignFilters(requestParameters.requestBody, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * Retrieves information for an existing campaign filter using the filter\\'s ID.\n * @summary Get Campaign Filter by ID\n * @param {CertificationCampaignFiltersApiGetCampaignFilterByIdRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof CertificationCampaignFiltersApi\n */\n CertificationCampaignFiltersApi.prototype.getCampaignFilterById = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.CertificationCampaignFiltersApiFp)(this.configuration).getCampaignFilterById(requestParameters.filterId, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * Lists all Campaign Filters. Scope can be reduced via standard V3 query params. All Campaign Filters matching the query params\n * @summary List Campaign Filters\n * @param {CertificationCampaignFiltersApiListCampaignFiltersRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof CertificationCampaignFiltersApi\n */\n CertificationCampaignFiltersApi.prototype.listCampaignFilters = function (requestParameters, axiosOptions) {\n var _this = this;\n if (requestParameters === void 0) { requestParameters = {}; }\n return (0, exports.CertificationCampaignFiltersApiFp)(this.configuration).listCampaignFilters(requestParameters.limit, requestParameters.start, requestParameters.includeSystemFilters, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * Updates an existing campaign filter using the filter\\'s ID.\n * @summary Updates a Campaign Filter\n * @param {CertificationCampaignFiltersApiUpdateCampaignFilterRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof CertificationCampaignFiltersApi\n */\n CertificationCampaignFiltersApi.prototype.updateCampaignFilter = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.CertificationCampaignFiltersApiFp)(this.configuration).updateCampaignFilter(requestParameters.filterId, requestParameters.campaignFilterDetails, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n return CertificationCampaignFiltersApi;\n}(base_1.BaseAPI));\nexports.CertificationCampaignFiltersApi = CertificationCampaignFiltersApi;\n/**\n * CertificationCampaignsApi - axios parameter creator\n * @export\n */\nvar CertificationCampaignsApiAxiosParamCreator = function (configuration) {\n var _this = this;\n return {\n /**\n * :::caution This endpoint will run successfully for any campaigns that are **past due**. This endpoint will return a content error if the campaign is **not past due**. ::: Completes a certification campaign. This is provided to admins so that they can complete a certification even if all items have not been completed. Requires roles of CERT_ADMIN and ORG_ADMIN\n * @summary Complete a Campaign\n * @param {string} id The campaign id\n * @param {CampaignCompleteOptions} [campaignCompleteOptions] Optional. Default behavior is for the campaign to auto-approve upon completion, unless autoCompleteAction=REVOKE\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n completeCampaign: function (id, campaignCompleteOptions, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'id' is not null or undefined\n (0, common_1.assertParamExists)('completeCampaign', 'id', id);\n localVarPath = \"/campaigns/{id}/complete\"\n .replace(\"{\".concat(\"id\", \"}\"), encodeURIComponent(String(id)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n localVarHeaderParameter['Content-Type'] = 'application/json';\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(campaignCompleteOptions, localVarRequestOptions, configuration);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * Creates a new Certification Campaign with the information provided in the request body.\n * @summary Create a campaign\n * @param {Campaign} campaign\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n createCampaign: function (campaign, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'campaign' is not null or undefined\n (0, common_1.assertParamExists)('createCampaign', 'campaign', campaign);\n localVarPath = \"/campaigns\";\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n localVarHeaderParameter['Content-Type'] = 'application/json';\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(campaign, localVarRequestOptions, configuration);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * Create a campaign Template based on campaign.\n * @summary Create a Campaign Template\n * @param {CampaignTemplate} campaignTemplate\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n createCampaignTemplate: function (campaignTemplate, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'campaignTemplate' is not null or undefined\n (0, common_1.assertParamExists)('createCampaignTemplate', 'campaignTemplate', campaignTemplate);\n localVarPath = \"/campaign-templates\";\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n localVarHeaderParameter['Content-Type'] = 'application/json';\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(campaignTemplate, localVarRequestOptions, configuration);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * Deletes a campaign template by ID.\n * @summary Delete a Campaign Template\n * @param {string} id The ID of the campaign template being deleted.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n deleteCampaignTemplate: function (id, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'id' is not null or undefined\n (0, common_1.assertParamExists)('deleteCampaignTemplate', 'id', id);\n localVarPath = \"/campaign-templates/{id}\"\n .replace(\"{\".concat(\"id\", \"}\"), encodeURIComponent(String(id)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'DELETE' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * Deletes the schedule for a campaign template. Returns a 404 if there is no schedule set.\n * @summary Deletes a Campaign Template\\'s Schedule\n * @param {string} id The ID of the campaign template whose schedule is being deleted.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n deleteCampaignTemplateSchedule: function (id, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'id' is not null or undefined\n (0, common_1.assertParamExists)('deleteCampaignTemplateSchedule', 'id', id);\n localVarPath = \"/campaign-templates/{id}/schedule\"\n .replace(\"{\".concat(\"id\", \"}\"), encodeURIComponent(String(id)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'DELETE' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * Deletes campaigns whose Ids are specified in the provided list of campaign Ids. Authorized callers must be an ORG_ADMIN or a CERT_ADMIN.\n * @summary Deletes Campaigns\n * @param {CampaignsDeleteRequest} campaignsDeleteRequest The ids of the campaigns to delete.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n deleteCampaigns: function (campaignsDeleteRequest, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'campaignsDeleteRequest' is not null or undefined\n (0, common_1.assertParamExists)('deleteCampaigns', 'campaignsDeleteRequest', campaignsDeleteRequest);\n localVarPath = \"/campaigns/delete\";\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n localVarHeaderParameter['Content-Type'] = 'application/json';\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(campaignsDeleteRequest, localVarRequestOptions, configuration);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * Gets campaigns and returns them in a list. Can provide increased level of detail for each campaign if provided the correct query.\n * @summary List Campaigns\n * @param {'SLIM' | 'FULL'} [detail] Determines whether slim, or increased level of detail is provided for each campaign in the returned list. Slim is the default behavior.\n * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **id**: *eq, in* **name**: *eq, sw* **status**: *eq, in*\n * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **name, created**\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getActiveCampaigns: function (detail, limit, offset, count, filters, sorters, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n localVarPath = \"/campaigns\";\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n if (detail !== undefined) {\n localVarQueryParameter['detail'] = detail;\n }\n if (limit !== undefined) {\n localVarQueryParameter['limit'] = limit;\n }\n if (offset !== undefined) {\n localVarQueryParameter['offset'] = offset;\n }\n if (count !== undefined) {\n localVarQueryParameter['count'] = count;\n }\n if (filters !== undefined) {\n localVarQueryParameter['filters'] = filters;\n }\n if (sorters !== undefined) {\n localVarQueryParameter['sorters'] = sorters;\n }\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * Retrieves information for an existing campaign using the campaign\\'s ID. Authorized callers must be a reviewer for this campaign, an ORG_ADMIN, or a CERT_ADMIN.\n * @summary Get a campaign\n * @param {string} id The ID of the campaign to be retrieved\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getCampaign: function (id, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'id' is not null or undefined\n (0, common_1.assertParamExists)('getCampaign', 'id', id);\n localVarPath = \"/campaigns/{id}\"\n .replace(\"{\".concat(\"id\", \"}\"), encodeURIComponent(String(id)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * Fetches all reports for a certification campaign by campaign ID. Requires roles of CERT_ADMIN, DASHBOARD, ORG_ADMIN and REPORT_ADMIN\n * @summary Get Campaign Reports\n * @param {string} id The ID of the campaign for which reports are being fetched.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getCampaignReports: function (id, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'id' is not null or undefined\n (0, common_1.assertParamExists)('getCampaignReports', 'id', id);\n localVarPath = \"/campaigns/{id}/reports\"\n .replace(\"{\".concat(\"id\", \"}\"), encodeURIComponent(String(id)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * Fetches configuration for campaign reports. Currently it includes only one element - identity attributes defined as custom report columns. Requires roles of CERT_ADMIN and ORG_ADMIN.\n * @summary Get Campaign Reports Configuration\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getCampaignReportsConfig: function (axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n localVarPath = \"/campaigns/reports-configuration\";\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * Fetches a campaign template by ID.\n * @summary Get a Campaign Template\n * @param {string} id The desired campaign template\\'s ID.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getCampaignTemplate: function (id, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'id' is not null or undefined\n (0, common_1.assertParamExists)('getCampaignTemplate', 'id', id);\n localVarPath = \"/campaign-templates/{id}\"\n .replace(\"{\".concat(\"id\", \"}\"), encodeURIComponent(String(id)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * Gets the schedule for a campaign template. Returns a 404 if there is no schedule set.\n * @summary Gets a Campaign Template\\'s Schedule\n * @param {string} id The ID of the campaign template whose schedule is being fetched.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getCampaignTemplateSchedule: function (id, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'id' is not null or undefined\n (0, common_1.assertParamExists)('getCampaignTemplateSchedule', 'id', id);\n localVarPath = \"/campaign-templates/{id}/schedule\"\n .replace(\"{\".concat(\"id\", \"}\"), encodeURIComponent(String(id)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * Lists all CampaignTemplates. Scope can be reduced via standard V3 query params. All CampaignTemplates matching the query params\n * @summary List Campaign Templates\n * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **name, created, modified**\n * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **name**: *eq, ge, gt, in, le, lt, ne, sw* **id**: *eq, ge, gt, in, le, lt, ne, sw*\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n listCampaignTemplates: function (limit, offset, count, sorters, filters, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n localVarPath = \"/campaign-templates\";\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n if (limit !== undefined) {\n localVarQueryParameter['limit'] = limit;\n }\n if (offset !== undefined) {\n localVarQueryParameter['offset'] = offset;\n }\n if (count !== undefined) {\n localVarQueryParameter['count'] = count;\n }\n if (sorters !== undefined) {\n localVarQueryParameter['sorters'] = sorters;\n }\n if (filters !== undefined) {\n localVarQueryParameter['filters'] = filters;\n }\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This API reassigns the specified certifications from one identity to another. A token with ORG_ADMIN or CERT_ADMIN authority is required to call this API.\n * @summary Reassign Certifications\n * @param {string} id The certification campaign ID\n * @param {AdminReviewReassign} adminReviewReassign\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n move: function (id, adminReviewReassign, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'id' is not null or undefined\n (0, common_1.assertParamExists)('move', 'id', id);\n // verify required parameter 'adminReviewReassign' is not null or undefined\n (0, common_1.assertParamExists)('move', 'adminReviewReassign', adminReviewReassign);\n localVarPath = \"/campaigns/{id}/reassign\"\n .replace(\"{\".concat(\"id\", \"}\"), encodeURIComponent(String(id)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n localVarHeaderParameter['Content-Type'] = 'application/json';\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(adminReviewReassign, localVarRequestOptions, configuration);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * Allows updating individual fields on a campaign template using the [JSON Patch](https://tools.ietf.org/html/rfc6902) standard.\n * @summary Update a Campaign Template\n * @param {string} id The ID of the campaign template being modified.\n * @param {Array} jsonPatchOperation A list of campaign update operations according to the [JSON Patch](https://tools.ietf.org/html/rfc6902) standard. The following fields are patchable: * name * description * deadlineDuration * campaign (all fields that are allowed during create)\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n patchCampaignTemplate: function (id, jsonPatchOperation, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'id' is not null or undefined\n (0, common_1.assertParamExists)('patchCampaignTemplate', 'id', id);\n // verify required parameter 'jsonPatchOperation' is not null or undefined\n (0, common_1.assertParamExists)('patchCampaignTemplate', 'jsonPatchOperation', jsonPatchOperation);\n localVarPath = \"/campaign-templates/{id}\"\n .replace(\"{\".concat(\"id\", \"}\"), encodeURIComponent(String(id)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'PATCH' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n localVarHeaderParameter['Content-Type'] = 'application/json-patch+json';\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(jsonPatchOperation, localVarRequestOptions, configuration);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * Overwrites configuration for campaign reports. Requires roles CERT_ADMIN and ORG_ADMIN.\n * @summary Set Campaign Reports Configuration\n * @param {CampaignReportsConfig} campaignReportsConfig Campaign Report Configuration\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n setCampaignReportsConfig: function (campaignReportsConfig, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'campaignReportsConfig' is not null or undefined\n (0, common_1.assertParamExists)('setCampaignReportsConfig', 'campaignReportsConfig', campaignReportsConfig);\n localVarPath = \"/campaigns/reports-configuration\";\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'PUT' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n localVarHeaderParameter['Content-Type'] = 'application/json';\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(campaignReportsConfig, localVarRequestOptions, configuration);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * Sets the schedule for a campaign template. If a schedule already exists, it will be overwritten with the new one.\n * @summary Sets a Campaign Template\\'s Schedule\n * @param {string} id The ID of the campaign template being scheduled.\n * @param {Schedule} [schedule]\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n setCampaignTemplateSchedule: function (id, schedule, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'id' is not null or undefined\n (0, common_1.assertParamExists)('setCampaignTemplateSchedule', 'id', id);\n localVarPath = \"/campaign-templates/{id}/schedule\"\n .replace(\"{\".concat(\"id\", \"}\"), encodeURIComponent(String(id)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'PUT' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n localVarHeaderParameter['Content-Type'] = 'application/json';\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(schedule, localVarRequestOptions, configuration);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * Submits a job to activate the campaign with the given Id. The campaign must be staged. Requires roles of CERT_ADMIN and ORG_ADMIN\n * @summary Activate a Campaign\n * @param {string} id The campaign id\n * @param {ActivateCampaignOptions} [activateCampaignOptions] Optional. If no timezone is specified, the standard UTC timezone is used (i.e. UTC+00:00). Although this can take any timezone, the intended value is the caller\\'s timezone. The activation time calculated from the given timezone may cause the campaign deadline time to be modified, but it will remain within the original date. The timezone must be in a valid ISO 8601 format.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n startCampaign: function (id, activateCampaignOptions, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'id' is not null or undefined\n (0, common_1.assertParamExists)('startCampaign', 'id', id);\n localVarPath = \"/campaigns/{id}/activate\"\n .replace(\"{\".concat(\"id\", \"}\"), encodeURIComponent(String(id)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n localVarHeaderParameter['Content-Type'] = 'application/json';\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(activateCampaignOptions, localVarRequestOptions, configuration);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * Kicks off remediation scan task for a certification campaign. Requires roles of CERT_ADMIN and ORG_ADMIN\n * @summary Run Campaign Remediation Scan\n * @param {string} id The ID of the campaign for which remediation scan is being run.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n startCampaignRemediationScan: function (id, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'id' is not null or undefined\n (0, common_1.assertParamExists)('startCampaignRemediationScan', 'id', id);\n localVarPath = \"/campaigns/{id}/run-remediation-scan\"\n .replace(\"{\".concat(\"id\", \"}\"), encodeURIComponent(String(id)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * Runs a report for a certification campaign. Requires the following roles: CERT_ADMIN, DASHBOARD, ORG_ADMIN and REPORT_ADMIN.\n * @summary Run Campaign Report\n * @param {string} id The ID of the campaign for which report is being run.\n * @param {ReportType} type The type of the report to run.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n startCampaignReport: function (id, type, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'id' is not null or undefined\n (0, common_1.assertParamExists)('startCampaignReport', 'id', id);\n // verify required parameter 'type' is not null or undefined\n (0, common_1.assertParamExists)('startCampaignReport', 'type', type);\n localVarPath = \"/campaigns/{id}/run-report/{type}\"\n .replace(\"{\".concat(\"id\", \"}\"), encodeURIComponent(String(id)))\n .replace(\"{\".concat(\"type\", \"}\"), encodeURIComponent(String(type)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * Generates a new campaign from a campaign template. The campaign object contained in the template has special formatting applied to its name and description fields in order to determine the generated campaign\\'s name/description. Placeholders in those fields are formatted with the current date and time upon generation. Placeholders consist of a percent sign followed by a letter indicating what should be inserted; for example, \\\"%Y\\\" will insert the current year; a campaign template named \\\"Campaign for %y\\\" would generate a campaign called \\\"Campaign for 2020\\\" (assuming the year at generation time is 2020). Valid placeholders are the date/time conversion suffix characters supported by [java.util.Formatter](https://docs.oracle.com/javase/8/docs/api/java/util/Formatter.html). Requires roles ORG_ADMIN.\n * @summary Generate a Campaign from Template\n * @param {string} id The ID of the campaign template to use for generation.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n startGenerateCampaignTemplate: function (id, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'id' is not null or undefined\n (0, common_1.assertParamExists)('startGenerateCampaignTemplate', 'id', id);\n localVarPath = \"/campaign-templates/{id}/generate\"\n .replace(\"{\".concat(\"id\", \"}\"), encodeURIComponent(String(id)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * Allows updating individual fields on a campaign using the [JSON Patch](https://tools.ietf.org/html/rfc6902) standard.\n * @summary Update a Campaign\n * @param {string} id The ID of the campaign template being modified.\n * @param {Array} jsonPatchOperation A list of campaign update operations according to the [JSON Patch](https://tools.ietf.org/html/rfc6902) standard. The fields that can be patched differ based on the status of the campaign. In the *STAGED* status, the following fields can be patched: * name * description * recommendationsEnabled * deadline * emailNotificationEnabled * autoRevokeAllowed In the *ACTIVE* status, the following fields can be patched: * deadline\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n updateCampaign: function (id, jsonPatchOperation, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'id' is not null or undefined\n (0, common_1.assertParamExists)('updateCampaign', 'id', id);\n // verify required parameter 'jsonPatchOperation' is not null or undefined\n (0, common_1.assertParamExists)('updateCampaign', 'jsonPatchOperation', jsonPatchOperation);\n localVarPath = \"/campaigns/{id}\"\n .replace(\"{\".concat(\"id\", \"}\"), encodeURIComponent(String(id)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'PATCH' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n localVarHeaderParameter['Content-Type'] = 'application/json-patch+json';\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(jsonPatchOperation, localVarRequestOptions, configuration);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n };\n};\nexports.CertificationCampaignsApiAxiosParamCreator = CertificationCampaignsApiAxiosParamCreator;\n/**\n * CertificationCampaignsApi - functional programming interface\n * @export\n */\nvar CertificationCampaignsApiFp = function (configuration) {\n var localVarAxiosParamCreator = (0, exports.CertificationCampaignsApiAxiosParamCreator)(configuration);\n return {\n /**\n * :::caution This endpoint will run successfully for any campaigns that are **past due**. This endpoint will return a content error if the campaign is **not past due**. ::: Completes a certification campaign. This is provided to admins so that they can complete a certification even if all items have not been completed. Requires roles of CERT_ADMIN and ORG_ADMIN\n * @summary Complete a Campaign\n * @param {string} id The campaign id\n * @param {CampaignCompleteOptions} [campaignCompleteOptions] Optional. Default behavior is for the campaign to auto-approve upon completion, unless autoCompleteAction=REVOKE\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n completeCampaign: function (id, campaignCompleteOptions, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.completeCampaign(id, campaignCompleteOptions, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * Creates a new Certification Campaign with the information provided in the request body.\n * @summary Create a campaign\n * @param {Campaign} campaign\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n createCampaign: function (campaign, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.createCampaign(campaign, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * Create a campaign Template based on campaign.\n * @summary Create a Campaign Template\n * @param {CampaignTemplate} campaignTemplate\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n createCampaignTemplate: function (campaignTemplate, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.createCampaignTemplate(campaignTemplate, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * Deletes a campaign template by ID.\n * @summary Delete a Campaign Template\n * @param {string} id The ID of the campaign template being deleted.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n deleteCampaignTemplate: function (id, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.deleteCampaignTemplate(id, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * Deletes the schedule for a campaign template. Returns a 404 if there is no schedule set.\n * @summary Deletes a Campaign Template\\'s Schedule\n * @param {string} id The ID of the campaign template whose schedule is being deleted.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n deleteCampaignTemplateSchedule: function (id, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.deleteCampaignTemplateSchedule(id, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * Deletes campaigns whose Ids are specified in the provided list of campaign Ids. Authorized callers must be an ORG_ADMIN or a CERT_ADMIN.\n * @summary Deletes Campaigns\n * @param {CampaignsDeleteRequest} campaignsDeleteRequest The ids of the campaigns to delete.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n deleteCampaigns: function (campaignsDeleteRequest, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.deleteCampaigns(campaignsDeleteRequest, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * Gets campaigns and returns them in a list. Can provide increased level of detail for each campaign if provided the correct query.\n * @summary List Campaigns\n * @param {'SLIM' | 'FULL'} [detail] Determines whether slim, or increased level of detail is provided for each campaign in the returned list. Slim is the default behavior.\n * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **id**: *eq, in* **name**: *eq, sw* **status**: *eq, in*\n * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **name, created**\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getActiveCampaigns: function (detail, limit, offset, count, filters, sorters, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.getActiveCampaigns(detail, limit, offset, count, filters, sorters, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * Retrieves information for an existing campaign using the campaign\\'s ID. Authorized callers must be a reviewer for this campaign, an ORG_ADMIN, or a CERT_ADMIN.\n * @summary Get a campaign\n * @param {string} id The ID of the campaign to be retrieved\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getCampaign: function (id, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.getCampaign(id, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * Fetches all reports for a certification campaign by campaign ID. Requires roles of CERT_ADMIN, DASHBOARD, ORG_ADMIN and REPORT_ADMIN\n * @summary Get Campaign Reports\n * @param {string} id The ID of the campaign for which reports are being fetched.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getCampaignReports: function (id, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.getCampaignReports(id, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * Fetches configuration for campaign reports. Currently it includes only one element - identity attributes defined as custom report columns. Requires roles of CERT_ADMIN and ORG_ADMIN.\n * @summary Get Campaign Reports Configuration\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getCampaignReportsConfig: function (axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.getCampaignReportsConfig(axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * Fetches a campaign template by ID.\n * @summary Get a Campaign Template\n * @param {string} id The desired campaign template\\'s ID.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getCampaignTemplate: function (id, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.getCampaignTemplate(id, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * Gets the schedule for a campaign template. Returns a 404 if there is no schedule set.\n * @summary Gets a Campaign Template\\'s Schedule\n * @param {string} id The ID of the campaign template whose schedule is being fetched.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getCampaignTemplateSchedule: function (id, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.getCampaignTemplateSchedule(id, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * Lists all CampaignTemplates. Scope can be reduced via standard V3 query params. All CampaignTemplates matching the query params\n * @summary List Campaign Templates\n * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **name, created, modified**\n * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **name**: *eq, ge, gt, in, le, lt, ne, sw* **id**: *eq, ge, gt, in, le, lt, ne, sw*\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n listCampaignTemplates: function (limit, offset, count, sorters, filters, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.listCampaignTemplates(limit, offset, count, sorters, filters, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This API reassigns the specified certifications from one identity to another. A token with ORG_ADMIN or CERT_ADMIN authority is required to call this API.\n * @summary Reassign Certifications\n * @param {string} id The certification campaign ID\n * @param {AdminReviewReassign} adminReviewReassign\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n move: function (id, adminReviewReassign, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.move(id, adminReviewReassign, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * Allows updating individual fields on a campaign template using the [JSON Patch](https://tools.ietf.org/html/rfc6902) standard.\n * @summary Update a Campaign Template\n * @param {string} id The ID of the campaign template being modified.\n * @param {Array} jsonPatchOperation A list of campaign update operations according to the [JSON Patch](https://tools.ietf.org/html/rfc6902) standard. The following fields are patchable: * name * description * deadlineDuration * campaign (all fields that are allowed during create)\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n patchCampaignTemplate: function (id, jsonPatchOperation, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.patchCampaignTemplate(id, jsonPatchOperation, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * Overwrites configuration for campaign reports. Requires roles CERT_ADMIN and ORG_ADMIN.\n * @summary Set Campaign Reports Configuration\n * @param {CampaignReportsConfig} campaignReportsConfig Campaign Report Configuration\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n setCampaignReportsConfig: function (campaignReportsConfig, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.setCampaignReportsConfig(campaignReportsConfig, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * Sets the schedule for a campaign template. If a schedule already exists, it will be overwritten with the new one.\n * @summary Sets a Campaign Template\\'s Schedule\n * @param {string} id The ID of the campaign template being scheduled.\n * @param {Schedule} [schedule]\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n setCampaignTemplateSchedule: function (id, schedule, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.setCampaignTemplateSchedule(id, schedule, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * Submits a job to activate the campaign with the given Id. The campaign must be staged. Requires roles of CERT_ADMIN and ORG_ADMIN\n * @summary Activate a Campaign\n * @param {string} id The campaign id\n * @param {ActivateCampaignOptions} [activateCampaignOptions] Optional. If no timezone is specified, the standard UTC timezone is used (i.e. UTC+00:00). Although this can take any timezone, the intended value is the caller\\'s timezone. The activation time calculated from the given timezone may cause the campaign deadline time to be modified, but it will remain within the original date. The timezone must be in a valid ISO 8601 format.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n startCampaign: function (id, activateCampaignOptions, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.startCampaign(id, activateCampaignOptions, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * Kicks off remediation scan task for a certification campaign. Requires roles of CERT_ADMIN and ORG_ADMIN\n * @summary Run Campaign Remediation Scan\n * @param {string} id The ID of the campaign for which remediation scan is being run.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n startCampaignRemediationScan: function (id, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.startCampaignRemediationScan(id, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * Runs a report for a certification campaign. Requires the following roles: CERT_ADMIN, DASHBOARD, ORG_ADMIN and REPORT_ADMIN.\n * @summary Run Campaign Report\n * @param {string} id The ID of the campaign for which report is being run.\n * @param {ReportType} type The type of the report to run.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n startCampaignReport: function (id, type, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.startCampaignReport(id, type, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * Generates a new campaign from a campaign template. The campaign object contained in the template has special formatting applied to its name and description fields in order to determine the generated campaign\\'s name/description. Placeholders in those fields are formatted with the current date and time upon generation. Placeholders consist of a percent sign followed by a letter indicating what should be inserted; for example, \\\"%Y\\\" will insert the current year; a campaign template named \\\"Campaign for %y\\\" would generate a campaign called \\\"Campaign for 2020\\\" (assuming the year at generation time is 2020). Valid placeholders are the date/time conversion suffix characters supported by [java.util.Formatter](https://docs.oracle.com/javase/8/docs/api/java/util/Formatter.html). Requires roles ORG_ADMIN.\n * @summary Generate a Campaign from Template\n * @param {string} id The ID of the campaign template to use for generation.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n startGenerateCampaignTemplate: function (id, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.startGenerateCampaignTemplate(id, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * Allows updating individual fields on a campaign using the [JSON Patch](https://tools.ietf.org/html/rfc6902) standard.\n * @summary Update a Campaign\n * @param {string} id The ID of the campaign template being modified.\n * @param {Array} jsonPatchOperation A list of campaign update operations according to the [JSON Patch](https://tools.ietf.org/html/rfc6902) standard. The fields that can be patched differ based on the status of the campaign. In the *STAGED* status, the following fields can be patched: * name * description * recommendationsEnabled * deadline * emailNotificationEnabled * autoRevokeAllowed In the *ACTIVE* status, the following fields can be patched: * deadline\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n updateCampaign: function (id, jsonPatchOperation, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.updateCampaign(id, jsonPatchOperation, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n };\n};\nexports.CertificationCampaignsApiFp = CertificationCampaignsApiFp;\n/**\n * CertificationCampaignsApi - factory interface\n * @export\n */\nvar CertificationCampaignsApiFactory = function (configuration, basePath, axios) {\n var localVarFp = (0, exports.CertificationCampaignsApiFp)(configuration);\n return {\n /**\n * :::caution This endpoint will run successfully for any campaigns that are **past due**. This endpoint will return a content error if the campaign is **not past due**. ::: Completes a certification campaign. This is provided to admins so that they can complete a certification even if all items have not been completed. Requires roles of CERT_ADMIN and ORG_ADMIN\n * @summary Complete a Campaign\n * @param {string} id The campaign id\n * @param {CampaignCompleteOptions} [campaignCompleteOptions] Optional. Default behavior is for the campaign to auto-approve upon completion, unless autoCompleteAction=REVOKE\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n completeCampaign: function (id, campaignCompleteOptions, axiosOptions) {\n return localVarFp.completeCampaign(id, campaignCompleteOptions, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * Creates a new Certification Campaign with the information provided in the request body.\n * @summary Create a campaign\n * @param {Campaign} campaign\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n createCampaign: function (campaign, axiosOptions) {\n return localVarFp.createCampaign(campaign, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * Create a campaign Template based on campaign.\n * @summary Create a Campaign Template\n * @param {CampaignTemplate} campaignTemplate\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n createCampaignTemplate: function (campaignTemplate, axiosOptions) {\n return localVarFp.createCampaignTemplate(campaignTemplate, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * Deletes a campaign template by ID.\n * @summary Delete a Campaign Template\n * @param {string} id The ID of the campaign template being deleted.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n deleteCampaignTemplate: function (id, axiosOptions) {\n return localVarFp.deleteCampaignTemplate(id, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * Deletes the schedule for a campaign template. Returns a 404 if there is no schedule set.\n * @summary Deletes a Campaign Template\\'s Schedule\n * @param {string} id The ID of the campaign template whose schedule is being deleted.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n deleteCampaignTemplateSchedule: function (id, axiosOptions) {\n return localVarFp.deleteCampaignTemplateSchedule(id, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * Deletes campaigns whose Ids are specified in the provided list of campaign Ids. Authorized callers must be an ORG_ADMIN or a CERT_ADMIN.\n * @summary Deletes Campaigns\n * @param {CampaignsDeleteRequest} campaignsDeleteRequest The ids of the campaigns to delete.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n deleteCampaigns: function (campaignsDeleteRequest, axiosOptions) {\n return localVarFp.deleteCampaigns(campaignsDeleteRequest, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * Gets campaigns and returns them in a list. Can provide increased level of detail for each campaign if provided the correct query.\n * @summary List Campaigns\n * @param {'SLIM' | 'FULL'} [detail] Determines whether slim, or increased level of detail is provided for each campaign in the returned list. Slim is the default behavior.\n * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **id**: *eq, in* **name**: *eq, sw* **status**: *eq, in*\n * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **name, created**\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getActiveCampaigns: function (detail, limit, offset, count, filters, sorters, axiosOptions) {\n return localVarFp.getActiveCampaigns(detail, limit, offset, count, filters, sorters, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * Retrieves information for an existing campaign using the campaign\\'s ID. Authorized callers must be a reviewer for this campaign, an ORG_ADMIN, or a CERT_ADMIN.\n * @summary Get a campaign\n * @param {string} id The ID of the campaign to be retrieved\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getCampaign: function (id, axiosOptions) {\n return localVarFp.getCampaign(id, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * Fetches all reports for a certification campaign by campaign ID. Requires roles of CERT_ADMIN, DASHBOARD, ORG_ADMIN and REPORT_ADMIN\n * @summary Get Campaign Reports\n * @param {string} id The ID of the campaign for which reports are being fetched.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getCampaignReports: function (id, axiosOptions) {\n return localVarFp.getCampaignReports(id, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * Fetches configuration for campaign reports. Currently it includes only one element - identity attributes defined as custom report columns. Requires roles of CERT_ADMIN and ORG_ADMIN.\n * @summary Get Campaign Reports Configuration\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getCampaignReportsConfig: function (axiosOptions) {\n return localVarFp.getCampaignReportsConfig(axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * Fetches a campaign template by ID.\n * @summary Get a Campaign Template\n * @param {string} id The desired campaign template\\'s ID.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getCampaignTemplate: function (id, axiosOptions) {\n return localVarFp.getCampaignTemplate(id, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * Gets the schedule for a campaign template. Returns a 404 if there is no schedule set.\n * @summary Gets a Campaign Template\\'s Schedule\n * @param {string} id The ID of the campaign template whose schedule is being fetched.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getCampaignTemplateSchedule: function (id, axiosOptions) {\n return localVarFp.getCampaignTemplateSchedule(id, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * Lists all CampaignTemplates. Scope can be reduced via standard V3 query params. All CampaignTemplates matching the query params\n * @summary List Campaign Templates\n * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **name, created, modified**\n * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **name**: *eq, ge, gt, in, le, lt, ne, sw* **id**: *eq, ge, gt, in, le, lt, ne, sw*\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n listCampaignTemplates: function (limit, offset, count, sorters, filters, axiosOptions) {\n return localVarFp.listCampaignTemplates(limit, offset, count, sorters, filters, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This API reassigns the specified certifications from one identity to another. A token with ORG_ADMIN or CERT_ADMIN authority is required to call this API.\n * @summary Reassign Certifications\n * @param {string} id The certification campaign ID\n * @param {AdminReviewReassign} adminReviewReassign\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n move: function (id, adminReviewReassign, axiosOptions) {\n return localVarFp.move(id, adminReviewReassign, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * Allows updating individual fields on a campaign template using the [JSON Patch](https://tools.ietf.org/html/rfc6902) standard.\n * @summary Update a Campaign Template\n * @param {string} id The ID of the campaign template being modified.\n * @param {Array} jsonPatchOperation A list of campaign update operations according to the [JSON Patch](https://tools.ietf.org/html/rfc6902) standard. The following fields are patchable: * name * description * deadlineDuration * campaign (all fields that are allowed during create)\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n patchCampaignTemplate: function (id, jsonPatchOperation, axiosOptions) {\n return localVarFp.patchCampaignTemplate(id, jsonPatchOperation, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * Overwrites configuration for campaign reports. Requires roles CERT_ADMIN and ORG_ADMIN.\n * @summary Set Campaign Reports Configuration\n * @param {CampaignReportsConfig} campaignReportsConfig Campaign Report Configuration\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n setCampaignReportsConfig: function (campaignReportsConfig, axiosOptions) {\n return localVarFp.setCampaignReportsConfig(campaignReportsConfig, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * Sets the schedule for a campaign template. If a schedule already exists, it will be overwritten with the new one.\n * @summary Sets a Campaign Template\\'s Schedule\n * @param {string} id The ID of the campaign template being scheduled.\n * @param {Schedule} [schedule]\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n setCampaignTemplateSchedule: function (id, schedule, axiosOptions) {\n return localVarFp.setCampaignTemplateSchedule(id, schedule, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * Submits a job to activate the campaign with the given Id. The campaign must be staged. Requires roles of CERT_ADMIN and ORG_ADMIN\n * @summary Activate a Campaign\n * @param {string} id The campaign id\n * @param {ActivateCampaignOptions} [activateCampaignOptions] Optional. If no timezone is specified, the standard UTC timezone is used (i.e. UTC+00:00). Although this can take any timezone, the intended value is the caller\\'s timezone. The activation time calculated from the given timezone may cause the campaign deadline time to be modified, but it will remain within the original date. The timezone must be in a valid ISO 8601 format.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n startCampaign: function (id, activateCampaignOptions, axiosOptions) {\n return localVarFp.startCampaign(id, activateCampaignOptions, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * Kicks off remediation scan task for a certification campaign. Requires roles of CERT_ADMIN and ORG_ADMIN\n * @summary Run Campaign Remediation Scan\n * @param {string} id The ID of the campaign for which remediation scan is being run.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n startCampaignRemediationScan: function (id, axiosOptions) {\n return localVarFp.startCampaignRemediationScan(id, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * Runs a report for a certification campaign. Requires the following roles: CERT_ADMIN, DASHBOARD, ORG_ADMIN and REPORT_ADMIN.\n * @summary Run Campaign Report\n * @param {string} id The ID of the campaign for which report is being run.\n * @param {ReportType} type The type of the report to run.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n startCampaignReport: function (id, type, axiosOptions) {\n return localVarFp.startCampaignReport(id, type, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * Generates a new campaign from a campaign template. The campaign object contained in the template has special formatting applied to its name and description fields in order to determine the generated campaign\\'s name/description. Placeholders in those fields are formatted with the current date and time upon generation. Placeholders consist of a percent sign followed by a letter indicating what should be inserted; for example, \\\"%Y\\\" will insert the current year; a campaign template named \\\"Campaign for %y\\\" would generate a campaign called \\\"Campaign for 2020\\\" (assuming the year at generation time is 2020). Valid placeholders are the date/time conversion suffix characters supported by [java.util.Formatter](https://docs.oracle.com/javase/8/docs/api/java/util/Formatter.html). Requires roles ORG_ADMIN.\n * @summary Generate a Campaign from Template\n * @param {string} id The ID of the campaign template to use for generation.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n startGenerateCampaignTemplate: function (id, axiosOptions) {\n return localVarFp.startGenerateCampaignTemplate(id, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * Allows updating individual fields on a campaign using the [JSON Patch](https://tools.ietf.org/html/rfc6902) standard.\n * @summary Update a Campaign\n * @param {string} id The ID of the campaign template being modified.\n * @param {Array} jsonPatchOperation A list of campaign update operations according to the [JSON Patch](https://tools.ietf.org/html/rfc6902) standard. The fields that can be patched differ based on the status of the campaign. In the *STAGED* status, the following fields can be patched: * name * description * recommendationsEnabled * deadline * emailNotificationEnabled * autoRevokeAllowed In the *ACTIVE* status, the following fields can be patched: * deadline\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n updateCampaign: function (id, jsonPatchOperation, axiosOptions) {\n return localVarFp.updateCampaign(id, jsonPatchOperation, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n };\n};\nexports.CertificationCampaignsApiFactory = CertificationCampaignsApiFactory;\n/**\n * CertificationCampaignsApi - object-oriented interface\n * @export\n * @class CertificationCampaignsApi\n * @extends {BaseAPI}\n */\nvar CertificationCampaignsApi = /** @class */ (function (_super) {\n __extends(CertificationCampaignsApi, _super);\n function CertificationCampaignsApi() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n * :::caution This endpoint will run successfully for any campaigns that are **past due**. This endpoint will return a content error if the campaign is **not past due**. ::: Completes a certification campaign. This is provided to admins so that they can complete a certification even if all items have not been completed. Requires roles of CERT_ADMIN and ORG_ADMIN\n * @summary Complete a Campaign\n * @param {CertificationCampaignsApiCompleteCampaignRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof CertificationCampaignsApi\n */\n CertificationCampaignsApi.prototype.completeCampaign = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.CertificationCampaignsApiFp)(this.configuration).completeCampaign(requestParameters.id, requestParameters.campaignCompleteOptions, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * Creates a new Certification Campaign with the information provided in the request body.\n * @summary Create a campaign\n * @param {CertificationCampaignsApiCreateCampaignRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof CertificationCampaignsApi\n */\n CertificationCampaignsApi.prototype.createCampaign = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.CertificationCampaignsApiFp)(this.configuration).createCampaign(requestParameters.campaign, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * Create a campaign Template based on campaign.\n * @summary Create a Campaign Template\n * @param {CertificationCampaignsApiCreateCampaignTemplateRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof CertificationCampaignsApi\n */\n CertificationCampaignsApi.prototype.createCampaignTemplate = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.CertificationCampaignsApiFp)(this.configuration).createCampaignTemplate(requestParameters.campaignTemplate, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * Deletes a campaign template by ID.\n * @summary Delete a Campaign Template\n * @param {CertificationCampaignsApiDeleteCampaignTemplateRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof CertificationCampaignsApi\n */\n CertificationCampaignsApi.prototype.deleteCampaignTemplate = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.CertificationCampaignsApiFp)(this.configuration).deleteCampaignTemplate(requestParameters.id, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * Deletes the schedule for a campaign template. Returns a 404 if there is no schedule set.\n * @summary Deletes a Campaign Template\\'s Schedule\n * @param {CertificationCampaignsApiDeleteCampaignTemplateScheduleRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof CertificationCampaignsApi\n */\n CertificationCampaignsApi.prototype.deleteCampaignTemplateSchedule = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.CertificationCampaignsApiFp)(this.configuration).deleteCampaignTemplateSchedule(requestParameters.id, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * Deletes campaigns whose Ids are specified in the provided list of campaign Ids. Authorized callers must be an ORG_ADMIN or a CERT_ADMIN.\n * @summary Deletes Campaigns\n * @param {CertificationCampaignsApiDeleteCampaignsRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof CertificationCampaignsApi\n */\n CertificationCampaignsApi.prototype.deleteCampaigns = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.CertificationCampaignsApiFp)(this.configuration).deleteCampaigns(requestParameters.campaignsDeleteRequest, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * Gets campaigns and returns them in a list. Can provide increased level of detail for each campaign if provided the correct query.\n * @summary List Campaigns\n * @param {CertificationCampaignsApiGetActiveCampaignsRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof CertificationCampaignsApi\n */\n CertificationCampaignsApi.prototype.getActiveCampaigns = function (requestParameters, axiosOptions) {\n var _this = this;\n if (requestParameters === void 0) { requestParameters = {}; }\n return (0, exports.CertificationCampaignsApiFp)(this.configuration).getActiveCampaigns(requestParameters.detail, requestParameters.limit, requestParameters.offset, requestParameters.count, requestParameters.filters, requestParameters.sorters, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * Retrieves information for an existing campaign using the campaign\\'s ID. Authorized callers must be a reviewer for this campaign, an ORG_ADMIN, or a CERT_ADMIN.\n * @summary Get a campaign\n * @param {CertificationCampaignsApiGetCampaignRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof CertificationCampaignsApi\n */\n CertificationCampaignsApi.prototype.getCampaign = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.CertificationCampaignsApiFp)(this.configuration).getCampaign(requestParameters.id, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * Fetches all reports for a certification campaign by campaign ID. Requires roles of CERT_ADMIN, DASHBOARD, ORG_ADMIN and REPORT_ADMIN\n * @summary Get Campaign Reports\n * @param {CertificationCampaignsApiGetCampaignReportsRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof CertificationCampaignsApi\n */\n CertificationCampaignsApi.prototype.getCampaignReports = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.CertificationCampaignsApiFp)(this.configuration).getCampaignReports(requestParameters.id, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * Fetches configuration for campaign reports. Currently it includes only one element - identity attributes defined as custom report columns. Requires roles of CERT_ADMIN and ORG_ADMIN.\n * @summary Get Campaign Reports Configuration\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof CertificationCampaignsApi\n */\n CertificationCampaignsApi.prototype.getCampaignReportsConfig = function (axiosOptions) {\n var _this = this;\n return (0, exports.CertificationCampaignsApiFp)(this.configuration).getCampaignReportsConfig(axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * Fetches a campaign template by ID.\n * @summary Get a Campaign Template\n * @param {CertificationCampaignsApiGetCampaignTemplateRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof CertificationCampaignsApi\n */\n CertificationCampaignsApi.prototype.getCampaignTemplate = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.CertificationCampaignsApiFp)(this.configuration).getCampaignTemplate(requestParameters.id, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * Gets the schedule for a campaign template. Returns a 404 if there is no schedule set.\n * @summary Gets a Campaign Template\\'s Schedule\n * @param {CertificationCampaignsApiGetCampaignTemplateScheduleRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof CertificationCampaignsApi\n */\n CertificationCampaignsApi.prototype.getCampaignTemplateSchedule = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.CertificationCampaignsApiFp)(this.configuration).getCampaignTemplateSchedule(requestParameters.id, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * Lists all CampaignTemplates. Scope can be reduced via standard V3 query params. All CampaignTemplates matching the query params\n * @summary List Campaign Templates\n * @param {CertificationCampaignsApiListCampaignTemplatesRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof CertificationCampaignsApi\n */\n CertificationCampaignsApi.prototype.listCampaignTemplates = function (requestParameters, axiosOptions) {\n var _this = this;\n if (requestParameters === void 0) { requestParameters = {}; }\n return (0, exports.CertificationCampaignsApiFp)(this.configuration).listCampaignTemplates(requestParameters.limit, requestParameters.offset, requestParameters.count, requestParameters.sorters, requestParameters.filters, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This API reassigns the specified certifications from one identity to another. A token with ORG_ADMIN or CERT_ADMIN authority is required to call this API.\n * @summary Reassign Certifications\n * @param {CertificationCampaignsApiMoveRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof CertificationCampaignsApi\n */\n CertificationCampaignsApi.prototype.move = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.CertificationCampaignsApiFp)(this.configuration).move(requestParameters.id, requestParameters.adminReviewReassign, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * Allows updating individual fields on a campaign template using the [JSON Patch](https://tools.ietf.org/html/rfc6902) standard.\n * @summary Update a Campaign Template\n * @param {CertificationCampaignsApiPatchCampaignTemplateRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof CertificationCampaignsApi\n */\n CertificationCampaignsApi.prototype.patchCampaignTemplate = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.CertificationCampaignsApiFp)(this.configuration).patchCampaignTemplate(requestParameters.id, requestParameters.jsonPatchOperation, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * Overwrites configuration for campaign reports. Requires roles CERT_ADMIN and ORG_ADMIN.\n * @summary Set Campaign Reports Configuration\n * @param {CertificationCampaignsApiSetCampaignReportsConfigRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof CertificationCampaignsApi\n */\n CertificationCampaignsApi.prototype.setCampaignReportsConfig = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.CertificationCampaignsApiFp)(this.configuration).setCampaignReportsConfig(requestParameters.campaignReportsConfig, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * Sets the schedule for a campaign template. If a schedule already exists, it will be overwritten with the new one.\n * @summary Sets a Campaign Template\\'s Schedule\n * @param {CertificationCampaignsApiSetCampaignTemplateScheduleRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof CertificationCampaignsApi\n */\n CertificationCampaignsApi.prototype.setCampaignTemplateSchedule = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.CertificationCampaignsApiFp)(this.configuration).setCampaignTemplateSchedule(requestParameters.id, requestParameters.schedule, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * Submits a job to activate the campaign with the given Id. The campaign must be staged. Requires roles of CERT_ADMIN and ORG_ADMIN\n * @summary Activate a Campaign\n * @param {CertificationCampaignsApiStartCampaignRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof CertificationCampaignsApi\n */\n CertificationCampaignsApi.prototype.startCampaign = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.CertificationCampaignsApiFp)(this.configuration).startCampaign(requestParameters.id, requestParameters.activateCampaignOptions, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * Kicks off remediation scan task for a certification campaign. Requires roles of CERT_ADMIN and ORG_ADMIN\n * @summary Run Campaign Remediation Scan\n * @param {CertificationCampaignsApiStartCampaignRemediationScanRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof CertificationCampaignsApi\n */\n CertificationCampaignsApi.prototype.startCampaignRemediationScan = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.CertificationCampaignsApiFp)(this.configuration).startCampaignRemediationScan(requestParameters.id, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * Runs a report for a certification campaign. Requires the following roles: CERT_ADMIN, DASHBOARD, ORG_ADMIN and REPORT_ADMIN.\n * @summary Run Campaign Report\n * @param {CertificationCampaignsApiStartCampaignReportRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof CertificationCampaignsApi\n */\n CertificationCampaignsApi.prototype.startCampaignReport = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.CertificationCampaignsApiFp)(this.configuration).startCampaignReport(requestParameters.id, requestParameters.type, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * Generates a new campaign from a campaign template. The campaign object contained in the template has special formatting applied to its name and description fields in order to determine the generated campaign\\'s name/description. Placeholders in those fields are formatted with the current date and time upon generation. Placeholders consist of a percent sign followed by a letter indicating what should be inserted; for example, \\\"%Y\\\" will insert the current year; a campaign template named \\\"Campaign for %y\\\" would generate a campaign called \\\"Campaign for 2020\\\" (assuming the year at generation time is 2020). Valid placeholders are the date/time conversion suffix characters supported by [java.util.Formatter](https://docs.oracle.com/javase/8/docs/api/java/util/Formatter.html). Requires roles ORG_ADMIN.\n * @summary Generate a Campaign from Template\n * @param {CertificationCampaignsApiStartGenerateCampaignTemplateRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof CertificationCampaignsApi\n */\n CertificationCampaignsApi.prototype.startGenerateCampaignTemplate = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.CertificationCampaignsApiFp)(this.configuration).startGenerateCampaignTemplate(requestParameters.id, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * Allows updating individual fields on a campaign using the [JSON Patch](https://tools.ietf.org/html/rfc6902) standard.\n * @summary Update a Campaign\n * @param {CertificationCampaignsApiUpdateCampaignRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof CertificationCampaignsApi\n */\n CertificationCampaignsApi.prototype.updateCampaign = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.CertificationCampaignsApiFp)(this.configuration).updateCampaign(requestParameters.id, requestParameters.jsonPatchOperation, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n return CertificationCampaignsApi;\n}(base_1.BaseAPI));\nexports.CertificationCampaignsApi = CertificationCampaignsApi;\n/**\n * CertificationSummariesApi - axios parameter creator\n * @export\n */\nvar CertificationSummariesApiAxiosParamCreator = function (configuration) {\n var _this = this;\n return {\n /**\n * This API returns a list of access summaries for the specified identity campaign certification and type. A token with ORG_ADMIN or CERT_ADMIN authority is required to call this API. Reviewers for this certification can also call this API.\n * @summary Access Summaries\n * @param {string} id The identity campaign certification ID\n * @param {'ROLE' | 'ACCESS_PROFILE' | 'ENTITLEMENT'} type The type of access review item to retrieve summaries for\n * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **completed**: *eq, ne* **access.id**: *eq, in* **access.name**: *eq, sw* **entitlement.sourceName**: *eq, sw* **accessProfile.sourceName**: *eq, sw*\n * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **access.name**\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getIdentityAccessSummaries: function (id, type, limit, offset, count, filters, sorters, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'id' is not null or undefined\n (0, common_1.assertParamExists)('getIdentityAccessSummaries', 'id', id);\n // verify required parameter 'type' is not null or undefined\n (0, common_1.assertParamExists)('getIdentityAccessSummaries', 'type', type);\n localVarPath = \"/certifications/{id}/access-summaries/{type}\"\n .replace(\"{\".concat(\"id\", \"}\"), encodeURIComponent(String(id)))\n .replace(\"{\".concat(\"type\", \"}\"), encodeURIComponent(String(type)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n if (limit !== undefined) {\n localVarQueryParameter['limit'] = limit;\n }\n if (offset !== undefined) {\n localVarQueryParameter['offset'] = offset;\n }\n if (count !== undefined) {\n localVarQueryParameter['count'] = count;\n }\n if (filters !== undefined) {\n localVarQueryParameter['filters'] = filters;\n }\n if (sorters !== undefined) {\n localVarQueryParameter['sorters'] = sorters;\n }\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This API returns a summary of the decisions made on an identity campaign certification. The decisions are summarized by type. A token with ORG_ADMIN or CERT_ADMIN authority is required to call this API. Reviewers for this certification can also call this API.\n * @summary Summary of Certification Decisions\n * @param {string} id The certification ID\n * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **identitySummary.id**: *eq, in*\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getIdentityDecisionSummary: function (id, filters, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'id' is not null or undefined\n (0, common_1.assertParamExists)('getIdentityDecisionSummary', 'id', id);\n localVarPath = \"/certifications/{id}/decision-summary\"\n .replace(\"{\".concat(\"id\", \"}\"), encodeURIComponent(String(id)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n if (filters !== undefined) {\n localVarQueryParameter['filters'] = filters;\n }\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This API returns a list of the identity summaries for a specific identity campaign certification. A token with ORG_ADMIN or CERT_ADMIN authority is required to call this API. Reviewers for this certification can also call this API.\n * @summary Identity Summaries for Campaign Certification\n * @param {string} id The identity campaign certification ID\n * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **id**: *eq, in* **completed**: *eq, ne* **name**: *eq, sw*\n * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **name**\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getIdentitySummaries: function (id, limit, offset, count, filters, sorters, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'id' is not null or undefined\n (0, common_1.assertParamExists)('getIdentitySummaries', 'id', id);\n localVarPath = \"/certifications/{id}/identity-summaries\"\n .replace(\"{\".concat(\"id\", \"}\"), encodeURIComponent(String(id)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n if (limit !== undefined) {\n localVarQueryParameter['limit'] = limit;\n }\n if (offset !== undefined) {\n localVarQueryParameter['offset'] = offset;\n }\n if (count !== undefined) {\n localVarQueryParameter['count'] = count;\n }\n if (filters !== undefined) {\n localVarQueryParameter['filters'] = filters;\n }\n if (sorters !== undefined) {\n localVarQueryParameter['sorters'] = sorters;\n }\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This API returns the summary for an identity on a specified identity campaign certification. A token with ORG_ADMIN or CERT_ADMIN authority is required to call this API. Reviewers for this certification can also call this API.\n * @summary Summary for Identity\n * @param {string} id The identity campaign certification ID\n * @param {string} identitySummaryId The identity summary ID\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getIdentitySummary: function (id, identitySummaryId, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'id' is not null or undefined\n (0, common_1.assertParamExists)('getIdentitySummary', 'id', id);\n // verify required parameter 'identitySummaryId' is not null or undefined\n (0, common_1.assertParamExists)('getIdentitySummary', 'identitySummaryId', identitySummaryId);\n localVarPath = \"/certifications/{id}/identity-summaries/{identitySummaryId}\"\n .replace(\"{\".concat(\"id\", \"}\"), encodeURIComponent(String(id)))\n .replace(\"{\".concat(\"identitySummaryId\", \"}\"), encodeURIComponent(String(identitySummaryId)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n };\n};\nexports.CertificationSummariesApiAxiosParamCreator = CertificationSummariesApiAxiosParamCreator;\n/**\n * CertificationSummariesApi - functional programming interface\n * @export\n */\nvar CertificationSummariesApiFp = function (configuration) {\n var localVarAxiosParamCreator = (0, exports.CertificationSummariesApiAxiosParamCreator)(configuration);\n return {\n /**\n * This API returns a list of access summaries for the specified identity campaign certification and type. A token with ORG_ADMIN or CERT_ADMIN authority is required to call this API. Reviewers for this certification can also call this API.\n * @summary Access Summaries\n * @param {string} id The identity campaign certification ID\n * @param {'ROLE' | 'ACCESS_PROFILE' | 'ENTITLEMENT'} type The type of access review item to retrieve summaries for\n * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **completed**: *eq, ne* **access.id**: *eq, in* **access.name**: *eq, sw* **entitlement.sourceName**: *eq, sw* **accessProfile.sourceName**: *eq, sw*\n * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **access.name**\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getIdentityAccessSummaries: function (id, type, limit, offset, count, filters, sorters, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.getIdentityAccessSummaries(id, type, limit, offset, count, filters, sorters, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This API returns a summary of the decisions made on an identity campaign certification. The decisions are summarized by type. A token with ORG_ADMIN or CERT_ADMIN authority is required to call this API. Reviewers for this certification can also call this API.\n * @summary Summary of Certification Decisions\n * @param {string} id The certification ID\n * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **identitySummary.id**: *eq, in*\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getIdentityDecisionSummary: function (id, filters, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.getIdentityDecisionSummary(id, filters, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This API returns a list of the identity summaries for a specific identity campaign certification. A token with ORG_ADMIN or CERT_ADMIN authority is required to call this API. Reviewers for this certification can also call this API.\n * @summary Identity Summaries for Campaign Certification\n * @param {string} id The identity campaign certification ID\n * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **id**: *eq, in* **completed**: *eq, ne* **name**: *eq, sw*\n * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **name**\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getIdentitySummaries: function (id, limit, offset, count, filters, sorters, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.getIdentitySummaries(id, limit, offset, count, filters, sorters, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This API returns the summary for an identity on a specified identity campaign certification. A token with ORG_ADMIN or CERT_ADMIN authority is required to call this API. Reviewers for this certification can also call this API.\n * @summary Summary for Identity\n * @param {string} id The identity campaign certification ID\n * @param {string} identitySummaryId The identity summary ID\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getIdentitySummary: function (id, identitySummaryId, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.getIdentitySummary(id, identitySummaryId, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n };\n};\nexports.CertificationSummariesApiFp = CertificationSummariesApiFp;\n/**\n * CertificationSummariesApi - factory interface\n * @export\n */\nvar CertificationSummariesApiFactory = function (configuration, basePath, axios) {\n var localVarFp = (0, exports.CertificationSummariesApiFp)(configuration);\n return {\n /**\n * This API returns a list of access summaries for the specified identity campaign certification and type. A token with ORG_ADMIN or CERT_ADMIN authority is required to call this API. Reviewers for this certification can also call this API.\n * @summary Access Summaries\n * @param {string} id The identity campaign certification ID\n * @param {'ROLE' | 'ACCESS_PROFILE' | 'ENTITLEMENT'} type The type of access review item to retrieve summaries for\n * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **completed**: *eq, ne* **access.id**: *eq, in* **access.name**: *eq, sw* **entitlement.sourceName**: *eq, sw* **accessProfile.sourceName**: *eq, sw*\n * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **access.name**\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getIdentityAccessSummaries: function (id, type, limit, offset, count, filters, sorters, axiosOptions) {\n return localVarFp.getIdentityAccessSummaries(id, type, limit, offset, count, filters, sorters, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This API returns a summary of the decisions made on an identity campaign certification. The decisions are summarized by type. A token with ORG_ADMIN or CERT_ADMIN authority is required to call this API. Reviewers for this certification can also call this API.\n * @summary Summary of Certification Decisions\n * @param {string} id The certification ID\n * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **identitySummary.id**: *eq, in*\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getIdentityDecisionSummary: function (id, filters, axiosOptions) {\n return localVarFp.getIdentityDecisionSummary(id, filters, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This API returns a list of the identity summaries for a specific identity campaign certification. A token with ORG_ADMIN or CERT_ADMIN authority is required to call this API. Reviewers for this certification can also call this API.\n * @summary Identity Summaries for Campaign Certification\n * @param {string} id The identity campaign certification ID\n * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **id**: *eq, in* **completed**: *eq, ne* **name**: *eq, sw*\n * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **name**\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getIdentitySummaries: function (id, limit, offset, count, filters, sorters, axiosOptions) {\n return localVarFp.getIdentitySummaries(id, limit, offset, count, filters, sorters, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This API returns the summary for an identity on a specified identity campaign certification. A token with ORG_ADMIN or CERT_ADMIN authority is required to call this API. Reviewers for this certification can also call this API.\n * @summary Summary for Identity\n * @param {string} id The identity campaign certification ID\n * @param {string} identitySummaryId The identity summary ID\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getIdentitySummary: function (id, identitySummaryId, axiosOptions) {\n return localVarFp.getIdentitySummary(id, identitySummaryId, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n };\n};\nexports.CertificationSummariesApiFactory = CertificationSummariesApiFactory;\n/**\n * CertificationSummariesApi - object-oriented interface\n * @export\n * @class CertificationSummariesApi\n * @extends {BaseAPI}\n */\nvar CertificationSummariesApi = /** @class */ (function (_super) {\n __extends(CertificationSummariesApi, _super);\n function CertificationSummariesApi() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n * This API returns a list of access summaries for the specified identity campaign certification and type. A token with ORG_ADMIN or CERT_ADMIN authority is required to call this API. Reviewers for this certification can also call this API.\n * @summary Access Summaries\n * @param {CertificationSummariesApiGetIdentityAccessSummariesRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof CertificationSummariesApi\n */\n CertificationSummariesApi.prototype.getIdentityAccessSummaries = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.CertificationSummariesApiFp)(this.configuration).getIdentityAccessSummaries(requestParameters.id, requestParameters.type, requestParameters.limit, requestParameters.offset, requestParameters.count, requestParameters.filters, requestParameters.sorters, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This API returns a summary of the decisions made on an identity campaign certification. The decisions are summarized by type. A token with ORG_ADMIN or CERT_ADMIN authority is required to call this API. Reviewers for this certification can also call this API.\n * @summary Summary of Certification Decisions\n * @param {CertificationSummariesApiGetIdentityDecisionSummaryRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof CertificationSummariesApi\n */\n CertificationSummariesApi.prototype.getIdentityDecisionSummary = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.CertificationSummariesApiFp)(this.configuration).getIdentityDecisionSummary(requestParameters.id, requestParameters.filters, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This API returns a list of the identity summaries for a specific identity campaign certification. A token with ORG_ADMIN or CERT_ADMIN authority is required to call this API. Reviewers for this certification can also call this API.\n * @summary Identity Summaries for Campaign Certification\n * @param {CertificationSummariesApiGetIdentitySummariesRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof CertificationSummariesApi\n */\n CertificationSummariesApi.prototype.getIdentitySummaries = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.CertificationSummariesApiFp)(this.configuration).getIdentitySummaries(requestParameters.id, requestParameters.limit, requestParameters.offset, requestParameters.count, requestParameters.filters, requestParameters.sorters, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This API returns the summary for an identity on a specified identity campaign certification. A token with ORG_ADMIN or CERT_ADMIN authority is required to call this API. Reviewers for this certification can also call this API.\n * @summary Summary for Identity\n * @param {CertificationSummariesApiGetIdentitySummaryRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof CertificationSummariesApi\n */\n CertificationSummariesApi.prototype.getIdentitySummary = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.CertificationSummariesApiFp)(this.configuration).getIdentitySummary(requestParameters.id, requestParameters.identitySummaryId, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n return CertificationSummariesApi;\n}(base_1.BaseAPI));\nexports.CertificationSummariesApi = CertificationSummariesApi;\n/**\n * CertificationsApi - axios parameter creator\n * @export\n */\nvar CertificationsApiAxiosParamCreator = function (configuration) {\n var _this = this;\n return {\n /**\n * This API returns the certification task for the specified ID. A token with ORG_ADMIN or CERT_ADMIN authority is required to call this API. Reviewers for the specified certification can also call this API.\n * @summary Certification Task by ID\n * @param {string} id The task ID\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getCertificationTask: function (id, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'id' is not null or undefined\n (0, common_1.assertParamExists)('getCertificationTask', 'id', id);\n localVarPath = \"/certification-tasks/{id}\"\n .replace(\"{\".concat(\"id\", \"}\"), encodeURIComponent(String(id)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This API returns a single identity campaign certification by its ID. A token with ORG_ADMIN or CERT_ADMIN authority is required to call this API. Reviewers for this certification can also call this API. This API does not support requests for certifications assigned to Governance Groups.\n * @summary Identity Certification by ID\n * @param {string} id The certification id\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getIdentityCertification: function (id, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'id' is not null or undefined\n (0, common_1.assertParamExists)('getIdentityCertification', 'id', id);\n localVarPath = \"/certifications/{id}\"\n .replace(\"{\".concat(\"id\", \"}\"), encodeURIComponent(String(id)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This API returns the permissions associated with an entitlement certification item based on the certification item\\'s ID. A token with ORG_ADMIN or CERT_ADMIN authority is required to call this API. Reviewers for this certification can also call this API.\n * @summary Permissions for Entitlement Certification Item\n * @param {string} certificationId The certification ID\n * @param {string} itemId The certification item ID\n * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **target**: *eq, sw* **rights**: *ca* Supported composite operators: *and, or* All field values (second filter operands) are case-insensitive for this API. Only a single *and* or *or* composite filter operator may be used. It must also be used between a target filter and a rights filter, not between 2 filters for the same field. For example, the following is valid: `?filters=rights+ca+(%22CREATE%22)+and+target+eq+%22SYS.OBJAUTH2%22` The following is invalid: 1?filters=rights+ca+(%22CREATE%22)+and+rights+ca+(%SELECT%22)1\n * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getIdentityCertificationItemPermissions: function (certificationId, itemId, filters, limit, offset, count, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'certificationId' is not null or undefined\n (0, common_1.assertParamExists)('getIdentityCertificationItemPermissions', 'certificationId', certificationId);\n // verify required parameter 'itemId' is not null or undefined\n (0, common_1.assertParamExists)('getIdentityCertificationItemPermissions', 'itemId', itemId);\n localVarPath = \"/certifications/{certificationId}/access-review-items/{itemId}/permissions\"\n .replace(\"{\".concat(\"certificationId\", \"}\"), encodeURIComponent(String(certificationId)))\n .replace(\"{\".concat(\"itemId\", \"}\"), encodeURIComponent(String(itemId)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n if (filters !== undefined) {\n localVarQueryParameter['filters'] = filters;\n }\n if (limit !== undefined) {\n localVarQueryParameter['limit'] = limit;\n }\n if (offset !== undefined) {\n localVarQueryParameter['offset'] = offset;\n }\n if (count !== undefined) {\n localVarQueryParameter['count'] = count;\n }\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This API returns a list of pending (`QUEUED` or `IN_PROGRESS`) certification tasks. Any authenticated token can call this API, but only certification tasks you are authorized to review will be returned.\n * @summary List of Pending Certification Tasks\n * @param {string} [reviewerIdentity] The ID of reviewer identity. *me* indicates the current user.\n * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **id**: *eq, in* **targetId**: *eq, in* **type**: *eq, in*\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getPendingCertificationTasks: function (reviewerIdentity, limit, offset, count, filters, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n localVarPath = \"/certification-tasks\";\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n if (reviewerIdentity !== undefined) {\n localVarQueryParameter['reviewer-identity'] = reviewerIdentity;\n }\n if (limit !== undefined) {\n localVarQueryParameter['limit'] = limit;\n }\n if (offset !== undefined) {\n localVarQueryParameter['offset'] = offset;\n }\n if (count !== undefined) {\n localVarQueryParameter['count'] = count;\n }\n if (filters !== undefined) {\n localVarQueryParameter['filters'] = filters;\n }\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This API returns a list of reviewers for the certification. A token with ORG_ADMIN or CERT_ADMIN authority is required to call this API. Reviewers for this certification can also call this API.\n * @summary List of Reviewers for certification\n * @param {string} id The certification ID\n * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **id**: *eq, in* **name**: *eq, sw* **email**: *eq, sw*\n * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **name, email**\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n listCertificationReviewers: function (id, limit, offset, count, filters, sorters, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'id' is not null or undefined\n (0, common_1.assertParamExists)('listCertificationReviewers', 'id', id);\n localVarPath = \"/certifications/{id}/reviewers\"\n .replace(\"{\".concat(\"id\", \"}\"), encodeURIComponent(String(id)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n if (limit !== undefined) {\n localVarQueryParameter['limit'] = limit;\n }\n if (offset !== undefined) {\n localVarQueryParameter['offset'] = offset;\n }\n if (count !== undefined) {\n localVarQueryParameter['count'] = count;\n }\n if (filters !== undefined) {\n localVarQueryParameter['filters'] = filters;\n }\n if (sorters !== undefined) {\n localVarQueryParameter['sorters'] = sorters;\n }\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This API returns a list of access review items for an identity campaign certification. A token with ORG_ADMIN or CERT_ADMIN authority is required to call this API. Reviewers for this certification can also call this API. This API does not support requests for certifications assigned to Governance Groups.\n * @summary List of Access Review Items\n * @param {string} id The identity campaign certification ID\n * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **id**: *eq, in* **type**: *eq* **access.type**: *eq* **completed**: *eq, ne* **identitySummary.id**: *eq, in* **identitySummary.name**: *eq, sw* **access.id**: *eq, in* **access.name**: *eq, sw* **entitlement.sourceName**: *eq, sw* **accessProfile.sourceName**: *eq, sw*\n * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **identitySummary.name, access.name, access.type, entitlement.sourceName, accessProfile.sourceName**\n * @param {string} [entitlements] Filter results to view access review items that pertain to any of the specified comma-separated entitlement IDs. An error will occur if this param is used with **access-profiles** or **roles** as only one of these query params can be used at a time.\n * @param {string} [accessProfiles] Filter results to view access review items that pertain to any of the specified comma-separated access-profle IDs. An error will occur if this param is used with **entitlements** or **roles** as only one of these query params can be used at a time.\n * @param {string} [roles] Filter results to view access review items that pertain to any of the specified comma-separated role IDs. An error will occur if this param is used with **entitlements** or **access-profiles** as only one of these query params can be used at a time.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n listIdentityAccessReviewItems: function (id, limit, offset, count, filters, sorters, entitlements, accessProfiles, roles, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'id' is not null or undefined\n (0, common_1.assertParamExists)('listIdentityAccessReviewItems', 'id', id);\n localVarPath = \"/certifications/{id}/access-review-items\"\n .replace(\"{\".concat(\"id\", \"}\"), encodeURIComponent(String(id)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n if (limit !== undefined) {\n localVarQueryParameter['limit'] = limit;\n }\n if (offset !== undefined) {\n localVarQueryParameter['offset'] = offset;\n }\n if (count !== undefined) {\n localVarQueryParameter['count'] = count;\n }\n if (filters !== undefined) {\n localVarQueryParameter['filters'] = filters;\n }\n if (sorters !== undefined) {\n localVarQueryParameter['sorters'] = sorters;\n }\n if (entitlements !== undefined) {\n localVarQueryParameter['entitlements'] = entitlements;\n }\n if (accessProfiles !== undefined) {\n localVarQueryParameter['access-profiles'] = accessProfiles;\n }\n if (roles !== undefined) {\n localVarQueryParameter['roles'] = roles;\n }\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This API returns a list of identity campaign certifications that satisfy the given query parameters. Any authenticated token can call this API, but only certifications you are authorized to review will be returned. This API does not support requests for certifications assigned to Governance Groups.\n * @summary Identity Campaign Certifications by IDs\n * @param {string} [reviewerIdentity] The ID of reviewer identity. *me* indicates the current user.\n * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **id**: *eq, in* **campaign.id**: *eq, in* **phase**: *eq* **completed**: *eq, ne*\n * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **name, due, signed**\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n listIdentityCertifications: function (reviewerIdentity, limit, offset, count, filters, sorters, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n localVarPath = \"/certifications\";\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n if (reviewerIdentity !== undefined) {\n localVarQueryParameter['reviewer-identity'] = reviewerIdentity;\n }\n if (limit !== undefined) {\n localVarQueryParameter['limit'] = limit;\n }\n if (offset !== undefined) {\n localVarQueryParameter['offset'] = offset;\n }\n if (count !== undefined) {\n localVarQueryParameter['count'] = count;\n }\n if (filters !== undefined) {\n localVarQueryParameter['filters'] = filters;\n }\n if (sorters !== undefined) {\n localVarQueryParameter['sorters'] = sorters;\n }\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * The API makes a decision to approve or revoke one or more identity campaign certification items. A token with ORG_ADMIN or CERT_ADMIN authority is required to call this API. Reviewers for this certification can also call this API. This API does not support requests for certifications assigned to Governance Groups.\n * @summary Decide on a Certification Item\n * @param {string} id The ID of the identity campaign certification on which to make decisions\n * @param {Array} reviewDecision A non-empty array of decisions to be made.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n makeIdentityDecision: function (id, reviewDecision, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'id' is not null or undefined\n (0, common_1.assertParamExists)('makeIdentityDecision', 'id', id);\n // verify required parameter 'reviewDecision' is not null or undefined\n (0, common_1.assertParamExists)('makeIdentityDecision', 'reviewDecision', reviewDecision);\n localVarPath = \"/certifications/{id}/decide\"\n .replace(\"{\".concat(\"id\", \"}\"), encodeURIComponent(String(id)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n localVarHeaderParameter['Content-Type'] = 'application/json';\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(reviewDecision, localVarRequestOptions, configuration);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This API reassigns up to 50 identities or items in an identity campaign certification to another reviewer. A token with ORG_ADMIN or CERT_ADMIN authority is required to call this API. Reviewers for this certification can also call this API. This API does not support requests for certifications assigned to Governance Groups.\n * @summary Reassign Identities or Items\n * @param {string} id The identity campaign certification ID\n * @param {ReviewReassign} reviewReassign\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n reassignIdentityCertifications: function (id, reviewReassign, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'id' is not null or undefined\n (0, common_1.assertParamExists)('reassignIdentityCertifications', 'id', id);\n // verify required parameter 'reviewReassign' is not null or undefined\n (0, common_1.assertParamExists)('reassignIdentityCertifications', 'reviewReassign', reviewReassign);\n localVarPath = \"/certifications/{id}/reassign\"\n .replace(\"{\".concat(\"id\", \"}\"), encodeURIComponent(String(id)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n localVarHeaderParameter['Content-Type'] = 'application/json';\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(reviewReassign, localVarRequestOptions, configuration);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This API finalizes all decisions made on an identity campaign certification and initiates any remediations required. A token with ORG_ADMIN or CERT_ADMIN authority is required to call this API. Reviewers for this certification can also call this API. This API does not support requests for certifications assigned to Governance Groups.\n * @summary Finalize Identity Certification Decisions\n * @param {string} id The identity campaign certification ID\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n signOffIdentityCertification: function (id, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'id' is not null or undefined\n (0, common_1.assertParamExists)('signOffIdentityCertification', 'id', id);\n localVarPath = \"/certifications/{id}/sign-off\"\n .replace(\"{\".concat(\"id\", \"}\"), encodeURIComponent(String(id)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This API initiates a task to reassign up to 500 identities or items in an identity campaign certification to another reviewer. The `certification-tasks` API can be used to get an updated status on the task and determine when the reassignment is complete. A token with ORG_ADMIN or CERT_ADMIN authority is required to call this API. Reviewers for this certification can also call this API.\n * @summary Reassign Certifications Asynchronously\n * @param {string} id The identity campaign certification ID\n * @param {ReviewReassign} reviewReassign\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n submitReassignCertsAsync: function (id, reviewReassign, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'id' is not null or undefined\n (0, common_1.assertParamExists)('submitReassignCertsAsync', 'id', id);\n // verify required parameter 'reviewReassign' is not null or undefined\n (0, common_1.assertParamExists)('submitReassignCertsAsync', 'reviewReassign', reviewReassign);\n localVarPath = \"/certifications/{id}/reassign-async\"\n .replace(\"{\".concat(\"id\", \"}\"), encodeURIComponent(String(id)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n localVarHeaderParameter['Content-Type'] = 'application/json';\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(reviewReassign, localVarRequestOptions, configuration);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n };\n};\nexports.CertificationsApiAxiosParamCreator = CertificationsApiAxiosParamCreator;\n/**\n * CertificationsApi - functional programming interface\n * @export\n */\nvar CertificationsApiFp = function (configuration) {\n var localVarAxiosParamCreator = (0, exports.CertificationsApiAxiosParamCreator)(configuration);\n return {\n /**\n * This API returns the certification task for the specified ID. A token with ORG_ADMIN or CERT_ADMIN authority is required to call this API. Reviewers for the specified certification can also call this API.\n * @summary Certification Task by ID\n * @param {string} id The task ID\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getCertificationTask: function (id, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.getCertificationTask(id, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This API returns a single identity campaign certification by its ID. A token with ORG_ADMIN or CERT_ADMIN authority is required to call this API. Reviewers for this certification can also call this API. This API does not support requests for certifications assigned to Governance Groups.\n * @summary Identity Certification by ID\n * @param {string} id The certification id\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getIdentityCertification: function (id, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.getIdentityCertification(id, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This API returns the permissions associated with an entitlement certification item based on the certification item\\'s ID. A token with ORG_ADMIN or CERT_ADMIN authority is required to call this API. Reviewers for this certification can also call this API.\n * @summary Permissions for Entitlement Certification Item\n * @param {string} certificationId The certification ID\n * @param {string} itemId The certification item ID\n * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **target**: *eq, sw* **rights**: *ca* Supported composite operators: *and, or* All field values (second filter operands) are case-insensitive for this API. Only a single *and* or *or* composite filter operator may be used. It must also be used between a target filter and a rights filter, not between 2 filters for the same field. For example, the following is valid: `?filters=rights+ca+(%22CREATE%22)+and+target+eq+%22SYS.OBJAUTH2%22` The following is invalid: 1?filters=rights+ca+(%22CREATE%22)+and+rights+ca+(%SELECT%22)1\n * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getIdentityCertificationItemPermissions: function (certificationId, itemId, filters, limit, offset, count, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.getIdentityCertificationItemPermissions(certificationId, itemId, filters, limit, offset, count, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This API returns a list of pending (`QUEUED` or `IN_PROGRESS`) certification tasks. Any authenticated token can call this API, but only certification tasks you are authorized to review will be returned.\n * @summary List of Pending Certification Tasks\n * @param {string} [reviewerIdentity] The ID of reviewer identity. *me* indicates the current user.\n * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **id**: *eq, in* **targetId**: *eq, in* **type**: *eq, in*\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getPendingCertificationTasks: function (reviewerIdentity, limit, offset, count, filters, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.getPendingCertificationTasks(reviewerIdentity, limit, offset, count, filters, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This API returns a list of reviewers for the certification. A token with ORG_ADMIN or CERT_ADMIN authority is required to call this API. Reviewers for this certification can also call this API.\n * @summary List of Reviewers for certification\n * @param {string} id The certification ID\n * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **id**: *eq, in* **name**: *eq, sw* **email**: *eq, sw*\n * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **name, email**\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n listCertificationReviewers: function (id, limit, offset, count, filters, sorters, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.listCertificationReviewers(id, limit, offset, count, filters, sorters, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This API returns a list of access review items for an identity campaign certification. A token with ORG_ADMIN or CERT_ADMIN authority is required to call this API. Reviewers for this certification can also call this API. This API does not support requests for certifications assigned to Governance Groups.\n * @summary List of Access Review Items\n * @param {string} id The identity campaign certification ID\n * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **id**: *eq, in* **type**: *eq* **access.type**: *eq* **completed**: *eq, ne* **identitySummary.id**: *eq, in* **identitySummary.name**: *eq, sw* **access.id**: *eq, in* **access.name**: *eq, sw* **entitlement.sourceName**: *eq, sw* **accessProfile.sourceName**: *eq, sw*\n * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **identitySummary.name, access.name, access.type, entitlement.sourceName, accessProfile.sourceName**\n * @param {string} [entitlements] Filter results to view access review items that pertain to any of the specified comma-separated entitlement IDs. An error will occur if this param is used with **access-profiles** or **roles** as only one of these query params can be used at a time.\n * @param {string} [accessProfiles] Filter results to view access review items that pertain to any of the specified comma-separated access-profle IDs. An error will occur if this param is used with **entitlements** or **roles** as only one of these query params can be used at a time.\n * @param {string} [roles] Filter results to view access review items that pertain to any of the specified comma-separated role IDs. An error will occur if this param is used with **entitlements** or **access-profiles** as only one of these query params can be used at a time.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n listIdentityAccessReviewItems: function (id, limit, offset, count, filters, sorters, entitlements, accessProfiles, roles, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.listIdentityAccessReviewItems(id, limit, offset, count, filters, sorters, entitlements, accessProfiles, roles, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This API returns a list of identity campaign certifications that satisfy the given query parameters. Any authenticated token can call this API, but only certifications you are authorized to review will be returned. This API does not support requests for certifications assigned to Governance Groups.\n * @summary Identity Campaign Certifications by IDs\n * @param {string} [reviewerIdentity] The ID of reviewer identity. *me* indicates the current user.\n * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **id**: *eq, in* **campaign.id**: *eq, in* **phase**: *eq* **completed**: *eq, ne*\n * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **name, due, signed**\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n listIdentityCertifications: function (reviewerIdentity, limit, offset, count, filters, sorters, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.listIdentityCertifications(reviewerIdentity, limit, offset, count, filters, sorters, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * The API makes a decision to approve or revoke one or more identity campaign certification items. A token with ORG_ADMIN or CERT_ADMIN authority is required to call this API. Reviewers for this certification can also call this API. This API does not support requests for certifications assigned to Governance Groups.\n * @summary Decide on a Certification Item\n * @param {string} id The ID of the identity campaign certification on which to make decisions\n * @param {Array} reviewDecision A non-empty array of decisions to be made.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n makeIdentityDecision: function (id, reviewDecision, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.makeIdentityDecision(id, reviewDecision, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This API reassigns up to 50 identities or items in an identity campaign certification to another reviewer. A token with ORG_ADMIN or CERT_ADMIN authority is required to call this API. Reviewers for this certification can also call this API. This API does not support requests for certifications assigned to Governance Groups.\n * @summary Reassign Identities or Items\n * @param {string} id The identity campaign certification ID\n * @param {ReviewReassign} reviewReassign\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n reassignIdentityCertifications: function (id, reviewReassign, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.reassignIdentityCertifications(id, reviewReassign, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This API finalizes all decisions made on an identity campaign certification and initiates any remediations required. A token with ORG_ADMIN or CERT_ADMIN authority is required to call this API. Reviewers for this certification can also call this API. This API does not support requests for certifications assigned to Governance Groups.\n * @summary Finalize Identity Certification Decisions\n * @param {string} id The identity campaign certification ID\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n signOffIdentityCertification: function (id, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.signOffIdentityCertification(id, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This API initiates a task to reassign up to 500 identities or items in an identity campaign certification to another reviewer. The `certification-tasks` API can be used to get an updated status on the task and determine when the reassignment is complete. A token with ORG_ADMIN or CERT_ADMIN authority is required to call this API. Reviewers for this certification can also call this API.\n * @summary Reassign Certifications Asynchronously\n * @param {string} id The identity campaign certification ID\n * @param {ReviewReassign} reviewReassign\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n submitReassignCertsAsync: function (id, reviewReassign, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.submitReassignCertsAsync(id, reviewReassign, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n };\n};\nexports.CertificationsApiFp = CertificationsApiFp;\n/**\n * CertificationsApi - factory interface\n * @export\n */\nvar CertificationsApiFactory = function (configuration, basePath, axios) {\n var localVarFp = (0, exports.CertificationsApiFp)(configuration);\n return {\n /**\n * This API returns the certification task for the specified ID. A token with ORG_ADMIN or CERT_ADMIN authority is required to call this API. Reviewers for the specified certification can also call this API.\n * @summary Certification Task by ID\n * @param {string} id The task ID\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getCertificationTask: function (id, axiosOptions) {\n return localVarFp.getCertificationTask(id, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This API returns a single identity campaign certification by its ID. A token with ORG_ADMIN or CERT_ADMIN authority is required to call this API. Reviewers for this certification can also call this API. This API does not support requests for certifications assigned to Governance Groups.\n * @summary Identity Certification by ID\n * @param {string} id The certification id\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getIdentityCertification: function (id, axiosOptions) {\n return localVarFp.getIdentityCertification(id, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This API returns the permissions associated with an entitlement certification item based on the certification item\\'s ID. A token with ORG_ADMIN or CERT_ADMIN authority is required to call this API. Reviewers for this certification can also call this API.\n * @summary Permissions for Entitlement Certification Item\n * @param {string} certificationId The certification ID\n * @param {string} itemId The certification item ID\n * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **target**: *eq, sw* **rights**: *ca* Supported composite operators: *and, or* All field values (second filter operands) are case-insensitive for this API. Only a single *and* or *or* composite filter operator may be used. It must also be used between a target filter and a rights filter, not between 2 filters for the same field. For example, the following is valid: `?filters=rights+ca+(%22CREATE%22)+and+target+eq+%22SYS.OBJAUTH2%22` The following is invalid: 1?filters=rights+ca+(%22CREATE%22)+and+rights+ca+(%SELECT%22)1\n * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getIdentityCertificationItemPermissions: function (certificationId, itemId, filters, limit, offset, count, axiosOptions) {\n return localVarFp.getIdentityCertificationItemPermissions(certificationId, itemId, filters, limit, offset, count, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This API returns a list of pending (`QUEUED` or `IN_PROGRESS`) certification tasks. Any authenticated token can call this API, but only certification tasks you are authorized to review will be returned.\n * @summary List of Pending Certification Tasks\n * @param {string} [reviewerIdentity] The ID of reviewer identity. *me* indicates the current user.\n * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **id**: *eq, in* **targetId**: *eq, in* **type**: *eq, in*\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getPendingCertificationTasks: function (reviewerIdentity, limit, offset, count, filters, axiosOptions) {\n return localVarFp.getPendingCertificationTasks(reviewerIdentity, limit, offset, count, filters, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This API returns a list of reviewers for the certification. A token with ORG_ADMIN or CERT_ADMIN authority is required to call this API. Reviewers for this certification can also call this API.\n * @summary List of Reviewers for certification\n * @param {string} id The certification ID\n * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **id**: *eq, in* **name**: *eq, sw* **email**: *eq, sw*\n * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **name, email**\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n listCertificationReviewers: function (id, limit, offset, count, filters, sorters, axiosOptions) {\n return localVarFp.listCertificationReviewers(id, limit, offset, count, filters, sorters, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This API returns a list of access review items for an identity campaign certification. A token with ORG_ADMIN or CERT_ADMIN authority is required to call this API. Reviewers for this certification can also call this API. This API does not support requests for certifications assigned to Governance Groups.\n * @summary List of Access Review Items\n * @param {string} id The identity campaign certification ID\n * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **id**: *eq, in* **type**: *eq* **access.type**: *eq* **completed**: *eq, ne* **identitySummary.id**: *eq, in* **identitySummary.name**: *eq, sw* **access.id**: *eq, in* **access.name**: *eq, sw* **entitlement.sourceName**: *eq, sw* **accessProfile.sourceName**: *eq, sw*\n * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **identitySummary.name, access.name, access.type, entitlement.sourceName, accessProfile.sourceName**\n * @param {string} [entitlements] Filter results to view access review items that pertain to any of the specified comma-separated entitlement IDs. An error will occur if this param is used with **access-profiles** or **roles** as only one of these query params can be used at a time.\n * @param {string} [accessProfiles] Filter results to view access review items that pertain to any of the specified comma-separated access-profle IDs. An error will occur if this param is used with **entitlements** or **roles** as only one of these query params can be used at a time.\n * @param {string} [roles] Filter results to view access review items that pertain to any of the specified comma-separated role IDs. An error will occur if this param is used with **entitlements** or **access-profiles** as only one of these query params can be used at a time.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n listIdentityAccessReviewItems: function (id, limit, offset, count, filters, sorters, entitlements, accessProfiles, roles, axiosOptions) {\n return localVarFp.listIdentityAccessReviewItems(id, limit, offset, count, filters, sorters, entitlements, accessProfiles, roles, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This API returns a list of identity campaign certifications that satisfy the given query parameters. Any authenticated token can call this API, but only certifications you are authorized to review will be returned. This API does not support requests for certifications assigned to Governance Groups.\n * @summary Identity Campaign Certifications by IDs\n * @param {string} [reviewerIdentity] The ID of reviewer identity. *me* indicates the current user.\n * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **id**: *eq, in* **campaign.id**: *eq, in* **phase**: *eq* **completed**: *eq, ne*\n * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **name, due, signed**\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n listIdentityCertifications: function (reviewerIdentity, limit, offset, count, filters, sorters, axiosOptions) {\n return localVarFp.listIdentityCertifications(reviewerIdentity, limit, offset, count, filters, sorters, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * The API makes a decision to approve or revoke one or more identity campaign certification items. A token with ORG_ADMIN or CERT_ADMIN authority is required to call this API. Reviewers for this certification can also call this API. This API does not support requests for certifications assigned to Governance Groups.\n * @summary Decide on a Certification Item\n * @param {string} id The ID of the identity campaign certification on which to make decisions\n * @param {Array} reviewDecision A non-empty array of decisions to be made.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n makeIdentityDecision: function (id, reviewDecision, axiosOptions) {\n return localVarFp.makeIdentityDecision(id, reviewDecision, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This API reassigns up to 50 identities or items in an identity campaign certification to another reviewer. A token with ORG_ADMIN or CERT_ADMIN authority is required to call this API. Reviewers for this certification can also call this API. This API does not support requests for certifications assigned to Governance Groups.\n * @summary Reassign Identities or Items\n * @param {string} id The identity campaign certification ID\n * @param {ReviewReassign} reviewReassign\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n reassignIdentityCertifications: function (id, reviewReassign, axiosOptions) {\n return localVarFp.reassignIdentityCertifications(id, reviewReassign, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This API finalizes all decisions made on an identity campaign certification and initiates any remediations required. A token with ORG_ADMIN or CERT_ADMIN authority is required to call this API. Reviewers for this certification can also call this API. This API does not support requests for certifications assigned to Governance Groups.\n * @summary Finalize Identity Certification Decisions\n * @param {string} id The identity campaign certification ID\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n signOffIdentityCertification: function (id, axiosOptions) {\n return localVarFp.signOffIdentityCertification(id, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This API initiates a task to reassign up to 500 identities or items in an identity campaign certification to another reviewer. The `certification-tasks` API can be used to get an updated status on the task and determine when the reassignment is complete. A token with ORG_ADMIN or CERT_ADMIN authority is required to call this API. Reviewers for this certification can also call this API.\n * @summary Reassign Certifications Asynchronously\n * @param {string} id The identity campaign certification ID\n * @param {ReviewReassign} reviewReassign\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n submitReassignCertsAsync: function (id, reviewReassign, axiosOptions) {\n return localVarFp.submitReassignCertsAsync(id, reviewReassign, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n };\n};\nexports.CertificationsApiFactory = CertificationsApiFactory;\n/**\n * CertificationsApi - object-oriented interface\n * @export\n * @class CertificationsApi\n * @extends {BaseAPI}\n */\nvar CertificationsApi = /** @class */ (function (_super) {\n __extends(CertificationsApi, _super);\n function CertificationsApi() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n * This API returns the certification task for the specified ID. A token with ORG_ADMIN or CERT_ADMIN authority is required to call this API. Reviewers for the specified certification can also call this API.\n * @summary Certification Task by ID\n * @param {CertificationsApiGetCertificationTaskRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof CertificationsApi\n */\n CertificationsApi.prototype.getCertificationTask = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.CertificationsApiFp)(this.configuration).getCertificationTask(requestParameters.id, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This API returns a single identity campaign certification by its ID. A token with ORG_ADMIN or CERT_ADMIN authority is required to call this API. Reviewers for this certification can also call this API. This API does not support requests for certifications assigned to Governance Groups.\n * @summary Identity Certification by ID\n * @param {CertificationsApiGetIdentityCertificationRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof CertificationsApi\n */\n CertificationsApi.prototype.getIdentityCertification = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.CertificationsApiFp)(this.configuration).getIdentityCertification(requestParameters.id, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This API returns the permissions associated with an entitlement certification item based on the certification item\\'s ID. A token with ORG_ADMIN or CERT_ADMIN authority is required to call this API. Reviewers for this certification can also call this API.\n * @summary Permissions for Entitlement Certification Item\n * @param {CertificationsApiGetIdentityCertificationItemPermissionsRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof CertificationsApi\n */\n CertificationsApi.prototype.getIdentityCertificationItemPermissions = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.CertificationsApiFp)(this.configuration).getIdentityCertificationItemPermissions(requestParameters.certificationId, requestParameters.itemId, requestParameters.filters, requestParameters.limit, requestParameters.offset, requestParameters.count, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This API returns a list of pending (`QUEUED` or `IN_PROGRESS`) certification tasks. Any authenticated token can call this API, but only certification tasks you are authorized to review will be returned.\n * @summary List of Pending Certification Tasks\n * @param {CertificationsApiGetPendingCertificationTasksRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof CertificationsApi\n */\n CertificationsApi.prototype.getPendingCertificationTasks = function (requestParameters, axiosOptions) {\n var _this = this;\n if (requestParameters === void 0) { requestParameters = {}; }\n return (0, exports.CertificationsApiFp)(this.configuration).getPendingCertificationTasks(requestParameters.reviewerIdentity, requestParameters.limit, requestParameters.offset, requestParameters.count, requestParameters.filters, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This API returns a list of reviewers for the certification. A token with ORG_ADMIN or CERT_ADMIN authority is required to call this API. Reviewers for this certification can also call this API.\n * @summary List of Reviewers for certification\n * @param {CertificationsApiListCertificationReviewersRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof CertificationsApi\n */\n CertificationsApi.prototype.listCertificationReviewers = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.CertificationsApiFp)(this.configuration).listCertificationReviewers(requestParameters.id, requestParameters.limit, requestParameters.offset, requestParameters.count, requestParameters.filters, requestParameters.sorters, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This API returns a list of access review items for an identity campaign certification. A token with ORG_ADMIN or CERT_ADMIN authority is required to call this API. Reviewers for this certification can also call this API. This API does not support requests for certifications assigned to Governance Groups.\n * @summary List of Access Review Items\n * @param {CertificationsApiListIdentityAccessReviewItemsRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof CertificationsApi\n */\n CertificationsApi.prototype.listIdentityAccessReviewItems = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.CertificationsApiFp)(this.configuration).listIdentityAccessReviewItems(requestParameters.id, requestParameters.limit, requestParameters.offset, requestParameters.count, requestParameters.filters, requestParameters.sorters, requestParameters.entitlements, requestParameters.accessProfiles, requestParameters.roles, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This API returns a list of identity campaign certifications that satisfy the given query parameters. Any authenticated token can call this API, but only certifications you are authorized to review will be returned. This API does not support requests for certifications assigned to Governance Groups.\n * @summary Identity Campaign Certifications by IDs\n * @param {CertificationsApiListIdentityCertificationsRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof CertificationsApi\n */\n CertificationsApi.prototype.listIdentityCertifications = function (requestParameters, axiosOptions) {\n var _this = this;\n if (requestParameters === void 0) { requestParameters = {}; }\n return (0, exports.CertificationsApiFp)(this.configuration).listIdentityCertifications(requestParameters.reviewerIdentity, requestParameters.limit, requestParameters.offset, requestParameters.count, requestParameters.filters, requestParameters.sorters, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * The API makes a decision to approve or revoke one or more identity campaign certification items. A token with ORG_ADMIN or CERT_ADMIN authority is required to call this API. Reviewers for this certification can also call this API. This API does not support requests for certifications assigned to Governance Groups.\n * @summary Decide on a Certification Item\n * @param {CertificationsApiMakeIdentityDecisionRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof CertificationsApi\n */\n CertificationsApi.prototype.makeIdentityDecision = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.CertificationsApiFp)(this.configuration).makeIdentityDecision(requestParameters.id, requestParameters.reviewDecision, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This API reassigns up to 50 identities or items in an identity campaign certification to another reviewer. A token with ORG_ADMIN or CERT_ADMIN authority is required to call this API. Reviewers for this certification can also call this API. This API does not support requests for certifications assigned to Governance Groups.\n * @summary Reassign Identities or Items\n * @param {CertificationsApiReassignIdentityCertificationsRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof CertificationsApi\n */\n CertificationsApi.prototype.reassignIdentityCertifications = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.CertificationsApiFp)(this.configuration).reassignIdentityCertifications(requestParameters.id, requestParameters.reviewReassign, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This API finalizes all decisions made on an identity campaign certification and initiates any remediations required. A token with ORG_ADMIN or CERT_ADMIN authority is required to call this API. Reviewers for this certification can also call this API. This API does not support requests for certifications assigned to Governance Groups.\n * @summary Finalize Identity Certification Decisions\n * @param {CertificationsApiSignOffIdentityCertificationRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof CertificationsApi\n */\n CertificationsApi.prototype.signOffIdentityCertification = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.CertificationsApiFp)(this.configuration).signOffIdentityCertification(requestParameters.id, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This API initiates a task to reassign up to 500 identities or items in an identity campaign certification to another reviewer. The `certification-tasks` API can be used to get an updated status on the task and determine when the reassignment is complete. A token with ORG_ADMIN or CERT_ADMIN authority is required to call this API. Reviewers for this certification can also call this API.\n * @summary Reassign Certifications Asynchronously\n * @param {CertificationsApiSubmitReassignCertsAsyncRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof CertificationsApi\n */\n CertificationsApi.prototype.submitReassignCertsAsync = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.CertificationsApiFp)(this.configuration).submitReassignCertsAsync(requestParameters.id, requestParameters.reviewReassign, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n return CertificationsApi;\n}(base_1.BaseAPI));\nexports.CertificationsApi = CertificationsApi;\n/**\n * GlobalTenantSecuritySettingsApi - axios parameter creator\n * @export\n */\nvar GlobalTenantSecuritySettingsApiAxiosParamCreator = function (configuration) {\n var _this = this;\n return {\n /**\n * This API returns the details of an org\\'s network auth configuration. Requires security scope of: \\'sp:auth-org:create\\'\n * @summary Create security network configuration.\n * @param {NetworkConfiguration} networkConfiguration Network configuration creation request body. The following constraints ensure the request body conforms to certain logical guidelines, which are: 1. Each string element in the range array must be a valid ip address or ip subnet mask. 2. Each string element in the geolocation array must be 2 characters, and they can only be uppercase letters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n createAuthOrgNetworkConfig: function (networkConfiguration, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'networkConfiguration' is not null or undefined\n (0, common_1.assertParamExists)('createAuthOrgNetworkConfig', 'networkConfiguration', networkConfiguration);\n localVarPath = \"/auth-org/network-config\";\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n localVarHeaderParameter['Content-Type'] = 'application/json';\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(networkConfiguration, localVarRequestOptions, configuration);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This API returns the details of an org\\'s network auth configuration. Requires security scope of: \\'sp:auth-org:read\\'\n * @summary Get security network configuration.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getAuthOrgNetworkConfig: function (axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n localVarPath = \"/auth-org/network-config\";\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This API updates an existing network configuration for an org using PATCH Requires security scope of: \\'sp:auth-org:update\\'\n * @summary Update security network configuration.\n * @param {Array} jsonPatchOperation A list of auth org network configuration update operations according to the [JSON Patch](https://tools.ietf.org/html/rfc6902) standard. Ensures that the patched Network Config conforms to certain logical guidelines, which are: 1. Each string element in the range array must be a valid ip address or ip subnet mask. 2. Each string element in the geolocation array must be 2 characters, and they can only be uppercase letters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n patchAuthOrgNetworkConfig: function (jsonPatchOperation, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'jsonPatchOperation' is not null or undefined\n (0, common_1.assertParamExists)('patchAuthOrgNetworkConfig', 'jsonPatchOperation', jsonPatchOperation);\n localVarPath = \"/auth-org/network-config\";\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'PATCH' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n localVarHeaderParameter['Content-Type'] = 'application/json-patch+json';\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(jsonPatchOperation, localVarRequestOptions, configuration);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n };\n};\nexports.GlobalTenantSecuritySettingsApiAxiosParamCreator = GlobalTenantSecuritySettingsApiAxiosParamCreator;\n/**\n * GlobalTenantSecuritySettingsApi - functional programming interface\n * @export\n */\nvar GlobalTenantSecuritySettingsApiFp = function (configuration) {\n var localVarAxiosParamCreator = (0, exports.GlobalTenantSecuritySettingsApiAxiosParamCreator)(configuration);\n return {\n /**\n * This API returns the details of an org\\'s network auth configuration. Requires security scope of: \\'sp:auth-org:create\\'\n * @summary Create security network configuration.\n * @param {NetworkConfiguration} networkConfiguration Network configuration creation request body. The following constraints ensure the request body conforms to certain logical guidelines, which are: 1. Each string element in the range array must be a valid ip address or ip subnet mask. 2. Each string element in the geolocation array must be 2 characters, and they can only be uppercase letters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n createAuthOrgNetworkConfig: function (networkConfiguration, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.createAuthOrgNetworkConfig(networkConfiguration, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This API returns the details of an org\\'s network auth configuration. Requires security scope of: \\'sp:auth-org:read\\'\n * @summary Get security network configuration.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getAuthOrgNetworkConfig: function (axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.getAuthOrgNetworkConfig(axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This API updates an existing network configuration for an org using PATCH Requires security scope of: \\'sp:auth-org:update\\'\n * @summary Update security network configuration.\n * @param {Array} jsonPatchOperation A list of auth org network configuration update operations according to the [JSON Patch](https://tools.ietf.org/html/rfc6902) standard. Ensures that the patched Network Config conforms to certain logical guidelines, which are: 1. Each string element in the range array must be a valid ip address or ip subnet mask. 2. Each string element in the geolocation array must be 2 characters, and they can only be uppercase letters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n patchAuthOrgNetworkConfig: function (jsonPatchOperation, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.patchAuthOrgNetworkConfig(jsonPatchOperation, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n };\n};\nexports.GlobalTenantSecuritySettingsApiFp = GlobalTenantSecuritySettingsApiFp;\n/**\n * GlobalTenantSecuritySettingsApi - factory interface\n * @export\n */\nvar GlobalTenantSecuritySettingsApiFactory = function (configuration, basePath, axios) {\n var localVarFp = (0, exports.GlobalTenantSecuritySettingsApiFp)(configuration);\n return {\n /**\n * This API returns the details of an org\\'s network auth configuration. Requires security scope of: \\'sp:auth-org:create\\'\n * @summary Create security network configuration.\n * @param {NetworkConfiguration} networkConfiguration Network configuration creation request body. The following constraints ensure the request body conforms to certain logical guidelines, which are: 1. Each string element in the range array must be a valid ip address or ip subnet mask. 2. Each string element in the geolocation array must be 2 characters, and they can only be uppercase letters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n createAuthOrgNetworkConfig: function (networkConfiguration, axiosOptions) {\n return localVarFp.createAuthOrgNetworkConfig(networkConfiguration, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This API returns the details of an org\\'s network auth configuration. Requires security scope of: \\'sp:auth-org:read\\'\n * @summary Get security network configuration.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getAuthOrgNetworkConfig: function (axiosOptions) {\n return localVarFp.getAuthOrgNetworkConfig(axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This API updates an existing network configuration for an org using PATCH Requires security scope of: \\'sp:auth-org:update\\'\n * @summary Update security network configuration.\n * @param {Array} jsonPatchOperation A list of auth org network configuration update operations according to the [JSON Patch](https://tools.ietf.org/html/rfc6902) standard. Ensures that the patched Network Config conforms to certain logical guidelines, which are: 1. Each string element in the range array must be a valid ip address or ip subnet mask. 2. Each string element in the geolocation array must be 2 characters, and they can only be uppercase letters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n patchAuthOrgNetworkConfig: function (jsonPatchOperation, axiosOptions) {\n return localVarFp.patchAuthOrgNetworkConfig(jsonPatchOperation, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n };\n};\nexports.GlobalTenantSecuritySettingsApiFactory = GlobalTenantSecuritySettingsApiFactory;\n/**\n * GlobalTenantSecuritySettingsApi - object-oriented interface\n * @export\n * @class GlobalTenantSecuritySettingsApi\n * @extends {BaseAPI}\n */\nvar GlobalTenantSecuritySettingsApi = /** @class */ (function (_super) {\n __extends(GlobalTenantSecuritySettingsApi, _super);\n function GlobalTenantSecuritySettingsApi() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n * This API returns the details of an org\\'s network auth configuration. Requires security scope of: \\'sp:auth-org:create\\'\n * @summary Create security network configuration.\n * @param {GlobalTenantSecuritySettingsApiCreateAuthOrgNetworkConfigRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof GlobalTenantSecuritySettingsApi\n */\n GlobalTenantSecuritySettingsApi.prototype.createAuthOrgNetworkConfig = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.GlobalTenantSecuritySettingsApiFp)(this.configuration).createAuthOrgNetworkConfig(requestParameters.networkConfiguration, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This API returns the details of an org\\'s network auth configuration. Requires security scope of: \\'sp:auth-org:read\\'\n * @summary Get security network configuration.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof GlobalTenantSecuritySettingsApi\n */\n GlobalTenantSecuritySettingsApi.prototype.getAuthOrgNetworkConfig = function (axiosOptions) {\n var _this = this;\n return (0, exports.GlobalTenantSecuritySettingsApiFp)(this.configuration).getAuthOrgNetworkConfig(axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This API updates an existing network configuration for an org using PATCH Requires security scope of: \\'sp:auth-org:update\\'\n * @summary Update security network configuration.\n * @param {GlobalTenantSecuritySettingsApiPatchAuthOrgNetworkConfigRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof GlobalTenantSecuritySettingsApi\n */\n GlobalTenantSecuritySettingsApi.prototype.patchAuthOrgNetworkConfig = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.GlobalTenantSecuritySettingsApiFp)(this.configuration).patchAuthOrgNetworkConfig(requestParameters.jsonPatchOperation, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n return GlobalTenantSecuritySettingsApi;\n}(base_1.BaseAPI));\nexports.GlobalTenantSecuritySettingsApi = GlobalTenantSecuritySettingsApi;\n/**\n * IdentityProfilesApi - axios parameter creator\n * @export\n */\nvar IdentityProfilesApiAxiosParamCreator = function (configuration) {\n var _this = this;\n return {\n /**\n * This deletes an Identity Profile based on ID. On success, this endpoint will return a reference to the bulk delete task result. A token with ORG_ADMIN authority is required to call this API. The following rights are required to access this endpoint: idn:identity-profile:delete\n * @summary Delete an Identity Profile\n * @param {string} identityProfileId The Identity Profile ID.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n deleteIdentityProfile: function (identityProfileId, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'identityProfileId' is not null or undefined\n (0, common_1.assertParamExists)('deleteIdentityProfile', 'identityProfileId', identityProfileId);\n localVarPath = \"/identity-profiles/{identity-profile-id}\"\n .replace(\"{\".concat(\"identity-profile-id\", \"}\"), encodeURIComponent(String(identityProfileId)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'DELETE' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This deletes multiple Identity Profiles via a list of supplied IDs. On success, this endpoint will return a reference to the bulk delete task result. A token with ORG_ADMIN authority is required to call this API. The following rights are required to access this endpoint: idn:identity-profile:delete\n * @summary Delete Identity Profiles\n * @param {Array} requestBody Identity Profile bulk delete request body.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n deleteIdentityProfiles: function (requestBody, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'requestBody' is not null or undefined\n (0, common_1.assertParamExists)('deleteIdentityProfiles', 'requestBody', requestBody);\n localVarPath = \"/identity-profiles/bulk-delete\";\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n localVarHeaderParameter['Content-Type'] = 'application/json';\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(requestBody, localVarRequestOptions, configuration);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This exports existing identity profiles in the format specified by the sp-config service.\n * @summary Export Identity Profiles\n * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **id**: *eq, ne* **name**: *eq, ne* **priority**: *eq, ne*\n * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **id, name, priority**\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n exportIdentityProfiles: function (limit, offset, count, filters, sorters, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n localVarPath = \"/identity-profiles/export\";\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n if (limit !== undefined) {\n localVarQueryParameter['limit'] = limit;\n }\n if (offset !== undefined) {\n localVarQueryParameter['offset'] = offset;\n }\n if (count !== undefined) {\n localVarQueryParameter['count'] = count;\n }\n if (filters !== undefined) {\n localVarQueryParameter['filters'] = filters;\n }\n if (sorters !== undefined) {\n localVarQueryParameter['sorters'] = sorters;\n }\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This returns the default identity attribute config. A token with ORG_ADMIN authority is required to call this API to get the default identity attribute config.\n * @summary Get default Identity Attribute Config\n * @param {string} identityProfileId The Identity Profile ID.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getDefaultIdentityAttributeConfig: function (identityProfileId, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'identityProfileId' is not null or undefined\n (0, common_1.assertParamExists)('getDefaultIdentityAttributeConfig', 'identityProfileId', identityProfileId);\n localVarPath = \"/identity-profiles/{identity-profile-id}/default-identity-attribute-config\"\n .replace(\"{\".concat(\"identity-profile-id\", \"}\"), encodeURIComponent(String(identityProfileId)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This returns a single Identity Profile based on ID. A token with ORG_ADMIN or API authority is required to call this API.\n * @summary Get single Identity Profile\n * @param {string} identityProfileId The Identity Profile ID.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getIdentityProfile: function (identityProfileId, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'identityProfileId' is not null or undefined\n (0, common_1.assertParamExists)('getIdentityProfile', 'identityProfileId', identityProfileId);\n localVarPath = \"/identity-profiles/{identity-profile-id}\"\n .replace(\"{\".concat(\"identity-profile-id\", \"}\"), encodeURIComponent(String(identityProfileId)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This imports previously exported identity profiles.\n * @summary Import Identity Profiles\n * @param {Array} identityProfileExportedObject Previously exported Identity Profiles.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n importIdentityProfiles: function (identityProfileExportedObject, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'identityProfileExportedObject' is not null or undefined\n (0, common_1.assertParamExists)('importIdentityProfiles', 'identityProfileExportedObject', identityProfileExportedObject);\n localVarPath = \"/identity-profiles/import\";\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n localVarHeaderParameter['Content-Type'] = 'application/json';\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(identityProfileExportedObject, localVarRequestOptions, configuration);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This returns a list of Identity Profiles based on the specified query parameters. A token with ORG_ADMIN or API authority is required to call this API to get a list of Identity Profiles.\n * @summary Identity Profiles List\n * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **id**: *eq, ne, co, ge, gt, in, le, lt, isnull, sw* **name**: *eq, ne, co, in, le, lt, isnull, sw* **priority**: *eq, ne*\n * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **id, name, priority, created, modified, owner.id, owner.name**\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n listIdentityProfiles: function (limit, offset, count, filters, sorters, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n localVarPath = \"/identity-profiles\";\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n if (limit !== undefined) {\n localVarQueryParameter['limit'] = limit;\n }\n if (offset !== undefined) {\n localVarQueryParameter['offset'] = offset;\n }\n if (count !== undefined) {\n localVarQueryParameter['count'] = count;\n }\n if (filters !== undefined) {\n localVarQueryParameter['filters'] = filters;\n }\n if (sorters !== undefined) {\n localVarQueryParameter['sorters'] = sorters;\n }\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * Process identities under the profile A token with ORG_ADMIN authority is required to call this API.\n * @summary Process identities under profile\n * @param {string} identityProfileId The Identity Profile ID to be processed\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n syncIdentityProfile: function (identityProfileId, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'identityProfileId' is not null or undefined\n (0, common_1.assertParamExists)('syncIdentityProfile', 'identityProfileId', identityProfileId);\n localVarPath = \"/identity-profiles/{identity-profile-id}/process-identities\"\n .replace(\"{\".concat(\"identity-profile-id\", \"}\"), encodeURIComponent(String(identityProfileId)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n };\n};\nexports.IdentityProfilesApiAxiosParamCreator = IdentityProfilesApiAxiosParamCreator;\n/**\n * IdentityProfilesApi - functional programming interface\n * @export\n */\nvar IdentityProfilesApiFp = function (configuration) {\n var localVarAxiosParamCreator = (0, exports.IdentityProfilesApiAxiosParamCreator)(configuration);\n return {\n /**\n * This deletes an Identity Profile based on ID. On success, this endpoint will return a reference to the bulk delete task result. A token with ORG_ADMIN authority is required to call this API. The following rights are required to access this endpoint: idn:identity-profile:delete\n * @summary Delete an Identity Profile\n * @param {string} identityProfileId The Identity Profile ID.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n deleteIdentityProfile: function (identityProfileId, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.deleteIdentityProfile(identityProfileId, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This deletes multiple Identity Profiles via a list of supplied IDs. On success, this endpoint will return a reference to the bulk delete task result. A token with ORG_ADMIN authority is required to call this API. The following rights are required to access this endpoint: idn:identity-profile:delete\n * @summary Delete Identity Profiles\n * @param {Array} requestBody Identity Profile bulk delete request body.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n deleteIdentityProfiles: function (requestBody, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.deleteIdentityProfiles(requestBody, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This exports existing identity profiles in the format specified by the sp-config service.\n * @summary Export Identity Profiles\n * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **id**: *eq, ne* **name**: *eq, ne* **priority**: *eq, ne*\n * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **id, name, priority**\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n exportIdentityProfiles: function (limit, offset, count, filters, sorters, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.exportIdentityProfiles(limit, offset, count, filters, sorters, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This returns the default identity attribute config. A token with ORG_ADMIN authority is required to call this API to get the default identity attribute config.\n * @summary Get default Identity Attribute Config\n * @param {string} identityProfileId The Identity Profile ID.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getDefaultIdentityAttributeConfig: function (identityProfileId, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.getDefaultIdentityAttributeConfig(identityProfileId, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This returns a single Identity Profile based on ID. A token with ORG_ADMIN or API authority is required to call this API.\n * @summary Get single Identity Profile\n * @param {string} identityProfileId The Identity Profile ID.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getIdentityProfile: function (identityProfileId, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.getIdentityProfile(identityProfileId, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This imports previously exported identity profiles.\n * @summary Import Identity Profiles\n * @param {Array} identityProfileExportedObject Previously exported Identity Profiles.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n importIdentityProfiles: function (identityProfileExportedObject, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.importIdentityProfiles(identityProfileExportedObject, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This returns a list of Identity Profiles based on the specified query parameters. A token with ORG_ADMIN or API authority is required to call this API to get a list of Identity Profiles.\n * @summary Identity Profiles List\n * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **id**: *eq, ne, co, ge, gt, in, le, lt, isnull, sw* **name**: *eq, ne, co, in, le, lt, isnull, sw* **priority**: *eq, ne*\n * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **id, name, priority, created, modified, owner.id, owner.name**\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n listIdentityProfiles: function (limit, offset, count, filters, sorters, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.listIdentityProfiles(limit, offset, count, filters, sorters, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * Process identities under the profile A token with ORG_ADMIN authority is required to call this API.\n * @summary Process identities under profile\n * @param {string} identityProfileId The Identity Profile ID to be processed\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n syncIdentityProfile: function (identityProfileId, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.syncIdentityProfile(identityProfileId, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n };\n};\nexports.IdentityProfilesApiFp = IdentityProfilesApiFp;\n/**\n * IdentityProfilesApi - factory interface\n * @export\n */\nvar IdentityProfilesApiFactory = function (configuration, basePath, axios) {\n var localVarFp = (0, exports.IdentityProfilesApiFp)(configuration);\n return {\n /**\n * This deletes an Identity Profile based on ID. On success, this endpoint will return a reference to the bulk delete task result. A token with ORG_ADMIN authority is required to call this API. The following rights are required to access this endpoint: idn:identity-profile:delete\n * @summary Delete an Identity Profile\n * @param {string} identityProfileId The Identity Profile ID.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n deleteIdentityProfile: function (identityProfileId, axiosOptions) {\n return localVarFp.deleteIdentityProfile(identityProfileId, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This deletes multiple Identity Profiles via a list of supplied IDs. On success, this endpoint will return a reference to the bulk delete task result. A token with ORG_ADMIN authority is required to call this API. The following rights are required to access this endpoint: idn:identity-profile:delete\n * @summary Delete Identity Profiles\n * @param {Array} requestBody Identity Profile bulk delete request body.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n deleteIdentityProfiles: function (requestBody, axiosOptions) {\n return localVarFp.deleteIdentityProfiles(requestBody, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This exports existing identity profiles in the format specified by the sp-config service.\n * @summary Export Identity Profiles\n * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **id**: *eq, ne* **name**: *eq, ne* **priority**: *eq, ne*\n * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **id, name, priority**\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n exportIdentityProfiles: function (limit, offset, count, filters, sorters, axiosOptions) {\n return localVarFp.exportIdentityProfiles(limit, offset, count, filters, sorters, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This returns the default identity attribute config. A token with ORG_ADMIN authority is required to call this API to get the default identity attribute config.\n * @summary Get default Identity Attribute Config\n * @param {string} identityProfileId The Identity Profile ID.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getDefaultIdentityAttributeConfig: function (identityProfileId, axiosOptions) {\n return localVarFp.getDefaultIdentityAttributeConfig(identityProfileId, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This returns a single Identity Profile based on ID. A token with ORG_ADMIN or API authority is required to call this API.\n * @summary Get single Identity Profile\n * @param {string} identityProfileId The Identity Profile ID.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getIdentityProfile: function (identityProfileId, axiosOptions) {\n return localVarFp.getIdentityProfile(identityProfileId, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This imports previously exported identity profiles.\n * @summary Import Identity Profiles\n * @param {Array} identityProfileExportedObject Previously exported Identity Profiles.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n importIdentityProfiles: function (identityProfileExportedObject, axiosOptions) {\n return localVarFp.importIdentityProfiles(identityProfileExportedObject, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This returns a list of Identity Profiles based on the specified query parameters. A token with ORG_ADMIN or API authority is required to call this API to get a list of Identity Profiles.\n * @summary Identity Profiles List\n * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **id**: *eq, ne, co, ge, gt, in, le, lt, isnull, sw* **name**: *eq, ne, co, in, le, lt, isnull, sw* **priority**: *eq, ne*\n * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **id, name, priority, created, modified, owner.id, owner.name**\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n listIdentityProfiles: function (limit, offset, count, filters, sorters, axiosOptions) {\n return localVarFp.listIdentityProfiles(limit, offset, count, filters, sorters, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * Process identities under the profile A token with ORG_ADMIN authority is required to call this API.\n * @summary Process identities under profile\n * @param {string} identityProfileId The Identity Profile ID to be processed\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n syncIdentityProfile: function (identityProfileId, axiosOptions) {\n return localVarFp.syncIdentityProfile(identityProfileId, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n };\n};\nexports.IdentityProfilesApiFactory = IdentityProfilesApiFactory;\n/**\n * IdentityProfilesApi - object-oriented interface\n * @export\n * @class IdentityProfilesApi\n * @extends {BaseAPI}\n */\nvar IdentityProfilesApi = /** @class */ (function (_super) {\n __extends(IdentityProfilesApi, _super);\n function IdentityProfilesApi() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n * This deletes an Identity Profile based on ID. On success, this endpoint will return a reference to the bulk delete task result. A token with ORG_ADMIN authority is required to call this API. The following rights are required to access this endpoint: idn:identity-profile:delete\n * @summary Delete an Identity Profile\n * @param {IdentityProfilesApiDeleteIdentityProfileRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof IdentityProfilesApi\n */\n IdentityProfilesApi.prototype.deleteIdentityProfile = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.IdentityProfilesApiFp)(this.configuration).deleteIdentityProfile(requestParameters.identityProfileId, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This deletes multiple Identity Profiles via a list of supplied IDs. On success, this endpoint will return a reference to the bulk delete task result. A token with ORG_ADMIN authority is required to call this API. The following rights are required to access this endpoint: idn:identity-profile:delete\n * @summary Delete Identity Profiles\n * @param {IdentityProfilesApiDeleteIdentityProfilesRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof IdentityProfilesApi\n */\n IdentityProfilesApi.prototype.deleteIdentityProfiles = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.IdentityProfilesApiFp)(this.configuration).deleteIdentityProfiles(requestParameters.requestBody, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This exports existing identity profiles in the format specified by the sp-config service.\n * @summary Export Identity Profiles\n * @param {IdentityProfilesApiExportIdentityProfilesRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof IdentityProfilesApi\n */\n IdentityProfilesApi.prototype.exportIdentityProfiles = function (requestParameters, axiosOptions) {\n var _this = this;\n if (requestParameters === void 0) { requestParameters = {}; }\n return (0, exports.IdentityProfilesApiFp)(this.configuration).exportIdentityProfiles(requestParameters.limit, requestParameters.offset, requestParameters.count, requestParameters.filters, requestParameters.sorters, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This returns the default identity attribute config. A token with ORG_ADMIN authority is required to call this API to get the default identity attribute config.\n * @summary Get default Identity Attribute Config\n * @param {IdentityProfilesApiGetDefaultIdentityAttributeConfigRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof IdentityProfilesApi\n */\n IdentityProfilesApi.prototype.getDefaultIdentityAttributeConfig = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.IdentityProfilesApiFp)(this.configuration).getDefaultIdentityAttributeConfig(requestParameters.identityProfileId, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This returns a single Identity Profile based on ID. A token with ORG_ADMIN or API authority is required to call this API.\n * @summary Get single Identity Profile\n * @param {IdentityProfilesApiGetIdentityProfileRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof IdentityProfilesApi\n */\n IdentityProfilesApi.prototype.getIdentityProfile = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.IdentityProfilesApiFp)(this.configuration).getIdentityProfile(requestParameters.identityProfileId, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This imports previously exported identity profiles.\n * @summary Import Identity Profiles\n * @param {IdentityProfilesApiImportIdentityProfilesRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof IdentityProfilesApi\n */\n IdentityProfilesApi.prototype.importIdentityProfiles = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.IdentityProfilesApiFp)(this.configuration).importIdentityProfiles(requestParameters.identityProfileExportedObject, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This returns a list of Identity Profiles based on the specified query parameters. A token with ORG_ADMIN or API authority is required to call this API to get a list of Identity Profiles.\n * @summary Identity Profiles List\n * @param {IdentityProfilesApiListIdentityProfilesRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof IdentityProfilesApi\n */\n IdentityProfilesApi.prototype.listIdentityProfiles = function (requestParameters, axiosOptions) {\n var _this = this;\n if (requestParameters === void 0) { requestParameters = {}; }\n return (0, exports.IdentityProfilesApiFp)(this.configuration).listIdentityProfiles(requestParameters.limit, requestParameters.offset, requestParameters.count, requestParameters.filters, requestParameters.sorters, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * Process identities under the profile A token with ORG_ADMIN authority is required to call this API.\n * @summary Process identities under profile\n * @param {IdentityProfilesApiSyncIdentityProfileRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof IdentityProfilesApi\n */\n IdentityProfilesApi.prototype.syncIdentityProfile = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.IdentityProfilesApiFp)(this.configuration).syncIdentityProfile(requestParameters.identityProfileId, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n return IdentityProfilesApi;\n}(base_1.BaseAPI));\nexports.IdentityProfilesApi = IdentityProfilesApi;\n/**\n * LifecycleStatesApi - axios parameter creator\n * @export\n */\nvar LifecycleStatesApiAxiosParamCreator = function (configuration) {\n var _this = this;\n return {\n /**\n * This API creates a new Lifecycle State. A token with ORG_ADMIN or API authority is required to call this API.\n * @summary Create Lifecycle State\n * @param {string} identityProfileId Identity Profile ID\n * @param {LifecycleState} lifecycleState Lifecycle State\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n createLifecycleState: function (identityProfileId, lifecycleState, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'identityProfileId' is not null or undefined\n (0, common_1.assertParamExists)('createLifecycleState', 'identityProfileId', identityProfileId);\n // verify required parameter 'lifecycleState' is not null or undefined\n (0, common_1.assertParamExists)('createLifecycleState', 'lifecycleState', lifecycleState);\n localVarPath = \"/identity-profiles/{identity-profile-id}/lifecycle-states\"\n .replace(\"{\".concat(\"identity-profile-id\", \"}\"), encodeURIComponent(String(identityProfileId)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n localVarHeaderParameter['Content-Type'] = 'application/json';\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(lifecycleState, localVarRequestOptions, configuration);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This endpoint deletes the Lifecycle State using its ID. A token with API, or ORG_ADMIN authority is required to call this API.\n * @summary Delete Lifecycle State by ID\n * @param {string} identityProfileId Identity Profile ID\n * @param {string} lifecycleStateId Lifecycle State ID\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n deleteLifecycleState: function (identityProfileId, lifecycleStateId, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'identityProfileId' is not null or undefined\n (0, common_1.assertParamExists)('deleteLifecycleState', 'identityProfileId', identityProfileId);\n // verify required parameter 'lifecycleStateId' is not null or undefined\n (0, common_1.assertParamExists)('deleteLifecycleState', 'lifecycleStateId', lifecycleStateId);\n localVarPath = \"/identity-profiles/{identity-profile-id}/lifecycle-states/{lifecycle-state-id}\"\n .replace(\"{\".concat(\"identity-profile-id\", \"}\"), encodeURIComponent(String(identityProfileId)))\n .replace(\"{\".concat(\"lifecycle-state-id\", \"}\"), encodeURIComponent(String(lifecycleStateId)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'DELETE' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This endpoint retrieves a Lifecycle State. A token with ORG_ADMIN or API authority is required to call this API.\n * @summary Retrieves Lifecycle State\n * @param {string} identityProfileId Identity Profile ID\n * @param {string} lifecycleStateId Lifecycle State ID\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getLifecycleState: function (identityProfileId, lifecycleStateId, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'identityProfileId' is not null or undefined\n (0, common_1.assertParamExists)('getLifecycleState', 'identityProfileId', identityProfileId);\n // verify required parameter 'lifecycleStateId' is not null or undefined\n (0, common_1.assertParamExists)('getLifecycleState', 'lifecycleStateId', lifecycleStateId);\n localVarPath = \"/identity-profiles/{identity-profile-id}/lifecycle-states/{lifecycle-state-id}\"\n .replace(\"{\".concat(\"identity-profile-id\", \"}\"), encodeURIComponent(String(identityProfileId)))\n .replace(\"{\".concat(\"lifecycle-state-id\", \"}\"), encodeURIComponent(String(lifecycleStateId)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This end-point lists all the LifecycleStates associated with IdentityProfiles. A token with API, or ORG_ADMIN authority is required to call this API.\n * @summary Lists LifecycleStates\n * @param {string} identityProfileId The IdentityProfile id\n * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **created, modified**\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n listLifecycleStates: function (identityProfileId, limit, offset, count, sorters, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'identityProfileId' is not null or undefined\n (0, common_1.assertParamExists)('listLifecycleStates', 'identityProfileId', identityProfileId);\n localVarPath = \"/identity-profiles/{identity-profile-id}/lifecycle-states\"\n .replace(\"{\".concat(\"identity-profile-id\", \"}\"), encodeURIComponent(String(identityProfileId)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n if (limit !== undefined) {\n localVarQueryParameter['limit'] = limit;\n }\n if (offset !== undefined) {\n localVarQueryParameter['offset'] = offset;\n }\n if (count !== undefined) {\n localVarQueryParameter['count'] = count;\n }\n if (sorters !== undefined) {\n localVarQueryParameter['sorters'] = sorters;\n }\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This endpoint will set/update an identity\\'s lifecycle state to the one provided and updates the corresponding Identity Profile. A token with ORG_ADMIN or API authority is required to call this API.\n * @summary Set Lifecycle State\n * @param {string} identityId The ID of the identity to update\n * @param {SetLifecycleStateRequest} setLifecycleStateRequest\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n setLifecycleState: function (identityId, setLifecycleStateRequest, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'identityId' is not null or undefined\n (0, common_1.assertParamExists)('setLifecycleState', 'identityId', identityId);\n // verify required parameter 'setLifecycleStateRequest' is not null or undefined\n (0, common_1.assertParamExists)('setLifecycleState', 'setLifecycleStateRequest', setLifecycleStateRequest);\n localVarPath = \"/identities/{identity-id}/set-lifecycle-state\"\n .replace(\"{\".concat(\"identity-id\", \"}\"), encodeURIComponent(String(identityId)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n localVarHeaderParameter['Content-Type'] = 'application/json';\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(setLifecycleStateRequest, localVarRequestOptions, configuration);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This endpoint updates individual Lifecycle State fields using the [JSON Patch](https://tools.ietf.org/html/rfc6902) standard. A token with ORG_ADMIN or API authority is required to call this API.\n * @summary Update Lifecycle State\n * @param {string} identityProfileId Identity Profile ID\n * @param {string} lifecycleStateId Lifecycle State ID\n * @param {Array} jsonPatchOperation A list of lifecycle state update operations according to the [JSON Patch](https://tools.ietf.org/html/rfc6902) standard. The following fields can be updated: * enabled * description * accountActions * accessProfileIds * emailNotificationOption\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n updateLifecycleStates: function (identityProfileId, lifecycleStateId, jsonPatchOperation, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'identityProfileId' is not null or undefined\n (0, common_1.assertParamExists)('updateLifecycleStates', 'identityProfileId', identityProfileId);\n // verify required parameter 'lifecycleStateId' is not null or undefined\n (0, common_1.assertParamExists)('updateLifecycleStates', 'lifecycleStateId', lifecycleStateId);\n // verify required parameter 'jsonPatchOperation' is not null or undefined\n (0, common_1.assertParamExists)('updateLifecycleStates', 'jsonPatchOperation', jsonPatchOperation);\n localVarPath = \"/identity-profiles/{identity-profile-id}/lifecycle-states/{lifecycle-state-id}\"\n .replace(\"{\".concat(\"identity-profile-id\", \"}\"), encodeURIComponent(String(identityProfileId)))\n .replace(\"{\".concat(\"lifecycle-state-id\", \"}\"), encodeURIComponent(String(lifecycleStateId)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'PATCH' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n localVarHeaderParameter['Content-Type'] = 'application/json-patch+json';\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(jsonPatchOperation, localVarRequestOptions, configuration);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n };\n};\nexports.LifecycleStatesApiAxiosParamCreator = LifecycleStatesApiAxiosParamCreator;\n/**\n * LifecycleStatesApi - functional programming interface\n * @export\n */\nvar LifecycleStatesApiFp = function (configuration) {\n var localVarAxiosParamCreator = (0, exports.LifecycleStatesApiAxiosParamCreator)(configuration);\n return {\n /**\n * This API creates a new Lifecycle State. A token with ORG_ADMIN or API authority is required to call this API.\n * @summary Create Lifecycle State\n * @param {string} identityProfileId Identity Profile ID\n * @param {LifecycleState} lifecycleState Lifecycle State\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n createLifecycleState: function (identityProfileId, lifecycleState, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.createLifecycleState(identityProfileId, lifecycleState, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This endpoint deletes the Lifecycle State using its ID. A token with API, or ORG_ADMIN authority is required to call this API.\n * @summary Delete Lifecycle State by ID\n * @param {string} identityProfileId Identity Profile ID\n * @param {string} lifecycleStateId Lifecycle State ID\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n deleteLifecycleState: function (identityProfileId, lifecycleStateId, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.deleteLifecycleState(identityProfileId, lifecycleStateId, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This endpoint retrieves a Lifecycle State. A token with ORG_ADMIN or API authority is required to call this API.\n * @summary Retrieves Lifecycle State\n * @param {string} identityProfileId Identity Profile ID\n * @param {string} lifecycleStateId Lifecycle State ID\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getLifecycleState: function (identityProfileId, lifecycleStateId, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.getLifecycleState(identityProfileId, lifecycleStateId, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This end-point lists all the LifecycleStates associated with IdentityProfiles. A token with API, or ORG_ADMIN authority is required to call this API.\n * @summary Lists LifecycleStates\n * @param {string} identityProfileId The IdentityProfile id\n * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **created, modified**\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n listLifecycleStates: function (identityProfileId, limit, offset, count, sorters, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.listLifecycleStates(identityProfileId, limit, offset, count, sorters, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This endpoint will set/update an identity\\'s lifecycle state to the one provided and updates the corresponding Identity Profile. A token with ORG_ADMIN or API authority is required to call this API.\n * @summary Set Lifecycle State\n * @param {string} identityId The ID of the identity to update\n * @param {SetLifecycleStateRequest} setLifecycleStateRequest\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n setLifecycleState: function (identityId, setLifecycleStateRequest, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.setLifecycleState(identityId, setLifecycleStateRequest, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This endpoint updates individual Lifecycle State fields using the [JSON Patch](https://tools.ietf.org/html/rfc6902) standard. A token with ORG_ADMIN or API authority is required to call this API.\n * @summary Update Lifecycle State\n * @param {string} identityProfileId Identity Profile ID\n * @param {string} lifecycleStateId Lifecycle State ID\n * @param {Array} jsonPatchOperation A list of lifecycle state update operations according to the [JSON Patch](https://tools.ietf.org/html/rfc6902) standard. The following fields can be updated: * enabled * description * accountActions * accessProfileIds * emailNotificationOption\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n updateLifecycleStates: function (identityProfileId, lifecycleStateId, jsonPatchOperation, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.updateLifecycleStates(identityProfileId, lifecycleStateId, jsonPatchOperation, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n };\n};\nexports.LifecycleStatesApiFp = LifecycleStatesApiFp;\n/**\n * LifecycleStatesApi - factory interface\n * @export\n */\nvar LifecycleStatesApiFactory = function (configuration, basePath, axios) {\n var localVarFp = (0, exports.LifecycleStatesApiFp)(configuration);\n return {\n /**\n * This API creates a new Lifecycle State. A token with ORG_ADMIN or API authority is required to call this API.\n * @summary Create Lifecycle State\n * @param {string} identityProfileId Identity Profile ID\n * @param {LifecycleState} lifecycleState Lifecycle State\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n createLifecycleState: function (identityProfileId, lifecycleState, axiosOptions) {\n return localVarFp.createLifecycleState(identityProfileId, lifecycleState, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This endpoint deletes the Lifecycle State using its ID. A token with API, or ORG_ADMIN authority is required to call this API.\n * @summary Delete Lifecycle State by ID\n * @param {string} identityProfileId Identity Profile ID\n * @param {string} lifecycleStateId Lifecycle State ID\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n deleteLifecycleState: function (identityProfileId, lifecycleStateId, axiosOptions) {\n return localVarFp.deleteLifecycleState(identityProfileId, lifecycleStateId, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This endpoint retrieves a Lifecycle State. A token with ORG_ADMIN or API authority is required to call this API.\n * @summary Retrieves Lifecycle State\n * @param {string} identityProfileId Identity Profile ID\n * @param {string} lifecycleStateId Lifecycle State ID\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getLifecycleState: function (identityProfileId, lifecycleStateId, axiosOptions) {\n return localVarFp.getLifecycleState(identityProfileId, lifecycleStateId, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This end-point lists all the LifecycleStates associated with IdentityProfiles. A token with API, or ORG_ADMIN authority is required to call this API.\n * @summary Lists LifecycleStates\n * @param {string} identityProfileId The IdentityProfile id\n * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **created, modified**\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n listLifecycleStates: function (identityProfileId, limit, offset, count, sorters, axiosOptions) {\n return localVarFp.listLifecycleStates(identityProfileId, limit, offset, count, sorters, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This endpoint will set/update an identity\\'s lifecycle state to the one provided and updates the corresponding Identity Profile. A token with ORG_ADMIN or API authority is required to call this API.\n * @summary Set Lifecycle State\n * @param {string} identityId The ID of the identity to update\n * @param {SetLifecycleStateRequest} setLifecycleStateRequest\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n setLifecycleState: function (identityId, setLifecycleStateRequest, axiosOptions) {\n return localVarFp.setLifecycleState(identityId, setLifecycleStateRequest, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This endpoint updates individual Lifecycle State fields using the [JSON Patch](https://tools.ietf.org/html/rfc6902) standard. A token with ORG_ADMIN or API authority is required to call this API.\n * @summary Update Lifecycle State\n * @param {string} identityProfileId Identity Profile ID\n * @param {string} lifecycleStateId Lifecycle State ID\n * @param {Array} jsonPatchOperation A list of lifecycle state update operations according to the [JSON Patch](https://tools.ietf.org/html/rfc6902) standard. The following fields can be updated: * enabled * description * accountActions * accessProfileIds * emailNotificationOption\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n updateLifecycleStates: function (identityProfileId, lifecycleStateId, jsonPatchOperation, axiosOptions) {\n return localVarFp.updateLifecycleStates(identityProfileId, lifecycleStateId, jsonPatchOperation, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n };\n};\nexports.LifecycleStatesApiFactory = LifecycleStatesApiFactory;\n/**\n * LifecycleStatesApi - object-oriented interface\n * @export\n * @class LifecycleStatesApi\n * @extends {BaseAPI}\n */\nvar LifecycleStatesApi = /** @class */ (function (_super) {\n __extends(LifecycleStatesApi, _super);\n function LifecycleStatesApi() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n * This API creates a new Lifecycle State. A token with ORG_ADMIN or API authority is required to call this API.\n * @summary Create Lifecycle State\n * @param {LifecycleStatesApiCreateLifecycleStateRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof LifecycleStatesApi\n */\n LifecycleStatesApi.prototype.createLifecycleState = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.LifecycleStatesApiFp)(this.configuration).createLifecycleState(requestParameters.identityProfileId, requestParameters.lifecycleState, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This endpoint deletes the Lifecycle State using its ID. A token with API, or ORG_ADMIN authority is required to call this API.\n * @summary Delete Lifecycle State by ID\n * @param {LifecycleStatesApiDeleteLifecycleStateRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof LifecycleStatesApi\n */\n LifecycleStatesApi.prototype.deleteLifecycleState = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.LifecycleStatesApiFp)(this.configuration).deleteLifecycleState(requestParameters.identityProfileId, requestParameters.lifecycleStateId, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This endpoint retrieves a Lifecycle State. A token with ORG_ADMIN or API authority is required to call this API.\n * @summary Retrieves Lifecycle State\n * @param {LifecycleStatesApiGetLifecycleStateRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof LifecycleStatesApi\n */\n LifecycleStatesApi.prototype.getLifecycleState = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.LifecycleStatesApiFp)(this.configuration).getLifecycleState(requestParameters.identityProfileId, requestParameters.lifecycleStateId, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This end-point lists all the LifecycleStates associated with IdentityProfiles. A token with API, or ORG_ADMIN authority is required to call this API.\n * @summary Lists LifecycleStates\n * @param {LifecycleStatesApiListLifecycleStatesRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof LifecycleStatesApi\n */\n LifecycleStatesApi.prototype.listLifecycleStates = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.LifecycleStatesApiFp)(this.configuration).listLifecycleStates(requestParameters.identityProfileId, requestParameters.limit, requestParameters.offset, requestParameters.count, requestParameters.sorters, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This endpoint will set/update an identity\\'s lifecycle state to the one provided and updates the corresponding Identity Profile. A token with ORG_ADMIN or API authority is required to call this API.\n * @summary Set Lifecycle State\n * @param {LifecycleStatesApiSetLifecycleStateRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof LifecycleStatesApi\n */\n LifecycleStatesApi.prototype.setLifecycleState = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.LifecycleStatesApiFp)(this.configuration).setLifecycleState(requestParameters.identityId, requestParameters.setLifecycleStateRequest, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This endpoint updates individual Lifecycle State fields using the [JSON Patch](https://tools.ietf.org/html/rfc6902) standard. A token with ORG_ADMIN or API authority is required to call this API.\n * @summary Update Lifecycle State\n * @param {LifecycleStatesApiUpdateLifecycleStatesRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof LifecycleStatesApi\n */\n LifecycleStatesApi.prototype.updateLifecycleStates = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.LifecycleStatesApiFp)(this.configuration).updateLifecycleStates(requestParameters.identityProfileId, requestParameters.lifecycleStateId, requestParameters.jsonPatchOperation, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n return LifecycleStatesApi;\n}(base_1.BaseAPI));\nexports.LifecycleStatesApi = LifecycleStatesApi;\n/**\n * NonEmployeeLifecycleManagementApi - axios parameter creator\n * @export\n */\nvar NonEmployeeLifecycleManagementApiAxiosParamCreator = function (configuration) {\n var _this = this;\n return {\n /**\n * Approves a non-employee approval request and notifies the next approver. The current user must be the requested approver.\n * @summary Approve a Non-Employee Request\n * @param {string} id Non-Employee approval item id (UUID)\n * @param {NonEmployeeApprovalDecision} nonEmployeeApprovalDecision\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n approveNonEmployeeRequest: function (id, nonEmployeeApprovalDecision, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'id' is not null or undefined\n (0, common_1.assertParamExists)('approveNonEmployeeRequest', 'id', id);\n // verify required parameter 'nonEmployeeApprovalDecision' is not null or undefined\n (0, common_1.assertParamExists)('approveNonEmployeeRequest', 'nonEmployeeApprovalDecision', nonEmployeeApprovalDecision);\n localVarPath = \"/non-employee-approvals/{id}/approve\"\n .replace(\"{\".concat(\"id\", \"}\"), encodeURIComponent(String(id)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n localVarHeaderParameter['Content-Type'] = 'application/json';\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(nonEmployeeApprovalDecision, localVarRequestOptions, configuration);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This request will create a non-employee record. Requires role context of `idn:nesr:create`\n * @summary Create Non-Employee Record\n * @param {NonEmployeeRequestBody} nonEmployeeRequestBody Non-Employee record creation request body.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n createNonEmployeeRecord: function (nonEmployeeRequestBody, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'nonEmployeeRequestBody' is not null or undefined\n (0, common_1.assertParamExists)('createNonEmployeeRecord', 'nonEmployeeRequestBody', nonEmployeeRequestBody);\n localVarPath = \"/non-employee-records\";\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n localVarHeaderParameter['Content-Type'] = 'application/json';\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(nonEmployeeRequestBody, localVarRequestOptions, configuration);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This request will create a non-employee request and notify the approver. Requires role context of `idn:nesr:create` or the user must own the source.\n * @summary Create Non-Employee Request\n * @param {NonEmployeeRequestBody} nonEmployeeRequestBody Non-Employee creation request body\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n createNonEmployeeRequest: function (nonEmployeeRequestBody, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'nonEmployeeRequestBody' is not null or undefined\n (0, common_1.assertParamExists)('createNonEmployeeRequest', 'nonEmployeeRequestBody', nonEmployeeRequestBody);\n localVarPath = \"/non-employee-requests\";\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n localVarHeaderParameter['Content-Type'] = 'application/json';\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(nonEmployeeRequestBody, localVarRequestOptions, configuration);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This request will create a non-employee source. Requires role context of `idn:nesr:create`\n * @summary Create Non-Employee Source\n * @param {NonEmployeeSourceRequestBody} nonEmployeeSourceRequestBody Non-Employee source creation request body.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n createNonEmployeeSource: function (nonEmployeeSourceRequestBody, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'nonEmployeeSourceRequestBody' is not null or undefined\n (0, common_1.assertParamExists)('createNonEmployeeSource', 'nonEmployeeSourceRequestBody', nonEmployeeSourceRequestBody);\n localVarPath = \"/non-employee-sources\";\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n localVarHeaderParameter['Content-Type'] = 'application/json';\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(nonEmployeeSourceRequestBody, localVarRequestOptions, configuration);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This API creates a new schema attribute for Non-Employee Source. The schema technical name must be unique in the source. Attempts to create a schema attribute with an existing name will result in a \\\"400.1.409 Reference conflict\\\" response. At most, 10 custom attributes can be created per schema. Attempts to create more than 10 will result in a \\\"400.1.4 Limit violation\\\" response. Requires role context of `idn:nesr:create`\n * @summary Create a new Schema Attribute for Non-Employee Source\n * @param {string} sourceId The Source id\n * @param {NonEmployeeSchemaAttributeBody} nonEmployeeSchemaAttributeBody\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n createNonEmployeeSourceSchemaAttributes: function (sourceId, nonEmployeeSchemaAttributeBody, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'sourceId' is not null or undefined\n (0, common_1.assertParamExists)('createNonEmployeeSourceSchemaAttributes', 'sourceId', sourceId);\n // verify required parameter 'nonEmployeeSchemaAttributeBody' is not null or undefined\n (0, common_1.assertParamExists)('createNonEmployeeSourceSchemaAttributes', 'nonEmployeeSchemaAttributeBody', nonEmployeeSchemaAttributeBody);\n localVarPath = \"/non-employee-sources/{sourceId}/schema-attributes\"\n .replace(\"{\".concat(\"sourceId\", \"}\"), encodeURIComponent(String(sourceId)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n localVarHeaderParameter['Content-Type'] = 'application/json';\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(nonEmployeeSchemaAttributeBody, localVarRequestOptions, configuration);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This request will delete a non-employee record. Requires role context of `idn:nesr:delete`\n * @summary Delete Non-Employee Record\n * @param {string} id Non-Employee record id (UUID)\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n deleteNonEmployeeRecord: function (id, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'id' is not null or undefined\n (0, common_1.assertParamExists)('deleteNonEmployeeRecord', 'id', id);\n localVarPath = \"/non-employee-records/{id}\"\n .replace(\"{\".concat(\"id\", \"}\"), encodeURIComponent(String(id)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'DELETE' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This request will delete multiple non-employee records based on the non-employee ids provided. Requires role context of `idn:nesr:delete`\n * @summary Delete Multiple Non-Employee Records\n * @param {DeleteNonEmployeeRecordsInBulkRequest} deleteNonEmployeeRecordsInBulkRequest Non-Employee bulk delete request body.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n deleteNonEmployeeRecordsInBulk: function (deleteNonEmployeeRecordsInBulkRequest, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'deleteNonEmployeeRecordsInBulkRequest' is not null or undefined\n (0, common_1.assertParamExists)('deleteNonEmployeeRecordsInBulk', 'deleteNonEmployeeRecordsInBulkRequest', deleteNonEmployeeRecordsInBulkRequest);\n localVarPath = \"/non-employee-records/bulk-delete\";\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n localVarHeaderParameter['Content-Type'] = 'application/json';\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(deleteNonEmployeeRecordsInBulkRequest, localVarRequestOptions, configuration);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This request will delete a non-employee request. Requires role context of `idn:nesr:delete`\n * @summary Delete Non-Employee Request\n * @param {string} id Non-Employee request id in the UUID format\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n deleteNonEmployeeRequest: function (id, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'id' is not null or undefined\n (0, common_1.assertParamExists)('deleteNonEmployeeRequest', 'id', id);\n localVarPath = \"/non-employee-requests/{id}\"\n .replace(\"{\".concat(\"id\", \"}\"), encodeURIComponent(String(id)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'DELETE' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This end-point deletes a specific schema attribute for a non-employee source. Requires role context of `idn:nesr:delete`\n * @summary Delete a Schema Attribute for Non-Employee Source\n * @param {string} attributeId The Schema Attribute Id (UUID)\n * @param {string} sourceId The Source id\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n deleteNonEmployeeSchemaAttribute: function (attributeId, sourceId, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'attributeId' is not null or undefined\n (0, common_1.assertParamExists)('deleteNonEmployeeSchemaAttribute', 'attributeId', attributeId);\n // verify required parameter 'sourceId' is not null or undefined\n (0, common_1.assertParamExists)('deleteNonEmployeeSchemaAttribute', 'sourceId', sourceId);\n localVarPath = \"/non-employee-sources/{sourceId}/schema-attributes/{attributeId}\"\n .replace(\"{\".concat(\"attributeId\", \"}\"), encodeURIComponent(String(attributeId)))\n .replace(\"{\".concat(\"sourceId\", \"}\"), encodeURIComponent(String(sourceId)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'DELETE' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This request will delete a non-employee source. Requires role context of `idn:nesr:delete`.\n * @summary Delete Non-Employee Source\n * @param {string} sourceId Source Id\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n deleteNonEmployeeSource: function (sourceId, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'sourceId' is not null or undefined\n (0, common_1.assertParamExists)('deleteNonEmployeeSource', 'sourceId', sourceId);\n localVarPath = \"/non-employee-sources/{sourceId}\"\n .replace(\"{\".concat(\"sourceId\", \"}\"), encodeURIComponent(String(sourceId)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'DELETE' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This end-point deletes all custom schema attributes for a non-employee source. Requires role context of `idn:nesr:delete`\n * @summary Delete all custom schema attributes for Non-Employee Source\n * @param {string} sourceId The Source id\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n deleteNonEmployeeSourceSchemaAttributes: function (sourceId, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'sourceId' is not null or undefined\n (0, common_1.assertParamExists)('deleteNonEmployeeSourceSchemaAttributes', 'sourceId', sourceId);\n localVarPath = \"/non-employee-sources/{sourceId}/schema-attributes\"\n .replace(\"{\".concat(\"sourceId\", \"}\"), encodeURIComponent(String(sourceId)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'DELETE' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This requests a CSV download for all non-employees from a provided source. Requires role context of `idn:nesr:read`\n * @summary Exports Non-Employee Records to CSV\n * @param {string} id Source Id (UUID)\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n exportNonEmployeeRecords: function (id, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'id' is not null or undefined\n (0, common_1.assertParamExists)('exportNonEmployeeRecords', 'id', id);\n localVarPath = \"/non-employee-sources/{id}/non-employees/download\"\n .replace(\"{\".concat(\"id\", \"}\"), encodeURIComponent(String(id)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This requests a download for the Source Schema Template for a provided source. Requires role context of `idn:nesr:read`\n * @summary Exports Source Schema Template\n * @param {string} id Source Id (UUID)\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n exportNonEmployeeSourceSchemaTemplate: function (id, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'id' is not null or undefined\n (0, common_1.assertParamExists)('exportNonEmployeeSourceSchemaTemplate', 'id', id);\n localVarPath = \"/non-employee-sources/{id}/schema-attributes-template/download\"\n .replace(\"{\".concat(\"id\", \"}\"), encodeURIComponent(String(id)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * Gets a non-employee approval item detail. There are two contextual uses for this endpoint: 1. The user has the role context of `idn:nesr:read`, in which case they can get any approval. 2. The user owns the requested approval.\n * @summary Get a non-employee approval item detail\n * @param {string} id Non-Employee approval item id (UUID)\n * @param {boolean} [includeDetail] The object nonEmployeeRequest will not be included detail when set to false. *Default value is true*\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getNonEmployeeApproval: function (id, includeDetail, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'id' is not null or undefined\n (0, common_1.assertParamExists)('getNonEmployeeApproval', 'id', id);\n localVarPath = \"/non-employee-approvals/{id}\"\n .replace(\"{\".concat(\"id\", \"}\"), encodeURIComponent(String(id)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n if (includeDetail !== undefined) {\n localVarQueryParameter['include-detail'] = includeDetail;\n }\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This request will retrieve a summary of non-employee approval requests. There are two contextual uses for the `requested-for` path parameter: 1. The user has the role context of `idn:nesr:read`, in which case he or she may request a summary of all non-employee approval requests assigned to a particular approver by passing in that approver\\'s id. 2. The current user is an approver, in which case \\\"me\\\" should be provided as the `requested-for` value. This will provide the approver with a summary of the approval items assigned to him or her.\n * @summary Get Summary of Non-Employee Approval Requests\n * @param {string} requestedFor The identity (UUID) of the approver for whom for whom the summary is being retrieved. Use \\"me\\" instead to indicate the current user.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getNonEmployeeApprovalSummary: function (requestedFor, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'requestedFor' is not null or undefined\n (0, common_1.assertParamExists)('getNonEmployeeApprovalSummary', 'requestedFor', requestedFor);\n localVarPath = \"/non-employee-approvals/summary/{requested-for}\"\n .replace(\"{\".concat(\"requested-for\", \"}\"), encodeURIComponent(String(requestedFor)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * The nonEmployeeBulkUploadStatus API returns the status of the newest bulk upload job for the specified source. Requires role context of `idn:nesr:read`\n * @summary Obtain the status of bulk upload on the source\n * @param {string} id Source ID (UUID)\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getNonEmployeeBulkUploadStatus: function (id, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'id' is not null or undefined\n (0, common_1.assertParamExists)('getNonEmployeeBulkUploadStatus', 'id', id);\n localVarPath = \"/non-employee-sources/{id}/non-employee-bulk-upload/status\"\n .replace(\"{\".concat(\"id\", \"}\"), encodeURIComponent(String(id)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This gets a non-employee record. Requires role context of `idn:nesr:read`\n * @summary Get a Non-Employee Record\n * @param {string} id Non-Employee record id (UUID)\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getNonEmployeeRecord: function (id, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'id' is not null or undefined\n (0, common_1.assertParamExists)('getNonEmployeeRecord', 'id', id);\n localVarPath = \"/non-employee-records/{id}\"\n .replace(\"{\".concat(\"id\", \"}\"), encodeURIComponent(String(id)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This gets a non-employee request. There are two contextual uses for this endpoint: 1. The user has the role context of `idn:nesr:read`, in this case the user can get the non-employee request for any user. 2. The user must be the owner of the non-employee request.\n * @summary Get a Non-Employee Request\n * @param {string} id Non-Employee request id (UUID)\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getNonEmployeeRequest: function (id, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'id' is not null or undefined\n (0, common_1.assertParamExists)('getNonEmployeeRequest', 'id', id);\n localVarPath = \"/non-employee-requests/{id}\"\n .replace(\"{\".concat(\"id\", \"}\"), encodeURIComponent(String(id)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This request will retrieve a summary of non-employee requests. There are two contextual uses for the `requested-for` path parameter: 1. The user has the role context of `idn:nesr:read`, in which case he or she may request a summary of all non-employee approval requests assigned to a particular account manager by passing in that manager\\'s id. 2. The current user is an account manager, in which case \\\"me\\\" should be provided as the `requested-for` value. This will provide the user with a summary of the non-employee requests in the source(s) he or she manages.\n * @summary Get Summary of Non-Employee Requests\n * @param {string} requestedFor The identity (UUID) of the non-employee account manager for whom the summary is being retrieved. Use \\"me\\" instead to indicate the current user.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getNonEmployeeRequestSummary: function (requestedFor, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'requestedFor' is not null or undefined\n (0, common_1.assertParamExists)('getNonEmployeeRequestSummary', 'requestedFor', requestedFor);\n localVarPath = \"/non-employee-requests/summary/{requested-for}\"\n .replace(\"{\".concat(\"requested-for\", \"}\"), encodeURIComponent(String(requestedFor)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This API gets a schema attribute by Id for the specified Non-Employee SourceId. Requires role context of `idn:nesr:read` or the user must be an account manager of the source.\n * @summary Get Schema Attribute Non-Employee Source\n * @param {string} attributeId The Schema Attribute Id (UUID)\n * @param {string} sourceId The Source id\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getNonEmployeeSchemaAttribute: function (attributeId, sourceId, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'attributeId' is not null or undefined\n (0, common_1.assertParamExists)('getNonEmployeeSchemaAttribute', 'attributeId', attributeId);\n // verify required parameter 'sourceId' is not null or undefined\n (0, common_1.assertParamExists)('getNonEmployeeSchemaAttribute', 'sourceId', sourceId);\n localVarPath = \"/non-employee-sources/{sourceId}/schema-attributes/{attributeId}\"\n .replace(\"{\".concat(\"attributeId\", \"}\"), encodeURIComponent(String(attributeId)))\n .replace(\"{\".concat(\"sourceId\", \"}\"), encodeURIComponent(String(sourceId)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This gets a non-employee source. There are two contextual uses for the requested-for path parameter: 1. The user has the role context of `idn:nesr:read`, in which case he or she may request any source. 2. The current user is an account manager, in which case the user can only request sources that they own.\n * @summary Get a Non-Employee Source\n * @param {string} sourceId Source Id\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getNonEmployeeSource: function (sourceId, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'sourceId' is not null or undefined\n (0, common_1.assertParamExists)('getNonEmployeeSource', 'sourceId', sourceId);\n localVarPath = \"/non-employee-sources/{sourceId}\"\n .replace(\"{\".concat(\"sourceId\", \"}\"), encodeURIComponent(String(sourceId)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This API gets the list of schema attributes for the specified Non-Employee SourceId. There are 8 mandatory attributes added to each new Non-Employee Source automatically. Additionaly, user can add up to 10 custom attributes. This interface returns all the mandatory attributes followed by any custom attributes. At most, a total of 18 attributes will be returned. Requires role context of `idn:nesr:read` or the user must be an account manager of the source.\n * @summary List Schema Attributes Non-Employee Source\n * @param {string} sourceId The Source id\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getNonEmployeeSourceSchemaAttributes: function (sourceId, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'sourceId' is not null or undefined\n (0, common_1.assertParamExists)('getNonEmployeeSourceSchemaAttributes', 'sourceId', sourceId);\n localVarPath = \"/non-employee-sources/{sourceId}/schema-attributes\"\n .replace(\"{\".concat(\"sourceId\", \"}\"), encodeURIComponent(String(sourceId)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This post will import, or update, Non-Employee records found in the CSV. Requires role context of `idn:nesr:create`\n * @summary Imports, or Updates, Non-Employee Records\n * @param {string} id Source Id (UUID)\n * @param {any} data\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n importNonEmployeeRecordsInBulk: function (id, data, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, localVarFormParams, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'id' is not null or undefined\n (0, common_1.assertParamExists)('importNonEmployeeRecordsInBulk', 'id', id);\n // verify required parameter 'data' is not null or undefined\n (0, common_1.assertParamExists)('importNonEmployeeRecordsInBulk', 'data', data);\n localVarPath = \"/non-employee-sources/{id}/non-employee-bulk-upload\"\n .replace(\"{\".concat(\"id\", \"}\"), encodeURIComponent(String(id)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n localVarFormParams = new ((configuration && configuration.formDataCtor) || FormData)();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n if (data !== undefined) {\n localVarFormParams.append('data', data);\n }\n localVarHeaderParameter['Content-Type'] = 'multipart/form-data';\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n localVarRequestOptions.data = localVarFormParams;\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This gets a list of non-employee approval requests. There are two contextual uses for this endpoint: 1. The user has the role context of `idn:nesr:read`, in which case they can list the approvals for any approver. 2. The user owns the requested approval.\n * @summary Get List of Non-Employee Approval Requests\n * @param {string} [requestedFor] The identity for whom the request was made. *me* indicates the current user.\n * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **approvalStatus**: *eq*\n * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **created, modified**\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n listNonEmployeeApprovals: function (requestedFor, limit, offset, count, filters, sorters, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n localVarPath = \"/non-employee-approvals\";\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n if (requestedFor !== undefined) {\n localVarQueryParameter['requested-for'] = requestedFor;\n }\n if (limit !== undefined) {\n localVarQueryParameter['limit'] = limit;\n }\n if (offset !== undefined) {\n localVarQueryParameter['offset'] = offset;\n }\n if (count !== undefined) {\n localVarQueryParameter['count'] = count;\n }\n if (filters !== undefined) {\n localVarQueryParameter['filters'] = filters;\n }\n if (sorters !== undefined) {\n localVarQueryParameter['sorters'] = sorters;\n }\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This gets a list of non-employee records. There are two contextual uses for this endpoint: 1. The user has the role context of `idn:nesr:read`, in which case they can get a list of all of the non-employees. 2. The user is an account manager, in which case they can get a list of the non-employees that they manage.\n * @summary List Non-Employee Records\n * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **id, accountName, sourceId, manager, firstName, lastName, email, phone, startDate, endDate, created, modified**\n * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **sourceId**: *eq*\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n listNonEmployeeRecords: function (limit, offset, count, sorters, filters, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n localVarPath = \"/non-employee-records\";\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n if (limit !== undefined) {\n localVarQueryParameter['limit'] = limit;\n }\n if (offset !== undefined) {\n localVarQueryParameter['offset'] = offset;\n }\n if (count !== undefined) {\n localVarQueryParameter['count'] = count;\n }\n if (sorters !== undefined) {\n localVarQueryParameter['sorters'] = sorters;\n }\n if (filters !== undefined) {\n localVarQueryParameter['filters'] = filters;\n }\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This gets a list of non-employee requests. There are two contextual uses for the `requested-for` path parameter: 1. The user has the role context of `idn:nesr:read`, in which case he or she may request a list non-employee requests assigned to a particular account manager by passing in that manager\\'s id. 2. The current user is an account manager, in which case \\\"me\\\" should be provided as the `requested-for` value. This will provide the user with a list of the non-employee requests in the source(s) he or she manages.\n * @summary List Non-Employee Requests\n * @param {string} requestedFor The identity for whom the request was made. *me* indicates the current user.\n * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **created, approvalStatus, firstName, lastName, email, phone, accountName, startDate, endDate**\n * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **sourceId**: *eq*\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n listNonEmployeeRequests: function (requestedFor, limit, offset, count, sorters, filters, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'requestedFor' is not null or undefined\n (0, common_1.assertParamExists)('listNonEmployeeRequests', 'requestedFor', requestedFor);\n localVarPath = \"/non-employee-requests\";\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n if (limit !== undefined) {\n localVarQueryParameter['limit'] = limit;\n }\n if (offset !== undefined) {\n localVarQueryParameter['offset'] = offset;\n }\n if (count !== undefined) {\n localVarQueryParameter['count'] = count;\n }\n if (requestedFor !== undefined) {\n localVarQueryParameter['requested-for'] = requestedFor;\n }\n if (sorters !== undefined) {\n localVarQueryParameter['sorters'] = sorters;\n }\n if (filters !== undefined) {\n localVarQueryParameter['filters'] = filters;\n }\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This gets a list of non-employee sources. There are two contextual uses for the requested-for path parameter: 1. The user has the role context of `idn:nesr:read`, in which case he or she may request a list sources assigned to a particular account manager by passing in that manager\\'s id. 2. The current user is an account manager, in which case \\\"me\\\" should be provided as the `requested-for` value. This will provide the user with a list of the sources that he or she owns.\n * @summary List Non-Employee Sources\n * @param {string} requestedFor The identity for whom the request was made. *me* indicates the current user.\n * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {boolean} [nonEmployeeCount] The flag to determine whether return a non-employee count associate with source.\n * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **name, created, sourceId**\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n listNonEmployeeSources: function (requestedFor, limit, offset, count, nonEmployeeCount, sorters, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'requestedFor' is not null or undefined\n (0, common_1.assertParamExists)('listNonEmployeeSources', 'requestedFor', requestedFor);\n localVarPath = \"/non-employee-sources\";\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n if (limit !== undefined) {\n localVarQueryParameter['limit'] = limit;\n }\n if (offset !== undefined) {\n localVarQueryParameter['offset'] = offset;\n }\n if (count !== undefined) {\n localVarQueryParameter['count'] = count;\n }\n if (requestedFor !== undefined) {\n localVarQueryParameter['requested-for'] = requestedFor;\n }\n if (nonEmployeeCount !== undefined) {\n localVarQueryParameter['non-employee-count'] = nonEmployeeCount;\n }\n if (sorters !== undefined) {\n localVarQueryParameter['sorters'] = sorters;\n }\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This request will patch a non-employee record. There are two contextual uses for this endpoint: 1. The user has the role context of `idn:nesr:update`, in which case they update all available fields. 2. The user is owner of the source, in this case they can only update the end date.\n * @summary Patch Non-Employee Record\n * @param {string} id Non-employee record id (UUID)\n * @param {Array} jsonPatchOperation A list of non-employee update operations according to the [JSON Patch](https://tools.ietf.org/html/rfc6902) standard. Attributes are restricted by user type. Owner of source can update end date. Organization admins can update all available fields.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n patchNonEmployeeRecord: function (id, jsonPatchOperation, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'id' is not null or undefined\n (0, common_1.assertParamExists)('patchNonEmployeeRecord', 'id', id);\n // verify required parameter 'jsonPatchOperation' is not null or undefined\n (0, common_1.assertParamExists)('patchNonEmployeeRecord', 'jsonPatchOperation', jsonPatchOperation);\n localVarPath = \"/non-employee-records/{id}\"\n .replace(\"{\".concat(\"id\", \"}\"), encodeURIComponent(String(id)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'PATCH' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n localVarHeaderParameter['Content-Type'] = 'application/json-patch+json';\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(jsonPatchOperation, localVarRequestOptions, configuration);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This end-point patches a specific schema attribute for a non-employee SourceId. Requires role context of `idn:nesr:update`\n * @summary Patch a Schema Attribute for Non-Employee Source\n * @param {string} attributeId The Schema Attribute Id (UUID)\n * @param {string} sourceId The Source id\n * @param {Array} jsonPatchOperation A list of schema attribute update operations according to the [JSON Patch](https://tools.ietf.org/html/rfc6902) standard. The following properties are allowed for update \\':\\' \\'label\\', \\'helpText\\', \\'placeholder\\', \\'required\\'.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n patchNonEmployeeSchemaAttribute: function (attributeId, sourceId, jsonPatchOperation, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'attributeId' is not null or undefined\n (0, common_1.assertParamExists)('patchNonEmployeeSchemaAttribute', 'attributeId', attributeId);\n // verify required parameter 'sourceId' is not null or undefined\n (0, common_1.assertParamExists)('patchNonEmployeeSchemaAttribute', 'sourceId', sourceId);\n // verify required parameter 'jsonPatchOperation' is not null or undefined\n (0, common_1.assertParamExists)('patchNonEmployeeSchemaAttribute', 'jsonPatchOperation', jsonPatchOperation);\n localVarPath = \"/non-employee-sources/{sourceId}/schema-attributes/{attributeId}\"\n .replace(\"{\".concat(\"attributeId\", \"}\"), encodeURIComponent(String(attributeId)))\n .replace(\"{\".concat(\"sourceId\", \"}\"), encodeURIComponent(String(sourceId)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'PATCH' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n localVarHeaderParameter['Content-Type'] = 'application/json-patch+json';\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(jsonPatchOperation, localVarRequestOptions, configuration);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * patch a non-employee source. (partial update)
Patchable field: **name, description, approvers, accountManagers** Requires role context of `idn:nesr:update`.\n * @summary Patch a Non-Employee Source\n * @param {string} sourceId Source Id\n * @param {Array} jsonPatchOperation A list of non-employee source update operations according to the [JSON Patch](https://tools.ietf.org/html/rfc6902) standard.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n patchNonEmployeeSource: function (sourceId, jsonPatchOperation, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'sourceId' is not null or undefined\n (0, common_1.assertParamExists)('patchNonEmployeeSource', 'sourceId', sourceId);\n // verify required parameter 'jsonPatchOperation' is not null or undefined\n (0, common_1.assertParamExists)('patchNonEmployeeSource', 'jsonPatchOperation', jsonPatchOperation);\n localVarPath = \"/non-employee-sources/{sourceId}\"\n .replace(\"{\".concat(\"sourceId\", \"}\"), encodeURIComponent(String(sourceId)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'PATCH' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n localVarHeaderParameter['Content-Type'] = 'application/json-patch+json';\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(jsonPatchOperation, localVarRequestOptions, configuration);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This endpoint will reject an approval item request and notify user. The current user must be the requested approver.\n * @summary Reject a Non-Employee Request\n * @param {string} id Non-Employee approval item id (UUID)\n * @param {NonEmployeeRejectApprovalDecision} nonEmployeeRejectApprovalDecision\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n rejectNonEmployeeRequest: function (id, nonEmployeeRejectApprovalDecision, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'id' is not null or undefined\n (0, common_1.assertParamExists)('rejectNonEmployeeRequest', 'id', id);\n // verify required parameter 'nonEmployeeRejectApprovalDecision' is not null or undefined\n (0, common_1.assertParamExists)('rejectNonEmployeeRequest', 'nonEmployeeRejectApprovalDecision', nonEmployeeRejectApprovalDecision);\n localVarPath = \"/non-employee-approvals/{id}/reject\"\n .replace(\"{\".concat(\"id\", \"}\"), encodeURIComponent(String(id)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n localVarHeaderParameter['Content-Type'] = 'application/json';\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(nonEmployeeRejectApprovalDecision, localVarRequestOptions, configuration);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This request will update a non-employee record. There are two contextual uses for this endpoint: 1. The user has the role context of `idn:nesr:update`, in which case they update all available fields. 2. The user is owner of the source, in this case they can only update the end date.\n * @summary Update Non-Employee Record\n * @param {string} id Non-employee record id (UUID)\n * @param {NonEmployeeRequestBody} nonEmployeeRequestBody Non-employee record creation request body. Attributes are restricted by user type. Owner of source can update end date. Organization admins can update all available fields.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n updateNonEmployeeRecord: function (id, nonEmployeeRequestBody, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'id' is not null or undefined\n (0, common_1.assertParamExists)('updateNonEmployeeRecord', 'id', id);\n // verify required parameter 'nonEmployeeRequestBody' is not null or undefined\n (0, common_1.assertParamExists)('updateNonEmployeeRecord', 'nonEmployeeRequestBody', nonEmployeeRequestBody);\n localVarPath = \"/non-employee-records/{id}\"\n .replace(\"{\".concat(\"id\", \"}\"), encodeURIComponent(String(id)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'PUT' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n localVarHeaderParameter['Content-Type'] = 'application/json';\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(nonEmployeeRequestBody, localVarRequestOptions, configuration);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n };\n};\nexports.NonEmployeeLifecycleManagementApiAxiosParamCreator = NonEmployeeLifecycleManagementApiAxiosParamCreator;\n/**\n * NonEmployeeLifecycleManagementApi - functional programming interface\n * @export\n */\nvar NonEmployeeLifecycleManagementApiFp = function (configuration) {\n var localVarAxiosParamCreator = (0, exports.NonEmployeeLifecycleManagementApiAxiosParamCreator)(configuration);\n return {\n /**\n * Approves a non-employee approval request and notifies the next approver. The current user must be the requested approver.\n * @summary Approve a Non-Employee Request\n * @param {string} id Non-Employee approval item id (UUID)\n * @param {NonEmployeeApprovalDecision} nonEmployeeApprovalDecision\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n approveNonEmployeeRequest: function (id, nonEmployeeApprovalDecision, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.approveNonEmployeeRequest(id, nonEmployeeApprovalDecision, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This request will create a non-employee record. Requires role context of `idn:nesr:create`\n * @summary Create Non-Employee Record\n * @param {NonEmployeeRequestBody} nonEmployeeRequestBody Non-Employee record creation request body.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n createNonEmployeeRecord: function (nonEmployeeRequestBody, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.createNonEmployeeRecord(nonEmployeeRequestBody, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This request will create a non-employee request and notify the approver. Requires role context of `idn:nesr:create` or the user must own the source.\n * @summary Create Non-Employee Request\n * @param {NonEmployeeRequestBody} nonEmployeeRequestBody Non-Employee creation request body\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n createNonEmployeeRequest: function (nonEmployeeRequestBody, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.createNonEmployeeRequest(nonEmployeeRequestBody, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This request will create a non-employee source. Requires role context of `idn:nesr:create`\n * @summary Create Non-Employee Source\n * @param {NonEmployeeSourceRequestBody} nonEmployeeSourceRequestBody Non-Employee source creation request body.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n createNonEmployeeSource: function (nonEmployeeSourceRequestBody, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.createNonEmployeeSource(nonEmployeeSourceRequestBody, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This API creates a new schema attribute for Non-Employee Source. The schema technical name must be unique in the source. Attempts to create a schema attribute with an existing name will result in a \\\"400.1.409 Reference conflict\\\" response. At most, 10 custom attributes can be created per schema. Attempts to create more than 10 will result in a \\\"400.1.4 Limit violation\\\" response. Requires role context of `idn:nesr:create`\n * @summary Create a new Schema Attribute for Non-Employee Source\n * @param {string} sourceId The Source id\n * @param {NonEmployeeSchemaAttributeBody} nonEmployeeSchemaAttributeBody\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n createNonEmployeeSourceSchemaAttributes: function (sourceId, nonEmployeeSchemaAttributeBody, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.createNonEmployeeSourceSchemaAttributes(sourceId, nonEmployeeSchemaAttributeBody, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This request will delete a non-employee record. Requires role context of `idn:nesr:delete`\n * @summary Delete Non-Employee Record\n * @param {string} id Non-Employee record id (UUID)\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n deleteNonEmployeeRecord: function (id, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.deleteNonEmployeeRecord(id, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This request will delete multiple non-employee records based on the non-employee ids provided. Requires role context of `idn:nesr:delete`\n * @summary Delete Multiple Non-Employee Records\n * @param {DeleteNonEmployeeRecordsInBulkRequest} deleteNonEmployeeRecordsInBulkRequest Non-Employee bulk delete request body.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n deleteNonEmployeeRecordsInBulk: function (deleteNonEmployeeRecordsInBulkRequest, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.deleteNonEmployeeRecordsInBulk(deleteNonEmployeeRecordsInBulkRequest, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This request will delete a non-employee request. Requires role context of `idn:nesr:delete`\n * @summary Delete Non-Employee Request\n * @param {string} id Non-Employee request id in the UUID format\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n deleteNonEmployeeRequest: function (id, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.deleteNonEmployeeRequest(id, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This end-point deletes a specific schema attribute for a non-employee source. Requires role context of `idn:nesr:delete`\n * @summary Delete a Schema Attribute for Non-Employee Source\n * @param {string} attributeId The Schema Attribute Id (UUID)\n * @param {string} sourceId The Source id\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n deleteNonEmployeeSchemaAttribute: function (attributeId, sourceId, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.deleteNonEmployeeSchemaAttribute(attributeId, sourceId, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This request will delete a non-employee source. Requires role context of `idn:nesr:delete`.\n * @summary Delete Non-Employee Source\n * @param {string} sourceId Source Id\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n deleteNonEmployeeSource: function (sourceId, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.deleteNonEmployeeSource(sourceId, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This end-point deletes all custom schema attributes for a non-employee source. Requires role context of `idn:nesr:delete`\n * @summary Delete all custom schema attributes for Non-Employee Source\n * @param {string} sourceId The Source id\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n deleteNonEmployeeSourceSchemaAttributes: function (sourceId, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.deleteNonEmployeeSourceSchemaAttributes(sourceId, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This requests a CSV download for all non-employees from a provided source. Requires role context of `idn:nesr:read`\n * @summary Exports Non-Employee Records to CSV\n * @param {string} id Source Id (UUID)\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n exportNonEmployeeRecords: function (id, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.exportNonEmployeeRecords(id, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This requests a download for the Source Schema Template for a provided source. Requires role context of `idn:nesr:read`\n * @summary Exports Source Schema Template\n * @param {string} id Source Id (UUID)\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n exportNonEmployeeSourceSchemaTemplate: function (id, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.exportNonEmployeeSourceSchemaTemplate(id, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * Gets a non-employee approval item detail. There are two contextual uses for this endpoint: 1. The user has the role context of `idn:nesr:read`, in which case they can get any approval. 2. The user owns the requested approval.\n * @summary Get a non-employee approval item detail\n * @param {string} id Non-Employee approval item id (UUID)\n * @param {boolean} [includeDetail] The object nonEmployeeRequest will not be included detail when set to false. *Default value is true*\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getNonEmployeeApproval: function (id, includeDetail, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.getNonEmployeeApproval(id, includeDetail, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This request will retrieve a summary of non-employee approval requests. There are two contextual uses for the `requested-for` path parameter: 1. The user has the role context of `idn:nesr:read`, in which case he or she may request a summary of all non-employee approval requests assigned to a particular approver by passing in that approver\\'s id. 2. The current user is an approver, in which case \\\"me\\\" should be provided as the `requested-for` value. This will provide the approver with a summary of the approval items assigned to him or her.\n * @summary Get Summary of Non-Employee Approval Requests\n * @param {string} requestedFor The identity (UUID) of the approver for whom for whom the summary is being retrieved. Use \\"me\\" instead to indicate the current user.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getNonEmployeeApprovalSummary: function (requestedFor, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.getNonEmployeeApprovalSummary(requestedFor, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * The nonEmployeeBulkUploadStatus API returns the status of the newest bulk upload job for the specified source. Requires role context of `idn:nesr:read`\n * @summary Obtain the status of bulk upload on the source\n * @param {string} id Source ID (UUID)\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getNonEmployeeBulkUploadStatus: function (id, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.getNonEmployeeBulkUploadStatus(id, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This gets a non-employee record. Requires role context of `idn:nesr:read`\n * @summary Get a Non-Employee Record\n * @param {string} id Non-Employee record id (UUID)\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getNonEmployeeRecord: function (id, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.getNonEmployeeRecord(id, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This gets a non-employee request. There are two contextual uses for this endpoint: 1. The user has the role context of `idn:nesr:read`, in this case the user can get the non-employee request for any user. 2. The user must be the owner of the non-employee request.\n * @summary Get a Non-Employee Request\n * @param {string} id Non-Employee request id (UUID)\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getNonEmployeeRequest: function (id, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.getNonEmployeeRequest(id, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This request will retrieve a summary of non-employee requests. There are two contextual uses for the `requested-for` path parameter: 1. The user has the role context of `idn:nesr:read`, in which case he or she may request a summary of all non-employee approval requests assigned to a particular account manager by passing in that manager\\'s id. 2. The current user is an account manager, in which case \\\"me\\\" should be provided as the `requested-for` value. This will provide the user with a summary of the non-employee requests in the source(s) he or she manages.\n * @summary Get Summary of Non-Employee Requests\n * @param {string} requestedFor The identity (UUID) of the non-employee account manager for whom the summary is being retrieved. Use \\"me\\" instead to indicate the current user.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getNonEmployeeRequestSummary: function (requestedFor, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.getNonEmployeeRequestSummary(requestedFor, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This API gets a schema attribute by Id for the specified Non-Employee SourceId. Requires role context of `idn:nesr:read` or the user must be an account manager of the source.\n * @summary Get Schema Attribute Non-Employee Source\n * @param {string} attributeId The Schema Attribute Id (UUID)\n * @param {string} sourceId The Source id\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getNonEmployeeSchemaAttribute: function (attributeId, sourceId, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.getNonEmployeeSchemaAttribute(attributeId, sourceId, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This gets a non-employee source. There are two contextual uses for the requested-for path parameter: 1. The user has the role context of `idn:nesr:read`, in which case he or she may request any source. 2. The current user is an account manager, in which case the user can only request sources that they own.\n * @summary Get a Non-Employee Source\n * @param {string} sourceId Source Id\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getNonEmployeeSource: function (sourceId, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.getNonEmployeeSource(sourceId, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This API gets the list of schema attributes for the specified Non-Employee SourceId. There are 8 mandatory attributes added to each new Non-Employee Source automatically. Additionaly, user can add up to 10 custom attributes. This interface returns all the mandatory attributes followed by any custom attributes. At most, a total of 18 attributes will be returned. Requires role context of `idn:nesr:read` or the user must be an account manager of the source.\n * @summary List Schema Attributes Non-Employee Source\n * @param {string} sourceId The Source id\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getNonEmployeeSourceSchemaAttributes: function (sourceId, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.getNonEmployeeSourceSchemaAttributes(sourceId, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This post will import, or update, Non-Employee records found in the CSV. Requires role context of `idn:nesr:create`\n * @summary Imports, or Updates, Non-Employee Records\n * @param {string} id Source Id (UUID)\n * @param {any} data\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n importNonEmployeeRecordsInBulk: function (id, data, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.importNonEmployeeRecordsInBulk(id, data, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This gets a list of non-employee approval requests. There are two contextual uses for this endpoint: 1. The user has the role context of `idn:nesr:read`, in which case they can list the approvals for any approver. 2. The user owns the requested approval.\n * @summary Get List of Non-Employee Approval Requests\n * @param {string} [requestedFor] The identity for whom the request was made. *me* indicates the current user.\n * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **approvalStatus**: *eq*\n * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **created, modified**\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n listNonEmployeeApprovals: function (requestedFor, limit, offset, count, filters, sorters, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.listNonEmployeeApprovals(requestedFor, limit, offset, count, filters, sorters, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This gets a list of non-employee records. There are two contextual uses for this endpoint: 1. The user has the role context of `idn:nesr:read`, in which case they can get a list of all of the non-employees. 2. The user is an account manager, in which case they can get a list of the non-employees that they manage.\n * @summary List Non-Employee Records\n * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **id, accountName, sourceId, manager, firstName, lastName, email, phone, startDate, endDate, created, modified**\n * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **sourceId**: *eq*\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n listNonEmployeeRecords: function (limit, offset, count, sorters, filters, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.listNonEmployeeRecords(limit, offset, count, sorters, filters, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This gets a list of non-employee requests. There are two contextual uses for the `requested-for` path parameter: 1. The user has the role context of `idn:nesr:read`, in which case he or she may request a list non-employee requests assigned to a particular account manager by passing in that manager\\'s id. 2. The current user is an account manager, in which case \\\"me\\\" should be provided as the `requested-for` value. This will provide the user with a list of the non-employee requests in the source(s) he or she manages.\n * @summary List Non-Employee Requests\n * @param {string} requestedFor The identity for whom the request was made. *me* indicates the current user.\n * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **created, approvalStatus, firstName, lastName, email, phone, accountName, startDate, endDate**\n * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **sourceId**: *eq*\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n listNonEmployeeRequests: function (requestedFor, limit, offset, count, sorters, filters, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.listNonEmployeeRequests(requestedFor, limit, offset, count, sorters, filters, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This gets a list of non-employee sources. There are two contextual uses for the requested-for path parameter: 1. The user has the role context of `idn:nesr:read`, in which case he or she may request a list sources assigned to a particular account manager by passing in that manager\\'s id. 2. The current user is an account manager, in which case \\\"me\\\" should be provided as the `requested-for` value. This will provide the user with a list of the sources that he or she owns.\n * @summary List Non-Employee Sources\n * @param {string} requestedFor The identity for whom the request was made. *me* indicates the current user.\n * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {boolean} [nonEmployeeCount] The flag to determine whether return a non-employee count associate with source.\n * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **name, created, sourceId**\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n listNonEmployeeSources: function (requestedFor, limit, offset, count, nonEmployeeCount, sorters, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.listNonEmployeeSources(requestedFor, limit, offset, count, nonEmployeeCount, sorters, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This request will patch a non-employee record. There are two contextual uses for this endpoint: 1. The user has the role context of `idn:nesr:update`, in which case they update all available fields. 2. The user is owner of the source, in this case they can only update the end date.\n * @summary Patch Non-Employee Record\n * @param {string} id Non-employee record id (UUID)\n * @param {Array} jsonPatchOperation A list of non-employee update operations according to the [JSON Patch](https://tools.ietf.org/html/rfc6902) standard. Attributes are restricted by user type. Owner of source can update end date. Organization admins can update all available fields.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n patchNonEmployeeRecord: function (id, jsonPatchOperation, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.patchNonEmployeeRecord(id, jsonPatchOperation, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This end-point patches a specific schema attribute for a non-employee SourceId. Requires role context of `idn:nesr:update`\n * @summary Patch a Schema Attribute for Non-Employee Source\n * @param {string} attributeId The Schema Attribute Id (UUID)\n * @param {string} sourceId The Source id\n * @param {Array} jsonPatchOperation A list of schema attribute update operations according to the [JSON Patch](https://tools.ietf.org/html/rfc6902) standard. The following properties are allowed for update \\':\\' \\'label\\', \\'helpText\\', \\'placeholder\\', \\'required\\'.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n patchNonEmployeeSchemaAttribute: function (attributeId, sourceId, jsonPatchOperation, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.patchNonEmployeeSchemaAttribute(attributeId, sourceId, jsonPatchOperation, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * patch a non-employee source. (partial update)
Patchable field: **name, description, approvers, accountManagers** Requires role context of `idn:nesr:update`.\n * @summary Patch a Non-Employee Source\n * @param {string} sourceId Source Id\n * @param {Array} jsonPatchOperation A list of non-employee source update operations according to the [JSON Patch](https://tools.ietf.org/html/rfc6902) standard.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n patchNonEmployeeSource: function (sourceId, jsonPatchOperation, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.patchNonEmployeeSource(sourceId, jsonPatchOperation, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This endpoint will reject an approval item request and notify user. The current user must be the requested approver.\n * @summary Reject a Non-Employee Request\n * @param {string} id Non-Employee approval item id (UUID)\n * @param {NonEmployeeRejectApprovalDecision} nonEmployeeRejectApprovalDecision\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n rejectNonEmployeeRequest: function (id, nonEmployeeRejectApprovalDecision, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.rejectNonEmployeeRequest(id, nonEmployeeRejectApprovalDecision, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This request will update a non-employee record. There are two contextual uses for this endpoint: 1. The user has the role context of `idn:nesr:update`, in which case they update all available fields. 2. The user is owner of the source, in this case they can only update the end date.\n * @summary Update Non-Employee Record\n * @param {string} id Non-employee record id (UUID)\n * @param {NonEmployeeRequestBody} nonEmployeeRequestBody Non-employee record creation request body. Attributes are restricted by user type. Owner of source can update end date. Organization admins can update all available fields.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n updateNonEmployeeRecord: function (id, nonEmployeeRequestBody, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.updateNonEmployeeRecord(id, nonEmployeeRequestBody, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n };\n};\nexports.NonEmployeeLifecycleManagementApiFp = NonEmployeeLifecycleManagementApiFp;\n/**\n * NonEmployeeLifecycleManagementApi - factory interface\n * @export\n */\nvar NonEmployeeLifecycleManagementApiFactory = function (configuration, basePath, axios) {\n var localVarFp = (0, exports.NonEmployeeLifecycleManagementApiFp)(configuration);\n return {\n /**\n * Approves a non-employee approval request and notifies the next approver. The current user must be the requested approver.\n * @summary Approve a Non-Employee Request\n * @param {string} id Non-Employee approval item id (UUID)\n * @param {NonEmployeeApprovalDecision} nonEmployeeApprovalDecision\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n approveNonEmployeeRequest: function (id, nonEmployeeApprovalDecision, axiosOptions) {\n return localVarFp.approveNonEmployeeRequest(id, nonEmployeeApprovalDecision, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This request will create a non-employee record. Requires role context of `idn:nesr:create`\n * @summary Create Non-Employee Record\n * @param {NonEmployeeRequestBody} nonEmployeeRequestBody Non-Employee record creation request body.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n createNonEmployeeRecord: function (nonEmployeeRequestBody, axiosOptions) {\n return localVarFp.createNonEmployeeRecord(nonEmployeeRequestBody, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This request will create a non-employee request and notify the approver. Requires role context of `idn:nesr:create` or the user must own the source.\n * @summary Create Non-Employee Request\n * @param {NonEmployeeRequestBody} nonEmployeeRequestBody Non-Employee creation request body\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n createNonEmployeeRequest: function (nonEmployeeRequestBody, axiosOptions) {\n return localVarFp.createNonEmployeeRequest(nonEmployeeRequestBody, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This request will create a non-employee source. Requires role context of `idn:nesr:create`\n * @summary Create Non-Employee Source\n * @param {NonEmployeeSourceRequestBody} nonEmployeeSourceRequestBody Non-Employee source creation request body.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n createNonEmployeeSource: function (nonEmployeeSourceRequestBody, axiosOptions) {\n return localVarFp.createNonEmployeeSource(nonEmployeeSourceRequestBody, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This API creates a new schema attribute for Non-Employee Source. The schema technical name must be unique in the source. Attempts to create a schema attribute with an existing name will result in a \\\"400.1.409 Reference conflict\\\" response. At most, 10 custom attributes can be created per schema. Attempts to create more than 10 will result in a \\\"400.1.4 Limit violation\\\" response. Requires role context of `idn:nesr:create`\n * @summary Create a new Schema Attribute for Non-Employee Source\n * @param {string} sourceId The Source id\n * @param {NonEmployeeSchemaAttributeBody} nonEmployeeSchemaAttributeBody\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n createNonEmployeeSourceSchemaAttributes: function (sourceId, nonEmployeeSchemaAttributeBody, axiosOptions) {\n return localVarFp.createNonEmployeeSourceSchemaAttributes(sourceId, nonEmployeeSchemaAttributeBody, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This request will delete a non-employee record. Requires role context of `idn:nesr:delete`\n * @summary Delete Non-Employee Record\n * @param {string} id Non-Employee record id (UUID)\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n deleteNonEmployeeRecord: function (id, axiosOptions) {\n return localVarFp.deleteNonEmployeeRecord(id, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This request will delete multiple non-employee records based on the non-employee ids provided. Requires role context of `idn:nesr:delete`\n * @summary Delete Multiple Non-Employee Records\n * @param {DeleteNonEmployeeRecordsInBulkRequest} deleteNonEmployeeRecordsInBulkRequest Non-Employee bulk delete request body.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n deleteNonEmployeeRecordsInBulk: function (deleteNonEmployeeRecordsInBulkRequest, axiosOptions) {\n return localVarFp.deleteNonEmployeeRecordsInBulk(deleteNonEmployeeRecordsInBulkRequest, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This request will delete a non-employee request. Requires role context of `idn:nesr:delete`\n * @summary Delete Non-Employee Request\n * @param {string} id Non-Employee request id in the UUID format\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n deleteNonEmployeeRequest: function (id, axiosOptions) {\n return localVarFp.deleteNonEmployeeRequest(id, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This end-point deletes a specific schema attribute for a non-employee source. Requires role context of `idn:nesr:delete`\n * @summary Delete a Schema Attribute for Non-Employee Source\n * @param {string} attributeId The Schema Attribute Id (UUID)\n * @param {string} sourceId The Source id\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n deleteNonEmployeeSchemaAttribute: function (attributeId, sourceId, axiosOptions) {\n return localVarFp.deleteNonEmployeeSchemaAttribute(attributeId, sourceId, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This request will delete a non-employee source. Requires role context of `idn:nesr:delete`.\n * @summary Delete Non-Employee Source\n * @param {string} sourceId Source Id\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n deleteNonEmployeeSource: function (sourceId, axiosOptions) {\n return localVarFp.deleteNonEmployeeSource(sourceId, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This end-point deletes all custom schema attributes for a non-employee source. Requires role context of `idn:nesr:delete`\n * @summary Delete all custom schema attributes for Non-Employee Source\n * @param {string} sourceId The Source id\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n deleteNonEmployeeSourceSchemaAttributes: function (sourceId, axiosOptions) {\n return localVarFp.deleteNonEmployeeSourceSchemaAttributes(sourceId, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This requests a CSV download for all non-employees from a provided source. Requires role context of `idn:nesr:read`\n * @summary Exports Non-Employee Records to CSV\n * @param {string} id Source Id (UUID)\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n exportNonEmployeeRecords: function (id, axiosOptions) {\n return localVarFp.exportNonEmployeeRecords(id, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This requests a download for the Source Schema Template for a provided source. Requires role context of `idn:nesr:read`\n * @summary Exports Source Schema Template\n * @param {string} id Source Id (UUID)\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n exportNonEmployeeSourceSchemaTemplate: function (id, axiosOptions) {\n return localVarFp.exportNonEmployeeSourceSchemaTemplate(id, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * Gets a non-employee approval item detail. There are two contextual uses for this endpoint: 1. The user has the role context of `idn:nesr:read`, in which case they can get any approval. 2. The user owns the requested approval.\n * @summary Get a non-employee approval item detail\n * @param {string} id Non-Employee approval item id (UUID)\n * @param {boolean} [includeDetail] The object nonEmployeeRequest will not be included detail when set to false. *Default value is true*\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getNonEmployeeApproval: function (id, includeDetail, axiosOptions) {\n return localVarFp.getNonEmployeeApproval(id, includeDetail, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This request will retrieve a summary of non-employee approval requests. There are two contextual uses for the `requested-for` path parameter: 1. The user has the role context of `idn:nesr:read`, in which case he or she may request a summary of all non-employee approval requests assigned to a particular approver by passing in that approver\\'s id. 2. The current user is an approver, in which case \\\"me\\\" should be provided as the `requested-for` value. This will provide the approver with a summary of the approval items assigned to him or her.\n * @summary Get Summary of Non-Employee Approval Requests\n * @param {string} requestedFor The identity (UUID) of the approver for whom for whom the summary is being retrieved. Use \\"me\\" instead to indicate the current user.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getNonEmployeeApprovalSummary: function (requestedFor, axiosOptions) {\n return localVarFp.getNonEmployeeApprovalSummary(requestedFor, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * The nonEmployeeBulkUploadStatus API returns the status of the newest bulk upload job for the specified source. Requires role context of `idn:nesr:read`\n * @summary Obtain the status of bulk upload on the source\n * @param {string} id Source ID (UUID)\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getNonEmployeeBulkUploadStatus: function (id, axiosOptions) {\n return localVarFp.getNonEmployeeBulkUploadStatus(id, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This gets a non-employee record. Requires role context of `idn:nesr:read`\n * @summary Get a Non-Employee Record\n * @param {string} id Non-Employee record id (UUID)\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getNonEmployeeRecord: function (id, axiosOptions) {\n return localVarFp.getNonEmployeeRecord(id, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This gets a non-employee request. There are two contextual uses for this endpoint: 1. The user has the role context of `idn:nesr:read`, in this case the user can get the non-employee request for any user. 2. The user must be the owner of the non-employee request.\n * @summary Get a Non-Employee Request\n * @param {string} id Non-Employee request id (UUID)\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getNonEmployeeRequest: function (id, axiosOptions) {\n return localVarFp.getNonEmployeeRequest(id, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This request will retrieve a summary of non-employee requests. There are two contextual uses for the `requested-for` path parameter: 1. The user has the role context of `idn:nesr:read`, in which case he or she may request a summary of all non-employee approval requests assigned to a particular account manager by passing in that manager\\'s id. 2. The current user is an account manager, in which case \\\"me\\\" should be provided as the `requested-for` value. This will provide the user with a summary of the non-employee requests in the source(s) he or she manages.\n * @summary Get Summary of Non-Employee Requests\n * @param {string} requestedFor The identity (UUID) of the non-employee account manager for whom the summary is being retrieved. Use \\"me\\" instead to indicate the current user.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getNonEmployeeRequestSummary: function (requestedFor, axiosOptions) {\n return localVarFp.getNonEmployeeRequestSummary(requestedFor, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This API gets a schema attribute by Id for the specified Non-Employee SourceId. Requires role context of `idn:nesr:read` or the user must be an account manager of the source.\n * @summary Get Schema Attribute Non-Employee Source\n * @param {string} attributeId The Schema Attribute Id (UUID)\n * @param {string} sourceId The Source id\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getNonEmployeeSchemaAttribute: function (attributeId, sourceId, axiosOptions) {\n return localVarFp.getNonEmployeeSchemaAttribute(attributeId, sourceId, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This gets a non-employee source. There are two contextual uses for the requested-for path parameter: 1. The user has the role context of `idn:nesr:read`, in which case he or she may request any source. 2. The current user is an account manager, in which case the user can only request sources that they own.\n * @summary Get a Non-Employee Source\n * @param {string} sourceId Source Id\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getNonEmployeeSource: function (sourceId, axiosOptions) {\n return localVarFp.getNonEmployeeSource(sourceId, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This API gets the list of schema attributes for the specified Non-Employee SourceId. There are 8 mandatory attributes added to each new Non-Employee Source automatically. Additionaly, user can add up to 10 custom attributes. This interface returns all the mandatory attributes followed by any custom attributes. At most, a total of 18 attributes will be returned. Requires role context of `idn:nesr:read` or the user must be an account manager of the source.\n * @summary List Schema Attributes Non-Employee Source\n * @param {string} sourceId The Source id\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getNonEmployeeSourceSchemaAttributes: function (sourceId, axiosOptions) {\n return localVarFp.getNonEmployeeSourceSchemaAttributes(sourceId, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This post will import, or update, Non-Employee records found in the CSV. Requires role context of `idn:nesr:create`\n * @summary Imports, or Updates, Non-Employee Records\n * @param {string} id Source Id (UUID)\n * @param {any} data\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n importNonEmployeeRecordsInBulk: function (id, data, axiosOptions) {\n return localVarFp.importNonEmployeeRecordsInBulk(id, data, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This gets a list of non-employee approval requests. There are two contextual uses for this endpoint: 1. The user has the role context of `idn:nesr:read`, in which case they can list the approvals for any approver. 2. The user owns the requested approval.\n * @summary Get List of Non-Employee Approval Requests\n * @param {string} [requestedFor] The identity for whom the request was made. *me* indicates the current user.\n * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **approvalStatus**: *eq*\n * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **created, modified**\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n listNonEmployeeApprovals: function (requestedFor, limit, offset, count, filters, sorters, axiosOptions) {\n return localVarFp.listNonEmployeeApprovals(requestedFor, limit, offset, count, filters, sorters, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This gets a list of non-employee records. There are two contextual uses for this endpoint: 1. The user has the role context of `idn:nesr:read`, in which case they can get a list of all of the non-employees. 2. The user is an account manager, in which case they can get a list of the non-employees that they manage.\n * @summary List Non-Employee Records\n * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **id, accountName, sourceId, manager, firstName, lastName, email, phone, startDate, endDate, created, modified**\n * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **sourceId**: *eq*\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n listNonEmployeeRecords: function (limit, offset, count, sorters, filters, axiosOptions) {\n return localVarFp.listNonEmployeeRecords(limit, offset, count, sorters, filters, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This gets a list of non-employee requests. There are two contextual uses for the `requested-for` path parameter: 1. The user has the role context of `idn:nesr:read`, in which case he or she may request a list non-employee requests assigned to a particular account manager by passing in that manager\\'s id. 2. The current user is an account manager, in which case \\\"me\\\" should be provided as the `requested-for` value. This will provide the user with a list of the non-employee requests in the source(s) he or she manages.\n * @summary List Non-Employee Requests\n * @param {string} requestedFor The identity for whom the request was made. *me* indicates the current user.\n * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **created, approvalStatus, firstName, lastName, email, phone, accountName, startDate, endDate**\n * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **sourceId**: *eq*\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n listNonEmployeeRequests: function (requestedFor, limit, offset, count, sorters, filters, axiosOptions) {\n return localVarFp.listNonEmployeeRequests(requestedFor, limit, offset, count, sorters, filters, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This gets a list of non-employee sources. There are two contextual uses for the requested-for path parameter: 1. The user has the role context of `idn:nesr:read`, in which case he or she may request a list sources assigned to a particular account manager by passing in that manager\\'s id. 2. The current user is an account manager, in which case \\\"me\\\" should be provided as the `requested-for` value. This will provide the user with a list of the sources that he or she owns.\n * @summary List Non-Employee Sources\n * @param {string} requestedFor The identity for whom the request was made. *me* indicates the current user.\n * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {boolean} [nonEmployeeCount] The flag to determine whether return a non-employee count associate with source.\n * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **name, created, sourceId**\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n listNonEmployeeSources: function (requestedFor, limit, offset, count, nonEmployeeCount, sorters, axiosOptions) {\n return localVarFp.listNonEmployeeSources(requestedFor, limit, offset, count, nonEmployeeCount, sorters, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This request will patch a non-employee record. There are two contextual uses for this endpoint: 1. The user has the role context of `idn:nesr:update`, in which case they update all available fields. 2. The user is owner of the source, in this case they can only update the end date.\n * @summary Patch Non-Employee Record\n * @param {string} id Non-employee record id (UUID)\n * @param {Array} jsonPatchOperation A list of non-employee update operations according to the [JSON Patch](https://tools.ietf.org/html/rfc6902) standard. Attributes are restricted by user type. Owner of source can update end date. Organization admins can update all available fields.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n patchNonEmployeeRecord: function (id, jsonPatchOperation, axiosOptions) {\n return localVarFp.patchNonEmployeeRecord(id, jsonPatchOperation, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This end-point patches a specific schema attribute for a non-employee SourceId. Requires role context of `idn:nesr:update`\n * @summary Patch a Schema Attribute for Non-Employee Source\n * @param {string} attributeId The Schema Attribute Id (UUID)\n * @param {string} sourceId The Source id\n * @param {Array} jsonPatchOperation A list of schema attribute update operations according to the [JSON Patch](https://tools.ietf.org/html/rfc6902) standard. The following properties are allowed for update \\':\\' \\'label\\', \\'helpText\\', \\'placeholder\\', \\'required\\'.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n patchNonEmployeeSchemaAttribute: function (attributeId, sourceId, jsonPatchOperation, axiosOptions) {\n return localVarFp.patchNonEmployeeSchemaAttribute(attributeId, sourceId, jsonPatchOperation, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * patch a non-employee source. (partial update)
Patchable field: **name, description, approvers, accountManagers** Requires role context of `idn:nesr:update`.\n * @summary Patch a Non-Employee Source\n * @param {string} sourceId Source Id\n * @param {Array} jsonPatchOperation A list of non-employee source update operations according to the [JSON Patch](https://tools.ietf.org/html/rfc6902) standard.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n patchNonEmployeeSource: function (sourceId, jsonPatchOperation, axiosOptions) {\n return localVarFp.patchNonEmployeeSource(sourceId, jsonPatchOperation, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This endpoint will reject an approval item request and notify user. The current user must be the requested approver.\n * @summary Reject a Non-Employee Request\n * @param {string} id Non-Employee approval item id (UUID)\n * @param {NonEmployeeRejectApprovalDecision} nonEmployeeRejectApprovalDecision\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n rejectNonEmployeeRequest: function (id, nonEmployeeRejectApprovalDecision, axiosOptions) {\n return localVarFp.rejectNonEmployeeRequest(id, nonEmployeeRejectApprovalDecision, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This request will update a non-employee record. There are two contextual uses for this endpoint: 1. The user has the role context of `idn:nesr:update`, in which case they update all available fields. 2. The user is owner of the source, in this case they can only update the end date.\n * @summary Update Non-Employee Record\n * @param {string} id Non-employee record id (UUID)\n * @param {NonEmployeeRequestBody} nonEmployeeRequestBody Non-employee record creation request body. Attributes are restricted by user type. Owner of source can update end date. Organization admins can update all available fields.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n updateNonEmployeeRecord: function (id, nonEmployeeRequestBody, axiosOptions) {\n return localVarFp.updateNonEmployeeRecord(id, nonEmployeeRequestBody, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n };\n};\nexports.NonEmployeeLifecycleManagementApiFactory = NonEmployeeLifecycleManagementApiFactory;\n/**\n * NonEmployeeLifecycleManagementApi - object-oriented interface\n * @export\n * @class NonEmployeeLifecycleManagementApi\n * @extends {BaseAPI}\n */\nvar NonEmployeeLifecycleManagementApi = /** @class */ (function (_super) {\n __extends(NonEmployeeLifecycleManagementApi, _super);\n function NonEmployeeLifecycleManagementApi() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n * Approves a non-employee approval request and notifies the next approver. The current user must be the requested approver.\n * @summary Approve a Non-Employee Request\n * @param {NonEmployeeLifecycleManagementApiApproveNonEmployeeRequestRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof NonEmployeeLifecycleManagementApi\n */\n NonEmployeeLifecycleManagementApi.prototype.approveNonEmployeeRequest = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.NonEmployeeLifecycleManagementApiFp)(this.configuration).approveNonEmployeeRequest(requestParameters.id, requestParameters.nonEmployeeApprovalDecision, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This request will create a non-employee record. Requires role context of `idn:nesr:create`\n * @summary Create Non-Employee Record\n * @param {NonEmployeeLifecycleManagementApiCreateNonEmployeeRecordRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof NonEmployeeLifecycleManagementApi\n */\n NonEmployeeLifecycleManagementApi.prototype.createNonEmployeeRecord = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.NonEmployeeLifecycleManagementApiFp)(this.configuration).createNonEmployeeRecord(requestParameters.nonEmployeeRequestBody, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This request will create a non-employee request and notify the approver. Requires role context of `idn:nesr:create` or the user must own the source.\n * @summary Create Non-Employee Request\n * @param {NonEmployeeLifecycleManagementApiCreateNonEmployeeRequestRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof NonEmployeeLifecycleManagementApi\n */\n NonEmployeeLifecycleManagementApi.prototype.createNonEmployeeRequest = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.NonEmployeeLifecycleManagementApiFp)(this.configuration).createNonEmployeeRequest(requestParameters.nonEmployeeRequestBody, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This request will create a non-employee source. Requires role context of `idn:nesr:create`\n * @summary Create Non-Employee Source\n * @param {NonEmployeeLifecycleManagementApiCreateNonEmployeeSourceRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof NonEmployeeLifecycleManagementApi\n */\n NonEmployeeLifecycleManagementApi.prototype.createNonEmployeeSource = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.NonEmployeeLifecycleManagementApiFp)(this.configuration).createNonEmployeeSource(requestParameters.nonEmployeeSourceRequestBody, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This API creates a new schema attribute for Non-Employee Source. The schema technical name must be unique in the source. Attempts to create a schema attribute with an existing name will result in a \\\"400.1.409 Reference conflict\\\" response. At most, 10 custom attributes can be created per schema. Attempts to create more than 10 will result in a \\\"400.1.4 Limit violation\\\" response. Requires role context of `idn:nesr:create`\n * @summary Create a new Schema Attribute for Non-Employee Source\n * @param {NonEmployeeLifecycleManagementApiCreateNonEmployeeSourceSchemaAttributesRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof NonEmployeeLifecycleManagementApi\n */\n NonEmployeeLifecycleManagementApi.prototype.createNonEmployeeSourceSchemaAttributes = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.NonEmployeeLifecycleManagementApiFp)(this.configuration).createNonEmployeeSourceSchemaAttributes(requestParameters.sourceId, requestParameters.nonEmployeeSchemaAttributeBody, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This request will delete a non-employee record. Requires role context of `idn:nesr:delete`\n * @summary Delete Non-Employee Record\n * @param {NonEmployeeLifecycleManagementApiDeleteNonEmployeeRecordRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof NonEmployeeLifecycleManagementApi\n */\n NonEmployeeLifecycleManagementApi.prototype.deleteNonEmployeeRecord = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.NonEmployeeLifecycleManagementApiFp)(this.configuration).deleteNonEmployeeRecord(requestParameters.id, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This request will delete multiple non-employee records based on the non-employee ids provided. Requires role context of `idn:nesr:delete`\n * @summary Delete Multiple Non-Employee Records\n * @param {NonEmployeeLifecycleManagementApiDeleteNonEmployeeRecordsInBulkRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof NonEmployeeLifecycleManagementApi\n */\n NonEmployeeLifecycleManagementApi.prototype.deleteNonEmployeeRecordsInBulk = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.NonEmployeeLifecycleManagementApiFp)(this.configuration).deleteNonEmployeeRecordsInBulk(requestParameters.deleteNonEmployeeRecordsInBulkRequest, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This request will delete a non-employee request. Requires role context of `idn:nesr:delete`\n * @summary Delete Non-Employee Request\n * @param {NonEmployeeLifecycleManagementApiDeleteNonEmployeeRequestRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof NonEmployeeLifecycleManagementApi\n */\n NonEmployeeLifecycleManagementApi.prototype.deleteNonEmployeeRequest = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.NonEmployeeLifecycleManagementApiFp)(this.configuration).deleteNonEmployeeRequest(requestParameters.id, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This end-point deletes a specific schema attribute for a non-employee source. Requires role context of `idn:nesr:delete`\n * @summary Delete a Schema Attribute for Non-Employee Source\n * @param {NonEmployeeLifecycleManagementApiDeleteNonEmployeeSchemaAttributeRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof NonEmployeeLifecycleManagementApi\n */\n NonEmployeeLifecycleManagementApi.prototype.deleteNonEmployeeSchemaAttribute = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.NonEmployeeLifecycleManagementApiFp)(this.configuration).deleteNonEmployeeSchemaAttribute(requestParameters.attributeId, requestParameters.sourceId, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This request will delete a non-employee source. Requires role context of `idn:nesr:delete`.\n * @summary Delete Non-Employee Source\n * @param {NonEmployeeLifecycleManagementApiDeleteNonEmployeeSourceRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof NonEmployeeLifecycleManagementApi\n */\n NonEmployeeLifecycleManagementApi.prototype.deleteNonEmployeeSource = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.NonEmployeeLifecycleManagementApiFp)(this.configuration).deleteNonEmployeeSource(requestParameters.sourceId, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This end-point deletes all custom schema attributes for a non-employee source. Requires role context of `idn:nesr:delete`\n * @summary Delete all custom schema attributes for Non-Employee Source\n * @param {NonEmployeeLifecycleManagementApiDeleteNonEmployeeSourceSchemaAttributesRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof NonEmployeeLifecycleManagementApi\n */\n NonEmployeeLifecycleManagementApi.prototype.deleteNonEmployeeSourceSchemaAttributes = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.NonEmployeeLifecycleManagementApiFp)(this.configuration).deleteNonEmployeeSourceSchemaAttributes(requestParameters.sourceId, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This requests a CSV download for all non-employees from a provided source. Requires role context of `idn:nesr:read`\n * @summary Exports Non-Employee Records to CSV\n * @param {NonEmployeeLifecycleManagementApiExportNonEmployeeRecordsRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof NonEmployeeLifecycleManagementApi\n */\n NonEmployeeLifecycleManagementApi.prototype.exportNonEmployeeRecords = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.NonEmployeeLifecycleManagementApiFp)(this.configuration).exportNonEmployeeRecords(requestParameters.id, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This requests a download for the Source Schema Template for a provided source. Requires role context of `idn:nesr:read`\n * @summary Exports Source Schema Template\n * @param {NonEmployeeLifecycleManagementApiExportNonEmployeeSourceSchemaTemplateRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof NonEmployeeLifecycleManagementApi\n */\n NonEmployeeLifecycleManagementApi.prototype.exportNonEmployeeSourceSchemaTemplate = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.NonEmployeeLifecycleManagementApiFp)(this.configuration).exportNonEmployeeSourceSchemaTemplate(requestParameters.id, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * Gets a non-employee approval item detail. There are two contextual uses for this endpoint: 1. The user has the role context of `idn:nesr:read`, in which case they can get any approval. 2. The user owns the requested approval.\n * @summary Get a non-employee approval item detail\n * @param {NonEmployeeLifecycleManagementApiGetNonEmployeeApprovalRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof NonEmployeeLifecycleManagementApi\n */\n NonEmployeeLifecycleManagementApi.prototype.getNonEmployeeApproval = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.NonEmployeeLifecycleManagementApiFp)(this.configuration).getNonEmployeeApproval(requestParameters.id, requestParameters.includeDetail, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This request will retrieve a summary of non-employee approval requests. There are two contextual uses for the `requested-for` path parameter: 1. The user has the role context of `idn:nesr:read`, in which case he or she may request a summary of all non-employee approval requests assigned to a particular approver by passing in that approver\\'s id. 2. The current user is an approver, in which case \\\"me\\\" should be provided as the `requested-for` value. This will provide the approver with a summary of the approval items assigned to him or her.\n * @summary Get Summary of Non-Employee Approval Requests\n * @param {NonEmployeeLifecycleManagementApiGetNonEmployeeApprovalSummaryRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof NonEmployeeLifecycleManagementApi\n */\n NonEmployeeLifecycleManagementApi.prototype.getNonEmployeeApprovalSummary = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.NonEmployeeLifecycleManagementApiFp)(this.configuration).getNonEmployeeApprovalSummary(requestParameters.requestedFor, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * The nonEmployeeBulkUploadStatus API returns the status of the newest bulk upload job for the specified source. Requires role context of `idn:nesr:read`\n * @summary Obtain the status of bulk upload on the source\n * @param {NonEmployeeLifecycleManagementApiGetNonEmployeeBulkUploadStatusRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof NonEmployeeLifecycleManagementApi\n */\n NonEmployeeLifecycleManagementApi.prototype.getNonEmployeeBulkUploadStatus = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.NonEmployeeLifecycleManagementApiFp)(this.configuration).getNonEmployeeBulkUploadStatus(requestParameters.id, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This gets a non-employee record. Requires role context of `idn:nesr:read`\n * @summary Get a Non-Employee Record\n * @param {NonEmployeeLifecycleManagementApiGetNonEmployeeRecordRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof NonEmployeeLifecycleManagementApi\n */\n NonEmployeeLifecycleManagementApi.prototype.getNonEmployeeRecord = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.NonEmployeeLifecycleManagementApiFp)(this.configuration).getNonEmployeeRecord(requestParameters.id, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This gets a non-employee request. There are two contextual uses for this endpoint: 1. The user has the role context of `idn:nesr:read`, in this case the user can get the non-employee request for any user. 2. The user must be the owner of the non-employee request.\n * @summary Get a Non-Employee Request\n * @param {NonEmployeeLifecycleManagementApiGetNonEmployeeRequestRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof NonEmployeeLifecycleManagementApi\n */\n NonEmployeeLifecycleManagementApi.prototype.getNonEmployeeRequest = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.NonEmployeeLifecycleManagementApiFp)(this.configuration).getNonEmployeeRequest(requestParameters.id, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This request will retrieve a summary of non-employee requests. There are two contextual uses for the `requested-for` path parameter: 1. The user has the role context of `idn:nesr:read`, in which case he or she may request a summary of all non-employee approval requests assigned to a particular account manager by passing in that manager\\'s id. 2. The current user is an account manager, in which case \\\"me\\\" should be provided as the `requested-for` value. This will provide the user with a summary of the non-employee requests in the source(s) he or she manages.\n * @summary Get Summary of Non-Employee Requests\n * @param {NonEmployeeLifecycleManagementApiGetNonEmployeeRequestSummaryRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof NonEmployeeLifecycleManagementApi\n */\n NonEmployeeLifecycleManagementApi.prototype.getNonEmployeeRequestSummary = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.NonEmployeeLifecycleManagementApiFp)(this.configuration).getNonEmployeeRequestSummary(requestParameters.requestedFor, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This API gets a schema attribute by Id for the specified Non-Employee SourceId. Requires role context of `idn:nesr:read` or the user must be an account manager of the source.\n * @summary Get Schema Attribute Non-Employee Source\n * @param {NonEmployeeLifecycleManagementApiGetNonEmployeeSchemaAttributeRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof NonEmployeeLifecycleManagementApi\n */\n NonEmployeeLifecycleManagementApi.prototype.getNonEmployeeSchemaAttribute = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.NonEmployeeLifecycleManagementApiFp)(this.configuration).getNonEmployeeSchemaAttribute(requestParameters.attributeId, requestParameters.sourceId, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This gets a non-employee source. There are two contextual uses for the requested-for path parameter: 1. The user has the role context of `idn:nesr:read`, in which case he or she may request any source. 2. The current user is an account manager, in which case the user can only request sources that they own.\n * @summary Get a Non-Employee Source\n * @param {NonEmployeeLifecycleManagementApiGetNonEmployeeSourceRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof NonEmployeeLifecycleManagementApi\n */\n NonEmployeeLifecycleManagementApi.prototype.getNonEmployeeSource = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.NonEmployeeLifecycleManagementApiFp)(this.configuration).getNonEmployeeSource(requestParameters.sourceId, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This API gets the list of schema attributes for the specified Non-Employee SourceId. There are 8 mandatory attributes added to each new Non-Employee Source automatically. Additionaly, user can add up to 10 custom attributes. This interface returns all the mandatory attributes followed by any custom attributes. At most, a total of 18 attributes will be returned. Requires role context of `idn:nesr:read` or the user must be an account manager of the source.\n * @summary List Schema Attributes Non-Employee Source\n * @param {NonEmployeeLifecycleManagementApiGetNonEmployeeSourceSchemaAttributesRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof NonEmployeeLifecycleManagementApi\n */\n NonEmployeeLifecycleManagementApi.prototype.getNonEmployeeSourceSchemaAttributes = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.NonEmployeeLifecycleManagementApiFp)(this.configuration).getNonEmployeeSourceSchemaAttributes(requestParameters.sourceId, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This post will import, or update, Non-Employee records found in the CSV. Requires role context of `idn:nesr:create`\n * @summary Imports, or Updates, Non-Employee Records\n * @param {NonEmployeeLifecycleManagementApiImportNonEmployeeRecordsInBulkRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof NonEmployeeLifecycleManagementApi\n */\n NonEmployeeLifecycleManagementApi.prototype.importNonEmployeeRecordsInBulk = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.NonEmployeeLifecycleManagementApiFp)(this.configuration).importNonEmployeeRecordsInBulk(requestParameters.id, requestParameters.data, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This gets a list of non-employee approval requests. There are two contextual uses for this endpoint: 1. The user has the role context of `idn:nesr:read`, in which case they can list the approvals for any approver. 2. The user owns the requested approval.\n * @summary Get List of Non-Employee Approval Requests\n * @param {NonEmployeeLifecycleManagementApiListNonEmployeeApprovalsRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof NonEmployeeLifecycleManagementApi\n */\n NonEmployeeLifecycleManagementApi.prototype.listNonEmployeeApprovals = function (requestParameters, axiosOptions) {\n var _this = this;\n if (requestParameters === void 0) { requestParameters = {}; }\n return (0, exports.NonEmployeeLifecycleManagementApiFp)(this.configuration).listNonEmployeeApprovals(requestParameters.requestedFor, requestParameters.limit, requestParameters.offset, requestParameters.count, requestParameters.filters, requestParameters.sorters, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This gets a list of non-employee records. There are two contextual uses for this endpoint: 1. The user has the role context of `idn:nesr:read`, in which case they can get a list of all of the non-employees. 2. The user is an account manager, in which case they can get a list of the non-employees that they manage.\n * @summary List Non-Employee Records\n * @param {NonEmployeeLifecycleManagementApiListNonEmployeeRecordsRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof NonEmployeeLifecycleManagementApi\n */\n NonEmployeeLifecycleManagementApi.prototype.listNonEmployeeRecords = function (requestParameters, axiosOptions) {\n var _this = this;\n if (requestParameters === void 0) { requestParameters = {}; }\n return (0, exports.NonEmployeeLifecycleManagementApiFp)(this.configuration).listNonEmployeeRecords(requestParameters.limit, requestParameters.offset, requestParameters.count, requestParameters.sorters, requestParameters.filters, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This gets a list of non-employee requests. There are two contextual uses for the `requested-for` path parameter: 1. The user has the role context of `idn:nesr:read`, in which case he or she may request a list non-employee requests assigned to a particular account manager by passing in that manager\\'s id. 2. The current user is an account manager, in which case \\\"me\\\" should be provided as the `requested-for` value. This will provide the user with a list of the non-employee requests in the source(s) he or she manages.\n * @summary List Non-Employee Requests\n * @param {NonEmployeeLifecycleManagementApiListNonEmployeeRequestsRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof NonEmployeeLifecycleManagementApi\n */\n NonEmployeeLifecycleManagementApi.prototype.listNonEmployeeRequests = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.NonEmployeeLifecycleManagementApiFp)(this.configuration).listNonEmployeeRequests(requestParameters.requestedFor, requestParameters.limit, requestParameters.offset, requestParameters.count, requestParameters.sorters, requestParameters.filters, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This gets a list of non-employee sources. There are two contextual uses for the requested-for path parameter: 1. The user has the role context of `idn:nesr:read`, in which case he or she may request a list sources assigned to a particular account manager by passing in that manager\\'s id. 2. The current user is an account manager, in which case \\\"me\\\" should be provided as the `requested-for` value. This will provide the user with a list of the sources that he or she owns.\n * @summary List Non-Employee Sources\n * @param {NonEmployeeLifecycleManagementApiListNonEmployeeSourcesRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof NonEmployeeLifecycleManagementApi\n */\n NonEmployeeLifecycleManagementApi.prototype.listNonEmployeeSources = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.NonEmployeeLifecycleManagementApiFp)(this.configuration).listNonEmployeeSources(requestParameters.requestedFor, requestParameters.limit, requestParameters.offset, requestParameters.count, requestParameters.nonEmployeeCount, requestParameters.sorters, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This request will patch a non-employee record. There are two contextual uses for this endpoint: 1. The user has the role context of `idn:nesr:update`, in which case they update all available fields. 2. The user is owner of the source, in this case they can only update the end date.\n * @summary Patch Non-Employee Record\n * @param {NonEmployeeLifecycleManagementApiPatchNonEmployeeRecordRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof NonEmployeeLifecycleManagementApi\n */\n NonEmployeeLifecycleManagementApi.prototype.patchNonEmployeeRecord = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.NonEmployeeLifecycleManagementApiFp)(this.configuration).patchNonEmployeeRecord(requestParameters.id, requestParameters.jsonPatchOperation, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This end-point patches a specific schema attribute for a non-employee SourceId. Requires role context of `idn:nesr:update`\n * @summary Patch a Schema Attribute for Non-Employee Source\n * @param {NonEmployeeLifecycleManagementApiPatchNonEmployeeSchemaAttributeRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof NonEmployeeLifecycleManagementApi\n */\n NonEmployeeLifecycleManagementApi.prototype.patchNonEmployeeSchemaAttribute = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.NonEmployeeLifecycleManagementApiFp)(this.configuration).patchNonEmployeeSchemaAttribute(requestParameters.attributeId, requestParameters.sourceId, requestParameters.jsonPatchOperation, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * patch a non-employee source. (partial update)
Patchable field: **name, description, approvers, accountManagers** Requires role context of `idn:nesr:update`.\n * @summary Patch a Non-Employee Source\n * @param {NonEmployeeLifecycleManagementApiPatchNonEmployeeSourceRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof NonEmployeeLifecycleManagementApi\n */\n NonEmployeeLifecycleManagementApi.prototype.patchNonEmployeeSource = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.NonEmployeeLifecycleManagementApiFp)(this.configuration).patchNonEmployeeSource(requestParameters.sourceId, requestParameters.jsonPatchOperation, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This endpoint will reject an approval item request and notify user. The current user must be the requested approver.\n * @summary Reject a Non-Employee Request\n * @param {NonEmployeeLifecycleManagementApiRejectNonEmployeeRequestRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof NonEmployeeLifecycleManagementApi\n */\n NonEmployeeLifecycleManagementApi.prototype.rejectNonEmployeeRequest = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.NonEmployeeLifecycleManagementApiFp)(this.configuration).rejectNonEmployeeRequest(requestParameters.id, requestParameters.nonEmployeeRejectApprovalDecision, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This request will update a non-employee record. There are two contextual uses for this endpoint: 1. The user has the role context of `idn:nesr:update`, in which case they update all available fields. 2. The user is owner of the source, in this case they can only update the end date.\n * @summary Update Non-Employee Record\n * @param {NonEmployeeLifecycleManagementApiUpdateNonEmployeeRecordRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof NonEmployeeLifecycleManagementApi\n */\n NonEmployeeLifecycleManagementApi.prototype.updateNonEmployeeRecord = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.NonEmployeeLifecycleManagementApiFp)(this.configuration).updateNonEmployeeRecord(requestParameters.id, requestParameters.nonEmployeeRequestBody, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n return NonEmployeeLifecycleManagementApi;\n}(base_1.BaseAPI));\nexports.NonEmployeeLifecycleManagementApi = NonEmployeeLifecycleManagementApi;\n/**\n * OAuthClientsApi - axios parameter creator\n * @export\n */\nvar OAuthClientsApiAxiosParamCreator = function (configuration) {\n var _this = this;\n return {\n /**\n * This creates an OAuth client.\n * @summary Create OAuth Client\n * @param {CreateOAuthClientRequest} createOAuthClientRequest\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n createOauthClient: function (createOAuthClientRequest, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'createOAuthClientRequest' is not null or undefined\n (0, common_1.assertParamExists)('createOauthClient', 'createOAuthClientRequest', createOAuthClientRequest);\n localVarPath = \"/oauth-clients\";\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n localVarHeaderParameter['Content-Type'] = 'application/json';\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(createOAuthClientRequest, localVarRequestOptions, configuration);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This deletes an OAuth client.\n * @summary Delete OAuth Client\n * @param {string} id The OAuth client id\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n deleteOauthClient: function (id, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'id' is not null or undefined\n (0, common_1.assertParamExists)('deleteOauthClient', 'id', id);\n localVarPath = \"/oauth-clients/{id}\"\n .replace(\"{\".concat(\"id\", \"}\"), encodeURIComponent(String(id)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'DELETE' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This gets details of an OAuth client.\n * @summary Get OAuth Client\n * @param {string} id The OAuth client id\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getOauthClient: function (id, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'id' is not null or undefined\n (0, common_1.assertParamExists)('getOauthClient', 'id', id);\n localVarPath = \"/oauth-clients/{id}\"\n .replace(\"{\".concat(\"id\", \"}\"), encodeURIComponent(String(id)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This gets a list of OAuth clients.\n * @summary List OAuth Clients\n * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **lastUsed**: *le, isnull*\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n listOauthClients: function (filters, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n localVarPath = \"/oauth-clients\";\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n if (filters !== undefined) {\n localVarQueryParameter['filters'] = filters;\n }\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This performs a targeted update to the field(s) of an OAuth client.\n * @summary Patch OAuth Client\n * @param {string} id The OAuth client id\n * @param {Array} jsonPatchOperation A list of OAuth client update operations according to the [JSON Patch](https://tools.ietf.org/html/rfc6902) standard. The following fields are patchable: * tenant * businessName * homepageUrl * name * description * accessTokenValiditySeconds * refreshTokenValiditySeconds * redirectUris * grantTypes * accessType * enabled * strongAuthSupported * claimsSupported\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n patchOauthClient: function (id, jsonPatchOperation, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'id' is not null or undefined\n (0, common_1.assertParamExists)('patchOauthClient', 'id', id);\n // verify required parameter 'jsonPatchOperation' is not null or undefined\n (0, common_1.assertParamExists)('patchOauthClient', 'jsonPatchOperation', jsonPatchOperation);\n localVarPath = \"/oauth-clients/{id}\"\n .replace(\"{\".concat(\"id\", \"}\"), encodeURIComponent(String(id)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'PATCH' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n localVarHeaderParameter['Content-Type'] = 'application/json-patch+json';\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(jsonPatchOperation, localVarRequestOptions, configuration);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n };\n};\nexports.OAuthClientsApiAxiosParamCreator = OAuthClientsApiAxiosParamCreator;\n/**\n * OAuthClientsApi - functional programming interface\n * @export\n */\nvar OAuthClientsApiFp = function (configuration) {\n var localVarAxiosParamCreator = (0, exports.OAuthClientsApiAxiosParamCreator)(configuration);\n return {\n /**\n * This creates an OAuth client.\n * @summary Create OAuth Client\n * @param {CreateOAuthClientRequest} createOAuthClientRequest\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n createOauthClient: function (createOAuthClientRequest, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.createOauthClient(createOAuthClientRequest, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This deletes an OAuth client.\n * @summary Delete OAuth Client\n * @param {string} id The OAuth client id\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n deleteOauthClient: function (id, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.deleteOauthClient(id, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This gets details of an OAuth client.\n * @summary Get OAuth Client\n * @param {string} id The OAuth client id\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getOauthClient: function (id, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.getOauthClient(id, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This gets a list of OAuth clients.\n * @summary List OAuth Clients\n * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **lastUsed**: *le, isnull*\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n listOauthClients: function (filters, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.listOauthClients(filters, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This performs a targeted update to the field(s) of an OAuth client.\n * @summary Patch OAuth Client\n * @param {string} id The OAuth client id\n * @param {Array} jsonPatchOperation A list of OAuth client update operations according to the [JSON Patch](https://tools.ietf.org/html/rfc6902) standard. The following fields are patchable: * tenant * businessName * homepageUrl * name * description * accessTokenValiditySeconds * refreshTokenValiditySeconds * redirectUris * grantTypes * accessType * enabled * strongAuthSupported * claimsSupported\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n patchOauthClient: function (id, jsonPatchOperation, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.patchOauthClient(id, jsonPatchOperation, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n };\n};\nexports.OAuthClientsApiFp = OAuthClientsApiFp;\n/**\n * OAuthClientsApi - factory interface\n * @export\n */\nvar OAuthClientsApiFactory = function (configuration, basePath, axios) {\n var localVarFp = (0, exports.OAuthClientsApiFp)(configuration);\n return {\n /**\n * This creates an OAuth client.\n * @summary Create OAuth Client\n * @param {CreateOAuthClientRequest} createOAuthClientRequest\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n createOauthClient: function (createOAuthClientRequest, axiosOptions) {\n return localVarFp.createOauthClient(createOAuthClientRequest, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This deletes an OAuth client.\n * @summary Delete OAuth Client\n * @param {string} id The OAuth client id\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n deleteOauthClient: function (id, axiosOptions) {\n return localVarFp.deleteOauthClient(id, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This gets details of an OAuth client.\n * @summary Get OAuth Client\n * @param {string} id The OAuth client id\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getOauthClient: function (id, axiosOptions) {\n return localVarFp.getOauthClient(id, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This gets a list of OAuth clients.\n * @summary List OAuth Clients\n * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **lastUsed**: *le, isnull*\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n listOauthClients: function (filters, axiosOptions) {\n return localVarFp.listOauthClients(filters, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This performs a targeted update to the field(s) of an OAuth client.\n * @summary Patch OAuth Client\n * @param {string} id The OAuth client id\n * @param {Array} jsonPatchOperation A list of OAuth client update operations according to the [JSON Patch](https://tools.ietf.org/html/rfc6902) standard. The following fields are patchable: * tenant * businessName * homepageUrl * name * description * accessTokenValiditySeconds * refreshTokenValiditySeconds * redirectUris * grantTypes * accessType * enabled * strongAuthSupported * claimsSupported\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n patchOauthClient: function (id, jsonPatchOperation, axiosOptions) {\n return localVarFp.patchOauthClient(id, jsonPatchOperation, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n };\n};\nexports.OAuthClientsApiFactory = OAuthClientsApiFactory;\n/**\n * OAuthClientsApi - object-oriented interface\n * @export\n * @class OAuthClientsApi\n * @extends {BaseAPI}\n */\nvar OAuthClientsApi = /** @class */ (function (_super) {\n __extends(OAuthClientsApi, _super);\n function OAuthClientsApi() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n * This creates an OAuth client.\n * @summary Create OAuth Client\n * @param {OAuthClientsApiCreateOauthClientRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof OAuthClientsApi\n */\n OAuthClientsApi.prototype.createOauthClient = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.OAuthClientsApiFp)(this.configuration).createOauthClient(requestParameters.createOAuthClientRequest, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This deletes an OAuth client.\n * @summary Delete OAuth Client\n * @param {OAuthClientsApiDeleteOauthClientRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof OAuthClientsApi\n */\n OAuthClientsApi.prototype.deleteOauthClient = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.OAuthClientsApiFp)(this.configuration).deleteOauthClient(requestParameters.id, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This gets details of an OAuth client.\n * @summary Get OAuth Client\n * @param {OAuthClientsApiGetOauthClientRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof OAuthClientsApi\n */\n OAuthClientsApi.prototype.getOauthClient = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.OAuthClientsApiFp)(this.configuration).getOauthClient(requestParameters.id, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This gets a list of OAuth clients.\n * @summary List OAuth Clients\n * @param {OAuthClientsApiListOauthClientsRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof OAuthClientsApi\n */\n OAuthClientsApi.prototype.listOauthClients = function (requestParameters, axiosOptions) {\n var _this = this;\n if (requestParameters === void 0) { requestParameters = {}; }\n return (0, exports.OAuthClientsApiFp)(this.configuration).listOauthClients(requestParameters.filters, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This performs a targeted update to the field(s) of an OAuth client.\n * @summary Patch OAuth Client\n * @param {OAuthClientsApiPatchOauthClientRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof OAuthClientsApi\n */\n OAuthClientsApi.prototype.patchOauthClient = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.OAuthClientsApiFp)(this.configuration).patchOauthClient(requestParameters.id, requestParameters.jsonPatchOperation, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n return OAuthClientsApi;\n}(base_1.BaseAPI));\nexports.OAuthClientsApi = OAuthClientsApi;\n/**\n * PasswordConfigurationApi - axios parameter creator\n * @export\n */\nvar PasswordConfigurationApiAxiosParamCreator = function (configuration) {\n var _this = this;\n return {\n /**\n * This API creates the password org config. Unspecified fields will use default value. To be able to use the custom password instructions, you must set the `customInstructionsEnabled` field to \\\"true\\\". Requires ORG_ADMIN, API role or authorization scope of \\'idn:password-org-config:write\\'\n * @summary Create Password Org Config\n * @param {PasswordOrgConfig} passwordOrgConfig\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n createPasswordOrgConfig: function (passwordOrgConfig, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'passwordOrgConfig' is not null or undefined\n (0, common_1.assertParamExists)('createPasswordOrgConfig', 'passwordOrgConfig', passwordOrgConfig);\n localVarPath = \"/password-org-config\";\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n localVarHeaderParameter['Content-Type'] = 'application/json';\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(passwordOrgConfig, localVarRequestOptions, configuration);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This API returns the password org config . Requires ORG_ADMIN, API role or authorization scope of \\'idn:password-org-config:read\\'\n * @summary Get Password Org Config\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getPasswordOrgConfig: function (axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n localVarPath = \"/password-org-config\";\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This API updates the password org config for specified fields. Other fields will keep original value. You must set the `customInstructionsEnabled` field to \\\"true\\\" to be able to use custom password instructions. Requires ORG_ADMIN, API role or authorization scope of \\'idn:password-org-config:write\\'\n * @summary Update Password Org Config\n * @param {PasswordOrgConfig} passwordOrgConfig\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n putPasswordOrgConfig: function (passwordOrgConfig, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'passwordOrgConfig' is not null or undefined\n (0, common_1.assertParamExists)('putPasswordOrgConfig', 'passwordOrgConfig', passwordOrgConfig);\n localVarPath = \"/password-org-config\";\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'PUT' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n localVarHeaderParameter['Content-Type'] = 'application/json';\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(passwordOrgConfig, localVarRequestOptions, configuration);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n };\n};\nexports.PasswordConfigurationApiAxiosParamCreator = PasswordConfigurationApiAxiosParamCreator;\n/**\n * PasswordConfigurationApi - functional programming interface\n * @export\n */\nvar PasswordConfigurationApiFp = function (configuration) {\n var localVarAxiosParamCreator = (0, exports.PasswordConfigurationApiAxiosParamCreator)(configuration);\n return {\n /**\n * This API creates the password org config. Unspecified fields will use default value. To be able to use the custom password instructions, you must set the `customInstructionsEnabled` field to \\\"true\\\". Requires ORG_ADMIN, API role or authorization scope of \\'idn:password-org-config:write\\'\n * @summary Create Password Org Config\n * @param {PasswordOrgConfig} passwordOrgConfig\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n createPasswordOrgConfig: function (passwordOrgConfig, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.createPasswordOrgConfig(passwordOrgConfig, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This API returns the password org config . Requires ORG_ADMIN, API role or authorization scope of \\'idn:password-org-config:read\\'\n * @summary Get Password Org Config\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getPasswordOrgConfig: function (axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.getPasswordOrgConfig(axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This API updates the password org config for specified fields. Other fields will keep original value. You must set the `customInstructionsEnabled` field to \\\"true\\\" to be able to use custom password instructions. Requires ORG_ADMIN, API role or authorization scope of \\'idn:password-org-config:write\\'\n * @summary Update Password Org Config\n * @param {PasswordOrgConfig} passwordOrgConfig\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n putPasswordOrgConfig: function (passwordOrgConfig, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.putPasswordOrgConfig(passwordOrgConfig, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n };\n};\nexports.PasswordConfigurationApiFp = PasswordConfigurationApiFp;\n/**\n * PasswordConfigurationApi - factory interface\n * @export\n */\nvar PasswordConfigurationApiFactory = function (configuration, basePath, axios) {\n var localVarFp = (0, exports.PasswordConfigurationApiFp)(configuration);\n return {\n /**\n * This API creates the password org config. Unspecified fields will use default value. To be able to use the custom password instructions, you must set the `customInstructionsEnabled` field to \\\"true\\\". Requires ORG_ADMIN, API role or authorization scope of \\'idn:password-org-config:write\\'\n * @summary Create Password Org Config\n * @param {PasswordOrgConfig} passwordOrgConfig\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n createPasswordOrgConfig: function (passwordOrgConfig, axiosOptions) {\n return localVarFp.createPasswordOrgConfig(passwordOrgConfig, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This API returns the password org config . Requires ORG_ADMIN, API role or authorization scope of \\'idn:password-org-config:read\\'\n * @summary Get Password Org Config\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getPasswordOrgConfig: function (axiosOptions) {\n return localVarFp.getPasswordOrgConfig(axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This API updates the password org config for specified fields. Other fields will keep original value. You must set the `customInstructionsEnabled` field to \\\"true\\\" to be able to use custom password instructions. Requires ORG_ADMIN, API role or authorization scope of \\'idn:password-org-config:write\\'\n * @summary Update Password Org Config\n * @param {PasswordOrgConfig} passwordOrgConfig\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n putPasswordOrgConfig: function (passwordOrgConfig, axiosOptions) {\n return localVarFp.putPasswordOrgConfig(passwordOrgConfig, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n };\n};\nexports.PasswordConfigurationApiFactory = PasswordConfigurationApiFactory;\n/**\n * PasswordConfigurationApi - object-oriented interface\n * @export\n * @class PasswordConfigurationApi\n * @extends {BaseAPI}\n */\nvar PasswordConfigurationApi = /** @class */ (function (_super) {\n __extends(PasswordConfigurationApi, _super);\n function PasswordConfigurationApi() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n * This API creates the password org config. Unspecified fields will use default value. To be able to use the custom password instructions, you must set the `customInstructionsEnabled` field to \\\"true\\\". Requires ORG_ADMIN, API role or authorization scope of \\'idn:password-org-config:write\\'\n * @summary Create Password Org Config\n * @param {PasswordConfigurationApiCreatePasswordOrgConfigRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof PasswordConfigurationApi\n */\n PasswordConfigurationApi.prototype.createPasswordOrgConfig = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.PasswordConfigurationApiFp)(this.configuration).createPasswordOrgConfig(requestParameters.passwordOrgConfig, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This API returns the password org config . Requires ORG_ADMIN, API role or authorization scope of \\'idn:password-org-config:read\\'\n * @summary Get Password Org Config\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof PasswordConfigurationApi\n */\n PasswordConfigurationApi.prototype.getPasswordOrgConfig = function (axiosOptions) {\n var _this = this;\n return (0, exports.PasswordConfigurationApiFp)(this.configuration).getPasswordOrgConfig(axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This API updates the password org config for specified fields. Other fields will keep original value. You must set the `customInstructionsEnabled` field to \\\"true\\\" to be able to use custom password instructions. Requires ORG_ADMIN, API role or authorization scope of \\'idn:password-org-config:write\\'\n * @summary Update Password Org Config\n * @param {PasswordConfigurationApiPutPasswordOrgConfigRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof PasswordConfigurationApi\n */\n PasswordConfigurationApi.prototype.putPasswordOrgConfig = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.PasswordConfigurationApiFp)(this.configuration).putPasswordOrgConfig(requestParameters.passwordOrgConfig, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n return PasswordConfigurationApi;\n}(base_1.BaseAPI));\nexports.PasswordConfigurationApi = PasswordConfigurationApi;\n/**\n * PasswordDictionaryApi - axios parameter creator\n * @export\n */\nvar PasswordDictionaryApiAxiosParamCreator = function (configuration) {\n var _this = this;\n return {\n /**\n * This gets password dictionary for the organization. A token with ORG_ADMIN authority is required to call this API.\n * @summary Get Password Dictionary\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getPasswordDictionary: function (axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n localVarPath = \"/password-dictionary\";\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This updates password dictionary for the organization. A token with ORG_ADMIN authority is required to call this API.\n * @summary Update Password Dictionary\n * @param {any} [file]\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n updatePasswordDictionary: function (file, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, localVarFormParams, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n localVarPath = \"/password-dictionary\";\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'PUT' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n localVarFormParams = new ((configuration && configuration.formDataCtor) || FormData)();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n if (file !== undefined) {\n localVarFormParams.append('file', file);\n }\n localVarHeaderParameter['Content-Type'] = 'multipart/form-data';\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n localVarRequestOptions.data = localVarFormParams;\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n };\n};\nexports.PasswordDictionaryApiAxiosParamCreator = PasswordDictionaryApiAxiosParamCreator;\n/**\n * PasswordDictionaryApi - functional programming interface\n * @export\n */\nvar PasswordDictionaryApiFp = function (configuration) {\n var localVarAxiosParamCreator = (0, exports.PasswordDictionaryApiAxiosParamCreator)(configuration);\n return {\n /**\n * This gets password dictionary for the organization. A token with ORG_ADMIN authority is required to call this API.\n * @summary Get Password Dictionary\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getPasswordDictionary: function (axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.getPasswordDictionary(axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This updates password dictionary for the organization. A token with ORG_ADMIN authority is required to call this API.\n * @summary Update Password Dictionary\n * @param {any} [file]\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n updatePasswordDictionary: function (file, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.updatePasswordDictionary(file, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n };\n};\nexports.PasswordDictionaryApiFp = PasswordDictionaryApiFp;\n/**\n * PasswordDictionaryApi - factory interface\n * @export\n */\nvar PasswordDictionaryApiFactory = function (configuration, basePath, axios) {\n var localVarFp = (0, exports.PasswordDictionaryApiFp)(configuration);\n return {\n /**\n * This gets password dictionary for the organization. A token with ORG_ADMIN authority is required to call this API.\n * @summary Get Password Dictionary\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getPasswordDictionary: function (axiosOptions) {\n return localVarFp.getPasswordDictionary(axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This updates password dictionary for the organization. A token with ORG_ADMIN authority is required to call this API.\n * @summary Update Password Dictionary\n * @param {any} [file]\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n updatePasswordDictionary: function (file, axiosOptions) {\n return localVarFp.updatePasswordDictionary(file, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n };\n};\nexports.PasswordDictionaryApiFactory = PasswordDictionaryApiFactory;\n/**\n * PasswordDictionaryApi - object-oriented interface\n * @export\n * @class PasswordDictionaryApi\n * @extends {BaseAPI}\n */\nvar PasswordDictionaryApi = /** @class */ (function (_super) {\n __extends(PasswordDictionaryApi, _super);\n function PasswordDictionaryApi() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n * This gets password dictionary for the organization. A token with ORG_ADMIN authority is required to call this API.\n * @summary Get Password Dictionary\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof PasswordDictionaryApi\n */\n PasswordDictionaryApi.prototype.getPasswordDictionary = function (axiosOptions) {\n var _this = this;\n return (0, exports.PasswordDictionaryApiFp)(this.configuration).getPasswordDictionary(axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This updates password dictionary for the organization. A token with ORG_ADMIN authority is required to call this API.\n * @summary Update Password Dictionary\n * @param {PasswordDictionaryApiUpdatePasswordDictionaryRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof PasswordDictionaryApi\n */\n PasswordDictionaryApi.prototype.updatePasswordDictionary = function (requestParameters, axiosOptions) {\n var _this = this;\n if (requestParameters === void 0) { requestParameters = {}; }\n return (0, exports.PasswordDictionaryApiFp)(this.configuration).updatePasswordDictionary(requestParameters.file, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n return PasswordDictionaryApi;\n}(base_1.BaseAPI));\nexports.PasswordDictionaryApi = PasswordDictionaryApi;\n/**\n * PasswordManagementApi - axios parameter creator\n * @export\n */\nvar PasswordManagementApiAxiosParamCreator = function (configuration) {\n var _this = this;\n return {\n /**\n * This API returns the status of a password change request. A token with identity owner or trusted API client application authority is required to call this API.\n * @summary Get Password Change Request Status\n * @param {string} id Password change request ID\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getPasswordChangeStatus: function (id, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'id' is not null or undefined\n (0, common_1.assertParamExists)('getPasswordChangeStatus', 'id', id);\n localVarPath = \"/password-change-status/{id}\"\n .replace(\"{\".concat(\"id\", \"}\"), encodeURIComponent(String(id)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This API is used to query password related information. A token with [API authority](https://developer.sailpoint.com/idn/api/authentication#client-credentials-grant-flow) is required to call this API. \\\"API authority\\\" refers to a token that only has the \\\"client_credentials\\\" grant type, and therefore no user context. A [personal access token](https://developer.sailpoint.com/idn/api/authentication#personal-access-tokens) or a token generated with the [authorization_code](https://developer.sailpoint.com/idn/api/authentication#authorization-code-grant-flow) grant type will **NOT** work on this endpoint, and a `403 Forbidden` response will be returned.\n * @summary Query Password Info\n * @param {PasswordInfoQueryDTO} passwordInfoQueryDTO\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n queryPasswordInfo: function (passwordInfoQueryDTO, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'passwordInfoQueryDTO' is not null or undefined\n (0, common_1.assertParamExists)('queryPasswordInfo', 'passwordInfoQueryDTO', passwordInfoQueryDTO);\n localVarPath = \"/query-password-info\";\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n localVarHeaderParameter['Content-Type'] = 'application/json';\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(passwordInfoQueryDTO, localVarRequestOptions, configuration);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This API is used to set a password for an identity. An identity can change their own password (as well as any of their accounts\\' passwords) if they use a token generated by their IDN user, such as a [personal access token](https://developer.sailpoint.com/idn/api/authentication#personal-access-tokens) or [\\\"authorization_code\\\" derived OAuth token](https://developer.sailpoint.com/idn/api/authentication#authorization-code-grant-flow). A token with [API authority](https://developer.sailpoint.com/idn/api/authentication#client-credentials-grant-flow) can be used to change **any** identity\\'s password or the password of any of the identity\\'s accounts. \\\"API authority\\\" refers to a token that only has the \\\"client_credentials\\\" grant type. You can use this endpoint to generate an `encryptedPassword` (RSA encrypted using publicKey). To do so, follow these steps: 1. Use [Query Password Info](https://developer.sailpoint.com/idn/api/v3/query-password-info) to get the following information: `identityId`, `sourceId`, `publicKeyId`, `publicKey`, `accounts`, and `policies`. 2. Choose an account from the previous response that you will provide as an `accountId` in your request to set an encrypted password. 3. Use [Set Identity\\'s Password](https://developer.sailpoint.com/idn/api/v3/set-password) and provide the information you got from your earlier query. Then add this code to your request to get the encrypted password: ```java import javax.crypto.Cipher; import java.security.KeyFactory; import java.security.PublicKey; import java.security.spec.X509EncodedKeySpec; import java util.Base64; String encrypt(String publicKey, String toEncrypt) throws Exception { byte[] publicKeyBytes = Base64.getDecoder().decode(publicKey); byte[] encryptedBytes = encryptRsa(publicKeyBytes, toEncrypt.getBytes(\\\"UTF-8\\\")); return Base64.getEncoder().encodeToString(encryptedBytes); } private byte[] encryptRsa(byte[] publicKeyBytes, byte[] toEncryptBytes) throws Exception { PublicKey key = KeyFactory.getInstance(\\\"RSA\\\").generatePublic(new X509EncodedKeySpec(publicKeyBytes)); String transformation = \\\"RSA/ECB/PKCS1Padding\\\"; Cipher cipher = Cipher.getInstance(transformation); cipher.init(1, key); return cipher.doFinal(toEncryptBytes); } ``` In this example, `toEncrypt` refers to the plain text password you are setting and then encrypting, and the `publicKey` refers to the publicKey you got from the first request you sent. You can then use [Get Password Change Request Status](https://developer.sailpoint.com/idn/api/v3/get-password-change-status) to check the password change request status. To do so, you must provide the `requestId` from your earlier request to set the password.\n * @summary Set Identity\\'s Password\n * @param {PasswordChangeRequest} passwordChangeRequest\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n setPassword: function (passwordChangeRequest, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'passwordChangeRequest' is not null or undefined\n (0, common_1.assertParamExists)('setPassword', 'passwordChangeRequest', passwordChangeRequest);\n localVarPath = \"/set-password\";\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n localVarHeaderParameter['Content-Type'] = 'application/json';\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(passwordChangeRequest, localVarRequestOptions, configuration);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n };\n};\nexports.PasswordManagementApiAxiosParamCreator = PasswordManagementApiAxiosParamCreator;\n/**\n * PasswordManagementApi - functional programming interface\n * @export\n */\nvar PasswordManagementApiFp = function (configuration) {\n var localVarAxiosParamCreator = (0, exports.PasswordManagementApiAxiosParamCreator)(configuration);\n return {\n /**\n * This API returns the status of a password change request. A token with identity owner or trusted API client application authority is required to call this API.\n * @summary Get Password Change Request Status\n * @param {string} id Password change request ID\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getPasswordChangeStatus: function (id, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.getPasswordChangeStatus(id, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This API is used to query password related information. A token with [API authority](https://developer.sailpoint.com/idn/api/authentication#client-credentials-grant-flow) is required to call this API. \\\"API authority\\\" refers to a token that only has the \\\"client_credentials\\\" grant type, and therefore no user context. A [personal access token](https://developer.sailpoint.com/idn/api/authentication#personal-access-tokens) or a token generated with the [authorization_code](https://developer.sailpoint.com/idn/api/authentication#authorization-code-grant-flow) grant type will **NOT** work on this endpoint, and a `403 Forbidden` response will be returned.\n * @summary Query Password Info\n * @param {PasswordInfoQueryDTO} passwordInfoQueryDTO\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n queryPasswordInfo: function (passwordInfoQueryDTO, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.queryPasswordInfo(passwordInfoQueryDTO, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This API is used to set a password for an identity. An identity can change their own password (as well as any of their accounts\\' passwords) if they use a token generated by their IDN user, such as a [personal access token](https://developer.sailpoint.com/idn/api/authentication#personal-access-tokens) or [\\\"authorization_code\\\" derived OAuth token](https://developer.sailpoint.com/idn/api/authentication#authorization-code-grant-flow). A token with [API authority](https://developer.sailpoint.com/idn/api/authentication#client-credentials-grant-flow) can be used to change **any** identity\\'s password or the password of any of the identity\\'s accounts. \\\"API authority\\\" refers to a token that only has the \\\"client_credentials\\\" grant type. You can use this endpoint to generate an `encryptedPassword` (RSA encrypted using publicKey). To do so, follow these steps: 1. Use [Query Password Info](https://developer.sailpoint.com/idn/api/v3/query-password-info) to get the following information: `identityId`, `sourceId`, `publicKeyId`, `publicKey`, `accounts`, and `policies`. 2. Choose an account from the previous response that you will provide as an `accountId` in your request to set an encrypted password. 3. Use [Set Identity\\'s Password](https://developer.sailpoint.com/idn/api/v3/set-password) and provide the information you got from your earlier query. Then add this code to your request to get the encrypted password: ```java import javax.crypto.Cipher; import java.security.KeyFactory; import java.security.PublicKey; import java.security.spec.X509EncodedKeySpec; import java util.Base64; String encrypt(String publicKey, String toEncrypt) throws Exception { byte[] publicKeyBytes = Base64.getDecoder().decode(publicKey); byte[] encryptedBytes = encryptRsa(publicKeyBytes, toEncrypt.getBytes(\\\"UTF-8\\\")); return Base64.getEncoder().encodeToString(encryptedBytes); } private byte[] encryptRsa(byte[] publicKeyBytes, byte[] toEncryptBytes) throws Exception { PublicKey key = KeyFactory.getInstance(\\\"RSA\\\").generatePublic(new X509EncodedKeySpec(publicKeyBytes)); String transformation = \\\"RSA/ECB/PKCS1Padding\\\"; Cipher cipher = Cipher.getInstance(transformation); cipher.init(1, key); return cipher.doFinal(toEncryptBytes); } ``` In this example, `toEncrypt` refers to the plain text password you are setting and then encrypting, and the `publicKey` refers to the publicKey you got from the first request you sent. You can then use [Get Password Change Request Status](https://developer.sailpoint.com/idn/api/v3/get-password-change-status) to check the password change request status. To do so, you must provide the `requestId` from your earlier request to set the password.\n * @summary Set Identity\\'s Password\n * @param {PasswordChangeRequest} passwordChangeRequest\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n setPassword: function (passwordChangeRequest, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.setPassword(passwordChangeRequest, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n };\n};\nexports.PasswordManagementApiFp = PasswordManagementApiFp;\n/**\n * PasswordManagementApi - factory interface\n * @export\n */\nvar PasswordManagementApiFactory = function (configuration, basePath, axios) {\n var localVarFp = (0, exports.PasswordManagementApiFp)(configuration);\n return {\n /**\n * This API returns the status of a password change request. A token with identity owner or trusted API client application authority is required to call this API.\n * @summary Get Password Change Request Status\n * @param {string} id Password change request ID\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getPasswordChangeStatus: function (id, axiosOptions) {\n return localVarFp.getPasswordChangeStatus(id, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This API is used to query password related information. A token with [API authority](https://developer.sailpoint.com/idn/api/authentication#client-credentials-grant-flow) is required to call this API. \\\"API authority\\\" refers to a token that only has the \\\"client_credentials\\\" grant type, and therefore no user context. A [personal access token](https://developer.sailpoint.com/idn/api/authentication#personal-access-tokens) or a token generated with the [authorization_code](https://developer.sailpoint.com/idn/api/authentication#authorization-code-grant-flow) grant type will **NOT** work on this endpoint, and a `403 Forbidden` response will be returned.\n * @summary Query Password Info\n * @param {PasswordInfoQueryDTO} passwordInfoQueryDTO\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n queryPasswordInfo: function (passwordInfoQueryDTO, axiosOptions) {\n return localVarFp.queryPasswordInfo(passwordInfoQueryDTO, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This API is used to set a password for an identity. An identity can change their own password (as well as any of their accounts\\' passwords) if they use a token generated by their IDN user, such as a [personal access token](https://developer.sailpoint.com/idn/api/authentication#personal-access-tokens) or [\\\"authorization_code\\\" derived OAuth token](https://developer.sailpoint.com/idn/api/authentication#authorization-code-grant-flow). A token with [API authority](https://developer.sailpoint.com/idn/api/authentication#client-credentials-grant-flow) can be used to change **any** identity\\'s password or the password of any of the identity\\'s accounts. \\\"API authority\\\" refers to a token that only has the \\\"client_credentials\\\" grant type. You can use this endpoint to generate an `encryptedPassword` (RSA encrypted using publicKey). To do so, follow these steps: 1. Use [Query Password Info](https://developer.sailpoint.com/idn/api/v3/query-password-info) to get the following information: `identityId`, `sourceId`, `publicKeyId`, `publicKey`, `accounts`, and `policies`. 2. Choose an account from the previous response that you will provide as an `accountId` in your request to set an encrypted password. 3. Use [Set Identity\\'s Password](https://developer.sailpoint.com/idn/api/v3/set-password) and provide the information you got from your earlier query. Then add this code to your request to get the encrypted password: ```java import javax.crypto.Cipher; import java.security.KeyFactory; import java.security.PublicKey; import java.security.spec.X509EncodedKeySpec; import java util.Base64; String encrypt(String publicKey, String toEncrypt) throws Exception { byte[] publicKeyBytes = Base64.getDecoder().decode(publicKey); byte[] encryptedBytes = encryptRsa(publicKeyBytes, toEncrypt.getBytes(\\\"UTF-8\\\")); return Base64.getEncoder().encodeToString(encryptedBytes); } private byte[] encryptRsa(byte[] publicKeyBytes, byte[] toEncryptBytes) throws Exception { PublicKey key = KeyFactory.getInstance(\\\"RSA\\\").generatePublic(new X509EncodedKeySpec(publicKeyBytes)); String transformation = \\\"RSA/ECB/PKCS1Padding\\\"; Cipher cipher = Cipher.getInstance(transformation); cipher.init(1, key); return cipher.doFinal(toEncryptBytes); } ``` In this example, `toEncrypt` refers to the plain text password you are setting and then encrypting, and the `publicKey` refers to the publicKey you got from the first request you sent. You can then use [Get Password Change Request Status](https://developer.sailpoint.com/idn/api/v3/get-password-change-status) to check the password change request status. To do so, you must provide the `requestId` from your earlier request to set the password.\n * @summary Set Identity\\'s Password\n * @param {PasswordChangeRequest} passwordChangeRequest\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n setPassword: function (passwordChangeRequest, axiosOptions) {\n return localVarFp.setPassword(passwordChangeRequest, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n };\n};\nexports.PasswordManagementApiFactory = PasswordManagementApiFactory;\n/**\n * PasswordManagementApi - object-oriented interface\n * @export\n * @class PasswordManagementApi\n * @extends {BaseAPI}\n */\nvar PasswordManagementApi = /** @class */ (function (_super) {\n __extends(PasswordManagementApi, _super);\n function PasswordManagementApi() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n * This API returns the status of a password change request. A token with identity owner or trusted API client application authority is required to call this API.\n * @summary Get Password Change Request Status\n * @param {PasswordManagementApiGetPasswordChangeStatusRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof PasswordManagementApi\n */\n PasswordManagementApi.prototype.getPasswordChangeStatus = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.PasswordManagementApiFp)(this.configuration).getPasswordChangeStatus(requestParameters.id, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This API is used to query password related information. A token with [API authority](https://developer.sailpoint.com/idn/api/authentication#client-credentials-grant-flow) is required to call this API. \\\"API authority\\\" refers to a token that only has the \\\"client_credentials\\\" grant type, and therefore no user context. A [personal access token](https://developer.sailpoint.com/idn/api/authentication#personal-access-tokens) or a token generated with the [authorization_code](https://developer.sailpoint.com/idn/api/authentication#authorization-code-grant-flow) grant type will **NOT** work on this endpoint, and a `403 Forbidden` response will be returned.\n * @summary Query Password Info\n * @param {PasswordManagementApiQueryPasswordInfoRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof PasswordManagementApi\n */\n PasswordManagementApi.prototype.queryPasswordInfo = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.PasswordManagementApiFp)(this.configuration).queryPasswordInfo(requestParameters.passwordInfoQueryDTO, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This API is used to set a password for an identity. An identity can change their own password (as well as any of their accounts\\' passwords) if they use a token generated by their IDN user, such as a [personal access token](https://developer.sailpoint.com/idn/api/authentication#personal-access-tokens) or [\\\"authorization_code\\\" derived OAuth token](https://developer.sailpoint.com/idn/api/authentication#authorization-code-grant-flow). A token with [API authority](https://developer.sailpoint.com/idn/api/authentication#client-credentials-grant-flow) can be used to change **any** identity\\'s password or the password of any of the identity\\'s accounts. \\\"API authority\\\" refers to a token that only has the \\\"client_credentials\\\" grant type. You can use this endpoint to generate an `encryptedPassword` (RSA encrypted using publicKey). To do so, follow these steps: 1. Use [Query Password Info](https://developer.sailpoint.com/idn/api/v3/query-password-info) to get the following information: `identityId`, `sourceId`, `publicKeyId`, `publicKey`, `accounts`, and `policies`. 2. Choose an account from the previous response that you will provide as an `accountId` in your request to set an encrypted password. 3. Use [Set Identity\\'s Password](https://developer.sailpoint.com/idn/api/v3/set-password) and provide the information you got from your earlier query. Then add this code to your request to get the encrypted password: ```java import javax.crypto.Cipher; import java.security.KeyFactory; import java.security.PublicKey; import java.security.spec.X509EncodedKeySpec; import java util.Base64; String encrypt(String publicKey, String toEncrypt) throws Exception { byte[] publicKeyBytes = Base64.getDecoder().decode(publicKey); byte[] encryptedBytes = encryptRsa(publicKeyBytes, toEncrypt.getBytes(\\\"UTF-8\\\")); return Base64.getEncoder().encodeToString(encryptedBytes); } private byte[] encryptRsa(byte[] publicKeyBytes, byte[] toEncryptBytes) throws Exception { PublicKey key = KeyFactory.getInstance(\\\"RSA\\\").generatePublic(new X509EncodedKeySpec(publicKeyBytes)); String transformation = \\\"RSA/ECB/PKCS1Padding\\\"; Cipher cipher = Cipher.getInstance(transformation); cipher.init(1, key); return cipher.doFinal(toEncryptBytes); } ``` In this example, `toEncrypt` refers to the plain text password you are setting and then encrypting, and the `publicKey` refers to the publicKey you got from the first request you sent. You can then use [Get Password Change Request Status](https://developer.sailpoint.com/idn/api/v3/get-password-change-status) to check the password change request status. To do so, you must provide the `requestId` from your earlier request to set the password.\n * @summary Set Identity\\'s Password\n * @param {PasswordManagementApiSetPasswordRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof PasswordManagementApi\n */\n PasswordManagementApi.prototype.setPassword = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.PasswordManagementApiFp)(this.configuration).setPassword(requestParameters.passwordChangeRequest, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n return PasswordManagementApi;\n}(base_1.BaseAPI));\nexports.PasswordManagementApi = PasswordManagementApi;\n/**\n * PasswordSyncGroupsApi - axios parameter creator\n * @export\n */\nvar PasswordSyncGroupsApiAxiosParamCreator = function (configuration) {\n var _this = this;\n return {\n /**\n * This API creates a password sync group based on the specifications provided. A token with ORG_ADMIN authority is required to call this API.\n * @summary Create Password Sync Group\n * @param {PasswordSyncGroup} passwordSyncGroup\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n createPasswordSyncGroup: function (passwordSyncGroup, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'passwordSyncGroup' is not null or undefined\n (0, common_1.assertParamExists)('createPasswordSyncGroup', 'passwordSyncGroup', passwordSyncGroup);\n localVarPath = \"/password-sync-groups\";\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n localVarHeaderParameter['Content-Type'] = 'application/json';\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(passwordSyncGroup, localVarRequestOptions, configuration);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This API deletes the specified password sync group. A token with ORG_ADMIN authority is required to call this API.\n * @summary Delete Password Sync Group by ID\n * @param {string} id The ID of password sync group to delete.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n deletePasswordSyncGroup: function (id, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'id' is not null or undefined\n (0, common_1.assertParamExists)('deletePasswordSyncGroup', 'id', id);\n localVarPath = \"/password-sync-groups/{id}\"\n .replace(\"{\".concat(\"id\", \"}\"), encodeURIComponent(String(id)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'DELETE' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This API returns the sync group for the specified ID. A token with ORG_ADMIN authority is required to call this API.\n * @summary Get Password Sync Group by ID\n * @param {string} id The ID of password sync group to retrieve.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getPasswordSyncGroup: function (id, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'id' is not null or undefined\n (0, common_1.assertParamExists)('getPasswordSyncGroup', 'id', id);\n localVarPath = \"/password-sync-groups/{id}\"\n .replace(\"{\".concat(\"id\", \"}\"), encodeURIComponent(String(id)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This API returns a list of password sync groups. A token with ORG_ADMIN authority is required to call this API.\n * @summary Get Password Sync Group List\n * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getPasswordSyncGroups: function (limit, offset, count, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n localVarPath = \"/password-sync-groups\";\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n if (limit !== undefined) {\n localVarQueryParameter['limit'] = limit;\n }\n if (offset !== undefined) {\n localVarQueryParameter['offset'] = offset;\n }\n if (count !== undefined) {\n localVarQueryParameter['count'] = count;\n }\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This API updates the specified password sync group. A token with ORG_ADMIN authority is required to call this API.\n * @summary Update Password Sync Group by ID\n * @param {string} id The ID of password sync group to update.\n * @param {PasswordSyncGroup} passwordSyncGroup\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n updatePasswordSyncGroup: function (id, passwordSyncGroup, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'id' is not null or undefined\n (0, common_1.assertParamExists)('updatePasswordSyncGroup', 'id', id);\n // verify required parameter 'passwordSyncGroup' is not null or undefined\n (0, common_1.assertParamExists)('updatePasswordSyncGroup', 'passwordSyncGroup', passwordSyncGroup);\n localVarPath = \"/password-sync-groups/{id}\"\n .replace(\"{\".concat(\"id\", \"}\"), encodeURIComponent(String(id)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'PUT' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n localVarHeaderParameter['Content-Type'] = 'application/json';\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(passwordSyncGroup, localVarRequestOptions, configuration);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n };\n};\nexports.PasswordSyncGroupsApiAxiosParamCreator = PasswordSyncGroupsApiAxiosParamCreator;\n/**\n * PasswordSyncGroupsApi - functional programming interface\n * @export\n */\nvar PasswordSyncGroupsApiFp = function (configuration) {\n var localVarAxiosParamCreator = (0, exports.PasswordSyncGroupsApiAxiosParamCreator)(configuration);\n return {\n /**\n * This API creates a password sync group based on the specifications provided. A token with ORG_ADMIN authority is required to call this API.\n * @summary Create Password Sync Group\n * @param {PasswordSyncGroup} passwordSyncGroup\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n createPasswordSyncGroup: function (passwordSyncGroup, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.createPasswordSyncGroup(passwordSyncGroup, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This API deletes the specified password sync group. A token with ORG_ADMIN authority is required to call this API.\n * @summary Delete Password Sync Group by ID\n * @param {string} id The ID of password sync group to delete.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n deletePasswordSyncGroup: function (id, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.deletePasswordSyncGroup(id, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This API returns the sync group for the specified ID. A token with ORG_ADMIN authority is required to call this API.\n * @summary Get Password Sync Group by ID\n * @param {string} id The ID of password sync group to retrieve.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getPasswordSyncGroup: function (id, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.getPasswordSyncGroup(id, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This API returns a list of password sync groups. A token with ORG_ADMIN authority is required to call this API.\n * @summary Get Password Sync Group List\n * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getPasswordSyncGroups: function (limit, offset, count, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.getPasswordSyncGroups(limit, offset, count, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This API updates the specified password sync group. A token with ORG_ADMIN authority is required to call this API.\n * @summary Update Password Sync Group by ID\n * @param {string} id The ID of password sync group to update.\n * @param {PasswordSyncGroup} passwordSyncGroup\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n updatePasswordSyncGroup: function (id, passwordSyncGroup, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.updatePasswordSyncGroup(id, passwordSyncGroup, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n };\n};\nexports.PasswordSyncGroupsApiFp = PasswordSyncGroupsApiFp;\n/**\n * PasswordSyncGroupsApi - factory interface\n * @export\n */\nvar PasswordSyncGroupsApiFactory = function (configuration, basePath, axios) {\n var localVarFp = (0, exports.PasswordSyncGroupsApiFp)(configuration);\n return {\n /**\n * This API creates a password sync group based on the specifications provided. A token with ORG_ADMIN authority is required to call this API.\n * @summary Create Password Sync Group\n * @param {PasswordSyncGroup} passwordSyncGroup\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n createPasswordSyncGroup: function (passwordSyncGroup, axiosOptions) {\n return localVarFp.createPasswordSyncGroup(passwordSyncGroup, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This API deletes the specified password sync group. A token with ORG_ADMIN authority is required to call this API.\n * @summary Delete Password Sync Group by ID\n * @param {string} id The ID of password sync group to delete.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n deletePasswordSyncGroup: function (id, axiosOptions) {\n return localVarFp.deletePasswordSyncGroup(id, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This API returns the sync group for the specified ID. A token with ORG_ADMIN authority is required to call this API.\n * @summary Get Password Sync Group by ID\n * @param {string} id The ID of password sync group to retrieve.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getPasswordSyncGroup: function (id, axiosOptions) {\n return localVarFp.getPasswordSyncGroup(id, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This API returns a list of password sync groups. A token with ORG_ADMIN authority is required to call this API.\n * @summary Get Password Sync Group List\n * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getPasswordSyncGroups: function (limit, offset, count, axiosOptions) {\n return localVarFp.getPasswordSyncGroups(limit, offset, count, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This API updates the specified password sync group. A token with ORG_ADMIN authority is required to call this API.\n * @summary Update Password Sync Group by ID\n * @param {string} id The ID of password sync group to update.\n * @param {PasswordSyncGroup} passwordSyncGroup\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n updatePasswordSyncGroup: function (id, passwordSyncGroup, axiosOptions) {\n return localVarFp.updatePasswordSyncGroup(id, passwordSyncGroup, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n };\n};\nexports.PasswordSyncGroupsApiFactory = PasswordSyncGroupsApiFactory;\n/**\n * PasswordSyncGroupsApi - object-oriented interface\n * @export\n * @class PasswordSyncGroupsApi\n * @extends {BaseAPI}\n */\nvar PasswordSyncGroupsApi = /** @class */ (function (_super) {\n __extends(PasswordSyncGroupsApi, _super);\n function PasswordSyncGroupsApi() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n * This API creates a password sync group based on the specifications provided. A token with ORG_ADMIN authority is required to call this API.\n * @summary Create Password Sync Group\n * @param {PasswordSyncGroupsApiCreatePasswordSyncGroupRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof PasswordSyncGroupsApi\n */\n PasswordSyncGroupsApi.prototype.createPasswordSyncGroup = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.PasswordSyncGroupsApiFp)(this.configuration).createPasswordSyncGroup(requestParameters.passwordSyncGroup, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This API deletes the specified password sync group. A token with ORG_ADMIN authority is required to call this API.\n * @summary Delete Password Sync Group by ID\n * @param {PasswordSyncGroupsApiDeletePasswordSyncGroupRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof PasswordSyncGroupsApi\n */\n PasswordSyncGroupsApi.prototype.deletePasswordSyncGroup = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.PasswordSyncGroupsApiFp)(this.configuration).deletePasswordSyncGroup(requestParameters.id, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This API returns the sync group for the specified ID. A token with ORG_ADMIN authority is required to call this API.\n * @summary Get Password Sync Group by ID\n * @param {PasswordSyncGroupsApiGetPasswordSyncGroupRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof PasswordSyncGroupsApi\n */\n PasswordSyncGroupsApi.prototype.getPasswordSyncGroup = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.PasswordSyncGroupsApiFp)(this.configuration).getPasswordSyncGroup(requestParameters.id, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This API returns a list of password sync groups. A token with ORG_ADMIN authority is required to call this API.\n * @summary Get Password Sync Group List\n * @param {PasswordSyncGroupsApiGetPasswordSyncGroupsRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof PasswordSyncGroupsApi\n */\n PasswordSyncGroupsApi.prototype.getPasswordSyncGroups = function (requestParameters, axiosOptions) {\n var _this = this;\n if (requestParameters === void 0) { requestParameters = {}; }\n return (0, exports.PasswordSyncGroupsApiFp)(this.configuration).getPasswordSyncGroups(requestParameters.limit, requestParameters.offset, requestParameters.count, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This API updates the specified password sync group. A token with ORG_ADMIN authority is required to call this API.\n * @summary Update Password Sync Group by ID\n * @param {PasswordSyncGroupsApiUpdatePasswordSyncGroupRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof PasswordSyncGroupsApi\n */\n PasswordSyncGroupsApi.prototype.updatePasswordSyncGroup = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.PasswordSyncGroupsApiFp)(this.configuration).updatePasswordSyncGroup(requestParameters.id, requestParameters.passwordSyncGroup, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n return PasswordSyncGroupsApi;\n}(base_1.BaseAPI));\nexports.PasswordSyncGroupsApi = PasswordSyncGroupsApi;\n/**\n * PersonalAccessTokensApi - axios parameter creator\n * @export\n */\nvar PersonalAccessTokensApiAxiosParamCreator = function (configuration) {\n var _this = this;\n return {\n /**\n * This creates a personal access token.\n * @summary Create Personal Access Token\n * @param {CreatePersonalAccessTokenRequest} createPersonalAccessTokenRequest Name and scope of personal access token.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n createPersonalAccessToken: function (createPersonalAccessTokenRequest, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'createPersonalAccessTokenRequest' is not null or undefined\n (0, common_1.assertParamExists)('createPersonalAccessToken', 'createPersonalAccessTokenRequest', createPersonalAccessTokenRequest);\n localVarPath = \"/personal-access-tokens\";\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n localVarHeaderParameter['Content-Type'] = 'application/json';\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(createPersonalAccessTokenRequest, localVarRequestOptions, configuration);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This deletes a personal access token.\n * @summary Delete Personal Access Token\n * @param {string} id The personal access token id\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n deletePersonalAccessToken: function (id, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'id' is not null or undefined\n (0, common_1.assertParamExists)('deletePersonalAccessToken', 'id', id);\n localVarPath = \"/personal-access-tokens/{id}\"\n .replace(\"{\".concat(\"id\", \"}\"), encodeURIComponent(String(id)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'DELETE' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This gets a collection of personal access tokens associated with the optional `owner-id`. query parameter. If the `owner-id` query parameter is omitted, all personal access tokens for a tenant will be retrieved, but the caller must have the \\'idn:all-personal-access-tokens:read\\' right.\n * @summary List Personal Access Tokens\n * @param {string} [ownerId] The identity ID of the owner whose personal access tokens should be listed. If \\"me\\", the caller should have the following right: \\'idn:my-personal-access-tokens:read\\' If an actual owner ID or if the `owner-id` parameter is omitted in the request, the caller should have the following right: \\'idn:all-personal-access-tokens:read\\'. If the caller has the following right, then managed personal access tokens associated with `owner-id` will be retrieved: \\'idn:managed-personal-access-tokens:read\\'\n * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **lastUsed**: *le, isnull*\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n listPersonalAccessTokens: function (ownerId, filters, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n localVarPath = \"/personal-access-tokens\";\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n if (ownerId !== undefined) {\n localVarQueryParameter['owner-id'] = ownerId;\n }\n if (filters !== undefined) {\n localVarQueryParameter['filters'] = filters;\n }\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This performs a targeted update to the field(s) of a Personal Access Token.\n * @summary Patch Personal Access Token\n * @param {string} id The Personal Access Token id\n * @param {Array} jsonPatchOperation A list of OAuth client update operations according to the [JSON Patch](https://tools.ietf.org/html/rfc6902) standard. The following fields are patchable: * name * scope\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n patchPersonalAccessToken: function (id, jsonPatchOperation, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'id' is not null or undefined\n (0, common_1.assertParamExists)('patchPersonalAccessToken', 'id', id);\n // verify required parameter 'jsonPatchOperation' is not null or undefined\n (0, common_1.assertParamExists)('patchPersonalAccessToken', 'jsonPatchOperation', jsonPatchOperation);\n localVarPath = \"/personal-access-tokens/{id}\"\n .replace(\"{\".concat(\"id\", \"}\"), encodeURIComponent(String(id)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'PATCH' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n localVarHeaderParameter['Content-Type'] = 'application/json-patch+json';\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(jsonPatchOperation, localVarRequestOptions, configuration);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n };\n};\nexports.PersonalAccessTokensApiAxiosParamCreator = PersonalAccessTokensApiAxiosParamCreator;\n/**\n * PersonalAccessTokensApi - functional programming interface\n * @export\n */\nvar PersonalAccessTokensApiFp = function (configuration) {\n var localVarAxiosParamCreator = (0, exports.PersonalAccessTokensApiAxiosParamCreator)(configuration);\n return {\n /**\n * This creates a personal access token.\n * @summary Create Personal Access Token\n * @param {CreatePersonalAccessTokenRequest} createPersonalAccessTokenRequest Name and scope of personal access token.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n createPersonalAccessToken: function (createPersonalAccessTokenRequest, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.createPersonalAccessToken(createPersonalAccessTokenRequest, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This deletes a personal access token.\n * @summary Delete Personal Access Token\n * @param {string} id The personal access token id\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n deletePersonalAccessToken: function (id, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.deletePersonalAccessToken(id, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This gets a collection of personal access tokens associated with the optional `owner-id`. query parameter. If the `owner-id` query parameter is omitted, all personal access tokens for a tenant will be retrieved, but the caller must have the \\'idn:all-personal-access-tokens:read\\' right.\n * @summary List Personal Access Tokens\n * @param {string} [ownerId] The identity ID of the owner whose personal access tokens should be listed. If \\"me\\", the caller should have the following right: \\'idn:my-personal-access-tokens:read\\' If an actual owner ID or if the `owner-id` parameter is omitted in the request, the caller should have the following right: \\'idn:all-personal-access-tokens:read\\'. If the caller has the following right, then managed personal access tokens associated with `owner-id` will be retrieved: \\'idn:managed-personal-access-tokens:read\\'\n * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **lastUsed**: *le, isnull*\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n listPersonalAccessTokens: function (ownerId, filters, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.listPersonalAccessTokens(ownerId, filters, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This performs a targeted update to the field(s) of a Personal Access Token.\n * @summary Patch Personal Access Token\n * @param {string} id The Personal Access Token id\n * @param {Array} jsonPatchOperation A list of OAuth client update operations according to the [JSON Patch](https://tools.ietf.org/html/rfc6902) standard. The following fields are patchable: * name * scope\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n patchPersonalAccessToken: function (id, jsonPatchOperation, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.patchPersonalAccessToken(id, jsonPatchOperation, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n };\n};\nexports.PersonalAccessTokensApiFp = PersonalAccessTokensApiFp;\n/**\n * PersonalAccessTokensApi - factory interface\n * @export\n */\nvar PersonalAccessTokensApiFactory = function (configuration, basePath, axios) {\n var localVarFp = (0, exports.PersonalAccessTokensApiFp)(configuration);\n return {\n /**\n * This creates a personal access token.\n * @summary Create Personal Access Token\n * @param {CreatePersonalAccessTokenRequest} createPersonalAccessTokenRequest Name and scope of personal access token.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n createPersonalAccessToken: function (createPersonalAccessTokenRequest, axiosOptions) {\n return localVarFp.createPersonalAccessToken(createPersonalAccessTokenRequest, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This deletes a personal access token.\n * @summary Delete Personal Access Token\n * @param {string} id The personal access token id\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n deletePersonalAccessToken: function (id, axiosOptions) {\n return localVarFp.deletePersonalAccessToken(id, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This gets a collection of personal access tokens associated with the optional `owner-id`. query parameter. If the `owner-id` query parameter is omitted, all personal access tokens for a tenant will be retrieved, but the caller must have the \\'idn:all-personal-access-tokens:read\\' right.\n * @summary List Personal Access Tokens\n * @param {string} [ownerId] The identity ID of the owner whose personal access tokens should be listed. If \\"me\\", the caller should have the following right: \\'idn:my-personal-access-tokens:read\\' If an actual owner ID or if the `owner-id` parameter is omitted in the request, the caller should have the following right: \\'idn:all-personal-access-tokens:read\\'. If the caller has the following right, then managed personal access tokens associated with `owner-id` will be retrieved: \\'idn:managed-personal-access-tokens:read\\'\n * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **lastUsed**: *le, isnull*\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n listPersonalAccessTokens: function (ownerId, filters, axiosOptions) {\n return localVarFp.listPersonalAccessTokens(ownerId, filters, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This performs a targeted update to the field(s) of a Personal Access Token.\n * @summary Patch Personal Access Token\n * @param {string} id The Personal Access Token id\n * @param {Array} jsonPatchOperation A list of OAuth client update operations according to the [JSON Patch](https://tools.ietf.org/html/rfc6902) standard. The following fields are patchable: * name * scope\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n patchPersonalAccessToken: function (id, jsonPatchOperation, axiosOptions) {\n return localVarFp.patchPersonalAccessToken(id, jsonPatchOperation, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n };\n};\nexports.PersonalAccessTokensApiFactory = PersonalAccessTokensApiFactory;\n/**\n * PersonalAccessTokensApi - object-oriented interface\n * @export\n * @class PersonalAccessTokensApi\n * @extends {BaseAPI}\n */\nvar PersonalAccessTokensApi = /** @class */ (function (_super) {\n __extends(PersonalAccessTokensApi, _super);\n function PersonalAccessTokensApi() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n * This creates a personal access token.\n * @summary Create Personal Access Token\n * @param {PersonalAccessTokensApiCreatePersonalAccessTokenRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof PersonalAccessTokensApi\n */\n PersonalAccessTokensApi.prototype.createPersonalAccessToken = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.PersonalAccessTokensApiFp)(this.configuration).createPersonalAccessToken(requestParameters.createPersonalAccessTokenRequest, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This deletes a personal access token.\n * @summary Delete Personal Access Token\n * @param {PersonalAccessTokensApiDeletePersonalAccessTokenRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof PersonalAccessTokensApi\n */\n PersonalAccessTokensApi.prototype.deletePersonalAccessToken = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.PersonalAccessTokensApiFp)(this.configuration).deletePersonalAccessToken(requestParameters.id, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This gets a collection of personal access tokens associated with the optional `owner-id`. query parameter. If the `owner-id` query parameter is omitted, all personal access tokens for a tenant will be retrieved, but the caller must have the \\'idn:all-personal-access-tokens:read\\' right.\n * @summary List Personal Access Tokens\n * @param {PersonalAccessTokensApiListPersonalAccessTokensRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof PersonalAccessTokensApi\n */\n PersonalAccessTokensApi.prototype.listPersonalAccessTokens = function (requestParameters, axiosOptions) {\n var _this = this;\n if (requestParameters === void 0) { requestParameters = {}; }\n return (0, exports.PersonalAccessTokensApiFp)(this.configuration).listPersonalAccessTokens(requestParameters.ownerId, requestParameters.filters, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This performs a targeted update to the field(s) of a Personal Access Token.\n * @summary Patch Personal Access Token\n * @param {PersonalAccessTokensApiPatchPersonalAccessTokenRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof PersonalAccessTokensApi\n */\n PersonalAccessTokensApi.prototype.patchPersonalAccessToken = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.PersonalAccessTokensApiFp)(this.configuration).patchPersonalAccessToken(requestParameters.id, requestParameters.jsonPatchOperation, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n return PersonalAccessTokensApi;\n}(base_1.BaseAPI));\nexports.PersonalAccessTokensApi = PersonalAccessTokensApi;\n/**\n * PublicIdentitiesApi - axios parameter creator\n * @export\n */\nvar PublicIdentitiesApiAxiosParamCreator = function (configuration) {\n var _this = this;\n return {\n /**\n *\n * @summary Get a list of public identities\n * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **id**: *eq, in* **alias**: *eq, sw* **email**: *eq, sw* **firstname**: *eq, sw* **lastname**: *eq, sw*\n * @param {boolean} [addCoreFilters] If *true*, only get identities which satisfy ALL the following criteria in addition to any criteria specified by *filters*: - Should be either correlated or protected. - Should not be \\"spadmin\\" or \\"cloudadmin\\". - uid should not be null. - lastname should not be null. - email should not be null.\n * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **name**\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getPublicIdentities: function (limit, offset, count, filters, addCoreFilters, sorters, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n localVarPath = \"/public-identities\";\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n if (limit !== undefined) {\n localVarQueryParameter['limit'] = limit;\n }\n if (offset !== undefined) {\n localVarQueryParameter['offset'] = offset;\n }\n if (count !== undefined) {\n localVarQueryParameter['count'] = count;\n }\n if (filters !== undefined) {\n localVarQueryParameter['filters'] = filters;\n }\n if (addCoreFilters !== undefined) {\n localVarQueryParameter['add-core-filters'] = addCoreFilters;\n }\n if (sorters !== undefined) {\n localVarQueryParameter['sorters'] = sorters;\n }\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n };\n};\nexports.PublicIdentitiesApiAxiosParamCreator = PublicIdentitiesApiAxiosParamCreator;\n/**\n * PublicIdentitiesApi - functional programming interface\n * @export\n */\nvar PublicIdentitiesApiFp = function (configuration) {\n var localVarAxiosParamCreator = (0, exports.PublicIdentitiesApiAxiosParamCreator)(configuration);\n return {\n /**\n *\n * @summary Get a list of public identities\n * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **id**: *eq, in* **alias**: *eq, sw* **email**: *eq, sw* **firstname**: *eq, sw* **lastname**: *eq, sw*\n * @param {boolean} [addCoreFilters] If *true*, only get identities which satisfy ALL the following criteria in addition to any criteria specified by *filters*: - Should be either correlated or protected. - Should not be \\"spadmin\\" or \\"cloudadmin\\". - uid should not be null. - lastname should not be null. - email should not be null.\n * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **name**\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getPublicIdentities: function (limit, offset, count, filters, addCoreFilters, sorters, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.getPublicIdentities(limit, offset, count, filters, addCoreFilters, sorters, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n };\n};\nexports.PublicIdentitiesApiFp = PublicIdentitiesApiFp;\n/**\n * PublicIdentitiesApi - factory interface\n * @export\n */\nvar PublicIdentitiesApiFactory = function (configuration, basePath, axios) {\n var localVarFp = (0, exports.PublicIdentitiesApiFp)(configuration);\n return {\n /**\n *\n * @summary Get a list of public identities\n * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **id**: *eq, in* **alias**: *eq, sw* **email**: *eq, sw* **firstname**: *eq, sw* **lastname**: *eq, sw*\n * @param {boolean} [addCoreFilters] If *true*, only get identities which satisfy ALL the following criteria in addition to any criteria specified by *filters*: - Should be either correlated or protected. - Should not be \\"spadmin\\" or \\"cloudadmin\\". - uid should not be null. - lastname should not be null. - email should not be null.\n * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **name**\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getPublicIdentities: function (limit, offset, count, filters, addCoreFilters, sorters, axiosOptions) {\n return localVarFp.getPublicIdentities(limit, offset, count, filters, addCoreFilters, sorters, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n };\n};\nexports.PublicIdentitiesApiFactory = PublicIdentitiesApiFactory;\n/**\n * PublicIdentitiesApi - object-oriented interface\n * @export\n * @class PublicIdentitiesApi\n * @extends {BaseAPI}\n */\nvar PublicIdentitiesApi = /** @class */ (function (_super) {\n __extends(PublicIdentitiesApi, _super);\n function PublicIdentitiesApi() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n *\n * @summary Get a list of public identities\n * @param {PublicIdentitiesApiGetPublicIdentitiesRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof PublicIdentitiesApi\n */\n PublicIdentitiesApi.prototype.getPublicIdentities = function (requestParameters, axiosOptions) {\n var _this = this;\n if (requestParameters === void 0) { requestParameters = {}; }\n return (0, exports.PublicIdentitiesApiFp)(this.configuration).getPublicIdentities(requestParameters.limit, requestParameters.offset, requestParameters.count, requestParameters.filters, requestParameters.addCoreFilters, requestParameters.sorters, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n return PublicIdentitiesApi;\n}(base_1.BaseAPI));\nexports.PublicIdentitiesApi = PublicIdentitiesApi;\n/**\n * PublicIdentitiesConfigApi - axios parameter creator\n * @export\n */\nvar PublicIdentitiesConfigApiAxiosParamCreator = function (configuration) {\n var _this = this;\n return {\n /**\n * Returns the publicly visible attributes of an identity available to request approvers for Access Requests and Certification Campaigns. A token with ORG ADMIN authority is required to call this API.\n * @summary Get the Public Identities Configuration\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getPublicIdentityConfig: function (axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n localVarPath = \"/public-identities-config\";\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * Updates the publicly visible attributes of an identity available to request approvers for Access Requests and Certification Campaigns. A token with ORG ADMIN authority is required to call this API.\n * @summary Update the Public Identities Configuration\n * @param {PublicIdentityConfig} publicIdentityConfig\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n updatePublicIdentityConfig: function (publicIdentityConfig, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'publicIdentityConfig' is not null or undefined\n (0, common_1.assertParamExists)('updatePublicIdentityConfig', 'publicIdentityConfig', publicIdentityConfig);\n localVarPath = \"/public-identities-config\";\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'PUT' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n localVarHeaderParameter['Content-Type'] = 'application/json';\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(publicIdentityConfig, localVarRequestOptions, configuration);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n };\n};\nexports.PublicIdentitiesConfigApiAxiosParamCreator = PublicIdentitiesConfigApiAxiosParamCreator;\n/**\n * PublicIdentitiesConfigApi - functional programming interface\n * @export\n */\nvar PublicIdentitiesConfigApiFp = function (configuration) {\n var localVarAxiosParamCreator = (0, exports.PublicIdentitiesConfigApiAxiosParamCreator)(configuration);\n return {\n /**\n * Returns the publicly visible attributes of an identity available to request approvers for Access Requests and Certification Campaigns. A token with ORG ADMIN authority is required to call this API.\n * @summary Get the Public Identities Configuration\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getPublicIdentityConfig: function (axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.getPublicIdentityConfig(axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * Updates the publicly visible attributes of an identity available to request approvers for Access Requests and Certification Campaigns. A token with ORG ADMIN authority is required to call this API.\n * @summary Update the Public Identities Configuration\n * @param {PublicIdentityConfig} publicIdentityConfig\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n updatePublicIdentityConfig: function (publicIdentityConfig, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.updatePublicIdentityConfig(publicIdentityConfig, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n };\n};\nexports.PublicIdentitiesConfigApiFp = PublicIdentitiesConfigApiFp;\n/**\n * PublicIdentitiesConfigApi - factory interface\n * @export\n */\nvar PublicIdentitiesConfigApiFactory = function (configuration, basePath, axios) {\n var localVarFp = (0, exports.PublicIdentitiesConfigApiFp)(configuration);\n return {\n /**\n * Returns the publicly visible attributes of an identity available to request approvers for Access Requests and Certification Campaigns. A token with ORG ADMIN authority is required to call this API.\n * @summary Get the Public Identities Configuration\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getPublicIdentityConfig: function (axiosOptions) {\n return localVarFp.getPublicIdentityConfig(axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * Updates the publicly visible attributes of an identity available to request approvers for Access Requests and Certification Campaigns. A token with ORG ADMIN authority is required to call this API.\n * @summary Update the Public Identities Configuration\n * @param {PublicIdentityConfig} publicIdentityConfig\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n updatePublicIdentityConfig: function (publicIdentityConfig, axiosOptions) {\n return localVarFp.updatePublicIdentityConfig(publicIdentityConfig, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n };\n};\nexports.PublicIdentitiesConfigApiFactory = PublicIdentitiesConfigApiFactory;\n/**\n * PublicIdentitiesConfigApi - object-oriented interface\n * @export\n * @class PublicIdentitiesConfigApi\n * @extends {BaseAPI}\n */\nvar PublicIdentitiesConfigApi = /** @class */ (function (_super) {\n __extends(PublicIdentitiesConfigApi, _super);\n function PublicIdentitiesConfigApi() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n * Returns the publicly visible attributes of an identity available to request approvers for Access Requests and Certification Campaigns. A token with ORG ADMIN authority is required to call this API.\n * @summary Get the Public Identities Configuration\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof PublicIdentitiesConfigApi\n */\n PublicIdentitiesConfigApi.prototype.getPublicIdentityConfig = function (axiosOptions) {\n var _this = this;\n return (0, exports.PublicIdentitiesConfigApiFp)(this.configuration).getPublicIdentityConfig(axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * Updates the publicly visible attributes of an identity available to request approvers for Access Requests and Certification Campaigns. A token with ORG ADMIN authority is required to call this API.\n * @summary Update the Public Identities Configuration\n * @param {PublicIdentitiesConfigApiUpdatePublicIdentityConfigRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof PublicIdentitiesConfigApi\n */\n PublicIdentitiesConfigApi.prototype.updatePublicIdentityConfig = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.PublicIdentitiesConfigApiFp)(this.configuration).updatePublicIdentityConfig(requestParameters.publicIdentityConfig, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n return PublicIdentitiesConfigApi;\n}(base_1.BaseAPI));\nexports.PublicIdentitiesConfigApi = PublicIdentitiesConfigApi;\n/**\n * RequestableObjectsApi - axios parameter creator\n * @export\n */\nvar RequestableObjectsApiAxiosParamCreator = function (configuration) {\n var _this = this;\n return {\n /**\n * This endpoint returns a list of acccess items that that can be requested through the Access Request endpoints. Access items are marked with AVAILABLE, PENDING or ASSIGNED with respect to the identity provided using *identity-id* query param. Any authenticated token can call this endpoint to see their requestable access items. A token with ORG_ADMIN authority is required to call this endpoint to return a list of all of the requestable access items for the org or for another identity.\n * @summary Requestable Objects List\n * @param {string} [identityId] If present, the value returns only requestable objects for the specified identity. * Admin users can call this with any identity ID value. * Non-admin users can only specify *me* or pass their own identity ID value. * If absent, returns a list of all requestable objects for the tenant. Only admin users can make such a call. In this case, the available, pending, assigned accesses will not be annotated in the result.\n * @param {Array} [types] Filters the results to the specified type/types, where each type is one of ROLE or ACCESS_PROFILE. If absent, all types are returned. Support for additional types may be added in the future without notice.\n * @param {string} [term] It allows searching requestable access items with a partial match on the name or description. If term is provided, then the *filter* query parameter will be ignored.\n * @param {Array} [statuses] Filters the result to the specified status/statuses, where each status is one of AVAILABLE, ASSIGNED, or PENDING. It is an error to specify this parameter without also specifying an *identity-id* parameter. Additional statuses may be added in the future without notice.\n * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **id**: *eq, in* **name**: *eq, in, sw, co*\n * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **name**\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n listRequestableObjects: function (identityId, types, term, statuses, limit, offset, count, filters, sorters, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n localVarPath = \"/requestable-objects\";\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n if (identityId !== undefined) {\n localVarQueryParameter['identity-id'] = identityId;\n }\n if (types) {\n localVarQueryParameter['types'] = types.join(base_1.COLLECTION_FORMATS.csv);\n }\n if (term !== undefined) {\n localVarQueryParameter['term'] = term;\n }\n if (statuses) {\n localVarQueryParameter['statuses'] = statuses.join(base_1.COLLECTION_FORMATS.csv);\n }\n if (limit !== undefined) {\n localVarQueryParameter['limit'] = limit;\n }\n if (offset !== undefined) {\n localVarQueryParameter['offset'] = offset;\n }\n if (count !== undefined) {\n localVarQueryParameter['count'] = count;\n }\n if (filters !== undefined) {\n localVarQueryParameter['filters'] = filters;\n }\n if (sorters !== undefined) {\n localVarQueryParameter['sorters'] = sorters;\n }\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n };\n};\nexports.RequestableObjectsApiAxiosParamCreator = RequestableObjectsApiAxiosParamCreator;\n/**\n * RequestableObjectsApi - functional programming interface\n * @export\n */\nvar RequestableObjectsApiFp = function (configuration) {\n var localVarAxiosParamCreator = (0, exports.RequestableObjectsApiAxiosParamCreator)(configuration);\n return {\n /**\n * This endpoint returns a list of acccess items that that can be requested through the Access Request endpoints. Access items are marked with AVAILABLE, PENDING or ASSIGNED with respect to the identity provided using *identity-id* query param. Any authenticated token can call this endpoint to see their requestable access items. A token with ORG_ADMIN authority is required to call this endpoint to return a list of all of the requestable access items for the org or for another identity.\n * @summary Requestable Objects List\n * @param {string} [identityId] If present, the value returns only requestable objects for the specified identity. * Admin users can call this with any identity ID value. * Non-admin users can only specify *me* or pass their own identity ID value. * If absent, returns a list of all requestable objects for the tenant. Only admin users can make such a call. In this case, the available, pending, assigned accesses will not be annotated in the result.\n * @param {Array} [types] Filters the results to the specified type/types, where each type is one of ROLE or ACCESS_PROFILE. If absent, all types are returned. Support for additional types may be added in the future without notice.\n * @param {string} [term] It allows searching requestable access items with a partial match on the name or description. If term is provided, then the *filter* query parameter will be ignored.\n * @param {Array} [statuses] Filters the result to the specified status/statuses, where each status is one of AVAILABLE, ASSIGNED, or PENDING. It is an error to specify this parameter without also specifying an *identity-id* parameter. Additional statuses may be added in the future without notice.\n * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **id**: *eq, in* **name**: *eq, in, sw, co*\n * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **name**\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n listRequestableObjects: function (identityId, types, term, statuses, limit, offset, count, filters, sorters, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.listRequestableObjects(identityId, types, term, statuses, limit, offset, count, filters, sorters, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n };\n};\nexports.RequestableObjectsApiFp = RequestableObjectsApiFp;\n/**\n * RequestableObjectsApi - factory interface\n * @export\n */\nvar RequestableObjectsApiFactory = function (configuration, basePath, axios) {\n var localVarFp = (0, exports.RequestableObjectsApiFp)(configuration);\n return {\n /**\n * This endpoint returns a list of acccess items that that can be requested through the Access Request endpoints. Access items are marked with AVAILABLE, PENDING or ASSIGNED with respect to the identity provided using *identity-id* query param. Any authenticated token can call this endpoint to see their requestable access items. A token with ORG_ADMIN authority is required to call this endpoint to return a list of all of the requestable access items for the org or for another identity.\n * @summary Requestable Objects List\n * @param {string} [identityId] If present, the value returns only requestable objects for the specified identity. * Admin users can call this with any identity ID value. * Non-admin users can only specify *me* or pass their own identity ID value. * If absent, returns a list of all requestable objects for the tenant. Only admin users can make such a call. In this case, the available, pending, assigned accesses will not be annotated in the result.\n * @param {Array} [types] Filters the results to the specified type/types, where each type is one of ROLE or ACCESS_PROFILE. If absent, all types are returned. Support for additional types may be added in the future without notice.\n * @param {string} [term] It allows searching requestable access items with a partial match on the name or description. If term is provided, then the *filter* query parameter will be ignored.\n * @param {Array} [statuses] Filters the result to the specified status/statuses, where each status is one of AVAILABLE, ASSIGNED, or PENDING. It is an error to specify this parameter without also specifying an *identity-id* parameter. Additional statuses may be added in the future without notice.\n * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **id**: *eq, in* **name**: *eq, in, sw, co*\n * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **name**\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n listRequestableObjects: function (identityId, types, term, statuses, limit, offset, count, filters, sorters, axiosOptions) {\n return localVarFp.listRequestableObjects(identityId, types, term, statuses, limit, offset, count, filters, sorters, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n };\n};\nexports.RequestableObjectsApiFactory = RequestableObjectsApiFactory;\n/**\n * RequestableObjectsApi - object-oriented interface\n * @export\n * @class RequestableObjectsApi\n * @extends {BaseAPI}\n */\nvar RequestableObjectsApi = /** @class */ (function (_super) {\n __extends(RequestableObjectsApi, _super);\n function RequestableObjectsApi() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n * This endpoint returns a list of acccess items that that can be requested through the Access Request endpoints. Access items are marked with AVAILABLE, PENDING or ASSIGNED with respect to the identity provided using *identity-id* query param. Any authenticated token can call this endpoint to see their requestable access items. A token with ORG_ADMIN authority is required to call this endpoint to return a list of all of the requestable access items for the org or for another identity.\n * @summary Requestable Objects List\n * @param {RequestableObjectsApiListRequestableObjectsRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof RequestableObjectsApi\n */\n RequestableObjectsApi.prototype.listRequestableObjects = function (requestParameters, axiosOptions) {\n var _this = this;\n if (requestParameters === void 0) { requestParameters = {}; }\n return (0, exports.RequestableObjectsApiFp)(this.configuration).listRequestableObjects(requestParameters.identityId, requestParameters.types, requestParameters.term, requestParameters.statuses, requestParameters.limit, requestParameters.offset, requestParameters.count, requestParameters.filters, requestParameters.sorters, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n return RequestableObjectsApi;\n}(base_1.BaseAPI));\nexports.RequestableObjectsApi = RequestableObjectsApi;\n/**\n * RolesApi - axios parameter creator\n * @export\n */\nvar RolesApiAxiosParamCreator = function (configuration) {\n var _this = this;\n return {\n /**\n * This API creates a role. You must have a token with API, ORG_ADMIN, ROLE_ADMIN, or ROLE_SUBADMIN authority to call this API. In addition, a ROLE_SUBADMIN may not create a role including an access profile if that access profile is associated with a source the ROLE_SUBADMIN is not associated with themselves. The maximum supported length for the description field is 2000 characters. Longer descriptions will be preserved for existing roles. However, any new roles as well as any updates to existing descriptions will be limited to 2000 characters.\n * @summary Create a Role\n * @param {Role} role\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n createRole: function (role, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'role' is not null or undefined\n (0, common_1.assertParamExists)('createRole', 'role', role);\n localVarPath = \"/roles\";\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n localVarHeaderParameter['Content-Type'] = 'application/json';\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(role, localVarRequestOptions, configuration);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This API initiates a bulk deletion of one or more Roles. A token with API, ORG_ADMIN, ROLE_ADMIN, or ROLE_SUBADMIN authority is required to call this API. In addition, a token with ROLE_SUBADMIN authority may only call this API if all Roles included in the request are associated to Sources with management workgroups of which the ROLE_SUBADMIN is a member.\n * @summary Delete Role(s)\n * @param {RoleBulkDeleteRequest} roleBulkDeleteRequest\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n deleteBulkRoles: function (roleBulkDeleteRequest, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'roleBulkDeleteRequest' is not null or undefined\n (0, common_1.assertParamExists)('deleteBulkRoles', 'roleBulkDeleteRequest', roleBulkDeleteRequest);\n localVarPath = \"/roles/bulk-delete\";\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n localVarHeaderParameter['Content-Type'] = 'application/json';\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(roleBulkDeleteRequest, localVarRequestOptions, configuration);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This API deletes a Role by its ID. A token with API, ORG_ADMIN, ROLE_ADMIN, or ROLE_SUBADMIN authority is required to call this API. In addition, a token with ROLE_SUBADMIN authority may only call this API if all Access Profiles included in the Role are associated to Sources with management workgroups of which the ROLE_SUBADMIN is a member.\n * @summary Delete a Role\n * @param {string} id ID of the Role\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n deleteRole: function (id, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'id' is not null or undefined\n (0, common_1.assertParamExists)('deleteRole', 'id', id);\n localVarPath = \"/roles/{id}\"\n .replace(\"{\".concat(\"id\", \"}\"), encodeURIComponent(String(id)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'DELETE' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This API returns a Role by its ID. A token with API, ORG_ADMIN, ROLE_ADMIN, or ROLE_SUBADMIN authority is required to call this API. In addition, a token with ROLE_SUBADMIN authority may only call this API if all Access Profiles included in the Role are associated to Sources with management workgroups of which the ROLE_SUBADMIN is a member.\n * @summary Get a Role\n * @param {string} id ID of the Role\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getRole: function (id, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'id' is not null or undefined\n (0, common_1.assertParamExists)('getRole', 'id', id);\n localVarPath = \"/roles/{id}\"\n .replace(\"{\".concat(\"id\", \"}\"), encodeURIComponent(String(id)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n *\n * @summary List Identities assigned a Role\n * @param {string} id ID of the Role for which the assigned Identities are to be listed\n * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **id**: *eq, in* **aliasName**: *eq, sw* **email**: *eq, sw* **name**: *eq, sw, co*\n * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **id, name, aliasName, email**\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getRoleAssignedIdentities: function (id, limit, offset, count, filters, sorters, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'id' is not null or undefined\n (0, common_1.assertParamExists)('getRoleAssignedIdentities', 'id', id);\n localVarPath = \"/roles/{id}/assigned-identities\"\n .replace(\"{\".concat(\"id\", \"}\"), encodeURIComponent(String(id)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n if (limit !== undefined) {\n localVarQueryParameter['limit'] = limit;\n }\n if (offset !== undefined) {\n localVarQueryParameter['offset'] = offset;\n }\n if (count !== undefined) {\n localVarQueryParameter['count'] = count;\n }\n if (filters !== undefined) {\n localVarQueryParameter['filters'] = filters;\n }\n if (sorters !== undefined) {\n localVarQueryParameter['sorters'] = sorters;\n }\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This API returns a list of Roles. A token with API, ORG_ADMIN, ROLE_ADMIN, or ROLE_SUBADMIN authority is required to call this API.\n * @summary List Roles\n * @param {string} [forSubadmin] If provided, filters the returned list according to what is visible to the indicated ROLE_SUBADMIN Identity. The value of the parameter is either an Identity ID, or the special value **me**, which is shorthand for the calling Identity\\'s ID. A 400 Bad Request error is returned if the **for-subadmin** parameter is specified for an Identity that is not a subadmin.\n * @param {number} [limit] Note that for this API the maximum value for limit is 50. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **id**: *eq, in* **name**: *eq, sw, co* **created**: *gt, lt, ge, le* **modified**: *gt, lt, ge, le* **owner.id**: *eq, in* **requestable**: *eq*\n * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **name, created, modified**\n * @param {string} [forSegmentIds] If present and not empty, additionally filters Roles to those which are assigned to the Segment(s) with the specified IDs. If segmentation is currently unavailable, specifying this parameter results in an error.\n * @param {boolean} [includeUnsegmented] Whether or not the response list should contain unsegmented Roles. If *for-segment-ids* is absent or empty, specifying *include-unsegmented* as false results in an error.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n listRoles: function (forSubadmin, limit, offset, count, filters, sorters, forSegmentIds, includeUnsegmented, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n localVarPath = \"/roles\";\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n if (forSubadmin !== undefined) {\n localVarQueryParameter['for-subadmin'] = forSubadmin;\n }\n if (limit !== undefined) {\n localVarQueryParameter['limit'] = limit;\n }\n if (offset !== undefined) {\n localVarQueryParameter['offset'] = offset;\n }\n if (count !== undefined) {\n localVarQueryParameter['count'] = count;\n }\n if (filters !== undefined) {\n localVarQueryParameter['filters'] = filters;\n }\n if (sorters !== undefined) {\n localVarQueryParameter['sorters'] = sorters;\n }\n if (forSegmentIds !== undefined) {\n localVarQueryParameter['for-segment-ids'] = forSegmentIds;\n }\n if (includeUnsegmented !== undefined) {\n localVarQueryParameter['include-unsegmented'] = includeUnsegmented;\n }\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This API updates an existing Role using [JSON Patch](https://tools.ietf.org/html/rfc6902) syntax. The following fields are patchable: **name**, **description**, **enabled**, **owner**, **accessProfiles**, **membership**, **requestable**, **accessRequestConfig**, **revokeRequestConfig**, **segments** A token with API, ORG_ADMIN, ROLE_ADMIN, or ROLE_SUBADMIN authority is required to call this API. In addition, a token with ROLE_SUBADMIN authority may only call this API if all Access Profiles included in the Role are associated to Sources with management workgroups of which the ROLE_SUBADMIN is a member. The maximum supported length for the description field is 2000 characters. Longer descriptions will be preserved for existing roles, however, any new roles as well as any updates to existing descriptions will be limited to 2000 characters.\n * @summary Patch a specified Role\n * @param {string} id ID of the Role to patch\n * @param {Array} jsonPatchOperation\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n patchRole: function (id, jsonPatchOperation, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'id' is not null or undefined\n (0, common_1.assertParamExists)('patchRole', 'id', id);\n // verify required parameter 'jsonPatchOperation' is not null or undefined\n (0, common_1.assertParamExists)('patchRole', 'jsonPatchOperation', jsonPatchOperation);\n localVarPath = \"/roles/{id}\"\n .replace(\"{\".concat(\"id\", \"}\"), encodeURIComponent(String(id)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'PATCH' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n localVarHeaderParameter['Content-Type'] = 'application/json-patch+json';\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(jsonPatchOperation, localVarRequestOptions, configuration);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n };\n};\nexports.RolesApiAxiosParamCreator = RolesApiAxiosParamCreator;\n/**\n * RolesApi - functional programming interface\n * @export\n */\nvar RolesApiFp = function (configuration) {\n var localVarAxiosParamCreator = (0, exports.RolesApiAxiosParamCreator)(configuration);\n return {\n /**\n * This API creates a role. You must have a token with API, ORG_ADMIN, ROLE_ADMIN, or ROLE_SUBADMIN authority to call this API. In addition, a ROLE_SUBADMIN may not create a role including an access profile if that access profile is associated with a source the ROLE_SUBADMIN is not associated with themselves. The maximum supported length for the description field is 2000 characters. Longer descriptions will be preserved for existing roles. However, any new roles as well as any updates to existing descriptions will be limited to 2000 characters.\n * @summary Create a Role\n * @param {Role} role\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n createRole: function (role, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.createRole(role, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This API initiates a bulk deletion of one or more Roles. A token with API, ORG_ADMIN, ROLE_ADMIN, or ROLE_SUBADMIN authority is required to call this API. In addition, a token with ROLE_SUBADMIN authority may only call this API if all Roles included in the request are associated to Sources with management workgroups of which the ROLE_SUBADMIN is a member.\n * @summary Delete Role(s)\n * @param {RoleBulkDeleteRequest} roleBulkDeleteRequest\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n deleteBulkRoles: function (roleBulkDeleteRequest, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.deleteBulkRoles(roleBulkDeleteRequest, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This API deletes a Role by its ID. A token with API, ORG_ADMIN, ROLE_ADMIN, or ROLE_SUBADMIN authority is required to call this API. In addition, a token with ROLE_SUBADMIN authority may only call this API if all Access Profiles included in the Role are associated to Sources with management workgroups of which the ROLE_SUBADMIN is a member.\n * @summary Delete a Role\n * @param {string} id ID of the Role\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n deleteRole: function (id, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.deleteRole(id, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This API returns a Role by its ID. A token with API, ORG_ADMIN, ROLE_ADMIN, or ROLE_SUBADMIN authority is required to call this API. In addition, a token with ROLE_SUBADMIN authority may only call this API if all Access Profiles included in the Role are associated to Sources with management workgroups of which the ROLE_SUBADMIN is a member.\n * @summary Get a Role\n * @param {string} id ID of the Role\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getRole: function (id, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.getRole(id, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n *\n * @summary List Identities assigned a Role\n * @param {string} id ID of the Role for which the assigned Identities are to be listed\n * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **id**: *eq, in* **aliasName**: *eq, sw* **email**: *eq, sw* **name**: *eq, sw, co*\n * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **id, name, aliasName, email**\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getRoleAssignedIdentities: function (id, limit, offset, count, filters, sorters, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.getRoleAssignedIdentities(id, limit, offset, count, filters, sorters, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This API returns a list of Roles. A token with API, ORG_ADMIN, ROLE_ADMIN, or ROLE_SUBADMIN authority is required to call this API.\n * @summary List Roles\n * @param {string} [forSubadmin] If provided, filters the returned list according to what is visible to the indicated ROLE_SUBADMIN Identity. The value of the parameter is either an Identity ID, or the special value **me**, which is shorthand for the calling Identity\\'s ID. A 400 Bad Request error is returned if the **for-subadmin** parameter is specified for an Identity that is not a subadmin.\n * @param {number} [limit] Note that for this API the maximum value for limit is 50. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **id**: *eq, in* **name**: *eq, sw, co* **created**: *gt, lt, ge, le* **modified**: *gt, lt, ge, le* **owner.id**: *eq, in* **requestable**: *eq*\n * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **name, created, modified**\n * @param {string} [forSegmentIds] If present and not empty, additionally filters Roles to those which are assigned to the Segment(s) with the specified IDs. If segmentation is currently unavailable, specifying this parameter results in an error.\n * @param {boolean} [includeUnsegmented] Whether or not the response list should contain unsegmented Roles. If *for-segment-ids* is absent or empty, specifying *include-unsegmented* as false results in an error.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n listRoles: function (forSubadmin, limit, offset, count, filters, sorters, forSegmentIds, includeUnsegmented, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.listRoles(forSubadmin, limit, offset, count, filters, sorters, forSegmentIds, includeUnsegmented, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This API updates an existing Role using [JSON Patch](https://tools.ietf.org/html/rfc6902) syntax. The following fields are patchable: **name**, **description**, **enabled**, **owner**, **accessProfiles**, **membership**, **requestable**, **accessRequestConfig**, **revokeRequestConfig**, **segments** A token with API, ORG_ADMIN, ROLE_ADMIN, or ROLE_SUBADMIN authority is required to call this API. In addition, a token with ROLE_SUBADMIN authority may only call this API if all Access Profiles included in the Role are associated to Sources with management workgroups of which the ROLE_SUBADMIN is a member. The maximum supported length for the description field is 2000 characters. Longer descriptions will be preserved for existing roles, however, any new roles as well as any updates to existing descriptions will be limited to 2000 characters.\n * @summary Patch a specified Role\n * @param {string} id ID of the Role to patch\n * @param {Array} jsonPatchOperation\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n patchRole: function (id, jsonPatchOperation, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.patchRole(id, jsonPatchOperation, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n };\n};\nexports.RolesApiFp = RolesApiFp;\n/**\n * RolesApi - factory interface\n * @export\n */\nvar RolesApiFactory = function (configuration, basePath, axios) {\n var localVarFp = (0, exports.RolesApiFp)(configuration);\n return {\n /**\n * This API creates a role. You must have a token with API, ORG_ADMIN, ROLE_ADMIN, or ROLE_SUBADMIN authority to call this API. In addition, a ROLE_SUBADMIN may not create a role including an access profile if that access profile is associated with a source the ROLE_SUBADMIN is not associated with themselves. The maximum supported length for the description field is 2000 characters. Longer descriptions will be preserved for existing roles. However, any new roles as well as any updates to existing descriptions will be limited to 2000 characters.\n * @summary Create a Role\n * @param {Role} role\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n createRole: function (role, axiosOptions) {\n return localVarFp.createRole(role, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This API initiates a bulk deletion of one or more Roles. A token with API, ORG_ADMIN, ROLE_ADMIN, or ROLE_SUBADMIN authority is required to call this API. In addition, a token with ROLE_SUBADMIN authority may only call this API if all Roles included in the request are associated to Sources with management workgroups of which the ROLE_SUBADMIN is a member.\n * @summary Delete Role(s)\n * @param {RoleBulkDeleteRequest} roleBulkDeleteRequest\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n deleteBulkRoles: function (roleBulkDeleteRequest, axiosOptions) {\n return localVarFp.deleteBulkRoles(roleBulkDeleteRequest, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This API deletes a Role by its ID. A token with API, ORG_ADMIN, ROLE_ADMIN, or ROLE_SUBADMIN authority is required to call this API. In addition, a token with ROLE_SUBADMIN authority may only call this API if all Access Profiles included in the Role are associated to Sources with management workgroups of which the ROLE_SUBADMIN is a member.\n * @summary Delete a Role\n * @param {string} id ID of the Role\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n deleteRole: function (id, axiosOptions) {\n return localVarFp.deleteRole(id, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This API returns a Role by its ID. A token with API, ORG_ADMIN, ROLE_ADMIN, or ROLE_SUBADMIN authority is required to call this API. In addition, a token with ROLE_SUBADMIN authority may only call this API if all Access Profiles included in the Role are associated to Sources with management workgroups of which the ROLE_SUBADMIN is a member.\n * @summary Get a Role\n * @param {string} id ID of the Role\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getRole: function (id, axiosOptions) {\n return localVarFp.getRole(id, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n *\n * @summary List Identities assigned a Role\n * @param {string} id ID of the Role for which the assigned Identities are to be listed\n * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **id**: *eq, in* **aliasName**: *eq, sw* **email**: *eq, sw* **name**: *eq, sw, co*\n * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **id, name, aliasName, email**\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getRoleAssignedIdentities: function (id, limit, offset, count, filters, sorters, axiosOptions) {\n return localVarFp.getRoleAssignedIdentities(id, limit, offset, count, filters, sorters, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This API returns a list of Roles. A token with API, ORG_ADMIN, ROLE_ADMIN, or ROLE_SUBADMIN authority is required to call this API.\n * @summary List Roles\n * @param {string} [forSubadmin] If provided, filters the returned list according to what is visible to the indicated ROLE_SUBADMIN Identity. The value of the parameter is either an Identity ID, or the special value **me**, which is shorthand for the calling Identity\\'s ID. A 400 Bad Request error is returned if the **for-subadmin** parameter is specified for an Identity that is not a subadmin.\n * @param {number} [limit] Note that for this API the maximum value for limit is 50. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **id**: *eq, in* **name**: *eq, sw, co* **created**: *gt, lt, ge, le* **modified**: *gt, lt, ge, le* **owner.id**: *eq, in* **requestable**: *eq*\n * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **name, created, modified**\n * @param {string} [forSegmentIds] If present and not empty, additionally filters Roles to those which are assigned to the Segment(s) with the specified IDs. If segmentation is currently unavailable, specifying this parameter results in an error.\n * @param {boolean} [includeUnsegmented] Whether or not the response list should contain unsegmented Roles. If *for-segment-ids* is absent or empty, specifying *include-unsegmented* as false results in an error.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n listRoles: function (forSubadmin, limit, offset, count, filters, sorters, forSegmentIds, includeUnsegmented, axiosOptions) {\n return localVarFp.listRoles(forSubadmin, limit, offset, count, filters, sorters, forSegmentIds, includeUnsegmented, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This API updates an existing Role using [JSON Patch](https://tools.ietf.org/html/rfc6902) syntax. The following fields are patchable: **name**, **description**, **enabled**, **owner**, **accessProfiles**, **membership**, **requestable**, **accessRequestConfig**, **revokeRequestConfig**, **segments** A token with API, ORG_ADMIN, ROLE_ADMIN, or ROLE_SUBADMIN authority is required to call this API. In addition, a token with ROLE_SUBADMIN authority may only call this API if all Access Profiles included in the Role are associated to Sources with management workgroups of which the ROLE_SUBADMIN is a member. The maximum supported length for the description field is 2000 characters. Longer descriptions will be preserved for existing roles, however, any new roles as well as any updates to existing descriptions will be limited to 2000 characters.\n * @summary Patch a specified Role\n * @param {string} id ID of the Role to patch\n * @param {Array} jsonPatchOperation\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n patchRole: function (id, jsonPatchOperation, axiosOptions) {\n return localVarFp.patchRole(id, jsonPatchOperation, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n };\n};\nexports.RolesApiFactory = RolesApiFactory;\n/**\n * RolesApi - object-oriented interface\n * @export\n * @class RolesApi\n * @extends {BaseAPI}\n */\nvar RolesApi = /** @class */ (function (_super) {\n __extends(RolesApi, _super);\n function RolesApi() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n * This API creates a role. You must have a token with API, ORG_ADMIN, ROLE_ADMIN, or ROLE_SUBADMIN authority to call this API. In addition, a ROLE_SUBADMIN may not create a role including an access profile if that access profile is associated with a source the ROLE_SUBADMIN is not associated with themselves. The maximum supported length for the description field is 2000 characters. Longer descriptions will be preserved for existing roles. However, any new roles as well as any updates to existing descriptions will be limited to 2000 characters.\n * @summary Create a Role\n * @param {RolesApiCreateRoleRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof RolesApi\n */\n RolesApi.prototype.createRole = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.RolesApiFp)(this.configuration).createRole(requestParameters.role, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This API initiates a bulk deletion of one or more Roles. A token with API, ORG_ADMIN, ROLE_ADMIN, or ROLE_SUBADMIN authority is required to call this API. In addition, a token with ROLE_SUBADMIN authority may only call this API if all Roles included in the request are associated to Sources with management workgroups of which the ROLE_SUBADMIN is a member.\n * @summary Delete Role(s)\n * @param {RolesApiDeleteBulkRolesRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof RolesApi\n */\n RolesApi.prototype.deleteBulkRoles = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.RolesApiFp)(this.configuration).deleteBulkRoles(requestParameters.roleBulkDeleteRequest, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This API deletes a Role by its ID. A token with API, ORG_ADMIN, ROLE_ADMIN, or ROLE_SUBADMIN authority is required to call this API. In addition, a token with ROLE_SUBADMIN authority may only call this API if all Access Profiles included in the Role are associated to Sources with management workgroups of which the ROLE_SUBADMIN is a member.\n * @summary Delete a Role\n * @param {RolesApiDeleteRoleRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof RolesApi\n */\n RolesApi.prototype.deleteRole = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.RolesApiFp)(this.configuration).deleteRole(requestParameters.id, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This API returns a Role by its ID. A token with API, ORG_ADMIN, ROLE_ADMIN, or ROLE_SUBADMIN authority is required to call this API. In addition, a token with ROLE_SUBADMIN authority may only call this API if all Access Profiles included in the Role are associated to Sources with management workgroups of which the ROLE_SUBADMIN is a member.\n * @summary Get a Role\n * @param {RolesApiGetRoleRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof RolesApi\n */\n RolesApi.prototype.getRole = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.RolesApiFp)(this.configuration).getRole(requestParameters.id, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n *\n * @summary List Identities assigned a Role\n * @param {RolesApiGetRoleAssignedIdentitiesRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof RolesApi\n */\n RolesApi.prototype.getRoleAssignedIdentities = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.RolesApiFp)(this.configuration).getRoleAssignedIdentities(requestParameters.id, requestParameters.limit, requestParameters.offset, requestParameters.count, requestParameters.filters, requestParameters.sorters, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This API returns a list of Roles. A token with API, ORG_ADMIN, ROLE_ADMIN, or ROLE_SUBADMIN authority is required to call this API.\n * @summary List Roles\n * @param {RolesApiListRolesRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof RolesApi\n */\n RolesApi.prototype.listRoles = function (requestParameters, axiosOptions) {\n var _this = this;\n if (requestParameters === void 0) { requestParameters = {}; }\n return (0, exports.RolesApiFp)(this.configuration).listRoles(requestParameters.forSubadmin, requestParameters.limit, requestParameters.offset, requestParameters.count, requestParameters.filters, requestParameters.sorters, requestParameters.forSegmentIds, requestParameters.includeUnsegmented, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This API updates an existing Role using [JSON Patch](https://tools.ietf.org/html/rfc6902) syntax. The following fields are patchable: **name**, **description**, **enabled**, **owner**, **accessProfiles**, **membership**, **requestable**, **accessRequestConfig**, **revokeRequestConfig**, **segments** A token with API, ORG_ADMIN, ROLE_ADMIN, or ROLE_SUBADMIN authority is required to call this API. In addition, a token with ROLE_SUBADMIN authority may only call this API if all Access Profiles included in the Role are associated to Sources with management workgroups of which the ROLE_SUBADMIN is a member. The maximum supported length for the description field is 2000 characters. Longer descriptions will be preserved for existing roles, however, any new roles as well as any updates to existing descriptions will be limited to 2000 characters.\n * @summary Patch a specified Role\n * @param {RolesApiPatchRoleRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof RolesApi\n */\n RolesApi.prototype.patchRole = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.RolesApiFp)(this.configuration).patchRole(requestParameters.id, requestParameters.jsonPatchOperation, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n return RolesApi;\n}(base_1.BaseAPI));\nexports.RolesApi = RolesApi;\n/**\n * SODPolicyApi - axios parameter creator\n * @export\n */\nvar SODPolicyApiAxiosParamCreator = function (configuration) {\n var _this = this;\n return {\n /**\n * This creates both General and Conflicting Access Based policy, with a limit of 50 entitlements for each (left & right) criteria for Conflicting Access Based SOD policy. Requires role of ORG_ADMIN.\n * @summary Create SOD policy\n * @param {SodPolicy} sodPolicy\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n createSodPolicy: function (sodPolicy, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'sodPolicy' is not null or undefined\n (0, common_1.assertParamExists)('createSodPolicy', 'sodPolicy', sodPolicy);\n localVarPath = \"/sod-policies\";\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n localVarHeaderParameter['Content-Type'] = 'application/json';\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(sodPolicy, localVarRequestOptions, configuration);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This deletes a specified SOD policy. Requires role of ORG_ADMIN.\n * @summary Delete SOD policy by ID\n * @param {string} id The ID of the SOD Policy to delete.\n * @param {boolean} [logical] Indicates whether this is a soft delete (logical true) or a hard delete. Soft delete marks the policy as deleted and just save it with this status. It could be fully deleted or recovered further. Hard delete vise versa permanently delete SOD request during this call.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n deleteSodPolicy: function (id, logical, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'id' is not null or undefined\n (0, common_1.assertParamExists)('deleteSodPolicy', 'id', id);\n localVarPath = \"/sod-policies/{id}\"\n .replace(\"{\".concat(\"id\", \"}\"), encodeURIComponent(String(id)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'DELETE' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n if (logical !== undefined) {\n localVarQueryParameter['logical'] = logical;\n }\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This deletes schedule for a specified SOD policy by ID.\n * @summary Delete SOD policy schedule\n * @param {string} id The ID of the SOD policy the schedule must be deleted for.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n deleteSodPolicySchedule: function (id, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'id' is not null or undefined\n (0, common_1.assertParamExists)('deleteSodPolicySchedule', 'id', id);\n localVarPath = \"/sod-policies/{id}/schedule\"\n .replace(\"{\".concat(\"id\", \"}\"), encodeURIComponent(String(id)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'DELETE' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This allows to download a specified named violation report for a given report reference.\n * @summary Download custom violation report\n * @param {string} reportResultId The ID of the report reference to download.\n * @param {string} fileName Custom Name for the file.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getCustomViolationReport: function (reportResultId, fileName, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'reportResultId' is not null or undefined\n (0, common_1.assertParamExists)('getCustomViolationReport', 'reportResultId', reportResultId);\n // verify required parameter 'fileName' is not null or undefined\n (0, common_1.assertParamExists)('getCustomViolationReport', 'fileName', fileName);\n localVarPath = \"/sod-violation-report/{reportResultId}/download/{fileName}\"\n .replace(\"{\".concat(\"reportResultId\", \"}\"), encodeURIComponent(String(reportResultId)))\n .replace(\"{\".concat(\"fileName\", \"}\"), encodeURIComponent(String(fileName)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This allows to download a violation report for a given report reference.\n * @summary Download violation report\n * @param {string} reportResultId The ID of the report reference to download.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getDefaultViolationReport: function (reportResultId, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'reportResultId' is not null or undefined\n (0, common_1.assertParamExists)('getDefaultViolationReport', 'reportResultId', reportResultId);\n localVarPath = \"/sod-violation-report/{reportResultId}/download\"\n .replace(\"{\".concat(\"reportResultId\", \"}\"), encodeURIComponent(String(reportResultId)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This endpoint gets the status for a violation report for all policy run.\n * @summary Get multi-report run task status\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getSodAllReportRunStatus: function (axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n localVarPath = \"/sod-violation-report\";\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This gets specified SOD policy. Requires role of ORG_ADMIN.\n * @summary Get SOD policy by ID\n * @param {string} id The ID of the SOD Policy to retrieve.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getSodPolicy: function (id, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'id' is not null or undefined\n (0, common_1.assertParamExists)('getSodPolicy', 'id', id);\n localVarPath = \"/sod-policies/{id}\"\n .replace(\"{\".concat(\"id\", \"}\"), encodeURIComponent(String(id)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This endpoint gets a specified SOD policy\\'s schedule.\n * @summary Get SOD policy schedule\n * @param {string} id The ID of the SOD policy schedule to retrieve.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getSodPolicySchedule: function (id, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'id' is not null or undefined\n (0, common_1.assertParamExists)('getSodPolicySchedule', 'id', id);\n localVarPath = \"/sod-policies/{id}/schedule\"\n .replace(\"{\".concat(\"id\", \"}\"), encodeURIComponent(String(id)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This gets the status for a violation report run task that has already been invoked.\n * @summary Get violation report run status\n * @param {string} reportResultId The ID of the report reference to retrieve.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getSodViolationReportRunStatus: function (reportResultId, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'reportResultId' is not null or undefined\n (0, common_1.assertParamExists)('getSodViolationReportRunStatus', 'reportResultId', reportResultId);\n localVarPath = \"/sod-policies/sod-violation-report-status/{reportResultId}\"\n .replace(\"{\".concat(\"reportResultId\", \"}\"), encodeURIComponent(String(reportResultId)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This gets the status for a violation report run task that has already been invoked.\n * @summary Get SOD violation report status\n * @param {string} id The ID of the violation report to retrieve status for.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getSodViolationReportStatus: function (id, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'id' is not null or undefined\n (0, common_1.assertParamExists)('getSodViolationReportStatus', 'id', id);\n localVarPath = \"/sod-policies/{id}/violation-report\"\n .replace(\"{\".concat(\"id\", \"}\"), encodeURIComponent(String(id)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This gets list of all SOD policies. Requires role of ORG_ADMIN\n * @summary List SOD policies\n * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **id**: *eq* **name**: *eq* **state**: *eq*\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n listSodPolicies: function (limit, offset, count, filters, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n localVarPath = \"/sod-policies\";\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n if (limit !== undefined) {\n localVarQueryParameter['limit'] = limit;\n }\n if (offset !== undefined) {\n localVarQueryParameter['offset'] = offset;\n }\n if (count !== undefined) {\n localVarQueryParameter['count'] = count;\n }\n if (filters !== undefined) {\n localVarQueryParameter['filters'] = filters;\n }\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * Allows updating SOD Policy fields other than [\\\"id\\\",\\\"created\\\",\\\"creatorId\\\",\\\"policyQuery\\\",\\\"type\\\"] using the [JSON Patch](https://tools.ietf.org/html/rfc6902) standard. Requires role of ORG_ADMIN. This endpoint can only patch CONFLICTING_ACCESS_BASED type policies. Do not use this endpoint to patch general policies - doing so will build an API exception.\n * @summary Patch SOD policy by ID\n * @param {string} id The ID of the SOD policy being modified.\n * @param {Array} jsonPatchOperation A list of SOD Policy update operations according to the [JSON Patch](https://tools.ietf.org/html/rfc6902) standard. The following fields are patchable: * name * description * ownerRef * externalPolicyReference * compensatingControls * correctionAdvice * state * tags * violationOwnerAssignmentConfig * scheduled * conflictingAccessCriteria\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n patchSodPolicy: function (id, jsonPatchOperation, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'id' is not null or undefined\n (0, common_1.assertParamExists)('patchSodPolicy', 'id', id);\n // verify required parameter 'jsonPatchOperation' is not null or undefined\n (0, common_1.assertParamExists)('patchSodPolicy', 'jsonPatchOperation', jsonPatchOperation);\n localVarPath = \"/sod-policies/{id}\"\n .replace(\"{\".concat(\"id\", \"}\"), encodeURIComponent(String(id)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'PATCH' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n localVarHeaderParameter['Content-Type'] = 'application/json-patch+json';\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(jsonPatchOperation, localVarRequestOptions, configuration);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This updates schedule for a specified SOD policy.\n * @summary Update SOD Policy schedule\n * @param {string} id The ID of the SOD policy to update its schedule.\n * @param {SodPolicySchedule} sodPolicySchedule\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n putPolicySchedule: function (id, sodPolicySchedule, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'id' is not null or undefined\n (0, common_1.assertParamExists)('putPolicySchedule', 'id', id);\n // verify required parameter 'sodPolicySchedule' is not null or undefined\n (0, common_1.assertParamExists)('putPolicySchedule', 'sodPolicySchedule', sodPolicySchedule);\n localVarPath = \"/sod-policies/{id}/schedule\"\n .replace(\"{\".concat(\"id\", \"}\"), encodeURIComponent(String(id)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'PUT' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n localVarHeaderParameter['Content-Type'] = 'application/json';\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(sodPolicySchedule, localVarRequestOptions, configuration);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This updates a specified SOD policy. Requires role of ORG_ADMIN.\n * @summary Update SOD policy by ID\n * @param {string} id The ID of the SOD policy to update.\n * @param {SodPolicy} sodPolicy\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n putSodPolicy: function (id, sodPolicy, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'id' is not null or undefined\n (0, common_1.assertParamExists)('putSodPolicy', 'id', id);\n // verify required parameter 'sodPolicy' is not null or undefined\n (0, common_1.assertParamExists)('putSodPolicy', 'sodPolicy', sodPolicy);\n localVarPath = \"/sod-policies/{id}\"\n .replace(\"{\".concat(\"id\", \"}\"), encodeURIComponent(String(id)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'PUT' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n localVarHeaderParameter['Content-Type'] = 'application/json';\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(sodPolicy, localVarRequestOptions, configuration);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * Runs the scheduled report for the policy retrieved by passed policy ID. The report schedule is fetched from the policy retrieved by ID.\n * @summary Evaluate one policy by ID\n * @param {string} id The SOD policy ID to run.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n startEvaluateSodPolicy: function (id, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'id' is not null or undefined\n (0, common_1.assertParamExists)('startEvaluateSodPolicy', 'id', id);\n localVarPath = \"/sod-policies/{id}/evaluate\"\n .replace(\"{\".concat(\"id\", \"}\"), encodeURIComponent(String(id)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * Runs multi-policy report for the org. If a policy reports more than 5000 violations, the report mentions that the violation limit was exceeded for that policy. If the request is empty, the report runs for all policies. Otherwise, the report runs for only the filtered policy list provided.\n * @summary Runs all policies for org\n * @param {MultiPolicyRequest} [multiPolicyRequest]\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n startSodAllPoliciesForOrg: function (multiPolicyRequest, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n localVarPath = \"/sod-violation-report/run\";\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n localVarHeaderParameter['Content-Type'] = 'application/json';\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(multiPolicyRequest, localVarRequestOptions, configuration);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This invokes processing of violation report for given SOD policy. If the policy reports more than 5000 violations, the report returns with violation limit exceeded message.\n * @summary Runs SOD policy violation report\n * @param {string} id The SOD policy ID to run.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n startSodPolicy: function (id, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'id' is not null or undefined\n (0, common_1.assertParamExists)('startSodPolicy', 'id', id);\n localVarPath = \"/sod-policies/{id}/violation-report/run\"\n .replace(\"{\".concat(\"id\", \"}\"), encodeURIComponent(String(id)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n };\n};\nexports.SODPolicyApiAxiosParamCreator = SODPolicyApiAxiosParamCreator;\n/**\n * SODPolicyApi - functional programming interface\n * @export\n */\nvar SODPolicyApiFp = function (configuration) {\n var localVarAxiosParamCreator = (0, exports.SODPolicyApiAxiosParamCreator)(configuration);\n return {\n /**\n * This creates both General and Conflicting Access Based policy, with a limit of 50 entitlements for each (left & right) criteria for Conflicting Access Based SOD policy. Requires role of ORG_ADMIN.\n * @summary Create SOD policy\n * @param {SodPolicy} sodPolicy\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n createSodPolicy: function (sodPolicy, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.createSodPolicy(sodPolicy, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This deletes a specified SOD policy. Requires role of ORG_ADMIN.\n * @summary Delete SOD policy by ID\n * @param {string} id The ID of the SOD Policy to delete.\n * @param {boolean} [logical] Indicates whether this is a soft delete (logical true) or a hard delete. Soft delete marks the policy as deleted and just save it with this status. It could be fully deleted or recovered further. Hard delete vise versa permanently delete SOD request during this call.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n deleteSodPolicy: function (id, logical, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.deleteSodPolicy(id, logical, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This deletes schedule for a specified SOD policy by ID.\n * @summary Delete SOD policy schedule\n * @param {string} id The ID of the SOD policy the schedule must be deleted for.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n deleteSodPolicySchedule: function (id, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.deleteSodPolicySchedule(id, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This allows to download a specified named violation report for a given report reference.\n * @summary Download custom violation report\n * @param {string} reportResultId The ID of the report reference to download.\n * @param {string} fileName Custom Name for the file.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getCustomViolationReport: function (reportResultId, fileName, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.getCustomViolationReport(reportResultId, fileName, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This allows to download a violation report for a given report reference.\n * @summary Download violation report\n * @param {string} reportResultId The ID of the report reference to download.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getDefaultViolationReport: function (reportResultId, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.getDefaultViolationReport(reportResultId, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This endpoint gets the status for a violation report for all policy run.\n * @summary Get multi-report run task status\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getSodAllReportRunStatus: function (axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.getSodAllReportRunStatus(axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This gets specified SOD policy. Requires role of ORG_ADMIN.\n * @summary Get SOD policy by ID\n * @param {string} id The ID of the SOD Policy to retrieve.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getSodPolicy: function (id, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.getSodPolicy(id, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This endpoint gets a specified SOD policy\\'s schedule.\n * @summary Get SOD policy schedule\n * @param {string} id The ID of the SOD policy schedule to retrieve.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getSodPolicySchedule: function (id, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.getSodPolicySchedule(id, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This gets the status for a violation report run task that has already been invoked.\n * @summary Get violation report run status\n * @param {string} reportResultId The ID of the report reference to retrieve.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getSodViolationReportRunStatus: function (reportResultId, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.getSodViolationReportRunStatus(reportResultId, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This gets the status for a violation report run task that has already been invoked.\n * @summary Get SOD violation report status\n * @param {string} id The ID of the violation report to retrieve status for.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getSodViolationReportStatus: function (id, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.getSodViolationReportStatus(id, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This gets list of all SOD policies. Requires role of ORG_ADMIN\n * @summary List SOD policies\n * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **id**: *eq* **name**: *eq* **state**: *eq*\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n listSodPolicies: function (limit, offset, count, filters, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.listSodPolicies(limit, offset, count, filters, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * Allows updating SOD Policy fields other than [\\\"id\\\",\\\"created\\\",\\\"creatorId\\\",\\\"policyQuery\\\",\\\"type\\\"] using the [JSON Patch](https://tools.ietf.org/html/rfc6902) standard. Requires role of ORG_ADMIN. This endpoint can only patch CONFLICTING_ACCESS_BASED type policies. Do not use this endpoint to patch general policies - doing so will build an API exception.\n * @summary Patch SOD policy by ID\n * @param {string} id The ID of the SOD policy being modified.\n * @param {Array} jsonPatchOperation A list of SOD Policy update operations according to the [JSON Patch](https://tools.ietf.org/html/rfc6902) standard. The following fields are patchable: * name * description * ownerRef * externalPolicyReference * compensatingControls * correctionAdvice * state * tags * violationOwnerAssignmentConfig * scheduled * conflictingAccessCriteria\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n patchSodPolicy: function (id, jsonPatchOperation, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.patchSodPolicy(id, jsonPatchOperation, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This updates schedule for a specified SOD policy.\n * @summary Update SOD Policy schedule\n * @param {string} id The ID of the SOD policy to update its schedule.\n * @param {SodPolicySchedule} sodPolicySchedule\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n putPolicySchedule: function (id, sodPolicySchedule, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.putPolicySchedule(id, sodPolicySchedule, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This updates a specified SOD policy. Requires role of ORG_ADMIN.\n * @summary Update SOD policy by ID\n * @param {string} id The ID of the SOD policy to update.\n * @param {SodPolicy} sodPolicy\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n putSodPolicy: function (id, sodPolicy, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.putSodPolicy(id, sodPolicy, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * Runs the scheduled report for the policy retrieved by passed policy ID. The report schedule is fetched from the policy retrieved by ID.\n * @summary Evaluate one policy by ID\n * @param {string} id The SOD policy ID to run.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n startEvaluateSodPolicy: function (id, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.startEvaluateSodPolicy(id, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * Runs multi-policy report for the org. If a policy reports more than 5000 violations, the report mentions that the violation limit was exceeded for that policy. If the request is empty, the report runs for all policies. Otherwise, the report runs for only the filtered policy list provided.\n * @summary Runs all policies for org\n * @param {MultiPolicyRequest} [multiPolicyRequest]\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n startSodAllPoliciesForOrg: function (multiPolicyRequest, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.startSodAllPoliciesForOrg(multiPolicyRequest, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This invokes processing of violation report for given SOD policy. If the policy reports more than 5000 violations, the report returns with violation limit exceeded message.\n * @summary Runs SOD policy violation report\n * @param {string} id The SOD policy ID to run.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n startSodPolicy: function (id, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.startSodPolicy(id, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n };\n};\nexports.SODPolicyApiFp = SODPolicyApiFp;\n/**\n * SODPolicyApi - factory interface\n * @export\n */\nvar SODPolicyApiFactory = function (configuration, basePath, axios) {\n var localVarFp = (0, exports.SODPolicyApiFp)(configuration);\n return {\n /**\n * This creates both General and Conflicting Access Based policy, with a limit of 50 entitlements for each (left & right) criteria for Conflicting Access Based SOD policy. Requires role of ORG_ADMIN.\n * @summary Create SOD policy\n * @param {SodPolicy} sodPolicy\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n createSodPolicy: function (sodPolicy, axiosOptions) {\n return localVarFp.createSodPolicy(sodPolicy, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This deletes a specified SOD policy. Requires role of ORG_ADMIN.\n * @summary Delete SOD policy by ID\n * @param {string} id The ID of the SOD Policy to delete.\n * @param {boolean} [logical] Indicates whether this is a soft delete (logical true) or a hard delete. Soft delete marks the policy as deleted and just save it with this status. It could be fully deleted or recovered further. Hard delete vise versa permanently delete SOD request during this call.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n deleteSodPolicy: function (id, logical, axiosOptions) {\n return localVarFp.deleteSodPolicy(id, logical, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This deletes schedule for a specified SOD policy by ID.\n * @summary Delete SOD policy schedule\n * @param {string} id The ID of the SOD policy the schedule must be deleted for.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n deleteSodPolicySchedule: function (id, axiosOptions) {\n return localVarFp.deleteSodPolicySchedule(id, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This allows to download a specified named violation report for a given report reference.\n * @summary Download custom violation report\n * @param {string} reportResultId The ID of the report reference to download.\n * @param {string} fileName Custom Name for the file.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getCustomViolationReport: function (reportResultId, fileName, axiosOptions) {\n return localVarFp.getCustomViolationReport(reportResultId, fileName, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This allows to download a violation report for a given report reference.\n * @summary Download violation report\n * @param {string} reportResultId The ID of the report reference to download.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getDefaultViolationReport: function (reportResultId, axiosOptions) {\n return localVarFp.getDefaultViolationReport(reportResultId, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This endpoint gets the status for a violation report for all policy run.\n * @summary Get multi-report run task status\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getSodAllReportRunStatus: function (axiosOptions) {\n return localVarFp.getSodAllReportRunStatus(axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This gets specified SOD policy. Requires role of ORG_ADMIN.\n * @summary Get SOD policy by ID\n * @param {string} id The ID of the SOD Policy to retrieve.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getSodPolicy: function (id, axiosOptions) {\n return localVarFp.getSodPolicy(id, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This endpoint gets a specified SOD policy\\'s schedule.\n * @summary Get SOD policy schedule\n * @param {string} id The ID of the SOD policy schedule to retrieve.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getSodPolicySchedule: function (id, axiosOptions) {\n return localVarFp.getSodPolicySchedule(id, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This gets the status for a violation report run task that has already been invoked.\n * @summary Get violation report run status\n * @param {string} reportResultId The ID of the report reference to retrieve.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getSodViolationReportRunStatus: function (reportResultId, axiosOptions) {\n return localVarFp.getSodViolationReportRunStatus(reportResultId, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This gets the status for a violation report run task that has already been invoked.\n * @summary Get SOD violation report status\n * @param {string} id The ID of the violation report to retrieve status for.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getSodViolationReportStatus: function (id, axiosOptions) {\n return localVarFp.getSodViolationReportStatus(id, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This gets list of all SOD policies. Requires role of ORG_ADMIN\n * @summary List SOD policies\n * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **id**: *eq* **name**: *eq* **state**: *eq*\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n listSodPolicies: function (limit, offset, count, filters, axiosOptions) {\n return localVarFp.listSodPolicies(limit, offset, count, filters, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * Allows updating SOD Policy fields other than [\\\"id\\\",\\\"created\\\",\\\"creatorId\\\",\\\"policyQuery\\\",\\\"type\\\"] using the [JSON Patch](https://tools.ietf.org/html/rfc6902) standard. Requires role of ORG_ADMIN. This endpoint can only patch CONFLICTING_ACCESS_BASED type policies. Do not use this endpoint to patch general policies - doing so will build an API exception.\n * @summary Patch SOD policy by ID\n * @param {string} id The ID of the SOD policy being modified.\n * @param {Array} jsonPatchOperation A list of SOD Policy update operations according to the [JSON Patch](https://tools.ietf.org/html/rfc6902) standard. The following fields are patchable: * name * description * ownerRef * externalPolicyReference * compensatingControls * correctionAdvice * state * tags * violationOwnerAssignmentConfig * scheduled * conflictingAccessCriteria\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n patchSodPolicy: function (id, jsonPatchOperation, axiosOptions) {\n return localVarFp.patchSodPolicy(id, jsonPatchOperation, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This updates schedule for a specified SOD policy.\n * @summary Update SOD Policy schedule\n * @param {string} id The ID of the SOD policy to update its schedule.\n * @param {SodPolicySchedule} sodPolicySchedule\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n putPolicySchedule: function (id, sodPolicySchedule, axiosOptions) {\n return localVarFp.putPolicySchedule(id, sodPolicySchedule, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This updates a specified SOD policy. Requires role of ORG_ADMIN.\n * @summary Update SOD policy by ID\n * @param {string} id The ID of the SOD policy to update.\n * @param {SodPolicy} sodPolicy\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n putSodPolicy: function (id, sodPolicy, axiosOptions) {\n return localVarFp.putSodPolicy(id, sodPolicy, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * Runs the scheduled report for the policy retrieved by passed policy ID. The report schedule is fetched from the policy retrieved by ID.\n * @summary Evaluate one policy by ID\n * @param {string} id The SOD policy ID to run.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n startEvaluateSodPolicy: function (id, axiosOptions) {\n return localVarFp.startEvaluateSodPolicy(id, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * Runs multi-policy report for the org. If a policy reports more than 5000 violations, the report mentions that the violation limit was exceeded for that policy. If the request is empty, the report runs for all policies. Otherwise, the report runs for only the filtered policy list provided.\n * @summary Runs all policies for org\n * @param {MultiPolicyRequest} [multiPolicyRequest]\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n startSodAllPoliciesForOrg: function (multiPolicyRequest, axiosOptions) {\n return localVarFp.startSodAllPoliciesForOrg(multiPolicyRequest, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This invokes processing of violation report for given SOD policy. If the policy reports more than 5000 violations, the report returns with violation limit exceeded message.\n * @summary Runs SOD policy violation report\n * @param {string} id The SOD policy ID to run.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n startSodPolicy: function (id, axiosOptions) {\n return localVarFp.startSodPolicy(id, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n };\n};\nexports.SODPolicyApiFactory = SODPolicyApiFactory;\n/**\n * SODPolicyApi - object-oriented interface\n * @export\n * @class SODPolicyApi\n * @extends {BaseAPI}\n */\nvar SODPolicyApi = /** @class */ (function (_super) {\n __extends(SODPolicyApi, _super);\n function SODPolicyApi() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n * This creates both General and Conflicting Access Based policy, with a limit of 50 entitlements for each (left & right) criteria for Conflicting Access Based SOD policy. Requires role of ORG_ADMIN.\n * @summary Create SOD policy\n * @param {SODPolicyApiCreateSodPolicyRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof SODPolicyApi\n */\n SODPolicyApi.prototype.createSodPolicy = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.SODPolicyApiFp)(this.configuration).createSodPolicy(requestParameters.sodPolicy, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This deletes a specified SOD policy. Requires role of ORG_ADMIN.\n * @summary Delete SOD policy by ID\n * @param {SODPolicyApiDeleteSodPolicyRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof SODPolicyApi\n */\n SODPolicyApi.prototype.deleteSodPolicy = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.SODPolicyApiFp)(this.configuration).deleteSodPolicy(requestParameters.id, requestParameters.logical, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This deletes schedule for a specified SOD policy by ID.\n * @summary Delete SOD policy schedule\n * @param {SODPolicyApiDeleteSodPolicyScheduleRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof SODPolicyApi\n */\n SODPolicyApi.prototype.deleteSodPolicySchedule = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.SODPolicyApiFp)(this.configuration).deleteSodPolicySchedule(requestParameters.id, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This allows to download a specified named violation report for a given report reference.\n * @summary Download custom violation report\n * @param {SODPolicyApiGetCustomViolationReportRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof SODPolicyApi\n */\n SODPolicyApi.prototype.getCustomViolationReport = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.SODPolicyApiFp)(this.configuration).getCustomViolationReport(requestParameters.reportResultId, requestParameters.fileName, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This allows to download a violation report for a given report reference.\n * @summary Download violation report\n * @param {SODPolicyApiGetDefaultViolationReportRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof SODPolicyApi\n */\n SODPolicyApi.prototype.getDefaultViolationReport = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.SODPolicyApiFp)(this.configuration).getDefaultViolationReport(requestParameters.reportResultId, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This endpoint gets the status for a violation report for all policy run.\n * @summary Get multi-report run task status\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof SODPolicyApi\n */\n SODPolicyApi.prototype.getSodAllReportRunStatus = function (axiosOptions) {\n var _this = this;\n return (0, exports.SODPolicyApiFp)(this.configuration).getSodAllReportRunStatus(axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This gets specified SOD policy. Requires role of ORG_ADMIN.\n * @summary Get SOD policy by ID\n * @param {SODPolicyApiGetSodPolicyRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof SODPolicyApi\n */\n SODPolicyApi.prototype.getSodPolicy = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.SODPolicyApiFp)(this.configuration).getSodPolicy(requestParameters.id, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This endpoint gets a specified SOD policy\\'s schedule.\n * @summary Get SOD policy schedule\n * @param {SODPolicyApiGetSodPolicyScheduleRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof SODPolicyApi\n */\n SODPolicyApi.prototype.getSodPolicySchedule = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.SODPolicyApiFp)(this.configuration).getSodPolicySchedule(requestParameters.id, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This gets the status for a violation report run task that has already been invoked.\n * @summary Get violation report run status\n * @param {SODPolicyApiGetSodViolationReportRunStatusRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof SODPolicyApi\n */\n SODPolicyApi.prototype.getSodViolationReportRunStatus = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.SODPolicyApiFp)(this.configuration).getSodViolationReportRunStatus(requestParameters.reportResultId, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This gets the status for a violation report run task that has already been invoked.\n * @summary Get SOD violation report status\n * @param {SODPolicyApiGetSodViolationReportStatusRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof SODPolicyApi\n */\n SODPolicyApi.prototype.getSodViolationReportStatus = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.SODPolicyApiFp)(this.configuration).getSodViolationReportStatus(requestParameters.id, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This gets list of all SOD policies. Requires role of ORG_ADMIN\n * @summary List SOD policies\n * @param {SODPolicyApiListSodPoliciesRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof SODPolicyApi\n */\n SODPolicyApi.prototype.listSodPolicies = function (requestParameters, axiosOptions) {\n var _this = this;\n if (requestParameters === void 0) { requestParameters = {}; }\n return (0, exports.SODPolicyApiFp)(this.configuration).listSodPolicies(requestParameters.limit, requestParameters.offset, requestParameters.count, requestParameters.filters, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * Allows updating SOD Policy fields other than [\\\"id\\\",\\\"created\\\",\\\"creatorId\\\",\\\"policyQuery\\\",\\\"type\\\"] using the [JSON Patch](https://tools.ietf.org/html/rfc6902) standard. Requires role of ORG_ADMIN. This endpoint can only patch CONFLICTING_ACCESS_BASED type policies. Do not use this endpoint to patch general policies - doing so will build an API exception.\n * @summary Patch SOD policy by ID\n * @param {SODPolicyApiPatchSodPolicyRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof SODPolicyApi\n */\n SODPolicyApi.prototype.patchSodPolicy = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.SODPolicyApiFp)(this.configuration).patchSodPolicy(requestParameters.id, requestParameters.jsonPatchOperation, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This updates schedule for a specified SOD policy.\n * @summary Update SOD Policy schedule\n * @param {SODPolicyApiPutPolicyScheduleRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof SODPolicyApi\n */\n SODPolicyApi.prototype.putPolicySchedule = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.SODPolicyApiFp)(this.configuration).putPolicySchedule(requestParameters.id, requestParameters.sodPolicySchedule, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This updates a specified SOD policy. Requires role of ORG_ADMIN.\n * @summary Update SOD policy by ID\n * @param {SODPolicyApiPutSodPolicyRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof SODPolicyApi\n */\n SODPolicyApi.prototype.putSodPolicy = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.SODPolicyApiFp)(this.configuration).putSodPolicy(requestParameters.id, requestParameters.sodPolicy, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * Runs the scheduled report for the policy retrieved by passed policy ID. The report schedule is fetched from the policy retrieved by ID.\n * @summary Evaluate one policy by ID\n * @param {SODPolicyApiStartEvaluateSodPolicyRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof SODPolicyApi\n */\n SODPolicyApi.prototype.startEvaluateSodPolicy = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.SODPolicyApiFp)(this.configuration).startEvaluateSodPolicy(requestParameters.id, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * Runs multi-policy report for the org. If a policy reports more than 5000 violations, the report mentions that the violation limit was exceeded for that policy. If the request is empty, the report runs for all policies. Otherwise, the report runs for only the filtered policy list provided.\n * @summary Runs all policies for org\n * @param {SODPolicyApiStartSodAllPoliciesForOrgRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof SODPolicyApi\n */\n SODPolicyApi.prototype.startSodAllPoliciesForOrg = function (requestParameters, axiosOptions) {\n var _this = this;\n if (requestParameters === void 0) { requestParameters = {}; }\n return (0, exports.SODPolicyApiFp)(this.configuration).startSodAllPoliciesForOrg(requestParameters.multiPolicyRequest, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This invokes processing of violation report for given SOD policy. If the policy reports more than 5000 violations, the report returns with violation limit exceeded message.\n * @summary Runs SOD policy violation report\n * @param {SODPolicyApiStartSodPolicyRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof SODPolicyApi\n */\n SODPolicyApi.prototype.startSodPolicy = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.SODPolicyApiFp)(this.configuration).startSodPolicy(requestParameters.id, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n return SODPolicyApi;\n}(base_1.BaseAPI));\nexports.SODPolicyApi = SODPolicyApi;\n/**\n * SODViolationsApi - axios parameter creator\n * @export\n */\nvar SODViolationsApiAxiosParamCreator = function (configuration) {\n var _this = this;\n return {\n /**\n * This API is used to check if granting some additional accesses would cause the subject to be in violation of any SOD policies. Returns the violations that would be caused. A token with ORG_ADMIN or API authority is required to call this API.\n * @summary Predict SOD violations for identity.\n * @param {IdentityWithNewAccess} identityWithNewAccess\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n startPredictSodViolations: function (identityWithNewAccess, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'identityWithNewAccess' is not null or undefined\n (0, common_1.assertParamExists)('startPredictSodViolations', 'identityWithNewAccess', identityWithNewAccess);\n localVarPath = \"/sod-violations/predict\";\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n localVarHeaderParameter['Content-Type'] = 'application/json';\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(identityWithNewAccess, localVarRequestOptions, configuration);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This API initiates a SOD policy verification asynchronously. A token with ORG_ADMIN authority is required to call this API.\n * @summary Check SOD violations\n * @param {IdentityWithNewAccess1} identityWithNewAccess1\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n startViolationCheck: function (identityWithNewAccess1, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'identityWithNewAccess1' is not null or undefined\n (0, common_1.assertParamExists)('startViolationCheck', 'identityWithNewAccess1', identityWithNewAccess1);\n localVarPath = \"/sod-violations/check\";\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n localVarHeaderParameter['Content-Type'] = 'application/json';\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(identityWithNewAccess1, localVarRequestOptions, configuration);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n };\n};\nexports.SODViolationsApiAxiosParamCreator = SODViolationsApiAxiosParamCreator;\n/**\n * SODViolationsApi - functional programming interface\n * @export\n */\nvar SODViolationsApiFp = function (configuration) {\n var localVarAxiosParamCreator = (0, exports.SODViolationsApiAxiosParamCreator)(configuration);\n return {\n /**\n * This API is used to check if granting some additional accesses would cause the subject to be in violation of any SOD policies. Returns the violations that would be caused. A token with ORG_ADMIN or API authority is required to call this API.\n * @summary Predict SOD violations for identity.\n * @param {IdentityWithNewAccess} identityWithNewAccess\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n startPredictSodViolations: function (identityWithNewAccess, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.startPredictSodViolations(identityWithNewAccess, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This API initiates a SOD policy verification asynchronously. A token with ORG_ADMIN authority is required to call this API.\n * @summary Check SOD violations\n * @param {IdentityWithNewAccess1} identityWithNewAccess1\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n startViolationCheck: function (identityWithNewAccess1, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.startViolationCheck(identityWithNewAccess1, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n };\n};\nexports.SODViolationsApiFp = SODViolationsApiFp;\n/**\n * SODViolationsApi - factory interface\n * @export\n */\nvar SODViolationsApiFactory = function (configuration, basePath, axios) {\n var localVarFp = (0, exports.SODViolationsApiFp)(configuration);\n return {\n /**\n * This API is used to check if granting some additional accesses would cause the subject to be in violation of any SOD policies. Returns the violations that would be caused. A token with ORG_ADMIN or API authority is required to call this API.\n * @summary Predict SOD violations for identity.\n * @param {IdentityWithNewAccess} identityWithNewAccess\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n startPredictSodViolations: function (identityWithNewAccess, axiosOptions) {\n return localVarFp.startPredictSodViolations(identityWithNewAccess, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This API initiates a SOD policy verification asynchronously. A token with ORG_ADMIN authority is required to call this API.\n * @summary Check SOD violations\n * @param {IdentityWithNewAccess1} identityWithNewAccess1\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n startViolationCheck: function (identityWithNewAccess1, axiosOptions) {\n return localVarFp.startViolationCheck(identityWithNewAccess1, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n };\n};\nexports.SODViolationsApiFactory = SODViolationsApiFactory;\n/**\n * SODViolationsApi - object-oriented interface\n * @export\n * @class SODViolationsApi\n * @extends {BaseAPI}\n */\nvar SODViolationsApi = /** @class */ (function (_super) {\n __extends(SODViolationsApi, _super);\n function SODViolationsApi() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n * This API is used to check if granting some additional accesses would cause the subject to be in violation of any SOD policies. Returns the violations that would be caused. A token with ORG_ADMIN or API authority is required to call this API.\n * @summary Predict SOD violations for identity.\n * @param {SODViolationsApiStartPredictSodViolationsRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof SODViolationsApi\n */\n SODViolationsApi.prototype.startPredictSodViolations = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.SODViolationsApiFp)(this.configuration).startPredictSodViolations(requestParameters.identityWithNewAccess, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This API initiates a SOD policy verification asynchronously. A token with ORG_ADMIN authority is required to call this API.\n * @summary Check SOD violations\n * @param {SODViolationsApiStartViolationCheckRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof SODViolationsApi\n */\n SODViolationsApi.prototype.startViolationCheck = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.SODViolationsApiFp)(this.configuration).startViolationCheck(requestParameters.identityWithNewAccess1, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n return SODViolationsApi;\n}(base_1.BaseAPI));\nexports.SODViolationsApi = SODViolationsApi;\n/**\n * SavedSearchApi - axios parameter creator\n * @export\n */\nvar SavedSearchApiAxiosParamCreator = function (configuration) {\n var _this = this;\n return {\n /**\n * Creates a new saved search.\n * @summary Create a saved search\n * @param {CreateSavedSearchRequest} createSavedSearchRequest The saved search to persist.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n createSavedSearch: function (createSavedSearchRequest, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'createSavedSearchRequest' is not null or undefined\n (0, common_1.assertParamExists)('createSavedSearch', 'createSavedSearchRequest', createSavedSearchRequest);\n localVarPath = \"/saved-searches\";\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n localVarHeaderParameter['Content-Type'] = 'application/json';\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(createSavedSearchRequest, localVarRequestOptions, configuration);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * Deletes the specified saved search.\n * @summary Delete document by ID\n * @param {string} id ID of the requested document.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n deleteSavedSearch: function (id, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'id' is not null or undefined\n (0, common_1.assertParamExists)('deleteSavedSearch', 'id', id);\n localVarPath = \"/saved-searches/{id}\"\n .replace(\"{\".concat(\"id\", \"}\"), encodeURIComponent(String(id)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'DELETE' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * Executes the specified saved search.\n * @summary Execute a saved search by ID\n * @param {string} id ID of the requested document.\n * @param {SearchArguments} searchArguments When saved search execution is triggered by a scheduled search, *scheduleId* will specify the ID of the triggering scheduled search. If *scheduleId* is not specified (when execution is triggered by a UI test), the *owner* and *recipients* arguments must be provided.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n executeSavedSearch: function (id, searchArguments, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'id' is not null or undefined\n (0, common_1.assertParamExists)('executeSavedSearch', 'id', id);\n // verify required parameter 'searchArguments' is not null or undefined\n (0, common_1.assertParamExists)('executeSavedSearch', 'searchArguments', searchArguments);\n localVarPath = \"/saved-searches/{id}/execute\"\n .replace(\"{\".concat(\"id\", \"}\"), encodeURIComponent(String(id)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n localVarHeaderParameter['Content-Type'] = 'application/json';\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(searchArguments, localVarRequestOptions, configuration);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * Returns the specified saved search.\n * @summary Return saved search by ID\n * @param {string} id ID of the requested document.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getSavedSearch: function (id, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'id' is not null or undefined\n (0, common_1.assertParamExists)('getSavedSearch', 'id', id);\n localVarPath = \"/saved-searches/{id}\"\n .replace(\"{\".concat(\"id\", \"}\"), encodeURIComponent(String(id)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * Returns a list of saved searches.\n * @summary Return a list of Saved Searches\n * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **owner.id**: *eq* **publiic**: *eq*\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n listSavedSearches: function (offset, limit, count, filters, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n localVarPath = \"/saved-searches\";\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n if (offset !== undefined) {\n localVarQueryParameter['offset'] = offset;\n }\n if (limit !== undefined) {\n localVarQueryParameter['limit'] = limit;\n }\n if (count !== undefined) {\n localVarQueryParameter['count'] = count;\n }\n if (filters !== undefined) {\n localVarQueryParameter['filters'] = filters;\n }\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * Updates an existing saved search. >**NOTE: You cannot update the `owner` of the saved search.**\n * @summary Updates an existing saved search\n * @param {string} id ID of the requested document.\n * @param {SavedSearch} savedSearch The saved search to persist.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n putSavedSearch: function (id, savedSearch, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'id' is not null or undefined\n (0, common_1.assertParamExists)('putSavedSearch', 'id', id);\n // verify required parameter 'savedSearch' is not null or undefined\n (0, common_1.assertParamExists)('putSavedSearch', 'savedSearch', savedSearch);\n localVarPath = \"/saved-searches/{id}\"\n .replace(\"{\".concat(\"id\", \"}\"), encodeURIComponent(String(id)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'PUT' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n localVarHeaderParameter['Content-Type'] = 'application/json';\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(savedSearch, localVarRequestOptions, configuration);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n };\n};\nexports.SavedSearchApiAxiosParamCreator = SavedSearchApiAxiosParamCreator;\n/**\n * SavedSearchApi - functional programming interface\n * @export\n */\nvar SavedSearchApiFp = function (configuration) {\n var localVarAxiosParamCreator = (0, exports.SavedSearchApiAxiosParamCreator)(configuration);\n return {\n /**\n * Creates a new saved search.\n * @summary Create a saved search\n * @param {CreateSavedSearchRequest} createSavedSearchRequest The saved search to persist.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n createSavedSearch: function (createSavedSearchRequest, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.createSavedSearch(createSavedSearchRequest, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * Deletes the specified saved search.\n * @summary Delete document by ID\n * @param {string} id ID of the requested document.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n deleteSavedSearch: function (id, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.deleteSavedSearch(id, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * Executes the specified saved search.\n * @summary Execute a saved search by ID\n * @param {string} id ID of the requested document.\n * @param {SearchArguments} searchArguments When saved search execution is triggered by a scheduled search, *scheduleId* will specify the ID of the triggering scheduled search. If *scheduleId* is not specified (when execution is triggered by a UI test), the *owner* and *recipients* arguments must be provided.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n executeSavedSearch: function (id, searchArguments, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.executeSavedSearch(id, searchArguments, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * Returns the specified saved search.\n * @summary Return saved search by ID\n * @param {string} id ID of the requested document.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getSavedSearch: function (id, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.getSavedSearch(id, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * Returns a list of saved searches.\n * @summary Return a list of Saved Searches\n * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **owner.id**: *eq* **publiic**: *eq*\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n listSavedSearches: function (offset, limit, count, filters, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.listSavedSearches(offset, limit, count, filters, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * Updates an existing saved search. >**NOTE: You cannot update the `owner` of the saved search.**\n * @summary Updates an existing saved search\n * @param {string} id ID of the requested document.\n * @param {SavedSearch} savedSearch The saved search to persist.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n putSavedSearch: function (id, savedSearch, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.putSavedSearch(id, savedSearch, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n };\n};\nexports.SavedSearchApiFp = SavedSearchApiFp;\n/**\n * SavedSearchApi - factory interface\n * @export\n */\nvar SavedSearchApiFactory = function (configuration, basePath, axios) {\n var localVarFp = (0, exports.SavedSearchApiFp)(configuration);\n return {\n /**\n * Creates a new saved search.\n * @summary Create a saved search\n * @param {CreateSavedSearchRequest} createSavedSearchRequest The saved search to persist.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n createSavedSearch: function (createSavedSearchRequest, axiosOptions) {\n return localVarFp.createSavedSearch(createSavedSearchRequest, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * Deletes the specified saved search.\n * @summary Delete document by ID\n * @param {string} id ID of the requested document.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n deleteSavedSearch: function (id, axiosOptions) {\n return localVarFp.deleteSavedSearch(id, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * Executes the specified saved search.\n * @summary Execute a saved search by ID\n * @param {string} id ID of the requested document.\n * @param {SearchArguments} searchArguments When saved search execution is triggered by a scheduled search, *scheduleId* will specify the ID of the triggering scheduled search. If *scheduleId* is not specified (when execution is triggered by a UI test), the *owner* and *recipients* arguments must be provided.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n executeSavedSearch: function (id, searchArguments, axiosOptions) {\n return localVarFp.executeSavedSearch(id, searchArguments, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * Returns the specified saved search.\n * @summary Return saved search by ID\n * @param {string} id ID of the requested document.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getSavedSearch: function (id, axiosOptions) {\n return localVarFp.getSavedSearch(id, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * Returns a list of saved searches.\n * @summary Return a list of Saved Searches\n * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **owner.id**: *eq* **publiic**: *eq*\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n listSavedSearches: function (offset, limit, count, filters, axiosOptions) {\n return localVarFp.listSavedSearches(offset, limit, count, filters, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * Updates an existing saved search. >**NOTE: You cannot update the `owner` of the saved search.**\n * @summary Updates an existing saved search\n * @param {string} id ID of the requested document.\n * @param {SavedSearch} savedSearch The saved search to persist.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n putSavedSearch: function (id, savedSearch, axiosOptions) {\n return localVarFp.putSavedSearch(id, savedSearch, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n };\n};\nexports.SavedSearchApiFactory = SavedSearchApiFactory;\n/**\n * SavedSearchApi - object-oriented interface\n * @export\n * @class SavedSearchApi\n * @extends {BaseAPI}\n */\nvar SavedSearchApi = /** @class */ (function (_super) {\n __extends(SavedSearchApi, _super);\n function SavedSearchApi() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n * Creates a new saved search.\n * @summary Create a saved search\n * @param {SavedSearchApiCreateSavedSearchRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof SavedSearchApi\n */\n SavedSearchApi.prototype.createSavedSearch = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.SavedSearchApiFp)(this.configuration).createSavedSearch(requestParameters.createSavedSearchRequest, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * Deletes the specified saved search.\n * @summary Delete document by ID\n * @param {SavedSearchApiDeleteSavedSearchRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof SavedSearchApi\n */\n SavedSearchApi.prototype.deleteSavedSearch = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.SavedSearchApiFp)(this.configuration).deleteSavedSearch(requestParameters.id, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * Executes the specified saved search.\n * @summary Execute a saved search by ID\n * @param {SavedSearchApiExecuteSavedSearchRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof SavedSearchApi\n */\n SavedSearchApi.prototype.executeSavedSearch = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.SavedSearchApiFp)(this.configuration).executeSavedSearch(requestParameters.id, requestParameters.searchArguments, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * Returns the specified saved search.\n * @summary Return saved search by ID\n * @param {SavedSearchApiGetSavedSearchRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof SavedSearchApi\n */\n SavedSearchApi.prototype.getSavedSearch = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.SavedSearchApiFp)(this.configuration).getSavedSearch(requestParameters.id, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * Returns a list of saved searches.\n * @summary Return a list of Saved Searches\n * @param {SavedSearchApiListSavedSearchesRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof SavedSearchApi\n */\n SavedSearchApi.prototype.listSavedSearches = function (requestParameters, axiosOptions) {\n var _this = this;\n if (requestParameters === void 0) { requestParameters = {}; }\n return (0, exports.SavedSearchApiFp)(this.configuration).listSavedSearches(requestParameters.offset, requestParameters.limit, requestParameters.count, requestParameters.filters, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * Updates an existing saved search. >**NOTE: You cannot update the `owner` of the saved search.**\n * @summary Updates an existing saved search\n * @param {SavedSearchApiPutSavedSearchRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof SavedSearchApi\n */\n SavedSearchApi.prototype.putSavedSearch = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.SavedSearchApiFp)(this.configuration).putSavedSearch(requestParameters.id, requestParameters.savedSearch, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n return SavedSearchApi;\n}(base_1.BaseAPI));\nexports.SavedSearchApi = SavedSearchApi;\n/**\n * ScheduledSearchApi - axios parameter creator\n * @export\n */\nvar ScheduledSearchApiAxiosParamCreator = function (configuration) {\n var _this = this;\n return {\n /**\n * Creates a new scheduled search.\n * @summary Create a new scheduled search\n * @param {CreateScheduledSearchRequest} createScheduledSearchRequest The scheduled search to persist.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n createScheduledSearch: function (createScheduledSearchRequest, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'createScheduledSearchRequest' is not null or undefined\n (0, common_1.assertParamExists)('createScheduledSearch', 'createScheduledSearchRequest', createScheduledSearchRequest);\n localVarPath = \"/scheduled-searches\";\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n localVarHeaderParameter['Content-Type'] = 'application/json';\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(createScheduledSearchRequest, localVarRequestOptions, configuration);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * Deletes the specified scheduled search.\n * @summary Delete a Scheduled Search\n * @param {string} id ID of the requested document.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n deleteScheduledSearch: function (id, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'id' is not null or undefined\n (0, common_1.assertParamExists)('deleteScheduledSearch', 'id', id);\n localVarPath = \"/scheduled-searches/{id}\"\n .replace(\"{\".concat(\"id\", \"}\"), encodeURIComponent(String(id)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'DELETE' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * Returns the specified scheduled search.\n * @summary Get a Scheduled Search\n * @param {string} id ID of the requested document.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getScheduledSearch: function (id, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'id' is not null or undefined\n (0, common_1.assertParamExists)('getScheduledSearch', 'id', id);\n localVarPath = \"/scheduled-searches/{id}\"\n .replace(\"{\".concat(\"id\", \"}\"), encodeURIComponent(String(id)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * Returns a list of scheduled searches.\n * @summary List scheduled searches\n * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **owner.id**: *eq* **savedSearchId**: *eq*\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n listScheduledSearch: function (offset, limit, count, filters, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n localVarPath = \"/scheduled-searches\";\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n if (offset !== undefined) {\n localVarQueryParameter['offset'] = offset;\n }\n if (limit !== undefined) {\n localVarQueryParameter['limit'] = limit;\n }\n if (count !== undefined) {\n localVarQueryParameter['count'] = count;\n }\n if (filters !== undefined) {\n localVarQueryParameter['filters'] = filters;\n }\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * Unsubscribes a recipient from the specified scheduled search.\n * @summary Unsubscribe a recipient from Scheduled Search\n * @param {string} id ID of the requested document.\n * @param {TypedReference} typedReference The recipient to be removed from the scheduled search.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n unsubscribeScheduledSearch: function (id, typedReference, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'id' is not null or undefined\n (0, common_1.assertParamExists)('unsubscribeScheduledSearch', 'id', id);\n // verify required parameter 'typedReference' is not null or undefined\n (0, common_1.assertParamExists)('unsubscribeScheduledSearch', 'typedReference', typedReference);\n localVarPath = \"/scheduled-searches/{id}/unsubscribe\"\n .replace(\"{\".concat(\"id\", \"}\"), encodeURIComponent(String(id)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n localVarHeaderParameter['Content-Type'] = 'application/json';\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(typedReference, localVarRequestOptions, configuration);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * Updates an existing scheduled search.\n * @summary Update an existing Scheduled Search\n * @param {string} id ID of the requested document.\n * @param {ScheduledSearch} scheduledSearch The scheduled search to persist.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n updateScheduledSearch: function (id, scheduledSearch, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'id' is not null or undefined\n (0, common_1.assertParamExists)('updateScheduledSearch', 'id', id);\n // verify required parameter 'scheduledSearch' is not null or undefined\n (0, common_1.assertParamExists)('updateScheduledSearch', 'scheduledSearch', scheduledSearch);\n localVarPath = \"/scheduled-searches/{id}\"\n .replace(\"{\".concat(\"id\", \"}\"), encodeURIComponent(String(id)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'PUT' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n localVarHeaderParameter['Content-Type'] = 'application/json';\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(scheduledSearch, localVarRequestOptions, configuration);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n };\n};\nexports.ScheduledSearchApiAxiosParamCreator = ScheduledSearchApiAxiosParamCreator;\n/**\n * ScheduledSearchApi - functional programming interface\n * @export\n */\nvar ScheduledSearchApiFp = function (configuration) {\n var localVarAxiosParamCreator = (0, exports.ScheduledSearchApiAxiosParamCreator)(configuration);\n return {\n /**\n * Creates a new scheduled search.\n * @summary Create a new scheduled search\n * @param {CreateScheduledSearchRequest} createScheduledSearchRequest The scheduled search to persist.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n createScheduledSearch: function (createScheduledSearchRequest, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.createScheduledSearch(createScheduledSearchRequest, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * Deletes the specified scheduled search.\n * @summary Delete a Scheduled Search\n * @param {string} id ID of the requested document.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n deleteScheduledSearch: function (id, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.deleteScheduledSearch(id, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * Returns the specified scheduled search.\n * @summary Get a Scheduled Search\n * @param {string} id ID of the requested document.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getScheduledSearch: function (id, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.getScheduledSearch(id, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * Returns a list of scheduled searches.\n * @summary List scheduled searches\n * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **owner.id**: *eq* **savedSearchId**: *eq*\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n listScheduledSearch: function (offset, limit, count, filters, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.listScheduledSearch(offset, limit, count, filters, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * Unsubscribes a recipient from the specified scheduled search.\n * @summary Unsubscribe a recipient from Scheduled Search\n * @param {string} id ID of the requested document.\n * @param {TypedReference} typedReference The recipient to be removed from the scheduled search.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n unsubscribeScheduledSearch: function (id, typedReference, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.unsubscribeScheduledSearch(id, typedReference, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * Updates an existing scheduled search.\n * @summary Update an existing Scheduled Search\n * @param {string} id ID of the requested document.\n * @param {ScheduledSearch} scheduledSearch The scheduled search to persist.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n updateScheduledSearch: function (id, scheduledSearch, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.updateScheduledSearch(id, scheduledSearch, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n };\n};\nexports.ScheduledSearchApiFp = ScheduledSearchApiFp;\n/**\n * ScheduledSearchApi - factory interface\n * @export\n */\nvar ScheduledSearchApiFactory = function (configuration, basePath, axios) {\n var localVarFp = (0, exports.ScheduledSearchApiFp)(configuration);\n return {\n /**\n * Creates a new scheduled search.\n * @summary Create a new scheduled search\n * @param {CreateScheduledSearchRequest} createScheduledSearchRequest The scheduled search to persist.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n createScheduledSearch: function (createScheduledSearchRequest, axiosOptions) {\n return localVarFp.createScheduledSearch(createScheduledSearchRequest, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * Deletes the specified scheduled search.\n * @summary Delete a Scheduled Search\n * @param {string} id ID of the requested document.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n deleteScheduledSearch: function (id, axiosOptions) {\n return localVarFp.deleteScheduledSearch(id, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * Returns the specified scheduled search.\n * @summary Get a Scheduled Search\n * @param {string} id ID of the requested document.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getScheduledSearch: function (id, axiosOptions) {\n return localVarFp.getScheduledSearch(id, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * Returns a list of scheduled searches.\n * @summary List scheduled searches\n * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **owner.id**: *eq* **savedSearchId**: *eq*\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n listScheduledSearch: function (offset, limit, count, filters, axiosOptions) {\n return localVarFp.listScheduledSearch(offset, limit, count, filters, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * Unsubscribes a recipient from the specified scheduled search.\n * @summary Unsubscribe a recipient from Scheduled Search\n * @param {string} id ID of the requested document.\n * @param {TypedReference} typedReference The recipient to be removed from the scheduled search.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n unsubscribeScheduledSearch: function (id, typedReference, axiosOptions) {\n return localVarFp.unsubscribeScheduledSearch(id, typedReference, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * Updates an existing scheduled search.\n * @summary Update an existing Scheduled Search\n * @param {string} id ID of the requested document.\n * @param {ScheduledSearch} scheduledSearch The scheduled search to persist.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n updateScheduledSearch: function (id, scheduledSearch, axiosOptions) {\n return localVarFp.updateScheduledSearch(id, scheduledSearch, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n };\n};\nexports.ScheduledSearchApiFactory = ScheduledSearchApiFactory;\n/**\n * ScheduledSearchApi - object-oriented interface\n * @export\n * @class ScheduledSearchApi\n * @extends {BaseAPI}\n */\nvar ScheduledSearchApi = /** @class */ (function (_super) {\n __extends(ScheduledSearchApi, _super);\n function ScheduledSearchApi() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n * Creates a new scheduled search.\n * @summary Create a new scheduled search\n * @param {ScheduledSearchApiCreateScheduledSearchRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof ScheduledSearchApi\n */\n ScheduledSearchApi.prototype.createScheduledSearch = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.ScheduledSearchApiFp)(this.configuration).createScheduledSearch(requestParameters.createScheduledSearchRequest, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * Deletes the specified scheduled search.\n * @summary Delete a Scheduled Search\n * @param {ScheduledSearchApiDeleteScheduledSearchRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof ScheduledSearchApi\n */\n ScheduledSearchApi.prototype.deleteScheduledSearch = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.ScheduledSearchApiFp)(this.configuration).deleteScheduledSearch(requestParameters.id, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * Returns the specified scheduled search.\n * @summary Get a Scheduled Search\n * @param {ScheduledSearchApiGetScheduledSearchRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof ScheduledSearchApi\n */\n ScheduledSearchApi.prototype.getScheduledSearch = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.ScheduledSearchApiFp)(this.configuration).getScheduledSearch(requestParameters.id, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * Returns a list of scheduled searches.\n * @summary List scheduled searches\n * @param {ScheduledSearchApiListScheduledSearchRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof ScheduledSearchApi\n */\n ScheduledSearchApi.prototype.listScheduledSearch = function (requestParameters, axiosOptions) {\n var _this = this;\n if (requestParameters === void 0) { requestParameters = {}; }\n return (0, exports.ScheduledSearchApiFp)(this.configuration).listScheduledSearch(requestParameters.offset, requestParameters.limit, requestParameters.count, requestParameters.filters, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * Unsubscribes a recipient from the specified scheduled search.\n * @summary Unsubscribe a recipient from Scheduled Search\n * @param {ScheduledSearchApiUnsubscribeScheduledSearchRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof ScheduledSearchApi\n */\n ScheduledSearchApi.prototype.unsubscribeScheduledSearch = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.ScheduledSearchApiFp)(this.configuration).unsubscribeScheduledSearch(requestParameters.id, requestParameters.typedReference, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * Updates an existing scheduled search.\n * @summary Update an existing Scheduled Search\n * @param {ScheduledSearchApiUpdateScheduledSearchRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof ScheduledSearchApi\n */\n ScheduledSearchApi.prototype.updateScheduledSearch = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.ScheduledSearchApiFp)(this.configuration).updateScheduledSearch(requestParameters.id, requestParameters.scheduledSearch, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n return ScheduledSearchApi;\n}(base_1.BaseAPI));\nexports.ScheduledSearchApi = ScheduledSearchApi;\n/**\n * SearchApi - axios parameter creator\n * @export\n */\nvar SearchApiAxiosParamCreator = function (configuration) {\n var _this = this;\n return {\n /**\n * Performs a search query aggregation and returns the aggregation result. By default, you can page a maximum of 10,000 search result records. To page past 10,000 records, you can use searchAfter paging. Refer to [Paginating Search Queries](https://developer.sailpoint.com/idn/api/standard-collection-parameters#paginating-search-queries) for more information about how to implement searchAfter paging.\n * @summary Perform a Search Query Aggregation\n * @param {Search} search\n * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n searchAggregate: function (search, offset, limit, count, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'search' is not null or undefined\n (0, common_1.assertParamExists)('searchAggregate', 'search', search);\n localVarPath = \"/search/aggregate\";\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n if (offset !== undefined) {\n localVarQueryParameter['offset'] = offset;\n }\n if (limit !== undefined) {\n localVarQueryParameter['limit'] = limit;\n }\n if (count !== undefined) {\n localVarQueryParameter['count'] = count;\n }\n localVarHeaderParameter['Content-Type'] = 'application/json';\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(search, localVarRequestOptions, configuration);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * Performs a search with a provided query and returns the count of results in the X-Total-Count header.\n * @summary Count Documents Satisfying a Query\n * @param {Search} search\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n searchCount: function (search, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'search' is not null or undefined\n (0, common_1.assertParamExists)('searchCount', 'search', search);\n localVarPath = \"/search/count\";\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n localVarHeaderParameter['Content-Type'] = 'application/json';\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(search, localVarRequestOptions, configuration);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * Fetches a single document from the specified index, using the specified document ID.\n * @summary Get a Document by ID\n * @param {string} index The index from which to fetch the specified document. The currently supported index names are: *accessprofiles*, *accountactivities*, *accounts*, *aggregations*, *entitlements*, *events*, *identities*, and *roles*.\n * @param {string} id ID of the requested document.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n searchGet: function (index, id, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'index' is not null or undefined\n (0, common_1.assertParamExists)('searchGet', 'index', index);\n // verify required parameter 'id' is not null or undefined\n (0, common_1.assertParamExists)('searchGet', 'id', id);\n localVarPath = \"/search/{index}/{id}\"\n .replace(\"{\".concat(\"index\", \"}\"), encodeURIComponent(String(index)))\n .replace(\"{\".concat(\"id\", \"}\"), encodeURIComponent(String(id)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * Performs a search with the provided query and returns a matching result collection. By default, you can page a maximum of 10,000 search result records. To page past 10,000 records, you can use searchAfter paging. Refer to [Paginating Search Queries](https://developer.sailpoint.com/idn/api/standard-collection-parameters#paginating-search-queries) for more information about how to implement searchAfter paging.\n * @summary Perform Search\n * @param {Search} search\n * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n searchPost: function (search, offset, limit, count, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'search' is not null or undefined\n (0, common_1.assertParamExists)('searchPost', 'search', search);\n localVarPath = \"/search\";\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n if (offset !== undefined) {\n localVarQueryParameter['offset'] = offset;\n }\n if (limit !== undefined) {\n localVarQueryParameter['limit'] = limit;\n }\n if (count !== undefined) {\n localVarQueryParameter['count'] = count;\n }\n localVarHeaderParameter['Content-Type'] = 'application/json';\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(search, localVarRequestOptions, configuration);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n };\n};\nexports.SearchApiAxiosParamCreator = SearchApiAxiosParamCreator;\n/**\n * SearchApi - functional programming interface\n * @export\n */\nvar SearchApiFp = function (configuration) {\n var localVarAxiosParamCreator = (0, exports.SearchApiAxiosParamCreator)(configuration);\n return {\n /**\n * Performs a search query aggregation and returns the aggregation result. By default, you can page a maximum of 10,000 search result records. To page past 10,000 records, you can use searchAfter paging. Refer to [Paginating Search Queries](https://developer.sailpoint.com/idn/api/standard-collection-parameters#paginating-search-queries) for more information about how to implement searchAfter paging.\n * @summary Perform a Search Query Aggregation\n * @param {Search} search\n * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n searchAggregate: function (search, offset, limit, count, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.searchAggregate(search, offset, limit, count, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * Performs a search with a provided query and returns the count of results in the X-Total-Count header.\n * @summary Count Documents Satisfying a Query\n * @param {Search} search\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n searchCount: function (search, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.searchCount(search, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * Fetches a single document from the specified index, using the specified document ID.\n * @summary Get a Document by ID\n * @param {string} index The index from which to fetch the specified document. The currently supported index names are: *accessprofiles*, *accountactivities*, *accounts*, *aggregations*, *entitlements*, *events*, *identities*, and *roles*.\n * @param {string} id ID of the requested document.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n searchGet: function (index, id, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.searchGet(index, id, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * Performs a search with the provided query and returns a matching result collection. By default, you can page a maximum of 10,000 search result records. To page past 10,000 records, you can use searchAfter paging. Refer to [Paginating Search Queries](https://developer.sailpoint.com/idn/api/standard-collection-parameters#paginating-search-queries) for more information about how to implement searchAfter paging.\n * @summary Perform Search\n * @param {Search} search\n * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n searchPost: function (search, offset, limit, count, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.searchPost(search, offset, limit, count, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n };\n};\nexports.SearchApiFp = SearchApiFp;\n/**\n * SearchApi - factory interface\n * @export\n */\nvar SearchApiFactory = function (configuration, basePath, axios) {\n var localVarFp = (0, exports.SearchApiFp)(configuration);\n return {\n /**\n * Performs a search query aggregation and returns the aggregation result. By default, you can page a maximum of 10,000 search result records. To page past 10,000 records, you can use searchAfter paging. Refer to [Paginating Search Queries](https://developer.sailpoint.com/idn/api/standard-collection-parameters#paginating-search-queries) for more information about how to implement searchAfter paging.\n * @summary Perform a Search Query Aggregation\n * @param {Search} search\n * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n searchAggregate: function (search, offset, limit, count, axiosOptions) {\n return localVarFp.searchAggregate(search, offset, limit, count, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * Performs a search with a provided query and returns the count of results in the X-Total-Count header.\n * @summary Count Documents Satisfying a Query\n * @param {Search} search\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n searchCount: function (search, axiosOptions) {\n return localVarFp.searchCount(search, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * Fetches a single document from the specified index, using the specified document ID.\n * @summary Get a Document by ID\n * @param {string} index The index from which to fetch the specified document. The currently supported index names are: *accessprofiles*, *accountactivities*, *accounts*, *aggregations*, *entitlements*, *events*, *identities*, and *roles*.\n * @param {string} id ID of the requested document.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n searchGet: function (index, id, axiosOptions) {\n return localVarFp.searchGet(index, id, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * Performs a search with the provided query and returns a matching result collection. By default, you can page a maximum of 10,000 search result records. To page past 10,000 records, you can use searchAfter paging. Refer to [Paginating Search Queries](https://developer.sailpoint.com/idn/api/standard-collection-parameters#paginating-search-queries) for more information about how to implement searchAfter paging.\n * @summary Perform Search\n * @param {Search} search\n * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n searchPost: function (search, offset, limit, count, axiosOptions) {\n return localVarFp.searchPost(search, offset, limit, count, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n };\n};\nexports.SearchApiFactory = SearchApiFactory;\n/**\n * SearchApi - object-oriented interface\n * @export\n * @class SearchApi\n * @extends {BaseAPI}\n */\nvar SearchApi = /** @class */ (function (_super) {\n __extends(SearchApi, _super);\n function SearchApi() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n * Performs a search query aggregation and returns the aggregation result. By default, you can page a maximum of 10,000 search result records. To page past 10,000 records, you can use searchAfter paging. Refer to [Paginating Search Queries](https://developer.sailpoint.com/idn/api/standard-collection-parameters#paginating-search-queries) for more information about how to implement searchAfter paging.\n * @summary Perform a Search Query Aggregation\n * @param {SearchApiSearchAggregateRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof SearchApi\n */\n SearchApi.prototype.searchAggregate = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.SearchApiFp)(this.configuration).searchAggregate(requestParameters.search, requestParameters.offset, requestParameters.limit, requestParameters.count, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * Performs a search with a provided query and returns the count of results in the X-Total-Count header.\n * @summary Count Documents Satisfying a Query\n * @param {SearchApiSearchCountRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof SearchApi\n */\n SearchApi.prototype.searchCount = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.SearchApiFp)(this.configuration).searchCount(requestParameters.search, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * Fetches a single document from the specified index, using the specified document ID.\n * @summary Get a Document by ID\n * @param {SearchApiSearchGetRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof SearchApi\n */\n SearchApi.prototype.searchGet = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.SearchApiFp)(this.configuration).searchGet(requestParameters.index, requestParameters.id, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * Performs a search with the provided query and returns a matching result collection. By default, you can page a maximum of 10,000 search result records. To page past 10,000 records, you can use searchAfter paging. Refer to [Paginating Search Queries](https://developer.sailpoint.com/idn/api/standard-collection-parameters#paginating-search-queries) for more information about how to implement searchAfter paging.\n * @summary Perform Search\n * @param {SearchApiSearchPostRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof SearchApi\n */\n SearchApi.prototype.searchPost = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.SearchApiFp)(this.configuration).searchPost(requestParameters.search, requestParameters.offset, requestParameters.limit, requestParameters.count, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n return SearchApi;\n}(base_1.BaseAPI));\nexports.SearchApi = SearchApi;\n/**\n * SegmentsApi - axios parameter creator\n * @export\n */\nvar SegmentsApiAxiosParamCreator = function (configuration) {\n var _this = this;\n return {\n /**\n * This API creates a segment. >**Note:** Segment definitions may take time to propagate to all identities. A token with ORG_ADMIN or API authority is required to call this API.\n * @summary Create Segment\n * @param {Segment} segment\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n createSegment: function (segment, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'segment' is not null or undefined\n (0, common_1.assertParamExists)('createSegment', 'segment', segment);\n localVarPath = \"/segments\";\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n localVarHeaderParameter['Content-Type'] = 'application/json';\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(segment, localVarRequestOptions, configuration);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This API deletes the segment specified by the given ID. >**Note:** that segment deletion may take some time to become effective. A token with ORG_ADMIN or API authority is required to call this API.\n * @summary Delete Segment by ID\n * @param {string} id The segment ID to delete.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n deleteSegment: function (id, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'id' is not null or undefined\n (0, common_1.assertParamExists)('deleteSegment', 'id', id);\n localVarPath = \"/segments/{id}\"\n .replace(\"{\".concat(\"id\", \"}\"), encodeURIComponent(String(id)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'DELETE' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This API returns the segment specified by the given ID. A token with ORG_ADMIN or API authority is required to call this API.\n * @summary Get Segment by ID\n * @param {string} id The segment ID to retrieve.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getSegment: function (id, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'id' is not null or undefined\n (0, common_1.assertParamExists)('getSegment', 'id', id);\n localVarPath = \"/segments/{id}\"\n .replace(\"{\".concat(\"id\", \"}\"), encodeURIComponent(String(id)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This API returns a list of all segments. A token with ORG_ADMIN or API authority is required to call this API.\n * @summary List Segments\n * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n listSegments: function (limit, offset, count, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n localVarPath = \"/segments\";\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n if (limit !== undefined) {\n localVarQueryParameter['limit'] = limit;\n }\n if (offset !== undefined) {\n localVarQueryParameter['offset'] = offset;\n }\n if (count !== undefined) {\n localVarQueryParameter['count'] = count;\n }\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * Use this API to update segment fields by using the [JSON Patch](https://tools.ietf.org/html/rfc6902) standard. >**Note:** Changes to a segment may take some time to propagate to all identities. A token with ORG_ADMIN or API authority is required to call this API.\n * @summary Update Segment\n * @param {string} id The segment ID to modify.\n * @param {Array} requestBody A list of segment update operations according to the [JSON Patch](https://tools.ietf.org/html/rfc6902) standard. The following fields are patchable: * name * description * owner * visibilityCriteria * active\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n patchSegment: function (id, requestBody, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'id' is not null or undefined\n (0, common_1.assertParamExists)('patchSegment', 'id', id);\n // verify required parameter 'requestBody' is not null or undefined\n (0, common_1.assertParamExists)('patchSegment', 'requestBody', requestBody);\n localVarPath = \"/segments/{id}\"\n .replace(\"{\".concat(\"id\", \"}\"), encodeURIComponent(String(id)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'PATCH' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n localVarHeaderParameter['Content-Type'] = 'application/json-patch+json';\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(requestBody, localVarRequestOptions, configuration);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n };\n};\nexports.SegmentsApiAxiosParamCreator = SegmentsApiAxiosParamCreator;\n/**\n * SegmentsApi - functional programming interface\n * @export\n */\nvar SegmentsApiFp = function (configuration) {\n var localVarAxiosParamCreator = (0, exports.SegmentsApiAxiosParamCreator)(configuration);\n return {\n /**\n * This API creates a segment. >**Note:** Segment definitions may take time to propagate to all identities. A token with ORG_ADMIN or API authority is required to call this API.\n * @summary Create Segment\n * @param {Segment} segment\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n createSegment: function (segment, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.createSegment(segment, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This API deletes the segment specified by the given ID. >**Note:** that segment deletion may take some time to become effective. A token with ORG_ADMIN or API authority is required to call this API.\n * @summary Delete Segment by ID\n * @param {string} id The segment ID to delete.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n deleteSegment: function (id, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.deleteSegment(id, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This API returns the segment specified by the given ID. A token with ORG_ADMIN or API authority is required to call this API.\n * @summary Get Segment by ID\n * @param {string} id The segment ID to retrieve.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getSegment: function (id, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.getSegment(id, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This API returns a list of all segments. A token with ORG_ADMIN or API authority is required to call this API.\n * @summary List Segments\n * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n listSegments: function (limit, offset, count, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.listSegments(limit, offset, count, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * Use this API to update segment fields by using the [JSON Patch](https://tools.ietf.org/html/rfc6902) standard. >**Note:** Changes to a segment may take some time to propagate to all identities. A token with ORG_ADMIN or API authority is required to call this API.\n * @summary Update Segment\n * @param {string} id The segment ID to modify.\n * @param {Array} requestBody A list of segment update operations according to the [JSON Patch](https://tools.ietf.org/html/rfc6902) standard. The following fields are patchable: * name * description * owner * visibilityCriteria * active\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n patchSegment: function (id, requestBody, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.patchSegment(id, requestBody, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n };\n};\nexports.SegmentsApiFp = SegmentsApiFp;\n/**\n * SegmentsApi - factory interface\n * @export\n */\nvar SegmentsApiFactory = function (configuration, basePath, axios) {\n var localVarFp = (0, exports.SegmentsApiFp)(configuration);\n return {\n /**\n * This API creates a segment. >**Note:** Segment definitions may take time to propagate to all identities. A token with ORG_ADMIN or API authority is required to call this API.\n * @summary Create Segment\n * @param {Segment} segment\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n createSegment: function (segment, axiosOptions) {\n return localVarFp.createSegment(segment, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This API deletes the segment specified by the given ID. >**Note:** that segment deletion may take some time to become effective. A token with ORG_ADMIN or API authority is required to call this API.\n * @summary Delete Segment by ID\n * @param {string} id The segment ID to delete.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n deleteSegment: function (id, axiosOptions) {\n return localVarFp.deleteSegment(id, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This API returns the segment specified by the given ID. A token with ORG_ADMIN or API authority is required to call this API.\n * @summary Get Segment by ID\n * @param {string} id The segment ID to retrieve.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getSegment: function (id, axiosOptions) {\n return localVarFp.getSegment(id, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This API returns a list of all segments. A token with ORG_ADMIN or API authority is required to call this API.\n * @summary List Segments\n * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n listSegments: function (limit, offset, count, axiosOptions) {\n return localVarFp.listSegments(limit, offset, count, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * Use this API to update segment fields by using the [JSON Patch](https://tools.ietf.org/html/rfc6902) standard. >**Note:** Changes to a segment may take some time to propagate to all identities. A token with ORG_ADMIN or API authority is required to call this API.\n * @summary Update Segment\n * @param {string} id The segment ID to modify.\n * @param {Array} requestBody A list of segment update operations according to the [JSON Patch](https://tools.ietf.org/html/rfc6902) standard. The following fields are patchable: * name * description * owner * visibilityCriteria * active\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n patchSegment: function (id, requestBody, axiosOptions) {\n return localVarFp.patchSegment(id, requestBody, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n };\n};\nexports.SegmentsApiFactory = SegmentsApiFactory;\n/**\n * SegmentsApi - object-oriented interface\n * @export\n * @class SegmentsApi\n * @extends {BaseAPI}\n */\nvar SegmentsApi = /** @class */ (function (_super) {\n __extends(SegmentsApi, _super);\n function SegmentsApi() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n * This API creates a segment. >**Note:** Segment definitions may take time to propagate to all identities. A token with ORG_ADMIN or API authority is required to call this API.\n * @summary Create Segment\n * @param {SegmentsApiCreateSegmentRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof SegmentsApi\n */\n SegmentsApi.prototype.createSegment = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.SegmentsApiFp)(this.configuration).createSegment(requestParameters.segment, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This API deletes the segment specified by the given ID. >**Note:** that segment deletion may take some time to become effective. A token with ORG_ADMIN or API authority is required to call this API.\n * @summary Delete Segment by ID\n * @param {SegmentsApiDeleteSegmentRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof SegmentsApi\n */\n SegmentsApi.prototype.deleteSegment = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.SegmentsApiFp)(this.configuration).deleteSegment(requestParameters.id, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This API returns the segment specified by the given ID. A token with ORG_ADMIN or API authority is required to call this API.\n * @summary Get Segment by ID\n * @param {SegmentsApiGetSegmentRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof SegmentsApi\n */\n SegmentsApi.prototype.getSegment = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.SegmentsApiFp)(this.configuration).getSegment(requestParameters.id, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This API returns a list of all segments. A token with ORG_ADMIN or API authority is required to call this API.\n * @summary List Segments\n * @param {SegmentsApiListSegmentsRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof SegmentsApi\n */\n SegmentsApi.prototype.listSegments = function (requestParameters, axiosOptions) {\n var _this = this;\n if (requestParameters === void 0) { requestParameters = {}; }\n return (0, exports.SegmentsApiFp)(this.configuration).listSegments(requestParameters.limit, requestParameters.offset, requestParameters.count, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * Use this API to update segment fields by using the [JSON Patch](https://tools.ietf.org/html/rfc6902) standard. >**Note:** Changes to a segment may take some time to propagate to all identities. A token with ORG_ADMIN or API authority is required to call this API.\n * @summary Update Segment\n * @param {SegmentsApiPatchSegmentRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof SegmentsApi\n */\n SegmentsApi.prototype.patchSegment = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.SegmentsApiFp)(this.configuration).patchSegment(requestParameters.id, requestParameters.requestBody, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n return SegmentsApi;\n}(base_1.BaseAPI));\nexports.SegmentsApi = SegmentsApi;\n/**\n * ServiceDeskIntegrationApi - axios parameter creator\n * @export\n */\nvar ServiceDeskIntegrationApiAxiosParamCreator = function (configuration) {\n var _this = this;\n return {\n /**\n * Create a new Service Desk Integrations. A token with Org Admin or Service Desk Admin authority is required to access this endpoint.\n * @summary Create new Service Desk integration\n * @param {ServiceDeskIntegrationDto} serviceDeskIntegrationDto The specifics of a new integration to create\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n createServiceDeskIntegration: function (serviceDeskIntegrationDto, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'serviceDeskIntegrationDto' is not null or undefined\n (0, common_1.assertParamExists)('createServiceDeskIntegration', 'serviceDeskIntegrationDto', serviceDeskIntegrationDto);\n localVarPath = \"/service-desk-integrations\";\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n localVarHeaderParameter['Content-Type'] = 'application/json';\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(serviceDeskIntegrationDto, localVarRequestOptions, configuration);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * Delete an existing Service Desk integration by ID. A token with Org Admin or Service Desk Admin authority is required to access this endpoint.\n * @summary Delete a Service Desk integration\n * @param {string} id ID of Service Desk integration to delete\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n deleteServiceDeskIntegration: function (id, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'id' is not null or undefined\n (0, common_1.assertParamExists)('deleteServiceDeskIntegration', 'id', id);\n localVarPath = \"/service-desk-integrations/{id}\"\n .replace(\"{\".concat(\"id\", \"}\"), encodeURIComponent(String(id)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'DELETE' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * Get an existing Service Desk integration by ID. A token with Org Admin or Service Desk Admin authority is required to access this endpoint.\n * @summary Get a Service Desk integration\n * @param {string} id ID of the Service Desk integration to get\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getServiceDeskIntegration: function (id, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'id' is not null or undefined\n (0, common_1.assertParamExists)('getServiceDeskIntegration', 'id', id);\n localVarPath = \"/service-desk-integrations/{id}\"\n .replace(\"{\".concat(\"id\", \"}\"), encodeURIComponent(String(id)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This API endpoint returns an existing Service Desk integration template by scriptName. A token with Org Admin or Service Desk Admin authority is required to access this endpoint.\n * @summary Service Desk integration template by scriptName.\n * @param {string} scriptName The scriptName value of the Service Desk integration template to get\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getServiceDeskIntegrationTemplate: function (scriptName, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'scriptName' is not null or undefined\n (0, common_1.assertParamExists)('getServiceDeskIntegrationTemplate', 'scriptName', scriptName);\n localVarPath = \"/service-desk-integrations/templates/{scriptName}\"\n .replace(\"{\".concat(\"scriptName\", \"}\"), encodeURIComponent(String(scriptName)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This API endpoint returns the current list of supported Service Desk integration types. A token with Org Admin or Service Desk Admin authority is required to access this endpoint.\n * @summary Service Desk Integration Types List.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getServiceDeskIntegrationTypes: function (axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n localVarPath = \"/service-desk-integrations/types\";\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * Get a list of ServiceDeskIntegrationDto for existing Service Desk Integrations. A token with Org Admin or Service Desk Admin authority is required to access this endpoint.\n * @summary List existing Service Desk Integrations\n * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **name**\n * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **id**: *eq, in* **name**: *eq* **type**: *eq, in* **cluster**: *eq, in*\n * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getServiceDeskIntegrations: function (offset, limit, sorters, filters, count, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n localVarPath = \"/service-desk-integrations\";\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n if (offset !== undefined) {\n localVarQueryParameter['offset'] = offset;\n }\n if (limit !== undefined) {\n localVarQueryParameter['limit'] = limit;\n }\n if (sorters !== undefined) {\n localVarQueryParameter['sorters'] = sorters;\n }\n if (filters !== undefined) {\n localVarQueryParameter['filters'] = filters;\n }\n if (count !== undefined) {\n localVarQueryParameter['count'] = count;\n }\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * Get the time check configuration of queued SDIM tickets. A token with Org Admin or Service Desk Admin authority is required to access this endpoint.\n * @summary Get the time check configuration\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getStatusCheckDetails: function (axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n localVarPath = \"/service-desk-integrations/status-check-configuration\";\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * Update an existing ServiceDeskIntegration by ID with a PATCH request.\n * @summary Service Desk Integration Update PATCH\n * @param {string} id ID of the Service Desk integration to update\n * @param {JsonPatch} jsonPatch A list of SDIM update operations according to the [JSON Patch](https://tools.ietf.org/html/rfc6902) standard. PATCH can only be applied to the following fields: * `beforeProvisioningRule` * `description` * `ownerRef` A 403 Forbidden Error indicates that you attempted to PATCH a field that is not allowed.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n patchServiceDeskIntegration: function (id, jsonPatch, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'id' is not null or undefined\n (0, common_1.assertParamExists)('patchServiceDeskIntegration', 'id', id);\n // verify required parameter 'jsonPatch' is not null or undefined\n (0, common_1.assertParamExists)('patchServiceDeskIntegration', 'jsonPatch', jsonPatch);\n localVarPath = \"/service-desk-integrations/{id}\"\n .replace(\"{\".concat(\"id\", \"}\"), encodeURIComponent(String(id)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'PATCH' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n localVarHeaderParameter['Content-Type'] = 'application/json-patch+json';\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(jsonPatch, localVarRequestOptions, configuration);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * Update an existing Service Desk integration by ID with updated value in JSON form as the request body. A token with Org Admin or Service Desk Admin authority is required to access this endpoint.\n * @summary Update a Service Desk integration\n * @param {string} id ID of the Service Desk integration to update\n * @param {ServiceDeskIntegrationDto} serviceDeskIntegrationDto The specifics of the integration to update\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n putServiceDeskIntegration: function (id, serviceDeskIntegrationDto, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'id' is not null or undefined\n (0, common_1.assertParamExists)('putServiceDeskIntegration', 'id', id);\n // verify required parameter 'serviceDeskIntegrationDto' is not null or undefined\n (0, common_1.assertParamExists)('putServiceDeskIntegration', 'serviceDeskIntegrationDto', serviceDeskIntegrationDto);\n localVarPath = \"/service-desk-integrations/{id}\"\n .replace(\"{\".concat(\"id\", \"}\"), encodeURIComponent(String(id)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'PUT' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n localVarHeaderParameter['Content-Type'] = 'application/json';\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(serviceDeskIntegrationDto, localVarRequestOptions, configuration);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * Update the time check configuration of queued SDIM tickets. A token with Org Admin or Service Desk Admin authority is required to access this endpoint.\n * @summary Update the time check configuration\n * @param {QueuedCheckConfigDetails} queuedCheckConfigDetails the modified time check configuration\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n updateStatusCheckDetails: function (queuedCheckConfigDetails, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'queuedCheckConfigDetails' is not null or undefined\n (0, common_1.assertParamExists)('updateStatusCheckDetails', 'queuedCheckConfigDetails', queuedCheckConfigDetails);\n localVarPath = \"/service-desk-integrations/status-check-configuration\";\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'PUT' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n localVarHeaderParameter['Content-Type'] = 'application/json';\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(queuedCheckConfigDetails, localVarRequestOptions, configuration);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n };\n};\nexports.ServiceDeskIntegrationApiAxiosParamCreator = ServiceDeskIntegrationApiAxiosParamCreator;\n/**\n * ServiceDeskIntegrationApi - functional programming interface\n * @export\n */\nvar ServiceDeskIntegrationApiFp = function (configuration) {\n var localVarAxiosParamCreator = (0, exports.ServiceDeskIntegrationApiAxiosParamCreator)(configuration);\n return {\n /**\n * Create a new Service Desk Integrations. A token with Org Admin or Service Desk Admin authority is required to access this endpoint.\n * @summary Create new Service Desk integration\n * @param {ServiceDeskIntegrationDto} serviceDeskIntegrationDto The specifics of a new integration to create\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n createServiceDeskIntegration: function (serviceDeskIntegrationDto, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.createServiceDeskIntegration(serviceDeskIntegrationDto, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * Delete an existing Service Desk integration by ID. A token with Org Admin or Service Desk Admin authority is required to access this endpoint.\n * @summary Delete a Service Desk integration\n * @param {string} id ID of Service Desk integration to delete\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n deleteServiceDeskIntegration: function (id, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.deleteServiceDeskIntegration(id, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * Get an existing Service Desk integration by ID. A token with Org Admin or Service Desk Admin authority is required to access this endpoint.\n * @summary Get a Service Desk integration\n * @param {string} id ID of the Service Desk integration to get\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getServiceDeskIntegration: function (id, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.getServiceDeskIntegration(id, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This API endpoint returns an existing Service Desk integration template by scriptName. A token with Org Admin or Service Desk Admin authority is required to access this endpoint.\n * @summary Service Desk integration template by scriptName.\n * @param {string} scriptName The scriptName value of the Service Desk integration template to get\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getServiceDeskIntegrationTemplate: function (scriptName, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.getServiceDeskIntegrationTemplate(scriptName, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This API endpoint returns the current list of supported Service Desk integration types. A token with Org Admin or Service Desk Admin authority is required to access this endpoint.\n * @summary Service Desk Integration Types List.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getServiceDeskIntegrationTypes: function (axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.getServiceDeskIntegrationTypes(axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * Get a list of ServiceDeskIntegrationDto for existing Service Desk Integrations. A token with Org Admin or Service Desk Admin authority is required to access this endpoint.\n * @summary List existing Service Desk Integrations\n * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **name**\n * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **id**: *eq, in* **name**: *eq* **type**: *eq, in* **cluster**: *eq, in*\n * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getServiceDeskIntegrations: function (offset, limit, sorters, filters, count, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.getServiceDeskIntegrations(offset, limit, sorters, filters, count, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * Get the time check configuration of queued SDIM tickets. A token with Org Admin or Service Desk Admin authority is required to access this endpoint.\n * @summary Get the time check configuration\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getStatusCheckDetails: function (axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.getStatusCheckDetails(axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * Update an existing ServiceDeskIntegration by ID with a PATCH request.\n * @summary Service Desk Integration Update PATCH\n * @param {string} id ID of the Service Desk integration to update\n * @param {JsonPatch} jsonPatch A list of SDIM update operations according to the [JSON Patch](https://tools.ietf.org/html/rfc6902) standard. PATCH can only be applied to the following fields: * `beforeProvisioningRule` * `description` * `ownerRef` A 403 Forbidden Error indicates that you attempted to PATCH a field that is not allowed.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n patchServiceDeskIntegration: function (id, jsonPatch, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.patchServiceDeskIntegration(id, jsonPatch, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * Update an existing Service Desk integration by ID with updated value in JSON form as the request body. A token with Org Admin or Service Desk Admin authority is required to access this endpoint.\n * @summary Update a Service Desk integration\n * @param {string} id ID of the Service Desk integration to update\n * @param {ServiceDeskIntegrationDto} serviceDeskIntegrationDto The specifics of the integration to update\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n putServiceDeskIntegration: function (id, serviceDeskIntegrationDto, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.putServiceDeskIntegration(id, serviceDeskIntegrationDto, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * Update the time check configuration of queued SDIM tickets. A token with Org Admin or Service Desk Admin authority is required to access this endpoint.\n * @summary Update the time check configuration\n * @param {QueuedCheckConfigDetails} queuedCheckConfigDetails the modified time check configuration\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n updateStatusCheckDetails: function (queuedCheckConfigDetails, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.updateStatusCheckDetails(queuedCheckConfigDetails, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n };\n};\nexports.ServiceDeskIntegrationApiFp = ServiceDeskIntegrationApiFp;\n/**\n * ServiceDeskIntegrationApi - factory interface\n * @export\n */\nvar ServiceDeskIntegrationApiFactory = function (configuration, basePath, axios) {\n var localVarFp = (0, exports.ServiceDeskIntegrationApiFp)(configuration);\n return {\n /**\n * Create a new Service Desk Integrations. A token with Org Admin or Service Desk Admin authority is required to access this endpoint.\n * @summary Create new Service Desk integration\n * @param {ServiceDeskIntegrationDto} serviceDeskIntegrationDto The specifics of a new integration to create\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n createServiceDeskIntegration: function (serviceDeskIntegrationDto, axiosOptions) {\n return localVarFp.createServiceDeskIntegration(serviceDeskIntegrationDto, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * Delete an existing Service Desk integration by ID. A token with Org Admin or Service Desk Admin authority is required to access this endpoint.\n * @summary Delete a Service Desk integration\n * @param {string} id ID of Service Desk integration to delete\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n deleteServiceDeskIntegration: function (id, axiosOptions) {\n return localVarFp.deleteServiceDeskIntegration(id, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * Get an existing Service Desk integration by ID. A token with Org Admin or Service Desk Admin authority is required to access this endpoint.\n * @summary Get a Service Desk integration\n * @param {string} id ID of the Service Desk integration to get\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getServiceDeskIntegration: function (id, axiosOptions) {\n return localVarFp.getServiceDeskIntegration(id, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This API endpoint returns an existing Service Desk integration template by scriptName. A token with Org Admin or Service Desk Admin authority is required to access this endpoint.\n * @summary Service Desk integration template by scriptName.\n * @param {string} scriptName The scriptName value of the Service Desk integration template to get\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getServiceDeskIntegrationTemplate: function (scriptName, axiosOptions) {\n return localVarFp.getServiceDeskIntegrationTemplate(scriptName, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This API endpoint returns the current list of supported Service Desk integration types. A token with Org Admin or Service Desk Admin authority is required to access this endpoint.\n * @summary Service Desk Integration Types List.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getServiceDeskIntegrationTypes: function (axiosOptions) {\n return localVarFp.getServiceDeskIntegrationTypes(axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * Get a list of ServiceDeskIntegrationDto for existing Service Desk Integrations. A token with Org Admin or Service Desk Admin authority is required to access this endpoint.\n * @summary List existing Service Desk Integrations\n * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **name**\n * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **id**: *eq, in* **name**: *eq* **type**: *eq, in* **cluster**: *eq, in*\n * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getServiceDeskIntegrations: function (offset, limit, sorters, filters, count, axiosOptions) {\n return localVarFp.getServiceDeskIntegrations(offset, limit, sorters, filters, count, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * Get the time check configuration of queued SDIM tickets. A token with Org Admin or Service Desk Admin authority is required to access this endpoint.\n * @summary Get the time check configuration\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getStatusCheckDetails: function (axiosOptions) {\n return localVarFp.getStatusCheckDetails(axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * Update an existing ServiceDeskIntegration by ID with a PATCH request.\n * @summary Service Desk Integration Update PATCH\n * @param {string} id ID of the Service Desk integration to update\n * @param {JsonPatch} jsonPatch A list of SDIM update operations according to the [JSON Patch](https://tools.ietf.org/html/rfc6902) standard. PATCH can only be applied to the following fields: * `beforeProvisioningRule` * `description` * `ownerRef` A 403 Forbidden Error indicates that you attempted to PATCH a field that is not allowed.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n patchServiceDeskIntegration: function (id, jsonPatch, axiosOptions) {\n return localVarFp.patchServiceDeskIntegration(id, jsonPatch, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * Update an existing Service Desk integration by ID with updated value in JSON form as the request body. A token with Org Admin or Service Desk Admin authority is required to access this endpoint.\n * @summary Update a Service Desk integration\n * @param {string} id ID of the Service Desk integration to update\n * @param {ServiceDeskIntegrationDto} serviceDeskIntegrationDto The specifics of the integration to update\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n putServiceDeskIntegration: function (id, serviceDeskIntegrationDto, axiosOptions) {\n return localVarFp.putServiceDeskIntegration(id, serviceDeskIntegrationDto, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * Update the time check configuration of queued SDIM tickets. A token with Org Admin or Service Desk Admin authority is required to access this endpoint.\n * @summary Update the time check configuration\n * @param {QueuedCheckConfigDetails} queuedCheckConfigDetails the modified time check configuration\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n updateStatusCheckDetails: function (queuedCheckConfigDetails, axiosOptions) {\n return localVarFp.updateStatusCheckDetails(queuedCheckConfigDetails, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n };\n};\nexports.ServiceDeskIntegrationApiFactory = ServiceDeskIntegrationApiFactory;\n/**\n * ServiceDeskIntegrationApi - object-oriented interface\n * @export\n * @class ServiceDeskIntegrationApi\n * @extends {BaseAPI}\n */\nvar ServiceDeskIntegrationApi = /** @class */ (function (_super) {\n __extends(ServiceDeskIntegrationApi, _super);\n function ServiceDeskIntegrationApi() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n * Create a new Service Desk Integrations. A token with Org Admin or Service Desk Admin authority is required to access this endpoint.\n * @summary Create new Service Desk integration\n * @param {ServiceDeskIntegrationApiCreateServiceDeskIntegrationRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof ServiceDeskIntegrationApi\n */\n ServiceDeskIntegrationApi.prototype.createServiceDeskIntegration = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.ServiceDeskIntegrationApiFp)(this.configuration).createServiceDeskIntegration(requestParameters.serviceDeskIntegrationDto, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * Delete an existing Service Desk integration by ID. A token with Org Admin or Service Desk Admin authority is required to access this endpoint.\n * @summary Delete a Service Desk integration\n * @param {ServiceDeskIntegrationApiDeleteServiceDeskIntegrationRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof ServiceDeskIntegrationApi\n */\n ServiceDeskIntegrationApi.prototype.deleteServiceDeskIntegration = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.ServiceDeskIntegrationApiFp)(this.configuration).deleteServiceDeskIntegration(requestParameters.id, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * Get an existing Service Desk integration by ID. A token with Org Admin or Service Desk Admin authority is required to access this endpoint.\n * @summary Get a Service Desk integration\n * @param {ServiceDeskIntegrationApiGetServiceDeskIntegrationRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof ServiceDeskIntegrationApi\n */\n ServiceDeskIntegrationApi.prototype.getServiceDeskIntegration = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.ServiceDeskIntegrationApiFp)(this.configuration).getServiceDeskIntegration(requestParameters.id, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This API endpoint returns an existing Service Desk integration template by scriptName. A token with Org Admin or Service Desk Admin authority is required to access this endpoint.\n * @summary Service Desk integration template by scriptName.\n * @param {ServiceDeskIntegrationApiGetServiceDeskIntegrationTemplateRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof ServiceDeskIntegrationApi\n */\n ServiceDeskIntegrationApi.prototype.getServiceDeskIntegrationTemplate = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.ServiceDeskIntegrationApiFp)(this.configuration).getServiceDeskIntegrationTemplate(requestParameters.scriptName, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This API endpoint returns the current list of supported Service Desk integration types. A token with Org Admin or Service Desk Admin authority is required to access this endpoint.\n * @summary Service Desk Integration Types List.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof ServiceDeskIntegrationApi\n */\n ServiceDeskIntegrationApi.prototype.getServiceDeskIntegrationTypes = function (axiosOptions) {\n var _this = this;\n return (0, exports.ServiceDeskIntegrationApiFp)(this.configuration).getServiceDeskIntegrationTypes(axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * Get a list of ServiceDeskIntegrationDto for existing Service Desk Integrations. A token with Org Admin or Service Desk Admin authority is required to access this endpoint.\n * @summary List existing Service Desk Integrations\n * @param {ServiceDeskIntegrationApiGetServiceDeskIntegrationsRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof ServiceDeskIntegrationApi\n */\n ServiceDeskIntegrationApi.prototype.getServiceDeskIntegrations = function (requestParameters, axiosOptions) {\n var _this = this;\n if (requestParameters === void 0) { requestParameters = {}; }\n return (0, exports.ServiceDeskIntegrationApiFp)(this.configuration).getServiceDeskIntegrations(requestParameters.offset, requestParameters.limit, requestParameters.sorters, requestParameters.filters, requestParameters.count, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * Get the time check configuration of queued SDIM tickets. A token with Org Admin or Service Desk Admin authority is required to access this endpoint.\n * @summary Get the time check configuration\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof ServiceDeskIntegrationApi\n */\n ServiceDeskIntegrationApi.prototype.getStatusCheckDetails = function (axiosOptions) {\n var _this = this;\n return (0, exports.ServiceDeskIntegrationApiFp)(this.configuration).getStatusCheckDetails(axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * Update an existing ServiceDeskIntegration by ID with a PATCH request.\n * @summary Service Desk Integration Update PATCH\n * @param {ServiceDeskIntegrationApiPatchServiceDeskIntegrationRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof ServiceDeskIntegrationApi\n */\n ServiceDeskIntegrationApi.prototype.patchServiceDeskIntegration = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.ServiceDeskIntegrationApiFp)(this.configuration).patchServiceDeskIntegration(requestParameters.id, requestParameters.jsonPatch, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * Update an existing Service Desk integration by ID with updated value in JSON form as the request body. A token with Org Admin or Service Desk Admin authority is required to access this endpoint.\n * @summary Update a Service Desk integration\n * @param {ServiceDeskIntegrationApiPutServiceDeskIntegrationRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof ServiceDeskIntegrationApi\n */\n ServiceDeskIntegrationApi.prototype.putServiceDeskIntegration = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.ServiceDeskIntegrationApiFp)(this.configuration).putServiceDeskIntegration(requestParameters.id, requestParameters.serviceDeskIntegrationDto, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * Update the time check configuration of queued SDIM tickets. A token with Org Admin or Service Desk Admin authority is required to access this endpoint.\n * @summary Update the time check configuration\n * @param {ServiceDeskIntegrationApiUpdateStatusCheckDetailsRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof ServiceDeskIntegrationApi\n */\n ServiceDeskIntegrationApi.prototype.updateStatusCheckDetails = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.ServiceDeskIntegrationApiFp)(this.configuration).updateStatusCheckDetails(requestParameters.queuedCheckConfigDetails, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n return ServiceDeskIntegrationApi;\n}(base_1.BaseAPI));\nexports.ServiceDeskIntegrationApi = ServiceDeskIntegrationApi;\n/**\n * SourceUsagesApi - axios parameter creator\n * @export\n */\nvar SourceUsagesApiAxiosParamCreator = function (configuration) {\n var _this = this;\n return {\n /**\n * This API returns the status of the source usage insights setup by IDN source ID.\n * @summary Finds status of source usage\n * @param {string} sourceId ID of IDN source\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getStatusBySourceId: function (sourceId, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'sourceId' is not null or undefined\n (0, common_1.assertParamExists)('getStatusBySourceId', 'sourceId', sourceId);\n localVarPath = \"/source-usages/{sourceId}/status\"\n .replace(\"{\".concat(\"sourceId\", \"}\"), encodeURIComponent(String(sourceId)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This API returns a summary of source usage insights for past 12 months.\n * @summary Returns source usage insights\n * @param {string} sourceId ID of IDN source\n * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **date**\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getUsagesBySourceId: function (sourceId, limit, offset, count, sorters, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'sourceId' is not null or undefined\n (0, common_1.assertParamExists)('getUsagesBySourceId', 'sourceId', sourceId);\n localVarPath = \"/source-usages/{sourceId}/summaries\"\n .replace(\"{\".concat(\"sourceId\", \"}\"), encodeURIComponent(String(sourceId)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n if (limit !== undefined) {\n localVarQueryParameter['limit'] = limit;\n }\n if (offset !== undefined) {\n localVarQueryParameter['offset'] = offset;\n }\n if (count !== undefined) {\n localVarQueryParameter['count'] = count;\n }\n if (sorters !== undefined) {\n localVarQueryParameter['sorters'] = sorters;\n }\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n };\n};\nexports.SourceUsagesApiAxiosParamCreator = SourceUsagesApiAxiosParamCreator;\n/**\n * SourceUsagesApi - functional programming interface\n * @export\n */\nvar SourceUsagesApiFp = function (configuration) {\n var localVarAxiosParamCreator = (0, exports.SourceUsagesApiAxiosParamCreator)(configuration);\n return {\n /**\n * This API returns the status of the source usage insights setup by IDN source ID.\n * @summary Finds status of source usage\n * @param {string} sourceId ID of IDN source\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getStatusBySourceId: function (sourceId, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.getStatusBySourceId(sourceId, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This API returns a summary of source usage insights for past 12 months.\n * @summary Returns source usage insights\n * @param {string} sourceId ID of IDN source\n * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **date**\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getUsagesBySourceId: function (sourceId, limit, offset, count, sorters, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.getUsagesBySourceId(sourceId, limit, offset, count, sorters, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n };\n};\nexports.SourceUsagesApiFp = SourceUsagesApiFp;\n/**\n * SourceUsagesApi - factory interface\n * @export\n */\nvar SourceUsagesApiFactory = function (configuration, basePath, axios) {\n var localVarFp = (0, exports.SourceUsagesApiFp)(configuration);\n return {\n /**\n * This API returns the status of the source usage insights setup by IDN source ID.\n * @summary Finds status of source usage\n * @param {string} sourceId ID of IDN source\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getStatusBySourceId: function (sourceId, axiosOptions) {\n return localVarFp.getStatusBySourceId(sourceId, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This API returns a summary of source usage insights for past 12 months.\n * @summary Returns source usage insights\n * @param {string} sourceId ID of IDN source\n * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **date**\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getUsagesBySourceId: function (sourceId, limit, offset, count, sorters, axiosOptions) {\n return localVarFp.getUsagesBySourceId(sourceId, limit, offset, count, sorters, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n };\n};\nexports.SourceUsagesApiFactory = SourceUsagesApiFactory;\n/**\n * SourceUsagesApi - object-oriented interface\n * @export\n * @class SourceUsagesApi\n * @extends {BaseAPI}\n */\nvar SourceUsagesApi = /** @class */ (function (_super) {\n __extends(SourceUsagesApi, _super);\n function SourceUsagesApi() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n * This API returns the status of the source usage insights setup by IDN source ID.\n * @summary Finds status of source usage\n * @param {SourceUsagesApiGetStatusBySourceIdRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof SourceUsagesApi\n */\n SourceUsagesApi.prototype.getStatusBySourceId = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.SourceUsagesApiFp)(this.configuration).getStatusBySourceId(requestParameters.sourceId, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This API returns a summary of source usage insights for past 12 months.\n * @summary Returns source usage insights\n * @param {SourceUsagesApiGetUsagesBySourceIdRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof SourceUsagesApi\n */\n SourceUsagesApi.prototype.getUsagesBySourceId = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.SourceUsagesApiFp)(this.configuration).getUsagesBySourceId(requestParameters.sourceId, requestParameters.limit, requestParameters.offset, requestParameters.count, requestParameters.sorters, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n return SourceUsagesApi;\n}(base_1.BaseAPI));\nexports.SourceUsagesApi = SourceUsagesApi;\n/**\n * SourcesApi - axios parameter creator\n * @export\n */\nvar SourcesApiAxiosParamCreator = function (configuration) {\n var _this = this;\n return {\n /**\n * This API generates a create policy/template based on field value transforms. This API is intended for use when setting up JDBC Provisioning type sources, but it will also work on other source types. Transforms can be used in the provisioning policy to create a new attribute that you only need during provisioning. Refer to [Transforms in Provisioning Policies](https://developer.sailpoint.com/idn/docs/transforms/guides/transforms-in-provisioning-policies) for more information. A token with ORG_ADMIN authority is required to call this API.\n * @summary Create Provisioning Policy\n * @param {string} sourceId The Source id\n * @param {ProvisioningPolicyDto} provisioningPolicyDto\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n createProvisioningPolicy: function (sourceId, provisioningPolicyDto, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'sourceId' is not null or undefined\n (0, common_1.assertParamExists)('createProvisioningPolicy', 'sourceId', sourceId);\n // verify required parameter 'provisioningPolicyDto' is not null or undefined\n (0, common_1.assertParamExists)('createProvisioningPolicy', 'provisioningPolicyDto', provisioningPolicyDto);\n localVarPath = \"/sources/{sourceId}/provisioning-policies\"\n .replace(\"{\".concat(\"sourceId\", \"}\"), encodeURIComponent(String(sourceId)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n localVarHeaderParameter['Content-Type'] = 'application/json';\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(provisioningPolicyDto, localVarRequestOptions, configuration);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This creates a specific source with a full source JSON representation. Any passwords are submitted as plain-text and encrypted upon receipt in IdentityNow. A token with ORG_ADMIN, SOURCE_ADMIN, or SOURCE_SUBADMIN authority is required to call this API.\n * @summary Creates a source in IdentityNow.\n * @param {Source} source\n * @param {boolean} [provisionAsCsv] If this parameter is `true`, it configures the source as a Delimited File (CSV) source. Setting this to `true` will automatically set the `type` of the source to `DelimitedFile`. You must use this query parameter to create a Delimited File source as you would in the UI. If you don\\'t set this query parameter and you attempt to set the `type` attribute directly, the request won\\'t correctly generate the source.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n createSource: function (source, provisionAsCsv, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'source' is not null or undefined\n (0, common_1.assertParamExists)('createSource', 'source', source);\n localVarPath = \"/sources\";\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n if (provisionAsCsv !== undefined) {\n localVarQueryParameter['provisionAsCsv'] = provisionAsCsv;\n }\n localVarHeaderParameter['Content-Type'] = 'application/json';\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(source, localVarRequestOptions, configuration);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * Creates a new Schema on the specified Source in IdentityNow.\n * @summary Create Schema on a Source\n * @param {string} sourceId The Source id.\n * @param {Schema} schema\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n createSourceSchema: function (sourceId, schema, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'sourceId' is not null or undefined\n (0, common_1.assertParamExists)('createSourceSchema', 'sourceId', sourceId);\n // verify required parameter 'schema' is not null or undefined\n (0, common_1.assertParamExists)('createSourceSchema', 'schema', schema);\n localVarPath = \"/sources/{sourceId}/schemas\"\n .replace(\"{\".concat(\"sourceId\", \"}\"), encodeURIComponent(String(sourceId)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n localVarHeaderParameter['Content-Type'] = 'application/json';\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(schema, localVarRequestOptions, configuration);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * Deletes the provisioning policy with the specified usage on an application. A token with API, or ORG_ADMIN authority is required to call this API.\n * @summary Delete Provisioning Policy by UsageType\n * @param {string} sourceId The Source ID.\n * @param {UsageType} usageType The type of provisioning policy usage. In IdentityNow, a source can support various provisioning operations. For example, when a joiner is added to a source, this may trigger both CREATE and UPDATE provisioning operations. Each usage type is considered a provisioning policy. A source can have any number of these provisioning policies defined. These are the common usage types: CREATE - This usage type relates to \\'Create Account Profile\\', the provisioning template for the account to be created. For example, this would be used for a joiner on a source. UPDATE - This usage type relates to \\'Update Account Profile\\', the provisioning template for the \\'Update\\' connector operations. For example, this would be used for an attribute sync on a source. ENABLE - This usage type relates to \\'Enable Account Profile\\', the provisioning template for the account to be enabled. For example, this could be used for a joiner on a source once the joiner\\'s account is created. DISABLE - This usage type relates to \\'Disable Account Profile\\', the provisioning template for the account to be disabled. For example, this could be used when a leaver is removed temporarily from a source. You can use these four usage types for all your provisioning policy needs.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n deleteProvisioningPolicy: function (sourceId, usageType, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'sourceId' is not null or undefined\n (0, common_1.assertParamExists)('deleteProvisioningPolicy', 'sourceId', sourceId);\n // verify required parameter 'usageType' is not null or undefined\n (0, common_1.assertParamExists)('deleteProvisioningPolicy', 'usageType', usageType);\n localVarPath = \"/sources/{sourceId}/provisioning-policies/{usageType}\"\n .replace(\"{\".concat(\"sourceId\", \"}\"), encodeURIComponent(String(sourceId)))\n .replace(\"{\".concat(\"usageType\", \"}\"), encodeURIComponent(String(usageType)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'DELETE' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This end-point deletes a specific source in IdentityNow. A token with ORG_ADMIN, SOURCE_ADMIN, or SOURCE_SUBADMIN authority is required to call this API. All of accounts on the source will be removed first, then the source will be deleted. Actual status of task execution can be retrieved via method GET `/task-status/{id}`\n * @summary Delete Source by ID\n * @param {string} id The Source id\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n deleteSource: function (id, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'id' is not null or undefined\n (0, common_1.assertParamExists)('deleteSource', 'id', id);\n localVarPath = \"/sources/{id}\"\n .replace(\"{\".concat(\"id\", \"}\"), encodeURIComponent(String(id)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'DELETE' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n *\n * @summary Delete Source Schema by ID\n * @param {string} sourceId The Source id.\n * @param {string} schemaId The Schema id.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n deleteSourceSchema: function (sourceId, schemaId, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'sourceId' is not null or undefined\n (0, common_1.assertParamExists)('deleteSourceSchema', 'sourceId', sourceId);\n // verify required parameter 'schemaId' is not null or undefined\n (0, common_1.assertParamExists)('deleteSourceSchema', 'schemaId', schemaId);\n localVarPath = \"/sources/{sourceId}/schemas/{schemaId}\"\n .replace(\"{\".concat(\"sourceId\", \"}\"), encodeURIComponent(String(sourceId)))\n .replace(\"{\".concat(\"schemaId\", \"}\"), encodeURIComponent(String(schemaId)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'DELETE' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This API downloads the CSV schema that defines the account attributes on a source. >**NOTE: This API is designated only for Delimited File sources.**\n * @summary Downloads source accounts schema template\n * @param {string} id The Source id\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getAccountsSchema: function (id, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'id' is not null or undefined\n (0, common_1.assertParamExists)('getAccountsSchema', 'id', id);\n localVarPath = \"/sources/{id}/schemas/accounts\"\n .replace(\"{\".concat(\"id\", \"}\"), encodeURIComponent(String(id)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This API downloads the CSV schema that defines the entitlement attributes on a source. >**NOTE: This API is designated only for Delimited File sources.**\n * @summary Downloads source entitlements schema template\n * @param {string} id The Source id\n * @param {string} [schemaName] Name of entitlement schema\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getEntitlementsSchema: function (id, schemaName, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'id' is not null or undefined\n (0, common_1.assertParamExists)('getEntitlementsSchema', 'id', id);\n localVarPath = \"/sources/{id}/schemas/entitlements\"\n .replace(\"{\".concat(\"id\", \"}\"), encodeURIComponent(String(id)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n if (schemaName !== undefined) {\n localVarQueryParameter['schemaName'] = schemaName;\n }\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This end-point retrieves the ProvisioningPolicy with the specified usage on the specified Source in IdentityNow. A token with API, ORG_ADMIN, SOURCE_ADMIN, or SOURCE_SUBADMIN authority is required to call this API.\n * @summary Get Provisioning Policy by UsageType\n * @param {string} sourceId The Source ID.\n * @param {UsageType} usageType The type of provisioning policy usage. In IdentityNow, a source can support various provisioning operations. For example, when a joiner is added to a source, this may trigger both CREATE and UPDATE provisioning operations. Each usage type is considered a provisioning policy. A source can have any number of these provisioning policies defined. These are the common usage types: CREATE - This usage type relates to \\'Create Account Profile\\', the provisioning template for the account to be created. For example, this would be used for a joiner on a source. UPDATE - This usage type relates to \\'Update Account Profile\\', the provisioning template for the \\'Update\\' connector operations. For example, this would be used for an attribute sync on a source. ENABLE - This usage type relates to \\'Enable Account Profile\\', the provisioning template for the account to be enabled. For example, this could be used for a joiner on a source once the joiner\\'s account is created. DISABLE - This usage type relates to \\'Disable Account Profile\\', the provisioning template for the account to be disabled. For example, this could be used when a leaver is removed temporarily from a source. You can use these four usage types for all your provisioning policy needs.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getProvisioningPolicy: function (sourceId, usageType, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'sourceId' is not null or undefined\n (0, common_1.assertParamExists)('getProvisioningPolicy', 'sourceId', sourceId);\n // verify required parameter 'usageType' is not null or undefined\n (0, common_1.assertParamExists)('getProvisioningPolicy', 'usageType', usageType);\n localVarPath = \"/sources/{sourceId}/provisioning-policies/{usageType}\"\n .replace(\"{\".concat(\"sourceId\", \"}\"), encodeURIComponent(String(sourceId)))\n .replace(\"{\".concat(\"usageType\", \"}\"), encodeURIComponent(String(usageType)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This end-point gets a specific source in IdentityNow. A token with ORG_ADMIN, SOURCE_ADMIN, or SOURCE_SUBADMIN authority is required to call this API.\n * @summary Get Source by ID\n * @param {string} id The Source id\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getSource: function (id, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'id' is not null or undefined\n (0, common_1.assertParamExists)('getSource', 'id', id);\n localVarPath = \"/sources/{id}\"\n .replace(\"{\".concat(\"id\", \"}\"), encodeURIComponent(String(id)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This endpoint fetches source health by source\\'s id\n * @summary Fetches source health by id\n * @param {string} sourceId The Source id.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getSourceHealth: function (sourceId, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'sourceId' is not null or undefined\n (0, common_1.assertParamExists)('getSourceHealth', 'sourceId', sourceId);\n localVarPath = \"/sources/{sourceId}/source-health\"\n .replace(\"{\".concat(\"sourceId\", \"}\"), encodeURIComponent(String(sourceId)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * Get the Source Schema by ID in IdentityNow.\n * @summary Get Source Schema by ID\n * @param {string} sourceId The Source id.\n * @param {string} schemaId The Schema id.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getSourceSchema: function (sourceId, schemaId, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'sourceId' is not null or undefined\n (0, common_1.assertParamExists)('getSourceSchema', 'sourceId', sourceId);\n // verify required parameter 'schemaId' is not null or undefined\n (0, common_1.assertParamExists)('getSourceSchema', 'schemaId', schemaId);\n localVarPath = \"/sources/{sourceId}/schemas/{schemaId}\"\n .replace(\"{\".concat(\"sourceId\", \"}\"), encodeURIComponent(String(sourceId)))\n .replace(\"{\".concat(\"schemaId\", \"}\"), encodeURIComponent(String(schemaId)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This API uploads a source schema template file to configure a source\\'s account attributes. To retrieve the file to modify and upload, log into Identity Now. Click **Admin** -> **Connections** -> **Sources** -> **`{SourceName}`** -> **Import Data** -> **Account Schema** -> **Options** -> **Download Schema** >**NOTE: This API is designated only for Delimited File sources.**\n * @summary Uploads source accounts schema template\n * @param {string} id The Source id\n * @param {any} [file]\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n importAccountsSchema: function (id, file, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, localVarFormParams, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'id' is not null or undefined\n (0, common_1.assertParamExists)('importAccountsSchema', 'id', id);\n localVarPath = \"/sources/{id}/schemas/accounts\"\n .replace(\"{\".concat(\"id\", \"}\"), encodeURIComponent(String(id)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n localVarFormParams = new ((configuration && configuration.formDataCtor) || FormData)();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n if (file !== undefined) {\n localVarFormParams.append('file', file);\n }\n localVarHeaderParameter['Content-Type'] = 'multipart/form-data';\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n localVarRequestOptions.data = localVarFormParams;\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This uploads a supplemental source connector file (like jdbc driver jars) to a source\\'s S3 bucket. This also sends ETS and Audit events. A token with ORG_ADMIN authority is required to call this API.\n * @summary Upload connector file to source\n * @param {string} sourceId The Source id.\n * @param {any} [file]\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n importConnectorFile: function (sourceId, file, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, localVarFormParams, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'sourceId' is not null or undefined\n (0, common_1.assertParamExists)('importConnectorFile', 'sourceId', sourceId);\n localVarPath = \"/sources/{sourceId}/upload-connector-file\"\n .replace(\"{\".concat(\"sourceId\", \"}\"), encodeURIComponent(String(sourceId)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n localVarFormParams = new ((configuration && configuration.formDataCtor) || FormData)();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n if (file !== undefined) {\n localVarFormParams.append('file', file);\n }\n localVarHeaderParameter['Content-Type'] = 'multipart/form-data';\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n localVarRequestOptions.data = localVarFormParams;\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This API uploads a source schema template file to configure a source\\'s entitlement attributes. To retrieve the file to modify and upload, log into Identity Now. Click **Admin** -> **Connections** -> **Sources** -> **`{SourceName}`** -> **Import Data** -> **Import Entitlements** -> **Download** >**NOTE: This API is designated only for Delimited File sources.**\n * @summary Uploads source entitlements schema template\n * @param {string} id The Source id\n * @param {string} [schemaName] Name of entitlement schema\n * @param {any} [file]\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n importEntitlementsSchema: function (id, schemaName, file, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, localVarFormParams, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'id' is not null or undefined\n (0, common_1.assertParamExists)('importEntitlementsSchema', 'id', id);\n localVarPath = \"/sources/{id}/schemas/entitlements\"\n .replace(\"{\".concat(\"id\", \"}\"), encodeURIComponent(String(id)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n localVarFormParams = new ((configuration && configuration.formDataCtor) || FormData)();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n if (schemaName !== undefined) {\n localVarQueryParameter['schemaName'] = schemaName;\n }\n if (file !== undefined) {\n localVarFormParams.append('file', file);\n }\n localVarHeaderParameter['Content-Type'] = 'multipart/form-data';\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n localVarRequestOptions.data = localVarFormParams;\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This end-point lists all the ProvisioningPolicies in IdentityNow. A token with API, or ORG_ADMIN authority is required to call this API.\n * @summary Lists ProvisioningPolicies\n * @param {string} sourceId The Source id\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n listProvisioningPolicies: function (sourceId, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'sourceId' is not null or undefined\n (0, common_1.assertParamExists)('listProvisioningPolicies', 'sourceId', sourceId);\n localVarPath = \"/sources/{sourceId}/provisioning-policies\"\n .replace(\"{\".concat(\"sourceId\", \"}\"), encodeURIComponent(String(sourceId)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * Lists the Schemas that exist on the specified Source in IdentityNow.\n * @summary List Schemas on a Source\n * @param {string} sourceId The Source ID.\n * @param {string} [includeTypes] If set to \\'group\\', then the account schema is filtered and only group schemas are returned. Only a value of \\'group\\' is recognized.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n listSourceSchemas: function (sourceId, includeTypes, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'sourceId' is not null or undefined\n (0, common_1.assertParamExists)('listSourceSchemas', 'sourceId', sourceId);\n localVarPath = \"/sources/{sourceId}/schemas\"\n .replace(\"{\".concat(\"sourceId\", \"}\"), encodeURIComponent(String(sourceId)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n if (includeTypes !== undefined) {\n localVarQueryParameter['include-types'] = includeTypes;\n }\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This end-point lists all the sources in IdentityNow. A token with ORG_ADMIN, SOURCE_ADMIN, SOURCE_SUBADMIN, or ROLE_SUBADMIN authority is required to call this API.\n * @summary Lists all sources in IdentityNow.\n * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **id**: *eq, in, co, ge, gt, le, lt, ne, isnull, sw* **name**: *co, eq, in, sw, ge, gt, ne, isnull* **type**: *eq, in, co, ge, gt, ne, isnull, sw* **owner.id**: *eq, in, co, ge, gt, le, lt, ne, isnull, sw* **features**: *ca, co* **created**: *eq* **modified**: *eq* **managementWorkgroup.id**: *eq, co, ge, gt, in, le, lt, ne, isnull, sw* **description**: *eq, sw* **authoritative**: *eq, ne, isnull* **healthy**: *isnull* **status**: *eq, in, co, ge, gt, le, lt, ne, isnull, sw* **connectionType**: *eq, co, ge, gt, in, le, lt, ne, isnull, sw* **connectorName**: *eq, co, ge, gt, in, ne, isnull, sw*\n * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **type, created, modified, name, owner.name, healthy, status, id, description, owner.id, accountCorrelationConfig.id, accountCorrelationConfig.name, managerCorrelationRule.type, managerCorrelationRule.id, managerCorrelationRule.name, authoritative, managementWorkgroup.id, connectorName, connectionType**\n * @param {string} [forSubadmin] Filter the returned list of sources for the identity specified by the parameter, which is the id of an identity with the role SOURCE_SUBADMIN. By convention, the value **me** indicates the identity id of the current user. Subadmins may only view Sources which they are able to administer; all other Sources will be filtered out when this parameter is set. If the current user is a SOURCE_SUBADMIN but fails to pass a valid value for this parameter, a 403 Forbidden is returned.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n listSources: function (limit, offset, count, filters, sorters, forSubadmin, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n localVarPath = \"/sources\";\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n if (limit !== undefined) {\n localVarQueryParameter['limit'] = limit;\n }\n if (offset !== undefined) {\n localVarQueryParameter['offset'] = offset;\n }\n if (count !== undefined) {\n localVarQueryParameter['count'] = count;\n }\n if (filters !== undefined) {\n localVarQueryParameter['filters'] = filters;\n }\n if (sorters !== undefined) {\n localVarQueryParameter['sorters'] = sorters;\n }\n if (forSubadmin !== undefined) {\n localVarQueryParameter['for-subadmin'] = forSubadmin;\n }\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This end-point updates the provisioning policy with the specified usage on the specified source in IdentityNow. Transforms can be used in the provisioning policy to create a new attribute that you only need during provisioning. Refer to [Transforms in Provisioning Policies](https://developer.sailpoint.com/idn/docs/transforms/guides/transforms-in-provisioning-policies) for more information. A token with API, ORG_ADMIN, SOURCE_ADMIN, or SOURCE_SUBADMIN authority is required to call this API.\n * @summary Update Provisioning Policy by UsageType\n * @param {string} sourceId The Source ID.\n * @param {UsageType} usageType The type of provisioning policy usage. In IdentityNow, a source can support various provisioning operations. For example, when a joiner is added to a source, this may trigger both CREATE and UPDATE provisioning operations. Each usage type is considered a provisioning policy. A source can have any number of these provisioning policies defined. These are the common usage types: CREATE - This usage type relates to \\'Create Account Profile\\', the provisioning template for the account to be created. For example, this would be used for a joiner on a source. UPDATE - This usage type relates to \\'Update Account Profile\\', the provisioning template for the \\'Update\\' connector operations. For example, this would be used for an attribute sync on a source. ENABLE - This usage type relates to \\'Enable Account Profile\\', the provisioning template for the account to be enabled. For example, this could be used for a joiner on a source once the joiner\\'s account is created. DISABLE - This usage type relates to \\'Disable Account Profile\\', the provisioning template for the account to be disabled. For example, this could be used when a leaver is removed temporarily from a source. You can use these four usage types for all your provisioning policy needs.\n * @param {ProvisioningPolicyDto} provisioningPolicyDto\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n putProvisioningPolicy: function (sourceId, usageType, provisioningPolicyDto, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'sourceId' is not null or undefined\n (0, common_1.assertParamExists)('putProvisioningPolicy', 'sourceId', sourceId);\n // verify required parameter 'usageType' is not null or undefined\n (0, common_1.assertParamExists)('putProvisioningPolicy', 'usageType', usageType);\n // verify required parameter 'provisioningPolicyDto' is not null or undefined\n (0, common_1.assertParamExists)('putProvisioningPolicy', 'provisioningPolicyDto', provisioningPolicyDto);\n localVarPath = \"/sources/{sourceId}/provisioning-policies/{usageType}\"\n .replace(\"{\".concat(\"sourceId\", \"}\"), encodeURIComponent(String(sourceId)))\n .replace(\"{\".concat(\"usageType\", \"}\"), encodeURIComponent(String(usageType)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'PUT' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n localVarHeaderParameter['Content-Type'] = 'application/json';\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(provisioningPolicyDto, localVarRequestOptions, configuration);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This API updates a source in IdentityNow, using a full object representation. In other words, the existing Source configuration is completely replaced. Some fields are immutable and cannot be changed, such as: * id * type * authoritative * connector * connectorClass * passwordPolicies Attempts to modify these fields will result in a 400 error. A token with ORG_ADMIN, SOURCE_ADMIN, or SOURCE_SUBADMIN authority is required to call this API.\n * @summary Update Source (Full)\n * @param {string} id The Source id\n * @param {Source} source\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n putSource: function (id, source, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'id' is not null or undefined\n (0, common_1.assertParamExists)('putSource', 'id', id);\n // verify required parameter 'source' is not null or undefined\n (0, common_1.assertParamExists)('putSource', 'source', source);\n localVarPath = \"/sources/{id}\"\n .replace(\"{\".concat(\"id\", \"}\"), encodeURIComponent(String(id)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'PUT' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n localVarHeaderParameter['Content-Type'] = 'application/json';\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(source, localVarRequestOptions, configuration);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This API will completely replace an existing Schema with the submitted payload. Some fields of the Schema cannot be updated. These fields are listed below. * id * name * created * modified Any attempt to modify these fields will result in an error response with a status code of 400. > `id` must remain in the request body, but it cannot be changed. If `id` is omitted from the request body, the result will be a 400 error.\n * @summary Update Source Schema (Full)\n * @param {string} sourceId The Source id.\n * @param {string} schemaId The Schema id.\n * @param {Schema} schema\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n putSourceSchema: function (sourceId, schemaId, schema, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'sourceId' is not null or undefined\n (0, common_1.assertParamExists)('putSourceSchema', 'sourceId', sourceId);\n // verify required parameter 'schemaId' is not null or undefined\n (0, common_1.assertParamExists)('putSourceSchema', 'schemaId', schemaId);\n // verify required parameter 'schema' is not null or undefined\n (0, common_1.assertParamExists)('putSourceSchema', 'schema', schema);\n localVarPath = \"/sources/{sourceId}/schemas/{schemaId}\"\n .replace(\"{\".concat(\"sourceId\", \"}\"), encodeURIComponent(String(sourceId)))\n .replace(\"{\".concat(\"schemaId\", \"}\"), encodeURIComponent(String(schemaId)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'PUT' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n localVarHeaderParameter['Content-Type'] = 'application/json';\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(schema, localVarRequestOptions, configuration);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This end-point updates a list of provisioning policies on the specified source in IdentityNow. A token with API, or ORG_ADMIN authority is required to call this API.\n * @summary Bulk Update Provisioning Policies\n * @param {string} sourceId The Source id.\n * @param {Array} provisioningPolicyDto\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n updateProvisioningPoliciesInBulk: function (sourceId, provisioningPolicyDto, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'sourceId' is not null or undefined\n (0, common_1.assertParamExists)('updateProvisioningPoliciesInBulk', 'sourceId', sourceId);\n // verify required parameter 'provisioningPolicyDto' is not null or undefined\n (0, common_1.assertParamExists)('updateProvisioningPoliciesInBulk', 'provisioningPolicyDto', provisioningPolicyDto);\n localVarPath = \"/sources/{sourceId}/provisioning-policies/bulk-update\"\n .replace(\"{\".concat(\"sourceId\", \"}\"), encodeURIComponent(String(sourceId)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n localVarHeaderParameter['Content-Type'] = 'application/json';\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(provisioningPolicyDto, localVarRequestOptions, configuration);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This API selectively updates an existing Provisioning Policy using a JSONPatch payload. Transforms can be used in the provisioning policy to create a new attribute that you only need during provisioning. Refer to [Transforms in Provisioning Policies](https://developer.sailpoint.com/idn/docs/transforms/guides/transforms-in-provisioning-policies) for more information. A token with API, ORG_ADMIN, SOURCE_ADMIN, or SOURCE_SUBADMIN authority is required to call this API.\n * @summary Partial update of Provisioning Policy\n * @param {string} sourceId The Source id.\n * @param {UsageType} usageType The type of provisioning policy usage. In IdentityNow, a source can support various provisioning operations. For example, when a joiner is added to a source, this may trigger both CREATE and UPDATE provisioning operations. Each usage type is considered a provisioning policy. A source can have any number of these provisioning policies defined. These are the common usage types: CREATE - This usage type relates to \\'Create Account Profile\\', the provisioning template for the account to be created. For example, this would be used for a joiner on a source. UPDATE - This usage type relates to \\'Update Account Profile\\', the provisioning template for the \\'Update\\' connector operations. For example, this would be used for an attribute sync on a source. ENABLE - This usage type relates to \\'Enable Account Profile\\', the provisioning template for the account to be enabled. For example, this could be used for a joiner on a source once the joiner\\'s account is created. DISABLE - This usage type relates to \\'Disable Account Profile\\', the provisioning template for the account to be disabled. For example, this could be used when a leaver is removed temporarily from a source. You can use these four usage types for all your provisioning policy needs.\n * @param {Array} jsonPatchOperation The JSONPatch payload used to update the schema.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n updateProvisioningPolicy: function (sourceId, usageType, jsonPatchOperation, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'sourceId' is not null or undefined\n (0, common_1.assertParamExists)('updateProvisioningPolicy', 'sourceId', sourceId);\n // verify required parameter 'usageType' is not null or undefined\n (0, common_1.assertParamExists)('updateProvisioningPolicy', 'usageType', usageType);\n // verify required parameter 'jsonPatchOperation' is not null or undefined\n (0, common_1.assertParamExists)('updateProvisioningPolicy', 'jsonPatchOperation', jsonPatchOperation);\n localVarPath = \"/sources/{sourceId}/provisioning-policies/{usageType}\"\n .replace(\"{\".concat(\"sourceId\", \"}\"), encodeURIComponent(String(sourceId)))\n .replace(\"{\".concat(\"usageType\", \"}\"), encodeURIComponent(String(usageType)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'PATCH' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n localVarHeaderParameter['Content-Type'] = 'application/json-patch+json';\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(jsonPatchOperation, localVarRequestOptions, configuration);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This API partially updates a source in IdentityNow, using a list of patch operations according to the [JSON Patch](https://tools.ietf.org/html/rfc6902) standard. Some fields are immutable and cannot be changed, such as: * id * type * authoritative * created * modified * connector * connectorClass * passwordPolicies Attempts to modify these fields will result in a 400 error. A token with ORG_ADMIN, SOURCE_ADMIN, SOURCE_SUBADMIN, or API authority is required to call this API.\n * @summary Update Source (Partial)\n * @param {string} id The Source id\n * @param {Array} jsonPatchOperation A list of account update operations according to the [JSON Patch](https://tools.ietf.org/html/rfc6902) standard. Any password changes are submitted as plain-text and encrypted upon receipt in IdentityNow.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n updateSource: function (id, jsonPatchOperation, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'id' is not null or undefined\n (0, common_1.assertParamExists)('updateSource', 'id', id);\n // verify required parameter 'jsonPatchOperation' is not null or undefined\n (0, common_1.assertParamExists)('updateSource', 'jsonPatchOperation', jsonPatchOperation);\n localVarPath = \"/sources/{id}\"\n .replace(\"{\".concat(\"id\", \"}\"), encodeURIComponent(String(id)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'PATCH' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n localVarHeaderParameter['Content-Type'] = 'application/json-patch+json';\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(jsonPatchOperation, localVarRequestOptions, configuration);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * Use this API to selectively update an existing Schema using a JSONPatch payload. The following schema fields are immutable and cannot be updated: - id - name - created - modified To switch an account attribute to a group entitlement, you need to have the following in place: - `isEntitlement: true` - Must define a schema for the group and [add it to the source](https://developer.sailpoint.com/idn/api/v3/create-source-schema) before updating the `isGroup` flag. For example, here is the `group` account attribute referencing a schema that defines the group: ```json { \\\"name\\\": \\\"groups\\\", \\\"type\\\": \\\"STRING\\\", \\\"schema\\\": { \\\"type\\\": \\\"CONNECTOR_SCHEMA\\\", \\\"id\\\": \\\"2c9180887671ff8c01767b4671fc7d60\\\", \\\"name\\\": \\\"group\\\" }, \\\"description\\\": \\\"The groups, roles etc. that reference account group objects\\\", \\\"isMulti\\\": true, \\\"isEntitlement\\\": true, \\\"isGroup\\\": true } ```\n * @summary Update Source Schema (Partial)\n * @param {string} sourceId The Source id.\n * @param {string} schemaId The Schema id.\n * @param {Array} jsonPatchOperation The JSONPatch payload used to update the schema.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n updateSourceSchema: function (sourceId, schemaId, jsonPatchOperation, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'sourceId' is not null or undefined\n (0, common_1.assertParamExists)('updateSourceSchema', 'sourceId', sourceId);\n // verify required parameter 'schemaId' is not null or undefined\n (0, common_1.assertParamExists)('updateSourceSchema', 'schemaId', schemaId);\n // verify required parameter 'jsonPatchOperation' is not null or undefined\n (0, common_1.assertParamExists)('updateSourceSchema', 'jsonPatchOperation', jsonPatchOperation);\n localVarPath = \"/sources/{sourceId}/schemas/{schemaId}\"\n .replace(\"{\".concat(\"sourceId\", \"}\"), encodeURIComponent(String(sourceId)))\n .replace(\"{\".concat(\"schemaId\", \"}\"), encodeURIComponent(String(schemaId)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'PATCH' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n localVarHeaderParameter['Content-Type'] = 'application/json-patch+json';\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(jsonPatchOperation, localVarRequestOptions, configuration);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n };\n};\nexports.SourcesApiAxiosParamCreator = SourcesApiAxiosParamCreator;\n/**\n * SourcesApi - functional programming interface\n * @export\n */\nvar SourcesApiFp = function (configuration) {\n var localVarAxiosParamCreator = (0, exports.SourcesApiAxiosParamCreator)(configuration);\n return {\n /**\n * This API generates a create policy/template based on field value transforms. This API is intended for use when setting up JDBC Provisioning type sources, but it will also work on other source types. Transforms can be used in the provisioning policy to create a new attribute that you only need during provisioning. Refer to [Transforms in Provisioning Policies](https://developer.sailpoint.com/idn/docs/transforms/guides/transforms-in-provisioning-policies) for more information. A token with ORG_ADMIN authority is required to call this API.\n * @summary Create Provisioning Policy\n * @param {string} sourceId The Source id\n * @param {ProvisioningPolicyDto} provisioningPolicyDto\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n createProvisioningPolicy: function (sourceId, provisioningPolicyDto, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.createProvisioningPolicy(sourceId, provisioningPolicyDto, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This creates a specific source with a full source JSON representation. Any passwords are submitted as plain-text and encrypted upon receipt in IdentityNow. A token with ORG_ADMIN, SOURCE_ADMIN, or SOURCE_SUBADMIN authority is required to call this API.\n * @summary Creates a source in IdentityNow.\n * @param {Source} source\n * @param {boolean} [provisionAsCsv] If this parameter is `true`, it configures the source as a Delimited File (CSV) source. Setting this to `true` will automatically set the `type` of the source to `DelimitedFile`. You must use this query parameter to create a Delimited File source as you would in the UI. If you don\\'t set this query parameter and you attempt to set the `type` attribute directly, the request won\\'t correctly generate the source.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n createSource: function (source, provisionAsCsv, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.createSource(source, provisionAsCsv, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * Creates a new Schema on the specified Source in IdentityNow.\n * @summary Create Schema on a Source\n * @param {string} sourceId The Source id.\n * @param {Schema} schema\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n createSourceSchema: function (sourceId, schema, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.createSourceSchema(sourceId, schema, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * Deletes the provisioning policy with the specified usage on an application. A token with API, or ORG_ADMIN authority is required to call this API.\n * @summary Delete Provisioning Policy by UsageType\n * @param {string} sourceId The Source ID.\n * @param {UsageType} usageType The type of provisioning policy usage. In IdentityNow, a source can support various provisioning operations. For example, when a joiner is added to a source, this may trigger both CREATE and UPDATE provisioning operations. Each usage type is considered a provisioning policy. A source can have any number of these provisioning policies defined. These are the common usage types: CREATE - This usage type relates to \\'Create Account Profile\\', the provisioning template for the account to be created. For example, this would be used for a joiner on a source. UPDATE - This usage type relates to \\'Update Account Profile\\', the provisioning template for the \\'Update\\' connector operations. For example, this would be used for an attribute sync on a source. ENABLE - This usage type relates to \\'Enable Account Profile\\', the provisioning template for the account to be enabled. For example, this could be used for a joiner on a source once the joiner\\'s account is created. DISABLE - This usage type relates to \\'Disable Account Profile\\', the provisioning template for the account to be disabled. For example, this could be used when a leaver is removed temporarily from a source. You can use these four usage types for all your provisioning policy needs.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n deleteProvisioningPolicy: function (sourceId, usageType, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.deleteProvisioningPolicy(sourceId, usageType, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This end-point deletes a specific source in IdentityNow. A token with ORG_ADMIN, SOURCE_ADMIN, or SOURCE_SUBADMIN authority is required to call this API. All of accounts on the source will be removed first, then the source will be deleted. Actual status of task execution can be retrieved via method GET `/task-status/{id}`\n * @summary Delete Source by ID\n * @param {string} id The Source id\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n deleteSource: function (id, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.deleteSource(id, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n *\n * @summary Delete Source Schema by ID\n * @param {string} sourceId The Source id.\n * @param {string} schemaId The Schema id.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n deleteSourceSchema: function (sourceId, schemaId, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.deleteSourceSchema(sourceId, schemaId, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This API downloads the CSV schema that defines the account attributes on a source. >**NOTE: This API is designated only for Delimited File sources.**\n * @summary Downloads source accounts schema template\n * @param {string} id The Source id\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getAccountsSchema: function (id, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.getAccountsSchema(id, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This API downloads the CSV schema that defines the entitlement attributes on a source. >**NOTE: This API is designated only for Delimited File sources.**\n * @summary Downloads source entitlements schema template\n * @param {string} id The Source id\n * @param {string} [schemaName] Name of entitlement schema\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getEntitlementsSchema: function (id, schemaName, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.getEntitlementsSchema(id, schemaName, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This end-point retrieves the ProvisioningPolicy with the specified usage on the specified Source in IdentityNow. A token with API, ORG_ADMIN, SOURCE_ADMIN, or SOURCE_SUBADMIN authority is required to call this API.\n * @summary Get Provisioning Policy by UsageType\n * @param {string} sourceId The Source ID.\n * @param {UsageType} usageType The type of provisioning policy usage. In IdentityNow, a source can support various provisioning operations. For example, when a joiner is added to a source, this may trigger both CREATE and UPDATE provisioning operations. Each usage type is considered a provisioning policy. A source can have any number of these provisioning policies defined. These are the common usage types: CREATE - This usage type relates to \\'Create Account Profile\\', the provisioning template for the account to be created. For example, this would be used for a joiner on a source. UPDATE - This usage type relates to \\'Update Account Profile\\', the provisioning template for the \\'Update\\' connector operations. For example, this would be used for an attribute sync on a source. ENABLE - This usage type relates to \\'Enable Account Profile\\', the provisioning template for the account to be enabled. For example, this could be used for a joiner on a source once the joiner\\'s account is created. DISABLE - This usage type relates to \\'Disable Account Profile\\', the provisioning template for the account to be disabled. For example, this could be used when a leaver is removed temporarily from a source. You can use these four usage types for all your provisioning policy needs.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getProvisioningPolicy: function (sourceId, usageType, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.getProvisioningPolicy(sourceId, usageType, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This end-point gets a specific source in IdentityNow. A token with ORG_ADMIN, SOURCE_ADMIN, or SOURCE_SUBADMIN authority is required to call this API.\n * @summary Get Source by ID\n * @param {string} id The Source id\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getSource: function (id, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.getSource(id, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This endpoint fetches source health by source\\'s id\n * @summary Fetches source health by id\n * @param {string} sourceId The Source id.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getSourceHealth: function (sourceId, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.getSourceHealth(sourceId, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * Get the Source Schema by ID in IdentityNow.\n * @summary Get Source Schema by ID\n * @param {string} sourceId The Source id.\n * @param {string} schemaId The Schema id.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getSourceSchema: function (sourceId, schemaId, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.getSourceSchema(sourceId, schemaId, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This API uploads a source schema template file to configure a source\\'s account attributes. To retrieve the file to modify and upload, log into Identity Now. Click **Admin** -> **Connections** -> **Sources** -> **`{SourceName}`** -> **Import Data** -> **Account Schema** -> **Options** -> **Download Schema** >**NOTE: This API is designated only for Delimited File sources.**\n * @summary Uploads source accounts schema template\n * @param {string} id The Source id\n * @param {any} [file]\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n importAccountsSchema: function (id, file, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.importAccountsSchema(id, file, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This uploads a supplemental source connector file (like jdbc driver jars) to a source\\'s S3 bucket. This also sends ETS and Audit events. A token with ORG_ADMIN authority is required to call this API.\n * @summary Upload connector file to source\n * @param {string} sourceId The Source id.\n * @param {any} [file]\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n importConnectorFile: function (sourceId, file, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.importConnectorFile(sourceId, file, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This API uploads a source schema template file to configure a source\\'s entitlement attributes. To retrieve the file to modify and upload, log into Identity Now. Click **Admin** -> **Connections** -> **Sources** -> **`{SourceName}`** -> **Import Data** -> **Import Entitlements** -> **Download** >**NOTE: This API is designated only for Delimited File sources.**\n * @summary Uploads source entitlements schema template\n * @param {string} id The Source id\n * @param {string} [schemaName] Name of entitlement schema\n * @param {any} [file]\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n importEntitlementsSchema: function (id, schemaName, file, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.importEntitlementsSchema(id, schemaName, file, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This end-point lists all the ProvisioningPolicies in IdentityNow. A token with API, or ORG_ADMIN authority is required to call this API.\n * @summary Lists ProvisioningPolicies\n * @param {string} sourceId The Source id\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n listProvisioningPolicies: function (sourceId, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.listProvisioningPolicies(sourceId, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * Lists the Schemas that exist on the specified Source in IdentityNow.\n * @summary List Schemas on a Source\n * @param {string} sourceId The Source ID.\n * @param {string} [includeTypes] If set to \\'group\\', then the account schema is filtered and only group schemas are returned. Only a value of \\'group\\' is recognized.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n listSourceSchemas: function (sourceId, includeTypes, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.listSourceSchemas(sourceId, includeTypes, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This end-point lists all the sources in IdentityNow. A token with ORG_ADMIN, SOURCE_ADMIN, SOURCE_SUBADMIN, or ROLE_SUBADMIN authority is required to call this API.\n * @summary Lists all sources in IdentityNow.\n * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **id**: *eq, in, co, ge, gt, le, lt, ne, isnull, sw* **name**: *co, eq, in, sw, ge, gt, ne, isnull* **type**: *eq, in, co, ge, gt, ne, isnull, sw* **owner.id**: *eq, in, co, ge, gt, le, lt, ne, isnull, sw* **features**: *ca, co* **created**: *eq* **modified**: *eq* **managementWorkgroup.id**: *eq, co, ge, gt, in, le, lt, ne, isnull, sw* **description**: *eq, sw* **authoritative**: *eq, ne, isnull* **healthy**: *isnull* **status**: *eq, in, co, ge, gt, le, lt, ne, isnull, sw* **connectionType**: *eq, co, ge, gt, in, le, lt, ne, isnull, sw* **connectorName**: *eq, co, ge, gt, in, ne, isnull, sw*\n * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **type, created, modified, name, owner.name, healthy, status, id, description, owner.id, accountCorrelationConfig.id, accountCorrelationConfig.name, managerCorrelationRule.type, managerCorrelationRule.id, managerCorrelationRule.name, authoritative, managementWorkgroup.id, connectorName, connectionType**\n * @param {string} [forSubadmin] Filter the returned list of sources for the identity specified by the parameter, which is the id of an identity with the role SOURCE_SUBADMIN. By convention, the value **me** indicates the identity id of the current user. Subadmins may only view Sources which they are able to administer; all other Sources will be filtered out when this parameter is set. If the current user is a SOURCE_SUBADMIN but fails to pass a valid value for this parameter, a 403 Forbidden is returned.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n listSources: function (limit, offset, count, filters, sorters, forSubadmin, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.listSources(limit, offset, count, filters, sorters, forSubadmin, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This end-point updates the provisioning policy with the specified usage on the specified source in IdentityNow. Transforms can be used in the provisioning policy to create a new attribute that you only need during provisioning. Refer to [Transforms in Provisioning Policies](https://developer.sailpoint.com/idn/docs/transforms/guides/transforms-in-provisioning-policies) for more information. A token with API, ORG_ADMIN, SOURCE_ADMIN, or SOURCE_SUBADMIN authority is required to call this API.\n * @summary Update Provisioning Policy by UsageType\n * @param {string} sourceId The Source ID.\n * @param {UsageType} usageType The type of provisioning policy usage. In IdentityNow, a source can support various provisioning operations. For example, when a joiner is added to a source, this may trigger both CREATE and UPDATE provisioning operations. Each usage type is considered a provisioning policy. A source can have any number of these provisioning policies defined. These are the common usage types: CREATE - This usage type relates to \\'Create Account Profile\\', the provisioning template for the account to be created. For example, this would be used for a joiner on a source. UPDATE - This usage type relates to \\'Update Account Profile\\', the provisioning template for the \\'Update\\' connector operations. For example, this would be used for an attribute sync on a source. ENABLE - This usage type relates to \\'Enable Account Profile\\', the provisioning template for the account to be enabled. For example, this could be used for a joiner on a source once the joiner\\'s account is created. DISABLE - This usage type relates to \\'Disable Account Profile\\', the provisioning template for the account to be disabled. For example, this could be used when a leaver is removed temporarily from a source. You can use these four usage types for all your provisioning policy needs.\n * @param {ProvisioningPolicyDto} provisioningPolicyDto\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n putProvisioningPolicy: function (sourceId, usageType, provisioningPolicyDto, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.putProvisioningPolicy(sourceId, usageType, provisioningPolicyDto, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This API updates a source in IdentityNow, using a full object representation. In other words, the existing Source configuration is completely replaced. Some fields are immutable and cannot be changed, such as: * id * type * authoritative * connector * connectorClass * passwordPolicies Attempts to modify these fields will result in a 400 error. A token with ORG_ADMIN, SOURCE_ADMIN, or SOURCE_SUBADMIN authority is required to call this API.\n * @summary Update Source (Full)\n * @param {string} id The Source id\n * @param {Source} source\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n putSource: function (id, source, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.putSource(id, source, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This API will completely replace an existing Schema with the submitted payload. Some fields of the Schema cannot be updated. These fields are listed below. * id * name * created * modified Any attempt to modify these fields will result in an error response with a status code of 400. > `id` must remain in the request body, but it cannot be changed. If `id` is omitted from the request body, the result will be a 400 error.\n * @summary Update Source Schema (Full)\n * @param {string} sourceId The Source id.\n * @param {string} schemaId The Schema id.\n * @param {Schema} schema\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n putSourceSchema: function (sourceId, schemaId, schema, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.putSourceSchema(sourceId, schemaId, schema, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This end-point updates a list of provisioning policies on the specified source in IdentityNow. A token with API, or ORG_ADMIN authority is required to call this API.\n * @summary Bulk Update Provisioning Policies\n * @param {string} sourceId The Source id.\n * @param {Array} provisioningPolicyDto\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n updateProvisioningPoliciesInBulk: function (sourceId, provisioningPolicyDto, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.updateProvisioningPoliciesInBulk(sourceId, provisioningPolicyDto, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This API selectively updates an existing Provisioning Policy using a JSONPatch payload. Transforms can be used in the provisioning policy to create a new attribute that you only need during provisioning. Refer to [Transforms in Provisioning Policies](https://developer.sailpoint.com/idn/docs/transforms/guides/transforms-in-provisioning-policies) for more information. A token with API, ORG_ADMIN, SOURCE_ADMIN, or SOURCE_SUBADMIN authority is required to call this API.\n * @summary Partial update of Provisioning Policy\n * @param {string} sourceId The Source id.\n * @param {UsageType} usageType The type of provisioning policy usage. In IdentityNow, a source can support various provisioning operations. For example, when a joiner is added to a source, this may trigger both CREATE and UPDATE provisioning operations. Each usage type is considered a provisioning policy. A source can have any number of these provisioning policies defined. These are the common usage types: CREATE - This usage type relates to \\'Create Account Profile\\', the provisioning template for the account to be created. For example, this would be used for a joiner on a source. UPDATE - This usage type relates to \\'Update Account Profile\\', the provisioning template for the \\'Update\\' connector operations. For example, this would be used for an attribute sync on a source. ENABLE - This usage type relates to \\'Enable Account Profile\\', the provisioning template for the account to be enabled. For example, this could be used for a joiner on a source once the joiner\\'s account is created. DISABLE - This usage type relates to \\'Disable Account Profile\\', the provisioning template for the account to be disabled. For example, this could be used when a leaver is removed temporarily from a source. You can use these four usage types for all your provisioning policy needs.\n * @param {Array} jsonPatchOperation The JSONPatch payload used to update the schema.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n updateProvisioningPolicy: function (sourceId, usageType, jsonPatchOperation, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.updateProvisioningPolicy(sourceId, usageType, jsonPatchOperation, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This API partially updates a source in IdentityNow, using a list of patch operations according to the [JSON Patch](https://tools.ietf.org/html/rfc6902) standard. Some fields are immutable and cannot be changed, such as: * id * type * authoritative * created * modified * connector * connectorClass * passwordPolicies Attempts to modify these fields will result in a 400 error. A token with ORG_ADMIN, SOURCE_ADMIN, SOURCE_SUBADMIN, or API authority is required to call this API.\n * @summary Update Source (Partial)\n * @param {string} id The Source id\n * @param {Array} jsonPatchOperation A list of account update operations according to the [JSON Patch](https://tools.ietf.org/html/rfc6902) standard. Any password changes are submitted as plain-text and encrypted upon receipt in IdentityNow.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n updateSource: function (id, jsonPatchOperation, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.updateSource(id, jsonPatchOperation, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * Use this API to selectively update an existing Schema using a JSONPatch payload. The following schema fields are immutable and cannot be updated: - id - name - created - modified To switch an account attribute to a group entitlement, you need to have the following in place: - `isEntitlement: true` - Must define a schema for the group and [add it to the source](https://developer.sailpoint.com/idn/api/v3/create-source-schema) before updating the `isGroup` flag. For example, here is the `group` account attribute referencing a schema that defines the group: ```json { \\\"name\\\": \\\"groups\\\", \\\"type\\\": \\\"STRING\\\", \\\"schema\\\": { \\\"type\\\": \\\"CONNECTOR_SCHEMA\\\", \\\"id\\\": \\\"2c9180887671ff8c01767b4671fc7d60\\\", \\\"name\\\": \\\"group\\\" }, \\\"description\\\": \\\"The groups, roles etc. that reference account group objects\\\", \\\"isMulti\\\": true, \\\"isEntitlement\\\": true, \\\"isGroup\\\": true } ```\n * @summary Update Source Schema (Partial)\n * @param {string} sourceId The Source id.\n * @param {string} schemaId The Schema id.\n * @param {Array} jsonPatchOperation The JSONPatch payload used to update the schema.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n updateSourceSchema: function (sourceId, schemaId, jsonPatchOperation, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.updateSourceSchema(sourceId, schemaId, jsonPatchOperation, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n };\n};\nexports.SourcesApiFp = SourcesApiFp;\n/**\n * SourcesApi - factory interface\n * @export\n */\nvar SourcesApiFactory = function (configuration, basePath, axios) {\n var localVarFp = (0, exports.SourcesApiFp)(configuration);\n return {\n /**\n * This API generates a create policy/template based on field value transforms. This API is intended for use when setting up JDBC Provisioning type sources, but it will also work on other source types. Transforms can be used in the provisioning policy to create a new attribute that you only need during provisioning. Refer to [Transforms in Provisioning Policies](https://developer.sailpoint.com/idn/docs/transforms/guides/transforms-in-provisioning-policies) for more information. A token with ORG_ADMIN authority is required to call this API.\n * @summary Create Provisioning Policy\n * @param {string} sourceId The Source id\n * @param {ProvisioningPolicyDto} provisioningPolicyDto\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n createProvisioningPolicy: function (sourceId, provisioningPolicyDto, axiosOptions) {\n return localVarFp.createProvisioningPolicy(sourceId, provisioningPolicyDto, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This creates a specific source with a full source JSON representation. Any passwords are submitted as plain-text and encrypted upon receipt in IdentityNow. A token with ORG_ADMIN, SOURCE_ADMIN, or SOURCE_SUBADMIN authority is required to call this API.\n * @summary Creates a source in IdentityNow.\n * @param {Source} source\n * @param {boolean} [provisionAsCsv] If this parameter is `true`, it configures the source as a Delimited File (CSV) source. Setting this to `true` will automatically set the `type` of the source to `DelimitedFile`. You must use this query parameter to create a Delimited File source as you would in the UI. If you don\\'t set this query parameter and you attempt to set the `type` attribute directly, the request won\\'t correctly generate the source.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n createSource: function (source, provisionAsCsv, axiosOptions) {\n return localVarFp.createSource(source, provisionAsCsv, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * Creates a new Schema on the specified Source in IdentityNow.\n * @summary Create Schema on a Source\n * @param {string} sourceId The Source id.\n * @param {Schema} schema\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n createSourceSchema: function (sourceId, schema, axiosOptions) {\n return localVarFp.createSourceSchema(sourceId, schema, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * Deletes the provisioning policy with the specified usage on an application. A token with API, or ORG_ADMIN authority is required to call this API.\n * @summary Delete Provisioning Policy by UsageType\n * @param {string} sourceId The Source ID.\n * @param {UsageType} usageType The type of provisioning policy usage. In IdentityNow, a source can support various provisioning operations. For example, when a joiner is added to a source, this may trigger both CREATE and UPDATE provisioning operations. Each usage type is considered a provisioning policy. A source can have any number of these provisioning policies defined. These are the common usage types: CREATE - This usage type relates to \\'Create Account Profile\\', the provisioning template for the account to be created. For example, this would be used for a joiner on a source. UPDATE - This usage type relates to \\'Update Account Profile\\', the provisioning template for the \\'Update\\' connector operations. For example, this would be used for an attribute sync on a source. ENABLE - This usage type relates to \\'Enable Account Profile\\', the provisioning template for the account to be enabled. For example, this could be used for a joiner on a source once the joiner\\'s account is created. DISABLE - This usage type relates to \\'Disable Account Profile\\', the provisioning template for the account to be disabled. For example, this could be used when a leaver is removed temporarily from a source. You can use these four usage types for all your provisioning policy needs.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n deleteProvisioningPolicy: function (sourceId, usageType, axiosOptions) {\n return localVarFp.deleteProvisioningPolicy(sourceId, usageType, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This end-point deletes a specific source in IdentityNow. A token with ORG_ADMIN, SOURCE_ADMIN, or SOURCE_SUBADMIN authority is required to call this API. All of accounts on the source will be removed first, then the source will be deleted. Actual status of task execution can be retrieved via method GET `/task-status/{id}`\n * @summary Delete Source by ID\n * @param {string} id The Source id\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n deleteSource: function (id, axiosOptions) {\n return localVarFp.deleteSource(id, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n *\n * @summary Delete Source Schema by ID\n * @param {string} sourceId The Source id.\n * @param {string} schemaId The Schema id.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n deleteSourceSchema: function (sourceId, schemaId, axiosOptions) {\n return localVarFp.deleteSourceSchema(sourceId, schemaId, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This API downloads the CSV schema that defines the account attributes on a source. >**NOTE: This API is designated only for Delimited File sources.**\n * @summary Downloads source accounts schema template\n * @param {string} id The Source id\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getAccountsSchema: function (id, axiosOptions) {\n return localVarFp.getAccountsSchema(id, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This API downloads the CSV schema that defines the entitlement attributes on a source. >**NOTE: This API is designated only for Delimited File sources.**\n * @summary Downloads source entitlements schema template\n * @param {string} id The Source id\n * @param {string} [schemaName] Name of entitlement schema\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getEntitlementsSchema: function (id, schemaName, axiosOptions) {\n return localVarFp.getEntitlementsSchema(id, schemaName, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This end-point retrieves the ProvisioningPolicy with the specified usage on the specified Source in IdentityNow. A token with API, ORG_ADMIN, SOURCE_ADMIN, or SOURCE_SUBADMIN authority is required to call this API.\n * @summary Get Provisioning Policy by UsageType\n * @param {string} sourceId The Source ID.\n * @param {UsageType} usageType The type of provisioning policy usage. In IdentityNow, a source can support various provisioning operations. For example, when a joiner is added to a source, this may trigger both CREATE and UPDATE provisioning operations. Each usage type is considered a provisioning policy. A source can have any number of these provisioning policies defined. These are the common usage types: CREATE - This usage type relates to \\'Create Account Profile\\', the provisioning template for the account to be created. For example, this would be used for a joiner on a source. UPDATE - This usage type relates to \\'Update Account Profile\\', the provisioning template for the \\'Update\\' connector operations. For example, this would be used for an attribute sync on a source. ENABLE - This usage type relates to \\'Enable Account Profile\\', the provisioning template for the account to be enabled. For example, this could be used for a joiner on a source once the joiner\\'s account is created. DISABLE - This usage type relates to \\'Disable Account Profile\\', the provisioning template for the account to be disabled. For example, this could be used when a leaver is removed temporarily from a source. You can use these four usage types for all your provisioning policy needs.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getProvisioningPolicy: function (sourceId, usageType, axiosOptions) {\n return localVarFp.getProvisioningPolicy(sourceId, usageType, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This end-point gets a specific source in IdentityNow. A token with ORG_ADMIN, SOURCE_ADMIN, or SOURCE_SUBADMIN authority is required to call this API.\n * @summary Get Source by ID\n * @param {string} id The Source id\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getSource: function (id, axiosOptions) {\n return localVarFp.getSource(id, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This endpoint fetches source health by source\\'s id\n * @summary Fetches source health by id\n * @param {string} sourceId The Source id.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getSourceHealth: function (sourceId, axiosOptions) {\n return localVarFp.getSourceHealth(sourceId, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * Get the Source Schema by ID in IdentityNow.\n * @summary Get Source Schema by ID\n * @param {string} sourceId The Source id.\n * @param {string} schemaId The Schema id.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getSourceSchema: function (sourceId, schemaId, axiosOptions) {\n return localVarFp.getSourceSchema(sourceId, schemaId, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This API uploads a source schema template file to configure a source\\'s account attributes. To retrieve the file to modify and upload, log into Identity Now. Click **Admin** -> **Connections** -> **Sources** -> **`{SourceName}`** -> **Import Data** -> **Account Schema** -> **Options** -> **Download Schema** >**NOTE: This API is designated only for Delimited File sources.**\n * @summary Uploads source accounts schema template\n * @param {string} id The Source id\n * @param {any} [file]\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n importAccountsSchema: function (id, file, axiosOptions) {\n return localVarFp.importAccountsSchema(id, file, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This uploads a supplemental source connector file (like jdbc driver jars) to a source\\'s S3 bucket. This also sends ETS and Audit events. A token with ORG_ADMIN authority is required to call this API.\n * @summary Upload connector file to source\n * @param {string} sourceId The Source id.\n * @param {any} [file]\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n importConnectorFile: function (sourceId, file, axiosOptions) {\n return localVarFp.importConnectorFile(sourceId, file, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This API uploads a source schema template file to configure a source\\'s entitlement attributes. To retrieve the file to modify and upload, log into Identity Now. Click **Admin** -> **Connections** -> **Sources** -> **`{SourceName}`** -> **Import Data** -> **Import Entitlements** -> **Download** >**NOTE: This API is designated only for Delimited File sources.**\n * @summary Uploads source entitlements schema template\n * @param {string} id The Source id\n * @param {string} [schemaName] Name of entitlement schema\n * @param {any} [file]\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n importEntitlementsSchema: function (id, schemaName, file, axiosOptions) {\n return localVarFp.importEntitlementsSchema(id, schemaName, file, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This end-point lists all the ProvisioningPolicies in IdentityNow. A token with API, or ORG_ADMIN authority is required to call this API.\n * @summary Lists ProvisioningPolicies\n * @param {string} sourceId The Source id\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n listProvisioningPolicies: function (sourceId, axiosOptions) {\n return localVarFp.listProvisioningPolicies(sourceId, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * Lists the Schemas that exist on the specified Source in IdentityNow.\n * @summary List Schemas on a Source\n * @param {string} sourceId The Source ID.\n * @param {string} [includeTypes] If set to \\'group\\', then the account schema is filtered and only group schemas are returned. Only a value of \\'group\\' is recognized.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n listSourceSchemas: function (sourceId, includeTypes, axiosOptions) {\n return localVarFp.listSourceSchemas(sourceId, includeTypes, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This end-point lists all the sources in IdentityNow. A token with ORG_ADMIN, SOURCE_ADMIN, SOURCE_SUBADMIN, or ROLE_SUBADMIN authority is required to call this API.\n * @summary Lists all sources in IdentityNow.\n * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **id**: *eq, in, co, ge, gt, le, lt, ne, isnull, sw* **name**: *co, eq, in, sw, ge, gt, ne, isnull* **type**: *eq, in, co, ge, gt, ne, isnull, sw* **owner.id**: *eq, in, co, ge, gt, le, lt, ne, isnull, sw* **features**: *ca, co* **created**: *eq* **modified**: *eq* **managementWorkgroup.id**: *eq, co, ge, gt, in, le, lt, ne, isnull, sw* **description**: *eq, sw* **authoritative**: *eq, ne, isnull* **healthy**: *isnull* **status**: *eq, in, co, ge, gt, le, lt, ne, isnull, sw* **connectionType**: *eq, co, ge, gt, in, le, lt, ne, isnull, sw* **connectorName**: *eq, co, ge, gt, in, ne, isnull, sw*\n * @param {string} [sorters] Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **type, created, modified, name, owner.name, healthy, status, id, description, owner.id, accountCorrelationConfig.id, accountCorrelationConfig.name, managerCorrelationRule.type, managerCorrelationRule.id, managerCorrelationRule.name, authoritative, managementWorkgroup.id, connectorName, connectionType**\n * @param {string} [forSubadmin] Filter the returned list of sources for the identity specified by the parameter, which is the id of an identity with the role SOURCE_SUBADMIN. By convention, the value **me** indicates the identity id of the current user. Subadmins may only view Sources which they are able to administer; all other Sources will be filtered out when this parameter is set. If the current user is a SOURCE_SUBADMIN but fails to pass a valid value for this parameter, a 403 Forbidden is returned.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n listSources: function (limit, offset, count, filters, sorters, forSubadmin, axiosOptions) {\n return localVarFp.listSources(limit, offset, count, filters, sorters, forSubadmin, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This end-point updates the provisioning policy with the specified usage on the specified source in IdentityNow. Transforms can be used in the provisioning policy to create a new attribute that you only need during provisioning. Refer to [Transforms in Provisioning Policies](https://developer.sailpoint.com/idn/docs/transforms/guides/transforms-in-provisioning-policies) for more information. A token with API, ORG_ADMIN, SOURCE_ADMIN, or SOURCE_SUBADMIN authority is required to call this API.\n * @summary Update Provisioning Policy by UsageType\n * @param {string} sourceId The Source ID.\n * @param {UsageType} usageType The type of provisioning policy usage. In IdentityNow, a source can support various provisioning operations. For example, when a joiner is added to a source, this may trigger both CREATE and UPDATE provisioning operations. Each usage type is considered a provisioning policy. A source can have any number of these provisioning policies defined. These are the common usage types: CREATE - This usage type relates to \\'Create Account Profile\\', the provisioning template for the account to be created. For example, this would be used for a joiner on a source. UPDATE - This usage type relates to \\'Update Account Profile\\', the provisioning template for the \\'Update\\' connector operations. For example, this would be used for an attribute sync on a source. ENABLE - This usage type relates to \\'Enable Account Profile\\', the provisioning template for the account to be enabled. For example, this could be used for a joiner on a source once the joiner\\'s account is created. DISABLE - This usage type relates to \\'Disable Account Profile\\', the provisioning template for the account to be disabled. For example, this could be used when a leaver is removed temporarily from a source. You can use these four usage types for all your provisioning policy needs.\n * @param {ProvisioningPolicyDto} provisioningPolicyDto\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n putProvisioningPolicy: function (sourceId, usageType, provisioningPolicyDto, axiosOptions) {\n return localVarFp.putProvisioningPolicy(sourceId, usageType, provisioningPolicyDto, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This API updates a source in IdentityNow, using a full object representation. In other words, the existing Source configuration is completely replaced. Some fields are immutable and cannot be changed, such as: * id * type * authoritative * connector * connectorClass * passwordPolicies Attempts to modify these fields will result in a 400 error. A token with ORG_ADMIN, SOURCE_ADMIN, or SOURCE_SUBADMIN authority is required to call this API.\n * @summary Update Source (Full)\n * @param {string} id The Source id\n * @param {Source} source\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n putSource: function (id, source, axiosOptions) {\n return localVarFp.putSource(id, source, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This API will completely replace an existing Schema with the submitted payload. Some fields of the Schema cannot be updated. These fields are listed below. * id * name * created * modified Any attempt to modify these fields will result in an error response with a status code of 400. > `id` must remain in the request body, but it cannot be changed. If `id` is omitted from the request body, the result will be a 400 error.\n * @summary Update Source Schema (Full)\n * @param {string} sourceId The Source id.\n * @param {string} schemaId The Schema id.\n * @param {Schema} schema\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n putSourceSchema: function (sourceId, schemaId, schema, axiosOptions) {\n return localVarFp.putSourceSchema(sourceId, schemaId, schema, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This end-point updates a list of provisioning policies on the specified source in IdentityNow. A token with API, or ORG_ADMIN authority is required to call this API.\n * @summary Bulk Update Provisioning Policies\n * @param {string} sourceId The Source id.\n * @param {Array} provisioningPolicyDto\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n updateProvisioningPoliciesInBulk: function (sourceId, provisioningPolicyDto, axiosOptions) {\n return localVarFp.updateProvisioningPoliciesInBulk(sourceId, provisioningPolicyDto, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This API selectively updates an existing Provisioning Policy using a JSONPatch payload. Transforms can be used in the provisioning policy to create a new attribute that you only need during provisioning. Refer to [Transforms in Provisioning Policies](https://developer.sailpoint.com/idn/docs/transforms/guides/transforms-in-provisioning-policies) for more information. A token with API, ORG_ADMIN, SOURCE_ADMIN, or SOURCE_SUBADMIN authority is required to call this API.\n * @summary Partial update of Provisioning Policy\n * @param {string} sourceId The Source id.\n * @param {UsageType} usageType The type of provisioning policy usage. In IdentityNow, a source can support various provisioning operations. For example, when a joiner is added to a source, this may trigger both CREATE and UPDATE provisioning operations. Each usage type is considered a provisioning policy. A source can have any number of these provisioning policies defined. These are the common usage types: CREATE - This usage type relates to \\'Create Account Profile\\', the provisioning template for the account to be created. For example, this would be used for a joiner on a source. UPDATE - This usage type relates to \\'Update Account Profile\\', the provisioning template for the \\'Update\\' connector operations. For example, this would be used for an attribute sync on a source. ENABLE - This usage type relates to \\'Enable Account Profile\\', the provisioning template for the account to be enabled. For example, this could be used for a joiner on a source once the joiner\\'s account is created. DISABLE - This usage type relates to \\'Disable Account Profile\\', the provisioning template for the account to be disabled. For example, this could be used when a leaver is removed temporarily from a source. You can use these four usage types for all your provisioning policy needs.\n * @param {Array} jsonPatchOperation The JSONPatch payload used to update the schema.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n updateProvisioningPolicy: function (sourceId, usageType, jsonPatchOperation, axiosOptions) {\n return localVarFp.updateProvisioningPolicy(sourceId, usageType, jsonPatchOperation, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This API partially updates a source in IdentityNow, using a list of patch operations according to the [JSON Patch](https://tools.ietf.org/html/rfc6902) standard. Some fields are immutable and cannot be changed, such as: * id * type * authoritative * created * modified * connector * connectorClass * passwordPolicies Attempts to modify these fields will result in a 400 error. A token with ORG_ADMIN, SOURCE_ADMIN, SOURCE_SUBADMIN, or API authority is required to call this API.\n * @summary Update Source (Partial)\n * @param {string} id The Source id\n * @param {Array} jsonPatchOperation A list of account update operations according to the [JSON Patch](https://tools.ietf.org/html/rfc6902) standard. Any password changes are submitted as plain-text and encrypted upon receipt in IdentityNow.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n updateSource: function (id, jsonPatchOperation, axiosOptions) {\n return localVarFp.updateSource(id, jsonPatchOperation, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * Use this API to selectively update an existing Schema using a JSONPatch payload. The following schema fields are immutable and cannot be updated: - id - name - created - modified To switch an account attribute to a group entitlement, you need to have the following in place: - `isEntitlement: true` - Must define a schema for the group and [add it to the source](https://developer.sailpoint.com/idn/api/v3/create-source-schema) before updating the `isGroup` flag. For example, here is the `group` account attribute referencing a schema that defines the group: ```json { \\\"name\\\": \\\"groups\\\", \\\"type\\\": \\\"STRING\\\", \\\"schema\\\": { \\\"type\\\": \\\"CONNECTOR_SCHEMA\\\", \\\"id\\\": \\\"2c9180887671ff8c01767b4671fc7d60\\\", \\\"name\\\": \\\"group\\\" }, \\\"description\\\": \\\"The groups, roles etc. that reference account group objects\\\", \\\"isMulti\\\": true, \\\"isEntitlement\\\": true, \\\"isGroup\\\": true } ```\n * @summary Update Source Schema (Partial)\n * @param {string} sourceId The Source id.\n * @param {string} schemaId The Schema id.\n * @param {Array} jsonPatchOperation The JSONPatch payload used to update the schema.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n updateSourceSchema: function (sourceId, schemaId, jsonPatchOperation, axiosOptions) {\n return localVarFp.updateSourceSchema(sourceId, schemaId, jsonPatchOperation, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n };\n};\nexports.SourcesApiFactory = SourcesApiFactory;\n/**\n * SourcesApi - object-oriented interface\n * @export\n * @class SourcesApi\n * @extends {BaseAPI}\n */\nvar SourcesApi = /** @class */ (function (_super) {\n __extends(SourcesApi, _super);\n function SourcesApi() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n * This API generates a create policy/template based on field value transforms. This API is intended for use when setting up JDBC Provisioning type sources, but it will also work on other source types. Transforms can be used in the provisioning policy to create a new attribute that you only need during provisioning. Refer to [Transforms in Provisioning Policies](https://developer.sailpoint.com/idn/docs/transforms/guides/transforms-in-provisioning-policies) for more information. A token with ORG_ADMIN authority is required to call this API.\n * @summary Create Provisioning Policy\n * @param {SourcesApiCreateProvisioningPolicyRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof SourcesApi\n */\n SourcesApi.prototype.createProvisioningPolicy = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.SourcesApiFp)(this.configuration).createProvisioningPolicy(requestParameters.sourceId, requestParameters.provisioningPolicyDto, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This creates a specific source with a full source JSON representation. Any passwords are submitted as plain-text and encrypted upon receipt in IdentityNow. A token with ORG_ADMIN, SOURCE_ADMIN, or SOURCE_SUBADMIN authority is required to call this API.\n * @summary Creates a source in IdentityNow.\n * @param {SourcesApiCreateSourceRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof SourcesApi\n */\n SourcesApi.prototype.createSource = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.SourcesApiFp)(this.configuration).createSource(requestParameters.source, requestParameters.provisionAsCsv, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * Creates a new Schema on the specified Source in IdentityNow.\n * @summary Create Schema on a Source\n * @param {SourcesApiCreateSourceSchemaRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof SourcesApi\n */\n SourcesApi.prototype.createSourceSchema = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.SourcesApiFp)(this.configuration).createSourceSchema(requestParameters.sourceId, requestParameters.schema, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * Deletes the provisioning policy with the specified usage on an application. A token with API, or ORG_ADMIN authority is required to call this API.\n * @summary Delete Provisioning Policy by UsageType\n * @param {SourcesApiDeleteProvisioningPolicyRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof SourcesApi\n */\n SourcesApi.prototype.deleteProvisioningPolicy = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.SourcesApiFp)(this.configuration).deleteProvisioningPolicy(requestParameters.sourceId, requestParameters.usageType, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This end-point deletes a specific source in IdentityNow. A token with ORG_ADMIN, SOURCE_ADMIN, or SOURCE_SUBADMIN authority is required to call this API. All of accounts on the source will be removed first, then the source will be deleted. Actual status of task execution can be retrieved via method GET `/task-status/{id}`\n * @summary Delete Source by ID\n * @param {SourcesApiDeleteSourceRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof SourcesApi\n */\n SourcesApi.prototype.deleteSource = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.SourcesApiFp)(this.configuration).deleteSource(requestParameters.id, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n *\n * @summary Delete Source Schema by ID\n * @param {SourcesApiDeleteSourceSchemaRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof SourcesApi\n */\n SourcesApi.prototype.deleteSourceSchema = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.SourcesApiFp)(this.configuration).deleteSourceSchema(requestParameters.sourceId, requestParameters.schemaId, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This API downloads the CSV schema that defines the account attributes on a source. >**NOTE: This API is designated only for Delimited File sources.**\n * @summary Downloads source accounts schema template\n * @param {SourcesApiGetAccountsSchemaRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof SourcesApi\n */\n SourcesApi.prototype.getAccountsSchema = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.SourcesApiFp)(this.configuration).getAccountsSchema(requestParameters.id, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This API downloads the CSV schema that defines the entitlement attributes on a source. >**NOTE: This API is designated only for Delimited File sources.**\n * @summary Downloads source entitlements schema template\n * @param {SourcesApiGetEntitlementsSchemaRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof SourcesApi\n */\n SourcesApi.prototype.getEntitlementsSchema = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.SourcesApiFp)(this.configuration).getEntitlementsSchema(requestParameters.id, requestParameters.schemaName, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This end-point retrieves the ProvisioningPolicy with the specified usage on the specified Source in IdentityNow. A token with API, ORG_ADMIN, SOURCE_ADMIN, or SOURCE_SUBADMIN authority is required to call this API.\n * @summary Get Provisioning Policy by UsageType\n * @param {SourcesApiGetProvisioningPolicyRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof SourcesApi\n */\n SourcesApi.prototype.getProvisioningPolicy = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.SourcesApiFp)(this.configuration).getProvisioningPolicy(requestParameters.sourceId, requestParameters.usageType, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This end-point gets a specific source in IdentityNow. A token with ORG_ADMIN, SOURCE_ADMIN, or SOURCE_SUBADMIN authority is required to call this API.\n * @summary Get Source by ID\n * @param {SourcesApiGetSourceRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof SourcesApi\n */\n SourcesApi.prototype.getSource = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.SourcesApiFp)(this.configuration).getSource(requestParameters.id, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This endpoint fetches source health by source\\'s id\n * @summary Fetches source health by id\n * @param {SourcesApiGetSourceHealthRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof SourcesApi\n */\n SourcesApi.prototype.getSourceHealth = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.SourcesApiFp)(this.configuration).getSourceHealth(requestParameters.sourceId, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * Get the Source Schema by ID in IdentityNow.\n * @summary Get Source Schema by ID\n * @param {SourcesApiGetSourceSchemaRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof SourcesApi\n */\n SourcesApi.prototype.getSourceSchema = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.SourcesApiFp)(this.configuration).getSourceSchema(requestParameters.sourceId, requestParameters.schemaId, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This API uploads a source schema template file to configure a source\\'s account attributes. To retrieve the file to modify and upload, log into Identity Now. Click **Admin** -> **Connections** -> **Sources** -> **`{SourceName}`** -> **Import Data** -> **Account Schema** -> **Options** -> **Download Schema** >**NOTE: This API is designated only for Delimited File sources.**\n * @summary Uploads source accounts schema template\n * @param {SourcesApiImportAccountsSchemaRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof SourcesApi\n */\n SourcesApi.prototype.importAccountsSchema = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.SourcesApiFp)(this.configuration).importAccountsSchema(requestParameters.id, requestParameters.file, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This uploads a supplemental source connector file (like jdbc driver jars) to a source\\'s S3 bucket. This also sends ETS and Audit events. A token with ORG_ADMIN authority is required to call this API.\n * @summary Upload connector file to source\n * @param {SourcesApiImportConnectorFileRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof SourcesApi\n */\n SourcesApi.prototype.importConnectorFile = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.SourcesApiFp)(this.configuration).importConnectorFile(requestParameters.sourceId, requestParameters.file, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This API uploads a source schema template file to configure a source\\'s entitlement attributes. To retrieve the file to modify and upload, log into Identity Now. Click **Admin** -> **Connections** -> **Sources** -> **`{SourceName}`** -> **Import Data** -> **Import Entitlements** -> **Download** >**NOTE: This API is designated only for Delimited File sources.**\n * @summary Uploads source entitlements schema template\n * @param {SourcesApiImportEntitlementsSchemaRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof SourcesApi\n */\n SourcesApi.prototype.importEntitlementsSchema = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.SourcesApiFp)(this.configuration).importEntitlementsSchema(requestParameters.id, requestParameters.schemaName, requestParameters.file, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This end-point lists all the ProvisioningPolicies in IdentityNow. A token with API, or ORG_ADMIN authority is required to call this API.\n * @summary Lists ProvisioningPolicies\n * @param {SourcesApiListProvisioningPoliciesRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof SourcesApi\n */\n SourcesApi.prototype.listProvisioningPolicies = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.SourcesApiFp)(this.configuration).listProvisioningPolicies(requestParameters.sourceId, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * Lists the Schemas that exist on the specified Source in IdentityNow.\n * @summary List Schemas on a Source\n * @param {SourcesApiListSourceSchemasRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof SourcesApi\n */\n SourcesApi.prototype.listSourceSchemas = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.SourcesApiFp)(this.configuration).listSourceSchemas(requestParameters.sourceId, requestParameters.includeTypes, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This end-point lists all the sources in IdentityNow. A token with ORG_ADMIN, SOURCE_ADMIN, SOURCE_SUBADMIN, or ROLE_SUBADMIN authority is required to call this API.\n * @summary Lists all sources in IdentityNow.\n * @param {SourcesApiListSourcesRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof SourcesApi\n */\n SourcesApi.prototype.listSources = function (requestParameters, axiosOptions) {\n var _this = this;\n if (requestParameters === void 0) { requestParameters = {}; }\n return (0, exports.SourcesApiFp)(this.configuration).listSources(requestParameters.limit, requestParameters.offset, requestParameters.count, requestParameters.filters, requestParameters.sorters, requestParameters.forSubadmin, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This end-point updates the provisioning policy with the specified usage on the specified source in IdentityNow. Transforms can be used in the provisioning policy to create a new attribute that you only need during provisioning. Refer to [Transforms in Provisioning Policies](https://developer.sailpoint.com/idn/docs/transforms/guides/transforms-in-provisioning-policies) for more information. A token with API, ORG_ADMIN, SOURCE_ADMIN, or SOURCE_SUBADMIN authority is required to call this API.\n * @summary Update Provisioning Policy by UsageType\n * @param {SourcesApiPutProvisioningPolicyRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof SourcesApi\n */\n SourcesApi.prototype.putProvisioningPolicy = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.SourcesApiFp)(this.configuration).putProvisioningPolicy(requestParameters.sourceId, requestParameters.usageType, requestParameters.provisioningPolicyDto, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This API updates a source in IdentityNow, using a full object representation. In other words, the existing Source configuration is completely replaced. Some fields are immutable and cannot be changed, such as: * id * type * authoritative * connector * connectorClass * passwordPolicies Attempts to modify these fields will result in a 400 error. A token with ORG_ADMIN, SOURCE_ADMIN, or SOURCE_SUBADMIN authority is required to call this API.\n * @summary Update Source (Full)\n * @param {SourcesApiPutSourceRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof SourcesApi\n */\n SourcesApi.prototype.putSource = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.SourcesApiFp)(this.configuration).putSource(requestParameters.id, requestParameters.source, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This API will completely replace an existing Schema with the submitted payload. Some fields of the Schema cannot be updated. These fields are listed below. * id * name * created * modified Any attempt to modify these fields will result in an error response with a status code of 400. > `id` must remain in the request body, but it cannot be changed. If `id` is omitted from the request body, the result will be a 400 error.\n * @summary Update Source Schema (Full)\n * @param {SourcesApiPutSourceSchemaRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof SourcesApi\n */\n SourcesApi.prototype.putSourceSchema = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.SourcesApiFp)(this.configuration).putSourceSchema(requestParameters.sourceId, requestParameters.schemaId, requestParameters.schema, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This end-point updates a list of provisioning policies on the specified source in IdentityNow. A token with API, or ORG_ADMIN authority is required to call this API.\n * @summary Bulk Update Provisioning Policies\n * @param {SourcesApiUpdateProvisioningPoliciesInBulkRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof SourcesApi\n */\n SourcesApi.prototype.updateProvisioningPoliciesInBulk = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.SourcesApiFp)(this.configuration).updateProvisioningPoliciesInBulk(requestParameters.sourceId, requestParameters.provisioningPolicyDto, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This API selectively updates an existing Provisioning Policy using a JSONPatch payload. Transforms can be used in the provisioning policy to create a new attribute that you only need during provisioning. Refer to [Transforms in Provisioning Policies](https://developer.sailpoint.com/idn/docs/transforms/guides/transforms-in-provisioning-policies) for more information. A token with API, ORG_ADMIN, SOURCE_ADMIN, or SOURCE_SUBADMIN authority is required to call this API.\n * @summary Partial update of Provisioning Policy\n * @param {SourcesApiUpdateProvisioningPolicyRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof SourcesApi\n */\n SourcesApi.prototype.updateProvisioningPolicy = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.SourcesApiFp)(this.configuration).updateProvisioningPolicy(requestParameters.sourceId, requestParameters.usageType, requestParameters.jsonPatchOperation, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This API partially updates a source in IdentityNow, using a list of patch operations according to the [JSON Patch](https://tools.ietf.org/html/rfc6902) standard. Some fields are immutable and cannot be changed, such as: * id * type * authoritative * created * modified * connector * connectorClass * passwordPolicies Attempts to modify these fields will result in a 400 error. A token with ORG_ADMIN, SOURCE_ADMIN, SOURCE_SUBADMIN, or API authority is required to call this API.\n * @summary Update Source (Partial)\n * @param {SourcesApiUpdateSourceRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof SourcesApi\n */\n SourcesApi.prototype.updateSource = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.SourcesApiFp)(this.configuration).updateSource(requestParameters.id, requestParameters.jsonPatchOperation, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * Use this API to selectively update an existing Schema using a JSONPatch payload. The following schema fields are immutable and cannot be updated: - id - name - created - modified To switch an account attribute to a group entitlement, you need to have the following in place: - `isEntitlement: true` - Must define a schema for the group and [add it to the source](https://developer.sailpoint.com/idn/api/v3/create-source-schema) before updating the `isGroup` flag. For example, here is the `group` account attribute referencing a schema that defines the group: ```json { \\\"name\\\": \\\"groups\\\", \\\"type\\\": \\\"STRING\\\", \\\"schema\\\": { \\\"type\\\": \\\"CONNECTOR_SCHEMA\\\", \\\"id\\\": \\\"2c9180887671ff8c01767b4671fc7d60\\\", \\\"name\\\": \\\"group\\\" }, \\\"description\\\": \\\"The groups, roles etc. that reference account group objects\\\", \\\"isMulti\\\": true, \\\"isEntitlement\\\": true, \\\"isGroup\\\": true } ```\n * @summary Update Source Schema (Partial)\n * @param {SourcesApiUpdateSourceSchemaRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof SourcesApi\n */\n SourcesApi.prototype.updateSourceSchema = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.SourcesApiFp)(this.configuration).updateSourceSchema(requestParameters.sourceId, requestParameters.schemaId, requestParameters.jsonPatchOperation, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n return SourcesApi;\n}(base_1.BaseAPI));\nexports.SourcesApi = SourcesApi;\n/**\n * TaggedObjectsApi - axios parameter creator\n * @export\n */\nvar TaggedObjectsApiAxiosParamCreator = function (configuration) {\n var _this = this;\n return {\n /**\n * This deletes a tagged object for the specified type.\n * @summary Delete Tagged Object\n * @param {'ACCESS_PROFILE' | 'APPLICATION' | 'CAMPAIGN' | 'ENTITLEMENT' | 'IDENTITY' | 'ROLE' | 'SOD_POLICY' | 'SOURCE'} type The type of tagged object to delete.\n * @param {string} id The ID of the object reference to delete.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n deleteTaggedObject: function (type, id, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'type' is not null or undefined\n (0, common_1.assertParamExists)('deleteTaggedObject', 'type', type);\n // verify required parameter 'id' is not null or undefined\n (0, common_1.assertParamExists)('deleteTaggedObject', 'id', id);\n localVarPath = \"/tagged-objects/{type}/{id}\"\n .replace(\"{\".concat(\"type\", \"}\"), encodeURIComponent(String(type)))\n .replace(\"{\".concat(\"id\", \"}\"), encodeURIComponent(String(id)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'DELETE' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This API removes tags from multiple objects. A token with API, CERT_ADMIN, ORG_ADMIN, REPORT_ADMIN, ROLE_ADMIN, ROLE_SUBADMIN, SOURCE_ADMIN, or SOURCE_SUBADMIN authority is required to call this API.\n * @summary Remove Tags from Multiple Objects\n * @param {BulkTaggedObject} bulkTaggedObject Supported object types are ACCESS_PROFILE, APPLICATION, CAMPAIGN, ENTITLEMENT, IDENTITY, ROLE, SOD_POLICY, SOURCE.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n deleteTagsToManyObject: function (bulkTaggedObject, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'bulkTaggedObject' is not null or undefined\n (0, common_1.assertParamExists)('deleteTagsToManyObject', 'bulkTaggedObject', bulkTaggedObject);\n localVarPath = \"/tagged-objects/bulk-remove\";\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n localVarHeaderParameter['Content-Type'] = 'application/json';\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(bulkTaggedObject, localVarRequestOptions, configuration);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This gets a tagged object for the specified type.\n * @summary Get Tagged Object\n * @param {'ACCESS_PROFILE' | 'APPLICATION' | 'CAMPAIGN' | 'ENTITLEMENT' | 'IDENTITY' | 'ROLE' | 'SOD_POLICY' | 'SOURCE'} type The type of tagged object to retrieve.\n * @param {string} id The ID of the object reference to retrieve.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getTaggedObject: function (type, id, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'type' is not null or undefined\n (0, common_1.assertParamExists)('getTaggedObject', 'type', type);\n // verify required parameter 'id' is not null or undefined\n (0, common_1.assertParamExists)('getTaggedObject', 'id', id);\n localVarPath = \"/tagged-objects/{type}/{id}\"\n .replace(\"{\".concat(\"type\", \"}\"), encodeURIComponent(String(type)))\n .replace(\"{\".concat(\"id\", \"}\"), encodeURIComponent(String(id)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This API returns a list of all tagged objects. Any authenticated token may be used to call this API.\n * @summary List Tagged Objects\n * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **objectRef.id**: *eq, in* **objectRef.type**: *eq, in* **tagName**: *eq, in*\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n listTaggedObjects: function (limit, offset, count, filters, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n localVarPath = \"/tagged-objects\";\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n if (limit !== undefined) {\n localVarQueryParameter['limit'] = limit;\n }\n if (offset !== undefined) {\n localVarQueryParameter['offset'] = offset;\n }\n if (count !== undefined) {\n localVarQueryParameter['count'] = count;\n }\n if (filters !== undefined) {\n localVarQueryParameter['filters'] = filters;\n }\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This API returns a list of all tagged objects by type. Any authenticated token may be used to call this API.\n * @summary List Tagged Objects\n * @param {'ROLE' | 'IDENTITY' | 'SOD_POLICY'} type The type of tagged object to retrieve.\n * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **objectRef.id**: *eq* **objectRef.type**: *eq*\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n listTaggedObjectsByType: function (type, limit, offset, count, filters, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'type' is not null or undefined\n (0, common_1.assertParamExists)('listTaggedObjectsByType', 'type', type);\n localVarPath = \"/tagged-objects/{type}\"\n .replace(\"{\".concat(\"type\", \"}\"), encodeURIComponent(String(type)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n if (limit !== undefined) {\n localVarQueryParameter['limit'] = limit;\n }\n if (offset !== undefined) {\n localVarQueryParameter['offset'] = offset;\n }\n if (count !== undefined) {\n localVarQueryParameter['count'] = count;\n }\n if (filters !== undefined) {\n localVarQueryParameter['filters'] = filters;\n }\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This updates a tagged object for the specified type.\n * @summary Update Tagged Object\n * @param {'ACCESS_PROFILE' | 'APPLICATION' | 'CAMPAIGN' | 'ENTITLEMENT' | 'IDENTITY' | 'ROLE' | 'SOD_POLICY' | 'SOURCE'} type The type of tagged object to update.\n * @param {string} id The ID of the object reference to update.\n * @param {TaggedObject} taggedObject\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n putTaggedObject: function (type, id, taggedObject, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'type' is not null or undefined\n (0, common_1.assertParamExists)('putTaggedObject', 'type', type);\n // verify required parameter 'id' is not null or undefined\n (0, common_1.assertParamExists)('putTaggedObject', 'id', id);\n // verify required parameter 'taggedObject' is not null or undefined\n (0, common_1.assertParamExists)('putTaggedObject', 'taggedObject', taggedObject);\n localVarPath = \"/tagged-objects/{type}/{id}\"\n .replace(\"{\".concat(\"type\", \"}\"), encodeURIComponent(String(type)))\n .replace(\"{\".concat(\"id\", \"}\"), encodeURIComponent(String(id)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'PUT' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n localVarHeaderParameter['Content-Type'] = 'application/json';\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(taggedObject, localVarRequestOptions, configuration);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This adds a tag to an object. Any authenticated token may be used to call this API.\n * @summary Add Tag to Object\n * @param {TaggedObject} taggedObject\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n setTagToObject: function (taggedObject, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'taggedObject' is not null or undefined\n (0, common_1.assertParamExists)('setTagToObject', 'taggedObject', taggedObject);\n localVarPath = \"/tagged-objects\";\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n localVarHeaderParameter['Content-Type'] = 'application/json';\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(taggedObject, localVarRequestOptions, configuration);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This API adds tags to multiple objects. A token with API, CERT_ADMIN, ORG_ADMIN, REPORT_ADMIN, ROLE_ADMIN, ROLE_SUBADMIN, SOURCE_ADMIN, or SOURCE_SUBADMIN authority is required to call this API.\n * @summary Tag Multiple Objects\n * @param {BulkTaggedObject} bulkTaggedObject Supported object types are ACCESS_PROFILE, APPLICATION, CAMPAIGN, ENTITLEMENT, IDENTITY, ROLE, SOD_POLICY, SOURCE.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n setTagsToManyObjects: function (bulkTaggedObject, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'bulkTaggedObject' is not null or undefined\n (0, common_1.assertParamExists)('setTagsToManyObjects', 'bulkTaggedObject', bulkTaggedObject);\n localVarPath = \"/tagged-objects/bulk-add\";\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n localVarHeaderParameter['Content-Type'] = 'application/json';\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(bulkTaggedObject, localVarRequestOptions, configuration);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n };\n};\nexports.TaggedObjectsApiAxiosParamCreator = TaggedObjectsApiAxiosParamCreator;\n/**\n * TaggedObjectsApi - functional programming interface\n * @export\n */\nvar TaggedObjectsApiFp = function (configuration) {\n var localVarAxiosParamCreator = (0, exports.TaggedObjectsApiAxiosParamCreator)(configuration);\n return {\n /**\n * This deletes a tagged object for the specified type.\n * @summary Delete Tagged Object\n * @param {'ACCESS_PROFILE' | 'APPLICATION' | 'CAMPAIGN' | 'ENTITLEMENT' | 'IDENTITY' | 'ROLE' | 'SOD_POLICY' | 'SOURCE'} type The type of tagged object to delete.\n * @param {string} id The ID of the object reference to delete.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n deleteTaggedObject: function (type, id, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.deleteTaggedObject(type, id, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This API removes tags from multiple objects. A token with API, CERT_ADMIN, ORG_ADMIN, REPORT_ADMIN, ROLE_ADMIN, ROLE_SUBADMIN, SOURCE_ADMIN, or SOURCE_SUBADMIN authority is required to call this API.\n * @summary Remove Tags from Multiple Objects\n * @param {BulkTaggedObject} bulkTaggedObject Supported object types are ACCESS_PROFILE, APPLICATION, CAMPAIGN, ENTITLEMENT, IDENTITY, ROLE, SOD_POLICY, SOURCE.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n deleteTagsToManyObject: function (bulkTaggedObject, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.deleteTagsToManyObject(bulkTaggedObject, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This gets a tagged object for the specified type.\n * @summary Get Tagged Object\n * @param {'ACCESS_PROFILE' | 'APPLICATION' | 'CAMPAIGN' | 'ENTITLEMENT' | 'IDENTITY' | 'ROLE' | 'SOD_POLICY' | 'SOURCE'} type The type of tagged object to retrieve.\n * @param {string} id The ID of the object reference to retrieve.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getTaggedObject: function (type, id, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.getTaggedObject(type, id, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This API returns a list of all tagged objects. Any authenticated token may be used to call this API.\n * @summary List Tagged Objects\n * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **objectRef.id**: *eq, in* **objectRef.type**: *eq, in* **tagName**: *eq, in*\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n listTaggedObjects: function (limit, offset, count, filters, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.listTaggedObjects(limit, offset, count, filters, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This API returns a list of all tagged objects by type. Any authenticated token may be used to call this API.\n * @summary List Tagged Objects\n * @param {'ROLE' | 'IDENTITY' | 'SOD_POLICY'} type The type of tagged object to retrieve.\n * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **objectRef.id**: *eq* **objectRef.type**: *eq*\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n listTaggedObjectsByType: function (type, limit, offset, count, filters, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.listTaggedObjectsByType(type, limit, offset, count, filters, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This updates a tagged object for the specified type.\n * @summary Update Tagged Object\n * @param {'ACCESS_PROFILE' | 'APPLICATION' | 'CAMPAIGN' | 'ENTITLEMENT' | 'IDENTITY' | 'ROLE' | 'SOD_POLICY' | 'SOURCE'} type The type of tagged object to update.\n * @param {string} id The ID of the object reference to update.\n * @param {TaggedObject} taggedObject\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n putTaggedObject: function (type, id, taggedObject, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.putTaggedObject(type, id, taggedObject, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This adds a tag to an object. Any authenticated token may be used to call this API.\n * @summary Add Tag to Object\n * @param {TaggedObject} taggedObject\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n setTagToObject: function (taggedObject, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.setTagToObject(taggedObject, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This API adds tags to multiple objects. A token with API, CERT_ADMIN, ORG_ADMIN, REPORT_ADMIN, ROLE_ADMIN, ROLE_SUBADMIN, SOURCE_ADMIN, or SOURCE_SUBADMIN authority is required to call this API.\n * @summary Tag Multiple Objects\n * @param {BulkTaggedObject} bulkTaggedObject Supported object types are ACCESS_PROFILE, APPLICATION, CAMPAIGN, ENTITLEMENT, IDENTITY, ROLE, SOD_POLICY, SOURCE.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n setTagsToManyObjects: function (bulkTaggedObject, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.setTagsToManyObjects(bulkTaggedObject, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n };\n};\nexports.TaggedObjectsApiFp = TaggedObjectsApiFp;\n/**\n * TaggedObjectsApi - factory interface\n * @export\n */\nvar TaggedObjectsApiFactory = function (configuration, basePath, axios) {\n var localVarFp = (0, exports.TaggedObjectsApiFp)(configuration);\n return {\n /**\n * This deletes a tagged object for the specified type.\n * @summary Delete Tagged Object\n * @param {'ACCESS_PROFILE' | 'APPLICATION' | 'CAMPAIGN' | 'ENTITLEMENT' | 'IDENTITY' | 'ROLE' | 'SOD_POLICY' | 'SOURCE'} type The type of tagged object to delete.\n * @param {string} id The ID of the object reference to delete.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n deleteTaggedObject: function (type, id, axiosOptions) {\n return localVarFp.deleteTaggedObject(type, id, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This API removes tags from multiple objects. A token with API, CERT_ADMIN, ORG_ADMIN, REPORT_ADMIN, ROLE_ADMIN, ROLE_SUBADMIN, SOURCE_ADMIN, or SOURCE_SUBADMIN authority is required to call this API.\n * @summary Remove Tags from Multiple Objects\n * @param {BulkTaggedObject} bulkTaggedObject Supported object types are ACCESS_PROFILE, APPLICATION, CAMPAIGN, ENTITLEMENT, IDENTITY, ROLE, SOD_POLICY, SOURCE.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n deleteTagsToManyObject: function (bulkTaggedObject, axiosOptions) {\n return localVarFp.deleteTagsToManyObject(bulkTaggedObject, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This gets a tagged object for the specified type.\n * @summary Get Tagged Object\n * @param {'ACCESS_PROFILE' | 'APPLICATION' | 'CAMPAIGN' | 'ENTITLEMENT' | 'IDENTITY' | 'ROLE' | 'SOD_POLICY' | 'SOURCE'} type The type of tagged object to retrieve.\n * @param {string} id The ID of the object reference to retrieve.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getTaggedObject: function (type, id, axiosOptions) {\n return localVarFp.getTaggedObject(type, id, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This API returns a list of all tagged objects. Any authenticated token may be used to call this API.\n * @summary List Tagged Objects\n * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **objectRef.id**: *eq, in* **objectRef.type**: *eq, in* **tagName**: *eq, in*\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n listTaggedObjects: function (limit, offset, count, filters, axiosOptions) {\n return localVarFp.listTaggedObjects(limit, offset, count, filters, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This API returns a list of all tagged objects by type. Any authenticated token may be used to call this API.\n * @summary List Tagged Objects\n * @param {'ROLE' | 'IDENTITY' | 'SOD_POLICY'} type The type of tagged object to retrieve.\n * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **objectRef.id**: *eq* **objectRef.type**: *eq*\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n listTaggedObjectsByType: function (type, limit, offset, count, filters, axiosOptions) {\n return localVarFp.listTaggedObjectsByType(type, limit, offset, count, filters, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This updates a tagged object for the specified type.\n * @summary Update Tagged Object\n * @param {'ACCESS_PROFILE' | 'APPLICATION' | 'CAMPAIGN' | 'ENTITLEMENT' | 'IDENTITY' | 'ROLE' | 'SOD_POLICY' | 'SOURCE'} type The type of tagged object to update.\n * @param {string} id The ID of the object reference to update.\n * @param {TaggedObject} taggedObject\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n putTaggedObject: function (type, id, taggedObject, axiosOptions) {\n return localVarFp.putTaggedObject(type, id, taggedObject, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This adds a tag to an object. Any authenticated token may be used to call this API.\n * @summary Add Tag to Object\n * @param {TaggedObject} taggedObject\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n setTagToObject: function (taggedObject, axiosOptions) {\n return localVarFp.setTagToObject(taggedObject, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This API adds tags to multiple objects. A token with API, CERT_ADMIN, ORG_ADMIN, REPORT_ADMIN, ROLE_ADMIN, ROLE_SUBADMIN, SOURCE_ADMIN, or SOURCE_SUBADMIN authority is required to call this API.\n * @summary Tag Multiple Objects\n * @param {BulkTaggedObject} bulkTaggedObject Supported object types are ACCESS_PROFILE, APPLICATION, CAMPAIGN, ENTITLEMENT, IDENTITY, ROLE, SOD_POLICY, SOURCE.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n setTagsToManyObjects: function (bulkTaggedObject, axiosOptions) {\n return localVarFp.setTagsToManyObjects(bulkTaggedObject, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n };\n};\nexports.TaggedObjectsApiFactory = TaggedObjectsApiFactory;\n/**\n * TaggedObjectsApi - object-oriented interface\n * @export\n * @class TaggedObjectsApi\n * @extends {BaseAPI}\n */\nvar TaggedObjectsApi = /** @class */ (function (_super) {\n __extends(TaggedObjectsApi, _super);\n function TaggedObjectsApi() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n * This deletes a tagged object for the specified type.\n * @summary Delete Tagged Object\n * @param {TaggedObjectsApiDeleteTaggedObjectRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof TaggedObjectsApi\n */\n TaggedObjectsApi.prototype.deleteTaggedObject = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.TaggedObjectsApiFp)(this.configuration).deleteTaggedObject(requestParameters.type, requestParameters.id, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This API removes tags from multiple objects. A token with API, CERT_ADMIN, ORG_ADMIN, REPORT_ADMIN, ROLE_ADMIN, ROLE_SUBADMIN, SOURCE_ADMIN, or SOURCE_SUBADMIN authority is required to call this API.\n * @summary Remove Tags from Multiple Objects\n * @param {TaggedObjectsApiDeleteTagsToManyObjectRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof TaggedObjectsApi\n */\n TaggedObjectsApi.prototype.deleteTagsToManyObject = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.TaggedObjectsApiFp)(this.configuration).deleteTagsToManyObject(requestParameters.bulkTaggedObject, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This gets a tagged object for the specified type.\n * @summary Get Tagged Object\n * @param {TaggedObjectsApiGetTaggedObjectRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof TaggedObjectsApi\n */\n TaggedObjectsApi.prototype.getTaggedObject = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.TaggedObjectsApiFp)(this.configuration).getTaggedObject(requestParameters.type, requestParameters.id, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This API returns a list of all tagged objects. Any authenticated token may be used to call this API.\n * @summary List Tagged Objects\n * @param {TaggedObjectsApiListTaggedObjectsRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof TaggedObjectsApi\n */\n TaggedObjectsApi.prototype.listTaggedObjects = function (requestParameters, axiosOptions) {\n var _this = this;\n if (requestParameters === void 0) { requestParameters = {}; }\n return (0, exports.TaggedObjectsApiFp)(this.configuration).listTaggedObjects(requestParameters.limit, requestParameters.offset, requestParameters.count, requestParameters.filters, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This API returns a list of all tagged objects by type. Any authenticated token may be used to call this API.\n * @summary List Tagged Objects\n * @param {TaggedObjectsApiListTaggedObjectsByTypeRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof TaggedObjectsApi\n */\n TaggedObjectsApi.prototype.listTaggedObjectsByType = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.TaggedObjectsApiFp)(this.configuration).listTaggedObjectsByType(requestParameters.type, requestParameters.limit, requestParameters.offset, requestParameters.count, requestParameters.filters, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This updates a tagged object for the specified type.\n * @summary Update Tagged Object\n * @param {TaggedObjectsApiPutTaggedObjectRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof TaggedObjectsApi\n */\n TaggedObjectsApi.prototype.putTaggedObject = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.TaggedObjectsApiFp)(this.configuration).putTaggedObject(requestParameters.type, requestParameters.id, requestParameters.taggedObject, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This adds a tag to an object. Any authenticated token may be used to call this API.\n * @summary Add Tag to Object\n * @param {TaggedObjectsApiSetTagToObjectRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof TaggedObjectsApi\n */\n TaggedObjectsApi.prototype.setTagToObject = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.TaggedObjectsApiFp)(this.configuration).setTagToObject(requestParameters.taggedObject, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This API adds tags to multiple objects. A token with API, CERT_ADMIN, ORG_ADMIN, REPORT_ADMIN, ROLE_ADMIN, ROLE_SUBADMIN, SOURCE_ADMIN, or SOURCE_SUBADMIN authority is required to call this API.\n * @summary Tag Multiple Objects\n * @param {TaggedObjectsApiSetTagsToManyObjectsRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof TaggedObjectsApi\n */\n TaggedObjectsApi.prototype.setTagsToManyObjects = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.TaggedObjectsApiFp)(this.configuration).setTagsToManyObjects(requestParameters.bulkTaggedObject, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n return TaggedObjectsApi;\n}(base_1.BaseAPI));\nexports.TaggedObjectsApi = TaggedObjectsApi;\n/**\n * TransformsApi - axios parameter creator\n * @export\n */\nvar TransformsApiAxiosParamCreator = function (configuration) {\n var _this = this;\n return {\n /**\n * Creates a new transform object immediately. By default, the internal flag is set to false to indicate that this is a custom transform. Only SailPoint employees have the ability to create a transform with internal set to true. Newly created Transforms can be used in the Identity Profile mappings within the UI. A token with transform write authority is required to call this API.\n * @summary Create transform\n * @param {Transform} transform The transform to be created.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n createTransform: function (transform, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'transform' is not null or undefined\n (0, common_1.assertParamExists)('createTransform', 'transform', transform);\n localVarPath = \"/transforms\";\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n localVarHeaderParameter['Content-Type'] = 'application/json';\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(transform, localVarRequestOptions, configuration);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * Deletes the transform specified by the given ID. Attempting to delete a transform that is used in one or more Identity Profile mappings will result in an error. If this occurs, you must first remove the transform from all mappings before deleting the transform. A token with transform delete authority is required to call this API.\n * @summary Delete a transform\n * @param {string} id ID of the transform to delete\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n deleteTransform: function (id, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'id' is not null or undefined\n (0, common_1.assertParamExists)('deleteTransform', 'id', id);\n localVarPath = \"/transforms/{id}\"\n .replace(\"{\".concat(\"id\", \"}\"), encodeURIComponent(String(id)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'DELETE' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This API returns the transform specified by the given ID. A token with transform read authority is required to call this API.\n * @summary Transform by ID\n * @param {string} id ID of the transform to retrieve\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getTransform: function (id, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'id' is not null or undefined\n (0, common_1.assertParamExists)('getTransform', 'id', id);\n localVarPath = \"/transforms/{id}\"\n .replace(\"{\".concat(\"id\", \"}\"), encodeURIComponent(String(id)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * Gets a list of all saved transform objects. A token with transforms-list read authority is required to call this API.\n * @summary List transforms\n * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {string} [name] Name of the transform to retrieve from the list.\n * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **internal**: *eq* **name**: *eq, sw*\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n listTransforms: function (offset, limit, count, name, filters, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n localVarPath = \"/transforms\";\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n if (offset !== undefined) {\n localVarQueryParameter['offset'] = offset;\n }\n if (limit !== undefined) {\n localVarQueryParameter['limit'] = limit;\n }\n if (count !== undefined) {\n localVarQueryParameter['count'] = count;\n }\n if (name !== undefined) {\n localVarQueryParameter['name'] = name;\n }\n if (filters !== undefined) {\n localVarQueryParameter['filters'] = filters;\n }\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * Replaces the transform specified by the given ID with the transform provided in the request body. Only the \\\"attributes\\\" field is mutable. Attempting to change other properties (ex. \\\"name\\\" and \\\"type\\\") will result in an error. A token with transform write authority is required to call this API.\n * @summary Update a transform\n * @param {string} id ID of the transform to update\n * @param {Transform} [transform] The updated transform object. Must include \\"name\\", \\"type\\", and \\"attributes\\" fields, but \\"name\\" and \\"type\\" must not be modified.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n updateTransform: function (id, transform, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'id' is not null or undefined\n (0, common_1.assertParamExists)('updateTransform', 'id', id);\n localVarPath = \"/transforms/{id}\"\n .replace(\"{\".concat(\"id\", \"}\"), encodeURIComponent(String(id)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'PUT' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n localVarHeaderParameter['Content-Type'] = 'application/json';\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(transform, localVarRequestOptions, configuration);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n };\n};\nexports.TransformsApiAxiosParamCreator = TransformsApiAxiosParamCreator;\n/**\n * TransformsApi - functional programming interface\n * @export\n */\nvar TransformsApiFp = function (configuration) {\n var localVarAxiosParamCreator = (0, exports.TransformsApiAxiosParamCreator)(configuration);\n return {\n /**\n * Creates a new transform object immediately. By default, the internal flag is set to false to indicate that this is a custom transform. Only SailPoint employees have the ability to create a transform with internal set to true. Newly created Transforms can be used in the Identity Profile mappings within the UI. A token with transform write authority is required to call this API.\n * @summary Create transform\n * @param {Transform} transform The transform to be created.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n createTransform: function (transform, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.createTransform(transform, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * Deletes the transform specified by the given ID. Attempting to delete a transform that is used in one or more Identity Profile mappings will result in an error. If this occurs, you must first remove the transform from all mappings before deleting the transform. A token with transform delete authority is required to call this API.\n * @summary Delete a transform\n * @param {string} id ID of the transform to delete\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n deleteTransform: function (id, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.deleteTransform(id, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This API returns the transform specified by the given ID. A token with transform read authority is required to call this API.\n * @summary Transform by ID\n * @param {string} id ID of the transform to retrieve\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getTransform: function (id, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.getTransform(id, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * Gets a list of all saved transform objects. A token with transforms-list read authority is required to call this API.\n * @summary List transforms\n * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {string} [name] Name of the transform to retrieve from the list.\n * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **internal**: *eq* **name**: *eq, sw*\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n listTransforms: function (offset, limit, count, name, filters, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.listTransforms(offset, limit, count, name, filters, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * Replaces the transform specified by the given ID with the transform provided in the request body. Only the \\\"attributes\\\" field is mutable. Attempting to change other properties (ex. \\\"name\\\" and \\\"type\\\") will result in an error. A token with transform write authority is required to call this API.\n * @summary Update a transform\n * @param {string} id ID of the transform to update\n * @param {Transform} [transform] The updated transform object. Must include \\"name\\", \\"type\\", and \\"attributes\\" fields, but \\"name\\" and \\"type\\" must not be modified.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n updateTransform: function (id, transform, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.updateTransform(id, transform, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n };\n};\nexports.TransformsApiFp = TransformsApiFp;\n/**\n * TransformsApi - factory interface\n * @export\n */\nvar TransformsApiFactory = function (configuration, basePath, axios) {\n var localVarFp = (0, exports.TransformsApiFp)(configuration);\n return {\n /**\n * Creates a new transform object immediately. By default, the internal flag is set to false to indicate that this is a custom transform. Only SailPoint employees have the ability to create a transform with internal set to true. Newly created Transforms can be used in the Identity Profile mappings within the UI. A token with transform write authority is required to call this API.\n * @summary Create transform\n * @param {Transform} transform The transform to be created.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n createTransform: function (transform, axiosOptions) {\n return localVarFp.createTransform(transform, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * Deletes the transform specified by the given ID. Attempting to delete a transform that is used in one or more Identity Profile mappings will result in an error. If this occurs, you must first remove the transform from all mappings before deleting the transform. A token with transform delete authority is required to call this API.\n * @summary Delete a transform\n * @param {string} id ID of the transform to delete\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n deleteTransform: function (id, axiosOptions) {\n return localVarFp.deleteTransform(id, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This API returns the transform specified by the given ID. A token with transform read authority is required to call this API.\n * @summary Transform by ID\n * @param {string} id ID of the transform to retrieve\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getTransform: function (id, axiosOptions) {\n return localVarFp.getTransform(id, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * Gets a list of all saved transform objects. A token with transforms-list read authority is required to call this API.\n * @summary List transforms\n * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {string} [name] Name of the transform to retrieve from the list.\n * @param {string} [filters] Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **internal**: *eq* **name**: *eq, sw*\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n listTransforms: function (offset, limit, count, name, filters, axiosOptions) {\n return localVarFp.listTransforms(offset, limit, count, name, filters, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * Replaces the transform specified by the given ID with the transform provided in the request body. Only the \\\"attributes\\\" field is mutable. Attempting to change other properties (ex. \\\"name\\\" and \\\"type\\\") will result in an error. A token with transform write authority is required to call this API.\n * @summary Update a transform\n * @param {string} id ID of the transform to update\n * @param {Transform} [transform] The updated transform object. Must include \\"name\\", \\"type\\", and \\"attributes\\" fields, but \\"name\\" and \\"type\\" must not be modified.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n updateTransform: function (id, transform, axiosOptions) {\n return localVarFp.updateTransform(id, transform, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n };\n};\nexports.TransformsApiFactory = TransformsApiFactory;\n/**\n * TransformsApi - object-oriented interface\n * @export\n * @class TransformsApi\n * @extends {BaseAPI}\n */\nvar TransformsApi = /** @class */ (function (_super) {\n __extends(TransformsApi, _super);\n function TransformsApi() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n * Creates a new transform object immediately. By default, the internal flag is set to false to indicate that this is a custom transform. Only SailPoint employees have the ability to create a transform with internal set to true. Newly created Transforms can be used in the Identity Profile mappings within the UI. A token with transform write authority is required to call this API.\n * @summary Create transform\n * @param {TransformsApiCreateTransformRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof TransformsApi\n */\n TransformsApi.prototype.createTransform = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.TransformsApiFp)(this.configuration).createTransform(requestParameters.transform, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * Deletes the transform specified by the given ID. Attempting to delete a transform that is used in one or more Identity Profile mappings will result in an error. If this occurs, you must first remove the transform from all mappings before deleting the transform. A token with transform delete authority is required to call this API.\n * @summary Delete a transform\n * @param {TransformsApiDeleteTransformRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof TransformsApi\n */\n TransformsApi.prototype.deleteTransform = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.TransformsApiFp)(this.configuration).deleteTransform(requestParameters.id, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This API returns the transform specified by the given ID. A token with transform read authority is required to call this API.\n * @summary Transform by ID\n * @param {TransformsApiGetTransformRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof TransformsApi\n */\n TransformsApi.prototype.getTransform = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.TransformsApiFp)(this.configuration).getTransform(requestParameters.id, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * Gets a list of all saved transform objects. A token with transforms-list read authority is required to call this API.\n * @summary List transforms\n * @param {TransformsApiListTransformsRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof TransformsApi\n */\n TransformsApi.prototype.listTransforms = function (requestParameters, axiosOptions) {\n var _this = this;\n if (requestParameters === void 0) { requestParameters = {}; }\n return (0, exports.TransformsApiFp)(this.configuration).listTransforms(requestParameters.offset, requestParameters.limit, requestParameters.count, requestParameters.name, requestParameters.filters, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * Replaces the transform specified by the given ID with the transform provided in the request body. Only the \\\"attributes\\\" field is mutable. Attempting to change other properties (ex. \\\"name\\\" and \\\"type\\\") will result in an error. A token with transform write authority is required to call this API.\n * @summary Update a transform\n * @param {TransformsApiUpdateTransformRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof TransformsApi\n */\n TransformsApi.prototype.updateTransform = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.TransformsApiFp)(this.configuration).updateTransform(requestParameters.id, requestParameters.transform, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n return TransformsApi;\n}(base_1.BaseAPI));\nexports.TransformsApi = TransformsApi;\n/**\n * WorkItemsApi - axios parameter creator\n * @export\n */\nvar WorkItemsApiAxiosParamCreator = function (configuration) {\n var _this = this;\n return {\n /**\n * This API approves an Approval Item. Either an admin, or the owning/current user must make this request.\n * @summary Approve an Approval Item\n * @param {string} id The ID of the work item\n * @param {string} approvalItemId The ID of the approval item.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n approveApprovalItem: function (id, approvalItemId, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'id' is not null or undefined\n (0, common_1.assertParamExists)('approveApprovalItem', 'id', id);\n // verify required parameter 'approvalItemId' is not null or undefined\n (0, common_1.assertParamExists)('approveApprovalItem', 'approvalItemId', approvalItemId);\n localVarPath = \"/work-items/{id}/approve/{approvalItemId}\"\n .replace(\"{\".concat(\"id\", \"}\"), encodeURIComponent(String(id)))\n .replace(\"{\".concat(\"approvalItemId\", \"}\"), encodeURIComponent(String(approvalItemId)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This API bulk approves Approval Items. Either an admin, or the owning/current user must make this request.\n * @summary Bulk approve Approval Items\n * @param {string} id The ID of the work item\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n approveApprovalItemsInBulk: function (id, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'id' is not null or undefined\n (0, common_1.assertParamExists)('approveApprovalItemsInBulk', 'id', id);\n localVarPath = \"/work-items/bulk-approve/{id}\"\n .replace(\"{\".concat(\"id\", \"}\"), encodeURIComponent(String(id)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This API completes a work item. Either an admin, or the owning/current user must make this request.\n * @summary Complete a Work Item\n * @param {string} id The ID of the work item\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n completeWorkItem: function (id, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'id' is not null or undefined\n (0, common_1.assertParamExists)('completeWorkItem', 'id', id);\n localVarPath = \"/work-items/{id}\"\n .replace(\"{\".concat(\"id\", \"}\"), encodeURIComponent(String(id)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This gets a collection of completed work items belonging to either the specified user(admin required), or the current user.\n * @summary Completed Work Items\n * @param {string} [ownerId] The id of the owner of the work item list being requested. Either an admin, or the owning/current user must make this request.\n * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getCompletedWorkItems: function (ownerId, limit, offset, count, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n localVarPath = \"/work-items/completed\";\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n if (ownerId !== undefined) {\n localVarQueryParameter['ownerId'] = ownerId;\n }\n if (limit !== undefined) {\n localVarQueryParameter['limit'] = limit;\n }\n if (offset !== undefined) {\n localVarQueryParameter['offset'] = offset;\n }\n if (count !== undefined) {\n localVarQueryParameter['count'] = count;\n }\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This gets a count of completed work items belonging to either the specified user(admin required), or the current user.\n * @summary Count Completed Work Items\n * @param {string} [ownerId] ID of the work item owner.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getCountCompletedWorkItems: function (ownerId, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n localVarPath = \"/work-items/completed/count\";\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n if (ownerId !== undefined) {\n localVarQueryParameter['ownerId'] = ownerId;\n }\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This gets a count of work items belonging to either the specified user(admin required), or the current user.\n * @summary Count Work Items\n * @param {string} [ownerId] ID of the work item owner.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getCountWorkItems: function (ownerId, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n localVarPath = \"/work-items/count\";\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n if (ownerId !== undefined) {\n localVarQueryParameter['ownerId'] = ownerId;\n }\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This gets the details of a Work Item belonging to either the specified user(admin required), or the current user.\n * @summary Get a Work Item\n * @param {string} id ID of the work item.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getWorkItem: function (id, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'id' is not null or undefined\n (0, common_1.assertParamExists)('getWorkItem', 'id', id);\n localVarPath = \"/work-items/{id}\"\n .replace(\"{\".concat(\"id\", \"}\"), encodeURIComponent(String(id)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This gets a summary of work items belonging to either the specified user(admin required), or the current user.\n * @summary Work Items Summary\n * @param {string} [ownerId] ID of the work item owner.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getWorkItemsSummary: function (ownerId, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n localVarPath = \"/work-items/summary\";\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n if (ownerId !== undefined) {\n localVarQueryParameter['ownerId'] = ownerId;\n }\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This gets a collection of work items belonging to either the specified user(admin required), or the current user.\n * @summary List Work Items\n * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {string} [ownerId] ID of the work item owner.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n listWorkItems: function (limit, offset, count, ownerId, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n localVarPath = \"/work-items\";\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n if (limit !== undefined) {\n localVarQueryParameter['limit'] = limit;\n }\n if (offset !== undefined) {\n localVarQueryParameter['offset'] = offset;\n }\n if (count !== undefined) {\n localVarQueryParameter['count'] = count;\n }\n if (ownerId !== undefined) {\n localVarQueryParameter['ownerId'] = ownerId;\n }\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This API rejects an Approval Item. Either an admin, or the owning/current user must make this request.\n * @summary Reject an Approval Item\n * @param {string} id The ID of the work item\n * @param {string} approvalItemId The ID of the approval item.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n rejectApprovalItem: function (id, approvalItemId, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'id' is not null or undefined\n (0, common_1.assertParamExists)('rejectApprovalItem', 'id', id);\n // verify required parameter 'approvalItemId' is not null or undefined\n (0, common_1.assertParamExists)('rejectApprovalItem', 'approvalItemId', approvalItemId);\n localVarPath = \"/work-items/{id}/reject/{approvalItemId}\"\n .replace(\"{\".concat(\"id\", \"}\"), encodeURIComponent(String(id)))\n .replace(\"{\".concat(\"approvalItemId\", \"}\"), encodeURIComponent(String(approvalItemId)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This API bulk rejects Approval Items. Either an admin, or the owning/current user must make this request.\n * @summary Bulk reject Approval Items\n * @param {string} id The ID of the work item\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n rejectApprovalItemsInBulk: function (id, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'id' is not null or undefined\n (0, common_1.assertParamExists)('rejectApprovalItemsInBulk', 'id', id);\n localVarPath = \"/work-items/bulk-reject/{id}\"\n .replace(\"{\".concat(\"id\", \"}\"), encodeURIComponent(String(id)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This API submits account selections. Either an admin, or the owning/current user must make this request.\n * @summary Submit Account Selections\n * @param {string} id The ID of the work item\n * @param {{ [key: string]: any; }} requestBody Account Selection Data map, keyed on fieldName\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n submitAccountSelection: function (id, requestBody, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'id' is not null or undefined\n (0, common_1.assertParamExists)('submitAccountSelection', 'id', id);\n // verify required parameter 'requestBody' is not null or undefined\n (0, common_1.assertParamExists)('submitAccountSelection', 'requestBody', requestBody);\n localVarPath = \"/work-items/{id}/submit-account-selection\"\n .replace(\"{\".concat(\"id\", \"}\"), encodeURIComponent(String(id)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n localVarHeaderParameter['Content-Type'] = 'application/json';\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(requestBody, localVarRequestOptions, configuration);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n };\n};\nexports.WorkItemsApiAxiosParamCreator = WorkItemsApiAxiosParamCreator;\n/**\n * WorkItemsApi - functional programming interface\n * @export\n */\nvar WorkItemsApiFp = function (configuration) {\n var localVarAxiosParamCreator = (0, exports.WorkItemsApiAxiosParamCreator)(configuration);\n return {\n /**\n * This API approves an Approval Item. Either an admin, or the owning/current user must make this request.\n * @summary Approve an Approval Item\n * @param {string} id The ID of the work item\n * @param {string} approvalItemId The ID of the approval item.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n approveApprovalItem: function (id, approvalItemId, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.approveApprovalItem(id, approvalItemId, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This API bulk approves Approval Items. Either an admin, or the owning/current user must make this request.\n * @summary Bulk approve Approval Items\n * @param {string} id The ID of the work item\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n approveApprovalItemsInBulk: function (id, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.approveApprovalItemsInBulk(id, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This API completes a work item. Either an admin, or the owning/current user must make this request.\n * @summary Complete a Work Item\n * @param {string} id The ID of the work item\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n completeWorkItem: function (id, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.completeWorkItem(id, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This gets a collection of completed work items belonging to either the specified user(admin required), or the current user.\n * @summary Completed Work Items\n * @param {string} [ownerId] The id of the owner of the work item list being requested. Either an admin, or the owning/current user must make this request.\n * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getCompletedWorkItems: function (ownerId, limit, offset, count, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.getCompletedWorkItems(ownerId, limit, offset, count, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This gets a count of completed work items belonging to either the specified user(admin required), or the current user.\n * @summary Count Completed Work Items\n * @param {string} [ownerId] ID of the work item owner.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getCountCompletedWorkItems: function (ownerId, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.getCountCompletedWorkItems(ownerId, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This gets a count of work items belonging to either the specified user(admin required), or the current user.\n * @summary Count Work Items\n * @param {string} [ownerId] ID of the work item owner.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getCountWorkItems: function (ownerId, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.getCountWorkItems(ownerId, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This gets the details of a Work Item belonging to either the specified user(admin required), or the current user.\n * @summary Get a Work Item\n * @param {string} id ID of the work item.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getWorkItem: function (id, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.getWorkItem(id, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This gets a summary of work items belonging to either the specified user(admin required), or the current user.\n * @summary Work Items Summary\n * @param {string} [ownerId] ID of the work item owner.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getWorkItemsSummary: function (ownerId, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.getWorkItemsSummary(ownerId, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This gets a collection of work items belonging to either the specified user(admin required), or the current user.\n * @summary List Work Items\n * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {string} [ownerId] ID of the work item owner.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n listWorkItems: function (limit, offset, count, ownerId, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.listWorkItems(limit, offset, count, ownerId, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This API rejects an Approval Item. Either an admin, or the owning/current user must make this request.\n * @summary Reject an Approval Item\n * @param {string} id The ID of the work item\n * @param {string} approvalItemId The ID of the approval item.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n rejectApprovalItem: function (id, approvalItemId, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.rejectApprovalItem(id, approvalItemId, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This API bulk rejects Approval Items. Either an admin, or the owning/current user must make this request.\n * @summary Bulk reject Approval Items\n * @param {string} id The ID of the work item\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n rejectApprovalItemsInBulk: function (id, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.rejectApprovalItemsInBulk(id, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This API submits account selections. Either an admin, or the owning/current user must make this request.\n * @summary Submit Account Selections\n * @param {string} id The ID of the work item\n * @param {{ [key: string]: any; }} requestBody Account Selection Data map, keyed on fieldName\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n submitAccountSelection: function (id, requestBody, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.submitAccountSelection(id, requestBody, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n };\n};\nexports.WorkItemsApiFp = WorkItemsApiFp;\n/**\n * WorkItemsApi - factory interface\n * @export\n */\nvar WorkItemsApiFactory = function (configuration, basePath, axios) {\n var localVarFp = (0, exports.WorkItemsApiFp)(configuration);\n return {\n /**\n * This API approves an Approval Item. Either an admin, or the owning/current user must make this request.\n * @summary Approve an Approval Item\n * @param {string} id The ID of the work item\n * @param {string} approvalItemId The ID of the approval item.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n approveApprovalItem: function (id, approvalItemId, axiosOptions) {\n return localVarFp.approveApprovalItem(id, approvalItemId, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This API bulk approves Approval Items. Either an admin, or the owning/current user must make this request.\n * @summary Bulk approve Approval Items\n * @param {string} id The ID of the work item\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n approveApprovalItemsInBulk: function (id, axiosOptions) {\n return localVarFp.approveApprovalItemsInBulk(id, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This API completes a work item. Either an admin, or the owning/current user must make this request.\n * @summary Complete a Work Item\n * @param {string} id The ID of the work item\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n completeWorkItem: function (id, axiosOptions) {\n return localVarFp.completeWorkItem(id, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This gets a collection of completed work items belonging to either the specified user(admin required), or the current user.\n * @summary Completed Work Items\n * @param {string} [ownerId] The id of the owner of the work item list being requested. Either an admin, or the owning/current user must make this request.\n * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getCompletedWorkItems: function (ownerId, limit, offset, count, axiosOptions) {\n return localVarFp.getCompletedWorkItems(ownerId, limit, offset, count, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This gets a count of completed work items belonging to either the specified user(admin required), or the current user.\n * @summary Count Completed Work Items\n * @param {string} [ownerId] ID of the work item owner.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getCountCompletedWorkItems: function (ownerId, axiosOptions) {\n return localVarFp.getCountCompletedWorkItems(ownerId, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This gets a count of work items belonging to either the specified user(admin required), or the current user.\n * @summary Count Work Items\n * @param {string} [ownerId] ID of the work item owner.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getCountWorkItems: function (ownerId, axiosOptions) {\n return localVarFp.getCountWorkItems(ownerId, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This gets the details of a Work Item belonging to either the specified user(admin required), or the current user.\n * @summary Get a Work Item\n * @param {string} id ID of the work item.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getWorkItem: function (id, axiosOptions) {\n return localVarFp.getWorkItem(id, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This gets a summary of work items belonging to either the specified user(admin required), or the current user.\n * @summary Work Items Summary\n * @param {string} [ownerId] ID of the work item owner.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getWorkItemsSummary: function (ownerId, axiosOptions) {\n return localVarFp.getWorkItemsSummary(ownerId, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This gets a collection of work items belonging to either the specified user(admin required), or the current user.\n * @summary List Work Items\n * @param {number} [limit] Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {boolean} [count] If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.\n * @param {string} [ownerId] ID of the work item owner.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n listWorkItems: function (limit, offset, count, ownerId, axiosOptions) {\n return localVarFp.listWorkItems(limit, offset, count, ownerId, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This API rejects an Approval Item. Either an admin, or the owning/current user must make this request.\n * @summary Reject an Approval Item\n * @param {string} id The ID of the work item\n * @param {string} approvalItemId The ID of the approval item.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n rejectApprovalItem: function (id, approvalItemId, axiosOptions) {\n return localVarFp.rejectApprovalItem(id, approvalItemId, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This API bulk rejects Approval Items. Either an admin, or the owning/current user must make this request.\n * @summary Bulk reject Approval Items\n * @param {string} id The ID of the work item\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n rejectApprovalItemsInBulk: function (id, axiosOptions) {\n return localVarFp.rejectApprovalItemsInBulk(id, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This API submits account selections. Either an admin, or the owning/current user must make this request.\n * @summary Submit Account Selections\n * @param {string} id The ID of the work item\n * @param {{ [key: string]: any; }} requestBody Account Selection Data map, keyed on fieldName\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n submitAccountSelection: function (id, requestBody, axiosOptions) {\n return localVarFp.submitAccountSelection(id, requestBody, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n };\n};\nexports.WorkItemsApiFactory = WorkItemsApiFactory;\n/**\n * WorkItemsApi - object-oriented interface\n * @export\n * @class WorkItemsApi\n * @extends {BaseAPI}\n */\nvar WorkItemsApi = /** @class */ (function (_super) {\n __extends(WorkItemsApi, _super);\n function WorkItemsApi() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n * This API approves an Approval Item. Either an admin, or the owning/current user must make this request.\n * @summary Approve an Approval Item\n * @param {WorkItemsApiApproveApprovalItemRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof WorkItemsApi\n */\n WorkItemsApi.prototype.approveApprovalItem = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.WorkItemsApiFp)(this.configuration).approveApprovalItem(requestParameters.id, requestParameters.approvalItemId, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This API bulk approves Approval Items. Either an admin, or the owning/current user must make this request.\n * @summary Bulk approve Approval Items\n * @param {WorkItemsApiApproveApprovalItemsInBulkRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof WorkItemsApi\n */\n WorkItemsApi.prototype.approveApprovalItemsInBulk = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.WorkItemsApiFp)(this.configuration).approveApprovalItemsInBulk(requestParameters.id, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This API completes a work item. Either an admin, or the owning/current user must make this request.\n * @summary Complete a Work Item\n * @param {WorkItemsApiCompleteWorkItemRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof WorkItemsApi\n */\n WorkItemsApi.prototype.completeWorkItem = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.WorkItemsApiFp)(this.configuration).completeWorkItem(requestParameters.id, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This gets a collection of completed work items belonging to either the specified user(admin required), or the current user.\n * @summary Completed Work Items\n * @param {WorkItemsApiGetCompletedWorkItemsRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof WorkItemsApi\n */\n WorkItemsApi.prototype.getCompletedWorkItems = function (requestParameters, axiosOptions) {\n var _this = this;\n if (requestParameters === void 0) { requestParameters = {}; }\n return (0, exports.WorkItemsApiFp)(this.configuration).getCompletedWorkItems(requestParameters.ownerId, requestParameters.limit, requestParameters.offset, requestParameters.count, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This gets a count of completed work items belonging to either the specified user(admin required), or the current user.\n * @summary Count Completed Work Items\n * @param {WorkItemsApiGetCountCompletedWorkItemsRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof WorkItemsApi\n */\n WorkItemsApi.prototype.getCountCompletedWorkItems = function (requestParameters, axiosOptions) {\n var _this = this;\n if (requestParameters === void 0) { requestParameters = {}; }\n return (0, exports.WorkItemsApiFp)(this.configuration).getCountCompletedWorkItems(requestParameters.ownerId, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This gets a count of work items belonging to either the specified user(admin required), or the current user.\n * @summary Count Work Items\n * @param {WorkItemsApiGetCountWorkItemsRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof WorkItemsApi\n */\n WorkItemsApi.prototype.getCountWorkItems = function (requestParameters, axiosOptions) {\n var _this = this;\n if (requestParameters === void 0) { requestParameters = {}; }\n return (0, exports.WorkItemsApiFp)(this.configuration).getCountWorkItems(requestParameters.ownerId, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This gets the details of a Work Item belonging to either the specified user(admin required), or the current user.\n * @summary Get a Work Item\n * @param {WorkItemsApiGetWorkItemRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof WorkItemsApi\n */\n WorkItemsApi.prototype.getWorkItem = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.WorkItemsApiFp)(this.configuration).getWorkItem(requestParameters.id, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This gets a summary of work items belonging to either the specified user(admin required), or the current user.\n * @summary Work Items Summary\n * @param {WorkItemsApiGetWorkItemsSummaryRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof WorkItemsApi\n */\n WorkItemsApi.prototype.getWorkItemsSummary = function (requestParameters, axiosOptions) {\n var _this = this;\n if (requestParameters === void 0) { requestParameters = {}; }\n return (0, exports.WorkItemsApiFp)(this.configuration).getWorkItemsSummary(requestParameters.ownerId, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This gets a collection of work items belonging to either the specified user(admin required), or the current user.\n * @summary List Work Items\n * @param {WorkItemsApiListWorkItemsRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof WorkItemsApi\n */\n WorkItemsApi.prototype.listWorkItems = function (requestParameters, axiosOptions) {\n var _this = this;\n if (requestParameters === void 0) { requestParameters = {}; }\n return (0, exports.WorkItemsApiFp)(this.configuration).listWorkItems(requestParameters.limit, requestParameters.offset, requestParameters.count, requestParameters.ownerId, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This API rejects an Approval Item. Either an admin, or the owning/current user must make this request.\n * @summary Reject an Approval Item\n * @param {WorkItemsApiRejectApprovalItemRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof WorkItemsApi\n */\n WorkItemsApi.prototype.rejectApprovalItem = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.WorkItemsApiFp)(this.configuration).rejectApprovalItem(requestParameters.id, requestParameters.approvalItemId, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This API bulk rejects Approval Items. Either an admin, or the owning/current user must make this request.\n * @summary Bulk reject Approval Items\n * @param {WorkItemsApiRejectApprovalItemsInBulkRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof WorkItemsApi\n */\n WorkItemsApi.prototype.rejectApprovalItemsInBulk = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.WorkItemsApiFp)(this.configuration).rejectApprovalItemsInBulk(requestParameters.id, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This API submits account selections. Either an admin, or the owning/current user must make this request.\n * @summary Submit Account Selections\n * @param {WorkItemsApiSubmitAccountSelectionRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof WorkItemsApi\n */\n WorkItemsApi.prototype.submitAccountSelection = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.WorkItemsApiFp)(this.configuration).submitAccountSelection(requestParameters.id, requestParameters.requestBody, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n return WorkItemsApi;\n}(base_1.BaseAPI));\nexports.WorkItemsApi = WorkItemsApi;\n//# sourceMappingURL=api.js.map","\"use strict\";\n/* tslint:disable */\n/* eslint-disable */\n/**\n * IdentityNow V3 API\n * Use these APIs to interact with the IdentityNow platform to achieve repeatable, automated processes with greater scalability. We encourage you to join the SailPoint Developer Community forum at https://developer.sailpoint.com/discuss to connect with other developers using our APIs.\n *\n * The version of the OpenAPI document: 3.0.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Configuration = void 0;\nvar Configuration = /** @class */ (function () {\n function Configuration(param) {\n if (param === void 0) { param = {}; }\n this.apiKey = param.apiKey;\n this.username = param.username;\n this.password = param.password;\n this.accessToken = param.accessToken;\n this.basePath = param.basePath;\n this.baseOptions = param.baseOptions;\n this.formDataCtor = param.formDataCtor;\n }\n /**\n * Check if the given MIME is a JSON MIME.\n * JSON MIME examples:\n * application/json\n * application/json; charset=UTF8\n * APPLICATION/JSON\n * application/vnd.company+json\n * @param mime - MIME (Multipurpose Internet Mail Extensions)\n * @return True if the given MIME is JSON, false otherwise.\n */\n Configuration.prototype.isJsonMime = function (mime) {\n var jsonMime = new RegExp('^(application\\/json|[^;/ \\t]+\\/[^;/ \\t]+[+]json)[ \\t]*(;.*)?$', 'i');\n return mime !== null && (jsonMime.test(mime) || mime.toLowerCase() === 'application/json-patch+json');\n };\n return Configuration;\n}());\nexports.Configuration = Configuration;\n//# sourceMappingURL=configuration.js.map","\"use strict\";\n/* tslint:disable */\n/* eslint-disable */\n/**\n * SailPoint SaaS API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 2.0.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.RequiredError = exports.BaseAPI = exports.COLLECTION_FORMATS = exports.BASE_PATH = void 0;\n// Some imports not used depending on template conditions\n// @ts-ignore\nvar axios_1 = __importDefault(require(\"axios\"));\nexports.BASE_PATH = \"https://sailpoint.api.identitynow.com/v2\".replace(/\\/+$/, \"\");\n/**\n *\n * @export\n */\nexports.COLLECTION_FORMATS = {\n csv: \",\",\n ssv: \" \",\n tsv: \"\\t\",\n pipes: \"|\",\n};\n/**\n *\n * @export\n * @class BaseAPI\n */\nvar BaseAPI = /** @class */ (function () {\n function BaseAPI(configuration, basePath, axios) {\n if (basePath === void 0) { basePath = exports.BASE_PATH; }\n if (axios === void 0) { axios = axios_1.default; }\n this.basePath = basePath;\n this.axios = axios;\n if (configuration) {\n this.configuration = configuration;\n this.basePath = configuration.basePathV2 || this.basePath;\n }\n }\n return BaseAPI;\n}());\nexports.BaseAPI = BaseAPI;\n;\n/**\n *\n * @export\n * @class RequiredError\n * @extends {Error}\n */\nvar RequiredError = /** @class */ (function (_super) {\n __extends(RequiredError, _super);\n function RequiredError(field, msg) {\n var _this = _super.call(this, msg) || this;\n _this.field = field;\n _this.name = \"RequiredError\";\n return _this;\n }\n return RequiredError;\n}(Error));\nexports.RequiredError = RequiredError;\n//# sourceMappingURL=base.js.map","\"use strict\";\n/* tslint:disable */\n/* eslint-disable */\n/**\n * SailPoint SaaS API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 2.0.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.createRequestFunction = exports.toPathString = exports.serializeDataIfNeeded = exports.setSearchParams = exports.setOAuthToObject = exports.setBearerAuthToObject = exports.setBasicAuthToObject = exports.setApiKeyToObject = exports.assertParamExists = exports.DUMMY_BASE_URL = void 0;\nvar base_1 = require(\"./base\");\nvar axios_retry_1 = __importDefault(require(\"axios-retry\"));\n/**\n *\n * @export\n */\nexports.DUMMY_BASE_URL = 'https://example.com';\n/**\n *\n * @throws {RequiredError}\n * @export\n */\nvar assertParamExists = function (functionName, paramName, paramValue) {\n if (paramValue === null || paramValue === undefined) {\n throw new base_1.RequiredError(paramName, \"Required parameter \".concat(paramName, \" was null or undefined when calling \").concat(functionName, \".\"));\n }\n};\nexports.assertParamExists = assertParamExists;\n/**\n *\n * @export\n */\nvar setApiKeyToObject = function (object, keyParamName, configuration) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarApiKeyValue, _a;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n if (!(configuration && configuration.apiKey)) return [3 /*break*/, 5];\n if (!(typeof configuration.apiKey === 'function')) return [3 /*break*/, 2];\n return [4 /*yield*/, configuration.apiKey(keyParamName)];\n case 1:\n _a = _b.sent();\n return [3 /*break*/, 4];\n case 2: return [4 /*yield*/, configuration.apiKey];\n case 3:\n _a = _b.sent();\n _b.label = 4;\n case 4:\n localVarApiKeyValue = _a;\n object[keyParamName] = localVarApiKeyValue;\n _b.label = 5;\n case 5: return [2 /*return*/];\n }\n });\n });\n};\nexports.setApiKeyToObject = setApiKeyToObject;\n/**\n *\n * @export\n */\nvar setBasicAuthToObject = function (object, configuration) {\n if (configuration && (configuration.username || configuration.password)) {\n object[\"auth\"] = { username: configuration.username, password: configuration.password };\n }\n};\nexports.setBasicAuthToObject = setBasicAuthToObject;\n/**\n *\n * @export\n */\nvar setBearerAuthToObject = function (object, configuration) {\n return __awaiter(this, void 0, void 0, function () {\n var accessToken, _a;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n if (!(configuration && configuration.accessToken)) return [3 /*break*/, 5];\n if (!(typeof configuration.accessToken === 'function')) return [3 /*break*/, 2];\n return [4 /*yield*/, configuration.accessToken()];\n case 1:\n _a = _b.sent();\n return [3 /*break*/, 4];\n case 2: return [4 /*yield*/, configuration.accessToken];\n case 3:\n _a = _b.sent();\n _b.label = 4;\n case 4:\n accessToken = _a;\n object[\"Authorization\"] = \"Bearer \" + accessToken;\n _b.label = 5;\n case 5: return [2 /*return*/];\n }\n });\n });\n};\nexports.setBearerAuthToObject = setBearerAuthToObject;\n/**\n *\n * @export\n */\nvar setOAuthToObject = function (object, name, scopes, configuration) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAccessTokenValue, _a;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n if (!(configuration && configuration.accessToken)) return [3 /*break*/, 5];\n if (!(typeof configuration.accessToken === 'function')) return [3 /*break*/, 2];\n return [4 /*yield*/, configuration.accessToken(name, scopes)];\n case 1:\n _a = _b.sent();\n return [3 /*break*/, 4];\n case 2: return [4 /*yield*/, configuration.accessToken];\n case 3:\n _a = _b.sent();\n _b.label = 4;\n case 4:\n localVarAccessTokenValue = _a;\n object[\"Authorization\"] = \"Bearer \" + localVarAccessTokenValue;\n _b.label = 5;\n case 5: return [2 /*return*/];\n }\n });\n });\n};\nexports.setOAuthToObject = setOAuthToObject;\n/**\n *\n * @export\n */\nvar setSearchParams = function (url) {\n var objects = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n objects[_i - 1] = arguments[_i];\n }\n var searchParams = new URLSearchParams(url.search);\n for (var _a = 0, objects_1 = objects; _a < objects_1.length; _a++) {\n var object = objects_1[_a];\n for (var key in object) {\n if (Array.isArray(object[key])) {\n searchParams.delete(key);\n for (var _b = 0, _c = object[key]; _b < _c.length; _b++) {\n var item = _c[_b];\n searchParams.append(key, item);\n }\n }\n else {\n searchParams.set(key, object[key]);\n }\n }\n }\n url.search = searchParams.toString();\n};\nexports.setSearchParams = setSearchParams;\n/**\n *\n * @export\n */\nvar serializeDataIfNeeded = function (value, requestOptions, configuration) {\n var nonString = typeof value !== 'string';\n var needsSerialization = nonString && configuration && configuration.isJsonMime\n ? configuration.isJsonMime(requestOptions.headers['Content-Type'])\n : nonString;\n return needsSerialization\n ? JSON.stringify(value !== undefined ? value : {})\n : (value || \"\");\n};\nexports.serializeDataIfNeeded = serializeDataIfNeeded;\n/**\n *\n * @export\n */\nvar toPathString = function (url) {\n return url.pathname + url.search + url.hash;\n};\nexports.toPathString = toPathString;\n/**\n *\n * @export\n */\nvar createRequestFunction = function (axiosArgs, globalAxios, BASE_PATH, configuration) {\n return function (axios, basePath) {\n if (axios === void 0) { axios = globalAxios; }\n if (basePath === void 0) { basePath = BASE_PATH; }\n (0, axios_retry_1.default)(globalAxios, configuration.retriesConfig);\n axiosArgs.axiosOptions.headers['X-SailPoint-SDK'] = 'typescript-1.3.0';\n axiosArgs.axiosOptions.headers['User-Agent'] = 'OpenAPI-Generator/1.3.0/ts';\n var axiosRequestArgs = __assign(__assign({}, axiosArgs.axiosOptions), { url: ((configuration === null || configuration === void 0 ? void 0 : configuration.basePathV2) || basePath) + axiosArgs.url });\n return axios.request(axiosRequestArgs);\n };\n};\nexports.createRequestFunction = createRequestFunction;\n//# sourceMappingURL=common.js.map","\"use strict\";\n/* tslint:disable */\n/* eslint-disable */\n/**\n * SailPoint SaaS API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 2.0.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.OrgV2Api = exports.OrgV2ApiFactory = exports.OrgV2ApiFp = exports.OrgV2ApiAxiosParamCreator = exports.GovernanceGroupsV2Api = exports.GovernanceGroupsV2ApiFactory = exports.GovernanceGroupsV2ApiFp = exports.GovernanceGroupsV2ApiAxiosParamCreator = exports.UpdateOrgSettingsRequestV2PasswordReplayStateEnum = exports.GetOrgSettings200ResponseV2PasswordReplayStateEnum = exports.GetOrgSettings200ResponseV2StatusEnum = exports.GetOrgSettings200ResponseSystemNotificationConfigV2RecipientTypeEnum = void 0;\nvar axios_1 = __importDefault(require(\"axios\"));\n// Some imports not used depending on template conditions\n// @ts-ignore\nvar common_1 = require(\"./common\");\n// @ts-ignore\nvar base_1 = require(\"./base\");\nexports.GetOrgSettings200ResponseSystemNotificationConfigV2RecipientTypeEnum = {\n AllAdmins: 'allAdmins',\n SpecificIdentities: 'specificIdentities'\n};\nexports.GetOrgSettings200ResponseV2StatusEnum = {\n Inactive: 'inactive',\n Active: 'active',\n Demo: 'demo',\n Test: 'test'\n};\nexports.GetOrgSettings200ResponseV2PasswordReplayStateEnum = {\n Enabled: 'enabled',\n Passive: 'passive',\n Disabled: 'disabled'\n};\nexports.UpdateOrgSettingsRequestV2PasswordReplayStateEnum = {\n Enabled: 'enabled',\n Passive: 'passive',\n Disabled: 'disabled'\n};\n/**\n * GovernanceGroupsV2Api - axios parameter creator\n * @export\n */\nvar GovernanceGroupsV2ApiAxiosParamCreator = function (configuration) {\n var _this = this;\n return {\n /**\n * This API allows you to bulk-delete work groups\n * @summary Bulk delete work groups\n * @param {BulkDeleteWorkGroupsRequestV2} bulkDeleteWorkGroupsRequestV2 Work group ids to delete\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n bulkDeleteWorkGroups: function (bulkDeleteWorkGroupsRequestV2, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'bulkDeleteWorkGroupsRequestV2' is not null or undefined\n (0, common_1.assertParamExists)('bulkDeleteWorkGroups', 'bulkDeleteWorkGroupsRequestV2', bulkDeleteWorkGroupsRequestV2);\n localVarPath = \"/workgroups/bulk-delete\";\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n localVarHeaderParameter['Content-Type'] = 'application/json';\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(bulkDeleteWorkGroupsRequestV2, localVarRequestOptions, configuration);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This API allows you to create a work group\n * @summary Create Work Group\n * @param {CreateWorkgroupRequestV2} createWorkgroupRequestV2 Work group to create.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n createWorkgroup: function (createWorkgroupRequestV2, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'createWorkgroupRequestV2' is not null or undefined\n (0, common_1.assertParamExists)('createWorkgroup', 'createWorkgroupRequestV2', createWorkgroupRequestV2);\n localVarPath = \"/workgroups\";\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n localVarHeaderParameter['Content-Type'] = 'application/json';\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(createWorkgroupRequestV2, localVarRequestOptions, configuration);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This API deletes a single workgroup based on the ID\n * @summary Delete Work Group By Id\n * @param {string} workgroupId The workgroup ID\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n deleteWorkgroup: function (workgroupId, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'workgroupId' is not null or undefined\n (0, common_1.assertParamExists)('deleteWorkgroup', 'workgroupId', workgroupId);\n localVarPath = \"/workgroups/{workgroupId}\"\n .replace(\"{\".concat(\"workgroupId\", \"}\"), encodeURIComponent(String(workgroupId)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'DELETE' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This API returns the details for a single workgroup based on the ID\n * @summary Get Work Group By Id\n * @param {string} workgroupId The workgroup ID\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getWorkgroup: function (workgroupId, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'workgroupId' is not null or undefined\n (0, common_1.assertParamExists)('getWorkgroup', 'workgroupId', workgroupId);\n localVarPath = \"/workgroups/{workgroupId}\"\n .replace(\"{\".concat(\"workgroupId\", \"}\"), encodeURIComponent(String(workgroupId)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This API returns the connections of a work group\n * @summary List Work Group Connections\n * @param {string} workgroupId The workgroup ID\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n listWorkgroupConnections: function (workgroupId, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'workgroupId' is not null or undefined\n (0, common_1.assertParamExists)('listWorkgroupConnections', 'workgroupId', workgroupId);\n localVarPath = \"/workgroups/{workgroupId}/connections\"\n .replace(\"{\".concat(\"workgroupId\", \"}\"), encodeURIComponent(String(workgroupId)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This API returns the members of a work group\n * @summary List Work Group Members\n * @param {string} workgroupId The workgroup ID\n * @param {number} [limit] Max number of results to return\n * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results.\n * @param {string} [filters] Filter results using the following syntax. [{property:name, value: \\"Tyler\\", operation: EQ}]\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n listWorkgroupMembers: function (workgroupId, limit, offset, filters, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'workgroupId' is not null or undefined\n (0, common_1.assertParamExists)('listWorkgroupMembers', 'workgroupId', workgroupId);\n localVarPath = \"/workgroups/{workgroupId}/members\"\n .replace(\"{\".concat(\"workgroupId\", \"}\"), encodeURIComponent(String(workgroupId)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n if (limit !== undefined) {\n localVarQueryParameter['limit'] = limit;\n }\n if (offset !== undefined) {\n localVarQueryParameter['offset'] = offset;\n }\n if (filters !== undefined) {\n localVarQueryParameter['filters'] = filters;\n }\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This API returns a list of work groups\n * @summary List Work Groups\n * @param {number} [limit] Max number of results to return\n * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results.\n * @param {string} [filters] Filter results using the following syntax. [{property:name, value: \\"Tyler\\", operation: EQ}]\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n listWorkgroups: function (limit, offset, filters, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n localVarPath = \"/workgroups\";\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n if (limit !== undefined) {\n localVarQueryParameter['limit'] = limit;\n }\n if (offset !== undefined) {\n localVarQueryParameter['offset'] = offset;\n }\n if (filters !== undefined) {\n localVarQueryParameter['filters'] = filters;\n }\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This API allows you to modify the members of a work group\n * @summary Modify Work Group Members\n * @param {string} workgroupId The workgroup ID\n * @param {ModifyWorkgroupMembersRequestV2} modifyWorkgroupMembersRequestV2 Add/Remove workgroup member ids.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n modifyWorkgroupMembers: function (workgroupId, modifyWorkgroupMembersRequestV2, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'workgroupId' is not null or undefined\n (0, common_1.assertParamExists)('modifyWorkgroupMembers', 'workgroupId', workgroupId);\n // verify required parameter 'modifyWorkgroupMembersRequestV2' is not null or undefined\n (0, common_1.assertParamExists)('modifyWorkgroupMembers', 'modifyWorkgroupMembersRequestV2', modifyWorkgroupMembersRequestV2);\n localVarPath = \"/workgroups/{workgroupId}/members\"\n .replace(\"{\".concat(\"workgroupId\", \"}\"), encodeURIComponent(String(workgroupId)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n localVarHeaderParameter['Content-Type'] = 'application/json';\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(modifyWorkgroupMembersRequestV2, localVarRequestOptions, configuration);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * This API updates and returns the details for a single workgroup based on the ID\n * @summary Update Work Group By Id\n * @param {string} workgroupId The workgroup ID\n * @param {CreateWorkgroupRequestV2} createWorkgroupRequestV2 Work group to modify.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n updateWorkgroup: function (workgroupId, createWorkgroupRequestV2, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'workgroupId' is not null or undefined\n (0, common_1.assertParamExists)('updateWorkgroup', 'workgroupId', workgroupId);\n // verify required parameter 'createWorkgroupRequestV2' is not null or undefined\n (0, common_1.assertParamExists)('updateWorkgroup', 'createWorkgroupRequestV2', createWorkgroupRequestV2);\n localVarPath = \"/workgroups/{workgroupId}\"\n .replace(\"{\".concat(\"workgroupId\", \"}\"), encodeURIComponent(String(workgroupId)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'PATCH' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n localVarHeaderParameter['Content-Type'] = 'application/json';\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(createWorkgroupRequestV2, localVarRequestOptions, configuration);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n };\n};\nexports.GovernanceGroupsV2ApiAxiosParamCreator = GovernanceGroupsV2ApiAxiosParamCreator;\n/**\n * GovernanceGroupsV2Api - functional programming interface\n * @export\n */\nvar GovernanceGroupsV2ApiFp = function (configuration) {\n var localVarAxiosParamCreator = (0, exports.GovernanceGroupsV2ApiAxiosParamCreator)(configuration);\n return {\n /**\n * This API allows you to bulk-delete work groups\n * @summary Bulk delete work groups\n * @param {BulkDeleteWorkGroupsRequestV2} bulkDeleteWorkGroupsRequestV2 Work group ids to delete\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n bulkDeleteWorkGroups: function (bulkDeleteWorkGroupsRequestV2, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.bulkDeleteWorkGroups(bulkDeleteWorkGroupsRequestV2, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This API allows you to create a work group\n * @summary Create Work Group\n * @param {CreateWorkgroupRequestV2} createWorkgroupRequestV2 Work group to create.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n createWorkgroup: function (createWorkgroupRequestV2, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.createWorkgroup(createWorkgroupRequestV2, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This API deletes a single workgroup based on the ID\n * @summary Delete Work Group By Id\n * @param {string} workgroupId The workgroup ID\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n deleteWorkgroup: function (workgroupId, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.deleteWorkgroup(workgroupId, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This API returns the details for a single workgroup based on the ID\n * @summary Get Work Group By Id\n * @param {string} workgroupId The workgroup ID\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getWorkgroup: function (workgroupId, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.getWorkgroup(workgroupId, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This API returns the connections of a work group\n * @summary List Work Group Connections\n * @param {string} workgroupId The workgroup ID\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n listWorkgroupConnections: function (workgroupId, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.listWorkgroupConnections(workgroupId, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This API returns the members of a work group\n * @summary List Work Group Members\n * @param {string} workgroupId The workgroup ID\n * @param {number} [limit] Max number of results to return\n * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results.\n * @param {string} [filters] Filter results using the following syntax. [{property:name, value: \\"Tyler\\", operation: EQ}]\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n listWorkgroupMembers: function (workgroupId, limit, offset, filters, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.listWorkgroupMembers(workgroupId, limit, offset, filters, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This API returns a list of work groups\n * @summary List Work Groups\n * @param {number} [limit] Max number of results to return\n * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results.\n * @param {string} [filters] Filter results using the following syntax. [{property:name, value: \\"Tyler\\", operation: EQ}]\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n listWorkgroups: function (limit, offset, filters, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.listWorkgroups(limit, offset, filters, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This API allows you to modify the members of a work group\n * @summary Modify Work Group Members\n * @param {string} workgroupId The workgroup ID\n * @param {ModifyWorkgroupMembersRequestV2} modifyWorkgroupMembersRequestV2 Add/Remove workgroup member ids.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n modifyWorkgroupMembers: function (workgroupId, modifyWorkgroupMembersRequestV2, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.modifyWorkgroupMembers(workgroupId, modifyWorkgroupMembersRequestV2, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * This API updates and returns the details for a single workgroup based on the ID\n * @summary Update Work Group By Id\n * @param {string} workgroupId The workgroup ID\n * @param {CreateWorkgroupRequestV2} createWorkgroupRequestV2 Work group to modify.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n updateWorkgroup: function (workgroupId, createWorkgroupRequestV2, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.updateWorkgroup(workgroupId, createWorkgroupRequestV2, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n };\n};\nexports.GovernanceGroupsV2ApiFp = GovernanceGroupsV2ApiFp;\n/**\n * GovernanceGroupsV2Api - factory interface\n * @export\n */\nvar GovernanceGroupsV2ApiFactory = function (configuration, basePath, axios) {\n var localVarFp = (0, exports.GovernanceGroupsV2ApiFp)(configuration);\n return {\n /**\n * This API allows you to bulk-delete work groups\n * @summary Bulk delete work groups\n * @param {BulkDeleteWorkGroupsRequestV2} bulkDeleteWorkGroupsRequestV2 Work group ids to delete\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n bulkDeleteWorkGroups: function (bulkDeleteWorkGroupsRequestV2, axiosOptions) {\n return localVarFp.bulkDeleteWorkGroups(bulkDeleteWorkGroupsRequestV2, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This API allows you to create a work group\n * @summary Create Work Group\n * @param {CreateWorkgroupRequestV2} createWorkgroupRequestV2 Work group to create.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n createWorkgroup: function (createWorkgroupRequestV2, axiosOptions) {\n return localVarFp.createWorkgroup(createWorkgroupRequestV2, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This API deletes a single workgroup based on the ID\n * @summary Delete Work Group By Id\n * @param {string} workgroupId The workgroup ID\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n deleteWorkgroup: function (workgroupId, axiosOptions) {\n return localVarFp.deleteWorkgroup(workgroupId, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This API returns the details for a single workgroup based on the ID\n * @summary Get Work Group By Id\n * @param {string} workgroupId The workgroup ID\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getWorkgroup: function (workgroupId, axiosOptions) {\n return localVarFp.getWorkgroup(workgroupId, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This API returns the connections of a work group\n * @summary List Work Group Connections\n * @param {string} workgroupId The workgroup ID\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n listWorkgroupConnections: function (workgroupId, axiosOptions) {\n return localVarFp.listWorkgroupConnections(workgroupId, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This API returns the members of a work group\n * @summary List Work Group Members\n * @param {string} workgroupId The workgroup ID\n * @param {number} [limit] Max number of results to return\n * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results.\n * @param {string} [filters] Filter results using the following syntax. [{property:name, value: \\"Tyler\\", operation: EQ}]\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n listWorkgroupMembers: function (workgroupId, limit, offset, filters, axiosOptions) {\n return localVarFp.listWorkgroupMembers(workgroupId, limit, offset, filters, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This API returns a list of work groups\n * @summary List Work Groups\n * @param {number} [limit] Max number of results to return\n * @param {number} [offset] Offset into the full result set. Usually specified with *limit* to paginate through the results.\n * @param {string} [filters] Filter results using the following syntax. [{property:name, value: \\"Tyler\\", operation: EQ}]\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n listWorkgroups: function (limit, offset, filters, axiosOptions) {\n return localVarFp.listWorkgroups(limit, offset, filters, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This API allows you to modify the members of a work group\n * @summary Modify Work Group Members\n * @param {string} workgroupId The workgroup ID\n * @param {ModifyWorkgroupMembersRequestV2} modifyWorkgroupMembersRequestV2 Add/Remove workgroup member ids.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n modifyWorkgroupMembers: function (workgroupId, modifyWorkgroupMembersRequestV2, axiosOptions) {\n return localVarFp.modifyWorkgroupMembers(workgroupId, modifyWorkgroupMembersRequestV2, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * This API updates and returns the details for a single workgroup based on the ID\n * @summary Update Work Group By Id\n * @param {string} workgroupId The workgroup ID\n * @param {CreateWorkgroupRequestV2} createWorkgroupRequestV2 Work group to modify.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n updateWorkgroup: function (workgroupId, createWorkgroupRequestV2, axiosOptions) {\n return localVarFp.updateWorkgroup(workgroupId, createWorkgroupRequestV2, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n };\n};\nexports.GovernanceGroupsV2ApiFactory = GovernanceGroupsV2ApiFactory;\n/**\n * GovernanceGroupsV2Api - object-oriented interface\n * @export\n * @class GovernanceGroupsV2Api\n * @extends {BaseAPI}\n */\nvar GovernanceGroupsV2Api = /** @class */ (function (_super) {\n __extends(GovernanceGroupsV2Api, _super);\n function GovernanceGroupsV2Api() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n * This API allows you to bulk-delete work groups\n * @summary Bulk delete work groups\n * @param {GovernanceGroupsV2ApiBulkDeleteWorkGroupsRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof GovernanceGroupsV2Api\n */\n GovernanceGroupsV2Api.prototype.bulkDeleteWorkGroups = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.GovernanceGroupsV2ApiFp)(this.configuration).bulkDeleteWorkGroups(requestParameters.bulkDeleteWorkGroupsRequestV2, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This API allows you to create a work group\n * @summary Create Work Group\n * @param {GovernanceGroupsV2ApiCreateWorkgroupRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof GovernanceGroupsV2Api\n */\n GovernanceGroupsV2Api.prototype.createWorkgroup = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.GovernanceGroupsV2ApiFp)(this.configuration).createWorkgroup(requestParameters.createWorkgroupRequestV2, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This API deletes a single workgroup based on the ID\n * @summary Delete Work Group By Id\n * @param {GovernanceGroupsV2ApiDeleteWorkgroupRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof GovernanceGroupsV2Api\n */\n GovernanceGroupsV2Api.prototype.deleteWorkgroup = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.GovernanceGroupsV2ApiFp)(this.configuration).deleteWorkgroup(requestParameters.workgroupId, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This API returns the details for a single workgroup based on the ID\n * @summary Get Work Group By Id\n * @param {GovernanceGroupsV2ApiGetWorkgroupRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof GovernanceGroupsV2Api\n */\n GovernanceGroupsV2Api.prototype.getWorkgroup = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.GovernanceGroupsV2ApiFp)(this.configuration).getWorkgroup(requestParameters.workgroupId, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This API returns the connections of a work group\n * @summary List Work Group Connections\n * @param {GovernanceGroupsV2ApiListWorkgroupConnectionsRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof GovernanceGroupsV2Api\n */\n GovernanceGroupsV2Api.prototype.listWorkgroupConnections = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.GovernanceGroupsV2ApiFp)(this.configuration).listWorkgroupConnections(requestParameters.workgroupId, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This API returns the members of a work group\n * @summary List Work Group Members\n * @param {GovernanceGroupsV2ApiListWorkgroupMembersRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof GovernanceGroupsV2Api\n */\n GovernanceGroupsV2Api.prototype.listWorkgroupMembers = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.GovernanceGroupsV2ApiFp)(this.configuration).listWorkgroupMembers(requestParameters.workgroupId, requestParameters.limit, requestParameters.offset, requestParameters.filters, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This API returns a list of work groups\n * @summary List Work Groups\n * @param {GovernanceGroupsV2ApiListWorkgroupsRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof GovernanceGroupsV2Api\n */\n GovernanceGroupsV2Api.prototype.listWorkgroups = function (requestParameters, axiosOptions) {\n var _this = this;\n if (requestParameters === void 0) { requestParameters = {}; }\n return (0, exports.GovernanceGroupsV2ApiFp)(this.configuration).listWorkgroups(requestParameters.limit, requestParameters.offset, requestParameters.filters, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This API allows you to modify the members of a work group\n * @summary Modify Work Group Members\n * @param {GovernanceGroupsV2ApiModifyWorkgroupMembersRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof GovernanceGroupsV2Api\n */\n GovernanceGroupsV2Api.prototype.modifyWorkgroupMembers = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.GovernanceGroupsV2ApiFp)(this.configuration).modifyWorkgroupMembers(requestParameters.workgroupId, requestParameters.modifyWorkgroupMembersRequestV2, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * This API updates and returns the details for a single workgroup based on the ID\n * @summary Update Work Group By Id\n * @param {GovernanceGroupsV2ApiUpdateWorkgroupRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof GovernanceGroupsV2Api\n */\n GovernanceGroupsV2Api.prototype.updateWorkgroup = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.GovernanceGroupsV2ApiFp)(this.configuration).updateWorkgroup(requestParameters.workgroupId, requestParameters.createWorkgroupRequestV2, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n return GovernanceGroupsV2Api;\n}(base_1.BaseAPI));\nexports.GovernanceGroupsV2Api = GovernanceGroupsV2Api;\n/**\n * OrgV2Api - axios parameter creator\n * @export\n */\nvar OrgV2ApiAxiosParamCreator = function (configuration) {\n var _this = this;\n return {\n /**\n * Retrieves information and operational settings for your org (as determined by the URL domain).\n * @summary Retrieves your org settings.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getOrgSettings: function (axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n localVarPath = \"/org\";\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n });\n });\n },\n /**\n * Updates one or more attributes for your org.\n * @summary Updates one or more org attributes.\n * @param {UpdateOrgSettingsRequestV2} updateOrgSettingsRequestV2 Org settings to update.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n updateOrgSettings: function (updateOrgSettingsRequestV2, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n // verify required parameter 'updateOrgSettingsRequestV2' is not null or undefined\n (0, common_1.assertParamExists)('updateOrgSettings', 'updateOrgSettingsRequestV2', updateOrgSettingsRequestV2);\n localVarPath = \"/org\";\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'PATCH' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n localVarHeaderParameter['Content-Type'] = 'application/json';\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(updateOrgSettingsRequestV2, localVarRequestOptions, configuration);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n });\n });\n },\n };\n};\nexports.OrgV2ApiAxiosParamCreator = OrgV2ApiAxiosParamCreator;\n/**\n * OrgV2Api - functional programming interface\n * @export\n */\nvar OrgV2ApiFp = function (configuration) {\n var localVarAxiosParamCreator = (0, exports.OrgV2ApiAxiosParamCreator)(configuration);\n return {\n /**\n * Retrieves information and operational settings for your org (as determined by the URL domain).\n * @summary Retrieves your org settings.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getOrgSettings: function (axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.getOrgSettings(axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * Updates one or more attributes for your org.\n * @summary Updates one or more org attributes.\n * @param {UpdateOrgSettingsRequestV2} updateOrgSettingsRequestV2 Org settings to update.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n updateOrgSettings: function (updateOrgSettingsRequestV2, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.updateOrgSettings(updateOrgSettingsRequestV2, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n };\n};\nexports.OrgV2ApiFp = OrgV2ApiFp;\n/**\n * OrgV2Api - factory interface\n * @export\n */\nvar OrgV2ApiFactory = function (configuration, basePath, axios) {\n var localVarFp = (0, exports.OrgV2ApiFp)(configuration);\n return {\n /**\n * Retrieves information and operational settings for your org (as determined by the URL domain).\n * @summary Retrieves your org settings.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getOrgSettings: function (axiosOptions) {\n return localVarFp.getOrgSettings(axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * Updates one or more attributes for your org.\n * @summary Updates one or more org attributes.\n * @param {UpdateOrgSettingsRequestV2} updateOrgSettingsRequestV2 Org settings to update.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n updateOrgSettings: function (updateOrgSettingsRequestV2, axiosOptions) {\n return localVarFp.updateOrgSettings(updateOrgSettingsRequestV2, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n };\n};\nexports.OrgV2ApiFactory = OrgV2ApiFactory;\n/**\n * OrgV2Api - object-oriented interface\n * @export\n * @class OrgV2Api\n * @extends {BaseAPI}\n */\nvar OrgV2Api = /** @class */ (function (_super) {\n __extends(OrgV2Api, _super);\n function OrgV2Api() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n * Retrieves information and operational settings for your org (as determined by the URL domain).\n * @summary Retrieves your org settings.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof OrgV2Api\n */\n OrgV2Api.prototype.getOrgSettings = function (axiosOptions) {\n var _this = this;\n return (0, exports.OrgV2ApiFp)(this.configuration).getOrgSettings(axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * Updates one or more attributes for your org.\n * @summary Updates one or more org attributes.\n * @param {OrgV2ApiUpdateOrgSettingsRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof OrgV2Api\n */\n OrgV2Api.prototype.updateOrgSettings = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.OrgV2ApiFp)(this.configuration).updateOrgSettings(requestParameters.updateOrgSettingsRequestV2, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n return OrgV2Api;\n}(base_1.BaseAPI));\nexports.OrgV2Api = OrgV2Api;\n//# sourceMappingURL=api.js.map","\"use strict\";\n/* tslint:disable */\n/* eslint-disable */\n/**\n * SailPoint SaaS API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 2.0.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Configuration = void 0;\nvar Configuration = /** @class */ (function () {\n function Configuration(param) {\n if (param === void 0) { param = {}; }\n this.apiKey = param.apiKey;\n this.username = param.username;\n this.password = param.password;\n this.accessToken = param.accessToken;\n this.basePath = param.basePath;\n this.baseOptions = param.baseOptions;\n this.formDataCtor = param.formDataCtor;\n }\n /**\n * Check if the given MIME is a JSON MIME.\n * JSON MIME examples:\n * application/json\n * application/json; charset=UTF8\n * APPLICATION/JSON\n * application/vnd.company+json\n * @param mime - MIME (Multipurpose Internet Mail Extensions)\n * @return True if the given MIME is JSON, false otherwise.\n */\n Configuration.prototype.isJsonMime = function (mime) {\n var jsonMime = new RegExp('^(application\\/json|[^;/ \\t]+\\/[^;/ \\t]+[+]json)[ \\t]*(;.*)?$', 'i');\n return mime !== null && (jsonMime.test(mime) || mime.toLowerCase() === 'application/json-patch+json');\n };\n return Configuration;\n}());\nexports.Configuration = Configuration;\n//# sourceMappingURL=configuration.js.map","\"use strict\";\n/* tslint:disable */\n/* eslint-disable */\n/**\n * IdentityNow cc (private) APIs\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.RequiredError = exports.BaseAPI = exports.COLLECTION_FORMATS = exports.BASE_PATH = void 0;\n// Some imports not used depending on template conditions\n// @ts-ignore\nvar axios_1 = __importDefault(require(\"axios\"));\nexports.BASE_PATH = \"https://sailpoint.api.identitynow.com\".replace(/\\/+$/, \"\");\n/**\n *\n * @export\n */\nexports.COLLECTION_FORMATS = {\n csv: \",\",\n ssv: \" \",\n tsv: \"\\t\",\n pipes: \"|\",\n};\n/**\n *\n * @export\n * @class BaseAPI\n */\nvar BaseAPI = /** @class */ (function () {\n function BaseAPI(configuration, basePath, axios) {\n if (basePath === void 0) { basePath = exports.BASE_PATH; }\n if (axios === void 0) { axios = axios_1.default; }\n this.basePath = basePath;\n this.axios = axios;\n if (configuration) {\n this.configuration = configuration;\n this.basePath = configuration.basePathCC || this.basePath;\n }\n }\n return BaseAPI;\n}());\nexports.BaseAPI = BaseAPI;\n;\n/**\n *\n * @export\n * @class RequiredError\n * @extends {Error}\n */\nvar RequiredError = /** @class */ (function (_super) {\n __extends(RequiredError, _super);\n function RequiredError(field, msg) {\n var _this = _super.call(this, msg) || this;\n _this.field = field;\n _this.name = \"RequiredError\";\n return _this;\n }\n return RequiredError;\n}(Error));\nexports.RequiredError = RequiredError;\n//# sourceMappingURL=base.js.map","\"use strict\";\n/* tslint:disable */\n/* eslint-disable */\n/**\n * IdentityNow cc (private) APIs\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.createRequestFunction = exports.toPathString = exports.serializeDataIfNeeded = exports.setSearchParams = exports.setOAuthToObject = exports.setBearerAuthToObject = exports.setBasicAuthToObject = exports.setApiKeyToObject = exports.assertParamExists = exports.DUMMY_BASE_URL = void 0;\nvar base_1 = require(\"./base\");\nvar axios_retry_1 = __importDefault(require(\"axios-retry\"));\n/**\n *\n * @export\n */\nexports.DUMMY_BASE_URL = 'https://example.com';\n/**\n *\n * @throws {RequiredError}\n * @export\n */\nvar assertParamExists = function (functionName, paramName, paramValue) {\n if (paramValue === null || paramValue === undefined) {\n throw new base_1.RequiredError(paramName, \"Required parameter \".concat(paramName, \" was null or undefined when calling \").concat(functionName, \".\"));\n }\n};\nexports.assertParamExists = assertParamExists;\n/**\n *\n * @export\n */\nvar setApiKeyToObject = function (object, keyParamName, configuration) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarApiKeyValue, _a;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n if (!(configuration && configuration.apiKey)) return [3 /*break*/, 5];\n if (!(typeof configuration.apiKey === 'function')) return [3 /*break*/, 2];\n return [4 /*yield*/, configuration.apiKey(keyParamName)];\n case 1:\n _a = _b.sent();\n return [3 /*break*/, 4];\n case 2: return [4 /*yield*/, configuration.apiKey];\n case 3:\n _a = _b.sent();\n _b.label = 4;\n case 4:\n localVarApiKeyValue = _a;\n object[keyParamName] = localVarApiKeyValue;\n _b.label = 5;\n case 5: return [2 /*return*/];\n }\n });\n });\n};\nexports.setApiKeyToObject = setApiKeyToObject;\n/**\n *\n * @export\n */\nvar setBasicAuthToObject = function (object, configuration) {\n if (configuration && (configuration.username || configuration.password)) {\n object[\"auth\"] = { username: configuration.username, password: configuration.password };\n }\n};\nexports.setBasicAuthToObject = setBasicAuthToObject;\n/**\n *\n * @export\n */\nvar setBearerAuthToObject = function (object, configuration) {\n return __awaiter(this, void 0, void 0, function () {\n var accessToken, _a;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n if (!(configuration && configuration.accessToken)) return [3 /*break*/, 5];\n if (!(typeof configuration.accessToken === 'function')) return [3 /*break*/, 2];\n return [4 /*yield*/, configuration.accessToken()];\n case 1:\n _a = _b.sent();\n return [3 /*break*/, 4];\n case 2: return [4 /*yield*/, configuration.accessToken];\n case 3:\n _a = _b.sent();\n _b.label = 4;\n case 4:\n accessToken = _a;\n object[\"Authorization\"] = \"Bearer \" + accessToken;\n _b.label = 5;\n case 5: return [2 /*return*/];\n }\n });\n });\n};\nexports.setBearerAuthToObject = setBearerAuthToObject;\n/**\n *\n * @export\n */\nvar setOAuthToObject = function (object, name, scopes, configuration) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAccessTokenValue, _a;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n if (!(configuration && configuration.accessToken)) return [3 /*break*/, 5];\n if (!(typeof configuration.accessToken === 'function')) return [3 /*break*/, 2];\n return [4 /*yield*/, configuration.accessToken(name, scopes)];\n case 1:\n _a = _b.sent();\n return [3 /*break*/, 4];\n case 2: return [4 /*yield*/, configuration.accessToken];\n case 3:\n _a = _b.sent();\n _b.label = 4;\n case 4:\n localVarAccessTokenValue = _a;\n object[\"Authorization\"] = \"Bearer \" + localVarAccessTokenValue;\n _b.label = 5;\n case 5: return [2 /*return*/];\n }\n });\n });\n};\nexports.setOAuthToObject = setOAuthToObject;\n/**\n *\n * @export\n */\nvar setSearchParams = function (url) {\n var objects = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n objects[_i - 1] = arguments[_i];\n }\n var searchParams = new URLSearchParams(url.search);\n for (var _a = 0, objects_1 = objects; _a < objects_1.length; _a++) {\n var object = objects_1[_a];\n for (var key in object) {\n if (Array.isArray(object[key])) {\n searchParams.delete(key);\n for (var _b = 0, _c = object[key]; _b < _c.length; _b++) {\n var item = _c[_b];\n searchParams.append(key, item);\n }\n }\n else {\n searchParams.set(key, object[key]);\n }\n }\n }\n url.search = searchParams.toString();\n};\nexports.setSearchParams = setSearchParams;\n/**\n *\n * @export\n */\nvar serializeDataIfNeeded = function (value, requestOptions, configuration) {\n var nonString = typeof value !== 'string';\n var needsSerialization = nonString && configuration && configuration.isJsonMime\n ? configuration.isJsonMime(requestOptions.headers['Content-Type'])\n : nonString;\n return needsSerialization\n ? JSON.stringify(value !== undefined ? value : {})\n : (value || \"\");\n};\nexports.serializeDataIfNeeded = serializeDataIfNeeded;\n/**\n *\n * @export\n */\nvar toPathString = function (url) {\n return url.pathname + url.search + url.hash;\n};\nexports.toPathString = toPathString;\n/**\n *\n * @export\n */\nvar createRequestFunction = function (axiosArgs, globalAxios, BASE_PATH, configuration) {\n return function (axios, basePath) {\n if (axios === void 0) { axios = globalAxios; }\n if (basePath === void 0) { basePath = BASE_PATH; }\n (0, axios_retry_1.default)(globalAxios, configuration.retriesConfig);\n axiosArgs.axiosOptions.headers['X-SailPoint-SDK'] = 'typescript-1.3.0';\n axiosArgs.axiosOptions.headers['User-Agent'] = 'OpenAPI-Generator/1.3.0/ts';\n var axiosRequestArgs = __assign(__assign({}, axiosArgs.axiosOptions), { url: ((configuration === null || configuration === void 0 ? void 0 : configuration.basePathCC) || basePath) + axiosArgs.url });\n return axios.request(axiosRequestArgs);\n };\n};\nexports.createRequestFunction = createRequestFunction;\n//# sourceMappingURL=common.js.map","\"use strict\";\n/* tslint:disable */\n/* eslint-disable */\n/**\n * IdentityNow cc (private) APIs\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.UserCCApi = exports.UserCCApiFactory = exports.UserCCApiFp = exports.UserCCApiAxiosParamCreator = exports.SystemCCApi = exports.SystemCCApiFactory = exports.SystemCCApiFp = exports.SystemCCApiAxiosParamCreator = exports.SourcesAggregationCCApi = exports.SourcesAggregationCCApiFactory = exports.SourcesAggregationCCApiFp = exports.SourcesAggregationCCApiAxiosParamCreator = exports.SourcesAccountsCCApi = exports.SourcesAccountsCCApiFactory = exports.SourcesAccountsCCApiFp = exports.SourcesAccountsCCApiAxiosParamCreator = exports.ConnectorsCCApi = exports.ConnectorsCCApiFactory = exports.ConnectorsCCApiFp = exports.ConnectorsCCApiAxiosParamCreator = exports.ApplicationsCCApi = exports.ApplicationsCCApiFactory = exports.ApplicationsCCApiFp = exports.ApplicationsCCApiAxiosParamCreator = exports.AccountsCCApi = exports.AccountsCCApiFactory = exports.AccountsCCApiFp = exports.AccountsCCApiAxiosParamCreator = exports.UpdateUserPermissionsRequestCCAdminTypeEnum = void 0;\nvar axios_1 = __importDefault(require(\"axios\"));\n// Some imports not used depending on template conditions\n// @ts-ignore\nvar common_1 = require(\"./common\");\n// @ts-ignore\nvar base_1 = require(\"./base\");\nexports.UpdateUserPermissionsRequestCCAdminTypeEnum = {\n Admin: 'ADMIN',\n CertAdmin: 'CERT_ADMIN',\n Helpdesk: 'HELPDESK',\n ReportAdmin: 'REPORT_ADMIN',\n RoleAdmin: 'ROLE_ADMIN',\n RoleSubadmin: 'ROLE_SUBADMIN',\n SourceAdmin: 'SOURCE_ADMIN',\n SourceSubadmin: 'SOURCE_SUBADMIN'\n};\n/**\n * AccountsCCApi - axios parameter creator\n * @export\n */\nvar AccountsCCApiAxiosParamCreator = function (configuration) {\n var _this = this;\n return {\n /**\n *\n * @summary List Accounts\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n listAccounts: function (axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n localVarPath = \"/cc/api/account/list\";\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n *\n * @summary Remove Account\n * @param {string} id\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n removeAccount: function (id, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'id' is not null or undefined\n (0, common_1.assertParamExists)('removeAccount', 'id', id);\n localVarPath = \"/cc/api/account/remove/{id}\"\n .replace(\"{\".concat(\"id\", \"}\"), encodeURIComponent(String(id)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n };\n};\nexports.AccountsCCApiAxiosParamCreator = AccountsCCApiAxiosParamCreator;\n/**\n * AccountsCCApi - functional programming interface\n * @export\n */\nvar AccountsCCApiFp = function (configuration) {\n var localVarAxiosParamCreator = (0, exports.AccountsCCApiAxiosParamCreator)(configuration);\n return {\n /**\n *\n * @summary List Accounts\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n listAccounts: function (axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.listAccounts(axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n *\n * @summary Remove Account\n * @param {string} id\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n removeAccount: function (id, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.removeAccount(id, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n };\n};\nexports.AccountsCCApiFp = AccountsCCApiFp;\n/**\n * AccountsCCApi - factory interface\n * @export\n */\nvar AccountsCCApiFactory = function (configuration, basePath, axios) {\n var localVarFp = (0, exports.AccountsCCApiFp)(configuration);\n return {\n /**\n *\n * @summary List Accounts\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n listAccounts: function (axiosOptions) {\n return localVarFp.listAccounts(axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n *\n * @summary Remove Account\n * @param {string} id\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n removeAccount: function (id, axiosOptions) {\n return localVarFp.removeAccount(id, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n };\n};\nexports.AccountsCCApiFactory = AccountsCCApiFactory;\n/**\n * AccountsCCApi - object-oriented interface\n * @export\n * @class AccountsCCApi\n * @extends {BaseAPI}\n */\nvar AccountsCCApi = /** @class */ (function (_super) {\n __extends(AccountsCCApi, _super);\n function AccountsCCApi() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n *\n * @summary List Accounts\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof AccountsCCApi\n */\n AccountsCCApi.prototype.listAccounts = function (axiosOptions) {\n var _this = this;\n return (0, exports.AccountsCCApiFp)(this.configuration).listAccounts(axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n *\n * @summary Remove Account\n * @param {AccountsCCApiRemoveAccountRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof AccountsCCApi\n */\n AccountsCCApi.prototype.removeAccount = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.AccountsCCApiFp)(this.configuration).removeAccount(requestParameters.id, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n return AccountsCCApi;\n}(base_1.BaseAPI));\nexports.AccountsCCApi = AccountsCCApi;\n/**\n * ApplicationsCCApi - axios parameter creator\n * @export\n */\nvar ApplicationsCCApiAxiosParamCreator = function (configuration) {\n var _this = this;\n return {\n /**\n *\n * @summary Create Application\n * @param {CreateApplicationRequestCC} [createApplicationRequestCC]\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n createApplication: function (createApplicationRequestCC, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n localVarPath = \"/cc/api/app/create\";\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n localVarHeaderParameter['Content-Type'] = 'application/json';\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(createApplicationRequestCC, localVarRequestOptions, configuration);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n *\n * @summary Delete Application\n * @param {string} id\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n deleteApplication: function (id, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'id' is not null or undefined\n (0, common_1.assertParamExists)('deleteApplication', 'id', id);\n localVarPath = \"/cc/api/app/delete/{id}\"\n .replace(\"{\".concat(\"id\", \"}\"), encodeURIComponent(String(id)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n *\n * @summary Get Single Application\n * @param {string} id\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getApplication: function (id, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'id' is not null or undefined\n (0, common_1.assertParamExists)('getApplication', 'id', id);\n localVarPath = \"/cc/api/app/get/{id}\"\n .replace(\"{\".concat(\"id\", \"}\"), encodeURIComponent(String(id)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n *\n * @summary Get Access Profiles for Application\n * @param {string} id\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getApplicationAccessProfiles: function (id, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n // verify required parameter 'id' is not null or undefined\n (0, common_1.assertParamExists)('getApplicationAccessProfiles', 'id', id);\n localVarPath = \"/cc/api/app/getAccessProfiles/{id}\"\n .replace(\"{\".concat(\"id\", \"}\"), encodeURIComponent(String(id)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n });\n });\n },\n /**\n *\n * @summary List Applications\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n listApplications: function (axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n localVarPath = \"/cc/api/app/list\";\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n *\n * @summary Update Application\n * @param {string} id\n * @param {{ [key: string]: any; }} [requestBody]\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n updateApplication: function (id, requestBody, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'id' is not null or undefined\n (0, common_1.assertParamExists)('updateApplication', 'id', id);\n localVarPath = \"/cc/api/app/update/{id}\"\n .replace(\"{\".concat(\"id\", \"}\"), encodeURIComponent(String(id)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n localVarHeaderParameter['Content-Type'] = 'application/json';\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(requestBody, localVarRequestOptions, configuration);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n };\n};\nexports.ApplicationsCCApiAxiosParamCreator = ApplicationsCCApiAxiosParamCreator;\n/**\n * ApplicationsCCApi - functional programming interface\n * @export\n */\nvar ApplicationsCCApiFp = function (configuration) {\n var localVarAxiosParamCreator = (0, exports.ApplicationsCCApiAxiosParamCreator)(configuration);\n return {\n /**\n *\n * @summary Create Application\n * @param {CreateApplicationRequestCC} [createApplicationRequestCC]\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n createApplication: function (createApplicationRequestCC, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.createApplication(createApplicationRequestCC, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n *\n * @summary Delete Application\n * @param {string} id\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n deleteApplication: function (id, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.deleteApplication(id, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n *\n * @summary Get Single Application\n * @param {string} id\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getApplication: function (id, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.getApplication(id, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n *\n * @summary Get Access Profiles for Application\n * @param {string} id\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getApplicationAccessProfiles: function (id, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.getApplicationAccessProfiles(id, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n *\n * @summary List Applications\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n listApplications: function (axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.listApplications(axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n *\n * @summary Update Application\n * @param {string} id\n * @param {{ [key: string]: any; }} [requestBody]\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n updateApplication: function (id, requestBody, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.updateApplication(id, requestBody, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n };\n};\nexports.ApplicationsCCApiFp = ApplicationsCCApiFp;\n/**\n * ApplicationsCCApi - factory interface\n * @export\n */\nvar ApplicationsCCApiFactory = function (configuration, basePath, axios) {\n var localVarFp = (0, exports.ApplicationsCCApiFp)(configuration);\n return {\n /**\n *\n * @summary Create Application\n * @param {CreateApplicationRequestCC} [createApplicationRequestCC]\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n createApplication: function (createApplicationRequestCC, axiosOptions) {\n return localVarFp.createApplication(createApplicationRequestCC, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n *\n * @summary Delete Application\n * @param {string} id\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n deleteApplication: function (id, axiosOptions) {\n return localVarFp.deleteApplication(id, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n *\n * @summary Get Single Application\n * @param {string} id\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getApplication: function (id, axiosOptions) {\n return localVarFp.getApplication(id, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n *\n * @summary Get Access Profiles for Application\n * @param {string} id\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getApplicationAccessProfiles: function (id, axiosOptions) {\n return localVarFp.getApplicationAccessProfiles(id, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n *\n * @summary List Applications\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n listApplications: function (axiosOptions) {\n return localVarFp.listApplications(axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n *\n * @summary Update Application\n * @param {string} id\n * @param {{ [key: string]: any; }} [requestBody]\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n updateApplication: function (id, requestBody, axiosOptions) {\n return localVarFp.updateApplication(id, requestBody, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n };\n};\nexports.ApplicationsCCApiFactory = ApplicationsCCApiFactory;\n/**\n * ApplicationsCCApi - object-oriented interface\n * @export\n * @class ApplicationsCCApi\n * @extends {BaseAPI}\n */\nvar ApplicationsCCApi = /** @class */ (function (_super) {\n __extends(ApplicationsCCApi, _super);\n function ApplicationsCCApi() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n *\n * @summary Create Application\n * @param {ApplicationsCCApiCreateApplicationRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof ApplicationsCCApi\n */\n ApplicationsCCApi.prototype.createApplication = function (requestParameters, axiosOptions) {\n var _this = this;\n if (requestParameters === void 0) { requestParameters = {}; }\n return (0, exports.ApplicationsCCApiFp)(this.configuration).createApplication(requestParameters.createApplicationRequestCC, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n *\n * @summary Delete Application\n * @param {ApplicationsCCApiDeleteApplicationRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof ApplicationsCCApi\n */\n ApplicationsCCApi.prototype.deleteApplication = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.ApplicationsCCApiFp)(this.configuration).deleteApplication(requestParameters.id, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n *\n * @summary Get Single Application\n * @param {ApplicationsCCApiGetApplicationRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof ApplicationsCCApi\n */\n ApplicationsCCApi.prototype.getApplication = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.ApplicationsCCApiFp)(this.configuration).getApplication(requestParameters.id, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n *\n * @summary Get Access Profiles for Application\n * @param {ApplicationsCCApiGetApplicationAccessProfilesRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof ApplicationsCCApi\n */\n ApplicationsCCApi.prototype.getApplicationAccessProfiles = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.ApplicationsCCApiFp)(this.configuration).getApplicationAccessProfiles(requestParameters.id, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n *\n * @summary List Applications\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof ApplicationsCCApi\n */\n ApplicationsCCApi.prototype.listApplications = function (axiosOptions) {\n var _this = this;\n return (0, exports.ApplicationsCCApiFp)(this.configuration).listApplications(axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n *\n * @summary Update Application\n * @param {ApplicationsCCApiUpdateApplicationRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof ApplicationsCCApi\n */\n ApplicationsCCApi.prototype.updateApplication = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.ApplicationsCCApiFp)(this.configuration).updateApplication(requestParameters.id, requestParameters.requestBody, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n return ApplicationsCCApi;\n}(base_1.BaseAPI));\nexports.ApplicationsCCApi = ApplicationsCCApi;\n/**\n * ConnectorsCCApi - axios parameter creator\n * @export\n */\nvar ConnectorsCCApiAxiosParamCreator = function (configuration) {\n var _this = this;\n return {\n /**\n *\n * @summary Create Connector\n * @param {string} [contentType]\n * @param {string} [name]\n * @param {string} [description]\n * @param {string} [className]\n * @param {boolean} [directConnect]\n * @param {string} [status]\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n createConnector: function (contentType, name, description, className, directConnect, status, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, localVarFormParams, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n localVarPath = \"/cc/api/connector/create\";\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n localVarFormParams = new URLSearchParams();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n if (contentType !== undefined && contentType !== null) {\n localVarHeaderParameter['Content-Type'] = String(contentType);\n }\n if (name !== undefined) {\n localVarFormParams.set('name', name);\n }\n if (description !== undefined) {\n localVarFormParams.set('description', description);\n }\n if (className !== undefined) {\n localVarFormParams.set('className', className);\n }\n if (directConnect !== undefined) {\n localVarFormParams.set('directConnect', directConnect);\n }\n if (status !== undefined) {\n localVarFormParams.set('status', status);\n }\n localVarHeaderParameter['Content-Type'] = 'application/x-www-form-urlencoded';\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n localVarRequestOptions.data = localVarFormParams.toString();\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n *\n * @summary Delete Connector\n * @param {string} id\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n deleteConnector: function (id, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'id' is not null or undefined\n (0, common_1.assertParamExists)('deleteConnector', 'id', id);\n localVarPath = \"/cc/api/connector/delete/{id}\"\n .replace(\"{\".concat(\"id\", \"}\"), encodeURIComponent(String(id)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n *\n * @summary Export Connector Config\n * @param {string} id\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n exportConnectorConfig: function (id, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'id' is not null or undefined\n (0, common_1.assertParamExists)('exportConnectorConfig', 'id', id);\n localVarPath = \"/cc/api/connector/export/{id}\"\n .replace(\"{\".concat(\"id\", \"}\"), encodeURIComponent(String(id)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n *\n * @summary Import Connector Config\n * @param {string} id\n * @param {any} [file] This is the connector config zip bundle which gets uploaded.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n importConnectorConfig: function (id, file, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, localVarFormParams, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'id' is not null or undefined\n (0, common_1.assertParamExists)('importConnectorConfig', 'id', id);\n localVarPath = \"/cc/api/connector/import/{id}\"\n .replace(\"{\".concat(\"id\", \"}\"), encodeURIComponent(String(id)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n localVarFormParams = new ((configuration && configuration.formDataCtor) || FormData)();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n if (file !== undefined) {\n localVarFormParams.append('file', file);\n }\n localVarHeaderParameter['Content-Type'] = 'multipart/form-data';\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n localVarRequestOptions.data = localVarFormParams;\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n *\n * @summary List Connectors\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n listConnectors: function (axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n localVarPath = \"/cc/api/connector/list\";\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n };\n};\nexports.ConnectorsCCApiAxiosParamCreator = ConnectorsCCApiAxiosParamCreator;\n/**\n * ConnectorsCCApi - functional programming interface\n * @export\n */\nvar ConnectorsCCApiFp = function (configuration) {\n var localVarAxiosParamCreator = (0, exports.ConnectorsCCApiAxiosParamCreator)(configuration);\n return {\n /**\n *\n * @summary Create Connector\n * @param {string} [contentType]\n * @param {string} [name]\n * @param {string} [description]\n * @param {string} [className]\n * @param {boolean} [directConnect]\n * @param {string} [status]\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n createConnector: function (contentType, name, description, className, directConnect, status, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.createConnector(contentType, name, description, className, directConnect, status, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n *\n * @summary Delete Connector\n * @param {string} id\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n deleteConnector: function (id, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.deleteConnector(id, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n *\n * @summary Export Connector Config\n * @param {string} id\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n exportConnectorConfig: function (id, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.exportConnectorConfig(id, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n *\n * @summary Import Connector Config\n * @param {string} id\n * @param {any} [file] This is the connector config zip bundle which gets uploaded.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n importConnectorConfig: function (id, file, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.importConnectorConfig(id, file, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n *\n * @summary List Connectors\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n listConnectors: function (axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.listConnectors(axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n };\n};\nexports.ConnectorsCCApiFp = ConnectorsCCApiFp;\n/**\n * ConnectorsCCApi - factory interface\n * @export\n */\nvar ConnectorsCCApiFactory = function (configuration, basePath, axios) {\n var localVarFp = (0, exports.ConnectorsCCApiFp)(configuration);\n return {\n /**\n *\n * @summary Create Connector\n * @param {string} [contentType]\n * @param {string} [name]\n * @param {string} [description]\n * @param {string} [className]\n * @param {boolean} [directConnect]\n * @param {string} [status]\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n createConnector: function (contentType, name, description, className, directConnect, status, axiosOptions) {\n return localVarFp.createConnector(contentType, name, description, className, directConnect, status, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n *\n * @summary Delete Connector\n * @param {string} id\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n deleteConnector: function (id, axiosOptions) {\n return localVarFp.deleteConnector(id, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n *\n * @summary Export Connector Config\n * @param {string} id\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n exportConnectorConfig: function (id, axiosOptions) {\n return localVarFp.exportConnectorConfig(id, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n *\n * @summary Import Connector Config\n * @param {string} id\n * @param {any} [file] This is the connector config zip bundle which gets uploaded.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n importConnectorConfig: function (id, file, axiosOptions) {\n return localVarFp.importConnectorConfig(id, file, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n *\n * @summary List Connectors\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n listConnectors: function (axiosOptions) {\n return localVarFp.listConnectors(axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n };\n};\nexports.ConnectorsCCApiFactory = ConnectorsCCApiFactory;\n/**\n * ConnectorsCCApi - object-oriented interface\n * @export\n * @class ConnectorsCCApi\n * @extends {BaseAPI}\n */\nvar ConnectorsCCApi = /** @class */ (function (_super) {\n __extends(ConnectorsCCApi, _super);\n function ConnectorsCCApi() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n *\n * @summary Create Connector\n * @param {ConnectorsCCApiCreateConnectorRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof ConnectorsCCApi\n */\n ConnectorsCCApi.prototype.createConnector = function (requestParameters, axiosOptions) {\n var _this = this;\n if (requestParameters === void 0) { requestParameters = {}; }\n return (0, exports.ConnectorsCCApiFp)(this.configuration).createConnector(requestParameters.contentType, requestParameters.name, requestParameters.description, requestParameters.className, requestParameters.directConnect, requestParameters.status, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n *\n * @summary Delete Connector\n * @param {ConnectorsCCApiDeleteConnectorRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof ConnectorsCCApi\n */\n ConnectorsCCApi.prototype.deleteConnector = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.ConnectorsCCApiFp)(this.configuration).deleteConnector(requestParameters.id, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n *\n * @summary Export Connector Config\n * @param {ConnectorsCCApiExportConnectorConfigRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof ConnectorsCCApi\n */\n ConnectorsCCApi.prototype.exportConnectorConfig = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.ConnectorsCCApiFp)(this.configuration).exportConnectorConfig(requestParameters.id, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n *\n * @summary Import Connector Config\n * @param {ConnectorsCCApiImportConnectorConfigRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof ConnectorsCCApi\n */\n ConnectorsCCApi.prototype.importConnectorConfig = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.ConnectorsCCApiFp)(this.configuration).importConnectorConfig(requestParameters.id, requestParameters.file, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n *\n * @summary List Connectors\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof ConnectorsCCApi\n */\n ConnectorsCCApi.prototype.listConnectors = function (axiosOptions) {\n var _this = this;\n return (0, exports.ConnectorsCCApiFp)(this.configuration).listConnectors(axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n return ConnectorsCCApi;\n}(base_1.BaseAPI));\nexports.ConnectorsCCApi = ConnectorsCCApi;\n/**\n * SourcesAccountsCCApi - axios parameter creator\n * @export\n */\nvar SourcesAccountsCCApiAxiosParamCreator = function (configuration) {\n var _this = this;\n return {\n /**\n * Exports a CSV of the accounts for a particular source.\n * @summary Export Account Feed\n * @param {string} id\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n exportAccountFeed: function (id, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'id' is not null or undefined\n (0, common_1.assertParamExists)('exportAccountFeed', 'id', id);\n localVarPath = \"/cc/api/source/exportAccountFeed/{id}\"\n .replace(\"{\".concat(\"id\", \"}\"), encodeURIComponent(String(id)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n };\n};\nexports.SourcesAccountsCCApiAxiosParamCreator = SourcesAccountsCCApiAxiosParamCreator;\n/**\n * SourcesAccountsCCApi - functional programming interface\n * @export\n */\nvar SourcesAccountsCCApiFp = function (configuration) {\n var localVarAxiosParamCreator = (0, exports.SourcesAccountsCCApiAxiosParamCreator)(configuration);\n return {\n /**\n * Exports a CSV of the accounts for a particular source.\n * @summary Export Account Feed\n * @param {string} id\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n exportAccountFeed: function (id, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.exportAccountFeed(id, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n };\n};\nexports.SourcesAccountsCCApiFp = SourcesAccountsCCApiFp;\n/**\n * SourcesAccountsCCApi - factory interface\n * @export\n */\nvar SourcesAccountsCCApiFactory = function (configuration, basePath, axios) {\n var localVarFp = (0, exports.SourcesAccountsCCApiFp)(configuration);\n return {\n /**\n * Exports a CSV of the accounts for a particular source.\n * @summary Export Account Feed\n * @param {string} id\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n exportAccountFeed: function (id, axiosOptions) {\n return localVarFp.exportAccountFeed(id, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n };\n};\nexports.SourcesAccountsCCApiFactory = SourcesAccountsCCApiFactory;\n/**\n * SourcesAccountsCCApi - object-oriented interface\n * @export\n * @class SourcesAccountsCCApi\n * @extends {BaseAPI}\n */\nvar SourcesAccountsCCApi = /** @class */ (function (_super) {\n __extends(SourcesAccountsCCApi, _super);\n function SourcesAccountsCCApi() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n * Exports a CSV of the accounts for a particular source.\n * @summary Export Account Feed\n * @param {SourcesAccountsCCApiExportAccountFeedRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof SourcesAccountsCCApi\n */\n SourcesAccountsCCApi.prototype.exportAccountFeed = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.SourcesAccountsCCApiFp)(this.configuration).exportAccountFeed(requestParameters.id, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n return SourcesAccountsCCApi;\n}(base_1.BaseAPI));\nexports.SourcesAccountsCCApi = SourcesAccountsCCApi;\n/**\n * SourcesAggregationCCApi - axios parameter creator\n * @export\n */\nvar SourcesAggregationCCApiAxiosParamCreator = function (configuration) {\n var _this = this;\n return {\n /**\n * Aggregates a delimited file for the given source. This only works for file-based sources.\n * @summary Account Aggregation (File)\n * @param {string} id\n * @param {string} [contentType]\n * @param {boolean} [disableOptimization]\n * @param {any} [file]\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n loadAccounts: function (id, contentType, disableOptimization, file, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, localVarFormParams, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'id' is not null or undefined\n (0, common_1.assertParamExists)('loadAccounts', 'id', id);\n localVarPath = \"/cc/api/source/loadAccounts/{id}\"\n .replace(\"{\".concat(\"id\", \"}\"), encodeURIComponent(String(id)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n localVarFormParams = new ((configuration && configuration.formDataCtor) || FormData)();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n if (contentType !== undefined && contentType !== null) {\n localVarHeaderParameter['Content-Type'] = String(contentType);\n }\n if (disableOptimization !== undefined) {\n localVarFormParams.append('disableOptimization', disableOptimization);\n }\n if (file !== undefined) {\n localVarFormParams.append('file', file);\n }\n localVarHeaderParameter['Content-Type'] = 'multipart/form-data';\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n localVarRequestOptions.data = localVarFormParams;\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n * Aggregates a delimited file for the given source. This only works for file-based sources.\n * @summary Account Aggregation (File)\n * @param {string} id\n * @param {string} [contentType]\n * @param {any} [file]\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n loadEntitlements: function (id, contentType, file, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, localVarFormParams, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'id' is not null or undefined\n (0, common_1.assertParamExists)('loadEntitlements', 'id', id);\n localVarPath = \"/cc/api/source/loadEntitlements/{id}\"\n .replace(\"{\".concat(\"id\", \"}\"), encodeURIComponent(String(id)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n localVarFormParams = new ((configuration && configuration.formDataCtor) || FormData)();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n if (contentType !== undefined && contentType !== null) {\n localVarHeaderParameter['Content-Type'] = String(contentType);\n }\n if (file !== undefined) {\n localVarFormParams.append('file', file);\n }\n localVarHeaderParameter['Content-Type'] = 'multipart/form-data';\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n localVarRequestOptions.data = localVarFormParams;\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n };\n};\nexports.SourcesAggregationCCApiAxiosParamCreator = SourcesAggregationCCApiAxiosParamCreator;\n/**\n * SourcesAggregationCCApi - functional programming interface\n * @export\n */\nvar SourcesAggregationCCApiFp = function (configuration) {\n var localVarAxiosParamCreator = (0, exports.SourcesAggregationCCApiAxiosParamCreator)(configuration);\n return {\n /**\n * Aggregates a delimited file for the given source. This only works for file-based sources.\n * @summary Account Aggregation (File)\n * @param {string} id\n * @param {string} [contentType]\n * @param {boolean} [disableOptimization]\n * @param {any} [file]\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n loadAccounts: function (id, contentType, disableOptimization, file, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.loadAccounts(id, contentType, disableOptimization, file, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n * Aggregates a delimited file for the given source. This only works for file-based sources.\n * @summary Account Aggregation (File)\n * @param {string} id\n * @param {string} [contentType]\n * @param {any} [file]\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n loadEntitlements: function (id, contentType, file, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.loadEntitlements(id, contentType, file, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n };\n};\nexports.SourcesAggregationCCApiFp = SourcesAggregationCCApiFp;\n/**\n * SourcesAggregationCCApi - factory interface\n * @export\n */\nvar SourcesAggregationCCApiFactory = function (configuration, basePath, axios) {\n var localVarFp = (0, exports.SourcesAggregationCCApiFp)(configuration);\n return {\n /**\n * Aggregates a delimited file for the given source. This only works for file-based sources.\n * @summary Account Aggregation (File)\n * @param {string} id\n * @param {string} [contentType]\n * @param {boolean} [disableOptimization]\n * @param {any} [file]\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n loadAccounts: function (id, contentType, disableOptimization, file, axiosOptions) {\n return localVarFp.loadAccounts(id, contentType, disableOptimization, file, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n * Aggregates a delimited file for the given source. This only works for file-based sources.\n * @summary Account Aggregation (File)\n * @param {string} id\n * @param {string} [contentType]\n * @param {any} [file]\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n loadEntitlements: function (id, contentType, file, axiosOptions) {\n return localVarFp.loadEntitlements(id, contentType, file, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n };\n};\nexports.SourcesAggregationCCApiFactory = SourcesAggregationCCApiFactory;\n/**\n * SourcesAggregationCCApi - object-oriented interface\n * @export\n * @class SourcesAggregationCCApi\n * @extends {BaseAPI}\n */\nvar SourcesAggregationCCApi = /** @class */ (function (_super) {\n __extends(SourcesAggregationCCApi, _super);\n function SourcesAggregationCCApi() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n * Aggregates a delimited file for the given source. This only works for file-based sources.\n * @summary Account Aggregation (File)\n * @param {SourcesAggregationCCApiLoadAccountsRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof SourcesAggregationCCApi\n */\n SourcesAggregationCCApi.prototype.loadAccounts = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.SourcesAggregationCCApiFp)(this.configuration).loadAccounts(requestParameters.id, requestParameters.contentType, requestParameters.disableOptimization, requestParameters.file, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n * Aggregates a delimited file for the given source. This only works for file-based sources.\n * @summary Account Aggregation (File)\n * @param {SourcesAggregationCCApiLoadEntitlementsRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof SourcesAggregationCCApi\n */\n SourcesAggregationCCApi.prototype.loadEntitlements = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.SourcesAggregationCCApiFp)(this.configuration).loadEntitlements(requestParameters.id, requestParameters.contentType, requestParameters.file, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n return SourcesAggregationCCApi;\n}(base_1.BaseAPI));\nexports.SourcesAggregationCCApi = SourcesAggregationCCApi;\n/**\n * SystemCCApi - axios parameter creator\n * @export\n */\nvar SystemCCApiAxiosParamCreator = function (configuration) {\n var _this = this;\n return {\n /**\n * This kicks off an identity refresh for a specified set of identity attributes. This can be a long running process. IdentityNow has pre-scheduled versions of this task at set intervals and events already, so only run this when directed by SailPoint. _Note: If the identities specified by the filter do not exist, a full identity refresh will be run. Use with caution._ Refresh Arguments: | Key | Description | |-----------------------|----------------------------------------------------| | correlateEntitlements | Analyzes entitlements, access profiles, and roles. | | promoteAttributes | Calculates identity attributes. | | refreshManagerStatus | Calculates manager correlation and manager status. | | synchronizeAttributes | Performs attribute sync provisioning. | | pruneIdentities | Removes any identities which don\\'t have accounts. | | provision | Provisions any assigned roles or access profiles. |\n * @summary Refresh Identities\n * @param {string} [contentType]\n * @param {RefreshIdentitiesRequestCC} [refreshIdentitiesRequestCC]\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n refreshIdentities: function (contentType, refreshIdentitiesRequestCC, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n localVarPath = \"/cc/api/system/refreshIdentities\";\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n if (contentType !== undefined && contentType !== null) {\n localVarHeaderParameter['Content-Type'] = String(contentType);\n }\n localVarHeaderParameter['Content-Type'] = 'application/json';\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(refreshIdentitiesRequestCC, localVarRequestOptions, configuration);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n };\n};\nexports.SystemCCApiAxiosParamCreator = SystemCCApiAxiosParamCreator;\n/**\n * SystemCCApi - functional programming interface\n * @export\n */\nvar SystemCCApiFp = function (configuration) {\n var localVarAxiosParamCreator = (0, exports.SystemCCApiAxiosParamCreator)(configuration);\n return {\n /**\n * This kicks off an identity refresh for a specified set of identity attributes. This can be a long running process. IdentityNow has pre-scheduled versions of this task at set intervals and events already, so only run this when directed by SailPoint. _Note: If the identities specified by the filter do not exist, a full identity refresh will be run. Use with caution._ Refresh Arguments: | Key | Description | |-----------------------|----------------------------------------------------| | correlateEntitlements | Analyzes entitlements, access profiles, and roles. | | promoteAttributes | Calculates identity attributes. | | refreshManagerStatus | Calculates manager correlation and manager status. | | synchronizeAttributes | Performs attribute sync provisioning. | | pruneIdentities | Removes any identities which don\\'t have accounts. | | provision | Provisions any assigned roles or access profiles. |\n * @summary Refresh Identities\n * @param {string} [contentType]\n * @param {RefreshIdentitiesRequestCC} [refreshIdentitiesRequestCC]\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n refreshIdentities: function (contentType, refreshIdentitiesRequestCC, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.refreshIdentities(contentType, refreshIdentitiesRequestCC, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n };\n};\nexports.SystemCCApiFp = SystemCCApiFp;\n/**\n * SystemCCApi - factory interface\n * @export\n */\nvar SystemCCApiFactory = function (configuration, basePath, axios) {\n var localVarFp = (0, exports.SystemCCApiFp)(configuration);\n return {\n /**\n * This kicks off an identity refresh for a specified set of identity attributes. This can be a long running process. IdentityNow has pre-scheduled versions of this task at set intervals and events already, so only run this when directed by SailPoint. _Note: If the identities specified by the filter do not exist, a full identity refresh will be run. Use with caution._ Refresh Arguments: | Key | Description | |-----------------------|----------------------------------------------------| | correlateEntitlements | Analyzes entitlements, access profiles, and roles. | | promoteAttributes | Calculates identity attributes. | | refreshManagerStatus | Calculates manager correlation and manager status. | | synchronizeAttributes | Performs attribute sync provisioning. | | pruneIdentities | Removes any identities which don\\'t have accounts. | | provision | Provisions any assigned roles or access profiles. |\n * @summary Refresh Identities\n * @param {string} [contentType]\n * @param {RefreshIdentitiesRequestCC} [refreshIdentitiesRequestCC]\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n refreshIdentities: function (contentType, refreshIdentitiesRequestCC, axiosOptions) {\n return localVarFp.refreshIdentities(contentType, refreshIdentitiesRequestCC, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n };\n};\nexports.SystemCCApiFactory = SystemCCApiFactory;\n/**\n * SystemCCApi - object-oriented interface\n * @export\n * @class SystemCCApi\n * @extends {BaseAPI}\n */\nvar SystemCCApi = /** @class */ (function (_super) {\n __extends(SystemCCApi, _super);\n function SystemCCApi() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n * This kicks off an identity refresh for a specified set of identity attributes. This can be a long running process. IdentityNow has pre-scheduled versions of this task at set intervals and events already, so only run this when directed by SailPoint. _Note: If the identities specified by the filter do not exist, a full identity refresh will be run. Use with caution._ Refresh Arguments: | Key | Description | |-----------------------|----------------------------------------------------| | correlateEntitlements | Analyzes entitlements, access profiles, and roles. | | promoteAttributes | Calculates identity attributes. | | refreshManagerStatus | Calculates manager correlation and manager status. | | synchronizeAttributes | Performs attribute sync provisioning. | | pruneIdentities | Removes any identities which don\\'t have accounts. | | provision | Provisions any assigned roles or access profiles. |\n * @summary Refresh Identities\n * @param {SystemCCApiRefreshIdentitiesRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof SystemCCApi\n */\n SystemCCApi.prototype.refreshIdentities = function (requestParameters, axiosOptions) {\n var _this = this;\n if (requestParameters === void 0) { requestParameters = {}; }\n return (0, exports.SystemCCApiFp)(this.configuration).refreshIdentities(requestParameters.contentType, requestParameters.refreshIdentitiesRequestCC, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n return SystemCCApi;\n}(base_1.BaseAPI));\nexports.SystemCCApi = SystemCCApi;\n/**\n * UserCCApi - axios parameter creator\n * @export\n */\nvar UserCCApiAxiosParamCreator = function (configuration) {\n var _this = this;\n return {\n /**\n *\n * @summary Get Single Identity\n * @param {string} id\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getIdentity: function (id, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // verify required parameter 'id' is not null or undefined\n (0, common_1.assertParamExists)('getIdentity', 'id', id);\n localVarPath = \"/cc/api/user/get/{id}\"\n .replace(\"{\".concat(\"id\", \"}\"), encodeURIComponent(String(id)));\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n /**\n *\n * @summary Update User Permissions\n * @param {UpdateUserPermissionsRequestCC} [updateUserPermissionsRequestCC]\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n updateUserPermissions: function (updateUserPermissionsRequestCC, axiosOptions) {\n if (axiosOptions === void 0) { axiosOptions = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n localVarPath = \"/cc/api/user/updatePermissions\";\n localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), axiosOptions);\n localVarHeaderParameter = {};\n localVarQueryParameter = {};\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)\n // authentication UserContextAuth required\n // oauth required\n ];\n case 1:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n // authentication UserContextAuth required\n // oauth required\n return [4 /*yield*/, (0, common_1.setOAuthToObject)(localVarHeaderParameter, \"UserContextAuth\", [], configuration)];\n case 2:\n // authentication UserContextAuth required\n // oauth required\n _a.sent();\n localVarHeaderParameter['Content-Type'] = 'application/json';\n (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);\n headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), axiosOptions.headers);\n localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(updateUserPermissionsRequestCC, localVarRequestOptions, configuration);\n return [2 /*return*/, {\n url: (0, common_1.toPathString)(localVarUrlObj),\n axiosOptions: localVarRequestOptions,\n }];\n }\n });\n });\n },\n };\n};\nexports.UserCCApiAxiosParamCreator = UserCCApiAxiosParamCreator;\n/**\n * UserCCApi - functional programming interface\n * @export\n */\nvar UserCCApiFp = function (configuration) {\n var localVarAxiosParamCreator = (0, exports.UserCCApiAxiosParamCreator)(configuration);\n return {\n /**\n *\n * @summary Get Single Identity\n * @param {string} id\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getIdentity: function (id, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.getIdentity(id, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n /**\n *\n * @summary Update User Permissions\n * @param {UpdateUserPermissionsRequestCC} [updateUserPermissionsRequestCC]\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n updateUserPermissions: function (updateUserPermissionsRequestCC, axiosOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var localVarAxiosArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, localVarAxiosParamCreator.updateUserPermissions(updateUserPermissionsRequestCC, axiosOptions)];\n case 1:\n localVarAxiosArgs = _a.sent();\n return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];\n }\n });\n });\n },\n };\n};\nexports.UserCCApiFp = UserCCApiFp;\n/**\n * UserCCApi - factory interface\n * @export\n */\nvar UserCCApiFactory = function (configuration, basePath, axios) {\n var localVarFp = (0, exports.UserCCApiFp)(configuration);\n return {\n /**\n *\n * @summary Get Single Identity\n * @param {string} id\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n getIdentity: function (id, axiosOptions) {\n return localVarFp.getIdentity(id, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n /**\n *\n * @summary Update User Permissions\n * @param {UpdateUserPermissionsRequestCC} [updateUserPermissionsRequestCC]\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n */\n updateUserPermissions: function (updateUserPermissionsRequestCC, axiosOptions) {\n return localVarFp.updateUserPermissions(updateUserPermissionsRequestCC, axiosOptions).then(function (request) { return request(axios, basePath); });\n },\n };\n};\nexports.UserCCApiFactory = UserCCApiFactory;\n/**\n * UserCCApi - object-oriented interface\n * @export\n * @class UserCCApi\n * @extends {BaseAPI}\n */\nvar UserCCApi = /** @class */ (function (_super) {\n __extends(UserCCApi, _super);\n function UserCCApi() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n *\n * @summary Get Single Identity\n * @param {UserCCApiGetIdentityRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof UserCCApi\n */\n UserCCApi.prototype.getIdentity = function (requestParameters, axiosOptions) {\n var _this = this;\n return (0, exports.UserCCApiFp)(this.configuration).getIdentity(requestParameters.id, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n /**\n *\n * @summary Update User Permissions\n * @param {UserCCApiUpdateUserPermissionsRequest} requestParameters Request parameters.\n * @param {*} [axiosOptions] Override http request option.\n * @throws {RequiredError}\n * @memberof UserCCApi\n */\n UserCCApi.prototype.updateUserPermissions = function (requestParameters, axiosOptions) {\n var _this = this;\n if (requestParameters === void 0) { requestParameters = {}; }\n return (0, exports.UserCCApiFp)(this.configuration).updateUserPermissions(requestParameters.updateUserPermissionsRequestCC, axiosOptions).then(function (request) { return request(_this.axios, _this.basePath); });\n };\n return UserCCApi;\n}(base_1.BaseAPI));\nexports.UserCCApi = UserCCApi;\n//# sourceMappingURL=api.js.map","\"use strict\";\n/* tslint:disable */\n/* eslint-disable */\n/**\n * IdentityNow cc (private) APIs\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Configuration = void 0;\nvar Configuration = /** @class */ (function () {\n function Configuration(param) {\n if (param === void 0) { param = {}; }\n this.apiKey = param.apiKey;\n this.username = param.username;\n this.password = param.password;\n this.accessToken = param.accessToken;\n this.basePath = param.basePath;\n this.baseOptions = param.baseOptions;\n this.formDataCtor = param.formDataCtor;\n }\n /**\n * Check if the given MIME is a JSON MIME.\n * JSON MIME examples:\n * application/json\n * application/json; charset=UTF8\n * APPLICATION/JSON\n * application/vnd.company+json\n * @param mime - MIME (Multipurpose Internet Mail Extensions)\n * @return True if the given MIME is JSON, false otherwise.\n */\n Configuration.prototype.isJsonMime = function (mime) {\n var jsonMime = new RegExp('^(application\\/json|[^;/ \\t]+\\/[^;/ \\t]+[+]json)[ \\t]*(;.*)?$', 'i');\n return mime !== null && (jsonMime.test(mime) || mime.toLowerCase() === 'application/json-patch+json');\n };\n return Configuration;\n}());\nexports.Configuration = Configuration;\n//# sourceMappingURL=configuration.js.map","'use strict';\n\n\nfunction isNothing(subject) {\n return (typeof subject === 'undefined') || (subject === null);\n}\n\n\nfunction isObject(subject) {\n return (typeof subject === 'object') && (subject !== null);\n}\n\n\nfunction toArray(sequence) {\n if (Array.isArray(sequence)) return sequence;\n else if (isNothing(sequence)) return [];\n\n return [ sequence ];\n}\n\n\nfunction extend(target, source) {\n var index, length, key, sourceKeys;\n\n if (source) {\n sourceKeys = Object.keys(source);\n\n for (index = 0, length = sourceKeys.length; index < length; index += 1) {\n key = sourceKeys[index];\n target[key] = source[key];\n }\n }\n\n return target;\n}\n\n\nfunction repeat(string, count) {\n var result = '', cycle;\n\n for (cycle = 0; cycle < count; cycle += 1) {\n result += string;\n }\n\n return result;\n}\n\n\nfunction isNegativeZero(number) {\n return (number === 0) && (Number.NEGATIVE_INFINITY === 1 / number);\n}\n\n\nmodule.exports.isNothing = isNothing;\nmodule.exports.isObject = isObject;\nmodule.exports.toArray = toArray;\nmodule.exports.repeat = repeat;\nmodule.exports.isNegativeZero = isNegativeZero;\nmodule.exports.extend = extend;\n","// YAML error class. http://stackoverflow.com/questions/8458984\n//\n'use strict';\n\n\nfunction formatError(exception, compact) {\n var where = '', message = exception.reason || '(unknown reason)';\n\n if (!exception.mark) return message;\n\n if (exception.mark.name) {\n where += 'in \"' + exception.mark.name + '\" ';\n }\n\n where += '(' + (exception.mark.line + 1) + ':' + (exception.mark.column + 1) + ')';\n\n if (!compact && exception.mark.snippet) {\n where += '\\n\\n' + exception.mark.snippet;\n }\n\n return message + ' ' + where;\n}\n\n\nfunction YAMLException(reason, mark) {\n // Super constructor\n Error.call(this);\n\n this.name = 'YAMLException';\n this.reason = reason;\n this.mark = mark;\n this.message = formatError(this, false);\n\n // Include stack trace in error object\n if (Error.captureStackTrace) {\n // Chrome and NodeJS\n Error.captureStackTrace(this, this.constructor);\n } else {\n // FF, IE 10+ and Safari 6+. Fallback for others\n this.stack = (new Error()).stack || '';\n }\n}\n\n\n// Inherit from Error\nYAMLException.prototype = Object.create(Error.prototype);\nYAMLException.prototype.constructor = YAMLException;\n\n\nYAMLException.prototype.toString = function toString(compact) {\n return this.name + ': ' + formatError(this, compact);\n};\n\n\nmodule.exports = YAMLException;\n","'use strict';\n\n\nvar common = require('./common');\n\n\n// get snippet for a single line, respecting maxLength\nfunction getLine(buffer, lineStart, lineEnd, position, maxLineLength) {\n var head = '';\n var tail = '';\n var maxHalfLength = Math.floor(maxLineLength / 2) - 1;\n\n if (position - lineStart > maxHalfLength) {\n head = ' ... ';\n lineStart = position - maxHalfLength + head.length;\n }\n\n if (lineEnd - position > maxHalfLength) {\n tail = ' ...';\n lineEnd = position + maxHalfLength - tail.length;\n }\n\n return {\n str: head + buffer.slice(lineStart, lineEnd).replace(/\\t/g, '→') + tail,\n pos: position - lineStart + head.length // relative position\n };\n}\n\n\nfunction padStart(string, max) {\n return common.repeat(' ', max - string.length) + string;\n}\n\n\nfunction makeSnippet(mark, options) {\n options = Object.create(options || null);\n\n if (!mark.buffer) return null;\n\n if (!options.maxLength) options.maxLength = 79;\n if (typeof options.indent !== 'number') options.indent = 1;\n if (typeof options.linesBefore !== 'number') options.linesBefore = 3;\n if (typeof options.linesAfter !== 'number') options.linesAfter = 2;\n\n var re = /\\r?\\n|\\r|\\0/g;\n var lineStarts = [ 0 ];\n var lineEnds = [];\n var match;\n var foundLineNo = -1;\n\n while ((match = re.exec(mark.buffer))) {\n lineEnds.push(match.index);\n lineStarts.push(match.index + match[0].length);\n\n if (mark.position <= match.index && foundLineNo < 0) {\n foundLineNo = lineStarts.length - 2;\n }\n }\n\n if (foundLineNo < 0) foundLineNo = lineStarts.length - 1;\n\n var result = '', i, line;\n var lineNoLength = Math.min(mark.line + options.linesAfter, lineEnds.length).toString().length;\n var maxLineLength = options.maxLength - (options.indent + lineNoLength + 3);\n\n for (i = 1; i <= options.linesBefore; i++) {\n if (foundLineNo - i < 0) break;\n line = getLine(\n mark.buffer,\n lineStarts[foundLineNo - i],\n lineEnds[foundLineNo - i],\n mark.position - (lineStarts[foundLineNo] - lineStarts[foundLineNo - i]),\n maxLineLength\n );\n result = common.repeat(' ', options.indent) + padStart((mark.line - i + 1).toString(), lineNoLength) +\n ' | ' + line.str + '\\n' + result;\n }\n\n line = getLine(mark.buffer, lineStarts[foundLineNo], lineEnds[foundLineNo], mark.position, maxLineLength);\n result += common.repeat(' ', options.indent) + padStart((mark.line + 1).toString(), lineNoLength) +\n ' | ' + line.str + '\\n';\n result += common.repeat('-', options.indent + lineNoLength + 3 + line.pos) + '^' + '\\n';\n\n for (i = 1; i <= options.linesAfter; i++) {\n if (foundLineNo + i >= lineEnds.length) break;\n line = getLine(\n mark.buffer,\n lineStarts[foundLineNo + i],\n lineEnds[foundLineNo + i],\n mark.position - (lineStarts[foundLineNo] - lineStarts[foundLineNo + i]),\n maxLineLength\n );\n result += common.repeat(' ', options.indent) + padStart((mark.line + i + 1).toString(), lineNoLength) +\n ' | ' + line.str + '\\n';\n }\n\n return result.replace(/\\n$/, '');\n}\n\n\nmodule.exports = makeSnippet;\n","'use strict';\n\nvar YAMLException = require('./exception');\n\nvar TYPE_CONSTRUCTOR_OPTIONS = [\n 'kind',\n 'multi',\n 'resolve',\n 'construct',\n 'instanceOf',\n 'predicate',\n 'represent',\n 'representName',\n 'defaultStyle',\n 'styleAliases'\n];\n\nvar YAML_NODE_KINDS = [\n 'scalar',\n 'sequence',\n 'mapping'\n];\n\nfunction compileStyleAliases(map) {\n var result = {};\n\n if (map !== null) {\n Object.keys(map).forEach(function (style) {\n map[style].forEach(function (alias) {\n result[String(alias)] = style;\n });\n });\n }\n\n return result;\n}\n\nfunction Type(tag, options) {\n options = options || {};\n\n Object.keys(options).forEach(function (name) {\n if (TYPE_CONSTRUCTOR_OPTIONS.indexOf(name) === -1) {\n throw new YAMLException('Unknown option \"' + name + '\" is met in definition of \"' + tag + '\" YAML type.');\n }\n });\n\n // TODO: Add tag format check.\n this.options = options; // keep original options in case user wants to extend this type later\n this.tag = tag;\n this.kind = options['kind'] || null;\n this.resolve = options['resolve'] || function () { return true; };\n this.construct = options['construct'] || function (data) { return data; };\n this.instanceOf = options['instanceOf'] || null;\n this.predicate = options['predicate'] || null;\n this.represent = options['represent'] || null;\n this.representName = options['representName'] || null;\n this.defaultStyle = options['defaultStyle'] || null;\n this.multi = options['multi'] || false;\n this.styleAliases = compileStyleAliases(options['styleAliases'] || null);\n\n if (YAML_NODE_KINDS.indexOf(this.kind) === -1) {\n throw new YAMLException('Unknown kind \"' + this.kind + '\" is specified for \"' + tag + '\" YAML type.');\n }\n}\n\nmodule.exports = Type;\n","'use strict';\n\n/*eslint-disable max-len*/\n\nvar YAMLException = require('./exception');\nvar Type = require('./type');\n\n\nfunction compileList(schema, name) {\n var result = [];\n\n schema[name].forEach(function (currentType) {\n var newIndex = result.length;\n\n result.forEach(function (previousType, previousIndex) {\n if (previousType.tag === currentType.tag &&\n previousType.kind === currentType.kind &&\n previousType.multi === currentType.multi) {\n\n newIndex = previousIndex;\n }\n });\n\n result[newIndex] = currentType;\n });\n\n return result;\n}\n\n\nfunction compileMap(/* lists... */) {\n var result = {\n scalar: {},\n sequence: {},\n mapping: {},\n fallback: {},\n multi: {\n scalar: [],\n sequence: [],\n mapping: [],\n fallback: []\n }\n }, index, length;\n\n function collectType(type) {\n if (type.multi) {\n result.multi[type.kind].push(type);\n result.multi['fallback'].push(type);\n } else {\n result[type.kind][type.tag] = result['fallback'][type.tag] = type;\n }\n }\n\n for (index = 0, length = arguments.length; index < length; index += 1) {\n arguments[index].forEach(collectType);\n }\n return result;\n}\n\n\nfunction Schema(definition) {\n return this.extend(definition);\n}\n\n\nSchema.prototype.extend = function extend(definition) {\n var implicit = [];\n var explicit = [];\n\n if (definition instanceof Type) {\n // Schema.extend(type)\n explicit.push(definition);\n\n } else if (Array.isArray(definition)) {\n // Schema.extend([ type1, type2, ... ])\n explicit = explicit.concat(definition);\n\n } else if (definition && (Array.isArray(definition.implicit) || Array.isArray(definition.explicit))) {\n // Schema.extend({ explicit: [ type1, type2, ... ], implicit: [ type1, type2, ... ] })\n if (definition.implicit) implicit = implicit.concat(definition.implicit);\n if (definition.explicit) explicit = explicit.concat(definition.explicit);\n\n } else {\n throw new YAMLException('Schema.extend argument should be a Type, [ Type ], ' +\n 'or a schema definition ({ implicit: [...], explicit: [...] })');\n }\n\n implicit.forEach(function (type) {\n if (!(type instanceof Type)) {\n throw new YAMLException('Specified list of YAML types (or a single Type object) contains a non-Type object.');\n }\n\n if (type.loadKind && type.loadKind !== 'scalar') {\n throw new YAMLException('There is a non-scalar type in the implicit list of a schema. Implicit resolving of such types is not supported.');\n }\n\n if (type.multi) {\n throw new YAMLException('There is a multi type in the implicit list of a schema. Multi tags can only be listed as explicit.');\n }\n });\n\n explicit.forEach(function (type) {\n if (!(type instanceof Type)) {\n throw new YAMLException('Specified list of YAML types (or a single Type object) contains a non-Type object.');\n }\n });\n\n var result = Object.create(Schema.prototype);\n\n result.implicit = (this.implicit || []).concat(implicit);\n result.explicit = (this.explicit || []).concat(explicit);\n\n result.compiledImplicit = compileList(result, 'implicit');\n result.compiledExplicit = compileList(result, 'explicit');\n result.compiledTypeMap = compileMap(result.compiledImplicit, result.compiledExplicit);\n\n return result;\n};\n\n\nmodule.exports = Schema;\n","'use strict';\n\nvar Type = require('../type');\n\nmodule.exports = new Type('tag:yaml.org,2002:str', {\n kind: 'scalar',\n construct: function (data) { return data !== null ? data : ''; }\n});\n","'use strict';\n\nvar Type = require('../type');\n\nmodule.exports = new Type('tag:yaml.org,2002:seq', {\n kind: 'sequence',\n construct: function (data) { return data !== null ? data : []; }\n});\n","'use strict';\n\nvar Type = require('../type');\n\nmodule.exports = new Type('tag:yaml.org,2002:map', {\n kind: 'mapping',\n construct: function (data) { return data !== null ? data : {}; }\n});\n","// Standard YAML's Failsafe schema.\n// http://www.yaml.org/spec/1.2/spec.html#id2802346\n\n\n'use strict';\n\n\nvar Schema = require('../schema');\n\n\nmodule.exports = new Schema({\n explicit: [\n require('../type/str'),\n require('../type/seq'),\n require('../type/map')\n ]\n});\n","'use strict';\n\nvar Type = require('../type');\n\nfunction resolveYamlNull(data) {\n if (data === null) return true;\n\n var max = data.length;\n\n return (max === 1 && data === '~') ||\n (max === 4 && (data === 'null' || data === 'Null' || data === 'NULL'));\n}\n\nfunction constructYamlNull() {\n return null;\n}\n\nfunction isNull(object) {\n return object === null;\n}\n\nmodule.exports = new Type('tag:yaml.org,2002:null', {\n kind: 'scalar',\n resolve: resolveYamlNull,\n construct: constructYamlNull,\n predicate: isNull,\n represent: {\n canonical: function () { return '~'; },\n lowercase: function () { return 'null'; },\n uppercase: function () { return 'NULL'; },\n camelcase: function () { return 'Null'; },\n empty: function () { return ''; }\n },\n defaultStyle: 'lowercase'\n});\n","'use strict';\n\nvar Type = require('../type');\n\nfunction resolveYamlBoolean(data) {\n if (data === null) return false;\n\n var max = data.length;\n\n return (max === 4 && (data === 'true' || data === 'True' || data === 'TRUE')) ||\n (max === 5 && (data === 'false' || data === 'False' || data === 'FALSE'));\n}\n\nfunction constructYamlBoolean(data) {\n return data === 'true' ||\n data === 'True' ||\n data === 'TRUE';\n}\n\nfunction isBoolean(object) {\n return Object.prototype.toString.call(object) === '[object Boolean]';\n}\n\nmodule.exports = new Type('tag:yaml.org,2002:bool', {\n kind: 'scalar',\n resolve: resolveYamlBoolean,\n construct: constructYamlBoolean,\n predicate: isBoolean,\n represent: {\n lowercase: function (object) { return object ? 'true' : 'false'; },\n uppercase: function (object) { return object ? 'TRUE' : 'FALSE'; },\n camelcase: function (object) { return object ? 'True' : 'False'; }\n },\n defaultStyle: 'lowercase'\n});\n","'use strict';\n\nvar common = require('../common');\nvar Type = require('../type');\n\nfunction isHexCode(c) {\n return ((0x30/* 0 */ <= c) && (c <= 0x39/* 9 */)) ||\n ((0x41/* A */ <= c) && (c <= 0x46/* F */)) ||\n ((0x61/* a */ <= c) && (c <= 0x66/* f */));\n}\n\nfunction isOctCode(c) {\n return ((0x30/* 0 */ <= c) && (c <= 0x37/* 7 */));\n}\n\nfunction isDecCode(c) {\n return ((0x30/* 0 */ <= c) && (c <= 0x39/* 9 */));\n}\n\nfunction resolveYamlInteger(data) {\n if (data === null) return false;\n\n var max = data.length,\n index = 0,\n hasDigits = false,\n ch;\n\n if (!max) return false;\n\n ch = data[index];\n\n // sign\n if (ch === '-' || ch === '+') {\n ch = data[++index];\n }\n\n if (ch === '0') {\n // 0\n if (index + 1 === max) return true;\n ch = data[++index];\n\n // base 2, base 8, base 16\n\n if (ch === 'b') {\n // base 2\n index++;\n\n for (; index < max; index++) {\n ch = data[index];\n if (ch === '_') continue;\n if (ch !== '0' && ch !== '1') return false;\n hasDigits = true;\n }\n return hasDigits && ch !== '_';\n }\n\n\n if (ch === 'x') {\n // base 16\n index++;\n\n for (; index < max; index++) {\n ch = data[index];\n if (ch === '_') continue;\n if (!isHexCode(data.charCodeAt(index))) return false;\n hasDigits = true;\n }\n return hasDigits && ch !== '_';\n }\n\n\n if (ch === 'o') {\n // base 8\n index++;\n\n for (; index < max; index++) {\n ch = data[index];\n if (ch === '_') continue;\n if (!isOctCode(data.charCodeAt(index))) return false;\n hasDigits = true;\n }\n return hasDigits && ch !== '_';\n }\n }\n\n // base 10 (except 0)\n\n // value should not start with `_`;\n if (ch === '_') return false;\n\n for (; index < max; index++) {\n ch = data[index];\n if (ch === '_') continue;\n if (!isDecCode(data.charCodeAt(index))) {\n return false;\n }\n hasDigits = true;\n }\n\n // Should have digits and should not end with `_`\n if (!hasDigits || ch === '_') return false;\n\n return true;\n}\n\nfunction constructYamlInteger(data) {\n var value = data, sign = 1, ch;\n\n if (value.indexOf('_') !== -1) {\n value = value.replace(/_/g, '');\n }\n\n ch = value[0];\n\n if (ch === '-' || ch === '+') {\n if (ch === '-') sign = -1;\n value = value.slice(1);\n ch = value[0];\n }\n\n if (value === '0') return 0;\n\n if (ch === '0') {\n if (value[1] === 'b') return sign * parseInt(value.slice(2), 2);\n if (value[1] === 'x') return sign * parseInt(value.slice(2), 16);\n if (value[1] === 'o') return sign * parseInt(value.slice(2), 8);\n }\n\n return sign * parseInt(value, 10);\n}\n\nfunction isInteger(object) {\n return (Object.prototype.toString.call(object)) === '[object Number]' &&\n (object % 1 === 0 && !common.isNegativeZero(object));\n}\n\nmodule.exports = new Type('tag:yaml.org,2002:int', {\n kind: 'scalar',\n resolve: resolveYamlInteger,\n construct: constructYamlInteger,\n predicate: isInteger,\n represent: {\n binary: function (obj) { return obj >= 0 ? '0b' + obj.toString(2) : '-0b' + obj.toString(2).slice(1); },\n octal: function (obj) { return obj >= 0 ? '0o' + obj.toString(8) : '-0o' + obj.toString(8).slice(1); },\n decimal: function (obj) { return obj.toString(10); },\n /* eslint-disable max-len */\n hexadecimal: function (obj) { return obj >= 0 ? '0x' + obj.toString(16).toUpperCase() : '-0x' + obj.toString(16).toUpperCase().slice(1); }\n },\n defaultStyle: 'decimal',\n styleAliases: {\n binary: [ 2, 'bin' ],\n octal: [ 8, 'oct' ],\n decimal: [ 10, 'dec' ],\n hexadecimal: [ 16, 'hex' ]\n }\n});\n","'use strict';\n\nvar common = require('../common');\nvar Type = require('../type');\n\nvar YAML_FLOAT_PATTERN = new RegExp(\n // 2.5e4, 2.5 and integers\n '^(?:[-+]?(?:[0-9][0-9_]*)(?:\\\\.[0-9_]*)?(?:[eE][-+]?[0-9]+)?' +\n // .2e4, .2\n // special case, seems not from spec\n '|\\\\.[0-9_]+(?:[eE][-+]?[0-9]+)?' +\n // .inf\n '|[-+]?\\\\.(?:inf|Inf|INF)' +\n // .nan\n '|\\\\.(?:nan|NaN|NAN))$');\n\nfunction resolveYamlFloat(data) {\n if (data === null) return false;\n\n if (!YAML_FLOAT_PATTERN.test(data) ||\n // Quick hack to not allow integers end with `_`\n // Probably should update regexp & check speed\n data[data.length - 1] === '_') {\n return false;\n }\n\n return true;\n}\n\nfunction constructYamlFloat(data) {\n var value, sign;\n\n value = data.replace(/_/g, '').toLowerCase();\n sign = value[0] === '-' ? -1 : 1;\n\n if ('+-'.indexOf(value[0]) >= 0) {\n value = value.slice(1);\n }\n\n if (value === '.inf') {\n return (sign === 1) ? Number.POSITIVE_INFINITY : Number.NEGATIVE_INFINITY;\n\n } else if (value === '.nan') {\n return NaN;\n }\n return sign * parseFloat(value, 10);\n}\n\n\nvar SCIENTIFIC_WITHOUT_DOT = /^[-+]?[0-9]+e/;\n\nfunction representYamlFloat(object, style) {\n var res;\n\n if (isNaN(object)) {\n switch (style) {\n case 'lowercase': return '.nan';\n case 'uppercase': return '.NAN';\n case 'camelcase': return '.NaN';\n }\n } else if (Number.POSITIVE_INFINITY === object) {\n switch (style) {\n case 'lowercase': return '.inf';\n case 'uppercase': return '.INF';\n case 'camelcase': return '.Inf';\n }\n } else if (Number.NEGATIVE_INFINITY === object) {\n switch (style) {\n case 'lowercase': return '-.inf';\n case 'uppercase': return '-.INF';\n case 'camelcase': return '-.Inf';\n }\n } else if (common.isNegativeZero(object)) {\n return '-0.0';\n }\n\n res = object.toString(10);\n\n // JS stringifier can build scientific format without dots: 5e-100,\n // while YAML requres dot: 5.e-100. Fix it with simple hack\n\n return SCIENTIFIC_WITHOUT_DOT.test(res) ? res.replace('e', '.e') : res;\n}\n\nfunction isFloat(object) {\n return (Object.prototype.toString.call(object) === '[object Number]') &&\n (object % 1 !== 0 || common.isNegativeZero(object));\n}\n\nmodule.exports = new Type('tag:yaml.org,2002:float', {\n kind: 'scalar',\n resolve: resolveYamlFloat,\n construct: constructYamlFloat,\n predicate: isFloat,\n represent: representYamlFloat,\n defaultStyle: 'lowercase'\n});\n","// Standard YAML's JSON schema.\n// http://www.yaml.org/spec/1.2/spec.html#id2803231\n//\n// NOTE: JS-YAML does not support schema-specific tag resolution restrictions.\n// So, this schema is not such strict as defined in the YAML specification.\n// It allows numbers in binary notaion, use `Null` and `NULL` as `null`, etc.\n\n\n'use strict';\n\n\nmodule.exports = require('./failsafe').extend({\n implicit: [\n require('../type/null'),\n require('../type/bool'),\n require('../type/int'),\n require('../type/float')\n ]\n});\n","// Standard YAML's Core schema.\n// http://www.yaml.org/spec/1.2/spec.html#id2804923\n//\n// NOTE: JS-YAML does not support schema-specific tag resolution restrictions.\n// So, Core schema has no distinctions from JSON schema is JS-YAML.\n\n\n'use strict';\n\n\nmodule.exports = require('./json');\n","'use strict';\n\nvar Type = require('../type');\n\nvar YAML_DATE_REGEXP = new RegExp(\n '^([0-9][0-9][0-9][0-9])' + // [1] year\n '-([0-9][0-9])' + // [2] month\n '-([0-9][0-9])$'); // [3] day\n\nvar YAML_TIMESTAMP_REGEXP = new RegExp(\n '^([0-9][0-9][0-9][0-9])' + // [1] year\n '-([0-9][0-9]?)' + // [2] month\n '-([0-9][0-9]?)' + // [3] day\n '(?:[Tt]|[ \\\\t]+)' + // ...\n '([0-9][0-9]?)' + // [4] hour\n ':([0-9][0-9])' + // [5] minute\n ':([0-9][0-9])' + // [6] second\n '(?:\\\\.([0-9]*))?' + // [7] fraction\n '(?:[ \\\\t]*(Z|([-+])([0-9][0-9]?)' + // [8] tz [9] tz_sign [10] tz_hour\n '(?::([0-9][0-9]))?))?$'); // [11] tz_minute\n\nfunction resolveYamlTimestamp(data) {\n if (data === null) return false;\n if (YAML_DATE_REGEXP.exec(data) !== null) return true;\n if (YAML_TIMESTAMP_REGEXP.exec(data) !== null) return true;\n return false;\n}\n\nfunction constructYamlTimestamp(data) {\n var match, year, month, day, hour, minute, second, fraction = 0,\n delta = null, tz_hour, tz_minute, date;\n\n match = YAML_DATE_REGEXP.exec(data);\n if (match === null) match = YAML_TIMESTAMP_REGEXP.exec(data);\n\n if (match === null) throw new Error('Date resolve error');\n\n // match: [1] year [2] month [3] day\n\n year = +(match[1]);\n month = +(match[2]) - 1; // JS month starts with 0\n day = +(match[3]);\n\n if (!match[4]) { // no hour\n return new Date(Date.UTC(year, month, day));\n }\n\n // match: [4] hour [5] minute [6] second [7] fraction\n\n hour = +(match[4]);\n minute = +(match[5]);\n second = +(match[6]);\n\n if (match[7]) {\n fraction = match[7].slice(0, 3);\n while (fraction.length < 3) { // milli-seconds\n fraction += '0';\n }\n fraction = +fraction;\n }\n\n // match: [8] tz [9] tz_sign [10] tz_hour [11] tz_minute\n\n if (match[9]) {\n tz_hour = +(match[10]);\n tz_minute = +(match[11] || 0);\n delta = (tz_hour * 60 + tz_minute) * 60000; // delta in mili-seconds\n if (match[9] === '-') delta = -delta;\n }\n\n date = new Date(Date.UTC(year, month, day, hour, minute, second, fraction));\n\n if (delta) date.setTime(date.getTime() - delta);\n\n return date;\n}\n\nfunction representYamlTimestamp(object /*, style*/) {\n return object.toISOString();\n}\n\nmodule.exports = new Type('tag:yaml.org,2002:timestamp', {\n kind: 'scalar',\n resolve: resolveYamlTimestamp,\n construct: constructYamlTimestamp,\n instanceOf: Date,\n represent: representYamlTimestamp\n});\n","'use strict';\n\nvar Type = require('../type');\n\nfunction resolveYamlMerge(data) {\n return data === '<<' || data === null;\n}\n\nmodule.exports = new Type('tag:yaml.org,2002:merge', {\n kind: 'scalar',\n resolve: resolveYamlMerge\n});\n","'use strict';\n\n/*eslint-disable no-bitwise*/\n\n\nvar Type = require('../type');\n\n\n// [ 64, 65, 66 ] -> [ padding, CR, LF ]\nvar BASE64_MAP = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\\n\\r';\n\n\nfunction resolveYamlBinary(data) {\n if (data === null) return false;\n\n var code, idx, bitlen = 0, max = data.length, map = BASE64_MAP;\n\n // Convert one by one.\n for (idx = 0; idx < max; idx++) {\n code = map.indexOf(data.charAt(idx));\n\n // Skip CR/LF\n if (code > 64) continue;\n\n // Fail on illegal characters\n if (code < 0) return false;\n\n bitlen += 6;\n }\n\n // If there are any bits left, source was corrupted\n return (bitlen % 8) === 0;\n}\n\nfunction constructYamlBinary(data) {\n var idx, tailbits,\n input = data.replace(/[\\r\\n=]/g, ''), // remove CR/LF & padding to simplify scan\n max = input.length,\n map = BASE64_MAP,\n bits = 0,\n result = [];\n\n // Collect by 6*4 bits (3 bytes)\n\n for (idx = 0; idx < max; idx++) {\n if ((idx % 4 === 0) && idx) {\n result.push((bits >> 16) & 0xFF);\n result.push((bits >> 8) & 0xFF);\n result.push(bits & 0xFF);\n }\n\n bits = (bits << 6) | map.indexOf(input.charAt(idx));\n }\n\n // Dump tail\n\n tailbits = (max % 4) * 6;\n\n if (tailbits === 0) {\n result.push((bits >> 16) & 0xFF);\n result.push((bits >> 8) & 0xFF);\n result.push(bits & 0xFF);\n } else if (tailbits === 18) {\n result.push((bits >> 10) & 0xFF);\n result.push((bits >> 2) & 0xFF);\n } else if (tailbits === 12) {\n result.push((bits >> 4) & 0xFF);\n }\n\n return new Uint8Array(result);\n}\n\nfunction representYamlBinary(object /*, style*/) {\n var result = '', bits = 0, idx, tail,\n max = object.length,\n map = BASE64_MAP;\n\n // Convert every three bytes to 4 ASCII characters.\n\n for (idx = 0; idx < max; idx++) {\n if ((idx % 3 === 0) && idx) {\n result += map[(bits >> 18) & 0x3F];\n result += map[(bits >> 12) & 0x3F];\n result += map[(bits >> 6) & 0x3F];\n result += map[bits & 0x3F];\n }\n\n bits = (bits << 8) + object[idx];\n }\n\n // Dump tail\n\n tail = max % 3;\n\n if (tail === 0) {\n result += map[(bits >> 18) & 0x3F];\n result += map[(bits >> 12) & 0x3F];\n result += map[(bits >> 6) & 0x3F];\n result += map[bits & 0x3F];\n } else if (tail === 2) {\n result += map[(bits >> 10) & 0x3F];\n result += map[(bits >> 4) & 0x3F];\n result += map[(bits << 2) & 0x3F];\n result += map[64];\n } else if (tail === 1) {\n result += map[(bits >> 2) & 0x3F];\n result += map[(bits << 4) & 0x3F];\n result += map[64];\n result += map[64];\n }\n\n return result;\n}\n\nfunction isBinary(obj) {\n return Object.prototype.toString.call(obj) === '[object Uint8Array]';\n}\n\nmodule.exports = new Type('tag:yaml.org,2002:binary', {\n kind: 'scalar',\n resolve: resolveYamlBinary,\n construct: constructYamlBinary,\n predicate: isBinary,\n represent: representYamlBinary\n});\n","'use strict';\n\nvar Type = require('../type');\n\nvar _hasOwnProperty = Object.prototype.hasOwnProperty;\nvar _toString = Object.prototype.toString;\n\nfunction resolveYamlOmap(data) {\n if (data === null) return true;\n\n var objectKeys = [], index, length, pair, pairKey, pairHasKey,\n object = data;\n\n for (index = 0, length = object.length; index < length; index += 1) {\n pair = object[index];\n pairHasKey = false;\n\n if (_toString.call(pair) !== '[object Object]') return false;\n\n for (pairKey in pair) {\n if (_hasOwnProperty.call(pair, pairKey)) {\n if (!pairHasKey) pairHasKey = true;\n else return false;\n }\n }\n\n if (!pairHasKey) return false;\n\n if (objectKeys.indexOf(pairKey) === -1) objectKeys.push(pairKey);\n else return false;\n }\n\n return true;\n}\n\nfunction constructYamlOmap(data) {\n return data !== null ? data : [];\n}\n\nmodule.exports = new Type('tag:yaml.org,2002:omap', {\n kind: 'sequence',\n resolve: resolveYamlOmap,\n construct: constructYamlOmap\n});\n","'use strict';\n\nvar Type = require('../type');\n\nvar _toString = Object.prototype.toString;\n\nfunction resolveYamlPairs(data) {\n if (data === null) return true;\n\n var index, length, pair, keys, result,\n object = data;\n\n result = new Array(object.length);\n\n for (index = 0, length = object.length; index < length; index += 1) {\n pair = object[index];\n\n if (_toString.call(pair) !== '[object Object]') return false;\n\n keys = Object.keys(pair);\n\n if (keys.length !== 1) return false;\n\n result[index] = [ keys[0], pair[keys[0]] ];\n }\n\n return true;\n}\n\nfunction constructYamlPairs(data) {\n if (data === null) return [];\n\n var index, length, pair, keys, result,\n object = data;\n\n result = new Array(object.length);\n\n for (index = 0, length = object.length; index < length; index += 1) {\n pair = object[index];\n\n keys = Object.keys(pair);\n\n result[index] = [ keys[0], pair[keys[0]] ];\n }\n\n return result;\n}\n\nmodule.exports = new Type('tag:yaml.org,2002:pairs', {\n kind: 'sequence',\n resolve: resolveYamlPairs,\n construct: constructYamlPairs\n});\n","'use strict';\n\nvar Type = require('../type');\n\nvar _hasOwnProperty = Object.prototype.hasOwnProperty;\n\nfunction resolveYamlSet(data) {\n if (data === null) return true;\n\n var key, object = data;\n\n for (key in object) {\n if (_hasOwnProperty.call(object, key)) {\n if (object[key] !== null) return false;\n }\n }\n\n return true;\n}\n\nfunction constructYamlSet(data) {\n return data !== null ? data : {};\n}\n\nmodule.exports = new Type('tag:yaml.org,2002:set', {\n kind: 'mapping',\n resolve: resolveYamlSet,\n construct: constructYamlSet\n});\n","// JS-YAML's default schema for `safeLoad` function.\n// It is not described in the YAML specification.\n//\n// This schema is based on standard YAML's Core schema and includes most of\n// extra types described at YAML tag repository. (http://yaml.org/type/)\n\n\n'use strict';\n\n\nmodule.exports = require('./core').extend({\n implicit: [\n require('../type/timestamp'),\n require('../type/merge')\n ],\n explicit: [\n require('../type/binary'),\n require('../type/omap'),\n require('../type/pairs'),\n require('../type/set')\n ]\n});\n","'use strict';\n\n/*eslint-disable max-len,no-use-before-define*/\n\nvar common = require('./common');\nvar YAMLException = require('./exception');\nvar makeSnippet = require('./snippet');\nvar DEFAULT_SCHEMA = require('./schema/default');\n\n\nvar _hasOwnProperty = Object.prototype.hasOwnProperty;\n\n\nvar CONTEXT_FLOW_IN = 1;\nvar CONTEXT_FLOW_OUT = 2;\nvar CONTEXT_BLOCK_IN = 3;\nvar CONTEXT_BLOCK_OUT = 4;\n\n\nvar CHOMPING_CLIP = 1;\nvar CHOMPING_STRIP = 2;\nvar CHOMPING_KEEP = 3;\n\n\nvar PATTERN_NON_PRINTABLE = /[\\x00-\\x08\\x0B\\x0C\\x0E-\\x1F\\x7F-\\x84\\x86-\\x9F\\uFFFE\\uFFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF]/;\nvar PATTERN_NON_ASCII_LINE_BREAKS = /[\\x85\\u2028\\u2029]/;\nvar PATTERN_FLOW_INDICATORS = /[,\\[\\]\\{\\}]/;\nvar PATTERN_TAG_HANDLE = /^(?:!|!!|![a-z\\-]+!)$/i;\nvar PATTERN_TAG_URI = /^(?:!|[^,\\[\\]\\{\\}])(?:%[0-9a-f]{2}|[0-9a-z\\-#;\\/\\?:@&=\\+\\$,_\\.!~\\*'\\(\\)\\[\\]])*$/i;\n\n\nfunction _class(obj) { return Object.prototype.toString.call(obj); }\n\nfunction is_EOL(c) {\n return (c === 0x0A/* LF */) || (c === 0x0D/* CR */);\n}\n\nfunction is_WHITE_SPACE(c) {\n return (c === 0x09/* Tab */) || (c === 0x20/* Space */);\n}\n\nfunction is_WS_OR_EOL(c) {\n return (c === 0x09/* Tab */) ||\n (c === 0x20/* Space */) ||\n (c === 0x0A/* LF */) ||\n (c === 0x0D/* CR */);\n}\n\nfunction is_FLOW_INDICATOR(c) {\n return c === 0x2C/* , */ ||\n c === 0x5B/* [ */ ||\n c === 0x5D/* ] */ ||\n c === 0x7B/* { */ ||\n c === 0x7D/* } */;\n}\n\nfunction fromHexCode(c) {\n var lc;\n\n if ((0x30/* 0 */ <= c) && (c <= 0x39/* 9 */)) {\n return c - 0x30;\n }\n\n /*eslint-disable no-bitwise*/\n lc = c | 0x20;\n\n if ((0x61/* a */ <= lc) && (lc <= 0x66/* f */)) {\n return lc - 0x61 + 10;\n }\n\n return -1;\n}\n\nfunction escapedHexLen(c) {\n if (c === 0x78/* x */) { return 2; }\n if (c === 0x75/* u */) { return 4; }\n if (c === 0x55/* U */) { return 8; }\n return 0;\n}\n\nfunction fromDecimalCode(c) {\n if ((0x30/* 0 */ <= c) && (c <= 0x39/* 9 */)) {\n return c - 0x30;\n }\n\n return -1;\n}\n\nfunction simpleEscapeSequence(c) {\n /* eslint-disable indent */\n return (c === 0x30/* 0 */) ? '\\x00' :\n (c === 0x61/* a */) ? '\\x07' :\n (c === 0x62/* b */) ? '\\x08' :\n (c === 0x74/* t */) ? '\\x09' :\n (c === 0x09/* Tab */) ? '\\x09' :\n (c === 0x6E/* n */) ? '\\x0A' :\n (c === 0x76/* v */) ? '\\x0B' :\n (c === 0x66/* f */) ? '\\x0C' :\n (c === 0x72/* r */) ? '\\x0D' :\n (c === 0x65/* e */) ? '\\x1B' :\n (c === 0x20/* Space */) ? ' ' :\n (c === 0x22/* \" */) ? '\\x22' :\n (c === 0x2F/* / */) ? '/' :\n (c === 0x5C/* \\ */) ? '\\x5C' :\n (c === 0x4E/* N */) ? '\\x85' :\n (c === 0x5F/* _ */) ? '\\xA0' :\n (c === 0x4C/* L */) ? '\\u2028' :\n (c === 0x50/* P */) ? '\\u2029' : '';\n}\n\nfunction charFromCodepoint(c) {\n if (c <= 0xFFFF) {\n return String.fromCharCode(c);\n }\n // Encode UTF-16 surrogate pair\n // https://en.wikipedia.org/wiki/UTF-16#Code_points_U.2B010000_to_U.2B10FFFF\n return String.fromCharCode(\n ((c - 0x010000) >> 10) + 0xD800,\n ((c - 0x010000) & 0x03FF) + 0xDC00\n );\n}\n\nvar simpleEscapeCheck = new Array(256); // integer, for fast access\nvar simpleEscapeMap = new Array(256);\nfor (var i = 0; i < 256; i++) {\n simpleEscapeCheck[i] = simpleEscapeSequence(i) ? 1 : 0;\n simpleEscapeMap[i] = simpleEscapeSequence(i);\n}\n\n\nfunction State(input, options) {\n this.input = input;\n\n this.filename = options['filename'] || null;\n this.schema = options['schema'] || DEFAULT_SCHEMA;\n this.onWarning = options['onWarning'] || null;\n // (Hidden) Remove? makes the loader to expect YAML 1.1 documents\n // if such documents have no explicit %YAML directive\n this.legacy = options['legacy'] || false;\n\n this.json = options['json'] || false;\n this.listener = options['listener'] || null;\n\n this.implicitTypes = this.schema.compiledImplicit;\n this.typeMap = this.schema.compiledTypeMap;\n\n this.length = input.length;\n this.position = 0;\n this.line = 0;\n this.lineStart = 0;\n this.lineIndent = 0;\n\n // position of first leading tab in the current line,\n // used to make sure there are no tabs in the indentation\n this.firstTabInLine = -1;\n\n this.documents = [];\n\n /*\n this.version;\n this.checkLineBreaks;\n this.tagMap;\n this.anchorMap;\n this.tag;\n this.anchor;\n this.kind;\n this.result;*/\n\n}\n\n\nfunction generateError(state, message) {\n var mark = {\n name: state.filename,\n buffer: state.input.slice(0, -1), // omit trailing \\0\n position: state.position,\n line: state.line,\n column: state.position - state.lineStart\n };\n\n mark.snippet = makeSnippet(mark);\n\n return new YAMLException(message, mark);\n}\n\nfunction throwError(state, message) {\n throw generateError(state, message);\n}\n\nfunction throwWarning(state, message) {\n if (state.onWarning) {\n state.onWarning.call(null, generateError(state, message));\n }\n}\n\n\nvar directiveHandlers = {\n\n YAML: function handleYamlDirective(state, name, args) {\n\n var match, major, minor;\n\n if (state.version !== null) {\n throwError(state, 'duplication of %YAML directive');\n }\n\n if (args.length !== 1) {\n throwError(state, 'YAML directive accepts exactly one argument');\n }\n\n match = /^([0-9]+)\\.([0-9]+)$/.exec(args[0]);\n\n if (match === null) {\n throwError(state, 'ill-formed argument of the YAML directive');\n }\n\n major = parseInt(match[1], 10);\n minor = parseInt(match[2], 10);\n\n if (major !== 1) {\n throwError(state, 'unacceptable YAML version of the document');\n }\n\n state.version = args[0];\n state.checkLineBreaks = (minor < 2);\n\n if (minor !== 1 && minor !== 2) {\n throwWarning(state, 'unsupported YAML version of the document');\n }\n },\n\n TAG: function handleTagDirective(state, name, args) {\n\n var handle, prefix;\n\n if (args.length !== 2) {\n throwError(state, 'TAG directive accepts exactly two arguments');\n }\n\n handle = args[0];\n prefix = args[1];\n\n if (!PATTERN_TAG_HANDLE.test(handle)) {\n throwError(state, 'ill-formed tag handle (first argument) of the TAG directive');\n }\n\n if (_hasOwnProperty.call(state.tagMap, handle)) {\n throwError(state, 'there is a previously declared suffix for \"' + handle + '\" tag handle');\n }\n\n if (!PATTERN_TAG_URI.test(prefix)) {\n throwError(state, 'ill-formed tag prefix (second argument) of the TAG directive');\n }\n\n try {\n prefix = decodeURIComponent(prefix);\n } catch (err) {\n throwError(state, 'tag prefix is malformed: ' + prefix);\n }\n\n state.tagMap[handle] = prefix;\n }\n};\n\n\nfunction captureSegment(state, start, end, checkJson) {\n var _position, _length, _character, _result;\n\n if (start < end) {\n _result = state.input.slice(start, end);\n\n if (checkJson) {\n for (_position = 0, _length = _result.length; _position < _length; _position += 1) {\n _character = _result.charCodeAt(_position);\n if (!(_character === 0x09 ||\n (0x20 <= _character && _character <= 0x10FFFF))) {\n throwError(state, 'expected valid JSON character');\n }\n }\n } else if (PATTERN_NON_PRINTABLE.test(_result)) {\n throwError(state, 'the stream contains non-printable characters');\n }\n\n state.result += _result;\n }\n}\n\nfunction mergeMappings(state, destination, source, overridableKeys) {\n var sourceKeys, key, index, quantity;\n\n if (!common.isObject(source)) {\n throwError(state, 'cannot merge mappings; the provided source object is unacceptable');\n }\n\n sourceKeys = Object.keys(source);\n\n for (index = 0, quantity = sourceKeys.length; index < quantity; index += 1) {\n key = sourceKeys[index];\n\n if (!_hasOwnProperty.call(destination, key)) {\n destination[key] = source[key];\n overridableKeys[key] = true;\n }\n }\n}\n\nfunction storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, valueNode,\n startLine, startLineStart, startPos) {\n\n var index, quantity;\n\n // The output is a plain object here, so keys can only be strings.\n // We need to convert keyNode to a string, but doing so can hang the process\n // (deeply nested arrays that explode exponentially using aliases).\n if (Array.isArray(keyNode)) {\n keyNode = Array.prototype.slice.call(keyNode);\n\n for (index = 0, quantity = keyNode.length; index < quantity; index += 1) {\n if (Array.isArray(keyNode[index])) {\n throwError(state, 'nested arrays are not supported inside keys');\n }\n\n if (typeof keyNode === 'object' && _class(keyNode[index]) === '[object Object]') {\n keyNode[index] = '[object Object]';\n }\n }\n }\n\n // Avoid code execution in load() via toString property\n // (still use its own toString for arrays, timestamps,\n // and whatever user schema extensions happen to have @@toStringTag)\n if (typeof keyNode === 'object' && _class(keyNode) === '[object Object]') {\n keyNode = '[object Object]';\n }\n\n\n keyNode = String(keyNode);\n\n if (_result === null) {\n _result = {};\n }\n\n if (keyTag === 'tag:yaml.org,2002:merge') {\n if (Array.isArray(valueNode)) {\n for (index = 0, quantity = valueNode.length; index < quantity; index += 1) {\n mergeMappings(state, _result, valueNode[index], overridableKeys);\n }\n } else {\n mergeMappings(state, _result, valueNode, overridableKeys);\n }\n } else {\n if (!state.json &&\n !_hasOwnProperty.call(overridableKeys, keyNode) &&\n _hasOwnProperty.call(_result, keyNode)) {\n state.line = startLine || state.line;\n state.lineStart = startLineStart || state.lineStart;\n state.position = startPos || state.position;\n throwError(state, 'duplicated mapping key');\n }\n\n // used for this specific key only because Object.defineProperty is slow\n if (keyNode === '__proto__') {\n Object.defineProperty(_result, keyNode, {\n configurable: true,\n enumerable: true,\n writable: true,\n value: valueNode\n });\n } else {\n _result[keyNode] = valueNode;\n }\n delete overridableKeys[keyNode];\n }\n\n return _result;\n}\n\nfunction readLineBreak(state) {\n var ch;\n\n ch = state.input.charCodeAt(state.position);\n\n if (ch === 0x0A/* LF */) {\n state.position++;\n } else if (ch === 0x0D/* CR */) {\n state.position++;\n if (state.input.charCodeAt(state.position) === 0x0A/* LF */) {\n state.position++;\n }\n } else {\n throwError(state, 'a line break is expected');\n }\n\n state.line += 1;\n state.lineStart = state.position;\n state.firstTabInLine = -1;\n}\n\nfunction skipSeparationSpace(state, allowComments, checkIndent) {\n var lineBreaks = 0,\n ch = state.input.charCodeAt(state.position);\n\n while (ch !== 0) {\n while (is_WHITE_SPACE(ch)) {\n if (ch === 0x09/* Tab */ && state.firstTabInLine === -1) {\n state.firstTabInLine = state.position;\n }\n ch = state.input.charCodeAt(++state.position);\n }\n\n if (allowComments && ch === 0x23/* # */) {\n do {\n ch = state.input.charCodeAt(++state.position);\n } while (ch !== 0x0A/* LF */ && ch !== 0x0D/* CR */ && ch !== 0);\n }\n\n if (is_EOL(ch)) {\n readLineBreak(state);\n\n ch = state.input.charCodeAt(state.position);\n lineBreaks++;\n state.lineIndent = 0;\n\n while (ch === 0x20/* Space */) {\n state.lineIndent++;\n ch = state.input.charCodeAt(++state.position);\n }\n } else {\n break;\n }\n }\n\n if (checkIndent !== -1 && lineBreaks !== 0 && state.lineIndent < checkIndent) {\n throwWarning(state, 'deficient indentation');\n }\n\n return lineBreaks;\n}\n\nfunction testDocumentSeparator(state) {\n var _position = state.position,\n ch;\n\n ch = state.input.charCodeAt(_position);\n\n // Condition state.position === state.lineStart is tested\n // in parent on each call, for efficiency. No needs to test here again.\n if ((ch === 0x2D/* - */ || ch === 0x2E/* . */) &&\n ch === state.input.charCodeAt(_position + 1) &&\n ch === state.input.charCodeAt(_position + 2)) {\n\n _position += 3;\n\n ch = state.input.charCodeAt(_position);\n\n if (ch === 0 || is_WS_OR_EOL(ch)) {\n return true;\n }\n }\n\n return false;\n}\n\nfunction writeFoldedLines(state, count) {\n if (count === 1) {\n state.result += ' ';\n } else if (count > 1) {\n state.result += common.repeat('\\n', count - 1);\n }\n}\n\n\nfunction readPlainScalar(state, nodeIndent, withinFlowCollection) {\n var preceding,\n following,\n captureStart,\n captureEnd,\n hasPendingContent,\n _line,\n _lineStart,\n _lineIndent,\n _kind = state.kind,\n _result = state.result,\n ch;\n\n ch = state.input.charCodeAt(state.position);\n\n if (is_WS_OR_EOL(ch) ||\n is_FLOW_INDICATOR(ch) ||\n ch === 0x23/* # */ ||\n ch === 0x26/* & */ ||\n ch === 0x2A/* * */ ||\n ch === 0x21/* ! */ ||\n ch === 0x7C/* | */ ||\n ch === 0x3E/* > */ ||\n ch === 0x27/* ' */ ||\n ch === 0x22/* \" */ ||\n ch === 0x25/* % */ ||\n ch === 0x40/* @ */ ||\n ch === 0x60/* ` */) {\n return false;\n }\n\n if (ch === 0x3F/* ? */ || ch === 0x2D/* - */) {\n following = state.input.charCodeAt(state.position + 1);\n\n if (is_WS_OR_EOL(following) ||\n withinFlowCollection && is_FLOW_INDICATOR(following)) {\n return false;\n }\n }\n\n state.kind = 'scalar';\n state.result = '';\n captureStart = captureEnd = state.position;\n hasPendingContent = false;\n\n while (ch !== 0) {\n if (ch === 0x3A/* : */) {\n following = state.input.charCodeAt(state.position + 1);\n\n if (is_WS_OR_EOL(following) ||\n withinFlowCollection && is_FLOW_INDICATOR(following)) {\n break;\n }\n\n } else if (ch === 0x23/* # */) {\n preceding = state.input.charCodeAt(state.position - 1);\n\n if (is_WS_OR_EOL(preceding)) {\n break;\n }\n\n } else if ((state.position === state.lineStart && testDocumentSeparator(state)) ||\n withinFlowCollection && is_FLOW_INDICATOR(ch)) {\n break;\n\n } else if (is_EOL(ch)) {\n _line = state.line;\n _lineStart = state.lineStart;\n _lineIndent = state.lineIndent;\n skipSeparationSpace(state, false, -1);\n\n if (state.lineIndent >= nodeIndent) {\n hasPendingContent = true;\n ch = state.input.charCodeAt(state.position);\n continue;\n } else {\n state.position = captureEnd;\n state.line = _line;\n state.lineStart = _lineStart;\n state.lineIndent = _lineIndent;\n break;\n }\n }\n\n if (hasPendingContent) {\n captureSegment(state, captureStart, captureEnd, false);\n writeFoldedLines(state, state.line - _line);\n captureStart = captureEnd = state.position;\n hasPendingContent = false;\n }\n\n if (!is_WHITE_SPACE(ch)) {\n captureEnd = state.position + 1;\n }\n\n ch = state.input.charCodeAt(++state.position);\n }\n\n captureSegment(state, captureStart, captureEnd, false);\n\n if (state.result) {\n return true;\n }\n\n state.kind = _kind;\n state.result = _result;\n return false;\n}\n\nfunction readSingleQuotedScalar(state, nodeIndent) {\n var ch,\n captureStart, captureEnd;\n\n ch = state.input.charCodeAt(state.position);\n\n if (ch !== 0x27/* ' */) {\n return false;\n }\n\n state.kind = 'scalar';\n state.result = '';\n state.position++;\n captureStart = captureEnd = state.position;\n\n while ((ch = state.input.charCodeAt(state.position)) !== 0) {\n if (ch === 0x27/* ' */) {\n captureSegment(state, captureStart, state.position, true);\n ch = state.input.charCodeAt(++state.position);\n\n if (ch === 0x27/* ' */) {\n captureStart = state.position;\n state.position++;\n captureEnd = state.position;\n } else {\n return true;\n }\n\n } else if (is_EOL(ch)) {\n captureSegment(state, captureStart, captureEnd, true);\n writeFoldedLines(state, skipSeparationSpace(state, false, nodeIndent));\n captureStart = captureEnd = state.position;\n\n } else if (state.position === state.lineStart && testDocumentSeparator(state)) {\n throwError(state, 'unexpected end of the document within a single quoted scalar');\n\n } else {\n state.position++;\n captureEnd = state.position;\n }\n }\n\n throwError(state, 'unexpected end of the stream within a single quoted scalar');\n}\n\nfunction readDoubleQuotedScalar(state, nodeIndent) {\n var captureStart,\n captureEnd,\n hexLength,\n hexResult,\n tmp,\n ch;\n\n ch = state.input.charCodeAt(state.position);\n\n if (ch !== 0x22/* \" */) {\n return false;\n }\n\n state.kind = 'scalar';\n state.result = '';\n state.position++;\n captureStart = captureEnd = state.position;\n\n while ((ch = state.input.charCodeAt(state.position)) !== 0) {\n if (ch === 0x22/* \" */) {\n captureSegment(state, captureStart, state.position, true);\n state.position++;\n return true;\n\n } else if (ch === 0x5C/* \\ */) {\n captureSegment(state, captureStart, state.position, true);\n ch = state.input.charCodeAt(++state.position);\n\n if (is_EOL(ch)) {\n skipSeparationSpace(state, false, nodeIndent);\n\n // TODO: rework to inline fn with no type cast?\n } else if (ch < 256 && simpleEscapeCheck[ch]) {\n state.result += simpleEscapeMap[ch];\n state.position++;\n\n } else if ((tmp = escapedHexLen(ch)) > 0) {\n hexLength = tmp;\n hexResult = 0;\n\n for (; hexLength > 0; hexLength--) {\n ch = state.input.charCodeAt(++state.position);\n\n if ((tmp = fromHexCode(ch)) >= 0) {\n hexResult = (hexResult << 4) + tmp;\n\n } else {\n throwError(state, 'expected hexadecimal character');\n }\n }\n\n state.result += charFromCodepoint(hexResult);\n\n state.position++;\n\n } else {\n throwError(state, 'unknown escape sequence');\n }\n\n captureStart = captureEnd = state.position;\n\n } else if (is_EOL(ch)) {\n captureSegment(state, captureStart, captureEnd, true);\n writeFoldedLines(state, skipSeparationSpace(state, false, nodeIndent));\n captureStart = captureEnd = state.position;\n\n } else if (state.position === state.lineStart && testDocumentSeparator(state)) {\n throwError(state, 'unexpected end of the document within a double quoted scalar');\n\n } else {\n state.position++;\n captureEnd = state.position;\n }\n }\n\n throwError(state, 'unexpected end of the stream within a double quoted scalar');\n}\n\nfunction readFlowCollection(state, nodeIndent) {\n var readNext = true,\n _line,\n _lineStart,\n _pos,\n _tag = state.tag,\n _result,\n _anchor = state.anchor,\n following,\n terminator,\n isPair,\n isExplicitPair,\n isMapping,\n overridableKeys = Object.create(null),\n keyNode,\n keyTag,\n valueNode,\n ch;\n\n ch = state.input.charCodeAt(state.position);\n\n if (ch === 0x5B/* [ */) {\n terminator = 0x5D;/* ] */\n isMapping = false;\n _result = [];\n } else if (ch === 0x7B/* { */) {\n terminator = 0x7D;/* } */\n isMapping = true;\n _result = {};\n } else {\n return false;\n }\n\n if (state.anchor !== null) {\n state.anchorMap[state.anchor] = _result;\n }\n\n ch = state.input.charCodeAt(++state.position);\n\n while (ch !== 0) {\n skipSeparationSpace(state, true, nodeIndent);\n\n ch = state.input.charCodeAt(state.position);\n\n if (ch === terminator) {\n state.position++;\n state.tag = _tag;\n state.anchor = _anchor;\n state.kind = isMapping ? 'mapping' : 'sequence';\n state.result = _result;\n return true;\n } else if (!readNext) {\n throwError(state, 'missed comma between flow collection entries');\n } else if (ch === 0x2C/* , */) {\n // \"flow collection entries can never be completely empty\", as per YAML 1.2, section 7.4\n throwError(state, \"expected the node content, but found ','\");\n }\n\n keyTag = keyNode = valueNode = null;\n isPair = isExplicitPair = false;\n\n if (ch === 0x3F/* ? */) {\n following = state.input.charCodeAt(state.position + 1);\n\n if (is_WS_OR_EOL(following)) {\n isPair = isExplicitPair = true;\n state.position++;\n skipSeparationSpace(state, true, nodeIndent);\n }\n }\n\n _line = state.line; // Save the current line.\n _lineStart = state.lineStart;\n _pos = state.position;\n composeNode(state, nodeIndent, CONTEXT_FLOW_IN, false, true);\n keyTag = state.tag;\n keyNode = state.result;\n skipSeparationSpace(state, true, nodeIndent);\n\n ch = state.input.charCodeAt(state.position);\n\n if ((isExplicitPair || state.line === _line) && ch === 0x3A/* : */) {\n isPair = true;\n ch = state.input.charCodeAt(++state.position);\n skipSeparationSpace(state, true, nodeIndent);\n composeNode(state, nodeIndent, CONTEXT_FLOW_IN, false, true);\n valueNode = state.result;\n }\n\n if (isMapping) {\n storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, valueNode, _line, _lineStart, _pos);\n } else if (isPair) {\n _result.push(storeMappingPair(state, null, overridableKeys, keyTag, keyNode, valueNode, _line, _lineStart, _pos));\n } else {\n _result.push(keyNode);\n }\n\n skipSeparationSpace(state, true, nodeIndent);\n\n ch = state.input.charCodeAt(state.position);\n\n if (ch === 0x2C/* , */) {\n readNext = true;\n ch = state.input.charCodeAt(++state.position);\n } else {\n readNext = false;\n }\n }\n\n throwError(state, 'unexpected end of the stream within a flow collection');\n}\n\nfunction readBlockScalar(state, nodeIndent) {\n var captureStart,\n folding,\n chomping = CHOMPING_CLIP,\n didReadContent = false,\n detectedIndent = false,\n textIndent = nodeIndent,\n emptyLines = 0,\n atMoreIndented = false,\n tmp,\n ch;\n\n ch = state.input.charCodeAt(state.position);\n\n if (ch === 0x7C/* | */) {\n folding = false;\n } else if (ch === 0x3E/* > */) {\n folding = true;\n } else {\n return false;\n }\n\n state.kind = 'scalar';\n state.result = '';\n\n while (ch !== 0) {\n ch = state.input.charCodeAt(++state.position);\n\n if (ch === 0x2B/* + */ || ch === 0x2D/* - */) {\n if (CHOMPING_CLIP === chomping) {\n chomping = (ch === 0x2B/* + */) ? CHOMPING_KEEP : CHOMPING_STRIP;\n } else {\n throwError(state, 'repeat of a chomping mode identifier');\n }\n\n } else if ((tmp = fromDecimalCode(ch)) >= 0) {\n if (tmp === 0) {\n throwError(state, 'bad explicit indentation width of a block scalar; it cannot be less than one');\n } else if (!detectedIndent) {\n textIndent = nodeIndent + tmp - 1;\n detectedIndent = true;\n } else {\n throwError(state, 'repeat of an indentation width identifier');\n }\n\n } else {\n break;\n }\n }\n\n if (is_WHITE_SPACE(ch)) {\n do { ch = state.input.charCodeAt(++state.position); }\n while (is_WHITE_SPACE(ch));\n\n if (ch === 0x23/* # */) {\n do { ch = state.input.charCodeAt(++state.position); }\n while (!is_EOL(ch) && (ch !== 0));\n }\n }\n\n while (ch !== 0) {\n readLineBreak(state);\n state.lineIndent = 0;\n\n ch = state.input.charCodeAt(state.position);\n\n while ((!detectedIndent || state.lineIndent < textIndent) &&\n (ch === 0x20/* Space */)) {\n state.lineIndent++;\n ch = state.input.charCodeAt(++state.position);\n }\n\n if (!detectedIndent && state.lineIndent > textIndent) {\n textIndent = state.lineIndent;\n }\n\n if (is_EOL(ch)) {\n emptyLines++;\n continue;\n }\n\n // End of the scalar.\n if (state.lineIndent < textIndent) {\n\n // Perform the chomping.\n if (chomping === CHOMPING_KEEP) {\n state.result += common.repeat('\\n', didReadContent ? 1 + emptyLines : emptyLines);\n } else if (chomping === CHOMPING_CLIP) {\n if (didReadContent) { // i.e. only if the scalar is not empty.\n state.result += '\\n';\n }\n }\n\n // Break this `while` cycle and go to the funciton's epilogue.\n break;\n }\n\n // Folded style: use fancy rules to handle line breaks.\n if (folding) {\n\n // Lines starting with white space characters (more-indented lines) are not folded.\n if (is_WHITE_SPACE(ch)) {\n atMoreIndented = true;\n // except for the first content line (cf. Example 8.1)\n state.result += common.repeat('\\n', didReadContent ? 1 + emptyLines : emptyLines);\n\n // End of more-indented block.\n } else if (atMoreIndented) {\n atMoreIndented = false;\n state.result += common.repeat('\\n', emptyLines + 1);\n\n // Just one line break - perceive as the same line.\n } else if (emptyLines === 0) {\n if (didReadContent) { // i.e. only if we have already read some scalar content.\n state.result += ' ';\n }\n\n // Several line breaks - perceive as different lines.\n } else {\n state.result += common.repeat('\\n', emptyLines);\n }\n\n // Literal style: just add exact number of line breaks between content lines.\n } else {\n // Keep all line breaks except the header line break.\n state.result += common.repeat('\\n', didReadContent ? 1 + emptyLines : emptyLines);\n }\n\n didReadContent = true;\n detectedIndent = true;\n emptyLines = 0;\n captureStart = state.position;\n\n while (!is_EOL(ch) && (ch !== 0)) {\n ch = state.input.charCodeAt(++state.position);\n }\n\n captureSegment(state, captureStart, state.position, false);\n }\n\n return true;\n}\n\nfunction readBlockSequence(state, nodeIndent) {\n var _line,\n _tag = state.tag,\n _anchor = state.anchor,\n _result = [],\n following,\n detected = false,\n ch;\n\n // there is a leading tab before this token, so it can't be a block sequence/mapping;\n // it can still be flow sequence/mapping or a scalar\n if (state.firstTabInLine !== -1) return false;\n\n if (state.anchor !== null) {\n state.anchorMap[state.anchor] = _result;\n }\n\n ch = state.input.charCodeAt(state.position);\n\n while (ch !== 0) {\n if (state.firstTabInLine !== -1) {\n state.position = state.firstTabInLine;\n throwError(state, 'tab characters must not be used in indentation');\n }\n\n if (ch !== 0x2D/* - */) {\n break;\n }\n\n following = state.input.charCodeAt(state.position + 1);\n\n if (!is_WS_OR_EOL(following)) {\n break;\n }\n\n detected = true;\n state.position++;\n\n if (skipSeparationSpace(state, true, -1)) {\n if (state.lineIndent <= nodeIndent) {\n _result.push(null);\n ch = state.input.charCodeAt(state.position);\n continue;\n }\n }\n\n _line = state.line;\n composeNode(state, nodeIndent, CONTEXT_BLOCK_IN, false, true);\n _result.push(state.result);\n skipSeparationSpace(state, true, -1);\n\n ch = state.input.charCodeAt(state.position);\n\n if ((state.line === _line || state.lineIndent > nodeIndent) && (ch !== 0)) {\n throwError(state, 'bad indentation of a sequence entry');\n } else if (state.lineIndent < nodeIndent) {\n break;\n }\n }\n\n if (detected) {\n state.tag = _tag;\n state.anchor = _anchor;\n state.kind = 'sequence';\n state.result = _result;\n return true;\n }\n return false;\n}\n\nfunction readBlockMapping(state, nodeIndent, flowIndent) {\n var following,\n allowCompact,\n _line,\n _keyLine,\n _keyLineStart,\n _keyPos,\n _tag = state.tag,\n _anchor = state.anchor,\n _result = {},\n overridableKeys = Object.create(null),\n keyTag = null,\n keyNode = null,\n valueNode = null,\n atExplicitKey = false,\n detected = false,\n ch;\n\n // there is a leading tab before this token, so it can't be a block sequence/mapping;\n // it can still be flow sequence/mapping or a scalar\n if (state.firstTabInLine !== -1) return false;\n\n if (state.anchor !== null) {\n state.anchorMap[state.anchor] = _result;\n }\n\n ch = state.input.charCodeAt(state.position);\n\n while (ch !== 0) {\n if (!atExplicitKey && state.firstTabInLine !== -1) {\n state.position = state.firstTabInLine;\n throwError(state, 'tab characters must not be used in indentation');\n }\n\n following = state.input.charCodeAt(state.position + 1);\n _line = state.line; // Save the current line.\n\n //\n // Explicit notation case. There are two separate blocks:\n // first for the key (denoted by \"?\") and second for the value (denoted by \":\")\n //\n if ((ch === 0x3F/* ? */ || ch === 0x3A/* : */) && is_WS_OR_EOL(following)) {\n\n if (ch === 0x3F/* ? */) {\n if (atExplicitKey) {\n storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, null, _keyLine, _keyLineStart, _keyPos);\n keyTag = keyNode = valueNode = null;\n }\n\n detected = true;\n atExplicitKey = true;\n allowCompact = true;\n\n } else if (atExplicitKey) {\n // i.e. 0x3A/* : */ === character after the explicit key.\n atExplicitKey = false;\n allowCompact = true;\n\n } else {\n throwError(state, 'incomplete explicit mapping pair; a key node is missed; or followed by a non-tabulated empty line');\n }\n\n state.position += 1;\n ch = following;\n\n //\n // Implicit notation case. Flow-style node as the key first, then \":\", and the value.\n //\n } else {\n _keyLine = state.line;\n _keyLineStart = state.lineStart;\n _keyPos = state.position;\n\n if (!composeNode(state, flowIndent, CONTEXT_FLOW_OUT, false, true)) {\n // Neither implicit nor explicit notation.\n // Reading is done. Go to the epilogue.\n break;\n }\n\n if (state.line === _line) {\n ch = state.input.charCodeAt(state.position);\n\n while (is_WHITE_SPACE(ch)) {\n ch = state.input.charCodeAt(++state.position);\n }\n\n if (ch === 0x3A/* : */) {\n ch = state.input.charCodeAt(++state.position);\n\n if (!is_WS_OR_EOL(ch)) {\n throwError(state, 'a whitespace character is expected after the key-value separator within a block mapping');\n }\n\n if (atExplicitKey) {\n storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, null, _keyLine, _keyLineStart, _keyPos);\n keyTag = keyNode = valueNode = null;\n }\n\n detected = true;\n atExplicitKey = false;\n allowCompact = false;\n keyTag = state.tag;\n keyNode = state.result;\n\n } else if (detected) {\n throwError(state, 'can not read an implicit mapping pair; a colon is missed');\n\n } else {\n state.tag = _tag;\n state.anchor = _anchor;\n return true; // Keep the result of `composeNode`.\n }\n\n } else if (detected) {\n throwError(state, 'can not read a block mapping entry; a multiline key may not be an implicit key');\n\n } else {\n state.tag = _tag;\n state.anchor = _anchor;\n return true; // Keep the result of `composeNode`.\n }\n }\n\n //\n // Common reading code for both explicit and implicit notations.\n //\n if (state.line === _line || state.lineIndent > nodeIndent) {\n if (atExplicitKey) {\n _keyLine = state.line;\n _keyLineStart = state.lineStart;\n _keyPos = state.position;\n }\n\n if (composeNode(state, nodeIndent, CONTEXT_BLOCK_OUT, true, allowCompact)) {\n if (atExplicitKey) {\n keyNode = state.result;\n } else {\n valueNode = state.result;\n }\n }\n\n if (!atExplicitKey) {\n storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, valueNode, _keyLine, _keyLineStart, _keyPos);\n keyTag = keyNode = valueNode = null;\n }\n\n skipSeparationSpace(state, true, -1);\n ch = state.input.charCodeAt(state.position);\n }\n\n if ((state.line === _line || state.lineIndent > nodeIndent) && (ch !== 0)) {\n throwError(state, 'bad indentation of a mapping entry');\n } else if (state.lineIndent < nodeIndent) {\n break;\n }\n }\n\n //\n // Epilogue.\n //\n\n // Special case: last mapping's node contains only the key in explicit notation.\n if (atExplicitKey) {\n storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, null, _keyLine, _keyLineStart, _keyPos);\n }\n\n // Expose the resulting mapping.\n if (detected) {\n state.tag = _tag;\n state.anchor = _anchor;\n state.kind = 'mapping';\n state.result = _result;\n }\n\n return detected;\n}\n\nfunction readTagProperty(state) {\n var _position,\n isVerbatim = false,\n isNamed = false,\n tagHandle,\n tagName,\n ch;\n\n ch = state.input.charCodeAt(state.position);\n\n if (ch !== 0x21/* ! */) return false;\n\n if (state.tag !== null) {\n throwError(state, 'duplication of a tag property');\n }\n\n ch = state.input.charCodeAt(++state.position);\n\n if (ch === 0x3C/* < */) {\n isVerbatim = true;\n ch = state.input.charCodeAt(++state.position);\n\n } else if (ch === 0x21/* ! */) {\n isNamed = true;\n tagHandle = '!!';\n ch = state.input.charCodeAt(++state.position);\n\n } else {\n tagHandle = '!';\n }\n\n _position = state.position;\n\n if (isVerbatim) {\n do { ch = state.input.charCodeAt(++state.position); }\n while (ch !== 0 && ch !== 0x3E/* > */);\n\n if (state.position < state.length) {\n tagName = state.input.slice(_position, state.position);\n ch = state.input.charCodeAt(++state.position);\n } else {\n throwError(state, 'unexpected end of the stream within a verbatim tag');\n }\n } else {\n while (ch !== 0 && !is_WS_OR_EOL(ch)) {\n\n if (ch === 0x21/* ! */) {\n if (!isNamed) {\n tagHandle = state.input.slice(_position - 1, state.position + 1);\n\n if (!PATTERN_TAG_HANDLE.test(tagHandle)) {\n throwError(state, 'named tag handle cannot contain such characters');\n }\n\n isNamed = true;\n _position = state.position + 1;\n } else {\n throwError(state, 'tag suffix cannot contain exclamation marks');\n }\n }\n\n ch = state.input.charCodeAt(++state.position);\n }\n\n tagName = state.input.slice(_position, state.position);\n\n if (PATTERN_FLOW_INDICATORS.test(tagName)) {\n throwError(state, 'tag suffix cannot contain flow indicator characters');\n }\n }\n\n if (tagName && !PATTERN_TAG_URI.test(tagName)) {\n throwError(state, 'tag name cannot contain such characters: ' + tagName);\n }\n\n try {\n tagName = decodeURIComponent(tagName);\n } catch (err) {\n throwError(state, 'tag name is malformed: ' + tagName);\n }\n\n if (isVerbatim) {\n state.tag = tagName;\n\n } else if (_hasOwnProperty.call(state.tagMap, tagHandle)) {\n state.tag = state.tagMap[tagHandle] + tagName;\n\n } else if (tagHandle === '!') {\n state.tag = '!' + tagName;\n\n } else if (tagHandle === '!!') {\n state.tag = 'tag:yaml.org,2002:' + tagName;\n\n } else {\n throwError(state, 'undeclared tag handle \"' + tagHandle + '\"');\n }\n\n return true;\n}\n\nfunction readAnchorProperty(state) {\n var _position,\n ch;\n\n ch = state.input.charCodeAt(state.position);\n\n if (ch !== 0x26/* & */) return false;\n\n if (state.anchor !== null) {\n throwError(state, 'duplication of an anchor property');\n }\n\n ch = state.input.charCodeAt(++state.position);\n _position = state.position;\n\n while (ch !== 0 && !is_WS_OR_EOL(ch) && !is_FLOW_INDICATOR(ch)) {\n ch = state.input.charCodeAt(++state.position);\n }\n\n if (state.position === _position) {\n throwError(state, 'name of an anchor node must contain at least one character');\n }\n\n state.anchor = state.input.slice(_position, state.position);\n return true;\n}\n\nfunction readAlias(state) {\n var _position, alias,\n ch;\n\n ch = state.input.charCodeAt(state.position);\n\n if (ch !== 0x2A/* * */) return false;\n\n ch = state.input.charCodeAt(++state.position);\n _position = state.position;\n\n while (ch !== 0 && !is_WS_OR_EOL(ch) && !is_FLOW_INDICATOR(ch)) {\n ch = state.input.charCodeAt(++state.position);\n }\n\n if (state.position === _position) {\n throwError(state, 'name of an alias node must contain at least one character');\n }\n\n alias = state.input.slice(_position, state.position);\n\n if (!_hasOwnProperty.call(state.anchorMap, alias)) {\n throwError(state, 'unidentified alias \"' + alias + '\"');\n }\n\n state.result = state.anchorMap[alias];\n skipSeparationSpace(state, true, -1);\n return true;\n}\n\nfunction composeNode(state, parentIndent, nodeContext, allowToSeek, allowCompact) {\n var allowBlockStyles,\n allowBlockScalars,\n allowBlockCollections,\n indentStatus = 1, // 1: this>parent, 0: this=parent, -1: this parentIndent) {\n indentStatus = 1;\n } else if (state.lineIndent === parentIndent) {\n indentStatus = 0;\n } else if (state.lineIndent < parentIndent) {\n indentStatus = -1;\n }\n }\n }\n\n if (indentStatus === 1) {\n while (readTagProperty(state) || readAnchorProperty(state)) {\n if (skipSeparationSpace(state, true, -1)) {\n atNewLine = true;\n allowBlockCollections = allowBlockStyles;\n\n if (state.lineIndent > parentIndent) {\n indentStatus = 1;\n } else if (state.lineIndent === parentIndent) {\n indentStatus = 0;\n } else if (state.lineIndent < parentIndent) {\n indentStatus = -1;\n }\n } else {\n allowBlockCollections = false;\n }\n }\n }\n\n if (allowBlockCollections) {\n allowBlockCollections = atNewLine || allowCompact;\n }\n\n if (indentStatus === 1 || CONTEXT_BLOCK_OUT === nodeContext) {\n if (CONTEXT_FLOW_IN === nodeContext || CONTEXT_FLOW_OUT === nodeContext) {\n flowIndent = parentIndent;\n } else {\n flowIndent = parentIndent + 1;\n }\n\n blockIndent = state.position - state.lineStart;\n\n if (indentStatus === 1) {\n if (allowBlockCollections &&\n (readBlockSequence(state, blockIndent) ||\n readBlockMapping(state, blockIndent, flowIndent)) ||\n readFlowCollection(state, flowIndent)) {\n hasContent = true;\n } else {\n if ((allowBlockScalars && readBlockScalar(state, flowIndent)) ||\n readSingleQuotedScalar(state, flowIndent) ||\n readDoubleQuotedScalar(state, flowIndent)) {\n hasContent = true;\n\n } else if (readAlias(state)) {\n hasContent = true;\n\n if (state.tag !== null || state.anchor !== null) {\n throwError(state, 'alias node should not have any properties');\n }\n\n } else if (readPlainScalar(state, flowIndent, CONTEXT_FLOW_IN === nodeContext)) {\n hasContent = true;\n\n if (state.tag === null) {\n state.tag = '?';\n }\n }\n\n if (state.anchor !== null) {\n state.anchorMap[state.anchor] = state.result;\n }\n }\n } else if (indentStatus === 0) {\n // Special case: block sequences are allowed to have same indentation level as the parent.\n // http://www.yaml.org/spec/1.2/spec.html#id2799784\n hasContent = allowBlockCollections && readBlockSequence(state, blockIndent);\n }\n }\n\n if (state.tag === null) {\n if (state.anchor !== null) {\n state.anchorMap[state.anchor] = state.result;\n }\n\n } else if (state.tag === '?') {\n // Implicit resolving is not allowed for non-scalar types, and '?'\n // non-specific tag is only automatically assigned to plain scalars.\n //\n // We only need to check kind conformity in case user explicitly assigns '?'\n // tag, for example like this: \"! [0]\"\n //\n if (state.result !== null && state.kind !== 'scalar') {\n throwError(state, 'unacceptable node kind for ! tag; it should be \"scalar\", not \"' + state.kind + '\"');\n }\n\n for (typeIndex = 0, typeQuantity = state.implicitTypes.length; typeIndex < typeQuantity; typeIndex += 1) {\n type = state.implicitTypes[typeIndex];\n\n if (type.resolve(state.result)) { // `state.result` updated in resolver if matched\n state.result = type.construct(state.result);\n state.tag = type.tag;\n if (state.anchor !== null) {\n state.anchorMap[state.anchor] = state.result;\n }\n break;\n }\n }\n } else if (state.tag !== '!') {\n if (_hasOwnProperty.call(state.typeMap[state.kind || 'fallback'], state.tag)) {\n type = state.typeMap[state.kind || 'fallback'][state.tag];\n } else {\n // looking for multi type\n type = null;\n typeList = state.typeMap.multi[state.kind || 'fallback'];\n\n for (typeIndex = 0, typeQuantity = typeList.length; typeIndex < typeQuantity; typeIndex += 1) {\n if (state.tag.slice(0, typeList[typeIndex].tag.length) === typeList[typeIndex].tag) {\n type = typeList[typeIndex];\n break;\n }\n }\n }\n\n if (!type) {\n throwError(state, 'unknown tag !<' + state.tag + '>');\n }\n\n if (state.result !== null && type.kind !== state.kind) {\n throwError(state, 'unacceptable node kind for !<' + state.tag + '> tag; it should be \"' + type.kind + '\", not \"' + state.kind + '\"');\n }\n\n if (!type.resolve(state.result, state.tag)) { // `state.result` updated in resolver if matched\n throwError(state, 'cannot resolve a node with !<' + state.tag + '> explicit tag');\n } else {\n state.result = type.construct(state.result, state.tag);\n if (state.anchor !== null) {\n state.anchorMap[state.anchor] = state.result;\n }\n }\n }\n\n if (state.listener !== null) {\n state.listener('close', state);\n }\n return state.tag !== null || state.anchor !== null || hasContent;\n}\n\nfunction readDocument(state) {\n var documentStart = state.position,\n _position,\n directiveName,\n directiveArgs,\n hasDirectives = false,\n ch;\n\n state.version = null;\n state.checkLineBreaks = state.legacy;\n state.tagMap = Object.create(null);\n state.anchorMap = Object.create(null);\n\n while ((ch = state.input.charCodeAt(state.position)) !== 0) {\n skipSeparationSpace(state, true, -1);\n\n ch = state.input.charCodeAt(state.position);\n\n if (state.lineIndent > 0 || ch !== 0x25/* % */) {\n break;\n }\n\n hasDirectives = true;\n ch = state.input.charCodeAt(++state.position);\n _position = state.position;\n\n while (ch !== 0 && !is_WS_OR_EOL(ch)) {\n ch = state.input.charCodeAt(++state.position);\n }\n\n directiveName = state.input.slice(_position, state.position);\n directiveArgs = [];\n\n if (directiveName.length < 1) {\n throwError(state, 'directive name must not be less than one character in length');\n }\n\n while (ch !== 0) {\n while (is_WHITE_SPACE(ch)) {\n ch = state.input.charCodeAt(++state.position);\n }\n\n if (ch === 0x23/* # */) {\n do { ch = state.input.charCodeAt(++state.position); }\n while (ch !== 0 && !is_EOL(ch));\n break;\n }\n\n if (is_EOL(ch)) break;\n\n _position = state.position;\n\n while (ch !== 0 && !is_WS_OR_EOL(ch)) {\n ch = state.input.charCodeAt(++state.position);\n }\n\n directiveArgs.push(state.input.slice(_position, state.position));\n }\n\n if (ch !== 0) readLineBreak(state);\n\n if (_hasOwnProperty.call(directiveHandlers, directiveName)) {\n directiveHandlers[directiveName](state, directiveName, directiveArgs);\n } else {\n throwWarning(state, 'unknown document directive \"' + directiveName + '\"');\n }\n }\n\n skipSeparationSpace(state, true, -1);\n\n if (state.lineIndent === 0 &&\n state.input.charCodeAt(state.position) === 0x2D/* - */ &&\n state.input.charCodeAt(state.position + 1) === 0x2D/* - */ &&\n state.input.charCodeAt(state.position + 2) === 0x2D/* - */) {\n state.position += 3;\n skipSeparationSpace(state, true, -1);\n\n } else if (hasDirectives) {\n throwError(state, 'directives end mark is expected');\n }\n\n composeNode(state, state.lineIndent - 1, CONTEXT_BLOCK_OUT, false, true);\n skipSeparationSpace(state, true, -1);\n\n if (state.checkLineBreaks &&\n PATTERN_NON_ASCII_LINE_BREAKS.test(state.input.slice(documentStart, state.position))) {\n throwWarning(state, 'non-ASCII line breaks are interpreted as content');\n }\n\n state.documents.push(state.result);\n\n if (state.position === state.lineStart && testDocumentSeparator(state)) {\n\n if (state.input.charCodeAt(state.position) === 0x2E/* . */) {\n state.position += 3;\n skipSeparationSpace(state, true, -1);\n }\n return;\n }\n\n if (state.position < (state.length - 1)) {\n throwError(state, 'end of the stream or a document separator is expected');\n } else {\n return;\n }\n}\n\n\nfunction loadDocuments(input, options) {\n input = String(input);\n options = options || {};\n\n if (input.length !== 0) {\n\n // Add tailing `\\n` if not exists\n if (input.charCodeAt(input.length - 1) !== 0x0A/* LF */ &&\n input.charCodeAt(input.length - 1) !== 0x0D/* CR */) {\n input += '\\n';\n }\n\n // Strip BOM\n if (input.charCodeAt(0) === 0xFEFF) {\n input = input.slice(1);\n }\n }\n\n var state = new State(input, options);\n\n var nullpos = input.indexOf('\\0');\n\n if (nullpos !== -1) {\n state.position = nullpos;\n throwError(state, 'null byte is not allowed in input');\n }\n\n // Use 0 as string terminator. That significantly simplifies bounds check.\n state.input += '\\0';\n\n while (state.input.charCodeAt(state.position) === 0x20/* Space */) {\n state.lineIndent += 1;\n state.position += 1;\n }\n\n while (state.position < (state.length - 1)) {\n readDocument(state);\n }\n\n return state.documents;\n}\n\n\nfunction loadAll(input, iterator, options) {\n if (iterator !== null && typeof iterator === 'object' && typeof options === 'undefined') {\n options = iterator;\n iterator = null;\n }\n\n var documents = loadDocuments(input, options);\n\n if (typeof iterator !== 'function') {\n return documents;\n }\n\n for (var index = 0, length = documents.length; index < length; index += 1) {\n iterator(documents[index]);\n }\n}\n\n\nfunction load(input, options) {\n var documents = loadDocuments(input, options);\n\n if (documents.length === 0) {\n /*eslint-disable no-undefined*/\n return undefined;\n } else if (documents.length === 1) {\n return documents[0];\n }\n throw new YAMLException('expected a single document in the stream, but found more');\n}\n\n\nmodule.exports.loadAll = loadAll;\nmodule.exports.load = load;\n","'use strict';\n\n/*eslint-disable no-use-before-define*/\n\nvar common = require('./common');\nvar YAMLException = require('./exception');\nvar DEFAULT_SCHEMA = require('./schema/default');\n\nvar _toString = Object.prototype.toString;\nvar _hasOwnProperty = Object.prototype.hasOwnProperty;\n\nvar CHAR_BOM = 0xFEFF;\nvar CHAR_TAB = 0x09; /* Tab */\nvar CHAR_LINE_FEED = 0x0A; /* LF */\nvar CHAR_CARRIAGE_RETURN = 0x0D; /* CR */\nvar CHAR_SPACE = 0x20; /* Space */\nvar CHAR_EXCLAMATION = 0x21; /* ! */\nvar CHAR_DOUBLE_QUOTE = 0x22; /* \" */\nvar CHAR_SHARP = 0x23; /* # */\nvar CHAR_PERCENT = 0x25; /* % */\nvar CHAR_AMPERSAND = 0x26; /* & */\nvar CHAR_SINGLE_QUOTE = 0x27; /* ' */\nvar CHAR_ASTERISK = 0x2A; /* * */\nvar CHAR_COMMA = 0x2C; /* , */\nvar CHAR_MINUS = 0x2D; /* - */\nvar CHAR_COLON = 0x3A; /* : */\nvar CHAR_EQUALS = 0x3D; /* = */\nvar CHAR_GREATER_THAN = 0x3E; /* > */\nvar CHAR_QUESTION = 0x3F; /* ? */\nvar CHAR_COMMERCIAL_AT = 0x40; /* @ */\nvar CHAR_LEFT_SQUARE_BRACKET = 0x5B; /* [ */\nvar CHAR_RIGHT_SQUARE_BRACKET = 0x5D; /* ] */\nvar CHAR_GRAVE_ACCENT = 0x60; /* ` */\nvar CHAR_LEFT_CURLY_BRACKET = 0x7B; /* { */\nvar CHAR_VERTICAL_LINE = 0x7C; /* | */\nvar CHAR_RIGHT_CURLY_BRACKET = 0x7D; /* } */\n\nvar ESCAPE_SEQUENCES = {};\n\nESCAPE_SEQUENCES[0x00] = '\\\\0';\nESCAPE_SEQUENCES[0x07] = '\\\\a';\nESCAPE_SEQUENCES[0x08] = '\\\\b';\nESCAPE_SEQUENCES[0x09] = '\\\\t';\nESCAPE_SEQUENCES[0x0A] = '\\\\n';\nESCAPE_SEQUENCES[0x0B] = '\\\\v';\nESCAPE_SEQUENCES[0x0C] = '\\\\f';\nESCAPE_SEQUENCES[0x0D] = '\\\\r';\nESCAPE_SEQUENCES[0x1B] = '\\\\e';\nESCAPE_SEQUENCES[0x22] = '\\\\\"';\nESCAPE_SEQUENCES[0x5C] = '\\\\\\\\';\nESCAPE_SEQUENCES[0x85] = '\\\\N';\nESCAPE_SEQUENCES[0xA0] = '\\\\_';\nESCAPE_SEQUENCES[0x2028] = '\\\\L';\nESCAPE_SEQUENCES[0x2029] = '\\\\P';\n\nvar DEPRECATED_BOOLEANS_SYNTAX = [\n 'y', 'Y', 'yes', 'Yes', 'YES', 'on', 'On', 'ON',\n 'n', 'N', 'no', 'No', 'NO', 'off', 'Off', 'OFF'\n];\n\nvar DEPRECATED_BASE60_SYNTAX = /^[-+]?[0-9_]+(?::[0-9_]+)+(?:\\.[0-9_]*)?$/;\n\nfunction compileStyleMap(schema, map) {\n var result, keys, index, length, tag, style, type;\n\n if (map === null) return {};\n\n result = {};\n keys = Object.keys(map);\n\n for (index = 0, length = keys.length; index < length; index += 1) {\n tag = keys[index];\n style = String(map[tag]);\n\n if (tag.slice(0, 2) === '!!') {\n tag = 'tag:yaml.org,2002:' + tag.slice(2);\n }\n type = schema.compiledTypeMap['fallback'][tag];\n\n if (type && _hasOwnProperty.call(type.styleAliases, style)) {\n style = type.styleAliases[style];\n }\n\n result[tag] = style;\n }\n\n return result;\n}\n\nfunction encodeHex(character) {\n var string, handle, length;\n\n string = character.toString(16).toUpperCase();\n\n if (character <= 0xFF) {\n handle = 'x';\n length = 2;\n } else if (character <= 0xFFFF) {\n handle = 'u';\n length = 4;\n } else if (character <= 0xFFFFFFFF) {\n handle = 'U';\n length = 8;\n } else {\n throw new YAMLException('code point within a string may not be greater than 0xFFFFFFFF');\n }\n\n return '\\\\' + handle + common.repeat('0', length - string.length) + string;\n}\n\n\nvar QUOTING_TYPE_SINGLE = 1,\n QUOTING_TYPE_DOUBLE = 2;\n\nfunction State(options) {\n this.schema = options['schema'] || DEFAULT_SCHEMA;\n this.indent = Math.max(1, (options['indent'] || 2));\n this.noArrayIndent = options['noArrayIndent'] || false;\n this.skipInvalid = options['skipInvalid'] || false;\n this.flowLevel = (common.isNothing(options['flowLevel']) ? -1 : options['flowLevel']);\n this.styleMap = compileStyleMap(this.schema, options['styles'] || null);\n this.sortKeys = options['sortKeys'] || false;\n this.lineWidth = options['lineWidth'] || 80;\n this.noRefs = options['noRefs'] || false;\n this.noCompatMode = options['noCompatMode'] || false;\n this.condenseFlow = options['condenseFlow'] || false;\n this.quotingType = options['quotingType'] === '\"' ? QUOTING_TYPE_DOUBLE : QUOTING_TYPE_SINGLE;\n this.forceQuotes = options['forceQuotes'] || false;\n this.replacer = typeof options['replacer'] === 'function' ? options['replacer'] : null;\n\n this.implicitTypes = this.schema.compiledImplicit;\n this.explicitTypes = this.schema.compiledExplicit;\n\n this.tag = null;\n this.result = '';\n\n this.duplicates = [];\n this.usedDuplicates = null;\n}\n\n// Indents every line in a string. Empty lines (\\n only) are not indented.\nfunction indentString(string, spaces) {\n var ind = common.repeat(' ', spaces),\n position = 0,\n next = -1,\n result = '',\n line,\n length = string.length;\n\n while (position < length) {\n next = string.indexOf('\\n', position);\n if (next === -1) {\n line = string.slice(position);\n position = length;\n } else {\n line = string.slice(position, next + 1);\n position = next + 1;\n }\n\n if (line.length && line !== '\\n') result += ind;\n\n result += line;\n }\n\n return result;\n}\n\nfunction generateNextLine(state, level) {\n return '\\n' + common.repeat(' ', state.indent * level);\n}\n\nfunction testImplicitResolving(state, str) {\n var index, length, type;\n\n for (index = 0, length = state.implicitTypes.length; index < length; index += 1) {\n type = state.implicitTypes[index];\n\n if (type.resolve(str)) {\n return true;\n }\n }\n\n return false;\n}\n\n// [33] s-white ::= s-space | s-tab\nfunction isWhitespace(c) {\n return c === CHAR_SPACE || c === CHAR_TAB;\n}\n\n// Returns true if the character can be printed without escaping.\n// From YAML 1.2: \"any allowed characters known to be non-printable\n// should also be escaped. [However,] This isn’t mandatory\"\n// Derived from nb-char - \\t - #x85 - #xA0 - #x2028 - #x2029.\nfunction isPrintable(c) {\n return (0x00020 <= c && c <= 0x00007E)\n || ((0x000A1 <= c && c <= 0x00D7FF) && c !== 0x2028 && c !== 0x2029)\n || ((0x0E000 <= c && c <= 0x00FFFD) && c !== CHAR_BOM)\n || (0x10000 <= c && c <= 0x10FFFF);\n}\n\n// [34] ns-char ::= nb-char - s-white\n// [27] nb-char ::= c-printable - b-char - c-byte-order-mark\n// [26] b-char ::= b-line-feed | b-carriage-return\n// Including s-white (for some reason, examples doesn't match specs in this aspect)\n// ns-char ::= c-printable - b-line-feed - b-carriage-return - c-byte-order-mark\nfunction isNsCharOrWhitespace(c) {\n return isPrintable(c)\n && c !== CHAR_BOM\n // - b-char\n && c !== CHAR_CARRIAGE_RETURN\n && c !== CHAR_LINE_FEED;\n}\n\n// [127] ns-plain-safe(c) ::= c = flow-out ⇒ ns-plain-safe-out\n// c = flow-in ⇒ ns-plain-safe-in\n// c = block-key ⇒ ns-plain-safe-out\n// c = flow-key ⇒ ns-plain-safe-in\n// [128] ns-plain-safe-out ::= ns-char\n// [129] ns-plain-safe-in ::= ns-char - c-flow-indicator\n// [130] ns-plain-char(c) ::= ( ns-plain-safe(c) - “:” - “#” )\n// | ( /* An ns-char preceding */ “#” )\n// | ( “:” /* Followed by an ns-plain-safe(c) */ )\nfunction isPlainSafe(c, prev, inblock) {\n var cIsNsCharOrWhitespace = isNsCharOrWhitespace(c);\n var cIsNsChar = cIsNsCharOrWhitespace && !isWhitespace(c);\n return (\n // ns-plain-safe\n inblock ? // c = flow-in\n cIsNsCharOrWhitespace\n : cIsNsCharOrWhitespace\n // - c-flow-indicator\n && c !== CHAR_COMMA\n && c !== CHAR_LEFT_SQUARE_BRACKET\n && c !== CHAR_RIGHT_SQUARE_BRACKET\n && c !== CHAR_LEFT_CURLY_BRACKET\n && c !== CHAR_RIGHT_CURLY_BRACKET\n )\n // ns-plain-char\n && c !== CHAR_SHARP // false on '#'\n && !(prev === CHAR_COLON && !cIsNsChar) // false on ': '\n || (isNsCharOrWhitespace(prev) && !isWhitespace(prev) && c === CHAR_SHARP) // change to true on '[^ ]#'\n || (prev === CHAR_COLON && cIsNsChar); // change to true on ':[^ ]'\n}\n\n// Simplified test for values allowed as the first character in plain style.\nfunction isPlainSafeFirst(c) {\n // Uses a subset of ns-char - c-indicator\n // where ns-char = nb-char - s-white.\n // No support of ( ( “?” | “:” | “-” ) /* Followed by an ns-plain-safe(c)) */ ) part\n return isPrintable(c) && c !== CHAR_BOM\n && !isWhitespace(c) // - s-white\n // - (c-indicator ::=\n // “-” | “?” | “:” | “,” | “[” | “]” | “{” | “}”\n && c !== CHAR_MINUS\n && c !== CHAR_QUESTION\n && c !== CHAR_COLON\n && c !== CHAR_COMMA\n && c !== CHAR_LEFT_SQUARE_BRACKET\n && c !== CHAR_RIGHT_SQUARE_BRACKET\n && c !== CHAR_LEFT_CURLY_BRACKET\n && c !== CHAR_RIGHT_CURLY_BRACKET\n // | “#” | “&” | “*” | “!” | “|” | “=” | “>” | “'” | “\"”\n && c !== CHAR_SHARP\n && c !== CHAR_AMPERSAND\n && c !== CHAR_ASTERISK\n && c !== CHAR_EXCLAMATION\n && c !== CHAR_VERTICAL_LINE\n && c !== CHAR_EQUALS\n && c !== CHAR_GREATER_THAN\n && c !== CHAR_SINGLE_QUOTE\n && c !== CHAR_DOUBLE_QUOTE\n // | “%” | “@” | “`”)\n && c !== CHAR_PERCENT\n && c !== CHAR_COMMERCIAL_AT\n && c !== CHAR_GRAVE_ACCENT;\n}\n\n// Simplified test for values allowed as the last character in plain style.\nfunction isPlainSafeLast(c) {\n // just not whitespace or colon, it will be checked to be plain character later\n return !isWhitespace(c) && c !== CHAR_COLON;\n}\n\n// Same as 'string'.codePointAt(pos), but works in older browsers.\nfunction codePointAt(string, pos) {\n var first = string.charCodeAt(pos), second;\n if (first >= 0xD800 && first <= 0xDBFF && pos + 1 < string.length) {\n second = string.charCodeAt(pos + 1);\n if (second >= 0xDC00 && second <= 0xDFFF) {\n // https://mathiasbynens.be/notes/javascript-encoding#surrogate-formulae\n return (first - 0xD800) * 0x400 + second - 0xDC00 + 0x10000;\n }\n }\n return first;\n}\n\n// Determines whether block indentation indicator is required.\nfunction needIndentIndicator(string) {\n var leadingSpaceRe = /^\\n* /;\n return leadingSpaceRe.test(string);\n}\n\nvar STYLE_PLAIN = 1,\n STYLE_SINGLE = 2,\n STYLE_LITERAL = 3,\n STYLE_FOLDED = 4,\n STYLE_DOUBLE = 5;\n\n// Determines which scalar styles are possible and returns the preferred style.\n// lineWidth = -1 => no limit.\n// Pre-conditions: str.length > 0.\n// Post-conditions:\n// STYLE_PLAIN or STYLE_SINGLE => no \\n are in the string.\n// STYLE_LITERAL => no lines are suitable for folding (or lineWidth is -1).\n// STYLE_FOLDED => a line > lineWidth and can be folded (and lineWidth != -1).\nfunction chooseScalarStyle(string, singleLineOnly, indentPerLevel, lineWidth,\n testAmbiguousType, quotingType, forceQuotes, inblock) {\n\n var i;\n var char = 0;\n var prevChar = null;\n var hasLineBreak = false;\n var hasFoldableLine = false; // only checked if shouldTrackWidth\n var shouldTrackWidth = lineWidth !== -1;\n var previousLineBreak = -1; // count the first line correctly\n var plain = isPlainSafeFirst(codePointAt(string, 0))\n && isPlainSafeLast(codePointAt(string, string.length - 1));\n\n if (singleLineOnly || forceQuotes) {\n // Case: no block styles.\n // Check for disallowed characters to rule out plain and single.\n for (i = 0; i < string.length; char >= 0x10000 ? i += 2 : i++) {\n char = codePointAt(string, i);\n if (!isPrintable(char)) {\n return STYLE_DOUBLE;\n }\n plain = plain && isPlainSafe(char, prevChar, inblock);\n prevChar = char;\n }\n } else {\n // Case: block styles permitted.\n for (i = 0; i < string.length; char >= 0x10000 ? i += 2 : i++) {\n char = codePointAt(string, i);\n if (char === CHAR_LINE_FEED) {\n hasLineBreak = true;\n // Check if any line can be folded.\n if (shouldTrackWidth) {\n hasFoldableLine = hasFoldableLine ||\n // Foldable line = too long, and not more-indented.\n (i - previousLineBreak - 1 > lineWidth &&\n string[previousLineBreak + 1] !== ' ');\n previousLineBreak = i;\n }\n } else if (!isPrintable(char)) {\n return STYLE_DOUBLE;\n }\n plain = plain && isPlainSafe(char, prevChar, inblock);\n prevChar = char;\n }\n // in case the end is missing a \\n\n hasFoldableLine = hasFoldableLine || (shouldTrackWidth &&\n (i - previousLineBreak - 1 > lineWidth &&\n string[previousLineBreak + 1] !== ' '));\n }\n // Although every style can represent \\n without escaping, prefer block styles\n // for multiline, since they're more readable and they don't add empty lines.\n // Also prefer folding a super-long line.\n if (!hasLineBreak && !hasFoldableLine) {\n // Strings interpretable as another type have to be quoted;\n // e.g. the string 'true' vs. the boolean true.\n if (plain && !forceQuotes && !testAmbiguousType(string)) {\n return STYLE_PLAIN;\n }\n return quotingType === QUOTING_TYPE_DOUBLE ? STYLE_DOUBLE : STYLE_SINGLE;\n }\n // Edge case: block indentation indicator can only have one digit.\n if (indentPerLevel > 9 && needIndentIndicator(string)) {\n return STYLE_DOUBLE;\n }\n // At this point we know block styles are valid.\n // Prefer literal style unless we want to fold.\n if (!forceQuotes) {\n return hasFoldableLine ? STYLE_FOLDED : STYLE_LITERAL;\n }\n return quotingType === QUOTING_TYPE_DOUBLE ? STYLE_DOUBLE : STYLE_SINGLE;\n}\n\n// Note: line breaking/folding is implemented for only the folded style.\n// NB. We drop the last trailing newline (if any) of a returned block scalar\n// since the dumper adds its own newline. This always works:\n// • No ending newline => unaffected; already using strip \"-\" chomping.\n// • Ending newline => removed then restored.\n// Importantly, this keeps the \"+\" chomp indicator from gaining an extra line.\nfunction writeScalar(state, string, level, iskey, inblock) {\n state.dump = (function () {\n if (string.length === 0) {\n return state.quotingType === QUOTING_TYPE_DOUBLE ? '\"\"' : \"''\";\n }\n if (!state.noCompatMode) {\n if (DEPRECATED_BOOLEANS_SYNTAX.indexOf(string) !== -1 || DEPRECATED_BASE60_SYNTAX.test(string)) {\n return state.quotingType === QUOTING_TYPE_DOUBLE ? ('\"' + string + '\"') : (\"'\" + string + \"'\");\n }\n }\n\n var indent = state.indent * Math.max(1, level); // no 0-indent scalars\n // As indentation gets deeper, let the width decrease monotonically\n // to the lower bound min(state.lineWidth, 40).\n // Note that this implies\n // state.lineWidth ≤ 40 + state.indent: width is fixed at the lower bound.\n // state.lineWidth > 40 + state.indent: width decreases until the lower bound.\n // This behaves better than a constant minimum width which disallows narrower options,\n // or an indent threshold which causes the width to suddenly increase.\n var lineWidth = state.lineWidth === -1\n ? -1 : Math.max(Math.min(state.lineWidth, 40), state.lineWidth - indent);\n\n // Without knowing if keys are implicit/explicit, assume implicit for safety.\n var singleLineOnly = iskey\n // No block styles in flow mode.\n || (state.flowLevel > -1 && level >= state.flowLevel);\n function testAmbiguity(string) {\n return testImplicitResolving(state, string);\n }\n\n switch (chooseScalarStyle(string, singleLineOnly, state.indent, lineWidth,\n testAmbiguity, state.quotingType, state.forceQuotes && !iskey, inblock)) {\n\n case STYLE_PLAIN:\n return string;\n case STYLE_SINGLE:\n return \"'\" + string.replace(/'/g, \"''\") + \"'\";\n case STYLE_LITERAL:\n return '|' + blockHeader(string, state.indent)\n + dropEndingNewline(indentString(string, indent));\n case STYLE_FOLDED:\n return '>' + blockHeader(string, state.indent)\n + dropEndingNewline(indentString(foldString(string, lineWidth), indent));\n case STYLE_DOUBLE:\n return '\"' + escapeString(string, lineWidth) + '\"';\n default:\n throw new YAMLException('impossible error: invalid scalar style');\n }\n }());\n}\n\n// Pre-conditions: string is valid for a block scalar, 1 <= indentPerLevel <= 9.\nfunction blockHeader(string, indentPerLevel) {\n var indentIndicator = needIndentIndicator(string) ? String(indentPerLevel) : '';\n\n // note the special case: the string '\\n' counts as a \"trailing\" empty line.\n var clip = string[string.length - 1] === '\\n';\n var keep = clip && (string[string.length - 2] === '\\n' || string === '\\n');\n var chomp = keep ? '+' : (clip ? '' : '-');\n\n return indentIndicator + chomp + '\\n';\n}\n\n// (See the note for writeScalar.)\nfunction dropEndingNewline(string) {\n return string[string.length - 1] === '\\n' ? string.slice(0, -1) : string;\n}\n\n// Note: a long line without a suitable break point will exceed the width limit.\n// Pre-conditions: every char in str isPrintable, str.length > 0, width > 0.\nfunction foldString(string, width) {\n // In folded style, $k$ consecutive newlines output as $k+1$ newlines—\n // unless they're before or after a more-indented line, or at the very\n // beginning or end, in which case $k$ maps to $k$.\n // Therefore, parse each chunk as newline(s) followed by a content line.\n var lineRe = /(\\n+)([^\\n]*)/g;\n\n // first line (possibly an empty line)\n var result = (function () {\n var nextLF = string.indexOf('\\n');\n nextLF = nextLF !== -1 ? nextLF : string.length;\n lineRe.lastIndex = nextLF;\n return foldLine(string.slice(0, nextLF), width);\n }());\n // If we haven't reached the first content line yet, don't add an extra \\n.\n var prevMoreIndented = string[0] === '\\n' || string[0] === ' ';\n var moreIndented;\n\n // rest of the lines\n var match;\n while ((match = lineRe.exec(string))) {\n var prefix = match[1], line = match[2];\n moreIndented = (line[0] === ' ');\n result += prefix\n + (!prevMoreIndented && !moreIndented && line !== ''\n ? '\\n' : '')\n + foldLine(line, width);\n prevMoreIndented = moreIndented;\n }\n\n return result;\n}\n\n// Greedy line breaking.\n// Picks the longest line under the limit each time,\n// otherwise settles for the shortest line over the limit.\n// NB. More-indented lines *cannot* be folded, as that would add an extra \\n.\nfunction foldLine(line, width) {\n if (line === '' || line[0] === ' ') return line;\n\n // Since a more-indented line adds a \\n, breaks can't be followed by a space.\n var breakRe = / [^ ]/g; // note: the match index will always be <= length-2.\n var match;\n // start is an inclusive index. end, curr, and next are exclusive.\n var start = 0, end, curr = 0, next = 0;\n var result = '';\n\n // Invariants: 0 <= start <= length-1.\n // 0 <= curr <= next <= max(0, length-2). curr - start <= width.\n // Inside the loop:\n // A match implies length >= 2, so curr and next are <= length-2.\n while ((match = breakRe.exec(line))) {\n next = match.index;\n // maintain invariant: curr - start <= width\n if (next - start > width) {\n end = (curr > start) ? curr : next; // derive end <= length-2\n result += '\\n' + line.slice(start, end);\n // skip the space that was output as \\n\n start = end + 1; // derive start <= length-1\n }\n curr = next;\n }\n\n // By the invariants, start <= length-1, so there is something left over.\n // It is either the whole string or a part starting from non-whitespace.\n result += '\\n';\n // Insert a break if the remainder is too long and there is a break available.\n if (line.length - start > width && curr > start) {\n result += line.slice(start, curr) + '\\n' + line.slice(curr + 1);\n } else {\n result += line.slice(start);\n }\n\n return result.slice(1); // drop extra \\n joiner\n}\n\n// Escapes a double-quoted string.\nfunction escapeString(string) {\n var result = '';\n var char = 0;\n var escapeSeq;\n\n for (var i = 0; i < string.length; char >= 0x10000 ? i += 2 : i++) {\n char = codePointAt(string, i);\n escapeSeq = ESCAPE_SEQUENCES[char];\n\n if (!escapeSeq && isPrintable(char)) {\n result += string[i];\n if (char >= 0x10000) result += string[i + 1];\n } else {\n result += escapeSeq || encodeHex(char);\n }\n }\n\n return result;\n}\n\nfunction writeFlowSequence(state, level, object) {\n var _result = '',\n _tag = state.tag,\n index,\n length,\n value;\n\n for (index = 0, length = object.length; index < length; index += 1) {\n value = object[index];\n\n if (state.replacer) {\n value = state.replacer.call(object, String(index), value);\n }\n\n // Write only valid elements, put null instead of invalid elements.\n if (writeNode(state, level, value, false, false) ||\n (typeof value === 'undefined' &&\n writeNode(state, level, null, false, false))) {\n\n if (_result !== '') _result += ',' + (!state.condenseFlow ? ' ' : '');\n _result += state.dump;\n }\n }\n\n state.tag = _tag;\n state.dump = '[' + _result + ']';\n}\n\nfunction writeBlockSequence(state, level, object, compact) {\n var _result = '',\n _tag = state.tag,\n index,\n length,\n value;\n\n for (index = 0, length = object.length; index < length; index += 1) {\n value = object[index];\n\n if (state.replacer) {\n value = state.replacer.call(object, String(index), value);\n }\n\n // Write only valid elements, put null instead of invalid elements.\n if (writeNode(state, level + 1, value, true, true, false, true) ||\n (typeof value === 'undefined' &&\n writeNode(state, level + 1, null, true, true, false, true))) {\n\n if (!compact || _result !== '') {\n _result += generateNextLine(state, level);\n }\n\n if (state.dump && CHAR_LINE_FEED === state.dump.charCodeAt(0)) {\n _result += '-';\n } else {\n _result += '- ';\n }\n\n _result += state.dump;\n }\n }\n\n state.tag = _tag;\n state.dump = _result || '[]'; // Empty sequence if no valid values.\n}\n\nfunction writeFlowMapping(state, level, object) {\n var _result = '',\n _tag = state.tag,\n objectKeyList = Object.keys(object),\n index,\n length,\n objectKey,\n objectValue,\n pairBuffer;\n\n for (index = 0, length = objectKeyList.length; index < length; index += 1) {\n\n pairBuffer = '';\n if (_result !== '') pairBuffer += ', ';\n\n if (state.condenseFlow) pairBuffer += '\"';\n\n objectKey = objectKeyList[index];\n objectValue = object[objectKey];\n\n if (state.replacer) {\n objectValue = state.replacer.call(object, objectKey, objectValue);\n }\n\n if (!writeNode(state, level, objectKey, false, false)) {\n continue; // Skip this pair because of invalid key;\n }\n\n if (state.dump.length > 1024) pairBuffer += '? ';\n\n pairBuffer += state.dump + (state.condenseFlow ? '\"' : '') + ':' + (state.condenseFlow ? '' : ' ');\n\n if (!writeNode(state, level, objectValue, false, false)) {\n continue; // Skip this pair because of invalid value.\n }\n\n pairBuffer += state.dump;\n\n // Both key and value are valid.\n _result += pairBuffer;\n }\n\n state.tag = _tag;\n state.dump = '{' + _result + '}';\n}\n\nfunction writeBlockMapping(state, level, object, compact) {\n var _result = '',\n _tag = state.tag,\n objectKeyList = Object.keys(object),\n index,\n length,\n objectKey,\n objectValue,\n explicitPair,\n pairBuffer;\n\n // Allow sorting keys so that the output file is deterministic\n if (state.sortKeys === true) {\n // Default sorting\n objectKeyList.sort();\n } else if (typeof state.sortKeys === 'function') {\n // Custom sort function\n objectKeyList.sort(state.sortKeys);\n } else if (state.sortKeys) {\n // Something is wrong\n throw new YAMLException('sortKeys must be a boolean or a function');\n }\n\n for (index = 0, length = objectKeyList.length; index < length; index += 1) {\n pairBuffer = '';\n\n if (!compact || _result !== '') {\n pairBuffer += generateNextLine(state, level);\n }\n\n objectKey = objectKeyList[index];\n objectValue = object[objectKey];\n\n if (state.replacer) {\n objectValue = state.replacer.call(object, objectKey, objectValue);\n }\n\n if (!writeNode(state, level + 1, objectKey, true, true, true)) {\n continue; // Skip this pair because of invalid key.\n }\n\n explicitPair = (state.tag !== null && state.tag !== '?') ||\n (state.dump && state.dump.length > 1024);\n\n if (explicitPair) {\n if (state.dump && CHAR_LINE_FEED === state.dump.charCodeAt(0)) {\n pairBuffer += '?';\n } else {\n pairBuffer += '? ';\n }\n }\n\n pairBuffer += state.dump;\n\n if (explicitPair) {\n pairBuffer += generateNextLine(state, level);\n }\n\n if (!writeNode(state, level + 1, objectValue, true, explicitPair)) {\n continue; // Skip this pair because of invalid value.\n }\n\n if (state.dump && CHAR_LINE_FEED === state.dump.charCodeAt(0)) {\n pairBuffer += ':';\n } else {\n pairBuffer += ': ';\n }\n\n pairBuffer += state.dump;\n\n // Both key and value are valid.\n _result += pairBuffer;\n }\n\n state.tag = _tag;\n state.dump = _result || '{}'; // Empty mapping if no valid pairs.\n}\n\nfunction detectType(state, object, explicit) {\n var _result, typeList, index, length, type, style;\n\n typeList = explicit ? state.explicitTypes : state.implicitTypes;\n\n for (index = 0, length = typeList.length; index < length; index += 1) {\n type = typeList[index];\n\n if ((type.instanceOf || type.predicate) &&\n (!type.instanceOf || ((typeof object === 'object') && (object instanceof type.instanceOf))) &&\n (!type.predicate || type.predicate(object))) {\n\n if (explicit) {\n if (type.multi && type.representName) {\n state.tag = type.representName(object);\n } else {\n state.tag = type.tag;\n }\n } else {\n state.tag = '?';\n }\n\n if (type.represent) {\n style = state.styleMap[type.tag] || type.defaultStyle;\n\n if (_toString.call(type.represent) === '[object Function]') {\n _result = type.represent(object, style);\n } else if (_hasOwnProperty.call(type.represent, style)) {\n _result = type.represent[style](object, style);\n } else {\n throw new YAMLException('!<' + type.tag + '> tag resolver accepts not \"' + style + '\" style');\n }\n\n state.dump = _result;\n }\n\n return true;\n }\n }\n\n return false;\n}\n\n// Serializes `object` and writes it to global `result`.\n// Returns true on success, or false on invalid object.\n//\nfunction writeNode(state, level, object, block, compact, iskey, isblockseq) {\n state.tag = null;\n state.dump = object;\n\n if (!detectType(state, object, false)) {\n detectType(state, object, true);\n }\n\n var type = _toString.call(state.dump);\n var inblock = block;\n var tagStr;\n\n if (block) {\n block = (state.flowLevel < 0 || state.flowLevel > level);\n }\n\n var objectOrArray = type === '[object Object]' || type === '[object Array]',\n duplicateIndex,\n duplicate;\n\n if (objectOrArray) {\n duplicateIndex = state.duplicates.indexOf(object);\n duplicate = duplicateIndex !== -1;\n }\n\n if ((state.tag !== null && state.tag !== '?') || duplicate || (state.indent !== 2 && level > 0)) {\n compact = false;\n }\n\n if (duplicate && state.usedDuplicates[duplicateIndex]) {\n state.dump = '*ref_' + duplicateIndex;\n } else {\n if (objectOrArray && duplicate && !state.usedDuplicates[duplicateIndex]) {\n state.usedDuplicates[duplicateIndex] = true;\n }\n if (type === '[object Object]') {\n if (block && (Object.keys(state.dump).length !== 0)) {\n writeBlockMapping(state, level, state.dump, compact);\n if (duplicate) {\n state.dump = '&ref_' + duplicateIndex + state.dump;\n }\n } else {\n writeFlowMapping(state, level, state.dump);\n if (duplicate) {\n state.dump = '&ref_' + duplicateIndex + ' ' + state.dump;\n }\n }\n } else if (type === '[object Array]') {\n if (block && (state.dump.length !== 0)) {\n if (state.noArrayIndent && !isblockseq && level > 0) {\n writeBlockSequence(state, level - 1, state.dump, compact);\n } else {\n writeBlockSequence(state, level, state.dump, compact);\n }\n if (duplicate) {\n state.dump = '&ref_' + duplicateIndex + state.dump;\n }\n } else {\n writeFlowSequence(state, level, state.dump);\n if (duplicate) {\n state.dump = '&ref_' + duplicateIndex + ' ' + state.dump;\n }\n }\n } else if (type === '[object String]') {\n if (state.tag !== '?') {\n writeScalar(state, state.dump, level, iskey, inblock);\n }\n } else if (type === '[object Undefined]') {\n return false;\n } else {\n if (state.skipInvalid) return false;\n throw new YAMLException('unacceptable kind of an object to dump ' + type);\n }\n\n if (state.tag !== null && state.tag !== '?') {\n // Need to encode all characters except those allowed by the spec:\n //\n // [35] ns-dec-digit ::= [#x30-#x39] /* 0-9 */\n // [36] ns-hex-digit ::= ns-dec-digit\n // | [#x41-#x46] /* A-F */ | [#x61-#x66] /* a-f */\n // [37] ns-ascii-letter ::= [#x41-#x5A] /* A-Z */ | [#x61-#x7A] /* a-z */\n // [38] ns-word-char ::= ns-dec-digit | ns-ascii-letter | “-”\n // [39] ns-uri-char ::= “%” ns-hex-digit ns-hex-digit | ns-word-char | “#”\n // | “;” | “/” | “?” | “:” | “@” | “&” | “=” | “+” | “$” | “,”\n // | “_” | “.” | “!” | “~” | “*” | “'” | “(” | “)” | “[” | “]”\n //\n // Also need to encode '!' because it has special meaning (end of tag prefix).\n //\n tagStr = encodeURI(\n state.tag[0] === '!' ? state.tag.slice(1) : state.tag\n ).replace(/!/g, '%21');\n\n if (state.tag[0] === '!') {\n tagStr = '!' + tagStr;\n } else if (tagStr.slice(0, 18) === 'tag:yaml.org,2002:') {\n tagStr = '!!' + tagStr.slice(18);\n } else {\n tagStr = '!<' + tagStr + '>';\n }\n\n state.dump = tagStr + ' ' + state.dump;\n }\n }\n\n return true;\n}\n\nfunction getDuplicateReferences(object, state) {\n var objects = [],\n duplicatesIndexes = [],\n index,\n length;\n\n inspectNode(object, objects, duplicatesIndexes);\n\n for (index = 0, length = duplicatesIndexes.length; index < length; index += 1) {\n state.duplicates.push(objects[duplicatesIndexes[index]]);\n }\n state.usedDuplicates = new Array(length);\n}\n\nfunction inspectNode(object, objects, duplicatesIndexes) {\n var objectKeyList,\n index,\n length;\n\n if (object !== null && typeof object === 'object') {\n index = objects.indexOf(object);\n if (index !== -1) {\n if (duplicatesIndexes.indexOf(index) === -1) {\n duplicatesIndexes.push(index);\n }\n } else {\n objects.push(object);\n\n if (Array.isArray(object)) {\n for (index = 0, length = object.length; index < length; index += 1) {\n inspectNode(object[index], objects, duplicatesIndexes);\n }\n } else {\n objectKeyList = Object.keys(object);\n\n for (index = 0, length = objectKeyList.length; index < length; index += 1) {\n inspectNode(object[objectKeyList[index]], objects, duplicatesIndexes);\n }\n }\n }\n }\n}\n\nfunction dump(input, options) {\n options = options || {};\n\n var state = new State(options);\n\n if (!state.noRefs) getDuplicateReferences(input, state);\n\n var value = input;\n\n if (state.replacer) {\n value = state.replacer.call({ '': value }, '', value);\n }\n\n if (writeNode(state, 0, value, true, true)) return state.dump + '\\n';\n\n return '';\n}\n\nmodule.exports.dump = dump;\n","'use strict';\n\n\nvar loader = require('./lib/loader');\nvar dumper = require('./lib/dumper');\n\n\nfunction renamed(from, to) {\n return function () {\n throw new Error('Function yaml.' + from + ' is removed in js-yaml 4. ' +\n 'Use yaml.' + to + ' instead, which is now safe by default.');\n };\n}\n\n\nmodule.exports.Type = require('./lib/type');\nmodule.exports.Schema = require('./lib/schema');\nmodule.exports.FAILSAFE_SCHEMA = require('./lib/schema/failsafe');\nmodule.exports.JSON_SCHEMA = require('./lib/schema/json');\nmodule.exports.CORE_SCHEMA = require('./lib/schema/core');\nmodule.exports.DEFAULT_SCHEMA = require('./lib/schema/default');\nmodule.exports.load = loader.load;\nmodule.exports.loadAll = loader.loadAll;\nmodule.exports.dump = dumper.dump;\nmodule.exports.YAMLException = require('./lib/exception');\n\n// Re-export all types in case user wants to create custom schema\nmodule.exports.types = {\n binary: require('./lib/type/binary'),\n float: require('./lib/type/float'),\n map: require('./lib/type/map'),\n null: require('./lib/type/null'),\n pairs: require('./lib/type/pairs'),\n set: require('./lib/type/set'),\n timestamp: require('./lib/type/timestamp'),\n bool: require('./lib/type/bool'),\n int: require('./lib/type/int'),\n merge: require('./lib/type/merge'),\n omap: require('./lib/type/omap'),\n seq: require('./lib/type/seq'),\n str: require('./lib/type/str')\n};\n\n// Removed functions from JS-YAML 3.0.x\nmodule.exports.safeLoad = renamed('safeLoad', 'load');\nmodule.exports.safeLoadAll = renamed('safeLoadAll', 'loadAll');\nmodule.exports.safeDump = renamed('safeDump', 'dump');\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Configuration = void 0;\nvar axios_1 = __importDefault(require(\"axios\"));\nvar os = __importStar(require(\"os\"));\nvar path = __importStar(require(\"path\"));\nvar yaml = __importStar(require(\"js-yaml\"));\nvar fs = __importStar(require(\"fs\"));\nvar Configuration = /** @class */ (function () {\n function Configuration(param) {\n if (!param) {\n param = this.getParams();\n }\n this.accessToken = param.accessToken;\n this.basePathBeta = param.baseurl + \"/beta\";\n this.basePathV3 = param.baseurl + \"/v3\";\n this.basePathV2 = param.baseurl + \"/v2\";\n this.basePathCC = param.baseurl;\n this.tokenUrl = param.tokenUrl;\n this.clientId = param.clientId;\n this.clientSecret = param.clientSecret;\n var url = \"\".concat(this.tokenUrl, \"?grant_type=client_credentials&client_id=\").concat(this.clientId, \"&client_secret=\").concat(this.clientSecret);\n if (!this.accessToken) {\n this.accessToken = this.getAccessToken(url);\n }\n }\n Configuration.prototype.getHomeParams = function () {\n var config = {};\n try {\n var homeDir = os.homedir();\n var configPath = path.join(homeDir, '.sailpoint', 'config.yaml');\n var doc = yaml.load(fs.readFileSync(configPath, 'utf8'));\n if (doc.authtype && doc.authtype.toLowerCase() === 'pat') {\n config.baseurl = doc.environments[doc.activeenvironment].baseurl;\n config.clientId = doc.environments[doc.activeenvironment].pat.clientid;\n config.clientSecret = doc.environments[doc.activeenvironment].pat.clientsecret;\n config.tokenUrl = config.baseurl + '/oauth/token';\n }\n }\n catch (error) {\n console.log('unable to find config file in home directory');\n }\n return config;\n };\n Configuration.prototype.getLocalParams = function () {\n var config = {};\n try {\n var configPath = './config.json';\n var jsonString = fs.readFileSync(configPath, 'utf-8');\n var jsonData = JSON.parse(jsonString);\n config.baseurl = jsonData.BaseURL;\n config.clientId = jsonData.ClientId;\n config.clientSecret = jsonData.ClientSecret;\n config.tokenUrl = config.baseurl + '/oauth/token';\n }\n catch (error) {\n console.log('unable to find config file in local directory');\n }\n return config;\n };\n Configuration.prototype.getEnvParams = function () {\n var config = {};\n config.baseurl = process.env[\"SAIL_BASE_URL\"] ? process.env[\"SAIL_BASE_URL\"] : \"\";\n config.clientId = process.env[\"SAIL_CLIENT_ID\"] ? process.env[\"SAIL_CLIENT_ID\"] : \"\";\n config.clientSecret = process.env[\"SAIL_CLIENT_SECRET\"] ? process.env[\"SAIL_CLIENT_SECRET\"] : \"\";\n config.tokenUrl = config.baseurl + '/oauth/token';\n return config;\n };\n Configuration.prototype.getParams = function () {\n var envConfig = this.getEnvParams();\n if (envConfig.baseurl) {\n return envConfig;\n }\n var localConfig = this.getLocalParams();\n if (localConfig.baseurl) {\n return localConfig;\n }\n var homeConfig = this.getHomeParams();\n if (homeConfig.baseurl) {\n console.log(\"Configuration file found in home directory, this approach of loading configuration will be deprecated in future releases, please upgrade the CLI and use the new 'sail sdk init config' command to create a local configuration file\");\n return homeConfig;\n }\n return {};\n };\n Configuration.prototype.getAccessToken = function (url) {\n return __awaiter(this, void 0, void 0, function () {\n var _a, data, status_1, error_1;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n _b.trys.push([0, 2, , 3]);\n return [4 /*yield*/, axios_1.default.post(url)];\n case 1:\n _a = _b.sent(), data = _a.data, status_1 = _a.status;\n if (status_1 === 200) {\n return [2 /*return*/, data.access_token];\n }\n else {\n throw new Error(\"Unauthorized\");\n }\n return [3 /*break*/, 3];\n case 2:\n error_1 = _b.sent();\n console.error(\"Unable to fetch access token. Aborting.\");\n throw new Error(error_1);\n case 3: return [2 /*return*/];\n }\n });\n });\n };\n /**\n * Check if the given MIME is a JSON MIME.\n * JSON MIME examples:\n * application/json\n * application/json; charset=UTF8\n * APPLICATION/JSON\n * application/vnd.company+json\n * @param mime - MIME (Multipurpose Internet Mail Extensions)\n * @return True if the given MIME is JSON, false otherwise.\n */\n Configuration.prototype.isJsonMime = function (mime) {\n var jsonMime = new RegExp('^(application\\/json|[^;/ \\t]+\\/[^;/ \\t]+[+]json)[ \\t]*(;.*)?$', 'i');\n return mime !== null && (jsonMime.test(mime) || mime.toLowerCase() === 'application/json-patch+json');\n };\n return Configuration;\n}());\nexports.Configuration = Configuration;\n//# sourceMappingURL=configuration.js.map","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Paginator = void 0;\nvar Paginator = /** @class */ (function () {\n function Paginator() {\n }\n Paginator.paginate = function (thisArg, callbackFn, args, increment) {\n return __awaiter(this, void 0, void 0, function () {\n var params, maxLimit, modified, results;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n params = args ? args : { limit: 0, offset: 0 };\n maxLimit = params && params.limit ? params.limit : 0;\n if (!params.offset) {\n params.offset = 0;\n }\n if (!increment) {\n increment = 250;\n }\n params.limit = increment;\n modified = [];\n _a.label = 1;\n case 1:\n if (!true) return [3 /*break*/, 3];\n console.log(\"Paginating call, offset = \".concat(params.offset));\n return [4 /*yield*/, callbackFn.call(thisArg, params)];\n case 2:\n results = _a.sent();\n modified.push.apply(modified, results.data);\n if (results.data.length < increment ||\n (modified.length >= maxLimit && maxLimit > 0)) {\n results.data = modified;\n return [2 /*return*/, results];\n }\n params.offset += increment;\n return [3 /*break*/, 1];\n case 3: return [2 /*return*/];\n }\n });\n });\n };\n Paginator.paginateSearchApi = function (searchAPI, search, increment, limit) {\n return __awaiter(this, void 0, void 0, function () {\n var searchParams, offset, maxLimit, modified, results, result;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n increment = increment ? increment : 250;\n searchParams = {\n search: search,\n limit: increment,\n };\n offset = 0;\n maxLimit = limit ? limit : 0;\n modified = [];\n if (!search.sort || search.sort.length != 1) {\n throw \"search must include exactly one sort parameter to paginate properly\";\n }\n _a.label = 1;\n case 1:\n if (!true) return [3 /*break*/, 3];\n console.log(\"Paginating call, offset = \".concat(offset));\n return [4 /*yield*/, searchAPI.searchPost(searchParams)];\n case 2:\n results = _a.sent();\n modified.push.apply(modified, results.data);\n if (results.data.length < increment ||\n (modified.length >= maxLimit && maxLimit > 0)) {\n results.data = modified;\n return [2 /*return*/, results];\n }\n else {\n result = results.data[results.data.length - 1];\n if (searchParams.search.sort) {\n searchParams.search.searchAfter = [\n result[searchParams.search.sort[0].replace(\"-\", \"\")],\n ];\n }\n else {\n throw \"search unexpectedly did not return a result we can search after!\";\n }\n }\n offset += increment;\n return [3 /*break*/, 1];\n case 3: return [2 /*return*/];\n }\n });\n });\n };\n return Paginator;\n}());\nexports.Paginator = Paginator;\n//# sourceMappingURL=paginator.js.map","\"use strict\";\n/* tslint:disable */\n/* eslint-disable */\n/**\n * IdentityNow V3 API\n * Use these APIs to interact with the IdentityNow platform to achieve repeatable, automated processes with greater scalability. We encourage you to join the SailPoint Developer Community forum at https://developer.sailpoint.com/discuss to connect with other developers using our APIs.\n *\n * The version of the OpenAPI document: 3.0.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.axiosRetry = exports.Configuration = exports.ConfigurationCC = exports.ConfigurationV2 = exports.ConfigurationV3 = exports.ConfigurationBeta = void 0;\n__exportStar(require(\"./beta/api\"), exports);\nvar configuration_1 = require(\"./beta/configuration\");\nObject.defineProperty(exports, \"ConfigurationBeta\", { enumerable: true, get: function () { return configuration_1.Configuration; } });\n__exportStar(require(\"./v3/api\"), exports);\nvar configuration_2 = require(\"./v3/configuration\");\nObject.defineProperty(exports, \"ConfigurationV3\", { enumerable: true, get: function () { return configuration_2.Configuration; } });\n__exportStar(require(\"./v2/api\"), exports);\nvar configuration_3 = require(\"./v2/configuration\");\nObject.defineProperty(exports, \"ConfigurationV2\", { enumerable: true, get: function () { return configuration_3.Configuration; } });\n__exportStar(require(\"./cc/api\"), exports);\nvar configuration_4 = require(\"./cc/configuration\");\nObject.defineProperty(exports, \"ConfigurationCC\", { enumerable: true, get: function () { return configuration_4.Configuration; } });\nvar configuration_5 = require(\"./configuration\");\nObject.defineProperty(exports, \"Configuration\", { enumerable: true, get: function () { return configuration_5.Configuration; } });\n__exportStar(require(\"./paginator\"), exports);\nvar axiosRetry = __importStar(require(\"axios-retry\"));\nexports.axiosRetry = axiosRetry;\n//# sourceMappingURL=index.js.map","import { e as error } from \"./index.js\";\nimport axios from \"axios\";\nimport { Configuration } from \"sailpoint-api-client\";\nfunction HandleError(message = \"issue during fetch\", err) {\n console.log(err);\n if (axios.isAxiosError(err)) {\n throw error(500, { message, AxiosError: err });\n } else {\n throw error(500, { message, Error: err });\n }\n}\nfunction createConfiguration(baseUrl, token) {\n const apiConfig = new Configuration({ baseurl: baseUrl, accessToken: token });\n return apiConfig;\n}\nexport {\n HandleError as H,\n createConfiguration as c\n};\n"],"names":["require$$0","require$$1","require$$2","http","require$$3","require$$5","require$$6","zlib","require$$7","require$$8","EventEmitter","require$$9","global","this","require$$4","axiosRetry","axiosRetryModule","common","configuration","require$$10","require$$11","require$$12","require$$13","require$$14","require$$15","require$$16","require$$17","require$$18","require$$19","require$$20","require$$21","Configuration"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55]} \ No newline at end of file diff --git a/Sveltekit-Build/src/server/chunks/ssr-3eccf1b3.js b/Sveltekit-Build/src/server/chunks/ssr-3eccf1b3.js new file mode 100644 index 0000000..85266b1 --- /dev/null +++ b/Sveltekit-Build/src/server/chunks/ssr-3eccf1b3.js @@ -0,0 +1,288 @@ +function noop() { +} +function is_promise(value) { + return !!value && (typeof value === "object" || typeof value === "function") && typeof /** @type {any} */ + value.then === "function"; +} +function run(fn) { + return fn(); +} +function blank_object() { + return /* @__PURE__ */ Object.create(null); +} +function run_all(fns) { + fns.forEach(run); +} +function safe_not_equal(a, b) { + return a != a ? b == b : a !== b || a && typeof a === "object" || typeof a === "function"; +} +function subscribe(store, ...callbacks) { + if (store == null) { + for (const callback of callbacks) { + callback(void 0); + } + return noop; + } + const unsub = store.subscribe(...callbacks); + return unsub.unsubscribe ? () => unsub.unsubscribe() : unsub; +} +function get_store_value(store) { + let value; + subscribe(store, (_) => value = _)(); + return value; +} +function compute_rest_props(props, keys) { + const rest = {}; + keys = new Set(keys); + for (const k in props) + if (!keys.has(k) && k[0] !== "$") + rest[k] = props[k]; + return rest; +} +function compute_slots(slots) { + const result = {}; + for (const key in slots) { + result[key] = true; + } + return result; +} +function split_css_unit(value) { + const split = typeof value === "string" && value.match(/^\s*(-?[\d.]+)([^\s]*)\s*$/); + return split ? [parseFloat(split[1]), split[2] || "px"] : [ + /** @type {number} */ + value, + "px" + ]; +} +function custom_event(type, detail, { bubbles = false, cancelable = false } = {}) { + return new CustomEvent(type, { detail, bubbles, cancelable }); +} +let current_component; +function set_current_component(component) { + current_component = component; +} +function get_current_component() { + if (!current_component) + throw new Error("Function called outside component initialization"); + return current_component; +} +function createEventDispatcher() { + const component = get_current_component(); + return (type, detail, { cancelable = false } = {}) => { + const callbacks = component.$$.callbacks[type]; + if (callbacks) { + const event = custom_event( + /** @type {string} */ + type, + detail, + { cancelable } + ); + callbacks.slice().forEach((fn) => { + fn.call(component, event); + }); + return !event.defaultPrevented; + } + return true; + }; +} +function setContext(key, context) { + get_current_component().$$.context.set(key, context); + return context; +} +function getContext(key) { + return get_current_component().$$.context.get(key); +} +function ensure_array_like(array_like_or_iterator) { + return array_like_or_iterator?.length !== void 0 ? array_like_or_iterator : Array.from(array_like_or_iterator); +} +const _boolean_attributes = ( + /** @type {const} */ + [ + "allowfullscreen", + "allowpaymentrequest", + "async", + "autofocus", + "autoplay", + "checked", + "controls", + "default", + "defer", + "disabled", + "formnovalidate", + "hidden", + "inert", + "ismap", + "loop", + "multiple", + "muted", + "nomodule", + "novalidate", + "open", + "playsinline", + "readonly", + "required", + "reversed", + "selected" + ] +); +const boolean_attributes = /* @__PURE__ */ new Set([..._boolean_attributes]); +const invalid_attribute_name_character = /[\s'">/=\u{FDD0}-\u{FDEF}\u{FFFE}\u{FFFF}\u{1FFFE}\u{1FFFF}\u{2FFFE}\u{2FFFF}\u{3FFFE}\u{3FFFF}\u{4FFFE}\u{4FFFF}\u{5FFFE}\u{5FFFF}\u{6FFFE}\u{6FFFF}\u{7FFFE}\u{7FFFF}\u{8FFFE}\u{8FFFF}\u{9FFFE}\u{9FFFF}\u{AFFFE}\u{AFFFF}\u{BFFFE}\u{BFFFF}\u{CFFFE}\u{CFFFF}\u{DFFFE}\u{DFFFF}\u{EFFFE}\u{EFFFF}\u{FFFFE}\u{FFFFF}\u{10FFFE}\u{10FFFF}]/u; +function spread(args, attrs_to_add) { + const attributes = Object.assign({}, ...args); + if (attrs_to_add) { + const classes_to_add = attrs_to_add.classes; + const styles_to_add = attrs_to_add.styles; + if (classes_to_add) { + if (attributes.class == null) { + attributes.class = classes_to_add; + } else { + attributes.class += " " + classes_to_add; + } + } + if (styles_to_add) { + if (attributes.style == null) { + attributes.style = style_object_to_string(styles_to_add); + } else { + attributes.style = style_object_to_string( + merge_ssr_styles(attributes.style, styles_to_add) + ); + } + } + } + let str = ""; + Object.keys(attributes).forEach((name) => { + if (invalid_attribute_name_character.test(name)) + return; + const value = attributes[name]; + if (value === true) + str += " " + name; + else if (boolean_attributes.has(name.toLowerCase())) { + if (value) + str += " " + name; + } else if (value != null) { + str += ` ${name}="${value}"`; + } + }); + return str; +} +function merge_ssr_styles(style_attribute, style_directive) { + const style_object = {}; + for (const individual_style of style_attribute.split(";")) { + const colon_index = individual_style.indexOf(":"); + const name = individual_style.slice(0, colon_index).trim(); + const value = individual_style.slice(colon_index + 1).trim(); + if (!name) + continue; + style_object[name] = value; + } + for (const name in style_directive) { + const value = style_directive[name]; + if (value) { + style_object[name] = value; + } else { + delete style_object[name]; + } + } + return style_object; +} +const ATTR_REGEX = /[&"]/g; +const CONTENT_REGEX = /[&<]/g; +function escape(value, is_attr = false) { + const str = String(value); + const pattern = is_attr ? ATTR_REGEX : CONTENT_REGEX; + pattern.lastIndex = 0; + let escaped = ""; + let last = 0; + while (pattern.test(str)) { + const i = pattern.lastIndex - 1; + const ch = str[i]; + escaped += str.substring(last, i) + (ch === "&" ? "&" : ch === '"' ? """ : "<"); + last = i + 1; + } + return escaped + str.substring(last); +} +function escape_attribute_value(value) { + const should_escape = typeof value === "string" || value && typeof value === "object"; + return should_escape ? escape(value, true) : value; +} +function escape_object(obj) { + const result = {}; + for (const key in obj) { + result[key] = escape_attribute_value(obj[key]); + } + return result; +} +function each(items, fn) { + items = ensure_array_like(items); + let str = ""; + for (let i = 0; i < items.length; i += 1) { + str += fn(items[i], i); + } + return str; +} +const missing_component = { + $$render: () => "" +}; +function validate_component(component, name) { + if (!component || !component.$$render) { + if (name === "svelte:component") + name += " this={...}"; + throw new Error( + `<${name}> is not a valid SSR component. You may need to review your build config to ensure that dependencies are compiled, rather than imported as pre-compiled modules. Otherwise you may need to fix a <${name}>.` + ); + } + return component; +} +let on_destroy; +function create_ssr_component(fn) { + function $$render(result, props, bindings, slots, context) { + const parent_component = current_component; + const $$ = { + on_destroy, + context: new Map(context || (parent_component ? parent_component.$$.context : [])), + // these will be immediately discarded + on_mount: [], + before_update: [], + after_update: [], + callbacks: blank_object() + }; + set_current_component({ $$ }); + const html = fn(result, props, bindings, slots); + set_current_component(parent_component); + return html; + } + return { + render: (props = {}, { $$slots = {}, context = /* @__PURE__ */ new Map() } = {}) => { + on_destroy = []; + const result = { title: "", head: "", css: /* @__PURE__ */ new Set() }; + const html = $$render(result, props, {}, $$slots, context); + run_all(on_destroy); + return { + html, + css: { + code: Array.from(result.css).map((css) => css.code).join("\n"), + map: null + // TODO + }, + head: result.title + result.head + }; + }, + $$render + }; +} +function add_attribute(name, value, boolean) { + if (value == null || boolean && !value) + return ""; + const assignment = boolean && value === true ? "" : `="${escape(value, true)}"`; + return ` ${name}${assignment}`; +} +function style_object_to_string(style_object) { + return Object.keys(style_object).filter((key) => style_object[key]).map((key) => `${key}: ${escape_attribute_value(style_object[key])};`).join(" "); +} +function add_styles(style_object) { + const styles = style_object_to_string(style_object); + return styles ? ` style="${styles}"` : ""; +} + +export { safe_not_equal as a, subscribe as b, create_ssr_component as c, createEventDispatcher as d, escape as e, add_attribute as f, spread as g, escape_object as h, getContext as i, get_store_value as j, split_css_unit as k, add_styles as l, missing_component as m, noop as n, each as o, compute_slots as p, compute_rest_props as q, escape_attribute_value as r, setContext as s, is_promise as t, validate_component as v }; +//# sourceMappingURL=ssr-3eccf1b3.js.map diff --git a/Sveltekit-Build/src/server/chunks/ssr-3eccf1b3.js.map b/Sveltekit-Build/src/server/chunks/ssr-3eccf1b3.js.map new file mode 100644 index 0000000..e08025c --- /dev/null +++ b/Sveltekit-Build/src/server/chunks/ssr-3eccf1b3.js.map @@ -0,0 +1 @@ +{"version":3,"file":"ssr-3eccf1b3.js","sources":["../../../../Sveltekit-App/.svelte-kit/adapter-node/chunks/ssr.js"],"sourcesContent":["function noop() {\n}\nfunction is_promise(value) {\n return !!value && (typeof value === \"object\" || typeof value === \"function\") && typeof /** @type {any} */\n value.then === \"function\";\n}\nfunction run(fn) {\n return fn();\n}\nfunction blank_object() {\n return /* @__PURE__ */ Object.create(null);\n}\nfunction run_all(fns) {\n fns.forEach(run);\n}\nfunction safe_not_equal(a, b) {\n return a != a ? b == b : a !== b || a && typeof a === \"object\" || typeof a === \"function\";\n}\nfunction subscribe(store, ...callbacks) {\n if (store == null) {\n for (const callback of callbacks) {\n callback(void 0);\n }\n return noop;\n }\n const unsub = store.subscribe(...callbacks);\n return unsub.unsubscribe ? () => unsub.unsubscribe() : unsub;\n}\nfunction get_store_value(store) {\n let value;\n subscribe(store, (_) => value = _)();\n return value;\n}\nfunction compute_rest_props(props, keys) {\n const rest = {};\n keys = new Set(keys);\n for (const k in props)\n if (!keys.has(k) && k[0] !== \"$\")\n rest[k] = props[k];\n return rest;\n}\nfunction compute_slots(slots) {\n const result = {};\n for (const key in slots) {\n result[key] = true;\n }\n return result;\n}\nfunction split_css_unit(value) {\n const split = typeof value === \"string\" && value.match(/^\\s*(-?[\\d.]+)([^\\s]*)\\s*$/);\n return split ? [parseFloat(split[1]), split[2] || \"px\"] : [\n /** @type {number} */\n value,\n \"px\"\n ];\n}\nfunction custom_event(type, detail, { bubbles = false, cancelable = false } = {}) {\n return new CustomEvent(type, { detail, bubbles, cancelable });\n}\nlet current_component;\nfunction set_current_component(component) {\n current_component = component;\n}\nfunction get_current_component() {\n if (!current_component)\n throw new Error(\"Function called outside component initialization\");\n return current_component;\n}\nfunction createEventDispatcher() {\n const component = get_current_component();\n return (type, detail, { cancelable = false } = {}) => {\n const callbacks = component.$$.callbacks[type];\n if (callbacks) {\n const event = custom_event(\n /** @type {string} */\n type,\n detail,\n { cancelable }\n );\n callbacks.slice().forEach((fn) => {\n fn.call(component, event);\n });\n return !event.defaultPrevented;\n }\n return true;\n };\n}\nfunction setContext(key, context) {\n get_current_component().$$.context.set(key, context);\n return context;\n}\nfunction getContext(key) {\n return get_current_component().$$.context.get(key);\n}\nfunction ensure_array_like(array_like_or_iterator) {\n return array_like_or_iterator?.length !== void 0 ? array_like_or_iterator : Array.from(array_like_or_iterator);\n}\nconst _boolean_attributes = (\n /** @type {const} */\n [\n \"allowfullscreen\",\n \"allowpaymentrequest\",\n \"async\",\n \"autofocus\",\n \"autoplay\",\n \"checked\",\n \"controls\",\n \"default\",\n \"defer\",\n \"disabled\",\n \"formnovalidate\",\n \"hidden\",\n \"inert\",\n \"ismap\",\n \"loop\",\n \"multiple\",\n \"muted\",\n \"nomodule\",\n \"novalidate\",\n \"open\",\n \"playsinline\",\n \"readonly\",\n \"required\",\n \"reversed\",\n \"selected\"\n ]\n);\nconst boolean_attributes = /* @__PURE__ */ new Set([..._boolean_attributes]);\nconst invalid_attribute_name_character = /[\\s'\">/=\\u{FDD0}-\\u{FDEF}\\u{FFFE}\\u{FFFF}\\u{1FFFE}\\u{1FFFF}\\u{2FFFE}\\u{2FFFF}\\u{3FFFE}\\u{3FFFF}\\u{4FFFE}\\u{4FFFF}\\u{5FFFE}\\u{5FFFF}\\u{6FFFE}\\u{6FFFF}\\u{7FFFE}\\u{7FFFF}\\u{8FFFE}\\u{8FFFF}\\u{9FFFE}\\u{9FFFF}\\u{AFFFE}\\u{AFFFF}\\u{BFFFE}\\u{BFFFF}\\u{CFFFE}\\u{CFFFF}\\u{DFFFE}\\u{DFFFF}\\u{EFFFE}\\u{EFFFF}\\u{FFFFE}\\u{FFFFF}\\u{10FFFE}\\u{10FFFF}]/u;\nfunction spread(args, attrs_to_add) {\n const attributes = Object.assign({}, ...args);\n if (attrs_to_add) {\n const classes_to_add = attrs_to_add.classes;\n const styles_to_add = attrs_to_add.styles;\n if (classes_to_add) {\n if (attributes.class == null) {\n attributes.class = classes_to_add;\n } else {\n attributes.class += \" \" + classes_to_add;\n }\n }\n if (styles_to_add) {\n if (attributes.style == null) {\n attributes.style = style_object_to_string(styles_to_add);\n } else {\n attributes.style = style_object_to_string(\n merge_ssr_styles(attributes.style, styles_to_add)\n );\n }\n }\n }\n let str = \"\";\n Object.keys(attributes).forEach((name) => {\n if (invalid_attribute_name_character.test(name))\n return;\n const value = attributes[name];\n if (value === true)\n str += \" \" + name;\n else if (boolean_attributes.has(name.toLowerCase())) {\n if (value)\n str += \" \" + name;\n } else if (value != null) {\n str += ` ${name}=\"${value}\"`;\n }\n });\n return str;\n}\nfunction merge_ssr_styles(style_attribute, style_directive) {\n const style_object = {};\n for (const individual_style of style_attribute.split(\";\")) {\n const colon_index = individual_style.indexOf(\":\");\n const name = individual_style.slice(0, colon_index).trim();\n const value = individual_style.slice(colon_index + 1).trim();\n if (!name)\n continue;\n style_object[name] = value;\n }\n for (const name in style_directive) {\n const value = style_directive[name];\n if (value) {\n style_object[name] = value;\n } else {\n delete style_object[name];\n }\n }\n return style_object;\n}\nconst ATTR_REGEX = /[&\"]/g;\nconst CONTENT_REGEX = /[&<]/g;\nfunction escape(value, is_attr = false) {\n const str = String(value);\n const pattern = is_attr ? ATTR_REGEX : CONTENT_REGEX;\n pattern.lastIndex = 0;\n let escaped = \"\";\n let last = 0;\n while (pattern.test(str)) {\n const i = pattern.lastIndex - 1;\n const ch = str[i];\n escaped += str.substring(last, i) + (ch === \"&\" ? \"&\" : ch === '\"' ? \""\" : \"<\");\n last = i + 1;\n }\n return escaped + str.substring(last);\n}\nfunction escape_attribute_value(value) {\n const should_escape = typeof value === \"string\" || value && typeof value === \"object\";\n return should_escape ? escape(value, true) : value;\n}\nfunction escape_object(obj) {\n const result = {};\n for (const key in obj) {\n result[key] = escape_attribute_value(obj[key]);\n }\n return result;\n}\nfunction each(items, fn) {\n items = ensure_array_like(items);\n let str = \"\";\n for (let i = 0; i < items.length; i += 1) {\n str += fn(items[i], i);\n }\n return str;\n}\nconst missing_component = {\n $$render: () => \"\"\n};\nfunction validate_component(component, name) {\n if (!component || !component.$$render) {\n if (name === \"svelte:component\")\n name += \" this={...}\";\n throw new Error(\n `<${name}> is not a valid SSR component. You may need to review your build config to ensure that dependencies are compiled, rather than imported as pre-compiled modules. Otherwise you may need to fix a <${name}>.`\n );\n }\n return component;\n}\nlet on_destroy;\nfunction create_ssr_component(fn) {\n function $$render(result, props, bindings, slots, context) {\n const parent_component = current_component;\n const $$ = {\n on_destroy,\n context: new Map(context || (parent_component ? parent_component.$$.context : [])),\n // these will be immediately discarded\n on_mount: [],\n before_update: [],\n after_update: [],\n callbacks: blank_object()\n };\n set_current_component({ $$ });\n const html = fn(result, props, bindings, slots);\n set_current_component(parent_component);\n return html;\n }\n return {\n render: (props = {}, { $$slots = {}, context = /* @__PURE__ */ new Map() } = {}) => {\n on_destroy = [];\n const result = { title: \"\", head: \"\", css: /* @__PURE__ */ new Set() };\n const html = $$render(result, props, {}, $$slots, context);\n run_all(on_destroy);\n return {\n html,\n css: {\n code: Array.from(result.css).map((css) => css.code).join(\"\\n\"),\n map: null\n // TODO\n },\n head: result.title + result.head\n };\n },\n $$render\n };\n}\nfunction add_attribute(name, value, boolean) {\n if (value == null || boolean && !value)\n return \"\";\n const assignment = boolean && value === true ? \"\" : `=\"${escape(value, true)}\"`;\n return ` ${name}${assignment}`;\n}\nfunction style_object_to_string(style_object) {\n return Object.keys(style_object).filter((key) => style_object[key]).map((key) => `${key}: ${escape_attribute_value(style_object[key])};`).join(\" \");\n}\nfunction add_styles(style_object) {\n const styles = style_object_to_string(style_object);\n return styles ? ` style=\"${styles}\"` : \"\";\n}\nexport {\n subscribe as a,\n createEventDispatcher as b,\n create_ssr_component as c,\n add_attribute as d,\n escape as e,\n spread as f,\n escape_object as g,\n compute_slots as h,\n compute_rest_props as i,\n getContext as j,\n escape_attribute_value as k,\n add_styles as l,\n missing_component as m,\n each as n,\n noop as o,\n safe_not_equal as p,\n get_store_value as q,\n split_css_unit as r,\n setContext as s,\n is_promise as t,\n validate_component as v\n};\n"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/Sveltekit-Build/src/server/chunks/stores-45fd0783.js b/Sveltekit-Build/src/server/chunks/stores-45fd0783.js new file mode 100644 index 0000000..908dee6 --- /dev/null +++ b/Sveltekit-Build/src/server/chunks/stores-45fd0783.js @@ -0,0 +1,38 @@ +import { w as writable } from './index2-f081c4d4.js'; +import { i as getContext, s as setContext } from './ssr-3eccf1b3.js'; + +const MODAL_STORE_KEY = "modalStore"; +function getModalStore() { + const modalStore = getContext(MODAL_STORE_KEY); + if (!modalStore) + throw new Error("modalStore is not initialized. Please ensure that `initializeStores()` is invoked in the root layout file of this app!"); + return modalStore; +} +function initializeModalStore() { + const modalStore = modalService(); + return setContext(MODAL_STORE_KEY, modalStore); +} +function modalService() { + const { subscribe, set, update } = writable([]); + return { + subscribe, + set, + update, + /** Append to end of queue. */ + trigger: (modal) => update((mStore) => { + mStore.push(modal); + return mStore; + }), + /** Remove first item in queue. */ + close: () => update((mStore) => { + if (mStore.length > 0) + mStore.shift(); + return mStore; + }), + /** Remove all items from queue. */ + clear: () => set([]) + }; +} + +export { getModalStore as g, initializeModalStore as i }; +//# sourceMappingURL=stores-45fd0783.js.map diff --git a/Sveltekit-Build/src/server/chunks/stores-45fd0783.js.map b/Sveltekit-Build/src/server/chunks/stores-45fd0783.js.map new file mode 100644 index 0000000..a2a9406 --- /dev/null +++ b/Sveltekit-Build/src/server/chunks/stores-45fd0783.js.map @@ -0,0 +1 @@ +{"version":3,"file":"stores-45fd0783.js","sources":["../../../../Sveltekit-App/.svelte-kit/adapter-node/chunks/stores.js"],"sourcesContent":["import { w as writable } from \"./index2.js\";\nimport { j as getContext, s as setContext } from \"./ssr.js\";\nconst MODAL_STORE_KEY = \"modalStore\";\nfunction getModalStore() {\n const modalStore = getContext(MODAL_STORE_KEY);\n if (!modalStore)\n throw new Error(\"modalStore is not initialized. Please ensure that `initializeStores()` is invoked in the root layout file of this app!\");\n return modalStore;\n}\nfunction initializeModalStore() {\n const modalStore = modalService();\n return setContext(MODAL_STORE_KEY, modalStore);\n}\nfunction modalService() {\n const { subscribe, set, update } = writable([]);\n return {\n subscribe,\n set,\n update,\n /** Append to end of queue. */\n trigger: (modal) => update((mStore) => {\n mStore.push(modal);\n return mStore;\n }),\n /** Remove first item in queue. */\n close: () => update((mStore) => {\n if (mStore.length > 0)\n mStore.shift();\n return mStore;\n }),\n /** Remove all items from queue. */\n clear: () => set([])\n };\n}\nexport {\n getModalStore as g,\n initializeModalStore as i\n};\n"],"names":[],"mappings":";;;AAEA,MAAM,eAAe,GAAG,YAAY,CAAC;AACrC,SAAS,aAAa,GAAG;AACzB,EAAE,MAAM,UAAU,GAAG,UAAU,CAAC,eAAe,CAAC,CAAC;AACjD,EAAE,IAAI,CAAC,UAAU;AACjB,IAAI,MAAM,IAAI,KAAK,CAAC,wHAAwH,CAAC,CAAC;AAC9I,EAAE,OAAO,UAAU,CAAC;AACpB,CAAC;AACD,SAAS,oBAAoB,GAAG;AAChC,EAAE,MAAM,UAAU,GAAG,YAAY,EAAE,CAAC;AACpC,EAAE,OAAO,UAAU,CAAC,eAAe,EAAE,UAAU,CAAC,CAAC;AACjD,CAAC;AACD,SAAS,YAAY,GAAG;AACxB,EAAE,MAAM,EAAE,SAAS,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAC;AAClD,EAAE,OAAO;AACT,IAAI,SAAS;AACb,IAAI,GAAG;AACP,IAAI,MAAM;AACV;AACA,IAAI,OAAO,EAAE,CAAC,KAAK,KAAK,MAAM,CAAC,CAAC,MAAM,KAAK;AAC3C,MAAM,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACzB,MAAM,OAAO,MAAM,CAAC;AACpB,KAAK,CAAC;AACN;AACA,IAAI,KAAK,EAAE,MAAM,MAAM,CAAC,CAAC,MAAM,KAAK;AACpC,MAAM,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC;AAC3B,QAAQ,MAAM,CAAC,KAAK,EAAE,CAAC;AACvB,MAAM,OAAO,MAAM,CAAC;AACpB,KAAK,CAAC;AACN;AACA,IAAI,KAAK,EAAE,MAAM,GAAG,CAAC,EAAE,CAAC;AACxB,GAAG,CAAC;AACJ;;;;"} \ No newline at end of file diff --git a/Sveltekit-Build/src/server/chunks/stores2-39445ea0.js b/Sveltekit-Build/src/server/chunks/stores2-39445ea0.js new file mode 100644 index 0000000..67f70b9 --- /dev/null +++ b/Sveltekit-Build/src/server/chunks/stores2-39445ea0.js @@ -0,0 +1,26 @@ +import { i as getContext } from './ssr-3eccf1b3.js'; + +const getStores = () => { + const stores = getContext("__svelte__"); + return { + /** @type {typeof page} */ + page: { + subscribe: stores.page.subscribe + }, + /** @type {typeof navigating} */ + navigating: { + subscribe: stores.navigating.subscribe + }, + /** @type {typeof updated} */ + updated: stores.updated + }; +}; +const page = { + subscribe(fn) { + const store = getStores().page; + return store.subscribe(fn); + } +}; + +export { page as p }; +//# sourceMappingURL=stores2-39445ea0.js.map diff --git a/Sveltekit-Build/src/server/chunks/stores2-39445ea0.js.map b/Sveltekit-Build/src/server/chunks/stores2-39445ea0.js.map new file mode 100644 index 0000000..10d79a5 --- /dev/null +++ b/Sveltekit-Build/src/server/chunks/stores2-39445ea0.js.map @@ -0,0 +1 @@ +{"version":3,"file":"stores2-39445ea0.js","sources":["../../../../Sveltekit-App/.svelte-kit/adapter-node/chunks/stores2.js"],"sourcesContent":["import { j as getContext } from \"./ssr.js\";\nconst getStores = () => {\n const stores = getContext(\"__svelte__\");\n return {\n /** @type {typeof page} */\n page: {\n subscribe: stores.page.subscribe\n },\n /** @type {typeof navigating} */\n navigating: {\n subscribe: stores.navigating.subscribe\n },\n /** @type {typeof updated} */\n updated: stores.updated\n };\n};\nconst page = {\n subscribe(fn) {\n const store = getStores().page;\n return store.subscribe(fn);\n }\n};\nexport {\n page as p\n};\n"],"names":[],"mappings":";;AACA,MAAM,SAAS,GAAG,MAAM;AACxB,EAAE,MAAM,MAAM,GAAG,UAAU,CAAC,YAAY,CAAC,CAAC;AAC1C,EAAE,OAAO;AACT;AACA,IAAI,IAAI,EAAE;AACV,MAAM,SAAS,EAAE,MAAM,CAAC,IAAI,CAAC,SAAS;AACtC,KAAK;AACL;AACA,IAAI,UAAU,EAAE;AAChB,MAAM,SAAS,EAAE,MAAM,CAAC,UAAU,CAAC,SAAS;AAC5C,KAAK;AACL;AACA,IAAI,OAAO,EAAE,MAAM,CAAC,OAAO;AAC3B,GAAG,CAAC;AACJ,CAAC,CAAC;AACG,MAAC,IAAI,GAAG;AACb,EAAE,SAAS,CAAC,EAAE,EAAE;AAChB,IAAI,MAAM,KAAK,GAAG,SAAS,EAAE,CAAC,IAAI,CAAC;AACnC,IAAI,OAAO,KAAK,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;AAC/B,GAAG;AACH;;;;"} \ No newline at end of file diff --git a/Sveltekit-Build/src/server/index.js b/Sveltekit-Build/src/server/index.js new file mode 100644 index 0000000..6e4509e --- /dev/null +++ b/Sveltekit-Build/src/server/index.js @@ -0,0 +1,4079 @@ +import { D as DEV } from './chunks/prod-ssr-7cc47430.js'; +import { c as create_ssr_component, s as setContext, v as validate_component, m as missing_component } from './chunks/ssr-3eccf1b3.js'; +import { e as error, j as json, t as text, R as Redirect, H as HttpError, A as ActionFailure } from './chunks/index-64aa7a5e.js'; +import { w as writable, r as readable } from './chunks/index2-f081c4d4.js'; + +let base = ""; +let assets = base; +const initial = { base, assets }; +function reset() { + base = initial.base; + assets = initial.assets; +} +let public_env = {}; +function set_private_env(environment) { +} +function set_public_env(environment) { + public_env = environment; +} +function afterUpdate() { +} +const Root = create_ssr_component(($$result, $$props, $$bindings, slots) => { + let { stores } = $$props; + let { page } = $$props; + let { constructors } = $$props; + let { components = [] } = $$props; + let { form } = $$props; + let { data_0 = null } = $$props; + let { data_1 = null } = $$props; + let { data_2 = null } = $$props; + { + setContext("__svelte__", stores); + } + afterUpdate(stores.page.notify); + if ($$props.stores === void 0 && $$bindings.stores && stores !== void 0) + $$bindings.stores(stores); + if ($$props.page === void 0 && $$bindings.page && page !== void 0) + $$bindings.page(page); + if ($$props.constructors === void 0 && $$bindings.constructors && constructors !== void 0) + $$bindings.constructors(constructors); + if ($$props.components === void 0 && $$bindings.components && components !== void 0) + $$bindings.components(components); + if ($$props.form === void 0 && $$bindings.form && form !== void 0) + $$bindings.form(form); + if ($$props.data_0 === void 0 && $$bindings.data_0 && data_0 !== void 0) + $$bindings.data_0(data_0); + if ($$props.data_1 === void 0 && $$bindings.data_1 && data_1 !== void 0) + $$bindings.data_1(data_1); + if ($$props.data_2 === void 0 && $$bindings.data_2 && data_2 !== void 0) + $$bindings.data_2(data_2); + let $$settled; + let $$rendered; + let previous_head = $$result.head; + do { + $$settled = true; + $$result.head = previous_head; + { + stores.page.set(page); + } + $$rendered = ` ${constructors[1] ? `${validate_component(constructors[0] || missing_component, "svelte:component").$$render( + $$result, + { data: data_0, this: components[0] }, + { + this: ($$value) => { + components[0] = $$value; + $$settled = false; + } + }, + { + default: () => { + return `${constructors[2] ? `${validate_component(constructors[1] || missing_component, "svelte:component").$$render( + $$result, + { data: data_1, this: components[1] }, + { + this: ($$value) => { + components[1] = $$value; + $$settled = false; + } + }, + { + default: () => { + return `${validate_component(constructors[2] || missing_component, "svelte:component").$$render( + $$result, + { data: data_2, form, this: components[2] }, + { + this: ($$value) => { + components[2] = $$value; + $$settled = false; + } + }, + {} + )}`; + } + } + )}` : `${validate_component(constructors[1] || missing_component, "svelte:component").$$render( + $$result, + { data: data_1, form, this: components[1] }, + { + this: ($$value) => { + components[1] = $$value; + $$settled = false; + } + }, + {} + )}`}`; + } + } + )}` : `${validate_component(constructors[0] || missing_component, "svelte:component").$$render( + $$result, + { data: data_0, form, this: components[0] }, + { + this: ($$value) => { + components[0] = $$value; + $$settled = false; + } + }, + {} + )}`} ${``}`; + } while (!$$settled); + return $$rendered; +}); +const options = { + app_template_contains_nonce: false, + csp: { "mode": "auto", "directives": { "upgrade-insecure-requests": false, "block-all-mixed-content": false }, "reportOnly": { "upgrade-insecure-requests": false, "block-all-mixed-content": false } }, + csrf_check_origin: false, + track_server_fetches: false, + embedded: false, + env_public_prefix: "PUBLIC_", + env_private_prefix: "", + hooks: null, + // added lazily, via `get_hooks` + preload_strategy: "modulepreload", + root: Root, + service_worker: false, + templates: { + app: ({ head, body, assets: assets2, nonce, env }) => '\n\n \n \n \n \n IdentityNow Health Check\n ' + head + '\n \n \n
' + body + "
\n \n\n", + error: ({ status, message }) => '\n\n \n \n ' + message + ` + + + + +
+ ` + status + '\n
\n

' + message + "

\n
\n
\n \n\n" + }, + version_hash: "6o5da1" +}; +function get_hooks() { + return {}; +} + +/** @type {Record} */ +const escaped = { + '<': '\\u003C', + '\\': '\\\\', + '\b': '\\b', + '\f': '\\f', + '\n': '\\n', + '\r': '\\r', + '\t': '\\t', + '\u2028': '\\u2028', + '\u2029': '\\u2029' +}; + +class DevalueError extends Error { + /** + * @param {string} message + * @param {string[]} keys + */ + constructor(message, keys) { + super(message); + this.name = 'DevalueError'; + this.path = keys.join(''); + } +} + +/** @param {any} thing */ +function is_primitive(thing) { + return Object(thing) !== thing; +} + +const object_proto_names = /* @__PURE__ */ Object.getOwnPropertyNames( + Object.prototype +) + .sort() + .join('\0'); + +/** @param {any} thing */ +function is_plain_object(thing) { + const proto = Object.getPrototypeOf(thing); + + return ( + proto === Object.prototype || + proto === null || + Object.getOwnPropertyNames(proto).sort().join('\0') === object_proto_names + ); +} + +/** @param {any} thing */ +function get_type(thing) { + return Object.prototype.toString.call(thing).slice(8, -1); +} + +/** @param {string} char */ +function get_escaped_char(char) { + switch (char) { + case '"': + return '\\"'; + case '<': + return '\\u003C'; + case '\\': + return '\\\\'; + case '\n': + return '\\n'; + case '\r': + return '\\r'; + case '\t': + return '\\t'; + case '\b': + return '\\b'; + case '\f': + return '\\f'; + case '\u2028': + return '\\u2028'; + case '\u2029': + return '\\u2029'; + default: + return char < ' ' + ? `\\u${char.charCodeAt(0).toString(16).padStart(4, '0')}` + : ''; + } +} + +/** @param {string} str */ +function stringify_string(str) { + let result = ''; + let last_pos = 0; + const len = str.length; + + for (let i = 0; i < len; i += 1) { + const char = str[i]; + const replacement = get_escaped_char(char); + if (replacement) { + result += str.slice(last_pos, i) + replacement; + last_pos = i + 1; + } + } + + return `"${last_pos === 0 ? str : result + str.slice(last_pos)}"`; +} + +const chars$1 = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ_$'; +const unsafe_chars = /[<\b\f\n\r\t\0\u2028\u2029]/g; +const reserved = + /^(?:do|if|in|for|int|let|new|try|var|byte|case|char|else|enum|goto|long|this|void|with|await|break|catch|class|const|final|float|short|super|throw|while|yield|delete|double|export|import|native|return|switch|throws|typeof|boolean|default|extends|finally|package|private|abstract|continue|debugger|function|volatile|interface|protected|transient|implements|instanceof|synchronized)$/; + +/** + * Turn a value into the JavaScript that creates an equivalent value + * @param {any} value + * @param {(value: any) => string | void} [replacer] + */ +function uneval(value, replacer) { + const counts = new Map(); + + /** @type {string[]} */ + const keys = []; + + const custom = new Map(); + + /** @param {any} thing */ + function walk(thing) { + if (typeof thing === 'function') { + throw new DevalueError(`Cannot stringify a function`, keys); + } + + if (!is_primitive(thing)) { + if (counts.has(thing)) { + counts.set(thing, counts.get(thing) + 1); + return; + } + + counts.set(thing, 1); + + if (replacer) { + const str = replacer(thing); + + if (typeof str === 'string') { + custom.set(thing, str); + return; + } + } + + const type = get_type(thing); + + switch (type) { + case 'Number': + case 'BigInt': + case 'String': + case 'Boolean': + case 'Date': + case 'RegExp': + return; + + case 'Array': + /** @type {any[]} */ (thing).forEach((value, i) => { + keys.push(`[${i}]`); + walk(value); + keys.pop(); + }); + break; + + case 'Set': + Array.from(thing).forEach(walk); + break; + + case 'Map': + for (const [key, value] of thing) { + keys.push( + `.get(${is_primitive(key) ? stringify_primitive$1(key) : '...'})` + ); + walk(value); + keys.pop(); + } + break; + + default: + if (!is_plain_object(thing)) { + throw new DevalueError( + `Cannot stringify arbitrary non-POJOs`, + keys + ); + } + + if (Object.getOwnPropertySymbols(thing).length > 0) { + throw new DevalueError( + `Cannot stringify POJOs with symbolic keys`, + keys + ); + } + + for (const key in thing) { + keys.push(`.${key}`); + walk(thing[key]); + keys.pop(); + } + } + } + } + + walk(value); + + const names = new Map(); + + Array.from(counts) + .filter((entry) => entry[1] > 1) + .sort((a, b) => b[1] - a[1]) + .forEach((entry, i) => { + names.set(entry[0], get_name(i)); + }); + + /** + * @param {any} thing + * @returns {string} + */ + function stringify(thing) { + if (names.has(thing)) { + return names.get(thing); + } + + if (is_primitive(thing)) { + return stringify_primitive$1(thing); + } + + if (custom.has(thing)) { + return custom.get(thing); + } + + const type = get_type(thing); + + switch (type) { + case 'Number': + case 'String': + case 'Boolean': + return `Object(${stringify(thing.valueOf())})`; + + case 'RegExp': + return `new RegExp(${stringify_string(thing.source)}, "${ + thing.flags + }")`; + + case 'Date': + return `new Date(${thing.getTime()})`; + + case 'Array': + const members = /** @type {any[]} */ (thing).map((v, i) => + i in thing ? stringify(v) : '' + ); + const tail = thing.length === 0 || thing.length - 1 in thing ? '' : ','; + return `[${members.join(',')}${tail}]`; + + case 'Set': + case 'Map': + return `new ${type}([${Array.from(thing).map(stringify).join(',')}])`; + + default: + const obj = `{${Object.keys(thing) + .map((key) => `${safe_key(key)}:${stringify(thing[key])}`) + .join(',')}}`; + const proto = Object.getPrototypeOf(thing); + if (proto === null) { + return Object.keys(thing).length > 0 + ? `Object.assign(Object.create(null),${obj})` + : `Object.create(null)`; + } + + return obj; + } + } + + const str = stringify(value); + + if (names.size) { + /** @type {string[]} */ + const params = []; + + /** @type {string[]} */ + const statements = []; + + /** @type {string[]} */ + const values = []; + + names.forEach((name, thing) => { + params.push(name); + + if (custom.has(thing)) { + values.push(/** @type {string} */ (custom.get(thing))); + return; + } + + if (is_primitive(thing)) { + values.push(stringify_primitive$1(thing)); + return; + } + + const type = get_type(thing); + + switch (type) { + case 'Number': + case 'String': + case 'Boolean': + values.push(`Object(${stringify(thing.valueOf())})`); + break; + + case 'RegExp': + values.push(thing.toString()); + break; + + case 'Date': + values.push(`new Date(${thing.getTime()})`); + break; + + case 'Array': + values.push(`Array(${thing.length})`); + /** @type {any[]} */ (thing).forEach((v, i) => { + statements.push(`${name}[${i}]=${stringify(v)}`); + }); + break; + + case 'Set': + values.push(`new Set`); + statements.push( + `${name}.${Array.from(thing) + .map((v) => `add(${stringify(v)})`) + .join('.')}` + ); + break; + + case 'Map': + values.push(`new Map`); + statements.push( + `${name}.${Array.from(thing) + .map(([k, v]) => `set(${stringify(k)}, ${stringify(v)})`) + .join('.')}` + ); + break; + + default: + values.push( + Object.getPrototypeOf(thing) === null ? 'Object.create(null)' : '{}' + ); + Object.keys(thing).forEach((key) => { + statements.push( + `${name}${safe_prop(key)}=${stringify(thing[key])}` + ); + }); + } + }); + + statements.push(`return ${str}`); + + return `(function(${params.join(',')}){${statements.join( + ';' + )}}(${values.join(',')}))`; + } else { + return str; + } +} + +/** @param {number} num */ +function get_name(num) { + let name = ''; + + do { + name = chars$1[num % chars$1.length] + name; + num = ~~(num / chars$1.length) - 1; + } while (num >= 0); + + return reserved.test(name) ? `${name}0` : name; +} + +/** @param {string} c */ +function escape_unsafe_char(c) { + return escaped[c] || c; +} + +/** @param {string} str */ +function escape_unsafe_chars(str) { + return str.replace(unsafe_chars, escape_unsafe_char); +} + +/** @param {string} key */ +function safe_key(key) { + return /^[_$a-zA-Z][_$a-zA-Z0-9]*$/.test(key) + ? key + : escape_unsafe_chars(JSON.stringify(key)); +} + +/** @param {string} key */ +function safe_prop(key) { + return /^[_$a-zA-Z][_$a-zA-Z0-9]*$/.test(key) + ? `.${key}` + : `[${escape_unsafe_chars(JSON.stringify(key))}]`; +} + +/** @param {any} thing */ +function stringify_primitive$1(thing) { + if (typeof thing === 'string') return stringify_string(thing); + if (thing === void 0) return 'void 0'; + if (thing === 0 && 1 / thing < 0) return '-0'; + const str = String(thing); + if (typeof thing === 'number') return str.replace(/^(-)?0\./, '$1.'); + if (typeof thing === 'bigint') return thing + 'n'; + return str; +} + +const UNDEFINED = -1; +const HOLE = -2; +const NAN = -3; +const POSITIVE_INFINITY = -4; +const NEGATIVE_INFINITY = -5; +const NEGATIVE_ZERO = -6; + +/** + * Turn a value into a JSON string that can be parsed with `devalue.parse` + * @param {any} value + * @param {Record any>} [reducers] + */ +function stringify(value, reducers) { + /** @type {any[]} */ + const stringified = []; + + /** @type {Map} */ + const indexes = new Map(); + + /** @type {Array<{ key: string, fn: (value: any) => any }>} */ + const custom = []; + for (const key in reducers) { + custom.push({ key, fn: reducers[key] }); + } + + /** @type {string[]} */ + const keys = []; + + let p = 0; + + /** @param {any} thing */ + function flatten(thing) { + if (typeof thing === 'function') { + throw new DevalueError(`Cannot stringify a function`, keys); + } + + if (indexes.has(thing)) return indexes.get(thing); + + if (thing === undefined) return UNDEFINED; + if (Number.isNaN(thing)) return NAN; + if (thing === Infinity) return POSITIVE_INFINITY; + if (thing === -Infinity) return NEGATIVE_INFINITY; + if (thing === 0 && 1 / thing < 0) return NEGATIVE_ZERO; + + const index = p++; + indexes.set(thing, index); + + for (const { key, fn } of custom) { + const value = fn(thing); + if (value) { + stringified[index] = `["${key}",${flatten(value)}]`; + return index; + } + } + + let str = ''; + + if (is_primitive(thing)) { + str = stringify_primitive(thing); + } else { + const type = get_type(thing); + + switch (type) { + case 'Number': + case 'String': + case 'Boolean': + str = `["Object",${stringify_primitive(thing)}]`; + break; + + case 'BigInt': + str = `["BigInt",${thing}]`; + break; + + case 'Date': + str = `["Date","${thing.toISOString()}"]`; + break; + + case 'RegExp': + const { source, flags } = thing; + str = flags + ? `["RegExp",${stringify_string(source)},"${flags}"]` + : `["RegExp",${stringify_string(source)}]`; + break; + + case 'Array': + str = '['; + + for (let i = 0; i < thing.length; i += 1) { + if (i > 0) str += ','; + + if (i in thing) { + keys.push(`[${i}]`); + str += flatten(thing[i]); + keys.pop(); + } else { + str += HOLE; + } + } + + str += ']'; + + break; + + case 'Set': + str = '["Set"'; + + for (const value of thing) { + str += `,${flatten(value)}`; + } + + str += ']'; + break; + + case 'Map': + str = '["Map"'; + + for (const [key, value] of thing) { + keys.push( + `.get(${is_primitive(key) ? stringify_primitive(key) : '...'})` + ); + str += `,${flatten(key)},${flatten(value)}`; + } + + str += ']'; + break; + + default: + if (!is_plain_object(thing)) { + throw new DevalueError( + `Cannot stringify arbitrary non-POJOs`, + keys + ); + } + + if (Object.getOwnPropertySymbols(thing).length > 0) { + throw new DevalueError( + `Cannot stringify POJOs with symbolic keys`, + keys + ); + } + + if (Object.getPrototypeOf(thing) === null) { + str = '["null"'; + for (const key in thing) { + keys.push(`.${key}`); + str += `,${stringify_string(key)},${flatten(thing[key])}`; + keys.pop(); + } + str += ']'; + } else { + str = '{'; + let started = false; + for (const key in thing) { + if (started) str += ','; + started = true; + keys.push(`.${key}`); + str += `${stringify_string(key)}:${flatten(thing[key])}`; + keys.pop(); + } + str += '}'; + } + } + } + + stringified[index] = str; + return index; + } + + const index = flatten(value); + + // special case — value is represented as a negative index + if (index < 0) return `${index}`; + + return `[${stringified.join(',')}]`; +} + +/** + * @param {any} thing + * @returns {string} + */ +function stringify_primitive(thing) { + const type = typeof thing; + if (type === 'string') return stringify_string(thing); + if (thing instanceof String) return stringify_string(thing.toString()); + if (thing === void 0) return UNDEFINED.toString(); + if (thing === 0 && 1 / thing < 0) return NEGATIVE_ZERO.toString(); + if (type === 'bigint') return `["BigInt","${thing}"]`; + return String(thing); +} + +var cookie = {}; + +/*! + * cookie + * Copyright(c) 2012-2014 Roman Shtylman + * Copyright(c) 2015 Douglas Christopher Wilson + * MIT Licensed + */ + +var hasRequiredCookie; + +function requireCookie () { + if (hasRequiredCookie) return cookie; + hasRequiredCookie = 1; + + /** + * Module exports. + * @public + */ + + cookie.parse = parse; + cookie.serialize = serialize; + + /** + * Module variables. + * @private + */ + + var __toString = Object.prototype.toString; + + /** + * RegExp to match field-content in RFC 7230 sec 3.2 + * + * field-content = field-vchar [ 1*( SP / HTAB ) field-vchar ] + * field-vchar = VCHAR / obs-text + * obs-text = %x80-FF + */ + + var fieldContentRegExp = /^[\u0009\u0020-\u007e\u0080-\u00ff]+$/; + + /** + * Parse a cookie header. + * + * Parse the given cookie header string into an object + * The object has the various cookies as keys(names) => values + * + * @param {string} str + * @param {object} [options] + * @return {object} + * @public + */ + + function parse(str, options) { + if (typeof str !== 'string') { + throw new TypeError('argument str must be a string'); + } + + var obj = {}; + var opt = options || {}; + var dec = opt.decode || decode; + + var index = 0; + while (index < str.length) { + var eqIdx = str.indexOf('=', index); + + // no more cookie pairs + if (eqIdx === -1) { + break + } + + var endIdx = str.indexOf(';', index); + + if (endIdx === -1) { + endIdx = str.length; + } else if (endIdx < eqIdx) { + // backtrack on prior semicolon + index = str.lastIndexOf(';', eqIdx - 1) + 1; + continue + } + + var key = str.slice(index, eqIdx).trim(); + + // only assign once + if (undefined === obj[key]) { + var val = str.slice(eqIdx + 1, endIdx).trim(); + + // quoted values + if (val.charCodeAt(0) === 0x22) { + val = val.slice(1, -1); + } + + obj[key] = tryDecode(val, dec); + } + + index = endIdx + 1; + } + + return obj; + } + + /** + * Serialize data into a cookie header. + * + * Serialize the a name value pair into a cookie string suitable for + * http headers. An optional options object specified cookie parameters. + * + * serialize('foo', 'bar', { httpOnly: true }) + * => "foo=bar; httpOnly" + * + * @param {string} name + * @param {string} val + * @param {object} [options] + * @return {string} + * @public + */ + + function serialize(name, val, options) { + var opt = options || {}; + var enc = opt.encode || encode; + + if (typeof enc !== 'function') { + throw new TypeError('option encode is invalid'); + } + + if (!fieldContentRegExp.test(name)) { + throw new TypeError('argument name is invalid'); + } + + var value = enc(val); + + if (value && !fieldContentRegExp.test(value)) { + throw new TypeError('argument val is invalid'); + } + + var str = name + '=' + value; + + if (null != opt.maxAge) { + var maxAge = opt.maxAge - 0; + + if (isNaN(maxAge) || !isFinite(maxAge)) { + throw new TypeError('option maxAge is invalid') + } + + str += '; Max-Age=' + Math.floor(maxAge); + } + + if (opt.domain) { + if (!fieldContentRegExp.test(opt.domain)) { + throw new TypeError('option domain is invalid'); + } + + str += '; Domain=' + opt.domain; + } + + if (opt.path) { + if (!fieldContentRegExp.test(opt.path)) { + throw new TypeError('option path is invalid'); + } + + str += '; Path=' + opt.path; + } + + if (opt.expires) { + var expires = opt.expires; + + if (!isDate(expires) || isNaN(expires.valueOf())) { + throw new TypeError('option expires is invalid'); + } + + str += '; Expires=' + expires.toUTCString(); + } + + if (opt.httpOnly) { + str += '; HttpOnly'; + } + + if (opt.secure) { + str += '; Secure'; + } + + if (opt.priority) { + var priority = typeof opt.priority === 'string' + ? opt.priority.toLowerCase() + : opt.priority; + + switch (priority) { + case 'low': + str += '; Priority=Low'; + break + case 'medium': + str += '; Priority=Medium'; + break + case 'high': + str += '; Priority=High'; + break + default: + throw new TypeError('option priority is invalid') + } + } + + if (opt.sameSite) { + var sameSite = typeof opt.sameSite === 'string' + ? opt.sameSite.toLowerCase() : opt.sameSite; + + switch (sameSite) { + case true: + str += '; SameSite=Strict'; + break; + case 'lax': + str += '; SameSite=Lax'; + break; + case 'strict': + str += '; SameSite=Strict'; + break; + case 'none': + str += '; SameSite=None'; + break; + default: + throw new TypeError('option sameSite is invalid'); + } + } + + return str; + } + + /** + * URL-decode string value. Optimized to skip native call when no %. + * + * @param {string} str + * @returns {string} + */ + + function decode (str) { + return str.indexOf('%') !== -1 + ? decodeURIComponent(str) + : str + } + + /** + * URL-encode value. + * + * @param {string} str + * @returns {string} + */ + + function encode (val) { + return encodeURIComponent(val) + } + + /** + * Determine if value is a Date. + * + * @param {*} val + * @private + */ + + function isDate (val) { + return __toString.call(val) === '[object Date]' || + val instanceof Date + } + + /** + * Try decoding a string using a decoding function. + * + * @param {string} str + * @param {function} decode + * @private + */ + + function tryDecode(str, decode) { + try { + return decode(str); + } catch (e) { + return str; + } + } + return cookie; +} + +var cookieExports = requireCookie(); + +var setCookie = {exports: {}}; + +var hasRequiredSetCookie; + +function requireSetCookie () { + if (hasRequiredSetCookie) return setCookie.exports; + hasRequiredSetCookie = 1; + + var defaultParseOptions = { + decodeValues: true, + map: false, + silent: false, + }; + + function isNonEmptyString(str) { + return typeof str === "string" && !!str.trim(); + } + + function parseString(setCookieValue, options) { + var parts = setCookieValue.split(";").filter(isNonEmptyString); + + var nameValuePairStr = parts.shift(); + var parsed = parseNameValuePair(nameValuePairStr); + var name = parsed.name; + var value = parsed.value; + + options = options + ? Object.assign({}, defaultParseOptions, options) + : defaultParseOptions; + + try { + value = options.decodeValues ? decodeURIComponent(value) : value; // decode cookie value + } catch (e) { + console.error( + "set-cookie-parser encountered an error while decoding a cookie with value '" + + value + + "'. Set options.decodeValues to false to disable this feature.", + e + ); + } + + var cookie = { + name: name, + value: value, + }; + + parts.forEach(function (part) { + var sides = part.split("="); + var key = sides.shift().trimLeft().toLowerCase(); + var value = sides.join("="); + if (key === "expires") { + cookie.expires = new Date(value); + } else if (key === "max-age") { + cookie.maxAge = parseInt(value, 10); + } else if (key === "secure") { + cookie.secure = true; + } else if (key === "httponly") { + cookie.httpOnly = true; + } else if (key === "samesite") { + cookie.sameSite = value; + } else { + cookie[key] = value; + } + }); + + return cookie; + } + + function parseNameValuePair(nameValuePairStr) { + // Parses name-value-pair according to rfc6265bis draft + + var name = ""; + var value = ""; + var nameValueArr = nameValuePairStr.split("="); + if (nameValueArr.length > 1) { + name = nameValueArr.shift(); + value = nameValueArr.join("="); // everything after the first =, joined by a "=" if there was more than one part + } else { + value = nameValuePairStr; + } + + return { name: name, value: value }; + } + + function parse(input, options) { + options = options + ? Object.assign({}, defaultParseOptions, options) + : defaultParseOptions; + + if (!input) { + if (!options.map) { + return []; + } else { + return {}; + } + } + + if (input.headers) { + if (typeof input.headers.getSetCookie === "function") { + // for fetch responses - they combine headers of the same type in the headers array, + // but getSetCookie returns an uncombined array + input = input.headers.getSetCookie(); + } else if (input.headers["set-cookie"]) { + // fast-path for node.js (which automatically normalizes header names to lower-case + input = input.headers["set-cookie"]; + } else { + // slow-path for other environments - see #25 + var sch = + input.headers[ + Object.keys(input.headers).find(function (key) { + return key.toLowerCase() === "set-cookie"; + }) + ]; + // warn if called on a request-like object with a cookie header rather than a set-cookie header - see #34, 36 + if (!sch && input.headers.cookie && !options.silent) { + console.warn( + "Warning: set-cookie-parser appears to have been called on a request object. It is designed to parse Set-Cookie headers from responses, not Cookie headers from requests. Set the option {silent: true} to suppress this warning." + ); + } + input = sch; + } + } + if (!Array.isArray(input)) { + input = [input]; + } + + options = options + ? Object.assign({}, defaultParseOptions, options) + : defaultParseOptions; + + if (!options.map) { + return input.filter(isNonEmptyString).map(function (str) { + return parseString(str, options); + }); + } else { + var cookies = {}; + return input.filter(isNonEmptyString).reduce(function (cookies, str) { + var cookie = parseString(str, options); + cookies[cookie.name] = cookie; + return cookies; + }, cookies); + } + } + + /* + Set-Cookie header field-values are sometimes comma joined in one string. This splits them without choking on commas + that are within a single set-cookie field-value, such as in the Expires portion. + + This is uncommon, but explicitly allowed - see https://tools.ietf.org/html/rfc2616#section-4.2 + Node.js does this for every header *except* set-cookie - see https://github.com/nodejs/node/blob/d5e363b77ebaf1caf67cd7528224b651c86815c1/lib/_http_incoming.js#L128 + React Native's fetch does this for *every* header, including set-cookie. + + Based on: https://github.com/google/j2objc/commit/16820fdbc8f76ca0c33472810ce0cb03d20efe25 + Credits to: https://github.com/tomball for original and https://github.com/chrusart for JavaScript implementation + */ + function splitCookiesString(cookiesString) { + if (Array.isArray(cookiesString)) { + return cookiesString; + } + if (typeof cookiesString !== "string") { + return []; + } + + var cookiesStrings = []; + var pos = 0; + var start; + var ch; + var lastComma; + var nextStart; + var cookiesSeparatorFound; + + function skipWhitespace() { + while (pos < cookiesString.length && /\s/.test(cookiesString.charAt(pos))) { + pos += 1; + } + return pos < cookiesString.length; + } + + function notSpecialChar() { + ch = cookiesString.charAt(pos); + + return ch !== "=" && ch !== ";" && ch !== ","; + } + + while (pos < cookiesString.length) { + start = pos; + cookiesSeparatorFound = false; + + while (skipWhitespace()) { + ch = cookiesString.charAt(pos); + if (ch === ",") { + // ',' is a cookie separator if we have later first '=', not ';' or ',' + lastComma = pos; + pos += 1; + + skipWhitespace(); + nextStart = pos; + + while (pos < cookiesString.length && notSpecialChar()) { + pos += 1; + } + + // currently special character + if (pos < cookiesString.length && cookiesString.charAt(pos) === "=") { + // we found cookies separator + cookiesSeparatorFound = true; + // pos is inside the next cookie, so back up and return it. + pos = nextStart; + cookiesStrings.push(cookiesString.substring(start, lastComma)); + start = pos; + } else { + // in param ',' or param separator ';', + // we continue from that comma + pos = lastComma + 1; + } + } else { + pos += 1; + } + } + + if (!cookiesSeparatorFound || pos >= cookiesString.length) { + cookiesStrings.push(cookiesString.substring(start, cookiesString.length)); + } + } + + return cookiesStrings; + } + + setCookie.exports = parse; + setCookie.exports.parse = parse; + setCookie.exports.parseString = parseString; + setCookie.exports.splitCookiesString = splitCookiesString; + return setCookie.exports; +} + +var setCookieExports = requireSetCookie(); + +const SVELTE_KIT_ASSETS = "/_svelte_kit_assets"; +const ENDPOINT_METHODS = /* @__PURE__ */ new Set([ + "GET", + "POST", + "PUT", + "PATCH", + "DELETE", + "OPTIONS", + "HEAD" +]); +const PAGE_METHODS = /* @__PURE__ */ new Set(["GET", "POST", "HEAD"]); +function negotiate(accept, types) { + const parts = []; + accept.split(",").forEach((str, i) => { + const match = /([^/]+)\/([^;]+)(?:;q=([0-9.]+))?/.exec(str); + if (match) { + const [, type, subtype, q = "1"] = match; + parts.push({ type, subtype, q: +q, i }); + } + }); + parts.sort((a, b) => { + if (a.q !== b.q) { + return b.q - a.q; + } + if (a.subtype === "*" !== (b.subtype === "*")) { + return a.subtype === "*" ? 1 : -1; + } + if (a.type === "*" !== (b.type === "*")) { + return a.type === "*" ? 1 : -1; + } + return a.i - b.i; + }); + let accepted; + let min_priority = Infinity; + for (const mimetype of types) { + const [type, subtype] = mimetype.split("/"); + const priority = parts.findIndex( + (part) => (part.type === type || part.type === "*") && (part.subtype === subtype || part.subtype === "*") + ); + if (priority !== -1 && priority < min_priority) { + accepted = mimetype; + min_priority = priority; + } + } + return accepted; +} +function is_content_type(request, ...types) { + const type = request.headers.get("content-type")?.split(";", 1)[0].trim() ?? ""; + return types.includes(type.toLowerCase()); +} +function is_form_content_type(request) { + return is_content_type( + request, + "application/x-www-form-urlencoded", + "multipart/form-data", + "text/plain" + ); +} +function exec(match, params, matchers) { + const result = {}; + const values = match.slice(1); + const values_needing_match = values.filter((value) => value !== void 0); + let buffered = 0; + for (let i = 0; i < params.length; i += 1) { + const param = params[i]; + let value = values[i - buffered]; + if (param.chained && param.rest && buffered) { + value = values.slice(i - buffered, i + 1).filter((s2) => s2).join("/"); + buffered = 0; + } + if (value === void 0) { + if (param.rest) + result[param.name] = ""; + continue; + } + if (!param.matcher || matchers[param.matcher](value)) { + result[param.name] = value; + const next_param = params[i + 1]; + const next_value = values[i + 1]; + if (next_param && !next_param.rest && next_param.optional && next_value && param.chained) { + buffered = 0; + } + if (!next_param && !next_value && Object.keys(result).length === values_needing_match.length) { + buffered = 0; + } + continue; + } + if (param.optional && param.chained) { + buffered++; + continue; + } + return; + } + if (buffered) + return; + return result; +} +function coalesce_to_error(err) { + return err instanceof Error || err && /** @type {any} */ + err.name && /** @type {any} */ + err.message ? ( + /** @type {Error} */ + err + ) : new Error(JSON.stringify(err)); +} +function normalize_error(error2) { + return ( + /** @type {import('../runtime/control.js').Redirect | import('../runtime/control.js').HttpError | Error} */ + error2 + ); +} +function method_not_allowed(mod, method) { + return text(`${method} method not allowed`, { + status: 405, + headers: { + // https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/405 + // "The server must generate an Allow header field in a 405 status code response" + allow: allowed_methods(mod).join(", ") + } + }); +} +function allowed_methods(mod) { + const allowed = Array.from(ENDPOINT_METHODS).filter((method) => method in mod); + if ("GET" in mod || "HEAD" in mod) + allowed.push("HEAD"); + return allowed; +} +function static_error_page(options2, status, message) { + let page = options2.templates.error({ status, message }); + return text(page, { + headers: { "content-type": "text/html; charset=utf-8" }, + status + }); +} +async function handle_fatal_error(event, options2, error2) { + error2 = error2 instanceof HttpError ? error2 : coalesce_to_error(error2); + const status = error2 instanceof HttpError ? error2.status : 500; + const body = await handle_error_and_jsonify(event, options2, error2); + const type = negotiate(event.request.headers.get("accept") || "text/html", [ + "application/json", + "text/html" + ]); + if (event.isDataRequest || type === "application/json") { + return json(body, { + status + }); + } + return static_error_page(options2, status, body.message); +} +async function handle_error_and_jsonify(event, options2, error2) { + if (error2 instanceof HttpError) { + return error2.body; + } else { + return await options2.hooks.handleError({ error: error2, event }) ?? { + message: event.route.id != null ? "Internal Error" : "Not Found" + }; + } +} +function redirect_response(status, location) { + const response = new Response(void 0, { + status, + headers: { location } + }); + return response; +} +function clarify_devalue_error(event, error2) { + if (error2.path) { + return `Data returned from \`load\` while rendering ${event.route.id} is not serializable: ${error2.message} (data${error2.path})`; + } + if (error2.path === "") { + return `Data returned from \`load\` while rendering ${event.route.id} is not a plain object`; + } + return error2.message; +} +function stringify_uses(node) { + const uses = []; + if (node.uses && node.uses.dependencies.size > 0) { + uses.push(`"dependencies":${JSON.stringify(Array.from(node.uses.dependencies))}`); + } + if (node.uses && node.uses.params.size > 0) { + uses.push(`"params":${JSON.stringify(Array.from(node.uses.params))}`); + } + if (node.uses?.parent) + uses.push('"parent":1'); + if (node.uses?.route) + uses.push('"route":1'); + if (node.uses?.url) + uses.push('"url":1'); + return `"uses":{${uses.join(",")}}`; +} +async function render_endpoint(event, mod, state) { + const method = ( + /** @type {import('types').HttpMethod} */ + event.request.method + ); + let handler = mod[method] || mod.fallback; + if (method === "HEAD" && mod.GET && !mod.HEAD) { + handler = mod.GET; + } + if (!handler) { + return method_not_allowed(mod, method); + } + const prerender = mod.prerender ?? state.prerender_default; + if (prerender && (mod.POST || mod.PATCH || mod.PUT || mod.DELETE)) { + throw new Error("Cannot prerender endpoints that have mutative methods"); + } + if (state.prerendering && !prerender) { + if (state.depth > 0) { + throw new Error(`${event.route.id} is not prerenderable`); + } else { + return new Response(void 0, { status: 204 }); + } + } + try { + let response = await handler( + /** @type {import('@sveltejs/kit').RequestEvent>} */ + event + ); + if (!(response instanceof Response)) { + throw new Error( + `Invalid response from route ${event.url.pathname}: handler should return a Response object` + ); + } + if (state.prerendering) { + response = new Response(response.body, { + status: response.status, + statusText: response.statusText, + headers: new Headers(response.headers) + }); + response.headers.set("x-sveltekit-prerender", String(prerender)); + } + return response; + } catch (e) { + if (e instanceof Redirect) { + return new Response(void 0, { + status: e.status, + headers: { location: e.location } + }); + } + throw e; + } +} +function is_endpoint_request(event) { + const { method, headers } = event.request; + if (ENDPOINT_METHODS.has(method) && !PAGE_METHODS.has(method)) { + return true; + } + if (method === "POST" && headers.get("x-sveltekit-action") === "true") + return false; + const accept = event.request.headers.get("accept") ?? "*/*"; + return negotiate(accept, ["*", "text/html"]) !== "text/html"; +} +function compact(arr) { + return arr.filter( + /** @returns {val is NonNullable} */ + (val) => val != null + ); +} +function normalize_path(path, trailing_slash) { + if (path === "/" || trailing_slash === "ignore") + return path; + if (trailing_slash === "never") { + return path.endsWith("/") ? path.slice(0, -1) : path; + } else if (trailing_slash === "always" && !path.endsWith("/")) { + return path + "/"; + } + return path; +} +function decode_pathname(pathname) { + return pathname.split("%25").map(decodeURI).join("%25"); +} +function decode_params(params) { + for (const key2 in params) { + params[key2] = decodeURIComponent(params[key2]); + } + return params; +} +const tracked_url_properties = ( + /** @type {const} */ + [ + "href", + "pathname", + "search", + "searchParams", + "toString", + "toJSON" + ] +); +function make_trackable(url, callback) { + const tracked = new URL(url); + for (const property of tracked_url_properties) { + Object.defineProperty(tracked, property, { + get() { + callback(); + return url[property]; + }, + enumerable: true, + configurable: true + }); + } + { + tracked[Symbol.for("nodejs.util.inspect.custom")] = (depth, opts, inspect) => { + return inspect(url, opts); + }; + } + disable_hash(tracked); + return tracked; +} +function disable_hash(url) { + allow_nodejs_console_log(url); + Object.defineProperty(url, "hash", { + get() { + throw new Error( + "Cannot access event.url.hash. Consider using `$page.url.hash` inside a component instead" + ); + } + }); +} +function disable_search(url) { + allow_nodejs_console_log(url); + for (const property of ["search", "searchParams"]) { + Object.defineProperty(url, property, { + get() { + throw new Error(`Cannot access url.${property} on a page with prerendering enabled`); + } + }); + } +} +function allow_nodejs_console_log(url) { + { + url[Symbol.for("nodejs.util.inspect.custom")] = (depth, opts, inspect) => { + return inspect(new URL(url), opts); + }; + } +} +const DATA_SUFFIX = "/__data.json"; +function has_data_suffix(pathname) { + return pathname.endsWith(DATA_SUFFIX); +} +function add_data_suffix(pathname) { + return pathname.replace(/\/$/, "") + DATA_SUFFIX; +} +function strip_data_suffix(pathname) { + return pathname.slice(0, -DATA_SUFFIX.length); +} +function is_action_json_request(event) { + const accept = negotiate(event.request.headers.get("accept") ?? "*/*", [ + "application/json", + "text/html" + ]); + return accept === "application/json" && event.request.method === "POST"; +} +async function handle_action_json_request(event, options2, server) { + const actions = server?.actions; + if (!actions) { + const no_actions_error = error(405, "POST method not allowed. No actions exist for this page"); + return action_json( + { + type: "error", + error: await handle_error_and_jsonify(event, options2, no_actions_error) + }, + { + status: no_actions_error.status, + headers: { + // https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/405 + // "The server must generate an Allow header field in a 405 status code response" + allow: "GET" + } + } + ); + } + check_named_default_separate(actions); + try { + const data = await call_action(event, actions); + if (false) + ; + if (data instanceof ActionFailure) { + return action_json({ + type: "failure", + status: data.status, + // @ts-expect-error we assign a string to what is supposed to be an object. That's ok + // because we don't use the object outside, and this way we have better code navigation + // through knowing where the related interface is used. + data: stringify_action_response( + data.data, + /** @type {string} */ + event.route.id + ) + }); + } else { + return action_json({ + type: "success", + status: data ? 200 : 204, + // @ts-expect-error see comment above + data: stringify_action_response( + data, + /** @type {string} */ + event.route.id + ) + }); + } + } catch (e) { + const err = normalize_error(e); + if (err instanceof Redirect) { + return action_json_redirect(err); + } + return action_json( + { + type: "error", + error: await handle_error_and_jsonify(event, options2, check_incorrect_fail_use(err)) + }, + { + status: err instanceof HttpError ? err.status : 500 + } + ); + } +} +function check_incorrect_fail_use(error2) { + return error2 instanceof ActionFailure ? new Error('Cannot "throw fail()". Use "return fail()"') : error2; +} +function action_json_redirect(redirect) { + return action_json({ + type: "redirect", + status: redirect.status, + location: redirect.location + }); +} +function action_json(data, init2) { + return json(data, init2); +} +function is_action_request(event) { + return event.request.method === "POST"; +} +async function handle_action_request(event, server) { + const actions = server?.actions; + if (!actions) { + event.setHeaders({ + // https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/405 + // "The server must generate an Allow header field in a 405 status code response" + allow: "GET" + }); + return { + type: "error", + error: error(405, "POST method not allowed. No actions exist for this page") + }; + } + check_named_default_separate(actions); + try { + const data = await call_action(event, actions); + if (false) + ; + if (data instanceof ActionFailure) { + return { + type: "failure", + status: data.status, + data: data.data + }; + } else { + return { + type: "success", + status: 200, + // @ts-expect-error this will be removed upon serialization, so `undefined` is the same as omission + data + }; + } + } catch (e) { + const err = normalize_error(e); + if (err instanceof Redirect) { + return { + type: "redirect", + status: err.status, + location: err.location + }; + } + return { + type: "error", + error: check_incorrect_fail_use(err) + }; + } +} +function check_named_default_separate(actions) { + if (actions.default && Object.keys(actions).length > 1) { + throw new Error( + "When using named actions, the default action cannot be used. See the docs for more info: https://kit.svelte.dev/docs/form-actions#named-actions" + ); + } +} +async function call_action(event, actions) { + const url = new URL(event.request.url); + let name = "default"; + for (const param of url.searchParams) { + if (param[0].startsWith("/")) { + name = param[0].slice(1); + if (name === "default") { + throw new Error('Cannot use reserved action name "default"'); + } + break; + } + } + const action = actions[name]; + if (!action) { + throw new Error(`No action with name '${name}' found`); + } + if (!is_form_content_type(event.request)) { + throw new Error( + `Actions expect form-encoded data (received ${event.request.headers.get("content-type")})` + ); + } + return action(event); +} +function uneval_action_response(data, route_id) { + return try_deserialize(data, uneval, route_id); +} +function stringify_action_response(data, route_id) { + return try_deserialize(data, stringify, route_id); +} +function try_deserialize(data, fn, route_id) { + try { + return fn(data); + } catch (e) { + const error2 = ( + /** @type {any} */ + e + ); + if ("path" in error2) { + let message = `Data returned from action inside ${route_id} is not serializable: ${error2.message}`; + if (error2.path !== "") + message += ` (data.${error2.path})`; + throw new Error(message); + } + throw error2; + } +} +async function unwrap_promises(object) { + for (const key2 in object) { + if (typeof object[key2]?.then === "function") { + return Object.fromEntries( + await Promise.all(Object.entries(object).map(async ([key3, value]) => [key3, await value])) + ); + } + } + return object; +} +const INVALIDATED_PARAM = "x-sveltekit-invalidated"; +const TRAILING_SLASH_PARAM = "x-sveltekit-trailing-slash"; +async function load_server_data({ + event, + state, + node, + parent, + // TODO 2.0: Remove this + track_server_fetches +}) { + if (!node?.server) + return null; + const uses = { + dependencies: /* @__PURE__ */ new Set(), + params: /* @__PURE__ */ new Set(), + parent: false, + route: false, + url: false + }; + const url = make_trackable(event.url, () => { + uses.url = true; + }); + if (state.prerendering) { + disable_search(url); + } + const result = await node.server.load?.call(null, { + ...event, + fetch: (info, init2) => { + const url2 = new URL(info instanceof Request ? info.url : info, event.url); + if (track_server_fetches) { + uses.dependencies.add(url2.href); + } + return event.fetch(info, init2); + }, + /** @param {string[]} deps */ + depends: (...deps) => { + for (const dep of deps) { + const { href } = new URL(dep, event.url); + uses.dependencies.add(href); + } + }, + params: new Proxy(event.params, { + get: (target, key2) => { + uses.params.add(key2); + return target[ + /** @type {string} */ + key2 + ]; + } + }), + parent: async () => { + uses.parent = true; + return parent(); + }, + route: new Proxy(event.route, { + get: (target, key2) => { + uses.route = true; + return target[ + /** @type {'id'} */ + key2 + ]; + } + }), + url + }); + const data = result ? await unwrap_promises(result) : null; + return { + type: "data", + data, + uses, + slash: node.server.trailingSlash + }; +} +async function load_data({ + event, + fetched, + node, + parent, + server_data_promise, + state, + resolve_opts, + csr +}) { + const server_data_node = await server_data_promise; + if (!node?.universal?.load) { + return server_data_node?.data ?? null; + } + const result = await node.universal.load.call(null, { + url: event.url, + params: event.params, + data: server_data_node?.data ?? null, + route: event.route, + fetch: create_universal_fetch(event, state, fetched, csr, resolve_opts), + setHeaders: event.setHeaders, + depends: () => { + }, + parent + }); + const data = result ? await unwrap_promises(result) : null; + return data; +} +function create_universal_fetch(event, state, fetched, csr, resolve_opts) { + return async (input, init2) => { + const cloned_body = input instanceof Request && input.body ? input.clone().body : null; + const cloned_headers = input instanceof Request && [...input.headers].length ? new Headers(input.headers) : init2?.headers; + let response = await event.fetch(input, init2); + const url = new URL(input instanceof Request ? input.url : input, event.url); + const same_origin = url.origin === event.url.origin; + let dependency; + if (same_origin) { + if (state.prerendering) { + dependency = { response, body: null }; + state.prerendering.dependencies.set(url.pathname, dependency); + } + } else { + const mode = input instanceof Request ? input.mode : init2?.mode ?? "cors"; + if (mode === "no-cors") { + response = new Response("", { + status: response.status, + statusText: response.statusText, + headers: response.headers + }); + } else { + const acao = response.headers.get("access-control-allow-origin"); + if (!acao || acao !== event.url.origin && acao !== "*") { + throw new Error( + `CORS error: ${acao ? "Incorrect" : "No"} 'Access-Control-Allow-Origin' header is present on the requested resource` + ); + } + } + } + const proxy = new Proxy(response, { + get(response2, key2, _receiver) { + async function text2() { + const body = await response2.text(); + if (!body || typeof body === "string") { + const status_number = Number(response2.status); + if (isNaN(status_number)) { + throw new Error( + `response.status is not a number. value: "${response2.status}" type: ${typeof response2.status}` + ); + } + fetched.push({ + url: same_origin ? url.href.slice(event.url.origin.length) : url.href, + method: event.request.method, + request_body: ( + /** @type {string | ArrayBufferView | undefined} */ + input instanceof Request && cloned_body ? await stream_to_string(cloned_body) : init2?.body + ), + request_headers: cloned_headers, + response_body: body, + response: response2 + }); + } + if (dependency) { + dependency.body = body; + } + return body; + } + if (key2 === "arrayBuffer") { + return async () => { + const buffer = await response2.arrayBuffer(); + if (dependency) { + dependency.body = new Uint8Array(buffer); + } + return buffer; + }; + } + if (key2 === "text") { + return text2; + } + if (key2 === "json") { + return async () => { + return JSON.parse(await text2()); + }; + } + return Reflect.get(response2, key2, response2); + } + }); + if (csr) { + const get = response.headers.get; + response.headers.get = (key2) => { + const lower = key2.toLowerCase(); + const value = get.call(response.headers, lower); + if (value && !lower.startsWith("x-sveltekit-")) { + const included = resolve_opts.filterSerializedResponseHeaders(lower, value); + if (!included) { + throw new Error( + `Failed to get response header "${lower}" — it must be included by the \`filterSerializedResponseHeaders\` option: https://kit.svelte.dev/docs/hooks#server-hooks-handle (at ${event.route.id})` + ); + } + } + return value; + }; + } + return proxy; + }; +} +async function stream_to_string(stream) { + let result = ""; + const reader = stream.getReader(); + const decoder = new TextDecoder(); + while (true) { + const { done, value } = await reader.read(); + if (done) { + break; + } + result += decoder.decode(value); + } + return result; +} +function hash(...values) { + let hash2 = 5381; + for (const value of values) { + if (typeof value === "string") { + let i = value.length; + while (i) + hash2 = hash2 * 33 ^ value.charCodeAt(--i); + } else if (ArrayBuffer.isView(value)) { + const buffer = new Uint8Array(value.buffer, value.byteOffset, value.byteLength); + let i = buffer.length; + while (i) + hash2 = hash2 * 33 ^ buffer[--i]; + } else { + throw new TypeError("value must be a string or TypedArray"); + } + } + return (hash2 >>> 0).toString(36); +} +const escape_html_attr_dict = { + "&": "&", + '"': """ +}; +const escape_html_attr_regex = new RegExp( + // special characters + `[${Object.keys(escape_html_attr_dict).join("")}]|[\\ud800-\\udbff](?![\\udc00-\\udfff])|[\\ud800-\\udbff][\\udc00-\\udfff]|[\\udc00-\\udfff]`, + "g" +); +function escape_html_attr(str) { + const escaped_str = str.replace(escape_html_attr_regex, (match) => { + if (match.length === 2) { + return match; + } + return escape_html_attr_dict[match] ?? `&#${match.charCodeAt(0)};`; + }); + return `"${escaped_str}"`; +} +const replacements = { + "<": "\\u003C", + "\u2028": "\\u2028", + "\u2029": "\\u2029" +}; +const pattern = new RegExp(`[${Object.keys(replacements).join("")}]`, "g"); +function serialize_data(fetched, filter, prerendering = false) { + const headers = {}; + let cache_control = null; + let age = null; + let varyAny = false; + for (const [key2, value] of fetched.response.headers) { + if (filter(key2, value)) { + headers[key2] = value; + } + if (key2 === "cache-control") + cache_control = value; + else if (key2 === "age") + age = value; + else if (key2 === "vary" && value.trim() === "*") + varyAny = true; + } + const payload = { + status: fetched.response.status, + statusText: fetched.response.statusText, + headers, + body: fetched.response_body + }; + const safe_payload = JSON.stringify(payload).replace(pattern, (match) => replacements[match]); + const attrs = [ + 'type="application/json"', + "data-sveltekit-fetched", + `data-url=${escape_html_attr(fetched.url)}` + ]; + if (fetched.request_headers || fetched.request_body) { + const values = []; + if (fetched.request_headers) { + values.push([...new Headers(fetched.request_headers)].join(",")); + } + if (fetched.request_body) { + values.push(fetched.request_body); + } + attrs.push(`data-hash="${hash(...values)}"`); + } + if (!prerendering && fetched.method === "GET" && cache_control && !varyAny) { + const match = /s-maxage=(\d+)/g.exec(cache_control) ?? /max-age=(\d+)/g.exec(cache_control); + if (match) { + const ttl = +match[1] - +(age ?? "0"); + attrs.push(`data-ttl="${ttl}"`); + } + } + return `